From 10c41cd064976ba045f1971396311a1b5d5dbbe1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 2 Oct 2013 14:56:13 +0200 Subject: [PATCH 001/919] Factor out ol.webgl.Context --- src/ol/renderer/webgl/webglmaprenderer.js | 181 ++----------- .../renderer/webgl/webgltilelayerrenderer.js | 9 +- src/ol/webgl/context.js | 243 ++++++++++++++++++ 3 files changed, 267 insertions(+), 166 deletions(-) create mode 100644 src/ol/webgl/context.js diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index eddfab1d73..c1c5561f07 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -25,12 +25,11 @@ goog.require('ol.renderer.webgl.map.shader.Color'); goog.require('ol.renderer.webgl.map.shader.Default'); goog.require('ol.source.State'); goog.require('ol.structs.Buffer'); -goog.require('ol.structs.IntegerSet'); goog.require('ol.structs.LRUCache'); goog.require('ol.structs.PriorityQueue'); goog.require('ol.webgl'); +goog.require('ol.webgl.Context'); goog.require('ol.webgl.WebGLContextEventType'); -goog.require('ol.webgl.shader'); /** @@ -39,14 +38,6 @@ goog.require('ol.webgl.shader'); ol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK = 1024; -/** - * @typedef {{buf: ol.structs.Buffer, - * buffer: WebGLBuffer, - * dirtySet: ol.structs.IntegerSet}} - */ -ol.renderer.webgl.BufferCacheEntry; - - /** * @typedef {{magFilter: number, minFilter: number, texture: WebGLTexture}} */ @@ -91,6 +82,12 @@ ol.renderer.webgl.Map = function(container, map) { }); goog.asserts.assert(!goog.isNull(this.gl_)); + /** + * @private + * @type {ol.webgl.Context} + */ + this.context_ = new ol.webgl.Context(this.canvas_, this.gl_); + goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.LOST, this.handleWebGLContextLost, false, this); goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.RESTORED, @@ -119,24 +116,6 @@ ol.renderer.webgl.Map = function(container, map) { 1, 1, 1, 1 ]); - /** - * @private - * @type {Object.} - */ - this.bufferCache_ = {}; - - /** - * @private - * @type {Object.} - */ - this.shaderCache_ = {}; - - /** - * @private - * @type {Object.} - */ - this.programCache_ = {}; - /** * @private * @type {ol.structs.LRUCache} @@ -200,47 +179,6 @@ ol.renderer.webgl.Map = function(container, map) { goog.inherits(ol.renderer.webgl.Map, ol.renderer.Map); -/** - * @param {number} target Target. - * @param {ol.structs.Buffer} buf Buffer. - */ -ol.renderer.webgl.Map.prototype.bindBuffer = function(target, buf) { - var gl = this.getGL(); - var arr = buf.getArray(); - var bufferKey = goog.getUid(buf); - if (bufferKey in this.bufferCache_) { - var bufferCacheEntry = this.bufferCache_[bufferKey]; - gl.bindBuffer(target, bufferCacheEntry.buffer); - bufferCacheEntry.dirtySet.forEachRange(function(start, stop) { - // FIXME check if slice is really efficient here - var slice = arr.slice(start, stop); - gl.bufferSubData( - target, - start, - target == goog.webgl.ARRAY_BUFFER ? - new Float32Array(slice) : - new Uint16Array(slice)); - }); - bufferCacheEntry.dirtySet.clear(); - } else { - var buffer = gl.createBuffer(); - gl.bindBuffer(target, buffer); - gl.bufferData( - target, - target == goog.webgl.ARRAY_BUFFER ? - new Float32Array(arr) : new Uint16Array(arr), - buf.getUsage()); - var dirtySet = new ol.structs.IntegerSet(); - buf.addDirtySet(dirtySet); - this.bufferCache_[bufferKey] = { - buf: buf, - buffer: buffer, - dirtySet: dirtySet - }; - } -}; - - /** * @param {ol.Tile} tile Tile. * @param {number} magFilter Mag filter. @@ -300,46 +238,19 @@ ol.renderer.webgl.Map.prototype.createLayerRenderer = function(layer) { }; -/** - * @param {ol.structs.Buffer} buf Buffer. - */ -ol.renderer.webgl.Map.prototype.deleteBuffer = function(buf) { - var gl = this.getGL(); - var bufferKey = goog.getUid(buf); - goog.asserts.assert(bufferKey in this.bufferCache_); - var bufferCacheEntry = this.bufferCache_[bufferKey]; - bufferCacheEntry.buf.removeDirtySet(bufferCacheEntry.dirtySet); - if (!gl.isContextLost()) { - gl.deleteBuffer(bufferCacheEntry.buffer); - } - delete this.bufferCache_[bufferKey]; -}; - - /** * @inheritDoc */ ol.renderer.webgl.Map.prototype.disposeInternal = function() { var gl = this.getGL(); - goog.object.forEach(this.bufferCache_, function(bufferCacheEntry) { - bufferCacheEntry.buf.removeDirtySet(bufferCacheEntry.dirtySet); - }); if (!gl.isContextLost()) { - goog.object.forEach(this.bufferCache_, function(bufferCacheEntry) { - gl.deleteBuffer(bufferCacheEntry.buffer); - }); - goog.object.forEach(this.programCache_, function(program) { - gl.deleteProgram(program); - }); - goog.object.forEach(this.shaderCache_, function(shader) { - gl.deleteShader(shader); - }); this.textureCache_.forEach(function(textureCacheEntry) { if (!goog.isNull(textureCacheEntry)) { gl.deleteTexture(textureCacheEntry.texture); } }); } + goog.dispose(this.context_); goog.base(this, 'disposeInternal'); }; @@ -378,6 +289,14 @@ ol.renderer.webgl.Map.prototype.getCanvas = function() { }; +/** + * @return {ol.webgl.Context} + */ +ol.renderer.webgl.Map.prototype.getContext = function() { + return this.context_; +}; + + /** * @return {WebGLRenderingContext} GL. */ @@ -386,66 +305,6 @@ ol.renderer.webgl.Map.prototype.getGL = function() { }; -/** - * @param {ol.webgl.shader.Fragment} fragmentShaderObject Fragment shader. - * @param {ol.webgl.shader.Vertex} vertexShaderObject Vertex shader. - * @return {WebGLProgram} Program. - */ -ol.renderer.webgl.Map.prototype.getProgram = function( - fragmentShaderObject, vertexShaderObject) { - var programKey = - goog.getUid(fragmentShaderObject) + '/' + goog.getUid(vertexShaderObject); - if (programKey in this.programCache_) { - return this.programCache_[programKey]; - } else { - var gl = this.getGL(); - var program = gl.createProgram(); - gl.attachShader(program, this.getShader(fragmentShaderObject)); - gl.attachShader(program, this.getShader(vertexShaderObject)); - gl.linkProgram(program); - if (goog.DEBUG) { - if (!gl.getProgramParameter(program, goog.webgl.LINK_STATUS) && - !gl.isContextLost()) { - goog.log.error(this.logger_, gl.getProgramInfoLog(program)); - } - } - goog.asserts.assert( - gl.getProgramParameter(program, goog.webgl.LINK_STATUS) || - gl.isContextLost()); - this.programCache_[programKey] = program; - return program; - } -}; - - -/** - * @param {ol.webgl.Shader} shaderObject Shader object. - * @return {WebGLShader} Shader. - */ -ol.renderer.webgl.Map.prototype.getShader = function(shaderObject) { - var shaderKey = goog.getUid(shaderObject); - if (shaderKey in this.shaderCache_) { - return this.shaderCache_[shaderKey]; - } else { - var gl = this.getGL(); - var shader = gl.createShader(shaderObject.getType()); - gl.shaderSource(shader, shaderObject.getSource()); - gl.compileShader(shader); - if (goog.DEBUG) { - if (!gl.getShaderParameter(shader, goog.webgl.COMPILE_STATUS) && - !gl.isContextLost()) { - goog.log.error(this.logger_, gl.getShaderInfoLog(shader)); - } - } - goog.asserts.assert( - gl.getShaderParameter(shader, goog.webgl.COMPILE_STATUS) || - gl.isContextLost()); - this.shaderCache_[shaderKey] = shader; - return shader; - } -}; - - /** * @return {ol.structs.PriorityQueue} Tile texture queue. */ @@ -462,9 +321,6 @@ ol.renderer.webgl.Map.prototype.handleWebGLContextLost = function(event) { event.preventDefault(); this.colorLocations_ = null; this.defaultLocations_ = null; - this.bufferCache_ = {}; - this.shaderCache_ = {}; - this.programCache_ = {}; this.textureCache_.clear(); this.textureCacheFrameMarkerCount_ = 0; goog.object.forEach(this.getLayerRenderers(), function(layerRenderer) { @@ -519,6 +375,7 @@ ol.renderer.webgl.Map.prototype.logger_ = */ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { + var context = this.getContext(); var gl = this.getGL(); if (gl.isContextLost()) { @@ -566,7 +423,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { gl.enable(goog.webgl.BLEND); gl.viewport(0, 0, size[0], size[1]); - this.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); + context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); var currentProgram = null; var locations; @@ -595,7 +452,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { vertexShader = ol.renderer.webgl.map.shader.DefaultVertex.getInstance(); } - var program = this.getProgram(fragmentShader, vertexShader); + var program = context.getProgram(fragmentShader, vertexShader); if (program != currentProgram) { gl.useProgram(program); diff --git a/src/ol/renderer/webgl/webgltilelayerrenderer.js b/src/ol/renderer/webgl/webgltilelayerrenderer.js index 63e336e0d5..00e40b9bc7 100644 --- a/src/ol/renderer/webgl/webgltilelayerrenderer.js +++ b/src/ol/renderer/webgl/webgltilelayerrenderer.js @@ -87,7 +87,8 @@ goog.inherits(ol.renderer.webgl.TileLayer, ol.renderer.webgl.Layer); */ ol.renderer.webgl.TileLayer.prototype.disposeInternal = function() { var mapRenderer = this.getWebGLMapRenderer(); - mapRenderer.deleteBuffer(this.arrayBuffer_); + var context = mapRenderer.getContext(); + context.deleteBuffer(this.arrayBuffer_); goog.base(this, 'disposeInternal'); }; @@ -117,6 +118,7 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame = function(frameState, layerState) { var mapRenderer = this.getWebGLMapRenderer(); + var context = mapRenderer.getContext(); var gl = mapRenderer.getGL(); var view2DState = frameState.view2DState; @@ -172,15 +174,14 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame = gl.clear(goog.webgl.COLOR_BUFFER_BIT); gl.disable(goog.webgl.BLEND); - var program = mapRenderer.getProgram( - this.fragmentShader_, this.vertexShader_); + var program = context.getProgram(this.fragmentShader_, this.vertexShader_); gl.useProgram(program); if (goog.isNull(this.locations_)) { this.locations_ = new ol.renderer.webgl.tilelayer.shader.Locations(gl, program); } - mapRenderer.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); + context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); gl.enableVertexAttribArray(this.locations_.a_position); gl.vertexAttribPointer( this.locations_.a_position, 2, goog.webgl.FLOAT, false, 16, 0); diff --git a/src/ol/webgl/context.js b/src/ol/webgl/context.js new file mode 100644 index 0000000000..404fe4361e --- /dev/null +++ b/src/ol/webgl/context.js @@ -0,0 +1,243 @@ +goog.provide('ol.webgl.Context'); + +goog.require('goog.asserts'); +goog.require('goog.events'); +goog.require('goog.log'); +goog.require('goog.object'); +goog.require('ol.structs.Buffer'); +goog.require('ol.structs.IntegerSet'); +goog.require('ol.webgl.WebGLContextEventType'); + + +/** + * @typedef {{buf: ol.structs.Buffer, + * buffer: WebGLBuffer, + * dirtySet: ol.structs.IntegerSet}} + */ +ol.webgl.BufferCacheEntry; + + + +/** + * @constructor + * @extends {goog.events.EventTarget} + * @param {HTMLCanvasElement} canvas Canvas. + * @param {WebGLRenderingContext} gl GL. + */ +ol.webgl.Context = function(canvas, gl) { + + /** + * @private + * @type {HTMLCanvasElement} + */ + this.canvas_ = canvas; + + /** + * @private + * @type {WebGLRenderingContext} + */ + this.gl_ = gl; + + /** + * @private + * @type {Object.} + */ + this.bufferCache_ = {}; + + /** + * @private + * @type {Object.} + */ + this.shaderCache_ = {}; + + /** + * @private + * @type {Object.} + */ + this.programCache_ = {}; + + goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.LOST, + this.handleWebGLContextLost, false, this); + goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.RESTORED, + this.handleWebGLContextRestored, false, this); + +}; + + +/** + * @param {number} target Target. + * @param {ol.structs.Buffer} buf Buffer. + */ +ol.webgl.Context.prototype.bindBuffer = function(target, buf) { + var gl = this.getGL(); + var arr = buf.getArray(); + var bufferKey = goog.getUid(buf); + if (bufferKey in this.bufferCache_) { + var bufferCacheEntry = this.bufferCache_[bufferKey]; + gl.bindBuffer(target, bufferCacheEntry.buffer); + bufferCacheEntry.dirtySet.forEachRange(function(start, stop) { + // FIXME check if slice is really efficient here + var slice = arr.slice(start, stop); + gl.bufferSubData( + target, + start, + target == goog.webgl.ARRAY_BUFFER ? + new Float32Array(slice) : + new Uint16Array(slice)); + }); + bufferCacheEntry.dirtySet.clear(); + } else { + var buffer = gl.createBuffer(); + gl.bindBuffer(target, buffer); + gl.bufferData( + target, + target == goog.webgl.ARRAY_BUFFER ? + new Float32Array(arr) : new Uint16Array(arr), + buf.getUsage()); + var dirtySet = new ol.structs.IntegerSet(); + buf.addDirtySet(dirtySet); + this.bufferCache_[bufferKey] = { + buf: buf, + buffer: buffer, + dirtySet: dirtySet + }; + } +}; + + +/** + * @param {ol.structs.Buffer} buf Buffer. + */ +ol.webgl.Context.prototype.deleteBuffer = function(buf) { + var gl = this.getGL(); + var bufferKey = goog.getUid(buf); + goog.asserts.assert(bufferKey in this.bufferCache_); + var bufferCacheEntry = this.bufferCache_[bufferKey]; + bufferCacheEntry.buf.removeDirtySet(bufferCacheEntry.dirtySet); + if (!gl.isContextLost()) { + gl.deleteBuffer(bufferCacheEntry.buffer); + } + delete this.bufferCache_[bufferKey]; +}; + + +/** + * @inheritDoc + */ +ol.webgl.Context.prototype.disposeInternal = function() { + goog.object.forEach(this.bufferCache_, function(bufferCacheEntry) { + bufferCacheEntry.buf.removeDirtySet(bufferCacheEntry.dirtySet); + }); + var gl = this.getGL(); + if (!gl.isContextLost()) { + goog.object.forEach(this.bufferCache_, function(bufferCacheEntry) { + gl.deleteBuffer(bufferCacheEntry.buffer); + }); + goog.object.forEach(this.programCache_, function(program) { + gl.deleteProgram(program); + }); + goog.object.forEach(this.shaderCache_, function(shader) { + gl.deleteShader(shader); + }); + } +}; + + +/** + * @return {HTMLCanvasElement} Canvas. + */ +ol.webgl.Context.prototype.getCanvas = function() { + return this.canvas_; +}; + + +/** + * @return {WebGLRenderingContext} GL. + */ +ol.webgl.Context.prototype.getGL = function() { + return this.gl_; +}; + + +/** + * @param {ol.webgl.Shader} shaderObject Shader object. + * @return {WebGLShader} Shader. + */ +ol.webgl.Context.prototype.getShader = function(shaderObject) { + var shaderKey = goog.getUid(shaderObject); + if (shaderKey in this.shaderCache_) { + return this.shaderCache_[shaderKey]; + } else { + var gl = this.getGL(); + var shader = gl.createShader(shaderObject.getType()); + gl.shaderSource(shader, shaderObject.getSource()); + gl.compileShader(shader); + if (goog.DEBUG) { + if (!gl.getShaderParameter(shader, goog.webgl.COMPILE_STATUS) && + !gl.isContextLost()) { + goog.log.error(this.logger_, gl.getShaderInfoLog(shader)); + } + } + goog.asserts.assert( + gl.getShaderParameter(shader, goog.webgl.COMPILE_STATUS) || + gl.isContextLost()); + this.shaderCache_[shaderKey] = shader; + return shader; + } +}; + + +/** + * @param {ol.webgl.shader.Fragment} fragmentShaderObject Fragment shader. + * @param {ol.webgl.shader.Vertex} vertexShaderObject Vertex shader. + * @return {WebGLProgram} Program. + */ +ol.webgl.Context.prototype.getProgram = function( + fragmentShaderObject, vertexShaderObject) { + var programKey = + goog.getUid(fragmentShaderObject) + '/' + goog.getUid(vertexShaderObject); + if (programKey in this.programCache_) { + return this.programCache_[programKey]; + } else { + var gl = this.getGL(); + var program = gl.createProgram(); + gl.attachShader(program, this.getShader(fragmentShaderObject)); + gl.attachShader(program, this.getShader(vertexShaderObject)); + gl.linkProgram(program); + if (goog.DEBUG) { + if (!gl.getProgramParameter(program, goog.webgl.LINK_STATUS) && + !gl.isContextLost()) { + goog.log.error(this.logger_, gl.getProgramInfoLog(program)); + } + } + goog.asserts.assert( + gl.getProgramParameter(program, goog.webgl.LINK_STATUS) || + gl.isContextLost()); + this.programCache_[programKey] = program; + return program; + } +}; + + +/** + * FIXME empy description for jsdoc + */ +ol.webgl.Context.prototype.handleWebGLContextLost = function() { + goog.object.clear(this.bufferCache_); + goog.object.clear(this.shaderCache_); + goog.object.clear(this.programCache_); +}; + + +/** + * FIXME empy description for jsdoc + */ +ol.webgl.Context.prototype.handleWebGLContextRestored = function() { +}; + + +/** + * @private + * @type {goog.log.Logger} + */ +ol.webgl.Context.prototype.logger_ = goog.log.getLogger('ol.webgl.Context'); From 26fa8d9d5331b889e95ab7d790d1bde18e2c6456 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 31 Oct 2013 16:48:37 +0100 Subject: [PATCH 002/919] Track current program in context, rather than renderers --- src/ol/renderer/webgl/webglmaprenderer.js | 37 ++++++++----------- .../renderer/webgl/webgltilelayerrenderer.js | 2 +- src/ol/webgl/context.js | 23 ++++++++++++ 3 files changed, 40 insertions(+), 22 deletions(-) diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index c1c5561f07..87dd4f886f 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -425,7 +425,6 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); - var currentProgram = null; var locations; for (i = 0, ii = layersArray.length; i < ii; ++i) { layer = layersArray[i]; @@ -453,29 +452,26 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { } var program = context.getProgram(fragmentShader, vertexShader); - if (program != currentProgram) { - gl.useProgram(program); - currentProgram = program; - - if (useColor) { - if (goog.isNull(this.colorLocations_)) { - locations = - new ol.renderer.webgl.map.shader.Color.Locations(gl, program); - this.colorLocations_ = locations; - } else { - locations = this.colorLocations_; - } + if (useColor) { + if (goog.isNull(this.colorLocations_)) { + locations = + new ol.renderer.webgl.map.shader.Color.Locations(gl, program); + this.colorLocations_ = locations; } else { - if (goog.isNull(this.defaultLocations_)) { - locations = - new ol.renderer.webgl.map.shader.Default.Locations(gl, program); - this.defaultLocations_ = locations; - } else { - locations = this.defaultLocations_; - } + locations = this.colorLocations_; } + } else { + if (goog.isNull(this.defaultLocations_)) { + locations = + new ol.renderer.webgl.map.shader.Default.Locations(gl, program); + this.defaultLocations_ = locations; + } else { + locations = this.defaultLocations_; + } + } + if (context.useProgram(program)) { gl.enableVertexAttribArray(locations.a_position); gl.vertexAttribPointer( locations.a_position, 2, goog.webgl.FLOAT, false, 16, 0); @@ -483,7 +479,6 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { gl.vertexAttribPointer( locations.a_texCoord, 2, goog.webgl.FLOAT, false, 16, 8); gl.uniform1i(locations.u_texture, 0); - } layerRenderer = this.getLayerRenderer(layer); diff --git a/src/ol/renderer/webgl/webgltilelayerrenderer.js b/src/ol/renderer/webgl/webgltilelayerrenderer.js index 00e40b9bc7..cf73e018b8 100644 --- a/src/ol/renderer/webgl/webgltilelayerrenderer.js +++ b/src/ol/renderer/webgl/webgltilelayerrenderer.js @@ -175,7 +175,7 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame = gl.disable(goog.webgl.BLEND); var program = context.getProgram(this.fragmentShader_, this.vertexShader_); - gl.useProgram(program); + context.useProgram(program); if (goog.isNull(this.locations_)) { this.locations_ = new ol.renderer.webgl.tilelayer.shader.Locations(gl, program); diff --git a/src/ol/webgl/context.js b/src/ol/webgl/context.js index 404fe4361e..bca86a5dc2 100644 --- a/src/ol/webgl/context.js +++ b/src/ol/webgl/context.js @@ -56,6 +56,12 @@ ol.webgl.Context = function(canvas, gl) { */ this.programCache_ = {}; + /** + * @private + * @type {WebGLProgram} + */ + this.currentProgram_ = null; + goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.LOST, this.handleWebGLContextLost, false, this); goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.RESTORED, @@ -226,6 +232,7 @@ ol.webgl.Context.prototype.handleWebGLContextLost = function() { goog.object.clear(this.bufferCache_); goog.object.clear(this.shaderCache_); goog.object.clear(this.programCache_); + this.currentProgram_ = null; }; @@ -236,6 +243,22 @@ ol.webgl.Context.prototype.handleWebGLContextRestored = function() { }; +/** + * @param {WebGLProgram} program Program. + * @return {boolean} Changed. + */ +ol.webgl.Context.prototype.useProgram = function(program) { + if (program == this.currentProgram_) { + return false; + } else { + var gl = this.getGL(); + gl.useProgram(program); + this.currentProgram_ = program; + return true; + } +}; + + /** * @private * @type {goog.log.Logger} From 2b2e7bf786d752abe9e203874574711d3cbb2fa5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 31 Oct 2013 19:13:40 +0100 Subject: [PATCH 003/919] Rename ol.renderer.Layer#renderFrame to prepareFrame --- src/ol/renderer/canvas/canvasimagelayerrenderer.js | 2 +- src/ol/renderer/canvas/canvasmaprenderer.js | 2 +- src/ol/renderer/canvas/canvastilelayerrenderer.js | 6 +++--- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 6 +++--- src/ol/renderer/dom/domimagelayerrenderer.js | 2 +- src/ol/renderer/dom/dommaprenderer.js | 2 +- src/ol/renderer/dom/domtilelayerrenderer.js | 2 +- src/ol/renderer/layerrenderer.js | 2 +- src/ol/renderer/webgl/webglimagelayerrenderer.js | 2 +- src/ol/renderer/webgl/webglmaprenderer.js | 2 +- src/ol/renderer/webgl/webgltilelayerrenderer.js | 2 +- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index 7f5f477058..e2c9af4486 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -67,7 +67,7 @@ ol.renderer.canvas.ImageLayer.prototype.getTransform = function() { /** * @inheritDoc */ -ol.renderer.canvas.ImageLayer.prototype.renderFrame = +ol.renderer.canvas.ImageLayer.prototype.prepareFrame = function(frameState, layerState) { var view2DState = frameState.view2DState; diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index 3b73d6957f..a032bf0245 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -120,7 +120,7 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { viewResolution < layerState.minResolution) { continue; } - layerRenderer.renderFrame(frameState, layerState); + layerRenderer.prepareFrame(frameState, layerState); image = layerRenderer.getImage(); if (!goog.isNull(image)) { diff --git a/src/ol/renderer/canvas/canvastilelayerrenderer.js b/src/ol/renderer/canvas/canvastilelayerrenderer.js index 52d0c14213..a0ecf7ff55 100644 --- a/src/ol/renderer/canvas/canvastilelayerrenderer.js +++ b/src/ol/renderer/canvas/canvastilelayerrenderer.js @@ -105,7 +105,7 @@ ol.renderer.canvas.TileLayer.prototype.getTransform = function() { /** * @inheritDoc */ -ol.renderer.canvas.TileLayer.prototype.renderFrame = +ol.renderer.canvas.TileLayer.prototype.prepareFrame = function(frameState, layerState) { // @@ -137,12 +137,12 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame = // or (3) the canvas tile range doesn't contain the required tile // range. This canvas tile range invalidation thing is related to // an optimization where we attempt to redraw as few pixels as - // possible on each renderFrame call. + // possible on each prepareFrame call. // // - If the canvas tile range has been invalidated we reset // renderedCanvasTileRange_ and reset the renderedTiles_ array. // The renderedTiles_ array is the structure used to determine - // the canvas pixels that need not be redrawn from one renderFrame + // the canvas pixels that need not be redrawn from one prepareFrame // call to another. It records while tile has been rendered at // which position in the canvas. // diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 5e39824950..33285bc7c4 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -340,7 +340,7 @@ ol.renderer.canvas.VectorLayer.prototype.handleLayerChange_ = function(event) { /** * @inheritDoc */ -ol.renderer.canvas.VectorLayer.prototype.renderFrame = +ol.renderer.canvas.VectorLayer.prototype.prepareFrame = function(frameState, layerState) { // TODO: consider bailing out here if rendered center and resolution @@ -378,8 +378,8 @@ ol.renderer.canvas.VectorLayer.prototype.renderFrame = } if (goog.isNull(tileGrid)) { - // We should only get here when the first call to renderFrame happens during - // an animation. Try again in the next renderFrame call. + // We should only get here when the first call to prepareFrame happens + // during an animation. Try again in the next prepareFrame call. return; } diff --git a/src/ol/renderer/dom/domimagelayerrenderer.js b/src/ol/renderer/dom/domimagelayerrenderer.js index 8c8a3fa7c9..c215890ff2 100644 --- a/src/ol/renderer/dom/domimagelayerrenderer.js +++ b/src/ol/renderer/dom/domimagelayerrenderer.js @@ -55,7 +55,7 @@ ol.renderer.dom.ImageLayer.prototype.getImageLayer = function() { /** * @inheritDoc */ -ol.renderer.dom.ImageLayer.prototype.renderFrame = +ol.renderer.dom.ImageLayer.prototype.prepareFrame = function(frameState, layerState) { var view2DState = frameState.view2DState; diff --git a/src/ol/renderer/dom/dommaprenderer.js b/src/ol/renderer/dom/dommaprenderer.js index f05b9326de..c2322229dd 100644 --- a/src/ol/renderer/dom/dommaprenderer.js +++ b/src/ol/renderer/dom/dommaprenderer.js @@ -86,7 +86,7 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) { layerRenderer = this.getLayerRenderer(layer); layerState = frameState.layerStates[goog.getUid(layer)]; if (layerState.sourceState == ol.source.State.READY) { - layerRenderer.renderFrame(frameState, layerState); + layerRenderer.prepareFrame(frameState, layerState); } } diff --git a/src/ol/renderer/dom/domtilelayerrenderer.js b/src/ol/renderer/dom/domtilelayerrenderer.js index 68733fbc16..bb37352bd8 100644 --- a/src/ol/renderer/dom/domtilelayerrenderer.js +++ b/src/ol/renderer/dom/domtilelayerrenderer.js @@ -77,7 +77,7 @@ ol.renderer.dom.TileLayer.prototype.getTileLayer = function() { /** * @inheritDoc */ -ol.renderer.dom.TileLayer.prototype.renderFrame = +ol.renderer.dom.TileLayer.prototype.prepareFrame = function(frameState, layerState) { if (!layerState.visible) { diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index 36bf1863ea..6da52f6bfa 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -106,7 +106,7 @@ ol.renderer.Layer.prototype.handleImageChange = function(event) { * @param {ol.FrameState} frameState Frame state. * @param {ol.layer.LayerState} layerState Layer state. */ -ol.renderer.Layer.prototype.renderFrame = goog.abstractMethod; +ol.renderer.Layer.prototype.prepareFrame = goog.abstractMethod; /** diff --git a/src/ol/renderer/webgl/webglimagelayerrenderer.js b/src/ol/renderer/webgl/webglimagelayerrenderer.js index 0249e1c336..01f7151f5e 100644 --- a/src/ol/renderer/webgl/webglimagelayerrenderer.js +++ b/src/ol/renderer/webgl/webglimagelayerrenderer.js @@ -83,7 +83,7 @@ ol.renderer.webgl.ImageLayer.prototype.getImageLayer = function() { /** * @inheritDoc */ -ol.renderer.webgl.ImageLayer.prototype.renderFrame = +ol.renderer.webgl.ImageLayer.prototype.prepareFrame = function(frameState, layerState) { var gl = this.getWebGLMapRenderer().getGL(); diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 87dd4f886f..19d975f852 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -406,7 +406,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { layerState.sourceState == ol.source.State.READY && viewResolution < layerState.maxResolution && viewResolution >= layerState.minResolution) { - layerRenderer.renderFrame(frameState, layerState); + layerRenderer.prepareFrame(frameState, layerState); } } diff --git a/src/ol/renderer/webgl/webgltilelayerrenderer.js b/src/ol/renderer/webgl/webgltilelayerrenderer.js index cf73e018b8..0f252d7fbb 100644 --- a/src/ol/renderer/webgl/webgltilelayerrenderer.js +++ b/src/ol/renderer/webgl/webgltilelayerrenderer.js @@ -114,7 +114,7 @@ ol.renderer.webgl.TileLayer.prototype.handleWebGLContextLost = function() { /** * @inheritDoc */ -ol.renderer.webgl.TileLayer.prototype.renderFrame = +ol.renderer.webgl.TileLayer.prototype.prepareFrame = function(frameState, layerState) { var mapRenderer = this.getWebGLMapRenderer(); From d7591331ba555f6ca526f0fcd7f36cb120078f3e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 31 Oct 2013 19:30:08 +0100 Subject: [PATCH 004/919] Add and use ol.renderer.webgl.Layer#composeFrame --- src/ol/renderer/webgl/webgllayerrenderer.js | 92 +++++++++++++++++++++ src/ol/renderer/webgl/webglmaprenderer.js | 92 ++------------------- 2 files changed, 98 insertions(+), 86 deletions(-) diff --git a/src/ol/renderer/webgl/webgllayerrenderer.js b/src/ol/renderer/webgl/webgllayerrenderer.js index 73395f96dc..ede80c9611 100644 --- a/src/ol/renderer/webgl/webgllayerrenderer.js +++ b/src/ol/renderer/webgl/webgllayerrenderer.js @@ -7,6 +7,8 @@ goog.require('goog.webgl'); goog.require('ol.FrameState'); goog.require('ol.layer.Layer'); goog.require('ol.renderer.Layer'); +goog.require('ol.renderer.webgl.map.shader.Color'); +goog.require('ol.renderer.webgl.map.shader.Default'); goog.require('ol.vec.Mat4'); @@ -105,6 +107,18 @@ ol.renderer.webgl.Layer = function(mapRenderer, layer) { */ this.saturationMatrix_ = goog.vec.Mat4.createFloat32(); + /** + * @private + * @type {ol.renderer.webgl.map.shader.Color.Locations} + */ + this.colorLocations_ = null; + + /** + * @private + * @type {ol.renderer.webgl.map.shader.Default.Locations} + */ + this.defaultLocations_ = null; + }; goog.inherits(ol.renderer.webgl.Layer, ol.renderer.Layer); @@ -163,6 +177,84 @@ ol.renderer.webgl.Layer.prototype.bindFramebuffer = }; +/** + * @param {ol.FrameState} frameState Frame state. + * @param {ol.layer.LayerState} layerState Layer state. + * @param {ol.webgl.Context} context Context. + */ +ol.renderer.webgl.Layer.prototype.composeFrame = + function(frameState, layerState, context) { + + var gl = context.getGL(); + + var useColor = + layerState.brightness || + layerState.contrast != 1 || + layerState.hue || + layerState.saturation != 1; + + var fragmentShader, vertexShader; + if (useColor) { + fragmentShader = ol.renderer.webgl.map.shader.ColorFragment.getInstance(); + vertexShader = ol.renderer.webgl.map.shader.ColorVertex.getInstance(); + } else { + fragmentShader = + ol.renderer.webgl.map.shader.DefaultFragment.getInstance(); + vertexShader = ol.renderer.webgl.map.shader.DefaultVertex.getInstance(); + } + + var program = context.getProgram(fragmentShader, vertexShader); + + // FIXME colorLocations_ and defaultLocations_ should be shared somehow + var locations; + if (useColor) { + if (goog.isNull(this.colorLocations_)) { + locations = + new ol.renderer.webgl.map.shader.Color.Locations(gl, program); + this.colorLocations_ = locations; + } else { + locations = this.colorLocations_; + } + } else { + if (goog.isNull(this.defaultLocations_)) { + locations = + new ol.renderer.webgl.map.shader.Default.Locations(gl, program); + this.defaultLocations_ = locations; + } else { + locations = this.defaultLocations_; + } + } + + if (context.useProgram(program)) { + gl.enableVertexAttribArray(locations.a_position); + gl.vertexAttribPointer( + locations.a_position, 2, goog.webgl.FLOAT, false, 16, 0); + gl.enableVertexAttribArray(locations.a_texCoord); + gl.vertexAttribPointer( + locations.a_texCoord, 2, goog.webgl.FLOAT, false, 16, 8); + gl.uniform1i(locations.u_texture, 0); + } + + gl.uniformMatrix4fv( + locations.u_texCoordMatrix, false, this.getTexCoordMatrix()); + gl.uniformMatrix4fv(locations.u_projectionMatrix, false, + this.getProjectionMatrix()); + if (useColor) { + gl.uniformMatrix4fv(locations.u_colorMatrix, false, + this.getColorMatrix( + layerState.brightness, + layerState.contrast, + layerState.hue, + layerState.saturation + )); + } + gl.uniform1f(locations.u_opacity, layerState.opacity); + gl.bindTexture(goog.webgl.TEXTURE_2D, this.getTexture()); + gl.drawArrays(goog.webgl.TRIANGLE_STRIP, 0, 4); + +}; + + /** * @param {number} brightness Brightness. * @param {number} contrast Contrast. diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 19d975f852..ebf30c1f99 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -21,8 +21,6 @@ goog.require('ol.layer.Tile'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.webgl.ImageLayer'); goog.require('ol.renderer.webgl.TileLayer'); -goog.require('ol.renderer.webgl.map.shader.Color'); -goog.require('ol.renderer.webgl.map.shader.Default'); goog.require('ol.source.State'); goog.require('ol.structs.Buffer'); goog.require('ol.structs.LRUCache'); @@ -93,18 +91,6 @@ ol.renderer.webgl.Map = function(container, map) { goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.RESTORED, this.handleWebGLContextRestored, false, this); - /** - * @private - * @type {ol.renderer.webgl.map.shader.Color.Locations} - */ - this.colorLocations_ = null; - - /** - * @private - * @type {ol.renderer.webgl.map.shader.Default.Locations} - */ - this.defaultLocations_ = null; - /** * @private * @type {ol.structs.Buffer} @@ -319,8 +305,6 @@ ol.renderer.webgl.Map.prototype.getTileTextureQueue = function() { */ ol.renderer.webgl.Map.prototype.handleWebGLContextLost = function(event) { event.preventDefault(); - this.colorLocations_ = null; - this.defaultLocations_ = null; this.textureCache_.clear(); this.textureCacheFrameMarkerCount_ = 0; goog.object.forEach(this.getLayerRenderers(), function(layerRenderer) { @@ -425,80 +409,16 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); - var locations; for (i = 0, ii = layersArray.length; i < ii; ++i) { layer = layersArray[i]; layerState = frameState.layerStates[goog.getUid(layer)]; - if (!layerState.visible || - layerState.sourceState != ol.source.State.READY || - viewResolution >= layerState.maxResolution || - viewResolution < layerState.minResolution) { - continue; + if (layerState.visible && + layerState.sourceState == ol.source.State.READY && + viewResolution < layerState.maxResolution && + viewResolution >= layerState.minResolution) { + layerRenderer = this.getLayerRenderer(layer); + layerRenderer.composeFrame(frameState, layerState, context); } - var useColor = - layerState.brightness || - layerState.contrast != 1 || - layerState.hue || - layerState.saturation != 1; - - var fragmentShader, vertexShader; - if (useColor) { - fragmentShader = ol.renderer.webgl.map.shader.ColorFragment.getInstance(); - vertexShader = ol.renderer.webgl.map.shader.ColorVertex.getInstance(); - } else { - fragmentShader = - ol.renderer.webgl.map.shader.DefaultFragment.getInstance(); - vertexShader = ol.renderer.webgl.map.shader.DefaultVertex.getInstance(); - } - - var program = context.getProgram(fragmentShader, vertexShader); - - if (useColor) { - if (goog.isNull(this.colorLocations_)) { - locations = - new ol.renderer.webgl.map.shader.Color.Locations(gl, program); - this.colorLocations_ = locations; - } else { - locations = this.colorLocations_; - } - } else { - if (goog.isNull(this.defaultLocations_)) { - locations = - new ol.renderer.webgl.map.shader.Default.Locations(gl, program); - this.defaultLocations_ = locations; - } else { - locations = this.defaultLocations_; - } - } - - if (context.useProgram(program)) { - gl.enableVertexAttribArray(locations.a_position); - gl.vertexAttribPointer( - locations.a_position, 2, goog.webgl.FLOAT, false, 16, 0); - gl.enableVertexAttribArray(locations.a_texCoord); - gl.vertexAttribPointer( - locations.a_texCoord, 2, goog.webgl.FLOAT, false, 16, 8); - gl.uniform1i(locations.u_texture, 0); - } - - layerRenderer = this.getLayerRenderer(layer); - gl.uniformMatrix4fv( - locations.u_texCoordMatrix, false, layerRenderer.getTexCoordMatrix()); - gl.uniformMatrix4fv(locations.u_projectionMatrix, false, - layerRenderer.getProjectionMatrix()); - if (useColor) { - gl.uniformMatrix4fv(locations.u_colorMatrix, false, - layerRenderer.getColorMatrix( - layerState.brightness, - layerState.contrast, - layerState.hue, - layerState.saturation - )); - } - gl.uniform1f(locations.u_opacity, layerState.opacity); - gl.bindTexture(goog.webgl.TEXTURE_2D, layerRenderer.getTexture()); - gl.drawArrays(goog.webgl.TRIANGLE_STRIP, 0, 4); - } if (!this.renderedVisible_) { From b403c256464caf2594213f4d6aeafe438803b03a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 31 Oct 2013 19:35:34 +0100 Subject: [PATCH 005/919] Factor out layersToDraw --- src/ol/renderer/webgl/webglmaprenderer.js | 24 ++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index ebf30c1f99..021332ad15 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -379,21 +379,28 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { this.textureCache_.set((-frameState.index).toString(), null); ++this.textureCacheFrameMarkerCount_; + var layersToDraw = []; var layersArray = frameState.layersArray; var viewResolution = frameState.view2DState.resolution; var i, ii, layer, layerRenderer, layerState; for (i = 0, ii = layersArray.length; i < ii; ++i) { layer = layersArray[i]; - layerRenderer = this.getLayerRenderer(layer); layerState = frameState.layerStates[goog.getUid(layer)]; if (layerState.visible && layerState.sourceState == ol.source.State.READY && viewResolution < layerState.maxResolution && viewResolution >= layerState.minResolution) { - layerRenderer.prepareFrame(frameState, layerState); + layersToDraw.push(layer); } } + for (i = 0, ii = layersToDraw.length; i < ii; ++i) { + layer = layersToDraw[i]; + layerRenderer = this.getLayerRenderer(layer); + layerState = frameState.layerStates[goog.getUid(layer)]; + layerRenderer.prepareFrame(frameState, layerState); + } + var size = frameState.size; if (this.canvas_.width != size[0] || this.canvas_.height != size[1]) { this.canvas_.width = size[0]; @@ -409,16 +416,11 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); - for (i = 0, ii = layersArray.length; i < ii; ++i) { - layer = layersArray[i]; + for (i = 0, ii = layersToDraw.length; i < ii; ++i) { + layer = layersToDraw[i]; layerState = frameState.layerStates[goog.getUid(layer)]; - if (layerState.visible && - layerState.sourceState == ol.source.State.READY && - viewResolution < layerState.maxResolution && - viewResolution >= layerState.minResolution) { - layerRenderer = this.getLayerRenderer(layer); - layerRenderer.composeFrame(frameState, layerState, context); - } + layerRenderer = this.getLayerRenderer(layer); + layerRenderer.composeFrame(frameState, layerState, context); } if (!this.renderedVisible_) { From 3a2133c130ca9856b9852012797a35e3a8144156 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 31 Oct 2013 19:50:01 +0100 Subject: [PATCH 006/919] Add and use ol.renderer.canvas.Layer#composeFrame --- src/ol/renderer/canvas/canvaslayerrenderer.js | 39 +++++++++++++++++++ src/ol/renderer/canvas/canvasmaprenderer.js | 35 +---------------- 2 files changed, 41 insertions(+), 33 deletions(-) diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index 074e1b87a1..340965d3be 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -1,5 +1,6 @@ goog.provide('ol.renderer.canvas.Layer'); +goog.require('goog.vec.Mat4'); goog.require('ol.layer.Layer'); goog.require('ol.renderer.Layer'); @@ -17,6 +18,44 @@ ol.renderer.canvas.Layer = function(mapRenderer, layer) { goog.inherits(ol.renderer.canvas.Layer, ol.renderer.Layer); +/** + * @param {ol.FrameState} frameState Frame state. + * @param {ol.layer.LayerState} layerState Layer state. + * @param {CanvasRenderingContext2D} context Context. + */ +ol.renderer.canvas.Layer.prototype.composeFrame = + function(frameState, layerState, context) { + + var image = this.getImage(); + if (!goog.isNull(image)) { + var transform = this.getTransform(); + context.globalAlpha = layerState.opacity; + + // for performance reasons, context.setTransform is only used + // when the view is rotated. see http://jsperf.com/canvas-transform + if (frameState.view2DState.rotation === 0) { + var dx = goog.vec.Mat4.getElement(transform, 0, 3); + var dy = goog.vec.Mat4.getElement(transform, 1, 3); + var dw = image.width * goog.vec.Mat4.getElement(transform, 0, 0); + var dh = image.height * goog.vec.Mat4.getElement(transform, 1, 1); + context.drawImage(image, 0, 0, +image.width, +image.height, + Math.round(dx), Math.round(dy), Math.round(dw), Math.round(dh)); + } else { + context.setTransform( + goog.vec.Mat4.getElement(transform, 0, 0), + goog.vec.Mat4.getElement(transform, 1, 0), + goog.vec.Mat4.getElement(transform, 0, 1), + goog.vec.Mat4.getElement(transform, 1, 1), + goog.vec.Mat4.getElement(transform, 0, 3), + goog.vec.Mat4.getElement(transform, 1, 3)); + context.drawImage(image, 0, 0); + context.setTransform(1, 0, 0, 1, 0, 0); + } + } + +}; + + /** * @return {HTMLCanvasElement|HTMLVideoElement|Image} Canvas. */ diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index a032bf0245..e48d99d654 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -107,9 +107,8 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { var layerStates = frameState.layerStates; var layersArray = frameState.layersArray; var viewResolution = frameState.view2DState.resolution; - var i, ii, image, layer, layerRenderer, layerState, transform; + var i, ii, layer, layerRenderer, layerState; for (i = 0, ii = layersArray.length; i < ii; ++i) { - layer = layersArray[i]; layerRenderer = /** @type {ol.renderer.canvas.Layer} */ (this.getLayerRenderer(layer)); @@ -121,37 +120,7 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { continue; } layerRenderer.prepareFrame(frameState, layerState); - - image = layerRenderer.getImage(); - if (!goog.isNull(image)) { - transform = layerRenderer.getTransform(); - context.globalAlpha = layerState.opacity; - - // for performance reasons, context.setTransform is only used - // when the view is rotated. see http://jsperf.com/canvas-transform - if (frameState.view2DState.rotation === 0) { - var dx = goog.vec.Mat4.getElement(transform, 0, 3); - var dy = goog.vec.Mat4.getElement(transform, 1, 3); - var dw = image.width * goog.vec.Mat4.getElement(transform, 0, 0); - var dh = image.height * goog.vec.Mat4.getElement(transform, 1, 1); - goog.asserts.assert(goog.isNumber(image.width)); - goog.asserts.assert(goog.isNumber(image.height)); - context.drawImage(image, 0, 0, image.width, image.height, - Math.round(dx), Math.round(dy), Math.round(dw), Math.round(dh)); - } else { - context.setTransform( - goog.vec.Mat4.getElement(transform, 0, 0), - goog.vec.Mat4.getElement(transform, 1, 0), - goog.vec.Mat4.getElement(transform, 0, 1), - goog.vec.Mat4.getElement(transform, 1, 1), - goog.vec.Mat4.getElement(transform, 0, 3), - goog.vec.Mat4.getElement(transform, 1, 3)); - - context.drawImage(image, 0, 0); - context.setTransform(1, 0, 0, 1, 0, 0); - } - } - + layerRenderer.composeFrame(frameState, layerState, context); } if (!this.renderedVisible_) { From 4b9642f4b1627f765c6f3b08bd1cecf6fde66b96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 31 Oct 2013 15:51:19 +0100 Subject: [PATCH 007/919] Experimental canvas vector layer renderer --- .../canvas/canvasvectorlayerrenderer2.js | 187 ++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 src/ol/renderer/canvas/canvasvectorlayerrenderer2.js diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js new file mode 100644 index 0000000000..8b34ee0d8b --- /dev/null +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js @@ -0,0 +1,187 @@ +goog.provide('ol.renderer.canvas.VectorLayer2'); + +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); +goog.require('goog.vec.Mat4'); +goog.require('ol.ViewHint'); +goog.require('ol.extent'); +goog.require('ol.layer.Vector'); +goog.require('ol.renderer.canvas.Layer'); +goog.require('ol.renderer.canvas.Vector'); + + + +/** + * @constructor + * @extends {ol.renderer.canvas.Layer} + * @param {ol.renderer.Map} mapRenderer Map renderer. + * @param {ol.layer.Vector} layer Vector layer. + */ +ol.renderer.canvas.VectorLayer2 = function(mapRenderer, layer) { + + goog.base(this, mapRenderer, layer); + + /** + * Final canvas made available to the map renderer. + * @private + * @type {HTMLCanvasElement} + */ + this.canvas_ = /** @type {HTMLCanvasElement} */ + (goog.dom.createElement(goog.dom.TagName.CANVAS)); + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.coordsTransform_ = goog.vec.Mat4.createNumber(); + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.transform_ = goog.vec.Mat4.createNumber(); + + /** + * @private + * @type {number} + */ + this.renderedResolution_ = 0; + + /** + * @private + * @type {ol.Extent} + */ + this.renderedExtent_ = null; + + /** + * @private + * @type {function()} + */ + this.requestMapRenderFrame_ = goog.bind(function() { + mapRenderer.getMap().requestRenderFrame(); + }, this); + +}; +goog.inherits(ol.renderer.canvas.VectorLayer2, ol.renderer.canvas.Layer); + + +/** + * @inheritDoc + */ +ol.renderer.canvas.VectorLayer2.prototype.getImage = function() { + return this.canvas_; +}; + + +/** + * @return {ol.layer.Vector} Vector layer. + */ +ol.renderer.canvas.VectorLayer2.prototype.getVectorLayer = function() { + return /** @type {ol.layer.Vector} */ (this.getLayer()); +}; + + +/** + * @inheritDoc + */ +ol.renderer.canvas.VectorLayer2.prototype.getTransform = function() { + return this.transform_; +}; + + +/** + * @param {ol.layer.VectorEvent} event Vector layer event. + * @private + */ +ol.renderer.canvas.VectorLayer2.prototype.handleLayerChange_ = function(event) { + this.requestMapRenderFrame_(); +}; + + +/** + * @inheritDoc + */ +ol.renderer.canvas.VectorLayer2.prototype.prepareFrame = + function(frameState, layerState) { + + var extent = frameState.extent; + var view2DState = frameState.view2DState; + var viewCenter = view2DState.center; + var viewProjection = view2DState.projection; + var viewResolution = view2DState.resolution; + var viewRotation = view2DState.rotation; + + var vectorLayer = this.getVectorLayer(); + + var hints = frameState.viewHints; + + if (this.renderedResolution_ === 0 || + (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.INTERACTING])) { + + var features = vectorLayer.getFeaturesObjectForExtent(extent, + viewProjection, this.requestMapRenderFrame_); + + if (goog.isNull(features)) { + return; + } + + this.renderedResolution_ = viewResolution; + this.renderedExtent_ = extent; + + var canvasWidth = ol.extent.getWidth(extent) / viewResolution; + var canvasHeight = ol.extent.getHeight(extent) / viewResolution; + + var canvas = this.canvas_; + canvas.width = canvasWidth; + canvas.height = canvasHeight; + + var halfWidth = canvasWidth; + var halfHeight = canvasHeight; + + // transform for map coords to sketch canvas pixel coords + var coordsTransform = this.coordsTransform_; + var origin = ol.extent.getTopLeft(extent); + goog.vec.Mat4.makeIdentity(coordsTransform); + goog.vec.Mat4.translate(coordsTransform, + halfWidth, halfHeight, 0); + goog.vec.Mat4.scale(coordsTransform, + 1 / viewResolution, -1 / viewResolution, 1); + goog.vec.Mat4.translate(coordsTransform, + -(origin[0] + halfWidth * viewResolution), + -(origin[1] - halfHeight * viewResolution), + 0); + var renderer = new ol.renderer.canvas.Vector(canvas, coordsTransform, + this.requestMapRenderFrame_); + + var groups = vectorLayer.groupFeaturesBySymbolizerLiteral(features, + viewResolution); + + var i, ii, group, deferred; + + ii = groups.length; + for (i = 0; i < ii; ++i) { + group = groups[i]; + deferred = renderer.renderFeatures(group[0], group[1], group[2]); + if (deferred) { + break; + } + } + } + + var transform = this.transform_; + goog.vec.Mat4.makeIdentity(transform); + goog.vec.Mat4.translate(transform, + frameState.size[0] / 2, + frameState.size[1] / 2, + 0); + goog.vec.Mat4.scale(transform, + this.renderedResolution_ / viewResolution, + this.renderedResolution_ / viewResolution, + 1); + goog.vec.Mat4.rotateZ(transform, viewRotation); + goog.vec.Mat4.translate(transform, + (this.renderedExtent_[0] - viewCenter[0]) / this.renderedResolution_, + (viewCenter[1] - this.renderedExtent_[3]) / this.renderedResolution_, + 0); + +}; From 0c9f7eb616fdfa29b478eebc206d758514de35d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 31 Oct 2013 15:51:36 +0100 Subject: [PATCH 008/919] Use experimental canvas vector layer renderer --- src/ol/renderer/canvas/canvasmaprenderer.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index e48d99d654..b7debeb674 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -6,7 +6,6 @@ goog.require('goog.asserts'); goog.require('goog.dom'); goog.require('goog.dom.TagName'); goog.require('goog.style'); -goog.require('goog.vec.Mat4'); goog.require('ol.css'); goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); @@ -14,7 +13,7 @@ goog.require('ol.layer.Vector'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.canvas.ImageLayer'); goog.require('ol.renderer.canvas.TileLayer'); -goog.require('ol.renderer.canvas.VectorLayer'); +goog.require('ol.renderer.canvas.VectorLayer2'); goog.require('ol.source.State'); @@ -64,7 +63,7 @@ ol.renderer.canvas.Map.prototype.createLayerRenderer = function(layer) { } else if (layer instanceof ol.layer.Tile) { return new ol.renderer.canvas.TileLayer(this, layer); } else if (layer instanceof ol.layer.Vector) { - return new ol.renderer.canvas.VectorLayer(this, layer); + return new ol.renderer.canvas.VectorLayer2(this, layer); } else { goog.asserts.fail(); return null; From 0d84befe83607d19b0950678c81da8ea63166e70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 21 Oct 2013 13:48:09 +0200 Subject: [PATCH 009/919] Add synthetic-data example --- examples/synthetic-data.html | 50 ++++++++++++++++++++++ examples/synthetic-data.js | 80 ++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 examples/synthetic-data.html create mode 100644 examples/synthetic-data.js diff --git a/examples/synthetic-data.html b/examples/synthetic-data.html new file mode 100644 index 0000000000..5cb953179f --- /dev/null +++ b/examples/synthetic-data.html @@ -0,0 +1,50 @@ + + + + + + + + + + + Synthetic data example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Synthetic data example

+

Synthetic data example.

+
+

See the synthetic-data.js source to see how this is done.

+
+
vector
+
+ +
+ +
+ + + + + + diff --git a/examples/synthetic-data.js b/examples/synthetic-data.js new file mode 100644 index 0000000000..30af5b0377 --- /dev/null +++ b/examples/synthetic-data.js @@ -0,0 +1,80 @@ +goog.require('ol.Map'); +goog.require('ol.Overlay'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.expr'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.parser.GeoJSON'); +goog.require('ol.proj'); +goog.require('ol.source.MapQuestOpenAerial'); +goog.require('ol.source.Vector'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Rule'); +goog.require('ol.style.Shape'); +goog.require('ol.style.ShapeType'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); + + +var raster = new ol.layer.Tile({ + source: new ol.source.MapQuestOpenAerial() +}); + +// build up some GeoJSON features +var count = 20000; +var features = new Array(count); +var e = 18000000; +for (var i = 0; i < count; ++i) { + features[i] = { + type: 'Feature', + properties: { + i: i, + size: i % 2 ? 10 : 20 + }, + geometry: { + type: 'Point', + coordinates: [ + 2 * e * Math.random() - e, 2 * e * Math.random() - e + ] + } + }; +} + +var vector = new ol.layer.Vector({ + source: new ol.source.Vector({ + projection: ol.proj.get('EPSG:3857'), + parser: new ol.parser.GeoJSON(), + data: { + type: 'FeatureCollection', + features: features + } + }), + style: new ol.style.Style({rules: [ + new ol.style.Rule({ + symbolizers: [ + new ol.style.Shape({ + type: ol.style.ShapeType.CIRCLE, + size: ol.expr.parse('size'), + stroke: new ol.style.Stroke({color: '#666666'}), + fill: new ol.style.Fill({color: '#bada55'}) + }) + ] + }) + ]}) +}); + +var popup = new ol.Overlay({ + element: document.getElementById('popup') +}); + +var map = new ol.Map({ + layers: [vector], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }), + overlays: [popup] +}); From e0ef5fc7ee0b3091a9f4c90cc1d78ba3fb64a523 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 4 Nov 2013 15:41:17 +0100 Subject: [PATCH 010/919] Pass context instead of canvas when creating ol.renderer.canvas.Vector --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 4 +++- src/ol/renderer/canvas/canvasvectorlayerrenderer2.js | 4 +++- src/ol/renderer/canvas/canvasvectorrenderer.js | 6 ++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 33285bc7c4..5203dd6025 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -456,8 +456,10 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = sketchCanvas.width = sketchWidth; sketchCanvas.height = sketchHeight; + var sketchContext = /** @type {CanvasRenderingContext2D} */ + (sketchCanvas.getContext('2d')); var sketchCanvasRenderer = new ol.renderer.canvas.Vector( - sketchCanvas, sketchTransform, this.requestMapRenderFrame_); + sketchContext, sketchTransform, this.requestMapRenderFrame_); // clear/resize final canvas var finalCanvas = this.canvas_; diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js index 8b34ee0d8b..8fb133996b 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js @@ -150,7 +150,9 @@ ol.renderer.canvas.VectorLayer2.prototype.prepareFrame = -(origin[0] + halfWidth * viewResolution), -(origin[1] - halfHeight * viewResolution), 0); - var renderer = new ol.renderer.canvas.Vector(canvas, coordsTransform, + var context = /** @type {CanvasRenderingContext2D} */ + (canvas.getContext('2d')); + var renderer = new ol.renderer.canvas.Vector(context, coordsTransform, this.requestMapRenderFrame_); var groups = vectorLayer.groupFeaturesBySymbolizerLiteral(features, diff --git a/src/ol/renderer/canvas/canvasvectorrenderer.js b/src/ol/renderer/canvas/canvasvectorrenderer.js index 30d7a3ebca..2305b0dad2 100644 --- a/src/ol/renderer/canvas/canvasvectorrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorrenderer.js @@ -31,16 +31,14 @@ goog.require('ol.style.TextLiteral'); /** * @constructor - * @param {HTMLCanvasElement} canvas Target canvas. + * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.Number} transform Transform. * @param {function()=} opt_iconLoadedCallback Callback for deferred rendering * when images need to be loaded before rendering. */ ol.renderer.canvas.Vector = - function(canvas, transform, opt_iconLoadedCallback) { + function(context, transform, opt_iconLoadedCallback) { - var context = /** @type {CanvasRenderingContext2D} */ - (canvas.getContext('2d')); /** * @type {goog.vec.Mat4.Number} * @private From 91fc1a7663fddb68e7b5411d19996b5c298e2f69 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 4 Nov 2013 16:26:06 +0100 Subject: [PATCH 011/919] Render vector features directly to output canvas --- .../canvas/canvasvectorlayerrenderer2.js | 88 ++++++++++--------- 1 file changed, 45 insertions(+), 43 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js index 8fb133996b..e0438715ee 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js @@ -68,41 +68,8 @@ goog.inherits(ol.renderer.canvas.VectorLayer2, ol.renderer.canvas.Layer); /** * @inheritDoc */ -ol.renderer.canvas.VectorLayer2.prototype.getImage = function() { - return this.canvas_; -}; - - -/** - * @return {ol.layer.Vector} Vector layer. - */ -ol.renderer.canvas.VectorLayer2.prototype.getVectorLayer = function() { - return /** @type {ol.layer.Vector} */ (this.getLayer()); -}; - - -/** - * @inheritDoc - */ -ol.renderer.canvas.VectorLayer2.prototype.getTransform = function() { - return this.transform_; -}; - - -/** - * @param {ol.layer.VectorEvent} event Vector layer event. - * @private - */ -ol.renderer.canvas.VectorLayer2.prototype.handleLayerChange_ = function(event) { - this.requestMapRenderFrame_(); -}; - - -/** - * @inheritDoc - */ -ol.renderer.canvas.VectorLayer2.prototype.prepareFrame = - function(frameState, layerState) { +ol.renderer.canvas.VectorLayer2.prototype.composeFrame = + function(frameState, layerState, context) { var extent = frameState.extent; var view2DState = frameState.view2DState; @@ -128,12 +95,8 @@ ol.renderer.canvas.VectorLayer2.prototype.prepareFrame = this.renderedResolution_ = viewResolution; this.renderedExtent_ = extent; - var canvasWidth = ol.extent.getWidth(extent) / viewResolution; - var canvasHeight = ol.extent.getHeight(extent) / viewResolution; - - var canvas = this.canvas_; - canvas.width = canvasWidth; - canvas.height = canvasHeight; + var canvasWidth = frameState.size[0]; + var canvasHeight = frameState.size[1]; var halfWidth = canvasWidth; var halfHeight = canvasHeight; @@ -150,8 +113,6 @@ ol.renderer.canvas.VectorLayer2.prototype.prepareFrame = -(origin[0] + halfWidth * viewResolution), -(origin[1] - halfHeight * viewResolution), 0); - var context = /** @type {CanvasRenderingContext2D} */ - (canvas.getContext('2d')); var renderer = new ol.renderer.canvas.Vector(context, coordsTransform, this.requestMapRenderFrame_); @@ -186,4 +147,45 @@ ol.renderer.canvas.VectorLayer2.prototype.prepareFrame = (viewCenter[1] - this.renderedExtent_[3]) / this.renderedResolution_, 0); + goog.base(this, 'composeFrame', frameState, layerState, context); + }; + + +/** + * @inheritDoc + */ +ol.renderer.canvas.VectorLayer2.prototype.getImage = function() { + return this.canvas_; +}; + + +/** + * @return {ol.layer.Vector} Vector layer. + */ +ol.renderer.canvas.VectorLayer2.prototype.getVectorLayer = function() { + return /** @type {ol.layer.Vector} */ (this.getLayer()); +}; + + +/** + * @inheritDoc + */ +ol.renderer.canvas.VectorLayer2.prototype.getTransform = function() { + return this.transform_; +}; + + +/** + * @param {ol.layer.VectorEvent} event Vector layer event. + * @private + */ +ol.renderer.canvas.VectorLayer2.prototype.handleLayerChange_ = function(event) { + this.requestMapRenderFrame_(); +}; + + +/** + * @inheritDoc + */ +ol.renderer.canvas.VectorLayer2.prototype.prepareFrame = goog.nullFunction; From d774d2007d7c0f192bc51b49a60c368b49f09694 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 4 Nov 2013 16:29:09 +0100 Subject: [PATCH 012/919] Render features even while animating and interacting --- .../canvas/canvasvectorlayerrenderer2.js | 75 +++++++++---------- 1 file changed, 34 insertions(+), 41 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js index e0438715ee..21f4baaa21 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js @@ -3,7 +3,6 @@ goog.provide('ol.renderer.canvas.VectorLayer2'); goog.require('goog.dom'); goog.require('goog.dom.TagName'); goog.require('goog.vec.Mat4'); -goog.require('ol.ViewHint'); goog.require('ol.extent'); goog.require('ol.layer.Vector'); goog.require('ol.renderer.canvas.Layer'); @@ -80,54 +79,48 @@ ol.renderer.canvas.VectorLayer2.prototype.composeFrame = var vectorLayer = this.getVectorLayer(); - var hints = frameState.viewHints; + var features = vectorLayer.getFeaturesObjectForExtent(extent, + viewProjection, this.requestMapRenderFrame_); - if (this.renderedResolution_ === 0 || - (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.INTERACTING])) { + if (goog.isNull(features)) { + return; + } - var features = vectorLayer.getFeaturesObjectForExtent(extent, - viewProjection, this.requestMapRenderFrame_); + this.renderedResolution_ = viewResolution; + this.renderedExtent_ = extent; - if (goog.isNull(features)) { - return; - } + var canvasWidth = frameState.size[0]; + var canvasHeight = frameState.size[1]; - this.renderedResolution_ = viewResolution; - this.renderedExtent_ = extent; + var halfWidth = canvasWidth; + var halfHeight = canvasHeight; - var canvasWidth = frameState.size[0]; - var canvasHeight = frameState.size[1]; + // transform for map coords to sketch canvas pixel coords + var coordsTransform = this.coordsTransform_; + var origin = ol.extent.getTopLeft(extent); + goog.vec.Mat4.makeIdentity(coordsTransform); + goog.vec.Mat4.translate(coordsTransform, + halfWidth, halfHeight, 0); + goog.vec.Mat4.scale(coordsTransform, + 1 / viewResolution, -1 / viewResolution, 1); + goog.vec.Mat4.translate(coordsTransform, + -(origin[0] + halfWidth * viewResolution), + -(origin[1] - halfHeight * viewResolution), + 0); + var renderer = new ol.renderer.canvas.Vector(context, coordsTransform, + this.requestMapRenderFrame_); - var halfWidth = canvasWidth; - var halfHeight = canvasHeight; + var groups = vectorLayer.groupFeaturesBySymbolizerLiteral(features, + viewResolution); - // transform for map coords to sketch canvas pixel coords - var coordsTransform = this.coordsTransform_; - var origin = ol.extent.getTopLeft(extent); - goog.vec.Mat4.makeIdentity(coordsTransform); - goog.vec.Mat4.translate(coordsTransform, - halfWidth, halfHeight, 0); - goog.vec.Mat4.scale(coordsTransform, - 1 / viewResolution, -1 / viewResolution, 1); - goog.vec.Mat4.translate(coordsTransform, - -(origin[0] + halfWidth * viewResolution), - -(origin[1] - halfHeight * viewResolution), - 0); - var renderer = new ol.renderer.canvas.Vector(context, coordsTransform, - this.requestMapRenderFrame_); + var i, ii, group, deferred; - var groups = vectorLayer.groupFeaturesBySymbolizerLiteral(features, - viewResolution); - - var i, ii, group, deferred; - - ii = groups.length; - for (i = 0; i < ii; ++i) { - group = groups[i]; - deferred = renderer.renderFeatures(group[0], group[1], group[2]); - if (deferred) { - break; - } + ii = groups.length; + for (i = 0; i < ii; ++i) { + group = groups[i]; + deferred = renderer.renderFeatures(group[0], group[1], group[2]); + if (deferred) { + break; } } From bbd461f1815ceffe48c064a69f89a2acdc40197e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 4 Nov 2013 16:48:36 +0100 Subject: [PATCH 013/919] Remove stray call to composeFrame, thanks @elemoine --- src/ol/renderer/canvas/canvasvectorlayerrenderer2.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js index 21f4baaa21..9fe0a2a00f 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js @@ -140,8 +140,6 @@ ol.renderer.canvas.VectorLayer2.prototype.composeFrame = (viewCenter[1] - this.renderedExtent_[3]) / this.renderedResolution_, 0); - goog.base(this, 'composeFrame', frameState, layerState, context); - }; From ea74809256bec0d68219d320611ea76ae736a820 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 4 Nov 2013 16:52:38 +0100 Subject: [PATCH 014/919] Remove unused vector layer canvas --- .../canvas/canvasvectorlayerrenderer2.js | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js index 9fe0a2a00f..789631c82b 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js @@ -1,7 +1,6 @@ goog.provide('ol.renderer.canvas.VectorLayer2'); goog.require('goog.dom'); -goog.require('goog.dom.TagName'); goog.require('goog.vec.Mat4'); goog.require('ol.extent'); goog.require('ol.layer.Vector'); @@ -20,14 +19,6 @@ ol.renderer.canvas.VectorLayer2 = function(mapRenderer, layer) { goog.base(this, mapRenderer, layer); - /** - * Final canvas made available to the map renderer. - * @private - * @type {HTMLCanvasElement} - */ - this.canvas_ = /** @type {HTMLCanvasElement} */ - (goog.dom.createElement(goog.dom.TagName.CANVAS)); - /** * @private * @type {!goog.vec.Mat4.Number} @@ -143,14 +134,6 @@ ol.renderer.canvas.VectorLayer2.prototype.composeFrame = }; -/** - * @inheritDoc - */ -ol.renderer.canvas.VectorLayer2.prototype.getImage = function() { - return this.canvas_; -}; - - /** * @return {ol.layer.Vector} Vector layer. */ From a60a03149e7a7cf9854715fdb9472fa66f314401 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 4 Nov 2013 17:09:23 +0100 Subject: [PATCH 015/919] Correct transform and remove unused variables --- .../canvas/canvasvectorlayerrenderer2.js | 79 ++++--------------- 1 file changed, 15 insertions(+), 64 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js index 789631c82b..60a5e7893b 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js @@ -2,7 +2,6 @@ goog.provide('ol.renderer.canvas.VectorLayer2'); goog.require('goog.dom'); goog.require('goog.vec.Mat4'); -goog.require('ol.extent'); goog.require('ol.layer.Vector'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.canvas.Vector'); @@ -19,30 +18,12 @@ ol.renderer.canvas.VectorLayer2 = function(mapRenderer, layer) { goog.base(this, mapRenderer, layer); - /** - * @private - * @type {!goog.vec.Mat4.Number} - */ - this.coordsTransform_ = goog.vec.Mat4.createNumber(); - /** * @private * @type {!goog.vec.Mat4.Number} */ this.transform_ = goog.vec.Mat4.createNumber(); - /** - * @private - * @type {number} - */ - this.renderedResolution_ = 0; - - /** - * @private - * @type {ol.Extent} - */ - this.renderedExtent_ = null; - /** * @private * @type {function()} @@ -77,28 +58,22 @@ ol.renderer.canvas.VectorLayer2.prototype.composeFrame = return; } - this.renderedResolution_ = viewResolution; - this.renderedExtent_ = extent; - - var canvasWidth = frameState.size[0]; - var canvasHeight = frameState.size[1]; - - var halfWidth = canvasWidth; - var halfHeight = canvasHeight; - - // transform for map coords to sketch canvas pixel coords - var coordsTransform = this.coordsTransform_; - var origin = ol.extent.getTopLeft(extent); - goog.vec.Mat4.makeIdentity(coordsTransform); - goog.vec.Mat4.translate(coordsTransform, - halfWidth, halfHeight, 0); - goog.vec.Mat4.scale(coordsTransform, - 1 / viewResolution, -1 / viewResolution, 1); - goog.vec.Mat4.translate(coordsTransform, - -(origin[0] + halfWidth * viewResolution), - -(origin[1] - halfHeight * viewResolution), + var transform = this.transform_; + goog.vec.Mat4.makeIdentity(transform); + goog.vec.Mat4.translate(transform, + frameState.size[0] / 2, + frameState.size[1] / 2, 0); - var renderer = new ol.renderer.canvas.Vector(context, coordsTransform, + goog.vec.Mat4.scale(transform, + 1 / viewResolution, + -1 / viewResolution, + 1); + goog.vec.Mat4.rotateZ(transform, -viewRotation); + goog.vec.Mat4.translate(transform, + -viewCenter[0], + -viewCenter[1], + 0); + var renderer = new ol.renderer.canvas.Vector(context, transform, this.requestMapRenderFrame_); var groups = vectorLayer.groupFeaturesBySymbolizerLiteral(features, @@ -115,22 +90,6 @@ ol.renderer.canvas.VectorLayer2.prototype.composeFrame = } } - var transform = this.transform_; - goog.vec.Mat4.makeIdentity(transform); - goog.vec.Mat4.translate(transform, - frameState.size[0] / 2, - frameState.size[1] / 2, - 0); - goog.vec.Mat4.scale(transform, - this.renderedResolution_ / viewResolution, - this.renderedResolution_ / viewResolution, - 1); - goog.vec.Mat4.rotateZ(transform, viewRotation); - goog.vec.Mat4.translate(transform, - (this.renderedExtent_[0] - viewCenter[0]) / this.renderedResolution_, - (viewCenter[1] - this.renderedExtent_[3]) / this.renderedResolution_, - 0); - }; @@ -142,14 +101,6 @@ ol.renderer.canvas.VectorLayer2.prototype.getVectorLayer = function() { }; -/** - * @inheritDoc - */ -ol.renderer.canvas.VectorLayer2.prototype.getTransform = function() { - return this.transform_; -}; - - /** * @param {ol.layer.VectorEvent} event Vector layer event. * @private From 3d072a1af8758dd1ec42ce05081214fa8e604474 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 2 Oct 2013 14:54:32 +0200 Subject: [PATCH 016/919] Add ol.Color.parse --- src/ol/color.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/ol/color.js b/src/ol/color.js index 2f99a4a3af..8ebdead1db 100644 --- a/src/ol/color.js +++ b/src/ol/color.js @@ -60,3 +60,13 @@ ol.Color.equals = function(color1, color2) { color1.b == color2.b && color1.a == color2.a); }; + + +/** + * @param {string} s String. + * @return {ol.Color} Color. + */ +ol.Color.parse = function(s) { + var rgb = goog.color.hexToRgb(goog.color.parse(s).hex); + return new ol.Color(rgb[0], rgb[1], rgb[2], 1); +}; From 3e12f57cf5591c4f2bf055d1eda3e9175c5f5849 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 2 Oct 2013 14:56:56 +0200 Subject: [PATCH 017/919] Add initial canvas-like API --- src/ol/replay/replaybase.js | 97 +++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 src/ol/replay/replaybase.js diff --git a/src/ol/replay/replaybase.js b/src/ol/replay/replaybase.js new file mode 100644 index 0000000000..ab01a11a40 --- /dev/null +++ b/src/ol/replay/replaybase.js @@ -0,0 +1,97 @@ +goog.provide('ol.replay.BatchBase'); +goog.provide('ol.replay.CanvasBase'); +goog.provide('ol.replay.FillStyle'); +goog.provide('ol.replay.StrokeStyle'); + +goog.require('goog.vec.Mat4'); +goog.require('ol.Color'); + + +/** + * @enum {number} + */ +ol.replay.BatchType = { + FILL: 0, + STROKE: 1, + FILL_AND_STROKE: 2 +}; + + +/** + * @typedef {{color: ol.Color}} + */ +ol.replay.FillStyle; + + +/** + * @typedef {{color: ol.Color, width: number}} + */ +ol.replay.StrokeStyle; + + + +/** + * @constructor + */ +ol.replay.BatchBase = function() { +}; + + +/** + * Draw a path. Outer rings are clockwise. Inner rings are anti-clockwise. + * @param {Array.} path Path. + * @param {number} stride Stride. + * @param {boolean} close Close. + */ +ol.replay.BatchBase.prototype.addPath = goog.abstractMethod; + + +/** + * FIXME empty description for jsdoc + */ +ol.replay.BatchBase.prototype.beginPath = goog.abstractMethod; + + +/** + * FIXME empty description for jsdoc + */ +ol.replay.BatchBase.prototype.draw = goog.abstractMethod; + + +/** + * @param {ol.replay.FillStyle} fillStyle Fill style. + */ +ol.replay.BatchBase.prototype.setFillStyle = goog.abstractMethod; + + +/** + * @param {ol.replay.StrokeStyle} strokeStyle Stroke style. + */ +ol.replay.BatchBase.prototype.setStrokeStyle = goog.abstractMethod; + + + +/** + * @constructor + */ +ol.replay.CanvasBase = function() { +}; + + +/** + * @param {ol.replay.BatchType} batchType Batch type. + * @return {ol.replay.BatchBase} Batch. + */ +ol.replay.CanvasBase.prototype.createBatch = goog.abstractMethod; + + +/** + * @param {ol.replay.BatchBase} batch Batch. + */ +ol.replay.CanvasBase.prototype.drawBatch = goog.abstractMethod; + + +/** + * @param {goog.vec.Mat4.AnyType} transform Transform. + */ +ol.replay.CanvasBase.prototype.setTransform = goog.abstractMethod; From 409b458d308e7bc0dc84568bf3124e0a78043781 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 5 Nov 2013 23:17:35 +0100 Subject: [PATCH 018/919] Add ol.replay.transformPath --- src/ol/replay/replay.js | 38 +++++++++++++++++++++++++++++++++++++ src/ol/replay/replaybase.js | 1 + 2 files changed, 39 insertions(+) create mode 100644 src/ol/replay/replay.js diff --git a/src/ol/replay/replay.js b/src/ol/replay/replay.js new file mode 100644 index 0000000000..4edb41fa43 --- /dev/null +++ b/src/ol/replay/replay.js @@ -0,0 +1,38 @@ +goog.provide('ol.replay'); + +goog.require('goog.vec.Mat4'); + + +/** + * @param {Array.} path Path. + * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {Array.=} opt_dest Destination. + * @return {Array.} Pixel path. + */ +ol.replay.transformPath = function(path, transform, opt_dest) { + var m00 = goog.vec.Mat4.getElement(transform, 0, 0); + var m10 = goog.vec.Mat4.getElement(transform, 1, 0); + var m01 = goog.vec.Mat4.getElement(transform, 0, 1); + var m11 = goog.vec.Mat4.getElement(transform, 1, 1); + var m03 = goog.vec.Mat4.getElement(transform, 0, 3); + var m13 = goog.vec.Mat4.getElement(transform, 1, 3); + var n = path.length; + var result; + if (goog.isDef(opt_dest)) { + result = opt_dest; + } else { + result = new Array(n); + } + var j = 0; + var i, x, y; + for (i = 0; i < n; ) { + x = path[i++]; + y = path[i++]; + result[j++] = m00 * x + m01 * y + m03; + result[j++] = m10 * x + m11 * y + m13; + } + if (goog.isDef(opt_dest) && result.length != j) { + result.length = j; + } + return result; +}; diff --git a/src/ol/replay/replaybase.js b/src/ol/replay/replaybase.js index ab01a11a40..ac82137f66 100644 --- a/src/ol/replay/replaybase.js +++ b/src/ol/replay/replaybase.js @@ -5,6 +5,7 @@ goog.provide('ol.replay.StrokeStyle'); goog.require('goog.vec.Mat4'); goog.require('ol.Color'); +goog.require('ol.replay'); /** From 366bdd295d0b4fba8bb385f46a11dd145a835083 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 5 Nov 2013 23:18:25 +0100 Subject: [PATCH 019/919] Add initial canvas implementation of replay API --- src/ol/replay/canvas.js | 263 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 263 insertions(+) create mode 100644 src/ol/replay/canvas.js diff --git a/src/ol/replay/canvas.js b/src/ol/replay/canvas.js new file mode 100644 index 0000000000..7c863439b2 --- /dev/null +++ b/src/ol/replay/canvas.js @@ -0,0 +1,263 @@ +goog.provide('ol.replay.Canvas'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.vec.Mat4'); +goog.require('ol.replay'); +goog.require('ol.replay.BatchBase'); +goog.require('ol.replay.CanvasBase'); +goog.require('ol.replay.FillStyle'); +goog.require('ol.replay.StrokeStyle'); + + +/** + * @enum {number} + */ +ol.replay.CanvasInstructionId = { + ADD_PATH: 0, + BEGIN_PATH: 1, + DRAW: 2, + SET_FILL_STYLE: 3, + SET_STROKE_STYLE: 4 +}; + + +/** + * @typedef {{close: (boolean|undefined), + * command: ol.replay.CanvasInstructionId, + * fillStyle: (ol.replay.FillStyle|undefined), + * end: (number|undefined), + * start: (number|undefined), + * strokeStyle: (ol.replay.StrokeStyle|undefined)}} + * } + */ +ol.replay.CanvasInstruction; + + + +/** + * @constructor + * @extends {ol.replay.BatchBase} + * @param {ol.replay.BatchType} type Type. + * FIXME make this private? + * FIXME accumulate all coordinates between style sets in a single array. + * FIXME merge adjacent setStyles. + */ +ol.replay.CanvasBatch = function(type) { + + goog.base(this); + + /** + * @private + * @type {ol.replay.BatchType} + */ + this.type_ = type; + + /** + * @private + * @type {Array.} + */ + this.instructions_ = []; + + /** + * @private + * @type {Array.} + */ + this.path_ = []; + +}; +goog.inherits(ol.replay.CanvasBatch, ol.replay.BatchBase); + + +/** + * @inheritDoc + */ +ol.replay.CanvasBatch.prototype.addPath = function(path, stride, close) { + goog.asserts.assert(this.type_ == ol.replay.BatchType.FILL || + this.type_ == ol.replay.BatchType.FILL_AND_STROKE || + this.type_ == ol.replay.BatchType.STROKE); + var start = this.path_.length; + if (stride == 2) { + goog.array.extend(this.path_, path); + } else { + var m = path.length; + var j = this.path_.length; + var i; + for (i = 0; i < m; i += stride) { + this.path_[j++] = path[i]; + this.path_[j++] = path[i + 1]; + } + } + this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ + command: ol.replay.CanvasInstructionId.ADD_PATH, + close: close, + end: this.path_.length, + start: start + })); +}; + + +/** + * @inheritDoc + */ +ol.replay.CanvasBatch.prototype.beginPath = function() { + this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ + command: ol.replay.CanvasInstructionId.BEGIN_PATH + })); +}; + + +/** + * @inheritDoc + */ +ol.replay.CanvasBatch.prototype.draw = function() { + this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ + command: ol.replay.CanvasInstructionId.DRAW + })); +}; + + +/** + * @inheritDoc + */ +ol.replay.CanvasBatch.prototype.setFillStyle = function(fillStyle) { + goog.asserts.assert(this.type_ == ol.replay.BatchType.FILL || + this.type_ == ol.replay.BatchType.FILL_AND_STROKE); + this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ + command: ol.replay.CanvasInstructionId.SET_FILL_STYLE, + fillStyle: fillStyle + })); +}; + + +/** + * @inheritDoc + */ +ol.replay.CanvasBatch.prototype.setStrokeStyle = function(strokeStyle) { + goog.asserts.assert(this.type_ == ol.replay.BatchType.FILL_AND_STROKE || + this.type_ == ol.replay.BatchType.STROKE); + this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ + command: ol.replay.CanvasInstructionId.SET_STROKE_STYLE, + strokeStyle: strokeStyle + })); +}; + + +/** + * @param {CanvasRenderingContext2D} context Context. + * @param {goog.vec.Mat4.AnyType} transform Transform. + */ +ol.replay.CanvasBatch.prototype.drawInternal = function(context, transform) { + var fillStyle = null; + var strokeStyle = null; + var n = this.instructions_.length; + var close, end, i, j, path, start; + // FIXME re-use destination array + // FIXME only re-transform if transform changed + var pixelPath = ol.replay.transformPath(this.path_, transform); + for (i = 0; i < n; ++i) { + var instruction = this.instructions_[i]; + switch (instruction.command) { + case ol.replay.CanvasInstructionId.ADD_PATH: + end = instruction.end; + goog.asserts.assert(goog.isDef(end)); + close = instruction.close; + goog.asserts.assert(goog.isDef(close)); + start = instruction.start; + goog.asserts.assert(goog.isDef(start)); + context.moveTo(pixelPath[start], pixelPath[start + 1]); + for (j = start + 2; j < end; j += 2) { + context.lineTo(pixelPath[j], pixelPath[j + 1]); + } + if (close) { + context.closePath(); + } + break; + case ol.replay.CanvasInstructionId.BEGIN_PATH: + context.beginPath(); + break; + case ol.replay.CanvasInstructionId.DRAW: + // FIXME handle alpha + if (!goog.isNull(fillStyle)) { + context.fillStyle = ol.replay.color(fillStyle.color); + context.fill(); + } + if (!goog.isNull(strokeStyle)) { + context.lineWidth = strokeStyle.width; + context.strokeStyle = ol.replay.color(strokeStyle.color); + context.stroke(); + } + break; + case ol.replay.CanvasInstructionId.SET_FILL_STYLE: + goog.asserts.assert(goog.isDef(instruction.fillStyle)); + fillStyle = instruction.fillStyle; + break; + case ol.replay.CanvasInstructionId.SET_STROKE_STYLE: + goog.asserts.assert(goog.isDef(instruction.strokeStyle)); + strokeStyle = instruction.strokeStyle; + break; + } + } +}; + + + +/** + * @constructor + * @extends {ol.replay.CanvasBase} + * @param {CanvasRenderingContext2D} context Context. + */ +ol.replay.Canvas = function(context) { + + goog.base(this); + + /** + * @private + * @type {CanvasRenderingContext2D} + */ + this.context_ = context; + + /** + * @private + * @type {goog.vec.Mat4.Number} + */ + this.transform_ = goog.vec.Mat4.createNumberIdentity(); + +}; +goog.inherits(ol.replay.Canvas, ol.replay.CanvasBase); + + +/** + * @inheritDoc + */ +ol.replay.Canvas.prototype.createBatch = function(batchType) { + return new ol.replay.CanvasBatch(batchType); +}; + + +/** + * @inheritDoc + */ +ol.replay.Canvas.prototype.drawBatch = function(batch) { + goog.asserts.assert(batch instanceof ol.replay.CanvasBatch); + var canvasBatch = /** @type {ol.replay.CanvasBatch} */ (batch); + canvasBatch.drawInternal(this.context_, this.transform_); +}; + + +/** + * @inheritDoc + */ +ol.replay.Canvas.prototype.setTransform = function(transform) { + goog.vec.Mat4.setFromArray(this.transform_, transform); +}; + + +/** + * @param {ol.Color} color Color. + * @return {string} Color. + */ +ol.replay.color = function(color) { + // FIXME handle alpha + return 'rgb(' + color.r + ',' + color.g + ',' + color.b + ')'; +}; From 6a93731feebcbdcdd1771b43a1a0e14cc9fe9861 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 5 Nov 2013 23:24:11 +0100 Subject: [PATCH 020/919] Rename ol.replay base classes --- src/ol/replay/canvas.js | 12 ++++++------ src/ol/replay/replaybase.js | 28 ++++++++++++++-------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/ol/replay/canvas.js b/src/ol/replay/canvas.js index 7c863439b2..135e393157 100644 --- a/src/ol/replay/canvas.js +++ b/src/ol/replay/canvas.js @@ -4,8 +4,8 @@ goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.vec.Mat4'); goog.require('ol.replay'); -goog.require('ol.replay.BatchBase'); -goog.require('ol.replay.CanvasBase'); +goog.require('ol.replay.Base'); +goog.require('ol.replay.Batch'); goog.require('ol.replay.FillStyle'); goog.require('ol.replay.StrokeStyle'); @@ -37,7 +37,7 @@ ol.replay.CanvasInstruction; /** * @constructor - * @extends {ol.replay.BatchBase} + * @extends {ol.replay.Batch} * @param {ol.replay.BatchType} type Type. * FIXME make this private? * FIXME accumulate all coordinates between style sets in a single array. @@ -66,7 +66,7 @@ ol.replay.CanvasBatch = function(type) { this.path_ = []; }; -goog.inherits(ol.replay.CanvasBatch, ol.replay.BatchBase); +goog.inherits(ol.replay.CanvasBatch, ol.replay.Batch); /** @@ -204,7 +204,7 @@ ol.replay.CanvasBatch.prototype.drawInternal = function(context, transform) { /** * @constructor - * @extends {ol.replay.CanvasBase} + * @extends {ol.replay.Base} * @param {CanvasRenderingContext2D} context Context. */ ol.replay.Canvas = function(context) { @@ -224,7 +224,7 @@ ol.replay.Canvas = function(context) { this.transform_ = goog.vec.Mat4.createNumberIdentity(); }; -goog.inherits(ol.replay.Canvas, ol.replay.CanvasBase); +goog.inherits(ol.replay.Canvas, ol.replay.Base); /** diff --git a/src/ol/replay/replaybase.js b/src/ol/replay/replaybase.js index ac82137f66..eee09c2d3a 100644 --- a/src/ol/replay/replaybase.js +++ b/src/ol/replay/replaybase.js @@ -1,5 +1,5 @@ -goog.provide('ol.replay.BatchBase'); -goog.provide('ol.replay.CanvasBase'); +goog.provide('ol.replay.Base'); +goog.provide('ol.replay.Batch'); goog.provide('ol.replay.FillStyle'); goog.provide('ol.replay.StrokeStyle'); @@ -34,7 +34,7 @@ ol.replay.StrokeStyle; /** * @constructor */ -ol.replay.BatchBase = function() { +ol.replay.Batch = function() { }; @@ -44,55 +44,55 @@ ol.replay.BatchBase = function() { * @param {number} stride Stride. * @param {boolean} close Close. */ -ol.replay.BatchBase.prototype.addPath = goog.abstractMethod; +ol.replay.Batch.prototype.addPath = goog.abstractMethod; /** * FIXME empty description for jsdoc */ -ol.replay.BatchBase.prototype.beginPath = goog.abstractMethod; +ol.replay.Batch.prototype.beginPath = goog.abstractMethod; /** * FIXME empty description for jsdoc */ -ol.replay.BatchBase.prototype.draw = goog.abstractMethod; +ol.replay.Batch.prototype.draw = goog.abstractMethod; /** * @param {ol.replay.FillStyle} fillStyle Fill style. */ -ol.replay.BatchBase.prototype.setFillStyle = goog.abstractMethod; +ol.replay.Batch.prototype.setFillStyle = goog.abstractMethod; /** * @param {ol.replay.StrokeStyle} strokeStyle Stroke style. */ -ol.replay.BatchBase.prototype.setStrokeStyle = goog.abstractMethod; +ol.replay.Batch.prototype.setStrokeStyle = goog.abstractMethod; /** * @constructor */ -ol.replay.CanvasBase = function() { +ol.replay.Base = function() { }; /** * @param {ol.replay.BatchType} batchType Batch type. - * @return {ol.replay.BatchBase} Batch. + * @return {ol.replay.Batch} Batch. */ -ol.replay.CanvasBase.prototype.createBatch = goog.abstractMethod; +ol.replay.Base.prototype.createBatch = goog.abstractMethod; /** - * @param {ol.replay.BatchBase} batch Batch. + * @param {ol.replay.Batch} batch Batch. */ -ol.replay.CanvasBase.prototype.drawBatch = goog.abstractMethod; +ol.replay.Base.prototype.drawBatch = goog.abstractMethod; /** * @param {goog.vec.Mat4.AnyType} transform Transform. */ -ol.replay.CanvasBase.prototype.setTransform = goog.abstractMethod; +ol.replay.Base.prototype.setTransform = goog.abstractMethod; From 400b946354e1bd74dc1a7d0b90c74dc98cf0d438 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 5 Nov 2013 23:52:04 +0100 Subject: [PATCH 021/919] Add @tschw to AUTHORS.md --- AUTHORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.md b/AUTHORS.md index 69dc5d8e20..edb3f31a87 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -33,6 +33,7 @@ OpenLayers contributors: * Gregers Rygg * Tim Schaub * Christopher Schmidt +* Tobias Schwinger * Cameron Shorter * Pedro Simonetti * Paul Spencer From 530d8b67a32daa3e9f26bebae901c6b1a89c526d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 12:06:32 +0100 Subject: [PATCH 022/919] Add ol.extent.extendXY --- src/ol/extent.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/ol/extent.js b/src/ol/extent.js index 5a28036f51..cf393fd61b 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -201,6 +201,19 @@ ol.extent.extendCoordinate = function(extent, coordinate) { }; +/** + * @param {ol.Extent} extent Extent. + * @param {number} x X. + * @param {number} y Y. + */ +ol.extent.extendXY = function(extent, x, y) { + extent[0] = Math.min(extent[0], x); + extent[1] = Math.min(extent[1], y); + extent[2] = Math.max(extent[2], x); + extent[3] = Math.max(extent[3], y); +}; + + /** * @param {ol.Extent} extent Extent. * @return {ol.Coordinate} Bottom left coordinate. From 59ab8f0155eccfcb4a394b81423bb22d5d6cba5b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 12:07:12 +0100 Subject: [PATCH 023/919] Add ol.replay.Batch#getExtent --- src/ol/replay/replaybase.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ol/replay/replaybase.js b/src/ol/replay/replaybase.js index eee09c2d3a..419690a18e 100644 --- a/src/ol/replay/replaybase.js +++ b/src/ol/replay/replaybase.js @@ -59,6 +59,12 @@ ol.replay.Batch.prototype.beginPath = goog.abstractMethod; ol.replay.Batch.prototype.draw = goog.abstractMethod; +/** + * @return {ol.Extent} Extent. + */ +ol.replay.Batch.prototype.getExtent = goog.abstractMethod; + + /** * @param {ol.replay.FillStyle} fillStyle Fill style. */ From 81349d382be3b3e895add8e23cf1dde5266ecdec Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 12:07:50 +0100 Subject: [PATCH 024/919] Add ol.replay.CanvasBatch#getExtent --- src/ol/replay/canvas.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/ol/replay/canvas.js b/src/ol/replay/canvas.js index 135e393157..2ba254126b 100644 --- a/src/ol/replay/canvas.js +++ b/src/ol/replay/canvas.js @@ -3,6 +3,7 @@ goog.provide('ol.replay.Canvas'); goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.vec.Mat4'); +goog.require('ol.extent'); goog.require('ol.replay'); goog.require('ol.replay.Base'); goog.require('ol.replay.Batch'); @@ -65,6 +66,12 @@ ol.replay.CanvasBatch = function(type) { */ this.path_ = []; + /** + * @private + * @type {ol.Extent} + */ + this.extent_ = ol.extent.createEmpty(); + }; goog.inherits(ol.replay.CanvasBatch, ol.replay.Batch); @@ -86,6 +93,7 @@ ol.replay.CanvasBatch.prototype.addPath = function(path, stride, close) { for (i = 0; i < m; i += stride) { this.path_[j++] = path[i]; this.path_[j++] = path[i + 1]; + ol.extent.extendXY(this.extent_, path[i], path[i + 1]); } } this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ @@ -117,6 +125,14 @@ ol.replay.CanvasBatch.prototype.draw = function() { }; +/** + * @inheritDoc + */ +ol.replay.CanvasBatch.prototype.getExtent = function() { + return this.extent_; +}; + + /** * @inheritDoc */ From 4e65fefc0077498fe593abd0da922abc6c691a5f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 16:40:26 +0100 Subject: [PATCH 025/919] Move vector code out of the way --- {examples => old/examples}/draw-features.html | 0 {examples => old/examples}/draw-features.js | 0 .../examples}/getfeatureinfo.html | 0 {examples => old/examples}/getfeatureinfo.js | 0 {examples => old/examples}/gml.html | 0 {examples => old/examples}/gml.js | 0 {examples => old/examples}/gpx.html | 0 {examples => old/examples}/gpx.js | 0 {examples => old/examples}/icon.html | 0 {examples => old/examples}/icon.js | 0 .../examples}/kml-earthquakes.html | 0 {examples => old/examples}/kml-earthquakes.js | 0 {examples => old/examples}/kml-timezones.html | 0 {examples => old/examples}/kml-timezones.js | 0 {examples => old/examples}/kml.html | 0 {examples => old/examples}/kml.js | 0 .../examples}/modify-features.html | 0 {examples => old/examples}/modify-features.js | 0 .../examples}/select-features.html | 0 {examples => old/examples}/select-features.js | 0 {examples => old/examples}/style-rules.html | 0 {examples => old/examples}/style-rules.js | 0 .../examples}/synthetic-data.html | 0 {examples => old/examples}/synthetic-data.js | 0 {examples => old/examples}/topojson.html | 0 {examples => old/examples}/topojson.js | 0 {examples => old/examples}/vector-layer.html | 0 {examples => old/examples}/vector-layer.js | 0 old/src/objectliterals.jsdoc | 881 ++++++++++++++++++ {src => old/src}/ol/expr.exports | 0 {src => old/src}/ol/expr.jsdoc | 0 {src => old/src}/ol/expr/expression.js | 0 {src => old/src}/ol/expr/expressions.js | 0 {src => old/src}/ol/expr/lexer.js | 0 {src => old/src}/ol/expr/parser.js | 0 {src => old/src}/ol/feature.exports | 0 {src => old/src}/ol/feature.js | 0 {src => old/src}/ol/geom.exports | 0 {src => old/src}/ol/geom.jsdoc | 0 .../src}/ol/geom/abstractcollection.js | 0 {src => old/src}/ol/geom/geometry.js | 0 .../src}/ol/geom/geometrycollection.js | 0 {src => old/src}/ol/geom/linearring.js | 0 {src => old/src}/ol/geom/linestring.js | 0 {src => old/src}/ol/geom/multilinestring.js | 0 {src => old/src}/ol/geom/multipoint.js | 0 {src => old/src}/ol/geom/multipolygon.js | 0 {src => old/src}/ol/geom/point.js | 0 {src => old/src}/ol/geom/polygon.js | 0 .../ol/interaction/drawinteraction.exports | 0 .../src}/ol/interaction/drawinteraction.js | 0 .../ol/interaction/modifyinteraction.exports | 0 .../src}/ol/interaction/modifyinteraction.js | 0 .../ol/interaction/selectinteraction.exports | 0 .../src}/ol/interaction/selectinteraction.js | 0 {src => old/src}/ol/layer/vectorlayer.exports | 0 {src => old/src}/ol/layer/vectorlayer.js | 0 .../src}/ol/layer/vectorlayerrenderintent.js | 0 {src => old/src}/ol/parser.jsdoc | 0 {src => old/src}/ol/parser/featureparser.js | 0 .../src}/ol/parser/geojsonparser.exports | 0 {src => old/src}/ol/parser/geojsonparser.js | 0 {src => old/src}/ol/parser/gpxparser.exports | 0 {src => old/src}/ol/parser/gpxparser.js | 0 {src => old/src}/ol/parser/kmlparser.exports | 0 {src => old/src}/ol/parser/kmlparser.js | 0 .../ol/parser/ogc/exceptionreportparser.js | 0 .../src}/ol/parser/ogc/filterparser.js | 0 .../src}/ol/parser/ogc/filterparser_v1.js | 0 .../src}/ol/parser/ogc/filterparser_v1_0_0.js | 0 .../src}/ol/parser/ogc/filterparser_v1_1_0.js | 0 .../src}/ol/parser/ogc/gmlparser.exports | 0 {src => old/src}/ol/parser/ogc/gmlparser.js | 0 .../src}/ol/parser/ogc/gmlparser_v2.js | 0 .../src}/ol/parser/ogc/gmlparser_v3.js | 0 .../src}/ol/parser/ogc/owscommonparser_v1.js | 0 .../ol/parser/ogc/owscommonparser_v1_1_0.js | 0 .../src}/ol/parser/ogc/versionedparser.js | 0 .../parser/ogc/wmscapabilitiesparser.exports | 0 .../ol/parser/ogc/wmscapabilitiesparser.js | 0 .../ol/parser/ogc/wmscapabilitiesparser_v1.js | 0 .../ogc/wmscapabilitiesparser_v1_0_0.js | 0 .../parser/ogc/wmscapabilitiesparser_v1_1.js | 0 .../ogc/wmscapabilitiesparser_v1_1_0.js | 0 .../ogc/wmscapabilitiesparser_v1_1_1.js | 0 .../ogc/wmscapabilitiesparser_v1_1_1_WMSC.js | 0 .../ogc/wmscapabilitiesparser_v1_3_0.js | 0 .../parser/ogc/wmtscapabilitiesparser.exports | 0 .../ol/parser/ogc/wmtscapabilitiesparser.js | 0 .../ogc/wmtscapabilitiesparser_v1_0_0.js | 0 {src => old/src}/ol/parser/parser.js | 0 {src => old/src}/ol/parser/polylineparser.js | 0 .../src}/ol/parser/topojsonparser.exports | 0 {src => old/src}/ol/parser/topojsonparser.js | 0 {src => old/src}/ol/parser/wktparser.exports | 0 {src => old/src}/ol/parser/wktparser.js | 0 {src => old/src}/ol/parser/xmlparser.js | 0 .../canvas/canvasvectorlayerrenderer.js | 0 .../canvas/canvasvectorlayerrenderer2.js | 0 .../renderer/canvas/canvasvectorrenderer.js | 0 .../src}/ol/source/featureinfosource.js | 0 .../src}/ol/source/vectorsource.exports | 0 {src => old/src}/ol/source/vectorsource.js | 0 {src => old/src}/ol/source/wmssource.exports | 0 {src => old/src}/ol/style.exports | 0 {src => old/src}/ol/style.jsdoc | 0 {src => old/src}/ol/style/fillsymbolizer.js | 0 {src => old/src}/ol/style/iconliteral.js | 0 {src => old/src}/ol/style/iconsymbolizer.js | 0 {src => old/src}/ol/style/lineliteral.js | 0 {src => old/src}/ol/style/literal.js | 0 {src => old/src}/ol/style/pointliteral.js | 0 {src => old/src}/ol/style/pointsymbolizer.js | 0 {src => old/src}/ol/style/polygonliteral.js | 0 {src => old/src}/ol/style/rule.js | 0 {src => old/src}/ol/style/shapeliteral.js | 0 {src => old/src}/ol/style/shapesymbolizer.js | 0 {src => old/src}/ol/style/strokesymbolizer.js | 0 {src => old/src}/ol/style/style.js | 0 {src => old/src}/ol/style/symbolizer.js | 0 {src => old/src}/ol/style/textliteral.js | 0 {src => old/src}/ol/style/textsymbolizer.js | 0 .../test}/spec/ol/expr/expression.test.js | 0 .../test}/spec/ol/expr/expressions.test.js | 0 {test => old/test}/spec/ol/expr/lexer.test.js | 0 .../test}/spec/ol/expr/parser.test.js | 0 {test => old/test}/spec/ol/feature.test.js | 0 .../test}/spec/ol/geom/geometry.test.js | 0 .../spec/ol/geom/geometrycollection.test.js | 0 .../test}/spec/ol/geom/linearring.test.js | 0 .../test}/spec/ol/geom/linestring.test.js | 0 .../spec/ol/geom/multilinestring.test.js | 0 .../test}/spec/ol/geom/multipoint.test.js | 0 .../test}/spec/ol/geom/multipolygon.test.js | 0 {test => old/test}/spec/ol/geom/point.test.js | 0 .../test}/spec/ol/geom/polygon.test.js | 0 .../ol/interaction/drawinteraction.test.js | 0 .../ol/interaction/selectinteraction.test.js | 0 .../test}/spec/ol/layer/vectorlayer.test.js | 0 .../test}/spec/ol/parser/geojson.test.js | 0 .../spec/ol/parser/geojson/countries.geojson | 0 {test => old/test}/spec/ol/parser/gpx.test.js | 0 .../test}/spec/ol/parser/gpx/data.xml | 0 {test => old/test}/spec/ol/parser/kml.test.js | 0 .../test}/spec/ol/parser/kml/depth.kml | 0 .../spec/ol/parser/kml/extended_data.kml | 0 .../spec/ol/parser/kml/extended_data2.kml | 0 .../test}/spec/ol/parser/kml/iconstyle.kml | 0 .../test}/spec/ol/parser/kml/linestring.kml | 0 .../test}/spec/ol/parser/kml/macnoise.kml | 0 .../spec/ol/parser/kml/multigeometry.kml | 0 .../ol/parser/kml/multigeometry_discrete.kml | 0 .../test}/spec/ol/parser/kml/networklink.kml | 0 .../spec/ol/parser/kml/networklink_depth.kml | 0 .../test}/spec/ol/parser/kml/point.kml | 0 .../test}/spec/ol/parser/kml/polygon.kml | 0 .../test}/spec/ol/parser/kml/states.kml | 0 .../test}/spec/ol/parser/kml/stylemap.kml | 0 .../ol/parser/ogc/exceptionreport.test.js | 0 .../spec/ol/parser/ogc/filter_v1_0_0.test.js | 0 .../spec/ol/parser/ogc/filter_v1_1_0.test.js | 0 .../test}/spec/ol/parser/ogc/gml_v2.test.js | 0 .../test}/spec/ol/parser/ogc/gml_v3.test.js | 0 .../spec/ol/parser/ogc/versioned.test.js | 0 .../ol/parser/ogc/wmscapabilities.test.js | 0 .../parser/ogc/wmscapabilities_v1_0_0.test.js | 0 .../parser/ogc/wmscapabilities_v1_1_1.test.js | 0 .../ogc/wmscapabilities_v1_1_1_WMSC.test.js | 0 .../parser/ogc/wmscapabilities_v1_3_0.test.js | 0 .../ogc/wmtscapabilities_v1_0_0.test.js | 0 .../ogc/xml/exceptionreport/ows1_0_0.xml | 0 .../ogc/xml/exceptionreport/ows1_1_0.xml | 0 .../ogc/xml/exceptionreport/wms1_3_0.xml | 0 .../spec/ol/parser/ogc/xml/filter_v1_0_0.xml | 0 .../ol/parser/ogc/xml/filter_v1_0_0/bbox.xml | 0 .../ogc/xml/filter_v1_0_0/bbox_nogeom.xml | 0 .../parser/ogc/xml/filter_v1_0_0/between.xml | 0 .../parser/ogc/xml/filter_v1_0_0/between2.xml | 0 .../parser/ogc/xml/filter_v1_0_0/contains.xml | 0 .../parser/ogc/xml/filter_v1_0_0/dwithin.xml | 0 .../ogc/xml/filter_v1_0_0/intersects.xml | 0 .../xml/filter_v1_0_0/logicalfeatureid.xml | 0 .../xml/filter_v1_0_0/logicalfeatureidand.xml | 0 .../xml/filter_v1_0_0/logicalfeatureidnot.xml | 0 .../ol/parser/ogc/xml/filter_v1_0_0/null.xml | 0 .../parser/ogc/xml/filter_v1_0_0/within.xml | 0 .../ol/parser/ogc/xml/filter_v1_1_0/bbox.xml | 0 .../ogc/xml/filter_v1_1_0/bbox_nogeomname.xml | 0 .../ogc/xml/filter_v1_1_0/customfunction.xml | 0 .../parser/ogc/xml/filter_v1_1_0/function.xml | 0 .../ogc/xml/filter_v1_1_0/intersects.xml | 0 .../ogc/xml/filter_v1_1_0/likematchcase.xml | 0 .../ogc/xml/filter_v1_1_0/nestedfunction.xml | 0 .../parser/ogc/xml/filter_v1_1_0/sortby.xml | 0 .../ol/parser/ogc/xml/filter_v1_1_0/test.xml | 0 .../ol/parser/ogc/xml/gml_v2/boundedBy.xml | 0 .../ol/parser/ogc/xml/gml_v2/box-coord.xml | 0 .../parser/ogc/xml/gml_v2/box-coordinates.xml | 0 .../gml_v2/geometrycollection-coordinates.xml | 0 .../ogc/xml/gml_v2/linearring-coord.xml | 0 .../ogc/xml/gml_v2/linearring-coordinates.xml | 0 .../ogc/xml/gml_v2/linestring-coord.xml | 0 .../ogc/xml/gml_v2/linestring-coordinates.xml | 0 .../ogc/xml/gml_v2/multilinestring-coord.xml | 0 .../gml_v2/multilinestring-coordinates.xml | 0 .../ogc/xml/gml_v2/multipletypenames.xml | 0 .../ogc/xml/gml_v2/multipoint-coord.xml | 0 .../ogc/xml/gml_v2/multipoint-coordinates.xml | 0 .../ogc/xml/gml_v2/multipolygon-coord.xml | 0 .../xml/gml_v2/multipolygon-coordinates.xml | 0 .../spec/ol/parser/ogc/xml/gml_v2/nogeom.xml | 0 .../ol/parser/ogc/xml/gml_v2/point-coord.xml | 0 .../ogc/xml/gml_v2/point-coordinates.xml | 0 .../parser/ogc/xml/gml_v2/polygon-coord.xml | 0 .../ogc/xml/gml_v2/polygon-coordinates.xml | 0 .../ol/parser/ogc/xml/gml_v2/topp-states.xml | 0 .../spec/ol/parser/ogc/xml/gml_v3/curve.xml | 0 .../parser/ogc/xml/gml_v3/empty-attribute.xml | 0 .../ol/parser/ogc/xml/gml_v3/envelope.xml | 0 .../ol/parser/ogc/xml/gml_v3/linearring.xml | 0 .../ol/parser/ogc/xml/gml_v3/linestring.xml | 0 .../ol/parser/ogc/xml/gml_v3/linestring3d.xml | 0 .../ogc/xml/gml_v3/multicurve-curve.xml | 0 .../ogc/xml/gml_v3/multicurve-singular.xml | 0 .../ogc/xml/gml_v3/multilinestring-plural.xml | 0 .../xml/gml_v3/multilinestring-singular.xml | 0 .../ogc/xml/gml_v3/multipoint-plural.xml | 0 .../ogc/xml/gml_v3/multipoint-singular.xml | 0 .../ogc/xml/gml_v3/multipolygon-plural.xml | 0 .../ogc/xml/gml_v3/multipolygon-singular.xml | 0 .../ogc/xml/gml_v3/multisurface-plural.xml | 0 .../ogc/xml/gml_v3/multisurface-singular.xml | 0 .../ogc/xml/gml_v3/multisurface-surface.xml | 0 .../spec/ol/parser/ogc/xml/gml_v3/point.xml | 0 .../spec/ol/parser/ogc/xml/gml_v3/polygon.xml | 0 .../parser/ogc/xml/gml_v3/repeated-name.xml | 0 .../spec/ol/parser/ogc/xml/gml_v3/surface.xml | 0 .../parser/ogc/xml/gml_v3/topp-states-gml.xml | 0 .../parser/ogc/xml/gml_v3/topp-states-wfs.xml | 0 .../parser/ogc/xml/wmscapabilities_v1_0_0.xml | 0 .../exceptionsample.xml | 0 .../xml/wmscapabilities_v1_1_1/gssample.xml | 0 .../xml/wmscapabilities_v1_1_1/ogcsample.xml | 0 .../wmscapabilities_v1_1_1_WMSC/fallback.xml | 0 .../xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml | 0 .../exceptionsample.xml | 0 .../xml/wmscapabilities_v1_3_0/ogcsample.xml | 0 .../xml/wmtscapabilities_v1_0_0/arcgis.xml | 0 .../multi-getile-1.xml | 0 .../multi-getile-2.xml | 0 .../xml/wmtscapabilities_v1_0_0/ogcsample.xml | 0 .../restsample-alternate-proj1.xml | 0 .../restsample-alternate-proj2.xml | 0 .../wmtscapabilities_v1_0_0/restsample.xml | 0 .../test}/spec/ol/parser/polyline.test.js | 0 .../test}/spec/ol/parser/topojson.test.js | 0 .../spec/ol/parser/topojson/world-110m.json | 0 {test => old/test}/spec/ol/parser/wkt.test.js | 0 .../test}/spec/ol/source/vectorsource.test.js | 0 .../spec/ol/style/fillsymbolizer.test.js | 0 .../test}/spec/ol/style/iconliteral.test.js | 0 .../spec/ol/style/iconsymbolizer.test.js | 0 .../test}/spec/ol/style/lineliteral.test.js | 0 .../spec/ol/style/polygonliteral.test.js | 0 {test => old/test}/spec/ol/style/rule.test.js | 0 .../test}/spec/ol/style/shapeliteral.test.js | 0 .../spec/ol/style/shapesymbolizer.test.js | 0 .../spec/ol/style/strokesymbolizer.test.js | 0 .../test}/spec/ol/style/style.test.js | 0 .../test}/spec/ol/style/textliteral.test.js | 0 .../spec/ol/style/textsymbolizer.test.js | 0 271 files changed, 881 insertions(+) rename {examples => old/examples}/draw-features.html (100%) rename {examples => old/examples}/draw-features.js (100%) rename {examples => old/examples}/getfeatureinfo.html (100%) rename {examples => old/examples}/getfeatureinfo.js (100%) rename {examples => old/examples}/gml.html (100%) rename {examples => old/examples}/gml.js (100%) rename {examples => old/examples}/gpx.html (100%) rename {examples => old/examples}/gpx.js (100%) rename {examples => old/examples}/icon.html (100%) rename {examples => old/examples}/icon.js (100%) rename {examples => old/examples}/kml-earthquakes.html (100%) rename {examples => old/examples}/kml-earthquakes.js (100%) rename {examples => old/examples}/kml-timezones.html (100%) rename {examples => old/examples}/kml-timezones.js (100%) rename {examples => old/examples}/kml.html (100%) rename {examples => old/examples}/kml.js (100%) rename {examples => old/examples}/modify-features.html (100%) rename {examples => old/examples}/modify-features.js (100%) rename {examples => old/examples}/select-features.html (100%) rename {examples => old/examples}/select-features.js (100%) rename {examples => old/examples}/style-rules.html (100%) rename {examples => old/examples}/style-rules.js (100%) rename {examples => old/examples}/synthetic-data.html (100%) rename {examples => old/examples}/synthetic-data.js (100%) rename {examples => old/examples}/topojson.html (100%) rename {examples => old/examples}/topojson.js (100%) rename {examples => old/examples}/vector-layer.html (100%) rename {examples => old/examples}/vector-layer.js (100%) create mode 100644 old/src/objectliterals.jsdoc rename {src => old/src}/ol/expr.exports (100%) rename {src => old/src}/ol/expr.jsdoc (100%) rename {src => old/src}/ol/expr/expression.js (100%) rename {src => old/src}/ol/expr/expressions.js (100%) rename {src => old/src}/ol/expr/lexer.js (100%) rename {src => old/src}/ol/expr/parser.js (100%) rename {src => old/src}/ol/feature.exports (100%) rename {src => old/src}/ol/feature.js (100%) rename {src => old/src}/ol/geom.exports (100%) rename {src => old/src}/ol/geom.jsdoc (100%) rename {src => old/src}/ol/geom/abstractcollection.js (100%) rename {src => old/src}/ol/geom/geometry.js (100%) rename {src => old/src}/ol/geom/geometrycollection.js (100%) rename {src => old/src}/ol/geom/linearring.js (100%) rename {src => old/src}/ol/geom/linestring.js (100%) rename {src => old/src}/ol/geom/multilinestring.js (100%) rename {src => old/src}/ol/geom/multipoint.js (100%) rename {src => old/src}/ol/geom/multipolygon.js (100%) rename {src => old/src}/ol/geom/point.js (100%) rename {src => old/src}/ol/geom/polygon.js (100%) rename {src => old/src}/ol/interaction/drawinteraction.exports (100%) rename {src => old/src}/ol/interaction/drawinteraction.js (100%) rename {src => old/src}/ol/interaction/modifyinteraction.exports (100%) rename {src => old/src}/ol/interaction/modifyinteraction.js (100%) rename {src => old/src}/ol/interaction/selectinteraction.exports (100%) rename {src => old/src}/ol/interaction/selectinteraction.js (100%) rename {src => old/src}/ol/layer/vectorlayer.exports (100%) rename {src => old/src}/ol/layer/vectorlayer.js (100%) rename {src => old/src}/ol/layer/vectorlayerrenderintent.js (100%) rename {src => old/src}/ol/parser.jsdoc (100%) rename {src => old/src}/ol/parser/featureparser.js (100%) rename {src => old/src}/ol/parser/geojsonparser.exports (100%) rename {src => old/src}/ol/parser/geojsonparser.js (100%) rename {src => old/src}/ol/parser/gpxparser.exports (100%) rename {src => old/src}/ol/parser/gpxparser.js (100%) rename {src => old/src}/ol/parser/kmlparser.exports (100%) rename {src => old/src}/ol/parser/kmlparser.js (100%) rename {src => old/src}/ol/parser/ogc/exceptionreportparser.js (100%) rename {src => old/src}/ol/parser/ogc/filterparser.js (100%) rename {src => old/src}/ol/parser/ogc/filterparser_v1.js (100%) rename {src => old/src}/ol/parser/ogc/filterparser_v1_0_0.js (100%) rename {src => old/src}/ol/parser/ogc/filterparser_v1_1_0.js (100%) rename {src => old/src}/ol/parser/ogc/gmlparser.exports (100%) rename {src => old/src}/ol/parser/ogc/gmlparser.js (100%) rename {src => old/src}/ol/parser/ogc/gmlparser_v2.js (100%) rename {src => old/src}/ol/parser/ogc/gmlparser_v3.js (100%) rename {src => old/src}/ol/parser/ogc/owscommonparser_v1.js (100%) rename {src => old/src}/ol/parser/ogc/owscommonparser_v1_1_0.js (100%) rename {src => old/src}/ol/parser/ogc/versionedparser.js (100%) rename {src => old/src}/ol/parser/ogc/wmscapabilitiesparser.exports (100%) rename {src => old/src}/ol/parser/ogc/wmscapabilitiesparser.js (100%) rename {src => old/src}/ol/parser/ogc/wmscapabilitiesparser_v1.js (100%) rename {src => old/src}/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js (100%) rename {src => old/src}/ol/parser/ogc/wmscapabilitiesparser_v1_1.js (100%) rename {src => old/src}/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js (100%) rename {src => old/src}/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js (100%) rename {src => old/src}/ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js (100%) rename {src => old/src}/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js (100%) rename {src => old/src}/ol/parser/ogc/wmtscapabilitiesparser.exports (100%) rename {src => old/src}/ol/parser/ogc/wmtscapabilitiesparser.js (100%) rename {src => old/src}/ol/parser/ogc/wmtscapabilitiesparser_v1_0_0.js (100%) rename {src => old/src}/ol/parser/parser.js (100%) rename {src => old/src}/ol/parser/polylineparser.js (100%) rename {src => old/src}/ol/parser/topojsonparser.exports (100%) rename {src => old/src}/ol/parser/topojsonparser.js (100%) rename {src => old/src}/ol/parser/wktparser.exports (100%) rename {src => old/src}/ol/parser/wktparser.js (100%) rename {src => old/src}/ol/parser/xmlparser.js (100%) rename {src => old/src}/ol/renderer/canvas/canvasvectorlayerrenderer.js (100%) rename {src => old/src}/ol/renderer/canvas/canvasvectorlayerrenderer2.js (100%) rename {src => old/src}/ol/renderer/canvas/canvasvectorrenderer.js (100%) rename {src => old/src}/ol/source/featureinfosource.js (100%) rename {src => old/src}/ol/source/vectorsource.exports (100%) rename {src => old/src}/ol/source/vectorsource.js (100%) rename {src => old/src}/ol/source/wmssource.exports (100%) rename {src => old/src}/ol/style.exports (100%) rename {src => old/src}/ol/style.jsdoc (100%) rename {src => old/src}/ol/style/fillsymbolizer.js (100%) rename {src => old/src}/ol/style/iconliteral.js (100%) rename {src => old/src}/ol/style/iconsymbolizer.js (100%) rename {src => old/src}/ol/style/lineliteral.js (100%) rename {src => old/src}/ol/style/literal.js (100%) rename {src => old/src}/ol/style/pointliteral.js (100%) rename {src => old/src}/ol/style/pointsymbolizer.js (100%) rename {src => old/src}/ol/style/polygonliteral.js (100%) rename {src => old/src}/ol/style/rule.js (100%) rename {src => old/src}/ol/style/shapeliteral.js (100%) rename {src => old/src}/ol/style/shapesymbolizer.js (100%) rename {src => old/src}/ol/style/strokesymbolizer.js (100%) rename {src => old/src}/ol/style/style.js (100%) rename {src => old/src}/ol/style/symbolizer.js (100%) rename {src => old/src}/ol/style/textliteral.js (100%) rename {src => old/src}/ol/style/textsymbolizer.js (100%) rename {test => old/test}/spec/ol/expr/expression.test.js (100%) rename {test => old/test}/spec/ol/expr/expressions.test.js (100%) rename {test => old/test}/spec/ol/expr/lexer.test.js (100%) rename {test => old/test}/spec/ol/expr/parser.test.js (100%) rename {test => old/test}/spec/ol/feature.test.js (100%) rename {test => old/test}/spec/ol/geom/geometry.test.js (100%) rename {test => old/test}/spec/ol/geom/geometrycollection.test.js (100%) rename {test => old/test}/spec/ol/geom/linearring.test.js (100%) rename {test => old/test}/spec/ol/geom/linestring.test.js (100%) rename {test => old/test}/spec/ol/geom/multilinestring.test.js (100%) rename {test => old/test}/spec/ol/geom/multipoint.test.js (100%) rename {test => old/test}/spec/ol/geom/multipolygon.test.js (100%) rename {test => old/test}/spec/ol/geom/point.test.js (100%) rename {test => old/test}/spec/ol/geom/polygon.test.js (100%) rename {test => old/test}/spec/ol/interaction/drawinteraction.test.js (100%) rename {test => old/test}/spec/ol/interaction/selectinteraction.test.js (100%) rename {test => old/test}/spec/ol/layer/vectorlayer.test.js (100%) rename {test => old/test}/spec/ol/parser/geojson.test.js (100%) rename {test => old/test}/spec/ol/parser/geojson/countries.geojson (100%) rename {test => old/test}/spec/ol/parser/gpx.test.js (100%) rename {test => old/test}/spec/ol/parser/gpx/data.xml (100%) rename {test => old/test}/spec/ol/parser/kml.test.js (100%) rename {test => old/test}/spec/ol/parser/kml/depth.kml (100%) rename {test => old/test}/spec/ol/parser/kml/extended_data.kml (100%) rename {test => old/test}/spec/ol/parser/kml/extended_data2.kml (100%) rename {test => old/test}/spec/ol/parser/kml/iconstyle.kml (100%) rename {test => old/test}/spec/ol/parser/kml/linestring.kml (100%) rename {test => old/test}/spec/ol/parser/kml/macnoise.kml (100%) rename {test => old/test}/spec/ol/parser/kml/multigeometry.kml (100%) rename {test => old/test}/spec/ol/parser/kml/multigeometry_discrete.kml (100%) rename {test => old/test}/spec/ol/parser/kml/networklink.kml (100%) rename {test => old/test}/spec/ol/parser/kml/networklink_depth.kml (100%) rename {test => old/test}/spec/ol/parser/kml/point.kml (100%) rename {test => old/test}/spec/ol/parser/kml/polygon.kml (100%) rename {test => old/test}/spec/ol/parser/kml/states.kml (100%) rename {test => old/test}/spec/ol/parser/kml/stylemap.kml (100%) rename {test => old/test}/spec/ol/parser/ogc/exceptionreport.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/filter_v1_0_0.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/filter_v1_1_0.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/gml_v2.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/gml_v3.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/versioned.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/wmscapabilities.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/wmtscapabilities_v1_0_0.test.js (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/exceptionreport/ows1_0_0.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/exceptionreport/ows1_1_0.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/exceptionreport/wms1_3_0.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/bbox.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/bbox_nogeom.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/between.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/between2.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/contains.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/dwithin.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/intersects.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureid.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureidand.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureidnot.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/null.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_0_0/within.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_1_0/bbox.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_1_0/bbox_nogeomname.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_1_0/customfunction.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_1_0/function.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_1_0/intersects.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_1_0/likematchcase.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_1_0/nestedfunction.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_1_0/sortby.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/filter_v1_1_0/test.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/boundedBy.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/box-coord.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/box-coordinates.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/geometrycollection-coordinates.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/linearring-coord.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/linearring-coordinates.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/linestring-coord.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/linestring-coordinates.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/multilinestring-coord.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/multilinestring-coordinates.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/multipletypenames.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/multipoint-coord.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/multipoint-coordinates.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/multipolygon-coord.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/multipolygon-coordinates.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/nogeom.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/point-coord.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/point-coordinates.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/polygon-coord.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/polygon-coordinates.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v2/topp-states.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/curve.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/empty-attribute.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/envelope.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/linearring.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/linestring.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/linestring3d.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multicurve-curve.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multicurve-singular.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multilinestring-plural.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multilinestring-singular.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multipoint-plural.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multipoint-singular.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multipolygon-plural.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multipolygon-singular.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multisurface-plural.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multisurface-singular.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/multisurface-surface.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/point.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/polygon.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/repeated-name.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/surface.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/topp-states-gml.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/gml_v3/topp-states-wfs.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/arcgis.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/multi-getile-1.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/multi-getile-2.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/ogcsample.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample-alternate-proj1.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample-alternate-proj2.xml (100%) rename {test => old/test}/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample.xml (100%) rename {test => old/test}/spec/ol/parser/polyline.test.js (100%) rename {test => old/test}/spec/ol/parser/topojson.test.js (100%) rename {test => old/test}/spec/ol/parser/topojson/world-110m.json (100%) rename {test => old/test}/spec/ol/parser/wkt.test.js (100%) rename {test => old/test}/spec/ol/source/vectorsource.test.js (100%) rename {test => old/test}/spec/ol/style/fillsymbolizer.test.js (100%) rename {test => old/test}/spec/ol/style/iconliteral.test.js (100%) rename {test => old/test}/spec/ol/style/iconsymbolizer.test.js (100%) rename {test => old/test}/spec/ol/style/lineliteral.test.js (100%) rename {test => old/test}/spec/ol/style/polygonliteral.test.js (100%) rename {test => old/test}/spec/ol/style/rule.test.js (100%) rename {test => old/test}/spec/ol/style/shapeliteral.test.js (100%) rename {test => old/test}/spec/ol/style/shapesymbolizer.test.js (100%) rename {test => old/test}/spec/ol/style/strokesymbolizer.test.js (100%) rename {test => old/test}/spec/ol/style/style.test.js (100%) rename {test => old/test}/spec/ol/style/textliteral.test.js (100%) rename {test => old/test}/spec/ol/style/textsymbolizer.test.js (100%) diff --git a/examples/draw-features.html b/old/examples/draw-features.html similarity index 100% rename from examples/draw-features.html rename to old/examples/draw-features.html diff --git a/examples/draw-features.js b/old/examples/draw-features.js similarity index 100% rename from examples/draw-features.js rename to old/examples/draw-features.js diff --git a/examples/getfeatureinfo.html b/old/examples/getfeatureinfo.html similarity index 100% rename from examples/getfeatureinfo.html rename to old/examples/getfeatureinfo.html diff --git a/examples/getfeatureinfo.js b/old/examples/getfeatureinfo.js similarity index 100% rename from examples/getfeatureinfo.js rename to old/examples/getfeatureinfo.js diff --git a/examples/gml.html b/old/examples/gml.html similarity index 100% rename from examples/gml.html rename to old/examples/gml.html diff --git a/examples/gml.js b/old/examples/gml.js similarity index 100% rename from examples/gml.js rename to old/examples/gml.js diff --git a/examples/gpx.html b/old/examples/gpx.html similarity index 100% rename from examples/gpx.html rename to old/examples/gpx.html diff --git a/examples/gpx.js b/old/examples/gpx.js similarity index 100% rename from examples/gpx.js rename to old/examples/gpx.js diff --git a/examples/icon.html b/old/examples/icon.html similarity index 100% rename from examples/icon.html rename to old/examples/icon.html diff --git a/examples/icon.js b/old/examples/icon.js similarity index 100% rename from examples/icon.js rename to old/examples/icon.js diff --git a/examples/kml-earthquakes.html b/old/examples/kml-earthquakes.html similarity index 100% rename from examples/kml-earthquakes.html rename to old/examples/kml-earthquakes.html diff --git a/examples/kml-earthquakes.js b/old/examples/kml-earthquakes.js similarity index 100% rename from examples/kml-earthquakes.js rename to old/examples/kml-earthquakes.js diff --git a/examples/kml-timezones.html b/old/examples/kml-timezones.html similarity index 100% rename from examples/kml-timezones.html rename to old/examples/kml-timezones.html diff --git a/examples/kml-timezones.js b/old/examples/kml-timezones.js similarity index 100% rename from examples/kml-timezones.js rename to old/examples/kml-timezones.js diff --git a/examples/kml.html b/old/examples/kml.html similarity index 100% rename from examples/kml.html rename to old/examples/kml.html diff --git a/examples/kml.js b/old/examples/kml.js similarity index 100% rename from examples/kml.js rename to old/examples/kml.js diff --git a/examples/modify-features.html b/old/examples/modify-features.html similarity index 100% rename from examples/modify-features.html rename to old/examples/modify-features.html diff --git a/examples/modify-features.js b/old/examples/modify-features.js similarity index 100% rename from examples/modify-features.js rename to old/examples/modify-features.js diff --git a/examples/select-features.html b/old/examples/select-features.html similarity index 100% rename from examples/select-features.html rename to old/examples/select-features.html diff --git a/examples/select-features.js b/old/examples/select-features.js similarity index 100% rename from examples/select-features.js rename to old/examples/select-features.js diff --git a/examples/style-rules.html b/old/examples/style-rules.html similarity index 100% rename from examples/style-rules.html rename to old/examples/style-rules.html diff --git a/examples/style-rules.js b/old/examples/style-rules.js similarity index 100% rename from examples/style-rules.js rename to old/examples/style-rules.js diff --git a/examples/synthetic-data.html b/old/examples/synthetic-data.html similarity index 100% rename from examples/synthetic-data.html rename to old/examples/synthetic-data.html diff --git a/examples/synthetic-data.js b/old/examples/synthetic-data.js similarity index 100% rename from examples/synthetic-data.js rename to old/examples/synthetic-data.js diff --git a/examples/topojson.html b/old/examples/topojson.html similarity index 100% rename from examples/topojson.html rename to old/examples/topojson.html diff --git a/examples/topojson.js b/old/examples/topojson.js similarity index 100% rename from examples/topojson.js rename to old/examples/topojson.js diff --git a/examples/vector-layer.html b/old/examples/vector-layer.html similarity index 100% rename from examples/vector-layer.html rename to old/examples/vector-layer.html diff --git a/examples/vector-layer.js b/old/examples/vector-layer.js similarity index 100% rename from examples/vector-layer.js rename to old/examples/vector-layer.js diff --git a/old/src/objectliterals.jsdoc b/old/src/objectliterals.jsdoc new file mode 100644 index 0000000000..0c6c3b03fc --- /dev/null +++ b/old/src/objectliterals.jsdoc @@ -0,0 +1,881 @@ +/** + * @typedef {Object} ol.AttributionOptions + * @property {string} html HTML markup for this attribution. + * @property {Object.>|undefined} tileRanges + * Tile ranges (FOR INTERNAL USE ONLY). + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.DeviceOrientationOptions + * @property {boolean|undefined} tracking Start tracking. Default is `false`. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.GeolocationOptions + * @property {boolean|undefined} tracking Start Tracking. Default is `false`. + * @property {GeolocationPositionOptions|undefined} trackingOptions Tracking options. + * @property {ol.proj.ProjectionLike} projection Projection. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.GetFeatureInfoOptions + * @property {ol.Pixel} pixel Pixel coordinate relative to the map viewport. + * @property {Array.|undefined} layers Layers to restrict the + * query to. All map layers will be queried if not provided. + * @property {function(Array.>)} success Callback for + * successful queries. The passed argument is the resulting feature + * information for each layer, with array indices being the same as in the + * passed `layers` array or in the layer collection as returned from + * `ol.Map#getLayers()` if no `layers` were provided. + * @property {function()|undefined} error Callback for unsuccessful queries. + * Note that queries with no matching features trigger the success callback, + * not the error callback. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.GetFeaturesOptions + * @property {ol.Pixel} pixel Pixel coordinate relative to the map viewport. + * @property {Array.|undefined} layers Layers to restrict the + * query to. All layers will be queried if not provided. + * @property {function(Array.>)} success Callback + * for successful queries. The passed argument is the resulting features for + * each layer, with array indices being the same as in the passed `layers` + * array or in the layer collection as returned from `ol.Map#getLayers()` if + * no layers were provided. + * @property {function()|undefined} error Callback for unsuccessful queries. + * Note that queries with no matching features trigger the success callback, + * not the error callback. + * @todo stability experimental + */ + +/** + * Object literal with config options for the map. + * @typedef {Object} ol.MapOptions + * @property {ol.Collection|Array.|undefined} controls + * Controls initially added to the map. + * @property {ol.Collection|Array.|undefined} interactions + * Interactions that are initially added to the map. + * @property {Array.|ol.Collection|undefined} layers Layers. + * @property {ol.Collection|Array.|undefined} overlays + * Overlays initially added to the map. + * @property {ol.RendererHint|undefined} renderer Renderer. + * @property {Array.|undefined} renderers Renderers. + * @property {Element|string|undefined} target The container for the map. + * @property {ol.IView|undefined} view The map's view. Currently + * {@link ol.View2D} is available as view. + * @todo stability experimental + */ + +/** + * Object literal with config options for the overlay. + * @typedef {Object} ol.OverlayOptions + * @property {Element|undefined} element The overlay element. + * @property {ol.Coordinate|undefined} position The overlay position in map + * projection. + * @property {ol.OverlayPositioning|undefined} positioning Positioning. + * @property {boolean|undefined} stopEvent Whether event propagation to the map + * viewport should be stopped. Default is `true`. If `true` the overlay is + * placed in the same container as that of the controls + * (`ol-overlaycontainer-stopevent`). + * @property {boolean|undefined} insertFirst Whether the overlay is inserted + * first in the overlay container, or appended. Default is `true`. If the + * overlay is placed in the same container as that of the controls (see + * the `stopEvent` option) you will probably set `insertFirst` to `true` + * so the overlay is displayed below the controls. + * @todo stability experimental + */ + +/** + * Object literal with config options for the Proj4js projection. + * @typedef {Object} ol.Proj4jsProjectionOptions + * @property {string} code The SRS identifier code, e.g. `EPSG:31256`. + * @property {ol.Extent|undefined} extent The validity extent for the SRS. + * @property {boolean|undefined} global Whether the projection is valid for the + * whole globe. Default is `false`. + * @todo stability experimental + */ + +/** + * Object literal with config options for the projection. + * @typedef {Object} ol.ProjectionOptions + * @property {string} code The SRS identifier code, e.g. `EPSG:4326`. + * @property {ol.proj.Units} units Units. + * @property {ol.Extent|undefined} extent The validity extent for the SRS. + * @property {string|undefined} axisOrientation The axis orientation as + * specified in Proj4. The default is `enu`. + * @property {boolean|undefined} global Whether the projection is valid for the + * whole globe. Default is `false`. + * @todo stability experimental + */ + +/** + * Object literal with config options for the view. + * @typedef {Object} ol.View2DOptions + * @property {ol.Coordinate|undefined} center The initial center for the view. + * The coordinate system for the center is specified with the `projection` + * option. Default is `undefined`, and layer sources will not be fetched if + * this is not set. + * @property {ol.Extent|undefined} extent The extent that constrains the center, + * in other words, center cannot be set outside this extent. + * Default is `undefined`. + * @property {number|undefined} maxResolution The maximum resolution used to + * determine the resolution constraint. It is used together with `maxZoom` + * and `zoomFactor`. If unspecified it is calculated in such a way that the + * projection's validity extent fits in a 256x256 px tile. If the projection + * is Spherical Mercator (the default) then `maxResolution` defaults to + * `40075016.68557849 / 256 = 156543.03392804097`. + * @property {number|undefined} maxZoom The maximum zoom level used to determine + * the resolution constraint. It is used together with `maxResolution` and + * `zoomFactor`. Default is `28`. + * @property {ol.proj.ProjectionLike} projection The projection. Default is + * `EPSG:3857` (Spherical Mercator). + * @property {number|undefined} resolution The initial resolution for the view. + * The units are `projection` units per pixel (e.g. meters per pixel). + * An alternative to setting this is to set `zoom`. Default is `undefined`, + * and layer sources will not be fetched if neither this nor `zoom` are + * defined. + * @property {Array.|undefined} resolutions Resolutions to determine the + * resolution constraint. If set the `maxResolution`, `maxZoom` and + * `zoomFactor` options are ignored. + * @property {number|undefined} rotation The initial rotation for the view + * in radians (positive rotation clockwise). Default is `0`. + * @property {number|undefined} zoom Only used if `resolution` is not defined. + * Zoom level used to calculate the initial resolution for the view. + * The initial resolution is determined using the + * `ol.View2D#constrainResolution` method. + * @property {number|undefined} zoomFactor The zoom factor used to determine the + * resolution constraint. Used together with `maxResolution` and `maxZoom`. + * Default is `2`. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.animation.BounceOptions + * @property {number} resolution The resolution to start the bounce from, typically `map.getView().getResolution()`. + * @property {number|undefined} start The start time of the animation. Default is immediately. + * @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`. + * @property {function(number):number|undefined} easing The easing function to use. Default is `ol.easing.upAndDown` + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.animation.PanOptions + * @property {ol.Coordinate} source The location to start panning from, typically `map.getView().getCenter()`. + * @property {number|undefined} start The start time of the animation. Default is immediately. + * @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`. + * @property {function(number):number|undefined} easing The easing function to use. Default is `ol.easing.inAndOut` + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.animation.RotateOptions + * @property {number} rotation The rotation to apply, in radians. + * @property {number|undefined} start The start time of the animation. Default is immediately. + * @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`. + * @property {function(number):number|undefined} easing The easing function to use. Default is `ol.easing.inAndOut` + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.animation.ZoomOptions + * @property {number} resolution number The resolution to begin zooming from, typically `map.getView().getResolution()`. + * @property {number|undefined} start The start time of the animation. Default is immediately. + * @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`. + * @property {function(number):number|undefined} easing Easing function. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.control.AttributionOptions + * @property {string|undefined} className CSS class name. Default is `ol-attribution`. + * @property {Element|undefined} target Target. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.control.ControlOptions + * @property {Element|undefined} element Element. + * @property {Element|undefined} target Target. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.control.DefaultsOptions + * @property {boolean|undefined} attribution Attribution. + * @property {ol.control.AttributionOptions|undefined} attributionOptions + * Attribution options. + * @property {boolean|undefined} logo Logo. + * @property {ol.control.LogoOptions|undefined} logoOptions Logo options. + * @property {boolean|undefined} zoom Zoom. + * @property {ol.control.ZoomOptions|undefined} zoomOptions Zoom options. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.control.FullScreenOptions + * @property {string|undefined} className CSS class name. Default is `ol-full-screen`. + * @property {boolean|undefined} keys Full keyboard access. + * @property {Element|undefined} target Target. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.control.LogoOptions + * @property {string|undefined} className CSS class name. Default is `ol-logo`. + * @property {Element|undefined} target Target. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.control.MousePositionOptions + * @property {string|undefined} className CSS class name. Default is `ol-mouse-position`. + * @property {ol.CoordinateFormatType|undefined} coordinateFormat Coordinate + * format. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {Element|undefined} target Target. + * @property {string|undefined} undefinedHTML Markup for undefined coordinates. + * Default is `` (empty string). + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.control.ScaleLineOptions + * @property {string|undefined} className CSS Class name. Default is `ol-scale-line`. + * @property {number|undefined} minWidth Minimum width in pixels. + * @property {Element|undefined} target Target. + * @property {ol.control.ScaleLineUnits|undefined} units Units. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.control.ZoomOptions + * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`. + * @property {string|undefined} className CSS class name. Default is `ol-zoom`. + * @property {number|undefined} delta The zoom delta applied on each click. + * @property {Element|undefined} target Target. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.control.ZoomSliderOptions + * @property {string|undefined} className CSS class name. + * @property {number|undefined} maxResolution Maximum resolution. + * @property {number|undefined} minResolution Minimum resolution. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.control.ZoomToExtentOptions + * @property {string|undefined} className Class name. Default is `ol-zoom-extent`. + * @property {Element|undefined} target Target. + * @property {ol.Extent|undefined} extent The extent to zoom to. If + * undefined the validity extent of the view projection is used. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.DoubleClickZoomOptions + * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`. + * @property {number|undefined} delta The zoom delta applied on each double + * click, default is `1`. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.DragPanOptions + * @property {ol.Kinetic|undefined} kinetic Kinetic inertia to apply to the pan. + * @property {ol.events.ConditionType|undefined} condition A conditional + * modifier (i.e. Shift key) that determines if the interaction is active + * or not, default is no modifiers. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.DragRotateOptions + * @property {ol.events.ConditionType|undefined} condition A conditional + * modifier (i.e. Shift key) that determines if the interaction is active + * or not, default is both shift and alt keys. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.DragRotateAndZoomOptions + * @property {ol.events.ConditionType|undefined} condition A conditional + * modifier (i.e. Shift key) that determines if the interaction is active + * or not, default is shify key. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.DragZoomOptions + * @property {ol.events.ConditionType|undefined} condition A conditional + * modifier (i.e. Shift key) that determines if the interaction is active + * or not, default is shift key. + * @todo stability experimental + */ + +/** + * Interactions for the map. Default is `true` for all options. + * @typedef {Object} ol.interaction.DefaultsOptions + * @property {boolean|undefined} altShiftDragRotate Whether Alt-Shift-drag + * rotate is desired. + * @property {boolean|undefined} doubleClickZoom Whether double click zoom is + * desired. + * @property {boolean|undefined} dragPan Whether drag-pan is desired. + * @property {boolean|undefined} keyboard Whether keyboard interaction is + * desired. + * @property {boolean|undefined} mouseWheelZoom Whether mousewheel zoom is + * desired. + * @property {boolean|undefined} shiftDragZoom Whether Shift-drag zoom is + * desired. + * @property {boolean|undefined} touchPan Whether touch pan is + * desired. + * @property {boolean|undefined} touchRotate Whether touch rotate is desired. + * @property {boolean|undefined} touchZoom Whether touch zoom is desired. + * @property {number|undefined} zoomDelta Zoom delta. + * @property {number|undefined} zoomDuration Zoom duration. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.KeyboardPanOptions + * @property {ol.events.ConditionType|undefined} condition A conditional + * modifier (i.e. Shift key) that determines if the interaction is active + * or not, default is no modifiers. + * @property {number|undefined} pixelDelta Pixel The amount to pan on each key + * press + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.KeyboardZoomOptions + * @property {number|undefined} duration Animation duration in milliseconds. Default is `100`. + * @property {ol.events.ConditionType|undefined} condition A conditional + * modifier (i.e. Shift key) that determines if the interaction is active + * or not, default is no modifiers. + * @property {number|undefined} delta The amount to zoom on each key press. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.MouseWheelZoomOptions + * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.SelectOptions + * @property {ol.events.ConditionType|undefined} addCondition A conditional + * modifier (e.g. shift key) that determines if the selection is added to + * the current selection. By default, a shift-click adds to the current + * selection. + * @property {ol.events.ConditionType|undefined} condition A conditional + * modifier (e.g. shift key) that determines if the interaction is active + * (i.e. selection occurs) or not. By default, a click with no modifier keys + * toggles the selection. + * @property {undefined|function(ol.layer.Layer):boolean} layerFilter Filter + * function to restrict selection to a subset of layers. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.TouchPanOptions + * @property {ol.Kinetic|undefined} kinetic Kinetic inertia to apply to the + * pan. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.TouchRotateOptions + * @property {number|undefined} threshold Minimal angle to start a rotation. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.interaction.TouchZoomOptions + * @property {number|undefined} duration Animation duration in milliseconds. Default is `400`. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.layer.BaseOptions + * @property {number|undefined} brightness Brightness. + * @property {number|undefined} contrast Contrast. + * @property {number|undefined} hue Hue. + * @property {number|undefined} opacity Opacity. + * @property {number|undefined} saturation Saturation. + * @property {boolean|undefined} visible Visibility. + * @property {number|undefined} minResolution The minimum resolution + * (inclusive) at which this layer will be visible. + * @property {number|undefined} maxResolution The maximum resolution + * (exclusive) below which this layer will be visible. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.layer.LayerOptions + * @property {number|undefined} brightness Brightness. + * @property {number|undefined} contrast Contrast. + * @property {number|undefined} hue Hue. + * @property {number|undefined} opacity Opacity. 0-1. Default is `1`. + * @property {number|undefined} saturation Saturation. + * @property {ol.source.Source} source Source for this layer. + * @property {boolean|undefined} visible Visibility. Default is `true` (visible). + * @property {number|undefined} minResolution The minimum resolution + * (inclusive) at which this layer will be visible. + * @property {number|undefined} maxResolution The maximum resolution + * (exclusive) below which this layer will be visible. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.layer.GroupOptions + * @property {number|undefined} brightness Brightness. + * @property {number|undefined} contrast Contrast. + * @property {number|undefined} hue Hue. + * @property {number|undefined} opacity Opacity. + * @property {number|undefined} saturation Saturation. + * @property {boolean|undefined} visible Visibility. + * @property {number|undefined} minResolution The minimum resolution + * (inclusive) at which this layer will be visible. + * @property {number|undefined} maxResolution The maximum resolution + * (exclusive) below which this layer will be visible. + * @property {Array.|ol.Collection|undefined} layers Child layers. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.layer.TileOptions + * @property {number|undefined} brightness Brightness. + * @property {number|undefined} contrast Contrast. + * @property {number|undefined} hue Hue. + * @property {number|undefined} opacity Opacity. 0-1. Default is `1`. + * @property {number|undefined} preload Preload. + * @property {number|undefined} saturation Saturation. + * @property {ol.source.Source} source Source for this layer. + * @property {boolean|undefined} visible Visibility. Default is `true` (visible). + * @property {number|undefined} minResolution The minimum resolution + * (inclusive) at which this layer will be visible. + * @property {number|undefined} maxResolution The maximum resolution + * (exclusive) below which this layer will be visible. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.layer.VectorLayerOptions + * @property {function(Array.):string|undefined} transformFeatureInfo + * Function to render an array of + * features into feature info markup. If not provided, a comma separated + * list of the unique ids of the resulting features will be returned. + * @property {number|undefined} opacity Opacity. 0-1. Default is `1`. + * @property {ol.source.Source} source Source for this layer. + * @property {ol.style.Style|undefined} style Style. + * @property {boolean|undefined} visible Visibility. Default is `true` (visible). + * @property {number|undefined} minResolution The minimum resolution + * (inclusive) at which this layer will be visible. + * @property {number|undefined} maxResolution The maximum resolution + * (exclusive) below which this layer will be visible. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.parser.KMLOptions + * @property {boolean|undefined} extractAttributes Should we extract attributes + * from the KML? Default is `true`. + * @property {boolean|undefined} extractStyles Should we extract styles from the + * KML? Default is `false`. + * @property {number|undefined} maxDepth Maximum depth to follow network links. + * Default is `0`, which means we don't follow network links at all. + * @property {Array.|undefined} trackAttributes Track attributes to + * parse. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.parser.GMLReadOptions + * @property {string|undefined} axisOrientation The axis orientation. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.parser.GMLWriteOptions + * @property {ol.proj.ProjectionLike} srsName The srsName to use when writing. + * @property {string|undefined} axisOrientation The axis orientation. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.parser.GMLOptions + * @property {boolean|undefined} curve Write gml:Curve instead of + * gml:LineString elements. This also affects the elements in multi-part + * geometries. Default is `false`. This only applies to GML version 3. + * @property {boolean|undefined} extractAttributes Should we extract attributes + * from the GML? Default is `true`. + * @property {string|undefined} featureNS The feature namespace. If not set it + * will be automatically configured from the GML. + * @property {Array.|string|undefined} featureType The local + * (without prefix) feature typeName(s). + * @property {string|undefined} geometryName Name of geometry element. + * Defaults to `geometry`. If null, it will be set on when the + * first geometry is parsed. + * @property {boolean|undefined} multiCurve Write gml:MultiCurve instead of + * gml:MultiLineString. Since the latter is deprecated in GML 3, the + * default is `true`. This only applies to GML version 3. + * @property {boolean|undefined} multiSurface Write gml:multiSurface instead + * of gml:MultiPolygon. Since the latter is deprecated in GML 3, the + * default is `true`. This only applies to GML version 3. + * @property {string|undefined} schemaLocation Optional schemaLocation to use + * when writing out the GML, this will override the default provided. + * @property {boolean|undefined} surface Write gml:Surface instead of + * gml:Polygon elements. This also affects the elements in multi-part + * geometries. Default is `false`. This only applies to GML version 3. + * @property {ol.parser.GMLReadOptions|undefined} readOptions readOptions to + * use for this instance. + * @property {ol.parser.GMLWriteOptions|undefined} writeOptions writeOptions + * to use for this instance. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.parser.GPXOptions + * @property {string|undefined} creator The creator attribute to be added to + * the written GPX files. Defaults to `OpenLayers`. + * @property {string|undefined} defaultDesc Default description for the + * waypoints/tracks in the case where the feature has no `description` + * attribute. Default is `No description available`. + * @property {boolean|undefined} extractAttributes Should we extract attributes + * from the GPX? Default is `true`. + * @property {boolean|undefined} extractWaypoints Extract waypoints from GPX. + * Default is `true`. + * @property {boolean|undefined} extractTracks Extract tracks from GPX. + * Default is `true`. + * @property {boolean|undefined} extractRoutes Extract routes from GPX. + * Default is `true`. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.parser.GPXWriteOptions + * @property {Array.|ol.Feature} features The features to write + * out. + * @property {Object|undefined} metadata Metadata key/value pair with keys: + * name, desc and author. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.BingMapsOptions + * @property {string|undefined} culture Culture. + * @property {string} key Bing Maps API key. Get yours at + * http://bingmapsportal.com/. + * @property {string} style Style. + * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional + * function to load a tile given a URL. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.MapQuestOptions + * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional + * function to load a tile given a URL. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.TileDebugOptions + * @property {ol.Extent|undefined} extent Extent. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {ol.tilegrid.TileGrid|undefined} tileGrid Tile grid. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.OSMOptions + * @property {Array.|undefined} attributions Attributions. + * @property {number|undefined} maxZoom Max zoom. + * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional + * function to load a tile given a URL. + * @property {string|undefined} url URL. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.ImageWMSOptions + * @property {Array.|undefined} attributions Attributions. + * @property {null|string|undefined} crossOrigin crossOrigin setting for image + * requests. + * @property {ol.Extent|undefined} extent Extent. + * @property {ol.source.WMSGetFeatureInfoOptions|undefined} + * getFeatureInfoOptions Options for GetFeatureInfo. + * @property {Object.} params WMS request parameters. At least a + * `LAYERS` param is required. `STYLES` is `` by default. `VERSION` is + * `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX` and `CRS` (`SRS` for WMS + * version < 1.3.0) will be set dynamically. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {number|undefined} ratio Ratio. 1 means image requests are the size + * of the map viewport, 2 means twice the size of the map viewport, and so + * on. + * @property {Array.|undefined} resolutions Resolutions. If specified, + * requests will be made for these resolutions only. + * @property {string|undefined} url WMS service URL. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.StamenOptions + * @property {string} layer Layer. + * @property {number|undefined} minZoom Minimum zoom. + * @property {number|undefined} maxZoom Maximum zoom. + * @property {boolean|undefined} opaque Whether the layer is opaque. + * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional + * function to load a tile given a URL. + * @property {string|undefined} url URL. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.ImageStaticOptions + * @property {Array.|undefined} attributions Attributions. + * @property {null|string|undefined} crossOrigin crossOrigin setting for image + * requests. + * @property {ol.Extent|undefined} extent Extent. + * @property {ol.Extent|undefined} imageExtent Extent of the image. + * @property {ol.Size|undefined} imageSize Size of the image. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {string|undefined} url URL. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.TileJSONOptions + * @property {null|string|undefined} crossOrigin crossOrigin setting for image + * requests. + * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional + * function to load a tile given a URL. + * @property {string} url URL. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.TileWMSOptions + * @property {Array.|undefined} attributions Attributions. + * @property {Object.} params WMS request parameters. At least a + * `LAYERS` param is required. `STYLES` is `` by default. `VERSION` is + * `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX` and `CRS` (`SRS` for WMS + * version < 1.3.0) will be set dynamically. + * @property {null|string|undefined} crossOrigin crossOrigin setting for image + * requests. + * @property {ol.Extent|undefined} extent Extent. + * @property {ol.source.WMSGetFeatureInfoOptions|undefined} + * getFeatureInfoOptions Options for GetFeatureInfo. + * @property {string|undefined} logo Logo. + * @property {ol.tilegrid.TileGrid|undefined} tileGrid Tile grid. + * @property {number|undefined} maxZoom Maximum zoom. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional + * function to load a tile given a URL. + * @property {string|undefined} url WMS service URL. + * @property {Array.|undefined} urls WMS service urls. Use this instead + * of `url` when the WMS supports multiple urls for GetMap requests. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.VectorOptions + * @property {Array.|undefined} attributions Attributions. + * @property {Object|string|undefined} data Data to parse. + * @property {ol.Extent|undefined} extent Extent. + * @property {string|undefined} logo Logo. + * @property {ol.parser.Parser} parser Parser instance to parse data + * provided as `data` or fetched from `url`. + * @property {ol.proj.ProjectionLike|undefined} projection Projection. Usually the + * projection is provided by the parser, so this only needs to be set if + * the parser does not know the SRS (e.g. in some GML flavors), or if the + * projection determined by the parser needs to be overridden. + * @property {string|undefined} url Server url providing the vector data. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.Vector2Options + * @property {Array.|undefined} attributions Attributions. + * @property {ol.Extent|undefined} extent Extent. + * @property {Array.|undefined} + * lineStringCollections Line string collections. + * @property {Array.|undefined} pointCollections + * Point collections. + * @property {ol.proj.ProjectionLike} projection Projection. + * @todo stability experimental + */ + + +/** + * @typedef {Object} ol.source.WMSGetFeatureInfoOptions + * @property {ol.source.WMSGetFeatureInfoMethod} method Method for requesting + * GetFeatureInfo. Default is `ol.source.WMSGetFeatureInfoMethod.IFRAME`. + * @property {Object} params Params for the GetFeatureInfo request. Default is + * `{'INFO_FORMAT': 'text/html'}`. + * @todo stability experimental + */ + + +/** + * @typedef {Object} ol.source.WMTSOptions + * @property {Array.|undefined} attributions Attributions. + * @property {string|null|undefined} crossOrigin crossOrigin setting for image + * requests. + * @property {ol.Extent|undefined} extent Extent. + * @property {string|undefined} logo Logo. + * @property {ol.tilegrid.WMTS} tileGrid Tile grid. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {ol.source.WMTSRequestEncoding|undefined} requestEncoding Request + * encoding. + * @property {string} layer Layer. + * @property {string} style Style. + * @property {string|undefined} version WMTS version. Default to `1.0.0`. + * @property {string|undefined} format Format. + * @property {string} matrixSet Matrix set. + * @property {Object|undefined} dimensions Dimensions. + * @property {string|undefined} url URL. + * @property {number|undefined} maxZoom Maximum zoom. + * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional + * function to load a tile given a URL. + * @property {Array.|undefined} urls Urls. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.source.XYZOptions + * @property {Array.|undefined} attributions Attributions. + * @property {null|string|undefined} crossOrigin Cross origin setting for image + * requests. + * @property {ol.Extent|undefined} extent Extent. + * @property {string|undefined} logo Logo. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {number|undefined} maxZoom Optional max zoom level. Default is `18`. + * @property {number|undefined} minZoom Unsupported (TODO: remove this). + * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional + * function to load a tile given a URL. + * @property {ol.TileUrlFunctionType|undefined} tileUrlFunction Optional + * function to get tile URL given a tile coordinate and the projection. + * Required if url or urls are not provided. + * @property {string|undefined} url URL template. Must include `{x}`, `{y}`, + * and `{z}` placeholders. + * @property {Array.|undefined} urls An array of URL templates. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.style.IconOptions + * @property {string|ol.expr.Expression} url Icon image URL. + * @property {number|ol.expr.Expression|undefined} width Width of the icon + * in pixels. Default is the width of the icon image. + * @property {number|ol.expr.Expression|undefined} height Height of the + * icon in pixels. Default is the height of the icon image. + * @property {number|ol.expr.Expression|undefined} opacity Icon opacity + * (0-1). + * @property {number|ol.expr.Expression|undefined} rotation Rotation in + * radians (positive rotation clockwise). + * @property {number|ol.expr.Expression|undefined} xOffset Pixel offset from the + * point to the center of the icon (positive values shift image left). + * @property {number|ol.expr.Expression|undefined} yOffset Pixel offset from the + * point to the center of the icon (positive values shift image down). + * @property {number|ol.expr.Expression|undefined} zIndex Stack order. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.style.FillOptions + * @property {string|ol.expr.Expression|undefined} color Fill color as hex color + * code. + * @property {number|ol.expr.Expression|undefined} opacity Opacity (0-1). + * @property {number|ol.expr.Expression|undefined} zIndex Stack order. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.style.RuleOptions + * @property {ol.expr.Expression|string|undefined} filter Filter. + * @property {number|undefined} maxResolution Optional maximum resolution. If + * a value is provided, the rule will apply at resolutions less than + * this value. + * @property {number|undefined} minResolution Optional minimum resolution. If + * a value is provided, the rule will apply at resolutions greater than or + * equal to this value. + * @property {Array.|undefined} symbolizers Symbolizers. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.style.ShapeOptions + * @property {ol.style.ShapeType|undefined} type Type. + * @property {number|ol.expr.Expression|undefined} size Size in pixels. + * @property {ol.style.Fill|undefined} fill Fill symbolizer for shape. + * @property {ol.style.Stroke|undefined} stroke Stroke symbolizer for shape. + * @property {number|ol.expr.Expression|undefined} zIndex Stack order. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.style.StrokeOptions + * @property {string|ol.expr.Expression|undefined} color Stroke color as hex + * color code. + * @property {number|ol.expr.Expression|undefined} opacity Stroke opacity (0-1). + * @property {number|ol.expr.Expression|undefined} width Stroke width in pixels. + * @property {number|ol.expr.Expression|undefined} zIndex Stack order. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.style.StyleOptions + * @property {Array.|undefined} rules Rules. + * @property {Array.|undefined} symbolizers Symbolizers + * (that apply if no rules are provided or where none of the provided rules + * apply). + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.style.TextOptions + * @property {string|ol.expr.Expression|undefined} color Color. + * @property {string|ol.expr.Expression|undefined} fontFamily Font family. + * @property {number|ol.expr.Expression|undefined} fontSize Font size in pixels. + * @property {string|ol.expr.Expression|undefined} fontWeight Font weight. + * @property {string|ol.expr.Expression} text Text for the label. + * @property {number|ol.expr.Expression|undefined} opacity Opacity (0-1). + * @property {ol.style.Stroke|undefined} stroke Stroke symbolizer for text. + * @property {number|ol.expr.Expression|undefined} zIndex Stack order. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.tilegrid.TileGridOptions + * @property {number|undefined} minZoom Minimum zoom. + * @property {ol.Coordinate|undefined} origin Origin. + * @property {Array.|undefined} origins Origins. + * @property {!Array.} resolutions Resolutions. + * @property {ol.Size|undefined} tileSize Tile size. + * @property {Array.|undefined} tileSizes Tile sizes. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.tilegrid.WMTSOptions + * @property {ol.Coordinate|undefined} origin Origin. + * @property {Array.|undefined} origins Origins. + * @property {!Array.} resolutions Resolutions. + * @property {!Array.} matrixIds matrix IDs. + * @property {ol.Size|undefined} tileSize Tile size. + * @property {Array.|undefined} tileSizes Tile sizes. + * @todo stability experimental + */ + +/** + * @typedef {Object} ol.tilegrid.XYZOptions + * @property {number} maxZoom Maximum zoom. + * @todo stability experimental + */ diff --git a/src/ol/expr.exports b/old/src/ol/expr.exports similarity index 100% rename from src/ol/expr.exports rename to old/src/ol/expr.exports diff --git a/src/ol/expr.jsdoc b/old/src/ol/expr.jsdoc similarity index 100% rename from src/ol/expr.jsdoc rename to old/src/ol/expr.jsdoc diff --git a/src/ol/expr/expression.js b/old/src/ol/expr/expression.js similarity index 100% rename from src/ol/expr/expression.js rename to old/src/ol/expr/expression.js diff --git a/src/ol/expr/expressions.js b/old/src/ol/expr/expressions.js similarity index 100% rename from src/ol/expr/expressions.js rename to old/src/ol/expr/expressions.js diff --git a/src/ol/expr/lexer.js b/old/src/ol/expr/lexer.js similarity index 100% rename from src/ol/expr/lexer.js rename to old/src/ol/expr/lexer.js diff --git a/src/ol/expr/parser.js b/old/src/ol/expr/parser.js similarity index 100% rename from src/ol/expr/parser.js rename to old/src/ol/expr/parser.js diff --git a/src/ol/feature.exports b/old/src/ol/feature.exports similarity index 100% rename from src/ol/feature.exports rename to old/src/ol/feature.exports diff --git a/src/ol/feature.js b/old/src/ol/feature.js similarity index 100% rename from src/ol/feature.js rename to old/src/ol/feature.js diff --git a/src/ol/geom.exports b/old/src/ol/geom.exports similarity index 100% rename from src/ol/geom.exports rename to old/src/ol/geom.exports diff --git a/src/ol/geom.jsdoc b/old/src/ol/geom.jsdoc similarity index 100% rename from src/ol/geom.jsdoc rename to old/src/ol/geom.jsdoc diff --git a/src/ol/geom/abstractcollection.js b/old/src/ol/geom/abstractcollection.js similarity index 100% rename from src/ol/geom/abstractcollection.js rename to old/src/ol/geom/abstractcollection.js diff --git a/src/ol/geom/geometry.js b/old/src/ol/geom/geometry.js similarity index 100% rename from src/ol/geom/geometry.js rename to old/src/ol/geom/geometry.js diff --git a/src/ol/geom/geometrycollection.js b/old/src/ol/geom/geometrycollection.js similarity index 100% rename from src/ol/geom/geometrycollection.js rename to old/src/ol/geom/geometrycollection.js diff --git a/src/ol/geom/linearring.js b/old/src/ol/geom/linearring.js similarity index 100% rename from src/ol/geom/linearring.js rename to old/src/ol/geom/linearring.js diff --git a/src/ol/geom/linestring.js b/old/src/ol/geom/linestring.js similarity index 100% rename from src/ol/geom/linestring.js rename to old/src/ol/geom/linestring.js diff --git a/src/ol/geom/multilinestring.js b/old/src/ol/geom/multilinestring.js similarity index 100% rename from src/ol/geom/multilinestring.js rename to old/src/ol/geom/multilinestring.js diff --git a/src/ol/geom/multipoint.js b/old/src/ol/geom/multipoint.js similarity index 100% rename from src/ol/geom/multipoint.js rename to old/src/ol/geom/multipoint.js diff --git a/src/ol/geom/multipolygon.js b/old/src/ol/geom/multipolygon.js similarity index 100% rename from src/ol/geom/multipolygon.js rename to old/src/ol/geom/multipolygon.js diff --git a/src/ol/geom/point.js b/old/src/ol/geom/point.js similarity index 100% rename from src/ol/geom/point.js rename to old/src/ol/geom/point.js diff --git a/src/ol/geom/polygon.js b/old/src/ol/geom/polygon.js similarity index 100% rename from src/ol/geom/polygon.js rename to old/src/ol/geom/polygon.js diff --git a/src/ol/interaction/drawinteraction.exports b/old/src/ol/interaction/drawinteraction.exports similarity index 100% rename from src/ol/interaction/drawinteraction.exports rename to old/src/ol/interaction/drawinteraction.exports diff --git a/src/ol/interaction/drawinteraction.js b/old/src/ol/interaction/drawinteraction.js similarity index 100% rename from src/ol/interaction/drawinteraction.js rename to old/src/ol/interaction/drawinteraction.js diff --git a/src/ol/interaction/modifyinteraction.exports b/old/src/ol/interaction/modifyinteraction.exports similarity index 100% rename from src/ol/interaction/modifyinteraction.exports rename to old/src/ol/interaction/modifyinteraction.exports diff --git a/src/ol/interaction/modifyinteraction.js b/old/src/ol/interaction/modifyinteraction.js similarity index 100% rename from src/ol/interaction/modifyinteraction.js rename to old/src/ol/interaction/modifyinteraction.js diff --git a/src/ol/interaction/selectinteraction.exports b/old/src/ol/interaction/selectinteraction.exports similarity index 100% rename from src/ol/interaction/selectinteraction.exports rename to old/src/ol/interaction/selectinteraction.exports diff --git a/src/ol/interaction/selectinteraction.js b/old/src/ol/interaction/selectinteraction.js similarity index 100% rename from src/ol/interaction/selectinteraction.js rename to old/src/ol/interaction/selectinteraction.js diff --git a/src/ol/layer/vectorlayer.exports b/old/src/ol/layer/vectorlayer.exports similarity index 100% rename from src/ol/layer/vectorlayer.exports rename to old/src/ol/layer/vectorlayer.exports diff --git a/src/ol/layer/vectorlayer.js b/old/src/ol/layer/vectorlayer.js similarity index 100% rename from src/ol/layer/vectorlayer.js rename to old/src/ol/layer/vectorlayer.js diff --git a/src/ol/layer/vectorlayerrenderintent.js b/old/src/ol/layer/vectorlayerrenderintent.js similarity index 100% rename from src/ol/layer/vectorlayerrenderintent.js rename to old/src/ol/layer/vectorlayerrenderintent.js diff --git a/src/ol/parser.jsdoc b/old/src/ol/parser.jsdoc similarity index 100% rename from src/ol/parser.jsdoc rename to old/src/ol/parser.jsdoc diff --git a/src/ol/parser/featureparser.js b/old/src/ol/parser/featureparser.js similarity index 100% rename from src/ol/parser/featureparser.js rename to old/src/ol/parser/featureparser.js diff --git a/src/ol/parser/geojsonparser.exports b/old/src/ol/parser/geojsonparser.exports similarity index 100% rename from src/ol/parser/geojsonparser.exports rename to old/src/ol/parser/geojsonparser.exports diff --git a/src/ol/parser/geojsonparser.js b/old/src/ol/parser/geojsonparser.js similarity index 100% rename from src/ol/parser/geojsonparser.js rename to old/src/ol/parser/geojsonparser.js diff --git a/src/ol/parser/gpxparser.exports b/old/src/ol/parser/gpxparser.exports similarity index 100% rename from src/ol/parser/gpxparser.exports rename to old/src/ol/parser/gpxparser.exports diff --git a/src/ol/parser/gpxparser.js b/old/src/ol/parser/gpxparser.js similarity index 100% rename from src/ol/parser/gpxparser.js rename to old/src/ol/parser/gpxparser.js diff --git a/src/ol/parser/kmlparser.exports b/old/src/ol/parser/kmlparser.exports similarity index 100% rename from src/ol/parser/kmlparser.exports rename to old/src/ol/parser/kmlparser.exports diff --git a/src/ol/parser/kmlparser.js b/old/src/ol/parser/kmlparser.js similarity index 100% rename from src/ol/parser/kmlparser.js rename to old/src/ol/parser/kmlparser.js diff --git a/src/ol/parser/ogc/exceptionreportparser.js b/old/src/ol/parser/ogc/exceptionreportparser.js similarity index 100% rename from src/ol/parser/ogc/exceptionreportparser.js rename to old/src/ol/parser/ogc/exceptionreportparser.js diff --git a/src/ol/parser/ogc/filterparser.js b/old/src/ol/parser/ogc/filterparser.js similarity index 100% rename from src/ol/parser/ogc/filterparser.js rename to old/src/ol/parser/ogc/filterparser.js diff --git a/src/ol/parser/ogc/filterparser_v1.js b/old/src/ol/parser/ogc/filterparser_v1.js similarity index 100% rename from src/ol/parser/ogc/filterparser_v1.js rename to old/src/ol/parser/ogc/filterparser_v1.js diff --git a/src/ol/parser/ogc/filterparser_v1_0_0.js b/old/src/ol/parser/ogc/filterparser_v1_0_0.js similarity index 100% rename from src/ol/parser/ogc/filterparser_v1_0_0.js rename to old/src/ol/parser/ogc/filterparser_v1_0_0.js diff --git a/src/ol/parser/ogc/filterparser_v1_1_0.js b/old/src/ol/parser/ogc/filterparser_v1_1_0.js similarity index 100% rename from src/ol/parser/ogc/filterparser_v1_1_0.js rename to old/src/ol/parser/ogc/filterparser_v1_1_0.js diff --git a/src/ol/parser/ogc/gmlparser.exports b/old/src/ol/parser/ogc/gmlparser.exports similarity index 100% rename from src/ol/parser/ogc/gmlparser.exports rename to old/src/ol/parser/ogc/gmlparser.exports diff --git a/src/ol/parser/ogc/gmlparser.js b/old/src/ol/parser/ogc/gmlparser.js similarity index 100% rename from src/ol/parser/ogc/gmlparser.js rename to old/src/ol/parser/ogc/gmlparser.js diff --git a/src/ol/parser/ogc/gmlparser_v2.js b/old/src/ol/parser/ogc/gmlparser_v2.js similarity index 100% rename from src/ol/parser/ogc/gmlparser_v2.js rename to old/src/ol/parser/ogc/gmlparser_v2.js diff --git a/src/ol/parser/ogc/gmlparser_v3.js b/old/src/ol/parser/ogc/gmlparser_v3.js similarity index 100% rename from src/ol/parser/ogc/gmlparser_v3.js rename to old/src/ol/parser/ogc/gmlparser_v3.js diff --git a/src/ol/parser/ogc/owscommonparser_v1.js b/old/src/ol/parser/ogc/owscommonparser_v1.js similarity index 100% rename from src/ol/parser/ogc/owscommonparser_v1.js rename to old/src/ol/parser/ogc/owscommonparser_v1.js diff --git a/src/ol/parser/ogc/owscommonparser_v1_1_0.js b/old/src/ol/parser/ogc/owscommonparser_v1_1_0.js similarity index 100% rename from src/ol/parser/ogc/owscommonparser_v1_1_0.js rename to old/src/ol/parser/ogc/owscommonparser_v1_1_0.js diff --git a/src/ol/parser/ogc/versionedparser.js b/old/src/ol/parser/ogc/versionedparser.js similarity index 100% rename from src/ol/parser/ogc/versionedparser.js rename to old/src/ol/parser/ogc/versionedparser.js diff --git a/src/ol/parser/ogc/wmscapabilitiesparser.exports b/old/src/ol/parser/ogc/wmscapabilitiesparser.exports similarity index 100% rename from src/ol/parser/ogc/wmscapabilitiesparser.exports rename to old/src/ol/parser/ogc/wmscapabilitiesparser.exports diff --git a/src/ol/parser/ogc/wmscapabilitiesparser.js b/old/src/ol/parser/ogc/wmscapabilitiesparser.js similarity index 100% rename from src/ol/parser/ogc/wmscapabilitiesparser.js rename to old/src/ol/parser/ogc/wmscapabilitiesparser.js diff --git a/src/ol/parser/ogc/wmscapabilitiesparser_v1.js b/old/src/ol/parser/ogc/wmscapabilitiesparser_v1.js similarity index 100% rename from src/ol/parser/ogc/wmscapabilitiesparser_v1.js rename to old/src/ol/parser/ogc/wmscapabilitiesparser_v1.js diff --git a/src/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js b/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js similarity index 100% rename from src/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js rename to old/src/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js diff --git a/src/ol/parser/ogc/wmscapabilitiesparser_v1_1.js b/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1.js similarity index 100% rename from src/ol/parser/ogc/wmscapabilitiesparser_v1_1.js rename to old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1.js diff --git a/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js b/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js similarity index 100% rename from src/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js rename to old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js diff --git a/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js b/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js similarity index 100% rename from src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js rename to old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js diff --git a/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js b/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js similarity index 100% rename from src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js rename to old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js diff --git a/src/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js b/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js similarity index 100% rename from src/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js rename to old/src/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js diff --git a/src/ol/parser/ogc/wmtscapabilitiesparser.exports b/old/src/ol/parser/ogc/wmtscapabilitiesparser.exports similarity index 100% rename from src/ol/parser/ogc/wmtscapabilitiesparser.exports rename to old/src/ol/parser/ogc/wmtscapabilitiesparser.exports diff --git a/src/ol/parser/ogc/wmtscapabilitiesparser.js b/old/src/ol/parser/ogc/wmtscapabilitiesparser.js similarity index 100% rename from src/ol/parser/ogc/wmtscapabilitiesparser.js rename to old/src/ol/parser/ogc/wmtscapabilitiesparser.js diff --git a/src/ol/parser/ogc/wmtscapabilitiesparser_v1_0_0.js b/old/src/ol/parser/ogc/wmtscapabilitiesparser_v1_0_0.js similarity index 100% rename from src/ol/parser/ogc/wmtscapabilitiesparser_v1_0_0.js rename to old/src/ol/parser/ogc/wmtscapabilitiesparser_v1_0_0.js diff --git a/src/ol/parser/parser.js b/old/src/ol/parser/parser.js similarity index 100% rename from src/ol/parser/parser.js rename to old/src/ol/parser/parser.js diff --git a/src/ol/parser/polylineparser.js b/old/src/ol/parser/polylineparser.js similarity index 100% rename from src/ol/parser/polylineparser.js rename to old/src/ol/parser/polylineparser.js diff --git a/src/ol/parser/topojsonparser.exports b/old/src/ol/parser/topojsonparser.exports similarity index 100% rename from src/ol/parser/topojsonparser.exports rename to old/src/ol/parser/topojsonparser.exports diff --git a/src/ol/parser/topojsonparser.js b/old/src/ol/parser/topojsonparser.js similarity index 100% rename from src/ol/parser/topojsonparser.js rename to old/src/ol/parser/topojsonparser.js diff --git a/src/ol/parser/wktparser.exports b/old/src/ol/parser/wktparser.exports similarity index 100% rename from src/ol/parser/wktparser.exports rename to old/src/ol/parser/wktparser.exports diff --git a/src/ol/parser/wktparser.js b/old/src/ol/parser/wktparser.js similarity index 100% rename from src/ol/parser/wktparser.js rename to old/src/ol/parser/wktparser.js diff --git a/src/ol/parser/xmlparser.js b/old/src/ol/parser/xmlparser.js similarity index 100% rename from src/ol/parser/xmlparser.js rename to old/src/ol/parser/xmlparser.js diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/old/src/ol/renderer/canvas/canvasvectorlayerrenderer.js similarity index 100% rename from src/ol/renderer/canvas/canvasvectorlayerrenderer.js rename to old/src/ol/renderer/canvas/canvasvectorlayerrenderer.js diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js b/old/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js similarity index 100% rename from src/ol/renderer/canvas/canvasvectorlayerrenderer2.js rename to old/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js diff --git a/src/ol/renderer/canvas/canvasvectorrenderer.js b/old/src/ol/renderer/canvas/canvasvectorrenderer.js similarity index 100% rename from src/ol/renderer/canvas/canvasvectorrenderer.js rename to old/src/ol/renderer/canvas/canvasvectorrenderer.js diff --git a/src/ol/source/featureinfosource.js b/old/src/ol/source/featureinfosource.js similarity index 100% rename from src/ol/source/featureinfosource.js rename to old/src/ol/source/featureinfosource.js diff --git a/src/ol/source/vectorsource.exports b/old/src/ol/source/vectorsource.exports similarity index 100% rename from src/ol/source/vectorsource.exports rename to old/src/ol/source/vectorsource.exports diff --git a/src/ol/source/vectorsource.js b/old/src/ol/source/vectorsource.js similarity index 100% rename from src/ol/source/vectorsource.js rename to old/src/ol/source/vectorsource.js diff --git a/src/ol/source/wmssource.exports b/old/src/ol/source/wmssource.exports similarity index 100% rename from src/ol/source/wmssource.exports rename to old/src/ol/source/wmssource.exports diff --git a/src/ol/style.exports b/old/src/ol/style.exports similarity index 100% rename from src/ol/style.exports rename to old/src/ol/style.exports diff --git a/src/ol/style.jsdoc b/old/src/ol/style.jsdoc similarity index 100% rename from src/ol/style.jsdoc rename to old/src/ol/style.jsdoc diff --git a/src/ol/style/fillsymbolizer.js b/old/src/ol/style/fillsymbolizer.js similarity index 100% rename from src/ol/style/fillsymbolizer.js rename to old/src/ol/style/fillsymbolizer.js diff --git a/src/ol/style/iconliteral.js b/old/src/ol/style/iconliteral.js similarity index 100% rename from src/ol/style/iconliteral.js rename to old/src/ol/style/iconliteral.js diff --git a/src/ol/style/iconsymbolizer.js b/old/src/ol/style/iconsymbolizer.js similarity index 100% rename from src/ol/style/iconsymbolizer.js rename to old/src/ol/style/iconsymbolizer.js diff --git a/src/ol/style/lineliteral.js b/old/src/ol/style/lineliteral.js similarity index 100% rename from src/ol/style/lineliteral.js rename to old/src/ol/style/lineliteral.js diff --git a/src/ol/style/literal.js b/old/src/ol/style/literal.js similarity index 100% rename from src/ol/style/literal.js rename to old/src/ol/style/literal.js diff --git a/src/ol/style/pointliteral.js b/old/src/ol/style/pointliteral.js similarity index 100% rename from src/ol/style/pointliteral.js rename to old/src/ol/style/pointliteral.js diff --git a/src/ol/style/pointsymbolizer.js b/old/src/ol/style/pointsymbolizer.js similarity index 100% rename from src/ol/style/pointsymbolizer.js rename to old/src/ol/style/pointsymbolizer.js diff --git a/src/ol/style/polygonliteral.js b/old/src/ol/style/polygonliteral.js similarity index 100% rename from src/ol/style/polygonliteral.js rename to old/src/ol/style/polygonliteral.js diff --git a/src/ol/style/rule.js b/old/src/ol/style/rule.js similarity index 100% rename from src/ol/style/rule.js rename to old/src/ol/style/rule.js diff --git a/src/ol/style/shapeliteral.js b/old/src/ol/style/shapeliteral.js similarity index 100% rename from src/ol/style/shapeliteral.js rename to old/src/ol/style/shapeliteral.js diff --git a/src/ol/style/shapesymbolizer.js b/old/src/ol/style/shapesymbolizer.js similarity index 100% rename from src/ol/style/shapesymbolizer.js rename to old/src/ol/style/shapesymbolizer.js diff --git a/src/ol/style/strokesymbolizer.js b/old/src/ol/style/strokesymbolizer.js similarity index 100% rename from src/ol/style/strokesymbolizer.js rename to old/src/ol/style/strokesymbolizer.js diff --git a/src/ol/style/style.js b/old/src/ol/style/style.js similarity index 100% rename from src/ol/style/style.js rename to old/src/ol/style/style.js diff --git a/src/ol/style/symbolizer.js b/old/src/ol/style/symbolizer.js similarity index 100% rename from src/ol/style/symbolizer.js rename to old/src/ol/style/symbolizer.js diff --git a/src/ol/style/textliteral.js b/old/src/ol/style/textliteral.js similarity index 100% rename from src/ol/style/textliteral.js rename to old/src/ol/style/textliteral.js diff --git a/src/ol/style/textsymbolizer.js b/old/src/ol/style/textsymbolizer.js similarity index 100% rename from src/ol/style/textsymbolizer.js rename to old/src/ol/style/textsymbolizer.js diff --git a/test/spec/ol/expr/expression.test.js b/old/test/spec/ol/expr/expression.test.js similarity index 100% rename from test/spec/ol/expr/expression.test.js rename to old/test/spec/ol/expr/expression.test.js diff --git a/test/spec/ol/expr/expressions.test.js b/old/test/spec/ol/expr/expressions.test.js similarity index 100% rename from test/spec/ol/expr/expressions.test.js rename to old/test/spec/ol/expr/expressions.test.js diff --git a/test/spec/ol/expr/lexer.test.js b/old/test/spec/ol/expr/lexer.test.js similarity index 100% rename from test/spec/ol/expr/lexer.test.js rename to old/test/spec/ol/expr/lexer.test.js diff --git a/test/spec/ol/expr/parser.test.js b/old/test/spec/ol/expr/parser.test.js similarity index 100% rename from test/spec/ol/expr/parser.test.js rename to old/test/spec/ol/expr/parser.test.js diff --git a/test/spec/ol/feature.test.js b/old/test/spec/ol/feature.test.js similarity index 100% rename from test/spec/ol/feature.test.js rename to old/test/spec/ol/feature.test.js diff --git a/test/spec/ol/geom/geometry.test.js b/old/test/spec/ol/geom/geometry.test.js similarity index 100% rename from test/spec/ol/geom/geometry.test.js rename to old/test/spec/ol/geom/geometry.test.js diff --git a/test/spec/ol/geom/geometrycollection.test.js b/old/test/spec/ol/geom/geometrycollection.test.js similarity index 100% rename from test/spec/ol/geom/geometrycollection.test.js rename to old/test/spec/ol/geom/geometrycollection.test.js diff --git a/test/spec/ol/geom/linearring.test.js b/old/test/spec/ol/geom/linearring.test.js similarity index 100% rename from test/spec/ol/geom/linearring.test.js rename to old/test/spec/ol/geom/linearring.test.js diff --git a/test/spec/ol/geom/linestring.test.js b/old/test/spec/ol/geom/linestring.test.js similarity index 100% rename from test/spec/ol/geom/linestring.test.js rename to old/test/spec/ol/geom/linestring.test.js diff --git a/test/spec/ol/geom/multilinestring.test.js b/old/test/spec/ol/geom/multilinestring.test.js similarity index 100% rename from test/spec/ol/geom/multilinestring.test.js rename to old/test/spec/ol/geom/multilinestring.test.js diff --git a/test/spec/ol/geom/multipoint.test.js b/old/test/spec/ol/geom/multipoint.test.js similarity index 100% rename from test/spec/ol/geom/multipoint.test.js rename to old/test/spec/ol/geom/multipoint.test.js diff --git a/test/spec/ol/geom/multipolygon.test.js b/old/test/spec/ol/geom/multipolygon.test.js similarity index 100% rename from test/spec/ol/geom/multipolygon.test.js rename to old/test/spec/ol/geom/multipolygon.test.js diff --git a/test/spec/ol/geom/point.test.js b/old/test/spec/ol/geom/point.test.js similarity index 100% rename from test/spec/ol/geom/point.test.js rename to old/test/spec/ol/geom/point.test.js diff --git a/test/spec/ol/geom/polygon.test.js b/old/test/spec/ol/geom/polygon.test.js similarity index 100% rename from test/spec/ol/geom/polygon.test.js rename to old/test/spec/ol/geom/polygon.test.js diff --git a/test/spec/ol/interaction/drawinteraction.test.js b/old/test/spec/ol/interaction/drawinteraction.test.js similarity index 100% rename from test/spec/ol/interaction/drawinteraction.test.js rename to old/test/spec/ol/interaction/drawinteraction.test.js diff --git a/test/spec/ol/interaction/selectinteraction.test.js b/old/test/spec/ol/interaction/selectinteraction.test.js similarity index 100% rename from test/spec/ol/interaction/selectinteraction.test.js rename to old/test/spec/ol/interaction/selectinteraction.test.js diff --git a/test/spec/ol/layer/vectorlayer.test.js b/old/test/spec/ol/layer/vectorlayer.test.js similarity index 100% rename from test/spec/ol/layer/vectorlayer.test.js rename to old/test/spec/ol/layer/vectorlayer.test.js diff --git a/test/spec/ol/parser/geojson.test.js b/old/test/spec/ol/parser/geojson.test.js similarity index 100% rename from test/spec/ol/parser/geojson.test.js rename to old/test/spec/ol/parser/geojson.test.js diff --git a/test/spec/ol/parser/geojson/countries.geojson b/old/test/spec/ol/parser/geojson/countries.geojson similarity index 100% rename from test/spec/ol/parser/geojson/countries.geojson rename to old/test/spec/ol/parser/geojson/countries.geojson diff --git a/test/spec/ol/parser/gpx.test.js b/old/test/spec/ol/parser/gpx.test.js similarity index 100% rename from test/spec/ol/parser/gpx.test.js rename to old/test/spec/ol/parser/gpx.test.js diff --git a/test/spec/ol/parser/gpx/data.xml b/old/test/spec/ol/parser/gpx/data.xml similarity index 100% rename from test/spec/ol/parser/gpx/data.xml rename to old/test/spec/ol/parser/gpx/data.xml diff --git a/test/spec/ol/parser/kml.test.js b/old/test/spec/ol/parser/kml.test.js similarity index 100% rename from test/spec/ol/parser/kml.test.js rename to old/test/spec/ol/parser/kml.test.js diff --git a/test/spec/ol/parser/kml/depth.kml b/old/test/spec/ol/parser/kml/depth.kml similarity index 100% rename from test/spec/ol/parser/kml/depth.kml rename to old/test/spec/ol/parser/kml/depth.kml diff --git a/test/spec/ol/parser/kml/extended_data.kml b/old/test/spec/ol/parser/kml/extended_data.kml similarity index 100% rename from test/spec/ol/parser/kml/extended_data.kml rename to old/test/spec/ol/parser/kml/extended_data.kml diff --git a/test/spec/ol/parser/kml/extended_data2.kml b/old/test/spec/ol/parser/kml/extended_data2.kml similarity index 100% rename from test/spec/ol/parser/kml/extended_data2.kml rename to old/test/spec/ol/parser/kml/extended_data2.kml diff --git a/test/spec/ol/parser/kml/iconstyle.kml b/old/test/spec/ol/parser/kml/iconstyle.kml similarity index 100% rename from test/spec/ol/parser/kml/iconstyle.kml rename to old/test/spec/ol/parser/kml/iconstyle.kml diff --git a/test/spec/ol/parser/kml/linestring.kml b/old/test/spec/ol/parser/kml/linestring.kml similarity index 100% rename from test/spec/ol/parser/kml/linestring.kml rename to old/test/spec/ol/parser/kml/linestring.kml diff --git a/test/spec/ol/parser/kml/macnoise.kml b/old/test/spec/ol/parser/kml/macnoise.kml similarity index 100% rename from test/spec/ol/parser/kml/macnoise.kml rename to old/test/spec/ol/parser/kml/macnoise.kml diff --git a/test/spec/ol/parser/kml/multigeometry.kml b/old/test/spec/ol/parser/kml/multigeometry.kml similarity index 100% rename from test/spec/ol/parser/kml/multigeometry.kml rename to old/test/spec/ol/parser/kml/multigeometry.kml diff --git a/test/spec/ol/parser/kml/multigeometry_discrete.kml b/old/test/spec/ol/parser/kml/multigeometry_discrete.kml similarity index 100% rename from test/spec/ol/parser/kml/multigeometry_discrete.kml rename to old/test/spec/ol/parser/kml/multigeometry_discrete.kml diff --git a/test/spec/ol/parser/kml/networklink.kml b/old/test/spec/ol/parser/kml/networklink.kml similarity index 100% rename from test/spec/ol/parser/kml/networklink.kml rename to old/test/spec/ol/parser/kml/networklink.kml diff --git a/test/spec/ol/parser/kml/networklink_depth.kml b/old/test/spec/ol/parser/kml/networklink_depth.kml similarity index 100% rename from test/spec/ol/parser/kml/networklink_depth.kml rename to old/test/spec/ol/parser/kml/networklink_depth.kml diff --git a/test/spec/ol/parser/kml/point.kml b/old/test/spec/ol/parser/kml/point.kml similarity index 100% rename from test/spec/ol/parser/kml/point.kml rename to old/test/spec/ol/parser/kml/point.kml diff --git a/test/spec/ol/parser/kml/polygon.kml b/old/test/spec/ol/parser/kml/polygon.kml similarity index 100% rename from test/spec/ol/parser/kml/polygon.kml rename to old/test/spec/ol/parser/kml/polygon.kml diff --git a/test/spec/ol/parser/kml/states.kml b/old/test/spec/ol/parser/kml/states.kml similarity index 100% rename from test/spec/ol/parser/kml/states.kml rename to old/test/spec/ol/parser/kml/states.kml diff --git a/test/spec/ol/parser/kml/stylemap.kml b/old/test/spec/ol/parser/kml/stylemap.kml similarity index 100% rename from test/spec/ol/parser/kml/stylemap.kml rename to old/test/spec/ol/parser/kml/stylemap.kml diff --git a/test/spec/ol/parser/ogc/exceptionreport.test.js b/old/test/spec/ol/parser/ogc/exceptionreport.test.js similarity index 100% rename from test/spec/ol/parser/ogc/exceptionreport.test.js rename to old/test/spec/ol/parser/ogc/exceptionreport.test.js diff --git a/test/spec/ol/parser/ogc/filter_v1_0_0.test.js b/old/test/spec/ol/parser/ogc/filter_v1_0_0.test.js similarity index 100% rename from test/spec/ol/parser/ogc/filter_v1_0_0.test.js rename to old/test/spec/ol/parser/ogc/filter_v1_0_0.test.js diff --git a/test/spec/ol/parser/ogc/filter_v1_1_0.test.js b/old/test/spec/ol/parser/ogc/filter_v1_1_0.test.js similarity index 100% rename from test/spec/ol/parser/ogc/filter_v1_1_0.test.js rename to old/test/spec/ol/parser/ogc/filter_v1_1_0.test.js diff --git a/test/spec/ol/parser/ogc/gml_v2.test.js b/old/test/spec/ol/parser/ogc/gml_v2.test.js similarity index 100% rename from test/spec/ol/parser/ogc/gml_v2.test.js rename to old/test/spec/ol/parser/ogc/gml_v2.test.js diff --git a/test/spec/ol/parser/ogc/gml_v3.test.js b/old/test/spec/ol/parser/ogc/gml_v3.test.js similarity index 100% rename from test/spec/ol/parser/ogc/gml_v3.test.js rename to old/test/spec/ol/parser/ogc/gml_v3.test.js diff --git a/test/spec/ol/parser/ogc/versioned.test.js b/old/test/spec/ol/parser/ogc/versioned.test.js similarity index 100% rename from test/spec/ol/parser/ogc/versioned.test.js rename to old/test/spec/ol/parser/ogc/versioned.test.js diff --git a/test/spec/ol/parser/ogc/wmscapabilities.test.js b/old/test/spec/ol/parser/ogc/wmscapabilities.test.js similarity index 100% rename from test/spec/ol/parser/ogc/wmscapabilities.test.js rename to old/test/spec/ol/parser/ogc/wmscapabilities.test.js diff --git a/test/spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js b/old/test/spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js similarity index 100% rename from test/spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js rename to old/test/spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js diff --git a/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js b/old/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js similarity index 100% rename from test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js rename to old/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js diff --git a/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js b/old/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js similarity index 100% rename from test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js rename to old/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js diff --git a/test/spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js b/old/test/spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js similarity index 100% rename from test/spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js rename to old/test/spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js diff --git a/test/spec/ol/parser/ogc/wmtscapabilities_v1_0_0.test.js b/old/test/spec/ol/parser/ogc/wmtscapabilities_v1_0_0.test.js similarity index 100% rename from test/spec/ol/parser/ogc/wmtscapabilities_v1_0_0.test.js rename to old/test/spec/ol/parser/ogc/wmtscapabilities_v1_0_0.test.js diff --git a/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_0_0.xml b/old/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_0_0.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/exceptionreport/ows1_0_0.xml rename to old/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_0_0.xml diff --git a/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_1_0.xml b/old/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_1_0.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/exceptionreport/ows1_1_0.xml rename to old/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_1_0.xml diff --git a/test/spec/ol/parser/ogc/xml/exceptionreport/wms1_3_0.xml b/old/test/spec/ol/parser/ogc/xml/exceptionreport/wms1_3_0.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/exceptionreport/wms1_3_0.xml rename to old/test/spec/ol/parser/ogc/xml/exceptionreport/wms1_3_0.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/bbox.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/bbox.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/bbox.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/bbox.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/bbox_nogeom.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/bbox_nogeom.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/bbox_nogeom.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/bbox_nogeom.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/between.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/between.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/between.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/between.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/between2.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/between2.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/between2.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/between2.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/contains.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/contains.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/contains.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/contains.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/dwithin.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/dwithin.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/dwithin.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/dwithin.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/intersects.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/intersects.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/intersects.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/intersects.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureid.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureid.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureid.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureid.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureidand.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureidand.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureidand.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureidand.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureidnot.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureidnot.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureidnot.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/logicalfeatureidnot.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/null.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/null.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/null.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/null.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_0_0/within.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/within.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_0_0/within.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_0_0/within.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_1_0/bbox.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/bbox.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_1_0/bbox.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/bbox.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_1_0/bbox_nogeomname.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/bbox_nogeomname.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_1_0/bbox_nogeomname.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/bbox_nogeomname.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_1_0/customfunction.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/customfunction.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_1_0/customfunction.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/customfunction.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_1_0/function.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/function.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_1_0/function.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/function.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_1_0/intersects.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/intersects.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_1_0/intersects.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/intersects.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_1_0/likematchcase.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/likematchcase.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_1_0/likematchcase.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/likematchcase.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_1_0/nestedfunction.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/nestedfunction.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_1_0/nestedfunction.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/nestedfunction.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_1_0/sortby.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/sortby.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_1_0/sortby.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/sortby.xml diff --git a/test/spec/ol/parser/ogc/xml/filter_v1_1_0/test.xml b/old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/test.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/filter_v1_1_0/test.xml rename to old/test/spec/ol/parser/ogc/xml/filter_v1_1_0/test.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/boundedBy.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/boundedBy.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/boundedBy.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/boundedBy.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/box-coord.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/box-coord.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/box-coord.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/box-coord.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/box-coordinates.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/box-coordinates.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/box-coordinates.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/box-coordinates.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/geometrycollection-coordinates.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/geometrycollection-coordinates.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/geometrycollection-coordinates.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/geometrycollection-coordinates.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/linearring-coord.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/linearring-coord.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/linearring-coord.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/linearring-coord.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/linearring-coordinates.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/linearring-coordinates.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/linearring-coordinates.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/linearring-coordinates.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/linestring-coord.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/linestring-coord.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/linestring-coord.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/linestring-coord.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/linestring-coordinates.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/linestring-coordinates.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/linestring-coordinates.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/linestring-coordinates.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/multilinestring-coord.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/multilinestring-coord.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/multilinestring-coord.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/multilinestring-coord.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/multilinestring-coordinates.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/multilinestring-coordinates.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/multilinestring-coordinates.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/multilinestring-coordinates.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/multipletypenames.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/multipletypenames.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/multipletypenames.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/multipletypenames.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/multipoint-coord.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/multipoint-coord.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/multipoint-coord.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/multipoint-coord.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/multipoint-coordinates.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/multipoint-coordinates.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/multipoint-coordinates.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/multipoint-coordinates.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/multipolygon-coord.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/multipolygon-coord.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/multipolygon-coord.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/multipolygon-coord.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/multipolygon-coordinates.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/multipolygon-coordinates.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/multipolygon-coordinates.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/multipolygon-coordinates.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/nogeom.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/nogeom.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/nogeom.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/nogeom.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/point-coord.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/point-coord.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/point-coord.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/point-coord.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/point-coordinates.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/point-coordinates.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/point-coordinates.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/point-coordinates.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/polygon-coord.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/polygon-coord.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/polygon-coord.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/polygon-coord.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/polygon-coordinates.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/polygon-coordinates.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/polygon-coordinates.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/polygon-coordinates.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v2/topp-states.xml b/old/test/spec/ol/parser/ogc/xml/gml_v2/topp-states.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v2/topp-states.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v2/topp-states.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/curve.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/curve.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/curve.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/curve.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/empty-attribute.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/empty-attribute.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/empty-attribute.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/empty-attribute.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/envelope.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/envelope.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/envelope.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/envelope.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/linearring.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/linearring.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/linearring.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/linearring.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/linestring.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/linestring.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/linestring.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/linestring.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/linestring3d.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/linestring3d.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/linestring3d.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/linestring3d.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multicurve-curve.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multicurve-curve.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multicurve-curve.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multicurve-curve.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multicurve-singular.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multicurve-singular.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multicurve-singular.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multicurve-singular.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multilinestring-plural.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multilinestring-plural.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multilinestring-plural.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multilinestring-plural.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multilinestring-singular.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multilinestring-singular.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multilinestring-singular.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multilinestring-singular.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multipoint-plural.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multipoint-plural.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multipoint-plural.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multipoint-plural.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multipoint-singular.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multipoint-singular.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multipoint-singular.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multipoint-singular.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multipolygon-plural.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multipolygon-plural.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multipolygon-plural.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multipolygon-plural.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multipolygon-singular.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multipolygon-singular.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multipolygon-singular.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multipolygon-singular.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multisurface-plural.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multisurface-plural.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multisurface-plural.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multisurface-plural.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multisurface-singular.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multisurface-singular.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multisurface-singular.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multisurface-singular.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/multisurface-surface.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/multisurface-surface.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/multisurface-surface.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/multisurface-surface.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/point.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/point.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/point.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/point.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/polygon.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/polygon.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/polygon.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/polygon.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/repeated-name.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/repeated-name.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/repeated-name.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/repeated-name.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/surface.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/surface.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/surface.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/surface.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/topp-states-gml.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/topp-states-gml.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/topp-states-gml.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/topp-states-gml.xml diff --git a/test/spec/ol/parser/ogc/xml/gml_v3/topp-states-wfs.xml b/old/test/spec/ol/parser/ogc/xml/gml_v3/topp-states-wfs.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/gml_v3/topp-states-wfs.xml rename to old/test/spec/ol/parser/ogc/xml/gml_v3/topp-states-wfs.xml diff --git a/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml b/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml rename to old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml diff --git a/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml b/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml rename to old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml diff --git a/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml b/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml rename to old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml diff --git a/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml b/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml rename to old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml diff --git a/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml b/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml rename to old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml diff --git a/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml b/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml rename to old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml diff --git a/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml b/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml rename to old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml diff --git a/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml b/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml rename to old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml diff --git a/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/arcgis.xml b/old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/arcgis.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/arcgis.xml rename to old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/arcgis.xml diff --git a/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/multi-getile-1.xml b/old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/multi-getile-1.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/multi-getile-1.xml rename to old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/multi-getile-1.xml diff --git a/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/multi-getile-2.xml b/old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/multi-getile-2.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/multi-getile-2.xml rename to old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/multi-getile-2.xml diff --git a/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/ogcsample.xml b/old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/ogcsample.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/ogcsample.xml rename to old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/ogcsample.xml diff --git a/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample-alternate-proj1.xml b/old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample-alternate-proj1.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample-alternate-proj1.xml rename to old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample-alternate-proj1.xml diff --git a/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample-alternate-proj2.xml b/old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample-alternate-proj2.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample-alternate-proj2.xml rename to old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample-alternate-proj2.xml diff --git a/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample.xml b/old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample.xml similarity index 100% rename from test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample.xml rename to old/test/spec/ol/parser/ogc/xml/wmtscapabilities_v1_0_0/restsample.xml diff --git a/test/spec/ol/parser/polyline.test.js b/old/test/spec/ol/parser/polyline.test.js similarity index 100% rename from test/spec/ol/parser/polyline.test.js rename to old/test/spec/ol/parser/polyline.test.js diff --git a/test/spec/ol/parser/topojson.test.js b/old/test/spec/ol/parser/topojson.test.js similarity index 100% rename from test/spec/ol/parser/topojson.test.js rename to old/test/spec/ol/parser/topojson.test.js diff --git a/test/spec/ol/parser/topojson/world-110m.json b/old/test/spec/ol/parser/topojson/world-110m.json similarity index 100% rename from test/spec/ol/parser/topojson/world-110m.json rename to old/test/spec/ol/parser/topojson/world-110m.json diff --git a/test/spec/ol/parser/wkt.test.js b/old/test/spec/ol/parser/wkt.test.js similarity index 100% rename from test/spec/ol/parser/wkt.test.js rename to old/test/spec/ol/parser/wkt.test.js diff --git a/test/spec/ol/source/vectorsource.test.js b/old/test/spec/ol/source/vectorsource.test.js similarity index 100% rename from test/spec/ol/source/vectorsource.test.js rename to old/test/spec/ol/source/vectorsource.test.js diff --git a/test/spec/ol/style/fillsymbolizer.test.js b/old/test/spec/ol/style/fillsymbolizer.test.js similarity index 100% rename from test/spec/ol/style/fillsymbolizer.test.js rename to old/test/spec/ol/style/fillsymbolizer.test.js diff --git a/test/spec/ol/style/iconliteral.test.js b/old/test/spec/ol/style/iconliteral.test.js similarity index 100% rename from test/spec/ol/style/iconliteral.test.js rename to old/test/spec/ol/style/iconliteral.test.js diff --git a/test/spec/ol/style/iconsymbolizer.test.js b/old/test/spec/ol/style/iconsymbolizer.test.js similarity index 100% rename from test/spec/ol/style/iconsymbolizer.test.js rename to old/test/spec/ol/style/iconsymbolizer.test.js diff --git a/test/spec/ol/style/lineliteral.test.js b/old/test/spec/ol/style/lineliteral.test.js similarity index 100% rename from test/spec/ol/style/lineliteral.test.js rename to old/test/spec/ol/style/lineliteral.test.js diff --git a/test/spec/ol/style/polygonliteral.test.js b/old/test/spec/ol/style/polygonliteral.test.js similarity index 100% rename from test/spec/ol/style/polygonliteral.test.js rename to old/test/spec/ol/style/polygonliteral.test.js diff --git a/test/spec/ol/style/rule.test.js b/old/test/spec/ol/style/rule.test.js similarity index 100% rename from test/spec/ol/style/rule.test.js rename to old/test/spec/ol/style/rule.test.js diff --git a/test/spec/ol/style/shapeliteral.test.js b/old/test/spec/ol/style/shapeliteral.test.js similarity index 100% rename from test/spec/ol/style/shapeliteral.test.js rename to old/test/spec/ol/style/shapeliteral.test.js diff --git a/test/spec/ol/style/shapesymbolizer.test.js b/old/test/spec/ol/style/shapesymbolizer.test.js similarity index 100% rename from test/spec/ol/style/shapesymbolizer.test.js rename to old/test/spec/ol/style/shapesymbolizer.test.js diff --git a/test/spec/ol/style/strokesymbolizer.test.js b/old/test/spec/ol/style/strokesymbolizer.test.js similarity index 100% rename from test/spec/ol/style/strokesymbolizer.test.js rename to old/test/spec/ol/style/strokesymbolizer.test.js diff --git a/test/spec/ol/style/style.test.js b/old/test/spec/ol/style/style.test.js similarity index 100% rename from test/spec/ol/style/style.test.js rename to old/test/spec/ol/style/style.test.js diff --git a/test/spec/ol/style/textliteral.test.js b/old/test/spec/ol/style/textliteral.test.js similarity index 100% rename from test/spec/ol/style/textliteral.test.js rename to old/test/spec/ol/style/textliteral.test.js diff --git a/test/spec/ol/style/textsymbolizer.test.js b/old/test/spec/ol/style/textsymbolizer.test.js similarity index 100% rename from test/spec/ol/style/textsymbolizer.test.js rename to old/test/spec/ol/style/textsymbolizer.test.js From bd82e1aa1a762efb725848d0c62f8f56b7b7ee30 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 16:41:23 +0100 Subject: [PATCH 026/919] Remove vector code from files --- src/objectliterals.jsdoc | 281 -------------------- src/ol/map.exports | 2 - src/ol/map.js | 28 -- src/ol/renderer/canvas/canvasmaprenderer.js | 4 - src/ol/renderer/layerrenderer.js | 20 -- src/ol/renderer/maprenderer.js | 73 ----- src/ol/source/imagewmssource.js | 26 -- src/ol/source/tilewmssource.js | 33 --- src/ol/source/wmssource.js | 80 ------ test/spec/ol/source/imagewmssource.test.js | 92 ------- test/spec/ol/source/wmssource.test.js | 22 -- 11 files changed, 661 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 2d012d4677..87a96162e5 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -20,38 +20,6 @@ * @todo stability experimental */ -/** - * @typedef {Object} ol.GetFeatureInfoOptions - * @property {ol.Pixel} pixel Pixel coordinate relative to the map viewport. - * @property {Array.|undefined} layers Layers to restrict the - * query to. All map layers will be queried if not provided. - * @property {function(Array.>)} success Callback for - * successful queries. The passed argument is the resulting feature - * information for each layer, with array indices being the same as in the - * passed `layers` array or in the layer collection as returned from - * `ol.Map#getLayers()` if no `layers` were provided. - * @property {function()|undefined} error Callback for unsuccessful queries. - * Note that queries with no matching features trigger the success callback, - * not the error callback. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.GetFeaturesOptions - * @property {ol.Pixel} pixel Pixel coordinate relative to the map viewport. - * @property {Array.|undefined} layers Layers to restrict the - * query to. All layers will be queried if not provided. - * @property {function(Array.>)} success Callback - * for successful queries. The passed argument is the resulting features for - * each layer, with array indices being the same as in the passed `layers` - * array or in the layer collection as returned from `ol.Map#getLayers()` if - * no layers were provided. - * @property {function()|undefined} error Callback for unsuccessful queries. - * Note that queries with no matching features trigger the success callback, - * not the error callback. - * @todo stability experimental - */ - /** * Object literal with config options for the map. * @typedef {Object} ol.MapOptions @@ -341,16 +309,6 @@ * @todo stability experimental */ -/** - * @typedef {Object} ol.interaction.DrawOptions - * @property {ol.layer.Vector} layer Destination layer for the features. - * @property {number|undefined} snapTolerance Pixel distance for snapping to the - * drawing finish (default is 12). - * @property {ol.geom.GeometryType} type Drawing type ('point', 'linestring', - * 'polygon', 'multipoint', 'multilinestring', or 'multipolygon'). - * @todo stability experimental - */ - /** * @typedef {Object} ol.interaction.KeyboardPanOptions * @property {ol.events.ConditionType|undefined} condition A conditional @@ -377,29 +335,6 @@ * @todo stability experimental */ -/** - * @typedef {Object} ol.interaction.ModifyOptions - * @property {undefined|Array.|function(ol.layer.Layer):boolean} layers - * Layers or filter function to restrict modification to a subset of layers. - * @property {number|undefined} pixelTolerance Pixel tolerance for considering - * the pointer close enough to a vertex for editing. Default is 20 pixels. - */ - -/** - * @typedef {Object} ol.interaction.SelectOptions - * @property {ol.events.ConditionType|undefined} addCondition A conditional - * modifier (e.g. shift key) that determines if the selection is added to - * the current selection. By default, a shift-click adds to the current - * selection. - * @property {ol.events.ConditionType|undefined} condition A conditional - * modifier (e.g. shift key) that determines if the interaction is active - * (i.e. selection occurs) or not. By default, a click with no modifier keys - * toggles the selection. - * @property {undefined|Array.|function(ol.layer.Layer):boolean} layers - * Layers or filter function to restrict selection to a subset of layers. - * @todo stability experimental - */ - /** * @typedef {Object} ol.interaction.TouchPanOptions * @property {ol.Kinetic|undefined} kinetic Kinetic inertia to apply to the @@ -483,108 +418,6 @@ * @todo stability experimental */ -/** - * @typedef {Object} ol.layer.VectorLayerOptions - * @property {function(Array.):string|undefined} transformFeatureInfo - * Function to render an array of - * features into feature info markup. If not provided, a comma separated - * list of the unique ids of the resulting features will be returned. - * @property {number|undefined} opacity Opacity. 0-1. Default is `1`. - * @property {ol.source.Source} source Source for this layer. - * @property {ol.style.Style|undefined} style Style. - * @property {boolean|undefined} visible Visibility. Default is `true` (visible). - * @property {number|undefined} minResolution The minimum resolution - * (inclusive) at which this layer will be visible. - * @property {number|undefined} maxResolution The maximum resolution - * (exclusive) below which this layer will be visible. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.parser.KMLOptions - * @property {boolean|undefined} extractAttributes Should we extract attributes - * from the KML? Default is `true`. - * @property {boolean|undefined} extractStyles Should we extract styles from the - * KML? Default is `false`. - * @property {number|undefined} maxDepth Maximum depth to follow network links. - * Default is `0`, which means we don't follow network links at all. - * @property {Array.|undefined} trackAttributes Track attributes to - * parse. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.parser.GMLReadOptions - * @property {string|undefined} axisOrientation The axis orientation. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.parser.GMLWriteOptions - * @property {ol.proj.ProjectionLike} srsName The srsName to use when writing. - * @property {string|undefined} axisOrientation The axis orientation. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.parser.GMLOptions - * @property {boolean|undefined} curve Write gml:Curve instead of - * gml:LineString elements. This also affects the elements in multi-part - * geometries. Default is `false`. This only applies to GML version 3. - * @property {boolean|undefined} extractAttributes Should we extract attributes - * from the GML? Default is `true`. - * @property {string|undefined} featureNS The feature namespace. If not set it - * will be automatically configured from the GML. - * @property {Array.|string|undefined} featureType The local - * (without prefix) feature typeName(s). - * @property {string|undefined} geometryName Name of geometry element. - * Defaults to `geometry`. If null, it will be set on when the - * first geometry is parsed. - * @property {boolean|undefined} multiCurve Write gml:MultiCurve instead of - * gml:MultiLineString. Since the latter is deprecated in GML 3, the - * default is `true`. This only applies to GML version 3. - * @property {boolean|undefined} multiSurface Write gml:multiSurface instead - * of gml:MultiPolygon. Since the latter is deprecated in GML 3, the - * default is `true`. This only applies to GML version 3. - * @property {string|undefined} schemaLocation Optional schemaLocation to use - * when writing out the GML, this will override the default provided. - * @property {boolean|undefined} surface Write gml:Surface instead of - * gml:Polygon elements. This also affects the elements in multi-part - * geometries. Default is `false`. This only applies to GML version 3. - * @property {ol.parser.GMLReadOptions|undefined} readOptions readOptions to - * use for this instance. - * @property {ol.parser.GMLWriteOptions|undefined} writeOptions writeOptions - * to use for this instance. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.parser.GPXOptions - * @property {string|undefined} creator The creator attribute to be added to - * the written GPX files. Defaults to `OpenLayers`. - * @property {string|undefined} defaultDesc Default description for the - * waypoints/tracks in the case where the feature has no `description` - * attribute. Default is `No description available`. - * @property {boolean|undefined} extractAttributes Should we extract attributes - * from the GPX? Default is `true`. - * @property {boolean|undefined} extractWaypoints Extract waypoints from GPX. - * Default is `true`. - * @property {boolean|undefined} extractTracks Extract tracks from GPX. - * Default is `true`. - * @property {boolean|undefined} extractRoutes Extract routes from GPX. - * Default is `true`. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.parser.GPXWriteOptions - * @property {Array.|ol.Feature} features The features to write - * out. - * @property {Object|undefined} metadata Metadata key/value pair with keys: - * name, desc and author. - * @todo stability experimental - */ - /** * @typedef {Object} ol.source.BingMapsOptions * @property {string|undefined} culture Culture. @@ -627,8 +460,6 @@ * @property {null|string|undefined} crossOrigin crossOrigin setting for image * requests. * @property {ol.Extent|undefined} extent Extent. - * @property {ol.source.WMSGetFeatureInfoOptions|undefined} - * getFeatureInfoOptions Options for GetFeatureInfo. * @property {Object.} params WMS request parameters. At least a * `LAYERS` param is required. `STYLES` is `` by default. `VERSION` is * `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX` and `CRS` (`SRS` for WMS @@ -688,8 +519,6 @@ * @property {null|string|undefined} crossOrigin crossOrigin setting for image * requests. * @property {ol.Extent|undefined} extent Extent. - * @property {ol.source.WMSGetFeatureInfoOptions|undefined} - * getFeatureInfoOptions Options for GetFeatureInfo. * @property {string|undefined} logo Logo. * @property {ol.tilegrid.TileGrid|undefined} tileGrid Tile grid. * @property {number|undefined} maxZoom Maximum zoom. @@ -702,33 +531,6 @@ * @todo stability experimental */ -/** - * @typedef {Object} ol.source.VectorOptions - * @property {Array.|undefined} attributions Attributions. - * @property {Object|string|undefined} data Data to parse. - * @property {ol.Extent|undefined} extent Extent. - * @property {string|undefined} logo Logo. - * @property {ol.parser.Parser} parser Parser instance to parse data - * provided as `data` or fetched from `url`. - * @property {ol.proj.ProjectionLike|undefined} projection Projection. Usually the - * projection is provided by the parser, so this only needs to be set if - * the parser does not know the SRS (e.g. in some GML flavors), or if the - * projection determined by the parser needs to be overridden. - * @property {string|undefined} url Server url providing the vector data. - * @todo stability experimental - */ - - -/** - * @typedef {Object} ol.source.WMSGetFeatureInfoOptions - * @property {ol.source.WMSGetFeatureInfoMethod} method Method for requesting - * GetFeatureInfo. Default is `ol.source.WMSGetFeatureInfoMethod.IFRAME`. - * @property {Object} params Params for the GetFeatureInfo request. Default is - * `{'INFO_FORMAT': 'text/html'}`. - * @todo stability experimental - */ - - /** * @typedef {Object} ol.source.WMTSOptions * @property {Array.|undefined} attributions Attributions. @@ -775,89 +577,6 @@ * @todo stability experimental */ -/** - * @typedef {Object} ol.style.IconOptions - * @property {string|ol.expr.Expression} url Icon image URL. - * @property {number|ol.expr.Expression|undefined} width Width of the icon - * in pixels. Default is the width of the icon image. - * @property {number|ol.expr.Expression|undefined} height Height of the - * icon in pixels. Default is the height of the icon image. - * @property {number|ol.expr.Expression|undefined} opacity Icon opacity - * (0-1). - * @property {number|ol.expr.Expression|undefined} rotation Rotation in - * radians (positive rotation clockwise). - * @property {number|ol.expr.Expression|undefined} xOffset Pixel offset from the - * point to the center of the icon (positive values shift image left). - * @property {number|ol.expr.Expression|undefined} yOffset Pixel offset from the - * point to the center of the icon (positive values shift image down). - * @property {number|ol.expr.Expression|undefined} zIndex Stack order. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.style.FillOptions - * @property {string|ol.expr.Expression|undefined} color Fill color as hex color - * code. - * @property {number|ol.expr.Expression|undefined} opacity Opacity (0-1). - * @property {number|ol.expr.Expression|undefined} zIndex Stack order. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.style.RuleOptions - * @property {ol.expr.Expression|string|undefined} filter Filter. - * @property {number|undefined} maxResolution Optional maximum resolution. If - * a value is provided, the rule will apply at resolutions less than - * this value. - * @property {number|undefined} minResolution Optional minimum resolution. If - * a value is provided, the rule will apply at resolutions greater than or - * equal to this value. - * @property {Array.|undefined} symbolizers Symbolizers. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.style.ShapeOptions - * @property {ol.style.ShapeType|undefined} type Type. - * @property {number|ol.expr.Expression|undefined} size Size in pixels. - * @property {ol.style.Fill|undefined} fill Fill symbolizer for shape. - * @property {ol.style.Stroke|undefined} stroke Stroke symbolizer for shape. - * @property {number|ol.expr.Expression|undefined} zIndex Stack order. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.style.StrokeOptions - * @property {string|ol.expr.Expression|undefined} color Stroke color as hex - * color code. - * @property {number|ol.expr.Expression|undefined} opacity Stroke opacity (0-1). - * @property {number|ol.expr.Expression|undefined} width Stroke width in pixels. - * @property {number|ol.expr.Expression|undefined} zIndex Stack order. - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.style.StyleOptions - * @property {Array.|undefined} rules Rules. - * @property {Array.|undefined} symbolizers Symbolizers - * (that apply if no rules are provided or where none of the provided rules - * apply). - * @todo stability experimental - */ - -/** - * @typedef {Object} ol.style.TextOptions - * @property {string|ol.expr.Expression|undefined} color Color. - * @property {string|ol.expr.Expression|undefined} fontFamily Font family. - * @property {number|ol.expr.Expression|undefined} fontSize Font size in pixels. - * @property {string|ol.expr.Expression|undefined} fontWeight Font weight. - * @property {string|ol.expr.Expression} text Text for the label. - * @property {number|ol.expr.Expression|undefined} opacity Opacity (0-1). - * @property {ol.style.Stroke|undefined} stroke Stroke symbolizer for text. - * @property {number|ol.expr.Expression|undefined} zIndex Stack order. - * @todo stability experimental - */ - /** * @typedef {Object} ol.tilegrid.TileGridOptions * @property {number|undefined} minZoom Minimum zoom. diff --git a/src/ol/map.exports b/src/ol/map.exports index 68ff166ae7..a4c9b4de63 100644 --- a/src/ol/map.exports +++ b/src/ol/map.exports @@ -7,8 +7,6 @@ @exportProperty ol.Map.prototype.getControls @exportProperty ol.Map.prototype.getEventCoordinate @exportProperty ol.Map.prototype.getEventPixel -@exportProperty ol.Map.prototype.getFeatureInfo -@exportProperty ol.Map.prototype.getFeatures @exportProperty ol.Map.prototype.getInteractions @exportProperty ol.Map.prototype.getLayers @exportProperty ol.Map.prototype.getOverlays diff --git a/src/ol/map.js b/src/ol/map.js index 6dabae87e5..73d70f1c97 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -563,34 +563,6 @@ ol.Map.prototype.getOverlays = function() { }; -/** - * Get feature information for a pixel on the map. - * - * @param {ol.GetFeatureInfoOptions} options Options. - * @todo stability experimental - */ -ol.Map.prototype.getFeatureInfo = function(options) { - var layers = goog.isDefAndNotNull(options.layers) ? - options.layers : this.getLayerGroup().getLayersArray(); - this.getRenderer().getFeatureInfoForPixel( - options.pixel, layers, options.success, options.error); -}; - - -/** - * Get features for a pixel on the map. - * - * @param {ol.GetFeaturesOptions} options Options. - * @todo stability experimental - */ -ol.Map.prototype.getFeatures = function(options) { - var layers = goog.isDefAndNotNull(options.layers) ? - options.layers : this.getLayerGroup().getLayersArray(); - this.getRenderer().getFeaturesForPixel( - options.pixel, layers, options.success, options.error); -}; - - /** * Gets the collection of * {@link ol.interaction|ol.interaction.Interaction} instances diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index b7debeb674..5526462f42 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -9,11 +9,9 @@ goog.require('goog.style'); goog.require('ol.css'); goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); -goog.require('ol.layer.Vector'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.canvas.ImageLayer'); goog.require('ol.renderer.canvas.TileLayer'); -goog.require('ol.renderer.canvas.VectorLayer2'); goog.require('ol.source.State'); @@ -62,8 +60,6 @@ ol.renderer.canvas.Map.prototype.createLayerRenderer = function(layer) { return new ol.renderer.canvas.ImageLayer(this, layer); } else if (layer instanceof ol.layer.Tile) { return new ol.renderer.canvas.TileLayer(this, layer); - } else if (layer instanceof ol.layer.Vector) { - return new ol.renderer.canvas.VectorLayer2(this, layer); } else { goog.asserts.fail(); return null; diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index 6da52f6bfa..86c2fcfbe2 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -42,26 +42,6 @@ ol.renderer.Layer = function(mapRenderer, layer) { goog.inherits(ol.renderer.Layer, goog.Disposable); -/** - * @param {ol.Pixel} pixel Pixel coordinate relative to the map viewport. - * @param {function(string, ol.layer.Layer)} success Callback for - * successful queries. The passed arguments are the resulting feature - * information and the layer. - * @param {function()=} opt_error Callback for unsuccessful queries. - */ -ol.renderer.Layer.prototype.getFeatureInfoForPixel = - function(pixel, success, opt_error) { - var layer = this.getLayer(); - var source = layer.getSource(); - if (goog.isFunction(source.getFeatureInfoForPixel)) { - var callback = function(layerFeatureInfo) { - success(layerFeatureInfo, layer); - }; - source.getFeatureInfoForPixel(pixel, this.getMap(), callback, opt_error); - } -}; - - /** * @protected * @return {ol.layer.Layer} Layer. diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index a0463fc944..0023ce8b71 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -1,7 +1,6 @@ goog.provide('ol.renderer.Map'); goog.require('goog.Disposable'); -goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.dispose'); goog.require('goog.functions'); @@ -98,78 +97,6 @@ ol.renderer.Map.prototype.disposeInternal = function() { ol.renderer.Map.prototype.getCanvas = goog.functions.NULL; -/** - * @param {ol.Pixel} pixel Pixel coordinate relative to the map viewport. - * @param {Array.} layers Layers to query. - * @param {function(Array.>)} success Callback for - * successful queries. The passed argument is the resulting feature - * information. Layers that are able to provide attribute data will put - * ol.Feature instances, other layers will put a string which can either - * be plain text or markup. - * @param {function()=} opt_error Callback for unsuccessful - * queries. - */ -ol.renderer.Map.prototype.getFeatureInfoForPixel = - function(pixel, layers, success, opt_error) { - var numLayers = layers.length; - var featureInfo = new Array(numLayers); - var callbackCount = 0; - var callback = function(layerFeatureInfo, layer) { - featureInfo[goog.array.indexOf(layers, layer)] = layerFeatureInfo; - --callbackCount; - if (callbackCount <= 0) { - success(featureInfo); - } - }; - - var layer, layerRenderer; - for (var i = 0; i < numLayers; ++i) { - layer = layers[i]; - layerRenderer = this.getLayerRenderer(layer); - if (goog.isFunction(layerRenderer.getFeatureInfoForPixel)) { - ++callbackCount; - layerRenderer.getFeatureInfoForPixel(pixel, callback, opt_error); - } - } -}; - - -/** - * @param {ol.Pixel} pixel Pixel coordinate relative to the map viewport. - * @param {Array.} layers Layers to query. - * @param {function(Array.>)} success Callback for - * successful queries. The passed argument is the resulting feature - * information. Layers that are able to provide attribute data will put - * ol.Feature instances, other layers will put a string which can either - * be plain text or markup. - * @param {function()=} opt_error Callback for unsuccessful - * queries. - */ -ol.renderer.Map.prototype.getFeaturesForPixel = - function(pixel, layers, success, opt_error) { - var numLayers = layers.length; - var features = new Array(numLayers); - var callbackCount = 0; - var callback = function(layerFeatures, layer) { - features[goog.array.indexOf(layers, layer)] = layerFeatures; - --callbackCount; - if (callbackCount <= 0) { - success(features); - } - }; - - var layer, layerRenderer; - for (var i = 0; i < numLayers; ++i) { - layer = layers[i]; - layerRenderer = this.getLayerRenderer(layer); - if (goog.isFunction(layerRenderer.getFeaturesForPixel)) { - ++callbackCount; - layerRenderer.getFeaturesForPixel(pixel, callback, opt_error); - } - } -}; - - /** * @param {ol.layer.Layer} layer Layer. * @protected diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 788070fe65..af05589762 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -5,7 +5,6 @@ goog.require('goog.object'); goog.require('ol.Image'); goog.require('ol.ImageUrlFunction'); goog.require('ol.extent'); -goog.require('ol.source.FeatureInfoSource'); goog.require('ol.source.Image'); goog.require('ol.source.wms'); @@ -14,7 +13,6 @@ goog.require('ol.source.wms'); /** * @constructor * @extends {ol.source.Image} - * @implements {ol.source.FeatureInfoSource} * @param {ol.source.ImageWMSOptions} options Options. * @todo stability experimental */ @@ -40,13 +38,6 @@ ol.source.ImageWMS = function(options) { imageUrlFunction: imageUrlFunction }); - /** - * @private - * @type {ol.source.WMSGetFeatureInfoOptions} - */ - this.getFeatureInfoOptions_ = goog.isDef(options.getFeatureInfoOptions) ? - options.getFeatureInfoOptions : {}; - /** * @private * @type {ol.Image} @@ -99,23 +90,6 @@ ol.source.ImageWMS.prototype.getImage = }; -/** - * @inheritDoc - */ -ol.source.ImageWMS.prototype.getFeatureInfoForPixel = - function(pixel, map, success, opt_error) { - var view = map.getView().getView2D(); - var size = map.getSize(); - goog.asserts.assert(goog.isDefAndNotNull(size)); - var extent = view.calculateExtent(size); - var url = this.imageUrlFunction(extent, size, view.getProjection()); - goog.asserts.assert(goog.isDef(url), - 'ol.source.ImageWMS#imageUrlFunction does not return a URL'); - ol.source.wms.getFeatureInfo(url, pixel, this.getFeatureInfoOptions_, success, - opt_error); -}; - - /** * Update the user-provided params. * @param {Object} params Params. diff --git a/src/ol/source/tilewmssource.js b/src/ol/source/tilewmssource.js index 48c2d15876..aea2b21084 100644 --- a/src/ol/source/tilewmssource.js +++ b/src/ol/source/tilewmssource.js @@ -3,13 +3,11 @@ goog.provide('ol.source.TileWMS'); goog.require('goog.array'); -goog.require('goog.asserts'); goog.require('goog.math'); goog.require('goog.object'); goog.require('ol.TileCoord'); goog.require('ol.TileUrlFunction'); goog.require('ol.extent'); -goog.require('ol.source.FeatureInfoSource'); goog.require('ol.source.TileImage'); goog.require('ol.source.wms'); @@ -18,7 +16,6 @@ goog.require('ol.source.wms'); /** * @constructor * @extends {ol.source.TileImage} - * @implements {ol.source.FeatureInfoSource} * @param {ol.source.TileWMSOptions} options Tile WMS options. * @todo stability experimental */ @@ -105,13 +102,6 @@ ol.source.TileWMS = function(options) { tileCoordTransform, tileUrlFunction) }); - /** - * @private - * @type {ol.source.WMSGetFeatureInfoOptions} - */ - this.getFeatureInfoOptions_ = goog.isDef(options.getFeatureInfoOptions) ? - options.getFeatureInfoOptions : {}; - }; goog.inherits(ol.source.TileWMS, ol.source.TileImage); @@ -135,29 +125,6 @@ ol.source.TileWMS.prototype.getParams = function() { }; -/** - * @inheritDoc - */ -ol.source.TileWMS.prototype.getFeatureInfoForPixel = - function(pixel, map, success, opt_error) { - var coord = map.getCoordinateFromPixel(pixel), - view2D = map.getView().getView2D(), - projection = view2D.getProjection(), - tileGrid = goog.isNull(this.tileGrid) ? - ol.tilegrid.getForProjection(projection) : this.tileGrid, - tileCoord = tileGrid.getTileCoordForCoordAndResolution(coord, - view2D.getResolution()), - tileExtent = tileGrid.getTileCoordExtent(tileCoord), - offset = map.getPixelFromCoordinate(ol.extent.getTopLeft(tileExtent)), - url = this.tileUrlFunction(tileCoord, projection); - goog.asserts.assert(goog.isDef(url), - 'ol.source.TileWMS#tileUrlFunction does not return a URL'); - ol.source.wms.getFeatureInfo(url, - [pixel[0] - offset[0], pixel[1] - offset[1]], this.getFeatureInfoOptions_, - success, opt_error); -}; - - /** * @private */ diff --git a/src/ol/source/wmssource.js b/src/ol/source/wmssource.js index dac71c6b10..9fdd7a80ad 100644 --- a/src/ol/source/wmssource.js +++ b/src/ol/source/wmssource.js @@ -1,30 +1,9 @@ -goog.provide('ol.source.WMSGetFeatureInfoMethod'); goog.provide('ol.source.wms'); -goog.require('goog.net.XhrIo'); goog.require('goog.object'); goog.require('goog.uri.utils'); -/** - * Method to use to get WMS feature info. - * @enum {string} - * @todo stability experimental - */ -ol.source.WMSGetFeatureInfoMethod = { - /** - * Load the info in an IFRAME. Only works with `text/html` and `text/plain` as - * `INFO_FORMAT`. - */ - IFRAME: 'iframe', - /** - * Use an asynchronous GET request. Requires CORS headers or a server at the - * same origin as the application script. - */ - XHR_GET: 'xhr_get' -}; - - /** * @param {string} baseUrl WMS base URL. * @param {Object.} params Request parameters. @@ -61,62 +40,3 @@ ol.source.wms.getUrl = return goog.uri.utils.appendParamsFromMap(baseUrl, baseParams); }; - - -/** - * @param {string} url URL as provided by the url function. - * @param {ol.Pixel} pixel Pixel. - * @param {ol.source.WMSGetFeatureInfoOptions} options Options as defined in the - * source. - * @param {function(string)} success Callback function for successful queries. - * @param {function()=} opt_error Optional callback function for unsuccessful - * queries. - */ -ol.source.wms.getFeatureInfo = - function(url, pixel, options, success, opt_error) { - // TODO: This could be done in a smarter way if the url function was not a - // closure - url = url.replace('REQUEST=GetMap', 'REQUEST=GetFeatureInfo') - .replace(ol.source.wms.regExes.layers, 'LAYERS=$1&QUERY_LAYERS=$1'); - options = /** @type {ol.source.WMSGetFeatureInfoOptions} */ - (goog.isDef(options) ? goog.object.clone(options) : {}); - var localOptions = /** @type {ol.source.WMSGetFeatureInfoOptions} */ ({ - method: ol.source.WMSGetFeatureInfoMethod.IFRAME, - params: {} - }); - goog.object.extend(localOptions, options); - var params = {'INFO_FORMAT': 'text/html'}, - version = parseFloat(url.match(ol.source.wms.regExes.version)[1]), - x = Math.round(pixel[0]), - y = Math.round(pixel[1]); - if (version >= 1.3) { - goog.object.extend(params, {'I': x, 'J': y}); - } else { - goog.object.extend(params, {'X': x, 'Y': y}); - } - goog.object.extend(params, localOptions.params); - url = goog.uri.utils.appendParamsFromMap(url, params); - if (localOptions.method == ol.source.WMSGetFeatureInfoMethod.IFRAME) { - goog.global.setTimeout(function() { - success(''); - }, 0); - } else if (localOptions.method == ol.source.WMSGetFeatureInfoMethod.XHR_GET) { - goog.net.XhrIo.send(url, function(event) { - var xhr = event.target; - if (xhr.isSuccess()) { - success(xhr.getResponseText()); - } else if (goog.isDef(opt_error)) { - opt_error(); - } - }); - } -}; - - -/** - * @enum {RegExp} - */ -ol.source.wms.regExes = { - layers: (/LAYERS=([^&]+)/), - version: (/VERSION=([^&]+)/) -}; diff --git a/test/spec/ol/source/imagewmssource.test.js b/test/spec/ol/source/imagewmssource.test.js index 426a64e148..33f8f4089b 100644 --- a/test/spec/ol/source/imagewmssource.test.js +++ b/test/spec/ol/source/imagewmssource.test.js @@ -17,102 +17,10 @@ describe('ol.source.ImageWMS', function() { }); - describe('#getFeatureInfoForPixel()', function() { - - var viewport, map, view, source; - beforeEach(function() { - viewport = document.createElement('div'); - var style = viewport.style; - style.position = 'absolute'; - style.left = '-1000px'; - style.width = '360px'; - style.height = '180px'; - document.body.appendChild(viewport); - - source = new ol.source.ImageWMS({ - url: 'http://example.com/', - projection: 'EPSG:4326', - params: {'LAYERS': 'test-layer'} - }); - - view = new ol.View2D({ - projection: 'EPSG:4326', - center: [0, 0] - }); - - map = new ol.Map({ - target: viewport, - layers: [ - new ol.layer.Image({ - source: source - }) - ], - view: view - }); - - sinon.spy(ol.source.wms, 'getFeatureInfo'); - }); - - afterEach(function() { - ol.source.wms.getFeatureInfo.restore(); - document.body.removeChild(viewport); - }); - - it('calls ol.source.wms.getFeatureInfo (resolution 1)', function(done) { - // confirm things look good at resolution: 2 - map.once('postrender', function() { - source.getFeatureInfoForPixel([0, 0], map, function() { - expect(ol.source.wms.getFeatureInfo.calledOnce).to.be(true); - var args = ol.source.wms.getFeatureInfo.getCall(0).args; - - // check url arg - var url = new goog.Uri(args[0]); - var query = url.getQueryData(); - expect(query.containsKey('BBOX')).to.be(true); - expect(query.get('BBOX').split(',')).to.eql([-90, -180, 90, 180]); - - // check pixel arg - var pixel = args[1]; - expect(pixel).to.eql([0, 0]); - - done(); - }); - }); - view.setResolution(1); - }); - - it('calls ol.source.wms.getFeatureInfo (resolution 2)', function(done) { - // confirm things look good at resolution: 2 - map.once('postrender', function() { - source.getFeatureInfoForPixel([10, 20], map, function() { - expect(ol.source.wms.getFeatureInfo.calledOnce).to.be(true); - var args = ol.source.wms.getFeatureInfo.getCall(0).args; - - // check url arg - var url = new goog.Uri(args[0]); - var query = url.getQueryData(); - expect(query.containsKey('BBOX')).to.be(true); - expect(query.get('BBOX').split(',')).to.eql([-180, -360, 180, 360]); - - // check pixel arg - var pixel = args[1]; - expect(pixel).to.eql([10, 20]); - - done(); - }); - - }); - view.setResolution(2); - }); - }); - }); goog.require('goog.Uri'); goog.require('ol.Map'); -goog.require('ol.View2D'); -goog.require('ol.layer.Image'); goog.require('ol.source.ImageWMS'); goog.require('ol.source.Source'); -goog.require('ol.source.wms'); diff --git a/test/spec/ol/source/wmssource.test.js b/test/spec/ol/source/wmssource.test.js index fb23af0dbf..665c4baf2f 100644 --- a/test/spec/ol/source/wmssource.test.js +++ b/test/spec/ol/source/wmssource.test.js @@ -26,30 +26,8 @@ describe('ol.source.wms', function() { }); }); - describe('ol.source.wms.getFeatureInfo', function() { - it('calls a callback with a feature info IFRAME as result', function(done) { - ol.source.wms.getFeatureInfo('?REQUEST=GetMap&VERSION=1.3&LAYERS=foo', - [5, 10], {params: {'INFO_FORMAT': 'text/plain'}}, - function(info) { - expect(info).to.eql(''); - done(); - }); - }); - it('can do xhr to retrieve feature info', function(done) { - ol.source.wms.getFeatureInfo('?REQUEST=GetMap&VERSION=1.1.1&LAYERS=foo', - [5, 10], {method: ol.source.WMSGetFeatureInfoMethod.XHR_GET}, - function(info) { - expect(info).to.contain(''); - done(); - }); - }); - }); - }); goog.require('ol.proj'); -goog.require('ol.source.WMSGetFeatureInfoMethod'); goog.require('ol.source.wms'); From 18aa1b8ae51d034eef91574b1870b0e64d8ab160 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 17:46:14 +0100 Subject: [PATCH 027/919] Fix order of arguments to ol.extent.createOrUpdate --- src/ol/extent.js | 10 +++++----- src/ol/tilegrid/tilegrid.js | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ol/extent.js b/src/ol/extent.js index cf393fd61b..1bb73610d3 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -43,10 +43,10 @@ ol.extent.boundingExtentXYs_ = function(xs, ys, opt_extent) { goog.asserts.assert(xs.length > 0); goog.asserts.assert(ys.length > 0); var minX = Math.min.apply(null, xs); - var maxX = Math.max.apply(null, xs); var minY = Math.min.apply(null, ys); + var maxX = Math.max.apply(null, xs); var maxY = Math.max.apply(null, ys); - return ol.extent.createOrUpdate(minX, maxX, minY, maxY, opt_extent); + return ol.extent.createOrUpdate(minX, minY, maxX, maxY, opt_extent); }; @@ -114,18 +114,18 @@ ol.extent.createEmpty = function() { /** * @param {number} minX Minimum X. - * @param {number} maxX Maximum X. * @param {number} minY Minimum Y. + * @param {number} maxX Maximum X. * @param {number} maxY Maximum Y. * @param {ol.Extent=} opt_extent Destination extent. * @return {ol.Extent} Extent. * @todo stability experimental */ -ol.extent.createOrUpdate = function(minX, maxX, minY, maxY, opt_extent) { +ol.extent.createOrUpdate = function(minX, minY, maxX, maxY, opt_extent) { if (goog.isDef(opt_extent)) { opt_extent[0] = minX; - opt_extent[2] = maxX; opt_extent[1] = minY; + opt_extent[2] = maxX; opt_extent[3] = maxY; return opt_extent; } else { diff --git a/src/ol/tilegrid/tilegrid.js b/src/ol/tilegrid/tilegrid.js index 59bf95fb61..e079159cd2 100644 --- a/src/ol/tilegrid/tilegrid.js +++ b/src/ol/tilegrid/tilegrid.js @@ -223,7 +223,7 @@ ol.tilegrid.TileGrid.prototype.getTileRangeExtent = var maxX = origin[0] + (tileRange.maxX + 1) * tileSize[0] * resolution; var minY = origin[1] + tileRange.minY * tileSize[1] * resolution; var maxY = origin[1] + (tileRange.maxY + 1) * tileSize[1] * resolution; - return ol.extent.createOrUpdate(minX, maxX, minY, maxY, opt_extent); + return ol.extent.createOrUpdate(minX, minY, maxX, maxY, opt_extent); }; @@ -287,10 +287,10 @@ ol.tilegrid.TileGrid.prototype.getTileCoordExtent = var resolution = this.getResolution(tileCoord.z); var tileSize = this.getTileSize(tileCoord.z); var minX = origin[0] + tileCoord.x * tileSize[0] * resolution; - var maxX = minX + tileSize[0] * resolution; var minY = origin[1] + tileCoord.y * tileSize[1] * resolution; + var maxX = minX + tileSize[0] * resolution; var maxY = minY + tileSize[1] * resolution; - return ol.extent.createOrUpdate(minX, maxX, minY, maxY, opt_extent); + return ol.extent.createOrUpdate(minX, minY, maxX, maxY, opt_extent); }; From fbb817157b4a43418a50e3da5e7398eaf3e589a6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 17:46:30 +0100 Subject: [PATCH 028/919] Fix typo in tests --- test/spec/ol/tilegrid/tilegrid.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/spec/ol/tilegrid/tilegrid.test.js b/test/spec/ol/tilegrid/tilegrid.test.js index 9f4f065ee8..4681e92322 100644 --- a/test/spec/ol/tilegrid/tilegrid.test.js +++ b/test/spec/ol/tilegrid/tilegrid.test.js @@ -451,7 +451,7 @@ describe('ol.tilegrid.TileGrid', function() { }); }); - describe('getTileCoordExent', function() { + describe('getTileCoordExtent', function() { it('returns the expected extend', function() { var tileGrid = new ol.tilegrid.TileGrid({ resolutions: resolutions, From a49e16962228cf6c70e62bb8b9dc0f0a8692d0fb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 17:47:51 +0100 Subject: [PATCH 029/919] Order tests sensibly --- test/spec/ol/tilegrid/tilegrid.test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/spec/ol/tilegrid/tilegrid.test.js b/test/spec/ol/tilegrid/tilegrid.test.js index 4681e92322..ad71e4cd42 100644 --- a/test/spec/ol/tilegrid/tilegrid.test.js +++ b/test/spec/ol/tilegrid/tilegrid.test.js @@ -463,20 +463,20 @@ describe('ol.tilegrid.TileGrid', function() { tileCoordExtent = tileGrid.getTileCoordExtent(new ol.TileCoord(0, 0, 0)); expect(tileCoordExtent[0]).to.eql(0); - expect(tileCoordExtent[2]).to.eql(100000); expect(tileCoordExtent[1]).to.eql(0); + expect(tileCoordExtent[2]).to.eql(100000); expect(tileCoordExtent[3]).to.eql(100000); tileCoordExtent = tileGrid.getTileCoordExtent(new ol.TileCoord(3, 9, 0)); expect(tileCoordExtent[0]).to.eql(90000); - expect(tileCoordExtent[2]).to.eql(100000); expect(tileCoordExtent[1]).to.eql(0); + expect(tileCoordExtent[2]).to.eql(100000); expect(tileCoordExtent[3]).to.eql(10000); tileCoordExtent = tileGrid.getTileCoordExtent(new ol.TileCoord(3, 0, 9)); expect(tileCoordExtent[0]).to.eql(0); - expect(tileCoordExtent[2]).to.eql(10000); expect(tileCoordExtent[1]).to.eql(90000); + expect(tileCoordExtent[2]).to.eql(10000); expect(tileCoordExtent[3]).to.eql(100000); }); }); From 33685765051dec9ecfef4144d9153f6546f0e258 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 19:08:34 +0100 Subject: [PATCH 030/919] Add more extent functions --- src/ol/extent.js | 90 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/src/ol/extent.js b/src/ol/extent.js index 1bb73610d3..2346c5fbcf 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -134,6 +134,50 @@ ol.extent.createOrUpdate = function(minX, minY, maxX, maxY, opt_extent) { }; +/** + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} Extent. + */ +ol.extent.createOrUpdateEmpty = function(opt_extent) { + return ol.extent.createOrUpdate( + Infinity, Infinity, -Infinity, -Infinity, opt_extent); +}; + + +/** + * @param {ol.Coordinate} coordinate Coordinate. + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} Extent. + */ +ol.extent.createOrUpdateFromCoordinate = function(coordinate, opt_extent) { + var x = coordinate[0]; + var y = coordinate[1]; + return ol.extent.createOrUpdate(x, y, x, y, opt_extent); +}; + + +/** + * @param {Array.} coordinates Coordinates. + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} Extent. + */ +ol.extent.createOrUpdateFromCoordinates = function(coordinates, opt_extent) { + var extent = ol.extent.createOrUpdateEmpty(opt_extent); + return ol.extent.extendCoordinates(extent, coordinates); +}; + + +/** + * @param {Array.>} rings Rings. + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} Extent. + */ +ol.extent.createOrUpdateFromRings = function(rings, opt_extent) { + var extent = ol.extent.createOrUpdateEmpty(opt_extent); + return ol.extent.extendRings(extent, rings); +}; + + /** * Empties extent in place. * @param {ol.Extent} extent Extent. @@ -201,6 +245,34 @@ ol.extent.extendCoordinate = function(extent, coordinate) { }; +/** + * @param {ol.Extent} extent Extent. + * @param {Array.} coordinates Coordinates. + * @return {ol.Extent} Extent. + */ +ol.extent.extendCoordinates = function(extent, coordinates) { + var i, ii; + for (i = 0, ii = coordinates.length; i < ii; ++i) { + ol.extent.extendCoordinate(extent, coordinates[i]); + } + return extent; +}; + + +/** + * @param {ol.Extent} extent Extent. + * @param {Array.>} rings Rings. + * @return {ol.Extent} Extent. + */ +ol.extent.extendRings = function(extent, rings) { + var i, ii; + for (i = 0, ii = rings.length; i < ii; ++i) { + ol.extent.extendCoordinates(extent, rings[i]); + } + return extent; +}; + + /** * @param {ol.Extent} extent Extent. * @param {number} x X. @@ -362,6 +434,24 @@ ol.extent.normalize = function(extent, coordinate) { }; +/** + * @param {ol.Extent} extent Extent. + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} Extent. + */ +ol.extent.returnOrUpdate = function(extent, opt_extent) { + if (goog.isDef(opt_extent)) { + opt_extent[0] = extent[0]; + opt_extent[1] = extent[1]; + opt_extent[2] = extent[2]; + opt_extent[3] = extent[3]; + return opt_extent; + } else { + return extent; + } +}; + + /** * @param {ol.Extent} extent Extent. * @param {number} value Value. From 7ff95adbb1b4b97da32f57972e26a6122db615b9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 20:45:39 +0100 Subject: [PATCH 031/919] Add ol.geom.Geometry --- src/ol/geom/geometry.js | 75 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/ol/geom/geometry.js diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js new file mode 100644 index 0000000000..fd40b82292 --- /dev/null +++ b/src/ol/geom/geometry.js @@ -0,0 +1,75 @@ +goog.provide('ol.geom.Geometry'); + +goog.require('goog.events.EventTarget'); +goog.require('goog.events.EventType'); + + +/** + * @enum {string} + */ +ol.geom.GeometryType = { + POINT: 'point', + LINE_STRING: 'line_string', + POLYGON: 'polygon' +}; + + + +/** + * @constructor + * @extends {goog.events.EventTarget} + */ +ol.geom.Geometry = function() { + + goog.base(this); + + /** + * @protected + * @type {number} + */ + this.revision = 0; + + /** + * @protected + * @type {ol.Extent|undefined} + */ + this.extent = undefined; + + /** + * @protected + * @type {number} + */ + this.extentRevision = -1; + +}; +goog.inherits(ol.geom.Geometry, goog.events.EventTarget); + + +/** + * FIXME empty description for jsdoc + */ +ol.geom.Geometry.prototype.dispatchChangeEvent = function() { + ++this.revision; + this.dispatchEvent(goog.events.EventType.CHANGE); +}; + + +/** + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} extent Extent. + */ +ol.geom.Geometry.prototype.getExtent = goog.abstractMethod; + + +/** + * @return {number} Revision. + */ +ol.geom.Geometry.prototype.getRevision = function() { + return this.revision; +}; + + +/** + * @return {ol.geom.GeometryType} Geometry type. + */ +ol.geom.Geometry.prototype.getType = goog.abstractMethod; From cb75fcad9f39aae42f1d6581a87790272a42b562 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 20:45:53 +0100 Subject: [PATCH 032/919] Add ol.geom.Point --- src/ol/geom/point.js | 64 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/ol/geom/point.js diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js new file mode 100644 index 0000000000..f006a061f9 --- /dev/null +++ b/src/ol/geom/point.js @@ -0,0 +1,64 @@ +goog.provide('ol.geom.Point'); + +goog.require('goog.asserts'); +goog.require('ol.extent'); +goog.require('ol.geom.Geometry'); + + + +/** + * @constructor + * @extends {ol.geom.Geometry} + * @param {ol.Coordinate} coordinate Coordinate. + */ +ol.geom.Point = function(coordinate) { + + goog.base(this); + + /** + * @private + * @type {Array.} + */ + this.coordinate_ = coordinate; + +}; +goog.inherits(ol.geom.Point, ol.geom.Geometry); + + +/** + * @return {ol.Coordinate} Coordinate. + */ +ol.geom.Point.prototype.getCoordinate = function() { + return this.coordinate_; +}; + + +/** + * @inheritDoc + */ +ol.geom.Point.prototype.getExtent = function(opt_extent) { + if (this.extentRevision != this.revision) { + this.extent = ol.extent.createOrUpdateFromCoordinate( + this.coordinate_, this.extent); + this.extentRevision = this.revision; + } + goog.asserts.assert(goog.isDef(this.extent)); + return ol.extent.returnOrUpdate(this.extent, opt_extent); +}; + + +/** + * @inheritDoc + */ +ol.geom.Point.prototype.getType = function() { + return ol.geom.GeometryType.POINT; +}; + + +/** + * @param {ol.Coordinate} coordinate Coordinate. + */ +ol.geom.Point.prototype.setCoordinate = function(coordinate) { + this.coordinate_ = coordinate; + this.dispatchChangeEvent(); +}; From ac37980999c3e5d3136f8c984bf5e50615bb7712 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 20:46:04 +0100 Subject: [PATCH 033/919] Add ol.geom.LineString --- src/ol/geom/linestring.js | 64 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/ol/geom/linestring.js diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js new file mode 100644 index 0000000000..af34ea6417 --- /dev/null +++ b/src/ol/geom/linestring.js @@ -0,0 +1,64 @@ +goog.provide('ol.geom.LineString'); + +goog.require('goog.asserts'); +goog.require('ol.extent'); +goog.require('ol.geom.Geometry'); + + + +/** + * @constructor + * @extends {ol.geom.Geometry} + * @param {Array.} coordinates Coordinates. + */ +ol.geom.LineString = function(coordinates) { + + goog.base(this); + + /** + * @private + * @type {Array.>} + */ + this.coordinates_ = coordinates; + +}; +goog.inherits(ol.geom.LineString, ol.geom.Geometry); + + +/** + * @return {Array.>} Coordinates. + */ +ol.geom.LineString.prototype.getCoordinates = function() { + return this.coordinates_; +}; + + +/** + * @inheritDoc + */ +ol.geom.LineString.prototype.getExtent = function(opt_extent) { + if (this.extentRevision != this.revision) { + this.extent = ol.extent.createOrUpdateFromCoordinates( + this.coordinates_, this.extent); + this.extentRevision = this.revision; + } + goog.asserts.assert(goog.isDef(this.extent)); + return ol.extent.returnOrUpdate(this.extent, opt_extent); +}; + + +/** + * @inheritDoc + */ +ol.geom.LineString.prototype.getType = function() { + return ol.geom.GeometryType.LINE_STRING; +}; + + +/** + * @param {Array.} coordinates Coordinates. + */ +ol.geom.LineString.prototype.setCoordinates = function(coordinates) { + this.coordinates_ = coordinates; + this.dispatchChangeEvent(); +}; From fb6a2867ff39df0f133fd0459253e5c65bd4bb49 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 20:46:14 +0100 Subject: [PATCH 034/919] Add ol.geom.Polygon --- src/ol/geom/polygon.js | 63 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/ol/geom/polygon.js diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js new file mode 100644 index 0000000000..4274964c46 --- /dev/null +++ b/src/ol/geom/polygon.js @@ -0,0 +1,63 @@ +goog.provide('ol.geom.Polygon'); + +goog.require('goog.asserts'); +goog.require('ol.extent'); +goog.require('ol.geom.Geometry'); + + + +/** + * @constructor + * @extends {ol.geom.Geometry} + * @param {Array.>} rings Rings. + */ +ol.geom.Polygon = function(rings) { + + goog.base(this); + + /** + * @private + * @type {Array.>} + */ + this.rings_ = rings; + +}; +goog.inherits(ol.geom.Polygon, ol.geom.Geometry); + + +/** + * @inheritDoc + */ +ol.geom.Polygon.prototype.getExtent = function(opt_extent) { + if (this.extentRevision != this.revision) { + this.extent = ol.extent.createOrUpdateFromRings(this.rings_, this.extent); + this.extentRevision = this.revision; + } + goog.asserts.assert(goog.isDef(this.extent)); + return ol.extent.returnOrUpdate(this.extent, opt_extent); +}; + + +/** + * @return {Array.>} Rings. + */ +ol.geom.Polygon.prototype.getRings = function() { + return this.rings_; +}; + + +/** + * @inheritDoc + */ +ol.geom.Polygon.prototype.getType = function() { + return ol.geom.GeometryType.POLYGON; +}; + + +/** + * @param {Array.>} rings Rings. + */ +ol.geom.Polygon.prototype.setRings = function(rings) { + this.rings_ = rings; + this.dispatchChangeEvent(); +}; From 9c02b8e90caba3a92daba433b3f426bd07796fc8 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 20:46:34 +0100 Subject: [PATCH 035/919] Add ol.Feature --- src/ol/feature.js | 119 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 src/ol/feature.js diff --git a/src/ol/feature.js b/src/ol/feature.js new file mode 100644 index 0000000000..6414970982 --- /dev/null +++ b/src/ol/feature.js @@ -0,0 +1,119 @@ +goog.provide('ol.Feature'); + +goog.require('goog.events'); +goog.require('goog.events.EventType'); +goog.require('ol.Object'); +goog.require('ol.geom.Geometry'); + + +/** + * @enum {string} + */ +ol.FeatureProperty = { + GEOMETRY: 'geometry' +}; + + + +/** + * @constructor + * @extends {ol.Object} + * @param {ol.geom.Geometry|Object.} geometryOrValues Values. + */ +ol.Feature = function(geometryOrValues) { + + goog.base(this); + + /** + * @private + * @type {number} + */ + this.revision_ = 0; + + /** + * @private + * @type {goog.events.Key} + */ + this.geometryChangeKey_ = null; + + goog.events.listen( + this, ol.Object.getChangeEventType(ol.FeatureProperty.GEOMETRY), + this.handleGeometryChanged_, false, this); + + if (geometryOrValues instanceof ol.geom.Geometry) { + var geometry = /** @type {ol.geom.Geometry} */ (geometryOrValues); + this.setGeometry(geometry); + } else { + var values = /** @type {Object.} */ (geometryOrValues); + this.setValues(values); + } + +}; +goog.inherits(ol.Feature, ol.Object); + + +/** + * FIXME empty description for jsdoc + */ +ol.Feature.prototype.dispatchChangeEvent = function() { + ++this.revision_; + this.dispatchEvent(goog.events.EventType.CHANGE); +}; + + +/** + * @return {ol.geom.Geometry|undefined} Geometry. + */ +ol.Feature.prototype.getGeometry = function() { + return /** @type {ol.geom.Geometry|undefined} */ ( + this.get(ol.FeatureProperty.GEOMETRY)); +}; +goog.exportProperty( + ol.Feature.prototype, + 'getGeometry', + ol.Feature.prototype.getGeometry); + + +/** + * @return {number} Revision. + */ +ol.Feature.prototype.getRevision = function() { + return this.revision_; +}; + + +/** + * @private + */ +ol.Feature.prototype.handleGeometryChange_ = function() { + this.dispatchChangeEvent(); +}; + + +/** + * @private + */ +ol.Feature.prototype.handleGeometryChanged_ = function() { + if (!goog.isNull(this.geometryChangeKey_)) { + goog.events.unlistenByKey(this.geometryChangeKey_); + this.geometryChangeKey_ = null; + } + var geometry = this.getGeometry(); + if (goog.isDef(geometry)) { + this.geometryChangeKey_ = goog.events.listen(geometry, + goog.events.EventType.CHANGE, this.handleGeometryChange_, false, this); + } + this.dispatchChangeEvent(); +}; + + +/** + * @param {ol.geom.Geometry|undefined} geometry Geometry. + */ +ol.Feature.prototype.setGeometry = function(geometry) { + this.set(ol.FeatureProperty.GEOMETRY, geometry); +}; +goog.exportProperty( + ol.Feature.prototype, + 'setGeometry', + ol.Feature.prototype.setGeometry); From 3d8d8b0ce6baf38107c53e5b264d5a0065518684 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 20:47:50 +0100 Subject: [PATCH 036/919] Add ol.reader.GeoJSON --- src/ol/reader/geojson/geojson.js | 139 ++++++++++++++++++++++++++++ test/spec/ol/reader/geojson.test.js | 111 ++++++++++++++++++++++ 2 files changed, 250 insertions(+) create mode 100644 src/ol/reader/geojson/geojson.js create mode 100644 test/spec/ol/reader/geojson.test.js diff --git a/src/ol/reader/geojson/geojson.js b/src/ol/reader/geojson/geojson.js new file mode 100644 index 0000000000..4f8e978bf5 --- /dev/null +++ b/src/ol/reader/geojson/geojson.js @@ -0,0 +1,139 @@ +// FIXME coordinate order +// FIXME reprojection +// FIXME support other geometry types + +goog.provide('ol.reader.GeoJSON'); + +goog.require('goog.asserts'); +goog.require('goog.json'); +goog.require('ol.Feature'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.Point'); +goog.require('ol.geom.Polygon'); + + + +/** + * @constructor + */ +ol.reader.GeoJSON = function() { +}; + + +/** + * @param {GeoJSONGeometry} geometry Geometry. + * @private + * @return {ol.geom.Point} Point. + */ +ol.reader.GeoJSON.readPointGeometry_ = function(geometry) { + goog.asserts.assert(geometry.type == 'Point'); + return new ol.geom.Point(geometry.coordinates); +}; + + +/** + * @param {GeoJSONGeometry} geometry Geometry. + * @private + * @return {ol.geom.LineString} LineString. + */ +ol.reader.GeoJSON.readLineStringGeometry_ = function(geometry) { + goog.asserts.assert(geometry.type == 'LineString'); + return new ol.geom.LineString(geometry.coordinates); +}; + + +/** + * @param {GeoJSONGeometry} geometry Geometry. + * @private + * @return {ol.geom.Polygon} Polygon. + */ +ol.reader.GeoJSON.readPolygonGeometry_ = function(geometry) { + goog.asserts.assert(geometry.type == 'Polygon'); + return new ol.geom.Polygon(geometry.coordinates); +}; + + +/** + * @param {GeoJSONFeature} feature Feature. + * @param {function(ol.Feature): *} callback Callback. + * @private + * @return {*} Callback result. + */ +ol.reader.GeoJSON.readFeature_ = function(feature, callback) { + goog.asserts.assert(feature.type == 'Feature'); + var geometryReader = + ol.reader.GeoJSON.GEOMETRY_READERS_[feature.geometry.type]; + goog.asserts.assert(goog.isDef(geometryReader)); + var geometry = geometryReader(feature.geometry); + var f = new ol.Feature(geometry); + if (goog.isDef(feature.properties)) { + f.setValues(feature.properties); + } + return callback(f); +}; + + +/** + * @param {GeoJSONFeatureCollection} featureCollection Feature collection. + * @param {function(ol.Feature): *} callback Callback. + * @private + * @return {*} Callback result. + */ +ol.reader.GeoJSON.readFeatureCollection_ = + function(featureCollection, callback) { + goog.asserts.assert(featureCollection.type == 'FeatureCollection'); + var features = featureCollection.features; + var i, ii; + for (i = 0, ii = features.length; i < ii; ++i) { + var result = ol.reader.GeoJSON.readFeature_(features[i], callback); + if (result) { + return result; + } + } + return undefined; +}; + + +/** + * @param {GeoJSONObject} object Object. + * @param {function(ol.Feature): *} callback Callback. + * @return {*} Callback result. + */ +ol.reader.GeoJSON.readObject = function(object, callback) { + var objectReader = ol.reader.GeoJSON.OBJECT_READERS_[object.type]; + goog.asserts.assert(goog.isDef(objectReader)); + return objectReader(object, callback); +}; + + +/** + * @param {string} string String. + * @param {function(ol.Feature): *} callback Callback. + * @return {*} Callback result. + */ +ol.reader.GeoJSON.readString = function(string, callback) { + var object = goog.json.parse(string); + return ol.reader.GeoJSON.readObject( + /** @type {GeoJSONObject} */ (object), callback); +}; + + +/** + * @private + * @type {Object.} + */ +ol.reader.GeoJSON.GEOMETRY_READERS_ = { + 'Point': ol.reader.GeoJSON.readPointGeometry_, + 'LineString': ol.reader.GeoJSON.readLineStringGeometry_, + 'Polygon': ol.reader.GeoJSON.readPolygonGeometry_ +}; + + +/** + * @private + * @type {Object.} + */ +ol.reader.GeoJSON.OBJECT_READERS_ = { + 'Feature': ol.reader.GeoJSON.readFeature_, + 'FeatureCollection': ol.reader.GeoJSON.readFeatureCollection_ +}; diff --git a/test/spec/ol/reader/geojson.test.js b/test/spec/ol/reader/geojson.test.js new file mode 100644 index 0000000000..c4ddb9debe --- /dev/null +++ b/test/spec/ol/reader/geojson.test.js @@ -0,0 +1,111 @@ +goog.provide('ol.test.reader.GeoJSON'); + + +describe('ol.reader.GeoJSON', function() { + + var pointGeoJSON = { + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [102.0, 0.5] + }, + 'properties': { + 'prop0': 'value0' + } + }; + + var lineStringGeoJSON = { + 'type': 'Feature', + 'geometry': { + 'type': 'LineString', + 'coordinates': [ + [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0] + ] + }, + 'properties': { + 'prop0': 'value0', + 'prop1': 0.0 + } + }; + + var polygonGeoJSON = { + 'type': 'Feature', + 'geometry': { + 'type': 'Polygon', + 'coordinates': [[ + [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] + ]] + }, + 'properties': { + 'prop0': 'value0', + 'prop1': {'this': 'that'} + } + }; + + var featureCollectionGeoJSON = { + 'type': 'FeatureCollection', + 'features': [pointGeoJSON, lineStringGeoJSON, polygonGeoJSON] + }; + + describe('readObject', function() { + + it('can read a single point feature', function() { + var feature = ol.reader.GeoJSON.readObject(pointGeoJSON, function(f) { + return f; + }); + expect(feature).to.be.an(ol.Feature); + var geometry = feature.getGeometry(); + expect(geometry).to.be.an(ol.geom.Point); + expect(geometry.getCoordinate()).to.eql([102.0, 0.5]); + expect(feature.get('prop0')).to.be('value0'); + }); + + it('can read a single line string feature', function() { + var feature = ol.reader.GeoJSON.readObject(lineStringGeoJSON, + function(f) { + return f; + }); + expect(feature).to.be.an(ol.Feature); + var geometry = feature.getGeometry(); + expect(geometry).to.be.an(ol.geom.LineString); + expect(geometry.getCoordinates()).to.eql( + [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]]); + expect(feature.get('prop0')).to.be('value0'); + expect(feature.get('prop1')).to.be(0.0); + }); + + it('can read a single polygon feature', function() { + var feature = ol.reader.GeoJSON.readObject(polygonGeoJSON, function(f) { + return f; + }); + expect(feature).to.be.an(ol.Feature); + var geometry = feature.getGeometry(); + expect(geometry).to.be.an(ol.geom.Polygon); + expect(geometry.getRings()).to.eql([[ + [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] + ]]); + expect(feature.get('prop0')).to.be('value0'); + expect(feature.get('prop1')).to.eql({'this': 'that'}); + }); + + it('can read a feature collection', function() { + var features = []; + ol.reader.GeoJSON.readObject(featureCollectionGeoJSON, function(f) { + features.push(f); + }); + expect(features).to.have.length(3); + expect(features[0].getGeometry()).to.be.an(ol.geom.Point); + expect(features[1].getGeometry()).to.be.an(ol.geom.LineString); + expect(features[2].getGeometry()).to.be.an(ol.geom.Polygon); + }); + + }); + +}); + + +goog.require('ol.Feature'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.Point'); +goog.require('ol.geom.Polygon'); +goog.require('ol.reader.GeoJSON'); From 72d849563b07d4474ba44f9427c0dad07618a91b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 21:11:35 +0100 Subject: [PATCH 037/919] Remove type filter hack from ol.structs.RTree --- src/ol/structs/rtree.js | 37 ++++++++++-------------------- test/spec/ol/structs/rtree.test.js | 11 --------- 2 files changed, 12 insertions(+), 36 deletions(-) diff --git a/src/ol/structs/rtree.js b/src/ol/structs/rtree.js index 6057998bc6..e74bacaa69 100644 --- a/src/ol/structs/rtree.js +++ b/src/ol/structs/rtree.js @@ -35,8 +35,7 @@ goog.require('ol.extent'); * @typedef {{extent: ol.Extent, * leaf: (Object|undefined), * nodes: (Array.|undefined), - * target: (Object|undefined), - * type: (string|number|undefined)}} + * target: (Object|undefined)}} */ ol.structs.RTreeNode; @@ -186,15 +185,10 @@ ol.structs.RTree.prototype.chooseLeafSubtree_ = function(rect, root) { * * @param {ol.Extent} extent Extent. * @param {Object} obj Object to insert. - * @param {string|number=} opt_type Optional type to store along with the - * object. */ -ol.structs.RTree.prototype.insert = function(extent, obj, opt_type) { +ol.structs.RTree.prototype.insert = function(extent, obj) { var node = /** @type {ol.structs.RTreeNode} */ ({extent: extent, leaf: obj}); - if (goog.isDef(opt_type)) { - node.type = opt_type; - } this.insertSubtree_(node, this.rootTree_); }; @@ -555,15 +549,13 @@ ol.structs.RTree.prototype.removeSubtree_ = function(rect, obj, root) { * Non-recursive search function * * @param {ol.Extent} extent Extent. - * @param {string|number=} opt_type Optional type of the objects we want to - * find. * @return {Array} Result. * @this {ol.structs.RTree} */ -ol.structs.RTree.prototype.search = function(extent, opt_type) { +ol.structs.RTree.prototype.search = function(extent) { var rect = /** @type {ol.structs.RTreeNode} */ ({extent: extent}); return /** @type {Array} */ ( - this.searchSubtree_(rect, false, [], this.rootTree_, opt_type)); + this.searchSubtree_(rect, false, [], this.rootTree_)); }; @@ -571,15 +563,13 @@ ol.structs.RTree.prototype.search = function(extent, opt_type) { * Non-recursive search function * * @param {ol.Extent} extent Extent. - * @param {string|number=} opt_type Optional type of the objects we want to - * find. * @return {Object} Result. Keys are UIDs of the values. * @this {ol.structs.RTree} */ -ol.structs.RTree.prototype.searchReturningObject = function(extent, opt_type) { +ol.structs.RTree.prototype.searchReturningObject = function(extent) { var rect = /** @type {ol.structs.RTreeNode} */ ({extent: extent}); return /** @type {Object} */ ( - this.searchSubtree_(rect, false, [], this.rootTree_, opt_type, true)); + this.searchSubtree_(rect, false, [], this.rootTree_, true)); }; @@ -590,14 +580,13 @@ ol.structs.RTree.prototype.searchReturningObject = function(extent, opt_type) { * @param {boolean} returnNode Do we return nodes? * @param {Array|Object} result Result. * @param {ol.structs.RTreeNode} root Root. - * @param {string|number=} opt_type Optional type to search for. * @param {boolean=} opt_resultAsObject If set, result will be an object keyed * by UID. * @private * @return {Array|Object} Result. */ ol.structs.RTree.prototype.searchSubtree_ = function( - rect, returnNode, result, root, opt_type, opt_resultAsObject) { + rect, returnNode, result, root, opt_resultAsObject) { var resultObject = {}; var hitStack = []; // Contains the elements that overlap @@ -619,13 +608,11 @@ ol.structs.RTree.prototype.searchSubtree_ = function( if (!returnNode) { // TODO keep track of type on all nodes so we don't have to // walk all the way in to the leaf to know that we don't need it - if (!goog.isDef(opt_type) || lTree.type == opt_type) { - var obj = lTree.leaf; - if (goog.isDef(opt_resultAsObject)) { - resultObject[goog.getUid(obj).toString()] = obj; - } else { - result.push(obj); - } + var obj = lTree.leaf; + if (goog.isDef(opt_resultAsObject)) { + resultObject[goog.getUid(obj).toString()] = obj; + } else { + result.push(obj); } } else { result.push(lTree); diff --git a/test/spec/ol/structs/rtree.test.js b/test/spec/ol/structs/rtree.test.js index 0a65afb978..4f90e489c5 100644 --- a/test/spec/ol/structs/rtree.test.js +++ b/test/spec/ol/structs/rtree.test.js @@ -98,17 +98,6 @@ describe('ol.structs.RTree', function() { expect(goog.object.getCount(rTree.search([5, 5, 6, 6]))).to.be(0); }); - it('filters by type', function() { - rTree.insert([2, 2, 3, 3], 7, 'type1'); - - var result; - result = rTree.search([1, 2, 4, 4], 'type1'); - expect(result).to.contain(7); - expect(result.length).to.be(1); - result = rTree.search([1, 2, 4, 4]); - expect(result.length).to.be(3); - }); - it('can return objects instead of arrays', function() { var obj = {foo: 'bar'}; rTree.insert([5, 5, 5, 5], obj); From 07ef8e774d55616c86df2bb96d2b99e6ce4a2602 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 21:25:30 +0100 Subject: [PATCH 038/919] Move parser examples away --- {examples => old/examples}/wms-capabilities.html | 0 {examples => old/examples}/wms-capabilities.js | 0 {examples => old/examples}/wmts-capabilities.html | 0 {examples => old/examples}/wmts-capabilities.js | 0 {examples => old/examples}/wmts-from-capabilities.html | 0 {examples => old/examples}/wmts-from-capabilities.js | 0 {examples => old/examples}/wmts-ign.html | 0 {examples => old/examples}/wmts-ign.js | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename {examples => old/examples}/wms-capabilities.html (100%) rename {examples => old/examples}/wms-capabilities.js (100%) rename {examples => old/examples}/wmts-capabilities.html (100%) rename {examples => old/examples}/wmts-capabilities.js (100%) rename {examples => old/examples}/wmts-from-capabilities.html (100%) rename {examples => old/examples}/wmts-from-capabilities.js (100%) rename {examples => old/examples}/wmts-ign.html (100%) rename {examples => old/examples}/wmts-ign.js (100%) diff --git a/examples/wms-capabilities.html b/old/examples/wms-capabilities.html similarity index 100% rename from examples/wms-capabilities.html rename to old/examples/wms-capabilities.html diff --git a/examples/wms-capabilities.js b/old/examples/wms-capabilities.js similarity index 100% rename from examples/wms-capabilities.js rename to old/examples/wms-capabilities.js diff --git a/examples/wmts-capabilities.html b/old/examples/wmts-capabilities.html similarity index 100% rename from examples/wmts-capabilities.html rename to old/examples/wmts-capabilities.html diff --git a/examples/wmts-capabilities.js b/old/examples/wmts-capabilities.js similarity index 100% rename from examples/wmts-capabilities.js rename to old/examples/wmts-capabilities.js diff --git a/examples/wmts-from-capabilities.html b/old/examples/wmts-from-capabilities.html similarity index 100% rename from examples/wmts-from-capabilities.html rename to old/examples/wmts-from-capabilities.html diff --git a/examples/wmts-from-capabilities.js b/old/examples/wmts-from-capabilities.js similarity index 100% rename from examples/wmts-from-capabilities.js rename to old/examples/wmts-from-capabilities.js diff --git a/examples/wmts-ign.html b/old/examples/wmts-ign.html similarity index 100% rename from examples/wmts-ign.html rename to old/examples/wmts-ign.html diff --git a/examples/wmts-ign.js b/old/examples/wmts-ign.js similarity index 100% rename from examples/wmts-ign.js rename to old/examples/wmts-ign.js From db408424876a1e4b052770e587bf8162fe9e78ab Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 22:18:22 +0100 Subject: [PATCH 039/919] Add ol.source.Vector --- src/objectliterals.jsdoc | 10 ++ src/ol/source/vectorsource.js | 102 ++++++++++++++++ test/spec/ol/source/vectorsource.test.js | 141 +++++++++++++++++++++++ 3 files changed, 253 insertions(+) create mode 100644 src/ol/source/vectorsource.js create mode 100644 test/spec/ol/source/vectorsource.test.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 87a96162e5..d43e07eb6a 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -531,6 +531,16 @@ * @todo stability experimental */ +/** + * @typedef {Object} ol.source.VectorOptions + * @property {Array.|undefined} attributions Attributions. + * @property {ol.Extent|undefined} extent Extent. + * @property {Array.|undefined} features Features. + * @property {string|undefined} logo Logo. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {ol.source.State|undefined} state State. + */ + /** * @typedef {Object} ol.source.WMTSOptions * @property {Array.|undefined} attributions Attributions. diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js new file mode 100644 index 0000000000..4f9162d508 --- /dev/null +++ b/src/ol/source/vectorsource.js @@ -0,0 +1,102 @@ +// FIXME put features in an ol.Collection +// FIXME make change-detection more refined (notably, geometry hint) +// FIXME keep R-Tree up-to-date, probably needs a new R-Tree implementation + +goog.provide('ol.source.Vector'); + +goog.require('goog.asserts'); +goog.require('goog.events'); +goog.require('goog.events.Event'); +goog.require('goog.events.EventType'); +goog.require('ol.source.Source'); +goog.require('ol.structs.RTree'); + + + +/** + * @constructor + * @extends {ol.source.Source} + * @param {ol.source.VectorOptions=} opt_options Options. + */ +ol.source.Vector = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + goog.base(this, { + attributions: options.attributions, + extent: options.extent, + logo: options.logo, + projection: options.projection, + state: options.state + }); + + /** + * @private + * @type {ol.structs.RTree} + */ + this.rTree_ = new ol.structs.RTree(); + + /** + * @private + * @type {Object.} + */ + this.featureChangeKeys_ = {}; + + if (goog.isDef(options.features)) { + var features = options.features; + var i, ii; + for (i = 0, ii = features.length; i < ii; ++i) { + this.addFeature(features[i]); + } + } + +}; +goog.inherits(ol.source.Vector, ol.source.Source); + + +/** + * @param {ol.Feature} feature Feature. + */ +ol.source.Vector.prototype.addFeature = function(feature) { + var featureKey = goog.getUid(feature) + ''; + goog.asserts.assert(!(featureKey in this.featureChangeKeys_)); + this.featureChangeKeys_[featureKey] = goog.events.listen(feature, + goog.events.EventType.CHANGE, this.handleFeatureChange_, false, this); + var extent = feature.getGeometry().getExtent(); + this.rTree_.insert(extent, feature); + this.dispatchChangeEvent(); +}; + + +/** + * @param {ol.Extent} extent Extent. + * @return {Array.} Features. + */ +ol.source.Vector.prototype.getFeatures = function(extent) { + return this.rTree_.search(extent); +}; + + +/** + * @param {goog.events.Event} event Event. + * @private + */ +ol.source.Vector.prototype.handleFeatureChange_ = function(event) { + //var feature = /** @type {ol.Feature} */ (event.target); + // FIXME keep R-Tree up to date + this.dispatchChangeEvent(); +}; + + +/** + * @param {ol.Feature} feature Feature. + */ +ol.source.Vector.prototype.removeFeature = function(feature) { + var extent = feature.getGeometry().getExtent(); + this.rTree_.remove(extent, feature); + var featureKey = goog.getUid(feature) + ''; + goog.asserts.assert(featureKey in this.featureChangeKeys_); + goog.events.unlistenByKey(this.featureChangeKeys_[featureKey]); + delete this.featureChangeKeys_[featureKey]; + this.dispatchChangeEvent(); +}; diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js new file mode 100644 index 0000000000..3c164fb381 --- /dev/null +++ b/test/spec/ol/source/vectorsource.test.js @@ -0,0 +1,141 @@ +goog.provide('ol.test.source.Vector'); + + +describe('ol.source.Vector', function() { + + var pointFeature; + var infiniteExtent; + beforeEach(function() { + pointFeature = new ol.Feature(new ol.geom.Point([0, 0])); + infiniteExtent = [-Infinity, -Infinity, Infinity, Infinity]; + }); + + describe('when empty', function() { + + var vectorSource; + beforeEach(function() { + vectorSource = new ol.source.Vector(); + }); + + describe('#getFeatures', function() { + + it('returns an empty array', function() { + var features = vectorSource.getFeatures(infiniteExtent); + expect(features).to.be.an(Array); + expect(features).to.be.empty(); + }); + + }); + + describe('#addFeature', function() { + + it('can add a single point feature', function() { + vectorSource.addFeature(pointFeature); + var features = vectorSource.getFeatures(infiniteExtent); + expect(features).to.be.an(Array); + expect(features).to.have.length(1); + expect(features[0]).to.be(pointFeature); + }); + + it('fires a change event', function() { + var listener = sinon.spy(); + goog.events.listen(vectorSource, 'change', listener); + vectorSource.addFeature(pointFeature); + expect(listener).to.be.called(); + }); + + }); + + }); + + describe('when populated with 10 random points', function() { + + var features; + var vectorSource; + beforeEach(function() { + features = []; + var i; + for (i = 0; i < 10; ++i) { + features[i] = + new ol.Feature(new ol.geom.Point([Math.random(), Math.random()])); + } + vectorSource = new ol.source.Vector({ + features: features + }); + }); + + describe('#getFeatures', function() { + + it('returns the expected number of features', function() { + expect(vectorSource.getFeatures(infiniteExtent)).have.length(10); + }); + + }); + + describe('#removeFeature', function() { + + it('works as expected', function() { + var i; + for (i = features.length - 1; i >= 0; --i) { + vectorSource.removeFeature(features[i]); + expect(vectorSource.getFeatures(infiniteExtent)).have.length(i); + } + }); + + it('fires a change event', function() { + var listener = sinon.spy(); + goog.events.listen(vectorSource, 'change', listener); + vectorSource.removeFeature(features[0]); + expect(listener).to.be.called(); + }); + + }); + + describe('modifying a feature\'s geometry', function() { + + it('fires a change event', function() { + var listener = sinon.spy(); + goog.events.listen(vectorSource, 'change', listener); + features[0].getGeometry().setCoordinate([100, 100]); + expect(listener).to.be.called(); + }); + + if (false) { + it('keeps the R-Tree index up to date', function() { + expect(vectorSource.getFeatures([0, 0, 1, 1])).to.have.length(10); + features[0].getGeometry().setCoordinate([100, 100]); + expect(vectorSource.getFeatures([0, 0, 1, 1])).to.have.length(9); + features[0].getGeometry().setCoordinate([0.5, 0.5]); + expect(vectorSource.getFeatures([0, 0, 1, 1])).to.have.length(10); + }); + } + + }); + + describe('setting a features geometry', function() { + + it('fires a change event', function() { + var listener = sinon.spy(); + goog.events.listen(vectorSource, 'change', listener); + features[0].setGeometry(new ol.geom.Point([100, 100])); + expect(listener).to.be.called(); + }); + + if (false) { + it('keeps the R-Tree index up to date', function() { + expect(vectorSource.getFeatures([0, 0, 1, 1])).to.have.length(10); + features[0].setGeometry(new ol.geom.Point([100, 100])); + expect(vectorSource.getFeatures([0, 0, 1, 1])).to.have.length(9); + }); + } + }); + + }); + +}); + + +goog.require('goog.events'); +goog.require('ol.Feature'); +goog.require('ol.geom.Point'); +goog.require('ol.source.Vector'); From 61a217e8dd20b9c136c35c3bdc507c192ea698be Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 22:52:04 +0100 Subject: [PATCH 040/919] Add ol.source.GeoJSON --- src/objectliterals.jsdoc | 10 +++++++++ src/ol/source/geojsonsource.js | 39 ++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/ol/source/geojsonsource.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index d43e07eb6a..ead8271135 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -429,6 +429,16 @@ * @todo stability experimental */ +/** + * @typedef {Object} ol.source.GeoJSONOptions + * @property {Array.|undefined} attributions Attributions. + * @property {string|undefined} logo Logo. + * @property {GeoJSONObject|undefined} geoJSON Object. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {string|undefined} string String. + * @proprtty {string|undefined} url URL. + */ + /** * @typedef {Object} ol.source.MapQuestOptions * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional diff --git a/src/ol/source/geojsonsource.js b/src/ol/source/geojsonsource.js new file mode 100644 index 0000000000..2cd8dbc7fc --- /dev/null +++ b/src/ol/source/geojsonsource.js @@ -0,0 +1,39 @@ +// FIXME load from URL + +goog.provide('ol.source.GeoJSON'); + +goog.require('goog.asserts'); +goog.require('ol.proj'); +goog.require('ol.reader.GeoJSON'); +goog.require('ol.source.Vector'); + + + +/** + * @constructor + * @extends {ol.source.Vector} + * @param {ol.source.GeoJSONOptions=} opt_options Options. + */ +ol.source.GeoJSON = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + var projection = goog.isDef(options.projection) ? + options.projection : ol.proj.get('EPSG:3857'); + + goog.base(this, { + attributions: options.attributions, + logo: options.logo, + projection: projection + }); + + var addFeature = goog.bind(this.addFeature, this); + if (goog.isDef(options.geoJSON)) { + ol.reader.GeoJSON.readObject(options.geoJSON, addFeature); + } + if (goog.isDef(options.string)) { + ol.reader.GeoJSON.readString(options.string, addFeature); + } + +}; +goog.inherits(ol.source.GeoJSON, ol.source.Vector); From 4260283497765e780c24b1c4c058fae6974aa58f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 10:03:01 +0100 Subject: [PATCH 041/919] Add layout and stride to ol.geom.Geometry --- src/ol/geom/geometry.js | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index fd40b82292..741d16e66e 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -14,15 +14,33 @@ ol.geom.GeometryType = { }; +/** + * @enum {string} + */ +ol.geom.GeometryLayout = { + XY: 'XY', + XYZ: 'XYZ', + XYM: 'XYM', + XYZM: 'XYZM' +}; + + /** * @constructor * @extends {goog.events.EventTarget} + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ -ol.geom.Geometry = function() { +ol.geom.Geometry = function(opt_layout) { goog.base(this); + /** + * @protected + * @type {ol.geom.GeometryLayout} + */ + this.layout = goog.isDef(opt_layout) ? opt_layout : ol.geom.GeometryLayout.XY; + /** * @protected * @type {number} @@ -61,6 +79,14 @@ ol.geom.Geometry.prototype.dispatchChangeEvent = function() { ol.geom.Geometry.prototype.getExtent = goog.abstractMethod; +/** + * @return {ol.geom.GeometryLayout} Layout. + */ +ol.geom.Geometry.prototype.getLayout = function() { + return this.layout; +}; + + /** * @return {number} Revision. */ @@ -69,6 +95,14 @@ ol.geom.Geometry.prototype.getRevision = function() { }; +/** + * @return {number} Stride. + */ +ol.geom.Geometry.prototype.getStride = function() { + return this.layout.length; +}; + + /** * @return {ol.geom.GeometryType} Geometry type. */ From 63a0219f3de9a908e885e04161ed7b1e0337df97 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 10:03:20 +0100 Subject: [PATCH 042/919] Add some FIXMEs --- src/ol/geom/geometry.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 741d16e66e..89cb7900ad 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -1,3 +1,10 @@ +// FIXME add MultiPoint +// FIXME add MultiLineString +// FIXME add MultiPolygon +// FIXME add GeometryCollection +// FIXME add Z and M support +// FIXME use flat coordinate arrays + goog.provide('ol.geom.Geometry'); goog.require('goog.events.EventTarget'); From 67cd0597bb93f698595dda912b06c1b789652639 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 10:04:31 +0100 Subject: [PATCH 043/919] Add ol.source.Vector#forEachFeatureInExtent and #getAllFeaturesInExtent --- src/ol/source/vectorsource.js | 23 ++++++++- test/spec/ol/source/vectorsource.test.js | 59 +++++++++++++++++++----- 2 files changed, 70 insertions(+), 12 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 4f9162d508..736d3f7e0a 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -68,11 +68,32 @@ ol.source.Vector.prototype.addFeature = function(feature) { }; +/** + * @param {ol.Extent} extent Extent. + * @param {function(this: T, ol.Feature): S} f Callback. + * @param {T=} opt_obj The object to be used a the value of 'this' within f. + * @return {S|undefined} + * @template T,S + */ +ol.source.Vector.prototype.forEachFeatureInExtent = + function(extent, f, opt_obj) { + var features = this.getAllFeaturesInExtent(extent); + var i, ii; + for (i = 0, ii = features.length; i < ii; ++i) { + var result = f.call(opt_obj, features[i]); + if (result) { + return result; + } + } + return undefined; +}; + + /** * @param {ol.Extent} extent Extent. * @return {Array.} Features. */ -ol.source.Vector.prototype.getFeatures = function(extent) { +ol.source.Vector.prototype.getAllFeaturesInExtent = function(extent) { return this.rTree_.search(extent); }; diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js index 3c164fb381..9f227eef24 100644 --- a/test/spec/ol/source/vectorsource.test.js +++ b/test/spec/ol/source/vectorsource.test.js @@ -17,10 +17,20 @@ describe('ol.source.Vector', function() { vectorSource = new ol.source.Vector(); }); - describe('#getFeatures', function() { + describe('#forEachFeatureInExtent', function() { + + it('does not call the callback', function() { + var f = sinon.spy(); + vectorSource.forEachFeatureInExtent(infiniteExtent, f); + expect(f).not.to.be.called(); + }); + + }); + + describe('#getAllFeaturesInExtent', function() { it('returns an empty array', function() { - var features = vectorSource.getFeatures(infiniteExtent); + var features = vectorSource.getAllFeaturesInExtent(infiniteExtent); expect(features).to.be.an(Array); expect(features).to.be.empty(); }); @@ -31,7 +41,7 @@ describe('ol.source.Vector', function() { it('can add a single point feature', function() { vectorSource.addFeature(pointFeature); - var features = vectorSource.getFeatures(infiniteExtent); + var features = vectorSource.getAllFeaturesInExtent(infiniteExtent); expect(features).to.be.an(Array); expect(features).to.have.length(1); expect(features[0]).to.be(pointFeature); @@ -64,10 +74,31 @@ describe('ol.source.Vector', function() { }); }); - describe('#getFeatures', function() { + describe('#forEachFeatureInExtent', function() { + + it('is called the expected number of times', function() { + var f = sinon.spy(); + vectorSource.forEachFeatureInExtent(infiniteExtent, f); + expect(f.callCount).to.be(10); + }); + + it('allows breaking out', function() { + var count = 0; + var result = vectorSource.forEachFeatureInExtent(infiniteExtent, + function(f) { + return ++count == 5; + }); + expect(result).to.be(true); + expect(count).to.be(5); + }); + + }); + + describe('#getAllFeaturesInExtent', function() { it('returns the expected number of features', function() { - expect(vectorSource.getFeatures(infiniteExtent)).have.length(10); + expect(vectorSource.getAllFeaturesInExtent(infiniteExtent)). + to.have.length(10); }); }); @@ -78,7 +109,8 @@ describe('ol.source.Vector', function() { var i; for (i = features.length - 1; i >= 0; --i) { vectorSource.removeFeature(features[i]); - expect(vectorSource.getFeatures(infiniteExtent)).have.length(i); + expect(vectorSource.getAllFeaturesInExtent(infiniteExtent)). + have.length(i); } }); @@ -102,11 +134,14 @@ describe('ol.source.Vector', function() { if (false) { it('keeps the R-Tree index up to date', function() { - expect(vectorSource.getFeatures([0, 0, 1, 1])).to.have.length(10); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). + to.have.length(10); features[0].getGeometry().setCoordinate([100, 100]); - expect(vectorSource.getFeatures([0, 0, 1, 1])).to.have.length(9); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). + to.have.length(9); features[0].getGeometry().setCoordinate([0.5, 0.5]); - expect(vectorSource.getFeatures([0, 0, 1, 1])).to.have.length(10); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). + to.have.length(10); }); } @@ -123,9 +158,11 @@ describe('ol.source.Vector', function() { if (false) { it('keeps the R-Tree index up to date', function() { - expect(vectorSource.getFeatures([0, 0, 1, 1])).to.have.length(10); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). + to.have.length(10); features[0].setGeometry(new ol.geom.Point([100, 100])); - expect(vectorSource.getFeatures([0, 0, 1, 1])).to.have.length(9); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). + to.have.length(9); }); } }); From f9105c18eb513dcf953f25e020c04a360d89499f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 12:23:17 +0100 Subject: [PATCH 044/919] Use GeoJSON types for geometries --- src/ol/geom/geometry.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 89cb7900ad..ad3ef65128 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -15,9 +15,9 @@ goog.require('goog.events.EventType'); * @enum {string} */ ol.geom.GeometryType = { - POINT: 'point', - LINE_STRING: 'line_string', - POLYGON: 'polygon' + POINT: 'Point', + LINE_STRING: 'LineString', + POLYGON: 'Polygon' }; From 2704da9e4ef4aea65c9c13bbe1950046f82baba2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 12:24:01 +0100 Subject: [PATCH 045/919] Mark constants --- src/ol/reader/geojson/geojson.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ol/reader/geojson/geojson.js b/src/ol/reader/geojson/geojson.js index 4f8e978bf5..26b8bf20a8 100644 --- a/src/ol/reader/geojson/geojson.js +++ b/src/ol/reader/geojson/geojson.js @@ -119,6 +119,7 @@ ol.reader.GeoJSON.readString = function(string, callback) { /** + * @const * @private * @type {Object.} */ @@ -130,6 +131,7 @@ ol.reader.GeoJSON.GEOMETRY_READERS_ = { /** + * @const * @private * @type {Object.} */ From 82dc4baff620d98c4ecb21e4dcd002a65e629046 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 12:38:44 +0100 Subject: [PATCH 046/919] Add scope and type checking to ol.reader.GeoJSON --- src/ol/reader/geojson/geojson.js | 51 +++++++++++++++++++------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/src/ol/reader/geojson/geojson.js b/src/ol/reader/geojson/geojson.js index 26b8bf20a8..0bfe22a3ad 100644 --- a/src/ol/reader/geojson/geojson.js +++ b/src/ol/reader/geojson/geojson.js @@ -54,13 +54,16 @@ ol.reader.GeoJSON.readPolygonGeometry_ = function(geometry) { /** - * @param {GeoJSONFeature} feature Feature. - * @param {function(ol.Feature): *} callback Callback. + * @param {GeoJSONObject} object Object. + * @param {function(this: S, ol.Feature): T} callback Callback. + * @param {S=} opt_obj Scope. * @private - * @return {*} Callback result. + * @return {T} Callback result. + * @template S,T */ -ol.reader.GeoJSON.readFeature_ = function(feature, callback) { - goog.asserts.assert(feature.type == 'Feature'); +ol.reader.GeoJSON.readFeature_ = function(object, callback, opt_obj) { + goog.asserts.assert(object.type == 'Feature'); + var feature = /** @type {GeoJSONFeature} */ (object); var geometryReader = ol.reader.GeoJSON.GEOMETRY_READERS_[feature.geometry.type]; goog.asserts.assert(goog.isDef(geometryReader)); @@ -69,23 +72,25 @@ ol.reader.GeoJSON.readFeature_ = function(feature, callback) { if (goog.isDef(feature.properties)) { f.setValues(feature.properties); } - return callback(f); + return callback.call(opt_obj, f); }; /** - * @param {GeoJSONFeatureCollection} featureCollection Feature collection. - * @param {function(ol.Feature): *} callback Callback. + * @param {GeoJSONObject} object Object. + * @param {function(this: S, ol.Feature): T} callback Callback. + * @param {S=} opt_obj Scope. * @private - * @return {*} Callback result. + * @return {T|undefined} Callback result. + * @template S,T */ -ol.reader.GeoJSON.readFeatureCollection_ = - function(featureCollection, callback) { - goog.asserts.assert(featureCollection.type == 'FeatureCollection'); +ol.reader.GeoJSON.readFeatureCollection_ = function(object, callback, opt_obj) { + goog.asserts.assert(object.type == 'FeatureCollection'); + var featureCollection = /** @type {GeoJSONFeatureCollection} */ (object); var features = featureCollection.features; var i, ii; for (i = 0, ii = features.length; i < ii; ++i) { - var result = ol.reader.GeoJSON.readFeature_(features[i], callback); + var result = ol.reader.GeoJSON.readFeature_(features[i], callback, opt_obj); if (result) { return result; } @@ -96,22 +101,26 @@ ol.reader.GeoJSON.readFeatureCollection_ = /** * @param {GeoJSONObject} object Object. - * @param {function(ol.Feature): *} callback Callback. - * @return {*} Callback result. + * @param {function(this: S, ol.Feature): T} callback Callback. + * @param {S=} opt_obj Scope. + * @return {T} Callback result. + * @template S,T */ -ol.reader.GeoJSON.readObject = function(object, callback) { +ol.reader.GeoJSON.readObject = function(object, callback, opt_obj) { var objectReader = ol.reader.GeoJSON.OBJECT_READERS_[object.type]; goog.asserts.assert(goog.isDef(objectReader)); - return objectReader(object, callback); + return objectReader(object, callback, opt_obj); }; /** * @param {string} string String. - * @param {function(ol.Feature): *} callback Callback. - * @return {*} Callback result. + * @param {function(ol.Feature): T} callback Callback. + * @param {S=} opt_obj Scope. + * @return {T} Callback result. + * @template S,T */ -ol.reader.GeoJSON.readString = function(string, callback) { +ol.reader.GeoJSON.readString = function(string, callback, opt_obj) { var object = goog.json.parse(string); return ol.reader.GeoJSON.readObject( /** @type {GeoJSONObject} */ (object), callback); @@ -133,7 +142,7 @@ ol.reader.GeoJSON.GEOMETRY_READERS_ = { /** * @const * @private - * @type {Object.} + * @type {Object.} */ ol.reader.GeoJSON.OBJECT_READERS_ = { 'Feature': ol.reader.GeoJSON.readFeature_, From 9bd9a1848e364120a43c8438cfb443822ad3bd8d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 12:39:06 +0100 Subject: [PATCH 047/919] Use scope in ol.source.GeoJSON --- src/ol/source/geojsonsource.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/ol/source/geojsonsource.js b/src/ol/source/geojsonsource.js index 2cd8dbc7fc..51aff5b1ab 100644 --- a/src/ol/source/geojsonsource.js +++ b/src/ol/source/geojsonsource.js @@ -27,12 +27,11 @@ ol.source.GeoJSON = function(opt_options) { projection: projection }); - var addFeature = goog.bind(this.addFeature, this); if (goog.isDef(options.geoJSON)) { - ol.reader.GeoJSON.readObject(options.geoJSON, addFeature); + ol.reader.GeoJSON.readObject(options.geoJSON, this.addFeature, this); } if (goog.isDef(options.string)) { - ol.reader.GeoJSON.readString(options.string, addFeature); + ol.reader.GeoJSON.readString(options.string, this.addFeature, this); } }; From 14ed09eb6fcfc5774fdb1b61d86c2b888a039a3a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 13:27:30 +0100 Subject: [PATCH 048/919] Move old replay API out of the way --- {src => old/src}/ol/replay/canvas.js | 0 {src => old/src}/ol/replay/replaybase.js | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {src => old/src}/ol/replay/canvas.js (100%) rename {src => old/src}/ol/replay/replaybase.js (100%) diff --git a/src/ol/replay/canvas.js b/old/src/ol/replay/canvas.js similarity index 100% rename from src/ol/replay/canvas.js rename to old/src/ol/replay/canvas.js diff --git a/src/ol/replay/replaybase.js b/old/src/ol/replay/replaybase.js similarity index 100% rename from src/ol/replay/replaybase.js rename to old/src/ol/replay/replaybase.js From f445a7230b0891921c25de010fd6b4edf733783d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:04:09 +0100 Subject: [PATCH 049/919] Rename transformPath to transformCoordinates --- src/ol/replay/replay.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ol/replay/replay.js b/src/ol/replay/replay.js index 4edb41fa43..93657fc746 100644 --- a/src/ol/replay/replay.js +++ b/src/ol/replay/replay.js @@ -4,30 +4,30 @@ goog.require('goog.vec.Mat4'); /** - * @param {Array.} path Path. + * @param {Array.} coordinates Coordinates. * @param {goog.vec.Mat4.AnyType} transform Transform. * @param {Array.=} opt_dest Destination. - * @return {Array.} Pixel path. + * @return {Array.} Transformed coordinates. */ -ol.replay.transformPath = function(path, transform, opt_dest) { +ol.replay.transformCoordinates = function(coordinates, transform, opt_dest) { var m00 = goog.vec.Mat4.getElement(transform, 0, 0); var m10 = goog.vec.Mat4.getElement(transform, 1, 0); var m01 = goog.vec.Mat4.getElement(transform, 0, 1); var m11 = goog.vec.Mat4.getElement(transform, 1, 1); var m03 = goog.vec.Mat4.getElement(transform, 0, 3); var m13 = goog.vec.Mat4.getElement(transform, 1, 3); - var n = path.length; + var n = coordinates.length; var result; if (goog.isDef(opt_dest)) { result = opt_dest; } else { - result = new Array(n); + result = []; } var j = 0; var i, x, y; for (i = 0; i < n; ) { - x = path[i++]; - y = path[i++]; + x = coordinates[i++]; + y = coordinates[i++]; result[j++] = m00 * x + m01 * y + m03; result[j++] = m10 * x + m11 * y + m13; } From 30311f0b653502694b0b48a3d43c4e4f54cca27b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:04:24 +0100 Subject: [PATCH 050/919] Add ol.style --- src/ol/style.js | 101 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/ol/style.js diff --git a/src/ol/style.js b/src/ol/style.js new file mode 100644 index 0000000000..d683df5c76 --- /dev/null +++ b/src/ol/style.js @@ -0,0 +1,101 @@ +goog.provide('ol.style.DefaultStyleFunction'); +goog.provide('ol.style.Style'); +goog.provide('ol.style.StyleFunction'); + +goog.require('goog.functions'); + + +/** + * @typedef {{color: string, + * opacity: number}} + */ +ol.style.Fill; + + +/** + * @typedef {{anchor: Array., + * image: (HTMLCanvasElement|HTMLVideoElement|Image), + * rotation: number, + * subtractViewRotation: boolean}} + */ +ol.style.Image; + + +/** + * @typedef {{color: string, + * width: number}} + */ +ol.style.Stroke; + + +/** + * @typedef {{fill: ol.style.Fill, + * image: ol.style.Image, + * stroke: ol.style.Stroke, + * zIndex: number}} + */ +ol.style.Style; + + +/** + * @typedef {function(ol.Feature): ol.style.Style} + */ +ol.style.StyleFunction; + + +/** + * @const + * @type {ol.style.Fill} + */ +ol.style.DEFAULT_FILL_STYLE = { + color: 'red', + opacity: 0.1 +}; + + +/** + * @const + * @type {ol.style.Image} + */ +ol.style.DEFAULT_IMAGE_STYLE = { + anchor: [0, 0], + image: null, // FIXME + rotation: 0.0, + subtractViewRotation: false +}; + + +/** + * @const + * @type {ol.style.Stroke} + */ +ol.style.DEFAULT_STROKE_STYLE = { + color: 'red', + width: 3 +}; + + +/** + * @const + * @type {number} + */ +ol.style.DEFAULT_Z_INDEX = 0; + + +/** + * @const + * @type {ol.style.Style} + */ +ol.style.DEFAULT_STYLE = { + fill: ol.style.DEFAULT_FILL_STYLE, + image: ol.style.DEFAULT_IMAGE_STYLE, + stroke: ol.style.DEFAULT_STROKE_STYLE, + zIndex: ol.style.DEFAULT_Z_INDEX +}; + + +/** + * @param {ol.Feature} feature Feature. + * @return {ol.style.Style} Style. + */ +ol.style.DefaultStyleFunction = goog.functions.constant(ol.style.DEFAULT_STYLE); From 711917db625493881ea857cd9afc369f46b9a6ec Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:04:53 +0100 Subject: [PATCH 051/919] Add ol.layer.Vector --- src/objectliterals.jsdoc | 16 +++++++++ src/ol/layer/vectorlayer.js | 67 +++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 src/ol/layer/vectorlayer.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index ead8271135..5818a66a45 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -418,6 +418,22 @@ * @todo stability experimental */ +/** + * @typedef {Object} ol.layer.VectorOptions + * @property {number|undefined} brightness Brightness. + * @property {number|undefined} contrast Contrast. + * @property {number|undefined} hue Hue. + * @property {number|undefined} minResolution The minimum resolution + * (inclusive) at which this layer will be visible. + * @property {number|undefined} maxResolution The maximum resolution + * (exclusive) below which this layer will be visible. + * @property {number|undefined} opacity Opacity. 0-1. Default is `1`. + * @property {number|undefined} saturation Saturation. + * @property {ol.source.Vector} source Source. + * @property {ol.style.StyleFunction|undefined} styleFunction Style function. + * @property {boolean|undefined} visible Visibility. Default is `true` (visible). + */ + /** * @typedef {Object} ol.source.BingMapsOptions * @property {string|undefined} culture Culture. diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js new file mode 100644 index 0000000000..50147d0be6 --- /dev/null +++ b/src/ol/layer/vectorlayer.js @@ -0,0 +1,67 @@ +goog.provide('ol.layer.Vector'); + +goog.require('ol.layer.Layer'); +goog.require('ol.source.Vector'); + + +/** + * @enum {string} + */ +ol.layer.VectorProperty = { + STYLE_FUNCTION: 'styleFunction' +}; + + + +/** + * @constructor + * @extends {ol.layer.Layer} + * @param {ol.layer.VectorOptions=} opt_options Options. + */ +ol.layer.Vector = function(opt_options) { + + var options = goog.isDef(opt_options) ? + opt_options : /** @type {ol.layer.VectorOptions} */ ({}); + + goog.base(this, /** @type {ol.layer.LayerOptions} */ (options)); + + // FIXME veryify this + if (goog.isDef(options.styleFunction)) { + this.setStyleFunction(options.styleFunction); + } + +}; +goog.inherits(ol.layer.Vector, ol.layer.Layer); + + +/** + * @return {ol.style.StyleFunction|undefined} Style function. + */ +ol.layer.Vector.prototype.getStyleFunction = function() { + return /** @type {ol.style.StyleFunction|undefined} */ ( + this.get(ol.layer.VectorProperty.STYLE_FUNCTION)); +}; +goog.exportProperty( + ol.layer.Vector.prototype, + 'getStyleFunction', + ol.layer.Vector.prototype.getStyleFunction); + + +/** + * @return {ol.source.Source} Vector source. + */ +ol.layer.Vector.prototype.getVectorSource = function() { + return /** @type {ol.source.Vector} */ (this.getSource()); +}; + + +/** + * @param {ol.style.StyleFunction|undefined} styleFunction Style function. + */ +ol.layer.Vector.prototype.setStyleFunction = function(styleFunction) { + this.set(ol.layer.VectorProperty.STYLE_FUNCTION, styleFunction); +}; +goog.exportProperty( + ol.layer.Vector.prototype, + 'setStyleFunction', + ol.layer.Vector.prototype.setStyleFunction); From 35d1fe5d75f5c9377d114bd4751a953280093359 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:05:34 +0100 Subject: [PATCH 052/919] Add initial replay API --- src/ol/replay/ibatchgroup.js | 63 ++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/ol/replay/ibatchgroup.js diff --git a/src/ol/replay/ibatchgroup.js b/src/ol/replay/ibatchgroup.js new file mode 100644 index 0000000000..239474a59e --- /dev/null +++ b/src/ol/replay/ibatchgroup.js @@ -0,0 +1,63 @@ +goog.provide('ol.replay.IBatch'); +goog.provide('ol.replay.IBatchGroup'); + +goog.require('goog.functions'); + + +/** + * @enum {string} + */ +ol.replay.BatchType = { + FILL_RING: 'fillRing', + POINT: 'point', + STROKE_LINE: 'strokeLine', + STROKE_FILL_RING: 'strokeFillRing', + STROKE_RING: 'strokeRing' +}; + + + +/** + * @interface + */ +ol.replay.IBatch = function() { +}; + + +/** + * @param {ol.geom.LineString} lineStringGeometry Line string geometry. + */ +ol.replay.IBatch.prototype.drawLineStringGeometry = + function(lineStringGeometry) { +}; + + +/** + * @param {ol.style.Stroke} strokeStyle Stroke style. + */ +ol.replay.IBatch.prototype.setStrokeStyle = function(strokeStyle) { +}; + + + +/** + * @interface + */ +ol.replay.IBatchGroup = function() { +}; + + +/** + * @param {number} zIndex Z index. + * @param {ol.replay.BatchType} batchType Batch type. + * @return {ol.replay.IBatch} Batch. + */ +ol.replay.IBatchGroup.prototype.getBatch = function(zIndex, batchType) { +}; + + +/** + * @return {boolean} Is empty. + */ +ol.replay.IBatchGroup.prototype.isEmpty = function() { +}; From 1c23c8b674dfa5b49460076c045f316717ca0210 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:05:53 +0100 Subject: [PATCH 053/919] Add initial canvas implementation of replay API --- src/ol/replay/canvas/canvasbatchgroup.js | 220 +++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 src/ol/replay/canvas/canvasbatchgroup.js diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js new file mode 100644 index 0000000000..776cf32000 --- /dev/null +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -0,0 +1,220 @@ +// FIXME store coordinates in batchgroup? +// FIXME flattened coordinates +// FIXME per-batch extent tests + +goog.provide('ol.replay.canvas.BatchGroup'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.functions'); +goog.require('goog.object'); +goog.require('ol.replay'); +goog.require('ol.replay.IBatch'); +goog.require('ol.replay.IBatchGroup'); + + +/** + * @enum {number} + */ +ol.replay.canvas.InstructionType = { + DRAW_LINE_STRING_GEOMETRY: 0, + SET_STROKE_STYLE: 1 +}; + + +/** + * @typedef {{argument: ?, + * type: ol.replay.canvas.InstructionType}} + */ +ol.replay.canvas.Instruction; + + + +/** + * @constructor + * @implements {ol.replay.IBatch} + */ +ol.replay.canvas.Batch = function() { + + /** + * @private + * @type {Array.} + */ + this.instructions_ = []; + + /** + * @private + * @type {Array.} + */ + this.coordinates_ = []; + + /** + * @private + * @type {Array.} + */ + this.pixelCoordinates_ = []; + +}; + + +/** + * @param {CanvasRenderingContext2D} context Context. + * @param {goog.vec.Mat4.AnyType} transform Transform. + */ +ol.replay.canvas.Batch.prototype.draw = function(context, transform) { + var pixelCoordinates = ol.replay.transformCoordinates( + this.coordinates_, transform, this.pixelCoordinates_); + this.pixelCoordinates_ = pixelCoordinates; // FIXME ? + var begunPath = false; + var fillPending = false; + var strokePending = false; + var flushPath = function() { + if (strokePending || fillPending) { + if (strokePending) { + context.stroke(); + strokePending = false; + } + if (fillPending) { + context.fill(); + fillPending = false; + } + context.beginPath(); + begunPath = true; + } + }; + var instructions = this.instructions_; + var i = 0; + var j, jj; + for (j = 0, jj = instructions.length; j < jj; ++j) { + var instruction = instructions[j]; + if (instruction.type == + ol.replay.canvas.InstructionType.DRAW_LINE_STRING_GEOMETRY) { + if (!begunPath) { + context.beginPath(); + begunPath = true; + } + context.moveTo(pixelCoordinates[i], pixelCoordinates[i + 1]); + goog.asserts.assert(goog.isNumber(instruction.argument)); + var ii = /** @type {number} */ (instruction.argument); + for (i += 2; i < ii; i += 2) { + context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]); + } + strokePending = true; + } else if (instruction.type == + ol.replay.canvas.InstructionType.SET_STROKE_STYLE) { + flushPath(); + goog.asserts.assert(goog.isObject(instruction.argument)); + var strokeStyle = /** @type {ol.style.Stroke} */ (instruction.argument); + context.strokeStyle = strokeStyle.color; + context.lineWidth = strokeStyle.width; + } + } + flushPath(); + goog.asserts.assert(i == pixelCoordinates.length); +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.Batch.prototype.drawLineStringGeometry = + function(lineStringGeometry) { + var coordinates = this.coordinates_; + var lineStringCoordinates = lineStringGeometry.getCoordinates(); + var i = coordinates.length; + var j, jj; + for (j = 0, jj = lineStringCoordinates.length; j < jj; ++j) { + coordinates[i++] = lineStringCoordinates[j][0]; + coordinates[i++] = lineStringCoordinates[j][1]; + } + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.DRAW_LINE_STRING_GEOMETRY, + argument: i + }); +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.Batch.prototype.setStrokeStyle = function(strokeStyle) { + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.SET_STROKE_STYLE, + argument: strokeStyle + }); +}; + + + +/** + * @constructor + * @implements {ol.replay.IBatchGroup} + */ +ol.replay.canvas.BatchGroup = function() { + + /** + * @private + * @type {Object.>} + */ + this.batchesByZIndex_ = {}; + +}; + + +/** + * @param {CanvasRenderingContext2D} context Context. + * @param {goog.vec.Mat4.AnyType} transform Transform. + */ +ol.replay.canvas.BatchGroup.prototype.draw = function(context, transform) { + window.console.log('drawing batch'); + /** @type {Array.} */ + var zs = goog.array.map(goog.object.getKeys(this.batchesByZIndex_), Number); + goog.array.sort(zs); + var i, ii; + for (i = 0, ii = zs.length; i < ii; ++i) { + var batches = this.batchesByZIndex_[zs[i].toString()]; + var batchType; + for (batchType in batches) { + var batch = batches[batchType]; + batch.draw(context, transform); + } + } +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.BatchGroup.prototype.getBatch = function(zIndex, batchType) { + var zIndexKey = zIndex.toString(); + var batches = this.batchesByZIndex_[zIndexKey]; + if (!goog.isDef(batches)) { + batches = {}; + this.batchesByZIndex_[zIndexKey] = batches; + } + var batch = batches[batchType]; + if (!goog.isDef(batch)) { + var constructor = ol.replay.canvas.BATCH_CONSTRUCTORS_[batchType]; + goog.asserts.assert(goog.isDef(constructor)); + batch = new constructor(); + batches[batchType] = batch; + } + return batch; +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.BatchGroup.prototype.isEmpty = goog.functions.FALSE; // FIXME + + +/** + * @const + * @private + * @type {Object.} + */ +ol.replay.canvas.BATCH_CONSTRUCTORS_ = { + 'strokeLine': ol.replay.canvas.Batch +}; From d2dbc27b0add4fe0e9d00786ec539ad60e52d33e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:06:15 +0100 Subject: [PATCH 054/919] Add shared vector rendering functions --- src/ol/renderer/vector.js | 82 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/ol/renderer/vector.js diff --git a/src/ol/renderer/vector.js b/src/ol/renderer/vector.js new file mode 100644 index 0000000000..81a55f90fb --- /dev/null +++ b/src/ol/renderer/vector.js @@ -0,0 +1,82 @@ +goog.provide('ol.renderer.vector'); + +goog.require('goog.asserts'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.Point'); +goog.require('ol.geom.Polygon'); +goog.require('ol.replay.IBatchGroup'); +goog.require('ol.style.Style'); + + +/** + * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.Feature} feature Feature. + * @param {ol.style.Style} style Style. + */ +ol.renderer.vector.renderFeature = function(batchGroup, feature, style) { + var geometry = feature.getGeometry(); + var geometryRenderer = + ol.renderer.vector.GEOMETRY_RENDERERS_[geometry.getType()]; + goog.asserts.assert(goog.isDef(geometryRenderer)); + geometryRenderer(batchGroup, geometry, style); +}; + + +/** + * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.geom.Geometry} geometry Geometry. + * @param {ol.style.Style} style Style. + * @private + */ +ol.renderer.vector.renderLineStringGeometry_ = + function(batchGroup, geometry, style) { + goog.asserts.assert(geometry instanceof ol.geom.LineString); + var lineStringGeometry = /** @type {ol.geom.LineString} */ (geometry); + window.console.log({batchingLineString: lineStringGeometry}); // FIXME + var batch = batchGroup.getBatch( + style.zIndex, ol.replay.BatchType.STROKE_LINE); + batch.setStrokeStyle(style.stroke); + batch.drawLineStringGeometry(lineStringGeometry); +}; + + +/** + * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.geom.Geometry} geometry Geometry. + * @param {ol.style.Style} style Style. + * @private + */ +ol.renderer.vector.renderPointGeometry_ = + function(batchGroup, geometry, style) { + goog.asserts.assert(geometry instanceof ol.geom.Point); + var pointGeometry = /** @type {ol.geom.Point} */ (geometry); + window.console.log({batchingPoint: pointGeometry}); // FIXME +}; + + +/** + * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.geom.Geometry} geometry Geometry. + * @param {ol.style.Style} style Style. + * @private + */ +ol.renderer.vector.renderPolygonGeometry_ = + function(batchGroup, geometry, style) { + goog.asserts.assert(geometry instanceof ol.geom.Polygon); + var polygonGeometry = /** @type {ol.geom.Polygon} */ (geometry); + window.console.log({batchingPolygon: polygonGeometry}); // FIXME +}; + + +/** + * @const + * @private + * @type {Object.} + */ +ol.renderer.vector.GEOMETRY_RENDERERS_ = { + 'Point': ol.renderer.vector.renderPointGeometry_, + 'LineString': ol.renderer.vector.renderLineStringGeometry_, + 'Polygon': ol.renderer.vector.renderPolygonGeometry_ +}; From fb7ccc9d1687c14cf4e3bbc61a41e7ebdd4cac99 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:06:35 +0100 Subject: [PATCH 055/919] Add initial canvas vector layer renderer --- .../canvas/canvasvectorlayerrenderer.js | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 src/ol/renderer/canvas/canvasvectorlayerrenderer.js diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js new file mode 100644 index 0000000000..3ed41c9a4d --- /dev/null +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -0,0 +1,137 @@ +goog.provide('ol.renderer.canvas.VectorLayer'); + +goog.require('goog.vec.Mat4'); +goog.require('ol.extent'); +goog.require('ol.renderer.canvas.Layer'); +goog.require('ol.renderer.vector'); +goog.require('ol.replay.canvas.BatchGroup'); +goog.require('ol.style.DefaultStyleFunction'); + + + +/** + * @constructor + * @extends {ol.renderer.canvas.Layer} + * @param {ol.renderer.Map} mapRenderer Map renderer. + * @param {ol.layer.Vector} vectorLayer Vector layer. + */ +ol.renderer.canvas.VectorLayer = function(mapRenderer, vectorLayer) { + + goog.base(this, mapRenderer, vectorLayer); + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.transform_ = goog.vec.Mat4.createNumber(); + + /** + * @private + * @type {number} + */ + this.renderedRevision_ = -1; + + /** + * @private + * @type {number} + */ + this.renderedResolution_ = NaN; + + /** + * @private + * @type {ol.Extent} + */ + this.renderedExtent_ = ol.extent.createEmpty(); + + /** + * @private + * @type {ol.replay.canvas.BatchGroup} + */ + this.batchGroup_ = null; + +}; +goog.inherits(ol.renderer.canvas.VectorLayer, ol.renderer.canvas.Layer); + + +/** + * @inheritDoc + */ +ol.renderer.canvas.VectorLayer.prototype.composeFrame = + function(frameState, layerState, context) { + + var batchGroup = this.batchGroup_; + if (goog.isNull(batchGroup)) { + return; + } + + var view2DState = frameState.view2DState; + var viewCenter = view2DState.center; + var viewResolution = view2DState.resolution; + var viewRotation = view2DState.rotation; + + var transform = this.transform_; + goog.vec.Mat4.makeIdentity(transform); + goog.vec.Mat4.translate(transform, + frameState.size[0] / 2, + frameState.size[1] / 2, + 0); + goog.vec.Mat4.scale(transform, + 1 / viewResolution, + -1 / viewResolution, + 1); + goog.vec.Mat4.rotateZ(transform, -viewRotation); + goog.vec.Mat4.translate(transform, + -viewCenter[0], + -viewCenter[1], + 0); + + batchGroup.draw(context, transform); + +}; + + +/** + * @return {ol.layer.Vector} Vector layer. + */ +ol.renderer.canvas.VectorLayer.prototype.getVectorLayer = function() { + return /** @type {ol.layer.Vector} */ (this.getLayer()); +}; + + +/** + * @inheritDoc + */ +ol.renderer.canvas.VectorLayer.prototype.prepareFrame = + function(frameState, layerState) { + + var vectorLayer = this.getVectorLayer(); + var vectorSource = vectorLayer.getVectorSource(); + + if (this.renderedResolution_ == frameState.view2DState.resolution && + this.renderedRevision_ == vectorSource.getRevision() && + ol.extent.containsExtent(this.renderedExtent_, frameState.extent)) { + return; + } + + // FIXME dispose of old batchGroup in post render + goog.dispose(this.batchGroup_); + this.batchGroup = null; + + var styleFunction = vectorLayer.getStyleFunction(); + if (!goog.isDef(styleFunction)) { + styleFunction = ol.style.DefaultStyleFunction; + } + var batchGroup = new ol.replay.canvas.BatchGroup(); + vectorSource.forEachFeatureInExtent(frameState.extent, function(feature) { + var style = styleFunction(feature); + ol.renderer.vector.renderFeature(batchGroup, feature, style); + }, this); + + this.renderedResolution_ = frameState.view2DState.resolution; + this.renderedRevision_ = vectorSource.getRevision(); + this.renderedExtent_ = frameState.extent; + if (!batchGroup.isEmpty()) { + this.batchGroup_ = batchGroup; + } + +}; From f0b4a5a35e4ad0fb70da245e07ae7ff617d1a4ab Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:06:57 +0100 Subject: [PATCH 056/919] Activate canvas vector layer renderer --- src/ol/renderer/canvas/canvasmaprenderer.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index 5526462f42..5a2d32c64a 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -9,9 +9,11 @@ goog.require('goog.style'); goog.require('ol.css'); goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.canvas.ImageLayer'); goog.require('ol.renderer.canvas.TileLayer'); +goog.require('ol.renderer.canvas.VectorLayer'); goog.require('ol.source.State'); @@ -60,6 +62,8 @@ ol.renderer.canvas.Map.prototype.createLayerRenderer = function(layer) { return new ol.renderer.canvas.ImageLayer(this, layer); } else if (layer instanceof ol.layer.Tile) { return new ol.renderer.canvas.TileLayer(this, layer); + } else if (layer instanceof ol.layer.Vector) { + return new ol.renderer.canvas.VectorLayer(this, layer); } else { goog.asserts.fail(); return null; From e403f10de522aa33d8edcaa82cada035286fb3a2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:07:11 +0100 Subject: [PATCH 057/919] Add GeoJSON example --- examples/geojson.html | 50 +++++++++++++++++++++++++++++++++++++++ examples/geojson.js | 54 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 examples/geojson.html create mode 100644 examples/geojson.js diff --git a/examples/geojson.html b/examples/geojson.html new file mode 100644 index 0000000000..1a2dc82bb4 --- /dev/null +++ b/examples/geojson.html @@ -0,0 +1,50 @@ + + + + + + + + + + + GeoJSON example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Simple example

+

Example of GeoJSON features.

+
+

See the geojson.js source to see how this is done.

+
+
geojson, openstreetmap
+
+ +
+ +
+ + + + + + diff --git a/examples/geojson.js b/examples/geojson.js new file mode 100644 index 0000000000..7e4cc090a5 --- /dev/null +++ b/examples/geojson.js @@ -0,0 +1,54 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.source.GeoJSON'); +goog.require('ol.source.OSM'); + +var geoJSONSource = new ol.source.GeoJSON( + /** @type {ol.source.GeoJSONOptions} */ ({ + geoJSON: { + 'type': 'FeatureCollection', + features: [ + { + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [0, 0] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'LineString', + 'coordinates': [[-1e7, -1e7], [1e7, 1e7]] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'LineString', + 'coordinates': [[-1e7, 1e7], [1e7, -1e7]] + } + } + ] + } + })); + +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + source: new ol.source.OSM() + }), + new ol.layer.Vector({ + source: geoJSONSource + }) + ], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); From 9f2ce8f50e6208f6467fc0c9b276b17a69f85e22 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:07:31 +0100 Subject: [PATCH 058/919] Add more FIXMEs --- src/ol/source/vectorsource.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 736d3f7e0a..cf8fe4660c 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -1,6 +1,8 @@ +// FIXME bulk feature upload - suppress events // FIXME put features in an ol.Collection // FIXME make change-detection more refined (notably, geometry hint) // FIXME keep R-Tree up-to-date, probably needs a new R-Tree implementation +// FIXME iterate over R-Treed, needs a new R-Tree implementation goog.provide('ol.source.Vector'); From 633920d0f7c3fb43085a0c8984bf96fe2d00d512 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:23:12 +0100 Subject: [PATCH 059/919] Buffer batch group extent --- .../renderer/canvas/canvasvectorlayerrenderer.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 3ed41c9a4d..b985fff032 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -106,13 +106,22 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = var vectorLayer = this.getVectorLayer(); var vectorSource = vectorLayer.getVectorSource(); + var frameStateExtent = frameState.extent; if (this.renderedResolution_ == frameState.view2DState.resolution && this.renderedRevision_ == vectorSource.getRevision() && - ol.extent.containsExtent(this.renderedExtent_, frameState.extent)) { + ol.extent.containsExtent(this.renderedExtent_, frameStateExtent)) { return; } + var extent = this.renderedExtent_; + var xBuffer = ol.extent.getWidth(frameStateExtent) / 4; + var yBuffer = ol.extent.getHeight(frameStateExtent) / 4; + extent[0] = frameStateExtent[0] - xBuffer; + extent[1] = frameStateExtent[1] - yBuffer; + extent[2] = frameStateExtent[2] + xBuffer; + extent[3] = frameStateExtent[3] + yBuffer; + // FIXME dispose of old batchGroup in post render goog.dispose(this.batchGroup_); this.batchGroup = null; @@ -122,14 +131,13 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = styleFunction = ol.style.DefaultStyleFunction; } var batchGroup = new ol.replay.canvas.BatchGroup(); - vectorSource.forEachFeatureInExtent(frameState.extent, function(feature) { + vectorSource.forEachFeatureInExtent(extent, function(feature) { var style = styleFunction(feature); ol.renderer.vector.renderFeature(batchGroup, feature, style); }, this); this.renderedResolution_ = frameState.view2DState.resolution; this.renderedRevision_ = vectorSource.getRevision(); - this.renderedExtent_ = frameState.extent; if (!batchGroup.isEmpty()) { this.batchGroup_ = batchGroup; } From 9a11cb87aa13337e636277e193cc42653b723ced Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:26:23 +0100 Subject: [PATCH 060/919] Handle vector layer opacity --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index b985fff032..9b655fb299 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -85,6 +85,7 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = -viewCenter[1], 0); + context.globalAlpha = layerState.opacity; batchGroup.draw(context, transform); }; From 1d06cee93d391f41724fba2040bc128ff80575bf Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:43:31 +0100 Subject: [PATCH 061/919] Add ol.style.stroke.equals --- src/ol/style.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/ol/style.js b/src/ol/style.js index d683df5c76..97ed81deb3 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -1,6 +1,7 @@ goog.provide('ol.style.DefaultStyleFunction'); goog.provide('ol.style.Style'); goog.provide('ol.style.StyleFunction'); +goog.provide('ol.style.stroke'); goog.require('goog.functions'); @@ -28,6 +29,18 @@ ol.style.Image; ol.style.Stroke; +/** + * @param {ol.style.Stroke} strokeStyle1 Stroke style 1. + * @param {ol.style.Stroke} strokeStyle2 Stroke style 2. + * @return {boolean} Equals. + */ +ol.style.stroke.equals = function(strokeStyle1, strokeStyle2) { + return strokeStyle1 === strokeStyle2 || ( + strokeStyle1.color == strokeStyle2.color && + strokeStyle1.width == strokeStyle2.width); +}; + + /** * @typedef {{fill: ol.style.Fill, * image: ol.style.Image, From e03953dc61933737c38ab2d98984a91b4379b67a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 15:44:21 +0100 Subject: [PATCH 062/919] Avoid stroke state changes --- src/ol/replay/canvas/canvasbatchgroup.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js index 776cf32000..ede86bbff1 100644 --- a/src/ol/replay/canvas/canvasbatchgroup.js +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -11,6 +11,7 @@ goog.require('goog.object'); goog.require('ol.replay'); goog.require('ol.replay.IBatch'); goog.require('ol.replay.IBatchGroup'); +goog.require('ol.style.stroke'); /** @@ -54,6 +55,12 @@ ol.replay.canvas.Batch = function() { */ this.pixelCoordinates_ = []; + /** + * @private + * @type {?ol.style.Stroke} + */ + this.currentStrokeStyle_ = null; + }; @@ -138,10 +145,14 @@ ol.replay.canvas.Batch.prototype.drawLineStringGeometry = * @inheritDoc */ ol.replay.canvas.Batch.prototype.setStrokeStyle = function(strokeStyle) { - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.SET_STROKE_STYLE, - argument: strokeStyle - }); + if (goog.isNull(this.currentStrokeStyle_) || + !ol.style.stroke.equals(this.currentStrokeStyle_, strokeStyle)) { + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.SET_STROKE_STYLE, + argument: strokeStyle + }); + this.currentStrokeStyle_ = strokeStyle; + } }; From 8ccd733e089cc70b752e87ccb2bcff5bec0483f0 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 16:41:44 +0100 Subject: [PATCH 063/919] Implement ol.replay.canvas.BatchGroup#isEmpty --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 1 + src/ol/replay/canvas/canvasbatchgroup.js | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 9b655fb299..4f02284d59 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -136,6 +136,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = var style = styleFunction(feature); ol.renderer.vector.renderFeature(batchGroup, feature, style); }, this); + batchGroup.finish(); this.renderedResolution_ = frameState.view2DState.resolution; this.renderedRevision_ = vectorSource.getRevision(); diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js index ede86bbff1..d3d3638227 100644 --- a/src/ol/replay/canvas/canvasbatchgroup.js +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -6,7 +6,6 @@ goog.provide('ol.replay.canvas.BatchGroup'); goog.require('goog.array'); goog.require('goog.asserts'); -goog.require('goog.functions'); goog.require('goog.object'); goog.require('ol.replay'); goog.require('ol.replay.IBatch'); @@ -218,7 +217,9 @@ ol.replay.canvas.BatchGroup.prototype.getBatch = function(zIndex, batchType) { /** * @inheritDoc */ -ol.replay.canvas.BatchGroup.prototype.isEmpty = goog.functions.FALSE; // FIXME +ol.replay.canvas.BatchGroup.prototype.isEmpty = function() { + return goog.object.isEmpty(this.batchesByZIndex_); +}; /** From 8e681346244d9e77927483efbe28851cbd76ed80 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 16:42:11 +0100 Subject: [PATCH 064/919] Add ol.replay.IBatchGroup#finish --- src/ol/replay/ibatchgroup.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ol/replay/ibatchgroup.js b/src/ol/replay/ibatchgroup.js index 239474a59e..ca3afa3c4d 100644 --- a/src/ol/replay/ibatchgroup.js +++ b/src/ol/replay/ibatchgroup.js @@ -47,6 +47,13 @@ ol.replay.IBatchGroup = function() { }; +/** + * FIXME empty description for jsdoc + */ +ol.replay.IBatchGroup.prototype.finish = function() { +}; + + /** * @param {number} zIndex Z index. * @param {ol.replay.BatchType} batchType Batch type. From 1adfa158305037a9e513bf3df07069b26e9f7ea6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 16:43:23 +0100 Subject: [PATCH 065/919] Precalculate more instructions --- src/ol/replay/canvas/canvasbatchgroup.js | 138 ++++++++++++++++++----- 1 file changed, 107 insertions(+), 31 deletions(-) diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js index d3d3638227..2ba49cead1 100644 --- a/src/ol/replay/canvas/canvasbatchgroup.js +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -17,11 +17,24 @@ goog.require('ol.style.stroke'); * @enum {number} */ ol.replay.canvas.InstructionType = { - DRAW_LINE_STRING_GEOMETRY: 0, - SET_STROKE_STYLE: 1 + BEGIN_PATH: 0, + CLOSE_PATH: 1, + DRAW_LINE_STRING_GEOMETRY: 2, + FILL: 3, + SET_STROKE_STYLE: 4, + STROKE: 5 }; +/** + * @typedef {{beginPath: boolean, + * fillPending: boolean, + * strokePending: boolean, + * strokeStyle: ?ol.style.Stroke}} + */ +ol.replay.canvas.State; + + /** * @typedef {{argument: ?, * type: ol.replay.canvas.InstructionType}} @@ -56,66 +69,74 @@ ol.replay.canvas.Batch = function() { /** * @private - * @type {?ol.style.Stroke} + * @type {?ol.replay.canvas.State} */ - this.currentStrokeStyle_ = null; + this.state_ = { + beginPath: true, + fillPending: false, + strokePending: false, + strokeStyle: null + }; }; +/** + * @private + */ +ol.replay.canvas.Batch.prototype.beginPath_ = function() { + goog.asserts.assert(!goog.isNull(this.state_)); + if (this.state_.beginPath) { + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.BEGIN_PATH + }); + this.state_.beginPath = false; + } +}; + + /** * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. */ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { + goog.asserts.assert(goog.isNull(this.state_)); var pixelCoordinates = ol.replay.transformCoordinates( this.coordinates_, transform, this.pixelCoordinates_); this.pixelCoordinates_ = pixelCoordinates; // FIXME ? - var begunPath = false; - var fillPending = false; - var strokePending = false; - var flushPath = function() { - if (strokePending || fillPending) { - if (strokePending) { - context.stroke(); - strokePending = false; - } - if (fillPending) { - context.fill(); - fillPending = false; - } - context.beginPath(); - begunPath = true; - } - }; var instructions = this.instructions_; var i = 0; var j, jj; for (j = 0, jj = instructions.length; j < jj; ++j) { var instruction = instructions[j]; if (instruction.type == + ol.replay.canvas.InstructionType.BEGIN_PATH) { + context.beginPath(); + } else if (instruction.type == + ol.replay.canvas.InstructionType.CLOSE_PATH) { + context.closePath(); + } else if (instruction.type == ol.replay.canvas.InstructionType.DRAW_LINE_STRING_GEOMETRY) { - if (!begunPath) { - context.beginPath(); - begunPath = true; - } context.moveTo(pixelCoordinates[i], pixelCoordinates[i + 1]); goog.asserts.assert(goog.isNumber(instruction.argument)); var ii = /** @type {number} */ (instruction.argument); for (i += 2; i < ii; i += 2) { context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]); } - strokePending = true; + } else if (instruction.type == + ol.replay.canvas.InstructionType.FILL) { + context.fill(); } else if (instruction.type == ol.replay.canvas.InstructionType.SET_STROKE_STYLE) { - flushPath(); goog.asserts.assert(goog.isObject(instruction.argument)); var strokeStyle = /** @type {ol.style.Stroke} */ (instruction.argument); context.strokeStyle = strokeStyle.color; context.lineWidth = strokeStyle.width; + } else if (instruction.type == + ol.replay.canvas.InstructionType.STROKE) { + context.stroke(); } } - flushPath(); goog.asserts.assert(i == pixelCoordinates.length); }; @@ -125,6 +146,8 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { */ ol.replay.canvas.Batch.prototype.drawLineStringGeometry = function(lineStringGeometry) { + goog.asserts.assert(!goog.isNull(this.state_)); + this.beginPath_(); var coordinates = this.coordinates_; var lineStringCoordinates = lineStringGeometry.getCoordinates(); var i = coordinates.length; @@ -137,6 +160,41 @@ ol.replay.canvas.Batch.prototype.drawLineStringGeometry = type: ol.replay.canvas.InstructionType.DRAW_LINE_STRING_GEOMETRY, argument: i }); + this.state_.strokePending = true; +}; + + +/** + * FIXME empty description for jsdoc + */ +ol.replay.canvas.Batch.prototype.finish = function() { + goog.asserts.assert(!goog.isNull(this.state_)); + this.flush_(true); + this.state_ = null; +}; + + +/** + * @param {boolean} finish Finish. + * @private + */ +ol.replay.canvas.Batch.prototype.flush_ = function(finish) { + goog.asserts.assert(!goog.isNull(this.state_)); + if (this.state_.fillPending || this.state_.strokePending) { + if (this.state_.fillPending) { + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.FILL + }); + this.state_.fillPending = false; + } + if (this.state_.strokePending) { + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.STROKE + }); + this.state_.strokePending = false; + } + this.state_.beginPath = true; + } }; @@ -144,13 +202,16 @@ ol.replay.canvas.Batch.prototype.drawLineStringGeometry = * @inheritDoc */ ol.replay.canvas.Batch.prototype.setStrokeStyle = function(strokeStyle) { - if (goog.isNull(this.currentStrokeStyle_) || - !ol.style.stroke.equals(this.currentStrokeStyle_, strokeStyle)) { + goog.asserts.assert(!goog.isNull(this.state_)); + // FIXME should only change styles before draws + if (goog.isNull(this.state_.strokeStyle) || + !ol.style.stroke.equals(this.state_.strokeStyle, strokeStyle)) { + this.flush_(false); this.instructions_.push({ type: ol.replay.canvas.InstructionType.SET_STROKE_STYLE, argument: strokeStyle }); - this.currentStrokeStyle_ = strokeStyle; + this.state_.strokeStyle = strokeStyle; } }; @@ -193,6 +254,21 @@ ol.replay.canvas.BatchGroup.prototype.draw = function(context, transform) { }; +/** + * @inheritDoc + */ +ol.replay.canvas.BatchGroup.prototype.finish = function() { + var zKey; + for (zKey in this.batchesByZIndex_) { + var batches = this.batchesByZIndex_[zKey]; + var batchKey; + for (batchKey in batches) { + batches[batchKey].finish(); + } + } +}; + + /** * @inheritDoc */ From 9f1d985b8f5a5a3fb86a008101a6cd0cdfc8d060 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 16:50:15 +0100 Subject: [PATCH 066/919] Export ol.source.Vector --- src/ol/source/vectorsource.exports | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/ol/source/vectorsource.exports diff --git a/src/ol/source/vectorsource.exports b/src/ol/source/vectorsource.exports new file mode 100644 index 0000000000..d7842f5b84 --- /dev/null +++ b/src/ol/source/vectorsource.exports @@ -0,0 +1 @@ +@exportClass ol.source.Vector ol.source.VectorOptions From 12c9a4f5632535c194156a9c1a78d4f13f97ed8d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 16:50:36 +0100 Subject: [PATCH 067/919] Export ol.source.GeoJSON --- src/ol/source/geojsonsource.exports | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/ol/source/geojsonsource.exports diff --git a/src/ol/source/geojsonsource.exports b/src/ol/source/geojsonsource.exports new file mode 100644 index 0000000000..abf4c9f35e --- /dev/null +++ b/src/ol/source/geojsonsource.exports @@ -0,0 +1 @@ +@exportClass ol.source.GeoJSON ol.source.GeoJSONOptions From ea2ba4e7adee1aae50758980c71dcabaf4c90390 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 16:50:48 +0100 Subject: [PATCH 068/919] Export ol.source.Vector --- src/ol/layer/vectorlayer.exports | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/ol/layer/vectorlayer.exports diff --git a/src/ol/layer/vectorlayer.exports b/src/ol/layer/vectorlayer.exports new file mode 100644 index 0000000000..3e32bbc6f4 --- /dev/null +++ b/src/ol/layer/vectorlayer.exports @@ -0,0 +1 @@ +@exportClass ol.layer.Vector ol.layer.VectorOptions From 15583865b62913f4ea78a3a37818236bf5a5930c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 16:55:30 +0100 Subject: [PATCH 069/919] Re-use batches when animating or interacting --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 4f02284d59..063390600b 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -1,6 +1,7 @@ goog.provide('ol.renderer.canvas.VectorLayer'); goog.require('goog.vec.Mat4'); +goog.require('ol.ViewHint'); goog.require('ol.extent'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.vector'); @@ -105,6 +106,11 @@ ol.renderer.canvas.VectorLayer.prototype.getVectorLayer = function() { ol.renderer.canvas.VectorLayer.prototype.prepareFrame = function(frameState, layerState) { + if (frameState.viewHints[ol.ViewHint.ANIMATING] || + frameState.viewHints[ol.ViewHint.INTERACTING]) { + return; + } + var vectorLayer = this.getVectorLayer(); var vectorSource = vectorLayer.getVectorSource(); var frameStateExtent = frameState.extent; From 7e81cbae08431ab9b02890acdc6b6787d9808397 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 19:42:20 +0100 Subject: [PATCH 070/919] Allow comparison of null stroke styles --- src/ol/style.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ol/style.js b/src/ol/style.js index 97ed81deb3..87e1b86e6e 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -30,12 +30,13 @@ ol.style.Stroke; /** - * @param {ol.style.Stroke} strokeStyle1 Stroke style 1. - * @param {ol.style.Stroke} strokeStyle2 Stroke style 2. + * @param {?ol.style.Stroke} strokeStyle1 Stroke style 1. + * @param {?ol.style.Stroke} strokeStyle2 Stroke style 2. * @return {boolean} Equals. */ ol.style.stroke.equals = function(strokeStyle1, strokeStyle2) { return strokeStyle1 === strokeStyle2 || ( + !goog.isNull(strokeStyle1) && !goog.isNull(strokeStyle2) && strokeStyle1.color == strokeStyle2.color && strokeStyle1.width == strokeStyle2.width); }; From 25d6919337736d229d46817e9c78d06f2a37dfdd Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 19:43:02 +0100 Subject: [PATCH 071/919] Add ol.style.fill.equals --- src/ol/style.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/ol/style.js b/src/ol/style.js index 87e1b86e6e..b3d79651e6 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -1,6 +1,7 @@ goog.provide('ol.style.DefaultStyleFunction'); goog.provide('ol.style.Style'); goog.provide('ol.style.StyleFunction'); +goog.provide('ol.style.fill'); goog.provide('ol.style.stroke'); goog.require('goog.functions'); @@ -13,6 +14,19 @@ goog.require('goog.functions'); ol.style.Fill; +/** + * @param {?ol.style.Fill} fillStyle1 Fill style 1. + * @param {?ol.style.Fill} fillStyle2 Fill style 2. + * @return {boolean} Equals. + */ +ol.style.fill.equals = function(fillStyle1, fillStyle2) { + return fillStyle1 === fillStyle2 || ( + !goog.isNull(fillStyle1) && !goog.isNull(fillStyle2) && + fillStyle1.color == fillStyle2.color && + fillStyle1.opacity == fillStyle2.opacity); +}; + + /** * @typedef {{anchor: Array., * image: (HTMLCanvasElement|HTMLVideoElement|Image), From ce296aa1d1d03eb74afa7a691eb29d9a4ee96465 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 19:43:25 +0100 Subject: [PATCH 072/919] Allow styles to be null --- src/ol/style.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/style.js b/src/ol/style.js index b3d79651e6..27756df806 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -57,9 +57,9 @@ ol.style.stroke.equals = function(strokeStyle1, strokeStyle2) { /** - * @typedef {{fill: ol.style.Fill, - * image: ol.style.Image, - * stroke: ol.style.Stroke, + * @typedef {{fill: ?ol.style.Fill, + * image: ?ol.style.Image, + * stroke: ?ol.style.Stroke, * zIndex: number}} */ ol.style.Style; From 256237fee78e9e5e3ad62fa5bd1c093199dccda0 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 19:44:48 +0100 Subject: [PATCH 073/919] Don't draw lines when stroke style is null --- src/ol/renderer/vector.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ol/renderer/vector.js b/src/ol/renderer/vector.js index 81a55f90fb..f8f7b27145 100644 --- a/src/ol/renderer/vector.js +++ b/src/ol/renderer/vector.js @@ -30,6 +30,9 @@ ol.renderer.vector.renderFeature = function(batchGroup, feature, style) { */ ol.renderer.vector.renderLineStringGeometry_ = function(batchGroup, geometry, style) { + if (goog.isNull(style.stroke)) { + return; + } goog.asserts.assert(geometry instanceof ol.geom.LineString); var lineStringGeometry = /** @type {ol.geom.LineString} */ (geometry); window.console.log({batchingLineString: lineStringGeometry}); // FIXME From f175528ac38c61d61acb96508c0d399b64bb65a1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 19:45:10 +0100 Subject: [PATCH 074/919] Change default fill style --- src/ol/style.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ol/style.js b/src/ol/style.js index 27756df806..c420f84bb3 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -1,3 +1,5 @@ +// FIXME decide how to handle fill opacity + goog.provide('ol.style.DefaultStyleFunction'); goog.provide('ol.style.Style'); goog.provide('ol.style.StyleFunction'); @@ -76,7 +78,7 @@ ol.style.StyleFunction; * @type {ol.style.Fill} */ ol.style.DEFAULT_FILL_STYLE = { - color: 'red', + color: 'rgba(255, 0, 0, 0.1)', opacity: 0.1 }; From b2d1b326740505d31f21c98035811aabe6eae9d4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 19:46:00 +0100 Subject: [PATCH 075/919] Factor out appendCoordinates_ --- src/ol/replay/canvas/canvasbatchgroup.js | 36 +++++++++++++++++------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js index 2ba49cead1..3873f5e097 100644 --- a/src/ol/replay/canvas/canvasbatchgroup.js +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -81,6 +81,29 @@ ol.replay.canvas.Batch = function() { }; +/** + * @param {Array.>} coordinates Coordinates. + * @param {boolean} close Close. + * @private + * @return {number} End. + */ +ol.replay.canvas.Batch.prototype.appendCoordinates_ = + function(coordinates, close) { + goog.asserts.assert(!goog.isNull(this.state_)); + var end = this.coordinates_.length; + var i, ii; + for (i = 0, ii = coordinates.length; i < ii; ++i) { + this.coordinates_[end++] = coordinates[i][0]; + this.coordinates_[end++] = coordinates[i][1]; + } + if (close) { + this.coordinates_[end++] = coordinates[0][0]; + this.coordinates_[end++] = coordinates[0][1]; + } + return end; +}; + + /** * @private */ @@ -148,17 +171,10 @@ ol.replay.canvas.Batch.prototype.drawLineStringGeometry = function(lineStringGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); this.beginPath_(); - var coordinates = this.coordinates_; - var lineStringCoordinates = lineStringGeometry.getCoordinates(); - var i = coordinates.length; - var j, jj; - for (j = 0, jj = lineStringCoordinates.length; j < jj; ++j) { - coordinates[i++] = lineStringCoordinates[j][0]; - coordinates[i++] = lineStringCoordinates[j][1]; - } + var end = this.appendCoordinates_(lineStringGeometry.getCoordinates(), false); this.instructions_.push({ - type: ol.replay.canvas.InstructionType.DRAW_LINE_STRING_GEOMETRY, - argument: i + type: ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO, + argument: end }); this.state_.strokePending = true; }; From a823e1f77688c71966daf0d5993e1db2482dba5b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 19:46:44 +0100 Subject: [PATCH 076/919] Add support for polygons to canvas replay --- src/ol/renderer/vector.js | 2 +- src/ol/replay/canvas/canvasbatchgroup.js | 66 +++++++++++++++++++----- src/ol/replay/ibatchgroup.js | 15 ++++-- 3 files changed, 66 insertions(+), 17 deletions(-) diff --git a/src/ol/renderer/vector.js b/src/ol/renderer/vector.js index f8f7b27145..9975b499ec 100644 --- a/src/ol/renderer/vector.js +++ b/src/ol/renderer/vector.js @@ -38,7 +38,7 @@ ol.renderer.vector.renderLineStringGeometry_ = window.console.log({batchingLineString: lineStringGeometry}); // FIXME var batch = batchGroup.getBatch( style.zIndex, ol.replay.BatchType.STROKE_LINE); - batch.setStrokeStyle(style.stroke); + batch.setFillStrokeStyle(null, style.stroke); batch.drawLineStringGeometry(lineStringGeometry); }; diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js index 3873f5e097..f85f317dab 100644 --- a/src/ol/replay/canvas/canvasbatchgroup.js +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -10,6 +10,7 @@ goog.require('goog.object'); goog.require('ol.replay'); goog.require('ol.replay.IBatch'); goog.require('ol.replay.IBatchGroup'); +goog.require('ol.style.fill'); goog.require('ol.style.stroke'); @@ -19,16 +20,18 @@ goog.require('ol.style.stroke'); ol.replay.canvas.InstructionType = { BEGIN_PATH: 0, CLOSE_PATH: 1, - DRAW_LINE_STRING_GEOMETRY: 2, - FILL: 3, - SET_STROKE_STYLE: 4, - STROKE: 5 + FILL: 2, + MOVE_TO_LINE_TO: 3, + SET_FILL_STYLE: 4, + SET_STROKE_STYLE: 5, + STROKE: 6 }; /** * @typedef {{beginPath: boolean, * fillPending: boolean, + * fillStyle: ?ol.style.Fill, * strokePending: boolean, * strokeStyle: ?ol.style.Stroke}} */ @@ -74,6 +77,7 @@ ol.replay.canvas.Batch = function() { this.state_ = { beginPath: true, fillPending: false, + fillStyle: null, strokePending: false, strokeStyle: null }; @@ -139,16 +143,21 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { ol.replay.canvas.InstructionType.CLOSE_PATH) { context.closePath(); } else if (instruction.type == - ol.replay.canvas.InstructionType.DRAW_LINE_STRING_GEOMETRY) { + ol.replay.canvas.InstructionType.FILL) { + context.fill(); + } else if (instruction.type == + ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO) { context.moveTo(pixelCoordinates[i], pixelCoordinates[i + 1]); goog.asserts.assert(goog.isNumber(instruction.argument)); - var ii = /** @type {number} */ (instruction.argument); - for (i += 2; i < ii; i += 2) { + var end = /** @type {number} */ (instruction.argument); + for (i += 2; i < end; i += 2) { context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]); } } else if (instruction.type == - ol.replay.canvas.InstructionType.FILL) { - context.fill(); + ol.replay.canvas.InstructionType.SET_FILL_STYLE) { + goog.asserts.assert(goog.isObject(instruction.argument)); + var fillStyle = /** @type {ol.style.Fill} */ (instruction.argument); + context.fillStyle = fillStyle.color; } else if (instruction.type == ol.replay.canvas.InstructionType.SET_STROKE_STYLE) { goog.asserts.assert(goog.isObject(instruction.argument)); @@ -180,6 +189,26 @@ ol.replay.canvas.Batch.prototype.drawLineStringGeometry = }; +/** + * @inheritDoc + */ +ol.replay.canvas.Batch.prototype.drawPolygonGeometry = + function(polygonGeometry) { + goog.asserts.assert(!goog.isNull(this.state_)); + var rings = polygonGeometry.getRings(); + var i, ii; + for (i = 0, ii = rings.length; i < ii; ++i) { + this.beginPath_(); + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO, + argument: this.appendCoordinates_(rings[i], true) + }); + } + this.state_.fillPending = true; + this.state_.strokePending = true; +}; + + /** * FIXME empty description for jsdoc */ @@ -217,11 +246,19 @@ ol.replay.canvas.Batch.prototype.flush_ = function(finish) { /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.setStrokeStyle = function(strokeStyle) { +ol.replay.canvas.Batch.prototype.setFillStrokeStyle = + function(fillStyle, strokeStyle) { goog.asserts.assert(!goog.isNull(this.state_)); // FIXME should only change styles before draws - if (goog.isNull(this.state_.strokeStyle) || - !ol.style.stroke.equals(this.state_.strokeStyle, strokeStyle)) { + if (!ol.style.fill.equals(this.state_.fillStyle, fillStyle)) { + this.flush_(false); + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.SET_FILL_STYLE, + argument: fillStyle + }); + this.state_.fillStyle = fillStyle; + } + if (!ol.style.stroke.equals(this.state_.strokeStyle, strokeStyle)) { this.flush_(false); this.instructions_.push({ type: ol.replay.canvas.InstructionType.SET_STROKE_STYLE, @@ -320,5 +357,8 @@ ol.replay.canvas.BatchGroup.prototype.isEmpty = function() { * @type {Object.} */ ol.replay.canvas.BATCH_CONSTRUCTORS_ = { - 'strokeLine': ol.replay.canvas.Batch + 'fillRing': ol.replay.canvas.Batch, + 'fillStrokeRing': ol.replay.canvas.Batch, + 'strokeLine': ol.replay.canvas.Batch, + 'strokeRing': ol.replay.canvas.Batch }; diff --git a/src/ol/replay/ibatchgroup.js b/src/ol/replay/ibatchgroup.js index ca3afa3c4d..4113086188 100644 --- a/src/ol/replay/ibatchgroup.js +++ b/src/ol/replay/ibatchgroup.js @@ -9,9 +9,9 @@ goog.require('goog.functions'); */ ol.replay.BatchType = { FILL_RING: 'fillRing', + FILL_STROKE_RING: 'fillStrokeRing', POINT: 'point', STROKE_LINE: 'strokeLine', - STROKE_FILL_RING: 'strokeFillRing', STROKE_RING: 'strokeRing' }; @@ -33,9 +33,18 @@ ol.replay.IBatch.prototype.drawLineStringGeometry = /** - * @param {ol.style.Stroke} strokeStyle Stroke style. + * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. */ -ol.replay.IBatch.prototype.setStrokeStyle = function(strokeStyle) { +ol.replay.IBatch.prototype.drawPolygonGeometry = function(polygonGeometry) { +}; + + +/** + * @param {?ol.style.Fill} fillStyle Fill style. + * @param {?ol.style.Stroke} strokeStyle Stroke style. + */ +ol.replay.IBatch.prototype.setFillStrokeStyle = + function(fillStyle, strokeStyle) { }; From e14c46946ef49edec118e0db7dadae45331ced8c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 19:47:28 +0100 Subject: [PATCH 077/919] Render polygon geometries --- src/ol/renderer/vector.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/ol/renderer/vector.js b/src/ol/renderer/vector.js index 9975b499ec..7fe7d97652 100644 --- a/src/ol/renderer/vector.js +++ b/src/ol/renderer/vector.js @@ -65,9 +65,26 @@ ol.renderer.vector.renderPointGeometry_ = */ ol.renderer.vector.renderPolygonGeometry_ = function(batchGroup, geometry, style) { + var batchType; + if (goog.isNull(style.fill)) { + if (goog.isNull(style.stroke)) { + return; + } else { + batchType = ol.replay.BatchType.STROKE_RING; + } + } else { + if (goog.isNull(style.stroke)) { + batchType = ol.replay.BatchType.FILL_RING; + } else { + batchType = ol.replay.BatchType.FILL_STROKE_RING; + } + } goog.asserts.assert(geometry instanceof ol.geom.Polygon); var polygonGeometry = /** @type {ol.geom.Polygon} */ (geometry); window.console.log({batchingPolygon: polygonGeometry}); // FIXME + var batch = batchGroup.getBatch(style.zIndex, batchType); + batch.setFillStrokeStyle(style.fill, style.stroke); + batch.drawPolygonGeometry(polygonGeometry); }; From b83a547192669001e9c955d1ef74add42410af77 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 19:47:53 +0100 Subject: [PATCH 078/919] Add polygon to GeoJSON demo --- examples/geojson.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/examples/geojson.js b/examples/geojson.js index 7e4cc090a5..9567b33ab8 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -31,6 +31,13 @@ var geoJSONSource = new ol.source.GeoJSON( 'type': 'LineString', 'coordinates': [[-1e7, 1e7], [1e7, -1e7]] } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'Polygon', + 'coordinates': [[[-5e6, -5e6], [0, 5e6], [5e6, -5e6]]] + } } ] } From de247d7130ce6359b5834c4827754e8a9258f69f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 7 Nov 2013 19:55:13 +0100 Subject: [PATCH 079/919] Remove logging code --- src/ol/renderer/vector.js | 4 +--- src/ol/replay/canvas/canvasbatchgroup.js | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ol/renderer/vector.js b/src/ol/renderer/vector.js index 7fe7d97652..42a7c256c5 100644 --- a/src/ol/renderer/vector.js +++ b/src/ol/renderer/vector.js @@ -35,7 +35,6 @@ ol.renderer.vector.renderLineStringGeometry_ = } goog.asserts.assert(geometry instanceof ol.geom.LineString); var lineStringGeometry = /** @type {ol.geom.LineString} */ (geometry); - window.console.log({batchingLineString: lineStringGeometry}); // FIXME var batch = batchGroup.getBatch( style.zIndex, ol.replay.BatchType.STROKE_LINE); batch.setFillStrokeStyle(null, style.stroke); @@ -53,7 +52,7 @@ ol.renderer.vector.renderPointGeometry_ = function(batchGroup, geometry, style) { goog.asserts.assert(geometry instanceof ol.geom.Point); var pointGeometry = /** @type {ol.geom.Point} */ (geometry); - window.console.log({batchingPoint: pointGeometry}); // FIXME + pointGeometry = pointGeometry; // FIXME }; @@ -81,7 +80,6 @@ ol.renderer.vector.renderPolygonGeometry_ = } goog.asserts.assert(geometry instanceof ol.geom.Polygon); var polygonGeometry = /** @type {ol.geom.Polygon} */ (geometry); - window.console.log({batchingPolygon: polygonGeometry}); // FIXME var batch = batchGroup.getBatch(style.zIndex, batchType); batch.setFillStrokeStyle(style.fill, style.stroke); batch.drawPolygonGeometry(polygonGeometry); diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js index f85f317dab..b9b23069b7 100644 --- a/src/ol/replay/canvas/canvasbatchgroup.js +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -291,7 +291,6 @@ ol.replay.canvas.BatchGroup = function() { * @param {goog.vec.Mat4.AnyType} transform Transform. */ ol.replay.canvas.BatchGroup.prototype.draw = function(context, transform) { - window.console.log('drawing batch'); /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.batchesByZIndex_), Number); goog.array.sort(zs); From c658460c09cdf11229bc7fc89f91988769e8f088 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 03:03:04 +0100 Subject: [PATCH 080/919] Add ol.geom.MultiLineString --- src/ol/geom/geometry.js | 4 +- src/ol/geom/multilinestring.js | 67 ++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 src/ol/geom/multilinestring.js diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index ad3ef65128..a497ea6680 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -1,5 +1,4 @@ // FIXME add MultiPoint -// FIXME add MultiLineString // FIXME add MultiPolygon // FIXME add GeometryCollection // FIXME add Z and M support @@ -17,7 +16,8 @@ goog.require('goog.events.EventType'); ol.geom.GeometryType = { POINT: 'Point', LINE_STRING: 'LineString', - POLYGON: 'Polygon' + POLYGON: 'Polygon', + MULTI_LINE_STRING: 'MultiLineString' }; diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js new file mode 100644 index 0000000000..85370911bb --- /dev/null +++ b/src/ol/geom/multilinestring.js @@ -0,0 +1,67 @@ +goog.provide('ol.geom.MultiLineString'); + +goog.require('goog.asserts'); +goog.require('ol.extent'); +goog.require('ol.geom.Geometry'); + + + +/** + * @constructor + * @extends {ol.geom.Geometry} + * @param {Array.>} coordinatess Coordinatess. + */ +ol.geom.MultiLineString = function(coordinatess) { + + goog.base(this); + + /** + * @private + * @type {Array.>} + */ + this.coordinatess_ = coordinatess; + +}; +goog.inherits(ol.geom.MultiLineString, ol.geom.Geometry); + + +/** + * @return {Array.>} Coordinatess. + */ +ol.geom.MultiLineString.prototype.getCoordinatess = function() { + return this.coordinatess_; +}; + + +/** + * @inheritDoc + */ +ol.geom.MultiLineString.prototype.getExtent = function(opt_extent) { + if (this.extentRevision != this.revision) { + this.extent = ol.extent.createOrUpdateEmpty(this.extent); + var coordinatess = this.coordinatess_; + var i, ii; + for (i = 0, ii = coordinatess.length; i < ii; ++i) { + this.extent = ol.extent.extendCoordinates(this.extent, coordinatess[i]); + } + this.extentRevision = this.revision; + } + goog.asserts.assert(goog.isDef(this.extent)); + return ol.extent.returnOrUpdate(this.extent, opt_extent); +}; + + +/** + * @inheritDoc + */ +ol.geom.MultiLineString.prototype.getType = function() { + return ol.geom.GeometryType.MULTI_LINE_STRING; +}; + + +/** + * @param {Array.>} coordinatess Coordinatess. + */ +ol.geom.MultiLineString.prototype.setCoordinatess = function(coordinatess) { + this.coordinatess_ = coordinatess; +}; From 91c448d63def43a9520f4f12591a4dfc4ea8c0bf Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 03:03:43 +0100 Subject: [PATCH 081/919] Allow z index to be undefined --- src/ol/replay/canvas/canvasbatchgroup.js | 2 +- src/ol/replay/ibatchgroup.js | 2 +- src/ol/style.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js index b9b23069b7..68afd68682 100644 --- a/src/ol/replay/canvas/canvasbatchgroup.js +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -325,7 +325,7 @@ ol.replay.canvas.BatchGroup.prototype.finish = function() { * @inheritDoc */ ol.replay.canvas.BatchGroup.prototype.getBatch = function(zIndex, batchType) { - var zIndexKey = zIndex.toString(); + var zIndexKey = goog.isDef(zIndex) ? zIndex.toString() : '0'; var batches = this.batchesByZIndex_[zIndexKey]; if (!goog.isDef(batches)) { batches = {}; diff --git a/src/ol/replay/ibatchgroup.js b/src/ol/replay/ibatchgroup.js index 4113086188..c0339bf2e6 100644 --- a/src/ol/replay/ibatchgroup.js +++ b/src/ol/replay/ibatchgroup.js @@ -64,7 +64,7 @@ ol.replay.IBatchGroup.prototype.finish = function() { /** - * @param {number} zIndex Z index. + * @param {number|undefined} zIndex Z index. * @param {ol.replay.BatchType} batchType Batch type. * @return {ol.replay.IBatch} Batch. */ diff --git a/src/ol/style.js b/src/ol/style.js index c420f84bb3..78166b1727 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -62,7 +62,7 @@ ol.style.stroke.equals = function(strokeStyle1, strokeStyle2) { * @typedef {{fill: ?ol.style.Fill, * image: ?ol.style.Image, * stroke: ?ol.style.Stroke, - * zIndex: number}} + * zIndex: (number|undefined)}} */ ol.style.Style; From 7594f05c5794e4743281c740da64deec86b2cfc7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 03:05:38 +0100 Subject: [PATCH 082/919] Add MultiLineString drawing to batch --- src/ol/replay/canvas/canvasbatchgroup.js | 20 ++++++++++++++++++++ src/ol/replay/ibatchgroup.js | 9 +++++++++ 2 files changed, 29 insertions(+) diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js index 68afd68682..5e6f234c86 100644 --- a/src/ol/replay/canvas/canvasbatchgroup.js +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -189,6 +189,26 @@ ol.replay.canvas.Batch.prototype.drawLineStringGeometry = }; +/** + * @inheritDoc + */ +ol.replay.canvas.Batch.prototype.drawMultiLineStringGeometry = + function(multiLineStringGeometry) { + goog.asserts.assert(!goog.isNull(this.state_)); + var coordinatess = multiLineStringGeometry.getCoordinatess(); + var i, ii; + for (i = 0, ii = coordinatess.length; i < ii; ++i) { + this.beginPath_(); + var end = this.appendCoordinates_(coordinatess[i], false); + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO, + argument: end + }); + } + this.state_.strokePending = true; +}; + + /** * @inheritDoc */ diff --git a/src/ol/replay/ibatchgroup.js b/src/ol/replay/ibatchgroup.js index c0339bf2e6..11a5ed0fc4 100644 --- a/src/ol/replay/ibatchgroup.js +++ b/src/ol/replay/ibatchgroup.js @@ -32,6 +32,15 @@ ol.replay.IBatch.prototype.drawLineStringGeometry = }; +/** + * @param {ol.geom.MultiLineString} multiLineStringGeometry + * Multi line string geometry. + */ +ol.replay.IBatch.prototype.drawMultiLineStringGeometry = + function(multiLineStringGeometry) { +}; + + /** * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. */ From 4d02ecf1e8dd540074fd3c66aac0501eb6b0fecc Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 03:07:56 +0100 Subject: [PATCH 083/919] Add MultiLineString rendering --- src/ol/renderer/vector.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/vector.js b/src/ol/renderer/vector.js index 42a7c256c5..41e8fb2d98 100644 --- a/src/ol/renderer/vector.js +++ b/src/ol/renderer/vector.js @@ -2,6 +2,7 @@ goog.provide('ol.renderer.vector'); goog.require('goog.asserts'); goog.require('ol.geom.LineString'); +goog.require('ol.geom.MultiLineString'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); goog.require('ol.replay.IBatchGroup'); @@ -42,6 +43,27 @@ ol.renderer.vector.renderLineStringGeometry_ = }; +/** + * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.geom.Geometry} geometry Geometry. + * @param {ol.style.Style} style Style. + * @private + */ +ol.renderer.vector.renderMultiLineStringGeometry_ = + function(batchGroup, geometry, style) { + if (goog.isNull(style.stroke)) { + return; + } + goog.asserts.assert(geometry instanceof ol.geom.MultiLineString); + var multiLineStringGeometry = /** @type {ol.geom.MultiLineString} */ + (geometry); + var batch = batchGroup.getBatch( + style.zIndex, ol.replay.BatchType.STROKE_LINE); + batch.setFillStrokeStyle(null, style.stroke); + batch.drawMultiLineStringGeometry(multiLineStringGeometry); +}; + + /** * @param {ol.replay.IBatchGroup} batchGroup Batch group. * @param {ol.geom.Geometry} geometry Geometry. @@ -96,5 +118,6 @@ ol.renderer.vector.renderPolygonGeometry_ = ol.renderer.vector.GEOMETRY_RENDERERS_ = { 'Point': ol.renderer.vector.renderPointGeometry_, 'LineString': ol.renderer.vector.renderLineStringGeometry_, - 'Polygon': ol.renderer.vector.renderPolygonGeometry_ + 'Polygon': ol.renderer.vector.renderPolygonGeometry_, + 'MultiLineString': ol.renderer.vector.renderMultiLineStringGeometry_ }; From 53963b0f6b5bcaab47c11ccb9ac3f34ffabeb560 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 03:08:39 +0100 Subject: [PATCH 084/919] Add MultiLineString GeoJSON reading --- src/ol/reader/geojson/geojson.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ol/reader/geojson/geojson.js b/src/ol/reader/geojson/geojson.js index 0bfe22a3ad..8eebad661d 100644 --- a/src/ol/reader/geojson/geojson.js +++ b/src/ol/reader/geojson/geojson.js @@ -8,6 +8,7 @@ goog.require('goog.asserts'); goog.require('goog.json'); goog.require('ol.Feature'); goog.require('ol.geom.LineString'); +goog.require('ol.geom.MultiLineString'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); @@ -42,6 +43,17 @@ ol.reader.GeoJSON.readLineStringGeometry_ = function(geometry) { }; +/** + * @param {GeoJSONGeometry} geometry Geometry. + * @private + * @return {ol.geom.MultiLineString} MultiLineString. + */ +ol.reader.GeoJSON.readMultiLineStringGeometry_ = function(geometry) { + goog.asserts.assert(geometry.type == 'MultiLineString'); + return new ol.geom.MultiLineString(geometry.coordinates); +}; + + /** * @param {GeoJSONGeometry} geometry Geometry. * @private @@ -135,7 +147,8 @@ ol.reader.GeoJSON.readString = function(string, callback, opt_obj) { ol.reader.GeoJSON.GEOMETRY_READERS_ = { 'Point': ol.reader.GeoJSON.readPointGeometry_, 'LineString': ol.reader.GeoJSON.readLineStringGeometry_, - 'Polygon': ol.reader.GeoJSON.readPolygonGeometry_ + 'Polygon': ol.reader.GeoJSON.readPolygonGeometry_, + 'MultiLineString': ol.reader.GeoJSON.readMultiLineStringGeometry_ }; From 781593ea90a29adf3aa7f3f2ecf3207dd4c4d692 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 03:10:07 +0100 Subject: [PATCH 085/919] Add MultiLineString to GeoJSON demo --- examples/geojson.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/examples/geojson.js b/examples/geojson.js index 9567b33ab8..5af1eb82d4 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -38,6 +38,18 @@ var geoJSONSource = new ol.source.GeoJSON( 'type': 'Polygon', 'coordinates': [[[-5e6, -5e6], [0, 5e6], [5e6, -5e6]]] } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'MultiLineString', + 'coordinates': [ + [[-1e6, -7.5e5], [-1e6, 7.5e5]], + [[1e6, -7.5e5], [1e6, 7.5e5]], + [[-7.5e5, -1e6], [7.5e5, -1e6]], + [[-7.5e5, 1e6], [7.5e5, 1e6]] + ] + } } ] } From 176a438a05be285aa6913aa3d4b6e8086827bfe5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 03:10:32 +0100 Subject: [PATCH 086/919] Add style function to GeoJSON demo --- examples/geojson.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/examples/geojson.js b/examples/geojson.js index 5af1eb82d4..22f3b5758b 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -5,6 +5,22 @@ goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.source.GeoJSON'); goog.require('ol.source.OSM'); +goog.require('ol.style.DefaultStyleFunction'); + + +var styleFunction = function(feature) { + switch (feature.getGeometry().getType()) { + case ol.geom.GeometryType.MULTI_LINE_STRING: + return { + stroke: { + color: 'green', + width: 1 + } + }; + default: + return ol.style.DefaultStyleFunction(feature); + } +}; var geoJSONSource = new ol.source.GeoJSON( /** @type {ol.source.GeoJSONOptions} */ ({ @@ -61,7 +77,8 @@ var map = new ol.Map({ source: new ol.source.OSM() }), new ol.layer.Vector({ - source: geoJSONSource + source: geoJSONSource, + styleFunction: styleFunction }) ], renderer: ol.RendererHint.CANVAS, From 7a6090df65ca9840c44e79db26c7671a89b72e75 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 16:01:42 +0100 Subject: [PATCH 087/919] Correct closing of polygons --- src/ol/replay/canvas/canvasbatchgroup.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js index 5e6f234c86..bb50b01e8a 100644 --- a/src/ol/replay/canvas/canvasbatchgroup.js +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -223,6 +223,9 @@ ol.replay.canvas.Batch.prototype.drawPolygonGeometry = type: ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO, argument: this.appendCoordinates_(rings[i], true) }); + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.CLOSE_PATH + }); } this.state_.fillPending = true; this.state_.strokePending = true; From cb099cb4531a7fabf582446083b26b4576822af6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 16:35:10 +0100 Subject: [PATCH 088/919] Add ol.geom.MultiPolygon --- src/ol/geom/geometry.js | 4 +-- src/ol/geom/multipolygon.js | 67 +++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 src/ol/geom/multipolygon.js diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index a497ea6680..e3e534e76c 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -1,5 +1,4 @@ // FIXME add MultiPoint -// FIXME add MultiPolygon // FIXME add GeometryCollection // FIXME add Z and M support // FIXME use flat coordinate arrays @@ -17,7 +16,8 @@ ol.geom.GeometryType = { POINT: 'Point', LINE_STRING: 'LineString', POLYGON: 'Polygon', - MULTI_LINE_STRING: 'MultiLineString' + MULTI_LINE_STRING: 'MultiLineString', + MULTI_POLYGON: 'MultiPolygon' }; diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js new file mode 100644 index 0000000000..5d0b6dca13 --- /dev/null +++ b/src/ol/geom/multipolygon.js @@ -0,0 +1,67 @@ +goog.provide('ol.geom.MultiPolygon'); + +goog.require('goog.asserts'); +goog.require('ol.extent'); +goog.require('ol.geom.Geometry'); + + + +/** + * @constructor + * @extends {ol.geom.Geometry} + * @param {Array.>>} ringss Ringss. + */ +ol.geom.MultiPolygon = function(ringss) { + + goog.base(this); + + /** + * @private + * @type {Array.>>} + */ + this.ringss_ = ringss; + +}; +goog.inherits(ol.geom.MultiPolygon, ol.geom.Geometry); + + +/** + * @inheritDoc + */ +ol.geom.MultiPolygon.prototype.getExtent = function(opt_extent) { + if (this.extentRevision != this.revision) { + this.extent = ol.extent.createOrUpdateEmpty(this.extent); + var ringss = this.ringss_; + var i, ii; + for (i = 0, ii = ringss.length; i < ii; ++i) { + ol.extent.extendRings(this.extent, ringss[i]); + } + } + goog.asserts.assert(goog.isDef(this.extent)); + return ol.extent.returnOrUpdate(this.extent, opt_extent); +}; + + +/** + * @return {Array.>>} Ringss. + */ +ol.geom.MultiPolygon.prototype.getRingss = function() { + return this.ringss_; +}; + + +/** + * @inheritDoc + */ +ol.geom.MultiPolygon.prototype.getType = function() { + return ol.geom.GeometryType.MULTI_POLYGON; +}; + + +/** + * @param {Array.>>} ringss Ringss. + */ +ol.geom.MultiPolygon.prototype.setRingss = function(ringss) { + this.ringss_ = ringss; + this.dispatchChangeEvent(); +}; From f0a27ceaf0afa1f960387938433216760c0eeccb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 16:36:50 +0100 Subject: [PATCH 089/919] Add MultiPolygon drawing to batch --- src/ol/replay/canvas/canvasbatchgroup.js | 27 ++++++++++++++++++++++++ src/ol/replay/ibatchgroup.js | 8 +++++++ 2 files changed, 35 insertions(+) diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasbatchgroup.js index bb50b01e8a..dccee8b341 100644 --- a/src/ol/replay/canvas/canvasbatchgroup.js +++ b/src/ol/replay/canvas/canvasbatchgroup.js @@ -209,6 +209,33 @@ ol.replay.canvas.Batch.prototype.drawMultiLineStringGeometry = }; +/** + * @inheritDoc + */ +ol.replay.canvas.Batch.prototype.drawMultiPolygonGeometry = + function(multiPolygonGeometry) { + goog.asserts.assert(!goog.isNull(this.state_)); + var ringss = multiPolygonGeometry.getRingss(); + var i, ii; + for (i = 0, ii = ringss.length; i < ii; ++i) { + var rings = ringss[i]; + var j, jj; + for (j = 0, jj = rings.length; j < jj; ++j) { + this.beginPath_(); + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO, + argument: this.appendCoordinates_(rings[j], true) + }); + this.instructions_.push({ + type: ol.replay.canvas.InstructionType.CLOSE_PATH + }); + } + } + this.state_.fillPending = true; + this.state_.strokePending = true; +}; + + /** * @inheritDoc */ diff --git a/src/ol/replay/ibatchgroup.js b/src/ol/replay/ibatchgroup.js index 11a5ed0fc4..0b591a0ffe 100644 --- a/src/ol/replay/ibatchgroup.js +++ b/src/ol/replay/ibatchgroup.js @@ -41,6 +41,14 @@ ol.replay.IBatch.prototype.drawMultiLineStringGeometry = }; +/** + * @param {ol.geom.MultiPolygon} multiPolygonGeometry Multi polygon geometry. + */ +ol.replay.IBatch.prototype.drawMultiPolygonGeometry = + function(multiPolygonGeometry) { +}; + + /** * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. */ From d3952297dbc4c4ec9ab99aecdfd90818305efb14 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 16:37:41 +0100 Subject: [PATCH 090/919] Render MultiPolygons --- src/ol/renderer/vector.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/vector.js b/src/ol/renderer/vector.js index 41e8fb2d98..3f1c17d350 100644 --- a/src/ol/renderer/vector.js +++ b/src/ol/renderer/vector.js @@ -3,6 +3,7 @@ goog.provide('ol.renderer.vector'); goog.require('goog.asserts'); goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString'); +goog.require('ol.geom.MultiPolygon'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); goog.require('ol.replay.IBatchGroup'); @@ -64,6 +65,27 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = }; +/** + * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.geom.Geometry} geometry Geometry. + * @param {ol.style.Style} style Style. + * @private + */ +ol.renderer.vector.renderMultiPolygonGeometry_ = + function(batchGroup, geometry, style) { + if (goog.isNull(style.stroke) && goog.isNull(style.fill)) { + return; + } + goog.asserts.assert(geometry instanceof ol.geom.MultiPolygon); + var multiPolygonGeometry = /** @type {ol.geom.MultiPolygon} */ + (geometry); + var batch = batchGroup.getBatch( + style.zIndex, ol.replay.BatchType.STROKE_LINE); + batch.setFillStrokeStyle(null, style.stroke); + batch.drawMultiPolygonGeometry(multiPolygonGeometry); +}; + + /** * @param {ol.replay.IBatchGroup} batchGroup Batch group. * @param {ol.geom.Geometry} geometry Geometry. @@ -119,5 +141,6 @@ ol.renderer.vector.GEOMETRY_RENDERERS_ = { 'Point': ol.renderer.vector.renderPointGeometry_, 'LineString': ol.renderer.vector.renderLineStringGeometry_, 'Polygon': ol.renderer.vector.renderPolygonGeometry_, - 'MultiLineString': ol.renderer.vector.renderMultiLineStringGeometry_ + 'MultiLineString': ol.renderer.vector.renderMultiLineStringGeometry_, + 'MultiPolygon': ol.renderer.vector.renderMultiPolygonGeometry_ }; From 53d1171d1404c32a7e303d97efcfb6ca4e793b6c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 16:38:02 +0100 Subject: [PATCH 091/919] Add MultiPolygon reading to ol.reader.GeoJSON --- src/ol/reader/geojson/geojson.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ol/reader/geojson/geojson.js b/src/ol/reader/geojson/geojson.js index 8eebad661d..8664aa9bc6 100644 --- a/src/ol/reader/geojson/geojson.js +++ b/src/ol/reader/geojson/geojson.js @@ -9,6 +9,7 @@ goog.require('goog.json'); goog.require('ol.Feature'); goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString'); +goog.require('ol.geom.MultiPolygon'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); @@ -54,6 +55,17 @@ ol.reader.GeoJSON.readMultiLineStringGeometry_ = function(geometry) { }; +/** + * @param {GeoJSONGeometry} geometry Geometry. + * @private + * @return {ol.geom.MultiPolygon} MultiPolygon. + */ +ol.reader.GeoJSON.readMultiPolygonGeometry_ = function(geometry) { + goog.asserts.assert(geometry.type == 'MultiPolygon'); + return new ol.geom.MultiPolygon(geometry.coordinates); +}; + + /** * @param {GeoJSONGeometry} geometry Geometry. * @private @@ -148,7 +160,8 @@ ol.reader.GeoJSON.GEOMETRY_READERS_ = { 'Point': ol.reader.GeoJSON.readPointGeometry_, 'LineString': ol.reader.GeoJSON.readLineStringGeometry_, 'Polygon': ol.reader.GeoJSON.readPolygonGeometry_, - 'MultiLineString': ol.reader.GeoJSON.readMultiLineStringGeometry_ + 'MultiLineString': ol.reader.GeoJSON.readMultiLineStringGeometry_, + 'MultiPolygon': ol.reader.GeoJSON.readMultiPolygonGeometry_ }; From 311ee5222d9ebc5eb2190c37445a011299423fee Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 16:38:22 +0100 Subject: [PATCH 092/919] Add MultiPolygon to GeoJSON example --- examples/geojson.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/examples/geojson.js b/examples/geojson.js index 22f3b5758b..576ceabe35 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -17,6 +17,13 @@ var styleFunction = function(feature) { width: 1 } }; + case ol.geom.GeometryType.MULTI_POLYGON: + return { + stroke: { + color: 'yellow', + width: 1 + } + }; default: return ol.style.DefaultStyleFunction(feature); } @@ -66,6 +73,17 @@ var geoJSONSource = new ol.source.GeoJSON( [[-7.5e5, 1e6], [7.5e5, 1e6]] ] } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + [[[-5e6, 6e6], [-5e6, 8e6], [-3e6, 8e6], [-3e6, 6e6]]], + [[[-2e6, 6e6], [-2e6, 8e6], [0e6, 8e6], [0e6, 6e6]]], + [[[1e6, 6e6], [1e6, 8e6], [3e6, 8e6], [3e6, 6e6]]] + ] + } } ] } From 5f7f388714f332e722350530425fc77be6ab5cae Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 16:53:22 +0100 Subject: [PATCH 093/919] Add ol.reader.readAllFromObject --- src/ol/reader/reader.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/ol/reader/reader.js diff --git a/src/ol/reader/reader.js b/src/ol/reader/reader.js new file mode 100644 index 0000000000..94c9b0cfa2 --- /dev/null +++ b/src/ol/reader/reader.js @@ -0,0 +1,17 @@ +goog.provide('ol.reader'); + + +/** + * @param {function(Object, function(this: S, ol.Feature): T, S=)} reader + * Reader. + * @param {Object} object Object. + * @return {Array.} + * @template S,T + */ +ol.reader.readAllFromObject = function(reader, object) { + var features = []; + reader(object, function(feature) { + features.push(feature); + }); + return features; +}; From 430949046f01038b05502c11f22c1ef9c0d80f70 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 16:55:51 +0100 Subject: [PATCH 094/919] Use reader in GeoJSON example, instead of source --- examples/geojson.js | 119 ++++++++++++++++++++++---------------------- 1 file changed, 60 insertions(+), 59 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 576ceabe35..b9fce0dce9 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -3,8 +3,10 @@ goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); -goog.require('ol.source.GeoJSON'); +goog.require('ol.reader'); +goog.require('ol.reader.GeoJSON'); goog.require('ol.source.OSM'); +goog.require('ol.source.Vector'); goog.require('ol.style.DefaultStyleFunction'); @@ -29,65 +31,62 @@ var styleFunction = function(feature) { } }; -var geoJSONSource = new ol.source.GeoJSON( - /** @type {ol.source.GeoJSONOptions} */ ({ - geoJSON: { - 'type': 'FeatureCollection', - features: [ - { - 'type': 'Feature', - 'geometry': { - 'type': 'Point', - 'coordinates': [0, 0] - } - }, - { - 'type': 'Feature', - 'geometry': { - 'type': 'LineString', - 'coordinates': [[-1e7, -1e7], [1e7, 1e7]] - } - }, - { - 'type': 'Feature', - 'geometry': { - 'type': 'LineString', - 'coordinates': [[-1e7, 1e7], [1e7, -1e7]] - } - }, - { - 'type': 'Feature', - 'geometry': { - 'type': 'Polygon', - 'coordinates': [[[-5e6, -5e6], [0, 5e6], [5e6, -5e6]]] - } - }, - { - 'type': 'Feature', - 'geometry': { - 'type': 'MultiLineString', - 'coordinates': [ - [[-1e6, -7.5e5], [-1e6, 7.5e5]], - [[1e6, -7.5e5], [1e6, 7.5e5]], - [[-7.5e5, -1e6], [7.5e5, -1e6]], - [[-7.5e5, 1e6], [7.5e5, 1e6]] - ] - } - }, - { - 'type': 'Feature', - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - [[[-5e6, 6e6], [-5e6, 8e6], [-3e6, 8e6], [-3e6, 6e6]]], - [[[-2e6, 6e6], [-2e6, 8e6], [0e6, 8e6], [0e6, 6e6]]], - [[[1e6, 6e6], [1e6, 8e6], [3e6, 8e6], [3e6, 6e6]]] - ] - } - } +var features = ol.reader.readAllFromObject(ol.reader.GeoJSON.readObject, { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [0, 0] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'LineString', + 'coordinates': [[-1e7, -1e7], [1e7, 1e7]] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'LineString', + 'coordinates': [[-1e7, 1e7], [1e7, -1e7]] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'Polygon', + 'coordinates': [[[-5e6, -5e6], [0, 5e6], [5e6, -5e6]]] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'MultiLineString', + 'coordinates': [ + [[-1e6, -7.5e5], [-1e6, 7.5e5]], + [[1e6, -7.5e5], [1e6, 7.5e5]], + [[-7.5e5, -1e6], [7.5e5, -1e6]], + [[-7.5e5, 1e6], [7.5e5, 1e6]] ] } - })); + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + [[[-5e6, 6e6], [-5e6, 8e6], [-3e6, 8e6], [-3e6, 6e6]]], + [[[-2e6, 6e6], [-2e6, 8e6], [0e6, 8e6], [0e6, 6e6]]], + [[[1e6, 6e6], [1e6, 8e6], [3e6, 8e6], [3e6, 6e6]]] + ] + } + } + ] +}); var map = new ol.Map({ layers: [ @@ -95,7 +94,9 @@ var map = new ol.Map({ source: new ol.source.OSM() }), new ol.layer.Vector({ - source: geoJSONSource, + source: new ol.source.Vector({ + features: features + }), styleFunction: styleFunction }) ], From 14fb455e1c31e332d7094bff44e132b0fc480dec Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 16:56:53 +0100 Subject: [PATCH 095/919] Remove ol.source.GeoJSON --- src/ol/source/geojsonsource.exports | 1 - src/ol/source/geojsonsource.js | 38 ----------------------------- 2 files changed, 39 deletions(-) delete mode 100644 src/ol/source/geojsonsource.exports delete mode 100644 src/ol/source/geojsonsource.js diff --git a/src/ol/source/geojsonsource.exports b/src/ol/source/geojsonsource.exports deleted file mode 100644 index abf4c9f35e..0000000000 --- a/src/ol/source/geojsonsource.exports +++ /dev/null @@ -1 +0,0 @@ -@exportClass ol.source.GeoJSON ol.source.GeoJSONOptions diff --git a/src/ol/source/geojsonsource.js b/src/ol/source/geojsonsource.js deleted file mode 100644 index 51aff5b1ab..0000000000 --- a/src/ol/source/geojsonsource.js +++ /dev/null @@ -1,38 +0,0 @@ -// FIXME load from URL - -goog.provide('ol.source.GeoJSON'); - -goog.require('goog.asserts'); -goog.require('ol.proj'); -goog.require('ol.reader.GeoJSON'); -goog.require('ol.source.Vector'); - - - -/** - * @constructor - * @extends {ol.source.Vector} - * @param {ol.source.GeoJSONOptions=} opt_options Options. - */ -ol.source.GeoJSON = function(opt_options) { - - var options = goog.isDef(opt_options) ? opt_options : {}; - - var projection = goog.isDef(options.projection) ? - options.projection : ol.proj.get('EPSG:3857'); - - goog.base(this, { - attributions: options.attributions, - logo: options.logo, - projection: projection - }); - - if (goog.isDef(options.geoJSON)) { - ol.reader.GeoJSON.readObject(options.geoJSON, this.addFeature, this); - } - if (goog.isDef(options.string)) { - ol.reader.GeoJSON.readString(options.string, this.addFeature, this); - } - -}; -goog.inherits(ol.source.GeoJSON, ol.source.Vector); From 71a372e0dc04b24a25bd3098ba3c46235a72d6d9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 19:41:35 +0100 Subject: [PATCH 096/919] Read features directly into source --- examples/geojson.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index b9fce0dce9..26610edea3 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -3,7 +3,6 @@ goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); -goog.require('ol.reader'); goog.require('ol.reader.GeoJSON'); goog.require('ol.source.OSM'); goog.require('ol.source.Vector'); @@ -31,7 +30,8 @@ var styleFunction = function(feature) { } }; -var features = ol.reader.readAllFromObject(ol.reader.GeoJSON.readObject, { +var vectorSource = new ol.source.Vector(); +ol.reader.GeoJSON.readObject({ 'type': 'FeatureCollection', 'features': [ { @@ -86,7 +86,7 @@ var features = ol.reader.readAllFromObject(ol.reader.GeoJSON.readObject, { } } ] -}); +}, vectorSource.addFeature, vectorSource); var map = new ol.Map({ layers: [ @@ -94,9 +94,7 @@ var map = new ol.Map({ source: new ol.source.OSM() }), new ol.layer.Vector({ - source: new ol.source.Vector({ - features: features - }), + source: vectorSource, styleFunction: styleFunction }) ], From 8aa6eb5cb7009c956e196ef05b5edcb778368aea Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 19:42:54 +0100 Subject: [PATCH 097/919] Improve filenames --- src/ol/replay/canvas/{canvasbatchgroup.js => canvasreplay.js} | 0 src/ol/replay/{ibatchgroup.js => ireplay.js} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/ol/replay/canvas/{canvasbatchgroup.js => canvasreplay.js} (100%) rename src/ol/replay/{ibatchgroup.js => ireplay.js} (100%) diff --git a/src/ol/replay/canvas/canvasbatchgroup.js b/src/ol/replay/canvas/canvasreplay.js similarity index 100% rename from src/ol/replay/canvas/canvasbatchgroup.js rename to src/ol/replay/canvas/canvasreplay.js diff --git a/src/ol/replay/ibatchgroup.js b/src/ol/replay/ireplay.js similarity index 100% rename from src/ol/replay/ibatchgroup.js rename to src/ol/replay/ireplay.js From 979d35b3b364c8a0bf83c03309c0b0d2c763548a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 19:57:27 +0100 Subject: [PATCH 098/919] Rename ol.reader to ol.format --- examples/geojson.js | 4 +- src/ol/{reader/reader.js => format/format.js} | 4 +- .../geojson/geojsonformat.js} | 48 +++++++++---------- .../geojsonformat.test.js} | 12 ++--- 4 files changed, 34 insertions(+), 34 deletions(-) rename src/ol/{reader/reader.js => format/format.js} (77%) rename src/ol/{reader/geojson/geojson.js => format/geojson/geojsonformat.js} (72%) rename test/spec/ol/{reader/geojson.test.js => format/geojsonformat.test.js} (89%) diff --git a/examples/geojson.js b/examples/geojson.js index 26610edea3..29cd29da1b 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -1,9 +1,9 @@ goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); +goog.require('ol.format.GeoJSON'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); -goog.require('ol.reader.GeoJSON'); goog.require('ol.source.OSM'); goog.require('ol.source.Vector'); goog.require('ol.style.DefaultStyleFunction'); @@ -31,7 +31,7 @@ var styleFunction = function(feature) { }; var vectorSource = new ol.source.Vector(); -ol.reader.GeoJSON.readObject({ +ol.format.GeoJSON.readObject({ 'type': 'FeatureCollection', 'features': [ { diff --git a/src/ol/reader/reader.js b/src/ol/format/format.js similarity index 77% rename from src/ol/reader/reader.js rename to src/ol/format/format.js index 94c9b0cfa2..30615c454b 100644 --- a/src/ol/reader/reader.js +++ b/src/ol/format/format.js @@ -1,4 +1,4 @@ -goog.provide('ol.reader'); +goog.provide('ol.format'); /** @@ -8,7 +8,7 @@ goog.provide('ol.reader'); * @return {Array.} * @template S,T */ -ol.reader.readAllFromObject = function(reader, object) { +ol.format.readAllFromObject = function(reader, object) { var features = []; reader(object, function(feature) { features.push(feature); diff --git a/src/ol/reader/geojson/geojson.js b/src/ol/format/geojson/geojsonformat.js similarity index 72% rename from src/ol/reader/geojson/geojson.js rename to src/ol/format/geojson/geojsonformat.js index 8664aa9bc6..3b1b51085e 100644 --- a/src/ol/reader/geojson/geojson.js +++ b/src/ol/format/geojson/geojsonformat.js @@ -2,7 +2,7 @@ // FIXME reprojection // FIXME support other geometry types -goog.provide('ol.reader.GeoJSON'); +goog.provide('ol.format.GeoJSON'); goog.require('goog.asserts'); goog.require('goog.json'); @@ -18,7 +18,7 @@ goog.require('ol.geom.Polygon'); /** * @constructor */ -ol.reader.GeoJSON = function() { +ol.format.GeoJSON = function() { }; @@ -27,7 +27,7 @@ ol.reader.GeoJSON = function() { * @private * @return {ol.geom.Point} Point. */ -ol.reader.GeoJSON.readPointGeometry_ = function(geometry) { +ol.format.GeoJSON.readPointGeometry_ = function(geometry) { goog.asserts.assert(geometry.type == 'Point'); return new ol.geom.Point(geometry.coordinates); }; @@ -38,7 +38,7 @@ ol.reader.GeoJSON.readPointGeometry_ = function(geometry) { * @private * @return {ol.geom.LineString} LineString. */ -ol.reader.GeoJSON.readLineStringGeometry_ = function(geometry) { +ol.format.GeoJSON.readLineStringGeometry_ = function(geometry) { goog.asserts.assert(geometry.type == 'LineString'); return new ol.geom.LineString(geometry.coordinates); }; @@ -49,7 +49,7 @@ ol.reader.GeoJSON.readLineStringGeometry_ = function(geometry) { * @private * @return {ol.geom.MultiLineString} MultiLineString. */ -ol.reader.GeoJSON.readMultiLineStringGeometry_ = function(geometry) { +ol.format.GeoJSON.readMultiLineStringGeometry_ = function(geometry) { goog.asserts.assert(geometry.type == 'MultiLineString'); return new ol.geom.MultiLineString(geometry.coordinates); }; @@ -60,7 +60,7 @@ ol.reader.GeoJSON.readMultiLineStringGeometry_ = function(geometry) { * @private * @return {ol.geom.MultiPolygon} MultiPolygon. */ -ol.reader.GeoJSON.readMultiPolygonGeometry_ = function(geometry) { +ol.format.GeoJSON.readMultiPolygonGeometry_ = function(geometry) { goog.asserts.assert(geometry.type == 'MultiPolygon'); return new ol.geom.MultiPolygon(geometry.coordinates); }; @@ -71,7 +71,7 @@ ol.reader.GeoJSON.readMultiPolygonGeometry_ = function(geometry) { * @private * @return {ol.geom.Polygon} Polygon. */ -ol.reader.GeoJSON.readPolygonGeometry_ = function(geometry) { +ol.format.GeoJSON.readPolygonGeometry_ = function(geometry) { goog.asserts.assert(geometry.type == 'Polygon'); return new ol.geom.Polygon(geometry.coordinates); }; @@ -85,11 +85,11 @@ ol.reader.GeoJSON.readPolygonGeometry_ = function(geometry) { * @return {T} Callback result. * @template S,T */ -ol.reader.GeoJSON.readFeature_ = function(object, callback, opt_obj) { +ol.format.GeoJSON.readFeature_ = function(object, callback, opt_obj) { goog.asserts.assert(object.type == 'Feature'); var feature = /** @type {GeoJSONFeature} */ (object); var geometryReader = - ol.reader.GeoJSON.GEOMETRY_READERS_[feature.geometry.type]; + ol.format.GeoJSON.GEOMETRY_READERS_[feature.geometry.type]; goog.asserts.assert(goog.isDef(geometryReader)); var geometry = geometryReader(feature.geometry); var f = new ol.Feature(geometry); @@ -108,13 +108,13 @@ ol.reader.GeoJSON.readFeature_ = function(object, callback, opt_obj) { * @return {T|undefined} Callback result. * @template S,T */ -ol.reader.GeoJSON.readFeatureCollection_ = function(object, callback, opt_obj) { +ol.format.GeoJSON.readFeatureCollection_ = function(object, callback, opt_obj) { goog.asserts.assert(object.type == 'FeatureCollection'); var featureCollection = /** @type {GeoJSONFeatureCollection} */ (object); var features = featureCollection.features; var i, ii; for (i = 0, ii = features.length; i < ii; ++i) { - var result = ol.reader.GeoJSON.readFeature_(features[i], callback, opt_obj); + var result = ol.format.GeoJSON.readFeature_(features[i], callback, opt_obj); if (result) { return result; } @@ -130,8 +130,8 @@ ol.reader.GeoJSON.readFeatureCollection_ = function(object, callback, opt_obj) { * @return {T} Callback result. * @template S,T */ -ol.reader.GeoJSON.readObject = function(object, callback, opt_obj) { - var objectReader = ol.reader.GeoJSON.OBJECT_READERS_[object.type]; +ol.format.GeoJSON.readObject = function(object, callback, opt_obj) { + var objectReader = ol.format.GeoJSON.OBJECT_READERS_[object.type]; goog.asserts.assert(goog.isDef(objectReader)); return objectReader(object, callback, opt_obj); }; @@ -144,9 +144,9 @@ ol.reader.GeoJSON.readObject = function(object, callback, opt_obj) { * @return {T} Callback result. * @template S,T */ -ol.reader.GeoJSON.readString = function(string, callback, opt_obj) { +ol.format.GeoJSON.readString = function(string, callback, opt_obj) { var object = goog.json.parse(string); - return ol.reader.GeoJSON.readObject( + return ol.format.GeoJSON.readObject( /** @type {GeoJSONObject} */ (object), callback); }; @@ -156,12 +156,12 @@ ol.reader.GeoJSON.readString = function(string, callback, opt_obj) { * @private * @type {Object.} */ -ol.reader.GeoJSON.GEOMETRY_READERS_ = { - 'Point': ol.reader.GeoJSON.readPointGeometry_, - 'LineString': ol.reader.GeoJSON.readLineStringGeometry_, - 'Polygon': ol.reader.GeoJSON.readPolygonGeometry_, - 'MultiLineString': ol.reader.GeoJSON.readMultiLineStringGeometry_, - 'MultiPolygon': ol.reader.GeoJSON.readMultiPolygonGeometry_ +ol.format.GeoJSON.GEOMETRY_READERS_ = { + 'Point': ol.format.GeoJSON.readPointGeometry_, + 'LineString': ol.format.GeoJSON.readLineStringGeometry_, + 'Polygon': ol.format.GeoJSON.readPolygonGeometry_, + 'MultiLineString': ol.format.GeoJSON.readMultiLineStringGeometry_, + 'MultiPolygon': ol.format.GeoJSON.readMultiPolygonGeometry_ }; @@ -170,7 +170,7 @@ ol.reader.GeoJSON.GEOMETRY_READERS_ = { * @private * @type {Object.} */ -ol.reader.GeoJSON.OBJECT_READERS_ = { - 'Feature': ol.reader.GeoJSON.readFeature_, - 'FeatureCollection': ol.reader.GeoJSON.readFeatureCollection_ +ol.format.GeoJSON.OBJECT_READERS_ = { + 'Feature': ol.format.GeoJSON.readFeature_, + 'FeatureCollection': ol.format.GeoJSON.readFeatureCollection_ }; diff --git a/test/spec/ol/reader/geojson.test.js b/test/spec/ol/format/geojsonformat.test.js similarity index 89% rename from test/spec/ol/reader/geojson.test.js rename to test/spec/ol/format/geojsonformat.test.js index c4ddb9debe..88fb403766 100644 --- a/test/spec/ol/reader/geojson.test.js +++ b/test/spec/ol/format/geojsonformat.test.js @@ -1,7 +1,7 @@ goog.provide('ol.test.reader.GeoJSON'); -describe('ol.reader.GeoJSON', function() { +describe('ol.format.GeoJSON', function() { var pointGeoJSON = { 'type': 'Feature', @@ -50,7 +50,7 @@ describe('ol.reader.GeoJSON', function() { describe('readObject', function() { it('can read a single point feature', function() { - var feature = ol.reader.GeoJSON.readObject(pointGeoJSON, function(f) { + var feature = ol.format.GeoJSON.readObject(pointGeoJSON, function(f) { return f; }); expect(feature).to.be.an(ol.Feature); @@ -61,7 +61,7 @@ describe('ol.reader.GeoJSON', function() { }); it('can read a single line string feature', function() { - var feature = ol.reader.GeoJSON.readObject(lineStringGeoJSON, + var feature = ol.format.GeoJSON.readObject(lineStringGeoJSON, function(f) { return f; }); @@ -75,7 +75,7 @@ describe('ol.reader.GeoJSON', function() { }); it('can read a single polygon feature', function() { - var feature = ol.reader.GeoJSON.readObject(polygonGeoJSON, function(f) { + var feature = ol.format.GeoJSON.readObject(polygonGeoJSON, function(f) { return f; }); expect(feature).to.be.an(ol.Feature); @@ -90,7 +90,7 @@ describe('ol.reader.GeoJSON', function() { it('can read a feature collection', function() { var features = []; - ol.reader.GeoJSON.readObject(featureCollectionGeoJSON, function(f) { + ol.format.GeoJSON.readObject(featureCollectionGeoJSON, function(f) { features.push(f); }); expect(features).to.have.length(3); @@ -105,7 +105,7 @@ describe('ol.reader.GeoJSON', function() { goog.require('ol.Feature'); +goog.require('ol.format.GeoJSON'); goog.require('ol.geom.LineString'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); -goog.require('ol.reader.GeoJSON'); From 507662af0b462d68e1b3e8faffb7c715283a009f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 20:08:58 +0100 Subject: [PATCH 099/919] Use arrays instead of objects for canvas instructions --- src/ol/replay/canvas/canvasreplay.js | 102 +++++++++------------------ 1 file changed, 34 insertions(+), 68 deletions(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index dccee8b341..03cdb624b8 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -17,7 +17,7 @@ goog.require('ol.style.stroke'); /** * @enum {number} */ -ol.replay.canvas.InstructionType = { +ol.replay.canvas.Instruction = { BEGIN_PATH: 0, CLOSE_PATH: 1, FILL: 2, @@ -38,13 +38,6 @@ ol.replay.canvas.InstructionType = { ol.replay.canvas.State; -/** - * @typedef {{argument: ?, - * type: ol.replay.canvas.InstructionType}} - */ -ol.replay.canvas.Instruction; - - /** * @constructor @@ -54,7 +47,7 @@ ol.replay.canvas.Batch = function() { /** * @private - * @type {Array.} + * @type {Array} */ this.instructions_ = []; @@ -114,9 +107,7 @@ ol.replay.canvas.Batch.prototype.appendCoordinates_ = ol.replay.canvas.Batch.prototype.beginPath_ = function() { goog.asserts.assert(!goog.isNull(this.state_)); if (this.state_.beginPath) { - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.BEGIN_PATH - }); + this.instructions_.push([ol.replay.canvas.Instruction.BEGIN_PATH]); this.state_.beginPath = false; } }; @@ -136,36 +127,30 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { var j, jj; for (j = 0, jj = instructions.length; j < jj; ++j) { var instruction = instructions[j]; - if (instruction.type == - ol.replay.canvas.InstructionType.BEGIN_PATH) { + var type = instruction[0]; + if (type == ol.replay.canvas.Instruction.BEGIN_PATH) { context.beginPath(); - } else if (instruction.type == - ol.replay.canvas.InstructionType.CLOSE_PATH) { + } else if (type == ol.replay.canvas.Instruction.CLOSE_PATH) { context.closePath(); - } else if (instruction.type == - ol.replay.canvas.InstructionType.FILL) { + } else if (type == ol.replay.canvas.Instruction.FILL) { context.fill(); - } else if (instruction.type == - ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO) { + } else if (type == ol.replay.canvas.Instruction.MOVE_TO_LINE_TO) { context.moveTo(pixelCoordinates[i], pixelCoordinates[i + 1]); - goog.asserts.assert(goog.isNumber(instruction.argument)); - var end = /** @type {number} */ (instruction.argument); + goog.asserts.assert(goog.isNumber(instruction[1])); + var end = /** @type {number} */ (instruction[1]); for (i += 2; i < end; i += 2) { context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]); } - } else if (instruction.type == - ol.replay.canvas.InstructionType.SET_FILL_STYLE) { - goog.asserts.assert(goog.isObject(instruction.argument)); - var fillStyle = /** @type {ol.style.Fill} */ (instruction.argument); + } else if (type == ol.replay.canvas.Instruction.SET_FILL_STYLE) { + goog.asserts.assert(goog.isObject(instruction[1])); + var fillStyle = /** @type {ol.style.Fill} */ (instruction[1]); context.fillStyle = fillStyle.color; - } else if (instruction.type == - ol.replay.canvas.InstructionType.SET_STROKE_STYLE) { - goog.asserts.assert(goog.isObject(instruction.argument)); - var strokeStyle = /** @type {ol.style.Stroke} */ (instruction.argument); + } else if (type == ol.replay.canvas.Instruction.SET_STROKE_STYLE) { + goog.asserts.assert(goog.isObject(instruction[1])); + var strokeStyle = /** @type {ol.style.Stroke} */ (instruction[1]); context.strokeStyle = strokeStyle.color; context.lineWidth = strokeStyle.width; - } else if (instruction.type == - ol.replay.canvas.InstructionType.STROKE) { + } else if (type == ol.replay.canvas.Instruction.STROKE) { context.stroke(); } } @@ -181,10 +166,7 @@ ol.replay.canvas.Batch.prototype.drawLineStringGeometry = goog.asserts.assert(!goog.isNull(this.state_)); this.beginPath_(); var end = this.appendCoordinates_(lineStringGeometry.getCoordinates(), false); - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO, - argument: end - }); + this.instructions_.push([ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end]); this.state_.strokePending = true; }; @@ -200,10 +182,8 @@ ol.replay.canvas.Batch.prototype.drawMultiLineStringGeometry = for (i = 0, ii = coordinatess.length; i < ii; ++i) { this.beginPath_(); var end = this.appendCoordinates_(coordinatess[i], false); - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO, - argument: end - }); + this.instructions_.push( + [ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end]); } this.state_.strokePending = true; }; @@ -222,13 +202,10 @@ ol.replay.canvas.Batch.prototype.drawMultiPolygonGeometry = var j, jj; for (j = 0, jj = rings.length; j < jj; ++j) { this.beginPath_(); - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO, - argument: this.appendCoordinates_(rings[j], true) - }); - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.CLOSE_PATH - }); + var end = this.appendCoordinates_(rings[j], true); + this.instructions_.push( + [ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end], + [ol.replay.canvas.Instruction.CLOSE_PATH]); } } this.state_.fillPending = true; @@ -246,13 +223,10 @@ ol.replay.canvas.Batch.prototype.drawPolygonGeometry = var i, ii; for (i = 0, ii = rings.length; i < ii; ++i) { this.beginPath_(); - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.MOVE_TO_LINE_TO, - argument: this.appendCoordinates_(rings[i], true) - }); - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.CLOSE_PATH - }); + var end = this.appendCoordinates_(rings[i], true); + this.instructions_.push( + [ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end], + [ol.replay.canvas.Instruction.CLOSE_PATH]); } this.state_.fillPending = true; this.state_.strokePending = true; @@ -277,15 +251,11 @@ ol.replay.canvas.Batch.prototype.flush_ = function(finish) { goog.asserts.assert(!goog.isNull(this.state_)); if (this.state_.fillPending || this.state_.strokePending) { if (this.state_.fillPending) { - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.FILL - }); + this.instructions_.push([ol.replay.canvas.Instruction.FILL]); this.state_.fillPending = false; } if (this.state_.strokePending) { - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.STROKE - }); + this.instructions_.push([ol.replay.canvas.Instruction.STROKE]); this.state_.strokePending = false; } this.state_.beginPath = true; @@ -302,18 +272,14 @@ ol.replay.canvas.Batch.prototype.setFillStrokeStyle = // FIXME should only change styles before draws if (!ol.style.fill.equals(this.state_.fillStyle, fillStyle)) { this.flush_(false); - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.SET_FILL_STYLE, - argument: fillStyle - }); + this.instructions_.push( + [ol.replay.canvas.Instruction.SET_FILL_STYLE, fillStyle]); this.state_.fillStyle = fillStyle; } if (!ol.style.stroke.equals(this.state_.strokeStyle, strokeStyle)) { this.flush_(false); - this.instructions_.push({ - type: ol.replay.canvas.InstructionType.SET_STROKE_STYLE, - argument: strokeStyle - }); + this.instructions_.push( + [ol.replay.canvas.Instruction.SET_STROKE_STYLE, strokeStyle]); this.state_.strokeStyle = strokeStyle; } }; From fef9ec155b35882ea746dd4e4c893ea1910893fc Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 23:09:01 +0100 Subject: [PATCH 100/919] Refactor batching system --- src/ol/renderer/vector.js | 25 +- src/ol/replay/canvas/canvasreplay.js | 361 +++++++++++++++++---------- src/ol/replay/ireplay.js | 8 +- 3 files changed, 235 insertions(+), 159 deletions(-) diff --git a/src/ol/renderer/vector.js b/src/ol/renderer/vector.js index 3f1c17d350..98f21872a5 100644 --- a/src/ol/renderer/vector.js +++ b/src/ol/renderer/vector.js @@ -38,7 +38,7 @@ ol.renderer.vector.renderLineStringGeometry_ = goog.asserts.assert(geometry instanceof ol.geom.LineString); var lineStringGeometry = /** @type {ol.geom.LineString} */ (geometry); var batch = batchGroup.getBatch( - style.zIndex, ol.replay.BatchType.STROKE_LINE); + style.zIndex, ol.replay.BatchType.LINE_STRING); batch.setFillStrokeStyle(null, style.stroke); batch.drawLineStringGeometry(lineStringGeometry); }; @@ -59,7 +59,7 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = var multiLineStringGeometry = /** @type {ol.geom.MultiLineString} */ (geometry); var batch = batchGroup.getBatch( - style.zIndex, ol.replay.BatchType.STROKE_LINE); + style.zIndex, ol.replay.BatchType.LINE_STRING); batch.setFillStrokeStyle(null, style.stroke); batch.drawMultiLineStringGeometry(multiLineStringGeometry); }; @@ -80,8 +80,8 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = var multiPolygonGeometry = /** @type {ol.geom.MultiPolygon} */ (geometry); var batch = batchGroup.getBatch( - style.zIndex, ol.replay.BatchType.STROKE_LINE); - batch.setFillStrokeStyle(null, style.stroke); + style.zIndex, ol.replay.BatchType.POLYGON); + batch.setFillStrokeStyle(style.fill, style.stroke); batch.drawMultiPolygonGeometry(multiPolygonGeometry); }; @@ -108,23 +108,12 @@ ol.renderer.vector.renderPointGeometry_ = */ ol.renderer.vector.renderPolygonGeometry_ = function(batchGroup, geometry, style) { - var batchType; - if (goog.isNull(style.fill)) { - if (goog.isNull(style.stroke)) { - return; - } else { - batchType = ol.replay.BatchType.STROKE_RING; - } - } else { - if (goog.isNull(style.stroke)) { - batchType = ol.replay.BatchType.FILL_RING; - } else { - batchType = ol.replay.BatchType.FILL_STROKE_RING; - } + if (goog.isNull(style.fill) && goog.isNull(style.stroke)) { + return; } goog.asserts.assert(geometry instanceof ol.geom.Polygon); var polygonGeometry = /** @type {ol.geom.Polygon} */ (geometry); - var batch = batchGroup.getBatch(style.zIndex, batchType); + var batch = batchGroup.getBatch(style.zIndex, ol.replay.BatchType.POLYGON); batch.setFillStrokeStyle(style.fill, style.stroke); batch.drawPolygonGeometry(polygonGeometry); }; diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 03cdb624b8..776530f671 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -28,34 +28,25 @@ ol.replay.canvas.Instruction = { }; -/** - * @typedef {{beginPath: boolean, - * fillPending: boolean, - * fillStyle: ?ol.style.Fill, - * strokePending: boolean, - * strokeStyle: ?ol.style.Stroke}} - */ -ol.replay.canvas.State; - - /** * @constructor * @implements {ol.replay.IBatch} + * @protected */ ol.replay.canvas.Batch = function() { /** - * @private + * @protected * @type {Array} */ - this.instructions_ = []; + this.instructions = []; /** - * @private + * @protected * @type {Array.} */ - this.coordinates_ = []; + this.coordinates = []; /** * @private @@ -63,66 +54,40 @@ ol.replay.canvas.Batch = function() { */ this.pixelCoordinates_ = []; - /** - * @private - * @type {?ol.replay.canvas.State} - */ - this.state_ = { - beginPath: true, - fillPending: false, - fillStyle: null, - strokePending: false, - strokeStyle: null - }; - }; /** * @param {Array.>} coordinates Coordinates. * @param {boolean} close Close. - * @private + * @protected * @return {number} End. */ -ol.replay.canvas.Batch.prototype.appendCoordinates_ = +ol.replay.canvas.Batch.prototype.appendCoordinates = function(coordinates, close) { - goog.asserts.assert(!goog.isNull(this.state_)); - var end = this.coordinates_.length; + var end = this.coordinates.length; var i, ii; for (i = 0, ii = coordinates.length; i < ii; ++i) { - this.coordinates_[end++] = coordinates[i][0]; - this.coordinates_[end++] = coordinates[i][1]; + this.coordinates[end++] = coordinates[i][0]; + this.coordinates[end++] = coordinates[i][1]; } if (close) { - this.coordinates_[end++] = coordinates[0][0]; - this.coordinates_[end++] = coordinates[0][1]; + this.coordinates[end++] = coordinates[0][0]; + this.coordinates[end++] = coordinates[0][1]; } return end; }; -/** - * @private - */ -ol.replay.canvas.Batch.prototype.beginPath_ = function() { - goog.asserts.assert(!goog.isNull(this.state_)); - if (this.state_.beginPath) { - this.instructions_.push([ol.replay.canvas.Instruction.BEGIN_PATH]); - this.state_.beginPath = false; - } -}; - - /** * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. */ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { - goog.asserts.assert(goog.isNull(this.state_)); var pixelCoordinates = ol.replay.transformCoordinates( - this.coordinates_, transform, this.pixelCoordinates_); + this.coordinates, transform, this.pixelCoordinates_); this.pixelCoordinates_ = pixelCoordinates; // FIXME ? - var instructions = this.instructions_; + var instructions = this.instructions; var i = 0; var j, jj; for (j = 0, jj = instructions.length; j < jj; ++j) { @@ -161,104 +126,107 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.drawLineStringGeometry = - function(lineStringGeometry) { - goog.asserts.assert(!goog.isNull(this.state_)); - this.beginPath_(); - var end = this.appendCoordinates_(lineStringGeometry.getCoordinates(), false); - this.instructions_.push([ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end]); - this.state_.strokePending = true; -}; +ol.replay.canvas.Batch.prototype.drawLineStringGeometry = goog.abstractMethod; /** * @inheritDoc */ ol.replay.canvas.Batch.prototype.drawMultiLineStringGeometry = - function(multiLineStringGeometry) { - goog.asserts.assert(!goog.isNull(this.state_)); - var coordinatess = multiLineStringGeometry.getCoordinatess(); - var i, ii; - for (i = 0, ii = coordinatess.length; i < ii; ++i) { - this.beginPath_(); - var end = this.appendCoordinates_(coordinatess[i], false); - this.instructions_.push( - [ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end]); - } - this.state_.strokePending = true; -}; + goog.abstractMethod; /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.drawMultiPolygonGeometry = - function(multiPolygonGeometry) { - goog.asserts.assert(!goog.isNull(this.state_)); - var ringss = multiPolygonGeometry.getRingss(); - var i, ii; - for (i = 0, ii = ringss.length; i < ii; ++i) { - var rings = ringss[i]; - var j, jj; - for (j = 0, jj = rings.length; j < jj; ++j) { - this.beginPath_(); - var end = this.appendCoordinates_(rings[j], true); - this.instructions_.push( - [ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end], - [ol.replay.canvas.Instruction.CLOSE_PATH]); - } - } - this.state_.fillPending = true; - this.state_.strokePending = true; -}; +ol.replay.canvas.Batch.prototype.drawPolygonGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.drawPolygonGeometry = - function(polygonGeometry) { - goog.asserts.assert(!goog.isNull(this.state_)); - var rings = polygonGeometry.getRings(); - var i, ii; - for (i = 0, ii = rings.length; i < ii; ++i) { - this.beginPath_(); - var end = this.appendCoordinates_(rings[i], true); - this.instructions_.push( - [ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end], - [ol.replay.canvas.Instruction.CLOSE_PATH]); - } - this.state_.fillPending = true; - this.state_.strokePending = true; -}; +ol.replay.canvas.Batch.prototype.drawMultiPolygonGeometry = goog.abstractMethod; /** * FIXME empty description for jsdoc */ -ol.replay.canvas.Batch.prototype.finish = function() { - goog.asserts.assert(!goog.isNull(this.state_)); - this.flush_(true); - this.state_ = null; +ol.replay.canvas.Batch.prototype.finish = goog.nullFunction; + + +/** + * @inheritDoc + */ +ol.replay.canvas.Batch.prototype.setFillStrokeStyle = goog.abstractMethod; + + + +/** + * @constructor + * @extends {ol.replay.canvas.Batch} + * @protected + */ +ol.replay.canvas.LineStringBatch = function() { + + goog.base(this); + + /** + * @private + * @type {{currentStrokeStyle: ?ol.style.Stroke, + * lastDraw: number, + * strokeStyle: ?ol.style.Stroke}|null} + */ + this.state_ = { + currentStrokeStyle: null, + lastDraw: 0, + strokeStyle: null + }; + +}; +goog.inherits(ol.replay.canvas.LineStringBatch, ol.replay.canvas.Batch); + + +/** + * @param {Array.} coordinates Coordinates. + * @private + */ +ol.replay.canvas.LineStringBatch.prototype.drawCoordinates_ = + function(coordinates) { + var state = this.state_; + if (!ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { + if (state.lastDraw != this.coordinates.length) { + this.instructions.push([ol.replay.canvas.Instruction.STROKE]); + } + this.instructions.push( + [ol.replay.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle], + [ol.replay.canvas.Instruction.BEGIN_PATH]); + state.currentStrokeStyle = state.strokeStyle; + } + var end = this.appendCoordinates(coordinates, false); + this.instructions.push([ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end]); }; /** - * @param {boolean} finish Finish. - * @private + * @inheritDoc */ -ol.replay.canvas.Batch.prototype.flush_ = function(finish) { +ol.replay.canvas.LineStringBatch.prototype.drawLineStringGeometry = + function(lineStringGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); - if (this.state_.fillPending || this.state_.strokePending) { - if (this.state_.fillPending) { - this.instructions_.push([ol.replay.canvas.Instruction.FILL]); - this.state_.fillPending = false; - } - if (this.state_.strokePending) { - this.instructions_.push([ol.replay.canvas.Instruction.STROKE]); - this.state_.strokePending = false; - } - this.state_.beginPath = true; + this.drawCoordinates_(lineStringGeometry.getCoordinates()); +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.LineStringBatch.prototype.drawMultiLineStringGeometry = + function(multiLineStringGeometry) { + goog.asserts.assert(!goog.isNull(this.state_)); + var coordinatess = multiLineStringGeometry.getCoordinatess(); + var i, ii; + for (i = 0, ii = coordinatess.length; i < ii; ++i) { + this.drawCoordinates_(coordinatess[i]); } }; @@ -266,21 +234,144 @@ ol.replay.canvas.Batch.prototype.flush_ = function(finish) { /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.setFillStrokeStyle = +ol.replay.canvas.LineStringBatch.prototype.finish = function() { + var state = this.state_; + goog.asserts.assert(!goog.isNull(state)); + if (state.lastDraw != this.coordinates.length) { + this.instructions.push([ol.replay.canvas.Instruction.STROKE]); + } + this.state_ = null; +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.LineStringBatch.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { goog.asserts.assert(!goog.isNull(this.state_)); - // FIXME should only change styles before draws - if (!ol.style.fill.equals(this.state_.fillStyle, fillStyle)) { - this.flush_(false); - this.instructions_.push( - [ol.replay.canvas.Instruction.SET_FILL_STYLE, fillStyle]); - this.state_.fillStyle = fillStyle; + goog.asserts.assert(goog.isNull(fillStyle)); + goog.asserts.assert(!goog.isNull(strokeStyle)); + this.state_.strokeStyle = strokeStyle; +}; + + + +/** + * @constructor + * @extends {ol.replay.canvas.Batch} + * @protected + */ +ol.replay.canvas.PolygonBatch = function() { + + goog.base(this); + + /** + * @private + * @type {{currentFillStyle: ?ol.style.Fill, + * currentStrokeStyle: ?ol.style.Stroke, + * fillStyle: ?ol.style.Fill, + * strokeStyle: ?ol.style.Stroke}|null} + */ + this.state_ = { + currentFillStyle: null, + currentStrokeStyle: null, + fillStyle: null, + strokeStyle: null + }; + +}; +goog.inherits(ol.replay.canvas.PolygonBatch, ol.replay.canvas.Batch); + + +/** + * @param {Array.>} rings Rings. + * @private + */ +ol.replay.canvas.PolygonBatch.prototype.drawRings_ = function(rings) { + var state = this.state_; + this.instructions.push([ol.replay.canvas.Instruction.BEGIN_PATH]); + var i, ii; + for (i = 0, ii = rings.length; i < ii; ++i) { + var end = this.appendCoordinates(rings[i], true); + this.instructions.push( + [ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end], + [ol.replay.canvas.Instruction.CLOSE_PATH]); } - if (!ol.style.stroke.equals(this.state_.strokeStyle, strokeStyle)) { - this.flush_(false); - this.instructions_.push( - [ol.replay.canvas.Instruction.SET_STROKE_STYLE, strokeStyle]); - this.state_.strokeStyle = strokeStyle; + // FIXME is it quicker to fill and stroke each polygon individually, + // FIXME or all polygons together? + if (!goog.isNull(state.fillStyle)) { + this.instructions.push([ol.replay.canvas.Instruction.FILL]); + } + if (!goog.isNull(state.strokeStyle)) { + this.instructions.push([ol.replay.canvas.Instruction.STROKE]); + } +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.PolygonBatch.prototype.drawPolygonGeometry = + function(polygonGeometry) { + goog.asserts.assert(!goog.isNull(this.state_)); + this.setFillStrokeStyles_(); + this.drawRings_(polygonGeometry.getRings()); +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.PolygonBatch.prototype.drawMultiPolygonGeometry = + function(multiPolygonGeometry) { + goog.asserts.assert(!goog.isNull(this.state_)); + this.setFillStrokeStyles_(); + var ringss = multiPolygonGeometry.getRingss(); + var i, ii; + for (i = 0, ii = ringss.length; i < ii; ++i) { + this.drawRings_(ringss[i]); + } +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.PolygonBatch.prototype.finish = function() { + goog.asserts.assert(!goog.isNull(this.state_)); + this.state_ = null; +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.PolygonBatch.prototype.setFillStrokeStyle = + function(fillStyle, strokeStyle) { + goog.asserts.assert(!goog.isNull(this.state_)); + goog.asserts.assert(!goog.isNull(fillStyle) || !goog.isNull(strokeStyle)); + this.state_.fillStyle = fillStyle; + this.state_.strokeStyle = strokeStyle; +}; + + +/** + * @private + */ +ol.replay.canvas.PolygonBatch.prototype.setFillStrokeStyles_ = function() { + var state = this.state_; + if (!goog.isNull(state.fillStyle) && + !ol.style.fill.equals(state.currentFillStyle, state.fillStyle)) { + this.instructions.push( + [ol.replay.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); + state.currentFillStyle = state.fillStyle; + } + if (!goog.isNull(state.strokeStyle) && + !ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { + this.instructions.push( + [ol.replay.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle]); + state.currentStrokeStyle = state.strokeStyle; } }; @@ -372,8 +463,6 @@ ol.replay.canvas.BatchGroup.prototype.isEmpty = function() { * @type {Object.} */ ol.replay.canvas.BATCH_CONSTRUCTORS_ = { - 'fillRing': ol.replay.canvas.Batch, - 'fillStrokeRing': ol.replay.canvas.Batch, - 'strokeLine': ol.replay.canvas.Batch, - 'strokeRing': ol.replay.canvas.Batch + 'LineString': ol.replay.canvas.LineStringBatch, + 'Polygon': ol.replay.canvas.PolygonBatch }; diff --git a/src/ol/replay/ireplay.js b/src/ol/replay/ireplay.js index 0b591a0ffe..4817dc77a8 100644 --- a/src/ol/replay/ireplay.js +++ b/src/ol/replay/ireplay.js @@ -8,11 +8,9 @@ goog.require('goog.functions'); * @enum {string} */ ol.replay.BatchType = { - FILL_RING: 'fillRing', - FILL_STROKE_RING: 'fillStrokeRing', - POINT: 'point', - STROKE_LINE: 'strokeLine', - STROKE_RING: 'strokeRing' + IMAGE: 'Image', + LINE_STRING: 'LineString', + POLYGON: 'Polygon' }; From 8dab000db1da08302fcf3903c5a6486acf1e4728 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 23:09:23 +0100 Subject: [PATCH 101/919] Add more styling to GeoJSON example --- examples/geojson.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/examples/geojson.js b/examples/geojson.js index 29cd29da1b..f36f9f579b 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -11,6 +11,16 @@ goog.require('ol.style.DefaultStyleFunction'); var styleFunction = function(feature) { switch (feature.getGeometry().getType()) { + case ol.geom.GeometryType.POLYGON: + return { + stroke: { + color: 'blue', + width: 3 + }, + fill: { + color: 'rgba(0, 0, 255, 0.1)' + } + }; case ol.geom.GeometryType.MULTI_LINE_STRING: return { stroke: { @@ -23,6 +33,9 @@ var styleFunction = function(feature) { stroke: { color: 'yellow', width: 1 + }, + fill: { + color: 'rgba(255, 255, 0, 0.1)' } }; default: From ba1a35b59b86666e7ede726e235b82e30c0ddf6d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 23:33:37 +0100 Subject: [PATCH 102/919] Add per-batch extents --- src/ol/replay/canvas/canvasreplay.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 776530f671..56c4814bd2 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -1,12 +1,11 @@ -// FIXME store coordinates in batchgroup? // FIXME flattened coordinates -// FIXME per-batch extent tests goog.provide('ol.replay.canvas.BatchGroup'); goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.object'); +goog.require('ol.extent'); goog.require('ol.replay'); goog.require('ol.replay.IBatch'); goog.require('ol.replay.IBatchGroup'); @@ -54,6 +53,12 @@ ol.replay.canvas.Batch = function() { */ this.pixelCoordinates_ = []; + /** + * @private + * @type {ol.Extent} + */ + this.extent_ = ol.extent.createEmpty(); + }; @@ -66,10 +71,13 @@ ol.replay.canvas.Batch = function() { ol.replay.canvas.Batch.prototype.appendCoordinates = function(coordinates, close) { var end = this.coordinates.length; + var extent = this.extent_; var i, ii; for (i = 0, ii = coordinates.length; i < ii; ++i) { - this.coordinates[end++] = coordinates[i][0]; - this.coordinates[end++] = coordinates[i][1]; + var coordinate = coordinates[i]; + this.coordinates[end++] = coordinate[0]; + this.coordinates[end++] = coordinate[1]; + ol.extent.extendCoordinate(extent, coordinate); } if (close) { this.coordinates[end++] = coordinates[0][0]; @@ -154,6 +162,14 @@ ol.replay.canvas.Batch.prototype.drawMultiPolygonGeometry = goog.abstractMethod; ol.replay.canvas.Batch.prototype.finish = goog.nullFunction; +/** + * @return {ol.Extent} Extent. + */ +ol.replay.canvas.Batch.prototype.getExtent = function() { + return this.extent_; +}; + + /** * @inheritDoc */ From 61e221c504708646a316f34f0e75092a739811d2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 23:33:57 +0100 Subject: [PATCH 103/919] Only draw batches in visible extent --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 2 +- src/ol/replay/canvas/canvasreplay.js | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 063390600b..5ce5747096 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -87,7 +87,7 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = 0); context.globalAlpha = layerState.opacity; - batchGroup.draw(context, transform); + batchGroup.draw(context, frameState.extent, transform); }; diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 56c4814bd2..1adf3c2287 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -411,9 +411,11 @@ ol.replay.canvas.BatchGroup = function() { /** * @param {CanvasRenderingContext2D} context Context. + * @param {ol.Extent} extent Extent. * @param {goog.vec.Mat4.AnyType} transform Transform. */ -ol.replay.canvas.BatchGroup.prototype.draw = function(context, transform) { +ol.replay.canvas.BatchGroup.prototype.draw = + function(context, extent, transform) { /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.batchesByZIndex_), Number); goog.array.sort(zs); @@ -423,7 +425,9 @@ ol.replay.canvas.BatchGroup.prototype.draw = function(context, transform) { var batchType; for (batchType in batches) { var batch = batches[batchType]; - batch.draw(context, transform); + if (ol.extent.intersects(extent, batch.getExtent())) { + batch.draw(context, transform); + } } } }; From 80fa2dd0ef8461e5d6c189edf2f3fa50d441b39e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 8 Nov 2013 23:40:49 +0100 Subject: [PATCH 104/919] Change example data --- examples/geojson.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index f36f9f579b..247ec4d9f2 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -58,21 +58,21 @@ ol.format.GeoJSON.readObject({ 'type': 'Feature', 'geometry': { 'type': 'LineString', - 'coordinates': [[-1e7, -1e7], [1e7, 1e7]] + 'coordinates': [[4e6, -2e6], [8e6, 2e6]] } }, { 'type': 'Feature', 'geometry': { 'type': 'LineString', - 'coordinates': [[-1e7, 1e7], [1e7, -1e7]] + 'coordinates': [[4e6, 2e6], [8e6, -2e6]] } }, { 'type': 'Feature', 'geometry': { 'type': 'Polygon', - 'coordinates': [[[-5e6, -5e6], [0, 5e6], [5e6, -5e6]]] + 'coordinates': [[[-5e6, -1e6], [-4e6, 1e6], [-3e6, -1e6]]] } }, { From 2d7c26e3e54b77be9b68c5b7032e729177d90f6d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 00:01:53 +0100 Subject: [PATCH 105/919] Add ol.format.IReader --- src/ol/format/iformat.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/ol/format/iformat.js diff --git a/src/ol/format/iformat.js b/src/ol/format/iformat.js new file mode 100644 index 0000000000..3ee5601845 --- /dev/null +++ b/src/ol/format/iformat.js @@ -0,0 +1,34 @@ +// FIXME add XML +// FIXME add IWriter + +goog.provide('ol.format.IReader'); + + + +/** + * @interface + */ +ol.format.IReader = function() { +}; + + +/** + * @param {Object} object Object. + * @param {function(this: S, ol.Feature): T} callback Callback. + * @param {S=} opt_obj Scope. + * @return {T|undefined} Callback result. + * @template S,T + */ +ol.format.IReader.prototype.readObject = function(object, callback, opt_obj) { +}; + + +/** + * @param {string} string String. + * @param {function(this: S, ol.Feature): T} callback Callback. + * @param {S=} opt_obj Scope. + * @return {T|undefined} Callback result. + * @template S,T + */ +ol.format.IReader.prototype.readString = function(string, callback, opt_obj) { +}; From 5bca79228824086ff5f9a1b88fc48f6999f3b56a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 00:02:26 +0100 Subject: [PATCH 106/919] Refactor ol.format.GeoJSON to implement ol.format.IReader --- examples/geojson.js | 2 +- src/ol/format/geojson/geojsonformat.js | 27 +++++++++-------------- test/spec/ol/format/geojsonformat.test.js | 10 +++++---- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 247ec4d9f2..176f0b46d4 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -44,7 +44,7 @@ var styleFunction = function(feature) { }; var vectorSource = new ol.source.Vector(); -ol.format.GeoJSON.readObject({ +new ol.format.GeoJSON().readObject({ 'type': 'FeatureCollection', 'features': [ { diff --git a/src/ol/format/geojson/geojsonformat.js b/src/ol/format/geojson/geojsonformat.js index 3b1b51085e..39bc2b311a 100644 --- a/src/ol/format/geojson/geojsonformat.js +++ b/src/ol/format/geojson/geojsonformat.js @@ -7,6 +7,7 @@ goog.provide('ol.format.GeoJSON'); goog.require('goog.asserts'); goog.require('goog.json'); goog.require('ol.Feature'); +goog.require('ol.format.IReader'); goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString'); goog.require('ol.geom.MultiPolygon'); @@ -17,6 +18,7 @@ goog.require('ol.geom.Polygon'); /** * @constructor + * @implements {ol.format.IReader} */ ol.format.GeoJSON = function() { }; @@ -124,30 +126,21 @@ ol.format.GeoJSON.readFeatureCollection_ = function(object, callback, opt_obj) { /** - * @param {GeoJSONObject} object Object. - * @param {function(this: S, ol.Feature): T} callback Callback. - * @param {S=} opt_obj Scope. - * @return {T} Callback result. - * @template S,T + * @inheritDoc */ -ol.format.GeoJSON.readObject = function(object, callback, opt_obj) { - var objectReader = ol.format.GeoJSON.OBJECT_READERS_[object.type]; +ol.format.GeoJSON.prototype.readObject = function(object, callback, opt_obj) { + var geoJSONObject = /** @type {GeoJSONObject} */ (object); + var objectReader = ol.format.GeoJSON.OBJECT_READERS_[geoJSONObject.type]; goog.asserts.assert(goog.isDef(objectReader)); - return objectReader(object, callback, opt_obj); + return objectReader(geoJSONObject, callback, opt_obj); }; /** - * @param {string} string String. - * @param {function(ol.Feature): T} callback Callback. - * @param {S=} opt_obj Scope. - * @return {T} Callback result. - * @template S,T + * @inheritDoc */ -ol.format.GeoJSON.readString = function(string, callback, opt_obj) { - var object = goog.json.parse(string); - return ol.format.GeoJSON.readObject( - /** @type {GeoJSONObject} */ (object), callback); +ol.format.GeoJSON.prototype.readString = function(string, callback, opt_obj) { + return this.readObject(goog.json.parse(string), callback, opt_obj); }; diff --git a/test/spec/ol/format/geojsonformat.test.js b/test/spec/ol/format/geojsonformat.test.js index 88fb403766..d088fd3591 100644 --- a/test/spec/ol/format/geojsonformat.test.js +++ b/test/spec/ol/format/geojsonformat.test.js @@ -47,10 +47,12 @@ describe('ol.format.GeoJSON', function() { 'features': [pointGeoJSON, lineStringGeoJSON, polygonGeoJSON] }; + var format = new ol.format.GeoJSON(); + describe('readObject', function() { it('can read a single point feature', function() { - var feature = ol.format.GeoJSON.readObject(pointGeoJSON, function(f) { + var feature = format.readObject(pointGeoJSON, function(f) { return f; }); expect(feature).to.be.an(ol.Feature); @@ -61,7 +63,7 @@ describe('ol.format.GeoJSON', function() { }); it('can read a single line string feature', function() { - var feature = ol.format.GeoJSON.readObject(lineStringGeoJSON, + var feature = format.readObject(lineStringGeoJSON, function(f) { return f; }); @@ -75,7 +77,7 @@ describe('ol.format.GeoJSON', function() { }); it('can read a single polygon feature', function() { - var feature = ol.format.GeoJSON.readObject(polygonGeoJSON, function(f) { + var feature = format.readObject(polygonGeoJSON, function(f) { return f; }); expect(feature).to.be.an(ol.Feature); @@ -90,7 +92,7 @@ describe('ol.format.GeoJSON', function() { it('can read a feature collection', function() { var features = []; - ol.format.GeoJSON.readObject(featureCollectionGeoJSON, function(f) { + format.readObject(featureCollectionGeoJSON, function(f) { features.push(f); }); expect(features).to.have.length(3); From e4623af4df65ada42d8ce379eed95b397c275e0a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 01:49:17 +0100 Subject: [PATCH 107/919] Add ol.geom.Geometry#transform --- src/ol/geom/geometry.js | 6 ++++++ src/ol/geom/linestring.js | 13 +++++++++++++ src/ol/geom/multilinestring.js | 17 +++++++++++++++++ src/ol/geom/multipolygon.js | 21 +++++++++++++++++++++ src/ol/geom/polygon.js | 17 +++++++++++++++++ 5 files changed, 74 insertions(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index e3e534e76c..0037f6de4a 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -114,3 +114,9 @@ ol.geom.Geometry.prototype.getStride = function() { * @return {ol.geom.GeometryType} Geometry type. */ ol.geom.Geometry.prototype.getType = goog.abstractMethod; + + +/** + * @param {ol.TransformFunction} transformFn Transform. + */ +ol.geom.Geometry.prototype.transform = goog.abstractMethod; diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index af34ea6417..3750973196 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -62,3 +62,16 @@ ol.geom.LineString.prototype.setCoordinates = function(coordinates) { this.coordinates_ = coordinates; this.dispatchChangeEvent(); }; + + +/** + * @inheritDoc + */ +ol.geom.LineString.prototype.transform = function(transformFn) { + var coordinates = this.coordinates_; + var i, ii; + for (i = 0, ii = coordinates.length; i < ii; ++i) { + var coordinate = coordinates[i]; + transformFn(coordinate, coordinate, 2); + } +}; diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 85370911bb..f42ad41be8 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -65,3 +65,20 @@ ol.geom.MultiLineString.prototype.getType = function() { ol.geom.MultiLineString.prototype.setCoordinatess = function(coordinatess) { this.coordinatess_ = coordinatess; }; + + +/** + * @inheritDoc + */ +ol.geom.MultiLineString.prototype.transform = function(transformFn) { + var coordinatess = this.coordinatess_; + var i, ii; + for (i = 0, ii = coordinatess.length; i < ii; ++i) { + var coordinates = coordinatess[i]; + var j, jj; + for (j = 0, jj = coordinates.length; j < jj; ++j) { + var coordinate = coordinates[j]; + transformFn(coordinate, coordinate, 2); + } + } +}; diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 5d0b6dca13..19f5ca1e08 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -65,3 +65,24 @@ ol.geom.MultiPolygon.prototype.setRingss = function(ringss) { this.ringss_ = ringss; this.dispatchChangeEvent(); }; + + +/** + * @inheritDoc + */ +ol.geom.MultiPolygon.prototype.transform = function(transformFn) { + var ringss = this.ringss_; + var i, ii; + for (i = 0, ii = ringss.length; i < ii; ++i) { + var rings = ringss[i]; + var j, jj; + for (j = 0, jj = rings.length; j < jj; ++j) { + var coordinates = rings[j]; + var k, kk; + for (k = 0, kk = coordinates.length; k < kk; ++k) { + var coordinate = coordinates[k]; + transformFn(coordinate, coordinate, 2); + } + } + } +}; diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 4274964c46..5d84c063b6 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -61,3 +61,20 @@ ol.geom.Polygon.prototype.setRings = function(rings) { this.rings_ = rings; this.dispatchChangeEvent(); }; + + +/** + * @inheritDoc + */ +ol.geom.Polygon.prototype.transform = function(transformFn) { + var rings = this.rings_; + var i, ii; + for (i = 0, ii = rings.length; i < ii; ++i) { + var coordinates = rings[i]; + var j, jj; + for (j = 0, jj = coordinates.length; j < jj; ++j) { + var coordinate = coordinates[j]; + transformFn(coordinate, coordinate, 2); + } + } +}; From a89c9b17ef52d8b2cb922e39305b6694187abb80 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 01:49:33 +0100 Subject: [PATCH 108/919] Add countries example --- examples/countries.html | 50 ++++++++++++++++++++++++++++++++++++++ examples/countries.js | 54 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 examples/countries.html create mode 100644 examples/countries.js diff --git a/examples/countries.html b/examples/countries.html new file mode 100644 index 0000000000..d80dc85042 --- /dev/null +++ b/examples/countries.html @@ -0,0 +1,50 @@ + + + + + + + + + + + Countries example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Countries example

+

Example of a loading GeoJSON map.

+
+

See the countries.js source to see how this is done.

+
+
geojson
+
+ +
+ +
+ + + + + + diff --git a/examples/countries.js b/examples/countries.js new file mode 100644 index 0000000000..118aff65fc --- /dev/null +++ b/examples/countries.js @@ -0,0 +1,54 @@ +goog.require('goog.asserts'); +goog.require('goog.functions'); +goog.require('goog.net.XhrIo'); +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.format.GeoJSON'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.proj'); +goog.require('ol.source.MapQuestOpenAerial'); +goog.require('ol.source.Vector'); + +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + source: new ol.source.MapQuestOpenAerial() + }) + ], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); + +goog.net.XhrIo.send('data/countries.geojson', function(event) { + var xhrIo = /** @type {goog.net.XhrIo} */ (event.target); + if (xhrIo.isSuccess()) { + var format = new ol.format.GeoJSON(); + var object = xhrIo.getResponseJson(); + var vectorSource = new ol.source.Vector(); + goog.asserts.assert(goog.isDefAndNotNull(object)); + var transformFn = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); + format.readObject(object, function(feature) { + var geometry = feature.getGeometry(); + geometry.transform(transformFn); + feature.setGeometry(geometry); + vectorSource.addFeature(feature); + }); + map.getLayers().push(new ol.layer.Vector({ + source: vectorSource, + styleFunction: goog.functions.constant({ + fill: { + color: 'rgba(255, 255, 255, 0.6)' + }, + stroke: { + color: '#319FD3' + } + }) + })); + } +}); From 27ab7da5ee9ee6d5ddc170f47b4ed4301bcae437 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 14:07:59 +0100 Subject: [PATCH 109/919] Add raw geometry types --- src/ol/geom/geometry.js | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 0037f6de4a..c4776c565e 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -120,3 +120,46 @@ ol.geom.Geometry.prototype.getType = goog.abstractMethod; * @param {ol.TransformFunction} transformFn Transform. */ ol.geom.Geometry.prototype.transform = goog.abstractMethod; + + +/** + * @typedef {ol.Coordinate} + */ +ol.geom.RawPoint; + + +/** + * @typedef {Array.} + */ +ol.geom.RawLineString; + + +/** + * @typedef {Array.} + * + */ +ol.geom.RawLinearRing; + + +/** + * @typedef {Array.} + */ +ol.geom.RawPolygon; + + +/** + * @typedef {Array.} + */ +ol.geom.RawMultiPoint; + + +/** + * @typedef {Array.} + */ +ol.geom.RawMultiLineString; + + +/** + * @typedef {Array.} + */ +ol.geom.RawMultiPolygon; From cfaad0eff1114162da7ba8deaa4282e17620202a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 14:08:33 +0100 Subject: [PATCH 110/919] Use raw geometry types --- src/ol/geom/linestring.js | 8 ++++---- src/ol/geom/multilinestring.js | 8 ++++---- src/ol/geom/multipolygon.js | 8 ++++---- src/ol/geom/point.js | 8 ++++---- src/ol/geom/polygon.js | 8 ++++---- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 3750973196..ad9dc96026 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -9,7 +9,7 @@ goog.require('ol.geom.Geometry'); /** * @constructor * @extends {ol.geom.Geometry} - * @param {Array.} coordinates Coordinates. + * @param {ol.geom.RawLineString} coordinates Coordinates. */ ol.geom.LineString = function(coordinates) { @@ -17,7 +17,7 @@ ol.geom.LineString = function(coordinates) { /** * @private - * @type {Array.>} + * @type {ol.geom.RawLineString} */ this.coordinates_ = coordinates; @@ -26,7 +26,7 @@ goog.inherits(ol.geom.LineString, ol.geom.Geometry); /** - * @return {Array.>} Coordinates. + * @return {ol.geom.RawLineString} Coordinates. */ ol.geom.LineString.prototype.getCoordinates = function() { return this.coordinates_; @@ -56,7 +56,7 @@ ol.geom.LineString.prototype.getType = function() { /** - * @param {Array.} coordinates Coordinates. + * @param {ol.geom.RawLineString} coordinates Coordinates. */ ol.geom.LineString.prototype.setCoordinates = function(coordinates) { this.coordinates_ = coordinates; diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index f42ad41be8..5c9649d6fd 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -9,7 +9,7 @@ goog.require('ol.geom.Geometry'); /** * @constructor * @extends {ol.geom.Geometry} - * @param {Array.>} coordinatess Coordinatess. + * @param {ol.geom.RawMultiLineString} coordinatess Coordinatess. */ ol.geom.MultiLineString = function(coordinatess) { @@ -17,7 +17,7 @@ ol.geom.MultiLineString = function(coordinatess) { /** * @private - * @type {Array.>} + * @type {ol.geom.RawMultiLineString} */ this.coordinatess_ = coordinatess; @@ -26,7 +26,7 @@ goog.inherits(ol.geom.MultiLineString, ol.geom.Geometry); /** - * @return {Array.>} Coordinatess. + * @return {ol.geom.RawMultiLineString} Coordinatess. */ ol.geom.MultiLineString.prototype.getCoordinatess = function() { return this.coordinatess_; @@ -60,7 +60,7 @@ ol.geom.MultiLineString.prototype.getType = function() { /** - * @param {Array.>} coordinatess Coordinatess. + * @param {ol.geom.RawMultiLineString} coordinatess Coordinatess. */ ol.geom.MultiLineString.prototype.setCoordinatess = function(coordinatess) { this.coordinatess_ = coordinatess; diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 19f5ca1e08..24205a9b0c 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -9,7 +9,7 @@ goog.require('ol.geom.Geometry'); /** * @constructor * @extends {ol.geom.Geometry} - * @param {Array.>>} ringss Ringss. + * @param {ol.geom.RawMultiPolygon} ringss Ringss. */ ol.geom.MultiPolygon = function(ringss) { @@ -17,7 +17,7 @@ ol.geom.MultiPolygon = function(ringss) { /** * @private - * @type {Array.>>} + * @type {ol.geom.RawMultiPolygon} */ this.ringss_ = ringss; @@ -43,7 +43,7 @@ ol.geom.MultiPolygon.prototype.getExtent = function(opt_extent) { /** - * @return {Array.>>} Ringss. + * @return {ol.geom.RawMultiPolygon} Ringss. */ ol.geom.MultiPolygon.prototype.getRingss = function() { return this.ringss_; @@ -59,7 +59,7 @@ ol.geom.MultiPolygon.prototype.getType = function() { /** - * @param {Array.>>} ringss Ringss. + * @param {ol.geom.RawMultiPolygon} ringss Ringss. */ ol.geom.MultiPolygon.prototype.setRingss = function(ringss) { this.ringss_ = ringss; diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index f006a061f9..90ff74b821 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -9,7 +9,7 @@ goog.require('ol.geom.Geometry'); /** * @constructor * @extends {ol.geom.Geometry} - * @param {ol.Coordinate} coordinate Coordinate. + * @param {ol.geom.RawPoint} coordinate Coordinate. */ ol.geom.Point = function(coordinate) { @@ -17,7 +17,7 @@ ol.geom.Point = function(coordinate) { /** * @private - * @type {Array.} + * @type {ol.geom.RawPoint} */ this.coordinate_ = coordinate; @@ -26,7 +26,7 @@ goog.inherits(ol.geom.Point, ol.geom.Geometry); /** - * @return {ol.Coordinate} Coordinate. + * @return {ol.geom.RawPoint} Coordinate. */ ol.geom.Point.prototype.getCoordinate = function() { return this.coordinate_; @@ -56,7 +56,7 @@ ol.geom.Point.prototype.getType = function() { /** - * @param {ol.Coordinate} coordinate Coordinate. + * @param {ol.geom.RawPoint} coordinate Coordinate. */ ol.geom.Point.prototype.setCoordinate = function(coordinate) { this.coordinate_ = coordinate; diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 5d84c063b6..eb1ad7651f 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -9,7 +9,7 @@ goog.require('ol.geom.Geometry'); /** * @constructor * @extends {ol.geom.Geometry} - * @param {Array.>} rings Rings. + * @param {ol.geom.RawPolygon} rings Rings. */ ol.geom.Polygon = function(rings) { @@ -17,7 +17,7 @@ ol.geom.Polygon = function(rings) { /** * @private - * @type {Array.>} + * @type {ol.geom.RawPolygon} */ this.rings_ = rings; @@ -39,7 +39,7 @@ ol.geom.Polygon.prototype.getExtent = function(opt_extent) { /** - * @return {Array.>} Rings. + * @return {ol.geom.RawPolygon} Rings. */ ol.geom.Polygon.prototype.getRings = function() { return this.rings_; @@ -55,7 +55,7 @@ ol.geom.Polygon.prototype.getType = function() { /** - * @param {Array.>} rings Rings. + * @param {ol.geom.RawPolygon} rings Rings. */ ol.geom.Polygon.prototype.setRings = function(rings) { this.rings_ = rings; From 2d2140ebf474dc9a89debfac5187725bc1aa9547 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 15:40:15 +0100 Subject: [PATCH 111/919] Add ol.extent.extendFlatCoordinates --- src/ol/extent.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ol/extent.js b/src/ol/extent.js index 2346c5fbcf..edd58791a6 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -259,6 +259,21 @@ ol.extent.extendCoordinates = function(extent, coordinates) { }; +/** + * @param {ol.Extent} extent Extent. + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} stride Stride. + * @return {ol.Extent} Extent. + */ +ol.extent.extendFlatCoordinates = function(extent, flatCoordinates, stride) { + var i, ii; + for (i = 0, ii = flatCoordinates.length; i < ii; i += stride) { + ol.extent.extendXY(extent, flatCoordinates[i], flatCoordinates[i + 1]); + } + return extent; +}; + + /** * @param {ol.Extent} extent Extent. * @param {Array.>} rings Rings. From 676792692e12d1e898ac85e2a28b868d7d492ad4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 15:40:27 +0100 Subject: [PATCH 112/919] Add ol.extent.createOrUpdateFromFlatCoordinates --- src/ol/extent.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/ol/extent.js b/src/ol/extent.js index edd58791a6..96f47a11ec 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -167,6 +167,19 @@ ol.extent.createOrUpdateFromCoordinates = function(coordinates, opt_extent) { }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} stride Stride. + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} Extent. + */ +ol.extent.createOrUpdateFromFlatCoordinates = + function(flatCoordinates, stride, opt_extent) { + var extent = ol.extent.createOrUpdateEmpty(opt_extent); + return ol.extent.extendFlatCoordinates(extent, flatCoordinates, stride); +}; + + /** * @param {Array.>} rings Rings. * @param {ol.Extent=} opt_extent Extent. From f67fa27c9eefe530ad387e9aac713f1955d5e1e4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 15:41:27 +0100 Subject: [PATCH 113/919] Add ol.geom.{in,de}flateCoordinates --- src/ol/geom/geometry.js | 43 ++++++++++++++++++++++++++++++++++ test/spec/ol/geom/geom.test.js | 31 ++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 test/spec/ol/geom/geom.test.js diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index c4776c565e..2c921ec046 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -163,3 +163,46 @@ ol.geom.RawMultiLineString; * @typedef {Array.} */ ol.geom.RawMultiPolygon; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} coordinates Coordinates. + * @param {number} stride Stride. + * @return {number} offset Offset. + */ +ol.geom.deflateCoordinates = + function(flatCoordinates, offset, coordinates, stride) { + var i, ii; + for (i = 0, ii = coordinates.length; i < ii; ++i) { + var coordinate = coordinates[i]; + goog.asserts.assert(coordinate.length == stride); + var j; + for (j = 0; j < stride; ++j) { + flatCoordinates[offset++] = coordinate[j]; + } + } + return offset; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {Array.=} opt_coordinates Coordinates. + * @return {Array.} Coordinates. + */ +ol.geom.inflateCoordinates = + function(flatCoordinates, offset, end, stride, opt_coordinates) { + var coordinates = goog.isDef(opt_coordinates) ? opt_coordinates : []; + var i = 0; + var j; + for (j = offset; j < end; j += stride) { + coordinates[i++] = flatCoordinates.slice(j, j + stride); + } + coordinates.length = i; + return coordinates; +}; diff --git a/test/spec/ol/geom/geom.test.js b/test/spec/ol/geom/geom.test.js new file mode 100644 index 0000000000..c64a21ee83 --- /dev/null +++ b/test/spec/ol/geom/geom.test.js @@ -0,0 +1,31 @@ +goog.provide('ol.test.geom'); + + +describe('ol.geom', function() { + + describe('ol.geom.deflateCoordinates', function() { + + var flatCoordinates; + beforeEach(function() { + flatCoordinates = []; + }); + + it('flattens coordinates', function() { + var offset = ol.geom.deflateCoordinates( + flatCoordinates, 0, [[1, 2], [3, 4]], 2); + expect(offset).to.be(4); + expect(flatCoordinates).to.eql([1, 2, 3, 4]); + }); + + }); + + describe('ol.geom.inflateCoordinates', function() { + + it('inflates coordinates', function() { + var coordinates = ol.geom.inflateCoordinates([1, 2, 3, 4], 0, 4, 2); + expect(coordinates).to.eql([[1, 2], [3, 4]]); + }); + + }); + +}); From a415b66e88798bc16b8039f9bf41532b76b9c7dc Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 15:42:32 +0100 Subject: [PATCH 114/919] Refactor ol.geom.Geometry to support Z, M and flat coordinates --- src/ol/geom/geometry.js | 99 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 88 insertions(+), 11 deletions(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 2c921ec046..2b27e6781e 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -1,12 +1,12 @@ // FIXME add MultiPoint // FIXME add GeometryCollection -// FIXME add Z and M support -// FIXME use flat coordinate arrays goog.provide('ol.geom.Geometry'); +goog.require('goog.asserts'); goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); +goog.require('ol.extent'); /** @@ -24,7 +24,7 @@ ol.geom.GeometryType = { /** * @enum {string} */ -ol.geom.GeometryLayout = { +ol.geom.Layout = { XY: 'XY', XYZ: 'XYZ', XYM: 'XYM', @@ -36,17 +36,28 @@ ol.geom.GeometryLayout = { /** * @constructor * @extends {goog.events.EventTarget} - * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ -ol.geom.Geometry = function(opt_layout) { +ol.geom.Geometry = function() { goog.base(this); /** * @protected - * @type {ol.geom.GeometryLayout} + * @type {ol.geom.Layout} */ - this.layout = goog.isDef(opt_layout) ? opt_layout : ol.geom.GeometryLayout.XY; + this.layout = ol.geom.Layout.XY; + + /** + * @protected + * @type {number} + */ + this.stride = 2; + + /** + * @protected + * @type {Array.} + */ + this.flatCoordinates = []; /** * @protected @@ -83,11 +94,27 @@ ol.geom.Geometry.prototype.dispatchChangeEvent = function() { * @param {ol.Extent=} opt_extent Extent. * @return {ol.Extent} extent Extent. */ -ol.geom.Geometry.prototype.getExtent = goog.abstractMethod; +ol.geom.Geometry.prototype.getExtent = function(opt_extent) { + if (this.extentRevision != this.revision) { + this.extent = ol.extent.createOrUpdateFromFlatCoordinates( + this.flatCoordinates, this.stride, this.extent); + this.extentRevision = this.revision; + } + goog.asserts.assert(goog.isDef(this.extent)); + return ol.extent.returnOrUpdate(this.extent, opt_extent); +}; /** - * @return {ol.geom.GeometryLayout} Layout. + * @return {Array.} Flat coordinates. + */ +ol.geom.Geometry.prototype.getFlatCoordinates = function() { + return this.flatCoordinates; +}; + + +/** + * @return {ol.geom.Layout} Layout. */ ol.geom.Geometry.prototype.getLayout = function() { return this.layout; @@ -106,7 +133,7 @@ ol.geom.Geometry.prototype.getRevision = function() { * @return {number} Stride. */ ol.geom.Geometry.prototype.getStride = function() { - return this.layout.length; + return this.stride; }; @@ -116,10 +143,60 @@ ol.geom.Geometry.prototype.getStride = function() { ol.geom.Geometry.prototype.getType = goog.abstractMethod; +/** + * @param {ol.geom.Layout|undefined} layout Layout. + * @param {Array} coordinates Coordinates. + * @param {number} nesting Nesting. + * @protected + */ +ol.geom.Geometry.prototype.setLayout = + function(layout, coordinates, nesting) { + var stride; + if (goog.isDef(layout)) { + if (layout == ol.geom.Layout.XY) { + stride = 2; + } else if (layout == ol.geom.Layout.XYZ) { + stride = 3; + } else if (layout == ol.geom.Layout.XYM) { + stride = 3; + } else if (layout == ol.geom.Layout.XYZM) { + stride = 4; + } else { + throw new Error('unsupported layout: ' + layout); + } + } else { + var i; + for (i = 0; i < nesting; ++i) { + if (coordinates.length === 0) { + this.layout = ol.geom.Layout.XY; + this.stride = 2; + return; + } else { + coordinates = coordinates[0]; + } + } + stride = coordinates.length; + if (stride == 2) { + layout = ol.geom.Layout.XY; + } else if (stride == 3) { + layout = ol.geom.Layout.XYZ; + } else if (stride == 4) { + layout = ol.geom.Layout.XYZM; + } else { + throw new Error('unsupported stride: ' + stride); + } + } + this.layout = layout; + this.stride = stride; +}; + + /** * @param {ol.TransformFunction} transformFn Transform. */ -ol.geom.Geometry.prototype.transform = goog.abstractMethod; +ol.geom.Geometry.prototype.transform = function(transformFn) { + transformFn(this.flatCoordinates, this.flatCoordinates, this.stride); +}; /** From ec748f254ed0c9d7e1fb332d8d2d531958a01c2e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 15:43:09 +0100 Subject: [PATCH 115/919] Refactor ol.geom.LineString --- src/ol/geom/linestring.js | 51 ++------- test/spec/ol/geom/linestring.test.js | 156 +++++++++++++++++++++++++++ 2 files changed, 166 insertions(+), 41 deletions(-) create mode 100644 test/spec/ol/geom/linestring.test.js diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index ad9dc96026..3daab3ff70 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -1,7 +1,5 @@ goog.provide('ol.geom.LineString'); -goog.require('goog.asserts'); -goog.require('ol.extent'); goog.require('ol.geom.Geometry'); @@ -10,17 +8,11 @@ goog.require('ol.geom.Geometry'); * @constructor * @extends {ol.geom.Geometry} * @param {ol.geom.RawLineString} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.LineString = function(coordinates) { - +ol.geom.LineString = function(coordinates, opt_layout) { goog.base(this); - - /** - * @private - * @type {ol.geom.RawLineString} - */ - this.coordinates_ = coordinates; - + this.setCoordinates(coordinates, opt_layout); }; goog.inherits(ol.geom.LineString, ol.geom.Geometry); @@ -29,21 +21,8 @@ goog.inherits(ol.geom.LineString, ol.geom.Geometry); * @return {ol.geom.RawLineString} Coordinates. */ ol.geom.LineString.prototype.getCoordinates = function() { - return this.coordinates_; -}; - - -/** - * @inheritDoc - */ -ol.geom.LineString.prototype.getExtent = function(opt_extent) { - if (this.extentRevision != this.revision) { - this.extent = ol.extent.createOrUpdateFromCoordinates( - this.coordinates_, this.extent); - this.extentRevision = this.revision; - } - goog.asserts.assert(goog.isDef(this.extent)); - return ol.extent.returnOrUpdate(this.extent, opt_extent); + return ol.geom.inflateCoordinates( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride); }; @@ -57,21 +36,11 @@ ol.geom.LineString.prototype.getType = function() { /** * @param {ol.geom.RawLineString} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.LineString.prototype.setCoordinates = function(coordinates) { - this.coordinates_ = coordinates; +ol.geom.LineString.prototype.setCoordinates = + function(coordinates, opt_layout) { + this.setLayout(opt_layout, coordinates, 1); + ol.geom.deflateCoordinates(this.flatCoordinates, 0, coordinates, this.stride); this.dispatchChangeEvent(); }; - - -/** - * @inheritDoc - */ -ol.geom.LineString.prototype.transform = function(transformFn) { - var coordinates = this.coordinates_; - var i, ii; - for (i = 0, ii = coordinates.length; i < ii; ++i) { - var coordinate = coordinates[i]; - transformFn(coordinate, coordinate, 2); - } -}; diff --git a/test/spec/ol/geom/linestring.test.js b/test/spec/ol/geom/linestring.test.js new file mode 100644 index 0000000000..b16b628a57 --- /dev/null +++ b/test/spec/ol/geom/linestring.test.js @@ -0,0 +1,156 @@ +goog.provide('ol.test.geom.LineString'); + + +describe('ol.geom.LineString', function() { + + describe('construct empty', function() { + + var lineString; + beforeEach(function() { + lineString = new ol.geom.LineString([]); + }); + + it('defaults to layout XY', function() { + expect(lineString.getLayout()).to.be(ol.geom.Layout.XY); + }); + + it('has empty coordinates', function() { + expect(lineString.getCoordinates()).to.be.empty(); + }); + + it('has an empty extent', function() { + expect(ol.extent.isEmpty(lineString.getExtent())).to.be(true); + }); + + it('has empty flat coordinates', function() { + expect(lineString.getFlatCoordinates()).to.be.empty(); + }); + + it('has stride the expected stride', function() { + expect(lineString.getStride()).to.be(2); + }); + + }); + + describe('construct with 2D coordinates', function() { + + var lineString; + beforeEach(function() { + lineString = new ol.geom.LineString([[1, 2], [3, 4]]); + }); + + it('has the expected layout', function() { + expect(lineString.getLayout()).to.be(ol.geom.Layout.XY); + }); + + it('has the expected coordinates', function() { + expect(lineString.getCoordinates()).to.eql([[1, 2], [3, 4]]); + }); + + it('has the expected extent', function() { + expect(lineString.getExtent()).to.eql([1, 2, 3, 4]); + }); + + it('has the expected flat coordinates', function() { + expect(lineString.getFlatCoordinates()).to.eql([1, 2, 3, 4]); + }); + + it('has stride the expected stride', function() { + expect(lineString.getStride()).to.be(2); + }); + + }); + + describe('construct with 3D coordinates', function() { + + var lineString; + beforeEach(function() { + lineString = new ol.geom.LineString([[1, 2, 3], [4, 5, 6]]); + }); + + it('has the expected layout', function() { + expect(lineString.getLayout()).to.be(ol.geom.Layout.XYZ); + }); + + it('has the expected coordinates', function() { + expect(lineString.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]); + }); + + it('has the expected extent', function() { + expect(lineString.getExtent()).to.eql([1, 2, 4, 5]); + }); + + it('has the expected flat coordinates', function() { + expect(lineString.getFlatCoordinates()).to.eql([1, 2, 3, 4, 5, 6]); + }); + + it('has the expected stride', function() { + expect(lineString.getStride()).to.be(3); + }); + + }); + + describe('construct with 3D coordinates and layout XYM', function() { + + var lineString; + beforeEach(function() { + lineString = new ol.geom.LineString( + [[1, 2, 3], [4, 5, 6]], ol.geom.Layout.XYM); + }); + + it('has the expected layout', function() { + expect(lineString.getLayout()).to.be(ol.geom.Layout.XYM); + }); + + it('has the expected coordinates', function() { + expect(lineString.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]); + }); + + it('has the expected extent', function() { + expect(lineString.getExtent()).to.eql([1, 2, 4, 5]); + }); + + it('has the expected flat coordinates', function() { + expect(lineString.getFlatCoordinates()).to.eql([1, 2, 3, 4, 5, 6]); + }); + + it('has the expected stride', function() { + expect(lineString.getStride()).to.be(3); + }); + + }); + + describe('construct with 4D coordinates', function() { + + var lineString; + beforeEach(function() { + lineString = new ol.geom.LineString([[1, 2, 3, 4], [5, 6, 7, 8]]); + }); + + it('has the expected layout', function() { + expect(lineString.getLayout()).to.be(ol.geom.Layout.XYZM); + }); + + it('has the expected coordinates', function() { + expect(lineString.getCoordinates()).to.eql([[1, 2, 3, 4], [5, 6, 7, 8]]); + }); + + it('has the expected extent', function() { + expect(lineString.getExtent()).to.eql([1, 2, 5, 6]); + }); + + it('has the expected flat coordinates', function() { + expect(lineString.getFlatCoordinates()).to.eql([1, 2, 3, 4, 5, 6, 7, 8]); + }); + + it('has the expected stride', function() { + expect(lineString.getStride()).to.be(4); + }); + + }); + +}); + + +goog.require('ol.extent'); +goog.require('ol.geom.LineString'); From 6d32756adf5421cbdf6397bb6eba054375e95e2f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 15:50:15 +0100 Subject: [PATCH 116/919] Add ol.geom.MultiPoint --- src/ol/geom/geometry.js | 2 +- src/ol/geom/multipoint.js | 46 ++++++++ test/spec/ol/geom/multipoint.test.js | 156 +++++++++++++++++++++++++++ 3 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 src/ol/geom/multipoint.js create mode 100644 test/spec/ol/geom/multipoint.test.js diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 2b27e6781e..0e5c95944f 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -1,4 +1,3 @@ -// FIXME add MultiPoint // FIXME add GeometryCollection goog.provide('ol.geom.Geometry'); @@ -16,6 +15,7 @@ ol.geom.GeometryType = { POINT: 'Point', LINE_STRING: 'LineString', POLYGON: 'Polygon', + MULTI_POINT: 'MultiPoint', MULTI_LINE_STRING: 'MultiLineString', MULTI_POLYGON: 'MultiPolygon' }; diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js new file mode 100644 index 0000000000..7f2f7af09d --- /dev/null +++ b/src/ol/geom/multipoint.js @@ -0,0 +1,46 @@ +goog.provide('ol.geom.MultiPoint'); + +goog.require('ol.geom.Geometry'); + + + +/** + * @constructor + * @extends {ol.geom.Geometry} + * @param {ol.geom.RawMultiPoint} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. + */ +ol.geom.MultiPoint = function(coordinates, opt_layout) { + goog.base(this); + this.setCoordinates(coordinates, opt_layout); +}; +goog.inherits(ol.geom.MultiPoint, ol.geom.Geometry); + + +/** + * @return {ol.geom.RawMultiPoint} Coordinates. + */ +ol.geom.MultiPoint.prototype.getCoordinates = function() { + return ol.geom.inflateCoordinates( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride); +}; + + +/** + * @inheritDoc + */ +ol.geom.MultiPoint.prototype.getType = function() { + return ol.geom.GeometryType.MULTI_POINT; +}; + + +/** + * @param {ol.geom.RawMultiPoint} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. + */ +ol.geom.MultiPoint.prototype.setCoordinates = + function(coordinates, opt_layout) { + this.setLayout(opt_layout, coordinates, 1); + ol.geom.deflateCoordinates(this.flatCoordinates, 0, coordinates, this.stride); + this.dispatchChangeEvent(); +}; diff --git a/test/spec/ol/geom/multipoint.test.js b/test/spec/ol/geom/multipoint.test.js new file mode 100644 index 0000000000..18065bf18f --- /dev/null +++ b/test/spec/ol/geom/multipoint.test.js @@ -0,0 +1,156 @@ +goog.provide('ol.test.geom.MultiPoint'); + + +describe('ol.geom.MultiPoint', function() { + + describe('construct empty', function() { + + var multiPoint; + beforeEach(function() { + multiPoint = new ol.geom.MultiPoint([]); + }); + + it('defaults to layout XY', function() { + expect(multiPoint.getLayout()).to.be(ol.geom.Layout.XY); + }); + + it('has empty coordinates', function() { + expect(multiPoint.getCoordinates()).to.be.empty(); + }); + + it('has an empty extent', function() { + expect(ol.extent.isEmpty(multiPoint.getExtent())).to.be(true); + }); + + it('has empty flat coordinates', function() { + expect(multiPoint.getFlatCoordinates()).to.be.empty(); + }); + + it('has stride the expected stride', function() { + expect(multiPoint.getStride()).to.be(2); + }); + + }); + + describe('construct with 2D coordinates', function() { + + var multiPoint; + beforeEach(function() { + multiPoint = new ol.geom.MultiPoint([[1, 2], [3, 4]]); + }); + + it('has the expected layout', function() { + expect(multiPoint.getLayout()).to.be(ol.geom.Layout.XY); + }); + + it('has the expected coordinates', function() { + expect(multiPoint.getCoordinates()).to.eql([[1, 2], [3, 4]]); + }); + + it('has the expected extent', function() { + expect(multiPoint.getExtent()).to.eql([1, 2, 3, 4]); + }); + + it('has the expected flat coordinates', function() { + expect(multiPoint.getFlatCoordinates()).to.eql([1, 2, 3, 4]); + }); + + it('has stride the expected stride', function() { + expect(multiPoint.getStride()).to.be(2); + }); + + }); + + describe('construct with 3D coordinates', function() { + + var multiPoint; + beforeEach(function() { + multiPoint = new ol.geom.MultiPoint([[1, 2, 3], [4, 5, 6]]); + }); + + it('has the expected layout', function() { + expect(multiPoint.getLayout()).to.be(ol.geom.Layout.XYZ); + }); + + it('has the expected coordinates', function() { + expect(multiPoint.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]); + }); + + it('has the expected extent', function() { + expect(multiPoint.getExtent()).to.eql([1, 2, 4, 5]); + }); + + it('has the expected flat coordinates', function() { + expect(multiPoint.getFlatCoordinates()).to.eql([1, 2, 3, 4, 5, 6]); + }); + + it('has the expected stride', function() { + expect(multiPoint.getStride()).to.be(3); + }); + + }); + + describe('construct with 3D coordinates and layout XYM', function() { + + var multiPoint; + beforeEach(function() { + multiPoint = new ol.geom.MultiPoint( + [[1, 2, 3], [4, 5, 6]], ol.geom.Layout.XYM); + }); + + it('has the expected layout', function() { + expect(multiPoint.getLayout()).to.be(ol.geom.Layout.XYM); + }); + + it('has the expected coordinates', function() { + expect(multiPoint.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]); + }); + + it('has the expected extent', function() { + expect(multiPoint.getExtent()).to.eql([1, 2, 4, 5]); + }); + + it('has the expected flat coordinates', function() { + expect(multiPoint.getFlatCoordinates()).to.eql([1, 2, 3, 4, 5, 6]); + }); + + it('has the expected stride', function() { + expect(multiPoint.getStride()).to.be(3); + }); + + }); + + describe('construct with 4D coordinates', function() { + + var multiPoint; + beforeEach(function() { + multiPoint = new ol.geom.MultiPoint([[1, 2, 3, 4], [5, 6, 7, 8]]); + }); + + it('has the expected layout', function() { + expect(multiPoint.getLayout()).to.be(ol.geom.Layout.XYZM); + }); + + it('has the expected coordinates', function() { + expect(multiPoint.getCoordinates()).to.eql([[1, 2, 3, 4], [5, 6, 7, 8]]); + }); + + it('has the expected extent', function() { + expect(multiPoint.getExtent()).to.eql([1, 2, 5, 6]); + }); + + it('has the expected flat coordinates', function() { + expect(multiPoint.getFlatCoordinates()).to.eql([1, 2, 3, 4, 5, 6, 7, 8]); + }); + + it('has the expected stride', function() { + expect(multiPoint.getStride()).to.be(4); + }); + + }); + +}); + + +goog.require('ol.extent'); +goog.require('ol.geom.MultiPoint'); From a89bf0c3295439cf95b25241bdcb24485ccf6048 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 16:05:30 +0100 Subject: [PATCH 117/919] Refactor ol.geom.Point --- src/ol/geom/point.js | 30 +++---- test/spec/ol/format/geojsonformat.test.js | 2 +- test/spec/ol/geom/point.test.js | 97 +++++++++++++++++++++++ test/spec/ol/source/vectorsource.test.js | 6 +- 4 files changed, 114 insertions(+), 21 deletions(-) create mode 100644 test/spec/ol/geom/point.test.js diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index 90ff74b821..38e7f4eb81 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -9,27 +9,21 @@ goog.require('ol.geom.Geometry'); /** * @constructor * @extends {ol.geom.Geometry} - * @param {ol.geom.RawPoint} coordinate Coordinate. + * @param {ol.geom.RawPoint} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.Point = function(coordinate) { - +ol.geom.Point = function(coordinates, opt_layout) { goog.base(this); - - /** - * @private - * @type {ol.geom.RawPoint} - */ - this.coordinate_ = coordinate; - + this.setCoordinates(coordinates, opt_layout); }; goog.inherits(ol.geom.Point, ol.geom.Geometry); /** - * @return {ol.geom.RawPoint} Coordinate. + * @return {ol.geom.RawPoint} Coordinates. */ -ol.geom.Point.prototype.getCoordinate = function() { - return this.coordinate_; +ol.geom.Point.prototype.getCoordinates = function() { + return this.flatCoordinates.slice(); }; @@ -39,7 +33,7 @@ ol.geom.Point.prototype.getCoordinate = function() { ol.geom.Point.prototype.getExtent = function(opt_extent) { if (this.extentRevision != this.revision) { this.extent = ol.extent.createOrUpdateFromCoordinate( - this.coordinate_, this.extent); + this.flatCoordinates, this.extent); this.extentRevision = this.revision; } goog.asserts.assert(goog.isDef(this.extent)); @@ -56,9 +50,11 @@ ol.geom.Point.prototype.getType = function() { /** - * @param {ol.geom.RawPoint} coordinate Coordinate. + * @param {ol.geom.RawPoint} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.Point.prototype.setCoordinate = function(coordinate) { - this.coordinate_ = coordinate; +ol.geom.Point.prototype.setCoordinates = function(coordinates, opt_layout) { + this.setLayout(opt_layout, coordinates, 0); + this.flatCoordinates = coordinates; this.dispatchChangeEvent(); }; diff --git a/test/spec/ol/format/geojsonformat.test.js b/test/spec/ol/format/geojsonformat.test.js index d088fd3591..155bcb02f4 100644 --- a/test/spec/ol/format/geojsonformat.test.js +++ b/test/spec/ol/format/geojsonformat.test.js @@ -58,7 +58,7 @@ describe('ol.format.GeoJSON', function() { expect(feature).to.be.an(ol.Feature); var geometry = feature.getGeometry(); expect(geometry).to.be.an(ol.geom.Point); - expect(geometry.getCoordinate()).to.eql([102.0, 0.5]); + expect(geometry.getCoordinates()).to.eql([102.0, 0.5]); expect(feature.get('prop0')).to.be('value0'); }); diff --git a/test/spec/ol/geom/point.test.js b/test/spec/ol/geom/point.test.js new file mode 100644 index 0000000000..cea7644fe7 --- /dev/null +++ b/test/spec/ol/geom/point.test.js @@ -0,0 +1,97 @@ +goog.provide('ol.test.geom.Point'); + + +describe('ol.geom.Point', function() { + + describe('construct with 2D coordinates', function() { + + var point; + beforeEach(function() { + point = new ol.geom.Point([1, 2]); + }); + + it('has the expected layout', function() { + expect(point.getLayout()).to.be(ol.geom.Layout.XY); + }); + + it('has the expected coordinates', function() { + expect(point.getCoordinates()).to.eql([1, 2]); + }); + + it('has the expected extent', function() { + expect(point.getExtent()).to.eql([1, 2, 1, 2]); + }); + + it('has the expected flat coordinates', function() { + expect(point.getFlatCoordinates()).to.eql([1, 2]); + }); + + it('has stride the expected stride', function() { + expect(point.getStride()).to.be(2); + }); + + }); + + describe('construct with 3D coordinates and layout XYM', function() { + + var point; + beforeEach(function() { + point = new ol.geom.Point([1, 2, 3], ol.geom.Layout.XYM); + }); + + it('has the expected layout', function() { + expect(point.getLayout()).to.be(ol.geom.Layout.XYM); + }); + + it('has the expected coordinates', function() { + expect(point.getCoordinates()).to.eql([1, 2, 3]); + }); + + it('has the expected extent', function() { + expect(point.getExtent()).to.eql([1, 2, 1, 2]); + }); + + it('has the expected flat coordinates', function() { + expect(point.getFlatCoordinates()).to.eql([1, 2, 3]); + }); + + it('has the expected stride', function() { + expect(point.getStride()).to.be(3); + }); + + }); + + describe('construct with 4D coordinates', function() { + + var point; + beforeEach(function() { + point = new ol.geom.Point([1, 2, 3, 4]); + }); + + it('has the expected layout', function() { + expect(point.getLayout()).to.be(ol.geom.Layout.XYZM); + }); + + it('has the expected coordinates', function() { + expect(point.getCoordinates()).to.eql([1, 2, 3, 4]); + }); + + it('has the expected extent', function() { + expect(point.getExtent()).to.eql([1, 2, 1, 2]); + }); + + it('has the expected flat coordinates', function() { + expect(point.getFlatCoordinates()).to.eql([1, 2, 3, 4]); + }); + + it('has the expected stride', function() { + expect(point.getStride()).to.be(4); + }); + + }); + +}); + + +goog.require('ol.extent'); +goog.require('ol.geom.Point'); diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js index 9f227eef24..8ade73ae36 100644 --- a/test/spec/ol/source/vectorsource.test.js +++ b/test/spec/ol/source/vectorsource.test.js @@ -128,7 +128,7 @@ describe('ol.source.Vector', function() { it('fires a change event', function() { var listener = sinon.spy(); goog.events.listen(vectorSource, 'change', listener); - features[0].getGeometry().setCoordinate([100, 100]); + features[0].getGeometry().setCoordinates([100, 100]); expect(listener).to.be.called(); }); @@ -136,10 +136,10 @@ describe('ol.source.Vector', function() { it('keeps the R-Tree index up to date', function() { expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). to.have.length(10); - features[0].getGeometry().setCoordinate([100, 100]); + features[0].getGeometry().setCoordinates([100, 100]); expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). to.have.length(9); - features[0].getGeometry().setCoordinate([0.5, 0.5]); + features[0].getGeometry().setCoordinates([0.5, 0.5]); expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). to.have.length(10); }); From 774092903692f099659cda71d790aec0e4881160 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 16:30:42 +0100 Subject: [PATCH 118/919] Add ol.geom.{de,in}flateCoordinatess --- src/ol/geom/geometry.js | 48 ++++++++++++++++++++++++++++++++++ test/spec/ol/geom/geom.test.js | 24 +++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 0e5c95944f..1eea2e950a 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -264,6 +264,30 @@ ol.geom.deflateCoordinates = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} coordinatess Coordinatess. + * @param {number} stride Stride. + * @param {Array.=} opt_ends Ends. + * @return {Array.} Ends. + */ +ol.geom.deflateCoordinatess = + function(flatCoordinates, offset, coordinatess, stride, opt_ends) { + var ends = goog.isDef(opt_ends) ? opt_ends : []; + var i = 0; + var j, jj; + for (j = 0, jj = coordinatess.length; j < jj; ++j) { + var end = ol.geom.deflateCoordinates( + flatCoordinates, offset, coordinatess[j], stride); + ends[i++] = end; + offset = end; + } + ends.length = i; + return ends; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. @@ -283,3 +307,27 @@ ol.geom.inflateCoordinates = coordinates.length = i; return coordinates; }; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @param {Array.>=} opt_coordinatess Coordinatess. + * @return {Array.>} Coordinatess. + */ +ol.geom.inflateCoordinatess = + function(flatCoordinates, offset, ends, stride, opt_coordinatess) { + var coordinatess = goog.isDef(opt_coordinatess) ? opt_coordinatess : []; + var i = 0; + var j, jj; + for (j = 0, jj = ends.length; j < jj; ++j) { + var end = ends[j]; + coordinatess[i++] = ol.geom.inflateCoordinates( + flatCoordinates, offset, end, stride, coordinatess[i]); + offset = end; + } + coordinatess.length = i; + return coordinatess; +}; diff --git a/test/spec/ol/geom/geom.test.js b/test/spec/ol/geom/geom.test.js index c64a21ee83..8c86156997 100644 --- a/test/spec/ol/geom/geom.test.js +++ b/test/spec/ol/geom/geom.test.js @@ -19,6 +19,21 @@ describe('ol.geom', function() { }); + describe('ol.geom.deflateCoordinatess', function() { + + var flatCoordinates; + beforeEach(function() { + flatCoordinates = []; + }); + + it('flattens arrays of coordinates', function() { + var ends = ol.geom.deflateCoordinatess(flatCoordinates, 0, + [[[1, 2], [3, 4]], [[5, 6], [7, 8]]], 2); + expect(ends).to.eql([4, 8]); + expect(flatCoordinates).to.eql([1, 2, 3, 4, 5, 6, 7, 8]); + }); + }); + describe('ol.geom.inflateCoordinates', function() { it('inflates coordinates', function() { @@ -28,4 +43,13 @@ describe('ol.geom', function() { }); + describe('ol.geom.inflateCoordinatess', function() { + + it('inflates arrays of coordinates', function() { + var coordinatess = ol.geom.inflateCoordinatess([1, 2, 3, 4, 5, 6, 7, 8], + 0, [4, 8], 2); + expect(coordinatess).to.eql([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]); + }); + }); + }); From 9d07e6509f572b160ec3aebad474d80058e24aec Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 16:53:58 +0100 Subject: [PATCH 119/919] Refactor ol.geom.MultiLineString --- src/ol/geom/multilinestring.js | 64 +++------ src/ol/replay/canvas/canvasreplay.js | 2 +- test/spec/ol/geom/multilinestring.test.js | 168 ++++++++++++++++++++++ 3 files changed, 191 insertions(+), 43 deletions(-) create mode 100644 test/spec/ol/geom/multilinestring.test.js diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 5c9649d6fd..0fe383b7e8 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -1,7 +1,5 @@ goog.provide('ol.geom.MultiLineString'); -goog.require('goog.asserts'); -goog.require('ol.extent'); goog.require('ol.geom.Geometry'); @@ -9,45 +7,39 @@ goog.require('ol.geom.Geometry'); /** * @constructor * @extends {ol.geom.Geometry} - * @param {ol.geom.RawMultiLineString} coordinatess Coordinatess. + * @param {ol.geom.RawMultiLineString} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.MultiLineString = function(coordinatess) { +ol.geom.MultiLineString = function(coordinates, opt_layout) { goog.base(this); /** + * @type {Array.} * @private - * @type {ol.geom.RawMultiLineString} */ - this.coordinatess_ = coordinatess; + this.ends_ = []; + + this.setCoordinates(coordinates, opt_layout); }; goog.inherits(ol.geom.MultiLineString, ol.geom.Geometry); /** - * @return {ol.geom.RawMultiLineString} Coordinatess. + * @return {ol.geom.RawMultiLineString} Coordinates. */ -ol.geom.MultiLineString.prototype.getCoordinatess = function() { - return this.coordinatess_; +ol.geom.MultiLineString.prototype.getCoordinates = function() { + return ol.geom.inflateCoordinatess( + this.flatCoordinates, 0, this.ends_, this.stride); }; /** - * @inheritDoc + * @return {Array.} Ends. */ -ol.geom.MultiLineString.prototype.getExtent = function(opt_extent) { - if (this.extentRevision != this.revision) { - this.extent = ol.extent.createOrUpdateEmpty(this.extent); - var coordinatess = this.coordinatess_; - var i, ii; - for (i = 0, ii = coordinatess.length; i < ii; ++i) { - this.extent = ol.extent.extendCoordinates(this.extent, coordinatess[i]); - } - this.extentRevision = this.revision; - } - goog.asserts.assert(goog.isDef(this.extent)); - return ol.extent.returnOrUpdate(this.extent, opt_extent); +ol.geom.MultiLineString.prototype.getEnds = function() { + return this.ends_; }; @@ -60,25 +52,13 @@ ol.geom.MultiLineString.prototype.getType = function() { /** - * @param {ol.geom.RawMultiLineString} coordinatess Coordinatess. + * @param {ol.geom.RawMultiLineString} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.MultiLineString.prototype.setCoordinatess = function(coordinatess) { - this.coordinatess_ = coordinatess; -}; - - -/** - * @inheritDoc - */ -ol.geom.MultiLineString.prototype.transform = function(transformFn) { - var coordinatess = this.coordinatess_; - var i, ii; - for (i = 0, ii = coordinatess.length; i < ii; ++i) { - var coordinates = coordinatess[i]; - var j, jj; - for (j = 0, jj = coordinates.length; j < jj; ++j) { - var coordinate = coordinates[j]; - transformFn(coordinate, coordinate, 2); - } - } +ol.geom.MultiLineString.prototype.setCoordinates = + function(coordinates, opt_layout) { + this.setLayout(opt_layout, coordinates, 2); + ol.geom.deflateCoordinatess( + this.flatCoordinates, 0, coordinates, this.stride, this.ends_); + this.dispatchChangeEvent(); }; diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 1adf3c2287..49b0ff48b5 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -239,7 +239,7 @@ ol.replay.canvas.LineStringBatch.prototype.drawLineStringGeometry = ol.replay.canvas.LineStringBatch.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); - var coordinatess = multiLineStringGeometry.getCoordinatess(); + var coordinatess = multiLineStringGeometry.getCoordinates(); var i, ii; for (i = 0, ii = coordinatess.length; i < ii; ++i) { this.drawCoordinates_(coordinatess[i]); diff --git a/test/spec/ol/geom/multilinestring.test.js b/test/spec/ol/geom/multilinestring.test.js new file mode 100644 index 0000000000..e6021aea9d --- /dev/null +++ b/test/spec/ol/geom/multilinestring.test.js @@ -0,0 +1,168 @@ +goog.provide('ol.test.geom.MultiLineString'); + + +describe('ol.geom.MultiLineString', function() { + + describe('construct empty', function() { + + var multiLineString; + beforeEach(function() { + multiLineString = new ol.geom.MultiLineString([]); + }); + + it('defaults to layout XY', function() { + expect(multiLineString.getLayout()).to.be(ol.geom.Layout.XY); + }); + + it('has empty coordinates', function() { + expect(multiLineString.getCoordinates()).to.be.empty(); + }); + + it('has an empty extent', function() { + expect(ol.extent.isEmpty(multiLineString.getExtent())).to.be(true); + }); + + it('has empty flat coordinates', function() { + expect(multiLineString.getFlatCoordinates()).to.be.empty(); + }); + + it('has stride the expected stride', function() { + expect(multiLineString.getStride()).to.be(2); + }); + + }); + + describe('construct with 2D coordinates', function() { + + var multiLineString; + beforeEach(function() { + multiLineString = new ol.geom.MultiLineString( + [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]); + }); + + it('has the expected layout', function() { + expect(multiLineString.getLayout()).to.be(ol.geom.Layout.XY); + }); + + it('has the expected coordinates', function() { + expect(multiLineString.getCoordinates()).to.eql( + [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]); + }); + + it('has the expected extent', function() { + expect(multiLineString.getExtent()).to.eql([1, 2, 7, 8]); + }); + + it('has the expected flat coordinates', function() { + expect(multiLineString.getFlatCoordinates()).to.eql( + [1, 2, 3, 4, 5, 6, 7, 8]); + }); + + it('has stride the expected stride', function() { + expect(multiLineString.getStride()).to.be(2); + }); + + }); + + describe('construct with 3D coordinates', function() { + + var multiLineString; + beforeEach(function() { + multiLineString = new ol.geom.MultiLineString( + [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]); + }); + + it('has the expected layout', function() { + expect(multiLineString.getLayout()).to.be(ol.geom.Layout.XYZ); + }); + + it('has the expected coordinates', function() { + expect(multiLineString.getCoordinates()).to.eql( + [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]); + }); + + it('has the expected extent', function() { + expect(multiLineString.getExtent()).to.eql([1, 2, 10, 11]); + }); + + it('has the expected flat coordinates', function() { + expect(multiLineString.getFlatCoordinates()).to.eql( + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); + }); + + it('has stride the expected stride', function() { + expect(multiLineString.getStride()).to.be(3); + }); + + }); + + describe('construct with 3D coordinates and layout XYM', function() { + + var multiLineString; + beforeEach(function() { + multiLineString = new ol.geom.MultiLineString( + [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]], + ol.geom.Layout.XYM); + }); + + it('has the expected layout', function() { + expect(multiLineString.getLayout()).to.be(ol.geom.Layout.XYM); + }); + + it('has the expected coordinates', function() { + expect(multiLineString.getCoordinates()).to.eql( + [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]); + }); + + it('has the expected extent', function() { + expect(multiLineString.getExtent()).to.eql([1, 2, 10, 11]); + }); + + it('has the expected flat coordinates', function() { + expect(multiLineString.getFlatCoordinates()).to.eql( + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); + }); + + it('has stride the expected stride', function() { + expect(multiLineString.getStride()).to.be(3); + }); + + }); + + describe('construct with 4D coordinates', function() { + + var multiLineString; + beforeEach(function() { + multiLineString = new ol.geom.MultiLineString( + [[[1, 2, 3, 4], [5, 6, 7, 8]], [[9, 10, 11, 12], [13, 14, 15, 16]]]); + }); + + it('has the expected layout', function() { + expect(multiLineString.getLayout()).to.be(ol.geom.Layout.XYZM); + }); + + it('has the expected coordinates', function() { + expect(multiLineString.getCoordinates()).to.eql( + [[[1, 2, 3, 4], [5, 6, 7, 8]], [[9, 10, 11, 12], [13, 14, 15, 16]]]); + }); + + it('has the expected extent', function() { + expect(multiLineString.getExtent()).to.eql([1, 2, 13, 14]); + }); + + it('has the expected flat coordinates', function() { + expect(multiLineString.getFlatCoordinates()).to.eql( + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]); + }); + + it('has stride the expected stride', function() { + expect(multiLineString.getStride()).to.be(4); + }); + + }); + +}); + + +goog.require('ol.extent'); +goog.require('ol.geom.MultiLineString'); From 335f24f398de2d5a2d5a555c060314a88a6a476d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 17:11:53 +0100 Subject: [PATCH 120/919] Add ol.replay.canvas.Batch#appendFlatCoordinates --- src/ol/replay/canvas/canvasreplay.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 49b0ff48b5..af15d07112 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -87,6 +87,31 @@ ol.replay.canvas.Batch.prototype.appendCoordinates = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {boolean} close Close. + * @protected + * @return {number} My end. + */ +ol.replay.canvas.Batch.prototype.appendFlatCoordinates = + function(flatCoordinates, offset, end, stride, close) { + var myEnd = this.coordinates.length; + var i; + for (i = offset; i < end; i += stride) { + this.coordinates[myEnd++] = flatCoordinates[i]; + this.coordinates[myEnd++] = flatCoordinates[i + 1]; + } + if (close) { + this.coordinates[myEnd++] = flatCoordinates[offset]; + this.coordinates[myEnd++] = flatCoordinates[offset + 1]; + } + return myEnd; +}; + + /** * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. From 1afaa9b6afa07ebd5f0c3eb9fd2a820ae31ab59a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 17:13:05 +0100 Subject: [PATCH 121/919] Add ol.replay.canvas.LineStringBatch#drawFlatCoordinates_ --- src/ol/replay/canvas/canvasreplay.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index af15d07112..78d6fd27bb 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -248,6 +248,31 @@ ol.replay.canvas.LineStringBatch.prototype.drawCoordinates_ = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @private + */ +ol.replay.canvas.LineStringBatch.prototype.drawFlatCoordinates_ = + function(flatCoordinates, offset, end, stride) { + var state = this.state_; + if (!ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { + if (state.lastDraw != this.coordinates.length) { + this.instructions.push([ol.replay.canvas.Instruction.STROKE]); + } + this.instructions.push( + [ol.replay.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle], + [ol.replay.canvas.Instruction.BEGIN_PATH]); + state.currentStrokeStyle = state.strokeStyle; + } + var myEnd = this.appendFlatCoordinates( + flatCoordinates, offset, end, stride, false); + this.instructions.push([ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, myEnd]); +}; + + /** * @inheritDoc */ From 20bc49d7446925550e01bed79f5eb7836145d4c9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 17:13:25 +0100 Subject: [PATCH 122/919] Render line strings using flat coordinates --- src/ol/replay/canvas/canvasreplay.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 78d6fd27bb..3b03f35b28 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -279,7 +279,11 @@ ol.replay.canvas.LineStringBatch.prototype.drawFlatCoordinates_ = ol.replay.canvas.LineStringBatch.prototype.drawLineStringGeometry = function(lineStringGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); - this.drawCoordinates_(lineStringGeometry.getCoordinates()); + ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); + var flatCoordinates = lineStringGeometry.getFlatCoordinates(); + var stride = lineStringGeometry.getStride(); + this.drawFlatCoordinates_( + flatCoordinates, 0, flatCoordinates.length, stride); }; From 0a02785438c15a24d8dcd623a497d1c8b3335235 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 17:13:45 +0100 Subject: [PATCH 123/919] Render MultiLineStrings using flat coordinates --- src/ol/replay/canvas/canvasreplay.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 3b03f35b28..661042cd98 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -293,10 +293,16 @@ ol.replay.canvas.LineStringBatch.prototype.drawLineStringGeometry = ol.replay.canvas.LineStringBatch.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); - var coordinatess = multiLineStringGeometry.getCoordinates(); + ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); + var ends = multiLineStringGeometry.getEnds(); + var flatCoordinates = multiLineStringGeometry.getFlatCoordinates(); + var stride = multiLineStringGeometry.getStride(); + var offset = 0; var i, ii; - for (i = 0, ii = coordinatess.length; i < ii; ++i) { - this.drawCoordinates_(coordinatess[i]); + for (i = 0, ii = ends.length; i < ii; ++i) { + var end = ends[i]; + this.drawFlatCoordinates_(flatCoordinates, offset, end, stride); + offset = end; } }; From 07173c493e0702bc63a2cdadd61fa268e40744e7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 17:26:05 +0100 Subject: [PATCH 124/919] Refactor ol.geom.Polygon --- src/ol/geom/polygon.js | 58 +++----- test/spec/ol/format/geojsonformat.test.js | 2 +- test/spec/ol/geom/polygon.test.js | 166 ++++++++++++++++++++++ 3 files changed, 188 insertions(+), 38 deletions(-) create mode 100644 test/spec/ol/geom/polygon.test.js diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index eb1ad7651f..e0447a2155 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -1,7 +1,5 @@ goog.provide('ol.geom.Polygon'); -goog.require('goog.asserts'); -goog.require('ol.extent'); goog.require('ol.geom.Geometry'); @@ -9,40 +7,39 @@ goog.require('ol.geom.Geometry'); /** * @constructor * @extends {ol.geom.Geometry} - * @param {ol.geom.RawPolygon} rings Rings. + * @param {ol.geom.RawPolygon} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.Polygon = function(rings) { +ol.geom.Polygon = function(coordinates, opt_layout) { goog.base(this); /** + * @type {Array.} * @private - * @type {ol.geom.RawPolygon} */ - this.rings_ = rings; + this.ends_ = []; + + this.setCoordinates(coordinates, opt_layout); }; goog.inherits(ol.geom.Polygon, ol.geom.Geometry); /** - * @inheritDoc + * @return {ol.geom.RawPolygon} Coordinates. */ -ol.geom.Polygon.prototype.getExtent = function(opt_extent) { - if (this.extentRevision != this.revision) { - this.extent = ol.extent.createOrUpdateFromRings(this.rings_, this.extent); - this.extentRevision = this.revision; - } - goog.asserts.assert(goog.isDef(this.extent)); - return ol.extent.returnOrUpdate(this.extent, opt_extent); +ol.geom.Polygon.prototype.getCoordinates = function() { + return ol.geom.inflateCoordinatess( + this.flatCoordinates, 0, this.ends_, this.stride); }; /** - * @return {ol.geom.RawPolygon} Rings. + * @return {Array.} Ends. */ -ol.geom.Polygon.prototype.getRings = function() { - return this.rings_; +ol.geom.Polygon.prototype.getEnds = function() { + return this.ends_; }; @@ -55,26 +52,13 @@ ol.geom.Polygon.prototype.getType = function() { /** - * @param {ol.geom.RawPolygon} rings Rings. + * @param {ol.geom.RawPolygon} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.Polygon.prototype.setRings = function(rings) { - this.rings_ = rings; +ol.geom.Polygon.prototype.setCoordinates = + function(coordinates, opt_layout) { + this.setLayout(opt_layout, coordinates, 2); + ol.geom.deflateCoordinatess( + this.flatCoordinates, 0, coordinates, this.stride, this.ends_); this.dispatchChangeEvent(); }; - - -/** - * @inheritDoc - */ -ol.geom.Polygon.prototype.transform = function(transformFn) { - var rings = this.rings_; - var i, ii; - for (i = 0, ii = rings.length; i < ii; ++i) { - var coordinates = rings[i]; - var j, jj; - for (j = 0, jj = coordinates.length; j < jj; ++j) { - var coordinate = coordinates[j]; - transformFn(coordinate, coordinate, 2); - } - } -}; diff --git a/test/spec/ol/format/geojsonformat.test.js b/test/spec/ol/format/geojsonformat.test.js index 155bcb02f4..e3027dcb1d 100644 --- a/test/spec/ol/format/geojsonformat.test.js +++ b/test/spec/ol/format/geojsonformat.test.js @@ -83,7 +83,7 @@ describe('ol.format.GeoJSON', function() { expect(feature).to.be.an(ol.Feature); var geometry = feature.getGeometry(); expect(geometry).to.be.an(ol.geom.Polygon); - expect(geometry.getRings()).to.eql([[ + expect(geometry.getCoordinates()).to.eql([[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]]); expect(feature.get('prop0')).to.be('value0'); diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js new file mode 100644 index 0000000000..583ef6ede4 --- /dev/null +++ b/test/spec/ol/geom/polygon.test.js @@ -0,0 +1,166 @@ +goog.provide('ol.test.geom.Polygon'); + + +describe('ol.geom.Polygon', function() { + + describe('construct empty', function() { + + var polygon; + beforeEach(function() { + polygon = new ol.geom.Polygon([]); + }); + + it('defaults to layout XY', function() { + expect(polygon.getLayout()).to.be(ol.geom.Layout.XY); + }); + + it('has empty coordinates', function() { + expect(polygon.getCoordinates()).to.be.empty(); + }); + + it('has an empty extent', function() { + expect(ol.extent.isEmpty(polygon.getExtent())).to.be(true); + }); + + it('has empty flat coordinates', function() { + expect(polygon.getFlatCoordinates()).to.be.empty(); + }); + + it('has stride the expected stride', function() { + expect(polygon.getStride()).to.be(2); + }); + + }); + + describe('construct with 2D coordinates', function() { + + var polygon; + beforeEach(function() { + polygon = new ol.geom.Polygon([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]); + }); + + it('has the expected layout', function() { + expect(polygon.getLayout()).to.be(ol.geom.Layout.XY); + }); + + it('has the expected coordinates', function() { + expect(polygon.getCoordinates()).to.eql( + [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]); + }); + + it('has the expected extent', function() { + expect(polygon.getExtent()).to.eql([1, 2, 7, 8]); + }); + + it('has the expected flat coordinates', function() { + expect(polygon.getFlatCoordinates()).to.eql([1, 2, 3, 4, 5, 6, 7, 8]); + }); + + it('has stride the expected stride', function() { + expect(polygon.getStride()).to.be(2); + }); + + }); + + describe('construct with 3D coordinates', function() { + + var polygon; + beforeEach(function() { + polygon = new ol.geom.Polygon( + [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]); + }); + + it('has the expected layout', function() { + expect(polygon.getLayout()).to.be(ol.geom.Layout.XYZ); + }); + + it('has the expected coordinates', function() { + expect(polygon.getCoordinates()).to.eql( + [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]); + }); + + it('has the expected extent', function() { + expect(polygon.getExtent()).to.eql([1, 2, 10, 11]); + }); + + it('has the expected flat coordinates', function() { + expect(polygon.getFlatCoordinates()).to.eql( + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); + }); + + it('has stride the expected stride', function() { + expect(polygon.getStride()).to.be(3); + }); + + }); + + describe('construct with 3D coordinates and layout XYM', function() { + + var polygon; + beforeEach(function() { + polygon = new ol.geom.Polygon( + [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]], + ol.geom.Layout.XYM); + }); + + it('has the expected layout', function() { + expect(polygon.getLayout()).to.be(ol.geom.Layout.XYM); + }); + + it('has the expected coordinates', function() { + expect(polygon.getCoordinates()).to.eql( + [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]); + }); + + it('has the expected extent', function() { + expect(polygon.getExtent()).to.eql([1, 2, 10, 11]); + }); + + it('has the expected flat coordinates', function() { + expect(polygon.getFlatCoordinates()).to.eql( + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); + }); + + it('has stride the expected stride', function() { + expect(polygon.getStride()).to.be(3); + }); + + }); + + describe('construct with 4D coordinates', function() { + + var polygon; + beforeEach(function() { + polygon = new ol.geom.Polygon( + [[[1, 2, 3, 4], [5, 6, 7, 8]], [[9, 10, 11, 12], [13, 14, 15, 16]]]); + }); + + it('has the expected layout', function() { + expect(polygon.getLayout()).to.be(ol.geom.Layout.XYZM); + }); + + it('has the expected coordinates', function() { + expect(polygon.getCoordinates()).to.eql( + [[[1, 2, 3, 4], [5, 6, 7, 8]], [[9, 10, 11, 12], [13, 14, 15, 16]]]); + }); + + it('has the expected extent', function() { + expect(polygon.getExtent()).to.eql([1, 2, 13, 14]); + }); + + it('has the expected flat coordinates', function() { + expect(polygon.getFlatCoordinates()).to.eql( + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]); + }); + + it('has stride the expected stride', function() { + expect(polygon.getStride()).to.be(4); + }); + + }); + +}); + + +goog.require('ol.extent'); +goog.require('ol.geom.Polygon'); From 0f8d123319aaad94569afcd93da41addf64c9d94 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 18:38:50 +0100 Subject: [PATCH 125/919] Remove ol.replay.canvas.LineStringBatch#drawCoordinates_ --- src/ol/replay/canvas/canvasreplay.js | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 661042cd98..71628695c1 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -227,27 +227,6 @@ ol.replay.canvas.LineStringBatch = function() { goog.inherits(ol.replay.canvas.LineStringBatch, ol.replay.canvas.Batch); -/** - * @param {Array.} coordinates Coordinates. - * @private - */ -ol.replay.canvas.LineStringBatch.prototype.drawCoordinates_ = - function(coordinates) { - var state = this.state_; - if (!ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { - if (state.lastDraw != this.coordinates.length) { - this.instructions.push([ol.replay.canvas.Instruction.STROKE]); - } - this.instructions.push( - [ol.replay.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle], - [ol.replay.canvas.Instruction.BEGIN_PATH]); - state.currentStrokeStyle = state.strokeStyle; - } - var end = this.appendCoordinates(coordinates, false); - this.instructions.push([ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end]); -}; - - /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From ad8c166a37c8eb9565bc63a276cc965329707e58 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 18:39:15 +0100 Subject: [PATCH 126/919] Add ol.replay.canvas.PolygonBatch#drawFlatCoordinatess_ --- src/ol/replay/canvas/canvasreplay.js | 32 ++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 71628695c1..ce69447dda 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -339,6 +339,38 @@ ol.replay.canvas.PolygonBatch = function() { goog.inherits(ol.replay.canvas.PolygonBatch, ol.replay.canvas.Batch); +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @private + */ +ol.replay.canvas.PolygonBatch.prototype.drawFlatCoordinatess_ = + function(flatCoordinates, offset, ends, stride) { + var state = this.state_; + this.instructions.push([ol.replay.canvas.Instruction.BEGIN_PATH]); + var i, ii; + for (i = 0, ii = ends.length; i < ii; ++i) { + var end = ends[i]; + var myEnd = + this.appendFlatCoordinates(flatCoordinates, offset, end, stride, true); + this.instructions.push( + [ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, myEnd], + [ol.replay.canvas.Instruction.CLOSE_PATH]); + offset = end; + } + // FIXME is it quicker to fill and stroke each polygon individually, + // FIXME or all polygons together? + if (!goog.isNull(state.fillStyle)) { + this.instructions.push([ol.replay.canvas.Instruction.FILL]); + } + if (!goog.isNull(state.strokeStyle)) { + this.instructions.push([ol.replay.canvas.Instruction.STROKE]); + } +}; + + /** * @param {Array.>} rings Rings. * @private From 03d5f3f9d91f6c10063fdfb58b5b0f705cf315da Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 18:39:47 +0100 Subject: [PATCH 127/919] Render Polygons using flat coordinates --- src/ol/replay/canvas/canvasreplay.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index ce69447dda..f97b22c8c1 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -402,8 +402,12 @@ ol.replay.canvas.PolygonBatch.prototype.drawRings_ = function(rings) { ol.replay.canvas.PolygonBatch.prototype.drawPolygonGeometry = function(polygonGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); + ol.extent.extend(this.extent_, polygonGeometry.getExtent()); this.setFillStrokeStyles_(); - this.drawRings_(polygonGeometry.getRings()); + var ends = polygonGeometry.getEnds(); + var flatCoordinates = polygonGeometry.getFlatCoordinates(); + var stride = polygonGeometry.getStride(); + this.drawFlatCoordinatess_(flatCoordinates, 0, ends, stride); }; From daecad22ae6c0cb6a97167e3264842001e321628 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 18:55:17 +0100 Subject: [PATCH 128/919] Add ol.geom.{de,in}flateCoordinatesss --- src/ol/geom/geometry.js | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 1eea2e950a..2c371bef3e 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -288,6 +288,29 @@ ol.geom.deflateCoordinatess = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>>} coordinatesss Coordinatesss. + * @param {number} stride Stride. + * @param {Array.>=} opt_endss Endss. + * @return {Array.>} Endss. + */ +ol.geom.deflateCoordinatesss = + function(flatCoordinates, offset, coordinatesss, stride, opt_endss) { + var endss = goog.isDef(opt_endss) ? opt_endss : []; + var i = 0; + var j, jj; + for (j = 0, jj = coordinatesss.length; j < jj; ++j) { + var ends = ol.geom.deflateCoordinatess( + flatCoordinates, offset, coordinatesss[j], stride, endss[i]); + endss[i++] = ends; + offset = ends[ends.length - 1]; + } + return endss; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. @@ -331,3 +354,28 @@ ol.geom.inflateCoordinatess = coordinatess.length = i; return coordinatess; }; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @param {Array.>>=} opt_coordinatesss + * Coordinatesss. + * @return {Array.>>} Coordinatesss. + */ +ol.geom.inflateCoordinatesss = + function(flatCoordinates, offset, endss, stride, opt_coordinatesss) { + var coordinatesss = goog.isDef(opt_coordinatesss) ? opt_coordinatesss : []; + var i = 0; + var j, jj; + for (j = 0, jj = endss.length; j < jj; ++j) { + var ends = endss[j]; + coordinatesss[i++] = ol.geom.inflateCoordinatess( + flatCoordinates, offset, ends, stride, coordinatesss[i]); + offset = ends[ends.length - 1]; + } + coordinatesss.length = i; + return coordinatesss; +}; From df48e2de5cd1e687c8174ffa9951631f23d562ce Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 18:55:52 +0100 Subject: [PATCH 129/919] Refactor ol.geom.MultiPolygon --- src/ol/geom/multipolygon.js | 66 +++++++++------------------- src/ol/replay/canvas/canvasreplay.js | 2 +- 2 files changed, 22 insertions(+), 46 deletions(-) diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 24205a9b0c..83c7a54d60 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -1,7 +1,5 @@ goog.provide('ol.geom.MultiPolygon'); -goog.require('goog.asserts'); -goog.require('ol.extent'); goog.require('ol.geom.Geometry'); @@ -9,44 +7,39 @@ goog.require('ol.geom.Geometry'); /** * @constructor * @extends {ol.geom.Geometry} - * @param {ol.geom.RawMultiPolygon} ringss Ringss. + * @param {ol.geom.RawMultiPolygon} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.MultiPolygon = function(ringss) { +ol.geom.MultiPolygon = function(coordinates, opt_layout) { goog.base(this); /** + * @type {Array.>} * @private - * @type {ol.geom.RawMultiPolygon} */ - this.ringss_ = ringss; + this.endss_ = []; + + this.setCoordinates(coordinates, opt_layout); }; goog.inherits(ol.geom.MultiPolygon, ol.geom.Geometry); /** - * @inheritDoc + * @return {ol.geom.RawMultiPolygon} Coordinates. */ -ol.geom.MultiPolygon.prototype.getExtent = function(opt_extent) { - if (this.extentRevision != this.revision) { - this.extent = ol.extent.createOrUpdateEmpty(this.extent); - var ringss = this.ringss_; - var i, ii; - for (i = 0, ii = ringss.length; i < ii; ++i) { - ol.extent.extendRings(this.extent, ringss[i]); - } - } - goog.asserts.assert(goog.isDef(this.extent)); - return ol.extent.returnOrUpdate(this.extent, opt_extent); +ol.geom.MultiPolygon.prototype.getCoordinates = function() { + return ol.geom.inflateCoordinatesss( + this.flatCoordinates, 0, this.endss_, this.stride); }; /** - * @return {ol.geom.RawMultiPolygon} Ringss. + * @return {Array.>} Endss. */ -ol.geom.MultiPolygon.prototype.getRingss = function() { - return this.ringss_; +ol.geom.MultiPolygon.prototype.getEndss = function() { + return this.endss_; }; @@ -59,30 +52,13 @@ ol.geom.MultiPolygon.prototype.getType = function() { /** - * @param {ol.geom.RawMultiPolygon} ringss Ringss. + * @param {ol.geom.RawMultiPolygon} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.MultiPolygon.prototype.setRingss = function(ringss) { - this.ringss_ = ringss; +ol.geom.MultiPolygon.prototype.setCoordinates = + function(coordinates, opt_layout) { + this.setLayout(opt_layout, coordinates, 3); + ol.geom.deflateCoordinatesss( + this.flatCoordinates, 0, coordinates, this.stride, this.endss_); this.dispatchChangeEvent(); }; - - -/** - * @inheritDoc - */ -ol.geom.MultiPolygon.prototype.transform = function(transformFn) { - var ringss = this.ringss_; - var i, ii; - for (i = 0, ii = ringss.length; i < ii; ++i) { - var rings = ringss[i]; - var j, jj; - for (j = 0, jj = rings.length; j < jj; ++j) { - var coordinates = rings[j]; - var k, kk; - for (k = 0, kk = coordinates.length; k < kk; ++k) { - var coordinate = coordinates[k]; - transformFn(coordinate, coordinate, 2); - } - } - } -}; diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index f97b22c8c1..328354368e 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -418,7 +418,7 @@ ol.replay.canvas.PolygonBatch.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); this.setFillStrokeStyles_(); - var ringss = multiPolygonGeometry.getRingss(); + var ringss = multiPolygonGeometry.getCoordinates(); var i, ii; for (i = 0, ii = ringss.length; i < ii; ++i) { this.drawRings_(ringss[i]); From 0a02409d6462deba5529aeeb8f1a9d79722216da Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 19:08:14 +0100 Subject: [PATCH 130/919] Render MultiPolygons using flat coordinates --- src/ol/replay/canvas/canvasreplay.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 328354368e..c71d6dddc1 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -417,11 +417,17 @@ ol.replay.canvas.PolygonBatch.prototype.drawPolygonGeometry = ol.replay.canvas.PolygonBatch.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); + ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent()); this.setFillStrokeStyles_(); - var ringss = multiPolygonGeometry.getCoordinates(); + var endss = multiPolygonGeometry.getEndss(); + var flatCoordinates = multiPolygonGeometry.getFlatCoordinates(); + var stride = multiPolygonGeometry.getStride(); + var offset = 0; var i, ii; - for (i = 0, ii = ringss.length; i < ii; ++i) { - this.drawRings_(ringss[i]); + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + this.drawFlatCoordinatess_(flatCoordinates, offset, ends, stride); + offset = ends[ends.length - 1]; } }; From 843a2e558cd87dfd352f72b08f271b716d83b9c1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 19:08:50 +0100 Subject: [PATCH 131/919] Remove ol.replay.canvas.PolygonBatch#drawRings_ --- src/ol/replay/canvas/canvasreplay.js | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index c71d6dddc1..2e500daf38 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -371,31 +371,6 @@ ol.replay.canvas.PolygonBatch.prototype.drawFlatCoordinatess_ = }; -/** - * @param {Array.>} rings Rings. - * @private - */ -ol.replay.canvas.PolygonBatch.prototype.drawRings_ = function(rings) { - var state = this.state_; - this.instructions.push([ol.replay.canvas.Instruction.BEGIN_PATH]); - var i, ii; - for (i = 0, ii = rings.length; i < ii; ++i) { - var end = this.appendCoordinates(rings[i], true); - this.instructions.push( - [ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, end], - [ol.replay.canvas.Instruction.CLOSE_PATH]); - } - // FIXME is it quicker to fill and stroke each polygon individually, - // FIXME or all polygons together? - if (!goog.isNull(state.fillStyle)) { - this.instructions.push([ol.replay.canvas.Instruction.FILL]); - } - if (!goog.isNull(state.strokeStyle)) { - this.instructions.push([ol.replay.canvas.Instruction.STROKE]); - } -}; - - /** * @inheritDoc */ From a6b09c1b1cac7c2ec0ba1191ff57244194cd7828 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 19:22:42 +0100 Subject: [PATCH 132/919] Remove ol.replay.canvas.Batch#appendCoordinates --- src/ol/replay/canvas/canvasreplay.js | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 2e500daf38..c4ccdedb12 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -62,31 +62,6 @@ ol.replay.canvas.Batch = function() { }; -/** - * @param {Array.>} coordinates Coordinates. - * @param {boolean} close Close. - * @protected - * @return {number} End. - */ -ol.replay.canvas.Batch.prototype.appendCoordinates = - function(coordinates, close) { - var end = this.coordinates.length; - var extent = this.extent_; - var i, ii; - for (i = 0, ii = coordinates.length; i < ii; ++i) { - var coordinate = coordinates[i]; - this.coordinates[end++] = coordinate[0]; - this.coordinates[end++] = coordinate[1]; - ol.extent.extendCoordinate(extent, coordinate); - } - if (close) { - this.coordinates[end++] = coordinates[0][0]; - this.coordinates[end++] = coordinates[0][1]; - } - return end; -}; - - /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From 85efa6182351ef316f2c4dd0224621f0ad73b33d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 9 Nov 2013 19:22:49 +0100 Subject: [PATCH 133/919] Remove FIXME --- src/ol/replay/canvas/canvasreplay.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index c4ccdedb12..8a0bf11722 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -1,5 +1,3 @@ -// FIXME flattened coordinates - goog.provide('ol.replay.canvas.BatchGroup'); goog.require('goog.array'); From a722f558fe4727ccb408f6359163b3c326e6e143 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 01:37:58 +0100 Subject: [PATCH 134/919] Add image drawing functions to batch --- src/ol/replay/ireplay.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/ol/replay/ireplay.js b/src/ol/replay/ireplay.js index 4817dc77a8..dca08db4db 100644 --- a/src/ol/replay/ireplay.js +++ b/src/ol/replay/ireplay.js @@ -22,6 +22,22 @@ ol.replay.IBatch = function() { }; +/** + * @param {number} x X. + * @param {number} y Y. + * @param {Image|HTMLCanvasElement|HTMLVideoElement} image Image. + */ +ol.replay.IBatch.prototype.drawImage = function(x, y, image) { +}; + + +/** + * @param {ol.geom.Point} pointGeometry Point geometry. + */ +ol.replay.IBatch.prototype.drawPointGeometry = function(pointGeometry) { +}; + + /** * @param {ol.geom.LineString} lineStringGeometry Line string geometry. */ @@ -39,6 +55,14 @@ ol.replay.IBatch.prototype.drawMultiLineStringGeometry = }; +/** + * @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry. + */ +ol.replay.IBatch.prototype.drawMultiPointGeometry = + function(multiPointGeometry) { +}; + + /** * @param {ol.geom.MultiPolygon} multiPolygonGeometry Multi polygon geometry. */ @@ -63,6 +87,13 @@ ol.replay.IBatch.prototype.setFillStrokeStyle = }; +/** + * @param {?ol.style.Image} imageStyle Image style. + */ +ol.replay.IBatch.prototype.setImageStyle = function(imageStyle) { +}; + + /** * @interface From 2c73d753094381de599192a2cfd9bbded098065f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 01:38:36 +0100 Subject: [PATCH 135/919] Add image drawing skeleton to canvas --- src/ol/replay/canvas/canvasreplay.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 8a0bf11722..c0a4717301 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -129,6 +129,12 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { }; +/** + * @inheritDoc + */ +ol.replay.canvas.Batch.prototype.drawImage = goog.abstractMethod; + + /** * @inheritDoc */ @@ -142,6 +148,18 @@ ol.replay.canvas.Batch.prototype.drawMultiLineStringGeometry = goog.abstractMethod; +/** + * @inheritDoc + */ +ol.replay.canvas.Batch.prototype.drawPointGeometry = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.replay.canvas.Batch.prototype.drawMultiPointGeometry = goog.abstractMethod; + + /** * @inheritDoc */ From de8edd909eedcb9120687757a5de592bfd0af466 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 01:39:05 +0100 Subject: [PATCH 136/919] Implement image drawing in canvas --- src/ol/replay/canvas/canvasreplay.js | 115 +++++++++++++++++++++++++-- 1 file changed, 108 insertions(+), 7 deletions(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index c0a4717301..f520a6f9b5 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -17,11 +17,12 @@ goog.require('ol.style.stroke'); ol.replay.canvas.Instruction = { BEGIN_PATH: 0, CLOSE_PATH: 1, - FILL: 2, - MOVE_TO_LINE_TO: 3, - SET_FILL_STYLE: 4, - SET_STROKE_STYLE: 5, - STROKE: 6 + DRAW_IMAGE: 2, + FILL: 3, + MOVE_TO_LINE_TO: 4, + SET_FILL_STYLE: 5, + SET_STROKE_STYLE: 6, + STROKE: 7 }; @@ -95,7 +96,7 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { this.pixelCoordinates_ = pixelCoordinates; // FIXME ? var instructions = this.instructions; var i = 0; - var j, jj; + var end, j, jj; for (j = 0, jj = instructions.length; j < jj; ++j) { var instruction = instructions[j]; var type = instruction[0]; @@ -103,12 +104,21 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { context.beginPath(); } else if (type == ol.replay.canvas.Instruction.CLOSE_PATH) { context.closePath(); + } else if (type == ol.replay.canvas.Instruction.DRAW_IMAGE) { + end = /** @type {number} */ (instruction[1]); + var imageStyle = /** @type {ol.style.Image} */ (instruction[2]); + for (; i < end; i += 2) { + context.drawImage( + imageStyle.image, + pixelCoordinates[i] - imageStyle.anchor[0], + pixelCoordinates[i + 1] - imageStyle.anchor[1]); + } } else if (type == ol.replay.canvas.Instruction.FILL) { context.fill(); } else if (type == ol.replay.canvas.Instruction.MOVE_TO_LINE_TO) { context.moveTo(pixelCoordinates[i], pixelCoordinates[i + 1]); goog.asserts.assert(goog.isNumber(instruction[1])); - var end = /** @type {number} */ (instruction[1]); + end = /** @type {number} */ (instruction[1]); for (i += 2; i < end; i += 2) { context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]); } @@ -192,6 +202,96 @@ ol.replay.canvas.Batch.prototype.getExtent = function() { ol.replay.canvas.Batch.prototype.setFillStrokeStyle = goog.abstractMethod; +/** + * @inheritDoc + */ +ol.replay.canvas.Batch.prototype.setImageStyle = goog.abstractMethod; + + + +/** + * @constructor + * @extends {ol.replay.canvas.Batch} + * @protected + */ +ol.replay.canvas.ImageBatch = function() { + + goog.base(this); + + /** + * @private + * @type {?ol.style.Image} + */ + this.imageStyle_ = null; + +}; +goog.inherits(ol.replay.canvas.ImageBatch, ol.replay.canvas.Batch); + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @private + * @return {number} My end. + */ +ol.replay.canvas.ImageBatch.prototype.drawCoordinates_ = + function(flatCoordinates, offset, end, stride) { + return this.appendFlatCoordinates( + flatCoordinates, offset, end, stride, false); +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.ImageBatch.prototype.drawPointGeometry = + function(pointGeometry) { + goog.asserts.assert(!goog.isNull(this.imageStyle_)); + ol.extent.extend(this.extent_, pointGeometry.getExtent()); + var flatCoordinates = pointGeometry.getFlatCoordinates(); + var stride = pointGeometry.getStride(); + var myEnd = this.drawCoordinates_( + flatCoordinates, 0, flatCoordinates.length, stride); + this.instructions.push( + [ol.replay.canvas.Instruction.DRAW_IMAGE, myEnd, this.imageStyle_]); +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.ImageBatch.prototype.drawMultiPointGeometry = + function(multiPointGeometry) { + goog.asserts.assert(!goog.isNull(this.imageStyle_)); + ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); + var flatCoordinates = multiPointGeometry.getFlatCoordinates(); + var stride = multiPointGeometry.getStride(); + var myEnd = this.drawCoordinates_( + flatCoordinates, 0, flatCoordinates.length, stride); + this.instructions.push( + [ol.replay.canvas.Instruction.DRAW_IMAGE, myEnd, this.imageStyle_]); +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.ImageBatch.prototype.finish = function() { + // FIXME this doesn't really protect us against further calls to draw*Geometry + this.imageStyle_ = null; +}; + + +/** + * @inheritDoc + */ +ol.replay.canvas.ImageBatch.prototype.setImageStyle = function(imageStyle) { + this.imageStyle_ = imageStyle; +}; + + /** * @constructor @@ -530,6 +630,7 @@ ol.replay.canvas.BatchGroup.prototype.isEmpty = function() { * @type {Object.} */ ol.replay.canvas.BATCH_CONSTRUCTORS_ = { + 'Image': ol.replay.canvas.ImageBatch, 'LineString': ol.replay.canvas.LineStringBatch, 'Polygon': ol.replay.canvas.PolygonBatch }; From b95a19ba301c4a5e92bd89aa21e345fd170e67aa Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 01:39:49 +0100 Subject: [PATCH 137/919] Render Points and MultiPoints with images --- src/ol/renderer/vector.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/vector.js b/src/ol/renderer/vector.js index 98f21872a5..e2d405d19e 100644 --- a/src/ol/renderer/vector.js +++ b/src/ol/renderer/vector.js @@ -3,6 +3,7 @@ goog.provide('ol.renderer.vector'); goog.require('goog.asserts'); goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString'); +goog.require('ol.geom.MultiPoint'); goog.require('ol.geom.MultiPolygon'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); @@ -94,9 +95,33 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = */ ol.renderer.vector.renderPointGeometry_ = function(batchGroup, geometry, style) { + if (goog.isNull(style.image)) { + return; + } goog.asserts.assert(geometry instanceof ol.geom.Point); var pointGeometry = /** @type {ol.geom.Point} */ (geometry); - pointGeometry = pointGeometry; // FIXME + var batch = batchGroup.getBatch(style.zIndex, ol.replay.BatchType.IMAGE); + batch.setImageStyle(style.image); + batch.drawPointGeometry(pointGeometry); +}; + + +/** + * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.geom.Geometry} geometry Geometry. + * @param {ol.style.Style} style Style. + * @private + */ +ol.renderer.vector.renderMultiPointGeometry_ = + function(batchGroup, geometry, style) { + if (goog.isNull(style.image)) { + return; + } + goog.asserts.assert(geometry instanceof ol.geom.MultiPoint); + var multiPointGeometry = /** @type {ol.geom.MultiPoint} */ (geometry); + var batch = batchGroup.getBatch(style.zIndex, ol.replay.BatchType.IMAGE); + batch.setImageStyle(style.image); + batch.drawMultiPointGeometry(multiPointGeometry); }; From 913029f26db5ed05c76f0b9e47032d428c2a67a2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 01:40:25 +0100 Subject: [PATCH 138/919] Remove opacity for fill style for now --- src/ol/style.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/ol/style.js b/src/ol/style.js index 78166b1727..b59c10f801 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -1,5 +1,6 @@ // FIXME decide how to handle fill opacity +goog.provide('ol.style'); goog.provide('ol.style.DefaultStyleFunction'); goog.provide('ol.style.Style'); goog.provide('ol.style.StyleFunction'); @@ -10,8 +11,7 @@ goog.require('goog.functions'); /** - * @typedef {{color: string, - * opacity: number}} + * @typedef {{color: string}} */ ol.style.Fill; @@ -24,8 +24,7 @@ ol.style.Fill; ol.style.fill.equals = function(fillStyle1, fillStyle2) { return fillStyle1 === fillStyle2 || ( !goog.isNull(fillStyle1) && !goog.isNull(fillStyle2) && - fillStyle1.color == fillStyle2.color && - fillStyle1.opacity == fillStyle2.opacity); + fillStyle1.color == fillStyle2.color); }; @@ -78,8 +77,7 @@ ol.style.StyleFunction; * @type {ol.style.Fill} */ ol.style.DEFAULT_FILL_STYLE = { - color: 'rgba(255, 0, 0, 0.1)', - opacity: 0.1 + color: 'rgba(255, 0, 0, 0.1)' }; From 481a9b407898324d22b190ea110df40030539b89 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 01:41:06 +0100 Subject: [PATCH 139/919] Add symbol renderer --- src/ol/symbols.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/ol/symbols.js diff --git a/src/ol/symbols.js b/src/ol/symbols.js new file mode 100644 index 0000000000..7f7efd8007 --- /dev/null +++ b/src/ol/symbols.js @@ -0,0 +1,46 @@ +goog.provide('ol.symbol'); + +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); +goog.require('ol.style'); + + +/** + * @param {number} radius Radius. + * @param {?ol.style.Fill} fillStyle Fill style. + * @param {?ol.style.Stroke} strokeStyle Stroke style. + * @return {ol.style.Image} Image. + */ +ol.symbol.renderCircle = function(radius, fillStyle, strokeStyle) { + + var canvas = /** @type {HTMLCanvasElement} */ + (goog.dom.createElement(goog.dom.TagName.CANVAS)); + var size = 2 * radius + 1; + if (!goog.isNull(strokeStyle) && goog.isDef(strokeStyle.width)) { + size += strokeStyle.width; + } + canvas.height = size; + canvas.width = size; + + var context = /** @type {CanvasRenderingContext2D} */ + (canvas.getContext('2d')); + context.arc(size / 2, size / 2, radius, 0, 2 * Math.PI, true); + + if (goog.isDefAndNotNull(fillStyle)) { + context.fillStyle = fillStyle.color; + context.fill(); + } + if (goog.isDefAndNotNull(strokeStyle)) { + context.strokeStyle = strokeStyle.color; + context.lineWidth = strokeStyle.width; + context.stroke(); + } + + return { + anchor: [size / 2, size / 2], + image: canvas, + rotation: 0, + subtractViewRotation: false + }; + +}; From b5be6284462f9b5a925c7e8fc4da01e81db8c04b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 01:41:31 +0100 Subject: [PATCH 140/919] Render points with symbol renderer --- examples/geojson.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/examples/geojson.js b/examples/geojson.js index 176f0b46d4..6c44590ffe 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -7,10 +7,16 @@ goog.require('ol.layer.Vector'); goog.require('ol.source.OSM'); goog.require('ol.source.Vector'); goog.require('ol.style.DefaultStyleFunction'); +goog.require('ol.symbol'); +var image = ol.symbol.renderCircle(5, null, {color: 'red'}); var styleFunction = function(feature) { switch (feature.getGeometry().getType()) { + case ol.geom.GeometryType.POINT: + return { + image: image + }; case ol.geom.GeometryType.POLYGON: return { stroke: { From b46c38626bbd6d35d7f8f95d4cb78057046f5f8b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 01:41:56 +0100 Subject: [PATCH 141/919] Add synthetic data example --- examples/synthetic-data.html | 50 ++++++++++++++++++++++++++ examples/synthetic-data.js | 69 ++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 examples/synthetic-data.html create mode 100644 examples/synthetic-data.js diff --git a/examples/synthetic-data.html b/examples/synthetic-data.html new file mode 100644 index 0000000000..5cb953179f --- /dev/null +++ b/examples/synthetic-data.html @@ -0,0 +1,50 @@ + + + + + + + + + + + Synthetic data example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Synthetic data example

+

Synthetic data example.

+
+

See the synthetic-data.js source to see how this is done.

+
+
vector
+
+ +
+ +
+ + + + + + diff --git a/examples/synthetic-data.js b/examples/synthetic-data.js new file mode 100644 index 0000000000..86023728e0 --- /dev/null +++ b/examples/synthetic-data.js @@ -0,0 +1,69 @@ +goog.require('goog.functions'); +goog.require('ol.Map'); +goog.require('ol.Overlay'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.format.GeoJSON'); +goog.require('ol.layer.Vector'); +goog.require('ol.source.Vector'); +goog.require('ol.symbol'); + + +// build up some GeoJSON features +var count = 20000; +var features = new Array(count); +var e = 18000000; +for (var i = 0; i < count; ++i) { + features[i] = { + type: 'Feature', + properties: { + i: i, + size: i % 2 ? 10 : 20 + }, + geometry: { + type: 'Point', + coordinates: [ + 2 * e * Math.random() - e, 2 * e * Math.random() - e + ] + } + }; +} + +var vectorSource = new ol.source.Vector(); +new ol.format.GeoJSON().readObject({ + type: 'FeatureCollection', + features: features +}, vectorSource.addFeature, vectorSource); + +var styleFunction = goog.functions.constant({ + image: ol.symbol.renderCircle( + 5, + { + color: '#666666' + }, + { + color: '#bada55', + width: 1 + }) +}); + + +var vector = new ol.layer.Vector({ + source: vectorSource, + styleFunction: styleFunction +}); + +var popup = new ol.Overlay({ + element: document.getElementById('popup') +}); + +var map = new ol.Map({ + layers: [vector], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }), + overlays: [popup] +}); From d10fb12f27f4757e442f3b4cc3e07af1fc18afeb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 02:21:13 +0100 Subject: [PATCH 142/919] Improve type checking with cast --- src/ol/geom/geometry.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 2c371bef3e..d5943dd3f0 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -151,6 +151,7 @@ ol.geom.Geometry.prototype.getType = goog.abstractMethod; */ ol.geom.Geometry.prototype.setLayout = function(layout, coordinates, nesting) { + /** @type {number} */ var stride; if (goog.isDef(layout)) { if (layout == ol.geom.Layout.XY) { @@ -175,7 +176,7 @@ ol.geom.Geometry.prototype.setLayout = coordinates = coordinates[0]; } } - stride = coordinates.length; + stride = (/** @type {Array} */ (coordinates)).length; if (stride == 2) { layout = ol.geom.Layout.XY; } else if (stride == 3) { From e94a8d4a3699ff4bc21d50ba7219287a61f6c3c1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 02:21:50 +0100 Subject: [PATCH 143/919] Improve type checking with cast --- src/ol/replay/canvas/canvasreplay.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index f520a6f9b5..6e862ad11c 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -99,7 +99,7 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { var end, j, jj; for (j = 0, jj = instructions.length; j < jj; ++j) { var instruction = instructions[j]; - var type = instruction[0]; + var type = /** @type {ol.replay.canvas.Instruction} */ (instruction[0]); if (type == ol.replay.canvas.Instruction.BEGIN_PATH) { context.beginPath(); } else if (type == ol.replay.canvas.Instruction.CLOSE_PATH) { From 65fffd9b1cb27c87104c5a3935e46c89ee327cb8 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 11:43:48 +0100 Subject: [PATCH 144/919] Remove unused ol.replay.IBatch#drawImage --- src/ol/replay/canvas/canvasreplay.js | 6 ------ src/ol/replay/ireplay.js | 9 --------- 2 files changed, 15 deletions(-) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/replay/canvas/canvasreplay.js index 6e862ad11c..bcc23ee904 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/replay/canvas/canvasreplay.js @@ -139,12 +139,6 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { }; -/** - * @inheritDoc - */ -ol.replay.canvas.Batch.prototype.drawImage = goog.abstractMethod; - - /** * @inheritDoc */ diff --git a/src/ol/replay/ireplay.js b/src/ol/replay/ireplay.js index dca08db4db..9c2a4df2ed 100644 --- a/src/ol/replay/ireplay.js +++ b/src/ol/replay/ireplay.js @@ -22,15 +22,6 @@ ol.replay.IBatch = function() { }; -/** - * @param {number} x X. - * @param {number} y Y. - * @param {Image|HTMLCanvasElement|HTMLVideoElement} image Image. - */ -ol.replay.IBatch.prototype.drawImage = function(x, y, image) { -}; - - /** * @param {ol.geom.Point} pointGeometry Point geometry. */ From 4183d9cdb8005bcd0b5049a20b28915403f5b765 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 12:15:09 +0100 Subject: [PATCH 145/919] Move ol.replay into ol.render namespace --- .../{replay => render}/canvas/canvasreplay.js | 162 +++++++++--------- src/ol/{replay => render}/ireplay.js | 37 ++-- src/ol/{replay/replay.js => render/render.js} | 4 +- src/ol/{renderer => render}/vector.js | 32 ++-- .../canvas/canvasvectorlayerrenderer.js | 6 +- 5 files changed, 121 insertions(+), 120 deletions(-) rename src/ol/{replay => render}/canvas/canvasreplay.js (71%) rename src/ol/{replay => render}/ireplay.js (54%) rename src/ol/{replay/replay.js => render/render.js} (91%) rename src/ol/{renderer => render}/vector.js (81%) diff --git a/src/ol/replay/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js similarity index 71% rename from src/ol/replay/canvas/canvasreplay.js rename to src/ol/render/canvas/canvasreplay.js index bcc23ee904..671dfd9642 100644 --- a/src/ol/replay/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1,12 +1,12 @@ -goog.provide('ol.replay.canvas.BatchGroup'); +goog.provide('ol.render.canvas.BatchGroup'); goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.object'); goog.require('ol.extent'); -goog.require('ol.replay'); -goog.require('ol.replay.IBatch'); -goog.require('ol.replay.IBatchGroup'); +goog.require('ol.render'); +goog.require('ol.render.IReplayBatch'); +goog.require('ol.render.IReplayBatchGroup'); goog.require('ol.style.fill'); goog.require('ol.style.stroke'); @@ -14,7 +14,7 @@ goog.require('ol.style.stroke'); /** * @enum {number} */ -ol.replay.canvas.Instruction = { +ol.render.canvas.Instruction = { BEGIN_PATH: 0, CLOSE_PATH: 1, DRAW_IMAGE: 2, @@ -29,10 +29,10 @@ ol.replay.canvas.Instruction = { /** * @constructor - * @implements {ol.replay.IBatch} + * @implements {ol.render.IReplayBatch} * @protected */ -ol.replay.canvas.Batch = function() { +ol.render.canvas.Batch = function() { /** * @protected @@ -70,7 +70,7 @@ ol.replay.canvas.Batch = function() { * @protected * @return {number} My end. */ -ol.replay.canvas.Batch.prototype.appendFlatCoordinates = +ol.render.canvas.Batch.prototype.appendFlatCoordinates = function(flatCoordinates, offset, end, stride, close) { var myEnd = this.coordinates.length; var i; @@ -90,8 +90,8 @@ ol.replay.canvas.Batch.prototype.appendFlatCoordinates = * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. */ -ol.replay.canvas.Batch.prototype.draw = function(context, transform) { - var pixelCoordinates = ol.replay.transformCoordinates( +ol.render.canvas.Batch.prototype.draw = function(context, transform) { + var pixelCoordinates = ol.render.transformCoordinates( this.coordinates, transform, this.pixelCoordinates_); this.pixelCoordinates_ = pixelCoordinates; // FIXME ? var instructions = this.instructions; @@ -99,12 +99,12 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { var end, j, jj; for (j = 0, jj = instructions.length; j < jj; ++j) { var instruction = instructions[j]; - var type = /** @type {ol.replay.canvas.Instruction} */ (instruction[0]); - if (type == ol.replay.canvas.Instruction.BEGIN_PATH) { + var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); + if (type == ol.render.canvas.Instruction.BEGIN_PATH) { context.beginPath(); - } else if (type == ol.replay.canvas.Instruction.CLOSE_PATH) { + } else if (type == ol.render.canvas.Instruction.CLOSE_PATH) { context.closePath(); - } else if (type == ol.replay.canvas.Instruction.DRAW_IMAGE) { + } else if (type == ol.render.canvas.Instruction.DRAW_IMAGE) { end = /** @type {number} */ (instruction[1]); var imageStyle = /** @type {ol.style.Image} */ (instruction[2]); for (; i < end; i += 2) { @@ -113,25 +113,25 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { pixelCoordinates[i] - imageStyle.anchor[0], pixelCoordinates[i + 1] - imageStyle.anchor[1]); } - } else if (type == ol.replay.canvas.Instruction.FILL) { + } else if (type == ol.render.canvas.Instruction.FILL) { context.fill(); - } else if (type == ol.replay.canvas.Instruction.MOVE_TO_LINE_TO) { + } else if (type == ol.render.canvas.Instruction.MOVE_TO_LINE_TO) { context.moveTo(pixelCoordinates[i], pixelCoordinates[i + 1]); goog.asserts.assert(goog.isNumber(instruction[1])); end = /** @type {number} */ (instruction[1]); for (i += 2; i < end; i += 2) { context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]); } - } else if (type == ol.replay.canvas.Instruction.SET_FILL_STYLE) { + } else if (type == ol.render.canvas.Instruction.SET_FILL_STYLE) { goog.asserts.assert(goog.isObject(instruction[1])); var fillStyle = /** @type {ol.style.Fill} */ (instruction[1]); context.fillStyle = fillStyle.color; - } else if (type == ol.replay.canvas.Instruction.SET_STROKE_STYLE) { + } else if (type == ol.render.canvas.Instruction.SET_STROKE_STYLE) { goog.asserts.assert(goog.isObject(instruction[1])); var strokeStyle = /** @type {ol.style.Stroke} */ (instruction[1]); context.strokeStyle = strokeStyle.color; context.lineWidth = strokeStyle.width; - } else if (type == ol.replay.canvas.Instruction.STROKE) { + } else if (type == ol.render.canvas.Instruction.STROKE) { context.stroke(); } } @@ -142,50 +142,50 @@ ol.replay.canvas.Batch.prototype.draw = function(context, transform) { /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.drawLineStringGeometry = goog.abstractMethod; +ol.render.canvas.Batch.prototype.drawLineStringGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.drawMultiLineStringGeometry = +ol.render.canvas.Batch.prototype.drawMultiLineStringGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.drawPointGeometry = goog.abstractMethod; +ol.render.canvas.Batch.prototype.drawPointGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.drawMultiPointGeometry = goog.abstractMethod; +ol.render.canvas.Batch.prototype.drawMultiPointGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.drawPolygonGeometry = goog.abstractMethod; +ol.render.canvas.Batch.prototype.drawPolygonGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.drawMultiPolygonGeometry = goog.abstractMethod; +ol.render.canvas.Batch.prototype.drawMultiPolygonGeometry = goog.abstractMethod; /** * FIXME empty description for jsdoc */ -ol.replay.canvas.Batch.prototype.finish = goog.nullFunction; +ol.render.canvas.Batch.prototype.finish = goog.nullFunction; /** * @return {ol.Extent} Extent. */ -ol.replay.canvas.Batch.prototype.getExtent = function() { +ol.render.canvas.Batch.prototype.getExtent = function() { return this.extent_; }; @@ -193,22 +193,22 @@ ol.replay.canvas.Batch.prototype.getExtent = function() { /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.setFillStrokeStyle = goog.abstractMethod; +ol.render.canvas.Batch.prototype.setFillStrokeStyle = goog.abstractMethod; /** * @inheritDoc */ -ol.replay.canvas.Batch.prototype.setImageStyle = goog.abstractMethod; +ol.render.canvas.Batch.prototype.setImageStyle = goog.abstractMethod; /** * @constructor - * @extends {ol.replay.canvas.Batch} + * @extends {ol.render.canvas.Batch} * @protected */ -ol.replay.canvas.ImageBatch = function() { +ol.render.canvas.ImageBatch = function() { goog.base(this); @@ -219,7 +219,7 @@ ol.replay.canvas.ImageBatch = function() { this.imageStyle_ = null; }; -goog.inherits(ol.replay.canvas.ImageBatch, ol.replay.canvas.Batch); +goog.inherits(ol.render.canvas.ImageBatch, ol.render.canvas.Batch); /** @@ -230,7 +230,7 @@ goog.inherits(ol.replay.canvas.ImageBatch, ol.replay.canvas.Batch); * @private * @return {number} My end. */ -ol.replay.canvas.ImageBatch.prototype.drawCoordinates_ = +ol.render.canvas.ImageBatch.prototype.drawCoordinates_ = function(flatCoordinates, offset, end, stride) { return this.appendFlatCoordinates( flatCoordinates, offset, end, stride, false); @@ -240,7 +240,7 @@ ol.replay.canvas.ImageBatch.prototype.drawCoordinates_ = /** * @inheritDoc */ -ol.replay.canvas.ImageBatch.prototype.drawPointGeometry = +ol.render.canvas.ImageBatch.prototype.drawPointGeometry = function(pointGeometry) { goog.asserts.assert(!goog.isNull(this.imageStyle_)); ol.extent.extend(this.extent_, pointGeometry.getExtent()); @@ -249,14 +249,14 @@ ol.replay.canvas.ImageBatch.prototype.drawPointGeometry = var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); this.instructions.push( - [ol.replay.canvas.Instruction.DRAW_IMAGE, myEnd, this.imageStyle_]); + [ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, this.imageStyle_]); }; /** * @inheritDoc */ -ol.replay.canvas.ImageBatch.prototype.drawMultiPointGeometry = +ol.render.canvas.ImageBatch.prototype.drawMultiPointGeometry = function(multiPointGeometry) { goog.asserts.assert(!goog.isNull(this.imageStyle_)); ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); @@ -265,14 +265,14 @@ ol.replay.canvas.ImageBatch.prototype.drawMultiPointGeometry = var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); this.instructions.push( - [ol.replay.canvas.Instruction.DRAW_IMAGE, myEnd, this.imageStyle_]); + [ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, this.imageStyle_]); }; /** * @inheritDoc */ -ol.replay.canvas.ImageBatch.prototype.finish = function() { +ol.render.canvas.ImageBatch.prototype.finish = function() { // FIXME this doesn't really protect us against further calls to draw*Geometry this.imageStyle_ = null; }; @@ -281,7 +281,7 @@ ol.replay.canvas.ImageBatch.prototype.finish = function() { /** * @inheritDoc */ -ol.replay.canvas.ImageBatch.prototype.setImageStyle = function(imageStyle) { +ol.render.canvas.ImageBatch.prototype.setImageStyle = function(imageStyle) { this.imageStyle_ = imageStyle; }; @@ -289,10 +289,10 @@ ol.replay.canvas.ImageBatch.prototype.setImageStyle = function(imageStyle) { /** * @constructor - * @extends {ol.replay.canvas.Batch} + * @extends {ol.render.canvas.Batch} * @protected */ -ol.replay.canvas.LineStringBatch = function() { +ol.render.canvas.LineStringBatch = function() { goog.base(this); @@ -309,7 +309,7 @@ ol.replay.canvas.LineStringBatch = function() { }; }; -goog.inherits(ol.replay.canvas.LineStringBatch, ol.replay.canvas.Batch); +goog.inherits(ol.render.canvas.LineStringBatch, ol.render.canvas.Batch); /** @@ -319,28 +319,28 @@ goog.inherits(ol.replay.canvas.LineStringBatch, ol.replay.canvas.Batch); * @param {number} stride Stride. * @private */ -ol.replay.canvas.LineStringBatch.prototype.drawFlatCoordinates_ = +ol.render.canvas.LineStringBatch.prototype.drawFlatCoordinates_ = function(flatCoordinates, offset, end, stride) { var state = this.state_; if (!ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { if (state.lastDraw != this.coordinates.length) { - this.instructions.push([ol.replay.canvas.Instruction.STROKE]); + this.instructions.push([ol.render.canvas.Instruction.STROKE]); } this.instructions.push( - [ol.replay.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle], - [ol.replay.canvas.Instruction.BEGIN_PATH]); + [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle], + [ol.render.canvas.Instruction.BEGIN_PATH]); state.currentStrokeStyle = state.strokeStyle; } var myEnd = this.appendFlatCoordinates( flatCoordinates, offset, end, stride, false); - this.instructions.push([ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, myEnd]); + this.instructions.push([ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myEnd]); }; /** * @inheritDoc */ -ol.replay.canvas.LineStringBatch.prototype.drawLineStringGeometry = +ol.render.canvas.LineStringBatch.prototype.drawLineStringGeometry = function(lineStringGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); @@ -354,7 +354,7 @@ ol.replay.canvas.LineStringBatch.prototype.drawLineStringGeometry = /** * @inheritDoc */ -ol.replay.canvas.LineStringBatch.prototype.drawMultiLineStringGeometry = +ol.render.canvas.LineStringBatch.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); @@ -374,11 +374,11 @@ ol.replay.canvas.LineStringBatch.prototype.drawMultiLineStringGeometry = /** * @inheritDoc */ -ol.replay.canvas.LineStringBatch.prototype.finish = function() { +ol.render.canvas.LineStringBatch.prototype.finish = function() { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); if (state.lastDraw != this.coordinates.length) { - this.instructions.push([ol.replay.canvas.Instruction.STROKE]); + this.instructions.push([ol.render.canvas.Instruction.STROKE]); } this.state_ = null; }; @@ -387,7 +387,7 @@ ol.replay.canvas.LineStringBatch.prototype.finish = function() { /** * @inheritDoc */ -ol.replay.canvas.LineStringBatch.prototype.setFillStrokeStyle = +ol.render.canvas.LineStringBatch.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { goog.asserts.assert(!goog.isNull(this.state_)); goog.asserts.assert(goog.isNull(fillStyle)); @@ -399,10 +399,10 @@ ol.replay.canvas.LineStringBatch.prototype.setFillStrokeStyle = /** * @constructor - * @extends {ol.replay.canvas.Batch} + * @extends {ol.render.canvas.Batch} * @protected */ -ol.replay.canvas.PolygonBatch = function() { +ol.render.canvas.PolygonBatch = function() { goog.base(this); @@ -421,7 +421,7 @@ ol.replay.canvas.PolygonBatch = function() { }; }; -goog.inherits(ol.replay.canvas.PolygonBatch, ol.replay.canvas.Batch); +goog.inherits(ol.render.canvas.PolygonBatch, ol.render.canvas.Batch); /** @@ -431,27 +431,27 @@ goog.inherits(ol.replay.canvas.PolygonBatch, ol.replay.canvas.Batch); * @param {number} stride Stride. * @private */ -ol.replay.canvas.PolygonBatch.prototype.drawFlatCoordinatess_ = +ol.render.canvas.PolygonBatch.prototype.drawFlatCoordinatess_ = function(flatCoordinates, offset, ends, stride) { var state = this.state_; - this.instructions.push([ol.replay.canvas.Instruction.BEGIN_PATH]); + this.instructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); var i, ii; for (i = 0, ii = ends.length; i < ii; ++i) { var end = ends[i]; var myEnd = this.appendFlatCoordinates(flatCoordinates, offset, end, stride, true); this.instructions.push( - [ol.replay.canvas.Instruction.MOVE_TO_LINE_TO, myEnd], - [ol.replay.canvas.Instruction.CLOSE_PATH]); + [ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myEnd], + [ol.render.canvas.Instruction.CLOSE_PATH]); offset = end; } // FIXME is it quicker to fill and stroke each polygon individually, // FIXME or all polygons together? if (!goog.isNull(state.fillStyle)) { - this.instructions.push([ol.replay.canvas.Instruction.FILL]); + this.instructions.push([ol.render.canvas.Instruction.FILL]); } if (!goog.isNull(state.strokeStyle)) { - this.instructions.push([ol.replay.canvas.Instruction.STROKE]); + this.instructions.push([ol.render.canvas.Instruction.STROKE]); } }; @@ -459,7 +459,7 @@ ol.replay.canvas.PolygonBatch.prototype.drawFlatCoordinatess_ = /** * @inheritDoc */ -ol.replay.canvas.PolygonBatch.prototype.drawPolygonGeometry = +ol.render.canvas.PolygonBatch.prototype.drawPolygonGeometry = function(polygonGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); ol.extent.extend(this.extent_, polygonGeometry.getExtent()); @@ -474,7 +474,7 @@ ol.replay.canvas.PolygonBatch.prototype.drawPolygonGeometry = /** * @inheritDoc */ -ol.replay.canvas.PolygonBatch.prototype.drawMultiPolygonGeometry = +ol.render.canvas.PolygonBatch.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent()); @@ -495,7 +495,7 @@ ol.replay.canvas.PolygonBatch.prototype.drawMultiPolygonGeometry = /** * @inheritDoc */ -ol.replay.canvas.PolygonBatch.prototype.finish = function() { +ol.render.canvas.PolygonBatch.prototype.finish = function() { goog.asserts.assert(!goog.isNull(this.state_)); this.state_ = null; }; @@ -504,7 +504,7 @@ ol.replay.canvas.PolygonBatch.prototype.finish = function() { /** * @inheritDoc */ -ol.replay.canvas.PolygonBatch.prototype.setFillStrokeStyle = +ol.render.canvas.PolygonBatch.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { goog.asserts.assert(!goog.isNull(this.state_)); goog.asserts.assert(!goog.isNull(fillStyle) || !goog.isNull(strokeStyle)); @@ -516,18 +516,18 @@ ol.replay.canvas.PolygonBatch.prototype.setFillStrokeStyle = /** * @private */ -ol.replay.canvas.PolygonBatch.prototype.setFillStrokeStyles_ = function() { +ol.render.canvas.PolygonBatch.prototype.setFillStrokeStyles_ = function() { var state = this.state_; if (!goog.isNull(state.fillStyle) && !ol.style.fill.equals(state.currentFillStyle, state.fillStyle)) { this.instructions.push( - [ol.replay.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); + [ol.render.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); state.currentFillStyle = state.fillStyle; } if (!goog.isNull(state.strokeStyle) && !ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { this.instructions.push( - [ol.replay.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle]); + [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle]); state.currentStrokeStyle = state.strokeStyle; } }; @@ -536,14 +536,14 @@ ol.replay.canvas.PolygonBatch.prototype.setFillStrokeStyles_ = function() { /** * @constructor - * @implements {ol.replay.IBatchGroup} + * @implements {ol.render.IReplayBatchGroup} */ -ol.replay.canvas.BatchGroup = function() { +ol.render.canvas.BatchGroup = function() { /** * @private * @type {Object.>} + * Object.>} */ this.batchesByZIndex_ = {}; @@ -555,7 +555,7 @@ ol.replay.canvas.BatchGroup = function() { * @param {ol.Extent} extent Extent. * @param {goog.vec.Mat4.AnyType} transform Transform. */ -ol.replay.canvas.BatchGroup.prototype.draw = +ol.render.canvas.BatchGroup.prototype.draw = function(context, extent, transform) { /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.batchesByZIndex_), Number); @@ -577,7 +577,7 @@ ol.replay.canvas.BatchGroup.prototype.draw = /** * @inheritDoc */ -ol.replay.canvas.BatchGroup.prototype.finish = function() { +ol.render.canvas.BatchGroup.prototype.finish = function() { var zKey; for (zKey in this.batchesByZIndex_) { var batches = this.batchesByZIndex_[zKey]; @@ -592,7 +592,7 @@ ol.replay.canvas.BatchGroup.prototype.finish = function() { /** * @inheritDoc */ -ol.replay.canvas.BatchGroup.prototype.getBatch = function(zIndex, batchType) { +ol.render.canvas.BatchGroup.prototype.getBatch = function(zIndex, batchType) { var zIndexKey = goog.isDef(zIndex) ? zIndex.toString() : '0'; var batches = this.batchesByZIndex_[zIndexKey]; if (!goog.isDef(batches)) { @@ -601,7 +601,7 @@ ol.replay.canvas.BatchGroup.prototype.getBatch = function(zIndex, batchType) { } var batch = batches[batchType]; if (!goog.isDef(batch)) { - var constructor = ol.replay.canvas.BATCH_CONSTRUCTORS_[batchType]; + var constructor = ol.render.canvas.BATCH_CONSTRUCTORS_[batchType]; goog.asserts.assert(goog.isDef(constructor)); batch = new constructor(); batches[batchType] = batch; @@ -613,7 +613,7 @@ ol.replay.canvas.BatchGroup.prototype.getBatch = function(zIndex, batchType) { /** * @inheritDoc */ -ol.replay.canvas.BatchGroup.prototype.isEmpty = function() { +ol.render.canvas.BatchGroup.prototype.isEmpty = function() { return goog.object.isEmpty(this.batchesByZIndex_); }; @@ -621,10 +621,10 @@ ol.replay.canvas.BatchGroup.prototype.isEmpty = function() { /** * @const * @private - * @type {Object.} + * @type {Object.} */ -ol.replay.canvas.BATCH_CONSTRUCTORS_ = { - 'Image': ol.replay.canvas.ImageBatch, - 'LineString': ol.replay.canvas.LineStringBatch, - 'Polygon': ol.replay.canvas.PolygonBatch +ol.render.canvas.BATCH_CONSTRUCTORS_ = { + 'Image': ol.render.canvas.ImageBatch, + 'LineString': ol.render.canvas.LineStringBatch, + 'Polygon': ol.render.canvas.PolygonBatch }; diff --git a/src/ol/replay/ireplay.js b/src/ol/render/ireplay.js similarity index 54% rename from src/ol/replay/ireplay.js rename to src/ol/render/ireplay.js index 9c2a4df2ed..a16d12a3f8 100644 --- a/src/ol/replay/ireplay.js +++ b/src/ol/render/ireplay.js @@ -1,5 +1,5 @@ -goog.provide('ol.replay.IBatch'); -goog.provide('ol.replay.IBatchGroup'); +goog.provide('ol.render.IReplayBatch'); +goog.provide('ol.render.IReplayBatchGroup'); goog.require('goog.functions'); @@ -7,7 +7,7 @@ goog.require('goog.functions'); /** * @enum {string} */ -ol.replay.BatchType = { +ol.render.BatchType = { IMAGE: 'Image', LINE_STRING: 'LineString', POLYGON: 'Polygon' @@ -18,21 +18,21 @@ ol.replay.BatchType = { /** * @interface */ -ol.replay.IBatch = function() { +ol.render.IReplayBatch = function() { }; /** * @param {ol.geom.Point} pointGeometry Point geometry. */ -ol.replay.IBatch.prototype.drawPointGeometry = function(pointGeometry) { +ol.render.IReplayBatch.prototype.drawPointGeometry = function(pointGeometry) { }; /** * @param {ol.geom.LineString} lineStringGeometry Line string geometry. */ -ol.replay.IBatch.prototype.drawLineStringGeometry = +ol.render.IReplayBatch.prototype.drawLineStringGeometry = function(lineStringGeometry) { }; @@ -41,7 +41,7 @@ ol.replay.IBatch.prototype.drawLineStringGeometry = * @param {ol.geom.MultiLineString} multiLineStringGeometry * Multi line string geometry. */ -ol.replay.IBatch.prototype.drawMultiLineStringGeometry = +ol.render.IReplayBatch.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { }; @@ -49,7 +49,7 @@ ol.replay.IBatch.prototype.drawMultiLineStringGeometry = /** * @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry. */ -ol.replay.IBatch.prototype.drawMultiPointGeometry = +ol.render.IReplayBatch.prototype.drawMultiPointGeometry = function(multiPointGeometry) { }; @@ -57,7 +57,7 @@ ol.replay.IBatch.prototype.drawMultiPointGeometry = /** * @param {ol.geom.MultiPolygon} multiPolygonGeometry Multi polygon geometry. */ -ol.replay.IBatch.prototype.drawMultiPolygonGeometry = +ol.render.IReplayBatch.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry) { }; @@ -65,7 +65,8 @@ ol.replay.IBatch.prototype.drawMultiPolygonGeometry = /** * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. */ -ol.replay.IBatch.prototype.drawPolygonGeometry = function(polygonGeometry) { +ol.render.IReplayBatch.prototype.drawPolygonGeometry = + function(polygonGeometry) { }; @@ -73,7 +74,7 @@ ol.replay.IBatch.prototype.drawPolygonGeometry = function(polygonGeometry) { * @param {?ol.style.Fill} fillStyle Fill style. * @param {?ol.style.Stroke} strokeStyle Stroke style. */ -ol.replay.IBatch.prototype.setFillStrokeStyle = +ol.render.IReplayBatch.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { }; @@ -81,7 +82,7 @@ ol.replay.IBatch.prototype.setFillStrokeStyle = /** * @param {?ol.style.Image} imageStyle Image style. */ -ol.replay.IBatch.prototype.setImageStyle = function(imageStyle) { +ol.render.IReplayBatch.prototype.setImageStyle = function(imageStyle) { }; @@ -89,28 +90,28 @@ ol.replay.IBatch.prototype.setImageStyle = function(imageStyle) { /** * @interface */ -ol.replay.IBatchGroup = function() { +ol.render.IReplayBatchGroup = function() { }; /** * FIXME empty description for jsdoc */ -ol.replay.IBatchGroup.prototype.finish = function() { +ol.render.IReplayBatchGroup.prototype.finish = function() { }; /** * @param {number|undefined} zIndex Z index. - * @param {ol.replay.BatchType} batchType Batch type. - * @return {ol.replay.IBatch} Batch. + * @param {ol.render.BatchType} batchType Batch type. + * @return {ol.render.IReplayBatch} Batch. */ -ol.replay.IBatchGroup.prototype.getBatch = function(zIndex, batchType) { +ol.render.IReplayBatchGroup.prototype.getBatch = function(zIndex, batchType) { }; /** * @return {boolean} Is empty. */ -ol.replay.IBatchGroup.prototype.isEmpty = function() { +ol.render.IReplayBatchGroup.prototype.isEmpty = function() { }; diff --git a/src/ol/replay/replay.js b/src/ol/render/render.js similarity index 91% rename from src/ol/replay/replay.js rename to src/ol/render/render.js index 93657fc746..64829288ac 100644 --- a/src/ol/replay/replay.js +++ b/src/ol/render/render.js @@ -1,4 +1,4 @@ -goog.provide('ol.replay'); +goog.provide('ol.render'); goog.require('goog.vec.Mat4'); @@ -9,7 +9,7 @@ goog.require('goog.vec.Mat4'); * @param {Array.=} opt_dest Destination. * @return {Array.} Transformed coordinates. */ -ol.replay.transformCoordinates = function(coordinates, transform, opt_dest) { +ol.render.transformCoordinates = function(coordinates, transform, opt_dest) { var m00 = goog.vec.Mat4.getElement(transform, 0, 0); var m10 = goog.vec.Mat4.getElement(transform, 1, 0); var m01 = goog.vec.Mat4.getElement(transform, 0, 1); diff --git a/src/ol/renderer/vector.js b/src/ol/render/vector.js similarity index 81% rename from src/ol/renderer/vector.js rename to src/ol/render/vector.js index e2d405d19e..4a5ab4c106 100644 --- a/src/ol/renderer/vector.js +++ b/src/ol/render/vector.js @@ -7,12 +7,12 @@ goog.require('ol.geom.MultiPoint'); goog.require('ol.geom.MultiPolygon'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); -goog.require('ol.replay.IBatchGroup'); +goog.require('ol.render.IReplayBatchGroup'); goog.require('ol.style.Style'); /** - * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. * @param {ol.Feature} feature Feature. * @param {ol.style.Style} style Style. */ @@ -26,7 +26,7 @@ ol.renderer.vector.renderFeature = function(batchGroup, feature, style) { /** - * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -39,14 +39,14 @@ ol.renderer.vector.renderLineStringGeometry_ = goog.asserts.assert(geometry instanceof ol.geom.LineString); var lineStringGeometry = /** @type {ol.geom.LineString} */ (geometry); var batch = batchGroup.getBatch( - style.zIndex, ol.replay.BatchType.LINE_STRING); + style.zIndex, ol.render.BatchType.LINE_STRING); batch.setFillStrokeStyle(null, style.stroke); batch.drawLineStringGeometry(lineStringGeometry); }; /** - * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -60,14 +60,14 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = var multiLineStringGeometry = /** @type {ol.geom.MultiLineString} */ (geometry); var batch = batchGroup.getBatch( - style.zIndex, ol.replay.BatchType.LINE_STRING); + style.zIndex, ol.render.BatchType.LINE_STRING); batch.setFillStrokeStyle(null, style.stroke); batch.drawMultiLineStringGeometry(multiLineStringGeometry); }; /** - * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -81,14 +81,14 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = var multiPolygonGeometry = /** @type {ol.geom.MultiPolygon} */ (geometry); var batch = batchGroup.getBatch( - style.zIndex, ol.replay.BatchType.POLYGON); + style.zIndex, ol.render.BatchType.POLYGON); batch.setFillStrokeStyle(style.fill, style.stroke); batch.drawMultiPolygonGeometry(multiPolygonGeometry); }; /** - * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -100,14 +100,14 @@ ol.renderer.vector.renderPointGeometry_ = } goog.asserts.assert(geometry instanceof ol.geom.Point); var pointGeometry = /** @type {ol.geom.Point} */ (geometry); - var batch = batchGroup.getBatch(style.zIndex, ol.replay.BatchType.IMAGE); + var batch = batchGroup.getBatch(style.zIndex, ol.render.BatchType.IMAGE); batch.setImageStyle(style.image); batch.drawPointGeometry(pointGeometry); }; /** - * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -119,14 +119,14 @@ ol.renderer.vector.renderMultiPointGeometry_ = } goog.asserts.assert(geometry instanceof ol.geom.MultiPoint); var multiPointGeometry = /** @type {ol.geom.MultiPoint} */ (geometry); - var batch = batchGroup.getBatch(style.zIndex, ol.replay.BatchType.IMAGE); + var batch = batchGroup.getBatch(style.zIndex, ol.render.BatchType.IMAGE); batch.setImageStyle(style.image); batch.drawMultiPointGeometry(multiPointGeometry); }; /** - * @param {ol.replay.IBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -138,7 +138,7 @@ ol.renderer.vector.renderPolygonGeometry_ = } goog.asserts.assert(geometry instanceof ol.geom.Polygon); var polygonGeometry = /** @type {ol.geom.Polygon} */ (geometry); - var batch = batchGroup.getBatch(style.zIndex, ol.replay.BatchType.POLYGON); + var batch = batchGroup.getBatch(style.zIndex, ol.render.BatchType.POLYGON); batch.setFillStrokeStyle(style.fill, style.stroke); batch.drawPolygonGeometry(polygonGeometry); }; @@ -148,8 +148,8 @@ ol.renderer.vector.renderPolygonGeometry_ = * @const * @private * @type {Object.} + * function(ol.render.IReplayBatchGroup, ol.geom.Geometry, + * ol.style.Style)>} */ ol.renderer.vector.GEOMETRY_RENDERERS_ = { 'Point': ol.renderer.vector.renderPointGeometry_, diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 5ce5747096..e2c934c118 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -3,9 +3,9 @@ goog.provide('ol.renderer.canvas.VectorLayer'); goog.require('goog.vec.Mat4'); goog.require('ol.ViewHint'); goog.require('ol.extent'); +goog.require('ol.render.canvas.BatchGroup'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.vector'); -goog.require('ol.replay.canvas.BatchGroup'); goog.require('ol.style.DefaultStyleFunction'); @@ -46,7 +46,7 @@ ol.renderer.canvas.VectorLayer = function(mapRenderer, vectorLayer) { /** * @private - * @type {ol.replay.canvas.BatchGroup} + * @type {ol.render.canvas.BatchGroup} */ this.batchGroup_ = null; @@ -137,7 +137,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = if (!goog.isDef(styleFunction)) { styleFunction = ol.style.DefaultStyleFunction; } - var batchGroup = new ol.replay.canvas.BatchGroup(); + var batchGroup = new ol.render.canvas.BatchGroup(); vectorSource.forEachFeatureInExtent(extent, function(feature) { var style = styleFunction(feature); ol.renderer.vector.renderFeature(batchGroup, feature, style); From dab12456aed0bb7f7406692b75e2f0d08287a81c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 12:21:50 +0100 Subject: [PATCH 146/919] Factor out ol.render.IRender --- src/ol/render/canvas/canvasreplay.js | 4 +- src/ol/render/irender.js | 73 ++++++++++++++++++++++++++ src/ol/render/ireplay.js | 76 +--------------------------- 3 files changed, 77 insertions(+), 76 deletions(-) create mode 100644 src/ol/render/irender.js diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 671dfd9642..8c3f672bb5 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -5,7 +5,7 @@ goog.require('goog.asserts'); goog.require('goog.object'); goog.require('ol.extent'); goog.require('ol.render'); -goog.require('ol.render.IReplayBatch'); +goog.require('ol.render.IRender'); goog.require('ol.render.IReplayBatchGroup'); goog.require('ol.style.fill'); goog.require('ol.style.stroke'); @@ -29,7 +29,7 @@ ol.render.canvas.Instruction = { /** * @constructor - * @implements {ol.render.IReplayBatch} + * @implements {ol.render.IRender} * @protected */ ol.render.canvas.Batch = function() { diff --git a/src/ol/render/irender.js b/src/ol/render/irender.js new file mode 100644 index 0000000000..88eae96ba6 --- /dev/null +++ b/src/ol/render/irender.js @@ -0,0 +1,73 @@ +goog.provide('ol.render.IRender'); + + + +/** + * @interface + */ +ol.render.IRender = function() { +}; + + +/** + * @param {ol.geom.Point} pointGeometry Point geometry. + */ +ol.render.IRender.prototype.drawPointGeometry = function(pointGeometry) { +}; + + +/** + * @param {ol.geom.LineString} lineStringGeometry Line string geometry. + */ +ol.render.IRender.prototype.drawLineStringGeometry = + function(lineStringGeometry) { +}; + + +/** + * @param {ol.geom.MultiLineString} multiLineStringGeometry + * Multi line string geometry. + */ +ol.render.IRender.prototype.drawMultiLineStringGeometry = + function(multiLineStringGeometry) { +}; + + +/** + * @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry. + */ +ol.render.IRender.prototype.drawMultiPointGeometry = + function(multiPointGeometry) { +}; + + +/** + * @param {ol.geom.MultiPolygon} multiPolygonGeometry Multi polygon geometry. + */ +ol.render.IRender.prototype.drawMultiPolygonGeometry = + function(multiPolygonGeometry) { +}; + + +/** + * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. + */ +ol.render.IRender.prototype.drawPolygonGeometry = + function(polygonGeometry) { +}; + + +/** + * @param {?ol.style.Fill} fillStyle Fill style. + * @param {?ol.style.Stroke} strokeStyle Stroke style. + */ +ol.render.IRender.prototype.setFillStrokeStyle = + function(fillStyle, strokeStyle) { +}; + + +/** + * @param {?ol.style.Image} imageStyle Image style. + */ +ol.render.IRender.prototype.setImageStyle = function(imageStyle) { +}; diff --git a/src/ol/render/ireplay.js b/src/ol/render/ireplay.js index a16d12a3f8..723ae309b2 100644 --- a/src/ol/render/ireplay.js +++ b/src/ol/render/ireplay.js @@ -1,7 +1,7 @@ -goog.provide('ol.render.IReplayBatch'); goog.provide('ol.render.IReplayBatchGroup'); goog.require('goog.functions'); +goog.require('ol.render.IRender'); /** @@ -15,78 +15,6 @@ ol.render.BatchType = { -/** - * @interface - */ -ol.render.IReplayBatch = function() { -}; - - -/** - * @param {ol.geom.Point} pointGeometry Point geometry. - */ -ol.render.IReplayBatch.prototype.drawPointGeometry = function(pointGeometry) { -}; - - -/** - * @param {ol.geom.LineString} lineStringGeometry Line string geometry. - */ -ol.render.IReplayBatch.prototype.drawLineStringGeometry = - function(lineStringGeometry) { -}; - - -/** - * @param {ol.geom.MultiLineString} multiLineStringGeometry - * Multi line string geometry. - */ -ol.render.IReplayBatch.prototype.drawMultiLineStringGeometry = - function(multiLineStringGeometry) { -}; - - -/** - * @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry. - */ -ol.render.IReplayBatch.prototype.drawMultiPointGeometry = - function(multiPointGeometry) { -}; - - -/** - * @param {ol.geom.MultiPolygon} multiPolygonGeometry Multi polygon geometry. - */ -ol.render.IReplayBatch.prototype.drawMultiPolygonGeometry = - function(multiPolygonGeometry) { -}; - - -/** - * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. - */ -ol.render.IReplayBatch.prototype.drawPolygonGeometry = - function(polygonGeometry) { -}; - - -/** - * @param {?ol.style.Fill} fillStyle Fill style. - * @param {?ol.style.Stroke} strokeStyle Stroke style. - */ -ol.render.IReplayBatch.prototype.setFillStrokeStyle = - function(fillStyle, strokeStyle) { -}; - - -/** - * @param {?ol.style.Image} imageStyle Image style. - */ -ol.render.IReplayBatch.prototype.setImageStyle = function(imageStyle) { -}; - - - /** * @interface */ @@ -104,7 +32,7 @@ ol.render.IReplayBatchGroup.prototype.finish = function() { /** * @param {number|undefined} zIndex Z index. * @param {ol.render.BatchType} batchType Batch type. - * @return {ol.render.IReplayBatch} Batch. + * @return {ol.render.IRender} Batch. */ ol.render.IReplayBatchGroup.prototype.getBatch = function(zIndex, batchType) { }; From cd82cb25346012c432de31a93bbe994d647b3b2c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 13:24:20 +0100 Subject: [PATCH 147/919] Refactor ol.render.transformCoordinates to accept stride --- src/ol/render/canvas/canvasreplay.js | 4 ++-- src/ol/render/render.js | 34 ++++++++++++---------------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 8c3f672bb5..803b556708 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -91,8 +91,8 @@ ol.render.canvas.Batch.prototype.appendFlatCoordinates = * @param {goog.vec.Mat4.AnyType} transform Transform. */ ol.render.canvas.Batch.prototype.draw = function(context, transform) { - var pixelCoordinates = ol.render.transformCoordinates( - this.coordinates, transform, this.pixelCoordinates_); + var pixelCoordinates = ol.render.transformFlatCoordinates( + this.coordinates, 2, transform, this.pixelCoordinates_); this.pixelCoordinates_ = pixelCoordinates; // FIXME ? var instructions = this.instructions; var i = 0; diff --git a/src/ol/render/render.js b/src/ol/render/render.js index 64829288ac..5d0aed06a5 100644 --- a/src/ol/render/render.js +++ b/src/ol/render/render.js @@ -4,35 +4,31 @@ goog.require('goog.vec.Mat4'); /** - * @param {Array.} coordinates Coordinates. + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} stride Stride. * @param {goog.vec.Mat4.AnyType} transform Transform. * @param {Array.=} opt_dest Destination. * @return {Array.} Transformed coordinates. */ -ol.render.transformCoordinates = function(coordinates, transform, opt_dest) { +ol.render.transformFlatCoordinates = + function(flatCoordinates, stride, transform, opt_dest) { var m00 = goog.vec.Mat4.getElement(transform, 0, 0); var m10 = goog.vec.Mat4.getElement(transform, 1, 0); var m01 = goog.vec.Mat4.getElement(transform, 0, 1); var m11 = goog.vec.Mat4.getElement(transform, 1, 1); var m03 = goog.vec.Mat4.getElement(transform, 0, 3); var m13 = goog.vec.Mat4.getElement(transform, 1, 3); - var n = coordinates.length; - var result; - if (goog.isDef(opt_dest)) { - result = opt_dest; - } else { - result = []; + var dest = goog.isDef(opt_dest) ? opt_dest : []; + var i = 0; + var j, jj; + for (j = 0, jj = flatCoordinates.length; j < jj; j += stride) { + var x = flatCoordinates[j]; + var y = flatCoordinates[j + 1]; + dest[i++] = m00 * x + m01 * y + m03; + dest[i++] = m10 * x + m11 * y + m13; } - var j = 0; - var i, x, y; - for (i = 0; i < n; ) { - x = coordinates[i++]; - y = coordinates[i++]; - result[j++] = m00 * x + m01 * y + m03; - result[j++] = m10 * x + m11 * y + m13; + if (goog.isDef(opt_dest) && dest.length != i) { + dest.length = i; } - if (goog.isDef(opt_dest) && result.length != j) { - result.length = j; - } - return result; + return dest; }; From 51d4d164b1710559bebdaea81b559e61d44a0203 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 13:47:24 +0100 Subject: [PATCH 148/919] Add ol.render.transformGeometry --- src/ol/render/render.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ol/render/render.js b/src/ol/render/render.js index 5d0aed06a5..ba9ae73c3c 100644 --- a/src/ol/render/render.js +++ b/src/ol/render/render.js @@ -1,6 +1,7 @@ goog.provide('ol.render'); goog.require('goog.vec.Mat4'); +goog.require('ol.geom.Geometry'); /** @@ -32,3 +33,17 @@ ol.render.transformFlatCoordinates = } return dest; }; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {Array.=} opt_dest Destination. + * @return {Array.} Transformed flat coordinates. + */ +ol.render.transformGeometry = function(geometry, transform, opt_dest) { + var flatCoordinates = geometry.getFlatCoordinates(); + var stride = geometry.getStride(); + return ol.render.transformFlatCoordinates( + flatCoordinates, stride, transform, opt_dest); +}; From 8c3c3044977c9eac2df53e44b560772a0ddb9b44 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 13:48:35 +0100 Subject: [PATCH 149/919] Add incomplete ol.render.canvas.Render --- src/ol/render/canvas/canvasrender.js | 162 +++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 src/ol/render/canvas/canvasrender.js diff --git a/src/ol/render/canvas/canvasrender.js b/src/ol/render/canvas/canvasrender.js new file mode 100644 index 0000000000..1c900002d1 --- /dev/null +++ b/src/ol/render/canvas/canvasrender.js @@ -0,0 +1,162 @@ +// FIXME complete missing functionality +// FIXME factor out drawImage +// FIXME factor out moveTo/lineTo + +goog.provide('ol.render.canvas.Render'); + +goog.require('goog.asserts'); +goog.require('ol.render'); +goog.require('ol.render.IRender'); +goog.require('ol.style.fill'); +goog.require('ol.style.stroke'); + + + +/** + * @constructor + * @implements {ol.render.IRender} + * @param {CanvasRenderingContext2D} context Context. + * @param {goog.vec.Mat4.AnyType} transform Transform. + */ +ol.render.canvas.Render = function(context, transform) { + + /** + * @private + * @type {CanvasRenderingContext2D} + */ + this.context_ = context; + + /** + * @private + * @type {goog.vec.Mat4.AnyType} + */ + this.transform_ = transform; + + /** + * @private + * @type {{fillStyle: ?ol.style.Fill, + * imageStyle: ?ol.style.Image, + * strokeStyle: ?ol.style.Stroke}} + */ + this.state_ = { + fillStyle: null, + imageStyle: null, + strokeStyle: null + }; + + /** + * @private + * @type {Array.} + */ + this.pixelCoordinates_ = []; + +}; + + +/** + * @inheritDoc + */ +ol.render.canvas.Render.prototype.drawPointGeometry = function(pointGeometry) { + var context = this.context_; + var imageStyle = this.state_.imageStyle; + if (goog.isNull(imageStyle)) { + return; + } + var pixelCoordinates = ol.render.transformGeometry( + pointGeometry, this.transform_, this.pixelCoordinates_); + context.drawImage( + imageStyle.image, + pixelCoordinates[0] - imageStyle.anchor[0], + pixelCoordinates[1] - imageStyle.anchor[1]); +}; + + +/** + * @inheritDoc + */ +ol.render.canvas.Render.prototype.drawMultiPointGeometry = + function(multiPointGeometry) { + var context = this.context_; + var imageStyle = this.state_.imageStyle; + if (goog.isNull(imageStyle)) { + return; + } + var pixelCoordinates = ol.render.transformGeometry( + multiPointGeometry, this.transform_, this.pixelCoordinates_); + var i, ii; + for (i = 0, ii = pixelCoordinates.length; i < ii; i += 2) { + context.drawImage( + imageStyle.image, + pixelCoordinates[i] - imageStyle.anchor[0], + pixelCoordinates[i + 1] - imageStyle.anchor[1]); + } +}; + + +/** + * @inheritDoc + */ +ol.render.canvas.Render.prototype.drawLineStringGeometry = + function(lineStringGeometry) { + if (goog.isNull(this.state_.strokeStyle)) { + return; + } + var context = this.context_; + var pixelCoordinates = ol.render.transformGeometry( + lineStringGeometry, this.transform_, this.pixelCoordinates_); + context.beginPath(); + context.moveTo(pixelCoordinates[0], pixelCoordinates[1]); + var i, ii; + for (i = 2, ii = pixelCoordinates.length; i < ii; ++i) { + context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]); + } + context.stroke(); +}; + + +/** + * @inheritDoc + */ +ol.render.canvas.Render.prototype.drawMultiLineStringGeometry = + goog.abstractMethod; // FIXME + + +/** + * @inheritDoc + */ +ol.render.canvas.Render.prototype.drawPolygonGeometry = + goog.abstractMethod; // FIXME + + +/** + * @inheritDoc + */ +ol.render.canvas.Render.prototype.drawMultiPolygonGeometry = + goog.abstractMethod; // FIXME + + +/** + * @inheritDoc + */ +ol.render.canvas.Render.prototype.setFillStrokeStyle = + function(fillStyle, strokeStyle) { + var context = this.context_; + var state = this.state_; + if (!ol.style.fill.equals(state.fillStyle, fillStyle)) { + context.fillStyle = fillStyle.color; + state.fillStyle = fillStyle; + } + if (!ol.style.stroke.equals(state.strokeStyle, strokeStyle)) { + context.strokeStyle = strokeStyle.color; + context.lineWidth = strokeStyle.width; + state.strokeStyle = strokeStyle; + } +}; + + +/** + * @inheritDoc + */ +ol.render.canvas.Render.prototype.setImageStyle = function(imageStyle) { + this.state_.imageStyle = imageStyle; +}; From bc8c32848321fce4a0c3e61412fe03244b84e02c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 13:57:25 +0100 Subject: [PATCH 150/919] Add snapToPixel --- src/ol/render/canvas/canvasrender.js | 1 + src/ol/render/canvas/canvasreplay.js | 13 +++++++++---- src/ol/style.js | 3 +++ src/ol/symbols.js | 1 + 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasrender.js b/src/ol/render/canvas/canvasrender.js index 1c900002d1..fddcbe715d 100644 --- a/src/ol/render/canvas/canvasrender.js +++ b/src/ol/render/canvas/canvasrender.js @@ -1,5 +1,6 @@ // FIXME complete missing functionality // FIXME factor out drawImage +// FIXME apply snapToPixel // FIXME factor out moveTo/lineTo goog.provide('ol.render.canvas.Render'); diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 803b556708..9e5ed73448 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1,3 +1,5 @@ +// FIXME decide default snapToPixel behaviour + goog.provide('ol.render.canvas.BatchGroup'); goog.require('goog.array'); @@ -108,10 +110,13 @@ ol.render.canvas.Batch.prototype.draw = function(context, transform) { end = /** @type {number} */ (instruction[1]); var imageStyle = /** @type {ol.style.Image} */ (instruction[2]); for (; i < end; i += 2) { - context.drawImage( - imageStyle.image, - pixelCoordinates[i] - imageStyle.anchor[0], - pixelCoordinates[i + 1] - imageStyle.anchor[1]); + var x = pixelCoordinates[i] - imageStyle.anchor[0]; + var y = pixelCoordinates[i + 1] - imageStyle.anchor[1]; + if (imageStyle.snapToPixel) { + x = (x + 0.5) | 0; + y = (y + 0.5) | 0; + } + context.drawImage(imageStyle.image, x, y); } } else if (type == ol.render.canvas.Instruction.FILL) { context.fill(); diff --git a/src/ol/style.js b/src/ol/style.js index b59c10f801..a449fdd1af 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -1,4 +1,5 @@ // FIXME decide how to handle fill opacity +// FIXME decide default value for snapToPixel goog.provide('ol.style'); goog.provide('ol.style.DefaultStyleFunction'); @@ -32,6 +33,7 @@ ol.style.fill.equals = function(fillStyle1, fillStyle2) { * @typedef {{anchor: Array., * image: (HTMLCanvasElement|HTMLVideoElement|Image), * rotation: number, + * snapToPixel: (boolean|undefined), * subtractViewRotation: boolean}} */ ol.style.Image; @@ -89,6 +91,7 @@ ol.style.DEFAULT_IMAGE_STYLE = { anchor: [0, 0], image: null, // FIXME rotation: 0.0, + snapToPixel: undefined, subtractViewRotation: false }; diff --git a/src/ol/symbols.js b/src/ol/symbols.js index 7f7efd8007..d71d8a1df8 100644 --- a/src/ol/symbols.js +++ b/src/ol/symbols.js @@ -40,6 +40,7 @@ ol.symbol.renderCircle = function(radius, fillStyle, strokeStyle) { anchor: [size / 2, size / 2], image: canvas, rotation: 0, + snapToPixel: undefined, subtractViewRotation: false }; From adf5cd3fd1aa601dc353ac87b688a756a44b3b5e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 15:07:13 +0100 Subject: [PATCH 151/919] Return end from ol.render.canvas.LineStringBatch#drawFlatCoordinates_ --- src/ol/render/canvas/canvasreplay.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 9e5ed73448..8034d9ad9b 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -323,6 +323,7 @@ goog.inherits(ol.render.canvas.LineStringBatch, ol.render.canvas.Batch); * @param {number} end End. * @param {number} stride Stride. * @private + * @return {number} end. */ ol.render.canvas.LineStringBatch.prototype.drawFlatCoordinates_ = function(flatCoordinates, offset, end, stride) { @@ -339,6 +340,7 @@ ol.render.canvas.LineStringBatch.prototype.drawFlatCoordinates_ = var myEnd = this.appendFlatCoordinates( flatCoordinates, offset, end, stride, false); this.instructions.push([ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myEnd]); + return end; }; @@ -369,9 +371,8 @@ ol.render.canvas.LineStringBatch.prototype.drawMultiLineStringGeometry = var offset = 0; var i, ii; for (i = 0, ii = ends.length; i < ii; ++i) { - var end = ends[i]; - this.drawFlatCoordinates_(flatCoordinates, offset, end, stride); - offset = end; + offset = this.drawFlatCoordinates_( + flatCoordinates, offset, ends[i], stride); } }; From a09f686d5ddff744f8a64f5a1a8622022e51fe52 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 15:07:30 +0100 Subject: [PATCH 152/919] Return end from ol.render.canvas.LineStringBatch#drawFlatCoordinatess_ --- src/ol/render/canvas/canvasreplay.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 8034d9ad9b..cd074638d7 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -436,6 +436,7 @@ goog.inherits(ol.render.canvas.PolygonBatch, ol.render.canvas.Batch); * @param {Array.} ends Ends. * @param {number} stride Stride. * @private + * @return {number} End. */ ol.render.canvas.PolygonBatch.prototype.drawFlatCoordinatess_ = function(flatCoordinates, offset, ends, stride) { @@ -459,6 +460,7 @@ ol.render.canvas.PolygonBatch.prototype.drawFlatCoordinatess_ = if (!goog.isNull(state.strokeStyle)) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); } + return offset; }; @@ -491,9 +493,8 @@ ol.render.canvas.PolygonBatch.prototype.drawMultiPolygonGeometry = var offset = 0; var i, ii; for (i = 0, ii = endss.length; i < ii; ++i) { - var ends = endss[i]; - this.drawFlatCoordinatess_(flatCoordinates, offset, ends, stride); - offset = ends[ends.length - 1]; + offset = this.drawFlatCoordinatess_( + flatCoordinates, offset, endss[i], stride); } }; From 7efae6e00cd2221548195285d1a67a2a37a00b9c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 15:08:38 +0100 Subject: [PATCH 153/919] Ccomplete ol.render.canvas.Render --- src/ol/render/canvas/canvasrender.js | 158 +++++++++++++++++++++------ 1 file changed, 123 insertions(+), 35 deletions(-) diff --git a/src/ol/render/canvas/canvasrender.js b/src/ol/render/canvas/canvasrender.js index fddcbe715d..e50dda10f9 100644 --- a/src/ol/render/canvas/canvasrender.js +++ b/src/ol/render/canvas/canvasrender.js @@ -1,7 +1,4 @@ -// FIXME complete missing functionality -// FIXME factor out drawImage -// FIXME apply snapToPixel -// FIXME factor out moveTo/lineTo +// FIXME test, especially polygons with holes and multipolygons goog.provide('ol.render.canvas.Render'); @@ -55,43 +52,84 @@ ol.render.canvas.Render = function(context, transform) { /** - * @inheritDoc + * @param {ol.geom.Point|ol.geom.MultiPoint} geometry Geometry. + * @private */ -ol.render.canvas.Render.prototype.drawPointGeometry = function(pointGeometry) { +ol.render.canvas.Render.prototype.drawImages_ = function(geometry) { var context = this.context_; var imageStyle = this.state_.imageStyle; if (goog.isNull(imageStyle)) { return; } var pixelCoordinates = ol.render.transformGeometry( - pointGeometry, this.transform_, this.pixelCoordinates_); - context.drawImage( - imageStyle.image, - pixelCoordinates[0] - imageStyle.anchor[0], - pixelCoordinates[1] - imageStyle.anchor[1]); + geometry, this.transform_, this.pixelCoordinates_); + var i, ii; + for (i = 0, ii = pixelCoordinates.length; i < ii; i += 2) { + var x = pixelCoordinates[i] - imageStyle.anchor[0]; + var y = pixelCoordinates[i + 1] - imageStyle.anchor[1]; + if (imageStyle.snapToPixel) { + x = (x + 0.5) | 0; + y = (y + 0.5) | 0; + } + context.drawImage(imageStyle.image, x, y); + } +}; + + +/** + * @param {Array.} pixelCoordinates Pixel coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {boolean} close Close. + * @private + * @return {number} end End. + */ +ol.render.canvas.Render.prototype.moveToLineTo_ = + function(pixelCoordinates, offset, end, close) { + var context = this.context_; + context.moveTo(pixelCoordinates[offset], pixelCoordinates[offset + 1]); + var i; + for (i = offset + 2; i < end; i += 2) { + context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]); + } + if (close) { + context.lineTo(pixelCoordinates[offset], pixelCoordinates[offset + 1]); + } + return end; +}; + + +/** + * @param {Array.} pixelCoordinates Pixel coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @private + * @return {number} End. + */ +ol.render.canvas.Render.prototype.drawRings_ = + function(pixelCoordinates, offset, ends) { + var context = this.context_; + var i, ii; + for (i = 0, ii = ends.length; i < ii; ++i) { + offset = this.moveToLineTo_(pixelCoordinates, offset, ends[i], true); + context.closePath(); // FIXME is this needed here? + } + return offset; }; +/** + * @inheritDoc + */ +ol.render.canvas.Render.prototype.drawPointGeometry = + ol.render.canvas.Render.prototype.drawImages_; + + /** * @inheritDoc */ ol.render.canvas.Render.prototype.drawMultiPointGeometry = - function(multiPointGeometry) { - var context = this.context_; - var imageStyle = this.state_.imageStyle; - if (goog.isNull(imageStyle)) { - return; - } - var pixelCoordinates = ol.render.transformGeometry( - multiPointGeometry, this.transform_, this.pixelCoordinates_); - var i, ii; - for (i = 0, ii = pixelCoordinates.length; i < ii; i += 2) { - context.drawImage( - imageStyle.image, - pixelCoordinates[i] - imageStyle.anchor[0], - pixelCoordinates[i + 1] - imageStyle.anchor[1]); - } -}; + ol.render.canvas.Render.prototype.drawImages_; /** @@ -106,11 +144,7 @@ ol.render.canvas.Render.prototype.drawLineStringGeometry = var pixelCoordinates = ol.render.transformGeometry( lineStringGeometry, this.transform_, this.pixelCoordinates_); context.beginPath(); - context.moveTo(pixelCoordinates[0], pixelCoordinates[1]); - var i, ii; - for (i = 2, ii = pixelCoordinates.length; i < ii; ++i) { - context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]); - } + this.moveToLineTo_(pixelCoordinates, 0, pixelCoordinates.length, false); context.stroke(); }; @@ -119,21 +153,75 @@ ol.render.canvas.Render.prototype.drawLineStringGeometry = * @inheritDoc */ ol.render.canvas.Render.prototype.drawMultiLineStringGeometry = - goog.abstractMethod; // FIXME + function(multiLineStringGeometry) { + if (goog.isNull(this.state_.strokeStyle)) { + return; + } + var context = this.context_; + var pixelCoordinates = ol.render.transformGeometry( + multiLineStringGeometry, this.transform_, this.pixelCoordinates_); + context.beginPath(); + var ends = multiLineStringGeometry.getEnds(); + var offset = 0; + var i, ii; + for (i = 0, ii = ends.length; i < ii; ++i) { + offset = this.moveToLineTo_(pixelCoordinates, offset, ends[i], false); + } + context.stroke(); +}; /** * @inheritDoc */ ol.render.canvas.Render.prototype.drawPolygonGeometry = - goog.abstractMethod; // FIXME + function(polygonGeometry) { + var state = this.state_; + if (goog.isNull(this.fillStyle) && goog.isNull(this.strokeStyle)) { + return; + } + var context = this.context_; + var pixelCoordinates = ol.render.transformGeometry( + polygonGeometry, this.transform_, this.pixelCoordinates_); + var ends = polygonGeometry.getEnds(); + context.beginPath(); + this.drawRings_(pixelCoordinates, 0, ends); + if (!goog.isNull(state.fillStyle)) { + context.fill(); + } + if (!goog.isNull(state.strokeStyle)) { + context.stroke(); + } +}; /** * @inheritDoc */ ol.render.canvas.Render.prototype.drawMultiPolygonGeometry = - goog.abstractMethod; // FIXME + function(multiPolygonGeometry) { + var state = this.state_; + if (goog.isNull(this.fillStyle) && goog.isNull(this.strokeStyle)) { + return; + } + var context = this.context_; + var pixelCoordinates = ol.render.transformGeometry( + multiPolygonGeometry, this.transform_, this.pixelCoordinates_); + var endss = multiPolygonGeometry.getEndss(); + var offset = 0; + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + context.beginPath(); + offset = this.drawRings_(pixelCoordinates, offset, ends); + if (!goog.isNull(state.fillStyle)) { + context.fill(); + } + if (!goog.isNull(state.strokeStyle)) { + context.stroke(); + } + } +}; /** From d437ec31e7f447af12b24a245e161e4f70117451 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 15:09:57 +0100 Subject: [PATCH 154/919] Add more FIXMEs --- src/ol/render/canvas/canvasreplay.js | 1 + src/ol/symbols.js | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index cd074638d7..6b02b76ad7 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1,4 +1,5 @@ // FIXME decide default snapToPixel behaviour +// FIXME add option to apply snapToPixel to all coordinates? goog.provide('ol.render.canvas.BatchGroup'); diff --git a/src/ol/symbols.js b/src/ol/symbols.js index d71d8a1df8..b548188352 100644 --- a/src/ol/symbols.js +++ b/src/ol/symbols.js @@ -1,3 +1,7 @@ +// FIXME check size when stroked +// FIXME move to ol.render? +// FIXME find a sensible caching strategy + goog.provide('ol.symbol'); goog.require('goog.dom'); From 8c9732c9da6d95eb91248e630318b25540686a85 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 16:34:14 +0100 Subject: [PATCH 155/919] Add missing style parameter to GeoJSON example --- examples/geojson.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/geojson.js b/examples/geojson.js index 6c44590ffe..e6599e08f7 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -10,7 +10,7 @@ goog.require('ol.style.DefaultStyleFunction'); goog.require('ol.symbol'); -var image = ol.symbol.renderCircle(5, null, {color: 'red'}); +var image = ol.symbol.renderCircle(5, null, {color: 'red', width: 1}); var styleFunction = function(feature) { switch (feature.getGeometry().getType()) { case ol.geom.GeometryType.POINT: From 0fa8692b1b3caf581f899398cc000de5c35c816a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 17:26:09 +0100 Subject: [PATCH 156/919] Add ol.format.GeoJSONOptions --- src/objectliterals.jsdoc | 5 +++++ src/ol/format/geojson/geojsonformat.js | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 5818a66a45..a27dae8aa2 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -245,6 +245,11 @@ * @todo stability experimental */ +/** + * @typedef {Object} ol.format.GeoJSONOptions + * @property {ol.proj.ProjectionLike} projection Projection. + */ + /** * @typedef {Object} ol.interaction.DoubleClickZoomOptions * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`. diff --git a/src/ol/format/geojson/geojsonformat.js b/src/ol/format/geojson/geojsonformat.js index 39bc2b311a..710582c209 100644 --- a/src/ol/format/geojson/geojsonformat.js +++ b/src/ol/format/geojson/geojsonformat.js @@ -19,8 +19,9 @@ goog.require('ol.geom.Polygon'); /** * @constructor * @implements {ol.format.IReader} + * @param {ol.format.GeoJSONOptions=} opt_options Options. */ -ol.format.GeoJSON = function() { +ol.format.GeoJSON = function(opt_options) { }; From ce8bcfe3195e5bf48cdcc9296ea0f64a7b6af2a7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 17:26:26 +0100 Subject: [PATCH 157/919] Add ol.format.GeoJSON exports --- src/ol/format/geojson/geojsonformat.exports | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/ol/format/geojson/geojsonformat.exports diff --git a/src/ol/format/geojson/geojsonformat.exports b/src/ol/format/geojson/geojsonformat.exports new file mode 100644 index 0000000000..7ba8843ef0 --- /dev/null +++ b/src/ol/format/geojson/geojsonformat.exports @@ -0,0 +1,3 @@ +@exportClass ol.format.GeoJSON ol.format.GeoJSONOptions +@exportProperty ol.format.GeoJSON.prototype.readObject +@exportProperty ol.format.GeoJSON.prototype.readString From a2e76a187245e7b0a70564834ff6f416ecdef67a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 17:37:34 +0100 Subject: [PATCH 158/919] Rename symbols.js to symbol.js --- src/ol/{symbols.js => symbol.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/ol/{symbols.js => symbol.js} (100%) diff --git a/src/ol/symbols.js b/src/ol/symbol.js similarity index 100% rename from src/ol/symbols.js rename to src/ol/symbol.js From 8f79d070dc0160a8493049078c4d944e414f6eab Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 17:39:34 +0100 Subject: [PATCH 159/919] Add ol.symbol exports --- src/ol/symbol.exports | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/ol/symbol.exports diff --git a/src/ol/symbol.exports b/src/ol/symbol.exports new file mode 100644 index 0000000000..37698eef78 --- /dev/null +++ b/src/ol/symbol.exports @@ -0,0 +1 @@ +@exportSymbol ol.symbol.renderCircle From 0311ecd68f1ea58db76974efcd6cb02e15262fae Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 18:28:11 +0100 Subject: [PATCH 160/919] Export ol.source.Vector#addFeature --- src/ol/source/vectorsource.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/source/vectorsource.exports b/src/ol/source/vectorsource.exports index d7842f5b84..2340e08e5a 100644 --- a/src/ol/source/vectorsource.exports +++ b/src/ol/source/vectorsource.exports @@ -1 +1,2 @@ @exportClass ol.source.Vector ol.source.VectorOptions +@exportProperty ol.source.Vector.prototype.addFeature From e773f5fc2b2b38662d8ccea3e1e2bfa2a2d11c2f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 18:35:25 +0100 Subject: [PATCH 161/919] Don't attempt to compile countries example --- examples/countries.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/countries.js b/examples/countries.js index 118aff65fc..1f3a0e6c53 100644 --- a/examples/countries.js +++ b/examples/countries.js @@ -1,3 +1,5 @@ +// NOCOMPILE +// FIXME don't rely on goog.* functions goog.require('goog.asserts'); goog.require('goog.functions'); goog.require('goog.net.XhrIo'); From e1f02f85d8577ce6ac34977ec8594ef13e7e1030 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 20:53:48 +0100 Subject: [PATCH 162/919] Add ol.geom exports --- src/ol/geom/geometry.exports | 4 ++++ src/ol/geom/linestring.exports | 5 +++++ src/ol/geom/multilinestring.exports | 5 +++++ src/ol/geom/multipoint.exports | 5 +++++ src/ol/geom/multipolygon.exports | 5 +++++ src/ol/geom/point.exports | 5 +++++ src/ol/geom/polygon.exports | 5 +++++ 7 files changed, 34 insertions(+) create mode 100644 src/ol/geom/geometry.exports create mode 100644 src/ol/geom/linestring.exports create mode 100644 src/ol/geom/multilinestring.exports create mode 100644 src/ol/geom/multipoint.exports create mode 100644 src/ol/geom/multipolygon.exports create mode 100644 src/ol/geom/point.exports create mode 100644 src/ol/geom/polygon.exports diff --git a/src/ol/geom/geometry.exports b/src/ol/geom/geometry.exports new file mode 100644 index 0000000000..8b5c29084d --- /dev/null +++ b/src/ol/geom/geometry.exports @@ -0,0 +1,4 @@ +@exportSymbol ol.geom.Geometry +@exportProperty ol.geom.Geometry.prototype.getExtent +@exportProperty ol.geom.Geometry.prototype.getLayout +@exportProperty ol.geom.Geometry.prototype.transform diff --git a/src/ol/geom/linestring.exports b/src/ol/geom/linestring.exports new file mode 100644 index 0000000000..3f8dcb5293 --- /dev/null +++ b/src/ol/geom/linestring.exports @@ -0,0 +1,5 @@ +@exportSymbol ol.geom.LineString +@exportProperty ol.geom.LineString.prototype.getCoordinates +@exportProperty ol.geom.LineString.prototype.getExtent +@exportProperty ol.geom.LineString.prototype.getType +@exportProperty ol.geom.LineString.prototype.setCoordinates diff --git a/src/ol/geom/multilinestring.exports b/src/ol/geom/multilinestring.exports new file mode 100644 index 0000000000..8176a1a46d --- /dev/null +++ b/src/ol/geom/multilinestring.exports @@ -0,0 +1,5 @@ +@exportSymbol ol.geom.MultiLineString +@exportProperty ol.geom.MultiLineString.prototype.getCoordinates +@exportProperty ol.geom.MultiLineString.prototype.getExtent +@exportProperty ol.geom.MultiLineString.prototype.getType +@exportProperty ol.geom.MultiLineString.prototype.setCoordinates diff --git a/src/ol/geom/multipoint.exports b/src/ol/geom/multipoint.exports new file mode 100644 index 0000000000..d55764e7e9 --- /dev/null +++ b/src/ol/geom/multipoint.exports @@ -0,0 +1,5 @@ +@exportSymbol ol.geom.MultiPoint +@exportProperty ol.geom.MultiPoint.prototype.getCoordinates +@exportProperty ol.geom.MultiPoint.prototype.getExtent +@exportProperty ol.geom.MultiPoint.prototype.getType +@exportProperty ol.geom.MultiPoint.prototype.setCoordinates diff --git a/src/ol/geom/multipolygon.exports b/src/ol/geom/multipolygon.exports new file mode 100644 index 0000000000..e8aa397e67 --- /dev/null +++ b/src/ol/geom/multipolygon.exports @@ -0,0 +1,5 @@ +@exportSymbol ol.geom.MultiPolygon +@exportProperty ol.geom.MultiPolygon.prototype.getCoordinates +@exportProperty ol.geom.MultiPolygon.prototype.getExtent +@exportProperty ol.geom.MultiPolygon.prototype.getType +@exportProperty ol.geom.MultiPolygon.prototype.setCoordinates diff --git a/src/ol/geom/point.exports b/src/ol/geom/point.exports new file mode 100644 index 0000000000..0484497386 --- /dev/null +++ b/src/ol/geom/point.exports @@ -0,0 +1,5 @@ +@exportSymbol ol.geom.Point +@exportProperty ol.geom.Point.prototype.getCoordinates +@exportProperty ol.geom.Point.prototype.getExtent +@exportProperty ol.geom.Point.prototype.getType +@exportProperty ol.geom.Point.prototype.setCoordinates diff --git a/src/ol/geom/polygon.exports b/src/ol/geom/polygon.exports new file mode 100644 index 0000000000..f725e8e6d6 --- /dev/null +++ b/src/ol/geom/polygon.exports @@ -0,0 +1,5 @@ +@exportSymbol ol.geom.Polygon +@exportProperty ol.geom.Polygon.prototype.getCoordinates +@exportProperty ol.geom.Polygon.prototype.getExtent +@exportProperty ol.geom.Polygon.prototype.getType +@exportProperty ol.geom.Polygon.prototype.setCoordinates From 6b0a7e9c30b2767a548f57396a657e334fce89ca Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 21:01:10 +0100 Subject: [PATCH 163/919] Export ol.Feature --- src/ol/feature.exports | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/ol/feature.exports diff --git a/src/ol/feature.exports b/src/ol/feature.exports new file mode 100644 index 0000000000..5e93264ce8 --- /dev/null +++ b/src/ol/feature.exports @@ -0,0 +1 @@ +@exportSymbol ol.Feature From e504f69503d1e5e5e0ddf31237b08b79e0aa6497 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 21:16:24 +0100 Subject: [PATCH 164/919] Add missing MultiPoint entry --- src/ol/render/vector.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index 4a5ab4c106..c8a735ff23 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -155,6 +155,7 @@ ol.renderer.vector.GEOMETRY_RENDERERS_ = { 'Point': ol.renderer.vector.renderPointGeometry_, 'LineString': ol.renderer.vector.renderLineStringGeometry_, 'Polygon': ol.renderer.vector.renderPolygonGeometry_, + 'MultiPoint': ol.renderer.vector.renderMultiPointGeometry_, 'MultiLineString': ol.renderer.vector.renderMultiLineStringGeometry_, 'MultiPolygon': ol.renderer.vector.renderMultiPolygonGeometry_ }; From cab8cf4fdeb49eb11a1293aba4ed512b452e41f0 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 21:31:07 +0100 Subject: [PATCH 165/919] Make synthetic data example more idiomatic --- examples/synthetic-data.js | 60 +++++++++++++++----------------------- 1 file changed, 24 insertions(+), 36 deletions(-) diff --git a/examples/synthetic-data.js b/examples/synthetic-data.js index 86023728e0..7e8dbbe524 100644 --- a/examples/synthetic-data.js +++ b/examples/synthetic-data.js @@ -1,56 +1,44 @@ -goog.require('goog.functions'); +goog.require('ol.Feature'); goog.require('ol.Map'); goog.require('ol.Overlay'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); -goog.require('ol.format.GeoJSON'); +goog.require('ol.geom.Point'); goog.require('ol.layer.Vector'); goog.require('ol.source.Vector'); goog.require('ol.symbol'); -// build up some GeoJSON features var count = 20000; var features = new Array(count); var e = 18000000; for (var i = 0; i < count; ++i) { - features[i] = { - type: 'Feature', - properties: { - i: i, - size: i % 2 ? 10 : 20 - }, - geometry: { - type: 'Point', - coordinates: [ - 2 * e * Math.random() - e, 2 * e * Math.random() - e - ] - } - }; + features[i] = new ol.Feature({ + 'geometry': new ol.geom.Point( + [2 * e * Math.random() - e, 2 * e * Math.random() - e]), + 'i': i, + 'size': i % 2 ? 10 : 20 + }); } -var vectorSource = new ol.source.Vector(); -new ol.format.GeoJSON().readObject({ - type: 'FeatureCollection', - features: features -}, vectorSource.addFeature, vectorSource); - -var styleFunction = goog.functions.constant({ - image: ol.symbol.renderCircle( - 5, - { - color: '#666666' - }, - { - color: '#bada55', - width: 1 - }) -}); - +var styles = { + '10': { + image: ol.symbol.renderCircle( + 5, {color: '#666666'}, {color: '#bada55', width: 1}) + }, + '20': { + image: ol.symbol.renderCircle( + 10, {color: '#666666'}, {color: '#bada55', width: 1}) + } +}; var vector = new ol.layer.Vector({ - source: vectorSource, - styleFunction: styleFunction + source: new ol.source.Vector({ + features: features + }), + styleFunction: function(feature) { + return styles[feature.get('size')]; + } }); var popup = new ol.Overlay({ From 6ae1c2e8741d988178b30916a0f454671fc706aa Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 22:40:37 +0100 Subject: [PATCH 166/919] Add ol.render.IRender#drawFeature --- src/ol/render/irender.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ol/render/irender.js b/src/ol/render/irender.js index 88eae96ba6..613106b86a 100644 --- a/src/ol/render/irender.js +++ b/src/ol/render/irender.js @@ -9,6 +9,14 @@ ol.render.IRender = function() { }; +/** + * @param {ol.Feature} feature Feature. + * @param {ol.style.Style} style Style. + */ +ol.render.IRender.prototype.drawFeature = function(feature, style) { +}; + + /** * @param {ol.geom.Point} pointGeometry Point geometry. */ From 6052a8ef9f8ba30afffb50c2f20afbc1c9d15cf4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 22:41:05 +0100 Subject: [PATCH 167/919] Add dummy implementation of ol.render.canvas.Batch#drawFeature --- src/ol/render/canvas/canvasreplay.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 6b02b76ad7..8468ffd1b2 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -145,6 +145,12 @@ ol.render.canvas.Batch.prototype.draw = function(context, transform) { }; +/** + * @inheritDoc + */ +ol.render.canvas.Batch.prototype.drawFeature = goog.abstractMethod; + + /** * @inheritDoc */ From d2806df92b8be73c25dd55ab85a623e667ae6c30 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 22:41:30 +0100 Subject: [PATCH 168/919] Add ol.render.canvas.Render#drawFeature --- src/ol/render/canvas/canvasrender.js | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/ol/render/canvas/canvasrender.js b/src/ol/render/canvas/canvasrender.js index e50dda10f9..f063758747 100644 --- a/src/ol/render/canvas/canvasrender.js +++ b/src/ol/render/canvas/canvasrender.js @@ -118,6 +118,20 @@ ol.render.canvas.Render.prototype.drawRings_ = }; +/** + * @inheritDoc + */ +ol.render.canvas.Render.prototype.drawFeature = function(feature, style) { + this.setFillStrokeStyle(style.fill, style.stroke); + this.setImageStyle(style.image); + var geometry = feature.getGeometry(); + var renderGeometry = + ol.render.canvas.Render.GEOMETRY_RENDERES_[geometry.getType()]; + goog.asserts.assert(goog.isDef(renderGeometry)); + renderGeometry.call(this, geometry); +}; + + /** * @inheritDoc */ @@ -249,3 +263,20 @@ ol.render.canvas.Render.prototype.setFillStrokeStyle = ol.render.canvas.Render.prototype.setImageStyle = function(imageStyle) { this.state_.imageStyle = imageStyle; }; + + +/** + * @const + * @private + * @type {Object.} + */ +ol.render.canvas.Render.GEOMETRY_RENDERES_ = { + 'Point': ol.render.canvas.Render.prototype.drawPointGeometry, + 'LineString': ol.render.canvas.Render.prototype.drawLineStringGeometry, + 'Polygon': ol.render.canvas.Render.prototype.drawPolygonGeometry, + 'MultiPoint': ol.render.canvas.Render.prototype.drawMultiPointGeometry, + 'MultiLineString': + ol.render.canvas.Render.prototype.drawMultiLineStringGeometry, + 'MultiPolygon': ol.render.canvas.Render.prototype.drawMultiPolygonGeometry +}; From e36681db75d53f3dc6211a309439c6aafa8106db Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 22:41:51 +0100 Subject: [PATCH 169/919] Export ol.render.canvas.Render methods --- src/ol/render/canvas/canvasrender.exports | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/ol/render/canvas/canvasrender.exports diff --git a/src/ol/render/canvas/canvasrender.exports b/src/ol/render/canvas/canvasrender.exports new file mode 100644 index 0000000000..9268b3c87c --- /dev/null +++ b/src/ol/render/canvas/canvasrender.exports @@ -0,0 +1,9 @@ +@exportProperty ol.render.canvas.Render.prototype.drawFeature +@exportProperty ol.render.canvas.Render.prototype.drawPointGeometry +@exportProperty ol.render.canvas.Render.prototype.drawLineStringGeometry +@exportProperty ol.render.canvas.Render.prototype.drawPolygonGeometry +@exportProperty ol.render.canvas.Render.prototype.drawMultiPointGeometry +@exportProperty ol.render.canvas.Render.prototype.drawMultiLineStringGeometry +@exportProperty ol.render.canvas.Render.prototype.drawMultiPointGeometry +@exportProperty ol.render.canvas.Render.prototype.setFillStrokeStyle +@exportProperty ol.render.canvas.Render.prototype.setImageStyle From 712993da5202f2925e6617c5760323c5e93e3b51 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 22:42:20 +0100 Subject: [PATCH 170/919] Add ol.layer.VectorEvent --- src/ol/layer/vectorevent.js | 74 +++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/ol/layer/vectorevent.js diff --git a/src/ol/layer/vectorevent.js b/src/ol/layer/vectorevent.js new file mode 100644 index 0000000000..29ae328c80 --- /dev/null +++ b/src/ol/layer/vectorevent.js @@ -0,0 +1,74 @@ +goog.provide('ol.layer.VectorEvent'); +goog.provide('ol.layer.VectorEventType'); + +goog.require('goog.events.Event'); +goog.require('ol.render.IRender'); + + +/** + * @enum {string} + */ +ol.layer.VectorEventType = { + POSTRENDER: 'postrender' +}; + + + +/** + * @constructor + * @extends {goog.events.Event} + * @param {ol.layer.VectorEventType} type Type. + * @param {Object=} opt_target Target. + * @param {ol.render.IRender=} opt_render Render. + * @param {?CanvasRenderingContext2D=} opt_context Context. + * @param {?WebGLRenderingContext=} opt_gl GL. + */ +ol.layer.VectorEvent = + function(type, opt_target, opt_render, opt_context, opt_gl) { + + goog.base(this, type, opt_target); + + /** + * @type {ol.render.IRender|undefined} + * @private + */ + this.render_ = opt_render; + + /** + * @type {CanvasRenderingContext2D|null|undefined} + * @private + */ + this.context_ = opt_context; + + /** + * @type {WebGLRenderingContext|null|undefined} + * @private + */ + this.gl_ = opt_gl; + +}; +goog.inherits(ol.layer.VectorEvent, goog.events.Event); + + +/** + * @return {CanvasRenderingContext2D|null|undefined} Context. + */ +ol.layer.VectorEvent.prototype.getContext = function() { + return this.context_; +}; + + +/** + * @return {WebGLRenderingContext|null|undefined} GL. + */ +ol.layer.VectorEvent.prototype.getGL = function() { + return this.gl_; +}; + + +/** + * @return {ol.render.IRender|undefined} Render. + */ +ol.layer.VectorEvent.prototype.getRender = function() { + return this.render_; +}; From e1c54266d9edef386c8dfbcd2aa4504614ad92a3 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 22:42:34 +0100 Subject: [PATCH 171/919] Export ol.layer.VectorEvent methods --- src/ol/layer/vectorevent.exports | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/ol/layer/vectorevent.exports diff --git a/src/ol/layer/vectorevent.exports b/src/ol/layer/vectorevent.exports new file mode 100644 index 0000000000..fae99b489d --- /dev/null +++ b/src/ol/layer/vectorevent.exports @@ -0,0 +1,3 @@ +@exportProperty ol.layer.VectorEvent.prototype.getContext +@exportProperty ol.layer.VectorEvent.prototype.getGL +@exportProperty ol.layer.VectorEvent.prototype.getRender From df70731e0c29109d6f4a1d717064712fe5541ed6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 22:45:27 +0100 Subject: [PATCH 172/919] Fire per-layer postrender events --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index e2c934c118..8a5f72362b 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -3,7 +3,10 @@ goog.provide('ol.renderer.canvas.VectorLayer'); goog.require('goog.vec.Mat4'); goog.require('ol.ViewHint'); goog.require('ol.extent'); +goog.require('ol.layer.VectorEvent'); +goog.require('ol.layer.VectorEventType'); goog.require('ol.render.canvas.BatchGroup'); +goog.require('ol.render.canvas.Render'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.vector'); goog.require('ol.style.DefaultStyleFunction'); @@ -89,6 +92,15 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = context.globalAlpha = layerState.opacity; batchGroup.draw(context, frameState.extent, transform); + var vectorLayer = this.getVectorLayer(); + if (vectorLayer.hasListener(ol.layer.VectorEventType.POSTRENDER)) { + var render = new ol.render.canvas.Render(context, transform); + var postRenderEvent = new ol.layer.VectorEvent( + ol.layer.VectorEventType.POSTRENDER, vectorLayer, render, context, + null); + vectorLayer.dispatchEvent(postRenderEvent); + } + }; From a0aad87adf467c65f87813a8fa185b354486721d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 22:54:16 +0100 Subject: [PATCH 173/919] Rename batch to replay --- src/ol/render/canvas/canvasreplay.js | 154 +++++++++--------- src/ol/render/ireplay.js | 17 +- src/ol/render/vector.js | 77 ++++----- .../canvas/canvasvectorlayerrenderer.js | 28 ++-- 4 files changed, 140 insertions(+), 136 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 8468ffd1b2..5d7a071486 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1,7 +1,7 @@ // FIXME decide default snapToPixel behaviour // FIXME add option to apply snapToPixel to all coordinates? -goog.provide('ol.render.canvas.BatchGroup'); +goog.provide('ol.render.canvas.ReplayGroup'); goog.require('goog.array'); goog.require('goog.asserts'); @@ -9,7 +9,7 @@ goog.require('goog.object'); goog.require('ol.extent'); goog.require('ol.render'); goog.require('ol.render.IRender'); -goog.require('ol.render.IReplayBatchGroup'); +goog.require('ol.render.IReplayReplayGroup'); goog.require('ol.style.fill'); goog.require('ol.style.stroke'); @@ -35,7 +35,7 @@ ol.render.canvas.Instruction = { * @implements {ol.render.IRender} * @protected */ -ol.render.canvas.Batch = function() { +ol.render.canvas.Replay = function() { /** * @protected @@ -73,7 +73,7 @@ ol.render.canvas.Batch = function() { * @protected * @return {number} My end. */ -ol.render.canvas.Batch.prototype.appendFlatCoordinates = +ol.render.canvas.Replay.prototype.appendFlatCoordinates = function(flatCoordinates, offset, end, stride, close) { var myEnd = this.coordinates.length; var i; @@ -93,7 +93,7 @@ ol.render.canvas.Batch.prototype.appendFlatCoordinates = * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. */ -ol.render.canvas.Batch.prototype.draw = function(context, transform) { +ol.render.canvas.Replay.prototype.draw = function(context, transform) { var pixelCoordinates = ol.render.transformFlatCoordinates( this.coordinates, 2, transform, this.pixelCoordinates_); this.pixelCoordinates_ = pixelCoordinates; // FIXME ? @@ -148,56 +148,57 @@ ol.render.canvas.Batch.prototype.draw = function(context, transform) { /** * @inheritDoc */ -ol.render.canvas.Batch.prototype.drawFeature = goog.abstractMethod; +ol.render.canvas.Replay.prototype.drawFeature = goog.abstractMethod; /** * @inheritDoc */ -ol.render.canvas.Batch.prototype.drawLineStringGeometry = goog.abstractMethod; +ol.render.canvas.Replay.prototype.drawLineStringGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.render.canvas.Batch.prototype.drawMultiLineStringGeometry = +ol.render.canvas.Replay.prototype.drawMultiLineStringGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.render.canvas.Batch.prototype.drawPointGeometry = goog.abstractMethod; +ol.render.canvas.Replay.prototype.drawPointGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.render.canvas.Batch.prototype.drawMultiPointGeometry = goog.abstractMethod; +ol.render.canvas.Replay.prototype.drawMultiPointGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.render.canvas.Batch.prototype.drawPolygonGeometry = goog.abstractMethod; +ol.render.canvas.Replay.prototype.drawPolygonGeometry = goog.abstractMethod; /** * @inheritDoc */ -ol.render.canvas.Batch.prototype.drawMultiPolygonGeometry = goog.abstractMethod; +ol.render.canvas.Replay.prototype.drawMultiPolygonGeometry = + goog.abstractMethod; /** * FIXME empty description for jsdoc */ -ol.render.canvas.Batch.prototype.finish = goog.nullFunction; +ol.render.canvas.Replay.prototype.finish = goog.nullFunction; /** * @return {ol.Extent} Extent. */ -ol.render.canvas.Batch.prototype.getExtent = function() { +ol.render.canvas.Replay.prototype.getExtent = function() { return this.extent_; }; @@ -205,22 +206,22 @@ ol.render.canvas.Batch.prototype.getExtent = function() { /** * @inheritDoc */ -ol.render.canvas.Batch.prototype.setFillStrokeStyle = goog.abstractMethod; +ol.render.canvas.Replay.prototype.setFillStrokeStyle = goog.abstractMethod; /** * @inheritDoc */ -ol.render.canvas.Batch.prototype.setImageStyle = goog.abstractMethod; +ol.render.canvas.Replay.prototype.setImageStyle = goog.abstractMethod; /** * @constructor - * @extends {ol.render.canvas.Batch} + * @extends {ol.render.canvas.Replay} * @protected */ -ol.render.canvas.ImageBatch = function() { +ol.render.canvas.ImageReplay = function() { goog.base(this); @@ -231,7 +232,7 @@ ol.render.canvas.ImageBatch = function() { this.imageStyle_ = null; }; -goog.inherits(ol.render.canvas.ImageBatch, ol.render.canvas.Batch); +goog.inherits(ol.render.canvas.ImageReplay, ol.render.canvas.Replay); /** @@ -242,7 +243,7 @@ goog.inherits(ol.render.canvas.ImageBatch, ol.render.canvas.Batch); * @private * @return {number} My end. */ -ol.render.canvas.ImageBatch.prototype.drawCoordinates_ = +ol.render.canvas.ImageReplay.prototype.drawCoordinates_ = function(flatCoordinates, offset, end, stride) { return this.appendFlatCoordinates( flatCoordinates, offset, end, stride, false); @@ -252,7 +253,7 @@ ol.render.canvas.ImageBatch.prototype.drawCoordinates_ = /** * @inheritDoc */ -ol.render.canvas.ImageBatch.prototype.drawPointGeometry = +ol.render.canvas.ImageReplay.prototype.drawPointGeometry = function(pointGeometry) { goog.asserts.assert(!goog.isNull(this.imageStyle_)); ol.extent.extend(this.extent_, pointGeometry.getExtent()); @@ -268,7 +269,7 @@ ol.render.canvas.ImageBatch.prototype.drawPointGeometry = /** * @inheritDoc */ -ol.render.canvas.ImageBatch.prototype.drawMultiPointGeometry = +ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = function(multiPointGeometry) { goog.asserts.assert(!goog.isNull(this.imageStyle_)); ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); @@ -284,7 +285,7 @@ ol.render.canvas.ImageBatch.prototype.drawMultiPointGeometry = /** * @inheritDoc */ -ol.render.canvas.ImageBatch.prototype.finish = function() { +ol.render.canvas.ImageReplay.prototype.finish = function() { // FIXME this doesn't really protect us against further calls to draw*Geometry this.imageStyle_ = null; }; @@ -293,7 +294,7 @@ ol.render.canvas.ImageBatch.prototype.finish = function() { /** * @inheritDoc */ -ol.render.canvas.ImageBatch.prototype.setImageStyle = function(imageStyle) { +ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { this.imageStyle_ = imageStyle; }; @@ -301,10 +302,10 @@ ol.render.canvas.ImageBatch.prototype.setImageStyle = function(imageStyle) { /** * @constructor - * @extends {ol.render.canvas.Batch} + * @extends {ol.render.canvas.Replay} * @protected */ -ol.render.canvas.LineStringBatch = function() { +ol.render.canvas.LineStringReplay = function() { goog.base(this); @@ -321,7 +322,7 @@ ol.render.canvas.LineStringBatch = function() { }; }; -goog.inherits(ol.render.canvas.LineStringBatch, ol.render.canvas.Batch); +goog.inherits(ol.render.canvas.LineStringReplay, ol.render.canvas.Replay); /** @@ -332,7 +333,7 @@ goog.inherits(ol.render.canvas.LineStringBatch, ol.render.canvas.Batch); * @private * @return {number} end. */ -ol.render.canvas.LineStringBatch.prototype.drawFlatCoordinates_ = +ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = function(flatCoordinates, offset, end, stride) { var state = this.state_; if (!ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { @@ -354,7 +355,7 @@ ol.render.canvas.LineStringBatch.prototype.drawFlatCoordinates_ = /** * @inheritDoc */ -ol.render.canvas.LineStringBatch.prototype.drawLineStringGeometry = +ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = function(lineStringGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); @@ -368,7 +369,7 @@ ol.render.canvas.LineStringBatch.prototype.drawLineStringGeometry = /** * @inheritDoc */ -ol.render.canvas.LineStringBatch.prototype.drawMultiLineStringGeometry = +ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); @@ -387,7 +388,7 @@ ol.render.canvas.LineStringBatch.prototype.drawMultiLineStringGeometry = /** * @inheritDoc */ -ol.render.canvas.LineStringBatch.prototype.finish = function() { +ol.render.canvas.LineStringReplay.prototype.finish = function() { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); if (state.lastDraw != this.coordinates.length) { @@ -400,7 +401,7 @@ ol.render.canvas.LineStringBatch.prototype.finish = function() { /** * @inheritDoc */ -ol.render.canvas.LineStringBatch.prototype.setFillStrokeStyle = +ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { goog.asserts.assert(!goog.isNull(this.state_)); goog.asserts.assert(goog.isNull(fillStyle)); @@ -412,10 +413,10 @@ ol.render.canvas.LineStringBatch.prototype.setFillStrokeStyle = /** * @constructor - * @extends {ol.render.canvas.Batch} + * @extends {ol.render.canvas.Replay} * @protected */ -ol.render.canvas.PolygonBatch = function() { +ol.render.canvas.PolygonReplay = function() { goog.base(this); @@ -434,7 +435,7 @@ ol.render.canvas.PolygonBatch = function() { }; }; -goog.inherits(ol.render.canvas.PolygonBatch, ol.render.canvas.Batch); +goog.inherits(ol.render.canvas.PolygonReplay, ol.render.canvas.Replay); /** @@ -445,7 +446,7 @@ goog.inherits(ol.render.canvas.PolygonBatch, ol.render.canvas.Batch); * @private * @return {number} End. */ -ol.render.canvas.PolygonBatch.prototype.drawFlatCoordinatess_ = +ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = function(flatCoordinates, offset, ends, stride) { var state = this.state_; this.instructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); @@ -474,7 +475,7 @@ ol.render.canvas.PolygonBatch.prototype.drawFlatCoordinatess_ = /** * @inheritDoc */ -ol.render.canvas.PolygonBatch.prototype.drawPolygonGeometry = +ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = function(polygonGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); ol.extent.extend(this.extent_, polygonGeometry.getExtent()); @@ -489,7 +490,7 @@ ol.render.canvas.PolygonBatch.prototype.drawPolygonGeometry = /** * @inheritDoc */ -ol.render.canvas.PolygonBatch.prototype.drawMultiPolygonGeometry = +ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry) { goog.asserts.assert(!goog.isNull(this.state_)); ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent()); @@ -509,7 +510,7 @@ ol.render.canvas.PolygonBatch.prototype.drawMultiPolygonGeometry = /** * @inheritDoc */ -ol.render.canvas.PolygonBatch.prototype.finish = function() { +ol.render.canvas.PolygonReplay.prototype.finish = function() { goog.asserts.assert(!goog.isNull(this.state_)); this.state_ = null; }; @@ -518,7 +519,7 @@ ol.render.canvas.PolygonBatch.prototype.finish = function() { /** * @inheritDoc */ -ol.render.canvas.PolygonBatch.prototype.setFillStrokeStyle = +ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { goog.asserts.assert(!goog.isNull(this.state_)); goog.asserts.assert(!goog.isNull(fillStyle) || !goog.isNull(strokeStyle)); @@ -530,7 +531,7 @@ ol.render.canvas.PolygonBatch.prototype.setFillStrokeStyle = /** * @private */ -ol.render.canvas.PolygonBatch.prototype.setFillStrokeStyles_ = function() { +ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { var state = this.state_; if (!goog.isNull(state.fillStyle) && !ol.style.fill.equals(state.currentFillStyle, state.fillStyle)) { @@ -550,16 +551,16 @@ ol.render.canvas.PolygonBatch.prototype.setFillStrokeStyles_ = function() { /** * @constructor - * @implements {ol.render.IReplayBatchGroup} + * @implements {ol.render.IReplayReplayGroup} */ -ol.render.canvas.BatchGroup = function() { +ol.render.canvas.ReplayGroup = function() { /** * @private * @type {Object.>} + * Object.>} */ - this.batchesByZIndex_ = {}; + this.replayesByZIndex_ = {}; }; @@ -569,19 +570,19 @@ ol.render.canvas.BatchGroup = function() { * @param {ol.Extent} extent Extent. * @param {goog.vec.Mat4.AnyType} transform Transform. */ -ol.render.canvas.BatchGroup.prototype.draw = +ol.render.canvas.ReplayGroup.prototype.draw = function(context, extent, transform) { /** @type {Array.} */ - var zs = goog.array.map(goog.object.getKeys(this.batchesByZIndex_), Number); + var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); goog.array.sort(zs); var i, ii; for (i = 0, ii = zs.length; i < ii; ++i) { - var batches = this.batchesByZIndex_[zs[i].toString()]; - var batchType; - for (batchType in batches) { - var batch = batches[batchType]; - if (ol.extent.intersects(extent, batch.getExtent())) { - batch.draw(context, transform); + var replayes = this.replayesByZIndex_[zs[i].toString()]; + var replayType; + for (replayType in replayes) { + var replay = replayes[replayType]; + if (ol.extent.intersects(extent, replay.getExtent())) { + replay.draw(context, transform); } } } @@ -591,13 +592,13 @@ ol.render.canvas.BatchGroup.prototype.draw = /** * @inheritDoc */ -ol.render.canvas.BatchGroup.prototype.finish = function() { +ol.render.canvas.ReplayGroup.prototype.finish = function() { var zKey; - for (zKey in this.batchesByZIndex_) { - var batches = this.batchesByZIndex_[zKey]; - var batchKey; - for (batchKey in batches) { - batches[batchKey].finish(); + for (zKey in this.replayesByZIndex_) { + var replayes = this.replayesByZIndex_[zKey]; + var replayKey; + for (replayKey in replayes) { + replayes[replayKey].finish(); } } }; @@ -606,39 +607,40 @@ ol.render.canvas.BatchGroup.prototype.finish = function() { /** * @inheritDoc */ -ol.render.canvas.BatchGroup.prototype.getBatch = function(zIndex, batchType) { +ol.render.canvas.ReplayGroup.prototype.getReplay = + function(zIndex, replayType) { var zIndexKey = goog.isDef(zIndex) ? zIndex.toString() : '0'; - var batches = this.batchesByZIndex_[zIndexKey]; - if (!goog.isDef(batches)) { - batches = {}; - this.batchesByZIndex_[zIndexKey] = batches; + var replayes = this.replayesByZIndex_[zIndexKey]; + if (!goog.isDef(replayes)) { + replayes = {}; + this.replayesByZIndex_[zIndexKey] = replayes; } - var batch = batches[batchType]; - if (!goog.isDef(batch)) { - var constructor = ol.render.canvas.BATCH_CONSTRUCTORS_[batchType]; + var replay = replayes[replayType]; + if (!goog.isDef(replay)) { + var constructor = ol.render.canvas.BATCH_CONSTRUCTORS_[replayType]; goog.asserts.assert(goog.isDef(constructor)); - batch = new constructor(); - batches[batchType] = batch; + replay = new constructor(); + replayes[replayType] = replay; } - return batch; + return replay; }; /** * @inheritDoc */ -ol.render.canvas.BatchGroup.prototype.isEmpty = function() { - return goog.object.isEmpty(this.batchesByZIndex_); +ol.render.canvas.ReplayGroup.prototype.isEmpty = function() { + return goog.object.isEmpty(this.replayesByZIndex_); }; /** * @const * @private - * @type {Object.} + * @type {Object.} */ ol.render.canvas.BATCH_CONSTRUCTORS_ = { - 'Image': ol.render.canvas.ImageBatch, - 'LineString': ol.render.canvas.LineStringBatch, - 'Polygon': ol.render.canvas.PolygonBatch + 'Image': ol.render.canvas.ImageReplay, + 'LineString': ol.render.canvas.LineStringReplay, + 'Polygon': ol.render.canvas.PolygonReplay }; diff --git a/src/ol/render/ireplay.js b/src/ol/render/ireplay.js index 723ae309b2..dc46265c59 100644 --- a/src/ol/render/ireplay.js +++ b/src/ol/render/ireplay.js @@ -1,4 +1,4 @@ -goog.provide('ol.render.IReplayBatchGroup'); +goog.provide('ol.render.IReplayReplayGroup'); goog.require('goog.functions'); goog.require('ol.render.IRender'); @@ -7,7 +7,7 @@ goog.require('ol.render.IRender'); /** * @enum {string} */ -ol.render.BatchType = { +ol.render.ReplayType = { IMAGE: 'Image', LINE_STRING: 'LineString', POLYGON: 'Polygon' @@ -18,28 +18,29 @@ ol.render.BatchType = { /** * @interface */ -ol.render.IReplayBatchGroup = function() { +ol.render.IReplayReplayGroup = function() { }; /** * FIXME empty description for jsdoc */ -ol.render.IReplayBatchGroup.prototype.finish = function() { +ol.render.IReplayReplayGroup.prototype.finish = function() { }; /** * @param {number|undefined} zIndex Z index. - * @param {ol.render.BatchType} batchType Batch type. - * @return {ol.render.IRender} Batch. + * @param {ol.render.ReplayType} replayType Replay type. + * @return {ol.render.IRender} Replay. */ -ol.render.IReplayBatchGroup.prototype.getBatch = function(zIndex, batchType) { +ol.render.IReplayReplayGroup.prototype.getReplay = + function(zIndex, replayType) { }; /** * @return {boolean} Is empty. */ -ol.render.IReplayBatchGroup.prototype.isEmpty = function() { +ol.render.IReplayReplayGroup.prototype.isEmpty = function() { }; diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index c8a735ff23..8f3cefb370 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -7,140 +7,141 @@ goog.require('ol.geom.MultiPoint'); goog.require('ol.geom.MultiPolygon'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); -goog.require('ol.render.IReplayBatchGroup'); +goog.require('ol.render.IReplayReplayGroup'); goog.require('ol.style.Style'); /** - * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. * @param {ol.Feature} feature Feature. * @param {ol.style.Style} style Style. */ -ol.renderer.vector.renderFeature = function(batchGroup, feature, style) { +ol.renderer.vector.renderFeature = function(replayGroup, feature, style) { var geometry = feature.getGeometry(); var geometryRenderer = ol.renderer.vector.GEOMETRY_RENDERERS_[geometry.getType()]; goog.asserts.assert(goog.isDef(geometryRenderer)); - geometryRenderer(batchGroup, geometry, style); + geometryRenderer(replayGroup, geometry, style); }; /** - * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private */ ol.renderer.vector.renderLineStringGeometry_ = - function(batchGroup, geometry, style) { + function(replayGroup, geometry, style) { if (goog.isNull(style.stroke)) { return; } goog.asserts.assert(geometry instanceof ol.geom.LineString); var lineStringGeometry = /** @type {ol.geom.LineString} */ (geometry); - var batch = batchGroup.getBatch( - style.zIndex, ol.render.BatchType.LINE_STRING); - batch.setFillStrokeStyle(null, style.stroke); - batch.drawLineStringGeometry(lineStringGeometry); + var replay = replayGroup.getReplay( + style.zIndex, ol.render.ReplayType.LINE_STRING); + replay.setFillStrokeStyle(null, style.stroke); + replay.drawLineStringGeometry(lineStringGeometry); }; /** - * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private */ ol.renderer.vector.renderMultiLineStringGeometry_ = - function(batchGroup, geometry, style) { + function(replayGroup, geometry, style) { if (goog.isNull(style.stroke)) { return; } goog.asserts.assert(geometry instanceof ol.geom.MultiLineString); var multiLineStringGeometry = /** @type {ol.geom.MultiLineString} */ (geometry); - var batch = batchGroup.getBatch( - style.zIndex, ol.render.BatchType.LINE_STRING); - batch.setFillStrokeStyle(null, style.stroke); - batch.drawMultiLineStringGeometry(multiLineStringGeometry); + var replay = replayGroup.getReplay( + style.zIndex, ol.render.ReplayType.LINE_STRING); + replay.setFillStrokeStyle(null, style.stroke); + replay.drawMultiLineStringGeometry(multiLineStringGeometry); }; /** - * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private */ ol.renderer.vector.renderMultiPolygonGeometry_ = - function(batchGroup, geometry, style) { + function(replayGroup, geometry, style) { if (goog.isNull(style.stroke) && goog.isNull(style.fill)) { return; } goog.asserts.assert(geometry instanceof ol.geom.MultiPolygon); var multiPolygonGeometry = /** @type {ol.geom.MultiPolygon} */ (geometry); - var batch = batchGroup.getBatch( - style.zIndex, ol.render.BatchType.POLYGON); - batch.setFillStrokeStyle(style.fill, style.stroke); - batch.drawMultiPolygonGeometry(multiPolygonGeometry); + var replay = replayGroup.getReplay( + style.zIndex, ol.render.ReplayType.POLYGON); + replay.setFillStrokeStyle(style.fill, style.stroke); + replay.drawMultiPolygonGeometry(multiPolygonGeometry); }; /** - * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private */ ol.renderer.vector.renderPointGeometry_ = - function(batchGroup, geometry, style) { + function(replayGroup, geometry, style) { if (goog.isNull(style.image)) { return; } goog.asserts.assert(geometry instanceof ol.geom.Point); var pointGeometry = /** @type {ol.geom.Point} */ (geometry); - var batch = batchGroup.getBatch(style.zIndex, ol.render.BatchType.IMAGE); - batch.setImageStyle(style.image); - batch.drawPointGeometry(pointGeometry); + var replay = replayGroup.getReplay(style.zIndex, ol.render.ReplayType.IMAGE); + replay.setImageStyle(style.image); + replay.drawPointGeometry(pointGeometry); }; /** - * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private */ ol.renderer.vector.renderMultiPointGeometry_ = - function(batchGroup, geometry, style) { + function(replayGroup, geometry, style) { if (goog.isNull(style.image)) { return; } goog.asserts.assert(geometry instanceof ol.geom.MultiPoint); var multiPointGeometry = /** @type {ol.geom.MultiPoint} */ (geometry); - var batch = batchGroup.getBatch(style.zIndex, ol.render.BatchType.IMAGE); - batch.setImageStyle(style.image); - batch.drawMultiPointGeometry(multiPointGeometry); + var replay = replayGroup.getReplay(style.zIndex, ol.render.ReplayType.IMAGE); + replay.setImageStyle(style.image); + replay.drawMultiPointGeometry(multiPointGeometry); }; /** - * @param {ol.render.IReplayBatchGroup} batchGroup Batch group. + * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private */ ol.renderer.vector.renderPolygonGeometry_ = - function(batchGroup, geometry, style) { + function(replayGroup, geometry, style) { if (goog.isNull(style.fill) && goog.isNull(style.stroke)) { return; } goog.asserts.assert(geometry instanceof ol.geom.Polygon); var polygonGeometry = /** @type {ol.geom.Polygon} */ (geometry); - var batch = batchGroup.getBatch(style.zIndex, ol.render.BatchType.POLYGON); - batch.setFillStrokeStyle(style.fill, style.stroke); - batch.drawPolygonGeometry(polygonGeometry); + var replay = replayGroup.getReplay( + style.zIndex, ol.render.ReplayType.POLYGON); + replay.setFillStrokeStyle(style.fill, style.stroke); + replay.drawPolygonGeometry(polygonGeometry); }; @@ -148,7 +149,7 @@ ol.renderer.vector.renderPolygonGeometry_ = * @const * @private * @type {Object.} */ ol.renderer.vector.GEOMETRY_RENDERERS_ = { diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 8a5f72362b..f1cddb755a 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -5,8 +5,8 @@ goog.require('ol.ViewHint'); goog.require('ol.extent'); goog.require('ol.layer.VectorEvent'); goog.require('ol.layer.VectorEventType'); -goog.require('ol.render.canvas.BatchGroup'); goog.require('ol.render.canvas.Render'); +goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.vector'); goog.require('ol.style.DefaultStyleFunction'); @@ -49,9 +49,9 @@ ol.renderer.canvas.VectorLayer = function(mapRenderer, vectorLayer) { /** * @private - * @type {ol.render.canvas.BatchGroup} + * @type {ol.render.canvas.ReplayGroup} */ - this.batchGroup_ = null; + this.replayGroup_ = null; }; goog.inherits(ol.renderer.canvas.VectorLayer, ol.renderer.canvas.Layer); @@ -63,8 +63,8 @@ goog.inherits(ol.renderer.canvas.VectorLayer, ol.renderer.canvas.Layer); ol.renderer.canvas.VectorLayer.prototype.composeFrame = function(frameState, layerState, context) { - var batchGroup = this.batchGroup_; - if (goog.isNull(batchGroup)) { + var replayGroup = this.replayGroup_; + if (goog.isNull(replayGroup)) { return; } @@ -90,7 +90,7 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = 0); context.globalAlpha = layerState.opacity; - batchGroup.draw(context, frameState.extent, transform); + replayGroup.draw(context, frameState.extent, transform); var vectorLayer = this.getVectorLayer(); if (vectorLayer.hasListener(ol.layer.VectorEventType.POSTRENDER)) { @@ -141,25 +141,25 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = extent[2] = frameStateExtent[2] + xBuffer; extent[3] = frameStateExtent[3] + yBuffer; - // FIXME dispose of old batchGroup in post render - goog.dispose(this.batchGroup_); - this.batchGroup = null; + // FIXME dispose of old replayGroup in post render + goog.dispose(this.replayGroup_); + this.replayGroup = null; var styleFunction = vectorLayer.getStyleFunction(); if (!goog.isDef(styleFunction)) { styleFunction = ol.style.DefaultStyleFunction; } - var batchGroup = new ol.render.canvas.BatchGroup(); + var replayGroup = new ol.render.canvas.ReplayGroup(); vectorSource.forEachFeatureInExtent(extent, function(feature) { var style = styleFunction(feature); - ol.renderer.vector.renderFeature(batchGroup, feature, style); + ol.renderer.vector.renderFeature(replayGroup, feature, style); }, this); - batchGroup.finish(); + replayGroup.finish(); this.renderedResolution_ = frameState.view2DState.resolution; this.renderedRevision_ = vectorSource.getRevision(); - if (!batchGroup.isEmpty()) { - this.batchGroup_ = batchGroup; + if (!replayGroup.isEmpty()) { + this.replayGroup_ = replayGroup; } }; From c5de1db9e623399b1ebc9024eadbe5658a125f23 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 23:14:19 +0100 Subject: [PATCH 174/919] Rename render to immediate --- src/ol/render/canvas/canvasimmediate.exports | 9 ++++ .../{canvasrender.js => canvasimmediate.js} | 50 +++++++++---------- src/ol/render/canvas/canvasrender.exports | 9 ---- src/ol/render/{irender.js => iimmediate.js} | 0 .../canvas/canvasvectorlayerrenderer.js | 4 +- 5 files changed, 36 insertions(+), 36 deletions(-) create mode 100644 src/ol/render/canvas/canvasimmediate.exports rename src/ol/render/canvas/{canvasrender.js => canvasimmediate.js} (78%) delete mode 100644 src/ol/render/canvas/canvasrender.exports rename src/ol/render/{irender.js => iimmediate.js} (100%) diff --git a/src/ol/render/canvas/canvasimmediate.exports b/src/ol/render/canvas/canvasimmediate.exports new file mode 100644 index 0000000000..d2bb4dd076 --- /dev/null +++ b/src/ol/render/canvas/canvasimmediate.exports @@ -0,0 +1,9 @@ +@exportProperty ol.render.canvas.Immediate.prototype.drawFeature +@exportProperty ol.render.canvas.Immediate.prototype.drawPointGeometry +@exportProperty ol.render.canvas.Immediate.prototype.drawLineStringGeometry +@exportProperty ol.render.canvas.Immediate.prototype.drawPolygonGeometry +@exportProperty ol.render.canvas.Immediate.prototype.drawMultiPointGeometry +@exportProperty ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry +@exportProperty ol.render.canvas.Immediate.prototype.drawMultiPointGeometry +@exportProperty ol.render.canvas.Immediate.prototype.setFillStrokeStyle +@exportProperty ol.render.canvas.Immediate.prototype.setImageStyle diff --git a/src/ol/render/canvas/canvasrender.js b/src/ol/render/canvas/canvasimmediate.js similarity index 78% rename from src/ol/render/canvas/canvasrender.js rename to src/ol/render/canvas/canvasimmediate.js index f063758747..79a4d9339f 100644 --- a/src/ol/render/canvas/canvasrender.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -1,6 +1,6 @@ // FIXME test, especially polygons with holes and multipolygons -goog.provide('ol.render.canvas.Render'); +goog.provide('ol.render.canvas.Immediate'); goog.require('goog.asserts'); goog.require('ol.render'); @@ -16,7 +16,7 @@ goog.require('ol.style.stroke'); * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. */ -ol.render.canvas.Render = function(context, transform) { +ol.render.canvas.Immediate = function(context, transform) { /** * @private @@ -55,7 +55,7 @@ ol.render.canvas.Render = function(context, transform) { * @param {ol.geom.Point|ol.geom.MultiPoint} geometry Geometry. * @private */ -ol.render.canvas.Render.prototype.drawImages_ = function(geometry) { +ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { var context = this.context_; var imageStyle = this.state_.imageStyle; if (goog.isNull(imageStyle)) { @@ -84,7 +84,7 @@ ol.render.canvas.Render.prototype.drawImages_ = function(geometry) { * @private * @return {number} end End. */ -ol.render.canvas.Render.prototype.moveToLineTo_ = +ol.render.canvas.Immediate.prototype.moveToLineTo_ = function(pixelCoordinates, offset, end, close) { var context = this.context_; context.moveTo(pixelCoordinates[offset], pixelCoordinates[offset + 1]); @@ -106,7 +106,7 @@ ol.render.canvas.Render.prototype.moveToLineTo_ = * @private * @return {number} End. */ -ol.render.canvas.Render.prototype.drawRings_ = +ol.render.canvas.Immediate.prototype.drawRings_ = function(pixelCoordinates, offset, ends) { var context = this.context_; var i, ii; @@ -121,12 +121,12 @@ ol.render.canvas.Render.prototype.drawRings_ = /** * @inheritDoc */ -ol.render.canvas.Render.prototype.drawFeature = function(feature, style) { +ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { this.setFillStrokeStyle(style.fill, style.stroke); this.setImageStyle(style.image); var geometry = feature.getGeometry(); var renderGeometry = - ol.render.canvas.Render.GEOMETRY_RENDERES_[geometry.getType()]; + ol.render.canvas.Immediate.GEOMETRY_RENDERES_[geometry.getType()]; goog.asserts.assert(goog.isDef(renderGeometry)); renderGeometry.call(this, geometry); }; @@ -135,21 +135,21 @@ ol.render.canvas.Render.prototype.drawFeature = function(feature, style) { /** * @inheritDoc */ -ol.render.canvas.Render.prototype.drawPointGeometry = - ol.render.canvas.Render.prototype.drawImages_; +ol.render.canvas.Immediate.prototype.drawPointGeometry = + ol.render.canvas.Immediate.prototype.drawImages_; /** * @inheritDoc */ -ol.render.canvas.Render.prototype.drawMultiPointGeometry = - ol.render.canvas.Render.prototype.drawImages_; +ol.render.canvas.Immediate.prototype.drawMultiPointGeometry = + ol.render.canvas.Immediate.prototype.drawImages_; /** * @inheritDoc */ -ol.render.canvas.Render.prototype.drawLineStringGeometry = +ol.render.canvas.Immediate.prototype.drawLineStringGeometry = function(lineStringGeometry) { if (goog.isNull(this.state_.strokeStyle)) { return; @@ -166,7 +166,7 @@ ol.render.canvas.Render.prototype.drawLineStringGeometry = /** * @inheritDoc */ -ol.render.canvas.Render.prototype.drawMultiLineStringGeometry = +ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { if (goog.isNull(this.state_.strokeStyle)) { return; @@ -188,7 +188,7 @@ ol.render.canvas.Render.prototype.drawMultiLineStringGeometry = /** * @inheritDoc */ -ol.render.canvas.Render.prototype.drawPolygonGeometry = +ol.render.canvas.Immediate.prototype.drawPolygonGeometry = function(polygonGeometry) { var state = this.state_; if (goog.isNull(this.fillStyle) && goog.isNull(this.strokeStyle)) { @@ -212,7 +212,7 @@ ol.render.canvas.Render.prototype.drawPolygonGeometry = /** * @inheritDoc */ -ol.render.canvas.Render.prototype.drawMultiPolygonGeometry = +ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry) { var state = this.state_; if (goog.isNull(this.fillStyle) && goog.isNull(this.strokeStyle)) { @@ -241,7 +241,7 @@ ol.render.canvas.Render.prototype.drawMultiPolygonGeometry = /** * @inheritDoc */ -ol.render.canvas.Render.prototype.setFillStrokeStyle = +ol.render.canvas.Immediate.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { var context = this.context_; var state = this.state_; @@ -260,7 +260,7 @@ ol.render.canvas.Render.prototype.setFillStrokeStyle = /** * @inheritDoc */ -ol.render.canvas.Render.prototype.setImageStyle = function(imageStyle) { +ol.render.canvas.Immediate.prototype.setImageStyle = function(imageStyle) { this.state_.imageStyle = imageStyle; }; @@ -269,14 +269,14 @@ ol.render.canvas.Render.prototype.setImageStyle = function(imageStyle) { * @const * @private * @type {Object.} + * function(this: ol.render.canvas.Immediate, ol.geom.Geometry)>} */ -ol.render.canvas.Render.GEOMETRY_RENDERES_ = { - 'Point': ol.render.canvas.Render.prototype.drawPointGeometry, - 'LineString': ol.render.canvas.Render.prototype.drawLineStringGeometry, - 'Polygon': ol.render.canvas.Render.prototype.drawPolygonGeometry, - 'MultiPoint': ol.render.canvas.Render.prototype.drawMultiPointGeometry, +ol.render.canvas.Immediate.GEOMETRY_RENDERES_ = { + 'Point': ol.render.canvas.Immediate.prototype.drawPointGeometry, + 'LineString': ol.render.canvas.Immediate.prototype.drawLineStringGeometry, + 'Polygon': ol.render.canvas.Immediate.prototype.drawPolygonGeometry, + 'MultiPoint': ol.render.canvas.Immediate.prototype.drawMultiPointGeometry, 'MultiLineString': - ol.render.canvas.Render.prototype.drawMultiLineStringGeometry, - 'MultiPolygon': ol.render.canvas.Render.prototype.drawMultiPolygonGeometry + ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry, + 'MultiPolygon': ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry }; diff --git a/src/ol/render/canvas/canvasrender.exports b/src/ol/render/canvas/canvasrender.exports deleted file mode 100644 index 9268b3c87c..0000000000 --- a/src/ol/render/canvas/canvasrender.exports +++ /dev/null @@ -1,9 +0,0 @@ -@exportProperty ol.render.canvas.Render.prototype.drawFeature -@exportProperty ol.render.canvas.Render.prototype.drawPointGeometry -@exportProperty ol.render.canvas.Render.prototype.drawLineStringGeometry -@exportProperty ol.render.canvas.Render.prototype.drawPolygonGeometry -@exportProperty ol.render.canvas.Render.prototype.drawMultiPointGeometry -@exportProperty ol.render.canvas.Render.prototype.drawMultiLineStringGeometry -@exportProperty ol.render.canvas.Render.prototype.drawMultiPointGeometry -@exportProperty ol.render.canvas.Render.prototype.setFillStrokeStyle -@exportProperty ol.render.canvas.Render.prototype.setImageStyle diff --git a/src/ol/render/irender.js b/src/ol/render/iimmediate.js similarity index 100% rename from src/ol/render/irender.js rename to src/ol/render/iimmediate.js diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index f1cddb755a..1428a8105e 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -5,7 +5,7 @@ goog.require('ol.ViewHint'); goog.require('ol.extent'); goog.require('ol.layer.VectorEvent'); goog.require('ol.layer.VectorEventType'); -goog.require('ol.render.canvas.Render'); +goog.require('ol.render.canvas.Immediate'); goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.vector'); @@ -94,7 +94,7 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = var vectorLayer = this.getVectorLayer(); if (vectorLayer.hasListener(ol.layer.VectorEventType.POSTRENDER)) { - var render = new ol.render.canvas.Render(context, transform); + var render = new ol.render.canvas.Immediate(context, transform); var postRenderEvent = new ol.layer.VectorEvent( ol.layer.VectorEventType.POSTRENDER, vectorLayer, render, context, null); From a17560ade36353e6c7a3fa16fbab0f63265cb1e4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 23:27:18 +0100 Subject: [PATCH 175/919] Only draw features and geometries that are visible --- src/ol/render/canvas/canvasimmediate.js | 32 ++++++++++++++++--- .../canvas/canvasvectorlayerrenderer.js | 3 +- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 79a4d9339f..041d28184d 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -1,8 +1,10 @@ // FIXME test, especially polygons with holes and multipolygons +// FIXME need to handle large thick features (where pixel size matters) goog.provide('ol.render.canvas.Immediate'); goog.require('goog.asserts'); +goog.require('ol.extent'); goog.require('ol.render'); goog.require('ol.render.IRender'); goog.require('ol.style.fill'); @@ -14,9 +16,10 @@ goog.require('ol.style.stroke'); * @constructor * @implements {ol.render.IRender} * @param {CanvasRenderingContext2D} context Context. + * @param {ol.Extent} extent Extent. * @param {goog.vec.Mat4.AnyType} transform Transform. */ -ol.render.canvas.Immediate = function(context, transform) { +ol.render.canvas.Immediate = function(context, extent, transform) { /** * @private @@ -24,6 +27,12 @@ ol.render.canvas.Immediate = function(context, transform) { */ this.context_ = context; + /** + * @private + * @type {ol.Extent} + */ + this.extent_ = extent; + /** * @private * @type {goog.vec.Mat4.AnyType} @@ -58,7 +67,8 @@ ol.render.canvas.Immediate = function(context, transform) { ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { var context = this.context_; var imageStyle = this.state_.imageStyle; - if (goog.isNull(imageStyle)) { + if (!ol.extent.intersects(this.extent_, geometry.getExtent()) || + goog.isNull(imageStyle)) { return; } var pixelCoordinates = ol.render.transformGeometry( @@ -122,9 +132,12 @@ ol.render.canvas.Immediate.prototype.drawRings_ = * @inheritDoc */ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { + var geometry = feature.getGeometry(); + if (!ol.extent.intersects(this.extent_, geometry.getExtent())) { + return; + } this.setFillStrokeStyle(style.fill, style.stroke); this.setImageStyle(style.image); - var geometry = feature.getGeometry(); var renderGeometry = ol.render.canvas.Immediate.GEOMETRY_RENDERES_[geometry.getType()]; goog.asserts.assert(goog.isDef(renderGeometry)); @@ -151,7 +164,8 @@ ol.render.canvas.Immediate.prototype.drawMultiPointGeometry = */ ol.render.canvas.Immediate.prototype.drawLineStringGeometry = function(lineStringGeometry) { - if (goog.isNull(this.state_.strokeStyle)) { + if (!ol.extent.intersects(this.extent_, lineStringGeometry.getExtent()) || + goog.isNull(this.state_.strokeStyle)) { return; } var context = this.context_; @@ -168,7 +182,9 @@ ol.render.canvas.Immediate.prototype.drawLineStringGeometry = */ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { - if (goog.isNull(this.state_.strokeStyle)) { + var geometryExtent = multiLineStringGeometry.getExtent(); + if (!ol.extent.intersects(this.extent_, geometryExtent) || + goog.isNull(this.state_.strokeStyle)) { return; } var context = this.context_; @@ -190,6 +206,9 @@ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = */ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = function(polygonGeometry) { + if (!ol.extent.intersects(this.extent_, polygonGeometry.getExtent())) { + return; + } var state = this.state_; if (goog.isNull(this.fillStyle) && goog.isNull(this.strokeStyle)) { return; @@ -214,6 +233,9 @@ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = */ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry) { + if (!ol.extent.intersects(this.extent_, multiPolygonGeometry.getExtent())) { + return; + } var state = this.state_; if (goog.isNull(this.fillStyle) && goog.isNull(this.strokeStyle)) { return; diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 1428a8105e..8ff8a0131b 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -94,7 +94,8 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = var vectorLayer = this.getVectorLayer(); if (vectorLayer.hasListener(ol.layer.VectorEventType.POSTRENDER)) { - var render = new ol.render.canvas.Immediate(context, transform); + var render = new ol.render.canvas.Immediate( + context, frameState.extent, transform); var postRenderEvent = new ol.layer.VectorEvent( ol.layer.VectorEventType.POSTRENDER, vectorLayer, render, context, null); From 3f74623e5340279130c5a93ddcabea78dbea448d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 23:28:11 +0100 Subject: [PATCH 176/919] Add per-layer postrender example --- examples/geojson.js | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index e6599e08f7..b4470643a1 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -1,7 +1,9 @@ +goog.require('ol.Feature'); goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.format.GeoJSON'); +goog.require('ol.geom.LineString'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.source.OSM'); @@ -107,15 +109,35 @@ new ol.format.GeoJSON().readObject({ ] }, vectorSource.addFeature, vectorSource); +var vectorLayer = new ol.layer.Vector({ + source: vectorSource, + styleFunction: styleFunction +}); +var tmpFeature = new ol.Feature( + new ol.geom.LineString([[-5e6, -5e6], [5e6, -5e6]])); +var tmpStyle = { + fill: null, + image: null, + stroke: { + color: 'magenta', + width: 5 + } +}; +vectorLayer.on('postrender', function(event) { + var render = event.getRender(); + render.drawFeature(tmpFeature, tmpStyle); + var context = event.getContext(); + if (!goog.isNull(context)) { + context.clearRect(0, 0, 10, 10); + } +}); + var map = new ol.Map({ layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }), - new ol.layer.Vector({ - source: vectorSource, - styleFunction: styleFunction - }) + vectorLayer ], renderer: ol.RendererHint.CANVAS, target: 'map', From 2839aea6b14a0ef359376c4f330b92b5a054131e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 00:22:42 +0100 Subject: [PATCH 177/919] Clear correct member variable, thanks @elemoine --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 8ff8a0131b..e959763bc4 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -144,7 +144,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = // FIXME dispose of old replayGroup in post render goog.dispose(this.replayGroup_); - this.replayGroup = null; + this.replayGroup_ = null; var styleFunction = vectorLayer.getStyleFunction(); if (!goog.isDef(styleFunction)) { From a990f0921e3464ad110e4c4fbeb0047624e7a440 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 03:12:58 +0100 Subject: [PATCH 178/919] Rename ol.layer.VectorEvent to ol.render.RenderEvent --- src/ol/layer/vectorevent.exports | 3 --- src/ol/render/renderevent.exports | 3 +++ .../vectorevent.js => render/renderevent.js} | 18 +++++++++--------- .../canvas/canvasvectorlayerrenderer.js | 10 +++++----- 4 files changed, 17 insertions(+), 17 deletions(-) delete mode 100644 src/ol/layer/vectorevent.exports create mode 100644 src/ol/render/renderevent.exports rename src/ol/{layer/vectorevent.js => render/renderevent.js} (72%) diff --git a/src/ol/layer/vectorevent.exports b/src/ol/layer/vectorevent.exports deleted file mode 100644 index fae99b489d..0000000000 --- a/src/ol/layer/vectorevent.exports +++ /dev/null @@ -1,3 +0,0 @@ -@exportProperty ol.layer.VectorEvent.prototype.getContext -@exportProperty ol.layer.VectorEvent.prototype.getGL -@exportProperty ol.layer.VectorEvent.prototype.getRender diff --git a/src/ol/render/renderevent.exports b/src/ol/render/renderevent.exports new file mode 100644 index 0000000000..7d9ce51558 --- /dev/null +++ b/src/ol/render/renderevent.exports @@ -0,0 +1,3 @@ +@exportProperty ol.render.RenderEvent.prototype.getContext +@exportProperty ol.render.RenderEvent.prototype.getGL +@exportProperty ol.render.RenderEvent.prototype.getRender diff --git a/src/ol/layer/vectorevent.js b/src/ol/render/renderevent.js similarity index 72% rename from src/ol/layer/vectorevent.js rename to src/ol/render/renderevent.js index 29ae328c80..3aa4eb72a9 100644 --- a/src/ol/layer/vectorevent.js +++ b/src/ol/render/renderevent.js @@ -1,5 +1,5 @@ -goog.provide('ol.layer.VectorEvent'); -goog.provide('ol.layer.VectorEventType'); +goog.provide('ol.render.RenderEvent'); +goog.provide('ol.render.RenderEventType'); goog.require('goog.events.Event'); goog.require('ol.render.IRender'); @@ -8,7 +8,7 @@ goog.require('ol.render.IRender'); /** * @enum {string} */ -ol.layer.VectorEventType = { +ol.render.RenderEventType = { POSTRENDER: 'postrender' }; @@ -17,13 +17,13 @@ ol.layer.VectorEventType = { /** * @constructor * @extends {goog.events.Event} - * @param {ol.layer.VectorEventType} type Type. + * @param {ol.render.RenderEventType} type Type. * @param {Object=} opt_target Target. * @param {ol.render.IRender=} opt_render Render. * @param {?CanvasRenderingContext2D=} opt_context Context. * @param {?WebGLRenderingContext=} opt_gl GL. */ -ol.layer.VectorEvent = +ol.render.RenderEvent = function(type, opt_target, opt_render, opt_context, opt_gl) { goog.base(this, type, opt_target); @@ -47,13 +47,13 @@ ol.layer.VectorEvent = this.gl_ = opt_gl; }; -goog.inherits(ol.layer.VectorEvent, goog.events.Event); +goog.inherits(ol.render.RenderEvent, goog.events.Event); /** * @return {CanvasRenderingContext2D|null|undefined} Context. */ -ol.layer.VectorEvent.prototype.getContext = function() { +ol.render.RenderEvent.prototype.getContext = function() { return this.context_; }; @@ -61,7 +61,7 @@ ol.layer.VectorEvent.prototype.getContext = function() { /** * @return {WebGLRenderingContext|null|undefined} GL. */ -ol.layer.VectorEvent.prototype.getGL = function() { +ol.render.RenderEvent.prototype.getGL = function() { return this.gl_; }; @@ -69,6 +69,6 @@ ol.layer.VectorEvent.prototype.getGL = function() { /** * @return {ol.render.IRender|undefined} Render. */ -ol.layer.VectorEvent.prototype.getRender = function() { +ol.render.RenderEvent.prototype.getRender = function() { return this.render_; }; diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index e959763bc4..3ad24a1480 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -3,8 +3,8 @@ goog.provide('ol.renderer.canvas.VectorLayer'); goog.require('goog.vec.Mat4'); goog.require('ol.ViewHint'); goog.require('ol.extent'); -goog.require('ol.layer.VectorEvent'); -goog.require('ol.layer.VectorEventType'); +goog.require('ol.render.RenderEvent'); +goog.require('ol.render.RenderEventType'); goog.require('ol.render.canvas.Immediate'); goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.renderer.canvas.Layer'); @@ -93,11 +93,11 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = replayGroup.draw(context, frameState.extent, transform); var vectorLayer = this.getVectorLayer(); - if (vectorLayer.hasListener(ol.layer.VectorEventType.POSTRENDER)) { + if (vectorLayer.hasListener(ol.render.RenderEventType.POSTRENDER)) { var render = new ol.render.canvas.Immediate( context, frameState.extent, transform); - var postRenderEvent = new ol.layer.VectorEvent( - ol.layer.VectorEventType.POSTRENDER, vectorLayer, render, context, + var postRenderEvent = new ol.render.RenderEvent( + ol.render.RenderEventType.POSTRENDER, vectorLayer, render, context, null); vectorLayer.dispatchEvent(postRenderEvent); } From 1670b67bd854bd5a1bda17e24ae1d57154d26e8f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 03:16:36 +0100 Subject: [PATCH 179/919] Rename postrender to postcompose --- examples/geojson.js | 2 +- src/ol/render/renderevent.js | 2 +- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index b4470643a1..9acff760e1 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -123,7 +123,7 @@ var tmpStyle = { width: 5 } }; -vectorLayer.on('postrender', function(event) { +vectorLayer.on('postcompose', function(event) { var render = event.getRender(); render.drawFeature(tmpFeature, tmpStyle); var context = event.getContext(); diff --git a/src/ol/render/renderevent.js b/src/ol/render/renderevent.js index 3aa4eb72a9..f354eaf126 100644 --- a/src/ol/render/renderevent.js +++ b/src/ol/render/renderevent.js @@ -9,7 +9,7 @@ goog.require('ol.render.IRender'); * @enum {string} */ ol.render.RenderEventType = { - POSTRENDER: 'postrender' + POSTCOMPOSE: 'postcompose' }; diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 3ad24a1480..2f736b2ab2 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -93,13 +93,13 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = replayGroup.draw(context, frameState.extent, transform); var vectorLayer = this.getVectorLayer(); - if (vectorLayer.hasListener(ol.render.RenderEventType.POSTRENDER)) { + if (vectorLayer.hasListener(ol.render.RenderEventType.POSTCOMPOSE)) { var render = new ol.render.canvas.Immediate( context, frameState.extent, transform); - var postRenderEvent = new ol.render.RenderEvent( - ol.render.RenderEventType.POSTRENDER, vectorLayer, render, context, + var postComposeEvent = new ol.render.RenderEvent( + ol.render.RenderEventType.POSTCOMPOSE, vectorLayer, render, context, null); - vectorLayer.dispatchEvent(postRenderEvent); + vectorLayer.dispatchEvent(postComposeEvent); } }; From f3138d6039b2ce68bcd35499abbd334b458a4441 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 03:17:28 +0100 Subject: [PATCH 180/919] Fire postcompose events from map --- src/ol/renderer/canvas/canvasmaprenderer.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index 5a2d32c64a..a771dea16f 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -10,6 +10,9 @@ goog.require('ol.css'); goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); +goog.require('ol.render.RenderEvent'); +goog.require('ol.render.RenderEventType'); +goog.require('ol.render.canvas.Immediate'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.canvas.ImageLayer'); goog.require('ol.renderer.canvas.TileLayer'); @@ -122,6 +125,15 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { layerRenderer.composeFrame(frameState, layerState, context); } + var map = this.getMap(); + if (map.hasListener(ol.render.RenderEventType.POSTCOMPOSE)) { + var render = new ol.render.canvas.Immediate( + context, frameState.extent, frameState.coordinateToPixelMatrix); + var postComposeEvent = new ol.render.RenderEvent( + ol.render.RenderEventType.POSTCOMPOSE, map, render, context, null); + map.dispatchEvent(postComposeEvent); + } + if (!this.renderedVisible_) { goog.style.setElementShown(this.canvas_, true); this.renderedVisible_ = true; From d11d2159d4850c3754fa479860be84eabcc1aadd Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 03:51:23 +0100 Subject: [PATCH 181/919] Add ol.render.DragBox --- src/ol/render/dragbox.js | 134 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 src/ol/render/dragbox.js diff --git a/src/ol/render/dragbox.js b/src/ol/render/dragbox.js new file mode 100644 index 0000000000..8b4b234524 --- /dev/null +++ b/src/ol/render/dragbox.js @@ -0,0 +1,134 @@ +// FIXME add rotation + +goog.provide('ol.render.DragBox'); + +goog.require('goog.Disposable'); +goog.require('goog.events'); +goog.require('ol.geom.Polygon'); +goog.require('ol.render.RenderEventType'); +goog.require('ol.style.Style'); + + + +/** + * @constructor + * @extends {goog.Disposable} + * @param {ol.style.Style=} opt_style Style. + */ +ol.render.DragBox = function(opt_style) { + + /** + * @private + * @type {ol.Map} + */ + this.map_ = null; + + /** + * @private + * @type {goog.events.Key|undefined} + */ + this.postComposeListenKey_ = undefined; + + /** + * @private + * @type {ol.Coordinate} + */ + this.startCoordinate_ = null; + + /** + * @private + * @type {ol.Coordinate} + */ + this.endCoordinate_ = null; + + /** + * @private + * @type {ol.style.Style} + */ + this.style_ = goog.isDef(opt_style) ? opt_style : { + fill: { + color: 'rgba(255, 0, 0, 0.1)' + }, + image: null, + stroke: { + color: 'red', + width: 1 + }, + zIndex: 0 + }; + +}; +goog.inherits(ol.render.DragBox, goog.Disposable); + + +/** + * @inheritDoc + */ +ol.render.DragBox.prototype.disposeInternal = function() { + this.setMap(null); +}; + + +/** + * @param {ol.render.RenderEvent} event Event. + * @private + */ +ol.render.DragBox.prototype.handleMapPostCompose_ = function(event) { + var render = event.getRender(); + var startCoordinate = this.startCoordinate_; + var endCoordinate = this.endCoordinate_; + var coordinates = [[ + [startCoordinate[0], startCoordinate[1]], + [startCoordinate[0], endCoordinate[1]], + [endCoordinate[0], endCoordinate[1]], + [endCoordinate[0], startCoordinate[1]] + ]]; + var geometry = new ol.geom.Polygon(coordinates); + var style = this.style_; + render.setFillStrokeStyle(style.fill, style.stroke); + render.drawPolygonGeometry(geometry); +}; + + +/** + * @private + */ +ol.render.DragBox.prototype.requestMapRenderFrame_ = function() { + if (!goog.isNull(this.map_) && + !goog.isNull(this.startCoordinate_) && + !goog.isNull(this.endCoordinate_)) { + this.map_.requestRenderFrame(); + } +}; + + +/** + * @param {ol.Map} map Map. + */ +ol.render.DragBox.prototype.setMap = function(map) { + if (goog.isDef(this.postComposeListenKey_)) { + goog.events.unlistenByKey(this.postComposeListenKey_); + this.postComposeListenKey_ = undefined; + this.map_.requestRenderFrame(); + this.map_ = null; + } + this.map_ = map; + if (!goog.isNull(this.map_)) { + this.postComposeListenKey_ = goog.events.listen( + map, ol.render.RenderEventType.POSTCOMPOSE, + this.handleMapPostCompose_, false, this); + this.requestMapRenderFrame_(); + } +}; + + +/** + * @param {ol.Coordinate} startCoordinate Start coordinate. + * @param {ol.Coordinate} endCoordinate End coordinate. + */ +ol.render.DragBox.prototype.setCoordinates = + function(startCoordinate, endCoordinate) { + this.startCoordinate_ = startCoordinate; + this.endCoordinate_ = endCoordinate; + this.requestMapRenderFrame_(); +}; From e81965d5b3dbcbc53beaed6a6be94def35eb8d48 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 03:51:54 +0100 Subject: [PATCH 182/919] Use ol.render.DragBox in ol.interaction.DragZoom --- src/ol/interaction/dragzoominteraction.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/ol/interaction/dragzoominteraction.js b/src/ol/interaction/dragzoominteraction.js index 5a44365def..02a592ca76 100644 --- a/src/ol/interaction/dragzoominteraction.js +++ b/src/ol/interaction/dragzoominteraction.js @@ -6,11 +6,11 @@ goog.provide('ol.interaction.DragZoom'); goog.require('goog.asserts'); goog.require('ol.Size'); goog.require('ol.View2D'); -goog.require('ol.control.DragBox'); goog.require('ol.events.ConditionType'); goog.require('ol.events.condition'); goog.require('ol.extent'); goog.require('ol.interaction.Drag'); +goog.require('ol.render.DragBox'); /** @@ -51,23 +51,30 @@ ol.interaction.DragZoom = function(opt_options) { options.condition : ol.events.condition.shiftKeyOnly; /** - * @type {ol.control.DragBox} + * @type {ol.render.DragBox} * @private */ - this.dragBox_ = null; - + this.dragBox_ = new ol.render.DragBox(); }; goog.inherits(ol.interaction.DragZoom, ol.interaction.Drag); +/** + * @inheritDoc + */ +ol.interaction.DragZoom.prototype.handleDrag = function(mapBrowserEvent) { + this.dragBox_.setCoordinates( + this.startCoordinate, mapBrowserEvent.getCoordinate()); +}; + + /** * @inheritDoc */ ol.interaction.DragZoom.prototype.handleDragEnd = function(mapBrowserEvent) { this.dragBox_.setMap(null); - this.dragBox_ = null; if (this.deltaX * this.deltaX + this.deltaY * this.deltaY >= ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS_SQUARED) { var map = mapBrowserEvent.map; @@ -93,9 +100,7 @@ ol.interaction.DragZoom.prototype.handleDragStart = function(mapBrowserEvent) { var browserEvent = mapBrowserEvent.browserEvent; if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) { - this.dragBox_ = new ol.control.DragBox({ - startCoordinate: this.startCoordinate - }); + this.dragBox_.setCoordinates(this.startCoordinate, this.startCoordinate); this.dragBox_.setMap(mapBrowserEvent.map); return true; } else { From dca4f261ec38e267652fb25ff37c628842b928d0 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 03:53:13 +0100 Subject: [PATCH 183/919] Remove ol.control.DragBox --- css/ol.css | 4 -- src/ol/control/dragboxcontrol.js | 97 -------------------------------- 2 files changed, 101 deletions(-) delete mode 100644 src/ol/control/dragboxcontrol.js diff --git a/css/ol.css b/css/ol.css index 9ea161c497..5ea1ce539f 100644 --- a/css/ol.css +++ b/css/ol.css @@ -31,10 +31,6 @@ padding-top: 2px; white-space: nowrap; } -.ol-dragbox { - position: absolute; - border: 2px solid red; -} .ol-full-screen { background: rgba(255,255,255,0.4); border-radius: 4px; diff --git a/src/ol/control/dragboxcontrol.js b/src/ol/control/dragboxcontrol.js deleted file mode 100644 index 4529d77767..0000000000 --- a/src/ol/control/dragboxcontrol.js +++ /dev/null @@ -1,97 +0,0 @@ -goog.provide('ol.control.DragBox'); - -goog.require('goog.asserts'); -goog.require('goog.dom'); -goog.require('goog.dom.TagName'); -goog.require('goog.events'); -goog.require('goog.math.Size'); -goog.require('goog.style'); -goog.require('ol.Coordinate'); -goog.require('ol.MapBrowserEvent'); -goog.require('ol.MapBrowserEvent.EventType'); -goog.require('ol.Pixel'); -goog.require('ol.control.Control'); -goog.require('ol.events.ConditionType'); -goog.require('ol.events.condition'); - - -/** - * @typedef {{startCoordinate: ol.Coordinate, - * condition: (ol.events.ConditionType|undefined)}} - */ -ol.control.DragBoxOptions; - - - -/** - * @constructor - * @extends {ol.control.Control} - * @param {ol.control.DragBoxOptions} options Drag box options. - * @todo stability experimental - */ -ol.control.DragBox = function(options) { - - var element = goog.dom.createDom(goog.dom.TagName.DIV, 'ol-dragbox'); - - /** - * @private - * @type {ol.events.ConditionType} - */ - this.condition_ = goog.isDef(options.condition) ? - options.condition : ol.events.condition.always; - - /** - * @type {ol.Pixel|undefined} - * @private - */ - this.startPixel_ = null; - - /** - * @private - * @type {ol.Coordinate} - */ - this.startCoordinate_ = options.startCoordinate; - - goog.base(this, { - element: element - }); - -}; -goog.inherits(ol.control.DragBox, ol.control.Control); - - -/** - * @inheritDoc - */ -ol.control.DragBox.prototype.setMap = function(map) { - goog.base(this, 'setMap', map); - if (!goog.isNull(map)) { - this.startPixel_ = map.getPixelFromCoordinate(this.startCoordinate_); - goog.asserts.assert(goog.isDef(this.startPixel_)); - goog.style.setPosition(this.element, - this.startPixel_[0], this.startPixel_[1]); - goog.style.setBorderBoxSize(this.element, new goog.math.Size(0, 0)); - this.listenerKeys.push(goog.events.listen( - map, ol.MapBrowserEvent.EventType.DRAG, this.updateBox_, false, this)); - } -}; - - -/** - * @param {ol.MapBrowserEvent} mapBrowserEvent The event to handle. - * @private - */ -ol.control.DragBox.prototype.updateBox_ = function(mapBrowserEvent) { - if (this.condition_(mapBrowserEvent)) { - var map = this.getMap(); - var coordinate = mapBrowserEvent.getCoordinate(); - goog.asserts.assert(goog.isDef(coordinate)); - var currentPixel = map.getPixelFromCoordinate(coordinate); - goog.style.setPosition(this.element, - Math.min(currentPixel[0], this.startPixel_[0]), - Math.min(currentPixel[1], this.startPixel_[1])); - goog.style.setBorderBoxSize(this.element, new goog.math.Size( - Math.abs(currentPixel[0] - this.startPixel_[0]), - Math.abs(currentPixel[1] - this.startPixel_[1]))); - } -}; From 7035096fca55f7baffcd6f1f266afda1e035fdb6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 08:22:57 +0100 Subject: [PATCH 184/919] Move dispatchPostComposeEvent into base class --- src/ol/renderer/canvas/canvaslayerrenderer.js | 21 +++++++++++++++++++ .../canvas/canvasvectorlayerrenderer.js | 13 ++---------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index 340965d3be..34b2208546 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -2,6 +2,9 @@ goog.provide('ol.renderer.canvas.Layer'); goog.require('goog.vec.Mat4'); goog.require('ol.layer.Layer'); +goog.require('ol.render.RenderEvent'); +goog.require('ol.render.RenderEventType'); +goog.require('ol.render.canvas.Immediate'); goog.require('ol.renderer.Layer'); @@ -56,6 +59,24 @@ ol.renderer.canvas.Layer.prototype.composeFrame = }; +/** + * @param {CanvasRenderingContext2D} context Context. + * @param {ol.Extent} extent Extent. + * @param {goog.vec.Mat4.AnyType} transform Transform. + * @protected + */ +ol.renderer.canvas.Layer.prototype.dispatchPostComposeEvent = + function(context, extent, transform) { + var layer = this.getLayer(); + if (layer.hasListener(ol.render.RenderEventType.POSTCOMPOSE)) { + var render = new ol.render.canvas.Immediate(context, extent, transform); + var postComposeEvent = new ol.render.RenderEvent( + ol.render.RenderEventType.POSTCOMPOSE, layer, render, context, null); + layer.dispatchEvent(postComposeEvent); + } +}; + + /** * @return {HTMLCanvasElement|HTMLVideoElement|Image} Canvas. */ diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 2f736b2ab2..e77ef8bbc6 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -3,9 +3,6 @@ goog.provide('ol.renderer.canvas.VectorLayer'); goog.require('goog.vec.Mat4'); goog.require('ol.ViewHint'); goog.require('ol.extent'); -goog.require('ol.render.RenderEvent'); -goog.require('ol.render.RenderEventType'); -goog.require('ol.render.canvas.Immediate'); goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.vector'); @@ -92,16 +89,10 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = context.globalAlpha = layerState.opacity; replayGroup.draw(context, frameState.extent, transform); - var vectorLayer = this.getVectorLayer(); - if (vectorLayer.hasListener(ol.render.RenderEventType.POSTCOMPOSE)) { - var render = new ol.render.canvas.Immediate( - context, frameState.extent, transform); - var postComposeEvent = new ol.render.RenderEvent( - ol.render.RenderEventType.POSTCOMPOSE, vectorLayer, render, context, - null); - vectorLayer.dispatchEvent(postComposeEvent); } + this.dispatchPostComposeEvent(context, frameState.extent, transform); + }; From 4c6bd5bdf249b7b9a8b10970fb55e417a2c63196 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 08:33:38 +0100 Subject: [PATCH 185/919] Rename getTransform to getImageTransform --- .../canvas/canvasimagelayerrenderer.js | 18 ++++++------- src/ol/renderer/canvas/canvaslayerrenderer.js | 26 +++++++++---------- .../canvas/canvastilelayerrenderer.js | 24 ++++++++--------- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index e2c9af4486..bd367c102d 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -32,7 +32,7 @@ ol.renderer.canvas.ImageLayer = function(mapRenderer, imageLayer) { * @private * @type {!goog.vec.Mat4.Number} */ - this.transform_ = goog.vec.Mat4.createNumber(); + this.imageTransform_ = goog.vec.Mat4.createNumber(); }; goog.inherits(ol.renderer.canvas.ImageLayer, ol.renderer.canvas.Layer); @@ -59,8 +59,8 @@ ol.renderer.canvas.ImageLayer.prototype.getImageLayer = function() { /** * @inheritDoc */ -ol.renderer.canvas.ImageLayer.prototype.getTransform = function() { - return this.transform_; +ol.renderer.canvas.ImageLayer.prototype.getImageTransform = function() { + return this.imageTransform_; }; @@ -101,18 +101,18 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame = var imageExtent = image.getExtent(); var imageResolution = image.getResolution(); - var transform = this.transform_; - goog.vec.Mat4.makeIdentity(transform); - goog.vec.Mat4.translate(transform, + var imageTransform = this.imageTransform_; + goog.vec.Mat4.makeIdentity(imageTransform); + goog.vec.Mat4.translate(imageTransform, frameState.size[0] / 2, frameState.size[1] / 2, 0); - goog.vec.Mat4.rotateZ(transform, viewRotation); + goog.vec.Mat4.rotateZ(imageTransform, viewRotation); goog.vec.Mat4.scale( - transform, + imageTransform, imageResolution / viewResolution, imageResolution / viewResolution, 1); goog.vec.Mat4.translate( - transform, + imageTransform, (imageExtent[0] - viewCenter[0]) / imageResolution, (viewCenter[1] - imageExtent[3]) / imageResolution, 0); diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index 34b2208546..fba0964d89 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -31,26 +31,26 @@ ol.renderer.canvas.Layer.prototype.composeFrame = var image = this.getImage(); if (!goog.isNull(image)) { - var transform = this.getTransform(); + var imageTransform = this.getImageTransform(); context.globalAlpha = layerState.opacity; // for performance reasons, context.setTransform is only used // when the view is rotated. see http://jsperf.com/canvas-transform if (frameState.view2DState.rotation === 0) { - var dx = goog.vec.Mat4.getElement(transform, 0, 3); - var dy = goog.vec.Mat4.getElement(transform, 1, 3); - var dw = image.width * goog.vec.Mat4.getElement(transform, 0, 0); - var dh = image.height * goog.vec.Mat4.getElement(transform, 1, 1); + var dx = goog.vec.Mat4.getElement(imageTransform, 0, 3); + var dy = goog.vec.Mat4.getElement(imageTransform, 1, 3); + var dw = image.width * goog.vec.Mat4.getElement(imageTransform, 0, 0); + var dh = image.height * goog.vec.Mat4.getElement(imageTransform, 1, 1); context.drawImage(image, 0, 0, +image.width, +image.height, Math.round(dx), Math.round(dy), Math.round(dw), Math.round(dh)); } else { context.setTransform( - goog.vec.Mat4.getElement(transform, 0, 0), - goog.vec.Mat4.getElement(transform, 1, 0), - goog.vec.Mat4.getElement(transform, 0, 1), - goog.vec.Mat4.getElement(transform, 1, 1), - goog.vec.Mat4.getElement(transform, 0, 3), - goog.vec.Mat4.getElement(transform, 1, 3)); + goog.vec.Mat4.getElement(imageTransform, 0, 0), + goog.vec.Mat4.getElement(imageTransform, 1, 0), + goog.vec.Mat4.getElement(imageTransform, 0, 1), + goog.vec.Mat4.getElement(imageTransform, 1, 1), + goog.vec.Mat4.getElement(imageTransform, 0, 3), + goog.vec.Mat4.getElement(imageTransform, 1, 3)); context.drawImage(image, 0, 0); context.setTransform(1, 0, 0, 1, 0, 0); } @@ -84,6 +84,6 @@ ol.renderer.canvas.Layer.prototype.getImage = goog.abstractMethod; /** - * @return {!goog.vec.Mat4.Number} Transform. + * @return {!goog.vec.Mat4.Number} Image transform. */ -ol.renderer.canvas.Layer.prototype.getTransform = goog.abstractMethod; +ol.renderer.canvas.Layer.prototype.getImageTransform = goog.abstractMethod; diff --git a/src/ol/renderer/canvas/canvastilelayerrenderer.js b/src/ol/renderer/canvas/canvastilelayerrenderer.js index a0ecf7ff55..0d7060ec4f 100644 --- a/src/ol/renderer/canvas/canvastilelayerrenderer.js +++ b/src/ol/renderer/canvas/canvastilelayerrenderer.js @@ -53,7 +53,7 @@ ol.renderer.canvas.TileLayer = function(mapRenderer, tileLayer) { * @private * @type {!goog.vec.Mat4.Number} */ - this.transform_ = goog.vec.Mat4.createNumber(); + this.imageTransform_ = goog.vec.Mat4.createNumber(); /** * @private @@ -97,8 +97,8 @@ ol.renderer.canvas.TileLayer.prototype.getTileLayer = function() { /** * @inheritDoc */ -ol.renderer.canvas.TileLayer.prototype.getTransform = function() { - return this.transform_; +ol.renderer.canvas.TileLayer.prototype.getImageTransform = function() { + return this.imageTransform_; }; @@ -166,9 +166,9 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = // etc.). manageTilePyramid is what enqueue tiles in the tile // queue for loading. // - // - The last step involves updating the transform matrix, which - // will be used by the map renderer for the final composition - // and positioning. + // - The last step involves updating the image transform matrix, + // which will be used by the map renderer for the final + // composition and positioning. // var view2DState = frameState.view2DState; @@ -382,18 +382,18 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = this.scheduleExpireCache(frameState, tileSource); this.updateLogos(frameState, tileSource); - var transform = this.transform_; - goog.vec.Mat4.makeIdentity(transform); - goog.vec.Mat4.translate(transform, + var imageTransform = this.imageTransform_; + goog.vec.Mat4.makeIdentity(imageTransform); + goog.vec.Mat4.translate(imageTransform, frameState.size[0] / 2, frameState.size[1] / 2, 0); - goog.vec.Mat4.rotateZ(transform, view2DState.rotation); + goog.vec.Mat4.rotateZ(imageTransform, view2DState.rotation); goog.vec.Mat4.scale( - transform, + imageTransform, tileResolution / view2DState.resolution, tileResolution / view2DState.resolution, 1); goog.vec.Mat4.translate( - transform, + imageTransform, (origin[0] - center[0]) / tileResolution, (center[1] - origin[1]) / tileResolution, 0); From a83b0768b26148680352b94bdc909c7504a9e324 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 08:34:06 +0100 Subject: [PATCH 186/919] Always dispatch postcompose event, even if no replay group --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index e77ef8bbc6..866db90dfd 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -60,11 +60,6 @@ goog.inherits(ol.renderer.canvas.VectorLayer, ol.renderer.canvas.Layer); ol.renderer.canvas.VectorLayer.prototype.composeFrame = function(frameState, layerState, context) { - var replayGroup = this.replayGroup_; - if (goog.isNull(replayGroup)) { - return; - } - var view2DState = frameState.view2DState; var viewCenter = view2DState.center; var viewResolution = view2DState.resolution; @@ -86,9 +81,10 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = -viewCenter[1], 0); - context.globalAlpha = layerState.opacity; - replayGroup.draw(context, frameState.extent, transform); - + var replayGroup = this.replayGroup_; + if (!goog.isNull(replayGroup)) { + context.globalAlpha = layerState.opacity; + replayGroup.draw(context, frameState.extent, transform); } this.dispatchPostComposeEvent(context, frameState.extent, transform); From 36f85f9afd97188649b48576229d678b7c9ca6e8 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 09:32:20 +0100 Subject: [PATCH 187/919] Factor out getTransform --- src/ol/renderer/canvas/canvaslayerrenderer.js | 29 +++++++++++++++++++ .../canvas/canvasvectorlayerrenderer.js | 29 ++----------------- 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index fba0964d89..8696ea6bca 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -16,7 +16,15 @@ goog.require('ol.renderer.Layer'); * @param {ol.layer.Layer} layer Layer. */ ol.renderer.canvas.Layer = function(mapRenderer, layer) { + goog.base(this, mapRenderer, layer); + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.transform_ = goog.vec.Mat4.createNumber(); + }; goog.inherits(ol.renderer.canvas.Layer, ol.renderer.Layer); @@ -87,3 +95,24 @@ ol.renderer.canvas.Layer.prototype.getImage = goog.abstractMethod; * @return {!goog.vec.Mat4.Number} Image transform. */ ol.renderer.canvas.Layer.prototype.getImageTransform = goog.abstractMethod; + + +/** + * @param {ol.FrameState} frameState Frame state. + * @protected + * @return {!goog.vec.Mat4.Number} Transform. + */ +ol.renderer.canvas.Layer.prototype.getTransform = function(frameState) { + var view2DState = frameState.view2DState; + var center = view2DState.center; + var resolution = view2DState.resolution; + var rotation = view2DState.rotation; + var size = frameState.size; + var transform = this.transform_; + goog.vec.Mat4.makeIdentity(transform); + goog.vec.Mat4.translate(transform, size[0] / 2, size[1] / 2, 0); + goog.vec.Mat4.scale(transform, 1 / resolution, -1 / resolution, 1); + goog.vec.Mat4.rotateZ(transform, -rotation); + goog.vec.Mat4.translate(transform, -center[0], -center[1], 0); + return transform; +}; diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 866db90dfd..9c07594bde 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -20,12 +20,6 @@ ol.renderer.canvas.VectorLayer = function(mapRenderer, vectorLayer) { goog.base(this, mapRenderer, vectorLayer); - /** - * @private - * @type {!goog.vec.Mat4.Number} - */ - this.transform_ = goog.vec.Mat4.createNumber(); - /** * @private * @type {number} @@ -60,26 +54,9 @@ goog.inherits(ol.renderer.canvas.VectorLayer, ol.renderer.canvas.Layer); ol.renderer.canvas.VectorLayer.prototype.composeFrame = function(frameState, layerState, context) { - var view2DState = frameState.view2DState; - var viewCenter = view2DState.center; - var viewResolution = view2DState.resolution; - var viewRotation = view2DState.rotation; - - var transform = this.transform_; - goog.vec.Mat4.makeIdentity(transform); - goog.vec.Mat4.translate(transform, - frameState.size[0] / 2, - frameState.size[1] / 2, - 0); - goog.vec.Mat4.scale(transform, - 1 / viewResolution, - -1 / viewResolution, - 1); - goog.vec.Mat4.rotateZ(transform, -viewRotation); - goog.vec.Mat4.translate(transform, - -viewCenter[0], - -viewCenter[1], - 0); + // FIXME should be able to avoid call to getTransform here if no postcompose + // FIXME listeners or replay group + var transform = this.getTransform(frameState); var replayGroup = this.replayGroup_; if (!goog.isNull(replayGroup)) { From 756944a2e984745a97aa9dea1e36c19ec7dc3881 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 09:32:56 +0100 Subject: [PATCH 188/919] Fire postcompose events for all layer types --- src/ol/renderer/canvas/canvaslayerrenderer.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index 8696ea6bca..ce6cb460e6 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -64,6 +64,11 @@ ol.renderer.canvas.Layer.prototype.composeFrame = } } + // FIXME should be able to avoid call to getTransform here if no postcompose + // FIXME listeners + var transform = this.getTransform(frameState); + this.dispatchPostComposeEvent(context, frameState.extent, transform); + }; From ea0f8d1f8e842b71d904e98ec6120c083f72ff7c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 10:10:48 +0100 Subject: [PATCH 189/919] Add frameState to postcompose event and minimise calls to getTransform --- src/ol/render/renderevent.js | 19 +++++++++++++++++-- src/ol/renderer/canvas/canvaslayerrenderer.js | 19 ++++++++++--------- src/ol/renderer/canvas/canvasmaprenderer.js | 3 ++- .../canvas/canvasvectorlayerrenderer.js | 8 ++++---- 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/src/ol/render/renderevent.js b/src/ol/render/renderevent.js index f354eaf126..5d1394d814 100644 --- a/src/ol/render/renderevent.js +++ b/src/ol/render/renderevent.js @@ -20,11 +20,12 @@ ol.render.RenderEventType = { * @param {ol.render.RenderEventType} type Type. * @param {Object=} opt_target Target. * @param {ol.render.IRender=} opt_render Render. + * @param {ol.FrameState=} opt_frameState Frame state. * @param {?CanvasRenderingContext2D=} opt_context Context. * @param {?WebGLRenderingContext=} opt_gl GL. */ -ol.render.RenderEvent = - function(type, opt_target, opt_render, opt_context, opt_gl) { +ol.render.RenderEvent = function( + type, opt_target, opt_render, opt_frameState, opt_context, opt_gl) { goog.base(this, type, opt_target); @@ -34,6 +35,12 @@ ol.render.RenderEvent = */ this.render_ = opt_render; + /** + * @type {ol.FrameState|undefined} + * @private + */ + this.frameState_ = opt_frameState; + /** * @type {CanvasRenderingContext2D|null|undefined} * @private @@ -58,6 +65,14 @@ ol.render.RenderEvent.prototype.getContext = function() { }; +/** + * @return {ol.FrameState|undefined} Frame state. + */ +ol.render.RenderEvent.prototype.getFrameState = function() { + return this.frameState_; +}; + + /** * @return {WebGLRenderingContext|null|undefined} GL. */ diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index ce6cb460e6..ac5ab3cb75 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -64,27 +64,28 @@ ol.renderer.canvas.Layer.prototype.composeFrame = } } - // FIXME should be able to avoid call to getTransform here if no postcompose - // FIXME listeners - var transform = this.getTransform(frameState); - this.dispatchPostComposeEvent(context, frameState.extent, transform); + this.dispatchPostComposeEvent(context, frameState); }; /** * @param {CanvasRenderingContext2D} context Context. - * @param {ol.Extent} extent Extent. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {ol.FrameState} frameState Frame state. + * @param {goog.vec.Mat4.AnyType=} opt_transform Transform. * @protected */ ol.renderer.canvas.Layer.prototype.dispatchPostComposeEvent = - function(context, extent, transform) { + function(context, frameState, opt_transform) { var layer = this.getLayer(); if (layer.hasListener(ol.render.RenderEventType.POSTCOMPOSE)) { - var render = new ol.render.canvas.Immediate(context, extent, transform); + var transform = goog.isDef(opt_transform) ? + opt_transform : this.getTransform(frameState); + var render = new ol.render.canvas.Immediate(context, frameState.extent, + transform); var postComposeEvent = new ol.render.RenderEvent( - ol.render.RenderEventType.POSTCOMPOSE, layer, render, context, null); + ol.render.RenderEventType.POSTCOMPOSE, layer, render, frameState, + context, null); layer.dispatchEvent(postComposeEvent); } }; diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index a771dea16f..1739181d87 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -130,7 +130,8 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { var render = new ol.render.canvas.Immediate( context, frameState.extent, frameState.coordinateToPixelMatrix); var postComposeEvent = new ol.render.RenderEvent( - ol.render.RenderEventType.POSTCOMPOSE, map, render, context, null); + ol.render.RenderEventType.POSTCOMPOSE, map, render, frameState, context, + null); map.dispatchEvent(postComposeEvent); } diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 9c07594bde..ffcdd52bab 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -54,17 +54,17 @@ goog.inherits(ol.renderer.canvas.VectorLayer, ol.renderer.canvas.Layer); ol.renderer.canvas.VectorLayer.prototype.composeFrame = function(frameState, layerState, context) { - // FIXME should be able to avoid call to getTransform here if no postcompose - // FIXME listeners or replay group - var transform = this.getTransform(frameState); + /** @type {goog.vec.Mat4.AnyType|undefined} */ + var transform; var replayGroup = this.replayGroup_; if (!goog.isNull(replayGroup)) { + transform = this.getTransform(frameState); context.globalAlpha = layerState.opacity; replayGroup.draw(context, frameState.extent, transform); } - this.dispatchPostComposeEvent(context, frameState.extent, transform); + this.dispatchPostComposeEvent(context, frameState, transform); }; From 26d2f38929bdfecf8b1d28000d9468039c4d2546 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 11:20:32 +0100 Subject: [PATCH 190/919] Add dynamic data example --- examples/dynamic-data.html | 50 +++++++++++++++++++++++++++++++++++ examples/dynamic-data.js | 53 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 examples/dynamic-data.html create mode 100644 examples/dynamic-data.js diff --git a/examples/dynamic-data.html b/examples/dynamic-data.html new file mode 100644 index 0000000000..5667b9ef6d --- /dev/null +++ b/examples/dynamic-data.html @@ -0,0 +1,50 @@ + + + + + + + + + + + Dynamic data example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Dynamic data example

+

Example of dynamic data.

+
+

See the dynamic-data.js source to see how this is done.

+
+
dynamic-data
+
+ +
+ +
+ + + + + + diff --git a/examples/dynamic-data.js b/examples/dynamic-data.js new file mode 100644 index 0000000000..f2418524d9 --- /dev/null +++ b/examples/dynamic-data.js @@ -0,0 +1,53 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.geom.MultiPoint'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.MapQuestOpenAerial'); +goog.require('ol.symbol'); + + +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + source: new ol.source.MapQuestOpenAerial() + }) + ], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); +map.beforeRender(function(map, frameState) { + frameState.animate = true; + return true; +}); +var imageStyle = ol.symbol.renderCircle(5, { + color: 'yellow' +}, { + color: 'red', + width: 1 +}); +var n = 200; +var omegaTheta = 30000; // Rotation period in ms +var R = 7e6; +var r = 2e6; +var p = 2e6; +map.on('postcompose', function(event) { + var render = event.getRender(); + var frameState = event.getFrameState(); + var theta = 2 * Math.PI * frameState.time / omegaTheta; + var coordinates = []; + var i; + for (i = 0; i < n; ++i) { + var t = theta + 2 * Math.PI * i / n; + var x = (R + r) * Math.cos(t) + p * Math.cos((R + r) * t / r); + var y = (R + r) * Math.sin(t) + p * Math.sin((R + r) * t / r); + coordinates.push([x, y]); + } + render.setImageStyle(imageStyle); + render.drawMultiPointGeometry(new ol.geom.MultiPoint(coordinates)); +}); +map.requestRenderFrame(); From 8434250547c01936f38363949f00bc219760052b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 12:19:36 +0100 Subject: [PATCH 191/919] Rename lastDraw to lastStroke and remember last stroke drawn, thanks @elemoine --- src/ol/render/canvas/canvasreplay.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 5d7a071486..e3e275c0d5 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -312,12 +312,12 @@ ol.render.canvas.LineStringReplay = function() { /** * @private * @type {{currentStrokeStyle: ?ol.style.Stroke, - * lastDraw: number, + * lastStroke: number, * strokeStyle: ?ol.style.Stroke}|null} */ this.state_ = { currentStrokeStyle: null, - lastDraw: 0, + lastStroke: 0, strokeStyle: null }; @@ -337,8 +337,9 @@ ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = function(flatCoordinates, offset, end, stride) { var state = this.state_; if (!ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { - if (state.lastDraw != this.coordinates.length) { + if (state.lastStroke != this.coordinates.length) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); + state.lastStroke = this.coordinates.length; } this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle], @@ -391,7 +392,7 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = ol.render.canvas.LineStringReplay.prototype.finish = function() { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); - if (state.lastDraw != this.coordinates.length) { + if (state.lastStroke != this.coordinates.length) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); } this.state_ = null; From 8e55cad4e087c704d7e846a65140f2e03ef839e2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 13:22:42 +0100 Subject: [PATCH 192/919] Add R-Tree visualisation example This demonstrates how awful ol.structs.RTree is. --- examples/rtree.html | 50 ++++++++++++++++++ examples/rtree.js | 121 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 examples/rtree.html create mode 100644 examples/rtree.js diff --git a/examples/rtree.html b/examples/rtree.html new file mode 100644 index 0000000000..79c8cc55b7 --- /dev/null +++ b/examples/rtree.html @@ -0,0 +1,50 @@ + + + + + + + + + + + R-Tree example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

R-Tree example

+

R-Tree example.

+
+

See the rtree.js source to see how this is done.

+
+
vector, rtree
+
+ +
+ +
+ + + + + + diff --git a/examples/rtree.js b/examples/rtree.js new file mode 100644 index 0000000000..5573518407 --- /dev/null +++ b/examples/rtree.js @@ -0,0 +1,121 @@ +// NOCOMPILE +// FIXME this example dives into private members and will never compile :) +goog.require('ol.Feature'); +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.extent'); +goog.require('ol.geom.Point'); +goog.require('ol.geom.Polygon'); +goog.require('ol.layer.Vector'); +goog.require('ol.source.Vector'); +goog.require('ol.structs.RTree'); +goog.require('ol.symbol'); + + +/** + * @return {Array.>} Extents at depths. + */ +ol.structs.RTree.prototype.getExtentsByDepth = function() { + var depthFirstSearch = + /** + * @param {ol.structs.RTreeNode} node Node. + * @param {number} depth Depth. + * @param {Array.>} result Result. + * @return {Array.>} Result. + */ + function(node, depth, result) { + if (goog.isDef(result[depth])) { + result[depth].push(node.extent); + } else { + result[depth] = [node.extent]; + } + var nodes = node.nodes; + if (goog.isDef(nodes)) { + var i, ii; + for (i = 0, ii = nodes.length; i < ii; ++i) { + depthFirstSearch(nodes[i], depth + 1, result); + } + } + return result; + }; + return depthFirstSearch(this.rootTree_, 0, []); +}; + +var i, ii, j, jj; + +var count = 2000; +var features = new Array(count); +var e = 18000000; +for (i = 0; i < count; ++i) { + features[i] = new ol.Feature({ + 'geometry': new ol.geom.Point( + [2 * e * Math.random() - e, 2 * e * Math.random() - e]) + }); +} +var vectorSource = new ol.source.Vector({ + features: features +}); + +var style = { + image: ol.symbol.renderCircle(3, null, {color: 'red', width: 1}) +}; + +var colors = ['red', 'orange', 'yellow', 'blue', 'green', 'indigo', 'violet']; +var depthStyle = []; +for (i = 0, ii = colors.length; i < ii; ++i) { + depthStyle[i] = { + fill: null, + image: null, + stroke: { + color: colors[i], + width: (7 - i) / 2 + }, + zIndex: i + }; +} +var extentsByDepth = vectorSource.rTree_.getExtentsByDepth(); +var rtreeExtentFeatures = []; +for (i = 0, ii = extentsByDepth.length; i < ii; ++i) { + var extents = extentsByDepth[i]; + for (j = 0, jj = extents.length; j < jj; ++j) { + var extent = extents[j]; + var geometry = new ol.geom.Polygon([[ + ol.extent.getBottomLeft(extent), + ol.extent.getTopLeft(extent), + ol.extent.getTopRight(extent), + ol.extent.getBottomRight(extent) + ]]); + var feature = new ol.Feature({ + 'geometry': geometry, + 'style': depthStyle[i] + }); + rtreeExtentFeatures.push(feature); + } +} + +var vector = new ol.layer.Vector({ + source: vectorSource, + styleFunction: function(feature) { + return style; + } +}); + +var rtree = new ol.layer.Vector({ + source: new ol.source.Vector({ + features: rtreeExtentFeatures + }), + styleFunction: function(feature) { + return feature.get('style'); + } +}); + +var map = new ol.Map({ + layers: [vector, rtree], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); From c9d6445c4504cacd476a189d1efe46444095374b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 15:43:37 +0100 Subject: [PATCH 193/919] Fix title of GeoJSON example, thanks @fredj --- examples/geojson.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/geojson.html b/examples/geojson.html index 1a2dc82bb4..30257babad 100644 --- a/examples/geojson.html +++ b/examples/geojson.html @@ -31,7 +31,7 @@
-

Simple example

+

GeoJSON example

Example of GeoJSON features.

See the geojson.js source to see how this is done.

From f2865e6dbf7f3553fcb3526ed2789e74511485a6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 17:21:48 +0100 Subject: [PATCH 194/919] Add coordinate in LinearRing functions --- src/ol/geom/geometry.js | 88 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index d5943dd3f0..4c21a53864 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -312,6 +312,94 @@ ol.geom.deflateCoordinatesss = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {number} x X. + * @param {number} y Y. + * @return {boolean} Contains (x, y). + */ +ol.geom.flatLinearRingContainsXY = + function(flatCoordinates, offset, end, stride, x, y) { + // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html + var contains = false; + var xi = flatCoordinates[offset]; + var yi = flatCoordinates[offset + 1]; + for (offset += stride; offset < end; offset += stride) { + var xj = flatCoordinates[offset]; + var yj = flatCoordinates[offset + 1]; + var intersect = ((yi > y) != (yj > y)) && + (x < (xj - xi) * (y - yi) / (yj - yi) + xi); + if (intersect) { + contains = !contains; + } + xi = xj; + yi = yj; + } + return contains; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @param {number} x X. + * @param {number} y Y. + * @return {boolean} Contains (x, y). + */ +ol.geom.flatLinearRingsContainsXY = + function(flatCoordinates, offset, ends, stride, x, y) { + goog.asserts.assert(ends.length > 0); + if (ends.length === 0) { + return false; + } + if (!ol.geom.flatLinearRingContainsXY( + flatCoordinates, offset, ends[0], stride, x, y)) { + return false; + } + var i, ii; + for (i = 1, ii = ends.length; i < ii; ++i) { + if (ol.geom.flatLinearRingContainsXY( + flatCoordinates, ends[i - 1], ends[i], stride, x, y)) { + return false; + } + } + return true; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @param {number} x X. + * @param {number} y Y. + * @return {boolean} Contains (x, y). + */ +ol.geom.flatLinearRingssContainsXY = + function(flatCoordinates, offset, endss, stride, x, y) { + goog.asserts.assert(endss.length > 0); + if (endss.length === 0) { + return false; + } + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + if (ol.geom.flatLinearRingsContainsXY( + flatCoordinates, offset, ends, stride, x, y)) { + return true; + } + offset = ends[ends.length - 1]; + } + return false; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From 029d9789493c43340cf0e165b4b0d5ceeda6225b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 17:22:06 +0100 Subject: [PATCH 195/919] Add ol.geom.Polygon#containsCoordinate --- src/ol/geom/polygon.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index e0447a2155..20f9d3aa62 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -26,6 +26,26 @@ ol.geom.Polygon = function(coordinates, opt_layout) { goog.inherits(ol.geom.Polygon, ol.geom.Geometry); +/** + * @param {ol.Coordinate} coordinate Coordinate. + * @return {boolean} Contains coordinate. + */ +ol.geom.Polygon.prototype.containsCoordinate = function(coordinate) { + return this.containsXY(coordinate[0], coordinate[1]); +}; + + +/** + * @param {number} x X. + * @param {number} y Y. + * @return {boolean} Contains. + */ +ol.geom.Polygon.prototype.containsXY = function(x, y) { + return ol.geom.flatLinearRingsContainsXY( + this.flatCoordinates, 0, this.ends_, this.stride, x, y); +}; + + /** * @return {ol.geom.RawPolygon} Coordinates. */ From b60956baf677ad454717983780f60978328ef2fe Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 17:22:16 +0100 Subject: [PATCH 196/919] Add ol.geom.MultiPolygon#containsCoordinate --- src/ol/geom/multipolygon.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 83c7a54d60..b25b9de53b 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -26,6 +26,26 @@ ol.geom.MultiPolygon = function(coordinates, opt_layout) { goog.inherits(ol.geom.MultiPolygon, ol.geom.Geometry); +/** + * @param {ol.Coordinate} coordinate Coordinate. + * @return {boolean} Contains coordinate. + */ +ol.geom.MultiPolygon.prototype.containsCoordinate = function(coordinate) { + return this.containsXY(coordinate[0], coordinate[1]); +}; + + +/** + * @param {number} x X. + * @param {number} y Y. + * @return {boolean} Contains (x, y). + */ +ol.geom.MultiPolygon.prototype.containsXY = function(x, y) { + return ol.geom.flatLinearRingssContainsXY( + this.flatCoordinates, 0, this.endss_, this.stride, x, y); +}; + + /** * @return {ol.geom.RawMultiPolygon} Coordinates. */ From aa70030a434a5f7a6cc81803a497afcf7c2d5843 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 18:05:05 +0100 Subject: [PATCH 197/919] Move containsCoordinate to ol.geom.Geometry --- src/ol/geom/geometry.js | 18 ++++++++++++++++++ src/ol/geom/multipolygon.js | 13 +------------ src/ol/geom/polygon.js | 13 +------------ 3 files changed, 20 insertions(+), 24 deletions(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 4c21a53864..59a6045ff5 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -5,6 +5,7 @@ goog.provide('ol.geom.Geometry'); goog.require('goog.asserts'); goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); +goog.require('goog.functions'); goog.require('ol.extent'); @@ -81,6 +82,23 @@ ol.geom.Geometry = function() { goog.inherits(ol.geom.Geometry, goog.events.EventTarget); +/** + * @param {ol.Coordinate} coordinate Coordinate. + * @return {boolean} Contains coordinate. + */ +ol.geom.Geometry.prototype.containsCoordinate = function(coordinate) { + return this.containsXY(coordinate[0], coordinate[1]); +}; + + +/** + * @param {number} x X. + * @param {number} y Y. + * @return {boolean} Contains (x, y). + */ +ol.geom.Geometry.prototype.containsXY = goog.functions.FALSE; + + /** * FIXME empty description for jsdoc */ diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index b25b9de53b..856bb32a8b 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -27,18 +27,7 @@ goog.inherits(ol.geom.MultiPolygon, ol.geom.Geometry); /** - * @param {ol.Coordinate} coordinate Coordinate. - * @return {boolean} Contains coordinate. - */ -ol.geom.MultiPolygon.prototype.containsCoordinate = function(coordinate) { - return this.containsXY(coordinate[0], coordinate[1]); -}; - - -/** - * @param {number} x X. - * @param {number} y Y. - * @return {boolean} Contains (x, y). + * @inheritDoc */ ol.geom.MultiPolygon.prototype.containsXY = function(x, y) { return ol.geom.flatLinearRingssContainsXY( diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 20f9d3aa62..025f676b6f 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -27,18 +27,7 @@ goog.inherits(ol.geom.Polygon, ol.geom.Geometry); /** - * @param {ol.Coordinate} coordinate Coordinate. - * @return {boolean} Contains coordinate. - */ -ol.geom.Polygon.prototype.containsCoordinate = function(coordinate) { - return this.containsXY(coordinate[0], coordinate[1]); -}; - - -/** - * @param {number} x X. - * @param {number} y Y. - * @return {boolean} Contains. + * @inheritDoc */ ol.geom.Polygon.prototype.containsXY = function(x, y) { return ol.geom.flatLinearRingsContainsXY( From afca110b49e18385ec20cd745d22b5b2839c605c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 18:05:37 +0100 Subject: [PATCH 198/919] Add ol.source.Vector#forEachFeatureAtCoordinate --- src/ol/source/vectorsource.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index cf8fe4660c..de2b26ea9e 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -70,6 +70,26 @@ ol.source.Vector.prototype.addFeature = function(feature) { }; +/** + * @param {ol.Coordinate} coordinate Coordinate. + * @param {function(this: T, ol.Feature): S} f Callback. + * @param {T=} opt_obj The object to be used a the value of 'this' within f. + * @return {S|undefined} + * @template T,S + */ +ol.source.Vector.prototype.forEachFeatureAtCoordinate = + function(coordinate, f, opt_obj) { + var extent = [coordinate[0], coordinate[1], coordinate[0], coordinate[1]]; + return this.forEachFeatureInExtent(extent, function(feature) { + if (feature.getGeometry().containsCoordinate(coordinate)) { + return f.call(opt_obj, feature); + } else { + return undefined; + } + }); +}; + + /** * @param {ol.Extent} extent Extent. * @param {function(this: T, ol.Feature): S} f Callback. From 0221fd221618878555495c03eb514fe50a7f38f9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 18:05:58 +0100 Subject: [PATCH 199/919] Add ol.source.Vector#getAllFeaturesAtCoordinate --- src/ol/source/vectorsource.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index de2b26ea9e..e627397b52 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -111,6 +111,19 @@ ol.source.Vector.prototype.forEachFeatureInExtent = }; +/** + * @param {ol.Coordinate} coordinate Coordinate. + * @return {Array.} Features. + */ +ol.source.Vector.prototype.getAllFeaturesAtCoordinate = function(coordinate) { + var features = []; + this.forEachFeatureAtCoordinate(coordinate, function(feature) { + features.push(feature); + }); + return features; +}; + + /** * @param {ol.Extent} extent Extent. * @return {Array.} Features. From 30503f56653a76895abf1932bf0e6bc98a5005e5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 19:13:04 +0100 Subject: [PATCH 200/919] Add ol.Feature#{get,set}Id --- src/ol/feature.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/ol/feature.js b/src/ol/feature.js index 6414970982..603c6be8f9 100644 --- a/src/ol/feature.js +++ b/src/ol/feature.js @@ -24,6 +24,12 @@ ol.Feature = function(geometryOrValues) { goog.base(this); + /** + * @private + * @type {number|string|undefined} + */ + this.id_ = undefined; + /** * @private * @type {number} @@ -74,6 +80,14 @@ goog.exportProperty( ol.Feature.prototype.getGeometry); +/** + * @return {number|string|undefined} Id. + */ +ol.Feature.prototype.getId = function() { + return this.id_; +}; + + /** * @return {number} Revision. */ @@ -117,3 +131,11 @@ goog.exportProperty( ol.Feature.prototype, 'setGeometry', ol.Feature.prototype.setGeometry); + + +/** + * @param {number|string|undefined} id Id. + */ +ol.Feature.prototype.setId = function(id) { + this.id_ = id; +}; From 8edefc3fee81b99232a931a4c98eaa1fa079ff9a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 19:13:32 +0100 Subject: [PATCH 201/919] Add GeoJSONFeature#id to externs file --- externs/geojson.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/externs/geojson.js b/externs/geojson.js index acb4821c0e..0352da86e2 100644 --- a/externs/geojson.js +++ b/externs/geojson.js @@ -95,6 +95,12 @@ var GeoJSONFeature = function() {}; GeoJSONFeature.prototype.geometry; +/** + * @type {number|string|undefined} + */ +GeoJSONFeature.prototype.id; + + /** * @type {Object.} */ From 8626da50ea3d23dc5f94352b8186b57ea3d4bd92 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 19:14:02 +0100 Subject: [PATCH 202/919] Read GeoJSON feature id --- src/ol/format/geojson/geojsonformat.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/format/geojson/geojsonformat.js b/src/ol/format/geojson/geojsonformat.js index 710582c209..a3945f81f2 100644 --- a/src/ol/format/geojson/geojsonformat.js +++ b/src/ol/format/geojson/geojsonformat.js @@ -96,6 +96,7 @@ ol.format.GeoJSON.readFeature_ = function(object, callback, opt_obj) { goog.asserts.assert(goog.isDef(geometryReader)); var geometry = geometryReader(feature.geometry); var f = new ol.Feature(geometry); + f.setId(feature.id); if (goog.isDef(feature.properties)) { f.setValues(feature.properties); } From 8d3811a79c1b4f2772ffa31124df3a5e1d4bd9b6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 19:14:16 +0100 Subject: [PATCH 203/919] Add ol.Feature exports --- src/ol/feature.exports | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ol/feature.exports b/src/ol/feature.exports index 5e93264ce8..69f6322038 100644 --- a/src/ol/feature.exports +++ b/src/ol/feature.exports @@ -1 +1,4 @@ @exportSymbol ol.Feature +@exportProperty ol.Feature.prototype.getGeometry +@exportProperty ol.Feature.prototype.getId +@exportProperty ol.Feature.prototype.setId From b9614d027d1d356d66c573dfd5968dbecbeb6a00 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 19:16:00 +0100 Subject: [PATCH 204/919] Rename countries example to vector-layer and add mouseover --- .../{countries.html => vector-layer.html} | 20 +++++++++++------ examples/{countries.js => vector-layer.js} | 22 ++++++++++++++++++- 2 files changed, 34 insertions(+), 8 deletions(-) rename examples/{countries.html => vector-layer.html} (63%) rename examples/{countries.js => vector-layer.js} (70%) diff --git a/examples/countries.html b/examples/vector-layer.html similarity index 63% rename from examples/countries.html rename to examples/vector-layer.html index d80dc85042..038a1b9eea 100644 --- a/examples/countries.html +++ b/examples/vector-layer.html @@ -8,7 +8,7 @@ - Countries example + Vector layer example @@ -30,20 +30,26 @@
-
-

Countries example

-

Example of a loading GeoJSON map.

+
+

Vector layer example

+

Example of a countries vector layer with country information on hover and country labels at higher zoom levels.

-

See the countries.js source to see how this is done.

+

See the vector-layer.js source to see how this is done.

+
+
vector, geojson, style
+
+
+
+  
-
geojson
- + + diff --git a/examples/countries.js b/examples/vector-layer.js similarity index 70% rename from examples/countries.js rename to examples/vector-layer.js index 1f3a0e6c53..c2a906cab4 100644 --- a/examples/countries.js +++ b/examples/vector-layer.js @@ -27,12 +27,13 @@ var map = new ol.Map({ }) }); +var vectorSource = new ol.source.Vector(); + goog.net.XhrIo.send('data/countries.geojson', function(event) { var xhrIo = /** @type {goog.net.XhrIo} */ (event.target); if (xhrIo.isSuccess()) { var format = new ol.format.GeoJSON(); var object = xhrIo.getResponseJson(); - var vectorSource = new ol.source.Vector(); goog.asserts.assert(goog.isDefAndNotNull(object)); var transformFn = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); format.readObject(object, function(feature) { @@ -54,3 +55,22 @@ goog.net.XhrIo.send('data/countries.geojson', function(event) { })); } }); + +var displayFeatureInfo = function(pixel) { + var coordinate = map.getCoordinateFromPixel(pixel); + var features = vectorSource.getAllFeaturesAtCoordinate(coordinate); + var innerHTML = features.length ? + features[0].getId() + ': ' + features[0].get('name') : + ' '; + document.getElementById('info').innerHTML = innerHTML; +}; + +$(map.getViewport()).on('mousemove', function(evt) { + var pixel = map.getEventPixel(evt.originalEvent); + displayFeatureInfo(pixel); +}); + +map.on('singleclick', function(evt) { + var pixel = evt.getPixel(); + displayFeatureInfo(pixel); +}); From 809fee898847aba52fd68e3b93c162ea897bf610 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 19:59:21 +0100 Subject: [PATCH 205/919] Add missing whitespace --- test/spec/ol/geom/geom.test.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/spec/ol/geom/geom.test.js b/test/spec/ol/geom/geom.test.js index 8c86156997..881dad4489 100644 --- a/test/spec/ol/geom/geom.test.js +++ b/test/spec/ol/geom/geom.test.js @@ -32,6 +32,7 @@ describe('ol.geom', function() { expect(ends).to.eql([4, 8]); expect(flatCoordinates).to.eql([1, 2, 3, 4, 5, 6, 7, 8]); }); + }); describe('ol.geom.inflateCoordinates', function() { @@ -50,6 +51,7 @@ describe('ol.geom', function() { 0, [4, 8], 2); expect(coordinatess).to.eql([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]); }); + }); }); From 72f64bd37a300d160498bf2727330aaa0658256c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 20:14:53 +0100 Subject: [PATCH 206/919] Add ol.geom.reverseFlatCoordinates --- src/ol/geom/geometry.js | 21 ++++++ test/spec/ol/geom/geom.test.js | 123 +++++++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 59a6045ff5..e6a75e5c94 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -486,3 +486,24 @@ ol.geom.inflateCoordinatesss = coordinatesss.length = i; return coordinatesss; }; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + */ +ol.geom.reverseFlatCoordinates = + function(flatCoordinates, offset, end, stride) { + while (offset < end - stride) { + var i; + for (i = 0; i < stride; ++i) { + var tmp = flatCoordinates[offset + i]; + flatCoordinates[offset + i] = flatCoordinates[end - stride + i]; + flatCoordinates[end - stride + i] = tmp; + } + offset += stride; + end -= stride; + } +}; diff --git a/test/spec/ol/geom/geom.test.js b/test/spec/ol/geom/geom.test.js index 881dad4489..6908756e66 100644 --- a/test/spec/ol/geom/geom.test.js +++ b/test/spec/ol/geom/geom.test.js @@ -54,4 +54,127 @@ describe('ol.geom', function() { }); + describe('ol.geom.reverseFlatCoordinates', function() { + + describe('with a stride of 2', function() { + + it('can reverse empty flat coordinates', function() { + var flatCoordinates = []; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 2); + expect(flatCoordinates).to.be.empty(); + }); + + it('can reverse one flat coordinates', function() { + var flatCoordinates = [1, 2]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 2); + expect(flatCoordinates).to.eql([1, 2]); + }); + + it('can reverse two flat coordinates', function() { + var flatCoordinates = [1, 2, 3, 4]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 2); + expect(flatCoordinates).to.eql([3, 4, 1, 2]); + }); + + it('can reverse three flat coordinates', function() { + var flatCoordinates = [1, 2, 3, 4, 5, 6]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 2); + expect(flatCoordinates).to.eql([5, 6, 3, 4, 1, 2]); + }); + + it('can reverse four flat coordinates', function() { + var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 2); + expect(flatCoordinates).to.eql([7, 8, 5, 6, 3, 4, 1, 2]); + }); + + }); + + describe('with a stride of 3', function() { + + it('can reverse empty flat coordinates', function() { + var flatCoordinates = []; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 3); + expect(flatCoordinates).to.be.empty(); + }); + + it('can reverse one flat coordinates', function() { + var flatCoordinates = [1, 2, 3]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 3); + expect(flatCoordinates).to.eql([1, 2, 3]); + }); + + it('can reverse two flat coordinates', function() { + var flatCoordinates = [1, 2, 3, 4, 5, 6]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 3); + expect(flatCoordinates).to.eql([4, 5, 6, 1, 2, 3]); + }); + + it('can reverse three flat coordinates', function() { + var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 3); + expect(flatCoordinates).to.eql([7, 8, 9, 4, 5, 6, 1, 2, 3]); + }); + + it('can reverse four flat coordinates', function() { + var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 3); + expect(flatCoordinates).to.eql([10, 11, 12, 7, 8, 9, 4, 5, 6, 1, 2, 3]); + }); + + }); + + describe('with a stride of 4', function() { + + it('can reverse empty flat coordinates', function() { + var flatCoordinates = []; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 4); + expect(flatCoordinates).to.be.empty(); + }); + + it('can reverse one flat coordinates', function() { + var flatCoordinates = [1, 2, 3, 4]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 4); + expect(flatCoordinates).to.eql([1, 2, 3, 4]); + }); + + it('can reverse two flat coordinates', function() { + var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 4); + expect(flatCoordinates).to.eql([5, 6, 7, 8, 1, 2, 3, 4]); + }); + + it('can reverse three flat coordinates', function() { + var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 4); + expect(flatCoordinates).to.eql([9, 10, 11, 12, 5, 6, 7, 8, 1, 2, 3, 4]); + }); + + it('can reverse four flat coordinates', function() { + var flatCoordinates = + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]; + ol.geom.reverseFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, 4); + expect(flatCoordinates).to.eql( + [13, 14, 15, 16, 9, 10, 11, 12, 5, 6, 7, 8, 1, 2, 3, 4]); + }); + + }); + + }); + }); From 43d67736a8097532780ba07bfea9e5d06a5e7b38 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 20:15:49 +0100 Subject: [PATCH 207/919] Add ol.geom.flatLinearRingIsClockwise --- src/ol/geom/geometry.js | 25 +++++++++++++++++++++++++ test/spec/ol/geom/geom.test.js | 18 ++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index e6a75e5c94..4124ee04df 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -360,6 +360,31 @@ ol.geom.flatLinearRingContainsXY = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @return {boolean} Is clockwise. + */ +ol.geom.flatLinearRingIsClockwise = + function(flatCoordinates, offset, end, stride) { + // http://tinyurl.com/clockwise-method + // https://github.com/OSGeo/gdal/blob/trunk/gdal/ogr/ogrlinearring.cpp + var edge = 0; + var x1 = flatCoordinates[end - stride]; + var y1 = flatCoordinates[end - stride + 1]; + for (; offset < end; offset += stride) { + var x2 = flatCoordinates[offset]; + var y2 = flatCoordinates[offset + 1]; + edge += (x2 - x1) * (y2 + y1); + x1 = x2; + y1 = y2; + } + return edge > 0; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/test/spec/ol/geom/geom.test.js b/test/spec/ol/geom/geom.test.js index 6908756e66..1c7c8749ef 100644 --- a/test/spec/ol/geom/geom.test.js +++ b/test/spec/ol/geom/geom.test.js @@ -54,6 +54,24 @@ describe('ol.geom', function() { }); + describe('ol.geom.flatLinearRingIsClockwise', function() { + + it('identifies clockwise rings', function() { + var flatCoordinates = [0, 1, 1, 4, 4, 3, 3, 0]; + var isClockwise = ol.geom.flatLinearRingIsClockwise( + flatCoordinates, 0, flatCoordinates.length, 2); + expect(isClockwise).to.be(true); + }); + + it('identifies anti-clockwise rings', function() { + var flatCoordinates = [2, 2, 3, 2, 3, 3, 2, 3]; + var isClockwise = ol.geom.flatLinearRingIsClockwise( + flatCoordinates, 0, flatCoordinates.length, 2); + expect(isClockwise).to.be(false); + }); + + }); + describe('ol.geom.reverseFlatCoordinates', function() { describe('with a stride of 2', function() { From 23777e5949fcd51cfa699de18f21c945171ce590 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 21:17:59 +0100 Subject: [PATCH 208/919] Add ol.geom.orientFlatLinearRings{,s} --- src/ol/geom/geometry.js | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 4124ee04df..a35b3ef1c9 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -513,6 +513,48 @@ ol.geom.inflateCoordinatesss = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @return {number} End. + */ +ol.geom.orientFlatLinearRings = + function(flatCoordinates, offset, ends, stride) { + var i, ii; + for (i = 0, ii = ends.length; i < ii; ++i) { + var end = ends[i]; + var isClockwise = ol.geom.flatLinearRingIsClockwise( + flatCoordinates, offset, end, stride); + var reverse = i === 0 ? !isClockwise : isClockwise; + if (reverse) { + ol.geom.reverseFlatCoordinates(flatCoordinates, offset, end, stride); + } + offset = end; + } + return offset; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @return {number} End. + */ +ol.geom.orientFlatLinearRingss = + function(flatCoordinates, offset, endss, stride) { + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + offset = ol.geom.orientFlatLinearRings( + flatCoordinates, offset, endss[i], stride); + } + return offset; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From fe06c97a088caeb2de68752329ba7adaf4872b8e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 21:18:24 +0100 Subject: [PATCH 209/919] Orient rings in ol.geom.Polygon --- src/ol/geom/polygon.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 025f676b6f..be5531a4c1 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -69,5 +69,7 @@ ol.geom.Polygon.prototype.setCoordinates = this.setLayout(opt_layout, coordinates, 2); ol.geom.deflateCoordinatess( this.flatCoordinates, 0, coordinates, this.stride, this.ends_); + ol.geom.orientFlatLinearRings( + this.flatCoordinates, 0, this.ends_, this.stride); this.dispatchChangeEvent(); }; From 376bd6359ba618959e4b3ba8a72cc86e2bd0157a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 00:43:44 +0100 Subject: [PATCH 210/919] Add more exhaustive polygon tests (some fail for reasons not yet known) --- test/spec/ol/geom/polygon.test.js | 203 +++++++++++++++++++++++++----- 1 file changed, 173 insertions(+), 30 deletions(-) diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js index 583ef6ede4..ec5d5234b6 100644 --- a/test/spec/ol/geom/polygon.test.js +++ b/test/spec/ol/geom/polygon.test.js @@ -1,3 +1,5 @@ +// FIXME why do the xit tests below fail? I don't understand! + goog.provide('ol.test.geom.Polygon'); @@ -34,9 +36,16 @@ describe('ol.geom.Polygon', function() { describe('construct with 2D coordinates', function() { - var polygon; + var outerRing, innerRing, polygon, flatCoordinates; + var outsideOuter, inside, insideInner; beforeEach(function() { - polygon = new ol.geom.Polygon([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]); + outerRing = [[0, 1], [1, 4], [4, 3], [3, 0]]; + innerRing = [[2, 2], [3, 2], [3, 3], [2, 3]]; + polygon = new ol.geom.Polygon([outerRing, innerRing]); + flatCoordinates = [0, 1, 1, 4, 4, 3, 3, 0, 2, 2, 3, 2, 3, 3, 2, 3]; + outsideOuter = [0, 4]; + inside = [1.5, 1.5]; + insideInner = [2.5, 3.5]; }); it('has the expected layout', function() { @@ -44,30 +53,62 @@ describe('ol.geom.Polygon', function() { }); it('has the expected coordinates', function() { - expect(polygon.getCoordinates()).to.eql( - [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]); + expect(polygon.getCoordinates()).to.eql([outerRing, innerRing]); }); it('has the expected extent', function() { - expect(polygon.getExtent()).to.eql([1, 2, 7, 8]); + expect(polygon.getExtent()).to.eql([0, 0, 4, 4]); }); it('has the expected flat coordinates', function() { - expect(polygon.getFlatCoordinates()).to.eql([1, 2, 3, 4, 5, 6, 7, 8]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); }); it('has stride the expected stride', function() { expect(polygon.getStride()).to.be(2); }); + it('reverses the outer ring if necessary', function() { + polygon = new ol.geom.Polygon([outerRing.reverse(), innerRing]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('reverses inner rings if necessary', function() { + polygon = new ol.geom.Polygon([outerRing, innerRing.reverse()]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('reverses all rings if necessary', function() { + polygon = new ol.geom.Polygon([outerRing.reverse(), innerRing.reverse()]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('does not contain outside coordinates', function() { + expect(polygon.containsCoordinate(outsideOuter)).to.be(false); + }); + + it('does contain inside coordinates', function() { + expect(polygon.containsCoordinate(inside)).to.be(true); + }); + + it('does not contain inside inner coordinates', function() { + expect(polygon.containsCoordinate(insideInner)).to.be(false); + }); + }); describe('construct with 3D coordinates', function() { - var polygon; + var outerRing, innerRing, polygon, flatCoordinates; + var outsideOuter, inside, insideInner; beforeEach(function() { - polygon = new ol.geom.Polygon( - [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]); + outerRing = [[0, 0, 1], [4, 4, 2], [4, 0, 3]]; + innerRing = [[2, 1, 4], [3, 1, 5], [3, 2, 6]]; + polygon = new ol.geom.Polygon([outerRing, innerRing]); + flatCoordinates = [0, 0, 1, 4, 4, 2, 4, 0, 3, 2, 1, 4, 3, 1, 5, 3, 2, 6]; + outsideOuter = [1, 3]; + inside = [3.5, 0.5]; + insideInner = [2.9, 1.1]; }); it('has the expected layout', function() { @@ -75,32 +116,62 @@ describe('ol.geom.Polygon', function() { }); it('has the expected coordinates', function() { - expect(polygon.getCoordinates()).to.eql( - [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]); + expect(polygon.getCoordinates()).to.eql([outerRing, innerRing]); }); it('has the expected extent', function() { - expect(polygon.getExtent()).to.eql([1, 2, 10, 11]); + expect(polygon.getExtent()).to.eql([0, 0, 4, 4]); }); it('has the expected flat coordinates', function() { - expect(polygon.getFlatCoordinates()).to.eql( - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); }); it('has stride the expected stride', function() { expect(polygon.getStride()).to.be(3); }); + it('reverses the outer ring if necessary', function() { + polygon = new ol.geom.Polygon([outerRing.reverse(), innerRing]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('reverses inner rings if necessary', function() { + polygon = new ol.geom.Polygon([outerRing, innerRing.reverse()]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('reverses all rings if necessary', function() { + polygon = new ol.geom.Polygon([outerRing.reverse(), innerRing.reverse()]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('does not contain outside coordinates', function() { + expect(polygon.containsCoordinate(outsideOuter)).to.be(false); + }); + + it('does contain inside coordinates', function() { + expect(polygon.containsCoordinate(inside)).to.be(true); + }); + + it('does not contain inside inner coordinates', function() { + expect(polygon.containsCoordinate(insideInner)).to.be(false); + }); + }); describe('construct with 3D coordinates and layout XYM', function() { - var polygon; + var outerRing, innerRing, polygon, flatCoordinates; + var outsideOuter, inside, insideInner; beforeEach(function() { - polygon = new ol.geom.Polygon( - [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]], - ol.geom.Layout.XYM); + outerRing = [[0, 0, 1], [4, 4, 2], [4, 0, 3]]; + innerRing = [[2, 1, 4], [3, 1, 5], [3, 2, 6]]; + polygon = new ol.geom.Polygon([outerRing, innerRing], ol.geom.Layout.XYM); + flatCoordinates = [0, 0, 1, 4, 4, 2, 4, 0, 3, 2, 1, 4, 3, 1, 5, 3, 2, 6]; + outsideOuter = [1, 3]; + inside = [3.5, 0.5]; + insideInner = [2.9, 1.1]; }); it('has the expected layout', function() { @@ -108,31 +179,69 @@ describe('ol.geom.Polygon', function() { }); it('has the expected coordinates', function() { - expect(polygon.getCoordinates()).to.eql( - [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]); + expect(polygon.getCoordinates()).to.eql([outerRing, innerRing]); }); it('has the expected extent', function() { - expect(polygon.getExtent()).to.eql([1, 2, 10, 11]); + expect(polygon.getExtent()).to.eql([0, 0, 4, 4]); }); it('has the expected flat coordinates', function() { - expect(polygon.getFlatCoordinates()).to.eql( - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); }); it('has stride the expected stride', function() { expect(polygon.getStride()).to.be(3); }); + it('reverses the outer ring if necessary', function() { + polygon = new ol.geom.Polygon([outerRing.reverse(), innerRing]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('reverses inner rings if necessary', function() { + polygon = new ol.geom.Polygon([outerRing, innerRing.reverse()]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('reverses all rings if necessary', function() { + polygon = new ol.geom.Polygon([outerRing.reverse(), innerRing.reverse()]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('does not contain outside coordinates', function() { + expect(polygon.containsCoordinate(outsideOuter)).to.be(false); + }); + + it('does contain inside coordinates', function() { + expect(polygon.containsCoordinate(inside)).to.be(true); + }); + + it('does not contain inside inner coordinates', function() { + expect(polygon.containsCoordinate(insideInner)).to.be(false); + }); + }); describe('construct with 4D coordinates', function() { - var polygon; + var outerRing, innerRing1, innerRing2, polygon, flatCoordinates; + var outsideOuter, inside, insideInner1, insideInner2; beforeEach(function() { - polygon = new ol.geom.Polygon( - [[[1, 2, 3, 4], [5, 6, 7, 8]], [[9, 10, 11, 12], [13, 14, 15, 16]]]); + outerRing = [[0, 6, 1, 2], [6, 6, 3, 4], [3, 0, 5, 6]]; + innerRing1 = + [[2, 4, 7, 8], [4, 4, 9, 10], [4, 5, 11, 12], [2, 5, 13, 14]]; + innerRing2 = [[3, 2, 15, 16], [4, 3, 17, 18], [2, 3, 19, 20]]; + polygon = new ol.geom.Polygon([outerRing, innerRing1, innerRing2]); + flatCoordinates = [ + 0, 6, 1, 2, 6, 6, 3, 4, 3, 0, 5, 6, + 2, 4, 7, 8, 4, 4, 9, 10, 4, 5, 11, 12, 2, 5, 13, 14, + 3, 2, 15, 16, 4, 3, 17, 18, 2, 3, 19, 20 + ]; + outsideOuter = [1, 1]; + inside = [3, 1]; + insideInner1 = [2.5, 4.5]; + insideInner2 = [3, 2.5]; }); it('has the expected layout', function() { @@ -141,22 +250,56 @@ describe('ol.geom.Polygon', function() { it('has the expected coordinates', function() { expect(polygon.getCoordinates()).to.eql( - [[[1, 2, 3, 4], [5, 6, 7, 8]], [[9, 10, 11, 12], [13, 14, 15, 16]]]); + [outerRing, innerRing1, innerRing2]); }); it('has the expected extent', function() { - expect(polygon.getExtent()).to.eql([1, 2, 13, 14]); + expect(polygon.getExtent()).to.eql([0, 0, 6, 6]); }); it('has the expected flat coordinates', function() { - expect(polygon.getFlatCoordinates()).to.eql( - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); }); it('has stride the expected stride', function() { expect(polygon.getStride()).to.be(4); }); + it('reverses the outer ring if necessary', function() { + polygon = new ol.geom.Polygon( + [outerRing.reverse(), innerRing1, innerRing2]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('reverses inner rings if necessary', function() { + polygon = new ol.geom.Polygon( + [outerRing, innerRing1.reverse(), innerRing2.reverse()]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + it('reverses all rings if necessary', function() { + polygon = new ol.geom.Polygon( + [outerRing.reverse(), innerRing1.reverse(), innerRing2.reverse()]); + expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); + }); + + xit('does not contain outside coordinates', function() { + expect(polygon.containsCoordinate(outsideOuter)).to.be(false); + }); + + it('does contain inside coordinates', function() { + expect(polygon.containsCoordinate(inside)).to.be(true); + }); + + it('does not contain inside inner coordinates', function() { + expect(polygon.containsCoordinate(insideInner1)).to.be(false); + expect(polygon.containsCoordinate(insideInner2)).to.be(false); + }); + + xit('fails in strange ways', function() { + expect(polygon.containsCoordinate([0, 0])).to.be(false); + }); + }); }); From af177971453fd3269ef4e19320ad0befb0bf08d6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 01:07:58 +0100 Subject: [PATCH 211/919] Use clockwise polygons in GeoJSON tests --- test/spec/ol/format/geojsonformat.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/spec/ol/format/geojsonformat.test.js b/test/spec/ol/format/geojsonformat.test.js index e3027dcb1d..b25b5616ed 100644 --- a/test/spec/ol/format/geojsonformat.test.js +++ b/test/spec/ol/format/geojsonformat.test.js @@ -33,7 +33,7 @@ describe('ol.format.GeoJSON', function() { 'geometry': { 'type': 'Polygon', 'coordinates': [[ - [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] + [100.0, 0.0], [100.0, 1.0], [101.0, 1.0], [101.0, 0.0] ]] }, 'properties': { @@ -84,7 +84,7 @@ describe('ol.format.GeoJSON', function() { var geometry = feature.getGeometry(); expect(geometry).to.be.an(ol.geom.Polygon); expect(geometry.getCoordinates()).to.eql([[ - [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] + [100.0, 0.0], [100.0, 1.0], [101.0, 1.0], [101.0, 0.0] ]]); expect(feature.get('prop0')).to.be('value0'); expect(feature.get('prop1')).to.eql({'this': 'that'}); From 7e408258691067d80d3afc221082995641acab84 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 01:08:15 +0100 Subject: [PATCH 212/919] Orient rings in MultiPolygons --- src/ol/geom/multipolygon.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 856bb32a8b..9fa28b35f8 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -69,5 +69,7 @@ ol.geom.MultiPolygon.prototype.setCoordinates = this.setLayout(opt_layout, coordinates, 3); ol.geom.deflateCoordinatesss( this.flatCoordinates, 0, coordinates, this.stride, this.endss_); + ol.geom.orientFlatLinearRingss( + this.flatCoordinates, 0, this.endss_, this.stride); this.dispatchChangeEvent(); }; From b9af8232d0846ae31699435cbb0fb9339396db66 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 01:09:52 +0100 Subject: [PATCH 213/919] Use more consistent spacing --- src/ol/render/iimmediate.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/render/iimmediate.js b/src/ol/render/iimmediate.js index 613106b86a..af549b2883 100644 --- a/src/ol/render/iimmediate.js +++ b/src/ol/render/iimmediate.js @@ -34,7 +34,7 @@ ol.render.IRender.prototype.drawLineStringGeometry = /** * @param {ol.geom.MultiLineString} multiLineStringGeometry - * Multi line string geometry. + * MultiLineString geometry. */ ol.render.IRender.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { @@ -50,7 +50,7 @@ ol.render.IRender.prototype.drawMultiPointGeometry = /** - * @param {ol.geom.MultiPolygon} multiPolygonGeometry Multi polygon geometry. + * @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry. */ ol.render.IRender.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry) { From cd9b52572a0c340ed0e3af3d482a9b88511f5a8c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 01:17:59 +0100 Subject: [PATCH 214/919] Replace ol.geom.GeometryType with ol.geom.Type --- examples/geojson.js | 8 ++++---- src/ol/geom/geometry.js | 4 ++-- src/ol/geom/linestring.js | 2 +- src/ol/geom/multilinestring.js | 2 +- src/ol/geom/multipoint.js | 2 +- src/ol/geom/multipolygon.js | 2 +- src/ol/geom/point.js | 2 +- src/ol/geom/polygon.js | 2 +- src/ol/render/canvas/canvasimmediate.js | 2 +- src/ol/render/vector.js | 2 +- 10 files changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 9acff760e1..64cba64f3c 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -15,11 +15,11 @@ goog.require('ol.symbol'); var image = ol.symbol.renderCircle(5, null, {color: 'red', width: 1}); var styleFunction = function(feature) { switch (feature.getGeometry().getType()) { - case ol.geom.GeometryType.POINT: + case ol.geom.Type.POINT: return { image: image }; - case ol.geom.GeometryType.POLYGON: + case ol.geom.Type.POLYGON: return { stroke: { color: 'blue', @@ -29,14 +29,14 @@ var styleFunction = function(feature) { color: 'rgba(0, 0, 255, 0.1)' } }; - case ol.geom.GeometryType.MULTI_LINE_STRING: + case ol.geom.Type.MULTI_LINE_STRING: return { stroke: { color: 'green', width: 1 } }; - case ol.geom.GeometryType.MULTI_POLYGON: + case ol.geom.Type.MULTI_POLYGON: return { stroke: { color: 'yellow', diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index a35b3ef1c9..d31c957fd9 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -12,7 +12,7 @@ goog.require('ol.extent'); /** * @enum {string} */ -ol.geom.GeometryType = { +ol.geom.Type = { POINT: 'Point', LINE_STRING: 'LineString', POLYGON: 'Polygon', @@ -156,7 +156,7 @@ ol.geom.Geometry.prototype.getStride = function() { /** - * @return {ol.geom.GeometryType} Geometry type. + * @return {ol.geom.Type} Geometry type. */ ol.geom.Geometry.prototype.getType = goog.abstractMethod; diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 3daab3ff70..f0b32ae125 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -30,7 +30,7 @@ ol.geom.LineString.prototype.getCoordinates = function() { * @inheritDoc */ ol.geom.LineString.prototype.getType = function() { - return ol.geom.GeometryType.LINE_STRING; + return ol.geom.Type.LINE_STRING; }; diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 0fe383b7e8..ef06708427 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -47,7 +47,7 @@ ol.geom.MultiLineString.prototype.getEnds = function() { * @inheritDoc */ ol.geom.MultiLineString.prototype.getType = function() { - return ol.geom.GeometryType.MULTI_LINE_STRING; + return ol.geom.Type.MULTI_LINE_STRING; }; diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index 7f2f7af09d..f323e1da02 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -30,7 +30,7 @@ ol.geom.MultiPoint.prototype.getCoordinates = function() { * @inheritDoc */ ol.geom.MultiPoint.prototype.getType = function() { - return ol.geom.GeometryType.MULTI_POINT; + return ol.geom.Type.MULTI_POINT; }; diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 9fa28b35f8..c0587ab503 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -56,7 +56,7 @@ ol.geom.MultiPolygon.prototype.getEndss = function() { * @inheritDoc */ ol.geom.MultiPolygon.prototype.getType = function() { - return ol.geom.GeometryType.MULTI_POLYGON; + return ol.geom.Type.MULTI_POLYGON; }; diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index 38e7f4eb81..7d660b92b6 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -45,7 +45,7 @@ ol.geom.Point.prototype.getExtent = function(opt_extent) { * @inheritDoc */ ol.geom.Point.prototype.getType = function() { - return ol.geom.GeometryType.POINT; + return ol.geom.Type.POINT; }; diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index be5531a4c1..965df227d8 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -56,7 +56,7 @@ ol.geom.Polygon.prototype.getEnds = function() { * @inheritDoc */ ol.geom.Polygon.prototype.getType = function() { - return ol.geom.GeometryType.POLYGON; + return ol.geom.Type.POLYGON; }; diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 041d28184d..548f9950d3 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -290,7 +290,7 @@ ol.render.canvas.Immediate.prototype.setImageStyle = function(imageStyle) { /** * @const * @private - * @type {Object.} */ ol.render.canvas.Immediate.GEOMETRY_RENDERES_ = { diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index 8f3cefb370..2fb0a590c0 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -148,7 +148,7 @@ ol.renderer.vector.renderPolygonGeometry_ = /** * @const * @private - * @type {Object.} */ From 7fd4e1ba560a6e90d1a7245218581e97c3bbff99 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 01:24:06 +0100 Subject: [PATCH 215/919] Rename ol.render.RenderEvent to ol.render.Event --- src/ol/render/dragbox.js | 8 ++++---- src/ol/render/renderevent.exports | 6 +++--- src/ol/render/renderevent.js | 20 +++++++++---------- src/ol/renderer/canvas/canvaslayerrenderer.js | 11 +++++----- src/ol/renderer/canvas/canvasmaprenderer.js | 11 +++++----- 5 files changed, 27 insertions(+), 29 deletions(-) diff --git a/src/ol/render/dragbox.js b/src/ol/render/dragbox.js index 8b4b234524..e2fe12bd8a 100644 --- a/src/ol/render/dragbox.js +++ b/src/ol/render/dragbox.js @@ -5,7 +5,7 @@ goog.provide('ol.render.DragBox'); goog.require('goog.Disposable'); goog.require('goog.events'); goog.require('ol.geom.Polygon'); -goog.require('ol.render.RenderEventType'); +goog.require('ol.render.EventType'); goog.require('ol.style.Style'); @@ -70,7 +70,7 @@ ol.render.DragBox.prototype.disposeInternal = function() { /** - * @param {ol.render.RenderEvent} event Event. + * @param {ol.render.Event} event Event. * @private */ ol.render.DragBox.prototype.handleMapPostCompose_ = function(event) { @@ -115,8 +115,8 @@ ol.render.DragBox.prototype.setMap = function(map) { this.map_ = map; if (!goog.isNull(this.map_)) { this.postComposeListenKey_ = goog.events.listen( - map, ol.render.RenderEventType.POSTCOMPOSE, - this.handleMapPostCompose_, false, this); + map, ol.render.EventType.POSTCOMPOSE, this.handleMapPostCompose_, false, + this); this.requestMapRenderFrame_(); } }; diff --git a/src/ol/render/renderevent.exports b/src/ol/render/renderevent.exports index 7d9ce51558..3edd9681c3 100644 --- a/src/ol/render/renderevent.exports +++ b/src/ol/render/renderevent.exports @@ -1,3 +1,3 @@ -@exportProperty ol.render.RenderEvent.prototype.getContext -@exportProperty ol.render.RenderEvent.prototype.getGL -@exportProperty ol.render.RenderEvent.prototype.getRender +@exportProperty ol.render.Event.prototype.getContext +@exportProperty ol.render.Event.prototype.getGL +@exportProperty ol.render.Event.prototype.getRender diff --git a/src/ol/render/renderevent.js b/src/ol/render/renderevent.js index 5d1394d814..1de0f9bc18 100644 --- a/src/ol/render/renderevent.js +++ b/src/ol/render/renderevent.js @@ -1,5 +1,5 @@ -goog.provide('ol.render.RenderEvent'); -goog.provide('ol.render.RenderEventType'); +goog.provide('ol.render.Event'); +goog.provide('ol.render.EventType'); goog.require('goog.events.Event'); goog.require('ol.render.IRender'); @@ -8,7 +8,7 @@ goog.require('ol.render.IRender'); /** * @enum {string} */ -ol.render.RenderEventType = { +ol.render.EventType = { POSTCOMPOSE: 'postcompose' }; @@ -17,14 +17,14 @@ ol.render.RenderEventType = { /** * @constructor * @extends {goog.events.Event} - * @param {ol.render.RenderEventType} type Type. + * @param {ol.render.EventType} type Type. * @param {Object=} opt_target Target. * @param {ol.render.IRender=} opt_render Render. * @param {ol.FrameState=} opt_frameState Frame state. * @param {?CanvasRenderingContext2D=} opt_context Context. * @param {?WebGLRenderingContext=} opt_gl GL. */ -ol.render.RenderEvent = function( +ol.render.Event = function( type, opt_target, opt_render, opt_frameState, opt_context, opt_gl) { goog.base(this, type, opt_target); @@ -54,13 +54,13 @@ ol.render.RenderEvent = function( this.gl_ = opt_gl; }; -goog.inherits(ol.render.RenderEvent, goog.events.Event); +goog.inherits(ol.render.Event, goog.events.Event); /** * @return {CanvasRenderingContext2D|null|undefined} Context. */ -ol.render.RenderEvent.prototype.getContext = function() { +ol.render.Event.prototype.getContext = function() { return this.context_; }; @@ -68,7 +68,7 @@ ol.render.RenderEvent.prototype.getContext = function() { /** * @return {ol.FrameState|undefined} Frame state. */ -ol.render.RenderEvent.prototype.getFrameState = function() { +ol.render.Event.prototype.getFrameState = function() { return this.frameState_; }; @@ -76,7 +76,7 @@ ol.render.RenderEvent.prototype.getFrameState = function() { /** * @return {WebGLRenderingContext|null|undefined} GL. */ -ol.render.RenderEvent.prototype.getGL = function() { +ol.render.Event.prototype.getGL = function() { return this.gl_; }; @@ -84,6 +84,6 @@ ol.render.RenderEvent.prototype.getGL = function() { /** * @return {ol.render.IRender|undefined} Render. */ -ol.render.RenderEvent.prototype.getRender = function() { +ol.render.Event.prototype.getRender = function() { return this.render_; }; diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index ac5ab3cb75..92077c1ac4 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -2,8 +2,8 @@ goog.provide('ol.renderer.canvas.Layer'); goog.require('goog.vec.Mat4'); goog.require('ol.layer.Layer'); -goog.require('ol.render.RenderEvent'); -goog.require('ol.render.RenderEventType'); +goog.require('ol.render.Event'); +goog.require('ol.render.EventType'); goog.require('ol.render.canvas.Immediate'); goog.require('ol.renderer.Layer'); @@ -78,14 +78,13 @@ ol.renderer.canvas.Layer.prototype.composeFrame = ol.renderer.canvas.Layer.prototype.dispatchPostComposeEvent = function(context, frameState, opt_transform) { var layer = this.getLayer(); - if (layer.hasListener(ol.render.RenderEventType.POSTCOMPOSE)) { + if (layer.hasListener(ol.render.EventType.POSTCOMPOSE)) { var transform = goog.isDef(opt_transform) ? opt_transform : this.getTransform(frameState); var render = new ol.render.canvas.Immediate(context, frameState.extent, transform); - var postComposeEvent = new ol.render.RenderEvent( - ol.render.RenderEventType.POSTCOMPOSE, layer, render, frameState, - context, null); + var postComposeEvent = new ol.render.Event(ol.render.EventType.POSTCOMPOSE, + layer, render, frameState, context, null); layer.dispatchEvent(postComposeEvent); } }; diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index 1739181d87..d4ce0128d3 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -10,8 +10,8 @@ goog.require('ol.css'); goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); -goog.require('ol.render.RenderEvent'); -goog.require('ol.render.RenderEventType'); +goog.require('ol.render.Event'); +goog.require('ol.render.EventType'); goog.require('ol.render.canvas.Immediate'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.canvas.ImageLayer'); @@ -126,12 +126,11 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { } var map = this.getMap(); - if (map.hasListener(ol.render.RenderEventType.POSTCOMPOSE)) { + if (map.hasListener(ol.render.EventType.POSTCOMPOSE)) { var render = new ol.render.canvas.Immediate( context, frameState.extent, frameState.coordinateToPixelMatrix); - var postComposeEvent = new ol.render.RenderEvent( - ol.render.RenderEventType.POSTCOMPOSE, map, render, frameState, context, - null); + var postComposeEvent = new ol.render.Event(ol.render.EventType.POSTCOMPOSE, + map, render, frameState, context, null); map.dispatchEvent(postComposeEvent); } From e44dfb1c6cf795d416d9602bf7f8ce43aa9a2160 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 01:26:41 +0100 Subject: [PATCH 216/919] Avoid clearing canvas twice --- src/ol/renderer/canvas/canvasmaprenderer.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index d4ce0128d3..49cee29160 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -95,15 +95,16 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { return; } + var context = this.context_; + var size = frameState.size; if (this.canvas_.width != size[0] || this.canvas_.height != size[1]) { this.canvas_.width = size[0]; this.canvas_.height = size[1]; + } else { + context.clearRect(0, 0, size[0], size[1]); } - var context = this.context_; - context.clearRect(0, 0, size[0], size[1]); - this.calculateMatrices2D(frameState); var layerStates = frameState.layerStates; From 16994f177450786bc1dc2faed53b2251ce09f488 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 12:11:25 +0100 Subject: [PATCH 217/919] Rename ol.render to ol.geom.flat --- src/ol/{render/render.js => geom/flatgeom.js} | 8 ++++---- src/ol/render/canvas/canvasimmediate.js | 12 ++++++------ src/ol/render/canvas/canvasreplay.js | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) rename src/ol/{render/render.js => geom/flatgeom.js} (89%) diff --git a/src/ol/render/render.js b/src/ol/geom/flatgeom.js similarity index 89% rename from src/ol/render/render.js rename to src/ol/geom/flatgeom.js index ba9ae73c3c..5310694a19 100644 --- a/src/ol/render/render.js +++ b/src/ol/geom/flatgeom.js @@ -1,4 +1,4 @@ -goog.provide('ol.render'); +goog.provide('ol.geom.flat'); goog.require('goog.vec.Mat4'); goog.require('ol.geom.Geometry'); @@ -11,7 +11,7 @@ goog.require('ol.geom.Geometry'); * @param {Array.=} opt_dest Destination. * @return {Array.} Transformed coordinates. */ -ol.render.transformFlatCoordinates = +ol.geom.flat.transform2D = function(flatCoordinates, stride, transform, opt_dest) { var m00 = goog.vec.Mat4.getElement(transform, 0, 0); var m10 = goog.vec.Mat4.getElement(transform, 1, 0); @@ -41,9 +41,9 @@ ol.render.transformFlatCoordinates = * @param {Array.=} opt_dest Destination. * @return {Array.} Transformed flat coordinates. */ -ol.render.transformGeometry = function(geometry, transform, opt_dest) { +ol.geom.flat.transformGeometry2D = function(geometry, transform, opt_dest) { var flatCoordinates = geometry.getFlatCoordinates(); var stride = geometry.getStride(); - return ol.render.transformFlatCoordinates( + return ol.geom.flat.transform2D( flatCoordinates, stride, transform, opt_dest); }; diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 548f9950d3..ab7c968723 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -5,7 +5,7 @@ goog.provide('ol.render.canvas.Immediate'); goog.require('goog.asserts'); goog.require('ol.extent'); -goog.require('ol.render'); +goog.require('ol.geom.flat'); goog.require('ol.render.IRender'); goog.require('ol.style.fill'); goog.require('ol.style.stroke'); @@ -71,7 +71,7 @@ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { goog.isNull(imageStyle)) { return; } - var pixelCoordinates = ol.render.transformGeometry( + var pixelCoordinates = ol.geom.flat.transformGeometry2D( geometry, this.transform_, this.pixelCoordinates_); var i, ii; for (i = 0, ii = pixelCoordinates.length; i < ii; i += 2) { @@ -169,7 +169,7 @@ ol.render.canvas.Immediate.prototype.drawLineStringGeometry = return; } var context = this.context_; - var pixelCoordinates = ol.render.transformGeometry( + var pixelCoordinates = ol.geom.flat.transformGeometry2D( lineStringGeometry, this.transform_, this.pixelCoordinates_); context.beginPath(); this.moveToLineTo_(pixelCoordinates, 0, pixelCoordinates.length, false); @@ -188,7 +188,7 @@ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = return; } var context = this.context_; - var pixelCoordinates = ol.render.transformGeometry( + var pixelCoordinates = ol.geom.flat.transformGeometry2D( multiLineStringGeometry, this.transform_, this.pixelCoordinates_); context.beginPath(); var ends = multiLineStringGeometry.getEnds(); @@ -214,7 +214,7 @@ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = return; } var context = this.context_; - var pixelCoordinates = ol.render.transformGeometry( + var pixelCoordinates = ol.geom.flat.transformGeometry2D( polygonGeometry, this.transform_, this.pixelCoordinates_); var ends = polygonGeometry.getEnds(); context.beginPath(); @@ -241,7 +241,7 @@ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = return; } var context = this.context_; - var pixelCoordinates = ol.render.transformGeometry( + var pixelCoordinates = ol.geom.flat.transformGeometry2D( multiPolygonGeometry, this.transform_, this.pixelCoordinates_); var endss = multiPolygonGeometry.getEndss(); var offset = 0; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index e3e275c0d5..fd6a97a154 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -7,7 +7,7 @@ goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.object'); goog.require('ol.extent'); -goog.require('ol.render'); +goog.require('ol.geom.flat'); goog.require('ol.render.IRender'); goog.require('ol.render.IReplayReplayGroup'); goog.require('ol.style.fill'); @@ -94,7 +94,7 @@ ol.render.canvas.Replay.prototype.appendFlatCoordinates = * @param {goog.vec.Mat4.AnyType} transform Transform. */ ol.render.canvas.Replay.prototype.draw = function(context, transform) { - var pixelCoordinates = ol.render.transformFlatCoordinates( + var pixelCoordinates = ol.geom.flat.transform2D( this.coordinates, 2, transform, this.pixelCoordinates_); this.pixelCoordinates_ = pixelCoordinates; // FIXME ? var instructions = this.instructions; From dc1ad7bb833d81e283547ec5f49b5d1efbb86a1b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 12:19:08 +0100 Subject: [PATCH 218/919] Move deflateCoodinates into ol.geom.flat --- src/ol/geom/flatgeom.js | 70 ++++++++++++++++++++++++++++++++++ src/ol/geom/geometry.js | 69 --------------------------------- src/ol/geom/linestring.js | 4 +- src/ol/geom/multilinestring.js | 3 +- src/ol/geom/multipoint.js | 4 +- src/ol/geom/multipolygon.js | 3 +- src/ol/geom/polygon.js | 3 +- test/spec/ol/geom/geom.test.js | 11 ++++-- 8 files changed, 89 insertions(+), 78 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 5310694a19..0b20b12f93 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -1,9 +1,79 @@ goog.provide('ol.geom.flat'); +goog.require('goog.asserts'); goog.require('goog.vec.Mat4'); goog.require('ol.geom.Geometry'); +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} coordinates Coordinates. + * @param {number} stride Stride. + * @return {number} offset Offset. + */ +ol.geom.flat.deflateCoordinates = + function(flatCoordinates, offset, coordinates, stride) { + var i, ii; + for (i = 0, ii = coordinates.length; i < ii; ++i) { + var coordinate = coordinates[i]; + goog.asserts.assert(coordinate.length == stride); + var j; + for (j = 0; j < stride; ++j) { + flatCoordinates[offset++] = coordinate[j]; + } + } + return offset; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} coordinatess Coordinatess. + * @param {number} stride Stride. + * @param {Array.=} opt_ends Ends. + * @return {Array.} Ends. + */ +ol.geom.flat.deflateCoordinatess = + function(flatCoordinates, offset, coordinatess, stride, opt_ends) { + var ends = goog.isDef(opt_ends) ? opt_ends : []; + var i = 0; + var j, jj; + for (j = 0, jj = coordinatess.length; j < jj; ++j) { + var end = ol.geom.flat.deflateCoordinates( + flatCoordinates, offset, coordinatess[j], stride); + ends[i++] = end; + offset = end; + } + ends.length = i; + return ends; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>>} coordinatesss Coordinatesss. + * @param {number} stride Stride. + * @param {Array.>=} opt_endss Endss. + * @return {Array.>} Endss. + */ +ol.geom.flat.deflateCoordinatesss = + function(flatCoordinates, offset, coordinatesss, stride, opt_endss) { + var endss = goog.isDef(opt_endss) ? opt_endss : []; + var i = 0; + var j, jj; + for (j = 0, jj = coordinatesss.length; j < jj; ++j) { + var ends = ol.geom.flat.deflateCoordinatess( + flatCoordinates, offset, coordinatesss[j], stride, endss[i]); + endss[i++] = ends; + offset = ends[ends.length - 1]; + } + return endss; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} stride Stride. diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index d31c957fd9..6a0fa44329 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -261,75 +261,6 @@ ol.geom.RawMultiLineString; ol.geom.RawMultiPolygon; -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.} coordinates Coordinates. - * @param {number} stride Stride. - * @return {number} offset Offset. - */ -ol.geom.deflateCoordinates = - function(flatCoordinates, offset, coordinates, stride) { - var i, ii; - for (i = 0, ii = coordinates.length; i < ii; ++i) { - var coordinate = coordinates[i]; - goog.asserts.assert(coordinate.length == stride); - var j; - for (j = 0; j < stride; ++j) { - flatCoordinates[offset++] = coordinate[j]; - } - } - return offset; -}; - - -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.>} coordinatess Coordinatess. - * @param {number} stride Stride. - * @param {Array.=} opt_ends Ends. - * @return {Array.} Ends. - */ -ol.geom.deflateCoordinatess = - function(flatCoordinates, offset, coordinatess, stride, opt_ends) { - var ends = goog.isDef(opt_ends) ? opt_ends : []; - var i = 0; - var j, jj; - for (j = 0, jj = coordinatess.length; j < jj; ++j) { - var end = ol.geom.deflateCoordinates( - flatCoordinates, offset, coordinatess[j], stride); - ends[i++] = end; - offset = end; - } - ends.length = i; - return ends; -}; - - -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.>>} coordinatesss Coordinatesss. - * @param {number} stride Stride. - * @param {Array.>=} opt_endss Endss. - * @return {Array.>} Endss. - */ -ol.geom.deflateCoordinatesss = - function(flatCoordinates, offset, coordinatesss, stride, opt_endss) { - var endss = goog.isDef(opt_endss) ? opt_endss : []; - var i = 0; - var j, jj; - for (j = 0, jj = coordinatesss.length; j < jj; ++j) { - var ends = ol.geom.deflateCoordinatess( - flatCoordinates, offset, coordinatesss[j], stride, endss[i]); - endss[i++] = ends; - offset = ends[ends.length - 1]; - } - return endss; -}; - - /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index f0b32ae125..4341e63644 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.LineString'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.flat'); @@ -41,6 +42,7 @@ ol.geom.LineString.prototype.getType = function() { ol.geom.LineString.prototype.setCoordinates = function(coordinates, opt_layout) { this.setLayout(opt_layout, coordinates, 1); - ol.geom.deflateCoordinates(this.flatCoordinates, 0, coordinates, this.stride); + ol.geom.flat.deflateCoordinates( + this.flatCoordinates, 0, coordinates, this.stride); this.dispatchChangeEvent(); }; diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index ef06708427..50259cb6ff 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.MultiLineString'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.flat'); @@ -58,7 +59,7 @@ ol.geom.MultiLineString.prototype.getType = function() { ol.geom.MultiLineString.prototype.setCoordinates = function(coordinates, opt_layout) { this.setLayout(opt_layout, coordinates, 2); - ol.geom.deflateCoordinatess( + ol.geom.flat.deflateCoordinatess( this.flatCoordinates, 0, coordinates, this.stride, this.ends_); this.dispatchChangeEvent(); }; diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index f323e1da02..ce1ac23419 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.MultiPoint'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.flat'); @@ -41,6 +42,7 @@ ol.geom.MultiPoint.prototype.getType = function() { ol.geom.MultiPoint.prototype.setCoordinates = function(coordinates, opt_layout) { this.setLayout(opt_layout, coordinates, 1); - ol.geom.deflateCoordinates(this.flatCoordinates, 0, coordinates, this.stride); + ol.geom.flat.deflateCoordinates( + this.flatCoordinates, 0, coordinates, this.stride); this.dispatchChangeEvent(); }; diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index c0587ab503..406202c97e 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.MultiPolygon'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.flat'); @@ -67,7 +68,7 @@ ol.geom.MultiPolygon.prototype.getType = function() { ol.geom.MultiPolygon.prototype.setCoordinates = function(coordinates, opt_layout) { this.setLayout(opt_layout, coordinates, 3); - ol.geom.deflateCoordinatesss( + ol.geom.flat.deflateCoordinatesss( this.flatCoordinates, 0, coordinates, this.stride, this.endss_); ol.geom.orientFlatLinearRingss( this.flatCoordinates, 0, this.endss_, this.stride); diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 965df227d8..f4caa11f16 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.Polygon'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.flat'); @@ -67,7 +68,7 @@ ol.geom.Polygon.prototype.getType = function() { ol.geom.Polygon.prototype.setCoordinates = function(coordinates, opt_layout) { this.setLayout(opt_layout, coordinates, 2); - ol.geom.deflateCoordinatess( + ol.geom.flat.deflateCoordinatess( this.flatCoordinates, 0, coordinates, this.stride, this.ends_); ol.geom.orientFlatLinearRings( this.flatCoordinates, 0, this.ends_, this.stride); diff --git a/test/spec/ol/geom/geom.test.js b/test/spec/ol/geom/geom.test.js index 1c7c8749ef..c34de4331a 100644 --- a/test/spec/ol/geom/geom.test.js +++ b/test/spec/ol/geom/geom.test.js @@ -3,7 +3,7 @@ goog.provide('ol.test.geom'); describe('ol.geom', function() { - describe('ol.geom.deflateCoordinates', function() { + describe('ol.geom.flat.deflateCoordinates', function() { var flatCoordinates; beforeEach(function() { @@ -11,7 +11,7 @@ describe('ol.geom', function() { }); it('flattens coordinates', function() { - var offset = ol.geom.deflateCoordinates( + var offset = ol.geom.flat.deflateCoordinates( flatCoordinates, 0, [[1, 2], [3, 4]], 2); expect(offset).to.be(4); expect(flatCoordinates).to.eql([1, 2, 3, 4]); @@ -19,7 +19,7 @@ describe('ol.geom', function() { }); - describe('ol.geom.deflateCoordinatess', function() { + describe('ol.geom.flat.deflateCoordinatess', function() { var flatCoordinates; beforeEach(function() { @@ -27,7 +27,7 @@ describe('ol.geom', function() { }); it('flattens arrays of coordinates', function() { - var ends = ol.geom.deflateCoordinatess(flatCoordinates, 0, + var ends = ol.geom.flat.deflateCoordinatess(flatCoordinates, 0, [[[1, 2], [3, 4]], [[5, 6], [7, 8]]], 2); expect(ends).to.eql([4, 8]); expect(flatCoordinates).to.eql([1, 2, 3, 4, 5, 6, 7, 8]); @@ -196,3 +196,6 @@ describe('ol.geom', function() { }); }); + + +goog.require('ol.geom.flat'); From 16e5f238d26285f1f5461848feff15e77fb55e3e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 12:22:29 +0100 Subject: [PATCH 219/919] Move inflateCoordinates into ol.geom.flat --- src/ol/geom/flatgeom.js | 70 ++++++++++++++++++++++++++++++++++ src/ol/geom/geometry.js | 70 ---------------------------------- src/ol/geom/linestring.js | 2 +- src/ol/geom/multilinestring.js | 2 +- src/ol/geom/multipoint.js | 2 +- src/ol/geom/multipolygon.js | 2 +- src/ol/geom/polygon.js | 2 +- test/spec/ol/geom/geom.test.js | 10 ++--- 8 files changed, 80 insertions(+), 80 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 0b20b12f93..14fb98b3a6 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -74,6 +74,76 @@ ol.geom.flat.deflateCoordinatesss = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {Array.=} opt_coordinates Coordinates. + * @return {Array.} Coordinates. + */ +ol.geom.flat.inflateCoordinates = + function(flatCoordinates, offset, end, stride, opt_coordinates) { + var coordinates = goog.isDef(opt_coordinates) ? opt_coordinates : []; + var i = 0; + var j; + for (j = offset; j < end; j += stride) { + coordinates[i++] = flatCoordinates.slice(j, j + stride); + } + coordinates.length = i; + return coordinates; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @param {Array.>=} opt_coordinatess Coordinatess. + * @return {Array.>} Coordinatess. + */ +ol.geom.flat.inflateCoordinatess = + function(flatCoordinates, offset, ends, stride, opt_coordinatess) { + var coordinatess = goog.isDef(opt_coordinatess) ? opt_coordinatess : []; + var i = 0; + var j, jj; + for (j = 0, jj = ends.length; j < jj; ++j) { + var end = ends[j]; + coordinatess[i++] = ol.geom.flat.inflateCoordinates( + flatCoordinates, offset, end, stride, coordinatess[i]); + offset = end; + } + coordinatess.length = i; + return coordinatess; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @param {Array.>>=} opt_coordinatesss + * Coordinatesss. + * @return {Array.>>} Coordinatesss. + */ +ol.geom.flat.inflateCoordinatesss = + function(flatCoordinates, offset, endss, stride, opt_coordinatesss) { + var coordinatesss = goog.isDef(opt_coordinatesss) ? opt_coordinatesss : []; + var i = 0; + var j, jj; + for (j = 0, jj = endss.length; j < jj; ++j) { + var ends = endss[j]; + coordinatesss[i++] = ol.geom.flat.inflateCoordinatess( + flatCoordinates, offset, ends, stride, coordinatesss[i]); + offset = ends[ends.length - 1]; + } + coordinatesss.length = i; + return coordinatesss; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} stride Stride. diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 6a0fa44329..7337ea84ca 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -374,76 +374,6 @@ ol.geom.flatLinearRingssContainsXY = }; -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {number} end End. - * @param {number} stride Stride. - * @param {Array.=} opt_coordinates Coordinates. - * @return {Array.} Coordinates. - */ -ol.geom.inflateCoordinates = - function(flatCoordinates, offset, end, stride, opt_coordinates) { - var coordinates = goog.isDef(opt_coordinates) ? opt_coordinates : []; - var i = 0; - var j; - for (j = offset; j < end; j += stride) { - coordinates[i++] = flatCoordinates.slice(j, j + stride); - } - coordinates.length = i; - return coordinates; -}; - - -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.} ends Ends. - * @param {number} stride Stride. - * @param {Array.>=} opt_coordinatess Coordinatess. - * @return {Array.>} Coordinatess. - */ -ol.geom.inflateCoordinatess = - function(flatCoordinates, offset, ends, stride, opt_coordinatess) { - var coordinatess = goog.isDef(opt_coordinatess) ? opt_coordinatess : []; - var i = 0; - var j, jj; - for (j = 0, jj = ends.length; j < jj; ++j) { - var end = ends[j]; - coordinatess[i++] = ol.geom.inflateCoordinates( - flatCoordinates, offset, end, stride, coordinatess[i]); - offset = end; - } - coordinatess.length = i; - return coordinatess; -}; - - -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.>} endss Endss. - * @param {number} stride Stride. - * @param {Array.>>=} opt_coordinatesss - * Coordinatesss. - * @return {Array.>>} Coordinatesss. - */ -ol.geom.inflateCoordinatesss = - function(flatCoordinates, offset, endss, stride, opt_coordinatesss) { - var coordinatesss = goog.isDef(opt_coordinatesss) ? opt_coordinatesss : []; - var i = 0; - var j, jj; - for (j = 0, jj = endss.length; j < jj; ++j) { - var ends = endss[j]; - coordinatesss[i++] = ol.geom.inflateCoordinatess( - flatCoordinates, offset, ends, stride, coordinatesss[i]); - offset = ends[ends.length - 1]; - } - coordinatesss.length = i; - return coordinatesss; -}; - - /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 4341e63644..6fde2a37e7 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -22,7 +22,7 @@ goog.inherits(ol.geom.LineString, ol.geom.Geometry); * @return {ol.geom.RawLineString} Coordinates. */ ol.geom.LineString.prototype.getCoordinates = function() { - return ol.geom.inflateCoordinates( + return ol.geom.flat.inflateCoordinates( this.flatCoordinates, 0, this.flatCoordinates.length, this.stride); }; diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 50259cb6ff..4fe59e2688 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -31,7 +31,7 @@ goog.inherits(ol.geom.MultiLineString, ol.geom.Geometry); * @return {ol.geom.RawMultiLineString} Coordinates. */ ol.geom.MultiLineString.prototype.getCoordinates = function() { - return ol.geom.inflateCoordinatess( + return ol.geom.flat.inflateCoordinatess( this.flatCoordinates, 0, this.ends_, this.stride); }; diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index ce1ac23419..019c203c07 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -22,7 +22,7 @@ goog.inherits(ol.geom.MultiPoint, ol.geom.Geometry); * @return {ol.geom.RawMultiPoint} Coordinates. */ ol.geom.MultiPoint.prototype.getCoordinates = function() { - return ol.geom.inflateCoordinates( + return ol.geom.flat.inflateCoordinates( this.flatCoordinates, 0, this.flatCoordinates.length, this.stride); }; diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 406202c97e..c9e5a68f84 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -40,7 +40,7 @@ ol.geom.MultiPolygon.prototype.containsXY = function(x, y) { * @return {ol.geom.RawMultiPolygon} Coordinates. */ ol.geom.MultiPolygon.prototype.getCoordinates = function() { - return ol.geom.inflateCoordinatesss( + return ol.geom.flat.inflateCoordinatesss( this.flatCoordinates, 0, this.endss_, this.stride); }; diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index f4caa11f16..12ca15dcf2 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -40,7 +40,7 @@ ol.geom.Polygon.prototype.containsXY = function(x, y) { * @return {ol.geom.RawPolygon} Coordinates. */ ol.geom.Polygon.prototype.getCoordinates = function() { - return ol.geom.inflateCoordinatess( + return ol.geom.flat.inflateCoordinatess( this.flatCoordinates, 0, this.ends_, this.stride); }; diff --git a/test/spec/ol/geom/geom.test.js b/test/spec/ol/geom/geom.test.js index c34de4331a..987169e380 100644 --- a/test/spec/ol/geom/geom.test.js +++ b/test/spec/ol/geom/geom.test.js @@ -35,20 +35,20 @@ describe('ol.geom', function() { }); - describe('ol.geom.inflateCoordinates', function() { + describe('ol.geom.flat.inflateCoordinates', function() { it('inflates coordinates', function() { - var coordinates = ol.geom.inflateCoordinates([1, 2, 3, 4], 0, 4, 2); + var coordinates = ol.geom.flat.inflateCoordinates([1, 2, 3, 4], 0, 4, 2); expect(coordinates).to.eql([[1, 2], [3, 4]]); }); }); - describe('ol.geom.inflateCoordinatess', function() { + describe('ol.geom.flat.inflateCoordinatess', function() { it('inflates arrays of coordinates', function() { - var coordinatess = ol.geom.inflateCoordinatess([1, 2, 3, 4, 5, 6, 7, 8], - 0, [4, 8], 2); + var coordinatess = ol.geom.flat.inflateCoordinatess( + [1, 2, 3, 4, 5, 6, 7, 8], 0, [4, 8], 2); expect(coordinatess).to.eql([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]); }); From 1757a6290547388118ca33599107a1d91d7d145d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 12:31:31 +0100 Subject: [PATCH 220/919] Move transformGeometry2D back into ol.geom --- src/ol/geom/flatgeom.js | 15 --------------- src/ol/geom/geometry.js | 15 +++++++++++++++ src/ol/render/canvas/canvasimmediate.js | 11 +++++------ 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 14fb98b3a6..b146aa31a7 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -2,7 +2,6 @@ goog.provide('ol.geom.flat'); goog.require('goog.asserts'); goog.require('goog.vec.Mat4'); -goog.require('ol.geom.Geometry'); /** @@ -173,17 +172,3 @@ ol.geom.flat.transform2D = } return dest; }; - - -/** - * @param {ol.geom.Geometry} geometry Geometry. - * @param {goog.vec.Mat4.AnyType} transform Transform. - * @param {Array.=} opt_dest Destination. - * @return {Array.} Transformed flat coordinates. - */ -ol.geom.flat.transformGeometry2D = function(geometry, transform, opt_dest) { - var flatCoordinates = geometry.getFlatCoordinates(); - var stride = geometry.getStride(); - return ol.geom.flat.transform2D( - flatCoordinates, stride, transform, opt_dest); -}; diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 7337ea84ca..385f448591 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -7,6 +7,7 @@ goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.functions'); goog.require('ol.extent'); +goog.require('ol.geom.flat'); /** @@ -435,3 +436,17 @@ ol.geom.reverseFlatCoordinates = end -= stride; } }; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {Array.=} opt_dest Destination. + * @return {Array.} Transformed flat coordinates. + */ +ol.geom.transformGeometry2D = function(geometry, transform, opt_dest) { + var flatCoordinates = geometry.getFlatCoordinates(); + var stride = geometry.getStride(); + return ol.geom.flat.transform2D( + flatCoordinates, stride, transform, opt_dest); +}; diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index ab7c968723..ed498a2eed 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -5,7 +5,6 @@ goog.provide('ol.render.canvas.Immediate'); goog.require('goog.asserts'); goog.require('ol.extent'); -goog.require('ol.geom.flat'); goog.require('ol.render.IRender'); goog.require('ol.style.fill'); goog.require('ol.style.stroke'); @@ -71,7 +70,7 @@ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { goog.isNull(imageStyle)) { return; } - var pixelCoordinates = ol.geom.flat.transformGeometry2D( + var pixelCoordinates = ol.geom.transformGeometry2D( geometry, this.transform_, this.pixelCoordinates_); var i, ii; for (i = 0, ii = pixelCoordinates.length; i < ii; i += 2) { @@ -169,7 +168,7 @@ ol.render.canvas.Immediate.prototype.drawLineStringGeometry = return; } var context = this.context_; - var pixelCoordinates = ol.geom.flat.transformGeometry2D( + var pixelCoordinates = ol.geom.transformGeometry2D( lineStringGeometry, this.transform_, this.pixelCoordinates_); context.beginPath(); this.moveToLineTo_(pixelCoordinates, 0, pixelCoordinates.length, false); @@ -188,7 +187,7 @@ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = return; } var context = this.context_; - var pixelCoordinates = ol.geom.flat.transformGeometry2D( + var pixelCoordinates = ol.geom.transformGeometry2D( multiLineStringGeometry, this.transform_, this.pixelCoordinates_); context.beginPath(); var ends = multiLineStringGeometry.getEnds(); @@ -214,7 +213,7 @@ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = return; } var context = this.context_; - var pixelCoordinates = ol.geom.flat.transformGeometry2D( + var pixelCoordinates = ol.geom.transformGeometry2D( polygonGeometry, this.transform_, this.pixelCoordinates_); var ends = polygonGeometry.getEnds(); context.beginPath(); @@ -241,7 +240,7 @@ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = return; } var context = this.context_; - var pixelCoordinates = ol.geom.flat.transformGeometry2D( + var pixelCoordinates = ol.geom.transformGeometry2D( multiPolygonGeometry, this.transform_, this.pixelCoordinates_); var endss = multiPolygonGeometry.getEndss(); var offset = 0; From 48d3402044fb71c1683ea470fd4ddf3873232ef7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 12:32:16 +0100 Subject: [PATCH 221/919] Move reverseFlatCoordinates into ol.geom.flat --- src/ol/geom/flatgeom.js | 21 +++++++++++++++++++++ src/ol/geom/geometry.js | 23 +---------------------- test/spec/ol/geom/geom.test.js | 32 ++++++++++++++++---------------- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index b146aa31a7..678298c3b4 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -143,6 +143,27 @@ ol.geom.flat.inflateCoordinatesss = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + */ +ol.geom.flat.reverseCoordinates = + function(flatCoordinates, offset, end, stride) { + while (offset < end - stride) { + var i; + for (i = 0; i < stride; ++i) { + var tmp = flatCoordinates[offset + i]; + flatCoordinates[offset + i] = flatCoordinates[end - stride + i]; + flatCoordinates[end - stride + i] = tmp; + } + offset += stride; + end -= stride; + } +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} stride Stride. diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 385f448591..c627b7a925 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -391,7 +391,7 @@ ol.geom.orientFlatLinearRings = flatCoordinates, offset, end, stride); var reverse = i === 0 ? !isClockwise : isClockwise; if (reverse) { - ol.geom.reverseFlatCoordinates(flatCoordinates, offset, end, stride); + ol.geom.flat.reverseCoordinates(flatCoordinates, offset, end, stride); } offset = end; } @@ -417,27 +417,6 @@ ol.geom.orientFlatLinearRingss = }; -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {number} end End. - * @param {number} stride Stride. - */ -ol.geom.reverseFlatCoordinates = - function(flatCoordinates, offset, end, stride) { - while (offset < end - stride) { - var i; - for (i = 0; i < stride; ++i) { - var tmp = flatCoordinates[offset + i]; - flatCoordinates[offset + i] = flatCoordinates[end - stride + i]; - flatCoordinates[end - stride + i] = tmp; - } - offset += stride; - end -= stride; - } -}; - - /** * @param {ol.geom.Geometry} geometry Geometry. * @param {goog.vec.Mat4.AnyType} transform Transform. diff --git a/test/spec/ol/geom/geom.test.js b/test/spec/ol/geom/geom.test.js index 987169e380..d957135e8a 100644 --- a/test/spec/ol/geom/geom.test.js +++ b/test/spec/ol/geom/geom.test.js @@ -72,41 +72,41 @@ describe('ol.geom', function() { }); - describe('ol.geom.reverseFlatCoordinates', function() { + describe('ol.geom.flat.reverseCoordinates', function() { describe('with a stride of 2', function() { it('can reverse empty flat coordinates', function() { var flatCoordinates = []; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 2); expect(flatCoordinates).to.be.empty(); }); it('can reverse one flat coordinates', function() { var flatCoordinates = [1, 2]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 2); expect(flatCoordinates).to.eql([1, 2]); }); it('can reverse two flat coordinates', function() { var flatCoordinates = [1, 2, 3, 4]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 2); expect(flatCoordinates).to.eql([3, 4, 1, 2]); }); it('can reverse three flat coordinates', function() { var flatCoordinates = [1, 2, 3, 4, 5, 6]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 2); expect(flatCoordinates).to.eql([5, 6, 3, 4, 1, 2]); }); it('can reverse four flat coordinates', function() { var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 2); expect(flatCoordinates).to.eql([7, 8, 5, 6, 3, 4, 1, 2]); }); @@ -117,35 +117,35 @@ describe('ol.geom', function() { it('can reverse empty flat coordinates', function() { var flatCoordinates = []; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 3); expect(flatCoordinates).to.be.empty(); }); it('can reverse one flat coordinates', function() { var flatCoordinates = [1, 2, 3]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 3); expect(flatCoordinates).to.eql([1, 2, 3]); }); it('can reverse two flat coordinates', function() { var flatCoordinates = [1, 2, 3, 4, 5, 6]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 3); expect(flatCoordinates).to.eql([4, 5, 6, 1, 2, 3]); }); it('can reverse three flat coordinates', function() { var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8, 9]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 3); expect(flatCoordinates).to.eql([7, 8, 9, 4, 5, 6, 1, 2, 3]); }); it('can reverse four flat coordinates', function() { var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 3); expect(flatCoordinates).to.eql([10, 11, 12, 7, 8, 9, 4, 5, 6, 1, 2, 3]); }); @@ -156,28 +156,28 @@ describe('ol.geom', function() { it('can reverse empty flat coordinates', function() { var flatCoordinates = []; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 4); expect(flatCoordinates).to.be.empty(); }); it('can reverse one flat coordinates', function() { var flatCoordinates = [1, 2, 3, 4]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 4); expect(flatCoordinates).to.eql([1, 2, 3, 4]); }); it('can reverse two flat coordinates', function() { var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 4); expect(flatCoordinates).to.eql([5, 6, 7, 8, 1, 2, 3, 4]); }); it('can reverse three flat coordinates', function() { var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 4); expect(flatCoordinates).to.eql([9, 10, 11, 12, 5, 6, 7, 8, 1, 2, 3, 4]); }); @@ -185,7 +185,7 @@ describe('ol.geom', function() { it('can reverse four flat coordinates', function() { var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]; - ol.geom.reverseFlatCoordinates( + ol.geom.flat.reverseCoordinates( flatCoordinates, 0, flatCoordinates.length, 4); expect(flatCoordinates).to.eql( [13, 14, 15, 16, 9, 10, 11, 12, 5, 6, 7, 8, 1, 2, 3, 4]); From ca639a057fc1b365cc34c3e08ebfd7db51921e5f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 12:34:16 +0100 Subject: [PATCH 222/919] Rename ol.test.geom to ol.test.geom.flat --- test/spec/ol/geom/{geom.test.js => flatgeom.test.js} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename test/spec/ol/geom/{geom.test.js => flatgeom.test.js} (98%) diff --git a/test/spec/ol/geom/geom.test.js b/test/spec/ol/geom/flatgeom.test.js similarity index 98% rename from test/spec/ol/geom/geom.test.js rename to test/spec/ol/geom/flatgeom.test.js index d957135e8a..d66d695b4b 100644 --- a/test/spec/ol/geom/geom.test.js +++ b/test/spec/ol/geom/flatgeom.test.js @@ -1,7 +1,7 @@ -goog.provide('ol.test.geom'); +goog.provide('ol.test.geom.flat'); -describe('ol.geom', function() { +describe('ol.geom.flat', function() { describe('ol.geom.flat.deflateCoordinates', function() { From 857c28a88b59db293e1a711ef4330e364ab83f6c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 12:40:06 +0100 Subject: [PATCH 223/919] Move ol.geom.flatLinearRingContains to ol.geom.flat --- src/ol/geom/flatgeom.js | 88 +++++++++++++++++++++++++++++++++++++ src/ol/geom/geometry.js | 88 ------------------------------------- src/ol/geom/multipolygon.js | 2 +- src/ol/geom/polygon.js | 2 +- 4 files changed, 90 insertions(+), 90 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 678298c3b4..d9bf1489d8 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -143,6 +143,94 @@ ol.geom.flat.inflateCoordinatesss = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {number} x X. + * @param {number} y Y. + * @return {boolean} Contains (x, y). + */ +ol.geom.flat.linearRingContainsXY = + function(flatCoordinates, offset, end, stride, x, y) { + // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html + var contains = false; + var xi = flatCoordinates[offset]; + var yi = flatCoordinates[offset + 1]; + for (offset += stride; offset < end; offset += stride) { + var xj = flatCoordinates[offset]; + var yj = flatCoordinates[offset + 1]; + var intersect = ((yi > y) != (yj > y)) && + (x < (xj - xi) * (y - yi) / (yj - yi) + xi); + if (intersect) { + contains = !contains; + } + xi = xj; + yi = yj; + } + return contains; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @param {number} x X. + * @param {number} y Y. + * @return {boolean} Contains (x, y). + */ +ol.geom.flat.linearRingsContainsXY = + function(flatCoordinates, offset, ends, stride, x, y) { + goog.asserts.assert(ends.length > 0); + if (ends.length === 0) { + return false; + } + if (!ol.geom.flat.linearRingContainsXY( + flatCoordinates, offset, ends[0], stride, x, y)) { + return false; + } + var i, ii; + for (i = 1, ii = ends.length; i < ii; ++i) { + if (ol.geom.flat.linearRingContainsXY( + flatCoordinates, ends[i - 1], ends[i], stride, x, y)) { + return false; + } + } + return true; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @param {number} x X. + * @param {number} y Y. + * @return {boolean} Contains (x, y). + */ +ol.geom.flat.linearRingssContainsXY = + function(flatCoordinates, offset, endss, stride, x, y) { + goog.asserts.assert(endss.length > 0); + if (endss.length === 0) { + return false; + } + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + if (ol.geom.flat.linearRingsContainsXY( + flatCoordinates, offset, ends, stride, x, y)) { + return true; + } + offset = ends[ends.length - 1]; + } + return false; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index c627b7a925..4a1f5e7946 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -262,36 +262,6 @@ ol.geom.RawMultiLineString; ol.geom.RawMultiPolygon; -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {number} end End. - * @param {number} stride Stride. - * @param {number} x X. - * @param {number} y Y. - * @return {boolean} Contains (x, y). - */ -ol.geom.flatLinearRingContainsXY = - function(flatCoordinates, offset, end, stride, x, y) { - // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html - var contains = false; - var xi = flatCoordinates[offset]; - var yi = flatCoordinates[offset + 1]; - for (offset += stride; offset < end; offset += stride) { - var xj = flatCoordinates[offset]; - var yj = flatCoordinates[offset + 1]; - var intersect = ((yi > y) != (yj > y)) && - (x < (xj - xi) * (y - yi) / (yj - yi) + xi); - if (intersect) { - contains = !contains; - } - xi = xj; - yi = yj; - } - return contains; -}; - - /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. @@ -317,64 +287,6 @@ ol.geom.flatLinearRingIsClockwise = }; -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.} ends Ends. - * @param {number} stride Stride. - * @param {number} x X. - * @param {number} y Y. - * @return {boolean} Contains (x, y). - */ -ol.geom.flatLinearRingsContainsXY = - function(flatCoordinates, offset, ends, stride, x, y) { - goog.asserts.assert(ends.length > 0); - if (ends.length === 0) { - return false; - } - if (!ol.geom.flatLinearRingContainsXY( - flatCoordinates, offset, ends[0], stride, x, y)) { - return false; - } - var i, ii; - for (i = 1, ii = ends.length; i < ii; ++i) { - if (ol.geom.flatLinearRingContainsXY( - flatCoordinates, ends[i - 1], ends[i], stride, x, y)) { - return false; - } - } - return true; -}; - - -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.>} endss Endss. - * @param {number} stride Stride. - * @param {number} x X. - * @param {number} y Y. - * @return {boolean} Contains (x, y). - */ -ol.geom.flatLinearRingssContainsXY = - function(flatCoordinates, offset, endss, stride, x, y) { - goog.asserts.assert(endss.length > 0); - if (endss.length === 0) { - return false; - } - var i, ii; - for (i = 0, ii = endss.length; i < ii; ++i) { - var ends = endss[i]; - if (ol.geom.flatLinearRingsContainsXY( - flatCoordinates, offset, ends, stride, x, y)) { - return true; - } - offset = ends[ends.length - 1]; - } - return false; -}; - - /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index c9e5a68f84..218d4b8983 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -31,7 +31,7 @@ goog.inherits(ol.geom.MultiPolygon, ol.geom.Geometry); * @inheritDoc */ ol.geom.MultiPolygon.prototype.containsXY = function(x, y) { - return ol.geom.flatLinearRingssContainsXY( + return ol.geom.flat.linearRingssContainsXY( this.flatCoordinates, 0, this.endss_, this.stride, x, y); }; diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 12ca15dcf2..2efb9e9f34 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -31,7 +31,7 @@ goog.inherits(ol.geom.Polygon, ol.geom.Geometry); * @inheritDoc */ ol.geom.Polygon.prototype.containsXY = function(x, y) { - return ol.geom.flatLinearRingsContainsXY( + return ol.geom.flat.linearRingsContainsXY( this.flatCoordinates, 0, this.ends_, this.stride, x, y); }; From 0aa0cfd54b65b0e94b398c308fe90a478c7da45a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 12:44:13 +0100 Subject: [PATCH 224/919] Move ol.geom.flatLinearRingIsClockwise into ol.geom.flat --- src/ol/geom/flatgeom.js | 25 +++++++++++++++++++++++++ src/ol/geom/geometry.js | 27 +-------------------------- test/spec/ol/geom/flatgeom.test.js | 6 +++--- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index d9bf1489d8..de64c9aab4 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -173,6 +173,31 @@ ol.geom.flat.linearRingContainsXY = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @return {boolean} Is clockwise. + */ +ol.geom.flat.linearRingIsClockwise = + function(flatCoordinates, offset, end, stride) { + // http://tinyurl.com/clockwise-method + // https://github.com/OSGeo/gdal/blob/trunk/gdal/ogr/ogrlinearring.cpp + var edge = 0; + var x1 = flatCoordinates[end - stride]; + var y1 = flatCoordinates[end - stride + 1]; + for (; offset < end; offset += stride) { + var x2 = flatCoordinates[offset]; + var y2 = flatCoordinates[offset + 1]; + edge += (x2 - x1) * (y2 + y1); + x1 = x2; + y1 = y2; + } + return edge > 0; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 4a1f5e7946..6b08a90098 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -262,31 +262,6 @@ ol.geom.RawMultiLineString; ol.geom.RawMultiPolygon; -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {number} end End. - * @param {number} stride Stride. - * @return {boolean} Is clockwise. - */ -ol.geom.flatLinearRingIsClockwise = - function(flatCoordinates, offset, end, stride) { - // http://tinyurl.com/clockwise-method - // https://github.com/OSGeo/gdal/blob/trunk/gdal/ogr/ogrlinearring.cpp - var edge = 0; - var x1 = flatCoordinates[end - stride]; - var y1 = flatCoordinates[end - stride + 1]; - for (; offset < end; offset += stride) { - var x2 = flatCoordinates[offset]; - var y2 = flatCoordinates[offset + 1]; - edge += (x2 - x1) * (y2 + y1); - x1 = x2; - y1 = y2; - } - return edge > 0; -}; - - /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. @@ -299,7 +274,7 @@ ol.geom.orientFlatLinearRings = var i, ii; for (i = 0, ii = ends.length; i < ii; ++i) { var end = ends[i]; - var isClockwise = ol.geom.flatLinearRingIsClockwise( + var isClockwise = ol.geom.flat.linearRingIsClockwise( flatCoordinates, offset, end, stride); var reverse = i === 0 ? !isClockwise : isClockwise; if (reverse) { diff --git a/test/spec/ol/geom/flatgeom.test.js b/test/spec/ol/geom/flatgeom.test.js index d66d695b4b..04bd728c07 100644 --- a/test/spec/ol/geom/flatgeom.test.js +++ b/test/spec/ol/geom/flatgeom.test.js @@ -54,18 +54,18 @@ describe('ol.geom.flat', function() { }); - describe('ol.geom.flatLinearRingIsClockwise', function() { + describe('ol.geom.flat.linearRingIsClockwise', function() { it('identifies clockwise rings', function() { var flatCoordinates = [0, 1, 1, 4, 4, 3, 3, 0]; - var isClockwise = ol.geom.flatLinearRingIsClockwise( + var isClockwise = ol.geom.flat.linearRingIsClockwise( flatCoordinates, 0, flatCoordinates.length, 2); expect(isClockwise).to.be(true); }); it('identifies anti-clockwise rings', function() { var flatCoordinates = [2, 2, 3, 2, 3, 3, 2, 3]; - var isClockwise = ol.geom.flatLinearRingIsClockwise( + var isClockwise = ol.geom.flat.linearRingIsClockwise( flatCoordinates, 0, flatCoordinates.length, 2); expect(isClockwise).to.be(false); }); From df423fda228ba3ae2ad346746b6c5a9a9375dcb2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 12:52:45 +0100 Subject: [PATCH 225/919] Move ol.geom.orientFlatLinearRings into ol.geom.flat --- src/ol/geom/flatgeom.js | 42 +++++++++++++++++++++++++++++++++++++ src/ol/geom/geometry.js | 42 ------------------------------------- src/ol/geom/multipolygon.js | 2 +- src/ol/geom/polygon.js | 2 +- 4 files changed, 44 insertions(+), 44 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index de64c9aab4..e3365b84a2 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -256,6 +256,48 @@ ol.geom.flat.linearRingssContainsXY = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @return {number} End. + */ +ol.geom.flat.orientLinearRings = + function(flatCoordinates, offset, ends, stride) { + var i, ii; + for (i = 0, ii = ends.length; i < ii; ++i) { + var end = ends[i]; + var isClockwise = ol.geom.flat.linearRingIsClockwise( + flatCoordinates, offset, end, stride); + var reverse = i === 0 ? !isClockwise : isClockwise; + if (reverse) { + ol.geom.flat.reverseCoordinates(flatCoordinates, offset, end, stride); + } + offset = end; + } + return offset; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @return {number} End. + */ +ol.geom.flat.orientLinearRingss = + function(flatCoordinates, offset, endss, stride) { + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + offset = ol.geom.flat.orientLinearRings( + flatCoordinates, offset, endss[i], stride); + } + return offset; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 6b08a90098..025ab1ae97 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -262,48 +262,6 @@ ol.geom.RawMultiLineString; ol.geom.RawMultiPolygon; -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.} ends Ends. - * @param {number} stride Stride. - * @return {number} End. - */ -ol.geom.orientFlatLinearRings = - function(flatCoordinates, offset, ends, stride) { - var i, ii; - for (i = 0, ii = ends.length; i < ii; ++i) { - var end = ends[i]; - var isClockwise = ol.geom.flat.linearRingIsClockwise( - flatCoordinates, offset, end, stride); - var reverse = i === 0 ? !isClockwise : isClockwise; - if (reverse) { - ol.geom.flat.reverseCoordinates(flatCoordinates, offset, end, stride); - } - offset = end; - } - return offset; -}; - - -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.>} endss Endss. - * @param {number} stride Stride. - * @return {number} End. - */ -ol.geom.orientFlatLinearRingss = - function(flatCoordinates, offset, endss, stride) { - var i, ii; - for (i = 0, ii = endss.length; i < ii; ++i) { - offset = ol.geom.orientFlatLinearRings( - flatCoordinates, offset, endss[i], stride); - } - return offset; -}; - - /** * @param {ol.geom.Geometry} geometry Geometry. * @param {goog.vec.Mat4.AnyType} transform Transform. diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 218d4b8983..e2aa94c49e 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -70,7 +70,7 @@ ol.geom.MultiPolygon.prototype.setCoordinates = this.setLayout(opt_layout, coordinates, 3); ol.geom.flat.deflateCoordinatesss( this.flatCoordinates, 0, coordinates, this.stride, this.endss_); - ol.geom.orientFlatLinearRingss( + ol.geom.flat.orientLinearRingss( this.flatCoordinates, 0, this.endss_, this.stride); this.dispatchChangeEvent(); }; diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 2efb9e9f34..92fbac1b9c 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -70,7 +70,7 @@ ol.geom.Polygon.prototype.setCoordinates = this.setLayout(opt_layout, coordinates, 2); ol.geom.flat.deflateCoordinatess( this.flatCoordinates, 0, coordinates, this.stride, this.ends_); - ol.geom.orientFlatLinearRings( + ol.geom.flat.orientLinearRings( this.flatCoordinates, 0, this.ends_, this.stride); this.dispatchChangeEvent(); }; From ac2b650c9668e7e4d91590811cdd2302697415fb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 12:55:26 +0100 Subject: [PATCH 226/919] Use consistent variable names --- src/ol/geom/flatgeom.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index e3365b84a2..3b080bf50a 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -156,18 +156,18 @@ ol.geom.flat.linearRingContainsXY = function(flatCoordinates, offset, end, stride, x, y) { // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html var contains = false; - var xi = flatCoordinates[offset]; - var yi = flatCoordinates[offset + 1]; + var x1 = flatCoordinates[offset]; + var y1 = flatCoordinates[offset + 1]; for (offset += stride; offset < end; offset += stride) { - var xj = flatCoordinates[offset]; - var yj = flatCoordinates[offset + 1]; - var intersect = ((yi > y) != (yj > y)) && - (x < (xj - xi) * (y - yi) / (yj - yi) + xi); + var x2 = flatCoordinates[offset]; + var y2 = flatCoordinates[offset + 1]; + var intersect = ((y1 > y) != (y2 > y)) && + (x < (x2 - x1) * (y - y1) / (y2 - y1) + x1); if (intersect) { contains = !contains; } - xi = xj; - yi = yj; + x1 = x2; + y1 = y2; } return contains; }; From 60ef4f214e2ffda6516520f8748ce667f7cd392d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 11 Nov 2013 20:27:24 +0100 Subject: [PATCH 227/919] Rename symbol to shape --- examples/dynamic-data.js | 4 ++-- examples/geojson.js | 4 ++-- examples/rtree.js | 4 ++-- examples/synthetic-data.js | 6 +++--- src/ol/shape.exports | 1 + src/ol/{symbol.js => shape.js} | 4 ++-- src/ol/symbol.exports | 1 - 7 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 src/ol/shape.exports rename src/ol/{symbol.js => shape.js} (92%) delete mode 100644 src/ol/symbol.exports diff --git a/examples/dynamic-data.js b/examples/dynamic-data.js index f2418524d9..e0bd69193e 100644 --- a/examples/dynamic-data.js +++ b/examples/dynamic-data.js @@ -3,8 +3,8 @@ goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.geom.MultiPoint'); goog.require('ol.layer.Tile'); +goog.require('ol.shape'); goog.require('ol.source.MapQuestOpenAerial'); -goog.require('ol.symbol'); var map = new ol.Map({ @@ -24,7 +24,7 @@ map.beforeRender(function(map, frameState) { frameState.animate = true; return true; }); -var imageStyle = ol.symbol.renderCircle(5, { +var imageStyle = ol.shape.renderCircle(5, { color: 'yellow' }, { color: 'red', diff --git a/examples/geojson.js b/examples/geojson.js index 64cba64f3c..7afaca41b6 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -6,13 +6,13 @@ goog.require('ol.format.GeoJSON'); goog.require('ol.geom.LineString'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); +goog.require('ol.shape'); goog.require('ol.source.OSM'); goog.require('ol.source.Vector'); goog.require('ol.style.DefaultStyleFunction'); -goog.require('ol.symbol'); -var image = ol.symbol.renderCircle(5, null, {color: 'red', width: 1}); +var image = ol.shape.renderCircle(5, null, {color: 'red', width: 1}); var styleFunction = function(feature) { switch (feature.getGeometry().getType()) { case ol.geom.Type.POINT: diff --git a/examples/rtree.js b/examples/rtree.js index 5573518407..92d1843330 100644 --- a/examples/rtree.js +++ b/examples/rtree.js @@ -8,9 +8,9 @@ goog.require('ol.extent'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); goog.require('ol.layer.Vector'); +goog.require('ol.shape'); goog.require('ol.source.Vector'); goog.require('ol.structs.RTree'); -goog.require('ol.symbol'); /** @@ -58,7 +58,7 @@ var vectorSource = new ol.source.Vector({ }); var style = { - image: ol.symbol.renderCircle(3, null, {color: 'red', width: 1}) + image: ol.shape.renderCircle(3, null, {color: 'red', width: 1}) }; var colors = ['red', 'orange', 'yellow', 'blue', 'green', 'indigo', 'violet']; diff --git a/examples/synthetic-data.js b/examples/synthetic-data.js index 7e8dbbe524..bfc5e7e4af 100644 --- a/examples/synthetic-data.js +++ b/examples/synthetic-data.js @@ -5,8 +5,8 @@ goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.geom.Point'); goog.require('ol.layer.Vector'); +goog.require('ol.shape'); goog.require('ol.source.Vector'); -goog.require('ol.symbol'); var count = 20000; @@ -23,11 +23,11 @@ for (var i = 0; i < count; ++i) { var styles = { '10': { - image: ol.symbol.renderCircle( + image: ol.shape.renderCircle( 5, {color: '#666666'}, {color: '#bada55', width: 1}) }, '20': { - image: ol.symbol.renderCircle( + image: ol.shape.renderCircle( 10, {color: '#666666'}, {color: '#bada55', width: 1}) } }; diff --git a/src/ol/shape.exports b/src/ol/shape.exports new file mode 100644 index 0000000000..a0b23dcfaa --- /dev/null +++ b/src/ol/shape.exports @@ -0,0 +1 @@ +@exportSymbol ol.shape.renderCircle diff --git a/src/ol/symbol.js b/src/ol/shape.js similarity index 92% rename from src/ol/symbol.js rename to src/ol/shape.js index b548188352..5421ad6837 100644 --- a/src/ol/symbol.js +++ b/src/ol/shape.js @@ -2,7 +2,7 @@ // FIXME move to ol.render? // FIXME find a sensible caching strategy -goog.provide('ol.symbol'); +goog.provide('ol.shape'); goog.require('goog.dom'); goog.require('goog.dom.TagName'); @@ -15,7 +15,7 @@ goog.require('ol.style'); * @param {?ol.style.Stroke} strokeStyle Stroke style. * @return {ol.style.Image} Image. */ -ol.symbol.renderCircle = function(radius, fillStyle, strokeStyle) { +ol.shape.renderCircle = function(radius, fillStyle, strokeStyle) { var canvas = /** @type {HTMLCanvasElement} */ (goog.dom.createElement(goog.dom.TagName.CANVAS)); diff --git a/src/ol/symbol.exports b/src/ol/symbol.exports deleted file mode 100644 index 37698eef78..0000000000 --- a/src/ol/symbol.exports +++ /dev/null @@ -1 +0,0 @@ -@exportSymbol ol.symbol.renderCircle From c0e1c7051bc32ea61c77f46d15bfd317609e4a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 12 Nov 2013 10:48:25 +0100 Subject: [PATCH 228/919] Add display-frame-rate.js script --- resources/display-frame-rate.js | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 resources/display-frame-rate.js diff --git a/resources/display-frame-rate.js b/resources/display-frame-rate.js new file mode 100644 index 0000000000..e7c93fb1ac --- /dev/null +++ b/resources/display-frame-rate.js @@ -0,0 +1,35 @@ +/** + * Display frame rate in a span element added to the navigation bar. + */ +(function() { + + var container = document.querySelector('.navbar .navbar-inner .container'); + if (!container) { + return; + } + + var fpsElement = document.createElement('span'); + fpsElement.style.color = 'white'; + + container.appendChild(fpsElement); + + var frameCount = 0; + var begin = +new Date(); + + window.setInterval(function() { + var end = +new Date(); + var milliseconds = end - begin; + var seconds = milliseconds / 1000.0; + var frameRate = frameCount / seconds; + fpsElement.innerHTML = frameRate.toPrecision(4) + ' fps'; + frameCount = 0; + begin = end; + }, 500); + + var go = function() { + frameCount++; + window.requestAnimationFrame(go); + }; + go(); + +})(); From 946234ba27b6e8ba7a03dd4df71a64c4e38b5078 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 14:13:28 +0100 Subject: [PATCH 229/919] Rename iimmediate.js to irender.js --- src/ol/render/{iimmediate.js => irender.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/ol/render/{iimmediate.js => irender.js} (100%) diff --git a/src/ol/render/iimmediate.js b/src/ol/render/irender.js similarity index 100% rename from src/ol/render/iimmediate.js rename to src/ol/render/irender.js From 77b7abb96abce9cb640e7b479be56d8fe5dc6204 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 12 Nov 2013 15:42:23 +0100 Subject: [PATCH 230/919] Don't rely on goog.net.XhrIo in vector-layer example --- examples/vector-layer.js | 47 +++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index c2a906cab4..9e373382b2 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -1,8 +1,6 @@ // NOCOMPILE // FIXME don't rely on goog.* functions -goog.require('goog.asserts'); goog.require('goog.functions'); -goog.require('goog.net.XhrIo'); goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); @@ -29,31 +27,26 @@ var map = new ol.Map({ var vectorSource = new ol.source.Vector(); -goog.net.XhrIo.send('data/countries.geojson', function(event) { - var xhrIo = /** @type {goog.net.XhrIo} */ (event.target); - if (xhrIo.isSuccess()) { - var format = new ol.format.GeoJSON(); - var object = xhrIo.getResponseJson(); - goog.asserts.assert(goog.isDefAndNotNull(object)); - var transformFn = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); - format.readObject(object, function(feature) { - var geometry = feature.getGeometry(); - geometry.transform(transformFn); - feature.setGeometry(geometry); - vectorSource.addFeature(feature); - }); - map.getLayers().push(new ol.layer.Vector({ - source: vectorSource, - styleFunction: goog.functions.constant({ - fill: { - color: 'rgba(255, 255, 255, 0.6)' - }, - stroke: { - color: '#319FD3' - } - }) - })); - } +$.get('data/countries.geojson', function(data) { + var format = new ol.format.GeoJSON(); + var transformFn = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); + format.readString(data, function(feature) { + var geometry = feature.getGeometry(); + geometry.transform(transformFn); + feature.setGeometry(geometry); + vectorSource.addFeature(feature); + }); + map.getLayers().push(new ol.layer.Vector({ + source: vectorSource, + styleFunction: goog.functions.constant({ + fill: { + color: 'rgba(255, 255, 255, 0.6)' + }, + stroke: { + color: '#319FD3' + } + }) + })); }); var displayFeatureInfo = function(pixel) { From fc2fece87245999d068771e66827bf5f51596c20 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 17:15:34 +0100 Subject: [PATCH 231/919] Don't rely on goog.functions in vector-layer example --- examples/vector-layer.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 9e373382b2..2161837f58 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -1,6 +1,4 @@ // NOCOMPILE -// FIXME don't rely on goog.* functions -goog.require('goog.functions'); goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); @@ -26,6 +24,15 @@ var map = new ol.Map({ }); var vectorSource = new ol.source.Vector(); +var style = { + fill: { + color: 'rgba(255, 255, 255, 0.6)' + }, + stroke: { + color: '#319FD3', + width: 1 + } +}; $.get('data/countries.geojson', function(data) { var format = new ol.format.GeoJSON(); @@ -38,14 +45,9 @@ $.get('data/countries.geojson', function(data) { }); map.getLayers().push(new ol.layer.Vector({ source: vectorSource, - styleFunction: goog.functions.constant({ - fill: { - color: 'rgba(255, 255, 255, 0.6)' - }, - stroke: { - color: '#319FD3' - } - }) + styleFunction: function(feature) { + return style; + } })); }); From c47dee7b8c906f86f8f35cc9c5d7682dcf7c62cf Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 17:17:18 +0100 Subject: [PATCH 232/919] Allow fill, image, and stroke in ol.style.Style to be undefined --- src/ol/render/canvas/canvasimmediate.js | 36 +++++++------ src/ol/render/canvas/canvasreplay.js | 67 +++++++++++++++++-------- src/ol/render/irender.js | 6 +-- src/ol/shape.js | 4 +- src/ol/style.js | 55 +++++++++++++------- 5 files changed, 110 insertions(+), 58 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index ed498a2eed..292604f106 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -40,9 +40,9 @@ ol.render.canvas.Immediate = function(context, extent, transform) { /** * @private - * @type {{fillStyle: ?ol.style.Fill, - * imageStyle: ?ol.style.Image, - * strokeStyle: ?ol.style.Stroke}} + * @type {{fillStyle: ol.style.Fill, + * imageStyle: ol.style.Image, + * strokeStyle: ol.style.Stroke}} */ this.state_ = { fillStyle: null, @@ -67,7 +67,7 @@ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { var context = this.context_; var imageStyle = this.state_.imageStyle; if (!ol.extent.intersects(this.extent_, geometry.getExtent()) || - goog.isNull(imageStyle)) { + !goog.isDefAndNotNull(imageStyle)) { return; } var pixelCoordinates = ol.geom.transformGeometry2D( @@ -164,7 +164,7 @@ ol.render.canvas.Immediate.prototype.drawMultiPointGeometry = ol.render.canvas.Immediate.prototype.drawLineStringGeometry = function(lineStringGeometry) { if (!ol.extent.intersects(this.extent_, lineStringGeometry.getExtent()) || - goog.isNull(this.state_.strokeStyle)) { + !goog.isDefAndNotNull(this.state_.strokeStyle)) { return; } var context = this.context_; @@ -183,7 +183,7 @@ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { var geometryExtent = multiLineStringGeometry.getExtent(); if (!ol.extent.intersects(this.extent_, geometryExtent) || - goog.isNull(this.state_.strokeStyle)) { + !goog.isDefAndNotNull(this.state_.strokeStyle)) { return; } var context = this.context_; @@ -209,7 +209,8 @@ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = return; } var state = this.state_; - if (goog.isNull(this.fillStyle) && goog.isNull(this.strokeStyle)) { + if (!goog.isDefAndNotNull(state.fillStyle) && + !goog.isDefAndNotNull(state.strokeStyle)) { return; } var context = this.context_; @@ -218,10 +219,10 @@ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = var ends = polygonGeometry.getEnds(); context.beginPath(); this.drawRings_(pixelCoordinates, 0, ends); - if (!goog.isNull(state.fillStyle)) { + if (goog.isDefAndNotNull(state.fillStyle)) { context.fill(); } - if (!goog.isNull(state.strokeStyle)) { + if (goog.isDefAndNotNull(state.strokeStyle)) { context.stroke(); } }; @@ -236,7 +237,8 @@ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = return; } var state = this.state_; - if (goog.isNull(this.fillStyle) && goog.isNull(this.strokeStyle)) { + if (!goog.isDefAndNotNull(state.fillStyle) && + !goog.isDefAndNotNull(state.strokeStyle)) { return; } var context = this.context_; @@ -249,10 +251,10 @@ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = var ends = endss[i]; context.beginPath(); offset = this.drawRings_(pixelCoordinates, offset, ends); - if (!goog.isNull(state.fillStyle)) { + if (goog.isDefAndNotNull(state.fillStyle)) { context.fill(); } - if (!goog.isNull(state.strokeStyle)) { + if (goog.isDefAndNotNull(state.strokeStyle)) { context.stroke(); } } @@ -267,12 +269,16 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = var context = this.context_; var state = this.state_; if (!ol.style.fill.equals(state.fillStyle, fillStyle)) { - context.fillStyle = fillStyle.color; + if (goog.isDefAndNotNull(fillStyle)) { + context.fillStyle = fillStyle.color; + } state.fillStyle = fillStyle; } if (!ol.style.stroke.equals(state.strokeStyle, strokeStyle)) { - context.strokeStyle = strokeStyle.color; - context.lineWidth = strokeStyle.width; + if (goog.isDefAndNotNull(strokeStyle)) { + context.strokeStyle = strokeStyle.color; + context.lineWidth = strokeStyle.width; + } state.strokeStyle = strokeStyle; } }; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index fd6a97a154..1c31debf7f 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -227,7 +227,7 @@ ol.render.canvas.ImageReplay = function() { /** * @private - * @type {?ol.style.Image} + * @type {ol.style.Image} */ this.imageStyle_ = null; @@ -255,7 +255,9 @@ ol.render.canvas.ImageReplay.prototype.drawCoordinates_ = */ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = function(pointGeometry) { - goog.asserts.assert(!goog.isNull(this.imageStyle_)); + if (!goog.isDefAndNotNull(this.imageStyle_)) { + return; + } ol.extent.extend(this.extent_, pointGeometry.getExtent()); var flatCoordinates = pointGeometry.getFlatCoordinates(); var stride = pointGeometry.getStride(); @@ -271,7 +273,9 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = */ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = function(multiPointGeometry) { - goog.asserts.assert(!goog.isNull(this.imageStyle_)); + if (!goog.isDefAndNotNull(this.imageStyle_)) { + return; + } ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); var flatCoordinates = multiPointGeometry.getFlatCoordinates(); var stride = multiPointGeometry.getStride(); @@ -311,9 +315,9 @@ ol.render.canvas.LineStringReplay = function() { /** * @private - * @type {{currentStrokeStyle: ?ol.style.Stroke, + * @type {{currentStrokeStyle: ol.style.Stroke, * lastStroke: number, - * strokeStyle: ?ol.style.Stroke}|null} + * strokeStyle: ol.style.Stroke}|null} */ this.state_ = { currentStrokeStyle: null, @@ -336,15 +340,17 @@ goog.inherits(ol.render.canvas.LineStringReplay, ol.render.canvas.Replay); ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = function(flatCoordinates, offset, end, stride) { var state = this.state_; - if (!ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { + var strokeStyle = state.strokeStyle; + goog.asserts.assert(goog.isDefAndNotNull(strokeStyle)); + if (!ol.style.stroke.equals(state.currentStrokeStyle, strokeStyle)) { if (state.lastStroke != this.coordinates.length) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); state.lastStroke = this.coordinates.length; } this.instructions.push( - [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle], + [ol.render.canvas.Instruction.SET_STROKE_STYLE, strokeStyle], [ol.render.canvas.Instruction.BEGIN_PATH]); - state.currentStrokeStyle = state.strokeStyle; + state.currentStrokeStyle = strokeStyle; } var myEnd = this.appendFlatCoordinates( flatCoordinates, offset, end, stride, false); @@ -358,7 +364,12 @@ ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = */ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = function(lineStringGeometry) { - goog.asserts.assert(!goog.isNull(this.state_)); + var state = this.state_; + goog.asserts.assert(!goog.isNull(state)); + var strokeStyle = state.strokeStyle; + if (!goog.isDefAndNotNull(strokeStyle)) { + return; + } ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); var flatCoordinates = lineStringGeometry.getFlatCoordinates(); var stride = lineStringGeometry.getStride(); @@ -372,7 +383,12 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = */ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { - goog.asserts.assert(!goog.isNull(this.state_)); + var state = this.state_; + goog.asserts.assert(!goog.isNull(state)); + var strokeStyle = state.strokeStyle; + if (!goog.isDefAndNotNull(strokeStyle)) { + return; + } ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); var ends = multiLineStringGeometry.getEnds(); var flatCoordinates = multiLineStringGeometry.getFlatCoordinates(); @@ -423,10 +439,10 @@ ol.render.canvas.PolygonReplay = function() { /** * @private - * @type {{currentFillStyle: ?ol.style.Fill, - * currentStrokeStyle: ?ol.style.Stroke, - * fillStyle: ?ol.style.Fill, - * strokeStyle: ?ol.style.Stroke}|null} + * @type {{currentFillStyle: ol.style.Fill, + * currentStrokeStyle: ol.style.Stroke, + * fillStyle: ol.style.Fill, + * strokeStyle: ol.style.Stroke}|null} */ this.state_ = { currentFillStyle: null, @@ -463,10 +479,10 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = } // FIXME is it quicker to fill and stroke each polygon individually, // FIXME or all polygons together? - if (!goog.isNull(state.fillStyle)) { + if (goog.isDefAndNotNull(state.fillStyle)) { this.instructions.push([ol.render.canvas.Instruction.FILL]); } - if (!goog.isNull(state.strokeStyle)) { + if (goog.isDefAndNotNull(state.strokeStyle)) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); } return offset; @@ -478,7 +494,12 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = */ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = function(polygonGeometry) { - goog.asserts.assert(!goog.isNull(this.state_)); + var state = this.state_; + goog.asserts.assert(!goog.isNull(state)); + if (!goog.isDefAndNotNull(state.fillStyle) && + !goog.isDefAndNotNull(state.strokeStyle)) { + return; + } ol.extent.extend(this.extent_, polygonGeometry.getExtent()); this.setFillStrokeStyles_(); var ends = polygonGeometry.getEnds(); @@ -493,7 +514,12 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = */ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry) { - goog.asserts.assert(!goog.isNull(this.state_)); + var state = this.state_; + goog.asserts.assert(!goog.isNull(state)); + if (!goog.isDefAndNotNull(state.fillStyle) && + !goog.isDefAndNotNull(state.strokeStyle)) { + return; + } ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent()); this.setFillStrokeStyles_(); var endss = multiPolygonGeometry.getEndss(); @@ -523,7 +549,6 @@ ol.render.canvas.PolygonReplay.prototype.finish = function() { ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { goog.asserts.assert(!goog.isNull(this.state_)); - goog.asserts.assert(!goog.isNull(fillStyle) || !goog.isNull(strokeStyle)); this.state_.fillStyle = fillStyle; this.state_.strokeStyle = strokeStyle; }; @@ -534,13 +559,13 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = */ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { var state = this.state_; - if (!goog.isNull(state.fillStyle) && + if (goog.isDefAndNotNull(state.fillStyle) && !ol.style.fill.equals(state.currentFillStyle, state.fillStyle)) { this.instructions.push( [ol.render.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); state.currentFillStyle = state.fillStyle; } - if (!goog.isNull(state.strokeStyle) && + if (goog.isDefAndNotNull(state.strokeStyle) && !ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle]); diff --git a/src/ol/render/irender.js b/src/ol/render/irender.js index af549b2883..8f5ffb6ffc 100644 --- a/src/ol/render/irender.js +++ b/src/ol/render/irender.js @@ -66,8 +66,8 @@ ol.render.IRender.prototype.drawPolygonGeometry = /** - * @param {?ol.style.Fill} fillStyle Fill style. - * @param {?ol.style.Stroke} strokeStyle Stroke style. + * @param {ol.style.Fill} fillStyle Fill style. + * @param {ol.style.Stroke} strokeStyle Stroke style. */ ol.render.IRender.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { @@ -75,7 +75,7 @@ ol.render.IRender.prototype.setFillStrokeStyle = /** - * @param {?ol.style.Image} imageStyle Image style. + * @param {ol.style.Image} imageStyle Image style. */ ol.render.IRender.prototype.setImageStyle = function(imageStyle) { }; diff --git a/src/ol/shape.js b/src/ol/shape.js index 5421ad6837..7eb2d3a7c0 100644 --- a/src/ol/shape.js +++ b/src/ol/shape.js @@ -11,8 +11,8 @@ goog.require('ol.style'); /** * @param {number} radius Radius. - * @param {?ol.style.Fill} fillStyle Fill style. - * @param {?ol.style.Stroke} strokeStyle Stroke style. + * @param {ol.style.Fill} fillStyle Fill style. + * @param {ol.style.Stroke} strokeStyle Stroke style. * @return {ol.style.Image} Image. */ ol.shape.renderCircle = function(radius, fillStyle, strokeStyle) { diff --git a/src/ol/style.js b/src/ol/style.js index a449fdd1af..f08a097c4c 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -12,20 +12,30 @@ goog.require('goog.functions'); /** - * @typedef {{color: string}} + * @typedef {{color: string}|null|undefined} */ ol.style.Fill; /** - * @param {?ol.style.Fill} fillStyle1 Fill style 1. - * @param {?ol.style.Fill} fillStyle2 Fill style 2. + * @param {ol.style.Fill} fillStyle1 Fill style 1. + * @param {ol.style.Fill} fillStyle2 Fill style 2. * @return {boolean} Equals. */ ol.style.fill.equals = function(fillStyle1, fillStyle2) { - return fillStyle1 === fillStyle2 || ( - !goog.isNull(fillStyle1) && !goog.isNull(fillStyle2) && - fillStyle1.color == fillStyle2.color); + if (goog.isDefAndNotNull(fillStyle1)) { + if (goog.isDefAndNotNull(fillStyle2)) { + return fillStyle1 === fillStyle2 || fillStyle1.color == fillStyle2.color; + } else { + return false; + } + } else { + if (goog.isDefAndNotNull(fillStyle2)) { + return false; + } else { + return true; + } + } }; @@ -34,35 +44,46 @@ ol.style.fill.equals = function(fillStyle1, fillStyle2) { * image: (HTMLCanvasElement|HTMLVideoElement|Image), * rotation: number, * snapToPixel: (boolean|undefined), - * subtractViewRotation: boolean}} + * subtractViewRotation: boolean}|null|undefined} */ ol.style.Image; /** * @typedef {{color: string, - * width: number}} + * width: number}|null|undefined} */ ol.style.Stroke; /** - * @param {?ol.style.Stroke} strokeStyle1 Stroke style 1. - * @param {?ol.style.Stroke} strokeStyle2 Stroke style 2. + * @param {ol.style.Stroke} strokeStyle1 Stroke style 1. + * @param {ol.style.Stroke} strokeStyle2 Stroke style 2. * @return {boolean} Equals. */ ol.style.stroke.equals = function(strokeStyle1, strokeStyle2) { - return strokeStyle1 === strokeStyle2 || ( - !goog.isNull(strokeStyle1) && !goog.isNull(strokeStyle2) && - strokeStyle1.color == strokeStyle2.color && - strokeStyle1.width == strokeStyle2.width); + if (goog.isDefAndNotNull(strokeStyle1)) { + if (goog.isDefAndNotNull(strokeStyle2)) { + return strokeStyle1 === strokeStyle2 || + (strokeStyle1.color == strokeStyle2.color && + strokeStyle1.width == strokeStyle2.width); + } else { + return false; + } + } else { + if (goog.isDefAndNotNull(strokeStyle2)) { + return false; + } else { + return true; + } + } }; /** - * @typedef {{fill: ?ol.style.Fill, - * image: ?ol.style.Image, - * stroke: ?ol.style.Stroke, + * @typedef {{fill: ol.style.Fill, + * image: ol.style.Image, + * stroke: ol.style.Stroke, * zIndex: (number|undefined)}} */ ol.style.Style; From ba42abac6877353fe606894ccb506ad5074b415c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 17:48:01 +0100 Subject: [PATCH 233/919] Move wkt example out of the way --- {examples => old/examples}/wkt.html | 0 {examples => old/examples}/wkt.js | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {examples => old/examples}/wkt.html (100%) rename {examples => old/examples}/wkt.js (100%) diff --git a/examples/wkt.html b/old/examples/wkt.html similarity index 100% rename from examples/wkt.html rename to old/examples/wkt.html diff --git a/examples/wkt.js b/old/examples/wkt.js similarity index 100% rename from examples/wkt.js rename to old/examples/wkt.js From 8a6242be88e96ffc207321fbaff842718180e7d3 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 17:49:45 +0100 Subject: [PATCH 234/919] Don't rely on goog.isNull in GeoJSON example --- examples/geojson.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/geojson.js b/examples/geojson.js index 7afaca41b6..6f1e440f27 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -127,7 +127,7 @@ vectorLayer.on('postcompose', function(event) { var render = event.getRender(); render.drawFeature(tmpFeature, tmpStyle); var context = event.getContext(); - if (!goog.isNull(context)) { + if (context !== null) { context.clearRect(0, 0, 10, 10); } }); From 67522815eb3f88e2563489812969844d7a205e50 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 17:50:03 +0100 Subject: [PATCH 235/919] Don't rely on ol.geom.Type in GeoJSON example --- examples/geojson.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 6f1e440f27..69d074f6fc 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -15,11 +15,11 @@ goog.require('ol.style.DefaultStyleFunction'); var image = ol.shape.renderCircle(5, null, {color: 'red', width: 1}); var styleFunction = function(feature) { switch (feature.getGeometry().getType()) { - case ol.geom.Type.POINT: + case 'Point': return { image: image }; - case ol.geom.Type.POLYGON: + case 'Polygon': return { stroke: { color: 'blue', @@ -29,14 +29,14 @@ var styleFunction = function(feature) { color: 'rgba(0, 0, 255, 0.1)' } }; - case ol.geom.Type.MULTI_LINE_STRING: + case 'MultiLineString': return { stroke: { color: 'green', width: 1 } }; - case ol.geom.Type.MULTI_POLYGON: + case 'MultiPolygon': return { stroke: { color: 'yellow', From 90bc88082a57389cfd4d1997ebd75dcc8397898d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 17:50:19 +0100 Subject: [PATCH 236/919] Export ol.Map#requestRenderFrame --- src/ol/map.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/map.exports b/src/ol/map.exports index a4c9b4de63..b89e2dc927 100644 --- a/src/ol/map.exports +++ b/src/ol/map.exports @@ -16,6 +16,7 @@ @exportProperty ol.Map.prototype.removeInteraction @exportProperty ol.Map.prototype.removeLayer @exportProperty ol.Map.prototype.removeOverlay +@exportProperty ol.Map.prototype.requestRenderFrame @exportProperty ol.Map.prototype.updateSize @exportSymbol ol.RendererHint From 9a0ea25f7e4d780a4a4c15a96a210b42596cef00 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 17:53:00 +0100 Subject: [PATCH 237/919] Don't rely on ol.style.DefaultStyleFunction in GeoJSON example --- examples/geojson.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 69d074f6fc..c915a6013e 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -9,7 +9,6 @@ goog.require('ol.layer.Vector'); goog.require('ol.shape'); goog.require('ol.source.OSM'); goog.require('ol.source.Vector'); -goog.require('ol.style.DefaultStyleFunction'); var image = ol.shape.renderCircle(5, null, {color: 'red', width: 1}); @@ -47,7 +46,15 @@ var styleFunction = function(feature) { } }; default: - return ol.style.DefaultStyleFunction(feature); + return { + stroke: { + color: 'red', + width: 2 + }, + fill: { + color: 'rgba(255, 0, 0, 0.1)' + } + }; } }; From eb6dc88a9fb0845506bcc04b20383511f8e29466 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 17:57:04 +0100 Subject: [PATCH 238/919] Don't check examples that start with // NOCOMPILE --- build.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build.py b/build.py index 65bb9f1de3..4205641d67 100755 --- a/build.py +++ b/build.py @@ -710,7 +710,9 @@ def host_examples(t): @target('check-examples', 'host-examples', phony=True) def check_examples(t): - examples = ['build/hosted/%(BRANCH)s/' + e for e in EXAMPLES] + examples = ['build/hosted/%(BRANCH)s/' + e + for e in EXAMPLES + if not open(e.replace('.html', '.js')).readline().startswith('// NOCOMPILE')] all_examples = \ [e + '?mode=advanced' for e in examples] for example in all_examples: From 19758b6268625a8d91d2937c7b12672659b28dd4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 22:11:06 +0100 Subject: [PATCH 239/919] Rename variables for clarity --- src/ol/render/canvas/canvasreplay.js | 31 ++++++++++++++++------------ 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 1c31debf7f..381cf1397a 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -98,21 +98,23 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { this.coordinates, 2, transform, this.pixelCoordinates_); this.pixelCoordinates_ = pixelCoordinates; // FIXME ? var instructions = this.instructions; - var i = 0; - var end, j, jj; - for (j = 0, jj = instructions.length; j < jj; ++j) { - var instruction = instructions[j]; + var i = 0; // instruction index + var ii = instructions.length; // end of instructions + var d = 0; // data index + var dd; // end of per-instruction data + for (; i < ii; ++i) { + var instruction = instructions[i]; var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); if (type == ol.render.canvas.Instruction.BEGIN_PATH) { context.beginPath(); } else if (type == ol.render.canvas.Instruction.CLOSE_PATH) { context.closePath(); } else if (type == ol.render.canvas.Instruction.DRAW_IMAGE) { - end = /** @type {number} */ (instruction[1]); + dd = /** @type {number} */ (instruction[1]); var imageStyle = /** @type {ol.style.Image} */ (instruction[2]); - for (; i < end; i += 2) { - var x = pixelCoordinates[i] - imageStyle.anchor[0]; - var y = pixelCoordinates[i + 1] - imageStyle.anchor[1]; + for (; d < dd; d += 2) { + var x = pixelCoordinates[d] - imageStyle.anchor[0]; + var y = pixelCoordinates[d + 1] - imageStyle.anchor[1]; if (imageStyle.snapToPixel) { x = (x + 0.5) | 0; y = (y + 0.5) | 0; @@ -122,11 +124,11 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { } else if (type == ol.render.canvas.Instruction.FILL) { context.fill(); } else if (type == ol.render.canvas.Instruction.MOVE_TO_LINE_TO) { - context.moveTo(pixelCoordinates[i], pixelCoordinates[i + 1]); + context.moveTo(pixelCoordinates[d], pixelCoordinates[d + 1]); goog.asserts.assert(goog.isNumber(instruction[1])); - end = /** @type {number} */ (instruction[1]); - for (i += 2; i < end; i += 2) { - context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]); + dd = /** @type {number} */ (instruction[1]); + for (d += 2; d < dd; d += 2) { + context.lineTo(pixelCoordinates[d], pixelCoordinates[d + 1]); } } else if (type == ol.render.canvas.Instruction.SET_FILL_STYLE) { goog.asserts.assert(goog.isObject(instruction[1])); @@ -141,7 +143,10 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { context.stroke(); } } - goog.asserts.assert(i == pixelCoordinates.length); + // assert that all data were consumed + goog.asserts.assert(d == pixelCoordinates.length); + // assert that all instructions were consumed + goog.asserts.assert(i == instructions.length); }; From f9282c90e47c2060d3823af2d31ffd5b70075b22 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 12 Nov 2013 22:40:57 +0100 Subject: [PATCH 240/919] Make instructions responsible for incrementing the instruction index This paves the way for skipping features (where both the instruction and data indexes will need to be advanced). --- src/ol/render/canvas/canvasreplay.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 381cf1397a..53a756ecf3 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -102,13 +102,15 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { var ii = instructions.length; // end of instructions var d = 0; // data index var dd; // end of per-instruction data - for (; i < ii; ++i) { + while (i < ii) { var instruction = instructions[i]; var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); if (type == ol.render.canvas.Instruction.BEGIN_PATH) { context.beginPath(); + ++i; } else if (type == ol.render.canvas.Instruction.CLOSE_PATH) { context.closePath(); + ++i; } else if (type == ol.render.canvas.Instruction.DRAW_IMAGE) { dd = /** @type {number} */ (instruction[1]); var imageStyle = /** @type {ol.style.Image} */ (instruction[2]); @@ -121,8 +123,10 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { } context.drawImage(imageStyle.image, x, y); } + ++i; } else if (type == ol.render.canvas.Instruction.FILL) { context.fill(); + ++i; } else if (type == ol.render.canvas.Instruction.MOVE_TO_LINE_TO) { context.moveTo(pixelCoordinates[d], pixelCoordinates[d + 1]); goog.asserts.assert(goog.isNumber(instruction[1])); @@ -130,17 +134,24 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { for (d += 2; d < dd; d += 2) { context.lineTo(pixelCoordinates[d], pixelCoordinates[d + 1]); } + ++i; } else if (type == ol.render.canvas.Instruction.SET_FILL_STYLE) { goog.asserts.assert(goog.isObject(instruction[1])); var fillStyle = /** @type {ol.style.Fill} */ (instruction[1]); context.fillStyle = fillStyle.color; + ++i; } else if (type == ol.render.canvas.Instruction.SET_STROKE_STYLE) { goog.asserts.assert(goog.isObject(instruction[1])); var strokeStyle = /** @type {ol.style.Stroke} */ (instruction[1]); context.strokeStyle = strokeStyle.color; context.lineWidth = strokeStyle.width; + ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { context.stroke(); + ++i; + } else { + goog.asserts.fail(); + ++i; // consume the instruction anyway, to avoid an infite loop } } // assert that all data were consumed From 1acfa3578314c1d1c86525e2d712ffe8fc76728a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 11:57:08 +0100 Subject: [PATCH 241/919] Add ol.layer.Vector renderFeatureFunction --- src/ol/layer/vectorlayer.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js index 50147d0be6..5b1162e641 100644 --- a/src/ol/layer/vectorlayer.js +++ b/src/ol/layer/vectorlayer.js @@ -8,6 +8,7 @@ goog.require('ol.source.Vector'); * @enum {string} */ ol.layer.VectorProperty = { + RENDER_FEATURE_FUNCTION: 'renderFeatureFunction', STYLE_FUNCTION: 'styleFunction' }; @@ -34,6 +35,19 @@ ol.layer.Vector = function(opt_options) { goog.inherits(ol.layer.Vector, ol.layer.Layer); +/** + * @return {function(ol.Feature): boolean|undefined} Render feature function. + */ +ol.layer.Vector.prototype.getRenderFeatureFunction = function() { + return /** @type {function(ol.Feature): boolean|undefined} */ ( + this.get(ol.layer.VectorProperty.RENDER_FEATURE_FUNCTION)); +}; +goog.exportProperty( + ol.layer.Vector.prototype, + 'getRenderFeatureFunction', + ol.layer.Vector.prototype.getRenderFeatureFunction); + + /** * @return {ol.style.StyleFunction|undefined} Style function. */ @@ -55,6 +69,21 @@ ol.layer.Vector.prototype.getVectorSource = function() { }; +/** + * @param {function(ol.Feature): boolean|undefined} renderFeatureFunction + * Render feature function. + */ +ol.layer.Vector.prototype.setRenderFeatureFunction = + function(renderFeatureFunction) { + this.set( + ol.layer.VectorProperty.RENDER_FEATURE_FUNCTION, renderFeatureFunction); +}; +goog.exportProperty( + ol.layer.Vector.prototype, + 'setRenderFeatureFunction', + ol.layer.Vector.prototype.setRenderFeatureFunction); + + /** * @param {ol.style.StyleFunction|undefined} styleFunction Style function. */ From 569811c52ff2e27cab3e4be0ca2a16daf7364d9c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 01:10:50 +0100 Subject: [PATCH 242/919] Remove old replay code --- old/src/ol/replay/canvas.js | 279 -------------------------------- old/src/ol/replay/replaybase.js | 104 ------------ 2 files changed, 383 deletions(-) delete mode 100644 old/src/ol/replay/canvas.js delete mode 100644 old/src/ol/replay/replaybase.js diff --git a/old/src/ol/replay/canvas.js b/old/src/ol/replay/canvas.js deleted file mode 100644 index 2ba254126b..0000000000 --- a/old/src/ol/replay/canvas.js +++ /dev/null @@ -1,279 +0,0 @@ -goog.provide('ol.replay.Canvas'); - -goog.require('goog.array'); -goog.require('goog.asserts'); -goog.require('goog.vec.Mat4'); -goog.require('ol.extent'); -goog.require('ol.replay'); -goog.require('ol.replay.Base'); -goog.require('ol.replay.Batch'); -goog.require('ol.replay.FillStyle'); -goog.require('ol.replay.StrokeStyle'); - - -/** - * @enum {number} - */ -ol.replay.CanvasInstructionId = { - ADD_PATH: 0, - BEGIN_PATH: 1, - DRAW: 2, - SET_FILL_STYLE: 3, - SET_STROKE_STYLE: 4 -}; - - -/** - * @typedef {{close: (boolean|undefined), - * command: ol.replay.CanvasInstructionId, - * fillStyle: (ol.replay.FillStyle|undefined), - * end: (number|undefined), - * start: (number|undefined), - * strokeStyle: (ol.replay.StrokeStyle|undefined)}} - * } - */ -ol.replay.CanvasInstruction; - - - -/** - * @constructor - * @extends {ol.replay.Batch} - * @param {ol.replay.BatchType} type Type. - * FIXME make this private? - * FIXME accumulate all coordinates between style sets in a single array. - * FIXME merge adjacent setStyles. - */ -ol.replay.CanvasBatch = function(type) { - - goog.base(this); - - /** - * @private - * @type {ol.replay.BatchType} - */ - this.type_ = type; - - /** - * @private - * @type {Array.} - */ - this.instructions_ = []; - - /** - * @private - * @type {Array.} - */ - this.path_ = []; - - /** - * @private - * @type {ol.Extent} - */ - this.extent_ = ol.extent.createEmpty(); - -}; -goog.inherits(ol.replay.CanvasBatch, ol.replay.Batch); - - -/** - * @inheritDoc - */ -ol.replay.CanvasBatch.prototype.addPath = function(path, stride, close) { - goog.asserts.assert(this.type_ == ol.replay.BatchType.FILL || - this.type_ == ol.replay.BatchType.FILL_AND_STROKE || - this.type_ == ol.replay.BatchType.STROKE); - var start = this.path_.length; - if (stride == 2) { - goog.array.extend(this.path_, path); - } else { - var m = path.length; - var j = this.path_.length; - var i; - for (i = 0; i < m; i += stride) { - this.path_[j++] = path[i]; - this.path_[j++] = path[i + 1]; - ol.extent.extendXY(this.extent_, path[i], path[i + 1]); - } - } - this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ - command: ol.replay.CanvasInstructionId.ADD_PATH, - close: close, - end: this.path_.length, - start: start - })); -}; - - -/** - * @inheritDoc - */ -ol.replay.CanvasBatch.prototype.beginPath = function() { - this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ - command: ol.replay.CanvasInstructionId.BEGIN_PATH - })); -}; - - -/** - * @inheritDoc - */ -ol.replay.CanvasBatch.prototype.draw = function() { - this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ - command: ol.replay.CanvasInstructionId.DRAW - })); -}; - - -/** - * @inheritDoc - */ -ol.replay.CanvasBatch.prototype.getExtent = function() { - return this.extent_; -}; - - -/** - * @inheritDoc - */ -ol.replay.CanvasBatch.prototype.setFillStyle = function(fillStyle) { - goog.asserts.assert(this.type_ == ol.replay.BatchType.FILL || - this.type_ == ol.replay.BatchType.FILL_AND_STROKE); - this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ - command: ol.replay.CanvasInstructionId.SET_FILL_STYLE, - fillStyle: fillStyle - })); -}; - - -/** - * @inheritDoc - */ -ol.replay.CanvasBatch.prototype.setStrokeStyle = function(strokeStyle) { - goog.asserts.assert(this.type_ == ol.replay.BatchType.FILL_AND_STROKE || - this.type_ == ol.replay.BatchType.STROKE); - this.instructions_.push(/** @type {ol.replay.CanvasInstruction} */ ({ - command: ol.replay.CanvasInstructionId.SET_STROKE_STYLE, - strokeStyle: strokeStyle - })); -}; - - -/** - * @param {CanvasRenderingContext2D} context Context. - * @param {goog.vec.Mat4.AnyType} transform Transform. - */ -ol.replay.CanvasBatch.prototype.drawInternal = function(context, transform) { - var fillStyle = null; - var strokeStyle = null; - var n = this.instructions_.length; - var close, end, i, j, path, start; - // FIXME re-use destination array - // FIXME only re-transform if transform changed - var pixelPath = ol.replay.transformPath(this.path_, transform); - for (i = 0; i < n; ++i) { - var instruction = this.instructions_[i]; - switch (instruction.command) { - case ol.replay.CanvasInstructionId.ADD_PATH: - end = instruction.end; - goog.asserts.assert(goog.isDef(end)); - close = instruction.close; - goog.asserts.assert(goog.isDef(close)); - start = instruction.start; - goog.asserts.assert(goog.isDef(start)); - context.moveTo(pixelPath[start], pixelPath[start + 1]); - for (j = start + 2; j < end; j += 2) { - context.lineTo(pixelPath[j], pixelPath[j + 1]); - } - if (close) { - context.closePath(); - } - break; - case ol.replay.CanvasInstructionId.BEGIN_PATH: - context.beginPath(); - break; - case ol.replay.CanvasInstructionId.DRAW: - // FIXME handle alpha - if (!goog.isNull(fillStyle)) { - context.fillStyle = ol.replay.color(fillStyle.color); - context.fill(); - } - if (!goog.isNull(strokeStyle)) { - context.lineWidth = strokeStyle.width; - context.strokeStyle = ol.replay.color(strokeStyle.color); - context.stroke(); - } - break; - case ol.replay.CanvasInstructionId.SET_FILL_STYLE: - goog.asserts.assert(goog.isDef(instruction.fillStyle)); - fillStyle = instruction.fillStyle; - break; - case ol.replay.CanvasInstructionId.SET_STROKE_STYLE: - goog.asserts.assert(goog.isDef(instruction.strokeStyle)); - strokeStyle = instruction.strokeStyle; - break; - } - } -}; - - - -/** - * @constructor - * @extends {ol.replay.Base} - * @param {CanvasRenderingContext2D} context Context. - */ -ol.replay.Canvas = function(context) { - - goog.base(this); - - /** - * @private - * @type {CanvasRenderingContext2D} - */ - this.context_ = context; - - /** - * @private - * @type {goog.vec.Mat4.Number} - */ - this.transform_ = goog.vec.Mat4.createNumberIdentity(); - -}; -goog.inherits(ol.replay.Canvas, ol.replay.Base); - - -/** - * @inheritDoc - */ -ol.replay.Canvas.prototype.createBatch = function(batchType) { - return new ol.replay.CanvasBatch(batchType); -}; - - -/** - * @inheritDoc - */ -ol.replay.Canvas.prototype.drawBatch = function(batch) { - goog.asserts.assert(batch instanceof ol.replay.CanvasBatch); - var canvasBatch = /** @type {ol.replay.CanvasBatch} */ (batch); - canvasBatch.drawInternal(this.context_, this.transform_); -}; - - -/** - * @inheritDoc - */ -ol.replay.Canvas.prototype.setTransform = function(transform) { - goog.vec.Mat4.setFromArray(this.transform_, transform); -}; - - -/** - * @param {ol.Color} color Color. - * @return {string} Color. - */ -ol.replay.color = function(color) { - // FIXME handle alpha - return 'rgb(' + color.r + ',' + color.g + ',' + color.b + ')'; -}; diff --git a/old/src/ol/replay/replaybase.js b/old/src/ol/replay/replaybase.js deleted file mode 100644 index 419690a18e..0000000000 --- a/old/src/ol/replay/replaybase.js +++ /dev/null @@ -1,104 +0,0 @@ -goog.provide('ol.replay.Base'); -goog.provide('ol.replay.Batch'); -goog.provide('ol.replay.FillStyle'); -goog.provide('ol.replay.StrokeStyle'); - -goog.require('goog.vec.Mat4'); -goog.require('ol.Color'); -goog.require('ol.replay'); - - -/** - * @enum {number} - */ -ol.replay.BatchType = { - FILL: 0, - STROKE: 1, - FILL_AND_STROKE: 2 -}; - - -/** - * @typedef {{color: ol.Color}} - */ -ol.replay.FillStyle; - - -/** - * @typedef {{color: ol.Color, width: number}} - */ -ol.replay.StrokeStyle; - - - -/** - * @constructor - */ -ol.replay.Batch = function() { -}; - - -/** - * Draw a path. Outer rings are clockwise. Inner rings are anti-clockwise. - * @param {Array.} path Path. - * @param {number} stride Stride. - * @param {boolean} close Close. - */ -ol.replay.Batch.prototype.addPath = goog.abstractMethod; - - -/** - * FIXME empty description for jsdoc - */ -ol.replay.Batch.prototype.beginPath = goog.abstractMethod; - - -/** - * FIXME empty description for jsdoc - */ -ol.replay.Batch.prototype.draw = goog.abstractMethod; - - -/** - * @return {ol.Extent} Extent. - */ -ol.replay.Batch.prototype.getExtent = goog.abstractMethod; - - -/** - * @param {ol.replay.FillStyle} fillStyle Fill style. - */ -ol.replay.Batch.prototype.setFillStyle = goog.abstractMethod; - - -/** - * @param {ol.replay.StrokeStyle} strokeStyle Stroke style. - */ -ol.replay.Batch.prototype.setStrokeStyle = goog.abstractMethod; - - - -/** - * @constructor - */ -ol.replay.Base = function() { -}; - - -/** - * @param {ol.replay.BatchType} batchType Batch type. - * @return {ol.replay.Batch} Batch. - */ -ol.replay.Base.prototype.createBatch = goog.abstractMethod; - - -/** - * @param {ol.replay.Batch} batch Batch. - */ -ol.replay.Base.prototype.drawBatch = goog.abstractMethod; - - -/** - * @param {goog.vec.Mat4.AnyType} transform Transform. - */ -ol.replay.Base.prototype.setTransform = goog.abstractMethod; From daf4231d0066a2022ed0fd4e49c656f720a67ad7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 01:15:31 +0100 Subject: [PATCH 243/919] Remove ol.geom2 --- .../canvas/canvasvectorlayerrenderer2.js | 116 ------------------ 1 file changed, 116 deletions(-) delete mode 100644 old/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js diff --git a/old/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js b/old/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js deleted file mode 100644 index 60a5e7893b..0000000000 --- a/old/src/ol/renderer/canvas/canvasvectorlayerrenderer2.js +++ /dev/null @@ -1,116 +0,0 @@ -goog.provide('ol.renderer.canvas.VectorLayer2'); - -goog.require('goog.dom'); -goog.require('goog.vec.Mat4'); -goog.require('ol.layer.Vector'); -goog.require('ol.renderer.canvas.Layer'); -goog.require('ol.renderer.canvas.Vector'); - - - -/** - * @constructor - * @extends {ol.renderer.canvas.Layer} - * @param {ol.renderer.Map} mapRenderer Map renderer. - * @param {ol.layer.Vector} layer Vector layer. - */ -ol.renderer.canvas.VectorLayer2 = function(mapRenderer, layer) { - - goog.base(this, mapRenderer, layer); - - /** - * @private - * @type {!goog.vec.Mat4.Number} - */ - this.transform_ = goog.vec.Mat4.createNumber(); - - /** - * @private - * @type {function()} - */ - this.requestMapRenderFrame_ = goog.bind(function() { - mapRenderer.getMap().requestRenderFrame(); - }, this); - -}; -goog.inherits(ol.renderer.canvas.VectorLayer2, ol.renderer.canvas.Layer); - - -/** - * @inheritDoc - */ -ol.renderer.canvas.VectorLayer2.prototype.composeFrame = - function(frameState, layerState, context) { - - var extent = frameState.extent; - var view2DState = frameState.view2DState; - var viewCenter = view2DState.center; - var viewProjection = view2DState.projection; - var viewResolution = view2DState.resolution; - var viewRotation = view2DState.rotation; - - var vectorLayer = this.getVectorLayer(); - - var features = vectorLayer.getFeaturesObjectForExtent(extent, - viewProjection, this.requestMapRenderFrame_); - - if (goog.isNull(features)) { - return; - } - - var transform = this.transform_; - goog.vec.Mat4.makeIdentity(transform); - goog.vec.Mat4.translate(transform, - frameState.size[0] / 2, - frameState.size[1] / 2, - 0); - goog.vec.Mat4.scale(transform, - 1 / viewResolution, - -1 / viewResolution, - 1); - goog.vec.Mat4.rotateZ(transform, -viewRotation); - goog.vec.Mat4.translate(transform, - -viewCenter[0], - -viewCenter[1], - 0); - var renderer = new ol.renderer.canvas.Vector(context, transform, - this.requestMapRenderFrame_); - - var groups = vectorLayer.groupFeaturesBySymbolizerLiteral(features, - viewResolution); - - var i, ii, group, deferred; - - ii = groups.length; - for (i = 0; i < ii; ++i) { - group = groups[i]; - deferred = renderer.renderFeatures(group[0], group[1], group[2]); - if (deferred) { - break; - } - } - -}; - - -/** - * @return {ol.layer.Vector} Vector layer. - */ -ol.renderer.canvas.VectorLayer2.prototype.getVectorLayer = function() { - return /** @type {ol.layer.Vector} */ (this.getLayer()); -}; - - -/** - * @param {ol.layer.VectorEvent} event Vector layer event. - * @private - */ -ol.renderer.canvas.VectorLayer2.prototype.handleLayerChange_ = function(event) { - this.requestMapRenderFrame_(); -}; - - -/** - * @inheritDoc - */ -ol.renderer.canvas.VectorLayer2.prototype.prepareFrame = goog.nullFunction; From 2073d7858262ab78684804ce5245407946526d61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 13 Nov 2013 09:02:59 +0100 Subject: [PATCH 244/919] Fire precompose events from layers --- src/ol/render/renderevent.js | 3 +- src/ol/renderer/canvas/canvaslayerrenderer.js | 49 +++++++++++++++---- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/src/ol/render/renderevent.js b/src/ol/render/renderevent.js index 1de0f9bc18..28552986f8 100644 --- a/src/ol/render/renderevent.js +++ b/src/ol/render/renderevent.js @@ -9,7 +9,8 @@ goog.require('ol.render.IRender'); * @enum {string} */ ol.render.EventType = { - POSTCOMPOSE: 'postcompose' + POSTCOMPOSE: 'postcompose', + PRECOMPOSE: 'precompose' }; diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index 92077c1ac4..de3ef3a961 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -37,6 +37,8 @@ goog.inherits(ol.renderer.canvas.Layer, ol.renderer.Layer); ol.renderer.canvas.Layer.prototype.composeFrame = function(frameState, layerState, context) { + this.dispatchPreComposeEvent(context, frameState); + var image = this.getImage(); if (!goog.isNull(image)) { var imageTransform = this.getImageTransform(); @@ -69,6 +71,28 @@ ol.renderer.canvas.Layer.prototype.composeFrame = }; +/** + * @param {ol.render.EventType} type Event type. + * @param {CanvasRenderingContext2D} context Context. + * @param {ol.FrameState} frameState Frame state. + * @param {goog.vec.Mat4.AnyType=} opt_transform Transform. + * @private + */ +ol.renderer.canvas.Layer.prototype.dispatchComposeEvent_ = + function(type, context, frameState, opt_transform) { + var layer = this.getLayer(); + if (layer.hasListener(type)) { + var transform = goog.isDef(opt_transform) ? + opt_transform : this.getTransform(frameState); + var render = new ol.render.canvas.Immediate(context, frameState.extent, + transform); + var composeEvent = new ol.render.Event(type, layer, render, frameState, + context, null); + layer.dispatchEvent(composeEvent); + } +}; + + /** * @param {CanvasRenderingContext2D} context Context. * @param {ol.FrameState} frameState Frame state. @@ -77,16 +101,21 @@ ol.renderer.canvas.Layer.prototype.composeFrame = */ ol.renderer.canvas.Layer.prototype.dispatchPostComposeEvent = function(context, frameState, opt_transform) { - var layer = this.getLayer(); - if (layer.hasListener(ol.render.EventType.POSTCOMPOSE)) { - var transform = goog.isDef(opt_transform) ? - opt_transform : this.getTransform(frameState); - var render = new ol.render.canvas.Immediate(context, frameState.extent, - transform); - var postComposeEvent = new ol.render.Event(ol.render.EventType.POSTCOMPOSE, - layer, render, frameState, context, null); - layer.dispatchEvent(postComposeEvent); - } + this.dispatchComposeEvent_(ol.render.EventType.POSTCOMPOSE, context, + frameState, opt_transform); +}; + + +/** + * @param {CanvasRenderingContext2D} context Context. + * @param {ol.FrameState} frameState Frame state. + * @param {goog.vec.Mat4.AnyType=} opt_transform Transform. + * @protected + */ +ol.renderer.canvas.Layer.prototype.dispatchPreComposeEvent = + function(context, frameState, opt_transform) { + this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE, context, + frameState, opt_transform); }; From b698c5bf7bd7f98b76db9c13c5e8efb6bd6aac15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 13 Nov 2013 09:03:27 +0100 Subject: [PATCH 245/919] Add a layer clipping example --- examples/layer-clipping.html | 50 ++++++++++++++++++++++++++++++++++++ examples/layer-clipping.js | 43 +++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 examples/layer-clipping.html create mode 100644 examples/layer-clipping.js diff --git a/examples/layer-clipping.html b/examples/layer-clipping.html new file mode 100644 index 0000000000..9e304847a3 --- /dev/null +++ b/examples/layer-clipping.html @@ -0,0 +1,50 @@ + + + + + + + + + + + Layer clipping example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Layer clipping example

+

Layer clipping example.

+
+

See the layer-clipping.js source to see how this is done.

+
+
clipping, openstreetmap
+
+ +
+ +
+ + + + + + diff --git a/examples/layer-clipping.js b/examples/layer-clipping.js new file mode 100644 index 0000000000..452a918e10 --- /dev/null +++ b/examples/layer-clipping.js @@ -0,0 +1,43 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHints'); +goog.require('ol.View2D'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.OSM'); + +var osm = new ol.layer.Tile({ + source: new ol.source.OSM() +}); + +var map = new ol.Map({ + layers: [osm], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); + +osm.on('precompose', function(event) { + var ctx = event.getContext(); + var size = event.getFrameState().size; + ctx.save(); + ctx.translate(size[0] / 2, size[1] / 2); + ctx.scale(3, 3); + ctx.translate(-75, -80); + ctx.beginPath(); + ctx.moveTo(75, 40); + ctx.bezierCurveTo(75, 37, 70, 25, 50, 25); + ctx.bezierCurveTo(20, 25, 20, 62.5, 20, 62.5); + ctx.bezierCurveTo(20, 80, 40, 102, 75, 120); + ctx.bezierCurveTo(110, 102, 130, 80, 130, 62.5); + ctx.bezierCurveTo(130, 62.5, 130, 25, 100, 25); + ctx.bezierCurveTo(85, 25, 75, 37, 75, 40); + ctx.clip(); + ctx.setTransform(1, 0, 0, 1, 0, 0); +}); + +osm.on('postcompose', function(event) { + var ctx = event.getContext(); + ctx.restore(); +}); From d65ae078ef3c40f96c5b4c703981bddb5b0a31cd Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 13 Nov 2013 13:29:02 +0100 Subject: [PATCH 246/919] Add layer-swipe example --- examples/layer-swipe.html | 51 +++++++++++++++++++++++++++++++++++++++ examples/layer-swipe.js | 47 ++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 examples/layer-swipe.html create mode 100644 examples/layer-swipe.js diff --git a/examples/layer-swipe.html b/examples/layer-swipe.html new file mode 100644 index 0000000000..0ecb8b932f --- /dev/null +++ b/examples/layer-swipe.html @@ -0,0 +1,51 @@ + + + + + + + + + + + Layer Swipe example + + + + + +
+ +
+
+
+ +
+
+ +
+ +
+

Layer Swipe example

+

Example of a Layer swipe map.

+
+

See the layer-swipe.js source to see how this is done.

+
+
swipe, openstreetmap
+
+ +
+ +
+ + + + + + diff --git a/examples/layer-swipe.js b/examples/layer-swipe.js new file mode 100644 index 0000000000..61a6dd08f0 --- /dev/null +++ b/examples/layer-swipe.js @@ -0,0 +1,47 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.BingMaps'); +goog.require('ol.source.OSM'); + +var osm = new ol.layer.Tile({ + source: new ol.source.OSM() +}); +var bing = new ol.layer.Tile({ + source: new ol.source.BingMaps({ + key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3', + style: 'Aerial' + }) +}); + +var map = new ol.Map({ + layers: [osm, bing], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); + +var swipe = document.getElementById('swipe'); + +bing.on('precompose', function(event) { + var ctx = event.getContext(); + var width = ctx.canvas.width * (swipe.value / 100); + + ctx.save(); + ctx.beginPath(); + ctx.rect(width, 0, ctx.canvas.width - width, ctx.canvas.height); + ctx.clip(); +}); + +bing.on('postcompose', function(event) { + var ctx = event.getContext(); + ctx.restore(); +}); + +swipe.addEventListener('change', function() { + map.requestRenderFrame(); +}, false); From aabd8541c24a5d2ac01c0a536cf8074edf225909 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 13:50:28 +0100 Subject: [PATCH 247/919] Fix goog.require in layer clipping example --- examples/layer-clipping.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/layer-clipping.js b/examples/layer-clipping.js index 452a918e10..8cf5e51577 100644 --- a/examples/layer-clipping.js +++ b/examples/layer-clipping.js @@ -1,5 +1,5 @@ goog.require('ol.Map'); -goog.require('ol.RendererHints'); +goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.layer.Tile'); goog.require('ol.source.OSM'); From 9738c672d7bcce66d0abe6ffa37f418241518c7e Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 13 Nov 2013 14:24:07 +0100 Subject: [PATCH 248/919] Export ol.render.Event.prototype.getFrameState --- src/ol/render/renderevent.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/render/renderevent.exports b/src/ol/render/renderevent.exports index 3edd9681c3..0e0d2acb1b 100644 --- a/src/ol/render/renderevent.exports +++ b/src/ol/render/renderevent.exports @@ -1,3 +1,4 @@ @exportProperty ol.render.Event.prototype.getContext +@exportProperty ol.render.Event.prototype.getFrameState @exportProperty ol.render.Event.prototype.getGL @exportProperty ol.render.Event.prototype.getRender From a66a557978cdbbeba36e5d9dc40fa03b1433927e Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 13 Nov 2013 14:24:42 +0100 Subject: [PATCH 249/919] Remove NOCOMPILE flag from vector-layer example --- examples/vector-layer.js | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 2161837f58..dd785d00ab 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -1,4 +1,3 @@ -// NOCOMPILE goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); From 24ca534c54d6024dd38c3878c516202d09890813 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 14:01:27 +0100 Subject: [PATCH 250/919] Use skip instead of xit to mark failing tests --- test/spec/ol/geom/polygon.test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js index ec5d5234b6..0be8b0734a 100644 --- a/test/spec/ol/geom/polygon.test.js +++ b/test/spec/ol/geom/polygon.test.js @@ -1,4 +1,4 @@ -// FIXME why do the xit tests below fail? I don't understand! +// FIXME why do the skip tests below fail? I don't understand! goog.provide('ol.test.geom.Polygon'); @@ -283,7 +283,7 @@ describe('ol.geom.Polygon', function() { expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); }); - xit('does not contain outside coordinates', function() { + it.skip('does not contain outside coordinates', function() { expect(polygon.containsCoordinate(outsideOuter)).to.be(false); }); @@ -296,7 +296,7 @@ describe('ol.geom.Polygon', function() { expect(polygon.containsCoordinate(insideInner2)).to.be(false); }); - xit('fails in strange ways', function() { + it.skip('fails in strange ways', function() { expect(polygon.containsCoordinate([0, 0])).to.be(false); }); From 51c201acd7f9ba8647d684b015afdac862eedb99 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 14:44:15 +0100 Subject: [PATCH 251/919] Refactor ol.color to use Array. --- src/ol/color.js | 227 +++++++++++++++++++++++++++---------- test/spec/ol/color.test.js | 128 ++++++++++++--------- 2 files changed, 241 insertions(+), 114 deletions(-) diff --git a/src/ol/color.js b/src/ol/color.js index 8ebdead1db..f8bfc08b8e 100644 --- a/src/ol/color.js +++ b/src/ol/color.js @@ -1,72 +1,183 @@ -goog.provide('ol.Color'); +// ol.color is based on goog.color and goog.color.alpha +// goog.color and goog.color.alpha use a hex string representation that encodes +// each channel as a byte (a two character hex string). This causes occasional +// loss of precision and rounding errors, especially in the alpha channel. +// FIXME don't use goog.color or goog.color.alpha +// FIXME move the color matrix code from ol.renderer.webgl.Layer to here +goog.provide('ol.color'); + +goog.require('goog.asserts'); goog.require('goog.color'); +goog.require('goog.color.alpha'); goog.require('goog.math'); - - - -/** - * @constructor - * @param {number} r Red, 0 to 255. - * @param {number} g Green, 0 to 255. - * @param {number} b Blue, 0 to 255. - * @param {number} a Alpha, 0 (fully transparent) to 1 (fully opaque). - */ -ol.Color = function(r, g, b, a) { - - /** - * @type {number} - */ - this.r = goog.math.clamp(r, 0, 255); - - /** - * @type {number} - */ - this.g = goog.math.clamp(g, 0, 255); - - /** - * @type {number} - */ - this.b = goog.math.clamp(b, 0, 255); - - /** - * @type {number} - */ - this.a = goog.math.clamp(a, 0, 1); - -}; +goog.require('goog.vec.Mat4'); /** - * @param {string} str String. - * @param {number=} opt_a Alpha. - * @return {ol.Color} Color. + * A color represented as a short array [red, green, blue, alpha]. + * red, green, and blue should be integers in the range 0..255 inclusive. + * alpha should be a float in the range 0..1 inclusive. + * @typedef {Array.} */ -ol.Color.createFromString = function(str, opt_a) { - var rgb = goog.color.hexToRgb(goog.color.parse(str).hex); - var a = goog.isDef(opt_a) ? opt_a : 1; - return new ol.Color(rgb[0], rgb[1], rgb[2], a); -}; - - -/** - * @param {ol.Color} color1 Color 1. - * @param {ol.Color} color2 Color 2. - * @return {boolean} Equals. - */ -ol.Color.equals = function(color1, color2) { - return (color1.r == color2.r && - color1.g == color2.g && - color1.b == color2.b && - color1.a == color2.a); -}; +ol.Color; /** * @param {string} s String. + * @param {ol.Color=} opt_color Color. * @return {ol.Color} Color. */ -ol.Color.parse = function(s) { - var rgb = goog.color.hexToRgb(goog.color.parse(s).hex); - return new ol.Color(rgb[0], rgb[1], rgb[2], 1); +ol.color.fromString = (function() { + + // We maintain a small cache of parsed strings. To provide cheap LRU-like + // semantics, whenever the cache grows too large we simply delete an + // arbitrary 25% of the entries. + + /** + * @const + * @type {number} + */ + var MAX_CACHE_SIZE = 1024; + + /** + * @type {Object.} + */ + var cache = {}; + + /** + * @type {number} + */ + var cacheSize = 0; + + return ( + /** + * @param {string} s String. + * @param {ol.Color=} opt_color Color. + * @return {ol.Color} Color. + */ + function(s, opt_color) { + var color; + if (cache.hasOwnProperty(s)) { + color = cache[s]; + } else { + if (cacheSize >= MAX_CACHE_SIZE) { + var i = 0; + var key; + for (key in cache) { + if (i++ & 3 === 0) { + delete cache[key]; + } + } + } + color = ol.color.fromStringInternal_(s); + cache[s] = color; + ++cacheSize; + } + return ol.color.returnOrUpdate(color, opt_color); + }); + +})(); + + +/** + * @param {string} s String. + * @private + * @return {ol.Color} Color. + */ +ol.color.fromStringInternal_ = function(s) { + + /** @preserveTry */ + try { + var rgba = goog.color.alpha.parse(s); + return goog.color.alpha.hexToRgba(rgba.hex); + } catch (e) { + // goog.color.alpha.parse throws an Error on named and rgb-style colors. + var rgb = goog.color.parse(s); + var result = goog.color.hexToRgb(rgb.hex); + result.push(1); + return result; + } +}; + + +/** + * @param {ol.Color} color Color. + * @return {boolean} Is valid. + */ +ol.color.isValid = function(color) { + return 0 <= color[0] && color[0] < 256 && + 0 <= color[1] && color[1] < 256 && + 0 <= color[2] && color[2] < 256 && + 0 <= color[3] && color[3] <= 1; +}; + + +/** + * @param {ol.Color} color Color. + * @param {ol.Color=} opt_color Color. + * @return {ol.Color} Clamped color. + */ +ol.color.normalize = function(color, opt_color) { + var result = goog.isDef(opt_color) ? opt_color : []; + result[0] = goog.math.clamp((color[0] + 0.5) | 0, 0, 255); + result[1] = goog.math.clamp((color[1] + 0.5) | 0, 0, 255); + result[2] = goog.math.clamp((color[2] + 0.5) | 0, 0, 255); + result[3] = goog.math.clamp(color[3], 0, 1); + return result; +}; + + +/** + * @param {ol.Color} color Color. + * @param {ol.Color=} opt_color Color. + * @return {ol.Color} Color. + */ +ol.color.returnOrUpdate = function(color, opt_color) { + if (goog.isDef(opt_color)) { + opt_color[0] = color[0]; + opt_color[1] = color[1]; + opt_color[2] = color[2]; + opt_color[3] = color[3]; + return opt_color; + } else { + return color; + } +}; + + +/** + * @param {ol.Color} color Color. + * @return {string} String. + */ +ol.color.toString = function(color) { + var r = color[0]; + if (r != (r | 0)) { + r = (r + 0.5) | 0; + } + var g = color[1]; + if (g != (g | 0)) { + g = (g + 0.5) | 0; + } + var b = color[2]; + if (b != (b | 0)) { + b = (b + 0.5) | 0; + } + var a = color[3]; + return 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; +}; + + +/** + * @param {ol.Color} color Color. + * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {ol.Color=} opt_color Color. + * @return {ol.Color} Transformed color. + */ +ol.color.transform = function(color, transform, opt_color) { + var result = goog.isDef(opt_color) ? opt_color : []; + result = goog.vec.Mat4.multVec3(transform, color, result); + goog.asserts.assert(goog.isArray(result)); + result[3] = color[3]; + return ol.color.normalize(result, result); }; diff --git a/test/spec/ol/color.test.js b/test/spec/ol/color.test.js index f579a7f3ce..db3bfc87a9 100644 --- a/test/spec/ol/color.test.js +++ b/test/spec/ol/color.test.js @@ -1,75 +1,91 @@ -goog.provide('ol.test.Color'); +goog.provide('ol.test.color'); -describe('ol.Color', function() { - describe('constructor', function() { +describe('ol.color', function() { - it('limits r to 0-255', function() { - var c; + describe('ol.color.fromString', function() { - // legit r - c = new ol.Color(10.5, 11, 12, 0.5); - expect(c.r).to.be(10.5); - - // under r - c = new ol.Color(-10, 11, 12, 0.5); - expect(c.r).to.be(0); - - // over r - c = new ol.Color(300, 11, 12, 0.5); - expect(c.r).to.be(255); + before(function() { + sinon.spy(ol.color, 'fromStringInternal_'); }); - it('limits g to 0-255', function() { - var c; - - // legit g - c = new ol.Color(10, 11.5, 12, 0.5); - expect(c.g).to.be(11.5); - - // under g - c = new ol.Color(10, -11, 12, 0.5); - expect(c.g).to.be(0); - - // over g - c = new ol.Color(10, 275, 12, 0.5); - expect(c.g).to.be(255); + after(function() { + ol.color.fromStringInternal_.restore(); }); - it('limits b to 0-255', function() { - var c; - - // legit b - c = new ol.Color(10, 11, 12.5, 0.5); - expect(c.b).to.be(12.5); - - // under b - c = new ol.Color(10, 11, -12, 0.5); - expect(c.b).to.be(0); - - // over b - c = new ol.Color(10, 11, 500, 0.5); - expect(c.b).to.be(255); + it('can parse named colors', function() { + expect(ol.color.fromString('red')).to.eql([255, 0, 0, 1]); }); - it('limits a to 0-1', function() { - var c; + it('can parse hex colors', function() { + expect(ol.color.fromString('#00ff0080')).to.eql([0, 255, 0, 128 / 255]); + }); - // legit a - c = new ol.Color(10, 11, 12, 0.5); - expect(c.a).to.be(0.5); + it('can parse rgb colors', function() { + expect(ol.color.fromString('rgb(0, 0, 255)')).to.eql([0, 0, 255, 1]); + }); - // under a - c = new ol.Color(10, 11, 12, -0.5); - expect(c.a).to.be(0); + it('can parse rgba colors', function() { + expect(ol.color.fromString('rgba(255, 255, 0, 0.1)')).to.eql( + [255, 255, 0, 25 / 255]); + }); - // over a - c = new ol.Color(10, 11, 12, 2.5); - expect(c.a).to.be(1); + it('caches parsed values', function() { + var count = ol.color.fromStringInternal_.callCount; + ol.color.fromString('aquamarine'); + expect(ol.color.fromStringInternal_.callCount).to.be(count + 1); + ol.color.fromString('aquamarine'); + expect(ol.color.fromStringInternal_.callCount).to.be(count + 1); }); }); + describe('ol.color.isValid', function() { + + it('identifies valid colors', function() { + expect(ol.color.isValid([0, 0, 0, 0])).to.be(true); + expect(ol.color.isValid([255, 255, 255, 1])).to.be(true); + }); + + it('identifies out-of-range channels', function() { + expect(ol.color.isValid([-1, 0, 0, 0])).to.be(false); + expect(ol.color.isValid([256, 0, 0, 0])).to.be(false); + expect(ol.color.isValid([0, -1, 0, 0])).to.be(false); + expect(ol.color.isValid([0, 256, 0, 0])).to.be(false); + expect(ol.color.isValid([0, 0, -1, 0])).to.be(false); + expect(ol.color.isValid([0, 0, 256, 0])).to.be(false); + expect(ol.color.isValid([0, 0, -1, 0])).to.be(false); + expect(ol.color.isValid([0, 0, 256, 0])).to.be(false); + expect(ol.color.isValid([0, 0, 0, -1])).to.be(false); + expect(ol.color.isValid([0, 0, 0, 2])).to.be(false); + }); + + }); + + describe('ol.color.normalize', function() { + + it('clamps out-of-range channels', function() { + expect(ol.color.normalize([-1, 256, 0, 2])).to.eql([0, 255, 0, 1]); + }); + + it('rounds color channels to integers', function() { + expect(ol.color.normalize([1.2, 2.5, 3.7, 1])).to.eql([1, 3, 4, 1]); + }); + + }); + + describe('ol.color.toString', function() { + + it('converts valid colors', function() { + expect(ol.color.toString([1, 2, 3, 0.4])).to.be('rgba(1,2,3,0.4)'); + }); + + it('rounds to integers if needed', function() { + expect(ol.color.toString([1.2, 2.5, 3.7, 0.4])).to.be('rgba(1,3,4,0.4)'); + }); + + }); }); -goog.require('ol.Color'); + +goog.require('ol.color'); From e3c3170c39efc28fd1ea2f9e424ee4d1740da9ef Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 16:27:04 +0100 Subject: [PATCH 252/919] Refactor ol.color to not use goog.color --- src/ol/color.js | 92 +++++++++++++++++++++++++++++++------- test/spec/ol/color.test.js | 29 ++++++++++-- 2 files changed, 102 insertions(+), 19 deletions(-) diff --git a/src/ol/color.js b/src/ol/color.js index f8bfc08b8e..39d7edbf93 100644 --- a/src/ol/color.js +++ b/src/ol/color.js @@ -1,15 +1,16 @@ -// ol.color is based on goog.color and goog.color.alpha -// goog.color and goog.color.alpha use a hex string representation that encodes -// each channel as a byte (a two character hex string). This causes occasional -// loss of precision and rounding errors, especially in the alpha channel. -// FIXME don't use goog.color or goog.color.alpha +// We can't use goog.color or goog.color.alpha because they interally use a hex +// string representation that encodes each channel in a single byte. This +// causes occasional loss of precision and rounding errors, especially in the +// alpha channel. + // FIXME move the color matrix code from ol.renderer.webgl.Layer to here goog.provide('ol.color'); +goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.color'); -goog.require('goog.color.alpha'); +goog.require('goog.color.names'); goog.require('goog.math'); goog.require('goog.vec.Mat4'); @@ -23,6 +24,32 @@ goog.require('goog.vec.Mat4'); ol.Color; +/** + * @type {RegExp} + * @private + * This RegExp matches # followed by 3, 4, 6, or 8 hex digits. + */ +ol.color.hexColorRe_ = /^#(?:[0-9a-f]{3,4}){1,2}$/i; + + +/** + * @type {RegExp} + * @private + * @see goog.color.rgbColorRe_ + */ +ol.color.rgbColorRe_ = + /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i; + + +/** + * @type {RegExp} + * @private + * @see goog.color.alpha.rgbaColorRe_ + */ +ol.color.rgbaColorRe_ = + /^(?:rgba)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|1|0\.\d{0,10})\)$/i; + + /** * @param {string} s String. * @param {ol.Color=} opt_color Color. @@ -87,17 +114,50 @@ ol.color.fromString = (function() { */ ol.color.fromStringInternal_ = function(s) { - /** @preserveTry */ - try { - var rgba = goog.color.alpha.parse(s); - return goog.color.alpha.hexToRgba(rgba.hex); - } catch (e) { - // goog.color.alpha.parse throws an Error on named and rgb-style colors. - var rgb = goog.color.parse(s); - var result = goog.color.hexToRgb(rgb.hex); - result.push(1); - return result; + var isHex = false; + if (goog.color.names.hasOwnProperty(s)) { + s = goog.color.names[s]; + isHex = true; } + + var r, g, b, a, color, match; + if (isHex || (match = ol.color.hexColorRe_.exec(s))) { // hex + var n = s.length - 1; // number of hex digits + goog.asserts.assert(goog.array.indexOf([3, 4, 6, 8], n) != -1); + var d = n < 6 ? 1 : 2; // number of digits per channel + r = parseInt(s.substr(1 + 0 * d, d), 16); + g = parseInt(s.substr(1 + 1 * d, d), 16); + b = parseInt(s.substr(1 + 2 * d, d), 16); + if (d == 1) { + r = (r << 4) + r; + g = (g << 4) + g; + b = (b << 4) + b; + } + if ((n >> 1) & 1) { + a = 1; + } else { // has alpha channel + a = parseInt(s.substr(1 + 3 * d, d), 16) / (d == 1 ? 15 : 255); + } + color = [r, g, b, a]; + goog.asserts.assert(ol.color.isValid(color)); + return color; + } else if ((match = ol.color.rgbaColorRe_.exec(s))) { // rgba() + r = Number(match[1]); + g = Number(match[2]); + b = Number(match[3]); + a = Number(match[4]); + color = [r, g, b, a]; + return ol.color.normalize(color, color); + } else if ((match = ol.color.rgbColorRe_.exec(s))) { // rgb() + r = Number(match[1]); + g = Number(match[2]); + b = Number(match[3]); + color = [r, g, b, 1]; + return ol.color.normalize(color, color); + } else { + throw new Error(s + ' is not a valid color'); + } + }; diff --git a/test/spec/ol/color.test.js b/test/spec/ol/color.test.js index db3bfc87a9..8cb37f7397 100644 --- a/test/spec/ol/color.test.js +++ b/test/spec/ol/color.test.js @@ -17,8 +17,21 @@ describe('ol.color', function() { expect(ol.color.fromString('red')).to.eql([255, 0, 0, 1]); }); - it('can parse hex colors', function() { - expect(ol.color.fromString('#00ff0080')).to.eql([0, 255, 0, 128 / 255]); + it('can parse 3-digit hex colors', function() { + expect(ol.color.fromString('#087')).to.eql([0, 136, 119, 1]); + }); + + it('can parse 4-digit hex colors', function() { + expect(ol.color.fromString('#1234')).to.eql([17, 34, 51, 68 / 255]); + }); + + it('can parse 6-digit hex colors', function() { + expect(ol.color.fromString('#56789a')).to.eql([86, 120, 154, 1]); + }); + + it('can parse 8-digit hex colors', function() { + expect(ol.color.fromString('#bcdef012')).to.eql( + [188, 222, 240, 18 / 255]); }); it('can parse rgb colors', function() { @@ -27,7 +40,7 @@ describe('ol.color', function() { it('can parse rgba colors', function() { expect(ol.color.fromString('rgba(255, 255, 0, 0.1)')).to.eql( - [255, 255, 0, 25 / 255]); + [255, 255, 0, 0.1]); }); it('caches parsed values', function() { @@ -38,6 +51,16 @@ describe('ol.color', function() { expect(ol.color.fromStringInternal_.callCount).to.be(count + 1); }); + it('throws an error on invalid colors', function() { + var invalidColors = ['tuesday', '#1234567', 'rgb(255.0,0,0)']; + var i, ii; + for (i = 0, ii < invalidColors.length; i < ii; ++i) { + expect(function() { + ol.color.fromString(invalidColors[i]); + }).to.throwException(); + } + }); + }); describe('ol.color.isValid', function() { From e1ba9c0322f0709187a0b8c3a53f41572e1f9f54 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 17:49:13 +0100 Subject: [PATCH 253/919] Move color matrix code into ol.color.Matrix --- src/ol/{ => color}/color.js | 2 - src/ol/color/colormatrix.js | 205 ++++++++++++++++++++ src/ol/renderer/webgl/webgllayerrenderer.js | 108 +---------- src/ol/vec/mat4.js | 89 --------- 4 files changed, 209 insertions(+), 195 deletions(-) rename src/ol/{ => color}/color.js (98%) create mode 100644 src/ol/color/colormatrix.js diff --git a/src/ol/color.js b/src/ol/color/color.js similarity index 98% rename from src/ol/color.js rename to src/ol/color/color.js index 39d7edbf93..05899b7ede 100644 --- a/src/ol/color.js +++ b/src/ol/color/color.js @@ -3,8 +3,6 @@ // causes occasional loss of precision and rounding errors, especially in the // alpha channel. -// FIXME move the color matrix code from ol.renderer.webgl.Layer to here - goog.provide('ol.color'); goog.require('goog.array'); diff --git a/src/ol/color/colormatrix.js b/src/ol/color/colormatrix.js new file mode 100644 index 0000000000..ac947263fc --- /dev/null +++ b/src/ol/color/colormatrix.js @@ -0,0 +1,205 @@ +goog.provide('ol.color.Matrix'); + +goog.require('goog.vec.Mat4'); + + + +/** + * @constructor + */ +ol.color.Matrix = function() { + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.colorMatrix_ = goog.vec.Mat4.createNumber(); + + /** + * @private + * @type {number|undefined} + */ + this.brightness_ = undefined; + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.brightnessMatrix_ = goog.vec.Mat4.createNumber(); + + /** + * @private + * @type {number|undefined} + */ + this.contrast_ = undefined; + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.contrastMatrix_ = goog.vec.Mat4.createNumber(); + + /** + * @private + * @type {number|undefined} + */ + this.hue_ = undefined; + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.hueMatrix_ = goog.vec.Mat4.createNumber(); + + /** + * @private + * @type {number|undefined} + */ + this.saturation_ = undefined; + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.saturationMatrix_ = goog.vec.Mat4.createNumber(); + +}; + + +/** + * @param {!goog.vec.Mat4.Number} matrix Matrix. + * @param {number} value Brightness value. + * @return {!goog.vec.Mat4.Number} Matrix. + */ +ol.color.Matrix.makeBrightness = function(matrix, value) { + goog.vec.Mat4.makeTranslate(matrix, value, value, value); + return matrix; +}; + + +/** + * @param {!goog.vec.Mat4.Number} matrix Matrix. + * @param {number} value Contrast value. + * @return {!goog.vec.Mat4.Number} Matrix. + */ +ol.color.Matrix.makeContrast = function(matrix, value) { + goog.vec.Mat4.makeScale(matrix, value, value, value); + var translateValue = (-0.5 * value + 0.5); + goog.vec.Mat4.setColumnValues(matrix, 3, + translateValue, translateValue, translateValue, 1); + return matrix; +}; + + +/** + * @param {!goog.vec.Mat4.Number} matrix Matrix. + * @param {number} value Hue value. + * @return {!goog.vec.Mat4.Number} Matrix. + */ +ol.color.Matrix.makeHue = function(matrix, value) { + var cosHue = Math.cos(value); + var sinHue = Math.sin(value); + var v00 = 0.213 + cosHue * 0.787 - sinHue * 0.213; + var v01 = 0.715 - cosHue * 0.715 - sinHue * 0.715; + var v02 = 0.072 - cosHue * 0.072 + sinHue * 0.928; + var v03 = 0; + var v10 = 0.213 - cosHue * 0.213 + sinHue * 0.143; + var v11 = 0.715 + cosHue * 0.285 + sinHue * 0.140; + var v12 = 0.072 - cosHue * 0.072 - sinHue * 0.283; + var v13 = 0; + var v20 = 0.213 - cosHue * 0.213 - sinHue * 0.787; + var v21 = 0.715 - cosHue * 0.715 + sinHue * 0.715; + var v22 = 0.072 + cosHue * 0.928 + sinHue * 0.072; + var v23 = 0; + var v30 = 0; + var v31 = 0; + var v32 = 0; + var v33 = 1; + goog.vec.Mat4.setFromValues(matrix, + v00, v10, v20, v30, + v01, v11, v21, v31, + v02, v12, v22, v32, + v03, v13, v23, v33); + return matrix; +}; + + +/** + * @param {!goog.vec.Mat4.Number} matrix Matrix. + * @param {number} value Saturation value. + * @return {!goog.vec.Mat4.Number} Matrix. + */ +ol.color.Matrix.makeSaturation = function(matrix, value) { + var v00 = 0.213 + 0.787 * value; + var v01 = 0.715 - 0.715 * value; + var v02 = 0.072 - 0.072 * value; + var v03 = 0; + var v10 = 0.213 - 0.213 * value; + var v11 = 0.715 + 0.285 * value; + var v12 = 0.072 - 0.072 * value; + var v13 = 0; + var v20 = 0.213 - 0.213 * value; + var v21 = 0.715 - 0.715 * value; + var v22 = 0.072 + 0.928 * value; + var v23 = 0; + var v30 = 0; + var v31 = 0; + var v32 = 0; + var v33 = 1; + goog.vec.Mat4.setFromValues(matrix, + v00, v10, v20, v30, + v01, v11, v21, v31, + v02, v12, v22, v32, + v03, v13, v23, v33); + return matrix; +}; + + +/** + * @param {number|undefined} brightness Brightness. + * @param {number|undefined} contrast Contrast. + * @param {number|undefined} hue Hue. + * @param {number|undefined} saturation Saturation. + * @return {!goog.vec.Mat4.Number} Matrix. + */ +ol.color.Matrix.prototype.getMatrix = function( + brightness, contrast, hue, saturation) { + var colorMatrixDirty = false; + if (goog.isDef(brightness) && brightness !== this.brightness_) { + ol.color.Matrix.makeBrightness(this.brightnessMatrix_, brightness); + this.brightness_ = brightness; + colorMatrixDirty = true; + } + if (goog.isDef(contrast) && contrast !== this.contrast_) { + ol.color.Matrix.makeContrast(this.contrastMatrix_, contrast); + this.contrast_ = contrast; + colorMatrixDirty = true; + } + if (goog.isDef(hue) && hue !== this.hue_) { + ol.color.Matrix.makeHue(this.hueMatrix_, hue); + this.hue_ = hue; + colorMatrixDirty = true; + } + if (goog.isDef(saturation) && saturation !== this.saturation_) { + ol.color.Matrix.makeSaturation(this.saturationMatrix_, saturation); + this.saturation_ = saturation; + colorMatrixDirty = true; + } + if (colorMatrixDirty) { + var colorMatrix = this.colorMatrix_; + goog.vec.Mat4.makeIdentity(colorMatrix); + if (goog.isDef(contrast)) { + goog.vec.Mat4.multMat(colorMatrix, this.contrastMatrix_, colorMatrix); + } + if (goog.isDef(brightness)) { + goog.vec.Mat4.multMat(colorMatrix, this.brightnessMatrix_, colorMatrix); + } + if (goog.isDef(saturation)) { + goog.vec.Mat4.multMat(colorMatrix, this.saturationMatrix_, colorMatrix); + } + if (goog.isDef(hue)) { + goog.vec.Mat4.multMat(colorMatrix, this.hueMatrix_, colorMatrix); + } + } + return this.colorMatrix_; +}; diff --git a/src/ol/renderer/webgl/webgllayerrenderer.js b/src/ol/renderer/webgl/webgllayerrenderer.js index ede80c9611..2888c99f54 100644 --- a/src/ol/renderer/webgl/webgllayerrenderer.js +++ b/src/ol/renderer/webgl/webgllayerrenderer.js @@ -1,15 +1,13 @@ -// FIXME move colorMatrix_ elsewhere? - goog.provide('ol.renderer.webgl.Layer'); goog.require('goog.vec.Mat4'); goog.require('goog.webgl'); goog.require('ol.FrameState'); +goog.require('ol.color.Matrix'); goog.require('ol.layer.Layer'); goog.require('ol.renderer.Layer'); goog.require('ol.renderer.webgl.map.shader.Color'); goog.require('ol.renderer.webgl.map.shader.Default'); -goog.require('ol.vec.Mat4'); @@ -55,57 +53,9 @@ ol.renderer.webgl.Layer = function(mapRenderer, layer) { /** * @private - * @type {!goog.vec.Mat4.Float32} + * @type {ol.color.Matrix} */ - this.colorMatrix_ = goog.vec.Mat4.createFloat32(); - - /** - * @private - * @type {number|undefined} - */ - this.brightness_ = undefined; - - /** - * @private - * @type {!goog.vec.Mat4.Float32} - */ - this.brightnessMatrix_ = goog.vec.Mat4.createFloat32(); - - /** - * @private - * @type {number|undefined} - */ - this.contrast_ = undefined; - - /** - * @private - * @type {!goog.vec.Mat4.Float32} - */ - this.contrastMatrix_ = goog.vec.Mat4.createFloat32(); - - /** - * @private - * @type {number|undefined} - */ - this.hue_ = undefined; - - /** - * @private - * @type {!goog.vec.Mat4.Float32} - */ - this.hueMatrix_ = goog.vec.Mat4.createFloat32(); - - /** - * @private - * @type {number|undefined} - */ - this.saturation_ = undefined; - - /** - * @private - * @type {!goog.vec.Mat4.Float32} - */ - this.saturationMatrix_ = goog.vec.Mat4.createFloat32(); + this.colorMatrix_ = new ol.color.Matrix(); /** * @private @@ -241,7 +191,7 @@ ol.renderer.webgl.Layer.prototype.composeFrame = this.getProjectionMatrix()); if (useColor) { gl.uniformMatrix4fv(locations.u_colorMatrix, false, - this.getColorMatrix( + this.colorMatrix_.getMatrix( layerState.brightness, layerState.contrast, layerState.hue, @@ -255,43 +205,6 @@ ol.renderer.webgl.Layer.prototype.composeFrame = }; -/** - * @param {number} brightness Brightness. - * @param {number} contrast Contrast. - * @param {number} hue Hue. - * @param {number} saturation Saturation. - * @return {!goog.vec.Mat4.Float32} Color matrix. - */ -ol.renderer.webgl.Layer.prototype.getColorMatrix = function( - brightness, contrast, hue, saturation) { - var colorMatrixDirty = false; - if (brightness !== this.brightness_) { - ol.vec.Mat4.makeBrightness(this.brightnessMatrix_, brightness); - this.brightness_ = brightness; - colorMatrixDirty = true; - } - if (contrast !== this.contrast_) { - ol.vec.Mat4.makeContrast(this.contrastMatrix_, contrast); - this.contrast_ = contrast; - colorMatrixDirty = true; - } - if (hue !== this.hue_) { - ol.vec.Mat4.makeHue(this.hueMatrix_, hue); - this.hue_ = hue; - colorMatrixDirty = true; - } - if (saturation !== this.saturation_) { - ol.vec.Mat4.makeSaturation(this.saturationMatrix_, saturation); - this.saturation_ = saturation; - colorMatrixDirty = true; - } - if (colorMatrixDirty) { - this.updateColorMatrix_(); - } - return this.colorMatrix_; -}; - - /** * @protected * @return {ol.renderer.webgl.Map} MapRenderer. @@ -333,16 +246,3 @@ ol.renderer.webgl.Layer.prototype.handleWebGLContextLost = function() { this.framebuffer = null; this.framebufferDimension = undefined; }; - - -/** - * @private - */ -ol.renderer.webgl.Layer.prototype.updateColorMatrix_ = function() { - var colorMatrix = this.colorMatrix_; - goog.vec.Mat4.makeIdentity(colorMatrix); - goog.vec.Mat4.multMat(colorMatrix, this.contrastMatrix_, colorMatrix); - goog.vec.Mat4.multMat(colorMatrix, this.brightnessMatrix_, colorMatrix); - goog.vec.Mat4.multMat(colorMatrix, this.saturationMatrix_, colorMatrix); - goog.vec.Mat4.multMat(colorMatrix, this.hueMatrix_, colorMatrix); -}; diff --git a/src/ol/vec/mat4.js b/src/ol/vec/mat4.js index c6dae319a1..2893b505d0 100644 --- a/src/ol/vec/mat4.js +++ b/src/ol/vec/mat4.js @@ -3,95 +3,6 @@ goog.provide('ol.vec.Mat4'); goog.require('goog.vec.Mat4'); -/** - * @param {!goog.vec.Mat4.Float32} matrix Matrix. - * @param {number} value Brightness value. - * @return {!goog.vec.Mat4.Float32} Matrix. - */ -ol.vec.Mat4.makeBrightness = function(matrix, value) { - goog.vec.Mat4.makeTranslate(matrix, value, value, value); - return matrix; -}; - - -/** - * @param {!goog.vec.Mat4.Float32} matrix Matrix. - * @param {number} value Contrast value. - * @return {!goog.vec.Mat4.Float32} Matrix. - */ -ol.vec.Mat4.makeContrast = function(matrix, value) { - goog.vec.Mat4.makeScale(matrix, value, value, value); - var translateValue = (-0.5 * value + 0.5); - goog.vec.Mat4.setColumnValues(matrix, 3, - translateValue, translateValue, translateValue, 1); - return matrix; -}; - - -/** - * @param {!goog.vec.Mat4.Float32} matrix Matrix. - * @param {number} value Hue value. - * @return {!goog.vec.Mat4.Float32} Matrix. - */ -ol.vec.Mat4.makeHue = function(matrix, value) { - var cosHue = Math.cos(value); - var sinHue = Math.sin(value); - var v00 = 0.213 + cosHue * 0.787 - sinHue * 0.213; - var v01 = 0.715 - cosHue * 0.715 - sinHue * 0.715; - var v02 = 0.072 - cosHue * 0.072 + sinHue * 0.928; - var v03 = 0; - var v10 = 0.213 - cosHue * 0.213 + sinHue * 0.143; - var v11 = 0.715 + cosHue * 0.285 + sinHue * 0.140; - var v12 = 0.072 - cosHue * 0.072 - sinHue * 0.283; - var v13 = 0; - var v20 = 0.213 - cosHue * 0.213 - sinHue * 0.787; - var v21 = 0.715 - cosHue * 0.715 + sinHue * 0.715; - var v22 = 0.072 + cosHue * 0.928 + sinHue * 0.072; - var v23 = 0; - var v30 = 0; - var v31 = 0; - var v32 = 0; - var v33 = 1; - goog.vec.Mat4.setFromValues(matrix, - v00, v10, v20, v30, - v01, v11, v21, v31, - v02, v12, v22, v32, - v03, v13, v23, v33); - return matrix; -}; - - -/** - * @param {!goog.vec.Mat4.Float32} matrix Matrix. - * @param {number} value Saturation value. - * @return {!goog.vec.Mat4.Float32} Matrix. - */ -ol.vec.Mat4.makeSaturation = function(matrix, value) { - var v00 = 0.213 + 0.787 * value; - var v01 = 0.715 - 0.715 * value; - var v02 = 0.072 - 0.072 * value; - var v03 = 0; - var v10 = 0.213 - 0.213 * value; - var v11 = 0.715 + 0.285 * value; - var v12 = 0.072 - 0.072 * value; - var v13 = 0; - var v20 = 0.213 - 0.213 * value; - var v21 = 0.715 - 0.715 * value; - var v22 = 0.072 + 0.928 * value; - var v23 = 0; - var v30 = 0; - var v31 = 0; - var v32 = 0; - var v33 = 1; - goog.vec.Mat4.setFromValues(matrix, - v00, v10, v20, v30, - v01, v11, v21, v31, - v02, v12, v22, v32, - v03, v13, v23, v33); - return matrix; -}; - - /** * Transforms the given vector with the given matrix storing the resulting, * transformed vector into resultVec. The input vector is multiplied against the From 02604745caf239215e8825865d19c5c9ce643a0d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 21:40:54 +0100 Subject: [PATCH 254/919] Add ol.color.equals --- src/ol/color/color.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index 05899b7ede..92ef3f35dd 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -48,6 +48,18 @@ ol.color.rgbaColorRe_ = /^(?:rgba)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|1|0\.\d{0,10})\)$/i; +/** + * @param {ol.Color} color1 Color1. + * @param {ol.Color} color2 Color2. + * @return {boolean} Equals. + */ +ol.color.equals = function(color1, color2) { + return color1 === color2 || ( + color1[0] == color2[0] && color1[1] == color2[1] && + color1[2] == color2[2] && color1[3] == color2[3]); +}; + + /** * @param {string} s String. * @param {ol.Color=} opt_color Color. From d882d00c65e024ae2a1e30aa108dd97736ebe144 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 21:41:19 +0100 Subject: [PATCH 255/919] Add ol.color.asArray and ol.color.asString --- src/ol/color/color.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index 92ef3f35dd..d1f2882cbc 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -48,6 +48,34 @@ ol.color.rgbaColorRe_ = /^(?:rgba)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|1|0\.\d{0,10})\)$/i; +/** + * @param {ol.Color|string} color Color. + * @return {ol.Color} Color. + */ +ol.color.asArray = function(color) { + if (goog.isArray(color)) { + return color; + } else { + goog.asserts.assert(goog.isString(color)); + return ol.color.fromString(color); + } +}; + + +/** + * @param {ol.Color|string} color Color. + * @return {string} String. + */ +ol.color.asString = function(color) { + if (goog.isString(color)) { + return color; + } else { + goog.asserts.assert(goog.isArray(color)); + return ol.color.toString(color); + } +}; + + /** * @param {ol.Color} color1 Color1. * @param {ol.Color} color2 Color2. From 47820440ed1e0a484bd4b6288eec99d5a2ee3f83 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 21:41:38 +0100 Subject: [PATCH 256/919] Add ol.color.stringOrColorEquals --- src/ol/color/color.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index d1f2882cbc..f50c852634 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -279,3 +279,22 @@ ol.color.transform = function(color, transform, opt_color) { result[3] = color[3]; return ol.color.normalize(result, result); }; + + +/** + * @param {ol.Color|string} color1 Color2. + * @param {ol.Color|string} color2 Color2. + * @return {boolean} Equals. + */ +ol.color.stringOrColorEquals = function(color1, color2) { + if (color1 === color2 || color1 == color2) { + return true; + } + if (goog.isString(color1)) { + color1 = ol.color.fromString(color1); + } + if (goog.isString(color2)) { + color2 = ol.color.fromString(color2); + } + return ol.color.equals(color1, color2); +}; From 1ae0e845f8fdc192fe05f7f99f3ed42c26c3b4a4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 21:42:53 +0100 Subject: [PATCH 257/919] Allow colors in styles to be strings or arrays --- src/ol/render/canvas/canvasimmediate.js | 5 +++-- src/ol/render/canvas/canvasreplay.js | 5 +++-- src/ol/shape.js | 5 +++-- src/ol/style.js | 12 +++++++----- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 292604f106..4c230e9f30 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -4,6 +4,7 @@ goog.provide('ol.render.canvas.Immediate'); goog.require('goog.asserts'); +goog.require('ol.color'); goog.require('ol.extent'); goog.require('ol.render.IRender'); goog.require('ol.style.fill'); @@ -270,13 +271,13 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = var state = this.state_; if (!ol.style.fill.equals(state.fillStyle, fillStyle)) { if (goog.isDefAndNotNull(fillStyle)) { - context.fillStyle = fillStyle.color; + context.fillStyle = ol.color.asString(fillStyle.color); } state.fillStyle = fillStyle; } if (!ol.style.stroke.equals(state.strokeStyle, strokeStyle)) { if (goog.isDefAndNotNull(strokeStyle)) { - context.strokeStyle = strokeStyle.color; + context.strokeStyle = ol.color.asString(strokeStyle.color); context.lineWidth = strokeStyle.width; } state.strokeStyle = strokeStyle; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 53a756ecf3..ed9483efe3 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -6,6 +6,7 @@ goog.provide('ol.render.canvas.ReplayGroup'); goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.object'); +goog.require('ol.color'); goog.require('ol.extent'); goog.require('ol.geom.flat'); goog.require('ol.render.IRender'); @@ -138,12 +139,12 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { } else if (type == ol.render.canvas.Instruction.SET_FILL_STYLE) { goog.asserts.assert(goog.isObject(instruction[1])); var fillStyle = /** @type {ol.style.Fill} */ (instruction[1]); - context.fillStyle = fillStyle.color; + context.fillStyle = ol.color.asString(fillStyle.color); ++i; } else if (type == ol.render.canvas.Instruction.SET_STROKE_STYLE) { goog.asserts.assert(goog.isObject(instruction[1])); var strokeStyle = /** @type {ol.style.Stroke} */ (instruction[1]); - context.strokeStyle = strokeStyle.color; + context.strokeStyle = ol.color.asString(strokeStyle.color); context.lineWidth = strokeStyle.width; ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { diff --git a/src/ol/shape.js b/src/ol/shape.js index 7eb2d3a7c0..d82372341c 100644 --- a/src/ol/shape.js +++ b/src/ol/shape.js @@ -6,6 +6,7 @@ goog.provide('ol.shape'); goog.require('goog.dom'); goog.require('goog.dom.TagName'); +goog.require('ol.color'); goog.require('ol.style'); @@ -31,11 +32,11 @@ ol.shape.renderCircle = function(radius, fillStyle, strokeStyle) { context.arc(size / 2, size / 2, radius, 0, 2 * Math.PI, true); if (goog.isDefAndNotNull(fillStyle)) { - context.fillStyle = fillStyle.color; + context.fillStyle = ol.color.asString(fillStyle.color); context.fill(); } if (goog.isDefAndNotNull(strokeStyle)) { - context.strokeStyle = strokeStyle.color; + context.strokeStyle = ol.color.asString(strokeStyle.color); context.lineWidth = strokeStyle.width; context.stroke(); } diff --git a/src/ol/style.js b/src/ol/style.js index f08a097c4c..7d996417b3 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -1,4 +1,3 @@ -// FIXME decide how to handle fill opacity // FIXME decide default value for snapToPixel goog.provide('ol.style'); @@ -9,10 +8,11 @@ goog.provide('ol.style.fill'); goog.provide('ol.style.stroke'); goog.require('goog.functions'); +goog.require('ol.color'); /** - * @typedef {{color: string}|null|undefined} + * @typedef {{color: (ol.Color|string)}|null|undefined} */ ol.style.Fill; @@ -25,7 +25,8 @@ ol.style.Fill; ol.style.fill.equals = function(fillStyle1, fillStyle2) { if (goog.isDefAndNotNull(fillStyle1)) { if (goog.isDefAndNotNull(fillStyle2)) { - return fillStyle1 === fillStyle2 || fillStyle1.color == fillStyle2.color; + return fillStyle1 === fillStyle2 || + ol.color.stringOrColorEquals(fillStyle1.color, fillStyle2.color); } else { return false; } @@ -50,7 +51,7 @@ ol.style.Image; /** - * @typedef {{color: string, + * @typedef {{color: (ol.Color|string), * width: number}|null|undefined} */ ol.style.Stroke; @@ -65,7 +66,8 @@ ol.style.stroke.equals = function(strokeStyle1, strokeStyle2) { if (goog.isDefAndNotNull(strokeStyle1)) { if (goog.isDefAndNotNull(strokeStyle2)) { return strokeStyle1 === strokeStyle2 || - (strokeStyle1.color == strokeStyle2.color && + (ol.color.stringOrColorEquals(strokeStyle1.color, + strokeStyle2.color) && strokeStyle1.width == strokeStyle2.width); } else { return false; From 6493998a221a587ab9989fea1858548246637e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 13 Nov 2013 21:01:58 +0100 Subject: [PATCH 258/919] Add a synthetic-lines example --- examples/synthetic-lines.html | 109 ++++++++++++++++++++++++++++++++++ examples/synthetic-lines.js | 62 +++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 examples/synthetic-lines.html create mode 100644 examples/synthetic-lines.js diff --git a/examples/synthetic-lines.html b/examples/synthetic-lines.html new file mode 100644 index 0000000000..9ceddcef56 --- /dev/null +++ b/examples/synthetic-lines.html @@ -0,0 +1,109 @@ + + + + + + + + + + + Synthetic lines example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Synthetic lines example

+

Synthetic lines example.

+
+

See the synthetic-lines.js source to see how this is done.

+

Performance results:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Device/Browser200 lines500 lines1000 lines2000 lines5000 lines10000 lines20000 lines
Mac Book Air / Chrome 33 canary60 fps60 fps60 fps60 fps60 fps60 fps60 fps
Mac Book Air / FireFox 2560 fps60 fps60 fps60 fps60 fps22 fps6 fps
Mac Book Air / Safari 760 fps60 fps60 fps40 fps10 fpsN/AN/A
iPhone 4S / iOS 7 / Safari60 fps33 fps15 fps5 fpsN/AN/AN/A
+ +
+
vector
+
+ +
+ +
+ + + + + + + diff --git a/examples/synthetic-lines.js b/examples/synthetic-lines.js new file mode 100644 index 0000000000..1c1838433e --- /dev/null +++ b/examples/synthetic-lines.js @@ -0,0 +1,62 @@ +goog.require('ol.Feature'); +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.geom.LineString'); +goog.require('ol.layer.Vector'); +goog.require('ol.source.Vector'); + + +var count = 10000; +var features = new Array(count); + +var startPoint = [0, 0]; +var endPoint; + +var delta, deltaX, deltaY; +var signX = 1; +var signY = -1; + +// Create a square spiral. +var i; +for (i = 0; i < count; ++i) { + delta = (i + 1) * 2500; + if (i % 2 === 0) { + signY *= -1; + } else { + signX *= -1; + } + deltaX = delta * signX; + deltaY = delta * signY; + endPoint = [startPoint[0] + deltaX, startPoint[1] + deltaY]; + features[i] = new ol.Feature({ + 'geometry': new ol.geom.LineString([startPoint, endPoint]) + }); + startPoint = endPoint; +} + +var vector = new ol.layer.Vector({ + source: new ol.source.Vector({ + features: features + }), + styleFunction: function(feature) { + return { + stroke: { + color: '#666666', + width: 1 + } + }; + } +}); + +var view = new ol.View2D({ + center: [0, 0], + zoom: 0 +}); + +var map = new ol.Map({ + layers: [vector], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: view +}); From 4090b3f8b1e64e30d4c7eeee3ab93a98c902ffb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 13 Nov 2013 22:09:06 +0100 Subject: [PATCH 259/919] Phantomjs does not have requestAnimationFrame --- resources/display-frame-rate.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/display-frame-rate.js b/resources/display-frame-rate.js index e7c93fb1ac..241e0af380 100644 --- a/resources/display-frame-rate.js +++ b/resources/display-frame-rate.js @@ -8,6 +8,10 @@ return; } + if (!window.requestAnimationFrame) { + return; + } + var fpsElement = document.createElement('span'); fpsElement.style.color = 'white'; From 97745f06ace6254a185b8a696d06d2216d51475f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 23:59:16 +0100 Subject: [PATCH 260/919] Allow named colors to be disabled --- src/ol/color/color.js | 10 +++++++++- src/ol/render/dragbox.js | 2 +- src/ol/style.js | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index f50c852634..79fee12f56 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -13,6 +13,14 @@ goog.require('goog.math'); goog.require('goog.vec.Mat4'); +/** + * @define {boolean} Enable named colors. + * Enabling named colors adds about 3KB uncompressed / 1.5KB compressed to the + * final build size. + */ +ol.color.ENABLE_NAMED_COLORS = true; + + /** * A color represented as a short array [red, green, blue, alpha]. * red, green, and blue should be integers in the range 0..255 inclusive. @@ -153,7 +161,7 @@ ol.color.fromString = (function() { ol.color.fromStringInternal_ = function(s) { var isHex = false; - if (goog.color.names.hasOwnProperty(s)) { + if (ol.color.ENABLE_NAMED_COLORS && goog.color.names.hasOwnProperty(s)) { s = goog.color.names[s]; isHex = true; } diff --git a/src/ol/render/dragbox.js b/src/ol/render/dragbox.js index e2fe12bd8a..90791ff619 100644 --- a/src/ol/render/dragbox.js +++ b/src/ol/render/dragbox.js @@ -51,7 +51,7 @@ ol.render.DragBox = function(opt_style) { }, image: null, stroke: { - color: 'red', + color: '#ff0000', width: 1 }, zIndex: 0 diff --git a/src/ol/style.js b/src/ol/style.js index 7d996417b3..101946b000 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -124,7 +124,7 @@ ol.style.DEFAULT_IMAGE_STYLE = { * @type {ol.style.Stroke} */ ol.style.DEFAULT_STROKE_STYLE = { - color: 'red', + color: '#ff0000', width: 3 }; From 6796b9735eb7257cd4cbd634542648f4643755c8 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 13 Nov 2013 23:59:32 +0100 Subject: [PATCH 261/919] Add ol.color.blend --- src/ol/color/color.js | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index 79fee12f56..27ba174246 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -56,6 +56,47 @@ ol.color.rgbaColorRe_ = /^(?:rgba)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|1|0\.\d{0,10})\)$/i; +/** + * @param {ol.Color} dst Destination. + * @param {ol.Color} src Source. + * @param {ol.Color=} opt_color Color. + * @return {ol.Color} Color. + */ +ol.color.blend = function(dst, src, opt_color) { + // http://en.wikipedia.org/wiki/Alpha_compositing + // FIXME do we need to scale by 255? + var out = goog.isDef(opt_color) ? opt_color : []; + var dstA = dst[3]; + var srcA = dst[3]; + if (dstA == 1) { + out[0] = (src[0] * srcA + dst[0] * (1 - srcA) + 0.5) | 0; + out[1] = (src[1] * srcA + dst[1] * (1 - srcA) + 0.5) | 0; + out[2] = (src[2] * srcA + dst[2] * (1 - srcA) + 0.5) | 0; + out[4] = 1; + } else if (srcA === 0) { + out[0] = dst[0]; + out[1] = dst[1]; + out[2] = dst[2]; + out[3] = dstA; + } else { + var outA = srcA + dstA * (1 - srcA); + if (outA === 0) { + out[0] = 0; + out[1] = 0; + out[2] = 0; + out[3] = 0; + } else { + out[0] = ((src[0] * srcA + dst[0] * dstA * (1 - srcA)) / outA + 0.5) | 0; + out[1] = ((src[1] * srcA + dst[1] * dstA * (1 - srcA)) / outA + 0.5) | 0; + out[2] = ((src[2] * srcA + dst[2] * dstA * (1 - srcA)) / outA + 0.5) | 0; + out[3] = outA; + } + } + goog.asserts.assert(ol.color.isValid(out)); + return out; +}; + + /** * @param {ol.Color|string} color Color. * @return {ol.Color} Color. From d60bc61a720de75dc021bfee67193d91607cfff5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 14 Nov 2013 00:05:18 +0100 Subject: [PATCH 262/919] Allow ol.style.Stroke#width to be undefined --- src/ol/render/canvas/canvasimmediate.js | 2 +- src/ol/render/canvas/canvasreplay.js | 2 +- src/ol/shape.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 4c230e9f30..4a50bfa2eb 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -278,7 +278,7 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = if (!ol.style.stroke.equals(state.strokeStyle, strokeStyle)) { if (goog.isDefAndNotNull(strokeStyle)) { context.strokeStyle = ol.color.asString(strokeStyle.color); - context.lineWidth = strokeStyle.width; + context.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : 1; } state.strokeStyle = strokeStyle; } diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index ed9483efe3..c432a81df2 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -145,7 +145,7 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { goog.asserts.assert(goog.isObject(instruction[1])); var strokeStyle = /** @type {ol.style.Stroke} */ (instruction[1]); context.strokeStyle = ol.color.asString(strokeStyle.color); - context.lineWidth = strokeStyle.width; + context.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : 1; ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { context.stroke(); diff --git a/src/ol/shape.js b/src/ol/shape.js index d82372341c..446994fb99 100644 --- a/src/ol/shape.js +++ b/src/ol/shape.js @@ -37,7 +37,7 @@ ol.shape.renderCircle = function(radius, fillStyle, strokeStyle) { } if (goog.isDefAndNotNull(strokeStyle)) { context.strokeStyle = ol.color.asString(strokeStyle.color); - context.lineWidth = strokeStyle.width; + context.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : 1; context.stroke(); } From 6b61f45379652dca1808c4a1098bb1f24bce97a9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 14 Nov 2013 01:32:45 +0100 Subject: [PATCH 263/919] Remove support for 4- and 8- digit hex colors These are not supported by canvas. --- src/ol/color/color.js | 22 +++++++++++++--------- test/spec/ol/color.test.js | 9 --------- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index 27ba174246..1d8ec045e6 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -33,9 +33,17 @@ ol.Color; /** * @type {RegExp} * @private - * This RegExp matches # followed by 3, 4, 6, or 8 hex digits. + * This RegExp matches # followed by 3 or 6 hex digits. */ -ol.color.hexColorRe_ = /^#(?:[0-9a-f]{3,4}){1,2}$/i; +ol.color.hexColorRe_ = /^#(?:[0-9a-f]{3}){1,2}$/i; + + +/** + * @type {RegExp} + * @private + * This RegExp matches # followed by 4 or 8 hex digits. + */ +ol.color.hexaColorRe_ = /^#(?:[0-9a-f]{4}){1,2}$/i; /** @@ -210,8 +218,8 @@ ol.color.fromStringInternal_ = function(s) { var r, g, b, a, color, match; if (isHex || (match = ol.color.hexColorRe_.exec(s))) { // hex var n = s.length - 1; // number of hex digits - goog.asserts.assert(goog.array.indexOf([3, 4, 6, 8], n) != -1); - var d = n < 6 ? 1 : 2; // number of digits per channel + goog.asserts.assert(n == 3 || n == 6); + var d = n == 3 ? 1 : 2; // number of digits per channel r = parseInt(s.substr(1 + 0 * d, d), 16); g = parseInt(s.substr(1 + 1 * d, d), 16); b = parseInt(s.substr(1 + 2 * d, d), 16); @@ -220,11 +228,7 @@ ol.color.fromStringInternal_ = function(s) { g = (g << 4) + g; b = (b << 4) + b; } - if ((n >> 1) & 1) { - a = 1; - } else { // has alpha channel - a = parseInt(s.substr(1 + 3 * d, d), 16) / (d == 1 ? 15 : 255); - } + a = 1; color = [r, g, b, a]; goog.asserts.assert(ol.color.isValid(color)); return color; diff --git a/test/spec/ol/color.test.js b/test/spec/ol/color.test.js index 8cb37f7397..e773a15a48 100644 --- a/test/spec/ol/color.test.js +++ b/test/spec/ol/color.test.js @@ -21,19 +21,10 @@ describe('ol.color', function() { expect(ol.color.fromString('#087')).to.eql([0, 136, 119, 1]); }); - it('can parse 4-digit hex colors', function() { - expect(ol.color.fromString('#1234')).to.eql([17, 34, 51, 68 / 255]); - }); - it('can parse 6-digit hex colors', function() { expect(ol.color.fromString('#56789a')).to.eql([86, 120, 154, 1]); }); - it('can parse 8-digit hex colors', function() { - expect(ol.color.fromString('#bcdef012')).to.eql( - [188, 222, 240, 18 / 255]); - }); - it('can parse rgb colors', function() { expect(ol.color.fromString('rgb(0, 0, 255)')).to.eql([0, 0, 255, 1]); }); From c03ea3d0ee7ea1ce7810bce0f3d155502986ba79 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 14 Nov 2013 01:33:38 +0100 Subject: [PATCH 264/919] Save six bytes --- src/ol/render/dragbox.js | 2 +- src/ol/style.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/render/dragbox.js b/src/ol/render/dragbox.js index 90791ff619..c8ad9dd572 100644 --- a/src/ol/render/dragbox.js +++ b/src/ol/render/dragbox.js @@ -47,7 +47,7 @@ ol.render.DragBox = function(opt_style) { */ this.style_ = goog.isDef(opt_style) ? opt_style : { fill: { - color: 'rgba(255, 0, 0, 0.1)' + color: 'rgba(255,0,0,0.1)' }, image: null, stroke: { diff --git a/src/ol/style.js b/src/ol/style.js index 101946b000..691b9ecf85 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -102,7 +102,7 @@ ol.style.StyleFunction; * @type {ol.style.Fill} */ ol.style.DEFAULT_FILL_STYLE = { - color: 'rgba(255, 0, 0, 0.1)' + color: 'rgba(255,0,0,0.1)' }; From c7600b2cbcd53a1459283a6b420235cd9a756b74 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 14 Nov 2013 01:35:19 +0100 Subject: [PATCH 265/919] Add ol.style.Text --- src/ol/render/dragbox.js | 1 + src/ol/style.js | 50 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/src/ol/render/dragbox.js b/src/ol/render/dragbox.js index c8ad9dd572..f3a83efe61 100644 --- a/src/ol/render/dragbox.js +++ b/src/ol/render/dragbox.js @@ -54,6 +54,7 @@ ol.render.DragBox = function(opt_style) { color: '#ff0000', width: 1 }, + text: null, zIndex: 0 }; diff --git a/src/ol/style.js b/src/ol/style.js index 691b9ecf85..41ff550109 100644 --- a/src/ol/style.js +++ b/src/ol/style.js @@ -6,6 +6,7 @@ goog.provide('ol.style.Style'); goog.provide('ol.style.StyleFunction'); goog.provide('ol.style.fill'); goog.provide('ol.style.stroke'); +goog.provide('ol.style.text'); goog.require('goog.functions'); goog.require('ol.color'); @@ -82,10 +83,46 @@ ol.style.stroke.equals = function(strokeStyle1, strokeStyle2) { }; +/** + * @typedef {{font: (string|undefined), + * text: (string|undefined), + * textAlign: (string|undefined), + * textBaseline: (string|undefined)}|null|undefined} + */ +ol.style.Text; + + +/** + * @param {ol.style.Text} textStyle1 Text style 1. + * @param {ol.style.Text} textStyle2 Text style 2. + * @return {boolean} Equals. + */ +ol.style.text.equals = function(textStyle1, textStyle2) { + if (goog.isDefAndNotNull(textStyle1)) { + if (goog.isDefAndNotNull(textStyle2)) { + return textStyle1 === textStyle2 || ( + textStyle1.font == textStyle2.font && + textStyle1.text == textStyle2.text && + textStyle1.textAlign == textStyle2.textAlign && + textStyle1.textBaseline == textStyle2.textBaseline); + } else { + return false; + } + } else { + if (goog.isDefAndNotNull(textStyle2)) { + return false; + } else { + return true; + } + } +}; + + /** * @typedef {{fill: ol.style.Fill, * image: ol.style.Image, * stroke: ol.style.Stroke, + * text: ol.style.Text, * zIndex: (number|undefined)}} */ ol.style.Style; @@ -129,6 +166,18 @@ ol.style.DEFAULT_STROKE_STYLE = { }; +/** + * @const + * @type {ol.style.Text} + */ +ol.style.DEFAULT_TEXT_STYLE = { + font: '10px sans-serif', + text: undefined, + textAlign: 'start', + textBaseline: 'alphabetic' +}; + + /** * @const * @type {number} @@ -144,6 +193,7 @@ ol.style.DEFAULT_STYLE = { fill: ol.style.DEFAULT_FILL_STYLE, image: ol.style.DEFAULT_IMAGE_STYLE, stroke: ol.style.DEFAULT_STROKE_STYLE, + text: ol.style.DEFAULT_TEXT_STYLE, zIndex: ol.style.DEFAULT_Z_INDEX }; From a2603e424f39f1f503b82434f43c33dd97e6f4eb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 14 Nov 2013 02:28:54 +0100 Subject: [PATCH 266/919] Add text replay skeleton --- src/ol/render/canvas/canvasimmediate.js | 6 ++++++ src/ol/render/canvas/canvasreplay.js | 6 ++++++ src/ol/render/irender.js | 7 +++++++ src/ol/render/ireplay.js | 3 ++- 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 4a50bfa2eb..ac229c17b2 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -293,6 +293,12 @@ ol.render.canvas.Immediate.prototype.setImageStyle = function(imageStyle) { }; +/** + * @inheritDoc + */ +ol.render.canvas.Immediate.prototype.setTextStyle = goog.abstractMethod; + + /** * @const * @private diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index c432a81df2..44c70ba134 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -232,6 +232,12 @@ ol.render.canvas.Replay.prototype.setFillStrokeStyle = goog.abstractMethod; ol.render.canvas.Replay.prototype.setImageStyle = goog.abstractMethod; +/** + * @inheritDoc + */ +ol.render.canvas.Replay.prototype.setTextStyle = goog.abstractMethod; + + /** * @constructor diff --git a/src/ol/render/irender.js b/src/ol/render/irender.js index 8f5ffb6ffc..59ffd5469c 100644 --- a/src/ol/render/irender.js +++ b/src/ol/render/irender.js @@ -79,3 +79,10 @@ ol.render.IRender.prototype.setFillStrokeStyle = */ ol.render.IRender.prototype.setImageStyle = function(imageStyle) { }; + + +/** + * @param {ol.style.Text} textStyle Text style. + */ +ol.render.IRender.prototype.setTextStyle = function(textStyle) { +}; diff --git a/src/ol/render/ireplay.js b/src/ol/render/ireplay.js index dc46265c59..9ed2495430 100644 --- a/src/ol/render/ireplay.js +++ b/src/ol/render/ireplay.js @@ -10,7 +10,8 @@ goog.require('ol.render.IRender'); ol.render.ReplayType = { IMAGE: 'Image', LINE_STRING: 'LineString', - POLYGON: 'Polygon' + POLYGON: 'Polygon', + TEXT: 'Text' }; From c4e125e97209e174aec774e33acf0450829ab12f Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Fri, 15 Nov 2013 11:26:16 +0100 Subject: [PATCH 267/919] Rename ol.source.BingMapsOptions style property to imagerySet --- examples/layer-swipe.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/layer-swipe.js b/examples/layer-swipe.js index 61a6dd08f0..87cce34fc7 100644 --- a/examples/layer-swipe.js +++ b/examples/layer-swipe.js @@ -11,7 +11,7 @@ var osm = new ol.layer.Tile({ var bing = new ol.layer.Tile({ source: new ol.source.BingMaps({ key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3', - style: 'Aerial' + imagerySet: 'Aerial' }) }); From 4e3221810a984f0ed2db22d82029657ac909f50b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 18 Nov 2013 10:51:16 +0100 Subject: [PATCH 268/919] Add immediate rendering of text --- src/ol/render/canvas/canvasimmediate.js | 66 +++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 5 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index ac229c17b2..44e3c8eccd 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -9,6 +9,7 @@ goog.require('ol.extent'); goog.require('ol.render.IRender'); goog.require('ol.style.fill'); goog.require('ol.style.stroke'); +goog.require('ol.style.text'); @@ -43,12 +44,14 @@ ol.render.canvas.Immediate = function(context, extent, transform) { * @private * @type {{fillStyle: ol.style.Fill, * imageStyle: ol.style.Image, - * strokeStyle: ol.style.Stroke}} + * strokeStyle: ol.style.Stroke, + * textStyle: ol.style.Text}} */ this.state_ = { fillStyle: null, imageStyle: null, - strokeStyle: null + strokeStyle: null, + textStyle: null }; /** @@ -86,6 +89,39 @@ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { }; +/** + * @param {ol.geom.Point|ol.geom.MultiPoint} geometry Geometry. + * @private + */ +ol.render.canvas.Immediate.prototype.drawText_ = function(geometry) { + var context = this.context_; + var state = this.state_; + var fillStyle = state.fillStyle; + var strokeStyle = state.strokeStyle; + var textStyle = state.textStyle; + if (!ol.extent.intersects(this.extent_, geometry.getExtent()) || + !goog.isDefAndNotNull(textStyle) || !goog.isDef(textStyle.text) || + (!goog.isDefAndNotNull(fillStyle) && + !goog.isDefAndNotNull(strokeStyle))) { + return; + } + var pixelCoordinates = ol.geom.transformGeometry2D( + geometry, this.transform_, this.pixelCoordinates_); + var i, ii; + for (i = 0, ii = pixelCoordinates.length; i < ii; i += 2) { + var x = pixelCoordinates[i]; + var y = pixelCoordinates[i + 1]; + // FIXME stroke before fill or fill before stroke? + if (goog.isDefAndNotNull(strokeStyle)) { + context.strokeText(textStyle.text, x, y); + } + if (goog.isDefAndNotNull(fillStyle)) { + context.fillText(textStyle.text, x, y); + } + } +}; + + /** * @param {Array.} pixelCoordinates Pixel coordinates. * @param {number} offset Offset. @@ -149,14 +185,20 @@ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { * @inheritDoc */ ol.render.canvas.Immediate.prototype.drawPointGeometry = - ol.render.canvas.Immediate.prototype.drawImages_; + function(pointGeometry) { + this.drawImages_(pointGeometry); + this.drawText_(pointGeometry); +}; /** * @inheritDoc */ ol.render.canvas.Immediate.prototype.drawMultiPointGeometry = - ol.render.canvas.Immediate.prototype.drawImages_; + function(multiPointGeometry) { + this.drawImages_(multiPointGeometry); + this.drawText_(multiPointGeometry); +}; /** @@ -296,7 +338,21 @@ ol.render.canvas.Immediate.prototype.setImageStyle = function(imageStyle) { /** * @inheritDoc */ -ol.render.canvas.Immediate.prototype.setTextStyle = goog.abstractMethod; +ol.render.canvas.Immediate.prototype.setTextStyle = function(textStyle) { + var context = this.context_; + var state = this.state_; + if (!ol.style.text.equals(state.textStyle, textStyle)) { + if (goog.isDefAndNotNull(textStyle)) { + context.font = goog.isDef(textStyle.font) ? + textStyle.font : '10px sans-serif'; + context.textAlign = goog.isDef(textStyle.textAlign) ? + textStyle.textAlign : 'start'; + context.textBaseline = goog.isDef(textStyle.textBaseline) ? + textStyle.textBaseline : 'alphabetic'; + } + state.textStyle = textStyle; + } +}; /** From 2ecd4013ea1766049a67376b01305b858b5de0ae Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 18 Nov 2013 12:13:09 +0100 Subject: [PATCH 269/919] Improve type checking in ol.color --- src/ol/color/color.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index 1d8ec045e6..324bbe39d1 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -211,7 +211,8 @@ ol.color.fromStringInternal_ = function(s) { var isHex = false; if (ol.color.ENABLE_NAMED_COLORS && goog.color.names.hasOwnProperty(s)) { - s = goog.color.names[s]; + // goog.color.names does not have a type declaration, so add a typecast + s = /** @type {string} */ (goog.color.names[s]); isHex = true; } From f93ae0392a544c3484b11aa80653632faa5ea6fb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 18 Nov 2013 12:13:26 +0100 Subject: [PATCH 270/919] Improve type checking in ol.geom --- src/ol/geom/geometry.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 025ab1ae97..bed5760b08 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -192,7 +192,7 @@ ol.geom.Geometry.prototype.setLayout = this.stride = 2; return; } else { - coordinates = coordinates[0]; + coordinates = /** @type {Array} */ (coordinates[0]); } } stride = (/** @type {Array} */ (coordinates)).length; From adfc56b14cddb0e9b6fa00f3d8fae5a891415809 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 18 Nov 2013 14:21:19 +0100 Subject: [PATCH 271/919] Improve type checking in ol.render.canvas.Replay --- src/ol/render/canvas/canvasreplay.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 44c70ba134..52159cdaa8 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -40,7 +40,7 @@ ol.render.canvas.Replay = function() { /** * @protected - * @type {Array} + * @type {Array.<*>} */ this.instructions = []; From 0746715231bc5effb88345a231274c48726c2966 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 18 Nov 2013 14:27:03 +0100 Subject: [PATCH 272/919] Remove unused RegExp, thanks @fredj --- src/ol/color/color.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index 324bbe39d1..551cee056d 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -38,14 +38,6 @@ ol.Color; ol.color.hexColorRe_ = /^#(?:[0-9a-f]{3}){1,2}$/i; -/** - * @type {RegExp} - * @private - * This RegExp matches # followed by 4 or 8 hex digits. - */ -ol.color.hexaColorRe_ = /^#(?:[0-9a-f]{4}){1,2}$/i; - - /** * @type {RegExp} * @private From b39496f380fb0d764131967378b0f221ab771512 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 18 Nov 2013 12:36:13 +0100 Subject: [PATCH 273/919] Dispatch 'precompose' event for ol.renderer.canvas.VectorLayer --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index ffcdd52bab..19930cb228 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -54,12 +54,12 @@ goog.inherits(ol.renderer.canvas.VectorLayer, ol.renderer.canvas.Layer); ol.renderer.canvas.VectorLayer.prototype.composeFrame = function(frameState, layerState, context) { - /** @type {goog.vec.Mat4.AnyType|undefined} */ - var transform; + var transform = this.getTransform(frameState); + + this.dispatchPreComposeEvent(context, frameState, transform); var replayGroup = this.replayGroup_; if (!goog.isNull(replayGroup)) { - transform = this.getTransform(frameState); context.globalAlpha = layerState.opacity; replayGroup.draw(context, frameState.extent, transform); } From c20f80ca911e14c223bbbfd913e249a7ae0fed84 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 18 Nov 2013 12:54:45 +0100 Subject: [PATCH 274/919] Export ol.Map#render function --- src/ol/map.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/map.exports b/src/ol/map.exports index b89e2dc927..dd89f9e642 100644 --- a/src/ol/map.exports +++ b/src/ol/map.exports @@ -16,6 +16,7 @@ @exportProperty ol.Map.prototype.removeInteraction @exportProperty ol.Map.prototype.removeLayer @exportProperty ol.Map.prototype.removeOverlay +@exportProperty ol.Map.prototype.render @exportProperty ol.Map.prototype.requestRenderFrame @exportProperty ol.Map.prototype.updateSize From 650370f740d8a210970dc20f41ba76ff05451810 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 18 Nov 2013 12:56:16 +0100 Subject: [PATCH 275/919] Simplify export-map example by removing jpeg output --- examples/export-map.html | 5 ++--- examples/export-map.js | 7 +------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/examples/export-map.html b/examples/export-map.html index 14076fe011..08373865c3 100644 --- a/examples/export-map.html +++ b/examples/export-map.html @@ -29,7 +29,6 @@ This example requires a browser that supports the link download attribute.
- Export JPEG Export PNG
@@ -38,11 +37,11 @@

Export map example

-

Example of exporting a map as a JPEG or PNG image.

+

Example of exporting a map as a PNG image.

See the export-map.js source to see how this is done.

-
export, jpeg, png, openstreetmap
+
export, png, openstreetmap
diff --git a/examples/export-map.js b/examples/export-map.js index 365efaec6c..418ef3c461 100644 --- a/examples/export-map.js +++ b/examples/export-map.js @@ -19,14 +19,9 @@ var map = new ol.Map({ }) }); -var exportJPEGElement = document.getElementById('export-jpeg'); var exportPNGElement = document.getElementById('export-png'); -if ('download' in exportJPEGElement && 'download' in exportPNGElement) { - exportJPEGElement.addEventListener('click', function(e) { - e.target.href = map.getRenderer().getCanvas().toDataURL('image/jpeg'); - }, false); - +if ('download' in exportPNGElement) { exportPNGElement.addEventListener('click', function(e) { e.target.href = map.getRenderer().getCanvas().toDataURL('image/png'); }, false); From 87014feb0117fc5a48910253d75f1e74b7b8c688 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 18 Nov 2013 12:57:27 +0100 Subject: [PATCH 276/919] Use 'postcompose' event to export the map as png image --- examples/export-map.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/examples/export-map.js b/examples/export-map.js index 418ef3c461..da7d50dc3f 100644 --- a/examples/export-map.js +++ b/examples/export-map.js @@ -23,7 +23,11 @@ var exportPNGElement = document.getElementById('export-png'); if ('download' in exportPNGElement) { exportPNGElement.addEventListener('click', function(e) { - e.target.href = map.getRenderer().getCanvas().toDataURL('image/png'); + map.once('postcompose', function(event) { + var canvas = event.getContext().canvas; + exportPNGElement.href = canvas.toDataURL('image/png'); + }); + map.render(); }, false); } else { var info = document.getElementById('no-download'); From 38bbe35e8d9385372d90ec7135bb1a9eb42b051b Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 18 Nov 2013 14:00:50 +0100 Subject: [PATCH 277/919] Remove ol.Map#getRenderer function --- src/ol/map.exports | 1 - src/ol/map.js | 10 ---------- .../ol/renderer/webgl/webglimagelayerrenderer.test.js | 2 +- 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/ol/map.exports b/src/ol/map.exports index dd89f9e642..15614cc858 100644 --- a/src/ol/map.exports +++ b/src/ol/map.exports @@ -10,7 +10,6 @@ @exportProperty ol.Map.prototype.getInteractions @exportProperty ol.Map.prototype.getLayers @exportProperty ol.Map.prototype.getOverlays -@exportProperty ol.Map.prototype.getRenderer @exportProperty ol.Map.prototype.getViewport @exportProperty ol.Map.prototype.removeControl @exportProperty ol.Map.prototype.removeInteraction diff --git a/src/ol/map.js b/src/ol/map.js index 73d70f1c97..06608ee639 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -503,16 +503,6 @@ ol.Map.prototype.getEventPixel = function(event) { }; -/** - * Get the map's renderer. - * @return {ol.renderer.Map} Renderer. - * @todo stability experimental - */ -ol.Map.prototype.getRenderer = function() { - return this.renderer_; -}; - - /** * Get the target in which this map is rendered. * Note that this returns what is entered as an option or in setTarget: diff --git a/test/spec/ol/renderer/webgl/webglimagelayerrenderer.test.js b/test/spec/ol/renderer/webgl/webglimagelayerrenderer.test.js index 46347ec8f2..94515a6860 100644 --- a/test/spec/ol/renderer/webgl/webglimagelayerrenderer.test.js +++ b/test/spec/ol/renderer/webgl/webglimagelayerrenderer.test.js @@ -22,7 +22,7 @@ describe('ol.renderer.webgl.ImageLayer', function() { extent: [0, 0, 1, 1] }) }); - renderer = new ol.renderer.webgl.ImageLayer(map.getRenderer(), layer); + renderer = new ol.renderer.webgl.ImageLayer(map.renderer_, layer); // input params canvasWidth = 512; From f4c5168cdf7aa56dc7536a3446e100ee2bca20e0 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 18 Nov 2013 14:08:15 +0100 Subject: [PATCH 278/919] Remove renderer.Map#getCanvas function --- src/ol/renderer/canvas/canvasmaprenderer.exports | 1 - src/ol/renderer/canvas/canvasmaprenderer.js | 8 -------- src/ol/renderer/maprenderer.js | 7 ------- src/ol/renderer/webgl/webglimagelayerrenderer.js | 2 +- src/ol/renderer/webgl/webglmaprenderer.js | 8 -------- 5 files changed, 1 insertion(+), 25 deletions(-) delete mode 100644 src/ol/renderer/canvas/canvasmaprenderer.exports diff --git a/src/ol/renderer/canvas/canvasmaprenderer.exports b/src/ol/renderer/canvas/canvasmaprenderer.exports deleted file mode 100644 index 784a80737e..0000000000 --- a/src/ol/renderer/canvas/canvasmaprenderer.exports +++ /dev/null @@ -1 +0,0 @@ -@exportProperty ol.renderer.canvas.Map.prototype.getCanvas diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index 49cee29160..37a6f7ab43 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -74,14 +74,6 @@ ol.renderer.canvas.Map.prototype.createLayerRenderer = function(layer) { }; -/** - * @inheritDoc - */ -ol.renderer.canvas.Map.prototype.getCanvas = function() { - return this.canvas_; -}; - - /** * @inheritDoc */ diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index 0023ce8b71..c6d96d5dc4 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -3,7 +3,6 @@ goog.provide('ol.renderer.Map'); goog.require('goog.Disposable'); goog.require('goog.asserts'); goog.require('goog.dispose'); -goog.require('goog.functions'); goog.require('goog.object'); goog.require('goog.vec.Mat4'); goog.require('ol.FrameState'); @@ -91,12 +90,6 @@ ol.renderer.Map.prototype.disposeInternal = function() { }; -/** - * @return {HTMLCanvasElement} Canvas. - */ -ol.renderer.Map.prototype.getCanvas = goog.functions.NULL; - - /** * @param {ol.layer.Layer} layer Layer. * @protected diff --git a/src/ol/renderer/webgl/webglimagelayerrenderer.js b/src/ol/renderer/webgl/webglimagelayerrenderer.js index 01f7151f5e..45b6f7ba1b 100644 --- a/src/ol/renderer/webgl/webglimagelayerrenderer.js +++ b/src/ol/renderer/webgl/webglimagelayerrenderer.js @@ -132,7 +132,7 @@ ol.renderer.webgl.ImageLayer.prototype.prepareFrame = if (!goog.isNull(image)) { goog.asserts.assert(!goog.isNull(texture)); - var canvas = this.getWebGLMapRenderer().getCanvas(); + var canvas = this.getWebGLMapRenderer().getContext().getCanvas(); this.updateProjectionMatrix_(canvas.width, canvas.height, viewCenter, viewResolution, viewRotation, image.getExtent()); diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 021332ad15..34a08ee743 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -267,14 +267,6 @@ ol.renderer.webgl.Map.prototype.expireCache_ = function(map, frameState) { }; -/** - * @inheritDoc - */ -ol.renderer.webgl.Map.prototype.getCanvas = function() { - return this.canvas_; -}; - - /** * @return {ol.webgl.Context} */ From 1fe9f2535997778ae930dbb6b8d5f7bf2b00a71b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 18 Nov 2013 14:39:37 +0100 Subject: [PATCH 279/919] Correct order of jsdoc comments, thanks @fredj --- src/ol/color/color.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index 551cee056d..2681c95fc6 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -31,26 +31,26 @@ ol.Color; /** + * This RegExp matches # followed by 3 or 6 hex digits. * @type {RegExp} * @private - * This RegExp matches # followed by 3 or 6 hex digits. */ ol.color.hexColorRe_ = /^#(?:[0-9a-f]{3}){1,2}$/i; /** + * @see goog.color.rgbColorRe_ * @type {RegExp} * @private - * @see goog.color.rgbColorRe_ */ ol.color.rgbColorRe_ = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i; /** + * @see goog.color.alpha.rgbaColorRe_ * @type {RegExp} * @private - * @see goog.color.alpha.rgbaColorRe_ */ ol.color.rgbaColorRe_ = /^(?:rgba)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|1|0\.\d{0,10})\)$/i; From c29c292efd7002adee2e01d42f83283929acc011 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 18 Nov 2013 14:54:08 +0100 Subject: [PATCH 280/919] Mark constant RegExps, thanks @fredj --- src/ol/color/color.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index 2681c95fc6..c4f3a4f476 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -32,7 +32,7 @@ ol.Color; /** * This RegExp matches # followed by 3 or 6 hex digits. - * @type {RegExp} + * @const {RegExp} * @private */ ol.color.hexColorRe_ = /^#(?:[0-9a-f]{3}){1,2}$/i; @@ -40,7 +40,7 @@ ol.color.hexColorRe_ = /^#(?:[0-9a-f]{3}){1,2}$/i; /** * @see goog.color.rgbColorRe_ - * @type {RegExp} + * @const {RegExp} * @private */ ol.color.rgbColorRe_ = @@ -49,7 +49,7 @@ ol.color.rgbColorRe_ = /** * @see goog.color.alpha.rgbaColorRe_ - * @type {RegExp} + * @const {RegExp} * @private */ ol.color.rgbaColorRe_ = From 325534aa46e536fc0a4be2159ce50972309bb58f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 18 Nov 2013 16:00:52 +0100 Subject: [PATCH 281/919] Fire precompose events from map --- src/ol/renderer/canvas/canvasmaprenderer.js | 30 +++++++++++++++------ 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index 37a6f7ab43..cee3834369 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -74,6 +74,25 @@ ol.renderer.canvas.Map.prototype.createLayerRenderer = function(layer) { }; +/** + * @param {ol.render.EventType} type Event type. + * @param {ol.FrameState} frameState Frame state. + * @private + */ +ol.renderer.canvas.Map.prototype.dispatchComposeEvent_ = + function(type, frameState) { + var map = this.getMap(); + var context = this.context_; + if (map.hasListener(type)) { + var render = new ol.render.canvas.Immediate( + context, frameState.extent, frameState.coordinateToPixelMatrix); + var composeEvent = new ol.render.Event(type, map, render, frameState, + context, null); + map.dispatchEvent(composeEvent); + } +}; + + /** * @inheritDoc */ @@ -99,6 +118,8 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { this.calculateMatrices2D(frameState); + this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE, frameState); + var layerStates = frameState.layerStates; var layersArray = frameState.layersArray; var viewResolution = frameState.view2DState.resolution; @@ -118,14 +139,7 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { layerRenderer.composeFrame(frameState, layerState, context); } - var map = this.getMap(); - if (map.hasListener(ol.render.EventType.POSTCOMPOSE)) { - var render = new ol.render.canvas.Immediate( - context, frameState.extent, frameState.coordinateToPixelMatrix); - var postComposeEvent = new ol.render.Event(ol.render.EventType.POSTCOMPOSE, - map, render, frameState, context, null); - map.dispatchEvent(postComposeEvent); - } + this.dispatchComposeEvent_(ol.render.EventType.POSTCOMPOSE, frameState); if (!this.renderedVisible_) { goog.style.setElementShown(this.canvas_, true); From 478f8c43ca02872c40c4260a04843da51dd1c44b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 18 Nov 2013 16:03:09 +0100 Subject: [PATCH 282/919] ol.render.Event take an ol.webgl.Context object --- src/ol/render/renderevent.exports | 2 +- src/ol/render/renderevent.js | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/ol/render/renderevent.exports b/src/ol/render/renderevent.exports index 0e0d2acb1b..bfb4403ea4 100644 --- a/src/ol/render/renderevent.exports +++ b/src/ol/render/renderevent.exports @@ -1,4 +1,4 @@ @exportProperty ol.render.Event.prototype.getContext @exportProperty ol.render.Event.prototype.getFrameState -@exportProperty ol.render.Event.prototype.getGL +@exportProperty ol.render.Event.prototype.getGlContext @exportProperty ol.render.Event.prototype.getRender diff --git a/src/ol/render/renderevent.js b/src/ol/render/renderevent.js index 28552986f8..bfabfb1cae 100644 --- a/src/ol/render/renderevent.js +++ b/src/ol/render/renderevent.js @@ -23,10 +23,11 @@ ol.render.EventType = { * @param {ol.render.IRender=} opt_render Render. * @param {ol.FrameState=} opt_frameState Frame state. * @param {?CanvasRenderingContext2D=} opt_context Context. - * @param {?WebGLRenderingContext=} opt_gl GL. + * @param {?ol.webgl.Context=} opt_glContext WebGL Context. */ ol.render.Event = function( - type, opt_target, opt_render, opt_frameState, opt_context, opt_gl) { + type, opt_target, opt_render, opt_frameState, opt_context, + opt_glContext) { goog.base(this, type, opt_target); @@ -49,10 +50,10 @@ ol.render.Event = function( this.context_ = opt_context; /** - * @type {WebGLRenderingContext|null|undefined} + * @type {ol.webgl.Context|null|undefined} * @private */ - this.gl_ = opt_gl; + this.glContext_ = opt_glContext; }; goog.inherits(ol.render.Event, goog.events.Event); @@ -75,10 +76,10 @@ ol.render.Event.prototype.getFrameState = function() { /** - * @return {WebGLRenderingContext|null|undefined} GL. + * @return {ol.webgl.Context|null|undefined} GL context. */ -ol.render.Event.prototype.getGL = function() { - return this.gl_; +ol.render.Event.prototype.getGlContext = function() { + return this.glContext_; }; From 8d191ca4b80f1cf7e25fa3ee4c3bcb9d60792bba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 18 Nov 2013 16:05:30 +0100 Subject: [PATCH 283/919] Fire pre and postcompose events from webgl layers --- src/ol/renderer/webgl/webgllayerrenderer.js | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/ol/renderer/webgl/webgllayerrenderer.js b/src/ol/renderer/webgl/webgllayerrenderer.js index 2888c99f54..1c8e5fac04 100644 --- a/src/ol/renderer/webgl/webgllayerrenderer.js +++ b/src/ol/renderer/webgl/webgllayerrenderer.js @@ -5,6 +5,8 @@ goog.require('goog.webgl'); goog.require('ol.FrameState'); goog.require('ol.color.Matrix'); goog.require('ol.layer.Layer'); +goog.require('ol.render.Event'); +goog.require('ol.render.EventType'); goog.require('ol.renderer.Layer'); goog.require('ol.renderer.webgl.map.shader.Color'); goog.require('ol.renderer.webgl.map.shader.Default'); @@ -135,6 +137,9 @@ ol.renderer.webgl.Layer.prototype.bindFramebuffer = ol.renderer.webgl.Layer.prototype.composeFrame = function(frameState, layerState, context) { + this.dispatchComposeEvent_( + ol.render.EventType.PRECOMPOSE, context, frameState); + var gl = context.getGL(); var useColor = @@ -202,6 +207,26 @@ ol.renderer.webgl.Layer.prototype.composeFrame = gl.bindTexture(goog.webgl.TEXTURE_2D, this.getTexture()); gl.drawArrays(goog.webgl.TRIANGLE_STRIP, 0, 4); + this.dispatchComposeEvent_( + ol.render.EventType.POSTCOMPOSE, context, frameState); + +}; + + +/** + * @param {ol.render.EventType} type Event type. + * @param {ol.webgl.Context} context WebGL context. + * @param {ol.FrameState} frameState Frame state. + * @private + */ +ol.renderer.webgl.Layer.prototype.dispatchComposeEvent_ = + function(type, context, frameState) { + var layer = this.getLayer(); + if (layer.hasListener(type)) { + var composeEvent = new ol.render.Event( + type, layer, null, frameState, null, context); + layer.dispatchEvent(composeEvent); + } }; From eead07b0bb005f79e94b29c7df3d79a99fc71fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 18 Nov 2013 16:06:50 +0100 Subject: [PATCH 284/919] Fire pre and postcompose events from webgl map --- src/ol/renderer/webgl/webglmaprenderer.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 34a08ee743..09bc869ff8 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -18,6 +18,8 @@ goog.require('ol.Tile'); goog.require('ol.css'); goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); +goog.require('ol.render.Event'); +goog.require('ol.render.EventType'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.webgl.ImageLayer'); goog.require('ol.renderer.webgl.TileLayer'); @@ -224,6 +226,23 @@ ol.renderer.webgl.Map.prototype.createLayerRenderer = function(layer) { }; +/** + * @param {ol.render.EventType} type Event type. + * @param {ol.FrameState} frameState Frame state. + * @private + */ +ol.renderer.webgl.Map.prototype.dispatchComposeEvent_ = + function(type, frameState) { + var map = this.getMap(); + var context = this.getContext(); + if (map.hasListener(type)) { + var composeEvent = new ol.render.Event( + type, map, null, frameState, null, context); + map.dispatchEvent(composeEvent); + } +}; + + /** * @inheritDoc */ @@ -407,6 +426,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { gl.viewport(0, 0, size[0], size[1]); context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); + this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE, frameState); for (i = 0, ii = layersToDraw.length; i < ii; ++i) { layer = layersToDraw[i]; @@ -432,6 +452,8 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { frameState.animate = true; } + this.dispatchComposeEvent_(ol.render.EventType.POSTCOMPOSE, frameState); + this.scheduleRemoveUnusedLayerRenderers(frameState); }; From 1c03886e1c12053ec5011581eaf10f9d3937c64a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 18 Nov 2013 16:07:53 +0100 Subject: [PATCH 285/919] Rename arrayBuffer_ to renderArrayBuffer_ --- src/ol/renderer/webgl/webgltilelayerrenderer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/renderer/webgl/webgltilelayerrenderer.js b/src/ol/renderer/webgl/webgltilelayerrenderer.js index 0f252d7fbb..64ba9be41e 100644 --- a/src/ol/renderer/webgl/webgltilelayerrenderer.js +++ b/src/ol/renderer/webgl/webgltilelayerrenderer.js @@ -53,7 +53,7 @@ ol.renderer.webgl.TileLayer = function(mapRenderer, tileLayer) { * @private * @type {ol.structs.Buffer} */ - this.arrayBuffer_ = new ol.structs.Buffer([ + this.renderArrayBuffer_ = new ol.structs.Buffer([ 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, @@ -88,7 +88,7 @@ goog.inherits(ol.renderer.webgl.TileLayer, ol.renderer.webgl.Layer); ol.renderer.webgl.TileLayer.prototype.disposeInternal = function() { var mapRenderer = this.getWebGLMapRenderer(); var context = mapRenderer.getContext(); - context.deleteBuffer(this.arrayBuffer_); + context.deleteBuffer(this.renderArrayBuffer_); goog.base(this, 'disposeInternal'); }; @@ -181,7 +181,7 @@ ol.renderer.webgl.TileLayer.prototype.prepareFrame = new ol.renderer.webgl.tilelayer.shader.Locations(gl, program); } - context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); + context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.renderArrayBuffer_); gl.enableVertexAttribArray(this.locations_.a_position); gl.vertexAttribPointer( this.locations_.a_position, 2, goog.webgl.FLOAT, false, 16, 0); From 93aef958e9d1ec7e84486a5923b5904b255597e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 18 Nov 2013 16:10:56 +0100 Subject: [PATCH 286/919] Move arrayBuffer_ to layer renderer --- src/ol/renderer/webgl/webgllayerrenderer.js | 14 ++++++++++++++ src/ol/renderer/webgl/webglmaprenderer.js | 13 ------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/ol/renderer/webgl/webgllayerrenderer.js b/src/ol/renderer/webgl/webgllayerrenderer.js index 1c8e5fac04..78897f8ffa 100644 --- a/src/ol/renderer/webgl/webgllayerrenderer.js +++ b/src/ol/renderer/webgl/webgllayerrenderer.js @@ -10,6 +10,7 @@ goog.require('ol.render.EventType'); goog.require('ol.renderer.Layer'); goog.require('ol.renderer.webgl.map.shader.Color'); goog.require('ol.renderer.webgl.map.shader.Default'); +goog.require('ol.structs.Buffer'); @@ -23,6 +24,17 @@ ol.renderer.webgl.Layer = function(mapRenderer, layer) { goog.base(this, mapRenderer, layer); + /** + * @private + * @type {ol.structs.Buffer} + */ + this.arrayBuffer_ = new ol.structs.Buffer([ + -1, -1, 0, 0, + 1, -1, 1, 0, + -1, 1, 0, 1, + 1, 1, 1, 1 + ]); + /** * @protected * @type {WebGLTexture} @@ -140,6 +152,8 @@ ol.renderer.webgl.Layer.prototype.composeFrame = this.dispatchComposeEvent_( ol.render.EventType.PRECOMPOSE, context, frameState); + context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); + var gl = context.getGL(); var useColor = diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 09bc869ff8..9716d85c76 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -24,7 +24,6 @@ goog.require('ol.renderer.Map'); goog.require('ol.renderer.webgl.ImageLayer'); goog.require('ol.renderer.webgl.TileLayer'); goog.require('ol.source.State'); -goog.require('ol.structs.Buffer'); goog.require('ol.structs.LRUCache'); goog.require('ol.structs.PriorityQueue'); goog.require('ol.webgl'); @@ -93,17 +92,6 @@ ol.renderer.webgl.Map = function(container, map) { goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.RESTORED, this.handleWebGLContextRestored, false, this); - /** - * @private - * @type {ol.structs.Buffer} - */ - this.arrayBuffer_ = new ol.structs.Buffer([ - -1, -1, 0, 0, - 1, -1, 1, 0, - -1, 1, 0, 1, - 1, 1, 1, 1 - ]); - /** * @private * @type {ol.structs.LRUCache} @@ -425,7 +413,6 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { gl.enable(goog.webgl.BLEND); gl.viewport(0, 0, size[0], size[1]); - context.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE, frameState); for (i = 0, ii = layersToDraw.length; i < ii; ++i) { From 215344af717c1ca5747ea7eb4c30ee01e81eacc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 18 Nov 2013 16:11:36 +0100 Subject: [PATCH 287/919] Set stencil to true in webgl context --- src/ol/renderer/webgl/webglmaprenderer.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 9716d85c76..a7b8a99688 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -77,7 +77,7 @@ ol.renderer.webgl.Map = function(container, map) { antialias: true, depth: false, preserveDrawingBuffer: false, - stencil: false + stencil: true }); goog.asserts.assert(!goog.isNull(this.gl_)); @@ -333,6 +333,7 @@ ol.renderer.webgl.Map.prototype.initializeGL_ = function() { gl.disable(goog.webgl.CULL_FACE); gl.disable(goog.webgl.DEPTH_TEST); gl.disable(goog.webgl.SCISSOR_TEST); + gl.disable(goog.webgl.STENCIL_TEST); }; From c217c95e6d2050f96e6915e9a556b01d3dbf24af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 18 Nov 2013 16:14:39 +0100 Subject: [PATCH 288/919] Add a WebGL layer clipping example --- examples/layer-clipping-webgl.html | 51 ++++++++++++++++ examples/layer-clipping-webgl.js | 93 ++++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 examples/layer-clipping-webgl.html create mode 100644 examples/layer-clipping-webgl.js diff --git a/examples/layer-clipping-webgl.html b/examples/layer-clipping-webgl.html new file mode 100644 index 0000000000..d469454056 --- /dev/null +++ b/examples/layer-clipping-webgl.html @@ -0,0 +1,51 @@ + + + + + + + + + + + Layer WebGL clipping example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Layer WebGL clipping example

+

Layer WebGL clipping example.

+
+

This example shows how to use the precompose and postcompose rendering hooks to clip layers using WebGL.

+

See the layer-clipping-webgl.js source to see how this is done.

+
+
clipping, webgl, openstreetmap
+
+ +
+ +
+ + + + + + diff --git a/examples/layer-clipping-webgl.js b/examples/layer-clipping-webgl.js new file mode 100644 index 0000000000..61dccb9daa --- /dev/null +++ b/examples/layer-clipping-webgl.js @@ -0,0 +1,93 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.OSM'); + +var osm = new ol.layer.Tile({ + source: new ol.source.OSM() +}); + +var map = new ol.Map({ + layers: [osm], + renderer: ol.RendererHint.WEBGL, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); + +var fragmentShaderSource = [ + 'precision mediump float;', + 'void main() {', + '}' +].join(''); + +var vertexShaderSource = [ + 'attribute vec2 a_position;', + 'void main() {', + 'gl_Position = vec4(a_position, 0, 1);', + '}' +].join(''); + +osm.on('precompose', function(event) { + var context = event.getGlContext(); + + var gl = context.getGL(); + var program = gl.createProgram(); + + var vertexShader = gl.createShader(gl.VERTEX_SHADER); + gl.shaderSource(vertexShader, vertexShaderSource); + gl.compileShader(vertexShader); + gl.attachShader(program, vertexShader); + + var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); + gl.shaderSource(fragmentShader, fragmentShaderSource); + gl.compileShader(fragmentShader); + gl.attachShader(program, fragmentShader); + + gl.linkProgram(program); + context.useProgram(program); + + var positionLocation = gl.getAttribLocation(program, 'a_position'); + + gl.enable(gl.STENCIL_TEST); + gl.colorMask(false, false, false, false); + gl.stencilOp(gl.KEEP, gl.KEEP, gl.REPLACE); + gl.stencilFunc(gl.ALWAYS, 1, 0xff); + + var buffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, buffer); + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ + // first band + -1.0, -1.0, -0.75, -1.0, -1.0, 1.0, + -1.0, 1.0, -0.75, -1.0, -0.75, 1.0, + // second band + -0.5, -1.0, -0.25, -1.0, -0.5, 1.0, + -0.5, 1.0, -0.25, -1.0, -0.25, 1.0, + // third band + 0.0, -1.0, 0.25, -1.0, 0.0, 1.0, + 0.0, 1.0, 0.25, -1.0, 0.25, 1.0, + // forth band + 0.5, -1.0, 0.75, -1.0, 0.5, 1.0, + 0.5, 1.0, 0.75, -1.0, 0.75, 1.0 + ]), gl.STATIC_DRAW); + + gl.enableVertexAttribArray(positionLocation); + gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0); + gl.drawArrays(gl.TRIANGLES, 0, 24); + + gl.bindBuffer(gl.ARRAY_BUFFER, null); + gl.deleteBuffer(buffer); + + gl.colorMask(true, true, true, true); + gl.stencilFunc(gl.NOTEQUAL, 0, 0xff); + gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP); +}); + +osm.on('postcompose', function(event) { + var context = event.getGlContext(); + var gl = context.getGL(); + gl.disable(gl.STENCIL_TEST); +}); From 479ec441ab3c9b77e69b186a381a0647f89f8b18 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 18 Nov 2013 16:34:58 +0100 Subject: [PATCH 289/919] Improve type checking in ol.renderer.canvas.VectorLayer --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 19930cb228..4e17bac78b 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -110,15 +110,20 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = goog.dispose(this.replayGroup_); this.replayGroup_ = null; + /** @type {function(ol.Feature): ol.style.Style|undefined} */ var styleFunction = vectorLayer.getStyleFunction(); if (!goog.isDef(styleFunction)) { styleFunction = ol.style.DefaultStyleFunction; } var replayGroup = new ol.render.canvas.ReplayGroup(); - vectorSource.forEachFeatureInExtent(extent, function(feature) { - var style = styleFunction(feature); - ol.renderer.vector.renderFeature(replayGroup, feature, style); - }, this); + vectorSource.forEachFeatureInExtent(extent, + /** + * @param {ol.Feature} feature Feature. + */ + function(feature) { + var style = styleFunction(feature); + ol.renderer.vector.renderFeature(replayGroup, feature, style); + }, this); replayGroup.finish(); this.renderedResolution_ = frameState.view2DState.resolution; From 99ce67aedcb17d052f69cb5e858b208756a3b6a5 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 18 Nov 2013 16:17:57 +0100 Subject: [PATCH 290/919] Nicer dragbox style --- src/ol/geom/polygon.js | 3 +-- src/ol/render/dragbox.js | 31 ++++++++++++++++++++----------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 92fbac1b9c..c52a4ae8bd 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -65,8 +65,7 @@ ol.geom.Polygon.prototype.getType = function() { * @param {ol.geom.RawPolygon} coordinates Coordinates. * @param {ol.geom.Layout=} opt_layout Layout. */ -ol.geom.Polygon.prototype.setCoordinates = - function(coordinates, opt_layout) { +ol.geom.Polygon.prototype.setCoordinates = function(coordinates, opt_layout) { this.setLayout(opt_layout, coordinates, 2); ol.geom.flat.deflateCoordinatess( this.flatCoordinates, 0, coordinates, this.stride, this.ends_); diff --git a/src/ol/render/dragbox.js b/src/ol/render/dragbox.js index f3a83efe61..80db9849bf 100644 --- a/src/ol/render/dragbox.js +++ b/src/ol/render/dragbox.js @@ -47,13 +47,10 @@ ol.render.DragBox = function(opt_style) { */ this.style_ = goog.isDef(opt_style) ? opt_style : { fill: { - color: 'rgba(255,0,0,0.1)' + color: 'rgba(0,0,0,0.5)' }, image: null, - stroke: { - color: '#ff0000', - width: 1 - }, + stroke: null, text: null, zIndex: 0 }; @@ -78,12 +75,24 @@ ol.render.DragBox.prototype.handleMapPostCompose_ = function(event) { var render = event.getRender(); var startCoordinate = this.startCoordinate_; var endCoordinate = this.endCoordinate_; - var coordinates = [[ - [startCoordinate[0], startCoordinate[1]], - [startCoordinate[0], endCoordinate[1]], - [endCoordinate[0], endCoordinate[1]], - [endCoordinate[0], startCoordinate[1]] - ]]; + + var extent = event.getFrameState().extent; + var coordinates = [ + // outer ring + [ + [extent[0], extent[1]], + [extent[0], extent[3]], + [extent[2], extent[3]], + [extent[2], extent[1]] + ], + // inner ring + [ + startCoordinate, + [startCoordinate[0], endCoordinate[1]], + endCoordinate, + [endCoordinate[0], startCoordinate[1]] + ] + ]; var geometry = new ol.geom.Polygon(coordinates); var style = this.style_; render.setFillStrokeStyle(style.fill, style.stroke); From 0bc8ff81e60c74cf817c46f80cbc64f6eaeee271 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 18 Nov 2013 16:30:19 +0100 Subject: [PATCH 291/919] Explicitly read and load data in JSON --- examples/vector-layer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index dd785d00ab..0aa34ad5fe 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -33,10 +33,10 @@ var style = { } }; -$.get('data/countries.geojson', function(data) { +$.getJSON('data/countries.geojson', function(data) { var format = new ol.format.GeoJSON(); var transformFn = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); - format.readString(data, function(feature) { + format.readObject(data, function(feature) { var geometry = feature.getGeometry(); geometry.transform(transformFn); feature.setGeometry(geometry); From 6fe7a980f27fa5239cd8eeaa2f99bb9995536674 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 18 Nov 2013 21:19:07 +0100 Subject: [PATCH 292/919] Use ol.structs.PriorityQueue template in ol.renderer.webgl.Map --- src/ol/renderer/webgl/webglmaprenderer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index a7b8a99688..c240cd6e73 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -106,7 +106,7 @@ ol.renderer.webgl.Map = function(container, map) { /** * @private - * @type {ol.structs.PriorityQueue} + * @type {ol.structs.PriorityQueue.} */ this.tileTextureQueue_ = new ol.structs.PriorityQueue( /** @@ -291,7 +291,7 @@ ol.renderer.webgl.Map.prototype.getGL = function() { /** - * @return {ol.structs.PriorityQueue} Tile texture queue. + * @return {ol.structs.PriorityQueue.} Tile texture queue. */ ol.renderer.webgl.Map.prototype.getTileTextureQueue = function() { return this.tileTextureQueue_; From 3699510e63bfbbd76f7b7e0e845e6933ca3d00dc Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 18 Nov 2013 22:37:12 +0100 Subject: [PATCH 293/919] Remove repeated Replay --- src/ol/render/canvas/canvasreplay.js | 4 ++-- src/ol/render/ireplay.js | 10 +++++----- src/ol/render/vector.js | 18 +++++++++--------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 52159cdaa8..13a8ecbd73 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -10,7 +10,7 @@ goog.require('ol.color'); goog.require('ol.extent'); goog.require('ol.geom.flat'); goog.require('ol.render.IRender'); -goog.require('ol.render.IReplayReplayGroup'); +goog.require('ol.render.IReplayGroup'); goog.require('ol.style.fill'); goog.require('ol.style.stroke'); @@ -600,7 +600,7 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { /** * @constructor - * @implements {ol.render.IReplayReplayGroup} + * @implements {ol.render.IReplayGroup} */ ol.render.canvas.ReplayGroup = function() { diff --git a/src/ol/render/ireplay.js b/src/ol/render/ireplay.js index 9ed2495430..d5b2d94ad9 100644 --- a/src/ol/render/ireplay.js +++ b/src/ol/render/ireplay.js @@ -1,4 +1,4 @@ -goog.provide('ol.render.IReplayReplayGroup'); +goog.provide('ol.render.IReplayGroup'); goog.require('goog.functions'); goog.require('ol.render.IRender'); @@ -19,14 +19,14 @@ ol.render.ReplayType = { /** * @interface */ -ol.render.IReplayReplayGroup = function() { +ol.render.IReplayGroup = function() { }; /** * FIXME empty description for jsdoc */ -ol.render.IReplayReplayGroup.prototype.finish = function() { +ol.render.IReplayGroup.prototype.finish = function() { }; @@ -35,7 +35,7 @@ ol.render.IReplayReplayGroup.prototype.finish = function() { * @param {ol.render.ReplayType} replayType Replay type. * @return {ol.render.IRender} Replay. */ -ol.render.IReplayReplayGroup.prototype.getReplay = +ol.render.IReplayGroup.prototype.getReplay = function(zIndex, replayType) { }; @@ -43,5 +43,5 @@ ol.render.IReplayReplayGroup.prototype.getReplay = /** * @return {boolean} Is empty. */ -ol.render.IReplayReplayGroup.prototype.isEmpty = function() { +ol.render.IReplayGroup.prototype.isEmpty = function() { }; diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index 2fb0a590c0..ae55e006f2 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -7,12 +7,12 @@ goog.require('ol.geom.MultiPoint'); goog.require('ol.geom.MultiPolygon'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); -goog.require('ol.render.IReplayReplayGroup'); +goog.require('ol.render.IReplayGroup'); goog.require('ol.style.Style'); /** - * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. + * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.Feature} feature Feature. * @param {ol.style.Style} style Style. */ @@ -26,7 +26,7 @@ ol.renderer.vector.renderFeature = function(replayGroup, feature, style) { /** - * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. + * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -46,7 +46,7 @@ ol.renderer.vector.renderLineStringGeometry_ = /** - * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. + * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -67,7 +67,7 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = /** - * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. + * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -88,7 +88,7 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = /** - * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. + * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -107,7 +107,7 @@ ol.renderer.vector.renderPointGeometry_ = /** - * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. + * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -126,7 +126,7 @@ ol.renderer.vector.renderMultiPointGeometry_ = /** - * @param {ol.render.IReplayReplayGroup} replayGroup Replay group. + * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. * @private @@ -149,7 +149,7 @@ ol.renderer.vector.renderPolygonGeometry_ = * @const * @private * @type {Object.} */ ol.renderer.vector.GEOMETRY_RENDERERS_ = { From f62b450cb7be98f325c95860d76d26b9a10b1b94 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 20 Nov 2013 12:34:47 +0100 Subject: [PATCH 294/919] Use goog.asserts.assertsInstanceOf --- src/ol/render/vector.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index ae55e006f2..fccf04ddc6 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -36,7 +36,7 @@ ol.renderer.vector.renderLineStringGeometry_ = if (goog.isNull(style.stroke)) { return; } - goog.asserts.assert(geometry instanceof ol.geom.LineString); + goog.asserts.assertInstanceof(geometry, ol.geom.LineString); var lineStringGeometry = /** @type {ol.geom.LineString} */ (geometry); var replay = replayGroup.getReplay( style.zIndex, ol.render.ReplayType.LINE_STRING); @@ -56,7 +56,7 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = if (goog.isNull(style.stroke)) { return; } - goog.asserts.assert(geometry instanceof ol.geom.MultiLineString); + goog.asserts.assertInstanceof(geometry, ol.geom.MultiLineString); var multiLineStringGeometry = /** @type {ol.geom.MultiLineString} */ (geometry); var replay = replayGroup.getReplay( @@ -77,7 +77,7 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = if (goog.isNull(style.stroke) && goog.isNull(style.fill)) { return; } - goog.asserts.assert(geometry instanceof ol.geom.MultiPolygon); + goog.asserts.assertInstanceof(geometry, ol.geom.MultiPolygon); var multiPolygonGeometry = /** @type {ol.geom.MultiPolygon} */ (geometry); var replay = replayGroup.getReplay( @@ -98,7 +98,7 @@ ol.renderer.vector.renderPointGeometry_ = if (goog.isNull(style.image)) { return; } - goog.asserts.assert(geometry instanceof ol.geom.Point); + goog.asserts.assertInstanceof(geometry, ol.geom.Point); var pointGeometry = /** @type {ol.geom.Point} */ (geometry); var replay = replayGroup.getReplay(style.zIndex, ol.render.ReplayType.IMAGE); replay.setImageStyle(style.image); @@ -117,7 +117,7 @@ ol.renderer.vector.renderMultiPointGeometry_ = if (goog.isNull(style.image)) { return; } - goog.asserts.assert(geometry instanceof ol.geom.MultiPoint); + goog.asserts.assertInstanceof(geometry, ol.geom.MultiPoint); var multiPointGeometry = /** @type {ol.geom.MultiPoint} */ (geometry); var replay = replayGroup.getReplay(style.zIndex, ol.render.ReplayType.IMAGE); replay.setImageStyle(style.image); @@ -136,7 +136,7 @@ ol.renderer.vector.renderPolygonGeometry_ = if (goog.isNull(style.fill) && goog.isNull(style.stroke)) { return; } - goog.asserts.assert(geometry instanceof ol.geom.Polygon); + goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); var polygonGeometry = /** @type {ol.geom.Polygon} */ (geometry); var replay = replayGroup.getReplay( style.zIndex, ol.render.ReplayType.POLYGON); From 4e61f045e1d95f42c42f994dcda8ff54e5915a4d Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 20 Nov 2013 15:14:26 +0100 Subject: [PATCH 295/919] Remove clearRect from geojson example --- examples/geojson.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index c915a6013e..72f8312fb8 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -133,10 +133,6 @@ var tmpStyle = { vectorLayer.on('postcompose', function(event) { var render = event.getRender(); render.drawFeature(tmpFeature, tmpStyle); - var context = event.getContext(); - if (context !== null) { - context.clearRect(0, 0, 10, 10); - } }); var map = new ol.Map({ From 1cfd185355cad9db4f6b336e7cb52c114aa26147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:40:52 +0100 Subject: [PATCH 296/919] Add ol.style.Style constructor --- src/ol/style/style.js | 58 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/ol/style/style.js diff --git a/src/ol/style/style.js b/src/ol/style/style.js new file mode 100644 index 0000000000..282efb1b3b --- /dev/null +++ b/src/ol/style/style.js @@ -0,0 +1,58 @@ +// FIXME export ol.style.Style + +goog.provide('ol.style.Style'); +goog.provide('ol.style.StyleFunction'); + +goog.require('ol.style.Fill'); +goog.require('ol.style.Image'); + + +/** + * @typedef {{fill: (ol.style.Fill|undefined), + * image: (ol.style.Image|undefined), + * stroke: (ol.style.Stroke|undefined), + * text: (ol.style.Text|undefined), + * zIndex: (number|undefined)}} + */ +ol.style.StyleOptions; + + + +/** + * @constructor + * @param {ol.style.StyleOptions} options Options. + */ +ol.style.Style = function(options) { + + /** + * @type {ol.style.Fill} + */ + this.fill = goog.isDef(options.fill) ? options.fill : null; + + /** + * @type {ol.style.Image} + */ + this.image = goog.isDef(options.image) ? options.image : null; + + /** + * @type {ol.style.Stroke} + */ + this.stroke = goog.isDef(options.stroke) ? options.stroke : null; + + /** + * @type {ol.style.Text} + */ + this.text = goog.isDef(options.text) ? options.text : null; + + /** + * @type {number|undefined} + */ + this.zIndex = options.zIndex; + +}; + + +/** + * @typedef {function(ol.Feature): ol.style.Style} + */ +ol.style.StyleFunction; From f38054d7379af07608b98586e3b6abdfb2725f40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:41:05 +0100 Subject: [PATCH 297/919] Add ol.style.Fill constructor --- src/ol/style/fillstyle.js | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/ol/style/fillstyle.js diff --git a/src/ol/style/fillstyle.js b/src/ol/style/fillstyle.js new file mode 100644 index 0000000000..978aa95c2e --- /dev/null +++ b/src/ol/style/fillstyle.js @@ -0,0 +1,46 @@ +goog.provide('ol.style.Fill'); + +goog.require('ol.color'); + + +/** + * @typedef {{color: (ol.Color|string)}} + */ +ol.style.FillOptions; + + + +/** + * @constructor + * @param {ol.style.FillOptions} options Options. + */ +ol.style.Fill = function(options) { + + /** + * @type {ol.Color|string} + */ + this.color = options.color; +}; + + +/** + * @param {ol.style.Fill} fillStyle1 Fill style 1. + * @param {ol.style.Fill} fillStyle2 Fill style 2. + * @return {boolean} Equals. + */ +ol.style.Fill.equals = function(fillStyle1, fillStyle2) { + if (!goog.isNull(fillStyle1)) { + if (!goog.isNull(fillStyle2)) { + return fillStyle1 === fillStyle2 || + ol.color.stringOrColorEquals(fillStyle1.color, fillStyle2.color); + } else { + return false; + } + } else { + if (!goog.isNull(fillStyle2)) { + return false; + } else { + return true; + } + } +}; From 22fa0e305a91eddb61aefd41fdbe61ba1326b106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:41:14 +0100 Subject: [PATCH 298/919] Add ol.style.Image constructor --- src/ol/style/imagestyle.js | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/ol/style/imagestyle.js diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js new file mode 100644 index 0000000000..867b4e9f20 --- /dev/null +++ b/src/ol/style/imagestyle.js @@ -0,0 +1,49 @@ +// FIXME export ol.style.Image +// FIXME decide default value for snapToPixel + +goog.provide('ol.style.Image'); + + +/** + * @typedef {{anchor: Array., + * image: (HTMLCanvasElement|HTMLVideoElement|Image), + * rotation: number, + * snapToPixel: (boolean|undefined), + * subtractViewRotation: boolean}} + */ +ol.style.ImageOptions; + + + +/** + * @constructor + * @param {ol.style.ImageOptions} options Options. + */ +ol.style.Image = function(options) { + + /** + * @type {Array.} + */ + this.anchor = options.anchor; + + /** + * @type {HTMLCanvasElement|HTMLVideoElement|Image} + */ + this.image = options.image; + + /** + * @type {number} + */ + this.rotation = options.rotation; + + /** + * @type {boolean|undefined} + */ + this.snapToPixel = options.snapToPixel; + + /** + * @type {boolean} + */ + this.subtractViewRotation = options.subtractViewRotation; + +}; From f1d67f69c3947bba5b4467e587e1651fb0f10aed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:41:24 +0100 Subject: [PATCH 299/919] Add ol.style.Stroke constructor --- src/ol/style/strokestyle.js | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/ol/style/strokestyle.js diff --git a/src/ol/style/strokestyle.js b/src/ol/style/strokestyle.js new file mode 100644 index 0000000000..8eb2a5f285 --- /dev/null +++ b/src/ol/style/strokestyle.js @@ -0,0 +1,54 @@ +goog.provide('ol.style.Stroke'); + +goog.require('ol.color'); + + +/** + * @typedef {{color: (ol.Color|string), + * width: number}} + */ +ol.style.StrokeOptions; + + + +/** + * @constructor + * @param {ol.style.StrokeOptions} options Options. + */ +ol.style.Stroke = function(options) { + + /** + * @type {ol.Color|string} + */ + this.color = options.color; + + /** + * @type {number} + */ + this.width = options.width; +}; + + +/** + * @param {ol.style.Stroke} strokeStyle1 Stroke style 1. + * @param {ol.style.Stroke} strokeStyle2 Stroke style 2. + * @return {boolean} Equals. + */ +ol.style.Stroke.equals = function(strokeStyle1, strokeStyle2) { + if (!goog.isNull(strokeStyle1)) { + if (!goog.isNull(strokeStyle2)) { + return strokeStyle1 === strokeStyle2 || + (ol.color.stringOrColorEquals(strokeStyle1.color, + strokeStyle2.color) && + strokeStyle1.width == strokeStyle2.width); + } else { + return false; + } + } else { + if (!goog.isNull(strokeStyle2)) { + return false; + } else { + return true; + } + } +}; From cef2cac0d3efa4a3dbb6443b233c829e5a2e1343 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:42:05 +0100 Subject: [PATCH 300/919] Add ol.style.Text constructor --- src/ol/style/textstyle.js | 70 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/ol/style/textstyle.js diff --git a/src/ol/style/textstyle.js b/src/ol/style/textstyle.js new file mode 100644 index 0000000000..d937db1fdc --- /dev/null +++ b/src/ol/style/textstyle.js @@ -0,0 +1,70 @@ +goog.provide('ol.style.Text'); + + +/** + * @typedef {{font: (string|undefined), + * text: (string|undefined), + * textAlign: (string|undefined), + * textBaseline: (string|undefined)}} + */ +ol.style.TextOptions; + + + +/** + * @constructor + * @param {ol.style.TextOptions} options Options. + */ +ol.style.Text = function(options) { + + /** + * @type {string|undefined} + */ + this.font = options.font; + + /** + * @type {string|undefined} + */ + this.text = options.text; + + /** + * @type {string|undefined} + */ + this.textAlign = options.textAlign; + + /** + * @type {string|undefined} + */ + this.textBaseline = options.textBaseline; + + /** + * @type {number} + */ + this.width = options.width; +}; + + +/** + * @param {ol.style.Text} textStyle1 Text style 1. + * @param {ol.style.Text} textStyle2 Text style 2. + * @return {boolean} Equals. + */ +ol.style.Text.equals = function(textStyle1, textStyle2) { + if (!goog.isNull(textStyle1)) { + if (!goog.isNull(textStyle2)) { + return textStyle1 === textStyle2 || ( + textStyle1.font == textStyle2.font && + textStyle1.text == textStyle2.text && + textStyle1.textAlign == textStyle2.textAlign && + textStyle1.textBaseline == textStyle2.textBaseline); + } else { + return false; + } + } else { + if (!goog.isNull(textStyle2)) { + return false; + } else { + return true; + } + } +}; From fd0ef8f23801dbce471c818fbf4c9ff3f232e93e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:45:16 +0100 Subject: [PATCH 301/919] Use new ol.style in ol.render.DragBox --- src/ol/render/dragbox.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ol/render/dragbox.js b/src/ol/render/dragbox.js index 80db9849bf..ecc2246ab1 100644 --- a/src/ol/render/dragbox.js +++ b/src/ol/render/dragbox.js @@ -6,6 +6,7 @@ goog.require('goog.Disposable'); goog.require('goog.events'); goog.require('ol.geom.Polygon'); goog.require('ol.render.EventType'); +goog.require('ol.style.Fill'); goog.require('ol.style.Style'); @@ -45,15 +46,15 @@ ol.render.DragBox = function(opt_style) { * @private * @type {ol.style.Style} */ - this.style_ = goog.isDef(opt_style) ? opt_style : { - fill: { + this.style_ = goog.isDef(opt_style) ? opt_style : new ol.style.Style({ + fill: new ol.style.Fill({ color: 'rgba(0,0,0,0.5)' - }, + }), image: null, stroke: null, text: null, zIndex: 0 - }; + }); }; goog.inherits(ol.render.DragBox, goog.Disposable); From e535a8360f22807c930af5a5844e8748f5fc78fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:45:47 +0100 Subject: [PATCH 302/919] Use new ol.style in ol.render.canvas.Immediate --- src/ol/render/canvas/canvasimmediate.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 44e3c8eccd..225d0e6809 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -7,9 +7,9 @@ goog.require('goog.asserts'); goog.require('ol.color'); goog.require('ol.extent'); goog.require('ol.render.IRender'); -goog.require('ol.style.fill'); -goog.require('ol.style.stroke'); -goog.require('ol.style.text'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Text'); @@ -311,13 +311,13 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { var context = this.context_; var state = this.state_; - if (!ol.style.fill.equals(state.fillStyle, fillStyle)) { + if (!ol.style.Fill.equals(state.fillStyle, fillStyle)) { if (goog.isDefAndNotNull(fillStyle)) { context.fillStyle = ol.color.asString(fillStyle.color); } state.fillStyle = fillStyle; } - if (!ol.style.stroke.equals(state.strokeStyle, strokeStyle)) { + if (!ol.style.Stroke.equals(state.strokeStyle, strokeStyle)) { if (goog.isDefAndNotNull(strokeStyle)) { context.strokeStyle = ol.color.asString(strokeStyle.color); context.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : 1; @@ -341,7 +341,7 @@ ol.render.canvas.Immediate.prototype.setImageStyle = function(imageStyle) { ol.render.canvas.Immediate.prototype.setTextStyle = function(textStyle) { var context = this.context_; var state = this.state_; - if (!ol.style.text.equals(state.textStyle, textStyle)) { + if (!ol.style.Text.equals(state.textStyle, textStyle)) { if (goog.isDefAndNotNull(textStyle)) { context.font = goog.isDef(textStyle.font) ? textStyle.font : '10px sans-serif'; From 1e7266f6b51c8c4ea7717481781a752a43462610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:46:11 +0100 Subject: [PATCH 303/919] Use new ol.style in ol.render.canvas.Replay --- src/ol/render/canvas/canvasreplay.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 13a8ecbd73..17cd203d9a 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -11,8 +11,8 @@ goog.require('ol.extent'); goog.require('ol.geom.flat'); goog.require('ol.render.IRender'); goog.require('ol.render.IReplayGroup'); -goog.require('ol.style.fill'); -goog.require('ol.style.stroke'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); /** @@ -365,7 +365,7 @@ ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = var state = this.state_; var strokeStyle = state.strokeStyle; goog.asserts.assert(goog.isDefAndNotNull(strokeStyle)); - if (!ol.style.stroke.equals(state.currentStrokeStyle, strokeStyle)) { + if (!ol.style.Stroke.equals(state.currentStrokeStyle, strokeStyle)) { if (state.lastStroke != this.coordinates.length) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); state.lastStroke = this.coordinates.length; @@ -583,13 +583,13 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { var state = this.state_; if (goog.isDefAndNotNull(state.fillStyle) && - !ol.style.fill.equals(state.currentFillStyle, state.fillStyle)) { + !ol.style.Fill.equals(state.currentFillStyle, state.fillStyle)) { this.instructions.push( [ol.render.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); state.currentFillStyle = state.fillStyle; } if (goog.isDefAndNotNull(state.strokeStyle) && - !ol.style.stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { + !ol.style.Stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle]); state.currentStrokeStyle = state.strokeStyle; From ddacc0aabdc6d472663e7ed135e6b4d084e11cc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:46:37 +0100 Subject: [PATCH 304/919] Use new ol.style in ol.shape.renderCircle --- src/ol/shape.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/ol/shape.js b/src/ol/shape.js index 446994fb99..365e499d7d 100644 --- a/src/ol/shape.js +++ b/src/ol/shape.js @@ -7,7 +7,9 @@ goog.provide('ol.shape'); goog.require('goog.dom'); goog.require('goog.dom.TagName'); goog.require('ol.color'); -goog.require('ol.style'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Image'); +goog.require('ol.style.Stroke'); /** @@ -41,12 +43,12 @@ ol.shape.renderCircle = function(radius, fillStyle, strokeStyle) { context.stroke(); } - return { + return new ol.style.Image({ anchor: [size / 2, size / 2], image: canvas, rotation: 0, snapToPixel: undefined, subtractViewRotation: false - }; + }); }; From efba141bf0c6544089d79cb10256019b21bb0960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:47:17 +0100 Subject: [PATCH 305/919] Do not use default style function --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 4e17bac78b..92108bc7f9 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -6,7 +6,6 @@ goog.require('ol.extent'); goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.vector'); -goog.require('ol.style.DefaultStyleFunction'); @@ -110,11 +109,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = goog.dispose(this.replayGroup_); this.replayGroup_ = null; - /** @type {function(ol.Feature): ol.style.Style|undefined} */ var styleFunction = vectorLayer.getStyleFunction(); - if (!goog.isDef(styleFunction)) { - styleFunction = ol.style.DefaultStyleFunction; - } var replayGroup = new ol.render.canvas.ReplayGroup(); vectorSource.forEachFeatureInExtent(extent, /** From 644748860b2e37c6a22e61e62893b3fa08ea7c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:48:12 +0100 Subject: [PATCH 306/919] Remove the previous ol.style types and functions --- src/ol/style.js | 205 ------------------------------------------------ 1 file changed, 205 deletions(-) delete mode 100644 src/ol/style.js diff --git a/src/ol/style.js b/src/ol/style.js deleted file mode 100644 index 41ff550109..0000000000 --- a/src/ol/style.js +++ /dev/null @@ -1,205 +0,0 @@ -// FIXME decide default value for snapToPixel - -goog.provide('ol.style'); -goog.provide('ol.style.DefaultStyleFunction'); -goog.provide('ol.style.Style'); -goog.provide('ol.style.StyleFunction'); -goog.provide('ol.style.fill'); -goog.provide('ol.style.stroke'); -goog.provide('ol.style.text'); - -goog.require('goog.functions'); -goog.require('ol.color'); - - -/** - * @typedef {{color: (ol.Color|string)}|null|undefined} - */ -ol.style.Fill; - - -/** - * @param {ol.style.Fill} fillStyle1 Fill style 1. - * @param {ol.style.Fill} fillStyle2 Fill style 2. - * @return {boolean} Equals. - */ -ol.style.fill.equals = function(fillStyle1, fillStyle2) { - if (goog.isDefAndNotNull(fillStyle1)) { - if (goog.isDefAndNotNull(fillStyle2)) { - return fillStyle1 === fillStyle2 || - ol.color.stringOrColorEquals(fillStyle1.color, fillStyle2.color); - } else { - return false; - } - } else { - if (goog.isDefAndNotNull(fillStyle2)) { - return false; - } else { - return true; - } - } -}; - - -/** - * @typedef {{anchor: Array., - * image: (HTMLCanvasElement|HTMLVideoElement|Image), - * rotation: number, - * snapToPixel: (boolean|undefined), - * subtractViewRotation: boolean}|null|undefined} - */ -ol.style.Image; - - -/** - * @typedef {{color: (ol.Color|string), - * width: number}|null|undefined} - */ -ol.style.Stroke; - - -/** - * @param {ol.style.Stroke} strokeStyle1 Stroke style 1. - * @param {ol.style.Stroke} strokeStyle2 Stroke style 2. - * @return {boolean} Equals. - */ -ol.style.stroke.equals = function(strokeStyle1, strokeStyle2) { - if (goog.isDefAndNotNull(strokeStyle1)) { - if (goog.isDefAndNotNull(strokeStyle2)) { - return strokeStyle1 === strokeStyle2 || - (ol.color.stringOrColorEquals(strokeStyle1.color, - strokeStyle2.color) && - strokeStyle1.width == strokeStyle2.width); - } else { - return false; - } - } else { - if (goog.isDefAndNotNull(strokeStyle2)) { - return false; - } else { - return true; - } - } -}; - - -/** - * @typedef {{font: (string|undefined), - * text: (string|undefined), - * textAlign: (string|undefined), - * textBaseline: (string|undefined)}|null|undefined} - */ -ol.style.Text; - - -/** - * @param {ol.style.Text} textStyle1 Text style 1. - * @param {ol.style.Text} textStyle2 Text style 2. - * @return {boolean} Equals. - */ -ol.style.text.equals = function(textStyle1, textStyle2) { - if (goog.isDefAndNotNull(textStyle1)) { - if (goog.isDefAndNotNull(textStyle2)) { - return textStyle1 === textStyle2 || ( - textStyle1.font == textStyle2.font && - textStyle1.text == textStyle2.text && - textStyle1.textAlign == textStyle2.textAlign && - textStyle1.textBaseline == textStyle2.textBaseline); - } else { - return false; - } - } else { - if (goog.isDefAndNotNull(textStyle2)) { - return false; - } else { - return true; - } - } -}; - - -/** - * @typedef {{fill: ol.style.Fill, - * image: ol.style.Image, - * stroke: ol.style.Stroke, - * text: ol.style.Text, - * zIndex: (number|undefined)}} - */ -ol.style.Style; - - -/** - * @typedef {function(ol.Feature): ol.style.Style} - */ -ol.style.StyleFunction; - - -/** - * @const - * @type {ol.style.Fill} - */ -ol.style.DEFAULT_FILL_STYLE = { - color: 'rgba(255,0,0,0.1)' -}; - - -/** - * @const - * @type {ol.style.Image} - */ -ol.style.DEFAULT_IMAGE_STYLE = { - anchor: [0, 0], - image: null, // FIXME - rotation: 0.0, - snapToPixel: undefined, - subtractViewRotation: false -}; - - -/** - * @const - * @type {ol.style.Stroke} - */ -ol.style.DEFAULT_STROKE_STYLE = { - color: '#ff0000', - width: 3 -}; - - -/** - * @const - * @type {ol.style.Text} - */ -ol.style.DEFAULT_TEXT_STYLE = { - font: '10px sans-serif', - text: undefined, - textAlign: 'start', - textBaseline: 'alphabetic' -}; - - -/** - * @const - * @type {number} - */ -ol.style.DEFAULT_Z_INDEX = 0; - - -/** - * @const - * @type {ol.style.Style} - */ -ol.style.DEFAULT_STYLE = { - fill: ol.style.DEFAULT_FILL_STYLE, - image: ol.style.DEFAULT_IMAGE_STYLE, - stroke: ol.style.DEFAULT_STROKE_STYLE, - text: ol.style.DEFAULT_TEXT_STYLE, - zIndex: ol.style.DEFAULT_Z_INDEX -}; - - -/** - * @param {ol.Feature} feature Feature. - * @return {ol.style.Style} Style. - */ -ol.style.DefaultStyleFunction = goog.functions.constant(ol.style.DEFAULT_STYLE); From db7ce8e657444530d0b230527eb8dcc1f11da15b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:48:32 +0100 Subject: [PATCH 307/919] Use new ol.style in dynamic-data example --- examples/dynamic-data.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/dynamic-data.js b/examples/dynamic-data.js index e0bd69193e..77a000c30a 100644 --- a/examples/dynamic-data.js +++ b/examples/dynamic-data.js @@ -5,6 +5,8 @@ goog.require('ol.geom.MultiPoint'); goog.require('ol.layer.Tile'); goog.require('ol.shape'); goog.require('ol.source.MapQuestOpenAerial'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); var map = new ol.Map({ @@ -24,12 +26,9 @@ map.beforeRender(function(map, frameState) { frameState.animate = true; return true; }); -var imageStyle = ol.shape.renderCircle(5, { - color: 'yellow' -}, { - color: 'red', - width: 1 -}); +var imageStyle = ol.shape.renderCircle(5, + new ol.style.Fill({color: 'yellow'}), + new ol.style.Stroke({color: 'red', width: 1})); var n = 200; var omegaTheta = 30000; // Rotation period in ms var R = 7e6; From 602fd7f13a8cc2f194ff8784dc1f7b274c79a4c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:48:46 +0100 Subject: [PATCH 308/919] Use new ol.style in geojson example --- examples/geojson.js | 58 ++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 72f8312fb8..34ca5a7021 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -9,52 +9,56 @@ goog.require('ol.layer.Vector'); goog.require('ol.shape'); goog.require('ol.source.OSM'); goog.require('ol.source.Vector'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); -var image = ol.shape.renderCircle(5, null, {color: 'red', width: 1}); +var image = ol.shape.renderCircle(5, null, + new ol.style.Stroke({color: 'red', width: 1})); var styleFunction = function(feature) { switch (feature.getGeometry().getType()) { case 'Point': - return { + return new ol.style.Style({ image: image - }; + }); case 'Polygon': - return { - stroke: { + return new ol.style.Style({ + stroke: new ol.style.Stroke({ color: 'blue', width: 3 - }, - fill: { + }), + fill: new ol.style.Fill({ color: 'rgba(0, 0, 255, 0.1)' - } - }; + }) + }); case 'MultiLineString': - return { - stroke: { + return new ol.style.Style({ + stroke: new ol.style.Stroke({ color: 'green', width: 1 - } - }; + }) + }); case 'MultiPolygon': - return { - stroke: { + return new ol.style.Style({ + stroke: new ol.style.Stroke({ color: 'yellow', width: 1 - }, - fill: { + }), + fill: new ol.style.Fill({ color: 'rgba(255, 255, 0, 0.1)' - } - }; + }) + }); default: - return { - stroke: { + return new ol.style.Style({ + stroke: new ol.style.Stroke({ color: 'red', width: 2 - }, - fill: { + }), + fill: new ol.style.Fill({ color: 'rgba(255, 0, 0, 0.1)' - } - }; + }) + }); } }; @@ -125,10 +129,10 @@ var tmpFeature = new ol.Feature( var tmpStyle = { fill: null, image: null, - stroke: { + stroke: new ol.style.Stroke({ color: 'magenta', width: 5 - } + }) }; vectorLayer.on('postcompose', function(event) { var render = event.getRender(); From 6db824baa4b73957bf68bbba8f454fa6cca797ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:49:00 +0100 Subject: [PATCH 309/919] Use new ol.style in rtree example --- examples/rtree.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/examples/rtree.js b/examples/rtree.js index 92d1843330..e3eed471e9 100644 --- a/examples/rtree.js +++ b/examples/rtree.js @@ -11,6 +11,8 @@ goog.require('ol.layer.Vector'); goog.require('ol.shape'); goog.require('ol.source.Vector'); goog.require('ol.structs.RTree'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); /** @@ -57,9 +59,10 @@ var vectorSource = new ol.source.Vector({ features: features }); -var style = { - image: ol.shape.renderCircle(3, null, {color: 'red', width: 1}) -}; +var style = new ol.style.Style({ + image: ol.shape.renderCircle(3, null, + new ol.style.Stroke({color: 'red', width: 1})) +}); var colors = ['red', 'orange', 'yellow', 'blue', 'green', 'indigo', 'violet']; var depthStyle = []; From ddb2786394abeb39f851cdf064f3816e8f7df128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:49:18 +0100 Subject: [PATCH 310/919] Use new ol.style in synthetic-data example --- examples/synthetic-data.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/examples/synthetic-data.js b/examples/synthetic-data.js index bfc5e7e4af..2664d4355d 100644 --- a/examples/synthetic-data.js +++ b/examples/synthetic-data.js @@ -7,6 +7,8 @@ goog.require('ol.geom.Point'); goog.require('ol.layer.Vector'); goog.require('ol.shape'); goog.require('ol.source.Vector'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); var count = 20000; @@ -23,12 +25,14 @@ for (var i = 0; i < count; ++i) { var styles = { '10': { - image: ol.shape.renderCircle( - 5, {color: '#666666'}, {color: '#bada55', width: 1}) + image: ol.shape.renderCircle(5, + new ol.style.Fill({color: '#666666'}), + new ol.style.Stroke({color: '#bada55', width: 1})) }, '20': { - image: ol.shape.renderCircle( - 10, {color: '#666666'}, {color: '#bada55', width: 1}) + image: ol.shape.renderCircle(10, + new ol.style.Fill({color: '#666666'}), + new ol.style.Stroke({color: '#bada55', width: 1})) } }; From 7d9b09b4acd96a99af0bcd969097731a3e0d21ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:49:28 +0100 Subject: [PATCH 311/919] Use new ol.style in synthetic-lines example --- examples/synthetic-lines.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/synthetic-lines.js b/examples/synthetic-lines.js index 1c1838433e..3ca961cb52 100644 --- a/examples/synthetic-lines.js +++ b/examples/synthetic-lines.js @@ -5,6 +5,8 @@ goog.require('ol.View2D'); goog.require('ol.geom.LineString'); goog.require('ol.layer.Vector'); goog.require('ol.source.Vector'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); var count = 10000; @@ -40,12 +42,12 @@ var vector = new ol.layer.Vector({ features: features }), styleFunction: function(feature) { - return { - stroke: { + return new ol.style.Style({ + stroke: new ol.style.Stroke({ color: '#666666', width: 1 - } - }; + }) + }); } }); From 16f3d5879e862a2b835899a2116ba08950240263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 14:49:40 +0100 Subject: [PATCH 312/919] Use new ol.style in vector-layer example --- examples/vector-layer.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 0aa34ad5fe..98517b73a7 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -7,6 +7,9 @@ goog.require('ol.layer.Vector'); goog.require('ol.proj'); goog.require('ol.source.MapQuestOpenAerial'); goog.require('ol.source.Vector'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); var map = new ol.Map({ layers: [ @@ -23,15 +26,15 @@ var map = new ol.Map({ }); var vectorSource = new ol.source.Vector(); -var style = { - fill: { +var style = new ol.style.Style({ + fill: new ol.style.Fill({ color: 'rgba(255, 255, 255, 0.6)' - }, - stroke: { + }), + stroke: new ol.style.Stroke({ color: '#319FD3', width: 1 - } -}; + }) +}); $.getJSON('data/countries.geojson', function(data) { var format = new ol.format.GeoJSON(); From 6e2f907e09fc9c0c9f6ad88888026855ac6c09bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 15:21:30 +0100 Subject: [PATCH 313/919] Export ol.style.Fill --- src/objectliterals.jsdoc | 6 ++++++ src/ol/style/fillstyle.exports | 1 + src/ol/style/fillstyle.js | 6 ------ 3 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 src/ol/style/fillstyle.exports diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index a27dae8aa2..81e4e62488 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -618,6 +618,12 @@ * @todo stability experimental */ +/** + * @typedef {Object} ol.style.FillOptions + * @property {ol.Color|string} color Color. + * @todo stability experimental + */ + /** * @typedef {Object} ol.tilegrid.TileGridOptions * @property {number|undefined} minZoom Minimum zoom. diff --git a/src/ol/style/fillstyle.exports b/src/ol/style/fillstyle.exports new file mode 100644 index 0000000000..9dd7392396 --- /dev/null +++ b/src/ol/style/fillstyle.exports @@ -0,0 +1 @@ +@exportClass ol.style.Fill ol.style.FillOptions diff --git a/src/ol/style/fillstyle.js b/src/ol/style/fillstyle.js index 978aa95c2e..5c6a040da5 100644 --- a/src/ol/style/fillstyle.js +++ b/src/ol/style/fillstyle.js @@ -3,12 +3,6 @@ goog.provide('ol.style.Fill'); goog.require('ol.color'); -/** - * @typedef {{color: (ol.Color|string)}} - */ -ol.style.FillOptions; - - /** * @constructor From 3971425677716be31c7e71abae894da417e7fdbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 15:23:14 +0100 Subject: [PATCH 314/919] Export ol.style.Image --- src/objectliterals.jsdoc | 11 +++++++++++ src/ol/style/imagestyle.exports | 1 + src/ol/style/imagestyle.js | 11 ----------- 3 files changed, 12 insertions(+), 11 deletions(-) create mode 100644 src/ol/style/imagestyle.exports diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 81e4e62488..19dd3e250a 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -624,6 +624,17 @@ * @todo stability experimental */ +/** + * @typedef {Object} ol.style.ImageOptions + * @property {Array.} anchor Anchor. + * @property {HTMLCanvasElement|HTMLVideoElement|Image} image Image. + * @property {number} rotation Rotation. + * @property {boolean|undefined} snapToPixel Whether the image should be + * snapped to the closed pixel at rendering time. + * @property {boolean} subtractViewRotation Whether the image should be + * rotated with the view or not. + */ + /** * @typedef {Object} ol.tilegrid.TileGridOptions * @property {number|undefined} minZoom Minimum zoom. diff --git a/src/ol/style/imagestyle.exports b/src/ol/style/imagestyle.exports new file mode 100644 index 0000000000..fb703b2c38 --- /dev/null +++ b/src/ol/style/imagestyle.exports @@ -0,0 +1 @@ +@exportClass ol.style.Image ol.style.ImageOptions diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 867b4e9f20..507de3fc41 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -1,19 +1,8 @@ -// FIXME export ol.style.Image // FIXME decide default value for snapToPixel goog.provide('ol.style.Image'); -/** - * @typedef {{anchor: Array., - * image: (HTMLCanvasElement|HTMLVideoElement|Image), - * rotation: number, - * snapToPixel: (boolean|undefined), - * subtractViewRotation: boolean}} - */ -ol.style.ImageOptions; - - /** * @constructor From dc49cc4c2f7d8eaed9f20a48137dc930ab3b83b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 15:23:50 +0100 Subject: [PATCH 315/919] Export ol.style.Stroke --- src/objectliterals.jsdoc | 7 +++++++ src/ol/style/strokestyle.exports | 1 + src/ol/style/strokestyle.js | 7 ------- 3 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 src/ol/style/strokestyle.exports diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 19dd3e250a..fa49487731 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -635,6 +635,13 @@ * rotated with the view or not. */ +/** + * @typedef {Object} ol.style.StrokeOptions + * @property {ol.Color|string} color Color. + * @property {number} width Width. + * @todo stability experimental + */ + /** * @typedef {Object} ol.tilegrid.TileGridOptions * @property {number|undefined} minZoom Minimum zoom. diff --git a/src/ol/style/strokestyle.exports b/src/ol/style/strokestyle.exports new file mode 100644 index 0000000000..8fe1512b95 --- /dev/null +++ b/src/ol/style/strokestyle.exports @@ -0,0 +1 @@ +@exportClass ol.style.Stroke ol.style.StrokeOptions diff --git a/src/ol/style/strokestyle.js b/src/ol/style/strokestyle.js index 8eb2a5f285..5be2a6004d 100644 --- a/src/ol/style/strokestyle.js +++ b/src/ol/style/strokestyle.js @@ -3,13 +3,6 @@ goog.provide('ol.style.Stroke'); goog.require('ol.color'); -/** - * @typedef {{color: (ol.Color|string), - * width: number}} - */ -ol.style.StrokeOptions; - - /** * @constructor From e7837038540dc3e20af5161964db6e55464c3957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 15:25:21 +0100 Subject: [PATCH 316/919] Export ol.style.Text --- src/objectliterals.jsdoc | 9 +++++++++ src/ol/style/textstyle.exports | 1 + src/ol/style/textstyle.js | 9 --------- 3 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 src/ol/style/textstyle.exports diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index fa49487731..38069f9314 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -642,6 +642,15 @@ * @todo stability experimental */ +/** + * @typedef {Object} ol.style.TextOptions + * @property {string|undefined} font Font. + * @property {string|undefined} text Text. + * @property {string|undefined} textAlign Text alignment. + * @property {string|undefined} textBaseline Text base line. + * @todo stability experimental + */ + /** * @typedef {Object} ol.tilegrid.TileGridOptions * @property {number|undefined} minZoom Minimum zoom. diff --git a/src/ol/style/textstyle.exports b/src/ol/style/textstyle.exports new file mode 100644 index 0000000000..989337adcf --- /dev/null +++ b/src/ol/style/textstyle.exports @@ -0,0 +1 @@ +@exportClass ol.style.Text ol.style.TextOptions diff --git a/src/ol/style/textstyle.js b/src/ol/style/textstyle.js index d937db1fdc..37062df057 100644 --- a/src/ol/style/textstyle.js +++ b/src/ol/style/textstyle.js @@ -1,15 +1,6 @@ goog.provide('ol.style.Text'); -/** - * @typedef {{font: (string|undefined), - * text: (string|undefined), - * textAlign: (string|undefined), - * textBaseline: (string|undefined)}} - */ -ol.style.TextOptions; - - /** * @constructor From 38bc0a28a6773c40843d72d3b3b5931c5a0a71f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 15:25:42 +0100 Subject: [PATCH 317/919] Export ol.style.Style --- src/objectliterals.jsdoc | 10 ++++++++++ src/ol/style/style.exports | 1 + src/ol/style/style.js | 12 ------------ 3 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 src/ol/style/style.exports diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 38069f9314..ebda159de1 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -651,6 +651,16 @@ * @todo stability experimental */ +/** + * @typedef {Object} ol.style.StyleOptions + * @property {ol.style.Fill|undefined} fill Fill style. + * @property {ol.style.Image|undefined} image Image style. + * @property {ol.style.Stroke|undefined} stroke Stroke style. + * @property {ol.style.Text|undefined} text Text style. + * @property {number|undefined} zIndex Z index. + * @todo stability experimental + */ + /** * @typedef {Object} ol.tilegrid.TileGridOptions * @property {number|undefined} minZoom Minimum zoom. diff --git a/src/ol/style/style.exports b/src/ol/style/style.exports new file mode 100644 index 0000000000..ccd640f5d9 --- /dev/null +++ b/src/ol/style/style.exports @@ -0,0 +1 @@ +@exportClass ol.style.Style ol.style.StyleOptions diff --git a/src/ol/style/style.js b/src/ol/style/style.js index 282efb1b3b..af62eb47db 100644 --- a/src/ol/style/style.js +++ b/src/ol/style/style.js @@ -1,5 +1,3 @@ -// FIXME export ol.style.Style - goog.provide('ol.style.Style'); goog.provide('ol.style.StyleFunction'); @@ -7,16 +5,6 @@ goog.require('ol.style.Fill'); goog.require('ol.style.Image'); -/** - * @typedef {{fill: (ol.style.Fill|undefined), - * image: (ol.style.Image|undefined), - * stroke: (ol.style.Stroke|undefined), - * text: (ol.style.Text|undefined), - * zIndex: (number|undefined)}} - */ -ol.style.StyleOptions; - - /** * @constructor From 93087c76617b018f38745cf19dd7cff5391d3dfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 20 Nov 2013 15:48:11 +0100 Subject: [PATCH 318/919] Remove unused ol.style.Text width property --- src/ol/style/textstyle.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/ol/style/textstyle.js b/src/ol/style/textstyle.js index 37062df057..8d50d1120c 100644 --- a/src/ol/style/textstyle.js +++ b/src/ol/style/textstyle.js @@ -27,11 +27,6 @@ ol.style.Text = function(options) { * @type {string|undefined} */ this.textBaseline = options.textBaseline; - - /** - * @type {number} - */ - this.width = options.width; }; From 84dcf24511f356744d402372450fafed9f96bf5e Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 20 Nov 2013 17:53:10 +0100 Subject: [PATCH 319/919] Highlight features in vector-layer example --- examples/vector-layer.js | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 98517b73a7..1b8d6b069b 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -53,13 +53,20 @@ $.getJSON('data/countries.geojson', function(data) { })); }); +var highlight; var displayFeatureInfo = function(pixel) { var coordinate = map.getCoordinateFromPixel(pixel); var features = vectorSource.getAllFeaturesAtCoordinate(coordinate); - var innerHTML = features.length ? - features[0].getId() + ': ' + features[0].get('name') : - ' '; - document.getElementById('info').innerHTML = innerHTML; + var info = document.getElementById('info'); + if (features.length > 0) { + var feature = features[0]; + info.innerHTML = feature.getId() + ': ' + features[0].get('name'); + highlight = feature; + } else { + info.innerHTML = ' '; + highlight = undefined; + } + map.render(); }; $(map.getViewport()).on('mousemove', function(evt) { @@ -71,3 +78,18 @@ map.on('singleclick', function(evt) { var pixel = evt.getPixel(); displayFeatureInfo(pixel); }); + +map.on('postcompose', function(evt) { + if (highlight) { + var render = evt.getRender(); + render.drawFeature(highlight, { + stroke: { + color: '#f00', + width: 1 + }, + fill: { + color: 'rgba(255,0,0,0.1)' + } + }); + } +}); From d367560faf2e5797fef19f9023a4783768e48403 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 20 Nov 2013 18:19:00 +0100 Subject: [PATCH 320/919] Avoid re-rendering map on every mousemove --- examples/vector-layer.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 1b8d6b069b..0344a5d2f3 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -55,6 +55,7 @@ $.getJSON('data/countries.geojson', function(data) { var highlight; var displayFeatureInfo = function(pixel) { + var oldHighlight = highlight; var coordinate = map.getCoordinateFromPixel(pixel); var features = vectorSource.getAllFeaturesAtCoordinate(coordinate); var info = document.getElementById('info'); @@ -66,7 +67,9 @@ var displayFeatureInfo = function(pixel) { info.innerHTML = ' '; highlight = undefined; } - map.render(); + if (highlight !== oldHighlight) { + map.render(); + } }; $(map.getViewport()).on('mousemove', function(evt) { From 760ee7c46f3b8e59e294be251c3e69dafa313f7a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 20 Nov 2013 18:20:03 +0100 Subject: [PATCH 321/919] Use requestRenderFrame in vector layer example --- examples/vector-layer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 0344a5d2f3..9f51379172 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -68,7 +68,7 @@ var displayFeatureInfo = function(pixel) { highlight = undefined; } if (highlight !== oldHighlight) { - map.render(); + map.requestRenderFrame(); } }; From 6872beb88a93403311f2ccf1104731b2f69b224f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 10:03:34 +0100 Subject: [PATCH 322/919] Add ol.vec.Mat4.equal2D --- src/ol/vec/mat4.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/ol/vec/mat4.js b/src/ol/vec/mat4.js index 2893b505d0..d2f86b96ed 100644 --- a/src/ol/vec/mat4.js +++ b/src/ol/vec/mat4.js @@ -3,6 +3,29 @@ goog.provide('ol.vec.Mat4'); goog.require('goog.vec.Mat4'); +/** + * Returns true if mat1 and mat2 represent the same 2D transformation. + * @param {goog.vec.Mat4.AnyType} mat1 Matrix 1. + * @param {goog.vec.Mat4.AnyType} mat2 Matrix 2. + * @return {boolean} Equal 2D. + */ +ol.vec.Mat4.equal2D = function(mat1, mat2) { + return ( + goog.vec.Mat4.getElement(mat1, 0, 0) == + goog.vec.Mat4.getElement(mat2, 0, 0) && + goog.vec.Mat4.getElement(mat1, 1, 0) == + goog.vec.Mat4.getElement(mat2, 1, 0) && + goog.vec.Mat4.getElement(mat1, 0, 1) == + goog.vec.Mat4.getElement(mat2, 0, 1) && + goog.vec.Mat4.getElement(mat1, 1, 1) == + goog.vec.Mat4.getElement(mat2, 1, 1) && + goog.vec.Mat4.getElement(mat1, 0, 3) == + goog.vec.Mat4.getElement(mat2, 0, 3) && + goog.vec.Mat4.getElement(mat1, 1, 3) == + goog.vec.Mat4.getElement(mat2, 1, 3)); +}; + + /** * Transforms the given vector with the given matrix storing the resulting, * transformed vector into resultVec. The input vector is multiplied against the From 16957c98339b907e920e48a60736559be7d7a9a6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 10:04:19 +0100 Subject: [PATCH 323/919] Only recompute pixel coordinates when transform has changed --- src/ol/render/canvas/canvasreplay.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 17cd203d9a..47b4d51249 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -6,6 +6,7 @@ goog.provide('ol.render.canvas.ReplayGroup'); goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.object'); +goog.require('goog.vec.Mat4'); goog.require('ol.color'); goog.require('ol.extent'); goog.require('ol.geom.flat'); @@ -13,6 +14,7 @@ goog.require('ol.render.IRender'); goog.require('ol.render.IReplayGroup'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); +goog.require('ol.vec.Mat4'); /** @@ -50,6 +52,12 @@ ol.render.canvas.Replay = function() { */ this.coordinates = []; + /** + * @private + * @type {goog.vec.Mat4.Number} + */ + this.renderedTransform_ = goog.vec.Mat4.createNumber(); + /** * @private * @type {Array.} @@ -95,9 +103,16 @@ ol.render.canvas.Replay.prototype.appendFlatCoordinates = * @param {goog.vec.Mat4.AnyType} transform Transform. */ ol.render.canvas.Replay.prototype.draw = function(context, transform) { - var pixelCoordinates = ol.geom.flat.transform2D( - this.coordinates, 2, transform, this.pixelCoordinates_); - this.pixelCoordinates_ = pixelCoordinates; // FIXME ? + /** @type {Array.} */ + var pixelCoordinates; + if (ol.vec.Mat4.equal2D(transform, this.renderedTransform_)) { + pixelCoordinates = this.pixelCoordinates_; + } else { + pixelCoordinates = ol.geom.flat.transform2D( + this.coordinates, 2, transform, this.pixelCoordinates_); + goog.vec.Mat4.setFromArray(this.renderedTransform_, transform); + goog.asserts.assert(pixelCoordinates === this.pixelCoordinates_); + } var instructions = this.instructions; var i = 0; // instruction index var ii = instructions.length; // end of instructions From 114b48dcfbc87174c56de8e45b382ddca9afbbba Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 10:12:47 +0100 Subject: [PATCH 324/919] Use goog.vec.Mat4.getElement in ol.vec.Mat4.multVec2 --- src/ol/vec/mat4.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ol/vec/mat4.js b/src/ol/vec/mat4.js index d2f86b96ed..108369bf1d 100644 --- a/src/ol/vec/mat4.js +++ b/src/ol/vec/mat4.js @@ -39,8 +39,14 @@ ol.vec.Mat4.equal2D = function(mat1, mat2) { * chained together. */ ol.vec.Mat4.multVec2 = function(mat, vec, resultVec) { + var m00 = goog.vec.Mat4.getElement(mat, 0, 0); + var m10 = goog.vec.Mat4.getElement(mat, 1, 0); + var m01 = goog.vec.Mat4.getElement(mat, 0, 1); + var m11 = goog.vec.Mat4.getElement(mat, 1, 1); + var m03 = goog.vec.Mat4.getElement(mat, 0, 3); + var m13 = goog.vec.Mat4.getElement(mat, 1, 3); var x = vec[0], y = vec[1]; - resultVec[0] = x * mat[0] + y * mat[4] + mat[12]; - resultVec[1] = x * mat[1] + y * mat[5] + mat[13]; + resultVec[0] = m00 * x + m01 * y + m03; + resultVec[1] = m10 * x + m11 * y + m13; return resultVec; }; From 0ccd1ef2177982ed6c79de6adcf87084578949a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 09:38:39 +0100 Subject: [PATCH 325/919] Store raw style values for LineStringReplay --- src/ol/render/canvas/canvasreplay.js | 42 ++++++++++++++++++---------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 47b4d51249..f026635cc6 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -157,10 +157,10 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { context.fillStyle = ol.color.asString(fillStyle.color); ++i; } else if (type == ol.render.canvas.Instruction.SET_STROKE_STYLE) { - goog.asserts.assert(goog.isObject(instruction[1])); - var strokeStyle = /** @type {ol.style.Stroke} */ (instruction[1]); - context.strokeStyle = ol.color.asString(strokeStyle.color); - context.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : 1; + goog.asserts.assert(goog.isString(instruction[1])); + goog.asserts.assert(goog.isNumber(instruction[2])); + context.strokeStyle = /** @type {string} */ (instruction[1]); + context.lineWidth = /** @type {number} */ (instruction[2]); ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { context.stroke(); @@ -353,14 +353,18 @@ ol.render.canvas.LineStringReplay = function() { /** * @private - * @type {{currentStrokeStyle: ol.style.Stroke, + * @type {{currentStrokeStyle: (string|undefined), + * currentLineWidth: (number|undefined), * lastStroke: number, - * strokeStyle: ol.style.Stroke}|null} + * strokeStyle: (string|undefined), + * lineWidth: (number|undefined)}|null} */ this.state_ = { - currentStrokeStyle: null, + currentStrokeStyle: undefined, + currentLineWidth: undefined, lastStroke: 0, - strokeStyle: null + strokeStyle: undefined, + lineWidth: undefined }; }; @@ -379,16 +383,21 @@ ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = function(flatCoordinates, offset, end, stride) { var state = this.state_; var strokeStyle = state.strokeStyle; - goog.asserts.assert(goog.isDefAndNotNull(strokeStyle)); - if (!ol.style.Stroke.equals(state.currentStrokeStyle, strokeStyle)) { + var lineWidth = state.lineWidth; + goog.asserts.assert(goog.isDef(strokeStyle)); + goog.asserts.assert(goog.isDef(lineWidth)); + if (state.currentStrokeStyle != strokeStyle || + state.currentLineWidth != lineWidth) { if (state.lastStroke != this.coordinates.length) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); state.lastStroke = this.coordinates.length; } this.instructions.push( - [ol.render.canvas.Instruction.SET_STROKE_STYLE, strokeStyle], + [ol.render.canvas.Instruction.SET_STROKE_STYLE, + strokeStyle, lineWidth], [ol.render.canvas.Instruction.BEGIN_PATH]); state.currentStrokeStyle = strokeStyle; + state.currentLineWidth = lineWidth; } var myEnd = this.appendFlatCoordinates( flatCoordinates, offset, end, stride, false); @@ -405,7 +414,8 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var strokeStyle = state.strokeStyle; - if (!goog.isDefAndNotNull(strokeStyle)) { + var lineWidth = state.lineWidth; + if (!goog.isDef(strokeStyle) || !goog.isDef(lineWidth)) { return; } ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); @@ -424,7 +434,8 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var strokeStyle = state.strokeStyle; - if (!goog.isDefAndNotNull(strokeStyle)) { + var lineWidth = state.lineWidth; + if (!goog.isDef(strokeStyle) || !goog.isDef(lineWidth)) { return; } ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); @@ -461,7 +472,10 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = goog.asserts.assert(!goog.isNull(this.state_)); goog.asserts.assert(goog.isNull(fillStyle)); goog.asserts.assert(!goog.isNull(strokeStyle)); - this.state_.strokeStyle = strokeStyle; + goog.asserts.assert(goog.isDefAndNotNull(strokeStyle.color)); + goog.asserts.assert(goog.isDef(strokeStyle.width)); + this.state_.strokeStyle = ol.color.asString(strokeStyle.color); + this.state_.lineWidth = strokeStyle.width; }; From 5493543c1fc1436bb42b6d0d5c795804393120b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 10:39:15 +0100 Subject: [PATCH 326/919] Store raw style values for PolygonReplay --- src/ol/render/canvas/canvasreplay.js | 86 ++++++++++++++++++---------- 1 file changed, 56 insertions(+), 30 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index f026635cc6..2c61acb20b 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -12,8 +12,6 @@ goog.require('ol.extent'); goog.require('ol.geom.flat'); goog.require('ol.render.IRender'); goog.require('ol.render.IReplayGroup'); -goog.require('ol.style.Fill'); -goog.require('ol.style.Stroke'); goog.require('ol.vec.Mat4'); @@ -152,9 +150,8 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { } ++i; } else if (type == ol.render.canvas.Instruction.SET_FILL_STYLE) { - goog.asserts.assert(goog.isObject(instruction[1])); - var fillStyle = /** @type {ol.style.Fill} */ (instruction[1]); - context.fillStyle = ol.color.asString(fillStyle.color); + goog.asserts.assert(goog.isString(instruction[1])); + context.fillStyle = /** @type {string} */ (instruction[1]); ++i; } else if (type == ol.render.canvas.Instruction.SET_STROKE_STYLE) { goog.asserts.assert(goog.isString(instruction[1])); @@ -491,16 +488,20 @@ ol.render.canvas.PolygonReplay = function() { /** * @private - * @type {{currentFillStyle: ol.style.Fill, - * currentStrokeStyle: ol.style.Stroke, - * fillStyle: ol.style.Fill, - * strokeStyle: ol.style.Stroke}|null} + * @type {{currentFillColor: (string|undefined), + * currentStrokeStyle: (string|undefined), + * currentLineWidth: (number|undefined), + * fillStyle: (string|undefined), + * strokeStyle: (string|undefined), + * lineWidth: (number|undefined)}|null} */ this.state_ = { - currentFillStyle: null, - currentStrokeStyle: null, - fillStyle: null, - strokeStyle: null + currentFillColor: undefined, + currentStrokeStyle: undefined, + currentLineWidth: undefined, + fillStyle: undefined, + strokeStyle: undefined, + lineWidth: undefined }; }; @@ -531,10 +532,11 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = } // FIXME is it quicker to fill and stroke each polygon individually, // FIXME or all polygons together? - if (goog.isDefAndNotNull(state.fillStyle)) { + if (goog.isDef(state.fillStyle)) { this.instructions.push([ol.render.canvas.Instruction.FILL]); } - if (goog.isDefAndNotNull(state.strokeStyle)) { + if (goog.isDef(state.strokeStyle)) { + goog.asserts.assert(goog.isDef(state.lineWidth)); this.instructions.push([ol.render.canvas.Instruction.STROKE]); } return offset; @@ -548,10 +550,14 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = function(polygonGeometry) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); - if (!goog.isDefAndNotNull(state.fillStyle) && - !goog.isDefAndNotNull(state.strokeStyle)) { + var fillStyle = state.fillStyle; + var strokeStyle = state.strokeStyle; + if (!goog.isDef(fillStyle) && !goog.isDef(strokeStyle)) { return; } + if (goog.isDef(strokeStyle)) { + goog.asserts.assert(goog.isDef(state.lineWidth)); + } ol.extent.extend(this.extent_, polygonGeometry.getExtent()); this.setFillStrokeStyles_(); var ends = polygonGeometry.getEnds(); @@ -568,10 +574,14 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); - if (!goog.isDefAndNotNull(state.fillStyle) && - !goog.isDefAndNotNull(state.strokeStyle)) { + var fillStyle = state.fillStyle; + var strokeStyle = state.strokeStyle; + if (!goog.isDef(fillStyle) && !goog.isDef(strokeStyle)) { return; } + if (goog.isDef(strokeStyle)) { + goog.asserts.assert(goog.isDef(state.lineWidth)); + } ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent()); this.setFillStrokeStyles_(); var endss = multiPolygonGeometry.getEndss(); @@ -601,8 +611,17 @@ ol.render.canvas.PolygonReplay.prototype.finish = function() { ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { goog.asserts.assert(!goog.isNull(this.state_)); - this.state_.fillStyle = fillStyle; - this.state_.strokeStyle = strokeStyle; + goog.asserts.assert(!goog.isNull(fillStyle) || !goog.isNull(strokeStyle)); + if (!goog.isNull(fillStyle)) { + goog.asserts.assert(goog.isDefAndNotNull(fillStyle.color)); + this.state_.fillStyle = ol.color.asString(fillStyle.color); + } + if (!goog.isNull(strokeStyle)) { + goog.asserts.assert(goog.isDefAndNotNull(strokeStyle.color)); + goog.asserts.assert(goog.isDef(strokeStyle.width)); + this.state_.strokeStyle = ol.color.asString(strokeStyle.color); + this.state_.lineWidth = strokeStyle.width; + } }; @@ -611,17 +630,24 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = */ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { var state = this.state_; - if (goog.isDefAndNotNull(state.fillStyle) && - !ol.style.Fill.equals(state.currentFillStyle, state.fillStyle)) { + var fillStyle = state.fillStyle; + var strokeStyle = state.strokeStyle; + var lineWidth = state.lineWidth; + if (goog.isDef(fillStyle) && state.currentFillColor != fillStyle) { this.instructions.push( - [ol.render.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); - state.currentFillStyle = state.fillStyle; + [ol.render.canvas.Instruction.SET_FILL_STYLE, fillStyle]); + state.currentFillColor = state.fillStyle; } - if (goog.isDefAndNotNull(state.strokeStyle) && - !ol.style.Stroke.equals(state.currentStrokeStyle, state.strokeStyle)) { - this.instructions.push( - [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle]); - state.currentStrokeStyle = state.strokeStyle; + if (goog.isDef(strokeStyle)) { + goog.asserts.assert(goog.isDef(lineWidth)); + if (state.currentStrokeStyle != strokeStyle || + state.currentLineWidth != lineWidth) { + this.instructions.push( + [ol.render.canvas.Instruction.SET_STROKE_STYLE, + strokeStyle, lineWidth]); + state.currentStrokeStyle = strokeStyle; + state.currentLineWidth = lineWidth; + } } }; From c0eb7bb1f6c433737389c91b9befc24dffab9d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 11:11:34 +0100 Subject: [PATCH 327/919] Store raw style values for ImageReplay --- src/ol/render/canvas/canvasreplay.js | 52 +++++++++++++++++++++------- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 2c61acb20b..b609e83fc1 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -127,15 +127,18 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { ++i; } else if (type == ol.render.canvas.Instruction.DRAW_IMAGE) { dd = /** @type {number} */ (instruction[1]); - var imageStyle = /** @type {ol.style.Image} */ (instruction[2]); + var anchor = /** @type {Array.} */ (instruction[2]); + var image = /** @type {HTMLCanvasElement|HTMLVideoElement|Image} */ + (instruction[3]); + var snapToPixel = /** @type {boolean|undefined} */ (instruction[4]); for (; d < dd; d += 2) { - var x = pixelCoordinates[d] - imageStyle.anchor[0]; - var y = pixelCoordinates[d + 1] - imageStyle.anchor[1]; - if (imageStyle.snapToPixel) { + var x = pixelCoordinates[d] - anchor[0]; + var y = pixelCoordinates[d + 1] - anchor[1]; + if (snapToPixel) { x = (x + 0.5) | 0; y = (y + 0.5) | 0; } - context.drawImage(imageStyle.image, x, y); + context.drawImage(image, x, y); } ++i; } else if (type == ol.render.canvas.Instruction.FILL) { @@ -262,9 +265,21 @@ ol.render.canvas.ImageReplay = function() { /** * @private - * @type {ol.style.Image} + * @type {Array.} */ - this.imageStyle_ = null; + this.anchor_ = null; + + /** + * @private + * @type {HTMLCanvasElement|HTMLVideoElement|Image} + */ + this.image_ = null; + + /** + * @private + * @type {boolean|undefined} + */ + this.snapToPixel_ = undefined; }; goog.inherits(ol.render.canvas.ImageReplay, ol.render.canvas.Replay); @@ -290,16 +305,18 @@ ol.render.canvas.ImageReplay.prototype.drawCoordinates_ = */ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = function(pointGeometry) { - if (!goog.isDefAndNotNull(this.imageStyle_)) { + if (goog.isNull(this.image_)) { return; } + goog.asserts.assert(!goog.isNull(this.anchor_)); ol.extent.extend(this.extent_, pointGeometry.getExtent()); var flatCoordinates = pointGeometry.getFlatCoordinates(); var stride = pointGeometry.getStride(); var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); this.instructions.push( - [ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, this.imageStyle_]); + [ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, + this.anchor_, this.image_, this.snapToPixel_]); }; @@ -308,16 +325,18 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = */ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = function(multiPointGeometry) { - if (!goog.isDefAndNotNull(this.imageStyle_)) { + if (goog.isNull(this.image_)) { return; } + goog.asserts.assert(!goog.isNull(this.anchor_)); ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); var flatCoordinates = multiPointGeometry.getFlatCoordinates(); var stride = multiPointGeometry.getStride(); var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); this.instructions.push( - [ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, this.imageStyle_]); + [ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, + this.anchor_, this.image_, this.snapToPixel_]); }; @@ -326,7 +345,9 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = */ ol.render.canvas.ImageReplay.prototype.finish = function() { // FIXME this doesn't really protect us against further calls to draw*Geometry - this.imageStyle_ = null; + this.anchor_ = null; + this.image_ = null; + this.snapToPixel_ = undefined; }; @@ -334,7 +355,12 @@ ol.render.canvas.ImageReplay.prototype.finish = function() { * @inheritDoc */ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { - this.imageStyle_ = imageStyle; + goog.asserts.assert(!goog.isNull(imageStyle)); + goog.asserts.assert(!goog.isNull(imageStyle.anchor)); + goog.asserts.assert(!goog.isNull(imageStyle.image)); + this.anchor_ = imageStyle.anchor; + this.image_ = imageStyle.image; + this.snapToPixel_ = imageStyle.snapToPixel; }; From f09de8401151050e7f1da5ca1b2a78d4565e3488 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 12:15:37 +0100 Subject: [PATCH 328/919] Fix typo --- src/ol/render/canvas/canvasreplay.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index b609e83fc1..cf935b8f39 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -167,7 +167,7 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { ++i; } else { goog.asserts.fail(); - ++i; // consume the instruction anyway, to avoid an infite loop + ++i; // consume the instruction anyway, to avoid an infinite loop } } // assert that all data were consumed From a7bb02b49c786c49a41e185684859cdcfd651410 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 20 Nov 2013 14:04:59 +0100 Subject: [PATCH 329/919] Better canvas sizing handling (canvas and webgl) --- src/ol/renderer/canvas/canvasmaprenderer.js | 4 +++- src/ol/renderer/webgl/webglmaprenderer.js | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index cee3834369..509066b42e 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -37,6 +37,8 @@ ol.renderer.canvas.Map = function(container, map) { */ this.canvas_ = /** @type {HTMLCanvasElement} */ (goog.dom.createElement(goog.dom.TagName.CANVAS)); + this.canvas_.style.width = '100%'; + this.canvas_.style.height = '100%'; this.canvas_.className = ol.css.CLASS_UNSELECTABLE; goog.dom.insertChildAt(container, this.canvas_, 0); @@ -113,7 +115,7 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { this.canvas_.width = size[0]; this.canvas_.height = size[1]; } else { - context.clearRect(0, 0, size[0], size[1]); + context.clearRect(0, 0, this.canvas_.width, this.canvas_.height); } this.calculateMatrices2D(frameState); diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index c240cd6e73..fb13ddbf42 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -60,6 +60,8 @@ ol.renderer.webgl.Map = function(container, map) { */ this.canvas_ = /** @type {HTMLCanvasElement} */ (goog.dom.createElement(goog.dom.TagName.CANVAS)); + this.canvas_.style.width = '100%'; + this.canvas_.style.height = '100%'; this.canvas_.className = ol.css.CLASS_UNSELECTABLE; goog.dom.insertChildAt(container, this.canvas_, 0); @@ -412,7 +414,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { gl.clearColor(0, 0, 0, 0); gl.clear(goog.webgl.COLOR_BUFFER_BIT); gl.enable(goog.webgl.BLEND); - gl.viewport(0, 0, size[0], size[1]); + gl.viewport(0, 0, this.canvas_.width, this.canvas_.height); this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE, frameState); From 04b91f3627e41e170530770f25f44875de6127d2 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 20 Nov 2013 12:36:35 +0100 Subject: [PATCH 330/919] Add ol.BrowserFeature.DEVICE_PIXEL_RATIO constant --- src/ol/browserfeature.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ol/browserfeature.js b/src/ol/browserfeature.js index 527a709873..a0a428c3c9 100644 --- a/src/ol/browserfeature.js +++ b/src/ol/browserfeature.js @@ -11,6 +11,13 @@ ol.ASSUME_TOUCH = false; * @type {Object} */ ol.BrowserFeature = { + /** + * The ratio between physical pixels and device-independent pixels + * (dips) on the device (`window.devicePixelRatio`). + * @type {number} + */ + DEVICE_PIXEL_RATIO: goog.global.devicePixelRatio || 1, + /** * True if browser supports touch events. * @type {boolean} From c71576468003e918265d7ea6d0d6a80d775499aa Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 21 Nov 2013 13:47:00 +0100 Subject: [PATCH 331/919] Change ol.style.Image.anchor property type to ol.Pixel --- src/objectliterals.jsdoc | 2 +- src/ol/render/canvas/canvasreplay.js | 4 ++-- src/ol/style/imagestyle.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index ebda159de1..97b8bd5dee 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -626,7 +626,7 @@ /** * @typedef {Object} ol.style.ImageOptions - * @property {Array.} anchor Anchor. + * @property {ol.Pixel} anchor Anchor. * @property {HTMLCanvasElement|HTMLVideoElement|Image} image Image. * @property {number} rotation Rotation. * @property {boolean|undefined} snapToPixel Whether the image should be diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index cf935b8f39..bd921b6cc4 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -127,7 +127,7 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { ++i; } else if (type == ol.render.canvas.Instruction.DRAW_IMAGE) { dd = /** @type {number} */ (instruction[1]); - var anchor = /** @type {Array.} */ (instruction[2]); + var anchor = /** @type {ol.Pixel} */ (instruction[2]); var image = /** @type {HTMLCanvasElement|HTMLVideoElement|Image} */ (instruction[3]); var snapToPixel = /** @type {boolean|undefined} */ (instruction[4]); @@ -265,7 +265,7 @@ ol.render.canvas.ImageReplay = function() { /** * @private - * @type {Array.} + * @type {ol.Pixel} */ this.anchor_ = null; diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 507de3fc41..596f7ecdbd 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -11,7 +11,7 @@ goog.provide('ol.style.Image'); ol.style.Image = function(options) { /** - * @type {Array.} + * @type {ol.Pixel} */ this.anchor = options.anchor; From db8f476098cf5163c56aa80b4f99a8a43da2c0a5 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 21 Nov 2013 13:55:14 +0100 Subject: [PATCH 332/919] Add ol.style.Image.size property --- src/objectliterals.jsdoc | 1 + src/ol/render/canvas/canvasimmediate.js | 3 +- src/ol/render/canvas/canvasreplay.js | 45 ++++++++++++++++++++----- src/ol/shape.js | 1 + src/ol/style/imagestyle.js | 5 +++ 5 files changed, 45 insertions(+), 10 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 97b8bd5dee..41930724ac 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -629,6 +629,7 @@ * @property {ol.Pixel} anchor Anchor. * @property {HTMLCanvasElement|HTMLVideoElement|Image} image Image. * @property {number} rotation Rotation. + * @property {ol.Size} size Image size in pixel. * @property {boolean|undefined} snapToPixel Whether the image should be * snapped to the closed pixel at rendering time. * @property {boolean} subtractViewRotation Whether the image should be diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 225d0e6809..129dc38abf 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -84,7 +84,8 @@ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { x = (x + 0.5) | 0; y = (y + 0.5) | 0; } - context.drawImage(imageStyle.image, x, y); + context.drawImage(imageStyle.image, x, y, + imageStyle.size[0], imageStyle.size[1]); } }; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index bd921b6cc4..2caaf1c3f4 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -128,9 +128,11 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { } else if (type == ol.render.canvas.Instruction.DRAW_IMAGE) { dd = /** @type {number} */ (instruction[1]); var anchor = /** @type {ol.Pixel} */ (instruction[2]); + var width = /** @type {number} */ (instruction[3]); + var height = /** @type {number} */ (instruction[4]); var image = /** @type {HTMLCanvasElement|HTMLVideoElement|Image} */ - (instruction[3]); - var snapToPixel = /** @type {boolean|undefined} */ (instruction[4]); + (instruction[5]); + var snapToPixel = /** @type {boolean|undefined} */ (instruction[6]); for (; d < dd; d += 2) { var x = pixelCoordinates[d] - anchor[0]; var y = pixelCoordinates[d + 1] - anchor[1]; @@ -138,7 +140,7 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { x = (x + 0.5) | 0; y = (y + 0.5) | 0; } - context.drawImage(image, x, y); + context.drawImage(image, x, y, width, height); } ++i; } else if (type == ol.render.canvas.Instruction.FILL) { @@ -275,6 +277,18 @@ ol.render.canvas.ImageReplay = function() { */ this.image_ = null; + /** + * @private + * @type {number} + */ + this.height_ = undefined; + + /** + * @private + * @type {number} + */ + this.width_ = undefined; + /** * @private * @type {boolean|undefined} @@ -309,14 +323,18 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = return; } goog.asserts.assert(!goog.isNull(this.anchor_)); + goog.asserts.assert(goog.isDef(this.height_)); + goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, pointGeometry.getExtent()); var flatCoordinates = pointGeometry.getFlatCoordinates(); var stride = pointGeometry.getStride(); var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); - this.instructions.push( - [ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, - this.anchor_, this.image_, this.snapToPixel_]); + this.instructions.push([ + ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, + this.anchor_, this.width_, this.height_, + this.image_, this.snapToPixel_ + ]); }; @@ -329,14 +347,18 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = return; } goog.asserts.assert(!goog.isNull(this.anchor_)); + goog.asserts.assert(goog.isDef(this.height_)); + goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); var flatCoordinates = multiPointGeometry.getFlatCoordinates(); var stride = multiPointGeometry.getStride(); var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); - this.instructions.push( - [ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, - this.anchor_, this.image_, this.snapToPixel_]); + this.instructions.push([ + ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, + this.anchor_, this.width_, this.height_, + this.image_, this.snapToPixel_ + ]); }; @@ -347,6 +369,8 @@ ol.render.canvas.ImageReplay.prototype.finish = function() { // FIXME this doesn't really protect us against further calls to draw*Geometry this.anchor_ = null; this.image_ = null; + this.height_ = undefined; + this.width_ = undefined; this.snapToPixel_ = undefined; }; @@ -357,9 +381,12 @@ ol.render.canvas.ImageReplay.prototype.finish = function() { ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { goog.asserts.assert(!goog.isNull(imageStyle)); goog.asserts.assert(!goog.isNull(imageStyle.anchor)); + goog.asserts.assert(goog.isDef(imageStyle.size)); goog.asserts.assert(!goog.isNull(imageStyle.image)); this.anchor_ = imageStyle.anchor; this.image_ = imageStyle.image; + this.width_ = imageStyle.size[0]; + this.height_ = imageStyle.size[1]; this.snapToPixel_ = imageStyle.snapToPixel; }; diff --git a/src/ol/shape.js b/src/ol/shape.js index 365e499d7d..c225806686 100644 --- a/src/ol/shape.js +++ b/src/ol/shape.js @@ -45,6 +45,7 @@ ol.shape.renderCircle = function(radius, fillStyle, strokeStyle) { return new ol.style.Image({ anchor: [size / 2, size / 2], + size: [size, size], image: canvas, rotation: 0, snapToPixel: undefined, diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 596f7ecdbd..4f9af57ce5 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -25,6 +25,11 @@ ol.style.Image = function(options) { */ this.rotation = options.rotation; + /** + * @type {ol.Size} + */ + this.size = options.size; + /** * @type {boolean|undefined} */ From 76a908d00c8b62d97a1bf0ea0546ed5461d540cb Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 21 Nov 2013 14:30:55 +0100 Subject: [PATCH 333/919] Split anchor ImageReplay property into anchorX and anchorY --- src/ol/render/canvas/canvasreplay.js | 41 ++++++++++++++++++---------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 2caaf1c3f4..406cc00830 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -127,15 +127,16 @@ ol.render.canvas.Replay.prototype.draw = function(context, transform) { ++i; } else if (type == ol.render.canvas.Instruction.DRAW_IMAGE) { dd = /** @type {number} */ (instruction[1]); - var anchor = /** @type {ol.Pixel} */ (instruction[2]); - var width = /** @type {number} */ (instruction[3]); - var height = /** @type {number} */ (instruction[4]); + var anchorX = /** @type {number} */ (instruction[2]); + var anchorY = /** @type {number} */ (instruction[3]); + var width = /** @type {number} */ (instruction[4]); + var height = /** @type {number} */ (instruction[5]); var image = /** @type {HTMLCanvasElement|HTMLVideoElement|Image} */ - (instruction[5]); - var snapToPixel = /** @type {boolean|undefined} */ (instruction[6]); + (instruction[6]); + var snapToPixel = /** @type {boolean|undefined} */ (instruction[7]); for (; d < dd; d += 2) { - var x = pixelCoordinates[d] - anchor[0]; - var y = pixelCoordinates[d + 1] - anchor[1]; + var x = pixelCoordinates[d] - anchorX; + var y = pixelCoordinates[d + 1] - anchorY; if (snapToPixel) { x = (x + 0.5) | 0; y = (y + 0.5) | 0; @@ -267,9 +268,15 @@ ol.render.canvas.ImageReplay = function() { /** * @private - * @type {ol.Pixel} + * @type {number} */ - this.anchor_ = null; + this.anchorX_ = undefined; + + /** + * @private + * @type {number} + */ + this.anchorY_ = undefined; /** * @private @@ -322,7 +329,8 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = if (goog.isNull(this.image_)) { return; } - goog.asserts.assert(!goog.isNull(this.anchor_)); + goog.asserts.assert(goog.isDef(this.anchorX_)); + goog.asserts.assert(goog.isDef(this.anchorY_)); goog.asserts.assert(goog.isDef(this.height_)); goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, pointGeometry.getExtent()); @@ -332,7 +340,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = flatCoordinates, 0, flatCoordinates.length, stride); this.instructions.push([ ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, - this.anchor_, this.width_, this.height_, + this.anchorX_, this.anchorY_, this.width_, this.height_, this.image_, this.snapToPixel_ ]); }; @@ -346,7 +354,8 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = if (goog.isNull(this.image_)) { return; } - goog.asserts.assert(!goog.isNull(this.anchor_)); + goog.asserts.assert(goog.isDef(this.anchorX_)); + goog.asserts.assert(goog.isDef(this.anchorY_)); goog.asserts.assert(goog.isDef(this.height_)); goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); @@ -356,7 +365,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = flatCoordinates, 0, flatCoordinates.length, stride); this.instructions.push([ ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, - this.anchor_, this.width_, this.height_, + this.anchorX_, this.anchorY_, this.width_, this.height_, this.image_, this.snapToPixel_ ]); }; @@ -367,7 +376,8 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = */ ol.render.canvas.ImageReplay.prototype.finish = function() { // FIXME this doesn't really protect us against further calls to draw*Geometry - this.anchor_ = null; + this.anchorX_ = undefined; + this.anchorY_ = undefined; this.image_ = null; this.height_ = undefined; this.width_ = undefined; @@ -383,7 +393,8 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { goog.asserts.assert(!goog.isNull(imageStyle.anchor)); goog.asserts.assert(goog.isDef(imageStyle.size)); goog.asserts.assert(!goog.isNull(imageStyle.image)); - this.anchor_ = imageStyle.anchor; + this.anchorX_ = imageStyle.anchor[0]; + this.anchorY_ = imageStyle.anchor[1]; this.image_ = imageStyle.image; this.width_ = imageStyle.size[0]; this.height_ = imageStyle.size[1]; From c0ad472984ea419fe57bee1c74a49572198aac34 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 21 Nov 2013 14:48:49 +0100 Subject: [PATCH 334/919] Add missing 'undefined' in jsdoc type definition --- src/ol/render/canvas/canvasreplay.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 406cc00830..467d21a5f6 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -268,13 +268,13 @@ ol.render.canvas.ImageReplay = function() { /** * @private - * @type {number} + * @type {number|undefined} */ this.anchorX_ = undefined; /** * @private - * @type {number} + * @type {number|undefined} */ this.anchorY_ = undefined; @@ -286,13 +286,13 @@ ol.render.canvas.ImageReplay = function() { /** * @private - * @type {number} + * @type {number|undefined} */ this.height_ = undefined; /** * @private - * @type {number} + * @type {number|undefined} */ this.width_ = undefined; From ed211d5631638c45aeb15a3d7509c6dce83b9413 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 21 Nov 2013 18:05:18 +0100 Subject: [PATCH 335/919] Use ol.style.Stroke and ol.style.Fill instances in vector-layer example --- examples/vector-layer.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 9f51379172..2543f59a8f 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -86,13 +86,13 @@ map.on('postcompose', function(evt) { if (highlight) { var render = evt.getRender(); render.drawFeature(highlight, { - stroke: { + stroke: new ol.style.Stroke({ color: '#f00', width: 1 - }, - fill: { + }), + fill: new ol.style.Fill({ color: 'rgba(255,0,0,0.1)' - } + }) }); } }); From 55a43c9a98927a9569987fba825211b47254b7e9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 18:22:01 +0100 Subject: [PATCH 336/919] Use ol.style.Style and construct style object once --- examples/vector-layer.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 2543f59a8f..90373d2e4c 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -82,17 +82,19 @@ map.on('singleclick', function(evt) { displayFeatureInfo(pixel); }); +var highlightStyle = new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: '#f00', + width: 1 + }), + fill: new ol.style.Fill({ + color: 'rgba(255,0,0,0.1)' + }) +}); + map.on('postcompose', function(evt) { if (highlight) { var render = evt.getRender(); - render.drawFeature(highlight, { - stroke: new ol.style.Stroke({ - color: '#f00', - width: 1 - }), - fill: new ol.style.Fill({ - color: 'rgba(255,0,0,0.1)' - }) - }); + render.drawFeature(highlight, highlightStyle); } }); From 602f9642d421fdeb1f3719663643929eb01fbbe9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 20:25:43 +0100 Subject: [PATCH 337/919] Use ol.style.Style in GeoJSON example --- examples/geojson.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 34ca5a7021..4d7f7e8d71 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -126,14 +126,14 @@ var vectorLayer = new ol.layer.Vector({ }); var tmpFeature = new ol.Feature( new ol.geom.LineString([[-5e6, -5e6], [5e6, -5e6]])); -var tmpStyle = { +var tmpStyle = new ol.style.Style({ fill: null, image: null, stroke: new ol.style.Stroke({ color: 'magenta', width: 5 }) -}; +}); vectorLayer.on('postcompose', function(event) { var render = event.getRender(); render.drawFeature(tmpFeature, tmpStyle); From 082d126544490e586a22aa45597a49123c0d5912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 22:00:05 +0100 Subject: [PATCH 338/919] synthetic-data example renamed to synthetic-points --- .../{synthetic-data.html => synthetic-points.html} | 10 +++++----- examples/{synthetic-data.js => synthetic-points.js} | 0 2 files changed, 5 insertions(+), 5 deletions(-) rename examples/{synthetic-data.html => synthetic-points.html} (77%) rename examples/{synthetic-data.js => synthetic-points.js} (100%) diff --git a/examples/synthetic-data.html b/examples/synthetic-points.html similarity index 77% rename from examples/synthetic-data.html rename to examples/synthetic-points.html index 5cb953179f..a63999bc9c 100644 --- a/examples/synthetic-data.html +++ b/examples/synthetic-points.html @@ -8,7 +8,7 @@ - Synthetic data example + Synthetic points example @@ -31,10 +31,10 @@
-

Synthetic data example

-

Synthetic data example.

+

Synthetic points example

+

Synthetic points example.

-

See the synthetic-data.js source to see how this is done.

+

See the synthetic-points.js source to see how this is done.

vector
@@ -43,7 +43,7 @@
- + diff --git a/examples/synthetic-data.js b/examples/synthetic-points.js similarity index 100% rename from examples/synthetic-data.js rename to examples/synthetic-points.js From 4b91065f0081fb7a1705e45ce9961af59e7b6b45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 22:00:39 +0100 Subject: [PATCH 339/919] Make dynamic-data example work when hosted --- examples/dynamic-data.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/dynamic-data.js b/examples/dynamic-data.js index 77a000c30a..ef5fb38628 100644 --- a/examples/dynamic-data.js +++ b/examples/dynamic-data.js @@ -22,13 +22,11 @@ var map = new ol.Map({ zoom: 2 }) }); -map.beforeRender(function(map, frameState) { - frameState.animate = true; - return true; -}); + var imageStyle = ol.shape.renderCircle(5, new ol.style.Fill({color: 'yellow'}), new ol.style.Stroke({color: 'red', width: 1})); + var n = 200; var omegaTheta = 30000; // Rotation period in ms var R = 7e6; @@ -48,5 +46,6 @@ map.on('postcompose', function(event) { } render.setImageStyle(imageStyle); render.drawMultiPointGeometry(new ol.geom.MultiPoint(coordinates)); + map.requestRenderFrame(); }); map.requestRenderFrame(); From ed79da6c0c6976a84a8e8120109a6fbf749dc4a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 22:00:53 +0100 Subject: [PATCH 340/919] Add vector tag to geojson example --- examples/geojson.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/geojson.html b/examples/geojson.html index 30257babad..3187674c6f 100644 --- a/examples/geojson.html +++ b/examples/geojson.html @@ -36,7 +36,7 @@

See the geojson.js source to see how this is done.

-
geojson, openstreetmap
+
geojson, vector, openstreetmap
From 43a903d98b1b302c64fb804be6b0e6ce09660b96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 22:02:30 +0100 Subject: [PATCH 341/919] Make vector-layer example work when hosted --- examples/vector-layer.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 90373d2e4c..52db5f960f 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -54,9 +54,8 @@ $.getJSON('data/countries.geojson', function(data) { }); var highlight; -var displayFeatureInfo = function(pixel) { +var displayFeatureInfo = function(coordinate) { var oldHighlight = highlight; - var coordinate = map.getCoordinateFromPixel(pixel); var features = vectorSource.getAllFeaturesAtCoordinate(coordinate); var info = document.getElementById('info'); if (features.length > 0) { @@ -73,13 +72,13 @@ var displayFeatureInfo = function(pixel) { }; $(map.getViewport()).on('mousemove', function(evt) { - var pixel = map.getEventPixel(evt.originalEvent); - displayFeatureInfo(pixel); + var coordinate = map.getEventCoordinate(evt.originalEvent); + displayFeatureInfo(coordinate); }); map.on('singleclick', function(evt) { - var pixel = evt.getPixel(); - displayFeatureInfo(pixel); + var coordinate = evt.getCoordinate(); + displayFeatureInfo(coordinate); }); var highlightStyle = new ol.style.Style({ From d973c401413ee0f715c726522106a24b294f4ce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 22:02:51 +0100 Subject: [PATCH 342/919] Export getAllFeaturesAtCoordinate --- src/ol/source/vectorsource.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/source/vectorsource.exports b/src/ol/source/vectorsource.exports index 2340e08e5a..7312bcf87a 100644 --- a/src/ol/source/vectorsource.exports +++ b/src/ol/source/vectorsource.exports @@ -1,2 +1,3 @@ @exportClass ol.source.Vector ol.source.VectorOptions @exportProperty ol.source.Vector.prototype.addFeature +@exportProperty ol.source.Vector.prototype.getAllFeaturesAtCoordinate From ff66a60e5e1934ff3ee62a94f4d0bf81b5a2628c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 22:03:27 +0100 Subject: [PATCH 343/919] Export ol.webgl.Context It's used in the layer-clipping-webgl example --- src/ol/webgl/context.exports | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/ol/webgl/context.exports diff --git a/src/ol/webgl/context.exports b/src/ol/webgl/context.exports new file mode 100644 index 0000000000..60a3eea651 --- /dev/null +++ b/src/ol/webgl/context.exports @@ -0,0 +1,3 @@ +@exportSymbol ol.webgl.Context +@exportProperty ol.webgl.Context.prototype.getGL +@exportProperty ol.webgl.Context.prototype.useProgram From 381eef2cfbdca8bdd7608a5d127bd5fb49ee915d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 23:06:01 +0100 Subject: [PATCH 344/919] Simplify style setting in geojson example --- examples/geojson.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 4d7f7e8d71..3b74046929 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -127,8 +127,6 @@ var vectorLayer = new ol.layer.Vector({ var tmpFeature = new ol.Feature( new ol.geom.LineString([[-5e6, -5e6], [5e6, -5e6]])); var tmpStyle = new ol.style.Style({ - fill: null, - image: null, stroke: new ol.style.Stroke({ color: 'magenta', width: 5 From b11c34261bc00b035084f9095ab6541f0a104f38 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 20 Nov 2013 14:44:44 +0100 Subject: [PATCH 345/919] Rename renderFeatureFunction to renderGeometryFunction --- src/ol/layer/vectorlayer.js | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js index 5b1162e641..cbfae1dac3 100644 --- a/src/ol/layer/vectorlayer.js +++ b/src/ol/layer/vectorlayer.js @@ -8,7 +8,7 @@ goog.require('ol.source.Vector'); * @enum {string} */ ol.layer.VectorProperty = { - RENDER_FEATURE_FUNCTION: 'renderFeatureFunction', + RENDER_GEOMETRY_FUNCTION: 'renderGeometryFunction', STYLE_FUNCTION: 'styleFunction' }; @@ -36,16 +36,17 @@ goog.inherits(ol.layer.Vector, ol.layer.Layer); /** - * @return {function(ol.Feature): boolean|undefined} Render feature function. + * @return {function(ol.geom.Geometry): boolean|undefined} Render geometry + * function. */ -ol.layer.Vector.prototype.getRenderFeatureFunction = function() { - return /** @type {function(ol.Feature): boolean|undefined} */ ( - this.get(ol.layer.VectorProperty.RENDER_FEATURE_FUNCTION)); +ol.layer.Vector.prototype.getRenderGeometryFunction = function() { + return /** @type {function(ol.geom.Geometry): boolean|undefined} */ ( + this.get(ol.layer.VectorProperty.RENDER_GEOMETRY_FUNCTION)); }; goog.exportProperty( ol.layer.Vector.prototype, - 'getRenderFeatureFunction', - ol.layer.Vector.prototype.getRenderFeatureFunction); + 'getRenderGeometryFunction', + ol.layer.Vector.prototype.getRenderGeometryFunction); /** @@ -70,18 +71,18 @@ ol.layer.Vector.prototype.getVectorSource = function() { /** - * @param {function(ol.Feature): boolean|undefined} renderFeatureFunction - * Render feature function. + * @param {function(ol.geom.Geometry): boolean|undefined} renderGeometryFunction + * Render geometry function. */ -ol.layer.Vector.prototype.setRenderFeatureFunction = - function(renderFeatureFunction) { +ol.layer.Vector.prototype.setRenderGeometryFunction = + function(renderGeometryFunction) { this.set( - ol.layer.VectorProperty.RENDER_FEATURE_FUNCTION, renderFeatureFunction); + ol.layer.VectorProperty.RENDER_GEOMETRY_FUNCTION, renderGeometryFunction); }; goog.exportProperty( ol.layer.Vector.prototype, - 'setRenderFeatureFunction', - ol.layer.Vector.prototype.setRenderFeatureFunction); + 'setRenderGeometryFunction', + ol.layer.Vector.prototype.setRenderGeometryFunction); /** From a5702618860de7c6b65e30d9923f586de5e54526 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 12:08:01 +0100 Subject: [PATCH 346/919] Pass renderGeometryFunction to ol.render.canvas.ReplayGroup --- src/ol/render/canvas/canvasreplay.js | 11 ++++++++--- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 5 ++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 467d21a5f6..9b7430d3bd 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -99,8 +99,11 @@ ol.render.canvas.Replay.prototype.appendFlatCoordinates = /** * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {function(ol.geom.Geometry): boolean|undefined} renderGeometryFunction + * Render geometry function. */ -ol.render.canvas.Replay.prototype.draw = function(context, transform) { +ol.render.canvas.Replay.prototype.draw = + function(context, transform, renderGeometryFunction) { /** @type {Array.} */ var pixelCoordinates; if (ol.vec.Mat4.equal2D(transform, this.renderedTransform_)) { @@ -737,9 +740,11 @@ ol.render.canvas.ReplayGroup = function() { * @param {CanvasRenderingContext2D} context Context. * @param {ol.Extent} extent Extent. * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {function(ol.geom.Geometry): boolean|undefined} renderGeometryFunction + * Render geometry function. */ ol.render.canvas.ReplayGroup.prototype.draw = - function(context, extent, transform) { + function(context, extent, transform, renderGeometryFunction) { /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); goog.array.sort(zs); @@ -750,7 +755,7 @@ ol.render.canvas.ReplayGroup.prototype.draw = for (replayType in replayes) { var replay = replayes[replayType]; if (ol.extent.intersects(extent, replay.getExtent())) { - replay.draw(context, transform); + replay.draw(context, transform, renderGeometryFunction); } } } diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 92108bc7f9..dab5b3305e 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -59,8 +59,11 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = var replayGroup = this.replayGroup_; if (!goog.isNull(replayGroup)) { + var vectorLayer = this.getVectorLayer(); + var renderGeometryFunction = vectorLayer.getRenderGeometryFunction(); context.globalAlpha = layerState.opacity; - replayGroup.draw(context, frameState.extent, transform); + replayGroup.draw( + context, frameState.extent, transform, renderGeometryFunction); } this.dispatchPostComposeEvent(context, frameState, transform); From d05530290f017d0a773e605accfd79f2b44d95c4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 12:08:26 +0100 Subject: [PATCH 347/919] Add BEGIN_GEOMETRY instruction --- src/ol/render/canvas/canvasreplay.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 9b7430d3bd..c3703a0ff9 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -19,14 +19,15 @@ goog.require('ol.vec.Mat4'); * @enum {number} */ ol.render.canvas.Instruction = { - BEGIN_PATH: 0, - CLOSE_PATH: 1, - DRAW_IMAGE: 2, - FILL: 3, - MOVE_TO_LINE_TO: 4, - SET_FILL_STYLE: 5, - SET_STROKE_STYLE: 6, - STROKE: 7 + BEGIN_GEOMETRY: 0, + BEGIN_PATH: 1, + CLOSE_PATH: 2, + DRAW_IMAGE: 3, + FILL: 4, + MOVE_TO_LINE_TO: 5, + SET_FILL_STYLE: 6, + SET_STROKE_STYLE: 7, + STROKE: 8 }; @@ -122,7 +123,16 @@ ol.render.canvas.Replay.prototype.draw = while (i < ii) { var instruction = instructions[i]; var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); - if (type == ol.render.canvas.Instruction.BEGIN_PATH) { + if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) { + var geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); + if (goog.isDef(renderGeometryFunction) && + !renderGeometryFunction(geometry)) { + d = /** @type {number} */ (instruction[2]); + i = /** @type {number} */ (instruction[3]); + } else { + ++i; + } + } else if (type == ol.render.canvas.Instruction.BEGIN_PATH) { context.beginPath(); ++i; } else if (type == ol.render.canvas.Instruction.CLOSE_PATH) { From 297251661acb3e39808eac187733a6bd90658bb9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 12:08:43 +0100 Subject: [PATCH 348/919] Implement skipping of Polygon and MultiPolygon geometries --- src/ol/render/canvas/canvasreplay.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index c3703a0ff9..df764defca 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -637,10 +637,15 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = } ol.extent.extend(this.extent_, polygonGeometry.getExtent()); this.setFillStrokeStyles_(); + var beginGeometryInstruction = + [ol.render.canvas.Instruction.BEGIN_GEOMETRY, polygonGeometry, 0, 0]; + this.instructions.push(beginGeometryInstruction); var ends = polygonGeometry.getEnds(); var flatCoordinates = polygonGeometry.getFlatCoordinates(); var stride = polygonGeometry.getStride(); this.drawFlatCoordinatess_(flatCoordinates, 0, ends, stride); + beginGeometryInstruction[2] = this.coordinates.length; + beginGeometryInstruction[3] = this.instructions.length; }; @@ -661,6 +666,9 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = } ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent()); this.setFillStrokeStyles_(); + var beginGeometryInstruction = + [ol.render.canvas.Instruction.BEGIN_GEOMETRY, multiPolygonGeometry, 0, 0]; + this.instructions.push(beginGeometryInstruction); var endss = multiPolygonGeometry.getEndss(); var flatCoordinates = multiPolygonGeometry.getFlatCoordinates(); var stride = multiPolygonGeometry.getStride(); @@ -670,6 +678,8 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = offset = this.drawFlatCoordinatess_( flatCoordinates, offset, endss[i], stride); } + beginGeometryInstruction[2] = this.coordinates.length; + beginGeometryInstruction[3] = this.instructions.length; }; From 8b6f71f7f6ad98cbfef2ee4433f765be638fad7c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 14:30:26 +0100 Subject: [PATCH 349/919] Factor out beginGeometry and endGeometry --- src/ol/render/canvas/canvasreplay.js | 37 ++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index df764defca..d7f88983ea 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -97,6 +97,19 @@ ol.render.canvas.Replay.prototype.appendFlatCoordinates = }; +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @protected + * @return {Array} Begin geometry instruction. + */ +ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { + var beginGeometryInstruction = + [ol.render.canvas.Instruction.BEGIN_GEOMETRY, geometry, 0, 0]; + this.instructions.push(beginGeometryInstruction); + return beginGeometryInstruction; +}; + + /** * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. @@ -237,6 +250,16 @@ ol.render.canvas.Replay.prototype.drawMultiPolygonGeometry = goog.abstractMethod; +/** + * @param {Array} beginGeometryInstruction Begin geometry instruction. + */ +ol.render.canvas.Replay.prototype.endGeometry = + function(beginGeometryInstruction) { + beginGeometryInstruction[2] = this.coordinates.length; + beginGeometryInstruction[3] = this.instructions.length; +}; + + /** * FIXME empty description for jsdoc */ @@ -637,15 +660,12 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = } ol.extent.extend(this.extent_, polygonGeometry.getExtent()); this.setFillStrokeStyles_(); - var beginGeometryInstruction = - [ol.render.canvas.Instruction.BEGIN_GEOMETRY, polygonGeometry, 0, 0]; - this.instructions.push(beginGeometryInstruction); + var beginGeometryInstruction = this.beginGeometry(polygonGeometry); var ends = polygonGeometry.getEnds(); var flatCoordinates = polygonGeometry.getFlatCoordinates(); var stride = polygonGeometry.getStride(); this.drawFlatCoordinatess_(flatCoordinates, 0, ends, stride); - beginGeometryInstruction[2] = this.coordinates.length; - beginGeometryInstruction[3] = this.instructions.length; + this.endGeometry(beginGeometryInstruction); }; @@ -666,9 +686,7 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = } ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent()); this.setFillStrokeStyles_(); - var beginGeometryInstruction = - [ol.render.canvas.Instruction.BEGIN_GEOMETRY, multiPolygonGeometry, 0, 0]; - this.instructions.push(beginGeometryInstruction); + var beginGeometryInstruction = this.beginGeometry(multiPolygonGeometry); var endss = multiPolygonGeometry.getEndss(); var flatCoordinates = multiPolygonGeometry.getFlatCoordinates(); var stride = multiPolygonGeometry.getStride(); @@ -678,8 +696,7 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = offset = this.drawFlatCoordinatess_( flatCoordinates, offset, endss[i], stride); } - beginGeometryInstruction[2] = this.coordinates.length; - beginGeometryInstruction[3] = this.instructions.length; + this.endGeometry(beginGeometryInstruction); }; From 1cccdfa9dbcf885350fb2e1a7952537333d58453 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 14:30:50 +0100 Subject: [PATCH 350/919] Implement skipping of Point and MultiPoint geometries --- src/ol/render/canvas/canvasreplay.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index d7f88983ea..c686fb5cb2 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -370,6 +370,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = goog.asserts.assert(goog.isDef(this.height_)); goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, pointGeometry.getExtent()); + var beginGeometryInstruction = this.beginGeometry(pointGeometry); var flatCoordinates = pointGeometry.getFlatCoordinates(); var stride = pointGeometry.getStride(); var myEnd = this.drawCoordinates_( @@ -379,6 +380,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = this.anchorX_, this.anchorY_, this.width_, this.height_, this.image_, this.snapToPixel_ ]); + this.endGeometry(beginGeometryInstruction); }; @@ -395,6 +397,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = goog.asserts.assert(goog.isDef(this.height_)); goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); + var beginGeometryInstruction = this.beginGeometry(multiPointGeometry); var flatCoordinates = multiPointGeometry.getFlatCoordinates(); var stride = multiPointGeometry.getStride(); var myEnd = this.drawCoordinates_( @@ -404,6 +407,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = this.anchorX_, this.anchorY_, this.width_, this.height_, this.image_, this.snapToPixel_ ]); + this.endGeometry(beginGeometryInstruction); }; From a9af504a19326107fa2487d3d324c9eb65e7ae82 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 20:20:23 +0100 Subject: [PATCH 351/919] Factor out ol.render.canvas.LineStringReplay#setStrokeStyle_ --- src/ol/render/canvas/canvasreplay.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index c686fb5cb2..f751e5b10d 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -482,6 +482,17 @@ goog.inherits(ol.render.canvas.LineStringReplay, ol.render.canvas.Replay); */ ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = function(flatCoordinates, offset, end, stride) { + var myEnd = this.appendFlatCoordinates( + flatCoordinates, offset, end, stride, false); + this.instructions.push([ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myEnd]); + return end; +}; + + +/** + * @private + */ +ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { var state = this.state_; var strokeStyle = state.strokeStyle; var lineWidth = state.lineWidth; @@ -500,10 +511,6 @@ ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = state.currentStrokeStyle = strokeStyle; state.currentLineWidth = lineWidth; } - var myEnd = this.appendFlatCoordinates( - flatCoordinates, offset, end, stride, false); - this.instructions.push([ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myEnd]); - return end; }; @@ -520,6 +527,7 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = return; } ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); + this.setStrokeStyle_(); var flatCoordinates = lineStringGeometry.getFlatCoordinates(); var stride = lineStringGeometry.getStride(); this.drawFlatCoordinates_( @@ -540,6 +548,7 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = return; } ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); + this.setStrokeStyle_(); var ends = multiLineStringGeometry.getEnds(); var flatCoordinates = multiLineStringGeometry.getFlatCoordinates(); var stride = multiLineStringGeometry.getStride(); From 32833a15bb33b8236dabe3605726aa70ef636760 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 20:23:38 +0100 Subject: [PATCH 352/919] Implement skipping of LineString and MultiLineString geometries --- src/ol/render/canvas/canvasreplay.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index f751e5b10d..574e99d3a5 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -528,10 +528,12 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = } ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); this.setStrokeStyle_(); + var beginGeometryInstruction = this.beginGeometry(lineStringGeometry); var flatCoordinates = lineStringGeometry.getFlatCoordinates(); var stride = lineStringGeometry.getStride(); this.drawFlatCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); + this.endGeometry(beginGeometryInstruction); }; @@ -549,6 +551,7 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = } ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); this.setStrokeStyle_(); + var beginGeometryInstruction = this.beginGeometry(multiLineStringGeometry); var ends = multiLineStringGeometry.getEnds(); var flatCoordinates = multiLineStringGeometry.getFlatCoordinates(); var stride = multiLineStringGeometry.getStride(); @@ -558,6 +561,7 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = offset = this.drawFlatCoordinates_( flatCoordinates, offset, ends[i], stride); } + this.endGeometry(beginGeometryInstruction); }; From 13ed52d9e871eaad9246febc678aa893d5773cff Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 20:24:59 +0100 Subject: [PATCH 353/919] Add FIXME --- src/ol/render/canvas/canvasreplay.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 574e99d3a5..b456c9adbe 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1,5 +1,6 @@ // FIXME decide default snapToPixel behaviour // FIXME add option to apply snapToPixel to all coordinates? +// FIXME can eliminate empty set styles and strokes (when all geoms skipped) goog.provide('ol.render.canvas.ReplayGroup'); From fd48b06dc0fc9588ac9d65bbb97f69be250e2e21 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 20:32:16 +0100 Subject: [PATCH 354/919] Skip rendering highlighted feature in vector-layer example --- examples/vector-layer.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 52db5f960f..eb4f2ac19e 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -36,6 +36,7 @@ var style = new ol.style.Style({ }) }); +var vectorLayer; $.getJSON('data/countries.geojson', function(data) { var format = new ol.format.GeoJSON(); var transformFn = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); @@ -45,12 +46,13 @@ $.getJSON('data/countries.geojson', function(data) { feature.setGeometry(geometry); vectorSource.addFeature(feature); }); - map.getLayers().push(new ol.layer.Vector({ + vectorLayer = new ol.layer.Vector({ source: vectorSource, styleFunction: function(feature) { return style; } - })); + }); + map.getLayers().push(vectorLayer); }); var highlight; @@ -68,6 +70,13 @@ var displayFeatureInfo = function(coordinate) { } if (highlight !== oldHighlight) { map.requestRenderFrame(); + if (highlight) { + vectorLayer.setRenderGeometryFunction(function(geometry) { + return geometry !== highlight.getGeometry(); + }); + } else { + vectorLayer.setRenderGeometryFunction(undefined); + } } }; From 9396df54c3a9ad07a66d9478c300d153d4b9ba59 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 23:52:05 +0100 Subject: [PATCH 355/919] Always use a defined renderGeometryFunction, thanks @elemoine --- src/ol/render/canvas/canvasreplay.js | 15 +++++++-------- .../renderer/canvas/canvasvectorlayerrenderer.js | 7 ++++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index b456c9adbe..054dc2036e 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -114,8 +114,8 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { /** * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. - * @param {function(ol.geom.Geometry): boolean|undefined} renderGeometryFunction - * Render geometry function. + * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render + * geometry function. */ ol.render.canvas.Replay.prototype.draw = function(context, transform, renderGeometryFunction) { @@ -139,12 +139,11 @@ ol.render.canvas.Replay.prototype.draw = var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) { var geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); - if (goog.isDef(renderGeometryFunction) && - !renderGeometryFunction(geometry)) { + if (renderGeometryFunction(geometry)) { + ++i; + } else { d = /** @type {number} */ (instruction[2]); i = /** @type {number} */ (instruction[3]); - } else { - ++i; } } else if (type == ol.render.canvas.Instruction.BEGIN_PATH) { context.beginPath(); @@ -795,8 +794,8 @@ ol.render.canvas.ReplayGroup = function() { * @param {CanvasRenderingContext2D} context Context. * @param {ol.Extent} extent Extent. * @param {goog.vec.Mat4.AnyType} transform Transform. - * @param {function(ol.geom.Geometry): boolean|undefined} renderGeometryFunction - * Render geometry function. + * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render + * geometry function. */ ol.render.canvas.ReplayGroup.prototype.draw = function(context, extent, transform, renderGeometryFunction) { diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index dab5b3305e..c5c58976ff 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -1,6 +1,7 @@ goog.provide('ol.renderer.canvas.VectorLayer'); -goog.require('goog.vec.Mat4'); +goog.require('goog.asserts'); +goog.require('goog.functions'); goog.require('ol.ViewHint'); goog.require('ol.extent'); goog.require('ol.render.canvas.ReplayGroup'); @@ -61,6 +62,10 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = if (!goog.isNull(replayGroup)) { var vectorLayer = this.getVectorLayer(); var renderGeometryFunction = vectorLayer.getRenderGeometryFunction(); + if (!goog.isDef(renderGeometryFunction)) { + renderGeometryFunction = goog.functions.TRUE; + } + goog.asserts.assert(goog.isFunction(renderGeometryFunction)); context.globalAlpha = layerState.opacity; replayGroup.draw( context, frameState.extent, transform, renderGeometryFunction); From 3655d15f61015f464febf818d1a57b03c1711a36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 14:38:13 +0100 Subject: [PATCH 356/919] Make setting a fill color optional --- src/objectliterals.jsdoc | 2 +- src/ol/style/fillstyle.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 41930724ac..722358a6ce 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -620,7 +620,7 @@ /** * @typedef {Object} ol.style.FillOptions - * @property {ol.Color|string} color Color. + * @property {ol.Color|string|undefined} color Color. * @todo stability experimental */ diff --git a/src/ol/style/fillstyle.js b/src/ol/style/fillstyle.js index 5c6a040da5..38269f5c3a 100644 --- a/src/ol/style/fillstyle.js +++ b/src/ol/style/fillstyle.js @@ -13,7 +13,7 @@ ol.style.Fill = function(options) { /** * @type {ol.Color|string} */ - this.color = options.color; + this.color = goog.isDef(options.color) ? options.color : null; }; From 66bda9259787356f8bb30d814eac9597d494e5ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 14:39:12 +0100 Subject: [PATCH 357/919] Make setting stroke color and width optional --- src/objectliterals.jsdoc | 4 ++-- src/ol/style/strokestyle.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 722358a6ce..28ade9fae5 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -638,8 +638,8 @@ /** * @typedef {Object} ol.style.StrokeOptions - * @property {ol.Color|string} color Color. - * @property {number} width Width. + * @property {ol.Color|string|undefined} color Color. + * @property {number|undefined} width Width. * @todo stability experimental */ diff --git a/src/ol/style/strokestyle.js b/src/ol/style/strokestyle.js index 5be2a6004d..91fbc29352 100644 --- a/src/ol/style/strokestyle.js +++ b/src/ol/style/strokestyle.js @@ -13,10 +13,10 @@ ol.style.Stroke = function(options) { /** * @type {ol.Color|string} */ - this.color = options.color; + this.color = goog.isDef(options.color) ? options.color : null; /** - * @type {number} + * @type {number|undefined} */ this.width = options.width; }; From 92a34d380b9211f044e88fa2aa495026876fbc1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 14:40:18 +0100 Subject: [PATCH 358/919] Make setting image rotation and subtractViewRotation optional --- src/objectliterals.jsdoc | 4 ++-- src/ol/style/imagestyle.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 28ade9fae5..977aecfe7e 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -628,11 +628,11 @@ * @typedef {Object} ol.style.ImageOptions * @property {ol.Pixel} anchor Anchor. * @property {HTMLCanvasElement|HTMLVideoElement|Image} image Image. - * @property {number} rotation Rotation. + * @property {number|undefined} rotation Rotation. * @property {ol.Size} size Image size in pixel. * @property {boolean|undefined} snapToPixel Whether the image should be * snapped to the closed pixel at rendering time. - * @property {boolean} subtractViewRotation Whether the image should be + * @property {boolean|undefined} subtractViewRotation Whether the image should be * rotated with the view or not. */ diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 4f9af57ce5..c4ea5ecc95 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -21,7 +21,7 @@ ol.style.Image = function(options) { this.image = options.image; /** - * @type {number} + * @type {number|undefined} */ this.rotation = options.rotation; @@ -36,7 +36,7 @@ ol.style.Image = function(options) { this.snapToPixel = options.snapToPixel; /** - * @type {boolean} + * @type {boolean|undefined} */ this.subtractViewRotation = options.subtractViewRotation; From d3ad1a750625db3d2dfb090bcc278bff7d346bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 14:41:07 +0100 Subject: [PATCH 359/919] Add canvas style default values --- src/ol/render/canvas/canvas.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/ol/render/canvas/canvas.js diff --git a/src/ol/render/canvas/canvas.js b/src/ol/render/canvas/canvas.js new file mode 100644 index 0000000000..f68931c454 --- /dev/null +++ b/src/ol/render/canvas/canvas.js @@ -0,0 +1,19 @@ +goog.provide('ol.render.canvas'); + + +/** + * @const {string} + */ +ol.render.canvas.defaultFillStyle = 'black'; + + +/** + * @const {string} + */ +ol.render.canvas.defaultStrokeStyle = 'black'; + + +/** + * @const {number} + */ +ol.render.canvas.defaultLineWidth = 1; From 2a122f057cf824d9a961291f2bb82092a3f3ac62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 16:03:11 +0100 Subject: [PATCH 360/919] Rename currentFillColor to currentFillStyle --- src/ol/render/canvas/canvasreplay.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 054dc2036e..9e85b393e0 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -605,7 +605,7 @@ ol.render.canvas.PolygonReplay = function() { /** * @private - * @type {{currentFillColor: (string|undefined), + * @type {{currentFillStyle: (string|undefined), * currentStrokeStyle: (string|undefined), * currentLineWidth: (number|undefined), * fillStyle: (string|undefined), @@ -613,7 +613,7 @@ ol.render.canvas.PolygonReplay = function() { * lineWidth: (number|undefined)}|null} */ this.state_ = { - currentFillColor: undefined, + currentFillStyle: undefined, currentStrokeStyle: undefined, currentLineWidth: undefined, fillStyle: undefined, @@ -754,10 +754,10 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { var fillStyle = state.fillStyle; var strokeStyle = state.strokeStyle; var lineWidth = state.lineWidth; - if (goog.isDef(fillStyle) && state.currentFillColor != fillStyle) { + if (goog.isDef(fillStyle) && state.currentFillStyle != fillStyle) { this.instructions.push( [ol.render.canvas.Instruction.SET_FILL_STYLE, fillStyle]); - state.currentFillColor = state.fillStyle; + state.currentFillStyle = state.fillStyle; } if (goog.isDef(strokeStyle)) { goog.asserts.assert(goog.isDef(lineWidth)); From c4731ff37b0cdbebae1349ca41391f522e04a960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 21 Nov 2013 21:00:29 +0100 Subject: [PATCH 361/919] Use canvas style default values --- src/ol/render/canvas/canvasreplay.js | 29 ++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 9e85b393e0..14ca6f6bbe 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -13,6 +13,7 @@ goog.require('ol.extent'); goog.require('ol.geom.flat'); goog.require('ol.render.IRender'); goog.require('ol.render.IReplayGroup'); +goog.require('ol.render.canvas'); goog.require('ol.vec.Mat4'); @@ -586,10 +587,11 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = goog.asserts.assert(!goog.isNull(this.state_)); goog.asserts.assert(goog.isNull(fillStyle)); goog.asserts.assert(!goog.isNull(strokeStyle)); - goog.asserts.assert(goog.isDefAndNotNull(strokeStyle.color)); - goog.asserts.assert(goog.isDef(strokeStyle.width)); - this.state_.strokeStyle = ol.color.asString(strokeStyle.color); - this.state_.lineWidth = strokeStyle.width; + this.state_.strokeStyle = !goog.isNull(strokeStyle.color) ? + ol.color.asString(strokeStyle.color) : + ol.render.canvas.defaultStrokeStyle; + this.state_.lineWidth = goog.isDef(strokeStyle.width) ? + strokeStyle.width : ol.render.canvas.defaultLineWidth; }; @@ -733,15 +735,22 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { goog.asserts.assert(!goog.isNull(this.state_)); goog.asserts.assert(!goog.isNull(fillStyle) || !goog.isNull(strokeStyle)); + var state = this.state_; if (!goog.isNull(fillStyle)) { - goog.asserts.assert(goog.isDefAndNotNull(fillStyle.color)); - this.state_.fillStyle = ol.color.asString(fillStyle.color); + state.fillStyle = !goog.isNull(fillStyle.color) ? + ol.color.asString(fillStyle.color) : ol.render.canvas.defaultFillStyle; + } else { + state.fillStyle = undefined; } if (!goog.isNull(strokeStyle)) { - goog.asserts.assert(goog.isDefAndNotNull(strokeStyle.color)); - goog.asserts.assert(goog.isDef(strokeStyle.width)); - this.state_.strokeStyle = ol.color.asString(strokeStyle.color); - this.state_.lineWidth = strokeStyle.width; + state.strokeStyle = !goog.isNull(strokeStyle.color) ? + ol.color.asString(strokeStyle.color) : + ol.render.canvas.defaultStrokeStyle; + state.lineWidth = !goog.isDef(strokeStyle.width) ? + strokeStyle.width : ol.render.canvas.defaultLineWidth; + } else { + state.strokeStyle = undefined; + state.lineWidth = undefined; } }; From 68caa8141cff16a0c082fa5e185813733c44e516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 22 Nov 2013 16:36:06 +0100 Subject: [PATCH 362/919] Fix typo in replay code --- src/ol/render/canvas/canvasreplay.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 14ca6f6bbe..58edfc2801 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -746,7 +746,7 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = state.strokeStyle = !goog.isNull(strokeStyle.color) ? ol.color.asString(strokeStyle.color) : ol.render.canvas.defaultStrokeStyle; - state.lineWidth = !goog.isDef(strokeStyle.width) ? + state.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; } else { state.strokeStyle = undefined; From 34ce9e478d72a6e633b7a543180a84138bbdda8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 22 Nov 2013 13:56:06 +0100 Subject: [PATCH 363/919] Store raw style values in immediate objects This commit also uses default style values (e.g. ol.render.canvas.defaultStrokeFill) when no value is defined by the user. --- src/ol/render/canvas/canvasimmediate.js | 143 +++++++++++++++++------- 1 file changed, 102 insertions(+), 41 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 129dc38abf..9efb728137 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -7,8 +7,7 @@ goog.require('goog.asserts'); goog.require('ol.color'); goog.require('ol.extent'); goog.require('ol.render.IRender'); -goog.require('ol.style.Fill'); -goog.require('ol.style.Stroke'); +goog.require('ol.render.canvas'); goog.require('ol.style.Text'); @@ -42,15 +41,33 @@ ol.render.canvas.Immediate = function(context, extent, transform) { /** * @private - * @type {{fillStyle: ol.style.Fill, - * imageStyle: ol.style.Image, - * strokeStyle: ol.style.Stroke, + * @type {{currentFillStyle: (string|undefined), + * currentStrokeStyle: (string|undefined), + * currentLineWidth: (number|undefined), + * fillStyle: (string|undefined), + * strokeStyle: (string|undefined), + * lineWidth: (number|undefined), + * anchorX: (number|undefined), + * anchorY: (number|undefined), + * image: (HTMLCanvasElement|HTMLVideoElement|Image), + * height: (number|undefined), + * width: (number|undefined), + * snapToPixel: (boolean|undefined), * textStyle: ol.style.Text}} */ this.state_ = { - fillStyle: null, - imageStyle: null, - strokeStyle: null, + currentFillStyle: undefined, + currentStrokeStyle: undefined, + currentLineWidth: undefined, + fillStyle: undefined, + strokeStyle: undefined, + lineWidth: undefined, + anchorX: undefined, + anchorY: undefined, + image: null, + height: undefined, + width: undefined, + snapToPixel: undefined, textStyle: null }; @@ -68,24 +85,27 @@ ol.render.canvas.Immediate = function(context, extent, transform) { * @private */ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { + var state = this.state_; var context = this.context_; - var imageStyle = this.state_.imageStyle; if (!ol.extent.intersects(this.extent_, geometry.getExtent()) || - !goog.isDefAndNotNull(imageStyle)) { + goog.isNull(state.image)) { return; } + goog.asserts.assert(goog.isDef(state.anchorX)); + goog.asserts.assert(goog.isDef(state.anchorY)); + goog.asserts.assert(goog.isDef(state.height)); + goog.asserts.assert(goog.isDef(state.width)); var pixelCoordinates = ol.geom.transformGeometry2D( geometry, this.transform_, this.pixelCoordinates_); var i, ii; for (i = 0, ii = pixelCoordinates.length; i < ii; i += 2) { - var x = pixelCoordinates[i] - imageStyle.anchor[0]; - var y = pixelCoordinates[i + 1] - imageStyle.anchor[1]; - if (imageStyle.snapToPixel) { + var x = pixelCoordinates[i] - state.anchorX; + var y = pixelCoordinates[i + 1] - state.anchorY; + if (state.snapToPixel) { x = (x + 0.5) | 0; y = (y + 0.5) | 0; } - context.drawImage(imageStyle.image, x, y, - imageStyle.size[0], imageStyle.size[1]); + context.drawImage(state.image, x, y, state.width, state.height); } }; @@ -102,10 +122,10 @@ ol.render.canvas.Immediate.prototype.drawText_ = function(geometry) { var textStyle = state.textStyle; if (!ol.extent.intersects(this.extent_, geometry.getExtent()) || !goog.isDefAndNotNull(textStyle) || !goog.isDef(textStyle.text) || - (!goog.isDefAndNotNull(fillStyle) && - !goog.isDefAndNotNull(strokeStyle))) { + (!goog.isDef(fillStyle) && !goog.isDef(strokeStyle))) { return; } + this.setFillStrokeStyles_(); var pixelCoordinates = ol.geom.transformGeometry2D( geometry, this.transform_, this.pixelCoordinates_); var i, ii; @@ -113,10 +133,10 @@ ol.render.canvas.Immediate.prototype.drawText_ = function(geometry) { var x = pixelCoordinates[i]; var y = pixelCoordinates[i + 1]; // FIXME stroke before fill or fill before stroke? - if (goog.isDefAndNotNull(strokeStyle)) { + if (goog.isDef(strokeStyle)) { context.strokeText(textStyle.text, x, y); } - if (goog.isDefAndNotNull(fillStyle)) { + if (goog.isDef(fillStyle)) { context.fillText(textStyle.text, x, y); } } @@ -208,9 +228,10 @@ ol.render.canvas.Immediate.prototype.drawMultiPointGeometry = ol.render.canvas.Immediate.prototype.drawLineStringGeometry = function(lineStringGeometry) { if (!ol.extent.intersects(this.extent_, lineStringGeometry.getExtent()) || - !goog.isDefAndNotNull(this.state_.strokeStyle)) { + !goog.isDef(this.state_.strokeStyle)) { return; } + this.setFillStrokeStyles_(); var context = this.context_; var pixelCoordinates = ol.geom.transformGeometry2D( lineStringGeometry, this.transform_, this.pixelCoordinates_); @@ -227,9 +248,10 @@ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry) { var geometryExtent = multiLineStringGeometry.getExtent(); if (!ol.extent.intersects(this.extent_, geometryExtent) || - !goog.isDefAndNotNull(this.state_.strokeStyle)) { + !goog.isDef(this.state_.strokeStyle)) { return; } + this.setFillStrokeStyles_(); var context = this.context_; var pixelCoordinates = ol.geom.transformGeometry2D( multiLineStringGeometry, this.transform_, this.pixelCoordinates_); @@ -253,20 +275,21 @@ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = return; } var state = this.state_; - if (!goog.isDefAndNotNull(state.fillStyle) && - !goog.isDefAndNotNull(state.strokeStyle)) { + if (!goog.isDef(state.fillStyle) && !goog.isDef(state.strokeStyle)) { return; } + this.setFillStrokeStyles_(); var context = this.context_; var pixelCoordinates = ol.geom.transformGeometry2D( polygonGeometry, this.transform_, this.pixelCoordinates_); var ends = polygonGeometry.getEnds(); context.beginPath(); this.drawRings_(pixelCoordinates, 0, ends); - if (goog.isDefAndNotNull(state.fillStyle)) { + if (goog.isDef(state.fillStyle)) { context.fill(); } - if (goog.isDefAndNotNull(state.strokeStyle)) { + if (goog.isDef(state.strokeStyle)) { + goog.asserts.assert(goog.isDef(state.lineWidth)); context.stroke(); } }; @@ -281,10 +304,10 @@ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = return; } var state = this.state_; - if (!goog.isDefAndNotNull(state.fillStyle) && - !goog.isDefAndNotNull(state.strokeStyle)) { + if (!goog.isDef(state.fillStyle) && !goog.isDef(state.strokeStyle)) { return; } + this.setFillStrokeStyles_(); var context = this.context_; var pixelCoordinates = ol.geom.transformGeometry2D( multiPolygonGeometry, this.transform_, this.pixelCoordinates_); @@ -295,10 +318,11 @@ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = var ends = endss[i]; context.beginPath(); offset = this.drawRings_(pixelCoordinates, offset, ends); - if (goog.isDefAndNotNull(state.fillStyle)) { + if (goog.isDef(state.fillStyle)) { context.fill(); } - if (goog.isDefAndNotNull(state.strokeStyle)) { + if (goog.isDef(state.strokeStyle)) { + goog.asserts.assert(goog.isDef(state.lineWidth)); context.stroke(); } } @@ -310,20 +334,46 @@ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = */ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { - var context = this.context_; var state = this.state_; - if (!ol.style.Fill.equals(state.fillStyle, fillStyle)) { - if (goog.isDefAndNotNull(fillStyle)) { - context.fillStyle = ol.color.asString(fillStyle.color); - } - state.fillStyle = fillStyle; + if (!goog.isNull(fillStyle)) { + state.fillStyle = !goog.isNull(fillStyle.color) ? + ol.color.asString(fillStyle.color) : ol.render.canvas.defaultFillStyle; + } else { + state.fillStyle = undefined; } - if (!ol.style.Stroke.equals(state.strokeStyle, strokeStyle)) { - if (goog.isDefAndNotNull(strokeStyle)) { - context.strokeStyle = ol.color.asString(strokeStyle.color); - context.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : 1; + if (!goog.isNull(strokeStyle)) { + state.strokeStyle = !goog.isNull(strokeStyle.color) ? + ol.color.asString(strokeStyle.color) : + ol.render.canvas.defaultStrokeStyle; + state.lineWidth = goog.isDef(strokeStyle.width) ? + strokeStyle.width : ol.render.canvas.defaultLineWidth; + } else { + state.strokeStyle = undefined; + state.lineWidth = undefined; + } +}; + + +/** + * @private + */ +ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { + var state = this.state_; + var context = this.context_; + var fillStyle = state.fillStyle; + var strokeStyle = state.strokeStyle; + var lineWidth = state.lineWidth; + if (goog.isDef(fillStyle) && state.currentFillStyle != fillStyle) { + context.fillStyle = fillStyle; + state.currentFillStyle = fillStyle; + } + if (goog.isDef(strokeStyle)) { + goog.asserts.assert(goog.isDef(lineWidth)); + if (state.currentStrokeStyle != strokeStyle || + state.currentLineWidth != lineWidth) { + context.strokeStyle = strokeStyle; + context.lineWidth = lineWidth; } - state.strokeStyle = strokeStyle; } }; @@ -332,7 +382,18 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = * @inheritDoc */ ol.render.canvas.Immediate.prototype.setImageStyle = function(imageStyle) { - this.state_.imageStyle = imageStyle; + if (!goog.isNull(imageStyle)) { + goog.asserts.assert(!goog.isNull(imageStyle.anchor)); + goog.asserts.assert(goog.isDef(imageStyle.size)); + goog.asserts.assert(!goog.isNull(imageStyle.image)); + var state = this.state_; + state.anchorX = imageStyle.anchor[0]; + state.anchorY = imageStyle.anchor[1]; + state.image = imageStyle.image; + state.width = imageStyle.size[0]; + state.height = imageStyle.size[1]; + state.snapToPixel = imageStyle.snapToPixel; + } }; From 95826cd3c893d035de9bdf2613da5436d9b9d335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 22 Nov 2013 13:58:05 +0100 Subject: [PATCH 364/919] Add FIXME --- src/ol/render/canvas/canvasimmediate.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 9efb728137..05bda9980c 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -1,5 +1,6 @@ // FIXME test, especially polygons with holes and multipolygons // FIXME need to handle large thick features (where pixel size matters) +// FIXME store raw style values for text goog.provide('ol.render.canvas.Immediate'); From b78bcce8abb195559e96c295163b7a71d835c9de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 22 Nov 2013 13:58:46 +0100 Subject: [PATCH 365/919] Draw a temporary point in geojson example --- examples/geojson.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 3b74046929..264a75f682 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -4,6 +4,7 @@ goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.format.GeoJSON'); goog.require('ol.geom.LineString'); +goog.require('ol.geom.Point'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.shape'); @@ -124,17 +125,27 @@ var vectorLayer = new ol.layer.Vector({ source: vectorSource, styleFunction: styleFunction }); -var tmpFeature = new ol.Feature( +var tmpLineFeature = new ol.Feature( new ol.geom.LineString([[-5e6, -5e6], [5e6, -5e6]])); +var tmpPointFeature = new ol.Feature( + new ol.geom.Point([0, 3e6])); var tmpStyle = new ol.style.Style({ stroke: new ol.style.Stroke({ color: 'magenta', width: 5 - }) + }), + image: ol.shape.renderCircle(5, + new ol.style.Fill({ + color: 'green' + }), + new ol.style.Stroke({ + color: 'blue' + })) }); vectorLayer.on('postcompose', function(event) { var render = event.getRender(); - render.drawFeature(tmpFeature, tmpStyle); + render.drawFeature(tmpLineFeature, tmpStyle); + render.drawFeature(tmpPointFeature, tmpStyle); }); var map = new ol.Map({ From 6ca2fef0a3a61a36684f39400112776e6d119d63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 22 Nov 2013 15:37:07 +0100 Subject: [PATCH 366/919] Always same format for color strings --- src/ol/render/canvas/canvas.js | 16 +++++++++------- src/ol/render/canvas/canvasimmediate.js | 9 ++++----- src/ol/render/canvas/canvasreplay.js | 14 ++++++-------- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/ol/render/canvas/canvas.js b/src/ol/render/canvas/canvas.js index f68931c454..ec08b3e89a 100644 --- a/src/ol/render/canvas/canvas.js +++ b/src/ol/render/canvas/canvas.js @@ -1,16 +1,18 @@ goog.provide('ol.render.canvas'); - -/** - * @const {string} - */ -ol.render.canvas.defaultFillStyle = 'black'; +goog.require('ol.color'); /** - * @const {string} + * @const {ol.Color} */ -ol.render.canvas.defaultStrokeStyle = 'black'; +ol.render.canvas.defaultFillStyle = ol.color.fromString('black'); + + +/** + * @const {ol.Color} + */ +ol.render.canvas.defaultStrokeStyle = ol.color.fromString('black'); /** diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 05bda9980c..6293f2e30d 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -337,15 +337,14 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { var state = this.state_; if (!goog.isNull(fillStyle)) { - state.fillStyle = !goog.isNull(fillStyle.color) ? - ol.color.asString(fillStyle.color) : ol.render.canvas.defaultFillStyle; + state.fillStyle = ol.color.asString(!goog.isNull(fillStyle.color) ? + fillStyle.color : ol.render.canvas.defaultFillStyle); } else { state.fillStyle = undefined; } if (!goog.isNull(strokeStyle)) { - state.strokeStyle = !goog.isNull(strokeStyle.color) ? - ol.color.asString(strokeStyle.color) : - ol.render.canvas.defaultStrokeStyle; + state.strokeStyle = ol.color.asString(!goog.isNull(strokeStyle.color) ? + strokeStyle.color : ol.render.canvas.defaultStrokeStyle); state.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; } else { diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 58edfc2801..e9861cc5cd 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -587,9 +587,8 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = goog.asserts.assert(!goog.isNull(this.state_)); goog.asserts.assert(goog.isNull(fillStyle)); goog.asserts.assert(!goog.isNull(strokeStyle)); - this.state_.strokeStyle = !goog.isNull(strokeStyle.color) ? - ol.color.asString(strokeStyle.color) : - ol.render.canvas.defaultStrokeStyle; + this.state_.strokeStyle = ol.color.asString(!goog.isNull(strokeStyle.color) ? + strokeStyle.color : ol.render.canvas.defaultStrokeStyle); this.state_.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; }; @@ -737,15 +736,14 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = goog.asserts.assert(!goog.isNull(fillStyle) || !goog.isNull(strokeStyle)); var state = this.state_; if (!goog.isNull(fillStyle)) { - state.fillStyle = !goog.isNull(fillStyle.color) ? - ol.color.asString(fillStyle.color) : ol.render.canvas.defaultFillStyle; + state.fillStyle = ol.color.asString(!goog.isNull(fillStyle.color) ? + fillStyle.color : ol.render.canvas.defaultFillStyle); } else { state.fillStyle = undefined; } if (!goog.isNull(strokeStyle)) { - state.strokeStyle = !goog.isNull(strokeStyle.color) ? - ol.color.asString(strokeStyle.color) : - ol.render.canvas.defaultStrokeStyle; + state.strokeStyle = ol.color.asString(!goog.isNull(strokeStyle.color) ? + strokeStyle.color : ol.render.canvas.defaultStrokeStyle); state.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; } else { From 617635ed80a8e41d320a4328fc6723e9552fc093 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:28:44 +0100 Subject: [PATCH 367/919] Improve type checking in ol.renderer.webgl.Map --- src/ol/renderer/webgl/webglmaprenderer.js | 74 +++++++++++++++++------ 1 file changed, 54 insertions(+), 20 deletions(-) diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index fb13ddbf42..75dd46a533 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -22,6 +22,7 @@ goog.require('ol.render.Event'); goog.require('ol.render.EventType'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.webgl.ImageLayer'); +goog.require('ol.renderer.webgl.Layer'); goog.require('ol.renderer.webgl.TileLayer'); goog.require('ol.source.State'); goog.require('ol.structs.LRUCache'); @@ -112,17 +113,23 @@ ol.renderer.webgl.Map = function(container, map) { */ this.tileTextureQueue_ = new ol.structs.PriorityQueue( /** - * @param {Array} element Element. + * @param {Array.<*>} element Element. * @return {number} Priority. */ - goog.bind(function(element) { - var tileCenter = /** @type {ol.Coordinate} */ (element[1]); - var tileResolution = /** @type {number} */ (element[2]); - var deltaX = tileCenter[0] - this.focus_[0]; - var deltaY = tileCenter[1] - this.focus_[1]; - return 65536 * Math.log(tileResolution) + - Math.sqrt(deltaX * deltaX + deltaY * deltaY) / tileResolution; - }, this), + goog.bind( + /** + * @param {Array.<*>} element Element. + * @return {number} Priority. + * @this {ol.renderer.webgl.Map} + */ + function(element) { + var tileCenter = /** @type {ol.Coordinate} */ (element[1]); + var tileResolution = /** @type {number} */ (element[2]); + var deltaX = tileCenter[0] - this.focus_[0]; + var deltaY = tileCenter[1] - this.focus_[1]; + return 65536 * Math.log(tileResolution) + + Math.sqrt(deltaX * deltaX + deltaY * deltaY) / tileResolution; + }, this), /** * @param {Array} element Element. * @return {string} Key. @@ -167,7 +174,8 @@ ol.renderer.webgl.Map.prototype.bindTileTexture = var gl = this.getGL(); var tileKey = tile.getKey(); if (this.textureCache_.containsKey(tileKey)) { - var textureCacheEntry = this.textureCache_.get(tileKey); + var textureCacheEntry = /** @type {ol.renderer.webgl.TextureCacheEntry} */ + (this.textureCache_.get(tileKey)); gl.bindTexture(goog.webgl.TEXTURE_2D, textureCacheEntry.texture); if (textureCacheEntry.magFilter != magFilter) { gl.texParameteri( @@ -239,11 +247,16 @@ ol.renderer.webgl.Map.prototype.dispatchComposeEvent_ = ol.renderer.webgl.Map.prototype.disposeInternal = function() { var gl = this.getGL(); if (!gl.isContextLost()) { - this.textureCache_.forEach(function(textureCacheEntry) { - if (!goog.isNull(textureCacheEntry)) { - gl.deleteTexture(textureCacheEntry.texture); - } - }); + this.textureCache_.forEach( + /** + * @param {ol.renderer.webgl.TextureCacheEntry} textureCacheEntry + * Texture cache entry. + */ + function(textureCacheEntry) { + if (!goog.isNull(textureCacheEntry)) { + gl.deleteTexture(textureCacheEntry.texture); + } + }); } goog.dispose(this.context_); goog.base(this, 'disposeInternal'); @@ -300,6 +313,17 @@ ol.renderer.webgl.Map.prototype.getTileTextureQueue = function() { }; +/** + * @param {ol.layer.Layer} layer Layer. + * @return {ol.renderer.webgl.Layer} WebGL layer renderer. + */ +ol.renderer.webgl.Map.prototype.getWebGLLayerRenderer = function(layer) { + var layerRenderer = this.getLayerRenderer(layer); + goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer); + return /** @type {ol.renderer.webgl.Layer} */ (layerRenderer); +}; + + /** * @param {goog.events.Event} event Event. * @protected @@ -308,9 +332,18 @@ ol.renderer.webgl.Map.prototype.handleWebGLContextLost = function(event) { event.preventDefault(); this.textureCache_.clear(); this.textureCacheFrameMarkerCount_ = 0; - goog.object.forEach(this.getLayerRenderers(), function(layerRenderer) { - layerRenderer.handleWebGLContextLost(); - }); + goog.object.forEach(this.getLayerRenderers(), + /** + * @param {ol.renderer.Layer} layerRenderer Layer renderer. + * @param {string} key Key. + * @param {Object.} object Object. + */ + function(layerRenderer, key, object) { + goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer); + var webGLLayerRenderer = /** @type {ol.renderer.webgl.Layer} */ + (layerRenderer); + webGLLayerRenderer.handleWebGLContextLost(); + }); }; @@ -381,6 +414,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { this.textureCache_.set((-frameState.index).toString(), null); ++this.textureCacheFrameMarkerCount_; + /** @type {Array.} */ var layersToDraw = []; var layersArray = frameState.layersArray; var viewResolution = frameState.view2DState.resolution; @@ -398,7 +432,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { for (i = 0, ii = layersToDraw.length; i < ii; ++i) { layer = layersToDraw[i]; - layerRenderer = this.getLayerRenderer(layer); + layerRenderer = this.getWebGLLayerRenderer(layer); layerState = frameState.layerStates[goog.getUid(layer)]; layerRenderer.prepareFrame(frameState, layerState); } @@ -421,7 +455,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { for (i = 0, ii = layersToDraw.length; i < ii; ++i) { layer = layersToDraw[i]; layerState = frameState.layerStates[goog.getUid(layer)]; - layerRenderer = this.getLayerRenderer(layer); + layerRenderer = this.getWebGLLayerRenderer(layer); layerRenderer.composeFrame(frameState, layerState, context); } From 6584ef985fdecd94aee87cc3c9c648200dad935b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:33:47 +0100 Subject: [PATCH 368/919] Improve type checking in ol.renderer.canvas.Map --- src/ol/renderer/canvas/canvasmaprenderer.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index 509066b42e..e67290419c 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -15,6 +15,7 @@ goog.require('ol.render.EventType'); goog.require('ol.render.canvas.Immediate'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.canvas.ImageLayer'); +goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.canvas.TileLayer'); goog.require('ol.renderer.canvas.VectorLayer'); goog.require('ol.source.State'); @@ -95,6 +96,17 @@ ol.renderer.canvas.Map.prototype.dispatchComposeEvent_ = }; +/** + * @param {ol.layer.Layer} layer Layer. + * @return {ol.renderer.canvas.Layer} Canvas layer renderer. + */ +ol.renderer.canvas.Map.prototype.getCanvasLayerRenderer = function(layer) { + var layerRenderer = this.getLayerRenderer(layer); + goog.asserts.assertInstanceof(layerRenderer, ol.renderer.canvas.Layer); + return /** @type {ol.renderer.canvas.Layer} */ (layerRenderer); +}; + + /** * @inheritDoc */ @@ -125,11 +137,10 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { var layerStates = frameState.layerStates; var layersArray = frameState.layersArray; var viewResolution = frameState.view2DState.resolution; - var i, ii, layer, layerRenderer, layerState; + var canvasLayerRenderer, i, ii, layer, layerState; for (i = 0, ii = layersArray.length; i < ii; ++i) { layer = layersArray[i]; - layerRenderer = - /** @type {ol.renderer.canvas.Layer} */ (this.getLayerRenderer(layer)); + canvasLayerRenderer = this.getCanvasLayerRenderer(layer); layerState = layerStates[goog.getUid(layer)]; if (!layerState.visible || layerState.sourceState != ol.source.State.READY || @@ -137,8 +148,8 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { viewResolution < layerState.minResolution) { continue; } - layerRenderer.prepareFrame(frameState, layerState); - layerRenderer.composeFrame(frameState, layerState, context); + canvasLayerRenderer.prepareFrame(frameState, layerState); + canvasLayerRenderer.composeFrame(frameState, layerState, context); } this.dispatchComposeEvent_(ol.render.EventType.POSTCOMPOSE, frameState); From d358e80937c19e9c803d910940d51b0d1b83e821 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:33:58 +0100 Subject: [PATCH 369/919] Improve type checking in ol.TileRange --- src/ol/tilerange.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/tilerange.js b/src/ol/tilerange.js index a53723ed53..4ac7b36f3c 100644 --- a/src/ol/tilerange.js +++ b/src/ol/tilerange.js @@ -46,12 +46,12 @@ ol.TileRange = function(minX, maxX, minY, maxY) { * @return {!ol.TileRange} Bounding tile box. */ ol.TileRange.boundingTileRange = function(var_args) { - var tileCoord0 = arguments[0]; + var tileCoord0 = /** @type {ol.TileCoord} */ (arguments[0]); var tileRange = new ol.TileRange(tileCoord0.x, tileCoord0.x, tileCoord0.y, tileCoord0.y); var i, ii, tileCoord; for (i = 1, ii = arguments.length; i < ii; ++i) { - tileCoord = arguments[i]; + tileCoord = /** @type {ol.TileCoord} */ (arguments[i]); goog.asserts.assert(tileCoord.z == tileCoord0.z); tileRange.minX = Math.min(tileRange.minX, tileCoord.x); tileRange.maxX = Math.max(tileRange.maxX, tileCoord.x); From ae29e70cfd8bd8de1202bcffcff4c7d6ec2f7418 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 16:55:20 +0100 Subject: [PATCH 370/919] Use ol.style.Style in rtree example --- examples/rtree.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/rtree.js b/examples/rtree.js index e3eed471e9..743df656da 100644 --- a/examples/rtree.js +++ b/examples/rtree.js @@ -67,15 +67,15 @@ var style = new ol.style.Style({ var colors = ['red', 'orange', 'yellow', 'blue', 'green', 'indigo', 'violet']; var depthStyle = []; for (i = 0, ii = colors.length; i < ii; ++i) { - depthStyle[i] = { + depthStyle[i] = new ol.style.Style({ fill: null, image: null, - stroke: { + stroke: new ol.style.Stroke({ color: colors[i], width: (7 - i) / 2 - }, + }), zIndex: i - }; + }); } var extentsByDepth = vectorSource.rTree_.getExtentsByDepth(); var rtreeExtentFeatures = []; From b0d5f96b65e8e5164debe9acfe186659c9349172 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 25 Nov 2013 20:03:21 +0100 Subject: [PATCH 371/919] Rename ol.render.canvas.Replay#draw to replay --- src/ol/render/canvas/canvasreplay.js | 6 +++--- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index e9861cc5cd..4b085cad1c 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -118,7 +118,7 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. */ -ol.render.canvas.Replay.prototype.draw = +ol.render.canvas.Replay.prototype.replay = function(context, transform, renderGeometryFunction) { /** @type {Array.} */ var pixelCoordinates; @@ -804,7 +804,7 @@ ol.render.canvas.ReplayGroup = function() { * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. */ -ol.render.canvas.ReplayGroup.prototype.draw = +ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent, transform, renderGeometryFunction) { /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); @@ -816,7 +816,7 @@ ol.render.canvas.ReplayGroup.prototype.draw = for (replayType in replayes) { var replay = replayes[replayType]; if (ol.extent.intersects(extent, replay.getExtent())) { - replay.draw(context, transform, renderGeometryFunction); + replay.replay(context, transform, renderGeometryFunction); } } } diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index c5c58976ff..20a52e3ff4 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -67,7 +67,7 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = } goog.asserts.assert(goog.isFunction(renderGeometryFunction)); context.globalAlpha = layerState.opacity; - replayGroup.draw( + replayGroup.replay( context, frameState.extent, transform, renderGeometryFunction); } From b99fac9901b427e2c9f53ba3bb6b3aedf4b37fca Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:14:39 +0100 Subject: [PATCH 372/919] Return extent from ol.extent.extend --- src/ol/extent.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ol/extent.js b/src/ol/extent.js index 96f47a11ec..08422a84d8 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -219,6 +219,7 @@ ol.extent.equals = function(extent1, extent2) { /** * @param {ol.Extent} extent1 Extent 1. * @param {ol.Extent} extent2 Extent 2. + * @return {ol.Extent} Extent. * @todo stability experimental */ ol.extent.extend = function(extent1, extent2) { @@ -234,6 +235,7 @@ ol.extent.extend = function(extent1, extent2) { if (extent2[3] > extent1[3]) { extent1[3] = extent2[3]; } + return extent1; }; From 029469144645dc714dc9812020e91b0d07537bcd Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:14:50 +0100 Subject: [PATCH 373/919] Add ol.extent.getArea --- src/ol/extent.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ol/extent.js b/src/ol/extent.js index 08422a84d8..ea3e5cb8ce 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -316,6 +316,15 @@ ol.extent.extendXY = function(extent, x, y) { }; +/** + * @param {ol.Extent} extent Extent. + * @return {number} Area. + */ +ol.extent.getArea = function(extent) { + return ol.extent.getWidth(extent) * ol.extent.getHeight(extent); +}; + + /** * @param {ol.Extent} extent Extent. * @return {ol.Coordinate} Bottom left coordinate. From 61afebb1ecede8031e9c2280702ca5d1ac199bf7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:15:07 +0100 Subject: [PATCH 374/919] Add ol.extent.getEnlargedArea --- src/ol/extent.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/ol/extent.js b/src/ol/extent.js index ea3e5cb8ce..ee5761541a 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -355,6 +355,20 @@ ol.extent.getCenter = function(extent) { }; +/** + * @param {ol.Extent} extent1 Extent 1. + * @param {ol.Extent} extent2 Extent 2. + * @return {number} Enlarged area. + */ +ol.extent.getEnlargedArea = function(extent1, extent2) { + var minX = Math.min(extent1[0], extent2[0]); + var minY = Math.min(extent1[1], extent2[1]); + var maxX = Math.max(extent1[2], extent2[2]); + var maxY = Math.max(extent1[3], extent2[3]); + return (maxX - minX) * (maxY - minY); +}; + + /** * @param {ol.Coordinate} center Center. * @param {number} resolution Resolution. From 8c6e5287b557dbd5e58d19c170c7e76e606ca92c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:15:41 +0100 Subject: [PATCH 375/919] Add ol.extent.getIntersectionArea --- src/ol/extent.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/ol/extent.js b/src/ol/extent.js index ee5761541a..3a00a840c9 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -409,6 +409,20 @@ ol.extent.getHeight = function(extent) { }; +/** + * @param {ol.Extent} extent1 Extent 1. + * @param {ol.Extent} extent2 Extent 2. + * @return {number} Intersection area. + */ +ol.extent.getIntersectionArea = function(extent1, extent2) { + var minX = Math.max(extent1[0], extent2[0]); + var minY = Math.max(extent1[1], extent2[1]); + var maxX = Math.min(extent1[2], extent2[2]); + var maxY = Math.min(extent1[3], extent2[3]); + return Math.max(0, maxX - minX) * Math.max(0, maxY - minY); +}; + + /** * @param {ol.Extent} extent Extent. * @return {ol.Size} Size. From 7967edb8f0291e790052ad062d486f506bc8b624 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:15:56 +0100 Subject: [PATCH 376/919] Add ol.extent.getMargin --- src/ol/extent.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ol/extent.js b/src/ol/extent.js index 3a00a840c9..c2e810acb5 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -423,6 +423,15 @@ ol.extent.getIntersectionArea = function(extent1, extent2) { }; +/** + * @param {ol.Extent} extent Extent. + * @return {number} Margin. + */ +ol.extent.getMargin = function(extent) { + return ol.extent.getWidth(extent) + ol.extent.getHeight(extent); +}; + + /** * @param {ol.Extent} extent Extent. * @return {ol.Size} Size. From 4cddee2a0edf7584f8b8454ce491c5a6eea46860 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:17:08 +0100 Subject: [PATCH 377/919] Add ol.structs.RBush --- src/ol/structs/rbush.js | 537 ++++++++++++++++++++++++++++++++++ test/spec/ol/structs/rbush.js | 105 +++++++ 2 files changed, 642 insertions(+) create mode 100644 src/ol/structs/rbush.js create mode 100644 test/spec/ol/structs/rbush.js diff --git a/src/ol/structs/rbush.js b/src/ol/structs/rbush.js new file mode 100644 index 0000000000..e2342e512b --- /dev/null +++ b/src/ol/structs/rbush.js @@ -0,0 +1,537 @@ +// Based on rbush https://github.com/mourner/rbush +// Copyright (c) 2013 Vladimir Agafonkin +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// FIXME removal +// FIXME bulk inserts + +goog.provide('ol.structs.RBush'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('ol.extent'); + + + +/** + * @constructor + * @param {ol.Extent} extent Extent. + * @param {number} height Height. + * @param {Array.>} children Children. + * @param {?T} value Value. + * @template T + */ +ol.structs.RBushNode = function(extent, height, children, value) { + + if (height === 0) { + goog.asserts.assert(goog.isNull(children)); + goog.asserts.assert(!goog.isNull(value)); + } else { + goog.asserts.assert(!goog.isNull(children)); + goog.asserts.assert(goog.isNull(value)); + } + + /** + * @type {ol.Extent} + */ + this.extent = extent; + + /** + * @type {number} + */ + this.height = height; + + /** + * @type {Array.>} + */ + this.children = children; + + /** + * @type {?T} + */ + this.value = value; + +}; + + +/** + * @param {ol.structs.RBushNode.} node1 Node 1. + * @param {ol.structs.RBushNode.} node2 Node 2. + * @return {number} Compare minimum X. + * @template T + */ +ol.structs.RBushNode.compareMinX = function(node1, node2) { + return node1.extent[0] - node2.extent[0]; +}; + + +/** + * @param {ol.structs.RBushNode.} node1 Node 1. + * @param {ol.structs.RBushNode.} node2 Node 2. + * @return {number} Compare minimum Y. + * @template T + */ +ol.structs.RBushNode.compareMinY = function(node1, node2) { + return node1.extent[1] - node2.extent[1]; +}; + + +/** + * @param {number} start Start. + * @param {number} stop Stop. + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} Extent. + */ +ol.structs.RBushNode.prototype.getChildrenExtent = + function(start, stop, opt_extent) { + goog.asserts.assert(!this.isLeaf()); + var children = this.children; + var extent = ol.extent.createOrUpdateEmpty(opt_extent); + var i; + for (i = start; i < stop; ++i) { + ol.extent.extend(extent, children[i].extent); + } + return extent; +}; + + +/** + * FIXME empty description for jsdoc + */ +ol.structs.RBushNode.prototype.updateExtent = function() { + goog.asserts.assert(!this.isLeaf()); + var extent = ol.extent.createOrUpdateEmpty(this.extent); + var children = this.children; + var i, ii; + for (i = 0, ii = children.length; i < ii; ++i) { + ol.extent.extend(extent, children[i].extent); + } +}; + + +/** + * @return {boolean} Is leaf. + */ +ol.structs.RBushNode.prototype.isLeaf = function() { + return goog.isNull(this.children); +}; + + + +/** + * @constructor + * @param {number=} opt_maxEntries Max entries. + * @see https://github.com/mourner/rbush + * @template T + */ +ol.structs.RBush = function(opt_maxEntries) { + + /** + * @private + * @type {number} + */ + this.maxEntries_ = + Math.max(4, goog.isDef(opt_maxEntries) ? opt_maxEntries : 9); + + /** + * @private + * @type {number} + */ + this.minEntries_ = Math.max(2, Math.ceil(0.4 * this.maxEntries_)); + + /** + * @private + * @type {ol.structs.RBushNode.} + */ + this.root_ = new ol.structs.RBushNode(ol.extent.createEmpty(), 1, [], null); + + /** + * @private + * @type {Object.} + */ + this.valueExtent_ = {}; + +}; + + +/** + * @return {Array.} All. + */ +ol.structs.RBush.prototype.all = function() { + var values = []; + this.forEach( + /** + * @param {T} value Value. + */ + function(value) { + values.push(value); + }); + return values; +}; + + +/** + * @param {ol.structs.RBushNode.} node Node. + * @param {function(ol.structs.RBushNode., ol.structs.RBushNode.): number} + * compare Compare. + * @private + * @return {number} All distance margin. + */ +ol.structs.RBush.prototype.allDistMargin_ = function(node, compare) { + var children = node.children; + var m = this.minEntries_; + var M = children.length; + var i; + goog.array.sort(children, compare); + var leftExtent = node.getChildrenExtent(0, m); + var rightExtent = node.getChildrenExtent(M - m, M); + var margin = + ol.extent.getMargin(leftExtent) + ol.extent.getMargin(rightExtent); + for (i = m; i < M - m; ++i) { + ol.extent.extend(leftExtent, children[i].extent); + margin += ol.extent.getMargin(leftExtent); + } + for (i = M - m - 1; i >= m; --i) { + ol.extent.extend(rightExtent, children[i].extent); + margin += ol.extent.getMargin(rightExtent); + } + return margin; +}; + + +/** + * @param {ol.Extent} extent Extent. + * @return {Array.} All in extent. + */ +ol.structs.RBush.prototype.allInExtent = function(extent) { + var values = []; + this.forEachInExtent(extent, + /** + * @param {T} value Value. + */ + function(value) { + values.push(value); + }); + return values; +}; + + +/** + * @param {ol.structs.RBushNode.} node Node. + * @private + */ +ol.structs.RBush.prototype.chooseSplitAxis_ = function(node) { + var xMargin = this.allDistMargin_(node, ol.structs.RBushNode.compareMinX); + var yMargin = this.allDistMargin_(node, ol.structs.RBushNode.compareMinY); + if (xMargin < yMargin) { + goog.array.sort(node.children, ol.structs.RBushNode.compareMinX); + } +}; + + +/** + * @param {ol.structs.RBushNode.} node Node. + * @private + * @return {number} Split index. + */ +ol.structs.RBush.prototype.chooseSplitIndex_ = function(node) { + var children = node.children; + var m = this.minEntries_; + var M = children.length; + var minOverlap = Infinity; + var minArea = Infinity; + var extent1 = ol.extent.createEmpty(); + var extent2 = ol.extent.createEmpty(); + var index = 0; + var i; + for (i = m; i <= M - m; ++i) { + extent1 = node.getChildrenExtent(0, i, extent1); + extent2 = node.getChildrenExtent(i, M, extent2); + var overlap = ol.extent.getIntersectionArea(extent1, extent2); + var area = ol.extent.getArea(extent1) + ol.extent.getArea(extent2); + if (overlap < minOverlap) { + minOverlap = overlap; + minArea = Math.min(area, minArea); + index = i; + } else if (overlap == minOverlap && area < minArea) { + minArea = area; + index = i; + } + } + return index; +}; + + +/** + * @param {ol.Extent} extent Extent. + * @param {ol.structs.RBushNode.} node Node. + * @param {number} level Level. + * @param {Array.>} path Path. + * @private + * @return {ol.structs.RBushNode.} Node. + */ +ol.structs.RBush.prototype.chooseSubtree_ = + function(extent, node, level, path) { + while (!node.isLeaf() && path.length - 1 != level) { + var minArea = Infinity; + var minEnlargement = Infinity; + var children = node.children; + var bestChild = null; + var i, ii; + for (i = 0, ii = children.length; i < ii; ++i) { + var child = children[i]; + var area = ol.extent.getArea(child.extent); + var enlargement = ol.extent.getEnlargedArea(child.extent, extent) - area; + if (enlargement < minEnlargement) { + minEnlargement = enlargement; + minArea = Math.min(area, minArea); + bestChild = child; + } else if (enlargement == minEnlargement && area < minArea) { + minArea = area; + bestChild = child; + } + } + goog.asserts.assert(!goog.isNull(bestChild)); + node = bestChild; + path.push(node); + } + return node; +}; + + +/** + * FIXME empty description for jsdoc + */ +ol.structs.RBush.prototype.clear = function() { + var node = this.root_; + node.extent = ol.extent.createOrUpdateEmpty(this.root_.extent); + node.height = 1; + node.children.length = 0; + node.value = null; +}; + + +/** + * @param {function(this: S, T): *} callback Callback. + * @param {S=} opt_obj Scope. + * @return {*} Callback return value. + * @template S + */ +ol.structs.RBush.prototype.forEach = function(callback, opt_obj) { + return this.forEach_(this.root_, callback, opt_obj); +}; + + +/** + * @param {ol.structs.RBushNode.} node Node. + * @param {function(this: S, T): *} callback Callback. + * @param {S=} opt_obj Scope. + * @private + * @return {*} Callback return value. + * @template S + */ +ol.structs.RBush.prototype.forEach_ = function(node, callback, opt_obj) { + goog.asserts.assert(!node.isLeaf()); + /** @type {Array.>} */ + var toVisit = [node]; + var children, i, ii, result; + while (toVisit.length > 0) { + node = toVisit.pop(); + children = node.children; + if (node.height == 1) { + for (i = 0, ii = children.length; i < ii; ++i) { + result = callback.call(opt_obj, children[i].value); + if (result) { + return result; + } + } + } else { + toVisit.push.apply(toVisit, children); + } + } +}; + + +/** + * @param {ol.Extent} extent Extent. + * @param {function(this: S, T): *} callback Callback. + * @param {S=} opt_obj Scope. + * @return {*} Callback return value. + * @template S + */ +ol.structs.RBush.prototype.forEachInExtent = + function(extent, callback, opt_obj) { + /** @type {Array.>} */ + var toVisit = [this.root_]; + var result; + while (toVisit.length > 0) { + var node = toVisit.pop(); + if (ol.extent.intersects(extent, node.extent)) { + if (node.isLeaf()) { + result = callback.call(opt_obj, node.value); + if (result) { + return result; + } + } else if (ol.extent.containsExtent(extent, node.extent)) { + result = this.forEach_(node, callback, opt_obj); + if (result) { + return result; + } + } else { + toVisit.push.apply(toVisit, node.children); + } + } + } + return undefined; +}; + + +/** + * @param {function(this: S, ol.structs.RBushNode.): *} callback Callback. + * @param {S=} opt_obj Scope. + * @return {*} Callback return value. + * @template S + */ +ol.structs.RBush.prototype.forEachNode = function(callback, opt_obj) { + /** @type {Array.>} */ + var toVisit = [this.root_]; + while (toVisit.length > 0) { + var node = toVisit.pop(); + var result = callback.call(opt_obj, node); + if (result) { + return result; + } + if (!node.isLeaf()) { + toVisit.push.apply(toVisit, node.children); + } + } + return undefined; +}; + + +/** + * @param {T} value Value. + * @private + * @return {string} Key. + */ +ol.structs.RBush.prototype.getKey_ = function(value) { + goog.asserts.assert(goog.isObject(value)); + return goog.getUid(value) + ''; +}; + + +/** + * @param {ol.Extent} extent Extent. + * @param {T} value Value. + */ +ol.structs.RBush.prototype.insert = function(extent, value) { + var key = this.getKey_(value); + goog.asserts.assert(!this.valueExtent_.hasOwnProperty(key)); + this.insert_(extent, value, this.root_.height - 1); + this.valueExtent_[key] = extent; +}; + + +/** + * @param {ol.Extent} extent Extent. + * @param {T} value Value. + * @param {number} level Level. + * @private + * @return {ol.structs.RBushNode.} Node. + */ +ol.structs.RBush.prototype.insert_ = function(extent, value, level) { + /** @type {Array.>} */ + var path = [this.root_]; + var node = this.chooseSubtree_(extent, this.root_, level, path); + node.children.push(new ol.structs.RBushNode(extent, 0, null, value)); + ol.extent.extend(node.extent, extent); + var i; + for (i = path.length - 1; i >= 0; --i) { + if (path[i].children.length > this.maxEntries_) { + this.split_(path, i); + } else { + break; + } + } + for (; i >= 0; --i) { + ol.extent.extend(path[i].extent, extent); + } + return node; +}; + + +/** + * @param {T} value Value. + */ +ol.structs.RBush.prototype.remove = function(value) { + var key = this.getKey_(value); + goog.asserts.assert(this.valueExtent_.hasOwnProperty(key)); + var extent = this.valueExtent_[key]; + delete this.valueExtent_[key]; + this.remove_(extent, value); +}; + + +/** + * @param {ol.Extent} extent Extent. + * @param {T} value Value. + * @private + */ +ol.structs.RBush.prototype.remove_ = function(extent, value) { + // FIXME + goog.asserts.fail(); +}; + + +/** + * @param {Array.>} path Path. + * @param {number} level Level. + * @private + */ +ol.structs.RBush.prototype.split_ = function(path, level) { + var node = path[level]; + this.chooseSplitAxis_(node); + var splitIndex = this.chooseSplitIndex_(node); + // FIXME too few arguments to splice here + var newChildren = node.children.splice(splitIndex); + var newNode = new ol.structs.RBushNode( + ol.extent.createEmpty(), node.height, newChildren, null); + node.updateExtent(); + newNode.updateExtent(); + if (level) { + path[level - 1].children.push(newNode); + } else { + this.splitRoot_(node, newNode); + } +}; + + +/** + * @param {ol.structs.RBushNode.} node1 Node 1. + * @param {ol.structs.RBushNode.} node2 Node 2. + * @private + */ +ol.structs.RBush.prototype.splitRoot_ = function(node1, node2) { + goog.asserts.assert(node1 === this.root_); + var height = node1.height + 1; + var extent = ol.extent.extend(node1.extent.slice(), node2.extent); + var children = [node1, node2]; + this.root_ = new ol.structs.RBushNode(extent, height, children, null); +}; diff --git a/test/spec/ol/structs/rbush.js b/test/spec/ol/structs/rbush.js new file mode 100644 index 0000000000..6852e43964 --- /dev/null +++ b/test/spec/ol/structs/rbush.js @@ -0,0 +1,105 @@ +goog.provide('ol.test.structs.RBush'); + + +describe('ol.structs.RBush', function() { + + var rBush = new ol.structs.RBush(); + + describe('creation', function() { + it('can insert 1k objects', function() { + var i = 1000; + while (i > 0) { + var min = [Math.random() * 10000, Math.random() * 10000]; + var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; + var bounds = [min[0], min[1], max[0], max[1]]; + rBush.insert(bounds, {id: i}); + i--; + } + expect(rBush.allInExtent([0, 0, 10600, 10600]).length).to.be(1000); + }); + it('can insert 1k more objects', function() { + var i = 1000; + while (i > 0) { + var min = [Math.random() * 10000, Math.random() * 10000]; + var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; + var bounds = [min[0], min[1], max[0], max[1]]; + rBush.insert(bounds, {id: i}); + i--; + } + expect(rBush.allInExtent([0, 0, 10600, 10600]).length).to.be(2000); + }); + }); + + describe('search', function() { + it('can perform 1k out-of-bounds searches', function() { + var i = 1000; + var len = 0; + while (i > 0) { + var min = [-(Math.random() * 10000 + 501), + -(Math.random() * 10000 + 501)]; + var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; + var bounds = [min[0], min[1], max[0], max[1]]; + len += rBush.allInExtent(bounds).length; + i--; + } + expect(len).to.be(0); + }); + it('can perform 1k in-bounds searches', function() { + var i = 1000; + var len = 0; + while (i > 0) { + var min = [Math.random() * 10000, Math.random() * 10000]; + var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; + var bounds = [min[0], min[1], max[0], max[1]]; + len += rBush.allInExtent(bounds).length; + i--; + } + expect(len).not.to.be(0); + }); + }); + + describe.skip('deletion', function() { + var len = 0; + it('can delete half the RBush', function() { + var bounds = [5000, 0, 10500, 10500]; + len += rBush.remove(bounds).length; + expect(len).to.not.be(0); + }); + it('can delete the other half of the RBush', function() { + var bounds = [0, 0, 5000, 10500]; + len += rBush.remove(bounds).length; + expect(len).to.be(2000); + }); + }); + + describe('result plausibility and structure', function() { + + it('filters by rectangle', function() { + var objs = [{}, {}, {}, {}, {}, {}]; + rBush.insert([0, 0, 1, 1], objs[0]); + rBush.insert([1, 1, 4, 4], objs[1]); + rBush.insert([2, 2, 3, 3], objs[2]); + rBush.insert([-5, -5, -4, -4], objs[3]); + rBush.insert([-4, -4, -1, -1], objs[4]); + rBush.insert([-3, -3, -2, -2], objs[5]); + + var result; + result = rBush.allInExtent([2, 2, 3, 3]); + expect(result).to.contain(objs[1]); + expect(result).to.contain(objs[2]); + expect(result.length).to.be(2); + result = rBush.allInExtent([-1, -1, 2, 2]); + expect(result).to.contain(objs[0]); + expect(result).to.contain(objs[1]); + expect(result).to.contain(objs[2]); + expect(result).to.contain(objs[4]); + expect(result.length).to.be(4); + expect(rBush.allInExtent([5, 5, 6, 6]).length).to.be(0); + }); + + }); + +}); + +goog.require('goog.object'); +goog.require('ol.structs.RBush'); From 8294ca9f57ad7d826c1c4c156e8b2a28f8700e03 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:17:36 +0100 Subject: [PATCH 378/919] Port ol.source.Vector to ol.structs.RBush --- src/ol/source/vectorsource.js | 24 +++++++----------------- test/spec/ol/source/vectorsource.test.js | 2 +- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index e627397b52..b7913d3b61 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -2,7 +2,6 @@ // FIXME put features in an ol.Collection // FIXME make change-detection more refined (notably, geometry hint) // FIXME keep R-Tree up-to-date, probably needs a new R-Tree implementation -// FIXME iterate over R-Treed, needs a new R-Tree implementation goog.provide('ol.source.Vector'); @@ -11,7 +10,7 @@ goog.require('goog.events'); goog.require('goog.events.Event'); goog.require('goog.events.EventType'); goog.require('ol.source.Source'); -goog.require('ol.structs.RTree'); +goog.require('ol.structs.RBush'); @@ -34,9 +33,9 @@ ol.source.Vector = function(opt_options) { /** * @private - * @type {ol.structs.RTree} + * @type {ol.structs.RBush.} */ - this.rTree_ = new ol.structs.RTree(); + this.rBush_ = new ol.structs.RBush(); /** * @private @@ -65,7 +64,7 @@ ol.source.Vector.prototype.addFeature = function(feature) { this.featureChangeKeys_[featureKey] = goog.events.listen(feature, goog.events.EventType.CHANGE, this.handleFeatureChange_, false, this); var extent = feature.getGeometry().getExtent(); - this.rTree_.insert(extent, feature); + this.rBush_.insert(extent, feature); this.dispatchChangeEvent(); }; @@ -99,15 +98,7 @@ ol.source.Vector.prototype.forEachFeatureAtCoordinate = */ ol.source.Vector.prototype.forEachFeatureInExtent = function(extent, f, opt_obj) { - var features = this.getAllFeaturesInExtent(extent); - var i, ii; - for (i = 0, ii = features.length; i < ii; ++i) { - var result = f.call(opt_obj, features[i]); - if (result) { - return result; - } - } - return undefined; + return this.rBush_.forEachInExtent(extent, f, opt_obj); }; @@ -129,7 +120,7 @@ ol.source.Vector.prototype.getAllFeaturesAtCoordinate = function(coordinate) { * @return {Array.} Features. */ ol.source.Vector.prototype.getAllFeaturesInExtent = function(extent) { - return this.rTree_.search(extent); + return this.rBush_.allInExtent(extent); }; @@ -148,8 +139,7 @@ ol.source.Vector.prototype.handleFeatureChange_ = function(event) { * @param {ol.Feature} feature Feature. */ ol.source.Vector.prototype.removeFeature = function(feature) { - var extent = feature.getGeometry().getExtent(); - this.rTree_.remove(extent, feature); + this.rBush_.remove(feature); var featureKey = goog.getUid(feature) + ''; goog.asserts.assert(featureKey in this.featureChangeKeys_); goog.events.unlistenByKey(this.featureChangeKeys_[featureKey]); diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js index 8ade73ae36..17af7df1ab 100644 --- a/test/spec/ol/source/vectorsource.test.js +++ b/test/spec/ol/source/vectorsource.test.js @@ -103,7 +103,7 @@ describe('ol.source.Vector', function() { }); - describe('#removeFeature', function() { + describe.skip('#removeFeature', function() { it('works as expected', function() { var i; From 95764730729847ceb5ac761cf0d8b6a5217bafa0 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 16:53:54 +0100 Subject: [PATCH 379/919] Port rtree example to ol.structs.RBush --- examples/rtree.js | 44 +++++++++++++------------------------------- 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/examples/rtree.js b/examples/rtree.js index 743df656da..fc59d1f1d1 100644 --- a/examples/rtree.js +++ b/examples/rtree.js @@ -10,40 +10,10 @@ goog.require('ol.geom.Polygon'); goog.require('ol.layer.Vector'); goog.require('ol.shape'); goog.require('ol.source.Vector'); -goog.require('ol.structs.RTree'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); -/** - * @return {Array.>} Extents at depths. - */ -ol.structs.RTree.prototype.getExtentsByDepth = function() { - var depthFirstSearch = - /** - * @param {ol.structs.RTreeNode} node Node. - * @param {number} depth Depth. - * @param {Array.>} result Result. - * @return {Array.>} Result. - */ - function(node, depth, result) { - if (goog.isDef(result[depth])) { - result[depth].push(node.extent); - } else { - result[depth] = [node.extent]; - } - var nodes = node.nodes; - if (goog.isDef(nodes)) { - var i, ii; - for (i = 0, ii = nodes.length; i < ii; ++i) { - depthFirstSearch(nodes[i], depth + 1, result); - } - } - return result; - }; - return depthFirstSearch(this.rootTree_, 0, []); -}; - var i, ii, j, jj; var count = 2000; @@ -77,10 +47,22 @@ for (i = 0, ii = colors.length; i < ii; ++i) { zIndex: i }); } -var extentsByDepth = vectorSource.rTree_.getExtentsByDepth(); +var extentsByDepth = []; +vectorSource.rBush_.forEachNode(function(node) { + if (node.height > 0) { + if (goog.isDef(extentsByDepth[node.height])) { + extentsByDepth[node.height].push(node.extent); + } else { + extentsByDepth[node.height] = [node.extent]; + } + } +}); var rtreeExtentFeatures = []; for (i = 0, ii = extentsByDepth.length; i < ii; ++i) { var extents = extentsByDepth[i]; + if (!goog.isDef(extents)) { + continue; + } for (j = 0, jj = extents.length; j < jj; ++j) { var extent = extents[j]; var geometry = new ol.geom.Polygon([[ From e749715abdef50fb732b5b608170ac3db8c2d4fb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 14:18:54 +0100 Subject: [PATCH 380/919] Move ol.structs.RTree out of the way --- {src => old/src}/ol/structs/rtree.js | 0 {test => old/test}/spec/ol/structs/rtree.test.js | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {src => old/src}/ol/structs/rtree.js (100%) rename {test => old/test}/spec/ol/structs/rtree.test.js (100%) diff --git a/src/ol/structs/rtree.js b/old/src/ol/structs/rtree.js similarity index 100% rename from src/ol/structs/rtree.js rename to old/src/ol/structs/rtree.js diff --git a/test/spec/ol/structs/rtree.test.js b/old/test/spec/ol/structs/rtree.test.js similarity index 100% rename from test/spec/ol/structs/rtree.test.js rename to old/test/spec/ol/structs/rtree.test.js From 4981552fb13df781e9981720252609418f5cd29f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 24 Nov 2013 18:48:15 +0100 Subject: [PATCH 381/919] Add ol.structs.RBush#assertValid --- src/ol/structs/rbush.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/ol/structs/rbush.js b/src/ol/structs/rbush.js index e2342e512b..2af41213e9 100644 --- a/src/ol/structs/rbush.js +++ b/src/ol/structs/rbush.js @@ -93,6 +93,31 @@ ol.structs.RBushNode.compareMinY = function(node1, node2) { }; +/** + * @param {boolean} isRoot Is root. + * @param {number} minEntries Min entries. + * @param {number} maxEntries Max entries. + */ +ol.structs.RBushNode.prototype.assertValid = + function(isRoot, minEntries, maxEntries) { + if (this.height === 0) { + goog.asserts.assert(goog.isNull(this.children)); + goog.asserts.assert(!goog.isNull(this.value)); + } else { + goog.asserts.assert(!goog.isNull(this.children)); + goog.asserts.assert(goog.isNull(this.value)); + goog.asserts.assert(isRoot || minEntries <= this.children.length); + goog.asserts.assert(this.children.length <= maxEntries); + var i, ii; + for (i = 0, ii = this.children.length; i < ii; ++i) { + var child = this.children[i]; + goog.asserts.assert(ol.extent.containsExtent(this.extent, child.extent)); + child.assertValid(false, minEntries, maxEntries); + } + } +}; + + /** * @param {number} start Start. * @param {number} stop Stop. @@ -233,6 +258,14 @@ ol.structs.RBush.prototype.allInExtent = function(extent) { }; +/** + * FIXME empty description for jsdoc + */ +ol.structs.RBush.prototype.assertValid = function() { + this.root_.assertValid(true, this.minEntries_, this.maxEntries_); +}; + + /** * @param {ol.structs.RBushNode.} node Node. * @private From 62b9aa0595d87c752902a0862f0c7a3d477733c2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 25 Nov 2013 17:21:24 +0100 Subject: [PATCH 382/919] Refactor ol.structs.RBush tests --- test/spec/ol/structs/rbush.js | 189 ++++++++++++++++++++-------------- 1 file changed, 110 insertions(+), 79 deletions(-) diff --git a/test/spec/ol/structs/rbush.js b/test/spec/ol/structs/rbush.js index 6852e43964..b1f7eb1bbf 100644 --- a/test/spec/ol/structs/rbush.js +++ b/test/spec/ol/structs/rbush.js @@ -3,98 +3,129 @@ goog.provide('ol.test.structs.RBush'); describe('ol.structs.RBush', function() { - var rBush = new ol.structs.RBush(); - - describe('creation', function() { - it('can insert 1k objects', function() { - var i = 1000; - while (i > 0) { - var min = [Math.random() * 10000, Math.random() * 10000]; - var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; - var bounds = [min[0], min[1], max[0], max[1]]; - rBush.insert(bounds, {id: i}); - i--; - } - expect(rBush.allInExtent([0, 0, 10600, 10600]).length).to.be(1000); - }); - it('can insert 1k more objects', function() { - var i = 1000; - while (i > 0) { - var min = [Math.random() * 10000, Math.random() * 10000]; - var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; - var bounds = [min[0], min[1], max[0], max[1]]; - rBush.insert(bounds, {id: i}); - i--; - } - expect(rBush.allInExtent([0, 0, 10600, 10600]).length).to.be(2000); - }); + var rBush; + beforeEach(function() { + rBush = new ol.structs.RBush(); }); - describe('search', function() { - it('can perform 1k out-of-bounds searches', function() { - var i = 1000; - var len = 0; - while (i > 0) { - var min = [-(Math.random() * 10000 + 501), - -(Math.random() * 10000 + 501)]; - var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; - var bounds = [min[0], min[1], max[0], max[1]]; - len += rBush.allInExtent(bounds).length; - i--; - } - expect(len).to.be(0); - }); - it('can perform 1k in-bounds searches', function() { - var i = 1000; - var len = 0; - while (i > 0) { - var min = [Math.random() * 10000, Math.random() * 10000]; - var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; - var bounds = [min[0], min[1], max[0], max[1]]; - len += rBush.allInExtent(bounds).length; - i--; - } - expect(len).not.to.be(0); + describe('when empty', function() { + + describe('#all', function() { + + it('returns the expected number of objects', function() { + expect(rBush.all()).to.be.empty(); + }); + }); + }); - describe.skip('deletion', function() { - var len = 0; - it('can delete half the RBush', function() { - var bounds = [5000, 0, 10500, 10500]; - len += rBush.remove(bounds).length; - expect(len).to.not.be(0); - }); - it('can delete the other half of the RBush', function() { - var bounds = [0, 0, 5000, 10500]; - len += rBush.remove(bounds).length; - expect(len).to.be(2000); - }); - }); + describe('with a few objects', function() { - describe('result plausibility and structure', function() { - - it('filters by rectangle', function() { - var objs = [{}, {}, {}, {}, {}, {}]; + var objs; + beforeEach(function() { + objs = [{}, {}, {}, {}, {}, {}]; rBush.insert([0, 0, 1, 1], objs[0]); rBush.insert([1, 1, 4, 4], objs[1]); rBush.insert([2, 2, 3, 3], objs[2]); rBush.insert([-5, -5, -4, -4], objs[3]); rBush.insert([-4, -4, -1, -1], objs[4]); rBush.insert([-3, -3, -2, -2], objs[5]); + }); + + describe('#allInExtent', function() { + + it('returns the expected objects', function() { + var result; + result = rBush.allInExtent([2, 2, 3, 3]); + expect(result).to.contain(objs[1]); + expect(result).to.contain(objs[2]); + expect(result.length).to.be(2); + result = rBush.allInExtent([-1, -1, 2, 2]); + expect(result).to.contain(objs[0]); + expect(result).to.contain(objs[1]); + expect(result).to.contain(objs[2]); + expect(result).to.contain(objs[4]); + expect(result.length).to.be(4); + }); + + it('returns an empty array when given a disjoint extent', function() { + expect(rBush.allInExtent([5, 5, 6, 6]).length).to.be(0); + }); + + }); + + }); + + describe('with 1000 objects', function() { + + beforeEach(function() { + var i; + for (i = 0; i < 1000; ++i) { + var min = [Math.random() * 10000, Math.random() * 10000]; + var max = [min[0] + Math.random() * 500, min[1] + Math.random() * 500]; + var extent = [min[0], min[1], max[0], max[1]]; + rBush.insert(extent, {id: i}); + } + }); + + describe('#all', function() { + + it('returns the expected number of objects', function() { + expect(rBush.all().length).to.be(1000); + }); + + }); + + describe('#allInExtent', function() { + + it('returns the expected number of objects', function() { + expect(rBush.allInExtent([0, 0, 10600, 10600]).length).to.be(1000); + }); + + it('can perform 1000 in-extent searches', function() { + var n = 0; + var i; + for (i = 0; i < 1000; ++i) { + var min = [Math.random() * 10000, Math.random() * 10000]; + var max = [min[0] + Math.random() * 500, + min[1] + Math.random() * 500]; + var extent = [min[0], min[1], max[0], max[1]]; + n += rBush.allInExtent(extent).length; + } + expect(n).not.to.be(0); + }); + + it('can perform 1000 out-of-extent searches', function() { + var n = 0; + var i; + for (i = 0; i < 1000; ++i) { + var min = [-(Math.random() * 10000 + 501), + -(Math.random() * 10000 + 501)]; + var max = [min[0] + Math.random() * 500, + min[1] + Math.random() * 500]; + var extent = [min[0], min[1], max[0], max[1]]; + n += rBush.allInExtent(extent).length; + } + expect(n).to.be(0); + }); + + }); + + describe('#insert', function() { + + it('can insert another 1000 objects', function() { + var i; + for (i = 1000; i < 2000; ++i) { + var min = [Math.random() * 10000, Math.random() * 10000]; + var max = [min[0] + Math.random() * 500, + min[1] + Math.random() * 500]; + var extent = [min[0], min[1], max[0], max[1]]; + rBush.insert(extent, {id: i}); + } + expect(rBush.allInExtent([0, 0, 10600, 10600]).length).to.be(2000); + }); - var result; - result = rBush.allInExtent([2, 2, 3, 3]); - expect(result).to.contain(objs[1]); - expect(result).to.contain(objs[2]); - expect(result.length).to.be(2); - result = rBush.allInExtent([-1, -1, 2, 2]); - expect(result).to.contain(objs[0]); - expect(result).to.contain(objs[1]); - expect(result).to.contain(objs[2]); - expect(result).to.contain(objs[4]); - expect(result.length).to.be(4); - expect(rBush.allInExtent([5, 5, 6, 6]).length).to.be(0); }); }); From d5f1a35f9aebbb6fc41c003ae2a6514e27363be7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 25 Nov 2013 19:08:02 +0100 Subject: [PATCH 383/919] Don't check for under-full nodes when validating ol.structs.RBush Removal can lead to under-full nodes. --- src/ol/structs/rbush.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/ol/structs/rbush.js b/src/ol/structs/rbush.js index 2af41213e9..4f1688582b 100644 --- a/src/ol/structs/rbush.js +++ b/src/ol/structs/rbush.js @@ -94,25 +94,21 @@ ol.structs.RBushNode.compareMinY = function(node1, node2) { /** - * @param {boolean} isRoot Is root. - * @param {number} minEntries Min entries. * @param {number} maxEntries Max entries. */ -ol.structs.RBushNode.prototype.assertValid = - function(isRoot, minEntries, maxEntries) { +ol.structs.RBushNode.prototype.assertValid = function(maxEntries) { if (this.height === 0) { goog.asserts.assert(goog.isNull(this.children)); goog.asserts.assert(!goog.isNull(this.value)); } else { goog.asserts.assert(!goog.isNull(this.children)); goog.asserts.assert(goog.isNull(this.value)); - goog.asserts.assert(isRoot || minEntries <= this.children.length); goog.asserts.assert(this.children.length <= maxEntries); var i, ii; for (i = 0, ii = this.children.length; i < ii; ++i) { var child = this.children[i]; goog.asserts.assert(ol.extent.containsExtent(this.extent, child.extent)); - child.assertValid(false, minEntries, maxEntries); + child.assertValid(maxEntries); } } }; @@ -262,7 +258,7 @@ ol.structs.RBush.prototype.allInExtent = function(extent) { * FIXME empty description for jsdoc */ ol.structs.RBush.prototype.assertValid = function() { - this.root_.assertValid(true, this.minEntries_, this.maxEntries_); + this.root_.assertValid(this.maxEntries_); }; From 2df03fbf96d63519bcc3ebb3b5001804f6dd475c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 25 Nov 2013 19:08:36 +0100 Subject: [PATCH 384/919] Implement ol.structs.RBush#remove_ --- src/ol/structs/rbush.js | 59 ++++++++++++++++++++++++++-- test/spec/ol/structs/rbush.js | 72 +++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+), 3 deletions(-) diff --git a/src/ol/structs/rbush.js b/src/ol/structs/rbush.js index 4f1688582b..536b3338a9 100644 --- a/src/ol/structs/rbush.js +++ b/src/ol/structs/rbush.js @@ -19,7 +19,6 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -// FIXME removal // FIXME bulk inserts goog.provide('ol.structs.RBush'); @@ -357,6 +356,27 @@ ol.structs.RBush.prototype.clear = function() { }; +/** + * @param {Array.>} path Path. + * @private + */ +ol.structs.RBush.prototype.condense_ = function(path) { + var i; + for (i = path.length - 1; i >= 0; --i) { + var node = path[i]; + if (node.children.length === 0) { + if (i > 0) { + goog.array.remove(path[i - 1].children, node); + } else { + this.clear(); + } + } else { + node.updateExtent(); + } + } +}; + + /** * @param {function(this: S, T): *} callback Callback. * @param {S=} opt_obj Scope. @@ -524,8 +544,41 @@ ol.structs.RBush.prototype.remove = function(value) { * @private */ ol.structs.RBush.prototype.remove_ = function(extent, value) { - // FIXME - goog.asserts.fail(); + var node = this.root_; + var index = 0; + /** @type {Array.>} */ + var path = [node]; + /** @type {Array.} */ + var indexes = [0]; + var child, children, i, ii; + while (path.length > 0) { + goog.asserts.assert(node.height > 0); + if (node.height == 1) { + children = node.children; + for (i = 0, ii = children.length; i < ii; ++i) { + child = children[i]; + if (child.value === value) { + goog.array.removeAt(children, i); + this.condense_(path); + return; + } + } + ++index; + } else if (index < node.children.length) { + child = node.children[index]; + if (ol.extent.containsExtent(child.extent, extent)) { + path.push(child); + indexes.push(index + 1); + node = child; + index = 0; + } else { + ++index; + } + } else { + node = path.pop(); + index = indexes.pop(); + } + } }; diff --git a/test/spec/ol/structs/rbush.js b/test/spec/ol/structs/rbush.js index b1f7eb1bbf..7549662134 100644 --- a/test/spec/ol/structs/rbush.js +++ b/test/spec/ol/structs/rbush.js @@ -55,6 +55,78 @@ describe('ol.structs.RBush', function() { }); + describe('#remove', function() { + + it('can remove each object', function() { + var i, ii; + for (i = 0, ii = objs.length; i < ii; ++i) { + expect(rBush.all()).to.contain(objs[i]); + rBush.remove(objs[i]); + expect(rBush.all()).not.to.contain(objs[i]); + } + }); + + }); + + }); + + describe('with 100 objects', function() { + + var extents, objs; + beforeEach(function() { + extents = []; + objs = []; + var i; + for (i = 0; i < 100; ++i) { + extents[i] = [i - 0.1, i - 0.1, i + 0.1, i + 0.1]; + objs[i] = {id: i}; + rBush.insert(extents[i], objs[i]); + } + }); + + describe('#allInExtent', function() { + + it('returns the expected objects', function() { + var i, ii; + for (i = 0, ii = objs.length; i < ii; ++i) { + expect(rBush.allInExtent(extents[i])).to.eql([objs[i]]); + } + }); + + }); + + describe('#remove', function() { + + it('can remove each object in turn', function() { + var i, ii; + for (i = 0, ii = objs.length; i < ii; ++i) { + expect(rBush.allInExtent(extents[i])).to.eql([objs[i]]); + rBush.remove(objs[i]); + expect(rBush.allInExtent(extents[i])).to.be.empty(); + } + expect(rBush.all()).to.be.empty(); + }); + + it('can remove objects in random order', function() { + var i, ii, j; + // http://en.wikipedia.org/wiki/Random_permutation + var indexes = []; + for (i = 0, ii = objs.length; i < ii; ++i) { + j = Math.floor(Math.random() * (i + 1)); + indexes[i] = indexes[j]; + indexes[j] = i; + } + for (i = 0, ii = objs.length; i < ii; ++i) { + var index = indexes[i]; + expect(rBush.allInExtent(extents[index])).to.eql([objs[index]]); + rBush.remove(objs[index]); + expect(rBush.allInExtent(extents[index])).to.be.empty(); + } + expect(rBush.all()).to.be.empty(); + }); + + }); + }); describe('with 1000 objects', function() { From 48e78533b9bf9c3e029ec22982ae8398d5bc6f19 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 25 Nov 2013 19:27:42 +0100 Subject: [PATCH 385/919] Add FIXME --- src/ol/structs/rbush.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/structs/rbush.js b/src/ol/structs/rbush.js index 536b3338a9..59e43722de 100644 --- a/src/ol/structs/rbush.js +++ b/src/ol/structs/rbush.js @@ -20,6 +20,7 @@ // THE SOFTWARE. // FIXME bulk inserts +// FIXME is level argument needed to insert_? goog.provide('ol.structs.RBush'); From 55730e9279da89fa176b1646ba940415f8c5267a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 25 Nov 2013 19:27:58 +0100 Subject: [PATCH 386/919] Add ol.structs.RBush#update --- src/ol/structs/rbush.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/ol/structs/rbush.js b/src/ol/structs/rbush.js index 59e43722de..e52bf5ec50 100644 --- a/src/ol/structs/rbush.js +++ b/src/ol/structs/rbush.js @@ -618,3 +618,19 @@ ol.structs.RBush.prototype.splitRoot_ = function(node1, node2) { var children = [node1, node2]; this.root_ = new ol.structs.RBushNode(extent, height, children, null); }; + + +/** + * @param {ol.Extent} extent Extent. + * @param {T} value Value. + */ +ol.structs.RBush.prototype.update = function(extent, value) { + var key = this.getKey_(value); + var currentExtent = this.valueExtent_[key]; + goog.asserts.assert(goog.isDef(currentExtent)); + if (!ol.extent.equals(currentExtent, extent)) { + this.remove_(currentExtent, value); + this.insert_(extent, value, this.root_.height - 1); + this.valueExtent_[key] = extent; + } +}; From 4de5cda4a13ca4196693a0ad73bd11f849364f06 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 25 Nov 2013 19:30:18 +0100 Subject: [PATCH 387/919] Keep R-Tree up-to-date in ol.source.Vector --- src/ol/source/vectorsource.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index b7913d3b61..b9039d16aa 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -1,7 +1,6 @@ // FIXME bulk feature upload - suppress events // FIXME put features in an ol.Collection // FIXME make change-detection more refined (notably, geometry hint) -// FIXME keep R-Tree up-to-date, probably needs a new R-Tree implementation goog.provide('ol.source.Vector'); @@ -129,8 +128,8 @@ ol.source.Vector.prototype.getAllFeaturesInExtent = function(extent) { * @private */ ol.source.Vector.prototype.handleFeatureChange_ = function(event) { - //var feature = /** @type {ol.Feature} */ (event.target); - // FIXME keep R-Tree up to date + var feature = /** @type {ol.Feature} */ (event.target); + this.rBush_.update(feature.getGeometry().getExtent(), feature); this.dispatchChangeEvent(); }; From 85c9ca200090236dd24f18559ca7b9a1074da1b0 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 26 Nov 2013 12:15:09 +0100 Subject: [PATCH 388/919] Add optional destination argument to ol.extent.clone --- src/ol/extent.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ol/extent.js b/src/ol/extent.js index c2e810acb5..b396d8c33d 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -67,11 +67,20 @@ ol.extent.buffer = function(extent, value) { * Creates a clone of an extent. * * @param {ol.Extent} extent Extent to clone. + * @param {ol.Extent=} opt_extent Extent. * @return {ol.Extent} The clone. * @todo stability experimental */ -ol.extent.clone = function(extent) { - return extent.slice(); +ol.extent.clone = function(extent, opt_extent) { + if (goog.isDef(opt_extent)) { + opt_extent[0] = extent[0]; + opt_extent[1] = extent[1]; + opt_extent[2] = extent[2]; + opt_extent[3] = extent[3]; + return opt_extent; + } else { + return extent.slice(); + } }; From 733da2dd700fba8a4c844097b79d246f69cafe36 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 26 Nov 2013 12:15:40 +0100 Subject: [PATCH 389/919] Clone extents in ol.structs.RBush to prevent modification --- src/ol/structs/rbush.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/structs/rbush.js b/src/ol/structs/rbush.js index e52bf5ec50..88c21b6c73 100644 --- a/src/ol/structs/rbush.js +++ b/src/ol/structs/rbush.js @@ -495,7 +495,7 @@ ol.structs.RBush.prototype.insert = function(extent, value) { var key = this.getKey_(value); goog.asserts.assert(!this.valueExtent_.hasOwnProperty(key)); this.insert_(extent, value, this.root_.height - 1); - this.valueExtent_[key] = extent; + this.valueExtent_[key] = ol.extent.clone(extent); }; @@ -631,6 +631,6 @@ ol.structs.RBush.prototype.update = function(extent, value) { if (!ol.extent.equals(currentExtent, extent)) { this.remove_(currentExtent, value); this.insert_(extent, value, this.root_.height - 1); - this.valueExtent_[key] = extent; + ol.extent.clone(extent, currentExtent); } }; From 3820caade1e10c826bbd19e558e317497680c922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 22 Nov 2013 16:37:48 +0100 Subject: [PATCH 390/919] Style function returns an array of styles --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 7 +++++-- src/ol/style/style.js | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 20a52e3ff4..4383c347cc 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -124,8 +124,11 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = * @param {ol.Feature} feature Feature. */ function(feature) { - var style = styleFunction(feature); - ol.renderer.vector.renderFeature(replayGroup, feature, style); + var styles = styleFunction(feature); + var i, ii = styles.length; + for (i = 0; i < ii; ++i) { + ol.renderer.vector.renderFeature(replayGroup, feature, styles[i]); + } }, this); replayGroup.finish(); diff --git a/src/ol/style/style.js b/src/ol/style/style.js index af62eb47db..87d7e1b92d 100644 --- a/src/ol/style/style.js +++ b/src/ol/style/style.js @@ -41,6 +41,6 @@ ol.style.Style = function(options) { /** - * @typedef {function(ol.Feature): ol.style.Style} + * @typedef {function(ol.Feature): Array.} */ ol.style.StyleFunction; From 317294756a2fa620b54f523165be120c03162893 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 25 Nov 2013 17:12:16 +0100 Subject: [PATCH 391/919] Style function takes a resolution arg --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 7 ++++--- src/ol/style/style.js | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 4383c347cc..a649bdfbba 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -98,8 +98,9 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = var vectorLayer = this.getVectorLayer(); var vectorSource = vectorLayer.getVectorSource(); var frameStateExtent = frameState.extent; + var frameStateResolution = frameState.view2DState.resolution; - if (this.renderedResolution_ == frameState.view2DState.resolution && + if (this.renderedResolution_ == frameStateResolution && this.renderedRevision_ == vectorSource.getRevision() && ol.extent.containsExtent(this.renderedExtent_, frameStateExtent)) { return; @@ -124,7 +125,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = * @param {ol.Feature} feature Feature. */ function(feature) { - var styles = styleFunction(feature); + var styles = styleFunction(feature, frameStateResolution); var i, ii = styles.length; for (i = 0; i < ii; ++i) { ol.renderer.vector.renderFeature(replayGroup, feature, styles[i]); @@ -132,7 +133,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = }, this); replayGroup.finish(); - this.renderedResolution_ = frameState.view2DState.resolution; + this.renderedResolution_ = frameStateResolution; this.renderedRevision_ = vectorSource.getRevision(); if (!replayGroup.isEmpty()) { this.replayGroup_ = replayGroup; diff --git a/src/ol/style/style.js b/src/ol/style/style.js index 87d7e1b92d..edf130ced6 100644 --- a/src/ol/style/style.js +++ b/src/ol/style/style.js @@ -41,6 +41,6 @@ ol.style.Style = function(options) { /** - * @typedef {function(ol.Feature): Array.} + * @typedef {function(ol.Feature, number): Array.} */ ol.style.StyleFunction; From 39af934e71124403c65ab35b06c9fe86ba1be7a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 11:02:39 +0100 Subject: [PATCH 392/919] Adapt styleFunction in geojson example --- examples/geojson.js | 86 ++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 44 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 264a75f682..e2fa8f50f4 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -17,50 +17,48 @@ goog.require('ol.style.Style'); var image = ol.shape.renderCircle(5, null, new ol.style.Stroke({color: 'red', width: 1})); -var styleFunction = function(feature) { - switch (feature.getGeometry().getType()) { - case 'Point': - return new ol.style.Style({ - image: image - }); - case 'Polygon': - return new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'blue', - width: 3 - }), - fill: new ol.style.Fill({ - color: 'rgba(0, 0, 255, 0.1)' - }) - }); - case 'MultiLineString': - return new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'green', - width: 1 - }) - }); - case 'MultiPolygon': - return new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'yellow', - width: 1 - }), - fill: new ol.style.Fill({ - color: 'rgba(255, 255, 0, 0.1)' - }) - }); - default: - return new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'red', - width: 2 - }), - fill: new ol.style.Fill({ - color: 'rgba(255, 0, 0, 0.1)' - }) - }); - } + +var styles = { + 'Point': [new ol.style.Style({ + image: image + })], + 'LineString': [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'green', + width: 1 + }) + })], + 'MultiLineString': [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'green', + width: 1 + }) + })], + 'MultiPoint': [new ol.style.Style({ + image: image + })], + 'MultiPolygon': [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'yellow', + width: 1 + }), + fill: new ol.style.Fill({ + color: 'rgba(255, 255, 0, 0.1)' + }) + })], + 'Polygon': [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'blue', + width: 3 + }), + fill: new ol.style.Fill({ + color: 'rgba(0, 0, 255, 0.1)' + }) + })] +}; + +var styleFunction = function(feature, resolution) { + return styles[feature.getGeometry().getType()]; }; var vectorSource = new ol.source.Vector(); From 82aa5cc675817dada4893b86ce91069948b329c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 11:05:23 +0100 Subject: [PATCH 393/919] Adapt styleFunction in rtree example --- examples/rtree.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/rtree.js b/examples/rtree.js index fc59d1f1d1..07fd1fa12d 100644 --- a/examples/rtree.js +++ b/examples/rtree.js @@ -29,10 +29,10 @@ var vectorSource = new ol.source.Vector({ features: features }); -var style = new ol.style.Style({ +var styleArray = [new ol.style.Style({ image: ol.shape.renderCircle(3, null, new ol.style.Stroke({color: 'red', width: 1})) -}); +})]; var colors = ['red', 'orange', 'yellow', 'blue', 'green', 'indigo', 'violet']; var depthStyle = []; @@ -73,7 +73,7 @@ for (i = 0, ii = extentsByDepth.length; i < ii; ++i) { ]]); var feature = new ol.Feature({ 'geometry': geometry, - 'style': depthStyle[i] + 'styleArray': [depthStyle[i]] }); rtreeExtentFeatures.push(feature); } @@ -81,8 +81,8 @@ for (i = 0, ii = extentsByDepth.length; i < ii; ++i) { var vector = new ol.layer.Vector({ source: vectorSource, - styleFunction: function(feature) { - return style; + styleFunction: function(feature, resolution) { + return styleArray; } }); @@ -90,8 +90,8 @@ var rtree = new ol.layer.Vector({ source: new ol.source.Vector({ features: rtreeExtentFeatures }), - styleFunction: function(feature) { - return feature.get('style'); + styleFunction: function(feature, resolution) { + return feature.get('styleArray'); } }); From 305be3c6890ff558870cd08c3356507cbc7ce180 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 11:08:22 +0100 Subject: [PATCH 394/919] Adapt styleFunction in synthetic-lines example --- examples/synthetic-lines.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/examples/synthetic-lines.js b/examples/synthetic-lines.js index 3ca961cb52..f563115837 100644 --- a/examples/synthetic-lines.js +++ b/examples/synthetic-lines.js @@ -37,17 +37,19 @@ for (i = 0; i < count; ++i) { startPoint = endPoint; } +var styleArray = [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: '#666666', + width: 1 + }) +})]; + var vector = new ol.layer.Vector({ source: new ol.source.Vector({ features: features }), - styleFunction: function(feature) { - return new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: '#666666', - width: 1 - }) - }); + styleFunction: function(feature, resolution) { + return styleArray; } }); From 9be03b2e3a436e51bba8cd98811e2ee4377bebc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 11:10:22 +0100 Subject: [PATCH 395/919] Use ol.style.Style in synthetic-points example --- examples/synthetic-points.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/synthetic-points.js b/examples/synthetic-points.js index 2664d4355d..8d5c727505 100644 --- a/examples/synthetic-points.js +++ b/examples/synthetic-points.js @@ -9,6 +9,7 @@ goog.require('ol.shape'); goog.require('ol.source.Vector'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); var count = 20000; @@ -24,16 +25,16 @@ for (var i = 0; i < count; ++i) { } var styles = { - '10': { + '10': new ol.style.Style({ image: ol.shape.renderCircle(5, new ol.style.Fill({color: '#666666'}), new ol.style.Stroke({color: '#bada55', width: 1})) - }, - '20': { + }), + '20': new ol.style.Style({ image: ol.shape.renderCircle(10, new ol.style.Fill({color: '#666666'}), new ol.style.Stroke({color: '#bada55', width: 1})) - } + }) }; var vector = new ol.layer.Vector({ From 972deebbc6fcab46511c15ddad7bdfa7f521f5a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 11:11:24 +0100 Subject: [PATCH 396/919] Adapt styleFunction in synthetic-points example --- examples/synthetic-points.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/synthetic-points.js b/examples/synthetic-points.js index 8d5c727505..32003cccfa 100644 --- a/examples/synthetic-points.js +++ b/examples/synthetic-points.js @@ -25,23 +25,23 @@ for (var i = 0; i < count; ++i) { } var styles = { - '10': new ol.style.Style({ + '10': [new ol.style.Style({ image: ol.shape.renderCircle(5, new ol.style.Fill({color: '#666666'}), new ol.style.Stroke({color: '#bada55', width: 1})) - }), - '20': new ol.style.Style({ + })], + '20': [new ol.style.Style({ image: ol.shape.renderCircle(10, new ol.style.Fill({color: '#666666'}), new ol.style.Stroke({color: '#bada55', width: 1})) - }) + })] }; var vector = new ol.layer.Vector({ source: new ol.source.Vector({ features: features }), - styleFunction: function(feature) { + styleFunction: function(feature, resolution) { return styles[feature.get('size')]; } }); From 1d8fefe683ec106a56cfad8c38d3d8c723ce425c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 11:12:44 +0100 Subject: [PATCH 397/919] Adapt styleFunction in vector-layer example --- examples/vector-layer.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index eb4f2ac19e..f57897aa61 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -26,7 +26,7 @@ var map = new ol.Map({ }); var vectorSource = new ol.source.Vector(); -var style = new ol.style.Style({ +var styleArray = [new ol.style.Style({ fill: new ol.style.Fill({ color: 'rgba(255, 255, 255, 0.6)' }), @@ -34,7 +34,7 @@ var style = new ol.style.Style({ color: '#319FD3', width: 1 }) -}); +})]; var vectorLayer; $.getJSON('data/countries.geojson', function(data) { @@ -48,8 +48,8 @@ $.getJSON('data/countries.geojson', function(data) { }); vectorLayer = new ol.layer.Vector({ source: vectorSource, - styleFunction: function(feature) { - return style; + styleFunction: function(feature, resolution) { + return styleArray; } }); map.getLayers().push(vectorLayer); From 29009d27f381b3c526b06335e28eaa927190b728 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 15:20:04 +0100 Subject: [PATCH 398/919] Make ol.style.Image loadable --- src/ol/style/imagestyle.js | 109 ++++++++++++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 1 deletion(-) diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index c4ea5ecc95..3021c960d4 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -1,15 +1,36 @@ // FIXME decide default value for snapToPixel goog.provide('ol.style.Image'); +goog.provide('ol.style.ImageState'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.events'); +goog.require('goog.events.EventTarget'); +goog.require('goog.events.EventType'); + + +/** + * @enum {number} + */ +ol.style.ImageState = { + IDLE: 0, + LOADING: 1, + LOADED: 2, + ERROR: 3 +}; /** * @constructor * @param {ol.style.ImageOptions} options Options. + * @extends {goog.events.EventTarget} */ ol.style.Image = function(options) { + goog.base(this); + /** * @type {ol.Pixel} */ @@ -18,7 +39,17 @@ ol.style.Image = function(options) { /** * @type {HTMLCanvasElement|HTMLVideoElement|Image} */ - this.image = options.image; + this.image = goog.isDefAndNotNull(options.image) ? + options.image : new Image(); + if (!goog.isNull(options.crossOrigin)) { + this.image.crossOrigin = options.crossOrigin; + } + + /** + * @type {ol.style.ImageState} + */ + this.imageState = goog.isDef(options.imageState) ? + options.imageState : ol.style.ImageState.IDLE; /** * @type {number|undefined} @@ -40,4 +71,80 @@ ol.style.Image = function(options) { */ this.subtractViewRotation = options.subtractViewRotation; + /** + * @private + * @type {Array.} + */ + this.imageListenerKeys_ = null; + + /** + * @private + * @type {string|undefined} + */ + this.src_ = options.src; + +}; +goog.inherits(ol.style.Image, goog.events.EventTarget); + + +/** + * @private + */ +ol.style.Image.prototype.dispatchChangeEvent_ = function() { + this.dispatchEvent(goog.events.EventType.CHANGE); +}; + + +/** + * Tracks loading or read errors. + * + * @private + */ +ol.style.Image.prototype.handleImageError_ = function() { + this.imageState = ol.style.ImageState.ERROR; + this.unlistenImage_(); + this.dispatchChangeEvent_(); +}; + + +/** + * Tracks successful image load. + * + * @private + */ +ol.style.Image.prototype.handleImageLoad_ = function() { + this.imageState = ol.style.ImageState.LOADED; + this.unlistenImage_(); + this.dispatchChangeEvent_(); +}; + + +/** + * Load not yet loaded URI. + */ +ol.style.Image.prototype.load = function() { + if (this.imageState == ol.style.ImageState.IDLE) { + goog.asserts.assert(goog.isDef(this.src_)); + goog.asserts.assert(goog.isNull(this.imageListenerKeys_)); + this.imageState = ol.style.ImageState.LOADING; + this.imageListenerKeys_ = [ + goog.events.listenOnce(this.image, goog.events.EventType.ERROR, + this.handleImageError_, false, this), + goog.events.listenOnce(this.image, goog.events.EventType.LOAD, + this.handleImageLoad_, false, this) + ]; + this.image.src = this.src_; + } +}; + + +/** + * Discards event handlers which listen for load completion or errors. + * + * @private + */ +ol.style.Image.prototype.unlistenImage_ = function() { + goog.asserts.assert(!goog.isNull(this.imageListenerKeys_)); + goog.array.forEach(this.imageListenerKeys_, goog.events.unlistenByKey); + this.imageListenerKeys_ = null; }; From 189a859ddec7d0f32a81f5cd77afaf656404ed93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 15:21:51 +0100 Subject: [PATCH 399/919] Export ol.style.Image options --- src/objectliterals.jsdoc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 977aecfe7e..2b07198e81 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -627,13 +627,16 @@ /** * @typedef {Object} ol.style.ImageOptions * @property {ol.Pixel} anchor Anchor. - * @property {HTMLCanvasElement|HTMLVideoElement|Image} image Image. + * @property {null|string|undefined} crossOrigin crossOrigin setting for image. + * @property {HTMLCanvasElement|HTMLVideoElement|Image|undefined} image Image. + * @property {ol.style.ImageState|undefined} imageState Image state. * @property {number|undefined} rotation Rotation. * @property {ol.Size} size Image size in pixel. * @property {boolean|undefined} snapToPixel Whether the image should be * snapped to the closed pixel at rendering time. * @property {boolean|undefined} subtractViewRotation Whether the image should be * rotated with the view or not. + * @property {string|undefined} src Image source URI. */ /** From b1a123a9273863e3479277ea7b0d6a9bcad7eee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 15:23:55 +0100 Subject: [PATCH 400/919] Shapes are loaded images --- src/ol/shape.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ol/shape.js b/src/ol/shape.js index c225806686..7549a5ec00 100644 --- a/src/ol/shape.js +++ b/src/ol/shape.js @@ -9,6 +9,7 @@ goog.require('goog.dom.TagName'); goog.require('ol.color'); goog.require('ol.style.Fill'); goog.require('ol.style.Image'); +goog.require('ol.style.ImageState'); goog.require('ol.style.Stroke'); @@ -47,6 +48,7 @@ ol.shape.renderCircle = function(radius, fillStyle, strokeStyle) { anchor: [size / 2, size / 2], size: [size, size], image: canvas, + imageState: ol.style.ImageState.LOADED, rotation: 0, snapToPixel: undefined, subtractViewRotation: false From 0a4fd29c10a0dcd0363fd37d873912cefe5c712d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 15:25:32 +0100 Subject: [PATCH 401/919] Add icon support to canvas vector renderer --- .../canvas/canvasvectorlayerrenderer.js | 69 ++++++++++++++++--- 1 file changed, 61 insertions(+), 8 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index a649bdfbba..794ae1507d 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -1,12 +1,15 @@ goog.provide('ol.renderer.canvas.VectorLayer'); goog.require('goog.asserts'); +goog.require('goog.events'); +goog.require('goog.events.EventType'); goog.require('goog.functions'); goog.require('ol.ViewHint'); goog.require('ol.extent'); goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.vector'); +goog.require('ol.style.ImageState'); @@ -20,6 +23,12 @@ ol.renderer.canvas.VectorLayer = function(mapRenderer, vectorLayer) { goog.base(this, mapRenderer, vectorLayer); + /** + * @private + * @type {boolean} + */ + this.dirty_ = false; + /** * @private * @type {number} @@ -84,14 +93,28 @@ ol.renderer.canvas.VectorLayer.prototype.getVectorLayer = function() { }; +/** + * Handle changes in image style state. + * @param {goog.events.Event} event Image style change event. + * @private + */ +ol.renderer.canvas.VectorLayer.prototype.handleImageStyleChange_ = + function(event) { + var imageStyle = /** @type {ol.style.Image} */ (event.target); + if (imageStyle.imageState == ol.style.ImageState.LOADED) { + this.renderIfReadyAndVisible(); + } +}; + + /** * @inheritDoc */ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = function(frameState, layerState) { - if (frameState.viewHints[ol.ViewHint.ANIMATING] || - frameState.viewHints[ol.ViewHint.INTERACTING]) { + if (!this.dirty_ && (frameState.viewHints[ol.ViewHint.ANIMATING] || + frameState.viewHints[ol.ViewHint.INTERACTING])) { return; } @@ -100,7 +123,8 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = var frameStateExtent = frameState.extent; var frameStateResolution = frameState.view2DState.resolution; - if (this.renderedResolution_ == frameStateResolution && + if (!this.dirty_ && + this.renderedResolution_ == frameStateResolution && this.renderedRevision_ == vectorSource.getRevision() && ol.extent.containsExtent(this.renderedExtent_, frameStateExtent)) { return; @@ -118,6 +142,8 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = goog.dispose(this.replayGroup_); this.replayGroup_ = null; + this.dirty_ = false; + var styleFunction = vectorLayer.getStyleFunction(); var replayGroup = new ol.render.canvas.ReplayGroup(); vectorSource.forEachFeatureInExtent(extent, @@ -125,11 +151,9 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = * @param {ol.Feature} feature Feature. */ function(feature) { - var styles = styleFunction(feature, frameStateResolution); - var i, ii = styles.length; - for (i = 0; i < ii; ++i) { - ol.renderer.vector.renderFeature(replayGroup, feature, styles[i]); - } + this.dirty_ = this.dirty_ || + this.renderFeature(feature, frameStateResolution, styleFunction, + replayGroup); }, this); replayGroup.finish(); @@ -140,3 +164,32 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = } }; + + +/** + * @param {ol.Feature} feature Feature. + * @param {number} resolution Resolution. + * @param {ol.style.StyleFunction} styleFunction Style function. + * @param {ol.render.canvas.ReplayGroup} replayGroup Replay group. + * @return {boolean} `true` if an image is loading. + */ +ol.renderer.canvas.VectorLayer.prototype.renderFeature = + function(feature, resolution, styleFunction, replayGroup) { + var loading = false; + var styles = styleFunction(feature, resolution); + var i, ii, style, imageStyle; + for (i = 0, ii = styles.length; i < ii; ++i) { + style = styles[i]; + imageStyle = style.image; + if (!goog.isNull(imageStyle) && + imageStyle.imageState == ol.style.ImageState.IDLE) { + goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE, + this.handleImageStyleChange_, false, this); + imageStyle.load(); + loading = true; + } else { + ol.renderer.vector.renderFeature(replayGroup, feature, style); + } + } + return loading; +}; From 83293651b77667fdf124f6e8c44606498f95f7ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 15:32:43 +0100 Subject: [PATCH 402/919] Add ol.icon.renderIcon --- src/ol/icon.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/ol/icon.js diff --git a/src/ol/icon.js b/src/ol/icon.js new file mode 100644 index 0000000000..0f62119af7 --- /dev/null +++ b/src/ol/icon.js @@ -0,0 +1,20 @@ +goog.provide('ol.icon'); + +goog.require('ol.style.Image'); + + +/** + * @param {string} src Image source URI. + * @param {ol.Size} size Image size. + * @return {ol.style.Image} Image. + */ +ol.icon.renderIcon = function(src, size) { + return new ol.style.Image({ + anchor: [size[0] / 2, size[1] / 2], + size: size, + src: src, + rotation: 0, + snapToPixel: undefined, + subtractViewRotation: false + }); +}; From 519e2539ccb138a310f54e621e9993db308823f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 15:33:09 +0100 Subject: [PATCH 403/919] Export ol.icon.renderIcon --- src/ol/icon.exports | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/ol/icon.exports diff --git a/src/ol/icon.exports b/src/ol/icon.exports new file mode 100644 index 0000000000..f7eeba7034 --- /dev/null +++ b/src/ol/icon.exports @@ -0,0 +1 @@ +@exportSymbol ol.icon.renderIcon From 9365c227ab58559388b4af80220eba447a11cc3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 16:19:33 +0100 Subject: [PATCH 404/919] Make icon size optional --- src/ol/icon.js | 17 ++++++++++++++--- src/ol/style/imagestyle.js | 6 ++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/ol/icon.js b/src/ol/icon.js index 0f62119af7..6f2cdd9f93 100644 --- a/src/ol/icon.js +++ b/src/ol/icon.js @@ -5,12 +5,23 @@ goog.require('ol.style.Image'); /** * @param {string} src Image source URI. - * @param {ol.Size} size Image size. + * @param {ol.Size=} opt_size Image size. * @return {ol.style.Image} Image. */ -ol.icon.renderIcon = function(src, size) { +ol.icon.renderIcon = function(src, opt_size) { + + /** + * @type {ol.Size} + */ + var size = goog.isDef(opt_size) ? opt_size : null; + + /** + * @type {ol.Pixel} + */ + var anchor = !goog.isNull(size) ? [size[0] / 2, size[1] / 2] : null; + return new ol.style.Image({ - anchor: [size[0] / 2, size[1] / 2], + anchor: anchor, size: size, src: src, rotation: 0, diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 3021c960d4..2320f78ed0 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -114,6 +114,12 @@ ol.style.Image.prototype.handleImageError_ = function() { */ ol.style.Image.prototype.handleImageLoad_ = function() { this.imageState = ol.style.ImageState.LOADED; + if (goog.isNull(this.size)) { + this.size = [this.image.width, this.image.height]; + } + if (goog.isNull(this.anchor)) { + this.anchor = [this.size[0] / 2, this.size[1] / 2]; + } this.unlistenImage_(); this.dispatchChangeEvent_(); }; From 82e03ea5088a3f7ddda856345c1bd76ca808fc36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 26 Nov 2013 16:32:03 +0100 Subject: [PATCH 405/919] Add an icon example --- {old/examples => examples}/icon.html | 6 +- examples/icon.js | 56 ++++++++++++++++ old/examples/icon.js | 95 ---------------------------- 3 files changed, 57 insertions(+), 100 deletions(-) rename {old/examples => examples}/icon.html (92%) create mode 100644 examples/icon.js delete mode 100644 old/examples/icon.js diff --git a/old/examples/icon.html b/examples/icon.html similarity index 92% rename from old/examples/icon.html rename to examples/icon.html index 0471245a5d..f9c2d645bc 100644 --- a/old/examples/icon.html +++ b/examples/icon.html @@ -13,9 +13,6 @@ #map { position: relative; } - #popup { - padding-bottom: 45px; - } @@ -33,7 +30,6 @@
-
@@ -46,7 +42,7 @@

See the icon.js source to see how this is done.

-
vector, style, icon, marker, popup
+
vector, style, icon, marker
diff --git a/examples/icon.js b/examples/icon.js new file mode 100644 index 0000000000..97ccd1d67f --- /dev/null +++ b/examples/icon.js @@ -0,0 +1,56 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.format.GeoJSON'); +goog.require('ol.icon'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.source.TileJSON'); +goog.require('ol.source.Vector'); +goog.require('ol.style.Style'); + + +var raster = new ol.layer.Tile({ + source: new ol.source.TileJSON({ + url: 'http://api.tiles.mapbox.com/v3/mapbox.geography-class.jsonp' + }) +}); + +var vectorSource = new ol.source.Vector(); + +new ol.format.GeoJSON().readObject({ + 'type': 'FeatureCollection', + 'features': [{ + 'type': 'Feature', + 'properties': { + 'name': 'Null Island', + 'population': 4000, + 'rainfall': 500 + }, + 'geometry': { + 'type': 'Point', + 'coordinates': [0, 0] + } + }] +}, vectorSource.addFeature, vectorSource); + +var styleArray = [new ol.style.Style({ + image: ol.icon.renderIcon('data/icon.png') +})]; + +var vector = new ol.layer.Vector({ + source: vectorSource, + styleFunction: function(feature, resolution) { + return styleArray; + } +}); + +var map = new ol.Map({ + layers: [raster, vector], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 3 + }) +}); diff --git a/old/examples/icon.js b/old/examples/icon.js deleted file mode 100644 index 07ef45ce88..0000000000 --- a/old/examples/icon.js +++ /dev/null @@ -1,95 +0,0 @@ -goog.require('ol.Map'); -goog.require('ol.Overlay'); -goog.require('ol.OverlayPositioning'); -goog.require('ol.RendererHint'); -goog.require('ol.View2D'); -goog.require('ol.layer.Tile'); -goog.require('ol.layer.Vector'); -goog.require('ol.parser.GeoJSON'); -goog.require('ol.source.TileJSON'); -goog.require('ol.source.Vector'); -goog.require('ol.style.Icon'); -goog.require('ol.style.Style'); - - -var raster = new ol.layer.Tile({ - source: new ol.source.TileJSON({ - url: 'http://api.tiles.mapbox.com/v3/mapbox.geography-class.jsonp' - }) -}); - -var data = { - type: 'FeatureCollection', - features: [{ - type: 'Feature', - properties: { - name: 'Null Island', - population: 4000, - rainfall: 500 - }, - geometry: { - type: 'Point', - coordinates: [0, 0] - } - }] -}; - -var style = new ol.style.Style({ - symbolizers: [ - new ol.style.Icon({ - url: 'data/icon.png', - yOffset: -22 - }) - ] -}); - -var vector = new ol.layer.Vector({ - source: new ol.source.Vector({ - parser: new ol.parser.GeoJSON(), - data: data - }), - style: style -}); - -var map = new ol.Map({ - layers: [raster, vector], - renderer: ol.RendererHint.CANVAS, - target: 'map', - view: new ol.View2D({ - center: [0, 0], - zoom: 3 - }) -}); - -var element = document.getElementById('popup'); - -var popup = new ol.Overlay({ - element: element, - positioning: ol.OverlayPositioning.BOTTOM_CENTER, - stopEvent: false -}); -map.addOverlay(popup); - - -map.on('singleclick', function(evt) { - map.getFeatures({ - pixel: evt.getPixel(), - layers: [vector], - success: function(layerFeatures) { - var feature = layerFeatures[0][0]; - if (feature) { - var geometry = feature.getGeometry(); - var coord = geometry.getCoordinates(); - popup.setPosition(coord); - $(element).popover({ - 'placement': 'top', - 'html': true, - 'content': feature.get('name') - }); - $(element).popover('show'); - } else { - $(element).popover('destroy'); - } - } - }); -}); From 8f361e35ddbc8d5793e7724a00a9481257a660c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 27 Nov 2013 10:03:23 +0100 Subject: [PATCH 406/919] Do not draw non-loaded icons --- .../canvas/canvasvectorlayerrenderer.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 794ae1507d..596b20e247 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -177,16 +177,20 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = function(feature, resolution, styleFunction, replayGroup) { var loading = false; var styles = styleFunction(feature, resolution); - var i, ii, style, imageStyle; + var i, ii, style, imageStyle, imageState; for (i = 0, ii = styles.length; i < ii; ++i) { style = styles[i]; imageStyle = style.image; - if (!goog.isNull(imageStyle) && - imageStyle.imageState == ol.style.ImageState.IDLE) { - goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE, - this.handleImageStyleChange_, false, this); - imageStyle.load(); - loading = true; + if (!goog.isNull(imageStyle)) { + if (imageStyle.imageState == ol.style.ImageState.IDLE) { + goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE, + this.handleImageStyleChange_, false, this); + imageStyle.load(); + } else if (imageStyle.imageState == ol.style.ImageState.LOADED) { + ol.renderer.vector.renderFeature(replayGroup, feature, style); + } + goog.asserts.assert(imageStyle.imageState != ol.style.ImageState.IDLE); + loading = imageStyle.imageState == ol.style.ImageState.LOADING; } else { ol.renderer.vector.renderFeature(replayGroup, feature, style); } From a3b43f21e4f39320c15e5130469f55aa14c4aec7 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 27 Nov 2013 12:09:50 +0100 Subject: [PATCH 407/919] Add ol.source.Vector#forEachFeature function --- src/ol/source/vectorsource.exports | 1 + src/ol/source/vectorsource.js | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/ol/source/vectorsource.exports b/src/ol/source/vectorsource.exports index 7312bcf87a..04850fda13 100644 --- a/src/ol/source/vectorsource.exports +++ b/src/ol/source/vectorsource.exports @@ -1,3 +1,4 @@ @exportClass ol.source.Vector ol.source.VectorOptions @exportProperty ol.source.Vector.prototype.addFeature +@exportProperty ol.source.Vector.prototype.forEachFeature @exportProperty ol.source.Vector.prototype.getAllFeaturesAtCoordinate diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index b9039d16aa..037c420b66 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -68,6 +68,17 @@ ol.source.Vector.prototype.addFeature = function(feature) { }; +/** + * @param {function(this: T, ol.Feature): S} f Callback. + * @param {T=} opt_obj The object to be used a the value of 'this' within f. + * @return {S|undefined} + * @template T,S + */ +ol.source.Vector.prototype.forEachFeature = function(f, opt_obj) { + return this.rBush_.forEach(f, opt_obj); +}; + + /** * @param {ol.Coordinate} coordinate Coordinate. * @param {function(this: T, ol.Feature): S} f Callback. From 66b08644fced72dcb2bb178f50cf31c0b57d1343 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 27 Nov 2013 12:10:08 +0100 Subject: [PATCH 408/919] Export ol.source.Vector#removeFeature function --- src/ol/source/vectorsource.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/source/vectorsource.exports b/src/ol/source/vectorsource.exports index 04850fda13..890c159c5d 100644 --- a/src/ol/source/vectorsource.exports +++ b/src/ol/source/vectorsource.exports @@ -2,3 +2,4 @@ @exportProperty ol.source.Vector.prototype.addFeature @exportProperty ol.source.Vector.prototype.forEachFeature @exportProperty ol.source.Vector.prototype.getAllFeaturesAtCoordinate +@exportProperty ol.source.Vector.prototype.removeFeature From 2f3a85a86a3e33880277ec7c4ba7b3fd8fcbf2be Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 27 Nov 2013 12:13:20 +0100 Subject: [PATCH 409/919] Add ol.source.Vector#getAllFeatures function --- src/ol/source/vectorsource.exports | 1 + src/ol/source/vectorsource.js | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/ol/source/vectorsource.exports b/src/ol/source/vectorsource.exports index 890c159c5d..723761892d 100644 --- a/src/ol/source/vectorsource.exports +++ b/src/ol/source/vectorsource.exports @@ -1,5 +1,6 @@ @exportClass ol.source.Vector ol.source.VectorOptions @exportProperty ol.source.Vector.prototype.addFeature @exportProperty ol.source.Vector.prototype.forEachFeature +@exportProperty ol.source.Vector.prototype.getAllFeatures @exportProperty ol.source.Vector.prototype.getAllFeaturesAtCoordinate @exportProperty ol.source.Vector.prototype.removeFeature diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 037c420b66..86cd11b9f9 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -112,6 +112,14 @@ ol.source.Vector.prototype.forEachFeatureInExtent = }; +/** + * @return {Array.} Features. + */ +ol.source.Vector.prototype.getAllFeatures = function() { + return this.rBush_.all(); +}; + + /** * @param {ol.Coordinate} coordinate Coordinate. * @return {Array.} Features. From aac16a3ba19ec2bcc865db43a17b2f460336b6d5 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 27 Nov 2013 13:43:11 +0100 Subject: [PATCH 410/919] Fix doc typos --- src/ol/source/vectorsource.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 86cd11b9f9..e1f5ab294e 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -70,7 +70,7 @@ ol.source.Vector.prototype.addFeature = function(feature) { /** * @param {function(this: T, ol.Feature): S} f Callback. - * @param {T=} opt_obj The object to be used a the value of 'this' within f. + * @param {T=} opt_obj The object to be used as the value of 'this' within f. * @return {S|undefined} * @template T,S */ @@ -82,7 +82,7 @@ ol.source.Vector.prototype.forEachFeature = function(f, opt_obj) { /** * @param {ol.Coordinate} coordinate Coordinate. * @param {function(this: T, ol.Feature): S} f Callback. - * @param {T=} opt_obj The object to be used a the value of 'this' within f. + * @param {T=} opt_obj The object to be used as the value of 'this' within f. * @return {S|undefined} * @template T,S */ @@ -102,7 +102,7 @@ ol.source.Vector.prototype.forEachFeatureAtCoordinate = /** * @param {ol.Extent} extent Extent. * @param {function(this: T, ol.Feature): S} f Callback. - * @param {T=} opt_obj The object to be used a the value of 'this' within f. + * @param {T=} opt_obj The object to be used as the value of 'this' within f. * @return {S|undefined} * @template T,S */ From 2211aec553420a2877b16b07da8eba7f02457e68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 27 Nov 2013 15:54:00 +0100 Subject: [PATCH 411/919] Use rBush.getAll and rBush.getAllInExtent --- src/ol/source/vectorsource.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index e1f5ab294e..f3bc0850dc 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -116,7 +116,7 @@ ol.source.Vector.prototype.forEachFeatureInExtent = * @return {Array.} Features. */ ol.source.Vector.prototype.getAllFeatures = function() { - return this.rBush_.all(); + return this.rBush_.getAll(); }; @@ -138,7 +138,7 @@ ol.source.Vector.prototype.getAllFeaturesAtCoordinate = function(coordinate) { * @return {Array.} Features. */ ol.source.Vector.prototype.getAllFeaturesInExtent = function(extent) { - return this.rBush_.allInExtent(extent); + return this.rBush_.getAllInExtent(extent); }; From b210073ef07860c5e0d0b745d658cadad659fbd2 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 28 Nov 2013 09:35:13 +0100 Subject: [PATCH 412/919] Add lineCap property to ol.style.Stroke --- examples/geojson.js | 1 + src/objectliterals.jsdoc | 1 + src/ol/render/canvas/canvas.js | 6 ++++++ src/ol/render/canvas/canvasimmediate.js | 11 ++++++++++ src/ol/render/canvas/canvasreplay.js | 27 +++++++++++++++++++++++-- src/ol/style/strokestyle.js | 5 +++++ 6 files changed, 49 insertions(+), 2 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index e2fa8f50f4..20323b0e2d 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -130,6 +130,7 @@ var tmpPointFeature = new ol.Feature( var tmpStyle = new ol.style.Style({ stroke: new ol.style.Stroke({ color: 'magenta', + lineCap: 'round', width: 5 }), image: ol.shape.renderCircle(5, diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index dd585d951a..73daddb62d 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -646,6 +646,7 @@ /** * @typedef {Object} ol.style.StrokeOptions * @property {ol.Color|string|undefined} color Color. + * @property {string|undefined} lineCap Line cap style: `butt`, `round`, or `square`. Default is `butt`. * @property {number|undefined} width Width. * @todo stability experimental */ diff --git a/src/ol/render/canvas/canvas.js b/src/ol/render/canvas/canvas.js index ec08b3e89a..84af313747 100644 --- a/src/ol/render/canvas/canvas.js +++ b/src/ol/render/canvas/canvas.js @@ -9,6 +9,12 @@ goog.require('ol.color'); ol.render.canvas.defaultFillStyle = ol.color.fromString('black'); +/** + * @const {string} + */ +ol.render.canvas.defaultLineCap = 'butt'; + + /** * @const {ol.Color} */ diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 6293f2e30d..ef6ce4e098 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -44,6 +44,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { * @private * @type {{currentFillStyle: (string|undefined), * currentStrokeStyle: (string|undefined), + * currentLineCap: (string|undefined), * currentLineWidth: (number|undefined), * fillStyle: (string|undefined), * strokeStyle: (string|undefined), @@ -53,12 +54,14 @@ ol.render.canvas.Immediate = function(context, extent, transform) { * image: (HTMLCanvasElement|HTMLVideoElement|Image), * height: (number|undefined), * width: (number|undefined), + * lineCap: (string|undefined), * snapToPixel: (boolean|undefined), * textStyle: ol.style.Text}} */ this.state_ = { currentFillStyle: undefined, currentStrokeStyle: undefined, + currentLineCap: undefined, currentLineWidth: undefined, fillStyle: undefined, strokeStyle: undefined, @@ -68,6 +71,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { image: null, height: undefined, width: undefined, + lineCap: undefined, snapToPixel: undefined, textStyle: null }; @@ -345,10 +349,13 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = if (!goog.isNull(strokeStyle)) { state.strokeStyle = ol.color.asString(!goog.isNull(strokeStyle.color) ? strokeStyle.color : ol.render.canvas.defaultStrokeStyle); + state.lineCap = goog.isDef(strokeStyle.lineCap) ? + strokeStyle.lineCap : ol.render.canvas.defaultLineCap; state.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; } else { state.strokeStyle = undefined; + state.lineCap = undefined; state.lineWidth = undefined; } }; @@ -362,6 +369,7 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { var context = this.context_; var fillStyle = state.fillStyle; var strokeStyle = state.strokeStyle; + var lineCap = state.lineCap; var lineWidth = state.lineWidth; if (goog.isDef(fillStyle) && state.currentFillStyle != fillStyle) { context.fillStyle = fillStyle; @@ -369,9 +377,12 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { } if (goog.isDef(strokeStyle)) { goog.asserts.assert(goog.isDef(lineWidth)); + goog.asserts.assert(goog.isDef(lineCap)); if (state.currentStrokeStyle != strokeStyle || + state.currentLineCap != lineCap || state.currentLineWidth != lineWidth) { context.strokeStyle = strokeStyle; + context.lineCap = lineCap; context.lineWidth = lineWidth; } } diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 4b085cad1c..5439b20acd 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -189,8 +189,10 @@ ol.render.canvas.Replay.prototype.replay = } else if (type == ol.render.canvas.Instruction.SET_STROKE_STYLE) { goog.asserts.assert(goog.isString(instruction[1])); goog.asserts.assert(goog.isNumber(instruction[2])); + goog.asserts.assert(goog.isString(instruction[3])); context.strokeStyle = /** @type {string} */ (instruction[1]); context.lineWidth = /** @type {number} */ (instruction[2]); + context.lineCap = /** @type {string} */ (instruction[3]); ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { context.stroke(); @@ -456,16 +458,20 @@ ol.render.canvas.LineStringReplay = function() { /** * @private * @type {{currentStrokeStyle: (string|undefined), + * currentLineCap: (string|undefined), * currentLineWidth: (number|undefined), * lastStroke: number, * strokeStyle: (string|undefined), + * lineCap: (string|undefined), * lineWidth: (number|undefined)}|null} */ this.state_ = { currentStrokeStyle: undefined, + currentLineCap: undefined, currentLineWidth: undefined, lastStroke: 0, strokeStyle: undefined, + lineCap: undefined, lineWidth: undefined }; @@ -496,10 +502,13 @@ ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { var state = this.state_; var strokeStyle = state.strokeStyle; + var lineCap = state.lineCap; var lineWidth = state.lineWidth; goog.asserts.assert(goog.isDef(strokeStyle)); + goog.asserts.assert(goog.isDef(lineCap)); goog.asserts.assert(goog.isDef(lineWidth)); if (state.currentStrokeStyle != strokeStyle || + state.currentLineCap != lineCap || state.currentLineWidth != lineWidth) { if (state.lastStroke != this.coordinates.length) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); @@ -507,9 +516,10 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { } this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, - strokeStyle, lineWidth], + strokeStyle, lineWidth, lineCap], [ol.render.canvas.Instruction.BEGIN_PATH]); state.currentStrokeStyle = strokeStyle; + state.currentLineCap = lineCap; state.currentLineWidth = lineWidth; } }; @@ -589,6 +599,8 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = goog.asserts.assert(!goog.isNull(strokeStyle)); this.state_.strokeStyle = ol.color.asString(!goog.isNull(strokeStyle.color) ? strokeStyle.color : ol.render.canvas.defaultStrokeStyle); + this.state_.lineCap = goog.isDef(strokeStyle.lineCap) ? + strokeStyle.lineCap : ol.render.canvas.defaultLineCap; this.state_.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; }; @@ -608,17 +620,21 @@ ol.render.canvas.PolygonReplay = function() { * @private * @type {{currentFillStyle: (string|undefined), * currentStrokeStyle: (string|undefined), + * currentLineCap: (string|undefined), * currentLineWidth: (number|undefined), * fillStyle: (string|undefined), * strokeStyle: (string|undefined), + * lineCap: (string|undefined), * lineWidth: (number|undefined)}|null} */ this.state_ = { currentFillStyle: undefined, currentStrokeStyle: undefined, + currentLineCap: undefined, currentLineWidth: undefined, fillStyle: undefined, strokeStyle: undefined, + lineCap: undefined, lineWidth: undefined }; @@ -744,10 +760,13 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = if (!goog.isNull(strokeStyle)) { state.strokeStyle = ol.color.asString(!goog.isNull(strokeStyle.color) ? strokeStyle.color : ol.render.canvas.defaultStrokeStyle); + state.lineCap = goog.isDef(strokeStyle.lineCap) ? + strokeStyle.lineCap : ol.render.canvas.defaultLineCap; state.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; } else { state.strokeStyle = undefined; + state.lineCap = undefined; state.lineWidth = undefined; } }; @@ -760,6 +779,7 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { var state = this.state_; var fillStyle = state.fillStyle; var strokeStyle = state.strokeStyle; + var lineCap = state.lineCap; var lineWidth = state.lineWidth; if (goog.isDef(fillStyle) && state.currentFillStyle != fillStyle) { this.instructions.push( @@ -767,13 +787,16 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { state.currentFillStyle = state.fillStyle; } if (goog.isDef(strokeStyle)) { + goog.asserts.assert(goog.isDef(lineCap)); goog.asserts.assert(goog.isDef(lineWidth)); if (state.currentStrokeStyle != strokeStyle || + state.currentLineCap != lineCap || state.currentLineWidth != lineWidth) { this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, - strokeStyle, lineWidth]); + strokeStyle, lineWidth, lineCap]); state.currentStrokeStyle = strokeStyle; + state.currentLineCap = lineCap; state.currentLineWidth = lineWidth; } } diff --git a/src/ol/style/strokestyle.js b/src/ol/style/strokestyle.js index 91fbc29352..5eb3b10634 100644 --- a/src/ol/style/strokestyle.js +++ b/src/ol/style/strokestyle.js @@ -15,6 +15,11 @@ ol.style.Stroke = function(options) { */ this.color = goog.isDef(options.color) ? options.color : null; + /** + * @type {string|undefined} + */ + this.lineCap = options.lineCap; + /** * @type {number|undefined} */ From 06d873666f006b8e4c0f50cd7f03d237703726fb Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 28 Nov 2013 10:02:30 +0100 Subject: [PATCH 413/919] Remove unused ol.style.Fill.equals --- src/ol/style/fillstyle.js | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/src/ol/style/fillstyle.js b/src/ol/style/fillstyle.js index 38269f5c3a..2d9455a920 100644 --- a/src/ol/style/fillstyle.js +++ b/src/ol/style/fillstyle.js @@ -15,26 +15,3 @@ ol.style.Fill = function(options) { */ this.color = goog.isDef(options.color) ? options.color : null; }; - - -/** - * @param {ol.style.Fill} fillStyle1 Fill style 1. - * @param {ol.style.Fill} fillStyle2 Fill style 2. - * @return {boolean} Equals. - */ -ol.style.Fill.equals = function(fillStyle1, fillStyle2) { - if (!goog.isNull(fillStyle1)) { - if (!goog.isNull(fillStyle2)) { - return fillStyle1 === fillStyle2 || - ol.color.stringOrColorEquals(fillStyle1.color, fillStyle2.color); - } else { - return false; - } - } else { - if (!goog.isNull(fillStyle2)) { - return false; - } else { - return true; - } - } -}; From b8dbac77bc87958c131eb198eb91a98569d3fa20 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 28 Nov 2013 10:03:07 +0100 Subject: [PATCH 414/919] Remove unused ol.style.Stroke.equals --- src/ol/style/strokestyle.js | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/src/ol/style/strokestyle.js b/src/ol/style/strokestyle.js index 5eb3b10634..6b135de49e 100644 --- a/src/ol/style/strokestyle.js +++ b/src/ol/style/strokestyle.js @@ -25,28 +25,3 @@ ol.style.Stroke = function(options) { */ this.width = options.width; }; - - -/** - * @param {ol.style.Stroke} strokeStyle1 Stroke style 1. - * @param {ol.style.Stroke} strokeStyle2 Stroke style 2. - * @return {boolean} Equals. - */ -ol.style.Stroke.equals = function(strokeStyle1, strokeStyle2) { - if (!goog.isNull(strokeStyle1)) { - if (!goog.isNull(strokeStyle2)) { - return strokeStyle1 === strokeStyle2 || - (ol.color.stringOrColorEquals(strokeStyle1.color, - strokeStyle2.color) && - strokeStyle1.width == strokeStyle2.width); - } else { - return false; - } - } else { - if (!goog.isNull(strokeStyle2)) { - return false; - } else { - return true; - } - } -}; From 0bd77d3caf7d2a8e96c52cd749a2032f5cde8c2f Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 28 Nov 2013 11:27:19 +0100 Subject: [PATCH 415/919] Add lineJoin property to ol.style.Stroke --- src/objectliterals.jsdoc | 1 + src/ol/render/canvas/canvas.js | 6 ++++++ src/ol/render/canvas/canvasimmediate.js | 11 ++++++++++ src/ol/render/canvas/canvasreplay.js | 27 +++++++++++++++++++++++-- src/ol/style/strokestyle.js | 5 +++++ 5 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 73daddb62d..24d9e4306a 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -647,6 +647,7 @@ * @typedef {Object} ol.style.StrokeOptions * @property {ol.Color|string|undefined} color Color. * @property {string|undefined} lineCap Line cap style: `butt`, `round`, or `square`. Default is `butt`. + * @property {string|undefined} lineJoin Line join style: `bevel`, `round`, or `miter`. Default is `miter`. * @property {number|undefined} width Width. * @todo stability experimental */ diff --git a/src/ol/render/canvas/canvas.js b/src/ol/render/canvas/canvas.js index 84af313747..3be7a19957 100644 --- a/src/ol/render/canvas/canvas.js +++ b/src/ol/render/canvas/canvas.js @@ -15,6 +15,12 @@ ol.render.canvas.defaultFillStyle = ol.color.fromString('black'); ol.render.canvas.defaultLineCap = 'butt'; +/** + * @const {string} + */ +ol.render.canvas.defaultLineJoin = 'miter'; + + /** * @const {ol.Color} */ diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index ef6ce4e098..3b85e6db0e 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -45,6 +45,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { * @type {{currentFillStyle: (string|undefined), * currentStrokeStyle: (string|undefined), * currentLineCap: (string|undefined), + * currentLineJoin: (string|undefined), * currentLineWidth: (number|undefined), * fillStyle: (string|undefined), * strokeStyle: (string|undefined), @@ -55,6 +56,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { * height: (number|undefined), * width: (number|undefined), * lineCap: (string|undefined), + * lineJoin: (string|undefined), * snapToPixel: (boolean|undefined), * textStyle: ol.style.Text}} */ @@ -62,6 +64,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { currentFillStyle: undefined, currentStrokeStyle: undefined, currentLineCap: undefined, + currentLineJoin: undefined, currentLineWidth: undefined, fillStyle: undefined, strokeStyle: undefined, @@ -72,6 +75,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { height: undefined, width: undefined, lineCap: undefined, + lineJoin: undefined, snapToPixel: undefined, textStyle: null }; @@ -351,11 +355,14 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = strokeStyle.color : ol.render.canvas.defaultStrokeStyle); state.lineCap = goog.isDef(strokeStyle.lineCap) ? strokeStyle.lineCap : ol.render.canvas.defaultLineCap; + state.lineJoin = goog.isDef(strokeStyle.lineJoin) ? + strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; state.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; } else { state.strokeStyle = undefined; state.lineCap = undefined; + state.lineJoin = undefined; state.lineWidth = undefined; } }; @@ -370,6 +377,7 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { var fillStyle = state.fillStyle; var strokeStyle = state.strokeStyle; var lineCap = state.lineCap; + var lineJoin = state.lineJoin; var lineWidth = state.lineWidth; if (goog.isDef(fillStyle) && state.currentFillStyle != fillStyle) { context.fillStyle = fillStyle; @@ -378,11 +386,14 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { if (goog.isDef(strokeStyle)) { goog.asserts.assert(goog.isDef(lineWidth)); goog.asserts.assert(goog.isDef(lineCap)); + goog.asserts.assert(goog.isDef(lineJoin)); if (state.currentStrokeStyle != strokeStyle || state.currentLineCap != lineCap || + state.currentLineJoin != lineJoin || state.currentLineWidth != lineWidth) { context.strokeStyle = strokeStyle; context.lineCap = lineCap; + context.lineJoin = lineJoin; context.lineWidth = lineWidth; } } diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 5439b20acd..21ada5dcfb 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -190,9 +190,11 @@ ol.render.canvas.Replay.prototype.replay = goog.asserts.assert(goog.isString(instruction[1])); goog.asserts.assert(goog.isNumber(instruction[2])); goog.asserts.assert(goog.isString(instruction[3])); + goog.asserts.assert(goog.isString(instruction[4])); context.strokeStyle = /** @type {string} */ (instruction[1]); context.lineWidth = /** @type {number} */ (instruction[2]); context.lineCap = /** @type {string} */ (instruction[3]); + context.lineJoin = /** @type {string} */ (instruction[4]); ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { context.stroke(); @@ -459,19 +461,23 @@ ol.render.canvas.LineStringReplay = function() { * @private * @type {{currentStrokeStyle: (string|undefined), * currentLineCap: (string|undefined), + * currentLineJoin: (string|undefined), * currentLineWidth: (number|undefined), * lastStroke: number, * strokeStyle: (string|undefined), * lineCap: (string|undefined), + * lineJoin: (string|undefined), * lineWidth: (number|undefined)}|null} */ this.state_ = { currentStrokeStyle: undefined, currentLineCap: undefined, + currentLineJoin: undefined, currentLineWidth: undefined, lastStroke: 0, strokeStyle: undefined, lineCap: undefined, + lineJoin: undefined, lineWidth: undefined }; @@ -503,12 +509,15 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { var state = this.state_; var strokeStyle = state.strokeStyle; var lineCap = state.lineCap; + var lineJoin = state.lineJoin; var lineWidth = state.lineWidth; goog.asserts.assert(goog.isDef(strokeStyle)); goog.asserts.assert(goog.isDef(lineCap)); + goog.asserts.assert(goog.isDef(lineJoin)); goog.asserts.assert(goog.isDef(lineWidth)); if (state.currentStrokeStyle != strokeStyle || state.currentLineCap != lineCap || + state.currentLineJoin != lineJoin || state.currentLineWidth != lineWidth) { if (state.lastStroke != this.coordinates.length) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); @@ -516,10 +525,11 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { } this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, - strokeStyle, lineWidth, lineCap], + strokeStyle, lineWidth, lineCap, lineJoin], [ol.render.canvas.Instruction.BEGIN_PATH]); state.currentStrokeStyle = strokeStyle; state.currentLineCap = lineCap; + state.currentLineJoin = lineJoin; state.currentLineWidth = lineWidth; } }; @@ -601,6 +611,8 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = strokeStyle.color : ol.render.canvas.defaultStrokeStyle); this.state_.lineCap = goog.isDef(strokeStyle.lineCap) ? strokeStyle.lineCap : ol.render.canvas.defaultLineCap; + this.state_.lineJoin = goog.isDef(strokeStyle.lineJoin) ? + strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; this.state_.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; }; @@ -621,20 +633,24 @@ ol.render.canvas.PolygonReplay = function() { * @type {{currentFillStyle: (string|undefined), * currentStrokeStyle: (string|undefined), * currentLineCap: (string|undefined), + * currentLineJoin: (string|undefined), * currentLineWidth: (number|undefined), * fillStyle: (string|undefined), * strokeStyle: (string|undefined), * lineCap: (string|undefined), + * lineJoin: (string|undefined), * lineWidth: (number|undefined)}|null} */ this.state_ = { currentFillStyle: undefined, currentStrokeStyle: undefined, currentLineCap: undefined, + currentLineJoin: undefined, currentLineWidth: undefined, fillStyle: undefined, strokeStyle: undefined, lineCap: undefined, + lineJoin: undefined, lineWidth: undefined }; @@ -762,11 +778,14 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = strokeStyle.color : ol.render.canvas.defaultStrokeStyle); state.lineCap = goog.isDef(strokeStyle.lineCap) ? strokeStyle.lineCap : ol.render.canvas.defaultLineCap; + state.lineJoin = goog.isDef(strokeStyle.lineJoin) ? + strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; state.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; } else { state.strokeStyle = undefined; state.lineCap = undefined; + state.lineJoin = undefined; state.lineWidth = undefined; } }; @@ -780,6 +799,7 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { var fillStyle = state.fillStyle; var strokeStyle = state.strokeStyle; var lineCap = state.lineCap; + var lineJoin = state.lineJoin; var lineWidth = state.lineWidth; if (goog.isDef(fillStyle) && state.currentFillStyle != fillStyle) { this.instructions.push( @@ -788,15 +808,18 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { } if (goog.isDef(strokeStyle)) { goog.asserts.assert(goog.isDef(lineCap)); + goog.asserts.assert(goog.isDef(lineJoin)); goog.asserts.assert(goog.isDef(lineWidth)); if (state.currentStrokeStyle != strokeStyle || state.currentLineCap != lineCap || + state.currentLineJoin != lineJoin || state.currentLineWidth != lineWidth) { this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, - strokeStyle, lineWidth, lineCap]); + strokeStyle, lineWidth, lineCap, lineJoin]); state.currentStrokeStyle = strokeStyle; state.currentLineCap = lineCap; + state.currentLineJoin = lineJoin; state.currentLineWidth = lineWidth; } } diff --git a/src/ol/style/strokestyle.js b/src/ol/style/strokestyle.js index 6b135de49e..754aafee25 100644 --- a/src/ol/style/strokestyle.js +++ b/src/ol/style/strokestyle.js @@ -20,6 +20,11 @@ ol.style.Stroke = function(options) { */ this.lineCap = options.lineCap; + /** + * @type {string|undefined} + */ + this.lineJoin = options.lineJoin; + /** * @type {number|undefined} */ From bf9cd0a6755ef0288d4a1eaa29ded6f739dba28e Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 28 Nov 2013 11:49:56 +0100 Subject: [PATCH 416/919] Add miterLimit property to ol.style.Stroke --- src/objectliterals.jsdoc | 1 + src/ol/render/canvas/canvas.js | 6 ++++ src/ol/render/canvas/canvasimmediate.js | 11 +++++++ src/ol/render/canvas/canvasreplay.js | 39 ++++++++++++++++++++----- src/ol/style/strokestyle.js | 5 ++++ 5 files changed, 54 insertions(+), 8 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 24d9e4306a..5d5cb33857 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -648,6 +648,7 @@ * @property {ol.Color|string|undefined} color Color. * @property {string|undefined} lineCap Line cap style: `butt`, `round`, or `square`. Default is `butt`. * @property {string|undefined} lineJoin Line join style: `bevel`, `round`, or `miter`. Default is `miter`. + * @property {number|undefined} miterLimit Miter limit. Default is `10`. * @property {number|undefined} width Width. * @todo stability experimental */ diff --git a/src/ol/render/canvas/canvas.js b/src/ol/render/canvas/canvas.js index 3be7a19957..942290074d 100644 --- a/src/ol/render/canvas/canvas.js +++ b/src/ol/render/canvas/canvas.js @@ -21,6 +21,12 @@ ol.render.canvas.defaultLineCap = 'butt'; ol.render.canvas.defaultLineJoin = 'miter'; +/** + * @const {number} + */ +ol.render.canvas.defaultMiterLimit = 10; + + /** * @const {ol.Color} */ diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 3b85e6db0e..a3627517c3 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -47,6 +47,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { * currentLineCap: (string|undefined), * currentLineJoin: (string|undefined), * currentLineWidth: (number|undefined), + * currentMiterLimit: (number|undefined), * fillStyle: (string|undefined), * strokeStyle: (string|undefined), * lineWidth: (number|undefined), @@ -57,6 +58,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { * width: (number|undefined), * lineCap: (string|undefined), * lineJoin: (string|undefined), + * miterLimit: (number|undefined), * snapToPixel: (boolean|undefined), * textStyle: ol.style.Text}} */ @@ -66,6 +68,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { currentLineCap: undefined, currentLineJoin: undefined, currentLineWidth: undefined, + currentMiterLimit: undefined, fillStyle: undefined, strokeStyle: undefined, lineWidth: undefined, @@ -76,6 +79,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { width: undefined, lineCap: undefined, lineJoin: undefined, + miterLimit: undefined, snapToPixel: undefined, textStyle: null }; @@ -359,11 +363,14 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; state.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; + state.miterLimit = goog.isDef(strokeStyle.miterLimit) ? + strokeStyle.miterLimit : ol.render.canvas.defaultMiterLimit; } else { state.strokeStyle = undefined; state.lineCap = undefined; state.lineJoin = undefined; state.lineWidth = undefined; + state.miterLimit = undefined; } }; @@ -379,6 +386,7 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { var lineCap = state.lineCap; var lineJoin = state.lineJoin; var lineWidth = state.lineWidth; + var miterLimit = state.miterLimit; if (goog.isDef(fillStyle) && state.currentFillStyle != fillStyle) { context.fillStyle = fillStyle; state.currentFillStyle = fillStyle; @@ -387,13 +395,16 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { goog.asserts.assert(goog.isDef(lineWidth)); goog.asserts.assert(goog.isDef(lineCap)); goog.asserts.assert(goog.isDef(lineJoin)); + goog.asserts.assert(goog.isDef(miterLimit)); if (state.currentStrokeStyle != strokeStyle || state.currentLineCap != lineCap || state.currentLineJoin != lineJoin || + state.currentMiterLimit != miterLimit || state.currentLineWidth != lineWidth) { context.strokeStyle = strokeStyle; context.lineCap = lineCap; context.lineJoin = lineJoin; + context.miterLimit = miterLimit; context.lineWidth = lineWidth; } } diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 21ada5dcfb..fe5a74f6d4 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -191,10 +191,12 @@ ol.render.canvas.Replay.prototype.replay = goog.asserts.assert(goog.isNumber(instruction[2])); goog.asserts.assert(goog.isString(instruction[3])); goog.asserts.assert(goog.isString(instruction[4])); + goog.asserts.assert(goog.isNumber(instruction[5])); context.strokeStyle = /** @type {string} */ (instruction[1]); context.lineWidth = /** @type {number} */ (instruction[2]); context.lineCap = /** @type {string} */ (instruction[3]); context.lineJoin = /** @type {string} */ (instruction[4]); + context.miterLimit = /** @type {number} */ (instruction[5]); ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { context.stroke(); @@ -463,22 +465,26 @@ ol.render.canvas.LineStringReplay = function() { * currentLineCap: (string|undefined), * currentLineJoin: (string|undefined), * currentLineWidth: (number|undefined), + * currentMiterLimit: (number|undefined), * lastStroke: number, * strokeStyle: (string|undefined), * lineCap: (string|undefined), * lineJoin: (string|undefined), - * lineWidth: (number|undefined)}|null} + * lineWidth: (number|undefined), + * miterLimit: (number|undefined)}|null} */ this.state_ = { currentStrokeStyle: undefined, currentLineCap: undefined, currentLineJoin: undefined, currentLineWidth: undefined, + currentMiterLimit: undefined, lastStroke: 0, strokeStyle: undefined, lineCap: undefined, lineJoin: undefined, - lineWidth: undefined + lineWidth: undefined, + miterLimit: undefined }; }; @@ -511,26 +517,30 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { var lineCap = state.lineCap; var lineJoin = state.lineJoin; var lineWidth = state.lineWidth; + var miterLimit = state.miterLimit; goog.asserts.assert(goog.isDef(strokeStyle)); goog.asserts.assert(goog.isDef(lineCap)); goog.asserts.assert(goog.isDef(lineJoin)); goog.asserts.assert(goog.isDef(lineWidth)); + goog.asserts.assert(goog.isDef(miterLimit)); if (state.currentStrokeStyle != strokeStyle || state.currentLineCap != lineCap || state.currentLineJoin != lineJoin || - state.currentLineWidth != lineWidth) { + state.currentLineWidth != lineWidth || + state.currentMiterLimit != miterLimit) { if (state.lastStroke != this.coordinates.length) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); state.lastStroke = this.coordinates.length; } this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, - strokeStyle, lineWidth, lineCap, lineJoin], + strokeStyle, lineWidth, lineCap, lineJoin, miterLimit], [ol.render.canvas.Instruction.BEGIN_PATH]); state.currentStrokeStyle = strokeStyle; state.currentLineCap = lineCap; state.currentLineJoin = lineJoin; state.currentLineWidth = lineWidth; + state.currentMiterLimit = miterLimit; } }; @@ -615,6 +625,8 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; this.state_.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; + this.state_.miterLimit = goog.isDef(strokeStyle.miterLimit) ? + strokeStyle.miterLimit : ol.render.canvas.defaultMiterLimit; }; @@ -635,11 +647,13 @@ ol.render.canvas.PolygonReplay = function() { * currentLineCap: (string|undefined), * currentLineJoin: (string|undefined), * currentLineWidth: (number|undefined), + * currentMiterLimit: (number|undefined), * fillStyle: (string|undefined), * strokeStyle: (string|undefined), * lineCap: (string|undefined), * lineJoin: (string|undefined), - * lineWidth: (number|undefined)}|null} + * lineWidth: (number|undefined), + * miterLimit: (number|undefined)}|null} */ this.state_ = { currentFillStyle: undefined, @@ -647,11 +661,13 @@ ol.render.canvas.PolygonReplay = function() { currentLineCap: undefined, currentLineJoin: undefined, currentLineWidth: undefined, + currentMiterLimit: undefined, fillStyle: undefined, strokeStyle: undefined, lineCap: undefined, lineJoin: undefined, - lineWidth: undefined + lineWidth: undefined, + miterLimit: undefined }; }; @@ -782,11 +798,14 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; state.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : ol.render.canvas.defaultLineWidth; + state.miterLimit = goog.isDef(strokeStyle.miterLimit) ? + strokeStyle.miterLimit : ol.render.canvas.defaultMiterLimit; } else { state.strokeStyle = undefined; state.lineCap = undefined; state.lineJoin = undefined; state.lineWidth = undefined; + state.miterLimit = undefined; } }; @@ -801,6 +820,7 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { var lineCap = state.lineCap; var lineJoin = state.lineJoin; var lineWidth = state.lineWidth; + var miterLimit = state.miterLimit; if (goog.isDef(fillStyle) && state.currentFillStyle != fillStyle) { this.instructions.push( [ol.render.canvas.Instruction.SET_FILL_STYLE, fillStyle]); @@ -810,17 +830,20 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { goog.asserts.assert(goog.isDef(lineCap)); goog.asserts.assert(goog.isDef(lineJoin)); goog.asserts.assert(goog.isDef(lineWidth)); + goog.asserts.assert(goog.isDef(miterLimit)); if (state.currentStrokeStyle != strokeStyle || state.currentLineCap != lineCap || state.currentLineJoin != lineJoin || - state.currentLineWidth != lineWidth) { + state.currentLineWidth != lineWidth || + state.currentMiterLimit != miterLimit) { this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, - strokeStyle, lineWidth, lineCap, lineJoin]); + strokeStyle, lineWidth, lineCap, lineJoin, miterLimit]); state.currentStrokeStyle = strokeStyle; state.currentLineCap = lineCap; state.currentLineJoin = lineJoin; state.currentLineWidth = lineWidth; + state.currentMiterLimit = miterLimit; } } }; diff --git a/src/ol/style/strokestyle.js b/src/ol/style/strokestyle.js index 754aafee25..de485d4313 100644 --- a/src/ol/style/strokestyle.js +++ b/src/ol/style/strokestyle.js @@ -25,6 +25,11 @@ ol.style.Stroke = function(options) { */ this.lineJoin = options.lineJoin; + /** + * @type {number|undefined} + */ + this.miterLimit = options.miterLimit; + /** * @type {number|undefined} */ From 090849038571ff27529265d8bf6d2f122529b8a6 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 28 Nov 2013 13:47:31 +0100 Subject: [PATCH 417/919] Add lineDash property to ol.style.Stroke --- examples/geojson.js | 1 + src/objectliterals.jsdoc | 1 + src/ol/render/canvas/canvas.js | 6 ++++++ src/ol/render/canvas/canvasimmediate.js | 11 ++++++++++ src/ol/render/canvas/canvasreplay.js | 27 +++++++++++++++++++++++-- src/ol/style/strokestyle.js | 5 +++++ 6 files changed, 49 insertions(+), 2 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 20323b0e2d..8ab63eedbb 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -49,6 +49,7 @@ var styles = { 'Polygon': [new ol.style.Style({ stroke: new ol.style.Stroke({ color: 'blue', + lineDash: [4], width: 3 }), fill: new ol.style.Fill({ diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 5d5cb33857..347985800f 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -648,6 +648,7 @@ * @property {ol.Color|string|undefined} color Color. * @property {string|undefined} lineCap Line cap style: `butt`, `round`, or `square`. Default is `butt`. * @property {string|undefined} lineJoin Line join style: `bevel`, `round`, or `miter`. Default is `miter`. + * @property {Array.|undefined} lineDash Line dash pattern. Default is `undefined` (no dash). * @property {number|undefined} miterLimit Miter limit. Default is `10`. * @property {number|undefined} width Width. * @todo stability experimental diff --git a/src/ol/render/canvas/canvas.js b/src/ol/render/canvas/canvas.js index 942290074d..d12b63f3dc 100644 --- a/src/ol/render/canvas/canvas.js +++ b/src/ol/render/canvas/canvas.js @@ -15,6 +15,12 @@ ol.render.canvas.defaultFillStyle = ol.color.fromString('black'); ol.render.canvas.defaultLineCap = 'butt'; +/** + * @const {Array.} + */ +ol.render.canvas.defaultLineDash = []; + + /** * @const {string} */ diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index a3627517c3..73c26a0821 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -45,6 +45,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { * @type {{currentFillStyle: (string|undefined), * currentStrokeStyle: (string|undefined), * currentLineCap: (string|undefined), + * currentLineDash: Array., * currentLineJoin: (string|undefined), * currentLineWidth: (number|undefined), * currentMiterLimit: (number|undefined), @@ -57,6 +58,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { * height: (number|undefined), * width: (number|undefined), * lineCap: (string|undefined), + * lineDash: Array., * lineJoin: (string|undefined), * miterLimit: (number|undefined), * snapToPixel: (boolean|undefined), @@ -66,6 +68,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { currentFillStyle: undefined, currentStrokeStyle: undefined, currentLineCap: undefined, + currentLineDash: null, currentLineJoin: undefined, currentLineWidth: undefined, currentMiterLimit: undefined, @@ -78,6 +81,7 @@ ol.render.canvas.Immediate = function(context, extent, transform) { height: undefined, width: undefined, lineCap: undefined, + lineDash: null, lineJoin: undefined, miterLimit: undefined, snapToPixel: undefined, @@ -359,6 +363,8 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = strokeStyle.color : ol.render.canvas.defaultStrokeStyle); state.lineCap = goog.isDef(strokeStyle.lineCap) ? strokeStyle.lineCap : ol.render.canvas.defaultLineCap; + state.lineDash = !goog.isNull(strokeStyle.lineDash) ? + strokeStyle.lineDash : ol.render.canvas.defaultLineDash; state.lineJoin = goog.isDef(strokeStyle.lineJoin) ? strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; state.lineWidth = goog.isDef(strokeStyle.width) ? @@ -368,6 +374,7 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = } else { state.strokeStyle = undefined; state.lineCap = undefined; + state.lineDash = null; state.lineJoin = undefined; state.lineWidth = undefined; state.miterLimit = undefined; @@ -384,6 +391,7 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { var fillStyle = state.fillStyle; var strokeStyle = state.strokeStyle; var lineCap = state.lineCap; + var lineDash = state.lineDash; var lineJoin = state.lineJoin; var lineWidth = state.lineWidth; var miterLimit = state.miterLimit; @@ -394,15 +402,18 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { if (goog.isDef(strokeStyle)) { goog.asserts.assert(goog.isDef(lineWidth)); goog.asserts.assert(goog.isDef(lineCap)); + goog.asserts.assert(!goog.isNull(lineDash)); goog.asserts.assert(goog.isDef(lineJoin)); goog.asserts.assert(goog.isDef(miterLimit)); if (state.currentStrokeStyle != strokeStyle || state.currentLineCap != lineCap || + state.currentLineDash != lineDash || state.currentLineJoin != lineJoin || state.currentMiterLimit != miterLimit || state.currentLineWidth != lineWidth) { context.strokeStyle = strokeStyle; context.lineCap = lineCap; + context.setLineDash(lineDash); context.lineJoin = lineJoin; context.miterLimit = miterLimit; context.lineWidth = lineWidth; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index fe5a74f6d4..8827b83577 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -192,11 +192,13 @@ ol.render.canvas.Replay.prototype.replay = goog.asserts.assert(goog.isString(instruction[3])); goog.asserts.assert(goog.isString(instruction[4])); goog.asserts.assert(goog.isNumber(instruction[5])); + goog.asserts.assert(!goog.isNull(instruction[6])); context.strokeStyle = /** @type {string} */ (instruction[1]); context.lineWidth = /** @type {number} */ (instruction[2]); context.lineCap = /** @type {string} */ (instruction[3]); context.lineJoin = /** @type {string} */ (instruction[4]); context.miterLimit = /** @type {number} */ (instruction[5]); + context.setLineDash(/** @type {Array.} */ (instruction[6])); ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { context.stroke(); @@ -463,12 +465,14 @@ ol.render.canvas.LineStringReplay = function() { * @private * @type {{currentStrokeStyle: (string|undefined), * currentLineCap: (string|undefined), + * currentLineDash: Array., * currentLineJoin: (string|undefined), * currentLineWidth: (number|undefined), * currentMiterLimit: (number|undefined), * lastStroke: number, * strokeStyle: (string|undefined), * lineCap: (string|undefined), + * lineDash: Array., * lineJoin: (string|undefined), * lineWidth: (number|undefined), * miterLimit: (number|undefined)}|null} @@ -476,12 +480,14 @@ ol.render.canvas.LineStringReplay = function() { this.state_ = { currentStrokeStyle: undefined, currentLineCap: undefined, + currentLineDash: null, currentLineJoin: undefined, currentLineWidth: undefined, currentMiterLimit: undefined, lastStroke: 0, strokeStyle: undefined, lineCap: undefined, + lineDash: null, lineJoin: undefined, lineWidth: undefined, miterLimit: undefined @@ -515,16 +521,19 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { var state = this.state_; var strokeStyle = state.strokeStyle; var lineCap = state.lineCap; + var lineDash = state.lineDash; var lineJoin = state.lineJoin; var lineWidth = state.lineWidth; var miterLimit = state.miterLimit; goog.asserts.assert(goog.isDef(strokeStyle)); goog.asserts.assert(goog.isDef(lineCap)); + goog.asserts.assert(!goog.isNull(lineDash)); goog.asserts.assert(goog.isDef(lineJoin)); goog.asserts.assert(goog.isDef(lineWidth)); goog.asserts.assert(goog.isDef(miterLimit)); if (state.currentStrokeStyle != strokeStyle || state.currentLineCap != lineCap || + state.currentLineDash != lineDash || state.currentLineJoin != lineJoin || state.currentLineWidth != lineWidth || state.currentMiterLimit != miterLimit) { @@ -534,10 +543,11 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { } this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, - strokeStyle, lineWidth, lineCap, lineJoin, miterLimit], + strokeStyle, lineWidth, lineCap, lineJoin, miterLimit, lineDash], [ol.render.canvas.Instruction.BEGIN_PATH]); state.currentStrokeStyle = strokeStyle; state.currentLineCap = lineCap; + state.currentLineDash = lineDash; state.currentLineJoin = lineJoin; state.currentLineWidth = lineWidth; state.currentMiterLimit = miterLimit; @@ -621,6 +631,8 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = strokeStyle.color : ol.render.canvas.defaultStrokeStyle); this.state_.lineCap = goog.isDef(strokeStyle.lineCap) ? strokeStyle.lineCap : ol.render.canvas.defaultLineCap; + this.state_.lineDash = !goog.isNull(strokeStyle.lineDash) ? + strokeStyle.lineDash : ol.render.canvas.defaultLineDash; this.state_.lineJoin = goog.isDef(strokeStyle.lineJoin) ? strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; this.state_.lineWidth = goog.isDef(strokeStyle.width) ? @@ -645,12 +657,14 @@ ol.render.canvas.PolygonReplay = function() { * @type {{currentFillStyle: (string|undefined), * currentStrokeStyle: (string|undefined), * currentLineCap: (string|undefined), + * currentLineDash: Array., * currentLineJoin: (string|undefined), * currentLineWidth: (number|undefined), * currentMiterLimit: (number|undefined), * fillStyle: (string|undefined), * strokeStyle: (string|undefined), * lineCap: (string|undefined), + * lineDash: Array., * lineJoin: (string|undefined), * lineWidth: (number|undefined), * miterLimit: (number|undefined)}|null} @@ -659,12 +673,14 @@ ol.render.canvas.PolygonReplay = function() { currentFillStyle: undefined, currentStrokeStyle: undefined, currentLineCap: undefined, + currentLineDash: null, currentLineJoin: undefined, currentLineWidth: undefined, currentMiterLimit: undefined, fillStyle: undefined, strokeStyle: undefined, lineCap: undefined, + lineDash: null, lineJoin: undefined, lineWidth: undefined, miterLimit: undefined @@ -794,6 +810,8 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = strokeStyle.color : ol.render.canvas.defaultStrokeStyle); state.lineCap = goog.isDef(strokeStyle.lineCap) ? strokeStyle.lineCap : ol.render.canvas.defaultLineCap; + state.lineDash = !goog.isNull(strokeStyle.lineDash) ? + strokeStyle.lineDash : ol.render.canvas.defaultLineDash; state.lineJoin = goog.isDef(strokeStyle.lineJoin) ? strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; state.lineWidth = goog.isDef(strokeStyle.width) ? @@ -803,6 +821,7 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = } else { state.strokeStyle = undefined; state.lineCap = undefined; + state.lineDash = null; state.lineJoin = undefined; state.lineWidth = undefined; state.miterLimit = undefined; @@ -818,6 +837,7 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { var fillStyle = state.fillStyle; var strokeStyle = state.strokeStyle; var lineCap = state.lineCap; + var lineDash = state.lineDash; var lineJoin = state.lineJoin; var lineWidth = state.lineWidth; var miterLimit = state.miterLimit; @@ -828,19 +848,22 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { } if (goog.isDef(strokeStyle)) { goog.asserts.assert(goog.isDef(lineCap)); + goog.asserts.assert(!goog.isNull(lineDash)); goog.asserts.assert(goog.isDef(lineJoin)); goog.asserts.assert(goog.isDef(lineWidth)); goog.asserts.assert(goog.isDef(miterLimit)); if (state.currentStrokeStyle != strokeStyle || state.currentLineCap != lineCap || + state.currentLineDash != lineDash || state.currentLineJoin != lineJoin || state.currentLineWidth != lineWidth || state.currentMiterLimit != miterLimit) { this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, - strokeStyle, lineWidth, lineCap, lineJoin, miterLimit]); + strokeStyle, lineWidth, lineCap, lineJoin, miterLimit, lineDash]); state.currentStrokeStyle = strokeStyle; state.currentLineCap = lineCap; + state.currentLineDash = lineDash; state.currentLineJoin = lineJoin; state.currentLineWidth = lineWidth; state.currentMiterLimit = miterLimit; diff --git a/src/ol/style/strokestyle.js b/src/ol/style/strokestyle.js index de485d4313..0f0021670d 100644 --- a/src/ol/style/strokestyle.js +++ b/src/ol/style/strokestyle.js @@ -20,6 +20,11 @@ ol.style.Stroke = function(options) { */ this.lineCap = options.lineCap; + /** + * @type {Array.} + */ + this.lineDash = goog.isDef(options.lineDash) ? options.lineDash : null; + /** * @type {string|undefined} */ From 8d40308d6ec11ef75907d1cd281ba30a5a475905 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 28 Nov 2013 15:05:07 +0100 Subject: [PATCH 418/919] Fix indentation --- src/ol/render/canvas/canvasreplay.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 8827b83577..7ecb880a02 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -632,7 +632,7 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = this.state_.lineCap = goog.isDef(strokeStyle.lineCap) ? strokeStyle.lineCap : ol.render.canvas.defaultLineCap; this.state_.lineDash = !goog.isNull(strokeStyle.lineDash) ? - strokeStyle.lineDash : ol.render.canvas.defaultLineDash; + strokeStyle.lineDash : ol.render.canvas.defaultLineDash; this.state_.lineJoin = goog.isDef(strokeStyle.lineJoin) ? strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; this.state_.lineWidth = goog.isDef(strokeStyle.width) ? From f38e5f5f2889c7824c67511965ec173f50d4f02f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 28 Nov 2013 17:51:59 +0100 Subject: [PATCH 419/919] Only set line dash if it is supported --- src/ol/render/canvas/canvasimmediate.js | 4 +++- src/ol/render/canvas/canvasreplay.js | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 73c26a0821..ff6b3d3ceb 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -413,7 +413,9 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { state.currentLineWidth != lineWidth) { context.strokeStyle = strokeStyle; context.lineCap = lineCap; - context.setLineDash(lineDash); + if (goog.isDef(context.setLineDash)) { + context.setLineDash(lineDash); + } context.lineJoin = lineJoin; context.miterLimit = miterLimit; context.lineWidth = lineWidth; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 7ecb880a02..ed8360f865 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -198,7 +198,9 @@ ol.render.canvas.Replay.prototype.replay = context.lineCap = /** @type {string} */ (instruction[3]); context.lineJoin = /** @type {string} */ (instruction[4]); context.miterLimit = /** @type {number} */ (instruction[5]); - context.setLineDash(/** @type {Array.} */ (instruction[6])); + if (goog.isDef(context.setLineDash)) { + context.setLineDash(/** @type {Array.} */ (instruction[6])); + } ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { context.stroke(); From a06ba8d4aac87dde2b16c82ca84605ac2d9c89ad Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 28 Nov 2013 17:42:52 +0100 Subject: [PATCH 420/919] Fire addfeature and removefeature events from ol.source.Vector --- src/ol/source/vectorsource.js | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index f3bc0850dc..d01ff50ddb 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -3,6 +3,8 @@ // FIXME make change-detection more refined (notably, geometry hint) goog.provide('ol.source.Vector'); +goog.provide('ol.source.VectorEvent'); +goog.provide('ol.source.VectorEventType'); goog.require('goog.asserts'); goog.require('goog.events'); @@ -12,6 +14,15 @@ goog.require('ol.source.Source'); goog.require('ol.structs.RBush'); +/** + * @enum {string} + */ +ol.source.VectorEventType = { + ADDFEATURE: 'addfeature', + REMOVEFEATURE: 'removefeature' +}; + + /** * @constructor @@ -64,6 +75,8 @@ ol.source.Vector.prototype.addFeature = function(feature) { goog.events.EventType.CHANGE, this.handleFeatureChange_, false, this); var extent = feature.getGeometry().getExtent(); this.rBush_.insert(extent, feature); + this.dispatchEvent( + new ol.source.VectorEvent(ol.source.VectorEventType.ADDFEATURE, feature)); this.dispatchChangeEvent(); }; @@ -162,5 +175,36 @@ ol.source.Vector.prototype.removeFeature = function(feature) { goog.asserts.assert(featureKey in this.featureChangeKeys_); goog.events.unlistenByKey(this.featureChangeKeys_[featureKey]); delete this.featureChangeKeys_[featureKey]; + this.dispatchEvent(new ol.source.VectorEvent( + ol.source.VectorEventType.REMOVEFEATURE, feature)); this.dispatchChangeEvent(); }; + + + +/** + * @constructor + * @extends {goog.events.Event} + * @param {string} type Type. + * @param {ol.Feature=} opt_feature Feature. + */ +ol.source.VectorEvent = function(type, opt_feature) { + + goog.base(this, type); + + /** + * @private + * @type {ol.Feature|undefined} + */ + this.feature_ = opt_feature; + +}; +goog.inherits(ol.source.VectorEvent, goog.events.Event); + + +/** + * @return {ol.Feature|undefined} Feature. + */ +ol.source.VectorEvent.prototype.getFeature = function() { + return this.feature_; +}; From e2d9c77e08557d3da9769222cddf2f20bdfa737e Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Fri, 29 Nov 2013 10:43:02 +0100 Subject: [PATCH 421/919] Notify if WebGL is not supported --- examples/layer-clipping-webgl.html | 4 + examples/layer-clipping-webgl.js | 153 +++++++++++++++-------------- 2 files changed, 85 insertions(+), 72 deletions(-) diff --git a/examples/layer-clipping-webgl.html b/examples/layer-clipping-webgl.html index d469454056..6b0a4be070 100644 --- a/examples/layer-clipping-webgl.html +++ b/examples/layer-clipping-webgl.html @@ -28,6 +28,10 @@ + +
diff --git a/examples/layer-clipping-webgl.js b/examples/layer-clipping-webgl.js index 61dccb9daa..a93091b506 100644 --- a/examples/layer-clipping-webgl.js +++ b/examples/layer-clipping-webgl.js @@ -4,90 +4,99 @@ goog.require('ol.View2D'); goog.require('ol.layer.Tile'); goog.require('ol.source.OSM'); -var osm = new ol.layer.Tile({ - source: new ol.source.OSM() -}); +if (!ol.webgl.SUPPORTED) { + var info = document.getElementById('no-webgl'); + /** + * display error message + */ + info.style.display = ''; +} else { -var map = new ol.Map({ - layers: [osm], - renderer: ol.RendererHint.WEBGL, - target: 'map', - view: new ol.View2D({ - center: [0, 0], - zoom: 2 - }) -}); + var osm = new ol.layer.Tile({ + source: new ol.source.OSM() + }); -var fragmentShaderSource = [ - 'precision mediump float;', - 'void main() {', - '}' -].join(''); + var map = new ol.Map({ + layers: [osm], + renderer: ol.RendererHint.WEBGL, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) + }); -var vertexShaderSource = [ - 'attribute vec2 a_position;', - 'void main() {', - 'gl_Position = vec4(a_position, 0, 1);', - '}' -].join(''); + var fragmentShaderSource = [ + 'precision mediump float;', + 'void main() {', + '}' + ].join(''); -osm.on('precompose', function(event) { - var context = event.getGlContext(); + var vertexShaderSource = [ + 'attribute vec2 a_position;', + 'void main() {', + ' gl_Position = vec4(a_position, 0, 1);', + '}' + ].join(''); - var gl = context.getGL(); - var program = gl.createProgram(); + osm.on('precompose', function(event) { + var context = event.getGlContext(); - var vertexShader = gl.createShader(gl.VERTEX_SHADER); - gl.shaderSource(vertexShader, vertexShaderSource); - gl.compileShader(vertexShader); - gl.attachShader(program, vertexShader); + var gl = context.getGL(); + var program = gl.createProgram(); - var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); - gl.shaderSource(fragmentShader, fragmentShaderSource); - gl.compileShader(fragmentShader); - gl.attachShader(program, fragmentShader); + var vertexShader = gl.createShader(gl.VERTEX_SHADER); + gl.shaderSource(vertexShader, vertexShaderSource); + gl.compileShader(vertexShader); + gl.attachShader(program, vertexShader); - gl.linkProgram(program); - context.useProgram(program); + var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); + gl.shaderSource(fragmentShader, fragmentShaderSource); + gl.compileShader(fragmentShader); + gl.attachShader(program, fragmentShader); - var positionLocation = gl.getAttribLocation(program, 'a_position'); + gl.linkProgram(program); + context.useProgram(program); - gl.enable(gl.STENCIL_TEST); - gl.colorMask(false, false, false, false); - gl.stencilOp(gl.KEEP, gl.KEEP, gl.REPLACE); - gl.stencilFunc(gl.ALWAYS, 1, 0xff); + var positionLocation = gl.getAttribLocation(program, 'a_position'); - var buffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, buffer); - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ - // first band - -1.0, -1.0, -0.75, -1.0, -1.0, 1.0, - -1.0, 1.0, -0.75, -1.0, -0.75, 1.0, - // second band - -0.5, -1.0, -0.25, -1.0, -0.5, 1.0, - -0.5, 1.0, -0.25, -1.0, -0.25, 1.0, - // third band - 0.0, -1.0, 0.25, -1.0, 0.0, 1.0, - 0.0, 1.0, 0.25, -1.0, 0.25, 1.0, - // forth band - 0.5, -1.0, 0.75, -1.0, 0.5, 1.0, - 0.5, 1.0, 0.75, -1.0, 0.75, 1.0 - ]), gl.STATIC_DRAW); + gl.enable(gl.STENCIL_TEST); + gl.colorMask(false, false, false, false); + gl.stencilOp(gl.KEEP, gl.KEEP, gl.REPLACE); + gl.stencilFunc(gl.ALWAYS, 1, 0xff); - gl.enableVertexAttribArray(positionLocation); - gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0); - gl.drawArrays(gl.TRIANGLES, 0, 24); + var buffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, buffer); + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ + // first band + -1.0, -1.0, -0.75, -1.0, -1.0, 1.0, + -1.0, 1.0, -0.75, -1.0, -0.75, 1.0, + // second band + -0.5, -1.0, -0.25, -1.0, -0.5, 1.0, + -0.5, 1.0, -0.25, -1.0, -0.25, 1.0, + // third band + 0.0, -1.0, 0.25, -1.0, 0.0, 1.0, + 0.0, 1.0, 0.25, -1.0, 0.25, 1.0, + // forth band + 0.5, -1.0, 0.75, -1.0, 0.5, 1.0, + 0.5, 1.0, 0.75, -1.0, 0.75, 1.0 + ]), gl.STATIC_DRAW); - gl.bindBuffer(gl.ARRAY_BUFFER, null); - gl.deleteBuffer(buffer); + gl.enableVertexAttribArray(positionLocation); + gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0); + gl.drawArrays(gl.TRIANGLES, 0, 24); - gl.colorMask(true, true, true, true); - gl.stencilFunc(gl.NOTEQUAL, 0, 0xff); - gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP); -}); + gl.bindBuffer(gl.ARRAY_BUFFER, null); + gl.deleteBuffer(buffer); -osm.on('postcompose', function(event) { - var context = event.getGlContext(); - var gl = context.getGL(); - gl.disable(gl.STENCIL_TEST); -}); + gl.colorMask(true, true, true, true); + gl.stencilFunc(gl.NOTEQUAL, 0, 0xff); + gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP); + }); + + osm.on('postcompose', function(event) { + var context = event.getGlContext(); + var gl = context.getGL(); + gl.disable(gl.STENCIL_TEST); + }); +} From 1ecdd675ab542307e3a08c546cf4d9a89242082b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 30 Nov 2013 19:27:36 +0100 Subject: [PATCH 422/919] ol.geom.Geometry#getExtent is exported in base class --- src/ol/geom/linestring.exports | 1 - src/ol/geom/multilinestring.exports | 1 - src/ol/geom/multipoint.exports | 1 - src/ol/geom/multipolygon.exports | 1 - src/ol/geom/point.exports | 1 - src/ol/geom/polygon.exports | 1 - 6 files changed, 6 deletions(-) diff --git a/src/ol/geom/linestring.exports b/src/ol/geom/linestring.exports index 3f8dcb5293..362c1b1042 100644 --- a/src/ol/geom/linestring.exports +++ b/src/ol/geom/linestring.exports @@ -1,5 +1,4 @@ @exportSymbol ol.geom.LineString @exportProperty ol.geom.LineString.prototype.getCoordinates -@exportProperty ol.geom.LineString.prototype.getExtent @exportProperty ol.geom.LineString.prototype.getType @exportProperty ol.geom.LineString.prototype.setCoordinates diff --git a/src/ol/geom/multilinestring.exports b/src/ol/geom/multilinestring.exports index 8176a1a46d..56b51e66f7 100644 --- a/src/ol/geom/multilinestring.exports +++ b/src/ol/geom/multilinestring.exports @@ -1,5 +1,4 @@ @exportSymbol ol.geom.MultiLineString @exportProperty ol.geom.MultiLineString.prototype.getCoordinates -@exportProperty ol.geom.MultiLineString.prototype.getExtent @exportProperty ol.geom.MultiLineString.prototype.getType @exportProperty ol.geom.MultiLineString.prototype.setCoordinates diff --git a/src/ol/geom/multipoint.exports b/src/ol/geom/multipoint.exports index d55764e7e9..20acd445c6 100644 --- a/src/ol/geom/multipoint.exports +++ b/src/ol/geom/multipoint.exports @@ -1,5 +1,4 @@ @exportSymbol ol.geom.MultiPoint @exportProperty ol.geom.MultiPoint.prototype.getCoordinates -@exportProperty ol.geom.MultiPoint.prototype.getExtent @exportProperty ol.geom.MultiPoint.prototype.getType @exportProperty ol.geom.MultiPoint.prototype.setCoordinates diff --git a/src/ol/geom/multipolygon.exports b/src/ol/geom/multipolygon.exports index e8aa397e67..8bffb1d690 100644 --- a/src/ol/geom/multipolygon.exports +++ b/src/ol/geom/multipolygon.exports @@ -1,5 +1,4 @@ @exportSymbol ol.geom.MultiPolygon @exportProperty ol.geom.MultiPolygon.prototype.getCoordinates -@exportProperty ol.geom.MultiPolygon.prototype.getExtent @exportProperty ol.geom.MultiPolygon.prototype.getType @exportProperty ol.geom.MultiPolygon.prototype.setCoordinates diff --git a/src/ol/geom/point.exports b/src/ol/geom/point.exports index 0484497386..4125ad3ab1 100644 --- a/src/ol/geom/point.exports +++ b/src/ol/geom/point.exports @@ -1,5 +1,4 @@ @exportSymbol ol.geom.Point @exportProperty ol.geom.Point.prototype.getCoordinates -@exportProperty ol.geom.Point.prototype.getExtent @exportProperty ol.geom.Point.prototype.getType @exportProperty ol.geom.Point.prototype.setCoordinates diff --git a/src/ol/geom/polygon.exports b/src/ol/geom/polygon.exports index f725e8e6d6..45c5d8b3aa 100644 --- a/src/ol/geom/polygon.exports +++ b/src/ol/geom/polygon.exports @@ -1,5 +1,4 @@ @exportSymbol ol.geom.Polygon @exportProperty ol.geom.Polygon.prototype.getCoordinates -@exportProperty ol.geom.Polygon.prototype.getExtent @exportProperty ol.geom.Polygon.prototype.getType @exportProperty ol.geom.Polygon.prototype.setCoordinates From b2a93dcda7bf2b91eadf73dfd43114dc9ce1020e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 30 Nov 2013 19:28:00 +0100 Subject: [PATCH 423/919] Add ol.geom.LinearRing --- src/ol/geom/geometry.js | 1 + src/ol/geom/linearring.exports | 4 +++ src/ol/geom/linearring.js | 48 ++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 src/ol/geom/linearring.exports create mode 100644 src/ol/geom/linearring.js diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index bed5760b08..334d43c701 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -16,6 +16,7 @@ goog.require('ol.geom.flat'); ol.geom.Type = { POINT: 'Point', LINE_STRING: 'LineString', + LINEAR_RING: 'LinearRing', POLYGON: 'Polygon', MULTI_POINT: 'MultiPoint', MULTI_LINE_STRING: 'MultiLineString', diff --git a/src/ol/geom/linearring.exports b/src/ol/geom/linearring.exports new file mode 100644 index 0000000000..59792c22b9 --- /dev/null +++ b/src/ol/geom/linearring.exports @@ -0,0 +1,4 @@ +@exportSymbol ol.geom.LinearRing +@exportProperty ol.geom.LinearRing.prototype.getCoordinates +@exportProperty ol.geom.LinearRing.prototype.getType +@exportProperty ol.geom.LinearRing.prototype.setCoordinates diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js new file mode 100644 index 0000000000..555c91d516 --- /dev/null +++ b/src/ol/geom/linearring.js @@ -0,0 +1,48 @@ +goog.provide('ol.geom.LinearRing'); + +goog.require('ol.geom.Geometry'); +goog.require('ol.geom.flat'); + + + +/** + * @constructor + * @extends {ol.geom.Geometry} + * @param {ol.geom.RawLinearRing} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. + */ +ol.geom.LinearRing = function(coordinates, opt_layout) { + goog.base(this); + this.setCoordinates(coordinates, opt_layout); +}; +goog.inherits(ol.geom.LinearRing, ol.geom.Geometry); + + +/** + * @return {ol.geom.RawLinearRing} Coordinates. + */ +ol.geom.LinearRing.prototype.getCoordinates = function() { + return ol.geom.flat.inflateCoordinates( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride); +}; + + +/** + * @inheritDoc + */ +ol.geom.LinearRing.prototype.getType = function() { + return ol.geom.Type.LINEAR_RING; +}; + + +/** + * @param {ol.geom.RawLinearRing} coordinates Coordinates. + * @param {ol.geom.Layout=} opt_layout Layout. + */ +ol.geom.LinearRing.prototype.setCoordinates = + function(coordinates, opt_layout) { + this.setLayout(opt_layout, coordinates, 1); + ol.geom.flat.deflateCoordinates( + this.flatCoordinates, 0, coordinates, this.stride); + this.dispatchChangeEvent(); +}; From c1c813e3fad6ec3c69e8a075613d1212b2073e6e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 30 Nov 2013 19:29:56 +0100 Subject: [PATCH 424/919] Add ol.geom.Polygon#getLinearRings --- src/ol/geom/polygon.exports | 1 + src/ol/geom/polygon.js | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/ol/geom/polygon.exports b/src/ol/geom/polygon.exports index 45c5d8b3aa..64054f31e8 100644 --- a/src/ol/geom/polygon.exports +++ b/src/ol/geom/polygon.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.Polygon @exportProperty ol.geom.Polygon.prototype.getCoordinates +@exportProperty ol.geom.Polygon.prototype.getLinearRings @exportProperty ol.geom.Polygon.prototype.getType @exportProperty ol.geom.Polygon.prototype.setCoordinates diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index c52a4ae8bd..a227b986c4 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.Polygon'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.LinearRing'); goog.require('ol.geom.flat'); @@ -53,6 +54,20 @@ ol.geom.Polygon.prototype.getEnds = function() { }; +/** + * @return {Array.} Linear rings. + */ +ol.geom.Polygon.prototype.getLinearRings = function() { + var linearRings = []; + var coordinates = this.getCoordinates(); + var i, ii; + for (i = 0, ii = coordinates.length; i < ii; ++i) { + linearRings.push(new ol.geom.LinearRing(coordinates[i])); + } + return linearRings; +}; + + /** * @inheritDoc */ From 8c669ab5408615525a04ee5b2cf2bbfa1f19bb81 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 26 Nov 2013 16:26:10 +0100 Subject: [PATCH 425/919] Add ol.geom.flat.lineStringLength --- src/ol/geom/flatgeom.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 3b080bf50a..df418f842a 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -148,6 +148,24 @@ ol.geom.flat.inflateCoordinatesss = * @param {number} offset Offset. * @param {number} end End. * @param {number} stride Stride. + * @return {number} Length. + */ +ol.geom.flat.lineStringLength = function(flatCoordinates, offset, end, stride) { + var x1 = flatCoordinates[offset]; + var y1 = flatCoordinates[offset + 1]; + var length = 0; + for (i = offset + stride; i < end; i += stride) { + var x2 = flatCoordinates[i]; + var y2 = flatCoordinates[i + 1]; + length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); + x1 = x2; + y1 = y2; + } + return length; +}; + + +/** * @param {number} x X. * @param {number} y Y. * @return {boolean} Contains (x, y). From d45734634a5f5c5cd2ca5af7c1e7b865d3d69055 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 26 Nov 2013 16:26:35 +0100 Subject: [PATCH 426/919] Add ol.geom.flat.linearRingPerimeter --- src/ol/geom/flatgeom.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index df418f842a..5744c99822 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -216,6 +216,24 @@ ol.geom.flat.linearRingIsClockwise = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @return {number} Perimeter. + */ +ol.geom.flat.linearRingPerimeter = + function(flatCoordinates, offset, end, stride) { + var perimeter = + ol.geom.flat.lineStringLength(flatCoordinates, offset, end, stride); + var dx = flatCoordinates[end - stride] - flatCoordinates[offset]; + var dy = flatCoordinates[end - stride + 1] - flatCoordinates[offset + 1]; + perimeter += Math.sqrt(dx * dx + dy * dy); + return perimeter; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From 321837f1575255e2cdc99f3b43db435a5e1cbde8 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 26 Nov 2013 16:26:53 +0100 Subject: [PATCH 427/919] Add ol.geom.flat.lineStringInterpolate --- src/ol/geom/flatgeom.js | 62 ++++++++++++++++++++++++++++++ test/spec/ol/geom/flatgeom.test.js | 42 ++++++++++++++++++++ 2 files changed, 104 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 5744c99822..839bf32307 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -1,5 +1,6 @@ goog.provide('ol.geom.flat'); +goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.vec.Mat4'); @@ -154,6 +155,7 @@ ol.geom.flat.lineStringLength = function(flatCoordinates, offset, end, stride) { var x1 = flatCoordinates[offset]; var y1 = flatCoordinates[offset + 1]; var length = 0; + var i; for (i = offset + stride; i < end; i += stride) { var x2 = flatCoordinates[i]; var y2 = flatCoordinates[i + 1]; @@ -166,6 +168,66 @@ ol.geom.flat.lineStringLength = function(flatCoordinates, offset, end, stride) { /** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {number} fraction Fraction. + * @param {ol.Coordinate=} opt_point Point. + * @return {ol.Coordinate} Point at fraction along the line string. + */ +ol.geom.flat.lineStringInterpolate = + function(flatCoordinates, offset, end, stride, fraction, opt_point) { + goog.asserts.assert(0 <= fraction && fraction <= 1); + var point = goog.isDef(opt_point) ? opt_point : [NaN, NaN]; + var n = (end - offset) / stride; + if (n === 0) { + goog.asserts.fail(); + } else if (n == 1) { + point[0] = flatCoordinates[offset]; + point[1] = flatCoordinates[offset + 1]; + } else if (n == 2) { + point[0] = (1 - fraction) * flatCoordinates[offset] + + fraction * flatCoordinates[offset + stride]; + point[1] = (1 - fraction) * flatCoordinates[offset + 1] + + fraction * flatCoordinates[offset + stride + 1]; + } else { + var x1 = flatCoordinates[offset]; + var y1 = flatCoordinates[offset + 1]; + var length = 0; + var cumulativeLengths = [0]; + var i; + for (i = offset + stride; i < end; i += stride) { + var x2 = flatCoordinates[i]; + var y2 = flatCoordinates[i + 1]; + length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); + cumulativeLengths.push(length); + x1 = x2; + y1 = y2; + } + var target = fraction * length; + var index = goog.array.binarySearch(cumulativeLengths, target); + if (index < 0) { + var t = (target - cumulativeLengths[-index - 2]) / + (cumulativeLengths[-index - 1] - cumulativeLengths[-index - 2]); + var o = offset + (-index - 2) * stride; + point[0] = (1 - t) * flatCoordinates[o] + t * flatCoordinates[o + stride]; + point[1] = (1 - t) * flatCoordinates[o + 1] + + t * flatCoordinates[o + stride + 1]; + } else { + point[0] = flatCoordinates[offset + index * stride]; + point[1] = flatCoordinates[offset + index * stride + 1]; + } + } + return point; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. * @param {number} x X. * @param {number} y Y. * @return {boolean} Contains (x, y). diff --git a/test/spec/ol/geom/flatgeom.test.js b/test/spec/ol/geom/flatgeom.test.js index 04bd728c07..25728c75f4 100644 --- a/test/spec/ol/geom/flatgeom.test.js +++ b/test/spec/ol/geom/flatgeom.test.js @@ -54,6 +54,48 @@ describe('ol.geom.flat', function() { }); + describe('ol.geom.flat.lineStringInterpolate', function() { + + it('returns the expected value for single points', function() { + var flatCoordinates = [0, 1]; + var point = + ol.geom.flat.lineStringInterpolate(flatCoordinates, 0, 2, 2, 0.5); + expect(point).to.eql([0, 1]); + }); + + it('returns the expected value for simple line segments', function() { + var flatCoordinates = [0, 1, 2, 3]; + var point = + ol.geom.flat.lineStringInterpolate(flatCoordinates, 0, 4, 2, 0.5); + expect(point).to.eql([1, 2]); + }); + + it('returns the expected value when the mid point is an existing ' + + 'coordinate', function() { + var flatCoordinates = [0, 1, 2, 3, 4, 5]; + var point = + ol.geom.flat.lineStringInterpolate(flatCoordinates, 0, 6, 2, 0.5); + expect(point).to.eql([2, 3]); + }); + + it('returns the expected value when the midpoint falls halfway between ' + + 'two existing coordinates', function() { + var flatCoordinates = [0, 1, 2, 3, 4, 5, 6, 7]; + var point = + ol.geom.flat.lineStringInterpolate(flatCoordinates, 0, 8, 2, 0.5); + expect(point).to.eql([3, 4]); + }); + + it('returns the expected value when the coordinates are not evenly spaced', + function() { + var flatCoordinates = [0, 1, 2, 3, 6, 7]; + var point = + ol.geom.flat.lineStringInterpolate(flatCoordinates, 0, 6, 2, 0.5); + expect(point).to.eql([3, 4]); + }); + + }); + describe('ol.geom.flat.linearRingIsClockwise', function() { it('identifies clockwise rings', function() { From 3f49a4ce734bd3dbac3f52b8a8b663b05ec729c5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 26 Nov 2013 18:58:19 +0100 Subject: [PATCH 428/919] Add ol.geom.LineString#getLength --- src/ol/geom/linestring.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 6fde2a37e7..0a76be1014 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -27,6 +27,15 @@ ol.geom.LineString.prototype.getCoordinates = function() { }; +/** + * @return {number} Length. + */ +ol.geom.LineString.prototype.getLength = function() { + return ol.geom.flat.lineStringLength( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride); +}; + + /** * @inheritDoc */ From 984cac3832d00a97a303723ad667418efebbf532 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 17:15:12 +0100 Subject: [PATCH 429/919] Add ol.geom.MultiPoint#getPoints --- src/ol/geom/multipoint.exports | 1 + src/ol/geom/multipoint.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/ol/geom/multipoint.exports b/src/ol/geom/multipoint.exports index 20acd445c6..eb89fe7d5d 100644 --- a/src/ol/geom/multipoint.exports +++ b/src/ol/geom/multipoint.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.MultiPoint @exportProperty ol.geom.MultiPoint.prototype.getCoordinates +@exportProperty ol.geom.MultiPoint.prototype.getPoints @exportProperty ol.geom.MultiPoint.prototype.getType @exportProperty ol.geom.MultiPoint.prototype.setCoordinates diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index 019c203c07..930ae9041d 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.MultiPoint'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.Point'); goog.require('ol.geom.flat'); @@ -27,6 +28,21 @@ ol.geom.MultiPoint.prototype.getCoordinates = function() { }; +/** + * @return {Array.} Points. + */ +ol.geom.MultiPoint.prototype.getPoints = function() { + // FIXME we should construct the points from the flat coordinates + var coordinates = this.getCoordinates(); + var points = []; + var i, ii; + for (i = 0, ii = coordinates.length; i < ii; ++i) { + points.push(new ol.geom.Point(coordinates[i])); + } + return points; +}; + + /** * @inheritDoc */ From 2caf6307d481ab8d4211895b357925540b34e007 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 17:15:40 +0100 Subject: [PATCH 430/919] Add ol.geom.MultiLineString#getLineStrings --- src/ol/geom/multilinestring.exports | 1 + src/ol/geom/multilinestring.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/ol/geom/multilinestring.exports b/src/ol/geom/multilinestring.exports index 56b51e66f7..6cea01324c 100644 --- a/src/ol/geom/multilinestring.exports +++ b/src/ol/geom/multilinestring.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.MultiLineString @exportProperty ol.geom.MultiLineString.prototype.getCoordinates +@exportProperty ol.geom.MultiLineString.prototype.getLineStrings @exportProperty ol.geom.MultiLineString.prototype.getType @exportProperty ol.geom.MultiLineString.prototype.setCoordinates diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 4fe59e2688..8611641d02 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.MultiLineString'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.LineString'); goog.require('ol.geom.flat'); @@ -44,6 +45,21 @@ ol.geom.MultiLineString.prototype.getEnds = function() { }; +/** + * @return {Array.} LineStrings. + */ +ol.geom.MultiLineString.prototype.getLineStrings = function() { + // FIXME we should construct the line strings from the flat coordinates + var coordinates = this.getCoordinates(); + var lineStrings = []; + var i, ii; + for (i = 0, ii = coordinates.length; i < ii; ++i) { + lineStrings.push(new ol.geom.LineString(coordinates[i])); + } + return lineStrings; +}; + + /** * @inheritDoc */ From 6dab67df75b7f80607181c5222b33888f2fa3839 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 17:16:14 +0100 Subject: [PATCH 431/919] Add ol.geom.MultiPolygon#getPolygons --- src/ol/geom/multipolygon.exports | 1 + src/ol/geom/multipolygon.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/ol/geom/multipolygon.exports b/src/ol/geom/multipolygon.exports index 8bffb1d690..a72bad1bb5 100644 --- a/src/ol/geom/multipolygon.exports +++ b/src/ol/geom/multipolygon.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.MultiPolygon @exportProperty ol.geom.MultiPolygon.prototype.getCoordinates +@exportProperty ol.geom.MultiPolygon.prototype.getPolygons @exportProperty ol.geom.MultiPolygon.prototype.getType @exportProperty ol.geom.MultiPolygon.prototype.setCoordinates diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index e2aa94c49e..6249ac779c 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.MultiPolygon'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.Polygon'); goog.require('ol.geom.flat'); @@ -53,6 +54,21 @@ ol.geom.MultiPolygon.prototype.getEndss = function() { }; +/** + * @return {Array.} Polygons. + */ +ol.geom.MultiPolygon.prototype.getPolygons = function() { + // FIXME we should construct the polygons directly from the flat coordinates + var coordinates = this.getCoordinates(); + var polygons = []; + var i, ii; + for (i = 0, ii = coordinates.length; i < ii; ++i) { + polygons.push(new ol.geom.Polygon(coordinates[i])); + } + return polygons; +}; + + /** * @inheritDoc */ From e7bf44688de9dc8e830f417baa5fdb5540a20fbf Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 17:46:03 +0100 Subject: [PATCH 432/919] Add ol.geom.flat.linearRingsGetInteriorPoint --- src/ol/geom/flatgeom.js | 62 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 839bf32307..fe62309acf 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -326,6 +326,68 @@ ol.geom.flat.linearRingsContainsXY = }; +/** + * Calculates a point that is guaranteed to lie in the interior of the linear + * rings. + * Inspired by JTS's com.vividsolutions.jts.geom.Geometry#getInteriorPoint. + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @param {number} y Y. + * @param {Array.=} opt_point Point. + * @return {Array.} A point which is in the interior of the linear + * rings. + */ +ol.geom.flat.linearRingsGetInteriorPoint = + function(flatCoordinates, offset, ends, stride, y, opt_point) { + var i, ii, x, x1, x2, y1, y2; + var intersections = []; + // Calculate intersections with the horizontal line + var end = ends[0]; + x1 = flatCoordinates[end - stride]; + y1 = flatCoordinates[end - stride + 1]; + for (i = offset; i < end; i += stride) { + x2 = flatCoordinates[i]; + y2 = flatCoordinates[i + 1]; + if ((y <= y1 && y2 <= y) || (y1 <= y && y <= y2)) { + x = (y - y1) / (y2 - y1) * (x2 - x1) + x1; + intersections.push(x); + } + x1 = x2; + y1 = y2; + } + // Find the longest segment of the horizontal line that has its center point + // inside the polygon + var point; + if (goog.isDef(opt_point)) { + point = opt_point; + point[0] = NaN; + point[1] = y; + } else { + point = [NaN, y]; + } + var maxSegmentLength = -Infinity; + intersections.sort(); + x1 = intersections[0]; + for (i = 1, ii = intersections.length; i < ii; ++i) { + x2 = intersections[i]; + var segmentLength = Math.abs(x2 - x1); + if (segmentLength > maxSegmentLength) { + x = (x1 + x2) / 2; + if (ol.geom.flat.linearRingsContainsXY( + flatCoordinates, offset, ends, stride, x, y)) { + point[0] = x; + maxSegmentLength = segmentLength; + } + } + x1 = x2; + } + goog.asserts.assert(!isNaN(point[0])); + return point; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From 3d35ce75e4e0607caaaf09c48ddf1365a501fba4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 17:48:05 +0100 Subject: [PATCH 433/919] Add ol.geom.Polygon#getInteriorPoint --- src/ol/geom/polygon.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index a227b986c4..b361fd7f34 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -54,6 +54,17 @@ ol.geom.Polygon.prototype.getEnds = function() { }; +/** + * @return {ol.Coordinate} Interior point. + */ +ol.geom.Polygon.prototype.getInteriorPoint = function() { + var extent = this.getExtent(); + var y = (extent[1] + extent[3]) / 2; + return ol.geom.flat.linearRingsGetInteriorPoint( + this.flatCoordinates, 0, this.ends_, this.stride, y); +}; + + /** * @return {Array.} Linear rings. */ From a466aa3d71a33ac7f81dc8864dfc1568d3e18664 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 17:59:48 +0100 Subject: [PATCH 434/919] Sort functions alphabetically --- src/ol/geom/flatgeom.js | 46 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index fe62309acf..f39a7fc743 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -144,29 +144,6 @@ ol.geom.flat.inflateCoordinatesss = }; -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {number} end End. - * @param {number} stride Stride. - * @return {number} Length. - */ -ol.geom.flat.lineStringLength = function(flatCoordinates, offset, end, stride) { - var x1 = flatCoordinates[offset]; - var y1 = flatCoordinates[offset + 1]; - var length = 0; - var i; - for (i = offset + stride; i < end; i += stride) { - var x2 = flatCoordinates[i]; - var y2 = flatCoordinates[i + 1]; - length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); - x1 = x2; - y1 = y2; - } - return length; -}; - - /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. @@ -223,6 +200,29 @@ ol.geom.flat.lineStringInterpolate = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @return {number} Length. + */ +ol.geom.flat.lineStringLength = function(flatCoordinates, offset, end, stride) { + var x1 = flatCoordinates[offset]; + var y1 = flatCoordinates[offset + 1]; + var length = 0; + var i; + for (i = offset + stride; i < end; i += stride) { + var x2 = flatCoordinates[i]; + var y2 = flatCoordinates[i + 1]; + length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); + x1 = x2; + y1 = y2; + } + return length; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From a1b1483d3e89eb6bc213b049cd13d7b07ac6c0b5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 18:20:14 +0100 Subject: [PATCH 435/919] Add ol.geom.flat.linearRingssMidYs --- src/ol/geom/flatgeom.js | 63 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index f39a7fc743..9cfab1b0a3 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -278,6 +278,25 @@ ol.geom.flat.linearRingIsClockwise = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @return {number} Mid Y. + */ +ol.geom.flat.linearRingMidY = function(flatCoordinates, offset, end, stride) { + var minY = Infinity; + var maxY = -Infinity; + for (; offset < end; offset += stride) { + var y = flatCoordinates[offset + 1]; + minY = Math.min(minY, y); + maxY = Math.max(maxY, y); + } + return (minY + maxY) / 2; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. @@ -416,6 +435,50 @@ ol.geom.flat.linearRingssContainsXY = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @param {Array.} ys Ys. + * @return {Array.} Mid Ys. + */ +ol.geom.flat.linearRingssGetInteriorPoints = + function(flatCoordinates, offset, endss, stride, ys) { + goog.asserts.assert(endss.length == ys.length); + var points = []; + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + points.push(ol.geom.flat.linearRingsGetInteriorPoint( + flatCoordinates, offset, ends, stride, ys[i])); + offset = ends[ends.length - 1]; + } + return points; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @return {Array.} Mid Ys. + */ +ol.geom.flat.linearRingssMidYs = + function(flatCoordinates, offset, endss, stride) { + var midYs = []; + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + midYs.push( + ol.geom.flat.linearRingMidY(flatCoordinates, offset, ends[0], stride)); + offset = ends[ends.length - 1]; + } + return midYs; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From c0a50ce24bca7361510e92848ae03630f8f7e3da Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 18:20:48 +0100 Subject: [PATCH 436/919] Add ol.geom.MultiPolygon#getInteriorPoints --- src/ol/geom/multipolygon.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 6249ac779c..eca4120f3c 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -54,6 +54,17 @@ ol.geom.MultiPolygon.prototype.getEndss = function() { }; +/** + * @return {Array.} Interior points. + */ +ol.geom.MultiPolygon.prototype.getInteriorPoints = function() { + var ys = ol.geom.flat.linearRingssMidYs( + this.flatCoordinates, 0, this.endss_, this.stride); + return ol.geom.flat.linearRingssGetInteriorPoints( + this.flatCoordinates, 0, this.endss_, this.stride, ys); +}; + + /** * @return {Array.} Polygons. */ From 72df83251dfcdfd957e69de7910e52d7ad149afa Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 18:29:45 +0100 Subject: [PATCH 437/919] Cache ol.geom.Polygon interior point --- src/ol/geom/polygon.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index b361fd7f34..7f2b1430d3 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -22,6 +22,18 @@ ol.geom.Polygon = function(coordinates, opt_layout) { */ this.ends_ = []; + /** + * @private + * @type {number} + */ + this.interiorPointRevision_ = -1; + + /** + * @private + * @type {ol.Coordinate} + */ + this.interiorPoint_ = null; + this.setCoordinates(coordinates, opt_layout); }; @@ -58,10 +70,14 @@ ol.geom.Polygon.prototype.getEnds = function() { * @return {ol.Coordinate} Interior point. */ ol.geom.Polygon.prototype.getInteriorPoint = function() { - var extent = this.getExtent(); - var y = (extent[1] + extent[3]) / 2; - return ol.geom.flat.linearRingsGetInteriorPoint( - this.flatCoordinates, 0, this.ends_, this.stride, y); + if (this.interiorPointRevision_ != this.revision) { + var extent = this.getExtent(); + var y = (extent[1] + extent[3]) / 2; + this.interiorPoint_ = ol.geom.flat.linearRingsGetInteriorPoint( + this.flatCoordinates, 0, this.ends_, this.stride, y); + this.interiorPointRevision_ = this.revision; + } + return this.interiorPoint_; }; From dd1e0c616a99ebc8e7bf792f2a771a488a0296c7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 18:30:07 +0100 Subject: [PATCH 438/919] Cache ol.geom.MultiPolygon interior points --- src/ol/geom/multipolygon.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index eca4120f3c..186e5ac2c2 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -22,6 +22,18 @@ ol.geom.MultiPolygon = function(coordinates, opt_layout) { */ this.endss_ = []; + /** + * @private + * @type {number} + */ + this.interiorPointsRevision_ = -1; + + /** + * @private + * @type {Array.} + */ + this.interiorPoints_ = null; + this.setCoordinates(coordinates, opt_layout); }; @@ -58,10 +70,14 @@ ol.geom.MultiPolygon.prototype.getEndss = function() { * @return {Array.} Interior points. */ ol.geom.MultiPolygon.prototype.getInteriorPoints = function() { - var ys = ol.geom.flat.linearRingssMidYs( - this.flatCoordinates, 0, this.endss_, this.stride); - return ol.geom.flat.linearRingssGetInteriorPoints( - this.flatCoordinates, 0, this.endss_, this.stride, ys); + if (this.interiorPointsRevision_ != this.revision) { + var ys = ol.geom.flat.linearRingssMidYs( + this.flatCoordinates, 0, this.endss_, this.stride); + this.interiorPoints_ = ol.geom.flat.linearRingssGetInteriorPoints( + this.flatCoordinates, 0, this.endss_, this.stride, ys); + this.interiorPointsRevision_ = this.revision; + } + return this.interiorPoints_; }; From b3473c3cba8797854e84d2e2cd3b2a9688d34387 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 09:07:55 +0100 Subject: [PATCH 439/919] Add ol.geom.flat.flipXY --- src/ol/geom/flatgeom.js | 34 ++++++++++++++++++++++++++++++ test/spec/ol/geom/flatgeom.test.js | 31 +++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 9cfab1b0a3..4add38c2d8 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -74,6 +74,40 @@ ol.geom.flat.deflateCoordinatesss = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {Array.=} opt_dest Destination. + * @param {number=} opt_destOffset Destination offset. + * @return {Array.} Flat coordinates. + */ +ol.geom.flat.flipXY = + function(flatCoordinates, offset, end, stride, opt_dest, opt_destOffset) { + var dest, destOffset; + if (goog.isDef(opt_dest)) { + dest = opt_dest; + destOffset = goog.isDef(opt_destOffset) ? opt_destOffset : 0; + } else { + goog.asserts.assert(!goog.isDef(opt_destOffset)); + dest = []; + destOffset = 0; + } + var j, k; + for (j = offset; j < end; ) { + var x = flatCoordinates[j++]; + dest[destOffset++] = flatCoordinates[j++]; + dest[destOffset++] = x; + for (k = 2; k < stride; ++k) { + dest[destOffset++] = flatCoordinates[j++]; + } + } + dest.length = destOffset; + return dest; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/test/spec/ol/geom/flatgeom.test.js b/test/spec/ol/geom/flatgeom.test.js index 25728c75f4..03ede2b5db 100644 --- a/test/spec/ol/geom/flatgeom.test.js +++ b/test/spec/ol/geom/flatgeom.test.js @@ -44,6 +44,37 @@ describe('ol.geom.flat', function() { }); + describe('ol.geom.flat.flipXY', function() { + + it('can flip XY coordinates', function() { + var flatCoordinates = ol.geom.flat.flipXY([1, 2, 3, 4], 0, 4, 2); + expect(flatCoordinates).to.eql([2, 1, 4, 3]); + }); + + it('can flip XY coordinates while preserving other dimensions', function() { + var flatCoordinates = ol.geom.flat.flipXY( + [1, 2, 3, 4, 5, 6, 7, 8], 0, 8, 4); + expect(flatCoordinates).to.eql([2, 1, 3, 4, 6, 5, 7, 8]); + }); + + it('can flip XY coordinates in place', function() { + var flatCoordinates = [1, 2, 3, 4]; + expect(ol.geom.flat.flipXY(flatCoordinates, 0, 4, 2, flatCoordinates)). + to.be(flatCoordinates); + expect(flatCoordinates).to.eql([2, 1, 4, 3]); + }); + + it('can flip XY coordinates in place while preserving other dimensions', + function() { + var flatCoordinates = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + expect(ol.geom.flat.flipXY( + flatCoordinates, 0, 9, 3, flatCoordinates)). + to.be(flatCoordinates); + expect(flatCoordinates).to.eql([2, 1, 3, 5, 4, 6, 8, 7, 9]); + }); + + }); + describe('ol.geom.flat.inflateCoordinatess', function() { it('inflates arrays of coordinates', function() { From 1cb56d02acf8e3ed7dc4980a89bf13a4112eacde Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:20:55 +0100 Subject: [PATCH 440/919] Add ol.vec.Mat4.makeTransform2D --- src/ol/vec/mat4.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/ol/vec/mat4.js b/src/ol/vec/mat4.js index 108369bf1d..312dbeb040 100644 --- a/src/ol/vec/mat4.js +++ b/src/ol/vec/mat4.js @@ -3,6 +3,36 @@ goog.provide('ol.vec.Mat4'); goog.require('goog.vec.Mat4'); +/** + * @param {!goog.vec.Mat4.Number} mat Matrix. + * @param {number} translateX1 Translate X1. + * @param {number} translateY1 Translate Y1. + * @param {number} scaleX Scale X. + * @param {number} scaleY Scale Y. + * @param {number} rotation Rotation. + * @param {number} translateX2 Translate X2. + * @param {number} translateY2 Translate Y2. + * @return {!goog.vec.Mat4.Number} Matrix. + */ +ol.vec.Mat4.makeTransform2D = function(mat, translateX1, translateY1, + scaleX, scaleY, rotation, translateX2, translateY2) { + goog.vec.Mat4.makeIdentity(mat); + if (translateX1 !== 0 || translateY1 !== 0) { + goog.vec.Mat4.translate(mat, translateX1, translateY1, 0); + } + if (scaleX != 1 || scaleY != 1) { + goog.vec.Mat4.scale(mat, scaleX, scaleY, 1); + } + if (rotation !== 0) { + goog.vec.Mat4.rotateZ(mat, rotation); + } + if (translateX2 !== 0 || translateY2 !== 0) { + goog.vec.Mat4.translate(mat, translateX2, translateY2, 0); + } + return mat; +}; + + /** * Returns true if mat1 and mat2 represent the same 2D transformation. * @param {goog.vec.Mat4.AnyType} mat1 Matrix 1. From 36fee8013a8702bc2f7d315c1c9bf0a06e6ab09f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:21:22 +0100 Subject: [PATCH 441/919] Use ol.vec.Mat4.makeTransform2D in ol.renderer.canvas.ImageLayer --- .../canvas/canvasimagelayerrenderer.js | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index bd367c102d..7707b9650f 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -9,6 +9,7 @@ goog.require('ol.ViewHint'); goog.require('ol.layer.Image'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.canvas.Layer'); +goog.require('ol.vec.Mat4'); @@ -98,26 +99,16 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame = if (!goog.isNull(this.image_)) { image = this.image_; - var imageExtent = image.getExtent(); var imageResolution = image.getResolution(); - var imageTransform = this.imageTransform_; - goog.vec.Mat4.makeIdentity(imageTransform); - goog.vec.Mat4.translate(imageTransform, - frameState.size[0] / 2, frameState.size[1] / 2, 0); - goog.vec.Mat4.rotateZ(imageTransform, viewRotation); - goog.vec.Mat4.scale( - imageTransform, - imageResolution / viewResolution, - imageResolution / viewResolution, - 1); - goog.vec.Mat4.translate( - imageTransform, + ol.vec.Mat4.makeTransform2D(this.imageTransform_, + frameState.size[0] / 2, frameState.size[1] / 2, + imageResolution / viewResolution, imageResolution / viewResolution, + viewRotation, (imageExtent[0] - viewCenter[0]) / imageResolution, - (viewCenter[1] - imageExtent[3]) / imageResolution, - 0); - + (viewCenter[1] - imageExtent[3]) / imageResolution); this.updateAttributions(frameState.attributions, image.getAttributions()); this.updateLogos(frameState, imageSource); } + }; From 5e5fc852388d86fae5e9b5ee2449c00cc0b51af8 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:21:43 +0100 Subject: [PATCH 442/919] Use ol.vec.Mat4.makeTransform2D in ol.renderer.canvas.Layer --- src/ol/renderer/canvas/canvaslayerrenderer.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index de3ef3a961..7485e3f05a 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -6,6 +6,7 @@ goog.require('ol.render.Event'); goog.require('ol.render.EventType'); goog.require('ol.render.canvas.Immediate'); goog.require('ol.renderer.Layer'); +goog.require('ol.vec.Mat4'); @@ -138,15 +139,9 @@ ol.renderer.canvas.Layer.prototype.getImageTransform = goog.abstractMethod; */ ol.renderer.canvas.Layer.prototype.getTransform = function(frameState) { var view2DState = frameState.view2DState; - var center = view2DState.center; - var resolution = view2DState.resolution; - var rotation = view2DState.rotation; - var size = frameState.size; - var transform = this.transform_; - goog.vec.Mat4.makeIdentity(transform); - goog.vec.Mat4.translate(transform, size[0] / 2, size[1] / 2, 0); - goog.vec.Mat4.scale(transform, 1 / resolution, -1 / resolution, 1); - goog.vec.Mat4.rotateZ(transform, -rotation); - goog.vec.Mat4.translate(transform, -center[0], -center[1], 0); - return transform; + return ol.vec.Mat4.makeTransform2D(this.transform_, + frameState.size[0] / 2, frameState.size[1] / 2, + 1 / view2DState.resolution, -1 / view2DState.resolution, + -view2DState.rotation, + -view2DState.center[0], -view2DState.center[1]); }; From bf08e6afe3812d482b27ca75139947799dd88cfe Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:22:01 +0100 Subject: [PATCH 443/919] Use ol.vec.Mat4.makeTransform2D in ol.renderer.canvas.TileLayer --- .../renderer/canvas/canvastilelayerrenderer.js | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/ol/renderer/canvas/canvastilelayerrenderer.js b/src/ol/renderer/canvas/canvastilelayerrenderer.js index 0d7060ec4f..ccf6a7f4d0 100644 --- a/src/ol/renderer/canvas/canvastilelayerrenderer.js +++ b/src/ol/renderer/canvas/canvastilelayerrenderer.js @@ -18,6 +18,7 @@ goog.require('ol.extent'); goog.require('ol.layer.Tile'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.canvas.Layer'); +goog.require('ol.vec.Mat4'); @@ -382,20 +383,12 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = this.scheduleExpireCache(frameState, tileSource); this.updateLogos(frameState, tileSource); - var imageTransform = this.imageTransform_; - goog.vec.Mat4.makeIdentity(imageTransform); - goog.vec.Mat4.translate(imageTransform, - frameState.size[0] / 2, frameState.size[1] / 2, 0); - goog.vec.Mat4.rotateZ(imageTransform, view2DState.rotation); - goog.vec.Mat4.scale( - imageTransform, + ol.vec.Mat4.makeTransform2D(this.imageTransform_, + frameState.size[0] / 2, frameState.size[1] / 2, tileResolution / view2DState.resolution, tileResolution / view2DState.resolution, - 1); - goog.vec.Mat4.translate( - imageTransform, + view2DState.rotation, (origin[0] - center[0]) / tileResolution, - (center[1] - origin[1]) / tileResolution, - 0); + (center[1] - origin[1]) / tileResolution); }; From 432a8d2e1959c775e827c72a2ae77f0c0afd39ba Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:22:15 +0100 Subject: [PATCH 444/919] Use ol.vec.Mat4.makeTransform2D in ol.renderer.dom.ImageLayer --- src/ol/renderer/dom/domimagelayerrenderer.js | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/ol/renderer/dom/domimagelayerrenderer.js b/src/ol/renderer/dom/domimagelayerrenderer.js index c215890ff2..5649b94164 100644 --- a/src/ol/renderer/dom/domimagelayerrenderer.js +++ b/src/ol/renderer/dom/domimagelayerrenderer.js @@ -11,6 +11,7 @@ goog.require('ol.ViewHint'); goog.require('ol.dom'); goog.require('ol.layer.Image'); goog.require('ol.renderer.dom.Layer'); +goog.require('ol.vec.Mat4'); @@ -88,20 +89,12 @@ ol.renderer.dom.ImageLayer.prototype.prepareFrame = var imageExtent = image.getExtent(); var imageResolution = image.getResolution(); var transform = goog.vec.Mat4.createNumber(); - goog.vec.Mat4.makeIdentity(transform); - goog.vec.Mat4.translate(transform, - frameState.size[0] / 2, frameState.size[1] / 2, 0); - goog.vec.Mat4.rotateZ(transform, viewRotation); - goog.vec.Mat4.scale( - transform, - imageResolution / viewResolution, - imageResolution / viewResolution, - 1); - goog.vec.Mat4.translate( - transform, + ol.vec.Mat4.makeTransform2D(transform, + frameState.size[0] / 2, frameState.size[1] / 2, + imageResolution / viewResolution, imageResolution / viewResolution, + viewRotation, (imageExtent[0] - viewCenter[0]) / imageResolution, - (viewCenter[1] - imageExtent[3]) / imageResolution, - 0); + (viewCenter[1] - imageExtent[3]) / imageResolution); if (image != this.image_) { var imageElement = image.getImageElement(this); // Bootstrap sets the style max-width: 100% for all images, which breaks @@ -114,7 +107,6 @@ ol.renderer.dom.ImageLayer.prototype.prepareFrame = this.image_ = image; } this.setTransform_(transform); - this.updateAttributions(frameState.attributions, image.getAttributions()); this.updateLogos(frameState, imageSource); } From 6b96cf4ed58594815c5b6395576b7c903679bb5b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:23:03 +0100 Subject: [PATCH 445/919] Use ol.vec.Mat4.makeTransform2D in ol.renderer.dom.TileLayer --- src/ol/renderer/dom/domtilelayerrenderer.js | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/ol/renderer/dom/domtilelayerrenderer.js b/src/ol/renderer/dom/domtilelayerrenderer.js index bb37352bd8..ed81826fe0 100644 --- a/src/ol/renderer/dom/domtilelayerrenderer.js +++ b/src/ol/renderer/dom/domtilelayerrenderer.js @@ -21,6 +21,7 @@ goog.require('ol.extent'); goog.require('ol.layer.Tile'); goog.require('ol.renderer.dom.Layer'); goog.require('ol.tilegrid.TileGrid'); +goog.require('ol.vec.Mat4'); @@ -207,17 +208,13 @@ ol.renderer.dom.TileLayer.prototype.prepareFrame = } resolution = tileLayerZ.getResolution(); origin = tileLayerZ.getOrigin(); - goog.vec.Mat4.makeIdentity(transform); - goog.vec.Mat4.translate( - transform, frameState.size[0] / 2, frameState.size[1] / 2, 0); - goog.vec.Mat4.rotateZ(transform, view2DState.rotation); - goog.vec.Mat4.scale(transform, resolution / view2DState.resolution, - resolution / view2DState.resolution, 1); - goog.vec.Mat4.translate( - transform, + ol.vec.Mat4.makeTransform2D(transform, + frameState.size[0] / 2, frameState.size[1] / 2, + resolution / view2DState.resolution, + resolution / view2DState.resolution, + view2DState.rotation, (origin[0] - center[0]) / resolution, - (center[1] - origin[1]) / resolution, - 0); + (center[1] - origin[1]) / resolution); tileLayerZ.setTransform(transform); if (tileLayerZKey in newTileLayerZKeys) { for (j = tileLayerZKey - 1; j >= 0; --j) { From 20bd020c13df3b406fc11a01b61a61d15434f2b5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:23:23 +0100 Subject: [PATCH 446/919] Use ol.vec.Mat4.makeTransform2D in ol.renderer.Map --- src/ol/renderer/maprenderer.js | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index c6d96d5dc4..49ec3edb5c 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -8,6 +8,7 @@ goog.require('goog.vec.Mat4'); goog.require('ol.FrameState'); goog.require('ol.layer.Layer'); goog.require('ol.renderer.Layer'); +goog.require('ol.vec.Mat4'); @@ -42,30 +43,17 @@ goog.inherits(ol.renderer.Map, goog.Disposable); * @protected */ ol.renderer.Map.prototype.calculateMatrices2D = function(frameState) { - var view2DState = frameState.view2DState; var coordinateToPixelMatrix = frameState.coordinateToPixelMatrix; - - goog.vec.Mat4.makeIdentity(coordinateToPixelMatrix); - goog.vec.Mat4.translate(coordinateToPixelMatrix, - frameState.size[0] / 2, - frameState.size[1] / 2, - 0); - goog.vec.Mat4.scale(coordinateToPixelMatrix, - 1 / view2DState.resolution, - -1 / view2DState.resolution, - 1); - goog.vec.Mat4.rotateZ(coordinateToPixelMatrix, - -view2DState.rotation); - goog.vec.Mat4.translate(coordinateToPixelMatrix, - -view2DState.center[0], - -view2DState.center[1], - 0); - + goog.asserts.assert(!goog.isNull(coordinateToPixelMatrix)); + ol.vec.Mat4.makeTransform2D(coordinateToPixelMatrix, + frameState.size[0] / 2, frameState.size[1] / 2, + 1 / view2DState.resolution, -1 / view2DState.resolution, + -view2DState.rotation, + -view2DState.center[0], -view2DState.center[1]); var inverted = goog.vec.Mat4.invert( coordinateToPixelMatrix, frameState.pixelToCoordinateMatrix); goog.asserts.assert(inverted); - }; From 2ba5cf616754939f63192da0683fa9df966b9ee1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:24:17 +0100 Subject: [PATCH 447/919] Use ol.vec.Mat4.makeTransform2D in ol.renderer.webgl.TileLayer --- src/ol/renderer/webgl/webgltilelayerrenderer.js | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/ol/renderer/webgl/webgltilelayerrenderer.js b/src/ol/renderer/webgl/webgltilelayerrenderer.js index 64ba9be41e..5db387cbde 100644 --- a/src/ol/renderer/webgl/webgltilelayerrenderer.js +++ b/src/ol/renderer/webgl/webgltilelayerrenderer.js @@ -5,7 +5,6 @@ goog.provide('ol.renderer.webgl.TileLayer'); goog.require('goog.array'); goog.require('goog.object'); -goog.require('goog.vec.Mat4'); goog.require('goog.vec.Vec4'); goog.require('goog.webgl'); goog.require('ol.Tile'); @@ -17,6 +16,7 @@ goog.require('ol.math'); goog.require('ol.renderer.webgl.Layer'); goog.require('ol.renderer.webgl.tilelayer.shader'); goog.require('ol.structs.Buffer'); +goog.require('ol.vec.Mat4'); @@ -297,24 +297,16 @@ ol.renderer.webgl.TileLayer.prototype.prepareFrame = this.scheduleExpireCache(frameState, tileSource); this.updateLogos(frameState, tileSource); - var texCoordMatrix = this.texCoordMatrix; - goog.vec.Mat4.makeIdentity(texCoordMatrix); - goog.vec.Mat4.translate(texCoordMatrix, + ol.vec.Mat4.makeTransform2D(this.texCoordMatrix, (center[0] - framebufferExtent[0]) / (framebufferExtent[2] - framebufferExtent[0]), (center[1] - framebufferExtent[1]) / (framebufferExtent[3] - framebufferExtent[1]), - 0); - goog.vec.Mat4.rotateZ(texCoordMatrix, view2DState.rotation); - goog.vec.Mat4.scale(texCoordMatrix, frameState.size[0] * view2DState.resolution / (framebufferExtent[2] - framebufferExtent[0]), frameState.size[1] * view2DState.resolution / (framebufferExtent[3] - framebufferExtent[1]), - 1); - goog.vec.Mat4.translate(texCoordMatrix, - -0.5, - -0.5, - 0); + view2DState.rotation, + -0.5, -0.5); }; From 3ab00704d85730fff1247ec244339b9ae5b967e9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:42:28 +0100 Subject: [PATCH 448/919] Rename ol.vec.Mat4.equal2D to ol.vec.Mat4.equals2D --- src/ol/render/canvas/canvasreplay.js | 2 +- src/ol/vec/mat4.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index ed8360f865..e8919964e4 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -122,7 +122,7 @@ ol.render.canvas.Replay.prototype.replay = function(context, transform, renderGeometryFunction) { /** @type {Array.} */ var pixelCoordinates; - if (ol.vec.Mat4.equal2D(transform, this.renderedTransform_)) { + if (ol.vec.Mat4.equals2D(transform, this.renderedTransform_)) { pixelCoordinates = this.pixelCoordinates_; } else { pixelCoordinates = ol.geom.flat.transform2D( diff --git a/src/ol/vec/mat4.js b/src/ol/vec/mat4.js index 312dbeb040..cc34b469ac 100644 --- a/src/ol/vec/mat4.js +++ b/src/ol/vec/mat4.js @@ -39,7 +39,7 @@ ol.vec.Mat4.makeTransform2D = function(mat, translateX1, translateY1, * @param {goog.vec.Mat4.AnyType} mat2 Matrix 2. * @return {boolean} Equal 2D. */ -ol.vec.Mat4.equal2D = function(mat1, mat2) { +ol.vec.Mat4.equals2D = function(mat1, mat2) { return ( goog.vec.Mat4.getElement(mat1, 0, 0) == goog.vec.Mat4.getElement(mat2, 0, 0) && From e1305b461432ad254f6b72a1f2abd3835465de75 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:43:56 +0100 Subject: [PATCH 449/919] Use ol.vec.Mat4.equals2D in ol.renderer.dom.ImageLayer --- src/ol/renderer/dom/domimagelayerrenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/renderer/dom/domimagelayerrenderer.js b/src/ol/renderer/dom/domimagelayerrenderer.js index 5649b94164..56a78c6d36 100644 --- a/src/ol/renderer/dom/domimagelayerrenderer.js +++ b/src/ol/renderer/dom/domimagelayerrenderer.js @@ -119,7 +119,7 @@ ol.renderer.dom.ImageLayer.prototype.prepareFrame = * @private */ ol.renderer.dom.ImageLayer.prototype.setTransform_ = function(transform) { - if (!goog.vec.Mat4.equals(transform, this.transform_)) { + if (!ol.vec.Mat4.equals2D(transform, this.transform_)) { ol.dom.transformElement2D(this.target, transform, 6); goog.vec.Mat4.setFromArray(this.transform_, transform); } From 44a28e3c169b652d46addab8e715caf64ce7af65 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 1 Dec 2013 21:44:05 +0100 Subject: [PATCH 450/919] Use ol.vec.Mat4.equals2D in ol.renderer.dom.TileLayer --- src/ol/renderer/dom/domtilelayerrenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/renderer/dom/domtilelayerrenderer.js b/src/ol/renderer/dom/domtilelayerrenderer.js index ed81826fe0..fd88d8cdd9 100644 --- a/src/ol/renderer/dom/domtilelayerrenderer.js +++ b/src/ol/renderer/dom/domtilelayerrenderer.js @@ -403,7 +403,7 @@ ol.renderer.dom.TileLayerZ_.prototype.removeTilesOutsideExtent = * @param {goog.vec.Mat4.AnyType} transform Transform. */ ol.renderer.dom.TileLayerZ_.prototype.setTransform = function(transform) { - if (!goog.vec.Mat4.equals(transform, this.transform_)) { + if (!ol.vec.Mat4.equals2D(transform, this.transform_)) { ol.dom.transformElement2D(this.target, transform, 6); goog.vec.Mat4.setFromArray(this.transform_, transform); } From ffc357f4d4d1b4e567b9560b04c4084232e2c868 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 26 Nov 2013 09:07:22 +0100 Subject: [PATCH 451/919] Add text style default values --- src/ol/render/canvas/canvas.js | 18 ++++++++++++++++++ src/ol/render/canvas/canvasimmediate.js | 6 +++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/ol/render/canvas/canvas.js b/src/ol/render/canvas/canvas.js index d12b63f3dc..bf136ec0cd 100644 --- a/src/ol/render/canvas/canvas.js +++ b/src/ol/render/canvas/canvas.js @@ -3,6 +3,12 @@ goog.provide('ol.render.canvas'); goog.require('ol.color'); +/** + * @const {string} + */ +ol.render.canvas.defaultFont = '10px sans-serif'; + + /** * @const {ol.Color} */ @@ -39,6 +45,18 @@ ol.render.canvas.defaultMiterLimit = 10; ol.render.canvas.defaultStrokeStyle = ol.color.fromString('black'); +/** + * @const {string} + */ +ol.render.canvas.defaultTextAlign = 'start'; + + +/** + * @const {string} + */ +ol.render.canvas.defaultTextBaseline = 'alphabetic'; + + /** * @const {number} */ diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index ff6b3d3ceb..55d143e279 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -452,11 +452,11 @@ ol.render.canvas.Immediate.prototype.setTextStyle = function(textStyle) { if (!ol.style.Text.equals(state.textStyle, textStyle)) { if (goog.isDefAndNotNull(textStyle)) { context.font = goog.isDef(textStyle.font) ? - textStyle.font : '10px sans-serif'; + textStyle.font : ol.render.canvas.defaultFont; context.textAlign = goog.isDef(textStyle.textAlign) ? - textStyle.textAlign : 'start'; + textStyle.textAlign : ol.render.canvas.defaultTextAlign; context.textBaseline = goog.isDef(textStyle.textBaseline) ? - textStyle.textBaseline : 'alphabetic'; + textStyle.textBaseline : ol.render.canvas.defaultTextBaseline; } state.textStyle = textStyle; } From 287377c844f38bc858ddce1b430b41dfd3509698 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 2 Dec 2013 10:46:55 +0100 Subject: [PATCH 452/919] Remove Text from ol.render.ReplayType --- src/ol/render/ireplay.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ol/render/ireplay.js b/src/ol/render/ireplay.js index d5b2d94ad9..a30266ece5 100644 --- a/src/ol/render/ireplay.js +++ b/src/ol/render/ireplay.js @@ -10,8 +10,7 @@ goog.require('ol.render.IRender'); ol.render.ReplayType = { IMAGE: 'Image', LINE_STRING: 'LineString', - POLYGON: 'Polygon', - TEXT: 'Text' + POLYGON: 'Polygon' }; @@ -35,8 +34,7 @@ ol.render.IReplayGroup.prototype.finish = function() { * @param {ol.render.ReplayType} replayType Replay type. * @return {ol.render.IRender} Replay. */ -ol.render.IReplayGroup.prototype.getReplay = - function(zIndex, replayType) { +ol.render.IReplayGroup.prototype.getReplay = function(zIndex, replayType) { }; From 1bf2d94968e91ad8b45438457724a08395743d79 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 2 Dec 2013 10:55:37 +0100 Subject: [PATCH 453/919] Add rotation property to ol.style.Text --- src/objectliterals.jsdoc | 1 + src/ol/style/textstyle.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 347985800f..fee9e65855 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -657,6 +657,7 @@ /** * @typedef {Object} ol.style.TextOptions * @property {string|undefined} font Font. + * @property {number|undefined} rotation Rotation. * @property {string|undefined} text Text. * @property {string|undefined} textAlign Text alignment. * @property {string|undefined} textBaseline Text base line. diff --git a/src/ol/style/textstyle.js b/src/ol/style/textstyle.js index 8d50d1120c..028d41db81 100644 --- a/src/ol/style/textstyle.js +++ b/src/ol/style/textstyle.js @@ -13,6 +13,11 @@ ol.style.Text = function(options) { */ this.font = options.font; + /** + * @type {number|undefined} + */ + this.rotation = options.rotation; + /** * @type {string|undefined} */ From c36920774a87db6a06fd97c314b1f639bb29fc23 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 2 Dec 2013 11:05:24 +0100 Subject: [PATCH 454/919] Add fill and stroke properties to ol.style.Text --- src/objectliterals.jsdoc | 2 ++ src/ol/style/textstyle.js | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index fee9e65855..1762bbcb63 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -661,6 +661,8 @@ * @property {string|undefined} text Text. * @property {string|undefined} textAlign Text alignment. * @property {string|undefined} textBaseline Text base line. + * @property {ol.style.Fill|undefined} fill Fill style. + * @property {ol.style.Stroke|undefined} stroke Stroke style. * @todo stability experimental */ diff --git a/src/ol/style/textstyle.js b/src/ol/style/textstyle.js index 028d41db81..a3ce1038fb 100644 --- a/src/ol/style/textstyle.js +++ b/src/ol/style/textstyle.js @@ -32,6 +32,16 @@ ol.style.Text = function(options) { * @type {string|undefined} */ this.textBaseline = options.textBaseline; + + /** + * @type {ol.style.Fill} + */ + this.fill = goog.isDef(options.fill) ? options.fill : null; + + /** + * @type {ol.style.Stroke} + */ + this.stroke = goog.isDef(options.stroke) ? options.stroke : null; }; From c3378d0bd5c36ae115961f693bd8fb1ae84cb815 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 12:04:38 +0100 Subject: [PATCH 455/919] Order test cases alphabetically --- test/spec/ol/geom/flatgeom.test.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/test/spec/ol/geom/flatgeom.test.js b/test/spec/ol/geom/flatgeom.test.js index 03ede2b5db..0f1ca8ea77 100644 --- a/test/spec/ol/geom/flatgeom.test.js +++ b/test/spec/ol/geom/flatgeom.test.js @@ -35,15 +35,6 @@ describe('ol.geom.flat', function() { }); - describe('ol.geom.flat.inflateCoordinates', function() { - - it('inflates coordinates', function() { - var coordinates = ol.geom.flat.inflateCoordinates([1, 2, 3, 4], 0, 4, 2); - expect(coordinates).to.eql([[1, 2], [3, 4]]); - }); - - }); - describe('ol.geom.flat.flipXY', function() { it('can flip XY coordinates', function() { @@ -75,6 +66,15 @@ describe('ol.geom.flat', function() { }); + describe('ol.geom.flat.inflateCoordinates', function() { + + it('inflates coordinates', function() { + var coordinates = ol.geom.flat.inflateCoordinates([1, 2, 3, 4], 0, 4, 2); + expect(coordinates).to.eql([[1, 2], [3, 4]]); + }); + + }); + describe('ol.geom.flat.inflateCoordinatess', function() { it('inflates arrays of coordinates', function() { From f80cad531bb24c135b1b17fdca88e0f5b4cc9f27 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 12:05:04 +0100 Subject: [PATCH 456/919] Add ol.geom.flat.linearRingArea --- src/ol/geom/flatgeom.js | 22 ++++++++++++++++++++++ test/spec/ol/geom/flatgeom.test.js | 14 ++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 4add38c2d8..93913e83e0 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -257,6 +257,28 @@ ol.geom.flat.lineStringLength = function(flatCoordinates, offset, end, stride) { }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @return {number} Area. + */ +ol.geom.flat.linearRingArea = function(flatCoordinates, offset, end, stride) { + var twiceArea = 0; + var x1 = flatCoordinates[end - stride]; + var y1 = flatCoordinates[end - stride + 1]; + for (; offset < end; offset += stride) { + var x2 = flatCoordinates[offset]; + var y2 = flatCoordinates[offset + 1]; + twiceArea += x1 * y2 - y1 * x2; + x1 = x2; + y1 = y2; + } + return Math.abs(twiceArea / 2); +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/test/spec/ol/geom/flatgeom.test.js b/test/spec/ol/geom/flatgeom.test.js index 0f1ca8ea77..9d709d12dd 100644 --- a/test/spec/ol/geom/flatgeom.test.js +++ b/test/spec/ol/geom/flatgeom.test.js @@ -127,6 +127,20 @@ describe('ol.geom.flat', function() { }); + describe('ol.geom.flat.linearRingArea', function() { + + it('calcaultes the area of a triangle', function() { + var area = ol.geom.flat.linearRingArea([0, 0, 0.5, 1, 1, 0], 0, 6, 2); + expect(area).to.be(0.5); + }); + + it('calculates the area of a unit square', function() { + var area = ol.geom.flat.linearRingArea([0, 0, 0, 1, 1, 1, 1, 0], 0, 8, 2); + expect(area).to.be(1); + }); + + }); + describe('ol.geom.flat.linearRingIsClockwise', function() { it('identifies clockwise rings', function() { From e90776a0998bdce4ea9226b05752b287f5d9c442 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 12:05:19 +0100 Subject: [PATCH 457/919] Add ol.geom.flat.linearRingsArea --- src/ol/geom/flatgeom.js | 25 +++++++++++++++++++++++++ test/spec/ol/geom/flatgeom.test.js | 10 ++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 93913e83e0..43215c08aa 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -371,6 +371,31 @@ ol.geom.flat.linearRingPerimeter = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @return {number} Area. + */ +ol.geom.flat.linearRingsArea = function(flatCoordinates, offset, ends, stride) { + var area = 0; + var i, ii; + for (i = 0, ii = ends.length; i < ii; ++i) { + var end = ends[i]; + var linearRingArea = + ol.geom.flat.linearRingArea(flatCoordinates, offset, end, stride); + if (i === 0) { + area += linearRingArea; + } else { + area -= linearRingArea; + } + offset = end; + } + return area; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/test/spec/ol/geom/flatgeom.test.js b/test/spec/ol/geom/flatgeom.test.js index 9d709d12dd..ce08820e21 100644 --- a/test/spec/ol/geom/flatgeom.test.js +++ b/test/spec/ol/geom/flatgeom.test.js @@ -159,6 +159,16 @@ describe('ol.geom.flat', function() { }); + describe('ol.geom.flat.linearRingsArea', function() { + + it('calculates the area with holes', function() { + var area = ol.geom.flat.linearRingsArea( + [0, 0, 0, 3, 3, 3, 3, 0, 1, 1, 1, 2, 2, 2, 2, 1], 0, [8, 16], 2); + expect(area).to.be(8); + }); + + }); + describe('ol.geom.flat.reverseCoordinates', function() { describe('with a stride of 2', function() { From ff1b039615e34dda7f045a60faddc1451fd40304 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 12:06:02 +0100 Subject: [PATCH 458/919] Add ol.geom.flat.linearRingssArea --- src/ol/geom/flatgeom.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 43215c08aa..462062426e 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -488,6 +488,26 @@ ol.geom.flat.linearRingsGetInteriorPoint = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @return {number} Area. + */ +ol.geom.flat.linearRingssArea = + function(flatCoordinates, offset, endss, stride) { + var area = 0; + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + area += ol.geom.flat.linearRingsArea(flatCoordinates, offset, ends, stride); + offset = ends[ends.length - 1]; + } + return area; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From bb294bf52f86d26e744c933823642d8667feb33b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 12:06:28 +0100 Subject: [PATCH 459/919] Add ol.geom.Polygon#getArea --- src/ol/geom/polygon.exports | 1 + src/ol/geom/polygon.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/src/ol/geom/polygon.exports b/src/ol/geom/polygon.exports index 64054f31e8..1b2fa4f0aa 100644 --- a/src/ol/geom/polygon.exports +++ b/src/ol/geom/polygon.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.Polygon +@exportProperty ol.geom.Polygon.prototype.getArea @exportProperty ol.geom.Polygon.prototype.getCoordinates @exportProperty ol.geom.Polygon.prototype.getLinearRings @exportProperty ol.geom.Polygon.prototype.getType diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 7f2b1430d3..2c4a732f4b 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -49,6 +49,15 @@ ol.geom.Polygon.prototype.containsXY = function(x, y) { }; +/** + * @return {number} Area. + */ +ol.geom.Polygon.prototype.getArea = function() { + return ol.geom.flat.linearRingsArea( + this.flatCoordinates, 0, this.ends_, this.stride); +}; + + /** * @return {ol.geom.RawPolygon} Coordinates. */ From 8852e3198c3845bd85a60c8a8c775b6eb1e8c2df Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 12:06:41 +0100 Subject: [PATCH 460/919] Add ol.geom.MultiPolygon#getArea --- src/ol/geom/multipolygon.exports | 1 + src/ol/geom/multipolygon.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/src/ol/geom/multipolygon.exports b/src/ol/geom/multipolygon.exports index a72bad1bb5..e8e244a0aa 100644 --- a/src/ol/geom/multipolygon.exports +++ b/src/ol/geom/multipolygon.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.MultiPolygon +@exportProperty ol.geom.MultiPolygon.prototype.getArea @exportProperty ol.geom.MultiPolygon.prototype.getCoordinates @exportProperty ol.geom.MultiPolygon.prototype.getPolygons @exportProperty ol.geom.MultiPolygon.prototype.getType diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 186e5ac2c2..55b7bc2052 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -49,6 +49,15 @@ ol.geom.MultiPolygon.prototype.containsXY = function(x, y) { }; +/** + * @return {number} Area. + */ +ol.geom.MultiPolygon.prototype.getArea = function() { + return ol.geom.flat.linearRingssArea( + this.flatCoordinates, 0, this.endss_, this.stride); +}; + + /** * @return {ol.geom.RawMultiPolygon} Coordinates. */ From 01c185ef5746cc760317035eab72c5419b7e2cb4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 12:15:07 +0100 Subject: [PATCH 461/919] Exploit known sense of rings to simplify area calculation --- src/ol/geom/flatgeom.js | 12 +++--------- test/spec/ol/geom/flatgeom.test.js | 2 +- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 462062426e..ce4cfd7530 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -271,11 +271,11 @@ ol.geom.flat.linearRingArea = function(flatCoordinates, offset, end, stride) { for (; offset < end; offset += stride) { var x2 = flatCoordinates[offset]; var y2 = flatCoordinates[offset + 1]; - twiceArea += x1 * y2 - y1 * x2; + twiceArea += y1 * x2 - x1 * y2; x1 = x2; y1 = y2; } - return Math.abs(twiceArea / 2); + return twiceArea / 2; }; @@ -383,13 +383,7 @@ ol.geom.flat.linearRingsArea = function(flatCoordinates, offset, ends, stride) { var i, ii; for (i = 0, ii = ends.length; i < ii; ++i) { var end = ends[i]; - var linearRingArea = - ol.geom.flat.linearRingArea(flatCoordinates, offset, end, stride); - if (i === 0) { - area += linearRingArea; - } else { - area -= linearRingArea; - } + area += ol.geom.flat.linearRingArea(flatCoordinates, offset, end, stride); offset = end; } return area; diff --git a/test/spec/ol/geom/flatgeom.test.js b/test/spec/ol/geom/flatgeom.test.js index ce08820e21..dbbf55bf90 100644 --- a/test/spec/ol/geom/flatgeom.test.js +++ b/test/spec/ol/geom/flatgeom.test.js @@ -163,7 +163,7 @@ describe('ol.geom.flat', function() { it('calculates the area with holes', function() { var area = ol.geom.flat.linearRingsArea( - [0, 0, 0, 3, 3, 3, 3, 0, 1, 1, 1, 2, 2, 2, 2, 1], 0, [8, 16], 2); + [0, 0, 0, 3, 3, 3, 3, 0, 1, 1, 2, 1, 2, 2, 1, 2], 0, [8, 16], 2); expect(area).to.be(8); }); From 2c40daea22d3e6937606af444070f824d7b016eb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 14:47:32 +0100 Subject: [PATCH 462/919] Add ol.geom.LinearRing#getArea --- src/ol/geom/linearring.exports | 1 + src/ol/geom/linearring.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/src/ol/geom/linearring.exports b/src/ol/geom/linearring.exports index 59792c22b9..ab788b38a3 100644 --- a/src/ol/geom/linearring.exports +++ b/src/ol/geom/linearring.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.LinearRing +@exportProperty ol.geom.LinearRing.prototype.getArea @exportProperty ol.geom.LinearRing.prototype.getCoordinates @exportProperty ol.geom.LinearRing.prototype.getType @exportProperty ol.geom.LinearRing.prototype.setCoordinates diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index 555c91d516..7c15fd53a4 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -18,6 +18,15 @@ ol.geom.LinearRing = function(coordinates, opt_layout) { goog.inherits(ol.geom.LinearRing, ol.geom.Geometry); +/** + * @return {number} Area. + */ +ol.geom.LinearRing.prototype.getArea = function() { + return ol.geom.flat.linearRingArea( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride); +}; + + /** * @return {ol.geom.RawLinearRing} Coordinates. */ From e358321b929c54e36c9d120c78beff8f6a772041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 12:43:58 +0100 Subject: [PATCH 463/919] The iRender draw functions are passed a data object --- examples/dynamic-data.js | 2 +- src/ol/render/canvas/canvasimmediate.js | 17 ++++++------ src/ol/render/canvas/canvasreplay.js | 12 ++++---- src/ol/render/dragbox.js | 2 +- src/ol/render/irender.js | 18 ++++++++---- src/ol/render/vector.js | 37 +++++++++++++++---------- 6 files changed, 51 insertions(+), 37 deletions(-) diff --git a/examples/dynamic-data.js b/examples/dynamic-data.js index ef5fb38628..01790d6dce 100644 --- a/examples/dynamic-data.js +++ b/examples/dynamic-data.js @@ -45,7 +45,7 @@ map.on('postcompose', function(event) { coordinates.push([x, y]); } render.setImageStyle(imageStyle); - render.drawMultiPointGeometry(new ol.geom.MultiPoint(coordinates)); + render.drawMultiPointGeometry(new ol.geom.MultiPoint(coordinates), null); map.requestRenderFrame(); }); map.requestRenderFrame(); diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 55d143e279..746ed84e79 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -215,7 +215,7 @@ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { var renderGeometry = ol.render.canvas.Immediate.GEOMETRY_RENDERES_[geometry.getType()]; goog.asserts.assert(goog.isDef(renderGeometry)); - renderGeometry.call(this, geometry); + renderGeometry.call(this, geometry, null); }; @@ -223,7 +223,7 @@ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { * @inheritDoc */ ol.render.canvas.Immediate.prototype.drawPointGeometry = - function(pointGeometry) { + function(pointGeometry, data) { this.drawImages_(pointGeometry); this.drawText_(pointGeometry); }; @@ -233,7 +233,7 @@ ol.render.canvas.Immediate.prototype.drawPointGeometry = * @inheritDoc */ ol.render.canvas.Immediate.prototype.drawMultiPointGeometry = - function(multiPointGeometry) { + function(multiPointGeometry, data) { this.drawImages_(multiPointGeometry); this.drawText_(multiPointGeometry); }; @@ -243,7 +243,7 @@ ol.render.canvas.Immediate.prototype.drawMultiPointGeometry = * @inheritDoc */ ol.render.canvas.Immediate.prototype.drawLineStringGeometry = - function(lineStringGeometry) { + function(lineStringGeometry, data) { if (!ol.extent.intersects(this.extent_, lineStringGeometry.getExtent()) || !goog.isDef(this.state_.strokeStyle)) { return; @@ -262,7 +262,7 @@ ol.render.canvas.Immediate.prototype.drawLineStringGeometry = * @inheritDoc */ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = - function(multiLineStringGeometry) { + function(multiLineStringGeometry, data) { var geometryExtent = multiLineStringGeometry.getExtent(); if (!ol.extent.intersects(this.extent_, geometryExtent) || !goog.isDef(this.state_.strokeStyle)) { @@ -287,7 +287,7 @@ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = * @inheritDoc */ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = - function(polygonGeometry) { + function(polygonGeometry, data) { if (!ol.extent.intersects(this.extent_, polygonGeometry.getExtent())) { return; } @@ -316,7 +316,7 @@ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = * @inheritDoc */ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = - function(multiPolygonGeometry) { + function(multiPolygonGeometry, data) { if (!ol.extent.intersects(this.extent_, multiPolygonGeometry.getExtent())) { return; } @@ -467,7 +467,8 @@ ol.render.canvas.Immediate.prototype.setTextStyle = function(textStyle) { * @const * @private * @type {Object.} + * function(this: ol.render.canvas.Immediate, ol.geom.Geometry, + * Object)>} */ ol.render.canvas.Immediate.GEOMETRY_RENDERES_ = { 'Point': ol.render.canvas.Immediate.prototype.drawPointGeometry, diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index e8919964e4..bddd9db239 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -372,7 +372,7 @@ ol.render.canvas.ImageReplay.prototype.drawCoordinates_ = * @inheritDoc */ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = - function(pointGeometry) { + function(pointGeometry, data) { if (goog.isNull(this.image_)) { return; } @@ -399,7 +399,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = * @inheritDoc */ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = - function(multiPointGeometry) { + function(multiPointGeometry, data) { if (goog.isNull(this.image_)) { return; } @@ -561,7 +561,7 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { * @inheritDoc */ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = - function(lineStringGeometry) { + function(lineStringGeometry, data) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var strokeStyle = state.strokeStyle; @@ -584,7 +584,7 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = * @inheritDoc */ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = - function(multiLineStringGeometry) { + function(multiLineStringGeometry, data) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var strokeStyle = state.strokeStyle; @@ -731,7 +731,7 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = * @inheritDoc */ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = - function(polygonGeometry) { + function(polygonGeometry, data) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var fillStyle = state.fillStyle; @@ -757,7 +757,7 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = * @inheritDoc */ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = - function(multiPolygonGeometry) { + function(multiPolygonGeometry, data) { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); var fillStyle = state.fillStyle; diff --git a/src/ol/render/dragbox.js b/src/ol/render/dragbox.js index ecc2246ab1..7142514672 100644 --- a/src/ol/render/dragbox.js +++ b/src/ol/render/dragbox.js @@ -97,7 +97,7 @@ ol.render.DragBox.prototype.handleMapPostCompose_ = function(event) { var geometry = new ol.geom.Polygon(coordinates); var style = this.style_; render.setFillStrokeStyle(style.fill, style.stroke); - render.drawPolygonGeometry(geometry); + render.drawPolygonGeometry(geometry, null); }; diff --git a/src/ol/render/irender.js b/src/ol/render/irender.js index 59ffd5469c..07c7ffee11 100644 --- a/src/ol/render/irender.js +++ b/src/ol/render/irender.js @@ -19,49 +19,55 @@ ol.render.IRender.prototype.drawFeature = function(feature, style) { /** * @param {ol.geom.Point} pointGeometry Point geometry. + * @param {Object} data Opaque data object. */ -ol.render.IRender.prototype.drawPointGeometry = function(pointGeometry) { +ol.render.IRender.prototype.drawPointGeometry = function(pointGeometry, data) { }; /** * @param {ol.geom.LineString} lineStringGeometry Line string geometry. + * @param {Object} data Opaque data object. */ ol.render.IRender.prototype.drawLineStringGeometry = - function(lineStringGeometry) { + function(lineStringGeometry, data) { }; /** * @param {ol.geom.MultiLineString} multiLineStringGeometry * MultiLineString geometry. + * @param {Object} data Opaque data object. */ ol.render.IRender.prototype.drawMultiLineStringGeometry = - function(multiLineStringGeometry) { + function(multiLineStringGeometry, data) { }; /** * @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry. + * @param {Object} data Opaque data object. */ ol.render.IRender.prototype.drawMultiPointGeometry = - function(multiPointGeometry) { + function(multiPointGeometry, data) { }; /** * @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry. + * @param {Object} data Opaque data object. */ ol.render.IRender.prototype.drawMultiPolygonGeometry = - function(multiPolygonGeometry) { + function(multiPolygonGeometry, data) { }; /** * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. + * @param {Object} data Opaque data object. */ ol.render.IRender.prototype.drawPolygonGeometry = - function(polygonGeometry) { + function(polygonGeometry, data) { }; diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index fccf04ddc6..f6858f25a2 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -15,13 +15,14 @@ goog.require('ol.style.Style'); * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.Feature} feature Feature. * @param {ol.style.Style} style Style. + * @param {Object} data Opaque data object. */ -ol.renderer.vector.renderFeature = function(replayGroup, feature, style) { +ol.renderer.vector.renderFeature = function(replayGroup, feature, style, data) { var geometry = feature.getGeometry(); var geometryRenderer = ol.renderer.vector.GEOMETRY_RENDERERS_[geometry.getType()]; goog.asserts.assert(goog.isDef(geometryRenderer)); - geometryRenderer(replayGroup, geometry, style); + geometryRenderer(replayGroup, geometry, style, data); }; @@ -29,10 +30,11 @@ ol.renderer.vector.renderFeature = function(replayGroup, feature, style) { * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. + * @param {Object} data Opaque data object. * @private */ ol.renderer.vector.renderLineStringGeometry_ = - function(replayGroup, geometry, style) { + function(replayGroup, geometry, style, data) { if (goog.isNull(style.stroke)) { return; } @@ -41,7 +43,7 @@ ol.renderer.vector.renderLineStringGeometry_ = var replay = replayGroup.getReplay( style.zIndex, ol.render.ReplayType.LINE_STRING); replay.setFillStrokeStyle(null, style.stroke); - replay.drawLineStringGeometry(lineStringGeometry); + replay.drawLineStringGeometry(lineStringGeometry, data); }; @@ -49,10 +51,11 @@ ol.renderer.vector.renderLineStringGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. + * @param {Object} data Opaque data object. * @private */ ol.renderer.vector.renderMultiLineStringGeometry_ = - function(replayGroup, geometry, style) { + function(replayGroup, geometry, style, data) { if (goog.isNull(style.stroke)) { return; } @@ -62,7 +65,7 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = var replay = replayGroup.getReplay( style.zIndex, ol.render.ReplayType.LINE_STRING); replay.setFillStrokeStyle(null, style.stroke); - replay.drawMultiLineStringGeometry(multiLineStringGeometry); + replay.drawMultiLineStringGeometry(multiLineStringGeometry, data); }; @@ -70,10 +73,11 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. + * @param {Object} data Opaque data object. * @private */ ol.renderer.vector.renderMultiPolygonGeometry_ = - function(replayGroup, geometry, style) { + function(replayGroup, geometry, style, data) { if (goog.isNull(style.stroke) && goog.isNull(style.fill)) { return; } @@ -83,7 +87,7 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = var replay = replayGroup.getReplay( style.zIndex, ol.render.ReplayType.POLYGON); replay.setFillStrokeStyle(style.fill, style.stroke); - replay.drawMultiPolygonGeometry(multiPolygonGeometry); + replay.drawMultiPolygonGeometry(multiPolygonGeometry, data); }; @@ -91,10 +95,11 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. + * @param {Object} data Opaque data object. * @private */ ol.renderer.vector.renderPointGeometry_ = - function(replayGroup, geometry, style) { + function(replayGroup, geometry, style, data) { if (goog.isNull(style.image)) { return; } @@ -102,7 +107,7 @@ ol.renderer.vector.renderPointGeometry_ = var pointGeometry = /** @type {ol.geom.Point} */ (geometry); var replay = replayGroup.getReplay(style.zIndex, ol.render.ReplayType.IMAGE); replay.setImageStyle(style.image); - replay.drawPointGeometry(pointGeometry); + replay.drawPointGeometry(pointGeometry, data); }; @@ -110,10 +115,11 @@ ol.renderer.vector.renderPointGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. + * @param {Object} data Opaque data object. * @private */ ol.renderer.vector.renderMultiPointGeometry_ = - function(replayGroup, geometry, style) { + function(replayGroup, geometry, style, data) { if (goog.isNull(style.image)) { return; } @@ -121,7 +127,7 @@ ol.renderer.vector.renderMultiPointGeometry_ = var multiPointGeometry = /** @type {ol.geom.MultiPoint} */ (geometry); var replay = replayGroup.getReplay(style.zIndex, ol.render.ReplayType.IMAGE); replay.setImageStyle(style.image); - replay.drawMultiPointGeometry(multiPointGeometry); + replay.drawMultiPointGeometry(multiPointGeometry, data); }; @@ -129,10 +135,11 @@ ol.renderer.vector.renderMultiPointGeometry_ = * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. * @param {ol.style.Style} style Style. + * @param {Object} data Opaque data object. * @private */ ol.renderer.vector.renderPolygonGeometry_ = - function(replayGroup, geometry, style) { + function(replayGroup, geometry, style, data) { if (goog.isNull(style.fill) && goog.isNull(style.stroke)) { return; } @@ -141,7 +148,7 @@ ol.renderer.vector.renderPolygonGeometry_ = var replay = replayGroup.getReplay( style.zIndex, ol.render.ReplayType.POLYGON); replay.setFillStrokeStyle(style.fill, style.stroke); - replay.drawPolygonGeometry(polygonGeometry); + replay.drawPolygonGeometry(polygonGeometry, data); }; @@ -150,7 +157,7 @@ ol.renderer.vector.renderPolygonGeometry_ = * @private * @type {Object.} + * ol.style.Style, Object)>} */ ol.renderer.vector.GEOMETRY_RENDERERS_ = { 'Point': ol.renderer.vector.renderPointGeometry_, From b98ff1619df27dd7968ec7bcc845a25be030c7dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 12:49:21 +0100 Subject: [PATCH 464/919] Add getRenderGeometryFunction_ --- .../canvas/canvasvectorlayerrenderer.js | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 596b20e247..010e9d5949 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -69,11 +69,7 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = var replayGroup = this.replayGroup_; if (!goog.isNull(replayGroup)) { - var vectorLayer = this.getVectorLayer(); - var renderGeometryFunction = vectorLayer.getRenderGeometryFunction(); - if (!goog.isDef(renderGeometryFunction)) { - renderGeometryFunction = goog.functions.TRUE; - } + var renderGeometryFunction = this.getRenderGeometryFunction_(); goog.asserts.assert(goog.isFunction(renderGeometryFunction)); context.globalAlpha = layerState.opacity; replayGroup.replay( @@ -85,6 +81,22 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = }; +/** + * @private + * @return {function(ol.geom.Geometry): boolean|undefined} Render geometry + * function. + */ +ol.renderer.canvas.VectorLayer.prototype.getRenderGeometryFunction_ = + function() { + var vectorLayer = this.getVectorLayer(); + var renderGeometryFunction = vectorLayer.getRenderGeometryFunction(); + if (!goog.isDef(renderGeometryFunction)) { + renderGeometryFunction = goog.functions.TRUE; + } + return renderGeometryFunction; +}; + + /** * @return {ol.layer.Vector} Vector layer. */ From 09a88569a8f24172f5d988c94f3a8039acdf0daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 12:53:45 +0100 Subject: [PATCH 465/919] Add per-geometry mode to replay API --- src/ol/render/canvas/canvasreplay.js | 80 ++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 21 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index bddd9db239..119f7d9fe9 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -25,11 +25,12 @@ ol.render.canvas.Instruction = { BEGIN_PATH: 1, CLOSE_PATH: 2, DRAW_IMAGE: 3, - FILL: 4, - MOVE_TO_LINE_TO: 5, - SET_FILL_STYLE: 6, - SET_STROKE_STYLE: 7, - STROKE: 8 + END_GEOMETRY: 4, + FILL: 5, + MOVE_TO_LINE_TO: 6, + SET_FILL_STYLE: 7, + SET_STROKE_STYLE: 8, + STROKE: 9 }; @@ -117,9 +118,12 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { * @param {goog.vec.Mat4.AnyType} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. + * @param {function(ol.geom.Geometry, Object)=} opt_callback Geometry callback. */ ol.render.canvas.Replay.prototype.replay = - function(context, transform, renderGeometryFunction) { + function(context, transform, renderGeometryFunction, opt_callback) { + var perGeometryMode = goog.isDef(opt_callback); + var batchMode = !perGeometryMode; /** @type {Array.} */ var pixelCoordinates; if (ol.vec.Mat4.equals2D(transform, this.renderedTransform_)) { @@ -138,8 +142,10 @@ ol.render.canvas.Replay.prototype.replay = while (i < ii) { var instruction = instructions[i]; var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); + var geometry; + var executeInPerGeometryMode, executeInBatchMode; if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) { - var geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); + geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); if (renderGeometryFunction(geometry)) { ++i; } else { @@ -147,7 +153,12 @@ ol.render.canvas.Replay.prototype.replay = i = /** @type {number} */ (instruction[3]); } } else if (type == ol.render.canvas.Instruction.BEGIN_PATH) { - context.beginPath(); + executeInPerGeometryMode = /** @type {boolean} */ (instruction[1]); + executeInBatchMode = /** @type {boolean} */ (instruction[2]); + if ((perGeometryMode && executeInPerGeometryMode) || + (batchMode && executeInBatchMode)) { + context.beginPath(); + } ++i; } else if (type == ol.render.canvas.Instruction.CLOSE_PATH) { context.closePath(); @@ -171,6 +182,14 @@ ol.render.canvas.Replay.prototype.replay = context.drawImage(image, x, y, width, height); } ++i; + } else if (type == ol.render.canvas.Instruction.END_GEOMETRY) { + if (perGeometryMode) { + goog.asserts.assert(goog.isDef(opt_callback)); + geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); + var data = /** @type {Object} */ (instruction[2]); + opt_callback(geometry, data); + } + ++i; } else if (type == ol.render.canvas.Instruction.FILL) { context.fill(); ++i; @@ -203,7 +222,12 @@ ol.render.canvas.Replay.prototype.replay = } ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { - context.stroke(); + executeInPerGeometryMode = /** @type {boolean} */ (instruction[1]); + executeInBatchMode = /** @type {boolean} */ (instruction[2]); + if ((perGeometryMode && executeInPerGeometryMode) || + (batchMode && executeInBatchMode)) { + context.stroke(); + } ++i; } else { goog.asserts.fail(); @@ -262,12 +286,17 @@ ol.render.canvas.Replay.prototype.drawMultiPolygonGeometry = /** + * @param {ol.geom.Geometry} geometry Geometry. * @param {Array} beginGeometryInstruction Begin geometry instruction. + * @param {Object} data Opaque data object. */ ol.render.canvas.Replay.prototype.endGeometry = - function(beginGeometryInstruction) { + function(geometry, beginGeometryInstruction, data) { beginGeometryInstruction[2] = this.coordinates.length; beginGeometryInstruction[3] = this.instructions.length; + var endGeometryInstruction = + [ol.render.canvas.Instruction.END_GEOMETRY, geometry, data]; + this.instructions.push(endGeometryInstruction); }; @@ -391,7 +420,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = this.anchorX_, this.anchorY_, this.width_, this.height_, this.image_, this.snapToPixel_ ]); - this.endGeometry(beginGeometryInstruction); + this.endGeometry(pointGeometry, beginGeometryInstruction, data); }; @@ -418,7 +447,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = this.anchorX_, this.anchorY_, this.width_, this.height_, this.image_, this.snapToPixel_ ]); - this.endGeometry(beginGeometryInstruction); + this.endGeometry(multiPointGeometry, beginGeometryInstruction, data); }; @@ -540,13 +569,14 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { state.currentLineWidth != lineWidth || state.currentMiterLimit != miterLimit) { if (state.lastStroke != this.coordinates.length) { - this.instructions.push([ol.render.canvas.Instruction.STROKE]); + this.instructions.push( + [ol.render.canvas.Instruction.STROKE, false, true]); state.lastStroke = this.coordinates.length; } this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, strokeStyle, lineWidth, lineCap, lineJoin, miterLimit, lineDash], - [ol.render.canvas.Instruction.BEGIN_PATH]); + [ol.render.canvas.Instruction.BEGIN_PATH, false, true]); state.currentStrokeStyle = strokeStyle; state.currentLineCap = lineCap; state.currentLineDash = lineDash; @@ -572,11 +602,14 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); this.setStrokeStyle_(); var beginGeometryInstruction = this.beginGeometry(lineStringGeometry); + this.instructions.push( + [ol.render.canvas.Instruction.BEGIN_PATH, true, false]); var flatCoordinates = lineStringGeometry.getFlatCoordinates(); var stride = lineStringGeometry.getStride(); this.drawFlatCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); - this.endGeometry(beginGeometryInstruction); + this.instructions.push([ol.render.canvas.Instruction.STROKE, true, false]); + this.endGeometry(lineStringGeometry, beginGeometryInstruction, data); }; @@ -594,6 +627,8 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = } ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); this.setStrokeStyle_(); + this.instructions.push([ + ol.render.canvas.Instruction.BEGIN_PATH, true, false]); var beginGeometryInstruction = this.beginGeometry(multiLineStringGeometry); var ends = multiLineStringGeometry.getEnds(); var flatCoordinates = multiLineStringGeometry.getFlatCoordinates(); @@ -604,7 +639,9 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = offset = this.drawFlatCoordinates_( flatCoordinates, offset, ends[i], stride); } - this.endGeometry(beginGeometryInstruction); + this.instructions.push( + [ol.render.canvas.Instruction.STROKE, true, false]); + this.endGeometry(multiLineStringGeometry, beginGeometryInstruction, data); }; @@ -615,7 +652,7 @@ ol.render.canvas.LineStringReplay.prototype.finish = function() { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); if (state.lastStroke != this.coordinates.length) { - this.instructions.push([ol.render.canvas.Instruction.STROKE]); + this.instructions.push([ol.render.canvas.Instruction.STROKE, false, true]); } this.state_ = null; }; @@ -703,7 +740,8 @@ goog.inherits(ol.render.canvas.PolygonReplay, ol.render.canvas.Replay); ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = function(flatCoordinates, offset, ends, stride) { var state = this.state_; - this.instructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); + this.instructions.push( + [ol.render.canvas.Instruction.BEGIN_PATH, true, true]); var i, ii; for (i = 0, ii = ends.length; i < ii; ++i) { var end = ends[i]; @@ -721,7 +759,7 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = } if (goog.isDef(state.strokeStyle)) { goog.asserts.assert(goog.isDef(state.lineWidth)); - this.instructions.push([ol.render.canvas.Instruction.STROKE]); + this.instructions.push([ol.render.canvas.Instruction.STROKE, true, true]); } return offset; }; @@ -749,7 +787,7 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = var flatCoordinates = polygonGeometry.getFlatCoordinates(); var stride = polygonGeometry.getStride(); this.drawFlatCoordinatess_(flatCoordinates, 0, ends, stride); - this.endGeometry(beginGeometryInstruction); + this.endGeometry(polygonGeometry, beginGeometryInstruction, data); }; @@ -780,7 +818,7 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = offset = this.drawFlatCoordinatess_( flatCoordinates, offset, endss[i], stride); } - this.endGeometry(beginGeometryInstruction); + this.endGeometry(multiPolygonGeometry, beginGeometryInstruction, data); }; From a537814169a8c90bf47c3ba285fe98640ec3383a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 12:55:02 +0100 Subject: [PATCH 466/919] Add hit detection support to replay API --- src/ol/render/canvas/canvasreplay.js | 82 +++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 2 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 119f7d9fe9..2b5be51b49 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -6,6 +6,8 @@ goog.provide('ol.render.canvas.ReplayGroup'); goog.require('goog.array'); goog.require('goog.asserts'); +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); goog.require('goog.object'); goog.require('goog.vec.Mat4'); goog.require('ol.color'); @@ -926,6 +928,27 @@ ol.render.canvas.ReplayGroup = function() { */ this.replayesByZIndex_ = {}; + /** + * @type {HTMLCanvasElement} + */ + var hitDetectionCanvas = /** @type {HTMLCanvasElement} */ + (goog.dom.createElement(goog.dom.TagName.CANVAS)); + hitDetectionCanvas.width = 1; + hitDetectionCanvas.height = 1; + + /** + * @private + * @type {CanvasRenderingContext2D} + */ + this.hitDetectionContext_ = /** @type {CanvasRenderingContext2D} */ + (hitDetectionCanvas.getContext('2d')); + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.hitDetectionTransform_ = goog.vec.Mat4.createNumber(); + }; @@ -935,12 +958,31 @@ ol.render.canvas.ReplayGroup = function() { * @param {goog.vec.Mat4.AnyType} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. + * @param {function(ol.geom.Geometry, Object)=} opt_callback Geometry callback. */ ol.render.canvas.ReplayGroup.prototype.replay = - function(context, extent, transform, renderGeometryFunction) { + function(context, extent, transform, renderGeometryFunction, opt_callback) { /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); goog.array.sort(zs); + this.replay_(zs, context, extent, transform, renderGeometryFunction, + opt_callback); +}; + + +/** + * @private + * @param {Array.} zs Z-indices array. + * @param {CanvasRenderingContext2D} context Context. + * @param {ol.Extent} extent Extent. + * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render + * geometry function. + * @param {function(ol.geom.Geometry, Object)=} opt_callback Geometry callback. + */ +ol.render.canvas.ReplayGroup.prototype.replay_ = + function(zs, context, extent, transform, renderGeometryFunction, + opt_callback) { var i, ii; for (i = 0, ii = zs.length; i < ii; ++i) { var replayes = this.replayesByZIndex_[zs[i].toString()]; @@ -948,13 +990,49 @@ ol.render.canvas.ReplayGroup.prototype.replay = for (replayType in replayes) { var replay = replayes[replayType]; if (ol.extent.intersects(extent, replay.getExtent())) { - replay.replay(context, transform, renderGeometryFunction); + replay.replay(context, transform, renderGeometryFunction, opt_callback); } } } }; +/** + * @param {ol.Extent} extent Extent. + * @param {number} resolution Resolution. + * @param {ol.Coordinate} coordinate Coordinate. + * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render + * geometry function. + * @param {function(ol.geom.Geometry, Object)} callback Geometry callback. + */ +ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtCoordinate = + function(extent, resolution, coordinate, renderGeometryFunction, callback) { + + var transform = this.hitDetectionTransform_; + ol.vec.Mat4.makeTransform2D(transform, 0.5, 0.5, + 1 / resolution, -1 / resolution, 0, -coordinate[0], -coordinate[1]); + + /** @type {Array.} */ + var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); + goog.array.sort(zs, function(a, b) { return b - a; }); + + var context = this.hitDetectionContext_; + + this.replay_(zs, context, extent, transform, renderGeometryFunction, + /** + * @param {ol.geom.Geometry} geometry Geometry. + * @param {Object} data Opaque data object. + */ + function(geometry, data) { + var imageData = context.getImageData(0, 0, 1, 1).data; + if (imageData[3] > 0) { + callback(geometry, data); + context.clearRect(0, 0, 1, 1); + } + }); +}; + + /** * @inheritDoc */ From e9843ced571b1b65a571bd8307ca83d16e459d22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 12:56:35 +0100 Subject: [PATCH 467/919] Add ol.renderer.Layer#forEachFeatureAtPixel --- src/ol/renderer/layerrenderer.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index 86c2fcfbe2..110e294e72 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -42,6 +42,13 @@ ol.renderer.Layer = function(mapRenderer, layer) { goog.inherits(ol.renderer.Layer, goog.Disposable); +/** + * @param {ol.Pixel} pixel Pixel. + * @param {function(ol.Feature)} callback Feature callback. + */ +ol.renderer.Layer.prototype.forEachFeatureAtPixel = goog.nullFunction; + + /** * @protected * @return {ol.layer.Layer} Layer. From 65c922f580a1be1cc91ca1fa5c71a460bda39d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 12:56:57 +0100 Subject: [PATCH 468/919] Add ol.renderer.canvas.VectorLayer#forEachFeatureAtPixel --- .../canvas/canvasvectorlayerrenderer.js | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 010e9d5949..4fca4bdfe0 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -81,6 +81,32 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = }; +/** + * @inheritDoc + */ +ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = + function(pixel, callback) { + if (!goog.isNull(this.replayGroup_)) { + goog.asserts.assert(!ol.extent.isEmpty(this.renderedExtent_)); + goog.asserts.assert(!isNaN(this.renderedResolution_)); + var coordinate = this.getMap().getCoordinateFromPixel(pixel); + var renderGeometryFunction = this.getRenderGeometryFunction_(); + goog.asserts.assert(goog.isFunction(renderGeometryFunction)); + this.replayGroup_.forEachGeometryAtCoordinate(this.renderedExtent_, + this.renderedResolution_, coordinate, renderGeometryFunction, + /** + * @param {ol.geom.Geometry} geometry Geometry. + * @param {Object} data Data. + */ + function(geometry, data) { + var feature = /** @type {ol.Feature} */ (data); + goog.asserts.assert(goog.isDef(feature)); + callback(feature); + }); + } +}; + + /** * @private * @return {function(ol.geom.Geometry): boolean|undefined} Render geometry @@ -199,12 +225,12 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = this.handleImageStyleChange_, false, this); imageStyle.load(); } else if (imageStyle.imageState == ol.style.ImageState.LOADED) { - ol.renderer.vector.renderFeature(replayGroup, feature, style); + ol.renderer.vector.renderFeature(replayGroup, feature, style, feature); } goog.asserts.assert(imageStyle.imageState != ol.style.ImageState.IDLE); loading = imageStyle.imageState == ol.style.ImageState.LOADING; } else { - ol.renderer.vector.renderFeature(replayGroup, feature, style); + ol.renderer.vector.renderFeature(replayGroup, feature, style, feature); } } return loading; From 6f423726a97d5c20aea489a77cb07579a45e527f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 12:57:25 +0100 Subject: [PATCH 469/919] Add ol.renderer.Map#forEachFeatureAtPixel --- src/ol/renderer/maprenderer.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index 49ec3edb5c..627d98066c 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -78,6 +78,18 @@ ol.renderer.Map.prototype.disposeInternal = function() { }; +/** + * @param {ol.Pixel} pixel Pixel. + * @param {function(ol.Feature)} callback Feature callback. + */ +ol.renderer.Map.prototype.forEachFeatureAtPixel = + function(pixel, callback) { + goog.object.forEach(this.layerRenderers_, function(layerRenderer) { + layerRenderer.forEachFeatureAtPixel(pixel, callback); + }); +}; + + /** * @param {ol.layer.Layer} layer Layer. * @protected From 374d5f99f6f227dbc0b36c1eb8f3046ea5f16f12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 12:58:02 +0100 Subject: [PATCH 470/919] Add ol.Map#forEachFeatureAtPixel --- src/ol/map.exports | 1 + src/ol/map.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/src/ol/map.exports b/src/ol/map.exports index 15614cc858..582049a70f 100644 --- a/src/ol/map.exports +++ b/src/ol/map.exports @@ -4,6 +4,7 @@ @exportProperty ol.Map.prototype.addLayer @exportProperty ol.Map.prototype.addOverlay @exportProperty ol.Map.prototype.beforeRender +@exportProperty ol.Map.prototype.forEachFeatureAtPixel @exportProperty ol.Map.prototype.getControls @exportProperty ol.Map.prototype.getEventCoordinate @exportProperty ol.Map.prototype.getEventPixel diff --git a/src/ol/map.js b/src/ol/map.js index 2e95d3522f..18e7818346 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -455,6 +455,15 @@ ol.Map.prototype.disposeInternal = function() { }; +/** + * @param {ol.Pixel} pixel Pixel. + * @param {function(ol.Feature)} callback Feature callback. + */ +ol.Map.prototype.forEachFeatureAtPixel = function(pixel, callback) { + this.renderer_.forEachFeatureAtPixel(pixel, callback); +}; + + /** * Freeze rendering. */ From a1e1393f440437a232762700ea1e4199f923d5b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 13:00:43 +0100 Subject: [PATCH 471/919] Add hit detection to synthetic-points example --- examples/synthetic-points.html | 2 ++ examples/synthetic-points.js | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/examples/synthetic-points.html b/examples/synthetic-points.html index a63999bc9c..972dd161d8 100644 --- a/examples/synthetic-points.html +++ b/examples/synthetic-points.html @@ -43,6 +43,8 @@
+ + diff --git a/examples/synthetic-points.js b/examples/synthetic-points.js index 32003cccfa..2036efc48f 100644 --- a/examples/synthetic-points.js +++ b/examples/synthetic-points.js @@ -53,10 +53,25 @@ var popup = new ol.Overlay({ var map = new ol.Map({ layers: [vector], renderer: ol.RendererHint.CANVAS, - target: 'map', + target: document.getElementById('map'), view: new ol.View2D({ center: [0, 0], zoom: 2 }), overlays: [popup] }); + +$(map.getViewport()).on('mousemove', function(e) { + var pixel = map.getEventPixel(e.originalEvent); + + var hit = false; + map.forEachFeatureAtPixel(pixel, function(feature) { + hit = true; + }); + + if (hit) { + map.getTarget().style.cursor = 'pointer'; + } else { + map.getTarget().style.cursor = ''; + } +}); From 53ecc8edb61667f2b48845a967e693bf74526f18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 13:21:39 +0100 Subject: [PATCH 472/919] Add popup back to icon example --- examples/icon.html | 6 +++++- examples/icon.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/examples/icon.html b/examples/icon.html index f9c2d645bc..9a0bf9b5c5 100644 --- a/examples/icon.html +++ b/examples/icon.html @@ -13,6 +13,9 @@ #map { position: relative; } + #popup { + padding-bottom: 24px; + } @@ -30,6 +33,7 @@
+
@@ -42,7 +46,7 @@

See the icon.js source to see how this is done.

-
vector, style, icon, marker
+
vector, style, icon, marker, popup
diff --git a/examples/icon.js b/examples/icon.js index 97ccd1d67f..bc26384290 100644 --- a/examples/icon.js +++ b/examples/icon.js @@ -1,4 +1,6 @@ goog.require('ol.Map'); +goog.require('ol.Overlay'); +goog.require('ol.OverlayPositioning'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.format.GeoJSON'); @@ -54,3 +56,33 @@ var map = new ol.Map({ zoom: 3 }) }); + +var element = document.getElementById('popup'); + +var popup = new ol.Overlay({ + element: element, + positioning: ol.OverlayPositioning.BOTTOM_CENTER, + stopEvent: false +}); +map.addOverlay(popup); + +// display popup on click +map.on('singleclick', function(evt) { + var feature; + map.forEachFeatureAtPixel(evt.getPixel(), function(f) { + feature = f; + }); + if (feature) { + var geometry = feature.getGeometry(); + var coord = geometry.getCoordinates(); + popup.setPosition(coord); + $(element).popover({ + 'placement': 'top', + 'html': true, + 'content': feature.get('name') + }); + $(element).popover('show'); + } else { + $(element).popover('destroy'); + } +}); From 24e7a81ae57480b0186cb46e61dcca67d174ee6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 13:22:44 +0100 Subject: [PATCH 473/919] Detect when mouse is over marker in icon example --- examples/icon.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/examples/icon.js b/examples/icon.js index bc26384290..97c42b04d2 100644 --- a/examples/icon.js +++ b/examples/icon.js @@ -50,7 +50,7 @@ var vector = new ol.layer.Vector({ var map = new ol.Map({ layers: [raster, vector], renderer: ol.RendererHint.CANVAS, - target: 'map', + target: document.getElementById('map'), view: new ol.View2D({ center: [0, 0], zoom: 3 @@ -86,3 +86,17 @@ map.on('singleclick', function(evt) { $(element).popover('destroy'); } }); + +// change mouse cursor when over marker +$(map.getViewport()).on('mousemove', function(e) { + var pixel = map.getEventPixel(e.originalEvent); + var hit = false; + map.forEachFeatureAtPixel(pixel, function(feature) { + hit = true; + }); + if (hit) { + map.getTarget().style.cursor = 'pointer'; + } else { + map.getTarget().style.cursor = ''; + } +}); From 6b9bc9d8e8ddaf53484fb30787dabad9a2d140b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 2 Dec 2013 14:35:20 +0100 Subject: [PATCH 474/919] Use hit detection in vector-layer example The hit detection code doesn't correctly play well with the skiping of geometries using the renderGeometryFunction. Features/geometries that are not rendered by the replay API are not detected by the hit detection mechanism. For that reason, until we find a solution, we don't use renderGeometryFunction in the vector-layer example. --- examples/vector-layer.js | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index f57897aa61..7317d555be 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -56,38 +56,38 @@ $.getJSON('data/countries.geojson', function(data) { }); var highlight; -var displayFeatureInfo = function(coordinate) { +var displayFeatureInfo = function(pixel) { var oldHighlight = highlight; - var features = vectorSource.getAllFeaturesAtCoordinate(coordinate); + + var feature; + map.forEachFeatureAtPixel(pixel, function(f) { + if (!feature) { + feature = f; + } + }); + var info = document.getElementById('info'); - if (features.length > 0) { - var feature = features[0]; - info.innerHTML = feature.getId() + ': ' + features[0].get('name'); - highlight = feature; + if (feature) { + info.innerHTML = feature.getId() + ': ' + feature.get('name'); } else { info.innerHTML = ' '; - highlight = undefined; } + + highlight = feature; + if (highlight !== oldHighlight) { map.requestRenderFrame(); - if (highlight) { - vectorLayer.setRenderGeometryFunction(function(geometry) { - return geometry !== highlight.getGeometry(); - }); - } else { - vectorLayer.setRenderGeometryFunction(undefined); - } } }; $(map.getViewport()).on('mousemove', function(evt) { - var coordinate = map.getEventCoordinate(evt.originalEvent); - displayFeatureInfo(coordinate); + var pixel = map.getEventPixel(evt.originalEvent); + displayFeatureInfo(pixel); }); map.on('singleclick', function(evt) { - var coordinate = evt.getCoordinate(); - displayFeatureInfo(coordinate); + var pixel = evt.getPixel(); + displayFeatureInfo(pixel); }); var highlightStyle = new ol.style.Style({ From 0477101c28c9a821f4e26dca65ad7fe82e3e9848 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 3 Dec 2013 15:44:25 +0100 Subject: [PATCH 475/919] Factor out ol.geom.Geometry.getLayoutForStride_ --- src/ol/geom/geometry.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 334d43c701..3ad28b4aaa 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -84,6 +84,24 @@ ol.geom.Geometry = function() { goog.inherits(ol.geom.Geometry, goog.events.EventTarget); +/** + * @param {number} stride Stride. + * @private + * @return {ol.geom.Layout} layout Layout. + */ +ol.geom.Geometry.getLayoutForStride_ = function(stride) { + if (stride == 2) { + return ol.geom.Layout.XY; + } else if (stride == 3) { + return ol.geom.Layout.XYZ; + } else if (stride == 4) { + return ol.geom.Layout.XYZM; + } else { + throw new Error('unsupported stride: ' + stride); + } +}; + + /** * @param {ol.Coordinate} coordinate Coordinate. * @return {boolean} Contains coordinate. @@ -197,15 +215,7 @@ ol.geom.Geometry.prototype.setLayout = } } stride = (/** @type {Array} */ (coordinates)).length; - if (stride == 2) { - layout = ol.geom.Layout.XY; - } else if (stride == 3) { - layout = ol.geom.Layout.XYZ; - } else if (stride == 4) { - layout = ol.geom.Layout.XYZM; - } else { - throw new Error('unsupported stride: ' + stride); - } + layout = ol.geom.Geometry.getLayoutForStride_(stride); } this.layout = layout; this.stride = stride; From 27982ec5e7ca5f98cb972bc7a5763ab0630e2acb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 3 Dec 2013 15:44:44 +0100 Subject: [PATCH 476/919] Factor out ol.geom.Geometry.getStrideForLayout_ --- src/ol/geom/geometry.js | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 3ad28b4aaa..fb5280c7cf 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -102,6 +102,26 @@ ol.geom.Geometry.getLayoutForStride_ = function(stride) { }; +/** + * @param {ol.geom.Layout} layout Layout. + * @private + * @return {number} Stride. + */ +ol.geom.Geometry.getStrideForLayout_ = function(layout) { + if (layout == ol.geom.Layout.XY) { + return 2; + } else if (layout == ol.geom.Layout.XYZ) { + return 3; + } else if (layout == ol.geom.Layout.XYM) { + return 3; + } else if (layout == ol.geom.Layout.XYZM) { + return 4; + } else { + throw new Error('unsupported layout: ' + layout); + } +}; + + /** * @param {ol.Coordinate} coordinate Coordinate. * @return {boolean} Contains coordinate. @@ -192,17 +212,7 @@ ol.geom.Geometry.prototype.setLayout = /** @type {number} */ var stride; if (goog.isDef(layout)) { - if (layout == ol.geom.Layout.XY) { - stride = 2; - } else if (layout == ol.geom.Layout.XYZ) { - stride = 3; - } else if (layout == ol.geom.Layout.XYM) { - stride = 3; - } else if (layout == ol.geom.Layout.XYZM) { - stride = 4; - } else { - throw new Error('unsupported layout: ' + layout); - } + stride = ol.geom.Geometry.getStrideForLayout_(layout); } else { var i; for (i = 0; i < nesting; ++i) { From b06ef0290cd83c83d0819f248de89633938d12ea Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 3 Dec 2013 16:53:23 +0100 Subject: [PATCH 477/919] Add ol.geom.flat.deflateCoordinate --- src/ol/geom/flatgeom.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index ce4cfd7530..2e9fb85d85 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -5,6 +5,24 @@ goog.require('goog.asserts'); goog.require('goog.vec.Mat4'); +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {ol.Coordinate} coordinate Coordinate. + * @param {number} stride Stride. + * @return {number} offset Offset. + */ +ol.geom.flat.deflateCoordinate = + function(flatCoordinates, offset, coordinate, stride) { + goog.asserts.assert(coordinate.length == stride); + var i, ii; + for (i = 0, ii = coordinate.length; i < ii; ++i) { + flatCoordinates[offset++] = coordinate[i]; + } + return offset; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From 580f7d2022b6dc91c963f47ea070563ed88cbf8a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 3 Dec 2013 16:53:44 +0100 Subject: [PATCH 478/919] Ensure endss is truncated if needed in ol.geom.flat.deflateCoordinatesss --- src/ol/geom/flatgeom.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 2e9fb85d85..60ca92c914 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -88,6 +88,7 @@ ol.geom.flat.deflateCoordinatesss = endss[i++] = ends; offset = ends[ends.length - 1]; } + endss.length = i; return endss; }; From 1a9d19a2fb8ff978d82f43c5cb8135a0660c490c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 3 Dec 2013 16:59:52 +0100 Subject: [PATCH 479/919] Allow geometries to have null coordinates and add setFlatCoordinates --- src/ol/geom/geometry.js | 29 ++++++++++++++++---- src/ol/geom/linestring.js | 24 ++++++++++++++--- src/ol/geom/multilinestring.js | 27 ++++++++++++++++--- src/ol/geom/multipoint.js | 24 ++++++++++++++--- src/ol/geom/multipolygon.js | 33 +++++++++++++++++++---- src/ol/geom/point.js | 23 ++++++++++++++-- src/ol/geom/polygon.js | 31 +++++++++++++++++---- test/spec/ol/geom/linestring.test.js | 7 +++++ test/spec/ol/geom/multilinestring.test.js | 7 +++++ test/spec/ol/geom/multipoint.test.js | 7 +++++ test/spec/ol/geom/multipolygon.test.js | 16 +++++++++++ test/spec/ol/geom/point.test.js | 7 +++++ test/spec/ol/geom/polygon.test.js | 7 +++++ 13 files changed, 216 insertions(+), 26 deletions(-) create mode 100644 test/spec/ol/geom/multipolygon.test.js diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index fb5280c7cf..d66fc9d95d 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -60,7 +60,7 @@ ol.geom.Geometry = function() { * @protected * @type {Array.} */ - this.flatCoordinates = []; + this.flatCoordinates = null; /** * @protected @@ -201,6 +201,19 @@ ol.geom.Geometry.prototype.getStride = function() { ol.geom.Geometry.prototype.getType = goog.abstractMethod; +/** + * @param {ol.geom.Layout} layout Layout. + * @param {Array.} flatCoordinates Flat coordinates. + * @protected + */ +ol.geom.Geometry.prototype.setFlatCoordinatesInternal = + function(layout, flatCoordinates) { + this.stride = ol.geom.Geometry.getStrideForLayout_(layout); + this.layout = layout; + this.flatCoordinates = flatCoordinates; +}; + + /** * @param {ol.geom.Layout|undefined} layout Layout. * @param {Array} coordinates Coordinates. @@ -236,7 +249,9 @@ ol.geom.Geometry.prototype.setLayout = * @param {ol.TransformFunction} transformFn Transform. */ ol.geom.Geometry.prototype.transform = function(transformFn) { - transformFn(this.flatCoordinates, this.flatCoordinates, this.stride); + if (!goog.isNull(this.flatCoordinates)) { + transformFn(this.flatCoordinates, this.flatCoordinates, this.stride); + } }; @@ -291,7 +306,11 @@ ol.geom.RawMultiPolygon; */ ol.geom.transformGeometry2D = function(geometry, transform, opt_dest) { var flatCoordinates = geometry.getFlatCoordinates(); - var stride = geometry.getStride(); - return ol.geom.flat.transform2D( - flatCoordinates, stride, transform, opt_dest); + if (goog.isNull(flatCoordinates)) { + return null; + } else { + var stride = geometry.getStride(); + return ol.geom.flat.transform2D( + flatCoordinates, stride, transform, opt_dest); + } }; diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 0a76be1014..40bfd7c109 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -50,8 +50,26 @@ ol.geom.LineString.prototype.getType = function() { */ ol.geom.LineString.prototype.setCoordinates = function(coordinates, opt_layout) { - this.setLayout(opt_layout, coordinates, 1); - ol.geom.flat.deflateCoordinates( - this.flatCoordinates, 0, coordinates, this.stride); + if (goog.isNull(coordinates)) { + this.setFlatCoordinates(ol.geom.Layout.XY, null); + } else { + this.setLayout(opt_layout, coordinates, 1); + if (goog.isNull(this.flatCoordinates)) { + this.flatCoordinates = []; + } + this.flatCoordinates.length = ol.geom.flat.deflateCoordinates( + this.flatCoordinates, 0, coordinates, this.stride); + this.dispatchChangeEvent(); + } +}; + + +/** + * @param {ol.geom.Layout} layout Layout. + * @param {Array.} flatCoordinates Flat coordinates. + */ +ol.geom.LineString.prototype.setFlatCoordinates = + function(layout, flatCoordinates) { + this.setFlatCoordinatesInternal(layout, flatCoordinates); this.dispatchChangeEvent(); }; diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 8611641d02..da4a7c2505 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -74,8 +74,29 @@ ol.geom.MultiLineString.prototype.getType = function() { */ ol.geom.MultiLineString.prototype.setCoordinates = function(coordinates, opt_layout) { - this.setLayout(opt_layout, coordinates, 2); - ol.geom.flat.deflateCoordinatess( - this.flatCoordinates, 0, coordinates, this.stride, this.ends_); + if (goog.isNull(coordinates)) { + this.setFlatCoordinates(ol.geom.Layout.XY, null, this.ends_); + } else { + this.setLayout(opt_layout, coordinates, 2); + if (goog.isNull(this.flatCoordinates)) { + this.flatCoordinates = []; + } + var ends = ol.geom.flat.deflateCoordinatess( + this.flatCoordinates, 0, coordinates, this.stride, this.ends_); + this.flatCoordinates.length = ends.length === 0 ? 0 : ends[ends.length - 1]; + this.dispatchChangeEvent(); + } +}; + + +/** + * @param {ol.geom.Layout} layout Layout. + * @param {Array.} flatCoordinates Flat coordinates. + * @param {Array.} ends Ends. + */ +ol.geom.MultiLineString.prototype.setFlatCoordinates = + function(layout, flatCoordinates, ends) { + this.setFlatCoordinatesInternal(layout, flatCoordinates); + this.ends_ = ends; this.dispatchChangeEvent(); }; diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index 930ae9041d..525f720720 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -57,8 +57,26 @@ ol.geom.MultiPoint.prototype.getType = function() { */ ol.geom.MultiPoint.prototype.setCoordinates = function(coordinates, opt_layout) { - this.setLayout(opt_layout, coordinates, 1); - ol.geom.flat.deflateCoordinates( - this.flatCoordinates, 0, coordinates, this.stride); + if (goog.isNull(coordinates)) { + this.setFlatCoordinates(ol.geom.Layout.XY, null); + } else { + this.setLayout(opt_layout, coordinates, 1); + if (goog.isNull(this.flatCoordinates)) { + this.flatCoordinates = []; + } + this.flatCoordinates.length = ol.geom.flat.deflateCoordinates( + this.flatCoordinates, 0, coordinates, this.stride); + this.dispatchChangeEvent(); + } +}; + + +/** + * @param {ol.geom.Layout} layout Layout. + * @param {Array.} flatCoordinates Flat coordinates. + */ +ol.geom.MultiPoint.prototype.setFlatCoordinates = + function(layout, flatCoordinates) { + this.setFlatCoordinatesInternal(layout, flatCoordinates); this.dispatchChangeEvent(); }; diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 55b7bc2052..e4fbdb3d87 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -119,10 +119,33 @@ ol.geom.MultiPolygon.prototype.getType = function() { */ ol.geom.MultiPolygon.prototype.setCoordinates = function(coordinates, opt_layout) { - this.setLayout(opt_layout, coordinates, 3); - ol.geom.flat.deflateCoordinatesss( - this.flatCoordinates, 0, coordinates, this.stride, this.endss_); - ol.geom.flat.orientLinearRingss( - this.flatCoordinates, 0, this.endss_, this.stride); + if (goog.isNull(coordinates)) { + this.setFlatCoordinates(ol.geom.Layout.XY, null, this.endss_); + } else { + this.setLayout(opt_layout, coordinates, 3); + if (goog.isNull(this.flatCoordinates)) { + this.flatCoordinates = []; + } + var endss = ol.geom.flat.deflateCoordinatesss( + this.flatCoordinates, 0, coordinates, this.stride, this.endss_); + var lastEnds = endss[endss.length - 1]; + this.flatCoordinates.length = lastEnds.length === 0 ? + 0 : lastEnds[lastEnds.length - 1]; + ol.geom.flat.orientLinearRingss( + this.flatCoordinates, 0, this.endss_, this.stride); + this.dispatchChangeEvent(); + } +}; + + +/** + * @param {ol.geom.Layout} layout Layout. + * @param {Array.} flatCoordinates Flat coordinates. + * @param {Array.>} endss Endss. + */ +ol.geom.MultiPolygon.prototype.setFlatCoordinates = + function(layout, flatCoordinates, endss) { + this.setFlatCoordinatesInternal(layout, flatCoordinates); + this.endss_ = endss; this.dispatchChangeEvent(); }; diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index 7d660b92b6..a458ce2160 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -3,6 +3,7 @@ goog.provide('ol.geom.Point'); goog.require('goog.asserts'); goog.require('ol.extent'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.flat'); @@ -54,7 +55,25 @@ ol.geom.Point.prototype.getType = function() { * @param {ol.geom.Layout=} opt_layout Layout. */ ol.geom.Point.prototype.setCoordinates = function(coordinates, opt_layout) { - this.setLayout(opt_layout, coordinates, 0); - this.flatCoordinates = coordinates; + if (goog.isNull(coordinates)) { + this.setFlatCoordinates(ol.geom.Layout.XY, null); + } else { + this.setLayout(opt_layout, coordinates, 0); + if (goog.isNull(this.flatCoordinates)) { + this.flatCoordinates = []; + } + this.flatCoordinates.length = ol.geom.flat.deflateCoordinate( + this.flatCoordinates, 0, coordinates, this.stride); + this.dispatchChangeEvent(); + } +}; + + +/** + * @param {ol.geom.Layout} layout Layout. + * @param {Array.} flatCoordinates Flat coordinates. + */ +ol.geom.Point.prototype.setFlatCoordinates = function(layout, flatCoordinates) { + this.setFlatCoordinatesInternal(layout, flatCoordinates); this.dispatchChangeEvent(); }; diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 2c4a732f4b..039384ac07 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -117,10 +117,31 @@ ol.geom.Polygon.prototype.getType = function() { * @param {ol.geom.Layout=} opt_layout Layout. */ ol.geom.Polygon.prototype.setCoordinates = function(coordinates, opt_layout) { - this.setLayout(opt_layout, coordinates, 2); - ol.geom.flat.deflateCoordinatess( - this.flatCoordinates, 0, coordinates, this.stride, this.ends_); - ol.geom.flat.orientLinearRings( - this.flatCoordinates, 0, this.ends_, this.stride); + if (goog.isNull(coordinates)) { + this.setFlatCoordinates(ol.geom.Layout.XY, null, this.ends_); + } else { + this.setLayout(opt_layout, coordinates, 2); + if (goog.isNull(this.flatCoordinates)) { + this.flatCoordinates = []; + } + var ends = ol.geom.flat.deflateCoordinatess( + this.flatCoordinates, 0, coordinates, this.stride, this.ends_); + this.flatCoordinates.length = ends.length === 0 ? 0 : ends[ends.length - 1]; + ol.geom.flat.orientLinearRings( + this.flatCoordinates, 0, this.ends_, this.stride); + this.dispatchChangeEvent(); + } +}; + + +/** + * @param {ol.geom.Layout} layout Layout. + * @param {Array.} flatCoordinates Flat coordinates. + * @param {Array.} ends Ends. + */ +ol.geom.Polygon.prototype.setFlatCoordinates = + function(layout, flatCoordinates, ends) { + this.setFlatCoordinatesInternal(layout, flatCoordinates); + this.ends_ = ends; this.dispatchChangeEvent(); }; diff --git a/test/spec/ol/geom/linestring.test.js b/test/spec/ol/geom/linestring.test.js index b16b628a57..0c0b510580 100644 --- a/test/spec/ol/geom/linestring.test.js +++ b/test/spec/ol/geom/linestring.test.js @@ -3,6 +3,13 @@ goog.provide('ol.test.geom.LineString'); describe('ol.geom.LineString', function() { + it('can be constructed with a null geometry', function() { + expect(function() { + var lineString = new ol.geom.LineString(null); + lineString = lineString; // suppress gjslint warning + }).not.to.throwException(); + }); + describe('construct empty', function() { var lineString; diff --git a/test/spec/ol/geom/multilinestring.test.js b/test/spec/ol/geom/multilinestring.test.js index e6021aea9d..2fa422db75 100644 --- a/test/spec/ol/geom/multilinestring.test.js +++ b/test/spec/ol/geom/multilinestring.test.js @@ -3,6 +3,13 @@ goog.provide('ol.test.geom.MultiLineString'); describe('ol.geom.MultiLineString', function() { + it('can be constructed with a null geometry', function() { + expect(function() { + var multiLineString = new ol.geom.MultiLineString(null); + multiLineString = multiLineString; // suppress gjslint warning + }).not.to.throwException(); + }); + describe('construct empty', function() { var multiLineString; diff --git a/test/spec/ol/geom/multipoint.test.js b/test/spec/ol/geom/multipoint.test.js index 18065bf18f..304e834159 100644 --- a/test/spec/ol/geom/multipoint.test.js +++ b/test/spec/ol/geom/multipoint.test.js @@ -3,6 +3,13 @@ goog.provide('ol.test.geom.MultiPoint'); describe('ol.geom.MultiPoint', function() { + it('can be constructed with a null geometry', function() { + expect(function() { + var multiPoint = new ol.geom.MultiPoint(null); + multiPoint = multiPoint; // suppress gjslint warning + }).not.to.throwException(); + }); + describe('construct empty', function() { var multiPoint; diff --git a/test/spec/ol/geom/multipolygon.test.js b/test/spec/ol/geom/multipolygon.test.js new file mode 100644 index 0000000000..92badfa88a --- /dev/null +++ b/test/spec/ol/geom/multipolygon.test.js @@ -0,0 +1,16 @@ +goog.provide('ol.test.geom.MultiPolygon'); + + +describe('ol.geom.MultiPolygon', function() { + + it('can be constructed with a null geometry', function() { + expect(function() { + var multiPolygon = new ol.geom.MultiPolygon(null); + multiPolygon = multiPolygon; // suppress gjslint warning + }).not.to.throwException(); + }); + +}); + + +goog.require('ol.geom.MultiPolygon'); diff --git a/test/spec/ol/geom/point.test.js b/test/spec/ol/geom/point.test.js index cea7644fe7..74ff2afad0 100644 --- a/test/spec/ol/geom/point.test.js +++ b/test/spec/ol/geom/point.test.js @@ -3,6 +3,13 @@ goog.provide('ol.test.geom.Point'); describe('ol.geom.Point', function() { + it('can be constructed with a null geometry', function() { + expect(function() { + var point = new ol.geom.Point(null); + point = point; // suppress gjslint warning + }).not.to.throwException(); + }); + describe('construct with 2D coordinates', function() { var point; diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js index 0be8b0734a..bd53d9f2a0 100644 --- a/test/spec/ol/geom/polygon.test.js +++ b/test/spec/ol/geom/polygon.test.js @@ -5,6 +5,13 @@ goog.provide('ol.test.geom.Polygon'); describe('ol.geom.Polygon', function() { + it('can be constructed with a null geometry', function() { + expect(function() { + var polygon = new ol.geom.Polygon(null); + polygon = polygon; // suppress gjslint warning + }).not.to.throwException(); + }); + describe('construct empty', function() { var polygon; From d7591594ca5cfedba2faab0541f7b656e38548b4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 16:24:11 +0100 Subject: [PATCH 480/919] Allow forEachFeatureAtPixel callback to break out of loop --- src/ol/map.js | 9 ++-- src/ol/render/canvas/canvasreplay.js | 54 +++++++++++++------ .../canvas/canvasvectorlayerrenderer.js | 10 ++-- src/ol/renderer/layerrenderer.js | 5 +- src/ol/renderer/maprenderer.js | 27 ++++++++-- 5 files changed, 77 insertions(+), 28 deletions(-) diff --git a/src/ol/map.js b/src/ol/map.js index 18e7818346..c783f06fb1 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -457,10 +457,13 @@ ol.Map.prototype.disposeInternal = function() { /** * @param {ol.Pixel} pixel Pixel. - * @param {function(ol.Feature)} callback Feature callback. + * @param {function(this: S, ol.Feature): T} callback Feature callback. + * @param {S=} opt_obj Scope. + * @return {T|undefined} Callback result. + * @template S,T */ -ol.Map.prototype.forEachFeatureAtPixel = function(pixel, callback) { - this.renderer_.forEachFeatureAtPixel(pixel, callback); +ol.Map.prototype.forEachFeatureAtPixel = function(pixel, callback, opt_obj) { + return this.renderer_.forEachFeatureAtPixel(pixel, callback, opt_obj); }; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 2b5be51b49..375067ffec 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -120,7 +120,10 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { * @param {goog.vec.Mat4.AnyType} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. - * @param {function(ol.geom.Geometry, Object)=} opt_callback Geometry callback. + * @param {function(ol.geom.Geometry, Object): T=} opt_callback + * Geometry callback. + * @return {T|undefined} Callback result. + * @template T */ ol.render.canvas.Replay.prototype.replay = function(context, transform, renderGeometryFunction, opt_callback) { @@ -189,7 +192,10 @@ ol.render.canvas.Replay.prototype.replay = goog.asserts.assert(goog.isDef(opt_callback)); geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); var data = /** @type {Object} */ (instruction[2]); - opt_callback(geometry, data); + var result = opt_callback(geometry, data); + if (result) { + return result; + } } ++i; } else if (type == ol.render.canvas.Instruction.FILL) { @@ -240,6 +246,7 @@ ol.render.canvas.Replay.prototype.replay = goog.asserts.assert(d == pixelCoordinates.length); // assert that all instructions were consumed goog.asserts.assert(i == instructions.length); + return undefined; }; @@ -958,15 +965,18 @@ ol.render.canvas.ReplayGroup = function() { * @param {goog.vec.Mat4.AnyType} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. - * @param {function(ol.geom.Geometry, Object)=} opt_callback Geometry callback. + * @param {function(ol.geom.Geometry, Object): T=} opt_callback Geometry + * callback. + * @return {T|undefined} Callback result. + * @template T */ ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent, transform, renderGeometryFunction, opt_callback) { /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); goog.array.sort(zs); - this.replay_(zs, context, extent, transform, renderGeometryFunction, - opt_callback); + return this.replay_( + zs, context, extent, transform, renderGeometryFunction, opt_callback); }; @@ -978,11 +988,13 @@ ol.render.canvas.ReplayGroup.prototype.replay = * @param {goog.vec.Mat4.AnyType} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. - * @param {function(ol.geom.Geometry, Object)=} opt_callback Geometry callback. + * @param {function(ol.geom.Geometry, Object): T=} opt_callback Geometry + * callback. + * @return {T|undefined} Callback result. + * @template T */ -ol.render.canvas.ReplayGroup.prototype.replay_ = - function(zs, context, extent, transform, renderGeometryFunction, - opt_callback) { +ol.render.canvas.ReplayGroup.prototype.replay_ = function(zs, context, extent, + transform, renderGeometryFunction, opt_callback) { var i, ii; for (i = 0, ii = zs.length; i < ii; ++i) { var replayes = this.replayesByZIndex_[zs[i].toString()]; @@ -990,10 +1002,15 @@ ol.render.canvas.ReplayGroup.prototype.replay_ = for (replayType in replayes) { var replay = replayes[replayType]; if (ol.extent.intersects(extent, replay.getExtent())) { - replay.replay(context, transform, renderGeometryFunction, opt_callback); + var result = replay.replay( + context, transform, renderGeometryFunction, opt_callback); + if (result) { + return result; + } } } } + return undefined; }; @@ -1003,10 +1020,12 @@ ol.render.canvas.ReplayGroup.prototype.replay_ = * @param {ol.Coordinate} coordinate Coordinate. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. - * @param {function(ol.geom.Geometry, Object)} callback Geometry callback. + * @param {function(ol.geom.Geometry, Object): T} callback Geometry callback. + * @return {T|undefined} Callback result. + * @template T */ -ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtCoordinate = - function(extent, resolution, coordinate, renderGeometryFunction, callback) { +ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtCoordinate = function( + extent, resolution, coordinate, renderGeometryFunction, callback) { var transform = this.hitDetectionTransform_; ol.vec.Mat4.makeTransform2D(transform, 0.5, 0.5, @@ -1017,16 +1036,21 @@ ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtCoordinate = goog.array.sort(zs, function(a, b) { return b - a; }); var context = this.hitDetectionContext_; + context.clearRect(0, 0, 1, 1); - this.replay_(zs, context, extent, transform, renderGeometryFunction, + return this.replay_(zs, context, extent, transform, renderGeometryFunction, /** * @param {ol.geom.Geometry} geometry Geometry. * @param {Object} data Opaque data object. + * @return {?} Callback result. */ function(geometry, data) { var imageData = context.getImageData(0, 0, 1, 1).data; if (imageData[3] > 0) { - callback(geometry, data); + var result = callback(geometry, data); + if (result) { + return result; + } context.clearRect(0, 0, 1, 1); } }); diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 4fca4bdfe0..7a57f556ca 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -85,14 +85,16 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = * @inheritDoc */ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = - function(pixel, callback) { - if (!goog.isNull(this.replayGroup_)) { + function(pixel, callback, opt_obj) { + if (goog.isNull(this.replayGroup_)) { + return undefined; + } else { goog.asserts.assert(!ol.extent.isEmpty(this.renderedExtent_)); goog.asserts.assert(!isNaN(this.renderedResolution_)); var coordinate = this.getMap().getCoordinateFromPixel(pixel); var renderGeometryFunction = this.getRenderGeometryFunction_(); goog.asserts.assert(goog.isFunction(renderGeometryFunction)); - this.replayGroup_.forEachGeometryAtCoordinate(this.renderedExtent_, + return this.replayGroup_.forEachGeometryAtCoordinate(this.renderedExtent_, this.renderedResolution_, coordinate, renderGeometryFunction, /** * @param {ol.geom.Geometry} geometry Geometry. @@ -101,7 +103,7 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = function(geometry, data) { var feature = /** @type {ol.Feature} */ (data); goog.asserts.assert(goog.isDef(feature)); - callback(feature); + return callback.call(opt_obj, feature); }); } }; diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index 110e294e72..23a2bf1d8d 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -44,7 +44,10 @@ goog.inherits(ol.renderer.Layer, goog.Disposable); /** * @param {ol.Pixel} pixel Pixel. - * @param {function(ol.Feature)} callback Feature callback. + * @param {function(this: S, ol.Feature): T} callback Feature callback. + * @param {S=} opt_obj Scope. + * @return {T|undefined} Callback result. + * @template S,T */ ol.renderer.Layer.prototype.forEachFeatureAtPixel = goog.nullFunction; diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index 627d98066c..ec57481bf0 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -80,13 +80,30 @@ ol.renderer.Map.prototype.disposeInternal = function() { /** * @param {ol.Pixel} pixel Pixel. - * @param {function(ol.Feature)} callback Feature callback. + * @param {function(this: S, ol.Feature): T} callback Feature callback. + * @param {S=} opt_obj Scope. + * @return {T|undefined} Callback result. + * @template S,T */ ol.renderer.Map.prototype.forEachFeatureAtPixel = - function(pixel, callback) { - goog.object.forEach(this.layerRenderers_, function(layerRenderer) { - layerRenderer.forEachFeatureAtPixel(pixel, callback); - }); + function(pixel, callback, opt_obj) { + var layers = this.map_.getLayers(); + if (goog.isDef(layers)) { + var layersArray = layers.getArray(); + var i; + for (i = layersArray.length - 1; i >= 0; --i) { + var layer = layersArray[i]; + if (layer.getVisible()) { + var layerRenderer = this.getLayerRenderer(layer); + var result = + layerRenderer.forEachFeatureAtPixel(pixel, callback, opt_obj); + if (result) { + return result; + } + } + } + } + return undefined; }; From 15fd9f7662a253aaa5adf8c793dc7ad55fd4018d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 16:25:17 +0100 Subject: [PATCH 481/919] Break out of forEachFeatureAtPixel as soon as hit detected in icon example --- examples/icon.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/icon.js b/examples/icon.js index 97c42b04d2..82e1d5ae53 100644 --- a/examples/icon.js +++ b/examples/icon.js @@ -68,9 +68,8 @@ map.addOverlay(popup); // display popup on click map.on('singleclick', function(evt) { - var feature; - map.forEachFeatureAtPixel(evt.getPixel(), function(f) { - feature = f; + var feature = map.forEachFeatureAtPixel(evt.getPixel(), function(feature) { + return feature; }); if (feature) { var geometry = feature.getGeometry(); @@ -90,9 +89,8 @@ map.on('singleclick', function(evt) { // change mouse cursor when over marker $(map.getViewport()).on('mousemove', function(e) { var pixel = map.getEventPixel(e.originalEvent); - var hit = false; - map.forEachFeatureAtPixel(pixel, function(feature) { - hit = true; + var hit = map.forEachFeatureAtPixel(pixel, function(feature) { + return true; }); if (hit) { map.getTarget().style.cursor = 'pointer'; From 41811e6566167d3b06c9ac494a7f987f129cdc47 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 16:25:44 +0100 Subject: [PATCH 482/919] Break out of forEachFeatureAtPixel as soon as hit detected in synthetic-points example --- examples/synthetic-points.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/synthetic-points.js b/examples/synthetic-points.js index 2036efc48f..c740881fcd 100644 --- a/examples/synthetic-points.js +++ b/examples/synthetic-points.js @@ -64,9 +64,8 @@ var map = new ol.Map({ $(map.getViewport()).on('mousemove', function(e) { var pixel = map.getEventPixel(e.originalEvent); - var hit = false; - map.forEachFeatureAtPixel(pixel, function(feature) { - hit = true; + var hit = map.forEachFeatureAtPixel(pixel, function(feature) { + return true; }); if (hit) { From f1a9f768415b0db2aa864f4a402d82b5197b9725 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 16:25:56 +0100 Subject: [PATCH 483/919] Break out of forEachFeatureAtPixel as soon as hit detected in vector-layer example --- examples/vector-layer.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 7317d555be..53e52763d5 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -59,11 +59,8 @@ var highlight; var displayFeatureInfo = function(pixel) { var oldHighlight = highlight; - var feature; - map.forEachFeatureAtPixel(pixel, function(f) { - if (!feature) { - feature = f; - } + var feature = map.forEachFeatureAtPixel(pixel, function(feature) { + return feature; }); var info = document.getElementById('info'); From e9267e401ce63f9c3b665290d17fb11564ad0d44 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 16:45:50 +0100 Subject: [PATCH 484/919] Pass layer to forEachFeatureAtPixel callback --- src/ol/map.js | 3 ++- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 3 ++- src/ol/renderer/layerrenderer.js | 3 ++- src/ol/renderer/maprenderer.js | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ol/map.js b/src/ol/map.js index c783f06fb1..061fb0bfd0 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -457,7 +457,8 @@ ol.Map.prototype.disposeInternal = function() { /** * @param {ol.Pixel} pixel Pixel. - * @param {function(this: S, ol.Feature): T} callback Feature callback. + * @param {function(this: S, ol.Feature, ol.layer.Layer): T} callback Feature + * callback. * @param {S=} opt_obj Scope. * @return {T|undefined} Callback result. * @template S,T diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 7a57f556ca..92b922df07 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -92,6 +92,7 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = goog.asserts.assert(!ol.extent.isEmpty(this.renderedExtent_)); goog.asserts.assert(!isNaN(this.renderedResolution_)); var coordinate = this.getMap().getCoordinateFromPixel(pixel); + var layer = this.getLayer(); var renderGeometryFunction = this.getRenderGeometryFunction_(); goog.asserts.assert(goog.isFunction(renderGeometryFunction)); return this.replayGroup_.forEachGeometryAtCoordinate(this.renderedExtent_, @@ -103,7 +104,7 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = function(geometry, data) { var feature = /** @type {ol.Feature} */ (data); goog.asserts.assert(goog.isDef(feature)); - return callback.call(opt_obj, feature); + return callback.call(opt_obj, feature, layer); }); } }; diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index 23a2bf1d8d..eac5586f6f 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -44,7 +44,8 @@ goog.inherits(ol.renderer.Layer, goog.Disposable); /** * @param {ol.Pixel} pixel Pixel. - * @param {function(this: S, ol.Feature): T} callback Feature callback. + * @param {function(this: S, ol.Feature, ol.layer.Layer): T} callback Feature + * callback. * @param {S=} opt_obj Scope. * @return {T|undefined} Callback result. * @template S,T diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index ec57481bf0..35c1f5e55f 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -80,7 +80,8 @@ ol.renderer.Map.prototype.disposeInternal = function() { /** * @param {ol.Pixel} pixel Pixel. - * @param {function(this: S, ol.Feature): T} callback Feature callback. + * @param {function(this: S, ol.Feature, ol.layer.Layer): T} callback Feature + * callback. * @param {S=} opt_obj Scope. * @return {T|undefined} Callback result. * @template S,T From 5acc673c6894ed74ce5d10a1e9d65fb9d4b9b7d6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 16:46:24 +0100 Subject: [PATCH 485/919] Add layer to forEachFeatureAtPixel callbacks in examples --- examples/icon.js | 9 +++++---- examples/synthetic-points.js | 2 +- examples/vector-layer.js | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/examples/icon.js b/examples/icon.js index 82e1d5ae53..4297145edf 100644 --- a/examples/icon.js +++ b/examples/icon.js @@ -68,9 +68,10 @@ map.addOverlay(popup); // display popup on click map.on('singleclick', function(evt) { - var feature = map.forEachFeatureAtPixel(evt.getPixel(), function(feature) { - return feature; - }); + var feature = map.forEachFeatureAtPixel(evt.getPixel(), + function(feature, layer) { + return feature; + }); if (feature) { var geometry = feature.getGeometry(); var coord = geometry.getCoordinates(); @@ -89,7 +90,7 @@ map.on('singleclick', function(evt) { // change mouse cursor when over marker $(map.getViewport()).on('mousemove', function(e) { var pixel = map.getEventPixel(e.originalEvent); - var hit = map.forEachFeatureAtPixel(pixel, function(feature) { + var hit = map.forEachFeatureAtPixel(pixel, function(feature, layer) { return true; }); if (hit) { diff --git a/examples/synthetic-points.js b/examples/synthetic-points.js index c740881fcd..ac139f50d5 100644 --- a/examples/synthetic-points.js +++ b/examples/synthetic-points.js @@ -64,7 +64,7 @@ var map = new ol.Map({ $(map.getViewport()).on('mousemove', function(e) { var pixel = map.getEventPixel(e.originalEvent); - var hit = map.forEachFeatureAtPixel(pixel, function(feature) { + var hit = map.forEachFeatureAtPixel(pixel, function(feature, layer) { return true; }); diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 53e52763d5..3962958771 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -59,7 +59,7 @@ var highlight; var displayFeatureInfo = function(pixel) { var oldHighlight = highlight; - var feature = map.forEachFeatureAtPixel(pixel, function(feature) { + var feature = map.forEachFeatureAtPixel(pixel, function(feature, layer) { return feature; }); From 9d57b53c0f31741390102e9b1ad5879a08cfc40e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 16:59:10 +0100 Subject: [PATCH 486/919] Add optional layerFunction to ol.Map#forEachFeatureAtPixel --- src/ol/map.js | 15 +++++++++++---- src/ol/renderer/maprenderer.js | 13 +++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/ol/map.js b/src/ol/map.js index 061fb0bfd0..b184c60fa2 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -459,12 +459,19 @@ ol.Map.prototype.disposeInternal = function() { * @param {ol.Pixel} pixel Pixel. * @param {function(this: S, ol.Feature, ol.layer.Layer): T} callback Feature * callback. - * @param {S=} opt_obj Scope. + * @param {S=} opt_obj Scope for feature callback. + * @param {function(this: U, ol.layer.Layer): boolean=} opt_layerFunction Layer + * function, only layers which are visible and for which this function + * returns `true` will be tested for features. By default, all visible + * layers will be tested. + * @param {U=} opt_obj2 Scope for layer function. * @return {T|undefined} Callback result. - * @template S,T + * @template S,T,U */ -ol.Map.prototype.forEachFeatureAtPixel = function(pixel, callback, opt_obj) { - return this.renderer_.forEachFeatureAtPixel(pixel, callback, opt_obj); +ol.Map.prototype.forEachFeatureAtPixel = + function(pixel, callback, opt_obj, opt_layerFunction, opt_obj2) { + return this.renderer_.forEachFeatureAtPixel( + pixel, callback, opt_obj, opt_layerFunction, opt_obj2); }; diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index 35c1f5e55f..fac6bec51e 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -82,19 +82,24 @@ ol.renderer.Map.prototype.disposeInternal = function() { * @param {ol.Pixel} pixel Pixel. * @param {function(this: S, ol.Feature, ol.layer.Layer): T} callback Feature * callback. - * @param {S=} opt_obj Scope. + * @param {S=} opt_obj Scope for feature callback. + * @param {function(this: U, ol.layer.Layer): boolean=} opt_layerFunction Layer + * function. + * @param {U=} opt_obj2 Scope for layer function. * @return {T|undefined} Callback result. - * @template S,T + * @template S,T,U */ ol.renderer.Map.prototype.forEachFeatureAtPixel = - function(pixel, callback, opt_obj) { + function(pixel, callback, opt_obj, opt_layerFunction, opt_obj2) { + var layerFunction = goog.isDef(opt_layerFunction) ? + opt_layerFunction : goog.functions.TRUE; var layers = this.map_.getLayers(); if (goog.isDef(layers)) { var layersArray = layers.getArray(); var i; for (i = layersArray.length - 1; i >= 0; --i) { var layer = layersArray[i]; - if (layer.getVisible()) { + if (layer.getVisible() && layerFunction.call(opt_obj2, layer)) { var layerRenderer = this.getLayerRenderer(layer); var result = layerRenderer.forEachFeatureAtPixel(pixel, callback, opt_obj); From a836d6924dfd3b7af0a4108cac075e90e083d593 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 2 Dec 2013 17:13:09 +0100 Subject: [PATCH 487/919] Add FIXME --- src/ol/map.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/map.js b/src/ol/map.js index b184c60fa2..4aef67403a 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -470,6 +470,7 @@ ol.Map.prototype.disposeInternal = function() { */ ol.Map.prototype.forEachFeatureAtPixel = function(pixel, callback, opt_obj, opt_layerFunction, opt_obj2) { + // FIXME this function should probably take an options object return this.renderer_.forEachFeatureAtPixel( pixel, callback, opt_obj, opt_layerFunction, opt_obj2); }; From d5e5749967ac6693b34ef4ff27123d7e0fef5947 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 14:48:21 +0100 Subject: [PATCH 488/919] Add ol.structs.RBush#isEmpty --- src/ol/structs/rbush.js | 8 +++++++ test/spec/ol/structs/rbush.test.js | 34 ++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/src/ol/structs/rbush.js b/src/ol/structs/rbush.js index 549c3be3da..e0bdc81819 100644 --- a/src/ol/structs/rbush.js +++ b/src/ol/structs/rbush.js @@ -574,6 +574,14 @@ ol.structs.RBush.prototype.insert_ = function(extent, value, level) { }; +/** + * @return {boolean} Is empty. + */ +ol.structs.RBush.prototype.isEmpty = function() { + return this.root_.children.length === 0; +}; + + /** * @param {T} value Value. */ diff --git a/test/spec/ol/structs/rbush.test.js b/test/spec/ol/structs/rbush.test.js index cdf6b7167d..250aa374b5 100644 --- a/test/spec/ol/structs/rbush.test.js +++ b/test/spec/ol/structs/rbush.test.js @@ -18,6 +18,14 @@ describe('ol.structs.RBush', function() { }); + describe('#isEmpty', function() { + + it('returns true', function() { + expect(rBush.isEmpty()).to.be(true); + }); + + }); + }); describe('with a few objects', function() { @@ -76,6 +84,14 @@ describe('ol.structs.RBush', function() { }); }); + describe('#isEmpty', function() { + + it('returns false', function() { + expect(rBush.isEmpty()).to.be(false); + }); + + }); + describe('#remove', function() { it('can remove each object', function() { @@ -155,6 +171,14 @@ describe('ol.structs.RBush', function() { }); + describe('#isEmpty', function() { + + it('returns false', function() { + expect(rBush.isEmpty()).to.be(false); + }); + + }); + describe('#remove', function() { it('can remove each object in turn', function() { @@ -165,6 +189,7 @@ describe('ol.structs.RBush', function() { expect(rBush.getAllInExtent(extents[i])).to.be.empty(); } expect(rBush.getAll()).to.be.empty(); + expect(rBush.isEmpty()).to.be(true); }); it('can remove objects in random order', function() { @@ -183,6 +208,7 @@ describe('ol.structs.RBush', function() { expect(rBush.getAllInExtent(extents[index])).to.be.empty(); } expect(rBush.getAll()).to.be.empty(); + expect(rBush.isEmpty()).to.be(true); }); }); @@ -260,6 +286,14 @@ describe('ol.structs.RBush', function() { }); + describe('#isEmpty', function() { + + it('returns false', function() { + expect(rBush.isEmpty()).to.be(false); + }); + + }); + }); }); From 66457a7aaf07bcbc6dbe05c7000835ca0600715b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 14:49:25 +0100 Subject: [PATCH 489/919] Add ol.source.Vector#isEmpty --- src/ol/source/vectorsource.js | 8 ++++++++ test/spec/ol/source/vectorsource.test.js | 16 ++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index d01ff50ddb..4d306c1065 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -166,6 +166,14 @@ ol.source.Vector.prototype.handleFeatureChange_ = function(event) { }; +/** + * @return {boolean} Is empty. + */ +ol.source.Vector.prototype.isEmpty = function() { + return this.rBush_.isEmpty(); +}; + + /** * @param {ol.Feature} feature Feature. */ diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js index 17af7df1ab..ba7268a1ec 100644 --- a/test/spec/ol/source/vectorsource.test.js +++ b/test/spec/ol/source/vectorsource.test.js @@ -37,6 +37,14 @@ describe('ol.source.Vector', function() { }); + describe('#isEmpty', function() { + + it('returns true', function() { + expect(vectorSource.isEmpty()).to.be(true); + }); + + }); + describe('#addFeature', function() { it('can add a single point feature', function() { @@ -103,6 +111,14 @@ describe('ol.source.Vector', function() { }); + describe('#isEmpty', function() { + + it('returns false', function() { + expect(vectorSource.isEmpty()).to.be(false); + }); + + }); + describe.skip('#removeFeature', function() { it('works as expected', function() { From ae3ab95b566e2e7e3085bee9dc474f5182d39233 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 14:59:18 +0100 Subject: [PATCH 490/919] Factor out ol.source.Vector#removeFeatureInternal_ --- src/ol/source/vectorsource.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 4d306c1065..0503486648 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -179,13 +179,22 @@ ol.source.Vector.prototype.isEmpty = function() { */ ol.source.Vector.prototype.removeFeature = function(feature) { this.rBush_.remove(feature); + this.removeFeatureInternal_(feature); + this.dispatchChangeEvent(); +}; + + +/** + * @param {ol.Feature} feature Feature. + * @private + */ +ol.source.Vector.prototype.removeFeatureInternal_ = function(feature) { var featureKey = goog.getUid(feature) + ''; goog.asserts.assert(featureKey in this.featureChangeKeys_); goog.events.unlistenByKey(this.featureChangeKeys_[featureKey]); delete this.featureChangeKeys_[featureKey]; this.dispatchEvent(new ol.source.VectorEvent( ol.source.VectorEventType.REMOVEFEATURE, feature)); - this.dispatchChangeEvent(); }; From 79c6787e52a1f26787d4c438691bf56dfe12d8bf Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 14:59:30 +0100 Subject: [PATCH 491/919] Add ol.source.Vector#clear --- src/ol/source/vectorsource.js | 10 ++++++++++ test/spec/ol/source/vectorsource.test.js | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 0503486648..cf8ca377ae 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -81,6 +81,16 @@ ol.source.Vector.prototype.addFeature = function(feature) { }; +/** + * FIXME empty description for jsdoc + */ +ol.source.Vector.prototype.clear = function() { + this.rBush_.forEach(this.removeFeatureInternal_, this); + this.rBush_.clear(); + this.dispatchChangeEvent(); +}; + + /** * @param {function(this: T, ol.Feature): S} f Callback. * @param {T=} opt_obj The object to be used as the value of 'this' within f. diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js index ba7268a1ec..5e27f48de5 100644 --- a/test/spec/ol/source/vectorsource.test.js +++ b/test/spec/ol/source/vectorsource.test.js @@ -82,6 +82,24 @@ describe('ol.source.Vector', function() { }); }); + describe('#clear', function() { + + it('removes all features', function() { + var changeSpy = sinon.spy(); + goog.events.listen(vectorSource, 'change', changeSpy); + var removeFeatureSpy = sinon.spy(); + goog.events.listen(vectorSource, 'removefeature', removeFeatureSpy); + vectorSource.clear(); + expect(vectorSource.getAllFeatures()).to.eql([]); + expect(vectorSource.isEmpty()).to.be(true); + expect(changeSpy).to.be.called(); + expect(changeSpy.callCount).to.be(1); + expect(removeFeatureSpy).to.be.called(); + expect(removeFeatureSpy.callCount).to.be(10); + }); + + }); + describe('#forEachFeatureInExtent', function() { it('is called the expected number of times', function() { From aa0a02b93569ae5c09a1ed961ea9b2ea71176c30 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 15:03:20 +0100 Subject: [PATCH 492/919] Enable remaining ol.source.Vector tests --- test/spec/ol/source/vectorsource.test.js | 45 ++++++++---------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js index 5e27f48de5..7037c86bbc 100644 --- a/test/spec/ol/source/vectorsource.test.js +++ b/test/spec/ol/source/vectorsource.test.js @@ -137,7 +137,7 @@ describe('ol.source.Vector', function() { }); - describe.skip('#removeFeature', function() { + describe('#removeFeature', function() { it('works as expected', function() { var i; @@ -159,46 +159,29 @@ describe('ol.source.Vector', function() { describe('modifying a feature\'s geometry', function() { - it('fires a change event', function() { - var listener = sinon.spy(); - goog.events.listen(vectorSource, 'change', listener); + it('keeps the R-Tree index up to date', function() { + expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). + to.have.length(10); features[0].getGeometry().setCoordinates([100, 100]); - expect(listener).to.be.called(); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). + to.have.length(9); + features[0].getGeometry().setCoordinates([0.5, 0.5]); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). + to.have.length(10); }); - if (false) { - it('keeps the R-Tree index up to date', function() { - expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). - to.have.length(10); - features[0].getGeometry().setCoordinates([100, 100]); - expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). - to.have.length(9); - features[0].getGeometry().setCoordinates([0.5, 0.5]); - expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). - to.have.length(10); - }); - } - }); describe('setting a features geometry', function() { - it('fires a change event', function() { - var listener = sinon.spy(); - goog.events.listen(vectorSource, 'change', listener); + it('keeps the R-Tree index up to date', function() { + expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). + to.have.length(10); features[0].setGeometry(new ol.geom.Point([100, 100])); - expect(listener).to.be.called(); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). + to.have.length(9); }); - if (false) { - it('keeps the R-Tree index up to date', function() { - expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). - to.have.length(10); - features[0].setGeometry(new ol.geom.Point([100, 100])); - expect(vectorSource.getAllFeaturesInExtent([0, 0, 1, 1])). - to.have.length(9); - }); - } }); }); From 600cb3a0ff3ffec757f9510e198c5a0548913655 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 15:44:03 +0100 Subject: [PATCH 493/919] Add @struct annotation where possible --- src/ol/attribution.js | 1 + src/ol/kinetic.js | 1 + src/ol/proj/proj.js | 2 ++ src/ol/render/canvas/canvasimmediate.js | 1 + src/ol/render/canvas/canvasreplay.js | 5 +++++ src/ol/renderer/webgl/webglmapcolorshader.js | 3 +++ src/ol/renderer/webgl/webglmapdefaultshader.js | 3 +++ src/ol/renderer/webgl/webgltilelayershader.js | 3 +++ src/ol/structs/buffer.js | 1 + src/ol/structs/integerset.js | 1 + src/ol/structs/lrucache.js | 1 + src/ol/structs/priorityqueue.js | 1 + src/ol/structs/rbush.js | 2 ++ src/ol/tilecache.js | 1 + src/ol/tilegrid/tilegrid.js | 1 + src/ol/tilegrid/wmtstilegrid.js | 1 + src/ol/tilegrid/xyztilegrid.js | 1 + src/ol/tilequeue.js | 1 + src/ol/tilerange.js | 1 + src/ol/webgl/shader.js | 3 +++ src/ol/webgl/shader.mustache | 3 +++ 21 files changed, 37 insertions(+) diff --git a/src/ol/attribution.js b/src/ol/attribution.js index 361572bcc7..b762dfb006 100644 --- a/src/ol/attribution.js +++ b/src/ol/attribution.js @@ -21,6 +21,7 @@ goog.require('ol.TileRange'); * * @constructor * @param {ol.AttributionOptions} options Attribution options. + * @struct * @todo stability experimental */ ol.Attribution = function(options) { diff --git a/src/ol/kinetic.js b/src/ol/kinetic.js index 7bdbf1a3d4..56833aed1b 100644 --- a/src/ol/kinetic.js +++ b/src/ol/kinetic.js @@ -13,6 +13,7 @@ goog.require('ol.animation'); * @param {number} minVelocity Minimum velocity (pixels/millisecond). * @param {number} delay Delay to consider to calculate the kinetic * initial values (milliseconds). + * @struct * @todo stability experimental */ ol.Kinetic = function(decay, minVelocity, delay) { diff --git a/src/ol/proj/proj.js b/src/ol/proj/proj.js index c6268dd3ec..97b2d79b69 100644 --- a/src/ol/proj/proj.js +++ b/src/ol/proj/proj.js @@ -59,6 +59,7 @@ ol.METERS_PER_UNIT[ol.proj.Units.METERS] = 1; /** * @constructor * @param {ol.ProjectionOptions} options Projection options. + * @struct * @todo stability experimental */ ol.proj.Projection = function(options) { @@ -200,6 +201,7 @@ ol.proj.Projection.prototype.setDefaultTileGrid = function(tileGrid) { * @param {Proj4js.Proj} proj4jsProj Proj4js projection. * @param {ol.Proj4jsProjectionOptions} options Proj4js projection options. * @private + * @struct */ ol.Proj4jsProjection_ = function(proj4jsProj, options) { diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 746ed84e79..9b7782a0a1 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -19,6 +19,7 @@ goog.require('ol.style.Text'); * @param {CanvasRenderingContext2D} context Context. * @param {ol.Extent} extent Extent. * @param {goog.vec.Mat4.AnyType} transform Transform. + * @struct */ ol.render.canvas.Immediate = function(context, extent, transform) { diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 375067ffec..d4c3f520e3 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -41,6 +41,7 @@ ol.render.canvas.Instruction = { * @constructor * @implements {ol.render.IRender} * @protected + * @struct */ ol.render.canvas.Replay = function() { @@ -346,6 +347,7 @@ ol.render.canvas.Replay.prototype.setTextStyle = goog.abstractMethod; * @constructor * @extends {ol.render.canvas.Replay} * @protected + * @struct */ ol.render.canvas.ImageReplay = function() { @@ -496,6 +498,7 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { * @constructor * @extends {ol.render.canvas.Replay} * @protected + * @struct */ ol.render.canvas.LineStringReplay = function() { @@ -695,6 +698,7 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = * @constructor * @extends {ol.render.canvas.Replay} * @protected + * @struct */ ol.render.canvas.PolygonReplay = function() { @@ -925,6 +929,7 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { /** * @constructor * @implements {ol.render.IReplayGroup} + * @struct */ ol.render.canvas.ReplayGroup = function() { diff --git a/src/ol/renderer/webgl/webglmapcolorshader.js b/src/ol/renderer/webgl/webglmapcolorshader.js index 44bc6f212e..eeff8162d2 100644 --- a/src/ol/renderer/webgl/webglmapcolorshader.js +++ b/src/ol/renderer/webgl/webglmapcolorshader.js @@ -8,6 +8,7 @@ goog.require('ol.webgl.shader'); /** * @constructor * @extends {ol.webgl.shader.Fragment} + * @struct */ ol.renderer.webgl.map.shader.ColorFragment = function() { goog.base(this, ol.renderer.webgl.map.shader.ColorFragment.SOURCE); @@ -43,6 +44,7 @@ ol.renderer.webgl.map.shader.ColorFragment.SOURCE = goog.DEBUG ? /** * @constructor * @extends {ol.webgl.shader.Vertex} + * @struct */ ol.renderer.webgl.map.shader.ColorVertex = function() { goog.base(this, ol.renderer.webgl.map.shader.ColorVertex.SOURCE); @@ -79,6 +81,7 @@ ol.renderer.webgl.map.shader.ColorVertex.SOURCE = goog.DEBUG ? * @constructor * @param {WebGLRenderingContext} gl GL. * @param {WebGLProgram} program Program. + * @struct */ ol.renderer.webgl.map.shader.Color.Locations = function(gl, program) { diff --git a/src/ol/renderer/webgl/webglmapdefaultshader.js b/src/ol/renderer/webgl/webglmapdefaultshader.js index 8cf05e438f..47aff44a22 100644 --- a/src/ol/renderer/webgl/webglmapdefaultshader.js +++ b/src/ol/renderer/webgl/webglmapdefaultshader.js @@ -8,6 +8,7 @@ goog.require('ol.webgl.shader'); /** * @constructor * @extends {ol.webgl.shader.Fragment} + * @struct */ ol.renderer.webgl.map.shader.DefaultFragment = function() { goog.base(this, ol.renderer.webgl.map.shader.DefaultFragment.SOURCE); @@ -43,6 +44,7 @@ ol.renderer.webgl.map.shader.DefaultFragment.SOURCE = goog.DEBUG ? /** * @constructor * @extends {ol.webgl.shader.Vertex} + * @struct */ ol.renderer.webgl.map.shader.DefaultVertex = function() { goog.base(this, ol.renderer.webgl.map.shader.DefaultVertex.SOURCE); @@ -79,6 +81,7 @@ ol.renderer.webgl.map.shader.DefaultVertex.SOURCE = goog.DEBUG ? * @constructor * @param {WebGLRenderingContext} gl GL. * @param {WebGLProgram} program Program. + * @struct */ ol.renderer.webgl.map.shader.Default.Locations = function(gl, program) { diff --git a/src/ol/renderer/webgl/webgltilelayershader.js b/src/ol/renderer/webgl/webgltilelayershader.js index 8d8169042c..6cbb58103b 100644 --- a/src/ol/renderer/webgl/webgltilelayershader.js +++ b/src/ol/renderer/webgl/webgltilelayershader.js @@ -8,6 +8,7 @@ goog.require('ol.webgl.shader'); /** * @constructor * @extends {ol.webgl.shader.Fragment} + * @struct */ ol.renderer.webgl.tilelayer.shader.Fragment = function() { goog.base(this, ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE); @@ -43,6 +44,7 @@ ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE = goog.DEBUG ? /** * @constructor * @extends {ol.webgl.shader.Vertex} + * @struct */ ol.renderer.webgl.tilelayer.shader.Vertex = function() { goog.base(this, ol.renderer.webgl.tilelayer.shader.Vertex.SOURCE); @@ -79,6 +81,7 @@ ol.renderer.webgl.tilelayer.shader.Vertex.SOURCE = goog.DEBUG ? * @constructor * @param {WebGLRenderingContext} gl GL. * @param {WebGLProgram} program Program. + * @struct */ ol.renderer.webgl.tilelayer.shader.Locations = function(gl, program) { diff --git a/src/ol/structs/buffer.js b/src/ol/structs/buffer.js index 1a3aad615f..b18052ffe3 100644 --- a/src/ol/structs/buffer.js +++ b/src/ol/structs/buffer.js @@ -28,6 +28,7 @@ ol.BUFFER_REPLACE_UNUSED_ENTRIES_WITH_NANS = goog.DEBUG; * @param {Array.=} opt_arr Array. * @param {number=} opt_used Used. * @param {number=} opt_usage Usage. + * @struct * @todo stability experimental */ ol.structs.Buffer = function(opt_arr, opt_used, opt_usage) { diff --git a/src/ol/structs/integerset.js b/src/ol/structs/integerset.js index 17fc2ebc53..dc292443eb 100644 --- a/src/ol/structs/integerset.js +++ b/src/ol/structs/integerset.js @@ -9,6 +9,7 @@ goog.require('goog.asserts'); * This implementation is designed for the case when the number of distinct * integer ranges is small. * @constructor + * @struct * @param {Array.=} opt_arr Array. */ ol.structs.IntegerSet = function(opt_arr) { diff --git a/src/ol/structs/lrucache.js b/src/ol/structs/lrucache.js index 12e8e5d49c..3fc7a2427d 100644 --- a/src/ol/structs/lrucache.js +++ b/src/ol/structs/lrucache.js @@ -10,6 +10,7 @@ goog.require('goog.object'); * Object's properties (e.g. 'hasOwnProperty' is not allowed as a key). Expiring * items from the cache is the responsibility of the user. * @constructor + * @struct * @template T */ ol.structs.LRUCache = function() { diff --git a/src/ol/structs/priorityqueue.js b/src/ol/structs/priorityqueue.js index b303d6c64c..72b4019475 100644 --- a/src/ol/structs/priorityqueue.js +++ b/src/ol/structs/priorityqueue.js @@ -17,6 +17,7 @@ goog.require('goog.object'); * @constructor * @param {function(T): number} priorityFunction Priority function. * @param {function(T): string} keyFunction Key function. + * @struct * @template T */ ol.structs.PriorityQueue = function(priorityFunction, keyFunction) { diff --git a/src/ol/structs/rbush.js b/src/ol/structs/rbush.js index e0bdc81819..85cefc282d 100644 --- a/src/ol/structs/rbush.js +++ b/src/ol/structs/rbush.js @@ -36,6 +36,7 @@ goog.require('ol.extent'); * @param {number} height Height. * @param {Array.>} children Children. * @param {?T} value Value. + * @struct * @template T */ ol.structs.RBushNode = function(extent, height, children, value) { @@ -160,6 +161,7 @@ ol.structs.RBushNode.prototype.isLeaf = function() { * @constructor * @param {number=} opt_maxEntries Max entries. * @see https://github.com/mourner/rbush + * @struct * @template T */ ol.structs.RBush = function(opt_maxEntries) { diff --git a/src/ol/tilecache.js b/src/ol/tilecache.js index baca04fb4a..643ed75ce9 100644 --- a/src/ol/tilecache.js +++ b/src/ol/tilecache.js @@ -18,6 +18,7 @@ ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK = 2048; * @constructor * @extends {ol.structs.LRUCache.} * @param {number=} opt_highWaterMark High water mark. + * @struct */ ol.TileCache = function(opt_highWaterMark) { diff --git a/src/ol/tilegrid/tilegrid.js b/src/ol/tilegrid/tilegrid.js index e079159cd2..f39badb2fa 100644 --- a/src/ol/tilegrid/tilegrid.js +++ b/src/ol/tilegrid/tilegrid.js @@ -28,6 +28,7 @@ ol.DEFAULT_MAX_ZOOM = 42; /** * @constructor * @param {ol.tilegrid.TileGridOptions} options Tile grid options. + * @struct * @todo stability experimental */ ol.tilegrid.TileGrid = function(options) { diff --git a/src/ol/tilegrid/wmtstilegrid.js b/src/ol/tilegrid/wmtstilegrid.js index 108840ecd4..d0bdcfffe9 100644 --- a/src/ol/tilegrid/wmtstilegrid.js +++ b/src/ol/tilegrid/wmtstilegrid.js @@ -11,6 +11,7 @@ goog.require('ol.tilegrid.TileGrid'); * @constructor * @extends {ol.tilegrid.TileGrid} * @param {ol.tilegrid.WMTSOptions} options WMTS options. + * @struct * @todo stability experimental */ ol.tilegrid.WMTS = function(options) { diff --git a/src/ol/tilegrid/xyztilegrid.js b/src/ol/tilegrid/xyztilegrid.js index aba7b4cc16..7aaedc09cd 100644 --- a/src/ol/tilegrid/xyztilegrid.js +++ b/src/ol/tilegrid/xyztilegrid.js @@ -13,6 +13,7 @@ goog.require('ol.tilegrid.TileGrid'); * @constructor * @extends {ol.tilegrid.TileGrid} * @param {ol.tilegrid.XYZOptions} options XYZ options. + * @struct * @todo stability experimental */ ol.tilegrid.XYZ = function(options) { diff --git a/src/ol/tilequeue.js b/src/ol/tilequeue.js index 57d0791caa..e0426a5cb4 100644 --- a/src/ol/tilequeue.js +++ b/src/ol/tilequeue.js @@ -22,6 +22,7 @@ ol.TilePriorityFunction; * Tile priority function. * @param {function(): ?} tileChangeCallback * Function called on each tile change event. + * @struct */ ol.TileQueue = function(tilePriorityFunction, tileChangeCallback) { diff --git a/src/ol/tilerange.js b/src/ol/tilerange.js index 4ac7b36f3c..f2ef5d3245 100644 --- a/src/ol/tilerange.js +++ b/src/ol/tilerange.js @@ -15,6 +15,7 @@ goog.require('ol.TileCoord'); * @param {number} maxX Maximum X. * @param {number} minY Minimum Y. * @param {number} maxY Maximum Y. + * @struct */ ol.TileRange = function(minX, maxX, minY, maxY) { diff --git a/src/ol/webgl/shader.js b/src/ol/webgl/shader.js index a06fd5c401..f9a2271724 100644 --- a/src/ol/webgl/shader.js +++ b/src/ol/webgl/shader.js @@ -9,6 +9,7 @@ goog.require('ol.webgl'); /** * @constructor * @param {string} source Source. + * @struct */ ol.webgl.Shader = function(source) { @@ -46,6 +47,7 @@ ol.webgl.Shader.prototype.isAnimated = goog.functions.FALSE; * @constructor * @extends {ol.webgl.Shader} * @param {string} source Source. + * @struct */ ol.webgl.shader.Fragment = function(source) { goog.base(this, source); @@ -66,6 +68,7 @@ ol.webgl.shader.Fragment.prototype.getType = function() { * @constructor * @extends {ol.webgl.Shader} * @param {string} source Source. + * @struct */ ol.webgl.shader.Vertex = function(source) { goog.base(this, source); diff --git a/src/ol/webgl/shader.mustache b/src/ol/webgl/shader.mustache index 14ecdd6947..ed62dc9718 100644 --- a/src/ol/webgl/shader.mustache +++ b/src/ol/webgl/shader.mustache @@ -8,6 +8,7 @@ goog.require('ol.webgl.shader'); /** * @constructor * @extends {ol.webgl.shader.Fragment} + * @struct */ {{className}}Fragment = function() { goog.base(this, {{className}}Fragment.SOURCE); @@ -43,6 +44,7 @@ goog.addSingletonGetter({{className}}Fragment); /** * @constructor * @extends {ol.webgl.shader.Vertex} + * @struct */ {{className}}Vertex = function() { goog.base(this, {{className}}Vertex.SOURCE); @@ -79,6 +81,7 @@ goog.addSingletonGetter({{className}}Vertex); * @constructor * @param {WebGLRenderingContext} gl GL. * @param {WebGLProgram} program Program. + * @struct */ {{namespace}}.Locations = function(gl, program) { {{#getUniforms}} From c2228b1d1949c593a27ceeac46100be0fdc1e01b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 16:27:03 +0100 Subject: [PATCH 494/919] Rename ol.geom.Layout to ol.geom.GeometryLayout --- src/ol/geom/geometry.js | 32 +++++++++++------------ src/ol/geom/linearring.js | 4 +-- src/ol/geom/linestring.js | 8 +++--- src/ol/geom/multilinestring.js | 8 +++--- src/ol/geom/multipoint.js | 8 +++--- src/ol/geom/multipolygon.js | 8 +++--- src/ol/geom/point.js | 8 +++--- src/ol/geom/polygon.js | 8 +++--- test/spec/ol/geom/linestring.test.js | 12 ++++----- test/spec/ol/geom/multilinestring.test.js | 12 ++++----- test/spec/ol/geom/multipoint.test.js | 12 ++++----- test/spec/ol/geom/point.test.js | 8 +++--- test/spec/ol/geom/polygon.test.js | 13 ++++----- 13 files changed, 71 insertions(+), 70 deletions(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index d66fc9d95d..5c16dddcd6 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -27,7 +27,7 @@ ol.geom.Type = { /** * @enum {string} */ -ol.geom.Layout = { +ol.geom.GeometryLayout = { XY: 'XY', XYZ: 'XYZ', XYM: 'XYM', @@ -46,9 +46,9 @@ ol.geom.Geometry = function() { /** * @protected - * @type {ol.geom.Layout} + * @type {ol.geom.GeometryLayout} */ - this.layout = ol.geom.Layout.XY; + this.layout = ol.geom.GeometryLayout.XY; /** * @protected @@ -87,15 +87,15 @@ goog.inherits(ol.geom.Geometry, goog.events.EventTarget); /** * @param {number} stride Stride. * @private - * @return {ol.geom.Layout} layout Layout. + * @return {ol.geom.GeometryLayout} layout Layout. */ ol.geom.Geometry.getLayoutForStride_ = function(stride) { if (stride == 2) { - return ol.geom.Layout.XY; + return ol.geom.GeometryLayout.XY; } else if (stride == 3) { - return ol.geom.Layout.XYZ; + return ol.geom.GeometryLayout.XYZ; } else if (stride == 4) { - return ol.geom.Layout.XYZM; + return ol.geom.GeometryLayout.XYZM; } else { throw new Error('unsupported stride: ' + stride); } @@ -103,18 +103,18 @@ ol.geom.Geometry.getLayoutForStride_ = function(stride) { /** - * @param {ol.geom.Layout} layout Layout. + * @param {ol.geom.GeometryLayout} layout Layout. * @private * @return {number} Stride. */ ol.geom.Geometry.getStrideForLayout_ = function(layout) { - if (layout == ol.geom.Layout.XY) { + if (layout == ol.geom.GeometryLayout.XY) { return 2; - } else if (layout == ol.geom.Layout.XYZ) { + } else if (layout == ol.geom.GeometryLayout.XYZ) { return 3; - } else if (layout == ol.geom.Layout.XYM) { + } else if (layout == ol.geom.GeometryLayout.XYM) { return 3; - } else if (layout == ol.geom.Layout.XYZM) { + } else if (layout == ol.geom.GeometryLayout.XYZM) { return 4; } else { throw new Error('unsupported layout: ' + layout); @@ -172,7 +172,7 @@ ol.geom.Geometry.prototype.getFlatCoordinates = function() { /** - * @return {ol.geom.Layout} Layout. + * @return {ol.geom.GeometryLayout} Layout. */ ol.geom.Geometry.prototype.getLayout = function() { return this.layout; @@ -202,7 +202,7 @@ ol.geom.Geometry.prototype.getType = goog.abstractMethod; /** - * @param {ol.geom.Layout} layout Layout. + * @param {ol.geom.GeometryLayout} layout Layout. * @param {Array.} flatCoordinates Flat coordinates. * @protected */ @@ -215,7 +215,7 @@ ol.geom.Geometry.prototype.setFlatCoordinatesInternal = /** - * @param {ol.geom.Layout|undefined} layout Layout. + * @param {ol.geom.GeometryLayout|undefined} layout Layout. * @param {Array} coordinates Coordinates. * @param {number} nesting Nesting. * @protected @@ -230,7 +230,7 @@ ol.geom.Geometry.prototype.setLayout = var i; for (i = 0; i < nesting; ++i) { if (coordinates.length === 0) { - this.layout = ol.geom.Layout.XY; + this.layout = ol.geom.GeometryLayout.XY; this.stride = 2; return; } else { diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index 7c15fd53a4..a4b6bff880 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -9,7 +9,7 @@ goog.require('ol.geom.flat'); * @constructor * @extends {ol.geom.Geometry} * @param {ol.geom.RawLinearRing} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.LinearRing = function(coordinates, opt_layout) { goog.base(this); @@ -46,7 +46,7 @@ ol.geom.LinearRing.prototype.getType = function() { /** * @param {ol.geom.RawLinearRing} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.LinearRing.prototype.setCoordinates = function(coordinates, opt_layout) { diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 40bfd7c109..99f0dc542f 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -9,7 +9,7 @@ goog.require('ol.geom.flat'); * @constructor * @extends {ol.geom.Geometry} * @param {ol.geom.RawLineString} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.LineString = function(coordinates, opt_layout) { goog.base(this); @@ -46,12 +46,12 @@ ol.geom.LineString.prototype.getType = function() { /** * @param {ol.geom.RawLineString} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.LineString.prototype.setCoordinates = function(coordinates, opt_layout) { if (goog.isNull(coordinates)) { - this.setFlatCoordinates(ol.geom.Layout.XY, null); + this.setFlatCoordinates(ol.geom.GeometryLayout.XY, null); } else { this.setLayout(opt_layout, coordinates, 1); if (goog.isNull(this.flatCoordinates)) { @@ -65,7 +65,7 @@ ol.geom.LineString.prototype.setCoordinates = /** - * @param {ol.geom.Layout} layout Layout. + * @param {ol.geom.GeometryLayout} layout Layout. * @param {Array.} flatCoordinates Flat coordinates. */ ol.geom.LineString.prototype.setFlatCoordinates = diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index da4a7c2505..c52a870b0b 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -10,7 +10,7 @@ goog.require('ol.geom.flat'); * @constructor * @extends {ol.geom.Geometry} * @param {ol.geom.RawMultiLineString} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.MultiLineString = function(coordinates, opt_layout) { @@ -70,12 +70,12 @@ ol.geom.MultiLineString.prototype.getType = function() { /** * @param {ol.geom.RawMultiLineString} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.MultiLineString.prototype.setCoordinates = function(coordinates, opt_layout) { if (goog.isNull(coordinates)) { - this.setFlatCoordinates(ol.geom.Layout.XY, null, this.ends_); + this.setFlatCoordinates(ol.geom.GeometryLayout.XY, null, this.ends_); } else { this.setLayout(opt_layout, coordinates, 2); if (goog.isNull(this.flatCoordinates)) { @@ -90,7 +90,7 @@ ol.geom.MultiLineString.prototype.setCoordinates = /** - * @param {ol.geom.Layout} layout Layout. + * @param {ol.geom.GeometryLayout} layout Layout. * @param {Array.} flatCoordinates Flat coordinates. * @param {Array.} ends Ends. */ diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index 525f720720..942d58f9c8 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -10,7 +10,7 @@ goog.require('ol.geom.flat'); * @constructor * @extends {ol.geom.Geometry} * @param {ol.geom.RawMultiPoint} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.MultiPoint = function(coordinates, opt_layout) { goog.base(this); @@ -53,12 +53,12 @@ ol.geom.MultiPoint.prototype.getType = function() { /** * @param {ol.geom.RawMultiPoint} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.MultiPoint.prototype.setCoordinates = function(coordinates, opt_layout) { if (goog.isNull(coordinates)) { - this.setFlatCoordinates(ol.geom.Layout.XY, null); + this.setFlatCoordinates(ol.geom.GeometryLayout.XY, null); } else { this.setLayout(opt_layout, coordinates, 1); if (goog.isNull(this.flatCoordinates)) { @@ -72,7 +72,7 @@ ol.geom.MultiPoint.prototype.setCoordinates = /** - * @param {ol.geom.Layout} layout Layout. + * @param {ol.geom.GeometryLayout} layout Layout. * @param {Array.} flatCoordinates Flat coordinates. */ ol.geom.MultiPoint.prototype.setFlatCoordinates = diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index e4fbdb3d87..d5293373d7 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -10,7 +10,7 @@ goog.require('ol.geom.flat'); * @constructor * @extends {ol.geom.Geometry} * @param {ol.geom.RawMultiPolygon} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.MultiPolygon = function(coordinates, opt_layout) { @@ -115,12 +115,12 @@ ol.geom.MultiPolygon.prototype.getType = function() { /** * @param {ol.geom.RawMultiPolygon} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.MultiPolygon.prototype.setCoordinates = function(coordinates, opt_layout) { if (goog.isNull(coordinates)) { - this.setFlatCoordinates(ol.geom.Layout.XY, null, this.endss_); + this.setFlatCoordinates(ol.geom.GeometryLayout.XY, null, this.endss_); } else { this.setLayout(opt_layout, coordinates, 3); if (goog.isNull(this.flatCoordinates)) { @@ -139,7 +139,7 @@ ol.geom.MultiPolygon.prototype.setCoordinates = /** - * @param {ol.geom.Layout} layout Layout. + * @param {ol.geom.GeometryLayout} layout Layout. * @param {Array.} flatCoordinates Flat coordinates. * @param {Array.>} endss Endss. */ diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index a458ce2160..3f8ac78314 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -11,7 +11,7 @@ goog.require('ol.geom.flat'); * @constructor * @extends {ol.geom.Geometry} * @param {ol.geom.RawPoint} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.Point = function(coordinates, opt_layout) { goog.base(this); @@ -52,11 +52,11 @@ ol.geom.Point.prototype.getType = function() { /** * @param {ol.geom.RawPoint} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.Point.prototype.setCoordinates = function(coordinates, opt_layout) { if (goog.isNull(coordinates)) { - this.setFlatCoordinates(ol.geom.Layout.XY, null); + this.setFlatCoordinates(ol.geom.GeometryLayout.XY, null); } else { this.setLayout(opt_layout, coordinates, 0); if (goog.isNull(this.flatCoordinates)) { @@ -70,7 +70,7 @@ ol.geom.Point.prototype.setCoordinates = function(coordinates, opt_layout) { /** - * @param {ol.geom.Layout} layout Layout. + * @param {ol.geom.GeometryLayout} layout Layout. * @param {Array.} flatCoordinates Flat coordinates. */ ol.geom.Point.prototype.setFlatCoordinates = function(layout, flatCoordinates) { diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 039384ac07..6f1181434d 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -10,7 +10,7 @@ goog.require('ol.geom.flat'); * @constructor * @extends {ol.geom.Geometry} * @param {ol.geom.RawPolygon} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.Polygon = function(coordinates, opt_layout) { @@ -114,11 +114,11 @@ ol.geom.Polygon.prototype.getType = function() { /** * @param {ol.geom.RawPolygon} coordinates Coordinates. - * @param {ol.geom.Layout=} opt_layout Layout. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.Polygon.prototype.setCoordinates = function(coordinates, opt_layout) { if (goog.isNull(coordinates)) { - this.setFlatCoordinates(ol.geom.Layout.XY, null, this.ends_); + this.setFlatCoordinates(ol.geom.GeometryLayout.XY, null, this.ends_); } else { this.setLayout(opt_layout, coordinates, 2); if (goog.isNull(this.flatCoordinates)) { @@ -135,7 +135,7 @@ ol.geom.Polygon.prototype.setCoordinates = function(coordinates, opt_layout) { /** - * @param {ol.geom.Layout} layout Layout. + * @param {ol.geom.GeometryLayout} layout Layout. * @param {Array.} flatCoordinates Flat coordinates. * @param {Array.} ends Ends. */ diff --git a/test/spec/ol/geom/linestring.test.js b/test/spec/ol/geom/linestring.test.js index 0c0b510580..78c67739cc 100644 --- a/test/spec/ol/geom/linestring.test.js +++ b/test/spec/ol/geom/linestring.test.js @@ -18,7 +18,7 @@ describe('ol.geom.LineString', function() { }); it('defaults to layout XY', function() { - expect(lineString.getLayout()).to.be(ol.geom.Layout.XY); + expect(lineString.getLayout()).to.be(ol.geom.GeometryLayout.XY); }); it('has empty coordinates', function() { @@ -47,7 +47,7 @@ describe('ol.geom.LineString', function() { }); it('has the expected layout', function() { - expect(lineString.getLayout()).to.be(ol.geom.Layout.XY); + expect(lineString.getLayout()).to.be(ol.geom.GeometryLayout.XY); }); it('has the expected coordinates', function() { @@ -76,7 +76,7 @@ describe('ol.geom.LineString', function() { }); it('has the expected layout', function() { - expect(lineString.getLayout()).to.be(ol.geom.Layout.XYZ); + expect(lineString.getLayout()).to.be(ol.geom.GeometryLayout.XYZ); }); it('has the expected coordinates', function() { @@ -102,11 +102,11 @@ describe('ol.geom.LineString', function() { var lineString; beforeEach(function() { lineString = new ol.geom.LineString( - [[1, 2, 3], [4, 5, 6]], ol.geom.Layout.XYM); + [[1, 2, 3], [4, 5, 6]], ol.geom.GeometryLayout.XYM); }); it('has the expected layout', function() { - expect(lineString.getLayout()).to.be(ol.geom.Layout.XYM); + expect(lineString.getLayout()).to.be(ol.geom.GeometryLayout.XYM); }); it('has the expected coordinates', function() { @@ -135,7 +135,7 @@ describe('ol.geom.LineString', function() { }); it('has the expected layout', function() { - expect(lineString.getLayout()).to.be(ol.geom.Layout.XYZM); + expect(lineString.getLayout()).to.be(ol.geom.GeometryLayout.XYZM); }); it('has the expected coordinates', function() { diff --git a/test/spec/ol/geom/multilinestring.test.js b/test/spec/ol/geom/multilinestring.test.js index 2fa422db75..1b7e67a3f2 100644 --- a/test/spec/ol/geom/multilinestring.test.js +++ b/test/spec/ol/geom/multilinestring.test.js @@ -18,7 +18,7 @@ describe('ol.geom.MultiLineString', function() { }); it('defaults to layout XY', function() { - expect(multiLineString.getLayout()).to.be(ol.geom.Layout.XY); + expect(multiLineString.getLayout()).to.be(ol.geom.GeometryLayout.XY); }); it('has empty coordinates', function() { @@ -48,7 +48,7 @@ describe('ol.geom.MultiLineString', function() { }); it('has the expected layout', function() { - expect(multiLineString.getLayout()).to.be(ol.geom.Layout.XY); + expect(multiLineString.getLayout()).to.be(ol.geom.GeometryLayout.XY); }); it('has the expected coordinates', function() { @@ -80,7 +80,7 @@ describe('ol.geom.MultiLineString', function() { }); it('has the expected layout', function() { - expect(multiLineString.getLayout()).to.be(ol.geom.Layout.XYZ); + expect(multiLineString.getLayout()).to.be(ol.geom.GeometryLayout.XYZ); }); it('has the expected coordinates', function() { @@ -109,11 +109,11 @@ describe('ol.geom.MultiLineString', function() { beforeEach(function() { multiLineString = new ol.geom.MultiLineString( [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]], - ol.geom.Layout.XYM); + ol.geom.GeometryLayout.XYM); }); it('has the expected layout', function() { - expect(multiLineString.getLayout()).to.be(ol.geom.Layout.XYM); + expect(multiLineString.getLayout()).to.be(ol.geom.GeometryLayout.XYM); }); it('has the expected coordinates', function() { @@ -145,7 +145,7 @@ describe('ol.geom.MultiLineString', function() { }); it('has the expected layout', function() { - expect(multiLineString.getLayout()).to.be(ol.geom.Layout.XYZM); + expect(multiLineString.getLayout()).to.be(ol.geom.GeometryLayout.XYZM); }); it('has the expected coordinates', function() { diff --git a/test/spec/ol/geom/multipoint.test.js b/test/spec/ol/geom/multipoint.test.js index 304e834159..f2ef5bef66 100644 --- a/test/spec/ol/geom/multipoint.test.js +++ b/test/spec/ol/geom/multipoint.test.js @@ -18,7 +18,7 @@ describe('ol.geom.MultiPoint', function() { }); it('defaults to layout XY', function() { - expect(multiPoint.getLayout()).to.be(ol.geom.Layout.XY); + expect(multiPoint.getLayout()).to.be(ol.geom.GeometryLayout.XY); }); it('has empty coordinates', function() { @@ -47,7 +47,7 @@ describe('ol.geom.MultiPoint', function() { }); it('has the expected layout', function() { - expect(multiPoint.getLayout()).to.be(ol.geom.Layout.XY); + expect(multiPoint.getLayout()).to.be(ol.geom.GeometryLayout.XY); }); it('has the expected coordinates', function() { @@ -76,7 +76,7 @@ describe('ol.geom.MultiPoint', function() { }); it('has the expected layout', function() { - expect(multiPoint.getLayout()).to.be(ol.geom.Layout.XYZ); + expect(multiPoint.getLayout()).to.be(ol.geom.GeometryLayout.XYZ); }); it('has the expected coordinates', function() { @@ -102,11 +102,11 @@ describe('ol.geom.MultiPoint', function() { var multiPoint; beforeEach(function() { multiPoint = new ol.geom.MultiPoint( - [[1, 2, 3], [4, 5, 6]], ol.geom.Layout.XYM); + [[1, 2, 3], [4, 5, 6]], ol.geom.GeometryLayout.XYM); }); it('has the expected layout', function() { - expect(multiPoint.getLayout()).to.be(ol.geom.Layout.XYM); + expect(multiPoint.getLayout()).to.be(ol.geom.GeometryLayout.XYM); }); it('has the expected coordinates', function() { @@ -135,7 +135,7 @@ describe('ol.geom.MultiPoint', function() { }); it('has the expected layout', function() { - expect(multiPoint.getLayout()).to.be(ol.geom.Layout.XYZM); + expect(multiPoint.getLayout()).to.be(ol.geom.GeometryLayout.XYZM); }); it('has the expected coordinates', function() { diff --git a/test/spec/ol/geom/point.test.js b/test/spec/ol/geom/point.test.js index 74ff2afad0..72389411ac 100644 --- a/test/spec/ol/geom/point.test.js +++ b/test/spec/ol/geom/point.test.js @@ -18,7 +18,7 @@ describe('ol.geom.Point', function() { }); it('has the expected layout', function() { - expect(point.getLayout()).to.be(ol.geom.Layout.XY); + expect(point.getLayout()).to.be(ol.geom.GeometryLayout.XY); }); it('has the expected coordinates', function() { @@ -43,11 +43,11 @@ describe('ol.geom.Point', function() { var point; beforeEach(function() { - point = new ol.geom.Point([1, 2, 3], ol.geom.Layout.XYM); + point = new ol.geom.Point([1, 2, 3], ol.geom.GeometryLayout.XYM); }); it('has the expected layout', function() { - expect(point.getLayout()).to.be(ol.geom.Layout.XYM); + expect(point.getLayout()).to.be(ol.geom.GeometryLayout.XYM); }); it('has the expected coordinates', function() { @@ -76,7 +76,7 @@ describe('ol.geom.Point', function() { }); it('has the expected layout', function() { - expect(point.getLayout()).to.be(ol.geom.Layout.XYZM); + expect(point.getLayout()).to.be(ol.geom.GeometryLayout.XYZM); }); it('has the expected coordinates', function() { diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js index bd53d9f2a0..632888fe63 100644 --- a/test/spec/ol/geom/polygon.test.js +++ b/test/spec/ol/geom/polygon.test.js @@ -20,7 +20,7 @@ describe('ol.geom.Polygon', function() { }); it('defaults to layout XY', function() { - expect(polygon.getLayout()).to.be(ol.geom.Layout.XY); + expect(polygon.getLayout()).to.be(ol.geom.GeometryLayout.XY); }); it('has empty coordinates', function() { @@ -56,7 +56,7 @@ describe('ol.geom.Polygon', function() { }); it('has the expected layout', function() { - expect(polygon.getLayout()).to.be(ol.geom.Layout.XY); + expect(polygon.getLayout()).to.be(ol.geom.GeometryLayout.XY); }); it('has the expected coordinates', function() { @@ -119,7 +119,7 @@ describe('ol.geom.Polygon', function() { }); it('has the expected layout', function() { - expect(polygon.getLayout()).to.be(ol.geom.Layout.XYZ); + expect(polygon.getLayout()).to.be(ol.geom.GeometryLayout.XYZ); }); it('has the expected coordinates', function() { @@ -174,7 +174,8 @@ describe('ol.geom.Polygon', function() { beforeEach(function() { outerRing = [[0, 0, 1], [4, 4, 2], [4, 0, 3]]; innerRing = [[2, 1, 4], [3, 1, 5], [3, 2, 6]]; - polygon = new ol.geom.Polygon([outerRing, innerRing], ol.geom.Layout.XYM); + polygon = new ol.geom.Polygon( + [outerRing, innerRing], ol.geom.GeometryLayout.XYM); flatCoordinates = [0, 0, 1, 4, 4, 2, 4, 0, 3, 2, 1, 4, 3, 1, 5, 3, 2, 6]; outsideOuter = [1, 3]; inside = [3.5, 0.5]; @@ -182,7 +183,7 @@ describe('ol.geom.Polygon', function() { }); it('has the expected layout', function() { - expect(polygon.getLayout()).to.be(ol.geom.Layout.XYM); + expect(polygon.getLayout()).to.be(ol.geom.GeometryLayout.XYM); }); it('has the expected coordinates', function() { @@ -252,7 +253,7 @@ describe('ol.geom.Polygon', function() { }); it('has the expected layout', function() { - expect(polygon.getLayout()).to.be(ol.geom.Layout.XYZM); + expect(polygon.getLayout()).to.be(ol.geom.GeometryLayout.XYZM); }); it('has the expected coordinates', function() { From 057cda42be7f6b27dcb9106dd00870570bcef139 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 16:28:36 +0100 Subject: [PATCH 495/919] Rename ol.geom.Type to ol.geom.GeometryType --- src/ol/geom/geometry.js | 4 ++-- src/ol/geom/linearring.js | 2 +- src/ol/geom/linestring.js | 2 +- src/ol/geom/multilinestring.js | 2 +- src/ol/geom/multipoint.js | 2 +- src/ol/geom/multipolygon.js | 2 +- src/ol/geom/point.js | 2 +- src/ol/geom/polygon.js | 2 +- src/ol/render/canvas/canvasimmediate.js | 2 +- src/ol/render/vector.js | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 5c16dddcd6..fe38d14b3b 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -13,7 +13,7 @@ goog.require('ol.geom.flat'); /** * @enum {string} */ -ol.geom.Type = { +ol.geom.GeometryType = { POINT: 'Point', LINE_STRING: 'LineString', LINEAR_RING: 'LinearRing', @@ -196,7 +196,7 @@ ol.geom.Geometry.prototype.getStride = function() { /** - * @return {ol.geom.Type} Geometry type. + * @return {ol.geom.GeometryType} Geometry type. */ ol.geom.Geometry.prototype.getType = goog.abstractMethod; diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index a4b6bff880..db91862cf4 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -40,7 +40,7 @@ ol.geom.LinearRing.prototype.getCoordinates = function() { * @inheritDoc */ ol.geom.LinearRing.prototype.getType = function() { - return ol.geom.Type.LINEAR_RING; + return ol.geom.GeometryType.LINEAR_RING; }; diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 99f0dc542f..40b231674f 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -40,7 +40,7 @@ ol.geom.LineString.prototype.getLength = function() { * @inheritDoc */ ol.geom.LineString.prototype.getType = function() { - return ol.geom.Type.LINE_STRING; + return ol.geom.GeometryType.LINE_STRING; }; diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index c52a870b0b..3f255fba11 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -64,7 +64,7 @@ ol.geom.MultiLineString.prototype.getLineStrings = function() { * @inheritDoc */ ol.geom.MultiLineString.prototype.getType = function() { - return ol.geom.Type.MULTI_LINE_STRING; + return ol.geom.GeometryType.MULTI_LINE_STRING; }; diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index 942d58f9c8..3092b41284 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -47,7 +47,7 @@ ol.geom.MultiPoint.prototype.getPoints = function() { * @inheritDoc */ ol.geom.MultiPoint.prototype.getType = function() { - return ol.geom.Type.MULTI_POINT; + return ol.geom.GeometryType.MULTI_POINT; }; diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index d5293373d7..b9becbc382 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -109,7 +109,7 @@ ol.geom.MultiPolygon.prototype.getPolygons = function() { * @inheritDoc */ ol.geom.MultiPolygon.prototype.getType = function() { - return ol.geom.Type.MULTI_POLYGON; + return ol.geom.GeometryType.MULTI_POLYGON; }; diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index 3f8ac78314..13a9973d7f 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -46,7 +46,7 @@ ol.geom.Point.prototype.getExtent = function(opt_extent) { * @inheritDoc */ ol.geom.Point.prototype.getType = function() { - return ol.geom.Type.POINT; + return ol.geom.GeometryType.POINT; }; diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 6f1181434d..1a4f7ff944 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -108,7 +108,7 @@ ol.geom.Polygon.prototype.getLinearRings = function() { * @inheritDoc */ ol.geom.Polygon.prototype.getType = function() { - return ol.geom.Type.POLYGON; + return ol.geom.GeometryType.POLYGON; }; diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 9b7782a0a1..bdf1538b3e 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -467,7 +467,7 @@ ol.render.canvas.Immediate.prototype.setTextStyle = function(textStyle) { /** * @const * @private - * @type {Object.} */ diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index f6858f25a2..e737e533d9 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -155,7 +155,7 @@ ol.renderer.vector.renderPolygonGeometry_ = /** * @const * @private - * @type {Object.} */ From 3d4199193f7297bcf5e08096876ecd06ecab6b75 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 5 Dec 2013 15:36:11 +0100 Subject: [PATCH 496/919] Allow ol.Feature to be constructed with no argument --- src/ol/feature.js | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/ol/feature.js b/src/ol/feature.js index 603c6be8f9..3d6066da29 100644 --- a/src/ol/feature.js +++ b/src/ol/feature.js @@ -1,5 +1,6 @@ goog.provide('ol.Feature'); +goog.require('goog.asserts'); goog.require('goog.events'); goog.require('goog.events.EventType'); goog.require('ol.Object'); @@ -18,9 +19,10 @@ ol.FeatureProperty = { /** * @constructor * @extends {ol.Object} - * @param {ol.geom.Geometry|Object.} geometryOrValues Values. + * @param {ol.geom.Geometry|Object.=} opt_geometryOrValues + * Values or geometry. */ -ol.Feature = function(geometryOrValues) { +ol.Feature = function(opt_geometryOrValues) { goog.base(this); @@ -46,14 +48,16 @@ ol.Feature = function(geometryOrValues) { this, ol.Object.getChangeEventType(ol.FeatureProperty.GEOMETRY), this.handleGeometryChanged_, false, this); - if (geometryOrValues instanceof ol.geom.Geometry) { - var geometry = /** @type {ol.geom.Geometry} */ (geometryOrValues); - this.setGeometry(geometry); - } else { - var values = /** @type {Object.} */ (geometryOrValues); - this.setValues(values); + if (goog.isDef(opt_geometryOrValues)) { + if (opt_geometryOrValues instanceof ol.geom.Geometry) { + var geometry = /** @type {ol.geom.Geometry} */ (opt_geometryOrValues); + this.setGeometry(geometry); + } else { + goog.asserts.assert(goog.isObject(opt_geometryOrValues)); + var values = /** @type {Object.} */ (opt_geometryOrValues); + this.setValues(values); + } } - }; goog.inherits(ol.Feature, ol.Object); @@ -113,7 +117,7 @@ ol.Feature.prototype.handleGeometryChanged_ = function() { this.geometryChangeKey_ = null; } var geometry = this.getGeometry(); - if (goog.isDef(geometry)) { + if (goog.isDefAndNotNull(geometry)) { this.geometryChangeKey_ = goog.events.listen(geometry, goog.events.EventType.CHANGE, this.handleGeometryChange_, false, this); } From 72cf6e03cdcd59094705a4c2543ba308162c9e34 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:02:31 +0100 Subject: [PATCH 497/919] Add ol.Object#getProperties --- src/ol/object.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/ol/object.js b/src/ol/object.js index 5b122f601c..1a14e785af 100644 --- a/src/ol/object.js +++ b/src/ol/object.js @@ -287,6 +287,23 @@ ol.Object.prototype.getKeys = function() { }; +/** + * Get an object of all property names and values. + * @return {Object.} Object. + */ +ol.Object.prototype.getProperties = function() { + var properties = {}; + var key; + for (key in this.values_) { + properties[key] = this.values_[key]; + } + for (key in ol.Object.getAccessors(this)) { + properties[key] = this.get(key); + } + return properties; +}; + + /** * Notify all observers of a change on this property. This notifies both * objects that are bound to the object's property as well as the object From 82fa4861e7cefd062aeccee3a1382b8c4844ab9d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 19:13:49 +0100 Subject: [PATCH 498/919] Allow ol.geom.LinearRings to have null coordinates and add setFlatCoordinates --- src/ol/geom/linearring.js | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index db91862cf4..3fa3bcbbe7 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -50,8 +50,26 @@ ol.geom.LinearRing.prototype.getType = function() { */ ol.geom.LinearRing.prototype.setCoordinates = function(coordinates, opt_layout) { - this.setLayout(opt_layout, coordinates, 1); - ol.geom.flat.deflateCoordinates( - this.flatCoordinates, 0, coordinates, this.stride); + if (goog.isNull(coordinates)) { + this.setFlatCoordinates(ol.geom.GeometryLayout.XY, null); + } else { + this.setLayout(opt_layout, coordinates, 1); + if (goog.isNull(this.flatCoordinates)) { + this.flatCoordinates = []; + } + this.flatCoordinates.length = ol.geom.flat.deflateCoordinates( + this.flatCoordinates, 0, coordinates, this.stride); + this.dispatchChangeEvent(); + } +}; + + +/** + * @param {ol.geom.GeometryLayout} layout Layout. + * @param {Array.} flatCoordinates Flat coordinates. + */ +ol.geom.LinearRing.prototype.setFlatCoordinates = + function(layout, flatCoordinates) { + this.setFlatCoordinatesInternal(layout, flatCoordinates); this.dispatchChangeEvent(); }; From bd560bfb0ffa21ebbc367e1492d702c9ddb85998 Mon Sep 17 00:00:00 2001 From: oterral Date: Wed, 4 Dec 2013 17:52:47 +0100 Subject: [PATCH 499/919] Add WMS GetCapabilties parser --- {old/examples => examples}/wms-capabilities.html | 0 {old/examples => examples}/wms-capabilities.js | 0 {old/src => src}/ol/parser/ogc/exceptionreportparser.js | 0 {old/src => src}/ol/parser/ogc/versionedparser.js | 0 {old/src => src}/ol/parser/ogc/wmscapabilitiesparser.exports | 0 {old/src => src}/ol/parser/ogc/wmscapabilitiesparser.js | 0 {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1.js | 0 {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js | 0 {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_1.js | 0 {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js | 0 {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js | 0 .../ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js | 0 {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js | 0 {old/src => src}/ol/parser/parser.js | 0 {old/src => src}/ol/parser/xmlparser.js | 0 {old/test => test}/spec/ol/parser/ogc/exceptionreport.test.js | 0 {old/test => test}/spec/ol/parser/ogc/versioned.test.js | 0 {old/test => test}/spec/ol/parser/ogc/wmscapabilities.test.js | 0 .../spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js | 0 .../spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js | 0 .../spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js | 0 .../spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js | 0 .../spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml | 0 .../ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml | 0 .../spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml | 0 .../spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml | 0 .../ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml | 0 .../spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml | 0 .../ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml | 0 .../spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml | 0 30 files changed, 0 insertions(+), 0 deletions(-) rename {old/examples => examples}/wms-capabilities.html (100%) rename {old/examples => examples}/wms-capabilities.js (100%) rename {old/src => src}/ol/parser/ogc/exceptionreportparser.js (100%) rename {old/src => src}/ol/parser/ogc/versionedparser.js (100%) rename {old/src => src}/ol/parser/ogc/wmscapabilitiesparser.exports (100%) rename {old/src => src}/ol/parser/ogc/wmscapabilitiesparser.js (100%) rename {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1.js (100%) rename {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js (100%) rename {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_1.js (100%) rename {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js (100%) rename {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js (100%) rename {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js (100%) rename {old/src => src}/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js (100%) rename {old/src => src}/ol/parser/parser.js (100%) rename {old/src => src}/ol/parser/xmlparser.js (100%) rename {old/test => test}/spec/ol/parser/ogc/exceptionreport.test.js (100%) rename {old/test => test}/spec/ol/parser/ogc/versioned.test.js (100%) rename {old/test => test}/spec/ol/parser/ogc/wmscapabilities.test.js (100%) rename {old/test => test}/spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js (100%) rename {old/test => test}/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js (100%) rename {old/test => test}/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js (100%) rename {old/test => test}/spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js (100%) rename {old/test => test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml (100%) rename {old/test => test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml (100%) rename {old/test => test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml (100%) rename {old/test => test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml (100%) rename {old/test => test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml (100%) rename {old/test => test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml (100%) rename {old/test => test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml (100%) rename {old/test => test}/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml (100%) diff --git a/old/examples/wms-capabilities.html b/examples/wms-capabilities.html similarity index 100% rename from old/examples/wms-capabilities.html rename to examples/wms-capabilities.html diff --git a/old/examples/wms-capabilities.js b/examples/wms-capabilities.js similarity index 100% rename from old/examples/wms-capabilities.js rename to examples/wms-capabilities.js diff --git a/old/src/ol/parser/ogc/exceptionreportparser.js b/src/ol/parser/ogc/exceptionreportparser.js similarity index 100% rename from old/src/ol/parser/ogc/exceptionreportparser.js rename to src/ol/parser/ogc/exceptionreportparser.js diff --git a/old/src/ol/parser/ogc/versionedparser.js b/src/ol/parser/ogc/versionedparser.js similarity index 100% rename from old/src/ol/parser/ogc/versionedparser.js rename to src/ol/parser/ogc/versionedparser.js diff --git a/old/src/ol/parser/ogc/wmscapabilitiesparser.exports b/src/ol/parser/ogc/wmscapabilitiesparser.exports similarity index 100% rename from old/src/ol/parser/ogc/wmscapabilitiesparser.exports rename to src/ol/parser/ogc/wmscapabilitiesparser.exports diff --git a/old/src/ol/parser/ogc/wmscapabilitiesparser.js b/src/ol/parser/ogc/wmscapabilitiesparser.js similarity index 100% rename from old/src/ol/parser/ogc/wmscapabilitiesparser.js rename to src/ol/parser/ogc/wmscapabilitiesparser.js diff --git a/old/src/ol/parser/ogc/wmscapabilitiesparser_v1.js b/src/ol/parser/ogc/wmscapabilitiesparser_v1.js similarity index 100% rename from old/src/ol/parser/ogc/wmscapabilitiesparser_v1.js rename to src/ol/parser/ogc/wmscapabilitiesparser_v1.js diff --git a/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js b/src/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js similarity index 100% rename from old/src/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js rename to src/ol/parser/ogc/wmscapabilitiesparser_v1_0_0.js diff --git a/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1.js b/src/ol/parser/ogc/wmscapabilitiesparser_v1_1.js similarity index 100% rename from old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1.js rename to src/ol/parser/ogc/wmscapabilitiesparser_v1_1.js diff --git a/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js b/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js similarity index 100% rename from old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js rename to src/ol/parser/ogc/wmscapabilitiesparser_v1_1_0.js diff --git a/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js b/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js similarity index 100% rename from old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js rename to src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1.js diff --git a/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js b/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js similarity index 100% rename from old/src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js rename to src/ol/parser/ogc/wmscapabilitiesparser_v1_1_1_WMSC.js diff --git a/old/src/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js b/src/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js similarity index 100% rename from old/src/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js rename to src/ol/parser/ogc/wmscapabilitiesparser_v1_3_0.js diff --git a/old/src/ol/parser/parser.js b/src/ol/parser/parser.js similarity index 100% rename from old/src/ol/parser/parser.js rename to src/ol/parser/parser.js diff --git a/old/src/ol/parser/xmlparser.js b/src/ol/parser/xmlparser.js similarity index 100% rename from old/src/ol/parser/xmlparser.js rename to src/ol/parser/xmlparser.js diff --git a/old/test/spec/ol/parser/ogc/exceptionreport.test.js b/test/spec/ol/parser/ogc/exceptionreport.test.js similarity index 100% rename from old/test/spec/ol/parser/ogc/exceptionreport.test.js rename to test/spec/ol/parser/ogc/exceptionreport.test.js diff --git a/old/test/spec/ol/parser/ogc/versioned.test.js b/test/spec/ol/parser/ogc/versioned.test.js similarity index 100% rename from old/test/spec/ol/parser/ogc/versioned.test.js rename to test/spec/ol/parser/ogc/versioned.test.js diff --git a/old/test/spec/ol/parser/ogc/wmscapabilities.test.js b/test/spec/ol/parser/ogc/wmscapabilities.test.js similarity index 100% rename from old/test/spec/ol/parser/ogc/wmscapabilities.test.js rename to test/spec/ol/parser/ogc/wmscapabilities.test.js diff --git a/old/test/spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js b/test/spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js similarity index 100% rename from old/test/spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js rename to test/spec/ol/parser/ogc/wmscapabilities_v1_0_0.test.js diff --git a/old/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js b/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js similarity index 100% rename from old/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js rename to test/spec/ol/parser/ogc/wmscapabilities_v1_1_1.test.js diff --git a/old/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js b/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js similarity index 100% rename from old/test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js rename to test/spec/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.test.js diff --git a/old/test/spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js b/test/spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js similarity index 100% rename from old/test/spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js rename to test/spec/ol/parser/ogc/wmscapabilities_v1_3_0.test.js diff --git a/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml b/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml similarity index 100% rename from old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml rename to test/spec/ol/parser/ogc/xml/wmscapabilities_v1_0_0.xml diff --git a/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml b/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml similarity index 100% rename from old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml rename to test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/exceptionsample.xml diff --git a/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml b/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml similarity index 100% rename from old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml rename to test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/gssample.xml diff --git a/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml b/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml similarity index 100% rename from old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml rename to test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1/ogcsample.xml diff --git a/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml b/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml similarity index 100% rename from old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml rename to test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/fallback.xml diff --git a/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml b/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml similarity index 100% rename from old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml rename to test/spec/ol/parser/ogc/xml/wmscapabilities_v1_1_1_WMSC/wmsc.xml diff --git a/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml b/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml similarity index 100% rename from old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml rename to test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/exceptionsample.xml diff --git a/old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml b/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml similarity index 100% rename from old/test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml rename to test/spec/ol/parser/ogc/xml/wmscapabilities_v1_3_0/ogcsample.xml From 9b1918c75cb3304e14c26352b19351e341df9997 Mon Sep 17 00:00:00 2001 From: Bart van den Eijnden Date: Thu, 5 Dec 2013 18:14:15 +0100 Subject: [PATCH 500/919] Add missing files needed for ol.parser tests --- .../parser/ogc/xml/exceptionreport/ows1_0_0.xml | 9 +++++++++ .../parser/ogc/xml/exceptionreport/ows1_1_0.xml | 9 +++++++++ .../parser/ogc/xml/exceptionreport/wms1_3_0.xml | 16 ++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 test/spec/ol/parser/ogc/xml/exceptionreport/ows1_0_0.xml create mode 100644 test/spec/ol/parser/ogc/xml/exceptionreport/ows1_1_0.xml create mode 100644 test/spec/ol/parser/ogc/xml/exceptionreport/wms1_3_0.xml diff --git a/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_0_0.xml b/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_0_0.xml new file mode 100644 index 0000000000..141558d04d --- /dev/null +++ b/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_0_0.xml @@ -0,0 +1,9 @@ + + + + Update error: Error occured updating features + Second exception line + + diff --git a/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_1_0.xml b/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_1_0.xml new file mode 100644 index 0000000000..9fed1376dd --- /dev/null +++ b/test/spec/ol/parser/ogc/xml/exceptionreport/ows1_1_0.xml @@ -0,0 +1,9 @@ + + + + Update error: Error occured updating features + Second exception line + + diff --git a/test/spec/ol/parser/ogc/xml/exceptionreport/wms1_3_0.xml b/test/spec/ol/parser/ogc/xml/exceptionreport/wms1_3_0.xml new file mode 100644 index 0000000000..631d67064a --- /dev/null +++ b/test/spec/ol/parser/ogc/xml/exceptionreport/wms1_3_0.xml @@ -0,0 +1,16 @@ + + + Plain text message about an error. + Another error message, this one with a service exception code supplied. + + , line 42 +A message that includes angle brackets in text must be enclosed in a Character Data Section as in this example. All XML-like markup is ignored except for this sequence of three closing characters:' + +]]> + + + foo.c An error occurred Similarly, actual XML can be enclosed in a CDATA section. A generic parser will ignore that XML, but application-specific software may choose to process it. ]]> + + From 6c5f1fbcceb76ccf15710c7513f9bd5a021ee40b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 01:25:58 +0100 Subject: [PATCH 501/919] Make ol.geom.Geometry inherit from ol.Observable --- src/ol/geom/geometry.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index fe38d14b3b..14c567e250 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -3,9 +3,9 @@ goog.provide('ol.geom.Geometry'); goog.require('goog.asserts'); -goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.functions'); +goog.require('ol.Observable'); goog.require('ol.extent'); goog.require('ol.geom.flat'); @@ -38,7 +38,7 @@ ol.geom.GeometryLayout = { /** * @constructor - * @extends {goog.events.EventTarget} + * @extends {ol.Observable} */ ol.geom.Geometry = function() { @@ -81,7 +81,7 @@ ol.geom.Geometry = function() { this.extentRevision = -1; }; -goog.inherits(ol.geom.Geometry, goog.events.EventTarget); +goog.inherits(ol.geom.Geometry, ol.Observable); /** From 1ae13f152dd18bb01d6dca0a102cab60b693c4d1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 21:12:32 +0100 Subject: [PATCH 502/919] Fire change event when an ol.geom.Geometry is transformed --- src/ol/geom/geometry.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 14c567e250..508981b0f8 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -252,6 +252,7 @@ ol.geom.Geometry.prototype.transform = function(transformFn) { if (!goog.isNull(this.flatCoordinates)) { transformFn(this.flatCoordinates, this.flatCoordinates, this.stride); } + this.dispatchChangeEvent(); }; From 554e17ac22b67ab0458b23e7fbb3cac56c21cb35 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 19:51:54 +0100 Subject: [PATCH 503/919] Set geometry to null if no geometry given --- src/ol/feature.js | 4 +++- src/ol/geom/geometry.js | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ol/feature.js b/src/ol/feature.js index 3d6066da29..e4200c70d4 100644 --- a/src/ol/feature.js +++ b/src/ol/feature.js @@ -48,7 +48,7 @@ ol.Feature = function(opt_geometryOrValues) { this, ol.Object.getChangeEventType(ol.FeatureProperty.GEOMETRY), this.handleGeometryChanged_, false, this); - if (goog.isDef(opt_geometryOrValues)) { + if (goog.isDefAndNotNull(opt_geometryOrValues)) { if (opt_geometryOrValues instanceof ol.geom.Geometry) { var geometry = /** @type {ol.geom.Geometry} */ (opt_geometryOrValues); this.setGeometry(geometry); @@ -57,6 +57,8 @@ ol.Feature = function(opt_geometryOrValues) { var values = /** @type {Object.} */ (opt_geometryOrValues); this.setValues(values); } + } else { + this.setGeometry(null); } }; goog.inherits(ol.Feature, ol.Object); diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 508981b0f8..a1a8f7e6d1 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -251,8 +251,8 @@ ol.geom.Geometry.prototype.setLayout = ol.geom.Geometry.prototype.transform = function(transformFn) { if (!goog.isNull(this.flatCoordinates)) { transformFn(this.flatCoordinates, this.flatCoordinates, this.stride); + this.dispatchChangeEvent(); } - this.dispatchChangeEvent(); }; From 0d0b19128f593cd11ccf8a4e263abd3d0cf9c91d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Sun, 8 Dec 2013 21:35:27 +0100 Subject: [PATCH 504/919] Add ol.array.reverseSubArray --- src/ol/array.js | 18 ++++++++++++++++++ test/spec/ol/array.test.js | 23 +++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/ol/array.js b/src/ol/array.js index 4474eada9f..882a501262 100644 --- a/src/ol/array.js +++ b/src/ol/array.js @@ -84,3 +84,21 @@ ol.array.linearFindNearest = function(arr, target, direction) { return n - 1; } }; + + +/** + * @param {Array.<*>} arr Array. + * @param {number} begin Begin index. + * @param {number} end End index. + */ +ol.array.reverseSubArray = function(arr, begin, end) { + goog.asserts.assert(begin >= 0); + goog.asserts.assert(end < arr.length); + while (begin < end) { + var tmp = arr[begin]; + arr[begin] = arr[end]; + arr[end] = tmp; + ++begin; + --end; + } +}; diff --git a/test/spec/ol/array.test.js b/test/spec/ol/array.test.js index 740b77c8c1..5cf63f1ee3 100644 --- a/test/spec/ol/array.test.js +++ b/test/spec/ol/array.test.js @@ -73,6 +73,29 @@ describe('ol.array', function() { expect(ol.array.linearFindNearest(arr, 50, -1)).to.eql(2); }); }); + + describe.only('reverseSubArray', function() { + it('returns expected value', function() { + var arr; + var expected = [1, 2, 3, 4, 5, 6]; + + arr = [1, 5, 4, 3, 2, 6]; + ol.array.reverseSubArray(arr, 1, 4); + expect(arr).to.eql(expected); + + arr = [3, 2, 1, 4, 5, 6]; + ol.array.reverseSubArray(arr, 0, 2); + expect(arr).to.eql(expected); + + arr = [1, 2, 3, 6, 5, 4]; + ol.array.reverseSubArray(arr, 3, 5); + expect(arr).to.eql(expected); + + arr = [6, 5, 4, 3, 2, 1]; + ol.array.reverseSubArray(arr, 0, 5); + expect(arr).to.eql(expected); + }); + }); }); goog.require('ol.array'); From 30c0aa3cc2619e59cc7da61d58a16e3f0becd265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 9 Dec 2013 11:08:44 +0100 Subject: [PATCH 505/919] Replay objects create a reversedInstructions array --- src/ol/render/canvas/canvasreplay.js | 187 ++++++++++++++++++++------- 1 file changed, 139 insertions(+), 48 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index d4c3f520e3..2a95a7ceb7 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -10,6 +10,7 @@ goog.require('goog.dom'); goog.require('goog.dom.TagName'); goog.require('goog.object'); goog.require('goog.vec.Mat4'); +goog.require('ol.array'); goog.require('ol.color'); goog.require('ol.extent'); goog.require('ol.geom.flat'); @@ -45,6 +46,18 @@ ol.render.canvas.Instruction = { */ ol.render.canvas.Replay = function() { + /** + * @private + * @type {Array.<*>} + */ + this.beginGeometryInstruction1_ = null; + + /** + * @private + * @type {Array.<*>} + */ + this.beginGeometryInstruction2_ = null; + /** * @protected * @type {Array.<*>} @@ -63,6 +76,12 @@ ol.render.canvas.Replay = function() { */ this.renderedTransform_ = goog.vec.Mat4.createNumber(); + /** + * @protected + * @type {Array.<*>} + */ + this.reversedInstructions = []; + /** * @private * @type {Array.} @@ -104,15 +123,16 @@ ol.render.canvas.Replay.prototype.appendFlatCoordinates = /** - * @param {ol.geom.Geometry} geometry Geometry. * @protected - * @return {Array} Begin geometry instruction. + * @param {ol.geom.Geometry} geometry Geometry. */ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { - var beginGeometryInstruction = - [ol.render.canvas.Instruction.BEGIN_GEOMETRY, geometry, 0, 0]; - this.instructions.push(beginGeometryInstruction); - return beginGeometryInstruction; + this.beginGeometryInstruction1_ = + [ol.render.canvas.Instruction.BEGIN_GEOMETRY, geometry, 0]; + this.instructions.push(this.beginGeometryInstruction1_); + this.beginGeometryInstruction2_ = + [ol.render.canvas.Instruction.BEGIN_GEOMETRY, geometry, 0]; + this.reversedInstructions.push(this.beginGeometryInstruction2_); }; @@ -251,6 +271,34 @@ ol.render.canvas.Replay.prototype.replay = }; +/** + * @private + */ +ol.render.canvas.Replay.prototype.reverseInstructions_ = function() { + var reversedInstructions = this.reversedInstructions; + // step 1 - reverse array + reversedInstructions.reverse(); + // step 2 - reverse instructions within geometry blocks + var i; + var n = reversedInstructions.length; + var instruction; + var type; + var begin = -1; + for (i = 0; i < n; ++i) { + instruction = reversedInstructions[i]; + type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); + if (type == ol.render.canvas.Instruction.END_GEOMETRY) { + goog.asserts.assert(begin == -1); + begin = i; + } else if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) { + goog.asserts.assert(begin >= 0); + ol.array.reverseSubArray(this.reversedInstructions, begin, i); + begin = -1; + } + } +}; + + /** * @inheritDoc */ @@ -297,16 +345,20 @@ ol.render.canvas.Replay.prototype.drawMultiPolygonGeometry = /** * @param {ol.geom.Geometry} geometry Geometry. - * @param {Array} beginGeometryInstruction Begin geometry instruction. * @param {Object} data Opaque data object. */ ol.render.canvas.Replay.prototype.endGeometry = - function(geometry, beginGeometryInstruction, data) { - beginGeometryInstruction[2] = this.coordinates.length; - beginGeometryInstruction[3] = this.instructions.length; + function(geometry, data) { + goog.asserts.assert(!goog.isNull(this.beginGeometryInstruction1_)); + this.beginGeometryInstruction1_[2] = this.instructions.length; + this.beginGeometryInstruction1_ = null; + goog.asserts.assert(!goog.isNull(this.beginGeometryInstruction2_)); + this.beginGeometryInstruction2_[2] = this.reversedInstructions.length; + this.beginGeometryInstruction2_ = null; var endGeometryInstruction = [ol.render.canvas.Instruction.END_GEOMETRY, geometry, data]; this.instructions.push(endGeometryInstruction); + this.reversedInstructions.push(endGeometryInstruction); }; @@ -421,17 +473,20 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = goog.asserts.assert(goog.isDef(this.height_)); goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, pointGeometry.getExtent()); - var beginGeometryInstruction = this.beginGeometry(pointGeometry); + this.beginGeometry(pointGeometry); var flatCoordinates = pointGeometry.getFlatCoordinates(); var stride = pointGeometry.getStride(); + var myBegin = this.coordinates.length; var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); - this.instructions.push([ - ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, + var drawImageInstruction = [ + ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, this.anchorX_, this.anchorY_, this.width_, this.height_, this.image_, this.snapToPixel_ - ]); - this.endGeometry(pointGeometry, beginGeometryInstruction, data); + ]; + this.instructions.push(drawImageInstruction); + this.reversedInstructions.push(drawImageInstruction); + this.endGeometry(pointGeometry, data); }; @@ -448,17 +503,20 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = goog.asserts.assert(goog.isDef(this.height_)); goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); - var beginGeometryInstruction = this.beginGeometry(multiPointGeometry); + this.beginGeometry(multiPointGeometry); var flatCoordinates = multiPointGeometry.getFlatCoordinates(); var stride = multiPointGeometry.getStride(); + var myBegin = this.coordinates.length; var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); - this.instructions.push([ - ol.render.canvas.Instruction.DRAW_IMAGE, myEnd, + var drawImageInstruction = [ + ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, this.anchorX_, this.anchorY_, this.width_, this.height_, this.image_, this.snapToPixel_ - ]); - this.endGeometry(multiPointGeometry, beginGeometryInstruction, data); + ]; + this.instructions.push(drawImageInstruction); + this.reversedInstructions.push(drawImageInstruction); + this.endGeometry(multiPointGeometry, data); }; @@ -466,6 +524,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = * @inheritDoc */ ol.render.canvas.ImageReplay.prototype.finish = function() { + this.reverseInstructions_(); // FIXME this doesn't really protect us against further calls to draw*Geometry this.anchorX_ = undefined; this.anchorY_ = undefined; @@ -550,9 +609,13 @@ goog.inherits(ol.render.canvas.LineStringReplay, ol.render.canvas.Replay); */ ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = function(flatCoordinates, offset, end, stride) { + var myBegin = this.coordinates.length; var myEnd = this.appendFlatCoordinates( flatCoordinates, offset, end, stride, false); - this.instructions.push([ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myEnd]); + var moveToLineToInstruction = + [ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myBegin, myEnd]; + this.instructions.push(moveToLineToInstruction); + this.reversedInstructions.push(moveToLineToInstruction); return end; }; @@ -582,13 +645,13 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() { state.currentMiterLimit != miterLimit) { if (state.lastStroke != this.coordinates.length) { this.instructions.push( - [ol.render.canvas.Instruction.STROKE, false, true]); + [ol.render.canvas.Instruction.STROKE]); state.lastStroke = this.coordinates.length; } this.instructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, strokeStyle, lineWidth, lineCap, lineJoin, miterLimit, lineDash], - [ol.render.canvas.Instruction.BEGIN_PATH, false, true]); + [ol.render.canvas.Instruction.BEGIN_PATH]); state.currentStrokeStyle = strokeStyle; state.currentLineCap = lineCap; state.currentLineDash = lineDash; @@ -613,15 +676,14 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = } ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); this.setStrokeStyle_(); - var beginGeometryInstruction = this.beginGeometry(lineStringGeometry); - this.instructions.push( - [ol.render.canvas.Instruction.BEGIN_PATH, true, false]); + this.beginGeometry(lineStringGeometry); + this.reversedInstructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); var flatCoordinates = lineStringGeometry.getFlatCoordinates(); var stride = lineStringGeometry.getStride(); this.drawFlatCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); - this.instructions.push([ol.render.canvas.Instruction.STROKE, true, false]); - this.endGeometry(lineStringGeometry, beginGeometryInstruction, data); + this.reversedInstructions.push([ol.render.canvas.Instruction.STROKE]); + this.endGeometry(lineStringGeometry, data); }; @@ -639,9 +701,8 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = } ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); this.setStrokeStyle_(); - this.instructions.push([ - ol.render.canvas.Instruction.BEGIN_PATH, true, false]); - var beginGeometryInstruction = this.beginGeometry(multiLineStringGeometry); + this.reversedInstructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); + this.beginGeometry(multiLineStringGeometry); var ends = multiLineStringGeometry.getEnds(); var flatCoordinates = multiLineStringGeometry.getFlatCoordinates(); var stride = multiLineStringGeometry.getStride(); @@ -651,9 +712,8 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = offset = this.drawFlatCoordinates_( flatCoordinates, offset, ends[i], stride); } - this.instructions.push( - [ol.render.canvas.Instruction.STROKE, true, false]); - this.endGeometry(multiLineStringGeometry, beginGeometryInstruction, data); + this.reversedInstructions.push([ol.render.canvas.Instruction.STROKE]); + this.endGeometry(multiLineStringGeometry, data); }; @@ -664,8 +724,9 @@ ol.render.canvas.LineStringReplay.prototype.finish = function() { var state = this.state_; goog.asserts.assert(!goog.isNull(state)); if (state.lastStroke != this.coordinates.length) { - this.instructions.push([ol.render.canvas.Instruction.STROKE, false, true]); + this.instructions.push([ol.render.canvas.Instruction.STROKE]); } + this.reverseInstructions_(); this.state_ = null; }; @@ -753,26 +814,35 @@ goog.inherits(ol.render.canvas.PolygonReplay, ol.render.canvas.Replay); ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = function(flatCoordinates, offset, ends, stride) { var state = this.state_; - this.instructions.push( - [ol.render.canvas.Instruction.BEGIN_PATH, true, true]); + var beginPathInstruction = [ol.render.canvas.Instruction.BEGIN_PATH]; + this.instructions.push(beginPathInstruction); + this.reversedInstructions.push(beginPathInstruction); var i, ii; for (i = 0, ii = ends.length; i < ii; ++i) { var end = ends[i]; - var myEnd = - this.appendFlatCoordinates(flatCoordinates, offset, end, stride, true); - this.instructions.push( - [ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myEnd], - [ol.render.canvas.Instruction.CLOSE_PATH]); + var myBegin = this.coordinates.length; + var myEnd = this.appendFlatCoordinates( + flatCoordinates, offset, end, stride, true); + var moveToLineToInstruction = + [ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myBegin, myEnd]; + var closePathInstruction = [ol.render.canvas.Instruction.CLOSE_PATH]; + this.instructions.push(moveToLineToInstruction, closePathInstruction); + this.reversedInstructions.push(moveToLineToInstruction, + closePathInstruction); offset = end; } // FIXME is it quicker to fill and stroke each polygon individually, // FIXME or all polygons together? if (goog.isDef(state.fillStyle)) { - this.instructions.push([ol.render.canvas.Instruction.FILL]); + var fillInstruction = [ol.render.canvas.Instruction.FILL]; + this.instructions.push(fillInstruction); + this.reversedInstructions.push(fillInstruction); } if (goog.isDef(state.strokeStyle)) { goog.asserts.assert(goog.isDef(state.lineWidth)); - this.instructions.push([ol.render.canvas.Instruction.STROKE, true, true]); + var strokeInstruction = [ol.render.canvas.Instruction.STROKE]; + this.instructions.push(strokeInstruction); + this.reversedInstructions.push(strokeInstruction); } return offset; }; @@ -795,12 +865,22 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = } ol.extent.extend(this.extent_, polygonGeometry.getExtent()); this.setFillStrokeStyles_(); - var beginGeometryInstruction = this.beginGeometry(polygonGeometry); + this.beginGeometry(polygonGeometry); + if (goog.isDef(state.fillStyle)) { + this.reversedInstructions.push( + [ol.render.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); + } + if (goog.isDef(state.strokeStyle)) { + this.reversedInstructions.push( + [ol.render.canvas.Instruction.SET_STROKE_STYLE, + state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin, + state.miterLimit, state.lineDash]); + } var ends = polygonGeometry.getEnds(); var flatCoordinates = polygonGeometry.getFlatCoordinates(); var stride = polygonGeometry.getStride(); this.drawFlatCoordinatess_(flatCoordinates, 0, ends, stride); - this.endGeometry(polygonGeometry, beginGeometryInstruction, data); + this.endGeometry(polygonGeometry, data); }; @@ -821,7 +901,17 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = } ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent()); this.setFillStrokeStyles_(); - var beginGeometryInstruction = this.beginGeometry(multiPolygonGeometry); + this.beginGeometry(multiPolygonGeometry); + if (goog.isDef(state.fillStyle)) { + this.reversedInstructions.push( + [ol.render.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); + } + if (goog.isDef(state.strokeStyle)) { + this.reversedInstructions.push( + [ol.render.canvas.Instruction.SET_STROKE_STYLE, + state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin, + state.miterLimit, state.lineDash]); + } var endss = multiPolygonGeometry.getEndss(); var flatCoordinates = multiPolygonGeometry.getFlatCoordinates(); var stride = multiPolygonGeometry.getStride(); @@ -831,7 +921,7 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = offset = this.drawFlatCoordinatess_( flatCoordinates, offset, endss[i], stride); } - this.endGeometry(multiPolygonGeometry, beginGeometryInstruction, data); + this.endGeometry(multiPolygonGeometry, data); }; @@ -840,6 +930,7 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = */ ol.render.canvas.PolygonReplay.prototype.finish = function() { goog.asserts.assert(!goog.isNull(this.state_)); + this.reverseInstructions_(); this.state_ = null; }; From 15db1eb4163a3f7791832b657661c276773719fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 9 Dec 2013 11:11:30 +0100 Subject: [PATCH 506/919] Use reversedInstructions for hit detection --- src/ol/render/canvas/canvasreplay.js | 157 ++++++++++++++++++--------- 1 file changed, 105 insertions(+), 52 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 2a95a7ceb7..85807afa6e 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -137,19 +137,20 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { /** + * @private * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. - * @param {function(ol.geom.Geometry, Object): T=} opt_callback + * @param {Array.<*>} instructions Instructions array. + * @param {function(ol.geom.Geometry, Object): T|undefined} geometryCallback * Geometry callback. * @return {T|undefined} Callback result. * @template T */ -ol.render.canvas.Replay.prototype.replay = - function(context, transform, renderGeometryFunction, opt_callback) { - var perGeometryMode = goog.isDef(opt_callback); - var batchMode = !perGeometryMode; +ol.render.canvas.Replay.prototype.replay_ = + function(context, transform, renderGeometryFunction, instructions, + geometryCallback) { /** @type {Array.} */ var pixelCoordinates; if (ol.vec.Mat4.equals2D(transform, this.renderedTransform_)) { @@ -160,44 +161,39 @@ ol.render.canvas.Replay.prototype.replay = goog.vec.Mat4.setFromArray(this.renderedTransform_, transform); goog.asserts.assert(pixelCoordinates === this.pixelCoordinates_); } - var instructions = this.instructions; var i = 0; // instruction index var ii = instructions.length; // end of instructions - var d = 0; // data index + var d; // data index var dd; // end of per-instruction data while (i < ii) { var instruction = instructions[i]; var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); var geometry; - var executeInPerGeometryMode, executeInBatchMode; if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) { geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); if (renderGeometryFunction(geometry)) { ++i; } else { - d = /** @type {number} */ (instruction[2]); - i = /** @type {number} */ (instruction[3]); + i = /** @type {number} */ (instruction[2]); } } else if (type == ol.render.canvas.Instruction.BEGIN_PATH) { - executeInPerGeometryMode = /** @type {boolean} */ (instruction[1]); - executeInBatchMode = /** @type {boolean} */ (instruction[2]); - if ((perGeometryMode && executeInPerGeometryMode) || - (batchMode && executeInBatchMode)) { - context.beginPath(); - } + context.beginPath(); ++i; } else if (type == ol.render.canvas.Instruction.CLOSE_PATH) { context.closePath(); ++i; } else if (type == ol.render.canvas.Instruction.DRAW_IMAGE) { - dd = /** @type {number} */ (instruction[1]); - var anchorX = /** @type {number} */ (instruction[2]); - var anchorY = /** @type {number} */ (instruction[3]); - var width = /** @type {number} */ (instruction[4]); - var height = /** @type {number} */ (instruction[5]); + goog.asserts.assert(goog.isNumber(instruction[1])); + d = /** @type {number} */ (instruction[1]); + goog.asserts.assert(goog.isNumber(instruction[2])); + dd = /** @type {number} */ (instruction[2]); + var anchorX = /** @type {number} */ (instruction[3]); + var anchorY = /** @type {number} */ (instruction[4]); + var width = /** @type {number} */ (instruction[5]); + var height = /** @type {number} */ (instruction[6]); var image = /** @type {HTMLCanvasElement|HTMLVideoElement|Image} */ - (instruction[6]); - var snapToPixel = /** @type {boolean|undefined} */ (instruction[7]); + (instruction[7]); + var snapToPixel = /** @type {boolean|undefined} */ (instruction[8]); for (; d < dd; d += 2) { var x = pixelCoordinates[d] - anchorX; var y = pixelCoordinates[d + 1] - anchorY; @@ -209,11 +205,10 @@ ol.render.canvas.Replay.prototype.replay = } ++i; } else if (type == ol.render.canvas.Instruction.END_GEOMETRY) { - if (perGeometryMode) { - goog.asserts.assert(goog.isDef(opt_callback)); + if (goog.isDef(geometryCallback)) { geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); var data = /** @type {Object} */ (instruction[2]); - var result = opt_callback(geometry, data); + var result = geometryCallback(geometry, data); if (result) { return result; } @@ -223,9 +218,11 @@ ol.render.canvas.Replay.prototype.replay = context.fill(); ++i; } else if (type == ol.render.canvas.Instruction.MOVE_TO_LINE_TO) { - context.moveTo(pixelCoordinates[d], pixelCoordinates[d + 1]); goog.asserts.assert(goog.isNumber(instruction[1])); - dd = /** @type {number} */ (instruction[1]); + d = /** @type {number} */ (instruction[1]); + goog.asserts.assert(goog.isNumber(instruction[2])); + dd = /** @type {number} */ (instruction[2]); + context.moveTo(pixelCoordinates[d], pixelCoordinates[d + 1]); for (d += 2; d < dd; d += 2) { context.lineTo(pixelCoordinates[d], pixelCoordinates[d + 1]); } @@ -251,26 +248,53 @@ ol.render.canvas.Replay.prototype.replay = } ++i; } else if (type == ol.render.canvas.Instruction.STROKE) { - executeInPerGeometryMode = /** @type {boolean} */ (instruction[1]); - executeInBatchMode = /** @type {boolean} */ (instruction[2]); - if ((perGeometryMode && executeInPerGeometryMode) || - (batchMode && executeInBatchMode)) { - context.stroke(); - } + context.stroke(); ++i; } else { goog.asserts.fail(); ++i; // consume the instruction anyway, to avoid an infinite loop } } - // assert that all data were consumed - goog.asserts.assert(d == pixelCoordinates.length); // assert that all instructions were consumed goog.asserts.assert(i == instructions.length); return undefined; }; +/** + * @param {CanvasRenderingContext2D} context Context. + * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render + * geometry function. + * @return {T|undefined} Callback result. + * @template T + */ +ol.render.canvas.Replay.prototype.replayForward = + function(context, transform, renderGeometryFunction) { + var instructions = this.instructions; + return this.replay_(context, transform, renderGeometryFunction, + instructions, undefined); +}; + + +/** + * @param {CanvasRenderingContext2D} context Context. + * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render + * geometry function. + * @param {function(ol.geom.Geometry, Object): T=} opt_geometryCallback + * Geometry callback. + * @return {T|undefined} Callback result. + * @template T + */ +ol.render.canvas.Replay.prototype.replayBackward = + function(context, transform, renderGeometryFunction, opt_geometryCallback) { + var instructions = this.reversedInstructions; + return this.replay_(context, transform, renderGeometryFunction, + instructions, opt_geometryCallback); +}; + + /** * @private */ @@ -1061,18 +1085,16 @@ ol.render.canvas.ReplayGroup = function() { * @param {goog.vec.Mat4.AnyType} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. - * @param {function(ol.geom.Geometry, Object): T=} opt_callback Geometry - * callback. * @return {T|undefined} Callback result. * @template T */ -ol.render.canvas.ReplayGroup.prototype.replay = - function(context, extent, transform, renderGeometryFunction, opt_callback) { +ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent, + transform, renderGeometryFunction) { /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); goog.array.sort(zs); - return this.replay_( - zs, context, extent, transform, renderGeometryFunction, opt_callback); + return this.replayForward_( + zs, context, extent, transform, renderGeometryFunction); }; @@ -1084,22 +1106,52 @@ ol.render.canvas.ReplayGroup.prototype.replay = * @param {goog.vec.Mat4.AnyType} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. - * @param {function(ol.geom.Geometry, Object): T=} opt_callback Geometry + * @param {function(ol.geom.Geometry, Object): T} geometryCallback Geometry * callback. * @return {T|undefined} Callback result. * @template T */ -ol.render.canvas.ReplayGroup.prototype.replay_ = function(zs, context, extent, - transform, renderGeometryFunction, opt_callback) { - var i, ii; +ol.render.canvas.ReplayGroup.prototype.replayBackward_ = function(zs, context, + extent, transform, renderGeometryFunction, geometryCallback) { + var i, ii, replayes, replayType, replay, result; for (i = 0, ii = zs.length; i < ii; ++i) { - var replayes = this.replayesByZIndex_[zs[i].toString()]; - var replayType; + replayes = this.replayesByZIndex_[zs[i].toString()]; for (replayType in replayes) { - var replay = replayes[replayType]; + replay = replayes[replayType]; if (ol.extent.intersects(extent, replay.getExtent())) { - var result = replay.replay( - context, transform, renderGeometryFunction, opt_callback); + result = replay.replayBackward( + context, transform, renderGeometryFunction, geometryCallback); + if (result) { + return result; + } + } + } + } + return undefined; +}; + + +/** + * @private + * @param {Array.} zs Z-indices array. + * @param {CanvasRenderingContext2D} context Context. + * @param {ol.Extent} extent Extent. + * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render + * geometry function. + * @return {T|undefined} Callback result. + * @template T + */ +ol.render.canvas.ReplayGroup.prototype.replayForward_ = + function(zs, context, extent, transform, renderGeometryFunction) { + var i, ii, replayes, replayType, replay, result; + for (i = 0, ii = zs.length; i < ii; ++i) { + replayes = this.replayesByZIndex_[zs[i].toString()]; + for (replayType in replayes) { + replay = replayes[replayType]; + if (ol.extent.intersects(extent, replay.getExtent())) { + result = replay.replayForward( + context, transform, renderGeometryFunction); if (result) { return result; } @@ -1134,7 +1186,8 @@ ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtCoordinate = function( var context = this.hitDetectionContext_; context.clearRect(0, 0, 1, 1); - return this.replay_(zs, context, extent, transform, renderGeometryFunction, + return this.replayBackward_(zs, context, extent, transform, + renderGeometryFunction, /** * @param {ol.geom.Geometry} geometry Geometry. * @param {Object} data Opaque data object. From 94393c00507bd9ca68f7935ad140d840757fe45b Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 9 Dec 2013 16:37:18 +0100 Subject: [PATCH 507/919] Don't use describe.only in test --- test/spec/ol/array.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/spec/ol/array.test.js b/test/spec/ol/array.test.js index 5cf63f1ee3..4d68a2edea 100644 --- a/test/spec/ol/array.test.js +++ b/test/spec/ol/array.test.js @@ -74,7 +74,7 @@ describe('ol.array', function() { }); }); - describe.only('reverseSubArray', function() { + describe('reverseSubArray', function() { it('returns expected value', function() { var arr; var expected = [1, 2, 3, 4, 5, 6]; From ec03be94d6fdcef72f9ce4413d856a1417cd3f49 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 5 Dec 2013 14:13:47 +0100 Subject: [PATCH 508/919] Add initial ol.geom.simplify --- src/ol/geom/simplifygeom.js | 219 ++++++++++++++++++ test/spec/ol/geom/simplifygeom.test.js | 293 +++++++++++++++++++++++++ 2 files changed, 512 insertions(+) create mode 100644 src/ol/geom/simplifygeom.js create mode 100644 test/spec/ol/geom/simplifygeom.test.js diff --git a/src/ol/geom/simplifygeom.js b/src/ol/geom/simplifygeom.js new file mode 100644 index 0000000000..3fbbe65d16 --- /dev/null +++ b/src/ol/geom/simplifygeom.js @@ -0,0 +1,219 @@ +// Based on simplify-js https://github.com/mourner/simplify-js +// Copyright (c) 2012, Vladimir Agafonkin +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +goog.provide('ol.geom.simplify'); + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {number} squaredTolerance Squared tolerance. + * @param {boolean} highQuality Highest quality. + * @param {Array.=} opt_simplifiedFlatCoordinates Simplified flat + * coordinates. + * @return {Array.} Simplified line string. + */ +ol.geom.simplify.lineString = function(flatCoordinates, offset, end, stride, + squaredTolerance, highQuality, opt_simplifiedFlatCoordinates) { + var simplifiedFlatCoordinates = goog.isDef(opt_simplifiedFlatCoordinates) ? + opt_simplifiedFlatCoordinates : []; + if (!highQuality) { + end = ol.geom.simplify.radialDistance(flatCoordinates, offset, end, + stride, squaredTolerance, + simplifiedFlatCoordinates, 0); + flatCoordinates = simplifiedFlatCoordinates; + offset = 0; + stride = 2; + } + simplifiedFlatCoordinates.length = ol.geom.simplify.douglasPeucker( + flatCoordinates, offset, end, stride, squaredTolerance, + simplifiedFlatCoordinates, 0); + return simplifiedFlatCoordinates; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {number} squaredTolerance Squared tolerance. + * @param {Array.} simplifiedFlatCoordinates Simplified flat + * coordinates. + * @param {number} simplifiedOffset Simplified offset. + * @return {number} Simplified offset. + */ +ol.geom.simplify.douglasPeucker = function(flatCoordinates, offset, end, + stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) { + var n = (end - offset) / stride; + if (n < 3) { + for (; offset < end; offset += stride) { + simplifiedFlatCoordinates[simplifiedOffset++] = + flatCoordinates[offset]; + simplifiedFlatCoordinates[simplifiedOffset++] = + flatCoordinates[offset + 1]; + } + return simplifiedOffset; + } + var MarkerArray = goog.global['Uint8Array'] ? Uint8Array : Array; + var markers = new MarkerArray(n); + markers[0] = 1; + markers[n - 1] = 1; + var stack = [offset, end - stride]; + var index = 0; + var i; + while (stack.length > 0) { + var last = stack.pop(); + var first = stack.pop(); + var maxSquaredDistance = 0; + var x1 = flatCoordinates[first]; + var y1 = flatCoordinates[first + 1]; + var x2 = flatCoordinates[last]; + var y2 = flatCoordinates[last + 1]; + for (i = first + stride; i < last; i += stride) { + var x = flatCoordinates[i]; + var y = flatCoordinates[i + 1]; + var squaredDistance = + ol.geom.simplify.squaredSegmentDistance(x, y, x1, y1, x2, y2); + if (squaredDistance > maxSquaredDistance) { + index = i; + maxSquaredDistance = squaredDistance; + } + } + if (maxSquaredDistance > squaredTolerance) { + markers[(index - offset) / stride] = 1; + if (first + stride < index) { + stack.push(first, index); + } + if (index + stride < last) { + stack.push(index, last); + } + } + } + for (i = 0; i < n; ++i) { + if (markers[i]) { + simplifiedFlatCoordinates[simplifiedOffset++] = + flatCoordinates[offset + i * stride]; + simplifiedFlatCoordinates[simplifiedOffset++] = + flatCoordinates[offset + i * stride + 1]; + } + } + return simplifiedOffset; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {number} squaredTolerance Squared tolerance. + * @param {Array.} simplifiedFlatCoordinates Simplified flat + * coordinates. + * @param {number} simplifiedOffset Simplified offset. + * @return {number} Simplified offset. + */ +ol.geom.simplify.radialDistance = function(flatCoordinates, offset, end, + stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) { + if (end <= offset + stride) { + // zero or one point, no simplification possible, so copy and return + for (; offset < end; offset += stride) { + simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset]; + simplifiedFlatCoordinates[simplifiedOffset++] = + flatCoordinates[offset + 1]; + } + return simplifiedOffset; + } + var x1 = flatCoordinates[offset]; + var y1 = flatCoordinates[offset + 1]; + // copy first point + simplifiedFlatCoordinates[simplifiedOffset++] = x1; + simplifiedFlatCoordinates[simplifiedOffset++] = y1; + var x2 = x1; + var y2 = y1; + for (offset += stride; offset < end; offset += stride) { + x2 = flatCoordinates[offset]; + y2 = flatCoordinates[offset + 1]; + if (ol.geom.simplify.squaredDistance(x1, y1, x2, y2) > squaredTolerance) { + // copy point at offset + simplifiedFlatCoordinates[simplifiedOffset++] = x2; + simplifiedFlatCoordinates[simplifiedOffset++] = y2; + x1 = x2; + y1 = y2; + } + } + if (x2 != x1 || y2 != y1) { + // copy last point + simplifiedFlatCoordinates[simplifiedOffset++] = x2; + simplifiedFlatCoordinates[simplifiedOffset++] = y2; + } + return simplifiedOffset; +}; + + +/** + * Returns the square of the distance between the points (x1, y1) and (x2, y2). + * @param {number} x1 X1. + * @param {number} y1 Y1. + * @param {number} x2 X2. + * @param {number} y2 Y2. + * @return {number} Squared distance. + */ +ol.geom.simplify.squaredDistance = function(x1, y1, x2, y2) { + var dx = x2 - x1; + var dy = y2 - y1; + return dx * dx + dy * dy; +}; + + +/** + * Returns the square of the closest distance between the point (x, y) and the + * line segment (x1, y1) to (x2, y2). + * @param {number} x X. + * @param {number} y Y. + * @param {number} x1 X1. + * @param {number} y1 Y1. + * @param {number} x2 X2. + * @param {number} y2 Y2. + * @return {number} Squared distance. + */ +ol.geom.simplify.squaredSegmentDistance = function(x, y, x1, y1, x2, y2) { + var dx = x2 - x1; + var dy = y2 - y1; + if (dx !== 0 || dy !== 0) { + var t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy); + if (t > 1) { + x1 = x2; + y1 = y2; + } else if (t > 0) { + x1 += dx * t; + y1 += dy * t; + } + } + return ol.geom.simplify.squaredDistance(x, y, x1, y1); +}; diff --git a/test/spec/ol/geom/simplifygeom.test.js b/test/spec/ol/geom/simplifygeom.test.js new file mode 100644 index 0000000000..00795806d7 --- /dev/null +++ b/test/spec/ol/geom/simplifygeom.test.js @@ -0,0 +1,293 @@ +goog.provide('ol.test.geom.simplify'); + + +describe('ol.geom.simplify', function() { + + var flatCoordinates = [ + 224.55, 250.15, 226.91, 244.19, 233.31, 241.45, 234.98, 236.06, + 244.21, 232.76, 262.59, 215.31, 267.76, 213.81, 273.57, 201.84, + 273.12, 192.16, 277.62, 189.03, 280.36, 181.41, 286.51, 177.74, + 292.41, 159.37, 296.91, 155.64, 314.95, 151.37, 319.75, 145.16, + 330.33, 137.57, 341.48, 139.96, 369.98, 137.89, 387.39, 142.51, + 391.28, 139.39, 409.52, 141.14, 414.82, 139.75, 427.72, 127.30, + 439.60, 119.74, 474.93, 107.87, 486.51, 106.75, 489.20, 109.45, + 493.79, 108.63, 504.74, 119.66, 512.96, 122.35, 518.63, 120.89, + 524.09, 126.88, 529.57, 127.86, 534.21, 140.93, 539.27, 147.24, + 567.69, 148.91, 575.25, 157.26, 580.62, 158.15, 601.53, 156.85, + 617.74, 159.86, 622.00, 167.04, 629.55, 194.60, 638.90, 195.61, + 641.26, 200.81, 651.77, 204.56, 671.55, 222.55, 683.68, 217.45, + 695.25, 219.15, 700.64, 217.98, 703.12, 214.36, 712.26, 215.87, + 721.49, 212.81, 727.81, 213.36, 729.98, 208.73, 735.32, 208.20, + 739.94, 204.77, 769.98, 208.42, 779.60, 216.87, 784.20, 218.16, + 800.24, 214.62, 810.53, 219.73, 817.19, 226.82, 820.77, 236.17, + 827.23, 236.16, 829.89, 239.89, 851.00, 248.94, 859.88, 255.49, + 865.21, 268.53, 857.95, 280.30, 865.48, 291.45, 866.81, 298.66, + 864.68, 302.71, 867.79, 306.17, 859.87, 311.37, 860.08, 314.35, + 858.29, 314.94, 858.10, 327.60, 854.54, 335.40, 860.92, 343.00, + 856.43, 350.15, 851.42, 352.96, 849.84, 359.59, 854.56, 365.53, + 849.74, 370.38, 844.09, 371.89, 844.75, 380.44, 841.52, 383.67, + 839.57, 390.40, 845.59, 399.05, 848.40, 407.55, 843.71, 411.30, + 844.09, 419.88, 839.51, 432.76, 841.33, 441.04, 847.62, 449.22, + 847.16, 458.44, 851.38, 462.79, 853.97, 471.15, 866.36, 480.77 + ]; + + var simplifiedRadiallyFlatCoordinates = [ + 224.55, 250.15, 226.91, 244.19, 233.31, 241.45, 234.98, 236.06, + 244.21, 232.76, 262.59, 215.31, 267.76, 213.81, 273.57, 201.84, + 273.12, 192.16, 277.62, 189.03, 280.36, 181.41, 286.51, 177.74, + 292.41, 159.37, 296.91, 155.64, 314.95, 151.37, 319.75, 145.16, + 330.33, 137.57, 341.48, 139.96, 369.98, 137.89, 387.39, 142.51, + 409.52, 141.14, 414.82, 139.75, 427.72, 127.30, 439.60, 119.74, + 474.93, 107.87, 486.51, 106.75, 493.79, 108.63, 504.74, 119.66, + 512.96, 122.35, 518.63, 120.89, 524.09, 126.88, 529.57, 127.86, + 534.21, 140.93, 539.27, 147.24, 567.69, 148.91, 575.25, 157.26, + 580.62, 158.15, 601.53, 156.85, 617.74, 159.86, 622.00, 167.04, + 629.55, 194.60, 638.90, 195.61, 641.26, 200.81, 651.77, 204.56, + 671.55, 222.55, 683.68, 217.45, 695.25, 219.15, 700.64, 217.98, + 712.26, 215.87, 721.49, 212.81, 727.81, 213.36, 729.98, 208.73, + 735.32, 208.20, 739.94, 204.77, 769.98, 208.42, 779.60, 216.87, + 800.24, 214.62, 810.53, 219.73, 817.19, 226.82, 820.77, 236.17, + 827.23, 236.16, 851.00, 248.94, 859.88, 255.49, 865.21, 268.53, + 857.95, 280.30, 865.48, 291.45, 866.81, 298.66, 867.79, 306.17, + 859.87, 311.37, 858.10, 327.60, 854.54, 335.40, 860.92, 343.00, + 856.43, 350.15, 851.42, 352.96, 849.84, 359.59, 854.56, 365.53, + 849.74, 370.38, 844.09, 371.89, 844.75, 380.44, 839.57, 390.40, + 845.59, 399.05, 848.40, 407.55, 843.71, 411.30, 844.09, 419.88, + 839.51, 432.76, 841.33, 441.04, 847.62, 449.22, 847.16, 458.44, + 851.38, 462.79, 853.97, 471.15, 866.36, 480.77 + ]; + + var simplifiedFlatCoordinates = [ + 224.55, 250.15, 267.76, 213.81, 296.91, 155.64, 330.33, 137.57, + 409.52, 141.14, 439.60, 119.74, 486.51, 106.75, 529.57, 127.86, + 539.27, 147.24, 617.74, 159.86, 629.55, 194.60, 671.55, 222.55, + 727.81, 213.36, 739.94, 204.77, 769.98, 208.42, 779.60, 216.87, + 800.24, 214.62, 820.77, 236.17, 859.88, 255.49, 865.21, 268.53, + 857.95, 280.30, 867.79, 306.17, 859.87, 311.37, 854.54, 335.40, + 860.92, 343.00, 849.84, 359.59, 854.56, 365.53, 844.09, 371.89, + 839.57, 390.40, 848.40, 407.55, 839.51, 432.76, 853.97, 471.15, + 866.36, 480.77 + ]; + + var simplifiedHighQualityFlatCoordinates = [ + 224.55, 250.15, 267.76, 213.81, 296.91, 155.64, 330.33, 137.57, + 409.52, 141.14, 439.60, 119.74, 486.51, 106.75, 529.57, 127.86, + 539.27, 147.24, 617.74, 159.86, 629.55, 194.60, 671.55, 222.55, + 727.81, 213.36, 739.94, 204.77, 769.98, 208.42, 784.20, 218.16, + 800.24, 214.62, 820.77, 236.17, 859.88, 255.49, 865.21, 268.53, + 857.95, 280.30, 867.79, 306.17, 858.29, 314.94, 854.54, 335.40, + 860.92, 343.00, 849.84, 359.59, 854.56, 365.53, 844.09, 371.89, + 839.57, 390.40, 848.40, 407.55, 839.51, 432.76, 853.97, 471.15, + 866.36, 480.77 + ]; + + describe('ol.geom.simplify.lineString', function() { + + it('works with empty line strings', function() { + expect(ol.geom.simplify.lineString([], 0, 0, 2, 1, true)).to. + eql([]); + expect(ol.geom.simplify.lineString([], 0, 0, 2, 1, false)).to. + eql([]); + }); + + it('works with a line string with a single point', function() { + expect(ol.geom.simplify.lineString([1, 2], 0, 2, 2, 1, true)).to. + eql([1, 2]); + expect(ol.geom.simplify.lineString([1, 2], 0, 2, 2, 1, false)).to. + eql([1, 2]); + }); + + it('returns the expected result with low quality', function() { + var result = ol.geom.simplify.lineString( + flatCoordinates, 0, flatCoordinates.length, 2, 25, false); + expect(result.length).to.be(simplifiedFlatCoordinates.length); + expect(result).to.eql(simplifiedFlatCoordinates); + }); + + it('returns the expected result with high quality', function() { + var result = ol.geom.simplify.lineString( + flatCoordinates, 0, flatCoordinates.length, 2, 25, true); + expect(result.length).to.be(simplifiedHighQualityFlatCoordinates.length); + expect(result).to.eql(simplifiedHighQualityFlatCoordinates); + }); + + }); + + describe('ol.geom.simplify.radialDistance', function() { + + var dest; + beforeEach(function() { + dest = []; + }); + + it('works with empty line strings', function() { + expect(ol.geom.simplify.radialDistance( + [], 0, 0, 2, 1, dest, 0)).to.be(0); + expect(dest).to.eql([]); + }); + + it('works with a line string with a single point', function() { + expect(ol.geom.simplify.radialDistance( + [1, 2], 0, 2, 2, 1, dest, 0)).to.be(2); + expect(dest).to.eql([1, 2]); + }); + + it('works with a line string with two points', function() { + expect(ol.geom.simplify.radialDistance( + [1, 2, 3, 4], 0, 4, 2, 1, dest, 0)).to.be(4); + expect(dest).to.eql([1, 2, 3, 4]); + }); + + it('works when the points are widely spaced', function() { + expect(ol.geom.simplify.radialDistance( + [0, 0, 1, 0, 2, 0, 3, 0], 0, 8, 2, 0.5, dest, 0)).to.be(8); + expect(dest).to.eql([0, 0, 1, 0, 2, 0, 3, 0]); + }); + + it('works when the spacing matches the tolerance', function() { + expect(ol.geom.simplify.radialDistance( + [0, 0, 1, 0, 2, 0, 3, 0], 0, 8, 2, 1, dest, 0)).to.be(6); + expect(dest).to.eql([0, 0, 2, 0, 3, 0]); + }); + + it('works when the points are closely spaced', function() { + expect(ol.geom.simplify.radialDistance( + [0, 0, 1, 0, 2, 0, 3, 0], 0, 8, 2, 1.5, dest, 0)).to.be(6); + expect(dest).to.eql([0, 0, 2, 0, 3, 0]); + }); + + it('works when the line oscillates with widely spaced points', function() { + expect(ol.geom.simplify.radialDistance( + [0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1], 0, 12, 2, 1, dest, 0)). + to.be(12); + expect(dest).to.eql([0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1]); + }); + + it('works when the line oscillates with closely spaced points', function() { + expect(ol.geom.simplify.radialDistance( + [0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1], 0, 12, 2, 2, dest, 0)).to.be(4); + expect(dest).to.eql([0, 0, 1, 1]); + }); + + it('works when the line oscillates within the tolerance', function() { + expect(ol.geom.simplify.radialDistance( + [0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0], 0, 14, 2, 2, dest, 0)). + to.be(2); + expect(dest).to.eql([0, 0]); + }); + + it('works with real data', function() { + expect(ol.geom.simplify.radialDistance( + flatCoordinates, 0, flatCoordinates.length, 2, 25, dest, 0)). + to.be(simplifiedRadiallyFlatCoordinates.length); + expect(dest).to.eql(simplifiedRadiallyFlatCoordinates); + }); + + }); + + describe('ol.geom.simplify.douglasPeucker', function() { + + var dest; + beforeEach(function() { + dest = []; + }); + + it('works with empty line strings', function() { + expect(ol.geom.simplify.douglasPeucker( + [], 0, 0, 2, 1, dest, 0)).to.be(0); + expect(dest).to.eql([]); + }); + + it('works with a line string with a single point', function() { + expect(ol.geom.simplify.douglasPeucker( + [1, 2], 0, 2, 2, 1, dest, 0)).to.be(2); + expect(dest).to.eql([1, 2]); + }); + + it('works with a line string with two points', function() { + expect(ol.geom.simplify.douglasPeucker( + [1, 2, 3, 4], 0, 4, 2, 1, dest, 0)).to.be(4); + expect(dest).to.eql([1, 2, 3, 4]); + }); + + it('works when the points are widely spaced', function() { + expect(ol.geom.simplify.douglasPeucker( + [0, 0, 1, 0, 2, 0, 3, 0], 0, 8, 2, 0.5, dest, 0)).to.be(4); + expect(dest).to.eql([0, 0, 3, 0]); + }); + + it('works when the spacing matches the tolerance', function() { + expect(ol.geom.simplify.douglasPeucker( + [0, 0, 1, 0, 2, 0, 3, 0], 0, 8, 2, 1, dest, 0)).to.be(4); + expect(dest).to.eql([0, 0, 3, 0]); + }); + + it('works when the points are closely spaced', function() { + expect(ol.geom.simplify.douglasPeucker( + [0, 0, 1, 0, 2, 0, 3, 0], 0, 8, 2, 1.5, dest, 0)).to.be(4); + expect(dest).to.eql([0, 0, 3, 0]); + }); + + it('does not elimnate points outside the tolerance', function() { + expect(ol.geom.simplify.douglasPeucker( + [0, 0, 1, 1, 2, 0], 0, 6, 2, 0.5, dest, 0)).to.be(6); + expect(dest).to.eql([0, 0, 1, 1, 2, 0]); + }); + + it('does eliminate points within the tolerance', function() { + expect(ol.geom.simplify.douglasPeucker( + [0, 0, 1, 1, 2, 0], 0, 6, 2, 2, dest, 0)).to.be(4); + expect(dest).to.eql([0, 0, 2, 0]); + }); + + it('does not eliminate multiple points outside the tolerance', function() { + expect(ol.geom.simplify.douglasPeucker( + [0, 0, 1, 1, 1, -1, 2, 0], 0, 8, 2, 0.5, dest, 0)).to.be(8); + expect(dest).to.eql([0, 0, 1, 1, 1, -1, 2, 0]); + }); + + it('does eliminate multiple points within the tolerance', function() { + expect(ol.geom.simplify.douglasPeucker( + [0, 0, 1, 1, 1, -1, 2, 0], 0, 8, 2, 2, dest, 0)).to.be(4); + expect(dest).to.eql([0, 0, 2, 0]); + }); + + it('works when the line oscillates with widely spaced points', function() { + expect(ol.geom.simplify.douglasPeucker( + [0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1], 0, 12, 2, 1, dest, 0)).to.be(4); + expect(dest).to.eql([0, 0, 1, 1]); + }); + + it('works when the line oscillates with closely spaced points', function() { + expect(ol.geom.simplify.douglasPeucker( + [0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1], 0, 12, 2, 2, dest, 0)). + to.be(4); + expect(dest).to.eql([0, 0, 1, 1]); + }); + + it('works when the line oscillates within the tolerance', function() { + expect(ol.geom.simplify.douglasPeucker( + [0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0], 0, 14, 2, 2, dest, 0)). + to.be(4); + expect(dest).to.eql([0, 0, 0, 0]); + }); + + it('works on small triangles', function() { + expect(ol.geom.simplify.douglasPeucker( + [3, 0, 4, 1, 5, 2, 5, 0], 0, 8, 2, 1, dest, 0)).to.be(6); + expect(dest).to.eql([3, 0, 5, 2, 5, 0]); + }); + + it('is the same as high quality simplification', function() { + expect(ol.geom.simplify.douglasPeucker( + flatCoordinates, 0, flatCoordinates.length, 2, 25, dest, 0)). + to.be(simplifiedHighQualityFlatCoordinates.length); + expect(dest).to.eql(simplifiedHighQualityFlatCoordinates); + }); + + }); + +}); + + +goog.require('ol.geom.simplify'); From abe0cd27f633d37a6b25d8ecd8d546dca5f6287a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 14:59:44 +0100 Subject: [PATCH 509/919] Add ol.geom.simplify.douglasPeukers --- src/ol/geom/simplifygeom.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/ol/geom/simplifygeom.js b/src/ol/geom/simplifygeom.js index 3fbbe65d16..35183675d3 100644 --- a/src/ol/geom/simplifygeom.js +++ b/src/ol/geom/simplifygeom.js @@ -127,6 +127,34 @@ ol.geom.simplify.douglasPeucker = function(flatCoordinates, offset, end, }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @param {number} squaredTolerance Squared tolerance. + * @param {Array.} simplifiedFlatCoordinates Simplified flat + * coordinates. + * @param {number} simplifiedOffset Simplified offset. + * @param {Array.} simplifiedEnds Simplified ends. + * @return {number} Simplified offset. + */ +ol.geom.simplify.douglasPeuckers = function(flatCoordinates, offset, + ends, stride, squaredTolerance, simplifiedFlatCoordinates, + simplifiedOffset, simplifiedEnds) { + var i, ii; + for (i = 0, ii = ends.length; i < ii; ++i) { + var end = ends[i]; + simplifiedOffset = ol.geom.simplify.douglasPeucker( + flatCoordinates, offset, end, stride, squaredTolerance, + simplifiedFlatCoordinates, simplifiedOffset); + simplifiedEnds.push(simplifiedOffset); + offset = end; + } + return simplifiedOffset; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From 7981d86bcd2d41d0a80f97c5817bcb32711d5207 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 14:59:52 +0100 Subject: [PATCH 510/919] Add ol.geom.simplify.douglasPeukerss --- src/ol/geom/simplifygeom.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/ol/geom/simplifygeom.js b/src/ol/geom/simplifygeom.js index 35183675d3..eb00ba57bf 100644 --- a/src/ol/geom/simplifygeom.js +++ b/src/ol/geom/simplifygeom.js @@ -155,6 +155,35 @@ ol.geom.simplify.douglasPeuckers = function(flatCoordinates, offset, }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @param {number} squaredTolerance Squared tolerance. + * @param {Array.} simplifiedFlatCoordinates Simplified flat + * coordinates. + * @param {number} simplifiedOffset Simplified offset. + * @param {Array.>} simplifiedEndss Simplified endss. + * @return {number} Simplified offset. + */ +ol.geom.simplify.douglasPeuckerss = function( + flatCoordinates, offset, endss, stride, squaredTolerance, + simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) { + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + var simplifiedEnds = []; + simplifiedOffset = ol.geom.simplify.douglasPeuckers( + flatCoordinates, offset, ends, stride, squaredTolerance, + simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds); + simplifiedEndss.push(simplifiedEnds); + offset = ends[ends.length - 1]; + } + return simplifiedOffset; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From 9612182f7041d3b502de51130e5a4719b5133508 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 15:00:45 +0100 Subject: [PATCH 511/919] Add ol.geom.Geometry#getSimplifiedGeometry --- src/ol/geom/geometry.exports | 1 + src/ol/geom/geometry.js | 48 ++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/src/ol/geom/geometry.exports b/src/ol/geom/geometry.exports index 8b5c29084d..f53f11edbc 100644 --- a/src/ol/geom/geometry.exports +++ b/src/ol/geom/geometry.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.Geometry @exportProperty ol.geom.Geometry.prototype.getExtent @exportProperty ol.geom.Geometry.prototype.getLayout +@exportProperty ol.geom.Geometry.prototype.getSimplifiedGeometry @exportProperty ol.geom.Geometry.prototype.transform diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index a1a8f7e6d1..80a9b3cb88 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -5,6 +5,7 @@ goog.provide('ol.geom.Geometry'); goog.require('goog.asserts'); goog.require('goog.events.EventType'); goog.require('goog.functions'); +goog.require('goog.object'); goog.require('ol.Observable'); goog.require('ol.extent'); goog.require('ol.geom.flat'); @@ -80,6 +81,18 @@ ol.geom.Geometry = function() { */ this.extentRevision = -1; + /** + * @private + * @type {Object.} + */ + this.simplifiedGeometryCache_ = {}; + + /** + * @private + * @type {number} + */ + this.simplifiedGeometryRevision_ = 0; + }; goog.inherits(ol.geom.Geometry, ol.Observable); @@ -187,6 +200,41 @@ ol.geom.Geometry.prototype.getRevision = function() { }; +/** + * @param {number} squaredTolerance Squared tolerance. + * @return {ol.geom.Geometry} Simplified geometry. + */ +ol.geom.Geometry.prototype.getSimplifiedGeometry = function(squaredTolerance) { + if (this.simplifiedGeometryRevision_ != this.revision) { + goog.object.clear(this.simplifiedGeometryCache_); + this.simplifiedGeometryRevision_ = this.revision; + } + if (squaredTolerance < 0) { + return this; + } + var key = squaredTolerance.toString(); + if (this.simplifiedGeometryCache_.hasOwnProperty(key)) { + return this.simplifiedGeometryCache_[key]; + } else { + var simplifiedGeometry = + this.getSimplifiedGeometryInternal(squaredTolerance); + this.simplifiedGeometryCache_[key] = simplifiedGeometry; + return simplifiedGeometry; + } +}; + + +/** + * @param {number} squaredTolerance Squared tolerance. + * @return {ol.geom.Geometry} Simplified geometry. + * @protected + */ +ol.geom.Geometry.prototype.getSimplifiedGeometryInternal = + function(squaredTolerance) { + return this; +}; + + /** * @return {number} Stride. */ From 6275d8528eb30cd3e055495033d71ea18bc727bd Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 15:01:24 +0100 Subject: [PATCH 512/919] Add ol.geom.LineString#getSimplifiedGeometryInternal --- src/ol/geom/linestring.js | 17 ++++++++++++++ test/spec/ol/geom/linestring.test.js | 33 ++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 40b231674f..7ae4bc0edf 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -2,6 +2,7 @@ goog.provide('ol.geom.LineString'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.flat'); +goog.require('ol.geom.simplify'); @@ -36,6 +37,22 @@ ol.geom.LineString.prototype.getLength = function() { }; +/** + * @inheritDoc + */ +ol.geom.LineString.prototype.getSimplifiedGeometryInternal = + function(squaredTolerance) { + var simplifiedFlatCoordinates = []; + simplifiedFlatCoordinates.length = ol.geom.simplify.douglasPeucker( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, + squaredTolerance, simplifiedFlatCoordinates, 0); + var simplifiedLineString = new ol.geom.LineString(null); + simplifiedLineString.setFlatCoordinates( + ol.geom.GeometryLayout.XY, simplifiedFlatCoordinates); + return simplifiedLineString; +}; + + /** * @inheritDoc */ diff --git a/test/spec/ol/geom/linestring.test.js b/test/spec/ol/geom/linestring.test.js index 78c67739cc..1a45d345b8 100644 --- a/test/spec/ol/geom/linestring.test.js +++ b/test/spec/ol/geom/linestring.test.js @@ -156,6 +156,39 @@ describe('ol.geom.LineString', function() { }); + describe('with a simple line string', function() { + + var lineString; + beforeEach(function() { + lineString = new ol.geom.LineString( + [[0, 0], [1, 1], [3, 3], [5, 1], [6, 3], [7, 5]]); + }); + + describe('#getSimplifiedGeometry', function() { + + it('returns the expectedResult', function() { + var simplifiedGeometry = lineString.getSimplifiedGeometry(1); + expect(simplifiedGeometry).to.be.an(ol.geom.LineString); + expect(simplifiedGeometry.getCoordinates()).to.eql( + [[0, 0], [3, 3], [5, 1], [7, 5]]); + }); + + it('caches by resolution', function() { + var simplifiedGeometry1 = lineString.getSimplifiedGeometry(1); + var simplifiedGeometry2 = lineString.getSimplifiedGeometry(1); + expect(simplifiedGeometry1).to.be(simplifiedGeometry2); + }); + + it('invalidates the cache when the geometry changes', function() { + var simplifiedGeometry1 = lineString.getSimplifiedGeometry(1); + lineString.setCoordinates(lineString.getCoordinates()); + var simplifiedGeometry2 = lineString.getSimplifiedGeometry(1); + expect(simplifiedGeometry1).not.to.be(simplifiedGeometry2); + }); + + }); + }); + }); From 956bff0fe29f55483e556f4f67457690757df75b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:23:09 +0100 Subject: [PATCH 513/919] Add ol.geom.LinearRing#getSimplifiedGeometryInternal --- src/ol/geom/linearring.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index 3fa3bcbbe7..d47230b5a9 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -2,6 +2,7 @@ goog.provide('ol.geom.LinearRing'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.flat'); +goog.require('ol.geom.simplify'); @@ -36,6 +37,22 @@ ol.geom.LinearRing.prototype.getCoordinates = function() { }; +/** + * @inheritDoc + */ +ol.geom.LinearRing.prototype.getSimplifiedGeometryInternal = + function(squaredTolerance) { + var simplifiedFlatCoordinates = []; + simplifiedFlatCoordinates.length = ol.geom.simplify.douglasPeucker( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, + squaredTolerance, simplifiedFlatCoordinates, 0); + var simplifiedLinearRing = new ol.geom.LinearRing(null); + simplifiedLinearRing.setFlatCoordinates( + ol.geom.GeometryLayout.XY, simplifiedFlatCoordinates); + return simplifiedLinearRing; +}; + + /** * @inheritDoc */ From e560192c0f540e63783a94addfd2bd18b6f64097 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 15:01:43 +0100 Subject: [PATCH 514/919] Add ol.geom.Polygon#getSimplifiedGeometryInternal --- src/ol/geom/polygon.js | 18 ++++++++++++++++++ test/spec/ol/geom/polygon.test.js | 29 +++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 1a4f7ff944..2db8dced32 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -3,6 +3,7 @@ goog.provide('ol.geom.Polygon'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.LinearRing'); goog.require('ol.geom.flat'); +goog.require('ol.geom.simplify'); @@ -104,6 +105,23 @@ ol.geom.Polygon.prototype.getLinearRings = function() { }; +/** + * @inheritDoc + */ +ol.geom.Polygon.prototype.getSimplifiedGeometryInternal = + function(squaredTolerance) { + var simplifiedFlatCoordinates = []; + var simplifiedEnds = []; + simplifiedFlatCoordinates.length = ol.geom.simplify.douglasPeuckers( + this.flatCoordinates, 0, this.ends_, this.stride, squaredTolerance, + simplifiedFlatCoordinates, 0, simplifiedEnds); + var simplifiedPolygon = new ol.geom.Polygon(null); + simplifiedPolygon.setFlatCoordinates( + ol.geom.GeometryLayout.XY, simplifiedFlatCoordinates, simplifiedEnds); + return simplifiedPolygon; +}; + + /** * @inheritDoc */ diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js index 632888fe63..a4410ff881 100644 --- a/test/spec/ol/geom/polygon.test.js +++ b/test/spec/ol/geom/polygon.test.js @@ -310,6 +310,35 @@ describe('ol.geom.Polygon', function() { }); + describe('with a simple polygon', function() { + + var polygon; + beforeEach(function() { + polygon = new ol.geom.Polygon( + [[[3, 0], [1, 3], [0, 6], [2, 6], [3, 7], [4, 6], [6, 6], [4, 3]]]); + }); + + describe('#getSimplifiedGeometry', function() { + + it('returns the expected result', function() { + var simplifiedGeometry = polygon.getSimplifiedGeometry(1); + expect(simplifiedGeometry).to.be.an(ol.geom.Polygon); + expect(simplifiedGeometry.getCoordinates()).to.eql( + [[[3, 0], [0, 6], [6, 6], [4, 3]]]); + }); + + it('caches multiple simplified geometries', function() { + var simplifiedGeometry1 = polygon.getSimplifiedGeometry(1); + var simplifiedGeometry2 = polygon.getSimplifiedGeometry(2); + var simplifiedGeometry3 = polygon.getSimplifiedGeometry(1); + var simplifiedGeometry4 = polygon.getSimplifiedGeometry(2); + expect(simplifiedGeometry1).to.be(simplifiedGeometry3); + expect(simplifiedGeometry2).to.be(simplifiedGeometry4); + }); + + }); + }); + }); From 0845c866d5d0eef29598360b747fb1628656c3f8 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 15:02:04 +0100 Subject: [PATCH 515/919] Add ol.geom.MultiLineString#getSimplifiedGeometryInternal --- src/ol/geom/multilinestring.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 3f255fba11..a2649ab2d3 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -3,6 +3,7 @@ goog.provide('ol.geom.MultiLineString'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.LineString'); goog.require('ol.geom.flat'); +goog.require('ol.geom.simplify'); @@ -60,6 +61,23 @@ ol.geom.MultiLineString.prototype.getLineStrings = function() { }; +/** + * @inheritDoc + */ +ol.geom.MultiLineString.prototype.getSimplifiedGeometryInternal = + function(squaredTolerance) { + var simplifiedFlatCoordinates = []; + var simplifiedEnds = []; + simplifiedFlatCoordinates.length = ol.geom.simplify.douglasPeuckers( + this.flatCoordinates, 0, this.ends_, this.stride, squaredTolerance, + simplifiedFlatCoordinates, 0, simplifiedEnds); + var simplifiedMultiLineString = new ol.geom.MultiLineString(null); + simplifiedMultiLineString.setFlatCoordinates( + ol.geom.GeometryLayout.XY, simplifiedFlatCoordinates, simplifiedEnds); + return simplifiedMultiLineString; +}; + + /** * @inheritDoc */ From d3320da7c64f3cc1e36a04188f743c353580f14f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 15:02:23 +0100 Subject: [PATCH 516/919] Add ol.geom.MultiPolygon#getSimplifiedGeometryInternal --- src/ol/geom/multipolygon.js | 19 +++++++++++++++++++ test/spec/ol/geom/multipolygon.test.js | 24 ++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index b9becbc382..657a461b12 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -3,6 +3,7 @@ goog.provide('ol.geom.MultiPolygon'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.Polygon'); goog.require('ol.geom.flat'); +goog.require('ol.geom.simplify'); @@ -90,6 +91,24 @@ ol.geom.MultiPolygon.prototype.getInteriorPoints = function() { }; +/** + * @inheritDoc + */ +ol.geom.MultiPolygon.prototype.getSimplifiedGeometryInternal = + function(squaredTolerance) { + var simplifiedFlatCoordinates = []; + var simplifiedEndss = []; + simplifiedFlatCoordinates.length = + ol.geom.simplify.douglasPeuckerss(this.flatCoordinates, 0, + this.endss_, this.stride, squaredTolerance, simplifiedFlatCoordinates, + 0, simplifiedEndss); + var simplifiedMultiPolygon = new ol.geom.MultiPolygon(null); + simplifiedMultiPolygon.setFlatCoordinates( + ol.geom.GeometryLayout.XY, simplifiedFlatCoordinates, simplifiedEndss); + return simplifiedMultiPolygon; +}; + + /** * @return {Array.} Polygons. */ diff --git a/test/spec/ol/geom/multipolygon.test.js b/test/spec/ol/geom/multipolygon.test.js index 92badfa88a..564ff9e90d 100644 --- a/test/spec/ol/geom/multipolygon.test.js +++ b/test/spec/ol/geom/multipolygon.test.js @@ -10,6 +10,30 @@ describe('ol.geom.MultiPolygon', function() { }).not.to.throwException(); }); + describe('with a simple MultiPolygon', function() { + + var multiPolygon; + beforeEach(function() { + multiPolygon = new ol.geom.MultiPolygon([ + [[[0, 0], [0, 2], [1, 1], [2, 0]]], + [[[3, 0], [4, 1], [5, 2], [5, 0]]] + ]); + }); + + describe('#getSimplifiedGeometry', function() { + + it('returns the expected result', function() { + var simplifiedGeometry = multiPolygon.getSimplifiedGeometry(1); + expect(simplifiedGeometry).to.be.an(ol.geom.MultiPolygon); + expect(simplifiedGeometry.getCoordinates()).to.eql([ + [[[0, 0], [0, 2], [2, 0]]], + [[[3, 0], [5, 2], [5, 0]]] + ]); + }); + }); + + }); + }); From c6181ea9d19ebe953ef5b45d535bd54ae2697867 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 15:44:03 +0100 Subject: [PATCH 517/919] Render simplified geometries in replay mode --- src/ol/render/vector.js | 6 ++++-- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index e737e533d9..717490f8c6 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -15,10 +15,12 @@ goog.require('ol.style.Style'); * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.Feature} feature Feature. * @param {ol.style.Style} style Style. + * @param {number} squaredTolerance Squared tolerance. * @param {Object} data Opaque data object. */ -ol.renderer.vector.renderFeature = function(replayGroup, feature, style, data) { - var geometry = feature.getGeometry(); +ol.renderer.vector.renderFeature = function( + replayGroup, feature, style, squaredTolerance, data) { + var geometry = feature.getGeometry().getSimplifiedGeometry(squaredTolerance); var geometryRenderer = ol.renderer.vector.GEOMETRY_RENDERERS_[geometry.getType()]; goog.asserts.assert(goog.isDef(geometryRenderer)); diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 92b922df07..d91404dd80 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -218,6 +218,8 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = function(feature, resolution, styleFunction, replayGroup) { var loading = false; var styles = styleFunction(feature, resolution); + // simplify to a tolerance of half a CSS pixel + var squaredTolerance = resolution * resolution / 4; var i, ii, style, imageStyle, imageState; for (i = 0, ii = styles.length; i < ii; ++i) { style = styles[i]; @@ -228,12 +230,14 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = this.handleImageStyleChange_, false, this); imageStyle.load(); } else if (imageStyle.imageState == ol.style.ImageState.LOADED) { - ol.renderer.vector.renderFeature(replayGroup, feature, style, feature); + ol.renderer.vector.renderFeature( + replayGroup, feature, style, squaredTolerance, feature); } goog.asserts.assert(imageStyle.imageState != ol.style.ImageState.IDLE); loading = imageStyle.imageState == ol.style.ImageState.LOADING; } else { - ol.renderer.vector.renderFeature(replayGroup, feature, style, feature); + ol.renderer.vector.renderFeature( + replayGroup, feature, style, squaredTolerance, feature); } } return loading; From b374d5c5b8da12c345645d2abbd0405ff61ad266 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 19:35:10 +0100 Subject: [PATCH 518/919] Avoid simplifying geometries when it will have no effect --- src/ol/geom/geometry.js | 29 +++++++++++++++++++++++++--- test/spec/ol/geom/linestring.test.js | 13 ++++++++++++- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 80a9b3cb88..7f85cdafcb 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -87,6 +87,12 @@ ol.geom.Geometry = function() { */ this.simplifiedGeometryCache_ = {}; + /** + * @private + * @type {number} + */ + this.simplifiedGeometryMaxMinSquaredTolerance_ = 0; + /** * @private * @type {number} @@ -207,9 +213,14 @@ ol.geom.Geometry.prototype.getRevision = function() { ol.geom.Geometry.prototype.getSimplifiedGeometry = function(squaredTolerance) { if (this.simplifiedGeometryRevision_ != this.revision) { goog.object.clear(this.simplifiedGeometryCache_); + this.simplifiedGeometryMaxMinSquaredTolerance_ = 0; this.simplifiedGeometryRevision_ = this.revision; } - if (squaredTolerance < 0) { + // If squaredTolerance is negative or if we know that simplification will not + // have any effect then just return this. + if (squaredTolerance < 0 || + (this.simplifiedGeometryMaxMinSquaredTolerance_ !== 0 && + squaredTolerance <= this.simplifiedGeometryMaxMinSquaredTolerance_)) { return this; } var key = squaredTolerance.toString(); @@ -218,8 +229,20 @@ ol.geom.Geometry.prototype.getSimplifiedGeometry = function(squaredTolerance) { } else { var simplifiedGeometry = this.getSimplifiedGeometryInternal(squaredTolerance); - this.simplifiedGeometryCache_[key] = simplifiedGeometry; - return simplifiedGeometry; + var simplifiedFlatCoordinates = simplifiedGeometry.getFlatCoordinates(); + if (simplifiedFlatCoordinates.length < this.flatCoordinates.length) { + this.simplifiedGeometryCache_[key] = simplifiedGeometry; + return simplifiedGeometry; + } else { + // Simplification did not actually remove any coordinates. We now know + // that any calls to getSimplifiedGeometry with a squaredTolerance less + // than or equal to the current squaredTolerance will also not have any + // effect. This allows us to short circuit simplification (saving CPU + // cycles) and prevents the cache of simplified geometries from filling + // up with useless identical copies of this geometry (saving memory). + this.simplifiedGeometryMaxMinSquaredTolerance_ = squaredTolerance; + return this; + } } }; diff --git a/test/spec/ol/geom/linestring.test.js b/test/spec/ol/geom/linestring.test.js index 1a45d345b8..9060945a35 100644 --- a/test/spec/ol/geom/linestring.test.js +++ b/test/spec/ol/geom/linestring.test.js @@ -161,7 +161,7 @@ describe('ol.geom.LineString', function() { var lineString; beforeEach(function() { lineString = new ol.geom.LineString( - [[0, 0], [1, 1], [3, 3], [5, 1], [6, 3], [7, 5]]); + [[0, 0], [1.5, 1], [3, 3], [5, 1], [6, 3.5], [7, 5]]); }); describe('#getSimplifiedGeometry', function() { @@ -186,7 +186,18 @@ describe('ol.geom.LineString', function() { expect(simplifiedGeometry1).not.to.be(simplifiedGeometry2); }); + it('remembers the minimum squared tolerance', function() { + sinon.spy(lineString, 'getSimplifiedGeometryInternal'); + var simplifiedGeometry1 = lineString.getSimplifiedGeometry(0.05); + expect(lineString.getSimplifiedGeometryInternal.callCount).to.be(1); + expect(simplifiedGeometry1).to.be(lineString); + var simplifiedGeometry2 = lineString.getSimplifiedGeometry(0.01); + expect(lineString.getSimplifiedGeometryInternal.callCount).to.be(1); + expect(simplifiedGeometry2).to.be(lineString); + }); + }); + }); }); From 90738d559afae4c57a2c626770b2951b0bfb3f2b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 6 Dec 2013 19:54:37 +0100 Subject: [PATCH 519/919] Add complex-geometry example --- examples/complex-geometry.html | 53 ++++++++++++++++++++++ examples/complex-geometry.js | 80 ++++++++++++++++++++++++++++++++++ examples/data/mtbland.geojson | 19 ++++++++ 3 files changed, 152 insertions(+) create mode 100644 examples/complex-geometry.html create mode 100644 examples/complex-geometry.js create mode 100644 examples/data/mtbland.geojson diff --git a/examples/complex-geometry.html b/examples/complex-geometry.html new file mode 100644 index 0000000000..0ddcb6297d --- /dev/null +++ b/examples/complex-geometry.html @@ -0,0 +1,53 @@ + + + + + + + + + + + Complex geometry example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Complex geometry example

+

Example of rendering a complex geometry. Zoom into the purple lines to see more detail.

+
+

See the complex-geometry.js source to see how this is done.

+
+
vector, simplification
+
+ +
+ +
+ + + + + + + + + diff --git a/examples/complex-geometry.js b/examples/complex-geometry.js new file mode 100644 index 0000000000..7554de376e --- /dev/null +++ b/examples/complex-geometry.js @@ -0,0 +1,80 @@ +goog.require('ol.Attribution'); +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.control'); +goog.require('ol.control.ScaleLine'); +goog.require('ol.control.ScaleLineUnits'); +goog.require('ol.format.GeoJSON'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.proj'); +goog.require('ol.source.TileWMS'); +goog.require('ol.source.Vector'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); + + +var projection = ol.proj.configureProj4jsProjection({ + code: 'EPSG:21781', + extent: [485869.5728, 76443.1884, 837076.5648, 299941.7864] +}); + +var extent = [420000, 30000, 900000, 350000]; +var layers = [ + new ol.layer.Tile({ + source: new ol.source.TileWMS({ + url: 'http://wms.geo.admin.ch/', + crossOrigin: 'anonymous', + attributions: [new ol.Attribution({ + html: '© ' + + '' + + 'Pixelmap 1:1000000 / geo.admin.ch' + })], + params: { + 'LAYERS': 'ch.swisstopo.pixelkarte-farbe-pk1000.noscale', + 'FORMAT': 'image/jpeg' + }, + extent: extent + }) + }) +]; + +var map = new ol.Map({ + controls: ol.control.defaults().extend([ + new ol.control.ScaleLine({ + units: ol.control.ScaleLineUnits.METRIC + }) + ]), + layers: layers, + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + projection: projection, + center: [660000, 190000], + extent: extent, + zoom: 2 + }) +}); + +var styleArray = [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'rgba(128,0,128,0.8)', + lineCap: 'round', + lineJoin: 'round', + width: 5 + }) +})]; + +$.getJSON('data/mtbland.geojson', function(data) { + var format = new ol.format.GeoJSON(); + var vectorSource = new ol.source.Vector(); + format.readObject(data, vectorSource.addFeature, vectorSource); + map.getLayers().push(new ol.layer.Vector({ + source: vectorSource, + styleFunction: function(feature) { + return styleArray; + } + })); +}); diff --git a/examples/data/mtbland.geojson b/examples/data/mtbland.geojson new file mode 100644 index 0000000000..b4e5628547 --- /dev/null +++ b/examples/data/mtbland.geojson @@ -0,0 +1,19 @@ +{ +"type": "FeatureCollection", +"features": [ +{ "type": "Feature", "properties": { "FID": 0.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 666149.500000, 211466.200000 ], [ 666161.716000, 211403.978000 ] ], [ [ 666149.500000, 211466.200000 ], [ 666298.943000, 211486.839000 ], [ 666307.600000, 211418.900000 ], [ 666161.716000, 211403.978000 ] ], [ [ 626235.500000, 198906.100000 ], [ 626320.400000, 198886.300000 ], [ 626314.714000, 198767.031000 ] ], [ [ 626235.500000, 198906.100000 ], [ 626260.900000, 198965.600000 ], [ 626324.000000, 199057.100000 ], [ 626463.400000, 199067.200000 ], [ 626651.200000, 199149.000000 ], [ 626690.000000, 199155.600000 ], [ 626733.200000, 199153.600000 ], [ 626938.100000, 199113.900000 ], [ 627019.800000, 199108.700000 ], [ 627081.000000, 199127.400000 ], [ 627198.200000, 199119.600000 ], [ 627225.500000, 199127.900000 ], [ 627233.200000, 199146.400000 ], [ 627219.600000, 199160.500000 ], [ 627108.000000, 199212.600000 ], [ 627065.500000, 199246.800000 ], [ 627002.600000, 199273.500000 ], [ 626965.600000, 199301.600000 ], [ 626892.400000, 199310.600000 ], [ 626880.000000, 199322.500000 ], [ 626884.600000, 199343.400000 ], [ 626903.400000, 199350.800000 ], [ 626949.400000, 199346.300000 ], [ 626979.200000, 199358.000000 ], [ 627044.600000, 199350.300000 ], [ 627086.600000, 199352.000000 ], [ 627182.500000, 199367.100000 ], [ 627221.100000, 199385.500000 ], [ 627371.200000, 199578.100000 ], [ 627406.600000, 199617.200000 ], [ 627501.400000, 199691.800000 ], [ 627512.000000, 199711.100000 ], [ 627566.900000, 199988.300000 ], [ 627568.300000, 200042.300000 ], [ 627563.500000, 200059.300000 ], [ 627534.300000, 200101.100000 ], [ 627498.400000, 200121.100000 ], [ 627439.900000, 200138.600000 ], [ 627422.000000, 200155.700000 ], [ 627413.900000, 200276.800000 ], [ 627434.400000, 200348.200000 ], [ 627431.800000, 200416.800000 ], [ 627416.500000, 200511.400000 ], [ 627367.800000, 200608.000000 ], [ 627319.200000, 200658.800000 ], [ 627280.900000, 200687.300000 ], [ 627260.300000, 200726.000000 ], [ 627259.900000, 200742.700000 ], [ 627270.100000, 200769.000000 ], [ 627306.000000, 200829.300000 ], [ 627384.900000, 200901.600000 ], [ 627416.100000, 201006.100000 ], [ 627415.100000, 201023.600000 ], [ 627403.300000, 201035.000000 ], [ 627329.400000, 201051.900000 ], [ 627315.700000, 201076.500000 ], [ 627325.900000, 201144.100000 ], [ 627375.100000, 201216.900000 ], [ 627384.800000, 201245.500000 ], [ 627370.400000, 201378.300000 ], [ 627379.200000, 201502.100000 ], [ 627408.400000, 201579.400000 ], [ 627447.300000, 201655.700000 ], [ 627491.300000, 201674.100000 ], [ 627561.100000, 201728.800000 ], [ 627662.900000, 201754.900000 ], [ 627686.500000, 201769.100000 ], [ 627707.300000, 201832.900000 ], [ 627711.800000, 201872.900000 ], [ 627698.300000, 201957.000000 ], [ 627712.600000, 201998.600000 ], [ 627780.100000, 202055.600000 ], [ 627950.900000, 202171.800000 ], [ 628009.400000, 202273.400000 ], [ 628025.900000, 202289.100000 ], [ 628043.600000, 202300.000000 ], [ 628124.400000, 202321.500000 ], [ 628146.900000, 202335.000000 ], [ 628145.400000, 202355.500000 ], [ 628069.600000, 202439.100000 ], [ 628062.100000, 202455.700000 ], [ 628063.300000, 202484.900000 ], [ 628078.700000, 202514.800000 ], [ 628146.700000, 202598.700000 ], [ 628194.900000, 202673.600000 ], [ 628207.500000, 202706.600000 ], [ 628199.900000, 202812.100000 ], [ 628211.700000, 202923.200000 ], [ 628260.300000, 203055.200000 ], [ 628289.100000, 203087.500000 ], [ 628329.500000, 203114.700000 ], [ 628358.700000, 203124.500000 ], [ 628421.300000, 203126.500000 ], [ 628487.700000, 203185.700000 ], [ 628517.800000, 203195.000000 ], [ 628565.400000, 203197.800000 ], [ 628588.600000, 203239.600000 ], [ 628587.900000, 203284.900000 ], [ 628605.900000, 203326.800000 ], [ 628608.300000, 203350.500000 ], [ 628552.900000, 203472.400000 ], [ 628550.600000, 203526.400000 ], [ 628573.100000, 203617.600000 ], [ 628602.000000, 203805.000000 ], [ 628636.700000, 203896.400000 ], [ 628670.500000, 203926.500000 ], [ 628707.000000, 203936.900000 ], [ 628825.900000, 203950.000000 ], [ 628827.100000, 203964.800000 ], [ 628793.800000, 204032.200000 ], [ 628771.500000, 204112.200000 ], [ 628779.300000, 204134.100000 ], [ 628852.600000, 204241.300000 ], [ 628834.800000, 204305.700000 ], [ 628846.400000, 204353.700000 ], [ 628839.200000, 204369.100000 ], [ 628782.000000, 204412.600000 ], [ 628750.300000, 204460.000000 ], [ 628692.700000, 204505.600000 ], [ 628674.300000, 204537.100000 ], [ 628662.900000, 204596.100000 ], [ 628632.300000, 204668.200000 ], [ 628605.800000, 204843.500000 ], [ 628620.800000, 204901.400000 ], [ 628649.100000, 204954.200000 ], [ 628623.700000, 205048.100000 ], [ 628638.600000, 205146.200000 ], [ 628685.800000, 205224.700000 ], [ 628713.200000, 205251.500000 ], [ 628714.100000, 205278.000000 ], [ 628720.600000, 205289.000000 ], [ 628759.400000, 205284.300000 ], [ 628824.000000, 205331.800000 ], [ 628867.200000, 205346.800000 ], [ 628908.600000, 205337.100000 ], [ 628970.400000, 205304.600000 ], [ 628984.400000, 205305.500000 ], [ 628983.400000, 205348.200000 ], [ 628989.200000, 205367.800000 ], [ 629032.200000, 205412.800000 ], [ 629041.600000, 205434.800000 ], [ 629064.300000, 205453.600000 ], [ 629068.500000, 205478.100000 ], [ 629100.400000, 205539.100000 ], [ 629120.000000, 205556.400000 ], [ 629190.500000, 205582.200000 ], [ 629199.900000, 205594.100000 ], [ 629226.700000, 205677.200000 ], [ 629310.300000, 205742.000000 ], [ 629377.500000, 205756.200000 ], [ 629388.700000, 205767.500000 ], [ 629397.800000, 205799.200000 ], [ 629460.100000, 205782.000000 ], [ 629564.800000, 205786.400000 ], [ 629598.400000, 205798.500000 ], [ 629644.400000, 205847.000000 ], [ 629662.900000, 205853.300000 ], [ 629790.700000, 205785.900000 ], [ 629834.500000, 205778.400000 ], [ 629919.600000, 205779.800000 ], [ 629968.200000, 205794.000000 ], [ 629984.900000, 205805.000000 ], [ 629994.900000, 205816.800000 ], [ 630005.200000, 205853.300000 ], [ 629976.200000, 205971.500000 ], [ 629957.400000, 206009.800000 ], [ 629963.100000, 206131.500000 ], [ 629972.600000, 206144.800000 ], [ 630091.600000, 206182.000000 ], [ 630113.100000, 206196.800000 ], [ 630127.600000, 206216.800000 ], [ 630132.400000, 206342.500000 ], [ 630155.100000, 206492.800000 ], [ 630111.100000, 206535.300000 ], [ 630016.100000, 206598.300000 ], [ 629959.900000, 206644.300000 ], [ 629955.900000, 206653.600000 ], [ 629963.200000, 206675.900000 ], [ 630026.900000, 206701.300000 ], [ 629933.500000, 206900.200000 ], [ 629935.900000, 206910.000000 ], [ 629963.500000, 206908.400000 ], [ 629971.200000, 206914.400000 ], [ 629962.400000, 206932.100000 ], [ 629916.100000, 206976.000000 ], [ 629872.891000, 206992.627000 ], [ 629869.300000, 207053.700000 ], [ 629858.500000, 207060.700000 ], [ 629840.000000, 207055.500000 ], [ 629830.800000, 207009.700000 ], [ 629813.000000, 207006.000000 ], [ 629782.500000, 207011.500000 ], [ 629732.500000, 206965.700000 ], [ 629720.800000, 206970.500000 ], [ 629758.600000, 207057.200000 ], [ 629757.400000, 207112.200000 ], [ 629775.100000, 207173.200000 ], [ 629793.600000, 207206.700000 ], [ 629792.100000, 207223.500000 ], [ 629762.200000, 207243.300000 ], [ 629763.700000, 207277.000000 ], [ 629791.200000, 207262.600000 ], [ 629909.500000, 207223.600000 ], [ 630126.200000, 207127.600000 ], [ 630149.000000, 207112.300000 ], [ 630207.000000, 207048.100000 ], [ 630240.200000, 207030.300000 ], [ 630383.100000, 207022.100000 ], [ 630407.100000, 207011.300000 ], [ 630462.000000, 206957.400000 ], [ 630554.500000, 206954.800000 ], [ 630601.000000, 206968.800000 ], [ 630629.400000, 206997.100000 ], [ 630635.900000, 207013.000000 ], [ 630635.700000, 207058.800000 ], [ 630701.300000, 207284.400000 ], [ 630727.800000, 207411.200000 ], [ 630744.600000, 207438.600000 ], [ 630776.100000, 207470.500000 ], [ 630800.500000, 207523.500000 ], [ 630831.000000, 207568.000000 ], [ 630904.100000, 207611.200000 ], [ 630915.600000, 207623.800000 ], [ 630996.800000, 207656.200000 ], [ 631046.100000, 207672.600000 ], [ 631158.100000, 207677.000000 ], [ 631198.100000, 207695.700000 ], [ 631238.300000, 207729.500000 ], [ 631257.600000, 207729.200000 ], [ 631266.300000, 207715.200000 ], [ 631261.300000, 207693.500000 ], [ 631220.600000, 207638.500000 ], [ 631216.600000, 207590.200000 ], [ 631177.600000, 207578.700000 ], [ 631146.100000, 207546.200000 ], [ 631102.800000, 207526.000000 ], [ 631069.600000, 207500.000000 ], [ 631022.800000, 207432.700000 ], [ 631019.800000, 207412.200000 ], [ 631033.800000, 207404.000000 ], [ 631070.100000, 207450.000000 ], [ 631097.800000, 207469.000000 ], [ 631199.600000, 207502.200000 ], [ 631224.100000, 207519.200000 ], [ 631267.600000, 207536.500000 ], [ 631285.300000, 207561.200000 ], [ 631297.800000, 207600.500000 ], [ 631344.800000, 207632.600000 ], [ 631345.300000, 207677.200000 ], [ 631358.100000, 207708.200000 ], [ 631413.400000, 207719.800000 ], [ 631419.100000, 207742.400000 ], [ 631395.100000, 207785.500000 ], [ 631387.900000, 207873.500000 ], [ 631373.400000, 207890.000000 ], [ 631332.100000, 207863.000000 ], [ 631285.600000, 207864.300000 ], [ 631254.400000, 207881.300000 ], [ 631191.600000, 207932.500000 ], [ 631124.900000, 207878.000000 ], [ 631045.300000, 207900.600000 ], [ 631041.100000, 207912.400000 ], [ 631049.100000, 207923.800000 ], [ 631062.800000, 207929.000000 ], [ 631100.700000, 207922.600000 ], [ 631119.400000, 207927.800000 ], [ 631160.000000, 207984.600000 ], [ 631184.000000, 207999.300000 ], [ 631237.500000, 207995.100000 ], [ 631288.500000, 207974.600000 ], [ 631308.700000, 207984.300000 ], [ 631322.900000, 208010.200000 ], [ 631346.400000, 208029.000000 ], [ 631405.800000, 208030.000000 ], [ 631463.600000, 207986.400000 ], [ 631590.600000, 207864.000000 ], [ 631636.400000, 207829.300000 ], [ 631753.900000, 207808.800000 ], [ 631812.100000, 207822.500000 ], [ 631857.400000, 207849.800000 ], [ 631922.400000, 207870.000000 ], [ 631947.100000, 207883.800000 ], [ 631988.100000, 207952.300000 ], [ 632029.076000, 207992.475000 ], [ 632064.200000, 207974.600000 ], [ 632134.600000, 207958.800000 ], [ 632170.100000, 207938.500000 ], [ 632209.000000, 207905.500000 ], [ 632276.100000, 207889.300000 ], [ 632299.900000, 207871.000000 ], [ 632326.400000, 207822.500000 ], [ 632343.900000, 207803.800000 ], [ 632384.400000, 207809.300000 ], [ 632460.100000, 207772.800000 ], [ 632516.600000, 207769.500000 ], [ 632545.900000, 207751.000000 ], [ 632588.100000, 207689.500000 ], [ 632636.100000, 207700.000000 ], [ 632661.900000, 207689.700000 ], [ 632722.400000, 207638.500000 ], [ 632801.900000, 207538.200000 ], [ 632901.400000, 207484.500000 ], [ 632916.100000, 207474.000000 ], [ 632921.900000, 207458.700000 ], [ 632910.600000, 207431.700000 ], [ 632859.100000, 207363.200000 ], [ 632835.400000, 207275.000000 ], [ 632775.900000, 207206.700000 ], [ 632736.900000, 207122.200000 ], [ 632742.400000, 207075.900000 ], [ 632774.600000, 207014.400000 ], [ 632746.600000, 206898.400000 ], [ 632745.400000, 206846.700000 ], [ 632757.700000, 206803.200000 ], [ 632802.400000, 206765.400000 ], [ 632838.400000, 206750.700000 ], [ 632903.600000, 206739.700000 ], [ 632950.600000, 206723.400000 ], [ 633027.400000, 206675.700000 ], [ 633057.100000, 206668.700000 ], [ 633136.100000, 206670.700000 ], [ 633150.400000, 206663.900000 ], [ 633219.900000, 206609.200000 ], [ 633237.400000, 206553.200000 ], [ 633253.900000, 206533.900000 ], [ 633272.900000, 206528.100000 ], [ 633326.100000, 206541.700000 ], [ 633378.600000, 206526.600000 ], [ 633398.760000, 206511.172000 ], [ 633433.900000, 206433.300000 ], [ 633444.680000, 206374.660000 ], [ 633458.100000, 206358.700000 ], [ 633550.500000, 206324.600000 ], [ 633609.500000, 206332.100000 ], [ 633614.100000, 206324.300000 ], [ 633604.800000, 206317.300000 ], [ 633509.830000, 206302.682000 ], [ 633516.300000, 206292.500000 ], [ 633580.800000, 206286.300000 ], [ 633590.800000, 206266.500000 ], [ 633584.600000, 206211.700000 ], [ 633622.500000, 206046.500000 ], [ 633618.000000, 206008.500000 ], [ 633625.800000, 205991.100000 ], [ 633663.900000, 205960.100000 ], [ 633730.300000, 205942.400000 ], [ 633759.700000, 205937.600000 ], [ 633869.890000, 205951.488000 ], [ 634144.789000, 206053.932000 ], [ 634196.500000, 205995.900000 ], [ 634260.700000, 205975.400000 ], [ 634321.300000, 205924.400000 ], [ 634348.600000, 205916.800000 ], [ 634392.800000, 205920.300000 ], [ 634427.800000, 205952.300000 ], [ 634453.300000, 205963.600000 ], [ 634510.800000, 205973.900000 ], [ 634591.600000, 205998.600000 ], [ 634632.600000, 205998.300000 ], [ 634710.600000, 205984.500000 ], [ 634825.300000, 205946.100000 ], [ 634883.600000, 205944.600000 ], [ 634930.600000, 205963.400000 ], [ 634984.100000, 206004.400000 ], [ 635005.500000, 206025.000000 ], [ 634994.300000, 206037.800000 ], [ 635108.800000, 206123.000000 ], [ 635113.800000, 206110.000000 ], [ 635134.500000, 206149.500000 ], [ 635165.000000, 206175.800000 ], [ 635232.400000, 206183.100000 ], [ 635272.800000, 206174.100000 ], [ 635305.100000, 206155.200000 ], [ 635346.300000, 206195.600000 ], [ 635390.900000, 206216.200000 ], [ 635491.400000, 206279.500000 ], [ 635540.100000, 206288.200000 ], [ 635605.800000, 206266.800000 ], [ 635671.600000, 206290.600000 ], [ 635761.300000, 206336.200000 ], [ 635835.800000, 206356.400000 ], [ 635892.800000, 206392.700000 ], [ 636007.800000, 206422.900000 ], [ 636095.100000, 206468.200000 ], [ 636122.300000, 206495.900000 ], [ 636129.100000, 206472.700000 ], [ 636155.800000, 206486.900000 ], [ 636168.100000, 206508.700000 ], [ 636173.300000, 206504.400000 ], [ 636178.300000, 206492.200000 ], [ 636160.000000, 206458.800000 ], [ 636217.800000, 206490.200000 ], [ 636229.300000, 206515.200000 ], [ 636264.800000, 206508.900000 ], [ 636307.600000, 206490.500000 ], [ 636336.800000, 206498.300000 ], [ 636389.600000, 206456.800000 ], [ 636432.000000, 206436.700000 ], [ 636457.300000, 206453.800000 ], [ 636500.200000, 206524.400000 ], [ 636522.400000, 206535.400000 ], [ 636546.700000, 206524.500000 ], [ 636565.400000, 206504.100000 ], [ 636596.900000, 206485.400000 ], [ 636630.300000, 206491.600000 ], [ 636651.200000, 206542.400000 ], [ 636672.700000, 206539.800000 ], [ 636726.700000, 206553.800000 ], [ 636726.300000, 206538.500000 ], [ 636714.200000, 206516.900000 ], [ 636706.900000, 206415.900000 ], [ 636737.500000, 206364.600000 ], [ 636725.500000, 206357.100000 ], [ 636655.200000, 206360.100000 ], [ 636639.300000, 206347.600000 ], [ 636572.200000, 206283.400000 ], [ 636541.600000, 206209.300000 ], [ 636562.300000, 206075.300000 ], [ 636560.000000, 206052.100000 ], [ 636539.300000, 205964.600000 ], [ 636534.100000, 205866.200000 ], [ 636486.700000, 205779.100000 ], [ 636470.300000, 205730.300000 ], [ 636497.100000, 205597.400000 ], [ 636467.400000, 205485.500000 ], [ 636465.200000, 205402.800000 ], [ 636447.200000, 205294.000000 ], [ 636438.900000, 205124.100000 ], [ 636429.300000, 205093.500000 ], [ 636408.100000, 205063.600000 ], [ 636390.000000, 205019.500000 ], [ 636373.200000, 204930.700000 ], [ 636375.800000, 204796.100000 ], [ 636340.800000, 204721.000000 ], [ 636336.400000, 204691.400000 ], [ 636345.400000, 204562.000000 ], [ 636328.900000, 204434.000000 ], [ 636307.900000, 204375.900000 ], [ 636273.800000, 204313.400000 ], [ 636213.800000, 204106.900000 ], [ 636176.200000, 204047.400000 ], [ 636153.000000, 203966.000000 ], [ 636159.200000, 203907.000000 ], [ 636198.800000, 203771.800000 ], [ 636196.800000, 203730.600000 ], [ 636148.300000, 203462.800000 ], [ 636204.600000, 203316.100000 ], [ 636199.900000, 203271.500000 ], [ 636093.100000, 203079.200000 ], [ 636082.800000, 203006.800000 ], [ 636072.400000, 202837.800000 ], [ 636065.100000, 202817.600000 ], [ 636045.900000, 202793.700000 ], [ 635955.500000, 202727.300000 ], [ 635898.600000, 202657.600000 ], [ 635869.500000, 202579.700000 ], [ 635846.900000, 202448.200000 ], [ 635826.400000, 202369.500000 ], [ 635791.500000, 202296.700000 ], [ 635705.700000, 202199.300000 ], [ 635599.300000, 201931.800000 ], [ 635568.800000, 201785.300000 ], [ 635570.800000, 201729.600000 ], [ 635590.400000, 201705.900000 ], [ 635648.300000, 201659.100000 ], [ 635688.900000, 201724.500000 ], [ 635723.300000, 201824.000000 ], [ 635760.100000, 201894.200000 ], [ 635771.800000, 201933.500000 ], [ 635773.400000, 201975.800000 ], [ 635781.100000, 201987.800000 ], [ 635906.300000, 202075.300000 ], [ 636061.300000, 202135.500000 ], [ 636138.900000, 202157.800000 ], [ 636224.800000, 202123.300000 ], [ 636247.400000, 202123.700000 ], [ 636334.300000, 202165.800000 ], [ 636428.600000, 202185.600000 ], [ 636530.200000, 202235.200000 ], [ 636605.400000, 202254.100000 ], [ 636648.100000, 202272.400000 ], [ 636752.600000, 202335.000000 ], [ 636852.000000, 202435.400000 ], [ 636886.400000, 202496.800000 ], [ 636917.000000, 202528.900000 ], [ 636960.700000, 202556.600000 ], [ 637030.600000, 202586.800000 ], [ 637090.600000, 202637.000000 ], [ 637157.100000, 202673.100000 ], [ 637172.600000, 202742.600000 ], [ 637194.700000, 202783.300000 ], [ 637293.100000, 202833.300000 ], [ 637471.400000, 202967.100000 ], [ 637511.100000, 203004.000000 ], [ 637534.800000, 203038.500000 ], [ 637544.100000, 203085.200000 ], [ 637570.600000, 203132.500000 ], [ 637685.800000, 203249.100000 ], [ 637733.500000, 203280.200000 ], [ 637769.900000, 203363.100000 ], [ 637825.100000, 203399.400000 ], [ 637838.300000, 203416.000000 ], [ 637861.100000, 203490.700000 ], [ 637907.800000, 203583.400000 ], [ 637958.700000, 203741.498000 ], [ 637978.500000, 203775.200000 ], [ 638013.400000, 203814.799000 ], [ 638018.400000, 203928.500000 ], [ 638039.300000, 203993.500000 ], [ 638041.600000, 204062.000000 ], [ 638068.700000, 204123.900000 ], [ 638093.400000, 204265.100000 ], [ 638129.700000, 204334.000000 ], [ 638141.700000, 204375.200000 ], [ 638162.500000, 204474.400000 ], [ 638164.300000, 204554.900000 ], [ 638190.000000, 204633.700000 ], [ 638240.400000, 204748.000000 ], [ 638245.600000, 204777.200000 ], [ 638240.400000, 204827.000000 ], [ 638266.800000, 204900.800000 ], [ 638292.800000, 204938.100000 ], [ 638396.200000, 205012.600000 ], [ 638431.400000, 205050.600000 ], [ 638471.900000, 205061.800000 ], [ 638498.700000, 205098.900000 ], [ 638538.572000, 205103.770000 ], [ 638579.600000, 205140.300000 ], [ 638612.200000, 205200.300000 ], [ 638625.400000, 205199.200000 ], [ 638599.600000, 205128.000000 ], [ 638599.700000, 205117.700000 ], [ 638613.469000, 205103.213000 ], [ 638606.938000, 205080.622000 ], [ 638556.700000, 205016.000000 ], [ 638512.000000, 204934.700000 ], [ 638518.000000, 204908.400000 ], [ 638545.200000, 204879.900000 ], [ 638533.400000, 204840.600000 ], [ 638532.600000, 204798.600000 ], [ 638550.500000, 204748.900000 ], [ 638564.400000, 204741.900000 ], [ 638570.800000, 204758.900000 ], [ 638570.400000, 204811.500000 ], [ 638584.600000, 204855.400000 ], [ 638608.300000, 204876.400000 ], [ 638614.200000, 204892.000000 ], [ 638609.900000, 204939.400000 ], [ 638624.400000, 204943.400000 ], [ 638648.900000, 204891.000000 ], [ 638645.800000, 204869.500000 ], [ 638631.400000, 204844.100000 ], [ 638636.700000, 204803.400000 ], [ 638650.100000, 204768.000000 ], [ 638686.100000, 204733.200000 ], [ 638686.400000, 204693.400000 ], [ 638669.600000, 204666.100000 ], [ 638609.900000, 204627.700000 ], [ 638608.400000, 204616.900000 ], [ 638656.200000, 204619.700000 ], [ 638719.400000, 204675.400000 ], [ 638726.800000, 204694.200000 ], [ 638727.500000, 204799.200000 ], [ 638739.200000, 204881.400000 ], [ 638755.200000, 204919.000000 ], [ 638813.600000, 204969.600000 ], [ 638842.300000, 205024.700000 ], [ 638910.800000, 205087.700000 ], [ 638932.500000, 205129.400000 ], [ 638950.600000, 205190.100000 ], [ 639003.500000, 205240.700000 ], [ 639097.700000, 205500.000000 ], [ 639098.800000, 205565.900000 ], [ 639143.700000, 205655.200000 ], [ 639246.400000, 205962.000000 ], [ 639248.800000, 206000.000000 ], [ 639238.500000, 206060.000000 ], [ 639228.000000, 206072.700000 ], [ 639158.500000, 206111.700000 ], [ 639106.900000, 206171.600000 ], [ 639093.000000, 206179.200000 ], [ 639093.300000, 206202.900000 ], [ 639064.500000, 206231.000000 ], [ 639053.800000, 206250.800000 ], [ 639025.200000, 206343.200000 ], [ 639013.200000, 206403.300000 ], [ 639012.000000, 206451.300000 ], [ 639016.800000, 206503.000000 ], [ 639026.800000, 206524.000000 ], [ 639059.200000, 206563.300000 ], [ 639172.500000, 206668.200000 ], [ 639185.400000, 206688.500000 ], [ 639206.200000, 206745.500000 ], [ 639208.200000, 206785.900000 ], [ 639194.300000, 206854.600000 ], [ 639196.300000, 206898.700000 ], [ 639189.000000, 206928.800000 ], [ 639192.700000, 206987.100000 ], [ 639210.400000, 207033.900000 ], [ 639304.100000, 207129.100000 ], [ 639300.300000, 207157.600000 ], [ 639287.400000, 207184.900000 ], [ 639225.800000, 207179.700000 ], [ 639159.100000, 207162.000000 ], [ 639093.300000, 207104.600000 ], [ 639072.000000, 207104.400000 ], [ 639023.700000, 207118.100000 ], [ 638994.600000, 207115.400000 ], [ 638989.800000, 207122.900000 ], [ 639010.700000, 207131.300000 ], [ 639060.900000, 207126.900000 ], [ 639086.500000, 207133.200000 ], [ 639117.500000, 207192.500000 ], [ 639174.400000, 207240.700000 ], [ 639231.000000, 207259.800000 ], [ 639242.200000, 207270.600000 ], [ 639264.000000, 207326.600000 ], [ 639278.800000, 207331.800000 ], [ 639382.000000, 207325.700000 ], [ 639419.700000, 207336.700000 ], [ 639428.300000, 207360.700000 ], [ 639421.200000, 207365.500000 ], [ 639361.600000, 207345.400000 ], [ 639334.900000, 207348.900000 ], [ 639265.300000, 207396.000000 ], [ 639251.200000, 207397.700000 ], [ 639232.900000, 207385.600000 ], [ 639186.600000, 207317.900000 ], [ 639134.600000, 207328.400000 ], [ 639136.100000, 207340.400000 ], [ 639169.600000, 207346.400000 ], [ 639186.300000, 207410.900000 ], [ 639229.900000, 207465.100000 ], [ 639248.600000, 207466.600000 ], [ 639315.500000, 207444.600000 ], [ 639333.400000, 207467.200000 ], [ 639327.800000, 207500.000000 ], [ 639323.100000, 207485.400000 ], [ 639311.300000, 207475.700000 ], [ 639294.300000, 207475.700000 ], [ 639229.100000, 207503.600000 ], [ 639217.800000, 207502.400000 ], [ 639149.800000, 207430.000000 ], [ 639125.700000, 207422.000000 ], [ 639085.900000, 207506.100000 ], [ 639060.200000, 207535.700000 ], [ 639053.000000, 207594.300000 ], [ 638942.600000, 207492.000000 ], [ 638922.500000, 207449.900000 ], [ 638906.800000, 207387.400000 ], [ 638840.400000, 207249.100000 ], [ 638818.500000, 207163.900000 ], [ 638812.000000, 207150.900000 ], [ 638801.400000, 207148.900000 ], [ 638765.000000, 207248.600000 ], [ 638750.600000, 207415.100000 ], [ 638738.100000, 207447.600000 ], [ 638745.600000, 207484.600000 ], [ 638735.900000, 207527.900000 ], [ 638737.400000, 207576.400000 ], [ 638725.500000, 207587.200000 ], [ 638671.888000, 207577.642000 ], [ 638662.178000, 207590.083000 ], [ 638664.454000, 207599.794000 ], [ 638727.800000, 207622.800000 ], [ 638748.500000, 207640.100000 ], [ 638760.800000, 207680.600000 ], [ 638774.300000, 207693.100000 ], [ 638804.000000, 207700.300000 ], [ 638825.500000, 207716.300000 ], [ 638867.300000, 207775.100000 ], [ 639081.500000, 207977.300000 ], [ 639088.500000, 207991.400000 ], [ 639085.800000, 208051.900000 ], [ 639093.000000, 208064.600000 ], [ 639125.800000, 208097.600000 ], [ 639147.300000, 208137.700000 ], [ 639219.000000, 208178.700000 ], [ 639270.300000, 208261.100000 ], [ 639273.000000, 208297.600000 ], [ 639253.300000, 208340.100000 ], [ 639249.300000, 208358.100000 ], [ 639253.800000, 208366.400000 ], [ 639266.900000, 208383.800000 ], [ 639287.400000, 208391.800000 ], [ 639340.500000, 208384.900000 ], [ 639366.800000, 208392.900000 ], [ 639382.300000, 208404.900000 ], [ 639395.700000, 208427.700000 ], [ 639419.500000, 208495.700000 ], [ 639454.500000, 208532.500000 ], [ 639466.300000, 208600.000000 ], [ 639498.500000, 208694.800000 ], [ 639514.800000, 208725.800000 ], [ 639551.800000, 208764.200000 ], [ 639666.500000, 208806.200000 ], [ 639724.100000, 208842.500000 ], [ 639748.900000, 208876.000000 ], [ 639773.800000, 208943.800000 ], [ 639873.800000, 209031.500000 ], [ 639913.000000, 209102.800000 ], [ 639973.100000, 209111.200000 ], [ 640001.400000, 209142.100000 ], [ 640013.880000, 209165.842000 ], [ 640088.000000, 209205.600000 ], [ 640122.900000, 209237.700000 ], [ 640180.800000, 209252.900000 ], [ 640244.600000, 209242.500000 ], [ 640280.100000, 209282.300000 ], [ 640292.400000, 209313.200000 ], [ 640298.800000, 209355.800000 ], [ 640325.700000, 209410.200000 ], [ 640345.300000, 209435.800000 ], [ 640462.713000, 209510.401000 ], [ 640604.000000, 209616.100000 ], [ 640666.500000, 209700.800000 ], [ 640755.200000, 209775.500000 ], [ 640841.900000, 209836.700000 ], [ 640902.900000, 209842.600000 ], [ 640940.800000, 209826.100000 ], [ 640981.700000, 209790.100000 ], [ 641003.300000, 209786.200000 ], [ 641020.000000, 209798.800000 ], [ 641027.600000, 209844.200000 ], [ 641063.000000, 209908.900000 ], [ 641125.700000, 209983.300000 ], [ 641196.300000, 210037.600000 ], [ 641224.800000, 210069.800000 ], [ 641238.900000, 210076.900000 ], [ 641321.100000, 210069.200000 ], [ 641349.600000, 210072.800000 ], [ 641438.200000, 210100.500000 ], [ 641463.318000, 210119.110000 ], [ 641419.900000, 210131.400000 ], [ 641381.400000, 210108.000000 ], [ 641339.600000, 210100.800000 ], [ 641225.400000, 210147.200000 ], [ 641176.300000, 210155.300000 ], [ 641159.500000, 210142.700000 ], [ 641157.900000, 210128.500000 ], [ 641144.900000, 210119.700000 ], [ 641133.800000, 210195.200000 ], [ 641125.900000, 210207.100000 ], [ 641064.100000, 210270.700000 ], [ 641007.800000, 210317.300000 ], [ 640982.900000, 210359.800000 ], [ 640932.300000, 210380.600000 ], [ 640927.200000, 210392.500000 ], [ 640914.500000, 210393.300000 ], [ 640913.800000, 210440.700000 ], [ 640890.200000, 210506.700000 ], [ 640860.600000, 210538.900000 ], [ 640815.300000, 210554.000000 ], [ 640815.700000, 210615.300000 ], [ 640805.600000, 210652.900000 ], [ 640807.200000, 210686.000000 ], [ 640773.400000, 210713.700000 ], [ 640724.200000, 210789.900000 ], [ 640719.200000, 210815.100000 ], [ 640726.300000, 210875.600000 ], [ 640705.700000, 210981.500000 ], [ 640660.500000, 211039.200000 ], [ 640621.300000, 211133.000000 ], [ 640592.500000, 211135.100000 ], [ 640556.700000, 211157.700000 ], [ 640508.200000, 211215.800000 ], [ 640512.100000, 211291.800000 ], [ 640506.500000, 211344.100000 ], [ 640522.700000, 211463.000000 ], [ 640475.400000, 211550.700000 ], [ 640481.900000, 211612.200000 ], [ 640443.400000, 211703.200000 ], [ 640443.400000, 211757.000000 ], [ 640456.400000, 211807.700000 ], [ 640378.500000, 211885.300000 ], [ 640364.700000, 211953.700000 ], [ 640366.900000, 212025.300000 ], [ 640337.900000, 212089.300000 ], [ 640339.700000, 212152.100000 ], [ 640374.900000, 212315.200000 ], [ 640364.900000, 212400.900000 ], [ 640334.500000, 212462.800000 ], [ 640328.000000, 212524.000000 ], [ 640349.200000, 212670.700000 ], [ 640380.200000, 212748.800000 ], [ 640380.635000, 212788.541000 ], [ 640351.100000, 212818.000000 ], [ 640337.900000, 212872.700000 ], [ 640324.800000, 212888.800000 ], [ 640290.200000, 212906.900000 ], [ 640241.400000, 212919.400000 ], [ 640229.900000, 212933.900000 ], [ 640231.700000, 212947.100000 ], [ 640286.200000, 213031.100000 ], [ 640286.400000, 213041.900000 ], [ 640252.900000, 213087.400000 ], [ 640278.500000, 213185.300000 ], [ 640276.300000, 213220.100000 ], [ 640194.700000, 213334.700000 ], [ 640173.200000, 213351.200000 ], [ 640042.900000, 213336.200000 ], [ 639998.600000, 213375.200000 ], [ 639862.100000, 213371.000000 ], [ 639830.900000, 213384.300000 ], [ 639822.500000, 213399.000000 ], [ 639816.400000, 213448.200000 ], [ 639780.500000, 213507.700000 ], [ 639752.700000, 213607.400000 ], [ 639682.200000, 213680.700000 ], [ 639661.400000, 213735.800000 ], [ 639603.900000, 213753.900000 ], [ 639599.000000, 213769.100000 ], [ 639604.500000, 213822.100000 ], [ 639599.100000, 213839.400000 ], [ 639548.200000, 213922.500000 ], [ 639517.600000, 213933.300000 ], [ 639479.200000, 213918.100000 ], [ 639459.700000, 213906.100000 ], [ 639399.400000, 213839.500000 ], [ 639389.400000, 213835.700000 ], [ 639358.400000, 213846.000000 ], [ 639306.900000, 213897.400000 ], [ 639205.900000, 214038.700000 ], [ 639205.600000, 214117.400000 ], [ 639191.200000, 214175.700000 ], [ 639230.200000, 214357.500000 ], [ 639238.200000, 214376.800000 ], [ 639320.100000, 214477.100000 ], [ 639321.600000, 214502.300000 ], [ 639304.500000, 214530.100000 ], [ 639182.100000, 214665.600000 ], [ 639233.300000, 214708.200000 ], [ 639289.000000, 214778.900000 ], [ 639316.800000, 214836.900000 ], [ 639360.800000, 214975.900000 ], [ 639410.600000, 215059.100000 ], [ 639431.086000, 215047.150000 ], [ 639533.100000, 215244.400000 ], [ 639561.100000, 215315.400000 ], [ 639580.600000, 215338.700000 ], [ 639630.500000, 215371.000000 ], [ 639686.800000, 215387.500000 ], [ 639782.400000, 215402.400000 ], [ 639882.800000, 215540.500000 ], [ 639952.300000, 215613.600000 ], [ 639973.600000, 215667.100000 ], [ 639993.300000, 215692.600000 ], [ 640008.300000, 215699.600000 ], [ 640045.500000, 215702.300000 ], [ 640081.900000, 215688.700000 ], [ 640095.800000, 215697.200000 ], [ 640095.500000, 215755.600000 ], [ 640077.500000, 215802.600000 ], [ 640076.000000, 215832.400000 ], [ 640093.100000, 215874.100000 ], [ 640127.600000, 215915.000000 ], [ 640160.300000, 215919.600000 ], [ 640203.800000, 215913.100000 ], [ 640327.300000, 215884.600000 ], [ 640350.800000, 215858.300000 ], [ 640369.800000, 215785.300000 ], [ 640412.400000, 215718.500000 ], [ 640420.300000, 215716.800000 ], [ 640433.900000, 215730.000000 ], [ 640449.100000, 215777.200000 ], [ 640531.700000, 215802.700000 ], [ 640644.700000, 215884.400000 ], [ 640697.800000, 215939.600000 ], [ 640709.200000, 215939.300000 ], [ 640712.200000, 216005.700000 ], [ 640753.500000, 216029.000000 ], [ 640749.600000, 216111.400000 ], [ 640849.000000, 216331.100000 ], [ 640962.300000, 216463.800000 ], [ 640991.600000, 216486.300000 ], [ 640985.700000, 216514.900000 ], [ 640992.400000, 216527.700000 ], [ 641030.800000, 216559.800000 ], [ 641092.200000, 216670.700000 ], [ 641087.300000, 216715.800000 ], [ 641096.400000, 216748.200000 ], [ 641096.400000, 216776.400000 ], [ 641039.700000, 216928.200000 ], [ 640999.200000, 217006.200000 ], [ 641000.900000, 217046.200000 ], [ 641043.900000, 217098.700000 ], [ 641182.400000, 217179.400000 ], [ 641292.900000, 217261.500000 ], [ 641429.700000, 217409.500000 ], [ 641445.400000, 217434.400000 ], [ 641482.400000, 217526.300000 ], [ 641516.700000, 217561.100000 ], [ 641599.500000, 217614.000000 ], [ 641662.700000, 217645.700000 ], [ 641753.200000, 217662.900000 ], [ 641788.500000, 217662.900000 ], [ 641820.300000, 217653.700000 ], [ 641872.600000, 217623.800000 ], [ 641893.000000, 217623.200000 ], [ 641995.700000, 217696.200000 ], [ 641997.800000, 217731.200000 ], [ 641922.000000, 217810.000000 ], [ 641928.300000, 217836.500000 ], [ 641964.800000, 217874.400000 ], [ 641972.400000, 217891.100000 ], [ 641989.100000, 218083.100000 ], [ 641974.500000, 218253.500000 ], [ 641991.500000, 218262.800000 ], [ 642076.000000, 218215.400000 ], [ 642093.400000, 218219.200000 ], [ 642089.800000, 218326.100000 ], [ 642110.400000, 218555.800000 ], [ 642089.200000, 218645.600000 ], [ 642065.300000, 218848.500000 ], [ 642080.200000, 218990.200000 ], [ 642076.060000, 219007.678000 ], [ 642046.900000, 219009.500000 ], [ 642036.800000, 219027.570000 ], [ 642038.232000, 219057.195000 ], [ 642103.100000, 219070.000000 ], [ 642328.800000, 219226.500000 ], [ 642367.600000, 219174.700000 ], [ 642396.300000, 219155.000000 ], [ 642470.913000, 219055.822000 ], [ 642498.100000, 219068.100000 ], [ 642571.500000, 219085.600000 ], [ 642649.724000, 219125.121000 ], [ 642653.799000, 219137.818000 ], [ 642664.850000, 219140.561000 ], [ 642676.606000, 219131.469000 ], [ 642716.251000, 219130.021000 ], [ 642754.614000, 219106.546000 ], [ 642798.200000, 219103.700000 ], [ 642834.400000, 219088.700000 ], [ 642886.900000, 219079.900000 ], [ 642931.900000, 219042.400000 ], [ 643001.900000, 219021.200000 ], [ 643025.700000, 218996.200000 ], [ 643073.200000, 218968.700000 ], [ 643079.400000, 218969.900000 ], [ 643043.200000, 219017.400000 ], [ 643033.200000, 219049.900000 ], [ 643011.900000, 219067.400000 ], [ 642988.200000, 219074.900000 ], [ 642979.400000, 219107.400000 ], [ 643005.700000, 219127.400000 ], [ 643010.700000, 219148.700000 ], [ 642984.400000, 219163.700000 ], [ 642958.200000, 219168.700000 ], [ 642936.900000, 219189.900000 ], [ 642926.900000, 219211.200000 ], [ 642896.900000, 219233.700000 ], [ 642946.900000, 219241.200000 ], [ 642976.900000, 219228.700000 ], [ 643000.700000, 219207.400000 ], [ 643028.200000, 219202.400000 ], [ 643084.400000, 219207.400000 ], [ 643099.400000, 219202.400000 ], [ 643126.900000, 219182.400000 ], [ 643147.231000, 219146.200000 ], [ 643172.200000, 219156.900000 ], [ 643296.600000, 219238.900000 ], [ 643333.700000, 219254.100000 ], [ 643349.000000, 219254.400000 ], [ 643351.700000, 219262.900000 ], [ 643367.500000, 219262.000000 ], [ 643401.600000, 219213.000000 ], [ 643424.600000, 219198.900000 ], [ 643570.100000, 219159.200000 ], [ 643651.900000, 219162.000000 ], [ 643757.700000, 219182.300000 ], [ 643778.200000, 219178.700000 ], [ 643817.900000, 219164.800000 ], [ 643915.000000, 219099.600000 ], [ 643987.500000, 219073.700000 ], [ 644008.500000, 219073.500000 ], [ 644032.600000, 219086.500000 ], [ 644078.800000, 219133.200000 ], [ 644103.400000, 219141.600000 ], [ 644128.100000, 219127.600000 ], [ 644156.813000, 219095.220000 ], [ 644166.300000, 219092.625000 ], [ 644192.700000, 219146.100000 ], [ 644210.600000, 219201.800000 ], [ 644302.100000, 219299.600000 ], [ 644334.000000, 219276.100000 ], [ 644404.200000, 219264.100000 ], [ 644463.700000, 219271.800000 ], [ 644594.700000, 219318.600000 ], [ 644683.200000, 219307.700000 ], [ 644787.400000, 219333.900000 ], [ 644821.400000, 219316.700000 ], [ 644880.100000, 219302.600000 ], [ 644894.400000, 219287.500000 ], [ 644898.200000, 219239.000000 ], [ 644933.400000, 219197.000000 ], [ 644983.900000, 219176.700000 ], [ 645136.800000, 219155.800000 ], [ 645187.700000, 219139.700000 ], [ 645263.000000, 219056.000000 ], [ 645304.600000, 219025.700000 ], [ 645372.000000, 219009.000000 ], [ 645393.900000, 218995.000000 ], [ 645507.800000, 218892.600000 ], [ 645573.000000, 218852.700000 ], [ 645632.000000, 218798.500000 ], [ 645682.700000, 218732.900000 ], [ 645817.800000, 218617.800000 ], [ 645899.900000, 218576.300000 ], [ 645975.500000, 218559.000000 ], [ 645970.700000, 218477.700000 ], [ 645979.100000, 218445.300000 ], [ 646016.800000, 218370.900000 ], [ 646016.700000, 218310.000000 ], [ 646033.200000, 218316.800000 ], [ 646216.500000, 218295.100000 ], [ 646262.050000, 218295.773000 ], [ 646376.435000, 218306.251000 ], [ 646687.900000, 218368.500000 ], [ 646680.700000, 218336.100000 ], [ 646683.500000, 218292.300000 ], [ 646709.300000, 218206.200000 ], [ 646777.800000, 218072.600000 ], [ 646888.400000, 217921.200000 ], [ 647103.800000, 217824.400000 ], [ 647144.900000, 217784.000000 ], [ 647200.700000, 217752.500000 ], [ 647223.600000, 217721.700000 ], [ 647256.800000, 217644.100000 ], [ 647272.200000, 217628.200000 ], [ 647332.300000, 217591.300000 ], [ 647423.300000, 217515.600000 ], [ 647545.300000, 217488.100000 ], [ 647668.300000, 217428.200000 ], [ 647696.900000, 217379.900000 ], [ 647726.400000, 217351.300000 ], [ 647754.300000, 217336.600000 ], [ 647779.000000, 217332.300000 ], [ 647809.300000, 217301.100000 ], [ 647831.900000, 217291.000000 ], [ 647846.600000, 217272.700000 ], [ 647908.100000, 217239.200000 ], [ 648074.900000, 217083.900000 ], [ 648150.700000, 216977.600000 ], [ 648153.591000, 216940.454000 ], [ 648392.000000, 216831.200000 ], [ 648423.000000, 216830.700000 ], [ 648466.000000, 216841.200000 ], [ 648510.800000, 216830.400000 ], [ 648577.000000, 216838.200000 ], [ 648598.800000, 216855.000000 ], [ 648659.500000, 216848.700000 ], [ 648714.400000, 216864.800000 ], [ 648766.800000, 216860.700000 ], [ 648835.000000, 216827.600000 ], [ 648902.500000, 216826.300000 ], [ 648962.500000, 216787.100000 ], [ 649036.800000, 216753.400000 ], [ 649101.000000, 216704.500000 ], [ 649137.900000, 216697.600000 ], [ 649156.800000, 216719.200000 ], [ 649229.500000, 216772.700000 ], [ 649239.000000, 216787.200000 ], [ 649251.800000, 216838.200000 ], [ 649313.800000, 216898.900000 ], [ 649288.703000, 216975.922000 ], [ 649337.600000, 216979.200000 ], [ 649384.600000, 217000.100000 ], [ 649439.600000, 217013.900000 ], [ 649488.700000, 217014.200000 ], [ 649475.826000, 217109.288000 ], [ 649502.300000, 217109.900000 ], [ 649651.900000, 217145.500000 ], [ 649681.400000, 217162.800000 ], [ 649709.700000, 217134.800000 ], [ 649758.800000, 217127.500000 ], [ 649767.700000, 217116.600000 ], [ 649904.500000, 217058.400000 ], [ 650262.100000, 216983.200000 ], [ 650260.200000, 216968.900000 ], [ 650251.800000, 216961.300000 ], [ 650382.600000, 216962.200000 ], [ 650786.100000, 217209.000000 ], [ 650901.300000, 217247.200000 ], [ 650935.100000, 217282.400000 ], [ 650977.300000, 217309.400000 ], [ 651055.300000, 217424.500000 ], [ 651085.300000, 217446.000000 ], [ 651121.300000, 217497.900000 ], [ 651121.900000, 217508.800000 ], [ 651165.600000, 217590.100000 ], [ 651156.800000, 217633.300000 ], [ 651160.100000, 217640.300000 ], [ 651208.100000, 217659.800000 ], [ 651230.100000, 217684.700000 ], [ 651229.600000, 217718.700000 ], [ 651213.200000, 217773.700000 ], [ 651280.200000, 217772.900000 ], [ 651321.700000, 217744.600000 ], [ 651362.900000, 217701.900000 ], [ 651459.200000, 217622.600000 ], [ 651497.300000, 217606.200000 ], [ 651534.100000, 217602.700000 ], [ 651628.700000, 217619.800000 ], [ 651806.200000, 217606.000000 ], [ 651821.500000, 217618.200000 ], [ 651838.000000, 217620.200000 ], [ 652104.500000, 217606.600000 ], [ 652459.400000, 217621.300000 ], [ 652753.000000, 217616.700000 ], [ 652845.000000, 217649.200000 ], [ 652888.700000, 217689.700000 ], [ 653005.000000, 217772.000000 ], [ 653021.000000, 217775.000000 ], [ 653178.200000, 217753.300000 ], [ 653191.200000, 217766.700000 ], [ 653189.000000, 217898.000000 ], [ 653200.600000, 218015.600000 ], [ 653193.291000, 218035.678000 ], [ 653208.900000, 218051.100000 ], [ 653248.400000, 218116.400000 ], [ 653298.300000, 218264.800000 ], [ 653328.200000, 218297.200000 ], [ 653402.077000, 218350.515000 ], [ 653450.600000, 218338.200000 ], [ 653635.200000, 218258.300000 ], [ 653657.700000, 218245.400000 ], [ 653704.000000, 218200.926000 ], [ 653735.800000, 218161.900000 ], [ 653740.900000, 218139.800000 ], [ 653735.500000, 218119.900000 ], [ 653691.500000, 218068.200000 ], [ 653695.400000, 218041.500000 ], [ 653781.300000, 217964.000000 ], [ 653841.100000, 217921.000000 ], [ 653920.255000, 217836.206000 ], [ 653945.800000, 217855.200000 ], [ 653942.200000, 217873.200000 ], [ 653947.500000, 217875.500000 ], [ 653984.400000, 217858.800000 ], [ 654006.110000, 217817.882000 ], [ 654065.600000, 217875.500000 ], [ 654080.700000, 217882.800000 ], [ 654145.100000, 217879.700000 ], [ 654413.500000, 217706.000000 ], [ 654445.800000, 217676.500000 ], [ 654461.200000, 217622.300000 ], [ 654470.400000, 217530.800000 ], [ 654480.700000, 217490.000000 ], [ 654503.100000, 217461.600000 ], [ 654539.200000, 217430.900000 ], [ 654572.200000, 217339.300000 ], [ 654655.600000, 217224.200000 ], [ 654751.000000, 217108.500000 ], [ 654769.853000, 217057.292000 ], [ 654813.600000, 217000.400000 ], [ 654827.400000, 216922.400000 ], [ 654855.200000, 216880.700000 ], [ 654843.500000, 216788.700000 ], [ 654860.700000, 216713.400000 ], [ 654954.800000, 216574.000000 ], [ 655052.800000, 216408.600000 ], [ 655188.100000, 216237.200000 ], [ 655202.800000, 216210.900000 ], [ 655239.100000, 216088.300000 ], [ 655290.900000, 216069.400000 ], [ 655587.100000, 216067.200000 ], [ 655634.000000, 216041.000000 ], [ 655769.000000, 215925.200000 ], [ 655889.000000, 215789.700000 ], [ 655920.300000, 215789.400000 ], [ 655969.700000, 215537.800000 ], [ 655972.300000, 215351.900000 ], [ 655983.300000, 215315.400000 ], [ 656084.300000, 215134.600000 ], [ 656094.800000, 215128.200000 ], [ 656136.200000, 215124.000000 ], [ 656178.000000, 215107.500000 ], [ 656242.000000, 215077.900000 ], [ 656253.300000, 215066.500000 ], [ 656383.800000, 214563.300000 ], [ 656397.800000, 214536.800000 ], [ 656546.900000, 214457.000000 ], [ 656569.800000, 214430.800000 ], [ 656601.600000, 214449.800000 ], [ 656638.300000, 214510.300000 ], [ 656680.000000, 214545.300000 ], [ 656700.000000, 214552.800000 ], [ 656735.500000, 214553.500000 ], [ 656787.000000, 214546.800000 ], [ 656811.000000, 214533.000000 ], [ 656823.800000, 214492.500000 ], [ 656827.200000, 214110.000000 ], [ 656801.300000, 214062.000000 ], [ 656626.200000, 213836.000000 ], [ 656616.200000, 213781.700000 ], [ 656630.300000, 213759.800000 ], [ 656779.200000, 213736.700000 ], [ 656797.700000, 213724.400000 ], [ 656843.800000, 213661.800000 ], [ 657047.769000, 213578.885000 ], [ 657144.200000, 213546.200000 ], [ 657169.900000, 213549.400000 ], [ 657261.400000, 213609.700000 ], [ 657316.700000, 213638.500000 ], [ 657402.662000, 213649.431000 ], [ 657478.700000, 213623.500000 ], [ 657547.907000, 213542.646000 ], [ 657628.400000, 213558.200000 ], [ 657731.000000, 213555.000000 ], [ 657862.900000, 213583.100000 ], [ 657901.100000, 213596.300000 ], [ 657988.100000, 213644.700000 ], [ 658024.100000, 213645.300000 ], [ 658099.700000, 213628.300000 ], [ 658181.300000, 213641.800000 ], [ 658374.957000, 213659.669000 ], [ 658552.698000, 213640.687000 ], [ 658612.200000, 213650.600000 ], [ 658660.300000, 213648.500000 ], [ 658735.600000, 213612.800000 ], [ 658810.300000, 213613.800000 ], [ 658930.400000, 213583.800000 ], [ 658999.216000, 213580.208000 ], [ 659066.000000, 213543.200000 ], [ 659118.200000, 213505.700000 ], [ 659149.400000, 213491.800000 ], [ 659237.280000, 213472.762000 ], [ 659256.700000, 213455.600000 ], [ 659256.500000, 213434.000000 ], [ 659112.754000, 213256.208000 ], [ 659140.000000, 213238.400000 ], [ 659219.700000, 213212.400000 ], [ 659272.500000, 213187.800000 ], [ 659314.600000, 213157.000000 ], [ 659444.200000, 212944.500000 ], [ 659499.400000, 212867.300000 ], [ 659771.300000, 213010.200000 ], [ 659888.300000, 213091.200000 ], [ 659907.300000, 213118.500000 ], [ 659954.000000, 213231.000000 ], [ 659977.500000, 213265.800000 ], [ 660043.600000, 213328.100000 ], [ 660058.500000, 213317.500000 ], [ 660097.800000, 213314.300000 ], [ 660179.000000, 213342.500000 ], [ 660254.500000, 213322.300000 ], [ 660342.700000, 213287.300000 ], [ 660458.300000, 213125.700000 ], [ 660648.700000, 212995.400000 ], [ 660682.100000, 212940.700000 ], [ 660741.500000, 212800.200000 ], [ 660905.400000, 212554.700000 ], [ 661029.951000, 212350.800000 ], [ 661320.200000, 212582.900000 ], [ 661496.800000, 212779.500000 ], [ 661618.000000, 212837.200000 ], [ 661625.500000, 212850.000000 ], [ 661624.500000, 212949.500000 ], [ 661650.800000, 213020.000000 ], [ 661655.800000, 213057.200000 ], [ 661650.500000, 213106.700000 ], [ 661655.300000, 213130.000000 ], [ 661736.800000, 213299.300000 ], [ 661751.300000, 213324.500000 ], [ 661818.300000, 213379.800000 ], [ 661837.500000, 213404.300000 ], [ 661961.057000, 213593.282000 ], [ 662108.500000, 213745.300000 ], [ 662508.700000, 213957.900000 ], [ 662568.300000, 214008.100000 ], [ 662580.300000, 213999.100000 ], [ 662626.200000, 213998.100000 ], [ 662692.600000, 213959.700000 ], [ 662750.000000, 213973.100000 ], [ 662794.500000, 213997.600000 ], [ 662812.000000, 214039.600000 ], [ 663140.200000, 214317.900000 ], [ 663168.500000, 214322.400000 ], [ 663232.200000, 214296.900000 ], [ 663331.500000, 214275.000000 ], [ 663408.200000, 214242.600000 ], [ 663421.300000, 214245.100000 ], [ 663474.500000, 214280.100000 ], [ 663489.500000, 214282.000000 ], [ 663503.500000, 214272.900000 ], [ 663560.839000, 214356.497000 ], [ 663571.919000, 214353.960000 ], [ 663584.688000, 214360.613000 ], [ 663587.594000, 214375.543000 ], [ 663617.400000, 214420.200000 ], [ 663632.800000, 214480.700000 ], [ 663635.200000, 214550.500000 ], [ 663699.700000, 214543.000000 ], [ 663736.400000, 214530.000000 ], [ 663720.000000, 214506.600000 ], [ 663700.000000, 214454.100000 ], [ 663684.000000, 214371.100000 ], [ 663681.400000, 214312.600000 ], [ 663699.400000, 214089.100000 ], [ 663717.547000, 214045.941000 ], [ 663813.800000, 213951.900000 ], [ 663831.100000, 213944.900000 ], [ 663885.600000, 213900.100000 ], [ 664115.000000, 213673.100000 ], [ 664168.712000, 213633.107000 ], [ 664213.597000, 213586.591000 ], [ 664235.200000, 213498.700000 ], [ 664275.200000, 213385.500000 ], [ 664426.232000, 213288.640000 ], [ 664439.000000, 213290.500000 ], [ 664416.600000, 213272.600000 ], [ 664329.226000, 213261.982000 ], [ 664320.228000, 213255.665000 ], [ 664302.066000, 213272.799000 ], [ 664292.732000, 213271.399000 ], [ 664288.800000, 213190.100000 ], [ 664262.530000, 213158.596000 ], [ 664258.200000, 213131.100000 ], [ 664253.200000, 213008.900000 ], [ 664273.742000, 212905.222000 ], [ 664359.600000, 212731.800000 ], [ 664394.800000, 212619.400000 ], [ 664410.900000, 212389.800000 ], [ 664418.441000, 212354.860000 ], [ 664429.972000, 212347.788000 ], [ 664438.825000, 212221.400000 ], [ 664446.900000, 212184.400000 ], [ 664442.645000, 212138.462000 ], [ 664459.700000, 212107.400000 ], [ 664461.100000, 212077.200000 ], [ 664480.700000, 212037.700000 ], [ 664530.900000, 211975.200000 ], [ 664580.800000, 211928.400000 ], [ 664630.000000, 211902.300000 ], [ 664716.900000, 211875.500000 ], [ 664816.109000, 211862.235000 ], [ 664827.600000, 211876.700000 ], [ 664833.257000, 211899.390000 ], [ 664845.089000, 212020.614000 ], [ 665063.600000, 211939.900000 ], [ 665237.300000, 211898.000000 ], [ 665409.500000, 211801.200000 ], [ 665375.800000, 211743.900000 ], [ 665411.503000, 211707.774000 ], [ 665612.600000, 211598.800000 ], [ 665643.838000, 211594.064000 ], [ 665649.468000, 211580.231000 ], [ 665660.487000, 211572.579000 ], [ 665735.610000, 211581.428000 ], [ 665743.875000, 211565.437000 ], [ 665738.400000, 211532.000000 ], [ 665742.400000, 211412.200000 ], [ 665736.022000, 211400.502000 ], [ 665822.200000, 211441.000000 ], [ 665849.000000, 211445.300000 ], [ 666146.691000, 211481.466000 ], [ 666149.500000, 211466.200000 ] ], [ [ 601918.200000, 200909.600000 ], [ 601965.800000, 200878.500000 ], [ 602018.800000, 200827.500000 ], [ 602206.673000, 200597.034000 ], [ 602218.925000, 200595.917000 ], [ 602416.800000, 200791.800000 ], [ 602661.900000, 201010.200000 ], [ 602944.100000, 201277.700000 ], [ 602930.200000, 201301.700000 ], [ 602897.200000, 201309.900000 ], [ 602888.700000, 201337.600000 ], [ 602791.200000, 201437.900000 ], [ 602766.000000, 201476.400000 ], [ 602791.700000, 201532.400000 ], [ 602872.000000, 201780.600000 ], [ 602867.200000, 201804.200000 ], [ 602758.200000, 201840.000000 ], [ 602689.700000, 201845.000000 ], [ 602652.700000, 201854.600000 ], [ 602570.200000, 201894.600000 ], [ 602527.000000, 201940.600000 ], [ 602480.600000, 201958.600000 ], [ 602465.013000, 201954.927000 ], [ 602480.400000, 201990.600000 ], [ 602502.100000, 202085.800000 ], [ 602529.000000, 202254.400000 ], [ 602589.201000, 202369.685000 ], [ 602509.400000, 202399.400000 ], [ 602498.200000, 202428.600000 ], [ 602424.800000, 202455.700000 ], [ 602403.570000, 202486.875000 ], [ 602147.981000, 203154.932000 ], [ 602212.356000, 203175.815000 ], [ 602287.400000, 203179.700000 ], [ 602459.900000, 203213.400000 ], [ 602552.045000, 203214.400000 ], [ 602561.102000, 203219.412000 ], [ 602778.600000, 203218.500000 ], [ 602898.600000, 203202.700000 ], [ 603136.762000, 203150.388000 ], [ 603157.000000, 203161.300000 ], [ 603146.400000, 203273.200000 ], [ 603314.000000, 203197.500000 ], [ 603403.200000, 203146.000000 ], [ 603420.000000, 203145.700000 ], [ 603426.700000, 203153.200000 ], [ 603441.100000, 203192.300000 ], [ 603498.000000, 203134.300000 ], [ 603527.500000, 203120.300000 ], [ 603600.000000, 203096.600000 ], [ 603760.200000, 203059.600000 ], [ 603820.500000, 203025.200000 ], [ 603923.200000, 202932.200000 ], [ 603997.700000, 202888.200000 ], [ 604157.700000, 202806.200000 ], [ 604201.700000, 202793.200000 ], [ 604286.700000, 202784.700000 ], [ 604409.300000, 202726.000000 ], [ 604338.100000, 202670.000000 ], [ 604331.100000, 202661.100000 ], [ 604334.300000, 202633.700000 ], [ 604387.700000, 202627.500000 ], [ 604436.200000, 202652.300000 ], [ 604467.400000, 202683.000000 ], [ 604550.100000, 202667.900000 ], [ 604641.100000, 202687.500000 ], [ 604673.100000, 202682.500000 ], [ 604700.600000, 202670.000000 ], [ 604787.400000, 202592.000000 ], [ 604813.300000, 202594.300000 ], [ 604885.000000, 202472.200000 ], [ 604925.000000, 202353.100000 ], [ 604944.700000, 202314.300000 ], [ 605012.900000, 202237.300000 ], [ 605139.500000, 202141.200000 ], [ 605206.100000, 202031.900000 ], [ 605242.700000, 201931.400000 ], [ 605269.700000, 201894.500000 ], [ 605366.100000, 201790.600000 ], [ 605455.500000, 201669.400000 ], [ 605551.500000, 201573.400000 ], [ 605622.500000, 201514.100000 ], [ 605665.600000, 201506.600000 ], [ 605681.600000, 201487.000000 ], [ 605730.100000, 201330.200000 ], [ 605745.900000, 201295.500000 ], [ 605796.100000, 201220.500000 ], [ 605816.700000, 201162.000000 ], [ 605827.800000, 201147.700000 ], [ 606044.400000, 201012.200000 ], [ 606076.400000, 200985.700000 ], [ 606084.400000, 200951.500000 ], [ 606082.600000, 200860.900000 ], [ 606180.500000, 200882.200000 ], [ 606280.200000, 200861.900000 ], [ 606443.200000, 200860.700000 ], [ 606506.600000, 200837.400000 ], [ 606482.500000, 200804.400000 ], [ 606475.500000, 200769.600000 ], [ 606477.100000, 200449.500000 ], [ 606566.900000, 200401.700000 ], [ 606622.200000, 200348.600000 ], [ 606723.400000, 200296.000000 ], [ 606725.200000, 200289.200000 ], [ 606870.600000, 200239.800000 ], [ 607194.600000, 199963.500000 ], [ 607367.900000, 199780.900000 ], [ 607409.300000, 199749.300000 ], [ 607505.000000, 199699.200000 ], [ 607536.100000, 199783.000000 ], [ 607723.900000, 199896.500000 ], [ 607792.500000, 199863.100000 ], [ 607907.700000, 199908.200000 ], [ 608033.500000, 199971.900000 ], [ 608065.500000, 200038.100000 ], [ 608076.800000, 200087.100000 ], [ 608078.000000, 200155.600000 ], [ 608062.100000, 200223.500000 ], [ 608126.500000, 200287.200000 ], [ 608221.200000, 200346.900000 ], [ 608250.000000, 200352.900000 ], [ 608339.700000, 200348.200000 ], [ 608379.247000, 200357.572000 ], [ 608454.000000, 200506.700000 ], [ 608501.200000, 200531.200000 ], [ 608624.400000, 200517.300000 ], [ 608645.000000, 200511.800000 ], [ 608668.200000, 200468.200000 ], [ 608682.500000, 200459.200000 ], [ 608710.500000, 200454.000000 ], [ 608718.000000, 200459.700000 ], [ 608718.200000, 200470.700000 ], [ 608699.000000, 200507.000000 ], [ 608699.900000, 200536.700000 ], [ 608718.100000, 200593.800000 ], [ 608838.700000, 200726.600000 ], [ 608905.100000, 200816.000000 ], [ 608946.800000, 200837.500000 ], [ 608974.500000, 200839.500000 ], [ 609063.700000, 200796.200000 ], [ 609194.800000, 200762.600000 ], [ 609288.400000, 200774.500000 ], [ 609373.200000, 200760.200000 ], [ 609506.500000, 200792.000000 ], [ 609540.300000, 200805.500000 ], [ 609526.000000, 200883.000000 ], [ 609526.200000, 200938.200000 ], [ 609568.500000, 201056.500000 ], [ 609585.200000, 201079.700000 ], [ 609594.400000, 201084.700000 ], [ 609638.200000, 201079.000000 ], [ 609753.000000, 201122.400000 ], [ 609812.500000, 201156.700000 ], [ 609849.700000, 201170.500000 ], [ 609913.000000, 201212.700000 ], [ 609930.500000, 201215.200000 ], [ 609994.200000, 201165.200000 ], [ 610003.500000, 201141.500000 ], [ 609996.000000, 201099.000000 ], [ 609961.200000, 201048.200000 ], [ 609965.700000, 201015.200000 ], [ 610017.200000, 200956.500000 ], [ 610092.900000, 200815.400000 ], [ 610205.500000, 200801.000000 ], [ 610304.200000, 200769.700000 ], [ 610478.300000, 200663.700000 ], [ 610493.400000, 200648.500000 ], [ 610506.000000, 200606.300000 ], [ 610509.200000, 200517.600000 ], [ 610496.100000, 200453.200000 ], [ 610476.100000, 200397.300000 ], [ 610476.300000, 200354.100000 ], [ 610489.900000, 200290.200000 ], [ 610484.200000, 200200.200000 ], [ 610490.000000, 200177.200000 ], [ 610552.500000, 200115.400000 ], [ 610652.800000, 200035.800000 ], [ 610732.700000, 199988.700000 ], [ 610796.700000, 199964.000000 ], [ 610997.700000, 199907.000000 ], [ 611199.700000, 199882.100000 ], [ 611211.700000, 199931.500000 ], [ 611208.200000, 199971.700000 ], [ 611215.500000, 200019.700000 ], [ 611256.200000, 200120.700000 ], [ 611218.200000, 200239.200000 ], [ 611203.800000, 200268.000000 ], [ 611169.200000, 200298.500000 ], [ 611155.000000, 200350.900000 ], [ 611159.200000, 200396.600000 ], [ 611180.700000, 200440.400000 ], [ 611228.300000, 200496.300000 ], [ 611283.900000, 200587.300000 ], [ 611344.500000, 200638.800000 ], [ 611382.700000, 200693.100000 ], [ 611389.000000, 200708.600000 ], [ 611387.200000, 200868.600000 ], [ 611396.300000, 200963.500000 ], [ 611451.600000, 200958.000000 ], [ 611587.600000, 200924.000000 ], [ 611768.100000, 200932.500000 ], [ 611883.200000, 200915.700000 ], [ 611915.200000, 200898.200000 ], [ 612031.900000, 200781.200000 ], [ 612166.300000, 200689.800000 ], [ 612172.200000, 200700.200000 ], [ 612192.000000, 200711.700000 ], [ 612226.700000, 200699.000000 ], [ 612311.100000, 200604.700000 ], [ 612378.500000, 200552.900000 ], [ 612404.100000, 200550.300000 ], [ 612421.600000, 200559.600000 ], [ 612465.500000, 200601.200000 ], [ 612500.500000, 200652.000000 ], [ 612495.500000, 200600.000000 ], [ 612453.800000, 200479.600000 ], [ 612438.200000, 200376.200000 ], [ 612436.400000, 200332.500000 ], [ 612455.200000, 200287.000000 ], [ 612551.300000, 200283.000000 ], [ 612625.000000, 200272.200000 ], [ 612891.400000, 200351.200000 ], [ 612905.900000, 200352.500000 ], [ 612926.900000, 200344.200000 ], [ 612942.100000, 200322.500000 ], [ 612947.200000, 200301.800000 ], [ 612912.000000, 200175.200000 ], [ 612885.900000, 200120.600000 ], [ 612795.400000, 200008.200000 ], [ 612767.500000, 199958.100000 ], [ 612773.100000, 199925.900000 ], [ 612828.600000, 199869.700000 ], [ 612841.900000, 199838.700000 ], [ 612835.600000, 199777.700000 ], [ 612810.900000, 199719.200000 ], [ 612761.400000, 199620.000000 ], [ 612716.400000, 199562.500000 ], [ 612624.900000, 199504.700000 ], [ 612554.200000, 199477.500000 ], [ 612493.500000, 199443.900000 ], [ 612422.500000, 199431.000000 ], [ 612396.900000, 199385.300000 ], [ 612330.400000, 199343.000000 ], [ 612306.100000, 199254.500000 ], [ 612327.600000, 199195.700000 ], [ 612343.400000, 199172.000000 ], [ 612470.700000, 199149.700000 ], [ 612637.900000, 199137.600000 ], [ 612991.000000, 199318.800000 ], [ 613038.800000, 199325.300000 ], [ 613206.900000, 199498.300000 ], [ 613275.500000, 199590.700000 ], [ 613381.100000, 199633.600000 ], [ 613560.700000, 199773.000000 ], [ 613610.700000, 199782.000000 ], [ 613647.500000, 199767.700000 ], [ 613791.900000, 199679.600000 ], [ 613758.100000, 199656.900000 ], [ 613732.400000, 199597.900000 ], [ 613732.200000, 199568.200000 ], [ 613698.600000, 199450.900000 ], [ 613697.100000, 199412.100000 ], [ 613711.500000, 199394.900000 ], [ 613724.000000, 199422.400000 ], [ 613768.500000, 199481.600000 ], [ 613809.300000, 199475.200000 ], [ 613880.900000, 199500.900000 ], [ 613900.800000, 199501.400000 ], [ 613946.900000, 199473.100000 ], [ 613991.400000, 199480.900000 ], [ 614021.400000, 199478.100000 ], [ 614076.800000, 199424.600000 ], [ 614157.300000, 199445.500000 ], [ 614171.300000, 199466.200000 ], [ 614151.200000, 199526.400000 ], [ 614159.400000, 199547.600000 ], [ 614181.100000, 199565.900000 ], [ 614188.600000, 199561.600000 ], [ 614190.400000, 199524.100000 ], [ 614244.900000, 199448.100000 ], [ 614289.100000, 199432.400000 ], [ 614302.600000, 199419.600000 ], [ 614298.100000, 199396.400000 ], [ 614265.600000, 199356.600000 ], [ 614265.900000, 199313.100000 ], [ 614280.200000, 199298.000000 ], [ 614306.800000, 199302.700000 ], [ 614337.600000, 199344.300000 ], [ 614428.900000, 199379.600000 ], [ 614446.600000, 199378.600000 ], [ 614486.400000, 199354.558000 ], [ 614482.500000, 199329.100000 ], [ 614435.600000, 199239.100000 ], [ 614331.900000, 199059.500000 ], [ 614324.700000, 199025.100000 ], [ 614335.500000, 198902.000000 ], [ 614375.700000, 198805.600000 ], [ 614446.900000, 198726.900000 ], [ 614451.900000, 198757.100000 ], [ 614467.900000, 198767.400000 ], [ 614558.300000, 198751.600000 ], [ 614587.600000, 198757.600000 ], [ 614810.900000, 198906.400000 ], [ 614873.600000, 198962.600000 ], [ 614901.100000, 199002.600000 ], [ 615180.900000, 199130.500000 ], [ 615256.900000, 199198.900000 ], [ 615380.300000, 199285.200000 ], [ 615390.100000, 199299.400000 ], [ 615392.600000, 199331.100000 ], [ 615361.900000, 199422.400000 ], [ 615363.400000, 199468.400000 ], [ 615386.400000, 199543.600000 ], [ 615401.700000, 199629.300000 ], [ 615442.400000, 199735.200000 ], [ 615461.900000, 199810.000000 ], [ 615495.900000, 199875.400000 ], [ 615581.400000, 199848.100000 ], [ 615657.900000, 199761.000000 ], [ 615734.700000, 199743.600000 ], [ 615890.200000, 199671.600000 ], [ 615901.415000, 199672.902000 ], [ 615922.000000, 199645.000000 ], [ 615939.500000, 199588.200000 ], [ 615953.100000, 199579.800000 ], [ 615973.200000, 199622.100000 ], [ 615989.700000, 199631.900000 ], [ 616115.805000, 199634.717000 ], [ 616153.600000, 199611.000000 ], [ 616256.000000, 199575.500000 ], [ 616402.600000, 199468.800000 ], [ 616424.300000, 199463.200000 ], [ 616538.000000, 199461.300000 ], [ 616674.300000, 199423.800000 ], [ 616769.000000, 199388.100000 ], [ 616887.800000, 199292.100000 ], [ 616999.200000, 199253.400000 ], [ 617125.400000, 199260.900000 ], [ 617206.200000, 199279.400000 ], [ 617267.700000, 199281.900000 ], [ 617353.500000, 199275.100000 ], [ 617427.000000, 199286.600000 ], [ 617473.500000, 199282.700000 ], [ 617561.000000, 199237.000000 ], [ 617662.500000, 199232.000000 ], [ 617781.500000, 199255.000000 ], [ 617854.700000, 199281.700000 ], [ 617903.200000, 199314.200000 ], [ 617967.100000, 199315.800000 ], [ 618039.000000, 199306.200000 ], [ 618105.500000, 199285.200000 ], [ 618140.400000, 199254.000000 ], [ 618159.900000, 199217.600000 ], [ 618184.700000, 199196.700000 ], [ 618264.200000, 199164.700000 ], [ 618321.700000, 199156.200000 ], [ 618393.700000, 199156.400000 ], [ 618480.000000, 199123.700000 ], [ 618557.700000, 199105.000000 ], [ 618737.700000, 199110.400000 ], [ 618782.500000, 199088.700000 ], [ 618821.900000, 199080.700000 ], [ 618910.700000, 199124.700000 ], [ 618979.700000, 199121.000000 ], [ 619143.700000, 199134.600000 ], [ 619234.100000, 199116.800000 ], [ 619275.500000, 199091.300000 ], [ 619354.000000, 199097.000000 ], [ 619464.900000, 199084.700000 ], [ 619568.400000, 199057.600000 ], [ 619617.200000, 199028.500000 ], [ 619610.200000, 199088.200000 ], [ 619617.100000, 199113.900000 ], [ 619654.500000, 199139.000000 ], [ 619703.200000, 199138.200000 ], [ 619750.500000, 199092.500000 ], [ 619782.000000, 199045.700000 ], [ 619782.000000, 199022.200000 ], [ 619763.700000, 198950.000000 ], [ 619773.600000, 198899.300000 ], [ 619833.800000, 198851.400000 ], [ 619847.000000, 198782.500000 ], [ 619855.794000, 198768.047000 ], [ 619876.900000, 198755.200000 ], [ 619930.400000, 198752.800000 ], [ 620021.700000, 198774.300000 ], [ 620070.000000, 198792.500000 ], [ 620160.100000, 198847.000000 ], [ 620218.000000, 198865.800000 ], [ 620267.900000, 198894.900000 ], [ 620339.000000, 198906.600000 ], [ 620323.900000, 198877.400000 ], [ 620261.400000, 198818.500000 ], [ 620243.200000, 198789.000000 ], [ 620239.900000, 198723.400000 ], [ 620180.400000, 198685.800000 ], [ 620145.400000, 198646.100000 ], [ 620146.200000, 198613.600000 ], [ 620163.600000, 198570.500000 ], [ 620162.400000, 198545.500000 ], [ 620181.800000, 198540.600000 ], [ 620187.600000, 198545.700000 ], [ 620175.900000, 198592.700000 ], [ 620187.100000, 198619.700000 ], [ 620275.800000, 198613.800000 ], [ 620320.600000, 198622.800000 ], [ 620330.100000, 198643.400000 ], [ 620341.500000, 198723.400000 ], [ 620350.000000, 198737.300000 ], [ 620385.000000, 198744.500000 ], [ 620428.200000, 198671.900000 ], [ 620460.200000, 198652.200000 ], [ 620500.600000, 198647.700000 ], [ 620516.500000, 198655.700000 ], [ 620537.400000, 198692.900000 ], [ 620549.600000, 198694.400000 ], [ 620602.600000, 198652.800000 ], [ 620658.600000, 198622.700000 ], [ 620688.300000, 198619.100000 ], [ 620705.000000, 198622.900000 ], [ 620717.400000, 198639.300000 ], [ 620727.500000, 198691.600000 ], [ 620723.800000, 198719.700000 ], [ 620737.700000, 198731.500000 ], [ 620753.100000, 198730.900000 ], [ 620774.100000, 198703.200000 ], [ 620924.200000, 198595.300000 ], [ 620962.100000, 198557.000000 ], [ 620965.600000, 198546.700000 ], [ 620960.800000, 198539.300000 ], [ 620951.300000, 198538.500000 ], [ 620920.000000, 198571.800000 ], [ 620847.500000, 198614.300000 ], [ 620829.900000, 198616.700000 ], [ 620826.200000, 198598.400000 ], [ 620846.200000, 198563.000000 ], [ 620845.100000, 198541.300000 ], [ 620788.500000, 198532.300000 ], [ 620738.900000, 198514.700000 ], [ 620718.400000, 198499.700000 ], [ 620716.700000, 198487.200000 ], [ 620724.700000, 198477.800000 ], [ 620803.600000, 198505.700000 ], [ 620833.900000, 198506.000000 ], [ 620955.600000, 198468.200000 ], [ 621089.200000, 198439.800000 ], [ 621148.300000, 198420.000000 ], [ 621197.000000, 198391.500000 ], [ 621246.400000, 198374.800000 ], [ 621404.100000, 198266.700000 ], [ 621559.300000, 198178.200000 ], [ 621591.900000, 198125.400000 ], [ 621641.400000, 198096.700000 ], [ 621701.300000, 198049.100000 ], [ 621779.300000, 197956.500000 ], [ 621806.100000, 197935.800000 ], [ 621891.600000, 197899.700000 ], [ 621921.100000, 197865.200000 ], [ 621933.400000, 197859.000000 ], [ 621993.800000, 197848.300000 ], [ 622015.000000, 197837.700000 ], [ 622060.200000, 197779.100000 ], [ 622125.400000, 197752.400000 ], [ 622260.400000, 197647.000000 ], [ 622286.800000, 197614.700000 ], [ 622470.900000, 197544.700000 ], [ 622537.100000, 197549.700000 ], [ 622557.900000, 197540.700000 ], [ 622594.000000, 197575.100000 ], [ 622709.800000, 197606.600000 ], [ 622754.000000, 197670.300000 ], [ 622749.600000, 197742.600000 ], [ 622760.700000, 197772.500000 ], [ 622845.300000, 197894.700000 ], [ 623155.200000, 197729.400000 ], [ 623176.700000, 197736.400000 ], [ 623254.800000, 197788.700000 ], [ 623327.300000, 197827.600000 ], [ 623392.300000, 197879.500000 ], [ 623493.900000, 197928.800000 ], [ 623645.900000, 198026.600000 ], [ 623694.100000, 198046.600000 ], [ 623807.000000, 198078.400000 ], [ 623974.500000, 198156.700000 ], [ 624032.000000, 198203.300000 ], [ 624080.900000, 198299.400000 ], [ 624176.900000, 198408.400000 ], [ 624275.500000, 198466.400000 ], [ 624411.900000, 198585.800000 ], [ 624454.100000, 198608.400000 ], [ 624642.000000, 198612.100000 ], [ 624814.200000, 198568.200000 ], [ 624914.400000, 198559.600000 ], [ 625012.900000, 198564.700000 ], [ 625127.100000, 198545.500000 ], [ 625175.900000, 198549.100000 ], [ 625274.500000, 198577.800000 ], [ 625318.000000, 198620.100000 ], [ 625411.600000, 198671.900000 ], [ 625508.500000, 198692.400000 ], [ 625535.600000, 198687.500000 ], [ 625569.400000, 198691.600000 ], [ 625623.900000, 198772.000000 ], [ 625706.013000, 198797.598000 ], [ 625791.000000, 198760.400000 ], [ 625843.200000, 198759.900000 ], [ 625915.260000, 198773.330000 ], [ 625919.932000, 198763.695000 ], [ 625934.400000, 198761.200000 ], [ 625941.537000, 198770.703000 ], [ 625940.216000, 198781.326000 ], [ 625951.100000, 198787.400000 ], [ 626198.600000, 198863.400000 ], [ 626235.500000, 198906.100000 ] ] ] } } +, +{ "type": "Feature", "properties": { "FID": 1.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 611200.400000, 265702.100000 ], [ 611141.100000, 265545.900000 ], [ 611139.300000, 265505.400000 ], [ 611149.600000, 265485.100000 ], [ 611173.600000, 265464.400000 ], [ 611234.800000, 265455.700000 ] ], [ [ 611200.400000, 265702.100000 ], [ 611269.900000, 265670.200000 ], [ 611370.100000, 265846.200000 ], [ 611156.000000, 265965.900000 ] ], [ [ 611200.400000, 265702.100000 ], [ 611047.500000, 265777.200000 ], [ 611156.000000, 265965.900000 ] ], [ [ 611234.800000, 265455.700000 ], [ 611273.100000, 265451.900000 ], [ 611328.300000, 265427.900000 ], [ 611360.600000, 265373.600000 ], [ 611408.600000, 265348.900000 ], [ 611416.600000, 265301.100000 ], [ 611406.600000, 265265.600000 ], [ 611391.600000, 265246.000000 ], [ 611281.800000, 265146.600000 ], [ 611231.100000, 265069.600000 ], [ 611202.200000, 265008.900000 ] ], [ [ 553364.500000, 217241.900000 ], [ 553395.000000, 217210.200000 ], [ 553297.000000, 217116.700000 ], [ 553551.300000, 216848.300000 ], [ 553829.100000, 217082.200000 ], [ 553955.700000, 217170.700000 ] ], [ [ 553364.500000, 217241.900000 ], [ 553334.100000, 217273.000000 ], [ 553313.200000, 217253.900000 ], [ 553238.300000, 217301.100000 ], [ 553007.000000, 217372.100000 ], [ 552923.500000, 217415.900000 ], [ 552804.500000, 217432.900000 ], [ 552764.800000, 217475.100000 ], [ 552751.800000, 217469.100000 ], [ 552748.300000, 217452.500000 ], [ 552735.500000, 217456.200000 ], [ 552704.800000, 217473.200000 ], [ 552642.400000, 217531.300000 ], [ 552581.800000, 217542.500000 ], [ 552534.000000, 217563.700000 ], [ 552494.500000, 217601.700000 ], [ 552463.800000, 217611.200000 ], [ 552426.500000, 217635.700000 ], [ 552390.800000, 217684.000000 ], [ 552351.400000, 217702.000000 ], [ 552266.700000, 217665.200000 ], [ 552199.200000, 217582.200000 ], [ 552170.200000, 217574.200000 ], [ 552119.200000, 217597.200000 ], [ 552100.900000, 217594.700000 ], [ 552091.700000, 217589.700000 ], [ 552064.200000, 217540.700000 ], [ 552022.700000, 217519.700000 ], [ 552009.900000, 217529.000000 ], [ 551995.084000, 217617.821000 ], [ 551980.654000, 217638.251000 ], [ 551963.450000, 217638.839000 ], [ 551929.200000, 217724.000000 ], [ 551878.500000, 217808.200000 ], [ 551842.666000, 217830.417000 ], [ 551835.217000, 217818.435000 ], [ 551844.100000, 217793.400000 ], [ 551841.896000, 217772.498000 ], [ 551815.218000, 217731.805000 ], [ 551787.857000, 217710.357000 ], [ 551764.482000, 217724.310000 ], [ 551749.790000, 217744.230000 ], [ 551732.479000, 217801.602000 ], [ 551720.500000, 217820.600000 ], [ 551694.609000, 217827.636000 ], [ 551615.900000, 217829.100000 ], [ 551574.200000, 217808.700000 ], [ 551524.500000, 217798.100000 ], [ 551502.400000, 217784.100000 ], [ 551484.100000, 217759.700000 ], [ 551478.100000, 217739.600000 ], [ 551489.400000, 217701.800000 ], [ 551417.700000, 217636.500000 ], [ 551360.000000, 217551.600000 ], [ 551376.584000, 217492.233000 ], [ 551356.719000, 217492.223000 ], [ 551316.141000, 217475.831000 ], [ 551308.600000, 217432.300000 ], [ 551234.400000, 217384.300000 ], [ 551217.400000, 217355.100000 ], [ 551165.000000, 217337.400000 ], [ 551127.200000, 217336.800000 ], [ 551102.100000, 217324.200000 ], [ 551088.300000, 217325.000000 ], [ 551080.600000, 217314.300000 ], [ 551084.800000, 217299.800000 ], [ 551079.248000, 217280.203000 ], [ 551075.100000, 217285.500000 ], [ 551055.900000, 217282.500000 ], [ 550499.300000, 217115.600000 ], [ 550479.800000, 217168.500000 ], [ 550476.500000, 217197.700000 ], [ 550487.500000, 217228.700000 ], [ 550511.300000, 217253.000000 ], [ 550514.000000, 217273.900000 ], [ 550504.300000, 217273.900000 ], [ 550433.500000, 217221.400000 ], [ 550352.000000, 217190.100000 ], [ 550305.500000, 217154.900000 ], [ 550234.300000, 217117.900000 ], [ 550134.100000, 217027.400000 ], [ 550116.000000, 217023.000000 ], [ 550099.900000, 217029.400000 ], [ 550066.300000, 217099.700000 ], [ 550063.300000, 217124.700000 ], [ 550090.500000, 217195.200000 ], [ 550111.000000, 217227.200000 ], [ 550131.500000, 217244.500000 ], [ 550131.000000, 217257.500000 ], [ 550121.800000, 217259.000000 ], [ 550094.800000, 217239.200000 ], [ 549970.100000, 217190.100000 ], [ 549934.000000, 217189.800000 ], [ 549893.200000, 217173.500000 ], [ 549870.800000, 217173.600000 ], [ 549842.900000, 217219.700000 ], [ 549841.900000, 217231.500000 ], [ 549875.100000, 217348.200000 ], [ 549834.000000, 217343.500000 ], [ 549792.000000, 217351.100000 ], [ 549752.800000, 217372.300000 ], [ 549771.500000, 217408.100000 ], [ 549722.000000, 217416.300000 ], [ 549711.500000, 217428.300000 ], [ 549749.000000, 217460.100000 ], [ 549751.300000, 217471.800000 ], [ 549744.800000, 217486.800000 ], [ 549716.000000, 217493.800000 ], [ 549660.600000, 217479.400000 ], [ 549672.300000, 217489.400000 ], [ 549684.900000, 217522.300000 ], [ 549717.000000, 217557.800000 ], [ 549727.800000, 217599.600000 ], [ 549748.800000, 217644.100000 ], [ 549575.000000, 217555.200000 ], [ 549547.100000, 217550.800000 ], [ 549443.400000, 217554.000000 ], [ 549374.100000, 217544.200000 ], [ 549261.900000, 217483.700000 ], [ 549071.600000, 217544.700000 ], [ 549020.100000, 217546.200000 ], [ 548965.400000, 217564.500000 ], [ 548949.700000, 217563.700000 ], [ 548836.900000, 217511.700000 ], [ 548827.100000, 217510.400000 ], [ 548809.100000, 217521.900000 ], [ 548809.100000, 217536.900000 ], [ 548860.100000, 217572.200000 ], [ 548910.400000, 217634.900000 ], [ 549041.100000, 217725.400000 ], [ 549162.400000, 217823.900000 ], [ 549229.700000, 217927.100000 ], [ 549272.400000, 217960.200000 ], [ 549318.400000, 217975.200000 ], [ 549346.000000, 218010.000000 ], [ 549371.000000, 218030.200000 ], [ 549377.478000, 218046.273000 ], [ 549374.000000, 218056.200000 ], [ 549340.200000, 218059.200000 ], [ 549296.000000, 218043.500000 ], [ 549255.200000, 218060.500000 ], [ 549221.000000, 218058.500000 ], [ 548925.500000, 217984.100000 ], [ 548756.700000, 217953.600000 ], [ 548476.800000, 217862.700000 ], [ 548317.300000, 217798.800000 ], [ 548056.400000, 217634.100000 ], [ 547656.200000, 217510.600000 ], [ 547608.100000, 217484.800000 ], [ 547536.900000, 217434.300000 ], [ 547481.700000, 217388.100000 ], [ 547441.500000, 217339.100000 ], [ 547409.500000, 217262.900000 ], [ 547406.500000, 217231.900000 ], [ 547415.700000, 217204.600000 ], [ 547438.300000, 217179.100000 ], [ 547509.700000, 217136.900000 ], [ 547557.500000, 217066.100000 ], [ 547584.200000, 217042.100000 ], [ 547611.200000, 217030.600000 ], [ 547650.300000, 216989.500000 ], [ 547667.000000, 216956.900000 ], [ 547699.700000, 216818.100000 ], [ 547759.500000, 216717.600000 ], [ 547767.200000, 216682.700000 ], [ 547766.000000, 216651.600000 ], [ 547757.700000, 216624.600000 ], [ 547731.700000, 216597.100000 ], [ 547726.500000, 216582.400000 ], [ 547729.700000, 216496.900000 ], [ 547715.000000, 216462.900000 ], [ 547704.200000, 216404.700000 ], [ 547682.000000, 216373.400000 ], [ 547655.200000, 216313.600000 ], [ 547636.700000, 216241.100000 ], [ 547596.700000, 216205.400000 ], [ 547573.200000, 216161.300000 ], [ 547565.000000, 216094.900000 ], [ 547576.300000, 216025.100000 ], [ 547573.500000, 215986.200000 ], [ 547565.700000, 215965.100000 ], [ 547528.700000, 215917.500000 ], [ 547483.300000, 215908.600000 ], [ 547460.000000, 215883.500000 ], [ 547405.700000, 215859.500000 ], [ 547387.000000, 215809.700000 ], [ 547332.500000, 215756.800000 ], [ 547299.500000, 215740.400000 ], [ 547291.800000, 215708.700000 ], [ 547281.700000, 215696.900000 ], [ 547245.800000, 215690.700000 ], [ 547202.800000, 215666.100000 ], [ 547168.600000, 215666.300000 ], [ 547146.800000, 215633.700000 ], [ 547109.300000, 215619.200000 ], [ 547090.800000, 215600.200000 ], [ 547043.800000, 215580.200000 ], [ 546969.600000, 215532.100000 ], [ 546866.500000, 215512.500000 ], [ 546810.300000, 215522.500000 ], [ 546740.100000, 215480.700000 ], [ 546721.900000, 215475.900000 ], [ 546692.300000, 215484.900000 ], [ 546652.100000, 215478.800000 ], [ 546621.300000, 215489.200000 ], [ 546605.500000, 215486.700000 ], [ 546581.500000, 215477.500000 ], [ 546545.600000, 215443.900000 ], [ 546503.600000, 215449.900000 ], [ 546480.600000, 215480.500000 ], [ 546468.500000, 215486.000000 ], [ 546301.000000, 215464.100000 ], [ 546226.100000, 215469.400000 ], [ 546161.800000, 215462.500000 ], [ 546108.800000, 215489.500000 ], [ 546057.800000, 215505.300000 ], [ 546023.500000, 215550.000000 ], [ 545961.500000, 215555.800000 ], [ 545932.700000, 215566.700000 ], [ 545864.100000, 215614.900000 ], [ 545806.200000, 215587.700000 ], [ 545788.800000, 215565.400000 ], [ 545729.500000, 215520.300000 ], [ 545684.100000, 215498.200000 ], [ 545663.300000, 215475.500000 ], [ 545603.200000, 215445.500000 ], [ 545520.700000, 215460.800000 ], [ 545476.900000, 215458.800000 ], [ 545449.200000, 215465.900000 ], [ 545401.800000, 215449.800000 ], [ 545317.300000, 215441.000000 ], [ 545231.800000, 215410.500000 ], [ 545090.500000, 215383.500000 ], [ 545052.000000, 215348.000000 ], [ 544996.300000, 215274.300000 ], [ 544973.400000, 215254.100000 ], [ 544932.400000, 215231.900000 ], [ 544861.000000, 215222.300000 ], [ 544843.100000, 215213.600000 ], [ 544724.800000, 215077.800000 ], [ 544700.900000, 215058.000000 ], [ 544657.100000, 215050.500000 ], [ 544608.600000, 215056.000000 ], [ 544585.900000, 215049.800000 ], [ 544574.900000, 215038.500000 ], [ 544572.600000, 215023.000000 ], [ 544606.100000, 214954.000000 ], [ 544628.400000, 214941.300000 ], [ 544728.100000, 214932.500000 ], [ 544740.900000, 214911.100000 ], [ 544734.400000, 214888.800000 ], [ 544716.600000, 214874.900000 ], [ 544661.600000, 214854.500000 ], [ 544612.100000, 214845.000000 ], [ 544574.600000, 214849.100000 ], [ 544496.100000, 214808.300000 ], [ 544431.600000, 214791.000000 ], [ 544360.900000, 214786.000000 ], [ 544330.400000, 214768.300000 ], [ 544328.900000, 214752.800000 ], [ 544334.900000, 214748.300000 ], [ 544463.600000, 214724.500000 ], [ 544511.600000, 214699.500000 ], [ 544566.800000, 214662.400000 ], [ 544606.000000, 214612.800000 ], [ 544613.100000, 214575.300000 ], [ 544629.100000, 214552.800000 ], [ 544642.900000, 214507.300000 ], [ 544639.700000, 214408.000000 ], [ 544625.500000, 214374.100000 ], [ 544572.100000, 214291.800000 ], [ 544550.100000, 214276.000000 ], [ 544515.600000, 214227.800000 ], [ 544490.600000, 214155.500000 ], [ 544492.600000, 214144.300000 ], [ 544554.300000, 214060.100000 ], [ 544660.600000, 214015.000000 ], [ 544688.900000, 213984.000000 ], [ 544675.600000, 213971.000000 ], [ 544647.600000, 213963.500000 ], [ 544591.900000, 213933.000000 ], [ 544541.400000, 213891.300000 ], [ 544497.000000, 213817.700000 ], [ 544429.600000, 213729.500000 ], [ 544291.400000, 213607.300000 ], [ 544205.200000, 213493.800000 ], [ 544182.700000, 213487.800000 ], [ 544158.700000, 213450.400000 ], [ 544142.700000, 213404.300000 ], [ 544143.728000, 213381.936000 ], [ 544181.472000, 213328.683000 ], [ 544199.808000, 213287.936000 ], [ 544222.591000, 213267.763000 ], [ 544215.400000, 213256.300000 ], [ 544242.500000, 213239.600000 ], [ 544250.800000, 213253.300000 ], [ 544296.800000, 213224.500000 ], [ 544286.700000, 213208.500000 ], [ 544320.200000, 213165.300000 ], [ 544349.900000, 213138.000000 ], [ 544395.900000, 213116.800000 ], [ 544418.200000, 213116.500000 ], [ 544432.700000, 213133.300000 ], [ 544440.900000, 213209.300000 ], [ 544486.100000, 213221.500000 ], [ 544501.200000, 213234.000000 ], [ 544531.900000, 213310.600000 ], [ 544525.600000, 213328.000000 ], [ 544546.300000, 213352.200000 ], [ 544555.500000, 213347.200000 ], [ 544587.000000, 213256.700000 ], [ 544709.900000, 213155.000000 ], [ 544807.109000, 213012.980000 ], [ 544819.400000, 213015.300000 ], [ 544895.100000, 213085.900000 ], [ 544944.200000, 213102.500000 ], [ 544950.200000, 213076.500000 ], [ 544932.400000, 213030.500000 ], [ 544937.000000, 212962.000000 ], [ 544962.500000, 212925.200000 ], [ 544976.800000, 212876.000000 ], [ 545012.000000, 212846.000000 ], [ 545055.000000, 212844.000000 ], [ 545062.000000, 212832.000000 ], [ 545037.800000, 212800.500000 ], [ 545020.500000, 212789.500000 ], [ 544988.000000, 212782.500000 ], [ 544983.000000, 212775.800000 ], [ 544981.000000, 212757.800000 ], [ 544992.300000, 212725.800000 ], [ 544988.300000, 212651.000000 ], [ 545055.900000, 212626.900000 ], [ 545081.000000, 212594.800000 ], [ 545091.209000, 212563.847000 ], [ 545101.554000, 212558.218000 ], [ 545127.021000, 212523.074000 ], [ 545177.445000, 212485.892000 ], [ 545223.365000, 212427.672000 ], [ 545264.900000, 212405.000000 ], [ 545368.800000, 212368.000000 ], [ 545421.000000, 212326.400000 ], [ 545502.400000, 212289.200000 ], [ 545597.400000, 212258.800000 ], [ 545660.300000, 212255.300000 ], [ 545678.800000, 212237.300000 ], [ 545685.400000, 212205.300000 ], [ 545855.900000, 212245.500000 ], [ 546086.700000, 212333.800000 ], [ 546214.400000, 212401.800000 ], [ 546420.200000, 212466.000000 ], [ 546453.700000, 212484.300000 ], [ 546655.900000, 212563.000000 ], [ 546699.700000, 212587.300000 ], [ 546766.700000, 212639.000000 ], [ 546782.700000, 212642.500000 ], [ 546787.000000, 212626.200000 ], [ 546703.800000, 212511.600000 ], [ 546594.900000, 212378.100000 ], [ 546577.900000, 212340.500000 ], [ 546567.200000, 212295.500000 ], [ 546499.600000, 212209.400000 ], [ 546485.100000, 212167.700000 ], [ 546489.200000, 212101.300000 ], [ 546497.200000, 212078.600000 ], [ 546529.800000, 212049.000000 ], [ 546659.700000, 212021.500000 ], [ 546720.900000, 211992.300000 ], [ 546816.400000, 211982.000000 ], [ 546868.400000, 212013.000000 ], [ 546905.700000, 212018.500000 ], [ 546917.400000, 212007.300000 ], [ 546926.200000, 211983.000000 ], [ 546954.700000, 211965.500000 ], [ 547037.900000, 211976.000000 ], [ 547065.200000, 211973.800000 ], [ 547068.200000, 211963.300000 ], [ 547061.700000, 211958.800000 ], [ 546960.400000, 211922.600000 ], [ 546870.200000, 211918.800000 ], [ 546846.700000, 211910.800000 ], [ 546849.400000, 211900.000000 ], [ 546918.500000, 211901.000000 ], [ 546962.500000, 211884.500000 ], [ 546988.300000, 211882.000000 ], [ 547160.400000, 211936.000000 ], [ 547251.000000, 211940.800000 ], [ 547334.000000, 211964.800000 ], [ 547456.700000, 212034.300000 ], [ 547464.800000, 212049.500000 ], [ 547526.900000, 211967.500000 ], [ 547726.900000, 212126.800000 ], [ 547762.500000, 212081.000000 ], [ 547777.200000, 212101.200000 ], [ 547809.900000, 212180.900000 ], [ 547870.700000, 212266.700000 ], [ 547905.200000, 212292.900000 ], [ 547960.100000, 212305.729000 ], [ 548170.600000, 212441.000000 ], [ 548444.700000, 212551.800000 ], [ 548489.200000, 212525.300000 ], [ 548631.200000, 212401.800000 ], [ 548641.100000, 212380.000000 ], [ 548856.800000, 212068.800000 ], [ 548914.700000, 211953.000000 ], [ 548959.100000, 211818.800000 ], [ 548981.100000, 211772.400000 ], [ 549016.900000, 211741.400000 ], [ 549122.800000, 211678.400000 ], [ 549145.200000, 211656.100000 ], [ 549158.100000, 211629.300000 ], [ 549157.500000, 211597.900000 ], [ 549144.700000, 211568.900000 ], [ 549045.500000, 211427.800000 ], [ 549039.400000, 211401.600000 ], [ 549037.600000, 211309.900000 ], [ 549030.019000, 211298.694000 ], [ 548985.300000, 211301.200000 ], [ 548971.100000, 211286.400000 ], [ 548986.800000, 211230.900000 ], [ 548966.600000, 211215.700000 ], [ 548968.100000, 211182.700000 ], [ 548961.100000, 211166.900000 ], [ 548942.100000, 211161.400000 ], [ 548910.600000, 211185.900000 ], [ 548912.600000, 211162.400000 ], [ 548906.300000, 211157.400000 ], [ 548875.800000, 211193.400000 ], [ 548858.600000, 211229.400000 ], [ 548849.100000, 211230.400000 ], [ 548837.800000, 211218.900000 ], [ 548829.800000, 211222.900000 ], [ 548828.100000, 211238.700000 ], [ 548806.500000, 211231.600000 ], [ 548820.100000, 211219.300000 ], [ 548845.600000, 211164.500000 ], [ 548953.300000, 211053.500000 ], [ 549009.300000, 211025.200000 ], [ 549081.600000, 211007.200000 ], [ 549092.600000, 210996.400000 ], [ 549045.800000, 211005.500000 ], [ 548982.600000, 210995.000000 ], [ 548899.100000, 210958.000000 ], [ 548826.000000, 210907.900000 ], [ 548846.600000, 210852.100000 ], [ 548848.400000, 210827.400000 ], [ 548803.000000, 210701.000000 ], [ 548788.600000, 210615.300000 ], [ 548787.300000, 210573.600000 ], [ 548808.600000, 210492.400000 ], [ 548800.300000, 210441.100000 ], [ 548735.100000, 210365.500000 ], [ 548688.300000, 210328.100000 ], [ 548608.600000, 210245.600000 ], [ 548592.800000, 210218.000000 ], [ 548561.200000, 210089.400000 ], [ 548533.300000, 210049.600000 ], [ 548251.200000, 209883.500000 ], [ 548151.500000, 209809.700000 ], [ 548092.200000, 209748.800000 ], [ 548023.200000, 209692.600000 ], [ 548011.300000, 209652.800000 ], [ 547970.100000, 209579.900000 ], [ 547920.200000, 209466.400000 ], [ 547902.600000, 209378.200000 ], [ 547873.300000, 209328.000000 ], [ 547872.300000, 209290.100000 ], [ 547851.500000, 209244.400000 ], [ 547831.000000, 209223.900000 ], [ 547739.300000, 209164.900000 ], [ 547642.500000, 209038.600000 ], [ 547582.800000, 209008.600000 ], [ 547551.700000, 208981.800000 ], [ 547731.800000, 208969.800000 ], [ 547781.700000, 208962.600000 ], [ 547833.500000, 208942.300000 ], [ 547831.700000, 208932.800000 ], [ 547818.000000, 208924.300000 ], [ 547746.000000, 208890.900000 ], [ 547532.700000, 208772.800000 ], [ 547467.500000, 208695.800000 ], [ 547472.000000, 208677.100000 ], [ 547554.100000, 208592.500000 ], [ 547637.100000, 208555.000000 ], [ 547748.700000, 208526.400000 ], [ 547753.500000, 208504.200000 ], [ 547713.100000, 208421.100000 ], [ 547700.400000, 208414.300000 ], [ 547661.800000, 208416.100000 ], [ 547603.200000, 208403.000000 ], [ 547538.500000, 208353.000000 ], [ 547512.200000, 208296.600000 ], [ 547508.900000, 208181.400000 ], [ 547439.800000, 208099.900000 ], [ 547421.600000, 208068.100000 ], [ 547404.700000, 208055.700000 ], [ 547317.100000, 208020.700000 ], [ 547259.600000, 208024.700000 ], [ 547227.900000, 208012.900000 ], [ 547210.600000, 208001.400000 ], [ 547185.600000, 207950.200000 ], [ 547127.000000, 207915.400000 ], [ 547059.400000, 207885.900000 ], [ 547055.000000, 207852.100000 ], [ 547027.300000, 207864.800000 ], [ 547004.300000, 207866.800000 ], [ 546946.300000, 207852.000000 ], [ 546894.000000, 207815.300000 ], [ 546819.400000, 207747.100000 ], [ 546754.400000, 207674.300000 ], [ 546623.500000, 207505.300000 ], [ 546609.500000, 207474.300000 ], [ 546601.000000, 207411.300000 ], [ 546582.800000, 207424.300000 ], [ 546575.300000, 207459.800000 ], [ 546562.200000, 207457.900000 ], [ 546537.400000, 207306.800000 ], [ 546517.500000, 207225.800000 ], [ 546506.500000, 207213.000000 ], [ 546495.800000, 207204.000000 ], [ 546470.300000, 207208.000000 ], [ 546439.300000, 207288.300000 ], [ 546408.800000, 207282.000000 ], [ 546386.700000, 207265.100000 ], [ 546308.900000, 207134.400000 ], [ 546043.000000, 206763.200000 ], [ 545971.300000, 206529.000000 ], [ 545904.900000, 206438.100000 ], [ 545898.900000, 206421.700000 ], [ 545897.600000, 206330.000000 ], [ 545903.600000, 206284.300000 ], [ 545895.100000, 206249.800000 ], [ 545898.800000, 206217.300000 ], [ 545870.600000, 206149.800000 ], [ 545852.300000, 206039.500000 ], [ 545830.600000, 206000.000000 ], [ 545793.700000, 205973.200000 ], [ 545764.100000, 205960.600000 ], [ 545710.200000, 205951.000000 ], [ 545652.200000, 205952.600000 ], [ 545580.700000, 205930.500000 ], [ 545529.900000, 205927.900000 ], [ 545409.700000, 205853.600000 ], [ 545220.200000, 205796.700000 ], [ 545107.600000, 205742.300000 ], [ 544996.600000, 205706.700000 ], [ 544929.600000, 205758.200000 ], [ 544886.500000, 205798.900000 ], [ 544876.900000, 205817.200000 ], [ 544830.600000, 205819.000000 ], [ 544790.800000, 205833.300000 ], [ 544763.500000, 205824.800000 ], [ 544676.300000, 205778.900000 ], [ 544574.200000, 205747.300000 ], [ 544563.100000, 205730.100000 ], [ 544551.200000, 205679.300000 ], [ 544535.500000, 205656.400000 ], [ 544483.600000, 205619.400000 ], [ 544472.300000, 205599.700000 ], [ 544456.600000, 205544.200000 ], [ 544416.200000, 205314.700000 ], [ 544400.100000, 205277.100000 ], [ 544357.200000, 205250.900000 ], [ 544038.300000, 205107.900000 ], [ 543943.100000, 205042.500000 ], [ 543770.300000, 204864.400000 ], [ 543628.500000, 204609.400000 ], [ 543486.500000, 204498.300000 ], [ 543478.900000, 204472.100000 ], [ 543481.900000, 204441.600000 ], [ 543474.900000, 204427.300000 ], [ 543366.600000, 204383.800000 ], [ 543373.900000, 204377.800000 ], [ 543465.200000, 204361.600000 ], [ 543364.900000, 204241.300000 ], [ 543388.900000, 204208.100000 ], [ 543395.200000, 204150.300000 ], [ 543403.300000, 204132.300000 ], [ 543317.600000, 204116.400000 ], [ 543215.200000, 204127.000000 ], [ 543215.500000, 204044.800000 ], [ 543286.900000, 204042.700000 ], [ 543312.600000, 204026.100000 ], [ 543381.100000, 203916.200000 ], [ 543436.700000, 203853.900000 ], [ 543456.900000, 203837.000000 ], [ 543521.900000, 203816.000000 ], [ 543685.000000, 203666.100000 ], [ 543825.300000, 203462.100000 ], [ 543724.100000, 203411.900000 ], [ 543619.300000, 203398.800000 ], [ 543349.800000, 203288.500000 ], [ 543009.800000, 203083.100000 ], [ 542913.600000, 203041.400000 ], [ 542822.500000, 202956.900000 ], [ 542675.200000, 202789.500000 ], [ 542531.900000, 202651.100000 ], [ 542356.500000, 202542.700000 ], [ 542258.500000, 202503.500000 ], [ 542172.800000, 202451.600000 ], [ 542120.800000, 202434.100000 ], [ 542111.500000, 202416.900000 ], [ 542003.100000, 202365.500000 ], [ 541852.700000, 202305.800000 ], [ 541623.200000, 202226.200000 ], [ 541520.800000, 202204.600000 ], [ 541417.500000, 202193.100000 ], [ 541291.900000, 202148.000000 ], [ 541191.100000, 202131.900000 ], [ 541128.900000, 202102.600000 ], [ 541061.100000, 202098.100000 ], [ 541039.400000, 202085.000000 ], [ 541010.300000, 202039.800000 ], [ 540957.100000, 202032.300000 ], [ 540883.700000, 201992.700000 ], [ 540871.500000, 201958.900000 ], [ 540861.100000, 201953.000000 ], [ 540812.600000, 201951.200000 ], [ 540778.200000, 201960.700000 ], [ 540736.800000, 202014.400000 ], [ 540724.000000, 202018.300000 ], [ 540680.400000, 202004.300000 ], [ 540636.200000, 201978.800000 ], [ 540568.400000, 201987.700000 ], [ 540454.500000, 202028.500000 ], [ 540488.300000, 201987.200000 ], [ 540399.300000, 201821.900000 ], [ 540389.700000, 201808.700000 ], [ 540322.000000, 201760.700000 ], [ 540300.200000, 201725.300000 ], [ 540298.700000, 201702.000000 ], [ 540306.800000, 201686.900000 ], [ 540331.000000, 201670.500000 ], [ 540330.800000, 201654.300000 ], [ 540291.600000, 201573.900000 ], [ 540254.300000, 201519.000000 ], [ 540264.300000, 201486.800000 ], [ 540260.500000, 201475.500000 ], [ 540198.000000, 201417.500000 ], [ 540193.000000, 201398.000000 ], [ 540203.200000, 201366.100000 ], [ 540202.300000, 201332.000000 ], [ 540182.600000, 201252.300000 ], [ 540117.500000, 201183.500000 ], [ 540090.800000, 201203.500000 ], [ 540068.800000, 201204.000000 ], [ 540009.300000, 201041.300000 ], [ 539973.500000, 200995.300000 ], [ 539940.000000, 200975.800000 ], [ 539797.000000, 200946.600000 ], [ 539762.800000, 200929.100000 ], [ 539693.200000, 200876.900000 ], [ 539736.000000, 200889.000000 ], [ 539741.000000, 200880.300000 ], [ 539719.400000, 200843.300000 ], [ 539670.300000, 200793.600000 ], [ 539648.900000, 200735.100000 ], [ 539633.300000, 200710.100000 ], [ 539590.300000, 200675.900000 ], [ 539489.200000, 200558.000000 ], [ 539453.900000, 200531.900000 ], [ 539430.800000, 200493.300000 ], [ 539426.500000, 200452.000000 ], [ 539414.600000, 200436.700000 ], [ 539329.100000, 200370.300000 ], [ 539175.900000, 200168.500000 ], [ 539148.800000, 200108.000000 ], [ 539148.500000, 200090.000000 ], [ 539180.800000, 200061.500000 ], [ 539164.900000, 199991.200000 ], [ 539185.200000, 199929.200000 ], [ 539190.400000, 199877.600000 ], [ 539184.700000, 199862.300000 ], [ 539115.900000, 199774.100000 ], [ 539122.000000, 199657.400000 ], [ 539094.100000, 199599.500000 ], [ 539091.500000, 199533.700000 ], [ 539071.200000, 199476.200000 ], [ 539081.400000, 199413.600000 ], [ 539049.500000, 199366.700000 ], [ 538959.100000, 199276.200000 ], [ 538914.000000, 199193.400000 ], [ 538906.300000, 199115.600000 ], [ 538888.100000, 199071.200000 ], [ 538853.000000, 198881.400000 ], [ 538849.700000, 198814.500000 ], [ 538830.200000, 198781.700000 ], [ 538794.200000, 198754.800000 ], [ 538653.500000, 198675.000000 ], [ 538624.800000, 198615.600000 ], [ 538559.000000, 198580.200000 ], [ 538537.900000, 198556.200000 ], [ 538523.800000, 198525.900000 ], [ 538525.400000, 198491.700000 ], [ 538581.800000, 198386.500000 ], [ 538605.100000, 198372.800000 ], [ 538754.200000, 198342.100000 ], [ 538824.900000, 198358.400000 ], [ 538871.800000, 198359.100000 ], [ 538990.500000, 198343.800000 ], [ 539000.200000, 198335.800000 ], [ 538998.200000, 198326.200000 ], [ 538986.500000, 198319.300000 ], [ 538911.900000, 198305.800000 ], [ 538822.200000, 198265.700000 ], [ 538751.700000, 198201.800000 ], [ 538643.600000, 198126.000000 ], [ 538530.100000, 198084.000000 ], [ 538476.100000, 198090.300000 ], [ 538429.500000, 198085.100000 ], [ 538411.200000, 198080.100000 ], [ 538405.100000, 198065.200000 ], [ 538527.700000, 197974.800000 ], [ 538579.200000, 197972.500000 ], [ 538612.200000, 197983.000000 ], [ 538631.100000, 197967.100000 ], [ 538505.900000, 197890.100000 ], [ 538532.400000, 197855.100000 ], [ 538601.800000, 197706.500000 ], [ 538617.900000, 197579.700000 ], [ 538624.900000, 197403.400000 ], [ 538650.400000, 197339.200000 ], [ 538685.200000, 197289.400000 ], [ 538707.400000, 197244.900000 ], [ 538711.000000, 197206.800000 ], [ 538729.100000, 197191.300000 ], [ 538765.500000, 197201.700000 ], [ 538791.300000, 197227.400000 ], [ 538819.400000, 197390.700000 ], [ 538844.700000, 197449.900000 ], [ 538885.900000, 197499.100000 ], [ 539178.900000, 197737.600000 ], [ 539230.980000, 197802.977000 ], [ 539249.800000, 197814.500000 ], [ 539297.300000, 197865.400000 ], [ 539412.100000, 197939.700000 ], [ 539497.300000, 198034.900000 ], [ 539530.300000, 198063.100000 ], [ 539665.500000, 198150.900000 ], [ 539748.700000, 198164.900000 ], [ 539879.900000, 198169.000000 ], [ 539929.400000, 198181.900000 ], [ 539998.200000, 198189.800000 ], [ 540062.137000, 198176.394000 ], [ 540058.500000, 198138.100000 ], [ 540127.300000, 198130.900000 ], [ 540170.700000, 198134.200000 ], [ 540209.300000, 198142.300000 ], [ 540325.800000, 198187.500000 ], [ 540479.900000, 198207.400000 ], [ 540539.000000, 198207.200000 ], [ 540639.300000, 198241.200000 ], [ 540758.200000, 198306.600000 ], [ 540805.600000, 198324.600000 ], [ 540914.700000, 198329.400000 ], [ 541073.400000, 198317.100000 ], [ 541140.000000, 198323.200000 ], [ 541224.800000, 198347.700000 ], [ 541300.000000, 198390.900000 ], [ 541390.100000, 198455.100000 ], [ 541436.600000, 198497.400000 ], [ 541469.900000, 198542.000000 ], [ 541506.200000, 198625.700000 ], [ 541569.200000, 198637.900000 ], [ 541573.600000, 198695.300000 ], [ 541582.400000, 198710.200000 ], [ 541684.300000, 198785.800000 ], [ 541692.400000, 198800.700000 ], [ 541707.900000, 198791.900000 ], [ 541763.400000, 198808.200000 ], [ 541813.400000, 198805.900000 ], [ 541886.400000, 198781.900000 ], [ 541986.200000, 198735.100000 ], [ 541965.200000, 198647.800000 ], [ 542002.500000, 198554.700000 ], [ 542018.400000, 198490.100000 ], [ 542021.600000, 198452.300000 ], [ 542010.700000, 198334.700000 ], [ 542016.900000, 198296.000000 ], [ 542050.500000, 198262.100000 ], [ 542083.500000, 198249.300000 ], [ 542158.200000, 198260.300000 ], [ 542230.500000, 198248.800000 ], [ 542275.800000, 198264.300000 ], [ 542365.500000, 198328.400000 ], [ 542432.400000, 198344.500000 ], [ 542500.600000, 198387.500000 ], [ 542551.600000, 198380.800000 ], [ 542606.200000, 198414.300000 ], [ 542679.600000, 198403.600000 ], [ 542730.500000, 198417.400000 ], [ 542750.700000, 198413.400000 ], [ 542773.900000, 198388.800000 ], [ 542839.900000, 198384.300000 ], [ 542869.000000, 198386.800000 ], [ 543019.100000, 198432.800000 ], [ 543065.400000, 198428.100000 ], [ 543168.000000, 198503.900000 ], [ 543201.800000, 198502.800000 ], [ 543330.700000, 198550.900000 ], [ 543384.100000, 198560.100000 ], [ 543566.400000, 198617.400000 ], [ 543691.200000, 198669.600000 ], [ 543754.400000, 198711.500000 ], [ 543810.900000, 198722.600000 ], [ 543863.000000, 198747.900000 ], [ 543957.000000, 198758.400000 ], [ 544097.400000, 198854.400000 ], [ 544118.100000, 198874.400000 ], [ 544133.900000, 198876.400000 ], [ 544144.900000, 198863.400000 ], [ 544143.400000, 198851.600000 ], [ 544096.300000, 198834.500000 ], [ 544065.100000, 198786.900000 ], [ 544011.900000, 198726.800000 ], [ 543973.600000, 198703.200000 ], [ 543962.000000, 198687.500000 ], [ 543843.200000, 198596.500000 ], [ 543788.500000, 198560.900000 ], [ 543736.100000, 198540.300000 ], [ 543676.800000, 198504.200000 ], [ 543655.000000, 198479.500000 ], [ 543480.000000, 198357.300000 ], [ 543444.700000, 198311.900000 ], [ 543305.200000, 198199.500000 ], [ 543047.800000, 198036.500000 ], [ 542986.600000, 197988.700000 ], [ 542942.500000, 197966.900000 ], [ 542889.500000, 197916.500000 ], [ 542746.900000, 197852.800000 ], [ 542486.700000, 197669.300000 ], [ 542397.600000, 197622.800000 ], [ 542306.800000, 197550.600000 ], [ 542152.100000, 197450.200000 ], [ 542065.200000, 197363.500000 ], [ 542007.900000, 197322.300000 ], [ 541890.600000, 197267.400000 ], [ 541872.900000, 197248.000000 ], [ 541858.300000, 197173.800000 ], [ 541880.100000, 197156.700000 ], [ 541942.300000, 197160.600000 ], [ 542100.200000, 197209.700000 ], [ 542206.400000, 197271.400000 ], [ 542265.600000, 197285.400000 ], [ 542296.300000, 197300.900000 ], [ 542380.600000, 197362.300000 ], [ 542414.000000, 197374.400000 ], [ 542460.300000, 197407.600000 ], [ 542534.300000, 197445.500000 ], [ 542614.500000, 197437.100000 ], [ 542673.500000, 197406.800000 ], [ 542749.600000, 197429.400000 ], [ 542790.600000, 197469.600000 ], [ 542840.574000, 197491.363000 ], [ 542941.000000, 197491.600000 ], [ 542737.600000, 197321.800000 ], [ 542711.900000, 197290.800000 ], [ 542704.300000, 197266.000000 ], [ 542701.800000, 197246.900000 ], [ 542728.000000, 197018.700000 ], [ 542740.100000, 196996.400000 ], [ 542804.100000, 196957.400000 ], [ 542902.000000, 196950.200000 ], [ 543065.000000, 196970.900000 ], [ 543120.500000, 196936.600000 ], [ 543198.600000, 197019.800000 ], [ 543249.400000, 197048.600000 ], [ 543292.400000, 197047.600000 ], [ 543362.500000, 197013.500000 ], [ 543415.100000, 197007.300000 ], [ 543447.600000, 197015.100000 ], [ 543526.200000, 197085.800000 ], [ 543575.800000, 197104.600000 ], [ 543633.000000, 197098.300000 ], [ 543653.500000, 197079.300000 ], [ 543665.200000, 197085.300000 ], [ 543850.700000, 197074.300000 ], [ 543880.000000, 197081.300000 ], [ 543908.100000, 197096.600000 ], [ 543953.700000, 197134.800000 ], [ 544118.200000, 197394.300000 ], [ 544175.700000, 197456.800000 ], [ 544207.500000, 197472.700000 ], [ 544233.600000, 197497.900000 ], [ 544244.900000, 197523.900000 ], [ 544229.600000, 197590.400000 ], [ 544231.100000, 197636.000000 ], [ 544279.700000, 197712.100000 ], [ 544301.200000, 197760.600000 ], [ 544333.800000, 197795.300000 ], [ 544356.900000, 197804.100000 ], [ 544414.400000, 197806.100000 ], [ 544479.289000, 197833.765000 ], [ 544551.795000, 197809.892000 ], [ 544592.516000, 197810.130000 ], [ 544634.100000, 197822.700000 ], [ 544682.768000, 197847.993000 ], [ 544698.700000, 197785.700000 ], [ 544716.000000, 197766.200000 ], [ 544776.300000, 197711.900000 ], [ 544827.000000, 197698.600000 ], [ 544861.300000, 197683.400000 ], [ 544878.900000, 197666.900000 ], [ 544944.900000, 197561.700000 ], [ 545010.000000, 197485.200000 ], [ 545036.400000, 197435.600000 ], [ 545064.000000, 197362.000000 ], [ 545106.700000, 197314.700000 ], [ 545118.700000, 197280.500000 ], [ 545153.200000, 197223.300000 ], [ 545166.500000, 197220.400000 ], [ 545203.800000, 197233.500000 ], [ 545284.600000, 197229.700000 ], [ 545326.600000, 197243.900000 ], [ 545434.882000, 197302.236000 ], [ 545466.497000, 197240.805000 ], [ 545375.300000, 197158.500000 ], [ 545230.200000, 196995.300000 ], [ 545176.300000, 196943.900000 ], [ 545130.500000, 196832.700000 ], [ 545126.300000, 196685.500000 ], [ 545113.400000, 196610.400000 ], [ 545077.900000, 196528.500000 ], [ 545055.500000, 196442.200000 ], [ 544998.800000, 196375.300000 ], [ 544982.000000, 196335.500000 ], [ 544978.600000, 196308.000000 ], [ 544983.800000, 196267.100000 ], [ 544959.900000, 196286.800000 ], [ 544918.800000, 196293.500000 ], [ 544851.300000, 196294.800000 ], [ 544723.800000, 196285.600000 ], [ 544699.200000, 196272.500000 ], [ 544602.200000, 196140.900000 ], [ 544539.300000, 196096.900000 ], [ 544504.400000, 196012.900000 ], [ 544467.900000, 195969.200000 ], [ 544462.900000, 195949.600000 ], [ 544467.100000, 195917.400000 ], [ 544453.600000, 195874.600000 ], [ 544435.700000, 195855.500000 ], [ 544363.900000, 195823.200000 ], [ 544337.300000, 195803.000000 ], [ 544310.700000, 195758.500000 ], [ 544221.200000, 195678.400000 ], [ 544151.100000, 195595.200000 ], [ 544137.100000, 195590.400000 ], [ 544126.500000, 195562.500000 ], [ 543999.700000, 195353.500000 ], [ 543945.300000, 195300.300000 ], [ 543847.400000, 195181.600000 ], [ 543810.400000, 195151.300000 ], [ 543715.700000, 195114.100000 ], [ 543677.995000, 195084.653000 ], [ 543638.000000, 195035.600000 ], [ 543595.800000, 194959.100000 ], [ 543572.700000, 194878.200000 ], [ 543518.200000, 194799.100000 ], [ 543468.500000, 194679.600000 ], [ 543435.100000, 194622.200000 ], [ 543382.477000, 194560.997000 ], [ 543185.900000, 194400.100000 ], [ 543163.400000, 194374.800000 ], [ 543153.600000, 194345.100000 ], [ 543160.400000, 194235.200000 ], [ 543106.900000, 194276.600000 ], [ 543081.600000, 194285.900000 ], [ 543051.400000, 194286.300000 ], [ 543007.400000, 194302.800000 ], [ 542893.600000, 194295.800000 ], [ 542814.400000, 194265.300000 ], [ 542736.866000, 194173.763000 ], [ 542734.894000, 194157.843000 ], [ 542705.800000, 194105.800000 ], [ 542701.400000, 194024.100000 ], [ 542689.507000, 193986.831000 ], [ 542646.200000, 193936.400000 ], [ 542597.100000, 193896.100000 ], [ 542549.300000, 193872.800000 ], [ 542428.200000, 193855.500000 ], [ 542336.600000, 193825.100000 ], [ 542292.904000, 193803.114000 ], [ 542220.200000, 193741.800000 ], [ 542189.900000, 193706.700000 ], [ 542172.000000, 193681.500000 ], [ 542163.800000, 193634.300000 ], [ 542137.000000, 193605.100000 ], [ 542134.978000, 193593.096000 ], [ 542050.100000, 193573.800000 ], [ 541960.250000, 193538.915000 ], [ 541818.668000, 193538.252000 ], [ 541661.000000, 193446.300000 ], [ 541652.300000, 193429.900000 ], [ 541597.399000, 193400.443000 ], [ 541580.227000, 193407.324000 ], [ 541547.900000, 193438.700000 ], [ 541402.700000, 193448.900000 ], [ 541343.200000, 193469.200000 ], [ 541228.000000, 193453.400000 ], [ 541199.500000, 193436.400000 ], [ 541188.800000, 193437.000000 ], [ 541057.800000, 193342.400000 ], [ 541036.900000, 193321.500000 ], [ 540997.200000, 193261.700000 ], [ 540874.300000, 193155.000000 ], [ 540821.800000, 193120.900000 ], [ 540757.900000, 193095.700000 ], [ 540721.000000, 193004.100000 ], [ 540639.000000, 192941.500000 ], [ 540632.500000, 192771.900000 ], [ 540659.700000, 192720.100000 ], [ 540709.800000, 192659.000000 ], [ 540717.000000, 192605.700000 ], [ 540655.000000, 192557.900000 ], [ 540616.500000, 192519.500000 ], [ 540590.600000, 192520.500000 ], [ 540520.100000, 192502.000000 ], [ 540427.100000, 192456.800000 ], [ 540226.100000, 192379.000000 ], [ 540182.800000, 192348.500000 ], [ 540103.000000, 192329.400000 ], [ 540048.200000, 192340.200000 ], [ 539954.000000, 192306.300000 ], [ 539872.100000, 192302.400000 ], [ 539829.500000, 192324.100000 ], [ 539478.700000, 192403.200000 ], [ 539435.100000, 192409.600000 ], [ 539305.200000, 192408.100000 ], [ 539212.100000, 192514.300000 ], [ 539182.100000, 192520.000000 ], [ 539233.600000, 192386.800000 ], [ 539228.100000, 192283.400000 ], [ 539212.800000, 192242.900000 ], [ 539191.600000, 192209.000000 ], [ 539041.100000, 192046.700000 ], [ 538923.900000, 191965.500000 ], [ 538896.900000, 191930.500000 ], [ 538824.400000, 191765.200000 ], [ 538803.100000, 191743.200000 ], [ 538318.600000, 191427.200000 ], [ 538110.200000, 191353.400000 ], [ 538056.000000, 191328.800000 ], [ 537280.800000, 190874.600000 ], [ 537219.100000, 190845.900000 ], [ 536463.300000, 190556.500000 ], [ 536461.096000, 190584.789000 ], [ 536448.000000, 190592.700000 ], [ 536417.200000, 190602.000000 ], [ 536306.100000, 190610.600000 ], [ 535867.900000, 190612.600000 ], [ 535816.400000, 190604.600000 ], [ 535717.100000, 190604.900000 ], [ 535525.400000, 190562.000000 ], [ 535466.700000, 190526.200000 ], [ 535430.700000, 190487.800000 ], [ 535392.800000, 190460.700000 ], [ 535301.002000, 190430.137000 ], [ 535240.500000, 190369.400000 ], [ 535154.284000, 190247.625000 ], [ 535022.800000, 190168.600000 ], [ 534862.600000, 190115.700000 ], [ 534791.396000, 190059.308000 ], [ 534711.900000, 190033.420000 ], [ 534602.800000, 189956.600000 ], [ 534522.700000, 189932.600000 ], [ 534483.300000, 189901.200000 ], [ 534399.207000, 189875.979000 ], [ 534366.000000, 189898.300000 ], [ 534338.300000, 189907.800000 ], [ 534257.000000, 189874.200000 ], [ 534194.300000, 189817.500000 ], [ 534066.800000, 189723.600000 ], [ 534034.900000, 189680.900000 ], [ 534006.100000, 189655.300000 ], [ 533894.100000, 189570.700000 ], [ 533791.400000, 189428.600000 ], [ 533725.600000, 189363.100000 ], [ 533645.600000, 189329.500000 ], [ 533475.800000, 189300.000000 ], [ 533460.500000, 189292.100000 ], [ 533435.900000, 189237.100000 ], [ 533398.800000, 189192.300000 ], [ 533416.700000, 189130.100000 ], [ 533416.800000, 189107.100000 ], [ 533384.300000, 189032.600000 ], [ 533353.600000, 188985.700000 ], [ 533321.000000, 188951.300000 ], [ 533301.500000, 188913.800000 ], [ 533267.500000, 188885.800000 ], [ 533204.800000, 188805.600000 ], [ 533190.500000, 188796.000000 ], [ 533158.500000, 188687.400000 ], [ 533164.000000, 188580.300000 ], [ 533117.000000, 188486.600000 ], [ 533118.600000, 188458.700000 ], [ 533095.400000, 188441.200000 ], [ 532949.100000, 188275.500000 ], [ 532937.900000, 188186.100000 ], [ 532926.900000, 188160.300000 ], [ 532922.600000, 188124.500000 ], [ 532889.400000, 188025.000000 ], [ 532834.900000, 187804.100000 ], [ 532782.691000, 187671.334000 ], [ 532784.800000, 187653.100000 ], [ 532771.029000, 187602.258000 ], [ 532762.600000, 187608.800000 ], [ 532689.900000, 187617.300000 ], [ 532657.972000, 187588.512000 ], [ 532625.215000, 187544.603000 ], [ 532558.200000, 187423.200000 ], [ 532531.700000, 187389.700000 ], [ 532507.200000, 187382.100000 ], [ 532436.100000, 187338.900000 ], [ 532364.932000, 187344.463000 ], [ 532348.500000, 187338.400000 ], [ 532268.400000, 187248.000000 ], [ 532204.292000, 187147.675000 ], [ 532148.700000, 187122.800000 ], [ 532110.200000, 187076.300000 ], [ 532029.600000, 187058.500000 ], [ 532004.000000, 187059.000000 ], [ 531710.900000, 186932.000000 ], [ 531672.100000, 186974.300000 ], [ 531650.927000, 186986.000000 ], [ 531615.302000, 186994.302000 ], [ 531648.700000, 187030.000000 ], [ 531678.700000, 187078.800000 ], [ 531737.900000, 187226.200000 ], [ 531815.100000, 187321.800000 ], [ 531835.400000, 187398.300000 ], [ 531883.300000, 187463.600000 ], [ 531885.911000, 187477.664000 ], [ 531874.476000, 187482.515000 ], [ 531824.000000, 187449.500000 ], [ 531648.500000, 187395.000000 ], [ 531497.396000, 187364.073000 ], [ 531483.323000, 187371.727000 ], [ 531481.356000, 187383.865000 ], [ 531446.900000, 187384.000000 ], [ 531408.800000, 187366.600000 ], [ 531339.500000, 187310.000000 ], [ 531275.238000, 187241.304000 ], [ 531258.600000, 187230.700000 ], [ 531231.100000, 187226.700000 ], [ 531195.600000, 187244.000000 ], [ 531178.500000, 187241.800000 ], [ 531118.144000, 187214.736000 ], [ 531074.900000, 187160.300000 ], [ 530951.300000, 187074.200000 ], [ 530894.400000, 187058.200000 ], [ 530841.000000, 187055.400000 ], [ 530733.000000, 187008.900000 ], [ 530650.600000, 186946.500000 ], [ 530582.100000, 186911.600000 ], [ 530371.400000, 186750.600000 ], [ 530323.300000, 186692.700000 ], [ 530205.300000, 186524.900000 ], [ 530158.600000, 186493.900000 ], [ 530121.200000, 186477.800000 ], [ 530019.900000, 186461.100000 ], [ 529959.900000, 186440.600000 ], [ 529848.300000, 186362.600000 ], [ 529782.300000, 186390.900000 ], [ 529671.600000, 186379.100000 ], [ 529396.700000, 186297.800000 ], [ 529359.600000, 186291.800000 ], [ 529329.300000, 186295.300000 ], [ 529306.100000, 186316.300000 ], [ 529304.800000, 186370.300000 ], [ 529360.600000, 186512.900000 ], [ 529384.700000, 186596.700000 ], [ 529382.800000, 186617.800000 ], [ 529370.300000, 186633.200000 ], [ 529352.900000, 186640.500000 ], [ 529271.400000, 186621.200000 ], [ 529062.800000, 186533.300000 ], [ 528966.300000, 186424.600000 ], [ 528772.400000, 186322.000000 ], [ 528679.429000, 186237.615000 ] ], [ [ 528619.700000, 186175.200000 ], [ 528576.713000, 186210.540000 ], [ 528587.948000, 186362.542000 ], [ 528610.336000, 186267.785000 ], [ 528655.508000, 186240.143000 ], [ 528679.429000, 186237.615000 ] ], [ [ 611389.500000, 266370.000000 ], [ 611407.600000, 266352.400000 ], [ 611419.800000, 266327.900000 ], [ 611543.100000, 266261.700000 ], [ 611549.923000, 266245.014000 ], [ 611650.650000, 266193.974000 ], [ 611592.700000, 266093.400000 ], [ 611529.800000, 266120.300000 ], [ 611496.900000, 266071.700000 ], [ 611391.400000, 266127.100000 ], [ 611286.362000, 266146.335000 ], [ 611247.774000, 266073.151000 ], [ 611223.900000, 266087.000000 ], [ 611156.000000, 265965.900000 ] ], [ [ 528586.900000, 186083.000000 ], [ 528660.500000, 186118.600000 ], [ 528638.755000, 186125.669000 ], [ 528678.900000, 186155.900000 ], [ 528707.400000, 186185.500000 ], [ 528709.100000, 186196.300000 ], [ 528646.400000, 186169.500000 ], [ 528619.700000, 186175.200000 ] ], [ [ 528586.900000, 186083.000000 ], [ 528563.800000, 186090.100000 ], [ 528542.500000, 186060.300000 ], [ 528515.923000, 185867.558000 ], [ 528521.846000, 185842.095000 ] ], [ [ 553955.700000, 217170.700000 ], [ 554001.900000, 217098.000000 ], [ 553939.600000, 217052.400000 ], [ 553928.300000, 217055.600000 ], [ 553809.900000, 217034.700000 ], [ 553731.400000, 216974.800000 ], [ 553489.700000, 216769.000000 ], [ 553192.200000, 217077.200000 ], [ 553364.500000, 217241.900000 ] ], [ [ 553955.700000, 217170.700000 ], [ 553887.100000, 217293.700000 ], [ 553838.800000, 217443.200000 ], [ 553841.800000, 217457.900000 ], [ 553878.300000, 217519.700000 ], [ 553889.100000, 217623.200000 ], [ 553950.300000, 217764.200000 ], [ 554085.600000, 217964.400000 ], [ 554139.000000, 218026.000000 ], [ 554226.804000, 218105.251000 ], [ 554276.872000, 218111.111000 ], [ 554322.286000, 218142.100000 ], [ 554761.400000, 218329.400000 ], [ 554834.600000, 218370.900000 ], [ 554921.600000, 218432.400000 ], [ 554953.800000, 218531.000000 ], [ 555031.700000, 218647.800000 ], [ 555041.500000, 218671.500000 ], [ 555036.600000, 218703.700000 ], [ 555015.900000, 218755.100000 ], [ 554950.400000, 218886.400000 ], [ 555058.600000, 218959.400000 ], [ 555210.900000, 219037.900000 ], [ 555265.900000, 219093.600000 ], [ 555297.100000, 219175.400000 ], [ 555256.900000, 219253.400000 ], [ 555277.700000, 219323.600000 ], [ 555274.400000, 219374.800000 ], [ 555261.400000, 219430.400000 ], [ 555264.900000, 219450.600000 ], [ 555291.100000, 219503.100000 ], [ 555307.400000, 219511.900000 ], [ 555531.900000, 219732.300000 ], [ 555541.600000, 219777.100000 ], [ 555539.100000, 219861.800000 ], [ 555544.600000, 219887.600000 ], [ 555579.900000, 219968.100000 ], [ 555621.900000, 220100.600000 ], [ 555613.900000, 220143.100000 ], [ 555585.100000, 220173.800000 ], [ 555578.900000, 220194.300000 ], [ 555803.600000, 220449.500000 ], [ 555834.600000, 220477.600000 ], [ 555904.100000, 220523.600000 ], [ 556051.400000, 220647.300000 ], [ 556069.600000, 220657.600000 ], [ 556130.400000, 220665.300000 ], [ 556181.600000, 220685.600000 ], [ 556258.600000, 220747.100000 ], [ 556367.600000, 220777.000000 ], [ 556536.800000, 220883.600000 ], [ 556665.329000, 220920.007000 ], [ 556754.000000, 220921.100000 ], [ 556940.492000, 221024.539000 ], [ 557033.100000, 221021.500000 ], [ 557075.800000, 221035.800000 ], [ 557100.100000, 221017.200000 ], [ 557129.100000, 221012.200000 ], [ 557226.100000, 221003.000000 ], [ 557380.600000, 221006.200000 ], [ 557396.100000, 220998.500000 ], [ 557392.100000, 220960.500000 ], [ 557401.400000, 220955.000000 ], [ 557447.093000, 220987.397000 ], [ 557472.100000, 220986.700000 ], [ 557487.400000, 220962.500000 ], [ 557465.100000, 220930.500000 ], [ 557461.600000, 220895.500000 ], [ 557474.400000, 220880.700000 ], [ 557489.400000, 220879.500000 ], [ 557483.900000, 220912.200000 ], [ 557499.400000, 220928.700000 ], [ 557542.900000, 220958.000000 ], [ 557559.100000, 220980.000000 ], [ 557609.100000, 220987.700000 ], [ 557643.400000, 221025.500000 ], [ 557658.400000, 221055.200000 ], [ 557684.400000, 221140.000000 ], [ 557712.100000, 221185.700000 ], [ 557756.800000, 221240.500000 ], [ 557773.200000, 221346.200000 ], [ 557809.400000, 221421.400000 ], [ 557808.600000, 221311.400000 ], [ 557832.400000, 221252.900000 ], [ 557825.900000, 221214.100000 ], [ 557919.300000, 221271.500000 ], [ 557944.500000, 221317.200000 ], [ 558013.200000, 221365.100000 ], [ 558046.400000, 221386.400000 ], [ 558107.900000, 221400.900000 ], [ 558122.900000, 221399.100000 ], [ 558266.900000, 221307.100000 ], [ 558278.400000, 221289.600000 ], [ 558303.600000, 221196.600000 ], [ 558312.900000, 221192.900000 ], [ 558328.900000, 221288.400000 ], [ 558337.400000, 221298.400000 ], [ 558418.400000, 221308.900000 ], [ 558466.600000, 221339.900000 ], [ 558421.500000, 221414.000000 ], [ 558366.400000, 221435.600000 ], [ 558361.200000, 221442.400000 ], [ 558368.400000, 221451.600000 ], [ 558462.100000, 221476.600000 ], [ 558478.900000, 221469.800000 ], [ 558512.100000, 221440.200000 ], [ 558599.900000, 221488.600000 ], [ 558615.000000, 221462.900000 ], [ 558664.000000, 221488.000000 ], [ 558789.000000, 221483.500000 ], [ 558948.500000, 221554.000000 ], [ 558991.700000, 221587.700000 ], [ 558997.000000, 221602.500000 ], [ 558993.500000, 221611.700000 ], [ 558945.500000, 221655.700000 ], [ 558944.500000, 221665.200000 ], [ 558953.700000, 221671.000000 ], [ 559004.700000, 221661.700000 ], [ 559038.000000, 221662.700000 ], [ 559159.000000, 221803.000000 ], [ 559177.200000, 221839.200000 ], [ 559194.500000, 221903.200000 ], [ 559241.000000, 221905.200000 ], [ 559280.200000, 221951.700000 ], [ 559376.700000, 221964.000000 ], [ 559469.500000, 221945.000000 ], [ 559598.700000, 221949.000000 ], [ 559645.500000, 221957.000000 ], [ 559689.200000, 221998.700000 ], [ 559827.000000, 221986.500000 ], [ 559892.700000, 221986.700000 ], [ 560018.400000, 222046.500000 ], [ 560048.500000, 222071.000000 ], [ 560058.200000, 222098.900000 ], [ 560067.400000, 222165.400000 ], [ 560098.000000, 222146.900000 ], [ 560118.500000, 222124.900000 ], [ 560241.900000, 221923.000000 ], [ 560270.600000, 221882.800000 ], [ 560353.900000, 221792.900000 ], [ 560334.900000, 221712.700000 ], [ 560332.600000, 221684.700000 ], [ 560338.100000, 221664.700000 ], [ 560365.300000, 221617.000000 ], [ 560394.300000, 221600.100000 ], [ 560429.200000, 221568.000000 ], [ 560442.400000, 221520.200000 ], [ 560442.400000, 221450.200000 ], [ 560421.600000, 221375.300000 ], [ 560428.000000, 221357.500000 ], [ 560446.200000, 221339.300000 ], [ 560496.400000, 221311.900000 ], [ 560507.300000, 221293.300000 ], [ 560548.500000, 221257.000000 ], [ 560628.900000, 221319.900000 ], [ 560693.900000, 221354.600000 ], [ 560837.100000, 221421.400000 ], [ 561011.900000, 221459.100000 ], [ 561107.600000, 221508.900000 ], [ 561182.400000, 221558.400000 ], [ 561410.100000, 221872.600000 ], [ 561449.900000, 221895.200000 ], [ 561634.900000, 221942.600000 ], [ 561656.200000, 221955.300000 ], [ 561797.900000, 222072.900000 ], [ 561953.600000, 222157.900000 ], [ 562095.100000, 222339.100000 ], [ 562151.600000, 222372.100000 ], [ 562402.600000, 222452.600000 ], [ 562432.600000, 222461.100000 ], [ 562455.900000, 222460.400000 ], [ 562563.600000, 222345.900000 ], [ 562578.600000, 222297.400000 ], [ 562727.400000, 222097.100000 ], [ 562806.600000, 222052.600000 ], [ 562902.100000, 222047.300000 ], [ 562945.100000, 222133.900000 ], [ 562992.400000, 222254.400000 ], [ 563071.600000, 222413.600000 ], [ 563094.600000, 222438.900000 ], [ 563333.600000, 222609.900000 ], [ 563393.100000, 222644.400000 ], [ 563320.400000, 222693.400000 ], [ 563479.900000, 222758.700000 ], [ 563504.600000, 222761.200000 ], [ 563580.100000, 222741.900000 ], [ 563622.900000, 222743.400000 ], [ 563875.100000, 222801.700000 ], [ 563924.800000, 222796.600000 ], [ 563940.300000, 222786.900000 ], [ 563966.300000, 222724.600000 ], [ 564072.000000, 222712.300000 ], [ 564097.600000, 222701.900000 ], [ 564110.100000, 222684.900000 ], [ 564132.600000, 222643.500000 ], [ 564204.000000, 222468.500000 ], [ 564214.900000, 222437.200000 ], [ 564223.500000, 222360.000000 ], [ 564389.900000, 222427.700000 ], [ 564423.900000, 222434.000000 ], [ 564450.600000, 222423.500000 ], [ 564611.600000, 222325.500000 ], [ 564721.600000, 222321.200000 ], [ 564760.400000, 222328.500000 ], [ 564866.100000, 222415.200000 ], [ 564882.400000, 222445.200000 ], [ 564904.283000, 222453.957000 ], [ 564958.260000, 222459.295000 ], [ 564953.894000, 222493.030000 ], [ 564930.479000, 222547.799000 ], [ 564935.900000, 222604.100000 ], [ 564991.400000, 222792.900000 ], [ 565000.900000, 222816.100000 ], [ 565044.969000, 222873.421000 ], [ 565064.832000, 222892.633000 ], [ 565194.700000, 222977.600000 ], [ 565300.700000, 223071.900000 ], [ 565393.100000, 223138.300000 ], [ 565613.700000, 223373.300000 ], [ 565633.400000, 223404.500000 ], [ 565663.700000, 223427.300000 ], [ 565741.800000, 223454.100000 ], [ 565744.100000, 223479.000000 ], [ 565795.900000, 223559.700000 ], [ 565911.000000, 223713.200000 ], [ 565919.600000, 223730.600000 ], [ 565915.500000, 223772.400000 ], [ 565922.700000, 223786.700000 ], [ 565961.100000, 223801.200000 ], [ 566046.077000, 223817.744000 ], [ 565978.160000, 223893.782000 ], [ 565943.764000, 223875.261000 ], [ 565938.473000, 223899.073000 ], [ 565901.431000, 223925.532000 ], [ 565988.744000, 224018.136000 ], [ 566070.765000, 224076.345000 ], [ 566102.515000, 224113.386000 ], [ 566128.973000, 224163.657000 ], [ 566234.688000, 224260.402000 ], [ 566196.774000, 224247.248000 ], [ 566167.074000, 224244.548000 ], [ 566155.274000, 224252.548000 ], [ 566161.174000, 224341.948000 ], [ 566172.774000, 224367.648000 ], [ 566332.800000, 224487.500000 ], [ 566414.600000, 224524.300000 ], [ 566523.700000, 224596.300000 ], [ 566615.600000, 224682.900000 ], [ 566840.200000, 224869.100000 ], [ 566942.000000, 224932.900000 ], [ 566977.000000, 224941.400000 ], [ 567001.300000, 224940.000000 ], [ 567110.000000, 224915.200000 ], [ 567161.700000, 224886.200000 ], [ 567176.700000, 224887.000000 ], [ 567277.000000, 224935.400000 ], [ 567267.600000, 224990.200000 ], [ 567265.600000, 225142.200000 ], [ 567278.400000, 225265.800000 ], [ 567302.500000, 225339.100000 ], [ 567374.300000, 225427.800000 ], [ 567347.800000, 225476.000000 ], [ 567340.500000, 225504.700000 ], [ 567337.900000, 225538.800000 ], [ 567347.400000, 225605.500000 ], [ 567339.100000, 225668.700000 ], [ 567350.200000, 225723.200000 ], [ 567323.400000, 225785.200000 ], [ 567303.500000, 225797.200000 ], [ 567217.800000, 225806.800000 ], [ 567034.700000, 225853.300000 ], [ 566899.600000, 225780.600000 ], [ 566864.500000, 225750.500000 ], [ 566839.000000, 225709.000000 ], [ 566825.800000, 225698.100000 ], [ 566805.900000, 225694.700000 ], [ 566752.900000, 225708.200000 ], [ 566615.100000, 225759.000000 ], [ 566610.700000, 225769.700000 ], [ 566624.100000, 225815.700000 ], [ 566661.700000, 225891.100000 ], [ 566655.600000, 225899.900000 ], [ 566645.300000, 225899.700000 ], [ 566546.900000, 225786.400000 ], [ 566518.100000, 225738.500000 ], [ 566517.800000, 225723.300000 ], [ 566575.300000, 225687.700000 ], [ 566603.100000, 225655.000000 ], [ 566642.000000, 225633.700000 ], [ 566686.260000, 225586.054000 ], [ 566618.900000, 225625.800000 ], [ 566516.400000, 225674.400000 ], [ 566488.900000, 225681.900000 ], [ 566414.100000, 225677.300000 ], [ 566401.100000, 225683.000000 ], [ 566396.200000, 225693.200000 ], [ 566398.200000, 225774.100000 ], [ 566384.400000, 225790.700000 ], [ 566363.800000, 225795.400000 ], [ 566350.700000, 225807.800000 ], [ 566344.700000, 225827.700000 ], [ 566303.200000, 225868.700000 ], [ 566251.300000, 225882.100000 ], [ 566208.200000, 225913.800000 ], [ 566218.100000, 225942.600000 ], [ 566429.000000, 226179.700000 ], [ 566581.000000, 226308.200000 ], [ 566726.800000, 226457.800000 ], [ 566790.900000, 226495.900000 ], [ 566836.600000, 226498.700000 ], [ 566939.300000, 226522.000000 ], [ 566992.700000, 226521.600000 ], [ 567019.400000, 226528.400000 ], [ 567082.900000, 226562.600000 ], [ 567211.600000, 226615.900000 ], [ 567314.307000, 226645.102000 ], [ 567450.400000, 226783.000000 ], [ 567561.200000, 226878.100000 ], [ 567575.100000, 226898.300000 ], [ 567609.400000, 226991.500000 ], [ 567618.900000, 227003.500000 ], [ 567664.400000, 227032.000000 ], [ 567703.500000, 227089.200000 ], [ 567739.500000, 227113.400000 ], [ 567803.500000, 227134.800000 ], [ 567853.900000, 227161.500000 ], [ 567862.800000, 227178.800000 ], [ 567860.600000, 227208.700000 ], [ 567801.400000, 227330.200000 ], [ 567776.900000, 227361.200000 ], [ 567752.600000, 227380.200000 ], [ 567673.700000, 227415.400000 ], [ 567646.300000, 227465.000000 ], [ 567628.600000, 227523.200000 ], [ 567624.600000, 227583.900000 ], [ 567634.000000, 227643.000000 ], [ 567645.900000, 227687.900000 ], [ 567698.400000, 227794.100000 ], [ 567707.600000, 227831.200000 ], [ 567665.031000, 227974.406000 ], [ 567753.800000, 227962.700000 ], [ 567757.542000, 227956.284000 ], [ 567828.800000, 227961.100000 ], [ 567883.100000, 227948.300000 ], [ 568040.800000, 227965.300000 ], [ 568172.100000, 228021.800000 ], [ 568184.600000, 228029.900000 ], [ 568198.900000, 228053.600000 ], [ 568309.800000, 228119.100000 ], [ 568332.800000, 228089.000000 ], [ 568428.600000, 228125.900000 ], [ 568517.400000, 228148.600000 ], [ 568652.400000, 228158.400000 ], [ 568717.900000, 228182.600000 ], [ 568743.600000, 228202.100000 ], [ 568750.800000, 228215.900000 ], [ 568741.900000, 228273.400000 ], [ 568751.100000, 228294.400000 ], [ 568716.900000, 228359.200000 ], [ 568709.200000, 228391.700000 ], [ 568719.000000, 228436.200000 ], [ 568738.400000, 228473.500000 ], [ 568777.600000, 228502.300000 ], [ 568781.300000, 228529.200000 ], [ 568632.400000, 228770.300000 ], [ 568828.846000, 228730.177000 ], [ 569188.600000, 229074.700000 ], [ 569217.900000, 229093.300000 ], [ 569249.771000, 229094.479000 ], [ 569290.600000, 229114.000000 ], [ 569269.100000, 229154.900000 ], [ 569115.900000, 229358.600000 ], [ 569344.500000, 229621.100000 ], [ 569491.400000, 229823.100000 ], [ 569538.300000, 229864.300000 ], [ 569612.100000, 229897.200000 ], [ 569665.800000, 229931.100000 ], [ 569769.600000, 229938.700000 ], [ 569799.500000, 229954.700000 ], [ 569923.200000, 230046.500000 ], [ 570103.700000, 230123.600000 ], [ 570169.200000, 230159.500000 ], [ 570243.800000, 230186.300000 ], [ 570327.300000, 230234.800000 ], [ 570456.000000, 230275.800000 ], [ 570516.800000, 230319.000000 ], [ 570669.700000, 230395.700000 ], [ 570838.650000, 230538.145000 ], [ 570896.200000, 230555.200000 ], [ 571012.500000, 230645.000000 ], [ 571068.700000, 230677.900000 ], [ 571106.900000, 230713.200000 ], [ 571269.200000, 230832.100000 ], [ 571357.500000, 230888.300000 ], [ 572006.400000, 231232.400000 ], [ 572029.300000, 231209.800000 ], [ 572511.700000, 231671.500000 ], [ 572570.300000, 231749.100000 ], [ 572661.700000, 231836.700000 ], [ 572608.100000, 231934.300000 ], [ 572560.100000, 231995.800000 ], [ 572514.100000, 232075.300000 ], [ 572468.800000, 232306.200000 ], [ 572466.400000, 232351.900000 ], [ 572485.400000, 232505.800000 ], [ 572510.700000, 232628.500000 ], [ 572534.100000, 232678.800000 ], [ 572587.900000, 232745.500000 ], [ 572593.500000, 232788.300000 ], [ 572555.400000, 233031.000000 ], [ 572508.700000, 233163.000000 ], [ 572471.500000, 233233.800000 ], [ 572357.300000, 233343.000000 ], [ 572256.900000, 233332.600000 ], [ 572135.200000, 233284.000000 ], [ 572027.200000, 233249.500000 ], [ 571699.200000, 233174.300000 ], [ 571634.500000, 233078.000000 ], [ 571628.700000, 233095.500000 ], [ 571605.500000, 233126.300000 ], [ 571532.600000, 233212.400000 ], [ 571498.600000, 233235.400000 ], [ 571340.100000, 233314.700000 ], [ 571321.400000, 233320.400000 ], [ 571243.400000, 233321.200000 ], [ 571151.400000, 233340.200000 ], [ 571046.100000, 233414.900000 ], [ 570976.400000, 233448.700000 ], [ 570938.900000, 233456.900000 ], [ 570801.600000, 233462.400000 ], [ 570746.600000, 233469.900000 ], [ 570701.400000, 233484.000000 ], [ 570649.300000, 233436.100000 ], [ 570615.000000, 233388.500000 ], [ 570567.800000, 233344.800000 ], [ 570549.900000, 233316.400000 ], [ 570546.300000, 233278.700000 ], [ 570565.600000, 233181.200000 ], [ 570557.600000, 233143.400000 ], [ 570544.600000, 233128.700000 ], [ 570330.900000, 233077.400000 ], [ 570177.400000, 233003.900000 ], [ 570133.400000, 232999.400000 ], [ 570062.400000, 233006.600000 ], [ 569999.900000, 232989.900000 ], [ 569589.100000, 232827.100000 ], [ 569507.900000, 232744.600000 ], [ 569334.600000, 232675.900000 ], [ 569231.300000, 232658.800000 ], [ 569063.600000, 232609.100000 ], [ 569015.100000, 232600.400000 ], [ 568959.900000, 232597.600000 ], [ 568884.300000, 232618.000000 ], [ 568885.387000, 232613.831000 ], [ 568855.841000, 232613.390000 ], [ 568586.900000, 232921.700000 ], [ 568544.200000, 232978.200000 ], [ 568459.200000, 233113.400000 ], [ 568455.000000, 233135.600000 ], [ 568465.100000, 233163.800000 ], [ 568503.800000, 233216.700000 ], [ 568491.500000, 233240.100000 ], [ 568458.800000, 233256.300000 ], [ 568360.400000, 233252.900000 ], [ 568270.900000, 233269.100000 ], [ 568135.600000, 233270.400000 ], [ 568090.400000, 233293.900000 ], [ 567732.667000, 233552.355000 ], [ 567728.600000, 233549.600000 ], [ 567714.100000, 233589.600000 ], [ 567714.600000, 233628.600000 ], [ 567726.600000, 233671.400000 ], [ 567717.500000, 233690.000000 ], [ 567700.600000, 233690.400000 ], [ 567658.800000, 233664.900000 ], [ 567628.100000, 233656.100000 ], [ 567553.800000, 233658.100000 ], [ 567485.400000, 233670.600000 ], [ 567449.100000, 233666.500000 ], [ 567407.900000, 233654.500000 ], [ 567248.200000, 233573.800000 ], [ 567163.400000, 233557.200000 ], [ 567086.000000, 233603.900000 ], [ 567061.993000, 233607.060000 ], [ 566813.900000, 233755.700000 ], [ 566787.500000, 233783.800000 ], [ 566746.300000, 233861.300000 ], [ 566705.200000, 233901.600000 ], [ 566614.000000, 233946.300000 ], [ 566529.800000, 234013.100000 ], [ 566468.100000, 233999.500000 ], [ 566367.300000, 234015.400000 ], [ 566285.200000, 234061.400000 ], [ 566263.500000, 234086.200000 ], [ 566247.300000, 234122.100000 ], [ 566242.800000, 234193.100000 ], [ 566260.858000, 234260.694000 ], [ 566399.400000, 234321.800000 ], [ 566404.400000, 234334.000000 ], [ 566393.900000, 234349.000000 ], [ 566360.100000, 234361.000000 ], [ 566265.100000, 234364.800000 ], [ 566255.000000, 234372.100000 ], [ 566153.700000, 234391.600000 ], [ 566031.661000, 234457.510000 ], [ 566013.200000, 234459.400000 ], [ 565948.700000, 234488.600000 ], [ 565787.200000, 234508.200000 ], [ 565735.300000, 234603.300000 ], [ 565682.600000, 234735.700000 ], [ 565687.600000, 234789.700000 ], [ 565681.800000, 234818.800000 ], [ 565748.000000, 234834.400000 ], [ 565836.700000, 234886.000000 ], [ 565961.400000, 235004.800000 ], [ 566076.200000, 235079.600000 ], [ 566193.300000, 235172.800000 ], [ 566264.000000, 235238.900000 ], [ 566303.600000, 235289.600000 ], [ 566323.400000, 235305.500000 ], [ 566544.300000, 235430.500000 ], [ 566587.700000, 235497.500000 ], [ 566714.800000, 235623.900000 ], [ 566766.000000, 235649.600000 ], [ 566775.200000, 235668.400000 ], [ 566767.400000, 235686.900000 ], [ 566754.600000, 235691.200000 ], [ 566730.900000, 235693.500000 ], [ 566664.400000, 235683.600000 ], [ 566612.400000, 235698.700000 ], [ 566585.200000, 235698.500000 ], [ 566495.400000, 235670.800000 ], [ 566466.000000, 235671.900000 ], [ 566441.800000, 235688.700000 ], [ 566409.500000, 235729.000000 ], [ 566367.900000, 235753.300000 ], [ 566346.200000, 235749.300000 ], [ 566289.000000, 235710.500000 ], [ 566273.300000, 235687.200000 ], [ 566250.500000, 235670.900000 ], [ 566168.300000, 235712.600000 ], [ 566147.200000, 235738.500000 ], [ 566101.300000, 235773.200000 ], [ 566056.800000, 235784.900000 ], [ 565922.400000, 235760.200000 ], [ 565856.900000, 235726.700000 ], [ 565811.100000, 235719.700000 ], [ 565763.100000, 235725.700000 ], [ 565836.700000, 235766.900000 ], [ 565918.200000, 235798.900000 ], [ 565944.700000, 235821.400000 ], [ 566010.500000, 235901.000000 ], [ 566041.200000, 235907.900000 ], [ 566098.500000, 235891.500000 ], [ 566109.794000, 235895.165000 ], [ 566118.700000, 235922.400000 ], [ 566093.400000, 235956.900000 ], [ 565972.000000, 236004.300000 ], [ 565965.500000, 236019.300000 ], [ 565979.200000, 236037.500000 ], [ 566019.700000, 236032.900000 ], [ 566049.700000, 236038.300000 ], [ 566168.000000, 236065.800000 ], [ 566237.200000, 236089.300000 ], [ 566273.200000, 236120.500000 ], [ 566293.100000, 236162.600000 ], [ 566413.500000, 236280.500000 ], [ 566587.200000, 236406.800000 ], [ 566658.700000, 236439.700000 ], [ 566767.000000, 236466.100000 ], [ 566857.400000, 236480.300000 ], [ 566944.500000, 236505.100000 ], [ 566969.400000, 236515.100000 ], [ 567065.500000, 236579.200000 ], [ 567121.800000, 236656.800000 ], [ 567150.300000, 236719.700000 ], [ 567152.200000, 236822.300000 ], [ 567172.700000, 236884.700000 ], [ 567204.900000, 236934.800000 ], [ 567235.100000, 236953.700000 ], [ 567291.100000, 236969.100000 ], [ 567381.700000, 236975.100000 ], [ 567434.400000, 237002.900000 ], [ 567506.600000, 237023.700000 ], [ 567677.700000, 237132.900000 ], [ 567758.400000, 237172.900000 ], [ 567827.200000, 237216.900000 ], [ 567843.200000, 237223.400000 ], [ 567931.300000, 237226.900000 ], [ 568042.300000, 237270.900000 ], [ 568155.000000, 237328.400000 ], [ 568285.000000, 237385.100000 ], [ 568410.500000, 237426.600000 ], [ 568588.900000, 237539.400000 ], [ 569272.200000, 237827.100000 ], [ 569428.900000, 237844.100000 ], [ 569497.870000, 237857.707000 ], [ 569592.600000, 237758.800000 ], [ 569651.500000, 237708.100000 ], [ 569750.700000, 237641.600000 ], [ 569853.700000, 237551.100000 ], [ 569934.900000, 237516.400000 ], [ 569983.700000, 237509.100000 ], [ 570072.400000, 237512.900000 ], [ 570242.800000, 237550.100000 ], [ 570291.000000, 237567.400000 ], [ 570474.500000, 237662.600000 ], [ 570520.300000, 237768.900000 ], [ 570544.700000, 237862.200000 ], [ 570579.800000, 237879.400000 ], [ 571048.300000, 238013.100000 ], [ 571212.000000, 238085.600000 ], [ 571420.400000, 238226.000000 ], [ 571570.900000, 238249.800000 ], [ 571606.900000, 238243.000000 ], [ 571627.400000, 238245.500000 ], [ 571670.700000, 238271.300000 ], [ 571790.400000, 238298.000000 ], [ 571953.800000, 238373.800000 ], [ 572010.700000, 238411.700000 ], [ 572132.700000, 238451.300000 ], [ 572164.600000, 238467.100000 ], [ 572249.300000, 238535.600000 ], [ 572393.500000, 238636.400000 ], [ 572436.200000, 238654.500000 ], [ 572471.400000, 238697.500000 ], [ 572590.100000, 238746.500000 ], [ 572644.900000, 238754.000000 ], [ 572720.066000, 238794.484000 ], [ 572688.700000, 238835.700000 ], [ 572782.500000, 238863.600000 ], [ 572986.800000, 238872.100000 ], [ 572956.300000, 238968.000000 ], [ 572940.500000, 239086.300000 ], [ 572943.800000, 239104.300000 ], [ 572965.000000, 239129.000000 ], [ 573026.300000, 239156.300000 ], [ 573157.500000, 239198.300000 ], [ 573210.300000, 239227.300000 ], [ 573317.800000, 239271.300000 ], [ 573456.800000, 239313.300000 ], [ 573463.500000, 239322.300000 ], [ 573332.000000, 239406.300000 ], [ 573276.000000, 239419.300000 ], [ 573128.000000, 239413.000000 ], [ 572815.800000, 239363.000000 ], [ 572799.800000, 239367.800000 ], [ 572802.500000, 239379.500000 ], [ 572916.300000, 239432.300000 ], [ 573395.300000, 239601.500000 ], [ 573396.500000, 239617.300000 ], [ 573403.800000, 239623.000000 ], [ 573450.000000, 239632.000000 ], [ 573515.800000, 239659.500000 ], [ 573662.800000, 239701.500000 ], [ 573744.500000, 239712.500000 ], [ 573821.000000, 239760.000000 ], [ 573864.000000, 239767.800000 ], [ 573877.000000, 239787.600000 ], [ 573861.500000, 239802.800000 ], [ 573745.000000, 239814.500000 ], [ 573701.800000, 239809.800000 ], [ 573696.500000, 239819.300000 ], [ 573714.300000, 239839.000000 ], [ 573741.300000, 239834.400000 ], [ 573803.800000, 239839.600000 ], [ 573807.000000, 239890.600000 ], [ 573853.000000, 239893.300000 ], [ 573882.500000, 239957.900000 ], [ 573936.000000, 240004.400000 ], [ 573989.300000, 240026.900000 ], [ 574058.800000, 240038.900000 ], [ 574145.300000, 240028.900000 ], [ 574293.000000, 239991.600000 ], [ 574432.200000, 239997.400000 ], [ 574535.200000, 240026.600000 ], [ 574711.700000, 240126.600000 ], [ 574785.700000, 240154.600000 ], [ 574902.400000, 240157.600000 ], [ 574976.400000, 240190.600000 ], [ 575018.200000, 240196.400000 ], [ 575093.200000, 240186.700000 ], [ 575137.700000, 240146.200000 ], [ 575148.400000, 240143.700000 ], [ 575304.200000, 240197.700000 ], [ 575415.200000, 240274.500000 ], [ 575474.700000, 240297.500000 ], [ 575518.800000, 240345.600000 ], [ 575521.700000, 240365.000000 ], [ 575514.200000, 240403.700000 ], [ 575549.400000, 240442.700000 ], [ 575557.700000, 240534.700000 ], [ 575577.400000, 240608.700000 ], [ 575570.700000, 240665.700000 ], [ 575574.700000, 240691.000000 ], [ 575614.400000, 240752.000000 ], [ 575678.400000, 240827.500000 ], [ 575706.900000, 240891.500000 ], [ 575738.400000, 240932.700000 ], [ 575776.200000, 241000.700000 ], [ 575803.400000, 241148.000000 ], [ 575819.200000, 241283.500000 ], [ 575808.700000, 241283.700000 ], [ 575705.200000, 241188.200000 ], [ 575568.900000, 241087.200000 ], [ 575527.200000, 241067.000000 ], [ 575458.300000, 241046.400000 ], [ 575392.000000, 241006.100000 ], [ 575377.300000, 241009.600000 ], [ 575354.542000, 241035.100000 ], [ 575334.300000, 241046.400000 ], [ 575305.800000, 241048.400000 ], [ 575209.300000, 241033.000000 ], [ 575197.500000, 241040.600000 ], [ 575161.729000, 241106.114000 ], [ 575224.300000, 241142.400000 ], [ 575274.500000, 241161.900000 ], [ 575325.000000, 241164.100000 ], [ 575361.300000, 241156.400000 ], [ 575381.800000, 241160.900000 ], [ 575430.500000, 241185.100000 ], [ 575484.000000, 241226.100000 ], [ 575521.800000, 241290.600000 ], [ 575552.500000, 241373.900000 ], [ 575607.800000, 241488.600000 ], [ 575650.000000, 241521.100000 ], [ 575901.300000, 241616.400000 ], [ 575984.500000, 241624.400000 ], [ 576047.300000, 241643.400000 ], [ 576143.300000, 241635.100000 ], [ 576149.300000, 241645.400000 ], [ 576160.800000, 241751.400000 ], [ 576180.800000, 241791.400000 ], [ 576218.300000, 241827.100000 ], [ 576386.300000, 241948.400000 ], [ 576537.000000, 241988.100000 ], [ 576699.700000, 242005.400000 ], [ 576873.000000, 242003.600000 ], [ 576919.700000, 242013.100000 ], [ 576946.000000, 242025.800000 ], [ 577025.200000, 242101.300000 ], [ 577054.400000, 242160.900000 ], [ 577073.700000, 242240.100000 ], [ 577076.700000, 242344.600000 ], [ 577028.900000, 242570.700000 ], [ 577027.700000, 242641.400000 ], [ 577042.400000, 242724.600000 ], [ 577072.900000, 242765.800000 ], [ 577119.400000, 242773.100000 ], [ 577196.600000, 242768.600000 ], [ 577345.000000, 242720.000000 ], [ 577406.200000, 242688.100000 ], [ 577447.400000, 242632.300000 ], [ 577547.900000, 242564.100000 ], [ 577711.500000, 242495.300000 ], [ 577813.500000, 242463.800000 ], [ 577880.200000, 242461.600000 ], [ 578117.400000, 242485.300000 ], [ 578223.600000, 242529.800000 ], [ 578318.600000, 242619.500000 ], [ 578416.200000, 242748.800000 ], [ 578496.600000, 242828.700000 ], [ 578528.700000, 242870.400000 ], [ 578583.200000, 243000.000000 ], [ 578628.200000, 243067.300000 ], [ 578711.200000, 243247.100000 ], [ 578740.900000, 243340.300000 ], [ 578746.700000, 243439.300000 ], [ 578767.200000, 243557.000000 ], [ 578758.700000, 243680.600000 ], [ 578766.400000, 243755.600000 ], [ 578780.800000, 243809.600000 ], [ 578803.500000, 243860.000000 ], [ 578883.200000, 243978.600000 ], [ 578922.900000, 244018.800000 ], [ 579049.400000, 244090.300000 ], [ 579121.200000, 244152.800000 ], [ 579144.700000, 244164.600000 ], [ 579225.900000, 244180.600000 ], [ 579320.100000, 244209.100000 ], [ 579454.700000, 244211.900000 ], [ 579609.500000, 244243.300000 ], [ 579624.100000, 244254.000000 ], [ 579671.200000, 244326.800000 ], [ 579796.400000, 244423.300000 ], [ 579886.400000, 244484.100000 ], [ 579915.600000, 244517.100000 ], [ 579919.900000, 244549.600000 ], [ 579860.100000, 244627.800000 ], [ 579832.200000, 244692.000000 ], [ 579824.800000, 244785.700000 ], [ 579849.300000, 244877.200000 ], [ 579801.000000, 244819.500000 ], [ 579728.000000, 244772.000000 ], [ 579704.100000, 244734.400000 ], [ 579699.400000, 244738.700000 ], [ 579714.100000, 244785.700000 ], [ 579708.600000, 244934.200000 ], [ 579712.400000, 244973.700000 ], [ 579732.100000, 245011.900000 ], [ 579775.900000, 245058.700000 ], [ 579787.400000, 245079.200000 ], [ 579790.900000, 245121.900000 ], [ 579784.400000, 245192.200000 ], [ 579726.300000, 245344.000000 ], [ 579650.800000, 245482.200000 ], [ 579643.800000, 245525.000000 ], [ 579589.300000, 245648.200000 ], [ 579571.600000, 245704.700000 ], [ 579492.800000, 245806.500000 ], [ 579430.200000, 245943.500000 ], [ 579372.100000, 246051.400000 ], [ 579320.304000, 246096.663000 ], [ 579290.900000, 246099.100000 ], [ 579247.900000, 246124.900000 ], [ 579193.600000, 246144.900000 ], [ 579130.751000, 246145.958000 ], [ 578949.400000, 246076.200000 ], [ 578663.900000, 245985.900000 ], [ 578581.775000, 245924.817000 ] ], [ [ 579593.000000, 246308.500000 ], [ 579358.600000, 246380.100000 ], [ 579308.336000, 246357.276000 ], [ 579203.600000, 246370.100000 ], [ 579163.600000, 246364.200000 ], [ 579066.744000, 246325.102000 ], [ 579017.000000, 246313.100000 ], [ 578945.300000, 246312.800000 ], [ 578755.400000, 246267.800000 ], [ 578714.300000, 246248.800000 ], [ 578677.400000, 246214.300000 ], [ 578674.384000, 246191.247000 ], [ 578543.500000, 246083.100000 ], [ 578509.897000, 246019.667000 ], [ 578498.951000, 246015.638000 ], [ 578523.616000, 245977.381000 ], [ 578581.775000, 245924.817000 ] ], [ [ 519207.300000, 174343.800000 ], [ 519380.700000, 174408.200000 ], [ 519440.100000, 174438.500000 ], [ 519533.700000, 174514.800000 ], [ 519551.700000, 174542.900000 ], [ 519553.800000, 174556.900000 ], [ 519547.700000, 174573.400000 ], [ 519523.700000, 174601.800000 ], [ 519535.900000, 174667.600000 ], [ 519534.400000, 174678.400000 ], [ 519517.200000, 174690.000000 ], [ 519540.400000, 174792.700000 ], [ 519647.300000, 174947.500000 ], [ 519755.700000, 175052.400000 ], [ 519872.200000, 175153.500000 ], [ 519883.900000, 175171.900000 ], [ 519876.900000, 175227.500000 ], [ 519883.900000, 175258.800000 ], [ 519910.000000, 175293.200000 ], [ 519996.200000, 175353.300000 ], [ 520017.900000, 175378.000000 ], [ 520032.600000, 175427.700000 ], [ 520034.200000, 175490.300000 ], [ 520041.500000, 175513.700000 ], [ 520034.400000, 175524.400000 ], [ 520062.900000, 175553.700000 ], [ 520121.300000, 175593.100000 ], [ 520104.200000, 175621.100000 ], [ 520156.000000, 175597.500000 ], [ 520155.000000, 175627.500000 ], [ 520117.100000, 175702.100000 ], [ 520150.300000, 175680.300000 ], [ 520131.400000, 175706.000000 ], [ 520155.900000, 175728.500000 ], [ 520147.600000, 175742.300000 ], [ 520140.000000, 175783.300000 ], [ 520107.300000, 175813.700000 ], [ 520096.300000, 175833.200000 ], [ 520041.900000, 175962.600000 ], [ 520003.700000, 176077.400000 ], [ 519936.700000, 176196.400000 ], [ 519908.300000, 176279.600000 ], [ 519915.500000, 176312.500000 ], [ 519972.800000, 176351.100000 ], [ 519966.600000, 176305.700000 ], [ 519973.900000, 176281.400000 ], [ 520002.200000, 176251.300000 ], [ 520135.900000, 176171.000000 ], [ 520246.300000, 176090.700000 ], [ 520306.800000, 176066.000000 ], [ 520383.200000, 176004.300000 ], [ 520449.200000, 175977.200000 ], [ 520501.200000, 175979.700000 ], [ 520524.300000, 176044.800000 ], [ 520530.100000, 176079.900000 ], [ 520554.700000, 176123.400000 ], [ 520630.700000, 176124.400000 ], [ 520697.200000, 176115.600000 ], [ 520733.500000, 176131.100000 ], [ 520730.700000, 176138.600000 ], [ 520740.800000, 176154.800000 ], [ 520768.100000, 176160.800000 ], [ 520804.100000, 176182.700000 ], [ 520763.800000, 176263.300000 ], [ 520742.900000, 176386.500000 ], [ 520688.700000, 176480.000000 ], [ 520680.600000, 176516.300000 ], [ 520661.900000, 176553.700000 ], [ 520674.600000, 176586.600000 ], [ 520680.200000, 176630.500000 ], [ 520776.800000, 176730.100000 ], [ 520740.700000, 176817.800000 ], [ 520731.800000, 176873.000000 ], [ 520731.300000, 176918.800000 ], [ 520760.700000, 176978.500000 ], [ 520762.000000, 177003.700000 ], [ 520744.400000, 177067.400000 ], [ 520723.200000, 177105.100000 ], [ 520685.600000, 177138.900000 ], [ 520665.800000, 177147.900000 ], [ 520565.900000, 177165.000000 ], [ 520532.900000, 177166.700000 ], [ 520428.200000, 177151.000000 ], [ 520342.600000, 177148.700000 ], [ 520280.700000, 177164.900000 ], [ 520256.800000, 177176.000000 ], [ 520171.200000, 177239.100000 ], [ 520111.200000, 177267.500000 ], [ 519881.600000, 177342.400000 ], [ 519860.400000, 177362.100000 ], [ 519854.800000, 177379.100000 ], [ 519857.500000, 177411.100000 ], [ 519867.100000, 177427.300000 ], [ 519969.300000, 177444.200000 ], [ 520114.400000, 177433.400000 ], [ 520233.900000, 177466.900000 ], [ 520384.700000, 177489.700000 ], [ 520483.700000, 177512.500000 ], [ 520625.400000, 177565.400000 ], [ 520655.600000, 177583.400000 ], [ 520719.400000, 177660.300000 ], [ 520726.700000, 177681.100000 ], [ 520686.500000, 177830.800000 ], [ 520689.800000, 177875.400000 ], [ 520725.000000, 177909.300000 ], [ 520762.200000, 177921.000000 ], [ 520830.700000, 177925.700000 ], [ 520969.400000, 177920.000000 ], [ 520995.100000, 177927.900000 ], [ 521040.100000, 177964.900000 ], [ 521122.100000, 178009.700000 ], [ 521273.500000, 178048.300000 ], [ 521339.900000, 178045.500000 ], [ 521389.800000, 178036.200000 ], [ 521494.100000, 177996.000000 ], [ 521578.200000, 177981.300000 ], [ 521621.000000, 177977.900000 ], [ 521690.600000, 177986.700000 ], [ 521728.300000, 177984.600000 ], [ 521782.000000, 177964.200000 ], [ 521870.600000, 177960.300000 ], [ 521903.300000, 177964.500000 ], [ 521922.100000, 177977.900000 ], [ 521900.600000, 177994.500000 ], [ 521893.600000, 178023.900000 ], [ 521909.200000, 178055.600000 ], [ 521930.000000, 178193.600000 ], [ 521940.600000, 178204.500000 ], [ 521992.600000, 178225.700000 ], [ 521998.300000, 178233.300000 ], [ 522000.400000, 178270.500000 ], [ 521986.900000, 178318.600000 ], [ 521964.600000, 178349.400000 ], [ 521981.400000, 178377.900000 ], [ 522023.000000, 178404.800000 ], [ 522052.400000, 178477.000000 ], [ 522152.800000, 178480.400000 ], [ 522205.100000, 178520.800000 ], [ 522211.467000, 178520.272000 ], [ 522226.400000, 178493.400000 ], [ 522240.800000, 178483.500000 ], [ 522274.000000, 178526.900000 ], [ 522293.000000, 178537.800000 ], [ 522360.300000, 178532.200000 ], [ 522418.700000, 178549.100000 ], [ 522452.800000, 178537.800000 ], [ 522556.400000, 178459.400000 ], [ 522613.100000, 178449.000000 ], [ 522682.000000, 178453.200000 ], [ 522736.400000, 178491.900000 ], [ 522805.600000, 178560.200000 ], [ 522840.900000, 178586.600000 ], [ 522869.400000, 178596.000000 ], [ 522940.200000, 178604.900000 ], [ 522954.800000, 178614.400000 ], [ 522971.800000, 178641.100000 ], [ 523040.200000, 178655.500000 ], [ 523079.100000, 178673.400000 ], [ 523098.400000, 178691.900000 ], [ 523102.700000, 178723.100000 ], [ 523162.800000, 178785.900000 ], [ 523247.400000, 178801.300000 ], [ 523360.100000, 178846.100000 ], [ 523371.500000, 178860.000000 ], [ 523383.300000, 178923.400000 ], [ 523447.000000, 178994.900000 ], [ 523524.300000, 178974.200000 ], [ 523540.600000, 178965.100000 ], [ 523553.800000, 178939.600000 ], [ 523573.000000, 178927.600000 ], [ 523607.900000, 178925.600000 ], [ 523645.700000, 178932.400000 ], [ 523716.700000, 178905.200000 ], [ 523777.300000, 178909.000000 ], [ 523830.100000, 178936.700000 ], [ 523865.500000, 178986.000000 ], [ 523959.000000, 179001.800000 ], [ 523963.500000, 179028.300000 ], [ 523952.900000, 179087.800000 ], [ 523962.000000, 179107.400000 ], [ 523976.300000, 179113.400000 ], [ 524002.800000, 179112.600000 ], [ 524077.800000, 179060.500000 ], [ 524112.800000, 179075.600000 ], [ 524150.200000, 179119.300000 ], [ 524192.400000, 179150.300000 ], [ 524196.800000, 179187.600000 ], [ 524178.900000, 179225.900000 ], [ 524180.100000, 179246.700000 ], [ 524195.900000, 179274.200000 ], [ 524236.500000, 179275.500000 ], [ 524249.300000, 179266.700000 ], [ 524249.000000, 179165.500000 ], [ 524270.800000, 179149.000000 ], [ 524338.100000, 179117.400000 ], [ 524383.300000, 179289.900000 ], [ 524422.700000, 179338.800000 ], [ 524459.300000, 179365.600000 ], [ 524488.300000, 179383.000000 ], [ 524548.300000, 179399.200000 ], [ 524626.300000, 179385.000000 ], [ 524717.000000, 179390.500000 ], [ 524733.500000, 179398.300000 ], [ 524742.700000, 179574.400000 ], [ 524736.100000, 179634.300000 ], [ 524757.000000, 179726.000000 ], [ 524883.100000, 179953.600000 ], [ 524901.900000, 180021.400000 ], [ 525013.000000, 180205.700000 ], [ 525072.400000, 180368.400000 ], [ 525134.100000, 180447.400000 ], [ 525169.400000, 180511.400000 ], [ 525172.000000, 180532.400000 ], [ 525131.100000, 180620.600000 ], [ 525130.600000, 180654.500000 ], [ 525164.900000, 180763.400000 ], [ 525182.900000, 180795.400000 ], [ 525185.500000, 180824.900000 ], [ 525283.900000, 180859.400000 ], [ 525381.900000, 180927.900000 ], [ 525515.200000, 181007.800000 ], [ 525938.700000, 181322.700000 ], [ 526032.400000, 181464.700000 ], [ 526042.700000, 181490.200000 ], [ 526097.200000, 181562.300000 ], [ 526192.400000, 181651.900000 ], [ 526221.500000, 181709.300000 ], [ 526292.800000, 181788.100000 ], [ 526387.100000, 181838.400000 ], [ 526479.000000, 181916.100000 ], [ 526511.855000, 181969.779000 ], [ 526578.069000, 182018.669000 ], [ 526655.700000, 182056.500000 ], [ 526833.400000, 182167.600000 ], [ 526910.300000, 182243.200000 ], [ 526968.300000, 182317.900000 ], [ 526987.000000, 182331.100000 ], [ 527019.800000, 182341.800000 ], [ 527139.000000, 182355.200000 ], [ 527229.600000, 182402.500000 ], [ 527346.500000, 182415.800000 ], [ 527385.900000, 182409.800000 ], [ 527425.200000, 182411.900000 ], [ 527456.900000, 182424.200000 ], [ 527594.900000, 182494.500000 ], [ 527649.500000, 182530.800000 ], [ 527699.200000, 182551.200000 ], [ 527890.900000, 182697.700000 ], [ 527947.600000, 182731.500000 ], [ 528134.100000, 182907.000000 ], [ 528149.300000, 182930.400000 ], [ 528164.100000, 182970.000000 ], [ 528168.500000, 183062.400000 ], [ 528192.200000, 183135.600000 ], [ 528172.700000, 183145.100000 ], [ 528170.200000, 183152.400000 ], [ 528178.200000, 183183.400000 ], [ 528261.100000, 183236.000000 ], [ 528272.400000, 183248.800000 ], [ 528295.700000, 183286.300000 ], [ 528359.600000, 183356.500000 ], [ 528396.900000, 183416.400000 ], [ 528486.000000, 183524.100000 ], [ 528522.800000, 183591.100000 ], [ 528537.600000, 183603.500000 ], [ 528637.200000, 183612.000000 ], [ 528883.500000, 183693.500000 ], [ 528943.800000, 183689.900000 ], [ 528997.600000, 183696.400000 ], [ 529057.400000, 183715.400000 ], [ 529112.700000, 183721.400000 ], [ 529166.200000, 183744.200000 ], [ 529227.100000, 183742.400000 ], [ 529270.500000, 183748.700000 ], [ 529351.300000, 183780.000000 ], [ 529441.900000, 183763.700000 ], [ 529479.000000, 183748.000000 ], [ 529544.300000, 183738.200000 ], [ 529636.600000, 183711.000000 ], [ 529729.100000, 183696.400000 ], [ 529914.700000, 183649.600000 ], [ 530075.400000, 183591.300000 ], [ 530098.500000, 183579.400000 ], [ 530101.400000, 183564.200000 ], [ 530129.300000, 183533.700000 ], [ 530199.300000, 183505.200000 ], [ 530212.300000, 183505.700000 ], [ 530233.200000, 183553.800000 ], [ 530311.100000, 183656.200000 ], [ 530329.900000, 183693.100000 ], [ 530333.500000, 183709.400000 ], [ 530318.600000, 183768.800000 ], [ 530325.500000, 183840.900000 ], [ 530396.800000, 183918.600000 ], [ 530402.800000, 183932.500000 ], [ 530400.900000, 183954.400000 ], [ 530453.200000, 184031.900000 ], [ 530534.500000, 184095.600000 ], [ 530557.500000, 184121.500000 ], [ 530565.400000, 184171.900000 ], [ 530601.000000, 184220.700000 ], [ 530629.100000, 184247.400000 ], [ 530691.600000, 184268.300000 ], [ 530713.500000, 184282.600000 ], [ 530747.900000, 184321.700000 ], [ 530778.100000, 184371.400000 ], [ 530859.500000, 184526.800000 ], [ 530859.000000, 184548.100000 ], [ 530829.500000, 184602.600000 ], [ 530816.500000, 184619.100000 ], [ 530692.800000, 184697.600000 ], [ 530643.200000, 184774.800000 ], [ 530628.000000, 184812.000000 ], [ 530622.000000, 184849.800000 ], [ 530570.600000, 184911.300000 ], [ 530468.300000, 184987.100000 ], [ 530359.700000, 185048.900000 ], [ 530310.800000, 185058.700000 ], [ 530233.400000, 185062.200000 ], [ 530164.500000, 185038.400000 ], [ 530051.400000, 185021.500000 ], [ 529976.700000, 184988.500000 ], [ 529867.500000, 184961.100000 ], [ 529850.600000, 184951.800000 ], [ 529837.500000, 184933.500000 ], [ 529771.100000, 184889.600000 ], [ 529664.300000, 184832.600000 ], [ 529454.300000, 184768.500000 ], [ 529417.000000, 184763.700000 ], [ 529179.400000, 184760.100000 ], [ 529141.600000, 184747.600000 ], [ 529046.700000, 184778.400000 ], [ 528721.100000, 184835.100000 ], [ 528627.100000, 184883.300000 ], [ 528579.400000, 184918.900000 ], [ 528559.000000, 184949.100000 ], [ 528543.500000, 184998.400000 ], [ 528534.500000, 185067.700000 ], [ 528540.700000, 185178.400000 ], [ 528520.700000, 185258.700000 ], [ 528524.500000, 185267.200000 ], [ 528515.400000, 185348.200000 ], [ 528486.200000, 185436.300000 ], [ 528376.700000, 185415.000000 ], [ 528346.000000, 185416.900000 ], [ 528441.000000, 185607.200000 ], [ 528499.021000, 185794.594000 ], [ 528521.846000, 185842.095000 ] ], [ [ 519207.300000, 174343.800000 ], [ 519184.900000, 174307.600000 ], [ 519130.200000, 174252.300000 ], [ 519069.200000, 174165.800000 ], [ 519069.900000, 174132.800000 ], [ 519123.100000, 174070.500000 ], [ 519000.700000, 174005.700000 ], [ 518973.600000, 173972.600000 ], [ 519013.200000, 173922.200000 ], [ 519023.800000, 173894.700000 ], [ 519021.500000, 173844.900000 ], [ 519001.500000, 173756.700000 ], [ 518967.800000, 173712.400000 ], [ 518870.900000, 173669.500000 ], [ 518768.500000, 173644.300000 ], [ 518701.500000, 173607.000000 ], [ 518651.300000, 173564.900000 ], [ 518499.100000, 173466.900000 ], [ 518430.300000, 173433.900000 ], [ 518057.500000, 173344.900000 ], [ 518011.900000, 173342.500000 ], [ 517975.300000, 173329.700000 ], [ 517916.600000, 173295.200000 ], [ 517782.800000, 173187.400000 ], [ 517624.900000, 173094.200000 ], [ 517615.700000, 173056.600000 ], [ 517669.000000, 172952.000000 ], [ 517678.300000, 172802.500000 ], [ 517671.300000, 172771.100000 ], [ 517623.600000, 172725.100000 ], [ 517572.900000, 172686.900000 ], [ 517521.100000, 172658.200000 ], [ 517500.300000, 172630.200000 ], [ 517476.500000, 172616.200000 ], [ 517417.800000, 172589.600000 ], [ 517384.800000, 172618.400000 ], [ 517374.000000, 172614.200000 ], [ 517328.000000, 172559.200000 ], [ 517257.600000, 172451.200000 ], [ 517192.500000, 172385.300000 ], [ 517151.000000, 172307.700000 ], [ 517142.400000, 172229.400000 ], [ 517109.400000, 172179.800000 ], [ 517105.500000, 172144.300000 ], [ 517116.600000, 172137.300000 ], [ 517136.600000, 172038.000000 ], [ 517135.000000, 171995.100000 ], [ 517125.400000, 171975.800000 ], [ 517033.700000, 171896.900000 ], [ 517010.500000, 171887.200000 ], [ 516957.000000, 171890.300000 ], [ 516854.000000, 171825.300000 ], [ 516817.200000, 171818.100000 ], [ 516699.900000, 171677.100000 ], [ 516665.300000, 171655.200000 ], [ 516641.900000, 171630.000000 ], [ 516561.800000, 171584.900000 ], [ 516509.900000, 171546.600000 ], [ 516449.400000, 171529.700000 ], [ 516364.900000, 171529.400000 ], [ 516289.400000, 171454.800000 ], [ 516202.000000, 171403.300000 ], [ 516170.300000, 171366.100000 ], [ 516140.200000, 171283.100000 ], [ 516124.600000, 171162.400000 ], [ 516059.900000, 171016.000000 ], [ 516049.100000, 170977.000000 ], [ 516041.700000, 170817.900000 ], [ 516017.300000, 170726.100000 ], [ 516012.100000, 170645.000000 ], [ 515998.400000, 170566.500000 ], [ 515918.100000, 170407.800000 ], [ 515914.400000, 170339.500000 ], [ 515896.900000, 170261.900000 ], [ 515903.400000, 170202.300000 ], [ 515898.500000, 170179.400000 ], [ 515860.100000, 170090.100000 ], [ 515834.600000, 170000.000000 ], [ 515812.300000, 169951.400000 ], [ 515787.100000, 169821.400000 ], [ 515746.200000, 169733.600000 ], [ 515747.300000, 169708.800000 ], [ 515764.000000, 169675.000000 ], [ 515792.600000, 169477.900000 ], [ 515789.800000, 169418.900000 ], [ 515740.400000, 169306.600000 ], [ 515722.300000, 169163.600000 ], [ 515678.000000, 169070.600000 ], [ 515660.300000, 168931.700000 ], [ 515646.200000, 168891.300000 ], [ 515620.300000, 168846.100000 ], [ 515592.500000, 168835.100000 ], [ 515475.100000, 168861.300000 ], [ 515452.800000, 168892.100000 ], [ 515447.300000, 168921.100000 ], [ 515432.600000, 168949.300000 ], [ 515415.900000, 168960.100000 ], [ 515374.900000, 168957.600000 ], [ 515305.000000, 168907.800000 ], [ 515305.300000, 168898.600000 ], [ 515232.900000, 168881.200000 ], [ 515202.600000, 168931.600000 ], [ 515137.300000, 169009.600000 ], [ 515052.500000, 169075.300000 ], [ 515000.000000, 169103.000000 ], [ 514931.900000, 169126.200000 ], [ 514853.000000, 169143.800000 ], [ 514819.200000, 169140.100000 ], [ 514712.400000, 169041.300000 ], [ 514706.700000, 169022.600000 ], [ 514708.600000, 168964.400000 ], [ 514666.100000, 168883.800000 ], [ 514628.000000, 168857.600000 ], [ 514434.900000, 168783.200000 ], [ 514374.900000, 168783.200000 ], [ 514337.400000, 168792.400000 ], [ 514293.600000, 168787.200000 ], [ 514267.400000, 168776.000000 ], [ 514261.100000, 168764.700000 ], [ 514263.000000, 168734.300000 ], [ 514226.300000, 168708.600000 ], [ 514183.900000, 168702.800000 ], [ 514174.600000, 168687.500000 ], [ 514187.500000, 168681.700000 ], [ 514199.300000, 168664.800000 ], [ 514200.400000, 168650.900000 ], [ 514145.800000, 168607.800000 ], [ 514107.800000, 168550.700000 ], [ 514066.000000, 168503.100000 ], [ 514040.200000, 168440.500000 ], [ 514027.400000, 168426.500000 ], [ 513935.600000, 168356.700000 ], [ 513889.400000, 168335.500000 ], [ 513850.600000, 168268.500000 ], [ 513659.400000, 168129.000000 ], [ 513579.900000, 168061.500000 ], [ 513552.000000, 168021.800000 ], [ 513447.900000, 167962.700000 ], [ 513329.900000, 167877.900000 ], [ 513283.600000, 167809.600000 ], [ 513252.100000, 167791.100000 ], [ 513211.100000, 167787.900000 ], [ 513184.900000, 167771.600000 ], [ 512956.900000, 167582.100000 ], [ 512877.100000, 167547.900000 ], [ 512829.100000, 167511.900000 ], [ 512677.100000, 167423.100000 ], [ 512577.600000, 167354.900000 ], [ 512461.100000, 167297.400000 ], [ 512275.900000, 167175.900000 ], [ 512081.900000, 167065.600000 ], [ 512035.600000, 166988.600000 ], [ 511951.600000, 166912.600000 ], [ 511920.600000, 166891.100000 ], [ 511898.100000, 166883.400000 ], [ 511820.900000, 166884.900000 ], [ 511799.900000, 166878.400000 ], [ 511689.100000, 166800.600000 ], [ 511607.100000, 166734.100000 ], [ 511558.400000, 166671.400000 ], [ 511476.100000, 166600.100000 ], [ 511458.100000, 166610.400000 ], [ 511438.400000, 166635.600000 ], [ 511440.400000, 166647.900000 ], [ 511488.400000, 166700.900000 ], [ 511521.100000, 166763.600000 ], [ 511615.900000, 166851.600000 ], [ 511615.900000, 166867.400000 ], [ 511590.474000, 166891.651000 ], [ 511573.900000, 166893.200000 ], [ 511501.100000, 166845.400000 ], [ 511427.900000, 166806.900000 ], [ 511391.600000, 166802.900000 ], [ 511360.100000, 166829.300000 ], [ 511319.000000, 166800.400000 ], [ 511256.900000, 166739.700000 ], [ 511223.200000, 166667.200000 ], [ 511149.700000, 166580.500000 ], [ 511113.100000, 166491.400000 ], [ 511080.800000, 166435.700000 ], [ 511010.600000, 166343.600000 ], [ 510767.500000, 166175.800000 ], [ 510596.200000, 166038.500000 ], [ 510430.200000, 165923.000000 ], [ 510283.700000, 165773.000000 ], [ 510275.700000, 165742.500000 ], [ 510272.000000, 165681.200000 ], [ 510260.000000, 165657.000000 ], [ 510169.000000, 165591.700000 ], [ 510067.000000, 165495.000000 ], [ 510011.200000, 165424.700000 ], [ 509977.000000, 165368.500000 ], [ 509865.500000, 165245.000000 ], [ 509845.500000, 165182.000000 ], [ 509826.000000, 165160.000000 ], [ 509687.500000, 165023.700000 ], [ 509564.000000, 164928.700000 ], [ 509463.200000, 164829.500000 ], [ 509376.000000, 164760.500000 ], [ 509327.900000, 164733.400000 ], [ 509315.100000, 164714.200000 ], [ 509300.100000, 164668.900000 ], [ 509259.900000, 164614.900000 ], [ 509222.900000, 164545.200000 ], [ 509206.400000, 164468.700000 ], [ 509186.600000, 164424.700000 ], [ 509129.600000, 164319.200000 ], [ 509074.800000, 164241.000000 ], [ 509039.400000, 164206.900000 ], [ 509004.100000, 164186.900000 ], [ 508956.900000, 164174.200000 ], [ 508838.100000, 164158.400000 ], [ 508807.400000, 164143.700000 ], [ 508750.600000, 164068.400000 ], [ 508692.400000, 163975.700000 ], [ 508619.000000, 163808.200000 ], [ 508470.400000, 163693.400000 ], [ 508349.400000, 163630.200000 ], [ 508296.100000, 163582.400000 ], [ 508261.400000, 163535.200000 ], [ 508208.400000, 163421.400000 ], [ 508159.400000, 163346.200000 ], [ 508087.100000, 163284.400000 ], [ 507987.400000, 163229.400000 ], [ 507991.100000, 163185.100000 ], [ 507973.600000, 163154.500000 ], [ 507900.500000, 163075.700000 ], [ 507817.400000, 162972.600000 ], [ 507628.600000, 162703.900000 ], [ 507536.100000, 162607.000000 ], [ 507447.900000, 162483.400000 ], [ 507196.200000, 162174.200000 ], [ 507138.100000, 162126.700000 ], [ 507160.600000, 162109.900000 ], [ 507159.900000, 162070.900000 ], [ 506894.282000, 161759.591000 ], [ 506781.134000, 161637.976000 ], [ 506744.920000, 161613.135000 ], [ 506673.278000, 161677.714000 ], [ 506515.000000, 161536.100000 ], [ 506392.200000, 161345.900000 ], [ 506335.500000, 161239.900000 ], [ 506197.900000, 161078.700000 ], [ 506172.400000, 161029.000000 ], [ 506154.700000, 160966.200000 ], [ 506143.500000, 160894.400000 ], [ 506119.700000, 160666.900000 ], [ 506127.200000, 160628.100000 ], [ 506181.000000, 160484.400000 ], [ 506184.100000, 160448.700000 ], [ 506028.500000, 159811.600000 ], [ 505973.600000, 159707.400000 ], [ 505954.354000, 159685.885000 ], [ 505971.474000, 159651.550000 ], [ 505985.666000, 159600.457000 ], [ 506071.700000, 159523.000000 ], [ 506094.200000, 159524.000000 ], [ 506201.100000, 159573.500000 ], [ 506364.000000, 159666.400000 ], [ 506425.000000, 159714.600000 ], [ 506514.000000, 159750.100000 ], [ 506565.000000, 159819.100000 ], [ 506625.200000, 159875.400000 ], [ 506698.700000, 159961.400000 ], [ 506805.000000, 160048.400000 ], [ 507061.500000, 160300.600000 ], [ 507176.500000, 160379.900000 ], [ 507294.500000, 160483.900000 ], [ 507339.200000, 160516.100000 ], [ 507381.900000, 160578.100000 ], [ 507438.200000, 160575.600000 ], [ 507475.700000, 160558.100000 ], [ 507505.700000, 160555.600000 ], [ 507526.900000, 160561.900000 ], [ 507566.900000, 160558.100000 ], [ 507601.900000, 160563.100000 ], [ 507651.900000, 160588.100000 ], [ 507674.400000, 160620.600000 ], [ 507765.700000, 160690.600000 ], [ 507824.676000, 160715.708000 ], [ 507665.000000, 160468.700000 ], [ 507650.000000, 160435.500000 ], [ 507619.700000, 160417.000000 ], [ 507557.500000, 160344.700000 ], [ 507537.000000, 160260.000000 ], [ 507541.500000, 160201.700000 ], [ 507513.500000, 160172.200000 ], [ 507505.700000, 160155.200000 ], [ 507494.700000, 160090.000000 ], [ 507498.700000, 160077.200000 ], [ 507509.000000, 160074.000000 ], [ 507652.500000, 160132.000000 ], [ 507757.200000, 160144.700000 ], [ 507773.500000, 160141.500000 ], [ 507838.500000, 160101.700000 ], [ 507863.000000, 160094.700000 ], [ 507897.500000, 160093.200000 ], [ 507976.000000, 160108.200000 ], [ 508083.200000, 160034.500000 ], [ 508119.200000, 160033.500000 ], [ 508199.500000, 159997.500000 ], [ 508223.500000, 159924.500000 ], [ 508225.600000, 159881.200000 ], [ 508247.900000, 159853.900000 ], [ 508268.400000, 159836.300000 ], [ 508330.000000, 159826.000000 ], [ 508350.700000, 159813.200000 ], [ 508389.500000, 159779.500000 ], [ 508424.200000, 159732.500000 ], [ 508479.000000, 159729.200000 ], [ 508527.700000, 159743.200000 ], [ 508592.700000, 159742.200000 ], [ 508633.000000, 159748.500000 ], [ 508667.200000, 159762.000000 ], [ 508704.700000, 159792.200000 ], [ 508778.500000, 159772.500000 ], [ 508860.200000, 159814.500000 ], [ 508913.700000, 159854.700000 ], [ 509034.500000, 159831.200000 ], [ 509063.000000, 159836.000000 ], [ 509100.200000, 159856.500000 ], [ 509190.700000, 159956.200000 ], [ 509206.500000, 160055.500000 ], [ 509259.500000, 160106.700000 ], [ 509347.800000, 160169.800000 ], [ 509411.500000, 160235.700000 ], [ 509434.500000, 160242.700000 ], [ 509529.000000, 160209.200000 ], [ 509587.000000, 160200.200000 ], [ 509651.400000, 160164.300000 ], [ 509622.500000, 160114.600000 ], [ 509616.000000, 160038.900000 ], [ 509600.000000, 159995.400000 ], [ 509603.500000, 159909.400000 ], [ 509615.000000, 159850.100000 ], [ 509640.200000, 159796.400000 ], [ 509675.200000, 159766.600000 ], [ 509690.200000, 159731.400000 ], [ 509729.500000, 159674.900000 ], [ 509785.000000, 159634.400000 ], [ 509844.700000, 159610.100000 ], [ 509841.000000, 159557.600000 ], [ 509857.700000, 159496.900000 ], [ 509853.500000, 159432.400000 ], [ 509892.000000, 159380.900000 ], [ 509895.700000, 159336.600000 ], [ 509915.300000, 159309.700000 ], [ 509905.000000, 159285.600000 ], [ 509871.700000, 159250.900000 ], [ 509839.700000, 159173.100000 ], [ 509836.000000, 159125.600000 ], [ 509844.500000, 159099.600000 ], [ 509854.700000, 158991.500000 ], [ 509817.200000, 158936.700000 ], [ 509809.700000, 158887.200000 ], [ 509833.500000, 158813.000000 ], [ 509834.700000, 158614.700000 ], [ 509802.500000, 158473.500000 ], [ 509771.200000, 158409.000000 ], [ 509781.200000, 158389.200000 ], [ 509823.500000, 158390.000000 ], [ 509841.700000, 158379.200000 ], [ 509876.700000, 158344.500000 ], [ 509882.200000, 158318.700000 ], [ 509870.000000, 158135.500000 ], [ 509881.200000, 158113.200000 ], [ 509874.200000, 158068.500000 ], [ 509891.400000, 157989.700000 ], [ 509835.600000, 157829.000000 ], [ 509826.400000, 157813.700000 ], [ 509781.400000, 157781.000000 ], [ 509592.100000, 157711.500000 ], [ 509490.400000, 157660.200000 ], [ 509369.100000, 157586.200000 ], [ 509325.900000, 157521.700000 ], [ 509283.600000, 157478.000000 ], [ 509274.600000, 157450.000000 ], [ 509278.900000, 157414.500000 ], [ 509273.400000, 157394.700000 ], [ 509227.600000, 157362.700000 ], [ 509173.900000, 157338.200000 ], [ 509115.400000, 157292.700000 ], [ 509091.400000, 157217.700000 ], [ 509050.900000, 157174.200000 ], [ 509011.100000, 157118.700000 ], [ 509000.900000, 157098.200000 ], [ 509036.400000, 157095.600000 ], [ 509071.900000, 157103.600000 ], [ 509193.900000, 157171.900000 ], [ 509234.100000, 157207.400000 ], [ 509250.600000, 157209.400000 ], [ 509264.400000, 157196.400000 ], [ 509262.400000, 157181.900000 ], [ 509211.400000, 157124.100000 ], [ 509156.400000, 157028.600000 ], [ 509080.900000, 156922.600000 ], [ 509058.600000, 156874.400000 ], [ 509049.900000, 156819.600000 ], [ 509012.600000, 156722.300000 ], [ 508979.600000, 156669.600000 ], [ 508909.600000, 156585.600000 ], [ 508876.100000, 156518.100000 ], [ 508865.400000, 156473.800000 ], [ 508865.100000, 156438.600000 ], [ 508873.600000, 156399.600000 ], [ 508904.400000, 156378.300000 ], [ 508958.500000, 156367.700000 ], [ 508957.000000, 156360.200000 ], [ 508911.300000, 156316.700000 ], [ 508890.300000, 156263.200000 ], [ 508836.800000, 156203.000000 ], [ 508828.500000, 156169.000000 ], [ 508759.500000, 156081.000000 ], [ 508748.000000, 156047.500000 ], [ 508721.300000, 156044.200000 ], [ 508702.500000, 156021.200000 ], [ 508593.800000, 155995.200000 ], [ 508561.000000, 155971.500000 ], [ 508542.000000, 155949.000000 ], [ 508525.000000, 155895.700000 ], [ 508501.800000, 155858.700000 ], [ 508428.300000, 155820.700000 ], [ 508388.500000, 155810.500000 ], [ 508350.800000, 155781.500000 ], [ 508329.500000, 155756.000000 ], [ 508326.400000, 155735.600000 ], [ 508338.300000, 155687.000000 ], [ 508367.300000, 155673.200000 ], [ 508379.800000, 155650.700000 ], [ 508377.500000, 155632.000000 ], [ 508364.000000, 155606.200000 ], [ 508369.800000, 155575.500000 ], [ 508353.869000, 155548.002000 ], [ 508354.191000, 155533.408000 ], [ 508369.000000, 155503.100000 ], [ 508418.400000, 155460.600000 ], [ 508425.300000, 155403.900000 ], [ 508448.200000, 155401.400000 ], [ 508477.700000, 155407.900000 ], [ 508502.200000, 155420.700000 ], [ 508543.500000, 155461.700000 ], [ 508571.300000, 155472.700000 ], [ 508585.500000, 155468.200000 ], [ 508597.800000, 155453.500000 ], [ 508601.000000, 155390.000000 ], [ 508615.800000, 155382.500000 ], [ 508654.000000, 155383.000000 ], [ 508569.800000, 155298.800000 ], [ 508492.900000, 155253.200000 ], [ 508470.400000, 155232.600000 ], [ 508415.200000, 155157.000000 ], [ 508375.600000, 155087.000000 ], [ 508226.400000, 155026.600000 ], [ 508175.800000, 154944.200000 ], [ 508122.400000, 154885.200000 ], [ 508091.200000, 154830.100000 ], [ 508050.400000, 154776.400000 ], [ 508049.600000, 154760.100000 ], [ 508068.100000, 154693.300000 ], [ 508065.900000, 154672.700000 ], [ 507999.100000, 154506.100000 ], [ 507992.100000, 154467.400000 ], [ 508009.800000, 154444.400000 ], [ 508013.600000, 154358.900000 ], [ 508029.600000, 154324.400000 ], [ 508090.100000, 154284.900000 ], [ 508165.100000, 154258.400000 ], [ 508209.100000, 154233.900000 ], [ 508228.100000, 154218.400000 ], [ 508244.600000, 154188.900000 ], [ 508224.400000, 154127.900000 ], [ 508233.900000, 154076.700000 ], [ 508222.400000, 153987.200000 ], [ 508192.900000, 153946.200000 ], [ 508174.100000, 153895.200000 ], [ 508170.100000, 153859.700000 ], [ 508183.900000, 153789.700000 ], [ 508207.400000, 153746.200000 ], [ 508201.600000, 153666.400000 ], [ 508213.600000, 153616.400000 ], [ 508234.600000, 153564.900000 ], [ 508284.400000, 153491.900000 ], [ 508327.400000, 153457.900000 ], [ 508358.900000, 153417.400000 ], [ 508375.400000, 153406.900000 ], [ 508398.600000, 153407.400000 ], [ 508465.600000, 153444.900000 ], [ 508530.400000, 153469.200000 ], [ 508631.900000, 153483.400000 ], [ 508685.600000, 153484.700000 ], [ 508747.400000, 153470.900000 ], [ 508765.600000, 153459.700000 ], [ 508777.900000, 153433.700000 ], [ 508788.100000, 153374.900000 ], [ 508787.600000, 153343.900000 ], [ 508757.900000, 153241.200000 ], [ 508715.400000, 153172.900000 ], [ 508665.600000, 153054.400000 ], [ 508596.400000, 152917.100000 ], [ 508551.100000, 152843.600000 ], [ 508488.100000, 152709.100000 ], [ 508482.400000, 152677.900000 ], [ 508481.900000, 152589.100000 ], [ 508457.400000, 152535.400000 ], [ 508419.600000, 152386.600000 ], [ 508397.400000, 152330.400000 ], [ 508340.100000, 152260.400000 ], [ 508319.100000, 152183.600000 ], [ 508320.400000, 152163.100000 ], [ 508328.200000, 152150.700000 ], [ 508285.000000, 152102.700000 ], [ 508266.200000, 152071.700000 ], [ 508253.200000, 152026.200000 ], [ 508253.700000, 151987.200000 ], [ 508240.100000, 151955.100000 ], [ 508213.400000, 151924.900000 ], [ 508161.600000, 151917.600000 ], [ 508055.600000, 151954.400000 ], [ 507927.600000, 152021.100000 ], [ 507864.900000, 152046.100000 ], [ 507843.100000, 152051.400000 ], [ 507702.600000, 152049.600000 ], [ 507666.200000, 152061.300000 ], [ 507650.200000, 152054.800000 ], [ 507620.500000, 152011.400000 ], [ 507609.100000, 151981.500000 ], [ 507614.700000, 151906.900000 ], [ 507609.200000, 151857.100000 ], [ 507556.000000, 151741.900000 ], [ 507542.400000, 151721.200000 ], [ 507427.400000, 151604.200000 ], [ 507418.500000, 151587.900000 ], [ 507360.800000, 151364.600000 ], [ 507360.600000, 151308.700000 ], [ 507371.400000, 151233.200000 ], [ 507368.400000, 151202.500000 ], [ 507349.100000, 151173.200000 ], [ 507329.800000, 151161.800000 ], [ 507324.000000, 151178.100000 ], [ 507282.000000, 151197.700000 ], [ 507219.400000, 151253.100000 ], [ 507184.600000, 151269.700000 ], [ 507143.300000, 151278.800000 ], [ 507002.000000, 151284.600000 ], [ 506924.200000, 151275.400000 ], [ 506911.200000, 151260.100000 ], [ 506890.000000, 151203.600000 ], [ 506833.700000, 151160.100000 ], [ 506820.700000, 151083.700000 ], [ 506803.500000, 151054.700000 ], [ 506786.400000, 151043.900000 ], [ 506782.900000, 150983.700000 ], [ 506764.100000, 150874.900000 ], [ 506740.600000, 150779.900000 ], [ 506661.900000, 150726.600000 ], [ 506582.900000, 150661.100000 ], [ 506508.900000, 150620.600000 ], [ 506417.200000, 150603.400000 ], [ 506383.700000, 150586.300000 ], [ 506346.600000, 150578.600000 ], [ 506197.000000, 150565.000000 ], [ 506160.100000, 150551.500000 ], [ 506144.100000, 150525.500000 ], [ 506138.000000, 150499.400000 ], [ 506136.300000, 150393.300000 ], [ 506126.200000, 150316.800000 ], [ 506080.698000, 150252.880000 ], [ 506014.552000, 150252.880000 ], [ 505980.900000, 150237.700000 ], [ 505953.100000, 150164.200000 ], [ 505917.400000, 150096.500000 ], [ 505760.600000, 149887.500000 ], [ 505742.700000, 149875.000000 ], [ 505732.200000, 149856.800000 ], [ 505682.700000, 149822.800000 ], [ 505598.000000, 149794.300000 ], [ 505567.200000, 149739.800000 ], [ 505453.500000, 149656.600000 ], [ 505438.500000, 149641.600000 ], [ 505436.900000, 149628.900000 ], [ 505391.200000, 149633.800000 ], [ 505355.700000, 149617.300000 ], [ 505145.500000, 149423.900000 ], [ 505105.300000, 149342.900000 ], [ 505069.500000, 149300.500000 ], [ 505058.200000, 149278.100000 ], [ 505048.200000, 149209.600000 ], [ 505024.700000, 149162.100000 ], [ 504802.500000, 148814.300000 ], [ 504770.400000, 148782.300000 ], [ 504688.200000, 148745.700000 ], [ 504655.800000, 148712.400000 ], [ 504601.200000, 148544.600000 ], [ 504605.000000, 148477.800000 ], [ 504594.049000, 148457.888000 ], [ 504557.700000, 148438.600000 ], [ 504553.700000, 148429.400000 ], [ 504574.500000, 148387.000000 ], [ 504575.200000, 148371.400000 ], [ 504583.170000, 148362.450000 ], [ 504610.400000, 148353.500000 ], [ 504721.400000, 148393.800000 ], [ 504765.100000, 148403.300000 ], [ 504781.900000, 148413.800000 ], [ 504830.400000, 148467.100000 ], [ 504814.600000, 148532.100000 ], [ 504826.200000, 148579.500000 ], [ 504878.600000, 148627.300000 ], [ 504957.400000, 148756.100000 ], [ 505078.100000, 148820.100000 ], [ 505162.600000, 148901.300000 ], [ 505296.400000, 148963.600000 ], [ 505366.600000, 148979.600000 ], [ 505416.400000, 149005.800000 ], [ 505440.900000, 149026.100000 ], [ 505459.100000, 149052.800000 ], [ 505463.900000, 149121.800000 ], [ 505475.900000, 149143.300000 ], [ 505500.600000, 149143.100000 ], [ 505564.400000, 149116.600000 ], [ 505592.900000, 149118.800000 ], [ 505635.900000, 149133.800000 ], [ 505684.900000, 149122.100000 ], [ 505746.400000, 149124.300000 ], [ 505753.400000, 149103.600000 ], [ 505736.900000, 149081.800000 ], [ 505698.600000, 149075.600000 ], [ 505672.100000, 149063.600000 ], [ 505604.600000, 149023.300000 ], [ 505593.400000, 149007.800000 ], [ 505590.600000, 148898.600000 ], [ 505558.900000, 148764.600000 ], [ 505551.600000, 148683.800000 ], [ 505552.400000, 148636.600000 ], [ 505560.400000, 148603.300000 ], [ 505717.900000, 148263.800000 ], [ 505725.400000, 148223.800000 ], [ 505720.900000, 148108.300000 ], [ 505731.100000, 148078.300000 ], [ 505871.100000, 148020.300000 ], [ 505953.600000, 147944.800000 ], [ 505977.400000, 147935.800000 ], [ 506009.600000, 147940.300000 ], [ 506067.400000, 147966.800000 ], [ 506153.900000, 147976.000000 ], [ 506215.400000, 148012.300000 ], [ 506240.400000, 148008.500000 ], [ 506244.100000, 147991.300000 ], [ 506237.400000, 147975.000000 ], [ 506184.900000, 147920.300000 ], [ 506133.900000, 147832.000000 ], [ 506090.400000, 147798.800000 ], [ 506074.100000, 147770.000000 ], [ 506074.400000, 147715.000000 ], [ 506099.600000, 147666.000000 ], [ 506142.100000, 147607.800000 ], [ 506198.400000, 147570.500000 ], [ 506256.600000, 147552.000000 ], [ 506516.900000, 147445.300000 ], [ 506542.400000, 147448.000000 ], [ 506583.400000, 147466.800000 ], [ 506638.700000, 147472.100000 ], [ 506834.600000, 147474.300000 ], [ 506894.900000, 147457.000000 ], [ 506965.000000, 147400.500000 ], [ 507016.400000, 147334.300000 ], [ 507049.600000, 147250.000000 ], [ 507067.100000, 147159.000000 ], [ 507081.900000, 147120.000000 ], [ 507176.900000, 147025.000000 ], [ 507232.100000, 146949.300000 ], [ 507269.600000, 146910.300000 ], [ 507281.500000, 146888.100000 ], [ 507277.400000, 146840.300000 ], [ 507286.400000, 146791.000000 ], [ 507273.100000, 146681.000000 ], [ 507279.200000, 146570.900000 ], [ 507271.500000, 146559.900000 ], [ 507256.700000, 146575.900000 ], [ 507229.000000, 146631.900000 ], [ 507180.100000, 146783.500000 ], [ 507169.100000, 146789.800000 ], [ 507107.600000, 146796.500000 ], [ 506993.900000, 146801.800000 ], [ 506964.100000, 146810.500000 ], [ 506950.600000, 146821.500000 ], [ 506922.100000, 146871.500000 ], [ 506895.400000, 146886.000000 ], [ 506835.100000, 146894.300000 ], [ 506791.600000, 146949.500000 ], [ 506689.900000, 146940.500000 ], [ 506555.100000, 146970.800000 ], [ 506513.900000, 146968.000000 ], [ 506489.100000, 146958.800000 ], [ 506429.900000, 146915.300000 ], [ 506383.400000, 146876.000000 ], [ 506371.100000, 146857.000000 ], [ 506372.600000, 146821.800000 ], [ 506389.600000, 146806.000000 ], [ 506407.600000, 146804.000000 ], [ 506477.600000, 146823.000000 ], [ 506557.400000, 146780.500000 ], [ 506596.900000, 146774.800000 ], [ 506618.900000, 146764.800000 ], [ 506671.600000, 146717.000000 ], [ 506678.900000, 146687.000000 ], [ 506731.900000, 146627.000000 ], [ 506729.900000, 146560.800000 ], [ 506751.100000, 146526.300000 ], [ 506757.100000, 146497.300000 ], [ 506779.400000, 146468.300000 ], [ 506780.600000, 146453.300000 ], [ 506752.600000, 146413.300000 ], [ 506748.100000, 146337.500000 ], [ 506738.400000, 146306.300000 ], [ 506663.800000, 146158.400000 ], [ 506779.100000, 145895.900000 ], [ 506636.100000, 145764.400000 ], [ 506519.900000, 145684.600000 ], [ 506499.100000, 145663.400000 ], [ 506451.400000, 145577.400000 ], [ 506381.100000, 145534.600000 ], [ 506347.300000, 145502.800000 ], [ 506393.400000, 145446.400000 ], [ 506401.100000, 145388.600000 ], [ 506395.900000, 145362.400000 ], [ 506327.900000, 145210.100000 ], [ 506332.100000, 145030.400000 ], [ 506324.600000, 145014.900000 ], [ 506311.500000, 145006.900000 ], [ 506293.500000, 145057.900000 ], [ 506276.000000, 145080.900000 ], [ 506266.900000, 145075.600000 ], [ 506250.800000, 145053.500000 ], [ 506218.100000, 144975.900000 ], [ 506199.600000, 144905.600000 ], [ 506201.600000, 144867.100000 ], [ 506214.100000, 144828.600000 ], [ 506290.100000, 144717.100000 ], [ 506308.600000, 144672.100000 ], [ 506311.400000, 144619.100000 ], [ 506295.600000, 144566.300000 ], [ 506271.600000, 144532.800000 ], [ 506203.900000, 144495.100000 ], [ 506190.600000, 144469.800000 ], [ 506174.900000, 144385.800000 ], [ 506160.100000, 144366.100000 ], [ 506122.400000, 144348.300000 ], [ 506103.400000, 144327.800000 ], [ 506071.100000, 144235.600000 ], [ 506002.900000, 144197.800000 ], [ 505981.900000, 144179.300000 ], [ 505943.400000, 144094.300000 ], [ 505905.400000, 144051.100000 ], [ 505846.100000, 144023.800000 ], [ 505749.100000, 143990.800000 ], [ 505725.100000, 143972.300000 ], [ 505702.600000, 143918.800000 ], [ 505694.600000, 143869.600000 ], [ 505709.100000, 143805.300000 ], [ 505748.100000, 143751.600000 ], [ 505757.400000, 143725.800000 ], [ 505857.100000, 143658.600000 ], [ 506015.600000, 143484.800000 ], [ 506082.400000, 143425.100000 ], [ 506138.300000, 143404.800000 ], [ 506190.000000, 143362.400000 ], [ 506251.900000, 143455.200000 ], [ 506272.400000, 143472.400000 ], [ 506295.600000, 143469.200000 ], [ 506381.300000, 143413.000000 ], [ 506395.900000, 143409.400000 ], [ 506430.400000, 143412.200000 ], [ 506536.600000, 143440.400000 ], [ 506555.900000, 143435.900000 ], [ 506597.400000, 143409.200000 ], [ 506663.900000, 143396.900000 ], [ 506745.400000, 143431.200000 ], [ 506763.900000, 143430.700000 ], [ 506785.100000, 143419.700000 ], [ 506873.400000, 143313.700000 ], [ 506884.900000, 143283.900000 ], [ 506874.700000, 143180.700000 ], [ 506817.000000, 143039.800000 ], [ 506810.362000, 143017.454000 ], [ 506813.700000, 143000.700000 ], [ 506983.900000, 142718.400000 ], [ 506994.800000, 142691.500000 ], [ 507013.400000, 142620.200000 ], [ 507022.200000, 142487.900000 ], [ 507038.200000, 142441.200000 ], [ 507059.200000, 142423.900000 ], [ 507132.900000, 142395.400000 ], [ 507337.400000, 142358.200000 ], [ 507414.700000, 142323.700000 ], [ 507525.900000, 142313.700000 ], [ 507543.200000, 142296.900000 ], [ 507541.700000, 142239.400000 ], [ 507561.100000, 142174.600000 ], [ 507534.600000, 142162.700000 ], [ 507541.200000, 142097.000000 ], [ 507549.200000, 142075.800000 ], [ 507571.500000, 142066.700000 ], [ 507550.000000, 142042.000000 ], [ 507476.500000, 141994.300000 ], [ 507398.500000, 141899.000000 ], [ 507390.000000, 141879.800000 ], [ 507399.700000, 141850.200000 ], [ 507473.500000, 141766.800000 ], [ 507495.500000, 141708.500000 ], [ 507496.300000, 141675.300000 ], [ 507444.000000, 141351.500000 ], [ 507399.300000, 141226.800000 ], [ 507333.800000, 141155.000000 ], [ 507325.000000, 141133.800000 ], [ 507326.500000, 141089.300000 ], [ 507399.300000, 140984.000000 ], [ 507415.500000, 140950.000000 ], [ 507426.800000, 140832.000000 ], [ 507407.500000, 140784.500000 ], [ 507380.500000, 140749.000000 ], [ 507199.900000, 140556.700000 ], [ 507284.500000, 140465.400000 ], [ 507278.200000, 140452.900000 ], [ 507281.500000, 140413.400000 ], [ 507272.600000, 140386.600000 ], [ 507266.900000, 140306.900000 ], [ 507256.100000, 140289.100000 ], [ 507236.100000, 140277.600000 ], [ 507176.900000, 140293.600000 ], [ 507131.400000, 140272.900000 ], [ 507108.600000, 140245.900000 ], [ 507067.400000, 140161.900000 ], [ 507024.900000, 140130.600000 ], [ 507009.900000, 140124.600000 ], [ 507000.100000, 140129.100000 ], [ 506981.600000, 140170.100000 ], [ 506968.900000, 140179.400000 ], [ 506876.600000, 140131.900000 ], [ 506826.600000, 140096.900000 ], [ 506712.600000, 139954.400000 ], [ 506550.900000, 139779.100000 ], [ 506549.900000, 139763.100000 ], [ 506568.600000, 139696.900000 ], [ 506514.500000, 139652.000000 ], [ 506636.900000, 139500.700000 ], [ 506588.500000, 139382.400000 ], [ 506595.000000, 139300.900000 ], [ 506588.000000, 139262.400000 ], [ 506570.500000, 139217.100000 ], [ 506596.500000, 139157.200000 ], [ 506920.700000, 138879.400000 ], [ 507068.200000, 138766.100000 ], [ 507105.700000, 138722.300000 ], [ 507170.400000, 138372.100000 ], [ 507252.700000, 138113.700000 ], [ 507308.500000, 137998.200000 ], [ 507381.500000, 137883.200000 ], [ 507423.200000, 137797.200000 ], [ 507418.500000, 137750.400000 ], [ 507331.900000, 137606.900000 ], [ 507392.400000, 137580.500000 ], [ 507412.000000, 137587.200000 ], [ 507550.700000, 137746.200000 ] ], [ [ 528521.846000, 185842.095000 ], [ 528595.800000, 185921.500000 ], [ 528661.400000, 185972.700000 ], [ 528676.500000, 186009.500000 ], [ 528574.700000, 186047.700000 ], [ 528586.900000, 186083.000000 ] ], [ [ 611202.200000, 265008.900000 ], [ 611151.700000, 265055.300000 ], [ 611148.600000, 265144.100000 ], [ 611134.800000, 265200.100000 ], [ 611122.800000, 265224.600000 ], [ 611078.800000, 265270.400000 ], [ 611067.300000, 265295.100000 ], [ 611066.600000, 265316.600000 ], [ 611080.100000, 265373.100000 ], [ 611099.800000, 265412.400000 ], [ 611124.300000, 265423.100000 ], [ 611224.800000, 265424.600000 ], [ 611232.800000, 265436.400000 ], [ 611234.800000, 265455.700000 ] ], [ [ 518302.400000, 173976.400000 ], [ 518412.000000, 174045.400000 ], [ 518530.800000, 174141.000000 ], [ 518575.800000, 174163.600000 ], [ 518722.800000, 174201.500000 ], [ 518932.500000, 174277.900000 ], [ 519107.900000, 174352.700000 ], [ 519174.400000, 174354.100000 ], [ 519207.300000, 174343.800000 ] ], [ [ 528679.429000, 186237.615000 ], [ 528655.600000, 186200.800000 ], [ 528619.700000, 186175.200000 ] ], [ [ 578581.775000, 245924.817000 ], [ 578466.300000, 245760.500000 ], [ 578270.186000, 245537.183000 ], [ 578256.092000, 245540.524000 ], [ 578249.373000, 245526.321000 ], [ 578058.100000, 245439.100000 ], [ 577965.700000, 245419.900000 ], [ 577938.389000, 245421.883000 ], [ 577923.236000, 245429.516000 ], [ 577903.400000, 245410.900000 ], [ 577828.600000, 245384.300000 ], [ 577742.300000, 245333.700000 ], [ 577665.300000, 245310.800000 ], [ 577567.900000, 245291.900000 ], [ 577493.000000, 245295.800000 ], [ 577302.400000, 245355.800000 ], [ 577221.000000, 245373.200000 ], [ 577158.800000, 245377.700000 ], [ 577111.800000, 245373.000000 ], [ 577073.000000, 245361.500000 ], [ 576902.800000, 245277.500000 ], [ 576778.000000, 245240.300000 ], [ 576661.000000, 245238.300000 ], [ 576539.700000, 245251.600000 ], [ 576480.800000, 245269.000000 ], [ 576412.200000, 245335.000000 ], [ 576340.100000, 245390.900000 ], [ 576270.800000, 245425.000000 ], [ 576224.500000, 245461.700000 ], [ 576192.000000, 245472.200000 ], [ 576111.800000, 245483.500000 ], [ 575967.400000, 245410.200000 ], [ 575829.900000, 245352.100000 ], [ 575767.000000, 245335.100000 ], [ 575698.500000, 245301.500000 ], [ 575655.100000, 245291.200000 ], [ 575525.700000, 245283.700000 ], [ 575253.000000, 245221.100000 ], [ 575194.300000, 245203.900000 ], [ 575057.800000, 245133.500000 ], [ 574884.200000, 245094.100000 ], [ 574809.500000, 245065.800000 ], [ 574751.900000, 245024.900000 ], [ 574672.200000, 245006.200000 ], [ 574587.400000, 244994.400000 ], [ 574506.700000, 244999.100000 ], [ 574446.200000, 245023.100000 ], [ 574372.400000, 245029.900000 ], [ 574266.100000, 245054.100000 ], [ 574166.500000, 245098.500000 ], [ 574124.600000, 245093.800000 ], [ 574040.900000, 245044.300000 ], [ 573979.000000, 244996.400000 ], [ 573914.500000, 244931.700000 ], [ 573905.200000, 244914.600000 ], [ 573913.100000, 244604.000000 ], [ 573897.900000, 244523.900000 ], [ 573846.100000, 244470.100000 ], [ 573794.600000, 244404.200000 ], [ 573763.800000, 244337.100000 ], [ 573643.100000, 244287.800000 ], [ 573606.700000, 244260.700000 ], [ 573405.300000, 244159.300000 ], [ 573268.800000, 244122.600000 ], [ 573169.300000, 244107.200000 ], [ 573088.400000, 244107.200000 ], [ 573006.400000, 244120.600000 ], [ 572892.400000, 244158.500000 ], [ 572795.200000, 244215.800000 ], [ 572695.000000, 244314.900000 ], [ 572551.700000, 244440.700000 ], [ 572569.700000, 244451.900000 ], [ 572662.200000, 244552.600000 ], [ 572729.400000, 244615.700000 ], [ 572780.200000, 244533.400000 ], [ 572834.100000, 244482.200000 ], [ 573096.600000, 244392.200000 ], [ 573302.700000, 244371.300000 ], [ 573382.600000, 244386.300000 ], [ 573439.200000, 244404.200000 ], [ 573596.800000, 244484.800000 ], [ 573719.700000, 244587.600000 ], [ 573767.100000, 244651.700000 ], [ 573788.800000, 244712.800000 ], [ 573840.400000, 245021.600000 ], [ 573822.400000, 245057.300000 ], [ 573763.200000, 245086.100000 ], [ 573745.700000, 245101.300000 ], [ 573748.700000, 245121.800000 ], [ 573783.200000, 245135.300000 ], [ 573848.400000, 245145.900000 ], [ 574075.300000, 245255.500000 ], [ 574180.400000, 245294.700000 ], [ 574351.300000, 245311.400000 ], [ 574468.200000, 245297.600000 ], [ 574541.900000, 245296.600000 ], [ 574652.900000, 245313.200000 ], [ 574693.800000, 245326.100000 ], [ 574766.300000, 245365.000000 ], [ 574809.400000, 245408.600000 ], [ 574837.400000, 245463.300000 ], [ 574842.700000, 245480.100000 ], [ 574837.200000, 245575.100000 ], [ 574880.900000, 245691.600000 ], [ 574893.000000, 245754.500000 ], [ 574960.700000, 245888.300000 ], [ 574957.900000, 245901.000000 ], [ 574913.900000, 245930.500000 ], [ 574893.500000, 245936.600000 ], [ 574889.000000, 245948.100000 ], [ 574893.800000, 245958.000000 ], [ 575066.900000, 245991.600000 ], [ 575438.000000, 246083.700000 ], [ 575452.500000, 246094.500000 ], [ 575464.600000, 246115.500000 ], [ 575473.400000, 246169.700000 ], [ 575466.800000, 246207.800000 ], [ 575451.500000, 246245.400000 ], [ 575412.774000, 246280.911000 ], [ 575434.099000, 246299.266000 ], [ 575444.800000, 246300.600000 ], [ 575476.100000, 246281.100000 ], [ 575513.000000, 246253.900000 ], [ 575573.600000, 246192.600000 ], [ 575605.200000, 246174.800000 ], [ 575654.900000, 246178.600000 ], [ 575691.500000, 246188.900000 ], [ 575762.800000, 246230.500000 ], [ 575778.700000, 246225.800000 ], [ 575795.586000, 246204.032000 ], [ 575821.800000, 246185.800000 ], [ 575857.800000, 246187.500000 ], [ 575972.500000, 246326.000000 ], [ 576033.100000, 246374.300000 ], [ 576247.600000, 246516.400000 ], [ 576295.500000, 246562.000000 ], [ 576340.800000, 246570.000000 ], [ 576398.600000, 246595.800000 ], [ 576486.600000, 246620.800000 ], [ 576534.400000, 246646.000000 ], [ 576573.800000, 246679.800000 ], [ 576642.700000, 246762.800000 ], [ 576727.000000, 246835.800000 ], [ 576837.200000, 246907.900000 ], [ 576946.500000, 246943.300000 ], [ 576989.900000, 246939.400000 ], [ 577004.900000, 246908.600000 ], [ 576996.200000, 246829.800000 ], [ 577015.700000, 246812.800000 ], [ 577055.000000, 246797.800000 ], [ 577109.000000, 246793.000000 ], [ 577194.400000, 246797.300000 ], [ 577305.700000, 246820.800000 ], [ 577363.700000, 246849.300000 ], [ 577475.700000, 246926.500000 ], [ 577504.200000, 246934.000000 ], [ 577550.100000, 246933.300000 ], [ 577643.543000, 247184.789000 ], [ 577687.513000, 247166.117000 ], [ 577679.683000, 247141.422000 ], [ 577686.308000, 247117.931000 ], [ 577711.004000, 247098.657000 ], [ 577787.499000, 247103.475000 ], [ 577836.288000, 247114.920000 ], [ 577861.585000, 247128.773000 ], [ 577904.953000, 247172.743000 ], [ 577966.200000, 247210.300000 ], [ 578078.900000, 247271.700000 ], [ 578132.700000, 247288.900000 ], [ 578231.800000, 247333.800000 ], [ 578357.700000, 247428.100000 ], [ 578377.700000, 247432.400000 ], [ 578403.600000, 247428.300000 ], [ 578463.000000, 247387.900000 ], [ 578518.700000, 247373.300000 ], [ 578654.500000, 247319.400000 ], [ 578683.200000, 247322.600000 ], [ 578713.300000, 247337.500000 ], [ 578818.300000, 247403.700000 ], [ 578909.200000, 247426.200000 ], [ 578981.700000, 247462.900000 ], [ 579034.700000, 247481.600000 ], [ 579064.700000, 247472.600000 ], [ 579118.000000, 247441.600000 ], [ 579242.118000, 247435.797000 ], [ 579297.800000, 247465.200000 ], [ 579439.700000, 247592.500000 ], [ 579515.700000, 247640.600000 ], [ 579627.400000, 247724.400000 ], [ 579646.000000, 247726.100000 ], [ 579664.700000, 247715.900000 ], [ 579695.200000, 247714.800000 ], [ 579808.900000, 247762.500000 ], [ 579817.100000, 247774.800000 ], [ 579817.500000, 247802.600000 ], [ 579834.700000, 247829.100000 ], [ 579896.400000, 247871.700000 ], [ 579910.300000, 247874.300000 ], [ 579918.900000, 247868.100000 ], [ 579931.000000, 247818.200000 ], [ 580006.400000, 247817.900000 ], [ 580053.200000, 247789.400000 ], [ 580074.500000, 247786.400000 ], [ 580209.900000, 247810.600000 ], [ 580289.100000, 247898.400000 ], [ 580330.200000, 247925.900000 ], [ 580336.400000, 247942.000000 ], [ 580326.200000, 247986.100000 ], [ 580331.600000, 248026.200000 ], [ 580346.700000, 248050.700000 ], [ 580365.900000, 248056.400000 ], [ 580383.600000, 248047.800000 ], [ 580428.700000, 248009.000000 ], [ 580503.800000, 248010.000000 ], [ 580579.000000, 248042.000000 ], [ 580621.900000, 248040.400000 ], [ 580797.300000, 248095.800000 ], [ 580828.100000, 248094.100000 ], [ 580897.300000, 248117.200000 ], [ 580932.800000, 248107.800000 ], [ 581021.200000, 248137.100000 ], [ 581161.900000, 248232.300000 ], [ 581227.000000, 248283.900000 ], [ 581268.100000, 248331.000000 ], [ 581271.300000, 248352.500000 ], [ 581263.900000, 248377.300000 ], [ 581268.600000, 248400.400000 ], [ 581313.300000, 248444.400000 ], [ 581331.900000, 248472.500000 ], [ 581466.800000, 248542.600000 ], [ 581526.100000, 248563.200000 ], [ 581568.100000, 248561.200000 ], [ 581591.600000, 248545.600000 ], [ 581605.500000, 248526.700000 ], [ 581662.800000, 248494.900000 ], [ 581847.300000, 248487.300000 ], [ 581949.900000, 248456.000000 ], [ 582029.500000, 248414.600000 ], [ 582031.270000, 248404.556000 ], [ 582082.000000, 248372.200000 ], [ 582113.400000, 248364.000000 ], [ 582144.701000, 248364.180000 ], [ 582160.000000, 248329.800000 ], [ 582226.900000, 248302.700000 ], [ 582594.700000, 248209.600000 ], [ 582661.000000, 248204.300000 ], [ 582732.100000, 248173.500000 ], [ 583111.700000, 248180.400000 ], [ 583227.800000, 248198.900000 ], [ 583456.464000, 248254.970000 ], [ 583570.300000, 248267.700000 ], [ 583650.700000, 248253.100000 ], [ 583771.700000, 248214.600000 ], [ 584131.500000, 248159.400000 ], [ 584187.500000, 248155.600000 ], [ 584481.000000, 248161.400000 ], [ 584736.700000, 248224.600000 ], [ 584831.000000, 248237.700000 ], [ 584909.500000, 248275.100000 ], [ 584997.800000, 248294.700000 ], [ 585075.263000, 248326.052000 ], [ 585216.000000, 248343.200000 ], [ 585375.100000, 248288.900000 ], [ 585497.500000, 248259.700000 ], [ 585520.500000, 248251.700000 ], [ 585537.200000, 248233.000000 ], [ 585560.500000, 248223.500000 ], [ 585585.700000, 248223.200000 ], [ 585680.500000, 248259.500000 ], [ 585706.500000, 248259.000000 ], [ 586042.700000, 248170.100000 ], [ 586188.300000, 248122.900000 ], [ 586262.000000, 248106.400000 ], [ 586377.500000, 248042.700000 ], [ 586470.100000, 248001.600000 ], [ 586516.400000, 247988.100000 ], [ 586586.900000, 247981.200000 ], [ 586819.300000, 247977.400000 ], [ 586858.600000, 247965.300000 ], [ 587038.894000, 247976.748000 ], [ 587064.400000, 247967.800000 ], [ 587092.700000, 247929.800000 ], [ 587232.400000, 247895.500000 ], [ 587254.300000, 247877.700000 ], [ 587271.500000, 247846.300000 ], [ 587312.200000, 247814.700000 ], [ 587375.900000, 247744.100000 ], [ 587417.700000, 247717.300000 ], [ 587438.000000, 247723.100000 ], [ 587582.000000, 247692.700000 ], [ 587925.089000, 247673.117000 ], [ 588209.800000, 247638.300000 ], [ 588661.000000, 247618.700000 ], [ 588841.000000, 247598.900000 ], [ 589314.000000, 247709.600000 ], [ 589382.800000, 247717.300000 ], [ 589539.800000, 247765.500000 ], [ 589640.900000, 247782.700000 ], [ 589748.700000, 247835.100000 ], [ 589881.896000, 247866.709000 ], [ 589927.200000, 247857.800000 ], [ 590004.200000, 247858.100000 ], [ 590076.500000, 247865.300000 ], [ 590197.700000, 247891.600000 ], [ 590275.800000, 247897.600000 ], [ 590368.000000, 247894.000000 ], [ 590530.500000, 247859.000000 ], [ 590567.500000, 247834.200000 ], [ 590602.000000, 247783.100000 ], [ 590615.500000, 247777.600000 ], [ 590789.600000, 247882.900000 ], [ 590851.300000, 247890.600000 ], [ 590844.200000, 247878.700000 ], [ 590797.700000, 247862.500000 ], [ 590785.000000, 247846.700000 ], [ 590776.700000, 247821.800000 ], [ 590777.100000, 247789.500000 ], [ 590783.400000, 247770.600000 ], [ 590862.600000, 247695.800000 ], [ 590865.300000, 247680.000000 ], [ 590854.900000, 247673.300000 ], [ 590727.400000, 247656.200000 ], [ 590645.500000, 247635.200000 ], [ 590382.100000, 247512.900000 ], [ 590271.700000, 247471.200000 ], [ 590186.700000, 247388.200000 ], [ 590109.500000, 247343.700000 ], [ 590095.200000, 247341.700000 ], [ 590074.100000, 247352.800000 ], [ 590072.400000, 247386.600000 ], [ 590091.300000, 247441.200000 ], [ 590153.200000, 247546.100000 ], [ 590181.700000, 247624.700000 ], [ 590190.762000, 247683.468000 ], [ 590122.400000, 247634.000000 ], [ 590090.000000, 247597.500000 ], [ 590044.000000, 247576.700000 ], [ 590009.400000, 247533.500000 ], [ 589956.100000, 247504.400000 ], [ 589876.300000, 247437.200000 ], [ 589722.700000, 247366.000000 ], [ 589631.600000, 247316.500000 ], [ 589537.900000, 247298.700000 ], [ 589394.400000, 247261.000000 ], [ 589330.700000, 247256.500000 ], [ 589257.900000, 247229.500000 ], [ 589142.600000, 247216.700000 ], [ 588983.700000, 247169.400000 ], [ 588921.900000, 247136.500000 ], [ 588892.200000, 247085.300000 ], [ 588907.800000, 246914.600000 ], [ 588923.800000, 246893.700000 ], [ 588951.500000, 246879.200000 ], [ 588967.500000, 246858.400000 ], [ 588987.200000, 246755.100000 ], [ 589053.100000, 246703.000000 ], [ 589057.300000, 246640.800000 ], [ 589109.200000, 246579.300000 ], [ 589125.600000, 246461.600000 ], [ 589143.000000, 246420.300000 ], [ 589169.700000, 246382.900000 ], [ 589219.700000, 246349.300000 ], [ 589296.900000, 246316.800000 ], [ 589342.900000, 246305.300000 ], [ 589392.267000, 246313.767000 ], [ 589456.500000, 246412.900000 ], [ 589502.800000, 246446.600000 ], [ 589587.693000, 246585.148000 ], [ 589627.215000, 246602.290000 ], [ 589712.400000, 246617.000000 ], [ 589740.100000, 246615.900000 ], [ 589758.200000, 246626.600000 ], [ 589793.200000, 246680.900000 ], [ 589842.700000, 246722.000000 ], [ 589847.700000, 246788.100000 ], [ 589857.200000, 246797.900000 ], [ 589934.200000, 246829.400000 ], [ 589987.800000, 246888.900000 ], [ 590021.900000, 246915.600000 ], [ 590530.400000, 247113.000000 ], [ 590543.400000, 247116.500000 ], [ 590697.900000, 247099.900000 ], [ 590873.700000, 247167.200000 ], [ 591031.200000, 247249.500000 ], [ 591140.700000, 247273.500000 ], [ 591830.600000, 247360.000000 ], [ 592147.400000, 247366.500000 ], [ 592200.600000, 247270.200000 ], [ 592347.600000, 247186.000000 ], [ 592471.000000, 247093.800000 ], [ 592492.300000, 247070.300000 ], [ 592529.800000, 246979.400000 ], [ 592539.111000, 246899.685000 ], [ 592581.200000, 246769.100000 ], [ 592591.100000, 246754.600000 ], [ 592635.300000, 246728.500000 ], [ 592632.200000, 246662.100000 ], [ 592653.500000, 246593.800000 ], [ 592779.300000, 246245.300000 ], [ 592788.000000, 246238.700000 ], [ 592864.100000, 246070.100000 ], [ 592903.000000, 246096.300000 ], [ 592941.000000, 246099.700000 ], [ 592941.100000, 246094.000000 ], [ 592966.100000, 246126.500000 ], [ 592998.400000, 246153.000000 ], [ 593117.400000, 246209.200000 ], [ 593175.500000, 246180.600000 ], [ 593198.000000, 246158.100000 ], [ 593210.200000, 246122.300000 ], [ 593297.500000, 245709.600000 ], [ 593806.400000, 245849.400000 ], [ 593836.100000, 245868.600000 ], [ 593893.236000, 245952.131000 ], [ 593907.394000, 245947.310000 ], [ 593917.887000, 245953.835000 ], [ 593991.500000, 245913.400000 ], [ 594027.400000, 245888.700000 ], [ 594047.500000, 245865.600000 ], [ 594068.565000, 245813.593000 ], [ 594080.640000, 245813.469000 ], [ 594089.147000, 245804.652000 ], [ 594088.065000, 245791.659000 ], [ 594077.952000, 245784.386000 ], [ 594097.984000, 245719.953000 ], [ 594115.265000, 245720.291000 ], [ 594123.527000, 245710.016000 ], [ 594296.500000, 245691.300000 ], [ 594404.200000, 245692.600000 ], [ 594531.300000, 245704.400000 ], [ 594676.500000, 245687.600000 ], [ 594862.700000, 245718.100000 ], [ 594909.200000, 245718.700000 ], [ 595023.100000, 245703.800000 ], [ 595162.000000, 245665.400000 ], [ 595159.400000, 245705.700000 ], [ 595120.700000, 245794.400000 ], [ 595163.000000, 245819.700000 ], [ 595198.500000, 245878.400000 ], [ 595200.165000, 245917.719000 ], [ 595180.500000, 245971.400000 ], [ 595197.200000, 246105.100000 ], [ 595187.500000, 246128.900000 ], [ 595138.108000, 246199.076000 ], [ 595133.667000, 246217.196000 ], [ 595126.200000, 246381.900000 ], [ 595112.800000, 246500.400000 ], [ 595061.000000, 246641.900000 ], [ 595002.700000, 246701.100000 ], [ 595030.400000, 246728.100000 ], [ 595101.000000, 246766.900000 ], [ 595186.500000, 246844.200000 ], [ 595273.700000, 247033.500000 ], [ 595329.100000, 247203.700000 ], [ 595353.900000, 247211.800000 ], [ 595415.700000, 247215.900000 ], [ 595483.600000, 247205.400000 ], [ 595581.900000, 247213.600000 ], [ 595620.200000, 247202.000000 ], [ 595705.200000, 247197.900000 ], [ 595774.500000, 247163.900000 ], [ 595845.800000, 247148.200000 ], [ 595896.400000, 247123.600000 ], [ 595933.738000, 247115.535000 ], [ 596005.100000, 247162.700000 ], [ 596154.900000, 247161.600000 ], [ 596205.300000, 247142.400000 ], [ 596317.800000, 247164.100000 ], [ 596396.500000, 247143.700000 ], [ 596439.000000, 247143.300000 ], [ 596517.800000, 247119.100000 ], [ 596744.400000, 247104.900000 ], [ 596796.000000, 247107.800000 ], [ 596946.368000, 247091.872000 ], [ 597065.200000, 247052.900000 ], [ 597105.700000, 247033.400000 ], [ 597211.800000, 247019.000000 ], [ 597261.700000, 247005.900000 ], [ 597307.700000, 246978.900000 ], [ 597339.100000, 246943.400000 ], [ 597393.000000, 246968.700000 ], [ 597471.900000, 246938.200000 ], [ 597535.300000, 246941.600000 ], [ 597598.400000, 246915.700000 ], [ 597707.600000, 246902.500000 ], [ 597794.500000, 246860.500000 ], [ 597908.200000, 246815.900000 ], [ 597910.314000, 246804.479000 ], [ 598011.900000, 246831.000000 ], [ 598086.200000, 246841.900000 ], [ 598361.600000, 246767.200000 ], [ 598494.500000, 246723.400000 ], [ 598526.500000, 246725.900000 ], [ 598582.400000, 246785.500000 ], [ 598624.500000, 246811.100000 ], [ 598641.000000, 246801.700000 ], [ 598653.700000, 246750.900000 ], [ 598681.200000, 246696.300000 ], [ 598681.800000, 246683.900000 ], [ 598645.400000, 246592.700000 ], [ 598640.000000, 246566.100000 ], [ 598643.000000, 246539.700000 ], [ 598661.000000, 246485.800000 ], [ 598697.700000, 246459.800000 ], [ 598713.000000, 246434.800000 ], [ 598715.700000, 246376.100000 ], [ 598743.500000, 246293.200000 ], [ 598769.200000, 246255.500000 ], [ 598812.000000, 246224.700000 ], [ 598907.500000, 246203.000000 ], [ 598936.300000, 246203.100000 ], [ 598993.200000, 246179.900000 ], [ 599034.500000, 246179.700000 ], [ 599107.700000, 246194.400000 ], [ 599206.800000, 246229.600000 ], [ 599283.800000, 246284.800000 ], [ 599389.800000, 246344.400000 ], [ 599417.000000, 246395.500000 ], [ 599467.000000, 246415.400000 ], [ 599579.200000, 246546.500000 ], [ 599657.400000, 246599.500000 ], [ 599677.800000, 246636.700000 ], [ 599696.500000, 246694.100000 ], [ 599747.100000, 246738.100000 ], [ 599758.500000, 246739.400000 ], [ 599768.600000, 246729.100000 ], [ 599780.200000, 246680.600000 ], [ 599793.000000, 246669.300000 ], [ 599819.000000, 246666.800000 ], [ 599829.800000, 246659.100000 ], [ 599832.700000, 246647.300000 ], [ 599821.000000, 246575.700000 ], [ 599832.700000, 246533.200000 ], [ 599854.000000, 246504.900000 ], [ 599827.200000, 246438.200000 ], [ 599828.300000, 246396.300000 ], [ 599836.400000, 246355.200000 ], [ 599897.600000, 246187.400000 ], [ 599931.300000, 246026.300000 ], [ 600003.700000, 245817.700000 ], [ 600004.700000, 245797.700000 ], [ 599993.000000, 245780.500000 ], [ 600065.300000, 245725.700000 ], [ 600126.600000, 245706.000000 ], [ 600192.400000, 245708.900000 ], [ 600332.000000, 245766.600000 ], [ 600395.300000, 245779.500000 ], [ 600406.700000, 245788.300000 ], [ 600406.800000, 245801.500000 ], [ 600431.600000, 245817.400000 ], [ 600450.600000, 245848.900000 ], [ 600464.500000, 245858.100000 ], [ 600504.200000, 245843.000000 ], [ 600559.500000, 245849.200000 ], [ 600588.400000, 245859.300000 ], [ 600620.400000, 245892.700000 ], [ 600704.500000, 245892.500000 ], [ 600864.000000, 245922.000000 ], [ 601066.000000, 245968.500000 ], [ 601117.600000, 245983.700000 ], [ 601158.500000, 246006.000000 ], [ 601279.000000, 246008.500000 ], [ 601392.000000, 246001.400000 ], [ 601423.200000, 246005.600000 ], [ 601489.000000, 246030.500000 ], [ 601513.500000, 246009.800000 ], [ 601723.200000, 246019.800000 ], [ 601932.800000, 246033.900000 ], [ 602039.700000, 246059.800000 ], [ 602056.200000, 246057.300000 ], [ 602101.500000, 246033.100000 ], [ 602149.400000, 246023.600000 ], [ 602183.400000, 246029.100000 ], [ 602228.500000, 246046.500000 ], [ 602251.200000, 246045.800000 ], [ 602285.200000, 246001.300000 ], [ 602313.373000, 245980.959000 ], [ 602309.000000, 246060.700000 ], [ 602324.700000, 246115.400000 ], [ 602348.100000, 246131.300000 ], [ 602384.300000, 246144.400000 ], [ 602503.700000, 246160.700000 ], [ 602598.300000, 246162.900000 ], [ 602787.700000, 246197.100000 ], [ 602860.300000, 246193.800000 ], [ 602991.400000, 246169.500000 ], [ 603020.000000, 246174.700000 ], [ 603055.900000, 246191.800000 ], [ 603130.300000, 246199.600000 ], [ 603171.200000, 246212.000000 ], [ 603270.300000, 246201.000000 ], [ 603329.948000, 246167.161000 ], [ 603485.000000, 246196.100000 ], [ 603524.500000, 246214.400000 ], [ 603564.200000, 246251.100000 ], [ 603642.800000, 246210.400000 ], [ 603653.300000, 246221.900000 ], [ 603662.000000, 246253.400000 ], [ 603674.300000, 246260.900000 ], [ 603838.000000, 246230.100000 ], [ 603912.800000, 246231.900000 ], [ 603974.700000, 246243.000000 ], [ 604098.700000, 246086.600000 ], [ 604187.200000, 246045.400000 ], [ 604264.400000, 245990.500000 ], [ 604271.800000, 245967.100000 ], [ 604271.500000, 245922.100000 ], [ 604255.834000, 245850.901000 ], [ 604395.200000, 245837.700000 ], [ 604430.808000, 245822.868000 ], [ 604545.300000, 245816.100000 ], [ 604731.000000, 245791.600000 ], [ 604763.000000, 245797.400000 ], [ 604853.000000, 245831.100000 ], [ 604921.000000, 245842.400000 ], [ 604961.800000, 245862.500000 ], [ 605011.700000, 245838.500000 ], [ 605024.400000, 245823.200000 ], [ 605138.700000, 245854.000000 ], [ 605181.900000, 245803.500000 ], [ 605187.700000, 245778.000000 ], [ 605187.400000, 245710.500000 ], [ 605223.400000, 245635.900000 ], [ 605247.461000, 245551.536000 ], [ 605276.100000, 245554.700000 ], [ 605344.400000, 245538.900000 ], [ 605380.900000, 245543.800000 ], [ 605469.700000, 245536.500000 ], [ 605540.700000, 245540.400000 ], [ 605677.700000, 245619.100000 ], [ 605736.700000, 245629.900000 ], [ 605842.200000, 245663.400000 ], [ 605934.900000, 245715.600000 ], [ 605994.900000, 245791.900000 ], [ 605998.700000, 245813.400000 ], [ 605960.700000, 245935.900000 ], [ 605952.300000, 245981.500000 ], [ 605950.300000, 246004.700000 ], [ 605963.000000, 246043.000000 ], [ 605949.800000, 246156.500000 ], [ 605969.500000, 246213.700000 ], [ 605957.500000, 246285.700000 ], [ 605944.300000, 246308.500000 ], [ 605934.500000, 246312.500000 ], [ 605881.800000, 246304.500000 ], [ 605711.300000, 246303.200000 ], [ 605582.000000, 246316.200000 ], [ 605402.900000, 246352.000000 ], [ 605074.300000, 246437.200000 ], [ 604866.000000, 246521.900000 ], [ 604763.600000, 246616.800000 ], [ 604772.700000, 246630.100000 ], [ 604786.700000, 246631.900000 ], [ 604839.700000, 246570.600000 ], [ 604873.900000, 246557.600000 ], [ 604908.400000, 246553.900000 ], [ 604989.700000, 246557.100000 ], [ 605216.300000, 246589.500000 ], [ 605296.000000, 246585.200000 ], [ 605551.300000, 246590.500000 ], [ 605730.500000, 246573.500000 ], [ 605872.000000, 246578.200000 ], [ 605959.000000, 246584.700000 ], [ 606179.700000, 246616.100000 ], [ 606278.200000, 246642.900000 ], [ 606297.700000, 246642.400000 ], [ 606313.900000, 246626.400000 ], [ 606349.400000, 246556.100000 ], [ 606359.700000, 246532.100000 ], [ 606359.400000, 246515.600000 ], [ 606346.900000, 246466.400000 ], [ 606297.400000, 246362.400000 ], [ 606262.900000, 246225.400000 ], [ 606219.900000, 246152.400000 ], [ 606228.400000, 246130.600000 ], [ 606267.900000, 246102.500000 ], [ 606393.300000, 246213.400000 ], [ 606525.400000, 246312.800000 ], [ 606582.800000, 246489.100000 ], [ 606596.500000, 246515.100000 ], [ 606633.500000, 246556.400000 ], [ 606674.500000, 246664.400000 ], [ 606703.300000, 246715.100000 ], [ 606726.200000, 246774.900000 ], [ 606724.200000, 246785.900000 ], [ 606690.900000, 246822.900000 ], [ 606644.200000, 246906.900000 ], [ 606637.200000, 246923.900000 ], [ 606642.028000, 246942.740000 ], [ 606609.600000, 246987.000000 ], [ 606574.500000, 247053.400000 ], [ 606572.000000, 247073.600000 ], [ 606578.200000, 247099.300000 ], [ 606566.300000, 247130.100000 ], [ 606571.500000, 247191.100000 ], [ 606564.800000, 247214.900000 ], [ 606546.000000, 247251.400000 ], [ 606461.000000, 247358.600000 ], [ 606411.800000, 247393.900000 ], [ 606398.800000, 247462.600000 ], [ 606363.300000, 247576.000000 ], [ 606306.500000, 247617.900000 ], [ 606226.500000, 247715.100000 ], [ 606217.500000, 247740.600000 ], [ 606118.300000, 247764.100000 ], [ 606095.000000, 247761.600000 ], [ 606079.000000, 247747.100000 ], [ 606040.500000, 247664.600000 ], [ 606027.300000, 247657.400000 ], [ 605961.200000, 247665.600000 ], [ 605787.200000, 247650.600000 ], [ 605678.400000, 247656.900000 ], [ 605628.900000, 247663.100000 ], [ 605567.200000, 247695.400000 ], [ 605515.400000, 247703.100000 ], [ 605490.600000, 247689.600000 ], [ 605430.700000, 247598.900000 ], [ 605403.400000, 247590.100000 ], [ 605374.400000, 247600.900000 ], [ 605325.600000, 247657.600000 ], [ 605283.600000, 247677.100000 ], [ 605057.000000, 247708.500000 ], [ 604973.900000, 247713.700000 ], [ 604914.000000, 247774.500000 ], [ 604846.600000, 247824.400000 ], [ 604804.200000, 247835.200000 ], [ 604775.300000, 247856.800000 ], [ 604776.500000, 247899.100000 ], [ 604810.754000, 247920.674000 ], [ 604808.400000, 247974.500000 ], [ 604885.800000, 248243.800000 ], [ 604889.800000, 248275.300000 ], [ 604885.300000, 248290.100000 ], [ 604860.300000, 248305.600000 ], [ 604817.600000, 248320.100000 ], [ 604720.300000, 248337.800000 ], [ 604626.600000, 248345.800000 ], [ 604512.800000, 248371.100000 ], [ 604410.100000, 248406.300000 ], [ 604370.600000, 248412.300000 ], [ 604324.300000, 248455.300000 ], [ 604274.600000, 248513.800000 ], [ 604232.100000, 248587.200000 ], [ 604283.000000, 248562.500000 ], [ 604363.200000, 248543.700000 ], [ 604424.700000, 248547.700000 ], [ 604507.200000, 248574.200000 ], [ 604534.700000, 248598.200000 ], [ 604575.200000, 248667.500000 ], [ 604633.500000, 248833.700000 ], [ 604637.700000, 248872.500000 ], [ 604629.700000, 248919.200000 ], [ 604615.000000, 248949.200000 ], [ 604595.900000, 248969.700000 ], [ 604553.400000, 248990.500000 ], [ 604424.100000, 249017.200000 ], [ 604324.400000, 249054.000000 ], [ 604276.100000, 249121.700000 ], [ 604252.100000, 249170.700000 ], [ 604256.800000, 249194.600000 ], [ 604343.900000, 249268.200000 ], [ 604424.900000, 249388.400000 ], [ 604426.400000, 249411.600000 ], [ 604370.600000, 249470.400000 ], [ 604367.800000, 249493.700000 ], [ 604339.900000, 249530.700000 ], [ 604170.100000, 249647.000000 ], [ 604100.900000, 249702.100000 ], [ 604126.600000, 249759.600000 ], [ 604185.100000, 249856.100000 ], [ 604216.400000, 249890.600000 ], [ 604282.200000, 249945.000000 ], [ 604296.700000, 249970.000000 ], [ 604304.700000, 250002.000000 ], [ 604304.500000, 250040.000000 ], [ 604286.200000, 250074.000000 ], [ 604246.500000, 250119.200000 ], [ 604166.700000, 250174.200000 ], [ 604154.700000, 250194.000000 ], [ 604155.200000, 250210.500000 ], [ 604277.500000, 250320.000000 ], [ 604316.500000, 250367.500000 ], [ 604350.500000, 250397.000000 ], [ 604398.700000, 250423.200000 ], [ 604455.700000, 250418.000000 ], [ 604468.700000, 250424.000000 ], [ 604499.200000, 250643.000000 ], [ 604503.000000, 250735.700000 ], [ 604523.000000, 250783.500000 ], [ 604531.000000, 250840.500000 ], [ 604543.500000, 250857.500000 ], [ 604590.700000, 250894.200000 ], [ 604624.500000, 250957.000000 ], [ 604682.000000, 250988.900000 ], [ 604708.200000, 251013.900000 ], [ 604730.000000, 251048.100000 ], [ 604761.400000, 251120.800000 ], [ 604783.700000, 251300.600000 ], [ 604782.200000, 251383.900000 ], [ 604776.200000, 251411.700000 ], [ 604850.900000, 251479.600000 ], [ 604881.700000, 251551.400000 ], [ 604876.400000, 251609.700000 ], [ 604863.200000, 251634.700000 ], [ 604859.900000, 251730.200000 ], [ 604842.400000, 251761.400000 ], [ 604839.300000, 251780.900000 ], [ 604843.800000, 251880.800000 ], [ 604838.513000, 251898.058000 ], [ 604776.600000, 251912.400000 ], [ 604771.500000, 251920.200000 ], [ 604817.900000, 252101.600000 ], [ 604827.625000, 252105.028000 ], [ 604829.312000, 252117.257000 ], [ 604813.100000, 252121.700000 ], [ 604801.600000, 252143.800000 ], [ 604769.300000, 252169.000000 ], [ 604667.500000, 252178.600000 ], [ 604652.000000, 252173.100000 ], [ 604645.700000, 252180.900000 ], [ 604648.000000, 252190.600000 ], [ 604588.500000, 252287.800000 ], [ 604505.200000, 252289.600000 ], [ 604349.500000, 252309.900000 ], [ 604291.700000, 252345.400000 ], [ 604246.500000, 252355.100000 ], [ 604192.000000, 252356.900000 ], [ 604077.700000, 252404.600000 ], [ 603994.500000, 252430.400000 ], [ 603918.200000, 252440.600000 ], [ 603748.200000, 252435.900000 ], [ 603578.500000, 252453.900000 ], [ 603473.900000, 252440.900000 ], [ 603352.700000, 252446.600000 ], [ 603253.500000, 252458.900000 ], [ 603099.700000, 252498.900000 ], [ 602979.200000, 252550.900000 ], [ 602816.200000, 252662.100000 ], [ 602760.500000, 252715.900000 ], [ 602709.700000, 252752.600000 ], [ 602594.800000, 252805.500000 ], [ 602561.500000, 252829.100000 ], [ 602560.189000, 252857.578000 ], [ 602626.600000, 252928.200000 ], [ 602638.800000, 252970.500000 ], [ 602641.000000, 253010.800000 ], [ 602629.200000, 253070.100000 ], [ 602597.900000, 253143.600000 ], [ 602533.200000, 253245.100000 ], [ 602500.000000, 253323.600000 ], [ 602451.000000, 253469.500000 ], [ 602353.300000, 253634.900000 ], [ 602303.800000, 253688.200000 ], [ 602305.200000, 253704.200000 ], [ 602247.900000, 253777.400000 ], [ 602222.700000, 253831.400000 ], [ 602188.700000, 253938.900000 ], [ 602171.200000, 253958.400000 ], [ 601972.500000, 254061.300000 ], [ 601857.500000, 254137.500000 ], [ 601777.300000, 254214.800000 ], [ 601716.000000, 254300.500000 ], [ 601720.400000, 254331.900000 ], [ 601728.400000, 254338.900000 ], [ 601838.200000, 254272.000000 ], [ 601865.800000, 254264.800000 ], [ 601929.500000, 254267.500000 ], [ 601987.811000, 254287.203000 ], [ 601979.400000, 254311.700000 ], [ 601926.200000, 254356.700000 ], [ 601905.400000, 254433.200000 ], [ 601911.400000, 254453.900000 ], [ 602076.100000, 254487.700000 ], [ 602149.500000, 254533.500000 ], [ 602298.400000, 254649.900000 ], [ 602575.800000, 254759.400000 ], [ 602614.000000, 254807.700000 ], [ 602623.900000, 254838.300000 ], [ 602622.600000, 254856.200000 ], [ 602606.100000, 254870.400000 ], [ 602584.100000, 254870.400000 ], [ 602403.400000, 254823.700000 ], [ 602350.900000, 254817.400000 ], [ 601990.300000, 254820.400000 ], [ 601865.100000, 254828.600000 ], [ 601841.900000, 254836.300000 ], [ 601809.000000, 254861.400000 ], [ 601748.700000, 254924.600000 ], [ 601692.100000, 254952.600000 ], [ 601659.500000, 254948.200000 ], [ 601589.000000, 254899.200000 ], [ 601562.800000, 254888.700000 ], [ 601538.300000, 254890.000000 ], [ 601533.800000, 254907.000000 ], [ 601564.300000, 254937.500000 ], [ 601622.300000, 254974.500000 ], [ 601655.400000, 255016.400000 ], [ 601668.100000, 255061.800000 ], [ 601653.500000, 255113.900000 ], [ 601720.500000, 255180.400000 ], [ 601863.800000, 255300.400000 ], [ 602014.100000, 255462.900000 ], [ 602059.700000, 255475.200000 ], [ 602064.000000, 255481.300000 ], [ 602061.700000, 255528.700000 ], [ 602086.200000, 255527.900000 ], [ 602152.100000, 255556.000000 ], [ 602252.600000, 255582.400000 ], [ 602306.400000, 255627.700000 ], [ 602462.500000, 255681.200000 ], [ 602582.700000, 255679.300000 ], [ 602647.500000, 255705.100000 ], [ 602697.700000, 255711.700000 ], [ 602705.100000, 255721.100000 ], [ 602775.100000, 255725.300000 ], [ 602952.500000, 255773.000000 ], [ 603011.800000, 255781.100000 ], [ 603085.100000, 255778.300000 ], [ 603102.800000, 255765.100000 ], [ 603125.900000, 255731.500000 ], [ 603144.300000, 255731.600000 ], [ 603174.800000, 255749.100000 ], [ 603409.500000, 255932.600000 ], [ 603499.000000, 255957.600000 ], [ 603578.600000, 256009.600000 ], [ 603612.700000, 256041.500000 ], [ 603848.000000, 256166.700000 ], [ 603921.600000, 256192.100000 ], [ 603969.300000, 256189.900000 ], [ 604037.800000, 256164.200000 ], [ 604071.500000, 256173.900000 ], [ 604090.800000, 256169.300000 ], [ 604086.000000, 256149.900000 ], [ 604033.100000, 256077.800000 ], [ 604052.800000, 256097.200000 ], [ 604176.400000, 256165.000000 ], [ 604206.500000, 256179.000000 ], [ 604266.500000, 256190.900000 ], [ 604295.400000, 256229.800000 ], [ 604317.500000, 256284.200000 ], [ 604381.800000, 256314.500000 ], [ 604403.000000, 256315.200000 ], [ 604563.000000, 256276.700000 ], [ 604660.800000, 256220.200000 ], [ 604689.500000, 256039.200000 ], [ 604745.200000, 255861.900000 ], [ 604816.700000, 255786.500000 ], [ 604846.700000, 255783.900000 ], [ 605059.100000, 255814.800000 ], [ 605073.500000, 255832.900000 ], [ 605117.800000, 255859.500000 ], [ 605183.900000, 255919.700000 ], [ 605293.200000, 256001.500000 ], [ 605556.700000, 256166.600000 ], [ 605872.800000, 256307.800000 ], [ 606016.900000, 256383.900000 ], [ 606095.300000, 256416.500000 ], [ 606648.800000, 256423.200000 ], [ 607094.200000, 256488.500000 ], [ 607243.700000, 256525.000000 ], [ 607413.200000, 256578.200000 ], [ 607546.100000, 256630.300000 ], [ 607773.600000, 256731.700000 ], [ 608071.100000, 256834.400000 ], [ 608249.400000, 256880.700000 ], [ 608328.000000, 256888.100000 ], [ 608405.700000, 256887.100000 ], [ 608650.400000, 256863.800000 ], [ 608686.700000, 256851.800000 ], [ 608698.200000, 256828.100000 ], [ 608691.200000, 256799.800000 ], [ 608675.000000, 256778.800000 ], [ 608636.700000, 256750.300000 ], [ 608542.600000, 256712.300000 ], [ 608454.000000, 256694.000000 ], [ 608380.000000, 256690.800000 ], [ 608369.000000, 256684.700000 ], [ 608499.100000, 256662.100000 ], [ 608589.100000, 256658.500000 ], [ 608748.300000, 256666.300000 ], [ 608888.400000, 256755.200000 ], [ 608969.400000, 256831.100000 ], [ 609034.300000, 256907.400000 ], [ 609078.900000, 257005.100000 ], [ 609086.800000, 257034.800000 ], [ 609089.700000, 257090.700000 ], [ 609080.300000, 257156.800000 ], [ 609072.500000, 257191.600000 ], [ 609045.600000, 257255.300000 ], [ 609030.100000, 257271.300000 ], [ 608977.100000, 257289.600000 ], [ 608904.200000, 257384.500000 ], [ 608822.900000, 257450.800000 ], [ 608799.100000, 257502.800000 ], [ 608792.900000, 257565.600000 ], [ 608781.900000, 257592.300000 ], [ 608703.000000, 257606.800000 ], [ 608510.400000, 257684.400000 ], [ 608372.100000, 257780.600000 ], [ 608315.400000, 257840.200000 ], [ 608389.600000, 257824.800000 ], [ 608488.200000, 257791.800000 ], [ 608542.900000, 257801.500000 ], [ 608609.400000, 257797.800000 ], [ 608720.900000, 257783.800000 ], [ 608759.100000, 257773.000000 ], [ 608798.200000, 257751.600000 ], [ 608816.600000, 257760.900000 ], [ 608904.958000, 257697.772000 ], [ 608933.400000, 257711.000000 ], [ 609052.900000, 257823.000000 ], [ 609060.400000, 257848.000000 ], [ 609065.100000, 257922.800000 ], [ 609056.900000, 258055.000000 ], [ 609079.400000, 258188.300000 ], [ 609201.500000, 258153.000000 ], [ 609217.800000, 258263.800000 ], [ 609344.200000, 258242.600000 ], [ 609364.000000, 258308.100000 ], [ 609303.500000, 258319.400000 ], [ 609311.400000, 258388.400000 ], [ 609289.800000, 258394.400000 ], [ 609321.400000, 258509.800000 ], [ 609009.400000, 258602.100000 ], [ 609080.800000, 258906.600000 ], [ 609161.300000, 259415.800000 ], [ 609197.500000, 259418.600000 ], [ 609263.900000, 259563.800000 ], [ 609265.900000, 259628.000000 ], [ 609250.100000, 259722.000000 ], [ 609258.900000, 259776.300000 ], [ 609323.700000, 259889.300000 ], [ 609495.200000, 260057.900000 ], [ 609507.800000, 260040.000000 ], [ 609615.700000, 260035.200000 ], [ 609754.200000, 260042.200000 ], [ 609860.500000, 260055.900000 ], [ 609880.200000, 260065.900000 ], [ 609886.500000, 260080.400000 ], [ 609891.200000, 260150.700000 ], [ 609867.400000, 260276.300000 ], [ 609999.690000, 260482.371000 ], [ 609943.711000, 260496.735000 ], [ 610009.700000, 260638.100000 ], [ 610034.200000, 260656.800000 ], [ 610123.300000, 260701.200000 ], [ 610140.400000, 260716.300000 ], [ 610188.900000, 260795.100000 ], [ 610245.600000, 260855.000000 ], [ 610310.400000, 260900.100000 ], [ 610357.718000, 260914.277000 ], [ 610362.400000, 260932.500000 ], [ 610340.600000, 260963.500000 ], [ 610403.600000, 261006.900000 ], [ 610424.100000, 261018.600000 ], [ 610498.400000, 261032.200000 ], [ 610510.200000, 261047.300000 ], [ 610506.697000, 261068.118000 ], [ 610709.900000, 261117.200000 ], [ 610799.100000, 261149.000000 ], [ 610777.600000, 261170.600000 ], [ 610778.400000, 261192.600000 ], [ 610865.200000, 261371.400000 ], [ 610835.100000, 261375.200000 ], [ 610786.900000, 261365.500000 ], [ 610619.100000, 261360.700000 ], [ 610537.900000, 261343.200000 ], [ 610560.100000, 261391.500000 ], [ 610591.000000, 261437.200000 ], [ 610588.400000, 261542.700000 ], [ 610608.600000, 261645.200000 ], [ 610662.600000, 261754.200000 ], [ 610722.900000, 261826.000000 ], [ 610779.900000, 261844.700000 ], [ 610895.700000, 261845.000000 ], [ 610892.500000, 261876.000000 ], [ 610880.500000, 261908.800000 ], [ 610900.900000, 262080.900000 ], [ 611139.000000, 262129.500000 ], [ 611189.900000, 262133.900000 ], [ 611321.900000, 262575.300000 ], [ 611378.400000, 262846.300000 ], [ 611391.600000, 262974.300000 ], [ 611432.100000, 263188.600000 ], [ 611432.900000, 263217.100000 ], [ 611395.900000, 263384.100000 ], [ 611386.900000, 263454.600000 ], [ 611361.800000, 263533.600000 ], [ 611353.100000, 263616.100000 ], [ 611372.332000, 263738.333000 ], [ 611375.700000, 263836.700000 ], [ 611399.800000, 263899.500000 ], [ 611400.000000, 264033.100000 ], [ 611369.600000, 264149.200000 ], [ 611336.800000, 264154.100000 ], [ 611316.100000, 264164.100000 ], [ 611287.600000, 264194.900000 ], [ 611301.800000, 264469.600000 ], [ 611291.800000, 264537.400000 ], [ 611264.800000, 264580.900000 ], [ 611202.300000, 264625.900000 ], [ 611186.100000, 264659.100000 ], [ 611187.919000, 264795.453000 ], [ 611215.300000, 264897.600000 ], [ 611202.200000, 265008.900000 ] ] ] } } +, +{ "type": "Feature", "properties": { "FID": 2.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 645424.900000, 185831.100000 ], [ 645468.999000, 185782.827000 ], [ 645426.000000, 185734.600000 ], [ 645464.600000, 185672.100000 ], [ 645521.500000, 185625.800000 ], [ 645548.600000, 185570.000000 ], [ 645600.100000, 185550.300000 ], [ 645629.200000, 185507.700000 ], [ 645667.700000, 185469.600000 ], [ 645742.100000, 185445.000000 ], [ 645791.100000, 185445.200000 ], [ 645905.600000, 185362.500000 ], [ 645900.500000, 185327.300000 ], [ 645970.900000, 185296.100000 ], [ 645982.700000, 185261.700000 ], [ 646061.700000, 185184.000000 ], [ 646089.700000, 185130.500000 ], [ 646127.300000, 185082.400000 ], [ 646143.300000, 185047.500000 ], [ 646200.500000, 185017.800000 ], [ 646282.000000, 184990.500000 ], [ 646300.100000, 184976.100000 ], [ 646361.500000, 184874.100000 ], [ 646366.300000, 184856.100000 ], [ 646388.300000, 184825.500000 ], [ 646432.500000, 184784.700000 ], [ 646435.100000, 184751.900000 ] ], [ [ 559342.104000, 142940.163000 ], [ 559302.015000, 143023.834000 ], [ 559311.005000, 143028.045000 ], [ 559314.085000, 143039.132000 ], [ 559349.617000, 143056.250000 ], [ 559360.931183, 143054.964848 ] ], [ [ 755687.400000, 260651.800000 ], [ 755687.200000, 260665.400000 ], [ 755697.600000, 260679.700000 ], [ 755620.100000, 260641.900000 ], [ 755536.396000, 260628.133000 ], [ 755286.400000, 260604.400000 ], [ 755255.900000, 260593.400000 ], [ 755139.100000, 260637.400000 ], [ 755020.900000, 260671.100000 ], [ 754823.834000, 260699.148000 ], [ 754712.400000, 260757.100000 ], [ 754729.417000, 260727.760000 ], [ 754731.800000, 260702.800000 ], [ 754710.400000, 260619.600000 ], [ 754710.600000, 260576.100000 ], [ 754676.700000, 260479.600000 ], [ 754654.900000, 260387.100000 ], [ 754679.800000, 260381.200000 ], [ 754651.200000, 260320.400000 ], [ 754583.000000, 260295.600000 ], [ 754520.200000, 260256.700000 ], [ 754458.500000, 260056.200000 ], [ 754450.200000, 260005.100000 ], [ 754502.800000, 259989.100000 ], [ 754636.800000, 259985.300000 ], [ 754659.700000, 259979.000000 ], [ 754761.800000, 260017.800000 ], [ 754774.900000, 260014.900000 ], [ 754760.100000, 259971.700000 ], [ 754770.100000, 259793.600000 ], [ 754963.900000, 259705.200000 ], [ 755097.200000, 259603.200000 ], [ 755123.000000, 259563.500000 ], [ 755108.100000, 259470.500000 ], [ 755111.900000, 259383.800000 ], [ 755131.500000, 259376.600000 ], [ 755200.200000, 259416.300000 ], [ 755222.700000, 259418.300000 ], [ 755238.200000, 259412.600000 ], [ 755246.500000, 259402.100000 ], [ 755246.700000, 259382.600000 ], [ 755209.000000, 259316.800000 ], [ 755209.000000, 259299.600000 ], [ 755222.500000, 259291.100000 ], [ 755335.000000, 259266.000000 ], [ 755344.700000, 259250.500000 ], [ 755283.700000, 259239.500000 ], [ 755259.500000, 259227.300000 ], [ 755147.400000, 259118.100000 ], [ 755095.100000, 259133.300000 ], [ 755077.600000, 259119.800000 ], [ 755051.100000, 259081.100000 ], [ 755033.800000, 259073.700000 ], [ 755006.600000, 259068.700000 ], [ 754953.100000, 259091.100000 ], [ 754892.200000, 259076.800000 ], [ 754852.600000, 259058.100000 ], [ 754814.900000, 259025.800000 ], [ 754737.400000, 258932.000000 ], [ 754712.600000, 258896.100000 ], [ 754697.300000, 258848.000000 ], [ 754644.900000, 258798.800000 ], [ 754635.000000, 258777.400000 ], [ 754631.400000, 258737.500000 ], [ 754547.000000, 258661.600000 ], [ 754536.100000, 258637.100000 ], [ 754561.400000, 258638.800000 ], [ 754594.900000, 258651.600000 ], [ 754644.000000, 258648.600000 ], [ 754772.100000, 258608.700000 ], [ 754818.400000, 258629.300000 ], [ 754839.400000, 258631.600000 ], [ 754849.500000, 258624.100000 ], [ 754863.600000, 258589.900000 ], [ 754886.500000, 258572.100000 ], [ 754913.300000, 258569.100000 ], [ 754974.400000, 258592.000000 ], [ 755005.400000, 258591.300000 ], [ 755038.500000, 258573.000000 ], [ 755063.500000, 258539.500000 ], [ 755100.300000, 258557.600000 ], [ 755182.100000, 258574.900000 ], [ 755232.200000, 258602.800000 ], [ 755261.500000, 258599.500000 ], [ 755287.100000, 258584.100000 ], [ 755304.900000, 258580.800000 ], [ 755435.100000, 258611.700000 ], [ 755461.500000, 258629.900000 ], [ 755499.300000, 258621.300000 ], [ 755598.100000, 258692.200000 ], [ 755637.000000, 258683.500000 ], [ 755673.800000, 258705.700000 ], [ 755737.200000, 258709.400000 ], [ 755756.100000, 258693.000000 ], [ 755692.900000, 258649.100000 ], [ 755645.000000, 258605.200000 ], [ 755536.600000, 258487.200000 ], [ 755465.400000, 258462.800000 ], [ 755390.100000, 258394.100000 ], [ 755131.800000, 258106.400000 ], [ 755103.900000, 258051.500000 ], [ 755074.900000, 257966.800000 ], [ 755075.500000, 257942.700000 ], [ 755085.700000, 257919.000000 ], [ 755108.600000, 257893.200000 ], [ 755095.600000, 257865.500000 ], [ 755109.600000, 257863.200000 ], [ 755123.600000, 257878.500000 ], [ 755107.800000, 257926.300000 ], [ 755118.100000, 257958.300000 ], [ 755207.200000, 258029.100000 ], [ 755339.200000, 258079.400000 ], [ 755355.600000, 258080.700000 ], [ 755357.900000, 258071.700000 ], [ 755292.400000, 257984.900000 ], [ 755261.900000, 257927.400000 ], [ 755257.400000, 257904.200000 ], [ 755278.100000, 257865.100000 ], [ 755453.900000, 257689.300000 ], [ 755508.300000, 257648.500000 ], [ 755522.300000, 257644.200000 ], [ 755586.800000, 257650.600000 ], [ 755703.800000, 257682.700000 ], [ 755740.000000, 257674.900000 ], [ 755570.700000, 257537.900000 ], [ 755592.800000, 257518.000000 ], [ 755597.300000, 257497.800000 ], [ 755569.900000, 257450.900000 ], [ 755539.500000, 257373.100000 ], [ 755535.800000, 257349.400000 ], [ 755547.200000, 257306.600000 ], [ 755535.600000, 257245.500000 ], [ 755541.500000, 257217.400000 ], [ 755538.700000, 257192.200000 ], [ 755493.200000, 257093.400000 ], [ 755461.200000, 257042.600000 ], [ 755408.000000, 256998.300000 ], [ 755398.600000, 256976.100000 ], [ 755392.100000, 256925.900000 ], [ 755366.800000, 256898.800000 ], [ 755325.200000, 256834.500000 ], [ 755323.200000, 256809.700000 ], [ 755294.700000, 256787.200000 ], [ 755292.500000, 256754.500000 ], [ 755307.900000, 256725.900000 ], [ 755408.500000, 256786.500000 ], [ 755621.000000, 256813.000000 ], [ 755727.800000, 256848.500000 ], [ 755801.800000, 256889.000000 ], [ 755816.600000, 256880.700000 ], [ 755864.100000, 256894.200000 ], [ 755935.100000, 256888.200000 ], [ 756042.500000, 256921.500000 ], [ 756132.200000, 256923.300000 ], [ 756162.500000, 256917.300000 ], [ 756192.600000, 256902.700000 ], [ 756252.400000, 256840.200000 ], [ 756315.100000, 256700.200000 ], [ 756325.600000, 256685.700000 ], [ 756337.900000, 256680.500000 ], [ 756349.900000, 256688.000000 ], [ 756356.600000, 256712.700000 ], [ 756374.100000, 256736.700000 ], [ 756423.400000, 256760.500000 ], [ 756601.100000, 256804.000000 ], [ 756717.500000, 256841.000000 ], [ 756944.000000, 256884.200000 ], [ 756972.100000, 256879.700000 ], [ 757022.600000, 256850.500000 ], [ 757038.600000, 256835.200000 ], [ 757092.700000, 256743.900000 ], [ 757127.100000, 256725.700000 ], [ 757150.900000, 256722.500000 ], [ 757171.100000, 256738.000000 ], [ 757201.400000, 256810.700000 ], [ 757220.900000, 256822.200000 ], [ 757250.000000, 256816.600000 ], [ 757332.900000, 256766.000000 ], [ 757371.400000, 256766.500000 ], [ 757391.900000, 256774.000000 ], [ 757432.300000, 256837.900000 ], [ 757457.900000, 256900.000000 ], [ 757490.900000, 256957.500000 ], [ 757520.000000, 256982.100000 ], [ 757588.400000, 257000.000000 ], [ 757762.700000, 257208.200000 ], [ 758071.800000, 257012.300000 ] ], [ [ 662054.350617, 193534.006904 ], [ 662048.600000, 193524.200000 ] ], [ [ 662054.350617, 193534.006904 ], [ 662081.600000, 193509.900000 ], [ 662084.100000, 193495.200000 ], [ 662070.100000, 193489.700000 ], [ 662049.100000, 193496.200000 ], [ 662044.800000, 193512.000000 ], [ 662048.600000, 193524.200000 ] ], [ [ 662054.350617, 193534.006904 ], [ 661952.900000, 193610.500000 ], [ 661896.600000, 193533.400000 ], [ 661800.800000, 193713.100000 ], [ 661630.600000, 193800.600000 ], [ 661622.600000, 193825.900000 ], [ 661624.500000, 193904.600000 ], [ 661611.700000, 193966.900000 ], [ 661618.900000, 194000.000000 ], [ 661619.700000, 194052.000000 ], [ 661476.401000, 194066.944000 ], [ 661496.200000, 194152.900000 ], [ 661498.500000, 194200.600000 ], [ 661467.000000, 194206.500000 ], [ 661436.400000, 194229.500000 ], [ 661327.500000, 194189.500000 ], [ 661230.000000, 194139.500000 ], [ 661201.000000, 194135.200000 ], [ 661162.300000, 194117.500000 ], [ 661036.700000, 194007.700000 ], [ 660944.700000, 193873.200000 ], [ 660915.500000, 193779.000000 ], [ 660867.500000, 193708.700000 ], [ 660828.500000, 193683.700000 ], [ 660753.000000, 193658.900000 ], [ 660646.500000, 193581.200000 ], [ 660622.500000, 193554.000000 ], [ 660596.100000, 193497.100000 ], [ 660576.800000, 193420.300000 ], [ 660489.000000, 193305.500000 ], [ 660425.800000, 193175.800000 ], [ 660221.400000, 192925.600000 ], [ 660178.400000, 192856.000000 ], [ 660067.700000, 192742.500000 ], [ 660000.000000, 192626.200000 ], [ 659929.500000, 192549.500000 ], [ 659853.200000, 192439.500000 ], [ 659771.500000, 192384.200000 ], [ 659750.500000, 192323.200000 ], [ 659600.500000, 192114.000000 ], [ 659439.900000, 191990.500000 ], [ 659384.700000, 191981.000000 ], [ 659203.900000, 191814.800000 ], [ 659114.300000, 191777.700000 ], [ 659095.200000, 191750.600000 ], [ 659076.000000, 191668.800000 ], [ 659019.300000, 191615.900000 ], [ 658961.700000, 191583.500000 ], [ 658865.700000, 191509.000000 ], [ 658847.700000, 191502.400000 ], [ 658773.000000, 191504.100000 ], [ 658760.900000, 191496.400000 ], [ 658689.300000, 191399.100000 ], [ 658350.700000, 191174.600000 ], [ 658245.100000, 191139.600000 ], [ 658126.000000, 191057.900000 ], [ 657952.700000, 190962.500000 ], [ 657816.400000, 190896.000000 ], [ 657699.900000, 190822.900000 ], [ 657662.300000, 190790.800000 ], [ 657409.700000, 190506.000000 ], [ 657376.200000, 190481.700000 ], [ 657336.200000, 190437.200000 ], [ 657268.900000, 190406.700000 ], [ 657215.200000, 190402.000000 ], [ 657089.700000, 190314.500000 ], [ 656999.200000, 190209.700000 ], [ 656902.200000, 190211.000000 ], [ 656858.200000, 190198.000000 ], [ 656663.200000, 190045.500000 ], [ 656566.700000, 189911.000000 ], [ 656512.200000, 189858.000000 ], [ 656389.700000, 189783.500000 ], [ 656156.100000, 189659.800000 ], [ 656129.300000, 189629.600000 ], [ 656103.400000, 189580.600000 ], [ 656083.600000, 189559.000000 ], [ 656002.100000, 189557.000000 ], [ 655980.400000, 189546.200000 ], [ 655913.600000, 189454.800000 ], [ 655838.800000, 189307.200000 ], [ 655816.100000, 189249.900000 ], [ 655809.200000, 189212.200000 ], [ 655806.000000, 189119.800000 ], [ 655575.500000, 189098.800000 ], [ 655359.800000, 189057.200000 ], [ 655228.300000, 189050.700000 ], [ 655155.900000, 189030.800000 ], [ 655132.400000, 189018.000000 ], [ 655099.800000, 188846.600000 ], [ 655043.400000, 188772.400000 ], [ 654977.000000, 188655.900000 ], [ 654887.000000, 188621.100000 ], [ 654775.400000, 188567.000000 ], [ 654779.700000, 188469.100000 ], [ 654714.400000, 188357.800000 ], [ 654605.400000, 188276.400000 ], [ 654567.100000, 188260.700000 ], [ 654510.400000, 188250.000000 ], [ 654491.400000, 188234.300000 ], [ 654435.200000, 188206.800000 ], [ 654334.600000, 188126.600000 ], [ 654345.100000, 188093.800000 ], [ 654342.100000, 188087.100000 ], [ 654310.000000, 188025.600000 ], [ 654282.000000, 188009.800000 ], [ 654280.800000, 187997.500000 ], [ 654294.300000, 187967.400000 ], [ 654345.700000, 187911.100000 ], [ 654354.200000, 187854.300000 ], [ 654346.000000, 187828.500000 ], [ 654344.600000, 187759.900000 ], [ 654369.200000, 187730.800000 ], [ 654440.800000, 187688.800000 ], [ 654450.800000, 187674.500000 ], [ 654453.800000, 187652.800000 ], [ 654443.200000, 187608.100000 ], [ 654460.800000, 187405.700000 ], [ 654471.900000, 187369.700000 ], [ 654577.900000, 187242.800000 ], [ 654648.500000, 187115.800000 ], [ 654688.100000, 186937.900000 ], [ 654665.800000, 186921.800000 ], [ 654637.700000, 186883.900000 ], [ 654589.900000, 186846.900000 ], [ 654533.100000, 186922.700000 ], [ 654501.700000, 186953.700000 ], [ 654385.100000, 187026.900000 ], [ 654338.400000, 187045.200000 ], [ 654148.600000, 187093.700000 ], [ 654086.600000, 187101.300000 ], [ 654061.500000, 187114.300000 ], [ 654052.000000, 187128.100000 ], [ 654050.300000, 187157.400000 ], [ 654056.900000, 187174.500000 ], [ 654095.500000, 187217.900000 ], [ 654137.200000, 187338.200000 ], [ 654140.100000, 187354.400000 ], [ 654129.400000, 187428.300000 ], [ 654116.500000, 187496.400000 ], [ 654083.600000, 187541.800000 ], [ 654083.200000, 187667.900000 ], [ 654055.700000, 187758.400000 ], [ 653984.800000, 187890.800000 ], [ 653966.500000, 187909.600000 ], [ 653903.000000, 187944.800000 ], [ 653898.700000, 187933.400000 ], [ 653929.500000, 187858.300000 ], [ 653932.900000, 187831.600000 ], [ 653907.200000, 187728.000000 ], [ 653913.200000, 187706.500000 ], [ 653933.600000, 187675.700000 ], [ 653933.400000, 187662.100000 ], [ 653814.100000, 187529.400000 ], [ 653731.400000, 187506.000000 ], [ 653720.400000, 187494.000000 ], [ 653703.500000, 187449.600000 ], [ 653620.700000, 187355.900000 ], [ 653609.400000, 187357.700000 ], [ 653606.200000, 187369.600000 ], [ 653648.200000, 187418.200000 ], [ 653663.900000, 187455.000000 ], [ 653666.300000, 187481.700000 ], [ 653651.100000, 187616.000000 ], [ 653639.900000, 187654.400000 ], [ 653624.500000, 187680.300000 ], [ 653597.000000, 187705.600000 ], [ 653573.000000, 187721.600000 ], [ 653558.700000, 187725.900000 ], [ 653550.500000, 187720.900000 ], [ 653552.800000, 187635.800000 ], [ 653546.100000, 187596.300000 ], [ 653532.500000, 187563.700000 ], [ 653509.500000, 187529.100000 ], [ 653493.900000, 187517.300000 ], [ 653466.000000, 187519.600000 ], [ 653427.000000, 187510.600000 ], [ 653418.700000, 187519.700000 ], [ 653427.800000, 187541.300000 ], [ 653470.500000, 187554.600000 ], [ 653466.200000, 187590.600000 ], [ 653452.000000, 187618.200000 ], [ 653439.500000, 187616.600000 ], [ 653416.400000, 187587.700000 ], [ 653349.700000, 187576.900000 ], [ 653341.300000, 187568.800000 ], [ 653332.100000, 187537.000000 ], [ 653304.200000, 187502.600000 ], [ 653303.000000, 187487.600000 ], [ 653329.700000, 187434.100000 ], [ 653337.000000, 187355.600000 ], [ 653345.200000, 187339.700000 ], [ 653389.100000, 187296.400000 ], [ 653393.400000, 187264.700000 ], [ 653384.500000, 187248.300000 ], [ 653344.000000, 187218.600000 ], [ 653273.400000, 187219.700000 ], [ 653235.100000, 187205.500000 ], [ 653213.400000, 187155.600000 ], [ 653181.700000, 187131.900000 ], [ 653142.200000, 187125.600000 ], [ 653097.900000, 187128.500000 ], [ 653086.800000, 187119.200000 ], [ 653046.700000, 187027.600000 ], [ 653048.000000, 187012.100000 ], [ 653075.500000, 186971.100000 ], [ 653066.500000, 186931.200000 ], [ 653046.500000, 186905.300000 ], [ 653001.000000, 186865.600000 ], [ 652981.600000, 186831.100000 ], [ 652971.500000, 186779.000000 ], [ 652956.600000, 186762.800000 ], [ 652916.400000, 186734.100000 ], [ 652872.700000, 186723.100000 ], [ 652859.700000, 186707.900000 ], [ 652867.200000, 186679.400000 ], [ 652910.900000, 186628.800000 ], [ 652917.000000, 186616.400000 ], [ 652913.500000, 186599.600000 ], [ 652898.200000, 186600.100000 ], [ 652871.500000, 186638.100000 ], [ 652822.700000, 186651.100000 ], [ 652805.100000, 186677.500000 ], [ 652777.300000, 186701.900000 ], [ 652772.800000, 186714.900000 ], [ 652777.100000, 186730.200000 ], [ 652838.600000, 186811.300000 ], [ 652851.100000, 186901.200000 ], [ 652845.100000, 186922.400000 ], [ 652796.400000, 186898.700000 ], [ 652764.300000, 186899.200000 ], [ 652720.400000, 186943.400000 ], [ 652679.200000, 186954.300000 ], [ 652611.400000, 186952.100000 ], [ 652544.600000, 186913.600000 ], [ 652518.500000, 186937.500000 ], [ 652505.700000, 186840.500000 ], [ 652509.500000, 186753.900000 ], [ 652499.900000, 186742.000000 ], [ 652480.900000, 186749.000000 ], [ 652438.000000, 186805.900000 ], [ 652421.000000, 186819.000000 ], [ 652336.500000, 186785.500000 ], [ 652321.500000, 186797.000000 ], [ 652305.100000, 186859.500000 ], [ 652288.334000, 186855.440000 ], [ 652287.101000, 186863.662000 ], [ 652270.400000, 186872.700000 ], [ 652257.400000, 186918.400000 ], [ 652230.600000, 186943.700000 ], [ 652221.900000, 187012.800000 ], [ 652208.000000, 187055.800000 ], [ 652158.800000, 187107.300000 ], [ 652166.800000, 187148.500000 ], [ 652151.700000, 187208.900000 ], [ 652135.900000, 187212.900000 ], [ 652105.400000, 187179.200000 ], [ 652094.700000, 187180.100000 ], [ 652073.700000, 187195.300000 ], [ 652059.900000, 187219.900000 ], [ 652049.500000, 187274.600000 ], [ 652033.100000, 187312.800000 ], [ 652034.900000, 187391.800000 ], [ 652015.600000, 187395.300000 ], [ 651995.900000, 187366.400000 ], [ 651946.100000, 187248.600000 ], [ 651936.200000, 187197.500000 ], [ 651940.000000, 187169.500000 ], [ 651932.200000, 187165.300000 ], [ 651906.300000, 187169.400000 ], [ 651880.500000, 187153.500000 ], [ 651872.100000, 187155.600000 ], [ 651869.400000, 187165.100000 ], [ 651877.200000, 187188.700000 ], [ 651872.800000, 187194.700000 ], [ 651805.400000, 187216.900000 ], [ 651769.000000, 187213.500000 ], [ 651748.300000, 187197.300000 ], [ 651676.600000, 187112.600000 ], [ 651626.600000, 186986.500000 ], [ 651524.600000, 186873.000000 ], [ 651500.700000, 186824.200000 ], [ 651484.600000, 186759.500000 ], [ 651430.500000, 186689.800000 ], [ 651357.800000, 186646.400000 ], [ 651352.600000, 186608.100000 ], [ 651334.900000, 186578.000000 ], [ 651334.800000, 186552.800000 ], [ 651315.900000, 186493.200000 ], [ 651254.900000, 186398.700000 ], [ 651254.900000, 186225.000000 ], [ 651309.900000, 186233.100000 ], [ 651395.100000, 186233.400000 ], [ 651473.900000, 186274.300000 ], [ 651508.742000, 186284.432000 ], [ 651488.200000, 186219.600000 ], [ 651476.500000, 186200.300000 ], [ 651391.200000, 186162.300000 ], [ 651304.200000, 186088.800000 ], [ 651209.700000, 186057.200000 ], [ 651049.400000, 185974.400000 ], [ 650972.000000, 185948.800000 ], [ 650911.200000, 185920.700000 ], [ 650780.000000, 185913.000000 ], [ 650687.000000, 185930.500000 ], [ 650640.900000, 185927.500000 ], [ 650603.400000, 185933.700000 ], [ 650578.400000, 185959.600000 ], [ 650571.800000, 185980.200000 ], [ 650574.200000, 186018.700000 ], [ 650544.200000, 186068.600000 ], [ 650575.100000, 186129.200000 ], [ 650570.100000, 186275.800000 ], [ 650552.200000, 186420.000000 ], [ 650541.200000, 186440.200000 ], [ 650517.000000, 186445.800000 ], [ 650478.400000, 186423.600000 ], [ 650457.300000, 186398.300000 ], [ 650443.400000, 186318.200000 ], [ 650450.600000, 186268.700000 ], [ 650407.500000, 186147.200000 ], [ 650287.900000, 186005.700000 ], [ 650229.100000, 185907.600000 ], [ 650177.700000, 185865.700000 ], [ 650080.700000, 185742.400000 ], [ 650082.800000, 185669.600000 ], [ 650072.700000, 185653.000000 ], [ 650037.100000, 185630.400000 ], [ 649994.700000, 185621.500000 ], [ 649974.000000, 185603.500000 ], [ 649970.500000, 185529.000000 ], [ 649956.500000, 185506.200000 ], [ 649816.000000, 185486.100000 ], [ 649793.800000, 185465.000000 ], [ 649773.700000, 185455.700000 ], [ 649720.400000, 185404.400000 ], [ 649585.200000, 185407.700000 ], [ 649509.300000, 185444.400000 ], [ 649443.900000, 185431.600000 ], [ 649389.700000, 185450.700000 ], [ 649265.600000, 185422.300000 ], [ 649200.700000, 185455.700000 ], [ 649169.900000, 185458.900000 ], [ 649152.100000, 185453.700000 ], [ 649099.400000, 185400.700000 ], [ 649013.000000, 185366.700000 ], [ 648907.400000, 185253.400000 ], [ 648876.000000, 185233.600000 ], [ 648846.400000, 185227.600000 ], [ 648773.200000, 185249.500000 ], [ 648679.800000, 185252.100000 ], [ 648591.800000, 185245.900000 ], [ 648495.400000, 185208.300000 ], [ 648407.700000, 185191.300000 ], [ 648391.700000, 185181.700000 ], [ 648387.100000, 185138.100000 ], [ 648380.900000, 185122.000000 ], [ 648366.200000, 185112.500000 ], [ 648306.700000, 185104.900000 ], [ 648281.900000, 185116.700000 ], [ 648263.400000, 185116.400000 ], [ 648212.200000, 185082.300000 ], [ 648175.500000, 185021.500000 ], [ 648172.700000, 185006.700000 ], [ 648183.200000, 185004.200000 ], [ 648207.100000, 185028.700000 ], [ 648240.100000, 185046.900000 ], [ 648258.200000, 185048.600000 ], [ 648276.300000, 185041.700000 ], [ 648316.600000, 184996.400000 ], [ 648360.900000, 184926.100000 ], [ 648422.300000, 184864.300000 ], [ 648482.200000, 184761.100000 ], [ 648545.100000, 184692.000000 ], [ 648569.500000, 184675.200000 ], [ 648629.500000, 184650.400000 ], [ 648690.400000, 184600.500000 ], [ 648746.600000, 184588.900000 ], [ 648854.700000, 184589.100000 ], [ 648860.200000, 184582.900000 ], [ 648853.200000, 184575.100000 ], [ 648497.600000, 184532.800000 ], [ 648458.400000, 184506.800000 ], [ 648366.900000, 184411.200000 ], [ 648327.700000, 184392.200000 ], [ 648262.500000, 184382.400000 ], [ 648212.200000, 184358.300000 ], [ 648132.000000, 184333.500000 ], [ 648120.500000, 184339.700000 ], [ 648093.200000, 184376.200000 ], [ 648049.900000, 184403.200000 ], [ 647979.500000, 184406.100000 ], [ 647940.000000, 184419.100000 ], [ 647847.500000, 184398.100000 ], [ 647799.700000, 184401.100000 ], [ 647714.200000, 184432.300000 ], [ 647651.900000, 184445.000000 ], [ 647597.000000, 184485.300000 ], [ 647561.600000, 184491.200000 ], [ 647519.800000, 184480.600000 ], [ 647456.900000, 184446.700000 ], [ 647412.800000, 184413.200000 ], [ 647341.800000, 184338.700000 ], [ 647320.000000, 184329.200000 ], [ 647288.300000, 184331.900000 ], [ 647264.700000, 184343.700000 ], [ 647248.600000, 184361.800000 ], [ 647240.800000, 184430.900000 ], [ 647064.800000, 184332.800000 ], [ 647009.100000, 184321.300000 ], [ 646958.700000, 184330.500000 ], [ 646821.500000, 184400.700000 ], [ 646740.700000, 184422.800000 ], [ 646703.000000, 184439.500000 ], [ 646602.500000, 184553.100000 ], [ 646570.100000, 184606.800000 ], [ 646527.900000, 184652.800000 ], [ 646476.200000, 184680.600000 ], [ 646435.100000, 184751.900000 ] ], [ [ 723167.400000, 221684.300000 ], [ 722968.200000, 221848.300000 ] ], [ [ 723167.400000, 221684.300000 ], [ 723120.200000, 221628.600000 ], [ 723099.200000, 221592.000000 ], [ 723052.200000, 221471.900000 ], [ 723007.800000, 221418.300000 ], [ 722909.300000, 221327.300000 ], [ 722729.800000, 220969.000000 ], [ 722711.600000, 220947.900000 ], [ 722613.000000, 220785.500000 ], [ 722594.600000, 220768.700000 ], [ 722523.400000, 220725.500000 ], [ 722519.000000, 220731.600000 ], [ 722460.700000, 220738.200000 ], [ 722190.900000, 220727.900000 ], [ 722146.900000, 220709.100000 ], [ 722068.300000, 220636.100000 ], [ 722046.300000, 220623.300000 ], [ 721865.600000, 220562.000000 ], [ 721866.177000, 220570.141000 ], [ 721903.043000, 220581.991000 ], [ 721952.637000, 220624.124000 ], [ 721958.343000, 220650.018000 ], [ 721994.331000, 220687.763000 ], [ 721996.087000, 220701.368000 ], [ 721989.065000, 220702.685000 ], [ 721814.388000, 220614.029000 ], [ 721785.422000, 220619.735000 ], [ 721774.449000, 220615.346000 ], [ 721741.094000, 220595.157000 ], [ 721721.742000, 220572.036000 ], [ 721714.286000, 220572.334000 ], [ 721711.303000, 220585.755000 ], [ 721761.408000, 220663.745000 ], [ 721824.336000, 220705.797000 ], [ 721849.091000, 220746.955000 ], [ 721999.106000, 220830.015000 ], [ 722003.281000, 220859.541000 ], [ 722014.316000, 220882.058000 ], [ 722005.965000, 220930.969000 ], [ 721977.036000, 220951.250000 ], [ 721966.597000, 220972.723000 ], [ 721960.334000, 220974.513000 ], [ 721950.492000, 220960.793000 ], [ 721967.194000, 220936.636000 ], [ 721962.422000, 220919.934000 ], [ 721866.388000, 220888.470000 ], [ 721838.652000, 220862.225000 ], [ 721807.300000, 220858.700000 ], [ 721783.900000, 220842.800000 ], [ 721753.200000, 220834.700000 ], [ 721662.900000, 220774.600000 ], [ 721567.400000, 220738.200000 ], [ 721521.200000, 220734.200000 ], [ 721483.700000, 220762.500000 ], [ 721473.600000, 220756.600000 ], [ 721464.300000, 220728.100000 ], [ 721389.600000, 220708.300000 ], [ 721319.900000, 220734.000000 ], [ 721283.800000, 220738.300000 ], [ 721197.900000, 220697.200000 ], [ 721100.000000, 220675.700000 ], [ 721085.300000, 220678.900000 ], [ 721079.100000, 220692.000000 ], [ 721066.000000, 220697.800000 ], [ 720988.600000, 220685.700000 ], [ 720891.600000, 220653.200000 ], [ 720877.300000, 220645.600000 ], [ 720854.400000, 220618.800000 ], [ 720844.800000, 220619.700000 ], [ 720843.100000, 220629.000000 ], [ 720854.500000, 220638.800000 ], [ 720865.000000, 220662.300000 ], [ 720943.200000, 220728.800000 ], [ 721083.600000, 220789.300000 ], [ 721200.700000, 220822.100000 ], [ 721262.300000, 220852.700000 ], [ 721264.900000, 220858.200000 ], [ 721258.700000, 220862.600000 ], [ 721202.800000, 220846.000000 ], [ 721128.000000, 220847.100000 ], [ 721017.100000, 220832.800000 ], [ 720976.600000, 220811.300000 ], [ 720941.000000, 220797.800000 ], [ 720931.400000, 220800.200000 ], [ 720929.100000, 220808.600000 ], [ 720937.100000, 220814.400000 ], [ 720973.900000, 220826.300000 ], [ 721001.000000, 220853.100000 ], [ 721050.200000, 220877.800000 ], [ 721134.100000, 220903.000000 ], [ 721201.700000, 220934.000000 ], [ 721211.900000, 220945.500000 ], [ 721217.200000, 220967.800000 ], [ 721207.200000, 220968.200000 ], [ 721194.200000, 220945.200000 ], [ 721176.300000, 220935.700000 ], [ 721059.300000, 220938.600000 ], [ 720982.600000, 220921.600000 ], [ 720932.300000, 220901.200000 ], [ 720855.500000, 220886.300000 ], [ 720803.100000, 220861.100000 ], [ 720740.400000, 220842.800000 ], [ 720667.700000, 220838.200000 ], [ 720612.100000, 220821.700000 ], [ 720587.300000, 220826.600000 ], [ 720511.100000, 220925.900000 ], [ 720460.100000, 220939.800000 ], [ 720422.500000, 220965.800000 ], [ 720406.400000, 220964.300000 ], [ 720370.000000, 220923.100000 ], [ 720340.600000, 220929.500000 ], [ 720298.900000, 220920.600000 ], [ 720269.300000, 220901.800000 ], [ 720207.100000, 220904.200000 ], [ 720188.900000, 220894.800000 ], [ 720175.600000, 220860.900000 ], [ 720155.500000, 220844.500000 ], [ 720130.600000, 220840.200000 ], [ 720076.700000, 220785.700000 ], [ 719974.400000, 220751.900000 ], [ 719974.500000, 220722.600000 ], [ 719948.900000, 220679.500000 ], [ 719920.800000, 220654.600000 ], [ 719918.100000, 220643.600000 ], [ 719928.300000, 220629.700000 ], [ 719986.100000, 220586.900000 ], [ 720009.400000, 220551.700000 ], [ 720032.300000, 220542.300000 ], [ 720057.800000, 220545.400000 ], [ 720082.500000, 220524.300000 ], [ 720157.800000, 220503.400000 ], [ 720171.100000, 220496.000000 ], [ 720173.300000, 220489.000000 ], [ 720165.100000, 220483.700000 ], [ 720098.300000, 220501.000000 ], [ 720036.200000, 220492.700000 ], [ 719987.800000, 220494.700000 ], [ 719935.300000, 220516.800000 ], [ 719899.500000, 220518.000000 ], [ 719847.900000, 220509.900000 ], [ 719797.800000, 220530.000000 ], [ 719663.900000, 220543.200000 ], [ 719623.600000, 220537.200000 ], [ 719496.500000, 220537.000000 ], [ 719441.300000, 220551.200000 ], [ 719340.000000, 220564.500000 ], [ 719302.800000, 220554.000000 ], [ 719260.100000, 220557.300000 ], [ 719156.600000, 220543.000000 ], [ 719128.800000, 220529.100000 ], [ 719010.800000, 220510.100000 ], [ 718924.300000, 220520.900000 ], [ 718873.400000, 220502.700000 ], [ 718810.000000, 220503.400000 ], [ 718770.200000, 220495.600000 ], [ 718669.500000, 220509.700000 ], [ 718626.400000, 220467.900000 ], [ 718526.100000, 220433.900000 ], [ 718408.900000, 220437.600000 ], [ 718341.200000, 220428.300000 ], [ 718271.500000, 220430.000000 ], [ 718174.200000, 220441.700000 ], [ 718123.800000, 220470.900000 ], [ 718045.300000, 220468.000000 ], [ 718022.300000, 220478.000000 ], [ 717961.434000, 220458.490000 ], [ 717948.633000, 220446.737000 ], [ 717925.400000, 220438.700000 ], [ 717793.800000, 220431.800000 ], [ 717694.300000, 220411.800000 ], [ 717598.200000, 220431.600000 ], [ 717579.600000, 220456.500000 ], [ 717542.300000, 220459.300000 ], [ 717498.700000, 220426.700000 ], [ 717395.800000, 220399.300000 ], [ 717369.000000, 220393.600000 ], [ 717319.800000, 220403.800000 ], [ 717284.800000, 220393.100000 ], [ 717257.000000, 220396.600000 ], [ 717241.300000, 220389.900000 ], [ 717201.500000, 220397.900000 ], [ 717158.000000, 220430.900000 ], [ 717089.500000, 220427.600000 ], [ 717055.500000, 220442.100000 ], [ 717035.800000, 220441.600000 ], [ 716995.300000, 220454.600000 ], [ 716934.600000, 220448.100000 ], [ 716831.400000, 220470.400000 ], [ 716764.700000, 220473.500000 ], [ 716731.000000, 220485.800000 ], [ 716688.707000, 220521.317000 ], [ 716698.400000, 220572.800000 ], [ 716714.800000, 220601.800000 ], [ 716710.800000, 220637.300000 ], [ 716715.800000, 220649.400000 ], [ 716820.900000, 220716.500000 ], [ 716847.300000, 220745.400000 ], [ 716850.700000, 220763.400000 ], [ 716702.600000, 220794.500000 ], [ 716619.600000, 220846.900000 ], [ 716495.700000, 220889.300000 ], [ 716476.800000, 220905.300000 ], [ 716465.300000, 220905.600000 ], [ 716444.300000, 220890.300000 ], [ 716436.500000, 220849.500000 ], [ 716430.000000, 220843.500000 ], [ 716387.500000, 220842.300000 ], [ 716346.600000, 220830.900000 ], [ 716343.500000, 220809.100000 ], [ 716330.000000, 220787.800000 ], [ 716284.300000, 220769.800000 ], [ 716237.500000, 220724.900000 ], [ 716170.500000, 220689.800000 ], [ 716128.100000, 220649.600000 ], [ 716033.300000, 220591.700000 ], [ 715966.000000, 220514.600000 ], [ 715923.300000, 220493.600000 ], [ 715894.500000, 220515.800000 ], [ 715917.300000, 220529.800000 ], [ 715876.900000, 220563.500000 ], [ 715865.400000, 220557.200000 ], [ 715810.500000, 220553.400000 ], [ 715774.300000, 220565.000000 ], [ 715744.500000, 220566.500000 ], [ 715728.300000, 220578.800000 ], [ 715695.400000, 220586.600000 ], [ 715648.800000, 220580.600000 ], [ 715636.900000, 220584.400000 ], [ 715613.100000, 220573.000000 ], [ 715602.800000, 220557.600000 ], [ 715531.300000, 220568.700000 ], [ 715483.100000, 220604.700000 ], [ 715474.500000, 220625.900000 ], [ 715434.500000, 220666.200000 ], [ 715437.612000, 220711.170000 ], [ 715461.900000, 220723.800000 ], [ 715480.700000, 220748.900000 ], [ 715508.800000, 220807.500000 ], [ 715478.500000, 220920.500000 ], [ 715473.200000, 220994.300000 ], [ 715486.000000, 221054.000000 ], [ 715448.000000, 221258.400000 ], [ 715468.800000, 221349.200000 ], [ 715469.200000, 221393.000000 ], [ 715457.000000, 221447.900000 ], [ 715436.900000, 221484.900000 ], [ 715430.900000, 221531.900000 ], [ 715377.900000, 221571.100000 ], [ 715333.700000, 221615.300000 ], [ 715314.700000, 221650.500000 ], [ 715307.400000, 221682.200000 ], [ 715293.200000, 221687.200000 ], [ 715207.461000, 221687.537000 ], [ 715165.968000, 221703.496000 ], [ 715070.200000, 221711.300000 ], [ 715046.900000, 221735.600000 ], [ 715038.200000, 221735.600000 ], [ 714999.200000, 221696.400000 ], [ 714923.200000, 221710.900000 ], [ 714877.400000, 221704.700000 ], [ 714804.600000, 221748.700000 ], [ 714744.000000, 221748.400000 ], [ 714625.500000, 221779.700000 ], [ 714553.200000, 221791.600000 ], [ 714543.700000, 221797.100000 ], [ 714515.700000, 221848.400000 ], [ 714462.800000, 221852.400000 ], [ 714450.800000, 221902.900000 ], [ 714435.600000, 221914.700000 ], [ 714410.700000, 221921.500000 ], [ 714363.000000, 221904.500000 ], [ 714332.500000, 221911.500000 ], [ 714258.000000, 221944.000000 ], [ 714164.300000, 221967.000000 ], [ 714141.800000, 221961.500000 ], [ 714102.900000, 221932.800000 ], [ 714012.400000, 221947.700000 ], [ 713954.000000, 221990.200000 ], [ 713892.200000, 222069.600000 ], [ 713817.100000, 222120.600000 ], [ 713808.000000, 222134.100000 ], [ 713809.000000, 222144.200000 ], [ 713824.300000, 222168.600000 ], [ 713802.800000, 222209.600000 ], [ 713776.300000, 222224.700000 ], [ 713745.300000, 222257.400000 ], [ 713693.300000, 222263.800000 ], [ 713652.500000, 222315.300000 ], [ 713609.700000, 222326.800000 ], [ 713599.400000, 222335.000000 ], [ 713596.900000, 222346.500000 ], [ 713615.200000, 222369.700000 ], [ 713668.700000, 222397.500000 ], [ 713684.400000, 222415.200000 ], [ 713682.500000, 222441.700000 ], [ 713665.300000, 222450.400000 ], [ 713604.200000, 222452.100000 ], [ 713546.200000, 222476.300000 ], [ 713527.200000, 222487.200000 ], [ 713492.900000, 222529.600000 ], [ 713431.100000, 222582.100000 ], [ 713355.500000, 222594.900000 ], [ 713341.700000, 222636.600000 ], [ 713328.700000, 222643.300000 ], [ 713193.000000, 222649.400000 ], [ 713168.200000, 222645.600000 ], [ 713103.000000, 222606.600000 ], [ 713033.200000, 222584.000000 ], [ 713009.400000, 222528.200000 ], [ 712958.100000, 222520.500000 ], [ 712896.200000, 222462.200000 ], [ 712817.700000, 222437.200000 ], [ 712718.071000, 222389.443000 ], [ 712689.200000, 222391.500000 ], [ 712674.700000, 222396.500000 ], [ 712653.400000, 222419.200000 ], [ 712643.100000, 222464.800000 ], [ 712636.300000, 222472.500000 ], [ 712591.500000, 222497.000000 ], [ 712438.400000, 222545.000000 ], [ 712403.900000, 222542.700000 ], [ 712358.400000, 222505.700000 ], [ 712176.200000, 222556.200000 ], [ 712125.900000, 222614.500000 ], [ 712076.200000, 222627.500000 ], [ 712014.900000, 222657.000000 ], [ 711961.400000, 222701.300000 ], [ 711897.300000, 222726.400000 ], [ 711829.600000, 222769.300000 ], [ 711876.500000, 222624.000000 ], [ 711875.400000, 222545.300000 ], [ 711862.900000, 222522.000000 ], [ 711839.400000, 222515.500000 ], [ 711781.300000, 222519.200000 ], [ 711738.100000, 222510.900000 ], [ 711536.100000, 222515.200000 ], [ 711485.313000, 222523.132000 ], [ 711410.000000, 222514.400000 ], [ 711390.500000, 222515.900000 ], [ 711245.400000, 222578.100000 ], [ 711173.300000, 222590.300000 ], [ 711127.200000, 222590.000000 ], [ 711069.500000, 222579.200000 ], [ 711020.400000, 222558.800000 ], [ 710976.900000, 222563.700000 ], [ 710961.103000, 222559.567000 ], [ 710950.100000, 222570.700000 ], [ 710928.200000, 222559.700000 ], [ 710910.600000, 222535.100000 ], [ 710869.600000, 222511.800000 ], [ 710854.400000, 222452.200000 ], [ 710869.900000, 222440.300000 ], [ 710917.600000, 222438.300000 ], [ 710914.400000, 222422.300000 ], [ 710888.200000, 222380.200000 ], [ 710903.700000, 222339.900000 ], [ 710896.400000, 222323.800000 ], [ 710888.600000, 222323.300000 ], [ 710845.400000, 222353.600000 ], [ 710804.300000, 222349.700000 ], [ 710746.400000, 222354.600000 ], [ 710730.400000, 222363.300000 ], [ 710689.700000, 222413.100000 ], [ 710609.200000, 222454.900000 ], [ 710580.782000, 222463.173000 ], [ 710567.700000, 222609.400000 ], [ 710567.500000, 222665.900000 ], [ 710575.200000, 222687.700000 ], [ 710535.200000, 222651.400000 ], [ 710525.400000, 222634.900000 ], [ 710524.200000, 222577.800000 ], [ 710533.200000, 222548.600000 ], [ 710528.800000, 222507.100000 ], [ 710502.100000, 222495.300000 ], [ 710459.800000, 222494.800000 ], [ 710443.600000, 222487.400000 ], [ 710427.000000, 222469.100000 ], [ 710354.500000, 222326.200000 ], [ 710316.900000, 222285.000000 ], [ 710288.700000, 222224.000000 ], [ 710246.700000, 222169.900000 ], [ 710138.600000, 222097.300000 ], [ 710061.400000, 222023.600000 ], [ 710002.900000, 221988.600000 ], [ 709980.500000, 221959.600000 ], [ 709926.800000, 221944.300000 ], [ 709919.000000, 221922.300000 ], [ 709918.400000, 221876.600000 ], [ 709896.900000, 221841.700000 ], [ 709895.700000, 221804.700000 ], [ 709887.700000, 221791.000000 ], [ 709830.100000, 221739.000000 ], [ 709841.800000, 221779.200000 ], [ 709871.000000, 221813.200000 ], [ 709871.500000, 221830.700000 ], [ 709803.200000, 221940.600000 ], [ 709787.300000, 221934.400000 ], [ 709791.300000, 221903.900000 ], [ 709786.700000, 221885.800000 ], [ 709733.500000, 221852.200000 ], [ 709709.800000, 221845.600000 ], [ 709654.200000, 221885.100000 ], [ 709623.300000, 221895.900000 ], [ 709573.000000, 221981.900000 ], [ 709539.000000, 222003.700000 ], [ 709539.300000, 222028.500000 ], [ 709563.500000, 222061.500000 ], [ 709562.400000, 222105.400000 ], [ 709588.600000, 222126.300000 ], [ 709611.900000, 222172.600000 ], [ 709631.900000, 222184.700000 ], [ 709643.700000, 222183.600000 ], [ 709666.000000, 222160.500000 ], [ 709678.000000, 222158.100000 ], [ 709700.900000, 222171.300000 ], [ 709700.200000, 222185.600000 ], [ 709677.100000, 222212.500000 ], [ 709666.200000, 222246.800000 ], [ 709644.600000, 222283.700000 ], [ 709674.200000, 222335.000000 ], [ 709664.800000, 222471.400000 ], [ 709671.200000, 222500.100000 ], [ 709660.700000, 222504.300000 ], [ 709641.500000, 222474.000000 ], [ 709615.900000, 222460.900000 ], [ 709585.800000, 222459.000000 ], [ 709502.900000, 222470.700000 ], [ 709486.700000, 222467.700000 ], [ 709449.900000, 222441.100000 ], [ 709431.900000, 222438.500000 ], [ 709384.800000, 222453.300000 ], [ 709382.300000, 222401.300000 ], [ 709368.100000, 222387.900000 ], [ 709279.900000, 222341.300000 ], [ 709249.800000, 222308.800000 ], [ 709238.100000, 222304.500000 ], [ 709178.800000, 222312.500000 ], [ 709167.094000, 222315.752000 ], [ 709154.202000, 222330.791000 ], [ 709136.800000, 222327.800000 ], [ 709123.300000, 222334.200000 ], [ 709126.700000, 222346.000000 ], [ 709149.400000, 222358.700000 ], [ 709141.600000, 222379.800000 ], [ 709167.046000, 222398.805000 ], [ 709185.200000, 222446.700000 ], [ 709211.500000, 222465.200000 ], [ 709226.600000, 222491.000000 ], [ 709202.668000, 222467.446000 ], [ 709144.694000, 222433.740000 ], [ 709084.922000, 222431.492000 ], [ 709007.173000, 222413.966000 ], [ 708945.154000, 222408.123000 ], [ 708900.213000, 222383.855000 ], [ 708857.519000, 222377.114000 ], [ 708775.600000, 222324.100000 ], [ 708744.000000, 222312.500000 ], [ 708658.300000, 222311.500000 ], [ 708608.200000, 222329.300000 ], [ 708542.400000, 222310.200000 ], [ 708511.900000, 222310.400000 ], [ 708442.100000, 222339.300000 ], [ 708371.900000, 222326.300000 ], [ 708306.700000, 222302.400000 ], [ 708248.400000, 222272.100000 ], [ 708243.600000, 222259.500000 ], [ 708250.300000, 222240.700000 ], [ 708300.600000, 222214.300000 ], [ 708312.400000, 222195.300000 ], [ 708300.400000, 222180.900000 ], [ 708249.200000, 222162.400000 ], [ 708157.200000, 222164.700000 ], [ 708127.000000, 222148.400000 ], [ 708099.600000, 222147.000000 ], [ 708030.100000, 222128.400000 ], [ 707933.100000, 222133.600000 ], [ 707878.500000, 222148.400000 ], [ 707766.100000, 222147.100000 ], [ 707663.700000, 222123.300000 ], [ 707529.500000, 222135.100000 ], [ 707470.600000, 222100.900000 ], [ 707418.700000, 222092.200000 ], [ 707334.700000, 222059.900000 ], [ 707233.800000, 222037.900000 ], [ 707228.900000, 222029.200000 ], [ 707233.900000, 222007.700000 ], [ 707230.300000, 221965.600000 ], [ 707248.300000, 221954.000000 ], [ 707274.800000, 221947.800000 ], [ 707286.500000, 221935.100000 ], [ 707291.500000, 221922.400000 ], [ 707271.200000, 221903.200000 ], [ 707270.200000, 221892.200000 ], [ 707296.200000, 221820.300000 ], [ 707313.100000, 221798.000000 ], [ 707372.200000, 221797.600000 ], [ 707428.800000, 221806.800000 ], [ 707471.600000, 221792.500000 ], [ 707522.900000, 221821.400000 ], [ 707594.500000, 221840.700000 ], [ 707632.400000, 221838.300000 ], [ 707684.500000, 221798.600000 ], [ 707698.100000, 221779.700000 ], [ 707691.600000, 221721.900000 ], [ 707698.400000, 221695.500000 ], [ 707672.500000, 221649.800000 ], [ 707676.500000, 221590.300000 ], [ 707672.700000, 221579.700000 ], [ 707650.000000, 221562.700000 ], [ 707652.000000, 221543.700000 ], [ 707674.200000, 221535.500000 ], [ 707771.100000, 221537.400000 ], [ 707841.600000, 221506.300000 ], [ 707897.900000, 221510.800000 ], [ 708002.200000, 221488.300000 ], [ 708021.200000, 221475.200000 ], [ 708033.400000, 221451.500000 ], [ 708010.300000, 221410.200000 ], [ 708008.800000, 221396.100000 ], [ 708014.900000, 221386.100000 ], [ 708047.800000, 221363.600000 ], [ 708133.700000, 221327.700000 ], [ 708264.700000, 221295.400000 ], [ 708285.800000, 221276.300000 ], [ 708296.600000, 221252.000000 ], [ 708296.000000, 221231.600000 ], [ 708203.900000, 221140.100000 ], [ 708122.200000, 221123.100000 ], [ 708059.100000, 221096.800000 ], [ 708020.400000, 221088.200000 ], [ 707999.400000, 221058.700000 ], [ 707962.100000, 221054.500000 ], [ 707909.600000, 221012.500000 ], [ 707843.300000, 221022.000000 ], [ 707823.100000, 221005.600000 ], [ 707785.100000, 220996.800000 ], [ 707753.900000, 220962.400000 ], [ 707659.800000, 220908.500000 ], [ 707648.400000, 220896.100000 ], [ 707642.900000, 220807.600000 ], [ 707623.700000, 220780.300000 ], [ 707604.300000, 220769.300000 ], [ 707567.100000, 220778.800000 ], [ 707553.882000, 220763.904000 ], [ 707348.600000, 220779.300000 ], [ 707315.000000, 220797.800000 ], [ 707274.100000, 220842.100000 ], [ 707243.000000, 220863.100000 ], [ 707214.200000, 220876.400000 ], [ 707199.200000, 220876.100000 ], [ 707156.600000, 220861.000000 ], [ 707118.300000, 220780.000000 ], [ 707080.100000, 220740.700000 ], [ 707033.600000, 220659.700000 ], [ 706880.700000, 220552.600000 ], [ 706820.500000, 220552.800000 ], [ 706594.200000, 220620.800000 ], [ 706559.300000, 220613.100000 ], [ 706540.300000, 220595.600000 ], [ 706532.031000, 220573.960000 ], [ 706592.000000, 220566.300000 ], [ 706611.100000, 220559.500000 ], [ 706622.200000, 220544.400000 ], [ 706624.600000, 220530.200000 ], [ 706598.800000, 220469.300000 ], [ 706609.100000, 220445.500000 ], [ 706621.200000, 220432.000000 ], [ 706670.000000, 220429.800000 ], [ 706712.300000, 220405.600000 ], [ 706745.700000, 220305.800000 ], [ 706663.800000, 220221.600000 ], [ 706652.400000, 220172.400000 ], [ 706612.800000, 220140.700000 ], [ 706602.100000, 220102.800000 ], [ 706564.800000, 220070.000000 ], [ 706540.200000, 220059.800000 ], [ 706501.300000, 220057.100000 ], [ 706491.100000, 220063.800000 ], [ 706481.500000, 220124.400000 ], [ 706468.200000, 220131.800000 ], [ 706436.600000, 220117.300000 ], [ 706362.300000, 220128.900000 ], [ 706322.900000, 220128.600000 ], [ 706307.400000, 220122.500000 ], [ 706293.100000, 220107.000000 ], [ 706284.800000, 220068.400000 ], [ 706255.000000, 220032.900000 ], [ 706212.300000, 220019.000000 ], [ 706194.000000, 220019.600000 ], [ 706169.800000, 220005.700000 ], [ 706125.800000, 220010.000000 ], [ 706077.900000, 220036.100000 ], [ 706027.200000, 220052.500000 ], [ 705938.900000, 220036.600000 ], [ 705837.300000, 220002.900000 ], [ 705802.900000, 220022.800000 ], [ 705763.000000, 220023.900000 ], [ 705731.100000, 220039.500000 ], [ 705715.700000, 220039.400000 ], [ 705692.100000, 220016.700000 ], [ 705637.400000, 220016.000000 ], [ 705590.600000, 220046.300000 ], [ 705564.700000, 220046.500000 ], [ 705529.100000, 220069.000000 ], [ 705488.482000, 220083.501000 ], [ 705452.700000, 220012.600000 ], [ 705439.300000, 219997.500000 ], [ 705431.300000, 219997.600000 ], [ 705412.400000, 220009.600000 ], [ 705377.700000, 220014.800000 ], [ 705339.400000, 220053.100000 ], [ 705235.500000, 220088.900000 ], [ 705123.600000, 220146.200000 ], [ 705116.000000, 220161.200000 ], [ 705118.600000, 220199.900000 ], [ 705107.400000, 220210.700000 ], [ 705050.500000, 220187.900000 ], [ 705011.300000, 220210.100000 ], [ 705000.100000, 220209.000000 ], [ 704967.900000, 220187.900000 ], [ 704949.100000, 220183.600000 ], [ 704874.700000, 220202.500000 ], [ 704757.000000, 220245.000000 ], [ 704746.500000, 220252.100000 ], [ 704710.500000, 220316.900000 ], [ 704689.900000, 220377.000000 ], [ 704673.200000, 220398.100000 ], [ 704669.100000, 220433.700000 ], [ 704661.700000, 220444.500000 ], [ 704641.300000, 220453.100000 ], [ 704619.200000, 220447.100000 ], [ 704523.600000, 220358.000000 ], [ 704481.300000, 220354.300000 ], [ 704393.400000, 220289.300000 ], [ 704377.300000, 220291.400000 ], [ 704362.600000, 220282.900000 ], [ 704361.100000, 220274.800000 ], [ 704390.700000, 220234.400000 ], [ 704385.800000, 220148.300000 ], [ 704378.800000, 220132.100000 ], [ 704349.200000, 220121.500000 ], [ 704289.000000, 220072.200000 ], [ 704276.500000, 220059.300000 ], [ 704274.300000, 220046.100000 ], [ 704278.800000, 220034.900000 ], [ 704330.600000, 220017.300000 ], [ 704360.800000, 220018.500000 ], [ 704361.800000, 219999.300000 ], [ 704330.000000, 219999.100000 ], [ 704253.800000, 219966.900000 ], [ 704096.000000, 219931.100000 ], [ 704051.900000, 219914.200000 ], [ 704011.000000, 219931.800000 ], [ 703911.000000, 219994.900000 ], [ 703876.300000, 220000.600000 ], [ 703844.000000, 219997.100000 ], [ 703814.700000, 219963.100000 ], [ 703805.300000, 219963.700000 ], [ 703740.900000, 220002.400000 ], [ 703724.190000, 220029.092000 ], [ 703729.400000, 220182.600000 ], [ 703714.200000, 220194.000000 ], [ 703606.900000, 220165.600000 ], [ 703589.400000, 220174.000000 ], [ 703572.800000, 220249.100000 ], [ 703524.900000, 220367.000000 ], [ 703522.700000, 220418.700000 ], [ 703513.700000, 220441.400000 ], [ 703450.300000, 220512.900000 ], [ 703352.500000, 220529.900000 ], [ 703320.700000, 220546.000000 ], [ 703307.900000, 220560.300000 ], [ 703294.200000, 220592.300000 ], [ 703284.100000, 220671.200000 ], [ 703261.200000, 220708.300000 ], [ 703241.400000, 220726.300000 ], [ 703228.900000, 220729.300000 ], [ 703203.900000, 220720.800000 ], [ 703106.600000, 220640.700000 ], [ 703096.200000, 220627.000000 ], [ 703064.000000, 220527.000000 ], [ 703052.000000, 220514.800000 ], [ 703018.200000, 220500.300000 ], [ 702902.563000, 220471.127000 ], [ 702789.200000, 220799.600000 ], [ 702653.500000, 221073.700000 ], [ 702646.400000, 221082.800000 ], [ 702613.500000, 221088.700000 ], [ 702598.000000, 221089.200000 ], [ 702510.900000, 221046.500000 ], [ 702348.500000, 221072.600000 ], [ 702269.500000, 221059.500000 ], [ 701177.500000, 220571.100000 ], [ 701147.000000, 220574.600000 ], [ 701103.900000, 220596.000000 ], [ 701065.800000, 220587.100000 ], [ 701053.900000, 220567.200000 ], [ 701022.100000, 220468.300000 ], [ 700992.100000, 220475.300000 ], [ 700976.400000, 220488.000000 ], [ 700808.600000, 220686.600000 ], [ 700801.900000, 220703.700000 ], [ 700803.600000, 220793.900000 ], [ 700793.200000, 220814.400000 ], [ 700672.900000, 220854.800000 ], [ 700634.400000, 220875.000000 ], [ 700620.947000, 220889.154000 ], [ 700513.200000, 220827.800000 ], [ 700474.000000, 220814.000000 ], [ 700200.900000, 220786.100000 ], [ 700146.800000, 220772.200000 ], [ 699997.400000, 220659.500000 ], [ 699664.900000, 220532.000000 ], [ 699638.300000, 220526.600000 ], [ 699576.222000, 220457.779000 ], [ 699528.500000, 220352.800000 ], [ 699517.900000, 220345.700000 ], [ 699489.100000, 220347.800000 ], [ 699420.300000, 220384.900000 ], [ 699399.400000, 220389.300000 ], [ 699337.000000, 220390.400000 ], [ 699242.900000, 220402.200000 ], [ 699174.400000, 220427.600000 ], [ 699093.200000, 220419.800000 ], [ 699060.500000, 220440.500000 ], [ 699053.000000, 220459.500000 ], [ 699032.100000, 220464.200000 ], [ 698991.524000, 220489.924000 ], [ 698983.800000, 220485.123000 ], [ 698981.600000, 220464.900000 ], [ 698964.400000, 220443.000000 ], [ 698636.100000, 220112.300000 ], [ 698498.000000, 219935.100000 ], [ 698441.700000, 219852.800000 ], [ 698418.200000, 219795.600000 ], [ 698403.000000, 219734.500000 ], [ 698393.300000, 219567.200000 ], [ 698364.500000, 219470.900000 ], [ 698327.200000, 219418.800000 ], [ 698276.600000, 219373.400000 ], [ 698198.400000, 219237.100000 ], [ 698081.300000, 219125.200000 ], [ 698047.400000, 219069.400000 ], [ 697992.600000, 218945.600000 ], [ 697873.600000, 218733.700000 ], [ 697815.900000, 218551.700000 ], [ 697760.900000, 218201.000000 ], [ 697734.500000, 218158.600000 ], [ 697692.500000, 218141.200000 ], [ 697658.700000, 218084.200000 ], [ 697627.900000, 218049.800000 ], [ 697552.000000, 217909.600000 ], [ 697629.600000, 217761.300000 ], [ 697630.300000, 217733.400000 ], [ 697602.200000, 217699.000000 ], [ 697515.900000, 217621.600000 ], [ 697479.700000, 217574.500000 ], [ 697401.700000, 217398.500000 ], [ 697392.745000, 217337.975000 ], [ 697492.600000, 217214.800000 ], [ 697551.200000, 217160.600000 ], [ 697618.400000, 217123.100000 ], [ 697646.841000, 217118.905000 ], [ 697572.100000, 217005.900000 ], [ 697482.000000, 216850.100000 ], [ 697386.200000, 216656.000000 ], [ 697349.900000, 216556.300000 ], [ 697357.500000, 216505.500000 ], [ 697427.800000, 216268.200000 ], [ 697476.800000, 216076.700000 ], [ 697588.000000, 216234.000000 ], [ 697625.800000, 216209.600000 ], [ 697536.200000, 216072.800000 ], [ 697521.700000, 216046.200000 ], [ 697511.300000, 216005.100000 ], [ 697515.900000, 215959.100000 ], [ 697546.698000, 215857.394000 ], [ 697545.400000, 215838.700000 ], [ 697565.000000, 215761.800000 ], [ 697592.800000, 215377.200000 ], [ 697604.200000, 215098.500000 ], [ 697600.900000, 215038.500000 ], [ 697571.900000, 214857.500000 ], [ 697510.900000, 214859.400000 ], [ 697511.800000, 214837.500000 ], [ 697500.200000, 214791.200000 ], [ 697445.900000, 214641.600000 ], [ 697382.900000, 214541.900000 ], [ 697336.700000, 214496.000000 ], [ 697219.900000, 214435.900000 ], [ 697141.500000, 214336.800000 ], [ 697105.500000, 214265.600000 ], [ 697047.000000, 214194.900000 ], [ 697013.900000, 214139.700000 ], [ 696962.600000, 214028.600000 ], [ 696913.300000, 213892.800000 ], [ 696909.200000, 213829.300000 ], [ 696922.100000, 213716.800000 ], [ 696881.000000, 213408.400000 ], [ 696807.123000, 213188.496000 ], [ 696749.900000, 213069.700000 ], [ 696712.800000, 212954.900000 ], [ 696696.200000, 212865.500000 ], [ 696654.600000, 212447.500000 ], [ 696642.500000, 212422.800000 ], [ 696535.300000, 212332.900000 ], [ 696500.800000, 212294.400000 ], [ 696474.500000, 212248.900000 ], [ 696419.500000, 212030.700000 ], [ 696426.000000, 211944.600000 ], [ 696394.900000, 211873.700000 ], [ 696397.400000, 211848.100000 ], [ 696423.300000, 211741.600000 ], [ 696424.600000, 211686.100000 ], [ 696471.000000, 211625.700000 ], [ 696477.400000, 211597.600000 ], [ 696427.500000, 211552.300000 ], [ 696380.500000, 211473.400000 ], [ 696365.100000, 211438.700000 ], [ 696335.357000, 211332.531000 ], [ 696297.600000, 211352.800000 ], [ 696257.026000, 211384.606000 ], [ 696262.400000, 211402.800000 ], [ 696299.700000, 211426.300000 ], [ 696293.600000, 211469.500000 ], [ 696315.200000, 211542.700000 ], [ 696314.737000, 211560.771000 ], [ 696270.700000, 211610.200000 ], [ 696279.100000, 211667.600000 ], [ 696266.100000, 211689.600000 ], [ 696250.300000, 211691.500000 ], [ 696234.300000, 211676.100000 ], [ 696223.900000, 211646.600000 ], [ 696217.200000, 211572.800000 ], [ 696195.700000, 211549.200000 ], [ 696116.305000, 211537.701000 ], [ 696076.200000, 211565.100000 ], [ 696028.800000, 211577.200000 ], [ 696016.900000, 211590.600000 ], [ 696023.400000, 211607.800000 ], [ 696065.000000, 211650.600000 ], [ 696075.000000, 211678.600000 ], [ 696069.100000, 211703.200000 ], [ 696000.800000, 211827.100000 ], [ 695991.100000, 211910.800000 ], [ 695979.700000, 211925.800000 ], [ 695964.300000, 211922.800000 ], [ 695940.900000, 211899.600000 ], [ 695900.000000, 211811.400000 ], [ 695875.600000, 211776.700000 ], [ 695848.400000, 211753.800000 ], [ 695843.800000, 211697.800000 ], [ 695829.000000, 211691.400000 ], [ 695810.700000, 211699.500000 ], [ 695770.900000, 211820.200000 ], [ 695780.000000, 211850.400000 ], [ 695809.500000, 211876.400000 ], [ 695842.800000, 211929.200000 ], [ 695850.600000, 211985.600000 ], [ 695886.000000, 212021.400000 ], [ 695879.900000, 212060.400000 ], [ 695906.100000, 212118.800000 ], [ 695905.747000, 212141.841000 ], [ 695895.100000, 212161.800000 ], [ 695878.000000, 212174.300000 ], [ 695753.800000, 212212.500000 ], [ 695667.400000, 212310.000000 ], [ 695555.200000, 212357.200000 ], [ 695529.700000, 212378.100000 ], [ 695518.300000, 212395.100000 ], [ 695507.500000, 212576.700000 ], [ 695504.600000, 212583.600000 ], [ 695470.200000, 212599.000000 ], [ 695465.700000, 212608.600000 ], [ 695475.000000, 212646.100000 ], [ 695471.200000, 212672.400000 ], [ 695482.700000, 212696.700000 ], [ 695483.500000, 212719.900000 ], [ 695517.400000, 212750.700000 ], [ 695513.300000, 212774.600000 ], [ 695445.000000, 212754.700000 ], [ 695414.300000, 212709.100000 ], [ 695403.400000, 212660.600000 ], [ 695383.700000, 212634.900000 ], [ 695356.300000, 212621.300000 ], [ 695362.900000, 212573.900000 ], [ 695329.500000, 212494.200000 ], [ 695311.600000, 212472.000000 ], [ 695281.100000, 212461.200000 ], [ 695262.700000, 212414.100000 ], [ 695219.200000, 212395.600000 ], [ 695184.400000, 212367.900000 ], [ 695094.600000, 212256.000000 ], [ 695030.500000, 212217.700000 ], [ 695012.100000, 212189.700000 ], [ 695006.200000, 212167.500000 ], [ 694966.500000, 212110.800000 ], [ 694962.300000, 212064.600000 ], [ 694948.700000, 212061.100000 ], [ 694901.300000, 212067.900000 ], [ 694893.100000, 212054.100000 ], [ 694891.070000, 212032.685000 ], [ 694877.800000, 212011.600000 ], [ 694876.200000, 211964.400000 ], [ 694860.600000, 211956.300000 ], [ 694717.700000, 211945.400000 ], [ 694646.100000, 211914.300000 ], [ 694593.807000, 211942.474000 ], [ 694611.995000, 211899.700000 ], [ 694573.700000, 211889.100000 ], [ 694491.600000, 211851.200000 ], [ 694476.600000, 211791.200000 ], [ 694462.600000, 211763.300000 ], [ 694402.700000, 211670.000000 ], [ 694383.000000, 211622.100000 ], [ 694359.600000, 211600.900000 ], [ 694343.000000, 211533.900000 ], [ 694262.200000, 211471.200000 ], [ 694243.753000, 211445.050000 ], [ 694220.900000, 211441.800000 ], [ 694206.700000, 211432.800000 ], [ 694196.700000, 211414.900000 ], [ 694203.900000, 211411.700000 ], [ 694212.700000, 211376.700000 ], [ 694202.500000, 211219.400000 ], [ 694217.200000, 211187.000000 ], [ 694215.500000, 211142.700000 ], [ 694181.900000, 211093.000000 ], [ 694150.600000, 211003.800000 ], [ 694100.300000, 210934.700000 ], [ 694069.400000, 210833.100000 ], [ 694018.800000, 210768.200000 ], [ 693990.700000, 210703.300000 ], [ 693979.200000, 210697.200000 ], [ 693967.000000, 210702.400000 ], [ 693961.200000, 210717.400000 ], [ 693979.700000, 210816.500000 ], [ 693982.000000, 210925.100000 ], [ 693979.000000, 210967.700000 ], [ 693969.400000, 210997.000000 ], [ 693955.500000, 211011.200000 ], [ 693945.100000, 211012.100000 ], [ 693930.200000, 210996.000000 ], [ 693940.200000, 210958.100000 ], [ 693937.000000, 210941.500000 ], [ 693888.000000, 210870.500000 ], [ 693840.900000, 210824.000000 ], [ 693757.600000, 210664.000000 ], [ 693709.600000, 210628.400000 ], [ 693708.300000, 210580.800000 ], [ 693698.300000, 210566.200000 ], [ 693687.500000, 210565.000000 ], [ 693676.600000, 210575.000000 ], [ 693674.100000, 210641.100000 ], [ 693704.400000, 210688.900000 ], [ 693694.300000, 210760.900000 ], [ 693699.500000, 210841.300000 ], [ 693688.600000, 210883.900000 ], [ 693703.500000, 210970.300000 ], [ 693699.600000, 210975.500000 ], [ 693688.900000, 210974.200000 ], [ 693667.100000, 210920.600000 ], [ 693646.400000, 210889.900000 ], [ 693638.500000, 210843.200000 ], [ 693622.700000, 210827.500000 ], [ 693571.700000, 210797.900000 ], [ 693550.200000, 210776.500000 ], [ 693514.800000, 210733.700000 ], [ 693505.200000, 210708.900000 ], [ 693495.700000, 210708.900000 ], [ 693491.300000, 210726.000000 ], [ 693528.000000, 210790.200000 ], [ 693536.900000, 210812.000000 ], [ 693533.200000, 210824.000000 ], [ 693519.200000, 210823.300000 ], [ 693495.100000, 210806.800000 ], [ 693422.400000, 210739.300000 ], [ 693374.800000, 210678.200000 ], [ 693352.200000, 210622.800000 ], [ 693354.500000, 210471.200000 ], [ 693336.600000, 210462.200000 ], [ 693308.500000, 210485.100000 ], [ 693280.900000, 210525.500000 ], [ 693269.100000, 210523.200000 ], [ 693279.500000, 210470.000000 ], [ 693217.100000, 210330.700000 ], [ 693201.300000, 210302.200000 ], [ 693156.200000, 210248.600000 ], [ 693144.600000, 210214.800000 ], [ 693109.700000, 210156.900000 ], [ 693101.500000, 210115.000000 ], [ 693088.200000, 210088.200000 ], [ 693036.700000, 210060.900000 ], [ 693026.200000, 210048.400000 ], [ 693017.763000, 210024.528000 ], [ 693023.300000, 210012.800000 ], [ 693021.400000, 209988.900000 ], [ 693026.600000, 209956.900000 ], [ 693039.800000, 209933.400000 ], [ 693047.900000, 209899.800000 ], [ 693104.400000, 209863.300000 ], [ 693161.800000, 209854.500000 ], [ 693207.100000, 209833.400000 ], [ 693229.700000, 209806.700000 ], [ 693251.270000, 209647.870000 ], [ 693272.900000, 209559.900000 ], [ 693299.500000, 209498.000000 ], [ 693314.590000, 209484.567000 ], [ 693385.200000, 209450.100000 ], [ 693393.900000, 209419.900000 ], [ 693493.100000, 209336.500000 ], [ 693496.000000, 209308.200000 ], [ 693555.000000, 209232.800000 ], [ 693561.100000, 209193.900000 ], [ 693576.500000, 209162.000000 ], [ 693579.700000, 209143.900000 ], [ 693562.600000, 209077.400000 ], [ 693564.200000, 209062.400000 ], [ 693586.500000, 209020.200000 ], [ 693582.000000, 209004.900000 ], [ 693565.000000, 209006.700000 ], [ 693541.200000, 209045.300000 ], [ 693526.400000, 209054.100000 ], [ 693500.300000, 209055.000000 ], [ 693460.800000, 209070.900000 ], [ 693422.400000, 209069.900000 ], [ 693425.800000, 209008.600000 ], [ 693431.000000, 208989.800000 ], [ 693453.300000, 208956.000000 ], [ 693468.700000, 208910.700000 ], [ 693492.700000, 208886.900000 ], [ 693524.200000, 208889.000000 ], [ 693576.000000, 208917.100000 ], [ 693589.600000, 208918.100000 ], [ 693613.700000, 208894.900000 ], [ 693620.900000, 208873.400000 ], [ 693615.800000, 208841.200000 ], [ 693600.700000, 208798.900000 ], [ 693566.700000, 208744.300000 ], [ 693543.900000, 208624.300000 ], [ 693541.700000, 208579.200000 ], [ 693548.600000, 208566.400000 ], [ 693593.200000, 208533.600000 ], [ 693621.900000, 208492.400000 ], [ 693673.600000, 208444.500000 ], [ 693682.200000, 208416.200000 ], [ 693707.900000, 208392.000000 ], [ 693715.100000, 208293.400000 ], [ 693732.900000, 208268.800000 ], [ 693759.000000, 208249.900000 ], [ 693768.000000, 208227.800000 ], [ 693762.300000, 208214.200000 ], [ 693750.700000, 208207.400000 ], [ 693664.500000, 208224.000000 ], [ 693648.800000, 208217.700000 ], [ 693646.800000, 208189.700000 ], [ 693655.500000, 208157.600000 ], [ 693684.400000, 208125.200000 ], [ 693689.400000, 208100.200000 ], [ 693656.200000, 208061.100000 ], [ 693613.200000, 208034.700000 ], [ 693579.900000, 207989.700000 ], [ 693561.047000, 207984.180000 ], [ 693500.400000, 208004.400000 ], [ 693446.600000, 207957.900000 ], [ 693439.100000, 207923.700000 ], [ 693386.218000, 207891.305000 ], [ 693325.800000, 207962.100000 ], [ 693301.200000, 208018.200000 ], [ 693093.800000, 208242.600000 ], [ 693022.700000, 208414.900000 ], [ 692959.500000, 208527.200000 ], [ 692914.300000, 208563.900000 ], [ 692824.900000, 208598.700000 ], [ 692807.200000, 208599.600000 ], [ 692741.300000, 208584.900000 ], [ 692592.800000, 208587.400000 ], [ 692463.800000, 208553.300000 ], [ 692396.500000, 208567.200000 ], [ 692377.800000, 208489.500000 ], [ 692317.500000, 208462.300000 ], [ 692263.600000, 208472.300000 ], [ 691965.100000, 208562.200000 ], [ 691956.200000, 208499.600000 ], [ 691949.600000, 208490.100000 ], [ 691927.500000, 208383.100000 ], [ 691885.000000, 208375.900000 ], [ 691855.500000, 208374.900000 ], [ 691791.200000, 208392.700000 ], [ 691704.400000, 208403.000000 ], [ 691442.400000, 208407.100000 ], [ 691277.000000, 208428.500000 ], [ 691223.500000, 208419.200000 ], [ 690964.800000, 208276.500000 ], [ 690875.003000, 208200.103000 ], [ 690825.794000, 208176.045000 ], [ 690655.287000, 207977.516000 ], [ 690481.400000, 208116.600000 ], [ 690444.600000, 208174.700000 ], [ 690433.660000, 208208.814000 ], [ 690430.000000, 208284.400000 ], [ 690492.900000, 208463.900000 ], [ 690494.400000, 208559.600000 ], [ 690502.000000, 208592.000000 ], [ 690558.000000, 208783.500000 ], [ 690604.000000, 208888.100000 ], [ 690603.600000, 208928.900000 ], [ 690582.471000, 209073.897000 ], [ 690460.719000, 209223.038000 ], [ 690448.600000, 209199.400000 ], [ 690442.000000, 209166.900000 ], [ 690487.111000, 209077.927000 ], [ 690483.500000, 209058.800000 ], [ 690489.800000, 208986.400000 ], [ 690465.400000, 208895.200000 ], [ 690412.600000, 208777.500000 ], [ 690409.600000, 208750.600000 ], [ 690245.300000, 208567.200000 ], [ 690210.765000, 208500.866000 ], [ 690099.500000, 208334.200000 ], [ 690086.700000, 208328.300000 ], [ 690059.400000, 208354.500000 ], [ 690047.110000, 208357.450000 ], [ 690008.000000, 208314.700000 ], [ 689879.000000, 208228.500000 ], [ 689750.000000, 208090.900000 ], [ 689677.700000, 208061.900000 ], [ 689637.170000, 208053.630000 ], [ 689640.800000, 208071.200000 ], [ 689698.800000, 208151.600000 ], [ 689758.200000, 208285.900000 ], [ 689805.100000, 208418.500000 ], [ 689802.600000, 208427.500000 ], [ 689785.600000, 208427.500000 ], [ 689565.200000, 208224.300000 ], [ 689248.600000, 208041.200000 ], [ 689207.400000, 208038.100000 ], [ 689164.200000, 208019.300000 ], [ 689118.200000, 208011.800000 ], [ 689067.800000, 208022.200000 ], [ 689020.800000, 208021.700000 ], [ 688992.400000, 208031.200000 ], [ 688927.100000, 208008.700000 ], [ 688765.300000, 207973.300000 ], [ 688774.400000, 207953.000000 ], [ 688805.900000, 207926.900000 ], [ 688816.500000, 207881.200000 ], [ 688813.100000, 207869.000000 ], [ 688801.800000, 207883.900000 ], [ 688798.900000, 207911.100000 ], [ 688778.100000, 207923.000000 ], [ 688716.000000, 207902.400000 ], [ 688631.500000, 207896.800000 ], [ 688580.300000, 207875.600000 ], [ 688577.800000, 207870.700000 ], [ 688583.500000, 207867.700000 ], [ 688649.700000, 207873.100000 ], [ 688647.800000, 207863.100000 ], [ 688602.800000, 207852.500000 ], [ 688602.800000, 207836.800000 ], [ 688695.900000, 207823.700000 ], [ 688706.300000, 207813.400000 ], [ 688704.700000, 207800.000000 ], [ 688694.700000, 207793.700000 ], [ 688632.800000, 207796.800000 ], [ 688592.800000, 207785.600000 ], [ 688537.800000, 207786.200000 ], [ 688503.400000, 207767.500000 ], [ 688435.900000, 207756.200000 ], [ 688409.700000, 207733.700000 ], [ 688356.600000, 207710.600000 ], [ 688235.300000, 207625.600000 ], [ 688182.800000, 207601.200000 ], [ 688160.900000, 207565.000000 ], [ 688136.600000, 207545.000000 ], [ 688063.100000, 207516.800000 ], [ 688033.400000, 207490.300000 ], [ 688005.200000, 207476.300000 ], [ 687938.700000, 207463.100000 ], [ 687809.700000, 207409.600000 ], [ 687797.700000, 207388.800000 ], [ 687795.400000, 207358.800000 ], [ 687782.533000, 207348.337000 ], [ 687755.000000, 207398.100000 ], [ 687726.300000, 207431.900000 ], [ 687719.400000, 207471.900000 ], [ 687708.800000, 207495.000000 ], [ 687561.900000, 207550.600000 ], [ 687553.100000, 207562.500000 ], [ 687548.497000, 207593.035000 ], [ 687524.733000, 207612.452000 ], [ 687452.997000, 207634.958000 ], [ 687436.117000, 207649.024000 ], [ 687412.205000, 207630.738000 ], [ 687303.897000, 207604.013000 ], [ 687247.632000, 207612.452000 ], [ 687215.280000, 207629.331000 ], [ 687195.588000, 207599.793000 ], [ 687153.390000, 207557.595000 ], [ 687060.554000, 207490.078000 ], [ 687066.180000, 207481.638000 ], [ 687087.279000, 207476.012000 ], [ 687091.499000, 207466.165000 ], [ 687053.521000, 207439.440000 ], [ 686881.915000, 207481.638000 ], [ 686855.190000, 207501.330000 ], [ 686784.700000, 207479.800000 ], [ 686757.200000, 207481.400000 ], [ 686699.100000, 207507.800000 ], [ 686673.000000, 207510.900000 ], [ 686641.400000, 207524.200000 ], [ 686598.900000, 207522.000000 ], [ 686531.000000, 207488.200000 ], [ 686484.300000, 207452.900000 ], [ 686452.400000, 207446.800000 ], [ 686409.200000, 207426.300000 ], [ 686399.219000, 207435.130000 ], [ 686401.500000, 207446.200000 ], [ 686453.300000, 207489.200000 ], [ 686472.100000, 207519.000000 ], [ 686514.000000, 207561.200000 ], [ 686513.300000, 207567.500000 ], [ 686506.500000, 207571.900000 ], [ 686449.500000, 207541.400000 ], [ 686390.200000, 207543.700000 ], [ 686367.500000, 207549.400000 ], [ 686341.500000, 207571.700000 ], [ 686269.100000, 207594.300000 ], [ 686186.700000, 207597.900000 ], [ 686033.000000, 207550.200000 ], [ 685943.500000, 207565.300000 ], [ 685922.400000, 207574.500000 ], [ 685878.100000, 207620.100000 ], [ 685812.400000, 207655.500000 ], [ 685783.600000, 207660.900000 ], [ 685699.900000, 207649.900000 ], [ 685654.200000, 207668.500000 ], [ 685623.100000, 207659.700000 ], [ 685612.700000, 207662.500000 ], [ 685578.032000, 207687.930000 ], [ 685530.800000, 207759.200000 ], [ 685514.400000, 207789.000000 ], [ 685503.700000, 207838.900000 ], [ 685461.400000, 207881.000000 ], [ 685406.000000, 207894.200000 ], [ 685375.300000, 207927.900000 ], [ 685328.200000, 207963.300000 ], [ 685313.278000, 207989.322000 ], [ 685290.200000, 207990.400000 ], [ 685205.900000, 208026.600000 ], [ 685124.700000, 208030.200000 ], [ 685116.200000, 208038.800000 ], [ 684984.400000, 208082.300000 ], [ 684861.500000, 208136.400000 ], [ 684814.700000, 208131.400000 ], [ 684784.200000, 208144.400000 ], [ 684748.075000, 208174.444000 ], [ 684670.600000, 208148.700000 ], [ 684577.300000, 208080.600000 ], [ 684515.800000, 208078.100000 ], [ 684469.800000, 208096.600000 ], [ 684376.400000, 208083.300000 ], [ 684306.500000, 208064.900000 ], [ 684243.300000, 208075.500000 ], [ 684222.600000, 208072.100000 ], [ 684181.900000, 208051.100000 ], [ 684129.000000, 208041.400000 ], [ 684041.100000, 208003.700000 ], [ 683939.700000, 207946.800000 ], [ 683900.700000, 207898.900000 ], [ 683820.800000, 207819.900000 ], [ 683821.300000, 207812.900000 ], [ 683829.000000, 207811.600000 ], [ 683896.000000, 207822.900000 ], [ 683923.300000, 207815.600000 ], [ 683973.300000, 207821.600000 ], [ 683985.000000, 207814.600000 ], [ 683995.000000, 207800.600000 ], [ 683995.000000, 207753.400000 ], [ 684022.000000, 207691.800000 ], [ 684041.500000, 207665.900000 ], [ 684023.300000, 207659.600000 ], [ 683969.000000, 207660.900000 ], [ 683960.300000, 207656.200000 ], [ 683958.400000, 207645.000000 ], [ 683982.000000, 207611.100000 ], [ 683985.900000, 207588.100000 ], [ 684029.100000, 207573.700000 ], [ 684034.600000, 207568.100000 ], [ 684032.100000, 207554.800000 ], [ 684016.900000, 207548.200000 ], [ 683975.800000, 207557.800000 ], [ 683960.700000, 207554.200000 ], [ 683917.320000, 207484.583000 ], [ 683906.100000, 207476.500000 ], [ 683869.100000, 207468.700000 ], [ 683746.600000, 207418.100000 ], [ 683739.100000, 207373.700000 ], [ 683762.800000, 207314.000000 ], [ 683753.000000, 207301.400000 ], [ 683654.400000, 207321.100000 ], [ 683645.900000, 207320.200000 ], [ 683634.800000, 207306.400000 ], [ 683652.500000, 207276.500000 ], [ 683668.500000, 207276.500000 ], [ 683689.800000, 207261.700000 ], [ 683747.200000, 207245.600000 ], [ 683751.300000, 207219.000000 ], [ 683774.800000, 207180.500000 ], [ 683766.000000, 207162.700000 ], [ 683722.800000, 207126.500000 ], [ 683717.800000, 207075.200000 ], [ 683692.800000, 207019.600000 ], [ 683691.300000, 206988.400000 ], [ 683736.100000, 206972.300000 ], [ 683750.400000, 206950.400000 ], [ 683747.000000, 206934.700000 ], [ 683690.100000, 206840.300000 ], [ 683692.000000, 206829.700000 ], [ 683714.600000, 206815.500000 ], [ 683717.800000, 206797.100000 ], [ 683673.500000, 206727.100000 ], [ 683668.500000, 206673.400000 ], [ 683654.500000, 206647.900000 ], [ 683661.700000, 206618.700000 ], [ 683668.200000, 206613.400000 ], [ 683695.700000, 206616.600000 ], [ 683779.500000, 206632.200000 ], [ 683820.300000, 206651.200000 ], [ 683825.300000, 206645.000000 ], [ 683744.500000, 206514.400000 ], [ 683781.100000, 206472.600000 ], [ 683765.700000, 206317.200000 ], [ 683745.800000, 206266.200000 ], [ 683724.300000, 206231.800000 ], [ 683685.700000, 206140.000000 ], [ 683630.600000, 206043.500000 ], [ 683571.700000, 205963.900000 ], [ 683540.272000, 205901.877000 ], [ 683404.900000, 205730.800000 ], [ 683386.000000, 205689.500000 ], [ 683382.900000, 205659.700000 ], [ 683395.300000, 205618.500000 ], [ 683400.500000, 205570.700000 ], [ 683379.100000, 205428.000000 ], [ 683397.500000, 205378.400000 ], [ 683394.000000, 205345.400000 ], [ 683387.300000, 205343.300000 ], [ 683376.300000, 205352.700000 ], [ 683348.500000, 205413.600000 ], [ 683334.000000, 205489.000000 ], [ 683301.000000, 205599.800000 ], [ 683291.000000, 205721.200000 ], [ 683280.000000, 205750.200000 ], [ 683271.000000, 205751.700000 ], [ 683258.600000, 205737.800000 ], [ 683256.500000, 205681.600000 ], [ 683237.500000, 205634.800000 ], [ 683229.200000, 205587.300000 ], [ 683242.200000, 205440.200000 ], [ 683233.200000, 205380.700000 ], [ 683221.700000, 205348.800000 ], [ 683225.500000, 205318.100000 ], [ 683212.600000, 205277.100000 ], [ 683216.200000, 205257.200000 ], [ 683232.200000, 205240.500000 ], [ 683288.000000, 205211.900000 ], [ 683368.900000, 205153.700000 ], [ 683406.800000, 205138.100000 ], [ 683451.000000, 205057.700000 ], [ 683488.200000, 205028.200000 ], [ 683543.200000, 204997.200000 ], [ 683550.700000, 204984.900000 ], [ 683551.000000, 204960.400000 ], [ 683538.000000, 204962.900000 ], [ 683522.700000, 204989.400000 ], [ 683497.500000, 205004.400000 ], [ 683475.200000, 205005.900000 ], [ 683481.000000, 204990.200000 ], [ 683500.800000, 204974.800000 ], [ 683506.400000, 204938.200000 ], [ 683515.700000, 204930.200000 ], [ 683581.200000, 204903.300000 ], [ 683702.700000, 204877.700000 ], [ 683824.500000, 204873.900000 ], [ 683831.800000, 204866.400000 ], [ 683827.900000, 204859.200000 ], [ 683762.200000, 204851.500000 ], [ 683711.300000, 204835.700000 ], [ 683636.700000, 204827.900000 ], [ 683587.700000, 204809.200000 ], [ 683464.500000, 204817.200000 ], [ 683422.200000, 204802.300000 ], [ 683330.200000, 204802.000000 ], [ 683315.200000, 204817.500000 ], [ 683288.700000, 204900.200000 ], [ 683262.800000, 204916.900000 ], [ 683147.900000, 204933.200000 ], [ 683095.200000, 204916.400000 ], [ 683066.200000, 204916.400000 ], [ 683055.200000, 204925.400000 ], [ 683032.000000, 204967.900000 ], [ 683014.200000, 204981.900000 ], [ 683005.000000, 204977.100000 ], [ 682970.600000, 204983.400000 ], [ 682924.600000, 204979.700000 ], [ 682822.500000, 204999.700000 ], [ 682692.900000, 204985.300000 ], [ 682606.900000, 204995.200000 ], [ 682565.800000, 205021.200000 ], [ 682531.700000, 205066.600000 ], [ 682513.600000, 205184.200000 ], [ 682502.800000, 205191.100000 ], [ 682452.400000, 205215.800000 ], [ 682294.400000, 205259.100000 ], [ 682174.100000, 205326.300000 ], [ 682121.600000, 205327.500000 ], [ 682035.900000, 205341.600000 ], [ 681991.100000, 205340.300000 ], [ 681972.000000, 205330.200000 ], [ 681938.100000, 205288.200000 ], [ 681899.500000, 205266.700000 ], [ 681859.000000, 205257.200000 ], [ 681758.100000, 205249.500000 ], [ 681640.200000, 205211.700000 ], [ 681260.900000, 205174.500000 ], [ 680998.300000, 205134.000000 ], [ 680981.700000, 205109.600000 ], [ 680906.002000, 205078.224000 ], [ 680868.426000, 205046.911000 ], [ 677755.925000, 202958.341000 ], [ 677696.431000, 202895.715000 ], [ 677690.500000, 202798.700000 ], [ 677697.000000, 202750.700000 ], [ 677421.400000, 202723.600000 ], [ 677347.700000, 202703.100000 ], [ 677259.300000, 202694.400000 ], [ 677222.900000, 202696.500000 ], [ 677024.900000, 202737.800000 ], [ 676842.900000, 202765.100000 ], [ 676807.400000, 202775.500000 ], [ 676809.200000, 202790.300000 ], [ 676797.700000, 202802.700000 ], [ 676673.100000, 202847.500000 ], [ 676560.200000, 202954.100000 ], [ 676506.200000, 202989.800000 ], [ 676395.300000, 203033.300000 ], [ 676291.300000, 203099.200000 ], [ 676239.200000, 203111.300000 ], [ 676063.200000, 203105.200000 ], [ 675861.200000, 203062.400000 ], [ 675665.500000, 203036.500000 ], [ 675651.400000, 203016.200000 ], [ 675559.700000, 203037.000000 ], [ 675345.900000, 203065.800000 ], [ 675119.500000, 203064.900000 ], [ 675054.400000, 203053.900000 ], [ 674774.200000, 202976.400000 ], [ 674689.400000, 202967.400000 ], [ 674579.000000, 202934.000000 ], [ 674391.600000, 202953.100000 ], [ 674288.100000, 202939.000000 ], [ 673598.000000, 202641.200000 ], [ 673546.800000, 202612.200000 ], [ 673494.600000, 202572.900000 ], [ 673470.600000, 202580.700000 ], [ 673358.600000, 202533.400000 ], [ 673319.900000, 202526.200000 ], [ 673289.900000, 202538.400000 ], [ 673249.200000, 202578.000000 ], [ 673226.000000, 202590.100000 ], [ 673177.070000, 202584.400000 ], [ 672345.200000, 202238.400000 ], [ 672164.200000, 202170.900000 ], [ 672120.600000, 202172.000000 ], [ 672016.300000, 202199.100000 ], [ 671938.200000, 202186.600000 ], [ 671905.900000, 202242.600000 ], [ 671884.815000, 202239.910000 ], [ 671835.300000, 202362.000000 ], [ 671737.600000, 202355.800000 ], [ 671600.800000, 202227.300000 ], [ 671562.500000, 202178.700000 ], [ 671350.500000, 202271.100000 ], [ 671332.200000, 202269.900000 ], [ 671277.700000, 202213.800000 ], [ 671294.100000, 202187.000000 ], [ 671308.300000, 202135.700000 ], [ 671301.900000, 202086.300000 ], [ 671176.600000, 201920.700000 ], [ 671069.600000, 201797.600000 ], [ 670938.800000, 201696.400000 ], [ 670884.300000, 201672.400000 ], [ 670858.600000, 201654.100000 ], [ 670811.800000, 201602.400000 ], [ 670772.600000, 201544.900000 ], [ 670757.100000, 201531.100000 ], [ 670725.100000, 201526.400000 ], [ 670701.300000, 201509.100000 ], [ 670648.300000, 201437.400000 ], [ 670641.300000, 201389.600000 ], [ 670616.800000, 201353.000000 ], [ 670715.000000, 201273.600000 ], [ 670750.400000, 201228.700000 ], [ 670697.100000, 201185.400000 ] ], [ [ 670604.700000, 201093.900000 ], [ 670643.300000, 201138.100000 ], [ 670697.100000, 201185.400000 ] ], [ [ 670604.700000, 201093.900000 ], [ 670593.600000, 201094.900000 ], [ 670570.300000, 201118.600000 ], [ 670549.800000, 201180.600000 ], [ 670338.800000, 201309.100000 ], [ 670300.800000, 201349.100000 ], [ 670283.000000, 201378.200000 ], [ 670251.900000, 201380.500000 ], [ 670101.800000, 201435.900000 ], [ 669985.600000, 201471.100000 ], [ 669918.800000, 201481.700000 ], [ 669815.000000, 201483.600000 ], [ 669736.900000, 201472.900000 ], [ 669540.800000, 201419.100000 ], [ 669264.200000, 201303.600000 ], [ 669150.300000, 201300.800000 ], [ 668921.200000, 201253.000000 ], [ 668874.400000, 201226.800000 ], [ 668803.200000, 201153.100000 ], [ 668768.000000, 201127.400000 ], [ 668697.100000, 201086.600000 ], [ 668657.100000, 201070.700000 ], [ 668544.900000, 201045.900000 ], [ 668393.600000, 201027.600000 ], [ 668257.900000, 200989.600000 ], [ 668078.000000, 200777.900000 ], [ 667587.900000, 199953.500000 ], [ 667505.200000, 199872.000000 ], [ 667337.700000, 199738.200000 ], [ 667292.400000, 199682.900000 ], [ 667263.200000, 199620.500000 ], [ 667163.400000, 199347.900000 ], [ 667133.900000, 199295.800000 ], [ 666993.200000, 199167.500000 ], [ 666880.800000, 199045.700000 ], [ 666785.600000, 198933.800000 ], [ 666635.700000, 198737.000000 ], [ 666603.200000, 198710.100000 ], [ 666507.200000, 198665.400000 ], [ 666307.600000, 198579.500000 ], [ 666189.100000, 198553.800000 ], [ 666051.200000, 198482.500000 ], [ 665780.000000, 198223.300000 ], [ 665599.100000, 198118.200000 ], [ 665576.000000, 198073.400000 ], [ 665559.100000, 197941.900000 ], [ 665416.300000, 197984.400000 ], [ 665284.700000, 197971.100000 ], [ 665250.500000, 197957.000000 ], [ 665202.500000, 197895.800000 ], [ 665167.300000, 197870.900000 ], [ 665147.000000, 197867.600000 ], [ 665058.300000, 197880.600000 ], [ 664988.900000, 197825.600000 ], [ 664973.500000, 197787.700000 ], [ 664939.900000, 197764.500000 ], [ 664913.200000, 197735.000000 ], [ 664834.900000, 197709.900000 ], [ 664810.600000, 197691.300000 ], [ 664750.200000, 197619.000000 ], [ 664657.000000, 197525.500000 ], [ 664614.100000, 197421.400000 ], [ 664606.900000, 197382.000000 ], [ 664627.400000, 197233.000000 ], [ 664578.700000, 197163.800000 ], [ 664551.600000, 197099.400000 ], [ 664511.400000, 197055.500000 ], [ 664500.700000, 197020.000000 ], [ 664450.400000, 196977.500000 ], [ 664408.400000, 196896.300000 ], [ 664372.700000, 196860.000000 ], [ 664318.500000, 196820.000000 ], [ 664296.800000, 196791.500000 ], [ 664289.000000, 196729.000000 ], [ 664328.000000, 196672.600000 ], [ 664339.300000, 196617.800000 ], [ 664322.000000, 196533.800000 ], [ 664286.500000, 196474.500000 ], [ 664285.500000, 196460.700000 ], [ 664330.000000, 196432.300000 ], [ 664375.700000, 196392.200000 ], [ 664359.000000, 196363.600000 ], [ 664341.500000, 196305.000000 ], [ 664314.400000, 196156.600000 ], [ 664360.400000, 196114.300000 ], [ 664296.300000, 195953.800000 ], [ 664297.600000, 195920.400000 ], [ 664334.500000, 195803.300000 ], [ 664328.500000, 195750.300000 ], [ 664304.000000, 195712.300000 ], [ 664128.800000, 195580.400000 ], [ 663997.200000, 195581.900000 ], [ 663928.100000, 195544.500000 ], [ 663904.600000, 195523.200000 ], [ 663883.400000, 195486.900000 ], [ 663830.500000, 195354.000000 ], [ 663845.300000, 195311.600000 ], [ 663847.100000, 195268.700000 ], [ 663835.200000, 195097.800000 ], [ 663726.100000, 194945.800000 ], [ 663719.700000, 194908.000000 ], [ 663692.900000, 194847.300000 ], [ 663688.000000, 194819.100000 ], [ 663693.800000, 194760.600000 ], [ 663585.681000, 194814.497000 ], [ 663552.800000, 194746.200000 ], [ 663526.200000, 194717.400000 ], [ 663442.100000, 194657.900000 ], [ 663417.200000, 194629.600000 ], [ 663356.500000, 194526.100000 ], [ 663308.000000, 194462.800000 ], [ 663285.500000, 194465.200000 ], [ 663239.500000, 194503.300000 ], [ 663193.800000, 194477.600000 ], [ 663169.000000, 194452.600000 ], [ 663141.000000, 194439.300000 ], [ 663079.800000, 194452.000000 ], [ 663044.200000, 194434.200000 ], [ 662927.300000, 194337.300000 ], [ 662924.600000, 194313.100000 ], [ 662908.900000, 194274.700000 ], [ 662898.300000, 194258.300000 ], [ 662848.800000, 194221.300000 ], [ 662833.600000, 194192.200000 ], [ 662766.700000, 194172.500000 ], [ 662731.500000, 194155.100000 ], [ 662680.800000, 194110.300000 ], [ 662652.100000, 194062.900000 ], [ 662554.800000, 193978.700000 ], [ 662415.500000, 193907.800000 ], [ 662383.100000, 193887.000000 ], [ 662337.300000, 193836.200000 ], [ 662303.300000, 193822.300000 ], [ 662213.200000, 193760.400000 ], [ 662150.300000, 193687.800000 ], [ 662054.350617, 193534.006904 ] ], [ [ 559386.000000, 143029.300000 ], [ 559379.733000, 143043.526000 ], [ 559360.931183, 143054.964848 ] ], [ [ 559386.000000, 143029.300000 ], [ 559399.700000, 143007.700000 ], [ 559372.029000, 143023.301000 ], [ 559360.931183, 143054.964848 ] ], [ [ 758161.600000, 256998.100000 ], [ 758158.400000, 256973.300000 ], [ 758068.900000, 256988.100000 ], [ 758071.800000, 257012.300000 ] ], [ [ 758161.600000, 256998.100000 ], [ 758185.900000, 257149.500000 ], [ 758225.200000, 257074.100000 ], [ 758280.500000, 256932.900000 ], [ 758292.800000, 256924.200000 ], [ 758309.300000, 256923.900000 ], [ 758348.900000, 256958.000000 ], [ 758372.000000, 256881.900000 ], [ 758366.700000, 256860.900000 ], [ 758354.500000, 256845.400000 ], [ 758308.200000, 256817.600000 ], [ 758155.100000, 256779.500000 ], [ 758097.000000, 256802.900000 ], [ 758066.100000, 256742.900000 ], [ 758044.200000, 256635.500000 ], [ 758087.400000, 256598.000000 ], [ 758112.100000, 256561.900000 ], [ 758128.700000, 256475.000000 ], [ 758149.500000, 256424.000000 ], [ 758152.700000, 256316.700000 ], [ 758149.200000, 256282.600000 ], [ 758076.200000, 256106.700000 ], [ 758077.700000, 256078.000000 ], [ 758059.400000, 256072.600000 ], [ 758059.000000, 256021.800000 ], [ 758070.300000, 256007.300000 ], [ 758166.300000, 255981.600000 ], [ 758209.200000, 255956.900000 ], [ 758264.800000, 255908.800000 ], [ 758276.000000, 255887.100000 ], [ 758275.200000, 255870.400000 ], [ 758268.500000, 255860.200000 ], [ 758248.800000, 255853.500000 ], [ 758213.300000, 255876.300000 ], [ 758195.300000, 255871.800000 ], [ 758036.500000, 255777.500000 ], [ 758036.500000, 255764.300000 ], [ 758049.000000, 255756.600000 ], [ 758087.600000, 255767.200000 ], [ 758124.600000, 255765.800000 ], [ 758133.600000, 255750.200000 ], [ 758130.300000, 255704.700000 ], [ 758142.300000, 255662.300000 ], [ 758145.300000, 255597.600000 ], [ 758124.800000, 255506.000000 ], [ 758101.100000, 255450.400000 ], [ 758038.000000, 255373.100000 ], [ 758004.300000, 255270.500000 ], [ 757981.100000, 255280.200000 ], [ 757934.200000, 255273.000000 ], [ 757709.700000, 255093.600000 ], [ 757653.900000, 255059.600000 ], [ 757611.300000, 254990.600000 ], [ 757528.900000, 254894.500000 ], [ 757478.100000, 254880.300000 ], [ 757418.100000, 254872.800000 ], [ 757275.800000, 254825.700000 ], [ 757240.600000, 254797.500000 ], [ 757169.600000, 254721.300000 ], [ 757132.000000, 254699.400000 ], [ 757053.400000, 254719.600000 ], [ 756914.100000, 254732.400000 ], [ 756825.900000, 254711.900000 ], [ 756652.900000, 254705.800000 ], [ 756522.900000, 254733.400000 ], [ 756342.700000, 254748.400000 ], [ 756314.900000, 254746.400000 ], [ 756093.700000, 254691.400000 ], [ 756074.200000, 254696.000000 ], [ 755972.900000, 254759.800000 ], [ 755839.500000, 254603.800000 ], [ 755791.800000, 254477.600000 ], [ 755774.000000, 254458.100000 ], [ 755727.500000, 254426.900000 ], [ 755728.700000, 254392.900000 ], [ 755710.200000, 254374.900000 ], [ 755531.800000, 254344.400000 ], [ 755511.900000, 254334.600000 ], [ 755474.100000, 254334.600000 ], [ 755401.800000, 254319.700000 ], [ 755256.200000, 254323.900000 ], [ 755167.600000, 254313.900000 ], [ 755144.900000, 254307.200000 ], [ 755049.200000, 254241.600000 ], [ 754963.900000, 254155.200000 ], [ 754929.700000, 254103.200000 ], [ 754762.800000, 254088.800000 ], [ 754697.100000, 254052.100000 ], [ 754593.200000, 254065.900000 ], [ 754571.400000, 254062.600000 ], [ 754553.500000, 254017.400000 ], [ 754564.924000, 253982.316000 ], [ 754640.700000, 253885.800000 ], [ 754668.600000, 253878.000000 ], [ 754665.700000, 253861.800000 ], [ 754629.200000, 253843.800000 ], [ 754572.400000, 253796.300000 ], [ 754481.400000, 253739.600000 ], [ 754445.700000, 253699.700000 ], [ 754355.600000, 253656.100000 ], [ 754297.700000, 253693.100000 ], [ 754280.600000, 253693.500000 ], [ 754217.100000, 253674.900000 ], [ 754109.000000, 253677.200000 ], [ 754095.200000, 253673.900000 ], [ 754028.500000, 253624.900000 ], [ 754008.500000, 253588.900000 ], [ 753986.500000, 253571.400000 ], [ 753952.000000, 253576.700000 ], [ 753909.500000, 253571.900000 ], [ 753848.200000, 253586.100000 ], [ 753814.900000, 253584.700000 ], [ 753713.700000, 253562.200000 ], [ 753666.300000, 253570.400000 ], [ 753580.200000, 253563.900000 ], [ 753549.300000, 253557.900000 ], [ 753498.200000, 253523.900000 ], [ 753442.000000, 253514.500000 ], [ 753370.800000, 253490.200000 ], [ 753357.200000, 253491.900000 ], [ 753344.500000, 253510.400000 ], [ 753189.000000, 253493.900000 ], [ 753180.500000, 253485.200000 ], [ 753184.500000, 253468.400000 ], [ 753246.200000, 253388.900000 ], [ 753272.200000, 253334.200000 ], [ 753325.000000, 253269.700000 ], [ 753319.800000, 253223.200000 ], [ 753339.200000, 253180.700000 ], [ 753354.700000, 253157.900000 ], [ 753368.600000, 253149.000000 ], [ 753347.700000, 253097.200000 ], [ 753372.300000, 253065.500000 ], [ 753370.700000, 252999.100000 ], [ 753378.900000, 252995.900000 ], [ 753400.400000, 253019.700000 ], [ 753416.700000, 253019.800000 ], [ 753439.800000, 253016.700000 ], [ 753478.300000, 252990.400000 ], [ 753488.300000, 252914.100000 ], [ 753525.200000, 252836.800000 ], [ 753595.600000, 252829.400000 ], [ 753597.500000, 252815.700000 ], [ 753421.600000, 252793.200000 ], [ 753326.100000, 252749.400000 ], [ 753279.200000, 252694.300000 ], [ 753245.400000, 252669.800000 ], [ 753208.400000, 252629.000000 ], [ 753133.900000, 252527.300000 ], [ 753094.900000, 252487.300000 ], [ 753063.900000, 252486.100000 ], [ 753053.300000, 252494.400000 ], [ 753047.000000, 252518.400000 ], [ 753089.200000, 252697.300000 ], [ 753150.500000, 252783.700000 ], [ 753152.100000, 252852.200000 ], [ 753169.400000, 252918.600000 ], [ 753168.100000, 252936.000000 ], [ 753159.500000, 252951.200000 ], [ 753135.300000, 252961.800000 ], [ 752925.700000, 252957.300000 ], [ 752902.700000, 252947.800000 ], [ 752903.900000, 252932.800000 ], [ 752918.700000, 252922.300000 ], [ 753030.600000, 252861.200000 ], [ 753035.200000, 252829.600000 ], [ 753016.400000, 252781.600000 ], [ 752990.900000, 252763.100000 ], [ 752948.900000, 252710.800000 ], [ 752927.700000, 252718.300000 ], [ 752917.000000, 252746.400000 ], [ 752903.800000, 252759.100000 ], [ 752885.100000, 252646.600000 ], [ 752849.000000, 252525.000000 ], [ 752858.800000, 252467.300000 ], [ 752850.300000, 252373.400000 ], [ 752858.500000, 252265.300000 ], [ 752783.500000, 252115.100000 ], [ 752762.400000, 251986.800000 ], [ 752815.500000, 251783.400000 ], [ 752808.600000, 251736.500000 ], [ 752903.900000, 251679.100000 ], [ 752991.700000, 251670.800000 ], [ 753099.800000, 251635.700000 ], [ 753172.500000, 251670.500000 ], [ 753257.900000, 251653.500000 ], [ 753286.300000, 251639.300000 ], [ 753333.700000, 251580.200000 ], [ 753365.300000, 251559.900000 ], [ 753440.242000, 251537.659000 ], [ 753452.300000, 251527.200000 ], [ 753491.900000, 251460.100000 ], [ 753514.100000, 251435.100000 ], [ 753521.500000, 251406.400000 ], [ 753553.700000, 251369.800000 ], [ 753624.900000, 251318.600000 ], [ 753640.500000, 251311.900000 ], [ 753666.600000, 251312.800000 ], [ 753706.600000, 251240.100000 ], [ 753760.000000, 251181.100000 ], [ 753773.200000, 251172.100000 ], [ 753823.500000, 251177.800000 ], [ 753860.700000, 251148.600000 ], [ 753860.500000, 251141.300000 ], [ 753788.200000, 251116.100000 ], [ 753721.200000, 251047.800000 ], [ 753675.600000, 250917.600000 ], [ 753680.400000, 250775.300000 ], [ 753710.700000, 250703.600000 ], [ 753726.600000, 250631.500000 ], [ 753771.500000, 250616.400000 ], [ 753854.500000, 250602.700000 ], [ 753893.900000, 250604.400000 ], [ 753947.500000, 250541.100000 ], [ 753965.700000, 250531.600000 ], [ 753993.400000, 250531.000000 ], [ 754018.600000, 250517.100000 ], [ 754052.400000, 250509.100000 ], [ 754188.100000, 250434.700000 ], [ 754206.600000, 250431.900000 ], [ 754242.900000, 250441.500000 ], [ 754289.700000, 250428.000000 ], [ 754303.700000, 250417.000000 ], [ 754316.700000, 250372.800000 ], [ 754332.000000, 250372.300000 ], [ 754357.000000, 250388.100000 ], [ 754389.700000, 250395.000000 ], [ 754399.500000, 250381.100000 ], [ 754410.700000, 250267.100000 ], [ 754418.500000, 250258.100000 ], [ 754554.900000, 250241.100000 ], [ 754580.800000, 250221.300000 ], [ 754598.000000, 250216.300000 ], [ 754675.200000, 250236.300000 ], [ 754686.200000, 250234.300000 ], [ 754630.000000, 250180.800000 ], [ 754633.500000, 250125.000000 ], [ 754606.500000, 250081.300000 ], [ 754623.400000, 250007.400000 ], [ 754612.300000, 249887.100000 ], [ 754622.900000, 249852.100000 ], [ 754633.600000, 249841.000000 ], [ 754634.200000, 249822.900000 ], [ 754555.700000, 249722.100000 ], [ 754522.700000, 249645.900000 ], [ 754525.900000, 249620.800000 ], [ 754564.800000, 249552.400000 ], [ 754571.100000, 249527.000000 ], [ 754569.100000, 249487.100000 ], [ 754562.400000, 249452.900000 ], [ 754533.000000, 249397.600000 ], [ 754520.200000, 249323.300000 ], [ 754482.400000, 249270.700000 ], [ 754481.400000, 249256.900000 ], [ 754570.400000, 249218.100000 ], [ 754576.200000, 249178.700000 ], [ 754562.500000, 249130.200000 ], [ 754559.800000, 249094.800000 ], [ 754527.900000, 249002.700000 ], [ 754486.100000, 248955.100000 ], [ 754403.000000, 248876.500000 ], [ 754356.700000, 248843.200000 ], [ 754333.400000, 248834.300000 ], [ 754279.900000, 248830.200000 ], [ 754136.900000, 248755.400000 ], [ 753952.700000, 248682.300000 ], [ 753929.900000, 248679.400000 ], [ 753918.900000, 248684.700000 ], [ 753898.000000, 248714.700000 ], [ 753889.400000, 248715.000000 ], [ 753831.300000, 248691.600000 ], [ 753781.900000, 248683.200000 ], [ 753616.700000, 248504.500000 ], [ 753591.100000, 248454.500000 ], [ 753547.200000, 248424.700000 ], [ 753481.600000, 248353.100000 ], [ 753400.200000, 248304.400000 ], [ 753360.900000, 248272.300000 ], [ 753260.400000, 248167.300000 ], [ 753137.900000, 248133.600000 ], [ 752977.800000, 248056.700000 ], [ 752776.000000, 247975.900000 ], [ 752704.700000, 247987.400000 ], [ 752659.900000, 247972.000000 ], [ 752538.200000, 247764.000000 ], [ 752489.300000, 247727.100000 ], [ 752444.600000, 247704.600000 ], [ 752393.200000, 247661.300000 ], [ 752372.600000, 247679.400000 ], [ 752276.900000, 247685.500000 ], [ 752148.100000, 247673.200000 ], [ 752116.400000, 247658.900000 ], [ 752099.400000, 247640.000000 ], [ 752099.900000, 247574.600000 ], [ 752111.100000, 247528.600000 ], [ 752161.800000, 247456.100000 ], [ 752196.800000, 247434.500000 ], [ 752199.200000, 247421.200000 ], [ 752212.600000, 247421.400000 ], [ 752214.900000, 247415.300000 ], [ 752193.400000, 247370.800000 ], [ 752180.000000, 247318.500000 ], [ 752164.000000, 247127.700000 ], [ 752171.900000, 247095.100000 ], [ 752188.400000, 247072.100000 ], [ 752222.300000, 247073.000000 ], [ 752270.900000, 247023.900000 ], [ 752322.900000, 246950.900000 ], [ 752323.500000, 246939.200000 ], [ 752297.700000, 246900.300000 ], [ 752290.400000, 246877.900000 ], [ 752352.600000, 246748.200000 ], [ 752333.700000, 246679.200000 ], [ 752305.300000, 246615.700000 ], [ 752302.400000, 246571.900000 ], [ 752320.000000, 246483.600000 ], [ 752335.200000, 246324.900000 ], [ 752351.100000, 246267.900000 ], [ 752352.200000, 246220.200000 ], [ 752356.600000, 246205.000000 ], [ 752372.100000, 246187.200000 ], [ 752382.200000, 246146.100000 ], [ 752369.000000, 246112.500000 ], [ 752404.500000, 246041.100000 ], [ 752435.600000, 245957.500000 ], [ 752440.000000, 245905.200000 ], [ 752483.100000, 245770.700000 ], [ 752491.100000, 245698.200000 ], [ 752484.600000, 245659.000000 ], [ 752540.600000, 245473.200000 ], [ 752604.700000, 245362.600000 ], [ 752601.500000, 245338.900000 ], [ 752635.400000, 245287.200000 ], [ 752664.900000, 245268.500000 ], [ 752660.400000, 245256.000000 ], [ 752641.900000, 245242.900000 ], [ 752697.500000, 245223.600000 ], [ 752710.216000, 245212.486000 ], [ 752740.300000, 245214.000000 ], [ 752756.300000, 245205.000000 ], [ 752790.100000, 245156.600000 ], [ 752825.900000, 245131.100000 ], [ 752906.000000, 245118.200000 ], [ 753018.100000, 245032.000000 ], [ 753031.800000, 245010.000000 ], [ 753031.700000, 244990.600000 ], [ 752966.600000, 244956.900000 ], [ 752957.900000, 244942.800000 ], [ 752952.000000, 244894.900000 ], [ 752943.300000, 244884.200000 ], [ 752866.500000, 244849.500000 ], [ 752816.100000, 244812.500000 ], [ 752792.300000, 244802.800000 ], [ 752738.900000, 244801.100000 ], [ 752639.800000, 244830.000000 ], [ 752623.300000, 244828.500000 ], [ 752582.100000, 244780.700000 ], [ 752469.000000, 244711.600000 ], [ 752421.600000, 244654.900000 ], [ 752403.400000, 244610.600000 ], [ 752546.300000, 244583.600000 ], [ 752769.000000, 244587.300000 ], [ 752849.800000, 244570.800000 ], [ 752925.900000, 244532.400000 ], [ 753181.400000, 244340.700000 ], [ 753095.600000, 244276.700000 ], [ 752991.100000, 244233.700000 ], [ 752970.315000, 244233.606000 ], [ 752919.562000, 244214.596000 ], [ 752695.800000, 244158.400000 ], [ 752337.300000, 244084.400000 ], [ 752270.300000, 244061.200000 ], [ 751896.700000, 243886.000000 ], [ 751842.100000, 243836.200000 ], [ 751765.400000, 243705.500000 ], [ 751630.100000, 243682.700000 ], [ 751515.000000, 243645.700000 ], [ 751480.400000, 243632.800000 ], [ 751412.400000, 243583.600000 ], [ 751367.600000, 243571.100000 ], [ 751035.800000, 243615.500000 ], [ 750994.500000, 243626.500000 ], [ 750949.100000, 243651.800000 ], [ 750805.800000, 243698.500000 ], [ 750764.400000, 243703.700000 ], [ 750542.000000, 243702.600000 ], [ 750432.800000, 243725.200000 ], [ 750348.700000, 243735.400000 ], [ 750216.800000, 243801.200000 ], [ 750053.600000, 243823.000000 ], [ 749960.900000, 243844.000000 ], [ 749857.800000, 243903.300000 ], [ 749818.700000, 243917.700000 ], [ 749769.800000, 243899.300000 ], [ 749601.300000, 243874.200000 ], [ 749501.300000, 243929.400000 ], [ 749315.700000, 243972.800000 ], [ 749279.000000, 243997.200000 ], [ 749196.000000, 244085.500000 ], [ 749171.900000, 244102.900000 ], [ 749088.800000, 244123.700000 ], [ 749062.900000, 244093.000000 ], [ 749147.500000, 243941.900000 ], [ 749069.900000, 243896.500000 ], [ 749091.300000, 243837.900000 ], [ 749100.400000, 243752.600000 ], [ 749119.800000, 243700.100000 ], [ 749129.100000, 243675.900000 ], [ 749161.600000, 243628.500000 ], [ 749416.200000, 243440.700000 ], [ 749457.700000, 243399.300000 ], [ 749475.600000, 243129.900000 ], [ 749514.400000, 242948.800000 ], [ 749529.900000, 242901.600000 ], [ 749612.300000, 242748.000000 ], [ 749910.500000, 242593.200000 ], [ 750015.500000, 242552.500000 ], [ 750142.900000, 242513.000000 ], [ 750212.000000, 242472.600000 ], [ 750323.900000, 242470.300000 ], [ 750380.500000, 242456.500000 ], [ 750519.400000, 242317.400000 ], [ 750565.200000, 242280.500000 ], [ 750616.500000, 242204.800000 ], [ 750681.000000, 242125.300000 ], [ 750688.200000, 242011.800000 ], [ 750697.700000, 241978.800000 ], [ 750669.600000, 241902.100000 ], [ 750665.700000, 241842.900000 ], [ 750716.700000, 241787.100000 ], [ 750772.700000, 241813.000000 ], [ 750811.500000, 241799.000000 ], [ 750856.800000, 241792.200000 ], [ 750855.000000, 241778.000000 ], [ 750865.700000, 241764.200000 ], [ 750937.700000, 241720.800000 ], [ 750933.000000, 241668.800000 ], [ 750976.700000, 241593.800000 ], [ 750975.000000, 241575.000000 ], [ 750858.800000, 241504.500000 ], [ 750831.500000, 241495.300000 ], [ 750787.200000, 241498.000000 ], [ 750773.700000, 241492.800000 ], [ 750708.600000, 241439.400000 ], [ 750663.000000, 241388.800000 ], [ 750630.200000, 241259.000000 ], [ 750591.500000, 241217.600000 ], [ 750361.500000, 241234.600000 ], [ 750268.800000, 241235.600000 ], [ 750228.200000, 241226.300000 ], [ 750079.700000, 241155.600000 ], [ 749791.000000, 240972.000000 ], [ 749667.500000, 240847.500000 ], [ 749596.600000, 240811.000000 ], [ 749549.400000, 240770.000000 ], [ 749080.200000, 240570.600000 ], [ 748966.700000, 240513.600000 ], [ 748847.000000, 240434.600000 ], [ 748827.200000, 240424.300000 ], [ 748786.500000, 240416.300000 ], [ 748670.300000, 240327.400000 ], [ 748646.400000, 240298.200000 ], [ 748592.500000, 240266.200000 ], [ 748522.600000, 240204.800000 ], [ 748425.200000, 240143.300000 ], [ 748355.400000, 240061.100000 ], [ 748320.000000, 240032.900000 ], [ 748262.000000, 240038.600000 ], [ 747983.000000, 239970.400000 ], [ 747945.500000, 239958.100000 ], [ 747732.400000, 239850.500000 ], [ 747644.900000, 239845.100000 ], [ 747629.400000, 239831.800000 ], [ 747605.600000, 239788.800000 ], [ 747573.600000, 239770.800000 ], [ 747554.900000, 239730.100000 ], [ 747544.400000, 239721.800000 ], [ 747497.600000, 239740.800000 ], [ 747472.600000, 239740.300000 ], [ 747322.300000, 239675.100000 ], [ 747311.000000, 239664.400000 ], [ 747297.900000, 239623.100000 ], [ 747269.200000, 239583.500000 ], [ 747260.800000, 239529.400000 ], [ 747251.400000, 239518.800000 ], [ 747236.400000, 239516.100000 ], [ 747195.600000, 239524.100000 ], [ 747167.500000, 239547.300000 ], [ 747109.900000, 239571.000000 ], [ 747047.900000, 239552.100000 ], [ 746879.800000, 239476.300000 ], [ 746766.800000, 239438.500000 ], [ 746670.600000, 239412.800000 ], [ 746628.300000, 239405.500000 ], [ 746553.100000, 239404.000000 ], [ 746485.500000, 239385.600000 ], [ 746332.100000, 239305.400000 ], [ 746215.900000, 239211.200000 ], [ 746124.600000, 239186.600000 ], [ 746042.900000, 239108.900000 ], [ 745985.100000, 239067.600000 ], [ 745890.300000, 239038.800000 ], [ 745784.100000, 239015.800000 ], [ 745652.000000, 238942.300000 ], [ 745445.600000, 238865.800000 ], [ 745391.100000, 238839.800000 ], [ 745339.600000, 238794.800000 ], [ 745203.300000, 238635.900000 ], [ 745020.900000, 238509.100000 ], [ 744982.500000, 238474.800000 ], [ 744954.000000, 238430.300000 ], [ 744879.300000, 238359.400000 ], [ 744834.700000, 238307.400000 ], [ 744763.200000, 238175.200000 ], [ 744727.000000, 238125.900000 ], [ 744717.100000, 238120.100000 ], [ 744670.100000, 238116.300000 ], [ 744644.800000, 238092.000000 ], [ 744630.300000, 238086.200000 ], [ 744575.600000, 238091.600000 ], [ 744524.200000, 238046.900000 ], [ 744482.600000, 238029.300000 ], [ 744450.000000, 238003.500000 ], [ 744435.800000, 237975.000000 ], [ 744431.400000, 237876.000000 ], [ 744405.600000, 237752.200000 ], [ 744396.100000, 237743.600000 ], [ 744335.100000, 237735.900000 ], [ 744299.500000, 237712.400000 ], [ 744224.500000, 237619.300000 ], [ 744173.700000, 237532.700000 ], [ 744187.300000, 237421.000000 ], [ 744199.000000, 237375.900000 ], [ 744211.100000, 237360.200000 ], [ 744288.500000, 237320.800000 ], [ 744302.000000, 237303.200000 ], [ 744305.300000, 237242.200000 ], [ 744256.300000, 237204.000000 ], [ 744222.100000, 237142.000000 ], [ 744190.500000, 237105.500000 ], [ 744132.000000, 237070.700000 ], [ 744156.600000, 237022.000000 ], [ 744249.000000, 236978.800000 ], [ 744166.600000, 236934.700000 ], [ 744106.000000, 236929.600000 ], [ 744068.700000, 236915.600000 ], [ 743930.500000, 236936.400000 ], [ 743830.700000, 236993.300000 ], [ 743811.000000, 236995.100000 ], [ 743750.500000, 236913.200000 ], [ 743755.400000, 236854.500000 ], [ 743744.700000, 236789.700000 ], [ 743639.700000, 236759.600000 ], [ 743625.200000, 236763.100000 ], [ 743562.400000, 236810.000000 ], [ 743527.700000, 236844.000000 ], [ 743460.600000, 236882.500000 ], [ 743442.500000, 236901.300000 ], [ 743421.000000, 236972.300000 ], [ 743391.700000, 237004.700000 ], [ 743326.500000, 237025.700000 ], [ 743290.500000, 237059.500000 ], [ 743237.200000, 237054.400000 ], [ 743231.700000, 237042.400000 ], [ 743237.000000, 237011.600000 ], [ 743202.400000, 236964.300000 ], [ 743126.600000, 236909.400000 ], [ 743114.100000, 236884.700000 ], [ 743073.900000, 236842.700000 ], [ 743087.400000, 236806.900000 ], [ 743073.600000, 236761.900000 ], [ 743082.600000, 236673.100000 ], [ 743080.400000, 236614.400000 ], [ 743064.600000, 236547.900000 ], [ 743068.900000, 236501.100000 ], [ 743063.900000, 236453.600000 ], [ 743052.400000, 236424.600000 ], [ 743040.000000, 236417.100000 ], [ 743050.200000, 236369.000000 ], [ 743083.200000, 236293.800000 ], [ 743105.500000, 236216.400000 ], [ 743144.500000, 236147.700000 ], [ 743149.500000, 236116.900000 ], [ 743142.500000, 236092.700000 ], [ 743057.000000, 235990.400000 ], [ 743012.000000, 235909.700000 ], [ 742900.200000, 235833.400000 ], [ 742839.500000, 235773.700000 ], [ 742802.500000, 235706.500000 ], [ 742779.000000, 235682.300000 ], [ 742752.200000, 235667.700000 ], [ 742622.600000, 235634.200000 ], [ 742574.100000, 235615.700000 ], [ 742500.000000, 235566.800000 ], [ 742460.900000, 235529.800000 ], [ 742431.400000, 235515.300000 ], [ 742413.900000, 235513.100000 ], [ 742398.600000, 235524.600000 ], [ 742382.300000, 235585.900000 ], [ 742366.400000, 235583.300000 ], [ 742255.700000, 235621.300000 ], [ 741904.600000, 235525.600000 ], [ 741794.300000, 235439.100000 ], [ 741777.200000, 235434.900000 ], [ 741763.800000, 235446.000000 ], [ 741739.700000, 235503.900000 ], [ 741734.900000, 235552.900000 ], [ 741724.100000, 235562.300000 ], [ 741553.000000, 235537.600000 ], [ 741531.700000, 235541.800000 ], [ 741486.500000, 235565.800000 ], [ 741459.400000, 235552.000000 ], [ 741371.800000, 235533.900000 ], [ 741359.600000, 235524.600000 ], [ 741261.200000, 235373.500000 ], [ 741236.800000, 235348.100000 ], [ 741264.300000, 235297.900000 ], [ 741293.800000, 235263.200000 ], [ 741325.300000, 235250.500000 ], [ 741418.700000, 235237.000000 ], [ 741458.500000, 235190.300000 ], [ 741567.900000, 235123.700000 ], [ 741580.200000, 235099.400000 ], [ 741581.600000, 235069.200000 ], [ 741555.000000, 234988.000000 ], [ 741561.400000, 234911.900000 ], [ 741549.600000, 234900.100000 ], [ 741519.600000, 234889.600000 ], [ 741514.400000, 234873.600000 ], [ 741523.100000, 234861.100000 ], [ 741608.200000, 234823.500000 ], [ 741621.200000, 234809.200000 ], [ 741619.500000, 234780.300000 ], [ 741601.600000, 234738.400000 ], [ 741577.800000, 234703.200000 ], [ 741561.100000, 234689.800000 ], [ 741541.900000, 234684.800000 ], [ 741417.800000, 234696.000000 ], [ 741372.700000, 234692.500000 ], [ 741351.100000, 234681.900000 ], [ 741314.300000, 234616.600000 ], [ 741218.700000, 234494.500000 ], [ 741098.000000, 234301.100000 ], [ 741102.700000, 234282.000000 ], [ 741114.300000, 234270.200000 ], [ 741182.200000, 234256.300000 ], [ 741196.500000, 234234.800000 ], [ 741189.800000, 234210.500000 ], [ 741135.200000, 234179.600000 ], [ 741118.200000, 234161.200000 ], [ 741139.300000, 234125.000000 ], [ 741153.000000, 234085.200000 ], [ 741141.900000, 233875.900000 ], [ 741096.600000, 233825.600000 ], [ 741022.300000, 233821.200000 ], [ 740984.800000, 233805.000000 ], [ 740949.600000, 233779.500000 ], [ 740829.000000, 233795.100000 ], [ 740787.400000, 233788.700000 ], [ 740756.500000, 233776.400000 ], [ 740681.000000, 233693.900000 ], [ 740709.600000, 233662.400000 ], [ 740782.200000, 233615.900000 ], [ 740796.100000, 233598.400000 ], [ 740798.000000, 233559.900000 ], [ 740792.100000, 233547.300000 ], [ 740750.100000, 233500.400000 ], [ 740648.200000, 233481.700000 ], [ 740618.300000, 233482.700000 ], [ 740516.100000, 233514.300000 ], [ 740443.500000, 233529.200000 ], [ 740433.800000, 233527.900000 ], [ 740416.300000, 233478.900000 ], [ 740397.100000, 233461.000000 ], [ 740318.400000, 233460.600000 ], [ 740261.700000, 233473.900000 ], [ 740168.400000, 233480.800000 ], [ 740061.600000, 233546.300000 ], [ 739965.300000, 233624.000000 ], [ 739907.000000, 233697.100000 ], [ 739897.800000, 233749.900000 ], [ 739912.700000, 233792.800000 ], [ 739953.100000, 233831.800000 ], [ 740039.000000, 233882.000000 ], [ 740049.700000, 233944.100000 ], [ 740076.200000, 233964.000000 ], [ 740084.900000, 233979.100000 ], [ 740089.000000, 234011.500000 ], [ 740075.600000, 234067.800000 ], [ 740074.600000, 234130.600000 ], [ 740063.200000, 234141.100000 ], [ 740055.100000, 234135.600000 ], [ 740056.800000, 234090.900000 ], [ 740049.600000, 234051.800000 ], [ 740041.300000, 234030.500000 ], [ 740027.600000, 234019.800000 ], [ 739932.200000, 234027.900000 ], [ 739837.600000, 234054.400000 ], [ 739816.300000, 234052.000000 ], [ 739772.000000, 234017.900000 ], [ 739730.200000, 234054.900000 ], [ 739642.700000, 234096.600000 ], [ 739615.600000, 234099.000000 ], [ 739548.900000, 234050.600000 ], [ 739528.800000, 234044.200000 ], [ 739419.800000, 234071.400000 ], [ 739395.000000, 234072.200000 ], [ 739264.600000, 234001.100000 ], [ 739202.800000, 233951.400000 ], [ 739180.400000, 233943.100000 ], [ 739110.100000, 233952.600000 ], [ 739102.700000, 233943.700000 ], [ 739099.700000, 233908.700000 ], [ 739089.300000, 233898.300000 ], [ 738991.200000, 233915.600000 ], [ 738804.300000, 233856.500000 ], [ 738738.728000, 233847.954000 ], [ 738747.500000, 233811.200000 ], [ 738751.800000, 233726.200000 ], [ 738788.000000, 233683.900000 ], [ 738815.100000, 233664.500000 ], [ 738856.800000, 233649.200000 ], [ 738863.300000, 233635.700000 ], [ 738824.500000, 233586.500000 ], [ 738799.300000, 233576.000000 ], [ 738676.600000, 233482.700000 ], [ 738663.800000, 233477.100000 ], [ 738561.300000, 233471.800000 ], [ 738553.800000, 233460.200000 ], [ 738559.800000, 233451.700000 ], [ 738607.000000, 233453.900000 ], [ 738700.000000, 233421.900000 ], [ 738718.800000, 233418.800000 ], [ 738752.800000, 233425.900000 ], [ 738759.800000, 233417.900000 ], [ 738736.300000, 233381.500000 ], [ 738650.500000, 233356.900000 ], [ 738642.300000, 233338.700000 ], [ 738653.000000, 233325.700000 ], [ 738695.900000, 233304.900000 ], [ 738712.500000, 233282.900000 ], [ 738713.300000, 233268.200000 ], [ 738700.300000, 233229.100000 ], [ 738683.600000, 233199.300000 ], [ 738650.900000, 233165.000000 ], [ 738638.400000, 233132.600000 ], [ 738645.000000, 233098.100000 ], [ 738680.300000, 233004.400000 ], [ 738680.800000, 232960.600000 ], [ 738665.800000, 232949.900000 ], [ 738631.000000, 232943.400000 ], [ 738606.000000, 232925.600000 ], [ 738556.000000, 232857.900000 ], [ 738498.200000, 232821.400000 ], [ 738475.100000, 232762.700000 ], [ 738401.000000, 232752.100000 ], [ 738358.800000, 232592.700000 ], [ 738323.200000, 232558.400000 ], [ 738290.300000, 232547.700000 ], [ 738269.600000, 232477.600000 ], [ 738222.000000, 232362.400000 ], [ 738219.900000, 232316.000000 ], [ 738196.000000, 232274.700000 ], [ 738194.000000, 232240.200000 ], [ 738179.000000, 232204.600000 ], [ 738172.300000, 232162.500000 ], [ 738155.800000, 232149.800000 ], [ 738152.500000, 232124.700000 ], [ 738196.500000, 232106.500000 ], [ 738194.000000, 232089.000000 ], [ 738181.300000, 232091.000000 ], [ 738170.800000, 232081.200000 ], [ 738146.000000, 232080.500000 ], [ 738139.000000, 232049.500000 ], [ 738113.500000, 232001.800000 ], [ 738114.253000, 231945.788000 ], [ 738156.200000, 231952.900000 ], [ 738218.300000, 231936.300000 ], [ 738240.100000, 231942.600000 ], [ 738268.000000, 231969.000000 ], [ 738316.000000, 231971.900000 ], [ 738349.500000, 231962.300000 ], [ 738321.800000, 231918.300000 ], [ 738315.700000, 231897.800000 ], [ 738321.699000, 231887.996000 ], [ 738295.600000, 231860.600000 ], [ 738286.200000, 231799.100000 ], [ 738248.200000, 231711.700000 ], [ 738198.700000, 231679.700000 ], [ 738146.800000, 231667.500000 ], [ 738117.900000, 231650.900000 ], [ 738093.400000, 231608.100000 ], [ 738093.900000, 231588.700000 ], [ 738077.600000, 231577.900000 ], [ 738026.011000, 231576.127000 ], [ 738007.900000, 231554.900000 ], [ 737955.900000, 231518.900000 ], [ 737862.300000, 231511.500000 ], [ 737772.500000, 231480.900000 ], [ 737686.000000, 231499.200000 ], [ 737574.600000, 231491.900000 ], [ 737548.300000, 231510.600000 ], [ 737497.400000, 231511.200000 ], [ 737436.500000, 231490.500000 ], [ 737389.100000, 231486.600000 ], [ 737342.800000, 231445.700000 ], [ 737316.400000, 231445.200000 ], [ 737273.400000, 231425.400000 ], [ 737195.700000, 231429.100000 ], [ 737089.200000, 231368.300000 ], [ 737044.900000, 231351.100000 ], [ 737028.600000, 231362.200000 ], [ 736976.000000, 231338.100000 ], [ 736915.000000, 231340.800000 ], [ 736865.400000, 231299.600000 ], [ 736797.800000, 231315.300000 ], [ 736766.600000, 231365.600000 ], [ 736738.100000, 231397.100000 ], [ 736736.900000, 231441.400000 ], [ 736690.600000, 231455.200000 ], [ 736683.900000, 231454.700000 ], [ 736664.000000, 231432.200000 ], [ 736634.300000, 231425.500000 ], [ 736575.600000, 231370.800000 ], [ 736514.000000, 231368.100000 ], [ 736503.200000, 231360.200000 ], [ 736487.100000, 231330.600000 ], [ 736503.100000, 231309.900000 ], [ 736494.700000, 231290.700000 ], [ 736447.100000, 231282.400000 ], [ 736437.600000, 231360.100000 ], [ 736418.100000, 231363.100000 ], [ 736402.700000, 231347.000000 ], [ 736377.900000, 231310.700000 ], [ 736370.000000, 231249.600000 ], [ 736352.200000, 231201.100000 ], [ 736355.400000, 231167.900000 ], [ 736401.300000, 231075.200000 ], [ 736430.000000, 231034.000000 ], [ 736434.800000, 231012.200000 ], [ 736433.100000, 230999.000000 ], [ 736401.600000, 230957.600000 ], [ 736405.100000, 230944.100000 ], [ 736421.600000, 230926.100000 ], [ 736423.100000, 230858.600000 ], [ 736399.600000, 230807.800000 ], [ 736387.200000, 230792.500000 ], [ 736369.100000, 230784.100000 ], [ 736345.300000, 230786.700000 ], [ 736335.000000, 230798.000000 ], [ 736301.800000, 230868.200000 ], [ 736285.300000, 230863.900000 ], [ 736253.600000, 230822.100000 ], [ 736224.800000, 230833.600000 ], [ 736213.300000, 230830.100000 ], [ 736206.600000, 230805.300000 ], [ 736216.900000, 230793.500000 ], [ 736220.000000, 230773.400000 ], [ 736254.700000, 230698.700000 ], [ 736208.700000, 230670.900000 ], [ 736211.800000, 230622.100000 ], [ 736203.600000, 230525.700000 ], [ 736207.800000, 230512.300000 ], [ 736232.800000, 230488.400000 ], [ 736236.000000, 230473.900000 ], [ 736215.300000, 230413.500000 ], [ 736143.600000, 230412.000000 ], [ 736131.600000, 230402.000000 ], [ 736134.300000, 230375.000000 ], [ 736166.600000, 230308.000000 ], [ 736175.900000, 230256.200000 ], [ 736166.900000, 230228.200000 ], [ 736110.700000, 230151.300000 ], [ 736101.100000, 230017.000000 ], [ 736105.600000, 230000.000000 ], [ 736119.200000, 229987.500000 ], [ 736169.200000, 229988.000000 ], [ 736198.900000, 229973.000000 ], [ 736219.700000, 229951.500000 ], [ 736219.200000, 229939.500000 ], [ 736208.900000, 229936.700000 ], [ 736189.900000, 229952.000000 ], [ 736175.200000, 229955.500000 ], [ 736079.900000, 229940.000000 ], [ 736035.700000, 229972.200000 ], [ 735995.700000, 229973.500000 ], [ 735974.700000, 229982.000000 ], [ 735954.900000, 230000.000000 ], [ 735945.900000, 230024.300000 ], [ 735928.600000, 230040.800000 ], [ 735925.800000, 230085.600000 ], [ 735908.500000, 230120.900000 ], [ 735879.500000, 230161.500000 ], [ 735820.600000, 230206.500000 ], [ 735808.900000, 230227.800000 ], [ 735797.700000, 230235.500000 ], [ 735783.900000, 230219.700000 ], [ 735770.100000, 230164.300000 ], [ 735789.100000, 230103.000000 ], [ 735778.600000, 230077.000000 ], [ 735777.400000, 230051.500000 ], [ 735792.900000, 230027.500000 ], [ 735798.100000, 230000.000000 ], [ 735806.500000, 229993.200000 ], [ 735799.500000, 229983.200000 ], [ 735736.100000, 230009.800000 ], [ 735686.000000, 230045.900000 ], [ 735626.600000, 230071.500000 ], [ 735614.300000, 230118.800000 ], [ 735600.500000, 230131.500000 ], [ 735604.700000, 230105.300000 ], [ 735590.000000, 230068.300000 ], [ 735596.000000, 230045.000000 ], [ 735645.000000, 230012.300000 ], [ 735670.700000, 229946.500000 ], [ 735733.400000, 229881.000000 ], [ 735738.400000, 229864.000000 ], [ 735741.800000, 229803.500000 ], [ 735761.100000, 229740.200000 ], [ 735776.800000, 229647.100000 ], [ 735741.700000, 229575.900000 ], [ 735757.400000, 229522.400000 ], [ 735764.700000, 229463.500000 ], [ 735752.800000, 229381.100000 ], [ 735779.500000, 229331.400000 ], [ 735781.300000, 229300.000000 ], [ 735798.100000, 229259.700000 ], [ 735795.800000, 229241.300000 ], [ 735780.300000, 229239.500000 ], [ 735751.400000, 229274.400000 ], [ 735684.300000, 229315.200000 ], [ 735678.000000, 229322.900000 ], [ 735671.800000, 229363.600000 ], [ 735663.500000, 229371.100000 ], [ 735652.700000, 229370.400000 ], [ 735645.800000, 229358.000000 ], [ 735640.200000, 229277.400000 ], [ 735657.500000, 229211.500000 ], [ 735655.000000, 229198.300000 ], [ 735638.500000, 229190.800000 ], [ 735556.200000, 229237.800000 ], [ 735472.400000, 229396.900000 ], [ 735453.300000, 229414.700000 ], [ 735426.700000, 229412.600000 ], [ 735504.600000, 229140.000000 ], [ 735501.100000, 229069.900000 ], [ 735506.100000, 229048.100000 ], [ 735574.900000, 228946.500000 ], [ 735724.100000, 228539.200000 ], [ 735740.400000, 228510.500000 ], [ 735777.200000, 228474.000000 ], [ 735933.700000, 228399.000000 ], [ 735989.500000, 228363.900000 ], [ 736001.100000, 228348.300000 ], [ 736008.400000, 228243.400000 ], [ 736020.400000, 228173.800000 ], [ 736032.400000, 228146.000000 ], [ 736044.800000, 228135.400000 ], [ 736075.600000, 228132.000000 ], [ 736136.800000, 228159.500000 ], [ 736194.100000, 228168.300000 ], [ 736271.000000, 228164.600000 ], [ 736348.700000, 228146.900000 ], [ 736395.600000, 228114.200000 ], [ 736413.900000, 228072.400000 ], [ 736422.100000, 228009.500000 ], [ 736435.200000, 227969.300000 ], [ 736461.100000, 227928.900000 ], [ 736500.200000, 227897.800000 ], [ 736999.900000, 227770.000000 ], [ 737198.800000, 227683.900000 ], [ 737288.800000, 227665.800000 ], [ 737301.900000, 227571.100000 ], [ 737288.900000, 227513.100000 ], [ 737337.900000, 227419.100000 ], [ 737299.700000, 227310.300000 ], [ 737274.900000, 227283.100000 ], [ 737106.400000, 227147.700000 ], [ 737025.100000, 227095.800000 ], [ 736976.000000, 227028.100000 ], [ 736878.800000, 226959.400000 ], [ 736814.700000, 226862.000000 ], [ 736803.200000, 226852.800000 ], [ 736757.900000, 226841.500000 ], [ 736728.900000, 226794.300000 ], [ 736663.700000, 226785.300000 ], [ 736637.900000, 226767.800000 ], [ 736584.900000, 226695.200000 ], [ 736579.700000, 226659.500000 ], [ 736582.800000, 226548.100000 ], [ 736570.000000, 226507.000000 ], [ 736555.700000, 226489.700000 ], [ 736474.400000, 226421.500000 ], [ 736408.500000, 226391.400000 ], [ 736358.900000, 226317.700000 ], [ 736314.700000, 226300.000000 ], [ 736293.700000, 226250.900000 ], [ 736281.900000, 226237.700000 ], [ 736178.900000, 226219.000000 ], [ 736161.200000, 226221.900000 ], [ 736138.400000, 226237.400000 ], [ 736123.900000, 226235.200000 ], [ 736123.200000, 226223.900000 ], [ 736139.600000, 226193.100000 ], [ 736130.100000, 226161.000000 ], [ 736104.400000, 226128.200000 ], [ 736100.000000, 226098.400000 ], [ 736062.600000, 226039.800000 ], [ 736028.400000, 226010.700000 ], [ 736016.200000, 225962.900000 ], [ 736003.700000, 225954.700000 ], [ 735994.700000, 225962.700000 ], [ 735998.200000, 226002.300000 ], [ 735969.100000, 226122.700000 ], [ 735964.900000, 226252.000000 ], [ 735957.900000, 226259.200000 ], [ 735942.900000, 226254.500000 ], [ 735924.400000, 226218.700000 ], [ 735859.700000, 226127.500000 ], [ 735811.900000, 226030.700000 ], [ 735700.900000, 225922.800000 ], [ 735642.400000, 225880.200000 ], [ 735521.500000, 225700.100000 ], [ 735488.300000, 225672.400000 ], [ 735459.500000, 225663.700000 ], [ 735398.900000, 225659.600000 ], [ 735396.900000, 225674.100000 ], [ 735409.900000, 225717.600000 ], [ 735405.700000, 225751.200000 ], [ 735365.400000, 225830.700000 ], [ 735410.900000, 225895.400000 ], [ 735422.400000, 225924.200000 ], [ 735434.700000, 225994.400000 ], [ 735481.900000, 226068.700000 ], [ 735482.400000, 226082.400000 ], [ 735464.200000, 226090.900000 ], [ 735377.700000, 226088.200000 ], [ 735341.400000, 226071.000000 ], [ 735325.000000, 226069.600000 ], [ 735303.300000, 226084.800000 ], [ 735291.200000, 226106.900000 ], [ 735277.400000, 226109.700000 ], [ 735257.900000, 226063.700000 ], [ 735242.100000, 226043.500000 ], [ 735173.100000, 225999.800000 ], [ 735136.200000, 225956.200000 ], [ 735083.200000, 225923.200000 ], [ 734986.100000, 225834.100000 ], [ 734904.800000, 225800.400000 ], [ 734744.100000, 225751.400000 ], [ 734695.600000, 225716.700000 ], [ 734632.900000, 225685.600000 ], [ 734625.900000, 225687.600000 ], [ 734624.900000, 225694.900000 ], [ 734670.100000, 225746.600000 ], [ 734682.600000, 225794.100000 ], [ 734716.600000, 225850.000000 ], [ 734743.400000, 225914.200000 ], [ 734740.100000, 225921.400000 ], [ 734694.500000, 225901.800000 ], [ 734570.400000, 225797.900000 ], [ 734530.900000, 225786.200000 ], [ 734447.900000, 225777.400000 ], [ 734420.100000, 225780.700000 ], [ 734364.900000, 225806.700000 ], [ 734270.400000, 225817.200000 ], [ 734215.100000, 225835.400000 ], [ 734177.400000, 225837.700000 ], [ 734134.600000, 225863.400000 ], [ 734106.100000, 225868.400000 ], [ 734078.400000, 225908.700000 ], [ 734039.400000, 225919.400000 ], [ 734025.400000, 225931.200000 ], [ 734008.900000, 225976.700000 ], [ 733995.600000, 225985.600000 ], [ 733940.100000, 225978.700000 ], [ 733893.900000, 225989.200000 ], [ 733859.900000, 225958.400000 ], [ 733809.900000, 225947.900000 ], [ 733793.900000, 225938.900000 ], [ 733693.700000, 225933.600000 ], [ 733667.400000, 225919.600000 ], [ 733640.000000, 225892.300000 ], [ 733576.900000, 225861.200000 ], [ 733570.600000, 225849.400000 ], [ 733567.900000, 225798.300000 ], [ 733557.600000, 225785.100000 ], [ 733523.500000, 225766.300000 ], [ 733456.400000, 225749.100000 ], [ 733278.600000, 225654.600000 ], [ 733226.200000, 225644.800000 ], [ 733201.900000, 225623.000000 ], [ 733165.000000, 225561.600000 ], [ 733145.600000, 225540.900000 ], [ 732987.400000, 225413.200000 ], [ 732901.300000, 225362.500000 ], [ 732769.100000, 225203.600000 ], [ 732754.000000, 225161.100000 ], [ 732756.000000, 225115.800000 ], [ 732748.200000, 225085.600000 ], [ 732715.600000, 225040.600000 ], [ 732691.900000, 224973.900000 ], [ 732604.100000, 224870.100000 ], [ 732596.600000, 224824.100000 ], [ 732569.100000, 224789.800000 ], [ 732534.100000, 224712.500000 ], [ 732417.400000, 224663.300000 ], [ 732312.100000, 224645.500000 ], [ 732282.100000, 224652.800000 ], [ 732257.400000, 224672.200000 ], [ 732207.400000, 224739.300000 ], [ 732192.600000, 224739.000000 ], [ 732141.600000, 224709.800000 ], [ 732072.500000, 224654.900000 ], [ 732041.200000, 224619.200000 ], [ 731967.600000, 224609.500000 ], [ 731936.400000, 224621.000000 ], [ 731907.600000, 224606.800000 ], [ 731876.600000, 224605.800000 ], [ 731852.600000, 224595.300000 ], [ 731811.100000, 224595.800000 ], [ 731777.400000, 224583.800000 ], [ 731732.300000, 224548.500000 ], [ 731710.300000, 224492.400000 ], [ 731710.909000, 224469.911000 ], [ 731681.900000, 224413.200000 ], [ 731660.500000, 224338.300000 ], [ 731629.600000, 224274.600000 ], [ 731591.400000, 224235.200000 ], [ 731540.800000, 224211.300000 ], [ 731501.200000, 224174.800000 ], [ 731461.200000, 224096.300000 ], [ 731429.400000, 224063.700000 ], [ 731363.100000, 224015.000000 ], [ 731310.200000, 223994.100000 ], [ 731286.000000, 223968.800000 ], [ 731251.300000, 223954.400000 ], [ 731184.200000, 223891.800000 ], [ 731094.400000, 223834.700000 ], [ 731034.400000, 223808.800000 ], [ 730988.900000, 223775.600000 ], [ 730904.100000, 223685.600000 ], [ 730813.300000, 223665.400000 ], [ 730678.100000, 223660.200000 ], [ 730597.800000, 223638.400000 ], [ 730567.600000, 223640.300000 ], [ 730469.100000, 223690.400000 ], [ 730425.300000, 223743.700000 ], [ 730408.100000, 223748.200000 ], [ 730345.051000, 223736.737000 ], [ 730318.000000, 223751.100000 ], [ 730281.700000, 223783.900000 ], [ 730182.100000, 223790.900000 ], [ 730151.600000, 223813.700000 ], [ 730125.300000, 223816.800000 ], [ 730117.600000, 223803.700000 ], [ 730123.300000, 223787.400000 ], [ 730177.600000, 223723.400000 ], [ 730188.800000, 223689.900000 ], [ 730123.600000, 223599.400000 ], [ 730114.700000, 223575.300000 ], [ 730109.800000, 223457.100000 ], [ 730059.800000, 223399.900000 ], [ 730054.700000, 223375.700000 ], [ 730066.300000, 223311.900000 ], [ 730156.800000, 223236.900000 ], [ 730154.100000, 223222.600000 ], [ 730124.300000, 223190.400000 ], [ 730101.800000, 223185.400000 ], [ 730057.600000, 223215.900000 ], [ 729987.400000, 223209.600000 ], [ 729938.200000, 223219.600000 ], [ 729802.700000, 223284.900000 ], [ 729756.500000, 223298.700000 ], [ 729744.100000, 223309.400000 ], [ 729717.500000, 223357.300000 ], [ 729692.700000, 223376.400000 ], [ 729651.300000, 223395.600000 ], [ 729626.500000, 223453.400000 ], [ 729618.500000, 223458.700000 ], [ 729539.300000, 223465.500000 ], [ 729257.400000, 223436.900000 ], [ 729152.600000, 223420.000000 ], [ 729161.700000, 223408.600000 ], [ 729193.800000, 223407.800000 ], [ 729201.700000, 223399.700000 ], [ 729203.000000, 223385.300000 ], [ 729198.400000, 223376.000000 ], [ 729142.600000, 223341.400000 ], [ 729108.300000, 223299.900000 ], [ 729085.200000, 223284.100000 ], [ 729083.500000, 223272.000000 ], [ 729109.900000, 223228.800000 ], [ 729116.500000, 223171.000000 ], [ 729100.000000, 223129.500000 ], [ 729068.000000, 223090.000000 ], [ 729083.000000, 223080.300000 ], [ 729085.700000, 223069.300000 ], [ 729031.000000, 223045.500000 ], [ 729034.200000, 223028.700000 ], [ 729077.200000, 222996.000000 ], [ 729052.200000, 222979.000000 ], [ 729046.200000, 222967.200000 ], [ 729023.100000, 222873.100000 ], [ 728953.700000, 222834.200000 ], [ 728910.219000, 222903.593000 ], [ 728879.234000, 222895.222000 ], [ 728877.600000, 222845.700000 ], [ 728847.600000, 222779.400000 ], [ 728785.100000, 222705.700000 ], [ 728718.800000, 222613.200000 ], [ 728692.600000, 222594.400000 ], [ 728647.600000, 222590.700000 ], [ 728605.100000, 222571.900000 ], [ 728557.300000, 222568.000000 ], [ 728507.700000, 222586.400000 ], [ 728496.000000, 222573.800000 ], [ 728456.300000, 222482.300000 ], [ 728326.200000, 222446.100000 ], [ 728254.400000, 222395.100000 ], [ 728217.700000, 222387.600000 ], [ 728001.200000, 222425.800000 ], [ 727936.900000, 222403.100000 ], [ 727916.600000, 222404.100000 ], [ 727820.600000, 222466.300000 ], [ 727782.100000, 222503.100000 ], [ 727731.400000, 222513.100000 ], [ 727676.400000, 222559.500000 ], [ 727632.100000, 222575.300000 ], [ 727602.300000, 222561.700000 ], [ 727551.700000, 222511.200000 ], [ 727508.300000, 222478.200000 ], [ 727449.700000, 222448.700000 ], [ 727330.700000, 222467.100000 ], [ 727179.400000, 222434.400000 ], [ 726954.700000, 222422.200000 ], [ 726845.900000, 222379.200000 ], [ 726771.700000, 222313.200000 ], [ 726735.800000, 222217.400000 ], [ 726701.900000, 222158.700000 ], [ 726584.100000, 222002.700000 ], [ 726572.600000, 221989.900000 ], [ 726547.100000, 221977.200000 ], [ 726393.100000, 221917.900000 ], [ 726151.100000, 221911.700000 ], [ 726094.600000, 221902.200000 ], [ 726030.400000, 221880.400000 ], [ 725970.600000, 221854.400000 ], [ 725925.100000, 221825.600000 ], [ 725896.500000, 221789.800000 ], [ 725871.100000, 221742.400000 ], [ 725836.400000, 221712.900000 ], [ 725613.800000, 221617.000000 ], [ 725557.600000, 221584.900000 ], [ 725515.600000, 221545.300000 ], [ 725223.100000, 221517.000000 ], [ 724981.600000, 221477.000000 ], [ 724996.300000, 221366.400000 ], [ 724266.300000, 221252.600000 ], [ 723749.100000, 221186.200000 ], [ 723675.300000, 221193.500000 ], [ 723616.900000, 221210.600000 ], [ 723560.600000, 221242.500000 ], [ 723472.800000, 221321.500000 ], [ 723427.789000, 221373.572000 ], [ 723410.456000, 221420.683000 ], [ 723358.456000, 221502.017000 ], [ 723357.117000, 221514.957000 ], [ 723167.400000, 221684.300000 ] ], [ [ 758071.800000, 257012.300000 ], [ 758161.600000, 256998.100000 ] ], [ [ 614593.100000, 178362.100000 ], [ 614607.700000, 178357.400000 ], [ 614607.400000, 178249.100000 ], [ 614636.100000, 178209.900000 ] ], [ [ 614593.100000, 178362.100000 ], [ 614590.700000, 178375.000000 ], [ 614600.400000, 178389.700000 ], [ 614479.500000, 178445.000000 ], [ 614399.500000, 178504.800000 ], [ 614329.900000, 178631.300000 ], [ 614292.815000, 178714.190000 ], [ 614295.367000, 178725.672000 ], [ 614344.800000, 178746.900000 ], [ 614438.772000, 178820.128000 ], [ 614376.600000, 178879.700000 ], [ 614203.500000, 178989.900000 ], [ 614154.000000, 179029.600000 ], [ 614110.000000, 179053.400000 ], [ 614075.690000, 179043.193000 ], [ 614062.300000, 179048.700000 ], [ 613922.141000, 179203.794000 ], [ 613907.776000, 179204.479000 ], [ 613908.560000, 179218.912000 ], [ 613771.500000, 179380.700000 ], [ 613757.300000, 179440.900000 ], [ 613596.600000, 179934.200000 ], [ 613563.300000, 180006.700000 ], [ 613482.303000, 180305.658000 ], [ 613568.297000, 180317.534000 ], [ 613571.900000, 180327.700000 ], [ 613581.100000, 180331.500000 ], [ 613593.434000, 180321.831000 ], [ 614026.400000, 180304.700000 ], [ 614144.700000, 180324.900000 ], [ 614238.400000, 180331.600000 ], [ 614348.100000, 180370.800000 ], [ 614428.600000, 180392.100000 ], [ 614464.100000, 180393.400000 ], [ 614510.900000, 180376.900000 ], [ 614537.600000, 180378.600000 ], [ 614588.700000, 180412.200000 ], [ 614639.800000, 180463.600000 ], [ 614884.100000, 180664.600000 ], [ 614922.200000, 180665.500000 ], [ 614976.200000, 180743.200000 ], [ 615006.597000, 180815.900000 ], [ 615047.000000, 180782.600000 ], [ 615129.700000, 180740.800000 ], [ 615167.400000, 180701.900000 ], [ 615243.900000, 180770.300000 ], [ 615329.400000, 180830.200000 ], [ 615484.500000, 180861.000000 ], [ 615596.900000, 180917.900000 ], [ 615618.500000, 180932.200000 ], [ 615697.000000, 181032.600000 ], [ 615735.700000, 181066.400000 ], [ 615765.200000, 181060.400000 ], [ 615842.700000, 180989.900000 ], [ 615874.700000, 180971.200000 ], [ 615910.400000, 180962.600000 ], [ 615974.000000, 180962.400000 ], [ 616038.000000, 180952.600000 ], [ 616206.500000, 180988.600000 ], [ 616331.700000, 181054.000000 ], [ 616402.600000, 181054.700000 ], [ 616460.900000, 181040.800000 ], [ 616509.900000, 181013.900000 ], [ 616577.100000, 181007.700000 ], [ 616635.200000, 181041.600000 ], [ 616676.600000, 181081.700000 ], [ 616755.600000, 181114.600000 ], [ 616920.700000, 181132.700000 ], [ 616967.700000, 181121.900000 ], [ 617145.100000, 181109.200000 ], [ 617189.700000, 181124.000000 ], [ 617375.500000, 181214.600000 ], [ 617395.000000, 181217.100000 ], [ 617445.900000, 181208.500000 ], [ 617558.100000, 181242.200000 ], [ 617684.800000, 181249.100000 ], [ 617727.600000, 181242.700000 ], [ 617746.200000, 181233.100000 ], [ 617803.100000, 181176.700000 ], [ 617849.600000, 181144.200000 ], [ 617877.400000, 181133.300000 ], [ 617953.200000, 181120.200000 ], [ 618001.500000, 181090.600000 ], [ 618022.800000, 181066.300000 ], [ 618034.900000, 181064.200000 ], [ 618064.200000, 181095.000000 ], [ 618071.600000, 181120.300000 ], [ 618071.100000, 181160.400000 ], [ 618096.200000, 181203.500000 ], [ 618195.234000, 181296.681000 ], [ 618215.857000, 181302.388000 ], [ 618266.500000, 181297.400000 ], [ 618296.700000, 181284.400000 ], [ 618402.100000, 181181.600000 ], [ 618419.700000, 181170.800000 ], [ 618476.800000, 181162.900000 ], [ 618510.500000, 181174.700000 ], [ 618557.000000, 181209.600000 ], [ 618613.800000, 181212.200000 ], [ 618692.200000, 181193.500000 ], [ 618735.100000, 181189.600000 ], [ 618772.100000, 181196.600000 ], [ 618881.800000, 181245.900000 ], [ 618902.000000, 181249.400000 ], [ 618916.000000, 181233.400000 ], [ 618895.900000, 181198.500000 ], [ 618903.800000, 181113.000000 ], [ 618913.500000, 181062.200000 ], [ 618925.300000, 181051.200000 ], [ 618937.700000, 181049.700000 ], [ 619067.800000, 181101.800000 ], [ 619151.000000, 181119.400000 ], [ 619315.200000, 181184.800000 ], [ 619395.800000, 181184.800000 ], [ 619415.370000, 181174.005000 ], [ 619427.437000, 181136.769000 ], [ 619427.437000, 181115.491000 ], [ 619410.310000, 181060.999000 ], [ 619420.000000, 181037.900000 ], [ 619715.000000, 181027.900000 ], [ 619742.500000, 181017.300000 ], [ 619817.700000, 180956.400000 ], [ 619841.400000, 180892.800000 ], [ 620139.700000, 180961.800000 ], [ 620227.600000, 180970.700000 ], [ 620298.700000, 180949.600000 ], [ 620316.100000, 180933.200000 ], [ 620335.200000, 180897.400000 ], [ 620358.000000, 180876.900000 ], [ 620399.000000, 180874.100000 ], [ 620541.700000, 180906.700000 ], [ 620619.100000, 180958.200000 ], [ 620681.300000, 180976.500000 ], [ 620755.500000, 180987.600000 ], [ 620875.400000, 181031.300000 ], [ 621007.100000, 181051.800000 ], [ 621090.800000, 181031.400000 ], [ 621175.900000, 181021.100000 ], [ 621214.700000, 181019.300000 ], [ 621291.000000, 181031.900000 ], [ 621312.200000, 181028.500000 ], [ 621347.000000, 181008.400000 ], [ 621444.700000, 180984.400000 ], [ 621455.700000, 180967.100000 ], [ 621448.500000, 180899.000000 ], [ 621460.200000, 180883.400000 ], [ 621497.700000, 180866.300000 ], [ 621508.300000, 180855.300000 ], [ 621509.600000, 180841.200000 ], [ 621498.700000, 180818.200000 ], [ 621421.300000, 180770.300000 ], [ 621398.300000, 180738.100000 ], [ 621404.500000, 180710.600000 ], [ 621429.300000, 180663.600000 ], [ 621443.000000, 180543.600000 ], [ 621425.400000, 180528.100000 ], [ 621385.600000, 180453.100000 ], [ 621367.100000, 180433.600000 ], [ 621220.800000, 180333.600000 ], [ 621227.400000, 180264.500000 ], [ 621245.000000, 180243.200000 ], [ 621310.500000, 180217.300000 ], [ 621349.100000, 180176.200000 ], [ 621372.400000, 180163.200000 ], [ 621479.600000, 180151.200000 ], [ 621514.000000, 180152.100000 ], [ 621560.600000, 180162.900000 ], [ 621658.900000, 180134.700000 ], [ 621764.700000, 180159.900000 ], [ 621780.900000, 180155.500000 ], [ 621805.600000, 180124.400000 ], [ 621820.300000, 180090.700000 ], [ 621819.600000, 180077.700000 ], [ 621762.100000, 180025.900000 ], [ 621754.400000, 180005.700000 ], [ 621763.100000, 179979.400000 ], [ 621795.800000, 179944.400000 ], [ 621802.200000, 179918.600000 ], [ 621790.900000, 179902.200000 ], [ 621727.500000, 179863.300000 ], [ 621711.100000, 179845.900000 ], [ 621719.900000, 179827.400000 ], [ 621762.900000, 179802.400000 ], [ 621780.600000, 179785.200000 ], [ 621840.100000, 179760.400000 ], [ 621864.900000, 179736.300000 ], [ 621871.700000, 179697.900000 ], [ 621854.100000, 179656.400000 ], [ 621878.100000, 179620.000000 ], [ 621892.800000, 179578.300000 ], [ 621872.000000, 179492.200000 ], [ 621877.400000, 179465.600000 ], [ 621956.300000, 179338.000000 ], [ 622013.400000, 179184.400000 ], [ 622015.400000, 179112.000000 ], [ 622034.600000, 179066.700000 ], [ 622034.100000, 179033.200000 ], [ 622004.400000, 178992.900000 ], [ 622004.100000, 178979.900000 ], [ 622016.100000, 178959.100000 ], [ 622052.500000, 178938.600000 ], [ 622064.900000, 178914.100000 ], [ 622088.900000, 178888.400000 ], [ 622136.100000, 178868.900000 ], [ 622185.900000, 178810.100000 ], [ 622232.500000, 178626.800000 ], [ 622235.500000, 178593.700000 ], [ 622225.900000, 178469.600000 ], [ 622240.400000, 178449.900000 ], [ 622313.100000, 178402.600000 ], [ 622352.100000, 178367.900000 ], [ 622450.700000, 178254.900000 ], [ 622508.600000, 178157.300000 ], [ 622525.600000, 178100.500000 ], [ 622537.300000, 178030.300000 ], [ 622587.400000, 177948.100000 ], [ 622584.600000, 177858.600000 ], [ 622567.600000, 177772.800000 ], [ 622592.000000, 177660.200000 ], [ 622588.700000, 177585.600000 ], [ 622597.800000, 177436.900000 ], [ 622597.100000, 177305.600000 ], [ 622594.200000, 177216.200000 ], [ 622574.200000, 177078.800000 ], [ 622514.200000, 176936.700000 ], [ 622404.200000, 176820.400000 ], [ 622377.200000, 176776.600000 ], [ 622336.100000, 176734.800000 ], [ 622287.800000, 176665.300000 ], [ 622208.667000, 176586.039000 ], [ 622199.900000, 176550.100000 ], [ 622196.545000, 176525.251000 ], [ 622228.947000, 176492.447000 ], [ 622237.285000, 176468.690000 ], [ 622216.900000, 176374.300000 ], [ 622215.700000, 176341.100000 ], [ 622230.200000, 176219.100000 ], [ 622214.603000, 176195.058000 ], [ 622214.603000, 176172.971000 ], [ 622219.100000, 176157.400000 ], [ 622243.500000, 176129.000000 ], [ 622294.630000, 176102.929000 ], [ 622305.718000, 176073.238000 ], [ 622259.082000, 175930.872000 ], [ 622276.711000, 175888.727000 ], [ 622250.900000, 175879.900000 ], [ 622197.700000, 175890.200000 ], [ 622184.156000, 175885.209000 ], [ 622176.117000, 175871.382000 ], [ 622164.400000, 175777.900000 ], [ 622122.800000, 175666.600000 ], [ 622122.000000, 175649.800000 ], [ 622127.000000, 175638.800000 ], [ 622175.700000, 175600.300000 ], [ 622171.100000, 175581.900000 ], [ 622164.300000, 175575.300000 ], [ 622087.200000, 175562.000000 ], [ 621968.900000, 175434.900000 ], [ 621919.800000, 175409.900000 ], [ 621906.600000, 175392.000000 ], [ 621886.900000, 175339.100000 ], [ 621880.400000, 175188.300000 ], [ 621901.900000, 174910.600000 ], [ 621896.400000, 174860.700000 ], [ 621913.700000, 174794.700000 ], [ 621929.900000, 174666.300000 ], [ 621968.700000, 174565.100000 ], [ 622015.900000, 174485.300000 ], [ 621953.700000, 174370.300000 ], [ 621992.200000, 174357.100000 ], [ 622035.200000, 174356.800000 ], [ 622086.800000, 174272.100000 ], [ 622102.500000, 174263.400000 ], [ 622165.800000, 174186.400000 ], [ 622189.000000, 174169.000000 ], [ 622186.200000, 174153.800000 ], [ 622209.000000, 174159.500000 ], [ 622216.000000, 174155.500000 ], [ 622217.300000, 174139.200000 ], [ 622232.500000, 174128.500000 ], [ 622221.000000, 174104.300000 ], [ 622235.300000, 174045.300000 ], [ 622267.700000, 174013.800000 ], [ 622321.400000, 173993.300000 ], [ 622337.500000, 173973.800000 ], [ 622336.000000, 173953.900000 ], [ 622353.100000, 173915.000000 ], [ 622413.200000, 173902.800000 ], [ 622451.900000, 173875.700000 ], [ 622505.100000, 173863.400000 ], [ 622522.800000, 173854.200000 ], [ 622579.600000, 173786.400000 ], [ 622595.600000, 173775.400000 ], [ 622640.200000, 173754.400000 ], [ 622709.700000, 173733.600000 ], [ 622755.600000, 173682.000000 ], [ 622749.000000, 173639.800000 ], [ 622765.100000, 173592.600000 ], [ 622808.200000, 173568.600000 ], [ 622821.200000, 173549.800000 ], [ 622813.700000, 173537.100000 ], [ 622841.700000, 173509.500000 ], [ 622858.300000, 173482.900000 ], [ 622929.400000, 173429.400000 ], [ 622942.900000, 173377.200000 ], [ 622973.900000, 173347.200000 ], [ 622994.600000, 173305.400000 ], [ 623079.900000, 173260.400000 ], [ 623137.600000, 173240.800000 ], [ 623150.900000, 173229.900000 ], [ 623151.400000, 173209.600000 ], [ 623124.600000, 173163.600000 ], [ 623126.200000, 173150.200000 ], [ 623134.600000, 173142.900000 ], [ 623166.200000, 173136.500000 ], [ 623202.800000, 173140.600000 ], [ 623214.900000, 173135.700000 ], [ 623229.400000, 173116.900000 ], [ 623233.300000, 173082.400000 ], [ 623251.500000, 173042.300000 ], [ 623224.600000, 172922.200000 ], [ 623291.800000, 172863.700000 ], [ 623305.000000, 172828.000000 ], [ 623305.900000, 172742.900000 ], [ 623317.400000, 172727.900000 ], [ 623346.000000, 172719.500000 ], [ 623401.100000, 172718.500000 ], [ 623454.900000, 172730.600000 ], [ 623511.700000, 172777.800000 ], [ 623588.900000, 172809.800000 ], [ 623674.000000, 172858.700000 ], [ 623697.700000, 172890.800000 ], [ 623731.800000, 172910.600000 ], [ 623758.200000, 172936.200000 ], [ 623810.800000, 172961.700000 ], [ 623849.900000, 172996.100000 ], [ 623889.100000, 173013.100000 ], [ 623953.500000, 173083.800000 ], [ 624006.200000, 173118.400000 ], [ 624056.500000, 173166.200000 ], [ 624096.400000, 173179.900000 ], [ 624131.400000, 173203.800000 ], [ 624164.400000, 173267.500000 ], [ 624219.700000, 173301.700000 ], [ 624295.900000, 173380.100000 ], [ 624315.600000, 173392.100000 ], [ 624354.400000, 173397.900000 ], [ 624393.000000, 173375.300000 ], [ 624415.100000, 173387.800000 ], [ 624433.200000, 173418.000000 ], [ 624463.700000, 173441.100000 ], [ 624510.300000, 173419.100000 ], [ 624543.300000, 173427.200000 ], [ 624588.600000, 173487.400000 ], [ 624612.600000, 173540.000000 ], [ 624629.100000, 173561.800000 ], [ 624648.100000, 173579.300000 ], [ 624694.700000, 173605.000000 ], [ 624711.400000, 173639.100000 ], [ 624745.200000, 173674.700000 ], [ 624762.000000, 173682.100000 ], [ 624789.400000, 173674.700000 ], [ 624815.700000, 173643.300000 ], [ 624821.100000, 173618.900000 ], [ 624728.300000, 173467.300000 ], [ 624691.400000, 173376.100000 ], [ 624637.600000, 173283.600000 ], [ 624603.000000, 173177.700000 ], [ 624549.900000, 173107.200000 ], [ 624534.500000, 173076.800000 ], [ 624497.100000, 172962.100000 ], [ 624419.200000, 172812.600000 ], [ 624416.600000, 172796.200000 ], [ 624426.200000, 172745.700000 ], [ 624421.700000, 172721.900000 ], [ 624391.400000, 172690.400000 ], [ 624381.100000, 172669.400000 ], [ 624336.600000, 172639.900000 ], [ 624338.400000, 172627.400000 ], [ 624373.400000, 172596.500000 ], [ 624367.600000, 172472.700000 ], [ 624353.400000, 172440.900000 ], [ 624348.400000, 172410.900000 ], [ 624318.900000, 172394.700000 ], [ 624268.900000, 172320.700000 ], [ 624228.100000, 172298.900000 ], [ 624201.400000, 172236.700000 ], [ 624176.300000, 172225.000000 ], [ 624157.100000, 172205.200000 ], [ 624082.900000, 172011.900000 ], [ 624071.900000, 171931.700000 ], [ 624106.400000, 171890.700000 ], [ 623960.000000, 171593.600000 ], [ 623959.500000, 171574.600000 ], [ 624018.200000, 171493.000000 ], [ 624188.900000, 171406.100000 ], [ 624230.700000, 171365.300000 ], [ 624289.700000, 171333.100000 ], [ 624339.400000, 171286.800000 ], [ 624377.200000, 171261.800000 ], [ 624432.200000, 171245.200000 ], [ 624520.300000, 171240.100000 ], [ 624650.500000, 171199.500000 ], [ 624700.600000, 171193.900000 ], [ 624778.900000, 171204.600000 ], [ 624852.900000, 171199.700000 ], [ 624969.400000, 171216.300000 ], [ 625034.200000, 171206.100000 ], [ 625102.400000, 171211.800000 ], [ 625160.400000, 171225.200000 ], [ 625219.300000, 171221.200000 ], [ 625262.500000, 171241.900000 ], [ 625282.900000, 171244.800000 ], [ 625532.500000, 171235.600000 ], [ 625737.200000, 171257.500000 ], [ 625687.500000, 171276.000000 ], [ 625628.800000, 171284.300000 ], [ 625576.700000, 171307.200000 ], [ 625410.600000, 171355.400000 ], [ 625366.900000, 171379.900000 ], [ 625294.700000, 171383.200000 ], [ 625201.500000, 171367.500000 ], [ 625132.700000, 171363.500000 ], [ 625113.200000, 171373.700000 ], [ 624880.000000, 171433.400000 ], [ 624794.500000, 171444.000000 ], [ 624732.900000, 171463.600000 ], [ 624620.200000, 171505.900000 ], [ 624475.100000, 171581.400000 ], [ 624397.500000, 171640.300000 ], [ 624363.300000, 171684.600000 ], [ 624273.700000, 171757.100000 ], [ 624278.000000, 171763.600000 ], [ 624289.000000, 171762.300000 ], [ 624320.500000, 171739.300000 ], [ 624368.200000, 171728.600000 ], [ 624535.400000, 171662.500000 ], [ 624587.700000, 171647.500000 ], [ 624643.900000, 171640.500000 ], [ 624725.900000, 171643.800000 ], [ 624806.100000, 171662.400000 ], [ 624992.000000, 171672.200000 ], [ 625081.500000, 171751.800000 ], [ 625151.200000, 171759.600000 ], [ 625246.400000, 171752.700000 ], [ 625312.000000, 171763.800000 ], [ 625368.700000, 171732.000000 ], [ 625422.200000, 171717.500000 ], [ 625521.100000, 171726.500000 ], [ 625621.900000, 171714.500000 ], [ 625669.500000, 171733.800000 ], [ 625716.900000, 171793.800000 ], [ 625773.200000, 171839.300000 ], [ 625784.700000, 171830.000000 ], [ 625795.700000, 171791.800000 ], [ 625907.800000, 171733.100000 ], [ 626134.700000, 171703.300000 ], [ 626227.700000, 171699.300000 ], [ 626300.800000, 171708.000000 ], [ 626385.100000, 171733.200000 ], [ 626435.200000, 171757.100000 ], [ 626445.800000, 171769.300000 ], [ 626475.600000, 171813.600000 ], [ 626485.200000, 171850.300000 ], [ 626522.900000, 171878.900000 ], [ 626546.100000, 171906.100000 ], [ 626561.400000, 171931.700000 ], [ 626571.000000, 171979.800000 ], [ 626599.100000, 172015.200000 ], [ 626610.500000, 172040.800000 ], [ 626619.100000, 172051.200000 ], [ 626680.900000, 172082.800000 ], [ 626724.900000, 172150.100000 ], [ 626779.600000, 172192.000000 ], [ 626828.000000, 172204.800000 ], [ 626864.200000, 172228.300000 ], [ 626964.000000, 172272.300000 ], [ 626975.000000, 172284.100000 ], [ 626990.400000, 172319.500000 ], [ 626986.307000, 172375.018000 ], [ 627004.300000, 172443.100000 ], [ 627003.000000, 172480.100000 ], [ 627013.700000, 172494.100000 ], [ 627066.000000, 172504.100000 ], [ 627094.700000, 172527.600000 ], [ 627134.800000, 172519.400000 ], [ 627231.500000, 172553.800000 ], [ 627296.100000, 172563.900000 ], [ 627353.500000, 172546.400000 ], [ 627414.000000, 172548.400000 ], [ 627438.300000, 172555.000000 ], [ 627574.700000, 172556.200000 ], [ 627602.600000, 172565.200000 ], [ 627632.600000, 172584.900000 ], [ 627640.500000, 172599.700000 ], [ 627641.600000, 172654.600000 ], [ 627655.700000, 172665.000000 ], [ 627734.000000, 172679.600000 ], [ 627755.300000, 172690.400000 ], [ 627772.500000, 172710.200000 ], [ 627787.000000, 172708.300000 ], [ 627822.200000, 172683.100000 ], [ 627846.800000, 172694.800000 ], [ 627880.400000, 172722.900000 ], [ 627957.400000, 172755.200000 ], [ 628148.100000, 172907.100000 ], [ 628213.400000, 172975.600000 ], [ 628270.000000, 173010.600000 ], [ 628376.700000, 173060.400000 ], [ 628439.611000, 173113.483000 ], [ 628493.115000, 173196.223000 ], [ 628542.200000, 173255.500000 ], [ 628567.900000, 173320.400000 ], [ 628611.500000, 173399.900000 ], [ 628623.200000, 173409.300000 ], [ 628636.500000, 173405.600000 ], [ 628647.700000, 173333.900000 ], [ 628676.900000, 173263.000000 ], [ 628679.500000, 173243.000000 ], [ 628632.900000, 172988.400000 ], [ 628632.700000, 172924.400000 ], [ 628638.900000, 172896.300000 ], [ 628635.100000, 172807.100000 ], [ 628614.700000, 172725.100000 ], [ 628590.200000, 172664.600000 ], [ 628591.900000, 172653.900000 ], [ 628604.000000, 172653.300000 ], [ 628647.900000, 172619.600000 ], [ 628692.900000, 172596.300000 ], [ 628719.100000, 172589.900000 ], [ 628810.700000, 172606.600000 ], [ 628831.600000, 172630.500000 ], [ 628845.500000, 172634.100000 ], [ 628887.600000, 172630.700000 ], [ 628903.300000, 172617.900000 ], [ 628914.000000, 172595.500000 ], [ 628920.200000, 172518.100000 ], [ 628941.400000, 172497.900000 ], [ 628946.700000, 172500.100000 ], [ 628944.000000, 172521.600000 ], [ 628951.000000, 172533.800000 ], [ 628983.500000, 172539.800000 ], [ 629015.000000, 172579.100000 ], [ 629052.500000, 172601.800000 ], [ 629068.700000, 172626.300000 ], [ 629074.300000, 172664.300000 ], [ 629118.300000, 172698.200000 ], [ 629133.500000, 172717.600000 ], [ 629129.900000, 172790.900000 ], [ 629302.900000, 172794.500000 ], [ 629367.700000, 172817.800000 ], [ 629432.500000, 172803.400000 ], [ 629530.200000, 172847.600000 ], [ 629579.700000, 172886.200000 ], [ 629603.000000, 172924.900000 ], [ 629676.000000, 172993.300000 ], [ 629677.000000, 173040.300000 ], [ 629689.000000, 173066.100000 ], [ 629727.600000, 173098.700000 ], [ 629782.800000, 173124.100000 ], [ 629810.000000, 173144.300000 ], [ 629877.200000, 173211.100000 ], [ 629902.600000, 173240.500000 ], [ 629972.700000, 173367.500000 ], [ 629995.208000, 173396.672000 ], [ 630008.500000, 173400.200000 ], [ 630077.345000, 173450.934000 ], [ 630153.500000, 173526.100000 ], [ 630171.800000, 173533.100000 ], [ 630201.700000, 173529.700000 ], [ 630248.500000, 173565.100000 ], [ 630295.000000, 173625.000000 ], [ 630302.700000, 173642.900000 ], [ 630298.700000, 173676.900000 ], [ 630371.100000, 173744.200000 ], [ 630406.500000, 173788.500000 ], [ 630427.100000, 173850.100000 ], [ 630422.500000, 173907.600000 ], [ 630432.400000, 173965.200000 ], [ 630494.700000, 174065.100000 ], [ 630479.300000, 174143.800000 ], [ 630480.700000, 174196.400000 ], [ 630404.400000, 174251.100000 ], [ 630367.000000, 174371.600000 ], [ 630362.000000, 174461.600000 ], [ 630338.900000, 174500.700000 ], [ 630287.200000, 174549.900000 ], [ 630312.500000, 174580.900000 ], [ 630330.000000, 174579.400000 ], [ 630359.700000, 174551.700000 ], [ 630405.700000, 174540.900000 ], [ 630420.000000, 174526.900000 ], [ 630515.200000, 174408.100000 ], [ 630572.400000, 174299.600000 ], [ 630661.900000, 174283.400000 ], [ 630685.700000, 174268.400000 ], [ 630716.300000, 174259.300000 ], [ 630759.500000, 174231.600000 ], [ 630796.100000, 174218.300000 ], [ 630829.600000, 174311.800000 ], [ 630867.100000, 174360.200000 ], [ 630900.000000, 174427.400000 ], [ 630927.928000, 174453.614000 ], [ 630922.200000, 174542.200000 ], [ 630905.300000, 174573.600000 ], [ 630904.000000, 174651.400000 ], [ 630915.200000, 174707.000000 ], [ 630946.100000, 174782.700000 ], [ 630957.600000, 174827.600000 ], [ 630966.500000, 174836.400000 ], [ 631062.400000, 174830.900000 ], [ 631112.100000, 174858.400000 ], [ 631174.900000, 174878.200000 ], [ 631211.600000, 174908.000000 ], [ 631235.800000, 174949.400000 ], [ 631257.500000, 174964.000000 ], [ 631332.600000, 174981.000000 ], [ 631344.500000, 174988.600000 ], [ 631377.300000, 175031.500000 ], [ 631446.293000, 175084.320000 ], [ 631462.600000, 175151.700000 ], [ 631517.800000, 175140.300000 ], [ 631551.089000, 175118.612000 ], [ 631587.500000, 175132.200000 ], [ 631609.400000, 175132.700000 ], [ 631617.500000, 175128.200000 ], [ 631607.700000, 175091.700000 ], [ 631609.700000, 175074.400000 ], [ 631659.500000, 175047.800000 ], [ 631674.000000, 175051.300000 ], [ 631715.700000, 175123.100000 ], [ 631734.200000, 175122.400000 ], [ 631763.000000, 175109.700000 ], [ 631873.200000, 175143.100000 ], [ 631896.900000, 175141.500000 ], [ 631901.400000, 175131.800000 ], [ 631945.400000, 175120.900000 ], [ 631991.400000, 175096.300000 ], [ 632060.700000, 175088.500000 ], [ 632104.400000, 175093.500000 ], [ 632146.900000, 175128.000000 ], [ 632156.100000, 175116.500000 ], [ 632135.900000, 175065.500000 ], [ 632152.100000, 175054.000000 ], [ 632194.600000, 175078.500000 ], [ 632272.700000, 175140.700000 ], [ 632432.900000, 175218.300000 ], [ 632444.100000, 175234.000000 ], [ 632454.600000, 175271.000000 ], [ 632463.600000, 175272.800000 ], [ 632470.600000, 175269.000000 ], [ 632464.400000, 175230.700000 ], [ 632482.400000, 175177.000000 ], [ 632468.400000, 175131.800000 ], [ 632478.400000, 175126.000000 ], [ 632497.000000, 175141.800000 ], [ 632516.300000, 175181.300000 ], [ 632527.400000, 175190.800000 ], [ 632542.100000, 175201.500000 ], [ 632558.400000, 175203.800000 ], [ 632573.100000, 175201.500000 ], [ 632583.300000, 175190.500000 ], [ 632679.000000, 175276.100000 ], [ 632703.800000, 175308.300000 ], [ 632741.500000, 175374.100000 ], [ 632728.500000, 175398.100000 ], [ 632723.000000, 175437.200000 ], [ 632694.200000, 175466.600000 ], [ 632682.200000, 175499.400000 ], [ 632679.200000, 175531.600000 ], [ 632713.200000, 175593.500000 ], [ 632775.200000, 175616.600000 ], [ 632810.200000, 175639.100000 ], [ 632883.200000, 175755.400000 ], [ 632882.500000, 175768.600000 ], [ 632906.500000, 175778.900000 ], [ 632943.000000, 175786.400000 ], [ 632953.500000, 175777.400000 ], [ 632951.700000, 175765.200000 ], [ 632924.700000, 175739.200000 ], [ 632917.400000, 175722.300000 ], [ 632912.700000, 175656.200000 ], [ 632897.700000, 175625.900000 ], [ 632902.000000, 175597.900000 ], [ 632957.000000, 175548.900000 ], [ 632975.700000, 175478.800000 ], [ 632986.200000, 175459.700000 ], [ 633036.400000, 175400.100000 ], [ 633092.500000, 175312.400000 ], [ 633127.000000, 175290.700000 ], [ 633164.500000, 175231.900000 ], [ 633203.500000, 175235.200000 ], [ 633249.000000, 175211.400000 ], [ 633268.900000, 175192.500000 ], [ 633283.400000, 175159.700000 ], [ 633303.200000, 175063.200000 ], [ 633316.000000, 175050.200000 ], [ 633344.500000, 175044.900000 ], [ 633375.500000, 175061.500000 ], [ 633500.300000, 175154.300000 ], [ 633570.800000, 175174.200000 ], [ 633644.000000, 175213.700000 ], [ 633656.500000, 175218.200000 ], [ 633672.200000, 175212.900000 ], [ 633682.500000, 175186.400000 ], [ 633702.500000, 175176.400000 ], [ 633730.700000, 175199.700000 ], [ 633765.500000, 175210.800000 ], [ 633774.700000, 175224.400000 ], [ 633776.200000, 175247.900000 ], [ 633757.500000, 175284.300000 ], [ 633760.500000, 175300.800000 ], [ 633799.800000, 175316.300000 ], [ 633832.900000, 175357.600000 ], [ 633948.300000, 175379.200000 ], [ 633964.300000, 175389.500000 ], [ 633983.100000, 175417.600000 ], [ 634046.100000, 175445.600000 ], [ 634051.900000, 175470.100000 ], [ 634025.800000, 175546.900000 ], [ 634033.500000, 175571.200000 ], [ 634062.300000, 175602.800000 ], [ 634106.100000, 175625.500000 ], [ 634193.400000, 175691.100000 ], [ 634272.000000, 175687.700000 ], [ 634282.000000, 175692.200000 ], [ 634299.200000, 175721.200000 ], [ 634312.200000, 175722.700000 ], [ 634325.700000, 175698.900000 ], [ 634329.200000, 175648.200000 ], [ 634345.700000, 175639.500000 ], [ 634366.900000, 175664.200000 ], [ 634381.200000, 175706.800000 ], [ 634407.200000, 175727.700000 ], [ 634422.500000, 175779.700000 ], [ 634431.200000, 175781.900000 ], [ 634466.600000, 175764.000000 ], [ 634487.100000, 175767.600000 ], [ 634529.900000, 175804.900000 ], [ 634602.700000, 175787.000000 ], [ 634609.000000, 175795.300000 ], [ 634600.900000, 175808.600000 ], [ 634568.000000, 175836.700000 ], [ 634572.700000, 175849.400000 ], [ 634671.000000, 175846.200000 ], [ 634806.300000, 175859.000000 ], [ 634837.200000, 175838.100000 ], [ 634852.700000, 175838.200000 ], [ 634861.200000, 175854.400000 ], [ 634860.100000, 175920.700000 ], [ 634870.400000, 175956.400000 ], [ 634910.200000, 175996.900000 ], [ 634928.300000, 176059.900000 ], [ 634963.400000, 176106.300000 ], [ 634991.000000, 176108.900000 ], [ 635031.200000, 176090.400000 ], [ 635085.400000, 176097.200000 ], [ 635118.400000, 176085.700000 ], [ 635133.700000, 176089.400000 ], [ 635132.000000, 176104.400000 ], [ 635108.900000, 176118.600000 ], [ 635102.200000, 176167.900000 ], [ 635090.000000, 176185.200000 ], [ 635095.000000, 176240.700000 ], [ 635088.700000, 176271.400000 ], [ 635103.500000, 176274.200000 ], [ 635131.000000, 176254.700000 ], [ 635150.500000, 176252.200000 ], [ 635190.400000, 176276.400000 ], [ 635293.500000, 176314.700000 ], [ 635319.000000, 176307.900000 ], [ 635333.700000, 176315.400000 ], [ 635333.500000, 176349.400000 ], [ 635371.500000, 176383.200000 ], [ 635450.300000, 176495.200000 ], [ 635454.300000, 176515.100000 ], [ 635441.600000, 176565.100000 ], [ 635441.600000, 176599.200000 ], [ 635448.800000, 176624.800000 ], [ 635482.200000, 176652.400000 ], [ 635507.800000, 176691.300000 ], [ 635593.900000, 176770.200000 ], [ 635622.600000, 176819.500000 ], [ 635647.500000, 176917.800000 ], [ 635670.300000, 176948.000000 ], [ 635674.800000, 176967.000000 ], [ 635668.700000, 177025.400000 ], [ 635654.200000, 177057.400000 ], [ 635671.700000, 177149.300000 ], [ 635688.200000, 177154.700000 ], [ 635715.200000, 177130.700000 ], [ 635752.000000, 177120.700000 ], [ 635774.200000, 177102.100000 ], [ 635787.400000, 177079.900000 ], [ 635805.000000, 177076.400000 ], [ 635829.600000, 177103.500000 ], [ 635839.600000, 177127.600000 ], [ 635831.000000, 177190.500000 ], [ 635835.100000, 177217.200000 ], [ 635866.400000, 177266.900000 ], [ 635911.700000, 177319.800000 ], [ 635923.500000, 177348.900000 ], [ 635924.000000, 177368.700000 ], [ 635894.000000, 177489.800000 ], [ 635873.300000, 177513.100000 ], [ 635826.700000, 177532.900000 ], [ 635814.200000, 177548.900000 ], [ 635816.200000, 177599.500000 ], [ 635831.800000, 177686.500000 ], [ 635854.200000, 177750.700000 ], [ 635854.500000, 177765.200000 ], [ 635837.100000, 177805.000000 ], [ 635680.600000, 177851.400000 ], [ 635635.900000, 177844.200000 ], [ 635563.700000, 177816.100000 ], [ 635511.200000, 177811.500000 ], [ 635423.800000, 177823.100000 ], [ 635337.400000, 177850.800000 ], [ 635314.200000, 177852.500000 ], [ 635303.200000, 177864.000000 ], [ 635311.600000, 177911.200000 ], [ 635298.500000, 177936.000000 ], [ 635139.300000, 178016.400000 ], [ 635079.300000, 178040.400000 ], [ 635056.500000, 178067.500000 ], [ 635044.100000, 178114.000000 ], [ 635060.700000, 178220.000000 ], [ 635043.900000, 178247.900000 ], [ 635019.800000, 178260.000000 ], [ 634988.200000, 178265.200000 ], [ 634934.300000, 178263.000000 ], [ 634898.700000, 178253.800000 ], [ 634870.400000, 178263.700000 ], [ 634859.200000, 178279.200000 ], [ 634854.400000, 178304.400000 ], [ 634947.400000, 178407.600000 ], [ 634953.800000, 178431.200000 ], [ 634935.500000, 178447.200000 ], [ 634902.700000, 178456.200000 ], [ 634749.400000, 178468.000000 ], [ 634708.300000, 178497.900000 ], [ 634695.900000, 178522.400000 ], [ 634693.000000, 178560.000000 ], [ 634707.100000, 178592.600000 ], [ 634754.400000, 178652.500000 ], [ 634782.700000, 178740.500000 ], [ 634759.200000, 178759.500000 ], [ 634700.500000, 178784.900000 ], [ 634695.700000, 178798.000000 ], [ 634702.200000, 178811.000000 ], [ 634796.100000, 178896.700000 ], [ 634819.600000, 178903.000000 ], [ 634914.700000, 178904.900000 ], [ 634947.900000, 178920.700000 ], [ 634979.700000, 178975.700000 ], [ 634999.000000, 178996.200000 ], [ 635110.200000, 179042.600000 ], [ 635165.900000, 179073.300000 ], [ 635261.000000, 179127.000000 ], [ 635346.700000, 179191.500000 ], [ 635400.500000, 179179.500000 ], [ 635595.900000, 179178.600000 ], [ 635627.200000, 179169.700000 ], [ 635718.800000, 179117.400000 ], [ 635760.600000, 179113.100000 ], [ 635784.600000, 179118.600000 ], [ 635871.600000, 179173.000000 ], [ 635905.100000, 179221.800000 ], [ 635937.100000, 179285.500000 ], [ 635966.900000, 179308.800000 ], [ 636002.100000, 179318.800000 ], [ 636105.200000, 179317.000000 ], [ 636146.100000, 179324.100000 ], [ 636169.900000, 179335.000000 ], [ 636219.200000, 179378.600000 ], [ 636293.600000, 179483.300000 ], [ 636334.900000, 179506.500000 ], [ 636463.400000, 179556.000000 ], [ 636464.100000, 179565.800000 ], [ 636454.100000, 179578.500000 ], [ 636382.400000, 179629.200000 ], [ 636361.100000, 179657.100000 ], [ 636351.100000, 179717.900000 ], [ 636325.100000, 179767.800000 ], [ 636323.700000, 179791.000000 ], [ 636334.800000, 179836.300000 ], [ 636321.800000, 179871.600000 ], [ 636304.300000, 179880.400000 ], [ 636237.600000, 179879.500000 ], [ 636231.300000, 179894.500000 ], [ 636251.900000, 179912.800000 ], [ 636326.300000, 179955.400000 ], [ 636394.200000, 179982.700000 ], [ 636488.300000, 180032.000000 ], [ 636500.800000, 180040.400000 ], [ 636505.600000, 180061.900000 ], [ 636498.100000, 180069.300000 ], [ 636467.600000, 180073.800000 ], [ 636336.300000, 180072.400000 ], [ 636256.400000, 180091.000000 ], [ 636176.700000, 180082.700000 ], [ 636122.100000, 180067.300000 ], [ 636110.600000, 180076.100000 ], [ 636114.600000, 180089.600000 ], [ 636178.100000, 180135.700000 ], [ 636284.800000, 180246.900000 ], [ 636352.900000, 180276.100000 ], [ 636377.200000, 180293.300000 ], [ 636385.000000, 180316.700000 ], [ 636369.300000, 180367.400000 ], [ 636377.900000, 180383.300000 ], [ 636506.100000, 180428.000000 ], [ 636525.700000, 180468.800000 ], [ 636551.400000, 180487.100000 ], [ 636621.900000, 180512.600000 ], [ 636662.600000, 180513.700000 ], [ 636706.900000, 180528.800000 ], [ 636786.100000, 180569.400000 ], [ 636802.346000, 180601.078000 ], [ 636826.900000, 180599.000000 ], [ 636864.400000, 180612.300000 ], [ 637010.500000, 180688.800000 ], [ 637119.100000, 180726.400000 ], [ 637267.100000, 180803.300000 ], [ 637372.100000, 180877.100000 ], [ 637489.400000, 180974.600000 ], [ 637570.000000, 181073.500000 ], [ 637636.600000, 181178.200000 ], [ 637723.200000, 181281.900000 ], [ 637767.100000, 181347.000000 ], [ 637864.300000, 181432.000000 ], [ 637923.700000, 181521.600000 ], [ 637927.000000, 181541.800000 ], [ 637914.600000, 181572.100000 ], [ 637915.600000, 181585.300000 ], [ 637922.300000, 181594.600000 ], [ 637946.800000, 181603.500000 ], [ 637988.800000, 181648.100000 ], [ 638091.100000, 181674.200000 ], [ 638360.900000, 181851.200000 ], [ 638449.100000, 181923.500000 ], [ 638523.600000, 181938.200000 ], [ 638584.200000, 181966.700000 ], [ 638669.300000, 182029.200000 ], [ 638712.200000, 182039.000000 ], [ 638759.100000, 182073.800000 ], [ 638887.500000, 182142.700000 ], [ 639011.200000, 182232.000000 ], [ 639056.700000, 182239.400000 ], [ 639082.600000, 182256.700000 ], [ 639194.200000, 182446.200000 ], [ 639176.600000, 182537.200000 ], [ 639178.400000, 182618.300000 ], [ 639191.400000, 182691.800000 ], [ 639209.200000, 182706.000000 ], [ 639261.400000, 182721.000000 ], [ 639277.500000, 182731.600000 ], [ 639285.400000, 182749.600000 ], [ 639286.100000, 182797.000000 ], [ 639268.000000, 182895.200000 ], [ 639282.700000, 182873.000000 ], [ 639294.500000, 182868.200000 ], [ 639335.200000, 182897.000000 ], [ 639366.500000, 182900.000000 ], [ 639384.400000, 182872.000000 ], [ 639383.400000, 182848.100000 ], [ 639399.700000, 182756.500000 ], [ 639395.200000, 182742.700000 ], [ 639372.600000, 182719.600000 ], [ 639338.500000, 182645.200000 ], [ 639357.200000, 182646.500000 ], [ 639414.200000, 182679.900000 ], [ 639484.300000, 182697.500000 ], [ 639513.900000, 182718.200000 ], [ 639527.900000, 182743.800000 ], [ 639608.900000, 182987.200000 ], [ 639629.000000, 183008.900000 ], [ 639671.600000, 183027.500000 ], [ 639705.400000, 183058.300000 ], [ 639734.900000, 183074.800000 ], [ 639735.500000, 183089.100000 ], [ 639724.300000, 183107.300000 ], [ 639641.900000, 183095.800000 ], [ 639534.500000, 183070.100000 ], [ 639517.600000, 183079.900000 ], [ 639501.400000, 183103.400000 ], [ 639499.700000, 183142.500000 ], [ 639460.900000, 183162.300000 ], [ 639435.400000, 183190.700000 ], [ 639424.000000, 183225.600000 ], [ 639425.400000, 183275.300000 ], [ 639438.600000, 183324.500000 ], [ 639428.700000, 183368.000000 ], [ 639463.700000, 183447.800000 ], [ 639471.900000, 183464.300000 ], [ 639519.000000, 183507.700000 ], [ 639552.400000, 183550.000000 ], [ 639595.600000, 183583.200000 ], [ 639745.600000, 183645.400000 ], [ 639835.900000, 183670.500000 ], [ 639872.900000, 183674.900000 ], [ 639968.200000, 183714.700000 ], [ 640006.900000, 183720.700000 ], [ 640037.900000, 183733.000000 ], [ 640091.700000, 183731.800000 ], [ 640118.200000, 183739.900000 ], [ 640141.400000, 183710.000000 ], [ 640180.200000, 183694.800000 ], [ 640341.500000, 183690.200000 ], [ 640398.800000, 183662.200000 ], [ 640431.100000, 183632.300000 ], [ 640493.800000, 183662.600000 ], [ 640558.400000, 183684.400000 ], [ 640619.400000, 183726.200000 ], [ 640669.200000, 183738.300000 ], [ 640692.500000, 183757.100000 ], [ 640716.600000, 183809.400000 ], [ 640753.900000, 183849.700000 ], [ 640809.600000, 183882.700000 ], [ 640804.900000, 183895.200000 ], [ 640792.100000, 183896.700000 ], [ 640753.100000, 183880.200000 ], [ 640697.500000, 183875.300000 ], [ 640595.400000, 183849.800000 ], [ 640541.100000, 183845.900000 ], [ 640502.600000, 183827.900000 ], [ 640482.800000, 183828.600000 ], [ 640479.900000, 183845.200000 ], [ 640545.600000, 183875.800000 ], [ 640616.100000, 183898.900000 ], [ 640742.400000, 184008.700000 ], [ 640763.900000, 184032.100000 ], [ 640763.400000, 184072.100000 ], [ 640780.800000, 184095.900000 ], [ 640793.400000, 184137.900000 ], [ 640852.800000, 184191.700000 ], [ 640873.700000, 184228.100000 ], [ 640959.900000, 184286.900000 ], [ 641001.900000, 184335.900000 ], [ 641060.100000, 184376.200000 ], [ 641087.000000, 184408.600000 ], [ 641362.100000, 184522.100000 ], [ 641387.100000, 184540.900000 ], [ 641409.100000, 184573.200000 ], [ 641450.600000, 184560.400000 ], [ 641471.900000, 184562.700000 ], [ 641727.700000, 184660.700000 ], [ 641920.400000, 184807.400000 ], [ 641987.100000, 184822.700000 ], [ 642038.100000, 184875.600000 ], [ 642116.800000, 184925.300000 ], [ 642198.900000, 184995.300000 ], [ 642280.700000, 185037.500000 ], [ 642347.800000, 185134.400000 ], [ 642399.800000, 185197.500000 ], [ 642464.800000, 185246.300000 ], [ 642476.400000, 185247.300000 ], [ 642502.500000, 185225.800000 ], [ 642516.500000, 185221.600000 ], [ 642532.700000, 185229.100000 ], [ 642591.100000, 185295.300000 ], [ 642613.026000, 185331.933000 ], [ 642597.900000, 185273.800000 ], [ 642571.600000, 185242.800000 ], [ 642579.700000, 185209.500000 ], [ 642580.500000, 185163.200000 ], [ 642566.900000, 185025.200000 ], [ 642547.300000, 184941.600000 ], [ 642509.100000, 184873.600000 ], [ 642524.000000, 184856.700000 ], [ 642539.900000, 184858.900000 ], [ 642589.300000, 184880.700000 ], [ 642698.700000, 184912.700000 ], [ 642729.900000, 184936.200000 ], [ 642774.100000, 184985.600000 ], [ 642817.900000, 184977.600000 ], [ 642873.500000, 184723.600000 ], [ 642877.200000, 184672.000000 ], [ 642889.500000, 184667.400000 ], [ 642948.800000, 184666.100000 ], [ 642968.000000, 184684.300000 ], [ 643003.300000, 184739.800000 ], [ 643032.600000, 184765.600000 ], [ 643087.400000, 184787.000000 ], [ 643129.600000, 184841.500000 ], [ 643175.100000, 184870.500000 ], [ 643244.500000, 184935.700000 ], [ 643290.100000, 184970.300000 ], [ 643399.400000, 185032.500000 ], [ 643446.800000, 185034.600000 ], [ 643466.000000, 185027.600000 ], [ 643478.700000, 184999.400000 ], [ 643477.900000, 184972.400000 ], [ 643490.200000, 184963.900000 ], [ 643499.900000, 184964.100000 ], [ 643569.900000, 185028.600000 ], [ 643599.200000, 185030.900000 ], [ 643619.500000, 185017.100000 ], [ 643665.500000, 184957.600000 ], [ 643711.849000, 184923.851000 ], [ 643719.200000, 184838.300000 ], [ 643740.100000, 184773.900000 ], [ 643737.600000, 184728.500000 ], [ 643711.100000, 184664.000000 ], [ 643705.000000, 184632.500000 ], [ 643669.400000, 184587.400000 ], [ 643661.900000, 184523.700000 ], [ 643587.800000, 184425.300000 ], [ 643575.900000, 184400.200000 ], [ 643571.500000, 184354.800000 ], [ 643616.000000, 184288.300000 ], [ 643675.200000, 184287.700000 ], [ 643687.200000, 184279.900000 ], [ 643672.700000, 184162.200000 ], [ 643672.500000, 184073.500000 ], [ 643676.400000, 184046.000000 ], [ 643701.200000, 183996.000000 ], [ 643768.100000, 183620.400000 ], [ 643776.700000, 183560.700000 ], [ 643774.100000, 183513.100000 ], [ 643841.700000, 183387.200000 ], [ 643832.100000, 183340.500000 ], [ 643834.400000, 183320.100000 ], [ 643861.900000, 183269.100000 ], [ 643864.300000, 183183.200000 ], [ 643843.500000, 183114.400000 ], [ 643859.200000, 183093.700000 ], [ 643912.700000, 183074.300000 ], [ 643944.700000, 183052.500000 ], [ 644021.400000, 183029.000000 ], [ 644028.400000, 183016.000000 ], [ 644022.700000, 182947.000000 ], [ 644035.200000, 182941.000000 ], [ 644071.700000, 182973.300000 ], [ 644053.100000, 182926.000000 ], [ 644056.800000, 182901.700000 ], [ 644078.400000, 182869.500000 ], [ 644098.400000, 182855.300000 ], [ 644110.700000, 182861.000000 ], [ 644115.900000, 182887.000000 ], [ 644142.800000, 182926.600000 ], [ 644197.900000, 182934.300000 ], [ 644304.700000, 183000.800000 ], [ 644324.700000, 182997.000000 ], [ 644371.200000, 182966.700000 ], [ 644455.200000, 182952.800000 ], [ 644509.200000, 183028.600000 ], [ 644830.800000, 183268.400000 ], [ 644902.400000, 183278.800000 ], [ 644929.200000, 183290.000000 ], [ 645089.300000, 183322.000000 ], [ 645139.200000, 183353.400000 ], [ 645173.100000, 183384.800000 ], [ 645498.900000, 183601.000000 ], [ 645507.500000, 183601.700000 ], [ 645566.000000, 183564.900000 ], [ 645579.900000, 183562.900000 ], [ 645585.300000, 183572.500000 ], [ 645576.200000, 183641.200000 ], [ 645579.978000, 183653.995000 ], [ 645663.000000, 183773.300000 ], [ 645654.000000, 183985.700000 ], [ 645665.500000, 184009.800000 ], [ 645747.600000, 184087.800000 ], [ 645757.400000, 184104.900000 ], [ 645763.600000, 184149.400000 ], [ 645773.800000, 184144.000000 ], [ 645813.900000, 184092.200000 ], [ 645852.200000, 184068.400000 ], [ 645915.000000, 184045.500000 ], [ 645934.200000, 184054.000000 ], [ 645957.700000, 184095.000000 ], [ 645973.000000, 184109.400000 ], [ 646073.200000, 184154.500000 ], [ 646104.200000, 184160.200000 ], [ 646148.500000, 184154.400000 ], [ 646256.000000, 184154.200000 ], [ 646265.500000, 184143.700000 ], [ 646276.000000, 184106.500000 ], [ 646297.500000, 184093.500000 ], [ 646315.700000, 184098.700000 ], [ 646316.000000, 184116.500000 ], [ 646297.500000, 184147.200000 ], [ 646300.300000, 184240.800000 ], [ 646279.700000, 184273.000000 ], [ 646265.000000, 184279.700000 ], [ 646237.200000, 184279.900000 ], [ 646182.200000, 184366.000000 ], [ 646194.800000, 184439.600000 ], [ 646188.800000, 184456.100000 ], [ 646152.700000, 184497.600000 ], [ 646192.000000, 184491.700000 ], [ 646264.200000, 184507.000000 ], [ 646297.000000, 184491.200000 ], [ 646311.700000, 184492.500000 ], [ 646346.100000, 184512.900000 ], [ 646349.700000, 184549.200000 ], [ 646360.000000, 184557.200000 ], [ 646382.400000, 184540.500000 ], [ 646405.200000, 184499.700000 ], [ 646437.500000, 184483.500000 ], [ 646453.500000, 184462.700000 ], [ 646469.700000, 184460.500000 ], [ 646507.500000, 184475.700000 ], [ 646505.000000, 184494.200000 ], [ 646474.200000, 184491.200000 ], [ 646461.000000, 184515.900000 ], [ 646454.500000, 184545.900000 ], [ 646448.700000, 184691.700000 ], [ 646434.500000, 184733.700000 ], [ 646435.100000, 184751.900000 ] ], [ [ 559360.931183, 143054.964848 ], [ 559364.091000, 143080.214000 ], [ 559354.373000, 143097.944000 ], [ 559405.000000, 143124.900000 ], [ 559365.500000, 143179.000000 ], [ 559313.200000, 143286.900000 ], [ 559287.500000, 143325.900000 ], [ 559304.500000, 143340.700000 ], [ 559331.000000, 143328.300000 ], [ 559346.600000, 143297.100000 ], [ 559368.600000, 143272.900000 ], [ 559460.700000, 143234.200000 ], [ 559478.600000, 143219.200000 ], [ 559526.200000, 143161.300000 ], [ 559533.500000, 143107.700000 ], [ 559550.600000, 143076.600000 ], [ 559630.600000, 143013.600000 ], [ 559741.600000, 142871.000000 ], [ 559762.800000, 142864.300000 ], [ 559770.400000, 142870.300000 ], [ 559769.000000, 142944.400000 ], [ 559742.600000, 143007.400000 ], [ 559712.500000, 143110.400000 ], [ 559720.800000, 143137.900000 ], [ 559753.300000, 143174.400000 ], [ 559753.600000, 143184.900000 ], [ 559734.800000, 143208.400000 ], [ 559733.600000, 143228.900000 ], [ 559788.190000, 143302.246000 ], [ 559795.537000, 143322.711000 ], [ 559795.100000, 143351.200000 ], [ 559749.000000, 143415.800000 ], [ 559725.100000, 143482.000000 ], [ 559648.300000, 143591.500000 ], [ 559625.900000, 143613.200000 ], [ 559525.600000, 143681.100000 ], [ 559521.800000, 143700.800000 ], [ 559601.900000, 143667.000000 ], [ 559663.600000, 143667.700000 ], [ 559685.500000, 143661.400000 ], [ 559708.200000, 143650.700000 ], [ 559761.100000, 143597.900000 ], [ 559777.400000, 143591.300000 ], [ 559823.800000, 143589.600000 ], [ 559841.200000, 143579.500000 ], [ 559895.700000, 143503.800000 ], [ 559928.600000, 143488.000000 ], [ 560043.600000, 143462.700000 ], [ 560171.600000, 143342.000000 ], [ 560268.500000, 143120.000000 ], [ 560302.793000, 143088.091000 ], [ 560379.471000, 143111.946000 ], [ 560441.192000, 143151.828000 ], [ 560490.600000, 143139.500000 ], [ 560512.400000, 143141.200000 ], [ 560558.400000, 143156.500000 ], [ 560574.800000, 143168.500000 ], [ 560597.500000, 143200.000000 ], [ 560600.700000, 143230.100000 ], [ 560663.400000, 143349.400000 ], [ 560679.800000, 143402.000000 ], [ 560734.500000, 143500.100000 ], [ 560771.300000, 143533.900000 ], [ 560791.200000, 143542.700000 ], [ 560854.900000, 143539.900000 ], [ 560880.000000, 143545.500000 ], [ 560927.900000, 143583.400000 ], [ 561003.200000, 143615.200000 ], [ 561056.300000, 143578.000000 ], [ 561118.500000, 143599.500000 ], [ 561186.400000, 143636.500000 ], [ 561213.000000, 143690.200000 ], [ 561256.700000, 143727.800000 ], [ 561287.400000, 143697.300000 ], [ 561303.200000, 143694.800000 ], [ 561378.400000, 143710.800000 ], [ 561421.900000, 143704.000000 ], [ 561423.900000, 143692.500000 ], [ 561399.000000, 143656.600000 ], [ 561371.700000, 143588.200000 ], [ 561387.900000, 143473.500000 ], [ 561385.900000, 143398.200000 ], [ 561412.400000, 143362.500000 ], [ 561404.900000, 143324.700000 ], [ 561382.500000, 143312.800000 ], [ 561210.500000, 143323.000000 ], [ 561172.500000, 143315.900000 ], [ 561162.700000, 143302.800000 ], [ 561170.300000, 143275.000000 ], [ 561166.100000, 143260.500000 ], [ 561119.000000, 143226.100000 ], [ 561084.600000, 143217.200000 ], [ 561072.600000, 143206.700000 ], [ 561046.700000, 143160.800000 ], [ 561029.000000, 143070.900000 ], [ 561052.300000, 143015.300000 ], [ 561046.500000, 142995.000000 ], [ 561029.500000, 142989.200000 ], [ 561005.700000, 142994.600000 ], [ 560953.500000, 142991.300000 ], [ 560932.800000, 142982.200000 ], [ 560872.800000, 142938.500000 ], [ 560863.200000, 142904.000000 ], [ 560837.800000, 142872.200000 ], [ 560794.300000, 142866.000000 ], [ 560756.500000, 142832.700000 ], [ 560708.800000, 142818.700000 ], [ 560592.600000, 142656.100000 ], [ 560559.300000, 142629.000000 ], [ 560548.800000, 142592.300000 ], [ 560563.700000, 142514.100000 ], [ 560550.700000, 142468.400000 ], [ 560607.200000, 142456.000000 ], [ 560620.700000, 142461.700000 ], [ 560632.200000, 142476.700000 ], [ 560682.500000, 142546.700000 ], [ 560703.200000, 142598.000000 ], [ 560712.100000, 142601.400000 ], [ 560717.000000, 142585.200000 ], [ 560698.400000, 142505.600000 ], [ 560700.800000, 142456.900000 ], [ 560713.900000, 142425.300000 ], [ 560807.300000, 142326.700000 ], [ 560824.100000, 142318.400000 ], [ 560828.200000, 142328.500000 ], [ 560794.200000, 142374.000000 ], [ 560787.200000, 142399.200000 ], [ 560790.700000, 142442.400000 ], [ 560875.500000, 142554.100000 ], [ 560913.400000, 142610.500000 ], [ 560925.500000, 142646.800000 ], [ 560939.000000, 142656.200000 ], [ 560944.700000, 142650.500000 ], [ 560942.500000, 142633.700000 ], [ 560911.400000, 142488.200000 ], [ 560915.300000, 142472.000000 ], [ 560996.100000, 142357.100000 ], [ 561079.400000, 142271.600000 ], [ 561183.300000, 142145.100000 ], [ 561196.100000, 142146.300000 ], [ 561198.100000, 142155.600000 ], [ 561158.200000, 142261.300000 ], [ 561161.500000, 142276.500000 ], [ 561174.000000, 142272.500000 ], [ 561345.500000, 142106.600000 ], [ 561356.800000, 142105.300000 ], [ 561360.700000, 142118.700000 ], [ 561332.300000, 142145.000000 ], [ 561309.600000, 142180.300000 ], [ 561253.500000, 142287.000000 ], [ 561230.700000, 142365.200000 ], [ 561221.500000, 142377.000000 ], [ 561156.700000, 142416.500000 ], [ 561128.500000, 142445.500000 ], [ 561132.200000, 142455.700000 ], [ 561144.700000, 142455.200000 ], [ 561175.700000, 142425.200000 ], [ 561259.000000, 142408.000000 ], [ 561295.700000, 142383.500000 ], [ 561326.500000, 142300.700000 ], [ 561345.600000, 142274.900000 ], [ 561428.500000, 142210.700000 ], [ 561431.000000, 142229.700000 ], [ 561392.000000, 142279.900000 ], [ 561357.555000, 142366.548000 ], [ 561370.031000, 142429.187000 ], [ 561336.066000, 142455.313000 ], [ 561324.145000, 142479.300000 ], [ 561331.600000, 142538.200000 ], [ 561387.300000, 142626.100000 ], [ 561395.900000, 142630.200000 ], [ 561403.700000, 142616.700000 ], [ 561374.800000, 142544.300000 ], [ 561379.000000, 142519.100000 ], [ 561392.200000, 142497.500000 ], [ 561412.500000, 142480.600000 ], [ 561432.800000, 142476.900000 ], [ 561525.100000, 142488.500000 ], [ 561536.900000, 142515.400000 ], [ 561525.400000, 142599.700000 ], [ 561536.000000, 142614.700000 ], [ 561562.400000, 142611.900000 ], [ 561576.700000, 142584.200000 ], [ 561590.200000, 142575.600000 ], [ 561610.700000, 142610.500000 ], [ 561621.800000, 142611.900000 ], [ 561621.900000, 142628.900000 ], [ 561702.100000, 142647.700000 ], [ 561819.500000, 142659.700000 ], [ 561898.400000, 142685.400000 ], [ 561944.800000, 142690.700000 ], [ 561996.400000, 142713.200000 ], [ 562128.100000, 142734.000000 ], [ 562164.600000, 142755.700000 ], [ 562199.300000, 142789.100000 ], [ 562241.700000, 142868.700000 ], [ 562253.400000, 142870.500000 ], [ 562263.700000, 142883.800000 ], [ 562278.600000, 142890.100000 ], [ 562338.200000, 142896.400000 ], [ 562398.900000, 142914.000000 ], [ 562462.900000, 142900.100000 ], [ 562477.900000, 142905.400000 ], [ 562515.900000, 142943.300000 ], [ 562595.000000, 142919.700000 ], [ 562641.900000, 142927.900000 ], [ 562681.900000, 142914.400000 ], [ 562722.000000, 142930.500000 ], [ 562757.800000, 142930.100000 ], [ 562787.000000, 142943.400000 ], [ 562803.600000, 142972.100000 ], [ 562852.800000, 142981.400000 ], [ 562868.200000, 143024.100000 ], [ 562918.200000, 143102.400000 ], [ 562920.200000, 143127.300000 ], [ 562938.300000, 143145.700000 ], [ 562942.600000, 143162.400000 ], [ 562933.500000, 143172.500000 ], [ 562898.700000, 143182.700000 ], [ 562882.200000, 143201.400000 ], [ 562841.400000, 143206.700000 ], [ 562742.100000, 143282.700000 ], [ 562719.400000, 143375.300000 ], [ 562700.300000, 143417.900000 ], [ 562690.400000, 143485.700000 ], [ 562618.700000, 143642.900000 ], [ 562619.000000, 143671.300000 ], [ 562626.200000, 143686.700000 ], [ 562663.300000, 143713.900000 ], [ 562752.500000, 143726.300000 ], [ 562805.200000, 143737.600000 ], [ 562812.700000, 143744.300000 ], [ 562841.200000, 143852.500000 ], [ 562857.000000, 143887.100000 ], [ 562913.100000, 143962.500000 ], [ 562939.700000, 143977.000000 ], [ 563002.200000, 143968.000000 ], [ 563056.900000, 143982.100000 ], [ 563076.600000, 143977.400000 ], [ 563104.500000, 143964.000000 ], [ 563170.700000, 143911.800000 ], [ 563196.300000, 143898.500000 ], [ 563266.200000, 143897.400000 ], [ 563340.000000, 143881.200000 ], [ 563418.000000, 143876.300000 ], [ 563466.200000, 143892.600000 ], [ 563482.200000, 143889.000000 ], [ 563501.700000, 143875.700000 ], [ 563544.800000, 143806.700000 ], [ 563561.200000, 143793.900000 ], [ 563584.200000, 143790.300000 ], [ 563599.600000, 143812.800000 ], [ 563608.600000, 143857.200000 ], [ 563603.300000, 143939.600000 ], [ 563669.800000, 143974.100000 ], [ 563683.200000, 144011.400000 ], [ 563690.700000, 144094.600000 ], [ 563716.100000, 144124.800000 ], [ 563695.200000, 144181.000000 ], [ 563689.700000, 144265.200000 ], [ 563695.100000, 144331.800000 ], [ 563724.200000, 144363.500000 ], [ 563749.300000, 144374.600000 ], [ 563769.800000, 144369.600000 ], [ 563795.200000, 144349.500000 ], [ 563812.300000, 144344.000000 ], [ 563844.500000, 144351.200000 ], [ 563866.900000, 144366.100000 ], [ 563881.800000, 144386.000000 ], [ 563876.600000, 144422.100000 ], [ 563882.200000, 144444.900000 ], [ 563909.400000, 144463.100000 ], [ 563948.300000, 144506.500000 ], [ 563936.600000, 144582.500000 ], [ 563906.700000, 144648.000000 ], [ 563895.400000, 144694.900000 ], [ 563908.400000, 144720.000000 ], [ 563953.300000, 144721.800000 ], [ 563963.600000, 144735.500000 ], [ 563933.600000, 144853.900000 ], [ 563934.000000, 144871.700000 ], [ 563942.700000, 144889.000000 ], [ 563991.000000, 144921.300000 ], [ 564019.600000, 144953.000000 ], [ 564055.100000, 145019.300000 ], [ 564063.300000, 145027.300000 ], [ 564095.800000, 145032.500000 ], [ 564114.800000, 145050.100000 ], [ 564122.900000, 145118.000000 ], [ 564107.800000, 145149.800000 ], [ 564142.800000, 145189.700000 ], [ 564144.500000, 145203.400000 ], [ 564140.100000, 145238.800000 ], [ 564117.300000, 145263.600000 ], [ 564121.800000, 145276.600000 ], [ 564129.700000, 145279.900000 ], [ 564154.800000, 145249.500000 ], [ 564173.100000, 145212.600000 ], [ 564173.100000, 145191.800000 ], [ 564158.800000, 145155.600000 ], [ 564178.100000, 145120.800000 ], [ 564178.800000, 145069.900000 ], [ 564195.300000, 145063.400000 ], [ 564200.800000, 145052.800000 ], [ 564198.500000, 145029.300000 ], [ 564173.600000, 145008.900000 ], [ 564133.600000, 144907.800000 ], [ 564081.200000, 144833.100000 ], [ 564103.200000, 144754.400000 ], [ 564125.300000, 144731.700000 ], [ 564130.100000, 144700.400000 ], [ 564158.300000, 144658.900000 ], [ 564155.800000, 144642.000000 ], [ 564128.600000, 144626.900000 ], [ 564126.300000, 144619.900000 ], [ 564152.600000, 144553.100000 ], [ 564163.100000, 144557.100000 ], [ 564150.800000, 144609.600000 ], [ 564156.100000, 144616.900000 ], [ 564200.300000, 144620.700000 ], [ 564215.600000, 144643.100000 ], [ 564192.700000, 144803.000000 ], [ 564208.900000, 144824.300000 ], [ 564288.000000, 144879.100000 ], [ 564326.600000, 144923.900000 ], [ 564358.100000, 144941.600000 ], [ 564383.500000, 144971.900000 ], [ 564397.500000, 144999.900000 ], [ 564403.300000, 145020.000000 ], [ 564394.300000, 145041.600000 ], [ 564403.900000, 145071.500000 ], [ 564394.200000, 145117.000000 ], [ 564412.800000, 145173.500000 ], [ 564437.700000, 145195.800000 ], [ 564440.300000, 145222.800000 ], [ 564450.900000, 145243.700000 ], [ 564436.900000, 145266.300000 ], [ 564422.900000, 145323.800000 ], [ 564437.200000, 145343.500000 ], [ 564427.900000, 145414.500000 ], [ 564436.800000, 145433.400000 ], [ 564424.800000, 145467.500000 ], [ 564438.500000, 145490.600000 ], [ 564425.400000, 145526.800000 ], [ 564424.700000, 145573.300000 ], [ 564431.400000, 145598.900000 ], [ 564423.300000, 145640.400000 ], [ 564401.500000, 145659.100000 ], [ 564383.600000, 145686.900000 ], [ 564383.100000, 145699.000000 ], [ 564354.800000, 145749.400000 ], [ 564318.349000, 145932.965000 ], [ 564313.700000, 146051.100000 ], [ 564274.200000, 146197.300000 ], [ 564276.500000, 146221.800000 ], [ 564253.800000, 146259.400000 ], [ 564275.500000, 146370.900000 ], [ 564265.600000, 146384.500000 ], [ 564231.800000, 146389.800000 ], [ 564223.800000, 146407.800000 ], [ 564226.300000, 146433.000000 ], [ 564205.400000, 146447.400000 ], [ 564197.900000, 146461.400000 ], [ 564196.000000, 146546.300000 ], [ 564211.200000, 146584.600000 ], [ 564224.200000, 146663.800000 ], [ 564221.500000, 146687.900000 ], [ 564182.300000, 146718.700000 ], [ 564152.500000, 146754.400000 ], [ 564160.400000, 146799.200000 ], [ 564152.500000, 146827.400000 ], [ 564118.900000, 146879.000000 ], [ 564089.100000, 146904.400000 ], [ 564077.000000, 146910.300000 ], [ 564044.300000, 146893.600000 ], [ 564035.700000, 146895.500000 ], [ 563964.900000, 146941.900000 ], [ 563941.600000, 146947.100000 ], [ 563906.200000, 146931.900000 ], [ 563888.400000, 146911.000000 ], [ 563861.700000, 146857.900000 ], [ 563845.900000, 146843.900000 ], [ 563810.800000, 146870.100000 ], [ 563797.900000, 146896.200000 ], [ 563812.400000, 146927.600000 ], [ 563865.100000, 146982.600000 ], [ 563871.000000, 147014.500000 ], [ 563817.100000, 147215.200000 ], [ 563800.300000, 147307.100000 ], [ 563798.955000, 147350.904000 ], [ 563792.800000, 147359.600000 ], [ 563816.100000, 147367.800000 ], [ 563863.800000, 147339.800000 ], [ 563887.300000, 147360.800000 ], [ 563911.041000, 147423.063000 ], [ 563952.391000, 147482.260000 ], [ 563970.800000, 147489.300000 ], [ 564022.300000, 147585.500000 ], [ 564025.100000, 147642.172000 ], [ 564039.700000, 147668.000000 ], [ 564047.700000, 147711.400000 ], [ 564038.000000, 147735.400000 ], [ 564059.000000, 147753.100000 ], [ 564068.600000, 147778.200000 ], [ 564061.600000, 147794.800000 ], [ 563985.300000, 147812.000000 ], [ 563952.600000, 147804.900000 ], [ 563926.100000, 147786.900000 ], [ 563920.100000, 147804.400000 ], [ 563928.000000, 147860.900000 ], [ 563938.700000, 147886.900000 ], [ 563957.800000, 147916.500000 ], [ 563998.200000, 147953.000000 ], [ 564045.700000, 148091.300000 ], [ 564027.800000, 148246.300000 ], [ 564039.900000, 148347.900000 ], [ 564010.500000, 148402.000000 ], [ 564012.500000, 148436.600000 ], [ 563999.900000, 148511.400000 ], [ 563976.200000, 148603.500000 ], [ 563983.700000, 148636.300000 ], [ 563981.700000, 148797.300000 ], [ 563997.700000, 148807.000000 ], [ 564011.200000, 148805.800000 ], [ 564039.000000, 148734.600000 ], [ 564075.700000, 148682.400000 ], [ 564118.000000, 148705.400000 ], [ 564169.000000, 148698.900000 ], [ 564203.200000, 148762.600000 ], [ 564188.700000, 148833.900000 ], [ 564129.200000, 148888.500000 ], [ 564117.200000, 148940.600000 ], [ 564103.700000, 148949.300000 ], [ 564029.000000, 148947.900000 ], [ 563923.400000, 149008.800000 ], [ 563902.200000, 149036.500000 ], [ 563935.100000, 149029.900000 ], [ 563971.800000, 148997.200000 ], [ 564001.300000, 149000.200000 ], [ 564019.100000, 149017.900000 ], [ 564024.600000, 149051.400000 ], [ 564017.100000, 149080.900000 ], [ 563986.600000, 149115.700000 ], [ 563990.300000, 149131.500000 ], [ 564019.800000, 149157.200000 ], [ 564124.400000, 149196.000000 ], [ 564129.800000, 149220.700000 ], [ 564110.600000, 149250.200000 ], [ 564035.100000, 149310.400000 ], [ 563964.800000, 149342.200000 ], [ 563854.100000, 149424.900000 ], [ 563760.300000, 149536.700000 ], [ 563755.300000, 149596.500000 ], [ 563740.200000, 149614.600000 ], [ 563671.500000, 149680.000000 ], [ 563643.300000, 149693.800000 ], [ 563613.400000, 149720.600000 ], [ 563451.900000, 149874.000000 ], [ 563254.200000, 149986.500000 ], [ 563231.300000, 149988.000000 ], [ 563184.900000, 150004.500000 ], [ 563129.600000, 150071.800000 ], [ 563115.600000, 150118.100000 ], [ 563104.100000, 150118.800000 ], [ 563066.100000, 150099.900000 ], [ 563033.800000, 150103.200000 ], [ 562971.900000, 150125.300000 ], [ 562932.000000, 150176.500000 ], [ 562879.200000, 150279.800000 ], [ 562860.000000, 150290.300000 ], [ 562830.400000, 150338.300000 ], [ 562806.000000, 150348.400000 ], [ 562811.200000, 150411.700000 ], [ 562807.800000, 150450.300000 ], [ 562822.500000, 150488.700000 ], [ 562825.700000, 150529.800000 ], [ 562779.600000, 150582.600000 ], [ 562776.900000, 150621.200000 ], [ 562745.400000, 150684.200000 ], [ 562727.400000, 150696.500000 ], [ 562675.800000, 150776.100000 ], [ 562656.700000, 150778.600000 ], [ 562578.100000, 150754.900000 ], [ 562557.100000, 150771.400000 ], [ 562517.600000, 150874.000000 ], [ 562472.600000, 150923.200000 ], [ 562459.800000, 150946.000000 ], [ 562479.600000, 151080.700000 ], [ 562493.100000, 151117.700000 ], [ 562536.200000, 151176.600000 ], [ 562554.400000, 151220.400000 ], [ 562558.700000, 151281.900000 ], [ 562544.100000, 151354.700000 ], [ 562559.519000, 151389.620000 ], [ 562700.775000, 151510.989000 ], [ 562791.459000, 151554.461000 ], [ 562795.201000, 151587.242000 ], [ 562778.800000, 151799.100000 ], [ 562760.994000, 151835.777000 ], [ 562709.683000, 151877.110000 ], [ 562676.723000, 151916.484000 ], [ 562633.000000, 151952.400000 ], [ 562615.300000, 151991.500000 ], [ 562582.700000, 152026.300000 ], [ 562553.000000, 152084.300000 ], [ 562549.338000, 152105.334000 ], [ 562557.932000, 152138.554000 ], [ 562550.187000, 152179.599000 ], [ 562499.849000, 152250.072000 ], [ 562344.962000, 152421.222000 ], [ 562320.449000, 152460.878000 ], [ 562441.000000, 152418.600000 ], [ 562612.100000, 152334.800000 ], [ 562638.700000, 152314.800000 ], [ 562702.800000, 152241.500000 ], [ 562823.800000, 152171.300000 ], [ 562918.600000, 152130.600000 ], [ 562979.200000, 152094.500000 ], [ 562994.700000, 152090.300000 ], [ 563055.000000, 152104.000000 ], [ 563083.900000, 152094.000000 ], [ 563108.000000, 152070.600000 ], [ 563123.800000, 152064.000000 ], [ 563202.400000, 152061.800000 ], [ 563295.200000, 152047.100000 ], [ 563407.700000, 152055.900000 ], [ 563426.100000, 152047.500000 ], [ 563455.300000, 152008.000000 ], [ 563502.100000, 152005.700000 ], [ 563507.700000, 151996.900000 ], [ 563557.200000, 151982.600000 ], [ 563605.700000, 151990.900000 ], [ 563672.900000, 151976.900000 ], [ 563736.700000, 151997.700000 ], [ 563834.700000, 151981.900000 ], [ 563875.400000, 151999.900000 ], [ 563902.700000, 151998.400000 ], [ 563920.300000, 151988.700000 ], [ 563938.200000, 151958.100000 ], [ 563930.500000, 151877.500000 ], [ 564019.400000, 151799.600000 ], [ 564035.900000, 151801.100000 ], [ 564143.200000, 151897.100000 ], [ 564158.400000, 151894.900000 ], [ 564220.200000, 151831.100000 ], [ 564233.700000, 151829.100000 ], [ 564259.100000, 151843.500000 ], [ 564344.600000, 151927.500000 ], [ 564360.100000, 151934.400000 ], [ 564388.100000, 151921.600000 ], [ 564437.100000, 151843.100000 ], [ 564479.000000, 151818.000000 ], [ 564513.500000, 151809.900000 ], [ 564542.600000, 151809.700000 ], [ 564644.600000, 151844.400000 ], [ 564686.800000, 151844.900000 ], [ 564703.100000, 151841.900000 ], [ 564731.800000, 151813.100000 ], [ 564764.200000, 151816.100000 ], [ 564798.500000, 151828.600000 ], [ 564865.500000, 151801.400000 ], [ 564897.500000, 151801.400000 ], [ 564972.800000, 151815.900000 ], [ 565087.200000, 151792.600000 ], [ 565159.700000, 151810.900000 ], [ 565185.700000, 151810.900000 ], [ 565256.200000, 151794.600000 ], [ 565328.800000, 151797.900000 ], [ 565382.700000, 151774.100000 ], [ 565420.000000, 151772.500000 ], [ 565476.500000, 151755.900000 ], [ 565517.700000, 151723.700000 ], [ 565561.700000, 151673.300000 ], [ 565633.400000, 151552.800000 ], [ 565658.200000, 151482.200000 ], [ 565668.500000, 151368.600000 ], [ 565660.000000, 151361.800000 ], [ 565632.500000, 151373.300000 ], [ 565606.000000, 151373.100000 ], [ 565571.500000, 151342.300000 ], [ 565517.900000, 151310.800000 ], [ 565479.700000, 151271.600000 ], [ 565439.700000, 151260.600000 ], [ 565393.700000, 151261.800000 ], [ 565327.500000, 151288.600000 ], [ 565276.000000, 151349.800000 ], [ 565236.500000, 151350.100000 ], [ 565227.200000, 151340.300000 ], [ 565228.200000, 151324.600000 ], [ 565271.500000, 151269.700000 ], [ 565403.600000, 151177.900000 ], [ 565433.500000, 151167.100000 ], [ 565519.500000, 151172.600000 ], [ 565544.400000, 151158.400000 ], [ 565548.500000, 151136.100000 ], [ 565464.200000, 150980.800000 ], [ 565469.700000, 150960.800000 ], [ 565481.700000, 150961.300000 ], [ 565514.700000, 150981.800000 ], [ 565550.200000, 150973.400000 ], [ 565610.800000, 150980.700000 ], [ 565661.000000, 151012.900000 ], [ 565756.200000, 151051.600000 ], [ 565851.500000, 151113.200000 ], [ 565904.000000, 151202.300000 ], [ 565912.700000, 151254.600000 ], [ 565921.400000, 151270.600000 ], [ 565966.500000, 151283.600000 ], [ 565998.500000, 151301.500000 ], [ 566119.600000, 151400.600000 ], [ 566124.300000, 151423.300000 ], [ 566143.800000, 151461.300000 ], [ 566140.300000, 151501.600000 ], [ 566146.700000, 151559.600000 ], [ 566124.200000, 151640.400000 ], [ 566093.200000, 151672.100000 ], [ 566094.700000, 151686.100000 ], [ 566133.000000, 151722.600000 ], [ 566134.200000, 151732.400000 ], [ 566089.700000, 151899.900000 ], [ 566262.900000, 152035.200000 ], [ 566303.400000, 152098.500000 ], [ 566312.500000, 152148.700000 ], [ 566272.400000, 152202.800000 ], [ 566217.400000, 152207.800000 ], [ 566186.700000, 152201.700000 ], [ 566155.100000, 152184.800000 ], [ 566129.100000, 152185.000000 ], [ 566068.700000, 152207.700000 ], [ 566037.200000, 152231.400000 ], [ 566026.700000, 152247.900000 ], [ 566026.700000, 152265.400000 ], [ 566079.700000, 152380.300000 ], [ 566110.500000, 152509.900000 ], [ 566108.700000, 152556.500000 ], [ 566094.700000, 152586.000000 ], [ 566057.500000, 152631.000000 ], [ 566037.700000, 152711.200000 ], [ 566043.000000, 152765.900000 ], [ 566071.400000, 152888.300000 ], [ 566110.700000, 152968.200000 ], [ 566108.900000, 152987.400000 ], [ 566125.300000, 153048.600000 ], [ 566116.300000, 153065.400000 ], [ 566103.400000, 153068.500000 ], [ 566078.100000, 153059.100000 ], [ 566015.200000, 153062.700000 ], [ 565919.100000, 153088.700000 ], [ 565849.300000, 153097.100000 ], [ 565682.800000, 153167.100000 ], [ 565657.500000, 153191.900000 ], [ 565615.200000, 153192.900000 ], [ 565543.479000, 153218.688000 ], [ 565512.600000, 153208.700000 ], [ 565504.500000, 153224.000000 ], [ 565518.900000, 153262.800000 ], [ 565492.300000, 153377.400000 ], [ 565492.100000, 153425.700000 ], [ 565483.600000, 153436.900000 ], [ 565503.300000, 153555.300000 ], [ 565498.900000, 153733.900000 ], [ 565531.600000, 153883.700000 ], [ 565527.800000, 153932.300000 ], [ 565535.400000, 153962.400000 ], [ 565517.400000, 154046.900000 ], [ 565537.100000, 154100.000000 ], [ 565540.600000, 154159.700000 ], [ 565536.100000, 154165.200000 ], [ 565527.100000, 154161.500000 ], [ 565505.300000, 154111.700000 ], [ 565497.100000, 154118.200000 ], [ 565490.200000, 154165.800000 ], [ 565498.800000, 154186.000000 ], [ 565547.800000, 154206.800000 ], [ 565571.100000, 154271.500000 ], [ 565568.000000, 154287.600000 ], [ 565632.700000, 154345.800000 ], [ 565674.400000, 154436.200000 ], [ 565675.700000, 154491.400000 ], [ 565683.400000, 154507.300000 ], [ 565714.700000, 154523.300000 ], [ 565756.200000, 154519.500000 ], [ 565742.700000, 154593.300000 ], [ 565784.500000, 154604.400000 ], [ 565807.200000, 154617.300000 ], [ 565830.700000, 154603.800000 ], [ 565884.200000, 154639.500000 ], [ 565902.600000, 154677.400000 ], [ 565969.400000, 154712.400000 ], [ 566005.800000, 154764.500000 ], [ 566041.500000, 154883.100000 ], [ 566086.100000, 154866.900000 ], [ 566098.800000, 154872.700000 ], [ 566147.200000, 154903.100000 ], [ 566271.900000, 155019.900000 ], [ 566314.800000, 155149.700000 ], [ 566437.800000, 155346.500000 ], [ 566483.500000, 155461.500000 ], [ 566511.600000, 155559.300000 ], [ 566503.100000, 155592.500000 ], [ 566516.200000, 155622.000000 ], [ 566523.000000, 155661.300000 ], [ 566524.400000, 155698.800000 ], [ 566499.600000, 155742.000000 ], [ 566500.900000, 155762.000000 ], [ 566520.900000, 155776.500000 ], [ 566559.100000, 155754.500000 ], [ 566568.900000, 155783.800000 ], [ 566586.200000, 155807.300000 ], [ 566594.200000, 155844.500000 ], [ 566612.400000, 155855.300000 ], [ 566662.700000, 155862.900000 ], [ 566688.800000, 155880.400000 ], [ 566699.200000, 155896.400000 ], [ 566741.500000, 155921.300000 ], [ 566751.700000, 155940.600000 ], [ 566804.100000, 155961.400000 ], [ 566837.400000, 155983.100000 ], [ 566969.263000, 156015.759000 ], [ 567006.083000, 156019.441000 ], [ 567039.956000, 155998.086000 ], [ 567102.100000, 155996.200000 ], [ 567137.500000, 156023.000000 ], [ 567246.800000, 156073.800000 ], [ 567312.700000, 156096.300000 ], [ 567345.500000, 156077.800000 ], [ 567379.200000, 156043.800000 ], [ 567420.200000, 156020.500000 ], [ 567452.500000, 156024.300000 ], [ 567467.600000, 156010.300000 ], [ 567551.600000, 156007.800000 ], [ 567632.600000, 156034.400000 ], [ 567734.400000, 156053.600000 ], [ 567799.300000, 156080.600000 ], [ 567828.800000, 156108.900000 ], [ 567897.400000, 156148.800000 ], [ 567900.900000, 156213.200000 ], [ 567940.800000, 156337.200000 ], [ 567940.900000, 156391.300000 ], [ 567962.400000, 156525.100000 ], [ 568020.200000, 156691.500000 ], [ 568052.500000, 156720.100000 ], [ 568102.800000, 156784.400000 ], [ 568097.200000, 156831.500000 ], [ 568050.800000, 156938.800000 ], [ 568053.700000, 157033.700000 ], [ 568063.400000, 157099.400000 ], [ 568090.200000, 157190.300000 ], [ 568135.100000, 157267.100000 ], [ 568152.600000, 157360.200000 ], [ 568183.400000, 157472.800000 ], [ 568217.600000, 157507.100000 ], [ 568226.900000, 157525.500000 ], [ 568207.200000, 157557.900000 ], [ 568192.800000, 157637.700000 ], [ 568174.700000, 157750.900000 ], [ 568172.800000, 157854.200000 ], [ 568195.600000, 157930.600000 ], [ 568199.100000, 157976.900000 ], [ 568256.900000, 158022.200000 ], [ 568235.929000, 158081.340000 ], [ 568257.400000, 158078.200000 ], [ 568303.300000, 158095.100000 ], [ 568366.700000, 158099.600000 ], [ 568385.800000, 158078.900000 ], [ 568396.100000, 158040.800000 ], [ 568414.300000, 158012.500000 ], [ 568490.000000, 157945.500000 ], [ 568538.900000, 157937.600000 ], [ 568594.400000, 157900.200000 ], [ 568591.300000, 157865.500000 ], [ 568565.400000, 157841.200000 ], [ 568570.600000, 157813.900000 ], [ 568553.800000, 157739.300000 ], [ 568578.700000, 157670.400000 ], [ 568572.500000, 157627.500000 ], [ 568605.300000, 157552.500000 ], [ 568687.800000, 157544.000000 ], [ 568744.800000, 157592.300000 ], [ 568759.100000, 157595.200000 ], [ 568791.900000, 157580.900000 ], [ 568833.900000, 157626.200000 ], [ 568890.700000, 157634.400000 ], [ 568919.100000, 157666.600000 ], [ 569000.500000, 157677.500000 ], [ 569096.900000, 157671.300000 ], [ 569236.200000, 157629.700000 ], [ 569368.000000, 157637.500000 ], [ 569409.000000, 157647.000000 ], [ 569421.300000, 157641.100000 ], [ 569419.400000, 157628.300000 ], [ 569388.700000, 157582.200000 ], [ 569369.800000, 157533.400000 ], [ 569337.900000, 157410.100000 ], [ 569296.200000, 157157.600000 ], [ 569214.800000, 157014.400000 ], [ 569207.100000, 156977.400000 ], [ 569215.000000, 156791.700000 ], [ 569239.300000, 156765.900000 ], [ 569303.700000, 156733.100000 ], [ 569355.100000, 156655.500000 ], [ 569375.000000, 156589.700000 ], [ 569390.300000, 156470.700000 ], [ 569404.500000, 156454.700000 ], [ 569415.800000, 156452.200000 ], [ 569443.000000, 156467.000000 ], [ 569469.000000, 156505.200000 ], [ 569505.300000, 156598.000000 ], [ 569498.200000, 156637.700000 ], [ 569543.400000, 156702.200000 ], [ 569588.300000, 156720.800000 ], [ 569680.900000, 156714.700000 ], [ 569751.600000, 156722.000000 ], [ 569739.100000, 156824.700000 ], [ 569746.762000, 156860.981000 ], [ 569767.100000, 156884.700000 ], [ 569802.600000, 156870.500000 ], [ 569832.100000, 156871.500000 ], [ 569863.900000, 156899.500000 ], [ 569890.600000, 156941.500000 ], [ 569928.400000, 157042.500000 ], [ 569972.100000, 157032.200000 ], [ 570037.400000, 157034.100000 ], [ 570081.300000, 157024.300000 ], [ 570107.400000, 157045.900000 ], [ 570109.000000, 157099.100000 ], [ 570125.500000, 157143.300000 ], [ 570141.900000, 157218.600000 ], [ 570157.000000, 157250.400000 ], [ 570287.700000, 157249.500000 ], [ 570381.100000, 157239.600000 ], [ 570409.100000, 157223.100000 ], [ 570498.500000, 157237.800000 ], [ 570545.000000, 157212.600000 ], [ 570591.800000, 157213.000000 ], [ 570602.500000, 157206.200000 ], [ 570625.500000, 157163.500000 ], [ 570636.500000, 157161.700000 ], [ 570644.400000, 157167.500000 ], [ 570640.800000, 157214.300000 ], [ 570642.000000, 157243.500000 ], [ 570646.700000, 157246.800000 ], [ 570657.500000, 157241.100000 ], [ 570697.100000, 157192.000000 ], [ 570725.500000, 157141.000000 ], [ 570746.200000, 157127.200000 ], [ 570760.200000, 157102.300000 ], [ 570767.500000, 157069.600000 ], [ 570761.300000, 157015.700000 ], [ 570750.100000, 156984.200000 ], [ 570757.600000, 156972.100000 ], [ 570765.900000, 156972.500000 ], [ 570780.000000, 156999.100000 ], [ 570818.100000, 157189.900000 ], [ 570829.400000, 157210.600000 ], [ 570860.100000, 157237.100000 ], [ 570857.000000, 157255.700000 ], [ 570826.900000, 157275.200000 ], [ 570820.900000, 157297.700000 ], [ 570827.200000, 157315.500000 ], [ 570858.300000, 157356.000000 ], [ 570864.200000, 157398.700000 ], [ 570871.800000, 157413.100000 ], [ 570900.800000, 157445.400000 ], [ 570906.300000, 157511.900000 ], [ 570933.700000, 157552.900000 ], [ 570942.900000, 157584.400000 ], [ 570946.700000, 157614.900000 ], [ 570939.900000, 157687.000000 ], [ 570897.100000, 157720.500000 ], [ 570881.600000, 157741.800000 ], [ 570881.600000, 157754.100000 ], [ 570889.200000, 157755.300000 ], [ 570920.300000, 157735.400000 ], [ 570955.000000, 157757.100000 ], [ 570972.000000, 157756.900000 ], [ 570986.600000, 157750.300000 ], [ 571016.800000, 157715.300000 ], [ 571068.400000, 157710.900000 ], [ 571108.600000, 157724.500000 ], [ 571133.700000, 157716.300000 ], [ 571149.700000, 157644.900000 ], [ 571133.700000, 157613.500000 ], [ 571141.300000, 157600.200000 ], [ 571157.300000, 157613.600000 ], [ 571164.900000, 157632.700000 ], [ 571183.300000, 157730.900000 ], [ 571256.400000, 157796.900000 ], [ 571277.500000, 157807.700000 ], [ 571277.400000, 157792.500000 ], [ 571256.600000, 157763.400000 ], [ 571256.200000, 157722.000000 ], [ 571263.900000, 157698.600000 ], [ 571273.300000, 157690.800000 ], [ 571309.700000, 157681.500000 ], [ 571295.700000, 157648.300000 ], [ 571304.400000, 157641.700000 ], [ 571359.900000, 157696.300000 ], [ 571368.200000, 157732.800000 ], [ 571401.200000, 157772.500000 ], [ 571483.100000, 157843.700000 ], [ 571641.500000, 157939.200000 ], [ 571649.600000, 157953.700000 ], [ 571644.300000, 157994.900000 ], [ 571650.800000, 158000.800000 ], [ 571692.742000, 157963.639000 ], [ 571757.400000, 157975.100000 ], [ 571778.900000, 157991.600000 ], [ 571776.900000, 158007.000000 ], [ 571713.900000, 158087.300000 ], [ 571706.300000, 158101.000000 ], [ 571708.200000, 158121.300000 ], [ 571702.100000, 158136.200000 ], [ 571654.182000, 158214.249000 ], [ 571675.200000, 158255.300000 ], [ 571702.100000, 158278.400000 ], [ 571742.100000, 158304.100000 ], [ 571783.100000, 158317.200000 ], [ 571869.300000, 158294.400000 ], [ 571930.600000, 158296.900000 ], [ 571967.700000, 158275.300000 ], [ 572012.700000, 158286.600000 ], [ 572055.600000, 158282.300000 ], [ 572114.200000, 158325.200000 ], [ 572135.800000, 158329.800000 ], [ 572183.300000, 158326.800000 ], [ 572236.100000, 158358.200000 ], [ 572331.800000, 158400.300000 ], [ 572393.400000, 158437.500000 ], [ 572449.100000, 158499.100000 ], [ 572416.100000, 158543.300000 ], [ 572417.600000, 158587.000000 ], [ 572407.600000, 158608.800000 ], [ 572170.400000, 158714.500000 ], [ 572101.900000, 158794.500000 ], [ 572025.300000, 158827.900000 ], [ 571920.800000, 158926.000000 ], [ 571920.500000, 158966.100000 ], [ 571848.700000, 159118.200000 ], [ 571830.700000, 159192.200000 ], [ 571824.500000, 159324.100000 ], [ 571848.500000, 159404.800000 ], [ 571851.100000, 159434.400000 ], [ 572067.200000, 159846.200000 ], [ 572096.200000, 159945.700000 ], [ 572131.200000, 160000.700000 ], [ 572163.700000, 160070.900000 ], [ 572185.500000, 160107.700000 ], [ 572206.200000, 160126.700000 ], [ 572224.700000, 160132.900000 ], [ 572260.700000, 160222.300000 ], [ 572297.700000, 160279.500000 ], [ 572372.000000, 160356.800000 ], [ 572525.300000, 160448.400000 ], [ 572587.000000, 160513.600000 ], [ 572632.100000, 160586.900000 ], [ 572723.000000, 160614.000000 ], [ 572841.700000, 160700.800000 ], [ 572864.000000, 160707.800000 ], [ 572883.700000, 160705.500000 ], [ 572913.200000, 160689.000000 ], [ 573007.200000, 160613.400000 ], [ 573035.900000, 160599.500000 ], [ 573026.800000, 160578.500000 ], [ 573066.300000, 160584.500000 ], [ 573065.800000, 160596.700000 ], [ 573478.100000, 160953.700000 ], [ 573549.090000, 161008.631000 ], [ 573697.000000, 161048.400000 ], [ 573687.700000, 161090.600000 ], [ 573780.345000, 161145.400000 ], [ 573771.700000, 161167.900000 ], [ 573765.900000, 161257.500000 ], [ 573731.248000, 161281.356000 ], [ 573672.200000, 161295.200000 ], [ 573653.000000, 161312.400000 ], [ 573622.000000, 161391.400000 ], [ 573578.400000, 161365.000000 ], [ 573492.028000, 161288.337000 ], [ 573467.400000, 161314.300000 ], [ 573449.100000, 161356.100000 ], [ 573430.400000, 161374.600000 ], [ 573405.900000, 161384.900000 ], [ 573420.900000, 161409.600000 ], [ 573495.300000, 161475.700000 ], [ 573490.700000, 161522.000000 ], [ 573500.500000, 161618.900000 ], [ 573511.900000, 161670.300000 ], [ 573581.500000, 161766.900000 ], [ 573650.600000, 161816.300000 ], [ 573650.900000, 161826.300000 ], [ 573612.900000, 161904.600000 ], [ 573611.648000, 161960.347000 ], [ 573588.100000, 161966.200000 ], [ 573527.400000, 162022.000000 ], [ 573468.000000, 162180.100000 ], [ 573467.500000, 162199.100000 ], [ 573480.400000, 162236.900000 ], [ 573547.300000, 162323.800000 ], [ 573578.500000, 162341.100000 ], [ 573582.900000, 162363.300000 ], [ 573608.500000, 162406.100000 ], [ 573623.500000, 162456.800000 ], [ 573623.000000, 162476.100000 ], [ 573598.800000, 162557.100000 ], [ 573600.300000, 162573.800000 ], [ 573625.000000, 162598.300000 ], [ 573641.300000, 162602.300000 ], [ 573697.400000, 162598.000000 ], [ 573780.200000, 162527.000000 ], [ 573885.900000, 162423.800000 ], [ 573970.700000, 162368.300000 ], [ 574061.800000, 162325.900000 ], [ 574198.800000, 162078.800000 ], [ 574243.400000, 162073.500000 ], [ 574396.400000, 162027.200000 ], [ 574489.800000, 161968.000000 ], [ 574566.900000, 162076.700000 ], [ 574610.100000, 162099.000000 ], [ 574635.200000, 162103.000000 ], [ 574631.200000, 162121.500000 ], [ 574598.576000, 162157.908000 ], [ 574662.300000, 162136.700000 ], [ 574674.400000, 162152.000000 ], [ 574736.900000, 162158.700000 ], [ 574744.000000, 162151.700000 ], [ 574793.798000, 162155.100000 ], [ 574803.600000, 162177.000000 ], [ 574796.600000, 162214.000000 ], [ 574824.600000, 162284.700000 ], [ 574837.100000, 162306.700000 ], [ 574875.600000, 162336.500000 ], [ 574890.600000, 162397.700000 ], [ 574892.700000, 162544.000000 ], [ 574873.700000, 162575.500000 ], [ 574877.000000, 162611.200000 ], [ 574884.000000, 162641.600000 ], [ 574933.700000, 162685.000000 ], [ 574937.200000, 162696.000000 ], [ 574933.200000, 162772.000000 ], [ 574955.700000, 162837.200000 ], [ 574953.700000, 162872.200000 ], [ 575000.800000, 162902.700000 ], [ 574991.700000, 162977.500000 ], [ 575037.200000, 163290.900000 ], [ 575061.500000, 163281.700000 ], [ 575080.700000, 163221.900000 ], [ 575064.500000, 163143.900000 ], [ 575066.000000, 163121.200000 ], [ 575078.700000, 163110.200000 ], [ 575109.200000, 163105.900000 ], [ 575122.000000, 163095.400000 ], [ 575137.400000, 163037.500000 ], [ 575162.700000, 163002.900000 ], [ 575195.000000, 162978.700000 ], [ 575215.700000, 162913.700000 ], [ 575251.500000, 162865.200000 ], [ 575262.000000, 162804.200000 ], [ 575261.500000, 162667.400000 ], [ 575278.500000, 162643.400000 ], [ 575287.200000, 162609.200000 ], [ 575316.700000, 162567.200000 ], [ 575315.500000, 162455.700000 ], [ 575289.000000, 162411.100000 ], [ 575291.500000, 162398.100000 ], [ 575354.000000, 162299.100000 ], [ 575392.000000, 162280.100000 ], [ 575423.700000, 162276.600000 ], [ 575558.200000, 162314.600000 ], [ 575630.400000, 162325.500000 ], [ 575663.500000, 162340.600000 ], [ 575738.700000, 162401.400000 ], [ 575771.400000, 162444.900000 ], [ 575905.400000, 162483.400000 ], [ 576128.200000, 162519.500000 ], [ 576226.200000, 162585.600000 ], [ 576265.000000, 162624.800000 ], [ 576381.700000, 162720.800000 ], [ 576453.800000, 162808.600000 ], [ 576495.500000, 162817.200000 ], [ 576548.700000, 162810.900000 ], [ 576577.500000, 162818.900000 ], [ 576621.000000, 162839.700000 ], [ 576685.700000, 162892.900000 ], [ 576712.000000, 162939.400000 ], [ 576750.500000, 162961.400000 ], [ 576771.700000, 162992.000000 ], [ 576764.200000, 163014.200000 ], [ 576716.000000, 163051.500000 ], [ 576699.200000, 163056.000000 ], [ 576704.500000, 163077.700000 ], [ 576750.200000, 163066.200000 ], [ 576781.000000, 163067.000000 ], [ 576818.700000, 163088.700000 ], [ 576833.500000, 163088.700000 ], [ 576882.700000, 163062.500000 ], [ 576936.200000, 163053.500000 ], [ 576986.500000, 163059.500000 ], [ 577074.800000, 163098.400000 ], [ 577131.700000, 163097.400000 ], [ 577156.600000, 163078.700000 ], [ 577179.700000, 163079.400000 ], [ 577185.100000, 163062.000000 ], [ 577240.477000, 163039.487000 ], [ 577229.200000, 163017.600000 ], [ 577118.000000, 162958.600000 ], [ 577089.200000, 162960.100000 ], [ 577053.700000, 162992.600000 ], [ 577035.700000, 162995.400000 ], [ 576961.200000, 162964.400000 ], [ 576910.500000, 162963.600000 ], [ 576899.200000, 162954.600000 ], [ 576898.700000, 162936.900000 ], [ 577010.400000, 162946.800000 ], [ 577047.900000, 162931.800000 ], [ 577114.800000, 162891.400000 ], [ 577135.200000, 162887.800000 ], [ 577219.400000, 162902.000000 ], [ 577438.400000, 163018.000000 ], [ 577469.400000, 163047.000000 ], [ 577494.000000, 163086.600000 ], [ 577524.900000, 163118.900000 ], [ 577589.400000, 163164.500000 ], [ 577656.500000, 163180.700000 ], [ 577681.700000, 163210.500000 ], [ 577698.500000, 163257.900000 ], [ 577726.800000, 163288.000000 ], [ 577804.400000, 163353.000000 ], [ 577968.500000, 163465.894000 ], [ 577968.899000, 163485.567000 ], [ 577979.500000, 163493.100000 ], [ 578012.500000, 163509.100000 ], [ 578053.700000, 163515.900000 ], [ 578093.500000, 163532.400000 ], [ 578121.500000, 163563.100000 ], [ 578127.200000, 163584.900000 ], [ 578168.000000, 163583.600000 ], [ 578229.500000, 163559.600000 ], [ 578303.500000, 163576.900000 ], [ 578390.700000, 163612.400000 ], [ 578428.200000, 163605.400000 ], [ 578450.205000, 163594.490000 ], [ 578446.300000, 163652.100000 ], [ 578454.200000, 163671.400000 ], [ 578522.500000, 163718.000000 ], [ 578524.100000, 163727.100000 ], [ 578498.800000, 163783.000000 ], [ 578513.200000, 163799.200000 ], [ 578554.597000, 163809.150000 ], [ 578636.400000, 163808.900000 ], [ 578674.600000, 163826.200000 ], [ 578753.100000, 163883.400000 ], [ 578772.600000, 163886.700000 ], [ 578800.100000, 163864.900000 ], [ 578832.600000, 163822.700000 ], [ 578864.900000, 163753.200000 ], [ 578882.600000, 163729.200000 ], [ 578908.100000, 163711.700000 ], [ 578967.300000, 163697.900000 ], [ 579018.600000, 163813.900000 ], [ 579065.800000, 163887.200000 ], [ 579128.500000, 164034.000000 ], [ 579155.600000, 164081.600000 ], [ 579198.300000, 164136.800000 ], [ 579196.100000, 164186.300000 ], [ 579270.100000, 164179.800000 ], [ 579322.800000, 164194.400000 ], [ 579384.600000, 164276.300000 ], [ 579449.700000, 164345.200000 ], [ 579506.900000, 164447.600000 ], [ 579532.500000, 164482.000000 ], [ 579594.700000, 164544.000000 ], [ 579750.400000, 164662.700000 ], [ 579773.303000, 164706.039000 ], [ 579824.600000, 164708.600000 ], [ 579853.900000, 164725.300000 ], [ 580007.600000, 164883.300000 ], [ 580109.100000, 164961.300000 ], [ 580203.900000, 165058.800000 ], [ 580296.800000, 165134.100000 ], [ 580305.700000, 165173.300000 ], [ 580376.100000, 165252.400000 ], [ 580393.700000, 165291.000000 ], [ 580413.500000, 165295.200000 ], [ 580422.200000, 165314.200000 ], [ 580497.900000, 165379.400000 ], [ 580585.700000, 165415.500000 ], [ 580642.800000, 165475.100000 ], [ 580656.700000, 165479.900000 ], [ 580684.800000, 165504.400000 ], [ 580829.900000, 165578.800000 ], [ 580910.600000, 165650.800000 ], [ 580944.600000, 165696.300000 ], [ 581030.900000, 165754.600000 ], [ 581080.100000, 165813.300000 ], [ 581109.900000, 165902.800000 ], [ 581153.800000, 165999.400000 ], [ 581130.300000, 165995.000000 ], [ 581174.700000, 166046.300000 ], [ 581384.800000, 166124.900000 ], [ 581405.200000, 166196.600000 ], [ 581395.900000, 166238.600000 ], [ 581380.200000, 166249.300000 ], [ 581320.400000, 166243.300000 ], [ 581297.700000, 166254.300000 ], [ 581306.400000, 166276.100000 ], [ 581344.900000, 166307.100000 ], [ 581357.200000, 166326.300000 ], [ 581356.400000, 166342.800000 ], [ 581346.900000, 166358.800000 ], [ 581304.600000, 166396.300000 ], [ 581242.800000, 166429.300000 ], [ 581179.400000, 166445.500000 ], [ 581151.300000, 166403.100000 ], [ 581105.800000, 166430.800000 ], [ 581050.800000, 166447.300000 ], [ 581003.600000, 166519.300000 ], [ 580968.800000, 166604.600000 ], [ 580961.600000, 166608.600000 ], [ 580934.700000, 166599.900000 ], [ 580958.100000, 166635.900000 ], [ 581000.700000, 166648.800000 ], [ 581020.400000, 166664.400000 ], [ 581040.000000, 166693.100000 ], [ 581056.700000, 166757.300000 ], [ 581075.200000, 166788.300000 ], [ 581231.500000, 166859.600000 ], [ 581280.500000, 166900.100000 ], [ 581348.700000, 166977.300000 ], [ 581489.000000, 166988.600000 ], [ 581565.000000, 166980.100000 ], [ 581626.700000, 166991.800000 ], [ 581643.700000, 167007.300000 ], [ 581657.000000, 167047.300000 ], [ 581680.000000, 167081.100000 ], [ 581733.500000, 167119.300000 ], [ 581808.500000, 167116.300000 ], [ 581852.500000, 167123.100000 ], [ 581879.200000, 167117.800000 ], [ 581898.200000, 167101.600000 ], [ 581930.200000, 167054.800000 ], [ 581953.800000, 167043.700000 ], [ 582099.500000, 167054.300000 ], [ 582146.000000, 167051.100000 ], [ 582197.200000, 167026.300000 ], [ 582272.900000, 166965.400000 ], [ 582314.700000, 166942.100000 ], [ 582381.000000, 166922.300000 ], [ 582422.000000, 166925.100000 ], [ 582461.500000, 166904.800000 ], [ 582507.700000, 166907.100000 ], [ 582588.000000, 166924.800000 ], [ 582641.000000, 166922.300000 ], [ 582788.500000, 166831.300000 ], [ 582844.000000, 166803.800000 ], [ 582870.500000, 166796.300000 ], [ 582908.200000, 166799.600000 ], [ 582948.200000, 166770.800000 ], [ 582979.000000, 166767.600000 ], [ 583003.700000, 166768.300000 ], [ 583052.500000, 166796.600000 ], [ 583108.700000, 166940.300000 ], [ 583131.200000, 166964.300000 ], [ 583216.200000, 167026.100000 ], [ 583243.200000, 167090.300000 ], [ 583257.500000, 167100.800000 ], [ 583306.000000, 167057.600000 ], [ 583349.700000, 167038.300000 ], [ 583349.000000, 167014.600000 ], [ 583358.200000, 166989.800000 ], [ 583420.200000, 166907.300000 ], [ 583444.700000, 166857.800000 ], [ 583478.700000, 166859.100000 ], [ 583501.000000, 166869.800000 ], [ 583549.200000, 166878.800000 ], [ 583562.700000, 166814.300000 ], [ 583608.700000, 166773.100000 ], [ 583685.400000, 166744.500000 ], [ 583711.900000, 166680.700000 ], [ 583725.100000, 166668.200000 ], [ 583746.600000, 166674.500000 ], [ 583757.500000, 166662.300000 ], [ 583752.200000, 166643.100000 ], [ 583760.000000, 166624.100000 ], [ 583807.300000, 166567.400000 ], [ 583814.500000, 166568.800000 ], [ 583816.900000, 166630.000000 ], [ 583850.100000, 166639.200000 ], [ 583880.600000, 166635.800000 ], [ 583905.000000, 166610.500000 ], [ 584057.900000, 166596.500000 ], [ 584077.400000, 166586.200000 ], [ 584079.600000, 166576.600000 ], [ 584253.700000, 166597.300000 ], [ 584309.200000, 166592.800000 ], [ 584326.700000, 166610.800000 ], [ 584391.500000, 166600.800000 ], [ 584429.700000, 166603.100000 ], [ 584498.000000, 166628.600000 ], [ 584522.500000, 166625.100000 ], [ 584569.200000, 166648.300000 ], [ 584622.700000, 166655.300000 ], [ 584638.500000, 166678.800000 ], [ 584678.200000, 166703.600000 ], [ 584749.700000, 166773.600000 ], [ 584820.200000, 166796.800000 ], [ 584932.200000, 166882.600000 ], [ 585000.000000, 166949.800000 ], [ 585046.900000, 166969.000000 ], [ 585157.400000, 167036.500000 ], [ 585257.600000, 167051.900000 ], [ 585376.700000, 167083.300000 ], [ 585433.400000, 167152.900000 ], [ 585497.700000, 167174.000000 ], [ 585575.000000, 167166.800000 ], [ 585591.400000, 167172.300000 ], [ 585624.600000, 167201.200000 ], [ 585672.500000, 167209.200000 ], [ 585721.600000, 167242.400000 ], [ 585783.300000, 167250.800000 ], [ 585912.700000, 167289.600000 ], [ 585963.700000, 167326.300000 ], [ 586017.300000, 167354.500000 ], [ 586150.900000, 167423.700000 ], [ 586208.300000, 167441.400000 ], [ 586248.800000, 167469.700000 ], [ 586304.400000, 167495.600000 ], [ 586367.000000, 167512.700000 ], [ 586399.700000, 167513.400000 ], [ 586491.900000, 167461.300000 ], [ 586522.400000, 167409.100000 ], [ 586524.600000, 167378.400000 ], [ 586499.400000, 167307.500000 ], [ 586522.400000, 167330.700000 ], [ 586557.100000, 167384.200000 ], [ 586593.600000, 167453.200000 ], [ 586638.600000, 167498.000000 ], [ 586639.400000, 167510.000000 ], [ 586614.900000, 167535.200000 ], [ 586613.900000, 167552.700000 ], [ 586693.600000, 167546.400000 ], [ 586709.000000, 167536.400000 ], [ 586715.800000, 167545.100000 ], [ 586709.900000, 167557.600000 ], [ 586673.600000, 167591.700000 ], [ 586630.600000, 167614.000000 ], [ 586610.900000, 167650.700000 ], [ 586702.100000, 167652.500000 ], [ 586734.800000, 167683.600000 ], [ 586793.100000, 167711.300000 ], [ 586844.000000, 167756.300000 ], [ 586857.400000, 167763.200000 ], [ 586893.300000, 167764.900000 ], [ 586931.800000, 167829.900000 ], [ 586994.300000, 167882.800000 ], [ 587027.700000, 167897.800000 ], [ 587063.900000, 167928.500000 ], [ 587114.900000, 167947.200000 ], [ 587181.600000, 167955.000000 ], [ 587244.600000, 167952.200000 ], [ 587272.100000, 167944.500000 ], [ 587286.500000, 167996.300000 ], [ 587448.900000, 168268.700000 ], [ 587467.500000, 168352.500000 ], [ 587491.300000, 168388.500000 ], [ 587510.000000, 168407.300000 ], [ 587546.000000, 168428.000000 ], [ 587854.000000, 168568.800000 ], [ 588087.500000, 168806.800000 ], [ 588121.300000, 168829.300000 ], [ 588162.500000, 168845.500000 ], [ 588216.000000, 168849.500000 ], [ 588364.500000, 168816.100000 ], [ 588404.800000, 168814.500000 ], [ 588659.500000, 168865.000000 ], [ 588681.700000, 168880.600000 ], [ 588886.700000, 168688.900000 ], [ 588900.600000, 168660.900000 ], [ 588916.200000, 168646.200000 ], [ 588927.800000, 168612.700000 ], [ 588950.000000, 168584.600000 ], [ 588992.300000, 168547.800000 ], [ 588996.500000, 168537.000000 ], [ 588971.900000, 168514.000000 ], [ 588932.800000, 168440.500000 ], [ 588984.100000, 168435.700000 ], [ 589014.100000, 168399.800000 ], [ 588954.600000, 168362.500000 ], [ 588949.800000, 168352.300000 ], [ 588935.900000, 168300.700000 ], [ 588957.600000, 168259.700000 ], [ 588965.900000, 168227.700000 ], [ 588960.900000, 168216.500000 ], [ 588907.900000, 168166.700000 ], [ 588911.600000, 168151.700000 ], [ 588944.900000, 168129.400000 ], [ 588977.200000, 168116.900000 ], [ 589105.100000, 168094.000000 ], [ 589161.400000, 168094.700000 ], [ 589188.600000, 168087.500000 ], [ 589212.100000, 168071.200000 ], [ 589247.600000, 167967.600000 ], [ 589247.400000, 167947.700000 ], [ 589270.800000, 167870.700000 ], [ 589271.300000, 167835.100000 ], [ 589285.400000, 167808.200000 ], [ 589301.600000, 167795.200000 ], [ 589345.900000, 167802.000000 ], [ 589359.200000, 167796.400000 ], [ 589345.300000, 167738.300000 ], [ 589349.800000, 167672.000000 ], [ 589337.800000, 167624.500000 ], [ 589343.900000, 167611.300000 ], [ 589367.500000, 167645.700000 ], [ 589380.500000, 167647.500000 ], [ 589432.200000, 167614.700000 ], [ 589735.200000, 167584.200000 ], [ 589754.200000, 167592.700000 ], [ 589793.500000, 167635.500000 ], [ 589810.600000, 167660.000000 ], [ 589824.800000, 167705.000000 ], [ 589858.200000, 167747.400000 ], [ 589881.500000, 167758.500000 ], [ 589920.200000, 167761.500000 ], [ 589939.000000, 167772.000000 ], [ 589945.000000, 167884.000000 ], [ 589964.200000, 167968.900000 ], [ 589936.500000, 168024.200000 ], [ 589942.500000, 168027.000000 ], [ 589966.100000, 168011.500000 ], [ 589998.800000, 168025.100000 ], [ 590014.200000, 168044.100000 ], [ 590024.300000, 168043.200000 ], [ 590072.400000, 167958.000000 ], [ 590074.600000, 167917.200000 ], [ 590092.900000, 167936.200000 ], [ 590111.400000, 167937.700000 ], [ 590168.100000, 167905.500000 ], [ 590194.900000, 167931.500000 ], [ 590207.400000, 167935.500000 ], [ 590313.400000, 167943.500000 ], [ 590457.500000, 167968.900000 ], [ 590545.200000, 168006.100000 ], [ 590584.000000, 168009.800000 ], [ 590596.500000, 168000.500000 ], [ 590638.300000, 168044.800000 ], [ 590722.100000, 168098.600000 ], [ 590809.600000, 168133.600000 ], [ 590832.900000, 168134.000000 ], [ 590822.200000, 168090.800000 ], [ 590824.200000, 168076.500000 ], [ 590873.200000, 167982.300000 ], [ 590829.400000, 167949.800000 ], [ 590808.500000, 167856.300000 ], [ 590815.000000, 167835.400000 ], [ 590896.500000, 167902.500000 ], [ 590975.200000, 167904.000000 ], [ 591085.500000, 167968.800000 ], [ 591116.200000, 167994.800000 ], [ 591146.300000, 168036.400000 ], [ 591177.500000, 168178.000000 ], [ 591208.300000, 168248.200000 ], [ 591261.000000, 168273.500000 ], [ 591310.000000, 168337.800000 ], [ 591339.500000, 168363.300000 ], [ 591368.000000, 168367.500000 ], [ 591398.700000, 168362.000000 ], [ 591412.500000, 168371.000000 ], [ 591428.000000, 168401.500000 ], [ 591439.000000, 168402.800000 ], [ 591470.200000, 168359.800000 ], [ 591508.200000, 168351.800000 ], [ 591539.700000, 168372.000000 ], [ 591588.500000, 168418.800000 ], [ 591593.700000, 168435.000000 ], [ 591579.100000, 168472.600000 ], [ 591541.100000, 168484.000000 ], [ 591514.600000, 168509.300000 ], [ 591492.400000, 168508.400000 ], [ 591493.600000, 168536.600000 ], [ 591533.600000, 168590.100000 ], [ 591567.200000, 168613.200000 ], [ 591609.600000, 168670.600000 ], [ 591637.000000, 168776.000000 ], [ 591663.900000, 168815.400000 ], [ 591721.900000, 168853.600000 ], [ 591738.600000, 168891.400000 ], [ 591811.900000, 168930.400000 ], [ 591835.600000, 168954.400000 ], [ 591865.400000, 169015.900000 ], [ 591879.100000, 169075.100000 ], [ 591892.500000, 169105.600000 ], [ 591908.600000, 169110.500000 ], [ 591927.700000, 169105.400000 ], [ 591945.500000, 169090.900000 ], [ 591962.700000, 169062.600000 ], [ 591969.700000, 169061.400000 ], [ 591974.200000, 169067.900000 ], [ 591962.200000, 169103.400000 ], [ 591965.700000, 169126.600000 ], [ 591976.500000, 169135.600000 ], [ 592022.200000, 169143.400000 ], [ 592039.000000, 169164.200000 ], [ 592045.000000, 169190.400000 ], [ 592058.000000, 169208.600000 ], [ 592068.200000, 169204.100000 ], [ 592063.700000, 169169.600000 ], [ 592083.700000, 169150.400000 ], [ 592086.000000, 169102.600000 ], [ 592096.000000, 169063.900000 ], [ 592093.200000, 169018.900000 ], [ 592108.700000, 168950.600000 ], [ 592118.000000, 168953.100000 ], [ 592137.700000, 168988.400000 ], [ 592170.200000, 169018.900000 ], [ 592190.500000, 169053.100000 ], [ 592231.200000, 169075.100000 ], [ 592264.200000, 169071.100000 ], [ 592319.200000, 169089.600000 ], [ 592341.900000, 169113.800000 ], [ 592362.100000, 169079.700000 ], [ 592366.600000, 169060.200000 ], [ 592365.100000, 169012.500000 ], [ 592342.600000, 168990.200000 ], [ 592341.600000, 168979.000000 ], [ 592462.600000, 169009.700000 ], [ 592483.400000, 169025.700000 ], [ 592522.600000, 169074.300000 ], [ 592530.600000, 169098.500000 ], [ 592536.900000, 169094.500000 ], [ 592535.600000, 169053.000000 ], [ 592544.900000, 169016.000000 ], [ 592545.600000, 168980.000000 ], [ 592558.700000, 168973.500000 ], [ 592561.700000, 169000.300000 ], [ 592579.200000, 169032.800000 ], [ 592578.500000, 169071.000000 ], [ 592611.200000, 169128.000000 ], [ 592760.700000, 169328.300000 ], [ 592803.500000, 169353.500000 ], [ 592862.000000, 169422.300000 ], [ 592913.700000, 169501.800000 ], [ 592956.200000, 169522.500000 ], [ 592985.500000, 169549.800000 ], [ 593050.500000, 169563.000000 ], [ 593158.100000, 169631.000000 ], [ 593210.500000, 169667.700000 ], [ 593322.800000, 169777.300000 ], [ 593352.600000, 169831.000000 ], [ 593380.300000, 169865.400000 ], [ 593413.200000, 169947.000000 ], [ 593458.032000, 170005.245000 ], [ 593442.600000, 170063.100000 ], [ 593444.900000, 170087.900000 ], [ 593451.600000, 170107.600000 ], [ 593499.900000, 170173.400000 ], [ 593516.900000, 170211.600000 ], [ 593508.600000, 170239.100000 ], [ 593471.400000, 170273.900000 ], [ 593462.900000, 170295.900000 ], [ 593467.900000, 170399.600000 ], [ 593460.100000, 170441.900000 ], [ 593444.600000, 170450.500000 ], [ 593361.000000, 170449.600000 ], [ 593296.500000, 170477.700000 ], [ 593252.400000, 170511.500000 ], [ 593194.500000, 170588.000000 ], [ 593189.400000, 170648.400000 ], [ 593171.400000, 170690.100000 ], [ 593168.300000, 170714.700000 ], [ 593166.700000, 170774.500000 ], [ 593178.600000, 170834.900000 ], [ 593175.900000, 170848.900000 ], [ 593107.600000, 170964.900000 ], [ 593083.700000, 171130.500000 ], [ 593054.900000, 171223.400000 ], [ 593052.800000, 171356.300000 ], [ 593085.900000, 171440.800000 ], [ 593092.000000, 171474.400000 ], [ 593089.900000, 171513.200000 ], [ 593081.800000, 171550.100000 ], [ 592968.700000, 171862.100000 ], [ 592963.800000, 171966.900000 ], [ 592957.400000, 171986.400000 ], [ 592972.100000, 172043.600000 ], [ 592968.400000, 172098.700000 ], [ 593026.100000, 172295.100000 ], [ 593039.100000, 172317.400000 ], [ 593070.500000, 172341.600000 ], [ 593101.600000, 172379.400000 ], [ 593132.000000, 172441.400000 ], [ 593147.900000, 172552.600000 ], [ 593171.300000, 172585.000000 ], [ 593189.200000, 172596.800000 ], [ 593224.600000, 172650.600000 ], [ 593216.000000, 172703.100000 ], [ 593224.400000, 172791.100000 ], [ 593246.400000, 172846.400000 ], [ 593254.600000, 172941.900000 ], [ 593289.900000, 173046.800000 ], [ 593295.500000, 173205.000000 ], [ 593326.300000, 173297.900000 ], [ 593361.451000, 173352.302000 ], [ 593378.100000, 173396.500000 ], [ 593381.600000, 173471.400000 ], [ 593358.500000, 173473.700000 ], [ 593373.000000, 173530.400000 ], [ 593396.000000, 173580.700000 ], [ 593396.500000, 173639.100000 ], [ 593386.300000, 173668.100000 ], [ 593300.300000, 173790.700000 ], [ 593260.500000, 173834.000000 ], [ 593199.400000, 173886.000000 ], [ 593181.100000, 173913.600000 ], [ 593146.800000, 174052.400000 ], [ 593157.000000, 174098.100000 ], [ 593155.000000, 174127.600000 ], [ 593117.350000, 174162.451000 ], [ 593096.300000, 174172.900000 ], [ 593070.800000, 174171.400000 ], [ 592992.800000, 174092.900000 ], [ 592957.700000, 174071.700000 ], [ 592882.200000, 174048.300000 ], [ 592798.100000, 174046.500000 ], [ 592748.500000, 174076.100000 ], [ 592660.000000, 174062.100000 ], [ 592606.300000, 174076.400000 ], [ 592538.800000, 174082.900000 ], [ 592508.500000, 174108.100000 ], [ 592490.800000, 174132.300000 ], [ 592485.800000, 174201.300000 ], [ 592424.500000, 174252.400000 ], [ 592420.400000, 174310.100000 ], [ 592399.500000, 174354.900000 ], [ 592378.000000, 174373.600000 ], [ 592335.300000, 174389.100000 ], [ 592322.000000, 174388.900000 ], [ 592277.000000, 174360.600000 ], [ 592240.000000, 174356.400000 ], [ 592191.300000, 174358.600000 ], [ 592118.800000, 174383.400000 ], [ 592052.300000, 174444.100000 ], [ 591978.300000, 174528.600000 ], [ 591970.800000, 174555.600000 ], [ 591970.500000, 174626.100000 ], [ 591962.300000, 174647.600000 ], [ 591946.500000, 174664.100000 ], [ 591923.300000, 174668.400000 ], [ 591873.100000, 174626.400000 ], [ 591816.300000, 174627.900000 ], [ 591770.300000, 174617.100000 ], [ 591672.500000, 174562.400000 ], [ 591655.500000, 174560.100000 ], [ 591630.500000, 174579.100000 ], [ 591558.100000, 174672.000000 ], [ 591531.700000, 174717.100000 ], [ 591520.500000, 174728.900000 ], [ 591496.900000, 174738.400000 ], [ 591508.100000, 174754.900000 ], [ 591523.900000, 174757.600000 ], [ 591656.900000, 174729.500000 ], [ 591704.600000, 174727.500000 ], [ 591745.400000, 174738.000000 ], [ 591798.600000, 174762.600000 ], [ 591833.100000, 174801.100000 ], [ 591855.100000, 174810.900000 ], [ 591943.900000, 174819.400000 ], [ 592001.100000, 174801.400000 ], [ 592028.900000, 174816.100000 ], [ 592044.600000, 174817.100000 ], [ 592075.600000, 174801.600000 ], [ 592088.100000, 174784.600000 ], [ 592089.100000, 174690.600000 ], [ 592102.100000, 174650.200000 ], [ 592132.900000, 174629.200000 ], [ 592167.400000, 174626.000000 ], [ 592201.100000, 174652.700000 ], [ 592209.400000, 174684.200000 ], [ 592190.600000, 174783.700000 ], [ 592194.900000, 174837.400000 ], [ 592259.400000, 174900.100000 ], [ 592290.900000, 174966.600000 ], [ 592301.100000, 174974.900000 ], [ 592325.600000, 174978.900000 ], [ 592367.400000, 174950.100000 ], [ 592384.100000, 174947.900000 ], [ 592494.000000, 174990.000000 ], [ 592515.100000, 174995.800000 ], [ 592536.600000, 174993.600000 ], [ 592548.900000, 174983.600000 ], [ 592572.100000, 174942.900000 ], [ 592620.800000, 174936.300000 ], [ 592634.100000, 174927.100000 ], [ 592641.400000, 174869.900000 ], [ 592650.100000, 174857.400000 ], [ 592676.100000, 174853.600000 ], [ 592717.400000, 174868.900000 ], [ 592743.100000, 174891.600000 ], [ 592778.000000, 174943.200000 ], [ 592835.900000, 174982.300000 ], [ 592860.400000, 175014.400000 ], [ 592869.600000, 175053.400000 ], [ 592837.100000, 175136.400000 ], [ 592850.900000, 175161.100000 ], [ 592903.700000, 175202.000000 ], [ 592958.400000, 175303.600000 ], [ 593044.400000, 175376.000000 ], [ 593078.800000, 175432.400000 ], [ 593108.900000, 175441.100000 ], [ 593167.400000, 175442.400000 ], [ 593213.400000, 175469.400000 ], [ 593232.100000, 175468.900000 ], [ 593274.200000, 175453.800000 ], [ 593305.000000, 175438.100000 ], [ 593348.200000, 175394.200000 ], [ 593394.900000, 175388.400000 ], [ 593441.100000, 175359.900000 ], [ 593460.500000, 175358.000000 ], [ 593481.700000, 175366.400000 ], [ 593532.300000, 175398.000000 ], [ 593592.900000, 175394.500000 ], [ 593644.800000, 175402.900000 ], [ 593705.500000, 175394.800000 ], [ 593736.200000, 175360.000000 ], [ 593780.900000, 175286.700000 ], [ 593847.500000, 175216.900000 ], [ 593891.500000, 175182.400000 ], [ 593929.900000, 175157.300000 ], [ 593950.900000, 175151.900000 ], [ 594016.600000, 175164.900000 ], [ 594080.900000, 175208.100000 ], [ 594114.400000, 175220.600000 ], [ 594139.100000, 175240.600000 ], [ 594191.100000, 175334.600000 ], [ 594195.522000, 175384.801000 ], [ 594238.600000, 175430.500000 ], [ 594265.600000, 175489.100000 ], [ 594293.600000, 175518.600000 ], [ 594352.100000, 175522.600000 ], [ 594399.400000, 175554.600000 ], [ 594438.100000, 175567.600000 ], [ 594510.100000, 175561.400000 ], [ 594567.100000, 175538.100000 ], [ 594624.900000, 175536.900000 ], [ 594695.300000, 175526.400000 ], [ 594750.600000, 175570.200000 ], [ 594783.200000, 175627.800000 ], [ 594785.463000, 175644.742000 ], [ 594777.788000, 175667.788000 ], [ 594594.307000, 175807.681000 ], [ 594593.900000, 175840.400000 ], [ 594616.900000, 175949.100000 ], [ 594655.300000, 176050.200000 ], [ 594672.700000, 176053.200000 ], [ 594693.500000, 176090.200000 ], [ 594777.200000, 176157.700000 ], [ 594819.500000, 176197.200000 ], [ 594840.500000, 176226.200000 ], [ 594864.200000, 176238.700000 ], [ 594892.200000, 176268.000000 ], [ 594945.200000, 176290.500000 ], [ 594968.000000, 176311.700000 ], [ 595029.400000, 176337.600000 ], [ 595104.400000, 176353.600000 ], [ 595120.600000, 176383.400000 ], [ 595132.100000, 176391.100000 ], [ 595165.600000, 176390.900000 ], [ 595221.900000, 176404.600000 ], [ 595251.100000, 176429.600000 ], [ 595286.900000, 176420.100000 ], [ 595326.600000, 176434.000000 ], [ 595349.000000, 176426.700000 ], [ 595374.000000, 176439.600000 ], [ 595407.000000, 176444.500000 ], [ 595412.600000, 176458.600000 ], [ 595466.900000, 176489.400000 ], [ 595497.100000, 176496.200000 ], [ 595577.900000, 176476.000000 ], [ 595654.100000, 176431.700000 ], [ 595679.900000, 176403.000000 ], [ 595693.600000, 176347.500000 ], [ 595749.400000, 176321.200000 ], [ 595866.600000, 176294.200000 ], [ 595979.900000, 176309.700000 ], [ 596029.600000, 176303.500000 ], [ 596073.100000, 176305.700000 ], [ 596141.100000, 176280.700000 ], [ 596202.600000, 176217.200000 ], [ 596257.900000, 176229.500000 ], [ 596296.900000, 176225.700000 ], [ 596336.600000, 176170.000000 ], [ 596366.600000, 176101.500000 ], [ 596443.600000, 176109.700000 ], [ 596455.400000, 176102.700000 ], [ 596492.600000, 176054.500000 ], [ 596497.900000, 176027.500000 ], [ 596489.900000, 175960.200000 ], [ 596588.100000, 175884.700000 ], [ 596614.500000, 175814.000000 ], [ 596635.200000, 175795.200000 ], [ 596663.000000, 175687.500000 ], [ 596703.700000, 175658.000000 ], [ 596795.600000, 175620.500000 ], [ 596750.500000, 175693.200000 ], [ 596747.200000, 175712.000000 ], [ 596747.500000, 175731.000000 ], [ 596770.300000, 175784.600000 ], [ 596780.000000, 175828.000000 ], [ 596781.000000, 175895.200000 ], [ 596788.300000, 175905.900000 ], [ 596768.000000, 175956.000000 ], [ 596783.625000, 175959.104000 ], [ 596842.400000, 175888.900000 ], [ 596876.000000, 175883.500000 ], [ 596950.200000, 175885.500000 ], [ 596962.400000, 175838.600000 ], [ 597017.300000, 175779.500000 ], [ 597157.700000, 175649.700000 ], [ 597380.700000, 175579.500000 ], [ 597496.700000, 175574.700000 ], [ 597575.500000, 175591.500000 ], [ 597662.700000, 175639.000000 ], [ 597716.500000, 175690.200000 ], [ 597841.700000, 175744.500000 ], [ 597864.200000, 175749.000000 ], [ 597904.700000, 175751.000000 ], [ 597979.200000, 175721.000000 ], [ 598039.700000, 175682.200000 ], [ 598067.700000, 175685.500000 ], [ 598153.500000, 175730.200000 ], [ 598343.300000, 175850.600000 ], [ 598431.200000, 175891.800000 ], [ 598484.400000, 175909.700000 ], [ 598526.400000, 175912.700000 ], [ 598618.900000, 175901.900000 ], [ 598712.400000, 175859.000000 ], [ 598861.700000, 175807.200000 ], [ 599031.200000, 175795.700000 ], [ 599109.700000, 175746.900000 ], [ 599179.300000, 175717.000000 ], [ 599201.200000, 175713.200000 ], [ 599342.500000, 175725.200000 ], [ 599477.500000, 175716.500000 ], [ 599550.500000, 175686.700000 ], [ 599609.500000, 175635.800000 ], [ 599623.100000, 175602.600000 ], [ 599611.665000, 175591.448000 ], [ 599619.700000, 175527.100000 ], [ 599708.600000, 175378.400000 ], [ 599769.700000, 175352.400000 ], [ 599799.400000, 175315.000000 ], [ 599872.600000, 175250.500000 ], [ 599942.800000, 175213.500000 ], [ 600025.800000, 175154.600000 ], [ 600101.300000, 175090.100000 ], [ 600183.500000, 175004.700000 ], [ 600222.900000, 175001.300000 ], [ 600206.000000, 175028.000000 ], [ 600207.200000, 175054.000000 ], [ 600247.500000, 175105.500000 ], [ 600283.200000, 175206.800000 ], [ 600297.000000, 175225.800000 ], [ 600355.400000, 175271.800000 ], [ 600378.700000, 175316.500000 ], [ 600449.200000, 175347.000000 ], [ 600503.800000, 175384.800000 ], [ 600518.800000, 175406.400000 ], [ 600552.500000, 175485.700000 ], [ 600677.700000, 175578.700000 ], [ 600707.500000, 175660.500000 ], [ 600751.700000, 175686.700000 ], [ 600839.400000, 175724.700000 ], [ 600905.200000, 175747.000000 ], [ 601015.716000, 175770.217000 ], [ 601067.089000, 175789.239000 ], [ 601076.042000, 175798.492000 ], [ 601079.500000, 175784.600000 ], [ 601040.500000, 175766.000000 ], [ 600859.146000, 175627.852000 ], [ 600875.337000, 175568.571000 ], [ 600871.942000, 175549.768000 ], [ 600856.800000, 175533.800000 ], [ 600816.000000, 175514.800000 ], [ 600792.700000, 175482.100000 ], [ 600758.200000, 175399.400000 ], [ 600725.200000, 175347.600000 ], [ 600707.200000, 175278.700000 ], [ 600677.500000, 175245.600000 ], [ 600627.500000, 175221.900000 ], [ 600578.700000, 175165.400000 ], [ 600576.200000, 175113.000000 ], [ 600591.000000, 175061.400000 ], [ 600568.700000, 175024.100000 ], [ 600568.700000, 174993.600000 ], [ 600581.200000, 174976.400000 ], [ 600610.500000, 174956.100000 ], [ 600686.200000, 174940.400000 ], [ 600716.700000, 174941.400000 ], [ 600785.000000, 174966.400000 ], [ 600878.900000, 174944.900000 ], [ 600894.600000, 174955.100000 ], [ 600960.100000, 174954.100000 ], [ 601052.400000, 174994.600000 ], [ 601112.600000, 175000.600000 ], [ 601169.900000, 175027.900000 ], [ 601194.400000, 175044.100000 ], [ 601268.200000, 175121.300000 ], [ 601294.400000, 175138.100000 ], [ 601367.900000, 175166.600000 ], [ 601460.100000, 175243.100000 ], [ 601486.100000, 175250.600000 ], [ 601523.400000, 175239.400000 ], [ 601539.600000, 175224.900000 ], [ 601541.400000, 175207.400000 ], [ 601523.400000, 175133.100000 ], [ 601517.600000, 175053.100000 ], [ 601509.400000, 175032.100000 ], [ 601487.600000, 175010.900000 ], [ 601473.600000, 174984.100000 ], [ 601476.100000, 174972.900000 ], [ 601501.900000, 174961.100000 ], [ 601498.100000, 174928.400000 ], [ 601431.600000, 174867.700000 ], [ 601379.400000, 174851.800000 ], [ 601348.600000, 174824.900000 ], [ 601312.200000, 174805.800000 ], [ 601298.100000, 174784.900000 ], [ 601301.900000, 174751.100000 ], [ 601344.900000, 174701.200000 ], [ 601347.400000, 174664.900000 ], [ 601361.600000, 174634.100000 ], [ 601358.400000, 174592.400000 ], [ 601378.100000, 174589.400000 ], [ 601413.100000, 174605.100000 ], [ 601455.900000, 174628.600000 ], [ 601515.900000, 174677.400000 ], [ 601544.400000, 174684.100000 ], [ 601553.600000, 174668.900000 ], [ 601561.900000, 174614.400000 ], [ 601585.600000, 174576.900000 ], [ 601586.600000, 174529.400000 ], [ 601574.100000, 174503.300000 ], [ 601575.100000, 174491.100000 ], [ 601597.600000, 174488.600000 ], [ 601652.700000, 174518.000000 ], [ 601700.100000, 174507.900000 ], [ 601727.300000, 174468.900000 ], [ 601772.100000, 174428.700000 ], [ 601780.600000, 174411.400000 ], [ 601779.700000, 174397.700000 ], [ 601815.700000, 174354.900000 ], [ 601900.200000, 174323.900000 ], [ 601961.700000, 174354.900000 ], [ 602000.900000, 174362.400000 ], [ 602008.400000, 174384.900000 ], [ 602009.700000, 174430.400000 ], [ 602051.700000, 174447.900000 ], [ 602085.700000, 174492.400000 ], [ 602104.900000, 174486.900000 ], [ 602125.900000, 174440.400000 ], [ 602143.200000, 174436.700000 ], [ 602160.700000, 174452.900000 ], [ 602175.900000, 174505.200000 ], [ 602200.900000, 174532.200000 ], [ 602199.200000, 174596.400000 ], [ 602222.900000, 174660.200000 ], [ 602213.700000, 174703.700000 ], [ 602182.200000, 174760.200000 ], [ 602173.300000, 174788.300000 ], [ 602183.900000, 174844.200000 ], [ 602204.700000, 174885.400000 ], [ 602221.200000, 174961.900000 ], [ 602273.000000, 175029.400000 ], [ 602313.700000, 175060.400000 ], [ 602347.500000, 175107.000000 ], [ 602453.500000, 175159.400000 ], [ 602533.400000, 175169.100000 ], [ 602589.200000, 175213.000000 ], [ 602624.300000, 175213.700000 ], [ 602623.800000, 175225.100000 ], [ 602586.000000, 175241.600000 ], [ 602566.500000, 175245.100000 ], [ 602500.000000, 175236.600000 ], [ 602483.500000, 175248.100000 ], [ 602482.700000, 175279.600000 ], [ 602514.300000, 175312.200000 ], [ 602554.300000, 175341.400000 ], [ 602605.400000, 175352.000000 ], [ 602658.000000, 175343.500000 ], [ 602723.400000, 175354.700000 ], [ 602784.200000, 175388.000000 ], [ 602830.900000, 175434.800000 ], [ 603000.000000, 175536.000000 ], [ 603097.500000, 175541.700000 ], [ 603143.400000, 175535.300000 ], [ 603208.300000, 175509.100000 ], [ 603247.100000, 175503.600000 ], [ 603311.500000, 175512.500000 ], [ 603472.400000, 175657.700000 ], [ 603487.200000, 175652.800000 ], [ 603525.200000, 175622.700000 ], [ 603592.800000, 175630.400000 ], [ 603660.200000, 175624.800000 ], [ 603688.400000, 175634.200000 ], [ 603767.900000, 175690.600000 ], [ 603822.200000, 175690.500000 ], [ 603835.400000, 175699.400000 ], [ 603851.200000, 175750.500000 ], [ 603860.200000, 175758.300000 ], [ 603874.400000, 175757.100000 ], [ 603893.000000, 175743.000000 ], [ 603910.800000, 175711.800000 ], [ 603945.300000, 175681.700000 ], [ 603953.400000, 175642.600000 ], [ 603968.900000, 175637.300000 ], [ 603994.300000, 175703.600000 ], [ 603993.900000, 175734.500000 ], [ 603983.900000, 175765.700000 ], [ 603987.000000, 175785.400000 ], [ 604021.900000, 175803.800000 ], [ 604092.900000, 175791.100000 ], [ 604127.300000, 175793.300000 ], [ 604143.500000, 175805.800000 ], [ 604142.700000, 175843.800000 ], [ 604170.400000, 175866.600000 ], [ 604218.200000, 175922.400000 ], [ 604221.600000, 175937.400000 ], [ 604209.700000, 175983.800000 ], [ 604222.700000, 176001.100000 ], [ 604236.400000, 175996.800000 ], [ 604251.400000, 175966.700000 ], [ 604247.300000, 175917.000000 ], [ 604259.300000, 175892.300000 ], [ 604284.200000, 175865.800000 ], [ 604323.800000, 175841.800000 ], [ 604412.500000, 175817.400000 ], [ 604493.200000, 175763.900000 ], [ 604514.200000, 175758.800000 ], [ 604553.900000, 175765.800000 ], [ 604569.200000, 175762.600000 ], [ 604590.400000, 175730.600000 ], [ 604623.200000, 175720.300000 ], [ 604625.700000, 175676.100000 ], [ 604662.400000, 175693.100000 ], [ 604672.200000, 175715.200000 ], [ 604655.800000, 175737.300000 ], [ 604653.400000, 175754.100000 ], [ 604663.300000, 175822.200000 ], [ 604678.400000, 175853.900000 ], [ 604677.700000, 175863.600000 ], [ 604635.700000, 175915.800000 ], [ 604634.400000, 175931.800000 ], [ 604650.400000, 175972.400000 ], [ 604631.400000, 176000.300000 ], [ 604580.200000, 176041.100000 ], [ 604567.200000, 176120.100000 ], [ 604570.900000, 176164.800000 ], [ 604505.400000, 176248.900000 ], [ 604471.500000, 176273.800000 ], [ 604448.300000, 176353.997000 ], [ 604455.027000, 176372.731000 ], [ 604483.135000, 176381.400000 ], [ 604495.500000, 176371.900000 ], [ 604517.283000, 176325.357000 ], [ 604532.335000, 176315.148000 ], [ 604553.100000, 176312.000000 ], [ 604634.700000, 176337.700000 ], [ 604704.000000, 176335.800000 ], [ 604718.900000, 176340.200000 ], [ 604723.400000, 176349.000000 ], [ 604722.600000, 176357.800000 ], [ 604709.900000, 176366.800000 ], [ 604667.400000, 176378.400000 ], [ 604632.800000, 176434.300000 ], [ 604630.000000, 176460.600000 ], [ 604655.400000, 176546.900000 ], [ 604647.200000, 176564.700000 ], [ 604581.000000, 176610.400000 ], [ 604556.700000, 176643.100000 ], [ 604553.000000, 176669.400000 ], [ 604567.000000, 176711.100000 ], [ 604552.212000, 176740.418000 ], [ 604553.955000, 176758.196000 ], [ 604575.464000, 176771.529000 ], [ 604776.706000, 176817.806000 ], [ 604892.700000, 176809.300000 ], [ 605006.700000, 176786.600000 ], [ 605103.500000, 176837.400000 ], [ 605219.300000, 176882.100000 ], [ 605290.800000, 176887.600000 ], [ 605365.700000, 176883.300000 ], [ 605417.700000, 176889.600000 ], [ 605472.900000, 176885.600000 ], [ 605605.400000, 176844.300000 ], [ 605682.800000, 176799.600000 ], [ 605774.100000, 176791.100000 ], [ 605825.300000, 176773.500000 ], [ 605870.400000, 176746.600000 ], [ 605800.900000, 176678.400000 ], [ 605628.200000, 176447.900000 ], [ 605612.800000, 176417.100000 ], [ 605558.500000, 176253.700000 ], [ 605530.000000, 176143.400000 ], [ 605542.900000, 176057.000000 ], [ 605647.200000, 175838.600000 ], [ 605678.800000, 175726.400000 ], [ 605742.400000, 175641.000000 ], [ 605925.900000, 175529.000000 ], [ 605991.800000, 175501.700000 ], [ 606042.700000, 175472.100000 ], [ 606120.900000, 175529.800000 ], [ 606207.400000, 175575.500000 ], [ 606206.000000, 175533.000000 ], [ 606223.500000, 175506.700000 ], [ 606233.700000, 175454.000000 ], [ 606440.100000, 175237.400000 ], [ 606480.200000, 175174.700000 ], [ 606513.200000, 175142.700000 ], [ 606582.200000, 175109.800000 ], [ 606666.500000, 175055.700000 ], [ 606737.000000, 175023.500000 ], [ 606798.000000, 175003.700000 ], [ 606824.200000, 175013.200000 ], [ 606848.700000, 175008.700000 ], [ 607299.000000, 174819.000000 ], [ 607597.300000, 174714.800000 ], [ 607645.000000, 174691.700000 ], [ 607737.350000, 174625.700000 ], [ 607747.636000, 174626.312000 ], [ 607775.600000, 174647.200000 ], [ 607801.900000, 174697.200000 ], [ 607808.000000, 174690.400000 ], [ 607817.100000, 174700.000000 ], [ 607849.000000, 174781.400000 ], [ 607868.600000, 174800.000000 ], [ 607902.400000, 174796.000000 ], [ 607977.900000, 174750.100000 ], [ 608019.400000, 174739.800000 ], [ 608115.262000, 174741.300000 ], [ 608163.500000, 174755.100000 ], [ 608212.900000, 174758.900000 ], [ 608267.552000, 174780.463000 ], [ 608285.100000, 174799.700000 ], [ 608294.300000, 174838.700000 ], [ 608291.200000, 174873.000000 ], [ 608257.400000, 174975.200000 ], [ 608641.898000, 174966.570000 ], [ 608746.100000, 175001.800000 ], [ 608810.900000, 175012.800000 ], [ 608887.600000, 174981.400000 ], [ 608960.300000, 174967.900000 ], [ 609000.600000, 174953.800000 ], [ 609116.598000, 174907.086000 ], [ 609141.845000, 174886.622000 ], [ 609163.600000, 174908.400000 ], [ 609242.400000, 174936.600000 ], [ 609325.600000, 174981.100000 ], [ 609364.841000, 175014.729000 ], [ 609397.757000, 175005.969000 ], [ 609503.104000, 175009.625000 ], [ 609601.494000, 174978.430000 ], [ 609720.669000, 175200.649000 ], [ 609736.100000, 175204.390000 ], [ 609846.917000, 175176.335000 ], [ 609922.331000, 175342.200000 ], [ 610018.755000, 175390.722000 ], [ 610094.800000, 175381.500000 ], [ 610141.100000, 175389.000000 ], [ 610178.543000, 175387.734000 ], [ 610207.211000, 175381.716000 ], [ 610260.800000, 175350.800000 ], [ 610337.000000, 175419.700000 ], [ 610405.450000, 175376.593000 ], [ 610458.406000, 175328.867000 ], [ 610490.440000, 175312.850000 ], [ 610524.531000, 175306.688000 ], [ 610556.761000, 175289.327000 ], [ 610668.800000, 175202.100000 ], [ 610770.400000, 175170.200000 ], [ 610796.700000, 175124.400000 ], [ 610869.200000, 175159.000000 ], [ 611056.500000, 175196.500000 ], [ 611090.200000, 175210.500000 ], [ 611128.946000, 175244.312000 ], [ 611146.100000, 175274.400000 ], [ 611142.500000, 175565.000000 ], [ 611106.700000, 175666.200000 ], [ 611109.000000, 175697.200000 ], [ 611214.300000, 175620.600000 ], [ 611304.700000, 175572.000000 ], [ 611318.000000, 175584.200000 ], [ 611314.000000, 175602.300000 ], [ 611282.000000, 175620.500000 ], [ 611260.100000, 175641.400000 ], [ 611189.200000, 175726.000000 ], [ 611184.100000, 175743.500000 ], [ 611205.500000, 175741.300000 ], [ 611221.200000, 175722.100000 ], [ 611290.500000, 175673.700000 ], [ 611306.800000, 175652.000000 ], [ 611327.000000, 175648.500000 ], [ 611330.200000, 175664.800000 ], [ 611290.200000, 175699.300000 ], [ 611248.800000, 175759.700000 ], [ 611212.100000, 175836.500000 ], [ 611189.400000, 175931.500000 ], [ 611197.500000, 175944.500000 ], [ 611261.700000, 175996.600000 ], [ 611356.000000, 176143.400000 ], [ 611385.300000, 176200.000000 ], [ 611958.500000, 176899.500000 ], [ 612008.700000, 176947.700000 ], [ 612105.000000, 177012.200000 ], [ 612242.100000, 177077.600000 ], [ 613169.589000, 177449.052000 ], [ 613179.599000, 177446.398000 ], [ 613258.500000, 177501.800000 ], [ 613326.800000, 177537.200000 ], [ 613553.300000, 177602.900000 ], [ 613601.300000, 177623.800000 ], [ 613765.600000, 177724.500000 ], [ 613848.400000, 177797.400000 ], [ 613877.000000, 177814.700000 ], [ 613976.500000, 177849.300000 ], [ 614064.400000, 177896.700000 ], [ 614134.500000, 177965.500000 ], [ 614274.300000, 178084.900000 ], [ 614293.800000, 178110.600000 ], [ 614316.277000, 178180.018000 ], [ 614419.419000, 178225.066000 ], [ 614465.144000, 178230.698000 ], [ 614593.100000, 178362.100000 ] ], [ [ 670697.100000, 201185.400000 ], [ 670705.300000, 201170.900000 ], [ 670694.900000, 201059.000000 ], [ 670645.900000, 201061.600000 ], [ 670604.700000, 201093.900000 ] ] ] } } +, +{ "type": "Feature", "properties": { "FID": 3.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 678782.200000, 199305.200000 ], [ 678793.200000, 199277.200000 ], [ 678820.000000, 199249.500000 ], [ 678880.200000, 199229.600000 ], [ 678930.400000, 199201.100000 ], [ 678975.300000, 199210.400000 ], [ 678984.300000, 199206.200000 ], [ 679008.200000, 199125.900000 ], [ 679046.700000, 199089.700000 ], [ 679052.000000, 199049.400000 ], [ 679044.500000, 199017.900000 ], [ 679046.700000, 198927.400000 ], [ 679037.100000, 198875.400000 ], [ 679025.900000, 198856.100000 ], [ 678974.000000, 198816.200000 ], [ 678919.700000, 198752.800000 ], [ 678895.200000, 198676.700000 ], [ 678857.700000, 198606.000000 ], [ 678813.400000, 198559.600000 ], [ 678779.000000, 198543.500000 ], [ 678776.000000, 198531.700000 ], [ 678806.800000, 198505.300000 ], [ 678841.600000, 198399.900000 ], [ 678854.200000, 198330.600000 ], [ 678886.400000, 198282.700000 ], [ 678917.400000, 198256.700000 ], [ 678923.400000, 198244.700000 ], [ 678927.600000, 198192.800000 ], [ 679008.200000, 198138.500000 ], [ 679010.400000, 198076.600000 ], [ 679051.800000, 198039.400000 ], [ 679119.900000, 198013.300000 ], [ 679153.200000, 197965.700000 ], [ 679183.200000, 197942.300000 ], [ 679239.000000, 197938.500000 ], [ 679268.300000, 197944.700000 ], [ 679292.100000, 197958.100000 ], [ 679320.100000, 197985.300000 ], [ 679349.300000, 198050.700000 ], [ 679405.400000, 198101.700000 ], [ 679442.200000, 198167.400000 ], [ 679481.000000, 198192.200000 ], [ 679549.000000, 198263.700000 ], [ 679604.600000, 198365.300000 ], [ 679619.200000, 198429.500000 ], [ 679678.100000, 198510.400000 ], [ 679722.700000, 198526.800000 ], [ 679781.800000, 198531.100000 ], [ 679801.500000, 198543.800000 ], [ 679811.000000, 198560.900000 ], [ 679875.593000, 198628.187000 ], [ 679943.400000, 198678.000000 ], [ 679969.600000, 198704.400000 ], [ 680018.500000, 198730.500000 ], [ 680064.900000, 198783.900000 ], [ 680092.900000, 198852.400000 ], [ 680104.900000, 198900.400000 ], [ 680137.500000, 198940.700000 ], [ 680151.100000, 198942.100000 ], [ 680186.900000, 198930.200000 ], [ 680217.200000, 198912.600000 ], [ 680272.300000, 198856.300000 ], [ 680263.800000, 198904.000000 ], [ 680297.800000, 198996.800000 ], [ 680309.500000, 199052.000000 ], [ 680315.600000, 199052.000000 ], [ 680324.400000, 199014.500000 ], [ 680330.900000, 198943.100000 ], [ 680339.900000, 198942.000000 ], [ 680358.900000, 199008.000000 ], [ 680396.100000, 199057.000000 ], [ 680427.700000, 199164.500000 ], [ 680439.600000, 199168.500000 ], [ 680442.200000, 199161.200000 ], [ 680435.300000, 199100.600000 ], [ 680439.300000, 199079.600000 ], [ 680461.000000, 199048.600000 ], [ 680477.300000, 199045.700000 ], [ 680480.400000, 199085.900000 ], [ 680493.600000, 199103.100000 ], [ 680510.000000, 199112.700000 ], [ 680556.700000, 199121.200000 ], [ 680566.500000, 199134.800000 ], [ 680536.100000, 199200.800000 ], [ 680540.400000, 199216.200000 ], [ 680556.800000, 199228.100000 ], [ 680580.600000, 199232.600000 ], [ 680618.100000, 199290.100000 ], [ 680662.000000, 199287.000000 ], [ 680669.400000, 199316.400000 ], [ 680725.400000, 199380.200000 ], [ 680762.800000, 199443.600000 ], [ 680774.400000, 199455.300000 ], [ 680804.100000, 199462.000000 ], [ 680815.200000, 199473.700000 ], [ 680821.300000, 199523.800000 ], [ 680830.400000, 199535.100000 ], [ 680858.300000, 199542.400000 ], [ 680879.100000, 199540.200000 ], [ 681016.100000, 199600.100000 ], [ 681106.800000, 199668.300000 ], [ 681144.800000, 199707.700000 ], [ 681153.600000, 199729.200000 ], [ 681161.800000, 199795.800000 ], [ 681173.600000, 199821.800000 ], [ 681188.100000, 199832.600000 ], [ 681222.100000, 199829.300000 ], [ 681260.300000, 199836.300000 ], [ 681276.300000, 199846.800000 ], [ 681292.300000, 199868.900000 ], [ 681295.400000, 199900.000000 ], [ 681269.400000, 199960.000000 ], [ 681269.600000, 200027.500000 ], [ 681258.800000, 200068.200000 ], [ 681262.800000, 200084.000000 ], [ 681278.600000, 200104.500000 ], [ 681282.300000, 200125.200000 ], [ 681224.600000, 200178.000000 ], [ 681210.100000, 200181.400000 ], [ 681191.600000, 200172.600000 ], [ 681147.300000, 200131.000000 ], [ 681126.600000, 200126.200000 ], [ 681110.100000, 200138.700000 ], [ 681107.900000, 200181.300000 ], [ 681075.800000, 200201.800000 ], [ 680948.600000, 200221.100000 ], [ 680885.100000, 200218.300000 ], [ 680803.700000, 200199.600000 ], [ 680780.200000, 200201.600000 ], [ 680687.600000, 200262.000000 ], [ 680606.500000, 200296.200000 ], [ 680493.000000, 200316.300000 ], [ 680435.700000, 200356.500000 ], [ 680391.300000, 200367.400000 ], [ 680216.900000, 200325.400000 ], [ 680004.700000, 200341.500000 ], [ 679920.300000, 200364.100000 ], [ 679876.600000, 200360.000000 ], [ 679838.100000, 200343.400000 ], [ 679812.100000, 200341.800000 ], [ 679680.200000, 200379.900000 ], [ 679673.700000, 200388.800000 ], [ 679677.600000, 200401.400000 ], [ 679688.300000, 200406.700000 ], [ 679764.300000, 200401.700000 ], [ 679807.500000, 200406.100000 ], [ 679838.400000, 200428.800000 ], [ 679887.700000, 200506.600000 ], [ 679902.100000, 200516.400000 ], [ 679971.100000, 200515.200000 ], [ 679994.800000, 200524.200000 ], [ 680081.800000, 200599.900000 ], [ 680174.200000, 200646.300000 ], [ 680228.700000, 200692.600000 ], [ 680301.100000, 200689.100000 ], [ 680371.600000, 200728.000000 ], [ 680425.600000, 200724.000000 ], [ 680464.600000, 200764.300000 ], [ 680534.700000, 200759.700000 ], [ 680646.000000, 200807.900000 ], [ 680673.300000, 200813.400000 ], [ 680822.100000, 200812.700000 ], [ 680917.600000, 200789.500000 ], [ 680953.200000, 200792.000000 ], [ 681014.300000, 200826.200000 ], [ 681032.800000, 200824.700000 ], [ 681066.600000, 200801.700000 ], [ 681074.600000, 200806.000000 ], [ 681074.100000, 200824.700000 ], [ 681065.500000, 200834.100000 ], [ 681040.100000, 200846.800000 ], [ 680965.200000, 200862.400000 ], [ 680951.400000, 200870.800000 ], [ 680892.600000, 200947.100000 ], [ 680844.100000, 200992.200000 ], [ 680783.600000, 201026.500000 ], [ 680742.300000, 201031.500000 ], [ 680738.600000, 201044.000000 ], [ 680747.500000, 201054.000000 ], [ 680774.000000, 201053.300000 ], [ 680865.400000, 201031.200000 ], [ 680943.800000, 201028.900000 ], [ 681117.200000, 200968.700000 ], [ 681218.000000, 200987.300000 ], [ 681364.200000, 200994.000000 ], [ 681418.500000, 201014.700000 ], [ 681468.827000, 201051.129000 ], [ 681504.700000, 201067.400000 ], [ 681612.100000, 201093.400000 ], [ 681745.500000, 201137.500000 ], [ 681784.500000, 201160.700000 ], [ 681801.500000, 201191.200000 ], [ 682187.400000, 201108.200000 ], [ 682221.100000, 201109.100000 ], [ 682294.400000, 201143.900000 ], [ 682423.200000, 201163.500000 ], [ 682443.500000, 201173.600000 ], [ 682495.400000, 201220.200000 ], [ 682540.900000, 201294.300000 ], [ 682584.200000, 201345.900000 ], [ 682667.600000, 201407.600000 ], [ 682722.400000, 201412.100000 ], [ 682798.200000, 201379.900000 ], [ 682870.200000, 201482.600000 ], [ 682873.300000, 201498.300000 ], [ 682855.600000, 201546.500000 ], [ 682861.500000, 201571.000000 ], [ 682875.700000, 201577.300000 ], [ 682911.300000, 201577.500000 ], [ 682941.400000, 201568.500000 ], [ 683021.000000, 201522.800000 ], [ 683039.800000, 201525.800000 ], [ 683058.300000, 201562.900000 ], [ 683134.000000, 201641.300000 ], [ 683134.700000, 201665.800000 ], [ 683120.400000, 201722.600000 ], [ 683084.500000, 201778.500000 ], [ 683082.700000, 201794.000000 ], [ 683093.100000, 201798.900000 ], [ 683154.400000, 201770.000000 ], [ 683183.100000, 201765.300000 ], [ 683235.000000, 201848.000000 ], [ 683256.500000, 201854.500000 ], [ 683456.000000, 201830.300000 ], [ 683463.700000, 201836.300000 ], [ 683463.200000, 201854.800000 ], [ 683422.000000, 201924.000000 ], [ 683436.300000, 201942.300000 ], [ 683621.800000, 201951.900000 ], [ 683653.300000, 201948.300000 ], [ 683696.400000, 201928.300000 ], [ 683722.700000, 201930.700000 ], [ 683763.000000, 201951.700000 ], [ 683772.000000, 201966.500000 ], [ 683778.500000, 202045.000000 ], [ 683792.000000, 202063.500000 ], [ 683864.000000, 202058.500000 ], [ 683896.300000, 202103.600000 ], [ 683906.100000, 202104.600000 ], [ 683918.100000, 202104.600000 ], [ 683967.600000, 202081.500000 ], [ 684035.400000, 202086.100000 ], [ 684245.900000, 202075.900000 ], [ 684276.000000, 202068.100000 ], [ 684344.500000, 202086.200000 ], [ 684369.300000, 202077.900000 ], [ 684393.200000, 202048.100000 ], [ 684420.400000, 202040.500000 ], [ 684458.200000, 202050.700000 ], [ 684560.900000, 202045.300000 ], [ 684661.300000, 202056.800000 ], [ 684711.700000, 202071.800000 ], [ 684763.500000, 202108.500000 ], [ 684868.500000, 202115.800000 ], [ 684972.100000, 202094.800000 ], [ 685028.700000, 202124.100000 ], [ 685055.300000, 202125.000000 ], [ 685137.400000, 202102.800000 ], [ 685151.600000, 202111.100000 ], [ 685161.100000, 202136.100000 ], [ 685203.400000, 202146.300000 ], [ 685244.900000, 202166.800000 ], [ 685257.900000, 202197.600000 ], [ 685318.500000, 202238.300000 ], [ 685369.100000, 202294.300000 ], [ 685383.300000, 202293.800000 ], [ 685384.000000, 202276.700000 ], [ 685369.700000, 202212.000000 ], [ 685300.500000, 202192.000000 ], [ 685246.700000, 202084.700000 ], [ 685243.500000, 202076.200000 ], [ 685249.700000, 202061.700000 ], [ 685344.700000, 202059.000000 ], [ 685352.700000, 202053.500000 ], [ 685391.000000, 201994.000000 ], [ 685394.500000, 201961.700000 ], [ 685386.000000, 201944.000000 ], [ 685430.200000, 201896.700000 ], [ 685455.700000, 201879.700000 ], [ 685482.100000, 201828.500000 ], [ 685534.300000, 201769.400000 ], [ 685617.100000, 201759.300000 ], [ 685730.100000, 201716.500000 ], [ 685753.800000, 201713.600000 ], [ 685780.400000, 201699.700000 ], [ 685821.700000, 201663.200000 ], [ 685852.800000, 201654.300000 ], [ 685943.700000, 201677.200000 ], [ 686046.500000, 201776.300000 ], [ 686091.100000, 201838.500000 ], [ 686136.100000, 201867.300000 ], [ 686229.700000, 201950.700000 ], [ 686257.000000, 201967.500000 ], [ 686294.200000, 201964.000000 ], [ 686301.100000, 201958.400000 ], [ 686414.100000, 202002.800000 ], [ 686493.200000, 202043.400000 ], [ 686610.700000, 202066.900000 ], [ 686693.900000, 202097.500000 ], [ 686783.100000, 202145.900000 ], [ 686814.700000, 202182.600000 ], [ 686836.400000, 202239.300000 ], [ 686858.400000, 202262.100000 ], [ 686967.300000, 202289.900000 ], [ 687023.900000, 202319.400000 ], [ 687123.000000, 202348.000000 ], [ 687139.600000, 202362.300000 ], [ 687173.900000, 202418.700000 ], [ 687272.400000, 202536.700000 ], [ 687304.400000, 202586.900000 ], [ 687326.100000, 202741.000000 ], [ 687343.400000, 202789.500000 ], [ 687375.500000, 202845.800000 ], [ 687422.900000, 203027.900000 ], [ 687410.400000, 203091.600000 ], [ 687359.400000, 203176.300000 ], [ 687336.400000, 203195.500000 ], [ 687280.600000, 203222.800000 ], [ 687265.000000, 203235.500000 ], [ 687256.600000, 203253.200000 ], [ 687253.900000, 203296.800000 ], [ 687274.900000, 203349.600000 ], [ 687383.400000, 203521.200000 ], [ 687372.900000, 203572.200000 ], [ 687355.700000, 203601.900000 ], [ 687304.600000, 203657.100000 ], [ 687299.200000, 203670.300000 ], [ 687371.500000, 203762.800000 ], [ 687397.200000, 203776.500000 ], [ 687430.700000, 203779.100000 ], [ 687466.600000, 203774.100000 ], [ 687511.800000, 203756.800000 ], [ 687523.800000, 203734.600000 ], [ 687526.100000, 203648.500000 ], [ 687535.100000, 203643.300000 ], [ 687554.100000, 203682.700000 ], [ 687563.300000, 203741.600000 ], [ 687549.100000, 203799.600000 ], [ 687502.800000, 203869.700000 ], [ 687508.600000, 203876.500000 ], [ 687566.500000, 203871.100000 ], [ 687603.400000, 203901.300000 ], [ 687643.300000, 203973.700000 ], [ 687660.200000, 204017.600000 ], [ 687663.000000, 204046.600000 ], [ 687641.100000, 204076.800000 ], [ 687621.200000, 204084.700000 ], [ 687429.500000, 204041.400000 ], [ 687372.300000, 204038.100000 ], [ 687245.500000, 203965.900000 ], [ 687222.000000, 203944.900000 ], [ 687198.200000, 203935.900000 ], [ 687130.400000, 203928.400000 ], [ 687081.900000, 203939.400000 ], [ 687013.600000, 203930.100000 ], [ 686990.100000, 203937.700000 ], [ 686981.000000, 203949.600000 ], [ 686979.500000, 203965.900000 ], [ 686996.200000, 203995.600000 ], [ 687013.500000, 204006.900000 ], [ 687113.800000, 204041.700000 ], [ 687202.700000, 204135.500000 ], [ 687296.200000, 204181.400000 ], [ 687294.500000, 204187.600000 ], [ 687272.500000, 204188.100000 ], [ 687151.800000, 204181.000000 ], [ 687098.600000, 204163.900000 ], [ 687091.500000, 204173.900000 ], [ 687176.400000, 204211.900000 ], [ 687307.800000, 204291.300000 ], [ 687376.000000, 204340.700000 ], [ 687422.000000, 204357.600000 ], [ 687441.500000, 204373.900000 ], [ 687437.500000, 204380.900000 ], [ 687346.900000, 204355.500000 ], [ 687102.100000, 204302.500000 ], [ 687070.000000, 204275.700000 ], [ 687025.200000, 204270.400000 ], [ 686934.600000, 204239.300000 ], [ 686787.000000, 204210.000000 ], [ 686684.500000, 204172.100000 ], [ 686529.500000, 204152.100000 ], [ 686538.200000, 204164.900000 ], [ 686624.200000, 204214.700000 ], [ 686761.200000, 204321.100000 ], [ 687159.100000, 204599.300000 ], [ 687249.600000, 204649.600000 ] ] } } +, +{ "type": "Feature", "properties": { "FID": 4.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 680738.600000, 201044.000000 ], [ 680742.300000, 201031.500000 ], [ 680783.600000, 201026.500000 ], [ 680844.100000, 200992.200000 ], [ 680892.600000, 200947.100000 ], [ 680951.400000, 200870.800000 ], [ 680965.200000, 200862.400000 ], [ 681040.100000, 200846.800000 ], [ 681065.500000, 200834.100000 ], [ 681074.100000, 200824.700000 ], [ 681074.600000, 200806.000000 ], [ 681066.600000, 200801.700000 ], [ 681032.800000, 200824.700000 ], [ 681014.300000, 200826.200000 ], [ 680953.200000, 200792.000000 ], [ 680917.600000, 200789.500000 ], [ 680822.100000, 200812.700000 ], [ 680673.300000, 200813.400000 ], [ 680646.000000, 200807.900000 ], [ 680534.700000, 200759.700000 ], [ 680464.600000, 200764.300000 ], [ 680425.600000, 200724.000000 ], [ 680371.600000, 200728.000000 ], [ 680313.000000, 200694.600000 ] ], [ [ 680738.600000, 201044.000000 ], [ 680747.500000, 201054.000000 ], [ 680759.000000, 201056.000000 ], [ 680865.400000, 201031.200000 ], [ 680943.800000, 201028.900000 ], [ 681117.200000, 200968.700000 ], [ 681218.000000, 200987.300000 ], [ 681345.200000, 200989.800000 ], [ 681418.500000, 201014.700000 ], [ 681468.827000, 201051.129000 ], [ 681504.700000, 201067.400000 ], [ 681612.100000, 201093.400000 ], [ 681745.500000, 201137.500000 ], [ 681784.500000, 201160.700000 ], [ 681801.500000, 201191.200000 ] ], [ [ 680313.000000, 200694.600000 ], [ 680274.000000, 200688.400000 ], [ 680228.700000, 200692.600000 ], [ 680174.200000, 200646.300000 ], [ 680081.800000, 200599.900000 ], [ 679994.800000, 200524.200000 ], [ 679971.100000, 200515.200000 ], [ 679902.100000, 200516.400000 ], [ 679887.700000, 200506.600000 ], [ 679838.400000, 200428.800000 ], [ 679807.500000, 200406.100000 ], [ 679764.300000, 200401.700000 ], [ 679688.300000, 200406.700000 ], [ 679677.600000, 200401.400000 ], [ 679673.700000, 200388.800000 ], [ 679680.200000, 200379.900000 ], [ 679812.100000, 200341.800000 ], [ 679838.100000, 200343.400000 ], [ 679876.600000, 200360.000000 ], [ 679920.300000, 200364.100000 ], [ 680004.700000, 200341.500000 ], [ 680216.900000, 200325.400000 ], [ 680391.300000, 200367.400000 ], [ 680435.700000, 200356.500000 ], [ 680493.000000, 200316.300000 ], [ 680606.500000, 200296.200000 ], [ 680687.600000, 200262.000000 ], [ 680780.200000, 200201.600000 ], [ 680803.700000, 200199.600000 ], [ 680885.100000, 200218.300000 ], [ 680948.600000, 200221.100000 ], [ 681075.800000, 200201.800000 ], [ 681107.900000, 200181.300000 ], [ 681110.100000, 200138.700000 ], [ 681126.600000, 200126.200000 ], [ 681147.300000, 200131.000000 ], [ 681191.600000, 200172.600000 ], [ 681210.100000, 200181.400000 ], [ 681224.600000, 200178.000000 ], [ 681282.300000, 200125.200000 ], [ 681278.600000, 200104.500000 ], [ 681262.800000, 200084.000000 ], [ 681258.800000, 200068.200000 ], [ 681269.600000, 200027.500000 ], [ 681269.400000, 199960.000000 ], [ 681295.400000, 199900.000000 ], [ 681292.300000, 199868.900000 ], [ 681276.300000, 199846.800000 ], [ 681260.300000, 199836.300000 ], [ 681222.100000, 199829.300000 ], [ 681188.100000, 199832.600000 ], [ 681173.600000, 199821.800000 ], [ 681161.800000, 199795.800000 ], [ 681153.600000, 199729.200000 ], [ 681144.800000, 199707.700000 ], [ 681106.800000, 199668.300000 ], [ 681016.100000, 199600.100000 ], [ 680879.100000, 199540.200000 ], [ 680858.300000, 199542.400000 ], [ 680830.400000, 199535.100000 ], [ 680821.300000, 199523.800000 ], [ 680815.200000, 199473.700000 ], [ 680804.100000, 199462.000000 ], [ 680774.400000, 199455.300000 ], [ 680762.800000, 199443.600000 ], [ 680725.400000, 199380.200000 ], [ 680669.400000, 199316.400000 ], [ 680662.000000, 199287.000000 ], [ 680618.100000, 199290.100000 ], [ 680580.600000, 199232.600000 ], [ 680556.800000, 199228.100000 ], [ 680540.400000, 199216.200000 ], [ 680536.100000, 199200.800000 ], [ 680566.500000, 199134.800000 ], [ 680556.700000, 199121.200000 ], [ 680510.000000, 199112.700000 ], [ 680493.600000, 199103.100000 ], [ 680480.400000, 199085.900000 ], [ 680477.300000, 199045.700000 ], [ 680461.000000, 199048.600000 ], [ 680439.300000, 199079.600000 ], [ 680435.300000, 199100.600000 ], [ 680442.200000, 199161.200000 ], [ 680439.600000, 199168.500000 ], [ 680427.700000, 199164.500000 ], [ 680396.100000, 199057.000000 ], [ 680358.900000, 199008.000000 ], [ 680339.900000, 198942.000000 ], [ 680330.900000, 198943.100000 ], [ 680324.400000, 199014.500000 ], [ 680315.600000, 199052.000000 ], [ 680309.500000, 199052.000000 ], [ 680297.800000, 198996.800000 ], [ 680263.800000, 198904.000000 ], [ 680272.300000, 198856.300000 ], [ 680217.200000, 198912.600000 ], [ 680186.900000, 198930.200000 ], [ 680151.100000, 198942.100000 ], [ 680137.500000, 198940.700000 ], [ 680104.900000, 198900.400000 ], [ 680092.900000, 198852.400000 ], [ 680064.900000, 198783.900000 ], [ 680018.500000, 198730.500000 ], [ 679969.600000, 198704.400000 ], [ 679943.400000, 198678.000000 ], [ 679875.593000, 198628.187000 ], [ 679811.000000, 198560.900000 ], [ 679801.500000, 198543.800000 ], [ 679781.800000, 198531.100000 ], [ 679722.700000, 198526.800000 ], [ 679678.100000, 198510.400000 ], [ 679619.200000, 198429.500000 ], [ 679604.600000, 198365.300000 ], [ 679549.000000, 198263.700000 ], [ 679481.000000, 198192.200000 ], [ 679442.200000, 198167.400000 ], [ 679405.400000, 198101.700000 ], [ 679349.300000, 198050.700000 ], [ 679320.100000, 197985.300000 ], [ 679292.100000, 197958.100000 ], [ 679268.300000, 197944.700000 ], [ 679239.000000, 197938.500000 ], [ 679183.200000, 197942.300000 ], [ 679153.200000, 197965.700000 ], [ 679119.900000, 198013.300000 ], [ 679051.800000, 198039.400000 ], [ 679020.200000, 198065.700000 ], [ 678983.900000, 198111.000000 ], [ 678940.800000, 198107.700000 ], [ 678862.000000, 198079.000000 ], [ 678848.800000, 198081.000000 ], [ 678828.300000, 198102.400000 ], [ 678801.100000, 198118.500000 ], [ 678692.200000, 198154.000000 ], [ 678653.500000, 198176.700000 ], [ 678584.900000, 198234.900000 ], [ 678575.500000, 198260.600000 ], [ 678568.600000, 198262.900000 ], [ 678559.900000, 198251.100000 ], [ 678560.500000, 198237.100000 ], [ 678603.600000, 198141.900000 ], [ 678631.200000, 198102.700000 ], [ 678637.300000, 198072.800000 ], [ 678632.900000, 198068.700000 ], [ 678591.100000, 198110.500000 ], [ 678525.900000, 198129.900000 ], [ 678492.300000, 198151.700000 ], [ 678429.400000, 198167.400000 ], [ 678398.800000, 198194.700000 ], [ 678391.700000, 198223.600000 ], [ 678402.000000, 198244.800000 ], [ 678372.800000, 198272.300000 ], [ 678343.800000, 198283.900000 ], [ 678264.500000, 198289.100000 ], [ 678195.200000, 198309.400000 ], [ 678138.400000, 198351.900000 ], [ 678070.000000, 198377.200000 ], [ 677944.800000, 198446.400000 ], [ 677875.000000, 198503.000000 ], [ 677843.000000, 198522.400000 ], [ 677833.600000, 198518.000000 ], [ 677816.900000, 198534.400000 ], [ 677784.900000, 198585.600000 ], [ 677778.000000, 198613.300000 ], [ 677779.400000, 198731.100000 ], [ 677799.800000, 198810.600000 ], [ 677825.300000, 198872.700000 ], [ 677845.900000, 198901.600000 ], [ 677873.100000, 198895.600000 ], [ 677923.100000, 198926.100000 ], [ 677964.900000, 198936.500000 ], [ 677994.900000, 198994.200000 ], [ 678030.400000, 199030.800000 ], [ 678061.600000, 199074.800000 ], [ 678083.800000, 199150.600000 ], [ 678113.500000, 199176.200000 ], [ 678141.400000, 199190.400000 ], [ 678193.900000, 199186.600000 ], [ 678226.600000, 199219.300000 ], [ 678234.700000, 199239.900000 ], [ 678291.000000, 199315.900000 ], [ 678293.200000, 199336.400000 ], [ 678283.500000, 199390.900000 ], [ 678314.100000, 199449.200000 ], [ 678299.800000, 199558.400000 ], [ 678307.600000, 199596.100000 ], [ 678304.600000, 199646.400000 ], [ 678325.200000, 199705.700000 ], [ 678323.100000, 199749.500000 ], [ 678378.700000, 199765.900000 ], [ 678429.200000, 199898.400000 ], [ 678490.800000, 199932.000000 ], [ 678536.800000, 199928.700000 ], [ 678564.700000, 199935.500000 ], [ 678588.600000, 199952.000000 ], [ 678590.100000, 199960.500000 ], [ 678632.200000, 199977.600000 ], [ 678698.800000, 200039.500000 ], [ 678797.700000, 200180.500000 ], [ 678808.400000, 200208.900000 ], [ 678793.600000, 200232.700000 ], [ 678742.800000, 200259.500000 ], [ 678736.100000, 200296.000000 ], [ 678721.100000, 200299.500000 ], [ 678712.800000, 200246.100000 ], [ 678666.600000, 200203.800000 ], [ 678588.100000, 200153.300000 ], [ 678561.100000, 200105.200000 ], [ 678546.600000, 200097.500000 ], [ 678510.400000, 200098.400000 ], [ 678462.900000, 200069.400000 ], [ 678350.300000, 200059.100000 ], [ 678315.200000, 200046.400000 ], [ 678203.800000, 199984.100000 ], [ 678152.000000, 199922.600000 ], [ 678074.600000, 199924.000000 ], [ 678060.800000, 199930.800000 ], [ 678056.300000, 199952.500000 ], [ 678102.100000, 199991.000000 ], [ 678122.100000, 200048.000000 ], [ 678143.300000, 200063.100000 ], [ 678185.300000, 200077.000000 ], [ 678199.200000, 200089.300000 ], [ 678223.800000, 200146.800000 ], [ 678234.000000, 200206.300000 ], [ 678257.100000, 200259.800000 ], [ 678270.400000, 200275.600000 ], [ 678427.700000, 200366.300000 ], [ 678504.000000, 200450.000000 ], [ 678630.500000, 200546.800000 ], [ 678667.600000, 200597.000000 ], [ 678729.600000, 200592.000000 ], [ 678757.600000, 200596.800000 ], [ 678802.600000, 200608.800000 ], [ 678848.900000, 200630.100000 ], [ 678882.200000, 200656.300000 ], [ 678925.300000, 200707.600000 ], [ 678998.900000, 200760.800000 ], [ 679048.100000, 200763.800000 ], [ 679091.400000, 200749.400000 ], [ 679226.500000, 200743.300000 ], [ 679241.600000, 200737.800000 ], [ 679314.000000, 200674.000000 ], [ 679342.300000, 200659.400000 ], [ 679411.100000, 200650.200000 ], [ 679471.800000, 200678.500000 ], [ 679538.500000, 200685.500000 ], [ 679686.100000, 200796.000000 ], [ 679732.900000, 200812.500000 ], [ 679763.100000, 200810.500000 ], [ 679787.300000, 200816.700000 ], [ 679898.800000, 200866.100000 ], [ 679941.600000, 200889.200000 ], [ 679974.600000, 200919.200000 ], [ 680027.900000, 200953.100000 ], [ 680069.400000, 200959.300000 ], [ 680116.900000, 200954.400000 ], [ 680257.900000, 200962.300000 ], [ 680348.200000, 200972.800000 ], [ 680423.100000, 200961.500000 ], [ 680516.800000, 200990.000000 ], [ 680566.100000, 200989.000000 ], [ 680628.100000, 201018.200000 ], [ 680738.600000, 201044.000000 ] ] ] } } +, +{ "type": "Feature", "properties": { "FID": 5.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 561800.138000, 205292.135000 ], [ 561886.100000, 205371.200000 ], [ 561874.586000, 205381.519000 ], [ 561680.800000, 205347.800000 ], [ 561546.500000, 205341.500000 ], [ 561423.485000, 205313.388000 ], [ 561446.100000, 205349.000000 ], [ 561471.513000, 205357.967000 ], [ 561441.600000, 205404.600000 ], [ 561438.500000, 205465.000000 ], [ 561608.800000, 205548.600000 ], [ 561699.100000, 205647.800000 ], [ 561753.300000, 205673.100000 ], [ 561792.800000, 205700.300000 ], [ 561825.300000, 205746.100000 ], [ 561863.100000, 205768.300000 ], [ 561903.800000, 205811.000000 ], [ 561940.500000, 205834.800000 ], [ 561970.874000, 205871.152000 ], [ 562046.700000, 205924.700000 ], [ 562207.276000, 206076.274000 ], [ 562255.486000, 206134.528000 ], [ 562297.000000, 206163.500000 ], [ 562299.300000, 206185.200000 ], [ 562262.800000, 206282.100000 ], [ 562344.800000, 206330.900000 ], [ 562467.600000, 206484.900000 ], [ 562529.300000, 206543.600000 ], [ 562535.300000, 206575.100000 ], [ 562521.200000, 206596.600000 ], [ 562682.400000, 206677.100000 ], [ 562725.700000, 206711.300000 ], [ 562893.900000, 206797.100000 ], [ 562982.200000, 206811.800000 ], [ 563163.200000, 206915.300000 ], [ 563176.400000, 206941.600000 ], [ 563223.400000, 206968.100000 ], [ 563330.200000, 207063.800000 ], [ 563395.400000, 207069.300000 ], [ 563469.900000, 207099.600000 ], [ 563530.400000, 207112.100000 ], [ 563653.900000, 207156.100000 ], [ 563728.200000, 207169.100000 ], [ 563886.900000, 207249.200000 ], [ 563975.200000, 207274.900000 ], [ 564044.000000, 207282.400000 ], [ 564258.200000, 207366.400000 ], [ 564332.000000, 207439.200000 ], [ 564466.200000, 207540.700000 ], [ 564572.000000, 207602.700000 ], [ 564656.200000, 207671.200000 ], [ 564686.200000, 207704.700000 ], [ 564740.500000, 207726.900000 ], [ 564799.200000, 207727.200000 ], [ 564829.000000, 207739.900000 ], [ 564884.500000, 207800.700000 ], [ 564922.300000, 207826.100000 ], [ 565030.300000, 207931.400000 ], [ 565082.600000, 207972.100000 ], [ 565107.800000, 207983.400000 ], [ 565128.800000, 207984.100000 ], [ 565148.100000, 207968.900000 ], [ 565153.700000, 207952.700000 ], [ 565216.200000, 208084.000000 ], [ 565294.200000, 208167.500000 ], [ 565371.100000, 208266.000000 ], [ 565483.300000, 208391.200000 ], [ 565616.100000, 208576.500000 ], [ 565714.100000, 208675.500000 ], [ 565754.400000, 208735.100000 ], [ 565772.700000, 208862.400000 ], [ 565822.000000, 209001.800000 ], [ 565846.000000, 209103.100000 ], [ 565969.000000, 209330.100000 ], [ 566023.700000, 209412.600000 ], [ 566026.500000, 209443.300000 ], [ 566021.200000, 209467.300000 ], [ 565984.000000, 209554.600000 ], [ 565987.000000, 209573.800000 ], [ 566008.000000, 209616.100000 ], [ 566005.500000, 209655.600000 ], [ 566010.700000, 209683.600000 ], [ 566043.500000, 209730.600000 ], [ 566116.200000, 209789.600000 ], [ 566209.700000, 209843.900000 ], [ 566263.400000, 209846.900000 ], [ 566333.900000, 209980.100000 ], [ 566407.400000, 210078.600000 ], [ 566421.100000, 210171.300000 ], [ 566478.100000, 210305.300000 ], [ 566499.600000, 210382.600000 ], [ 566510.900000, 210405.100000 ], [ 566550.900000, 210446.100000 ], [ 566628.200000, 210582.000000 ], [ 566623.500000, 210599.100000 ], [ 566627.500000, 210652.800000 ], [ 566638.200000, 210698.100000 ], [ 566701.500000, 210798.300000 ], [ 566773.200000, 210873.100000 ], [ 566919.500000, 210998.900000 ], [ 566943.700000, 211042.600000 ], [ 566968.500000, 211116.100000 ], [ 567028.000000, 211180.400000 ], [ 567084.000000, 211258.600000 ], [ 567247.700000, 211427.600000 ], [ 567262.000000, 211440.400000 ], [ 567280.700000, 211442.600000 ], [ 567332.700000, 211515.400000 ], [ 567358.200000, 211606.900000 ], [ 567380.700000, 211649.600000 ], [ 567435.700000, 211694.900000 ], [ 567548.400000, 211745.100000 ], [ 567560.600000, 211757.600000 ], [ 567591.800000, 211813.500000 ], [ 567598.900000, 211861.600000 ], [ 567617.400000, 211910.400000 ], [ 567688.100000, 212063.800000 ], [ 567765.800000, 212204.400000 ], [ 567779.700000, 212239.800000 ], [ 567826.800000, 212523.000000 ], [ 567843.900000, 212562.200000 ], [ 567885.600000, 212626.000000 ], [ 567903.700000, 212734.700000 ], [ 567950.700000, 212789.500000 ], [ 568002.000000, 212885.000000 ], [ 568087.700000, 212979.500000 ], [ 568127.900000, 213107.100000 ], [ 568222.100000, 213275.100000 ], [ 568245.800000, 213379.200000 ], [ 568262.400000, 213423.700000 ], [ 568365.200000, 213582.600000 ], [ 568371.000000, 213685.200000 ], [ 568396.800000, 213774.000000 ], [ 568416.200000, 213818.800000 ], [ 568541.100000, 213993.300000 ], [ 568611.000000, 214140.700000 ], [ 568653.900000, 214262.500000 ], [ 568695.400000, 214415.800000 ], [ 568750.000000, 214513.000000 ], [ 568685.800000, 214571.500000 ], [ 568670.700000, 214667.800000 ], [ 568685.500000, 214731.900000 ], [ 568682.200000, 214761.000000 ], [ 568564.200000, 215185.900000 ], [ 568556.500000, 215264.500000 ], [ 568520.500000, 215423.700000 ], [ 568510.000000, 215504.000000 ], [ 568456.300000, 215657.300000 ], [ 568442.600000, 215784.400000 ], [ 568447.200000, 215923.700000 ], [ 568438.800000, 216023.000000 ], [ 568465.900000, 216121.500000 ], [ 568516.400000, 216220.200000 ], [ 568631.200000, 216365.700000 ], [ 568694.600000, 216424.400000 ], [ 568746.200000, 216433.600000 ], [ 568863.200000, 216468.900000 ], [ 569002.900000, 216536.600000 ], [ 569256.900000, 216617.100000 ], [ 569328.700000, 216657.900000 ], [ 569434.400000, 216739.100000 ], [ 569478.400000, 216765.900000 ], [ 569634.100000, 216800.900000 ], [ 569717.700000, 216838.300000 ], [ 569749.900000, 216838.800000 ], [ 569764.900000, 216918.600000 ], [ 569799.100000, 216948.400000 ], [ 569908.000000, 216957.100000 ], [ 570010.800000, 216978.600000 ], [ 570206.600000, 217057.600000 ], [ 570324.600000, 217119.500000 ], [ 570375.500000, 217152.200000 ], [ 570453.100000, 217222.200000 ], [ 570589.900000, 217362.500000 ], [ 570653.100000, 217451.400000 ], [ 570713.700000, 217503.900000 ], [ 570807.600000, 217546.900000 ], [ 570868.300000, 217586.900000 ], [ 570901.300000, 217623.600000 ], [ 570951.300000, 217651.900000 ], [ 571103.400000, 217707.500000 ], [ 571150.000000, 217743.100000 ], [ 571212.700000, 217746.900000 ], [ 571336.300000, 217767.700000 ], [ 571577.900000, 217821.600000 ], [ 571660.600000, 217864.100000 ], [ 571742.400000, 217849.100000 ], [ 571833.100000, 217847.200000 ], [ 571887.100000, 217863.600000 ], [ 571973.300000, 217901.100000 ], [ 572156.700000, 217935.600000 ], [ 572207.100000, 217955.400000 ], [ 572242.900000, 217982.100000 ], [ 572297.100000, 217860.200000 ], [ 572312.800000, 217835.200000 ], [ 572346.100000, 217802.200000 ], [ 572389.800000, 217794.300000 ], [ 572409.300000, 217812.800000 ], [ 572429.800000, 217819.500000 ], [ 572513.400000, 217826.700000 ], [ 572756.700000, 217964.400000 ], [ 572826.200000, 218019.900000 ], [ 572860.000000, 218055.200000 ], [ 572878.000000, 218063.600000 ], [ 572904.600000, 218016.600000 ], [ 572958.800000, 218046.300000 ], [ 573005.700000, 218098.800000 ], [ 573038.800000, 218117.500000 ], [ 573040.100000, 218127.200000 ], [ 573123.500000, 218238.000000 ], [ 573286.800000, 218344.000000 ], [ 573354.600000, 218398.200000 ], [ 573365.300000, 218431.500000 ], [ 573437.300000, 218506.500000 ], [ 573521.700000, 218660.800000 ], [ 573539.200000, 218684.000000 ], [ 573618.600000, 218754.600000 ], [ 573658.957000, 218818.928000 ], [ 573640.067000, 218898.536000 ], [ 573599.400000, 218960.100000 ], [ 573668.500000, 218999.300000 ], [ 573759.100000, 219069.900000 ], [ 573817.900000, 219097.100000 ], [ 573891.600000, 219121.000000 ], [ 573979.900000, 219207.900000 ], [ 574203.700000, 219399.200000 ], [ 574412.100000, 219493.200000 ], [ 574488.900000, 219542.500000 ], [ 574555.200000, 219602.500000 ], [ 574601.400000, 219659.400000 ], [ 574722.100000, 219779.700000 ], [ 574917.100000, 220028.500000 ], [ 574973.900000, 220135.300000 ], [ 575034.500000, 220213.900000 ], [ 575025.400000, 220295.500000 ], [ 575001.600000, 220416.000000 ], [ 575000.600000, 220484.700000 ], [ 575086.500000, 220599.700000 ], [ 575171.400000, 220742.500000 ], [ 575199.900000, 220837.200000 ], [ 575218.800000, 220887.300000 ], [ 575233.600000, 220908.600000 ], [ 575304.700000, 220984.000000 ], [ 575418.700000, 221025.700000 ], [ 575460.900000, 221047.600000 ], [ 575620.400000, 221179.900000 ], [ 575702.400000, 221230.400000 ], [ 575751.700000, 221289.400000 ], [ 575858.700000, 221384.400000 ], [ 575985.200000, 221534.600000 ], [ 576004.900000, 221590.400000 ], [ 576007.200000, 221659.600000 ], [ 575961.200000, 221710.900000 ], [ 575967.400000, 221774.900000 ], [ 575965.400000, 221806.900000 ], [ 575954.695000, 221832.520000 ], [ 576001.515000, 221848.329000 ], [ 576011.852000, 221816.102000 ], [ 576336.552000, 221819.142000 ], [ 576362.699000, 221828.263000 ], [ 576623.400000, 222010.500000 ], [ 576671.000000, 222037.100000 ], [ 576765.100000, 222065.000000 ], [ 576863.200000, 222121.700000 ], [ 576894.400000, 222124.200000 ], [ 576808.200000, 222170.000000 ], [ 576799.400000, 222177.200000 ], [ 576799.200000, 222189.500000 ], [ 576878.800000, 222223.500000 ], [ 576938.000000, 222262.900000 ], [ 576948.100000, 222405.800000 ], [ 576954.500000, 222428.500000 ], [ 577091.600000, 222682.100000 ], [ 577162.200000, 222843.700000 ], [ 577232.800000, 222863.000000 ], [ 577324.500000, 222922.300000 ], [ 577399.200000, 222961.600000 ], [ 577482.300000, 223043.300000 ], [ 577536.000000, 223080.900000 ], [ 577636.800000, 223175.900000 ], [ 577719.000000, 223221.400000 ], [ 577766.800000, 223261.400000 ], [ 577982.300000, 223408.000000 ], [ 577986.700000, 223427.200000 ], [ 577981.700000, 223435.300000 ], [ 577879.900000, 223464.100000 ], [ 577769.900000, 223533.600000 ], [ 577766.400000, 223550.900000 ], [ 577870.400000, 223713.400000 ], [ 577914.600000, 223769.700000 ], [ 578146.700000, 223971.500000 ], [ 578151.700000, 223992.700000 ], [ 578140.810000, 224009.240000 ], [ 578092.700000, 224014.500000 ], [ 578031.200000, 224005.700000 ], [ 577876.700000, 223963.900000 ], [ 577774.900000, 223944.200000 ], [ 577551.100000, 223837.400000 ], [ 577353.000000, 223760.000000 ], [ 577276.500000, 223757.300000 ], [ 577195.600000, 223771.700000 ], [ 577159.600000, 223788.300000 ], [ 577125.400000, 223824.100000 ], [ 577122.300000, 223876.300000 ], [ 577098.500000, 223940.100000 ], [ 577079.900000, 224016.600000 ], [ 577004.900000, 224149.100000 ], [ 577003.400000, 224227.100000 ], [ 576960.000000, 224342.500000 ], [ 576966.600000, 224372.100000 ], [ 577039.600000, 224417.600000 ], [ 577074.000000, 224455.200000 ], [ 577107.900000, 224479.800000 ], [ 577131.700000, 224546.400000 ], [ 577168.000000, 224540.500000 ], [ 577312.000000, 224541.300000 ], [ 577399.500000, 224514.500000 ], [ 577479.900000, 224535.400000 ], [ 577550.700000, 224567.000000 ], [ 577634.900000, 224615.900000 ], [ 577713.700000, 224682.500000 ], [ 577796.200000, 224719.600000 ], [ 577890.200000, 224750.400000 ], [ 578092.400000, 224843.900000 ], [ 578338.100000, 224932.700000 ], [ 578522.700000, 224978.300000 ], [ 578625.700000, 225012.800000 ], [ 579041.000000, 225210.500000 ], [ 579066.500000, 225227.500000 ], [ 579097.700000, 225265.300000 ], [ 579114.800000, 225302.400000 ], [ 578991.400000, 225358.500000 ], [ 578955.400000, 225372.400000 ], [ 578879.000000, 225374.300000 ], [ 578775.300000, 225390.600000 ], [ 578751.800000, 225418.600000 ], [ 578736.300000, 225425.600000 ], [ 578615.000000, 225429.800000 ], [ 578410.500000, 225364.300000 ], [ 578374.300000, 225368.800000 ], [ 578323.800000, 225399.500000 ], [ 578342.300000, 225393.300000 ], [ 578381.300000, 225392.800000 ], [ 578404.800000, 225402.800000 ], [ 578418.500000, 225414.300000 ], [ 578466.500000, 225495.600000 ], [ 578532.800000, 225551.100000 ], [ 578621.300000, 225584.100000 ], [ 578684.300000, 225593.800000 ], [ 578906.300000, 225656.300000 ], [ 578979.800000, 225664.600000 ], [ 579030.800000, 225651.600000 ], [ 579106.800000, 225666.100000 ], [ 579156.300000, 225667.100000 ], [ 579223.800000, 225685.100000 ], [ 579346.300000, 225693.600000 ], [ 579367.000000, 225708.600000 ], [ 579390.500000, 225746.300000 ], [ 579478.800000, 225769.600000 ], [ 579607.900000, 225869.500000 ], [ 579730.000000, 225918.600000 ], [ 579805.500000, 225909.600000 ], [ 579826.300000, 225915.600000 ], [ 579832.800000, 225930.900000 ], [ 579828.800000, 225941.600000 ], [ 579743.300000, 225956.600000 ], [ 579728.800000, 225980.600000 ], [ 579719.000000, 226016.100000 ], [ 579707.500000, 226027.100000 ], [ 579557.000000, 226058.600000 ], [ 579487.300000, 226052.100000 ], [ 579432.500000, 226085.900000 ], [ 579408.000000, 226091.400000 ], [ 579369.800000, 226087.100000 ], [ 579357.000000, 226096.200000 ], [ 579358.000000, 226111.100000 ], [ 579371.300000, 226124.100000 ], [ 579444.800000, 226124.900000 ], [ 579475.000000, 226131.400000 ], [ 579580.200000, 226200.000000 ], [ 579606.700000, 226292.800000 ], [ 579631.400000, 226348.600000 ], [ 579649.100000, 226375.500000 ], [ 579730.200000, 226446.300000 ], [ 579742.500000, 226470.700000 ], [ 579756.000000, 226561.900000 ], [ 579766.400000, 226729.200000 ], [ 579730.300000, 226743.000000 ], [ 579546.200000, 226769.900000 ], [ 579505.000000, 226763.800000 ], [ 579371.900000, 226714.200000 ], [ 579352.100000, 226715.700000 ], [ 579333.000000, 226727.400000 ], [ 579302.900000, 226762.000000 ], [ 579282.600000, 226799.500000 ], [ 579259.300000, 226899.900000 ], [ 579263.200000, 226932.500000 ], [ 579284.100000, 226997.700000 ], [ 579281.600000, 227063.400000 ], [ 579226.700000, 227141.200000 ], [ 579247.200000, 227134.800000 ], [ 579299.700000, 227138.500000 ], [ 579605.400000, 227191.000000 ], [ 579776.500000, 227196.400000 ], [ 579857.700000, 227179.900000 ], [ 580013.200000, 227119.900000 ], [ 580125.700000, 227049.400000 ], [ 580132.200000, 227047.700000 ], [ 580175.000000, 227077.000000 ], [ 580255.500000, 227204.400000 ], [ 580467.600000, 227320.100000 ], [ 580542.000000, 227353.200000 ], [ 580604.900000, 227407.300000 ], [ 580665.578000, 227470.364000 ], [ 580662.659000, 227485.213000 ], [ 580685.400000, 227497.200000 ], [ 580695.400000, 227548.900000 ], [ 580689.200000, 227576.800000 ], [ 580671.677000, 227596.021000 ], [ 580697.400000, 227608.300000 ], [ 580721.600000, 227608.700000 ], [ 580868.400000, 227744.800000 ], [ 581044.100000, 227865.600000 ], [ 581209.900000, 227947.000000 ], [ 581231.600000, 227966.900000 ], [ 581261.500000, 228010.800000 ], [ 581262.400000, 228040.900000 ], [ 581279.500000, 228040.800000 ], [ 581282.900000, 228059.300000 ], [ 581287.077000, 228109.396000 ], [ 581275.500000, 228158.500000 ], [ 581272.600000, 228236.300000 ], [ 581249.100000, 228357.200000 ], [ 581258.700000, 228434.100000 ], [ 581276.131000, 228433.788000 ], [ 581301.947000, 228488.519000 ], [ 581289.600000, 228503.300000 ], [ 581309.400000, 228507.800000 ], [ 581321.300000, 228522.800000 ], [ 581353.200000, 228585.900000 ], [ 581421.700000, 228682.000000 ], [ 581440.400000, 228639.300000 ], [ 581453.500000, 228625.600000 ], [ 581492.200000, 228623.700000 ], [ 581566.600000, 228656.800000 ], [ 581602.900000, 228691.200000 ], [ 581639.100000, 228739.300000 ], [ 581676.600000, 228807.500000 ], [ 581706.600000, 228885.600000 ], [ 581732.900000, 228913.100000 ], [ 581764.700000, 228923.700000 ], [ 581868.500000, 228928.700000 ], [ 581879.700000, 228924.300000 ], [ 581887.200000, 228910.600000 ], [ 581886.600000, 228894.300000 ], [ 581840.400000, 228831.200000 ], [ 581809.700000, 228738.700000 ], [ 581810.400000, 228700.000000 ], [ 581822.900000, 228643.100000 ], [ 581827.900000, 228629.300000 ], [ 581849.400000, 228623.700000 ], [ 581921.600000, 228656.200000 ], [ 582000.400000, 228707.500000 ], [ 582021.629000, 228704.305000 ], [ 582074.200000, 228776.100000 ], [ 582108.400000, 228804.900000 ], [ 582161.700000, 228831.600000 ], [ 582256.800000, 228874.100000 ], [ 582324.600000, 228874.800000 ], [ 582338.300000, 228867.900000 ], [ 582323.500000, 228841.200000 ], [ 582297.500000, 228819.900000 ], [ 582279.100000, 228792.600000 ], [ 582247.400000, 228676.600000 ], [ 582241.600000, 228435.000000 ], [ 582210.400000, 228246.800000 ], [ 582212.900000, 228216.200000 ], [ 582270.400000, 228094.900000 ], [ 582273.500000, 228074.900000 ], [ 582265.400000, 227949.900000 ], [ 582239.100000, 227861.800000 ], [ 582245.000000, 227828.700000 ], [ 582307.200000, 227852.400000 ], [ 582344.100000, 227874.300000 ], [ 582395.400000, 227918.700000 ], [ 582462.900000, 228015.600000 ], [ 582526.600000, 228069.900000 ], [ 582567.900000, 228126.200000 ], [ 582612.900000, 228190.600000 ], [ 582675.400000, 228306.200000 ], [ 582728.500000, 228339.300000 ], [ 582797.200000, 228401.800000 ], [ 582826.000000, 228416.200000 ], [ 582989.100000, 228538.100000 ], [ 583053.500000, 228550.600000 ], [ 583118.000000, 228543.100000 ], [ 583221.200000, 228574.100000 ], [ 583232.200000, 228568.300000 ], [ 583236.100000, 228527.800000 ], [ 583254.900000, 228499.700000 ], [ 583298.716000, 228447.146000 ], [ 583319.900000, 228441.000000 ], [ 583484.900000, 228525.300000 ], [ 583538.000000, 228545.300000 ], [ 583553.000000, 228534.700000 ], [ 583554.200000, 228511.600000 ], [ 583578.000000, 228474.100000 ], [ 583598.000000, 228459.100000 ], [ 583650.500000, 228437.800000 ], [ 583739.900000, 228452.200000 ], [ 583799.900000, 228449.700000 ], [ 583853.900000, 228435.000000 ], [ 583898.100000, 228395.100000 ], [ 583941.600000, 228396.300000 ], [ 583994.600000, 228421.600000 ], [ 584079.700000, 228486.100000 ], [ 584368.500000, 228578.600000 ], [ 584423.500000, 228601.700000 ], [ 584467.200000, 228645.500000 ], [ 584491.000000, 228679.200000 ], [ 584588.500000, 228753.600000 ], [ 584640.400000, 228776.100000 ], [ 584673.500000, 228816.700000 ], [ 584701.000000, 228838.600000 ], [ 584732.200000, 228883.000000 ], [ 584784.100000, 228925.500000 ], [ 584801.600000, 228951.700000 ], [ 584857.200000, 228978.900000 ], [ 584843.500000, 229055.000000 ], [ 584872.600000, 229103.900000 ], [ 584934.100000, 229178.600000 ], [ 584989.400000, 229199.000000 ], [ 585021.700000, 229218.600000 ], [ 585088.700000, 229233.400000 ], [ 585131.600000, 229231.300000 ], [ 585284.900000, 229260.000000 ], [ 585441.500000, 229264.900000 ], [ 585537.200000, 229327.000000 ], [ 585610.200000, 229355.900000 ], [ 586068.000000, 229458.400000 ], [ 586178.700000, 229465.400000 ], [ 586227.000000, 229493.700000 ], [ 586281.000000, 229507.900000 ], [ 586313.900000, 229459.900000 ], [ 586380.900000, 229399.300000 ], [ 586437.700000, 229369.300000 ], [ 586493.700000, 229352.600000 ], [ 586550.200000, 229350.600000 ], [ 586725.700000, 229389.200000 ], [ 586811.100000, 229388.900000 ], [ 586910.800000, 229411.200000 ], [ 587046.900000, 229424.700000 ], [ 587097.700000, 229437.600000 ], [ 587208.200000, 229452.400000 ], [ 587337.200000, 229491.200000 ], [ 587391.400000, 229463.400000 ], [ 587441.200000, 229453.100000 ], [ 587570.400000, 229406.900000 ], [ 587612.400000, 229378.400000 ], [ 587674.700000, 229323.100000 ], [ 587698.400000, 229320.300000 ], [ 587805.400000, 229399.700000 ], [ 587886.200000, 229449.800000 ], [ 587981.900000, 229532.900000 ], [ 588050.200000, 229567.900000 ], [ 588109.400000, 229614.000000 ], [ 588402.900000, 229702.500000 ], [ 588642.400000, 229706.700000 ], [ 588755.700000, 229734.600000 ], [ 588771.400000, 229725.600000 ], [ 588772.800000, 229705.600000 ], [ 588922.600000, 229771.900000 ], [ 589000.900000, 229794.700000 ], [ 589057.900000, 229801.700000 ], [ 589189.100000, 229782.200000 ], [ 589231.400000, 229782.700000 ], [ 589313.600000, 229816.900000 ], [ 589389.400000, 229808.400000 ], [ 589409.600000, 229811.900000 ], [ 589602.900000, 229867.200000 ], [ 589674.900000, 229875.700000 ], [ 589762.900000, 229904.400000 ], [ 589779.400000, 229901.900000 ], [ 589789.400000, 229891.200000 ], [ 589779.600000, 229867.400000 ], [ 589783.600000, 229859.900000 ], [ 589943.100000, 229826.200000 ], [ 590012.400000, 229831.400000 ], [ 590104.100000, 229814.600000 ], [ 590238.900000, 229768.400000 ], [ 590310.900000, 229766.800000 ], [ 590465.400000, 229796.500000 ], [ 590609.400000, 229836.800000 ], [ 590765.900000, 229852.000000 ], [ 590883.100000, 229904.300000 ], [ 591004.800000, 229940.800000 ], [ 591018.600000, 229836.000000 ], [ 591030.600000, 229824.500000 ], [ 591082.900000, 229812.000000 ], [ 591073.300000, 229600.800000 ], [ 591222.600000, 229632.800000 ], [ 591329.600000, 229681.300000 ], [ 591421.000000, 229679.800000 ], [ 591530.500000, 229715.000000 ], [ 591547.500000, 229708.000000 ], [ 591556.500000, 229694.300000 ], [ 591593.700000, 229586.000000 ], [ 591628.200000, 229507.300000 ], [ 591682.200000, 229510.300000 ], [ 591803.700000, 229540.000000 ], [ 591874.500000, 229504.500000 ], [ 591923.000000, 229513.800000 ], [ 592030.700000, 229508.800000 ], [ 592069.700000, 229485.000000 ], [ 592080.000000, 229472.300000 ], [ 592084.300000, 229452.400000 ], [ 592157.200000, 229554.800000 ], [ 592179.000000, 229630.500000 ], [ 592195.700000, 229789.300000 ], [ 592182.700000, 229845.000000 ], [ 592157.500000, 229887.000000 ], [ 592229.500000, 229930.500000 ], [ 592604.700000, 229968.500000 ], [ 592721.700000, 229968.300000 ], [ 593089.400000, 230035.300000 ], [ 593262.200000, 230103.900000 ], [ 593312.900000, 230111.400000 ], [ 593355.700000, 230109.400000 ], [ 593559.500000, 230142.200000 ], [ 593602.200000, 230172.700000 ], [ 593659.400000, 230230.100000 ], [ 593695.200000, 230284.600000 ], [ 593748.300000, 230320.700000 ], [ 593850.000000, 230342.200000 ], [ 594024.600000, 230417.200000 ], [ 594049.000000, 230375.400000 ], [ 594122.900000, 230319.000000 ], [ 594328.500000, 230230.900000 ], [ 594384.000000, 230192.800000 ], [ 594414.500000, 230205.600000 ], [ 594440.800000, 230228.200000 ], [ 594467.500000, 230274.700000 ], [ 594502.700000, 230290.600000 ], [ 594676.200000, 230297.000000 ], [ 594835.300000, 230292.300000 ], [ 594886.300000, 230300.300000 ], [ 594949.900000, 230334.700000 ], [ 595288.500000, 230626.600000 ], [ 595474.000000, 230690.300000 ], [ 595671.500000, 230780.600000 ], [ 595826.900000, 230812.400000 ], [ 595859.500000, 230824.500000 ], [ 596184.000000, 230994.100000 ], [ 596225.500000, 231011.600000 ], [ 596278.400000, 231024.300000 ], [ 596406.800000, 231081.300000 ], [ 596511.700000, 231157.000000 ], [ 596568.200000, 231186.700000 ], [ 596713.200000, 231238.100000 ], [ 596765.300000, 231246.600000 ], [ 596807.100000, 231244.400000 ], [ 596813.300000, 231260.000000 ], [ 596826.800000, 231271.500000 ], [ 596915.500000, 231316.800000 ], [ 596959.500000, 231346.500000 ], [ 596993.300000, 231377.500000 ], [ 597026.200000, 231427.100000 ], [ 597122.200000, 231477.000000 ], [ 597232.700000, 231513.600000 ], [ 597307.400000, 231558.900000 ], [ 597349.100000, 231598.100000 ], [ 597413.100000, 231688.100000 ], [ 597422.200000, 231709.700000 ], [ 597455.700000, 231734.000000 ], [ 597465.600000, 231727.100000 ], [ 597479.800000, 231733.800000 ], [ 597522.300000, 231736.400000 ], [ 597557.700000, 231772.300000 ], [ 597616.600000, 231787.000000 ], [ 597673.100000, 231832.900000 ], [ 597743.900000, 231876.100000 ], [ 597807.000000, 231897.300000 ], [ 597771.800000, 231826.300000 ], [ 597775.500000, 231809.300000 ], [ 597784.800000, 231801.600000 ], [ 597810.600000, 231797.600000 ], [ 597904.300000, 231820.700000 ], [ 597954.700000, 231821.000000 ], [ 597994.500000, 231829.100000 ], [ 598013.200000, 231835.500000 ], [ 598058.500000, 231867.800000 ], [ 598098.300000, 231877.800000 ], [ 598113.000000, 231877.800000 ], [ 598117.400000, 231868.300000 ], [ 598134.200000, 231859.800000 ], [ 598264.400000, 231868.500000 ], [ 598431.400000, 231956.300000 ], [ 598617.700000, 231959.800000 ], [ 598718.200000, 231998.300000 ], [ 598779.200000, 231990.000000 ], [ 598851.100000, 232019.900000 ], [ 598906.200000, 232057.500000 ], [ 598930.400000, 232067.300000 ], [ 598995.400000, 232061.000000 ], [ 599008.700000, 232082.000000 ], [ 599019.200000, 232117.800000 ], [ 599100.500000, 232180.000000 ], [ 599106.300000, 232190.800000 ], [ 599099.600000, 232213.800000 ], [ 599068.700000, 232249.300000 ], [ 599020.200000, 232281.800000 ], [ 599020.700000, 232290.800000 ], [ 599100.200000, 232282.100000 ], [ 599306.000000, 232229.800000 ], [ 599458.900000, 232252.300000 ], [ 599486.200000, 232240.000000 ], [ 599502.400000, 232239.500000 ], [ 599591.800000, 232275.200000 ], [ 599757.000000, 232357.900000 ], [ 600065.600000, 232535.200000 ], [ 600125.200000, 232555.500000 ], [ 600146.700000, 232549.500000 ], [ 600176.300000, 232492.500000 ], [ 600218.700000, 232459.600000 ], [ 600426.300000, 232403.500000 ], [ 600487.900000, 232402.500000 ], [ 600586.400000, 232363.400000 ], [ 600737.500000, 232531.700000 ], [ 600899.400000, 232650.800000 ], [ 600944.900000, 232669.500000 ], [ 600995.200000, 232679.500000 ], [ 601098.500000, 232671.600000 ], [ 601189.100000, 232622.700000 ], [ 601204.200000, 232610.600000 ], [ 601223.900000, 232554.500000 ], [ 601265.900000, 232536.500000 ], [ 601338.400000, 232467.000000 ], [ 601338.500000, 232483.900000 ], [ 601313.500000, 232551.400000 ], [ 601314.000000, 232565.700000 ], [ 601322.000000, 232569.900000 ], [ 601336.500000, 232564.900000 ], [ 601363.100000, 232536.200000 ], [ 601455.900000, 232484.300000 ], [ 601486.000000, 232483.600000 ], [ 601519.000000, 232471.300000 ], [ 601526.000000, 232474.900000 ], [ 601523.800000, 232486.400000 ], [ 601488.800000, 232508.900000 ], [ 601468.200000, 232560.500000 ], [ 601607.800000, 232522.300000 ], [ 601662.900000, 232517.900000 ], [ 601737.800000, 232537.300000 ], [ 601781.800000, 232564.800000 ], [ 601840.800000, 232628.400000 ], [ 601871.200000, 232639.900000 ], [ 601938.200000, 232643.200000 ], [ 601996.900000, 232638.400000 ], [ 602198.300000, 232703.900000 ], [ 602241.300000, 232709.700000 ], [ 602284.500000, 232703.700000 ], [ 602325.000000, 232711.700000 ], [ 602353.000000, 232720.900000 ], [ 602393.800000, 232754.200000 ], [ 602461.047000, 232777.599000 ], [ 602540.428000, 232788.169000 ], [ 602587.500000, 232787.200000 ], [ 602639.100000, 232803.200000 ], [ 602702.300000, 232788.400000 ], [ 602748.300000, 232792.200000 ], [ 602768.800000, 232803.200000 ], [ 602807.800000, 232860.400000 ], [ 602903.800000, 232895.200000 ], [ 603043.800000, 232895.700000 ], [ 603285.100000, 232955.900000 ], [ 603380.800000, 232967.700000 ], [ 603433.777000, 232982.088000 ], [ 603499.226000, 233029.852000 ], [ 603636.502000, 233084.535000 ], [ 603645.046000, 233093.079000 ], [ 603630.237000, 233235.481000 ], [ 603634.907000, 233245.406000 ], [ 603712.300000, 233208.400000 ], [ 603798.100000, 233193.600000 ], [ 603847.300000, 233195.400000 ], [ 603909.800000, 233251.900000 ], [ 604023.300000, 233276.900000 ], [ 604297.600000, 233356.400000 ], [ 604375.300000, 233406.900000 ], [ 604478.600000, 233461.600000 ], [ 604865.800000, 233581.600000 ], [ 605157.812000, 233689.595000 ], [ 605254.100000, 233742.300000 ], [ 605565.100000, 233871.400000 ], [ 605783.100000, 233970.400000 ], [ 605938.300000, 234002.300000 ], [ 605976.100000, 233991.300000 ], [ 606049.600000, 233998.800000 ], [ 606109.200000, 233973.900000 ], [ 606155.500000, 233990.200000 ], [ 606190.200000, 234010.200000 ], [ 606234.700000, 234050.300000 ], [ 606277.700000, 234109.100000 ], [ 606277.000000, 234140.800000 ], [ 606299.000000, 234153.200000 ], [ 606346.200000, 234214.400000 ], [ 606426.000000, 234265.800000 ], [ 606480.700000, 234330.300000 ], [ 606585.000000, 234424.200000 ], [ 606650.700000, 234461.500000 ], [ 606683.000000, 234472.300000 ], [ 606696.500000, 234492.800000 ], [ 606736.600000, 234520.500000 ], [ 606829.300000, 234560.500000 ], [ 606894.800000, 234598.700000 ], [ 606971.100000, 234659.100000 ], [ 607067.200000, 234707.600000 ], [ 607134.200000, 234751.700000 ], [ 607202.200000, 234832.700000 ], [ 607249.500000, 234866.300000 ], [ 607635.400000, 235032.100000 ], [ 607666.300000, 235012.600000 ], [ 607690.800000, 234981.400000 ], [ 607712.100000, 234908.600000 ], [ 607712.300000, 234877.400000 ], [ 607701.100000, 234826.100000 ], [ 607708.600000, 234794.900000 ], [ 607698.100000, 234784.100000 ], [ 607650.300000, 234775.100000 ], [ 607628.000000, 234756.900000 ], [ 607620.800000, 234735.100000 ], [ 607628.800000, 234688.600000 ], [ 607602.800000, 234638.900000 ], [ 607607.600000, 234626.100000 ], [ 607621.600000, 234625.100000 ], [ 607673.300000, 234683.900000 ], [ 607692.600000, 234690.100000 ], [ 607702.800000, 234682.400000 ], [ 607702.100000, 234654.600000 ], [ 607662.600000, 234576.600000 ], [ 607663.800000, 234559.900000 ], [ 607674.100000, 234550.900000 ], [ 607772.600000, 234592.000000 ], [ 607811.800000, 234630.600000 ], [ 607966.100000, 234601.100000 ], [ 607994.800000, 234584.600000 ], [ 608016.300000, 234582.400000 ], [ 608076.600000, 234591.400000 ], [ 608160.800000, 234624.600000 ], [ 608223.100000, 234679.900000 ], [ 608286.100000, 234668.900000 ], [ 608406.600000, 234687.100000 ], [ 608498.800000, 234672.900000 ], [ 608508.100000, 234683.400000 ], [ 608494.800000, 234727.600000 ], [ 608525.800000, 234752.100000 ], [ 608596.100000, 234778.600000 ], [ 608614.300000, 234775.600000 ], [ 608650.800000, 234735.400000 ], [ 608754.100000, 234701.900000 ], [ 608760.300000, 234684.900000 ], [ 608749.800000, 234657.400000 ], [ 608753.300000, 234646.100000 ], [ 608818.800000, 234622.600000 ], [ 608835.300000, 234563.900000 ], [ 608882.100000, 234517.400000 ], [ 608956.800000, 234499.600000 ], [ 608996.600000, 234478.400000 ], [ 609010.100000, 234459.900000 ], [ 609019.300000, 234413.900000 ], [ 609058.800000, 234379.100000 ], [ 609071.800000, 234380.900000 ], [ 609093.600000, 234400.100000 ], [ 609171.300000, 234434.600000 ], [ 609208.100000, 234533.600000 ], [ 609288.100000, 234589.900000 ], [ 609332.100000, 234599.600000 ], [ 609409.300000, 234587.900000 ], [ 609429.400000, 234601.600000 ], [ 609442.200000, 234572.600000 ], [ 609412.500000, 234548.600000 ], [ 609349.500000, 234529.400000 ], [ 609314.200000, 234502.100000 ], [ 609297.700000, 234475.100000 ], [ 609270.700000, 234383.100000 ], [ 609201.500000, 234325.100000 ], [ 609195.200000, 234303.900000 ], [ 609204.200000, 234294.400000 ], [ 609243.200000, 234319.900000 ], [ 609292.500000, 234330.600000 ], [ 609357.200000, 234359.900000 ], [ 609366.900000, 234355.200000 ], [ 609363.000000, 234339.600000 ], [ 609275.200000, 234268.900000 ], [ 609218.000000, 234187.900000 ], [ 609137.000000, 234140.100000 ], [ 609128.200000, 234126.900000 ], [ 609075.600000, 234101.900000 ], [ 609053.500000, 234037.500000 ], [ 609032.000000, 233995.700000 ], [ 608990.700000, 233963.400000 ], [ 608964.000000, 233929.900000 ], [ 608929.600000, 233911.000000 ], [ 608875.200000, 233825.600000 ], [ 608872.000000, 233783.100000 ], [ 608911.000000, 233725.600000 ], [ 608932.000000, 233681.900000 ], [ 608996.500000, 233586.900000 ], [ 609031.900000, 233557.200000 ], [ 609047.500000, 233552.400000 ], [ 609063.300000, 233515.400000 ], [ 609072.600000, 233393.100000 ], [ 609103.700000, 233294.100000 ], [ 609096.500000, 233229.100000 ], [ 609080.200000, 233183.100000 ], [ 609038.500000, 233155.400000 ], [ 608936.200000, 233128.400000 ], [ 608906.700000, 233113.400000 ], [ 608880.500000, 233042.900000 ], [ 608781.200000, 232957.900000 ], [ 608738.200000, 232907.600000 ], [ 608727.000000, 232879.100000 ], [ 608718.000000, 232822.400000 ], [ 608693.000000, 232804.400000 ], [ 608638.500000, 232796.100000 ], [ 608607.500000, 232780.400000 ], [ 608535.000000, 232699.400000 ], [ 608487.700000, 232635.400000 ], [ 608429.500000, 232530.900000 ], [ 608404.000000, 232500.100000 ], [ 608364.700000, 232464.400000 ], [ 608252.500000, 232393.100000 ], [ 608099.700000, 232258.600000 ], [ 608016.700000, 232214.600000 ], [ 607867.000000, 232102.400000 ], [ 607803.700000, 232023.100000 ], [ 607737.200000, 231960.600000 ], [ 607671.500000, 231872.500000 ], [ 607717.200000, 231784.400000 ], [ 607722.500000, 231637.100000 ], [ 607731.000000, 231587.900000 ], [ 607781.000000, 231489.900000 ], [ 607809.000000, 231376.600000 ], [ 607842.200000, 231286.900000 ], [ 607885.500000, 231230.900000 ], [ 607942.302000, 231206.919000 ], [ 607958.200000, 231191.100000 ], [ 608074.600000, 231055.400000 ], [ 608119.100000, 230965.900000 ], [ 608122.900000, 230930.100000 ], [ 608118.600000, 230892.400000 ], [ 608068.400000, 230704.100000 ], [ 608043.395000, 230680.014000 ], [ 607993.614000, 230647.848000 ], [ 607984.500000, 230631.600000 ], [ 607977.100000, 230581.400000 ], [ 607938.900000, 230525.600000 ], [ 607943.068000, 230440.303000 ], [ 607938.600000, 230426.600000 ], [ 607864.400000, 230322.100000 ], [ 607869.900000, 230302.900000 ], [ 607915.200000, 230277.300000 ], [ 607949.961000, 230248.075000 ], [ 607938.473000, 230141.621000 ], [ 607947.000000, 230134.400000 ], [ 607921.991000, 230028.056000 ], [ 607917.300000, 229965.600000 ], [ 607940.000000, 229893.100000 ], [ 607944.300000, 229859.600000 ], [ 607895.500000, 229614.900000 ], [ 607890.300000, 229409.900000 ], [ 607827.000000, 229254.200000 ], [ 607908.100000, 229212.100000 ], [ 607936.600000, 229186.600000 ], [ 608041.900000, 229033.600000 ], [ 608172.200000, 228875.800000 ], [ 608272.000000, 228741.600000 ], [ 608284.000000, 228734.500000 ], [ 608380.900000, 228623.500000 ], [ 608363.500000, 228587.000000 ], [ 608343.500000, 228566.000000 ], [ 608300.200000, 228538.800000 ], [ 608250.100000, 228518.900000 ], [ 607956.400000, 228517.900000 ], [ 607604.500000, 228465.700000 ], [ 607642.600000, 228334.500000 ], [ 607812.200000, 228187.200000 ], [ 607853.000000, 228176.800000 ] ] } } +, +{ "type": "Feature", "properties": { "FID": 6.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 699053.000000, 220459.500000 ], [ 699032.100000, 220464.200000 ], [ 698991.524000, 220489.924000 ], [ 698983.800000, 220485.123000 ], [ 698974.500000, 220488.700000 ], [ 698973.576000, 220501.430000 ], [ 698844.500000, 220595.300000 ], [ 698618.000000, 220775.900000 ], [ 698504.500000, 220819.500000 ], [ 698375.400000, 220825.800000 ], [ 698237.700000, 220862.900000 ], [ 697985.100000, 221015.500000 ], [ 697960.800000, 221079.000000 ], [ 697879.400000, 221230.700000 ], [ 697846.400000, 221312.800000 ], [ 697845.600000, 221335.600000 ], [ 697820.600000, 221378.700000 ], [ 697816.100000, 221405.700000 ], [ 697826.600000, 221409.000000 ], [ 697853.200000, 221381.600000 ], [ 697878.400000, 221372.500000 ], [ 697935.700000, 221380.900000 ], [ 697939.400000, 221388.900000 ], [ 697890.100000, 221398.800000 ], [ 697860.900000, 221425.400000 ], [ 697850.400000, 221456.700000 ], [ 697842.100000, 221522.700000 ], [ 697834.000000, 221530.100000 ], [ 697815.900000, 221533.800000 ], [ 697782.600000, 221499.900000 ], [ 697772.900000, 221498.400000 ], [ 697765.600000, 221501.400000 ], [ 697753.400000, 221533.200000 ], [ 697735.600000, 221554.700000 ], [ 697727.900000, 221552.200000 ], [ 697705.400000, 221521.400000 ], [ 697665.600000, 221519.900000 ], [ 697657.000000, 221512.200000 ], [ 697651.000000, 221471.500000 ], [ 697635.000000, 221430.400000 ], [ 697631.400000, 221380.200000 ], [ 697587.800000, 221382.400000 ], [ 697511.400000, 221410.100000 ], [ 697299.100000, 221396.100000 ], [ 697223.400000, 221403.300000 ], [ 697207.200000, 221395.400000 ], [ 697155.600000, 221336.400000 ], [ 697003.000000, 221328.800000 ], [ 696911.600000, 221298.900000 ], [ 696829.100000, 221294.100000 ], [ 696771.100000, 221259.200000 ], [ 696719.500000, 221210.600000 ], [ 696698.500000, 221198.200000 ], [ 696660.800000, 221199.700000 ], [ 696516.100000, 221233.300000 ], [ 696400.500000, 221197.700000 ], [ 696229.100000, 221115.300000 ], [ 696206.900000, 221095.600000 ], [ 696124.600000, 220951.500000 ], [ 696094.900000, 220918.200000 ], [ 696021.400000, 220914.100000 ], [ 695930.600000, 221026.100000 ], [ 695907.300000, 221041.100000 ], [ 695892.100000, 221039.600000 ], [ 695562.100000, 220872.000000 ], [ 695520.900000, 220880.200000 ], [ 695488.300000, 220846.200000 ], [ 695410.600000, 220799.400000 ], [ 695387.000000, 220845.900000 ], [ 695414.500000, 220867.200000 ], [ 695424.500000, 220883.400000 ], [ 695425.800000, 220913.400000 ], [ 695345.200000, 221090.500000 ], [ 695233.700000, 221136.300000 ], [ 694999.400000, 221215.900000 ], [ 694898.300000, 221244.600000 ], [ 694865.000000, 221244.800000 ], [ 694714.200000, 221310.800000 ], [ 694696.400000, 221312.000000 ], [ 694603.900000, 221286.900000 ], [ 694546.700000, 221285.400000 ], [ 694343.300000, 221115.600000 ], [ 694321.800000, 221093.000000 ], [ 694304.900000, 221045.900000 ], [ 694271.200000, 221018.900000 ], [ 694202.600000, 220968.600000 ], [ 693984.700000, 220847.800000 ], [ 693948.500000, 220805.300000 ], [ 693880.300000, 220760.700000 ], [ 693823.600000, 220696.400000 ], [ 693738.700000, 220569.900000 ], [ 693696.400000, 220525.600000 ], [ 693653.300000, 220489.100000 ], [ 693557.200000, 220439.000000 ], [ 693513.000000, 220404.100000 ], [ 693440.700000, 220342.200000 ], [ 693331.300000, 220221.500000 ], [ 693311.900000, 220182.900000 ], [ 693303.900000, 220090.200000 ], [ 693287.200000, 220032.800000 ], [ 693243.400000, 219926.200000 ], [ 693182.700000, 219879.300000 ], [ 693200.900000, 219777.100000 ], [ 693160.200000, 219715.800000 ], [ 693070.000000, 219548.700000 ], [ 693031.900000, 219533.500000 ], [ 692947.400000, 219524.000000 ], [ 692879.100000, 219493.300000 ], [ 692814.900000, 219487.900000 ], [ 692798.900000, 219481.500000 ], [ 692768.700000, 219454.700000 ], [ 692722.600000, 219373.400000 ], [ 692694.400000, 219345.000000 ], [ 692604.200000, 219316.100000 ], [ 692527.700000, 219280.000000 ], [ 692482.700000, 219245.500000 ], [ 692430.900000, 219242.400000 ], [ 692421.800000, 219343.300000 ], [ 692424.400000, 219421.400000 ], [ 692446.400000, 219452.500000 ], [ 692456.200000, 219515.700000 ], [ 692440.300000, 219591.300000 ], [ 692442.400000, 219673.500000 ], [ 692415.200000, 219745.300000 ], [ 692416.200000, 219762.600000 ], [ 692403.400000, 219781.600000 ], [ 692377.100000, 219925.200000 ], [ 692366.500000, 219943.300000 ], [ 692339.900000, 219955.800000 ], [ 692311.900000, 219957.100000 ], [ 692208.700000, 219952.900000 ], [ 692063.400000, 219928.900000 ], [ 692044.400000, 219936.100000 ], [ 692012.100000, 219936.600000 ], [ 691924.300000, 219895.500000 ], [ 691879.200000, 219888.100000 ], [ 691854.900000, 219892.600000 ], [ 691783.500000, 219922.700000 ], [ 691660.000000, 219942.100000 ], [ 691559.600000, 219980.000000 ], [ 691536.200000, 219995.800000 ], [ 691506.400000, 220031.100000 ], [ 691486.400000, 220076.600000 ], [ 691483.700000, 220096.100000 ], [ 691494.400000, 220114.100000 ], [ 691553.300000, 220125.700000 ], [ 691576.000000, 220137.300000 ], [ 691613.500000, 220169.600000 ], [ 691648.000000, 220182.100000 ], [ 691698.200000, 220214.600000 ], [ 691787.200000, 220463.400000 ], [ 691785.400000, 220559.800000 ], [ 691798.900000, 220577.200000 ], [ 691858.500000, 220586.700000 ], [ 691858.000000, 220595.400000 ], [ 691834.300000, 220614.500000 ], [ 691732.500000, 220655.800000 ], [ 691713.300000, 220672.900000 ], [ 691677.400000, 220727.600000 ], [ 691674.700000, 220771.200000 ], [ 691723.400000, 220992.400000 ], [ 691724.000000, 221042.900000 ], [ 691712.600000, 221124.000000 ], [ 691534.400000, 221090.200000 ], [ 691457.000000, 221087.200000 ], [ 691429.700000, 221274.100000 ], [ 691385.200000, 221353.400000 ], [ 691310.700000, 221449.000000 ], [ 691259.700000, 221489.000000 ], [ 691139.100000, 221538.100000 ], [ 691044.300000, 221617.300000 ], [ 690972.300000, 221687.400000 ], [ 690954.300000, 221721.500000 ], [ 690952.800000, 221735.300000 ], [ 690960.000000, 221751.500000 ], [ 690972.300000, 221762.000000 ], [ 691035.800000, 221788.700000 ], [ 691042.200000, 221798.100000 ], [ 691036.000000, 221814.800000 ], [ 691020.800000, 221820.800000 ], [ 690943.400000, 221801.200000 ], [ 690819.300000, 221820.800000 ], [ 690755.800000, 221864.600000 ], [ 690730.000000, 221899.300000 ], [ 690694.200000, 221971.500000 ], [ 690667.000000, 222007.500000 ], [ 690639.800000, 222028.500000 ], [ 690570.000000, 222056.500000 ], [ 690530.400000, 222062.000000 ], [ 690367.900000, 222039.000000 ], [ 690304.900000, 222049.500000 ], [ 690299.900000, 222067.000000 ], [ 690310.900000, 222101.500000 ], [ 690308.500000, 222121.900000 ], [ 690274.500000, 222170.600000 ], [ 690271.600000, 222193.100000 ], [ 690287.900000, 222250.800000 ], [ 690328.300000, 222342.500000 ], [ 690352.200000, 222416.700000 ], [ 690388.100000, 222447.800000 ], [ 690415.600000, 222460.800000 ], [ 690422.700000, 222472.500000 ], [ 690401.400000, 222505.600000 ], [ 690382.600000, 222505.100000 ], [ 690333.700000, 222474.100000 ], [ 690277.200000, 222453.000000 ], [ 690211.600000, 222460.800000 ], [ 690182.700000, 222503.000000 ], [ 690168.600000, 222509.100000 ], [ 690161.400000, 222504.600000 ], [ 690148.200000, 222461.000000 ], [ 690137.500000, 222445.300000 ], [ 690083.900000, 222413.700000 ], [ 690057.600000, 222421.600000 ], [ 690040.900000, 222417.600000 ], [ 690019.900000, 222358.600000 ], [ 689834.600000, 222258.700000 ], [ 689791.300000, 222227.700000 ], [ 689732.400000, 222171.300000 ], [ 689395.100000, 222152.100000 ], [ 689379.100000, 222156.600000 ], [ 689333.600000, 222202.100000 ], [ 689316.100000, 222210.100000 ], [ 689286.500000, 222206.700000 ], [ 689211.900000, 222182.800000 ], [ 689178.600000, 222211.300000 ], [ 689165.100000, 222212.100000 ], [ 689029.300000, 222167.800000 ], [ 688858.900000, 222145.700000 ], [ 688796.600000, 222090.100000 ], [ 688777.900000, 222098.600000 ], [ 688740.600000, 222132.100000 ], [ 688727.600000, 222133.800000 ], [ 688714.500000, 222060.800000 ], [ 688686.400000, 222009.900000 ], [ 688702.900000, 222097.400000 ], [ 688702.400000, 222108.400000 ], [ 688696.200000, 222111.300000 ], [ 688620.900000, 222089.800000 ], [ 688576.400000, 222060.700000 ], [ 688508.800000, 222062.800000 ], [ 688396.500000, 222040.400000 ], [ 688193.100000, 222064.200000 ], [ 688116.600000, 222092.400000 ], [ 688098.000000, 222110.100000 ], [ 688093.300000, 222145.400000 ], [ 688125.600000, 222218.800000 ], [ 688129.400000, 222245.400000 ], [ 688072.400000, 222343.100000 ], [ 688076.800000, 222371.600000 ], [ 688071.200000, 222383.600000 ], [ 688020.900000, 222455.100000 ], [ 687936.000000, 222531.800000 ], [ 687900.600000, 222555.000000 ], [ 687869.800000, 222566.100000 ], [ 687779.000000, 222568.600000 ], [ 687716.200000, 222556.200000 ], [ 687682.000000, 222544.200000 ], [ 687710.400000, 222470.500000 ], [ 687780.500000, 222416.800000 ], [ 687832.000000, 222333.000000 ], [ 687891.700000, 222284.100000 ], [ 687902.500000, 222260.600000 ], [ 687897.700000, 222223.300000 ], [ 687863.200000, 222200.100000 ], [ 687840.500000, 222166.100000 ], [ 687806.700000, 222133.100000 ], [ 687805.100000, 222124.300000 ], [ 687814.700000, 222070.500000 ], [ 687797.400000, 222032.100000 ], [ 687795.800000, 221961.900000 ], [ 687796.800000, 221936.400000 ], [ 687828.200000, 221812.800000 ], [ 687818.000000, 221793.800000 ], [ 687778.700000, 221766.000000 ], [ 687756.200000, 221761.500000 ], [ 687623.700000, 221754.300000 ], [ 687514.700000, 221763.500000 ], [ 687411.164000, 221743.000000 ], [ 687380.100000, 221744.900000 ], [ 687329.900000, 221771.100000 ], [ 687247.600000, 221761.800000 ], [ 687211.000000, 221771.600000 ], [ 687184.300000, 221761.800000 ], [ 687116.300000, 221757.900000 ], [ 687014.700000, 221805.900000 ], [ 686969.600000, 221815.800000 ], [ 686948.700000, 221863.900000 ], [ 686941.000000, 221866.500000 ], [ 686922.300000, 221859.600000 ], [ 686912.800000, 221827.300000 ], [ 686904.900000, 221820.000000 ], [ 686841.400000, 221799.500000 ], [ 686787.200000, 221727.600000 ], [ 686758.700000, 221713.600000 ], [ 686715.200000, 221707.500000 ], [ 686638.900000, 221726.800000 ], [ 686570.500000, 221730.100000 ], [ 686431.100000, 221719.000000 ], [ 686340.000000, 221735.200000 ], [ 686333.400000, 221725.600000 ], [ 686376.100000, 221693.000000 ], [ 686644.800000, 221586.700000 ], [ 686655.000000, 221575.400000 ], [ 686657.300000, 221552.400000 ], [ 686647.135000, 221459.556000 ], [ 686555.100000, 221480.600000 ], [ 686479.200000, 221515.500000 ], [ 686364.900000, 221546.100000 ], [ 686134.300000, 221640.800000 ], [ 685990.100000, 221785.700000 ], [ 685903.100000, 221856.700000 ], [ 685844.900000, 221948.700000 ], [ 685771.400000, 221986.000000 ], [ 685746.900000, 222025.700000 ], [ 685693.600000, 222057.500000 ], [ 685638.900000, 222121.000000 ], [ 685615.900000, 222165.300000 ], [ 685616.400000, 222181.000000 ], [ 685646.200000, 222247.600000 ], [ 685647.400000, 222281.000000 ], [ 685562.000000, 222445.100000 ], [ 685523.700000, 222473.700000 ], [ 685490.800000, 222486.400000 ], [ 685385.400000, 222512.800000 ], [ 685360.100000, 222537.500000 ], [ 685350.100000, 222576.100000 ], [ 685360.400000, 222654.600000 ], [ 685356.700000, 222689.400000 ], [ 685317.700000, 222868.200000 ], [ 685257.900000, 223043.000000 ], [ 685228.300000, 223111.100000 ], [ 685099.600000, 223212.900000 ], [ 685082.400000, 223242.100000 ], [ 685076.400000, 223267.100000 ], [ 685080.400000, 223289.600000 ], [ 685107.400000, 223330.400000 ], [ 685094.500000, 223532.300000 ], [ 685082.100000, 223538.300000 ], [ 685080.300000, 223662.500000 ], [ 685094.600000, 223724.100000 ], [ 685157.800000, 223825.900000 ], [ 685161.800000, 223852.300000 ], [ 685152.600000, 223907.300000 ], [ 685115.800000, 223998.400000 ], [ 685111.500000, 224098.500000 ], [ 685030.600000, 224189.700000 ], [ 685022.200000, 224225.700000 ], [ 685023.500000, 224257.700000 ], [ 685050.800000, 224348.900000 ], [ 685049.100000, 224377.200000 ], [ 685032.900000, 224414.100000 ], [ 684984.600000, 224473.700000 ], [ 684971.000000, 224604.200000 ], [ 684991.300000, 224723.200000 ], [ 685038.000000, 224776.000000 ], [ 685047.800000, 224803.000000 ], [ 685055.300000, 224881.000000 ], [ 685090.877000, 224975.500000 ], [ 685074.642000, 225084.940000 ], [ 685058.200000, 225128.500000 ], [ 685058.700000, 225183.600000 ], [ 685025.900000, 225272.600000 ], [ 685032.000000, 225291.000000 ], [ 685078.100000, 225344.000000 ], [ 685077.400000, 225389.400000 ], [ 685026.900000, 225509.000000 ], [ 685021.100000, 225534.700000 ], [ 685023.500000, 225577.200000 ], [ 685012.200000, 225610.800000 ], [ 684973.000000, 225656.800000 ], [ 684946.900000, 225702.500000 ], [ 684932.000000, 225743.600000 ], [ 684921.300000, 225833.600000 ], [ 684911.800000, 225858.800000 ], [ 684885.000000, 225886.400000 ], [ 684834.900000, 225906.800000 ], [ 684721.300000, 225920.800000 ], [ 684707.500000, 225943.800000 ], [ 684692.800000, 226005.600000 ], [ 684643.100000, 226000.700000 ], [ 684604.100000, 226062.900000 ], [ 684580.900000, 226117.400000 ], [ 684585.284000, 226133.412000 ], [ 684616.800000, 226157.100000 ], [ 684618.200000, 226166.900000 ], [ 684594.200000, 226236.900000 ], [ 684631.219000, 226299.739000 ], [ 684644.600000, 226369.600000 ], [ 684685.100000, 226411.700000 ], [ 684691.300000, 226443.700000 ], [ 684723.700000, 226477.600000 ], [ 684741.300000, 226512.400000 ], [ 684744.400000, 226569.700000 ], [ 684759.900000, 226603.900000 ], [ 684768.700000, 226703.400000 ], [ 684805.600000, 226763.800000 ], [ 684805.200000, 226797.200000 ], [ 684787.100000, 226853.400000 ], [ 684792.900000, 226905.900000 ], [ 684803.800000, 226960.700000 ], [ 684843.600000, 227027.600000 ], [ 684810.800000, 227068.300000 ], [ 684843.800000, 227391.100000 ], [ 684847.600000, 227549.600000 ], [ 684823.900000, 227605.200000 ], [ 684783.400000, 227643.900000 ], [ 684772.000000, 227664.700000 ], [ 684779.200000, 227748.400000 ], [ 684817.500000, 227831.200000 ], [ 684818.300000, 227853.200000 ], [ 684789.100000, 227886.900000 ], [ 684696.500000, 227927.300000 ], [ 684540.800000, 227960.300000 ], [ 684366.800000, 227959.700000 ], [ 684329.300000, 227945.700000 ], [ 684304.800000, 227926.300000 ], [ 684242.300000, 227815.000000 ], [ 684185.400000, 227749.300000 ], [ 684127.700000, 227604.700000 ], [ 684074.400000, 227567.100000 ], [ 684032.100000, 227527.000000 ], [ 683981.900000, 227514.900000 ], [ 683939.100000, 227494.800000 ], [ 683827.800000, 227505.600000 ], [ 683774.000000, 227535.400000 ], [ 683641.300000, 227567.400000 ], [ 683547.200000, 227602.900000 ], [ 683517.000000, 227621.000000 ], [ 683456.500000, 227701.000000 ], [ 683361.700000, 227892.700000 ], [ 683344.500000, 227916.500000 ], [ 683344.100000, 227934.700000 ], [ 683240.100000, 228226.100000 ], [ 683232.600000, 228431.300000 ], [ 683185.900000, 228518.700000 ], [ 683157.400000, 228547.300000 ], [ 683136.523000, 228558.787000 ], [ 683159.400000, 228604.700000 ], [ 683191.900000, 228646.200000 ], [ 683223.400000, 228663.000000 ], [ 683293.700000, 228670.300000 ], [ 683324.400000, 228696.600000 ], [ 683342.100000, 228735.400000 ], [ 683360.400000, 228754.300000 ], [ 683431.600000, 228774.400000 ], [ 683465.300000, 228790.900000 ], [ 683565.700000, 228879.500000 ], [ 683637.200000, 228969.900000 ], [ 683661.200000, 228979.900000 ], [ 683718.000000, 228984.100000 ], [ 683763.200000, 229008.400000 ], [ 683825.200000, 229013.700000 ], [ 683867.400000, 229036.200000 ], [ 683933.900000, 229137.000000 ], [ 683985.700000, 229169.400000 ], [ 684007.000000, 229175.400000 ], [ 684033.000000, 229223.800000 ], [ 684074.300000, 229273.800000 ], [ 684140.300000, 229344.400000 ], [ 684262.200000, 229456.700000 ], [ 684290.500000, 229473.200000 ], [ 684352.200000, 229483.400000 ], [ 684546.800000, 229473.300000 ], [ 684612.000000, 229491.600000 ], [ 684649.300000, 229522.600000 ], [ 684662.700000, 229516.900000 ], [ 684681.800000, 229519.900000 ], [ 684776.800000, 229561.900000 ], [ 684808.000000, 229567.200000 ], [ 684797.500000, 229608.200000 ], [ 684818.500000, 229611.700000 ], [ 684833.800000, 229625.900000 ], [ 684825.700000, 229627.500000 ], [ 684775.200000, 229691.100000 ], [ 684701.500000, 229726.800000 ], [ 684678.700000, 229764.800000 ], [ 684650.400000, 229833.600000 ], [ 684628.900000, 229982.900000 ], [ 684630.900000, 230026.800000 ], [ 684637.900000, 230049.300000 ], [ 684681.100000, 230119.300000 ], [ 684683.500000, 230148.700000 ], [ 684700.200000, 230182.400000 ], [ 684696.100000, 230210.800000 ], [ 684554.600000, 230294.800000 ], [ 684490.600000, 230284.300000 ], [ 684233.100000, 230365.500000 ], [ 684200.200000, 230364.000000 ], [ 684152.900000, 230342.600000 ], [ 684033.900000, 230316.900000 ], [ 683994.600000, 230288.600000 ], [ 683786.300000, 230265.000000 ], [ 683717.700000, 230281.800000 ], [ 683661.300000, 230280.900000 ], [ 683574.058000, 230262.257000 ], [ 683462.765000, 230251.413000 ], [ 683393.706000, 230266.538000 ], [ 683353.755000, 230268.250000 ], [ 683340.913000, 230263.684000 ], [ 683270.200000, 230201.800000 ], [ 683254.200000, 230197.100000 ], [ 683197.800000, 230210.300000 ], [ 683177.100000, 230222.500000 ], [ 683166.100000, 230249.600000 ], [ 683140.141000, 230374.053000 ], [ 683134.181000, 230444.433000 ], [ 683100.995000, 230561.619000 ], [ 682906.200000, 230660.366000 ], [ 682804.200000, 230741.700000 ], [ 682736.500000, 230829.700000 ], [ 682687.500000, 230862.500000 ], [ 682633.300000, 230990.400000 ], [ 682572.900000, 231060.900000 ], [ 682462.100000, 231215.200000 ], [ 682455.200000, 231267.900000 ], [ 682494.300000, 231255.500000 ], [ 682525.800000, 231269.600000 ], [ 682483.000000, 231340.800000 ], [ 682452.200000, 231363.500000 ], [ 682413.100000, 231374.400000 ], [ 682407.576000, 231310.711000 ], [ 682393.200000, 231311.000000 ], [ 682242.700000, 231398.900000 ], [ 682235.500000, 231425.900000 ], [ 682185.100000, 231528.100000 ], [ 682110.000000, 231632.900000 ], [ 682083.500000, 231659.400000 ], [ 682058.200000, 231675.900000 ], [ 682033.800000, 231682.500000 ], [ 681825.400000, 231683.400000 ], [ 681826.100000, 231705.900000 ], [ 681835.100000, 231725.400000 ], [ 681871.100000, 231747.600000 ], [ 681844.900000, 231771.700000 ], [ 681758.500000, 231799.200000 ], [ 681615.100000, 231811.100000 ], [ 681593.400000, 231819.200000 ], [ 681474.500000, 231915.500000 ], [ 681405.800000, 231944.000000 ], [ 681366.200000, 231967.900000 ], [ 681356.800000, 231983.200000 ], [ 681362.100000, 232076.000000 ], [ 681310.500000, 232131.300000 ], [ 681285.600000, 232140.600000 ], [ 681308.600000, 232154.800000 ], [ 681347.012000, 232161.247000 ], [ 681344.140000, 232175.125000 ], [ 681273.701000, 232259.261000 ], [ 681157.741000, 232354.737000 ], [ 681108.100000, 232346.800000 ], [ 681085.400000, 232350.400000 ], [ 681027.211000, 232383.992000 ], [ 681001.600000, 232410.200000 ], [ 680936.000000, 232298.400000 ], [ 680908.800000, 232281.800000 ], [ 680886.400000, 232279.900000 ], [ 680536.300000, 232381.900000 ], [ 680476.900000, 232410.100000 ], [ 680351.400000, 232523.400000 ], [ 680318.500000, 232574.600000 ], [ 680289.500000, 232641.600000 ], [ 680152.300000, 232754.700000 ], [ 680146.500000, 232742.700000 ], [ 680086.030000, 232698.986000 ], [ 680043.987000, 232760.287000 ], [ 680013.700000, 232733.000000 ], [ 679935.200000, 232845.600000 ], [ 679920.200000, 232889.800000 ], [ 679902.424000, 232893.608000 ], [ 679840.600000, 232981.500000 ], [ 679802.400000, 233097.200000 ], [ 679780.900000, 233124.300000 ], [ 679711.300000, 233255.500000 ], [ 679715.900000, 233314.400000 ], [ 679706.200000, 233366.000000 ], [ 679694.400000, 233381.400000 ], [ 679638.200000, 233418.900000 ], [ 679595.100000, 233468.100000 ], [ 679564.544000, 233547.148000 ], [ 679556.218000, 233543.580000 ], [ 679544.659000, 233588.101000 ], [ 679600.801000, 233765.985000 ], [ 679587.455000, 233886.563000 ], [ 679591.899000, 234015.380000 ], [ 679585.659000, 234123.578000 ], [ 679683.181000, 234235.871000 ], [ 679685.022000, 234346.324000 ], [ 679726.681000, 234404.279000 ], [ 679694.300000, 234451.500000 ], [ 679733.900000, 234476.300000 ], [ 679792.300000, 234461.900000 ], [ 679861.045000, 234485.682000 ], [ 679871.286000, 234492.850000 ], [ 679875.894000, 234508.723000 ], [ 679821.100000, 234633.300000 ], [ 679728.800000, 234650.700000 ], [ 679671.000000, 234679.000000 ], [ 679627.500000, 234759.700000 ], [ 679575.500000, 234805.400000 ], [ 679531.300000, 234860.500000 ], [ 679508.300000, 234869.700000 ], [ 679425.800000, 234867.500000 ], [ 679405.200000, 234880.100000 ], [ 679353.100000, 234946.800000 ], [ 679343.900000, 234995.300000 ], [ 679284.300000, 235087.300000 ], [ 679248.900000, 235187.400000 ], [ 679259.600000, 235212.100000 ], [ 679304.500000, 235264.200000 ], [ 679311.100000, 235281.200000 ], [ 679311.400000, 235318.500000 ], [ 679289.000000, 235370.200000 ], [ 679237.100000, 235422.600000 ], [ 679234.100000, 235433.800000 ], [ 679239.000000, 235440.600000 ], [ 679277.300000, 235422.000000 ], [ 679344.200000, 235409.400000 ], [ 679481.300000, 235416.200000 ], [ 679528.400000, 235427.800000 ], [ 679589.500000, 235457.000000 ], [ 679650.200000, 235508.300000 ], [ 679676.000000, 235544.600000 ], [ 679698.800000, 235535.100000 ], [ 679776.100000, 235532.800000 ], [ 679788.800000, 235526.500000 ], [ 679798.500000, 235514.800000 ], [ 679803.300000, 235476.800000 ], [ 679876.500000, 235574.400000 ], [ 679913.900000, 235610.700000 ], [ 680027.600000, 235677.800000 ], [ 680090.814000, 235794.740000 ], [ 680041.100000, 235882.300000 ], [ 679996.800000, 235927.900000 ], [ 679939.100000, 236074.800000 ], [ 679923.100000, 236134.300000 ], [ 679921.400000, 236239.300000 ], [ 680008.000000, 236363.200000 ], [ 680046.100000, 236384.300000 ], [ 680059.600000, 236419.000000 ], [ 680064.000000, 236461.000000 ], [ 680079.100000, 236497.000000 ], [ 680080.000000, 236544.200000 ], [ 680067.900000, 236563.300000 ], [ 680200.900000, 236691.800000 ], [ 680241.000000, 236809.500000 ], [ 680472.100000, 236938.200000 ], [ 680434.100000, 236968.100000 ], [ 680408.200000, 236999.100000 ], [ 680317.400000, 237153.600000 ], [ 680258.500000, 237215.300000 ], [ 680193.500000, 237265.500000 ], [ 680137.400000, 237296.300000 ], [ 680002.500000, 237353.400000 ], [ 679891.700000, 237412.400000 ], [ 679856.500000, 237424.600000 ], [ 679691.800000, 237438.500000 ], [ 679554.000000, 237464.900000 ], [ 679460.000000, 237498.700000 ], [ 679406.600000, 237506.600000 ], [ 679375.600000, 237520.700000 ], [ 679316.900000, 237562.100000 ], [ 679183.700000, 237733.500000 ], [ 679106.700000, 237934.800000 ], [ 679079.400000, 238021.700000 ], [ 679072.100000, 238066.100000 ], [ 679077.300000, 238120.000000 ], [ 679177.500000, 238470.800000 ], [ 679182.600000, 238572.000000 ], [ 679177.000000, 238674.300000 ], [ 679184.100000, 238721.300000 ], [ 679213.500000, 238792.000000 ], [ 679308.300000, 238933.800000 ], [ 679332.300000, 238996.400000 ], [ 679331.400000, 239086.100000 ], [ 679317.300000, 239189.600000 ], [ 679373.300000, 239208.000000 ], [ 679403.300000, 239211.200000 ], [ 679547.200000, 239187.500000 ], [ 679568.900000, 239192.800000 ], [ 679611.600000, 239237.100000 ], [ 679615.300000, 239276.400000 ], [ 679568.700000, 239356.400000 ], [ 679557.200000, 239397.700000 ], [ 679492.800000, 239549.500000 ], [ 679492.400000, 239565.800000 ], [ 679507.300000, 239565.200000 ], [ 679578.100000, 239497.600000 ], [ 679616.200000, 239450.200000 ], [ 679697.400000, 239378.300000 ], [ 679712.300000, 239375.200000 ], [ 679780.300000, 239414.100000 ], [ 679819.600000, 239427.400000 ], [ 680061.000000, 239456.100000 ], [ 680087.200000, 239471.300000 ], [ 680159.600000, 239540.100000 ], [ 680206.100000, 239551.000000 ], [ 680236.000000, 239541.700000 ], [ 680314.400000, 239481.700000 ], [ 680328.800000, 239461.400000 ], [ 680350.400000, 239422.700000 ], [ 680372.900000, 239322.300000 ], [ 680385.200000, 239294.000000 ], [ 680408.800000, 239275.500000 ], [ 680450.800000, 239256.100000 ], [ 680455.500000, 239268.000000 ], [ 680452.500000, 239289.000000 ], [ 680410.100000, 239431.700000 ], [ 680388.600000, 239552.800000 ], [ 680396.400000, 239625.500000 ], [ 680415.161000, 239697.479000 ], [ 680404.100000, 239717.600000 ], [ 680328.471000, 239805.132000 ], [ 680330.088000, 239821.132000 ], [ 680422.300000, 239942.100000 ], [ 680493.300000, 240012.900000 ], [ 680546.300000, 240053.600000 ], [ 680731.000000, 240167.400000 ], [ 680795.400000, 240225.900000 ], [ 680838.800000, 240254.400000 ], [ 680857.045000, 240276.961000 ], [ 680852.738000, 240294.649000 ], [ 680839.984000, 240305.562000 ], [ 680738.600000, 240363.200000 ], [ 680700.100000, 240399.200000 ], [ 680683.300000, 240424.100000 ], [ 680669.800000, 240468.500000 ], [ 680674.400000, 240548.800000 ], [ 680670.449000, 240570.537000 ], [ 680655.410000, 240583.177000 ], [ 680626.771000, 240591.336000 ], [ 680617.600000, 240612.800000 ], [ 680619.200000, 240647.300000 ], [ 680690.900000, 240755.700000 ], [ 680697.000000, 240802.200000 ], [ 680694.500000, 240862.200000 ], [ 680655.400000, 240928.700000 ], [ 680628.300000, 240956.100000 ], [ 680606.600000, 241009.700000 ], [ 680591.900000, 241073.900000 ], [ 680588.700000, 241134.800000 ], [ 680559.400000, 241223.300000 ], [ 680545.800000, 241242.800000 ], [ 680438.800000, 241307.400000 ], [ 680373.900000, 241379.900000 ], [ 680274.000000, 241441.600000 ], [ 680258.600000, 241475.600000 ], [ 680249.100000, 241616.500000 ], [ 680269.800000, 241723.200000 ], [ 680271.500000, 241776.600000 ], [ 680263.100000, 241796.400000 ], [ 680205.400000, 241871.100000 ], [ 680196.900000, 241894.500000 ], [ 680190.717000, 241989.951000 ], [ 680196.320000, 242010.324000 ], [ 680213.637000, 242036.300000 ], [ 680268.849000, 242082.609000 ], [ 680290.601000, 242116.814000 ], [ 680300.025000, 242148.431000 ], [ 680306.900000, 242230.500000 ], [ 680300.200000, 242262.800000 ], [ 680256.700000, 242351.500000 ], [ 680271.100000, 242508.400000 ], [ 680286.900000, 242555.700000 ], [ 680280.800000, 242627.700000 ], [ 680256.800000, 242705.300000 ], [ 680244.300000, 242770.300000 ], [ 680242.300000, 242841.500000 ], [ 680245.200000, 242867.000000 ], [ 680259.800000, 242902.200000 ], [ 680328.400000, 243014.700000 ], [ 680348.400000, 243123.700000 ], [ 680347.600000, 243139.400000 ], [ 680335.500000, 243154.600000 ], [ 680283.400000, 243205.000000 ], [ 680280.500000, 243224.000000 ], [ 680320.600000, 243281.000000 ], [ 680369.300000, 243398.700000 ], [ 680367.000000, 243426.600000 ], [ 680348.100000, 243464.700000 ], [ 680257.400000, 243569.200000 ], [ 680274.200000, 243658.400000 ], [ 680289.100000, 243691.200000 ], [ 680289.100000, 243722.700000 ], [ 680295.300000, 243735.700000 ], [ 680321.700000, 243743.600000 ], [ 680347.400000, 243707.000000 ], [ 680364.400000, 243646.100000 ], [ 680388.883000, 243635.581000 ], [ 680458.000000, 243581.900000 ], [ 680504.200000, 243570.700000 ], [ 680550.798000, 243516.575000 ], [ 680544.183000, 243577.469000 ], [ 680510.853000, 243629.224000 ], [ 680507.548000, 243655.124000 ], [ 680513.146000, 243671.752000 ], [ 680548.700000, 243629.000000 ], [ 680559.400000, 243628.300000 ], [ 680548.700000, 243668.300000 ], [ 680550.800000, 243721.900000 ], [ 680576.000000, 243793.900000 ], [ 680591.681000, 243814.021000 ], [ 680578.006000, 243842.787000 ], [ 680588.929000, 243854.481000 ], [ 680598.277000, 243853.632000 ], [ 680614.800000, 243839.100000 ], [ 680618.300000, 243827.500000 ], [ 680615.100000, 243782.400000 ], [ 680632.300000, 243761.900000 ], [ 680650.400000, 243671.800000 ], [ 680685.900000, 243639.100000 ], [ 680712.100000, 243639.600000 ], [ 680712.300000, 243648.100000 ], [ 680692.400000, 243661.300000 ], [ 680683.100000, 243675.700000 ], [ 680678.700000, 243696.900000 ], [ 680697.200000, 243737.600000 ], [ 680700.500000, 243829.000000 ], [ 680728.800000, 243860.600000 ], [ 680680.500000, 243893.500000 ], [ 680670.900000, 243941.500000 ], [ 680678.800000, 243986.500000 ], [ 680683.800000, 243994.000000 ], [ 680700.500000, 243953.100000 ], [ 680720.900000, 243918.100000 ], [ 680726.300000, 243919.000000 ], [ 680722.600000, 243981.900000 ], [ 680733.400000, 244012.300000 ], [ 680799.700000, 244067.300000 ], [ 680805.500000, 244089.400000 ], [ 680793.400000, 244121.000000 ], [ 680801.800000, 244124.400000 ], [ 680829.700000, 244085.600000 ], [ 680821.300000, 244064.000000 ], [ 680804.300000, 244044.400000 ], [ 680800.900000, 244021.500000 ], [ 680828.000000, 243974.800000 ], [ 680840.900000, 243973.100000 ], [ 680837.200000, 244023.100000 ], [ 680847.200000, 244042.300000 ], [ 680873.400000, 244067.300000 ], [ 680882.200000, 244087.300000 ], [ 680888.000000, 244134.400000 ], [ 680880.500000, 244152.700000 ], [ 680885.900000, 244154.000000 ], [ 680897.600000, 244141.000000 ], [ 680908.400000, 244116.500000 ], [ 680913.000000, 244074.000000 ], [ 680919.700000, 244065.600000 ], [ 680951.435000, 244054.998000 ], [ 680966.000000, 244054.300000 ], [ 681009.900000, 244090.700000 ], [ 681069.500000, 244124.300000 ], [ 681050.300000, 244174.700000 ], [ 681008.900000, 244222.300000 ], [ 681007.900000, 244242.400000 ], [ 681013.100000, 244253.000000 ], [ 681039.000000, 244266.900000 ], [ 681117.000000, 244274.800000 ], [ 681152.600000, 244298.200000 ], [ 681179.000000, 244361.400000 ], [ 681200.900000, 244385.200000 ], [ 681215.400000, 244415.600000 ], [ 681230.400000, 244462.900000 ], [ 681270.792000, 244546.513000 ], [ 681322.683000, 244600.072000 ], [ 681323.100000, 244617.578000 ], [ 681312.471000, 244633.416000 ], [ 681327.685000, 244652.797000 ], [ 681333.103000, 244671.137000 ], [ 681334.145000, 244735.949000 ], [ 681352.400000, 244794.200000 ], [ 681361.000000, 244802.800000 ], [ 681387.700000, 244804.800000 ], [ 681502.800000, 244798.300000 ], [ 681533.000000, 244887.300000 ], [ 681602.200000, 244962.600000 ], [ 682003.100000, 245167.300000 ], [ 682060.700000, 245228.800000 ], [ 682071.400000, 245217.000000 ], [ 682095.800000, 245327.600000 ], [ 682070.000000, 245486.700000 ], [ 682057.000000, 245691.100000 ], [ 681980.900000, 246006.000000 ], [ 681973.900000, 246062.500000 ], [ 681961.900000, 246057.900000 ], [ 681932.100000, 246217.800000 ], [ 681923.100000, 246281.000000 ], [ 681918.600000, 246403.800000 ], [ 681930.800000, 246504.300000 ], [ 681968.500000, 246611.600000 ], [ 682025.300000, 246709.800000 ], [ 682152.300000, 246847.900000 ], [ 682333.250000, 247023.243000 ], [ 682427.052000, 247124.844000 ], [ 682478.478000, 247194.144000 ], [ 682539.766000, 247329.287000 ], [ 682573.655000, 247371.905000 ], [ 682594.707000, 247376.013000 ], [ 682622.425000, 247423.042000 ], [ 682638.868000, 247410.467000 ], [ 682682.706000, 247478.673000 ], [ 682683.338000, 247583.540000 ], [ 682798.200000, 247763.400000 ], [ 682850.500000, 247827.800000 ], [ 682780.100000, 247877.500000 ], [ 682890.900000, 248027.500000 ], [ 682904.518000, 248058.909000 ] ] } } + +] +} From ee58e334a536b61cf1f18b8a1841c5548bbd15e8 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 10:10:02 +0100 Subject: [PATCH 520/919] Move squaredDistance and squaredSegmentDistance in to ol.geom.flat --- src/ol/geom/flatgeom.js | 43 +++++++++++++++++++++++++++++++ src/ol/geom/simplifygeom.js | 51 ++++--------------------------------- 2 files changed, 48 insertions(+), 46 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 60ca92c914..8e87578e94 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -656,6 +656,49 @@ ol.geom.flat.reverseCoordinates = }; +/** + * Returns the square of the closest distance between the point (x, y) and the + * line segment (x1, y1) to (x2, y2). + * @param {number} x X. + * @param {number} y Y. + * @param {number} x1 X1. + * @param {number} y1 Y1. + * @param {number} x2 X2. + * @param {number} y2 Y2. + * @return {number} Squared distance. + */ +ol.geom.flat.squaredSegmentDistance = function(x, y, x1, y1, x2, y2) { + var dx = x2 - x1; + var dy = y2 - y1; + if (dx !== 0 || dy !== 0) { + var t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy); + if (t > 1) { + x1 = x2; + y1 = y2; + } else if (t > 0) { + x1 += dx * t; + y1 += dy * t; + } + } + return ol.geom.flat.squaredDistance(x, y, x1, y1); +}; + + +/** + * Returns the square of the distance between the points (x1, y1) and (x2, y2). + * @param {number} x1 X1. + * @param {number} y1 Y1. + * @param {number} x2 X2. + * @param {number} y2 Y2. + * @return {number} Squared distance. + */ +ol.geom.flat.squaredDistance = function(x1, y1, x2, y2) { + var dx = x2 - x1; + var dy = y2 - y1; + return dx * dx + dy * dy; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} stride Stride. diff --git a/src/ol/geom/simplifygeom.js b/src/ol/geom/simplifygeom.js index eb00ba57bf..d7cab5ea77 100644 --- a/src/ol/geom/simplifygeom.js +++ b/src/ol/geom/simplifygeom.js @@ -26,6 +26,8 @@ goog.provide('ol.geom.simplify'); +goog.require('ol.geom.flat'); + /** * @param {Array.} flatCoordinates Flat coordinates. @@ -98,8 +100,8 @@ ol.geom.simplify.douglasPeucker = function(flatCoordinates, offset, end, for (i = first + stride; i < last; i += stride) { var x = flatCoordinates[i]; var y = flatCoordinates[i + 1]; - var squaredDistance = - ol.geom.simplify.squaredSegmentDistance(x, y, x1, y1, x2, y2); + var squaredDistance = ol.geom.flat.squaredSegmentDistance( + x, y, x1, y1, x2, y2); if (squaredDistance > maxSquaredDistance) { index = i; maxSquaredDistance = squaredDistance; @@ -216,7 +218,7 @@ ol.geom.simplify.radialDistance = function(flatCoordinates, offset, end, for (offset += stride; offset < end; offset += stride) { x2 = flatCoordinates[offset]; y2 = flatCoordinates[offset + 1]; - if (ol.geom.simplify.squaredDistance(x1, y1, x2, y2) > squaredTolerance) { + if (ol.geom.flat.squaredDistance(x1, y1, x2, y2) > squaredTolerance) { // copy point at offset simplifiedFlatCoordinates[simplifiedOffset++] = x2; simplifiedFlatCoordinates[simplifiedOffset++] = y2; @@ -231,46 +233,3 @@ ol.geom.simplify.radialDistance = function(flatCoordinates, offset, end, } return simplifiedOffset; }; - - -/** - * Returns the square of the distance between the points (x1, y1) and (x2, y2). - * @param {number} x1 X1. - * @param {number} y1 Y1. - * @param {number} x2 X2. - * @param {number} y2 Y2. - * @return {number} Squared distance. - */ -ol.geom.simplify.squaredDistance = function(x1, y1, x2, y2) { - var dx = x2 - x1; - var dy = y2 - y1; - return dx * dx + dy * dy; -}; - - -/** - * Returns the square of the closest distance between the point (x, y) and the - * line segment (x1, y1) to (x2, y2). - * @param {number} x X. - * @param {number} y Y. - * @param {number} x1 X1. - * @param {number} y1 Y1. - * @param {number} x2 X2. - * @param {number} y2 Y2. - * @return {number} Squared distance. - */ -ol.geom.simplify.squaredSegmentDistance = function(x, y, x1, y1, x2, y2) { - var dx = x2 - x1; - var dy = y2 - y1; - if (dx !== 0 || dy !== 0) { - var t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy); - if (t > 1) { - x1 = x2; - y1 = y2; - } else if (t > 0) { - x1 += dx * t; - y1 += dy * t; - } - } - return ol.geom.simplify.squaredDistance(x, y, x1, y1); -}; From 02cee684a7fdc51b471c029fb0e65d730951c39f Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 9 Dec 2013 09:19:38 +0100 Subject: [PATCH 521/919] Remove trailing zeros in mtbland.geojson --- examples/data/mtbland.geojson | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/data/mtbland.geojson b/examples/data/mtbland.geojson index b4e5628547..f7a6c2d125 100644 --- a/examples/data/mtbland.geojson +++ b/examples/data/mtbland.geojson @@ -1,19 +1,19 @@ { "type": "FeatureCollection", "features": [ -{ "type": "Feature", "properties": { "FID": 0.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 666149.500000, 211466.200000 ], [ 666161.716000, 211403.978000 ] ], [ [ 666149.500000, 211466.200000 ], [ 666298.943000, 211486.839000 ], [ 666307.600000, 211418.900000 ], [ 666161.716000, 211403.978000 ] ], [ [ 626235.500000, 198906.100000 ], [ 626320.400000, 198886.300000 ], [ 626314.714000, 198767.031000 ] ], [ [ 626235.500000, 198906.100000 ], [ 626260.900000, 198965.600000 ], [ 626324.000000, 199057.100000 ], [ 626463.400000, 199067.200000 ], [ 626651.200000, 199149.000000 ], [ 626690.000000, 199155.600000 ], [ 626733.200000, 199153.600000 ], [ 626938.100000, 199113.900000 ], [ 627019.800000, 199108.700000 ], [ 627081.000000, 199127.400000 ], [ 627198.200000, 199119.600000 ], [ 627225.500000, 199127.900000 ], [ 627233.200000, 199146.400000 ], [ 627219.600000, 199160.500000 ], [ 627108.000000, 199212.600000 ], [ 627065.500000, 199246.800000 ], [ 627002.600000, 199273.500000 ], [ 626965.600000, 199301.600000 ], [ 626892.400000, 199310.600000 ], [ 626880.000000, 199322.500000 ], [ 626884.600000, 199343.400000 ], [ 626903.400000, 199350.800000 ], [ 626949.400000, 199346.300000 ], [ 626979.200000, 199358.000000 ], [ 627044.600000, 199350.300000 ], [ 627086.600000, 199352.000000 ], [ 627182.500000, 199367.100000 ], [ 627221.100000, 199385.500000 ], [ 627371.200000, 199578.100000 ], [ 627406.600000, 199617.200000 ], [ 627501.400000, 199691.800000 ], [ 627512.000000, 199711.100000 ], [ 627566.900000, 199988.300000 ], [ 627568.300000, 200042.300000 ], [ 627563.500000, 200059.300000 ], [ 627534.300000, 200101.100000 ], [ 627498.400000, 200121.100000 ], [ 627439.900000, 200138.600000 ], [ 627422.000000, 200155.700000 ], [ 627413.900000, 200276.800000 ], [ 627434.400000, 200348.200000 ], [ 627431.800000, 200416.800000 ], [ 627416.500000, 200511.400000 ], [ 627367.800000, 200608.000000 ], [ 627319.200000, 200658.800000 ], [ 627280.900000, 200687.300000 ], [ 627260.300000, 200726.000000 ], [ 627259.900000, 200742.700000 ], [ 627270.100000, 200769.000000 ], [ 627306.000000, 200829.300000 ], [ 627384.900000, 200901.600000 ], [ 627416.100000, 201006.100000 ], [ 627415.100000, 201023.600000 ], [ 627403.300000, 201035.000000 ], [ 627329.400000, 201051.900000 ], [ 627315.700000, 201076.500000 ], [ 627325.900000, 201144.100000 ], [ 627375.100000, 201216.900000 ], [ 627384.800000, 201245.500000 ], [ 627370.400000, 201378.300000 ], [ 627379.200000, 201502.100000 ], [ 627408.400000, 201579.400000 ], [ 627447.300000, 201655.700000 ], [ 627491.300000, 201674.100000 ], [ 627561.100000, 201728.800000 ], [ 627662.900000, 201754.900000 ], [ 627686.500000, 201769.100000 ], [ 627707.300000, 201832.900000 ], [ 627711.800000, 201872.900000 ], [ 627698.300000, 201957.000000 ], [ 627712.600000, 201998.600000 ], [ 627780.100000, 202055.600000 ], [ 627950.900000, 202171.800000 ], [ 628009.400000, 202273.400000 ], [ 628025.900000, 202289.100000 ], [ 628043.600000, 202300.000000 ], [ 628124.400000, 202321.500000 ], [ 628146.900000, 202335.000000 ], [ 628145.400000, 202355.500000 ], [ 628069.600000, 202439.100000 ], [ 628062.100000, 202455.700000 ], [ 628063.300000, 202484.900000 ], [ 628078.700000, 202514.800000 ], [ 628146.700000, 202598.700000 ], [ 628194.900000, 202673.600000 ], [ 628207.500000, 202706.600000 ], [ 628199.900000, 202812.100000 ], [ 628211.700000, 202923.200000 ], [ 628260.300000, 203055.200000 ], [ 628289.100000, 203087.500000 ], [ 628329.500000, 203114.700000 ], [ 628358.700000, 203124.500000 ], [ 628421.300000, 203126.500000 ], [ 628487.700000, 203185.700000 ], [ 628517.800000, 203195.000000 ], [ 628565.400000, 203197.800000 ], [ 628588.600000, 203239.600000 ], [ 628587.900000, 203284.900000 ], [ 628605.900000, 203326.800000 ], [ 628608.300000, 203350.500000 ], [ 628552.900000, 203472.400000 ], [ 628550.600000, 203526.400000 ], [ 628573.100000, 203617.600000 ], [ 628602.000000, 203805.000000 ], [ 628636.700000, 203896.400000 ], [ 628670.500000, 203926.500000 ], [ 628707.000000, 203936.900000 ], [ 628825.900000, 203950.000000 ], [ 628827.100000, 203964.800000 ], [ 628793.800000, 204032.200000 ], [ 628771.500000, 204112.200000 ], [ 628779.300000, 204134.100000 ], [ 628852.600000, 204241.300000 ], [ 628834.800000, 204305.700000 ], [ 628846.400000, 204353.700000 ], [ 628839.200000, 204369.100000 ], [ 628782.000000, 204412.600000 ], [ 628750.300000, 204460.000000 ], [ 628692.700000, 204505.600000 ], [ 628674.300000, 204537.100000 ], [ 628662.900000, 204596.100000 ], [ 628632.300000, 204668.200000 ], [ 628605.800000, 204843.500000 ], [ 628620.800000, 204901.400000 ], [ 628649.100000, 204954.200000 ], [ 628623.700000, 205048.100000 ], [ 628638.600000, 205146.200000 ], [ 628685.800000, 205224.700000 ], [ 628713.200000, 205251.500000 ], [ 628714.100000, 205278.000000 ], [ 628720.600000, 205289.000000 ], [ 628759.400000, 205284.300000 ], [ 628824.000000, 205331.800000 ], [ 628867.200000, 205346.800000 ], [ 628908.600000, 205337.100000 ], [ 628970.400000, 205304.600000 ], [ 628984.400000, 205305.500000 ], [ 628983.400000, 205348.200000 ], [ 628989.200000, 205367.800000 ], [ 629032.200000, 205412.800000 ], [ 629041.600000, 205434.800000 ], [ 629064.300000, 205453.600000 ], [ 629068.500000, 205478.100000 ], [ 629100.400000, 205539.100000 ], [ 629120.000000, 205556.400000 ], [ 629190.500000, 205582.200000 ], [ 629199.900000, 205594.100000 ], [ 629226.700000, 205677.200000 ], [ 629310.300000, 205742.000000 ], [ 629377.500000, 205756.200000 ], [ 629388.700000, 205767.500000 ], [ 629397.800000, 205799.200000 ], [ 629460.100000, 205782.000000 ], [ 629564.800000, 205786.400000 ], [ 629598.400000, 205798.500000 ], [ 629644.400000, 205847.000000 ], [ 629662.900000, 205853.300000 ], [ 629790.700000, 205785.900000 ], [ 629834.500000, 205778.400000 ], [ 629919.600000, 205779.800000 ], [ 629968.200000, 205794.000000 ], [ 629984.900000, 205805.000000 ], [ 629994.900000, 205816.800000 ], [ 630005.200000, 205853.300000 ], [ 629976.200000, 205971.500000 ], [ 629957.400000, 206009.800000 ], [ 629963.100000, 206131.500000 ], [ 629972.600000, 206144.800000 ], [ 630091.600000, 206182.000000 ], [ 630113.100000, 206196.800000 ], [ 630127.600000, 206216.800000 ], [ 630132.400000, 206342.500000 ], [ 630155.100000, 206492.800000 ], [ 630111.100000, 206535.300000 ], [ 630016.100000, 206598.300000 ], [ 629959.900000, 206644.300000 ], [ 629955.900000, 206653.600000 ], [ 629963.200000, 206675.900000 ], [ 630026.900000, 206701.300000 ], [ 629933.500000, 206900.200000 ], [ 629935.900000, 206910.000000 ], [ 629963.500000, 206908.400000 ], [ 629971.200000, 206914.400000 ], [ 629962.400000, 206932.100000 ], [ 629916.100000, 206976.000000 ], [ 629872.891000, 206992.627000 ], [ 629869.300000, 207053.700000 ], [ 629858.500000, 207060.700000 ], [ 629840.000000, 207055.500000 ], [ 629830.800000, 207009.700000 ], [ 629813.000000, 207006.000000 ], [ 629782.500000, 207011.500000 ], [ 629732.500000, 206965.700000 ], [ 629720.800000, 206970.500000 ], [ 629758.600000, 207057.200000 ], [ 629757.400000, 207112.200000 ], [ 629775.100000, 207173.200000 ], [ 629793.600000, 207206.700000 ], [ 629792.100000, 207223.500000 ], [ 629762.200000, 207243.300000 ], [ 629763.700000, 207277.000000 ], [ 629791.200000, 207262.600000 ], [ 629909.500000, 207223.600000 ], [ 630126.200000, 207127.600000 ], [ 630149.000000, 207112.300000 ], [ 630207.000000, 207048.100000 ], [ 630240.200000, 207030.300000 ], [ 630383.100000, 207022.100000 ], [ 630407.100000, 207011.300000 ], [ 630462.000000, 206957.400000 ], [ 630554.500000, 206954.800000 ], [ 630601.000000, 206968.800000 ], [ 630629.400000, 206997.100000 ], [ 630635.900000, 207013.000000 ], [ 630635.700000, 207058.800000 ], [ 630701.300000, 207284.400000 ], [ 630727.800000, 207411.200000 ], [ 630744.600000, 207438.600000 ], [ 630776.100000, 207470.500000 ], [ 630800.500000, 207523.500000 ], [ 630831.000000, 207568.000000 ], [ 630904.100000, 207611.200000 ], [ 630915.600000, 207623.800000 ], [ 630996.800000, 207656.200000 ], [ 631046.100000, 207672.600000 ], [ 631158.100000, 207677.000000 ], [ 631198.100000, 207695.700000 ], [ 631238.300000, 207729.500000 ], [ 631257.600000, 207729.200000 ], [ 631266.300000, 207715.200000 ], [ 631261.300000, 207693.500000 ], [ 631220.600000, 207638.500000 ], [ 631216.600000, 207590.200000 ], [ 631177.600000, 207578.700000 ], [ 631146.100000, 207546.200000 ], [ 631102.800000, 207526.000000 ], [ 631069.600000, 207500.000000 ], [ 631022.800000, 207432.700000 ], [ 631019.800000, 207412.200000 ], [ 631033.800000, 207404.000000 ], [ 631070.100000, 207450.000000 ], [ 631097.800000, 207469.000000 ], [ 631199.600000, 207502.200000 ], [ 631224.100000, 207519.200000 ], [ 631267.600000, 207536.500000 ], [ 631285.300000, 207561.200000 ], [ 631297.800000, 207600.500000 ], [ 631344.800000, 207632.600000 ], [ 631345.300000, 207677.200000 ], [ 631358.100000, 207708.200000 ], [ 631413.400000, 207719.800000 ], [ 631419.100000, 207742.400000 ], [ 631395.100000, 207785.500000 ], [ 631387.900000, 207873.500000 ], [ 631373.400000, 207890.000000 ], [ 631332.100000, 207863.000000 ], [ 631285.600000, 207864.300000 ], [ 631254.400000, 207881.300000 ], [ 631191.600000, 207932.500000 ], [ 631124.900000, 207878.000000 ], [ 631045.300000, 207900.600000 ], [ 631041.100000, 207912.400000 ], [ 631049.100000, 207923.800000 ], [ 631062.800000, 207929.000000 ], [ 631100.700000, 207922.600000 ], [ 631119.400000, 207927.800000 ], [ 631160.000000, 207984.600000 ], [ 631184.000000, 207999.300000 ], [ 631237.500000, 207995.100000 ], [ 631288.500000, 207974.600000 ], [ 631308.700000, 207984.300000 ], [ 631322.900000, 208010.200000 ], [ 631346.400000, 208029.000000 ], [ 631405.800000, 208030.000000 ], [ 631463.600000, 207986.400000 ], [ 631590.600000, 207864.000000 ], [ 631636.400000, 207829.300000 ], [ 631753.900000, 207808.800000 ], [ 631812.100000, 207822.500000 ], [ 631857.400000, 207849.800000 ], [ 631922.400000, 207870.000000 ], [ 631947.100000, 207883.800000 ], [ 631988.100000, 207952.300000 ], [ 632029.076000, 207992.475000 ], [ 632064.200000, 207974.600000 ], [ 632134.600000, 207958.800000 ], [ 632170.100000, 207938.500000 ], [ 632209.000000, 207905.500000 ], [ 632276.100000, 207889.300000 ], [ 632299.900000, 207871.000000 ], [ 632326.400000, 207822.500000 ], [ 632343.900000, 207803.800000 ], [ 632384.400000, 207809.300000 ], [ 632460.100000, 207772.800000 ], [ 632516.600000, 207769.500000 ], [ 632545.900000, 207751.000000 ], [ 632588.100000, 207689.500000 ], [ 632636.100000, 207700.000000 ], [ 632661.900000, 207689.700000 ], [ 632722.400000, 207638.500000 ], [ 632801.900000, 207538.200000 ], [ 632901.400000, 207484.500000 ], [ 632916.100000, 207474.000000 ], [ 632921.900000, 207458.700000 ], [ 632910.600000, 207431.700000 ], [ 632859.100000, 207363.200000 ], [ 632835.400000, 207275.000000 ], [ 632775.900000, 207206.700000 ], [ 632736.900000, 207122.200000 ], [ 632742.400000, 207075.900000 ], [ 632774.600000, 207014.400000 ], [ 632746.600000, 206898.400000 ], [ 632745.400000, 206846.700000 ], [ 632757.700000, 206803.200000 ], [ 632802.400000, 206765.400000 ], [ 632838.400000, 206750.700000 ], [ 632903.600000, 206739.700000 ], [ 632950.600000, 206723.400000 ], [ 633027.400000, 206675.700000 ], [ 633057.100000, 206668.700000 ], [ 633136.100000, 206670.700000 ], [ 633150.400000, 206663.900000 ], [ 633219.900000, 206609.200000 ], [ 633237.400000, 206553.200000 ], [ 633253.900000, 206533.900000 ], [ 633272.900000, 206528.100000 ], [ 633326.100000, 206541.700000 ], [ 633378.600000, 206526.600000 ], [ 633398.760000, 206511.172000 ], [ 633433.900000, 206433.300000 ], [ 633444.680000, 206374.660000 ], [ 633458.100000, 206358.700000 ], [ 633550.500000, 206324.600000 ], [ 633609.500000, 206332.100000 ], [ 633614.100000, 206324.300000 ], [ 633604.800000, 206317.300000 ], [ 633509.830000, 206302.682000 ], [ 633516.300000, 206292.500000 ], [ 633580.800000, 206286.300000 ], [ 633590.800000, 206266.500000 ], [ 633584.600000, 206211.700000 ], [ 633622.500000, 206046.500000 ], [ 633618.000000, 206008.500000 ], [ 633625.800000, 205991.100000 ], [ 633663.900000, 205960.100000 ], [ 633730.300000, 205942.400000 ], [ 633759.700000, 205937.600000 ], [ 633869.890000, 205951.488000 ], [ 634144.789000, 206053.932000 ], [ 634196.500000, 205995.900000 ], [ 634260.700000, 205975.400000 ], [ 634321.300000, 205924.400000 ], [ 634348.600000, 205916.800000 ], [ 634392.800000, 205920.300000 ], [ 634427.800000, 205952.300000 ], [ 634453.300000, 205963.600000 ], [ 634510.800000, 205973.900000 ], [ 634591.600000, 205998.600000 ], [ 634632.600000, 205998.300000 ], [ 634710.600000, 205984.500000 ], [ 634825.300000, 205946.100000 ], [ 634883.600000, 205944.600000 ], [ 634930.600000, 205963.400000 ], [ 634984.100000, 206004.400000 ], [ 635005.500000, 206025.000000 ], [ 634994.300000, 206037.800000 ], [ 635108.800000, 206123.000000 ], [ 635113.800000, 206110.000000 ], [ 635134.500000, 206149.500000 ], [ 635165.000000, 206175.800000 ], [ 635232.400000, 206183.100000 ], [ 635272.800000, 206174.100000 ], [ 635305.100000, 206155.200000 ], [ 635346.300000, 206195.600000 ], [ 635390.900000, 206216.200000 ], [ 635491.400000, 206279.500000 ], [ 635540.100000, 206288.200000 ], [ 635605.800000, 206266.800000 ], [ 635671.600000, 206290.600000 ], [ 635761.300000, 206336.200000 ], [ 635835.800000, 206356.400000 ], [ 635892.800000, 206392.700000 ], [ 636007.800000, 206422.900000 ], [ 636095.100000, 206468.200000 ], [ 636122.300000, 206495.900000 ], [ 636129.100000, 206472.700000 ], [ 636155.800000, 206486.900000 ], [ 636168.100000, 206508.700000 ], [ 636173.300000, 206504.400000 ], [ 636178.300000, 206492.200000 ], [ 636160.000000, 206458.800000 ], [ 636217.800000, 206490.200000 ], [ 636229.300000, 206515.200000 ], [ 636264.800000, 206508.900000 ], [ 636307.600000, 206490.500000 ], [ 636336.800000, 206498.300000 ], [ 636389.600000, 206456.800000 ], [ 636432.000000, 206436.700000 ], [ 636457.300000, 206453.800000 ], [ 636500.200000, 206524.400000 ], [ 636522.400000, 206535.400000 ], [ 636546.700000, 206524.500000 ], [ 636565.400000, 206504.100000 ], [ 636596.900000, 206485.400000 ], [ 636630.300000, 206491.600000 ], [ 636651.200000, 206542.400000 ], [ 636672.700000, 206539.800000 ], [ 636726.700000, 206553.800000 ], [ 636726.300000, 206538.500000 ], [ 636714.200000, 206516.900000 ], [ 636706.900000, 206415.900000 ], [ 636737.500000, 206364.600000 ], [ 636725.500000, 206357.100000 ], [ 636655.200000, 206360.100000 ], [ 636639.300000, 206347.600000 ], [ 636572.200000, 206283.400000 ], [ 636541.600000, 206209.300000 ], [ 636562.300000, 206075.300000 ], [ 636560.000000, 206052.100000 ], [ 636539.300000, 205964.600000 ], [ 636534.100000, 205866.200000 ], [ 636486.700000, 205779.100000 ], [ 636470.300000, 205730.300000 ], [ 636497.100000, 205597.400000 ], [ 636467.400000, 205485.500000 ], [ 636465.200000, 205402.800000 ], [ 636447.200000, 205294.000000 ], [ 636438.900000, 205124.100000 ], [ 636429.300000, 205093.500000 ], [ 636408.100000, 205063.600000 ], [ 636390.000000, 205019.500000 ], [ 636373.200000, 204930.700000 ], [ 636375.800000, 204796.100000 ], [ 636340.800000, 204721.000000 ], [ 636336.400000, 204691.400000 ], [ 636345.400000, 204562.000000 ], [ 636328.900000, 204434.000000 ], [ 636307.900000, 204375.900000 ], [ 636273.800000, 204313.400000 ], [ 636213.800000, 204106.900000 ], [ 636176.200000, 204047.400000 ], [ 636153.000000, 203966.000000 ], [ 636159.200000, 203907.000000 ], [ 636198.800000, 203771.800000 ], [ 636196.800000, 203730.600000 ], [ 636148.300000, 203462.800000 ], [ 636204.600000, 203316.100000 ], [ 636199.900000, 203271.500000 ], [ 636093.100000, 203079.200000 ], [ 636082.800000, 203006.800000 ], [ 636072.400000, 202837.800000 ], [ 636065.100000, 202817.600000 ], [ 636045.900000, 202793.700000 ], [ 635955.500000, 202727.300000 ], [ 635898.600000, 202657.600000 ], [ 635869.500000, 202579.700000 ], [ 635846.900000, 202448.200000 ], [ 635826.400000, 202369.500000 ], [ 635791.500000, 202296.700000 ], [ 635705.700000, 202199.300000 ], [ 635599.300000, 201931.800000 ], [ 635568.800000, 201785.300000 ], [ 635570.800000, 201729.600000 ], [ 635590.400000, 201705.900000 ], [ 635648.300000, 201659.100000 ], [ 635688.900000, 201724.500000 ], [ 635723.300000, 201824.000000 ], [ 635760.100000, 201894.200000 ], [ 635771.800000, 201933.500000 ], [ 635773.400000, 201975.800000 ], [ 635781.100000, 201987.800000 ], [ 635906.300000, 202075.300000 ], [ 636061.300000, 202135.500000 ], [ 636138.900000, 202157.800000 ], [ 636224.800000, 202123.300000 ], [ 636247.400000, 202123.700000 ], [ 636334.300000, 202165.800000 ], [ 636428.600000, 202185.600000 ], [ 636530.200000, 202235.200000 ], [ 636605.400000, 202254.100000 ], [ 636648.100000, 202272.400000 ], [ 636752.600000, 202335.000000 ], [ 636852.000000, 202435.400000 ], [ 636886.400000, 202496.800000 ], [ 636917.000000, 202528.900000 ], [ 636960.700000, 202556.600000 ], [ 637030.600000, 202586.800000 ], [ 637090.600000, 202637.000000 ], [ 637157.100000, 202673.100000 ], [ 637172.600000, 202742.600000 ], [ 637194.700000, 202783.300000 ], [ 637293.100000, 202833.300000 ], [ 637471.400000, 202967.100000 ], [ 637511.100000, 203004.000000 ], [ 637534.800000, 203038.500000 ], [ 637544.100000, 203085.200000 ], [ 637570.600000, 203132.500000 ], [ 637685.800000, 203249.100000 ], [ 637733.500000, 203280.200000 ], [ 637769.900000, 203363.100000 ], [ 637825.100000, 203399.400000 ], [ 637838.300000, 203416.000000 ], [ 637861.100000, 203490.700000 ], [ 637907.800000, 203583.400000 ], [ 637958.700000, 203741.498000 ], [ 637978.500000, 203775.200000 ], [ 638013.400000, 203814.799000 ], [ 638018.400000, 203928.500000 ], [ 638039.300000, 203993.500000 ], [ 638041.600000, 204062.000000 ], [ 638068.700000, 204123.900000 ], [ 638093.400000, 204265.100000 ], [ 638129.700000, 204334.000000 ], [ 638141.700000, 204375.200000 ], [ 638162.500000, 204474.400000 ], [ 638164.300000, 204554.900000 ], [ 638190.000000, 204633.700000 ], [ 638240.400000, 204748.000000 ], [ 638245.600000, 204777.200000 ], [ 638240.400000, 204827.000000 ], [ 638266.800000, 204900.800000 ], [ 638292.800000, 204938.100000 ], [ 638396.200000, 205012.600000 ], [ 638431.400000, 205050.600000 ], [ 638471.900000, 205061.800000 ], [ 638498.700000, 205098.900000 ], [ 638538.572000, 205103.770000 ], [ 638579.600000, 205140.300000 ], [ 638612.200000, 205200.300000 ], [ 638625.400000, 205199.200000 ], [ 638599.600000, 205128.000000 ], [ 638599.700000, 205117.700000 ], [ 638613.469000, 205103.213000 ], [ 638606.938000, 205080.622000 ], [ 638556.700000, 205016.000000 ], [ 638512.000000, 204934.700000 ], [ 638518.000000, 204908.400000 ], [ 638545.200000, 204879.900000 ], [ 638533.400000, 204840.600000 ], [ 638532.600000, 204798.600000 ], [ 638550.500000, 204748.900000 ], [ 638564.400000, 204741.900000 ], [ 638570.800000, 204758.900000 ], [ 638570.400000, 204811.500000 ], [ 638584.600000, 204855.400000 ], [ 638608.300000, 204876.400000 ], [ 638614.200000, 204892.000000 ], [ 638609.900000, 204939.400000 ], [ 638624.400000, 204943.400000 ], [ 638648.900000, 204891.000000 ], [ 638645.800000, 204869.500000 ], [ 638631.400000, 204844.100000 ], [ 638636.700000, 204803.400000 ], [ 638650.100000, 204768.000000 ], [ 638686.100000, 204733.200000 ], [ 638686.400000, 204693.400000 ], [ 638669.600000, 204666.100000 ], [ 638609.900000, 204627.700000 ], [ 638608.400000, 204616.900000 ], [ 638656.200000, 204619.700000 ], [ 638719.400000, 204675.400000 ], [ 638726.800000, 204694.200000 ], [ 638727.500000, 204799.200000 ], [ 638739.200000, 204881.400000 ], [ 638755.200000, 204919.000000 ], [ 638813.600000, 204969.600000 ], [ 638842.300000, 205024.700000 ], [ 638910.800000, 205087.700000 ], [ 638932.500000, 205129.400000 ], [ 638950.600000, 205190.100000 ], [ 639003.500000, 205240.700000 ], [ 639097.700000, 205500.000000 ], [ 639098.800000, 205565.900000 ], [ 639143.700000, 205655.200000 ], [ 639246.400000, 205962.000000 ], [ 639248.800000, 206000.000000 ], [ 639238.500000, 206060.000000 ], [ 639228.000000, 206072.700000 ], [ 639158.500000, 206111.700000 ], [ 639106.900000, 206171.600000 ], [ 639093.000000, 206179.200000 ], [ 639093.300000, 206202.900000 ], [ 639064.500000, 206231.000000 ], [ 639053.800000, 206250.800000 ], [ 639025.200000, 206343.200000 ], [ 639013.200000, 206403.300000 ], [ 639012.000000, 206451.300000 ], [ 639016.800000, 206503.000000 ], [ 639026.800000, 206524.000000 ], [ 639059.200000, 206563.300000 ], [ 639172.500000, 206668.200000 ], [ 639185.400000, 206688.500000 ], [ 639206.200000, 206745.500000 ], [ 639208.200000, 206785.900000 ], [ 639194.300000, 206854.600000 ], [ 639196.300000, 206898.700000 ], [ 639189.000000, 206928.800000 ], [ 639192.700000, 206987.100000 ], [ 639210.400000, 207033.900000 ], [ 639304.100000, 207129.100000 ], [ 639300.300000, 207157.600000 ], [ 639287.400000, 207184.900000 ], [ 639225.800000, 207179.700000 ], [ 639159.100000, 207162.000000 ], [ 639093.300000, 207104.600000 ], [ 639072.000000, 207104.400000 ], [ 639023.700000, 207118.100000 ], [ 638994.600000, 207115.400000 ], [ 638989.800000, 207122.900000 ], [ 639010.700000, 207131.300000 ], [ 639060.900000, 207126.900000 ], [ 639086.500000, 207133.200000 ], [ 639117.500000, 207192.500000 ], [ 639174.400000, 207240.700000 ], [ 639231.000000, 207259.800000 ], [ 639242.200000, 207270.600000 ], [ 639264.000000, 207326.600000 ], [ 639278.800000, 207331.800000 ], [ 639382.000000, 207325.700000 ], [ 639419.700000, 207336.700000 ], [ 639428.300000, 207360.700000 ], [ 639421.200000, 207365.500000 ], [ 639361.600000, 207345.400000 ], [ 639334.900000, 207348.900000 ], [ 639265.300000, 207396.000000 ], [ 639251.200000, 207397.700000 ], [ 639232.900000, 207385.600000 ], [ 639186.600000, 207317.900000 ], [ 639134.600000, 207328.400000 ], [ 639136.100000, 207340.400000 ], [ 639169.600000, 207346.400000 ], [ 639186.300000, 207410.900000 ], [ 639229.900000, 207465.100000 ], [ 639248.600000, 207466.600000 ], [ 639315.500000, 207444.600000 ], [ 639333.400000, 207467.200000 ], [ 639327.800000, 207500.000000 ], [ 639323.100000, 207485.400000 ], [ 639311.300000, 207475.700000 ], [ 639294.300000, 207475.700000 ], [ 639229.100000, 207503.600000 ], [ 639217.800000, 207502.400000 ], [ 639149.800000, 207430.000000 ], [ 639125.700000, 207422.000000 ], [ 639085.900000, 207506.100000 ], [ 639060.200000, 207535.700000 ], [ 639053.000000, 207594.300000 ], [ 638942.600000, 207492.000000 ], [ 638922.500000, 207449.900000 ], [ 638906.800000, 207387.400000 ], [ 638840.400000, 207249.100000 ], [ 638818.500000, 207163.900000 ], [ 638812.000000, 207150.900000 ], [ 638801.400000, 207148.900000 ], [ 638765.000000, 207248.600000 ], [ 638750.600000, 207415.100000 ], [ 638738.100000, 207447.600000 ], [ 638745.600000, 207484.600000 ], [ 638735.900000, 207527.900000 ], [ 638737.400000, 207576.400000 ], [ 638725.500000, 207587.200000 ], [ 638671.888000, 207577.642000 ], [ 638662.178000, 207590.083000 ], [ 638664.454000, 207599.794000 ], [ 638727.800000, 207622.800000 ], [ 638748.500000, 207640.100000 ], [ 638760.800000, 207680.600000 ], [ 638774.300000, 207693.100000 ], [ 638804.000000, 207700.300000 ], [ 638825.500000, 207716.300000 ], [ 638867.300000, 207775.100000 ], [ 639081.500000, 207977.300000 ], [ 639088.500000, 207991.400000 ], [ 639085.800000, 208051.900000 ], [ 639093.000000, 208064.600000 ], [ 639125.800000, 208097.600000 ], [ 639147.300000, 208137.700000 ], [ 639219.000000, 208178.700000 ], [ 639270.300000, 208261.100000 ], [ 639273.000000, 208297.600000 ], [ 639253.300000, 208340.100000 ], [ 639249.300000, 208358.100000 ], [ 639253.800000, 208366.400000 ], [ 639266.900000, 208383.800000 ], [ 639287.400000, 208391.800000 ], [ 639340.500000, 208384.900000 ], [ 639366.800000, 208392.900000 ], [ 639382.300000, 208404.900000 ], [ 639395.700000, 208427.700000 ], [ 639419.500000, 208495.700000 ], [ 639454.500000, 208532.500000 ], [ 639466.300000, 208600.000000 ], [ 639498.500000, 208694.800000 ], [ 639514.800000, 208725.800000 ], [ 639551.800000, 208764.200000 ], [ 639666.500000, 208806.200000 ], [ 639724.100000, 208842.500000 ], [ 639748.900000, 208876.000000 ], [ 639773.800000, 208943.800000 ], [ 639873.800000, 209031.500000 ], [ 639913.000000, 209102.800000 ], [ 639973.100000, 209111.200000 ], [ 640001.400000, 209142.100000 ], [ 640013.880000, 209165.842000 ], [ 640088.000000, 209205.600000 ], [ 640122.900000, 209237.700000 ], [ 640180.800000, 209252.900000 ], [ 640244.600000, 209242.500000 ], [ 640280.100000, 209282.300000 ], [ 640292.400000, 209313.200000 ], [ 640298.800000, 209355.800000 ], [ 640325.700000, 209410.200000 ], [ 640345.300000, 209435.800000 ], [ 640462.713000, 209510.401000 ], [ 640604.000000, 209616.100000 ], [ 640666.500000, 209700.800000 ], [ 640755.200000, 209775.500000 ], [ 640841.900000, 209836.700000 ], [ 640902.900000, 209842.600000 ], [ 640940.800000, 209826.100000 ], [ 640981.700000, 209790.100000 ], [ 641003.300000, 209786.200000 ], [ 641020.000000, 209798.800000 ], [ 641027.600000, 209844.200000 ], [ 641063.000000, 209908.900000 ], [ 641125.700000, 209983.300000 ], [ 641196.300000, 210037.600000 ], [ 641224.800000, 210069.800000 ], [ 641238.900000, 210076.900000 ], [ 641321.100000, 210069.200000 ], [ 641349.600000, 210072.800000 ], [ 641438.200000, 210100.500000 ], [ 641463.318000, 210119.110000 ], [ 641419.900000, 210131.400000 ], [ 641381.400000, 210108.000000 ], [ 641339.600000, 210100.800000 ], [ 641225.400000, 210147.200000 ], [ 641176.300000, 210155.300000 ], [ 641159.500000, 210142.700000 ], [ 641157.900000, 210128.500000 ], [ 641144.900000, 210119.700000 ], [ 641133.800000, 210195.200000 ], [ 641125.900000, 210207.100000 ], [ 641064.100000, 210270.700000 ], [ 641007.800000, 210317.300000 ], [ 640982.900000, 210359.800000 ], [ 640932.300000, 210380.600000 ], [ 640927.200000, 210392.500000 ], [ 640914.500000, 210393.300000 ], [ 640913.800000, 210440.700000 ], [ 640890.200000, 210506.700000 ], [ 640860.600000, 210538.900000 ], [ 640815.300000, 210554.000000 ], [ 640815.700000, 210615.300000 ], [ 640805.600000, 210652.900000 ], [ 640807.200000, 210686.000000 ], [ 640773.400000, 210713.700000 ], [ 640724.200000, 210789.900000 ], [ 640719.200000, 210815.100000 ], [ 640726.300000, 210875.600000 ], [ 640705.700000, 210981.500000 ], [ 640660.500000, 211039.200000 ], [ 640621.300000, 211133.000000 ], [ 640592.500000, 211135.100000 ], [ 640556.700000, 211157.700000 ], [ 640508.200000, 211215.800000 ], [ 640512.100000, 211291.800000 ], [ 640506.500000, 211344.100000 ], [ 640522.700000, 211463.000000 ], [ 640475.400000, 211550.700000 ], [ 640481.900000, 211612.200000 ], [ 640443.400000, 211703.200000 ], [ 640443.400000, 211757.000000 ], [ 640456.400000, 211807.700000 ], [ 640378.500000, 211885.300000 ], [ 640364.700000, 211953.700000 ], [ 640366.900000, 212025.300000 ], [ 640337.900000, 212089.300000 ], [ 640339.700000, 212152.100000 ], [ 640374.900000, 212315.200000 ], [ 640364.900000, 212400.900000 ], [ 640334.500000, 212462.800000 ], [ 640328.000000, 212524.000000 ], [ 640349.200000, 212670.700000 ], [ 640380.200000, 212748.800000 ], [ 640380.635000, 212788.541000 ], [ 640351.100000, 212818.000000 ], [ 640337.900000, 212872.700000 ], [ 640324.800000, 212888.800000 ], [ 640290.200000, 212906.900000 ], [ 640241.400000, 212919.400000 ], [ 640229.900000, 212933.900000 ], [ 640231.700000, 212947.100000 ], [ 640286.200000, 213031.100000 ], [ 640286.400000, 213041.900000 ], [ 640252.900000, 213087.400000 ], [ 640278.500000, 213185.300000 ], [ 640276.300000, 213220.100000 ], [ 640194.700000, 213334.700000 ], [ 640173.200000, 213351.200000 ], [ 640042.900000, 213336.200000 ], [ 639998.600000, 213375.200000 ], [ 639862.100000, 213371.000000 ], [ 639830.900000, 213384.300000 ], [ 639822.500000, 213399.000000 ], [ 639816.400000, 213448.200000 ], [ 639780.500000, 213507.700000 ], [ 639752.700000, 213607.400000 ], [ 639682.200000, 213680.700000 ], [ 639661.400000, 213735.800000 ], [ 639603.900000, 213753.900000 ], [ 639599.000000, 213769.100000 ], [ 639604.500000, 213822.100000 ], [ 639599.100000, 213839.400000 ], [ 639548.200000, 213922.500000 ], [ 639517.600000, 213933.300000 ], [ 639479.200000, 213918.100000 ], [ 639459.700000, 213906.100000 ], [ 639399.400000, 213839.500000 ], [ 639389.400000, 213835.700000 ], [ 639358.400000, 213846.000000 ], [ 639306.900000, 213897.400000 ], [ 639205.900000, 214038.700000 ], [ 639205.600000, 214117.400000 ], [ 639191.200000, 214175.700000 ], [ 639230.200000, 214357.500000 ], [ 639238.200000, 214376.800000 ], [ 639320.100000, 214477.100000 ], [ 639321.600000, 214502.300000 ], [ 639304.500000, 214530.100000 ], [ 639182.100000, 214665.600000 ], [ 639233.300000, 214708.200000 ], [ 639289.000000, 214778.900000 ], [ 639316.800000, 214836.900000 ], [ 639360.800000, 214975.900000 ], [ 639410.600000, 215059.100000 ], [ 639431.086000, 215047.150000 ], [ 639533.100000, 215244.400000 ], [ 639561.100000, 215315.400000 ], [ 639580.600000, 215338.700000 ], [ 639630.500000, 215371.000000 ], [ 639686.800000, 215387.500000 ], [ 639782.400000, 215402.400000 ], [ 639882.800000, 215540.500000 ], [ 639952.300000, 215613.600000 ], [ 639973.600000, 215667.100000 ], [ 639993.300000, 215692.600000 ], [ 640008.300000, 215699.600000 ], [ 640045.500000, 215702.300000 ], [ 640081.900000, 215688.700000 ], [ 640095.800000, 215697.200000 ], [ 640095.500000, 215755.600000 ], [ 640077.500000, 215802.600000 ], [ 640076.000000, 215832.400000 ], [ 640093.100000, 215874.100000 ], [ 640127.600000, 215915.000000 ], [ 640160.300000, 215919.600000 ], [ 640203.800000, 215913.100000 ], [ 640327.300000, 215884.600000 ], [ 640350.800000, 215858.300000 ], [ 640369.800000, 215785.300000 ], [ 640412.400000, 215718.500000 ], [ 640420.300000, 215716.800000 ], [ 640433.900000, 215730.000000 ], [ 640449.100000, 215777.200000 ], [ 640531.700000, 215802.700000 ], [ 640644.700000, 215884.400000 ], [ 640697.800000, 215939.600000 ], [ 640709.200000, 215939.300000 ], [ 640712.200000, 216005.700000 ], [ 640753.500000, 216029.000000 ], [ 640749.600000, 216111.400000 ], [ 640849.000000, 216331.100000 ], [ 640962.300000, 216463.800000 ], [ 640991.600000, 216486.300000 ], [ 640985.700000, 216514.900000 ], [ 640992.400000, 216527.700000 ], [ 641030.800000, 216559.800000 ], [ 641092.200000, 216670.700000 ], [ 641087.300000, 216715.800000 ], [ 641096.400000, 216748.200000 ], [ 641096.400000, 216776.400000 ], [ 641039.700000, 216928.200000 ], [ 640999.200000, 217006.200000 ], [ 641000.900000, 217046.200000 ], [ 641043.900000, 217098.700000 ], [ 641182.400000, 217179.400000 ], [ 641292.900000, 217261.500000 ], [ 641429.700000, 217409.500000 ], [ 641445.400000, 217434.400000 ], [ 641482.400000, 217526.300000 ], [ 641516.700000, 217561.100000 ], [ 641599.500000, 217614.000000 ], [ 641662.700000, 217645.700000 ], [ 641753.200000, 217662.900000 ], [ 641788.500000, 217662.900000 ], [ 641820.300000, 217653.700000 ], [ 641872.600000, 217623.800000 ], [ 641893.000000, 217623.200000 ], [ 641995.700000, 217696.200000 ], [ 641997.800000, 217731.200000 ], [ 641922.000000, 217810.000000 ], [ 641928.300000, 217836.500000 ], [ 641964.800000, 217874.400000 ], [ 641972.400000, 217891.100000 ], [ 641989.100000, 218083.100000 ], [ 641974.500000, 218253.500000 ], [ 641991.500000, 218262.800000 ], [ 642076.000000, 218215.400000 ], [ 642093.400000, 218219.200000 ], [ 642089.800000, 218326.100000 ], [ 642110.400000, 218555.800000 ], [ 642089.200000, 218645.600000 ], [ 642065.300000, 218848.500000 ], [ 642080.200000, 218990.200000 ], [ 642076.060000, 219007.678000 ], [ 642046.900000, 219009.500000 ], [ 642036.800000, 219027.570000 ], [ 642038.232000, 219057.195000 ], [ 642103.100000, 219070.000000 ], [ 642328.800000, 219226.500000 ], [ 642367.600000, 219174.700000 ], [ 642396.300000, 219155.000000 ], [ 642470.913000, 219055.822000 ], [ 642498.100000, 219068.100000 ], [ 642571.500000, 219085.600000 ], [ 642649.724000, 219125.121000 ], [ 642653.799000, 219137.818000 ], [ 642664.850000, 219140.561000 ], [ 642676.606000, 219131.469000 ], [ 642716.251000, 219130.021000 ], [ 642754.614000, 219106.546000 ], [ 642798.200000, 219103.700000 ], [ 642834.400000, 219088.700000 ], [ 642886.900000, 219079.900000 ], [ 642931.900000, 219042.400000 ], [ 643001.900000, 219021.200000 ], [ 643025.700000, 218996.200000 ], [ 643073.200000, 218968.700000 ], [ 643079.400000, 218969.900000 ], [ 643043.200000, 219017.400000 ], [ 643033.200000, 219049.900000 ], [ 643011.900000, 219067.400000 ], [ 642988.200000, 219074.900000 ], [ 642979.400000, 219107.400000 ], [ 643005.700000, 219127.400000 ], [ 643010.700000, 219148.700000 ], [ 642984.400000, 219163.700000 ], [ 642958.200000, 219168.700000 ], [ 642936.900000, 219189.900000 ], [ 642926.900000, 219211.200000 ], [ 642896.900000, 219233.700000 ], [ 642946.900000, 219241.200000 ], [ 642976.900000, 219228.700000 ], [ 643000.700000, 219207.400000 ], [ 643028.200000, 219202.400000 ], [ 643084.400000, 219207.400000 ], [ 643099.400000, 219202.400000 ], [ 643126.900000, 219182.400000 ], [ 643147.231000, 219146.200000 ], [ 643172.200000, 219156.900000 ], [ 643296.600000, 219238.900000 ], [ 643333.700000, 219254.100000 ], [ 643349.000000, 219254.400000 ], [ 643351.700000, 219262.900000 ], [ 643367.500000, 219262.000000 ], [ 643401.600000, 219213.000000 ], [ 643424.600000, 219198.900000 ], [ 643570.100000, 219159.200000 ], [ 643651.900000, 219162.000000 ], [ 643757.700000, 219182.300000 ], [ 643778.200000, 219178.700000 ], [ 643817.900000, 219164.800000 ], [ 643915.000000, 219099.600000 ], [ 643987.500000, 219073.700000 ], [ 644008.500000, 219073.500000 ], [ 644032.600000, 219086.500000 ], [ 644078.800000, 219133.200000 ], [ 644103.400000, 219141.600000 ], [ 644128.100000, 219127.600000 ], [ 644156.813000, 219095.220000 ], [ 644166.300000, 219092.625000 ], [ 644192.700000, 219146.100000 ], [ 644210.600000, 219201.800000 ], [ 644302.100000, 219299.600000 ], [ 644334.000000, 219276.100000 ], [ 644404.200000, 219264.100000 ], [ 644463.700000, 219271.800000 ], [ 644594.700000, 219318.600000 ], [ 644683.200000, 219307.700000 ], [ 644787.400000, 219333.900000 ], [ 644821.400000, 219316.700000 ], [ 644880.100000, 219302.600000 ], [ 644894.400000, 219287.500000 ], [ 644898.200000, 219239.000000 ], [ 644933.400000, 219197.000000 ], [ 644983.900000, 219176.700000 ], [ 645136.800000, 219155.800000 ], [ 645187.700000, 219139.700000 ], [ 645263.000000, 219056.000000 ], [ 645304.600000, 219025.700000 ], [ 645372.000000, 219009.000000 ], [ 645393.900000, 218995.000000 ], [ 645507.800000, 218892.600000 ], [ 645573.000000, 218852.700000 ], [ 645632.000000, 218798.500000 ], [ 645682.700000, 218732.900000 ], [ 645817.800000, 218617.800000 ], [ 645899.900000, 218576.300000 ], [ 645975.500000, 218559.000000 ], [ 645970.700000, 218477.700000 ], [ 645979.100000, 218445.300000 ], [ 646016.800000, 218370.900000 ], [ 646016.700000, 218310.000000 ], [ 646033.200000, 218316.800000 ], [ 646216.500000, 218295.100000 ], [ 646262.050000, 218295.773000 ], [ 646376.435000, 218306.251000 ], [ 646687.900000, 218368.500000 ], [ 646680.700000, 218336.100000 ], [ 646683.500000, 218292.300000 ], [ 646709.300000, 218206.200000 ], [ 646777.800000, 218072.600000 ], [ 646888.400000, 217921.200000 ], [ 647103.800000, 217824.400000 ], [ 647144.900000, 217784.000000 ], [ 647200.700000, 217752.500000 ], [ 647223.600000, 217721.700000 ], [ 647256.800000, 217644.100000 ], [ 647272.200000, 217628.200000 ], [ 647332.300000, 217591.300000 ], [ 647423.300000, 217515.600000 ], [ 647545.300000, 217488.100000 ], [ 647668.300000, 217428.200000 ], [ 647696.900000, 217379.900000 ], [ 647726.400000, 217351.300000 ], [ 647754.300000, 217336.600000 ], [ 647779.000000, 217332.300000 ], [ 647809.300000, 217301.100000 ], [ 647831.900000, 217291.000000 ], [ 647846.600000, 217272.700000 ], [ 647908.100000, 217239.200000 ], [ 648074.900000, 217083.900000 ], [ 648150.700000, 216977.600000 ], [ 648153.591000, 216940.454000 ], [ 648392.000000, 216831.200000 ], [ 648423.000000, 216830.700000 ], [ 648466.000000, 216841.200000 ], [ 648510.800000, 216830.400000 ], [ 648577.000000, 216838.200000 ], [ 648598.800000, 216855.000000 ], [ 648659.500000, 216848.700000 ], [ 648714.400000, 216864.800000 ], [ 648766.800000, 216860.700000 ], [ 648835.000000, 216827.600000 ], [ 648902.500000, 216826.300000 ], [ 648962.500000, 216787.100000 ], [ 649036.800000, 216753.400000 ], [ 649101.000000, 216704.500000 ], [ 649137.900000, 216697.600000 ], [ 649156.800000, 216719.200000 ], [ 649229.500000, 216772.700000 ], [ 649239.000000, 216787.200000 ], [ 649251.800000, 216838.200000 ], [ 649313.800000, 216898.900000 ], [ 649288.703000, 216975.922000 ], [ 649337.600000, 216979.200000 ], [ 649384.600000, 217000.100000 ], [ 649439.600000, 217013.900000 ], [ 649488.700000, 217014.200000 ], [ 649475.826000, 217109.288000 ], [ 649502.300000, 217109.900000 ], [ 649651.900000, 217145.500000 ], [ 649681.400000, 217162.800000 ], [ 649709.700000, 217134.800000 ], [ 649758.800000, 217127.500000 ], [ 649767.700000, 217116.600000 ], [ 649904.500000, 217058.400000 ], [ 650262.100000, 216983.200000 ], [ 650260.200000, 216968.900000 ], [ 650251.800000, 216961.300000 ], [ 650382.600000, 216962.200000 ], [ 650786.100000, 217209.000000 ], [ 650901.300000, 217247.200000 ], [ 650935.100000, 217282.400000 ], [ 650977.300000, 217309.400000 ], [ 651055.300000, 217424.500000 ], [ 651085.300000, 217446.000000 ], [ 651121.300000, 217497.900000 ], [ 651121.900000, 217508.800000 ], [ 651165.600000, 217590.100000 ], [ 651156.800000, 217633.300000 ], [ 651160.100000, 217640.300000 ], [ 651208.100000, 217659.800000 ], [ 651230.100000, 217684.700000 ], [ 651229.600000, 217718.700000 ], [ 651213.200000, 217773.700000 ], [ 651280.200000, 217772.900000 ], [ 651321.700000, 217744.600000 ], [ 651362.900000, 217701.900000 ], [ 651459.200000, 217622.600000 ], [ 651497.300000, 217606.200000 ], [ 651534.100000, 217602.700000 ], [ 651628.700000, 217619.800000 ], [ 651806.200000, 217606.000000 ], [ 651821.500000, 217618.200000 ], [ 651838.000000, 217620.200000 ], [ 652104.500000, 217606.600000 ], [ 652459.400000, 217621.300000 ], [ 652753.000000, 217616.700000 ], [ 652845.000000, 217649.200000 ], [ 652888.700000, 217689.700000 ], [ 653005.000000, 217772.000000 ], [ 653021.000000, 217775.000000 ], [ 653178.200000, 217753.300000 ], [ 653191.200000, 217766.700000 ], [ 653189.000000, 217898.000000 ], [ 653200.600000, 218015.600000 ], [ 653193.291000, 218035.678000 ], [ 653208.900000, 218051.100000 ], [ 653248.400000, 218116.400000 ], [ 653298.300000, 218264.800000 ], [ 653328.200000, 218297.200000 ], [ 653402.077000, 218350.515000 ], [ 653450.600000, 218338.200000 ], [ 653635.200000, 218258.300000 ], [ 653657.700000, 218245.400000 ], [ 653704.000000, 218200.926000 ], [ 653735.800000, 218161.900000 ], [ 653740.900000, 218139.800000 ], [ 653735.500000, 218119.900000 ], [ 653691.500000, 218068.200000 ], [ 653695.400000, 218041.500000 ], [ 653781.300000, 217964.000000 ], [ 653841.100000, 217921.000000 ], [ 653920.255000, 217836.206000 ], [ 653945.800000, 217855.200000 ], [ 653942.200000, 217873.200000 ], [ 653947.500000, 217875.500000 ], [ 653984.400000, 217858.800000 ], [ 654006.110000, 217817.882000 ], [ 654065.600000, 217875.500000 ], [ 654080.700000, 217882.800000 ], [ 654145.100000, 217879.700000 ], [ 654413.500000, 217706.000000 ], [ 654445.800000, 217676.500000 ], [ 654461.200000, 217622.300000 ], [ 654470.400000, 217530.800000 ], [ 654480.700000, 217490.000000 ], [ 654503.100000, 217461.600000 ], [ 654539.200000, 217430.900000 ], [ 654572.200000, 217339.300000 ], [ 654655.600000, 217224.200000 ], [ 654751.000000, 217108.500000 ], [ 654769.853000, 217057.292000 ], [ 654813.600000, 217000.400000 ], [ 654827.400000, 216922.400000 ], [ 654855.200000, 216880.700000 ], [ 654843.500000, 216788.700000 ], [ 654860.700000, 216713.400000 ], [ 654954.800000, 216574.000000 ], [ 655052.800000, 216408.600000 ], [ 655188.100000, 216237.200000 ], [ 655202.800000, 216210.900000 ], [ 655239.100000, 216088.300000 ], [ 655290.900000, 216069.400000 ], [ 655587.100000, 216067.200000 ], [ 655634.000000, 216041.000000 ], [ 655769.000000, 215925.200000 ], [ 655889.000000, 215789.700000 ], [ 655920.300000, 215789.400000 ], [ 655969.700000, 215537.800000 ], [ 655972.300000, 215351.900000 ], [ 655983.300000, 215315.400000 ], [ 656084.300000, 215134.600000 ], [ 656094.800000, 215128.200000 ], [ 656136.200000, 215124.000000 ], [ 656178.000000, 215107.500000 ], [ 656242.000000, 215077.900000 ], [ 656253.300000, 215066.500000 ], [ 656383.800000, 214563.300000 ], [ 656397.800000, 214536.800000 ], [ 656546.900000, 214457.000000 ], [ 656569.800000, 214430.800000 ], [ 656601.600000, 214449.800000 ], [ 656638.300000, 214510.300000 ], [ 656680.000000, 214545.300000 ], [ 656700.000000, 214552.800000 ], [ 656735.500000, 214553.500000 ], [ 656787.000000, 214546.800000 ], [ 656811.000000, 214533.000000 ], [ 656823.800000, 214492.500000 ], [ 656827.200000, 214110.000000 ], [ 656801.300000, 214062.000000 ], [ 656626.200000, 213836.000000 ], [ 656616.200000, 213781.700000 ], [ 656630.300000, 213759.800000 ], [ 656779.200000, 213736.700000 ], [ 656797.700000, 213724.400000 ], [ 656843.800000, 213661.800000 ], [ 657047.769000, 213578.885000 ], [ 657144.200000, 213546.200000 ], [ 657169.900000, 213549.400000 ], [ 657261.400000, 213609.700000 ], [ 657316.700000, 213638.500000 ], [ 657402.662000, 213649.431000 ], [ 657478.700000, 213623.500000 ], [ 657547.907000, 213542.646000 ], [ 657628.400000, 213558.200000 ], [ 657731.000000, 213555.000000 ], [ 657862.900000, 213583.100000 ], [ 657901.100000, 213596.300000 ], [ 657988.100000, 213644.700000 ], [ 658024.100000, 213645.300000 ], [ 658099.700000, 213628.300000 ], [ 658181.300000, 213641.800000 ], [ 658374.957000, 213659.669000 ], [ 658552.698000, 213640.687000 ], [ 658612.200000, 213650.600000 ], [ 658660.300000, 213648.500000 ], [ 658735.600000, 213612.800000 ], [ 658810.300000, 213613.800000 ], [ 658930.400000, 213583.800000 ], [ 658999.216000, 213580.208000 ], [ 659066.000000, 213543.200000 ], [ 659118.200000, 213505.700000 ], [ 659149.400000, 213491.800000 ], [ 659237.280000, 213472.762000 ], [ 659256.700000, 213455.600000 ], [ 659256.500000, 213434.000000 ], [ 659112.754000, 213256.208000 ], [ 659140.000000, 213238.400000 ], [ 659219.700000, 213212.400000 ], [ 659272.500000, 213187.800000 ], [ 659314.600000, 213157.000000 ], [ 659444.200000, 212944.500000 ], [ 659499.400000, 212867.300000 ], [ 659771.300000, 213010.200000 ], [ 659888.300000, 213091.200000 ], [ 659907.300000, 213118.500000 ], [ 659954.000000, 213231.000000 ], [ 659977.500000, 213265.800000 ], [ 660043.600000, 213328.100000 ], [ 660058.500000, 213317.500000 ], [ 660097.800000, 213314.300000 ], [ 660179.000000, 213342.500000 ], [ 660254.500000, 213322.300000 ], [ 660342.700000, 213287.300000 ], [ 660458.300000, 213125.700000 ], [ 660648.700000, 212995.400000 ], [ 660682.100000, 212940.700000 ], [ 660741.500000, 212800.200000 ], [ 660905.400000, 212554.700000 ], [ 661029.951000, 212350.800000 ], [ 661320.200000, 212582.900000 ], [ 661496.800000, 212779.500000 ], [ 661618.000000, 212837.200000 ], [ 661625.500000, 212850.000000 ], [ 661624.500000, 212949.500000 ], [ 661650.800000, 213020.000000 ], [ 661655.800000, 213057.200000 ], [ 661650.500000, 213106.700000 ], [ 661655.300000, 213130.000000 ], [ 661736.800000, 213299.300000 ], [ 661751.300000, 213324.500000 ], [ 661818.300000, 213379.800000 ], [ 661837.500000, 213404.300000 ], [ 661961.057000, 213593.282000 ], [ 662108.500000, 213745.300000 ], [ 662508.700000, 213957.900000 ], [ 662568.300000, 214008.100000 ], [ 662580.300000, 213999.100000 ], [ 662626.200000, 213998.100000 ], [ 662692.600000, 213959.700000 ], [ 662750.000000, 213973.100000 ], [ 662794.500000, 213997.600000 ], [ 662812.000000, 214039.600000 ], [ 663140.200000, 214317.900000 ], [ 663168.500000, 214322.400000 ], [ 663232.200000, 214296.900000 ], [ 663331.500000, 214275.000000 ], [ 663408.200000, 214242.600000 ], [ 663421.300000, 214245.100000 ], [ 663474.500000, 214280.100000 ], [ 663489.500000, 214282.000000 ], [ 663503.500000, 214272.900000 ], [ 663560.839000, 214356.497000 ], [ 663571.919000, 214353.960000 ], [ 663584.688000, 214360.613000 ], [ 663587.594000, 214375.543000 ], [ 663617.400000, 214420.200000 ], [ 663632.800000, 214480.700000 ], [ 663635.200000, 214550.500000 ], [ 663699.700000, 214543.000000 ], [ 663736.400000, 214530.000000 ], [ 663720.000000, 214506.600000 ], [ 663700.000000, 214454.100000 ], [ 663684.000000, 214371.100000 ], [ 663681.400000, 214312.600000 ], [ 663699.400000, 214089.100000 ], [ 663717.547000, 214045.941000 ], [ 663813.800000, 213951.900000 ], [ 663831.100000, 213944.900000 ], [ 663885.600000, 213900.100000 ], [ 664115.000000, 213673.100000 ], [ 664168.712000, 213633.107000 ], [ 664213.597000, 213586.591000 ], [ 664235.200000, 213498.700000 ], [ 664275.200000, 213385.500000 ], [ 664426.232000, 213288.640000 ], [ 664439.000000, 213290.500000 ], [ 664416.600000, 213272.600000 ], [ 664329.226000, 213261.982000 ], [ 664320.228000, 213255.665000 ], [ 664302.066000, 213272.799000 ], [ 664292.732000, 213271.399000 ], [ 664288.800000, 213190.100000 ], [ 664262.530000, 213158.596000 ], [ 664258.200000, 213131.100000 ], [ 664253.200000, 213008.900000 ], [ 664273.742000, 212905.222000 ], [ 664359.600000, 212731.800000 ], [ 664394.800000, 212619.400000 ], [ 664410.900000, 212389.800000 ], [ 664418.441000, 212354.860000 ], [ 664429.972000, 212347.788000 ], [ 664438.825000, 212221.400000 ], [ 664446.900000, 212184.400000 ], [ 664442.645000, 212138.462000 ], [ 664459.700000, 212107.400000 ], [ 664461.100000, 212077.200000 ], [ 664480.700000, 212037.700000 ], [ 664530.900000, 211975.200000 ], [ 664580.800000, 211928.400000 ], [ 664630.000000, 211902.300000 ], [ 664716.900000, 211875.500000 ], [ 664816.109000, 211862.235000 ], [ 664827.600000, 211876.700000 ], [ 664833.257000, 211899.390000 ], [ 664845.089000, 212020.614000 ], [ 665063.600000, 211939.900000 ], [ 665237.300000, 211898.000000 ], [ 665409.500000, 211801.200000 ], [ 665375.800000, 211743.900000 ], [ 665411.503000, 211707.774000 ], [ 665612.600000, 211598.800000 ], [ 665643.838000, 211594.064000 ], [ 665649.468000, 211580.231000 ], [ 665660.487000, 211572.579000 ], [ 665735.610000, 211581.428000 ], [ 665743.875000, 211565.437000 ], [ 665738.400000, 211532.000000 ], [ 665742.400000, 211412.200000 ], [ 665736.022000, 211400.502000 ], [ 665822.200000, 211441.000000 ], [ 665849.000000, 211445.300000 ], [ 666146.691000, 211481.466000 ], [ 666149.500000, 211466.200000 ] ], [ [ 601918.200000, 200909.600000 ], [ 601965.800000, 200878.500000 ], [ 602018.800000, 200827.500000 ], [ 602206.673000, 200597.034000 ], [ 602218.925000, 200595.917000 ], [ 602416.800000, 200791.800000 ], [ 602661.900000, 201010.200000 ], [ 602944.100000, 201277.700000 ], [ 602930.200000, 201301.700000 ], [ 602897.200000, 201309.900000 ], [ 602888.700000, 201337.600000 ], [ 602791.200000, 201437.900000 ], [ 602766.000000, 201476.400000 ], [ 602791.700000, 201532.400000 ], [ 602872.000000, 201780.600000 ], [ 602867.200000, 201804.200000 ], [ 602758.200000, 201840.000000 ], [ 602689.700000, 201845.000000 ], [ 602652.700000, 201854.600000 ], [ 602570.200000, 201894.600000 ], [ 602527.000000, 201940.600000 ], [ 602480.600000, 201958.600000 ], [ 602465.013000, 201954.927000 ], [ 602480.400000, 201990.600000 ], [ 602502.100000, 202085.800000 ], [ 602529.000000, 202254.400000 ], [ 602589.201000, 202369.685000 ], [ 602509.400000, 202399.400000 ], [ 602498.200000, 202428.600000 ], [ 602424.800000, 202455.700000 ], [ 602403.570000, 202486.875000 ], [ 602147.981000, 203154.932000 ], [ 602212.356000, 203175.815000 ], [ 602287.400000, 203179.700000 ], [ 602459.900000, 203213.400000 ], [ 602552.045000, 203214.400000 ], [ 602561.102000, 203219.412000 ], [ 602778.600000, 203218.500000 ], [ 602898.600000, 203202.700000 ], [ 603136.762000, 203150.388000 ], [ 603157.000000, 203161.300000 ], [ 603146.400000, 203273.200000 ], [ 603314.000000, 203197.500000 ], [ 603403.200000, 203146.000000 ], [ 603420.000000, 203145.700000 ], [ 603426.700000, 203153.200000 ], [ 603441.100000, 203192.300000 ], [ 603498.000000, 203134.300000 ], [ 603527.500000, 203120.300000 ], [ 603600.000000, 203096.600000 ], [ 603760.200000, 203059.600000 ], [ 603820.500000, 203025.200000 ], [ 603923.200000, 202932.200000 ], [ 603997.700000, 202888.200000 ], [ 604157.700000, 202806.200000 ], [ 604201.700000, 202793.200000 ], [ 604286.700000, 202784.700000 ], [ 604409.300000, 202726.000000 ], [ 604338.100000, 202670.000000 ], [ 604331.100000, 202661.100000 ], [ 604334.300000, 202633.700000 ], [ 604387.700000, 202627.500000 ], [ 604436.200000, 202652.300000 ], [ 604467.400000, 202683.000000 ], [ 604550.100000, 202667.900000 ], [ 604641.100000, 202687.500000 ], [ 604673.100000, 202682.500000 ], [ 604700.600000, 202670.000000 ], [ 604787.400000, 202592.000000 ], [ 604813.300000, 202594.300000 ], [ 604885.000000, 202472.200000 ], [ 604925.000000, 202353.100000 ], [ 604944.700000, 202314.300000 ], [ 605012.900000, 202237.300000 ], [ 605139.500000, 202141.200000 ], [ 605206.100000, 202031.900000 ], [ 605242.700000, 201931.400000 ], [ 605269.700000, 201894.500000 ], [ 605366.100000, 201790.600000 ], [ 605455.500000, 201669.400000 ], [ 605551.500000, 201573.400000 ], [ 605622.500000, 201514.100000 ], [ 605665.600000, 201506.600000 ], [ 605681.600000, 201487.000000 ], [ 605730.100000, 201330.200000 ], [ 605745.900000, 201295.500000 ], [ 605796.100000, 201220.500000 ], [ 605816.700000, 201162.000000 ], [ 605827.800000, 201147.700000 ], [ 606044.400000, 201012.200000 ], [ 606076.400000, 200985.700000 ], [ 606084.400000, 200951.500000 ], [ 606082.600000, 200860.900000 ], [ 606180.500000, 200882.200000 ], [ 606280.200000, 200861.900000 ], [ 606443.200000, 200860.700000 ], [ 606506.600000, 200837.400000 ], [ 606482.500000, 200804.400000 ], [ 606475.500000, 200769.600000 ], [ 606477.100000, 200449.500000 ], [ 606566.900000, 200401.700000 ], [ 606622.200000, 200348.600000 ], [ 606723.400000, 200296.000000 ], [ 606725.200000, 200289.200000 ], [ 606870.600000, 200239.800000 ], [ 607194.600000, 199963.500000 ], [ 607367.900000, 199780.900000 ], [ 607409.300000, 199749.300000 ], [ 607505.000000, 199699.200000 ], [ 607536.100000, 199783.000000 ], [ 607723.900000, 199896.500000 ], [ 607792.500000, 199863.100000 ], [ 607907.700000, 199908.200000 ], [ 608033.500000, 199971.900000 ], [ 608065.500000, 200038.100000 ], [ 608076.800000, 200087.100000 ], [ 608078.000000, 200155.600000 ], [ 608062.100000, 200223.500000 ], [ 608126.500000, 200287.200000 ], [ 608221.200000, 200346.900000 ], [ 608250.000000, 200352.900000 ], [ 608339.700000, 200348.200000 ], [ 608379.247000, 200357.572000 ], [ 608454.000000, 200506.700000 ], [ 608501.200000, 200531.200000 ], [ 608624.400000, 200517.300000 ], [ 608645.000000, 200511.800000 ], [ 608668.200000, 200468.200000 ], [ 608682.500000, 200459.200000 ], [ 608710.500000, 200454.000000 ], [ 608718.000000, 200459.700000 ], [ 608718.200000, 200470.700000 ], [ 608699.000000, 200507.000000 ], [ 608699.900000, 200536.700000 ], [ 608718.100000, 200593.800000 ], [ 608838.700000, 200726.600000 ], [ 608905.100000, 200816.000000 ], [ 608946.800000, 200837.500000 ], [ 608974.500000, 200839.500000 ], [ 609063.700000, 200796.200000 ], [ 609194.800000, 200762.600000 ], [ 609288.400000, 200774.500000 ], [ 609373.200000, 200760.200000 ], [ 609506.500000, 200792.000000 ], [ 609540.300000, 200805.500000 ], [ 609526.000000, 200883.000000 ], [ 609526.200000, 200938.200000 ], [ 609568.500000, 201056.500000 ], [ 609585.200000, 201079.700000 ], [ 609594.400000, 201084.700000 ], [ 609638.200000, 201079.000000 ], [ 609753.000000, 201122.400000 ], [ 609812.500000, 201156.700000 ], [ 609849.700000, 201170.500000 ], [ 609913.000000, 201212.700000 ], [ 609930.500000, 201215.200000 ], [ 609994.200000, 201165.200000 ], [ 610003.500000, 201141.500000 ], [ 609996.000000, 201099.000000 ], [ 609961.200000, 201048.200000 ], [ 609965.700000, 201015.200000 ], [ 610017.200000, 200956.500000 ], [ 610092.900000, 200815.400000 ], [ 610205.500000, 200801.000000 ], [ 610304.200000, 200769.700000 ], [ 610478.300000, 200663.700000 ], [ 610493.400000, 200648.500000 ], [ 610506.000000, 200606.300000 ], [ 610509.200000, 200517.600000 ], [ 610496.100000, 200453.200000 ], [ 610476.100000, 200397.300000 ], [ 610476.300000, 200354.100000 ], [ 610489.900000, 200290.200000 ], [ 610484.200000, 200200.200000 ], [ 610490.000000, 200177.200000 ], [ 610552.500000, 200115.400000 ], [ 610652.800000, 200035.800000 ], [ 610732.700000, 199988.700000 ], [ 610796.700000, 199964.000000 ], [ 610997.700000, 199907.000000 ], [ 611199.700000, 199882.100000 ], [ 611211.700000, 199931.500000 ], [ 611208.200000, 199971.700000 ], [ 611215.500000, 200019.700000 ], [ 611256.200000, 200120.700000 ], [ 611218.200000, 200239.200000 ], [ 611203.800000, 200268.000000 ], [ 611169.200000, 200298.500000 ], [ 611155.000000, 200350.900000 ], [ 611159.200000, 200396.600000 ], [ 611180.700000, 200440.400000 ], [ 611228.300000, 200496.300000 ], [ 611283.900000, 200587.300000 ], [ 611344.500000, 200638.800000 ], [ 611382.700000, 200693.100000 ], [ 611389.000000, 200708.600000 ], [ 611387.200000, 200868.600000 ], [ 611396.300000, 200963.500000 ], [ 611451.600000, 200958.000000 ], [ 611587.600000, 200924.000000 ], [ 611768.100000, 200932.500000 ], [ 611883.200000, 200915.700000 ], [ 611915.200000, 200898.200000 ], [ 612031.900000, 200781.200000 ], [ 612166.300000, 200689.800000 ], [ 612172.200000, 200700.200000 ], [ 612192.000000, 200711.700000 ], [ 612226.700000, 200699.000000 ], [ 612311.100000, 200604.700000 ], [ 612378.500000, 200552.900000 ], [ 612404.100000, 200550.300000 ], [ 612421.600000, 200559.600000 ], [ 612465.500000, 200601.200000 ], [ 612500.500000, 200652.000000 ], [ 612495.500000, 200600.000000 ], [ 612453.800000, 200479.600000 ], [ 612438.200000, 200376.200000 ], [ 612436.400000, 200332.500000 ], [ 612455.200000, 200287.000000 ], [ 612551.300000, 200283.000000 ], [ 612625.000000, 200272.200000 ], [ 612891.400000, 200351.200000 ], [ 612905.900000, 200352.500000 ], [ 612926.900000, 200344.200000 ], [ 612942.100000, 200322.500000 ], [ 612947.200000, 200301.800000 ], [ 612912.000000, 200175.200000 ], [ 612885.900000, 200120.600000 ], [ 612795.400000, 200008.200000 ], [ 612767.500000, 199958.100000 ], [ 612773.100000, 199925.900000 ], [ 612828.600000, 199869.700000 ], [ 612841.900000, 199838.700000 ], [ 612835.600000, 199777.700000 ], [ 612810.900000, 199719.200000 ], [ 612761.400000, 199620.000000 ], [ 612716.400000, 199562.500000 ], [ 612624.900000, 199504.700000 ], [ 612554.200000, 199477.500000 ], [ 612493.500000, 199443.900000 ], [ 612422.500000, 199431.000000 ], [ 612396.900000, 199385.300000 ], [ 612330.400000, 199343.000000 ], [ 612306.100000, 199254.500000 ], [ 612327.600000, 199195.700000 ], [ 612343.400000, 199172.000000 ], [ 612470.700000, 199149.700000 ], [ 612637.900000, 199137.600000 ], [ 612991.000000, 199318.800000 ], [ 613038.800000, 199325.300000 ], [ 613206.900000, 199498.300000 ], [ 613275.500000, 199590.700000 ], [ 613381.100000, 199633.600000 ], [ 613560.700000, 199773.000000 ], [ 613610.700000, 199782.000000 ], [ 613647.500000, 199767.700000 ], [ 613791.900000, 199679.600000 ], [ 613758.100000, 199656.900000 ], [ 613732.400000, 199597.900000 ], [ 613732.200000, 199568.200000 ], [ 613698.600000, 199450.900000 ], [ 613697.100000, 199412.100000 ], [ 613711.500000, 199394.900000 ], [ 613724.000000, 199422.400000 ], [ 613768.500000, 199481.600000 ], [ 613809.300000, 199475.200000 ], [ 613880.900000, 199500.900000 ], [ 613900.800000, 199501.400000 ], [ 613946.900000, 199473.100000 ], [ 613991.400000, 199480.900000 ], [ 614021.400000, 199478.100000 ], [ 614076.800000, 199424.600000 ], [ 614157.300000, 199445.500000 ], [ 614171.300000, 199466.200000 ], [ 614151.200000, 199526.400000 ], [ 614159.400000, 199547.600000 ], [ 614181.100000, 199565.900000 ], [ 614188.600000, 199561.600000 ], [ 614190.400000, 199524.100000 ], [ 614244.900000, 199448.100000 ], [ 614289.100000, 199432.400000 ], [ 614302.600000, 199419.600000 ], [ 614298.100000, 199396.400000 ], [ 614265.600000, 199356.600000 ], [ 614265.900000, 199313.100000 ], [ 614280.200000, 199298.000000 ], [ 614306.800000, 199302.700000 ], [ 614337.600000, 199344.300000 ], [ 614428.900000, 199379.600000 ], [ 614446.600000, 199378.600000 ], [ 614486.400000, 199354.558000 ], [ 614482.500000, 199329.100000 ], [ 614435.600000, 199239.100000 ], [ 614331.900000, 199059.500000 ], [ 614324.700000, 199025.100000 ], [ 614335.500000, 198902.000000 ], [ 614375.700000, 198805.600000 ], [ 614446.900000, 198726.900000 ], [ 614451.900000, 198757.100000 ], [ 614467.900000, 198767.400000 ], [ 614558.300000, 198751.600000 ], [ 614587.600000, 198757.600000 ], [ 614810.900000, 198906.400000 ], [ 614873.600000, 198962.600000 ], [ 614901.100000, 199002.600000 ], [ 615180.900000, 199130.500000 ], [ 615256.900000, 199198.900000 ], [ 615380.300000, 199285.200000 ], [ 615390.100000, 199299.400000 ], [ 615392.600000, 199331.100000 ], [ 615361.900000, 199422.400000 ], [ 615363.400000, 199468.400000 ], [ 615386.400000, 199543.600000 ], [ 615401.700000, 199629.300000 ], [ 615442.400000, 199735.200000 ], [ 615461.900000, 199810.000000 ], [ 615495.900000, 199875.400000 ], [ 615581.400000, 199848.100000 ], [ 615657.900000, 199761.000000 ], [ 615734.700000, 199743.600000 ], [ 615890.200000, 199671.600000 ], [ 615901.415000, 199672.902000 ], [ 615922.000000, 199645.000000 ], [ 615939.500000, 199588.200000 ], [ 615953.100000, 199579.800000 ], [ 615973.200000, 199622.100000 ], [ 615989.700000, 199631.900000 ], [ 616115.805000, 199634.717000 ], [ 616153.600000, 199611.000000 ], [ 616256.000000, 199575.500000 ], [ 616402.600000, 199468.800000 ], [ 616424.300000, 199463.200000 ], [ 616538.000000, 199461.300000 ], [ 616674.300000, 199423.800000 ], [ 616769.000000, 199388.100000 ], [ 616887.800000, 199292.100000 ], [ 616999.200000, 199253.400000 ], [ 617125.400000, 199260.900000 ], [ 617206.200000, 199279.400000 ], [ 617267.700000, 199281.900000 ], [ 617353.500000, 199275.100000 ], [ 617427.000000, 199286.600000 ], [ 617473.500000, 199282.700000 ], [ 617561.000000, 199237.000000 ], [ 617662.500000, 199232.000000 ], [ 617781.500000, 199255.000000 ], [ 617854.700000, 199281.700000 ], [ 617903.200000, 199314.200000 ], [ 617967.100000, 199315.800000 ], [ 618039.000000, 199306.200000 ], [ 618105.500000, 199285.200000 ], [ 618140.400000, 199254.000000 ], [ 618159.900000, 199217.600000 ], [ 618184.700000, 199196.700000 ], [ 618264.200000, 199164.700000 ], [ 618321.700000, 199156.200000 ], [ 618393.700000, 199156.400000 ], [ 618480.000000, 199123.700000 ], [ 618557.700000, 199105.000000 ], [ 618737.700000, 199110.400000 ], [ 618782.500000, 199088.700000 ], [ 618821.900000, 199080.700000 ], [ 618910.700000, 199124.700000 ], [ 618979.700000, 199121.000000 ], [ 619143.700000, 199134.600000 ], [ 619234.100000, 199116.800000 ], [ 619275.500000, 199091.300000 ], [ 619354.000000, 199097.000000 ], [ 619464.900000, 199084.700000 ], [ 619568.400000, 199057.600000 ], [ 619617.200000, 199028.500000 ], [ 619610.200000, 199088.200000 ], [ 619617.100000, 199113.900000 ], [ 619654.500000, 199139.000000 ], [ 619703.200000, 199138.200000 ], [ 619750.500000, 199092.500000 ], [ 619782.000000, 199045.700000 ], [ 619782.000000, 199022.200000 ], [ 619763.700000, 198950.000000 ], [ 619773.600000, 198899.300000 ], [ 619833.800000, 198851.400000 ], [ 619847.000000, 198782.500000 ], [ 619855.794000, 198768.047000 ], [ 619876.900000, 198755.200000 ], [ 619930.400000, 198752.800000 ], [ 620021.700000, 198774.300000 ], [ 620070.000000, 198792.500000 ], [ 620160.100000, 198847.000000 ], [ 620218.000000, 198865.800000 ], [ 620267.900000, 198894.900000 ], [ 620339.000000, 198906.600000 ], [ 620323.900000, 198877.400000 ], [ 620261.400000, 198818.500000 ], [ 620243.200000, 198789.000000 ], [ 620239.900000, 198723.400000 ], [ 620180.400000, 198685.800000 ], [ 620145.400000, 198646.100000 ], [ 620146.200000, 198613.600000 ], [ 620163.600000, 198570.500000 ], [ 620162.400000, 198545.500000 ], [ 620181.800000, 198540.600000 ], [ 620187.600000, 198545.700000 ], [ 620175.900000, 198592.700000 ], [ 620187.100000, 198619.700000 ], [ 620275.800000, 198613.800000 ], [ 620320.600000, 198622.800000 ], [ 620330.100000, 198643.400000 ], [ 620341.500000, 198723.400000 ], [ 620350.000000, 198737.300000 ], [ 620385.000000, 198744.500000 ], [ 620428.200000, 198671.900000 ], [ 620460.200000, 198652.200000 ], [ 620500.600000, 198647.700000 ], [ 620516.500000, 198655.700000 ], [ 620537.400000, 198692.900000 ], [ 620549.600000, 198694.400000 ], [ 620602.600000, 198652.800000 ], [ 620658.600000, 198622.700000 ], [ 620688.300000, 198619.100000 ], [ 620705.000000, 198622.900000 ], [ 620717.400000, 198639.300000 ], [ 620727.500000, 198691.600000 ], [ 620723.800000, 198719.700000 ], [ 620737.700000, 198731.500000 ], [ 620753.100000, 198730.900000 ], [ 620774.100000, 198703.200000 ], [ 620924.200000, 198595.300000 ], [ 620962.100000, 198557.000000 ], [ 620965.600000, 198546.700000 ], [ 620960.800000, 198539.300000 ], [ 620951.300000, 198538.500000 ], [ 620920.000000, 198571.800000 ], [ 620847.500000, 198614.300000 ], [ 620829.900000, 198616.700000 ], [ 620826.200000, 198598.400000 ], [ 620846.200000, 198563.000000 ], [ 620845.100000, 198541.300000 ], [ 620788.500000, 198532.300000 ], [ 620738.900000, 198514.700000 ], [ 620718.400000, 198499.700000 ], [ 620716.700000, 198487.200000 ], [ 620724.700000, 198477.800000 ], [ 620803.600000, 198505.700000 ], [ 620833.900000, 198506.000000 ], [ 620955.600000, 198468.200000 ], [ 621089.200000, 198439.800000 ], [ 621148.300000, 198420.000000 ], [ 621197.000000, 198391.500000 ], [ 621246.400000, 198374.800000 ], [ 621404.100000, 198266.700000 ], [ 621559.300000, 198178.200000 ], [ 621591.900000, 198125.400000 ], [ 621641.400000, 198096.700000 ], [ 621701.300000, 198049.100000 ], [ 621779.300000, 197956.500000 ], [ 621806.100000, 197935.800000 ], [ 621891.600000, 197899.700000 ], [ 621921.100000, 197865.200000 ], [ 621933.400000, 197859.000000 ], [ 621993.800000, 197848.300000 ], [ 622015.000000, 197837.700000 ], [ 622060.200000, 197779.100000 ], [ 622125.400000, 197752.400000 ], [ 622260.400000, 197647.000000 ], [ 622286.800000, 197614.700000 ], [ 622470.900000, 197544.700000 ], [ 622537.100000, 197549.700000 ], [ 622557.900000, 197540.700000 ], [ 622594.000000, 197575.100000 ], [ 622709.800000, 197606.600000 ], [ 622754.000000, 197670.300000 ], [ 622749.600000, 197742.600000 ], [ 622760.700000, 197772.500000 ], [ 622845.300000, 197894.700000 ], [ 623155.200000, 197729.400000 ], [ 623176.700000, 197736.400000 ], [ 623254.800000, 197788.700000 ], [ 623327.300000, 197827.600000 ], [ 623392.300000, 197879.500000 ], [ 623493.900000, 197928.800000 ], [ 623645.900000, 198026.600000 ], [ 623694.100000, 198046.600000 ], [ 623807.000000, 198078.400000 ], [ 623974.500000, 198156.700000 ], [ 624032.000000, 198203.300000 ], [ 624080.900000, 198299.400000 ], [ 624176.900000, 198408.400000 ], [ 624275.500000, 198466.400000 ], [ 624411.900000, 198585.800000 ], [ 624454.100000, 198608.400000 ], [ 624642.000000, 198612.100000 ], [ 624814.200000, 198568.200000 ], [ 624914.400000, 198559.600000 ], [ 625012.900000, 198564.700000 ], [ 625127.100000, 198545.500000 ], [ 625175.900000, 198549.100000 ], [ 625274.500000, 198577.800000 ], [ 625318.000000, 198620.100000 ], [ 625411.600000, 198671.900000 ], [ 625508.500000, 198692.400000 ], [ 625535.600000, 198687.500000 ], [ 625569.400000, 198691.600000 ], [ 625623.900000, 198772.000000 ], [ 625706.013000, 198797.598000 ], [ 625791.000000, 198760.400000 ], [ 625843.200000, 198759.900000 ], [ 625915.260000, 198773.330000 ], [ 625919.932000, 198763.695000 ], [ 625934.400000, 198761.200000 ], [ 625941.537000, 198770.703000 ], [ 625940.216000, 198781.326000 ], [ 625951.100000, 198787.400000 ], [ 626198.600000, 198863.400000 ], [ 626235.500000, 198906.100000 ] ] ] } } +{ "type": "Feature", "properties": { "FID": 0.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 666149.5, 211466.2 ], [ 666161.716, 211403.978 ] ], [ [ 666149.5, 211466.2 ], [ 666298.943, 211486.839 ], [ 666307.6, 211418.9 ], [ 666161.716, 211403.978 ] ], [ [ 626235.5, 198906.1 ], [ 626320.4, 198886.3 ], [ 626314.714, 198767.031 ] ], [ [ 626235.5, 198906.1 ], [ 626260.9, 198965.6 ], [ 626324.0, 199057.1 ], [ 626463.4, 199067.2 ], [ 626651.2, 199149.0 ], [ 626690.0, 199155.6 ], [ 626733.2, 199153.6 ], [ 626938.1, 199113.9 ], [ 627019.8, 199108.7 ], [ 627081.0, 199127.4 ], [ 627198.2, 199119.6 ], [ 627225.5, 199127.9 ], [ 627233.2, 199146.4 ], [ 627219.6, 199160.5 ], [ 627108.0, 199212.6 ], [ 627065.5, 199246.8 ], [ 627002.6, 199273.5 ], [ 626965.6, 199301.6 ], [ 626892.4, 199310.6 ], [ 626880.0, 199322.5 ], [ 626884.6, 199343.4 ], [ 626903.4, 199350.8 ], [ 626949.4, 199346.3 ], [ 626979.2, 199358.0 ], [ 627044.6, 199350.3 ], [ 627086.6, 199352.0 ], [ 627182.5, 199367.1 ], [ 627221.1, 199385.5 ], [ 627371.2, 199578.1 ], [ 627406.6, 199617.2 ], [ 627501.4, 199691.8 ], [ 627512.0, 199711.1 ], [ 627566.9, 199988.3 ], [ 627568.3, 200042.3 ], [ 627563.5, 200059.3 ], [ 627534.3, 200101.1 ], [ 627498.4, 200121.1 ], [ 627439.9, 200138.6 ], [ 627422.0, 200155.7 ], [ 627413.9, 200276.8 ], [ 627434.4, 200348.2 ], [ 627431.8, 200416.8 ], [ 627416.5, 200511.4 ], [ 627367.8, 200608.0 ], [ 627319.2, 200658.8 ], [ 627280.9, 200687.3 ], [ 627260.3, 200726.0 ], [ 627259.9, 200742.7 ], [ 627270.1, 200769.0 ], [ 627306.0, 200829.3 ], [ 627384.9, 200901.6 ], [ 627416.1, 201006.1 ], [ 627415.1, 201023.6 ], [ 627403.3, 201035.0 ], [ 627329.4, 201051.9 ], [ 627315.7, 201076.5 ], [ 627325.9, 201144.1 ], [ 627375.1, 201216.9 ], [ 627384.8, 201245.5 ], [ 627370.4, 201378.3 ], [ 627379.2, 201502.1 ], [ 627408.4, 201579.4 ], [ 627447.3, 201655.7 ], [ 627491.3, 201674.1 ], [ 627561.1, 201728.8 ], [ 627662.9, 201754.9 ], [ 627686.5, 201769.1 ], [ 627707.3, 201832.9 ], [ 627711.8, 201872.9 ], [ 627698.3, 201957.0 ], [ 627712.6, 201998.6 ], [ 627780.1, 202055.6 ], [ 627950.9, 202171.8 ], [ 628009.4, 202273.4 ], [ 628025.9, 202289.1 ], [ 628043.6, 202300.0 ], [ 628124.4, 202321.5 ], [ 628146.9, 202335.0 ], [ 628145.4, 202355.5 ], [ 628069.6, 202439.1 ], [ 628062.1, 202455.7 ], [ 628063.3, 202484.9 ], [ 628078.7, 202514.8 ], [ 628146.7, 202598.7 ], [ 628194.9, 202673.6 ], [ 628207.5, 202706.6 ], [ 628199.9, 202812.1 ], [ 628211.7, 202923.2 ], [ 628260.3, 203055.2 ], [ 628289.1, 203087.5 ], [ 628329.5, 203114.7 ], [ 628358.7, 203124.5 ], [ 628421.3, 203126.5 ], [ 628487.7, 203185.7 ], [ 628517.8, 203195.0 ], [ 628565.4, 203197.8 ], [ 628588.6, 203239.6 ], [ 628587.9, 203284.9 ], [ 628605.9, 203326.8 ], [ 628608.3, 203350.5 ], [ 628552.9, 203472.4 ], [ 628550.6, 203526.4 ], [ 628573.1, 203617.6 ], [ 628602.0, 203805.0 ], [ 628636.7, 203896.4 ], [ 628670.5, 203926.5 ], [ 628707.0, 203936.9 ], [ 628825.9, 203950.0 ], [ 628827.1, 203964.8 ], [ 628793.8, 204032.2 ], [ 628771.5, 204112.2 ], [ 628779.3, 204134.1 ], [ 628852.6, 204241.3 ], [ 628834.8, 204305.7 ], [ 628846.4, 204353.7 ], [ 628839.2, 204369.1 ], [ 628782.0, 204412.6 ], [ 628750.3, 204460.0 ], [ 628692.7, 204505.6 ], [ 628674.3, 204537.1 ], [ 628662.9, 204596.1 ], [ 628632.3, 204668.2 ], [ 628605.8, 204843.5 ], [ 628620.8, 204901.4 ], [ 628649.1, 204954.2 ], [ 628623.7, 205048.1 ], [ 628638.6, 205146.2 ], [ 628685.8, 205224.7 ], [ 628713.2, 205251.5 ], [ 628714.1, 205278.0 ], [ 628720.6, 205289.0 ], [ 628759.4, 205284.3 ], [ 628824.0, 205331.8 ], [ 628867.2, 205346.8 ], [ 628908.6, 205337.1 ], [ 628970.4, 205304.6 ], [ 628984.4, 205305.5 ], [ 628983.4, 205348.2 ], [ 628989.2, 205367.8 ], [ 629032.2, 205412.8 ], [ 629041.6, 205434.8 ], [ 629064.3, 205453.6 ], [ 629068.5, 205478.1 ], [ 629100.4, 205539.1 ], [ 629120.0, 205556.4 ], [ 629190.5, 205582.2 ], [ 629199.9, 205594.1 ], [ 629226.7, 205677.2 ], [ 629310.3, 205742.0 ], [ 629377.5, 205756.2 ], [ 629388.7, 205767.5 ], [ 629397.8, 205799.2 ], [ 629460.1, 205782.0 ], [ 629564.8, 205786.4 ], [ 629598.4, 205798.5 ], [ 629644.4, 205847.0 ], [ 629662.9, 205853.3 ], [ 629790.7, 205785.9 ], [ 629834.5, 205778.4 ], [ 629919.6, 205779.8 ], [ 629968.2, 205794.0 ], [ 629984.9, 205805.0 ], [ 629994.9, 205816.8 ], [ 630005.2, 205853.3 ], [ 629976.2, 205971.5 ], [ 629957.4, 206009.8 ], [ 629963.1, 206131.5 ], [ 629972.6, 206144.8 ], [ 630091.6, 206182.0 ], [ 630113.1, 206196.8 ], [ 630127.6, 206216.8 ], [ 630132.4, 206342.5 ], [ 630155.1, 206492.8 ], [ 630111.1, 206535.3 ], [ 630016.1, 206598.3 ], [ 629959.9, 206644.3 ], [ 629955.9, 206653.6 ], [ 629963.2, 206675.9 ], [ 630026.9, 206701.3 ], [ 629933.5, 206900.2 ], [ 629935.9, 206910.0 ], [ 629963.5, 206908.4 ], [ 629971.2, 206914.4 ], [ 629962.4, 206932.1 ], [ 629916.1, 206976.0 ], [ 629872.891, 206992.627 ], [ 629869.3, 207053.7 ], [ 629858.5, 207060.7 ], [ 629840.0, 207055.5 ], [ 629830.8, 207009.7 ], [ 629813.0, 207006.0 ], [ 629782.5, 207011.5 ], [ 629732.5, 206965.7 ], [ 629720.8, 206970.5 ], [ 629758.6, 207057.2 ], [ 629757.4, 207112.2 ], [ 629775.1, 207173.2 ], [ 629793.6, 207206.7 ], [ 629792.1, 207223.5 ], [ 629762.2, 207243.3 ], [ 629763.7, 207277.0 ], [ 629791.2, 207262.6 ], [ 629909.5, 207223.6 ], [ 630126.2, 207127.6 ], [ 630149.0, 207112.3 ], [ 630207.0, 207048.1 ], [ 630240.2, 207030.3 ], [ 630383.1, 207022.1 ], [ 630407.1, 207011.3 ], [ 630462.0, 206957.4 ], [ 630554.5, 206954.8 ], [ 630601.0, 206968.8 ], [ 630629.4, 206997.1 ], [ 630635.9, 207013.0 ], [ 630635.7, 207058.8 ], [ 630701.3, 207284.4 ], [ 630727.8, 207411.2 ], [ 630744.6, 207438.6 ], [ 630776.1, 207470.5 ], [ 630800.5, 207523.5 ], [ 630831.0, 207568.0 ], [ 630904.1, 207611.2 ], [ 630915.6, 207623.8 ], [ 630996.8, 207656.2 ], [ 631046.1, 207672.6 ], [ 631158.1, 207677.0 ], [ 631198.1, 207695.7 ], [ 631238.3, 207729.5 ], [ 631257.6, 207729.2 ], [ 631266.3, 207715.2 ], [ 631261.3, 207693.5 ], [ 631220.6, 207638.5 ], [ 631216.6, 207590.2 ], [ 631177.6, 207578.7 ], [ 631146.1, 207546.2 ], [ 631102.8, 207526.0 ], [ 631069.6, 207500.0 ], [ 631022.8, 207432.7 ], [ 631019.8, 207412.2 ], [ 631033.8, 207404.0 ], [ 631070.1, 207450.0 ], [ 631097.8, 207469.0 ], [ 631199.6, 207502.2 ], [ 631224.1, 207519.2 ], [ 631267.6, 207536.5 ], [ 631285.3, 207561.2 ], [ 631297.8, 207600.5 ], [ 631344.8, 207632.6 ], [ 631345.3, 207677.2 ], [ 631358.1, 207708.2 ], [ 631413.4, 207719.8 ], [ 631419.1, 207742.4 ], [ 631395.1, 207785.5 ], [ 631387.9, 207873.5 ], [ 631373.4, 207890.0 ], [ 631332.1, 207863.0 ], [ 631285.6, 207864.3 ], [ 631254.4, 207881.3 ], [ 631191.6, 207932.5 ], [ 631124.9, 207878.0 ], [ 631045.3, 207900.6 ], [ 631041.1, 207912.4 ], [ 631049.1, 207923.8 ], [ 631062.8, 207929.0 ], [ 631100.7, 207922.6 ], [ 631119.4, 207927.8 ], [ 631160.0, 207984.6 ], [ 631184.0, 207999.3 ], [ 631237.5, 207995.1 ], [ 631288.5, 207974.6 ], [ 631308.7, 207984.3 ], [ 631322.9, 208010.2 ], [ 631346.4, 208029.0 ], [ 631405.8, 208030.0 ], [ 631463.6, 207986.4 ], [ 631590.6, 207864.0 ], [ 631636.4, 207829.3 ], [ 631753.9, 207808.8 ], [ 631812.1, 207822.5 ], [ 631857.4, 207849.8 ], [ 631922.4, 207870.0 ], [ 631947.1, 207883.8 ], [ 631988.1, 207952.3 ], [ 632029.076, 207992.475 ], [ 632064.2, 207974.6 ], [ 632134.6, 207958.8 ], [ 632170.1, 207938.5 ], [ 632209.0, 207905.5 ], [ 632276.1, 207889.3 ], [ 632299.9, 207871.0 ], [ 632326.4, 207822.5 ], [ 632343.9, 207803.8 ], [ 632384.4, 207809.3 ], [ 632460.1, 207772.8 ], [ 632516.6, 207769.5 ], [ 632545.9, 207751.0 ], [ 632588.1, 207689.5 ], [ 632636.1, 207700.0 ], [ 632661.9, 207689.7 ], [ 632722.4, 207638.5 ], [ 632801.9, 207538.2 ], [ 632901.4, 207484.5 ], [ 632916.1, 207474.0 ], [ 632921.9, 207458.7 ], [ 632910.6, 207431.7 ], [ 632859.1, 207363.2 ], [ 632835.4, 207275.0 ], [ 632775.9, 207206.7 ], [ 632736.9, 207122.2 ], [ 632742.4, 207075.9 ], [ 632774.6, 207014.4 ], [ 632746.6, 206898.4 ], [ 632745.4, 206846.7 ], [ 632757.7, 206803.2 ], [ 632802.4, 206765.4 ], [ 632838.4, 206750.7 ], [ 632903.6, 206739.7 ], [ 632950.6, 206723.4 ], [ 633027.4, 206675.7 ], [ 633057.1, 206668.7 ], [ 633136.1, 206670.7 ], [ 633150.4, 206663.9 ], [ 633219.9, 206609.2 ], [ 633237.4, 206553.2 ], [ 633253.9, 206533.9 ], [ 633272.9, 206528.1 ], [ 633326.1, 206541.7 ], [ 633378.6, 206526.6 ], [ 633398.76, 206511.172 ], [ 633433.9, 206433.3 ], [ 633444.68, 206374.66 ], [ 633458.1, 206358.7 ], [ 633550.5, 206324.6 ], [ 633609.5, 206332.1 ], [ 633614.1, 206324.3 ], [ 633604.8, 206317.3 ], [ 633509.83, 206302.682 ], [ 633516.3, 206292.5 ], [ 633580.8, 206286.3 ], [ 633590.8, 206266.5 ], [ 633584.6, 206211.7 ], [ 633622.5, 206046.5 ], [ 633618.0, 206008.5 ], [ 633625.8, 205991.1 ], [ 633663.9, 205960.1 ], [ 633730.3, 205942.4 ], [ 633759.7, 205937.6 ], [ 633869.89, 205951.488 ], [ 634144.789, 206053.932 ], [ 634196.5, 205995.9 ], [ 634260.7, 205975.4 ], [ 634321.3, 205924.4 ], [ 634348.6, 205916.8 ], [ 634392.8, 205920.3 ], [ 634427.8, 205952.3 ], [ 634453.3, 205963.6 ], [ 634510.8, 205973.9 ], [ 634591.6, 205998.6 ], [ 634632.6, 205998.3 ], [ 634710.6, 205984.5 ], [ 634825.3, 205946.1 ], [ 634883.6, 205944.6 ], [ 634930.6, 205963.4 ], [ 634984.1, 206004.4 ], [ 635005.5, 206025.0 ], [ 634994.3, 206037.8 ], [ 635108.8, 206123.0 ], [ 635113.8, 206110.0 ], [ 635134.5, 206149.5 ], [ 635165.0, 206175.8 ], [ 635232.4, 206183.1 ], [ 635272.8, 206174.1 ], [ 635305.1, 206155.2 ], [ 635346.3, 206195.6 ], [ 635390.9, 206216.2 ], [ 635491.4, 206279.5 ], [ 635540.1, 206288.2 ], [ 635605.8, 206266.8 ], [ 635671.6, 206290.6 ], [ 635761.3, 206336.2 ], [ 635835.8, 206356.4 ], [ 635892.8, 206392.7 ], [ 636007.8, 206422.9 ], [ 636095.1, 206468.2 ], [ 636122.3, 206495.9 ], [ 636129.1, 206472.7 ], [ 636155.8, 206486.9 ], [ 636168.1, 206508.7 ], [ 636173.3, 206504.4 ], [ 636178.3, 206492.2 ], [ 636160.0, 206458.8 ], [ 636217.8, 206490.2 ], [ 636229.3, 206515.2 ], [ 636264.8, 206508.9 ], [ 636307.6, 206490.5 ], [ 636336.8, 206498.3 ], [ 636389.6, 206456.8 ], [ 636432.0, 206436.7 ], [ 636457.3, 206453.8 ], [ 636500.2, 206524.4 ], [ 636522.4, 206535.4 ], [ 636546.7, 206524.5 ], [ 636565.4, 206504.1 ], [ 636596.9, 206485.4 ], [ 636630.3, 206491.6 ], [ 636651.2, 206542.4 ], [ 636672.7, 206539.8 ], [ 636726.7, 206553.8 ], [ 636726.3, 206538.5 ], [ 636714.2, 206516.9 ], [ 636706.9, 206415.9 ], [ 636737.5, 206364.6 ], [ 636725.5, 206357.1 ], [ 636655.2, 206360.1 ], [ 636639.3, 206347.6 ], [ 636572.2, 206283.4 ], [ 636541.6, 206209.3 ], [ 636562.3, 206075.3 ], [ 636560.0, 206052.1 ], [ 636539.3, 205964.6 ], [ 636534.1, 205866.2 ], [ 636486.7, 205779.1 ], [ 636470.3, 205730.3 ], [ 636497.1, 205597.4 ], [ 636467.4, 205485.5 ], [ 636465.2, 205402.8 ], [ 636447.2, 205294.0 ], [ 636438.9, 205124.1 ], [ 636429.3, 205093.5 ], [ 636408.1, 205063.6 ], [ 636390.0, 205019.5 ], [ 636373.2, 204930.7 ], [ 636375.8, 204796.1 ], [ 636340.8, 204721.0 ], [ 636336.4, 204691.4 ], [ 636345.4, 204562.0 ], [ 636328.9, 204434.0 ], [ 636307.9, 204375.9 ], [ 636273.8, 204313.4 ], [ 636213.8, 204106.9 ], [ 636176.2, 204047.4 ], [ 636153.0, 203966.0 ], [ 636159.2, 203907.0 ], [ 636198.8, 203771.8 ], [ 636196.8, 203730.6 ], [ 636148.3, 203462.8 ], [ 636204.6, 203316.1 ], [ 636199.9, 203271.5 ], [ 636093.1, 203079.2 ], [ 636082.8, 203006.8 ], [ 636072.4, 202837.8 ], [ 636065.1, 202817.6 ], [ 636045.9, 202793.7 ], [ 635955.5, 202727.3 ], [ 635898.6, 202657.6 ], [ 635869.5, 202579.7 ], [ 635846.9, 202448.2 ], [ 635826.4, 202369.5 ], [ 635791.5, 202296.7 ], [ 635705.7, 202199.3 ], [ 635599.3, 201931.8 ], [ 635568.8, 201785.3 ], [ 635570.8, 201729.6 ], [ 635590.4, 201705.9 ], [ 635648.3, 201659.1 ], [ 635688.9, 201724.5 ], [ 635723.3, 201824.0 ], [ 635760.1, 201894.2 ], [ 635771.8, 201933.5 ], [ 635773.4, 201975.8 ], [ 635781.1, 201987.8 ], [ 635906.3, 202075.3 ], [ 636061.3, 202135.5 ], [ 636138.9, 202157.8 ], [ 636224.8, 202123.3 ], [ 636247.4, 202123.7 ], [ 636334.3, 202165.8 ], [ 636428.6, 202185.6 ], [ 636530.2, 202235.2 ], [ 636605.4, 202254.1 ], [ 636648.1, 202272.4 ], [ 636752.6, 202335.0 ], [ 636852.0, 202435.4 ], [ 636886.4, 202496.8 ], [ 636917.0, 202528.9 ], [ 636960.7, 202556.6 ], [ 637030.6, 202586.8 ], [ 637090.6, 202637.0 ], [ 637157.1, 202673.1 ], [ 637172.6, 202742.6 ], [ 637194.7, 202783.3 ], [ 637293.1, 202833.3 ], [ 637471.4, 202967.1 ], [ 637511.1, 203004.0 ], [ 637534.8, 203038.5 ], [ 637544.1, 203085.2 ], [ 637570.6, 203132.5 ], [ 637685.8, 203249.1 ], [ 637733.5, 203280.2 ], [ 637769.9, 203363.1 ], [ 637825.1, 203399.4 ], [ 637838.3, 203416.0 ], [ 637861.1, 203490.7 ], [ 637907.8, 203583.4 ], [ 637958.7, 203741.498 ], [ 637978.5, 203775.2 ], [ 638013.4, 203814.799 ], [ 638018.4, 203928.5 ], [ 638039.3, 203993.5 ], [ 638041.6, 204062.0 ], [ 638068.7, 204123.9 ], [ 638093.4, 204265.1 ], [ 638129.7, 204334.0 ], [ 638141.7, 204375.2 ], [ 638162.5, 204474.4 ], [ 638164.3, 204554.9 ], [ 638190.0, 204633.7 ], [ 638240.4, 204748.0 ], [ 638245.6, 204777.2 ], [ 638240.4, 204827.0 ], [ 638266.8, 204900.8 ], [ 638292.8, 204938.1 ], [ 638396.2, 205012.6 ], [ 638431.4, 205050.6 ], [ 638471.9, 205061.8 ], [ 638498.7, 205098.9 ], [ 638538.572, 205103.77 ], [ 638579.6, 205140.3 ], [ 638612.2, 205200.3 ], [ 638625.4, 205199.2 ], [ 638599.6, 205128.0 ], [ 638599.7, 205117.7 ], [ 638613.469, 205103.213 ], [ 638606.938, 205080.622 ], [ 638556.7, 205016.0 ], [ 638512.0, 204934.7 ], [ 638518.0, 204908.4 ], [ 638545.2, 204879.9 ], [ 638533.4, 204840.6 ], [ 638532.6, 204798.6 ], [ 638550.5, 204748.9 ], [ 638564.4, 204741.9 ], [ 638570.8, 204758.9 ], [ 638570.4, 204811.5 ], [ 638584.6, 204855.4 ], [ 638608.3, 204876.4 ], [ 638614.2, 204892.0 ], [ 638609.9, 204939.4 ], [ 638624.4, 204943.4 ], [ 638648.9, 204891.0 ], [ 638645.8, 204869.5 ], [ 638631.4, 204844.1 ], [ 638636.7, 204803.4 ], [ 638650.1, 204768.0 ], [ 638686.1, 204733.2 ], [ 638686.4, 204693.4 ], [ 638669.6, 204666.1 ], [ 638609.9, 204627.7 ], [ 638608.4, 204616.9 ], [ 638656.2, 204619.7 ], [ 638719.4, 204675.4 ], [ 638726.8, 204694.2 ], [ 638727.5, 204799.2 ], [ 638739.2, 204881.4 ], [ 638755.2, 204919.0 ], [ 638813.6, 204969.6 ], [ 638842.3, 205024.7 ], [ 638910.8, 205087.7 ], [ 638932.5, 205129.4 ], [ 638950.6, 205190.1 ], [ 639003.5, 205240.7 ], [ 639097.7, 205500.0 ], [ 639098.8, 205565.9 ], [ 639143.7, 205655.2 ], [ 639246.4, 205962.0 ], [ 639248.8, 206000.0 ], [ 639238.5, 206060.0 ], [ 639228.0, 206072.7 ], [ 639158.5, 206111.7 ], [ 639106.9, 206171.6 ], [ 639093.0, 206179.2 ], [ 639093.3, 206202.9 ], [ 639064.5, 206231.0 ], [ 639053.8, 206250.8 ], [ 639025.2, 206343.2 ], [ 639013.2, 206403.3 ], [ 639012.0, 206451.3 ], [ 639016.8, 206503.0 ], [ 639026.8, 206524.0 ], [ 639059.2, 206563.3 ], [ 639172.5, 206668.2 ], [ 639185.4, 206688.5 ], [ 639206.2, 206745.5 ], [ 639208.2, 206785.9 ], [ 639194.3, 206854.6 ], [ 639196.3, 206898.7 ], [ 639189.0, 206928.8 ], [ 639192.7, 206987.1 ], [ 639210.4, 207033.9 ], [ 639304.1, 207129.1 ], [ 639300.3, 207157.6 ], [ 639287.4, 207184.9 ], [ 639225.8, 207179.7 ], [ 639159.1, 207162.0 ], [ 639093.3, 207104.6 ], [ 639072.0, 207104.4 ], [ 639023.7, 207118.1 ], [ 638994.6, 207115.4 ], [ 638989.8, 207122.9 ], [ 639010.7, 207131.3 ], [ 639060.9, 207126.9 ], [ 639086.5, 207133.2 ], [ 639117.5, 207192.5 ], [ 639174.4, 207240.7 ], [ 639231.0, 207259.8 ], [ 639242.2, 207270.6 ], [ 639264.0, 207326.6 ], [ 639278.8, 207331.8 ], [ 639382.0, 207325.7 ], [ 639419.7, 207336.7 ], [ 639428.3, 207360.7 ], [ 639421.2, 207365.5 ], [ 639361.6, 207345.4 ], [ 639334.9, 207348.9 ], [ 639265.3, 207396.0 ], [ 639251.2, 207397.7 ], [ 639232.9, 207385.6 ], [ 639186.6, 207317.9 ], [ 639134.6, 207328.4 ], [ 639136.1, 207340.4 ], [ 639169.6, 207346.4 ], [ 639186.3, 207410.9 ], [ 639229.9, 207465.1 ], [ 639248.6, 207466.6 ], [ 639315.5, 207444.6 ], [ 639333.4, 207467.2 ], [ 639327.8, 207500.0 ], [ 639323.1, 207485.4 ], [ 639311.3, 207475.7 ], [ 639294.3, 207475.7 ], [ 639229.1, 207503.6 ], [ 639217.8, 207502.4 ], [ 639149.8, 207430.0 ], [ 639125.7, 207422.0 ], [ 639085.9, 207506.1 ], [ 639060.2, 207535.7 ], [ 639053.0, 207594.3 ], [ 638942.6, 207492.0 ], [ 638922.5, 207449.9 ], [ 638906.8, 207387.4 ], [ 638840.4, 207249.1 ], [ 638818.5, 207163.9 ], [ 638812.0, 207150.9 ], [ 638801.4, 207148.9 ], [ 638765.0, 207248.6 ], [ 638750.6, 207415.1 ], [ 638738.1, 207447.6 ], [ 638745.6, 207484.6 ], [ 638735.9, 207527.9 ], [ 638737.4, 207576.4 ], [ 638725.5, 207587.2 ], [ 638671.888, 207577.642 ], [ 638662.178, 207590.083 ], [ 638664.454, 207599.794 ], [ 638727.8, 207622.8 ], [ 638748.5, 207640.1 ], [ 638760.8, 207680.6 ], [ 638774.3, 207693.1 ], [ 638804.0, 207700.3 ], [ 638825.5, 207716.3 ], [ 638867.3, 207775.1 ], [ 639081.5, 207977.3 ], [ 639088.5, 207991.4 ], [ 639085.8, 208051.9 ], [ 639093.0, 208064.6 ], [ 639125.8, 208097.6 ], [ 639147.3, 208137.7 ], [ 639219.0, 208178.7 ], [ 639270.3, 208261.1 ], [ 639273.0, 208297.6 ], [ 639253.3, 208340.1 ], [ 639249.3, 208358.1 ], [ 639253.8, 208366.4 ], [ 639266.9, 208383.8 ], [ 639287.4, 208391.8 ], [ 639340.5, 208384.9 ], [ 639366.8, 208392.9 ], [ 639382.3, 208404.9 ], [ 639395.7, 208427.7 ], [ 639419.5, 208495.7 ], [ 639454.5, 208532.5 ], [ 639466.3, 208600.0 ], [ 639498.5, 208694.8 ], [ 639514.8, 208725.8 ], [ 639551.8, 208764.2 ], [ 639666.5, 208806.2 ], [ 639724.1, 208842.5 ], [ 639748.9, 208876.0 ], [ 639773.8, 208943.8 ], [ 639873.8, 209031.5 ], [ 639913.0, 209102.8 ], [ 639973.1, 209111.2 ], [ 640001.4, 209142.1 ], [ 640013.88, 209165.842 ], [ 640088.0, 209205.6 ], [ 640122.9, 209237.7 ], [ 640180.8, 209252.9 ], [ 640244.6, 209242.5 ], [ 640280.1, 209282.3 ], [ 640292.4, 209313.2 ], [ 640298.8, 209355.8 ], [ 640325.7, 209410.2 ], [ 640345.3, 209435.8 ], [ 640462.713, 209510.401 ], [ 640604.0, 209616.1 ], [ 640666.5, 209700.8 ], [ 640755.2, 209775.5 ], [ 640841.9, 209836.7 ], [ 640902.9, 209842.6 ], [ 640940.8, 209826.1 ], [ 640981.7, 209790.1 ], [ 641003.3, 209786.2 ], [ 641020.0, 209798.8 ], [ 641027.6, 209844.2 ], [ 641063.0, 209908.9 ], [ 641125.7, 209983.3 ], [ 641196.3, 210037.6 ], [ 641224.8, 210069.8 ], [ 641238.9, 210076.9 ], [ 641321.1, 210069.2 ], [ 641349.6, 210072.8 ], [ 641438.2, 210100.5 ], [ 641463.318, 210119.11 ], [ 641419.9, 210131.4 ], [ 641381.4, 210108.0 ], [ 641339.6, 210100.8 ], [ 641225.4, 210147.2 ], [ 641176.3, 210155.3 ], [ 641159.5, 210142.7 ], [ 641157.9, 210128.5 ], [ 641144.9, 210119.7 ], [ 641133.8, 210195.2 ], [ 641125.9, 210207.1 ], [ 641064.1, 210270.7 ], [ 641007.8, 210317.3 ], [ 640982.9, 210359.8 ], [ 640932.3, 210380.6 ], [ 640927.2, 210392.5 ], [ 640914.5, 210393.3 ], [ 640913.8, 210440.7 ], [ 640890.2, 210506.7 ], [ 640860.6, 210538.9 ], [ 640815.3, 210554.0 ], [ 640815.7, 210615.3 ], [ 640805.6, 210652.9 ], [ 640807.2, 210686.0 ], [ 640773.4, 210713.7 ], [ 640724.2, 210789.9 ], [ 640719.2, 210815.1 ], [ 640726.3, 210875.6 ], [ 640705.7, 210981.5 ], [ 640660.5, 211039.2 ], [ 640621.3, 211133.0 ], [ 640592.5, 211135.1 ], [ 640556.7, 211157.7 ], [ 640508.2, 211215.8 ], [ 640512.1, 211291.8 ], [ 640506.5, 211344.1 ], [ 640522.7, 211463.0 ], [ 640475.4, 211550.7 ], [ 640481.9, 211612.2 ], [ 640443.4, 211703.2 ], [ 640443.4, 211757.0 ], [ 640456.4, 211807.7 ], [ 640378.5, 211885.3 ], [ 640364.7, 211953.7 ], [ 640366.9, 212025.3 ], [ 640337.9, 212089.3 ], [ 640339.7, 212152.1 ], [ 640374.9, 212315.2 ], [ 640364.9, 212400.9 ], [ 640334.5, 212462.8 ], [ 640328.0, 212524.0 ], [ 640349.2, 212670.7 ], [ 640380.2, 212748.8 ], [ 640380.635, 212788.541 ], [ 640351.1, 212818.0 ], [ 640337.9, 212872.7 ], [ 640324.8, 212888.8 ], [ 640290.2, 212906.9 ], [ 640241.4, 212919.4 ], [ 640229.9, 212933.9 ], [ 640231.7, 212947.1 ], [ 640286.2, 213031.1 ], [ 640286.4, 213041.9 ], [ 640252.9, 213087.4 ], [ 640278.5, 213185.3 ], [ 640276.3, 213220.1 ], [ 640194.7, 213334.7 ], [ 640173.2, 213351.2 ], [ 640042.9, 213336.2 ], [ 639998.6, 213375.2 ], [ 639862.1, 213371.0 ], [ 639830.9, 213384.3 ], [ 639822.5, 213399.0 ], [ 639816.4, 213448.2 ], [ 639780.5, 213507.7 ], [ 639752.7, 213607.4 ], [ 639682.2, 213680.7 ], [ 639661.4, 213735.8 ], [ 639603.9, 213753.9 ], [ 639599.0, 213769.1 ], [ 639604.5, 213822.1 ], [ 639599.1, 213839.4 ], [ 639548.2, 213922.5 ], [ 639517.6, 213933.3 ], [ 639479.2, 213918.1 ], [ 639459.7, 213906.1 ], [ 639399.4, 213839.5 ], [ 639389.4, 213835.7 ], [ 639358.4, 213846.0 ], [ 639306.9, 213897.4 ], [ 639205.9, 214038.7 ], [ 639205.6, 214117.4 ], [ 639191.2, 214175.7 ], [ 639230.2, 214357.5 ], [ 639238.2, 214376.8 ], [ 639320.1, 214477.1 ], [ 639321.6, 214502.3 ], [ 639304.5, 214530.1 ], [ 639182.1, 214665.6 ], [ 639233.3, 214708.2 ], [ 639289.0, 214778.9 ], [ 639316.8, 214836.9 ], [ 639360.8, 214975.9 ], [ 639410.6, 215059.1 ], [ 639431.086, 215047.15 ], [ 639533.1, 215244.4 ], [ 639561.1, 215315.4 ], [ 639580.6, 215338.7 ], [ 639630.5, 215371.0 ], [ 639686.8, 215387.5 ], [ 639782.4, 215402.4 ], [ 639882.8, 215540.5 ], [ 639952.3, 215613.6 ], [ 639973.6, 215667.1 ], [ 639993.3, 215692.6 ], [ 640008.3, 215699.6 ], [ 640045.5, 215702.3 ], [ 640081.9, 215688.7 ], [ 640095.8, 215697.2 ], [ 640095.5, 215755.6 ], [ 640077.5, 215802.6 ], [ 640076.0, 215832.4 ], [ 640093.1, 215874.1 ], [ 640127.6, 215915.0 ], [ 640160.3, 215919.6 ], [ 640203.8, 215913.1 ], [ 640327.3, 215884.6 ], [ 640350.8, 215858.3 ], [ 640369.8, 215785.3 ], [ 640412.4, 215718.5 ], [ 640420.3, 215716.8 ], [ 640433.9, 215730.0 ], [ 640449.1, 215777.2 ], [ 640531.7, 215802.7 ], [ 640644.7, 215884.4 ], [ 640697.8, 215939.6 ], [ 640709.2, 215939.3 ], [ 640712.2, 216005.7 ], [ 640753.5, 216029.0 ], [ 640749.6, 216111.4 ], [ 640849.0, 216331.1 ], [ 640962.3, 216463.8 ], [ 640991.6, 216486.3 ], [ 640985.7, 216514.9 ], [ 640992.4, 216527.7 ], [ 641030.8, 216559.8 ], [ 641092.2, 216670.7 ], [ 641087.3, 216715.8 ], [ 641096.4, 216748.2 ], [ 641096.4, 216776.4 ], [ 641039.7, 216928.2 ], [ 640999.2, 217006.2 ], [ 641000.9, 217046.2 ], [ 641043.9, 217098.7 ], [ 641182.4, 217179.4 ], [ 641292.9, 217261.5 ], [ 641429.7, 217409.5 ], [ 641445.4, 217434.4 ], [ 641482.4, 217526.3 ], [ 641516.7, 217561.1 ], [ 641599.5, 217614.0 ], [ 641662.7, 217645.7 ], [ 641753.2, 217662.9 ], [ 641788.5, 217662.9 ], [ 641820.3, 217653.7 ], [ 641872.6, 217623.8 ], [ 641893.0, 217623.2 ], [ 641995.7, 217696.2 ], [ 641997.8, 217731.2 ], [ 641922.0, 217810.0 ], [ 641928.3, 217836.5 ], [ 641964.8, 217874.4 ], [ 641972.4, 217891.1 ], [ 641989.1, 218083.1 ], [ 641974.5, 218253.5 ], [ 641991.5, 218262.8 ], [ 642076.0, 218215.4 ], [ 642093.4, 218219.2 ], [ 642089.8, 218326.1 ], [ 642110.4, 218555.8 ], [ 642089.2, 218645.6 ], [ 642065.3, 218848.5 ], [ 642080.2, 218990.2 ], [ 642076.06, 219007.678 ], [ 642046.9, 219009.5 ], [ 642036.8, 219027.57 ], [ 642038.232, 219057.195 ], [ 642103.1, 219070.0 ], [ 642328.8, 219226.5 ], [ 642367.6, 219174.7 ], [ 642396.3, 219155.0 ], [ 642470.913, 219055.822 ], [ 642498.1, 219068.1 ], [ 642571.5, 219085.6 ], [ 642649.724, 219125.121 ], [ 642653.799, 219137.818 ], [ 642664.85, 219140.561 ], [ 642676.606, 219131.469 ], [ 642716.251, 219130.021 ], [ 642754.614, 219106.546 ], [ 642798.2, 219103.7 ], [ 642834.4, 219088.7 ], [ 642886.9, 219079.9 ], [ 642931.9, 219042.4 ], [ 643001.9, 219021.2 ], [ 643025.7, 218996.2 ], [ 643073.2, 218968.7 ], [ 643079.4, 218969.9 ], [ 643043.2, 219017.4 ], [ 643033.2, 219049.9 ], [ 643011.9, 219067.4 ], [ 642988.2, 219074.9 ], [ 642979.4, 219107.4 ], [ 643005.7, 219127.4 ], [ 643010.7, 219148.7 ], [ 642984.4, 219163.7 ], [ 642958.2, 219168.7 ], [ 642936.9, 219189.9 ], [ 642926.9, 219211.2 ], [ 642896.9, 219233.7 ], [ 642946.9, 219241.2 ], [ 642976.9, 219228.7 ], [ 643000.7, 219207.4 ], [ 643028.2, 219202.4 ], [ 643084.4, 219207.4 ], [ 643099.4, 219202.4 ], [ 643126.9, 219182.4 ], [ 643147.231, 219146.2 ], [ 643172.2, 219156.9 ], [ 643296.6, 219238.9 ], [ 643333.7, 219254.1 ], [ 643349.0, 219254.4 ], [ 643351.7, 219262.9 ], [ 643367.5, 219262.0 ], [ 643401.6, 219213.0 ], [ 643424.6, 219198.9 ], [ 643570.1, 219159.2 ], [ 643651.9, 219162.0 ], [ 643757.7, 219182.3 ], [ 643778.2, 219178.7 ], [ 643817.9, 219164.8 ], [ 643915.0, 219099.6 ], [ 643987.5, 219073.7 ], [ 644008.5, 219073.5 ], [ 644032.6, 219086.5 ], [ 644078.8, 219133.2 ], [ 644103.4, 219141.6 ], [ 644128.1, 219127.6 ], [ 644156.813, 219095.22 ], [ 644166.3, 219092.625 ], [ 644192.7, 219146.1 ], [ 644210.6, 219201.8 ], [ 644302.1, 219299.6 ], [ 644334.0, 219276.1 ], [ 644404.2, 219264.1 ], [ 644463.7, 219271.8 ], [ 644594.7, 219318.6 ], [ 644683.2, 219307.7 ], [ 644787.4, 219333.9 ], [ 644821.4, 219316.7 ], [ 644880.1, 219302.6 ], [ 644894.4, 219287.5 ], [ 644898.2, 219239.0 ], [ 644933.4, 219197.0 ], [ 644983.9, 219176.7 ], [ 645136.8, 219155.8 ], [ 645187.7, 219139.7 ], [ 645263.0, 219056.0 ], [ 645304.6, 219025.7 ], [ 645372.0, 219009.0 ], [ 645393.9, 218995.0 ], [ 645507.8, 218892.6 ], [ 645573.0, 218852.7 ], [ 645632.0, 218798.5 ], [ 645682.7, 218732.9 ], [ 645817.8, 218617.8 ], [ 645899.9, 218576.3 ], [ 645975.5, 218559.0 ], [ 645970.7, 218477.7 ], [ 645979.1, 218445.3 ], [ 646016.8, 218370.9 ], [ 646016.7, 218310.0 ], [ 646033.2, 218316.8 ], [ 646216.5, 218295.1 ], [ 646262.05, 218295.773 ], [ 646376.435, 218306.251 ], [ 646687.9, 218368.5 ], [ 646680.7, 218336.1 ], [ 646683.5, 218292.3 ], [ 646709.3, 218206.2 ], [ 646777.8, 218072.6 ], [ 646888.4, 217921.2 ], [ 647103.8, 217824.4 ], [ 647144.9, 217784.0 ], [ 647200.7, 217752.5 ], [ 647223.6, 217721.7 ], [ 647256.8, 217644.1 ], [ 647272.2, 217628.2 ], [ 647332.3, 217591.3 ], [ 647423.3, 217515.6 ], [ 647545.3, 217488.1 ], [ 647668.3, 217428.2 ], [ 647696.9, 217379.9 ], [ 647726.4, 217351.3 ], [ 647754.3, 217336.6 ], [ 647779.0, 217332.3 ], [ 647809.3, 217301.1 ], [ 647831.9, 217291.0 ], [ 647846.6, 217272.7 ], [ 647908.1, 217239.2 ], [ 648074.9, 217083.9 ], [ 648150.7, 216977.6 ], [ 648153.591, 216940.454 ], [ 648392.0, 216831.2 ], [ 648423.0, 216830.7 ], [ 648466.0, 216841.2 ], [ 648510.8, 216830.4 ], [ 648577.0, 216838.2 ], [ 648598.8, 216855.0 ], [ 648659.5, 216848.7 ], [ 648714.4, 216864.8 ], [ 648766.8, 216860.7 ], [ 648835.0, 216827.6 ], [ 648902.5, 216826.3 ], [ 648962.5, 216787.1 ], [ 649036.8, 216753.4 ], [ 649101.0, 216704.5 ], [ 649137.9, 216697.6 ], [ 649156.8, 216719.2 ], [ 649229.5, 216772.7 ], [ 649239.0, 216787.2 ], [ 649251.8, 216838.2 ], [ 649313.8, 216898.9 ], [ 649288.703, 216975.922 ], [ 649337.6, 216979.2 ], [ 649384.6, 217000.1 ], [ 649439.6, 217013.9 ], [ 649488.7, 217014.2 ], [ 649475.826, 217109.288 ], [ 649502.3, 217109.9 ], [ 649651.9, 217145.5 ], [ 649681.4, 217162.8 ], [ 649709.7, 217134.8 ], [ 649758.8, 217127.5 ], [ 649767.7, 217116.6 ], [ 649904.5, 217058.4 ], [ 650262.1, 216983.2 ], [ 650260.2, 216968.9 ], [ 650251.8, 216961.3 ], [ 650382.6, 216962.2 ], [ 650786.1, 217209.0 ], [ 650901.3, 217247.2 ], [ 650935.1, 217282.4 ], [ 650977.3, 217309.4 ], [ 651055.3, 217424.5 ], [ 651085.3, 217446.0 ], [ 651121.3, 217497.9 ], [ 651121.9, 217508.8 ], [ 651165.6, 217590.1 ], [ 651156.8, 217633.3 ], [ 651160.1, 217640.3 ], [ 651208.1, 217659.8 ], [ 651230.1, 217684.7 ], [ 651229.6, 217718.7 ], [ 651213.2, 217773.7 ], [ 651280.2, 217772.9 ], [ 651321.7, 217744.6 ], [ 651362.9, 217701.9 ], [ 651459.2, 217622.6 ], [ 651497.3, 217606.2 ], [ 651534.1, 217602.7 ], [ 651628.7, 217619.8 ], [ 651806.2, 217606.0 ], [ 651821.5, 217618.2 ], [ 651838.0, 217620.2 ], [ 652104.5, 217606.6 ], [ 652459.4, 217621.3 ], [ 652753.0, 217616.7 ], [ 652845.0, 217649.2 ], [ 652888.7, 217689.7 ], [ 653005.0, 217772.0 ], [ 653021.0, 217775.0 ], [ 653178.2, 217753.3 ], [ 653191.2, 217766.7 ], [ 653189.0, 217898.0 ], [ 653200.6, 218015.6 ], [ 653193.291, 218035.678 ], [ 653208.9, 218051.1 ], [ 653248.4, 218116.4 ], [ 653298.3, 218264.8 ], [ 653328.2, 218297.2 ], [ 653402.077, 218350.515 ], [ 653450.6, 218338.2 ], [ 653635.2, 218258.3 ], [ 653657.7, 218245.4 ], [ 653704.0, 218200.926 ], [ 653735.8, 218161.9 ], [ 653740.9, 218139.8 ], [ 653735.5, 218119.9 ], [ 653691.5, 218068.2 ], [ 653695.4, 218041.5 ], [ 653781.3, 217964.0 ], [ 653841.1, 217921.0 ], [ 653920.255, 217836.206 ], [ 653945.8, 217855.2 ], [ 653942.2, 217873.2 ], [ 653947.5, 217875.5 ], [ 653984.4, 217858.8 ], [ 654006.11, 217817.882 ], [ 654065.6, 217875.5 ], [ 654080.7, 217882.8 ], [ 654145.1, 217879.7 ], [ 654413.5, 217706.0 ], [ 654445.8, 217676.5 ], [ 654461.2, 217622.3 ], [ 654470.4, 217530.8 ], [ 654480.7, 217490.0 ], [ 654503.1, 217461.6 ], [ 654539.2, 217430.9 ], [ 654572.2, 217339.3 ], [ 654655.6, 217224.2 ], [ 654751.0, 217108.5 ], [ 654769.853, 217057.292 ], [ 654813.6, 217000.4 ], [ 654827.4, 216922.4 ], [ 654855.2, 216880.7 ], [ 654843.5, 216788.7 ], [ 654860.7, 216713.4 ], [ 654954.8, 216574.0 ], [ 655052.8, 216408.6 ], [ 655188.1, 216237.2 ], [ 655202.8, 216210.9 ], [ 655239.1, 216088.3 ], [ 655290.9, 216069.4 ], [ 655587.1, 216067.2 ], [ 655634.0, 216041.0 ], [ 655769.0, 215925.2 ], [ 655889.0, 215789.7 ], [ 655920.3, 215789.4 ], [ 655969.7, 215537.8 ], [ 655972.3, 215351.9 ], [ 655983.3, 215315.4 ], [ 656084.3, 215134.6 ], [ 656094.8, 215128.2 ], [ 656136.2, 215124.0 ], [ 656178.0, 215107.5 ], [ 656242.0, 215077.9 ], [ 656253.3, 215066.5 ], [ 656383.8, 214563.3 ], [ 656397.8, 214536.8 ], [ 656546.9, 214457.0 ], [ 656569.8, 214430.8 ], [ 656601.6, 214449.8 ], [ 656638.3, 214510.3 ], [ 656680.0, 214545.3 ], [ 656700.0, 214552.8 ], [ 656735.5, 214553.5 ], [ 656787.0, 214546.8 ], [ 656811.0, 214533.0 ], [ 656823.8, 214492.5 ], [ 656827.2, 214110.0 ], [ 656801.3, 214062.0 ], [ 656626.2, 213836.0 ], [ 656616.2, 213781.7 ], [ 656630.3, 213759.8 ], [ 656779.2, 213736.7 ], [ 656797.7, 213724.4 ], [ 656843.8, 213661.8 ], [ 657047.769, 213578.885 ], [ 657144.2, 213546.2 ], [ 657169.9, 213549.4 ], [ 657261.4, 213609.7 ], [ 657316.7, 213638.5 ], [ 657402.662, 213649.431 ], [ 657478.7, 213623.5 ], [ 657547.907, 213542.646 ], [ 657628.4, 213558.2 ], [ 657731.0, 213555.0 ], [ 657862.9, 213583.1 ], [ 657901.1, 213596.3 ], [ 657988.1, 213644.7 ], [ 658024.1, 213645.3 ], [ 658099.7, 213628.3 ], [ 658181.3, 213641.8 ], [ 658374.957, 213659.669 ], [ 658552.698, 213640.687 ], [ 658612.2, 213650.6 ], [ 658660.3, 213648.5 ], [ 658735.6, 213612.8 ], [ 658810.3, 213613.8 ], [ 658930.4, 213583.8 ], [ 658999.216, 213580.208 ], [ 659066.0, 213543.2 ], [ 659118.2, 213505.7 ], [ 659149.4, 213491.8 ], [ 659237.28, 213472.762 ], [ 659256.7, 213455.6 ], [ 659256.5, 213434.0 ], [ 659112.754, 213256.208 ], [ 659140.0, 213238.4 ], [ 659219.7, 213212.4 ], [ 659272.5, 213187.8 ], [ 659314.6, 213157.0 ], [ 659444.2, 212944.5 ], [ 659499.4, 212867.3 ], [ 659771.3, 213010.2 ], [ 659888.3, 213091.2 ], [ 659907.3, 213118.5 ], [ 659954.0, 213231.0 ], [ 659977.5, 213265.8 ], [ 660043.6, 213328.1 ], [ 660058.5, 213317.5 ], [ 660097.8, 213314.3 ], [ 660179.0, 213342.5 ], [ 660254.5, 213322.3 ], [ 660342.7, 213287.3 ], [ 660458.3, 213125.7 ], [ 660648.7, 212995.4 ], [ 660682.1, 212940.7 ], [ 660741.5, 212800.2 ], [ 660905.4, 212554.7 ], [ 661029.951, 212350.8 ], [ 661320.2, 212582.9 ], [ 661496.8, 212779.5 ], [ 661618.0, 212837.2 ], [ 661625.5, 212850.0 ], [ 661624.5, 212949.5 ], [ 661650.8, 213020.0 ], [ 661655.8, 213057.2 ], [ 661650.5, 213106.7 ], [ 661655.3, 213130.0 ], [ 661736.8, 213299.3 ], [ 661751.3, 213324.5 ], [ 661818.3, 213379.8 ], [ 661837.5, 213404.3 ], [ 661961.057, 213593.282 ], [ 662108.5, 213745.3 ], [ 662508.7, 213957.9 ], [ 662568.3, 214008.1 ], [ 662580.3, 213999.1 ], [ 662626.2, 213998.1 ], [ 662692.6, 213959.7 ], [ 662750.0, 213973.1 ], [ 662794.5, 213997.6 ], [ 662812.0, 214039.6 ], [ 663140.2, 214317.9 ], [ 663168.5, 214322.4 ], [ 663232.2, 214296.9 ], [ 663331.5, 214275.0 ], [ 663408.2, 214242.6 ], [ 663421.3, 214245.1 ], [ 663474.5, 214280.1 ], [ 663489.5, 214282.0 ], [ 663503.5, 214272.9 ], [ 663560.839, 214356.497 ], [ 663571.919, 214353.96 ], [ 663584.688, 214360.613 ], [ 663587.594, 214375.543 ], [ 663617.4, 214420.2 ], [ 663632.8, 214480.7 ], [ 663635.2, 214550.5 ], [ 663699.7, 214543.0 ], [ 663736.4, 214530.0 ], [ 663720.0, 214506.6 ], [ 663700.0, 214454.1 ], [ 663684.0, 214371.1 ], [ 663681.4, 214312.6 ], [ 663699.4, 214089.1 ], [ 663717.547, 214045.941 ], [ 663813.8, 213951.9 ], [ 663831.1, 213944.9 ], [ 663885.6, 213900.1 ], [ 664115.0, 213673.1 ], [ 664168.712, 213633.107 ], [ 664213.597, 213586.591 ], [ 664235.2, 213498.7 ], [ 664275.2, 213385.5 ], [ 664426.232, 213288.64 ], [ 664439.0, 213290.5 ], [ 664416.6, 213272.6 ], [ 664329.226, 213261.982 ], [ 664320.228, 213255.665 ], [ 664302.066, 213272.799 ], [ 664292.732, 213271.399 ], [ 664288.8, 213190.1 ], [ 664262.53, 213158.596 ], [ 664258.2, 213131.1 ], [ 664253.2, 213008.9 ], [ 664273.742, 212905.222 ], [ 664359.6, 212731.8 ], [ 664394.8, 212619.4 ], [ 664410.9, 212389.8 ], [ 664418.441, 212354.86 ], [ 664429.972, 212347.788 ], [ 664438.825, 212221.4 ], [ 664446.9, 212184.4 ], [ 664442.645, 212138.462 ], [ 664459.7, 212107.4 ], [ 664461.1, 212077.2 ], [ 664480.7, 212037.7 ], [ 664530.9, 211975.2 ], [ 664580.8, 211928.4 ], [ 664630.0, 211902.3 ], [ 664716.9, 211875.5 ], [ 664816.109, 211862.235 ], [ 664827.6, 211876.7 ], [ 664833.257, 211899.39 ], [ 664845.089, 212020.614 ], [ 665063.6, 211939.9 ], [ 665237.3, 211898.0 ], [ 665409.5, 211801.2 ], [ 665375.8, 211743.9 ], [ 665411.503, 211707.774 ], [ 665612.6, 211598.8 ], [ 665643.838, 211594.064 ], [ 665649.468, 211580.231 ], [ 665660.487, 211572.579 ], [ 665735.61, 211581.428 ], [ 665743.875, 211565.437 ], [ 665738.4, 211532.0 ], [ 665742.4, 211412.2 ], [ 665736.022, 211400.502 ], [ 665822.2, 211441.0 ], [ 665849.0, 211445.3 ], [ 666146.691, 211481.466 ], [ 666149.5, 211466.2 ] ], [ [ 601918.2, 200909.6 ], [ 601965.8, 200878.5 ], [ 602018.8, 200827.5 ], [ 602206.673, 200597.034 ], [ 602218.925, 200595.917 ], [ 602416.8, 200791.8 ], [ 602661.9, 201010.2 ], [ 602944.1, 201277.7 ], [ 602930.2, 201301.7 ], [ 602897.2, 201309.9 ], [ 602888.7, 201337.6 ], [ 602791.2, 201437.9 ], [ 602766.0, 201476.4 ], [ 602791.7, 201532.4 ], [ 602872.0, 201780.6 ], [ 602867.2, 201804.2 ], [ 602758.2, 201840.0 ], [ 602689.7, 201845.0 ], [ 602652.7, 201854.6 ], [ 602570.2, 201894.6 ], [ 602527.0, 201940.6 ], [ 602480.6, 201958.6 ], [ 602465.013, 201954.927 ], [ 602480.4, 201990.6 ], [ 602502.1, 202085.8 ], [ 602529.0, 202254.4 ], [ 602589.201, 202369.685 ], [ 602509.4, 202399.4 ], [ 602498.2, 202428.6 ], [ 602424.8, 202455.7 ], [ 602403.57, 202486.875 ], [ 602147.981, 203154.932 ], [ 602212.356, 203175.815 ], [ 602287.4, 203179.7 ], [ 602459.9, 203213.4 ], [ 602552.045, 203214.4 ], [ 602561.102, 203219.412 ], [ 602778.6, 203218.5 ], [ 602898.6, 203202.7 ], [ 603136.762, 203150.388 ], [ 603157.0, 203161.3 ], [ 603146.4, 203273.2 ], [ 603314.0, 203197.5 ], [ 603403.2, 203146.0 ], [ 603420.0, 203145.7 ], [ 603426.7, 203153.2 ], [ 603441.1, 203192.3 ], [ 603498.0, 203134.3 ], [ 603527.5, 203120.3 ], [ 603600.0, 203096.6 ], [ 603760.2, 203059.6 ], [ 603820.5, 203025.2 ], [ 603923.2, 202932.2 ], [ 603997.7, 202888.2 ], [ 604157.7, 202806.2 ], [ 604201.7, 202793.2 ], [ 604286.7, 202784.7 ], [ 604409.3, 202726.0 ], [ 604338.1, 202670.0 ], [ 604331.1, 202661.1 ], [ 604334.3, 202633.7 ], [ 604387.7, 202627.5 ], [ 604436.2, 202652.3 ], [ 604467.4, 202683.0 ], [ 604550.1, 202667.9 ], [ 604641.1, 202687.5 ], [ 604673.1, 202682.5 ], [ 604700.6, 202670.0 ], [ 604787.4, 202592.0 ], [ 604813.3, 202594.3 ], [ 604885.0, 202472.2 ], [ 604925.0, 202353.1 ], [ 604944.7, 202314.3 ], [ 605012.9, 202237.3 ], [ 605139.5, 202141.2 ], [ 605206.1, 202031.9 ], [ 605242.7, 201931.4 ], [ 605269.7, 201894.5 ], [ 605366.1, 201790.6 ], [ 605455.5, 201669.4 ], [ 605551.5, 201573.4 ], [ 605622.5, 201514.1 ], [ 605665.6, 201506.6 ], [ 605681.6, 201487.0 ], [ 605730.1, 201330.2 ], [ 605745.9, 201295.5 ], [ 605796.1, 201220.5 ], [ 605816.7, 201162.0 ], [ 605827.8, 201147.7 ], [ 606044.4, 201012.2 ], [ 606076.4, 200985.7 ], [ 606084.4, 200951.5 ], [ 606082.6, 200860.9 ], [ 606180.5, 200882.2 ], [ 606280.2, 200861.9 ], [ 606443.2, 200860.7 ], [ 606506.6, 200837.4 ], [ 606482.5, 200804.4 ], [ 606475.5, 200769.6 ], [ 606477.1, 200449.5 ], [ 606566.9, 200401.7 ], [ 606622.2, 200348.6 ], [ 606723.4, 200296.0 ], [ 606725.2, 200289.2 ], [ 606870.6, 200239.8 ], [ 607194.6, 199963.5 ], [ 607367.9, 199780.9 ], [ 607409.3, 199749.3 ], [ 607505.0, 199699.2 ], [ 607536.1, 199783.0 ], [ 607723.9, 199896.5 ], [ 607792.5, 199863.1 ], [ 607907.7, 199908.2 ], [ 608033.5, 199971.9 ], [ 608065.5, 200038.1 ], [ 608076.8, 200087.1 ], [ 608078.0, 200155.6 ], [ 608062.1, 200223.5 ], [ 608126.5, 200287.2 ], [ 608221.2, 200346.9 ], [ 608250.0, 200352.9 ], [ 608339.7, 200348.2 ], [ 608379.247, 200357.572 ], [ 608454.0, 200506.7 ], [ 608501.2, 200531.2 ], [ 608624.4, 200517.3 ], [ 608645.0, 200511.8 ], [ 608668.2, 200468.2 ], [ 608682.5, 200459.2 ], [ 608710.5, 200454.0 ], [ 608718.0, 200459.7 ], [ 608718.2, 200470.7 ], [ 608699.0, 200507.0 ], [ 608699.9, 200536.7 ], [ 608718.1, 200593.8 ], [ 608838.7, 200726.6 ], [ 608905.1, 200816.0 ], [ 608946.8, 200837.5 ], [ 608974.5, 200839.5 ], [ 609063.7, 200796.2 ], [ 609194.8, 200762.6 ], [ 609288.4, 200774.5 ], [ 609373.2, 200760.2 ], [ 609506.5, 200792.0 ], [ 609540.3, 200805.5 ], [ 609526.0, 200883.0 ], [ 609526.2, 200938.2 ], [ 609568.5, 201056.5 ], [ 609585.2, 201079.7 ], [ 609594.4, 201084.7 ], [ 609638.2, 201079.0 ], [ 609753.0, 201122.4 ], [ 609812.5, 201156.7 ], [ 609849.7, 201170.5 ], [ 609913.0, 201212.7 ], [ 609930.5, 201215.2 ], [ 609994.2, 201165.2 ], [ 610003.5, 201141.5 ], [ 609996.0, 201099.0 ], [ 609961.2, 201048.2 ], [ 609965.7, 201015.2 ], [ 610017.2, 200956.5 ], [ 610092.9, 200815.4 ], [ 610205.5, 200801.0 ], [ 610304.2, 200769.7 ], [ 610478.3, 200663.7 ], [ 610493.4, 200648.5 ], [ 610506.0, 200606.3 ], [ 610509.2, 200517.6 ], [ 610496.1, 200453.2 ], [ 610476.1, 200397.3 ], [ 610476.3, 200354.1 ], [ 610489.9, 200290.2 ], [ 610484.2, 200200.2 ], [ 610490.0, 200177.2 ], [ 610552.5, 200115.4 ], [ 610652.8, 200035.8 ], [ 610732.7, 199988.7 ], [ 610796.7, 199964.0 ], [ 610997.7, 199907.0 ], [ 611199.7, 199882.1 ], [ 611211.7, 199931.5 ], [ 611208.2, 199971.7 ], [ 611215.5, 200019.7 ], [ 611256.2, 200120.7 ], [ 611218.2, 200239.2 ], [ 611203.8, 200268.0 ], [ 611169.2, 200298.5 ], [ 611155.0, 200350.9 ], [ 611159.2, 200396.6 ], [ 611180.7, 200440.4 ], [ 611228.3, 200496.3 ], [ 611283.9, 200587.3 ], [ 611344.5, 200638.8 ], [ 611382.7, 200693.1 ], [ 611389.0, 200708.6 ], [ 611387.2, 200868.6 ], [ 611396.3, 200963.5 ], [ 611451.6, 200958.0 ], [ 611587.6, 200924.0 ], [ 611768.1, 200932.5 ], [ 611883.2, 200915.7 ], [ 611915.2, 200898.2 ], [ 612031.9, 200781.2 ], [ 612166.3, 200689.8 ], [ 612172.2, 200700.2 ], [ 612192.0, 200711.7 ], [ 612226.7, 200699.0 ], [ 612311.1, 200604.7 ], [ 612378.5, 200552.9 ], [ 612404.1, 200550.3 ], [ 612421.6, 200559.6 ], [ 612465.5, 200601.2 ], [ 612500.5, 200652.0 ], [ 612495.5, 200600.0 ], [ 612453.8, 200479.6 ], [ 612438.2, 200376.2 ], [ 612436.4, 200332.5 ], [ 612455.2, 200287.0 ], [ 612551.3, 200283.0 ], [ 612625.0, 200272.2 ], [ 612891.4, 200351.2 ], [ 612905.9, 200352.5 ], [ 612926.9, 200344.2 ], [ 612942.1, 200322.5 ], [ 612947.2, 200301.8 ], [ 612912.0, 200175.2 ], [ 612885.9, 200120.6 ], [ 612795.4, 200008.2 ], [ 612767.5, 199958.1 ], [ 612773.1, 199925.9 ], [ 612828.6, 199869.7 ], [ 612841.9, 199838.7 ], [ 612835.6, 199777.7 ], [ 612810.9, 199719.2 ], [ 612761.4, 199620.0 ], [ 612716.4, 199562.5 ], [ 612624.9, 199504.7 ], [ 612554.2, 199477.5 ], [ 612493.5, 199443.9 ], [ 612422.5, 199431.0 ], [ 612396.9, 199385.3 ], [ 612330.4, 199343.0 ], [ 612306.1, 199254.5 ], [ 612327.6, 199195.7 ], [ 612343.4, 199172.0 ], [ 612470.7, 199149.7 ], [ 612637.9, 199137.6 ], [ 612991.0, 199318.8 ], [ 613038.8, 199325.3 ], [ 613206.9, 199498.3 ], [ 613275.5, 199590.7 ], [ 613381.1, 199633.6 ], [ 613560.7, 199773.0 ], [ 613610.7, 199782.0 ], [ 613647.5, 199767.7 ], [ 613791.9, 199679.6 ], [ 613758.1, 199656.9 ], [ 613732.4, 199597.9 ], [ 613732.2, 199568.2 ], [ 613698.6, 199450.9 ], [ 613697.1, 199412.1 ], [ 613711.5, 199394.9 ], [ 613724.0, 199422.4 ], [ 613768.5, 199481.6 ], [ 613809.3, 199475.2 ], [ 613880.9, 199500.9 ], [ 613900.8, 199501.4 ], [ 613946.9, 199473.1 ], [ 613991.4, 199480.9 ], [ 614021.4, 199478.1 ], [ 614076.8, 199424.6 ], [ 614157.3, 199445.5 ], [ 614171.3, 199466.2 ], [ 614151.2, 199526.4 ], [ 614159.4, 199547.6 ], [ 614181.1, 199565.9 ], [ 614188.6, 199561.6 ], [ 614190.4, 199524.1 ], [ 614244.9, 199448.1 ], [ 614289.1, 199432.4 ], [ 614302.6, 199419.6 ], [ 614298.1, 199396.4 ], [ 614265.6, 199356.6 ], [ 614265.9, 199313.1 ], [ 614280.2, 199298.0 ], [ 614306.8, 199302.7 ], [ 614337.6, 199344.3 ], [ 614428.9, 199379.6 ], [ 614446.6, 199378.6 ], [ 614486.4, 199354.558 ], [ 614482.5, 199329.1 ], [ 614435.6, 199239.1 ], [ 614331.9, 199059.5 ], [ 614324.7, 199025.1 ], [ 614335.5, 198902.0 ], [ 614375.7, 198805.6 ], [ 614446.9, 198726.9 ], [ 614451.9, 198757.1 ], [ 614467.9, 198767.4 ], [ 614558.3, 198751.6 ], [ 614587.6, 198757.6 ], [ 614810.9, 198906.4 ], [ 614873.6, 198962.6 ], [ 614901.1, 199002.6 ], [ 615180.9, 199130.5 ], [ 615256.9, 199198.9 ], [ 615380.3, 199285.2 ], [ 615390.1, 199299.4 ], [ 615392.6, 199331.1 ], [ 615361.9, 199422.4 ], [ 615363.4, 199468.4 ], [ 615386.4, 199543.6 ], [ 615401.7, 199629.3 ], [ 615442.4, 199735.2 ], [ 615461.9, 199810.0 ], [ 615495.9, 199875.4 ], [ 615581.4, 199848.1 ], [ 615657.9, 199761.0 ], [ 615734.7, 199743.6 ], [ 615890.2, 199671.6 ], [ 615901.415, 199672.902 ], [ 615922.0, 199645.0 ], [ 615939.5, 199588.2 ], [ 615953.1, 199579.8 ], [ 615973.2, 199622.1 ], [ 615989.7, 199631.9 ], [ 616115.805, 199634.717 ], [ 616153.6, 199611.0 ], [ 616256.0, 199575.5 ], [ 616402.6, 199468.8 ], [ 616424.3, 199463.2 ], [ 616538.0, 199461.3 ], [ 616674.3, 199423.8 ], [ 616769.0, 199388.1 ], [ 616887.8, 199292.1 ], [ 616999.2, 199253.4 ], [ 617125.4, 199260.9 ], [ 617206.2, 199279.4 ], [ 617267.7, 199281.9 ], [ 617353.5, 199275.1 ], [ 617427.0, 199286.6 ], [ 617473.5, 199282.7 ], [ 617561.0, 199237.0 ], [ 617662.5, 199232.0 ], [ 617781.5, 199255.0 ], [ 617854.7, 199281.7 ], [ 617903.2, 199314.2 ], [ 617967.1, 199315.8 ], [ 618039.0, 199306.2 ], [ 618105.5, 199285.2 ], [ 618140.4, 199254.0 ], [ 618159.9, 199217.6 ], [ 618184.7, 199196.7 ], [ 618264.2, 199164.7 ], [ 618321.7, 199156.2 ], [ 618393.7, 199156.4 ], [ 618480.0, 199123.7 ], [ 618557.7, 199105.0 ], [ 618737.7, 199110.4 ], [ 618782.5, 199088.7 ], [ 618821.9, 199080.7 ], [ 618910.7, 199124.7 ], [ 618979.7, 199121.0 ], [ 619143.7, 199134.6 ], [ 619234.1, 199116.8 ], [ 619275.5, 199091.3 ], [ 619354.0, 199097.0 ], [ 619464.9, 199084.7 ], [ 619568.4, 199057.6 ], [ 619617.2, 199028.5 ], [ 619610.2, 199088.2 ], [ 619617.1, 199113.9 ], [ 619654.5, 199139.0 ], [ 619703.2, 199138.2 ], [ 619750.5, 199092.5 ], [ 619782.0, 199045.7 ], [ 619782.0, 199022.2 ], [ 619763.7, 198950.0 ], [ 619773.6, 198899.3 ], [ 619833.8, 198851.4 ], [ 619847.0, 198782.5 ], [ 619855.794, 198768.047 ], [ 619876.9, 198755.2 ], [ 619930.4, 198752.8 ], [ 620021.7, 198774.3 ], [ 620070.0, 198792.5 ], [ 620160.1, 198847.0 ], [ 620218.0, 198865.8 ], [ 620267.9, 198894.9 ], [ 620339.0, 198906.6 ], [ 620323.9, 198877.4 ], [ 620261.4, 198818.5 ], [ 620243.2, 198789.0 ], [ 620239.9, 198723.4 ], [ 620180.4, 198685.8 ], [ 620145.4, 198646.1 ], [ 620146.2, 198613.6 ], [ 620163.6, 198570.5 ], [ 620162.4, 198545.5 ], [ 620181.8, 198540.6 ], [ 620187.6, 198545.7 ], [ 620175.9, 198592.7 ], [ 620187.1, 198619.7 ], [ 620275.8, 198613.8 ], [ 620320.6, 198622.8 ], [ 620330.1, 198643.4 ], [ 620341.5, 198723.4 ], [ 620350.0, 198737.3 ], [ 620385.0, 198744.5 ], [ 620428.2, 198671.9 ], [ 620460.2, 198652.2 ], [ 620500.6, 198647.7 ], [ 620516.5, 198655.7 ], [ 620537.4, 198692.9 ], [ 620549.6, 198694.4 ], [ 620602.6, 198652.8 ], [ 620658.6, 198622.7 ], [ 620688.3, 198619.1 ], [ 620705.0, 198622.9 ], [ 620717.4, 198639.3 ], [ 620727.5, 198691.6 ], [ 620723.8, 198719.7 ], [ 620737.7, 198731.5 ], [ 620753.1, 198730.9 ], [ 620774.1, 198703.2 ], [ 620924.2, 198595.3 ], [ 620962.1, 198557.0 ], [ 620965.6, 198546.7 ], [ 620960.8, 198539.3 ], [ 620951.3, 198538.5 ], [ 620920.0, 198571.8 ], [ 620847.5, 198614.3 ], [ 620829.9, 198616.7 ], [ 620826.2, 198598.4 ], [ 620846.2, 198563.0 ], [ 620845.1, 198541.3 ], [ 620788.5, 198532.3 ], [ 620738.9, 198514.7 ], [ 620718.4, 198499.7 ], [ 620716.7, 198487.2 ], [ 620724.7, 198477.8 ], [ 620803.6, 198505.7 ], [ 620833.9, 198506.0 ], [ 620955.6, 198468.2 ], [ 621089.2, 198439.8 ], [ 621148.3, 198420.0 ], [ 621197.0, 198391.5 ], [ 621246.4, 198374.8 ], [ 621404.1, 198266.7 ], [ 621559.3, 198178.2 ], [ 621591.9, 198125.4 ], [ 621641.4, 198096.7 ], [ 621701.3, 198049.1 ], [ 621779.3, 197956.5 ], [ 621806.1, 197935.8 ], [ 621891.6, 197899.7 ], [ 621921.1, 197865.2 ], [ 621933.4, 197859.0 ], [ 621993.8, 197848.3 ], [ 622015.0, 197837.7 ], [ 622060.2, 197779.1 ], [ 622125.4, 197752.4 ], [ 622260.4, 197647.0 ], [ 622286.8, 197614.7 ], [ 622470.9, 197544.7 ], [ 622537.1, 197549.7 ], [ 622557.9, 197540.7 ], [ 622594.0, 197575.1 ], [ 622709.8, 197606.6 ], [ 622754.0, 197670.3 ], [ 622749.6, 197742.6 ], [ 622760.7, 197772.5 ], [ 622845.3, 197894.7 ], [ 623155.2, 197729.4 ], [ 623176.7, 197736.4 ], [ 623254.8, 197788.7 ], [ 623327.3, 197827.6 ], [ 623392.3, 197879.5 ], [ 623493.9, 197928.8 ], [ 623645.9, 198026.6 ], [ 623694.1, 198046.6 ], [ 623807.0, 198078.4 ], [ 623974.5, 198156.7 ], [ 624032.0, 198203.3 ], [ 624080.9, 198299.4 ], [ 624176.9, 198408.4 ], [ 624275.5, 198466.4 ], [ 624411.9, 198585.8 ], [ 624454.1, 198608.4 ], [ 624642.0, 198612.1 ], [ 624814.2, 198568.2 ], [ 624914.4, 198559.6 ], [ 625012.9, 198564.7 ], [ 625127.1, 198545.5 ], [ 625175.9, 198549.1 ], [ 625274.5, 198577.8 ], [ 625318.0, 198620.1 ], [ 625411.6, 198671.9 ], [ 625508.5, 198692.4 ], [ 625535.6, 198687.5 ], [ 625569.4, 198691.6 ], [ 625623.9, 198772.0 ], [ 625706.013, 198797.598 ], [ 625791.0, 198760.4 ], [ 625843.2, 198759.9 ], [ 625915.26, 198773.33 ], [ 625919.932, 198763.695 ], [ 625934.4, 198761.2 ], [ 625941.537, 198770.703 ], [ 625940.216, 198781.326 ], [ 625951.1, 198787.4 ], [ 626198.6, 198863.4 ], [ 626235.5, 198906.1 ] ] ] } } , -{ "type": "Feature", "properties": { "FID": 1.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 611200.400000, 265702.100000 ], [ 611141.100000, 265545.900000 ], [ 611139.300000, 265505.400000 ], [ 611149.600000, 265485.100000 ], [ 611173.600000, 265464.400000 ], [ 611234.800000, 265455.700000 ] ], [ [ 611200.400000, 265702.100000 ], [ 611269.900000, 265670.200000 ], [ 611370.100000, 265846.200000 ], [ 611156.000000, 265965.900000 ] ], [ [ 611200.400000, 265702.100000 ], [ 611047.500000, 265777.200000 ], [ 611156.000000, 265965.900000 ] ], [ [ 611234.800000, 265455.700000 ], [ 611273.100000, 265451.900000 ], [ 611328.300000, 265427.900000 ], [ 611360.600000, 265373.600000 ], [ 611408.600000, 265348.900000 ], [ 611416.600000, 265301.100000 ], [ 611406.600000, 265265.600000 ], [ 611391.600000, 265246.000000 ], [ 611281.800000, 265146.600000 ], [ 611231.100000, 265069.600000 ], [ 611202.200000, 265008.900000 ] ], [ [ 553364.500000, 217241.900000 ], [ 553395.000000, 217210.200000 ], [ 553297.000000, 217116.700000 ], [ 553551.300000, 216848.300000 ], [ 553829.100000, 217082.200000 ], [ 553955.700000, 217170.700000 ] ], [ [ 553364.500000, 217241.900000 ], [ 553334.100000, 217273.000000 ], [ 553313.200000, 217253.900000 ], [ 553238.300000, 217301.100000 ], [ 553007.000000, 217372.100000 ], [ 552923.500000, 217415.900000 ], [ 552804.500000, 217432.900000 ], [ 552764.800000, 217475.100000 ], [ 552751.800000, 217469.100000 ], [ 552748.300000, 217452.500000 ], [ 552735.500000, 217456.200000 ], [ 552704.800000, 217473.200000 ], [ 552642.400000, 217531.300000 ], [ 552581.800000, 217542.500000 ], [ 552534.000000, 217563.700000 ], [ 552494.500000, 217601.700000 ], [ 552463.800000, 217611.200000 ], [ 552426.500000, 217635.700000 ], [ 552390.800000, 217684.000000 ], [ 552351.400000, 217702.000000 ], [ 552266.700000, 217665.200000 ], [ 552199.200000, 217582.200000 ], [ 552170.200000, 217574.200000 ], [ 552119.200000, 217597.200000 ], [ 552100.900000, 217594.700000 ], [ 552091.700000, 217589.700000 ], [ 552064.200000, 217540.700000 ], [ 552022.700000, 217519.700000 ], [ 552009.900000, 217529.000000 ], [ 551995.084000, 217617.821000 ], [ 551980.654000, 217638.251000 ], [ 551963.450000, 217638.839000 ], [ 551929.200000, 217724.000000 ], [ 551878.500000, 217808.200000 ], [ 551842.666000, 217830.417000 ], [ 551835.217000, 217818.435000 ], [ 551844.100000, 217793.400000 ], [ 551841.896000, 217772.498000 ], [ 551815.218000, 217731.805000 ], [ 551787.857000, 217710.357000 ], [ 551764.482000, 217724.310000 ], [ 551749.790000, 217744.230000 ], [ 551732.479000, 217801.602000 ], [ 551720.500000, 217820.600000 ], [ 551694.609000, 217827.636000 ], [ 551615.900000, 217829.100000 ], [ 551574.200000, 217808.700000 ], [ 551524.500000, 217798.100000 ], [ 551502.400000, 217784.100000 ], [ 551484.100000, 217759.700000 ], [ 551478.100000, 217739.600000 ], [ 551489.400000, 217701.800000 ], [ 551417.700000, 217636.500000 ], [ 551360.000000, 217551.600000 ], [ 551376.584000, 217492.233000 ], [ 551356.719000, 217492.223000 ], [ 551316.141000, 217475.831000 ], [ 551308.600000, 217432.300000 ], [ 551234.400000, 217384.300000 ], [ 551217.400000, 217355.100000 ], [ 551165.000000, 217337.400000 ], [ 551127.200000, 217336.800000 ], [ 551102.100000, 217324.200000 ], [ 551088.300000, 217325.000000 ], [ 551080.600000, 217314.300000 ], [ 551084.800000, 217299.800000 ], [ 551079.248000, 217280.203000 ], [ 551075.100000, 217285.500000 ], [ 551055.900000, 217282.500000 ], [ 550499.300000, 217115.600000 ], [ 550479.800000, 217168.500000 ], [ 550476.500000, 217197.700000 ], [ 550487.500000, 217228.700000 ], [ 550511.300000, 217253.000000 ], [ 550514.000000, 217273.900000 ], [ 550504.300000, 217273.900000 ], [ 550433.500000, 217221.400000 ], [ 550352.000000, 217190.100000 ], [ 550305.500000, 217154.900000 ], [ 550234.300000, 217117.900000 ], [ 550134.100000, 217027.400000 ], [ 550116.000000, 217023.000000 ], [ 550099.900000, 217029.400000 ], [ 550066.300000, 217099.700000 ], [ 550063.300000, 217124.700000 ], [ 550090.500000, 217195.200000 ], [ 550111.000000, 217227.200000 ], [ 550131.500000, 217244.500000 ], [ 550131.000000, 217257.500000 ], [ 550121.800000, 217259.000000 ], [ 550094.800000, 217239.200000 ], [ 549970.100000, 217190.100000 ], [ 549934.000000, 217189.800000 ], [ 549893.200000, 217173.500000 ], [ 549870.800000, 217173.600000 ], [ 549842.900000, 217219.700000 ], [ 549841.900000, 217231.500000 ], [ 549875.100000, 217348.200000 ], [ 549834.000000, 217343.500000 ], [ 549792.000000, 217351.100000 ], [ 549752.800000, 217372.300000 ], [ 549771.500000, 217408.100000 ], [ 549722.000000, 217416.300000 ], [ 549711.500000, 217428.300000 ], [ 549749.000000, 217460.100000 ], [ 549751.300000, 217471.800000 ], [ 549744.800000, 217486.800000 ], [ 549716.000000, 217493.800000 ], [ 549660.600000, 217479.400000 ], [ 549672.300000, 217489.400000 ], [ 549684.900000, 217522.300000 ], [ 549717.000000, 217557.800000 ], [ 549727.800000, 217599.600000 ], [ 549748.800000, 217644.100000 ], [ 549575.000000, 217555.200000 ], [ 549547.100000, 217550.800000 ], [ 549443.400000, 217554.000000 ], [ 549374.100000, 217544.200000 ], [ 549261.900000, 217483.700000 ], [ 549071.600000, 217544.700000 ], [ 549020.100000, 217546.200000 ], [ 548965.400000, 217564.500000 ], [ 548949.700000, 217563.700000 ], [ 548836.900000, 217511.700000 ], [ 548827.100000, 217510.400000 ], [ 548809.100000, 217521.900000 ], [ 548809.100000, 217536.900000 ], [ 548860.100000, 217572.200000 ], [ 548910.400000, 217634.900000 ], [ 549041.100000, 217725.400000 ], [ 549162.400000, 217823.900000 ], [ 549229.700000, 217927.100000 ], [ 549272.400000, 217960.200000 ], [ 549318.400000, 217975.200000 ], [ 549346.000000, 218010.000000 ], [ 549371.000000, 218030.200000 ], [ 549377.478000, 218046.273000 ], [ 549374.000000, 218056.200000 ], [ 549340.200000, 218059.200000 ], [ 549296.000000, 218043.500000 ], [ 549255.200000, 218060.500000 ], [ 549221.000000, 218058.500000 ], [ 548925.500000, 217984.100000 ], [ 548756.700000, 217953.600000 ], [ 548476.800000, 217862.700000 ], [ 548317.300000, 217798.800000 ], [ 548056.400000, 217634.100000 ], [ 547656.200000, 217510.600000 ], [ 547608.100000, 217484.800000 ], [ 547536.900000, 217434.300000 ], [ 547481.700000, 217388.100000 ], [ 547441.500000, 217339.100000 ], [ 547409.500000, 217262.900000 ], [ 547406.500000, 217231.900000 ], [ 547415.700000, 217204.600000 ], [ 547438.300000, 217179.100000 ], [ 547509.700000, 217136.900000 ], [ 547557.500000, 217066.100000 ], [ 547584.200000, 217042.100000 ], [ 547611.200000, 217030.600000 ], [ 547650.300000, 216989.500000 ], [ 547667.000000, 216956.900000 ], [ 547699.700000, 216818.100000 ], [ 547759.500000, 216717.600000 ], [ 547767.200000, 216682.700000 ], [ 547766.000000, 216651.600000 ], [ 547757.700000, 216624.600000 ], [ 547731.700000, 216597.100000 ], [ 547726.500000, 216582.400000 ], [ 547729.700000, 216496.900000 ], [ 547715.000000, 216462.900000 ], [ 547704.200000, 216404.700000 ], [ 547682.000000, 216373.400000 ], [ 547655.200000, 216313.600000 ], [ 547636.700000, 216241.100000 ], [ 547596.700000, 216205.400000 ], [ 547573.200000, 216161.300000 ], [ 547565.000000, 216094.900000 ], [ 547576.300000, 216025.100000 ], [ 547573.500000, 215986.200000 ], [ 547565.700000, 215965.100000 ], [ 547528.700000, 215917.500000 ], [ 547483.300000, 215908.600000 ], [ 547460.000000, 215883.500000 ], [ 547405.700000, 215859.500000 ], [ 547387.000000, 215809.700000 ], [ 547332.500000, 215756.800000 ], [ 547299.500000, 215740.400000 ], [ 547291.800000, 215708.700000 ], [ 547281.700000, 215696.900000 ], [ 547245.800000, 215690.700000 ], [ 547202.800000, 215666.100000 ], [ 547168.600000, 215666.300000 ], [ 547146.800000, 215633.700000 ], [ 547109.300000, 215619.200000 ], [ 547090.800000, 215600.200000 ], [ 547043.800000, 215580.200000 ], [ 546969.600000, 215532.100000 ], [ 546866.500000, 215512.500000 ], [ 546810.300000, 215522.500000 ], [ 546740.100000, 215480.700000 ], [ 546721.900000, 215475.900000 ], [ 546692.300000, 215484.900000 ], [ 546652.100000, 215478.800000 ], [ 546621.300000, 215489.200000 ], [ 546605.500000, 215486.700000 ], [ 546581.500000, 215477.500000 ], [ 546545.600000, 215443.900000 ], [ 546503.600000, 215449.900000 ], [ 546480.600000, 215480.500000 ], [ 546468.500000, 215486.000000 ], [ 546301.000000, 215464.100000 ], [ 546226.100000, 215469.400000 ], [ 546161.800000, 215462.500000 ], [ 546108.800000, 215489.500000 ], [ 546057.800000, 215505.300000 ], [ 546023.500000, 215550.000000 ], [ 545961.500000, 215555.800000 ], [ 545932.700000, 215566.700000 ], [ 545864.100000, 215614.900000 ], [ 545806.200000, 215587.700000 ], [ 545788.800000, 215565.400000 ], [ 545729.500000, 215520.300000 ], [ 545684.100000, 215498.200000 ], [ 545663.300000, 215475.500000 ], [ 545603.200000, 215445.500000 ], [ 545520.700000, 215460.800000 ], [ 545476.900000, 215458.800000 ], [ 545449.200000, 215465.900000 ], [ 545401.800000, 215449.800000 ], [ 545317.300000, 215441.000000 ], [ 545231.800000, 215410.500000 ], [ 545090.500000, 215383.500000 ], [ 545052.000000, 215348.000000 ], [ 544996.300000, 215274.300000 ], [ 544973.400000, 215254.100000 ], [ 544932.400000, 215231.900000 ], [ 544861.000000, 215222.300000 ], [ 544843.100000, 215213.600000 ], [ 544724.800000, 215077.800000 ], [ 544700.900000, 215058.000000 ], [ 544657.100000, 215050.500000 ], [ 544608.600000, 215056.000000 ], [ 544585.900000, 215049.800000 ], [ 544574.900000, 215038.500000 ], [ 544572.600000, 215023.000000 ], [ 544606.100000, 214954.000000 ], [ 544628.400000, 214941.300000 ], [ 544728.100000, 214932.500000 ], [ 544740.900000, 214911.100000 ], [ 544734.400000, 214888.800000 ], [ 544716.600000, 214874.900000 ], [ 544661.600000, 214854.500000 ], [ 544612.100000, 214845.000000 ], [ 544574.600000, 214849.100000 ], [ 544496.100000, 214808.300000 ], [ 544431.600000, 214791.000000 ], [ 544360.900000, 214786.000000 ], [ 544330.400000, 214768.300000 ], [ 544328.900000, 214752.800000 ], [ 544334.900000, 214748.300000 ], [ 544463.600000, 214724.500000 ], [ 544511.600000, 214699.500000 ], [ 544566.800000, 214662.400000 ], [ 544606.000000, 214612.800000 ], [ 544613.100000, 214575.300000 ], [ 544629.100000, 214552.800000 ], [ 544642.900000, 214507.300000 ], [ 544639.700000, 214408.000000 ], [ 544625.500000, 214374.100000 ], [ 544572.100000, 214291.800000 ], [ 544550.100000, 214276.000000 ], [ 544515.600000, 214227.800000 ], [ 544490.600000, 214155.500000 ], [ 544492.600000, 214144.300000 ], [ 544554.300000, 214060.100000 ], [ 544660.600000, 214015.000000 ], [ 544688.900000, 213984.000000 ], [ 544675.600000, 213971.000000 ], [ 544647.600000, 213963.500000 ], [ 544591.900000, 213933.000000 ], [ 544541.400000, 213891.300000 ], [ 544497.000000, 213817.700000 ], [ 544429.600000, 213729.500000 ], [ 544291.400000, 213607.300000 ], [ 544205.200000, 213493.800000 ], [ 544182.700000, 213487.800000 ], [ 544158.700000, 213450.400000 ], [ 544142.700000, 213404.300000 ], [ 544143.728000, 213381.936000 ], [ 544181.472000, 213328.683000 ], [ 544199.808000, 213287.936000 ], [ 544222.591000, 213267.763000 ], [ 544215.400000, 213256.300000 ], [ 544242.500000, 213239.600000 ], [ 544250.800000, 213253.300000 ], [ 544296.800000, 213224.500000 ], [ 544286.700000, 213208.500000 ], [ 544320.200000, 213165.300000 ], [ 544349.900000, 213138.000000 ], [ 544395.900000, 213116.800000 ], [ 544418.200000, 213116.500000 ], [ 544432.700000, 213133.300000 ], [ 544440.900000, 213209.300000 ], [ 544486.100000, 213221.500000 ], [ 544501.200000, 213234.000000 ], [ 544531.900000, 213310.600000 ], [ 544525.600000, 213328.000000 ], [ 544546.300000, 213352.200000 ], [ 544555.500000, 213347.200000 ], [ 544587.000000, 213256.700000 ], [ 544709.900000, 213155.000000 ], [ 544807.109000, 213012.980000 ], [ 544819.400000, 213015.300000 ], [ 544895.100000, 213085.900000 ], [ 544944.200000, 213102.500000 ], [ 544950.200000, 213076.500000 ], [ 544932.400000, 213030.500000 ], [ 544937.000000, 212962.000000 ], [ 544962.500000, 212925.200000 ], [ 544976.800000, 212876.000000 ], [ 545012.000000, 212846.000000 ], [ 545055.000000, 212844.000000 ], [ 545062.000000, 212832.000000 ], [ 545037.800000, 212800.500000 ], [ 545020.500000, 212789.500000 ], [ 544988.000000, 212782.500000 ], [ 544983.000000, 212775.800000 ], [ 544981.000000, 212757.800000 ], [ 544992.300000, 212725.800000 ], [ 544988.300000, 212651.000000 ], [ 545055.900000, 212626.900000 ], [ 545081.000000, 212594.800000 ], [ 545091.209000, 212563.847000 ], [ 545101.554000, 212558.218000 ], [ 545127.021000, 212523.074000 ], [ 545177.445000, 212485.892000 ], [ 545223.365000, 212427.672000 ], [ 545264.900000, 212405.000000 ], [ 545368.800000, 212368.000000 ], [ 545421.000000, 212326.400000 ], [ 545502.400000, 212289.200000 ], [ 545597.400000, 212258.800000 ], [ 545660.300000, 212255.300000 ], [ 545678.800000, 212237.300000 ], [ 545685.400000, 212205.300000 ], [ 545855.900000, 212245.500000 ], [ 546086.700000, 212333.800000 ], [ 546214.400000, 212401.800000 ], [ 546420.200000, 212466.000000 ], [ 546453.700000, 212484.300000 ], [ 546655.900000, 212563.000000 ], [ 546699.700000, 212587.300000 ], [ 546766.700000, 212639.000000 ], [ 546782.700000, 212642.500000 ], [ 546787.000000, 212626.200000 ], [ 546703.800000, 212511.600000 ], [ 546594.900000, 212378.100000 ], [ 546577.900000, 212340.500000 ], [ 546567.200000, 212295.500000 ], [ 546499.600000, 212209.400000 ], [ 546485.100000, 212167.700000 ], [ 546489.200000, 212101.300000 ], [ 546497.200000, 212078.600000 ], [ 546529.800000, 212049.000000 ], [ 546659.700000, 212021.500000 ], [ 546720.900000, 211992.300000 ], [ 546816.400000, 211982.000000 ], [ 546868.400000, 212013.000000 ], [ 546905.700000, 212018.500000 ], [ 546917.400000, 212007.300000 ], [ 546926.200000, 211983.000000 ], [ 546954.700000, 211965.500000 ], [ 547037.900000, 211976.000000 ], [ 547065.200000, 211973.800000 ], [ 547068.200000, 211963.300000 ], [ 547061.700000, 211958.800000 ], [ 546960.400000, 211922.600000 ], [ 546870.200000, 211918.800000 ], [ 546846.700000, 211910.800000 ], [ 546849.400000, 211900.000000 ], [ 546918.500000, 211901.000000 ], [ 546962.500000, 211884.500000 ], [ 546988.300000, 211882.000000 ], [ 547160.400000, 211936.000000 ], [ 547251.000000, 211940.800000 ], [ 547334.000000, 211964.800000 ], [ 547456.700000, 212034.300000 ], [ 547464.800000, 212049.500000 ], [ 547526.900000, 211967.500000 ], [ 547726.900000, 212126.800000 ], [ 547762.500000, 212081.000000 ], [ 547777.200000, 212101.200000 ], [ 547809.900000, 212180.900000 ], [ 547870.700000, 212266.700000 ], [ 547905.200000, 212292.900000 ], [ 547960.100000, 212305.729000 ], [ 548170.600000, 212441.000000 ], [ 548444.700000, 212551.800000 ], [ 548489.200000, 212525.300000 ], [ 548631.200000, 212401.800000 ], [ 548641.100000, 212380.000000 ], [ 548856.800000, 212068.800000 ], [ 548914.700000, 211953.000000 ], [ 548959.100000, 211818.800000 ], [ 548981.100000, 211772.400000 ], [ 549016.900000, 211741.400000 ], [ 549122.800000, 211678.400000 ], [ 549145.200000, 211656.100000 ], [ 549158.100000, 211629.300000 ], [ 549157.500000, 211597.900000 ], [ 549144.700000, 211568.900000 ], [ 549045.500000, 211427.800000 ], [ 549039.400000, 211401.600000 ], [ 549037.600000, 211309.900000 ], [ 549030.019000, 211298.694000 ], [ 548985.300000, 211301.200000 ], [ 548971.100000, 211286.400000 ], [ 548986.800000, 211230.900000 ], [ 548966.600000, 211215.700000 ], [ 548968.100000, 211182.700000 ], [ 548961.100000, 211166.900000 ], [ 548942.100000, 211161.400000 ], [ 548910.600000, 211185.900000 ], [ 548912.600000, 211162.400000 ], [ 548906.300000, 211157.400000 ], [ 548875.800000, 211193.400000 ], [ 548858.600000, 211229.400000 ], [ 548849.100000, 211230.400000 ], [ 548837.800000, 211218.900000 ], [ 548829.800000, 211222.900000 ], [ 548828.100000, 211238.700000 ], [ 548806.500000, 211231.600000 ], [ 548820.100000, 211219.300000 ], [ 548845.600000, 211164.500000 ], [ 548953.300000, 211053.500000 ], [ 549009.300000, 211025.200000 ], [ 549081.600000, 211007.200000 ], [ 549092.600000, 210996.400000 ], [ 549045.800000, 211005.500000 ], [ 548982.600000, 210995.000000 ], [ 548899.100000, 210958.000000 ], [ 548826.000000, 210907.900000 ], [ 548846.600000, 210852.100000 ], [ 548848.400000, 210827.400000 ], [ 548803.000000, 210701.000000 ], [ 548788.600000, 210615.300000 ], [ 548787.300000, 210573.600000 ], [ 548808.600000, 210492.400000 ], [ 548800.300000, 210441.100000 ], [ 548735.100000, 210365.500000 ], [ 548688.300000, 210328.100000 ], [ 548608.600000, 210245.600000 ], [ 548592.800000, 210218.000000 ], [ 548561.200000, 210089.400000 ], [ 548533.300000, 210049.600000 ], [ 548251.200000, 209883.500000 ], [ 548151.500000, 209809.700000 ], [ 548092.200000, 209748.800000 ], [ 548023.200000, 209692.600000 ], [ 548011.300000, 209652.800000 ], [ 547970.100000, 209579.900000 ], [ 547920.200000, 209466.400000 ], [ 547902.600000, 209378.200000 ], [ 547873.300000, 209328.000000 ], [ 547872.300000, 209290.100000 ], [ 547851.500000, 209244.400000 ], [ 547831.000000, 209223.900000 ], [ 547739.300000, 209164.900000 ], [ 547642.500000, 209038.600000 ], [ 547582.800000, 209008.600000 ], [ 547551.700000, 208981.800000 ], [ 547731.800000, 208969.800000 ], [ 547781.700000, 208962.600000 ], [ 547833.500000, 208942.300000 ], [ 547831.700000, 208932.800000 ], [ 547818.000000, 208924.300000 ], [ 547746.000000, 208890.900000 ], [ 547532.700000, 208772.800000 ], [ 547467.500000, 208695.800000 ], [ 547472.000000, 208677.100000 ], [ 547554.100000, 208592.500000 ], [ 547637.100000, 208555.000000 ], [ 547748.700000, 208526.400000 ], [ 547753.500000, 208504.200000 ], [ 547713.100000, 208421.100000 ], [ 547700.400000, 208414.300000 ], [ 547661.800000, 208416.100000 ], [ 547603.200000, 208403.000000 ], [ 547538.500000, 208353.000000 ], [ 547512.200000, 208296.600000 ], [ 547508.900000, 208181.400000 ], [ 547439.800000, 208099.900000 ], [ 547421.600000, 208068.100000 ], [ 547404.700000, 208055.700000 ], [ 547317.100000, 208020.700000 ], [ 547259.600000, 208024.700000 ], [ 547227.900000, 208012.900000 ], [ 547210.600000, 208001.400000 ], [ 547185.600000, 207950.200000 ], [ 547127.000000, 207915.400000 ], [ 547059.400000, 207885.900000 ], [ 547055.000000, 207852.100000 ], [ 547027.300000, 207864.800000 ], [ 547004.300000, 207866.800000 ], [ 546946.300000, 207852.000000 ], [ 546894.000000, 207815.300000 ], [ 546819.400000, 207747.100000 ], [ 546754.400000, 207674.300000 ], [ 546623.500000, 207505.300000 ], [ 546609.500000, 207474.300000 ], [ 546601.000000, 207411.300000 ], [ 546582.800000, 207424.300000 ], [ 546575.300000, 207459.800000 ], [ 546562.200000, 207457.900000 ], [ 546537.400000, 207306.800000 ], [ 546517.500000, 207225.800000 ], [ 546506.500000, 207213.000000 ], [ 546495.800000, 207204.000000 ], [ 546470.300000, 207208.000000 ], [ 546439.300000, 207288.300000 ], [ 546408.800000, 207282.000000 ], [ 546386.700000, 207265.100000 ], [ 546308.900000, 207134.400000 ], [ 546043.000000, 206763.200000 ], [ 545971.300000, 206529.000000 ], [ 545904.900000, 206438.100000 ], [ 545898.900000, 206421.700000 ], [ 545897.600000, 206330.000000 ], [ 545903.600000, 206284.300000 ], [ 545895.100000, 206249.800000 ], [ 545898.800000, 206217.300000 ], [ 545870.600000, 206149.800000 ], [ 545852.300000, 206039.500000 ], [ 545830.600000, 206000.000000 ], [ 545793.700000, 205973.200000 ], [ 545764.100000, 205960.600000 ], [ 545710.200000, 205951.000000 ], [ 545652.200000, 205952.600000 ], [ 545580.700000, 205930.500000 ], [ 545529.900000, 205927.900000 ], [ 545409.700000, 205853.600000 ], [ 545220.200000, 205796.700000 ], [ 545107.600000, 205742.300000 ], [ 544996.600000, 205706.700000 ], [ 544929.600000, 205758.200000 ], [ 544886.500000, 205798.900000 ], [ 544876.900000, 205817.200000 ], [ 544830.600000, 205819.000000 ], [ 544790.800000, 205833.300000 ], [ 544763.500000, 205824.800000 ], [ 544676.300000, 205778.900000 ], [ 544574.200000, 205747.300000 ], [ 544563.100000, 205730.100000 ], [ 544551.200000, 205679.300000 ], [ 544535.500000, 205656.400000 ], [ 544483.600000, 205619.400000 ], [ 544472.300000, 205599.700000 ], [ 544456.600000, 205544.200000 ], [ 544416.200000, 205314.700000 ], [ 544400.100000, 205277.100000 ], [ 544357.200000, 205250.900000 ], [ 544038.300000, 205107.900000 ], [ 543943.100000, 205042.500000 ], [ 543770.300000, 204864.400000 ], [ 543628.500000, 204609.400000 ], [ 543486.500000, 204498.300000 ], [ 543478.900000, 204472.100000 ], [ 543481.900000, 204441.600000 ], [ 543474.900000, 204427.300000 ], [ 543366.600000, 204383.800000 ], [ 543373.900000, 204377.800000 ], [ 543465.200000, 204361.600000 ], [ 543364.900000, 204241.300000 ], [ 543388.900000, 204208.100000 ], [ 543395.200000, 204150.300000 ], [ 543403.300000, 204132.300000 ], [ 543317.600000, 204116.400000 ], [ 543215.200000, 204127.000000 ], [ 543215.500000, 204044.800000 ], [ 543286.900000, 204042.700000 ], [ 543312.600000, 204026.100000 ], [ 543381.100000, 203916.200000 ], [ 543436.700000, 203853.900000 ], [ 543456.900000, 203837.000000 ], [ 543521.900000, 203816.000000 ], [ 543685.000000, 203666.100000 ], [ 543825.300000, 203462.100000 ], [ 543724.100000, 203411.900000 ], [ 543619.300000, 203398.800000 ], [ 543349.800000, 203288.500000 ], [ 543009.800000, 203083.100000 ], [ 542913.600000, 203041.400000 ], [ 542822.500000, 202956.900000 ], [ 542675.200000, 202789.500000 ], [ 542531.900000, 202651.100000 ], [ 542356.500000, 202542.700000 ], [ 542258.500000, 202503.500000 ], [ 542172.800000, 202451.600000 ], [ 542120.800000, 202434.100000 ], [ 542111.500000, 202416.900000 ], [ 542003.100000, 202365.500000 ], [ 541852.700000, 202305.800000 ], [ 541623.200000, 202226.200000 ], [ 541520.800000, 202204.600000 ], [ 541417.500000, 202193.100000 ], [ 541291.900000, 202148.000000 ], [ 541191.100000, 202131.900000 ], [ 541128.900000, 202102.600000 ], [ 541061.100000, 202098.100000 ], [ 541039.400000, 202085.000000 ], [ 541010.300000, 202039.800000 ], [ 540957.100000, 202032.300000 ], [ 540883.700000, 201992.700000 ], [ 540871.500000, 201958.900000 ], [ 540861.100000, 201953.000000 ], [ 540812.600000, 201951.200000 ], [ 540778.200000, 201960.700000 ], [ 540736.800000, 202014.400000 ], [ 540724.000000, 202018.300000 ], [ 540680.400000, 202004.300000 ], [ 540636.200000, 201978.800000 ], [ 540568.400000, 201987.700000 ], [ 540454.500000, 202028.500000 ], [ 540488.300000, 201987.200000 ], [ 540399.300000, 201821.900000 ], [ 540389.700000, 201808.700000 ], [ 540322.000000, 201760.700000 ], [ 540300.200000, 201725.300000 ], [ 540298.700000, 201702.000000 ], [ 540306.800000, 201686.900000 ], [ 540331.000000, 201670.500000 ], [ 540330.800000, 201654.300000 ], [ 540291.600000, 201573.900000 ], [ 540254.300000, 201519.000000 ], [ 540264.300000, 201486.800000 ], [ 540260.500000, 201475.500000 ], [ 540198.000000, 201417.500000 ], [ 540193.000000, 201398.000000 ], [ 540203.200000, 201366.100000 ], [ 540202.300000, 201332.000000 ], [ 540182.600000, 201252.300000 ], [ 540117.500000, 201183.500000 ], [ 540090.800000, 201203.500000 ], [ 540068.800000, 201204.000000 ], [ 540009.300000, 201041.300000 ], [ 539973.500000, 200995.300000 ], [ 539940.000000, 200975.800000 ], [ 539797.000000, 200946.600000 ], [ 539762.800000, 200929.100000 ], [ 539693.200000, 200876.900000 ], [ 539736.000000, 200889.000000 ], [ 539741.000000, 200880.300000 ], [ 539719.400000, 200843.300000 ], [ 539670.300000, 200793.600000 ], [ 539648.900000, 200735.100000 ], [ 539633.300000, 200710.100000 ], [ 539590.300000, 200675.900000 ], [ 539489.200000, 200558.000000 ], [ 539453.900000, 200531.900000 ], [ 539430.800000, 200493.300000 ], [ 539426.500000, 200452.000000 ], [ 539414.600000, 200436.700000 ], [ 539329.100000, 200370.300000 ], [ 539175.900000, 200168.500000 ], [ 539148.800000, 200108.000000 ], [ 539148.500000, 200090.000000 ], [ 539180.800000, 200061.500000 ], [ 539164.900000, 199991.200000 ], [ 539185.200000, 199929.200000 ], [ 539190.400000, 199877.600000 ], [ 539184.700000, 199862.300000 ], [ 539115.900000, 199774.100000 ], [ 539122.000000, 199657.400000 ], [ 539094.100000, 199599.500000 ], [ 539091.500000, 199533.700000 ], [ 539071.200000, 199476.200000 ], [ 539081.400000, 199413.600000 ], [ 539049.500000, 199366.700000 ], [ 538959.100000, 199276.200000 ], [ 538914.000000, 199193.400000 ], [ 538906.300000, 199115.600000 ], [ 538888.100000, 199071.200000 ], [ 538853.000000, 198881.400000 ], [ 538849.700000, 198814.500000 ], [ 538830.200000, 198781.700000 ], [ 538794.200000, 198754.800000 ], [ 538653.500000, 198675.000000 ], [ 538624.800000, 198615.600000 ], [ 538559.000000, 198580.200000 ], [ 538537.900000, 198556.200000 ], [ 538523.800000, 198525.900000 ], [ 538525.400000, 198491.700000 ], [ 538581.800000, 198386.500000 ], [ 538605.100000, 198372.800000 ], [ 538754.200000, 198342.100000 ], [ 538824.900000, 198358.400000 ], [ 538871.800000, 198359.100000 ], [ 538990.500000, 198343.800000 ], [ 539000.200000, 198335.800000 ], [ 538998.200000, 198326.200000 ], [ 538986.500000, 198319.300000 ], [ 538911.900000, 198305.800000 ], [ 538822.200000, 198265.700000 ], [ 538751.700000, 198201.800000 ], [ 538643.600000, 198126.000000 ], [ 538530.100000, 198084.000000 ], [ 538476.100000, 198090.300000 ], [ 538429.500000, 198085.100000 ], [ 538411.200000, 198080.100000 ], [ 538405.100000, 198065.200000 ], [ 538527.700000, 197974.800000 ], [ 538579.200000, 197972.500000 ], [ 538612.200000, 197983.000000 ], [ 538631.100000, 197967.100000 ], [ 538505.900000, 197890.100000 ], [ 538532.400000, 197855.100000 ], [ 538601.800000, 197706.500000 ], [ 538617.900000, 197579.700000 ], [ 538624.900000, 197403.400000 ], [ 538650.400000, 197339.200000 ], [ 538685.200000, 197289.400000 ], [ 538707.400000, 197244.900000 ], [ 538711.000000, 197206.800000 ], [ 538729.100000, 197191.300000 ], [ 538765.500000, 197201.700000 ], [ 538791.300000, 197227.400000 ], [ 538819.400000, 197390.700000 ], [ 538844.700000, 197449.900000 ], [ 538885.900000, 197499.100000 ], [ 539178.900000, 197737.600000 ], [ 539230.980000, 197802.977000 ], [ 539249.800000, 197814.500000 ], [ 539297.300000, 197865.400000 ], [ 539412.100000, 197939.700000 ], [ 539497.300000, 198034.900000 ], [ 539530.300000, 198063.100000 ], [ 539665.500000, 198150.900000 ], [ 539748.700000, 198164.900000 ], [ 539879.900000, 198169.000000 ], [ 539929.400000, 198181.900000 ], [ 539998.200000, 198189.800000 ], [ 540062.137000, 198176.394000 ], [ 540058.500000, 198138.100000 ], [ 540127.300000, 198130.900000 ], [ 540170.700000, 198134.200000 ], [ 540209.300000, 198142.300000 ], [ 540325.800000, 198187.500000 ], [ 540479.900000, 198207.400000 ], [ 540539.000000, 198207.200000 ], [ 540639.300000, 198241.200000 ], [ 540758.200000, 198306.600000 ], [ 540805.600000, 198324.600000 ], [ 540914.700000, 198329.400000 ], [ 541073.400000, 198317.100000 ], [ 541140.000000, 198323.200000 ], [ 541224.800000, 198347.700000 ], [ 541300.000000, 198390.900000 ], [ 541390.100000, 198455.100000 ], [ 541436.600000, 198497.400000 ], [ 541469.900000, 198542.000000 ], [ 541506.200000, 198625.700000 ], [ 541569.200000, 198637.900000 ], [ 541573.600000, 198695.300000 ], [ 541582.400000, 198710.200000 ], [ 541684.300000, 198785.800000 ], [ 541692.400000, 198800.700000 ], [ 541707.900000, 198791.900000 ], [ 541763.400000, 198808.200000 ], [ 541813.400000, 198805.900000 ], [ 541886.400000, 198781.900000 ], [ 541986.200000, 198735.100000 ], [ 541965.200000, 198647.800000 ], [ 542002.500000, 198554.700000 ], [ 542018.400000, 198490.100000 ], [ 542021.600000, 198452.300000 ], [ 542010.700000, 198334.700000 ], [ 542016.900000, 198296.000000 ], [ 542050.500000, 198262.100000 ], [ 542083.500000, 198249.300000 ], [ 542158.200000, 198260.300000 ], [ 542230.500000, 198248.800000 ], [ 542275.800000, 198264.300000 ], [ 542365.500000, 198328.400000 ], [ 542432.400000, 198344.500000 ], [ 542500.600000, 198387.500000 ], [ 542551.600000, 198380.800000 ], [ 542606.200000, 198414.300000 ], [ 542679.600000, 198403.600000 ], [ 542730.500000, 198417.400000 ], [ 542750.700000, 198413.400000 ], [ 542773.900000, 198388.800000 ], [ 542839.900000, 198384.300000 ], [ 542869.000000, 198386.800000 ], [ 543019.100000, 198432.800000 ], [ 543065.400000, 198428.100000 ], [ 543168.000000, 198503.900000 ], [ 543201.800000, 198502.800000 ], [ 543330.700000, 198550.900000 ], [ 543384.100000, 198560.100000 ], [ 543566.400000, 198617.400000 ], [ 543691.200000, 198669.600000 ], [ 543754.400000, 198711.500000 ], [ 543810.900000, 198722.600000 ], [ 543863.000000, 198747.900000 ], [ 543957.000000, 198758.400000 ], [ 544097.400000, 198854.400000 ], [ 544118.100000, 198874.400000 ], [ 544133.900000, 198876.400000 ], [ 544144.900000, 198863.400000 ], [ 544143.400000, 198851.600000 ], [ 544096.300000, 198834.500000 ], [ 544065.100000, 198786.900000 ], [ 544011.900000, 198726.800000 ], [ 543973.600000, 198703.200000 ], [ 543962.000000, 198687.500000 ], [ 543843.200000, 198596.500000 ], [ 543788.500000, 198560.900000 ], [ 543736.100000, 198540.300000 ], [ 543676.800000, 198504.200000 ], [ 543655.000000, 198479.500000 ], [ 543480.000000, 198357.300000 ], [ 543444.700000, 198311.900000 ], [ 543305.200000, 198199.500000 ], [ 543047.800000, 198036.500000 ], [ 542986.600000, 197988.700000 ], [ 542942.500000, 197966.900000 ], [ 542889.500000, 197916.500000 ], [ 542746.900000, 197852.800000 ], [ 542486.700000, 197669.300000 ], [ 542397.600000, 197622.800000 ], [ 542306.800000, 197550.600000 ], [ 542152.100000, 197450.200000 ], [ 542065.200000, 197363.500000 ], [ 542007.900000, 197322.300000 ], [ 541890.600000, 197267.400000 ], [ 541872.900000, 197248.000000 ], [ 541858.300000, 197173.800000 ], [ 541880.100000, 197156.700000 ], [ 541942.300000, 197160.600000 ], [ 542100.200000, 197209.700000 ], [ 542206.400000, 197271.400000 ], [ 542265.600000, 197285.400000 ], [ 542296.300000, 197300.900000 ], [ 542380.600000, 197362.300000 ], [ 542414.000000, 197374.400000 ], [ 542460.300000, 197407.600000 ], [ 542534.300000, 197445.500000 ], [ 542614.500000, 197437.100000 ], [ 542673.500000, 197406.800000 ], [ 542749.600000, 197429.400000 ], [ 542790.600000, 197469.600000 ], [ 542840.574000, 197491.363000 ], [ 542941.000000, 197491.600000 ], [ 542737.600000, 197321.800000 ], [ 542711.900000, 197290.800000 ], [ 542704.300000, 197266.000000 ], [ 542701.800000, 197246.900000 ], [ 542728.000000, 197018.700000 ], [ 542740.100000, 196996.400000 ], [ 542804.100000, 196957.400000 ], [ 542902.000000, 196950.200000 ], [ 543065.000000, 196970.900000 ], [ 543120.500000, 196936.600000 ], [ 543198.600000, 197019.800000 ], [ 543249.400000, 197048.600000 ], [ 543292.400000, 197047.600000 ], [ 543362.500000, 197013.500000 ], [ 543415.100000, 197007.300000 ], [ 543447.600000, 197015.100000 ], [ 543526.200000, 197085.800000 ], [ 543575.800000, 197104.600000 ], [ 543633.000000, 197098.300000 ], [ 543653.500000, 197079.300000 ], [ 543665.200000, 197085.300000 ], [ 543850.700000, 197074.300000 ], [ 543880.000000, 197081.300000 ], [ 543908.100000, 197096.600000 ], [ 543953.700000, 197134.800000 ], [ 544118.200000, 197394.300000 ], [ 544175.700000, 197456.800000 ], [ 544207.500000, 197472.700000 ], [ 544233.600000, 197497.900000 ], [ 544244.900000, 197523.900000 ], [ 544229.600000, 197590.400000 ], [ 544231.100000, 197636.000000 ], [ 544279.700000, 197712.100000 ], [ 544301.200000, 197760.600000 ], [ 544333.800000, 197795.300000 ], [ 544356.900000, 197804.100000 ], [ 544414.400000, 197806.100000 ], [ 544479.289000, 197833.765000 ], [ 544551.795000, 197809.892000 ], [ 544592.516000, 197810.130000 ], [ 544634.100000, 197822.700000 ], [ 544682.768000, 197847.993000 ], [ 544698.700000, 197785.700000 ], [ 544716.000000, 197766.200000 ], [ 544776.300000, 197711.900000 ], [ 544827.000000, 197698.600000 ], [ 544861.300000, 197683.400000 ], [ 544878.900000, 197666.900000 ], [ 544944.900000, 197561.700000 ], [ 545010.000000, 197485.200000 ], [ 545036.400000, 197435.600000 ], [ 545064.000000, 197362.000000 ], [ 545106.700000, 197314.700000 ], [ 545118.700000, 197280.500000 ], [ 545153.200000, 197223.300000 ], [ 545166.500000, 197220.400000 ], [ 545203.800000, 197233.500000 ], [ 545284.600000, 197229.700000 ], [ 545326.600000, 197243.900000 ], [ 545434.882000, 197302.236000 ], [ 545466.497000, 197240.805000 ], [ 545375.300000, 197158.500000 ], [ 545230.200000, 196995.300000 ], [ 545176.300000, 196943.900000 ], [ 545130.500000, 196832.700000 ], [ 545126.300000, 196685.500000 ], [ 545113.400000, 196610.400000 ], [ 545077.900000, 196528.500000 ], [ 545055.500000, 196442.200000 ], [ 544998.800000, 196375.300000 ], [ 544982.000000, 196335.500000 ], [ 544978.600000, 196308.000000 ], [ 544983.800000, 196267.100000 ], [ 544959.900000, 196286.800000 ], [ 544918.800000, 196293.500000 ], [ 544851.300000, 196294.800000 ], [ 544723.800000, 196285.600000 ], [ 544699.200000, 196272.500000 ], [ 544602.200000, 196140.900000 ], [ 544539.300000, 196096.900000 ], [ 544504.400000, 196012.900000 ], [ 544467.900000, 195969.200000 ], [ 544462.900000, 195949.600000 ], [ 544467.100000, 195917.400000 ], [ 544453.600000, 195874.600000 ], [ 544435.700000, 195855.500000 ], [ 544363.900000, 195823.200000 ], [ 544337.300000, 195803.000000 ], [ 544310.700000, 195758.500000 ], [ 544221.200000, 195678.400000 ], [ 544151.100000, 195595.200000 ], [ 544137.100000, 195590.400000 ], [ 544126.500000, 195562.500000 ], [ 543999.700000, 195353.500000 ], [ 543945.300000, 195300.300000 ], [ 543847.400000, 195181.600000 ], [ 543810.400000, 195151.300000 ], [ 543715.700000, 195114.100000 ], [ 543677.995000, 195084.653000 ], [ 543638.000000, 195035.600000 ], [ 543595.800000, 194959.100000 ], [ 543572.700000, 194878.200000 ], [ 543518.200000, 194799.100000 ], [ 543468.500000, 194679.600000 ], [ 543435.100000, 194622.200000 ], [ 543382.477000, 194560.997000 ], [ 543185.900000, 194400.100000 ], [ 543163.400000, 194374.800000 ], [ 543153.600000, 194345.100000 ], [ 543160.400000, 194235.200000 ], [ 543106.900000, 194276.600000 ], [ 543081.600000, 194285.900000 ], [ 543051.400000, 194286.300000 ], [ 543007.400000, 194302.800000 ], [ 542893.600000, 194295.800000 ], [ 542814.400000, 194265.300000 ], [ 542736.866000, 194173.763000 ], [ 542734.894000, 194157.843000 ], [ 542705.800000, 194105.800000 ], [ 542701.400000, 194024.100000 ], [ 542689.507000, 193986.831000 ], [ 542646.200000, 193936.400000 ], [ 542597.100000, 193896.100000 ], [ 542549.300000, 193872.800000 ], [ 542428.200000, 193855.500000 ], [ 542336.600000, 193825.100000 ], [ 542292.904000, 193803.114000 ], [ 542220.200000, 193741.800000 ], [ 542189.900000, 193706.700000 ], [ 542172.000000, 193681.500000 ], [ 542163.800000, 193634.300000 ], [ 542137.000000, 193605.100000 ], [ 542134.978000, 193593.096000 ], [ 542050.100000, 193573.800000 ], [ 541960.250000, 193538.915000 ], [ 541818.668000, 193538.252000 ], [ 541661.000000, 193446.300000 ], [ 541652.300000, 193429.900000 ], [ 541597.399000, 193400.443000 ], [ 541580.227000, 193407.324000 ], [ 541547.900000, 193438.700000 ], [ 541402.700000, 193448.900000 ], [ 541343.200000, 193469.200000 ], [ 541228.000000, 193453.400000 ], [ 541199.500000, 193436.400000 ], [ 541188.800000, 193437.000000 ], [ 541057.800000, 193342.400000 ], [ 541036.900000, 193321.500000 ], [ 540997.200000, 193261.700000 ], [ 540874.300000, 193155.000000 ], [ 540821.800000, 193120.900000 ], [ 540757.900000, 193095.700000 ], [ 540721.000000, 193004.100000 ], [ 540639.000000, 192941.500000 ], [ 540632.500000, 192771.900000 ], [ 540659.700000, 192720.100000 ], [ 540709.800000, 192659.000000 ], [ 540717.000000, 192605.700000 ], [ 540655.000000, 192557.900000 ], [ 540616.500000, 192519.500000 ], [ 540590.600000, 192520.500000 ], [ 540520.100000, 192502.000000 ], [ 540427.100000, 192456.800000 ], [ 540226.100000, 192379.000000 ], [ 540182.800000, 192348.500000 ], [ 540103.000000, 192329.400000 ], [ 540048.200000, 192340.200000 ], [ 539954.000000, 192306.300000 ], [ 539872.100000, 192302.400000 ], [ 539829.500000, 192324.100000 ], [ 539478.700000, 192403.200000 ], [ 539435.100000, 192409.600000 ], [ 539305.200000, 192408.100000 ], [ 539212.100000, 192514.300000 ], [ 539182.100000, 192520.000000 ], [ 539233.600000, 192386.800000 ], [ 539228.100000, 192283.400000 ], [ 539212.800000, 192242.900000 ], [ 539191.600000, 192209.000000 ], [ 539041.100000, 192046.700000 ], [ 538923.900000, 191965.500000 ], [ 538896.900000, 191930.500000 ], [ 538824.400000, 191765.200000 ], [ 538803.100000, 191743.200000 ], [ 538318.600000, 191427.200000 ], [ 538110.200000, 191353.400000 ], [ 538056.000000, 191328.800000 ], [ 537280.800000, 190874.600000 ], [ 537219.100000, 190845.900000 ], [ 536463.300000, 190556.500000 ], [ 536461.096000, 190584.789000 ], [ 536448.000000, 190592.700000 ], [ 536417.200000, 190602.000000 ], [ 536306.100000, 190610.600000 ], [ 535867.900000, 190612.600000 ], [ 535816.400000, 190604.600000 ], [ 535717.100000, 190604.900000 ], [ 535525.400000, 190562.000000 ], [ 535466.700000, 190526.200000 ], [ 535430.700000, 190487.800000 ], [ 535392.800000, 190460.700000 ], [ 535301.002000, 190430.137000 ], [ 535240.500000, 190369.400000 ], [ 535154.284000, 190247.625000 ], [ 535022.800000, 190168.600000 ], [ 534862.600000, 190115.700000 ], [ 534791.396000, 190059.308000 ], [ 534711.900000, 190033.420000 ], [ 534602.800000, 189956.600000 ], [ 534522.700000, 189932.600000 ], [ 534483.300000, 189901.200000 ], [ 534399.207000, 189875.979000 ], [ 534366.000000, 189898.300000 ], [ 534338.300000, 189907.800000 ], [ 534257.000000, 189874.200000 ], [ 534194.300000, 189817.500000 ], [ 534066.800000, 189723.600000 ], [ 534034.900000, 189680.900000 ], [ 534006.100000, 189655.300000 ], [ 533894.100000, 189570.700000 ], [ 533791.400000, 189428.600000 ], [ 533725.600000, 189363.100000 ], [ 533645.600000, 189329.500000 ], [ 533475.800000, 189300.000000 ], [ 533460.500000, 189292.100000 ], [ 533435.900000, 189237.100000 ], [ 533398.800000, 189192.300000 ], [ 533416.700000, 189130.100000 ], [ 533416.800000, 189107.100000 ], [ 533384.300000, 189032.600000 ], [ 533353.600000, 188985.700000 ], [ 533321.000000, 188951.300000 ], [ 533301.500000, 188913.800000 ], [ 533267.500000, 188885.800000 ], [ 533204.800000, 188805.600000 ], [ 533190.500000, 188796.000000 ], [ 533158.500000, 188687.400000 ], [ 533164.000000, 188580.300000 ], [ 533117.000000, 188486.600000 ], [ 533118.600000, 188458.700000 ], [ 533095.400000, 188441.200000 ], [ 532949.100000, 188275.500000 ], [ 532937.900000, 188186.100000 ], [ 532926.900000, 188160.300000 ], [ 532922.600000, 188124.500000 ], [ 532889.400000, 188025.000000 ], [ 532834.900000, 187804.100000 ], [ 532782.691000, 187671.334000 ], [ 532784.800000, 187653.100000 ], [ 532771.029000, 187602.258000 ], [ 532762.600000, 187608.800000 ], [ 532689.900000, 187617.300000 ], [ 532657.972000, 187588.512000 ], [ 532625.215000, 187544.603000 ], [ 532558.200000, 187423.200000 ], [ 532531.700000, 187389.700000 ], [ 532507.200000, 187382.100000 ], [ 532436.100000, 187338.900000 ], [ 532364.932000, 187344.463000 ], [ 532348.500000, 187338.400000 ], [ 532268.400000, 187248.000000 ], [ 532204.292000, 187147.675000 ], [ 532148.700000, 187122.800000 ], [ 532110.200000, 187076.300000 ], [ 532029.600000, 187058.500000 ], [ 532004.000000, 187059.000000 ], [ 531710.900000, 186932.000000 ], [ 531672.100000, 186974.300000 ], [ 531650.927000, 186986.000000 ], [ 531615.302000, 186994.302000 ], [ 531648.700000, 187030.000000 ], [ 531678.700000, 187078.800000 ], [ 531737.900000, 187226.200000 ], [ 531815.100000, 187321.800000 ], [ 531835.400000, 187398.300000 ], [ 531883.300000, 187463.600000 ], [ 531885.911000, 187477.664000 ], [ 531874.476000, 187482.515000 ], [ 531824.000000, 187449.500000 ], [ 531648.500000, 187395.000000 ], [ 531497.396000, 187364.073000 ], [ 531483.323000, 187371.727000 ], [ 531481.356000, 187383.865000 ], [ 531446.900000, 187384.000000 ], [ 531408.800000, 187366.600000 ], [ 531339.500000, 187310.000000 ], [ 531275.238000, 187241.304000 ], [ 531258.600000, 187230.700000 ], [ 531231.100000, 187226.700000 ], [ 531195.600000, 187244.000000 ], [ 531178.500000, 187241.800000 ], [ 531118.144000, 187214.736000 ], [ 531074.900000, 187160.300000 ], [ 530951.300000, 187074.200000 ], [ 530894.400000, 187058.200000 ], [ 530841.000000, 187055.400000 ], [ 530733.000000, 187008.900000 ], [ 530650.600000, 186946.500000 ], [ 530582.100000, 186911.600000 ], [ 530371.400000, 186750.600000 ], [ 530323.300000, 186692.700000 ], [ 530205.300000, 186524.900000 ], [ 530158.600000, 186493.900000 ], [ 530121.200000, 186477.800000 ], [ 530019.900000, 186461.100000 ], [ 529959.900000, 186440.600000 ], [ 529848.300000, 186362.600000 ], [ 529782.300000, 186390.900000 ], [ 529671.600000, 186379.100000 ], [ 529396.700000, 186297.800000 ], [ 529359.600000, 186291.800000 ], [ 529329.300000, 186295.300000 ], [ 529306.100000, 186316.300000 ], [ 529304.800000, 186370.300000 ], [ 529360.600000, 186512.900000 ], [ 529384.700000, 186596.700000 ], [ 529382.800000, 186617.800000 ], [ 529370.300000, 186633.200000 ], [ 529352.900000, 186640.500000 ], [ 529271.400000, 186621.200000 ], [ 529062.800000, 186533.300000 ], [ 528966.300000, 186424.600000 ], [ 528772.400000, 186322.000000 ], [ 528679.429000, 186237.615000 ] ], [ [ 528619.700000, 186175.200000 ], [ 528576.713000, 186210.540000 ], [ 528587.948000, 186362.542000 ], [ 528610.336000, 186267.785000 ], [ 528655.508000, 186240.143000 ], [ 528679.429000, 186237.615000 ] ], [ [ 611389.500000, 266370.000000 ], [ 611407.600000, 266352.400000 ], [ 611419.800000, 266327.900000 ], [ 611543.100000, 266261.700000 ], [ 611549.923000, 266245.014000 ], [ 611650.650000, 266193.974000 ], [ 611592.700000, 266093.400000 ], [ 611529.800000, 266120.300000 ], [ 611496.900000, 266071.700000 ], [ 611391.400000, 266127.100000 ], [ 611286.362000, 266146.335000 ], [ 611247.774000, 266073.151000 ], [ 611223.900000, 266087.000000 ], [ 611156.000000, 265965.900000 ] ], [ [ 528586.900000, 186083.000000 ], [ 528660.500000, 186118.600000 ], [ 528638.755000, 186125.669000 ], [ 528678.900000, 186155.900000 ], [ 528707.400000, 186185.500000 ], [ 528709.100000, 186196.300000 ], [ 528646.400000, 186169.500000 ], [ 528619.700000, 186175.200000 ] ], [ [ 528586.900000, 186083.000000 ], [ 528563.800000, 186090.100000 ], [ 528542.500000, 186060.300000 ], [ 528515.923000, 185867.558000 ], [ 528521.846000, 185842.095000 ] ], [ [ 553955.700000, 217170.700000 ], [ 554001.900000, 217098.000000 ], [ 553939.600000, 217052.400000 ], [ 553928.300000, 217055.600000 ], [ 553809.900000, 217034.700000 ], [ 553731.400000, 216974.800000 ], [ 553489.700000, 216769.000000 ], [ 553192.200000, 217077.200000 ], [ 553364.500000, 217241.900000 ] ], [ [ 553955.700000, 217170.700000 ], [ 553887.100000, 217293.700000 ], [ 553838.800000, 217443.200000 ], [ 553841.800000, 217457.900000 ], [ 553878.300000, 217519.700000 ], [ 553889.100000, 217623.200000 ], [ 553950.300000, 217764.200000 ], [ 554085.600000, 217964.400000 ], [ 554139.000000, 218026.000000 ], [ 554226.804000, 218105.251000 ], [ 554276.872000, 218111.111000 ], [ 554322.286000, 218142.100000 ], [ 554761.400000, 218329.400000 ], [ 554834.600000, 218370.900000 ], [ 554921.600000, 218432.400000 ], [ 554953.800000, 218531.000000 ], [ 555031.700000, 218647.800000 ], [ 555041.500000, 218671.500000 ], [ 555036.600000, 218703.700000 ], [ 555015.900000, 218755.100000 ], [ 554950.400000, 218886.400000 ], [ 555058.600000, 218959.400000 ], [ 555210.900000, 219037.900000 ], [ 555265.900000, 219093.600000 ], [ 555297.100000, 219175.400000 ], [ 555256.900000, 219253.400000 ], [ 555277.700000, 219323.600000 ], [ 555274.400000, 219374.800000 ], [ 555261.400000, 219430.400000 ], [ 555264.900000, 219450.600000 ], [ 555291.100000, 219503.100000 ], [ 555307.400000, 219511.900000 ], [ 555531.900000, 219732.300000 ], [ 555541.600000, 219777.100000 ], [ 555539.100000, 219861.800000 ], [ 555544.600000, 219887.600000 ], [ 555579.900000, 219968.100000 ], [ 555621.900000, 220100.600000 ], [ 555613.900000, 220143.100000 ], [ 555585.100000, 220173.800000 ], [ 555578.900000, 220194.300000 ], [ 555803.600000, 220449.500000 ], [ 555834.600000, 220477.600000 ], [ 555904.100000, 220523.600000 ], [ 556051.400000, 220647.300000 ], [ 556069.600000, 220657.600000 ], [ 556130.400000, 220665.300000 ], [ 556181.600000, 220685.600000 ], [ 556258.600000, 220747.100000 ], [ 556367.600000, 220777.000000 ], [ 556536.800000, 220883.600000 ], [ 556665.329000, 220920.007000 ], [ 556754.000000, 220921.100000 ], [ 556940.492000, 221024.539000 ], [ 557033.100000, 221021.500000 ], [ 557075.800000, 221035.800000 ], [ 557100.100000, 221017.200000 ], [ 557129.100000, 221012.200000 ], [ 557226.100000, 221003.000000 ], [ 557380.600000, 221006.200000 ], [ 557396.100000, 220998.500000 ], [ 557392.100000, 220960.500000 ], [ 557401.400000, 220955.000000 ], [ 557447.093000, 220987.397000 ], [ 557472.100000, 220986.700000 ], [ 557487.400000, 220962.500000 ], [ 557465.100000, 220930.500000 ], [ 557461.600000, 220895.500000 ], [ 557474.400000, 220880.700000 ], [ 557489.400000, 220879.500000 ], [ 557483.900000, 220912.200000 ], [ 557499.400000, 220928.700000 ], [ 557542.900000, 220958.000000 ], [ 557559.100000, 220980.000000 ], [ 557609.100000, 220987.700000 ], [ 557643.400000, 221025.500000 ], [ 557658.400000, 221055.200000 ], [ 557684.400000, 221140.000000 ], [ 557712.100000, 221185.700000 ], [ 557756.800000, 221240.500000 ], [ 557773.200000, 221346.200000 ], [ 557809.400000, 221421.400000 ], [ 557808.600000, 221311.400000 ], [ 557832.400000, 221252.900000 ], [ 557825.900000, 221214.100000 ], [ 557919.300000, 221271.500000 ], [ 557944.500000, 221317.200000 ], [ 558013.200000, 221365.100000 ], [ 558046.400000, 221386.400000 ], [ 558107.900000, 221400.900000 ], [ 558122.900000, 221399.100000 ], [ 558266.900000, 221307.100000 ], [ 558278.400000, 221289.600000 ], [ 558303.600000, 221196.600000 ], [ 558312.900000, 221192.900000 ], [ 558328.900000, 221288.400000 ], [ 558337.400000, 221298.400000 ], [ 558418.400000, 221308.900000 ], [ 558466.600000, 221339.900000 ], [ 558421.500000, 221414.000000 ], [ 558366.400000, 221435.600000 ], [ 558361.200000, 221442.400000 ], [ 558368.400000, 221451.600000 ], [ 558462.100000, 221476.600000 ], [ 558478.900000, 221469.800000 ], [ 558512.100000, 221440.200000 ], [ 558599.900000, 221488.600000 ], [ 558615.000000, 221462.900000 ], [ 558664.000000, 221488.000000 ], [ 558789.000000, 221483.500000 ], [ 558948.500000, 221554.000000 ], [ 558991.700000, 221587.700000 ], [ 558997.000000, 221602.500000 ], [ 558993.500000, 221611.700000 ], [ 558945.500000, 221655.700000 ], [ 558944.500000, 221665.200000 ], [ 558953.700000, 221671.000000 ], [ 559004.700000, 221661.700000 ], [ 559038.000000, 221662.700000 ], [ 559159.000000, 221803.000000 ], [ 559177.200000, 221839.200000 ], [ 559194.500000, 221903.200000 ], [ 559241.000000, 221905.200000 ], [ 559280.200000, 221951.700000 ], [ 559376.700000, 221964.000000 ], [ 559469.500000, 221945.000000 ], [ 559598.700000, 221949.000000 ], [ 559645.500000, 221957.000000 ], [ 559689.200000, 221998.700000 ], [ 559827.000000, 221986.500000 ], [ 559892.700000, 221986.700000 ], [ 560018.400000, 222046.500000 ], [ 560048.500000, 222071.000000 ], [ 560058.200000, 222098.900000 ], [ 560067.400000, 222165.400000 ], [ 560098.000000, 222146.900000 ], [ 560118.500000, 222124.900000 ], [ 560241.900000, 221923.000000 ], [ 560270.600000, 221882.800000 ], [ 560353.900000, 221792.900000 ], [ 560334.900000, 221712.700000 ], [ 560332.600000, 221684.700000 ], [ 560338.100000, 221664.700000 ], [ 560365.300000, 221617.000000 ], [ 560394.300000, 221600.100000 ], [ 560429.200000, 221568.000000 ], [ 560442.400000, 221520.200000 ], [ 560442.400000, 221450.200000 ], [ 560421.600000, 221375.300000 ], [ 560428.000000, 221357.500000 ], [ 560446.200000, 221339.300000 ], [ 560496.400000, 221311.900000 ], [ 560507.300000, 221293.300000 ], [ 560548.500000, 221257.000000 ], [ 560628.900000, 221319.900000 ], [ 560693.900000, 221354.600000 ], [ 560837.100000, 221421.400000 ], [ 561011.900000, 221459.100000 ], [ 561107.600000, 221508.900000 ], [ 561182.400000, 221558.400000 ], [ 561410.100000, 221872.600000 ], [ 561449.900000, 221895.200000 ], [ 561634.900000, 221942.600000 ], [ 561656.200000, 221955.300000 ], [ 561797.900000, 222072.900000 ], [ 561953.600000, 222157.900000 ], [ 562095.100000, 222339.100000 ], [ 562151.600000, 222372.100000 ], [ 562402.600000, 222452.600000 ], [ 562432.600000, 222461.100000 ], [ 562455.900000, 222460.400000 ], [ 562563.600000, 222345.900000 ], [ 562578.600000, 222297.400000 ], [ 562727.400000, 222097.100000 ], [ 562806.600000, 222052.600000 ], [ 562902.100000, 222047.300000 ], [ 562945.100000, 222133.900000 ], [ 562992.400000, 222254.400000 ], [ 563071.600000, 222413.600000 ], [ 563094.600000, 222438.900000 ], [ 563333.600000, 222609.900000 ], [ 563393.100000, 222644.400000 ], [ 563320.400000, 222693.400000 ], [ 563479.900000, 222758.700000 ], [ 563504.600000, 222761.200000 ], [ 563580.100000, 222741.900000 ], [ 563622.900000, 222743.400000 ], [ 563875.100000, 222801.700000 ], [ 563924.800000, 222796.600000 ], [ 563940.300000, 222786.900000 ], [ 563966.300000, 222724.600000 ], [ 564072.000000, 222712.300000 ], [ 564097.600000, 222701.900000 ], [ 564110.100000, 222684.900000 ], [ 564132.600000, 222643.500000 ], [ 564204.000000, 222468.500000 ], [ 564214.900000, 222437.200000 ], [ 564223.500000, 222360.000000 ], [ 564389.900000, 222427.700000 ], [ 564423.900000, 222434.000000 ], [ 564450.600000, 222423.500000 ], [ 564611.600000, 222325.500000 ], [ 564721.600000, 222321.200000 ], [ 564760.400000, 222328.500000 ], [ 564866.100000, 222415.200000 ], [ 564882.400000, 222445.200000 ], [ 564904.283000, 222453.957000 ], [ 564958.260000, 222459.295000 ], [ 564953.894000, 222493.030000 ], [ 564930.479000, 222547.799000 ], [ 564935.900000, 222604.100000 ], [ 564991.400000, 222792.900000 ], [ 565000.900000, 222816.100000 ], [ 565044.969000, 222873.421000 ], [ 565064.832000, 222892.633000 ], [ 565194.700000, 222977.600000 ], [ 565300.700000, 223071.900000 ], [ 565393.100000, 223138.300000 ], [ 565613.700000, 223373.300000 ], [ 565633.400000, 223404.500000 ], [ 565663.700000, 223427.300000 ], [ 565741.800000, 223454.100000 ], [ 565744.100000, 223479.000000 ], [ 565795.900000, 223559.700000 ], [ 565911.000000, 223713.200000 ], [ 565919.600000, 223730.600000 ], [ 565915.500000, 223772.400000 ], [ 565922.700000, 223786.700000 ], [ 565961.100000, 223801.200000 ], [ 566046.077000, 223817.744000 ], [ 565978.160000, 223893.782000 ], [ 565943.764000, 223875.261000 ], [ 565938.473000, 223899.073000 ], [ 565901.431000, 223925.532000 ], [ 565988.744000, 224018.136000 ], [ 566070.765000, 224076.345000 ], [ 566102.515000, 224113.386000 ], [ 566128.973000, 224163.657000 ], [ 566234.688000, 224260.402000 ], [ 566196.774000, 224247.248000 ], [ 566167.074000, 224244.548000 ], [ 566155.274000, 224252.548000 ], [ 566161.174000, 224341.948000 ], [ 566172.774000, 224367.648000 ], [ 566332.800000, 224487.500000 ], [ 566414.600000, 224524.300000 ], [ 566523.700000, 224596.300000 ], [ 566615.600000, 224682.900000 ], [ 566840.200000, 224869.100000 ], [ 566942.000000, 224932.900000 ], [ 566977.000000, 224941.400000 ], [ 567001.300000, 224940.000000 ], [ 567110.000000, 224915.200000 ], [ 567161.700000, 224886.200000 ], [ 567176.700000, 224887.000000 ], [ 567277.000000, 224935.400000 ], [ 567267.600000, 224990.200000 ], [ 567265.600000, 225142.200000 ], [ 567278.400000, 225265.800000 ], [ 567302.500000, 225339.100000 ], [ 567374.300000, 225427.800000 ], [ 567347.800000, 225476.000000 ], [ 567340.500000, 225504.700000 ], [ 567337.900000, 225538.800000 ], [ 567347.400000, 225605.500000 ], [ 567339.100000, 225668.700000 ], [ 567350.200000, 225723.200000 ], [ 567323.400000, 225785.200000 ], [ 567303.500000, 225797.200000 ], [ 567217.800000, 225806.800000 ], [ 567034.700000, 225853.300000 ], [ 566899.600000, 225780.600000 ], [ 566864.500000, 225750.500000 ], [ 566839.000000, 225709.000000 ], [ 566825.800000, 225698.100000 ], [ 566805.900000, 225694.700000 ], [ 566752.900000, 225708.200000 ], [ 566615.100000, 225759.000000 ], [ 566610.700000, 225769.700000 ], [ 566624.100000, 225815.700000 ], [ 566661.700000, 225891.100000 ], [ 566655.600000, 225899.900000 ], [ 566645.300000, 225899.700000 ], [ 566546.900000, 225786.400000 ], [ 566518.100000, 225738.500000 ], [ 566517.800000, 225723.300000 ], [ 566575.300000, 225687.700000 ], [ 566603.100000, 225655.000000 ], [ 566642.000000, 225633.700000 ], [ 566686.260000, 225586.054000 ], [ 566618.900000, 225625.800000 ], [ 566516.400000, 225674.400000 ], [ 566488.900000, 225681.900000 ], [ 566414.100000, 225677.300000 ], [ 566401.100000, 225683.000000 ], [ 566396.200000, 225693.200000 ], [ 566398.200000, 225774.100000 ], [ 566384.400000, 225790.700000 ], [ 566363.800000, 225795.400000 ], [ 566350.700000, 225807.800000 ], [ 566344.700000, 225827.700000 ], [ 566303.200000, 225868.700000 ], [ 566251.300000, 225882.100000 ], [ 566208.200000, 225913.800000 ], [ 566218.100000, 225942.600000 ], [ 566429.000000, 226179.700000 ], [ 566581.000000, 226308.200000 ], [ 566726.800000, 226457.800000 ], [ 566790.900000, 226495.900000 ], [ 566836.600000, 226498.700000 ], [ 566939.300000, 226522.000000 ], [ 566992.700000, 226521.600000 ], [ 567019.400000, 226528.400000 ], [ 567082.900000, 226562.600000 ], [ 567211.600000, 226615.900000 ], [ 567314.307000, 226645.102000 ], [ 567450.400000, 226783.000000 ], [ 567561.200000, 226878.100000 ], [ 567575.100000, 226898.300000 ], [ 567609.400000, 226991.500000 ], [ 567618.900000, 227003.500000 ], [ 567664.400000, 227032.000000 ], [ 567703.500000, 227089.200000 ], [ 567739.500000, 227113.400000 ], [ 567803.500000, 227134.800000 ], [ 567853.900000, 227161.500000 ], [ 567862.800000, 227178.800000 ], [ 567860.600000, 227208.700000 ], [ 567801.400000, 227330.200000 ], [ 567776.900000, 227361.200000 ], [ 567752.600000, 227380.200000 ], [ 567673.700000, 227415.400000 ], [ 567646.300000, 227465.000000 ], [ 567628.600000, 227523.200000 ], [ 567624.600000, 227583.900000 ], [ 567634.000000, 227643.000000 ], [ 567645.900000, 227687.900000 ], [ 567698.400000, 227794.100000 ], [ 567707.600000, 227831.200000 ], [ 567665.031000, 227974.406000 ], [ 567753.800000, 227962.700000 ], [ 567757.542000, 227956.284000 ], [ 567828.800000, 227961.100000 ], [ 567883.100000, 227948.300000 ], [ 568040.800000, 227965.300000 ], [ 568172.100000, 228021.800000 ], [ 568184.600000, 228029.900000 ], [ 568198.900000, 228053.600000 ], [ 568309.800000, 228119.100000 ], [ 568332.800000, 228089.000000 ], [ 568428.600000, 228125.900000 ], [ 568517.400000, 228148.600000 ], [ 568652.400000, 228158.400000 ], [ 568717.900000, 228182.600000 ], [ 568743.600000, 228202.100000 ], [ 568750.800000, 228215.900000 ], [ 568741.900000, 228273.400000 ], [ 568751.100000, 228294.400000 ], [ 568716.900000, 228359.200000 ], [ 568709.200000, 228391.700000 ], [ 568719.000000, 228436.200000 ], [ 568738.400000, 228473.500000 ], [ 568777.600000, 228502.300000 ], [ 568781.300000, 228529.200000 ], [ 568632.400000, 228770.300000 ], [ 568828.846000, 228730.177000 ], [ 569188.600000, 229074.700000 ], [ 569217.900000, 229093.300000 ], [ 569249.771000, 229094.479000 ], [ 569290.600000, 229114.000000 ], [ 569269.100000, 229154.900000 ], [ 569115.900000, 229358.600000 ], [ 569344.500000, 229621.100000 ], [ 569491.400000, 229823.100000 ], [ 569538.300000, 229864.300000 ], [ 569612.100000, 229897.200000 ], [ 569665.800000, 229931.100000 ], [ 569769.600000, 229938.700000 ], [ 569799.500000, 229954.700000 ], [ 569923.200000, 230046.500000 ], [ 570103.700000, 230123.600000 ], [ 570169.200000, 230159.500000 ], [ 570243.800000, 230186.300000 ], [ 570327.300000, 230234.800000 ], [ 570456.000000, 230275.800000 ], [ 570516.800000, 230319.000000 ], [ 570669.700000, 230395.700000 ], [ 570838.650000, 230538.145000 ], [ 570896.200000, 230555.200000 ], [ 571012.500000, 230645.000000 ], [ 571068.700000, 230677.900000 ], [ 571106.900000, 230713.200000 ], [ 571269.200000, 230832.100000 ], [ 571357.500000, 230888.300000 ], [ 572006.400000, 231232.400000 ], [ 572029.300000, 231209.800000 ], [ 572511.700000, 231671.500000 ], [ 572570.300000, 231749.100000 ], [ 572661.700000, 231836.700000 ], [ 572608.100000, 231934.300000 ], [ 572560.100000, 231995.800000 ], [ 572514.100000, 232075.300000 ], [ 572468.800000, 232306.200000 ], [ 572466.400000, 232351.900000 ], [ 572485.400000, 232505.800000 ], [ 572510.700000, 232628.500000 ], [ 572534.100000, 232678.800000 ], [ 572587.900000, 232745.500000 ], [ 572593.500000, 232788.300000 ], [ 572555.400000, 233031.000000 ], [ 572508.700000, 233163.000000 ], [ 572471.500000, 233233.800000 ], [ 572357.300000, 233343.000000 ], [ 572256.900000, 233332.600000 ], [ 572135.200000, 233284.000000 ], [ 572027.200000, 233249.500000 ], [ 571699.200000, 233174.300000 ], [ 571634.500000, 233078.000000 ], [ 571628.700000, 233095.500000 ], [ 571605.500000, 233126.300000 ], [ 571532.600000, 233212.400000 ], [ 571498.600000, 233235.400000 ], [ 571340.100000, 233314.700000 ], [ 571321.400000, 233320.400000 ], [ 571243.400000, 233321.200000 ], [ 571151.400000, 233340.200000 ], [ 571046.100000, 233414.900000 ], [ 570976.400000, 233448.700000 ], [ 570938.900000, 233456.900000 ], [ 570801.600000, 233462.400000 ], [ 570746.600000, 233469.900000 ], [ 570701.400000, 233484.000000 ], [ 570649.300000, 233436.100000 ], [ 570615.000000, 233388.500000 ], [ 570567.800000, 233344.800000 ], [ 570549.900000, 233316.400000 ], [ 570546.300000, 233278.700000 ], [ 570565.600000, 233181.200000 ], [ 570557.600000, 233143.400000 ], [ 570544.600000, 233128.700000 ], [ 570330.900000, 233077.400000 ], [ 570177.400000, 233003.900000 ], [ 570133.400000, 232999.400000 ], [ 570062.400000, 233006.600000 ], [ 569999.900000, 232989.900000 ], [ 569589.100000, 232827.100000 ], [ 569507.900000, 232744.600000 ], [ 569334.600000, 232675.900000 ], [ 569231.300000, 232658.800000 ], [ 569063.600000, 232609.100000 ], [ 569015.100000, 232600.400000 ], [ 568959.900000, 232597.600000 ], [ 568884.300000, 232618.000000 ], [ 568885.387000, 232613.831000 ], [ 568855.841000, 232613.390000 ], [ 568586.900000, 232921.700000 ], [ 568544.200000, 232978.200000 ], [ 568459.200000, 233113.400000 ], [ 568455.000000, 233135.600000 ], [ 568465.100000, 233163.800000 ], [ 568503.800000, 233216.700000 ], [ 568491.500000, 233240.100000 ], [ 568458.800000, 233256.300000 ], [ 568360.400000, 233252.900000 ], [ 568270.900000, 233269.100000 ], [ 568135.600000, 233270.400000 ], [ 568090.400000, 233293.900000 ], [ 567732.667000, 233552.355000 ], [ 567728.600000, 233549.600000 ], [ 567714.100000, 233589.600000 ], [ 567714.600000, 233628.600000 ], [ 567726.600000, 233671.400000 ], [ 567717.500000, 233690.000000 ], [ 567700.600000, 233690.400000 ], [ 567658.800000, 233664.900000 ], [ 567628.100000, 233656.100000 ], [ 567553.800000, 233658.100000 ], [ 567485.400000, 233670.600000 ], [ 567449.100000, 233666.500000 ], [ 567407.900000, 233654.500000 ], [ 567248.200000, 233573.800000 ], [ 567163.400000, 233557.200000 ], [ 567086.000000, 233603.900000 ], [ 567061.993000, 233607.060000 ], [ 566813.900000, 233755.700000 ], [ 566787.500000, 233783.800000 ], [ 566746.300000, 233861.300000 ], [ 566705.200000, 233901.600000 ], [ 566614.000000, 233946.300000 ], [ 566529.800000, 234013.100000 ], [ 566468.100000, 233999.500000 ], [ 566367.300000, 234015.400000 ], [ 566285.200000, 234061.400000 ], [ 566263.500000, 234086.200000 ], [ 566247.300000, 234122.100000 ], [ 566242.800000, 234193.100000 ], [ 566260.858000, 234260.694000 ], [ 566399.400000, 234321.800000 ], [ 566404.400000, 234334.000000 ], [ 566393.900000, 234349.000000 ], [ 566360.100000, 234361.000000 ], [ 566265.100000, 234364.800000 ], [ 566255.000000, 234372.100000 ], [ 566153.700000, 234391.600000 ], [ 566031.661000, 234457.510000 ], [ 566013.200000, 234459.400000 ], [ 565948.700000, 234488.600000 ], [ 565787.200000, 234508.200000 ], [ 565735.300000, 234603.300000 ], [ 565682.600000, 234735.700000 ], [ 565687.600000, 234789.700000 ], [ 565681.800000, 234818.800000 ], [ 565748.000000, 234834.400000 ], [ 565836.700000, 234886.000000 ], [ 565961.400000, 235004.800000 ], [ 566076.200000, 235079.600000 ], [ 566193.300000, 235172.800000 ], [ 566264.000000, 235238.900000 ], [ 566303.600000, 235289.600000 ], [ 566323.400000, 235305.500000 ], [ 566544.300000, 235430.500000 ], [ 566587.700000, 235497.500000 ], [ 566714.800000, 235623.900000 ], [ 566766.000000, 235649.600000 ], [ 566775.200000, 235668.400000 ], [ 566767.400000, 235686.900000 ], [ 566754.600000, 235691.200000 ], [ 566730.900000, 235693.500000 ], [ 566664.400000, 235683.600000 ], [ 566612.400000, 235698.700000 ], [ 566585.200000, 235698.500000 ], [ 566495.400000, 235670.800000 ], [ 566466.000000, 235671.900000 ], [ 566441.800000, 235688.700000 ], [ 566409.500000, 235729.000000 ], [ 566367.900000, 235753.300000 ], [ 566346.200000, 235749.300000 ], [ 566289.000000, 235710.500000 ], [ 566273.300000, 235687.200000 ], [ 566250.500000, 235670.900000 ], [ 566168.300000, 235712.600000 ], [ 566147.200000, 235738.500000 ], [ 566101.300000, 235773.200000 ], [ 566056.800000, 235784.900000 ], [ 565922.400000, 235760.200000 ], [ 565856.900000, 235726.700000 ], [ 565811.100000, 235719.700000 ], [ 565763.100000, 235725.700000 ], [ 565836.700000, 235766.900000 ], [ 565918.200000, 235798.900000 ], [ 565944.700000, 235821.400000 ], [ 566010.500000, 235901.000000 ], [ 566041.200000, 235907.900000 ], [ 566098.500000, 235891.500000 ], [ 566109.794000, 235895.165000 ], [ 566118.700000, 235922.400000 ], [ 566093.400000, 235956.900000 ], [ 565972.000000, 236004.300000 ], [ 565965.500000, 236019.300000 ], [ 565979.200000, 236037.500000 ], [ 566019.700000, 236032.900000 ], [ 566049.700000, 236038.300000 ], [ 566168.000000, 236065.800000 ], [ 566237.200000, 236089.300000 ], [ 566273.200000, 236120.500000 ], [ 566293.100000, 236162.600000 ], [ 566413.500000, 236280.500000 ], [ 566587.200000, 236406.800000 ], [ 566658.700000, 236439.700000 ], [ 566767.000000, 236466.100000 ], [ 566857.400000, 236480.300000 ], [ 566944.500000, 236505.100000 ], [ 566969.400000, 236515.100000 ], [ 567065.500000, 236579.200000 ], [ 567121.800000, 236656.800000 ], [ 567150.300000, 236719.700000 ], [ 567152.200000, 236822.300000 ], [ 567172.700000, 236884.700000 ], [ 567204.900000, 236934.800000 ], [ 567235.100000, 236953.700000 ], [ 567291.100000, 236969.100000 ], [ 567381.700000, 236975.100000 ], [ 567434.400000, 237002.900000 ], [ 567506.600000, 237023.700000 ], [ 567677.700000, 237132.900000 ], [ 567758.400000, 237172.900000 ], [ 567827.200000, 237216.900000 ], [ 567843.200000, 237223.400000 ], [ 567931.300000, 237226.900000 ], [ 568042.300000, 237270.900000 ], [ 568155.000000, 237328.400000 ], [ 568285.000000, 237385.100000 ], [ 568410.500000, 237426.600000 ], [ 568588.900000, 237539.400000 ], [ 569272.200000, 237827.100000 ], [ 569428.900000, 237844.100000 ], [ 569497.870000, 237857.707000 ], [ 569592.600000, 237758.800000 ], [ 569651.500000, 237708.100000 ], [ 569750.700000, 237641.600000 ], [ 569853.700000, 237551.100000 ], [ 569934.900000, 237516.400000 ], [ 569983.700000, 237509.100000 ], [ 570072.400000, 237512.900000 ], [ 570242.800000, 237550.100000 ], [ 570291.000000, 237567.400000 ], [ 570474.500000, 237662.600000 ], [ 570520.300000, 237768.900000 ], [ 570544.700000, 237862.200000 ], [ 570579.800000, 237879.400000 ], [ 571048.300000, 238013.100000 ], [ 571212.000000, 238085.600000 ], [ 571420.400000, 238226.000000 ], [ 571570.900000, 238249.800000 ], [ 571606.900000, 238243.000000 ], [ 571627.400000, 238245.500000 ], [ 571670.700000, 238271.300000 ], [ 571790.400000, 238298.000000 ], [ 571953.800000, 238373.800000 ], [ 572010.700000, 238411.700000 ], [ 572132.700000, 238451.300000 ], [ 572164.600000, 238467.100000 ], [ 572249.300000, 238535.600000 ], [ 572393.500000, 238636.400000 ], [ 572436.200000, 238654.500000 ], [ 572471.400000, 238697.500000 ], [ 572590.100000, 238746.500000 ], [ 572644.900000, 238754.000000 ], [ 572720.066000, 238794.484000 ], [ 572688.700000, 238835.700000 ], [ 572782.500000, 238863.600000 ], [ 572986.800000, 238872.100000 ], [ 572956.300000, 238968.000000 ], [ 572940.500000, 239086.300000 ], [ 572943.800000, 239104.300000 ], [ 572965.000000, 239129.000000 ], [ 573026.300000, 239156.300000 ], [ 573157.500000, 239198.300000 ], [ 573210.300000, 239227.300000 ], [ 573317.800000, 239271.300000 ], [ 573456.800000, 239313.300000 ], [ 573463.500000, 239322.300000 ], [ 573332.000000, 239406.300000 ], [ 573276.000000, 239419.300000 ], [ 573128.000000, 239413.000000 ], [ 572815.800000, 239363.000000 ], [ 572799.800000, 239367.800000 ], [ 572802.500000, 239379.500000 ], [ 572916.300000, 239432.300000 ], [ 573395.300000, 239601.500000 ], [ 573396.500000, 239617.300000 ], [ 573403.800000, 239623.000000 ], [ 573450.000000, 239632.000000 ], [ 573515.800000, 239659.500000 ], [ 573662.800000, 239701.500000 ], [ 573744.500000, 239712.500000 ], [ 573821.000000, 239760.000000 ], [ 573864.000000, 239767.800000 ], [ 573877.000000, 239787.600000 ], [ 573861.500000, 239802.800000 ], [ 573745.000000, 239814.500000 ], [ 573701.800000, 239809.800000 ], [ 573696.500000, 239819.300000 ], [ 573714.300000, 239839.000000 ], [ 573741.300000, 239834.400000 ], [ 573803.800000, 239839.600000 ], [ 573807.000000, 239890.600000 ], [ 573853.000000, 239893.300000 ], [ 573882.500000, 239957.900000 ], [ 573936.000000, 240004.400000 ], [ 573989.300000, 240026.900000 ], [ 574058.800000, 240038.900000 ], [ 574145.300000, 240028.900000 ], [ 574293.000000, 239991.600000 ], [ 574432.200000, 239997.400000 ], [ 574535.200000, 240026.600000 ], [ 574711.700000, 240126.600000 ], [ 574785.700000, 240154.600000 ], [ 574902.400000, 240157.600000 ], [ 574976.400000, 240190.600000 ], [ 575018.200000, 240196.400000 ], [ 575093.200000, 240186.700000 ], [ 575137.700000, 240146.200000 ], [ 575148.400000, 240143.700000 ], [ 575304.200000, 240197.700000 ], [ 575415.200000, 240274.500000 ], [ 575474.700000, 240297.500000 ], [ 575518.800000, 240345.600000 ], [ 575521.700000, 240365.000000 ], [ 575514.200000, 240403.700000 ], [ 575549.400000, 240442.700000 ], [ 575557.700000, 240534.700000 ], [ 575577.400000, 240608.700000 ], [ 575570.700000, 240665.700000 ], [ 575574.700000, 240691.000000 ], [ 575614.400000, 240752.000000 ], [ 575678.400000, 240827.500000 ], [ 575706.900000, 240891.500000 ], [ 575738.400000, 240932.700000 ], [ 575776.200000, 241000.700000 ], [ 575803.400000, 241148.000000 ], [ 575819.200000, 241283.500000 ], [ 575808.700000, 241283.700000 ], [ 575705.200000, 241188.200000 ], [ 575568.900000, 241087.200000 ], [ 575527.200000, 241067.000000 ], [ 575458.300000, 241046.400000 ], [ 575392.000000, 241006.100000 ], [ 575377.300000, 241009.600000 ], [ 575354.542000, 241035.100000 ], [ 575334.300000, 241046.400000 ], [ 575305.800000, 241048.400000 ], [ 575209.300000, 241033.000000 ], [ 575197.500000, 241040.600000 ], [ 575161.729000, 241106.114000 ], [ 575224.300000, 241142.400000 ], [ 575274.500000, 241161.900000 ], [ 575325.000000, 241164.100000 ], [ 575361.300000, 241156.400000 ], [ 575381.800000, 241160.900000 ], [ 575430.500000, 241185.100000 ], [ 575484.000000, 241226.100000 ], [ 575521.800000, 241290.600000 ], [ 575552.500000, 241373.900000 ], [ 575607.800000, 241488.600000 ], [ 575650.000000, 241521.100000 ], [ 575901.300000, 241616.400000 ], [ 575984.500000, 241624.400000 ], [ 576047.300000, 241643.400000 ], [ 576143.300000, 241635.100000 ], [ 576149.300000, 241645.400000 ], [ 576160.800000, 241751.400000 ], [ 576180.800000, 241791.400000 ], [ 576218.300000, 241827.100000 ], [ 576386.300000, 241948.400000 ], [ 576537.000000, 241988.100000 ], [ 576699.700000, 242005.400000 ], [ 576873.000000, 242003.600000 ], [ 576919.700000, 242013.100000 ], [ 576946.000000, 242025.800000 ], [ 577025.200000, 242101.300000 ], [ 577054.400000, 242160.900000 ], [ 577073.700000, 242240.100000 ], [ 577076.700000, 242344.600000 ], [ 577028.900000, 242570.700000 ], [ 577027.700000, 242641.400000 ], [ 577042.400000, 242724.600000 ], [ 577072.900000, 242765.800000 ], [ 577119.400000, 242773.100000 ], [ 577196.600000, 242768.600000 ], [ 577345.000000, 242720.000000 ], [ 577406.200000, 242688.100000 ], [ 577447.400000, 242632.300000 ], [ 577547.900000, 242564.100000 ], [ 577711.500000, 242495.300000 ], [ 577813.500000, 242463.800000 ], [ 577880.200000, 242461.600000 ], [ 578117.400000, 242485.300000 ], [ 578223.600000, 242529.800000 ], [ 578318.600000, 242619.500000 ], [ 578416.200000, 242748.800000 ], [ 578496.600000, 242828.700000 ], [ 578528.700000, 242870.400000 ], [ 578583.200000, 243000.000000 ], [ 578628.200000, 243067.300000 ], [ 578711.200000, 243247.100000 ], [ 578740.900000, 243340.300000 ], [ 578746.700000, 243439.300000 ], [ 578767.200000, 243557.000000 ], [ 578758.700000, 243680.600000 ], [ 578766.400000, 243755.600000 ], [ 578780.800000, 243809.600000 ], [ 578803.500000, 243860.000000 ], [ 578883.200000, 243978.600000 ], [ 578922.900000, 244018.800000 ], [ 579049.400000, 244090.300000 ], [ 579121.200000, 244152.800000 ], [ 579144.700000, 244164.600000 ], [ 579225.900000, 244180.600000 ], [ 579320.100000, 244209.100000 ], [ 579454.700000, 244211.900000 ], [ 579609.500000, 244243.300000 ], [ 579624.100000, 244254.000000 ], [ 579671.200000, 244326.800000 ], [ 579796.400000, 244423.300000 ], [ 579886.400000, 244484.100000 ], [ 579915.600000, 244517.100000 ], [ 579919.900000, 244549.600000 ], [ 579860.100000, 244627.800000 ], [ 579832.200000, 244692.000000 ], [ 579824.800000, 244785.700000 ], [ 579849.300000, 244877.200000 ], [ 579801.000000, 244819.500000 ], [ 579728.000000, 244772.000000 ], [ 579704.100000, 244734.400000 ], [ 579699.400000, 244738.700000 ], [ 579714.100000, 244785.700000 ], [ 579708.600000, 244934.200000 ], [ 579712.400000, 244973.700000 ], [ 579732.100000, 245011.900000 ], [ 579775.900000, 245058.700000 ], [ 579787.400000, 245079.200000 ], [ 579790.900000, 245121.900000 ], [ 579784.400000, 245192.200000 ], [ 579726.300000, 245344.000000 ], [ 579650.800000, 245482.200000 ], [ 579643.800000, 245525.000000 ], [ 579589.300000, 245648.200000 ], [ 579571.600000, 245704.700000 ], [ 579492.800000, 245806.500000 ], [ 579430.200000, 245943.500000 ], [ 579372.100000, 246051.400000 ], [ 579320.304000, 246096.663000 ], [ 579290.900000, 246099.100000 ], [ 579247.900000, 246124.900000 ], [ 579193.600000, 246144.900000 ], [ 579130.751000, 246145.958000 ], [ 578949.400000, 246076.200000 ], [ 578663.900000, 245985.900000 ], [ 578581.775000, 245924.817000 ] ], [ [ 579593.000000, 246308.500000 ], [ 579358.600000, 246380.100000 ], [ 579308.336000, 246357.276000 ], [ 579203.600000, 246370.100000 ], [ 579163.600000, 246364.200000 ], [ 579066.744000, 246325.102000 ], [ 579017.000000, 246313.100000 ], [ 578945.300000, 246312.800000 ], [ 578755.400000, 246267.800000 ], [ 578714.300000, 246248.800000 ], [ 578677.400000, 246214.300000 ], [ 578674.384000, 246191.247000 ], [ 578543.500000, 246083.100000 ], [ 578509.897000, 246019.667000 ], [ 578498.951000, 246015.638000 ], [ 578523.616000, 245977.381000 ], [ 578581.775000, 245924.817000 ] ], [ [ 519207.300000, 174343.800000 ], [ 519380.700000, 174408.200000 ], [ 519440.100000, 174438.500000 ], [ 519533.700000, 174514.800000 ], [ 519551.700000, 174542.900000 ], [ 519553.800000, 174556.900000 ], [ 519547.700000, 174573.400000 ], [ 519523.700000, 174601.800000 ], [ 519535.900000, 174667.600000 ], [ 519534.400000, 174678.400000 ], [ 519517.200000, 174690.000000 ], [ 519540.400000, 174792.700000 ], [ 519647.300000, 174947.500000 ], [ 519755.700000, 175052.400000 ], [ 519872.200000, 175153.500000 ], [ 519883.900000, 175171.900000 ], [ 519876.900000, 175227.500000 ], [ 519883.900000, 175258.800000 ], [ 519910.000000, 175293.200000 ], [ 519996.200000, 175353.300000 ], [ 520017.900000, 175378.000000 ], [ 520032.600000, 175427.700000 ], [ 520034.200000, 175490.300000 ], [ 520041.500000, 175513.700000 ], [ 520034.400000, 175524.400000 ], [ 520062.900000, 175553.700000 ], [ 520121.300000, 175593.100000 ], [ 520104.200000, 175621.100000 ], [ 520156.000000, 175597.500000 ], [ 520155.000000, 175627.500000 ], [ 520117.100000, 175702.100000 ], [ 520150.300000, 175680.300000 ], [ 520131.400000, 175706.000000 ], [ 520155.900000, 175728.500000 ], [ 520147.600000, 175742.300000 ], [ 520140.000000, 175783.300000 ], [ 520107.300000, 175813.700000 ], [ 520096.300000, 175833.200000 ], [ 520041.900000, 175962.600000 ], [ 520003.700000, 176077.400000 ], [ 519936.700000, 176196.400000 ], [ 519908.300000, 176279.600000 ], [ 519915.500000, 176312.500000 ], [ 519972.800000, 176351.100000 ], [ 519966.600000, 176305.700000 ], [ 519973.900000, 176281.400000 ], [ 520002.200000, 176251.300000 ], [ 520135.900000, 176171.000000 ], [ 520246.300000, 176090.700000 ], [ 520306.800000, 176066.000000 ], [ 520383.200000, 176004.300000 ], [ 520449.200000, 175977.200000 ], [ 520501.200000, 175979.700000 ], [ 520524.300000, 176044.800000 ], [ 520530.100000, 176079.900000 ], [ 520554.700000, 176123.400000 ], [ 520630.700000, 176124.400000 ], [ 520697.200000, 176115.600000 ], [ 520733.500000, 176131.100000 ], [ 520730.700000, 176138.600000 ], [ 520740.800000, 176154.800000 ], [ 520768.100000, 176160.800000 ], [ 520804.100000, 176182.700000 ], [ 520763.800000, 176263.300000 ], [ 520742.900000, 176386.500000 ], [ 520688.700000, 176480.000000 ], [ 520680.600000, 176516.300000 ], [ 520661.900000, 176553.700000 ], [ 520674.600000, 176586.600000 ], [ 520680.200000, 176630.500000 ], [ 520776.800000, 176730.100000 ], [ 520740.700000, 176817.800000 ], [ 520731.800000, 176873.000000 ], [ 520731.300000, 176918.800000 ], [ 520760.700000, 176978.500000 ], [ 520762.000000, 177003.700000 ], [ 520744.400000, 177067.400000 ], [ 520723.200000, 177105.100000 ], [ 520685.600000, 177138.900000 ], [ 520665.800000, 177147.900000 ], [ 520565.900000, 177165.000000 ], [ 520532.900000, 177166.700000 ], [ 520428.200000, 177151.000000 ], [ 520342.600000, 177148.700000 ], [ 520280.700000, 177164.900000 ], [ 520256.800000, 177176.000000 ], [ 520171.200000, 177239.100000 ], [ 520111.200000, 177267.500000 ], [ 519881.600000, 177342.400000 ], [ 519860.400000, 177362.100000 ], [ 519854.800000, 177379.100000 ], [ 519857.500000, 177411.100000 ], [ 519867.100000, 177427.300000 ], [ 519969.300000, 177444.200000 ], [ 520114.400000, 177433.400000 ], [ 520233.900000, 177466.900000 ], [ 520384.700000, 177489.700000 ], [ 520483.700000, 177512.500000 ], [ 520625.400000, 177565.400000 ], [ 520655.600000, 177583.400000 ], [ 520719.400000, 177660.300000 ], [ 520726.700000, 177681.100000 ], [ 520686.500000, 177830.800000 ], [ 520689.800000, 177875.400000 ], [ 520725.000000, 177909.300000 ], [ 520762.200000, 177921.000000 ], [ 520830.700000, 177925.700000 ], [ 520969.400000, 177920.000000 ], [ 520995.100000, 177927.900000 ], [ 521040.100000, 177964.900000 ], [ 521122.100000, 178009.700000 ], [ 521273.500000, 178048.300000 ], [ 521339.900000, 178045.500000 ], [ 521389.800000, 178036.200000 ], [ 521494.100000, 177996.000000 ], [ 521578.200000, 177981.300000 ], [ 521621.000000, 177977.900000 ], [ 521690.600000, 177986.700000 ], [ 521728.300000, 177984.600000 ], [ 521782.000000, 177964.200000 ], [ 521870.600000, 177960.300000 ], [ 521903.300000, 177964.500000 ], [ 521922.100000, 177977.900000 ], [ 521900.600000, 177994.500000 ], [ 521893.600000, 178023.900000 ], [ 521909.200000, 178055.600000 ], [ 521930.000000, 178193.600000 ], [ 521940.600000, 178204.500000 ], [ 521992.600000, 178225.700000 ], [ 521998.300000, 178233.300000 ], [ 522000.400000, 178270.500000 ], [ 521986.900000, 178318.600000 ], [ 521964.600000, 178349.400000 ], [ 521981.400000, 178377.900000 ], [ 522023.000000, 178404.800000 ], [ 522052.400000, 178477.000000 ], [ 522152.800000, 178480.400000 ], [ 522205.100000, 178520.800000 ], [ 522211.467000, 178520.272000 ], [ 522226.400000, 178493.400000 ], [ 522240.800000, 178483.500000 ], [ 522274.000000, 178526.900000 ], [ 522293.000000, 178537.800000 ], [ 522360.300000, 178532.200000 ], [ 522418.700000, 178549.100000 ], [ 522452.800000, 178537.800000 ], [ 522556.400000, 178459.400000 ], [ 522613.100000, 178449.000000 ], [ 522682.000000, 178453.200000 ], [ 522736.400000, 178491.900000 ], [ 522805.600000, 178560.200000 ], [ 522840.900000, 178586.600000 ], [ 522869.400000, 178596.000000 ], [ 522940.200000, 178604.900000 ], [ 522954.800000, 178614.400000 ], [ 522971.800000, 178641.100000 ], [ 523040.200000, 178655.500000 ], [ 523079.100000, 178673.400000 ], [ 523098.400000, 178691.900000 ], [ 523102.700000, 178723.100000 ], [ 523162.800000, 178785.900000 ], [ 523247.400000, 178801.300000 ], [ 523360.100000, 178846.100000 ], [ 523371.500000, 178860.000000 ], [ 523383.300000, 178923.400000 ], [ 523447.000000, 178994.900000 ], [ 523524.300000, 178974.200000 ], [ 523540.600000, 178965.100000 ], [ 523553.800000, 178939.600000 ], [ 523573.000000, 178927.600000 ], [ 523607.900000, 178925.600000 ], [ 523645.700000, 178932.400000 ], [ 523716.700000, 178905.200000 ], [ 523777.300000, 178909.000000 ], [ 523830.100000, 178936.700000 ], [ 523865.500000, 178986.000000 ], [ 523959.000000, 179001.800000 ], [ 523963.500000, 179028.300000 ], [ 523952.900000, 179087.800000 ], [ 523962.000000, 179107.400000 ], [ 523976.300000, 179113.400000 ], [ 524002.800000, 179112.600000 ], [ 524077.800000, 179060.500000 ], [ 524112.800000, 179075.600000 ], [ 524150.200000, 179119.300000 ], [ 524192.400000, 179150.300000 ], [ 524196.800000, 179187.600000 ], [ 524178.900000, 179225.900000 ], [ 524180.100000, 179246.700000 ], [ 524195.900000, 179274.200000 ], [ 524236.500000, 179275.500000 ], [ 524249.300000, 179266.700000 ], [ 524249.000000, 179165.500000 ], [ 524270.800000, 179149.000000 ], [ 524338.100000, 179117.400000 ], [ 524383.300000, 179289.900000 ], [ 524422.700000, 179338.800000 ], [ 524459.300000, 179365.600000 ], [ 524488.300000, 179383.000000 ], [ 524548.300000, 179399.200000 ], [ 524626.300000, 179385.000000 ], [ 524717.000000, 179390.500000 ], [ 524733.500000, 179398.300000 ], [ 524742.700000, 179574.400000 ], [ 524736.100000, 179634.300000 ], [ 524757.000000, 179726.000000 ], [ 524883.100000, 179953.600000 ], [ 524901.900000, 180021.400000 ], [ 525013.000000, 180205.700000 ], [ 525072.400000, 180368.400000 ], [ 525134.100000, 180447.400000 ], [ 525169.400000, 180511.400000 ], [ 525172.000000, 180532.400000 ], [ 525131.100000, 180620.600000 ], [ 525130.600000, 180654.500000 ], [ 525164.900000, 180763.400000 ], [ 525182.900000, 180795.400000 ], [ 525185.500000, 180824.900000 ], [ 525283.900000, 180859.400000 ], [ 525381.900000, 180927.900000 ], [ 525515.200000, 181007.800000 ], [ 525938.700000, 181322.700000 ], [ 526032.400000, 181464.700000 ], [ 526042.700000, 181490.200000 ], [ 526097.200000, 181562.300000 ], [ 526192.400000, 181651.900000 ], [ 526221.500000, 181709.300000 ], [ 526292.800000, 181788.100000 ], [ 526387.100000, 181838.400000 ], [ 526479.000000, 181916.100000 ], [ 526511.855000, 181969.779000 ], [ 526578.069000, 182018.669000 ], [ 526655.700000, 182056.500000 ], [ 526833.400000, 182167.600000 ], [ 526910.300000, 182243.200000 ], [ 526968.300000, 182317.900000 ], [ 526987.000000, 182331.100000 ], [ 527019.800000, 182341.800000 ], [ 527139.000000, 182355.200000 ], [ 527229.600000, 182402.500000 ], [ 527346.500000, 182415.800000 ], [ 527385.900000, 182409.800000 ], [ 527425.200000, 182411.900000 ], [ 527456.900000, 182424.200000 ], [ 527594.900000, 182494.500000 ], [ 527649.500000, 182530.800000 ], [ 527699.200000, 182551.200000 ], [ 527890.900000, 182697.700000 ], [ 527947.600000, 182731.500000 ], [ 528134.100000, 182907.000000 ], [ 528149.300000, 182930.400000 ], [ 528164.100000, 182970.000000 ], [ 528168.500000, 183062.400000 ], [ 528192.200000, 183135.600000 ], [ 528172.700000, 183145.100000 ], [ 528170.200000, 183152.400000 ], [ 528178.200000, 183183.400000 ], [ 528261.100000, 183236.000000 ], [ 528272.400000, 183248.800000 ], [ 528295.700000, 183286.300000 ], [ 528359.600000, 183356.500000 ], [ 528396.900000, 183416.400000 ], [ 528486.000000, 183524.100000 ], [ 528522.800000, 183591.100000 ], [ 528537.600000, 183603.500000 ], [ 528637.200000, 183612.000000 ], [ 528883.500000, 183693.500000 ], [ 528943.800000, 183689.900000 ], [ 528997.600000, 183696.400000 ], [ 529057.400000, 183715.400000 ], [ 529112.700000, 183721.400000 ], [ 529166.200000, 183744.200000 ], [ 529227.100000, 183742.400000 ], [ 529270.500000, 183748.700000 ], [ 529351.300000, 183780.000000 ], [ 529441.900000, 183763.700000 ], [ 529479.000000, 183748.000000 ], [ 529544.300000, 183738.200000 ], [ 529636.600000, 183711.000000 ], [ 529729.100000, 183696.400000 ], [ 529914.700000, 183649.600000 ], [ 530075.400000, 183591.300000 ], [ 530098.500000, 183579.400000 ], [ 530101.400000, 183564.200000 ], [ 530129.300000, 183533.700000 ], [ 530199.300000, 183505.200000 ], [ 530212.300000, 183505.700000 ], [ 530233.200000, 183553.800000 ], [ 530311.100000, 183656.200000 ], [ 530329.900000, 183693.100000 ], [ 530333.500000, 183709.400000 ], [ 530318.600000, 183768.800000 ], [ 530325.500000, 183840.900000 ], [ 530396.800000, 183918.600000 ], [ 530402.800000, 183932.500000 ], [ 530400.900000, 183954.400000 ], [ 530453.200000, 184031.900000 ], [ 530534.500000, 184095.600000 ], [ 530557.500000, 184121.500000 ], [ 530565.400000, 184171.900000 ], [ 530601.000000, 184220.700000 ], [ 530629.100000, 184247.400000 ], [ 530691.600000, 184268.300000 ], [ 530713.500000, 184282.600000 ], [ 530747.900000, 184321.700000 ], [ 530778.100000, 184371.400000 ], [ 530859.500000, 184526.800000 ], [ 530859.000000, 184548.100000 ], [ 530829.500000, 184602.600000 ], [ 530816.500000, 184619.100000 ], [ 530692.800000, 184697.600000 ], [ 530643.200000, 184774.800000 ], [ 530628.000000, 184812.000000 ], [ 530622.000000, 184849.800000 ], [ 530570.600000, 184911.300000 ], [ 530468.300000, 184987.100000 ], [ 530359.700000, 185048.900000 ], [ 530310.800000, 185058.700000 ], [ 530233.400000, 185062.200000 ], [ 530164.500000, 185038.400000 ], [ 530051.400000, 185021.500000 ], [ 529976.700000, 184988.500000 ], [ 529867.500000, 184961.100000 ], [ 529850.600000, 184951.800000 ], [ 529837.500000, 184933.500000 ], [ 529771.100000, 184889.600000 ], [ 529664.300000, 184832.600000 ], [ 529454.300000, 184768.500000 ], [ 529417.000000, 184763.700000 ], [ 529179.400000, 184760.100000 ], [ 529141.600000, 184747.600000 ], [ 529046.700000, 184778.400000 ], [ 528721.100000, 184835.100000 ], [ 528627.100000, 184883.300000 ], [ 528579.400000, 184918.900000 ], [ 528559.000000, 184949.100000 ], [ 528543.500000, 184998.400000 ], [ 528534.500000, 185067.700000 ], [ 528540.700000, 185178.400000 ], [ 528520.700000, 185258.700000 ], [ 528524.500000, 185267.200000 ], [ 528515.400000, 185348.200000 ], [ 528486.200000, 185436.300000 ], [ 528376.700000, 185415.000000 ], [ 528346.000000, 185416.900000 ], [ 528441.000000, 185607.200000 ], [ 528499.021000, 185794.594000 ], [ 528521.846000, 185842.095000 ] ], [ [ 519207.300000, 174343.800000 ], [ 519184.900000, 174307.600000 ], [ 519130.200000, 174252.300000 ], [ 519069.200000, 174165.800000 ], [ 519069.900000, 174132.800000 ], [ 519123.100000, 174070.500000 ], [ 519000.700000, 174005.700000 ], [ 518973.600000, 173972.600000 ], [ 519013.200000, 173922.200000 ], [ 519023.800000, 173894.700000 ], [ 519021.500000, 173844.900000 ], [ 519001.500000, 173756.700000 ], [ 518967.800000, 173712.400000 ], [ 518870.900000, 173669.500000 ], [ 518768.500000, 173644.300000 ], [ 518701.500000, 173607.000000 ], [ 518651.300000, 173564.900000 ], [ 518499.100000, 173466.900000 ], [ 518430.300000, 173433.900000 ], [ 518057.500000, 173344.900000 ], [ 518011.900000, 173342.500000 ], [ 517975.300000, 173329.700000 ], [ 517916.600000, 173295.200000 ], [ 517782.800000, 173187.400000 ], [ 517624.900000, 173094.200000 ], [ 517615.700000, 173056.600000 ], [ 517669.000000, 172952.000000 ], [ 517678.300000, 172802.500000 ], [ 517671.300000, 172771.100000 ], [ 517623.600000, 172725.100000 ], [ 517572.900000, 172686.900000 ], [ 517521.100000, 172658.200000 ], [ 517500.300000, 172630.200000 ], [ 517476.500000, 172616.200000 ], [ 517417.800000, 172589.600000 ], [ 517384.800000, 172618.400000 ], [ 517374.000000, 172614.200000 ], [ 517328.000000, 172559.200000 ], [ 517257.600000, 172451.200000 ], [ 517192.500000, 172385.300000 ], [ 517151.000000, 172307.700000 ], [ 517142.400000, 172229.400000 ], [ 517109.400000, 172179.800000 ], [ 517105.500000, 172144.300000 ], [ 517116.600000, 172137.300000 ], [ 517136.600000, 172038.000000 ], [ 517135.000000, 171995.100000 ], [ 517125.400000, 171975.800000 ], [ 517033.700000, 171896.900000 ], [ 517010.500000, 171887.200000 ], [ 516957.000000, 171890.300000 ], [ 516854.000000, 171825.300000 ], [ 516817.200000, 171818.100000 ], [ 516699.900000, 171677.100000 ], [ 516665.300000, 171655.200000 ], [ 516641.900000, 171630.000000 ], [ 516561.800000, 171584.900000 ], [ 516509.900000, 171546.600000 ], [ 516449.400000, 171529.700000 ], [ 516364.900000, 171529.400000 ], [ 516289.400000, 171454.800000 ], [ 516202.000000, 171403.300000 ], [ 516170.300000, 171366.100000 ], [ 516140.200000, 171283.100000 ], [ 516124.600000, 171162.400000 ], [ 516059.900000, 171016.000000 ], [ 516049.100000, 170977.000000 ], [ 516041.700000, 170817.900000 ], [ 516017.300000, 170726.100000 ], [ 516012.100000, 170645.000000 ], [ 515998.400000, 170566.500000 ], [ 515918.100000, 170407.800000 ], [ 515914.400000, 170339.500000 ], [ 515896.900000, 170261.900000 ], [ 515903.400000, 170202.300000 ], [ 515898.500000, 170179.400000 ], [ 515860.100000, 170090.100000 ], [ 515834.600000, 170000.000000 ], [ 515812.300000, 169951.400000 ], [ 515787.100000, 169821.400000 ], [ 515746.200000, 169733.600000 ], [ 515747.300000, 169708.800000 ], [ 515764.000000, 169675.000000 ], [ 515792.600000, 169477.900000 ], [ 515789.800000, 169418.900000 ], [ 515740.400000, 169306.600000 ], [ 515722.300000, 169163.600000 ], [ 515678.000000, 169070.600000 ], [ 515660.300000, 168931.700000 ], [ 515646.200000, 168891.300000 ], [ 515620.300000, 168846.100000 ], [ 515592.500000, 168835.100000 ], [ 515475.100000, 168861.300000 ], [ 515452.800000, 168892.100000 ], [ 515447.300000, 168921.100000 ], [ 515432.600000, 168949.300000 ], [ 515415.900000, 168960.100000 ], [ 515374.900000, 168957.600000 ], [ 515305.000000, 168907.800000 ], [ 515305.300000, 168898.600000 ], [ 515232.900000, 168881.200000 ], [ 515202.600000, 168931.600000 ], [ 515137.300000, 169009.600000 ], [ 515052.500000, 169075.300000 ], [ 515000.000000, 169103.000000 ], [ 514931.900000, 169126.200000 ], [ 514853.000000, 169143.800000 ], [ 514819.200000, 169140.100000 ], [ 514712.400000, 169041.300000 ], [ 514706.700000, 169022.600000 ], [ 514708.600000, 168964.400000 ], [ 514666.100000, 168883.800000 ], [ 514628.000000, 168857.600000 ], [ 514434.900000, 168783.200000 ], [ 514374.900000, 168783.200000 ], [ 514337.400000, 168792.400000 ], [ 514293.600000, 168787.200000 ], [ 514267.400000, 168776.000000 ], [ 514261.100000, 168764.700000 ], [ 514263.000000, 168734.300000 ], [ 514226.300000, 168708.600000 ], [ 514183.900000, 168702.800000 ], [ 514174.600000, 168687.500000 ], [ 514187.500000, 168681.700000 ], [ 514199.300000, 168664.800000 ], [ 514200.400000, 168650.900000 ], [ 514145.800000, 168607.800000 ], [ 514107.800000, 168550.700000 ], [ 514066.000000, 168503.100000 ], [ 514040.200000, 168440.500000 ], [ 514027.400000, 168426.500000 ], [ 513935.600000, 168356.700000 ], [ 513889.400000, 168335.500000 ], [ 513850.600000, 168268.500000 ], [ 513659.400000, 168129.000000 ], [ 513579.900000, 168061.500000 ], [ 513552.000000, 168021.800000 ], [ 513447.900000, 167962.700000 ], [ 513329.900000, 167877.900000 ], [ 513283.600000, 167809.600000 ], [ 513252.100000, 167791.100000 ], [ 513211.100000, 167787.900000 ], [ 513184.900000, 167771.600000 ], [ 512956.900000, 167582.100000 ], [ 512877.100000, 167547.900000 ], [ 512829.100000, 167511.900000 ], [ 512677.100000, 167423.100000 ], [ 512577.600000, 167354.900000 ], [ 512461.100000, 167297.400000 ], [ 512275.900000, 167175.900000 ], [ 512081.900000, 167065.600000 ], [ 512035.600000, 166988.600000 ], [ 511951.600000, 166912.600000 ], [ 511920.600000, 166891.100000 ], [ 511898.100000, 166883.400000 ], [ 511820.900000, 166884.900000 ], [ 511799.900000, 166878.400000 ], [ 511689.100000, 166800.600000 ], [ 511607.100000, 166734.100000 ], [ 511558.400000, 166671.400000 ], [ 511476.100000, 166600.100000 ], [ 511458.100000, 166610.400000 ], [ 511438.400000, 166635.600000 ], [ 511440.400000, 166647.900000 ], [ 511488.400000, 166700.900000 ], [ 511521.100000, 166763.600000 ], [ 511615.900000, 166851.600000 ], [ 511615.900000, 166867.400000 ], [ 511590.474000, 166891.651000 ], [ 511573.900000, 166893.200000 ], [ 511501.100000, 166845.400000 ], [ 511427.900000, 166806.900000 ], [ 511391.600000, 166802.900000 ], [ 511360.100000, 166829.300000 ], [ 511319.000000, 166800.400000 ], [ 511256.900000, 166739.700000 ], [ 511223.200000, 166667.200000 ], [ 511149.700000, 166580.500000 ], [ 511113.100000, 166491.400000 ], [ 511080.800000, 166435.700000 ], [ 511010.600000, 166343.600000 ], [ 510767.500000, 166175.800000 ], [ 510596.200000, 166038.500000 ], [ 510430.200000, 165923.000000 ], [ 510283.700000, 165773.000000 ], [ 510275.700000, 165742.500000 ], [ 510272.000000, 165681.200000 ], [ 510260.000000, 165657.000000 ], [ 510169.000000, 165591.700000 ], [ 510067.000000, 165495.000000 ], [ 510011.200000, 165424.700000 ], [ 509977.000000, 165368.500000 ], [ 509865.500000, 165245.000000 ], [ 509845.500000, 165182.000000 ], [ 509826.000000, 165160.000000 ], [ 509687.500000, 165023.700000 ], [ 509564.000000, 164928.700000 ], [ 509463.200000, 164829.500000 ], [ 509376.000000, 164760.500000 ], [ 509327.900000, 164733.400000 ], [ 509315.100000, 164714.200000 ], [ 509300.100000, 164668.900000 ], [ 509259.900000, 164614.900000 ], [ 509222.900000, 164545.200000 ], [ 509206.400000, 164468.700000 ], [ 509186.600000, 164424.700000 ], [ 509129.600000, 164319.200000 ], [ 509074.800000, 164241.000000 ], [ 509039.400000, 164206.900000 ], [ 509004.100000, 164186.900000 ], [ 508956.900000, 164174.200000 ], [ 508838.100000, 164158.400000 ], [ 508807.400000, 164143.700000 ], [ 508750.600000, 164068.400000 ], [ 508692.400000, 163975.700000 ], [ 508619.000000, 163808.200000 ], [ 508470.400000, 163693.400000 ], [ 508349.400000, 163630.200000 ], [ 508296.100000, 163582.400000 ], [ 508261.400000, 163535.200000 ], [ 508208.400000, 163421.400000 ], [ 508159.400000, 163346.200000 ], [ 508087.100000, 163284.400000 ], [ 507987.400000, 163229.400000 ], [ 507991.100000, 163185.100000 ], [ 507973.600000, 163154.500000 ], [ 507900.500000, 163075.700000 ], [ 507817.400000, 162972.600000 ], [ 507628.600000, 162703.900000 ], [ 507536.100000, 162607.000000 ], [ 507447.900000, 162483.400000 ], [ 507196.200000, 162174.200000 ], [ 507138.100000, 162126.700000 ], [ 507160.600000, 162109.900000 ], [ 507159.900000, 162070.900000 ], [ 506894.282000, 161759.591000 ], [ 506781.134000, 161637.976000 ], [ 506744.920000, 161613.135000 ], [ 506673.278000, 161677.714000 ], [ 506515.000000, 161536.100000 ], [ 506392.200000, 161345.900000 ], [ 506335.500000, 161239.900000 ], [ 506197.900000, 161078.700000 ], [ 506172.400000, 161029.000000 ], [ 506154.700000, 160966.200000 ], [ 506143.500000, 160894.400000 ], [ 506119.700000, 160666.900000 ], [ 506127.200000, 160628.100000 ], [ 506181.000000, 160484.400000 ], [ 506184.100000, 160448.700000 ], [ 506028.500000, 159811.600000 ], [ 505973.600000, 159707.400000 ], [ 505954.354000, 159685.885000 ], [ 505971.474000, 159651.550000 ], [ 505985.666000, 159600.457000 ], [ 506071.700000, 159523.000000 ], [ 506094.200000, 159524.000000 ], [ 506201.100000, 159573.500000 ], [ 506364.000000, 159666.400000 ], [ 506425.000000, 159714.600000 ], [ 506514.000000, 159750.100000 ], [ 506565.000000, 159819.100000 ], [ 506625.200000, 159875.400000 ], [ 506698.700000, 159961.400000 ], [ 506805.000000, 160048.400000 ], [ 507061.500000, 160300.600000 ], [ 507176.500000, 160379.900000 ], [ 507294.500000, 160483.900000 ], [ 507339.200000, 160516.100000 ], [ 507381.900000, 160578.100000 ], [ 507438.200000, 160575.600000 ], [ 507475.700000, 160558.100000 ], [ 507505.700000, 160555.600000 ], [ 507526.900000, 160561.900000 ], [ 507566.900000, 160558.100000 ], [ 507601.900000, 160563.100000 ], [ 507651.900000, 160588.100000 ], [ 507674.400000, 160620.600000 ], [ 507765.700000, 160690.600000 ], [ 507824.676000, 160715.708000 ], [ 507665.000000, 160468.700000 ], [ 507650.000000, 160435.500000 ], [ 507619.700000, 160417.000000 ], [ 507557.500000, 160344.700000 ], [ 507537.000000, 160260.000000 ], [ 507541.500000, 160201.700000 ], [ 507513.500000, 160172.200000 ], [ 507505.700000, 160155.200000 ], [ 507494.700000, 160090.000000 ], [ 507498.700000, 160077.200000 ], [ 507509.000000, 160074.000000 ], [ 507652.500000, 160132.000000 ], [ 507757.200000, 160144.700000 ], [ 507773.500000, 160141.500000 ], [ 507838.500000, 160101.700000 ], [ 507863.000000, 160094.700000 ], [ 507897.500000, 160093.200000 ], [ 507976.000000, 160108.200000 ], [ 508083.200000, 160034.500000 ], [ 508119.200000, 160033.500000 ], [ 508199.500000, 159997.500000 ], [ 508223.500000, 159924.500000 ], [ 508225.600000, 159881.200000 ], [ 508247.900000, 159853.900000 ], [ 508268.400000, 159836.300000 ], [ 508330.000000, 159826.000000 ], [ 508350.700000, 159813.200000 ], [ 508389.500000, 159779.500000 ], [ 508424.200000, 159732.500000 ], [ 508479.000000, 159729.200000 ], [ 508527.700000, 159743.200000 ], [ 508592.700000, 159742.200000 ], [ 508633.000000, 159748.500000 ], [ 508667.200000, 159762.000000 ], [ 508704.700000, 159792.200000 ], [ 508778.500000, 159772.500000 ], [ 508860.200000, 159814.500000 ], [ 508913.700000, 159854.700000 ], [ 509034.500000, 159831.200000 ], [ 509063.000000, 159836.000000 ], [ 509100.200000, 159856.500000 ], [ 509190.700000, 159956.200000 ], [ 509206.500000, 160055.500000 ], [ 509259.500000, 160106.700000 ], [ 509347.800000, 160169.800000 ], [ 509411.500000, 160235.700000 ], [ 509434.500000, 160242.700000 ], [ 509529.000000, 160209.200000 ], [ 509587.000000, 160200.200000 ], [ 509651.400000, 160164.300000 ], [ 509622.500000, 160114.600000 ], [ 509616.000000, 160038.900000 ], [ 509600.000000, 159995.400000 ], [ 509603.500000, 159909.400000 ], [ 509615.000000, 159850.100000 ], [ 509640.200000, 159796.400000 ], [ 509675.200000, 159766.600000 ], [ 509690.200000, 159731.400000 ], [ 509729.500000, 159674.900000 ], [ 509785.000000, 159634.400000 ], [ 509844.700000, 159610.100000 ], [ 509841.000000, 159557.600000 ], [ 509857.700000, 159496.900000 ], [ 509853.500000, 159432.400000 ], [ 509892.000000, 159380.900000 ], [ 509895.700000, 159336.600000 ], [ 509915.300000, 159309.700000 ], [ 509905.000000, 159285.600000 ], [ 509871.700000, 159250.900000 ], [ 509839.700000, 159173.100000 ], [ 509836.000000, 159125.600000 ], [ 509844.500000, 159099.600000 ], [ 509854.700000, 158991.500000 ], [ 509817.200000, 158936.700000 ], [ 509809.700000, 158887.200000 ], [ 509833.500000, 158813.000000 ], [ 509834.700000, 158614.700000 ], [ 509802.500000, 158473.500000 ], [ 509771.200000, 158409.000000 ], [ 509781.200000, 158389.200000 ], [ 509823.500000, 158390.000000 ], [ 509841.700000, 158379.200000 ], [ 509876.700000, 158344.500000 ], [ 509882.200000, 158318.700000 ], [ 509870.000000, 158135.500000 ], [ 509881.200000, 158113.200000 ], [ 509874.200000, 158068.500000 ], [ 509891.400000, 157989.700000 ], [ 509835.600000, 157829.000000 ], [ 509826.400000, 157813.700000 ], [ 509781.400000, 157781.000000 ], [ 509592.100000, 157711.500000 ], [ 509490.400000, 157660.200000 ], [ 509369.100000, 157586.200000 ], [ 509325.900000, 157521.700000 ], [ 509283.600000, 157478.000000 ], [ 509274.600000, 157450.000000 ], [ 509278.900000, 157414.500000 ], [ 509273.400000, 157394.700000 ], [ 509227.600000, 157362.700000 ], [ 509173.900000, 157338.200000 ], [ 509115.400000, 157292.700000 ], [ 509091.400000, 157217.700000 ], [ 509050.900000, 157174.200000 ], [ 509011.100000, 157118.700000 ], [ 509000.900000, 157098.200000 ], [ 509036.400000, 157095.600000 ], [ 509071.900000, 157103.600000 ], [ 509193.900000, 157171.900000 ], [ 509234.100000, 157207.400000 ], [ 509250.600000, 157209.400000 ], [ 509264.400000, 157196.400000 ], [ 509262.400000, 157181.900000 ], [ 509211.400000, 157124.100000 ], [ 509156.400000, 157028.600000 ], [ 509080.900000, 156922.600000 ], [ 509058.600000, 156874.400000 ], [ 509049.900000, 156819.600000 ], [ 509012.600000, 156722.300000 ], [ 508979.600000, 156669.600000 ], [ 508909.600000, 156585.600000 ], [ 508876.100000, 156518.100000 ], [ 508865.400000, 156473.800000 ], [ 508865.100000, 156438.600000 ], [ 508873.600000, 156399.600000 ], [ 508904.400000, 156378.300000 ], [ 508958.500000, 156367.700000 ], [ 508957.000000, 156360.200000 ], [ 508911.300000, 156316.700000 ], [ 508890.300000, 156263.200000 ], [ 508836.800000, 156203.000000 ], [ 508828.500000, 156169.000000 ], [ 508759.500000, 156081.000000 ], [ 508748.000000, 156047.500000 ], [ 508721.300000, 156044.200000 ], [ 508702.500000, 156021.200000 ], [ 508593.800000, 155995.200000 ], [ 508561.000000, 155971.500000 ], [ 508542.000000, 155949.000000 ], [ 508525.000000, 155895.700000 ], [ 508501.800000, 155858.700000 ], [ 508428.300000, 155820.700000 ], [ 508388.500000, 155810.500000 ], [ 508350.800000, 155781.500000 ], [ 508329.500000, 155756.000000 ], [ 508326.400000, 155735.600000 ], [ 508338.300000, 155687.000000 ], [ 508367.300000, 155673.200000 ], [ 508379.800000, 155650.700000 ], [ 508377.500000, 155632.000000 ], [ 508364.000000, 155606.200000 ], [ 508369.800000, 155575.500000 ], [ 508353.869000, 155548.002000 ], [ 508354.191000, 155533.408000 ], [ 508369.000000, 155503.100000 ], [ 508418.400000, 155460.600000 ], [ 508425.300000, 155403.900000 ], [ 508448.200000, 155401.400000 ], [ 508477.700000, 155407.900000 ], [ 508502.200000, 155420.700000 ], [ 508543.500000, 155461.700000 ], [ 508571.300000, 155472.700000 ], [ 508585.500000, 155468.200000 ], [ 508597.800000, 155453.500000 ], [ 508601.000000, 155390.000000 ], [ 508615.800000, 155382.500000 ], [ 508654.000000, 155383.000000 ], [ 508569.800000, 155298.800000 ], [ 508492.900000, 155253.200000 ], [ 508470.400000, 155232.600000 ], [ 508415.200000, 155157.000000 ], [ 508375.600000, 155087.000000 ], [ 508226.400000, 155026.600000 ], [ 508175.800000, 154944.200000 ], [ 508122.400000, 154885.200000 ], [ 508091.200000, 154830.100000 ], [ 508050.400000, 154776.400000 ], [ 508049.600000, 154760.100000 ], [ 508068.100000, 154693.300000 ], [ 508065.900000, 154672.700000 ], [ 507999.100000, 154506.100000 ], [ 507992.100000, 154467.400000 ], [ 508009.800000, 154444.400000 ], [ 508013.600000, 154358.900000 ], [ 508029.600000, 154324.400000 ], [ 508090.100000, 154284.900000 ], [ 508165.100000, 154258.400000 ], [ 508209.100000, 154233.900000 ], [ 508228.100000, 154218.400000 ], [ 508244.600000, 154188.900000 ], [ 508224.400000, 154127.900000 ], [ 508233.900000, 154076.700000 ], [ 508222.400000, 153987.200000 ], [ 508192.900000, 153946.200000 ], [ 508174.100000, 153895.200000 ], [ 508170.100000, 153859.700000 ], [ 508183.900000, 153789.700000 ], [ 508207.400000, 153746.200000 ], [ 508201.600000, 153666.400000 ], [ 508213.600000, 153616.400000 ], [ 508234.600000, 153564.900000 ], [ 508284.400000, 153491.900000 ], [ 508327.400000, 153457.900000 ], [ 508358.900000, 153417.400000 ], [ 508375.400000, 153406.900000 ], [ 508398.600000, 153407.400000 ], [ 508465.600000, 153444.900000 ], [ 508530.400000, 153469.200000 ], [ 508631.900000, 153483.400000 ], [ 508685.600000, 153484.700000 ], [ 508747.400000, 153470.900000 ], [ 508765.600000, 153459.700000 ], [ 508777.900000, 153433.700000 ], [ 508788.100000, 153374.900000 ], [ 508787.600000, 153343.900000 ], [ 508757.900000, 153241.200000 ], [ 508715.400000, 153172.900000 ], [ 508665.600000, 153054.400000 ], [ 508596.400000, 152917.100000 ], [ 508551.100000, 152843.600000 ], [ 508488.100000, 152709.100000 ], [ 508482.400000, 152677.900000 ], [ 508481.900000, 152589.100000 ], [ 508457.400000, 152535.400000 ], [ 508419.600000, 152386.600000 ], [ 508397.400000, 152330.400000 ], [ 508340.100000, 152260.400000 ], [ 508319.100000, 152183.600000 ], [ 508320.400000, 152163.100000 ], [ 508328.200000, 152150.700000 ], [ 508285.000000, 152102.700000 ], [ 508266.200000, 152071.700000 ], [ 508253.200000, 152026.200000 ], [ 508253.700000, 151987.200000 ], [ 508240.100000, 151955.100000 ], [ 508213.400000, 151924.900000 ], [ 508161.600000, 151917.600000 ], [ 508055.600000, 151954.400000 ], [ 507927.600000, 152021.100000 ], [ 507864.900000, 152046.100000 ], [ 507843.100000, 152051.400000 ], [ 507702.600000, 152049.600000 ], [ 507666.200000, 152061.300000 ], [ 507650.200000, 152054.800000 ], [ 507620.500000, 152011.400000 ], [ 507609.100000, 151981.500000 ], [ 507614.700000, 151906.900000 ], [ 507609.200000, 151857.100000 ], [ 507556.000000, 151741.900000 ], [ 507542.400000, 151721.200000 ], [ 507427.400000, 151604.200000 ], [ 507418.500000, 151587.900000 ], [ 507360.800000, 151364.600000 ], [ 507360.600000, 151308.700000 ], [ 507371.400000, 151233.200000 ], [ 507368.400000, 151202.500000 ], [ 507349.100000, 151173.200000 ], [ 507329.800000, 151161.800000 ], [ 507324.000000, 151178.100000 ], [ 507282.000000, 151197.700000 ], [ 507219.400000, 151253.100000 ], [ 507184.600000, 151269.700000 ], [ 507143.300000, 151278.800000 ], [ 507002.000000, 151284.600000 ], [ 506924.200000, 151275.400000 ], [ 506911.200000, 151260.100000 ], [ 506890.000000, 151203.600000 ], [ 506833.700000, 151160.100000 ], [ 506820.700000, 151083.700000 ], [ 506803.500000, 151054.700000 ], [ 506786.400000, 151043.900000 ], [ 506782.900000, 150983.700000 ], [ 506764.100000, 150874.900000 ], [ 506740.600000, 150779.900000 ], [ 506661.900000, 150726.600000 ], [ 506582.900000, 150661.100000 ], [ 506508.900000, 150620.600000 ], [ 506417.200000, 150603.400000 ], [ 506383.700000, 150586.300000 ], [ 506346.600000, 150578.600000 ], [ 506197.000000, 150565.000000 ], [ 506160.100000, 150551.500000 ], [ 506144.100000, 150525.500000 ], [ 506138.000000, 150499.400000 ], [ 506136.300000, 150393.300000 ], [ 506126.200000, 150316.800000 ], [ 506080.698000, 150252.880000 ], [ 506014.552000, 150252.880000 ], [ 505980.900000, 150237.700000 ], [ 505953.100000, 150164.200000 ], [ 505917.400000, 150096.500000 ], [ 505760.600000, 149887.500000 ], [ 505742.700000, 149875.000000 ], [ 505732.200000, 149856.800000 ], [ 505682.700000, 149822.800000 ], [ 505598.000000, 149794.300000 ], [ 505567.200000, 149739.800000 ], [ 505453.500000, 149656.600000 ], [ 505438.500000, 149641.600000 ], [ 505436.900000, 149628.900000 ], [ 505391.200000, 149633.800000 ], [ 505355.700000, 149617.300000 ], [ 505145.500000, 149423.900000 ], [ 505105.300000, 149342.900000 ], [ 505069.500000, 149300.500000 ], [ 505058.200000, 149278.100000 ], [ 505048.200000, 149209.600000 ], [ 505024.700000, 149162.100000 ], [ 504802.500000, 148814.300000 ], [ 504770.400000, 148782.300000 ], [ 504688.200000, 148745.700000 ], [ 504655.800000, 148712.400000 ], [ 504601.200000, 148544.600000 ], [ 504605.000000, 148477.800000 ], [ 504594.049000, 148457.888000 ], [ 504557.700000, 148438.600000 ], [ 504553.700000, 148429.400000 ], [ 504574.500000, 148387.000000 ], [ 504575.200000, 148371.400000 ], [ 504583.170000, 148362.450000 ], [ 504610.400000, 148353.500000 ], [ 504721.400000, 148393.800000 ], [ 504765.100000, 148403.300000 ], [ 504781.900000, 148413.800000 ], [ 504830.400000, 148467.100000 ], [ 504814.600000, 148532.100000 ], [ 504826.200000, 148579.500000 ], [ 504878.600000, 148627.300000 ], [ 504957.400000, 148756.100000 ], [ 505078.100000, 148820.100000 ], [ 505162.600000, 148901.300000 ], [ 505296.400000, 148963.600000 ], [ 505366.600000, 148979.600000 ], [ 505416.400000, 149005.800000 ], [ 505440.900000, 149026.100000 ], [ 505459.100000, 149052.800000 ], [ 505463.900000, 149121.800000 ], [ 505475.900000, 149143.300000 ], [ 505500.600000, 149143.100000 ], [ 505564.400000, 149116.600000 ], [ 505592.900000, 149118.800000 ], [ 505635.900000, 149133.800000 ], [ 505684.900000, 149122.100000 ], [ 505746.400000, 149124.300000 ], [ 505753.400000, 149103.600000 ], [ 505736.900000, 149081.800000 ], [ 505698.600000, 149075.600000 ], [ 505672.100000, 149063.600000 ], [ 505604.600000, 149023.300000 ], [ 505593.400000, 149007.800000 ], [ 505590.600000, 148898.600000 ], [ 505558.900000, 148764.600000 ], [ 505551.600000, 148683.800000 ], [ 505552.400000, 148636.600000 ], [ 505560.400000, 148603.300000 ], [ 505717.900000, 148263.800000 ], [ 505725.400000, 148223.800000 ], [ 505720.900000, 148108.300000 ], [ 505731.100000, 148078.300000 ], [ 505871.100000, 148020.300000 ], [ 505953.600000, 147944.800000 ], [ 505977.400000, 147935.800000 ], [ 506009.600000, 147940.300000 ], [ 506067.400000, 147966.800000 ], [ 506153.900000, 147976.000000 ], [ 506215.400000, 148012.300000 ], [ 506240.400000, 148008.500000 ], [ 506244.100000, 147991.300000 ], [ 506237.400000, 147975.000000 ], [ 506184.900000, 147920.300000 ], [ 506133.900000, 147832.000000 ], [ 506090.400000, 147798.800000 ], [ 506074.100000, 147770.000000 ], [ 506074.400000, 147715.000000 ], [ 506099.600000, 147666.000000 ], [ 506142.100000, 147607.800000 ], [ 506198.400000, 147570.500000 ], [ 506256.600000, 147552.000000 ], [ 506516.900000, 147445.300000 ], [ 506542.400000, 147448.000000 ], [ 506583.400000, 147466.800000 ], [ 506638.700000, 147472.100000 ], [ 506834.600000, 147474.300000 ], [ 506894.900000, 147457.000000 ], [ 506965.000000, 147400.500000 ], [ 507016.400000, 147334.300000 ], [ 507049.600000, 147250.000000 ], [ 507067.100000, 147159.000000 ], [ 507081.900000, 147120.000000 ], [ 507176.900000, 147025.000000 ], [ 507232.100000, 146949.300000 ], [ 507269.600000, 146910.300000 ], [ 507281.500000, 146888.100000 ], [ 507277.400000, 146840.300000 ], [ 507286.400000, 146791.000000 ], [ 507273.100000, 146681.000000 ], [ 507279.200000, 146570.900000 ], [ 507271.500000, 146559.900000 ], [ 507256.700000, 146575.900000 ], [ 507229.000000, 146631.900000 ], [ 507180.100000, 146783.500000 ], [ 507169.100000, 146789.800000 ], [ 507107.600000, 146796.500000 ], [ 506993.900000, 146801.800000 ], [ 506964.100000, 146810.500000 ], [ 506950.600000, 146821.500000 ], [ 506922.100000, 146871.500000 ], [ 506895.400000, 146886.000000 ], [ 506835.100000, 146894.300000 ], [ 506791.600000, 146949.500000 ], [ 506689.900000, 146940.500000 ], [ 506555.100000, 146970.800000 ], [ 506513.900000, 146968.000000 ], [ 506489.100000, 146958.800000 ], [ 506429.900000, 146915.300000 ], [ 506383.400000, 146876.000000 ], [ 506371.100000, 146857.000000 ], [ 506372.600000, 146821.800000 ], [ 506389.600000, 146806.000000 ], [ 506407.600000, 146804.000000 ], [ 506477.600000, 146823.000000 ], [ 506557.400000, 146780.500000 ], [ 506596.900000, 146774.800000 ], [ 506618.900000, 146764.800000 ], [ 506671.600000, 146717.000000 ], [ 506678.900000, 146687.000000 ], [ 506731.900000, 146627.000000 ], [ 506729.900000, 146560.800000 ], [ 506751.100000, 146526.300000 ], [ 506757.100000, 146497.300000 ], [ 506779.400000, 146468.300000 ], [ 506780.600000, 146453.300000 ], [ 506752.600000, 146413.300000 ], [ 506748.100000, 146337.500000 ], [ 506738.400000, 146306.300000 ], [ 506663.800000, 146158.400000 ], [ 506779.100000, 145895.900000 ], [ 506636.100000, 145764.400000 ], [ 506519.900000, 145684.600000 ], [ 506499.100000, 145663.400000 ], [ 506451.400000, 145577.400000 ], [ 506381.100000, 145534.600000 ], [ 506347.300000, 145502.800000 ], [ 506393.400000, 145446.400000 ], [ 506401.100000, 145388.600000 ], [ 506395.900000, 145362.400000 ], [ 506327.900000, 145210.100000 ], [ 506332.100000, 145030.400000 ], [ 506324.600000, 145014.900000 ], [ 506311.500000, 145006.900000 ], [ 506293.500000, 145057.900000 ], [ 506276.000000, 145080.900000 ], [ 506266.900000, 145075.600000 ], [ 506250.800000, 145053.500000 ], [ 506218.100000, 144975.900000 ], [ 506199.600000, 144905.600000 ], [ 506201.600000, 144867.100000 ], [ 506214.100000, 144828.600000 ], [ 506290.100000, 144717.100000 ], [ 506308.600000, 144672.100000 ], [ 506311.400000, 144619.100000 ], [ 506295.600000, 144566.300000 ], [ 506271.600000, 144532.800000 ], [ 506203.900000, 144495.100000 ], [ 506190.600000, 144469.800000 ], [ 506174.900000, 144385.800000 ], [ 506160.100000, 144366.100000 ], [ 506122.400000, 144348.300000 ], [ 506103.400000, 144327.800000 ], [ 506071.100000, 144235.600000 ], [ 506002.900000, 144197.800000 ], [ 505981.900000, 144179.300000 ], [ 505943.400000, 144094.300000 ], [ 505905.400000, 144051.100000 ], [ 505846.100000, 144023.800000 ], [ 505749.100000, 143990.800000 ], [ 505725.100000, 143972.300000 ], [ 505702.600000, 143918.800000 ], [ 505694.600000, 143869.600000 ], [ 505709.100000, 143805.300000 ], [ 505748.100000, 143751.600000 ], [ 505757.400000, 143725.800000 ], [ 505857.100000, 143658.600000 ], [ 506015.600000, 143484.800000 ], [ 506082.400000, 143425.100000 ], [ 506138.300000, 143404.800000 ], [ 506190.000000, 143362.400000 ], [ 506251.900000, 143455.200000 ], [ 506272.400000, 143472.400000 ], [ 506295.600000, 143469.200000 ], [ 506381.300000, 143413.000000 ], [ 506395.900000, 143409.400000 ], [ 506430.400000, 143412.200000 ], [ 506536.600000, 143440.400000 ], [ 506555.900000, 143435.900000 ], [ 506597.400000, 143409.200000 ], [ 506663.900000, 143396.900000 ], [ 506745.400000, 143431.200000 ], [ 506763.900000, 143430.700000 ], [ 506785.100000, 143419.700000 ], [ 506873.400000, 143313.700000 ], [ 506884.900000, 143283.900000 ], [ 506874.700000, 143180.700000 ], [ 506817.000000, 143039.800000 ], [ 506810.362000, 143017.454000 ], [ 506813.700000, 143000.700000 ], [ 506983.900000, 142718.400000 ], [ 506994.800000, 142691.500000 ], [ 507013.400000, 142620.200000 ], [ 507022.200000, 142487.900000 ], [ 507038.200000, 142441.200000 ], [ 507059.200000, 142423.900000 ], [ 507132.900000, 142395.400000 ], [ 507337.400000, 142358.200000 ], [ 507414.700000, 142323.700000 ], [ 507525.900000, 142313.700000 ], [ 507543.200000, 142296.900000 ], [ 507541.700000, 142239.400000 ], [ 507561.100000, 142174.600000 ], [ 507534.600000, 142162.700000 ], [ 507541.200000, 142097.000000 ], [ 507549.200000, 142075.800000 ], [ 507571.500000, 142066.700000 ], [ 507550.000000, 142042.000000 ], [ 507476.500000, 141994.300000 ], [ 507398.500000, 141899.000000 ], [ 507390.000000, 141879.800000 ], [ 507399.700000, 141850.200000 ], [ 507473.500000, 141766.800000 ], [ 507495.500000, 141708.500000 ], [ 507496.300000, 141675.300000 ], [ 507444.000000, 141351.500000 ], [ 507399.300000, 141226.800000 ], [ 507333.800000, 141155.000000 ], [ 507325.000000, 141133.800000 ], [ 507326.500000, 141089.300000 ], [ 507399.300000, 140984.000000 ], [ 507415.500000, 140950.000000 ], [ 507426.800000, 140832.000000 ], [ 507407.500000, 140784.500000 ], [ 507380.500000, 140749.000000 ], [ 507199.900000, 140556.700000 ], [ 507284.500000, 140465.400000 ], [ 507278.200000, 140452.900000 ], [ 507281.500000, 140413.400000 ], [ 507272.600000, 140386.600000 ], [ 507266.900000, 140306.900000 ], [ 507256.100000, 140289.100000 ], [ 507236.100000, 140277.600000 ], [ 507176.900000, 140293.600000 ], [ 507131.400000, 140272.900000 ], [ 507108.600000, 140245.900000 ], [ 507067.400000, 140161.900000 ], [ 507024.900000, 140130.600000 ], [ 507009.900000, 140124.600000 ], [ 507000.100000, 140129.100000 ], [ 506981.600000, 140170.100000 ], [ 506968.900000, 140179.400000 ], [ 506876.600000, 140131.900000 ], [ 506826.600000, 140096.900000 ], [ 506712.600000, 139954.400000 ], [ 506550.900000, 139779.100000 ], [ 506549.900000, 139763.100000 ], [ 506568.600000, 139696.900000 ], [ 506514.500000, 139652.000000 ], [ 506636.900000, 139500.700000 ], [ 506588.500000, 139382.400000 ], [ 506595.000000, 139300.900000 ], [ 506588.000000, 139262.400000 ], [ 506570.500000, 139217.100000 ], [ 506596.500000, 139157.200000 ], [ 506920.700000, 138879.400000 ], [ 507068.200000, 138766.100000 ], [ 507105.700000, 138722.300000 ], [ 507170.400000, 138372.100000 ], [ 507252.700000, 138113.700000 ], [ 507308.500000, 137998.200000 ], [ 507381.500000, 137883.200000 ], [ 507423.200000, 137797.200000 ], [ 507418.500000, 137750.400000 ], [ 507331.900000, 137606.900000 ], [ 507392.400000, 137580.500000 ], [ 507412.000000, 137587.200000 ], [ 507550.700000, 137746.200000 ] ], [ [ 528521.846000, 185842.095000 ], [ 528595.800000, 185921.500000 ], [ 528661.400000, 185972.700000 ], [ 528676.500000, 186009.500000 ], [ 528574.700000, 186047.700000 ], [ 528586.900000, 186083.000000 ] ], [ [ 611202.200000, 265008.900000 ], [ 611151.700000, 265055.300000 ], [ 611148.600000, 265144.100000 ], [ 611134.800000, 265200.100000 ], [ 611122.800000, 265224.600000 ], [ 611078.800000, 265270.400000 ], [ 611067.300000, 265295.100000 ], [ 611066.600000, 265316.600000 ], [ 611080.100000, 265373.100000 ], [ 611099.800000, 265412.400000 ], [ 611124.300000, 265423.100000 ], [ 611224.800000, 265424.600000 ], [ 611232.800000, 265436.400000 ], [ 611234.800000, 265455.700000 ] ], [ [ 518302.400000, 173976.400000 ], [ 518412.000000, 174045.400000 ], [ 518530.800000, 174141.000000 ], [ 518575.800000, 174163.600000 ], [ 518722.800000, 174201.500000 ], [ 518932.500000, 174277.900000 ], [ 519107.900000, 174352.700000 ], [ 519174.400000, 174354.100000 ], [ 519207.300000, 174343.800000 ] ], [ [ 528679.429000, 186237.615000 ], [ 528655.600000, 186200.800000 ], [ 528619.700000, 186175.200000 ] ], [ [ 578581.775000, 245924.817000 ], [ 578466.300000, 245760.500000 ], [ 578270.186000, 245537.183000 ], [ 578256.092000, 245540.524000 ], [ 578249.373000, 245526.321000 ], [ 578058.100000, 245439.100000 ], [ 577965.700000, 245419.900000 ], [ 577938.389000, 245421.883000 ], [ 577923.236000, 245429.516000 ], [ 577903.400000, 245410.900000 ], [ 577828.600000, 245384.300000 ], [ 577742.300000, 245333.700000 ], [ 577665.300000, 245310.800000 ], [ 577567.900000, 245291.900000 ], [ 577493.000000, 245295.800000 ], [ 577302.400000, 245355.800000 ], [ 577221.000000, 245373.200000 ], [ 577158.800000, 245377.700000 ], [ 577111.800000, 245373.000000 ], [ 577073.000000, 245361.500000 ], [ 576902.800000, 245277.500000 ], [ 576778.000000, 245240.300000 ], [ 576661.000000, 245238.300000 ], [ 576539.700000, 245251.600000 ], [ 576480.800000, 245269.000000 ], [ 576412.200000, 245335.000000 ], [ 576340.100000, 245390.900000 ], [ 576270.800000, 245425.000000 ], [ 576224.500000, 245461.700000 ], [ 576192.000000, 245472.200000 ], [ 576111.800000, 245483.500000 ], [ 575967.400000, 245410.200000 ], [ 575829.900000, 245352.100000 ], [ 575767.000000, 245335.100000 ], [ 575698.500000, 245301.500000 ], [ 575655.100000, 245291.200000 ], [ 575525.700000, 245283.700000 ], [ 575253.000000, 245221.100000 ], [ 575194.300000, 245203.900000 ], [ 575057.800000, 245133.500000 ], [ 574884.200000, 245094.100000 ], [ 574809.500000, 245065.800000 ], [ 574751.900000, 245024.900000 ], [ 574672.200000, 245006.200000 ], [ 574587.400000, 244994.400000 ], [ 574506.700000, 244999.100000 ], [ 574446.200000, 245023.100000 ], [ 574372.400000, 245029.900000 ], [ 574266.100000, 245054.100000 ], [ 574166.500000, 245098.500000 ], [ 574124.600000, 245093.800000 ], [ 574040.900000, 245044.300000 ], [ 573979.000000, 244996.400000 ], [ 573914.500000, 244931.700000 ], [ 573905.200000, 244914.600000 ], [ 573913.100000, 244604.000000 ], [ 573897.900000, 244523.900000 ], [ 573846.100000, 244470.100000 ], [ 573794.600000, 244404.200000 ], [ 573763.800000, 244337.100000 ], [ 573643.100000, 244287.800000 ], [ 573606.700000, 244260.700000 ], [ 573405.300000, 244159.300000 ], [ 573268.800000, 244122.600000 ], [ 573169.300000, 244107.200000 ], [ 573088.400000, 244107.200000 ], [ 573006.400000, 244120.600000 ], [ 572892.400000, 244158.500000 ], [ 572795.200000, 244215.800000 ], [ 572695.000000, 244314.900000 ], [ 572551.700000, 244440.700000 ], [ 572569.700000, 244451.900000 ], [ 572662.200000, 244552.600000 ], [ 572729.400000, 244615.700000 ], [ 572780.200000, 244533.400000 ], [ 572834.100000, 244482.200000 ], [ 573096.600000, 244392.200000 ], [ 573302.700000, 244371.300000 ], [ 573382.600000, 244386.300000 ], [ 573439.200000, 244404.200000 ], [ 573596.800000, 244484.800000 ], [ 573719.700000, 244587.600000 ], [ 573767.100000, 244651.700000 ], [ 573788.800000, 244712.800000 ], [ 573840.400000, 245021.600000 ], [ 573822.400000, 245057.300000 ], [ 573763.200000, 245086.100000 ], [ 573745.700000, 245101.300000 ], [ 573748.700000, 245121.800000 ], [ 573783.200000, 245135.300000 ], [ 573848.400000, 245145.900000 ], [ 574075.300000, 245255.500000 ], [ 574180.400000, 245294.700000 ], [ 574351.300000, 245311.400000 ], [ 574468.200000, 245297.600000 ], [ 574541.900000, 245296.600000 ], [ 574652.900000, 245313.200000 ], [ 574693.800000, 245326.100000 ], [ 574766.300000, 245365.000000 ], [ 574809.400000, 245408.600000 ], [ 574837.400000, 245463.300000 ], [ 574842.700000, 245480.100000 ], [ 574837.200000, 245575.100000 ], [ 574880.900000, 245691.600000 ], [ 574893.000000, 245754.500000 ], [ 574960.700000, 245888.300000 ], [ 574957.900000, 245901.000000 ], [ 574913.900000, 245930.500000 ], [ 574893.500000, 245936.600000 ], [ 574889.000000, 245948.100000 ], [ 574893.800000, 245958.000000 ], [ 575066.900000, 245991.600000 ], [ 575438.000000, 246083.700000 ], [ 575452.500000, 246094.500000 ], [ 575464.600000, 246115.500000 ], [ 575473.400000, 246169.700000 ], [ 575466.800000, 246207.800000 ], [ 575451.500000, 246245.400000 ], [ 575412.774000, 246280.911000 ], [ 575434.099000, 246299.266000 ], [ 575444.800000, 246300.600000 ], [ 575476.100000, 246281.100000 ], [ 575513.000000, 246253.900000 ], [ 575573.600000, 246192.600000 ], [ 575605.200000, 246174.800000 ], [ 575654.900000, 246178.600000 ], [ 575691.500000, 246188.900000 ], [ 575762.800000, 246230.500000 ], [ 575778.700000, 246225.800000 ], [ 575795.586000, 246204.032000 ], [ 575821.800000, 246185.800000 ], [ 575857.800000, 246187.500000 ], [ 575972.500000, 246326.000000 ], [ 576033.100000, 246374.300000 ], [ 576247.600000, 246516.400000 ], [ 576295.500000, 246562.000000 ], [ 576340.800000, 246570.000000 ], [ 576398.600000, 246595.800000 ], [ 576486.600000, 246620.800000 ], [ 576534.400000, 246646.000000 ], [ 576573.800000, 246679.800000 ], [ 576642.700000, 246762.800000 ], [ 576727.000000, 246835.800000 ], [ 576837.200000, 246907.900000 ], [ 576946.500000, 246943.300000 ], [ 576989.900000, 246939.400000 ], [ 577004.900000, 246908.600000 ], [ 576996.200000, 246829.800000 ], [ 577015.700000, 246812.800000 ], [ 577055.000000, 246797.800000 ], [ 577109.000000, 246793.000000 ], [ 577194.400000, 246797.300000 ], [ 577305.700000, 246820.800000 ], [ 577363.700000, 246849.300000 ], [ 577475.700000, 246926.500000 ], [ 577504.200000, 246934.000000 ], [ 577550.100000, 246933.300000 ], [ 577643.543000, 247184.789000 ], [ 577687.513000, 247166.117000 ], [ 577679.683000, 247141.422000 ], [ 577686.308000, 247117.931000 ], [ 577711.004000, 247098.657000 ], [ 577787.499000, 247103.475000 ], [ 577836.288000, 247114.920000 ], [ 577861.585000, 247128.773000 ], [ 577904.953000, 247172.743000 ], [ 577966.200000, 247210.300000 ], [ 578078.900000, 247271.700000 ], [ 578132.700000, 247288.900000 ], [ 578231.800000, 247333.800000 ], [ 578357.700000, 247428.100000 ], [ 578377.700000, 247432.400000 ], [ 578403.600000, 247428.300000 ], [ 578463.000000, 247387.900000 ], [ 578518.700000, 247373.300000 ], [ 578654.500000, 247319.400000 ], [ 578683.200000, 247322.600000 ], [ 578713.300000, 247337.500000 ], [ 578818.300000, 247403.700000 ], [ 578909.200000, 247426.200000 ], [ 578981.700000, 247462.900000 ], [ 579034.700000, 247481.600000 ], [ 579064.700000, 247472.600000 ], [ 579118.000000, 247441.600000 ], [ 579242.118000, 247435.797000 ], [ 579297.800000, 247465.200000 ], [ 579439.700000, 247592.500000 ], [ 579515.700000, 247640.600000 ], [ 579627.400000, 247724.400000 ], [ 579646.000000, 247726.100000 ], [ 579664.700000, 247715.900000 ], [ 579695.200000, 247714.800000 ], [ 579808.900000, 247762.500000 ], [ 579817.100000, 247774.800000 ], [ 579817.500000, 247802.600000 ], [ 579834.700000, 247829.100000 ], [ 579896.400000, 247871.700000 ], [ 579910.300000, 247874.300000 ], [ 579918.900000, 247868.100000 ], [ 579931.000000, 247818.200000 ], [ 580006.400000, 247817.900000 ], [ 580053.200000, 247789.400000 ], [ 580074.500000, 247786.400000 ], [ 580209.900000, 247810.600000 ], [ 580289.100000, 247898.400000 ], [ 580330.200000, 247925.900000 ], [ 580336.400000, 247942.000000 ], [ 580326.200000, 247986.100000 ], [ 580331.600000, 248026.200000 ], [ 580346.700000, 248050.700000 ], [ 580365.900000, 248056.400000 ], [ 580383.600000, 248047.800000 ], [ 580428.700000, 248009.000000 ], [ 580503.800000, 248010.000000 ], [ 580579.000000, 248042.000000 ], [ 580621.900000, 248040.400000 ], [ 580797.300000, 248095.800000 ], [ 580828.100000, 248094.100000 ], [ 580897.300000, 248117.200000 ], [ 580932.800000, 248107.800000 ], [ 581021.200000, 248137.100000 ], [ 581161.900000, 248232.300000 ], [ 581227.000000, 248283.900000 ], [ 581268.100000, 248331.000000 ], [ 581271.300000, 248352.500000 ], [ 581263.900000, 248377.300000 ], [ 581268.600000, 248400.400000 ], [ 581313.300000, 248444.400000 ], [ 581331.900000, 248472.500000 ], [ 581466.800000, 248542.600000 ], [ 581526.100000, 248563.200000 ], [ 581568.100000, 248561.200000 ], [ 581591.600000, 248545.600000 ], [ 581605.500000, 248526.700000 ], [ 581662.800000, 248494.900000 ], [ 581847.300000, 248487.300000 ], [ 581949.900000, 248456.000000 ], [ 582029.500000, 248414.600000 ], [ 582031.270000, 248404.556000 ], [ 582082.000000, 248372.200000 ], [ 582113.400000, 248364.000000 ], [ 582144.701000, 248364.180000 ], [ 582160.000000, 248329.800000 ], [ 582226.900000, 248302.700000 ], [ 582594.700000, 248209.600000 ], [ 582661.000000, 248204.300000 ], [ 582732.100000, 248173.500000 ], [ 583111.700000, 248180.400000 ], [ 583227.800000, 248198.900000 ], [ 583456.464000, 248254.970000 ], [ 583570.300000, 248267.700000 ], [ 583650.700000, 248253.100000 ], [ 583771.700000, 248214.600000 ], [ 584131.500000, 248159.400000 ], [ 584187.500000, 248155.600000 ], [ 584481.000000, 248161.400000 ], [ 584736.700000, 248224.600000 ], [ 584831.000000, 248237.700000 ], [ 584909.500000, 248275.100000 ], [ 584997.800000, 248294.700000 ], [ 585075.263000, 248326.052000 ], [ 585216.000000, 248343.200000 ], [ 585375.100000, 248288.900000 ], [ 585497.500000, 248259.700000 ], [ 585520.500000, 248251.700000 ], [ 585537.200000, 248233.000000 ], [ 585560.500000, 248223.500000 ], [ 585585.700000, 248223.200000 ], [ 585680.500000, 248259.500000 ], [ 585706.500000, 248259.000000 ], [ 586042.700000, 248170.100000 ], [ 586188.300000, 248122.900000 ], [ 586262.000000, 248106.400000 ], [ 586377.500000, 248042.700000 ], [ 586470.100000, 248001.600000 ], [ 586516.400000, 247988.100000 ], [ 586586.900000, 247981.200000 ], [ 586819.300000, 247977.400000 ], [ 586858.600000, 247965.300000 ], [ 587038.894000, 247976.748000 ], [ 587064.400000, 247967.800000 ], [ 587092.700000, 247929.800000 ], [ 587232.400000, 247895.500000 ], [ 587254.300000, 247877.700000 ], [ 587271.500000, 247846.300000 ], [ 587312.200000, 247814.700000 ], [ 587375.900000, 247744.100000 ], [ 587417.700000, 247717.300000 ], [ 587438.000000, 247723.100000 ], [ 587582.000000, 247692.700000 ], [ 587925.089000, 247673.117000 ], [ 588209.800000, 247638.300000 ], [ 588661.000000, 247618.700000 ], [ 588841.000000, 247598.900000 ], [ 589314.000000, 247709.600000 ], [ 589382.800000, 247717.300000 ], [ 589539.800000, 247765.500000 ], [ 589640.900000, 247782.700000 ], [ 589748.700000, 247835.100000 ], [ 589881.896000, 247866.709000 ], [ 589927.200000, 247857.800000 ], [ 590004.200000, 247858.100000 ], [ 590076.500000, 247865.300000 ], [ 590197.700000, 247891.600000 ], [ 590275.800000, 247897.600000 ], [ 590368.000000, 247894.000000 ], [ 590530.500000, 247859.000000 ], [ 590567.500000, 247834.200000 ], [ 590602.000000, 247783.100000 ], [ 590615.500000, 247777.600000 ], [ 590789.600000, 247882.900000 ], [ 590851.300000, 247890.600000 ], [ 590844.200000, 247878.700000 ], [ 590797.700000, 247862.500000 ], [ 590785.000000, 247846.700000 ], [ 590776.700000, 247821.800000 ], [ 590777.100000, 247789.500000 ], [ 590783.400000, 247770.600000 ], [ 590862.600000, 247695.800000 ], [ 590865.300000, 247680.000000 ], [ 590854.900000, 247673.300000 ], [ 590727.400000, 247656.200000 ], [ 590645.500000, 247635.200000 ], [ 590382.100000, 247512.900000 ], [ 590271.700000, 247471.200000 ], [ 590186.700000, 247388.200000 ], [ 590109.500000, 247343.700000 ], [ 590095.200000, 247341.700000 ], [ 590074.100000, 247352.800000 ], [ 590072.400000, 247386.600000 ], [ 590091.300000, 247441.200000 ], [ 590153.200000, 247546.100000 ], [ 590181.700000, 247624.700000 ], [ 590190.762000, 247683.468000 ], [ 590122.400000, 247634.000000 ], [ 590090.000000, 247597.500000 ], [ 590044.000000, 247576.700000 ], [ 590009.400000, 247533.500000 ], [ 589956.100000, 247504.400000 ], [ 589876.300000, 247437.200000 ], [ 589722.700000, 247366.000000 ], [ 589631.600000, 247316.500000 ], [ 589537.900000, 247298.700000 ], [ 589394.400000, 247261.000000 ], [ 589330.700000, 247256.500000 ], [ 589257.900000, 247229.500000 ], [ 589142.600000, 247216.700000 ], [ 588983.700000, 247169.400000 ], [ 588921.900000, 247136.500000 ], [ 588892.200000, 247085.300000 ], [ 588907.800000, 246914.600000 ], [ 588923.800000, 246893.700000 ], [ 588951.500000, 246879.200000 ], [ 588967.500000, 246858.400000 ], [ 588987.200000, 246755.100000 ], [ 589053.100000, 246703.000000 ], [ 589057.300000, 246640.800000 ], [ 589109.200000, 246579.300000 ], [ 589125.600000, 246461.600000 ], [ 589143.000000, 246420.300000 ], [ 589169.700000, 246382.900000 ], [ 589219.700000, 246349.300000 ], [ 589296.900000, 246316.800000 ], [ 589342.900000, 246305.300000 ], [ 589392.267000, 246313.767000 ], [ 589456.500000, 246412.900000 ], [ 589502.800000, 246446.600000 ], [ 589587.693000, 246585.148000 ], [ 589627.215000, 246602.290000 ], [ 589712.400000, 246617.000000 ], [ 589740.100000, 246615.900000 ], [ 589758.200000, 246626.600000 ], [ 589793.200000, 246680.900000 ], [ 589842.700000, 246722.000000 ], [ 589847.700000, 246788.100000 ], [ 589857.200000, 246797.900000 ], [ 589934.200000, 246829.400000 ], [ 589987.800000, 246888.900000 ], [ 590021.900000, 246915.600000 ], [ 590530.400000, 247113.000000 ], [ 590543.400000, 247116.500000 ], [ 590697.900000, 247099.900000 ], [ 590873.700000, 247167.200000 ], [ 591031.200000, 247249.500000 ], [ 591140.700000, 247273.500000 ], [ 591830.600000, 247360.000000 ], [ 592147.400000, 247366.500000 ], [ 592200.600000, 247270.200000 ], [ 592347.600000, 247186.000000 ], [ 592471.000000, 247093.800000 ], [ 592492.300000, 247070.300000 ], [ 592529.800000, 246979.400000 ], [ 592539.111000, 246899.685000 ], [ 592581.200000, 246769.100000 ], [ 592591.100000, 246754.600000 ], [ 592635.300000, 246728.500000 ], [ 592632.200000, 246662.100000 ], [ 592653.500000, 246593.800000 ], [ 592779.300000, 246245.300000 ], [ 592788.000000, 246238.700000 ], [ 592864.100000, 246070.100000 ], [ 592903.000000, 246096.300000 ], [ 592941.000000, 246099.700000 ], [ 592941.100000, 246094.000000 ], [ 592966.100000, 246126.500000 ], [ 592998.400000, 246153.000000 ], [ 593117.400000, 246209.200000 ], [ 593175.500000, 246180.600000 ], [ 593198.000000, 246158.100000 ], [ 593210.200000, 246122.300000 ], [ 593297.500000, 245709.600000 ], [ 593806.400000, 245849.400000 ], [ 593836.100000, 245868.600000 ], [ 593893.236000, 245952.131000 ], [ 593907.394000, 245947.310000 ], [ 593917.887000, 245953.835000 ], [ 593991.500000, 245913.400000 ], [ 594027.400000, 245888.700000 ], [ 594047.500000, 245865.600000 ], [ 594068.565000, 245813.593000 ], [ 594080.640000, 245813.469000 ], [ 594089.147000, 245804.652000 ], [ 594088.065000, 245791.659000 ], [ 594077.952000, 245784.386000 ], [ 594097.984000, 245719.953000 ], [ 594115.265000, 245720.291000 ], [ 594123.527000, 245710.016000 ], [ 594296.500000, 245691.300000 ], [ 594404.200000, 245692.600000 ], [ 594531.300000, 245704.400000 ], [ 594676.500000, 245687.600000 ], [ 594862.700000, 245718.100000 ], [ 594909.200000, 245718.700000 ], [ 595023.100000, 245703.800000 ], [ 595162.000000, 245665.400000 ], [ 595159.400000, 245705.700000 ], [ 595120.700000, 245794.400000 ], [ 595163.000000, 245819.700000 ], [ 595198.500000, 245878.400000 ], [ 595200.165000, 245917.719000 ], [ 595180.500000, 245971.400000 ], [ 595197.200000, 246105.100000 ], [ 595187.500000, 246128.900000 ], [ 595138.108000, 246199.076000 ], [ 595133.667000, 246217.196000 ], [ 595126.200000, 246381.900000 ], [ 595112.800000, 246500.400000 ], [ 595061.000000, 246641.900000 ], [ 595002.700000, 246701.100000 ], [ 595030.400000, 246728.100000 ], [ 595101.000000, 246766.900000 ], [ 595186.500000, 246844.200000 ], [ 595273.700000, 247033.500000 ], [ 595329.100000, 247203.700000 ], [ 595353.900000, 247211.800000 ], [ 595415.700000, 247215.900000 ], [ 595483.600000, 247205.400000 ], [ 595581.900000, 247213.600000 ], [ 595620.200000, 247202.000000 ], [ 595705.200000, 247197.900000 ], [ 595774.500000, 247163.900000 ], [ 595845.800000, 247148.200000 ], [ 595896.400000, 247123.600000 ], [ 595933.738000, 247115.535000 ], [ 596005.100000, 247162.700000 ], [ 596154.900000, 247161.600000 ], [ 596205.300000, 247142.400000 ], [ 596317.800000, 247164.100000 ], [ 596396.500000, 247143.700000 ], [ 596439.000000, 247143.300000 ], [ 596517.800000, 247119.100000 ], [ 596744.400000, 247104.900000 ], [ 596796.000000, 247107.800000 ], [ 596946.368000, 247091.872000 ], [ 597065.200000, 247052.900000 ], [ 597105.700000, 247033.400000 ], [ 597211.800000, 247019.000000 ], [ 597261.700000, 247005.900000 ], [ 597307.700000, 246978.900000 ], [ 597339.100000, 246943.400000 ], [ 597393.000000, 246968.700000 ], [ 597471.900000, 246938.200000 ], [ 597535.300000, 246941.600000 ], [ 597598.400000, 246915.700000 ], [ 597707.600000, 246902.500000 ], [ 597794.500000, 246860.500000 ], [ 597908.200000, 246815.900000 ], [ 597910.314000, 246804.479000 ], [ 598011.900000, 246831.000000 ], [ 598086.200000, 246841.900000 ], [ 598361.600000, 246767.200000 ], [ 598494.500000, 246723.400000 ], [ 598526.500000, 246725.900000 ], [ 598582.400000, 246785.500000 ], [ 598624.500000, 246811.100000 ], [ 598641.000000, 246801.700000 ], [ 598653.700000, 246750.900000 ], [ 598681.200000, 246696.300000 ], [ 598681.800000, 246683.900000 ], [ 598645.400000, 246592.700000 ], [ 598640.000000, 246566.100000 ], [ 598643.000000, 246539.700000 ], [ 598661.000000, 246485.800000 ], [ 598697.700000, 246459.800000 ], [ 598713.000000, 246434.800000 ], [ 598715.700000, 246376.100000 ], [ 598743.500000, 246293.200000 ], [ 598769.200000, 246255.500000 ], [ 598812.000000, 246224.700000 ], [ 598907.500000, 246203.000000 ], [ 598936.300000, 246203.100000 ], [ 598993.200000, 246179.900000 ], [ 599034.500000, 246179.700000 ], [ 599107.700000, 246194.400000 ], [ 599206.800000, 246229.600000 ], [ 599283.800000, 246284.800000 ], [ 599389.800000, 246344.400000 ], [ 599417.000000, 246395.500000 ], [ 599467.000000, 246415.400000 ], [ 599579.200000, 246546.500000 ], [ 599657.400000, 246599.500000 ], [ 599677.800000, 246636.700000 ], [ 599696.500000, 246694.100000 ], [ 599747.100000, 246738.100000 ], [ 599758.500000, 246739.400000 ], [ 599768.600000, 246729.100000 ], [ 599780.200000, 246680.600000 ], [ 599793.000000, 246669.300000 ], [ 599819.000000, 246666.800000 ], [ 599829.800000, 246659.100000 ], [ 599832.700000, 246647.300000 ], [ 599821.000000, 246575.700000 ], [ 599832.700000, 246533.200000 ], [ 599854.000000, 246504.900000 ], [ 599827.200000, 246438.200000 ], [ 599828.300000, 246396.300000 ], [ 599836.400000, 246355.200000 ], [ 599897.600000, 246187.400000 ], [ 599931.300000, 246026.300000 ], [ 600003.700000, 245817.700000 ], [ 600004.700000, 245797.700000 ], [ 599993.000000, 245780.500000 ], [ 600065.300000, 245725.700000 ], [ 600126.600000, 245706.000000 ], [ 600192.400000, 245708.900000 ], [ 600332.000000, 245766.600000 ], [ 600395.300000, 245779.500000 ], [ 600406.700000, 245788.300000 ], [ 600406.800000, 245801.500000 ], [ 600431.600000, 245817.400000 ], [ 600450.600000, 245848.900000 ], [ 600464.500000, 245858.100000 ], [ 600504.200000, 245843.000000 ], [ 600559.500000, 245849.200000 ], [ 600588.400000, 245859.300000 ], [ 600620.400000, 245892.700000 ], [ 600704.500000, 245892.500000 ], [ 600864.000000, 245922.000000 ], [ 601066.000000, 245968.500000 ], [ 601117.600000, 245983.700000 ], [ 601158.500000, 246006.000000 ], [ 601279.000000, 246008.500000 ], [ 601392.000000, 246001.400000 ], [ 601423.200000, 246005.600000 ], [ 601489.000000, 246030.500000 ], [ 601513.500000, 246009.800000 ], [ 601723.200000, 246019.800000 ], [ 601932.800000, 246033.900000 ], [ 602039.700000, 246059.800000 ], [ 602056.200000, 246057.300000 ], [ 602101.500000, 246033.100000 ], [ 602149.400000, 246023.600000 ], [ 602183.400000, 246029.100000 ], [ 602228.500000, 246046.500000 ], [ 602251.200000, 246045.800000 ], [ 602285.200000, 246001.300000 ], [ 602313.373000, 245980.959000 ], [ 602309.000000, 246060.700000 ], [ 602324.700000, 246115.400000 ], [ 602348.100000, 246131.300000 ], [ 602384.300000, 246144.400000 ], [ 602503.700000, 246160.700000 ], [ 602598.300000, 246162.900000 ], [ 602787.700000, 246197.100000 ], [ 602860.300000, 246193.800000 ], [ 602991.400000, 246169.500000 ], [ 603020.000000, 246174.700000 ], [ 603055.900000, 246191.800000 ], [ 603130.300000, 246199.600000 ], [ 603171.200000, 246212.000000 ], [ 603270.300000, 246201.000000 ], [ 603329.948000, 246167.161000 ], [ 603485.000000, 246196.100000 ], [ 603524.500000, 246214.400000 ], [ 603564.200000, 246251.100000 ], [ 603642.800000, 246210.400000 ], [ 603653.300000, 246221.900000 ], [ 603662.000000, 246253.400000 ], [ 603674.300000, 246260.900000 ], [ 603838.000000, 246230.100000 ], [ 603912.800000, 246231.900000 ], [ 603974.700000, 246243.000000 ], [ 604098.700000, 246086.600000 ], [ 604187.200000, 246045.400000 ], [ 604264.400000, 245990.500000 ], [ 604271.800000, 245967.100000 ], [ 604271.500000, 245922.100000 ], [ 604255.834000, 245850.901000 ], [ 604395.200000, 245837.700000 ], [ 604430.808000, 245822.868000 ], [ 604545.300000, 245816.100000 ], [ 604731.000000, 245791.600000 ], [ 604763.000000, 245797.400000 ], [ 604853.000000, 245831.100000 ], [ 604921.000000, 245842.400000 ], [ 604961.800000, 245862.500000 ], [ 605011.700000, 245838.500000 ], [ 605024.400000, 245823.200000 ], [ 605138.700000, 245854.000000 ], [ 605181.900000, 245803.500000 ], [ 605187.700000, 245778.000000 ], [ 605187.400000, 245710.500000 ], [ 605223.400000, 245635.900000 ], [ 605247.461000, 245551.536000 ], [ 605276.100000, 245554.700000 ], [ 605344.400000, 245538.900000 ], [ 605380.900000, 245543.800000 ], [ 605469.700000, 245536.500000 ], [ 605540.700000, 245540.400000 ], [ 605677.700000, 245619.100000 ], [ 605736.700000, 245629.900000 ], [ 605842.200000, 245663.400000 ], [ 605934.900000, 245715.600000 ], [ 605994.900000, 245791.900000 ], [ 605998.700000, 245813.400000 ], [ 605960.700000, 245935.900000 ], [ 605952.300000, 245981.500000 ], [ 605950.300000, 246004.700000 ], [ 605963.000000, 246043.000000 ], [ 605949.800000, 246156.500000 ], [ 605969.500000, 246213.700000 ], [ 605957.500000, 246285.700000 ], [ 605944.300000, 246308.500000 ], [ 605934.500000, 246312.500000 ], [ 605881.800000, 246304.500000 ], [ 605711.300000, 246303.200000 ], [ 605582.000000, 246316.200000 ], [ 605402.900000, 246352.000000 ], [ 605074.300000, 246437.200000 ], [ 604866.000000, 246521.900000 ], [ 604763.600000, 246616.800000 ], [ 604772.700000, 246630.100000 ], [ 604786.700000, 246631.900000 ], [ 604839.700000, 246570.600000 ], [ 604873.900000, 246557.600000 ], [ 604908.400000, 246553.900000 ], [ 604989.700000, 246557.100000 ], [ 605216.300000, 246589.500000 ], [ 605296.000000, 246585.200000 ], [ 605551.300000, 246590.500000 ], [ 605730.500000, 246573.500000 ], [ 605872.000000, 246578.200000 ], [ 605959.000000, 246584.700000 ], [ 606179.700000, 246616.100000 ], [ 606278.200000, 246642.900000 ], [ 606297.700000, 246642.400000 ], [ 606313.900000, 246626.400000 ], [ 606349.400000, 246556.100000 ], [ 606359.700000, 246532.100000 ], [ 606359.400000, 246515.600000 ], [ 606346.900000, 246466.400000 ], [ 606297.400000, 246362.400000 ], [ 606262.900000, 246225.400000 ], [ 606219.900000, 246152.400000 ], [ 606228.400000, 246130.600000 ], [ 606267.900000, 246102.500000 ], [ 606393.300000, 246213.400000 ], [ 606525.400000, 246312.800000 ], [ 606582.800000, 246489.100000 ], [ 606596.500000, 246515.100000 ], [ 606633.500000, 246556.400000 ], [ 606674.500000, 246664.400000 ], [ 606703.300000, 246715.100000 ], [ 606726.200000, 246774.900000 ], [ 606724.200000, 246785.900000 ], [ 606690.900000, 246822.900000 ], [ 606644.200000, 246906.900000 ], [ 606637.200000, 246923.900000 ], [ 606642.028000, 246942.740000 ], [ 606609.600000, 246987.000000 ], [ 606574.500000, 247053.400000 ], [ 606572.000000, 247073.600000 ], [ 606578.200000, 247099.300000 ], [ 606566.300000, 247130.100000 ], [ 606571.500000, 247191.100000 ], [ 606564.800000, 247214.900000 ], [ 606546.000000, 247251.400000 ], [ 606461.000000, 247358.600000 ], [ 606411.800000, 247393.900000 ], [ 606398.800000, 247462.600000 ], [ 606363.300000, 247576.000000 ], [ 606306.500000, 247617.900000 ], [ 606226.500000, 247715.100000 ], [ 606217.500000, 247740.600000 ], [ 606118.300000, 247764.100000 ], [ 606095.000000, 247761.600000 ], [ 606079.000000, 247747.100000 ], [ 606040.500000, 247664.600000 ], [ 606027.300000, 247657.400000 ], [ 605961.200000, 247665.600000 ], [ 605787.200000, 247650.600000 ], [ 605678.400000, 247656.900000 ], [ 605628.900000, 247663.100000 ], [ 605567.200000, 247695.400000 ], [ 605515.400000, 247703.100000 ], [ 605490.600000, 247689.600000 ], [ 605430.700000, 247598.900000 ], [ 605403.400000, 247590.100000 ], [ 605374.400000, 247600.900000 ], [ 605325.600000, 247657.600000 ], [ 605283.600000, 247677.100000 ], [ 605057.000000, 247708.500000 ], [ 604973.900000, 247713.700000 ], [ 604914.000000, 247774.500000 ], [ 604846.600000, 247824.400000 ], [ 604804.200000, 247835.200000 ], [ 604775.300000, 247856.800000 ], [ 604776.500000, 247899.100000 ], [ 604810.754000, 247920.674000 ], [ 604808.400000, 247974.500000 ], [ 604885.800000, 248243.800000 ], [ 604889.800000, 248275.300000 ], [ 604885.300000, 248290.100000 ], [ 604860.300000, 248305.600000 ], [ 604817.600000, 248320.100000 ], [ 604720.300000, 248337.800000 ], [ 604626.600000, 248345.800000 ], [ 604512.800000, 248371.100000 ], [ 604410.100000, 248406.300000 ], [ 604370.600000, 248412.300000 ], [ 604324.300000, 248455.300000 ], [ 604274.600000, 248513.800000 ], [ 604232.100000, 248587.200000 ], [ 604283.000000, 248562.500000 ], [ 604363.200000, 248543.700000 ], [ 604424.700000, 248547.700000 ], [ 604507.200000, 248574.200000 ], [ 604534.700000, 248598.200000 ], [ 604575.200000, 248667.500000 ], [ 604633.500000, 248833.700000 ], [ 604637.700000, 248872.500000 ], [ 604629.700000, 248919.200000 ], [ 604615.000000, 248949.200000 ], [ 604595.900000, 248969.700000 ], [ 604553.400000, 248990.500000 ], [ 604424.100000, 249017.200000 ], [ 604324.400000, 249054.000000 ], [ 604276.100000, 249121.700000 ], [ 604252.100000, 249170.700000 ], [ 604256.800000, 249194.600000 ], [ 604343.900000, 249268.200000 ], [ 604424.900000, 249388.400000 ], [ 604426.400000, 249411.600000 ], [ 604370.600000, 249470.400000 ], [ 604367.800000, 249493.700000 ], [ 604339.900000, 249530.700000 ], [ 604170.100000, 249647.000000 ], [ 604100.900000, 249702.100000 ], [ 604126.600000, 249759.600000 ], [ 604185.100000, 249856.100000 ], [ 604216.400000, 249890.600000 ], [ 604282.200000, 249945.000000 ], [ 604296.700000, 249970.000000 ], [ 604304.700000, 250002.000000 ], [ 604304.500000, 250040.000000 ], [ 604286.200000, 250074.000000 ], [ 604246.500000, 250119.200000 ], [ 604166.700000, 250174.200000 ], [ 604154.700000, 250194.000000 ], [ 604155.200000, 250210.500000 ], [ 604277.500000, 250320.000000 ], [ 604316.500000, 250367.500000 ], [ 604350.500000, 250397.000000 ], [ 604398.700000, 250423.200000 ], [ 604455.700000, 250418.000000 ], [ 604468.700000, 250424.000000 ], [ 604499.200000, 250643.000000 ], [ 604503.000000, 250735.700000 ], [ 604523.000000, 250783.500000 ], [ 604531.000000, 250840.500000 ], [ 604543.500000, 250857.500000 ], [ 604590.700000, 250894.200000 ], [ 604624.500000, 250957.000000 ], [ 604682.000000, 250988.900000 ], [ 604708.200000, 251013.900000 ], [ 604730.000000, 251048.100000 ], [ 604761.400000, 251120.800000 ], [ 604783.700000, 251300.600000 ], [ 604782.200000, 251383.900000 ], [ 604776.200000, 251411.700000 ], [ 604850.900000, 251479.600000 ], [ 604881.700000, 251551.400000 ], [ 604876.400000, 251609.700000 ], [ 604863.200000, 251634.700000 ], [ 604859.900000, 251730.200000 ], [ 604842.400000, 251761.400000 ], [ 604839.300000, 251780.900000 ], [ 604843.800000, 251880.800000 ], [ 604838.513000, 251898.058000 ], [ 604776.600000, 251912.400000 ], [ 604771.500000, 251920.200000 ], [ 604817.900000, 252101.600000 ], [ 604827.625000, 252105.028000 ], [ 604829.312000, 252117.257000 ], [ 604813.100000, 252121.700000 ], [ 604801.600000, 252143.800000 ], [ 604769.300000, 252169.000000 ], [ 604667.500000, 252178.600000 ], [ 604652.000000, 252173.100000 ], [ 604645.700000, 252180.900000 ], [ 604648.000000, 252190.600000 ], [ 604588.500000, 252287.800000 ], [ 604505.200000, 252289.600000 ], [ 604349.500000, 252309.900000 ], [ 604291.700000, 252345.400000 ], [ 604246.500000, 252355.100000 ], [ 604192.000000, 252356.900000 ], [ 604077.700000, 252404.600000 ], [ 603994.500000, 252430.400000 ], [ 603918.200000, 252440.600000 ], [ 603748.200000, 252435.900000 ], [ 603578.500000, 252453.900000 ], [ 603473.900000, 252440.900000 ], [ 603352.700000, 252446.600000 ], [ 603253.500000, 252458.900000 ], [ 603099.700000, 252498.900000 ], [ 602979.200000, 252550.900000 ], [ 602816.200000, 252662.100000 ], [ 602760.500000, 252715.900000 ], [ 602709.700000, 252752.600000 ], [ 602594.800000, 252805.500000 ], [ 602561.500000, 252829.100000 ], [ 602560.189000, 252857.578000 ], [ 602626.600000, 252928.200000 ], [ 602638.800000, 252970.500000 ], [ 602641.000000, 253010.800000 ], [ 602629.200000, 253070.100000 ], [ 602597.900000, 253143.600000 ], [ 602533.200000, 253245.100000 ], [ 602500.000000, 253323.600000 ], [ 602451.000000, 253469.500000 ], [ 602353.300000, 253634.900000 ], [ 602303.800000, 253688.200000 ], [ 602305.200000, 253704.200000 ], [ 602247.900000, 253777.400000 ], [ 602222.700000, 253831.400000 ], [ 602188.700000, 253938.900000 ], [ 602171.200000, 253958.400000 ], [ 601972.500000, 254061.300000 ], [ 601857.500000, 254137.500000 ], [ 601777.300000, 254214.800000 ], [ 601716.000000, 254300.500000 ], [ 601720.400000, 254331.900000 ], [ 601728.400000, 254338.900000 ], [ 601838.200000, 254272.000000 ], [ 601865.800000, 254264.800000 ], [ 601929.500000, 254267.500000 ], [ 601987.811000, 254287.203000 ], [ 601979.400000, 254311.700000 ], [ 601926.200000, 254356.700000 ], [ 601905.400000, 254433.200000 ], [ 601911.400000, 254453.900000 ], [ 602076.100000, 254487.700000 ], [ 602149.500000, 254533.500000 ], [ 602298.400000, 254649.900000 ], [ 602575.800000, 254759.400000 ], [ 602614.000000, 254807.700000 ], [ 602623.900000, 254838.300000 ], [ 602622.600000, 254856.200000 ], [ 602606.100000, 254870.400000 ], [ 602584.100000, 254870.400000 ], [ 602403.400000, 254823.700000 ], [ 602350.900000, 254817.400000 ], [ 601990.300000, 254820.400000 ], [ 601865.100000, 254828.600000 ], [ 601841.900000, 254836.300000 ], [ 601809.000000, 254861.400000 ], [ 601748.700000, 254924.600000 ], [ 601692.100000, 254952.600000 ], [ 601659.500000, 254948.200000 ], [ 601589.000000, 254899.200000 ], [ 601562.800000, 254888.700000 ], [ 601538.300000, 254890.000000 ], [ 601533.800000, 254907.000000 ], [ 601564.300000, 254937.500000 ], [ 601622.300000, 254974.500000 ], [ 601655.400000, 255016.400000 ], [ 601668.100000, 255061.800000 ], [ 601653.500000, 255113.900000 ], [ 601720.500000, 255180.400000 ], [ 601863.800000, 255300.400000 ], [ 602014.100000, 255462.900000 ], [ 602059.700000, 255475.200000 ], [ 602064.000000, 255481.300000 ], [ 602061.700000, 255528.700000 ], [ 602086.200000, 255527.900000 ], [ 602152.100000, 255556.000000 ], [ 602252.600000, 255582.400000 ], [ 602306.400000, 255627.700000 ], [ 602462.500000, 255681.200000 ], [ 602582.700000, 255679.300000 ], [ 602647.500000, 255705.100000 ], [ 602697.700000, 255711.700000 ], [ 602705.100000, 255721.100000 ], [ 602775.100000, 255725.300000 ], [ 602952.500000, 255773.000000 ], [ 603011.800000, 255781.100000 ], [ 603085.100000, 255778.300000 ], [ 603102.800000, 255765.100000 ], [ 603125.900000, 255731.500000 ], [ 603144.300000, 255731.600000 ], [ 603174.800000, 255749.100000 ], [ 603409.500000, 255932.600000 ], [ 603499.000000, 255957.600000 ], [ 603578.600000, 256009.600000 ], [ 603612.700000, 256041.500000 ], [ 603848.000000, 256166.700000 ], [ 603921.600000, 256192.100000 ], [ 603969.300000, 256189.900000 ], [ 604037.800000, 256164.200000 ], [ 604071.500000, 256173.900000 ], [ 604090.800000, 256169.300000 ], [ 604086.000000, 256149.900000 ], [ 604033.100000, 256077.800000 ], [ 604052.800000, 256097.200000 ], [ 604176.400000, 256165.000000 ], [ 604206.500000, 256179.000000 ], [ 604266.500000, 256190.900000 ], [ 604295.400000, 256229.800000 ], [ 604317.500000, 256284.200000 ], [ 604381.800000, 256314.500000 ], [ 604403.000000, 256315.200000 ], [ 604563.000000, 256276.700000 ], [ 604660.800000, 256220.200000 ], [ 604689.500000, 256039.200000 ], [ 604745.200000, 255861.900000 ], [ 604816.700000, 255786.500000 ], [ 604846.700000, 255783.900000 ], [ 605059.100000, 255814.800000 ], [ 605073.500000, 255832.900000 ], [ 605117.800000, 255859.500000 ], [ 605183.900000, 255919.700000 ], [ 605293.200000, 256001.500000 ], [ 605556.700000, 256166.600000 ], [ 605872.800000, 256307.800000 ], [ 606016.900000, 256383.900000 ], [ 606095.300000, 256416.500000 ], [ 606648.800000, 256423.200000 ], [ 607094.200000, 256488.500000 ], [ 607243.700000, 256525.000000 ], [ 607413.200000, 256578.200000 ], [ 607546.100000, 256630.300000 ], [ 607773.600000, 256731.700000 ], [ 608071.100000, 256834.400000 ], [ 608249.400000, 256880.700000 ], [ 608328.000000, 256888.100000 ], [ 608405.700000, 256887.100000 ], [ 608650.400000, 256863.800000 ], [ 608686.700000, 256851.800000 ], [ 608698.200000, 256828.100000 ], [ 608691.200000, 256799.800000 ], [ 608675.000000, 256778.800000 ], [ 608636.700000, 256750.300000 ], [ 608542.600000, 256712.300000 ], [ 608454.000000, 256694.000000 ], [ 608380.000000, 256690.800000 ], [ 608369.000000, 256684.700000 ], [ 608499.100000, 256662.100000 ], [ 608589.100000, 256658.500000 ], [ 608748.300000, 256666.300000 ], [ 608888.400000, 256755.200000 ], [ 608969.400000, 256831.100000 ], [ 609034.300000, 256907.400000 ], [ 609078.900000, 257005.100000 ], [ 609086.800000, 257034.800000 ], [ 609089.700000, 257090.700000 ], [ 609080.300000, 257156.800000 ], [ 609072.500000, 257191.600000 ], [ 609045.600000, 257255.300000 ], [ 609030.100000, 257271.300000 ], [ 608977.100000, 257289.600000 ], [ 608904.200000, 257384.500000 ], [ 608822.900000, 257450.800000 ], [ 608799.100000, 257502.800000 ], [ 608792.900000, 257565.600000 ], [ 608781.900000, 257592.300000 ], [ 608703.000000, 257606.800000 ], [ 608510.400000, 257684.400000 ], [ 608372.100000, 257780.600000 ], [ 608315.400000, 257840.200000 ], [ 608389.600000, 257824.800000 ], [ 608488.200000, 257791.800000 ], [ 608542.900000, 257801.500000 ], [ 608609.400000, 257797.800000 ], [ 608720.900000, 257783.800000 ], [ 608759.100000, 257773.000000 ], [ 608798.200000, 257751.600000 ], [ 608816.600000, 257760.900000 ], [ 608904.958000, 257697.772000 ], [ 608933.400000, 257711.000000 ], [ 609052.900000, 257823.000000 ], [ 609060.400000, 257848.000000 ], [ 609065.100000, 257922.800000 ], [ 609056.900000, 258055.000000 ], [ 609079.400000, 258188.300000 ], [ 609201.500000, 258153.000000 ], [ 609217.800000, 258263.800000 ], [ 609344.200000, 258242.600000 ], [ 609364.000000, 258308.100000 ], [ 609303.500000, 258319.400000 ], [ 609311.400000, 258388.400000 ], [ 609289.800000, 258394.400000 ], [ 609321.400000, 258509.800000 ], [ 609009.400000, 258602.100000 ], [ 609080.800000, 258906.600000 ], [ 609161.300000, 259415.800000 ], [ 609197.500000, 259418.600000 ], [ 609263.900000, 259563.800000 ], [ 609265.900000, 259628.000000 ], [ 609250.100000, 259722.000000 ], [ 609258.900000, 259776.300000 ], [ 609323.700000, 259889.300000 ], [ 609495.200000, 260057.900000 ], [ 609507.800000, 260040.000000 ], [ 609615.700000, 260035.200000 ], [ 609754.200000, 260042.200000 ], [ 609860.500000, 260055.900000 ], [ 609880.200000, 260065.900000 ], [ 609886.500000, 260080.400000 ], [ 609891.200000, 260150.700000 ], [ 609867.400000, 260276.300000 ], [ 609999.690000, 260482.371000 ], [ 609943.711000, 260496.735000 ], [ 610009.700000, 260638.100000 ], [ 610034.200000, 260656.800000 ], [ 610123.300000, 260701.200000 ], [ 610140.400000, 260716.300000 ], [ 610188.900000, 260795.100000 ], [ 610245.600000, 260855.000000 ], [ 610310.400000, 260900.100000 ], [ 610357.718000, 260914.277000 ], [ 610362.400000, 260932.500000 ], [ 610340.600000, 260963.500000 ], [ 610403.600000, 261006.900000 ], [ 610424.100000, 261018.600000 ], [ 610498.400000, 261032.200000 ], [ 610510.200000, 261047.300000 ], [ 610506.697000, 261068.118000 ], [ 610709.900000, 261117.200000 ], [ 610799.100000, 261149.000000 ], [ 610777.600000, 261170.600000 ], [ 610778.400000, 261192.600000 ], [ 610865.200000, 261371.400000 ], [ 610835.100000, 261375.200000 ], [ 610786.900000, 261365.500000 ], [ 610619.100000, 261360.700000 ], [ 610537.900000, 261343.200000 ], [ 610560.100000, 261391.500000 ], [ 610591.000000, 261437.200000 ], [ 610588.400000, 261542.700000 ], [ 610608.600000, 261645.200000 ], [ 610662.600000, 261754.200000 ], [ 610722.900000, 261826.000000 ], [ 610779.900000, 261844.700000 ], [ 610895.700000, 261845.000000 ], [ 610892.500000, 261876.000000 ], [ 610880.500000, 261908.800000 ], [ 610900.900000, 262080.900000 ], [ 611139.000000, 262129.500000 ], [ 611189.900000, 262133.900000 ], [ 611321.900000, 262575.300000 ], [ 611378.400000, 262846.300000 ], [ 611391.600000, 262974.300000 ], [ 611432.100000, 263188.600000 ], [ 611432.900000, 263217.100000 ], [ 611395.900000, 263384.100000 ], [ 611386.900000, 263454.600000 ], [ 611361.800000, 263533.600000 ], [ 611353.100000, 263616.100000 ], [ 611372.332000, 263738.333000 ], [ 611375.700000, 263836.700000 ], [ 611399.800000, 263899.500000 ], [ 611400.000000, 264033.100000 ], [ 611369.600000, 264149.200000 ], [ 611336.800000, 264154.100000 ], [ 611316.100000, 264164.100000 ], [ 611287.600000, 264194.900000 ], [ 611301.800000, 264469.600000 ], [ 611291.800000, 264537.400000 ], [ 611264.800000, 264580.900000 ], [ 611202.300000, 264625.900000 ], [ 611186.100000, 264659.100000 ], [ 611187.919000, 264795.453000 ], [ 611215.300000, 264897.600000 ], [ 611202.200000, 265008.900000 ] ] ] } } +{ "type": "Feature", "properties": { "FID": 1.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 611200.4, 265702.1 ], [ 611141.1, 265545.9 ], [ 611139.3, 265505.4 ], [ 611149.6, 265485.1 ], [ 611173.6, 265464.4 ], [ 611234.8, 265455.7 ] ], [ [ 611200.4, 265702.1 ], [ 611269.9, 265670.2 ], [ 611370.1, 265846.2 ], [ 611156.0, 265965.9 ] ], [ [ 611200.4, 265702.1 ], [ 611047.5, 265777.2 ], [ 611156.0, 265965.9 ] ], [ [ 611234.8, 265455.7 ], [ 611273.1, 265451.9 ], [ 611328.3, 265427.9 ], [ 611360.6, 265373.6 ], [ 611408.6, 265348.9 ], [ 611416.6, 265301.1 ], [ 611406.6, 265265.6 ], [ 611391.6, 265246.0 ], [ 611281.8, 265146.6 ], [ 611231.1, 265069.6 ], [ 611202.2, 265008.9 ] ], [ [ 553364.5, 217241.9 ], [ 553395.0, 217210.2 ], [ 553297.0, 217116.7 ], [ 553551.3, 216848.3 ], [ 553829.1, 217082.2 ], [ 553955.7, 217170.7 ] ], [ [ 553364.5, 217241.9 ], [ 553334.1, 217273.0 ], [ 553313.2, 217253.9 ], [ 553238.3, 217301.1 ], [ 553007.0, 217372.1 ], [ 552923.5, 217415.9 ], [ 552804.5, 217432.9 ], [ 552764.8, 217475.1 ], [ 552751.8, 217469.1 ], [ 552748.3, 217452.5 ], [ 552735.5, 217456.2 ], [ 552704.8, 217473.2 ], [ 552642.4, 217531.3 ], [ 552581.8, 217542.5 ], [ 552534.0, 217563.7 ], [ 552494.5, 217601.7 ], [ 552463.8, 217611.2 ], [ 552426.5, 217635.7 ], [ 552390.8, 217684.0 ], [ 552351.4, 217702.0 ], [ 552266.7, 217665.2 ], [ 552199.2, 217582.2 ], [ 552170.2, 217574.2 ], [ 552119.2, 217597.2 ], [ 552100.9, 217594.7 ], [ 552091.7, 217589.7 ], [ 552064.2, 217540.7 ], [ 552022.7, 217519.7 ], [ 552009.9, 217529.0 ], [ 551995.084, 217617.821 ], [ 551980.654, 217638.251 ], [ 551963.45, 217638.839 ], [ 551929.2, 217724.0 ], [ 551878.5, 217808.2 ], [ 551842.666, 217830.417 ], [ 551835.217, 217818.435 ], [ 551844.1, 217793.4 ], [ 551841.896, 217772.498 ], [ 551815.218, 217731.805 ], [ 551787.857, 217710.357 ], [ 551764.482, 217724.31 ], [ 551749.79, 217744.23 ], [ 551732.479, 217801.602 ], [ 551720.5, 217820.6 ], [ 551694.609, 217827.636 ], [ 551615.9, 217829.1 ], [ 551574.2, 217808.7 ], [ 551524.5, 217798.1 ], [ 551502.4, 217784.1 ], [ 551484.1, 217759.7 ], [ 551478.1, 217739.6 ], [ 551489.4, 217701.8 ], [ 551417.7, 217636.5 ], [ 551360.0, 217551.6 ], [ 551376.584, 217492.233 ], [ 551356.719, 217492.223 ], [ 551316.141, 217475.831 ], [ 551308.6, 217432.3 ], [ 551234.4, 217384.3 ], [ 551217.4, 217355.1 ], [ 551165.0, 217337.4 ], [ 551127.2, 217336.8 ], [ 551102.1, 217324.2 ], [ 551088.3, 217325.0 ], [ 551080.6, 217314.3 ], [ 551084.8, 217299.8 ], [ 551079.248, 217280.203 ], [ 551075.1, 217285.5 ], [ 551055.9, 217282.5 ], [ 550499.3, 217115.6 ], [ 550479.8, 217168.5 ], [ 550476.5, 217197.7 ], [ 550487.5, 217228.7 ], [ 550511.3, 217253.0 ], [ 550514.0, 217273.9 ], [ 550504.3, 217273.9 ], [ 550433.5, 217221.4 ], [ 550352.0, 217190.1 ], [ 550305.5, 217154.9 ], [ 550234.3, 217117.9 ], [ 550134.1, 217027.4 ], [ 550116.0, 217023.0 ], [ 550099.9, 217029.4 ], [ 550066.3, 217099.7 ], [ 550063.3, 217124.7 ], [ 550090.5, 217195.2 ], [ 550111.0, 217227.2 ], [ 550131.5, 217244.5 ], [ 550131.0, 217257.5 ], [ 550121.8, 217259.0 ], [ 550094.8, 217239.2 ], [ 549970.1, 217190.1 ], [ 549934.0, 217189.8 ], [ 549893.2, 217173.5 ], [ 549870.8, 217173.6 ], [ 549842.9, 217219.7 ], [ 549841.9, 217231.5 ], [ 549875.1, 217348.2 ], [ 549834.0, 217343.5 ], [ 549792.0, 217351.1 ], [ 549752.8, 217372.3 ], [ 549771.5, 217408.1 ], [ 549722.0, 217416.3 ], [ 549711.5, 217428.3 ], [ 549749.0, 217460.1 ], [ 549751.3, 217471.8 ], [ 549744.8, 217486.8 ], [ 549716.0, 217493.8 ], [ 549660.6, 217479.4 ], [ 549672.3, 217489.4 ], [ 549684.9, 217522.3 ], [ 549717.0, 217557.8 ], [ 549727.8, 217599.6 ], [ 549748.8, 217644.1 ], [ 549575.0, 217555.2 ], [ 549547.1, 217550.8 ], [ 549443.4, 217554.0 ], [ 549374.1, 217544.2 ], [ 549261.9, 217483.7 ], [ 549071.6, 217544.7 ], [ 549020.1, 217546.2 ], [ 548965.4, 217564.5 ], [ 548949.7, 217563.7 ], [ 548836.9, 217511.7 ], [ 548827.1, 217510.4 ], [ 548809.1, 217521.9 ], [ 548809.1, 217536.9 ], [ 548860.1, 217572.2 ], [ 548910.4, 217634.9 ], [ 549041.1, 217725.4 ], [ 549162.4, 217823.9 ], [ 549229.7, 217927.1 ], [ 549272.4, 217960.2 ], [ 549318.4, 217975.2 ], [ 549346.0, 218010.0 ], [ 549371.0, 218030.2 ], [ 549377.478, 218046.273 ], [ 549374.0, 218056.2 ], [ 549340.2, 218059.2 ], [ 549296.0, 218043.5 ], [ 549255.2, 218060.5 ], [ 549221.0, 218058.5 ], [ 548925.5, 217984.1 ], [ 548756.7, 217953.6 ], [ 548476.8, 217862.7 ], [ 548317.3, 217798.8 ], [ 548056.4, 217634.1 ], [ 547656.2, 217510.6 ], [ 547608.1, 217484.8 ], [ 547536.9, 217434.3 ], [ 547481.7, 217388.1 ], [ 547441.5, 217339.1 ], [ 547409.5, 217262.9 ], [ 547406.5, 217231.9 ], [ 547415.7, 217204.6 ], [ 547438.3, 217179.1 ], [ 547509.7, 217136.9 ], [ 547557.5, 217066.1 ], [ 547584.2, 217042.1 ], [ 547611.2, 217030.6 ], [ 547650.3, 216989.5 ], [ 547667.0, 216956.9 ], [ 547699.7, 216818.1 ], [ 547759.5, 216717.6 ], [ 547767.2, 216682.7 ], [ 547766.0, 216651.6 ], [ 547757.7, 216624.6 ], [ 547731.7, 216597.1 ], [ 547726.5, 216582.4 ], [ 547729.7, 216496.9 ], [ 547715.0, 216462.9 ], [ 547704.2, 216404.7 ], [ 547682.0, 216373.4 ], [ 547655.2, 216313.6 ], [ 547636.7, 216241.1 ], [ 547596.7, 216205.4 ], [ 547573.2, 216161.3 ], [ 547565.0, 216094.9 ], [ 547576.3, 216025.1 ], [ 547573.5, 215986.2 ], [ 547565.7, 215965.1 ], [ 547528.7, 215917.5 ], [ 547483.3, 215908.6 ], [ 547460.0, 215883.5 ], [ 547405.7, 215859.5 ], [ 547387.0, 215809.7 ], [ 547332.5, 215756.8 ], [ 547299.5, 215740.4 ], [ 547291.8, 215708.7 ], [ 547281.7, 215696.9 ], [ 547245.8, 215690.7 ], [ 547202.8, 215666.1 ], [ 547168.6, 215666.3 ], [ 547146.8, 215633.7 ], [ 547109.3, 215619.2 ], [ 547090.8, 215600.2 ], [ 547043.8, 215580.2 ], [ 546969.6, 215532.1 ], [ 546866.5, 215512.5 ], [ 546810.3, 215522.5 ], [ 546740.1, 215480.7 ], [ 546721.9, 215475.9 ], [ 546692.3, 215484.9 ], [ 546652.1, 215478.8 ], [ 546621.3, 215489.2 ], [ 546605.5, 215486.7 ], [ 546581.5, 215477.5 ], [ 546545.6, 215443.9 ], [ 546503.6, 215449.9 ], [ 546480.6, 215480.5 ], [ 546468.5, 215486.0 ], [ 546301.0, 215464.1 ], [ 546226.1, 215469.4 ], [ 546161.8, 215462.5 ], [ 546108.8, 215489.5 ], [ 546057.8, 215505.3 ], [ 546023.5, 215550.0 ], [ 545961.5, 215555.8 ], [ 545932.7, 215566.7 ], [ 545864.1, 215614.9 ], [ 545806.2, 215587.7 ], [ 545788.8, 215565.4 ], [ 545729.5, 215520.3 ], [ 545684.1, 215498.2 ], [ 545663.3, 215475.5 ], [ 545603.2, 215445.5 ], [ 545520.7, 215460.8 ], [ 545476.9, 215458.8 ], [ 545449.2, 215465.9 ], [ 545401.8, 215449.8 ], [ 545317.3, 215441.0 ], [ 545231.8, 215410.5 ], [ 545090.5, 215383.5 ], [ 545052.0, 215348.0 ], [ 544996.3, 215274.3 ], [ 544973.4, 215254.1 ], [ 544932.4, 215231.9 ], [ 544861.0, 215222.3 ], [ 544843.1, 215213.6 ], [ 544724.8, 215077.8 ], [ 544700.9, 215058.0 ], [ 544657.1, 215050.5 ], [ 544608.6, 215056.0 ], [ 544585.9, 215049.8 ], [ 544574.9, 215038.5 ], [ 544572.6, 215023.0 ], [ 544606.1, 214954.0 ], [ 544628.4, 214941.3 ], [ 544728.1, 214932.5 ], [ 544740.9, 214911.1 ], [ 544734.4, 214888.8 ], [ 544716.6, 214874.9 ], [ 544661.6, 214854.5 ], [ 544612.1, 214845.0 ], [ 544574.6, 214849.1 ], [ 544496.1, 214808.3 ], [ 544431.6, 214791.0 ], [ 544360.9, 214786.0 ], [ 544330.4, 214768.3 ], [ 544328.9, 214752.8 ], [ 544334.9, 214748.3 ], [ 544463.6, 214724.5 ], [ 544511.6, 214699.5 ], [ 544566.8, 214662.4 ], [ 544606.0, 214612.8 ], [ 544613.1, 214575.3 ], [ 544629.1, 214552.8 ], [ 544642.9, 214507.3 ], [ 544639.7, 214408.0 ], [ 544625.5, 214374.1 ], [ 544572.1, 214291.8 ], [ 544550.1, 214276.0 ], [ 544515.6, 214227.8 ], [ 544490.6, 214155.5 ], [ 544492.6, 214144.3 ], [ 544554.3, 214060.1 ], [ 544660.6, 214015.0 ], [ 544688.9, 213984.0 ], [ 544675.6, 213971.0 ], [ 544647.6, 213963.5 ], [ 544591.9, 213933.0 ], [ 544541.4, 213891.3 ], [ 544497.0, 213817.7 ], [ 544429.6, 213729.5 ], [ 544291.4, 213607.3 ], [ 544205.2, 213493.8 ], [ 544182.7, 213487.8 ], [ 544158.7, 213450.4 ], [ 544142.7, 213404.3 ], [ 544143.728, 213381.936 ], [ 544181.472, 213328.683 ], [ 544199.808, 213287.936 ], [ 544222.591, 213267.763 ], [ 544215.4, 213256.3 ], [ 544242.5, 213239.6 ], [ 544250.8, 213253.3 ], [ 544296.8, 213224.5 ], [ 544286.7, 213208.5 ], [ 544320.2, 213165.3 ], [ 544349.9, 213138.0 ], [ 544395.9, 213116.8 ], [ 544418.2, 213116.5 ], [ 544432.7, 213133.3 ], [ 544440.9, 213209.3 ], [ 544486.1, 213221.5 ], [ 544501.2, 213234.0 ], [ 544531.9, 213310.6 ], [ 544525.6, 213328.0 ], [ 544546.3, 213352.2 ], [ 544555.5, 213347.2 ], [ 544587.0, 213256.7 ], [ 544709.9, 213155.0 ], [ 544807.109, 213012.98 ], [ 544819.4, 213015.3 ], [ 544895.1, 213085.9 ], [ 544944.2, 213102.5 ], [ 544950.2, 213076.5 ], [ 544932.4, 213030.5 ], [ 544937.0, 212962.0 ], [ 544962.5, 212925.2 ], [ 544976.8, 212876.0 ], [ 545012.0, 212846.0 ], [ 545055.0, 212844.0 ], [ 545062.0, 212832.0 ], [ 545037.8, 212800.5 ], [ 545020.5, 212789.5 ], [ 544988.0, 212782.5 ], [ 544983.0, 212775.8 ], [ 544981.0, 212757.8 ], [ 544992.3, 212725.8 ], [ 544988.3, 212651.0 ], [ 545055.9, 212626.9 ], [ 545081.0, 212594.8 ], [ 545091.209, 212563.847 ], [ 545101.554, 212558.218 ], [ 545127.021, 212523.074 ], [ 545177.445, 212485.892 ], [ 545223.365, 212427.672 ], [ 545264.9, 212405.0 ], [ 545368.8, 212368.0 ], [ 545421.0, 212326.4 ], [ 545502.4, 212289.2 ], [ 545597.4, 212258.8 ], [ 545660.3, 212255.3 ], [ 545678.8, 212237.3 ], [ 545685.4, 212205.3 ], [ 545855.9, 212245.5 ], [ 546086.7, 212333.8 ], [ 546214.4, 212401.8 ], [ 546420.2, 212466.0 ], [ 546453.7, 212484.3 ], [ 546655.9, 212563.0 ], [ 546699.7, 212587.3 ], [ 546766.7, 212639.0 ], [ 546782.7, 212642.5 ], [ 546787.0, 212626.2 ], [ 546703.8, 212511.6 ], [ 546594.9, 212378.1 ], [ 546577.9, 212340.5 ], [ 546567.2, 212295.5 ], [ 546499.6, 212209.4 ], [ 546485.1, 212167.7 ], [ 546489.2, 212101.3 ], [ 546497.2, 212078.6 ], [ 546529.8, 212049.0 ], [ 546659.7, 212021.5 ], [ 546720.9, 211992.3 ], [ 546816.4, 211982.0 ], [ 546868.4, 212013.0 ], [ 546905.7, 212018.5 ], [ 546917.4, 212007.3 ], [ 546926.2, 211983.0 ], [ 546954.7, 211965.5 ], [ 547037.9, 211976.0 ], [ 547065.2, 211973.8 ], [ 547068.2, 211963.3 ], [ 547061.7, 211958.8 ], [ 546960.4, 211922.6 ], [ 546870.2, 211918.8 ], [ 546846.7, 211910.8 ], [ 546849.4, 211900.0 ], [ 546918.5, 211901.0 ], [ 546962.5, 211884.5 ], [ 546988.3, 211882.0 ], [ 547160.4, 211936.0 ], [ 547251.0, 211940.8 ], [ 547334.0, 211964.8 ], [ 547456.7, 212034.3 ], [ 547464.8, 212049.5 ], [ 547526.9, 211967.5 ], [ 547726.9, 212126.8 ], [ 547762.5, 212081.0 ], [ 547777.2, 212101.2 ], [ 547809.9, 212180.9 ], [ 547870.7, 212266.7 ], [ 547905.2, 212292.9 ], [ 547960.1, 212305.729 ], [ 548170.6, 212441.0 ], [ 548444.7, 212551.8 ], [ 548489.2, 212525.3 ], [ 548631.2, 212401.8 ], [ 548641.1, 212380.0 ], [ 548856.8, 212068.8 ], [ 548914.7, 211953.0 ], [ 548959.1, 211818.8 ], [ 548981.1, 211772.4 ], [ 549016.9, 211741.4 ], [ 549122.8, 211678.4 ], [ 549145.2, 211656.1 ], [ 549158.1, 211629.3 ], [ 549157.5, 211597.9 ], [ 549144.7, 211568.9 ], [ 549045.5, 211427.8 ], [ 549039.4, 211401.6 ], [ 549037.6, 211309.9 ], [ 549030.019, 211298.694 ], [ 548985.3, 211301.2 ], [ 548971.1, 211286.4 ], [ 548986.8, 211230.9 ], [ 548966.6, 211215.7 ], [ 548968.1, 211182.7 ], [ 548961.1, 211166.9 ], [ 548942.1, 211161.4 ], [ 548910.6, 211185.9 ], [ 548912.6, 211162.4 ], [ 548906.3, 211157.4 ], [ 548875.8, 211193.4 ], [ 548858.6, 211229.4 ], [ 548849.1, 211230.4 ], [ 548837.8, 211218.9 ], [ 548829.8, 211222.9 ], [ 548828.1, 211238.7 ], [ 548806.5, 211231.6 ], [ 548820.1, 211219.3 ], [ 548845.6, 211164.5 ], [ 548953.3, 211053.5 ], [ 549009.3, 211025.2 ], [ 549081.6, 211007.2 ], [ 549092.6, 210996.4 ], [ 549045.8, 211005.5 ], [ 548982.6, 210995.0 ], [ 548899.1, 210958.0 ], [ 548826.0, 210907.9 ], [ 548846.6, 210852.1 ], [ 548848.4, 210827.4 ], [ 548803.0, 210701.0 ], [ 548788.6, 210615.3 ], [ 548787.3, 210573.6 ], [ 548808.6, 210492.4 ], [ 548800.3, 210441.1 ], [ 548735.1, 210365.5 ], [ 548688.3, 210328.1 ], [ 548608.6, 210245.6 ], [ 548592.8, 210218.0 ], [ 548561.2, 210089.4 ], [ 548533.3, 210049.6 ], [ 548251.2, 209883.5 ], [ 548151.5, 209809.7 ], [ 548092.2, 209748.8 ], [ 548023.2, 209692.6 ], [ 548011.3, 209652.8 ], [ 547970.1, 209579.9 ], [ 547920.2, 209466.4 ], [ 547902.6, 209378.2 ], [ 547873.3, 209328.0 ], [ 547872.3, 209290.1 ], [ 547851.5, 209244.4 ], [ 547831.0, 209223.9 ], [ 547739.3, 209164.9 ], [ 547642.5, 209038.6 ], [ 547582.8, 209008.6 ], [ 547551.7, 208981.8 ], [ 547731.8, 208969.8 ], [ 547781.7, 208962.6 ], [ 547833.5, 208942.3 ], [ 547831.7, 208932.8 ], [ 547818.0, 208924.3 ], [ 547746.0, 208890.9 ], [ 547532.7, 208772.8 ], [ 547467.5, 208695.8 ], [ 547472.0, 208677.1 ], [ 547554.1, 208592.5 ], [ 547637.1, 208555.0 ], [ 547748.7, 208526.4 ], [ 547753.5, 208504.2 ], [ 547713.1, 208421.1 ], [ 547700.4, 208414.3 ], [ 547661.8, 208416.1 ], [ 547603.2, 208403.0 ], [ 547538.5, 208353.0 ], [ 547512.2, 208296.6 ], [ 547508.9, 208181.4 ], [ 547439.8, 208099.9 ], [ 547421.6, 208068.1 ], [ 547404.7, 208055.7 ], [ 547317.1, 208020.7 ], [ 547259.6, 208024.7 ], [ 547227.9, 208012.9 ], [ 547210.6, 208001.4 ], [ 547185.6, 207950.2 ], [ 547127.0, 207915.4 ], [ 547059.4, 207885.9 ], [ 547055.0, 207852.1 ], [ 547027.3, 207864.8 ], [ 547004.3, 207866.8 ], [ 546946.3, 207852.0 ], [ 546894.0, 207815.3 ], [ 546819.4, 207747.1 ], [ 546754.4, 207674.3 ], [ 546623.5, 207505.3 ], [ 546609.5, 207474.3 ], [ 546601.0, 207411.3 ], [ 546582.8, 207424.3 ], [ 546575.3, 207459.8 ], [ 546562.2, 207457.9 ], [ 546537.4, 207306.8 ], [ 546517.5, 207225.8 ], [ 546506.5, 207213.0 ], [ 546495.8, 207204.0 ], [ 546470.3, 207208.0 ], [ 546439.3, 207288.3 ], [ 546408.8, 207282.0 ], [ 546386.7, 207265.1 ], [ 546308.9, 207134.4 ], [ 546043.0, 206763.2 ], [ 545971.3, 206529.0 ], [ 545904.9, 206438.1 ], [ 545898.9, 206421.7 ], [ 545897.6, 206330.0 ], [ 545903.6, 206284.3 ], [ 545895.1, 206249.8 ], [ 545898.8, 206217.3 ], [ 545870.6, 206149.8 ], [ 545852.3, 206039.5 ], [ 545830.6, 206000.0 ], [ 545793.7, 205973.2 ], [ 545764.1, 205960.6 ], [ 545710.2, 205951.0 ], [ 545652.2, 205952.6 ], [ 545580.7, 205930.5 ], [ 545529.9, 205927.9 ], [ 545409.7, 205853.6 ], [ 545220.2, 205796.7 ], [ 545107.6, 205742.3 ], [ 544996.6, 205706.7 ], [ 544929.6, 205758.2 ], [ 544886.5, 205798.9 ], [ 544876.9, 205817.2 ], [ 544830.6, 205819.0 ], [ 544790.8, 205833.3 ], [ 544763.5, 205824.8 ], [ 544676.3, 205778.9 ], [ 544574.2, 205747.3 ], [ 544563.1, 205730.1 ], [ 544551.2, 205679.3 ], [ 544535.5, 205656.4 ], [ 544483.6, 205619.4 ], [ 544472.3, 205599.7 ], [ 544456.6, 205544.2 ], [ 544416.2, 205314.7 ], [ 544400.1, 205277.1 ], [ 544357.2, 205250.9 ], [ 544038.3, 205107.9 ], [ 543943.1, 205042.5 ], [ 543770.3, 204864.4 ], [ 543628.5, 204609.4 ], [ 543486.5, 204498.3 ], [ 543478.9, 204472.1 ], [ 543481.9, 204441.6 ], [ 543474.9, 204427.3 ], [ 543366.6, 204383.8 ], [ 543373.9, 204377.8 ], [ 543465.2, 204361.6 ], [ 543364.9, 204241.3 ], [ 543388.9, 204208.1 ], [ 543395.2, 204150.3 ], [ 543403.3, 204132.3 ], [ 543317.6, 204116.4 ], [ 543215.2, 204127.0 ], [ 543215.5, 204044.8 ], [ 543286.9, 204042.7 ], [ 543312.6, 204026.1 ], [ 543381.1, 203916.2 ], [ 543436.7, 203853.9 ], [ 543456.9, 203837.0 ], [ 543521.9, 203816.0 ], [ 543685.0, 203666.1 ], [ 543825.3, 203462.1 ], [ 543724.1, 203411.9 ], [ 543619.3, 203398.8 ], [ 543349.8, 203288.5 ], [ 543009.8, 203083.1 ], [ 542913.6, 203041.4 ], [ 542822.5, 202956.9 ], [ 542675.2, 202789.5 ], [ 542531.9, 202651.1 ], [ 542356.5, 202542.7 ], [ 542258.5, 202503.5 ], [ 542172.8, 202451.6 ], [ 542120.8, 202434.1 ], [ 542111.5, 202416.9 ], [ 542003.1, 202365.5 ], [ 541852.7, 202305.8 ], [ 541623.2, 202226.2 ], [ 541520.8, 202204.6 ], [ 541417.5, 202193.1 ], [ 541291.9, 202148.0 ], [ 541191.1, 202131.9 ], [ 541128.9, 202102.6 ], [ 541061.1, 202098.1 ], [ 541039.4, 202085.0 ], [ 541010.3, 202039.8 ], [ 540957.1, 202032.3 ], [ 540883.7, 201992.7 ], [ 540871.5, 201958.9 ], [ 540861.1, 201953.0 ], [ 540812.6, 201951.2 ], [ 540778.2, 201960.7 ], [ 540736.8, 202014.4 ], [ 540724.0, 202018.3 ], [ 540680.4, 202004.3 ], [ 540636.2, 201978.8 ], [ 540568.4, 201987.7 ], [ 540454.5, 202028.5 ], [ 540488.3, 201987.2 ], [ 540399.3, 201821.9 ], [ 540389.7, 201808.7 ], [ 540322.0, 201760.7 ], [ 540300.2, 201725.3 ], [ 540298.7, 201702.0 ], [ 540306.8, 201686.9 ], [ 540331.0, 201670.5 ], [ 540330.8, 201654.3 ], [ 540291.6, 201573.9 ], [ 540254.3, 201519.0 ], [ 540264.3, 201486.8 ], [ 540260.5, 201475.5 ], [ 540198.0, 201417.5 ], [ 540193.0, 201398.0 ], [ 540203.2, 201366.1 ], [ 540202.3, 201332.0 ], [ 540182.6, 201252.3 ], [ 540117.5, 201183.5 ], [ 540090.8, 201203.5 ], [ 540068.8, 201204.0 ], [ 540009.3, 201041.3 ], [ 539973.5, 200995.3 ], [ 539940.0, 200975.8 ], [ 539797.0, 200946.6 ], [ 539762.8, 200929.1 ], [ 539693.2, 200876.9 ], [ 539736.0, 200889.0 ], [ 539741.0, 200880.3 ], [ 539719.4, 200843.3 ], [ 539670.3, 200793.6 ], [ 539648.9, 200735.1 ], [ 539633.3, 200710.1 ], [ 539590.3, 200675.9 ], [ 539489.2, 200558.0 ], [ 539453.9, 200531.9 ], [ 539430.8, 200493.3 ], [ 539426.5, 200452.0 ], [ 539414.6, 200436.7 ], [ 539329.1, 200370.3 ], [ 539175.9, 200168.5 ], [ 539148.8, 200108.0 ], [ 539148.5, 200090.0 ], [ 539180.8, 200061.5 ], [ 539164.9, 199991.2 ], [ 539185.2, 199929.2 ], [ 539190.4, 199877.6 ], [ 539184.7, 199862.3 ], [ 539115.9, 199774.1 ], [ 539122.0, 199657.4 ], [ 539094.1, 199599.5 ], [ 539091.5, 199533.7 ], [ 539071.2, 199476.2 ], [ 539081.4, 199413.6 ], [ 539049.5, 199366.7 ], [ 538959.1, 199276.2 ], [ 538914.0, 199193.4 ], [ 538906.3, 199115.6 ], [ 538888.1, 199071.2 ], [ 538853.0, 198881.4 ], [ 538849.7, 198814.5 ], [ 538830.2, 198781.7 ], [ 538794.2, 198754.8 ], [ 538653.5, 198675.0 ], [ 538624.8, 198615.6 ], [ 538559.0, 198580.2 ], [ 538537.9, 198556.2 ], [ 538523.8, 198525.9 ], [ 538525.4, 198491.7 ], [ 538581.8, 198386.5 ], [ 538605.1, 198372.8 ], [ 538754.2, 198342.1 ], [ 538824.9, 198358.4 ], [ 538871.8, 198359.1 ], [ 538990.5, 198343.8 ], [ 539000.2, 198335.8 ], [ 538998.2, 198326.2 ], [ 538986.5, 198319.3 ], [ 538911.9, 198305.8 ], [ 538822.2, 198265.7 ], [ 538751.7, 198201.8 ], [ 538643.6, 198126.0 ], [ 538530.1, 198084.0 ], [ 538476.1, 198090.3 ], [ 538429.5, 198085.1 ], [ 538411.2, 198080.1 ], [ 538405.1, 198065.2 ], [ 538527.7, 197974.8 ], [ 538579.2, 197972.5 ], [ 538612.2, 197983.0 ], [ 538631.1, 197967.1 ], [ 538505.9, 197890.1 ], [ 538532.4, 197855.1 ], [ 538601.8, 197706.5 ], [ 538617.9, 197579.7 ], [ 538624.9, 197403.4 ], [ 538650.4, 197339.2 ], [ 538685.2, 197289.4 ], [ 538707.4, 197244.9 ], [ 538711.0, 197206.8 ], [ 538729.1, 197191.3 ], [ 538765.5, 197201.7 ], [ 538791.3, 197227.4 ], [ 538819.4, 197390.7 ], [ 538844.7, 197449.9 ], [ 538885.9, 197499.1 ], [ 539178.9, 197737.6 ], [ 539230.98, 197802.977 ], [ 539249.8, 197814.5 ], [ 539297.3, 197865.4 ], [ 539412.1, 197939.7 ], [ 539497.3, 198034.9 ], [ 539530.3, 198063.1 ], [ 539665.5, 198150.9 ], [ 539748.7, 198164.9 ], [ 539879.9, 198169.0 ], [ 539929.4, 198181.9 ], [ 539998.2, 198189.8 ], [ 540062.137, 198176.394 ], [ 540058.5, 198138.1 ], [ 540127.3, 198130.9 ], [ 540170.7, 198134.2 ], [ 540209.3, 198142.3 ], [ 540325.8, 198187.5 ], [ 540479.9, 198207.4 ], [ 540539.0, 198207.2 ], [ 540639.3, 198241.2 ], [ 540758.2, 198306.6 ], [ 540805.6, 198324.6 ], [ 540914.7, 198329.4 ], [ 541073.4, 198317.1 ], [ 541140.0, 198323.2 ], [ 541224.8, 198347.7 ], [ 541300.0, 198390.9 ], [ 541390.1, 198455.1 ], [ 541436.6, 198497.4 ], [ 541469.9, 198542.0 ], [ 541506.2, 198625.7 ], [ 541569.2, 198637.9 ], [ 541573.6, 198695.3 ], [ 541582.4, 198710.2 ], [ 541684.3, 198785.8 ], [ 541692.4, 198800.7 ], [ 541707.9, 198791.9 ], [ 541763.4, 198808.2 ], [ 541813.4, 198805.9 ], [ 541886.4, 198781.9 ], [ 541986.2, 198735.1 ], [ 541965.2, 198647.8 ], [ 542002.5, 198554.7 ], [ 542018.4, 198490.1 ], [ 542021.6, 198452.3 ], [ 542010.7, 198334.7 ], [ 542016.9, 198296.0 ], [ 542050.5, 198262.1 ], [ 542083.5, 198249.3 ], [ 542158.2, 198260.3 ], [ 542230.5, 198248.8 ], [ 542275.8, 198264.3 ], [ 542365.5, 198328.4 ], [ 542432.4, 198344.5 ], [ 542500.6, 198387.5 ], [ 542551.6, 198380.8 ], [ 542606.2, 198414.3 ], [ 542679.6, 198403.6 ], [ 542730.5, 198417.4 ], [ 542750.7, 198413.4 ], [ 542773.9, 198388.8 ], [ 542839.9, 198384.3 ], [ 542869.0, 198386.8 ], [ 543019.1, 198432.8 ], [ 543065.4, 198428.1 ], [ 543168.0, 198503.9 ], [ 543201.8, 198502.8 ], [ 543330.7, 198550.9 ], [ 543384.1, 198560.1 ], [ 543566.4, 198617.4 ], [ 543691.2, 198669.6 ], [ 543754.4, 198711.5 ], [ 543810.9, 198722.6 ], [ 543863.0, 198747.9 ], [ 543957.0, 198758.4 ], [ 544097.4, 198854.4 ], [ 544118.1, 198874.4 ], [ 544133.9, 198876.4 ], [ 544144.9, 198863.4 ], [ 544143.4, 198851.6 ], [ 544096.3, 198834.5 ], [ 544065.1, 198786.9 ], [ 544011.9, 198726.8 ], [ 543973.6, 198703.2 ], [ 543962.0, 198687.5 ], [ 543843.2, 198596.5 ], [ 543788.5, 198560.9 ], [ 543736.1, 198540.3 ], [ 543676.8, 198504.2 ], [ 543655.0, 198479.5 ], [ 543480.0, 198357.3 ], [ 543444.7, 198311.9 ], [ 543305.2, 198199.5 ], [ 543047.8, 198036.5 ], [ 542986.6, 197988.7 ], [ 542942.5, 197966.9 ], [ 542889.5, 197916.5 ], [ 542746.9, 197852.8 ], [ 542486.7, 197669.3 ], [ 542397.6, 197622.8 ], [ 542306.8, 197550.6 ], [ 542152.1, 197450.2 ], [ 542065.2, 197363.5 ], [ 542007.9, 197322.3 ], [ 541890.6, 197267.4 ], [ 541872.9, 197248.0 ], [ 541858.3, 197173.8 ], [ 541880.1, 197156.7 ], [ 541942.3, 197160.6 ], [ 542100.2, 197209.7 ], [ 542206.4, 197271.4 ], [ 542265.6, 197285.4 ], [ 542296.3, 197300.9 ], [ 542380.6, 197362.3 ], [ 542414.0, 197374.4 ], [ 542460.3, 197407.6 ], [ 542534.3, 197445.5 ], [ 542614.5, 197437.1 ], [ 542673.5, 197406.8 ], [ 542749.6, 197429.4 ], [ 542790.6, 197469.6 ], [ 542840.574, 197491.363 ], [ 542941.0, 197491.6 ], [ 542737.6, 197321.8 ], [ 542711.9, 197290.8 ], [ 542704.3, 197266.0 ], [ 542701.8, 197246.9 ], [ 542728.0, 197018.7 ], [ 542740.1, 196996.4 ], [ 542804.1, 196957.4 ], [ 542902.0, 196950.2 ], [ 543065.0, 196970.9 ], [ 543120.5, 196936.6 ], [ 543198.6, 197019.8 ], [ 543249.4, 197048.6 ], [ 543292.4, 197047.6 ], [ 543362.5, 197013.5 ], [ 543415.1, 197007.3 ], [ 543447.6, 197015.1 ], [ 543526.2, 197085.8 ], [ 543575.8, 197104.6 ], [ 543633.0, 197098.3 ], [ 543653.5, 197079.3 ], [ 543665.2, 197085.3 ], [ 543850.7, 197074.3 ], [ 543880.0, 197081.3 ], [ 543908.1, 197096.6 ], [ 543953.7, 197134.8 ], [ 544118.2, 197394.3 ], [ 544175.7, 197456.8 ], [ 544207.5, 197472.7 ], [ 544233.6, 197497.9 ], [ 544244.9, 197523.9 ], [ 544229.6, 197590.4 ], [ 544231.1, 197636.0 ], [ 544279.7, 197712.1 ], [ 544301.2, 197760.6 ], [ 544333.8, 197795.3 ], [ 544356.9, 197804.1 ], [ 544414.4, 197806.1 ], [ 544479.289, 197833.765 ], [ 544551.795, 197809.892 ], [ 544592.516, 197810.13 ], [ 544634.1, 197822.7 ], [ 544682.768, 197847.993 ], [ 544698.7, 197785.7 ], [ 544716.0, 197766.2 ], [ 544776.3, 197711.9 ], [ 544827.0, 197698.6 ], [ 544861.3, 197683.4 ], [ 544878.9, 197666.9 ], [ 544944.9, 197561.7 ], [ 545010.0, 197485.2 ], [ 545036.4, 197435.6 ], [ 545064.0, 197362.0 ], [ 545106.7, 197314.7 ], [ 545118.7, 197280.5 ], [ 545153.2, 197223.3 ], [ 545166.5, 197220.4 ], [ 545203.8, 197233.5 ], [ 545284.6, 197229.7 ], [ 545326.6, 197243.9 ], [ 545434.882, 197302.236 ], [ 545466.497, 197240.805 ], [ 545375.3, 197158.5 ], [ 545230.2, 196995.3 ], [ 545176.3, 196943.9 ], [ 545130.5, 196832.7 ], [ 545126.3, 196685.5 ], [ 545113.4, 196610.4 ], [ 545077.9, 196528.5 ], [ 545055.5, 196442.2 ], [ 544998.8, 196375.3 ], [ 544982.0, 196335.5 ], [ 544978.6, 196308.0 ], [ 544983.8, 196267.1 ], [ 544959.9, 196286.8 ], [ 544918.8, 196293.5 ], [ 544851.3, 196294.8 ], [ 544723.8, 196285.6 ], [ 544699.2, 196272.5 ], [ 544602.2, 196140.9 ], [ 544539.3, 196096.9 ], [ 544504.4, 196012.9 ], [ 544467.9, 195969.2 ], [ 544462.9, 195949.6 ], [ 544467.1, 195917.4 ], [ 544453.6, 195874.6 ], [ 544435.7, 195855.5 ], [ 544363.9, 195823.2 ], [ 544337.3, 195803.0 ], [ 544310.7, 195758.5 ], [ 544221.2, 195678.4 ], [ 544151.1, 195595.2 ], [ 544137.1, 195590.4 ], [ 544126.5, 195562.5 ], [ 543999.7, 195353.5 ], [ 543945.3, 195300.3 ], [ 543847.4, 195181.6 ], [ 543810.4, 195151.3 ], [ 543715.7, 195114.1 ], [ 543677.995, 195084.653 ], [ 543638.0, 195035.6 ], [ 543595.8, 194959.1 ], [ 543572.7, 194878.2 ], [ 543518.2, 194799.1 ], [ 543468.5, 194679.6 ], [ 543435.1, 194622.2 ], [ 543382.477, 194560.997 ], [ 543185.9, 194400.1 ], [ 543163.4, 194374.8 ], [ 543153.6, 194345.1 ], [ 543160.4, 194235.2 ], [ 543106.9, 194276.6 ], [ 543081.6, 194285.9 ], [ 543051.4, 194286.3 ], [ 543007.4, 194302.8 ], [ 542893.6, 194295.8 ], [ 542814.4, 194265.3 ], [ 542736.866, 194173.763 ], [ 542734.894, 194157.843 ], [ 542705.8, 194105.8 ], [ 542701.4, 194024.1 ], [ 542689.507, 193986.831 ], [ 542646.2, 193936.4 ], [ 542597.1, 193896.1 ], [ 542549.3, 193872.8 ], [ 542428.2, 193855.5 ], [ 542336.6, 193825.1 ], [ 542292.904, 193803.114 ], [ 542220.2, 193741.8 ], [ 542189.9, 193706.7 ], [ 542172.0, 193681.5 ], [ 542163.8, 193634.3 ], [ 542137.0, 193605.1 ], [ 542134.978, 193593.096 ], [ 542050.1, 193573.8 ], [ 541960.25, 193538.915 ], [ 541818.668, 193538.252 ], [ 541661.0, 193446.3 ], [ 541652.3, 193429.9 ], [ 541597.399, 193400.443 ], [ 541580.227, 193407.324 ], [ 541547.9, 193438.7 ], [ 541402.7, 193448.9 ], [ 541343.2, 193469.2 ], [ 541228.0, 193453.4 ], [ 541199.5, 193436.4 ], [ 541188.8, 193437.0 ], [ 541057.8, 193342.4 ], [ 541036.9, 193321.5 ], [ 540997.2, 193261.7 ], [ 540874.3, 193155.0 ], [ 540821.8, 193120.9 ], [ 540757.9, 193095.7 ], [ 540721.0, 193004.1 ], [ 540639.0, 192941.5 ], [ 540632.5, 192771.9 ], [ 540659.7, 192720.1 ], [ 540709.8, 192659.0 ], [ 540717.0, 192605.7 ], [ 540655.0, 192557.9 ], [ 540616.5, 192519.5 ], [ 540590.6, 192520.5 ], [ 540520.1, 192502.0 ], [ 540427.1, 192456.8 ], [ 540226.1, 192379.0 ], [ 540182.8, 192348.5 ], [ 540103.0, 192329.4 ], [ 540048.2, 192340.2 ], [ 539954.0, 192306.3 ], [ 539872.1, 192302.4 ], [ 539829.5, 192324.1 ], [ 539478.7, 192403.2 ], [ 539435.1, 192409.6 ], [ 539305.2, 192408.1 ], [ 539212.1, 192514.3 ], [ 539182.1, 192520.0 ], [ 539233.6, 192386.8 ], [ 539228.1, 192283.4 ], [ 539212.8, 192242.9 ], [ 539191.6, 192209.0 ], [ 539041.1, 192046.7 ], [ 538923.9, 191965.5 ], [ 538896.9, 191930.5 ], [ 538824.4, 191765.2 ], [ 538803.1, 191743.2 ], [ 538318.6, 191427.2 ], [ 538110.2, 191353.4 ], [ 538056.0, 191328.8 ], [ 537280.8, 190874.6 ], [ 537219.1, 190845.9 ], [ 536463.3, 190556.5 ], [ 536461.096, 190584.789 ], [ 536448.0, 190592.7 ], [ 536417.2, 190602.0 ], [ 536306.1, 190610.6 ], [ 535867.9, 190612.6 ], [ 535816.4, 190604.6 ], [ 535717.1, 190604.9 ], [ 535525.4, 190562.0 ], [ 535466.7, 190526.2 ], [ 535430.7, 190487.8 ], [ 535392.8, 190460.7 ], [ 535301.002, 190430.137 ], [ 535240.5, 190369.4 ], [ 535154.284, 190247.625 ], [ 535022.8, 190168.6 ], [ 534862.6, 190115.7 ], [ 534791.396, 190059.308 ], [ 534711.9, 190033.42 ], [ 534602.8, 189956.6 ], [ 534522.7, 189932.6 ], [ 534483.3, 189901.2 ], [ 534399.207, 189875.979 ], [ 534366.0, 189898.3 ], [ 534338.3, 189907.8 ], [ 534257.0, 189874.2 ], [ 534194.3, 189817.5 ], [ 534066.8, 189723.6 ], [ 534034.9, 189680.9 ], [ 534006.1, 189655.3 ], [ 533894.1, 189570.7 ], [ 533791.4, 189428.6 ], [ 533725.6, 189363.1 ], [ 533645.6, 189329.5 ], [ 533475.8, 189300.0 ], [ 533460.5, 189292.1 ], [ 533435.9, 189237.1 ], [ 533398.8, 189192.3 ], [ 533416.7, 189130.1 ], [ 533416.8, 189107.1 ], [ 533384.3, 189032.6 ], [ 533353.6, 188985.7 ], [ 533321.0, 188951.3 ], [ 533301.5, 188913.8 ], [ 533267.5, 188885.8 ], [ 533204.8, 188805.6 ], [ 533190.5, 188796.0 ], [ 533158.5, 188687.4 ], [ 533164.0, 188580.3 ], [ 533117.0, 188486.6 ], [ 533118.6, 188458.7 ], [ 533095.4, 188441.2 ], [ 532949.1, 188275.5 ], [ 532937.9, 188186.1 ], [ 532926.9, 188160.3 ], [ 532922.6, 188124.5 ], [ 532889.4, 188025.0 ], [ 532834.9, 187804.1 ], [ 532782.691, 187671.334 ], [ 532784.8, 187653.1 ], [ 532771.029, 187602.258 ], [ 532762.6, 187608.8 ], [ 532689.9, 187617.3 ], [ 532657.972, 187588.512 ], [ 532625.215, 187544.603 ], [ 532558.2, 187423.2 ], [ 532531.7, 187389.7 ], [ 532507.2, 187382.1 ], [ 532436.1, 187338.9 ], [ 532364.932, 187344.463 ], [ 532348.5, 187338.4 ], [ 532268.4, 187248.0 ], [ 532204.292, 187147.675 ], [ 532148.7, 187122.8 ], [ 532110.2, 187076.3 ], [ 532029.6, 187058.5 ], [ 532004.0, 187059.0 ], [ 531710.9, 186932.0 ], [ 531672.1, 186974.3 ], [ 531650.927, 186986.0 ], [ 531615.302, 186994.302 ], [ 531648.7, 187030.0 ], [ 531678.7, 187078.8 ], [ 531737.9, 187226.2 ], [ 531815.1, 187321.8 ], [ 531835.4, 187398.3 ], [ 531883.3, 187463.6 ], [ 531885.911, 187477.664 ], [ 531874.476, 187482.515 ], [ 531824.0, 187449.5 ], [ 531648.5, 187395.0 ], [ 531497.396, 187364.073 ], [ 531483.323, 187371.727 ], [ 531481.356, 187383.865 ], [ 531446.9, 187384.0 ], [ 531408.8, 187366.6 ], [ 531339.5, 187310.0 ], [ 531275.238, 187241.304 ], [ 531258.6, 187230.7 ], [ 531231.1, 187226.7 ], [ 531195.6, 187244.0 ], [ 531178.5, 187241.8 ], [ 531118.144, 187214.736 ], [ 531074.9, 187160.3 ], [ 530951.3, 187074.2 ], [ 530894.4, 187058.2 ], [ 530841.0, 187055.4 ], [ 530733.0, 187008.9 ], [ 530650.6, 186946.5 ], [ 530582.1, 186911.6 ], [ 530371.4, 186750.6 ], [ 530323.3, 186692.7 ], [ 530205.3, 186524.9 ], [ 530158.6, 186493.9 ], [ 530121.2, 186477.8 ], [ 530019.9, 186461.1 ], [ 529959.9, 186440.6 ], [ 529848.3, 186362.6 ], [ 529782.3, 186390.9 ], [ 529671.6, 186379.1 ], [ 529396.7, 186297.8 ], [ 529359.6, 186291.8 ], [ 529329.3, 186295.3 ], [ 529306.1, 186316.3 ], [ 529304.8, 186370.3 ], [ 529360.6, 186512.9 ], [ 529384.7, 186596.7 ], [ 529382.8, 186617.8 ], [ 529370.3, 186633.2 ], [ 529352.9, 186640.5 ], [ 529271.4, 186621.2 ], [ 529062.8, 186533.3 ], [ 528966.3, 186424.6 ], [ 528772.4, 186322.0 ], [ 528679.429, 186237.615 ] ], [ [ 528619.7, 186175.2 ], [ 528576.713, 186210.54 ], [ 528587.948, 186362.542 ], [ 528610.336, 186267.785 ], [ 528655.508, 186240.143 ], [ 528679.429, 186237.615 ] ], [ [ 611389.5, 266370.0 ], [ 611407.6, 266352.4 ], [ 611419.8, 266327.9 ], [ 611543.1, 266261.7 ], [ 611549.923, 266245.014 ], [ 611650.65, 266193.974 ], [ 611592.7, 266093.4 ], [ 611529.8, 266120.3 ], [ 611496.9, 266071.7 ], [ 611391.4, 266127.1 ], [ 611286.362, 266146.335 ], [ 611247.774, 266073.151 ], [ 611223.9, 266087.0 ], [ 611156.0, 265965.9 ] ], [ [ 528586.9, 186083.0 ], [ 528660.5, 186118.6 ], [ 528638.755, 186125.669 ], [ 528678.9, 186155.9 ], [ 528707.4, 186185.5 ], [ 528709.1, 186196.3 ], [ 528646.4, 186169.5 ], [ 528619.7, 186175.2 ] ], [ [ 528586.9, 186083.0 ], [ 528563.8, 186090.1 ], [ 528542.5, 186060.3 ], [ 528515.923, 185867.558 ], [ 528521.846, 185842.095 ] ], [ [ 553955.7, 217170.7 ], [ 554001.9, 217098.0 ], [ 553939.6, 217052.4 ], [ 553928.3, 217055.6 ], [ 553809.9, 217034.7 ], [ 553731.4, 216974.8 ], [ 553489.7, 216769.0 ], [ 553192.2, 217077.2 ], [ 553364.5, 217241.9 ] ], [ [ 553955.7, 217170.7 ], [ 553887.1, 217293.7 ], [ 553838.8, 217443.2 ], [ 553841.8, 217457.9 ], [ 553878.3, 217519.7 ], [ 553889.1, 217623.2 ], [ 553950.3, 217764.2 ], [ 554085.6, 217964.4 ], [ 554139.0, 218026.0 ], [ 554226.804, 218105.251 ], [ 554276.872, 218111.111 ], [ 554322.286, 218142.1 ], [ 554761.4, 218329.4 ], [ 554834.6, 218370.9 ], [ 554921.6, 218432.4 ], [ 554953.8, 218531.0 ], [ 555031.7, 218647.8 ], [ 555041.5, 218671.5 ], [ 555036.6, 218703.7 ], [ 555015.9, 218755.1 ], [ 554950.4, 218886.4 ], [ 555058.6, 218959.4 ], [ 555210.9, 219037.9 ], [ 555265.9, 219093.6 ], [ 555297.1, 219175.4 ], [ 555256.9, 219253.4 ], [ 555277.7, 219323.6 ], [ 555274.4, 219374.8 ], [ 555261.4, 219430.4 ], [ 555264.9, 219450.6 ], [ 555291.1, 219503.1 ], [ 555307.4, 219511.9 ], [ 555531.9, 219732.3 ], [ 555541.6, 219777.1 ], [ 555539.1, 219861.8 ], [ 555544.6, 219887.6 ], [ 555579.9, 219968.1 ], [ 555621.9, 220100.6 ], [ 555613.9, 220143.1 ], [ 555585.1, 220173.8 ], [ 555578.9, 220194.3 ], [ 555803.6, 220449.5 ], [ 555834.6, 220477.6 ], [ 555904.1, 220523.6 ], [ 556051.4, 220647.3 ], [ 556069.6, 220657.6 ], [ 556130.4, 220665.3 ], [ 556181.6, 220685.6 ], [ 556258.6, 220747.1 ], [ 556367.6, 220777.0 ], [ 556536.8, 220883.6 ], [ 556665.329, 220920.007 ], [ 556754.0, 220921.1 ], [ 556940.492, 221024.539 ], [ 557033.1, 221021.5 ], [ 557075.8, 221035.8 ], [ 557100.1, 221017.2 ], [ 557129.1, 221012.2 ], [ 557226.1, 221003.0 ], [ 557380.6, 221006.2 ], [ 557396.1, 220998.5 ], [ 557392.1, 220960.5 ], [ 557401.4, 220955.0 ], [ 557447.093, 220987.397 ], [ 557472.1, 220986.7 ], [ 557487.4, 220962.5 ], [ 557465.1, 220930.5 ], [ 557461.6, 220895.5 ], [ 557474.4, 220880.7 ], [ 557489.4, 220879.5 ], [ 557483.9, 220912.2 ], [ 557499.4, 220928.7 ], [ 557542.9, 220958.0 ], [ 557559.1, 220980.0 ], [ 557609.1, 220987.7 ], [ 557643.4, 221025.5 ], [ 557658.4, 221055.2 ], [ 557684.4, 221140.0 ], [ 557712.1, 221185.7 ], [ 557756.8, 221240.5 ], [ 557773.2, 221346.2 ], [ 557809.4, 221421.4 ], [ 557808.6, 221311.4 ], [ 557832.4, 221252.9 ], [ 557825.9, 221214.1 ], [ 557919.3, 221271.5 ], [ 557944.5, 221317.2 ], [ 558013.2, 221365.1 ], [ 558046.4, 221386.4 ], [ 558107.9, 221400.9 ], [ 558122.9, 221399.1 ], [ 558266.9, 221307.1 ], [ 558278.4, 221289.6 ], [ 558303.6, 221196.6 ], [ 558312.9, 221192.9 ], [ 558328.9, 221288.4 ], [ 558337.4, 221298.4 ], [ 558418.4, 221308.9 ], [ 558466.6, 221339.9 ], [ 558421.5, 221414.0 ], [ 558366.4, 221435.6 ], [ 558361.2, 221442.4 ], [ 558368.4, 221451.6 ], [ 558462.1, 221476.6 ], [ 558478.9, 221469.8 ], [ 558512.1, 221440.2 ], [ 558599.9, 221488.6 ], [ 558615.0, 221462.9 ], [ 558664.0, 221488.0 ], [ 558789.0, 221483.5 ], [ 558948.5, 221554.0 ], [ 558991.7, 221587.7 ], [ 558997.0, 221602.5 ], [ 558993.5, 221611.7 ], [ 558945.5, 221655.7 ], [ 558944.5, 221665.2 ], [ 558953.7, 221671.0 ], [ 559004.7, 221661.7 ], [ 559038.0, 221662.7 ], [ 559159.0, 221803.0 ], [ 559177.2, 221839.2 ], [ 559194.5, 221903.2 ], [ 559241.0, 221905.2 ], [ 559280.2, 221951.7 ], [ 559376.7, 221964.0 ], [ 559469.5, 221945.0 ], [ 559598.7, 221949.0 ], [ 559645.5, 221957.0 ], [ 559689.2, 221998.7 ], [ 559827.0, 221986.5 ], [ 559892.7, 221986.7 ], [ 560018.4, 222046.5 ], [ 560048.5, 222071.0 ], [ 560058.2, 222098.9 ], [ 560067.4, 222165.4 ], [ 560098.0, 222146.9 ], [ 560118.5, 222124.9 ], [ 560241.9, 221923.0 ], [ 560270.6, 221882.8 ], [ 560353.9, 221792.9 ], [ 560334.9, 221712.7 ], [ 560332.6, 221684.7 ], [ 560338.1, 221664.7 ], [ 560365.3, 221617.0 ], [ 560394.3, 221600.1 ], [ 560429.2, 221568.0 ], [ 560442.4, 221520.2 ], [ 560442.4, 221450.2 ], [ 560421.6, 221375.3 ], [ 560428.0, 221357.5 ], [ 560446.2, 221339.3 ], [ 560496.4, 221311.9 ], [ 560507.3, 221293.3 ], [ 560548.5, 221257.0 ], [ 560628.9, 221319.9 ], [ 560693.9, 221354.6 ], [ 560837.1, 221421.4 ], [ 561011.9, 221459.1 ], [ 561107.6, 221508.9 ], [ 561182.4, 221558.4 ], [ 561410.1, 221872.6 ], [ 561449.9, 221895.2 ], [ 561634.9, 221942.6 ], [ 561656.2, 221955.3 ], [ 561797.9, 222072.9 ], [ 561953.6, 222157.9 ], [ 562095.1, 222339.1 ], [ 562151.6, 222372.1 ], [ 562402.6, 222452.6 ], [ 562432.6, 222461.1 ], [ 562455.9, 222460.4 ], [ 562563.6, 222345.9 ], [ 562578.6, 222297.4 ], [ 562727.4, 222097.1 ], [ 562806.6, 222052.6 ], [ 562902.1, 222047.3 ], [ 562945.1, 222133.9 ], [ 562992.4, 222254.4 ], [ 563071.6, 222413.6 ], [ 563094.6, 222438.9 ], [ 563333.6, 222609.9 ], [ 563393.1, 222644.4 ], [ 563320.4, 222693.4 ], [ 563479.9, 222758.7 ], [ 563504.6, 222761.2 ], [ 563580.1, 222741.9 ], [ 563622.9, 222743.4 ], [ 563875.1, 222801.7 ], [ 563924.8, 222796.6 ], [ 563940.3, 222786.9 ], [ 563966.3, 222724.6 ], [ 564072.0, 222712.3 ], [ 564097.6, 222701.9 ], [ 564110.1, 222684.9 ], [ 564132.6, 222643.5 ], [ 564204.0, 222468.5 ], [ 564214.9, 222437.2 ], [ 564223.5, 222360.0 ], [ 564389.9, 222427.7 ], [ 564423.9, 222434.0 ], [ 564450.6, 222423.5 ], [ 564611.6, 222325.5 ], [ 564721.6, 222321.2 ], [ 564760.4, 222328.5 ], [ 564866.1, 222415.2 ], [ 564882.4, 222445.2 ], [ 564904.283, 222453.957 ], [ 564958.26, 222459.295 ], [ 564953.894, 222493.03 ], [ 564930.479, 222547.799 ], [ 564935.9, 222604.1 ], [ 564991.4, 222792.9 ], [ 565000.9, 222816.1 ], [ 565044.969, 222873.421 ], [ 565064.832, 222892.633 ], [ 565194.7, 222977.6 ], [ 565300.7, 223071.9 ], [ 565393.1, 223138.3 ], [ 565613.7, 223373.3 ], [ 565633.4, 223404.5 ], [ 565663.7, 223427.3 ], [ 565741.8, 223454.1 ], [ 565744.1, 223479.0 ], [ 565795.9, 223559.7 ], [ 565911.0, 223713.2 ], [ 565919.6, 223730.6 ], [ 565915.5, 223772.4 ], [ 565922.7, 223786.7 ], [ 565961.1, 223801.2 ], [ 566046.077, 223817.744 ], [ 565978.16, 223893.782 ], [ 565943.764, 223875.261 ], [ 565938.473, 223899.073 ], [ 565901.431, 223925.532 ], [ 565988.744, 224018.136 ], [ 566070.765, 224076.345 ], [ 566102.515, 224113.386 ], [ 566128.973, 224163.657 ], [ 566234.688, 224260.402 ], [ 566196.774, 224247.248 ], [ 566167.074, 224244.548 ], [ 566155.274, 224252.548 ], [ 566161.174, 224341.948 ], [ 566172.774, 224367.648 ], [ 566332.8, 224487.5 ], [ 566414.6, 224524.3 ], [ 566523.7, 224596.3 ], [ 566615.6, 224682.9 ], [ 566840.2, 224869.1 ], [ 566942.0, 224932.9 ], [ 566977.0, 224941.4 ], [ 567001.3, 224940.0 ], [ 567110.0, 224915.2 ], [ 567161.7, 224886.2 ], [ 567176.7, 224887.0 ], [ 567277.0, 224935.4 ], [ 567267.6, 224990.2 ], [ 567265.6, 225142.2 ], [ 567278.4, 225265.8 ], [ 567302.5, 225339.1 ], [ 567374.3, 225427.8 ], [ 567347.8, 225476.0 ], [ 567340.5, 225504.7 ], [ 567337.9, 225538.8 ], [ 567347.4, 225605.5 ], [ 567339.1, 225668.7 ], [ 567350.2, 225723.2 ], [ 567323.4, 225785.2 ], [ 567303.5, 225797.2 ], [ 567217.8, 225806.8 ], [ 567034.7, 225853.3 ], [ 566899.6, 225780.6 ], [ 566864.5, 225750.5 ], [ 566839.0, 225709.0 ], [ 566825.8, 225698.1 ], [ 566805.9, 225694.7 ], [ 566752.9, 225708.2 ], [ 566615.1, 225759.0 ], [ 566610.7, 225769.7 ], [ 566624.1, 225815.7 ], [ 566661.7, 225891.1 ], [ 566655.6, 225899.9 ], [ 566645.3, 225899.7 ], [ 566546.9, 225786.4 ], [ 566518.1, 225738.5 ], [ 566517.8, 225723.3 ], [ 566575.3, 225687.7 ], [ 566603.1, 225655.0 ], [ 566642.0, 225633.7 ], [ 566686.26, 225586.054 ], [ 566618.9, 225625.8 ], [ 566516.4, 225674.4 ], [ 566488.9, 225681.9 ], [ 566414.1, 225677.3 ], [ 566401.1, 225683.0 ], [ 566396.2, 225693.2 ], [ 566398.2, 225774.1 ], [ 566384.4, 225790.7 ], [ 566363.8, 225795.4 ], [ 566350.7, 225807.8 ], [ 566344.7, 225827.7 ], [ 566303.2, 225868.7 ], [ 566251.3, 225882.1 ], [ 566208.2, 225913.8 ], [ 566218.1, 225942.6 ], [ 566429.0, 226179.7 ], [ 566581.0, 226308.2 ], [ 566726.8, 226457.8 ], [ 566790.9, 226495.9 ], [ 566836.6, 226498.7 ], [ 566939.3, 226522.0 ], [ 566992.7, 226521.6 ], [ 567019.4, 226528.4 ], [ 567082.9, 226562.6 ], [ 567211.6, 226615.9 ], [ 567314.307, 226645.102 ], [ 567450.4, 226783.0 ], [ 567561.2, 226878.1 ], [ 567575.1, 226898.3 ], [ 567609.4, 226991.5 ], [ 567618.9, 227003.5 ], [ 567664.4, 227032.0 ], [ 567703.5, 227089.2 ], [ 567739.5, 227113.4 ], [ 567803.5, 227134.8 ], [ 567853.9, 227161.5 ], [ 567862.8, 227178.8 ], [ 567860.6, 227208.7 ], [ 567801.4, 227330.2 ], [ 567776.9, 227361.2 ], [ 567752.6, 227380.2 ], [ 567673.7, 227415.4 ], [ 567646.3, 227465.0 ], [ 567628.6, 227523.2 ], [ 567624.6, 227583.9 ], [ 567634.0, 227643.0 ], [ 567645.9, 227687.9 ], [ 567698.4, 227794.1 ], [ 567707.6, 227831.2 ], [ 567665.031, 227974.406 ], [ 567753.8, 227962.7 ], [ 567757.542, 227956.284 ], [ 567828.8, 227961.1 ], [ 567883.1, 227948.3 ], [ 568040.8, 227965.3 ], [ 568172.1, 228021.8 ], [ 568184.6, 228029.9 ], [ 568198.9, 228053.6 ], [ 568309.8, 228119.1 ], [ 568332.8, 228089.0 ], [ 568428.6, 228125.9 ], [ 568517.4, 228148.6 ], [ 568652.4, 228158.4 ], [ 568717.9, 228182.6 ], [ 568743.6, 228202.1 ], [ 568750.8, 228215.9 ], [ 568741.9, 228273.4 ], [ 568751.1, 228294.4 ], [ 568716.9, 228359.2 ], [ 568709.2, 228391.7 ], [ 568719.0, 228436.2 ], [ 568738.4, 228473.5 ], [ 568777.6, 228502.3 ], [ 568781.3, 228529.2 ], [ 568632.4, 228770.3 ], [ 568828.846, 228730.177 ], [ 569188.6, 229074.7 ], [ 569217.9, 229093.3 ], [ 569249.771, 229094.479 ], [ 569290.6, 229114.0 ], [ 569269.1, 229154.9 ], [ 569115.9, 229358.6 ], [ 569344.5, 229621.1 ], [ 569491.4, 229823.1 ], [ 569538.3, 229864.3 ], [ 569612.1, 229897.2 ], [ 569665.8, 229931.1 ], [ 569769.6, 229938.7 ], [ 569799.5, 229954.7 ], [ 569923.2, 230046.5 ], [ 570103.7, 230123.6 ], [ 570169.2, 230159.5 ], [ 570243.8, 230186.3 ], [ 570327.3, 230234.8 ], [ 570456.0, 230275.8 ], [ 570516.8, 230319.0 ], [ 570669.7, 230395.7 ], [ 570838.65, 230538.145 ], [ 570896.2, 230555.2 ], [ 571012.5, 230645.0 ], [ 571068.7, 230677.9 ], [ 571106.9, 230713.2 ], [ 571269.2, 230832.1 ], [ 571357.5, 230888.3 ], [ 572006.4, 231232.4 ], [ 572029.3, 231209.8 ], [ 572511.7, 231671.5 ], [ 572570.3, 231749.1 ], [ 572661.7, 231836.7 ], [ 572608.1, 231934.3 ], [ 572560.1, 231995.8 ], [ 572514.1, 232075.3 ], [ 572468.8, 232306.2 ], [ 572466.4, 232351.9 ], [ 572485.4, 232505.8 ], [ 572510.7, 232628.5 ], [ 572534.1, 232678.8 ], [ 572587.9, 232745.5 ], [ 572593.5, 232788.3 ], [ 572555.4, 233031.0 ], [ 572508.7, 233163.0 ], [ 572471.5, 233233.8 ], [ 572357.3, 233343.0 ], [ 572256.9, 233332.6 ], [ 572135.2, 233284.0 ], [ 572027.2, 233249.5 ], [ 571699.2, 233174.3 ], [ 571634.5, 233078.0 ], [ 571628.7, 233095.5 ], [ 571605.5, 233126.3 ], [ 571532.6, 233212.4 ], [ 571498.6, 233235.4 ], [ 571340.1, 233314.7 ], [ 571321.4, 233320.4 ], [ 571243.4, 233321.2 ], [ 571151.4, 233340.2 ], [ 571046.1, 233414.9 ], [ 570976.4, 233448.7 ], [ 570938.9, 233456.9 ], [ 570801.6, 233462.4 ], [ 570746.6, 233469.9 ], [ 570701.4, 233484.0 ], [ 570649.3, 233436.1 ], [ 570615.0, 233388.5 ], [ 570567.8, 233344.8 ], [ 570549.9, 233316.4 ], [ 570546.3, 233278.7 ], [ 570565.6, 233181.2 ], [ 570557.6, 233143.4 ], [ 570544.6, 233128.7 ], [ 570330.9, 233077.4 ], [ 570177.4, 233003.9 ], [ 570133.4, 232999.4 ], [ 570062.4, 233006.6 ], [ 569999.9, 232989.9 ], [ 569589.1, 232827.1 ], [ 569507.9, 232744.6 ], [ 569334.6, 232675.9 ], [ 569231.3, 232658.8 ], [ 569063.6, 232609.1 ], [ 569015.1, 232600.4 ], [ 568959.9, 232597.6 ], [ 568884.3, 232618.0 ], [ 568885.387, 232613.831 ], [ 568855.841, 232613.39 ], [ 568586.9, 232921.7 ], [ 568544.2, 232978.2 ], [ 568459.2, 233113.4 ], [ 568455.0, 233135.6 ], [ 568465.1, 233163.8 ], [ 568503.8, 233216.7 ], [ 568491.5, 233240.1 ], [ 568458.8, 233256.3 ], [ 568360.4, 233252.9 ], [ 568270.9, 233269.1 ], [ 568135.6, 233270.4 ], [ 568090.4, 233293.9 ], [ 567732.667, 233552.355 ], [ 567728.6, 233549.6 ], [ 567714.1, 233589.6 ], [ 567714.6, 233628.6 ], [ 567726.6, 233671.4 ], [ 567717.5, 233690.0 ], [ 567700.6, 233690.4 ], [ 567658.8, 233664.9 ], [ 567628.1, 233656.1 ], [ 567553.8, 233658.1 ], [ 567485.4, 233670.6 ], [ 567449.1, 233666.5 ], [ 567407.9, 233654.5 ], [ 567248.2, 233573.8 ], [ 567163.4, 233557.2 ], [ 567086.0, 233603.9 ], [ 567061.993, 233607.06 ], [ 566813.9, 233755.7 ], [ 566787.5, 233783.8 ], [ 566746.3, 233861.3 ], [ 566705.2, 233901.6 ], [ 566614.0, 233946.3 ], [ 566529.8, 234013.1 ], [ 566468.1, 233999.5 ], [ 566367.3, 234015.4 ], [ 566285.2, 234061.4 ], [ 566263.5, 234086.2 ], [ 566247.3, 234122.1 ], [ 566242.8, 234193.1 ], [ 566260.858, 234260.694 ], [ 566399.4, 234321.8 ], [ 566404.4, 234334.0 ], [ 566393.9, 234349.0 ], [ 566360.1, 234361.0 ], [ 566265.1, 234364.8 ], [ 566255.0, 234372.1 ], [ 566153.7, 234391.6 ], [ 566031.661, 234457.51 ], [ 566013.2, 234459.4 ], [ 565948.7, 234488.6 ], [ 565787.2, 234508.2 ], [ 565735.3, 234603.3 ], [ 565682.6, 234735.7 ], [ 565687.6, 234789.7 ], [ 565681.8, 234818.8 ], [ 565748.0, 234834.4 ], [ 565836.7, 234886.0 ], [ 565961.4, 235004.8 ], [ 566076.2, 235079.6 ], [ 566193.3, 235172.8 ], [ 566264.0, 235238.9 ], [ 566303.6, 235289.6 ], [ 566323.4, 235305.5 ], [ 566544.3, 235430.5 ], [ 566587.7, 235497.5 ], [ 566714.8, 235623.9 ], [ 566766.0, 235649.6 ], [ 566775.2, 235668.4 ], [ 566767.4, 235686.9 ], [ 566754.6, 235691.2 ], [ 566730.9, 235693.5 ], [ 566664.4, 235683.6 ], [ 566612.4, 235698.7 ], [ 566585.2, 235698.5 ], [ 566495.4, 235670.8 ], [ 566466.0, 235671.9 ], [ 566441.8, 235688.7 ], [ 566409.5, 235729.0 ], [ 566367.9, 235753.3 ], [ 566346.2, 235749.3 ], [ 566289.0, 235710.5 ], [ 566273.3, 235687.2 ], [ 566250.5, 235670.9 ], [ 566168.3, 235712.6 ], [ 566147.2, 235738.5 ], [ 566101.3, 235773.2 ], [ 566056.8, 235784.9 ], [ 565922.4, 235760.2 ], [ 565856.9, 235726.7 ], [ 565811.1, 235719.7 ], [ 565763.1, 235725.7 ], [ 565836.7, 235766.9 ], [ 565918.2, 235798.9 ], [ 565944.7, 235821.4 ], [ 566010.5, 235901.0 ], [ 566041.2, 235907.9 ], [ 566098.5, 235891.5 ], [ 566109.794, 235895.165 ], [ 566118.7, 235922.4 ], [ 566093.4, 235956.9 ], [ 565972.0, 236004.3 ], [ 565965.5, 236019.3 ], [ 565979.2, 236037.5 ], [ 566019.7, 236032.9 ], [ 566049.7, 236038.3 ], [ 566168.0, 236065.8 ], [ 566237.2, 236089.3 ], [ 566273.2, 236120.5 ], [ 566293.1, 236162.6 ], [ 566413.5, 236280.5 ], [ 566587.2, 236406.8 ], [ 566658.7, 236439.7 ], [ 566767.0, 236466.1 ], [ 566857.4, 236480.3 ], [ 566944.5, 236505.1 ], [ 566969.4, 236515.1 ], [ 567065.5, 236579.2 ], [ 567121.8, 236656.8 ], [ 567150.3, 236719.7 ], [ 567152.2, 236822.3 ], [ 567172.7, 236884.7 ], [ 567204.9, 236934.8 ], [ 567235.1, 236953.7 ], [ 567291.1, 236969.1 ], [ 567381.7, 236975.1 ], [ 567434.4, 237002.9 ], [ 567506.6, 237023.7 ], [ 567677.7, 237132.9 ], [ 567758.4, 237172.9 ], [ 567827.2, 237216.9 ], [ 567843.2, 237223.4 ], [ 567931.3, 237226.9 ], [ 568042.3, 237270.9 ], [ 568155.0, 237328.4 ], [ 568285.0, 237385.1 ], [ 568410.5, 237426.6 ], [ 568588.9, 237539.4 ], [ 569272.2, 237827.1 ], [ 569428.9, 237844.1 ], [ 569497.87, 237857.707 ], [ 569592.6, 237758.8 ], [ 569651.5, 237708.1 ], [ 569750.7, 237641.6 ], [ 569853.7, 237551.1 ], [ 569934.9, 237516.4 ], [ 569983.7, 237509.1 ], [ 570072.4, 237512.9 ], [ 570242.8, 237550.1 ], [ 570291.0, 237567.4 ], [ 570474.5, 237662.6 ], [ 570520.3, 237768.9 ], [ 570544.7, 237862.2 ], [ 570579.8, 237879.4 ], [ 571048.3, 238013.1 ], [ 571212.0, 238085.6 ], [ 571420.4, 238226.0 ], [ 571570.9, 238249.8 ], [ 571606.9, 238243.0 ], [ 571627.4, 238245.5 ], [ 571670.7, 238271.3 ], [ 571790.4, 238298.0 ], [ 571953.8, 238373.8 ], [ 572010.7, 238411.7 ], [ 572132.7, 238451.3 ], [ 572164.6, 238467.1 ], [ 572249.3, 238535.6 ], [ 572393.5, 238636.4 ], [ 572436.2, 238654.5 ], [ 572471.4, 238697.5 ], [ 572590.1, 238746.5 ], [ 572644.9, 238754.0 ], [ 572720.066, 238794.484 ], [ 572688.7, 238835.7 ], [ 572782.5, 238863.6 ], [ 572986.8, 238872.1 ], [ 572956.3, 238968.0 ], [ 572940.5, 239086.3 ], [ 572943.8, 239104.3 ], [ 572965.0, 239129.0 ], [ 573026.3, 239156.3 ], [ 573157.5, 239198.3 ], [ 573210.3, 239227.3 ], [ 573317.8, 239271.3 ], [ 573456.8, 239313.3 ], [ 573463.5, 239322.3 ], [ 573332.0, 239406.3 ], [ 573276.0, 239419.3 ], [ 573128.0, 239413.0 ], [ 572815.8, 239363.0 ], [ 572799.8, 239367.8 ], [ 572802.5, 239379.5 ], [ 572916.3, 239432.3 ], [ 573395.3, 239601.5 ], [ 573396.5, 239617.3 ], [ 573403.8, 239623.0 ], [ 573450.0, 239632.0 ], [ 573515.8, 239659.5 ], [ 573662.8, 239701.5 ], [ 573744.5, 239712.5 ], [ 573821.0, 239760.0 ], [ 573864.0, 239767.8 ], [ 573877.0, 239787.6 ], [ 573861.5, 239802.8 ], [ 573745.0, 239814.5 ], [ 573701.8, 239809.8 ], [ 573696.5, 239819.3 ], [ 573714.3, 239839.0 ], [ 573741.3, 239834.4 ], [ 573803.8, 239839.6 ], [ 573807.0, 239890.6 ], [ 573853.0, 239893.3 ], [ 573882.5, 239957.9 ], [ 573936.0, 240004.4 ], [ 573989.3, 240026.9 ], [ 574058.8, 240038.9 ], [ 574145.3, 240028.9 ], [ 574293.0, 239991.6 ], [ 574432.2, 239997.4 ], [ 574535.2, 240026.6 ], [ 574711.7, 240126.6 ], [ 574785.7, 240154.6 ], [ 574902.4, 240157.6 ], [ 574976.4, 240190.6 ], [ 575018.2, 240196.4 ], [ 575093.2, 240186.7 ], [ 575137.7, 240146.2 ], [ 575148.4, 240143.7 ], [ 575304.2, 240197.7 ], [ 575415.2, 240274.5 ], [ 575474.7, 240297.5 ], [ 575518.8, 240345.6 ], [ 575521.7, 240365.0 ], [ 575514.2, 240403.7 ], [ 575549.4, 240442.7 ], [ 575557.7, 240534.7 ], [ 575577.4, 240608.7 ], [ 575570.7, 240665.7 ], [ 575574.7, 240691.0 ], [ 575614.4, 240752.0 ], [ 575678.4, 240827.5 ], [ 575706.9, 240891.5 ], [ 575738.4, 240932.7 ], [ 575776.2, 241000.7 ], [ 575803.4, 241148.0 ], [ 575819.2, 241283.5 ], [ 575808.7, 241283.7 ], [ 575705.2, 241188.2 ], [ 575568.9, 241087.2 ], [ 575527.2, 241067.0 ], [ 575458.3, 241046.4 ], [ 575392.0, 241006.1 ], [ 575377.3, 241009.6 ], [ 575354.542, 241035.1 ], [ 575334.3, 241046.4 ], [ 575305.8, 241048.4 ], [ 575209.3, 241033.0 ], [ 575197.5, 241040.6 ], [ 575161.729, 241106.114 ], [ 575224.3, 241142.4 ], [ 575274.5, 241161.9 ], [ 575325.0, 241164.1 ], [ 575361.3, 241156.4 ], [ 575381.8, 241160.9 ], [ 575430.5, 241185.1 ], [ 575484.0, 241226.1 ], [ 575521.8, 241290.6 ], [ 575552.5, 241373.9 ], [ 575607.8, 241488.6 ], [ 575650.0, 241521.1 ], [ 575901.3, 241616.4 ], [ 575984.5, 241624.4 ], [ 576047.3, 241643.4 ], [ 576143.3, 241635.1 ], [ 576149.3, 241645.4 ], [ 576160.8, 241751.4 ], [ 576180.8, 241791.4 ], [ 576218.3, 241827.1 ], [ 576386.3, 241948.4 ], [ 576537.0, 241988.1 ], [ 576699.7, 242005.4 ], [ 576873.0, 242003.6 ], [ 576919.7, 242013.1 ], [ 576946.0, 242025.8 ], [ 577025.2, 242101.3 ], [ 577054.4, 242160.9 ], [ 577073.7, 242240.1 ], [ 577076.7, 242344.6 ], [ 577028.9, 242570.7 ], [ 577027.7, 242641.4 ], [ 577042.4, 242724.6 ], [ 577072.9, 242765.8 ], [ 577119.4, 242773.1 ], [ 577196.6, 242768.6 ], [ 577345.0, 242720.0 ], [ 577406.2, 242688.1 ], [ 577447.4, 242632.3 ], [ 577547.9, 242564.1 ], [ 577711.5, 242495.3 ], [ 577813.5, 242463.8 ], [ 577880.2, 242461.6 ], [ 578117.4, 242485.3 ], [ 578223.6, 242529.8 ], [ 578318.6, 242619.5 ], [ 578416.2, 242748.8 ], [ 578496.6, 242828.7 ], [ 578528.7, 242870.4 ], [ 578583.2, 243000.0 ], [ 578628.2, 243067.3 ], [ 578711.2, 243247.1 ], [ 578740.9, 243340.3 ], [ 578746.7, 243439.3 ], [ 578767.2, 243557.0 ], [ 578758.7, 243680.6 ], [ 578766.4, 243755.6 ], [ 578780.8, 243809.6 ], [ 578803.5, 243860.0 ], [ 578883.2, 243978.6 ], [ 578922.9, 244018.8 ], [ 579049.4, 244090.3 ], [ 579121.2, 244152.8 ], [ 579144.7, 244164.6 ], [ 579225.9, 244180.6 ], [ 579320.1, 244209.1 ], [ 579454.7, 244211.9 ], [ 579609.5, 244243.3 ], [ 579624.1, 244254.0 ], [ 579671.2, 244326.8 ], [ 579796.4, 244423.3 ], [ 579886.4, 244484.1 ], [ 579915.6, 244517.1 ], [ 579919.9, 244549.6 ], [ 579860.1, 244627.8 ], [ 579832.2, 244692.0 ], [ 579824.8, 244785.7 ], [ 579849.3, 244877.2 ], [ 579801.0, 244819.5 ], [ 579728.0, 244772.0 ], [ 579704.1, 244734.4 ], [ 579699.4, 244738.7 ], [ 579714.1, 244785.7 ], [ 579708.6, 244934.2 ], [ 579712.4, 244973.7 ], [ 579732.1, 245011.9 ], [ 579775.9, 245058.7 ], [ 579787.4, 245079.2 ], [ 579790.9, 245121.9 ], [ 579784.4, 245192.2 ], [ 579726.3, 245344.0 ], [ 579650.8, 245482.2 ], [ 579643.8, 245525.0 ], [ 579589.3, 245648.2 ], [ 579571.6, 245704.7 ], [ 579492.8, 245806.5 ], [ 579430.2, 245943.5 ], [ 579372.1, 246051.4 ], [ 579320.304, 246096.663 ], [ 579290.9, 246099.1 ], [ 579247.9, 246124.9 ], [ 579193.6, 246144.9 ], [ 579130.751, 246145.958 ], [ 578949.4, 246076.2 ], [ 578663.9, 245985.9 ], [ 578581.775, 245924.817 ] ], [ [ 579593.0, 246308.5 ], [ 579358.6, 246380.1 ], [ 579308.336, 246357.276 ], [ 579203.6, 246370.1 ], [ 579163.6, 246364.2 ], [ 579066.744, 246325.102 ], [ 579017.0, 246313.1 ], [ 578945.3, 246312.8 ], [ 578755.4, 246267.8 ], [ 578714.3, 246248.8 ], [ 578677.4, 246214.3 ], [ 578674.384, 246191.247 ], [ 578543.5, 246083.1 ], [ 578509.897, 246019.667 ], [ 578498.951, 246015.638 ], [ 578523.616, 245977.381 ], [ 578581.775, 245924.817 ] ], [ [ 519207.3, 174343.8 ], [ 519380.7, 174408.2 ], [ 519440.1, 174438.5 ], [ 519533.7, 174514.8 ], [ 519551.7, 174542.9 ], [ 519553.8, 174556.9 ], [ 519547.7, 174573.4 ], [ 519523.7, 174601.8 ], [ 519535.9, 174667.6 ], [ 519534.4, 174678.4 ], [ 519517.2, 174690.0 ], [ 519540.4, 174792.7 ], [ 519647.3, 174947.5 ], [ 519755.7, 175052.4 ], [ 519872.2, 175153.5 ], [ 519883.9, 175171.9 ], [ 519876.9, 175227.5 ], [ 519883.9, 175258.8 ], [ 519910.0, 175293.2 ], [ 519996.2, 175353.3 ], [ 520017.9, 175378.0 ], [ 520032.6, 175427.7 ], [ 520034.2, 175490.3 ], [ 520041.5, 175513.7 ], [ 520034.4, 175524.4 ], [ 520062.9, 175553.7 ], [ 520121.3, 175593.1 ], [ 520104.2, 175621.1 ], [ 520156.0, 175597.5 ], [ 520155.0, 175627.5 ], [ 520117.1, 175702.1 ], [ 520150.3, 175680.3 ], [ 520131.4, 175706.0 ], [ 520155.9, 175728.5 ], [ 520147.6, 175742.3 ], [ 520140.0, 175783.3 ], [ 520107.3, 175813.7 ], [ 520096.3, 175833.2 ], [ 520041.9, 175962.6 ], [ 520003.7, 176077.4 ], [ 519936.7, 176196.4 ], [ 519908.3, 176279.6 ], [ 519915.5, 176312.5 ], [ 519972.8, 176351.1 ], [ 519966.6, 176305.7 ], [ 519973.9, 176281.4 ], [ 520002.2, 176251.3 ], [ 520135.9, 176171.0 ], [ 520246.3, 176090.7 ], [ 520306.8, 176066.0 ], [ 520383.2, 176004.3 ], [ 520449.2, 175977.2 ], [ 520501.2, 175979.7 ], [ 520524.3, 176044.8 ], [ 520530.1, 176079.9 ], [ 520554.7, 176123.4 ], [ 520630.7, 176124.4 ], [ 520697.2, 176115.6 ], [ 520733.5, 176131.1 ], [ 520730.7, 176138.6 ], [ 520740.8, 176154.8 ], [ 520768.1, 176160.8 ], [ 520804.1, 176182.7 ], [ 520763.8, 176263.3 ], [ 520742.9, 176386.5 ], [ 520688.7, 176480.0 ], [ 520680.6, 176516.3 ], [ 520661.9, 176553.7 ], [ 520674.6, 176586.6 ], [ 520680.2, 176630.5 ], [ 520776.8, 176730.1 ], [ 520740.7, 176817.8 ], [ 520731.8, 176873.0 ], [ 520731.3, 176918.8 ], [ 520760.7, 176978.5 ], [ 520762.0, 177003.7 ], [ 520744.4, 177067.4 ], [ 520723.2, 177105.1 ], [ 520685.6, 177138.9 ], [ 520665.8, 177147.9 ], [ 520565.9, 177165.0 ], [ 520532.9, 177166.7 ], [ 520428.2, 177151.0 ], [ 520342.6, 177148.7 ], [ 520280.7, 177164.9 ], [ 520256.8, 177176.0 ], [ 520171.2, 177239.1 ], [ 520111.2, 177267.5 ], [ 519881.6, 177342.4 ], [ 519860.4, 177362.1 ], [ 519854.8, 177379.1 ], [ 519857.5, 177411.1 ], [ 519867.1, 177427.3 ], [ 519969.3, 177444.2 ], [ 520114.4, 177433.4 ], [ 520233.9, 177466.9 ], [ 520384.7, 177489.7 ], [ 520483.7, 177512.5 ], [ 520625.4, 177565.4 ], [ 520655.6, 177583.4 ], [ 520719.4, 177660.3 ], [ 520726.7, 177681.1 ], [ 520686.5, 177830.8 ], [ 520689.8, 177875.4 ], [ 520725.0, 177909.3 ], [ 520762.2, 177921.0 ], [ 520830.7, 177925.7 ], [ 520969.4, 177920.0 ], [ 520995.1, 177927.9 ], [ 521040.1, 177964.9 ], [ 521122.1, 178009.7 ], [ 521273.5, 178048.3 ], [ 521339.9, 178045.5 ], [ 521389.8, 178036.2 ], [ 521494.1, 177996.0 ], [ 521578.2, 177981.3 ], [ 521621.0, 177977.9 ], [ 521690.6, 177986.7 ], [ 521728.3, 177984.6 ], [ 521782.0, 177964.2 ], [ 521870.6, 177960.3 ], [ 521903.3, 177964.5 ], [ 521922.1, 177977.9 ], [ 521900.6, 177994.5 ], [ 521893.6, 178023.9 ], [ 521909.2, 178055.6 ], [ 521930.0, 178193.6 ], [ 521940.6, 178204.5 ], [ 521992.6, 178225.7 ], [ 521998.3, 178233.3 ], [ 522000.4, 178270.5 ], [ 521986.9, 178318.6 ], [ 521964.6, 178349.4 ], [ 521981.4, 178377.9 ], [ 522023.0, 178404.8 ], [ 522052.4, 178477.0 ], [ 522152.8, 178480.4 ], [ 522205.1, 178520.8 ], [ 522211.467, 178520.272 ], [ 522226.4, 178493.4 ], [ 522240.8, 178483.5 ], [ 522274.0, 178526.9 ], [ 522293.0, 178537.8 ], [ 522360.3, 178532.2 ], [ 522418.7, 178549.1 ], [ 522452.8, 178537.8 ], [ 522556.4, 178459.4 ], [ 522613.1, 178449.0 ], [ 522682.0, 178453.2 ], [ 522736.4, 178491.9 ], [ 522805.6, 178560.2 ], [ 522840.9, 178586.6 ], [ 522869.4, 178596.0 ], [ 522940.2, 178604.9 ], [ 522954.8, 178614.4 ], [ 522971.8, 178641.1 ], [ 523040.2, 178655.5 ], [ 523079.1, 178673.4 ], [ 523098.4, 178691.9 ], [ 523102.7, 178723.1 ], [ 523162.8, 178785.9 ], [ 523247.4, 178801.3 ], [ 523360.1, 178846.1 ], [ 523371.5, 178860.0 ], [ 523383.3, 178923.4 ], [ 523447.0, 178994.9 ], [ 523524.3, 178974.2 ], [ 523540.6, 178965.1 ], [ 523553.8, 178939.6 ], [ 523573.0, 178927.6 ], [ 523607.9, 178925.6 ], [ 523645.7, 178932.4 ], [ 523716.7, 178905.2 ], [ 523777.3, 178909.0 ], [ 523830.1, 178936.7 ], [ 523865.5, 178986.0 ], [ 523959.0, 179001.8 ], [ 523963.5, 179028.3 ], [ 523952.9, 179087.8 ], [ 523962.0, 179107.4 ], [ 523976.3, 179113.4 ], [ 524002.8, 179112.6 ], [ 524077.8, 179060.5 ], [ 524112.8, 179075.6 ], [ 524150.2, 179119.3 ], [ 524192.4, 179150.3 ], [ 524196.8, 179187.6 ], [ 524178.9, 179225.9 ], [ 524180.1, 179246.7 ], [ 524195.9, 179274.2 ], [ 524236.5, 179275.5 ], [ 524249.3, 179266.7 ], [ 524249.0, 179165.5 ], [ 524270.8, 179149.0 ], [ 524338.1, 179117.4 ], [ 524383.3, 179289.9 ], [ 524422.7, 179338.8 ], [ 524459.3, 179365.6 ], [ 524488.3, 179383.0 ], [ 524548.3, 179399.2 ], [ 524626.3, 179385.0 ], [ 524717.0, 179390.5 ], [ 524733.5, 179398.3 ], [ 524742.7, 179574.4 ], [ 524736.1, 179634.3 ], [ 524757.0, 179726.0 ], [ 524883.1, 179953.6 ], [ 524901.9, 180021.4 ], [ 525013.0, 180205.7 ], [ 525072.4, 180368.4 ], [ 525134.1, 180447.4 ], [ 525169.4, 180511.4 ], [ 525172.0, 180532.4 ], [ 525131.1, 180620.6 ], [ 525130.6, 180654.5 ], [ 525164.9, 180763.4 ], [ 525182.9, 180795.4 ], [ 525185.5, 180824.9 ], [ 525283.9, 180859.4 ], [ 525381.9, 180927.9 ], [ 525515.2, 181007.8 ], [ 525938.7, 181322.7 ], [ 526032.4, 181464.7 ], [ 526042.7, 181490.2 ], [ 526097.2, 181562.3 ], [ 526192.4, 181651.9 ], [ 526221.5, 181709.3 ], [ 526292.8, 181788.1 ], [ 526387.1, 181838.4 ], [ 526479.0, 181916.1 ], [ 526511.855, 181969.779 ], [ 526578.069, 182018.669 ], [ 526655.7, 182056.5 ], [ 526833.4, 182167.6 ], [ 526910.3, 182243.2 ], [ 526968.3, 182317.9 ], [ 526987.0, 182331.1 ], [ 527019.8, 182341.8 ], [ 527139.0, 182355.2 ], [ 527229.6, 182402.5 ], [ 527346.5, 182415.8 ], [ 527385.9, 182409.8 ], [ 527425.2, 182411.9 ], [ 527456.9, 182424.2 ], [ 527594.9, 182494.5 ], [ 527649.5, 182530.8 ], [ 527699.2, 182551.2 ], [ 527890.9, 182697.7 ], [ 527947.6, 182731.5 ], [ 528134.1, 182907.0 ], [ 528149.3, 182930.4 ], [ 528164.1, 182970.0 ], [ 528168.5, 183062.4 ], [ 528192.2, 183135.6 ], [ 528172.7, 183145.1 ], [ 528170.2, 183152.4 ], [ 528178.2, 183183.4 ], [ 528261.1, 183236.0 ], [ 528272.4, 183248.8 ], [ 528295.7, 183286.3 ], [ 528359.6, 183356.5 ], [ 528396.9, 183416.4 ], [ 528486.0, 183524.1 ], [ 528522.8, 183591.1 ], [ 528537.6, 183603.5 ], [ 528637.2, 183612.0 ], [ 528883.5, 183693.5 ], [ 528943.8, 183689.9 ], [ 528997.6, 183696.4 ], [ 529057.4, 183715.4 ], [ 529112.7, 183721.4 ], [ 529166.2, 183744.2 ], [ 529227.1, 183742.4 ], [ 529270.5, 183748.7 ], [ 529351.3, 183780.0 ], [ 529441.9, 183763.7 ], [ 529479.0, 183748.0 ], [ 529544.3, 183738.2 ], [ 529636.6, 183711.0 ], [ 529729.1, 183696.4 ], [ 529914.7, 183649.6 ], [ 530075.4, 183591.3 ], [ 530098.5, 183579.4 ], [ 530101.4, 183564.2 ], [ 530129.3, 183533.7 ], [ 530199.3, 183505.2 ], [ 530212.3, 183505.7 ], [ 530233.2, 183553.8 ], [ 530311.1, 183656.2 ], [ 530329.9, 183693.1 ], [ 530333.5, 183709.4 ], [ 530318.6, 183768.8 ], [ 530325.5, 183840.9 ], [ 530396.8, 183918.6 ], [ 530402.8, 183932.5 ], [ 530400.9, 183954.4 ], [ 530453.2, 184031.9 ], [ 530534.5, 184095.6 ], [ 530557.5, 184121.5 ], [ 530565.4, 184171.9 ], [ 530601.0, 184220.7 ], [ 530629.1, 184247.4 ], [ 530691.6, 184268.3 ], [ 530713.5, 184282.6 ], [ 530747.9, 184321.7 ], [ 530778.1, 184371.4 ], [ 530859.5, 184526.8 ], [ 530859.0, 184548.1 ], [ 530829.5, 184602.6 ], [ 530816.5, 184619.1 ], [ 530692.8, 184697.6 ], [ 530643.2, 184774.8 ], [ 530628.0, 184812.0 ], [ 530622.0, 184849.8 ], [ 530570.6, 184911.3 ], [ 530468.3, 184987.1 ], [ 530359.7, 185048.9 ], [ 530310.8, 185058.7 ], [ 530233.4, 185062.2 ], [ 530164.5, 185038.4 ], [ 530051.4, 185021.5 ], [ 529976.7, 184988.5 ], [ 529867.5, 184961.1 ], [ 529850.6, 184951.8 ], [ 529837.5, 184933.5 ], [ 529771.1, 184889.6 ], [ 529664.3, 184832.6 ], [ 529454.3, 184768.5 ], [ 529417.0, 184763.7 ], [ 529179.4, 184760.1 ], [ 529141.6, 184747.6 ], [ 529046.7, 184778.4 ], [ 528721.1, 184835.1 ], [ 528627.1, 184883.3 ], [ 528579.4, 184918.9 ], [ 528559.0, 184949.1 ], [ 528543.5, 184998.4 ], [ 528534.5, 185067.7 ], [ 528540.7, 185178.4 ], [ 528520.7, 185258.7 ], [ 528524.5, 185267.2 ], [ 528515.4, 185348.2 ], [ 528486.2, 185436.3 ], [ 528376.7, 185415.0 ], [ 528346.0, 185416.9 ], [ 528441.0, 185607.2 ], [ 528499.021, 185794.594 ], [ 528521.846, 185842.095 ] ], [ [ 519207.3, 174343.8 ], [ 519184.9, 174307.6 ], [ 519130.2, 174252.3 ], [ 519069.2, 174165.8 ], [ 519069.9, 174132.8 ], [ 519123.1, 174070.5 ], [ 519000.7, 174005.7 ], [ 518973.6, 173972.6 ], [ 519013.2, 173922.2 ], [ 519023.8, 173894.7 ], [ 519021.5, 173844.9 ], [ 519001.5, 173756.7 ], [ 518967.8, 173712.4 ], [ 518870.9, 173669.5 ], [ 518768.5, 173644.3 ], [ 518701.5, 173607.0 ], [ 518651.3, 173564.9 ], [ 518499.1, 173466.9 ], [ 518430.3, 173433.9 ], [ 518057.5, 173344.9 ], [ 518011.9, 173342.5 ], [ 517975.3, 173329.7 ], [ 517916.6, 173295.2 ], [ 517782.8, 173187.4 ], [ 517624.9, 173094.2 ], [ 517615.7, 173056.6 ], [ 517669.0, 172952.0 ], [ 517678.3, 172802.5 ], [ 517671.3, 172771.1 ], [ 517623.6, 172725.1 ], [ 517572.9, 172686.9 ], [ 517521.1, 172658.2 ], [ 517500.3, 172630.2 ], [ 517476.5, 172616.2 ], [ 517417.8, 172589.6 ], [ 517384.8, 172618.4 ], [ 517374.0, 172614.2 ], [ 517328.0, 172559.2 ], [ 517257.6, 172451.2 ], [ 517192.5, 172385.3 ], [ 517151.0, 172307.7 ], [ 517142.4, 172229.4 ], [ 517109.4, 172179.8 ], [ 517105.5, 172144.3 ], [ 517116.6, 172137.3 ], [ 517136.6, 172038.0 ], [ 517135.0, 171995.1 ], [ 517125.4, 171975.8 ], [ 517033.7, 171896.9 ], [ 517010.5, 171887.2 ], [ 516957.0, 171890.3 ], [ 516854.0, 171825.3 ], [ 516817.2, 171818.1 ], [ 516699.9, 171677.1 ], [ 516665.3, 171655.2 ], [ 516641.9, 171630.0 ], [ 516561.8, 171584.9 ], [ 516509.9, 171546.6 ], [ 516449.4, 171529.7 ], [ 516364.9, 171529.4 ], [ 516289.4, 171454.8 ], [ 516202.0, 171403.3 ], [ 516170.3, 171366.1 ], [ 516140.2, 171283.1 ], [ 516124.6, 171162.4 ], [ 516059.9, 171016.0 ], [ 516049.1, 170977.0 ], [ 516041.7, 170817.9 ], [ 516017.3, 170726.1 ], [ 516012.1, 170645.0 ], [ 515998.4, 170566.5 ], [ 515918.1, 170407.8 ], [ 515914.4, 170339.5 ], [ 515896.9, 170261.9 ], [ 515903.4, 170202.3 ], [ 515898.5, 170179.4 ], [ 515860.1, 170090.1 ], [ 515834.6, 170000.0 ], [ 515812.3, 169951.4 ], [ 515787.1, 169821.4 ], [ 515746.2, 169733.6 ], [ 515747.3, 169708.8 ], [ 515764.0, 169675.0 ], [ 515792.6, 169477.9 ], [ 515789.8, 169418.9 ], [ 515740.4, 169306.6 ], [ 515722.3, 169163.6 ], [ 515678.0, 169070.6 ], [ 515660.3, 168931.7 ], [ 515646.2, 168891.3 ], [ 515620.3, 168846.1 ], [ 515592.5, 168835.1 ], [ 515475.1, 168861.3 ], [ 515452.8, 168892.1 ], [ 515447.3, 168921.1 ], [ 515432.6, 168949.3 ], [ 515415.9, 168960.1 ], [ 515374.9, 168957.6 ], [ 515305.0, 168907.8 ], [ 515305.3, 168898.6 ], [ 515232.9, 168881.2 ], [ 515202.6, 168931.6 ], [ 515137.3, 169009.6 ], [ 515052.5, 169075.3 ], [ 515000.0, 169103.0 ], [ 514931.9, 169126.2 ], [ 514853.0, 169143.8 ], [ 514819.2, 169140.1 ], [ 514712.4, 169041.3 ], [ 514706.7, 169022.6 ], [ 514708.6, 168964.4 ], [ 514666.1, 168883.8 ], [ 514628.0, 168857.6 ], [ 514434.9, 168783.2 ], [ 514374.9, 168783.2 ], [ 514337.4, 168792.4 ], [ 514293.6, 168787.2 ], [ 514267.4, 168776.0 ], [ 514261.1, 168764.7 ], [ 514263.0, 168734.3 ], [ 514226.3, 168708.6 ], [ 514183.9, 168702.8 ], [ 514174.6, 168687.5 ], [ 514187.5, 168681.7 ], [ 514199.3, 168664.8 ], [ 514200.4, 168650.9 ], [ 514145.8, 168607.8 ], [ 514107.8, 168550.7 ], [ 514066.0, 168503.1 ], [ 514040.2, 168440.5 ], [ 514027.4, 168426.5 ], [ 513935.6, 168356.7 ], [ 513889.4, 168335.5 ], [ 513850.6, 168268.5 ], [ 513659.4, 168129.0 ], [ 513579.9, 168061.5 ], [ 513552.0, 168021.8 ], [ 513447.9, 167962.7 ], [ 513329.9, 167877.9 ], [ 513283.6, 167809.6 ], [ 513252.1, 167791.1 ], [ 513211.1, 167787.9 ], [ 513184.9, 167771.6 ], [ 512956.9, 167582.1 ], [ 512877.1, 167547.9 ], [ 512829.1, 167511.9 ], [ 512677.1, 167423.1 ], [ 512577.6, 167354.9 ], [ 512461.1, 167297.4 ], [ 512275.9, 167175.9 ], [ 512081.9, 167065.6 ], [ 512035.6, 166988.6 ], [ 511951.6, 166912.6 ], [ 511920.6, 166891.1 ], [ 511898.1, 166883.4 ], [ 511820.9, 166884.9 ], [ 511799.9, 166878.4 ], [ 511689.1, 166800.6 ], [ 511607.1, 166734.1 ], [ 511558.4, 166671.4 ], [ 511476.1, 166600.1 ], [ 511458.1, 166610.4 ], [ 511438.4, 166635.6 ], [ 511440.4, 166647.9 ], [ 511488.4, 166700.9 ], [ 511521.1, 166763.6 ], [ 511615.9, 166851.6 ], [ 511615.9, 166867.4 ], [ 511590.474, 166891.651 ], [ 511573.9, 166893.2 ], [ 511501.1, 166845.4 ], [ 511427.9, 166806.9 ], [ 511391.6, 166802.9 ], [ 511360.1, 166829.3 ], [ 511319.0, 166800.4 ], [ 511256.9, 166739.7 ], [ 511223.2, 166667.2 ], [ 511149.7, 166580.5 ], [ 511113.1, 166491.4 ], [ 511080.8, 166435.7 ], [ 511010.6, 166343.6 ], [ 510767.5, 166175.8 ], [ 510596.2, 166038.5 ], [ 510430.2, 165923.0 ], [ 510283.7, 165773.0 ], [ 510275.7, 165742.5 ], [ 510272.0, 165681.2 ], [ 510260.0, 165657.0 ], [ 510169.0, 165591.7 ], [ 510067.0, 165495.0 ], [ 510011.2, 165424.7 ], [ 509977.0, 165368.5 ], [ 509865.5, 165245.0 ], [ 509845.5, 165182.0 ], [ 509826.0, 165160.0 ], [ 509687.5, 165023.7 ], [ 509564.0, 164928.7 ], [ 509463.2, 164829.5 ], [ 509376.0, 164760.5 ], [ 509327.9, 164733.4 ], [ 509315.1, 164714.2 ], [ 509300.1, 164668.9 ], [ 509259.9, 164614.9 ], [ 509222.9, 164545.2 ], [ 509206.4, 164468.7 ], [ 509186.6, 164424.7 ], [ 509129.6, 164319.2 ], [ 509074.8, 164241.0 ], [ 509039.4, 164206.9 ], [ 509004.1, 164186.9 ], [ 508956.9, 164174.2 ], [ 508838.1, 164158.4 ], [ 508807.4, 164143.7 ], [ 508750.6, 164068.4 ], [ 508692.4, 163975.7 ], [ 508619.0, 163808.2 ], [ 508470.4, 163693.4 ], [ 508349.4, 163630.2 ], [ 508296.1, 163582.4 ], [ 508261.4, 163535.2 ], [ 508208.4, 163421.4 ], [ 508159.4, 163346.2 ], [ 508087.1, 163284.4 ], [ 507987.4, 163229.4 ], [ 507991.1, 163185.1 ], [ 507973.6, 163154.5 ], [ 507900.5, 163075.7 ], [ 507817.4, 162972.6 ], [ 507628.6, 162703.9 ], [ 507536.1, 162607.0 ], [ 507447.9, 162483.4 ], [ 507196.2, 162174.2 ], [ 507138.1, 162126.7 ], [ 507160.6, 162109.9 ], [ 507159.9, 162070.9 ], [ 506894.282, 161759.591 ], [ 506781.134, 161637.976 ], [ 506744.92, 161613.135 ], [ 506673.278, 161677.714 ], [ 506515.0, 161536.1 ], [ 506392.2, 161345.9 ], [ 506335.5, 161239.9 ], [ 506197.9, 161078.7 ], [ 506172.4, 161029.0 ], [ 506154.7, 160966.2 ], [ 506143.5, 160894.4 ], [ 506119.7, 160666.9 ], [ 506127.2, 160628.1 ], [ 506181.0, 160484.4 ], [ 506184.1, 160448.7 ], [ 506028.5, 159811.6 ], [ 505973.6, 159707.4 ], [ 505954.354, 159685.885 ], [ 505971.474, 159651.55 ], [ 505985.666, 159600.457 ], [ 506071.7, 159523.0 ], [ 506094.2, 159524.0 ], [ 506201.1, 159573.5 ], [ 506364.0, 159666.4 ], [ 506425.0, 159714.6 ], [ 506514.0, 159750.1 ], [ 506565.0, 159819.1 ], [ 506625.2, 159875.4 ], [ 506698.7, 159961.4 ], [ 506805.0, 160048.4 ], [ 507061.5, 160300.6 ], [ 507176.5, 160379.9 ], [ 507294.5, 160483.9 ], [ 507339.2, 160516.1 ], [ 507381.9, 160578.1 ], [ 507438.2, 160575.6 ], [ 507475.7, 160558.1 ], [ 507505.7, 160555.6 ], [ 507526.9, 160561.9 ], [ 507566.9, 160558.1 ], [ 507601.9, 160563.1 ], [ 507651.9, 160588.1 ], [ 507674.4, 160620.6 ], [ 507765.7, 160690.6 ], [ 507824.676, 160715.708 ], [ 507665.0, 160468.7 ], [ 507650.0, 160435.5 ], [ 507619.7, 160417.0 ], [ 507557.5, 160344.7 ], [ 507537.0, 160260.0 ], [ 507541.5, 160201.7 ], [ 507513.5, 160172.2 ], [ 507505.7, 160155.2 ], [ 507494.7, 160090.0 ], [ 507498.7, 160077.2 ], [ 507509.0, 160074.0 ], [ 507652.5, 160132.0 ], [ 507757.2, 160144.7 ], [ 507773.5, 160141.5 ], [ 507838.5, 160101.7 ], [ 507863.0, 160094.7 ], [ 507897.5, 160093.2 ], [ 507976.0, 160108.2 ], [ 508083.2, 160034.5 ], [ 508119.2, 160033.5 ], [ 508199.5, 159997.5 ], [ 508223.5, 159924.5 ], [ 508225.6, 159881.2 ], [ 508247.9, 159853.9 ], [ 508268.4, 159836.3 ], [ 508330.0, 159826.0 ], [ 508350.7, 159813.2 ], [ 508389.5, 159779.5 ], [ 508424.2, 159732.5 ], [ 508479.0, 159729.2 ], [ 508527.7, 159743.2 ], [ 508592.7, 159742.2 ], [ 508633.0, 159748.5 ], [ 508667.2, 159762.0 ], [ 508704.7, 159792.2 ], [ 508778.5, 159772.5 ], [ 508860.2, 159814.5 ], [ 508913.7, 159854.7 ], [ 509034.5, 159831.2 ], [ 509063.0, 159836.0 ], [ 509100.2, 159856.5 ], [ 509190.7, 159956.2 ], [ 509206.5, 160055.5 ], [ 509259.5, 160106.7 ], [ 509347.8, 160169.8 ], [ 509411.5, 160235.7 ], [ 509434.5, 160242.7 ], [ 509529.0, 160209.2 ], [ 509587.0, 160200.2 ], [ 509651.4, 160164.3 ], [ 509622.5, 160114.6 ], [ 509616.0, 160038.9 ], [ 509600.0, 159995.4 ], [ 509603.5, 159909.4 ], [ 509615.0, 159850.1 ], [ 509640.2, 159796.4 ], [ 509675.2, 159766.6 ], [ 509690.2, 159731.4 ], [ 509729.5, 159674.9 ], [ 509785.0, 159634.4 ], [ 509844.7, 159610.1 ], [ 509841.0, 159557.6 ], [ 509857.7, 159496.9 ], [ 509853.5, 159432.4 ], [ 509892.0, 159380.9 ], [ 509895.7, 159336.6 ], [ 509915.3, 159309.7 ], [ 509905.0, 159285.6 ], [ 509871.7, 159250.9 ], [ 509839.7, 159173.1 ], [ 509836.0, 159125.6 ], [ 509844.5, 159099.6 ], [ 509854.7, 158991.5 ], [ 509817.2, 158936.7 ], [ 509809.7, 158887.2 ], [ 509833.5, 158813.0 ], [ 509834.7, 158614.7 ], [ 509802.5, 158473.5 ], [ 509771.2, 158409.0 ], [ 509781.2, 158389.2 ], [ 509823.5, 158390.0 ], [ 509841.7, 158379.2 ], [ 509876.7, 158344.5 ], [ 509882.2, 158318.7 ], [ 509870.0, 158135.5 ], [ 509881.2, 158113.2 ], [ 509874.2, 158068.5 ], [ 509891.4, 157989.7 ], [ 509835.6, 157829.0 ], [ 509826.4, 157813.7 ], [ 509781.4, 157781.0 ], [ 509592.1, 157711.5 ], [ 509490.4, 157660.2 ], [ 509369.1, 157586.2 ], [ 509325.9, 157521.7 ], [ 509283.6, 157478.0 ], [ 509274.6, 157450.0 ], [ 509278.9, 157414.5 ], [ 509273.4, 157394.7 ], [ 509227.6, 157362.7 ], [ 509173.9, 157338.2 ], [ 509115.4, 157292.7 ], [ 509091.4, 157217.7 ], [ 509050.9, 157174.2 ], [ 509011.1, 157118.7 ], [ 509000.9, 157098.2 ], [ 509036.4, 157095.6 ], [ 509071.9, 157103.6 ], [ 509193.9, 157171.9 ], [ 509234.1, 157207.4 ], [ 509250.6, 157209.4 ], [ 509264.4, 157196.4 ], [ 509262.4, 157181.9 ], [ 509211.4, 157124.1 ], [ 509156.4, 157028.6 ], [ 509080.9, 156922.6 ], [ 509058.6, 156874.4 ], [ 509049.9, 156819.6 ], [ 509012.6, 156722.3 ], [ 508979.6, 156669.6 ], [ 508909.6, 156585.6 ], [ 508876.1, 156518.1 ], [ 508865.4, 156473.8 ], [ 508865.1, 156438.6 ], [ 508873.6, 156399.6 ], [ 508904.4, 156378.3 ], [ 508958.5, 156367.7 ], [ 508957.0, 156360.2 ], [ 508911.3, 156316.7 ], [ 508890.3, 156263.2 ], [ 508836.8, 156203.0 ], [ 508828.5, 156169.0 ], [ 508759.5, 156081.0 ], [ 508748.0, 156047.5 ], [ 508721.3, 156044.2 ], [ 508702.5, 156021.2 ], [ 508593.8, 155995.2 ], [ 508561.0, 155971.5 ], [ 508542.0, 155949.0 ], [ 508525.0, 155895.7 ], [ 508501.8, 155858.7 ], [ 508428.3, 155820.7 ], [ 508388.5, 155810.5 ], [ 508350.8, 155781.5 ], [ 508329.5, 155756.0 ], [ 508326.4, 155735.6 ], [ 508338.3, 155687.0 ], [ 508367.3, 155673.2 ], [ 508379.8, 155650.7 ], [ 508377.5, 155632.0 ], [ 508364.0, 155606.2 ], [ 508369.8, 155575.5 ], [ 508353.869, 155548.002 ], [ 508354.191, 155533.408 ], [ 508369.0, 155503.1 ], [ 508418.4, 155460.6 ], [ 508425.3, 155403.9 ], [ 508448.2, 155401.4 ], [ 508477.7, 155407.9 ], [ 508502.2, 155420.7 ], [ 508543.5, 155461.7 ], [ 508571.3, 155472.7 ], [ 508585.5, 155468.2 ], [ 508597.8, 155453.5 ], [ 508601.0, 155390.0 ], [ 508615.8, 155382.5 ], [ 508654.0, 155383.0 ], [ 508569.8, 155298.8 ], [ 508492.9, 155253.2 ], [ 508470.4, 155232.6 ], [ 508415.2, 155157.0 ], [ 508375.6, 155087.0 ], [ 508226.4, 155026.6 ], [ 508175.8, 154944.2 ], [ 508122.4, 154885.2 ], [ 508091.2, 154830.1 ], [ 508050.4, 154776.4 ], [ 508049.6, 154760.1 ], [ 508068.1, 154693.3 ], [ 508065.9, 154672.7 ], [ 507999.1, 154506.1 ], [ 507992.1, 154467.4 ], [ 508009.8, 154444.4 ], [ 508013.6, 154358.9 ], [ 508029.6, 154324.4 ], [ 508090.1, 154284.9 ], [ 508165.1, 154258.4 ], [ 508209.1, 154233.9 ], [ 508228.1, 154218.4 ], [ 508244.6, 154188.9 ], [ 508224.4, 154127.9 ], [ 508233.9, 154076.7 ], [ 508222.4, 153987.2 ], [ 508192.9, 153946.2 ], [ 508174.1, 153895.2 ], [ 508170.1, 153859.7 ], [ 508183.9, 153789.7 ], [ 508207.4, 153746.2 ], [ 508201.6, 153666.4 ], [ 508213.6, 153616.4 ], [ 508234.6, 153564.9 ], [ 508284.4, 153491.9 ], [ 508327.4, 153457.9 ], [ 508358.9, 153417.4 ], [ 508375.4, 153406.9 ], [ 508398.6, 153407.4 ], [ 508465.6, 153444.9 ], [ 508530.4, 153469.2 ], [ 508631.9, 153483.4 ], [ 508685.6, 153484.7 ], [ 508747.4, 153470.9 ], [ 508765.6, 153459.7 ], [ 508777.9, 153433.7 ], [ 508788.1, 153374.9 ], [ 508787.6, 153343.9 ], [ 508757.9, 153241.2 ], [ 508715.4, 153172.9 ], [ 508665.6, 153054.4 ], [ 508596.4, 152917.1 ], [ 508551.1, 152843.6 ], [ 508488.1, 152709.1 ], [ 508482.4, 152677.9 ], [ 508481.9, 152589.1 ], [ 508457.4, 152535.4 ], [ 508419.6, 152386.6 ], [ 508397.4, 152330.4 ], [ 508340.1, 152260.4 ], [ 508319.1, 152183.6 ], [ 508320.4, 152163.1 ], [ 508328.2, 152150.7 ], [ 508285.0, 152102.7 ], [ 508266.2, 152071.7 ], [ 508253.2, 152026.2 ], [ 508253.7, 151987.2 ], [ 508240.1, 151955.1 ], [ 508213.4, 151924.9 ], [ 508161.6, 151917.6 ], [ 508055.6, 151954.4 ], [ 507927.6, 152021.1 ], [ 507864.9, 152046.1 ], [ 507843.1, 152051.4 ], [ 507702.6, 152049.6 ], [ 507666.2, 152061.3 ], [ 507650.2, 152054.8 ], [ 507620.5, 152011.4 ], [ 507609.1, 151981.5 ], [ 507614.7, 151906.9 ], [ 507609.2, 151857.1 ], [ 507556.0, 151741.9 ], [ 507542.4, 151721.2 ], [ 507427.4, 151604.2 ], [ 507418.5, 151587.9 ], [ 507360.8, 151364.6 ], [ 507360.6, 151308.7 ], [ 507371.4, 151233.2 ], [ 507368.4, 151202.5 ], [ 507349.1, 151173.2 ], [ 507329.8, 151161.8 ], [ 507324.0, 151178.1 ], [ 507282.0, 151197.7 ], [ 507219.4, 151253.1 ], [ 507184.6, 151269.7 ], [ 507143.3, 151278.8 ], [ 507002.0, 151284.6 ], [ 506924.2, 151275.4 ], [ 506911.2, 151260.1 ], [ 506890.0, 151203.6 ], [ 506833.7, 151160.1 ], [ 506820.7, 151083.7 ], [ 506803.5, 151054.7 ], [ 506786.4, 151043.9 ], [ 506782.9, 150983.7 ], [ 506764.1, 150874.9 ], [ 506740.6, 150779.9 ], [ 506661.9, 150726.6 ], [ 506582.9, 150661.1 ], [ 506508.9, 150620.6 ], [ 506417.2, 150603.4 ], [ 506383.7, 150586.3 ], [ 506346.6, 150578.6 ], [ 506197.0, 150565.0 ], [ 506160.1, 150551.5 ], [ 506144.1, 150525.5 ], [ 506138.0, 150499.4 ], [ 506136.3, 150393.3 ], [ 506126.2, 150316.8 ], [ 506080.698, 150252.88 ], [ 506014.552, 150252.88 ], [ 505980.9, 150237.7 ], [ 505953.1, 150164.2 ], [ 505917.4, 150096.5 ], [ 505760.6, 149887.5 ], [ 505742.7, 149875.0 ], [ 505732.2, 149856.8 ], [ 505682.7, 149822.8 ], [ 505598.0, 149794.3 ], [ 505567.2, 149739.8 ], [ 505453.5, 149656.6 ], [ 505438.5, 149641.6 ], [ 505436.9, 149628.9 ], [ 505391.2, 149633.8 ], [ 505355.7, 149617.3 ], [ 505145.5, 149423.9 ], [ 505105.3, 149342.9 ], [ 505069.5, 149300.5 ], [ 505058.2, 149278.1 ], [ 505048.2, 149209.6 ], [ 505024.7, 149162.1 ], [ 504802.5, 148814.3 ], [ 504770.4, 148782.3 ], [ 504688.2, 148745.7 ], [ 504655.8, 148712.4 ], [ 504601.2, 148544.6 ], [ 504605.0, 148477.8 ], [ 504594.049, 148457.888 ], [ 504557.7, 148438.6 ], [ 504553.7, 148429.4 ], [ 504574.5, 148387.0 ], [ 504575.2, 148371.4 ], [ 504583.17, 148362.45 ], [ 504610.4, 148353.5 ], [ 504721.4, 148393.8 ], [ 504765.1, 148403.3 ], [ 504781.9, 148413.8 ], [ 504830.4, 148467.1 ], [ 504814.6, 148532.1 ], [ 504826.2, 148579.5 ], [ 504878.6, 148627.3 ], [ 504957.4, 148756.1 ], [ 505078.1, 148820.1 ], [ 505162.6, 148901.3 ], [ 505296.4, 148963.6 ], [ 505366.6, 148979.6 ], [ 505416.4, 149005.8 ], [ 505440.9, 149026.1 ], [ 505459.1, 149052.8 ], [ 505463.9, 149121.8 ], [ 505475.9, 149143.3 ], [ 505500.6, 149143.1 ], [ 505564.4, 149116.6 ], [ 505592.9, 149118.8 ], [ 505635.9, 149133.8 ], [ 505684.9, 149122.1 ], [ 505746.4, 149124.3 ], [ 505753.4, 149103.6 ], [ 505736.9, 149081.8 ], [ 505698.6, 149075.6 ], [ 505672.1, 149063.6 ], [ 505604.6, 149023.3 ], [ 505593.4, 149007.8 ], [ 505590.6, 148898.6 ], [ 505558.9, 148764.6 ], [ 505551.6, 148683.8 ], [ 505552.4, 148636.6 ], [ 505560.4, 148603.3 ], [ 505717.9, 148263.8 ], [ 505725.4, 148223.8 ], [ 505720.9, 148108.3 ], [ 505731.1, 148078.3 ], [ 505871.1, 148020.3 ], [ 505953.6, 147944.8 ], [ 505977.4, 147935.8 ], [ 506009.6, 147940.3 ], [ 506067.4, 147966.8 ], [ 506153.9, 147976.0 ], [ 506215.4, 148012.3 ], [ 506240.4, 148008.5 ], [ 506244.1, 147991.3 ], [ 506237.4, 147975.0 ], [ 506184.9, 147920.3 ], [ 506133.9, 147832.0 ], [ 506090.4, 147798.8 ], [ 506074.1, 147770.0 ], [ 506074.4, 147715.0 ], [ 506099.6, 147666.0 ], [ 506142.1, 147607.8 ], [ 506198.4, 147570.5 ], [ 506256.6, 147552.0 ], [ 506516.9, 147445.3 ], [ 506542.4, 147448.0 ], [ 506583.4, 147466.8 ], [ 506638.7, 147472.1 ], [ 506834.6, 147474.3 ], [ 506894.9, 147457.0 ], [ 506965.0, 147400.5 ], [ 507016.4, 147334.3 ], [ 507049.6, 147250.0 ], [ 507067.1, 147159.0 ], [ 507081.9, 147120.0 ], [ 507176.9, 147025.0 ], [ 507232.1, 146949.3 ], [ 507269.6, 146910.3 ], [ 507281.5, 146888.1 ], [ 507277.4, 146840.3 ], [ 507286.4, 146791.0 ], [ 507273.1, 146681.0 ], [ 507279.2, 146570.9 ], [ 507271.5, 146559.9 ], [ 507256.7, 146575.9 ], [ 507229.0, 146631.9 ], [ 507180.1, 146783.5 ], [ 507169.1, 146789.8 ], [ 507107.6, 146796.5 ], [ 506993.9, 146801.8 ], [ 506964.1, 146810.5 ], [ 506950.6, 146821.5 ], [ 506922.1, 146871.5 ], [ 506895.4, 146886.0 ], [ 506835.1, 146894.3 ], [ 506791.6, 146949.5 ], [ 506689.9, 146940.5 ], [ 506555.1, 146970.8 ], [ 506513.9, 146968.0 ], [ 506489.1, 146958.8 ], [ 506429.9, 146915.3 ], [ 506383.4, 146876.0 ], [ 506371.1, 146857.0 ], [ 506372.6, 146821.8 ], [ 506389.6, 146806.0 ], [ 506407.6, 146804.0 ], [ 506477.6, 146823.0 ], [ 506557.4, 146780.5 ], [ 506596.9, 146774.8 ], [ 506618.9, 146764.8 ], [ 506671.6, 146717.0 ], [ 506678.9, 146687.0 ], [ 506731.9, 146627.0 ], [ 506729.9, 146560.8 ], [ 506751.1, 146526.3 ], [ 506757.1, 146497.3 ], [ 506779.4, 146468.3 ], [ 506780.6, 146453.3 ], [ 506752.6, 146413.3 ], [ 506748.1, 146337.5 ], [ 506738.4, 146306.3 ], [ 506663.8, 146158.4 ], [ 506779.1, 145895.9 ], [ 506636.1, 145764.4 ], [ 506519.9, 145684.6 ], [ 506499.1, 145663.4 ], [ 506451.4, 145577.4 ], [ 506381.1, 145534.6 ], [ 506347.3, 145502.8 ], [ 506393.4, 145446.4 ], [ 506401.1, 145388.6 ], [ 506395.9, 145362.4 ], [ 506327.9, 145210.1 ], [ 506332.1, 145030.4 ], [ 506324.6, 145014.9 ], [ 506311.5, 145006.9 ], [ 506293.5, 145057.9 ], [ 506276.0, 145080.9 ], [ 506266.9, 145075.6 ], [ 506250.8, 145053.5 ], [ 506218.1, 144975.9 ], [ 506199.6, 144905.6 ], [ 506201.6, 144867.1 ], [ 506214.1, 144828.6 ], [ 506290.1, 144717.1 ], [ 506308.6, 144672.1 ], [ 506311.4, 144619.1 ], [ 506295.6, 144566.3 ], [ 506271.6, 144532.8 ], [ 506203.9, 144495.1 ], [ 506190.6, 144469.8 ], [ 506174.9, 144385.8 ], [ 506160.1, 144366.1 ], [ 506122.4, 144348.3 ], [ 506103.4, 144327.8 ], [ 506071.1, 144235.6 ], [ 506002.9, 144197.8 ], [ 505981.9, 144179.3 ], [ 505943.4, 144094.3 ], [ 505905.4, 144051.1 ], [ 505846.1, 144023.8 ], [ 505749.1, 143990.8 ], [ 505725.1, 143972.3 ], [ 505702.6, 143918.8 ], [ 505694.6, 143869.6 ], [ 505709.1, 143805.3 ], [ 505748.1, 143751.6 ], [ 505757.4, 143725.8 ], [ 505857.1, 143658.6 ], [ 506015.6, 143484.8 ], [ 506082.4, 143425.1 ], [ 506138.3, 143404.8 ], [ 506190.0, 143362.4 ], [ 506251.9, 143455.2 ], [ 506272.4, 143472.4 ], [ 506295.6, 143469.2 ], [ 506381.3, 143413.0 ], [ 506395.9, 143409.4 ], [ 506430.4, 143412.2 ], [ 506536.6, 143440.4 ], [ 506555.9, 143435.9 ], [ 506597.4, 143409.2 ], [ 506663.9, 143396.9 ], [ 506745.4, 143431.2 ], [ 506763.9, 143430.7 ], [ 506785.1, 143419.7 ], [ 506873.4, 143313.7 ], [ 506884.9, 143283.9 ], [ 506874.7, 143180.7 ], [ 506817.0, 143039.8 ], [ 506810.362, 143017.454 ], [ 506813.7, 143000.7 ], [ 506983.9, 142718.4 ], [ 506994.8, 142691.5 ], [ 507013.4, 142620.2 ], [ 507022.2, 142487.9 ], [ 507038.2, 142441.2 ], [ 507059.2, 142423.9 ], [ 507132.9, 142395.4 ], [ 507337.4, 142358.2 ], [ 507414.7, 142323.7 ], [ 507525.9, 142313.7 ], [ 507543.2, 142296.9 ], [ 507541.7, 142239.4 ], [ 507561.1, 142174.6 ], [ 507534.6, 142162.7 ], [ 507541.2, 142097.0 ], [ 507549.2, 142075.8 ], [ 507571.5, 142066.7 ], [ 507550.0, 142042.0 ], [ 507476.5, 141994.3 ], [ 507398.5, 141899.0 ], [ 507390.0, 141879.8 ], [ 507399.7, 141850.2 ], [ 507473.5, 141766.8 ], [ 507495.5, 141708.5 ], [ 507496.3, 141675.3 ], [ 507444.0, 141351.5 ], [ 507399.3, 141226.8 ], [ 507333.8, 141155.0 ], [ 507325.0, 141133.8 ], [ 507326.5, 141089.3 ], [ 507399.3, 140984.0 ], [ 507415.5, 140950.0 ], [ 507426.8, 140832.0 ], [ 507407.5, 140784.5 ], [ 507380.5, 140749.0 ], [ 507199.9, 140556.7 ], [ 507284.5, 140465.4 ], [ 507278.2, 140452.9 ], [ 507281.5, 140413.4 ], [ 507272.6, 140386.6 ], [ 507266.9, 140306.9 ], [ 507256.1, 140289.1 ], [ 507236.1, 140277.6 ], [ 507176.9, 140293.6 ], [ 507131.4, 140272.9 ], [ 507108.6, 140245.9 ], [ 507067.4, 140161.9 ], [ 507024.9, 140130.6 ], [ 507009.9, 140124.6 ], [ 507000.1, 140129.1 ], [ 506981.6, 140170.1 ], [ 506968.9, 140179.4 ], [ 506876.6, 140131.9 ], [ 506826.6, 140096.9 ], [ 506712.6, 139954.4 ], [ 506550.9, 139779.1 ], [ 506549.9, 139763.1 ], [ 506568.6, 139696.9 ], [ 506514.5, 139652.0 ], [ 506636.9, 139500.7 ], [ 506588.5, 139382.4 ], [ 506595.0, 139300.9 ], [ 506588.0, 139262.4 ], [ 506570.5, 139217.1 ], [ 506596.5, 139157.2 ], [ 506920.7, 138879.4 ], [ 507068.2, 138766.1 ], [ 507105.7, 138722.3 ], [ 507170.4, 138372.1 ], [ 507252.7, 138113.7 ], [ 507308.5, 137998.2 ], [ 507381.5, 137883.2 ], [ 507423.2, 137797.2 ], [ 507418.5, 137750.4 ], [ 507331.9, 137606.9 ], [ 507392.4, 137580.5 ], [ 507412.0, 137587.2 ], [ 507550.7, 137746.2 ] ], [ [ 528521.846, 185842.095 ], [ 528595.8, 185921.5 ], [ 528661.4, 185972.7 ], [ 528676.5, 186009.5 ], [ 528574.7, 186047.7 ], [ 528586.9, 186083.0 ] ], [ [ 611202.2, 265008.9 ], [ 611151.7, 265055.3 ], [ 611148.6, 265144.1 ], [ 611134.8, 265200.1 ], [ 611122.8, 265224.6 ], [ 611078.8, 265270.4 ], [ 611067.3, 265295.1 ], [ 611066.6, 265316.6 ], [ 611080.1, 265373.1 ], [ 611099.8, 265412.4 ], [ 611124.3, 265423.1 ], [ 611224.8, 265424.6 ], [ 611232.8, 265436.4 ], [ 611234.8, 265455.7 ] ], [ [ 518302.4, 173976.4 ], [ 518412.0, 174045.4 ], [ 518530.8, 174141.0 ], [ 518575.8, 174163.6 ], [ 518722.8, 174201.5 ], [ 518932.5, 174277.9 ], [ 519107.9, 174352.7 ], [ 519174.4, 174354.1 ], [ 519207.3, 174343.8 ] ], [ [ 528679.429, 186237.615 ], [ 528655.6, 186200.8 ], [ 528619.7, 186175.2 ] ], [ [ 578581.775, 245924.817 ], [ 578466.3, 245760.5 ], [ 578270.186, 245537.183 ], [ 578256.092, 245540.524 ], [ 578249.373, 245526.321 ], [ 578058.1, 245439.1 ], [ 577965.7, 245419.9 ], [ 577938.389, 245421.883 ], [ 577923.236, 245429.516 ], [ 577903.4, 245410.9 ], [ 577828.6, 245384.3 ], [ 577742.3, 245333.7 ], [ 577665.3, 245310.8 ], [ 577567.9, 245291.9 ], [ 577493.0, 245295.8 ], [ 577302.4, 245355.8 ], [ 577221.0, 245373.2 ], [ 577158.8, 245377.7 ], [ 577111.8, 245373.0 ], [ 577073.0, 245361.5 ], [ 576902.8, 245277.5 ], [ 576778.0, 245240.3 ], [ 576661.0, 245238.3 ], [ 576539.7, 245251.6 ], [ 576480.8, 245269.0 ], [ 576412.2, 245335.0 ], [ 576340.1, 245390.9 ], [ 576270.8, 245425.0 ], [ 576224.5, 245461.7 ], [ 576192.0, 245472.2 ], [ 576111.8, 245483.5 ], [ 575967.4, 245410.2 ], [ 575829.9, 245352.1 ], [ 575767.0, 245335.1 ], [ 575698.5, 245301.5 ], [ 575655.1, 245291.2 ], [ 575525.7, 245283.7 ], [ 575253.0, 245221.1 ], [ 575194.3, 245203.9 ], [ 575057.8, 245133.5 ], [ 574884.2, 245094.1 ], [ 574809.5, 245065.8 ], [ 574751.9, 245024.9 ], [ 574672.2, 245006.2 ], [ 574587.4, 244994.4 ], [ 574506.7, 244999.1 ], [ 574446.2, 245023.1 ], [ 574372.4, 245029.9 ], [ 574266.1, 245054.1 ], [ 574166.5, 245098.5 ], [ 574124.6, 245093.8 ], [ 574040.9, 245044.3 ], [ 573979.0, 244996.4 ], [ 573914.5, 244931.7 ], [ 573905.2, 244914.6 ], [ 573913.1, 244604.0 ], [ 573897.9, 244523.9 ], [ 573846.1, 244470.1 ], [ 573794.6, 244404.2 ], [ 573763.8, 244337.1 ], [ 573643.1, 244287.8 ], [ 573606.7, 244260.7 ], [ 573405.3, 244159.3 ], [ 573268.8, 244122.6 ], [ 573169.3, 244107.2 ], [ 573088.4, 244107.2 ], [ 573006.4, 244120.6 ], [ 572892.4, 244158.5 ], [ 572795.2, 244215.8 ], [ 572695.0, 244314.9 ], [ 572551.7, 244440.7 ], [ 572569.7, 244451.9 ], [ 572662.2, 244552.6 ], [ 572729.4, 244615.7 ], [ 572780.2, 244533.4 ], [ 572834.1, 244482.2 ], [ 573096.6, 244392.2 ], [ 573302.7, 244371.3 ], [ 573382.6, 244386.3 ], [ 573439.2, 244404.2 ], [ 573596.8, 244484.8 ], [ 573719.7, 244587.6 ], [ 573767.1, 244651.7 ], [ 573788.8, 244712.8 ], [ 573840.4, 245021.6 ], [ 573822.4, 245057.3 ], [ 573763.2, 245086.1 ], [ 573745.7, 245101.3 ], [ 573748.7, 245121.8 ], [ 573783.2, 245135.3 ], [ 573848.4, 245145.9 ], [ 574075.3, 245255.5 ], [ 574180.4, 245294.7 ], [ 574351.3, 245311.4 ], [ 574468.2, 245297.6 ], [ 574541.9, 245296.6 ], [ 574652.9, 245313.2 ], [ 574693.8, 245326.1 ], [ 574766.3, 245365.0 ], [ 574809.4, 245408.6 ], [ 574837.4, 245463.3 ], [ 574842.7, 245480.1 ], [ 574837.2, 245575.1 ], [ 574880.9, 245691.6 ], [ 574893.0, 245754.5 ], [ 574960.7, 245888.3 ], [ 574957.9, 245901.0 ], [ 574913.9, 245930.5 ], [ 574893.5, 245936.6 ], [ 574889.0, 245948.1 ], [ 574893.8, 245958.0 ], [ 575066.9, 245991.6 ], [ 575438.0, 246083.7 ], [ 575452.5, 246094.5 ], [ 575464.6, 246115.5 ], [ 575473.4, 246169.7 ], [ 575466.8, 246207.8 ], [ 575451.5, 246245.4 ], [ 575412.774, 246280.911 ], [ 575434.099, 246299.266 ], [ 575444.8, 246300.6 ], [ 575476.1, 246281.1 ], [ 575513.0, 246253.9 ], [ 575573.6, 246192.6 ], [ 575605.2, 246174.8 ], [ 575654.9, 246178.6 ], [ 575691.5, 246188.9 ], [ 575762.8, 246230.5 ], [ 575778.7, 246225.8 ], [ 575795.586, 246204.032 ], [ 575821.8, 246185.8 ], [ 575857.8, 246187.5 ], [ 575972.5, 246326.0 ], [ 576033.1, 246374.3 ], [ 576247.6, 246516.4 ], [ 576295.5, 246562.0 ], [ 576340.8, 246570.0 ], [ 576398.6, 246595.8 ], [ 576486.6, 246620.8 ], [ 576534.4, 246646.0 ], [ 576573.8, 246679.8 ], [ 576642.7, 246762.8 ], [ 576727.0, 246835.8 ], [ 576837.2, 246907.9 ], [ 576946.5, 246943.3 ], [ 576989.9, 246939.4 ], [ 577004.9, 246908.6 ], [ 576996.2, 246829.8 ], [ 577015.7, 246812.8 ], [ 577055.0, 246797.8 ], [ 577109.0, 246793.0 ], [ 577194.4, 246797.3 ], [ 577305.7, 246820.8 ], [ 577363.7, 246849.3 ], [ 577475.7, 246926.5 ], [ 577504.2, 246934.0 ], [ 577550.1, 246933.3 ], [ 577643.543, 247184.789 ], [ 577687.513, 247166.117 ], [ 577679.683, 247141.422 ], [ 577686.308, 247117.931 ], [ 577711.004, 247098.657 ], [ 577787.499, 247103.475 ], [ 577836.288, 247114.92 ], [ 577861.585, 247128.773 ], [ 577904.953, 247172.743 ], [ 577966.2, 247210.3 ], [ 578078.9, 247271.7 ], [ 578132.7, 247288.9 ], [ 578231.8, 247333.8 ], [ 578357.7, 247428.1 ], [ 578377.7, 247432.4 ], [ 578403.6, 247428.3 ], [ 578463.0, 247387.9 ], [ 578518.7, 247373.3 ], [ 578654.5, 247319.4 ], [ 578683.2, 247322.6 ], [ 578713.3, 247337.5 ], [ 578818.3, 247403.7 ], [ 578909.2, 247426.2 ], [ 578981.7, 247462.9 ], [ 579034.7, 247481.6 ], [ 579064.7, 247472.6 ], [ 579118.0, 247441.6 ], [ 579242.118, 247435.797 ], [ 579297.8, 247465.2 ], [ 579439.7, 247592.5 ], [ 579515.7, 247640.6 ], [ 579627.4, 247724.4 ], [ 579646.0, 247726.1 ], [ 579664.7, 247715.9 ], [ 579695.2, 247714.8 ], [ 579808.9, 247762.5 ], [ 579817.1, 247774.8 ], [ 579817.5, 247802.6 ], [ 579834.7, 247829.1 ], [ 579896.4, 247871.7 ], [ 579910.3, 247874.3 ], [ 579918.9, 247868.1 ], [ 579931.0, 247818.2 ], [ 580006.4, 247817.9 ], [ 580053.2, 247789.4 ], [ 580074.5, 247786.4 ], [ 580209.9, 247810.6 ], [ 580289.1, 247898.4 ], [ 580330.2, 247925.9 ], [ 580336.4, 247942.0 ], [ 580326.2, 247986.1 ], [ 580331.6, 248026.2 ], [ 580346.7, 248050.7 ], [ 580365.9, 248056.4 ], [ 580383.6, 248047.8 ], [ 580428.7, 248009.0 ], [ 580503.8, 248010.0 ], [ 580579.0, 248042.0 ], [ 580621.9, 248040.4 ], [ 580797.3, 248095.8 ], [ 580828.1, 248094.1 ], [ 580897.3, 248117.2 ], [ 580932.8, 248107.8 ], [ 581021.2, 248137.1 ], [ 581161.9, 248232.3 ], [ 581227.0, 248283.9 ], [ 581268.1, 248331.0 ], [ 581271.3, 248352.5 ], [ 581263.9, 248377.3 ], [ 581268.6, 248400.4 ], [ 581313.3, 248444.4 ], [ 581331.9, 248472.5 ], [ 581466.8, 248542.6 ], [ 581526.1, 248563.2 ], [ 581568.1, 248561.2 ], [ 581591.6, 248545.6 ], [ 581605.5, 248526.7 ], [ 581662.8, 248494.9 ], [ 581847.3, 248487.3 ], [ 581949.9, 248456.0 ], [ 582029.5, 248414.6 ], [ 582031.27, 248404.556 ], [ 582082.0, 248372.2 ], [ 582113.4, 248364.0 ], [ 582144.701, 248364.18 ], [ 582160.0, 248329.8 ], [ 582226.9, 248302.7 ], [ 582594.7, 248209.6 ], [ 582661.0, 248204.3 ], [ 582732.1, 248173.5 ], [ 583111.7, 248180.4 ], [ 583227.8, 248198.9 ], [ 583456.464, 248254.97 ], [ 583570.3, 248267.7 ], [ 583650.7, 248253.1 ], [ 583771.7, 248214.6 ], [ 584131.5, 248159.4 ], [ 584187.5, 248155.6 ], [ 584481.0, 248161.4 ], [ 584736.7, 248224.6 ], [ 584831.0, 248237.7 ], [ 584909.5, 248275.1 ], [ 584997.8, 248294.7 ], [ 585075.263, 248326.052 ], [ 585216.0, 248343.2 ], [ 585375.1, 248288.9 ], [ 585497.5, 248259.7 ], [ 585520.5, 248251.7 ], [ 585537.2, 248233.0 ], [ 585560.5, 248223.5 ], [ 585585.7, 248223.2 ], [ 585680.5, 248259.5 ], [ 585706.5, 248259.0 ], [ 586042.7, 248170.1 ], [ 586188.3, 248122.9 ], [ 586262.0, 248106.4 ], [ 586377.5, 248042.7 ], [ 586470.1, 248001.6 ], [ 586516.4, 247988.1 ], [ 586586.9, 247981.2 ], [ 586819.3, 247977.4 ], [ 586858.6, 247965.3 ], [ 587038.894, 247976.748 ], [ 587064.4, 247967.8 ], [ 587092.7, 247929.8 ], [ 587232.4, 247895.5 ], [ 587254.3, 247877.7 ], [ 587271.5, 247846.3 ], [ 587312.2, 247814.7 ], [ 587375.9, 247744.1 ], [ 587417.7, 247717.3 ], [ 587438.0, 247723.1 ], [ 587582.0, 247692.7 ], [ 587925.089, 247673.117 ], [ 588209.8, 247638.3 ], [ 588661.0, 247618.7 ], [ 588841.0, 247598.9 ], [ 589314.0, 247709.6 ], [ 589382.8, 247717.3 ], [ 589539.8, 247765.5 ], [ 589640.9, 247782.7 ], [ 589748.7, 247835.1 ], [ 589881.896, 247866.709 ], [ 589927.2, 247857.8 ], [ 590004.2, 247858.1 ], [ 590076.5, 247865.3 ], [ 590197.7, 247891.6 ], [ 590275.8, 247897.6 ], [ 590368.0, 247894.0 ], [ 590530.5, 247859.0 ], [ 590567.5, 247834.2 ], [ 590602.0, 247783.1 ], [ 590615.5, 247777.6 ], [ 590789.6, 247882.9 ], [ 590851.3, 247890.6 ], [ 590844.2, 247878.7 ], [ 590797.7, 247862.5 ], [ 590785.0, 247846.7 ], [ 590776.7, 247821.8 ], [ 590777.1, 247789.5 ], [ 590783.4, 247770.6 ], [ 590862.6, 247695.8 ], [ 590865.3, 247680.0 ], [ 590854.9, 247673.3 ], [ 590727.4, 247656.2 ], [ 590645.5, 247635.2 ], [ 590382.1, 247512.9 ], [ 590271.7, 247471.2 ], [ 590186.7, 247388.2 ], [ 590109.5, 247343.7 ], [ 590095.2, 247341.7 ], [ 590074.1, 247352.8 ], [ 590072.4, 247386.6 ], [ 590091.3, 247441.2 ], [ 590153.2, 247546.1 ], [ 590181.7, 247624.7 ], [ 590190.762, 247683.468 ], [ 590122.4, 247634.0 ], [ 590090.0, 247597.5 ], [ 590044.0, 247576.7 ], [ 590009.4, 247533.5 ], [ 589956.1, 247504.4 ], [ 589876.3, 247437.2 ], [ 589722.7, 247366.0 ], [ 589631.6, 247316.5 ], [ 589537.9, 247298.7 ], [ 589394.4, 247261.0 ], [ 589330.7, 247256.5 ], [ 589257.9, 247229.5 ], [ 589142.6, 247216.7 ], [ 588983.7, 247169.4 ], [ 588921.9, 247136.5 ], [ 588892.2, 247085.3 ], [ 588907.8, 246914.6 ], [ 588923.8, 246893.7 ], [ 588951.5, 246879.2 ], [ 588967.5, 246858.4 ], [ 588987.2, 246755.1 ], [ 589053.1, 246703.0 ], [ 589057.3, 246640.8 ], [ 589109.2, 246579.3 ], [ 589125.6, 246461.6 ], [ 589143.0, 246420.3 ], [ 589169.7, 246382.9 ], [ 589219.7, 246349.3 ], [ 589296.9, 246316.8 ], [ 589342.9, 246305.3 ], [ 589392.267, 246313.767 ], [ 589456.5, 246412.9 ], [ 589502.8, 246446.6 ], [ 589587.693, 246585.148 ], [ 589627.215, 246602.29 ], [ 589712.4, 246617.0 ], [ 589740.1, 246615.9 ], [ 589758.2, 246626.6 ], [ 589793.2, 246680.9 ], [ 589842.7, 246722.0 ], [ 589847.7, 246788.1 ], [ 589857.2, 246797.9 ], [ 589934.2, 246829.4 ], [ 589987.8, 246888.9 ], [ 590021.9, 246915.6 ], [ 590530.4, 247113.0 ], [ 590543.4, 247116.5 ], [ 590697.9, 247099.9 ], [ 590873.7, 247167.2 ], [ 591031.2, 247249.5 ], [ 591140.7, 247273.5 ], [ 591830.6, 247360.0 ], [ 592147.4, 247366.5 ], [ 592200.6, 247270.2 ], [ 592347.6, 247186.0 ], [ 592471.0, 247093.8 ], [ 592492.3, 247070.3 ], [ 592529.8, 246979.4 ], [ 592539.111, 246899.685 ], [ 592581.2, 246769.1 ], [ 592591.1, 246754.6 ], [ 592635.3, 246728.5 ], [ 592632.2, 246662.1 ], [ 592653.5, 246593.8 ], [ 592779.3, 246245.3 ], [ 592788.0, 246238.7 ], [ 592864.1, 246070.1 ], [ 592903.0, 246096.3 ], [ 592941.0, 246099.7 ], [ 592941.1, 246094.0 ], [ 592966.1, 246126.5 ], [ 592998.4, 246153.0 ], [ 593117.4, 246209.2 ], [ 593175.5, 246180.6 ], [ 593198.0, 246158.1 ], [ 593210.2, 246122.3 ], [ 593297.5, 245709.6 ], [ 593806.4, 245849.4 ], [ 593836.1, 245868.6 ], [ 593893.236, 245952.131 ], [ 593907.394, 245947.31 ], [ 593917.887, 245953.835 ], [ 593991.5, 245913.4 ], [ 594027.4, 245888.7 ], [ 594047.5, 245865.6 ], [ 594068.565, 245813.593 ], [ 594080.64, 245813.469 ], [ 594089.147, 245804.652 ], [ 594088.065, 245791.659 ], [ 594077.952, 245784.386 ], [ 594097.984, 245719.953 ], [ 594115.265, 245720.291 ], [ 594123.527, 245710.016 ], [ 594296.5, 245691.3 ], [ 594404.2, 245692.6 ], [ 594531.3, 245704.4 ], [ 594676.5, 245687.6 ], [ 594862.7, 245718.1 ], [ 594909.2, 245718.7 ], [ 595023.1, 245703.8 ], [ 595162.0, 245665.4 ], [ 595159.4, 245705.7 ], [ 595120.7, 245794.4 ], [ 595163.0, 245819.7 ], [ 595198.5, 245878.4 ], [ 595200.165, 245917.719 ], [ 595180.5, 245971.4 ], [ 595197.2, 246105.1 ], [ 595187.5, 246128.9 ], [ 595138.108, 246199.076 ], [ 595133.667, 246217.196 ], [ 595126.2, 246381.9 ], [ 595112.8, 246500.4 ], [ 595061.0, 246641.9 ], [ 595002.7, 246701.1 ], [ 595030.4, 246728.1 ], [ 595101.0, 246766.9 ], [ 595186.5, 246844.2 ], [ 595273.7, 247033.5 ], [ 595329.1, 247203.7 ], [ 595353.9, 247211.8 ], [ 595415.7, 247215.9 ], [ 595483.6, 247205.4 ], [ 595581.9, 247213.6 ], [ 595620.2, 247202.0 ], [ 595705.2, 247197.9 ], [ 595774.5, 247163.9 ], [ 595845.8, 247148.2 ], [ 595896.4, 247123.6 ], [ 595933.738, 247115.535 ], [ 596005.1, 247162.7 ], [ 596154.9, 247161.6 ], [ 596205.3, 247142.4 ], [ 596317.8, 247164.1 ], [ 596396.5, 247143.7 ], [ 596439.0, 247143.3 ], [ 596517.8, 247119.1 ], [ 596744.4, 247104.9 ], [ 596796.0, 247107.8 ], [ 596946.368, 247091.872 ], [ 597065.2, 247052.9 ], [ 597105.7, 247033.4 ], [ 597211.8, 247019.0 ], [ 597261.7, 247005.9 ], [ 597307.7, 246978.9 ], [ 597339.1, 246943.4 ], [ 597393.0, 246968.7 ], [ 597471.9, 246938.2 ], [ 597535.3, 246941.6 ], [ 597598.4, 246915.7 ], [ 597707.6, 246902.5 ], [ 597794.5, 246860.5 ], [ 597908.2, 246815.9 ], [ 597910.314, 246804.479 ], [ 598011.9, 246831.0 ], [ 598086.2, 246841.9 ], [ 598361.6, 246767.2 ], [ 598494.5, 246723.4 ], [ 598526.5, 246725.9 ], [ 598582.4, 246785.5 ], [ 598624.5, 246811.1 ], [ 598641.0, 246801.7 ], [ 598653.7, 246750.9 ], [ 598681.2, 246696.3 ], [ 598681.8, 246683.9 ], [ 598645.4, 246592.7 ], [ 598640.0, 246566.1 ], [ 598643.0, 246539.7 ], [ 598661.0, 246485.8 ], [ 598697.7, 246459.8 ], [ 598713.0, 246434.8 ], [ 598715.7, 246376.1 ], [ 598743.5, 246293.2 ], [ 598769.2, 246255.5 ], [ 598812.0, 246224.7 ], [ 598907.5, 246203.0 ], [ 598936.3, 246203.1 ], [ 598993.2, 246179.9 ], [ 599034.5, 246179.7 ], [ 599107.7, 246194.4 ], [ 599206.8, 246229.6 ], [ 599283.8, 246284.8 ], [ 599389.8, 246344.4 ], [ 599417.0, 246395.5 ], [ 599467.0, 246415.4 ], [ 599579.2, 246546.5 ], [ 599657.4, 246599.5 ], [ 599677.8, 246636.7 ], [ 599696.5, 246694.1 ], [ 599747.1, 246738.1 ], [ 599758.5, 246739.4 ], [ 599768.6, 246729.1 ], [ 599780.2, 246680.6 ], [ 599793.0, 246669.3 ], [ 599819.0, 246666.8 ], [ 599829.8, 246659.1 ], [ 599832.7, 246647.3 ], [ 599821.0, 246575.7 ], [ 599832.7, 246533.2 ], [ 599854.0, 246504.9 ], [ 599827.2, 246438.2 ], [ 599828.3, 246396.3 ], [ 599836.4, 246355.2 ], [ 599897.6, 246187.4 ], [ 599931.3, 246026.3 ], [ 600003.7, 245817.7 ], [ 600004.7, 245797.7 ], [ 599993.0, 245780.5 ], [ 600065.3, 245725.7 ], [ 600126.6, 245706.0 ], [ 600192.4, 245708.9 ], [ 600332.0, 245766.6 ], [ 600395.3, 245779.5 ], [ 600406.7, 245788.3 ], [ 600406.8, 245801.5 ], [ 600431.6, 245817.4 ], [ 600450.6, 245848.9 ], [ 600464.5, 245858.1 ], [ 600504.2, 245843.0 ], [ 600559.5, 245849.2 ], [ 600588.4, 245859.3 ], [ 600620.4, 245892.7 ], [ 600704.5, 245892.5 ], [ 600864.0, 245922.0 ], [ 601066.0, 245968.5 ], [ 601117.6, 245983.7 ], [ 601158.5, 246006.0 ], [ 601279.0, 246008.5 ], [ 601392.0, 246001.4 ], [ 601423.2, 246005.6 ], [ 601489.0, 246030.5 ], [ 601513.5, 246009.8 ], [ 601723.2, 246019.8 ], [ 601932.8, 246033.9 ], [ 602039.7, 246059.8 ], [ 602056.2, 246057.3 ], [ 602101.5, 246033.1 ], [ 602149.4, 246023.6 ], [ 602183.4, 246029.1 ], [ 602228.5, 246046.5 ], [ 602251.2, 246045.8 ], [ 602285.2, 246001.3 ], [ 602313.373, 245980.959 ], [ 602309.0, 246060.7 ], [ 602324.7, 246115.4 ], [ 602348.1, 246131.3 ], [ 602384.3, 246144.4 ], [ 602503.7, 246160.7 ], [ 602598.3, 246162.9 ], [ 602787.7, 246197.1 ], [ 602860.3, 246193.8 ], [ 602991.4, 246169.5 ], [ 603020.0, 246174.7 ], [ 603055.9, 246191.8 ], [ 603130.3, 246199.6 ], [ 603171.2, 246212.0 ], [ 603270.3, 246201.0 ], [ 603329.948, 246167.161 ], [ 603485.0, 246196.1 ], [ 603524.5, 246214.4 ], [ 603564.2, 246251.1 ], [ 603642.8, 246210.4 ], [ 603653.3, 246221.9 ], [ 603662.0, 246253.4 ], [ 603674.3, 246260.9 ], [ 603838.0, 246230.1 ], [ 603912.8, 246231.9 ], [ 603974.7, 246243.0 ], [ 604098.7, 246086.6 ], [ 604187.2, 246045.4 ], [ 604264.4, 245990.5 ], [ 604271.8, 245967.1 ], [ 604271.5, 245922.1 ], [ 604255.834, 245850.901 ], [ 604395.2, 245837.7 ], [ 604430.808, 245822.868 ], [ 604545.3, 245816.1 ], [ 604731.0, 245791.6 ], [ 604763.0, 245797.4 ], [ 604853.0, 245831.1 ], [ 604921.0, 245842.4 ], [ 604961.8, 245862.5 ], [ 605011.7, 245838.5 ], [ 605024.4, 245823.2 ], [ 605138.7, 245854.0 ], [ 605181.9, 245803.5 ], [ 605187.7, 245778.0 ], [ 605187.4, 245710.5 ], [ 605223.4, 245635.9 ], [ 605247.461, 245551.536 ], [ 605276.1, 245554.7 ], [ 605344.4, 245538.9 ], [ 605380.9, 245543.8 ], [ 605469.7, 245536.5 ], [ 605540.7, 245540.4 ], [ 605677.7, 245619.1 ], [ 605736.7, 245629.9 ], [ 605842.2, 245663.4 ], [ 605934.9, 245715.6 ], [ 605994.9, 245791.9 ], [ 605998.7, 245813.4 ], [ 605960.7, 245935.9 ], [ 605952.3, 245981.5 ], [ 605950.3, 246004.7 ], [ 605963.0, 246043.0 ], [ 605949.8, 246156.5 ], [ 605969.5, 246213.7 ], [ 605957.5, 246285.7 ], [ 605944.3, 246308.5 ], [ 605934.5, 246312.5 ], [ 605881.8, 246304.5 ], [ 605711.3, 246303.2 ], [ 605582.0, 246316.2 ], [ 605402.9, 246352.0 ], [ 605074.3, 246437.2 ], [ 604866.0, 246521.9 ], [ 604763.6, 246616.8 ], [ 604772.7, 246630.1 ], [ 604786.7, 246631.9 ], [ 604839.7, 246570.6 ], [ 604873.9, 246557.6 ], [ 604908.4, 246553.9 ], [ 604989.7, 246557.1 ], [ 605216.3, 246589.5 ], [ 605296.0, 246585.2 ], [ 605551.3, 246590.5 ], [ 605730.5, 246573.5 ], [ 605872.0, 246578.2 ], [ 605959.0, 246584.7 ], [ 606179.7, 246616.1 ], [ 606278.2, 246642.9 ], [ 606297.7, 246642.4 ], [ 606313.9, 246626.4 ], [ 606349.4, 246556.1 ], [ 606359.7, 246532.1 ], [ 606359.4, 246515.6 ], [ 606346.9, 246466.4 ], [ 606297.4, 246362.4 ], [ 606262.9, 246225.4 ], [ 606219.9, 246152.4 ], [ 606228.4, 246130.6 ], [ 606267.9, 246102.5 ], [ 606393.3, 246213.4 ], [ 606525.4, 246312.8 ], [ 606582.8, 246489.1 ], [ 606596.5, 246515.1 ], [ 606633.5, 246556.4 ], [ 606674.5, 246664.4 ], [ 606703.3, 246715.1 ], [ 606726.2, 246774.9 ], [ 606724.2, 246785.9 ], [ 606690.9, 246822.9 ], [ 606644.2, 246906.9 ], [ 606637.2, 246923.9 ], [ 606642.028, 246942.74 ], [ 606609.6, 246987.0 ], [ 606574.5, 247053.4 ], [ 606572.0, 247073.6 ], [ 606578.2, 247099.3 ], [ 606566.3, 247130.1 ], [ 606571.5, 247191.1 ], [ 606564.8, 247214.9 ], [ 606546.0, 247251.4 ], [ 606461.0, 247358.6 ], [ 606411.8, 247393.9 ], [ 606398.8, 247462.6 ], [ 606363.3, 247576.0 ], [ 606306.5, 247617.9 ], [ 606226.5, 247715.1 ], [ 606217.5, 247740.6 ], [ 606118.3, 247764.1 ], [ 606095.0, 247761.6 ], [ 606079.0, 247747.1 ], [ 606040.5, 247664.6 ], [ 606027.3, 247657.4 ], [ 605961.2, 247665.6 ], [ 605787.2, 247650.6 ], [ 605678.4, 247656.9 ], [ 605628.9, 247663.1 ], [ 605567.2, 247695.4 ], [ 605515.4, 247703.1 ], [ 605490.6, 247689.6 ], [ 605430.7, 247598.9 ], [ 605403.4, 247590.1 ], [ 605374.4, 247600.9 ], [ 605325.6, 247657.6 ], [ 605283.6, 247677.1 ], [ 605057.0, 247708.5 ], [ 604973.9, 247713.7 ], [ 604914.0, 247774.5 ], [ 604846.6, 247824.4 ], [ 604804.2, 247835.2 ], [ 604775.3, 247856.8 ], [ 604776.5, 247899.1 ], [ 604810.754, 247920.674 ], [ 604808.4, 247974.5 ], [ 604885.8, 248243.8 ], [ 604889.8, 248275.3 ], [ 604885.3, 248290.1 ], [ 604860.3, 248305.6 ], [ 604817.6, 248320.1 ], [ 604720.3, 248337.8 ], [ 604626.6, 248345.8 ], [ 604512.8, 248371.1 ], [ 604410.1, 248406.3 ], [ 604370.6, 248412.3 ], [ 604324.3, 248455.3 ], [ 604274.6, 248513.8 ], [ 604232.1, 248587.2 ], [ 604283.0, 248562.5 ], [ 604363.2, 248543.7 ], [ 604424.7, 248547.7 ], [ 604507.2, 248574.2 ], [ 604534.7, 248598.2 ], [ 604575.2, 248667.5 ], [ 604633.5, 248833.7 ], [ 604637.7, 248872.5 ], [ 604629.7, 248919.2 ], [ 604615.0, 248949.2 ], [ 604595.9, 248969.7 ], [ 604553.4, 248990.5 ], [ 604424.1, 249017.2 ], [ 604324.4, 249054.0 ], [ 604276.1, 249121.7 ], [ 604252.1, 249170.7 ], [ 604256.8, 249194.6 ], [ 604343.9, 249268.2 ], [ 604424.9, 249388.4 ], [ 604426.4, 249411.6 ], [ 604370.6, 249470.4 ], [ 604367.8, 249493.7 ], [ 604339.9, 249530.7 ], [ 604170.1, 249647.0 ], [ 604100.9, 249702.1 ], [ 604126.6, 249759.6 ], [ 604185.1, 249856.1 ], [ 604216.4, 249890.6 ], [ 604282.2, 249945.0 ], [ 604296.7, 249970.0 ], [ 604304.7, 250002.0 ], [ 604304.5, 250040.0 ], [ 604286.2, 250074.0 ], [ 604246.5, 250119.2 ], [ 604166.7, 250174.2 ], [ 604154.7, 250194.0 ], [ 604155.2, 250210.5 ], [ 604277.5, 250320.0 ], [ 604316.5, 250367.5 ], [ 604350.5, 250397.0 ], [ 604398.7, 250423.2 ], [ 604455.7, 250418.0 ], [ 604468.7, 250424.0 ], [ 604499.2, 250643.0 ], [ 604503.0, 250735.7 ], [ 604523.0, 250783.5 ], [ 604531.0, 250840.5 ], [ 604543.5, 250857.5 ], [ 604590.7, 250894.2 ], [ 604624.5, 250957.0 ], [ 604682.0, 250988.9 ], [ 604708.2, 251013.9 ], [ 604730.0, 251048.1 ], [ 604761.4, 251120.8 ], [ 604783.7, 251300.6 ], [ 604782.2, 251383.9 ], [ 604776.2, 251411.7 ], [ 604850.9, 251479.6 ], [ 604881.7, 251551.4 ], [ 604876.4, 251609.7 ], [ 604863.2, 251634.7 ], [ 604859.9, 251730.2 ], [ 604842.4, 251761.4 ], [ 604839.3, 251780.9 ], [ 604843.8, 251880.8 ], [ 604838.513, 251898.058 ], [ 604776.6, 251912.4 ], [ 604771.5, 251920.2 ], [ 604817.9, 252101.6 ], [ 604827.625, 252105.028 ], [ 604829.312, 252117.257 ], [ 604813.1, 252121.7 ], [ 604801.6, 252143.8 ], [ 604769.3, 252169.0 ], [ 604667.5, 252178.6 ], [ 604652.0, 252173.1 ], [ 604645.7, 252180.9 ], [ 604648.0, 252190.6 ], [ 604588.5, 252287.8 ], [ 604505.2, 252289.6 ], [ 604349.5, 252309.9 ], [ 604291.7, 252345.4 ], [ 604246.5, 252355.1 ], [ 604192.0, 252356.9 ], [ 604077.7, 252404.6 ], [ 603994.5, 252430.4 ], [ 603918.2, 252440.6 ], [ 603748.2, 252435.9 ], [ 603578.5, 252453.9 ], [ 603473.9, 252440.9 ], [ 603352.7, 252446.6 ], [ 603253.5, 252458.9 ], [ 603099.7, 252498.9 ], [ 602979.2, 252550.9 ], [ 602816.2, 252662.1 ], [ 602760.5, 252715.9 ], [ 602709.7, 252752.6 ], [ 602594.8, 252805.5 ], [ 602561.5, 252829.1 ], [ 602560.189, 252857.578 ], [ 602626.6, 252928.2 ], [ 602638.8, 252970.5 ], [ 602641.0, 253010.8 ], [ 602629.2, 253070.1 ], [ 602597.9, 253143.6 ], [ 602533.2, 253245.1 ], [ 602500.0, 253323.6 ], [ 602451.0, 253469.5 ], [ 602353.3, 253634.9 ], [ 602303.8, 253688.2 ], [ 602305.2, 253704.2 ], [ 602247.9, 253777.4 ], [ 602222.7, 253831.4 ], [ 602188.7, 253938.9 ], [ 602171.2, 253958.4 ], [ 601972.5, 254061.3 ], [ 601857.5, 254137.5 ], [ 601777.3, 254214.8 ], [ 601716.0, 254300.5 ], [ 601720.4, 254331.9 ], [ 601728.4, 254338.9 ], [ 601838.2, 254272.0 ], [ 601865.8, 254264.8 ], [ 601929.5, 254267.5 ], [ 601987.811, 254287.203 ], [ 601979.4, 254311.7 ], [ 601926.2, 254356.7 ], [ 601905.4, 254433.2 ], [ 601911.4, 254453.9 ], [ 602076.1, 254487.7 ], [ 602149.5, 254533.5 ], [ 602298.4, 254649.9 ], [ 602575.8, 254759.4 ], [ 602614.0, 254807.7 ], [ 602623.9, 254838.3 ], [ 602622.6, 254856.2 ], [ 602606.1, 254870.4 ], [ 602584.1, 254870.4 ], [ 602403.4, 254823.7 ], [ 602350.9, 254817.4 ], [ 601990.3, 254820.4 ], [ 601865.1, 254828.6 ], [ 601841.9, 254836.3 ], [ 601809.0, 254861.4 ], [ 601748.7, 254924.6 ], [ 601692.1, 254952.6 ], [ 601659.5, 254948.2 ], [ 601589.0, 254899.2 ], [ 601562.8, 254888.7 ], [ 601538.3, 254890.0 ], [ 601533.8, 254907.0 ], [ 601564.3, 254937.5 ], [ 601622.3, 254974.5 ], [ 601655.4, 255016.4 ], [ 601668.1, 255061.8 ], [ 601653.5, 255113.9 ], [ 601720.5, 255180.4 ], [ 601863.8, 255300.4 ], [ 602014.1, 255462.9 ], [ 602059.7, 255475.2 ], [ 602064.0, 255481.3 ], [ 602061.7, 255528.7 ], [ 602086.2, 255527.9 ], [ 602152.1, 255556.0 ], [ 602252.6, 255582.4 ], [ 602306.4, 255627.7 ], [ 602462.5, 255681.2 ], [ 602582.7, 255679.3 ], [ 602647.5, 255705.1 ], [ 602697.7, 255711.7 ], [ 602705.1, 255721.1 ], [ 602775.1, 255725.3 ], [ 602952.5, 255773.0 ], [ 603011.8, 255781.1 ], [ 603085.1, 255778.3 ], [ 603102.8, 255765.1 ], [ 603125.9, 255731.5 ], [ 603144.3, 255731.6 ], [ 603174.8, 255749.1 ], [ 603409.5, 255932.6 ], [ 603499.0, 255957.6 ], [ 603578.6, 256009.6 ], [ 603612.7, 256041.5 ], [ 603848.0, 256166.7 ], [ 603921.6, 256192.1 ], [ 603969.3, 256189.9 ], [ 604037.8, 256164.2 ], [ 604071.5, 256173.9 ], [ 604090.8, 256169.3 ], [ 604086.0, 256149.9 ], [ 604033.1, 256077.8 ], [ 604052.8, 256097.2 ], [ 604176.4, 256165.0 ], [ 604206.5, 256179.0 ], [ 604266.5, 256190.9 ], [ 604295.4, 256229.8 ], [ 604317.5, 256284.2 ], [ 604381.8, 256314.5 ], [ 604403.0, 256315.2 ], [ 604563.0, 256276.7 ], [ 604660.8, 256220.2 ], [ 604689.5, 256039.2 ], [ 604745.2, 255861.9 ], [ 604816.7, 255786.5 ], [ 604846.7, 255783.9 ], [ 605059.1, 255814.8 ], [ 605073.5, 255832.9 ], [ 605117.8, 255859.5 ], [ 605183.9, 255919.7 ], [ 605293.2, 256001.5 ], [ 605556.7, 256166.6 ], [ 605872.8, 256307.8 ], [ 606016.9, 256383.9 ], [ 606095.3, 256416.5 ], [ 606648.8, 256423.2 ], [ 607094.2, 256488.5 ], [ 607243.7, 256525.0 ], [ 607413.2, 256578.2 ], [ 607546.1, 256630.3 ], [ 607773.6, 256731.7 ], [ 608071.1, 256834.4 ], [ 608249.4, 256880.7 ], [ 608328.0, 256888.1 ], [ 608405.7, 256887.1 ], [ 608650.4, 256863.8 ], [ 608686.7, 256851.8 ], [ 608698.2, 256828.1 ], [ 608691.2, 256799.8 ], [ 608675.0, 256778.8 ], [ 608636.7, 256750.3 ], [ 608542.6, 256712.3 ], [ 608454.0, 256694.0 ], [ 608380.0, 256690.8 ], [ 608369.0, 256684.7 ], [ 608499.1, 256662.1 ], [ 608589.1, 256658.5 ], [ 608748.3, 256666.3 ], [ 608888.4, 256755.2 ], [ 608969.4, 256831.1 ], [ 609034.3, 256907.4 ], [ 609078.9, 257005.1 ], [ 609086.8, 257034.8 ], [ 609089.7, 257090.7 ], [ 609080.3, 257156.8 ], [ 609072.5, 257191.6 ], [ 609045.6, 257255.3 ], [ 609030.1, 257271.3 ], [ 608977.1, 257289.6 ], [ 608904.2, 257384.5 ], [ 608822.9, 257450.8 ], [ 608799.1, 257502.8 ], [ 608792.9, 257565.6 ], [ 608781.9, 257592.3 ], [ 608703.0, 257606.8 ], [ 608510.4, 257684.4 ], [ 608372.1, 257780.6 ], [ 608315.4, 257840.2 ], [ 608389.6, 257824.8 ], [ 608488.2, 257791.8 ], [ 608542.9, 257801.5 ], [ 608609.4, 257797.8 ], [ 608720.9, 257783.8 ], [ 608759.1, 257773.0 ], [ 608798.2, 257751.6 ], [ 608816.6, 257760.9 ], [ 608904.958, 257697.772 ], [ 608933.4, 257711.0 ], [ 609052.9, 257823.0 ], [ 609060.4, 257848.0 ], [ 609065.1, 257922.8 ], [ 609056.9, 258055.0 ], [ 609079.4, 258188.3 ], [ 609201.5, 258153.0 ], [ 609217.8, 258263.8 ], [ 609344.2, 258242.6 ], [ 609364.0, 258308.1 ], [ 609303.5, 258319.4 ], [ 609311.4, 258388.4 ], [ 609289.8, 258394.4 ], [ 609321.4, 258509.8 ], [ 609009.4, 258602.1 ], [ 609080.8, 258906.6 ], [ 609161.3, 259415.8 ], [ 609197.5, 259418.6 ], [ 609263.9, 259563.8 ], [ 609265.9, 259628.0 ], [ 609250.1, 259722.0 ], [ 609258.9, 259776.3 ], [ 609323.7, 259889.3 ], [ 609495.2, 260057.9 ], [ 609507.8, 260040.0 ], [ 609615.7, 260035.2 ], [ 609754.2, 260042.2 ], [ 609860.5, 260055.9 ], [ 609880.2, 260065.9 ], [ 609886.5, 260080.4 ], [ 609891.2, 260150.7 ], [ 609867.4, 260276.3 ], [ 609999.69, 260482.371 ], [ 609943.711, 260496.735 ], [ 610009.7, 260638.1 ], [ 610034.2, 260656.8 ], [ 610123.3, 260701.2 ], [ 610140.4, 260716.3 ], [ 610188.9, 260795.1 ], [ 610245.6, 260855.0 ], [ 610310.4, 260900.1 ], [ 610357.718, 260914.277 ], [ 610362.4, 260932.5 ], [ 610340.6, 260963.5 ], [ 610403.6, 261006.9 ], [ 610424.1, 261018.6 ], [ 610498.4, 261032.2 ], [ 610510.2, 261047.3 ], [ 610506.697, 261068.118 ], [ 610709.9, 261117.2 ], [ 610799.1, 261149.0 ], [ 610777.6, 261170.6 ], [ 610778.4, 261192.6 ], [ 610865.2, 261371.4 ], [ 610835.1, 261375.2 ], [ 610786.9, 261365.5 ], [ 610619.1, 261360.7 ], [ 610537.9, 261343.2 ], [ 610560.1, 261391.5 ], [ 610591.0, 261437.2 ], [ 610588.4, 261542.7 ], [ 610608.6, 261645.2 ], [ 610662.6, 261754.2 ], [ 610722.9, 261826.0 ], [ 610779.9, 261844.7 ], [ 610895.7, 261845.0 ], [ 610892.5, 261876.0 ], [ 610880.5, 261908.8 ], [ 610900.9, 262080.9 ], [ 611139.0, 262129.5 ], [ 611189.9, 262133.9 ], [ 611321.9, 262575.3 ], [ 611378.4, 262846.3 ], [ 611391.6, 262974.3 ], [ 611432.1, 263188.6 ], [ 611432.9, 263217.1 ], [ 611395.9, 263384.1 ], [ 611386.9, 263454.6 ], [ 611361.8, 263533.6 ], [ 611353.1, 263616.1 ], [ 611372.332, 263738.333 ], [ 611375.7, 263836.7 ], [ 611399.8, 263899.5 ], [ 611400.0, 264033.1 ], [ 611369.6, 264149.2 ], [ 611336.8, 264154.1 ], [ 611316.1, 264164.1 ], [ 611287.6, 264194.9 ], [ 611301.8, 264469.6 ], [ 611291.8, 264537.4 ], [ 611264.8, 264580.9 ], [ 611202.3, 264625.9 ], [ 611186.1, 264659.1 ], [ 611187.919, 264795.453 ], [ 611215.3, 264897.6 ], [ 611202.2, 265008.9 ] ] ] } } , -{ "type": "Feature", "properties": { "FID": 2.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 645424.900000, 185831.100000 ], [ 645468.999000, 185782.827000 ], [ 645426.000000, 185734.600000 ], [ 645464.600000, 185672.100000 ], [ 645521.500000, 185625.800000 ], [ 645548.600000, 185570.000000 ], [ 645600.100000, 185550.300000 ], [ 645629.200000, 185507.700000 ], [ 645667.700000, 185469.600000 ], [ 645742.100000, 185445.000000 ], [ 645791.100000, 185445.200000 ], [ 645905.600000, 185362.500000 ], [ 645900.500000, 185327.300000 ], [ 645970.900000, 185296.100000 ], [ 645982.700000, 185261.700000 ], [ 646061.700000, 185184.000000 ], [ 646089.700000, 185130.500000 ], [ 646127.300000, 185082.400000 ], [ 646143.300000, 185047.500000 ], [ 646200.500000, 185017.800000 ], [ 646282.000000, 184990.500000 ], [ 646300.100000, 184976.100000 ], [ 646361.500000, 184874.100000 ], [ 646366.300000, 184856.100000 ], [ 646388.300000, 184825.500000 ], [ 646432.500000, 184784.700000 ], [ 646435.100000, 184751.900000 ] ], [ [ 559342.104000, 142940.163000 ], [ 559302.015000, 143023.834000 ], [ 559311.005000, 143028.045000 ], [ 559314.085000, 143039.132000 ], [ 559349.617000, 143056.250000 ], [ 559360.931183, 143054.964848 ] ], [ [ 755687.400000, 260651.800000 ], [ 755687.200000, 260665.400000 ], [ 755697.600000, 260679.700000 ], [ 755620.100000, 260641.900000 ], [ 755536.396000, 260628.133000 ], [ 755286.400000, 260604.400000 ], [ 755255.900000, 260593.400000 ], [ 755139.100000, 260637.400000 ], [ 755020.900000, 260671.100000 ], [ 754823.834000, 260699.148000 ], [ 754712.400000, 260757.100000 ], [ 754729.417000, 260727.760000 ], [ 754731.800000, 260702.800000 ], [ 754710.400000, 260619.600000 ], [ 754710.600000, 260576.100000 ], [ 754676.700000, 260479.600000 ], [ 754654.900000, 260387.100000 ], [ 754679.800000, 260381.200000 ], [ 754651.200000, 260320.400000 ], [ 754583.000000, 260295.600000 ], [ 754520.200000, 260256.700000 ], [ 754458.500000, 260056.200000 ], [ 754450.200000, 260005.100000 ], [ 754502.800000, 259989.100000 ], [ 754636.800000, 259985.300000 ], [ 754659.700000, 259979.000000 ], [ 754761.800000, 260017.800000 ], [ 754774.900000, 260014.900000 ], [ 754760.100000, 259971.700000 ], [ 754770.100000, 259793.600000 ], [ 754963.900000, 259705.200000 ], [ 755097.200000, 259603.200000 ], [ 755123.000000, 259563.500000 ], [ 755108.100000, 259470.500000 ], [ 755111.900000, 259383.800000 ], [ 755131.500000, 259376.600000 ], [ 755200.200000, 259416.300000 ], [ 755222.700000, 259418.300000 ], [ 755238.200000, 259412.600000 ], [ 755246.500000, 259402.100000 ], [ 755246.700000, 259382.600000 ], [ 755209.000000, 259316.800000 ], [ 755209.000000, 259299.600000 ], [ 755222.500000, 259291.100000 ], [ 755335.000000, 259266.000000 ], [ 755344.700000, 259250.500000 ], [ 755283.700000, 259239.500000 ], [ 755259.500000, 259227.300000 ], [ 755147.400000, 259118.100000 ], [ 755095.100000, 259133.300000 ], [ 755077.600000, 259119.800000 ], [ 755051.100000, 259081.100000 ], [ 755033.800000, 259073.700000 ], [ 755006.600000, 259068.700000 ], [ 754953.100000, 259091.100000 ], [ 754892.200000, 259076.800000 ], [ 754852.600000, 259058.100000 ], [ 754814.900000, 259025.800000 ], [ 754737.400000, 258932.000000 ], [ 754712.600000, 258896.100000 ], [ 754697.300000, 258848.000000 ], [ 754644.900000, 258798.800000 ], [ 754635.000000, 258777.400000 ], [ 754631.400000, 258737.500000 ], [ 754547.000000, 258661.600000 ], [ 754536.100000, 258637.100000 ], [ 754561.400000, 258638.800000 ], [ 754594.900000, 258651.600000 ], [ 754644.000000, 258648.600000 ], [ 754772.100000, 258608.700000 ], [ 754818.400000, 258629.300000 ], [ 754839.400000, 258631.600000 ], [ 754849.500000, 258624.100000 ], [ 754863.600000, 258589.900000 ], [ 754886.500000, 258572.100000 ], [ 754913.300000, 258569.100000 ], [ 754974.400000, 258592.000000 ], [ 755005.400000, 258591.300000 ], [ 755038.500000, 258573.000000 ], [ 755063.500000, 258539.500000 ], [ 755100.300000, 258557.600000 ], [ 755182.100000, 258574.900000 ], [ 755232.200000, 258602.800000 ], [ 755261.500000, 258599.500000 ], [ 755287.100000, 258584.100000 ], [ 755304.900000, 258580.800000 ], [ 755435.100000, 258611.700000 ], [ 755461.500000, 258629.900000 ], [ 755499.300000, 258621.300000 ], [ 755598.100000, 258692.200000 ], [ 755637.000000, 258683.500000 ], [ 755673.800000, 258705.700000 ], [ 755737.200000, 258709.400000 ], [ 755756.100000, 258693.000000 ], [ 755692.900000, 258649.100000 ], [ 755645.000000, 258605.200000 ], [ 755536.600000, 258487.200000 ], [ 755465.400000, 258462.800000 ], [ 755390.100000, 258394.100000 ], [ 755131.800000, 258106.400000 ], [ 755103.900000, 258051.500000 ], [ 755074.900000, 257966.800000 ], [ 755075.500000, 257942.700000 ], [ 755085.700000, 257919.000000 ], [ 755108.600000, 257893.200000 ], [ 755095.600000, 257865.500000 ], [ 755109.600000, 257863.200000 ], [ 755123.600000, 257878.500000 ], [ 755107.800000, 257926.300000 ], [ 755118.100000, 257958.300000 ], [ 755207.200000, 258029.100000 ], [ 755339.200000, 258079.400000 ], [ 755355.600000, 258080.700000 ], [ 755357.900000, 258071.700000 ], [ 755292.400000, 257984.900000 ], [ 755261.900000, 257927.400000 ], [ 755257.400000, 257904.200000 ], [ 755278.100000, 257865.100000 ], [ 755453.900000, 257689.300000 ], [ 755508.300000, 257648.500000 ], [ 755522.300000, 257644.200000 ], [ 755586.800000, 257650.600000 ], [ 755703.800000, 257682.700000 ], [ 755740.000000, 257674.900000 ], [ 755570.700000, 257537.900000 ], [ 755592.800000, 257518.000000 ], [ 755597.300000, 257497.800000 ], [ 755569.900000, 257450.900000 ], [ 755539.500000, 257373.100000 ], [ 755535.800000, 257349.400000 ], [ 755547.200000, 257306.600000 ], [ 755535.600000, 257245.500000 ], [ 755541.500000, 257217.400000 ], [ 755538.700000, 257192.200000 ], [ 755493.200000, 257093.400000 ], [ 755461.200000, 257042.600000 ], [ 755408.000000, 256998.300000 ], [ 755398.600000, 256976.100000 ], [ 755392.100000, 256925.900000 ], [ 755366.800000, 256898.800000 ], [ 755325.200000, 256834.500000 ], [ 755323.200000, 256809.700000 ], [ 755294.700000, 256787.200000 ], [ 755292.500000, 256754.500000 ], [ 755307.900000, 256725.900000 ], [ 755408.500000, 256786.500000 ], [ 755621.000000, 256813.000000 ], [ 755727.800000, 256848.500000 ], [ 755801.800000, 256889.000000 ], [ 755816.600000, 256880.700000 ], [ 755864.100000, 256894.200000 ], [ 755935.100000, 256888.200000 ], [ 756042.500000, 256921.500000 ], [ 756132.200000, 256923.300000 ], [ 756162.500000, 256917.300000 ], [ 756192.600000, 256902.700000 ], [ 756252.400000, 256840.200000 ], [ 756315.100000, 256700.200000 ], [ 756325.600000, 256685.700000 ], [ 756337.900000, 256680.500000 ], [ 756349.900000, 256688.000000 ], [ 756356.600000, 256712.700000 ], [ 756374.100000, 256736.700000 ], [ 756423.400000, 256760.500000 ], [ 756601.100000, 256804.000000 ], [ 756717.500000, 256841.000000 ], [ 756944.000000, 256884.200000 ], [ 756972.100000, 256879.700000 ], [ 757022.600000, 256850.500000 ], [ 757038.600000, 256835.200000 ], [ 757092.700000, 256743.900000 ], [ 757127.100000, 256725.700000 ], [ 757150.900000, 256722.500000 ], [ 757171.100000, 256738.000000 ], [ 757201.400000, 256810.700000 ], [ 757220.900000, 256822.200000 ], [ 757250.000000, 256816.600000 ], [ 757332.900000, 256766.000000 ], [ 757371.400000, 256766.500000 ], [ 757391.900000, 256774.000000 ], [ 757432.300000, 256837.900000 ], [ 757457.900000, 256900.000000 ], [ 757490.900000, 256957.500000 ], [ 757520.000000, 256982.100000 ], [ 757588.400000, 257000.000000 ], [ 757762.700000, 257208.200000 ], [ 758071.800000, 257012.300000 ] ], [ [ 662054.350617, 193534.006904 ], [ 662048.600000, 193524.200000 ] ], [ [ 662054.350617, 193534.006904 ], [ 662081.600000, 193509.900000 ], [ 662084.100000, 193495.200000 ], [ 662070.100000, 193489.700000 ], [ 662049.100000, 193496.200000 ], [ 662044.800000, 193512.000000 ], [ 662048.600000, 193524.200000 ] ], [ [ 662054.350617, 193534.006904 ], [ 661952.900000, 193610.500000 ], [ 661896.600000, 193533.400000 ], [ 661800.800000, 193713.100000 ], [ 661630.600000, 193800.600000 ], [ 661622.600000, 193825.900000 ], [ 661624.500000, 193904.600000 ], [ 661611.700000, 193966.900000 ], [ 661618.900000, 194000.000000 ], [ 661619.700000, 194052.000000 ], [ 661476.401000, 194066.944000 ], [ 661496.200000, 194152.900000 ], [ 661498.500000, 194200.600000 ], [ 661467.000000, 194206.500000 ], [ 661436.400000, 194229.500000 ], [ 661327.500000, 194189.500000 ], [ 661230.000000, 194139.500000 ], [ 661201.000000, 194135.200000 ], [ 661162.300000, 194117.500000 ], [ 661036.700000, 194007.700000 ], [ 660944.700000, 193873.200000 ], [ 660915.500000, 193779.000000 ], [ 660867.500000, 193708.700000 ], [ 660828.500000, 193683.700000 ], [ 660753.000000, 193658.900000 ], [ 660646.500000, 193581.200000 ], [ 660622.500000, 193554.000000 ], [ 660596.100000, 193497.100000 ], [ 660576.800000, 193420.300000 ], [ 660489.000000, 193305.500000 ], [ 660425.800000, 193175.800000 ], [ 660221.400000, 192925.600000 ], [ 660178.400000, 192856.000000 ], [ 660067.700000, 192742.500000 ], [ 660000.000000, 192626.200000 ], [ 659929.500000, 192549.500000 ], [ 659853.200000, 192439.500000 ], [ 659771.500000, 192384.200000 ], [ 659750.500000, 192323.200000 ], [ 659600.500000, 192114.000000 ], [ 659439.900000, 191990.500000 ], [ 659384.700000, 191981.000000 ], [ 659203.900000, 191814.800000 ], [ 659114.300000, 191777.700000 ], [ 659095.200000, 191750.600000 ], [ 659076.000000, 191668.800000 ], [ 659019.300000, 191615.900000 ], [ 658961.700000, 191583.500000 ], [ 658865.700000, 191509.000000 ], [ 658847.700000, 191502.400000 ], [ 658773.000000, 191504.100000 ], [ 658760.900000, 191496.400000 ], [ 658689.300000, 191399.100000 ], [ 658350.700000, 191174.600000 ], [ 658245.100000, 191139.600000 ], [ 658126.000000, 191057.900000 ], [ 657952.700000, 190962.500000 ], [ 657816.400000, 190896.000000 ], [ 657699.900000, 190822.900000 ], [ 657662.300000, 190790.800000 ], [ 657409.700000, 190506.000000 ], [ 657376.200000, 190481.700000 ], [ 657336.200000, 190437.200000 ], [ 657268.900000, 190406.700000 ], [ 657215.200000, 190402.000000 ], [ 657089.700000, 190314.500000 ], [ 656999.200000, 190209.700000 ], [ 656902.200000, 190211.000000 ], [ 656858.200000, 190198.000000 ], [ 656663.200000, 190045.500000 ], [ 656566.700000, 189911.000000 ], [ 656512.200000, 189858.000000 ], [ 656389.700000, 189783.500000 ], [ 656156.100000, 189659.800000 ], [ 656129.300000, 189629.600000 ], [ 656103.400000, 189580.600000 ], [ 656083.600000, 189559.000000 ], [ 656002.100000, 189557.000000 ], [ 655980.400000, 189546.200000 ], [ 655913.600000, 189454.800000 ], [ 655838.800000, 189307.200000 ], [ 655816.100000, 189249.900000 ], [ 655809.200000, 189212.200000 ], [ 655806.000000, 189119.800000 ], [ 655575.500000, 189098.800000 ], [ 655359.800000, 189057.200000 ], [ 655228.300000, 189050.700000 ], [ 655155.900000, 189030.800000 ], [ 655132.400000, 189018.000000 ], [ 655099.800000, 188846.600000 ], [ 655043.400000, 188772.400000 ], [ 654977.000000, 188655.900000 ], [ 654887.000000, 188621.100000 ], [ 654775.400000, 188567.000000 ], [ 654779.700000, 188469.100000 ], [ 654714.400000, 188357.800000 ], [ 654605.400000, 188276.400000 ], [ 654567.100000, 188260.700000 ], [ 654510.400000, 188250.000000 ], [ 654491.400000, 188234.300000 ], [ 654435.200000, 188206.800000 ], [ 654334.600000, 188126.600000 ], [ 654345.100000, 188093.800000 ], [ 654342.100000, 188087.100000 ], [ 654310.000000, 188025.600000 ], [ 654282.000000, 188009.800000 ], [ 654280.800000, 187997.500000 ], [ 654294.300000, 187967.400000 ], [ 654345.700000, 187911.100000 ], [ 654354.200000, 187854.300000 ], [ 654346.000000, 187828.500000 ], [ 654344.600000, 187759.900000 ], [ 654369.200000, 187730.800000 ], [ 654440.800000, 187688.800000 ], [ 654450.800000, 187674.500000 ], [ 654453.800000, 187652.800000 ], [ 654443.200000, 187608.100000 ], [ 654460.800000, 187405.700000 ], [ 654471.900000, 187369.700000 ], [ 654577.900000, 187242.800000 ], [ 654648.500000, 187115.800000 ], [ 654688.100000, 186937.900000 ], [ 654665.800000, 186921.800000 ], [ 654637.700000, 186883.900000 ], [ 654589.900000, 186846.900000 ], [ 654533.100000, 186922.700000 ], [ 654501.700000, 186953.700000 ], [ 654385.100000, 187026.900000 ], [ 654338.400000, 187045.200000 ], [ 654148.600000, 187093.700000 ], [ 654086.600000, 187101.300000 ], [ 654061.500000, 187114.300000 ], [ 654052.000000, 187128.100000 ], [ 654050.300000, 187157.400000 ], [ 654056.900000, 187174.500000 ], [ 654095.500000, 187217.900000 ], [ 654137.200000, 187338.200000 ], [ 654140.100000, 187354.400000 ], [ 654129.400000, 187428.300000 ], [ 654116.500000, 187496.400000 ], [ 654083.600000, 187541.800000 ], [ 654083.200000, 187667.900000 ], [ 654055.700000, 187758.400000 ], [ 653984.800000, 187890.800000 ], [ 653966.500000, 187909.600000 ], [ 653903.000000, 187944.800000 ], [ 653898.700000, 187933.400000 ], [ 653929.500000, 187858.300000 ], [ 653932.900000, 187831.600000 ], [ 653907.200000, 187728.000000 ], [ 653913.200000, 187706.500000 ], [ 653933.600000, 187675.700000 ], [ 653933.400000, 187662.100000 ], [ 653814.100000, 187529.400000 ], [ 653731.400000, 187506.000000 ], [ 653720.400000, 187494.000000 ], [ 653703.500000, 187449.600000 ], [ 653620.700000, 187355.900000 ], [ 653609.400000, 187357.700000 ], [ 653606.200000, 187369.600000 ], [ 653648.200000, 187418.200000 ], [ 653663.900000, 187455.000000 ], [ 653666.300000, 187481.700000 ], [ 653651.100000, 187616.000000 ], [ 653639.900000, 187654.400000 ], [ 653624.500000, 187680.300000 ], [ 653597.000000, 187705.600000 ], [ 653573.000000, 187721.600000 ], [ 653558.700000, 187725.900000 ], [ 653550.500000, 187720.900000 ], [ 653552.800000, 187635.800000 ], [ 653546.100000, 187596.300000 ], [ 653532.500000, 187563.700000 ], [ 653509.500000, 187529.100000 ], [ 653493.900000, 187517.300000 ], [ 653466.000000, 187519.600000 ], [ 653427.000000, 187510.600000 ], [ 653418.700000, 187519.700000 ], [ 653427.800000, 187541.300000 ], [ 653470.500000, 187554.600000 ], [ 653466.200000, 187590.600000 ], [ 653452.000000, 187618.200000 ], [ 653439.500000, 187616.600000 ], [ 653416.400000, 187587.700000 ], [ 653349.700000, 187576.900000 ], [ 653341.300000, 187568.800000 ], [ 653332.100000, 187537.000000 ], [ 653304.200000, 187502.600000 ], [ 653303.000000, 187487.600000 ], [ 653329.700000, 187434.100000 ], [ 653337.000000, 187355.600000 ], [ 653345.200000, 187339.700000 ], [ 653389.100000, 187296.400000 ], [ 653393.400000, 187264.700000 ], [ 653384.500000, 187248.300000 ], [ 653344.000000, 187218.600000 ], [ 653273.400000, 187219.700000 ], [ 653235.100000, 187205.500000 ], [ 653213.400000, 187155.600000 ], [ 653181.700000, 187131.900000 ], [ 653142.200000, 187125.600000 ], [ 653097.900000, 187128.500000 ], [ 653086.800000, 187119.200000 ], [ 653046.700000, 187027.600000 ], [ 653048.000000, 187012.100000 ], [ 653075.500000, 186971.100000 ], [ 653066.500000, 186931.200000 ], [ 653046.500000, 186905.300000 ], [ 653001.000000, 186865.600000 ], [ 652981.600000, 186831.100000 ], [ 652971.500000, 186779.000000 ], [ 652956.600000, 186762.800000 ], [ 652916.400000, 186734.100000 ], [ 652872.700000, 186723.100000 ], [ 652859.700000, 186707.900000 ], [ 652867.200000, 186679.400000 ], [ 652910.900000, 186628.800000 ], [ 652917.000000, 186616.400000 ], [ 652913.500000, 186599.600000 ], [ 652898.200000, 186600.100000 ], [ 652871.500000, 186638.100000 ], [ 652822.700000, 186651.100000 ], [ 652805.100000, 186677.500000 ], [ 652777.300000, 186701.900000 ], [ 652772.800000, 186714.900000 ], [ 652777.100000, 186730.200000 ], [ 652838.600000, 186811.300000 ], [ 652851.100000, 186901.200000 ], [ 652845.100000, 186922.400000 ], [ 652796.400000, 186898.700000 ], [ 652764.300000, 186899.200000 ], [ 652720.400000, 186943.400000 ], [ 652679.200000, 186954.300000 ], [ 652611.400000, 186952.100000 ], [ 652544.600000, 186913.600000 ], [ 652518.500000, 186937.500000 ], [ 652505.700000, 186840.500000 ], [ 652509.500000, 186753.900000 ], [ 652499.900000, 186742.000000 ], [ 652480.900000, 186749.000000 ], [ 652438.000000, 186805.900000 ], [ 652421.000000, 186819.000000 ], [ 652336.500000, 186785.500000 ], [ 652321.500000, 186797.000000 ], [ 652305.100000, 186859.500000 ], [ 652288.334000, 186855.440000 ], [ 652287.101000, 186863.662000 ], [ 652270.400000, 186872.700000 ], [ 652257.400000, 186918.400000 ], [ 652230.600000, 186943.700000 ], [ 652221.900000, 187012.800000 ], [ 652208.000000, 187055.800000 ], [ 652158.800000, 187107.300000 ], [ 652166.800000, 187148.500000 ], [ 652151.700000, 187208.900000 ], [ 652135.900000, 187212.900000 ], [ 652105.400000, 187179.200000 ], [ 652094.700000, 187180.100000 ], [ 652073.700000, 187195.300000 ], [ 652059.900000, 187219.900000 ], [ 652049.500000, 187274.600000 ], [ 652033.100000, 187312.800000 ], [ 652034.900000, 187391.800000 ], [ 652015.600000, 187395.300000 ], [ 651995.900000, 187366.400000 ], [ 651946.100000, 187248.600000 ], [ 651936.200000, 187197.500000 ], [ 651940.000000, 187169.500000 ], [ 651932.200000, 187165.300000 ], [ 651906.300000, 187169.400000 ], [ 651880.500000, 187153.500000 ], [ 651872.100000, 187155.600000 ], [ 651869.400000, 187165.100000 ], [ 651877.200000, 187188.700000 ], [ 651872.800000, 187194.700000 ], [ 651805.400000, 187216.900000 ], [ 651769.000000, 187213.500000 ], [ 651748.300000, 187197.300000 ], [ 651676.600000, 187112.600000 ], [ 651626.600000, 186986.500000 ], [ 651524.600000, 186873.000000 ], [ 651500.700000, 186824.200000 ], [ 651484.600000, 186759.500000 ], [ 651430.500000, 186689.800000 ], [ 651357.800000, 186646.400000 ], [ 651352.600000, 186608.100000 ], [ 651334.900000, 186578.000000 ], [ 651334.800000, 186552.800000 ], [ 651315.900000, 186493.200000 ], [ 651254.900000, 186398.700000 ], [ 651254.900000, 186225.000000 ], [ 651309.900000, 186233.100000 ], [ 651395.100000, 186233.400000 ], [ 651473.900000, 186274.300000 ], [ 651508.742000, 186284.432000 ], [ 651488.200000, 186219.600000 ], [ 651476.500000, 186200.300000 ], [ 651391.200000, 186162.300000 ], [ 651304.200000, 186088.800000 ], [ 651209.700000, 186057.200000 ], [ 651049.400000, 185974.400000 ], [ 650972.000000, 185948.800000 ], [ 650911.200000, 185920.700000 ], [ 650780.000000, 185913.000000 ], [ 650687.000000, 185930.500000 ], [ 650640.900000, 185927.500000 ], [ 650603.400000, 185933.700000 ], [ 650578.400000, 185959.600000 ], [ 650571.800000, 185980.200000 ], [ 650574.200000, 186018.700000 ], [ 650544.200000, 186068.600000 ], [ 650575.100000, 186129.200000 ], [ 650570.100000, 186275.800000 ], [ 650552.200000, 186420.000000 ], [ 650541.200000, 186440.200000 ], [ 650517.000000, 186445.800000 ], [ 650478.400000, 186423.600000 ], [ 650457.300000, 186398.300000 ], [ 650443.400000, 186318.200000 ], [ 650450.600000, 186268.700000 ], [ 650407.500000, 186147.200000 ], [ 650287.900000, 186005.700000 ], [ 650229.100000, 185907.600000 ], [ 650177.700000, 185865.700000 ], [ 650080.700000, 185742.400000 ], [ 650082.800000, 185669.600000 ], [ 650072.700000, 185653.000000 ], [ 650037.100000, 185630.400000 ], [ 649994.700000, 185621.500000 ], [ 649974.000000, 185603.500000 ], [ 649970.500000, 185529.000000 ], [ 649956.500000, 185506.200000 ], [ 649816.000000, 185486.100000 ], [ 649793.800000, 185465.000000 ], [ 649773.700000, 185455.700000 ], [ 649720.400000, 185404.400000 ], [ 649585.200000, 185407.700000 ], [ 649509.300000, 185444.400000 ], [ 649443.900000, 185431.600000 ], [ 649389.700000, 185450.700000 ], [ 649265.600000, 185422.300000 ], [ 649200.700000, 185455.700000 ], [ 649169.900000, 185458.900000 ], [ 649152.100000, 185453.700000 ], [ 649099.400000, 185400.700000 ], [ 649013.000000, 185366.700000 ], [ 648907.400000, 185253.400000 ], [ 648876.000000, 185233.600000 ], [ 648846.400000, 185227.600000 ], [ 648773.200000, 185249.500000 ], [ 648679.800000, 185252.100000 ], [ 648591.800000, 185245.900000 ], [ 648495.400000, 185208.300000 ], [ 648407.700000, 185191.300000 ], [ 648391.700000, 185181.700000 ], [ 648387.100000, 185138.100000 ], [ 648380.900000, 185122.000000 ], [ 648366.200000, 185112.500000 ], [ 648306.700000, 185104.900000 ], [ 648281.900000, 185116.700000 ], [ 648263.400000, 185116.400000 ], [ 648212.200000, 185082.300000 ], [ 648175.500000, 185021.500000 ], [ 648172.700000, 185006.700000 ], [ 648183.200000, 185004.200000 ], [ 648207.100000, 185028.700000 ], [ 648240.100000, 185046.900000 ], [ 648258.200000, 185048.600000 ], [ 648276.300000, 185041.700000 ], [ 648316.600000, 184996.400000 ], [ 648360.900000, 184926.100000 ], [ 648422.300000, 184864.300000 ], [ 648482.200000, 184761.100000 ], [ 648545.100000, 184692.000000 ], [ 648569.500000, 184675.200000 ], [ 648629.500000, 184650.400000 ], [ 648690.400000, 184600.500000 ], [ 648746.600000, 184588.900000 ], [ 648854.700000, 184589.100000 ], [ 648860.200000, 184582.900000 ], [ 648853.200000, 184575.100000 ], [ 648497.600000, 184532.800000 ], [ 648458.400000, 184506.800000 ], [ 648366.900000, 184411.200000 ], [ 648327.700000, 184392.200000 ], [ 648262.500000, 184382.400000 ], [ 648212.200000, 184358.300000 ], [ 648132.000000, 184333.500000 ], [ 648120.500000, 184339.700000 ], [ 648093.200000, 184376.200000 ], [ 648049.900000, 184403.200000 ], [ 647979.500000, 184406.100000 ], [ 647940.000000, 184419.100000 ], [ 647847.500000, 184398.100000 ], [ 647799.700000, 184401.100000 ], [ 647714.200000, 184432.300000 ], [ 647651.900000, 184445.000000 ], [ 647597.000000, 184485.300000 ], [ 647561.600000, 184491.200000 ], [ 647519.800000, 184480.600000 ], [ 647456.900000, 184446.700000 ], [ 647412.800000, 184413.200000 ], [ 647341.800000, 184338.700000 ], [ 647320.000000, 184329.200000 ], [ 647288.300000, 184331.900000 ], [ 647264.700000, 184343.700000 ], [ 647248.600000, 184361.800000 ], [ 647240.800000, 184430.900000 ], [ 647064.800000, 184332.800000 ], [ 647009.100000, 184321.300000 ], [ 646958.700000, 184330.500000 ], [ 646821.500000, 184400.700000 ], [ 646740.700000, 184422.800000 ], [ 646703.000000, 184439.500000 ], [ 646602.500000, 184553.100000 ], [ 646570.100000, 184606.800000 ], [ 646527.900000, 184652.800000 ], [ 646476.200000, 184680.600000 ], [ 646435.100000, 184751.900000 ] ], [ [ 723167.400000, 221684.300000 ], [ 722968.200000, 221848.300000 ] ], [ [ 723167.400000, 221684.300000 ], [ 723120.200000, 221628.600000 ], [ 723099.200000, 221592.000000 ], [ 723052.200000, 221471.900000 ], [ 723007.800000, 221418.300000 ], [ 722909.300000, 221327.300000 ], [ 722729.800000, 220969.000000 ], [ 722711.600000, 220947.900000 ], [ 722613.000000, 220785.500000 ], [ 722594.600000, 220768.700000 ], [ 722523.400000, 220725.500000 ], [ 722519.000000, 220731.600000 ], [ 722460.700000, 220738.200000 ], [ 722190.900000, 220727.900000 ], [ 722146.900000, 220709.100000 ], [ 722068.300000, 220636.100000 ], [ 722046.300000, 220623.300000 ], [ 721865.600000, 220562.000000 ], [ 721866.177000, 220570.141000 ], [ 721903.043000, 220581.991000 ], [ 721952.637000, 220624.124000 ], [ 721958.343000, 220650.018000 ], [ 721994.331000, 220687.763000 ], [ 721996.087000, 220701.368000 ], [ 721989.065000, 220702.685000 ], [ 721814.388000, 220614.029000 ], [ 721785.422000, 220619.735000 ], [ 721774.449000, 220615.346000 ], [ 721741.094000, 220595.157000 ], [ 721721.742000, 220572.036000 ], [ 721714.286000, 220572.334000 ], [ 721711.303000, 220585.755000 ], [ 721761.408000, 220663.745000 ], [ 721824.336000, 220705.797000 ], [ 721849.091000, 220746.955000 ], [ 721999.106000, 220830.015000 ], [ 722003.281000, 220859.541000 ], [ 722014.316000, 220882.058000 ], [ 722005.965000, 220930.969000 ], [ 721977.036000, 220951.250000 ], [ 721966.597000, 220972.723000 ], [ 721960.334000, 220974.513000 ], [ 721950.492000, 220960.793000 ], [ 721967.194000, 220936.636000 ], [ 721962.422000, 220919.934000 ], [ 721866.388000, 220888.470000 ], [ 721838.652000, 220862.225000 ], [ 721807.300000, 220858.700000 ], [ 721783.900000, 220842.800000 ], [ 721753.200000, 220834.700000 ], [ 721662.900000, 220774.600000 ], [ 721567.400000, 220738.200000 ], [ 721521.200000, 220734.200000 ], [ 721483.700000, 220762.500000 ], [ 721473.600000, 220756.600000 ], [ 721464.300000, 220728.100000 ], [ 721389.600000, 220708.300000 ], [ 721319.900000, 220734.000000 ], [ 721283.800000, 220738.300000 ], [ 721197.900000, 220697.200000 ], [ 721100.000000, 220675.700000 ], [ 721085.300000, 220678.900000 ], [ 721079.100000, 220692.000000 ], [ 721066.000000, 220697.800000 ], [ 720988.600000, 220685.700000 ], [ 720891.600000, 220653.200000 ], [ 720877.300000, 220645.600000 ], [ 720854.400000, 220618.800000 ], [ 720844.800000, 220619.700000 ], [ 720843.100000, 220629.000000 ], [ 720854.500000, 220638.800000 ], [ 720865.000000, 220662.300000 ], [ 720943.200000, 220728.800000 ], [ 721083.600000, 220789.300000 ], [ 721200.700000, 220822.100000 ], [ 721262.300000, 220852.700000 ], [ 721264.900000, 220858.200000 ], [ 721258.700000, 220862.600000 ], [ 721202.800000, 220846.000000 ], [ 721128.000000, 220847.100000 ], [ 721017.100000, 220832.800000 ], [ 720976.600000, 220811.300000 ], [ 720941.000000, 220797.800000 ], [ 720931.400000, 220800.200000 ], [ 720929.100000, 220808.600000 ], [ 720937.100000, 220814.400000 ], [ 720973.900000, 220826.300000 ], [ 721001.000000, 220853.100000 ], [ 721050.200000, 220877.800000 ], [ 721134.100000, 220903.000000 ], [ 721201.700000, 220934.000000 ], [ 721211.900000, 220945.500000 ], [ 721217.200000, 220967.800000 ], [ 721207.200000, 220968.200000 ], [ 721194.200000, 220945.200000 ], [ 721176.300000, 220935.700000 ], [ 721059.300000, 220938.600000 ], [ 720982.600000, 220921.600000 ], [ 720932.300000, 220901.200000 ], [ 720855.500000, 220886.300000 ], [ 720803.100000, 220861.100000 ], [ 720740.400000, 220842.800000 ], [ 720667.700000, 220838.200000 ], [ 720612.100000, 220821.700000 ], [ 720587.300000, 220826.600000 ], [ 720511.100000, 220925.900000 ], [ 720460.100000, 220939.800000 ], [ 720422.500000, 220965.800000 ], [ 720406.400000, 220964.300000 ], [ 720370.000000, 220923.100000 ], [ 720340.600000, 220929.500000 ], [ 720298.900000, 220920.600000 ], [ 720269.300000, 220901.800000 ], [ 720207.100000, 220904.200000 ], [ 720188.900000, 220894.800000 ], [ 720175.600000, 220860.900000 ], [ 720155.500000, 220844.500000 ], [ 720130.600000, 220840.200000 ], [ 720076.700000, 220785.700000 ], [ 719974.400000, 220751.900000 ], [ 719974.500000, 220722.600000 ], [ 719948.900000, 220679.500000 ], [ 719920.800000, 220654.600000 ], [ 719918.100000, 220643.600000 ], [ 719928.300000, 220629.700000 ], [ 719986.100000, 220586.900000 ], [ 720009.400000, 220551.700000 ], [ 720032.300000, 220542.300000 ], [ 720057.800000, 220545.400000 ], [ 720082.500000, 220524.300000 ], [ 720157.800000, 220503.400000 ], [ 720171.100000, 220496.000000 ], [ 720173.300000, 220489.000000 ], [ 720165.100000, 220483.700000 ], [ 720098.300000, 220501.000000 ], [ 720036.200000, 220492.700000 ], [ 719987.800000, 220494.700000 ], [ 719935.300000, 220516.800000 ], [ 719899.500000, 220518.000000 ], [ 719847.900000, 220509.900000 ], [ 719797.800000, 220530.000000 ], [ 719663.900000, 220543.200000 ], [ 719623.600000, 220537.200000 ], [ 719496.500000, 220537.000000 ], [ 719441.300000, 220551.200000 ], [ 719340.000000, 220564.500000 ], [ 719302.800000, 220554.000000 ], [ 719260.100000, 220557.300000 ], [ 719156.600000, 220543.000000 ], [ 719128.800000, 220529.100000 ], [ 719010.800000, 220510.100000 ], [ 718924.300000, 220520.900000 ], [ 718873.400000, 220502.700000 ], [ 718810.000000, 220503.400000 ], [ 718770.200000, 220495.600000 ], [ 718669.500000, 220509.700000 ], [ 718626.400000, 220467.900000 ], [ 718526.100000, 220433.900000 ], [ 718408.900000, 220437.600000 ], [ 718341.200000, 220428.300000 ], [ 718271.500000, 220430.000000 ], [ 718174.200000, 220441.700000 ], [ 718123.800000, 220470.900000 ], [ 718045.300000, 220468.000000 ], [ 718022.300000, 220478.000000 ], [ 717961.434000, 220458.490000 ], [ 717948.633000, 220446.737000 ], [ 717925.400000, 220438.700000 ], [ 717793.800000, 220431.800000 ], [ 717694.300000, 220411.800000 ], [ 717598.200000, 220431.600000 ], [ 717579.600000, 220456.500000 ], [ 717542.300000, 220459.300000 ], [ 717498.700000, 220426.700000 ], [ 717395.800000, 220399.300000 ], [ 717369.000000, 220393.600000 ], [ 717319.800000, 220403.800000 ], [ 717284.800000, 220393.100000 ], [ 717257.000000, 220396.600000 ], [ 717241.300000, 220389.900000 ], [ 717201.500000, 220397.900000 ], [ 717158.000000, 220430.900000 ], [ 717089.500000, 220427.600000 ], [ 717055.500000, 220442.100000 ], [ 717035.800000, 220441.600000 ], [ 716995.300000, 220454.600000 ], [ 716934.600000, 220448.100000 ], [ 716831.400000, 220470.400000 ], [ 716764.700000, 220473.500000 ], [ 716731.000000, 220485.800000 ], [ 716688.707000, 220521.317000 ], [ 716698.400000, 220572.800000 ], [ 716714.800000, 220601.800000 ], [ 716710.800000, 220637.300000 ], [ 716715.800000, 220649.400000 ], [ 716820.900000, 220716.500000 ], [ 716847.300000, 220745.400000 ], [ 716850.700000, 220763.400000 ], [ 716702.600000, 220794.500000 ], [ 716619.600000, 220846.900000 ], [ 716495.700000, 220889.300000 ], [ 716476.800000, 220905.300000 ], [ 716465.300000, 220905.600000 ], [ 716444.300000, 220890.300000 ], [ 716436.500000, 220849.500000 ], [ 716430.000000, 220843.500000 ], [ 716387.500000, 220842.300000 ], [ 716346.600000, 220830.900000 ], [ 716343.500000, 220809.100000 ], [ 716330.000000, 220787.800000 ], [ 716284.300000, 220769.800000 ], [ 716237.500000, 220724.900000 ], [ 716170.500000, 220689.800000 ], [ 716128.100000, 220649.600000 ], [ 716033.300000, 220591.700000 ], [ 715966.000000, 220514.600000 ], [ 715923.300000, 220493.600000 ], [ 715894.500000, 220515.800000 ], [ 715917.300000, 220529.800000 ], [ 715876.900000, 220563.500000 ], [ 715865.400000, 220557.200000 ], [ 715810.500000, 220553.400000 ], [ 715774.300000, 220565.000000 ], [ 715744.500000, 220566.500000 ], [ 715728.300000, 220578.800000 ], [ 715695.400000, 220586.600000 ], [ 715648.800000, 220580.600000 ], [ 715636.900000, 220584.400000 ], [ 715613.100000, 220573.000000 ], [ 715602.800000, 220557.600000 ], [ 715531.300000, 220568.700000 ], [ 715483.100000, 220604.700000 ], [ 715474.500000, 220625.900000 ], [ 715434.500000, 220666.200000 ], [ 715437.612000, 220711.170000 ], [ 715461.900000, 220723.800000 ], [ 715480.700000, 220748.900000 ], [ 715508.800000, 220807.500000 ], [ 715478.500000, 220920.500000 ], [ 715473.200000, 220994.300000 ], [ 715486.000000, 221054.000000 ], [ 715448.000000, 221258.400000 ], [ 715468.800000, 221349.200000 ], [ 715469.200000, 221393.000000 ], [ 715457.000000, 221447.900000 ], [ 715436.900000, 221484.900000 ], [ 715430.900000, 221531.900000 ], [ 715377.900000, 221571.100000 ], [ 715333.700000, 221615.300000 ], [ 715314.700000, 221650.500000 ], [ 715307.400000, 221682.200000 ], [ 715293.200000, 221687.200000 ], [ 715207.461000, 221687.537000 ], [ 715165.968000, 221703.496000 ], [ 715070.200000, 221711.300000 ], [ 715046.900000, 221735.600000 ], [ 715038.200000, 221735.600000 ], [ 714999.200000, 221696.400000 ], [ 714923.200000, 221710.900000 ], [ 714877.400000, 221704.700000 ], [ 714804.600000, 221748.700000 ], [ 714744.000000, 221748.400000 ], [ 714625.500000, 221779.700000 ], [ 714553.200000, 221791.600000 ], [ 714543.700000, 221797.100000 ], [ 714515.700000, 221848.400000 ], [ 714462.800000, 221852.400000 ], [ 714450.800000, 221902.900000 ], [ 714435.600000, 221914.700000 ], [ 714410.700000, 221921.500000 ], [ 714363.000000, 221904.500000 ], [ 714332.500000, 221911.500000 ], [ 714258.000000, 221944.000000 ], [ 714164.300000, 221967.000000 ], [ 714141.800000, 221961.500000 ], [ 714102.900000, 221932.800000 ], [ 714012.400000, 221947.700000 ], [ 713954.000000, 221990.200000 ], [ 713892.200000, 222069.600000 ], [ 713817.100000, 222120.600000 ], [ 713808.000000, 222134.100000 ], [ 713809.000000, 222144.200000 ], [ 713824.300000, 222168.600000 ], [ 713802.800000, 222209.600000 ], [ 713776.300000, 222224.700000 ], [ 713745.300000, 222257.400000 ], [ 713693.300000, 222263.800000 ], [ 713652.500000, 222315.300000 ], [ 713609.700000, 222326.800000 ], [ 713599.400000, 222335.000000 ], [ 713596.900000, 222346.500000 ], [ 713615.200000, 222369.700000 ], [ 713668.700000, 222397.500000 ], [ 713684.400000, 222415.200000 ], [ 713682.500000, 222441.700000 ], [ 713665.300000, 222450.400000 ], [ 713604.200000, 222452.100000 ], [ 713546.200000, 222476.300000 ], [ 713527.200000, 222487.200000 ], [ 713492.900000, 222529.600000 ], [ 713431.100000, 222582.100000 ], [ 713355.500000, 222594.900000 ], [ 713341.700000, 222636.600000 ], [ 713328.700000, 222643.300000 ], [ 713193.000000, 222649.400000 ], [ 713168.200000, 222645.600000 ], [ 713103.000000, 222606.600000 ], [ 713033.200000, 222584.000000 ], [ 713009.400000, 222528.200000 ], [ 712958.100000, 222520.500000 ], [ 712896.200000, 222462.200000 ], [ 712817.700000, 222437.200000 ], [ 712718.071000, 222389.443000 ], [ 712689.200000, 222391.500000 ], [ 712674.700000, 222396.500000 ], [ 712653.400000, 222419.200000 ], [ 712643.100000, 222464.800000 ], [ 712636.300000, 222472.500000 ], [ 712591.500000, 222497.000000 ], [ 712438.400000, 222545.000000 ], [ 712403.900000, 222542.700000 ], [ 712358.400000, 222505.700000 ], [ 712176.200000, 222556.200000 ], [ 712125.900000, 222614.500000 ], [ 712076.200000, 222627.500000 ], [ 712014.900000, 222657.000000 ], [ 711961.400000, 222701.300000 ], [ 711897.300000, 222726.400000 ], [ 711829.600000, 222769.300000 ], [ 711876.500000, 222624.000000 ], [ 711875.400000, 222545.300000 ], [ 711862.900000, 222522.000000 ], [ 711839.400000, 222515.500000 ], [ 711781.300000, 222519.200000 ], [ 711738.100000, 222510.900000 ], [ 711536.100000, 222515.200000 ], [ 711485.313000, 222523.132000 ], [ 711410.000000, 222514.400000 ], [ 711390.500000, 222515.900000 ], [ 711245.400000, 222578.100000 ], [ 711173.300000, 222590.300000 ], [ 711127.200000, 222590.000000 ], [ 711069.500000, 222579.200000 ], [ 711020.400000, 222558.800000 ], [ 710976.900000, 222563.700000 ], [ 710961.103000, 222559.567000 ], [ 710950.100000, 222570.700000 ], [ 710928.200000, 222559.700000 ], [ 710910.600000, 222535.100000 ], [ 710869.600000, 222511.800000 ], [ 710854.400000, 222452.200000 ], [ 710869.900000, 222440.300000 ], [ 710917.600000, 222438.300000 ], [ 710914.400000, 222422.300000 ], [ 710888.200000, 222380.200000 ], [ 710903.700000, 222339.900000 ], [ 710896.400000, 222323.800000 ], [ 710888.600000, 222323.300000 ], [ 710845.400000, 222353.600000 ], [ 710804.300000, 222349.700000 ], [ 710746.400000, 222354.600000 ], [ 710730.400000, 222363.300000 ], [ 710689.700000, 222413.100000 ], [ 710609.200000, 222454.900000 ], [ 710580.782000, 222463.173000 ], [ 710567.700000, 222609.400000 ], [ 710567.500000, 222665.900000 ], [ 710575.200000, 222687.700000 ], [ 710535.200000, 222651.400000 ], [ 710525.400000, 222634.900000 ], [ 710524.200000, 222577.800000 ], [ 710533.200000, 222548.600000 ], [ 710528.800000, 222507.100000 ], [ 710502.100000, 222495.300000 ], [ 710459.800000, 222494.800000 ], [ 710443.600000, 222487.400000 ], [ 710427.000000, 222469.100000 ], [ 710354.500000, 222326.200000 ], [ 710316.900000, 222285.000000 ], [ 710288.700000, 222224.000000 ], [ 710246.700000, 222169.900000 ], [ 710138.600000, 222097.300000 ], [ 710061.400000, 222023.600000 ], [ 710002.900000, 221988.600000 ], [ 709980.500000, 221959.600000 ], [ 709926.800000, 221944.300000 ], [ 709919.000000, 221922.300000 ], [ 709918.400000, 221876.600000 ], [ 709896.900000, 221841.700000 ], [ 709895.700000, 221804.700000 ], [ 709887.700000, 221791.000000 ], [ 709830.100000, 221739.000000 ], [ 709841.800000, 221779.200000 ], [ 709871.000000, 221813.200000 ], [ 709871.500000, 221830.700000 ], [ 709803.200000, 221940.600000 ], [ 709787.300000, 221934.400000 ], [ 709791.300000, 221903.900000 ], [ 709786.700000, 221885.800000 ], [ 709733.500000, 221852.200000 ], [ 709709.800000, 221845.600000 ], [ 709654.200000, 221885.100000 ], [ 709623.300000, 221895.900000 ], [ 709573.000000, 221981.900000 ], [ 709539.000000, 222003.700000 ], [ 709539.300000, 222028.500000 ], [ 709563.500000, 222061.500000 ], [ 709562.400000, 222105.400000 ], [ 709588.600000, 222126.300000 ], [ 709611.900000, 222172.600000 ], [ 709631.900000, 222184.700000 ], [ 709643.700000, 222183.600000 ], [ 709666.000000, 222160.500000 ], [ 709678.000000, 222158.100000 ], [ 709700.900000, 222171.300000 ], [ 709700.200000, 222185.600000 ], [ 709677.100000, 222212.500000 ], [ 709666.200000, 222246.800000 ], [ 709644.600000, 222283.700000 ], [ 709674.200000, 222335.000000 ], [ 709664.800000, 222471.400000 ], [ 709671.200000, 222500.100000 ], [ 709660.700000, 222504.300000 ], [ 709641.500000, 222474.000000 ], [ 709615.900000, 222460.900000 ], [ 709585.800000, 222459.000000 ], [ 709502.900000, 222470.700000 ], [ 709486.700000, 222467.700000 ], [ 709449.900000, 222441.100000 ], [ 709431.900000, 222438.500000 ], [ 709384.800000, 222453.300000 ], [ 709382.300000, 222401.300000 ], [ 709368.100000, 222387.900000 ], [ 709279.900000, 222341.300000 ], [ 709249.800000, 222308.800000 ], [ 709238.100000, 222304.500000 ], [ 709178.800000, 222312.500000 ], [ 709167.094000, 222315.752000 ], [ 709154.202000, 222330.791000 ], [ 709136.800000, 222327.800000 ], [ 709123.300000, 222334.200000 ], [ 709126.700000, 222346.000000 ], [ 709149.400000, 222358.700000 ], [ 709141.600000, 222379.800000 ], [ 709167.046000, 222398.805000 ], [ 709185.200000, 222446.700000 ], [ 709211.500000, 222465.200000 ], [ 709226.600000, 222491.000000 ], [ 709202.668000, 222467.446000 ], [ 709144.694000, 222433.740000 ], [ 709084.922000, 222431.492000 ], [ 709007.173000, 222413.966000 ], [ 708945.154000, 222408.123000 ], [ 708900.213000, 222383.855000 ], [ 708857.519000, 222377.114000 ], [ 708775.600000, 222324.100000 ], [ 708744.000000, 222312.500000 ], [ 708658.300000, 222311.500000 ], [ 708608.200000, 222329.300000 ], [ 708542.400000, 222310.200000 ], [ 708511.900000, 222310.400000 ], [ 708442.100000, 222339.300000 ], [ 708371.900000, 222326.300000 ], [ 708306.700000, 222302.400000 ], [ 708248.400000, 222272.100000 ], [ 708243.600000, 222259.500000 ], [ 708250.300000, 222240.700000 ], [ 708300.600000, 222214.300000 ], [ 708312.400000, 222195.300000 ], [ 708300.400000, 222180.900000 ], [ 708249.200000, 222162.400000 ], [ 708157.200000, 222164.700000 ], [ 708127.000000, 222148.400000 ], [ 708099.600000, 222147.000000 ], [ 708030.100000, 222128.400000 ], [ 707933.100000, 222133.600000 ], [ 707878.500000, 222148.400000 ], [ 707766.100000, 222147.100000 ], [ 707663.700000, 222123.300000 ], [ 707529.500000, 222135.100000 ], [ 707470.600000, 222100.900000 ], [ 707418.700000, 222092.200000 ], [ 707334.700000, 222059.900000 ], [ 707233.800000, 222037.900000 ], [ 707228.900000, 222029.200000 ], [ 707233.900000, 222007.700000 ], [ 707230.300000, 221965.600000 ], [ 707248.300000, 221954.000000 ], [ 707274.800000, 221947.800000 ], [ 707286.500000, 221935.100000 ], [ 707291.500000, 221922.400000 ], [ 707271.200000, 221903.200000 ], [ 707270.200000, 221892.200000 ], [ 707296.200000, 221820.300000 ], [ 707313.100000, 221798.000000 ], [ 707372.200000, 221797.600000 ], [ 707428.800000, 221806.800000 ], [ 707471.600000, 221792.500000 ], [ 707522.900000, 221821.400000 ], [ 707594.500000, 221840.700000 ], [ 707632.400000, 221838.300000 ], [ 707684.500000, 221798.600000 ], [ 707698.100000, 221779.700000 ], [ 707691.600000, 221721.900000 ], [ 707698.400000, 221695.500000 ], [ 707672.500000, 221649.800000 ], [ 707676.500000, 221590.300000 ], [ 707672.700000, 221579.700000 ], [ 707650.000000, 221562.700000 ], [ 707652.000000, 221543.700000 ], [ 707674.200000, 221535.500000 ], [ 707771.100000, 221537.400000 ], [ 707841.600000, 221506.300000 ], [ 707897.900000, 221510.800000 ], [ 708002.200000, 221488.300000 ], [ 708021.200000, 221475.200000 ], [ 708033.400000, 221451.500000 ], [ 708010.300000, 221410.200000 ], [ 708008.800000, 221396.100000 ], [ 708014.900000, 221386.100000 ], [ 708047.800000, 221363.600000 ], [ 708133.700000, 221327.700000 ], [ 708264.700000, 221295.400000 ], [ 708285.800000, 221276.300000 ], [ 708296.600000, 221252.000000 ], [ 708296.000000, 221231.600000 ], [ 708203.900000, 221140.100000 ], [ 708122.200000, 221123.100000 ], [ 708059.100000, 221096.800000 ], [ 708020.400000, 221088.200000 ], [ 707999.400000, 221058.700000 ], [ 707962.100000, 221054.500000 ], [ 707909.600000, 221012.500000 ], [ 707843.300000, 221022.000000 ], [ 707823.100000, 221005.600000 ], [ 707785.100000, 220996.800000 ], [ 707753.900000, 220962.400000 ], [ 707659.800000, 220908.500000 ], [ 707648.400000, 220896.100000 ], [ 707642.900000, 220807.600000 ], [ 707623.700000, 220780.300000 ], [ 707604.300000, 220769.300000 ], [ 707567.100000, 220778.800000 ], [ 707553.882000, 220763.904000 ], [ 707348.600000, 220779.300000 ], [ 707315.000000, 220797.800000 ], [ 707274.100000, 220842.100000 ], [ 707243.000000, 220863.100000 ], [ 707214.200000, 220876.400000 ], [ 707199.200000, 220876.100000 ], [ 707156.600000, 220861.000000 ], [ 707118.300000, 220780.000000 ], [ 707080.100000, 220740.700000 ], [ 707033.600000, 220659.700000 ], [ 706880.700000, 220552.600000 ], [ 706820.500000, 220552.800000 ], [ 706594.200000, 220620.800000 ], [ 706559.300000, 220613.100000 ], [ 706540.300000, 220595.600000 ], [ 706532.031000, 220573.960000 ], [ 706592.000000, 220566.300000 ], [ 706611.100000, 220559.500000 ], [ 706622.200000, 220544.400000 ], [ 706624.600000, 220530.200000 ], [ 706598.800000, 220469.300000 ], [ 706609.100000, 220445.500000 ], [ 706621.200000, 220432.000000 ], [ 706670.000000, 220429.800000 ], [ 706712.300000, 220405.600000 ], [ 706745.700000, 220305.800000 ], [ 706663.800000, 220221.600000 ], [ 706652.400000, 220172.400000 ], [ 706612.800000, 220140.700000 ], [ 706602.100000, 220102.800000 ], [ 706564.800000, 220070.000000 ], [ 706540.200000, 220059.800000 ], [ 706501.300000, 220057.100000 ], [ 706491.100000, 220063.800000 ], [ 706481.500000, 220124.400000 ], [ 706468.200000, 220131.800000 ], [ 706436.600000, 220117.300000 ], [ 706362.300000, 220128.900000 ], [ 706322.900000, 220128.600000 ], [ 706307.400000, 220122.500000 ], [ 706293.100000, 220107.000000 ], [ 706284.800000, 220068.400000 ], [ 706255.000000, 220032.900000 ], [ 706212.300000, 220019.000000 ], [ 706194.000000, 220019.600000 ], [ 706169.800000, 220005.700000 ], [ 706125.800000, 220010.000000 ], [ 706077.900000, 220036.100000 ], [ 706027.200000, 220052.500000 ], [ 705938.900000, 220036.600000 ], [ 705837.300000, 220002.900000 ], [ 705802.900000, 220022.800000 ], [ 705763.000000, 220023.900000 ], [ 705731.100000, 220039.500000 ], [ 705715.700000, 220039.400000 ], [ 705692.100000, 220016.700000 ], [ 705637.400000, 220016.000000 ], [ 705590.600000, 220046.300000 ], [ 705564.700000, 220046.500000 ], [ 705529.100000, 220069.000000 ], [ 705488.482000, 220083.501000 ], [ 705452.700000, 220012.600000 ], [ 705439.300000, 219997.500000 ], [ 705431.300000, 219997.600000 ], [ 705412.400000, 220009.600000 ], [ 705377.700000, 220014.800000 ], [ 705339.400000, 220053.100000 ], [ 705235.500000, 220088.900000 ], [ 705123.600000, 220146.200000 ], [ 705116.000000, 220161.200000 ], [ 705118.600000, 220199.900000 ], [ 705107.400000, 220210.700000 ], [ 705050.500000, 220187.900000 ], [ 705011.300000, 220210.100000 ], [ 705000.100000, 220209.000000 ], [ 704967.900000, 220187.900000 ], [ 704949.100000, 220183.600000 ], [ 704874.700000, 220202.500000 ], [ 704757.000000, 220245.000000 ], [ 704746.500000, 220252.100000 ], [ 704710.500000, 220316.900000 ], [ 704689.900000, 220377.000000 ], [ 704673.200000, 220398.100000 ], [ 704669.100000, 220433.700000 ], [ 704661.700000, 220444.500000 ], [ 704641.300000, 220453.100000 ], [ 704619.200000, 220447.100000 ], [ 704523.600000, 220358.000000 ], [ 704481.300000, 220354.300000 ], [ 704393.400000, 220289.300000 ], [ 704377.300000, 220291.400000 ], [ 704362.600000, 220282.900000 ], [ 704361.100000, 220274.800000 ], [ 704390.700000, 220234.400000 ], [ 704385.800000, 220148.300000 ], [ 704378.800000, 220132.100000 ], [ 704349.200000, 220121.500000 ], [ 704289.000000, 220072.200000 ], [ 704276.500000, 220059.300000 ], [ 704274.300000, 220046.100000 ], [ 704278.800000, 220034.900000 ], [ 704330.600000, 220017.300000 ], [ 704360.800000, 220018.500000 ], [ 704361.800000, 219999.300000 ], [ 704330.000000, 219999.100000 ], [ 704253.800000, 219966.900000 ], [ 704096.000000, 219931.100000 ], [ 704051.900000, 219914.200000 ], [ 704011.000000, 219931.800000 ], [ 703911.000000, 219994.900000 ], [ 703876.300000, 220000.600000 ], [ 703844.000000, 219997.100000 ], [ 703814.700000, 219963.100000 ], [ 703805.300000, 219963.700000 ], [ 703740.900000, 220002.400000 ], [ 703724.190000, 220029.092000 ], [ 703729.400000, 220182.600000 ], [ 703714.200000, 220194.000000 ], [ 703606.900000, 220165.600000 ], [ 703589.400000, 220174.000000 ], [ 703572.800000, 220249.100000 ], [ 703524.900000, 220367.000000 ], [ 703522.700000, 220418.700000 ], [ 703513.700000, 220441.400000 ], [ 703450.300000, 220512.900000 ], [ 703352.500000, 220529.900000 ], [ 703320.700000, 220546.000000 ], [ 703307.900000, 220560.300000 ], [ 703294.200000, 220592.300000 ], [ 703284.100000, 220671.200000 ], [ 703261.200000, 220708.300000 ], [ 703241.400000, 220726.300000 ], [ 703228.900000, 220729.300000 ], [ 703203.900000, 220720.800000 ], [ 703106.600000, 220640.700000 ], [ 703096.200000, 220627.000000 ], [ 703064.000000, 220527.000000 ], [ 703052.000000, 220514.800000 ], [ 703018.200000, 220500.300000 ], [ 702902.563000, 220471.127000 ], [ 702789.200000, 220799.600000 ], [ 702653.500000, 221073.700000 ], [ 702646.400000, 221082.800000 ], [ 702613.500000, 221088.700000 ], [ 702598.000000, 221089.200000 ], [ 702510.900000, 221046.500000 ], [ 702348.500000, 221072.600000 ], [ 702269.500000, 221059.500000 ], [ 701177.500000, 220571.100000 ], [ 701147.000000, 220574.600000 ], [ 701103.900000, 220596.000000 ], [ 701065.800000, 220587.100000 ], [ 701053.900000, 220567.200000 ], [ 701022.100000, 220468.300000 ], [ 700992.100000, 220475.300000 ], [ 700976.400000, 220488.000000 ], [ 700808.600000, 220686.600000 ], [ 700801.900000, 220703.700000 ], [ 700803.600000, 220793.900000 ], [ 700793.200000, 220814.400000 ], [ 700672.900000, 220854.800000 ], [ 700634.400000, 220875.000000 ], [ 700620.947000, 220889.154000 ], [ 700513.200000, 220827.800000 ], [ 700474.000000, 220814.000000 ], [ 700200.900000, 220786.100000 ], [ 700146.800000, 220772.200000 ], [ 699997.400000, 220659.500000 ], [ 699664.900000, 220532.000000 ], [ 699638.300000, 220526.600000 ], [ 699576.222000, 220457.779000 ], [ 699528.500000, 220352.800000 ], [ 699517.900000, 220345.700000 ], [ 699489.100000, 220347.800000 ], [ 699420.300000, 220384.900000 ], [ 699399.400000, 220389.300000 ], [ 699337.000000, 220390.400000 ], [ 699242.900000, 220402.200000 ], [ 699174.400000, 220427.600000 ], [ 699093.200000, 220419.800000 ], [ 699060.500000, 220440.500000 ], [ 699053.000000, 220459.500000 ], [ 699032.100000, 220464.200000 ], [ 698991.524000, 220489.924000 ], [ 698983.800000, 220485.123000 ], [ 698981.600000, 220464.900000 ], [ 698964.400000, 220443.000000 ], [ 698636.100000, 220112.300000 ], [ 698498.000000, 219935.100000 ], [ 698441.700000, 219852.800000 ], [ 698418.200000, 219795.600000 ], [ 698403.000000, 219734.500000 ], [ 698393.300000, 219567.200000 ], [ 698364.500000, 219470.900000 ], [ 698327.200000, 219418.800000 ], [ 698276.600000, 219373.400000 ], [ 698198.400000, 219237.100000 ], [ 698081.300000, 219125.200000 ], [ 698047.400000, 219069.400000 ], [ 697992.600000, 218945.600000 ], [ 697873.600000, 218733.700000 ], [ 697815.900000, 218551.700000 ], [ 697760.900000, 218201.000000 ], [ 697734.500000, 218158.600000 ], [ 697692.500000, 218141.200000 ], [ 697658.700000, 218084.200000 ], [ 697627.900000, 218049.800000 ], [ 697552.000000, 217909.600000 ], [ 697629.600000, 217761.300000 ], [ 697630.300000, 217733.400000 ], [ 697602.200000, 217699.000000 ], [ 697515.900000, 217621.600000 ], [ 697479.700000, 217574.500000 ], [ 697401.700000, 217398.500000 ], [ 697392.745000, 217337.975000 ], [ 697492.600000, 217214.800000 ], [ 697551.200000, 217160.600000 ], [ 697618.400000, 217123.100000 ], [ 697646.841000, 217118.905000 ], [ 697572.100000, 217005.900000 ], [ 697482.000000, 216850.100000 ], [ 697386.200000, 216656.000000 ], [ 697349.900000, 216556.300000 ], [ 697357.500000, 216505.500000 ], [ 697427.800000, 216268.200000 ], [ 697476.800000, 216076.700000 ], [ 697588.000000, 216234.000000 ], [ 697625.800000, 216209.600000 ], [ 697536.200000, 216072.800000 ], [ 697521.700000, 216046.200000 ], [ 697511.300000, 216005.100000 ], [ 697515.900000, 215959.100000 ], [ 697546.698000, 215857.394000 ], [ 697545.400000, 215838.700000 ], [ 697565.000000, 215761.800000 ], [ 697592.800000, 215377.200000 ], [ 697604.200000, 215098.500000 ], [ 697600.900000, 215038.500000 ], [ 697571.900000, 214857.500000 ], [ 697510.900000, 214859.400000 ], [ 697511.800000, 214837.500000 ], [ 697500.200000, 214791.200000 ], [ 697445.900000, 214641.600000 ], [ 697382.900000, 214541.900000 ], [ 697336.700000, 214496.000000 ], [ 697219.900000, 214435.900000 ], [ 697141.500000, 214336.800000 ], [ 697105.500000, 214265.600000 ], [ 697047.000000, 214194.900000 ], [ 697013.900000, 214139.700000 ], [ 696962.600000, 214028.600000 ], [ 696913.300000, 213892.800000 ], [ 696909.200000, 213829.300000 ], [ 696922.100000, 213716.800000 ], [ 696881.000000, 213408.400000 ], [ 696807.123000, 213188.496000 ], [ 696749.900000, 213069.700000 ], [ 696712.800000, 212954.900000 ], [ 696696.200000, 212865.500000 ], [ 696654.600000, 212447.500000 ], [ 696642.500000, 212422.800000 ], [ 696535.300000, 212332.900000 ], [ 696500.800000, 212294.400000 ], [ 696474.500000, 212248.900000 ], [ 696419.500000, 212030.700000 ], [ 696426.000000, 211944.600000 ], [ 696394.900000, 211873.700000 ], [ 696397.400000, 211848.100000 ], [ 696423.300000, 211741.600000 ], [ 696424.600000, 211686.100000 ], [ 696471.000000, 211625.700000 ], [ 696477.400000, 211597.600000 ], [ 696427.500000, 211552.300000 ], [ 696380.500000, 211473.400000 ], [ 696365.100000, 211438.700000 ], [ 696335.357000, 211332.531000 ], [ 696297.600000, 211352.800000 ], [ 696257.026000, 211384.606000 ], [ 696262.400000, 211402.800000 ], [ 696299.700000, 211426.300000 ], [ 696293.600000, 211469.500000 ], [ 696315.200000, 211542.700000 ], [ 696314.737000, 211560.771000 ], [ 696270.700000, 211610.200000 ], [ 696279.100000, 211667.600000 ], [ 696266.100000, 211689.600000 ], [ 696250.300000, 211691.500000 ], [ 696234.300000, 211676.100000 ], [ 696223.900000, 211646.600000 ], [ 696217.200000, 211572.800000 ], [ 696195.700000, 211549.200000 ], [ 696116.305000, 211537.701000 ], [ 696076.200000, 211565.100000 ], [ 696028.800000, 211577.200000 ], [ 696016.900000, 211590.600000 ], [ 696023.400000, 211607.800000 ], [ 696065.000000, 211650.600000 ], [ 696075.000000, 211678.600000 ], [ 696069.100000, 211703.200000 ], [ 696000.800000, 211827.100000 ], [ 695991.100000, 211910.800000 ], [ 695979.700000, 211925.800000 ], [ 695964.300000, 211922.800000 ], [ 695940.900000, 211899.600000 ], [ 695900.000000, 211811.400000 ], [ 695875.600000, 211776.700000 ], [ 695848.400000, 211753.800000 ], [ 695843.800000, 211697.800000 ], [ 695829.000000, 211691.400000 ], [ 695810.700000, 211699.500000 ], [ 695770.900000, 211820.200000 ], [ 695780.000000, 211850.400000 ], [ 695809.500000, 211876.400000 ], [ 695842.800000, 211929.200000 ], [ 695850.600000, 211985.600000 ], [ 695886.000000, 212021.400000 ], [ 695879.900000, 212060.400000 ], [ 695906.100000, 212118.800000 ], [ 695905.747000, 212141.841000 ], [ 695895.100000, 212161.800000 ], [ 695878.000000, 212174.300000 ], [ 695753.800000, 212212.500000 ], [ 695667.400000, 212310.000000 ], [ 695555.200000, 212357.200000 ], [ 695529.700000, 212378.100000 ], [ 695518.300000, 212395.100000 ], [ 695507.500000, 212576.700000 ], [ 695504.600000, 212583.600000 ], [ 695470.200000, 212599.000000 ], [ 695465.700000, 212608.600000 ], [ 695475.000000, 212646.100000 ], [ 695471.200000, 212672.400000 ], [ 695482.700000, 212696.700000 ], [ 695483.500000, 212719.900000 ], [ 695517.400000, 212750.700000 ], [ 695513.300000, 212774.600000 ], [ 695445.000000, 212754.700000 ], [ 695414.300000, 212709.100000 ], [ 695403.400000, 212660.600000 ], [ 695383.700000, 212634.900000 ], [ 695356.300000, 212621.300000 ], [ 695362.900000, 212573.900000 ], [ 695329.500000, 212494.200000 ], [ 695311.600000, 212472.000000 ], [ 695281.100000, 212461.200000 ], [ 695262.700000, 212414.100000 ], [ 695219.200000, 212395.600000 ], [ 695184.400000, 212367.900000 ], [ 695094.600000, 212256.000000 ], [ 695030.500000, 212217.700000 ], [ 695012.100000, 212189.700000 ], [ 695006.200000, 212167.500000 ], [ 694966.500000, 212110.800000 ], [ 694962.300000, 212064.600000 ], [ 694948.700000, 212061.100000 ], [ 694901.300000, 212067.900000 ], [ 694893.100000, 212054.100000 ], [ 694891.070000, 212032.685000 ], [ 694877.800000, 212011.600000 ], [ 694876.200000, 211964.400000 ], [ 694860.600000, 211956.300000 ], [ 694717.700000, 211945.400000 ], [ 694646.100000, 211914.300000 ], [ 694593.807000, 211942.474000 ], [ 694611.995000, 211899.700000 ], [ 694573.700000, 211889.100000 ], [ 694491.600000, 211851.200000 ], [ 694476.600000, 211791.200000 ], [ 694462.600000, 211763.300000 ], [ 694402.700000, 211670.000000 ], [ 694383.000000, 211622.100000 ], [ 694359.600000, 211600.900000 ], [ 694343.000000, 211533.900000 ], [ 694262.200000, 211471.200000 ], [ 694243.753000, 211445.050000 ], [ 694220.900000, 211441.800000 ], [ 694206.700000, 211432.800000 ], [ 694196.700000, 211414.900000 ], [ 694203.900000, 211411.700000 ], [ 694212.700000, 211376.700000 ], [ 694202.500000, 211219.400000 ], [ 694217.200000, 211187.000000 ], [ 694215.500000, 211142.700000 ], [ 694181.900000, 211093.000000 ], [ 694150.600000, 211003.800000 ], [ 694100.300000, 210934.700000 ], [ 694069.400000, 210833.100000 ], [ 694018.800000, 210768.200000 ], [ 693990.700000, 210703.300000 ], [ 693979.200000, 210697.200000 ], [ 693967.000000, 210702.400000 ], [ 693961.200000, 210717.400000 ], [ 693979.700000, 210816.500000 ], [ 693982.000000, 210925.100000 ], [ 693979.000000, 210967.700000 ], [ 693969.400000, 210997.000000 ], [ 693955.500000, 211011.200000 ], [ 693945.100000, 211012.100000 ], [ 693930.200000, 210996.000000 ], [ 693940.200000, 210958.100000 ], [ 693937.000000, 210941.500000 ], [ 693888.000000, 210870.500000 ], [ 693840.900000, 210824.000000 ], [ 693757.600000, 210664.000000 ], [ 693709.600000, 210628.400000 ], [ 693708.300000, 210580.800000 ], [ 693698.300000, 210566.200000 ], [ 693687.500000, 210565.000000 ], [ 693676.600000, 210575.000000 ], [ 693674.100000, 210641.100000 ], [ 693704.400000, 210688.900000 ], [ 693694.300000, 210760.900000 ], [ 693699.500000, 210841.300000 ], [ 693688.600000, 210883.900000 ], [ 693703.500000, 210970.300000 ], [ 693699.600000, 210975.500000 ], [ 693688.900000, 210974.200000 ], [ 693667.100000, 210920.600000 ], [ 693646.400000, 210889.900000 ], [ 693638.500000, 210843.200000 ], [ 693622.700000, 210827.500000 ], [ 693571.700000, 210797.900000 ], [ 693550.200000, 210776.500000 ], [ 693514.800000, 210733.700000 ], [ 693505.200000, 210708.900000 ], [ 693495.700000, 210708.900000 ], [ 693491.300000, 210726.000000 ], [ 693528.000000, 210790.200000 ], [ 693536.900000, 210812.000000 ], [ 693533.200000, 210824.000000 ], [ 693519.200000, 210823.300000 ], [ 693495.100000, 210806.800000 ], [ 693422.400000, 210739.300000 ], [ 693374.800000, 210678.200000 ], [ 693352.200000, 210622.800000 ], [ 693354.500000, 210471.200000 ], [ 693336.600000, 210462.200000 ], [ 693308.500000, 210485.100000 ], [ 693280.900000, 210525.500000 ], [ 693269.100000, 210523.200000 ], [ 693279.500000, 210470.000000 ], [ 693217.100000, 210330.700000 ], [ 693201.300000, 210302.200000 ], [ 693156.200000, 210248.600000 ], [ 693144.600000, 210214.800000 ], [ 693109.700000, 210156.900000 ], [ 693101.500000, 210115.000000 ], [ 693088.200000, 210088.200000 ], [ 693036.700000, 210060.900000 ], [ 693026.200000, 210048.400000 ], [ 693017.763000, 210024.528000 ], [ 693023.300000, 210012.800000 ], [ 693021.400000, 209988.900000 ], [ 693026.600000, 209956.900000 ], [ 693039.800000, 209933.400000 ], [ 693047.900000, 209899.800000 ], [ 693104.400000, 209863.300000 ], [ 693161.800000, 209854.500000 ], [ 693207.100000, 209833.400000 ], [ 693229.700000, 209806.700000 ], [ 693251.270000, 209647.870000 ], [ 693272.900000, 209559.900000 ], [ 693299.500000, 209498.000000 ], [ 693314.590000, 209484.567000 ], [ 693385.200000, 209450.100000 ], [ 693393.900000, 209419.900000 ], [ 693493.100000, 209336.500000 ], [ 693496.000000, 209308.200000 ], [ 693555.000000, 209232.800000 ], [ 693561.100000, 209193.900000 ], [ 693576.500000, 209162.000000 ], [ 693579.700000, 209143.900000 ], [ 693562.600000, 209077.400000 ], [ 693564.200000, 209062.400000 ], [ 693586.500000, 209020.200000 ], [ 693582.000000, 209004.900000 ], [ 693565.000000, 209006.700000 ], [ 693541.200000, 209045.300000 ], [ 693526.400000, 209054.100000 ], [ 693500.300000, 209055.000000 ], [ 693460.800000, 209070.900000 ], [ 693422.400000, 209069.900000 ], [ 693425.800000, 209008.600000 ], [ 693431.000000, 208989.800000 ], [ 693453.300000, 208956.000000 ], [ 693468.700000, 208910.700000 ], [ 693492.700000, 208886.900000 ], [ 693524.200000, 208889.000000 ], [ 693576.000000, 208917.100000 ], [ 693589.600000, 208918.100000 ], [ 693613.700000, 208894.900000 ], [ 693620.900000, 208873.400000 ], [ 693615.800000, 208841.200000 ], [ 693600.700000, 208798.900000 ], [ 693566.700000, 208744.300000 ], [ 693543.900000, 208624.300000 ], [ 693541.700000, 208579.200000 ], [ 693548.600000, 208566.400000 ], [ 693593.200000, 208533.600000 ], [ 693621.900000, 208492.400000 ], [ 693673.600000, 208444.500000 ], [ 693682.200000, 208416.200000 ], [ 693707.900000, 208392.000000 ], [ 693715.100000, 208293.400000 ], [ 693732.900000, 208268.800000 ], [ 693759.000000, 208249.900000 ], [ 693768.000000, 208227.800000 ], [ 693762.300000, 208214.200000 ], [ 693750.700000, 208207.400000 ], [ 693664.500000, 208224.000000 ], [ 693648.800000, 208217.700000 ], [ 693646.800000, 208189.700000 ], [ 693655.500000, 208157.600000 ], [ 693684.400000, 208125.200000 ], [ 693689.400000, 208100.200000 ], [ 693656.200000, 208061.100000 ], [ 693613.200000, 208034.700000 ], [ 693579.900000, 207989.700000 ], [ 693561.047000, 207984.180000 ], [ 693500.400000, 208004.400000 ], [ 693446.600000, 207957.900000 ], [ 693439.100000, 207923.700000 ], [ 693386.218000, 207891.305000 ], [ 693325.800000, 207962.100000 ], [ 693301.200000, 208018.200000 ], [ 693093.800000, 208242.600000 ], [ 693022.700000, 208414.900000 ], [ 692959.500000, 208527.200000 ], [ 692914.300000, 208563.900000 ], [ 692824.900000, 208598.700000 ], [ 692807.200000, 208599.600000 ], [ 692741.300000, 208584.900000 ], [ 692592.800000, 208587.400000 ], [ 692463.800000, 208553.300000 ], [ 692396.500000, 208567.200000 ], [ 692377.800000, 208489.500000 ], [ 692317.500000, 208462.300000 ], [ 692263.600000, 208472.300000 ], [ 691965.100000, 208562.200000 ], [ 691956.200000, 208499.600000 ], [ 691949.600000, 208490.100000 ], [ 691927.500000, 208383.100000 ], [ 691885.000000, 208375.900000 ], [ 691855.500000, 208374.900000 ], [ 691791.200000, 208392.700000 ], [ 691704.400000, 208403.000000 ], [ 691442.400000, 208407.100000 ], [ 691277.000000, 208428.500000 ], [ 691223.500000, 208419.200000 ], [ 690964.800000, 208276.500000 ], [ 690875.003000, 208200.103000 ], [ 690825.794000, 208176.045000 ], [ 690655.287000, 207977.516000 ], [ 690481.400000, 208116.600000 ], [ 690444.600000, 208174.700000 ], [ 690433.660000, 208208.814000 ], [ 690430.000000, 208284.400000 ], [ 690492.900000, 208463.900000 ], [ 690494.400000, 208559.600000 ], [ 690502.000000, 208592.000000 ], [ 690558.000000, 208783.500000 ], [ 690604.000000, 208888.100000 ], [ 690603.600000, 208928.900000 ], [ 690582.471000, 209073.897000 ], [ 690460.719000, 209223.038000 ], [ 690448.600000, 209199.400000 ], [ 690442.000000, 209166.900000 ], [ 690487.111000, 209077.927000 ], [ 690483.500000, 209058.800000 ], [ 690489.800000, 208986.400000 ], [ 690465.400000, 208895.200000 ], [ 690412.600000, 208777.500000 ], [ 690409.600000, 208750.600000 ], [ 690245.300000, 208567.200000 ], [ 690210.765000, 208500.866000 ], [ 690099.500000, 208334.200000 ], [ 690086.700000, 208328.300000 ], [ 690059.400000, 208354.500000 ], [ 690047.110000, 208357.450000 ], [ 690008.000000, 208314.700000 ], [ 689879.000000, 208228.500000 ], [ 689750.000000, 208090.900000 ], [ 689677.700000, 208061.900000 ], [ 689637.170000, 208053.630000 ], [ 689640.800000, 208071.200000 ], [ 689698.800000, 208151.600000 ], [ 689758.200000, 208285.900000 ], [ 689805.100000, 208418.500000 ], [ 689802.600000, 208427.500000 ], [ 689785.600000, 208427.500000 ], [ 689565.200000, 208224.300000 ], [ 689248.600000, 208041.200000 ], [ 689207.400000, 208038.100000 ], [ 689164.200000, 208019.300000 ], [ 689118.200000, 208011.800000 ], [ 689067.800000, 208022.200000 ], [ 689020.800000, 208021.700000 ], [ 688992.400000, 208031.200000 ], [ 688927.100000, 208008.700000 ], [ 688765.300000, 207973.300000 ], [ 688774.400000, 207953.000000 ], [ 688805.900000, 207926.900000 ], [ 688816.500000, 207881.200000 ], [ 688813.100000, 207869.000000 ], [ 688801.800000, 207883.900000 ], [ 688798.900000, 207911.100000 ], [ 688778.100000, 207923.000000 ], [ 688716.000000, 207902.400000 ], [ 688631.500000, 207896.800000 ], [ 688580.300000, 207875.600000 ], [ 688577.800000, 207870.700000 ], [ 688583.500000, 207867.700000 ], [ 688649.700000, 207873.100000 ], [ 688647.800000, 207863.100000 ], [ 688602.800000, 207852.500000 ], [ 688602.800000, 207836.800000 ], [ 688695.900000, 207823.700000 ], [ 688706.300000, 207813.400000 ], [ 688704.700000, 207800.000000 ], [ 688694.700000, 207793.700000 ], [ 688632.800000, 207796.800000 ], [ 688592.800000, 207785.600000 ], [ 688537.800000, 207786.200000 ], [ 688503.400000, 207767.500000 ], [ 688435.900000, 207756.200000 ], [ 688409.700000, 207733.700000 ], [ 688356.600000, 207710.600000 ], [ 688235.300000, 207625.600000 ], [ 688182.800000, 207601.200000 ], [ 688160.900000, 207565.000000 ], [ 688136.600000, 207545.000000 ], [ 688063.100000, 207516.800000 ], [ 688033.400000, 207490.300000 ], [ 688005.200000, 207476.300000 ], [ 687938.700000, 207463.100000 ], [ 687809.700000, 207409.600000 ], [ 687797.700000, 207388.800000 ], [ 687795.400000, 207358.800000 ], [ 687782.533000, 207348.337000 ], [ 687755.000000, 207398.100000 ], [ 687726.300000, 207431.900000 ], [ 687719.400000, 207471.900000 ], [ 687708.800000, 207495.000000 ], [ 687561.900000, 207550.600000 ], [ 687553.100000, 207562.500000 ], [ 687548.497000, 207593.035000 ], [ 687524.733000, 207612.452000 ], [ 687452.997000, 207634.958000 ], [ 687436.117000, 207649.024000 ], [ 687412.205000, 207630.738000 ], [ 687303.897000, 207604.013000 ], [ 687247.632000, 207612.452000 ], [ 687215.280000, 207629.331000 ], [ 687195.588000, 207599.793000 ], [ 687153.390000, 207557.595000 ], [ 687060.554000, 207490.078000 ], [ 687066.180000, 207481.638000 ], [ 687087.279000, 207476.012000 ], [ 687091.499000, 207466.165000 ], [ 687053.521000, 207439.440000 ], [ 686881.915000, 207481.638000 ], [ 686855.190000, 207501.330000 ], [ 686784.700000, 207479.800000 ], [ 686757.200000, 207481.400000 ], [ 686699.100000, 207507.800000 ], [ 686673.000000, 207510.900000 ], [ 686641.400000, 207524.200000 ], [ 686598.900000, 207522.000000 ], [ 686531.000000, 207488.200000 ], [ 686484.300000, 207452.900000 ], [ 686452.400000, 207446.800000 ], [ 686409.200000, 207426.300000 ], [ 686399.219000, 207435.130000 ], [ 686401.500000, 207446.200000 ], [ 686453.300000, 207489.200000 ], [ 686472.100000, 207519.000000 ], [ 686514.000000, 207561.200000 ], [ 686513.300000, 207567.500000 ], [ 686506.500000, 207571.900000 ], [ 686449.500000, 207541.400000 ], [ 686390.200000, 207543.700000 ], [ 686367.500000, 207549.400000 ], [ 686341.500000, 207571.700000 ], [ 686269.100000, 207594.300000 ], [ 686186.700000, 207597.900000 ], [ 686033.000000, 207550.200000 ], [ 685943.500000, 207565.300000 ], [ 685922.400000, 207574.500000 ], [ 685878.100000, 207620.100000 ], [ 685812.400000, 207655.500000 ], [ 685783.600000, 207660.900000 ], [ 685699.900000, 207649.900000 ], [ 685654.200000, 207668.500000 ], [ 685623.100000, 207659.700000 ], [ 685612.700000, 207662.500000 ], [ 685578.032000, 207687.930000 ], [ 685530.800000, 207759.200000 ], [ 685514.400000, 207789.000000 ], [ 685503.700000, 207838.900000 ], [ 685461.400000, 207881.000000 ], [ 685406.000000, 207894.200000 ], [ 685375.300000, 207927.900000 ], [ 685328.200000, 207963.300000 ], [ 685313.278000, 207989.322000 ], [ 685290.200000, 207990.400000 ], [ 685205.900000, 208026.600000 ], [ 685124.700000, 208030.200000 ], [ 685116.200000, 208038.800000 ], [ 684984.400000, 208082.300000 ], [ 684861.500000, 208136.400000 ], [ 684814.700000, 208131.400000 ], [ 684784.200000, 208144.400000 ], [ 684748.075000, 208174.444000 ], [ 684670.600000, 208148.700000 ], [ 684577.300000, 208080.600000 ], [ 684515.800000, 208078.100000 ], [ 684469.800000, 208096.600000 ], [ 684376.400000, 208083.300000 ], [ 684306.500000, 208064.900000 ], [ 684243.300000, 208075.500000 ], [ 684222.600000, 208072.100000 ], [ 684181.900000, 208051.100000 ], [ 684129.000000, 208041.400000 ], [ 684041.100000, 208003.700000 ], [ 683939.700000, 207946.800000 ], [ 683900.700000, 207898.900000 ], [ 683820.800000, 207819.900000 ], [ 683821.300000, 207812.900000 ], [ 683829.000000, 207811.600000 ], [ 683896.000000, 207822.900000 ], [ 683923.300000, 207815.600000 ], [ 683973.300000, 207821.600000 ], [ 683985.000000, 207814.600000 ], [ 683995.000000, 207800.600000 ], [ 683995.000000, 207753.400000 ], [ 684022.000000, 207691.800000 ], [ 684041.500000, 207665.900000 ], [ 684023.300000, 207659.600000 ], [ 683969.000000, 207660.900000 ], [ 683960.300000, 207656.200000 ], [ 683958.400000, 207645.000000 ], [ 683982.000000, 207611.100000 ], [ 683985.900000, 207588.100000 ], [ 684029.100000, 207573.700000 ], [ 684034.600000, 207568.100000 ], [ 684032.100000, 207554.800000 ], [ 684016.900000, 207548.200000 ], [ 683975.800000, 207557.800000 ], [ 683960.700000, 207554.200000 ], [ 683917.320000, 207484.583000 ], [ 683906.100000, 207476.500000 ], [ 683869.100000, 207468.700000 ], [ 683746.600000, 207418.100000 ], [ 683739.100000, 207373.700000 ], [ 683762.800000, 207314.000000 ], [ 683753.000000, 207301.400000 ], [ 683654.400000, 207321.100000 ], [ 683645.900000, 207320.200000 ], [ 683634.800000, 207306.400000 ], [ 683652.500000, 207276.500000 ], [ 683668.500000, 207276.500000 ], [ 683689.800000, 207261.700000 ], [ 683747.200000, 207245.600000 ], [ 683751.300000, 207219.000000 ], [ 683774.800000, 207180.500000 ], [ 683766.000000, 207162.700000 ], [ 683722.800000, 207126.500000 ], [ 683717.800000, 207075.200000 ], [ 683692.800000, 207019.600000 ], [ 683691.300000, 206988.400000 ], [ 683736.100000, 206972.300000 ], [ 683750.400000, 206950.400000 ], [ 683747.000000, 206934.700000 ], [ 683690.100000, 206840.300000 ], [ 683692.000000, 206829.700000 ], [ 683714.600000, 206815.500000 ], [ 683717.800000, 206797.100000 ], [ 683673.500000, 206727.100000 ], [ 683668.500000, 206673.400000 ], [ 683654.500000, 206647.900000 ], [ 683661.700000, 206618.700000 ], [ 683668.200000, 206613.400000 ], [ 683695.700000, 206616.600000 ], [ 683779.500000, 206632.200000 ], [ 683820.300000, 206651.200000 ], [ 683825.300000, 206645.000000 ], [ 683744.500000, 206514.400000 ], [ 683781.100000, 206472.600000 ], [ 683765.700000, 206317.200000 ], [ 683745.800000, 206266.200000 ], [ 683724.300000, 206231.800000 ], [ 683685.700000, 206140.000000 ], [ 683630.600000, 206043.500000 ], [ 683571.700000, 205963.900000 ], [ 683540.272000, 205901.877000 ], [ 683404.900000, 205730.800000 ], [ 683386.000000, 205689.500000 ], [ 683382.900000, 205659.700000 ], [ 683395.300000, 205618.500000 ], [ 683400.500000, 205570.700000 ], [ 683379.100000, 205428.000000 ], [ 683397.500000, 205378.400000 ], [ 683394.000000, 205345.400000 ], [ 683387.300000, 205343.300000 ], [ 683376.300000, 205352.700000 ], [ 683348.500000, 205413.600000 ], [ 683334.000000, 205489.000000 ], [ 683301.000000, 205599.800000 ], [ 683291.000000, 205721.200000 ], [ 683280.000000, 205750.200000 ], [ 683271.000000, 205751.700000 ], [ 683258.600000, 205737.800000 ], [ 683256.500000, 205681.600000 ], [ 683237.500000, 205634.800000 ], [ 683229.200000, 205587.300000 ], [ 683242.200000, 205440.200000 ], [ 683233.200000, 205380.700000 ], [ 683221.700000, 205348.800000 ], [ 683225.500000, 205318.100000 ], [ 683212.600000, 205277.100000 ], [ 683216.200000, 205257.200000 ], [ 683232.200000, 205240.500000 ], [ 683288.000000, 205211.900000 ], [ 683368.900000, 205153.700000 ], [ 683406.800000, 205138.100000 ], [ 683451.000000, 205057.700000 ], [ 683488.200000, 205028.200000 ], [ 683543.200000, 204997.200000 ], [ 683550.700000, 204984.900000 ], [ 683551.000000, 204960.400000 ], [ 683538.000000, 204962.900000 ], [ 683522.700000, 204989.400000 ], [ 683497.500000, 205004.400000 ], [ 683475.200000, 205005.900000 ], [ 683481.000000, 204990.200000 ], [ 683500.800000, 204974.800000 ], [ 683506.400000, 204938.200000 ], [ 683515.700000, 204930.200000 ], [ 683581.200000, 204903.300000 ], [ 683702.700000, 204877.700000 ], [ 683824.500000, 204873.900000 ], [ 683831.800000, 204866.400000 ], [ 683827.900000, 204859.200000 ], [ 683762.200000, 204851.500000 ], [ 683711.300000, 204835.700000 ], [ 683636.700000, 204827.900000 ], [ 683587.700000, 204809.200000 ], [ 683464.500000, 204817.200000 ], [ 683422.200000, 204802.300000 ], [ 683330.200000, 204802.000000 ], [ 683315.200000, 204817.500000 ], [ 683288.700000, 204900.200000 ], [ 683262.800000, 204916.900000 ], [ 683147.900000, 204933.200000 ], [ 683095.200000, 204916.400000 ], [ 683066.200000, 204916.400000 ], [ 683055.200000, 204925.400000 ], [ 683032.000000, 204967.900000 ], [ 683014.200000, 204981.900000 ], [ 683005.000000, 204977.100000 ], [ 682970.600000, 204983.400000 ], [ 682924.600000, 204979.700000 ], [ 682822.500000, 204999.700000 ], [ 682692.900000, 204985.300000 ], [ 682606.900000, 204995.200000 ], [ 682565.800000, 205021.200000 ], [ 682531.700000, 205066.600000 ], [ 682513.600000, 205184.200000 ], [ 682502.800000, 205191.100000 ], [ 682452.400000, 205215.800000 ], [ 682294.400000, 205259.100000 ], [ 682174.100000, 205326.300000 ], [ 682121.600000, 205327.500000 ], [ 682035.900000, 205341.600000 ], [ 681991.100000, 205340.300000 ], [ 681972.000000, 205330.200000 ], [ 681938.100000, 205288.200000 ], [ 681899.500000, 205266.700000 ], [ 681859.000000, 205257.200000 ], [ 681758.100000, 205249.500000 ], [ 681640.200000, 205211.700000 ], [ 681260.900000, 205174.500000 ], [ 680998.300000, 205134.000000 ], [ 680981.700000, 205109.600000 ], [ 680906.002000, 205078.224000 ], [ 680868.426000, 205046.911000 ], [ 677755.925000, 202958.341000 ], [ 677696.431000, 202895.715000 ], [ 677690.500000, 202798.700000 ], [ 677697.000000, 202750.700000 ], [ 677421.400000, 202723.600000 ], [ 677347.700000, 202703.100000 ], [ 677259.300000, 202694.400000 ], [ 677222.900000, 202696.500000 ], [ 677024.900000, 202737.800000 ], [ 676842.900000, 202765.100000 ], [ 676807.400000, 202775.500000 ], [ 676809.200000, 202790.300000 ], [ 676797.700000, 202802.700000 ], [ 676673.100000, 202847.500000 ], [ 676560.200000, 202954.100000 ], [ 676506.200000, 202989.800000 ], [ 676395.300000, 203033.300000 ], [ 676291.300000, 203099.200000 ], [ 676239.200000, 203111.300000 ], [ 676063.200000, 203105.200000 ], [ 675861.200000, 203062.400000 ], [ 675665.500000, 203036.500000 ], [ 675651.400000, 203016.200000 ], [ 675559.700000, 203037.000000 ], [ 675345.900000, 203065.800000 ], [ 675119.500000, 203064.900000 ], [ 675054.400000, 203053.900000 ], [ 674774.200000, 202976.400000 ], [ 674689.400000, 202967.400000 ], [ 674579.000000, 202934.000000 ], [ 674391.600000, 202953.100000 ], [ 674288.100000, 202939.000000 ], [ 673598.000000, 202641.200000 ], [ 673546.800000, 202612.200000 ], [ 673494.600000, 202572.900000 ], [ 673470.600000, 202580.700000 ], [ 673358.600000, 202533.400000 ], [ 673319.900000, 202526.200000 ], [ 673289.900000, 202538.400000 ], [ 673249.200000, 202578.000000 ], [ 673226.000000, 202590.100000 ], [ 673177.070000, 202584.400000 ], [ 672345.200000, 202238.400000 ], [ 672164.200000, 202170.900000 ], [ 672120.600000, 202172.000000 ], [ 672016.300000, 202199.100000 ], [ 671938.200000, 202186.600000 ], [ 671905.900000, 202242.600000 ], [ 671884.815000, 202239.910000 ], [ 671835.300000, 202362.000000 ], [ 671737.600000, 202355.800000 ], [ 671600.800000, 202227.300000 ], [ 671562.500000, 202178.700000 ], [ 671350.500000, 202271.100000 ], [ 671332.200000, 202269.900000 ], [ 671277.700000, 202213.800000 ], [ 671294.100000, 202187.000000 ], [ 671308.300000, 202135.700000 ], [ 671301.900000, 202086.300000 ], [ 671176.600000, 201920.700000 ], [ 671069.600000, 201797.600000 ], [ 670938.800000, 201696.400000 ], [ 670884.300000, 201672.400000 ], [ 670858.600000, 201654.100000 ], [ 670811.800000, 201602.400000 ], [ 670772.600000, 201544.900000 ], [ 670757.100000, 201531.100000 ], [ 670725.100000, 201526.400000 ], [ 670701.300000, 201509.100000 ], [ 670648.300000, 201437.400000 ], [ 670641.300000, 201389.600000 ], [ 670616.800000, 201353.000000 ], [ 670715.000000, 201273.600000 ], [ 670750.400000, 201228.700000 ], [ 670697.100000, 201185.400000 ] ], [ [ 670604.700000, 201093.900000 ], [ 670643.300000, 201138.100000 ], [ 670697.100000, 201185.400000 ] ], [ [ 670604.700000, 201093.900000 ], [ 670593.600000, 201094.900000 ], [ 670570.300000, 201118.600000 ], [ 670549.800000, 201180.600000 ], [ 670338.800000, 201309.100000 ], [ 670300.800000, 201349.100000 ], [ 670283.000000, 201378.200000 ], [ 670251.900000, 201380.500000 ], [ 670101.800000, 201435.900000 ], [ 669985.600000, 201471.100000 ], [ 669918.800000, 201481.700000 ], [ 669815.000000, 201483.600000 ], [ 669736.900000, 201472.900000 ], [ 669540.800000, 201419.100000 ], [ 669264.200000, 201303.600000 ], [ 669150.300000, 201300.800000 ], [ 668921.200000, 201253.000000 ], [ 668874.400000, 201226.800000 ], [ 668803.200000, 201153.100000 ], [ 668768.000000, 201127.400000 ], [ 668697.100000, 201086.600000 ], [ 668657.100000, 201070.700000 ], [ 668544.900000, 201045.900000 ], [ 668393.600000, 201027.600000 ], [ 668257.900000, 200989.600000 ], [ 668078.000000, 200777.900000 ], [ 667587.900000, 199953.500000 ], [ 667505.200000, 199872.000000 ], [ 667337.700000, 199738.200000 ], [ 667292.400000, 199682.900000 ], [ 667263.200000, 199620.500000 ], [ 667163.400000, 199347.900000 ], [ 667133.900000, 199295.800000 ], [ 666993.200000, 199167.500000 ], [ 666880.800000, 199045.700000 ], [ 666785.600000, 198933.800000 ], [ 666635.700000, 198737.000000 ], [ 666603.200000, 198710.100000 ], [ 666507.200000, 198665.400000 ], [ 666307.600000, 198579.500000 ], [ 666189.100000, 198553.800000 ], [ 666051.200000, 198482.500000 ], [ 665780.000000, 198223.300000 ], [ 665599.100000, 198118.200000 ], [ 665576.000000, 198073.400000 ], [ 665559.100000, 197941.900000 ], [ 665416.300000, 197984.400000 ], [ 665284.700000, 197971.100000 ], [ 665250.500000, 197957.000000 ], [ 665202.500000, 197895.800000 ], [ 665167.300000, 197870.900000 ], [ 665147.000000, 197867.600000 ], [ 665058.300000, 197880.600000 ], [ 664988.900000, 197825.600000 ], [ 664973.500000, 197787.700000 ], [ 664939.900000, 197764.500000 ], [ 664913.200000, 197735.000000 ], [ 664834.900000, 197709.900000 ], [ 664810.600000, 197691.300000 ], [ 664750.200000, 197619.000000 ], [ 664657.000000, 197525.500000 ], [ 664614.100000, 197421.400000 ], [ 664606.900000, 197382.000000 ], [ 664627.400000, 197233.000000 ], [ 664578.700000, 197163.800000 ], [ 664551.600000, 197099.400000 ], [ 664511.400000, 197055.500000 ], [ 664500.700000, 197020.000000 ], [ 664450.400000, 196977.500000 ], [ 664408.400000, 196896.300000 ], [ 664372.700000, 196860.000000 ], [ 664318.500000, 196820.000000 ], [ 664296.800000, 196791.500000 ], [ 664289.000000, 196729.000000 ], [ 664328.000000, 196672.600000 ], [ 664339.300000, 196617.800000 ], [ 664322.000000, 196533.800000 ], [ 664286.500000, 196474.500000 ], [ 664285.500000, 196460.700000 ], [ 664330.000000, 196432.300000 ], [ 664375.700000, 196392.200000 ], [ 664359.000000, 196363.600000 ], [ 664341.500000, 196305.000000 ], [ 664314.400000, 196156.600000 ], [ 664360.400000, 196114.300000 ], [ 664296.300000, 195953.800000 ], [ 664297.600000, 195920.400000 ], [ 664334.500000, 195803.300000 ], [ 664328.500000, 195750.300000 ], [ 664304.000000, 195712.300000 ], [ 664128.800000, 195580.400000 ], [ 663997.200000, 195581.900000 ], [ 663928.100000, 195544.500000 ], [ 663904.600000, 195523.200000 ], [ 663883.400000, 195486.900000 ], [ 663830.500000, 195354.000000 ], [ 663845.300000, 195311.600000 ], [ 663847.100000, 195268.700000 ], [ 663835.200000, 195097.800000 ], [ 663726.100000, 194945.800000 ], [ 663719.700000, 194908.000000 ], [ 663692.900000, 194847.300000 ], [ 663688.000000, 194819.100000 ], [ 663693.800000, 194760.600000 ], [ 663585.681000, 194814.497000 ], [ 663552.800000, 194746.200000 ], [ 663526.200000, 194717.400000 ], [ 663442.100000, 194657.900000 ], [ 663417.200000, 194629.600000 ], [ 663356.500000, 194526.100000 ], [ 663308.000000, 194462.800000 ], [ 663285.500000, 194465.200000 ], [ 663239.500000, 194503.300000 ], [ 663193.800000, 194477.600000 ], [ 663169.000000, 194452.600000 ], [ 663141.000000, 194439.300000 ], [ 663079.800000, 194452.000000 ], [ 663044.200000, 194434.200000 ], [ 662927.300000, 194337.300000 ], [ 662924.600000, 194313.100000 ], [ 662908.900000, 194274.700000 ], [ 662898.300000, 194258.300000 ], [ 662848.800000, 194221.300000 ], [ 662833.600000, 194192.200000 ], [ 662766.700000, 194172.500000 ], [ 662731.500000, 194155.100000 ], [ 662680.800000, 194110.300000 ], [ 662652.100000, 194062.900000 ], [ 662554.800000, 193978.700000 ], [ 662415.500000, 193907.800000 ], [ 662383.100000, 193887.000000 ], [ 662337.300000, 193836.200000 ], [ 662303.300000, 193822.300000 ], [ 662213.200000, 193760.400000 ], [ 662150.300000, 193687.800000 ], [ 662054.350617, 193534.006904 ] ], [ [ 559386.000000, 143029.300000 ], [ 559379.733000, 143043.526000 ], [ 559360.931183, 143054.964848 ] ], [ [ 559386.000000, 143029.300000 ], [ 559399.700000, 143007.700000 ], [ 559372.029000, 143023.301000 ], [ 559360.931183, 143054.964848 ] ], [ [ 758161.600000, 256998.100000 ], [ 758158.400000, 256973.300000 ], [ 758068.900000, 256988.100000 ], [ 758071.800000, 257012.300000 ] ], [ [ 758161.600000, 256998.100000 ], [ 758185.900000, 257149.500000 ], [ 758225.200000, 257074.100000 ], [ 758280.500000, 256932.900000 ], [ 758292.800000, 256924.200000 ], [ 758309.300000, 256923.900000 ], [ 758348.900000, 256958.000000 ], [ 758372.000000, 256881.900000 ], [ 758366.700000, 256860.900000 ], [ 758354.500000, 256845.400000 ], [ 758308.200000, 256817.600000 ], [ 758155.100000, 256779.500000 ], [ 758097.000000, 256802.900000 ], [ 758066.100000, 256742.900000 ], [ 758044.200000, 256635.500000 ], [ 758087.400000, 256598.000000 ], [ 758112.100000, 256561.900000 ], [ 758128.700000, 256475.000000 ], [ 758149.500000, 256424.000000 ], [ 758152.700000, 256316.700000 ], [ 758149.200000, 256282.600000 ], [ 758076.200000, 256106.700000 ], [ 758077.700000, 256078.000000 ], [ 758059.400000, 256072.600000 ], [ 758059.000000, 256021.800000 ], [ 758070.300000, 256007.300000 ], [ 758166.300000, 255981.600000 ], [ 758209.200000, 255956.900000 ], [ 758264.800000, 255908.800000 ], [ 758276.000000, 255887.100000 ], [ 758275.200000, 255870.400000 ], [ 758268.500000, 255860.200000 ], [ 758248.800000, 255853.500000 ], [ 758213.300000, 255876.300000 ], [ 758195.300000, 255871.800000 ], [ 758036.500000, 255777.500000 ], [ 758036.500000, 255764.300000 ], [ 758049.000000, 255756.600000 ], [ 758087.600000, 255767.200000 ], [ 758124.600000, 255765.800000 ], [ 758133.600000, 255750.200000 ], [ 758130.300000, 255704.700000 ], [ 758142.300000, 255662.300000 ], [ 758145.300000, 255597.600000 ], [ 758124.800000, 255506.000000 ], [ 758101.100000, 255450.400000 ], [ 758038.000000, 255373.100000 ], [ 758004.300000, 255270.500000 ], [ 757981.100000, 255280.200000 ], [ 757934.200000, 255273.000000 ], [ 757709.700000, 255093.600000 ], [ 757653.900000, 255059.600000 ], [ 757611.300000, 254990.600000 ], [ 757528.900000, 254894.500000 ], [ 757478.100000, 254880.300000 ], [ 757418.100000, 254872.800000 ], [ 757275.800000, 254825.700000 ], [ 757240.600000, 254797.500000 ], [ 757169.600000, 254721.300000 ], [ 757132.000000, 254699.400000 ], [ 757053.400000, 254719.600000 ], [ 756914.100000, 254732.400000 ], [ 756825.900000, 254711.900000 ], [ 756652.900000, 254705.800000 ], [ 756522.900000, 254733.400000 ], [ 756342.700000, 254748.400000 ], [ 756314.900000, 254746.400000 ], [ 756093.700000, 254691.400000 ], [ 756074.200000, 254696.000000 ], [ 755972.900000, 254759.800000 ], [ 755839.500000, 254603.800000 ], [ 755791.800000, 254477.600000 ], [ 755774.000000, 254458.100000 ], [ 755727.500000, 254426.900000 ], [ 755728.700000, 254392.900000 ], [ 755710.200000, 254374.900000 ], [ 755531.800000, 254344.400000 ], [ 755511.900000, 254334.600000 ], [ 755474.100000, 254334.600000 ], [ 755401.800000, 254319.700000 ], [ 755256.200000, 254323.900000 ], [ 755167.600000, 254313.900000 ], [ 755144.900000, 254307.200000 ], [ 755049.200000, 254241.600000 ], [ 754963.900000, 254155.200000 ], [ 754929.700000, 254103.200000 ], [ 754762.800000, 254088.800000 ], [ 754697.100000, 254052.100000 ], [ 754593.200000, 254065.900000 ], [ 754571.400000, 254062.600000 ], [ 754553.500000, 254017.400000 ], [ 754564.924000, 253982.316000 ], [ 754640.700000, 253885.800000 ], [ 754668.600000, 253878.000000 ], [ 754665.700000, 253861.800000 ], [ 754629.200000, 253843.800000 ], [ 754572.400000, 253796.300000 ], [ 754481.400000, 253739.600000 ], [ 754445.700000, 253699.700000 ], [ 754355.600000, 253656.100000 ], [ 754297.700000, 253693.100000 ], [ 754280.600000, 253693.500000 ], [ 754217.100000, 253674.900000 ], [ 754109.000000, 253677.200000 ], [ 754095.200000, 253673.900000 ], [ 754028.500000, 253624.900000 ], [ 754008.500000, 253588.900000 ], [ 753986.500000, 253571.400000 ], [ 753952.000000, 253576.700000 ], [ 753909.500000, 253571.900000 ], [ 753848.200000, 253586.100000 ], [ 753814.900000, 253584.700000 ], [ 753713.700000, 253562.200000 ], [ 753666.300000, 253570.400000 ], [ 753580.200000, 253563.900000 ], [ 753549.300000, 253557.900000 ], [ 753498.200000, 253523.900000 ], [ 753442.000000, 253514.500000 ], [ 753370.800000, 253490.200000 ], [ 753357.200000, 253491.900000 ], [ 753344.500000, 253510.400000 ], [ 753189.000000, 253493.900000 ], [ 753180.500000, 253485.200000 ], [ 753184.500000, 253468.400000 ], [ 753246.200000, 253388.900000 ], [ 753272.200000, 253334.200000 ], [ 753325.000000, 253269.700000 ], [ 753319.800000, 253223.200000 ], [ 753339.200000, 253180.700000 ], [ 753354.700000, 253157.900000 ], [ 753368.600000, 253149.000000 ], [ 753347.700000, 253097.200000 ], [ 753372.300000, 253065.500000 ], [ 753370.700000, 252999.100000 ], [ 753378.900000, 252995.900000 ], [ 753400.400000, 253019.700000 ], [ 753416.700000, 253019.800000 ], [ 753439.800000, 253016.700000 ], [ 753478.300000, 252990.400000 ], [ 753488.300000, 252914.100000 ], [ 753525.200000, 252836.800000 ], [ 753595.600000, 252829.400000 ], [ 753597.500000, 252815.700000 ], [ 753421.600000, 252793.200000 ], [ 753326.100000, 252749.400000 ], [ 753279.200000, 252694.300000 ], [ 753245.400000, 252669.800000 ], [ 753208.400000, 252629.000000 ], [ 753133.900000, 252527.300000 ], [ 753094.900000, 252487.300000 ], [ 753063.900000, 252486.100000 ], [ 753053.300000, 252494.400000 ], [ 753047.000000, 252518.400000 ], [ 753089.200000, 252697.300000 ], [ 753150.500000, 252783.700000 ], [ 753152.100000, 252852.200000 ], [ 753169.400000, 252918.600000 ], [ 753168.100000, 252936.000000 ], [ 753159.500000, 252951.200000 ], [ 753135.300000, 252961.800000 ], [ 752925.700000, 252957.300000 ], [ 752902.700000, 252947.800000 ], [ 752903.900000, 252932.800000 ], [ 752918.700000, 252922.300000 ], [ 753030.600000, 252861.200000 ], [ 753035.200000, 252829.600000 ], [ 753016.400000, 252781.600000 ], [ 752990.900000, 252763.100000 ], [ 752948.900000, 252710.800000 ], [ 752927.700000, 252718.300000 ], [ 752917.000000, 252746.400000 ], [ 752903.800000, 252759.100000 ], [ 752885.100000, 252646.600000 ], [ 752849.000000, 252525.000000 ], [ 752858.800000, 252467.300000 ], [ 752850.300000, 252373.400000 ], [ 752858.500000, 252265.300000 ], [ 752783.500000, 252115.100000 ], [ 752762.400000, 251986.800000 ], [ 752815.500000, 251783.400000 ], [ 752808.600000, 251736.500000 ], [ 752903.900000, 251679.100000 ], [ 752991.700000, 251670.800000 ], [ 753099.800000, 251635.700000 ], [ 753172.500000, 251670.500000 ], [ 753257.900000, 251653.500000 ], [ 753286.300000, 251639.300000 ], [ 753333.700000, 251580.200000 ], [ 753365.300000, 251559.900000 ], [ 753440.242000, 251537.659000 ], [ 753452.300000, 251527.200000 ], [ 753491.900000, 251460.100000 ], [ 753514.100000, 251435.100000 ], [ 753521.500000, 251406.400000 ], [ 753553.700000, 251369.800000 ], [ 753624.900000, 251318.600000 ], [ 753640.500000, 251311.900000 ], [ 753666.600000, 251312.800000 ], [ 753706.600000, 251240.100000 ], [ 753760.000000, 251181.100000 ], [ 753773.200000, 251172.100000 ], [ 753823.500000, 251177.800000 ], [ 753860.700000, 251148.600000 ], [ 753860.500000, 251141.300000 ], [ 753788.200000, 251116.100000 ], [ 753721.200000, 251047.800000 ], [ 753675.600000, 250917.600000 ], [ 753680.400000, 250775.300000 ], [ 753710.700000, 250703.600000 ], [ 753726.600000, 250631.500000 ], [ 753771.500000, 250616.400000 ], [ 753854.500000, 250602.700000 ], [ 753893.900000, 250604.400000 ], [ 753947.500000, 250541.100000 ], [ 753965.700000, 250531.600000 ], [ 753993.400000, 250531.000000 ], [ 754018.600000, 250517.100000 ], [ 754052.400000, 250509.100000 ], [ 754188.100000, 250434.700000 ], [ 754206.600000, 250431.900000 ], [ 754242.900000, 250441.500000 ], [ 754289.700000, 250428.000000 ], [ 754303.700000, 250417.000000 ], [ 754316.700000, 250372.800000 ], [ 754332.000000, 250372.300000 ], [ 754357.000000, 250388.100000 ], [ 754389.700000, 250395.000000 ], [ 754399.500000, 250381.100000 ], [ 754410.700000, 250267.100000 ], [ 754418.500000, 250258.100000 ], [ 754554.900000, 250241.100000 ], [ 754580.800000, 250221.300000 ], [ 754598.000000, 250216.300000 ], [ 754675.200000, 250236.300000 ], [ 754686.200000, 250234.300000 ], [ 754630.000000, 250180.800000 ], [ 754633.500000, 250125.000000 ], [ 754606.500000, 250081.300000 ], [ 754623.400000, 250007.400000 ], [ 754612.300000, 249887.100000 ], [ 754622.900000, 249852.100000 ], [ 754633.600000, 249841.000000 ], [ 754634.200000, 249822.900000 ], [ 754555.700000, 249722.100000 ], [ 754522.700000, 249645.900000 ], [ 754525.900000, 249620.800000 ], [ 754564.800000, 249552.400000 ], [ 754571.100000, 249527.000000 ], [ 754569.100000, 249487.100000 ], [ 754562.400000, 249452.900000 ], [ 754533.000000, 249397.600000 ], [ 754520.200000, 249323.300000 ], [ 754482.400000, 249270.700000 ], [ 754481.400000, 249256.900000 ], [ 754570.400000, 249218.100000 ], [ 754576.200000, 249178.700000 ], [ 754562.500000, 249130.200000 ], [ 754559.800000, 249094.800000 ], [ 754527.900000, 249002.700000 ], [ 754486.100000, 248955.100000 ], [ 754403.000000, 248876.500000 ], [ 754356.700000, 248843.200000 ], [ 754333.400000, 248834.300000 ], [ 754279.900000, 248830.200000 ], [ 754136.900000, 248755.400000 ], [ 753952.700000, 248682.300000 ], [ 753929.900000, 248679.400000 ], [ 753918.900000, 248684.700000 ], [ 753898.000000, 248714.700000 ], [ 753889.400000, 248715.000000 ], [ 753831.300000, 248691.600000 ], [ 753781.900000, 248683.200000 ], [ 753616.700000, 248504.500000 ], [ 753591.100000, 248454.500000 ], [ 753547.200000, 248424.700000 ], [ 753481.600000, 248353.100000 ], [ 753400.200000, 248304.400000 ], [ 753360.900000, 248272.300000 ], [ 753260.400000, 248167.300000 ], [ 753137.900000, 248133.600000 ], [ 752977.800000, 248056.700000 ], [ 752776.000000, 247975.900000 ], [ 752704.700000, 247987.400000 ], [ 752659.900000, 247972.000000 ], [ 752538.200000, 247764.000000 ], [ 752489.300000, 247727.100000 ], [ 752444.600000, 247704.600000 ], [ 752393.200000, 247661.300000 ], [ 752372.600000, 247679.400000 ], [ 752276.900000, 247685.500000 ], [ 752148.100000, 247673.200000 ], [ 752116.400000, 247658.900000 ], [ 752099.400000, 247640.000000 ], [ 752099.900000, 247574.600000 ], [ 752111.100000, 247528.600000 ], [ 752161.800000, 247456.100000 ], [ 752196.800000, 247434.500000 ], [ 752199.200000, 247421.200000 ], [ 752212.600000, 247421.400000 ], [ 752214.900000, 247415.300000 ], [ 752193.400000, 247370.800000 ], [ 752180.000000, 247318.500000 ], [ 752164.000000, 247127.700000 ], [ 752171.900000, 247095.100000 ], [ 752188.400000, 247072.100000 ], [ 752222.300000, 247073.000000 ], [ 752270.900000, 247023.900000 ], [ 752322.900000, 246950.900000 ], [ 752323.500000, 246939.200000 ], [ 752297.700000, 246900.300000 ], [ 752290.400000, 246877.900000 ], [ 752352.600000, 246748.200000 ], [ 752333.700000, 246679.200000 ], [ 752305.300000, 246615.700000 ], [ 752302.400000, 246571.900000 ], [ 752320.000000, 246483.600000 ], [ 752335.200000, 246324.900000 ], [ 752351.100000, 246267.900000 ], [ 752352.200000, 246220.200000 ], [ 752356.600000, 246205.000000 ], [ 752372.100000, 246187.200000 ], [ 752382.200000, 246146.100000 ], [ 752369.000000, 246112.500000 ], [ 752404.500000, 246041.100000 ], [ 752435.600000, 245957.500000 ], [ 752440.000000, 245905.200000 ], [ 752483.100000, 245770.700000 ], [ 752491.100000, 245698.200000 ], [ 752484.600000, 245659.000000 ], [ 752540.600000, 245473.200000 ], [ 752604.700000, 245362.600000 ], [ 752601.500000, 245338.900000 ], [ 752635.400000, 245287.200000 ], [ 752664.900000, 245268.500000 ], [ 752660.400000, 245256.000000 ], [ 752641.900000, 245242.900000 ], [ 752697.500000, 245223.600000 ], [ 752710.216000, 245212.486000 ], [ 752740.300000, 245214.000000 ], [ 752756.300000, 245205.000000 ], [ 752790.100000, 245156.600000 ], [ 752825.900000, 245131.100000 ], [ 752906.000000, 245118.200000 ], [ 753018.100000, 245032.000000 ], [ 753031.800000, 245010.000000 ], [ 753031.700000, 244990.600000 ], [ 752966.600000, 244956.900000 ], [ 752957.900000, 244942.800000 ], [ 752952.000000, 244894.900000 ], [ 752943.300000, 244884.200000 ], [ 752866.500000, 244849.500000 ], [ 752816.100000, 244812.500000 ], [ 752792.300000, 244802.800000 ], [ 752738.900000, 244801.100000 ], [ 752639.800000, 244830.000000 ], [ 752623.300000, 244828.500000 ], [ 752582.100000, 244780.700000 ], [ 752469.000000, 244711.600000 ], [ 752421.600000, 244654.900000 ], [ 752403.400000, 244610.600000 ], [ 752546.300000, 244583.600000 ], [ 752769.000000, 244587.300000 ], [ 752849.800000, 244570.800000 ], [ 752925.900000, 244532.400000 ], [ 753181.400000, 244340.700000 ], [ 753095.600000, 244276.700000 ], [ 752991.100000, 244233.700000 ], [ 752970.315000, 244233.606000 ], [ 752919.562000, 244214.596000 ], [ 752695.800000, 244158.400000 ], [ 752337.300000, 244084.400000 ], [ 752270.300000, 244061.200000 ], [ 751896.700000, 243886.000000 ], [ 751842.100000, 243836.200000 ], [ 751765.400000, 243705.500000 ], [ 751630.100000, 243682.700000 ], [ 751515.000000, 243645.700000 ], [ 751480.400000, 243632.800000 ], [ 751412.400000, 243583.600000 ], [ 751367.600000, 243571.100000 ], [ 751035.800000, 243615.500000 ], [ 750994.500000, 243626.500000 ], [ 750949.100000, 243651.800000 ], [ 750805.800000, 243698.500000 ], [ 750764.400000, 243703.700000 ], [ 750542.000000, 243702.600000 ], [ 750432.800000, 243725.200000 ], [ 750348.700000, 243735.400000 ], [ 750216.800000, 243801.200000 ], [ 750053.600000, 243823.000000 ], [ 749960.900000, 243844.000000 ], [ 749857.800000, 243903.300000 ], [ 749818.700000, 243917.700000 ], [ 749769.800000, 243899.300000 ], [ 749601.300000, 243874.200000 ], [ 749501.300000, 243929.400000 ], [ 749315.700000, 243972.800000 ], [ 749279.000000, 243997.200000 ], [ 749196.000000, 244085.500000 ], [ 749171.900000, 244102.900000 ], [ 749088.800000, 244123.700000 ], [ 749062.900000, 244093.000000 ], [ 749147.500000, 243941.900000 ], [ 749069.900000, 243896.500000 ], [ 749091.300000, 243837.900000 ], [ 749100.400000, 243752.600000 ], [ 749119.800000, 243700.100000 ], [ 749129.100000, 243675.900000 ], [ 749161.600000, 243628.500000 ], [ 749416.200000, 243440.700000 ], [ 749457.700000, 243399.300000 ], [ 749475.600000, 243129.900000 ], [ 749514.400000, 242948.800000 ], [ 749529.900000, 242901.600000 ], [ 749612.300000, 242748.000000 ], [ 749910.500000, 242593.200000 ], [ 750015.500000, 242552.500000 ], [ 750142.900000, 242513.000000 ], [ 750212.000000, 242472.600000 ], [ 750323.900000, 242470.300000 ], [ 750380.500000, 242456.500000 ], [ 750519.400000, 242317.400000 ], [ 750565.200000, 242280.500000 ], [ 750616.500000, 242204.800000 ], [ 750681.000000, 242125.300000 ], [ 750688.200000, 242011.800000 ], [ 750697.700000, 241978.800000 ], [ 750669.600000, 241902.100000 ], [ 750665.700000, 241842.900000 ], [ 750716.700000, 241787.100000 ], [ 750772.700000, 241813.000000 ], [ 750811.500000, 241799.000000 ], [ 750856.800000, 241792.200000 ], [ 750855.000000, 241778.000000 ], [ 750865.700000, 241764.200000 ], [ 750937.700000, 241720.800000 ], [ 750933.000000, 241668.800000 ], [ 750976.700000, 241593.800000 ], [ 750975.000000, 241575.000000 ], [ 750858.800000, 241504.500000 ], [ 750831.500000, 241495.300000 ], [ 750787.200000, 241498.000000 ], [ 750773.700000, 241492.800000 ], [ 750708.600000, 241439.400000 ], [ 750663.000000, 241388.800000 ], [ 750630.200000, 241259.000000 ], [ 750591.500000, 241217.600000 ], [ 750361.500000, 241234.600000 ], [ 750268.800000, 241235.600000 ], [ 750228.200000, 241226.300000 ], [ 750079.700000, 241155.600000 ], [ 749791.000000, 240972.000000 ], [ 749667.500000, 240847.500000 ], [ 749596.600000, 240811.000000 ], [ 749549.400000, 240770.000000 ], [ 749080.200000, 240570.600000 ], [ 748966.700000, 240513.600000 ], [ 748847.000000, 240434.600000 ], [ 748827.200000, 240424.300000 ], [ 748786.500000, 240416.300000 ], [ 748670.300000, 240327.400000 ], [ 748646.400000, 240298.200000 ], [ 748592.500000, 240266.200000 ], [ 748522.600000, 240204.800000 ], [ 748425.200000, 240143.300000 ], [ 748355.400000, 240061.100000 ], [ 748320.000000, 240032.900000 ], [ 748262.000000, 240038.600000 ], [ 747983.000000, 239970.400000 ], [ 747945.500000, 239958.100000 ], [ 747732.400000, 239850.500000 ], [ 747644.900000, 239845.100000 ], [ 747629.400000, 239831.800000 ], [ 747605.600000, 239788.800000 ], [ 747573.600000, 239770.800000 ], [ 747554.900000, 239730.100000 ], [ 747544.400000, 239721.800000 ], [ 747497.600000, 239740.800000 ], [ 747472.600000, 239740.300000 ], [ 747322.300000, 239675.100000 ], [ 747311.000000, 239664.400000 ], [ 747297.900000, 239623.100000 ], [ 747269.200000, 239583.500000 ], [ 747260.800000, 239529.400000 ], [ 747251.400000, 239518.800000 ], [ 747236.400000, 239516.100000 ], [ 747195.600000, 239524.100000 ], [ 747167.500000, 239547.300000 ], [ 747109.900000, 239571.000000 ], [ 747047.900000, 239552.100000 ], [ 746879.800000, 239476.300000 ], [ 746766.800000, 239438.500000 ], [ 746670.600000, 239412.800000 ], [ 746628.300000, 239405.500000 ], [ 746553.100000, 239404.000000 ], [ 746485.500000, 239385.600000 ], [ 746332.100000, 239305.400000 ], [ 746215.900000, 239211.200000 ], [ 746124.600000, 239186.600000 ], [ 746042.900000, 239108.900000 ], [ 745985.100000, 239067.600000 ], [ 745890.300000, 239038.800000 ], [ 745784.100000, 239015.800000 ], [ 745652.000000, 238942.300000 ], [ 745445.600000, 238865.800000 ], [ 745391.100000, 238839.800000 ], [ 745339.600000, 238794.800000 ], [ 745203.300000, 238635.900000 ], [ 745020.900000, 238509.100000 ], [ 744982.500000, 238474.800000 ], [ 744954.000000, 238430.300000 ], [ 744879.300000, 238359.400000 ], [ 744834.700000, 238307.400000 ], [ 744763.200000, 238175.200000 ], [ 744727.000000, 238125.900000 ], [ 744717.100000, 238120.100000 ], [ 744670.100000, 238116.300000 ], [ 744644.800000, 238092.000000 ], [ 744630.300000, 238086.200000 ], [ 744575.600000, 238091.600000 ], [ 744524.200000, 238046.900000 ], [ 744482.600000, 238029.300000 ], [ 744450.000000, 238003.500000 ], [ 744435.800000, 237975.000000 ], [ 744431.400000, 237876.000000 ], [ 744405.600000, 237752.200000 ], [ 744396.100000, 237743.600000 ], [ 744335.100000, 237735.900000 ], [ 744299.500000, 237712.400000 ], [ 744224.500000, 237619.300000 ], [ 744173.700000, 237532.700000 ], [ 744187.300000, 237421.000000 ], [ 744199.000000, 237375.900000 ], [ 744211.100000, 237360.200000 ], [ 744288.500000, 237320.800000 ], [ 744302.000000, 237303.200000 ], [ 744305.300000, 237242.200000 ], [ 744256.300000, 237204.000000 ], [ 744222.100000, 237142.000000 ], [ 744190.500000, 237105.500000 ], [ 744132.000000, 237070.700000 ], [ 744156.600000, 237022.000000 ], [ 744249.000000, 236978.800000 ], [ 744166.600000, 236934.700000 ], [ 744106.000000, 236929.600000 ], [ 744068.700000, 236915.600000 ], [ 743930.500000, 236936.400000 ], [ 743830.700000, 236993.300000 ], [ 743811.000000, 236995.100000 ], [ 743750.500000, 236913.200000 ], [ 743755.400000, 236854.500000 ], [ 743744.700000, 236789.700000 ], [ 743639.700000, 236759.600000 ], [ 743625.200000, 236763.100000 ], [ 743562.400000, 236810.000000 ], [ 743527.700000, 236844.000000 ], [ 743460.600000, 236882.500000 ], [ 743442.500000, 236901.300000 ], [ 743421.000000, 236972.300000 ], [ 743391.700000, 237004.700000 ], [ 743326.500000, 237025.700000 ], [ 743290.500000, 237059.500000 ], [ 743237.200000, 237054.400000 ], [ 743231.700000, 237042.400000 ], [ 743237.000000, 237011.600000 ], [ 743202.400000, 236964.300000 ], [ 743126.600000, 236909.400000 ], [ 743114.100000, 236884.700000 ], [ 743073.900000, 236842.700000 ], [ 743087.400000, 236806.900000 ], [ 743073.600000, 236761.900000 ], [ 743082.600000, 236673.100000 ], [ 743080.400000, 236614.400000 ], [ 743064.600000, 236547.900000 ], [ 743068.900000, 236501.100000 ], [ 743063.900000, 236453.600000 ], [ 743052.400000, 236424.600000 ], [ 743040.000000, 236417.100000 ], [ 743050.200000, 236369.000000 ], [ 743083.200000, 236293.800000 ], [ 743105.500000, 236216.400000 ], [ 743144.500000, 236147.700000 ], [ 743149.500000, 236116.900000 ], [ 743142.500000, 236092.700000 ], [ 743057.000000, 235990.400000 ], [ 743012.000000, 235909.700000 ], [ 742900.200000, 235833.400000 ], [ 742839.500000, 235773.700000 ], [ 742802.500000, 235706.500000 ], [ 742779.000000, 235682.300000 ], [ 742752.200000, 235667.700000 ], [ 742622.600000, 235634.200000 ], [ 742574.100000, 235615.700000 ], [ 742500.000000, 235566.800000 ], [ 742460.900000, 235529.800000 ], [ 742431.400000, 235515.300000 ], [ 742413.900000, 235513.100000 ], [ 742398.600000, 235524.600000 ], [ 742382.300000, 235585.900000 ], [ 742366.400000, 235583.300000 ], [ 742255.700000, 235621.300000 ], [ 741904.600000, 235525.600000 ], [ 741794.300000, 235439.100000 ], [ 741777.200000, 235434.900000 ], [ 741763.800000, 235446.000000 ], [ 741739.700000, 235503.900000 ], [ 741734.900000, 235552.900000 ], [ 741724.100000, 235562.300000 ], [ 741553.000000, 235537.600000 ], [ 741531.700000, 235541.800000 ], [ 741486.500000, 235565.800000 ], [ 741459.400000, 235552.000000 ], [ 741371.800000, 235533.900000 ], [ 741359.600000, 235524.600000 ], [ 741261.200000, 235373.500000 ], [ 741236.800000, 235348.100000 ], [ 741264.300000, 235297.900000 ], [ 741293.800000, 235263.200000 ], [ 741325.300000, 235250.500000 ], [ 741418.700000, 235237.000000 ], [ 741458.500000, 235190.300000 ], [ 741567.900000, 235123.700000 ], [ 741580.200000, 235099.400000 ], [ 741581.600000, 235069.200000 ], [ 741555.000000, 234988.000000 ], [ 741561.400000, 234911.900000 ], [ 741549.600000, 234900.100000 ], [ 741519.600000, 234889.600000 ], [ 741514.400000, 234873.600000 ], [ 741523.100000, 234861.100000 ], [ 741608.200000, 234823.500000 ], [ 741621.200000, 234809.200000 ], [ 741619.500000, 234780.300000 ], [ 741601.600000, 234738.400000 ], [ 741577.800000, 234703.200000 ], [ 741561.100000, 234689.800000 ], [ 741541.900000, 234684.800000 ], [ 741417.800000, 234696.000000 ], [ 741372.700000, 234692.500000 ], [ 741351.100000, 234681.900000 ], [ 741314.300000, 234616.600000 ], [ 741218.700000, 234494.500000 ], [ 741098.000000, 234301.100000 ], [ 741102.700000, 234282.000000 ], [ 741114.300000, 234270.200000 ], [ 741182.200000, 234256.300000 ], [ 741196.500000, 234234.800000 ], [ 741189.800000, 234210.500000 ], [ 741135.200000, 234179.600000 ], [ 741118.200000, 234161.200000 ], [ 741139.300000, 234125.000000 ], [ 741153.000000, 234085.200000 ], [ 741141.900000, 233875.900000 ], [ 741096.600000, 233825.600000 ], [ 741022.300000, 233821.200000 ], [ 740984.800000, 233805.000000 ], [ 740949.600000, 233779.500000 ], [ 740829.000000, 233795.100000 ], [ 740787.400000, 233788.700000 ], [ 740756.500000, 233776.400000 ], [ 740681.000000, 233693.900000 ], [ 740709.600000, 233662.400000 ], [ 740782.200000, 233615.900000 ], [ 740796.100000, 233598.400000 ], [ 740798.000000, 233559.900000 ], [ 740792.100000, 233547.300000 ], [ 740750.100000, 233500.400000 ], [ 740648.200000, 233481.700000 ], [ 740618.300000, 233482.700000 ], [ 740516.100000, 233514.300000 ], [ 740443.500000, 233529.200000 ], [ 740433.800000, 233527.900000 ], [ 740416.300000, 233478.900000 ], [ 740397.100000, 233461.000000 ], [ 740318.400000, 233460.600000 ], [ 740261.700000, 233473.900000 ], [ 740168.400000, 233480.800000 ], [ 740061.600000, 233546.300000 ], [ 739965.300000, 233624.000000 ], [ 739907.000000, 233697.100000 ], [ 739897.800000, 233749.900000 ], [ 739912.700000, 233792.800000 ], [ 739953.100000, 233831.800000 ], [ 740039.000000, 233882.000000 ], [ 740049.700000, 233944.100000 ], [ 740076.200000, 233964.000000 ], [ 740084.900000, 233979.100000 ], [ 740089.000000, 234011.500000 ], [ 740075.600000, 234067.800000 ], [ 740074.600000, 234130.600000 ], [ 740063.200000, 234141.100000 ], [ 740055.100000, 234135.600000 ], [ 740056.800000, 234090.900000 ], [ 740049.600000, 234051.800000 ], [ 740041.300000, 234030.500000 ], [ 740027.600000, 234019.800000 ], [ 739932.200000, 234027.900000 ], [ 739837.600000, 234054.400000 ], [ 739816.300000, 234052.000000 ], [ 739772.000000, 234017.900000 ], [ 739730.200000, 234054.900000 ], [ 739642.700000, 234096.600000 ], [ 739615.600000, 234099.000000 ], [ 739548.900000, 234050.600000 ], [ 739528.800000, 234044.200000 ], [ 739419.800000, 234071.400000 ], [ 739395.000000, 234072.200000 ], [ 739264.600000, 234001.100000 ], [ 739202.800000, 233951.400000 ], [ 739180.400000, 233943.100000 ], [ 739110.100000, 233952.600000 ], [ 739102.700000, 233943.700000 ], [ 739099.700000, 233908.700000 ], [ 739089.300000, 233898.300000 ], [ 738991.200000, 233915.600000 ], [ 738804.300000, 233856.500000 ], [ 738738.728000, 233847.954000 ], [ 738747.500000, 233811.200000 ], [ 738751.800000, 233726.200000 ], [ 738788.000000, 233683.900000 ], [ 738815.100000, 233664.500000 ], [ 738856.800000, 233649.200000 ], [ 738863.300000, 233635.700000 ], [ 738824.500000, 233586.500000 ], [ 738799.300000, 233576.000000 ], [ 738676.600000, 233482.700000 ], [ 738663.800000, 233477.100000 ], [ 738561.300000, 233471.800000 ], [ 738553.800000, 233460.200000 ], [ 738559.800000, 233451.700000 ], [ 738607.000000, 233453.900000 ], [ 738700.000000, 233421.900000 ], [ 738718.800000, 233418.800000 ], [ 738752.800000, 233425.900000 ], [ 738759.800000, 233417.900000 ], [ 738736.300000, 233381.500000 ], [ 738650.500000, 233356.900000 ], [ 738642.300000, 233338.700000 ], [ 738653.000000, 233325.700000 ], [ 738695.900000, 233304.900000 ], [ 738712.500000, 233282.900000 ], [ 738713.300000, 233268.200000 ], [ 738700.300000, 233229.100000 ], [ 738683.600000, 233199.300000 ], [ 738650.900000, 233165.000000 ], [ 738638.400000, 233132.600000 ], [ 738645.000000, 233098.100000 ], [ 738680.300000, 233004.400000 ], [ 738680.800000, 232960.600000 ], [ 738665.800000, 232949.900000 ], [ 738631.000000, 232943.400000 ], [ 738606.000000, 232925.600000 ], [ 738556.000000, 232857.900000 ], [ 738498.200000, 232821.400000 ], [ 738475.100000, 232762.700000 ], [ 738401.000000, 232752.100000 ], [ 738358.800000, 232592.700000 ], [ 738323.200000, 232558.400000 ], [ 738290.300000, 232547.700000 ], [ 738269.600000, 232477.600000 ], [ 738222.000000, 232362.400000 ], [ 738219.900000, 232316.000000 ], [ 738196.000000, 232274.700000 ], [ 738194.000000, 232240.200000 ], [ 738179.000000, 232204.600000 ], [ 738172.300000, 232162.500000 ], [ 738155.800000, 232149.800000 ], [ 738152.500000, 232124.700000 ], [ 738196.500000, 232106.500000 ], [ 738194.000000, 232089.000000 ], [ 738181.300000, 232091.000000 ], [ 738170.800000, 232081.200000 ], [ 738146.000000, 232080.500000 ], [ 738139.000000, 232049.500000 ], [ 738113.500000, 232001.800000 ], [ 738114.253000, 231945.788000 ], [ 738156.200000, 231952.900000 ], [ 738218.300000, 231936.300000 ], [ 738240.100000, 231942.600000 ], [ 738268.000000, 231969.000000 ], [ 738316.000000, 231971.900000 ], [ 738349.500000, 231962.300000 ], [ 738321.800000, 231918.300000 ], [ 738315.700000, 231897.800000 ], [ 738321.699000, 231887.996000 ], [ 738295.600000, 231860.600000 ], [ 738286.200000, 231799.100000 ], [ 738248.200000, 231711.700000 ], [ 738198.700000, 231679.700000 ], [ 738146.800000, 231667.500000 ], [ 738117.900000, 231650.900000 ], [ 738093.400000, 231608.100000 ], [ 738093.900000, 231588.700000 ], [ 738077.600000, 231577.900000 ], [ 738026.011000, 231576.127000 ], [ 738007.900000, 231554.900000 ], [ 737955.900000, 231518.900000 ], [ 737862.300000, 231511.500000 ], [ 737772.500000, 231480.900000 ], [ 737686.000000, 231499.200000 ], [ 737574.600000, 231491.900000 ], [ 737548.300000, 231510.600000 ], [ 737497.400000, 231511.200000 ], [ 737436.500000, 231490.500000 ], [ 737389.100000, 231486.600000 ], [ 737342.800000, 231445.700000 ], [ 737316.400000, 231445.200000 ], [ 737273.400000, 231425.400000 ], [ 737195.700000, 231429.100000 ], [ 737089.200000, 231368.300000 ], [ 737044.900000, 231351.100000 ], [ 737028.600000, 231362.200000 ], [ 736976.000000, 231338.100000 ], [ 736915.000000, 231340.800000 ], [ 736865.400000, 231299.600000 ], [ 736797.800000, 231315.300000 ], [ 736766.600000, 231365.600000 ], [ 736738.100000, 231397.100000 ], [ 736736.900000, 231441.400000 ], [ 736690.600000, 231455.200000 ], [ 736683.900000, 231454.700000 ], [ 736664.000000, 231432.200000 ], [ 736634.300000, 231425.500000 ], [ 736575.600000, 231370.800000 ], [ 736514.000000, 231368.100000 ], [ 736503.200000, 231360.200000 ], [ 736487.100000, 231330.600000 ], [ 736503.100000, 231309.900000 ], [ 736494.700000, 231290.700000 ], [ 736447.100000, 231282.400000 ], [ 736437.600000, 231360.100000 ], [ 736418.100000, 231363.100000 ], [ 736402.700000, 231347.000000 ], [ 736377.900000, 231310.700000 ], [ 736370.000000, 231249.600000 ], [ 736352.200000, 231201.100000 ], [ 736355.400000, 231167.900000 ], [ 736401.300000, 231075.200000 ], [ 736430.000000, 231034.000000 ], [ 736434.800000, 231012.200000 ], [ 736433.100000, 230999.000000 ], [ 736401.600000, 230957.600000 ], [ 736405.100000, 230944.100000 ], [ 736421.600000, 230926.100000 ], [ 736423.100000, 230858.600000 ], [ 736399.600000, 230807.800000 ], [ 736387.200000, 230792.500000 ], [ 736369.100000, 230784.100000 ], [ 736345.300000, 230786.700000 ], [ 736335.000000, 230798.000000 ], [ 736301.800000, 230868.200000 ], [ 736285.300000, 230863.900000 ], [ 736253.600000, 230822.100000 ], [ 736224.800000, 230833.600000 ], [ 736213.300000, 230830.100000 ], [ 736206.600000, 230805.300000 ], [ 736216.900000, 230793.500000 ], [ 736220.000000, 230773.400000 ], [ 736254.700000, 230698.700000 ], [ 736208.700000, 230670.900000 ], [ 736211.800000, 230622.100000 ], [ 736203.600000, 230525.700000 ], [ 736207.800000, 230512.300000 ], [ 736232.800000, 230488.400000 ], [ 736236.000000, 230473.900000 ], [ 736215.300000, 230413.500000 ], [ 736143.600000, 230412.000000 ], [ 736131.600000, 230402.000000 ], [ 736134.300000, 230375.000000 ], [ 736166.600000, 230308.000000 ], [ 736175.900000, 230256.200000 ], [ 736166.900000, 230228.200000 ], [ 736110.700000, 230151.300000 ], [ 736101.100000, 230017.000000 ], [ 736105.600000, 230000.000000 ], [ 736119.200000, 229987.500000 ], [ 736169.200000, 229988.000000 ], [ 736198.900000, 229973.000000 ], [ 736219.700000, 229951.500000 ], [ 736219.200000, 229939.500000 ], [ 736208.900000, 229936.700000 ], [ 736189.900000, 229952.000000 ], [ 736175.200000, 229955.500000 ], [ 736079.900000, 229940.000000 ], [ 736035.700000, 229972.200000 ], [ 735995.700000, 229973.500000 ], [ 735974.700000, 229982.000000 ], [ 735954.900000, 230000.000000 ], [ 735945.900000, 230024.300000 ], [ 735928.600000, 230040.800000 ], [ 735925.800000, 230085.600000 ], [ 735908.500000, 230120.900000 ], [ 735879.500000, 230161.500000 ], [ 735820.600000, 230206.500000 ], [ 735808.900000, 230227.800000 ], [ 735797.700000, 230235.500000 ], [ 735783.900000, 230219.700000 ], [ 735770.100000, 230164.300000 ], [ 735789.100000, 230103.000000 ], [ 735778.600000, 230077.000000 ], [ 735777.400000, 230051.500000 ], [ 735792.900000, 230027.500000 ], [ 735798.100000, 230000.000000 ], [ 735806.500000, 229993.200000 ], [ 735799.500000, 229983.200000 ], [ 735736.100000, 230009.800000 ], [ 735686.000000, 230045.900000 ], [ 735626.600000, 230071.500000 ], [ 735614.300000, 230118.800000 ], [ 735600.500000, 230131.500000 ], [ 735604.700000, 230105.300000 ], [ 735590.000000, 230068.300000 ], [ 735596.000000, 230045.000000 ], [ 735645.000000, 230012.300000 ], [ 735670.700000, 229946.500000 ], [ 735733.400000, 229881.000000 ], [ 735738.400000, 229864.000000 ], [ 735741.800000, 229803.500000 ], [ 735761.100000, 229740.200000 ], [ 735776.800000, 229647.100000 ], [ 735741.700000, 229575.900000 ], [ 735757.400000, 229522.400000 ], [ 735764.700000, 229463.500000 ], [ 735752.800000, 229381.100000 ], [ 735779.500000, 229331.400000 ], [ 735781.300000, 229300.000000 ], [ 735798.100000, 229259.700000 ], [ 735795.800000, 229241.300000 ], [ 735780.300000, 229239.500000 ], [ 735751.400000, 229274.400000 ], [ 735684.300000, 229315.200000 ], [ 735678.000000, 229322.900000 ], [ 735671.800000, 229363.600000 ], [ 735663.500000, 229371.100000 ], [ 735652.700000, 229370.400000 ], [ 735645.800000, 229358.000000 ], [ 735640.200000, 229277.400000 ], [ 735657.500000, 229211.500000 ], [ 735655.000000, 229198.300000 ], [ 735638.500000, 229190.800000 ], [ 735556.200000, 229237.800000 ], [ 735472.400000, 229396.900000 ], [ 735453.300000, 229414.700000 ], [ 735426.700000, 229412.600000 ], [ 735504.600000, 229140.000000 ], [ 735501.100000, 229069.900000 ], [ 735506.100000, 229048.100000 ], [ 735574.900000, 228946.500000 ], [ 735724.100000, 228539.200000 ], [ 735740.400000, 228510.500000 ], [ 735777.200000, 228474.000000 ], [ 735933.700000, 228399.000000 ], [ 735989.500000, 228363.900000 ], [ 736001.100000, 228348.300000 ], [ 736008.400000, 228243.400000 ], [ 736020.400000, 228173.800000 ], [ 736032.400000, 228146.000000 ], [ 736044.800000, 228135.400000 ], [ 736075.600000, 228132.000000 ], [ 736136.800000, 228159.500000 ], [ 736194.100000, 228168.300000 ], [ 736271.000000, 228164.600000 ], [ 736348.700000, 228146.900000 ], [ 736395.600000, 228114.200000 ], [ 736413.900000, 228072.400000 ], [ 736422.100000, 228009.500000 ], [ 736435.200000, 227969.300000 ], [ 736461.100000, 227928.900000 ], [ 736500.200000, 227897.800000 ], [ 736999.900000, 227770.000000 ], [ 737198.800000, 227683.900000 ], [ 737288.800000, 227665.800000 ], [ 737301.900000, 227571.100000 ], [ 737288.900000, 227513.100000 ], [ 737337.900000, 227419.100000 ], [ 737299.700000, 227310.300000 ], [ 737274.900000, 227283.100000 ], [ 737106.400000, 227147.700000 ], [ 737025.100000, 227095.800000 ], [ 736976.000000, 227028.100000 ], [ 736878.800000, 226959.400000 ], [ 736814.700000, 226862.000000 ], [ 736803.200000, 226852.800000 ], [ 736757.900000, 226841.500000 ], [ 736728.900000, 226794.300000 ], [ 736663.700000, 226785.300000 ], [ 736637.900000, 226767.800000 ], [ 736584.900000, 226695.200000 ], [ 736579.700000, 226659.500000 ], [ 736582.800000, 226548.100000 ], [ 736570.000000, 226507.000000 ], [ 736555.700000, 226489.700000 ], [ 736474.400000, 226421.500000 ], [ 736408.500000, 226391.400000 ], [ 736358.900000, 226317.700000 ], [ 736314.700000, 226300.000000 ], [ 736293.700000, 226250.900000 ], [ 736281.900000, 226237.700000 ], [ 736178.900000, 226219.000000 ], [ 736161.200000, 226221.900000 ], [ 736138.400000, 226237.400000 ], [ 736123.900000, 226235.200000 ], [ 736123.200000, 226223.900000 ], [ 736139.600000, 226193.100000 ], [ 736130.100000, 226161.000000 ], [ 736104.400000, 226128.200000 ], [ 736100.000000, 226098.400000 ], [ 736062.600000, 226039.800000 ], [ 736028.400000, 226010.700000 ], [ 736016.200000, 225962.900000 ], [ 736003.700000, 225954.700000 ], [ 735994.700000, 225962.700000 ], [ 735998.200000, 226002.300000 ], [ 735969.100000, 226122.700000 ], [ 735964.900000, 226252.000000 ], [ 735957.900000, 226259.200000 ], [ 735942.900000, 226254.500000 ], [ 735924.400000, 226218.700000 ], [ 735859.700000, 226127.500000 ], [ 735811.900000, 226030.700000 ], [ 735700.900000, 225922.800000 ], [ 735642.400000, 225880.200000 ], [ 735521.500000, 225700.100000 ], [ 735488.300000, 225672.400000 ], [ 735459.500000, 225663.700000 ], [ 735398.900000, 225659.600000 ], [ 735396.900000, 225674.100000 ], [ 735409.900000, 225717.600000 ], [ 735405.700000, 225751.200000 ], [ 735365.400000, 225830.700000 ], [ 735410.900000, 225895.400000 ], [ 735422.400000, 225924.200000 ], [ 735434.700000, 225994.400000 ], [ 735481.900000, 226068.700000 ], [ 735482.400000, 226082.400000 ], [ 735464.200000, 226090.900000 ], [ 735377.700000, 226088.200000 ], [ 735341.400000, 226071.000000 ], [ 735325.000000, 226069.600000 ], [ 735303.300000, 226084.800000 ], [ 735291.200000, 226106.900000 ], [ 735277.400000, 226109.700000 ], [ 735257.900000, 226063.700000 ], [ 735242.100000, 226043.500000 ], [ 735173.100000, 225999.800000 ], [ 735136.200000, 225956.200000 ], [ 735083.200000, 225923.200000 ], [ 734986.100000, 225834.100000 ], [ 734904.800000, 225800.400000 ], [ 734744.100000, 225751.400000 ], [ 734695.600000, 225716.700000 ], [ 734632.900000, 225685.600000 ], [ 734625.900000, 225687.600000 ], [ 734624.900000, 225694.900000 ], [ 734670.100000, 225746.600000 ], [ 734682.600000, 225794.100000 ], [ 734716.600000, 225850.000000 ], [ 734743.400000, 225914.200000 ], [ 734740.100000, 225921.400000 ], [ 734694.500000, 225901.800000 ], [ 734570.400000, 225797.900000 ], [ 734530.900000, 225786.200000 ], [ 734447.900000, 225777.400000 ], [ 734420.100000, 225780.700000 ], [ 734364.900000, 225806.700000 ], [ 734270.400000, 225817.200000 ], [ 734215.100000, 225835.400000 ], [ 734177.400000, 225837.700000 ], [ 734134.600000, 225863.400000 ], [ 734106.100000, 225868.400000 ], [ 734078.400000, 225908.700000 ], [ 734039.400000, 225919.400000 ], [ 734025.400000, 225931.200000 ], [ 734008.900000, 225976.700000 ], [ 733995.600000, 225985.600000 ], [ 733940.100000, 225978.700000 ], [ 733893.900000, 225989.200000 ], [ 733859.900000, 225958.400000 ], [ 733809.900000, 225947.900000 ], [ 733793.900000, 225938.900000 ], [ 733693.700000, 225933.600000 ], [ 733667.400000, 225919.600000 ], [ 733640.000000, 225892.300000 ], [ 733576.900000, 225861.200000 ], [ 733570.600000, 225849.400000 ], [ 733567.900000, 225798.300000 ], [ 733557.600000, 225785.100000 ], [ 733523.500000, 225766.300000 ], [ 733456.400000, 225749.100000 ], [ 733278.600000, 225654.600000 ], [ 733226.200000, 225644.800000 ], [ 733201.900000, 225623.000000 ], [ 733165.000000, 225561.600000 ], [ 733145.600000, 225540.900000 ], [ 732987.400000, 225413.200000 ], [ 732901.300000, 225362.500000 ], [ 732769.100000, 225203.600000 ], [ 732754.000000, 225161.100000 ], [ 732756.000000, 225115.800000 ], [ 732748.200000, 225085.600000 ], [ 732715.600000, 225040.600000 ], [ 732691.900000, 224973.900000 ], [ 732604.100000, 224870.100000 ], [ 732596.600000, 224824.100000 ], [ 732569.100000, 224789.800000 ], [ 732534.100000, 224712.500000 ], [ 732417.400000, 224663.300000 ], [ 732312.100000, 224645.500000 ], [ 732282.100000, 224652.800000 ], [ 732257.400000, 224672.200000 ], [ 732207.400000, 224739.300000 ], [ 732192.600000, 224739.000000 ], [ 732141.600000, 224709.800000 ], [ 732072.500000, 224654.900000 ], [ 732041.200000, 224619.200000 ], [ 731967.600000, 224609.500000 ], [ 731936.400000, 224621.000000 ], [ 731907.600000, 224606.800000 ], [ 731876.600000, 224605.800000 ], [ 731852.600000, 224595.300000 ], [ 731811.100000, 224595.800000 ], [ 731777.400000, 224583.800000 ], [ 731732.300000, 224548.500000 ], [ 731710.300000, 224492.400000 ], [ 731710.909000, 224469.911000 ], [ 731681.900000, 224413.200000 ], [ 731660.500000, 224338.300000 ], [ 731629.600000, 224274.600000 ], [ 731591.400000, 224235.200000 ], [ 731540.800000, 224211.300000 ], [ 731501.200000, 224174.800000 ], [ 731461.200000, 224096.300000 ], [ 731429.400000, 224063.700000 ], [ 731363.100000, 224015.000000 ], [ 731310.200000, 223994.100000 ], [ 731286.000000, 223968.800000 ], [ 731251.300000, 223954.400000 ], [ 731184.200000, 223891.800000 ], [ 731094.400000, 223834.700000 ], [ 731034.400000, 223808.800000 ], [ 730988.900000, 223775.600000 ], [ 730904.100000, 223685.600000 ], [ 730813.300000, 223665.400000 ], [ 730678.100000, 223660.200000 ], [ 730597.800000, 223638.400000 ], [ 730567.600000, 223640.300000 ], [ 730469.100000, 223690.400000 ], [ 730425.300000, 223743.700000 ], [ 730408.100000, 223748.200000 ], [ 730345.051000, 223736.737000 ], [ 730318.000000, 223751.100000 ], [ 730281.700000, 223783.900000 ], [ 730182.100000, 223790.900000 ], [ 730151.600000, 223813.700000 ], [ 730125.300000, 223816.800000 ], [ 730117.600000, 223803.700000 ], [ 730123.300000, 223787.400000 ], [ 730177.600000, 223723.400000 ], [ 730188.800000, 223689.900000 ], [ 730123.600000, 223599.400000 ], [ 730114.700000, 223575.300000 ], [ 730109.800000, 223457.100000 ], [ 730059.800000, 223399.900000 ], [ 730054.700000, 223375.700000 ], [ 730066.300000, 223311.900000 ], [ 730156.800000, 223236.900000 ], [ 730154.100000, 223222.600000 ], [ 730124.300000, 223190.400000 ], [ 730101.800000, 223185.400000 ], [ 730057.600000, 223215.900000 ], [ 729987.400000, 223209.600000 ], [ 729938.200000, 223219.600000 ], [ 729802.700000, 223284.900000 ], [ 729756.500000, 223298.700000 ], [ 729744.100000, 223309.400000 ], [ 729717.500000, 223357.300000 ], [ 729692.700000, 223376.400000 ], [ 729651.300000, 223395.600000 ], [ 729626.500000, 223453.400000 ], [ 729618.500000, 223458.700000 ], [ 729539.300000, 223465.500000 ], [ 729257.400000, 223436.900000 ], [ 729152.600000, 223420.000000 ], [ 729161.700000, 223408.600000 ], [ 729193.800000, 223407.800000 ], [ 729201.700000, 223399.700000 ], [ 729203.000000, 223385.300000 ], [ 729198.400000, 223376.000000 ], [ 729142.600000, 223341.400000 ], [ 729108.300000, 223299.900000 ], [ 729085.200000, 223284.100000 ], [ 729083.500000, 223272.000000 ], [ 729109.900000, 223228.800000 ], [ 729116.500000, 223171.000000 ], [ 729100.000000, 223129.500000 ], [ 729068.000000, 223090.000000 ], [ 729083.000000, 223080.300000 ], [ 729085.700000, 223069.300000 ], [ 729031.000000, 223045.500000 ], [ 729034.200000, 223028.700000 ], [ 729077.200000, 222996.000000 ], [ 729052.200000, 222979.000000 ], [ 729046.200000, 222967.200000 ], [ 729023.100000, 222873.100000 ], [ 728953.700000, 222834.200000 ], [ 728910.219000, 222903.593000 ], [ 728879.234000, 222895.222000 ], [ 728877.600000, 222845.700000 ], [ 728847.600000, 222779.400000 ], [ 728785.100000, 222705.700000 ], [ 728718.800000, 222613.200000 ], [ 728692.600000, 222594.400000 ], [ 728647.600000, 222590.700000 ], [ 728605.100000, 222571.900000 ], [ 728557.300000, 222568.000000 ], [ 728507.700000, 222586.400000 ], [ 728496.000000, 222573.800000 ], [ 728456.300000, 222482.300000 ], [ 728326.200000, 222446.100000 ], [ 728254.400000, 222395.100000 ], [ 728217.700000, 222387.600000 ], [ 728001.200000, 222425.800000 ], [ 727936.900000, 222403.100000 ], [ 727916.600000, 222404.100000 ], [ 727820.600000, 222466.300000 ], [ 727782.100000, 222503.100000 ], [ 727731.400000, 222513.100000 ], [ 727676.400000, 222559.500000 ], [ 727632.100000, 222575.300000 ], [ 727602.300000, 222561.700000 ], [ 727551.700000, 222511.200000 ], [ 727508.300000, 222478.200000 ], [ 727449.700000, 222448.700000 ], [ 727330.700000, 222467.100000 ], [ 727179.400000, 222434.400000 ], [ 726954.700000, 222422.200000 ], [ 726845.900000, 222379.200000 ], [ 726771.700000, 222313.200000 ], [ 726735.800000, 222217.400000 ], [ 726701.900000, 222158.700000 ], [ 726584.100000, 222002.700000 ], [ 726572.600000, 221989.900000 ], [ 726547.100000, 221977.200000 ], [ 726393.100000, 221917.900000 ], [ 726151.100000, 221911.700000 ], [ 726094.600000, 221902.200000 ], [ 726030.400000, 221880.400000 ], [ 725970.600000, 221854.400000 ], [ 725925.100000, 221825.600000 ], [ 725896.500000, 221789.800000 ], [ 725871.100000, 221742.400000 ], [ 725836.400000, 221712.900000 ], [ 725613.800000, 221617.000000 ], [ 725557.600000, 221584.900000 ], [ 725515.600000, 221545.300000 ], [ 725223.100000, 221517.000000 ], [ 724981.600000, 221477.000000 ], [ 724996.300000, 221366.400000 ], [ 724266.300000, 221252.600000 ], [ 723749.100000, 221186.200000 ], [ 723675.300000, 221193.500000 ], [ 723616.900000, 221210.600000 ], [ 723560.600000, 221242.500000 ], [ 723472.800000, 221321.500000 ], [ 723427.789000, 221373.572000 ], [ 723410.456000, 221420.683000 ], [ 723358.456000, 221502.017000 ], [ 723357.117000, 221514.957000 ], [ 723167.400000, 221684.300000 ] ], [ [ 758071.800000, 257012.300000 ], [ 758161.600000, 256998.100000 ] ], [ [ 614593.100000, 178362.100000 ], [ 614607.700000, 178357.400000 ], [ 614607.400000, 178249.100000 ], [ 614636.100000, 178209.900000 ] ], [ [ 614593.100000, 178362.100000 ], [ 614590.700000, 178375.000000 ], [ 614600.400000, 178389.700000 ], [ 614479.500000, 178445.000000 ], [ 614399.500000, 178504.800000 ], [ 614329.900000, 178631.300000 ], [ 614292.815000, 178714.190000 ], [ 614295.367000, 178725.672000 ], [ 614344.800000, 178746.900000 ], [ 614438.772000, 178820.128000 ], [ 614376.600000, 178879.700000 ], [ 614203.500000, 178989.900000 ], [ 614154.000000, 179029.600000 ], [ 614110.000000, 179053.400000 ], [ 614075.690000, 179043.193000 ], [ 614062.300000, 179048.700000 ], [ 613922.141000, 179203.794000 ], [ 613907.776000, 179204.479000 ], [ 613908.560000, 179218.912000 ], [ 613771.500000, 179380.700000 ], [ 613757.300000, 179440.900000 ], [ 613596.600000, 179934.200000 ], [ 613563.300000, 180006.700000 ], [ 613482.303000, 180305.658000 ], [ 613568.297000, 180317.534000 ], [ 613571.900000, 180327.700000 ], [ 613581.100000, 180331.500000 ], [ 613593.434000, 180321.831000 ], [ 614026.400000, 180304.700000 ], [ 614144.700000, 180324.900000 ], [ 614238.400000, 180331.600000 ], [ 614348.100000, 180370.800000 ], [ 614428.600000, 180392.100000 ], [ 614464.100000, 180393.400000 ], [ 614510.900000, 180376.900000 ], [ 614537.600000, 180378.600000 ], [ 614588.700000, 180412.200000 ], [ 614639.800000, 180463.600000 ], [ 614884.100000, 180664.600000 ], [ 614922.200000, 180665.500000 ], [ 614976.200000, 180743.200000 ], [ 615006.597000, 180815.900000 ], [ 615047.000000, 180782.600000 ], [ 615129.700000, 180740.800000 ], [ 615167.400000, 180701.900000 ], [ 615243.900000, 180770.300000 ], [ 615329.400000, 180830.200000 ], [ 615484.500000, 180861.000000 ], [ 615596.900000, 180917.900000 ], [ 615618.500000, 180932.200000 ], [ 615697.000000, 181032.600000 ], [ 615735.700000, 181066.400000 ], [ 615765.200000, 181060.400000 ], [ 615842.700000, 180989.900000 ], [ 615874.700000, 180971.200000 ], [ 615910.400000, 180962.600000 ], [ 615974.000000, 180962.400000 ], [ 616038.000000, 180952.600000 ], [ 616206.500000, 180988.600000 ], [ 616331.700000, 181054.000000 ], [ 616402.600000, 181054.700000 ], [ 616460.900000, 181040.800000 ], [ 616509.900000, 181013.900000 ], [ 616577.100000, 181007.700000 ], [ 616635.200000, 181041.600000 ], [ 616676.600000, 181081.700000 ], [ 616755.600000, 181114.600000 ], [ 616920.700000, 181132.700000 ], [ 616967.700000, 181121.900000 ], [ 617145.100000, 181109.200000 ], [ 617189.700000, 181124.000000 ], [ 617375.500000, 181214.600000 ], [ 617395.000000, 181217.100000 ], [ 617445.900000, 181208.500000 ], [ 617558.100000, 181242.200000 ], [ 617684.800000, 181249.100000 ], [ 617727.600000, 181242.700000 ], [ 617746.200000, 181233.100000 ], [ 617803.100000, 181176.700000 ], [ 617849.600000, 181144.200000 ], [ 617877.400000, 181133.300000 ], [ 617953.200000, 181120.200000 ], [ 618001.500000, 181090.600000 ], [ 618022.800000, 181066.300000 ], [ 618034.900000, 181064.200000 ], [ 618064.200000, 181095.000000 ], [ 618071.600000, 181120.300000 ], [ 618071.100000, 181160.400000 ], [ 618096.200000, 181203.500000 ], [ 618195.234000, 181296.681000 ], [ 618215.857000, 181302.388000 ], [ 618266.500000, 181297.400000 ], [ 618296.700000, 181284.400000 ], [ 618402.100000, 181181.600000 ], [ 618419.700000, 181170.800000 ], [ 618476.800000, 181162.900000 ], [ 618510.500000, 181174.700000 ], [ 618557.000000, 181209.600000 ], [ 618613.800000, 181212.200000 ], [ 618692.200000, 181193.500000 ], [ 618735.100000, 181189.600000 ], [ 618772.100000, 181196.600000 ], [ 618881.800000, 181245.900000 ], [ 618902.000000, 181249.400000 ], [ 618916.000000, 181233.400000 ], [ 618895.900000, 181198.500000 ], [ 618903.800000, 181113.000000 ], [ 618913.500000, 181062.200000 ], [ 618925.300000, 181051.200000 ], [ 618937.700000, 181049.700000 ], [ 619067.800000, 181101.800000 ], [ 619151.000000, 181119.400000 ], [ 619315.200000, 181184.800000 ], [ 619395.800000, 181184.800000 ], [ 619415.370000, 181174.005000 ], [ 619427.437000, 181136.769000 ], [ 619427.437000, 181115.491000 ], [ 619410.310000, 181060.999000 ], [ 619420.000000, 181037.900000 ], [ 619715.000000, 181027.900000 ], [ 619742.500000, 181017.300000 ], [ 619817.700000, 180956.400000 ], [ 619841.400000, 180892.800000 ], [ 620139.700000, 180961.800000 ], [ 620227.600000, 180970.700000 ], [ 620298.700000, 180949.600000 ], [ 620316.100000, 180933.200000 ], [ 620335.200000, 180897.400000 ], [ 620358.000000, 180876.900000 ], [ 620399.000000, 180874.100000 ], [ 620541.700000, 180906.700000 ], [ 620619.100000, 180958.200000 ], [ 620681.300000, 180976.500000 ], [ 620755.500000, 180987.600000 ], [ 620875.400000, 181031.300000 ], [ 621007.100000, 181051.800000 ], [ 621090.800000, 181031.400000 ], [ 621175.900000, 181021.100000 ], [ 621214.700000, 181019.300000 ], [ 621291.000000, 181031.900000 ], [ 621312.200000, 181028.500000 ], [ 621347.000000, 181008.400000 ], [ 621444.700000, 180984.400000 ], [ 621455.700000, 180967.100000 ], [ 621448.500000, 180899.000000 ], [ 621460.200000, 180883.400000 ], [ 621497.700000, 180866.300000 ], [ 621508.300000, 180855.300000 ], [ 621509.600000, 180841.200000 ], [ 621498.700000, 180818.200000 ], [ 621421.300000, 180770.300000 ], [ 621398.300000, 180738.100000 ], [ 621404.500000, 180710.600000 ], [ 621429.300000, 180663.600000 ], [ 621443.000000, 180543.600000 ], [ 621425.400000, 180528.100000 ], [ 621385.600000, 180453.100000 ], [ 621367.100000, 180433.600000 ], [ 621220.800000, 180333.600000 ], [ 621227.400000, 180264.500000 ], [ 621245.000000, 180243.200000 ], [ 621310.500000, 180217.300000 ], [ 621349.100000, 180176.200000 ], [ 621372.400000, 180163.200000 ], [ 621479.600000, 180151.200000 ], [ 621514.000000, 180152.100000 ], [ 621560.600000, 180162.900000 ], [ 621658.900000, 180134.700000 ], [ 621764.700000, 180159.900000 ], [ 621780.900000, 180155.500000 ], [ 621805.600000, 180124.400000 ], [ 621820.300000, 180090.700000 ], [ 621819.600000, 180077.700000 ], [ 621762.100000, 180025.900000 ], [ 621754.400000, 180005.700000 ], [ 621763.100000, 179979.400000 ], [ 621795.800000, 179944.400000 ], [ 621802.200000, 179918.600000 ], [ 621790.900000, 179902.200000 ], [ 621727.500000, 179863.300000 ], [ 621711.100000, 179845.900000 ], [ 621719.900000, 179827.400000 ], [ 621762.900000, 179802.400000 ], [ 621780.600000, 179785.200000 ], [ 621840.100000, 179760.400000 ], [ 621864.900000, 179736.300000 ], [ 621871.700000, 179697.900000 ], [ 621854.100000, 179656.400000 ], [ 621878.100000, 179620.000000 ], [ 621892.800000, 179578.300000 ], [ 621872.000000, 179492.200000 ], [ 621877.400000, 179465.600000 ], [ 621956.300000, 179338.000000 ], [ 622013.400000, 179184.400000 ], [ 622015.400000, 179112.000000 ], [ 622034.600000, 179066.700000 ], [ 622034.100000, 179033.200000 ], [ 622004.400000, 178992.900000 ], [ 622004.100000, 178979.900000 ], [ 622016.100000, 178959.100000 ], [ 622052.500000, 178938.600000 ], [ 622064.900000, 178914.100000 ], [ 622088.900000, 178888.400000 ], [ 622136.100000, 178868.900000 ], [ 622185.900000, 178810.100000 ], [ 622232.500000, 178626.800000 ], [ 622235.500000, 178593.700000 ], [ 622225.900000, 178469.600000 ], [ 622240.400000, 178449.900000 ], [ 622313.100000, 178402.600000 ], [ 622352.100000, 178367.900000 ], [ 622450.700000, 178254.900000 ], [ 622508.600000, 178157.300000 ], [ 622525.600000, 178100.500000 ], [ 622537.300000, 178030.300000 ], [ 622587.400000, 177948.100000 ], [ 622584.600000, 177858.600000 ], [ 622567.600000, 177772.800000 ], [ 622592.000000, 177660.200000 ], [ 622588.700000, 177585.600000 ], [ 622597.800000, 177436.900000 ], [ 622597.100000, 177305.600000 ], [ 622594.200000, 177216.200000 ], [ 622574.200000, 177078.800000 ], [ 622514.200000, 176936.700000 ], [ 622404.200000, 176820.400000 ], [ 622377.200000, 176776.600000 ], [ 622336.100000, 176734.800000 ], [ 622287.800000, 176665.300000 ], [ 622208.667000, 176586.039000 ], [ 622199.900000, 176550.100000 ], [ 622196.545000, 176525.251000 ], [ 622228.947000, 176492.447000 ], [ 622237.285000, 176468.690000 ], [ 622216.900000, 176374.300000 ], [ 622215.700000, 176341.100000 ], [ 622230.200000, 176219.100000 ], [ 622214.603000, 176195.058000 ], [ 622214.603000, 176172.971000 ], [ 622219.100000, 176157.400000 ], [ 622243.500000, 176129.000000 ], [ 622294.630000, 176102.929000 ], [ 622305.718000, 176073.238000 ], [ 622259.082000, 175930.872000 ], [ 622276.711000, 175888.727000 ], [ 622250.900000, 175879.900000 ], [ 622197.700000, 175890.200000 ], [ 622184.156000, 175885.209000 ], [ 622176.117000, 175871.382000 ], [ 622164.400000, 175777.900000 ], [ 622122.800000, 175666.600000 ], [ 622122.000000, 175649.800000 ], [ 622127.000000, 175638.800000 ], [ 622175.700000, 175600.300000 ], [ 622171.100000, 175581.900000 ], [ 622164.300000, 175575.300000 ], [ 622087.200000, 175562.000000 ], [ 621968.900000, 175434.900000 ], [ 621919.800000, 175409.900000 ], [ 621906.600000, 175392.000000 ], [ 621886.900000, 175339.100000 ], [ 621880.400000, 175188.300000 ], [ 621901.900000, 174910.600000 ], [ 621896.400000, 174860.700000 ], [ 621913.700000, 174794.700000 ], [ 621929.900000, 174666.300000 ], [ 621968.700000, 174565.100000 ], [ 622015.900000, 174485.300000 ], [ 621953.700000, 174370.300000 ], [ 621992.200000, 174357.100000 ], [ 622035.200000, 174356.800000 ], [ 622086.800000, 174272.100000 ], [ 622102.500000, 174263.400000 ], [ 622165.800000, 174186.400000 ], [ 622189.000000, 174169.000000 ], [ 622186.200000, 174153.800000 ], [ 622209.000000, 174159.500000 ], [ 622216.000000, 174155.500000 ], [ 622217.300000, 174139.200000 ], [ 622232.500000, 174128.500000 ], [ 622221.000000, 174104.300000 ], [ 622235.300000, 174045.300000 ], [ 622267.700000, 174013.800000 ], [ 622321.400000, 173993.300000 ], [ 622337.500000, 173973.800000 ], [ 622336.000000, 173953.900000 ], [ 622353.100000, 173915.000000 ], [ 622413.200000, 173902.800000 ], [ 622451.900000, 173875.700000 ], [ 622505.100000, 173863.400000 ], [ 622522.800000, 173854.200000 ], [ 622579.600000, 173786.400000 ], [ 622595.600000, 173775.400000 ], [ 622640.200000, 173754.400000 ], [ 622709.700000, 173733.600000 ], [ 622755.600000, 173682.000000 ], [ 622749.000000, 173639.800000 ], [ 622765.100000, 173592.600000 ], [ 622808.200000, 173568.600000 ], [ 622821.200000, 173549.800000 ], [ 622813.700000, 173537.100000 ], [ 622841.700000, 173509.500000 ], [ 622858.300000, 173482.900000 ], [ 622929.400000, 173429.400000 ], [ 622942.900000, 173377.200000 ], [ 622973.900000, 173347.200000 ], [ 622994.600000, 173305.400000 ], [ 623079.900000, 173260.400000 ], [ 623137.600000, 173240.800000 ], [ 623150.900000, 173229.900000 ], [ 623151.400000, 173209.600000 ], [ 623124.600000, 173163.600000 ], [ 623126.200000, 173150.200000 ], [ 623134.600000, 173142.900000 ], [ 623166.200000, 173136.500000 ], [ 623202.800000, 173140.600000 ], [ 623214.900000, 173135.700000 ], [ 623229.400000, 173116.900000 ], [ 623233.300000, 173082.400000 ], [ 623251.500000, 173042.300000 ], [ 623224.600000, 172922.200000 ], [ 623291.800000, 172863.700000 ], [ 623305.000000, 172828.000000 ], [ 623305.900000, 172742.900000 ], [ 623317.400000, 172727.900000 ], [ 623346.000000, 172719.500000 ], [ 623401.100000, 172718.500000 ], [ 623454.900000, 172730.600000 ], [ 623511.700000, 172777.800000 ], [ 623588.900000, 172809.800000 ], [ 623674.000000, 172858.700000 ], [ 623697.700000, 172890.800000 ], [ 623731.800000, 172910.600000 ], [ 623758.200000, 172936.200000 ], [ 623810.800000, 172961.700000 ], [ 623849.900000, 172996.100000 ], [ 623889.100000, 173013.100000 ], [ 623953.500000, 173083.800000 ], [ 624006.200000, 173118.400000 ], [ 624056.500000, 173166.200000 ], [ 624096.400000, 173179.900000 ], [ 624131.400000, 173203.800000 ], [ 624164.400000, 173267.500000 ], [ 624219.700000, 173301.700000 ], [ 624295.900000, 173380.100000 ], [ 624315.600000, 173392.100000 ], [ 624354.400000, 173397.900000 ], [ 624393.000000, 173375.300000 ], [ 624415.100000, 173387.800000 ], [ 624433.200000, 173418.000000 ], [ 624463.700000, 173441.100000 ], [ 624510.300000, 173419.100000 ], [ 624543.300000, 173427.200000 ], [ 624588.600000, 173487.400000 ], [ 624612.600000, 173540.000000 ], [ 624629.100000, 173561.800000 ], [ 624648.100000, 173579.300000 ], [ 624694.700000, 173605.000000 ], [ 624711.400000, 173639.100000 ], [ 624745.200000, 173674.700000 ], [ 624762.000000, 173682.100000 ], [ 624789.400000, 173674.700000 ], [ 624815.700000, 173643.300000 ], [ 624821.100000, 173618.900000 ], [ 624728.300000, 173467.300000 ], [ 624691.400000, 173376.100000 ], [ 624637.600000, 173283.600000 ], [ 624603.000000, 173177.700000 ], [ 624549.900000, 173107.200000 ], [ 624534.500000, 173076.800000 ], [ 624497.100000, 172962.100000 ], [ 624419.200000, 172812.600000 ], [ 624416.600000, 172796.200000 ], [ 624426.200000, 172745.700000 ], [ 624421.700000, 172721.900000 ], [ 624391.400000, 172690.400000 ], [ 624381.100000, 172669.400000 ], [ 624336.600000, 172639.900000 ], [ 624338.400000, 172627.400000 ], [ 624373.400000, 172596.500000 ], [ 624367.600000, 172472.700000 ], [ 624353.400000, 172440.900000 ], [ 624348.400000, 172410.900000 ], [ 624318.900000, 172394.700000 ], [ 624268.900000, 172320.700000 ], [ 624228.100000, 172298.900000 ], [ 624201.400000, 172236.700000 ], [ 624176.300000, 172225.000000 ], [ 624157.100000, 172205.200000 ], [ 624082.900000, 172011.900000 ], [ 624071.900000, 171931.700000 ], [ 624106.400000, 171890.700000 ], [ 623960.000000, 171593.600000 ], [ 623959.500000, 171574.600000 ], [ 624018.200000, 171493.000000 ], [ 624188.900000, 171406.100000 ], [ 624230.700000, 171365.300000 ], [ 624289.700000, 171333.100000 ], [ 624339.400000, 171286.800000 ], [ 624377.200000, 171261.800000 ], [ 624432.200000, 171245.200000 ], [ 624520.300000, 171240.100000 ], [ 624650.500000, 171199.500000 ], [ 624700.600000, 171193.900000 ], [ 624778.900000, 171204.600000 ], [ 624852.900000, 171199.700000 ], [ 624969.400000, 171216.300000 ], [ 625034.200000, 171206.100000 ], [ 625102.400000, 171211.800000 ], [ 625160.400000, 171225.200000 ], [ 625219.300000, 171221.200000 ], [ 625262.500000, 171241.900000 ], [ 625282.900000, 171244.800000 ], [ 625532.500000, 171235.600000 ], [ 625737.200000, 171257.500000 ], [ 625687.500000, 171276.000000 ], [ 625628.800000, 171284.300000 ], [ 625576.700000, 171307.200000 ], [ 625410.600000, 171355.400000 ], [ 625366.900000, 171379.900000 ], [ 625294.700000, 171383.200000 ], [ 625201.500000, 171367.500000 ], [ 625132.700000, 171363.500000 ], [ 625113.200000, 171373.700000 ], [ 624880.000000, 171433.400000 ], [ 624794.500000, 171444.000000 ], [ 624732.900000, 171463.600000 ], [ 624620.200000, 171505.900000 ], [ 624475.100000, 171581.400000 ], [ 624397.500000, 171640.300000 ], [ 624363.300000, 171684.600000 ], [ 624273.700000, 171757.100000 ], [ 624278.000000, 171763.600000 ], [ 624289.000000, 171762.300000 ], [ 624320.500000, 171739.300000 ], [ 624368.200000, 171728.600000 ], [ 624535.400000, 171662.500000 ], [ 624587.700000, 171647.500000 ], [ 624643.900000, 171640.500000 ], [ 624725.900000, 171643.800000 ], [ 624806.100000, 171662.400000 ], [ 624992.000000, 171672.200000 ], [ 625081.500000, 171751.800000 ], [ 625151.200000, 171759.600000 ], [ 625246.400000, 171752.700000 ], [ 625312.000000, 171763.800000 ], [ 625368.700000, 171732.000000 ], [ 625422.200000, 171717.500000 ], [ 625521.100000, 171726.500000 ], [ 625621.900000, 171714.500000 ], [ 625669.500000, 171733.800000 ], [ 625716.900000, 171793.800000 ], [ 625773.200000, 171839.300000 ], [ 625784.700000, 171830.000000 ], [ 625795.700000, 171791.800000 ], [ 625907.800000, 171733.100000 ], [ 626134.700000, 171703.300000 ], [ 626227.700000, 171699.300000 ], [ 626300.800000, 171708.000000 ], [ 626385.100000, 171733.200000 ], [ 626435.200000, 171757.100000 ], [ 626445.800000, 171769.300000 ], [ 626475.600000, 171813.600000 ], [ 626485.200000, 171850.300000 ], [ 626522.900000, 171878.900000 ], [ 626546.100000, 171906.100000 ], [ 626561.400000, 171931.700000 ], [ 626571.000000, 171979.800000 ], [ 626599.100000, 172015.200000 ], [ 626610.500000, 172040.800000 ], [ 626619.100000, 172051.200000 ], [ 626680.900000, 172082.800000 ], [ 626724.900000, 172150.100000 ], [ 626779.600000, 172192.000000 ], [ 626828.000000, 172204.800000 ], [ 626864.200000, 172228.300000 ], [ 626964.000000, 172272.300000 ], [ 626975.000000, 172284.100000 ], [ 626990.400000, 172319.500000 ], [ 626986.307000, 172375.018000 ], [ 627004.300000, 172443.100000 ], [ 627003.000000, 172480.100000 ], [ 627013.700000, 172494.100000 ], [ 627066.000000, 172504.100000 ], [ 627094.700000, 172527.600000 ], [ 627134.800000, 172519.400000 ], [ 627231.500000, 172553.800000 ], [ 627296.100000, 172563.900000 ], [ 627353.500000, 172546.400000 ], [ 627414.000000, 172548.400000 ], [ 627438.300000, 172555.000000 ], [ 627574.700000, 172556.200000 ], [ 627602.600000, 172565.200000 ], [ 627632.600000, 172584.900000 ], [ 627640.500000, 172599.700000 ], [ 627641.600000, 172654.600000 ], [ 627655.700000, 172665.000000 ], [ 627734.000000, 172679.600000 ], [ 627755.300000, 172690.400000 ], [ 627772.500000, 172710.200000 ], [ 627787.000000, 172708.300000 ], [ 627822.200000, 172683.100000 ], [ 627846.800000, 172694.800000 ], [ 627880.400000, 172722.900000 ], [ 627957.400000, 172755.200000 ], [ 628148.100000, 172907.100000 ], [ 628213.400000, 172975.600000 ], [ 628270.000000, 173010.600000 ], [ 628376.700000, 173060.400000 ], [ 628439.611000, 173113.483000 ], [ 628493.115000, 173196.223000 ], [ 628542.200000, 173255.500000 ], [ 628567.900000, 173320.400000 ], [ 628611.500000, 173399.900000 ], [ 628623.200000, 173409.300000 ], [ 628636.500000, 173405.600000 ], [ 628647.700000, 173333.900000 ], [ 628676.900000, 173263.000000 ], [ 628679.500000, 173243.000000 ], [ 628632.900000, 172988.400000 ], [ 628632.700000, 172924.400000 ], [ 628638.900000, 172896.300000 ], [ 628635.100000, 172807.100000 ], [ 628614.700000, 172725.100000 ], [ 628590.200000, 172664.600000 ], [ 628591.900000, 172653.900000 ], [ 628604.000000, 172653.300000 ], [ 628647.900000, 172619.600000 ], [ 628692.900000, 172596.300000 ], [ 628719.100000, 172589.900000 ], [ 628810.700000, 172606.600000 ], [ 628831.600000, 172630.500000 ], [ 628845.500000, 172634.100000 ], [ 628887.600000, 172630.700000 ], [ 628903.300000, 172617.900000 ], [ 628914.000000, 172595.500000 ], [ 628920.200000, 172518.100000 ], [ 628941.400000, 172497.900000 ], [ 628946.700000, 172500.100000 ], [ 628944.000000, 172521.600000 ], [ 628951.000000, 172533.800000 ], [ 628983.500000, 172539.800000 ], [ 629015.000000, 172579.100000 ], [ 629052.500000, 172601.800000 ], [ 629068.700000, 172626.300000 ], [ 629074.300000, 172664.300000 ], [ 629118.300000, 172698.200000 ], [ 629133.500000, 172717.600000 ], [ 629129.900000, 172790.900000 ], [ 629302.900000, 172794.500000 ], [ 629367.700000, 172817.800000 ], [ 629432.500000, 172803.400000 ], [ 629530.200000, 172847.600000 ], [ 629579.700000, 172886.200000 ], [ 629603.000000, 172924.900000 ], [ 629676.000000, 172993.300000 ], [ 629677.000000, 173040.300000 ], [ 629689.000000, 173066.100000 ], [ 629727.600000, 173098.700000 ], [ 629782.800000, 173124.100000 ], [ 629810.000000, 173144.300000 ], [ 629877.200000, 173211.100000 ], [ 629902.600000, 173240.500000 ], [ 629972.700000, 173367.500000 ], [ 629995.208000, 173396.672000 ], [ 630008.500000, 173400.200000 ], [ 630077.345000, 173450.934000 ], [ 630153.500000, 173526.100000 ], [ 630171.800000, 173533.100000 ], [ 630201.700000, 173529.700000 ], [ 630248.500000, 173565.100000 ], [ 630295.000000, 173625.000000 ], [ 630302.700000, 173642.900000 ], [ 630298.700000, 173676.900000 ], [ 630371.100000, 173744.200000 ], [ 630406.500000, 173788.500000 ], [ 630427.100000, 173850.100000 ], [ 630422.500000, 173907.600000 ], [ 630432.400000, 173965.200000 ], [ 630494.700000, 174065.100000 ], [ 630479.300000, 174143.800000 ], [ 630480.700000, 174196.400000 ], [ 630404.400000, 174251.100000 ], [ 630367.000000, 174371.600000 ], [ 630362.000000, 174461.600000 ], [ 630338.900000, 174500.700000 ], [ 630287.200000, 174549.900000 ], [ 630312.500000, 174580.900000 ], [ 630330.000000, 174579.400000 ], [ 630359.700000, 174551.700000 ], [ 630405.700000, 174540.900000 ], [ 630420.000000, 174526.900000 ], [ 630515.200000, 174408.100000 ], [ 630572.400000, 174299.600000 ], [ 630661.900000, 174283.400000 ], [ 630685.700000, 174268.400000 ], [ 630716.300000, 174259.300000 ], [ 630759.500000, 174231.600000 ], [ 630796.100000, 174218.300000 ], [ 630829.600000, 174311.800000 ], [ 630867.100000, 174360.200000 ], [ 630900.000000, 174427.400000 ], [ 630927.928000, 174453.614000 ], [ 630922.200000, 174542.200000 ], [ 630905.300000, 174573.600000 ], [ 630904.000000, 174651.400000 ], [ 630915.200000, 174707.000000 ], [ 630946.100000, 174782.700000 ], [ 630957.600000, 174827.600000 ], [ 630966.500000, 174836.400000 ], [ 631062.400000, 174830.900000 ], [ 631112.100000, 174858.400000 ], [ 631174.900000, 174878.200000 ], [ 631211.600000, 174908.000000 ], [ 631235.800000, 174949.400000 ], [ 631257.500000, 174964.000000 ], [ 631332.600000, 174981.000000 ], [ 631344.500000, 174988.600000 ], [ 631377.300000, 175031.500000 ], [ 631446.293000, 175084.320000 ], [ 631462.600000, 175151.700000 ], [ 631517.800000, 175140.300000 ], [ 631551.089000, 175118.612000 ], [ 631587.500000, 175132.200000 ], [ 631609.400000, 175132.700000 ], [ 631617.500000, 175128.200000 ], [ 631607.700000, 175091.700000 ], [ 631609.700000, 175074.400000 ], [ 631659.500000, 175047.800000 ], [ 631674.000000, 175051.300000 ], [ 631715.700000, 175123.100000 ], [ 631734.200000, 175122.400000 ], [ 631763.000000, 175109.700000 ], [ 631873.200000, 175143.100000 ], [ 631896.900000, 175141.500000 ], [ 631901.400000, 175131.800000 ], [ 631945.400000, 175120.900000 ], [ 631991.400000, 175096.300000 ], [ 632060.700000, 175088.500000 ], [ 632104.400000, 175093.500000 ], [ 632146.900000, 175128.000000 ], [ 632156.100000, 175116.500000 ], [ 632135.900000, 175065.500000 ], [ 632152.100000, 175054.000000 ], [ 632194.600000, 175078.500000 ], [ 632272.700000, 175140.700000 ], [ 632432.900000, 175218.300000 ], [ 632444.100000, 175234.000000 ], [ 632454.600000, 175271.000000 ], [ 632463.600000, 175272.800000 ], [ 632470.600000, 175269.000000 ], [ 632464.400000, 175230.700000 ], [ 632482.400000, 175177.000000 ], [ 632468.400000, 175131.800000 ], [ 632478.400000, 175126.000000 ], [ 632497.000000, 175141.800000 ], [ 632516.300000, 175181.300000 ], [ 632527.400000, 175190.800000 ], [ 632542.100000, 175201.500000 ], [ 632558.400000, 175203.800000 ], [ 632573.100000, 175201.500000 ], [ 632583.300000, 175190.500000 ], [ 632679.000000, 175276.100000 ], [ 632703.800000, 175308.300000 ], [ 632741.500000, 175374.100000 ], [ 632728.500000, 175398.100000 ], [ 632723.000000, 175437.200000 ], [ 632694.200000, 175466.600000 ], [ 632682.200000, 175499.400000 ], [ 632679.200000, 175531.600000 ], [ 632713.200000, 175593.500000 ], [ 632775.200000, 175616.600000 ], [ 632810.200000, 175639.100000 ], [ 632883.200000, 175755.400000 ], [ 632882.500000, 175768.600000 ], [ 632906.500000, 175778.900000 ], [ 632943.000000, 175786.400000 ], [ 632953.500000, 175777.400000 ], [ 632951.700000, 175765.200000 ], [ 632924.700000, 175739.200000 ], [ 632917.400000, 175722.300000 ], [ 632912.700000, 175656.200000 ], [ 632897.700000, 175625.900000 ], [ 632902.000000, 175597.900000 ], [ 632957.000000, 175548.900000 ], [ 632975.700000, 175478.800000 ], [ 632986.200000, 175459.700000 ], [ 633036.400000, 175400.100000 ], [ 633092.500000, 175312.400000 ], [ 633127.000000, 175290.700000 ], [ 633164.500000, 175231.900000 ], [ 633203.500000, 175235.200000 ], [ 633249.000000, 175211.400000 ], [ 633268.900000, 175192.500000 ], [ 633283.400000, 175159.700000 ], [ 633303.200000, 175063.200000 ], [ 633316.000000, 175050.200000 ], [ 633344.500000, 175044.900000 ], [ 633375.500000, 175061.500000 ], [ 633500.300000, 175154.300000 ], [ 633570.800000, 175174.200000 ], [ 633644.000000, 175213.700000 ], [ 633656.500000, 175218.200000 ], [ 633672.200000, 175212.900000 ], [ 633682.500000, 175186.400000 ], [ 633702.500000, 175176.400000 ], [ 633730.700000, 175199.700000 ], [ 633765.500000, 175210.800000 ], [ 633774.700000, 175224.400000 ], [ 633776.200000, 175247.900000 ], [ 633757.500000, 175284.300000 ], [ 633760.500000, 175300.800000 ], [ 633799.800000, 175316.300000 ], [ 633832.900000, 175357.600000 ], [ 633948.300000, 175379.200000 ], [ 633964.300000, 175389.500000 ], [ 633983.100000, 175417.600000 ], [ 634046.100000, 175445.600000 ], [ 634051.900000, 175470.100000 ], [ 634025.800000, 175546.900000 ], [ 634033.500000, 175571.200000 ], [ 634062.300000, 175602.800000 ], [ 634106.100000, 175625.500000 ], [ 634193.400000, 175691.100000 ], [ 634272.000000, 175687.700000 ], [ 634282.000000, 175692.200000 ], [ 634299.200000, 175721.200000 ], [ 634312.200000, 175722.700000 ], [ 634325.700000, 175698.900000 ], [ 634329.200000, 175648.200000 ], [ 634345.700000, 175639.500000 ], [ 634366.900000, 175664.200000 ], [ 634381.200000, 175706.800000 ], [ 634407.200000, 175727.700000 ], [ 634422.500000, 175779.700000 ], [ 634431.200000, 175781.900000 ], [ 634466.600000, 175764.000000 ], [ 634487.100000, 175767.600000 ], [ 634529.900000, 175804.900000 ], [ 634602.700000, 175787.000000 ], [ 634609.000000, 175795.300000 ], [ 634600.900000, 175808.600000 ], [ 634568.000000, 175836.700000 ], [ 634572.700000, 175849.400000 ], [ 634671.000000, 175846.200000 ], [ 634806.300000, 175859.000000 ], [ 634837.200000, 175838.100000 ], [ 634852.700000, 175838.200000 ], [ 634861.200000, 175854.400000 ], [ 634860.100000, 175920.700000 ], [ 634870.400000, 175956.400000 ], [ 634910.200000, 175996.900000 ], [ 634928.300000, 176059.900000 ], [ 634963.400000, 176106.300000 ], [ 634991.000000, 176108.900000 ], [ 635031.200000, 176090.400000 ], [ 635085.400000, 176097.200000 ], [ 635118.400000, 176085.700000 ], [ 635133.700000, 176089.400000 ], [ 635132.000000, 176104.400000 ], [ 635108.900000, 176118.600000 ], [ 635102.200000, 176167.900000 ], [ 635090.000000, 176185.200000 ], [ 635095.000000, 176240.700000 ], [ 635088.700000, 176271.400000 ], [ 635103.500000, 176274.200000 ], [ 635131.000000, 176254.700000 ], [ 635150.500000, 176252.200000 ], [ 635190.400000, 176276.400000 ], [ 635293.500000, 176314.700000 ], [ 635319.000000, 176307.900000 ], [ 635333.700000, 176315.400000 ], [ 635333.500000, 176349.400000 ], [ 635371.500000, 176383.200000 ], [ 635450.300000, 176495.200000 ], [ 635454.300000, 176515.100000 ], [ 635441.600000, 176565.100000 ], [ 635441.600000, 176599.200000 ], [ 635448.800000, 176624.800000 ], [ 635482.200000, 176652.400000 ], [ 635507.800000, 176691.300000 ], [ 635593.900000, 176770.200000 ], [ 635622.600000, 176819.500000 ], [ 635647.500000, 176917.800000 ], [ 635670.300000, 176948.000000 ], [ 635674.800000, 176967.000000 ], [ 635668.700000, 177025.400000 ], [ 635654.200000, 177057.400000 ], [ 635671.700000, 177149.300000 ], [ 635688.200000, 177154.700000 ], [ 635715.200000, 177130.700000 ], [ 635752.000000, 177120.700000 ], [ 635774.200000, 177102.100000 ], [ 635787.400000, 177079.900000 ], [ 635805.000000, 177076.400000 ], [ 635829.600000, 177103.500000 ], [ 635839.600000, 177127.600000 ], [ 635831.000000, 177190.500000 ], [ 635835.100000, 177217.200000 ], [ 635866.400000, 177266.900000 ], [ 635911.700000, 177319.800000 ], [ 635923.500000, 177348.900000 ], [ 635924.000000, 177368.700000 ], [ 635894.000000, 177489.800000 ], [ 635873.300000, 177513.100000 ], [ 635826.700000, 177532.900000 ], [ 635814.200000, 177548.900000 ], [ 635816.200000, 177599.500000 ], [ 635831.800000, 177686.500000 ], [ 635854.200000, 177750.700000 ], [ 635854.500000, 177765.200000 ], [ 635837.100000, 177805.000000 ], [ 635680.600000, 177851.400000 ], [ 635635.900000, 177844.200000 ], [ 635563.700000, 177816.100000 ], [ 635511.200000, 177811.500000 ], [ 635423.800000, 177823.100000 ], [ 635337.400000, 177850.800000 ], [ 635314.200000, 177852.500000 ], [ 635303.200000, 177864.000000 ], [ 635311.600000, 177911.200000 ], [ 635298.500000, 177936.000000 ], [ 635139.300000, 178016.400000 ], [ 635079.300000, 178040.400000 ], [ 635056.500000, 178067.500000 ], [ 635044.100000, 178114.000000 ], [ 635060.700000, 178220.000000 ], [ 635043.900000, 178247.900000 ], [ 635019.800000, 178260.000000 ], [ 634988.200000, 178265.200000 ], [ 634934.300000, 178263.000000 ], [ 634898.700000, 178253.800000 ], [ 634870.400000, 178263.700000 ], [ 634859.200000, 178279.200000 ], [ 634854.400000, 178304.400000 ], [ 634947.400000, 178407.600000 ], [ 634953.800000, 178431.200000 ], [ 634935.500000, 178447.200000 ], [ 634902.700000, 178456.200000 ], [ 634749.400000, 178468.000000 ], [ 634708.300000, 178497.900000 ], [ 634695.900000, 178522.400000 ], [ 634693.000000, 178560.000000 ], [ 634707.100000, 178592.600000 ], [ 634754.400000, 178652.500000 ], [ 634782.700000, 178740.500000 ], [ 634759.200000, 178759.500000 ], [ 634700.500000, 178784.900000 ], [ 634695.700000, 178798.000000 ], [ 634702.200000, 178811.000000 ], [ 634796.100000, 178896.700000 ], [ 634819.600000, 178903.000000 ], [ 634914.700000, 178904.900000 ], [ 634947.900000, 178920.700000 ], [ 634979.700000, 178975.700000 ], [ 634999.000000, 178996.200000 ], [ 635110.200000, 179042.600000 ], [ 635165.900000, 179073.300000 ], [ 635261.000000, 179127.000000 ], [ 635346.700000, 179191.500000 ], [ 635400.500000, 179179.500000 ], [ 635595.900000, 179178.600000 ], [ 635627.200000, 179169.700000 ], [ 635718.800000, 179117.400000 ], [ 635760.600000, 179113.100000 ], [ 635784.600000, 179118.600000 ], [ 635871.600000, 179173.000000 ], [ 635905.100000, 179221.800000 ], [ 635937.100000, 179285.500000 ], [ 635966.900000, 179308.800000 ], [ 636002.100000, 179318.800000 ], [ 636105.200000, 179317.000000 ], [ 636146.100000, 179324.100000 ], [ 636169.900000, 179335.000000 ], [ 636219.200000, 179378.600000 ], [ 636293.600000, 179483.300000 ], [ 636334.900000, 179506.500000 ], [ 636463.400000, 179556.000000 ], [ 636464.100000, 179565.800000 ], [ 636454.100000, 179578.500000 ], [ 636382.400000, 179629.200000 ], [ 636361.100000, 179657.100000 ], [ 636351.100000, 179717.900000 ], [ 636325.100000, 179767.800000 ], [ 636323.700000, 179791.000000 ], [ 636334.800000, 179836.300000 ], [ 636321.800000, 179871.600000 ], [ 636304.300000, 179880.400000 ], [ 636237.600000, 179879.500000 ], [ 636231.300000, 179894.500000 ], [ 636251.900000, 179912.800000 ], [ 636326.300000, 179955.400000 ], [ 636394.200000, 179982.700000 ], [ 636488.300000, 180032.000000 ], [ 636500.800000, 180040.400000 ], [ 636505.600000, 180061.900000 ], [ 636498.100000, 180069.300000 ], [ 636467.600000, 180073.800000 ], [ 636336.300000, 180072.400000 ], [ 636256.400000, 180091.000000 ], [ 636176.700000, 180082.700000 ], [ 636122.100000, 180067.300000 ], [ 636110.600000, 180076.100000 ], [ 636114.600000, 180089.600000 ], [ 636178.100000, 180135.700000 ], [ 636284.800000, 180246.900000 ], [ 636352.900000, 180276.100000 ], [ 636377.200000, 180293.300000 ], [ 636385.000000, 180316.700000 ], [ 636369.300000, 180367.400000 ], [ 636377.900000, 180383.300000 ], [ 636506.100000, 180428.000000 ], [ 636525.700000, 180468.800000 ], [ 636551.400000, 180487.100000 ], [ 636621.900000, 180512.600000 ], [ 636662.600000, 180513.700000 ], [ 636706.900000, 180528.800000 ], [ 636786.100000, 180569.400000 ], [ 636802.346000, 180601.078000 ], [ 636826.900000, 180599.000000 ], [ 636864.400000, 180612.300000 ], [ 637010.500000, 180688.800000 ], [ 637119.100000, 180726.400000 ], [ 637267.100000, 180803.300000 ], [ 637372.100000, 180877.100000 ], [ 637489.400000, 180974.600000 ], [ 637570.000000, 181073.500000 ], [ 637636.600000, 181178.200000 ], [ 637723.200000, 181281.900000 ], [ 637767.100000, 181347.000000 ], [ 637864.300000, 181432.000000 ], [ 637923.700000, 181521.600000 ], [ 637927.000000, 181541.800000 ], [ 637914.600000, 181572.100000 ], [ 637915.600000, 181585.300000 ], [ 637922.300000, 181594.600000 ], [ 637946.800000, 181603.500000 ], [ 637988.800000, 181648.100000 ], [ 638091.100000, 181674.200000 ], [ 638360.900000, 181851.200000 ], [ 638449.100000, 181923.500000 ], [ 638523.600000, 181938.200000 ], [ 638584.200000, 181966.700000 ], [ 638669.300000, 182029.200000 ], [ 638712.200000, 182039.000000 ], [ 638759.100000, 182073.800000 ], [ 638887.500000, 182142.700000 ], [ 639011.200000, 182232.000000 ], [ 639056.700000, 182239.400000 ], [ 639082.600000, 182256.700000 ], [ 639194.200000, 182446.200000 ], [ 639176.600000, 182537.200000 ], [ 639178.400000, 182618.300000 ], [ 639191.400000, 182691.800000 ], [ 639209.200000, 182706.000000 ], [ 639261.400000, 182721.000000 ], [ 639277.500000, 182731.600000 ], [ 639285.400000, 182749.600000 ], [ 639286.100000, 182797.000000 ], [ 639268.000000, 182895.200000 ], [ 639282.700000, 182873.000000 ], [ 639294.500000, 182868.200000 ], [ 639335.200000, 182897.000000 ], [ 639366.500000, 182900.000000 ], [ 639384.400000, 182872.000000 ], [ 639383.400000, 182848.100000 ], [ 639399.700000, 182756.500000 ], [ 639395.200000, 182742.700000 ], [ 639372.600000, 182719.600000 ], [ 639338.500000, 182645.200000 ], [ 639357.200000, 182646.500000 ], [ 639414.200000, 182679.900000 ], [ 639484.300000, 182697.500000 ], [ 639513.900000, 182718.200000 ], [ 639527.900000, 182743.800000 ], [ 639608.900000, 182987.200000 ], [ 639629.000000, 183008.900000 ], [ 639671.600000, 183027.500000 ], [ 639705.400000, 183058.300000 ], [ 639734.900000, 183074.800000 ], [ 639735.500000, 183089.100000 ], [ 639724.300000, 183107.300000 ], [ 639641.900000, 183095.800000 ], [ 639534.500000, 183070.100000 ], [ 639517.600000, 183079.900000 ], [ 639501.400000, 183103.400000 ], [ 639499.700000, 183142.500000 ], [ 639460.900000, 183162.300000 ], [ 639435.400000, 183190.700000 ], [ 639424.000000, 183225.600000 ], [ 639425.400000, 183275.300000 ], [ 639438.600000, 183324.500000 ], [ 639428.700000, 183368.000000 ], [ 639463.700000, 183447.800000 ], [ 639471.900000, 183464.300000 ], [ 639519.000000, 183507.700000 ], [ 639552.400000, 183550.000000 ], [ 639595.600000, 183583.200000 ], [ 639745.600000, 183645.400000 ], [ 639835.900000, 183670.500000 ], [ 639872.900000, 183674.900000 ], [ 639968.200000, 183714.700000 ], [ 640006.900000, 183720.700000 ], [ 640037.900000, 183733.000000 ], [ 640091.700000, 183731.800000 ], [ 640118.200000, 183739.900000 ], [ 640141.400000, 183710.000000 ], [ 640180.200000, 183694.800000 ], [ 640341.500000, 183690.200000 ], [ 640398.800000, 183662.200000 ], [ 640431.100000, 183632.300000 ], [ 640493.800000, 183662.600000 ], [ 640558.400000, 183684.400000 ], [ 640619.400000, 183726.200000 ], [ 640669.200000, 183738.300000 ], [ 640692.500000, 183757.100000 ], [ 640716.600000, 183809.400000 ], [ 640753.900000, 183849.700000 ], [ 640809.600000, 183882.700000 ], [ 640804.900000, 183895.200000 ], [ 640792.100000, 183896.700000 ], [ 640753.100000, 183880.200000 ], [ 640697.500000, 183875.300000 ], [ 640595.400000, 183849.800000 ], [ 640541.100000, 183845.900000 ], [ 640502.600000, 183827.900000 ], [ 640482.800000, 183828.600000 ], [ 640479.900000, 183845.200000 ], [ 640545.600000, 183875.800000 ], [ 640616.100000, 183898.900000 ], [ 640742.400000, 184008.700000 ], [ 640763.900000, 184032.100000 ], [ 640763.400000, 184072.100000 ], [ 640780.800000, 184095.900000 ], [ 640793.400000, 184137.900000 ], [ 640852.800000, 184191.700000 ], [ 640873.700000, 184228.100000 ], [ 640959.900000, 184286.900000 ], [ 641001.900000, 184335.900000 ], [ 641060.100000, 184376.200000 ], [ 641087.000000, 184408.600000 ], [ 641362.100000, 184522.100000 ], [ 641387.100000, 184540.900000 ], [ 641409.100000, 184573.200000 ], [ 641450.600000, 184560.400000 ], [ 641471.900000, 184562.700000 ], [ 641727.700000, 184660.700000 ], [ 641920.400000, 184807.400000 ], [ 641987.100000, 184822.700000 ], [ 642038.100000, 184875.600000 ], [ 642116.800000, 184925.300000 ], [ 642198.900000, 184995.300000 ], [ 642280.700000, 185037.500000 ], [ 642347.800000, 185134.400000 ], [ 642399.800000, 185197.500000 ], [ 642464.800000, 185246.300000 ], [ 642476.400000, 185247.300000 ], [ 642502.500000, 185225.800000 ], [ 642516.500000, 185221.600000 ], [ 642532.700000, 185229.100000 ], [ 642591.100000, 185295.300000 ], [ 642613.026000, 185331.933000 ], [ 642597.900000, 185273.800000 ], [ 642571.600000, 185242.800000 ], [ 642579.700000, 185209.500000 ], [ 642580.500000, 185163.200000 ], [ 642566.900000, 185025.200000 ], [ 642547.300000, 184941.600000 ], [ 642509.100000, 184873.600000 ], [ 642524.000000, 184856.700000 ], [ 642539.900000, 184858.900000 ], [ 642589.300000, 184880.700000 ], [ 642698.700000, 184912.700000 ], [ 642729.900000, 184936.200000 ], [ 642774.100000, 184985.600000 ], [ 642817.900000, 184977.600000 ], [ 642873.500000, 184723.600000 ], [ 642877.200000, 184672.000000 ], [ 642889.500000, 184667.400000 ], [ 642948.800000, 184666.100000 ], [ 642968.000000, 184684.300000 ], [ 643003.300000, 184739.800000 ], [ 643032.600000, 184765.600000 ], [ 643087.400000, 184787.000000 ], [ 643129.600000, 184841.500000 ], [ 643175.100000, 184870.500000 ], [ 643244.500000, 184935.700000 ], [ 643290.100000, 184970.300000 ], [ 643399.400000, 185032.500000 ], [ 643446.800000, 185034.600000 ], [ 643466.000000, 185027.600000 ], [ 643478.700000, 184999.400000 ], [ 643477.900000, 184972.400000 ], [ 643490.200000, 184963.900000 ], [ 643499.900000, 184964.100000 ], [ 643569.900000, 185028.600000 ], [ 643599.200000, 185030.900000 ], [ 643619.500000, 185017.100000 ], [ 643665.500000, 184957.600000 ], [ 643711.849000, 184923.851000 ], [ 643719.200000, 184838.300000 ], [ 643740.100000, 184773.900000 ], [ 643737.600000, 184728.500000 ], [ 643711.100000, 184664.000000 ], [ 643705.000000, 184632.500000 ], [ 643669.400000, 184587.400000 ], [ 643661.900000, 184523.700000 ], [ 643587.800000, 184425.300000 ], [ 643575.900000, 184400.200000 ], [ 643571.500000, 184354.800000 ], [ 643616.000000, 184288.300000 ], [ 643675.200000, 184287.700000 ], [ 643687.200000, 184279.900000 ], [ 643672.700000, 184162.200000 ], [ 643672.500000, 184073.500000 ], [ 643676.400000, 184046.000000 ], [ 643701.200000, 183996.000000 ], [ 643768.100000, 183620.400000 ], [ 643776.700000, 183560.700000 ], [ 643774.100000, 183513.100000 ], [ 643841.700000, 183387.200000 ], [ 643832.100000, 183340.500000 ], [ 643834.400000, 183320.100000 ], [ 643861.900000, 183269.100000 ], [ 643864.300000, 183183.200000 ], [ 643843.500000, 183114.400000 ], [ 643859.200000, 183093.700000 ], [ 643912.700000, 183074.300000 ], [ 643944.700000, 183052.500000 ], [ 644021.400000, 183029.000000 ], [ 644028.400000, 183016.000000 ], [ 644022.700000, 182947.000000 ], [ 644035.200000, 182941.000000 ], [ 644071.700000, 182973.300000 ], [ 644053.100000, 182926.000000 ], [ 644056.800000, 182901.700000 ], [ 644078.400000, 182869.500000 ], [ 644098.400000, 182855.300000 ], [ 644110.700000, 182861.000000 ], [ 644115.900000, 182887.000000 ], [ 644142.800000, 182926.600000 ], [ 644197.900000, 182934.300000 ], [ 644304.700000, 183000.800000 ], [ 644324.700000, 182997.000000 ], [ 644371.200000, 182966.700000 ], [ 644455.200000, 182952.800000 ], [ 644509.200000, 183028.600000 ], [ 644830.800000, 183268.400000 ], [ 644902.400000, 183278.800000 ], [ 644929.200000, 183290.000000 ], [ 645089.300000, 183322.000000 ], [ 645139.200000, 183353.400000 ], [ 645173.100000, 183384.800000 ], [ 645498.900000, 183601.000000 ], [ 645507.500000, 183601.700000 ], [ 645566.000000, 183564.900000 ], [ 645579.900000, 183562.900000 ], [ 645585.300000, 183572.500000 ], [ 645576.200000, 183641.200000 ], [ 645579.978000, 183653.995000 ], [ 645663.000000, 183773.300000 ], [ 645654.000000, 183985.700000 ], [ 645665.500000, 184009.800000 ], [ 645747.600000, 184087.800000 ], [ 645757.400000, 184104.900000 ], [ 645763.600000, 184149.400000 ], [ 645773.800000, 184144.000000 ], [ 645813.900000, 184092.200000 ], [ 645852.200000, 184068.400000 ], [ 645915.000000, 184045.500000 ], [ 645934.200000, 184054.000000 ], [ 645957.700000, 184095.000000 ], [ 645973.000000, 184109.400000 ], [ 646073.200000, 184154.500000 ], [ 646104.200000, 184160.200000 ], [ 646148.500000, 184154.400000 ], [ 646256.000000, 184154.200000 ], [ 646265.500000, 184143.700000 ], [ 646276.000000, 184106.500000 ], [ 646297.500000, 184093.500000 ], [ 646315.700000, 184098.700000 ], [ 646316.000000, 184116.500000 ], [ 646297.500000, 184147.200000 ], [ 646300.300000, 184240.800000 ], [ 646279.700000, 184273.000000 ], [ 646265.000000, 184279.700000 ], [ 646237.200000, 184279.900000 ], [ 646182.200000, 184366.000000 ], [ 646194.800000, 184439.600000 ], [ 646188.800000, 184456.100000 ], [ 646152.700000, 184497.600000 ], [ 646192.000000, 184491.700000 ], [ 646264.200000, 184507.000000 ], [ 646297.000000, 184491.200000 ], [ 646311.700000, 184492.500000 ], [ 646346.100000, 184512.900000 ], [ 646349.700000, 184549.200000 ], [ 646360.000000, 184557.200000 ], [ 646382.400000, 184540.500000 ], [ 646405.200000, 184499.700000 ], [ 646437.500000, 184483.500000 ], [ 646453.500000, 184462.700000 ], [ 646469.700000, 184460.500000 ], [ 646507.500000, 184475.700000 ], [ 646505.000000, 184494.200000 ], [ 646474.200000, 184491.200000 ], [ 646461.000000, 184515.900000 ], [ 646454.500000, 184545.900000 ], [ 646448.700000, 184691.700000 ], [ 646434.500000, 184733.700000 ], [ 646435.100000, 184751.900000 ] ], [ [ 559360.931183, 143054.964848 ], [ 559364.091000, 143080.214000 ], [ 559354.373000, 143097.944000 ], [ 559405.000000, 143124.900000 ], [ 559365.500000, 143179.000000 ], [ 559313.200000, 143286.900000 ], [ 559287.500000, 143325.900000 ], [ 559304.500000, 143340.700000 ], [ 559331.000000, 143328.300000 ], [ 559346.600000, 143297.100000 ], [ 559368.600000, 143272.900000 ], [ 559460.700000, 143234.200000 ], [ 559478.600000, 143219.200000 ], [ 559526.200000, 143161.300000 ], [ 559533.500000, 143107.700000 ], [ 559550.600000, 143076.600000 ], [ 559630.600000, 143013.600000 ], [ 559741.600000, 142871.000000 ], [ 559762.800000, 142864.300000 ], [ 559770.400000, 142870.300000 ], [ 559769.000000, 142944.400000 ], [ 559742.600000, 143007.400000 ], [ 559712.500000, 143110.400000 ], [ 559720.800000, 143137.900000 ], [ 559753.300000, 143174.400000 ], [ 559753.600000, 143184.900000 ], [ 559734.800000, 143208.400000 ], [ 559733.600000, 143228.900000 ], [ 559788.190000, 143302.246000 ], [ 559795.537000, 143322.711000 ], [ 559795.100000, 143351.200000 ], [ 559749.000000, 143415.800000 ], [ 559725.100000, 143482.000000 ], [ 559648.300000, 143591.500000 ], [ 559625.900000, 143613.200000 ], [ 559525.600000, 143681.100000 ], [ 559521.800000, 143700.800000 ], [ 559601.900000, 143667.000000 ], [ 559663.600000, 143667.700000 ], [ 559685.500000, 143661.400000 ], [ 559708.200000, 143650.700000 ], [ 559761.100000, 143597.900000 ], [ 559777.400000, 143591.300000 ], [ 559823.800000, 143589.600000 ], [ 559841.200000, 143579.500000 ], [ 559895.700000, 143503.800000 ], [ 559928.600000, 143488.000000 ], [ 560043.600000, 143462.700000 ], [ 560171.600000, 143342.000000 ], [ 560268.500000, 143120.000000 ], [ 560302.793000, 143088.091000 ], [ 560379.471000, 143111.946000 ], [ 560441.192000, 143151.828000 ], [ 560490.600000, 143139.500000 ], [ 560512.400000, 143141.200000 ], [ 560558.400000, 143156.500000 ], [ 560574.800000, 143168.500000 ], [ 560597.500000, 143200.000000 ], [ 560600.700000, 143230.100000 ], [ 560663.400000, 143349.400000 ], [ 560679.800000, 143402.000000 ], [ 560734.500000, 143500.100000 ], [ 560771.300000, 143533.900000 ], [ 560791.200000, 143542.700000 ], [ 560854.900000, 143539.900000 ], [ 560880.000000, 143545.500000 ], [ 560927.900000, 143583.400000 ], [ 561003.200000, 143615.200000 ], [ 561056.300000, 143578.000000 ], [ 561118.500000, 143599.500000 ], [ 561186.400000, 143636.500000 ], [ 561213.000000, 143690.200000 ], [ 561256.700000, 143727.800000 ], [ 561287.400000, 143697.300000 ], [ 561303.200000, 143694.800000 ], [ 561378.400000, 143710.800000 ], [ 561421.900000, 143704.000000 ], [ 561423.900000, 143692.500000 ], [ 561399.000000, 143656.600000 ], [ 561371.700000, 143588.200000 ], [ 561387.900000, 143473.500000 ], [ 561385.900000, 143398.200000 ], [ 561412.400000, 143362.500000 ], [ 561404.900000, 143324.700000 ], [ 561382.500000, 143312.800000 ], [ 561210.500000, 143323.000000 ], [ 561172.500000, 143315.900000 ], [ 561162.700000, 143302.800000 ], [ 561170.300000, 143275.000000 ], [ 561166.100000, 143260.500000 ], [ 561119.000000, 143226.100000 ], [ 561084.600000, 143217.200000 ], [ 561072.600000, 143206.700000 ], [ 561046.700000, 143160.800000 ], [ 561029.000000, 143070.900000 ], [ 561052.300000, 143015.300000 ], [ 561046.500000, 142995.000000 ], [ 561029.500000, 142989.200000 ], [ 561005.700000, 142994.600000 ], [ 560953.500000, 142991.300000 ], [ 560932.800000, 142982.200000 ], [ 560872.800000, 142938.500000 ], [ 560863.200000, 142904.000000 ], [ 560837.800000, 142872.200000 ], [ 560794.300000, 142866.000000 ], [ 560756.500000, 142832.700000 ], [ 560708.800000, 142818.700000 ], [ 560592.600000, 142656.100000 ], [ 560559.300000, 142629.000000 ], [ 560548.800000, 142592.300000 ], [ 560563.700000, 142514.100000 ], [ 560550.700000, 142468.400000 ], [ 560607.200000, 142456.000000 ], [ 560620.700000, 142461.700000 ], [ 560632.200000, 142476.700000 ], [ 560682.500000, 142546.700000 ], [ 560703.200000, 142598.000000 ], [ 560712.100000, 142601.400000 ], [ 560717.000000, 142585.200000 ], [ 560698.400000, 142505.600000 ], [ 560700.800000, 142456.900000 ], [ 560713.900000, 142425.300000 ], [ 560807.300000, 142326.700000 ], [ 560824.100000, 142318.400000 ], [ 560828.200000, 142328.500000 ], [ 560794.200000, 142374.000000 ], [ 560787.200000, 142399.200000 ], [ 560790.700000, 142442.400000 ], [ 560875.500000, 142554.100000 ], [ 560913.400000, 142610.500000 ], [ 560925.500000, 142646.800000 ], [ 560939.000000, 142656.200000 ], [ 560944.700000, 142650.500000 ], [ 560942.500000, 142633.700000 ], [ 560911.400000, 142488.200000 ], [ 560915.300000, 142472.000000 ], [ 560996.100000, 142357.100000 ], [ 561079.400000, 142271.600000 ], [ 561183.300000, 142145.100000 ], [ 561196.100000, 142146.300000 ], [ 561198.100000, 142155.600000 ], [ 561158.200000, 142261.300000 ], [ 561161.500000, 142276.500000 ], [ 561174.000000, 142272.500000 ], [ 561345.500000, 142106.600000 ], [ 561356.800000, 142105.300000 ], [ 561360.700000, 142118.700000 ], [ 561332.300000, 142145.000000 ], [ 561309.600000, 142180.300000 ], [ 561253.500000, 142287.000000 ], [ 561230.700000, 142365.200000 ], [ 561221.500000, 142377.000000 ], [ 561156.700000, 142416.500000 ], [ 561128.500000, 142445.500000 ], [ 561132.200000, 142455.700000 ], [ 561144.700000, 142455.200000 ], [ 561175.700000, 142425.200000 ], [ 561259.000000, 142408.000000 ], [ 561295.700000, 142383.500000 ], [ 561326.500000, 142300.700000 ], [ 561345.600000, 142274.900000 ], [ 561428.500000, 142210.700000 ], [ 561431.000000, 142229.700000 ], [ 561392.000000, 142279.900000 ], [ 561357.555000, 142366.548000 ], [ 561370.031000, 142429.187000 ], [ 561336.066000, 142455.313000 ], [ 561324.145000, 142479.300000 ], [ 561331.600000, 142538.200000 ], [ 561387.300000, 142626.100000 ], [ 561395.900000, 142630.200000 ], [ 561403.700000, 142616.700000 ], [ 561374.800000, 142544.300000 ], [ 561379.000000, 142519.100000 ], [ 561392.200000, 142497.500000 ], [ 561412.500000, 142480.600000 ], [ 561432.800000, 142476.900000 ], [ 561525.100000, 142488.500000 ], [ 561536.900000, 142515.400000 ], [ 561525.400000, 142599.700000 ], [ 561536.000000, 142614.700000 ], [ 561562.400000, 142611.900000 ], [ 561576.700000, 142584.200000 ], [ 561590.200000, 142575.600000 ], [ 561610.700000, 142610.500000 ], [ 561621.800000, 142611.900000 ], [ 561621.900000, 142628.900000 ], [ 561702.100000, 142647.700000 ], [ 561819.500000, 142659.700000 ], [ 561898.400000, 142685.400000 ], [ 561944.800000, 142690.700000 ], [ 561996.400000, 142713.200000 ], [ 562128.100000, 142734.000000 ], [ 562164.600000, 142755.700000 ], [ 562199.300000, 142789.100000 ], [ 562241.700000, 142868.700000 ], [ 562253.400000, 142870.500000 ], [ 562263.700000, 142883.800000 ], [ 562278.600000, 142890.100000 ], [ 562338.200000, 142896.400000 ], [ 562398.900000, 142914.000000 ], [ 562462.900000, 142900.100000 ], [ 562477.900000, 142905.400000 ], [ 562515.900000, 142943.300000 ], [ 562595.000000, 142919.700000 ], [ 562641.900000, 142927.900000 ], [ 562681.900000, 142914.400000 ], [ 562722.000000, 142930.500000 ], [ 562757.800000, 142930.100000 ], [ 562787.000000, 142943.400000 ], [ 562803.600000, 142972.100000 ], [ 562852.800000, 142981.400000 ], [ 562868.200000, 143024.100000 ], [ 562918.200000, 143102.400000 ], [ 562920.200000, 143127.300000 ], [ 562938.300000, 143145.700000 ], [ 562942.600000, 143162.400000 ], [ 562933.500000, 143172.500000 ], [ 562898.700000, 143182.700000 ], [ 562882.200000, 143201.400000 ], [ 562841.400000, 143206.700000 ], [ 562742.100000, 143282.700000 ], [ 562719.400000, 143375.300000 ], [ 562700.300000, 143417.900000 ], [ 562690.400000, 143485.700000 ], [ 562618.700000, 143642.900000 ], [ 562619.000000, 143671.300000 ], [ 562626.200000, 143686.700000 ], [ 562663.300000, 143713.900000 ], [ 562752.500000, 143726.300000 ], [ 562805.200000, 143737.600000 ], [ 562812.700000, 143744.300000 ], [ 562841.200000, 143852.500000 ], [ 562857.000000, 143887.100000 ], [ 562913.100000, 143962.500000 ], [ 562939.700000, 143977.000000 ], [ 563002.200000, 143968.000000 ], [ 563056.900000, 143982.100000 ], [ 563076.600000, 143977.400000 ], [ 563104.500000, 143964.000000 ], [ 563170.700000, 143911.800000 ], [ 563196.300000, 143898.500000 ], [ 563266.200000, 143897.400000 ], [ 563340.000000, 143881.200000 ], [ 563418.000000, 143876.300000 ], [ 563466.200000, 143892.600000 ], [ 563482.200000, 143889.000000 ], [ 563501.700000, 143875.700000 ], [ 563544.800000, 143806.700000 ], [ 563561.200000, 143793.900000 ], [ 563584.200000, 143790.300000 ], [ 563599.600000, 143812.800000 ], [ 563608.600000, 143857.200000 ], [ 563603.300000, 143939.600000 ], [ 563669.800000, 143974.100000 ], [ 563683.200000, 144011.400000 ], [ 563690.700000, 144094.600000 ], [ 563716.100000, 144124.800000 ], [ 563695.200000, 144181.000000 ], [ 563689.700000, 144265.200000 ], [ 563695.100000, 144331.800000 ], [ 563724.200000, 144363.500000 ], [ 563749.300000, 144374.600000 ], [ 563769.800000, 144369.600000 ], [ 563795.200000, 144349.500000 ], [ 563812.300000, 144344.000000 ], [ 563844.500000, 144351.200000 ], [ 563866.900000, 144366.100000 ], [ 563881.800000, 144386.000000 ], [ 563876.600000, 144422.100000 ], [ 563882.200000, 144444.900000 ], [ 563909.400000, 144463.100000 ], [ 563948.300000, 144506.500000 ], [ 563936.600000, 144582.500000 ], [ 563906.700000, 144648.000000 ], [ 563895.400000, 144694.900000 ], [ 563908.400000, 144720.000000 ], [ 563953.300000, 144721.800000 ], [ 563963.600000, 144735.500000 ], [ 563933.600000, 144853.900000 ], [ 563934.000000, 144871.700000 ], [ 563942.700000, 144889.000000 ], [ 563991.000000, 144921.300000 ], [ 564019.600000, 144953.000000 ], [ 564055.100000, 145019.300000 ], [ 564063.300000, 145027.300000 ], [ 564095.800000, 145032.500000 ], [ 564114.800000, 145050.100000 ], [ 564122.900000, 145118.000000 ], [ 564107.800000, 145149.800000 ], [ 564142.800000, 145189.700000 ], [ 564144.500000, 145203.400000 ], [ 564140.100000, 145238.800000 ], [ 564117.300000, 145263.600000 ], [ 564121.800000, 145276.600000 ], [ 564129.700000, 145279.900000 ], [ 564154.800000, 145249.500000 ], [ 564173.100000, 145212.600000 ], [ 564173.100000, 145191.800000 ], [ 564158.800000, 145155.600000 ], [ 564178.100000, 145120.800000 ], [ 564178.800000, 145069.900000 ], [ 564195.300000, 145063.400000 ], [ 564200.800000, 145052.800000 ], [ 564198.500000, 145029.300000 ], [ 564173.600000, 145008.900000 ], [ 564133.600000, 144907.800000 ], [ 564081.200000, 144833.100000 ], [ 564103.200000, 144754.400000 ], [ 564125.300000, 144731.700000 ], [ 564130.100000, 144700.400000 ], [ 564158.300000, 144658.900000 ], [ 564155.800000, 144642.000000 ], [ 564128.600000, 144626.900000 ], [ 564126.300000, 144619.900000 ], [ 564152.600000, 144553.100000 ], [ 564163.100000, 144557.100000 ], [ 564150.800000, 144609.600000 ], [ 564156.100000, 144616.900000 ], [ 564200.300000, 144620.700000 ], [ 564215.600000, 144643.100000 ], [ 564192.700000, 144803.000000 ], [ 564208.900000, 144824.300000 ], [ 564288.000000, 144879.100000 ], [ 564326.600000, 144923.900000 ], [ 564358.100000, 144941.600000 ], [ 564383.500000, 144971.900000 ], [ 564397.500000, 144999.900000 ], [ 564403.300000, 145020.000000 ], [ 564394.300000, 145041.600000 ], [ 564403.900000, 145071.500000 ], [ 564394.200000, 145117.000000 ], [ 564412.800000, 145173.500000 ], [ 564437.700000, 145195.800000 ], [ 564440.300000, 145222.800000 ], [ 564450.900000, 145243.700000 ], [ 564436.900000, 145266.300000 ], [ 564422.900000, 145323.800000 ], [ 564437.200000, 145343.500000 ], [ 564427.900000, 145414.500000 ], [ 564436.800000, 145433.400000 ], [ 564424.800000, 145467.500000 ], [ 564438.500000, 145490.600000 ], [ 564425.400000, 145526.800000 ], [ 564424.700000, 145573.300000 ], [ 564431.400000, 145598.900000 ], [ 564423.300000, 145640.400000 ], [ 564401.500000, 145659.100000 ], [ 564383.600000, 145686.900000 ], [ 564383.100000, 145699.000000 ], [ 564354.800000, 145749.400000 ], [ 564318.349000, 145932.965000 ], [ 564313.700000, 146051.100000 ], [ 564274.200000, 146197.300000 ], [ 564276.500000, 146221.800000 ], [ 564253.800000, 146259.400000 ], [ 564275.500000, 146370.900000 ], [ 564265.600000, 146384.500000 ], [ 564231.800000, 146389.800000 ], [ 564223.800000, 146407.800000 ], [ 564226.300000, 146433.000000 ], [ 564205.400000, 146447.400000 ], [ 564197.900000, 146461.400000 ], [ 564196.000000, 146546.300000 ], [ 564211.200000, 146584.600000 ], [ 564224.200000, 146663.800000 ], [ 564221.500000, 146687.900000 ], [ 564182.300000, 146718.700000 ], [ 564152.500000, 146754.400000 ], [ 564160.400000, 146799.200000 ], [ 564152.500000, 146827.400000 ], [ 564118.900000, 146879.000000 ], [ 564089.100000, 146904.400000 ], [ 564077.000000, 146910.300000 ], [ 564044.300000, 146893.600000 ], [ 564035.700000, 146895.500000 ], [ 563964.900000, 146941.900000 ], [ 563941.600000, 146947.100000 ], [ 563906.200000, 146931.900000 ], [ 563888.400000, 146911.000000 ], [ 563861.700000, 146857.900000 ], [ 563845.900000, 146843.900000 ], [ 563810.800000, 146870.100000 ], [ 563797.900000, 146896.200000 ], [ 563812.400000, 146927.600000 ], [ 563865.100000, 146982.600000 ], [ 563871.000000, 147014.500000 ], [ 563817.100000, 147215.200000 ], [ 563800.300000, 147307.100000 ], [ 563798.955000, 147350.904000 ], [ 563792.800000, 147359.600000 ], [ 563816.100000, 147367.800000 ], [ 563863.800000, 147339.800000 ], [ 563887.300000, 147360.800000 ], [ 563911.041000, 147423.063000 ], [ 563952.391000, 147482.260000 ], [ 563970.800000, 147489.300000 ], [ 564022.300000, 147585.500000 ], [ 564025.100000, 147642.172000 ], [ 564039.700000, 147668.000000 ], [ 564047.700000, 147711.400000 ], [ 564038.000000, 147735.400000 ], [ 564059.000000, 147753.100000 ], [ 564068.600000, 147778.200000 ], [ 564061.600000, 147794.800000 ], [ 563985.300000, 147812.000000 ], [ 563952.600000, 147804.900000 ], [ 563926.100000, 147786.900000 ], [ 563920.100000, 147804.400000 ], [ 563928.000000, 147860.900000 ], [ 563938.700000, 147886.900000 ], [ 563957.800000, 147916.500000 ], [ 563998.200000, 147953.000000 ], [ 564045.700000, 148091.300000 ], [ 564027.800000, 148246.300000 ], [ 564039.900000, 148347.900000 ], [ 564010.500000, 148402.000000 ], [ 564012.500000, 148436.600000 ], [ 563999.900000, 148511.400000 ], [ 563976.200000, 148603.500000 ], [ 563983.700000, 148636.300000 ], [ 563981.700000, 148797.300000 ], [ 563997.700000, 148807.000000 ], [ 564011.200000, 148805.800000 ], [ 564039.000000, 148734.600000 ], [ 564075.700000, 148682.400000 ], [ 564118.000000, 148705.400000 ], [ 564169.000000, 148698.900000 ], [ 564203.200000, 148762.600000 ], [ 564188.700000, 148833.900000 ], [ 564129.200000, 148888.500000 ], [ 564117.200000, 148940.600000 ], [ 564103.700000, 148949.300000 ], [ 564029.000000, 148947.900000 ], [ 563923.400000, 149008.800000 ], [ 563902.200000, 149036.500000 ], [ 563935.100000, 149029.900000 ], [ 563971.800000, 148997.200000 ], [ 564001.300000, 149000.200000 ], [ 564019.100000, 149017.900000 ], [ 564024.600000, 149051.400000 ], [ 564017.100000, 149080.900000 ], [ 563986.600000, 149115.700000 ], [ 563990.300000, 149131.500000 ], [ 564019.800000, 149157.200000 ], [ 564124.400000, 149196.000000 ], [ 564129.800000, 149220.700000 ], [ 564110.600000, 149250.200000 ], [ 564035.100000, 149310.400000 ], [ 563964.800000, 149342.200000 ], [ 563854.100000, 149424.900000 ], [ 563760.300000, 149536.700000 ], [ 563755.300000, 149596.500000 ], [ 563740.200000, 149614.600000 ], [ 563671.500000, 149680.000000 ], [ 563643.300000, 149693.800000 ], [ 563613.400000, 149720.600000 ], [ 563451.900000, 149874.000000 ], [ 563254.200000, 149986.500000 ], [ 563231.300000, 149988.000000 ], [ 563184.900000, 150004.500000 ], [ 563129.600000, 150071.800000 ], [ 563115.600000, 150118.100000 ], [ 563104.100000, 150118.800000 ], [ 563066.100000, 150099.900000 ], [ 563033.800000, 150103.200000 ], [ 562971.900000, 150125.300000 ], [ 562932.000000, 150176.500000 ], [ 562879.200000, 150279.800000 ], [ 562860.000000, 150290.300000 ], [ 562830.400000, 150338.300000 ], [ 562806.000000, 150348.400000 ], [ 562811.200000, 150411.700000 ], [ 562807.800000, 150450.300000 ], [ 562822.500000, 150488.700000 ], [ 562825.700000, 150529.800000 ], [ 562779.600000, 150582.600000 ], [ 562776.900000, 150621.200000 ], [ 562745.400000, 150684.200000 ], [ 562727.400000, 150696.500000 ], [ 562675.800000, 150776.100000 ], [ 562656.700000, 150778.600000 ], [ 562578.100000, 150754.900000 ], [ 562557.100000, 150771.400000 ], [ 562517.600000, 150874.000000 ], [ 562472.600000, 150923.200000 ], [ 562459.800000, 150946.000000 ], [ 562479.600000, 151080.700000 ], [ 562493.100000, 151117.700000 ], [ 562536.200000, 151176.600000 ], [ 562554.400000, 151220.400000 ], [ 562558.700000, 151281.900000 ], [ 562544.100000, 151354.700000 ], [ 562559.519000, 151389.620000 ], [ 562700.775000, 151510.989000 ], [ 562791.459000, 151554.461000 ], [ 562795.201000, 151587.242000 ], [ 562778.800000, 151799.100000 ], [ 562760.994000, 151835.777000 ], [ 562709.683000, 151877.110000 ], [ 562676.723000, 151916.484000 ], [ 562633.000000, 151952.400000 ], [ 562615.300000, 151991.500000 ], [ 562582.700000, 152026.300000 ], [ 562553.000000, 152084.300000 ], [ 562549.338000, 152105.334000 ], [ 562557.932000, 152138.554000 ], [ 562550.187000, 152179.599000 ], [ 562499.849000, 152250.072000 ], [ 562344.962000, 152421.222000 ], [ 562320.449000, 152460.878000 ], [ 562441.000000, 152418.600000 ], [ 562612.100000, 152334.800000 ], [ 562638.700000, 152314.800000 ], [ 562702.800000, 152241.500000 ], [ 562823.800000, 152171.300000 ], [ 562918.600000, 152130.600000 ], [ 562979.200000, 152094.500000 ], [ 562994.700000, 152090.300000 ], [ 563055.000000, 152104.000000 ], [ 563083.900000, 152094.000000 ], [ 563108.000000, 152070.600000 ], [ 563123.800000, 152064.000000 ], [ 563202.400000, 152061.800000 ], [ 563295.200000, 152047.100000 ], [ 563407.700000, 152055.900000 ], [ 563426.100000, 152047.500000 ], [ 563455.300000, 152008.000000 ], [ 563502.100000, 152005.700000 ], [ 563507.700000, 151996.900000 ], [ 563557.200000, 151982.600000 ], [ 563605.700000, 151990.900000 ], [ 563672.900000, 151976.900000 ], [ 563736.700000, 151997.700000 ], [ 563834.700000, 151981.900000 ], [ 563875.400000, 151999.900000 ], [ 563902.700000, 151998.400000 ], [ 563920.300000, 151988.700000 ], [ 563938.200000, 151958.100000 ], [ 563930.500000, 151877.500000 ], [ 564019.400000, 151799.600000 ], [ 564035.900000, 151801.100000 ], [ 564143.200000, 151897.100000 ], [ 564158.400000, 151894.900000 ], [ 564220.200000, 151831.100000 ], [ 564233.700000, 151829.100000 ], [ 564259.100000, 151843.500000 ], [ 564344.600000, 151927.500000 ], [ 564360.100000, 151934.400000 ], [ 564388.100000, 151921.600000 ], [ 564437.100000, 151843.100000 ], [ 564479.000000, 151818.000000 ], [ 564513.500000, 151809.900000 ], [ 564542.600000, 151809.700000 ], [ 564644.600000, 151844.400000 ], [ 564686.800000, 151844.900000 ], [ 564703.100000, 151841.900000 ], [ 564731.800000, 151813.100000 ], [ 564764.200000, 151816.100000 ], [ 564798.500000, 151828.600000 ], [ 564865.500000, 151801.400000 ], [ 564897.500000, 151801.400000 ], [ 564972.800000, 151815.900000 ], [ 565087.200000, 151792.600000 ], [ 565159.700000, 151810.900000 ], [ 565185.700000, 151810.900000 ], [ 565256.200000, 151794.600000 ], [ 565328.800000, 151797.900000 ], [ 565382.700000, 151774.100000 ], [ 565420.000000, 151772.500000 ], [ 565476.500000, 151755.900000 ], [ 565517.700000, 151723.700000 ], [ 565561.700000, 151673.300000 ], [ 565633.400000, 151552.800000 ], [ 565658.200000, 151482.200000 ], [ 565668.500000, 151368.600000 ], [ 565660.000000, 151361.800000 ], [ 565632.500000, 151373.300000 ], [ 565606.000000, 151373.100000 ], [ 565571.500000, 151342.300000 ], [ 565517.900000, 151310.800000 ], [ 565479.700000, 151271.600000 ], [ 565439.700000, 151260.600000 ], [ 565393.700000, 151261.800000 ], [ 565327.500000, 151288.600000 ], [ 565276.000000, 151349.800000 ], [ 565236.500000, 151350.100000 ], [ 565227.200000, 151340.300000 ], [ 565228.200000, 151324.600000 ], [ 565271.500000, 151269.700000 ], [ 565403.600000, 151177.900000 ], [ 565433.500000, 151167.100000 ], [ 565519.500000, 151172.600000 ], [ 565544.400000, 151158.400000 ], [ 565548.500000, 151136.100000 ], [ 565464.200000, 150980.800000 ], [ 565469.700000, 150960.800000 ], [ 565481.700000, 150961.300000 ], [ 565514.700000, 150981.800000 ], [ 565550.200000, 150973.400000 ], [ 565610.800000, 150980.700000 ], [ 565661.000000, 151012.900000 ], [ 565756.200000, 151051.600000 ], [ 565851.500000, 151113.200000 ], [ 565904.000000, 151202.300000 ], [ 565912.700000, 151254.600000 ], [ 565921.400000, 151270.600000 ], [ 565966.500000, 151283.600000 ], [ 565998.500000, 151301.500000 ], [ 566119.600000, 151400.600000 ], [ 566124.300000, 151423.300000 ], [ 566143.800000, 151461.300000 ], [ 566140.300000, 151501.600000 ], [ 566146.700000, 151559.600000 ], [ 566124.200000, 151640.400000 ], [ 566093.200000, 151672.100000 ], [ 566094.700000, 151686.100000 ], [ 566133.000000, 151722.600000 ], [ 566134.200000, 151732.400000 ], [ 566089.700000, 151899.900000 ], [ 566262.900000, 152035.200000 ], [ 566303.400000, 152098.500000 ], [ 566312.500000, 152148.700000 ], [ 566272.400000, 152202.800000 ], [ 566217.400000, 152207.800000 ], [ 566186.700000, 152201.700000 ], [ 566155.100000, 152184.800000 ], [ 566129.100000, 152185.000000 ], [ 566068.700000, 152207.700000 ], [ 566037.200000, 152231.400000 ], [ 566026.700000, 152247.900000 ], [ 566026.700000, 152265.400000 ], [ 566079.700000, 152380.300000 ], [ 566110.500000, 152509.900000 ], [ 566108.700000, 152556.500000 ], [ 566094.700000, 152586.000000 ], [ 566057.500000, 152631.000000 ], [ 566037.700000, 152711.200000 ], [ 566043.000000, 152765.900000 ], [ 566071.400000, 152888.300000 ], [ 566110.700000, 152968.200000 ], [ 566108.900000, 152987.400000 ], [ 566125.300000, 153048.600000 ], [ 566116.300000, 153065.400000 ], [ 566103.400000, 153068.500000 ], [ 566078.100000, 153059.100000 ], [ 566015.200000, 153062.700000 ], [ 565919.100000, 153088.700000 ], [ 565849.300000, 153097.100000 ], [ 565682.800000, 153167.100000 ], [ 565657.500000, 153191.900000 ], [ 565615.200000, 153192.900000 ], [ 565543.479000, 153218.688000 ], [ 565512.600000, 153208.700000 ], [ 565504.500000, 153224.000000 ], [ 565518.900000, 153262.800000 ], [ 565492.300000, 153377.400000 ], [ 565492.100000, 153425.700000 ], [ 565483.600000, 153436.900000 ], [ 565503.300000, 153555.300000 ], [ 565498.900000, 153733.900000 ], [ 565531.600000, 153883.700000 ], [ 565527.800000, 153932.300000 ], [ 565535.400000, 153962.400000 ], [ 565517.400000, 154046.900000 ], [ 565537.100000, 154100.000000 ], [ 565540.600000, 154159.700000 ], [ 565536.100000, 154165.200000 ], [ 565527.100000, 154161.500000 ], [ 565505.300000, 154111.700000 ], [ 565497.100000, 154118.200000 ], [ 565490.200000, 154165.800000 ], [ 565498.800000, 154186.000000 ], [ 565547.800000, 154206.800000 ], [ 565571.100000, 154271.500000 ], [ 565568.000000, 154287.600000 ], [ 565632.700000, 154345.800000 ], [ 565674.400000, 154436.200000 ], [ 565675.700000, 154491.400000 ], [ 565683.400000, 154507.300000 ], [ 565714.700000, 154523.300000 ], [ 565756.200000, 154519.500000 ], [ 565742.700000, 154593.300000 ], [ 565784.500000, 154604.400000 ], [ 565807.200000, 154617.300000 ], [ 565830.700000, 154603.800000 ], [ 565884.200000, 154639.500000 ], [ 565902.600000, 154677.400000 ], [ 565969.400000, 154712.400000 ], [ 566005.800000, 154764.500000 ], [ 566041.500000, 154883.100000 ], [ 566086.100000, 154866.900000 ], [ 566098.800000, 154872.700000 ], [ 566147.200000, 154903.100000 ], [ 566271.900000, 155019.900000 ], [ 566314.800000, 155149.700000 ], [ 566437.800000, 155346.500000 ], [ 566483.500000, 155461.500000 ], [ 566511.600000, 155559.300000 ], [ 566503.100000, 155592.500000 ], [ 566516.200000, 155622.000000 ], [ 566523.000000, 155661.300000 ], [ 566524.400000, 155698.800000 ], [ 566499.600000, 155742.000000 ], [ 566500.900000, 155762.000000 ], [ 566520.900000, 155776.500000 ], [ 566559.100000, 155754.500000 ], [ 566568.900000, 155783.800000 ], [ 566586.200000, 155807.300000 ], [ 566594.200000, 155844.500000 ], [ 566612.400000, 155855.300000 ], [ 566662.700000, 155862.900000 ], [ 566688.800000, 155880.400000 ], [ 566699.200000, 155896.400000 ], [ 566741.500000, 155921.300000 ], [ 566751.700000, 155940.600000 ], [ 566804.100000, 155961.400000 ], [ 566837.400000, 155983.100000 ], [ 566969.263000, 156015.759000 ], [ 567006.083000, 156019.441000 ], [ 567039.956000, 155998.086000 ], [ 567102.100000, 155996.200000 ], [ 567137.500000, 156023.000000 ], [ 567246.800000, 156073.800000 ], [ 567312.700000, 156096.300000 ], [ 567345.500000, 156077.800000 ], [ 567379.200000, 156043.800000 ], [ 567420.200000, 156020.500000 ], [ 567452.500000, 156024.300000 ], [ 567467.600000, 156010.300000 ], [ 567551.600000, 156007.800000 ], [ 567632.600000, 156034.400000 ], [ 567734.400000, 156053.600000 ], [ 567799.300000, 156080.600000 ], [ 567828.800000, 156108.900000 ], [ 567897.400000, 156148.800000 ], [ 567900.900000, 156213.200000 ], [ 567940.800000, 156337.200000 ], [ 567940.900000, 156391.300000 ], [ 567962.400000, 156525.100000 ], [ 568020.200000, 156691.500000 ], [ 568052.500000, 156720.100000 ], [ 568102.800000, 156784.400000 ], [ 568097.200000, 156831.500000 ], [ 568050.800000, 156938.800000 ], [ 568053.700000, 157033.700000 ], [ 568063.400000, 157099.400000 ], [ 568090.200000, 157190.300000 ], [ 568135.100000, 157267.100000 ], [ 568152.600000, 157360.200000 ], [ 568183.400000, 157472.800000 ], [ 568217.600000, 157507.100000 ], [ 568226.900000, 157525.500000 ], [ 568207.200000, 157557.900000 ], [ 568192.800000, 157637.700000 ], [ 568174.700000, 157750.900000 ], [ 568172.800000, 157854.200000 ], [ 568195.600000, 157930.600000 ], [ 568199.100000, 157976.900000 ], [ 568256.900000, 158022.200000 ], [ 568235.929000, 158081.340000 ], [ 568257.400000, 158078.200000 ], [ 568303.300000, 158095.100000 ], [ 568366.700000, 158099.600000 ], [ 568385.800000, 158078.900000 ], [ 568396.100000, 158040.800000 ], [ 568414.300000, 158012.500000 ], [ 568490.000000, 157945.500000 ], [ 568538.900000, 157937.600000 ], [ 568594.400000, 157900.200000 ], [ 568591.300000, 157865.500000 ], [ 568565.400000, 157841.200000 ], [ 568570.600000, 157813.900000 ], [ 568553.800000, 157739.300000 ], [ 568578.700000, 157670.400000 ], [ 568572.500000, 157627.500000 ], [ 568605.300000, 157552.500000 ], [ 568687.800000, 157544.000000 ], [ 568744.800000, 157592.300000 ], [ 568759.100000, 157595.200000 ], [ 568791.900000, 157580.900000 ], [ 568833.900000, 157626.200000 ], [ 568890.700000, 157634.400000 ], [ 568919.100000, 157666.600000 ], [ 569000.500000, 157677.500000 ], [ 569096.900000, 157671.300000 ], [ 569236.200000, 157629.700000 ], [ 569368.000000, 157637.500000 ], [ 569409.000000, 157647.000000 ], [ 569421.300000, 157641.100000 ], [ 569419.400000, 157628.300000 ], [ 569388.700000, 157582.200000 ], [ 569369.800000, 157533.400000 ], [ 569337.900000, 157410.100000 ], [ 569296.200000, 157157.600000 ], [ 569214.800000, 157014.400000 ], [ 569207.100000, 156977.400000 ], [ 569215.000000, 156791.700000 ], [ 569239.300000, 156765.900000 ], [ 569303.700000, 156733.100000 ], [ 569355.100000, 156655.500000 ], [ 569375.000000, 156589.700000 ], [ 569390.300000, 156470.700000 ], [ 569404.500000, 156454.700000 ], [ 569415.800000, 156452.200000 ], [ 569443.000000, 156467.000000 ], [ 569469.000000, 156505.200000 ], [ 569505.300000, 156598.000000 ], [ 569498.200000, 156637.700000 ], [ 569543.400000, 156702.200000 ], [ 569588.300000, 156720.800000 ], [ 569680.900000, 156714.700000 ], [ 569751.600000, 156722.000000 ], [ 569739.100000, 156824.700000 ], [ 569746.762000, 156860.981000 ], [ 569767.100000, 156884.700000 ], [ 569802.600000, 156870.500000 ], [ 569832.100000, 156871.500000 ], [ 569863.900000, 156899.500000 ], [ 569890.600000, 156941.500000 ], [ 569928.400000, 157042.500000 ], [ 569972.100000, 157032.200000 ], [ 570037.400000, 157034.100000 ], [ 570081.300000, 157024.300000 ], [ 570107.400000, 157045.900000 ], [ 570109.000000, 157099.100000 ], [ 570125.500000, 157143.300000 ], [ 570141.900000, 157218.600000 ], [ 570157.000000, 157250.400000 ], [ 570287.700000, 157249.500000 ], [ 570381.100000, 157239.600000 ], [ 570409.100000, 157223.100000 ], [ 570498.500000, 157237.800000 ], [ 570545.000000, 157212.600000 ], [ 570591.800000, 157213.000000 ], [ 570602.500000, 157206.200000 ], [ 570625.500000, 157163.500000 ], [ 570636.500000, 157161.700000 ], [ 570644.400000, 157167.500000 ], [ 570640.800000, 157214.300000 ], [ 570642.000000, 157243.500000 ], [ 570646.700000, 157246.800000 ], [ 570657.500000, 157241.100000 ], [ 570697.100000, 157192.000000 ], [ 570725.500000, 157141.000000 ], [ 570746.200000, 157127.200000 ], [ 570760.200000, 157102.300000 ], [ 570767.500000, 157069.600000 ], [ 570761.300000, 157015.700000 ], [ 570750.100000, 156984.200000 ], [ 570757.600000, 156972.100000 ], [ 570765.900000, 156972.500000 ], [ 570780.000000, 156999.100000 ], [ 570818.100000, 157189.900000 ], [ 570829.400000, 157210.600000 ], [ 570860.100000, 157237.100000 ], [ 570857.000000, 157255.700000 ], [ 570826.900000, 157275.200000 ], [ 570820.900000, 157297.700000 ], [ 570827.200000, 157315.500000 ], [ 570858.300000, 157356.000000 ], [ 570864.200000, 157398.700000 ], [ 570871.800000, 157413.100000 ], [ 570900.800000, 157445.400000 ], [ 570906.300000, 157511.900000 ], [ 570933.700000, 157552.900000 ], [ 570942.900000, 157584.400000 ], [ 570946.700000, 157614.900000 ], [ 570939.900000, 157687.000000 ], [ 570897.100000, 157720.500000 ], [ 570881.600000, 157741.800000 ], [ 570881.600000, 157754.100000 ], [ 570889.200000, 157755.300000 ], [ 570920.300000, 157735.400000 ], [ 570955.000000, 157757.100000 ], [ 570972.000000, 157756.900000 ], [ 570986.600000, 157750.300000 ], [ 571016.800000, 157715.300000 ], [ 571068.400000, 157710.900000 ], [ 571108.600000, 157724.500000 ], [ 571133.700000, 157716.300000 ], [ 571149.700000, 157644.900000 ], [ 571133.700000, 157613.500000 ], [ 571141.300000, 157600.200000 ], [ 571157.300000, 157613.600000 ], [ 571164.900000, 157632.700000 ], [ 571183.300000, 157730.900000 ], [ 571256.400000, 157796.900000 ], [ 571277.500000, 157807.700000 ], [ 571277.400000, 157792.500000 ], [ 571256.600000, 157763.400000 ], [ 571256.200000, 157722.000000 ], [ 571263.900000, 157698.600000 ], [ 571273.300000, 157690.800000 ], [ 571309.700000, 157681.500000 ], [ 571295.700000, 157648.300000 ], [ 571304.400000, 157641.700000 ], [ 571359.900000, 157696.300000 ], [ 571368.200000, 157732.800000 ], [ 571401.200000, 157772.500000 ], [ 571483.100000, 157843.700000 ], [ 571641.500000, 157939.200000 ], [ 571649.600000, 157953.700000 ], [ 571644.300000, 157994.900000 ], [ 571650.800000, 158000.800000 ], [ 571692.742000, 157963.639000 ], [ 571757.400000, 157975.100000 ], [ 571778.900000, 157991.600000 ], [ 571776.900000, 158007.000000 ], [ 571713.900000, 158087.300000 ], [ 571706.300000, 158101.000000 ], [ 571708.200000, 158121.300000 ], [ 571702.100000, 158136.200000 ], [ 571654.182000, 158214.249000 ], [ 571675.200000, 158255.300000 ], [ 571702.100000, 158278.400000 ], [ 571742.100000, 158304.100000 ], [ 571783.100000, 158317.200000 ], [ 571869.300000, 158294.400000 ], [ 571930.600000, 158296.900000 ], [ 571967.700000, 158275.300000 ], [ 572012.700000, 158286.600000 ], [ 572055.600000, 158282.300000 ], [ 572114.200000, 158325.200000 ], [ 572135.800000, 158329.800000 ], [ 572183.300000, 158326.800000 ], [ 572236.100000, 158358.200000 ], [ 572331.800000, 158400.300000 ], [ 572393.400000, 158437.500000 ], [ 572449.100000, 158499.100000 ], [ 572416.100000, 158543.300000 ], [ 572417.600000, 158587.000000 ], [ 572407.600000, 158608.800000 ], [ 572170.400000, 158714.500000 ], [ 572101.900000, 158794.500000 ], [ 572025.300000, 158827.900000 ], [ 571920.800000, 158926.000000 ], [ 571920.500000, 158966.100000 ], [ 571848.700000, 159118.200000 ], [ 571830.700000, 159192.200000 ], [ 571824.500000, 159324.100000 ], [ 571848.500000, 159404.800000 ], [ 571851.100000, 159434.400000 ], [ 572067.200000, 159846.200000 ], [ 572096.200000, 159945.700000 ], [ 572131.200000, 160000.700000 ], [ 572163.700000, 160070.900000 ], [ 572185.500000, 160107.700000 ], [ 572206.200000, 160126.700000 ], [ 572224.700000, 160132.900000 ], [ 572260.700000, 160222.300000 ], [ 572297.700000, 160279.500000 ], [ 572372.000000, 160356.800000 ], [ 572525.300000, 160448.400000 ], [ 572587.000000, 160513.600000 ], [ 572632.100000, 160586.900000 ], [ 572723.000000, 160614.000000 ], [ 572841.700000, 160700.800000 ], [ 572864.000000, 160707.800000 ], [ 572883.700000, 160705.500000 ], [ 572913.200000, 160689.000000 ], [ 573007.200000, 160613.400000 ], [ 573035.900000, 160599.500000 ], [ 573026.800000, 160578.500000 ], [ 573066.300000, 160584.500000 ], [ 573065.800000, 160596.700000 ], [ 573478.100000, 160953.700000 ], [ 573549.090000, 161008.631000 ], [ 573697.000000, 161048.400000 ], [ 573687.700000, 161090.600000 ], [ 573780.345000, 161145.400000 ], [ 573771.700000, 161167.900000 ], [ 573765.900000, 161257.500000 ], [ 573731.248000, 161281.356000 ], [ 573672.200000, 161295.200000 ], [ 573653.000000, 161312.400000 ], [ 573622.000000, 161391.400000 ], [ 573578.400000, 161365.000000 ], [ 573492.028000, 161288.337000 ], [ 573467.400000, 161314.300000 ], [ 573449.100000, 161356.100000 ], [ 573430.400000, 161374.600000 ], [ 573405.900000, 161384.900000 ], [ 573420.900000, 161409.600000 ], [ 573495.300000, 161475.700000 ], [ 573490.700000, 161522.000000 ], [ 573500.500000, 161618.900000 ], [ 573511.900000, 161670.300000 ], [ 573581.500000, 161766.900000 ], [ 573650.600000, 161816.300000 ], [ 573650.900000, 161826.300000 ], [ 573612.900000, 161904.600000 ], [ 573611.648000, 161960.347000 ], [ 573588.100000, 161966.200000 ], [ 573527.400000, 162022.000000 ], [ 573468.000000, 162180.100000 ], [ 573467.500000, 162199.100000 ], [ 573480.400000, 162236.900000 ], [ 573547.300000, 162323.800000 ], [ 573578.500000, 162341.100000 ], [ 573582.900000, 162363.300000 ], [ 573608.500000, 162406.100000 ], [ 573623.500000, 162456.800000 ], [ 573623.000000, 162476.100000 ], [ 573598.800000, 162557.100000 ], [ 573600.300000, 162573.800000 ], [ 573625.000000, 162598.300000 ], [ 573641.300000, 162602.300000 ], [ 573697.400000, 162598.000000 ], [ 573780.200000, 162527.000000 ], [ 573885.900000, 162423.800000 ], [ 573970.700000, 162368.300000 ], [ 574061.800000, 162325.900000 ], [ 574198.800000, 162078.800000 ], [ 574243.400000, 162073.500000 ], [ 574396.400000, 162027.200000 ], [ 574489.800000, 161968.000000 ], [ 574566.900000, 162076.700000 ], [ 574610.100000, 162099.000000 ], [ 574635.200000, 162103.000000 ], [ 574631.200000, 162121.500000 ], [ 574598.576000, 162157.908000 ], [ 574662.300000, 162136.700000 ], [ 574674.400000, 162152.000000 ], [ 574736.900000, 162158.700000 ], [ 574744.000000, 162151.700000 ], [ 574793.798000, 162155.100000 ], [ 574803.600000, 162177.000000 ], [ 574796.600000, 162214.000000 ], [ 574824.600000, 162284.700000 ], [ 574837.100000, 162306.700000 ], [ 574875.600000, 162336.500000 ], [ 574890.600000, 162397.700000 ], [ 574892.700000, 162544.000000 ], [ 574873.700000, 162575.500000 ], [ 574877.000000, 162611.200000 ], [ 574884.000000, 162641.600000 ], [ 574933.700000, 162685.000000 ], [ 574937.200000, 162696.000000 ], [ 574933.200000, 162772.000000 ], [ 574955.700000, 162837.200000 ], [ 574953.700000, 162872.200000 ], [ 575000.800000, 162902.700000 ], [ 574991.700000, 162977.500000 ], [ 575037.200000, 163290.900000 ], [ 575061.500000, 163281.700000 ], [ 575080.700000, 163221.900000 ], [ 575064.500000, 163143.900000 ], [ 575066.000000, 163121.200000 ], [ 575078.700000, 163110.200000 ], [ 575109.200000, 163105.900000 ], [ 575122.000000, 163095.400000 ], [ 575137.400000, 163037.500000 ], [ 575162.700000, 163002.900000 ], [ 575195.000000, 162978.700000 ], [ 575215.700000, 162913.700000 ], [ 575251.500000, 162865.200000 ], [ 575262.000000, 162804.200000 ], [ 575261.500000, 162667.400000 ], [ 575278.500000, 162643.400000 ], [ 575287.200000, 162609.200000 ], [ 575316.700000, 162567.200000 ], [ 575315.500000, 162455.700000 ], [ 575289.000000, 162411.100000 ], [ 575291.500000, 162398.100000 ], [ 575354.000000, 162299.100000 ], [ 575392.000000, 162280.100000 ], [ 575423.700000, 162276.600000 ], [ 575558.200000, 162314.600000 ], [ 575630.400000, 162325.500000 ], [ 575663.500000, 162340.600000 ], [ 575738.700000, 162401.400000 ], [ 575771.400000, 162444.900000 ], [ 575905.400000, 162483.400000 ], [ 576128.200000, 162519.500000 ], [ 576226.200000, 162585.600000 ], [ 576265.000000, 162624.800000 ], [ 576381.700000, 162720.800000 ], [ 576453.800000, 162808.600000 ], [ 576495.500000, 162817.200000 ], [ 576548.700000, 162810.900000 ], [ 576577.500000, 162818.900000 ], [ 576621.000000, 162839.700000 ], [ 576685.700000, 162892.900000 ], [ 576712.000000, 162939.400000 ], [ 576750.500000, 162961.400000 ], [ 576771.700000, 162992.000000 ], [ 576764.200000, 163014.200000 ], [ 576716.000000, 163051.500000 ], [ 576699.200000, 163056.000000 ], [ 576704.500000, 163077.700000 ], [ 576750.200000, 163066.200000 ], [ 576781.000000, 163067.000000 ], [ 576818.700000, 163088.700000 ], [ 576833.500000, 163088.700000 ], [ 576882.700000, 163062.500000 ], [ 576936.200000, 163053.500000 ], [ 576986.500000, 163059.500000 ], [ 577074.800000, 163098.400000 ], [ 577131.700000, 163097.400000 ], [ 577156.600000, 163078.700000 ], [ 577179.700000, 163079.400000 ], [ 577185.100000, 163062.000000 ], [ 577240.477000, 163039.487000 ], [ 577229.200000, 163017.600000 ], [ 577118.000000, 162958.600000 ], [ 577089.200000, 162960.100000 ], [ 577053.700000, 162992.600000 ], [ 577035.700000, 162995.400000 ], [ 576961.200000, 162964.400000 ], [ 576910.500000, 162963.600000 ], [ 576899.200000, 162954.600000 ], [ 576898.700000, 162936.900000 ], [ 577010.400000, 162946.800000 ], [ 577047.900000, 162931.800000 ], [ 577114.800000, 162891.400000 ], [ 577135.200000, 162887.800000 ], [ 577219.400000, 162902.000000 ], [ 577438.400000, 163018.000000 ], [ 577469.400000, 163047.000000 ], [ 577494.000000, 163086.600000 ], [ 577524.900000, 163118.900000 ], [ 577589.400000, 163164.500000 ], [ 577656.500000, 163180.700000 ], [ 577681.700000, 163210.500000 ], [ 577698.500000, 163257.900000 ], [ 577726.800000, 163288.000000 ], [ 577804.400000, 163353.000000 ], [ 577968.500000, 163465.894000 ], [ 577968.899000, 163485.567000 ], [ 577979.500000, 163493.100000 ], [ 578012.500000, 163509.100000 ], [ 578053.700000, 163515.900000 ], [ 578093.500000, 163532.400000 ], [ 578121.500000, 163563.100000 ], [ 578127.200000, 163584.900000 ], [ 578168.000000, 163583.600000 ], [ 578229.500000, 163559.600000 ], [ 578303.500000, 163576.900000 ], [ 578390.700000, 163612.400000 ], [ 578428.200000, 163605.400000 ], [ 578450.205000, 163594.490000 ], [ 578446.300000, 163652.100000 ], [ 578454.200000, 163671.400000 ], [ 578522.500000, 163718.000000 ], [ 578524.100000, 163727.100000 ], [ 578498.800000, 163783.000000 ], [ 578513.200000, 163799.200000 ], [ 578554.597000, 163809.150000 ], [ 578636.400000, 163808.900000 ], [ 578674.600000, 163826.200000 ], [ 578753.100000, 163883.400000 ], [ 578772.600000, 163886.700000 ], [ 578800.100000, 163864.900000 ], [ 578832.600000, 163822.700000 ], [ 578864.900000, 163753.200000 ], [ 578882.600000, 163729.200000 ], [ 578908.100000, 163711.700000 ], [ 578967.300000, 163697.900000 ], [ 579018.600000, 163813.900000 ], [ 579065.800000, 163887.200000 ], [ 579128.500000, 164034.000000 ], [ 579155.600000, 164081.600000 ], [ 579198.300000, 164136.800000 ], [ 579196.100000, 164186.300000 ], [ 579270.100000, 164179.800000 ], [ 579322.800000, 164194.400000 ], [ 579384.600000, 164276.300000 ], [ 579449.700000, 164345.200000 ], [ 579506.900000, 164447.600000 ], [ 579532.500000, 164482.000000 ], [ 579594.700000, 164544.000000 ], [ 579750.400000, 164662.700000 ], [ 579773.303000, 164706.039000 ], [ 579824.600000, 164708.600000 ], [ 579853.900000, 164725.300000 ], [ 580007.600000, 164883.300000 ], [ 580109.100000, 164961.300000 ], [ 580203.900000, 165058.800000 ], [ 580296.800000, 165134.100000 ], [ 580305.700000, 165173.300000 ], [ 580376.100000, 165252.400000 ], [ 580393.700000, 165291.000000 ], [ 580413.500000, 165295.200000 ], [ 580422.200000, 165314.200000 ], [ 580497.900000, 165379.400000 ], [ 580585.700000, 165415.500000 ], [ 580642.800000, 165475.100000 ], [ 580656.700000, 165479.900000 ], [ 580684.800000, 165504.400000 ], [ 580829.900000, 165578.800000 ], [ 580910.600000, 165650.800000 ], [ 580944.600000, 165696.300000 ], [ 581030.900000, 165754.600000 ], [ 581080.100000, 165813.300000 ], [ 581109.900000, 165902.800000 ], [ 581153.800000, 165999.400000 ], [ 581130.300000, 165995.000000 ], [ 581174.700000, 166046.300000 ], [ 581384.800000, 166124.900000 ], [ 581405.200000, 166196.600000 ], [ 581395.900000, 166238.600000 ], [ 581380.200000, 166249.300000 ], [ 581320.400000, 166243.300000 ], [ 581297.700000, 166254.300000 ], [ 581306.400000, 166276.100000 ], [ 581344.900000, 166307.100000 ], [ 581357.200000, 166326.300000 ], [ 581356.400000, 166342.800000 ], [ 581346.900000, 166358.800000 ], [ 581304.600000, 166396.300000 ], [ 581242.800000, 166429.300000 ], [ 581179.400000, 166445.500000 ], [ 581151.300000, 166403.100000 ], [ 581105.800000, 166430.800000 ], [ 581050.800000, 166447.300000 ], [ 581003.600000, 166519.300000 ], [ 580968.800000, 166604.600000 ], [ 580961.600000, 166608.600000 ], [ 580934.700000, 166599.900000 ], [ 580958.100000, 166635.900000 ], [ 581000.700000, 166648.800000 ], [ 581020.400000, 166664.400000 ], [ 581040.000000, 166693.100000 ], [ 581056.700000, 166757.300000 ], [ 581075.200000, 166788.300000 ], [ 581231.500000, 166859.600000 ], [ 581280.500000, 166900.100000 ], [ 581348.700000, 166977.300000 ], [ 581489.000000, 166988.600000 ], [ 581565.000000, 166980.100000 ], [ 581626.700000, 166991.800000 ], [ 581643.700000, 167007.300000 ], [ 581657.000000, 167047.300000 ], [ 581680.000000, 167081.100000 ], [ 581733.500000, 167119.300000 ], [ 581808.500000, 167116.300000 ], [ 581852.500000, 167123.100000 ], [ 581879.200000, 167117.800000 ], [ 581898.200000, 167101.600000 ], [ 581930.200000, 167054.800000 ], [ 581953.800000, 167043.700000 ], [ 582099.500000, 167054.300000 ], [ 582146.000000, 167051.100000 ], [ 582197.200000, 167026.300000 ], [ 582272.900000, 166965.400000 ], [ 582314.700000, 166942.100000 ], [ 582381.000000, 166922.300000 ], [ 582422.000000, 166925.100000 ], [ 582461.500000, 166904.800000 ], [ 582507.700000, 166907.100000 ], [ 582588.000000, 166924.800000 ], [ 582641.000000, 166922.300000 ], [ 582788.500000, 166831.300000 ], [ 582844.000000, 166803.800000 ], [ 582870.500000, 166796.300000 ], [ 582908.200000, 166799.600000 ], [ 582948.200000, 166770.800000 ], [ 582979.000000, 166767.600000 ], [ 583003.700000, 166768.300000 ], [ 583052.500000, 166796.600000 ], [ 583108.700000, 166940.300000 ], [ 583131.200000, 166964.300000 ], [ 583216.200000, 167026.100000 ], [ 583243.200000, 167090.300000 ], [ 583257.500000, 167100.800000 ], [ 583306.000000, 167057.600000 ], [ 583349.700000, 167038.300000 ], [ 583349.000000, 167014.600000 ], [ 583358.200000, 166989.800000 ], [ 583420.200000, 166907.300000 ], [ 583444.700000, 166857.800000 ], [ 583478.700000, 166859.100000 ], [ 583501.000000, 166869.800000 ], [ 583549.200000, 166878.800000 ], [ 583562.700000, 166814.300000 ], [ 583608.700000, 166773.100000 ], [ 583685.400000, 166744.500000 ], [ 583711.900000, 166680.700000 ], [ 583725.100000, 166668.200000 ], [ 583746.600000, 166674.500000 ], [ 583757.500000, 166662.300000 ], [ 583752.200000, 166643.100000 ], [ 583760.000000, 166624.100000 ], [ 583807.300000, 166567.400000 ], [ 583814.500000, 166568.800000 ], [ 583816.900000, 166630.000000 ], [ 583850.100000, 166639.200000 ], [ 583880.600000, 166635.800000 ], [ 583905.000000, 166610.500000 ], [ 584057.900000, 166596.500000 ], [ 584077.400000, 166586.200000 ], [ 584079.600000, 166576.600000 ], [ 584253.700000, 166597.300000 ], [ 584309.200000, 166592.800000 ], [ 584326.700000, 166610.800000 ], [ 584391.500000, 166600.800000 ], [ 584429.700000, 166603.100000 ], [ 584498.000000, 166628.600000 ], [ 584522.500000, 166625.100000 ], [ 584569.200000, 166648.300000 ], [ 584622.700000, 166655.300000 ], [ 584638.500000, 166678.800000 ], [ 584678.200000, 166703.600000 ], [ 584749.700000, 166773.600000 ], [ 584820.200000, 166796.800000 ], [ 584932.200000, 166882.600000 ], [ 585000.000000, 166949.800000 ], [ 585046.900000, 166969.000000 ], [ 585157.400000, 167036.500000 ], [ 585257.600000, 167051.900000 ], [ 585376.700000, 167083.300000 ], [ 585433.400000, 167152.900000 ], [ 585497.700000, 167174.000000 ], [ 585575.000000, 167166.800000 ], [ 585591.400000, 167172.300000 ], [ 585624.600000, 167201.200000 ], [ 585672.500000, 167209.200000 ], [ 585721.600000, 167242.400000 ], [ 585783.300000, 167250.800000 ], [ 585912.700000, 167289.600000 ], [ 585963.700000, 167326.300000 ], [ 586017.300000, 167354.500000 ], [ 586150.900000, 167423.700000 ], [ 586208.300000, 167441.400000 ], [ 586248.800000, 167469.700000 ], [ 586304.400000, 167495.600000 ], [ 586367.000000, 167512.700000 ], [ 586399.700000, 167513.400000 ], [ 586491.900000, 167461.300000 ], [ 586522.400000, 167409.100000 ], [ 586524.600000, 167378.400000 ], [ 586499.400000, 167307.500000 ], [ 586522.400000, 167330.700000 ], [ 586557.100000, 167384.200000 ], [ 586593.600000, 167453.200000 ], [ 586638.600000, 167498.000000 ], [ 586639.400000, 167510.000000 ], [ 586614.900000, 167535.200000 ], [ 586613.900000, 167552.700000 ], [ 586693.600000, 167546.400000 ], [ 586709.000000, 167536.400000 ], [ 586715.800000, 167545.100000 ], [ 586709.900000, 167557.600000 ], [ 586673.600000, 167591.700000 ], [ 586630.600000, 167614.000000 ], [ 586610.900000, 167650.700000 ], [ 586702.100000, 167652.500000 ], [ 586734.800000, 167683.600000 ], [ 586793.100000, 167711.300000 ], [ 586844.000000, 167756.300000 ], [ 586857.400000, 167763.200000 ], [ 586893.300000, 167764.900000 ], [ 586931.800000, 167829.900000 ], [ 586994.300000, 167882.800000 ], [ 587027.700000, 167897.800000 ], [ 587063.900000, 167928.500000 ], [ 587114.900000, 167947.200000 ], [ 587181.600000, 167955.000000 ], [ 587244.600000, 167952.200000 ], [ 587272.100000, 167944.500000 ], [ 587286.500000, 167996.300000 ], [ 587448.900000, 168268.700000 ], [ 587467.500000, 168352.500000 ], [ 587491.300000, 168388.500000 ], [ 587510.000000, 168407.300000 ], [ 587546.000000, 168428.000000 ], [ 587854.000000, 168568.800000 ], [ 588087.500000, 168806.800000 ], [ 588121.300000, 168829.300000 ], [ 588162.500000, 168845.500000 ], [ 588216.000000, 168849.500000 ], [ 588364.500000, 168816.100000 ], [ 588404.800000, 168814.500000 ], [ 588659.500000, 168865.000000 ], [ 588681.700000, 168880.600000 ], [ 588886.700000, 168688.900000 ], [ 588900.600000, 168660.900000 ], [ 588916.200000, 168646.200000 ], [ 588927.800000, 168612.700000 ], [ 588950.000000, 168584.600000 ], [ 588992.300000, 168547.800000 ], [ 588996.500000, 168537.000000 ], [ 588971.900000, 168514.000000 ], [ 588932.800000, 168440.500000 ], [ 588984.100000, 168435.700000 ], [ 589014.100000, 168399.800000 ], [ 588954.600000, 168362.500000 ], [ 588949.800000, 168352.300000 ], [ 588935.900000, 168300.700000 ], [ 588957.600000, 168259.700000 ], [ 588965.900000, 168227.700000 ], [ 588960.900000, 168216.500000 ], [ 588907.900000, 168166.700000 ], [ 588911.600000, 168151.700000 ], [ 588944.900000, 168129.400000 ], [ 588977.200000, 168116.900000 ], [ 589105.100000, 168094.000000 ], [ 589161.400000, 168094.700000 ], [ 589188.600000, 168087.500000 ], [ 589212.100000, 168071.200000 ], [ 589247.600000, 167967.600000 ], [ 589247.400000, 167947.700000 ], [ 589270.800000, 167870.700000 ], [ 589271.300000, 167835.100000 ], [ 589285.400000, 167808.200000 ], [ 589301.600000, 167795.200000 ], [ 589345.900000, 167802.000000 ], [ 589359.200000, 167796.400000 ], [ 589345.300000, 167738.300000 ], [ 589349.800000, 167672.000000 ], [ 589337.800000, 167624.500000 ], [ 589343.900000, 167611.300000 ], [ 589367.500000, 167645.700000 ], [ 589380.500000, 167647.500000 ], [ 589432.200000, 167614.700000 ], [ 589735.200000, 167584.200000 ], [ 589754.200000, 167592.700000 ], [ 589793.500000, 167635.500000 ], [ 589810.600000, 167660.000000 ], [ 589824.800000, 167705.000000 ], [ 589858.200000, 167747.400000 ], [ 589881.500000, 167758.500000 ], [ 589920.200000, 167761.500000 ], [ 589939.000000, 167772.000000 ], [ 589945.000000, 167884.000000 ], [ 589964.200000, 167968.900000 ], [ 589936.500000, 168024.200000 ], [ 589942.500000, 168027.000000 ], [ 589966.100000, 168011.500000 ], [ 589998.800000, 168025.100000 ], [ 590014.200000, 168044.100000 ], [ 590024.300000, 168043.200000 ], [ 590072.400000, 167958.000000 ], [ 590074.600000, 167917.200000 ], [ 590092.900000, 167936.200000 ], [ 590111.400000, 167937.700000 ], [ 590168.100000, 167905.500000 ], [ 590194.900000, 167931.500000 ], [ 590207.400000, 167935.500000 ], [ 590313.400000, 167943.500000 ], [ 590457.500000, 167968.900000 ], [ 590545.200000, 168006.100000 ], [ 590584.000000, 168009.800000 ], [ 590596.500000, 168000.500000 ], [ 590638.300000, 168044.800000 ], [ 590722.100000, 168098.600000 ], [ 590809.600000, 168133.600000 ], [ 590832.900000, 168134.000000 ], [ 590822.200000, 168090.800000 ], [ 590824.200000, 168076.500000 ], [ 590873.200000, 167982.300000 ], [ 590829.400000, 167949.800000 ], [ 590808.500000, 167856.300000 ], [ 590815.000000, 167835.400000 ], [ 590896.500000, 167902.500000 ], [ 590975.200000, 167904.000000 ], [ 591085.500000, 167968.800000 ], [ 591116.200000, 167994.800000 ], [ 591146.300000, 168036.400000 ], [ 591177.500000, 168178.000000 ], [ 591208.300000, 168248.200000 ], [ 591261.000000, 168273.500000 ], [ 591310.000000, 168337.800000 ], [ 591339.500000, 168363.300000 ], [ 591368.000000, 168367.500000 ], [ 591398.700000, 168362.000000 ], [ 591412.500000, 168371.000000 ], [ 591428.000000, 168401.500000 ], [ 591439.000000, 168402.800000 ], [ 591470.200000, 168359.800000 ], [ 591508.200000, 168351.800000 ], [ 591539.700000, 168372.000000 ], [ 591588.500000, 168418.800000 ], [ 591593.700000, 168435.000000 ], [ 591579.100000, 168472.600000 ], [ 591541.100000, 168484.000000 ], [ 591514.600000, 168509.300000 ], [ 591492.400000, 168508.400000 ], [ 591493.600000, 168536.600000 ], [ 591533.600000, 168590.100000 ], [ 591567.200000, 168613.200000 ], [ 591609.600000, 168670.600000 ], [ 591637.000000, 168776.000000 ], [ 591663.900000, 168815.400000 ], [ 591721.900000, 168853.600000 ], [ 591738.600000, 168891.400000 ], [ 591811.900000, 168930.400000 ], [ 591835.600000, 168954.400000 ], [ 591865.400000, 169015.900000 ], [ 591879.100000, 169075.100000 ], [ 591892.500000, 169105.600000 ], [ 591908.600000, 169110.500000 ], [ 591927.700000, 169105.400000 ], [ 591945.500000, 169090.900000 ], [ 591962.700000, 169062.600000 ], [ 591969.700000, 169061.400000 ], [ 591974.200000, 169067.900000 ], [ 591962.200000, 169103.400000 ], [ 591965.700000, 169126.600000 ], [ 591976.500000, 169135.600000 ], [ 592022.200000, 169143.400000 ], [ 592039.000000, 169164.200000 ], [ 592045.000000, 169190.400000 ], [ 592058.000000, 169208.600000 ], [ 592068.200000, 169204.100000 ], [ 592063.700000, 169169.600000 ], [ 592083.700000, 169150.400000 ], [ 592086.000000, 169102.600000 ], [ 592096.000000, 169063.900000 ], [ 592093.200000, 169018.900000 ], [ 592108.700000, 168950.600000 ], [ 592118.000000, 168953.100000 ], [ 592137.700000, 168988.400000 ], [ 592170.200000, 169018.900000 ], [ 592190.500000, 169053.100000 ], [ 592231.200000, 169075.100000 ], [ 592264.200000, 169071.100000 ], [ 592319.200000, 169089.600000 ], [ 592341.900000, 169113.800000 ], [ 592362.100000, 169079.700000 ], [ 592366.600000, 169060.200000 ], [ 592365.100000, 169012.500000 ], [ 592342.600000, 168990.200000 ], [ 592341.600000, 168979.000000 ], [ 592462.600000, 169009.700000 ], [ 592483.400000, 169025.700000 ], [ 592522.600000, 169074.300000 ], [ 592530.600000, 169098.500000 ], [ 592536.900000, 169094.500000 ], [ 592535.600000, 169053.000000 ], [ 592544.900000, 169016.000000 ], [ 592545.600000, 168980.000000 ], [ 592558.700000, 168973.500000 ], [ 592561.700000, 169000.300000 ], [ 592579.200000, 169032.800000 ], [ 592578.500000, 169071.000000 ], [ 592611.200000, 169128.000000 ], [ 592760.700000, 169328.300000 ], [ 592803.500000, 169353.500000 ], [ 592862.000000, 169422.300000 ], [ 592913.700000, 169501.800000 ], [ 592956.200000, 169522.500000 ], [ 592985.500000, 169549.800000 ], [ 593050.500000, 169563.000000 ], [ 593158.100000, 169631.000000 ], [ 593210.500000, 169667.700000 ], [ 593322.800000, 169777.300000 ], [ 593352.600000, 169831.000000 ], [ 593380.300000, 169865.400000 ], [ 593413.200000, 169947.000000 ], [ 593458.032000, 170005.245000 ], [ 593442.600000, 170063.100000 ], [ 593444.900000, 170087.900000 ], [ 593451.600000, 170107.600000 ], [ 593499.900000, 170173.400000 ], [ 593516.900000, 170211.600000 ], [ 593508.600000, 170239.100000 ], [ 593471.400000, 170273.900000 ], [ 593462.900000, 170295.900000 ], [ 593467.900000, 170399.600000 ], [ 593460.100000, 170441.900000 ], [ 593444.600000, 170450.500000 ], [ 593361.000000, 170449.600000 ], [ 593296.500000, 170477.700000 ], [ 593252.400000, 170511.500000 ], [ 593194.500000, 170588.000000 ], [ 593189.400000, 170648.400000 ], [ 593171.400000, 170690.100000 ], [ 593168.300000, 170714.700000 ], [ 593166.700000, 170774.500000 ], [ 593178.600000, 170834.900000 ], [ 593175.900000, 170848.900000 ], [ 593107.600000, 170964.900000 ], [ 593083.700000, 171130.500000 ], [ 593054.900000, 171223.400000 ], [ 593052.800000, 171356.300000 ], [ 593085.900000, 171440.800000 ], [ 593092.000000, 171474.400000 ], [ 593089.900000, 171513.200000 ], [ 593081.800000, 171550.100000 ], [ 592968.700000, 171862.100000 ], [ 592963.800000, 171966.900000 ], [ 592957.400000, 171986.400000 ], [ 592972.100000, 172043.600000 ], [ 592968.400000, 172098.700000 ], [ 593026.100000, 172295.100000 ], [ 593039.100000, 172317.400000 ], [ 593070.500000, 172341.600000 ], [ 593101.600000, 172379.400000 ], [ 593132.000000, 172441.400000 ], [ 593147.900000, 172552.600000 ], [ 593171.300000, 172585.000000 ], [ 593189.200000, 172596.800000 ], [ 593224.600000, 172650.600000 ], [ 593216.000000, 172703.100000 ], [ 593224.400000, 172791.100000 ], [ 593246.400000, 172846.400000 ], [ 593254.600000, 172941.900000 ], [ 593289.900000, 173046.800000 ], [ 593295.500000, 173205.000000 ], [ 593326.300000, 173297.900000 ], [ 593361.451000, 173352.302000 ], [ 593378.100000, 173396.500000 ], [ 593381.600000, 173471.400000 ], [ 593358.500000, 173473.700000 ], [ 593373.000000, 173530.400000 ], [ 593396.000000, 173580.700000 ], [ 593396.500000, 173639.100000 ], [ 593386.300000, 173668.100000 ], [ 593300.300000, 173790.700000 ], [ 593260.500000, 173834.000000 ], [ 593199.400000, 173886.000000 ], [ 593181.100000, 173913.600000 ], [ 593146.800000, 174052.400000 ], [ 593157.000000, 174098.100000 ], [ 593155.000000, 174127.600000 ], [ 593117.350000, 174162.451000 ], [ 593096.300000, 174172.900000 ], [ 593070.800000, 174171.400000 ], [ 592992.800000, 174092.900000 ], [ 592957.700000, 174071.700000 ], [ 592882.200000, 174048.300000 ], [ 592798.100000, 174046.500000 ], [ 592748.500000, 174076.100000 ], [ 592660.000000, 174062.100000 ], [ 592606.300000, 174076.400000 ], [ 592538.800000, 174082.900000 ], [ 592508.500000, 174108.100000 ], [ 592490.800000, 174132.300000 ], [ 592485.800000, 174201.300000 ], [ 592424.500000, 174252.400000 ], [ 592420.400000, 174310.100000 ], [ 592399.500000, 174354.900000 ], [ 592378.000000, 174373.600000 ], [ 592335.300000, 174389.100000 ], [ 592322.000000, 174388.900000 ], [ 592277.000000, 174360.600000 ], [ 592240.000000, 174356.400000 ], [ 592191.300000, 174358.600000 ], [ 592118.800000, 174383.400000 ], [ 592052.300000, 174444.100000 ], [ 591978.300000, 174528.600000 ], [ 591970.800000, 174555.600000 ], [ 591970.500000, 174626.100000 ], [ 591962.300000, 174647.600000 ], [ 591946.500000, 174664.100000 ], [ 591923.300000, 174668.400000 ], [ 591873.100000, 174626.400000 ], [ 591816.300000, 174627.900000 ], [ 591770.300000, 174617.100000 ], [ 591672.500000, 174562.400000 ], [ 591655.500000, 174560.100000 ], [ 591630.500000, 174579.100000 ], [ 591558.100000, 174672.000000 ], [ 591531.700000, 174717.100000 ], [ 591520.500000, 174728.900000 ], [ 591496.900000, 174738.400000 ], [ 591508.100000, 174754.900000 ], [ 591523.900000, 174757.600000 ], [ 591656.900000, 174729.500000 ], [ 591704.600000, 174727.500000 ], [ 591745.400000, 174738.000000 ], [ 591798.600000, 174762.600000 ], [ 591833.100000, 174801.100000 ], [ 591855.100000, 174810.900000 ], [ 591943.900000, 174819.400000 ], [ 592001.100000, 174801.400000 ], [ 592028.900000, 174816.100000 ], [ 592044.600000, 174817.100000 ], [ 592075.600000, 174801.600000 ], [ 592088.100000, 174784.600000 ], [ 592089.100000, 174690.600000 ], [ 592102.100000, 174650.200000 ], [ 592132.900000, 174629.200000 ], [ 592167.400000, 174626.000000 ], [ 592201.100000, 174652.700000 ], [ 592209.400000, 174684.200000 ], [ 592190.600000, 174783.700000 ], [ 592194.900000, 174837.400000 ], [ 592259.400000, 174900.100000 ], [ 592290.900000, 174966.600000 ], [ 592301.100000, 174974.900000 ], [ 592325.600000, 174978.900000 ], [ 592367.400000, 174950.100000 ], [ 592384.100000, 174947.900000 ], [ 592494.000000, 174990.000000 ], [ 592515.100000, 174995.800000 ], [ 592536.600000, 174993.600000 ], [ 592548.900000, 174983.600000 ], [ 592572.100000, 174942.900000 ], [ 592620.800000, 174936.300000 ], [ 592634.100000, 174927.100000 ], [ 592641.400000, 174869.900000 ], [ 592650.100000, 174857.400000 ], [ 592676.100000, 174853.600000 ], [ 592717.400000, 174868.900000 ], [ 592743.100000, 174891.600000 ], [ 592778.000000, 174943.200000 ], [ 592835.900000, 174982.300000 ], [ 592860.400000, 175014.400000 ], [ 592869.600000, 175053.400000 ], [ 592837.100000, 175136.400000 ], [ 592850.900000, 175161.100000 ], [ 592903.700000, 175202.000000 ], [ 592958.400000, 175303.600000 ], [ 593044.400000, 175376.000000 ], [ 593078.800000, 175432.400000 ], [ 593108.900000, 175441.100000 ], [ 593167.400000, 175442.400000 ], [ 593213.400000, 175469.400000 ], [ 593232.100000, 175468.900000 ], [ 593274.200000, 175453.800000 ], [ 593305.000000, 175438.100000 ], [ 593348.200000, 175394.200000 ], [ 593394.900000, 175388.400000 ], [ 593441.100000, 175359.900000 ], [ 593460.500000, 175358.000000 ], [ 593481.700000, 175366.400000 ], [ 593532.300000, 175398.000000 ], [ 593592.900000, 175394.500000 ], [ 593644.800000, 175402.900000 ], [ 593705.500000, 175394.800000 ], [ 593736.200000, 175360.000000 ], [ 593780.900000, 175286.700000 ], [ 593847.500000, 175216.900000 ], [ 593891.500000, 175182.400000 ], [ 593929.900000, 175157.300000 ], [ 593950.900000, 175151.900000 ], [ 594016.600000, 175164.900000 ], [ 594080.900000, 175208.100000 ], [ 594114.400000, 175220.600000 ], [ 594139.100000, 175240.600000 ], [ 594191.100000, 175334.600000 ], [ 594195.522000, 175384.801000 ], [ 594238.600000, 175430.500000 ], [ 594265.600000, 175489.100000 ], [ 594293.600000, 175518.600000 ], [ 594352.100000, 175522.600000 ], [ 594399.400000, 175554.600000 ], [ 594438.100000, 175567.600000 ], [ 594510.100000, 175561.400000 ], [ 594567.100000, 175538.100000 ], [ 594624.900000, 175536.900000 ], [ 594695.300000, 175526.400000 ], [ 594750.600000, 175570.200000 ], [ 594783.200000, 175627.800000 ], [ 594785.463000, 175644.742000 ], [ 594777.788000, 175667.788000 ], [ 594594.307000, 175807.681000 ], [ 594593.900000, 175840.400000 ], [ 594616.900000, 175949.100000 ], [ 594655.300000, 176050.200000 ], [ 594672.700000, 176053.200000 ], [ 594693.500000, 176090.200000 ], [ 594777.200000, 176157.700000 ], [ 594819.500000, 176197.200000 ], [ 594840.500000, 176226.200000 ], [ 594864.200000, 176238.700000 ], [ 594892.200000, 176268.000000 ], [ 594945.200000, 176290.500000 ], [ 594968.000000, 176311.700000 ], [ 595029.400000, 176337.600000 ], [ 595104.400000, 176353.600000 ], [ 595120.600000, 176383.400000 ], [ 595132.100000, 176391.100000 ], [ 595165.600000, 176390.900000 ], [ 595221.900000, 176404.600000 ], [ 595251.100000, 176429.600000 ], [ 595286.900000, 176420.100000 ], [ 595326.600000, 176434.000000 ], [ 595349.000000, 176426.700000 ], [ 595374.000000, 176439.600000 ], [ 595407.000000, 176444.500000 ], [ 595412.600000, 176458.600000 ], [ 595466.900000, 176489.400000 ], [ 595497.100000, 176496.200000 ], [ 595577.900000, 176476.000000 ], [ 595654.100000, 176431.700000 ], [ 595679.900000, 176403.000000 ], [ 595693.600000, 176347.500000 ], [ 595749.400000, 176321.200000 ], [ 595866.600000, 176294.200000 ], [ 595979.900000, 176309.700000 ], [ 596029.600000, 176303.500000 ], [ 596073.100000, 176305.700000 ], [ 596141.100000, 176280.700000 ], [ 596202.600000, 176217.200000 ], [ 596257.900000, 176229.500000 ], [ 596296.900000, 176225.700000 ], [ 596336.600000, 176170.000000 ], [ 596366.600000, 176101.500000 ], [ 596443.600000, 176109.700000 ], [ 596455.400000, 176102.700000 ], [ 596492.600000, 176054.500000 ], [ 596497.900000, 176027.500000 ], [ 596489.900000, 175960.200000 ], [ 596588.100000, 175884.700000 ], [ 596614.500000, 175814.000000 ], [ 596635.200000, 175795.200000 ], [ 596663.000000, 175687.500000 ], [ 596703.700000, 175658.000000 ], [ 596795.600000, 175620.500000 ], [ 596750.500000, 175693.200000 ], [ 596747.200000, 175712.000000 ], [ 596747.500000, 175731.000000 ], [ 596770.300000, 175784.600000 ], [ 596780.000000, 175828.000000 ], [ 596781.000000, 175895.200000 ], [ 596788.300000, 175905.900000 ], [ 596768.000000, 175956.000000 ], [ 596783.625000, 175959.104000 ], [ 596842.400000, 175888.900000 ], [ 596876.000000, 175883.500000 ], [ 596950.200000, 175885.500000 ], [ 596962.400000, 175838.600000 ], [ 597017.300000, 175779.500000 ], [ 597157.700000, 175649.700000 ], [ 597380.700000, 175579.500000 ], [ 597496.700000, 175574.700000 ], [ 597575.500000, 175591.500000 ], [ 597662.700000, 175639.000000 ], [ 597716.500000, 175690.200000 ], [ 597841.700000, 175744.500000 ], [ 597864.200000, 175749.000000 ], [ 597904.700000, 175751.000000 ], [ 597979.200000, 175721.000000 ], [ 598039.700000, 175682.200000 ], [ 598067.700000, 175685.500000 ], [ 598153.500000, 175730.200000 ], [ 598343.300000, 175850.600000 ], [ 598431.200000, 175891.800000 ], [ 598484.400000, 175909.700000 ], [ 598526.400000, 175912.700000 ], [ 598618.900000, 175901.900000 ], [ 598712.400000, 175859.000000 ], [ 598861.700000, 175807.200000 ], [ 599031.200000, 175795.700000 ], [ 599109.700000, 175746.900000 ], [ 599179.300000, 175717.000000 ], [ 599201.200000, 175713.200000 ], [ 599342.500000, 175725.200000 ], [ 599477.500000, 175716.500000 ], [ 599550.500000, 175686.700000 ], [ 599609.500000, 175635.800000 ], [ 599623.100000, 175602.600000 ], [ 599611.665000, 175591.448000 ], [ 599619.700000, 175527.100000 ], [ 599708.600000, 175378.400000 ], [ 599769.700000, 175352.400000 ], [ 599799.400000, 175315.000000 ], [ 599872.600000, 175250.500000 ], [ 599942.800000, 175213.500000 ], [ 600025.800000, 175154.600000 ], [ 600101.300000, 175090.100000 ], [ 600183.500000, 175004.700000 ], [ 600222.900000, 175001.300000 ], [ 600206.000000, 175028.000000 ], [ 600207.200000, 175054.000000 ], [ 600247.500000, 175105.500000 ], [ 600283.200000, 175206.800000 ], [ 600297.000000, 175225.800000 ], [ 600355.400000, 175271.800000 ], [ 600378.700000, 175316.500000 ], [ 600449.200000, 175347.000000 ], [ 600503.800000, 175384.800000 ], [ 600518.800000, 175406.400000 ], [ 600552.500000, 175485.700000 ], [ 600677.700000, 175578.700000 ], [ 600707.500000, 175660.500000 ], [ 600751.700000, 175686.700000 ], [ 600839.400000, 175724.700000 ], [ 600905.200000, 175747.000000 ], [ 601015.716000, 175770.217000 ], [ 601067.089000, 175789.239000 ], [ 601076.042000, 175798.492000 ], [ 601079.500000, 175784.600000 ], [ 601040.500000, 175766.000000 ], [ 600859.146000, 175627.852000 ], [ 600875.337000, 175568.571000 ], [ 600871.942000, 175549.768000 ], [ 600856.800000, 175533.800000 ], [ 600816.000000, 175514.800000 ], [ 600792.700000, 175482.100000 ], [ 600758.200000, 175399.400000 ], [ 600725.200000, 175347.600000 ], [ 600707.200000, 175278.700000 ], [ 600677.500000, 175245.600000 ], [ 600627.500000, 175221.900000 ], [ 600578.700000, 175165.400000 ], [ 600576.200000, 175113.000000 ], [ 600591.000000, 175061.400000 ], [ 600568.700000, 175024.100000 ], [ 600568.700000, 174993.600000 ], [ 600581.200000, 174976.400000 ], [ 600610.500000, 174956.100000 ], [ 600686.200000, 174940.400000 ], [ 600716.700000, 174941.400000 ], [ 600785.000000, 174966.400000 ], [ 600878.900000, 174944.900000 ], [ 600894.600000, 174955.100000 ], [ 600960.100000, 174954.100000 ], [ 601052.400000, 174994.600000 ], [ 601112.600000, 175000.600000 ], [ 601169.900000, 175027.900000 ], [ 601194.400000, 175044.100000 ], [ 601268.200000, 175121.300000 ], [ 601294.400000, 175138.100000 ], [ 601367.900000, 175166.600000 ], [ 601460.100000, 175243.100000 ], [ 601486.100000, 175250.600000 ], [ 601523.400000, 175239.400000 ], [ 601539.600000, 175224.900000 ], [ 601541.400000, 175207.400000 ], [ 601523.400000, 175133.100000 ], [ 601517.600000, 175053.100000 ], [ 601509.400000, 175032.100000 ], [ 601487.600000, 175010.900000 ], [ 601473.600000, 174984.100000 ], [ 601476.100000, 174972.900000 ], [ 601501.900000, 174961.100000 ], [ 601498.100000, 174928.400000 ], [ 601431.600000, 174867.700000 ], [ 601379.400000, 174851.800000 ], [ 601348.600000, 174824.900000 ], [ 601312.200000, 174805.800000 ], [ 601298.100000, 174784.900000 ], [ 601301.900000, 174751.100000 ], [ 601344.900000, 174701.200000 ], [ 601347.400000, 174664.900000 ], [ 601361.600000, 174634.100000 ], [ 601358.400000, 174592.400000 ], [ 601378.100000, 174589.400000 ], [ 601413.100000, 174605.100000 ], [ 601455.900000, 174628.600000 ], [ 601515.900000, 174677.400000 ], [ 601544.400000, 174684.100000 ], [ 601553.600000, 174668.900000 ], [ 601561.900000, 174614.400000 ], [ 601585.600000, 174576.900000 ], [ 601586.600000, 174529.400000 ], [ 601574.100000, 174503.300000 ], [ 601575.100000, 174491.100000 ], [ 601597.600000, 174488.600000 ], [ 601652.700000, 174518.000000 ], [ 601700.100000, 174507.900000 ], [ 601727.300000, 174468.900000 ], [ 601772.100000, 174428.700000 ], [ 601780.600000, 174411.400000 ], [ 601779.700000, 174397.700000 ], [ 601815.700000, 174354.900000 ], [ 601900.200000, 174323.900000 ], [ 601961.700000, 174354.900000 ], [ 602000.900000, 174362.400000 ], [ 602008.400000, 174384.900000 ], [ 602009.700000, 174430.400000 ], [ 602051.700000, 174447.900000 ], [ 602085.700000, 174492.400000 ], [ 602104.900000, 174486.900000 ], [ 602125.900000, 174440.400000 ], [ 602143.200000, 174436.700000 ], [ 602160.700000, 174452.900000 ], [ 602175.900000, 174505.200000 ], [ 602200.900000, 174532.200000 ], [ 602199.200000, 174596.400000 ], [ 602222.900000, 174660.200000 ], [ 602213.700000, 174703.700000 ], [ 602182.200000, 174760.200000 ], [ 602173.300000, 174788.300000 ], [ 602183.900000, 174844.200000 ], [ 602204.700000, 174885.400000 ], [ 602221.200000, 174961.900000 ], [ 602273.000000, 175029.400000 ], [ 602313.700000, 175060.400000 ], [ 602347.500000, 175107.000000 ], [ 602453.500000, 175159.400000 ], [ 602533.400000, 175169.100000 ], [ 602589.200000, 175213.000000 ], [ 602624.300000, 175213.700000 ], [ 602623.800000, 175225.100000 ], [ 602586.000000, 175241.600000 ], [ 602566.500000, 175245.100000 ], [ 602500.000000, 175236.600000 ], [ 602483.500000, 175248.100000 ], [ 602482.700000, 175279.600000 ], [ 602514.300000, 175312.200000 ], [ 602554.300000, 175341.400000 ], [ 602605.400000, 175352.000000 ], [ 602658.000000, 175343.500000 ], [ 602723.400000, 175354.700000 ], [ 602784.200000, 175388.000000 ], [ 602830.900000, 175434.800000 ], [ 603000.000000, 175536.000000 ], [ 603097.500000, 175541.700000 ], [ 603143.400000, 175535.300000 ], [ 603208.300000, 175509.100000 ], [ 603247.100000, 175503.600000 ], [ 603311.500000, 175512.500000 ], [ 603472.400000, 175657.700000 ], [ 603487.200000, 175652.800000 ], [ 603525.200000, 175622.700000 ], [ 603592.800000, 175630.400000 ], [ 603660.200000, 175624.800000 ], [ 603688.400000, 175634.200000 ], [ 603767.900000, 175690.600000 ], [ 603822.200000, 175690.500000 ], [ 603835.400000, 175699.400000 ], [ 603851.200000, 175750.500000 ], [ 603860.200000, 175758.300000 ], [ 603874.400000, 175757.100000 ], [ 603893.000000, 175743.000000 ], [ 603910.800000, 175711.800000 ], [ 603945.300000, 175681.700000 ], [ 603953.400000, 175642.600000 ], [ 603968.900000, 175637.300000 ], [ 603994.300000, 175703.600000 ], [ 603993.900000, 175734.500000 ], [ 603983.900000, 175765.700000 ], [ 603987.000000, 175785.400000 ], [ 604021.900000, 175803.800000 ], [ 604092.900000, 175791.100000 ], [ 604127.300000, 175793.300000 ], [ 604143.500000, 175805.800000 ], [ 604142.700000, 175843.800000 ], [ 604170.400000, 175866.600000 ], [ 604218.200000, 175922.400000 ], [ 604221.600000, 175937.400000 ], [ 604209.700000, 175983.800000 ], [ 604222.700000, 176001.100000 ], [ 604236.400000, 175996.800000 ], [ 604251.400000, 175966.700000 ], [ 604247.300000, 175917.000000 ], [ 604259.300000, 175892.300000 ], [ 604284.200000, 175865.800000 ], [ 604323.800000, 175841.800000 ], [ 604412.500000, 175817.400000 ], [ 604493.200000, 175763.900000 ], [ 604514.200000, 175758.800000 ], [ 604553.900000, 175765.800000 ], [ 604569.200000, 175762.600000 ], [ 604590.400000, 175730.600000 ], [ 604623.200000, 175720.300000 ], [ 604625.700000, 175676.100000 ], [ 604662.400000, 175693.100000 ], [ 604672.200000, 175715.200000 ], [ 604655.800000, 175737.300000 ], [ 604653.400000, 175754.100000 ], [ 604663.300000, 175822.200000 ], [ 604678.400000, 175853.900000 ], [ 604677.700000, 175863.600000 ], [ 604635.700000, 175915.800000 ], [ 604634.400000, 175931.800000 ], [ 604650.400000, 175972.400000 ], [ 604631.400000, 176000.300000 ], [ 604580.200000, 176041.100000 ], [ 604567.200000, 176120.100000 ], [ 604570.900000, 176164.800000 ], [ 604505.400000, 176248.900000 ], [ 604471.500000, 176273.800000 ], [ 604448.300000, 176353.997000 ], [ 604455.027000, 176372.731000 ], [ 604483.135000, 176381.400000 ], [ 604495.500000, 176371.900000 ], [ 604517.283000, 176325.357000 ], [ 604532.335000, 176315.148000 ], [ 604553.100000, 176312.000000 ], [ 604634.700000, 176337.700000 ], [ 604704.000000, 176335.800000 ], [ 604718.900000, 176340.200000 ], [ 604723.400000, 176349.000000 ], [ 604722.600000, 176357.800000 ], [ 604709.900000, 176366.800000 ], [ 604667.400000, 176378.400000 ], [ 604632.800000, 176434.300000 ], [ 604630.000000, 176460.600000 ], [ 604655.400000, 176546.900000 ], [ 604647.200000, 176564.700000 ], [ 604581.000000, 176610.400000 ], [ 604556.700000, 176643.100000 ], [ 604553.000000, 176669.400000 ], [ 604567.000000, 176711.100000 ], [ 604552.212000, 176740.418000 ], [ 604553.955000, 176758.196000 ], [ 604575.464000, 176771.529000 ], [ 604776.706000, 176817.806000 ], [ 604892.700000, 176809.300000 ], [ 605006.700000, 176786.600000 ], [ 605103.500000, 176837.400000 ], [ 605219.300000, 176882.100000 ], [ 605290.800000, 176887.600000 ], [ 605365.700000, 176883.300000 ], [ 605417.700000, 176889.600000 ], [ 605472.900000, 176885.600000 ], [ 605605.400000, 176844.300000 ], [ 605682.800000, 176799.600000 ], [ 605774.100000, 176791.100000 ], [ 605825.300000, 176773.500000 ], [ 605870.400000, 176746.600000 ], [ 605800.900000, 176678.400000 ], [ 605628.200000, 176447.900000 ], [ 605612.800000, 176417.100000 ], [ 605558.500000, 176253.700000 ], [ 605530.000000, 176143.400000 ], [ 605542.900000, 176057.000000 ], [ 605647.200000, 175838.600000 ], [ 605678.800000, 175726.400000 ], [ 605742.400000, 175641.000000 ], [ 605925.900000, 175529.000000 ], [ 605991.800000, 175501.700000 ], [ 606042.700000, 175472.100000 ], [ 606120.900000, 175529.800000 ], [ 606207.400000, 175575.500000 ], [ 606206.000000, 175533.000000 ], [ 606223.500000, 175506.700000 ], [ 606233.700000, 175454.000000 ], [ 606440.100000, 175237.400000 ], [ 606480.200000, 175174.700000 ], [ 606513.200000, 175142.700000 ], [ 606582.200000, 175109.800000 ], [ 606666.500000, 175055.700000 ], [ 606737.000000, 175023.500000 ], [ 606798.000000, 175003.700000 ], [ 606824.200000, 175013.200000 ], [ 606848.700000, 175008.700000 ], [ 607299.000000, 174819.000000 ], [ 607597.300000, 174714.800000 ], [ 607645.000000, 174691.700000 ], [ 607737.350000, 174625.700000 ], [ 607747.636000, 174626.312000 ], [ 607775.600000, 174647.200000 ], [ 607801.900000, 174697.200000 ], [ 607808.000000, 174690.400000 ], [ 607817.100000, 174700.000000 ], [ 607849.000000, 174781.400000 ], [ 607868.600000, 174800.000000 ], [ 607902.400000, 174796.000000 ], [ 607977.900000, 174750.100000 ], [ 608019.400000, 174739.800000 ], [ 608115.262000, 174741.300000 ], [ 608163.500000, 174755.100000 ], [ 608212.900000, 174758.900000 ], [ 608267.552000, 174780.463000 ], [ 608285.100000, 174799.700000 ], [ 608294.300000, 174838.700000 ], [ 608291.200000, 174873.000000 ], [ 608257.400000, 174975.200000 ], [ 608641.898000, 174966.570000 ], [ 608746.100000, 175001.800000 ], [ 608810.900000, 175012.800000 ], [ 608887.600000, 174981.400000 ], [ 608960.300000, 174967.900000 ], [ 609000.600000, 174953.800000 ], [ 609116.598000, 174907.086000 ], [ 609141.845000, 174886.622000 ], [ 609163.600000, 174908.400000 ], [ 609242.400000, 174936.600000 ], [ 609325.600000, 174981.100000 ], [ 609364.841000, 175014.729000 ], [ 609397.757000, 175005.969000 ], [ 609503.104000, 175009.625000 ], [ 609601.494000, 174978.430000 ], [ 609720.669000, 175200.649000 ], [ 609736.100000, 175204.390000 ], [ 609846.917000, 175176.335000 ], [ 609922.331000, 175342.200000 ], [ 610018.755000, 175390.722000 ], [ 610094.800000, 175381.500000 ], [ 610141.100000, 175389.000000 ], [ 610178.543000, 175387.734000 ], [ 610207.211000, 175381.716000 ], [ 610260.800000, 175350.800000 ], [ 610337.000000, 175419.700000 ], [ 610405.450000, 175376.593000 ], [ 610458.406000, 175328.867000 ], [ 610490.440000, 175312.850000 ], [ 610524.531000, 175306.688000 ], [ 610556.761000, 175289.327000 ], [ 610668.800000, 175202.100000 ], [ 610770.400000, 175170.200000 ], [ 610796.700000, 175124.400000 ], [ 610869.200000, 175159.000000 ], [ 611056.500000, 175196.500000 ], [ 611090.200000, 175210.500000 ], [ 611128.946000, 175244.312000 ], [ 611146.100000, 175274.400000 ], [ 611142.500000, 175565.000000 ], [ 611106.700000, 175666.200000 ], [ 611109.000000, 175697.200000 ], [ 611214.300000, 175620.600000 ], [ 611304.700000, 175572.000000 ], [ 611318.000000, 175584.200000 ], [ 611314.000000, 175602.300000 ], [ 611282.000000, 175620.500000 ], [ 611260.100000, 175641.400000 ], [ 611189.200000, 175726.000000 ], [ 611184.100000, 175743.500000 ], [ 611205.500000, 175741.300000 ], [ 611221.200000, 175722.100000 ], [ 611290.500000, 175673.700000 ], [ 611306.800000, 175652.000000 ], [ 611327.000000, 175648.500000 ], [ 611330.200000, 175664.800000 ], [ 611290.200000, 175699.300000 ], [ 611248.800000, 175759.700000 ], [ 611212.100000, 175836.500000 ], [ 611189.400000, 175931.500000 ], [ 611197.500000, 175944.500000 ], [ 611261.700000, 175996.600000 ], [ 611356.000000, 176143.400000 ], [ 611385.300000, 176200.000000 ], [ 611958.500000, 176899.500000 ], [ 612008.700000, 176947.700000 ], [ 612105.000000, 177012.200000 ], [ 612242.100000, 177077.600000 ], [ 613169.589000, 177449.052000 ], [ 613179.599000, 177446.398000 ], [ 613258.500000, 177501.800000 ], [ 613326.800000, 177537.200000 ], [ 613553.300000, 177602.900000 ], [ 613601.300000, 177623.800000 ], [ 613765.600000, 177724.500000 ], [ 613848.400000, 177797.400000 ], [ 613877.000000, 177814.700000 ], [ 613976.500000, 177849.300000 ], [ 614064.400000, 177896.700000 ], [ 614134.500000, 177965.500000 ], [ 614274.300000, 178084.900000 ], [ 614293.800000, 178110.600000 ], [ 614316.277000, 178180.018000 ], [ 614419.419000, 178225.066000 ], [ 614465.144000, 178230.698000 ], [ 614593.100000, 178362.100000 ] ], [ [ 670697.100000, 201185.400000 ], [ 670705.300000, 201170.900000 ], [ 670694.900000, 201059.000000 ], [ 670645.900000, 201061.600000 ], [ 670604.700000, 201093.900000 ] ] ] } } +{ "type": "Feature", "properties": { "FID": 2.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 645424.9, 185831.1 ], [ 645468.999, 185782.827 ], [ 645426.0, 185734.6 ], [ 645464.6, 185672.1 ], [ 645521.5, 185625.8 ], [ 645548.6, 185570.0 ], [ 645600.1, 185550.3 ], [ 645629.2, 185507.7 ], [ 645667.7, 185469.6 ], [ 645742.1, 185445.0 ], [ 645791.1, 185445.2 ], [ 645905.6, 185362.5 ], [ 645900.5, 185327.3 ], [ 645970.9, 185296.1 ], [ 645982.7, 185261.7 ], [ 646061.7, 185184.0 ], [ 646089.7, 185130.5 ], [ 646127.3, 185082.4 ], [ 646143.3, 185047.5 ], [ 646200.5, 185017.8 ], [ 646282.0, 184990.5 ], [ 646300.1, 184976.1 ], [ 646361.5, 184874.1 ], [ 646366.3, 184856.1 ], [ 646388.3, 184825.5 ], [ 646432.5, 184784.7 ], [ 646435.1, 184751.9 ] ], [ [ 559342.104, 142940.163 ], [ 559302.015, 143023.834 ], [ 559311.005, 143028.045 ], [ 559314.085, 143039.132 ], [ 559349.617, 143056.25 ], [ 559360.931183, 143054.964848 ] ], [ [ 755687.4, 260651.8 ], [ 755687.2, 260665.4 ], [ 755697.6, 260679.7 ], [ 755620.1, 260641.9 ], [ 755536.396, 260628.133 ], [ 755286.4, 260604.4 ], [ 755255.9, 260593.4 ], [ 755139.1, 260637.4 ], [ 755020.9, 260671.1 ], [ 754823.834, 260699.148 ], [ 754712.4, 260757.1 ], [ 754729.417, 260727.76 ], [ 754731.8, 260702.8 ], [ 754710.4, 260619.6 ], [ 754710.6, 260576.1 ], [ 754676.7, 260479.6 ], [ 754654.9, 260387.1 ], [ 754679.8, 260381.2 ], [ 754651.2, 260320.4 ], [ 754583.0, 260295.6 ], [ 754520.2, 260256.7 ], [ 754458.5, 260056.2 ], [ 754450.2, 260005.1 ], [ 754502.8, 259989.1 ], [ 754636.8, 259985.3 ], [ 754659.7, 259979.0 ], [ 754761.8, 260017.8 ], [ 754774.9, 260014.9 ], [ 754760.1, 259971.7 ], [ 754770.1, 259793.6 ], [ 754963.9, 259705.2 ], [ 755097.2, 259603.2 ], [ 755123.0, 259563.5 ], [ 755108.1, 259470.5 ], [ 755111.9, 259383.8 ], [ 755131.5, 259376.6 ], [ 755200.2, 259416.3 ], [ 755222.7, 259418.3 ], [ 755238.2, 259412.6 ], [ 755246.5, 259402.1 ], [ 755246.7, 259382.6 ], [ 755209.0, 259316.8 ], [ 755209.0, 259299.6 ], [ 755222.5, 259291.1 ], [ 755335.0, 259266.0 ], [ 755344.7, 259250.5 ], [ 755283.7, 259239.5 ], [ 755259.5, 259227.3 ], [ 755147.4, 259118.1 ], [ 755095.1, 259133.3 ], [ 755077.6, 259119.8 ], [ 755051.1, 259081.1 ], [ 755033.8, 259073.7 ], [ 755006.6, 259068.7 ], [ 754953.1, 259091.1 ], [ 754892.2, 259076.8 ], [ 754852.6, 259058.1 ], [ 754814.9, 259025.8 ], [ 754737.4, 258932.0 ], [ 754712.6, 258896.1 ], [ 754697.3, 258848.0 ], [ 754644.9, 258798.8 ], [ 754635.0, 258777.4 ], [ 754631.4, 258737.5 ], [ 754547.0, 258661.6 ], [ 754536.1, 258637.1 ], [ 754561.4, 258638.8 ], [ 754594.9, 258651.6 ], [ 754644.0, 258648.6 ], [ 754772.1, 258608.7 ], [ 754818.4, 258629.3 ], [ 754839.4, 258631.6 ], [ 754849.5, 258624.1 ], [ 754863.6, 258589.9 ], [ 754886.5, 258572.1 ], [ 754913.3, 258569.1 ], [ 754974.4, 258592.0 ], [ 755005.4, 258591.3 ], [ 755038.5, 258573.0 ], [ 755063.5, 258539.5 ], [ 755100.3, 258557.6 ], [ 755182.1, 258574.9 ], [ 755232.2, 258602.8 ], [ 755261.5, 258599.5 ], [ 755287.1, 258584.1 ], [ 755304.9, 258580.8 ], [ 755435.1, 258611.7 ], [ 755461.5, 258629.9 ], [ 755499.3, 258621.3 ], [ 755598.1, 258692.2 ], [ 755637.0, 258683.5 ], [ 755673.8, 258705.7 ], [ 755737.2, 258709.4 ], [ 755756.1, 258693.0 ], [ 755692.9, 258649.1 ], [ 755645.0, 258605.2 ], [ 755536.6, 258487.2 ], [ 755465.4, 258462.8 ], [ 755390.1, 258394.1 ], [ 755131.8, 258106.4 ], [ 755103.9, 258051.5 ], [ 755074.9, 257966.8 ], [ 755075.5, 257942.7 ], [ 755085.7, 257919.0 ], [ 755108.6, 257893.2 ], [ 755095.6, 257865.5 ], [ 755109.6, 257863.2 ], [ 755123.6, 257878.5 ], [ 755107.8, 257926.3 ], [ 755118.1, 257958.3 ], [ 755207.2, 258029.1 ], [ 755339.2, 258079.4 ], [ 755355.6, 258080.7 ], [ 755357.9, 258071.7 ], [ 755292.4, 257984.9 ], [ 755261.9, 257927.4 ], [ 755257.4, 257904.2 ], [ 755278.1, 257865.1 ], [ 755453.9, 257689.3 ], [ 755508.3, 257648.5 ], [ 755522.3, 257644.2 ], [ 755586.8, 257650.6 ], [ 755703.8, 257682.7 ], [ 755740.0, 257674.9 ], [ 755570.7, 257537.9 ], [ 755592.8, 257518.0 ], [ 755597.3, 257497.8 ], [ 755569.9, 257450.9 ], [ 755539.5, 257373.1 ], [ 755535.8, 257349.4 ], [ 755547.2, 257306.6 ], [ 755535.6, 257245.5 ], [ 755541.5, 257217.4 ], [ 755538.7, 257192.2 ], [ 755493.2, 257093.4 ], [ 755461.2, 257042.6 ], [ 755408.0, 256998.3 ], [ 755398.6, 256976.1 ], [ 755392.1, 256925.9 ], [ 755366.8, 256898.8 ], [ 755325.2, 256834.5 ], [ 755323.2, 256809.7 ], [ 755294.7, 256787.2 ], [ 755292.5, 256754.5 ], [ 755307.9, 256725.9 ], [ 755408.5, 256786.5 ], [ 755621.0, 256813.0 ], [ 755727.8, 256848.5 ], [ 755801.8, 256889.0 ], [ 755816.6, 256880.7 ], [ 755864.1, 256894.2 ], [ 755935.1, 256888.2 ], [ 756042.5, 256921.5 ], [ 756132.2, 256923.3 ], [ 756162.5, 256917.3 ], [ 756192.6, 256902.7 ], [ 756252.4, 256840.2 ], [ 756315.1, 256700.2 ], [ 756325.6, 256685.7 ], [ 756337.9, 256680.5 ], [ 756349.9, 256688.0 ], [ 756356.6, 256712.7 ], [ 756374.1, 256736.7 ], [ 756423.4, 256760.5 ], [ 756601.1, 256804.0 ], [ 756717.5, 256841.0 ], [ 756944.0, 256884.2 ], [ 756972.1, 256879.7 ], [ 757022.6, 256850.5 ], [ 757038.6, 256835.2 ], [ 757092.7, 256743.9 ], [ 757127.1, 256725.7 ], [ 757150.9, 256722.5 ], [ 757171.1, 256738.0 ], [ 757201.4, 256810.7 ], [ 757220.9, 256822.2 ], [ 757250.0, 256816.6 ], [ 757332.9, 256766.0 ], [ 757371.4, 256766.5 ], [ 757391.9, 256774.0 ], [ 757432.3, 256837.9 ], [ 757457.9, 256900.0 ], [ 757490.9, 256957.5 ], [ 757520.0, 256982.1 ], [ 757588.4, 257000.0 ], [ 757762.7, 257208.2 ], [ 758071.8, 257012.3 ] ], [ [ 662054.350617, 193534.006904 ], [ 662048.6, 193524.2 ] ], [ [ 662054.350617, 193534.006904 ], [ 662081.6, 193509.9 ], [ 662084.1, 193495.2 ], [ 662070.1, 193489.7 ], [ 662049.1, 193496.2 ], [ 662044.8, 193512.0 ], [ 662048.6, 193524.2 ] ], [ [ 662054.350617, 193534.006904 ], [ 661952.9, 193610.5 ], [ 661896.6, 193533.4 ], [ 661800.8, 193713.1 ], [ 661630.6, 193800.6 ], [ 661622.6, 193825.9 ], [ 661624.5, 193904.6 ], [ 661611.7, 193966.9 ], [ 661618.9, 194000.0 ], [ 661619.7, 194052.0 ], [ 661476.401, 194066.944 ], [ 661496.2, 194152.9 ], [ 661498.5, 194200.6 ], [ 661467.0, 194206.5 ], [ 661436.4, 194229.5 ], [ 661327.5, 194189.5 ], [ 661230.0, 194139.5 ], [ 661201.0, 194135.2 ], [ 661162.3, 194117.5 ], [ 661036.7, 194007.7 ], [ 660944.7, 193873.2 ], [ 660915.5, 193779.0 ], [ 660867.5, 193708.7 ], [ 660828.5, 193683.7 ], [ 660753.0, 193658.9 ], [ 660646.5, 193581.2 ], [ 660622.5, 193554.0 ], [ 660596.1, 193497.1 ], [ 660576.8, 193420.3 ], [ 660489.0, 193305.5 ], [ 660425.8, 193175.8 ], [ 660221.4, 192925.6 ], [ 660178.4, 192856.0 ], [ 660067.7, 192742.5 ], [ 660000.0, 192626.2 ], [ 659929.5, 192549.5 ], [ 659853.2, 192439.5 ], [ 659771.5, 192384.2 ], [ 659750.5, 192323.2 ], [ 659600.5, 192114.0 ], [ 659439.9, 191990.5 ], [ 659384.7, 191981.0 ], [ 659203.9, 191814.8 ], [ 659114.3, 191777.7 ], [ 659095.2, 191750.6 ], [ 659076.0, 191668.8 ], [ 659019.3, 191615.9 ], [ 658961.7, 191583.5 ], [ 658865.7, 191509.0 ], [ 658847.7, 191502.4 ], [ 658773.0, 191504.1 ], [ 658760.9, 191496.4 ], [ 658689.3, 191399.1 ], [ 658350.7, 191174.6 ], [ 658245.1, 191139.6 ], [ 658126.0, 191057.9 ], [ 657952.7, 190962.5 ], [ 657816.4, 190896.0 ], [ 657699.9, 190822.9 ], [ 657662.3, 190790.8 ], [ 657409.7, 190506.0 ], [ 657376.2, 190481.7 ], [ 657336.2, 190437.2 ], [ 657268.9, 190406.7 ], [ 657215.2, 190402.0 ], [ 657089.7, 190314.5 ], [ 656999.2, 190209.7 ], [ 656902.2, 190211.0 ], [ 656858.2, 190198.0 ], [ 656663.2, 190045.5 ], [ 656566.7, 189911.0 ], [ 656512.2, 189858.0 ], [ 656389.7, 189783.5 ], [ 656156.1, 189659.8 ], [ 656129.3, 189629.6 ], [ 656103.4, 189580.6 ], [ 656083.6, 189559.0 ], [ 656002.1, 189557.0 ], [ 655980.4, 189546.2 ], [ 655913.6, 189454.8 ], [ 655838.8, 189307.2 ], [ 655816.1, 189249.9 ], [ 655809.2, 189212.2 ], [ 655806.0, 189119.8 ], [ 655575.5, 189098.8 ], [ 655359.8, 189057.2 ], [ 655228.3, 189050.7 ], [ 655155.9, 189030.8 ], [ 655132.4, 189018.0 ], [ 655099.8, 188846.6 ], [ 655043.4, 188772.4 ], [ 654977.0, 188655.9 ], [ 654887.0, 188621.1 ], [ 654775.4, 188567.0 ], [ 654779.7, 188469.1 ], [ 654714.4, 188357.8 ], [ 654605.4, 188276.4 ], [ 654567.1, 188260.7 ], [ 654510.4, 188250.0 ], [ 654491.4, 188234.3 ], [ 654435.2, 188206.8 ], [ 654334.6, 188126.6 ], [ 654345.1, 188093.8 ], [ 654342.1, 188087.1 ], [ 654310.0, 188025.6 ], [ 654282.0, 188009.8 ], [ 654280.8, 187997.5 ], [ 654294.3, 187967.4 ], [ 654345.7, 187911.1 ], [ 654354.2, 187854.3 ], [ 654346.0, 187828.5 ], [ 654344.6, 187759.9 ], [ 654369.2, 187730.8 ], [ 654440.8, 187688.8 ], [ 654450.8, 187674.5 ], [ 654453.8, 187652.8 ], [ 654443.2, 187608.1 ], [ 654460.8, 187405.7 ], [ 654471.9, 187369.7 ], [ 654577.9, 187242.8 ], [ 654648.5, 187115.8 ], [ 654688.1, 186937.9 ], [ 654665.8, 186921.8 ], [ 654637.7, 186883.9 ], [ 654589.9, 186846.9 ], [ 654533.1, 186922.7 ], [ 654501.7, 186953.7 ], [ 654385.1, 187026.9 ], [ 654338.4, 187045.2 ], [ 654148.6, 187093.7 ], [ 654086.6, 187101.3 ], [ 654061.5, 187114.3 ], [ 654052.0, 187128.1 ], [ 654050.3, 187157.4 ], [ 654056.9, 187174.5 ], [ 654095.5, 187217.9 ], [ 654137.2, 187338.2 ], [ 654140.1, 187354.4 ], [ 654129.4, 187428.3 ], [ 654116.5, 187496.4 ], [ 654083.6, 187541.8 ], [ 654083.2, 187667.9 ], [ 654055.7, 187758.4 ], [ 653984.8, 187890.8 ], [ 653966.5, 187909.6 ], [ 653903.0, 187944.8 ], [ 653898.7, 187933.4 ], [ 653929.5, 187858.3 ], [ 653932.9, 187831.6 ], [ 653907.2, 187728.0 ], [ 653913.2, 187706.5 ], [ 653933.6, 187675.7 ], [ 653933.4, 187662.1 ], [ 653814.1, 187529.4 ], [ 653731.4, 187506.0 ], [ 653720.4, 187494.0 ], [ 653703.5, 187449.6 ], [ 653620.7, 187355.9 ], [ 653609.4, 187357.7 ], [ 653606.2, 187369.6 ], [ 653648.2, 187418.2 ], [ 653663.9, 187455.0 ], [ 653666.3, 187481.7 ], [ 653651.1, 187616.0 ], [ 653639.9, 187654.4 ], [ 653624.5, 187680.3 ], [ 653597.0, 187705.6 ], [ 653573.0, 187721.6 ], [ 653558.7, 187725.9 ], [ 653550.5, 187720.9 ], [ 653552.8, 187635.8 ], [ 653546.1, 187596.3 ], [ 653532.5, 187563.7 ], [ 653509.5, 187529.1 ], [ 653493.9, 187517.3 ], [ 653466.0, 187519.6 ], [ 653427.0, 187510.6 ], [ 653418.7, 187519.7 ], [ 653427.8, 187541.3 ], [ 653470.5, 187554.6 ], [ 653466.2, 187590.6 ], [ 653452.0, 187618.2 ], [ 653439.5, 187616.6 ], [ 653416.4, 187587.7 ], [ 653349.7, 187576.9 ], [ 653341.3, 187568.8 ], [ 653332.1, 187537.0 ], [ 653304.2, 187502.6 ], [ 653303.0, 187487.6 ], [ 653329.7, 187434.1 ], [ 653337.0, 187355.6 ], [ 653345.2, 187339.7 ], [ 653389.1, 187296.4 ], [ 653393.4, 187264.7 ], [ 653384.5, 187248.3 ], [ 653344.0, 187218.6 ], [ 653273.4, 187219.7 ], [ 653235.1, 187205.5 ], [ 653213.4, 187155.6 ], [ 653181.7, 187131.9 ], [ 653142.2, 187125.6 ], [ 653097.9, 187128.5 ], [ 653086.8, 187119.2 ], [ 653046.7, 187027.6 ], [ 653048.0, 187012.1 ], [ 653075.5, 186971.1 ], [ 653066.5, 186931.2 ], [ 653046.5, 186905.3 ], [ 653001.0, 186865.6 ], [ 652981.6, 186831.1 ], [ 652971.5, 186779.0 ], [ 652956.6, 186762.8 ], [ 652916.4, 186734.1 ], [ 652872.7, 186723.1 ], [ 652859.7, 186707.9 ], [ 652867.2, 186679.4 ], [ 652910.9, 186628.8 ], [ 652917.0, 186616.4 ], [ 652913.5, 186599.6 ], [ 652898.2, 186600.1 ], [ 652871.5, 186638.1 ], [ 652822.7, 186651.1 ], [ 652805.1, 186677.5 ], [ 652777.3, 186701.9 ], [ 652772.8, 186714.9 ], [ 652777.1, 186730.2 ], [ 652838.6, 186811.3 ], [ 652851.1, 186901.2 ], [ 652845.1, 186922.4 ], [ 652796.4, 186898.7 ], [ 652764.3, 186899.2 ], [ 652720.4, 186943.4 ], [ 652679.2, 186954.3 ], [ 652611.4, 186952.1 ], [ 652544.6, 186913.6 ], [ 652518.5, 186937.5 ], [ 652505.7, 186840.5 ], [ 652509.5, 186753.9 ], [ 652499.9, 186742.0 ], [ 652480.9, 186749.0 ], [ 652438.0, 186805.9 ], [ 652421.0, 186819.0 ], [ 652336.5, 186785.5 ], [ 652321.5, 186797.0 ], [ 652305.1, 186859.5 ], [ 652288.334, 186855.44 ], [ 652287.101, 186863.662 ], [ 652270.4, 186872.7 ], [ 652257.4, 186918.4 ], [ 652230.6, 186943.7 ], [ 652221.9, 187012.8 ], [ 652208.0, 187055.8 ], [ 652158.8, 187107.3 ], [ 652166.8, 187148.5 ], [ 652151.7, 187208.9 ], [ 652135.9, 187212.9 ], [ 652105.4, 187179.2 ], [ 652094.7, 187180.1 ], [ 652073.7, 187195.3 ], [ 652059.9, 187219.9 ], [ 652049.5, 187274.6 ], [ 652033.1, 187312.8 ], [ 652034.9, 187391.8 ], [ 652015.6, 187395.3 ], [ 651995.9, 187366.4 ], [ 651946.1, 187248.6 ], [ 651936.2, 187197.5 ], [ 651940.0, 187169.5 ], [ 651932.2, 187165.3 ], [ 651906.3, 187169.4 ], [ 651880.5, 187153.5 ], [ 651872.1, 187155.6 ], [ 651869.4, 187165.1 ], [ 651877.2, 187188.7 ], [ 651872.8, 187194.7 ], [ 651805.4, 187216.9 ], [ 651769.0, 187213.5 ], [ 651748.3, 187197.3 ], [ 651676.6, 187112.6 ], [ 651626.6, 186986.5 ], [ 651524.6, 186873.0 ], [ 651500.7, 186824.2 ], [ 651484.6, 186759.5 ], [ 651430.5, 186689.8 ], [ 651357.8, 186646.4 ], [ 651352.6, 186608.1 ], [ 651334.9, 186578.0 ], [ 651334.8, 186552.8 ], [ 651315.9, 186493.2 ], [ 651254.9, 186398.7 ], [ 651254.9, 186225.0 ], [ 651309.9, 186233.1 ], [ 651395.1, 186233.4 ], [ 651473.9, 186274.3 ], [ 651508.742, 186284.432 ], [ 651488.2, 186219.6 ], [ 651476.5, 186200.3 ], [ 651391.2, 186162.3 ], [ 651304.2, 186088.8 ], [ 651209.7, 186057.2 ], [ 651049.4, 185974.4 ], [ 650972.0, 185948.8 ], [ 650911.2, 185920.7 ], [ 650780.0, 185913.0 ], [ 650687.0, 185930.5 ], [ 650640.9, 185927.5 ], [ 650603.4, 185933.7 ], [ 650578.4, 185959.6 ], [ 650571.8, 185980.2 ], [ 650574.2, 186018.7 ], [ 650544.2, 186068.6 ], [ 650575.1, 186129.2 ], [ 650570.1, 186275.8 ], [ 650552.2, 186420.0 ], [ 650541.2, 186440.2 ], [ 650517.0, 186445.8 ], [ 650478.4, 186423.6 ], [ 650457.3, 186398.3 ], [ 650443.4, 186318.2 ], [ 650450.6, 186268.7 ], [ 650407.5, 186147.2 ], [ 650287.9, 186005.7 ], [ 650229.1, 185907.6 ], [ 650177.7, 185865.7 ], [ 650080.7, 185742.4 ], [ 650082.8, 185669.6 ], [ 650072.7, 185653.0 ], [ 650037.1, 185630.4 ], [ 649994.7, 185621.5 ], [ 649974.0, 185603.5 ], [ 649970.5, 185529.0 ], [ 649956.5, 185506.2 ], [ 649816.0, 185486.1 ], [ 649793.8, 185465.0 ], [ 649773.7, 185455.7 ], [ 649720.4, 185404.4 ], [ 649585.2, 185407.7 ], [ 649509.3, 185444.4 ], [ 649443.9, 185431.6 ], [ 649389.7, 185450.7 ], [ 649265.6, 185422.3 ], [ 649200.7, 185455.7 ], [ 649169.9, 185458.9 ], [ 649152.1, 185453.7 ], [ 649099.4, 185400.7 ], [ 649013.0, 185366.7 ], [ 648907.4, 185253.4 ], [ 648876.0, 185233.6 ], [ 648846.4, 185227.6 ], [ 648773.2, 185249.5 ], [ 648679.8, 185252.1 ], [ 648591.8, 185245.9 ], [ 648495.4, 185208.3 ], [ 648407.7, 185191.3 ], [ 648391.7, 185181.7 ], [ 648387.1, 185138.1 ], [ 648380.9, 185122.0 ], [ 648366.2, 185112.5 ], [ 648306.7, 185104.9 ], [ 648281.9, 185116.7 ], [ 648263.4, 185116.4 ], [ 648212.2, 185082.3 ], [ 648175.5, 185021.5 ], [ 648172.7, 185006.7 ], [ 648183.2, 185004.2 ], [ 648207.1, 185028.7 ], [ 648240.1, 185046.9 ], [ 648258.2, 185048.6 ], [ 648276.3, 185041.7 ], [ 648316.6, 184996.4 ], [ 648360.9, 184926.1 ], [ 648422.3, 184864.3 ], [ 648482.2, 184761.1 ], [ 648545.1, 184692.0 ], [ 648569.5, 184675.2 ], [ 648629.5, 184650.4 ], [ 648690.4, 184600.5 ], [ 648746.6, 184588.9 ], [ 648854.7, 184589.1 ], [ 648860.2, 184582.9 ], [ 648853.2, 184575.1 ], [ 648497.6, 184532.8 ], [ 648458.4, 184506.8 ], [ 648366.9, 184411.2 ], [ 648327.7, 184392.2 ], [ 648262.5, 184382.4 ], [ 648212.2, 184358.3 ], [ 648132.0, 184333.5 ], [ 648120.5, 184339.7 ], [ 648093.2, 184376.2 ], [ 648049.9, 184403.2 ], [ 647979.5, 184406.1 ], [ 647940.0, 184419.1 ], [ 647847.5, 184398.1 ], [ 647799.7, 184401.1 ], [ 647714.2, 184432.3 ], [ 647651.9, 184445.0 ], [ 647597.0, 184485.3 ], [ 647561.6, 184491.2 ], [ 647519.8, 184480.6 ], [ 647456.9, 184446.7 ], [ 647412.8, 184413.2 ], [ 647341.8, 184338.7 ], [ 647320.0, 184329.2 ], [ 647288.3, 184331.9 ], [ 647264.7, 184343.7 ], [ 647248.6, 184361.8 ], [ 647240.8, 184430.9 ], [ 647064.8, 184332.8 ], [ 647009.1, 184321.3 ], [ 646958.7, 184330.5 ], [ 646821.5, 184400.7 ], [ 646740.7, 184422.8 ], [ 646703.0, 184439.5 ], [ 646602.5, 184553.1 ], [ 646570.1, 184606.8 ], [ 646527.9, 184652.8 ], [ 646476.2, 184680.6 ], [ 646435.1, 184751.9 ] ], [ [ 723167.4, 221684.3 ], [ 722968.2, 221848.3 ] ], [ [ 723167.4, 221684.3 ], [ 723120.2, 221628.6 ], [ 723099.2, 221592.0 ], [ 723052.2, 221471.9 ], [ 723007.8, 221418.3 ], [ 722909.3, 221327.3 ], [ 722729.8, 220969.0 ], [ 722711.6, 220947.9 ], [ 722613.0, 220785.5 ], [ 722594.6, 220768.7 ], [ 722523.4, 220725.5 ], [ 722519.0, 220731.6 ], [ 722460.7, 220738.2 ], [ 722190.9, 220727.9 ], [ 722146.9, 220709.1 ], [ 722068.3, 220636.1 ], [ 722046.3, 220623.3 ], [ 721865.6, 220562.0 ], [ 721866.177, 220570.141 ], [ 721903.043, 220581.991 ], [ 721952.637, 220624.124 ], [ 721958.343, 220650.018 ], [ 721994.331, 220687.763 ], [ 721996.087, 220701.368 ], [ 721989.065, 220702.685 ], [ 721814.388, 220614.029 ], [ 721785.422, 220619.735 ], [ 721774.449, 220615.346 ], [ 721741.094, 220595.157 ], [ 721721.742, 220572.036 ], [ 721714.286, 220572.334 ], [ 721711.303, 220585.755 ], [ 721761.408, 220663.745 ], [ 721824.336, 220705.797 ], [ 721849.091, 220746.955 ], [ 721999.106, 220830.015 ], [ 722003.281, 220859.541 ], [ 722014.316, 220882.058 ], [ 722005.965, 220930.969 ], [ 721977.036, 220951.25 ], [ 721966.597, 220972.723 ], [ 721960.334, 220974.513 ], [ 721950.492, 220960.793 ], [ 721967.194, 220936.636 ], [ 721962.422, 220919.934 ], [ 721866.388, 220888.47 ], [ 721838.652, 220862.225 ], [ 721807.3, 220858.7 ], [ 721783.9, 220842.8 ], [ 721753.2, 220834.7 ], [ 721662.9, 220774.6 ], [ 721567.4, 220738.2 ], [ 721521.2, 220734.2 ], [ 721483.7, 220762.5 ], [ 721473.6, 220756.6 ], [ 721464.3, 220728.1 ], [ 721389.6, 220708.3 ], [ 721319.9, 220734.0 ], [ 721283.8, 220738.3 ], [ 721197.9, 220697.2 ], [ 721100.0, 220675.7 ], [ 721085.3, 220678.9 ], [ 721079.1, 220692.0 ], [ 721066.0, 220697.8 ], [ 720988.6, 220685.7 ], [ 720891.6, 220653.2 ], [ 720877.3, 220645.6 ], [ 720854.4, 220618.8 ], [ 720844.8, 220619.7 ], [ 720843.1, 220629.0 ], [ 720854.5, 220638.8 ], [ 720865.0, 220662.3 ], [ 720943.2, 220728.8 ], [ 721083.6, 220789.3 ], [ 721200.7, 220822.1 ], [ 721262.3, 220852.7 ], [ 721264.9, 220858.2 ], [ 721258.7, 220862.6 ], [ 721202.8, 220846.0 ], [ 721128.0, 220847.1 ], [ 721017.1, 220832.8 ], [ 720976.6, 220811.3 ], [ 720941.0, 220797.8 ], [ 720931.4, 220800.2 ], [ 720929.1, 220808.6 ], [ 720937.1, 220814.4 ], [ 720973.9, 220826.3 ], [ 721001.0, 220853.1 ], [ 721050.2, 220877.8 ], [ 721134.1, 220903.0 ], [ 721201.7, 220934.0 ], [ 721211.9, 220945.5 ], [ 721217.2, 220967.8 ], [ 721207.2, 220968.2 ], [ 721194.2, 220945.2 ], [ 721176.3, 220935.7 ], [ 721059.3, 220938.6 ], [ 720982.6, 220921.6 ], [ 720932.3, 220901.2 ], [ 720855.5, 220886.3 ], [ 720803.1, 220861.1 ], [ 720740.4, 220842.8 ], [ 720667.7, 220838.2 ], [ 720612.1, 220821.7 ], [ 720587.3, 220826.6 ], [ 720511.1, 220925.9 ], [ 720460.1, 220939.8 ], [ 720422.5, 220965.8 ], [ 720406.4, 220964.3 ], [ 720370.0, 220923.1 ], [ 720340.6, 220929.5 ], [ 720298.9, 220920.6 ], [ 720269.3, 220901.8 ], [ 720207.1, 220904.2 ], [ 720188.9, 220894.8 ], [ 720175.6, 220860.9 ], [ 720155.5, 220844.5 ], [ 720130.6, 220840.2 ], [ 720076.7, 220785.7 ], [ 719974.4, 220751.9 ], [ 719974.5, 220722.6 ], [ 719948.9, 220679.5 ], [ 719920.8, 220654.6 ], [ 719918.1, 220643.6 ], [ 719928.3, 220629.7 ], [ 719986.1, 220586.9 ], [ 720009.4, 220551.7 ], [ 720032.3, 220542.3 ], [ 720057.8, 220545.4 ], [ 720082.5, 220524.3 ], [ 720157.8, 220503.4 ], [ 720171.1, 220496.0 ], [ 720173.3, 220489.0 ], [ 720165.1, 220483.7 ], [ 720098.3, 220501.0 ], [ 720036.2, 220492.7 ], [ 719987.8, 220494.7 ], [ 719935.3, 220516.8 ], [ 719899.5, 220518.0 ], [ 719847.9, 220509.9 ], [ 719797.8, 220530.0 ], [ 719663.9, 220543.2 ], [ 719623.6, 220537.2 ], [ 719496.5, 220537.0 ], [ 719441.3, 220551.2 ], [ 719340.0, 220564.5 ], [ 719302.8, 220554.0 ], [ 719260.1, 220557.3 ], [ 719156.6, 220543.0 ], [ 719128.8, 220529.1 ], [ 719010.8, 220510.1 ], [ 718924.3, 220520.9 ], [ 718873.4, 220502.7 ], [ 718810.0, 220503.4 ], [ 718770.2, 220495.6 ], [ 718669.5, 220509.7 ], [ 718626.4, 220467.9 ], [ 718526.1, 220433.9 ], [ 718408.9, 220437.6 ], [ 718341.2, 220428.3 ], [ 718271.5, 220430.0 ], [ 718174.2, 220441.7 ], [ 718123.8, 220470.9 ], [ 718045.3, 220468.0 ], [ 718022.3, 220478.0 ], [ 717961.434, 220458.49 ], [ 717948.633, 220446.737 ], [ 717925.4, 220438.7 ], [ 717793.8, 220431.8 ], [ 717694.3, 220411.8 ], [ 717598.2, 220431.6 ], [ 717579.6, 220456.5 ], [ 717542.3, 220459.3 ], [ 717498.7, 220426.7 ], [ 717395.8, 220399.3 ], [ 717369.0, 220393.6 ], [ 717319.8, 220403.8 ], [ 717284.8, 220393.1 ], [ 717257.0, 220396.6 ], [ 717241.3, 220389.9 ], [ 717201.5, 220397.9 ], [ 717158.0, 220430.9 ], [ 717089.5, 220427.6 ], [ 717055.5, 220442.1 ], [ 717035.8, 220441.6 ], [ 716995.3, 220454.6 ], [ 716934.6, 220448.1 ], [ 716831.4, 220470.4 ], [ 716764.7, 220473.5 ], [ 716731.0, 220485.8 ], [ 716688.707, 220521.317 ], [ 716698.4, 220572.8 ], [ 716714.8, 220601.8 ], [ 716710.8, 220637.3 ], [ 716715.8, 220649.4 ], [ 716820.9, 220716.5 ], [ 716847.3, 220745.4 ], [ 716850.7, 220763.4 ], [ 716702.6, 220794.5 ], [ 716619.6, 220846.9 ], [ 716495.7, 220889.3 ], [ 716476.8, 220905.3 ], [ 716465.3, 220905.6 ], [ 716444.3, 220890.3 ], [ 716436.5, 220849.5 ], [ 716430.0, 220843.5 ], [ 716387.5, 220842.3 ], [ 716346.6, 220830.9 ], [ 716343.5, 220809.1 ], [ 716330.0, 220787.8 ], [ 716284.3, 220769.8 ], [ 716237.5, 220724.9 ], [ 716170.5, 220689.8 ], [ 716128.1, 220649.6 ], [ 716033.3, 220591.7 ], [ 715966.0, 220514.6 ], [ 715923.3, 220493.6 ], [ 715894.5, 220515.8 ], [ 715917.3, 220529.8 ], [ 715876.9, 220563.5 ], [ 715865.4, 220557.2 ], [ 715810.5, 220553.4 ], [ 715774.3, 220565.0 ], [ 715744.5, 220566.5 ], [ 715728.3, 220578.8 ], [ 715695.4, 220586.6 ], [ 715648.8, 220580.6 ], [ 715636.9, 220584.4 ], [ 715613.1, 220573.0 ], [ 715602.8, 220557.6 ], [ 715531.3, 220568.7 ], [ 715483.1, 220604.7 ], [ 715474.5, 220625.9 ], [ 715434.5, 220666.2 ], [ 715437.612, 220711.17 ], [ 715461.9, 220723.8 ], [ 715480.7, 220748.9 ], [ 715508.8, 220807.5 ], [ 715478.5, 220920.5 ], [ 715473.2, 220994.3 ], [ 715486.0, 221054.0 ], [ 715448.0, 221258.4 ], [ 715468.8, 221349.2 ], [ 715469.2, 221393.0 ], [ 715457.0, 221447.9 ], [ 715436.9, 221484.9 ], [ 715430.9, 221531.9 ], [ 715377.9, 221571.1 ], [ 715333.7, 221615.3 ], [ 715314.7, 221650.5 ], [ 715307.4, 221682.2 ], [ 715293.2, 221687.2 ], [ 715207.461, 221687.537 ], [ 715165.968, 221703.496 ], [ 715070.2, 221711.3 ], [ 715046.9, 221735.6 ], [ 715038.2, 221735.6 ], [ 714999.2, 221696.4 ], [ 714923.2, 221710.9 ], [ 714877.4, 221704.7 ], [ 714804.6, 221748.7 ], [ 714744.0, 221748.4 ], [ 714625.5, 221779.7 ], [ 714553.2, 221791.6 ], [ 714543.7, 221797.1 ], [ 714515.7, 221848.4 ], [ 714462.8, 221852.4 ], [ 714450.8, 221902.9 ], [ 714435.6, 221914.7 ], [ 714410.7, 221921.5 ], [ 714363.0, 221904.5 ], [ 714332.5, 221911.5 ], [ 714258.0, 221944.0 ], [ 714164.3, 221967.0 ], [ 714141.8, 221961.5 ], [ 714102.9, 221932.8 ], [ 714012.4, 221947.7 ], [ 713954.0, 221990.2 ], [ 713892.2, 222069.6 ], [ 713817.1, 222120.6 ], [ 713808.0, 222134.1 ], [ 713809.0, 222144.2 ], [ 713824.3, 222168.6 ], [ 713802.8, 222209.6 ], [ 713776.3, 222224.7 ], [ 713745.3, 222257.4 ], [ 713693.3, 222263.8 ], [ 713652.5, 222315.3 ], [ 713609.7, 222326.8 ], [ 713599.4, 222335.0 ], [ 713596.9, 222346.5 ], [ 713615.2, 222369.7 ], [ 713668.7, 222397.5 ], [ 713684.4, 222415.2 ], [ 713682.5, 222441.7 ], [ 713665.3, 222450.4 ], [ 713604.2, 222452.1 ], [ 713546.2, 222476.3 ], [ 713527.2, 222487.2 ], [ 713492.9, 222529.6 ], [ 713431.1, 222582.1 ], [ 713355.5, 222594.9 ], [ 713341.7, 222636.6 ], [ 713328.7, 222643.3 ], [ 713193.0, 222649.4 ], [ 713168.2, 222645.6 ], [ 713103.0, 222606.6 ], [ 713033.2, 222584.0 ], [ 713009.4, 222528.2 ], [ 712958.1, 222520.5 ], [ 712896.2, 222462.2 ], [ 712817.7, 222437.2 ], [ 712718.071, 222389.443 ], [ 712689.2, 222391.5 ], [ 712674.7, 222396.5 ], [ 712653.4, 222419.2 ], [ 712643.1, 222464.8 ], [ 712636.3, 222472.5 ], [ 712591.5, 222497.0 ], [ 712438.4, 222545.0 ], [ 712403.9, 222542.7 ], [ 712358.4, 222505.7 ], [ 712176.2, 222556.2 ], [ 712125.9, 222614.5 ], [ 712076.2, 222627.5 ], [ 712014.9, 222657.0 ], [ 711961.4, 222701.3 ], [ 711897.3, 222726.4 ], [ 711829.6, 222769.3 ], [ 711876.5, 222624.0 ], [ 711875.4, 222545.3 ], [ 711862.9, 222522.0 ], [ 711839.4, 222515.5 ], [ 711781.3, 222519.2 ], [ 711738.1, 222510.9 ], [ 711536.1, 222515.2 ], [ 711485.313, 222523.132 ], [ 711410.0, 222514.4 ], [ 711390.5, 222515.9 ], [ 711245.4, 222578.1 ], [ 711173.3, 222590.3 ], [ 711127.2, 222590.0 ], [ 711069.5, 222579.2 ], [ 711020.4, 222558.8 ], [ 710976.9, 222563.7 ], [ 710961.103, 222559.567 ], [ 710950.1, 222570.7 ], [ 710928.2, 222559.7 ], [ 710910.6, 222535.1 ], [ 710869.6, 222511.8 ], [ 710854.4, 222452.2 ], [ 710869.9, 222440.3 ], [ 710917.6, 222438.3 ], [ 710914.4, 222422.3 ], [ 710888.2, 222380.2 ], [ 710903.7, 222339.9 ], [ 710896.4, 222323.8 ], [ 710888.6, 222323.3 ], [ 710845.4, 222353.6 ], [ 710804.3, 222349.7 ], [ 710746.4, 222354.6 ], [ 710730.4, 222363.3 ], [ 710689.7, 222413.1 ], [ 710609.2, 222454.9 ], [ 710580.782, 222463.173 ], [ 710567.7, 222609.4 ], [ 710567.5, 222665.9 ], [ 710575.2, 222687.7 ], [ 710535.2, 222651.4 ], [ 710525.4, 222634.9 ], [ 710524.2, 222577.8 ], [ 710533.2, 222548.6 ], [ 710528.8, 222507.1 ], [ 710502.1, 222495.3 ], [ 710459.8, 222494.8 ], [ 710443.6, 222487.4 ], [ 710427.0, 222469.1 ], [ 710354.5, 222326.2 ], [ 710316.9, 222285.0 ], [ 710288.7, 222224.0 ], [ 710246.7, 222169.9 ], [ 710138.6, 222097.3 ], [ 710061.4, 222023.6 ], [ 710002.9, 221988.6 ], [ 709980.5, 221959.6 ], [ 709926.8, 221944.3 ], [ 709919.0, 221922.3 ], [ 709918.4, 221876.6 ], [ 709896.9, 221841.7 ], [ 709895.7, 221804.7 ], [ 709887.7, 221791.0 ], [ 709830.1, 221739.0 ], [ 709841.8, 221779.2 ], [ 709871.0, 221813.2 ], [ 709871.5, 221830.7 ], [ 709803.2, 221940.6 ], [ 709787.3, 221934.4 ], [ 709791.3, 221903.9 ], [ 709786.7, 221885.8 ], [ 709733.5, 221852.2 ], [ 709709.8, 221845.6 ], [ 709654.2, 221885.1 ], [ 709623.3, 221895.9 ], [ 709573.0, 221981.9 ], [ 709539.0, 222003.7 ], [ 709539.3, 222028.5 ], [ 709563.5, 222061.5 ], [ 709562.4, 222105.4 ], [ 709588.6, 222126.3 ], [ 709611.9, 222172.6 ], [ 709631.9, 222184.7 ], [ 709643.7, 222183.6 ], [ 709666.0, 222160.5 ], [ 709678.0, 222158.1 ], [ 709700.9, 222171.3 ], [ 709700.2, 222185.6 ], [ 709677.1, 222212.5 ], [ 709666.2, 222246.8 ], [ 709644.6, 222283.7 ], [ 709674.2, 222335.0 ], [ 709664.8, 222471.4 ], [ 709671.2, 222500.1 ], [ 709660.7, 222504.3 ], [ 709641.5, 222474.0 ], [ 709615.9, 222460.9 ], [ 709585.8, 222459.0 ], [ 709502.9, 222470.7 ], [ 709486.7, 222467.7 ], [ 709449.9, 222441.1 ], [ 709431.9, 222438.5 ], [ 709384.8, 222453.3 ], [ 709382.3, 222401.3 ], [ 709368.1, 222387.9 ], [ 709279.9, 222341.3 ], [ 709249.8, 222308.8 ], [ 709238.1, 222304.5 ], [ 709178.8, 222312.5 ], [ 709167.094, 222315.752 ], [ 709154.202, 222330.791 ], [ 709136.8, 222327.8 ], [ 709123.3, 222334.2 ], [ 709126.7, 222346.0 ], [ 709149.4, 222358.7 ], [ 709141.6, 222379.8 ], [ 709167.046, 222398.805 ], [ 709185.2, 222446.7 ], [ 709211.5, 222465.2 ], [ 709226.6, 222491.0 ], [ 709202.668, 222467.446 ], [ 709144.694, 222433.74 ], [ 709084.922, 222431.492 ], [ 709007.173, 222413.966 ], [ 708945.154, 222408.123 ], [ 708900.213, 222383.855 ], [ 708857.519, 222377.114 ], [ 708775.6, 222324.1 ], [ 708744.0, 222312.5 ], [ 708658.3, 222311.5 ], [ 708608.2, 222329.3 ], [ 708542.4, 222310.2 ], [ 708511.9, 222310.4 ], [ 708442.1, 222339.3 ], [ 708371.9, 222326.3 ], [ 708306.7, 222302.4 ], [ 708248.4, 222272.1 ], [ 708243.6, 222259.5 ], [ 708250.3, 222240.7 ], [ 708300.6, 222214.3 ], [ 708312.4, 222195.3 ], [ 708300.4, 222180.9 ], [ 708249.2, 222162.4 ], [ 708157.2, 222164.7 ], [ 708127.0, 222148.4 ], [ 708099.6, 222147.0 ], [ 708030.1, 222128.4 ], [ 707933.1, 222133.6 ], [ 707878.5, 222148.4 ], [ 707766.1, 222147.1 ], [ 707663.7, 222123.3 ], [ 707529.5, 222135.1 ], [ 707470.6, 222100.9 ], [ 707418.7, 222092.2 ], [ 707334.7, 222059.9 ], [ 707233.8, 222037.9 ], [ 707228.9, 222029.2 ], [ 707233.9, 222007.7 ], [ 707230.3, 221965.6 ], [ 707248.3, 221954.0 ], [ 707274.8, 221947.8 ], [ 707286.5, 221935.1 ], [ 707291.5, 221922.4 ], [ 707271.2, 221903.2 ], [ 707270.2, 221892.2 ], [ 707296.2, 221820.3 ], [ 707313.1, 221798.0 ], [ 707372.2, 221797.6 ], [ 707428.8, 221806.8 ], [ 707471.6, 221792.5 ], [ 707522.9, 221821.4 ], [ 707594.5, 221840.7 ], [ 707632.4, 221838.3 ], [ 707684.5, 221798.6 ], [ 707698.1, 221779.7 ], [ 707691.6, 221721.9 ], [ 707698.4, 221695.5 ], [ 707672.5, 221649.8 ], [ 707676.5, 221590.3 ], [ 707672.7, 221579.7 ], [ 707650.0, 221562.7 ], [ 707652.0, 221543.7 ], [ 707674.2, 221535.5 ], [ 707771.1, 221537.4 ], [ 707841.6, 221506.3 ], [ 707897.9, 221510.8 ], [ 708002.2, 221488.3 ], [ 708021.2, 221475.2 ], [ 708033.4, 221451.5 ], [ 708010.3, 221410.2 ], [ 708008.8, 221396.1 ], [ 708014.9, 221386.1 ], [ 708047.8, 221363.6 ], [ 708133.7, 221327.7 ], [ 708264.7, 221295.4 ], [ 708285.8, 221276.3 ], [ 708296.6, 221252.0 ], [ 708296.0, 221231.6 ], [ 708203.9, 221140.1 ], [ 708122.2, 221123.1 ], [ 708059.1, 221096.8 ], [ 708020.4, 221088.2 ], [ 707999.4, 221058.7 ], [ 707962.1, 221054.5 ], [ 707909.6, 221012.5 ], [ 707843.3, 221022.0 ], [ 707823.1, 221005.6 ], [ 707785.1, 220996.8 ], [ 707753.9, 220962.4 ], [ 707659.8, 220908.5 ], [ 707648.4, 220896.1 ], [ 707642.9, 220807.6 ], [ 707623.7, 220780.3 ], [ 707604.3, 220769.3 ], [ 707567.1, 220778.8 ], [ 707553.882, 220763.904 ], [ 707348.6, 220779.3 ], [ 707315.0, 220797.8 ], [ 707274.1, 220842.1 ], [ 707243.0, 220863.1 ], [ 707214.2, 220876.4 ], [ 707199.2, 220876.1 ], [ 707156.6, 220861.0 ], [ 707118.3, 220780.0 ], [ 707080.1, 220740.7 ], [ 707033.6, 220659.7 ], [ 706880.7, 220552.6 ], [ 706820.5, 220552.8 ], [ 706594.2, 220620.8 ], [ 706559.3, 220613.1 ], [ 706540.3, 220595.6 ], [ 706532.031, 220573.96 ], [ 706592.0, 220566.3 ], [ 706611.1, 220559.5 ], [ 706622.2, 220544.4 ], [ 706624.6, 220530.2 ], [ 706598.8, 220469.3 ], [ 706609.1, 220445.5 ], [ 706621.2, 220432.0 ], [ 706670.0, 220429.8 ], [ 706712.3, 220405.6 ], [ 706745.7, 220305.8 ], [ 706663.8, 220221.6 ], [ 706652.4, 220172.4 ], [ 706612.8, 220140.7 ], [ 706602.1, 220102.8 ], [ 706564.8, 220070.0 ], [ 706540.2, 220059.8 ], [ 706501.3, 220057.1 ], [ 706491.1, 220063.8 ], [ 706481.5, 220124.4 ], [ 706468.2, 220131.8 ], [ 706436.6, 220117.3 ], [ 706362.3, 220128.9 ], [ 706322.9, 220128.6 ], [ 706307.4, 220122.5 ], [ 706293.1, 220107.0 ], [ 706284.8, 220068.4 ], [ 706255.0, 220032.9 ], [ 706212.3, 220019.0 ], [ 706194.0, 220019.6 ], [ 706169.8, 220005.7 ], [ 706125.8, 220010.0 ], [ 706077.9, 220036.1 ], [ 706027.2, 220052.5 ], [ 705938.9, 220036.6 ], [ 705837.3, 220002.9 ], [ 705802.9, 220022.8 ], [ 705763.0, 220023.9 ], [ 705731.1, 220039.5 ], [ 705715.7, 220039.4 ], [ 705692.1, 220016.7 ], [ 705637.4, 220016.0 ], [ 705590.6, 220046.3 ], [ 705564.7, 220046.5 ], [ 705529.1, 220069.0 ], [ 705488.482, 220083.501 ], [ 705452.7, 220012.6 ], [ 705439.3, 219997.5 ], [ 705431.3, 219997.6 ], [ 705412.4, 220009.6 ], [ 705377.7, 220014.8 ], [ 705339.4, 220053.1 ], [ 705235.5, 220088.9 ], [ 705123.6, 220146.2 ], [ 705116.0, 220161.2 ], [ 705118.6, 220199.9 ], [ 705107.4, 220210.7 ], [ 705050.5, 220187.9 ], [ 705011.3, 220210.1 ], [ 705000.1, 220209.0 ], [ 704967.9, 220187.9 ], [ 704949.1, 220183.6 ], [ 704874.7, 220202.5 ], [ 704757.0, 220245.0 ], [ 704746.5, 220252.1 ], [ 704710.5, 220316.9 ], [ 704689.9, 220377.0 ], [ 704673.2, 220398.1 ], [ 704669.1, 220433.7 ], [ 704661.7, 220444.5 ], [ 704641.3, 220453.1 ], [ 704619.2, 220447.1 ], [ 704523.6, 220358.0 ], [ 704481.3, 220354.3 ], [ 704393.4, 220289.3 ], [ 704377.3, 220291.4 ], [ 704362.6, 220282.9 ], [ 704361.1, 220274.8 ], [ 704390.7, 220234.4 ], [ 704385.8, 220148.3 ], [ 704378.8, 220132.1 ], [ 704349.2, 220121.5 ], [ 704289.0, 220072.2 ], [ 704276.5, 220059.3 ], [ 704274.3, 220046.1 ], [ 704278.8, 220034.9 ], [ 704330.6, 220017.3 ], [ 704360.8, 220018.5 ], [ 704361.8, 219999.3 ], [ 704330.0, 219999.1 ], [ 704253.8, 219966.9 ], [ 704096.0, 219931.1 ], [ 704051.9, 219914.2 ], [ 704011.0, 219931.8 ], [ 703911.0, 219994.9 ], [ 703876.3, 220000.6 ], [ 703844.0, 219997.1 ], [ 703814.7, 219963.1 ], [ 703805.3, 219963.7 ], [ 703740.9, 220002.4 ], [ 703724.19, 220029.092 ], [ 703729.4, 220182.6 ], [ 703714.2, 220194.0 ], [ 703606.9, 220165.6 ], [ 703589.4, 220174.0 ], [ 703572.8, 220249.1 ], [ 703524.9, 220367.0 ], [ 703522.7, 220418.7 ], [ 703513.7, 220441.4 ], [ 703450.3, 220512.9 ], [ 703352.5, 220529.9 ], [ 703320.7, 220546.0 ], [ 703307.9, 220560.3 ], [ 703294.2, 220592.3 ], [ 703284.1, 220671.2 ], [ 703261.2, 220708.3 ], [ 703241.4, 220726.3 ], [ 703228.9, 220729.3 ], [ 703203.9, 220720.8 ], [ 703106.6, 220640.7 ], [ 703096.2, 220627.0 ], [ 703064.0, 220527.0 ], [ 703052.0, 220514.8 ], [ 703018.2, 220500.3 ], [ 702902.563, 220471.127 ], [ 702789.2, 220799.6 ], [ 702653.5, 221073.7 ], [ 702646.4, 221082.8 ], [ 702613.5, 221088.7 ], [ 702598.0, 221089.2 ], [ 702510.9, 221046.5 ], [ 702348.5, 221072.6 ], [ 702269.5, 221059.5 ], [ 701177.5, 220571.1 ], [ 701147.0, 220574.6 ], [ 701103.9, 220596.0 ], [ 701065.8, 220587.1 ], [ 701053.9, 220567.2 ], [ 701022.1, 220468.3 ], [ 700992.1, 220475.3 ], [ 700976.4, 220488.0 ], [ 700808.6, 220686.6 ], [ 700801.9, 220703.7 ], [ 700803.6, 220793.9 ], [ 700793.2, 220814.4 ], [ 700672.9, 220854.8 ], [ 700634.4, 220875.0 ], [ 700620.947, 220889.154 ], [ 700513.2, 220827.8 ], [ 700474.0, 220814.0 ], [ 700200.9, 220786.1 ], [ 700146.8, 220772.2 ], [ 699997.4, 220659.5 ], [ 699664.9, 220532.0 ], [ 699638.3, 220526.6 ], [ 699576.222, 220457.779 ], [ 699528.5, 220352.8 ], [ 699517.9, 220345.7 ], [ 699489.1, 220347.8 ], [ 699420.3, 220384.9 ], [ 699399.4, 220389.3 ], [ 699337.0, 220390.4 ], [ 699242.9, 220402.2 ], [ 699174.4, 220427.6 ], [ 699093.2, 220419.8 ], [ 699060.5, 220440.5 ], [ 699053.0, 220459.5 ], [ 699032.1, 220464.2 ], [ 698991.524, 220489.924 ], [ 698983.8, 220485.123 ], [ 698981.6, 220464.9 ], [ 698964.4, 220443.0 ], [ 698636.1, 220112.3 ], [ 698498.0, 219935.1 ], [ 698441.7, 219852.8 ], [ 698418.2, 219795.6 ], [ 698403.0, 219734.5 ], [ 698393.3, 219567.2 ], [ 698364.5, 219470.9 ], [ 698327.2, 219418.8 ], [ 698276.6, 219373.4 ], [ 698198.4, 219237.1 ], [ 698081.3, 219125.2 ], [ 698047.4, 219069.4 ], [ 697992.6, 218945.6 ], [ 697873.6, 218733.7 ], [ 697815.9, 218551.7 ], [ 697760.9, 218201.0 ], [ 697734.5, 218158.6 ], [ 697692.5, 218141.2 ], [ 697658.7, 218084.2 ], [ 697627.9, 218049.8 ], [ 697552.0, 217909.6 ], [ 697629.6, 217761.3 ], [ 697630.3, 217733.4 ], [ 697602.2, 217699.0 ], [ 697515.9, 217621.6 ], [ 697479.7, 217574.5 ], [ 697401.7, 217398.5 ], [ 697392.745, 217337.975 ], [ 697492.6, 217214.8 ], [ 697551.2, 217160.6 ], [ 697618.4, 217123.1 ], [ 697646.841, 217118.905 ], [ 697572.1, 217005.9 ], [ 697482.0, 216850.1 ], [ 697386.2, 216656.0 ], [ 697349.9, 216556.3 ], [ 697357.5, 216505.5 ], [ 697427.8, 216268.2 ], [ 697476.8, 216076.7 ], [ 697588.0, 216234.0 ], [ 697625.8, 216209.6 ], [ 697536.2, 216072.8 ], [ 697521.7, 216046.2 ], [ 697511.3, 216005.1 ], [ 697515.9, 215959.1 ], [ 697546.698, 215857.394 ], [ 697545.4, 215838.7 ], [ 697565.0, 215761.8 ], [ 697592.8, 215377.2 ], [ 697604.2, 215098.5 ], [ 697600.9, 215038.5 ], [ 697571.9, 214857.5 ], [ 697510.9, 214859.4 ], [ 697511.8, 214837.5 ], [ 697500.2, 214791.2 ], [ 697445.9, 214641.6 ], [ 697382.9, 214541.9 ], [ 697336.7, 214496.0 ], [ 697219.9, 214435.9 ], [ 697141.5, 214336.8 ], [ 697105.5, 214265.6 ], [ 697047.0, 214194.9 ], [ 697013.9, 214139.7 ], [ 696962.6, 214028.6 ], [ 696913.3, 213892.8 ], [ 696909.2, 213829.3 ], [ 696922.1, 213716.8 ], [ 696881.0, 213408.4 ], [ 696807.123, 213188.496 ], [ 696749.9, 213069.7 ], [ 696712.8, 212954.9 ], [ 696696.2, 212865.5 ], [ 696654.6, 212447.5 ], [ 696642.5, 212422.8 ], [ 696535.3, 212332.9 ], [ 696500.8, 212294.4 ], [ 696474.5, 212248.9 ], [ 696419.5, 212030.7 ], [ 696426.0, 211944.6 ], [ 696394.9, 211873.7 ], [ 696397.4, 211848.1 ], [ 696423.3, 211741.6 ], [ 696424.6, 211686.1 ], [ 696471.0, 211625.7 ], [ 696477.4, 211597.6 ], [ 696427.5, 211552.3 ], [ 696380.5, 211473.4 ], [ 696365.1, 211438.7 ], [ 696335.357, 211332.531 ], [ 696297.6, 211352.8 ], [ 696257.026, 211384.606 ], [ 696262.4, 211402.8 ], [ 696299.7, 211426.3 ], [ 696293.6, 211469.5 ], [ 696315.2, 211542.7 ], [ 696314.737, 211560.771 ], [ 696270.7, 211610.2 ], [ 696279.1, 211667.6 ], [ 696266.1, 211689.6 ], [ 696250.3, 211691.5 ], [ 696234.3, 211676.1 ], [ 696223.9, 211646.6 ], [ 696217.2, 211572.8 ], [ 696195.7, 211549.2 ], [ 696116.305, 211537.701 ], [ 696076.2, 211565.1 ], [ 696028.8, 211577.2 ], [ 696016.9, 211590.6 ], [ 696023.4, 211607.8 ], [ 696065.0, 211650.6 ], [ 696075.0, 211678.6 ], [ 696069.1, 211703.2 ], [ 696000.8, 211827.1 ], [ 695991.1, 211910.8 ], [ 695979.7, 211925.8 ], [ 695964.3, 211922.8 ], [ 695940.9, 211899.6 ], [ 695900.0, 211811.4 ], [ 695875.6, 211776.7 ], [ 695848.4, 211753.8 ], [ 695843.8, 211697.8 ], [ 695829.0, 211691.4 ], [ 695810.7, 211699.5 ], [ 695770.9, 211820.2 ], [ 695780.0, 211850.4 ], [ 695809.5, 211876.4 ], [ 695842.8, 211929.2 ], [ 695850.6, 211985.6 ], [ 695886.0, 212021.4 ], [ 695879.9, 212060.4 ], [ 695906.1, 212118.8 ], [ 695905.747, 212141.841 ], [ 695895.1, 212161.8 ], [ 695878.0, 212174.3 ], [ 695753.8, 212212.5 ], [ 695667.4, 212310.0 ], [ 695555.2, 212357.2 ], [ 695529.7, 212378.1 ], [ 695518.3, 212395.1 ], [ 695507.5, 212576.7 ], [ 695504.6, 212583.6 ], [ 695470.2, 212599.0 ], [ 695465.7, 212608.6 ], [ 695475.0, 212646.1 ], [ 695471.2, 212672.4 ], [ 695482.7, 212696.7 ], [ 695483.5, 212719.9 ], [ 695517.4, 212750.7 ], [ 695513.3, 212774.6 ], [ 695445.0, 212754.7 ], [ 695414.3, 212709.1 ], [ 695403.4, 212660.6 ], [ 695383.7, 212634.9 ], [ 695356.3, 212621.3 ], [ 695362.9, 212573.9 ], [ 695329.5, 212494.2 ], [ 695311.6, 212472.0 ], [ 695281.1, 212461.2 ], [ 695262.7, 212414.1 ], [ 695219.2, 212395.6 ], [ 695184.4, 212367.9 ], [ 695094.6, 212256.0 ], [ 695030.5, 212217.7 ], [ 695012.1, 212189.7 ], [ 695006.2, 212167.5 ], [ 694966.5, 212110.8 ], [ 694962.3, 212064.6 ], [ 694948.7, 212061.1 ], [ 694901.3, 212067.9 ], [ 694893.1, 212054.1 ], [ 694891.07, 212032.685 ], [ 694877.8, 212011.6 ], [ 694876.2, 211964.4 ], [ 694860.6, 211956.3 ], [ 694717.7, 211945.4 ], [ 694646.1, 211914.3 ], [ 694593.807, 211942.474 ], [ 694611.995, 211899.7 ], [ 694573.7, 211889.1 ], [ 694491.6, 211851.2 ], [ 694476.6, 211791.2 ], [ 694462.6, 211763.3 ], [ 694402.7, 211670.0 ], [ 694383.0, 211622.1 ], [ 694359.6, 211600.9 ], [ 694343.0, 211533.9 ], [ 694262.2, 211471.2 ], [ 694243.753, 211445.05 ], [ 694220.9, 211441.8 ], [ 694206.7, 211432.8 ], [ 694196.7, 211414.9 ], [ 694203.9, 211411.7 ], [ 694212.7, 211376.7 ], [ 694202.5, 211219.4 ], [ 694217.2, 211187.0 ], [ 694215.5, 211142.7 ], [ 694181.9, 211093.0 ], [ 694150.6, 211003.8 ], [ 694100.3, 210934.7 ], [ 694069.4, 210833.1 ], [ 694018.8, 210768.2 ], [ 693990.7, 210703.3 ], [ 693979.2, 210697.2 ], [ 693967.0, 210702.4 ], [ 693961.2, 210717.4 ], [ 693979.7, 210816.5 ], [ 693982.0, 210925.1 ], [ 693979.0, 210967.7 ], [ 693969.4, 210997.0 ], [ 693955.5, 211011.2 ], [ 693945.1, 211012.1 ], [ 693930.2, 210996.0 ], [ 693940.2, 210958.1 ], [ 693937.0, 210941.5 ], [ 693888.0, 210870.5 ], [ 693840.9, 210824.0 ], [ 693757.6, 210664.0 ], [ 693709.6, 210628.4 ], [ 693708.3, 210580.8 ], [ 693698.3, 210566.2 ], [ 693687.5, 210565.0 ], [ 693676.6, 210575.0 ], [ 693674.1, 210641.1 ], [ 693704.4, 210688.9 ], [ 693694.3, 210760.9 ], [ 693699.5, 210841.3 ], [ 693688.6, 210883.9 ], [ 693703.5, 210970.3 ], [ 693699.6, 210975.5 ], [ 693688.9, 210974.2 ], [ 693667.1, 210920.6 ], [ 693646.4, 210889.9 ], [ 693638.5, 210843.2 ], [ 693622.7, 210827.5 ], [ 693571.7, 210797.9 ], [ 693550.2, 210776.5 ], [ 693514.8, 210733.7 ], [ 693505.2, 210708.9 ], [ 693495.7, 210708.9 ], [ 693491.3, 210726.0 ], [ 693528.0, 210790.2 ], [ 693536.9, 210812.0 ], [ 693533.2, 210824.0 ], [ 693519.2, 210823.3 ], [ 693495.1, 210806.8 ], [ 693422.4, 210739.3 ], [ 693374.8, 210678.2 ], [ 693352.2, 210622.8 ], [ 693354.5, 210471.2 ], [ 693336.6, 210462.2 ], [ 693308.5, 210485.1 ], [ 693280.9, 210525.5 ], [ 693269.1, 210523.2 ], [ 693279.5, 210470.0 ], [ 693217.1, 210330.7 ], [ 693201.3, 210302.2 ], [ 693156.2, 210248.6 ], [ 693144.6, 210214.8 ], [ 693109.7, 210156.9 ], [ 693101.5, 210115.0 ], [ 693088.2, 210088.2 ], [ 693036.7, 210060.9 ], [ 693026.2, 210048.4 ], [ 693017.763, 210024.528 ], [ 693023.3, 210012.8 ], [ 693021.4, 209988.9 ], [ 693026.6, 209956.9 ], [ 693039.8, 209933.4 ], [ 693047.9, 209899.8 ], [ 693104.4, 209863.3 ], [ 693161.8, 209854.5 ], [ 693207.1, 209833.4 ], [ 693229.7, 209806.7 ], [ 693251.27, 209647.87 ], [ 693272.9, 209559.9 ], [ 693299.5, 209498.0 ], [ 693314.59, 209484.567 ], [ 693385.2, 209450.1 ], [ 693393.9, 209419.9 ], [ 693493.1, 209336.5 ], [ 693496.0, 209308.2 ], [ 693555.0, 209232.8 ], [ 693561.1, 209193.9 ], [ 693576.5, 209162.0 ], [ 693579.7, 209143.9 ], [ 693562.6, 209077.4 ], [ 693564.2, 209062.4 ], [ 693586.5, 209020.2 ], [ 693582.0, 209004.9 ], [ 693565.0, 209006.7 ], [ 693541.2, 209045.3 ], [ 693526.4, 209054.1 ], [ 693500.3, 209055.0 ], [ 693460.8, 209070.9 ], [ 693422.4, 209069.9 ], [ 693425.8, 209008.6 ], [ 693431.0, 208989.8 ], [ 693453.3, 208956.0 ], [ 693468.7, 208910.7 ], [ 693492.7, 208886.9 ], [ 693524.2, 208889.0 ], [ 693576.0, 208917.1 ], [ 693589.6, 208918.1 ], [ 693613.7, 208894.9 ], [ 693620.9, 208873.4 ], [ 693615.8, 208841.2 ], [ 693600.7, 208798.9 ], [ 693566.7, 208744.3 ], [ 693543.9, 208624.3 ], [ 693541.7, 208579.2 ], [ 693548.6, 208566.4 ], [ 693593.2, 208533.6 ], [ 693621.9, 208492.4 ], [ 693673.6, 208444.5 ], [ 693682.2, 208416.2 ], [ 693707.9, 208392.0 ], [ 693715.1, 208293.4 ], [ 693732.9, 208268.8 ], [ 693759.0, 208249.9 ], [ 693768.0, 208227.8 ], [ 693762.3, 208214.2 ], [ 693750.7, 208207.4 ], [ 693664.5, 208224.0 ], [ 693648.8, 208217.7 ], [ 693646.8, 208189.7 ], [ 693655.5, 208157.6 ], [ 693684.4, 208125.2 ], [ 693689.4, 208100.2 ], [ 693656.2, 208061.1 ], [ 693613.2, 208034.7 ], [ 693579.9, 207989.7 ], [ 693561.047, 207984.18 ], [ 693500.4, 208004.4 ], [ 693446.6, 207957.9 ], [ 693439.1, 207923.7 ], [ 693386.218, 207891.305 ], [ 693325.8, 207962.1 ], [ 693301.2, 208018.2 ], [ 693093.8, 208242.6 ], [ 693022.7, 208414.9 ], [ 692959.5, 208527.2 ], [ 692914.3, 208563.9 ], [ 692824.9, 208598.7 ], [ 692807.2, 208599.6 ], [ 692741.3, 208584.9 ], [ 692592.8, 208587.4 ], [ 692463.8, 208553.3 ], [ 692396.5, 208567.2 ], [ 692377.8, 208489.5 ], [ 692317.5, 208462.3 ], [ 692263.6, 208472.3 ], [ 691965.1, 208562.2 ], [ 691956.2, 208499.6 ], [ 691949.6, 208490.1 ], [ 691927.5, 208383.1 ], [ 691885.0, 208375.9 ], [ 691855.5, 208374.9 ], [ 691791.2, 208392.7 ], [ 691704.4, 208403.0 ], [ 691442.4, 208407.1 ], [ 691277.0, 208428.5 ], [ 691223.5, 208419.2 ], [ 690964.8, 208276.5 ], [ 690875.003, 208200.103 ], [ 690825.794, 208176.045 ], [ 690655.287, 207977.516 ], [ 690481.4, 208116.6 ], [ 690444.6, 208174.7 ], [ 690433.66, 208208.814 ], [ 690430.0, 208284.4 ], [ 690492.9, 208463.9 ], [ 690494.4, 208559.6 ], [ 690502.0, 208592.0 ], [ 690558.0, 208783.5 ], [ 690604.0, 208888.1 ], [ 690603.6, 208928.9 ], [ 690582.471, 209073.897 ], [ 690460.719, 209223.038 ], [ 690448.6, 209199.4 ], [ 690442.0, 209166.9 ], [ 690487.111, 209077.927 ], [ 690483.5, 209058.8 ], [ 690489.8, 208986.4 ], [ 690465.4, 208895.2 ], [ 690412.6, 208777.5 ], [ 690409.6, 208750.6 ], [ 690245.3, 208567.2 ], [ 690210.765, 208500.866 ], [ 690099.5, 208334.2 ], [ 690086.7, 208328.3 ], [ 690059.4, 208354.5 ], [ 690047.11, 208357.45 ], [ 690008.0, 208314.7 ], [ 689879.0, 208228.5 ], [ 689750.0, 208090.9 ], [ 689677.7, 208061.9 ], [ 689637.17, 208053.63 ], [ 689640.8, 208071.2 ], [ 689698.8, 208151.6 ], [ 689758.2, 208285.9 ], [ 689805.1, 208418.5 ], [ 689802.6, 208427.5 ], [ 689785.6, 208427.5 ], [ 689565.2, 208224.3 ], [ 689248.6, 208041.2 ], [ 689207.4, 208038.1 ], [ 689164.2, 208019.3 ], [ 689118.2, 208011.8 ], [ 689067.8, 208022.2 ], [ 689020.8, 208021.7 ], [ 688992.4, 208031.2 ], [ 688927.1, 208008.7 ], [ 688765.3, 207973.3 ], [ 688774.4, 207953.0 ], [ 688805.9, 207926.9 ], [ 688816.5, 207881.2 ], [ 688813.1, 207869.0 ], [ 688801.8, 207883.9 ], [ 688798.9, 207911.1 ], [ 688778.1, 207923.0 ], [ 688716.0, 207902.4 ], [ 688631.5, 207896.8 ], [ 688580.3, 207875.6 ], [ 688577.8, 207870.7 ], [ 688583.5, 207867.7 ], [ 688649.7, 207873.1 ], [ 688647.8, 207863.1 ], [ 688602.8, 207852.5 ], [ 688602.8, 207836.8 ], [ 688695.9, 207823.7 ], [ 688706.3, 207813.4 ], [ 688704.7, 207800.0 ], [ 688694.7, 207793.7 ], [ 688632.8, 207796.8 ], [ 688592.8, 207785.6 ], [ 688537.8, 207786.2 ], [ 688503.4, 207767.5 ], [ 688435.9, 207756.2 ], [ 688409.7, 207733.7 ], [ 688356.6, 207710.6 ], [ 688235.3, 207625.6 ], [ 688182.8, 207601.2 ], [ 688160.9, 207565.0 ], [ 688136.6, 207545.0 ], [ 688063.1, 207516.8 ], [ 688033.4, 207490.3 ], [ 688005.2, 207476.3 ], [ 687938.7, 207463.1 ], [ 687809.7, 207409.6 ], [ 687797.7, 207388.8 ], [ 687795.4, 207358.8 ], [ 687782.533, 207348.337 ], [ 687755.0, 207398.1 ], [ 687726.3, 207431.9 ], [ 687719.4, 207471.9 ], [ 687708.8, 207495.0 ], [ 687561.9, 207550.6 ], [ 687553.1, 207562.5 ], [ 687548.497, 207593.035 ], [ 687524.733, 207612.452 ], [ 687452.997, 207634.958 ], [ 687436.117, 207649.024 ], [ 687412.205, 207630.738 ], [ 687303.897, 207604.013 ], [ 687247.632, 207612.452 ], [ 687215.28, 207629.331 ], [ 687195.588, 207599.793 ], [ 687153.39, 207557.595 ], [ 687060.554, 207490.078 ], [ 687066.18, 207481.638 ], [ 687087.279, 207476.012 ], [ 687091.499, 207466.165 ], [ 687053.521, 207439.44 ], [ 686881.915, 207481.638 ], [ 686855.19, 207501.33 ], [ 686784.7, 207479.8 ], [ 686757.2, 207481.4 ], [ 686699.1, 207507.8 ], [ 686673.0, 207510.9 ], [ 686641.4, 207524.2 ], [ 686598.9, 207522.0 ], [ 686531.0, 207488.2 ], [ 686484.3, 207452.9 ], [ 686452.4, 207446.8 ], [ 686409.2, 207426.3 ], [ 686399.219, 207435.13 ], [ 686401.5, 207446.2 ], [ 686453.3, 207489.2 ], [ 686472.1, 207519.0 ], [ 686514.0, 207561.2 ], [ 686513.3, 207567.5 ], [ 686506.5, 207571.9 ], [ 686449.5, 207541.4 ], [ 686390.2, 207543.7 ], [ 686367.5, 207549.4 ], [ 686341.5, 207571.7 ], [ 686269.1, 207594.3 ], [ 686186.7, 207597.9 ], [ 686033.0, 207550.2 ], [ 685943.5, 207565.3 ], [ 685922.4, 207574.5 ], [ 685878.1, 207620.1 ], [ 685812.4, 207655.5 ], [ 685783.6, 207660.9 ], [ 685699.9, 207649.9 ], [ 685654.2, 207668.5 ], [ 685623.1, 207659.7 ], [ 685612.7, 207662.5 ], [ 685578.032, 207687.93 ], [ 685530.8, 207759.2 ], [ 685514.4, 207789.0 ], [ 685503.7, 207838.9 ], [ 685461.4, 207881.0 ], [ 685406.0, 207894.2 ], [ 685375.3, 207927.9 ], [ 685328.2, 207963.3 ], [ 685313.278, 207989.322 ], [ 685290.2, 207990.4 ], [ 685205.9, 208026.6 ], [ 685124.7, 208030.2 ], [ 685116.2, 208038.8 ], [ 684984.4, 208082.3 ], [ 684861.5, 208136.4 ], [ 684814.7, 208131.4 ], [ 684784.2, 208144.4 ], [ 684748.075, 208174.444 ], [ 684670.6, 208148.7 ], [ 684577.3, 208080.6 ], [ 684515.8, 208078.1 ], [ 684469.8, 208096.6 ], [ 684376.4, 208083.3 ], [ 684306.5, 208064.9 ], [ 684243.3, 208075.5 ], [ 684222.6, 208072.1 ], [ 684181.9, 208051.1 ], [ 684129.0, 208041.4 ], [ 684041.1, 208003.7 ], [ 683939.7, 207946.8 ], [ 683900.7, 207898.9 ], [ 683820.8, 207819.9 ], [ 683821.3, 207812.9 ], [ 683829.0, 207811.6 ], [ 683896.0, 207822.9 ], [ 683923.3, 207815.6 ], [ 683973.3, 207821.6 ], [ 683985.0, 207814.6 ], [ 683995.0, 207800.6 ], [ 683995.0, 207753.4 ], [ 684022.0, 207691.8 ], [ 684041.5, 207665.9 ], [ 684023.3, 207659.6 ], [ 683969.0, 207660.9 ], [ 683960.3, 207656.2 ], [ 683958.4, 207645.0 ], [ 683982.0, 207611.1 ], [ 683985.9, 207588.1 ], [ 684029.1, 207573.7 ], [ 684034.6, 207568.1 ], [ 684032.1, 207554.8 ], [ 684016.9, 207548.2 ], [ 683975.8, 207557.8 ], [ 683960.7, 207554.2 ], [ 683917.32, 207484.583 ], [ 683906.1, 207476.5 ], [ 683869.1, 207468.7 ], [ 683746.6, 207418.1 ], [ 683739.1, 207373.7 ], [ 683762.8, 207314.0 ], [ 683753.0, 207301.4 ], [ 683654.4, 207321.1 ], [ 683645.9, 207320.2 ], [ 683634.8, 207306.4 ], [ 683652.5, 207276.5 ], [ 683668.5, 207276.5 ], [ 683689.8, 207261.7 ], [ 683747.2, 207245.6 ], [ 683751.3, 207219.0 ], [ 683774.8, 207180.5 ], [ 683766.0, 207162.7 ], [ 683722.8, 207126.5 ], [ 683717.8, 207075.2 ], [ 683692.8, 207019.6 ], [ 683691.3, 206988.4 ], [ 683736.1, 206972.3 ], [ 683750.4, 206950.4 ], [ 683747.0, 206934.7 ], [ 683690.1, 206840.3 ], [ 683692.0, 206829.7 ], [ 683714.6, 206815.5 ], [ 683717.8, 206797.1 ], [ 683673.5, 206727.1 ], [ 683668.5, 206673.4 ], [ 683654.5, 206647.9 ], [ 683661.7, 206618.7 ], [ 683668.2, 206613.4 ], [ 683695.7, 206616.6 ], [ 683779.5, 206632.2 ], [ 683820.3, 206651.2 ], [ 683825.3, 206645.0 ], [ 683744.5, 206514.4 ], [ 683781.1, 206472.6 ], [ 683765.7, 206317.2 ], [ 683745.8, 206266.2 ], [ 683724.3, 206231.8 ], [ 683685.7, 206140.0 ], [ 683630.6, 206043.5 ], [ 683571.7, 205963.9 ], [ 683540.272, 205901.877 ], [ 683404.9, 205730.8 ], [ 683386.0, 205689.5 ], [ 683382.9, 205659.7 ], [ 683395.3, 205618.5 ], [ 683400.5, 205570.7 ], [ 683379.1, 205428.0 ], [ 683397.5, 205378.4 ], [ 683394.0, 205345.4 ], [ 683387.3, 205343.3 ], [ 683376.3, 205352.7 ], [ 683348.5, 205413.6 ], [ 683334.0, 205489.0 ], [ 683301.0, 205599.8 ], [ 683291.0, 205721.2 ], [ 683280.0, 205750.2 ], [ 683271.0, 205751.7 ], [ 683258.6, 205737.8 ], [ 683256.5, 205681.6 ], [ 683237.5, 205634.8 ], [ 683229.2, 205587.3 ], [ 683242.2, 205440.2 ], [ 683233.2, 205380.7 ], [ 683221.7, 205348.8 ], [ 683225.5, 205318.1 ], [ 683212.6, 205277.1 ], [ 683216.2, 205257.2 ], [ 683232.2, 205240.5 ], [ 683288.0, 205211.9 ], [ 683368.9, 205153.7 ], [ 683406.8, 205138.1 ], [ 683451.0, 205057.7 ], [ 683488.2, 205028.2 ], [ 683543.2, 204997.2 ], [ 683550.7, 204984.9 ], [ 683551.0, 204960.4 ], [ 683538.0, 204962.9 ], [ 683522.7, 204989.4 ], [ 683497.5, 205004.4 ], [ 683475.2, 205005.9 ], [ 683481.0, 204990.2 ], [ 683500.8, 204974.8 ], [ 683506.4, 204938.2 ], [ 683515.7, 204930.2 ], [ 683581.2, 204903.3 ], [ 683702.7, 204877.7 ], [ 683824.5, 204873.9 ], [ 683831.8, 204866.4 ], [ 683827.9, 204859.2 ], [ 683762.2, 204851.5 ], [ 683711.3, 204835.7 ], [ 683636.7, 204827.9 ], [ 683587.7, 204809.2 ], [ 683464.5, 204817.2 ], [ 683422.2, 204802.3 ], [ 683330.2, 204802.0 ], [ 683315.2, 204817.5 ], [ 683288.7, 204900.2 ], [ 683262.8, 204916.9 ], [ 683147.9, 204933.2 ], [ 683095.2, 204916.4 ], [ 683066.2, 204916.4 ], [ 683055.2, 204925.4 ], [ 683032.0, 204967.9 ], [ 683014.2, 204981.9 ], [ 683005.0, 204977.1 ], [ 682970.6, 204983.4 ], [ 682924.6, 204979.7 ], [ 682822.5, 204999.7 ], [ 682692.9, 204985.3 ], [ 682606.9, 204995.2 ], [ 682565.8, 205021.2 ], [ 682531.7, 205066.6 ], [ 682513.6, 205184.2 ], [ 682502.8, 205191.1 ], [ 682452.4, 205215.8 ], [ 682294.4, 205259.1 ], [ 682174.1, 205326.3 ], [ 682121.6, 205327.5 ], [ 682035.9, 205341.6 ], [ 681991.1, 205340.3 ], [ 681972.0, 205330.2 ], [ 681938.1, 205288.2 ], [ 681899.5, 205266.7 ], [ 681859.0, 205257.2 ], [ 681758.1, 205249.5 ], [ 681640.2, 205211.7 ], [ 681260.9, 205174.5 ], [ 680998.3, 205134.0 ], [ 680981.7, 205109.6 ], [ 680906.002, 205078.224 ], [ 680868.426, 205046.911 ], [ 677755.925, 202958.341 ], [ 677696.431, 202895.715 ], [ 677690.5, 202798.7 ], [ 677697.0, 202750.7 ], [ 677421.4, 202723.6 ], [ 677347.7, 202703.1 ], [ 677259.3, 202694.4 ], [ 677222.9, 202696.5 ], [ 677024.9, 202737.8 ], [ 676842.9, 202765.1 ], [ 676807.4, 202775.5 ], [ 676809.2, 202790.3 ], [ 676797.7, 202802.7 ], [ 676673.1, 202847.5 ], [ 676560.2, 202954.1 ], [ 676506.2, 202989.8 ], [ 676395.3, 203033.3 ], [ 676291.3, 203099.2 ], [ 676239.2, 203111.3 ], [ 676063.2, 203105.2 ], [ 675861.2, 203062.4 ], [ 675665.5, 203036.5 ], [ 675651.4, 203016.2 ], [ 675559.7, 203037.0 ], [ 675345.9, 203065.8 ], [ 675119.5, 203064.9 ], [ 675054.4, 203053.9 ], [ 674774.2, 202976.4 ], [ 674689.4, 202967.4 ], [ 674579.0, 202934.0 ], [ 674391.6, 202953.1 ], [ 674288.1, 202939.0 ], [ 673598.0, 202641.2 ], [ 673546.8, 202612.2 ], [ 673494.6, 202572.9 ], [ 673470.6, 202580.7 ], [ 673358.6, 202533.4 ], [ 673319.9, 202526.2 ], [ 673289.9, 202538.4 ], [ 673249.2, 202578.0 ], [ 673226.0, 202590.1 ], [ 673177.07, 202584.4 ], [ 672345.2, 202238.4 ], [ 672164.2, 202170.9 ], [ 672120.6, 202172.0 ], [ 672016.3, 202199.1 ], [ 671938.2, 202186.6 ], [ 671905.9, 202242.6 ], [ 671884.815, 202239.91 ], [ 671835.3, 202362.0 ], [ 671737.6, 202355.8 ], [ 671600.8, 202227.3 ], [ 671562.5, 202178.7 ], [ 671350.5, 202271.1 ], [ 671332.2, 202269.9 ], [ 671277.7, 202213.8 ], [ 671294.1, 202187.0 ], [ 671308.3, 202135.7 ], [ 671301.9, 202086.3 ], [ 671176.6, 201920.7 ], [ 671069.6, 201797.6 ], [ 670938.8, 201696.4 ], [ 670884.3, 201672.4 ], [ 670858.6, 201654.1 ], [ 670811.8, 201602.4 ], [ 670772.6, 201544.9 ], [ 670757.1, 201531.1 ], [ 670725.1, 201526.4 ], [ 670701.3, 201509.1 ], [ 670648.3, 201437.4 ], [ 670641.3, 201389.6 ], [ 670616.8, 201353.0 ], [ 670715.0, 201273.6 ], [ 670750.4, 201228.7 ], [ 670697.1, 201185.4 ] ], [ [ 670604.7, 201093.9 ], [ 670643.3, 201138.1 ], [ 670697.1, 201185.4 ] ], [ [ 670604.7, 201093.9 ], [ 670593.6, 201094.9 ], [ 670570.3, 201118.6 ], [ 670549.8, 201180.6 ], [ 670338.8, 201309.1 ], [ 670300.8, 201349.1 ], [ 670283.0, 201378.2 ], [ 670251.9, 201380.5 ], [ 670101.8, 201435.9 ], [ 669985.6, 201471.1 ], [ 669918.8, 201481.7 ], [ 669815.0, 201483.6 ], [ 669736.9, 201472.9 ], [ 669540.8, 201419.1 ], [ 669264.2, 201303.6 ], [ 669150.3, 201300.8 ], [ 668921.2, 201253.0 ], [ 668874.4, 201226.8 ], [ 668803.2, 201153.1 ], [ 668768.0, 201127.4 ], [ 668697.1, 201086.6 ], [ 668657.1, 201070.7 ], [ 668544.9, 201045.9 ], [ 668393.6, 201027.6 ], [ 668257.9, 200989.6 ], [ 668078.0, 200777.9 ], [ 667587.9, 199953.5 ], [ 667505.2, 199872.0 ], [ 667337.7, 199738.2 ], [ 667292.4, 199682.9 ], [ 667263.2, 199620.5 ], [ 667163.4, 199347.9 ], [ 667133.9, 199295.8 ], [ 666993.2, 199167.5 ], [ 666880.8, 199045.7 ], [ 666785.6, 198933.8 ], [ 666635.7, 198737.0 ], [ 666603.2, 198710.1 ], [ 666507.2, 198665.4 ], [ 666307.6, 198579.5 ], [ 666189.1, 198553.8 ], [ 666051.2, 198482.5 ], [ 665780.0, 198223.3 ], [ 665599.1, 198118.2 ], [ 665576.0, 198073.4 ], [ 665559.1, 197941.9 ], [ 665416.3, 197984.4 ], [ 665284.7, 197971.1 ], [ 665250.5, 197957.0 ], [ 665202.5, 197895.8 ], [ 665167.3, 197870.9 ], [ 665147.0, 197867.6 ], [ 665058.3, 197880.6 ], [ 664988.9, 197825.6 ], [ 664973.5, 197787.7 ], [ 664939.9, 197764.5 ], [ 664913.2, 197735.0 ], [ 664834.9, 197709.9 ], [ 664810.6, 197691.3 ], [ 664750.2, 197619.0 ], [ 664657.0, 197525.5 ], [ 664614.1, 197421.4 ], [ 664606.9, 197382.0 ], [ 664627.4, 197233.0 ], [ 664578.7, 197163.8 ], [ 664551.6, 197099.4 ], [ 664511.4, 197055.5 ], [ 664500.7, 197020.0 ], [ 664450.4, 196977.5 ], [ 664408.4, 196896.3 ], [ 664372.7, 196860.0 ], [ 664318.5, 196820.0 ], [ 664296.8, 196791.5 ], [ 664289.0, 196729.0 ], [ 664328.0, 196672.6 ], [ 664339.3, 196617.8 ], [ 664322.0, 196533.8 ], [ 664286.5, 196474.5 ], [ 664285.5, 196460.7 ], [ 664330.0, 196432.3 ], [ 664375.7, 196392.2 ], [ 664359.0, 196363.6 ], [ 664341.5, 196305.0 ], [ 664314.4, 196156.6 ], [ 664360.4, 196114.3 ], [ 664296.3, 195953.8 ], [ 664297.6, 195920.4 ], [ 664334.5, 195803.3 ], [ 664328.5, 195750.3 ], [ 664304.0, 195712.3 ], [ 664128.8, 195580.4 ], [ 663997.2, 195581.9 ], [ 663928.1, 195544.5 ], [ 663904.6, 195523.2 ], [ 663883.4, 195486.9 ], [ 663830.5, 195354.0 ], [ 663845.3, 195311.6 ], [ 663847.1, 195268.7 ], [ 663835.2, 195097.8 ], [ 663726.1, 194945.8 ], [ 663719.7, 194908.0 ], [ 663692.9, 194847.3 ], [ 663688.0, 194819.1 ], [ 663693.8, 194760.6 ], [ 663585.681, 194814.497 ], [ 663552.8, 194746.2 ], [ 663526.2, 194717.4 ], [ 663442.1, 194657.9 ], [ 663417.2, 194629.6 ], [ 663356.5, 194526.1 ], [ 663308.0, 194462.8 ], [ 663285.5, 194465.2 ], [ 663239.5, 194503.3 ], [ 663193.8, 194477.6 ], [ 663169.0, 194452.6 ], [ 663141.0, 194439.3 ], [ 663079.8, 194452.0 ], [ 663044.2, 194434.2 ], [ 662927.3, 194337.3 ], [ 662924.6, 194313.1 ], [ 662908.9, 194274.7 ], [ 662898.3, 194258.3 ], [ 662848.8, 194221.3 ], [ 662833.6, 194192.2 ], [ 662766.7, 194172.5 ], [ 662731.5, 194155.1 ], [ 662680.8, 194110.3 ], [ 662652.1, 194062.9 ], [ 662554.8, 193978.7 ], [ 662415.5, 193907.8 ], [ 662383.1, 193887.0 ], [ 662337.3, 193836.2 ], [ 662303.3, 193822.3 ], [ 662213.2, 193760.4 ], [ 662150.3, 193687.8 ], [ 662054.350617, 193534.006904 ] ], [ [ 559386.0, 143029.3 ], [ 559379.733, 143043.526 ], [ 559360.931183, 143054.964848 ] ], [ [ 559386.0, 143029.3 ], [ 559399.7, 143007.7 ], [ 559372.029, 143023.301 ], [ 559360.931183, 143054.964848 ] ], [ [ 758161.6, 256998.1 ], [ 758158.4, 256973.3 ], [ 758068.9, 256988.1 ], [ 758071.8, 257012.3 ] ], [ [ 758161.6, 256998.1 ], [ 758185.9, 257149.5 ], [ 758225.2, 257074.1 ], [ 758280.5, 256932.9 ], [ 758292.8, 256924.2 ], [ 758309.3, 256923.9 ], [ 758348.9, 256958.0 ], [ 758372.0, 256881.9 ], [ 758366.7, 256860.9 ], [ 758354.5, 256845.4 ], [ 758308.2, 256817.6 ], [ 758155.1, 256779.5 ], [ 758097.0, 256802.9 ], [ 758066.1, 256742.9 ], [ 758044.2, 256635.5 ], [ 758087.4, 256598.0 ], [ 758112.1, 256561.9 ], [ 758128.7, 256475.0 ], [ 758149.5, 256424.0 ], [ 758152.7, 256316.7 ], [ 758149.2, 256282.6 ], [ 758076.2, 256106.7 ], [ 758077.7, 256078.0 ], [ 758059.4, 256072.6 ], [ 758059.0, 256021.8 ], [ 758070.3, 256007.3 ], [ 758166.3, 255981.6 ], [ 758209.2, 255956.9 ], [ 758264.8, 255908.8 ], [ 758276.0, 255887.1 ], [ 758275.2, 255870.4 ], [ 758268.5, 255860.2 ], [ 758248.8, 255853.5 ], [ 758213.3, 255876.3 ], [ 758195.3, 255871.8 ], [ 758036.5, 255777.5 ], [ 758036.5, 255764.3 ], [ 758049.0, 255756.6 ], [ 758087.6, 255767.2 ], [ 758124.6, 255765.8 ], [ 758133.6, 255750.2 ], [ 758130.3, 255704.7 ], [ 758142.3, 255662.3 ], [ 758145.3, 255597.6 ], [ 758124.8, 255506.0 ], [ 758101.1, 255450.4 ], [ 758038.0, 255373.1 ], [ 758004.3, 255270.5 ], [ 757981.1, 255280.2 ], [ 757934.2, 255273.0 ], [ 757709.7, 255093.6 ], [ 757653.9, 255059.6 ], [ 757611.3, 254990.6 ], [ 757528.9, 254894.5 ], [ 757478.1, 254880.3 ], [ 757418.1, 254872.8 ], [ 757275.8, 254825.7 ], [ 757240.6, 254797.5 ], [ 757169.6, 254721.3 ], [ 757132.0, 254699.4 ], [ 757053.4, 254719.6 ], [ 756914.1, 254732.4 ], [ 756825.9, 254711.9 ], [ 756652.9, 254705.8 ], [ 756522.9, 254733.4 ], [ 756342.7, 254748.4 ], [ 756314.9, 254746.4 ], [ 756093.7, 254691.4 ], [ 756074.2, 254696.0 ], [ 755972.9, 254759.8 ], [ 755839.5, 254603.8 ], [ 755791.8, 254477.6 ], [ 755774.0, 254458.1 ], [ 755727.5, 254426.9 ], [ 755728.7, 254392.9 ], [ 755710.2, 254374.9 ], [ 755531.8, 254344.4 ], [ 755511.9, 254334.6 ], [ 755474.1, 254334.6 ], [ 755401.8, 254319.7 ], [ 755256.2, 254323.9 ], [ 755167.6, 254313.9 ], [ 755144.9, 254307.2 ], [ 755049.2, 254241.6 ], [ 754963.9, 254155.2 ], [ 754929.7, 254103.2 ], [ 754762.8, 254088.8 ], [ 754697.1, 254052.1 ], [ 754593.2, 254065.9 ], [ 754571.4, 254062.6 ], [ 754553.5, 254017.4 ], [ 754564.924, 253982.316 ], [ 754640.7, 253885.8 ], [ 754668.6, 253878.0 ], [ 754665.7, 253861.8 ], [ 754629.2, 253843.8 ], [ 754572.4, 253796.3 ], [ 754481.4, 253739.6 ], [ 754445.7, 253699.7 ], [ 754355.6, 253656.1 ], [ 754297.7, 253693.1 ], [ 754280.6, 253693.5 ], [ 754217.1, 253674.9 ], [ 754109.0, 253677.2 ], [ 754095.2, 253673.9 ], [ 754028.5, 253624.9 ], [ 754008.5, 253588.9 ], [ 753986.5, 253571.4 ], [ 753952.0, 253576.7 ], [ 753909.5, 253571.9 ], [ 753848.2, 253586.1 ], [ 753814.9, 253584.7 ], [ 753713.7, 253562.2 ], [ 753666.3, 253570.4 ], [ 753580.2, 253563.9 ], [ 753549.3, 253557.9 ], [ 753498.2, 253523.9 ], [ 753442.0, 253514.5 ], [ 753370.8, 253490.2 ], [ 753357.2, 253491.9 ], [ 753344.5, 253510.4 ], [ 753189.0, 253493.9 ], [ 753180.5, 253485.2 ], [ 753184.5, 253468.4 ], [ 753246.2, 253388.9 ], [ 753272.2, 253334.2 ], [ 753325.0, 253269.7 ], [ 753319.8, 253223.2 ], [ 753339.2, 253180.7 ], [ 753354.7, 253157.9 ], [ 753368.6, 253149.0 ], [ 753347.7, 253097.2 ], [ 753372.3, 253065.5 ], [ 753370.7, 252999.1 ], [ 753378.9, 252995.9 ], [ 753400.4, 253019.7 ], [ 753416.7, 253019.8 ], [ 753439.8, 253016.7 ], [ 753478.3, 252990.4 ], [ 753488.3, 252914.1 ], [ 753525.2, 252836.8 ], [ 753595.6, 252829.4 ], [ 753597.5, 252815.7 ], [ 753421.6, 252793.2 ], [ 753326.1, 252749.4 ], [ 753279.2, 252694.3 ], [ 753245.4, 252669.8 ], [ 753208.4, 252629.0 ], [ 753133.9, 252527.3 ], [ 753094.9, 252487.3 ], [ 753063.9, 252486.1 ], [ 753053.3, 252494.4 ], [ 753047.0, 252518.4 ], [ 753089.2, 252697.3 ], [ 753150.5, 252783.7 ], [ 753152.1, 252852.2 ], [ 753169.4, 252918.6 ], [ 753168.1, 252936.0 ], [ 753159.5, 252951.2 ], [ 753135.3, 252961.8 ], [ 752925.7, 252957.3 ], [ 752902.7, 252947.8 ], [ 752903.9, 252932.8 ], [ 752918.7, 252922.3 ], [ 753030.6, 252861.2 ], [ 753035.2, 252829.6 ], [ 753016.4, 252781.6 ], [ 752990.9, 252763.1 ], [ 752948.9, 252710.8 ], [ 752927.7, 252718.3 ], [ 752917.0, 252746.4 ], [ 752903.8, 252759.1 ], [ 752885.1, 252646.6 ], [ 752849.0, 252525.0 ], [ 752858.8, 252467.3 ], [ 752850.3, 252373.4 ], [ 752858.5, 252265.3 ], [ 752783.5, 252115.1 ], [ 752762.4, 251986.8 ], [ 752815.5, 251783.4 ], [ 752808.6, 251736.5 ], [ 752903.9, 251679.1 ], [ 752991.7, 251670.8 ], [ 753099.8, 251635.7 ], [ 753172.5, 251670.5 ], [ 753257.9, 251653.5 ], [ 753286.3, 251639.3 ], [ 753333.7, 251580.2 ], [ 753365.3, 251559.9 ], [ 753440.242, 251537.659 ], [ 753452.3, 251527.2 ], [ 753491.9, 251460.1 ], [ 753514.1, 251435.1 ], [ 753521.5, 251406.4 ], [ 753553.7, 251369.8 ], [ 753624.9, 251318.6 ], [ 753640.5, 251311.9 ], [ 753666.6, 251312.8 ], [ 753706.6, 251240.1 ], [ 753760.0, 251181.1 ], [ 753773.2, 251172.1 ], [ 753823.5, 251177.8 ], [ 753860.7, 251148.6 ], [ 753860.5, 251141.3 ], [ 753788.2, 251116.1 ], [ 753721.2, 251047.8 ], [ 753675.6, 250917.6 ], [ 753680.4, 250775.3 ], [ 753710.7, 250703.6 ], [ 753726.6, 250631.5 ], [ 753771.5, 250616.4 ], [ 753854.5, 250602.7 ], [ 753893.9, 250604.4 ], [ 753947.5, 250541.1 ], [ 753965.7, 250531.6 ], [ 753993.4, 250531.0 ], [ 754018.6, 250517.1 ], [ 754052.4, 250509.1 ], [ 754188.1, 250434.7 ], [ 754206.6, 250431.9 ], [ 754242.9, 250441.5 ], [ 754289.7, 250428.0 ], [ 754303.7, 250417.0 ], [ 754316.7, 250372.8 ], [ 754332.0, 250372.3 ], [ 754357.0, 250388.1 ], [ 754389.7, 250395.0 ], [ 754399.5, 250381.1 ], [ 754410.7, 250267.1 ], [ 754418.5, 250258.1 ], [ 754554.9, 250241.1 ], [ 754580.8, 250221.3 ], [ 754598.0, 250216.3 ], [ 754675.2, 250236.3 ], [ 754686.2, 250234.3 ], [ 754630.0, 250180.8 ], [ 754633.5, 250125.0 ], [ 754606.5, 250081.3 ], [ 754623.4, 250007.4 ], [ 754612.3, 249887.1 ], [ 754622.9, 249852.1 ], [ 754633.6, 249841.0 ], [ 754634.2, 249822.9 ], [ 754555.7, 249722.1 ], [ 754522.7, 249645.9 ], [ 754525.9, 249620.8 ], [ 754564.8, 249552.4 ], [ 754571.1, 249527.0 ], [ 754569.1, 249487.1 ], [ 754562.4, 249452.9 ], [ 754533.0, 249397.6 ], [ 754520.2, 249323.3 ], [ 754482.4, 249270.7 ], [ 754481.4, 249256.9 ], [ 754570.4, 249218.1 ], [ 754576.2, 249178.7 ], [ 754562.5, 249130.2 ], [ 754559.8, 249094.8 ], [ 754527.9, 249002.7 ], [ 754486.1, 248955.1 ], [ 754403.0, 248876.5 ], [ 754356.7, 248843.2 ], [ 754333.4, 248834.3 ], [ 754279.9, 248830.2 ], [ 754136.9, 248755.4 ], [ 753952.7, 248682.3 ], [ 753929.9, 248679.4 ], [ 753918.9, 248684.7 ], [ 753898.0, 248714.7 ], [ 753889.4, 248715.0 ], [ 753831.3, 248691.6 ], [ 753781.9, 248683.2 ], [ 753616.7, 248504.5 ], [ 753591.1, 248454.5 ], [ 753547.2, 248424.7 ], [ 753481.6, 248353.1 ], [ 753400.2, 248304.4 ], [ 753360.9, 248272.3 ], [ 753260.4, 248167.3 ], [ 753137.9, 248133.6 ], [ 752977.8, 248056.7 ], [ 752776.0, 247975.9 ], [ 752704.7, 247987.4 ], [ 752659.9, 247972.0 ], [ 752538.2, 247764.0 ], [ 752489.3, 247727.1 ], [ 752444.6, 247704.6 ], [ 752393.2, 247661.3 ], [ 752372.6, 247679.4 ], [ 752276.9, 247685.5 ], [ 752148.1, 247673.2 ], [ 752116.4, 247658.9 ], [ 752099.4, 247640.0 ], [ 752099.9, 247574.6 ], [ 752111.1, 247528.6 ], [ 752161.8, 247456.1 ], [ 752196.8, 247434.5 ], [ 752199.2, 247421.2 ], [ 752212.6, 247421.4 ], [ 752214.9, 247415.3 ], [ 752193.4, 247370.8 ], [ 752180.0, 247318.5 ], [ 752164.0, 247127.7 ], [ 752171.9, 247095.1 ], [ 752188.4, 247072.1 ], [ 752222.3, 247073.0 ], [ 752270.9, 247023.9 ], [ 752322.9, 246950.9 ], [ 752323.5, 246939.2 ], [ 752297.7, 246900.3 ], [ 752290.4, 246877.9 ], [ 752352.6, 246748.2 ], [ 752333.7, 246679.2 ], [ 752305.3, 246615.7 ], [ 752302.4, 246571.9 ], [ 752320.0, 246483.6 ], [ 752335.2, 246324.9 ], [ 752351.1, 246267.9 ], [ 752352.2, 246220.2 ], [ 752356.6, 246205.0 ], [ 752372.1, 246187.2 ], [ 752382.2, 246146.1 ], [ 752369.0, 246112.5 ], [ 752404.5, 246041.1 ], [ 752435.6, 245957.5 ], [ 752440.0, 245905.2 ], [ 752483.1, 245770.7 ], [ 752491.1, 245698.2 ], [ 752484.6, 245659.0 ], [ 752540.6, 245473.2 ], [ 752604.7, 245362.6 ], [ 752601.5, 245338.9 ], [ 752635.4, 245287.2 ], [ 752664.9, 245268.5 ], [ 752660.4, 245256.0 ], [ 752641.9, 245242.9 ], [ 752697.5, 245223.6 ], [ 752710.216, 245212.486 ], [ 752740.3, 245214.0 ], [ 752756.3, 245205.0 ], [ 752790.1, 245156.6 ], [ 752825.9, 245131.1 ], [ 752906.0, 245118.2 ], [ 753018.1, 245032.0 ], [ 753031.8, 245010.0 ], [ 753031.7, 244990.6 ], [ 752966.6, 244956.9 ], [ 752957.9, 244942.8 ], [ 752952.0, 244894.9 ], [ 752943.3, 244884.2 ], [ 752866.5, 244849.5 ], [ 752816.1, 244812.5 ], [ 752792.3, 244802.8 ], [ 752738.9, 244801.1 ], [ 752639.8, 244830.0 ], [ 752623.3, 244828.5 ], [ 752582.1, 244780.7 ], [ 752469.0, 244711.6 ], [ 752421.6, 244654.9 ], [ 752403.4, 244610.6 ], [ 752546.3, 244583.6 ], [ 752769.0, 244587.3 ], [ 752849.8, 244570.8 ], [ 752925.9, 244532.4 ], [ 753181.4, 244340.7 ], [ 753095.6, 244276.7 ], [ 752991.1, 244233.7 ], [ 752970.315, 244233.606 ], [ 752919.562, 244214.596 ], [ 752695.8, 244158.4 ], [ 752337.3, 244084.4 ], [ 752270.3, 244061.2 ], [ 751896.7, 243886.0 ], [ 751842.1, 243836.2 ], [ 751765.4, 243705.5 ], [ 751630.1, 243682.7 ], [ 751515.0, 243645.7 ], [ 751480.4, 243632.8 ], [ 751412.4, 243583.6 ], [ 751367.6, 243571.1 ], [ 751035.8, 243615.5 ], [ 750994.5, 243626.5 ], [ 750949.1, 243651.8 ], [ 750805.8, 243698.5 ], [ 750764.4, 243703.7 ], [ 750542.0, 243702.6 ], [ 750432.8, 243725.2 ], [ 750348.7, 243735.4 ], [ 750216.8, 243801.2 ], [ 750053.6, 243823.0 ], [ 749960.9, 243844.0 ], [ 749857.8, 243903.3 ], [ 749818.7, 243917.7 ], [ 749769.8, 243899.3 ], [ 749601.3, 243874.2 ], [ 749501.3, 243929.4 ], [ 749315.7, 243972.8 ], [ 749279.0, 243997.2 ], [ 749196.0, 244085.5 ], [ 749171.9, 244102.9 ], [ 749088.8, 244123.7 ], [ 749062.9, 244093.0 ], [ 749147.5, 243941.9 ], [ 749069.9, 243896.5 ], [ 749091.3, 243837.9 ], [ 749100.4, 243752.6 ], [ 749119.8, 243700.1 ], [ 749129.1, 243675.9 ], [ 749161.6, 243628.5 ], [ 749416.2, 243440.7 ], [ 749457.7, 243399.3 ], [ 749475.6, 243129.9 ], [ 749514.4, 242948.8 ], [ 749529.9, 242901.6 ], [ 749612.3, 242748.0 ], [ 749910.5, 242593.2 ], [ 750015.5, 242552.5 ], [ 750142.9, 242513.0 ], [ 750212.0, 242472.6 ], [ 750323.9, 242470.3 ], [ 750380.5, 242456.5 ], [ 750519.4, 242317.4 ], [ 750565.2, 242280.5 ], [ 750616.5, 242204.8 ], [ 750681.0, 242125.3 ], [ 750688.2, 242011.8 ], [ 750697.7, 241978.8 ], [ 750669.6, 241902.1 ], [ 750665.7, 241842.9 ], [ 750716.7, 241787.1 ], [ 750772.7, 241813.0 ], [ 750811.5, 241799.0 ], [ 750856.8, 241792.2 ], [ 750855.0, 241778.0 ], [ 750865.7, 241764.2 ], [ 750937.7, 241720.8 ], [ 750933.0, 241668.8 ], [ 750976.7, 241593.8 ], [ 750975.0, 241575.0 ], [ 750858.8, 241504.5 ], [ 750831.5, 241495.3 ], [ 750787.2, 241498.0 ], [ 750773.7, 241492.8 ], [ 750708.6, 241439.4 ], [ 750663.0, 241388.8 ], [ 750630.2, 241259.0 ], [ 750591.5, 241217.6 ], [ 750361.5, 241234.6 ], [ 750268.8, 241235.6 ], [ 750228.2, 241226.3 ], [ 750079.7, 241155.6 ], [ 749791.0, 240972.0 ], [ 749667.5, 240847.5 ], [ 749596.6, 240811.0 ], [ 749549.4, 240770.0 ], [ 749080.2, 240570.6 ], [ 748966.7, 240513.6 ], [ 748847.0, 240434.6 ], [ 748827.2, 240424.3 ], [ 748786.5, 240416.3 ], [ 748670.3, 240327.4 ], [ 748646.4, 240298.2 ], [ 748592.5, 240266.2 ], [ 748522.6, 240204.8 ], [ 748425.2, 240143.3 ], [ 748355.4, 240061.1 ], [ 748320.0, 240032.9 ], [ 748262.0, 240038.6 ], [ 747983.0, 239970.4 ], [ 747945.5, 239958.1 ], [ 747732.4, 239850.5 ], [ 747644.9, 239845.1 ], [ 747629.4, 239831.8 ], [ 747605.6, 239788.8 ], [ 747573.6, 239770.8 ], [ 747554.9, 239730.1 ], [ 747544.4, 239721.8 ], [ 747497.6, 239740.8 ], [ 747472.6, 239740.3 ], [ 747322.3, 239675.1 ], [ 747311.0, 239664.4 ], [ 747297.9, 239623.1 ], [ 747269.2, 239583.5 ], [ 747260.8, 239529.4 ], [ 747251.4, 239518.8 ], [ 747236.4, 239516.1 ], [ 747195.6, 239524.1 ], [ 747167.5, 239547.3 ], [ 747109.9, 239571.0 ], [ 747047.9, 239552.1 ], [ 746879.8, 239476.3 ], [ 746766.8, 239438.5 ], [ 746670.6, 239412.8 ], [ 746628.3, 239405.5 ], [ 746553.1, 239404.0 ], [ 746485.5, 239385.6 ], [ 746332.1, 239305.4 ], [ 746215.9, 239211.2 ], [ 746124.6, 239186.6 ], [ 746042.9, 239108.9 ], [ 745985.1, 239067.6 ], [ 745890.3, 239038.8 ], [ 745784.1, 239015.8 ], [ 745652.0, 238942.3 ], [ 745445.6, 238865.8 ], [ 745391.1, 238839.8 ], [ 745339.6, 238794.8 ], [ 745203.3, 238635.9 ], [ 745020.9, 238509.1 ], [ 744982.5, 238474.8 ], [ 744954.0, 238430.3 ], [ 744879.3, 238359.4 ], [ 744834.7, 238307.4 ], [ 744763.2, 238175.2 ], [ 744727.0, 238125.9 ], [ 744717.1, 238120.1 ], [ 744670.1, 238116.3 ], [ 744644.8, 238092.0 ], [ 744630.3, 238086.2 ], [ 744575.6, 238091.6 ], [ 744524.2, 238046.9 ], [ 744482.6, 238029.3 ], [ 744450.0, 238003.5 ], [ 744435.8, 237975.0 ], [ 744431.4, 237876.0 ], [ 744405.6, 237752.2 ], [ 744396.1, 237743.6 ], [ 744335.1, 237735.9 ], [ 744299.5, 237712.4 ], [ 744224.5, 237619.3 ], [ 744173.7, 237532.7 ], [ 744187.3, 237421.0 ], [ 744199.0, 237375.9 ], [ 744211.1, 237360.2 ], [ 744288.5, 237320.8 ], [ 744302.0, 237303.2 ], [ 744305.3, 237242.2 ], [ 744256.3, 237204.0 ], [ 744222.1, 237142.0 ], [ 744190.5, 237105.5 ], [ 744132.0, 237070.7 ], [ 744156.6, 237022.0 ], [ 744249.0, 236978.8 ], [ 744166.6, 236934.7 ], [ 744106.0, 236929.6 ], [ 744068.7, 236915.6 ], [ 743930.5, 236936.4 ], [ 743830.7, 236993.3 ], [ 743811.0, 236995.1 ], [ 743750.5, 236913.2 ], [ 743755.4, 236854.5 ], [ 743744.7, 236789.7 ], [ 743639.7, 236759.6 ], [ 743625.2, 236763.1 ], [ 743562.4, 236810.0 ], [ 743527.7, 236844.0 ], [ 743460.6, 236882.5 ], [ 743442.5, 236901.3 ], [ 743421.0, 236972.3 ], [ 743391.7, 237004.7 ], [ 743326.5, 237025.7 ], [ 743290.5, 237059.5 ], [ 743237.2, 237054.4 ], [ 743231.7, 237042.4 ], [ 743237.0, 237011.6 ], [ 743202.4, 236964.3 ], [ 743126.6, 236909.4 ], [ 743114.1, 236884.7 ], [ 743073.9, 236842.7 ], [ 743087.4, 236806.9 ], [ 743073.6, 236761.9 ], [ 743082.6, 236673.1 ], [ 743080.4, 236614.4 ], [ 743064.6, 236547.9 ], [ 743068.9, 236501.1 ], [ 743063.9, 236453.6 ], [ 743052.4, 236424.6 ], [ 743040.0, 236417.1 ], [ 743050.2, 236369.0 ], [ 743083.2, 236293.8 ], [ 743105.5, 236216.4 ], [ 743144.5, 236147.7 ], [ 743149.5, 236116.9 ], [ 743142.5, 236092.7 ], [ 743057.0, 235990.4 ], [ 743012.0, 235909.7 ], [ 742900.2, 235833.4 ], [ 742839.5, 235773.7 ], [ 742802.5, 235706.5 ], [ 742779.0, 235682.3 ], [ 742752.2, 235667.7 ], [ 742622.6, 235634.2 ], [ 742574.1, 235615.7 ], [ 742500.0, 235566.8 ], [ 742460.9, 235529.8 ], [ 742431.4, 235515.3 ], [ 742413.9, 235513.1 ], [ 742398.6, 235524.6 ], [ 742382.3, 235585.9 ], [ 742366.4, 235583.3 ], [ 742255.7, 235621.3 ], [ 741904.6, 235525.6 ], [ 741794.3, 235439.1 ], [ 741777.2, 235434.9 ], [ 741763.8, 235446.0 ], [ 741739.7, 235503.9 ], [ 741734.9, 235552.9 ], [ 741724.1, 235562.3 ], [ 741553.0, 235537.6 ], [ 741531.7, 235541.8 ], [ 741486.5, 235565.8 ], [ 741459.4, 235552.0 ], [ 741371.8, 235533.9 ], [ 741359.6, 235524.6 ], [ 741261.2, 235373.5 ], [ 741236.8, 235348.1 ], [ 741264.3, 235297.9 ], [ 741293.8, 235263.2 ], [ 741325.3, 235250.5 ], [ 741418.7, 235237.0 ], [ 741458.5, 235190.3 ], [ 741567.9, 235123.7 ], [ 741580.2, 235099.4 ], [ 741581.6, 235069.2 ], [ 741555.0, 234988.0 ], [ 741561.4, 234911.9 ], [ 741549.6, 234900.1 ], [ 741519.6, 234889.6 ], [ 741514.4, 234873.6 ], [ 741523.1, 234861.1 ], [ 741608.2, 234823.5 ], [ 741621.2, 234809.2 ], [ 741619.5, 234780.3 ], [ 741601.6, 234738.4 ], [ 741577.8, 234703.2 ], [ 741561.1, 234689.8 ], [ 741541.9, 234684.8 ], [ 741417.8, 234696.0 ], [ 741372.7, 234692.5 ], [ 741351.1, 234681.9 ], [ 741314.3, 234616.6 ], [ 741218.7, 234494.5 ], [ 741098.0, 234301.1 ], [ 741102.7, 234282.0 ], [ 741114.3, 234270.2 ], [ 741182.2, 234256.3 ], [ 741196.5, 234234.8 ], [ 741189.8, 234210.5 ], [ 741135.2, 234179.6 ], [ 741118.2, 234161.2 ], [ 741139.3, 234125.0 ], [ 741153.0, 234085.2 ], [ 741141.9, 233875.9 ], [ 741096.6, 233825.6 ], [ 741022.3, 233821.2 ], [ 740984.8, 233805.0 ], [ 740949.6, 233779.5 ], [ 740829.0, 233795.1 ], [ 740787.4, 233788.7 ], [ 740756.5, 233776.4 ], [ 740681.0, 233693.9 ], [ 740709.6, 233662.4 ], [ 740782.2, 233615.9 ], [ 740796.1, 233598.4 ], [ 740798.0, 233559.9 ], [ 740792.1, 233547.3 ], [ 740750.1, 233500.4 ], [ 740648.2, 233481.7 ], [ 740618.3, 233482.7 ], [ 740516.1, 233514.3 ], [ 740443.5, 233529.2 ], [ 740433.8, 233527.9 ], [ 740416.3, 233478.9 ], [ 740397.1, 233461.0 ], [ 740318.4, 233460.6 ], [ 740261.7, 233473.9 ], [ 740168.4, 233480.8 ], [ 740061.6, 233546.3 ], [ 739965.3, 233624.0 ], [ 739907.0, 233697.1 ], [ 739897.8, 233749.9 ], [ 739912.7, 233792.8 ], [ 739953.1, 233831.8 ], [ 740039.0, 233882.0 ], [ 740049.7, 233944.1 ], [ 740076.2, 233964.0 ], [ 740084.9, 233979.1 ], [ 740089.0, 234011.5 ], [ 740075.6, 234067.8 ], [ 740074.6, 234130.6 ], [ 740063.2, 234141.1 ], [ 740055.1, 234135.6 ], [ 740056.8, 234090.9 ], [ 740049.6, 234051.8 ], [ 740041.3, 234030.5 ], [ 740027.6, 234019.8 ], [ 739932.2, 234027.9 ], [ 739837.6, 234054.4 ], [ 739816.3, 234052.0 ], [ 739772.0, 234017.9 ], [ 739730.2, 234054.9 ], [ 739642.7, 234096.6 ], [ 739615.6, 234099.0 ], [ 739548.9, 234050.6 ], [ 739528.8, 234044.2 ], [ 739419.8, 234071.4 ], [ 739395.0, 234072.2 ], [ 739264.6, 234001.1 ], [ 739202.8, 233951.4 ], [ 739180.4, 233943.1 ], [ 739110.1, 233952.6 ], [ 739102.7, 233943.7 ], [ 739099.7, 233908.7 ], [ 739089.3, 233898.3 ], [ 738991.2, 233915.6 ], [ 738804.3, 233856.5 ], [ 738738.728, 233847.954 ], [ 738747.5, 233811.2 ], [ 738751.8, 233726.2 ], [ 738788.0, 233683.9 ], [ 738815.1, 233664.5 ], [ 738856.8, 233649.2 ], [ 738863.3, 233635.7 ], [ 738824.5, 233586.5 ], [ 738799.3, 233576.0 ], [ 738676.6, 233482.7 ], [ 738663.8, 233477.1 ], [ 738561.3, 233471.8 ], [ 738553.8, 233460.2 ], [ 738559.8, 233451.7 ], [ 738607.0, 233453.9 ], [ 738700.0, 233421.9 ], [ 738718.8, 233418.8 ], [ 738752.8, 233425.9 ], [ 738759.8, 233417.9 ], [ 738736.3, 233381.5 ], [ 738650.5, 233356.9 ], [ 738642.3, 233338.7 ], [ 738653.0, 233325.7 ], [ 738695.9, 233304.9 ], [ 738712.5, 233282.9 ], [ 738713.3, 233268.2 ], [ 738700.3, 233229.1 ], [ 738683.6, 233199.3 ], [ 738650.9, 233165.0 ], [ 738638.4, 233132.6 ], [ 738645.0, 233098.1 ], [ 738680.3, 233004.4 ], [ 738680.8, 232960.6 ], [ 738665.8, 232949.9 ], [ 738631.0, 232943.4 ], [ 738606.0, 232925.6 ], [ 738556.0, 232857.9 ], [ 738498.2, 232821.4 ], [ 738475.1, 232762.7 ], [ 738401.0, 232752.1 ], [ 738358.8, 232592.7 ], [ 738323.2, 232558.4 ], [ 738290.3, 232547.7 ], [ 738269.6, 232477.6 ], [ 738222.0, 232362.4 ], [ 738219.9, 232316.0 ], [ 738196.0, 232274.7 ], [ 738194.0, 232240.2 ], [ 738179.0, 232204.6 ], [ 738172.3, 232162.5 ], [ 738155.8, 232149.8 ], [ 738152.5, 232124.7 ], [ 738196.5, 232106.5 ], [ 738194.0, 232089.0 ], [ 738181.3, 232091.0 ], [ 738170.8, 232081.2 ], [ 738146.0, 232080.5 ], [ 738139.0, 232049.5 ], [ 738113.5, 232001.8 ], [ 738114.253, 231945.788 ], [ 738156.2, 231952.9 ], [ 738218.3, 231936.3 ], [ 738240.1, 231942.6 ], [ 738268.0, 231969.0 ], [ 738316.0, 231971.9 ], [ 738349.5, 231962.3 ], [ 738321.8, 231918.3 ], [ 738315.7, 231897.8 ], [ 738321.699, 231887.996 ], [ 738295.6, 231860.6 ], [ 738286.2, 231799.1 ], [ 738248.2, 231711.7 ], [ 738198.7, 231679.7 ], [ 738146.8, 231667.5 ], [ 738117.9, 231650.9 ], [ 738093.4, 231608.1 ], [ 738093.9, 231588.7 ], [ 738077.6, 231577.9 ], [ 738026.011, 231576.127 ], [ 738007.9, 231554.9 ], [ 737955.9, 231518.9 ], [ 737862.3, 231511.5 ], [ 737772.5, 231480.9 ], [ 737686.0, 231499.2 ], [ 737574.6, 231491.9 ], [ 737548.3, 231510.6 ], [ 737497.4, 231511.2 ], [ 737436.5, 231490.5 ], [ 737389.1, 231486.6 ], [ 737342.8, 231445.7 ], [ 737316.4, 231445.2 ], [ 737273.4, 231425.4 ], [ 737195.7, 231429.1 ], [ 737089.2, 231368.3 ], [ 737044.9, 231351.1 ], [ 737028.6, 231362.2 ], [ 736976.0, 231338.1 ], [ 736915.0, 231340.8 ], [ 736865.4, 231299.6 ], [ 736797.8, 231315.3 ], [ 736766.6, 231365.6 ], [ 736738.1, 231397.1 ], [ 736736.9, 231441.4 ], [ 736690.6, 231455.2 ], [ 736683.9, 231454.7 ], [ 736664.0, 231432.2 ], [ 736634.3, 231425.5 ], [ 736575.6, 231370.8 ], [ 736514.0, 231368.1 ], [ 736503.2, 231360.2 ], [ 736487.1, 231330.6 ], [ 736503.1, 231309.9 ], [ 736494.7, 231290.7 ], [ 736447.1, 231282.4 ], [ 736437.6, 231360.1 ], [ 736418.1, 231363.1 ], [ 736402.7, 231347.0 ], [ 736377.9, 231310.7 ], [ 736370.0, 231249.6 ], [ 736352.2, 231201.1 ], [ 736355.4, 231167.9 ], [ 736401.3, 231075.2 ], [ 736430.0, 231034.0 ], [ 736434.8, 231012.2 ], [ 736433.1, 230999.0 ], [ 736401.6, 230957.6 ], [ 736405.1, 230944.1 ], [ 736421.6, 230926.1 ], [ 736423.1, 230858.6 ], [ 736399.6, 230807.8 ], [ 736387.2, 230792.5 ], [ 736369.1, 230784.1 ], [ 736345.3, 230786.7 ], [ 736335.0, 230798.0 ], [ 736301.8, 230868.2 ], [ 736285.3, 230863.9 ], [ 736253.6, 230822.1 ], [ 736224.8, 230833.6 ], [ 736213.3, 230830.1 ], [ 736206.6, 230805.3 ], [ 736216.9, 230793.5 ], [ 736220.0, 230773.4 ], [ 736254.7, 230698.7 ], [ 736208.7, 230670.9 ], [ 736211.8, 230622.1 ], [ 736203.6, 230525.7 ], [ 736207.8, 230512.3 ], [ 736232.8, 230488.4 ], [ 736236.0, 230473.9 ], [ 736215.3, 230413.5 ], [ 736143.6, 230412.0 ], [ 736131.6, 230402.0 ], [ 736134.3, 230375.0 ], [ 736166.6, 230308.0 ], [ 736175.9, 230256.2 ], [ 736166.9, 230228.2 ], [ 736110.7, 230151.3 ], [ 736101.1, 230017.0 ], [ 736105.6, 230000.0 ], [ 736119.2, 229987.5 ], [ 736169.2, 229988.0 ], [ 736198.9, 229973.0 ], [ 736219.7, 229951.5 ], [ 736219.2, 229939.5 ], [ 736208.9, 229936.7 ], [ 736189.9, 229952.0 ], [ 736175.2, 229955.5 ], [ 736079.9, 229940.0 ], [ 736035.7, 229972.2 ], [ 735995.7, 229973.5 ], [ 735974.7, 229982.0 ], [ 735954.9, 230000.0 ], [ 735945.9, 230024.3 ], [ 735928.6, 230040.8 ], [ 735925.8, 230085.6 ], [ 735908.5, 230120.9 ], [ 735879.5, 230161.5 ], [ 735820.6, 230206.5 ], [ 735808.9, 230227.8 ], [ 735797.7, 230235.5 ], [ 735783.9, 230219.7 ], [ 735770.1, 230164.3 ], [ 735789.1, 230103.0 ], [ 735778.6, 230077.0 ], [ 735777.4, 230051.5 ], [ 735792.9, 230027.5 ], [ 735798.1, 230000.0 ], [ 735806.5, 229993.2 ], [ 735799.5, 229983.2 ], [ 735736.1, 230009.8 ], [ 735686.0, 230045.9 ], [ 735626.6, 230071.5 ], [ 735614.3, 230118.8 ], [ 735600.5, 230131.5 ], [ 735604.7, 230105.3 ], [ 735590.0, 230068.3 ], [ 735596.0, 230045.0 ], [ 735645.0, 230012.3 ], [ 735670.7, 229946.5 ], [ 735733.4, 229881.0 ], [ 735738.4, 229864.0 ], [ 735741.8, 229803.5 ], [ 735761.1, 229740.2 ], [ 735776.8, 229647.1 ], [ 735741.7, 229575.9 ], [ 735757.4, 229522.4 ], [ 735764.7, 229463.5 ], [ 735752.8, 229381.1 ], [ 735779.5, 229331.4 ], [ 735781.3, 229300.0 ], [ 735798.1, 229259.7 ], [ 735795.8, 229241.3 ], [ 735780.3, 229239.5 ], [ 735751.4, 229274.4 ], [ 735684.3, 229315.2 ], [ 735678.0, 229322.9 ], [ 735671.8, 229363.6 ], [ 735663.5, 229371.1 ], [ 735652.7, 229370.4 ], [ 735645.8, 229358.0 ], [ 735640.2, 229277.4 ], [ 735657.5, 229211.5 ], [ 735655.0, 229198.3 ], [ 735638.5, 229190.8 ], [ 735556.2, 229237.8 ], [ 735472.4, 229396.9 ], [ 735453.3, 229414.7 ], [ 735426.7, 229412.6 ], [ 735504.6, 229140.0 ], [ 735501.1, 229069.9 ], [ 735506.1, 229048.1 ], [ 735574.9, 228946.5 ], [ 735724.1, 228539.2 ], [ 735740.4, 228510.5 ], [ 735777.2, 228474.0 ], [ 735933.7, 228399.0 ], [ 735989.5, 228363.9 ], [ 736001.1, 228348.3 ], [ 736008.4, 228243.4 ], [ 736020.4, 228173.8 ], [ 736032.4, 228146.0 ], [ 736044.8, 228135.4 ], [ 736075.6, 228132.0 ], [ 736136.8, 228159.5 ], [ 736194.1, 228168.3 ], [ 736271.0, 228164.6 ], [ 736348.7, 228146.9 ], [ 736395.6, 228114.2 ], [ 736413.9, 228072.4 ], [ 736422.1, 228009.5 ], [ 736435.2, 227969.3 ], [ 736461.1, 227928.9 ], [ 736500.2, 227897.8 ], [ 736999.9, 227770.0 ], [ 737198.8, 227683.9 ], [ 737288.8, 227665.8 ], [ 737301.9, 227571.1 ], [ 737288.9, 227513.1 ], [ 737337.9, 227419.1 ], [ 737299.7, 227310.3 ], [ 737274.9, 227283.1 ], [ 737106.4, 227147.7 ], [ 737025.1, 227095.8 ], [ 736976.0, 227028.1 ], [ 736878.8, 226959.4 ], [ 736814.7, 226862.0 ], [ 736803.2, 226852.8 ], [ 736757.9, 226841.5 ], [ 736728.9, 226794.3 ], [ 736663.7, 226785.3 ], [ 736637.9, 226767.8 ], [ 736584.9, 226695.2 ], [ 736579.7, 226659.5 ], [ 736582.8, 226548.1 ], [ 736570.0, 226507.0 ], [ 736555.7, 226489.7 ], [ 736474.4, 226421.5 ], [ 736408.5, 226391.4 ], [ 736358.9, 226317.7 ], [ 736314.7, 226300.0 ], [ 736293.7, 226250.9 ], [ 736281.9, 226237.7 ], [ 736178.9, 226219.0 ], [ 736161.2, 226221.9 ], [ 736138.4, 226237.4 ], [ 736123.9, 226235.2 ], [ 736123.2, 226223.9 ], [ 736139.6, 226193.1 ], [ 736130.1, 226161.0 ], [ 736104.4, 226128.2 ], [ 736100.0, 226098.4 ], [ 736062.6, 226039.8 ], [ 736028.4, 226010.7 ], [ 736016.2, 225962.9 ], [ 736003.7, 225954.7 ], [ 735994.7, 225962.7 ], [ 735998.2, 226002.3 ], [ 735969.1, 226122.7 ], [ 735964.9, 226252.0 ], [ 735957.9, 226259.2 ], [ 735942.9, 226254.5 ], [ 735924.4, 226218.7 ], [ 735859.7, 226127.5 ], [ 735811.9, 226030.7 ], [ 735700.9, 225922.8 ], [ 735642.4, 225880.2 ], [ 735521.5, 225700.1 ], [ 735488.3, 225672.4 ], [ 735459.5, 225663.7 ], [ 735398.9, 225659.6 ], [ 735396.9, 225674.1 ], [ 735409.9, 225717.6 ], [ 735405.7, 225751.2 ], [ 735365.4, 225830.7 ], [ 735410.9, 225895.4 ], [ 735422.4, 225924.2 ], [ 735434.7, 225994.4 ], [ 735481.9, 226068.7 ], [ 735482.4, 226082.4 ], [ 735464.2, 226090.9 ], [ 735377.7, 226088.2 ], [ 735341.4, 226071.0 ], [ 735325.0, 226069.6 ], [ 735303.3, 226084.8 ], [ 735291.2, 226106.9 ], [ 735277.4, 226109.7 ], [ 735257.9, 226063.7 ], [ 735242.1, 226043.5 ], [ 735173.1, 225999.8 ], [ 735136.2, 225956.2 ], [ 735083.2, 225923.2 ], [ 734986.1, 225834.1 ], [ 734904.8, 225800.4 ], [ 734744.1, 225751.4 ], [ 734695.6, 225716.7 ], [ 734632.9, 225685.6 ], [ 734625.9, 225687.6 ], [ 734624.9, 225694.9 ], [ 734670.1, 225746.6 ], [ 734682.6, 225794.1 ], [ 734716.6, 225850.0 ], [ 734743.4, 225914.2 ], [ 734740.1, 225921.4 ], [ 734694.5, 225901.8 ], [ 734570.4, 225797.9 ], [ 734530.9, 225786.2 ], [ 734447.9, 225777.4 ], [ 734420.1, 225780.7 ], [ 734364.9, 225806.7 ], [ 734270.4, 225817.2 ], [ 734215.1, 225835.4 ], [ 734177.4, 225837.7 ], [ 734134.6, 225863.4 ], [ 734106.1, 225868.4 ], [ 734078.4, 225908.7 ], [ 734039.4, 225919.4 ], [ 734025.4, 225931.2 ], [ 734008.9, 225976.7 ], [ 733995.6, 225985.6 ], [ 733940.1, 225978.7 ], [ 733893.9, 225989.2 ], [ 733859.9, 225958.4 ], [ 733809.9, 225947.9 ], [ 733793.9, 225938.9 ], [ 733693.7, 225933.6 ], [ 733667.4, 225919.6 ], [ 733640.0, 225892.3 ], [ 733576.9, 225861.2 ], [ 733570.6, 225849.4 ], [ 733567.9, 225798.3 ], [ 733557.6, 225785.1 ], [ 733523.5, 225766.3 ], [ 733456.4, 225749.1 ], [ 733278.6, 225654.6 ], [ 733226.2, 225644.8 ], [ 733201.9, 225623.0 ], [ 733165.0, 225561.6 ], [ 733145.6, 225540.9 ], [ 732987.4, 225413.2 ], [ 732901.3, 225362.5 ], [ 732769.1, 225203.6 ], [ 732754.0, 225161.1 ], [ 732756.0, 225115.8 ], [ 732748.2, 225085.6 ], [ 732715.6, 225040.6 ], [ 732691.9, 224973.9 ], [ 732604.1, 224870.1 ], [ 732596.6, 224824.1 ], [ 732569.1, 224789.8 ], [ 732534.1, 224712.5 ], [ 732417.4, 224663.3 ], [ 732312.1, 224645.5 ], [ 732282.1, 224652.8 ], [ 732257.4, 224672.2 ], [ 732207.4, 224739.3 ], [ 732192.6, 224739.0 ], [ 732141.6, 224709.8 ], [ 732072.5, 224654.9 ], [ 732041.2, 224619.2 ], [ 731967.6, 224609.5 ], [ 731936.4, 224621.0 ], [ 731907.6, 224606.8 ], [ 731876.6, 224605.8 ], [ 731852.6, 224595.3 ], [ 731811.1, 224595.8 ], [ 731777.4, 224583.8 ], [ 731732.3, 224548.5 ], [ 731710.3, 224492.4 ], [ 731710.909, 224469.911 ], [ 731681.9, 224413.2 ], [ 731660.5, 224338.3 ], [ 731629.6, 224274.6 ], [ 731591.4, 224235.2 ], [ 731540.8, 224211.3 ], [ 731501.2, 224174.8 ], [ 731461.2, 224096.3 ], [ 731429.4, 224063.7 ], [ 731363.1, 224015.0 ], [ 731310.2, 223994.1 ], [ 731286.0, 223968.8 ], [ 731251.3, 223954.4 ], [ 731184.2, 223891.8 ], [ 731094.4, 223834.7 ], [ 731034.4, 223808.8 ], [ 730988.9, 223775.6 ], [ 730904.1, 223685.6 ], [ 730813.3, 223665.4 ], [ 730678.1, 223660.2 ], [ 730597.8, 223638.4 ], [ 730567.6, 223640.3 ], [ 730469.1, 223690.4 ], [ 730425.3, 223743.7 ], [ 730408.1, 223748.2 ], [ 730345.051, 223736.737 ], [ 730318.0, 223751.1 ], [ 730281.7, 223783.9 ], [ 730182.1, 223790.9 ], [ 730151.6, 223813.7 ], [ 730125.3, 223816.8 ], [ 730117.6, 223803.7 ], [ 730123.3, 223787.4 ], [ 730177.6, 223723.4 ], [ 730188.8, 223689.9 ], [ 730123.6, 223599.4 ], [ 730114.7, 223575.3 ], [ 730109.8, 223457.1 ], [ 730059.8, 223399.9 ], [ 730054.7, 223375.7 ], [ 730066.3, 223311.9 ], [ 730156.8, 223236.9 ], [ 730154.1, 223222.6 ], [ 730124.3, 223190.4 ], [ 730101.8, 223185.4 ], [ 730057.6, 223215.9 ], [ 729987.4, 223209.6 ], [ 729938.2, 223219.6 ], [ 729802.7, 223284.9 ], [ 729756.5, 223298.7 ], [ 729744.1, 223309.4 ], [ 729717.5, 223357.3 ], [ 729692.7, 223376.4 ], [ 729651.3, 223395.6 ], [ 729626.5, 223453.4 ], [ 729618.5, 223458.7 ], [ 729539.3, 223465.5 ], [ 729257.4, 223436.9 ], [ 729152.6, 223420.0 ], [ 729161.7, 223408.6 ], [ 729193.8, 223407.8 ], [ 729201.7, 223399.7 ], [ 729203.0, 223385.3 ], [ 729198.4, 223376.0 ], [ 729142.6, 223341.4 ], [ 729108.3, 223299.9 ], [ 729085.2, 223284.1 ], [ 729083.5, 223272.0 ], [ 729109.9, 223228.8 ], [ 729116.5, 223171.0 ], [ 729100.0, 223129.5 ], [ 729068.0, 223090.0 ], [ 729083.0, 223080.3 ], [ 729085.7, 223069.3 ], [ 729031.0, 223045.5 ], [ 729034.2, 223028.7 ], [ 729077.2, 222996.0 ], [ 729052.2, 222979.0 ], [ 729046.2, 222967.2 ], [ 729023.1, 222873.1 ], [ 728953.7, 222834.2 ], [ 728910.219, 222903.593 ], [ 728879.234, 222895.222 ], [ 728877.6, 222845.7 ], [ 728847.6, 222779.4 ], [ 728785.1, 222705.7 ], [ 728718.8, 222613.2 ], [ 728692.6, 222594.4 ], [ 728647.6, 222590.7 ], [ 728605.1, 222571.9 ], [ 728557.3, 222568.0 ], [ 728507.7, 222586.4 ], [ 728496.0, 222573.8 ], [ 728456.3, 222482.3 ], [ 728326.2, 222446.1 ], [ 728254.4, 222395.1 ], [ 728217.7, 222387.6 ], [ 728001.2, 222425.8 ], [ 727936.9, 222403.1 ], [ 727916.6, 222404.1 ], [ 727820.6, 222466.3 ], [ 727782.1, 222503.1 ], [ 727731.4, 222513.1 ], [ 727676.4, 222559.5 ], [ 727632.1, 222575.3 ], [ 727602.3, 222561.7 ], [ 727551.7, 222511.2 ], [ 727508.3, 222478.2 ], [ 727449.7, 222448.7 ], [ 727330.7, 222467.1 ], [ 727179.4, 222434.4 ], [ 726954.7, 222422.2 ], [ 726845.9, 222379.2 ], [ 726771.7, 222313.2 ], [ 726735.8, 222217.4 ], [ 726701.9, 222158.7 ], [ 726584.1, 222002.7 ], [ 726572.6, 221989.9 ], [ 726547.1, 221977.2 ], [ 726393.1, 221917.9 ], [ 726151.1, 221911.7 ], [ 726094.6, 221902.2 ], [ 726030.4, 221880.4 ], [ 725970.6, 221854.4 ], [ 725925.1, 221825.6 ], [ 725896.5, 221789.8 ], [ 725871.1, 221742.4 ], [ 725836.4, 221712.9 ], [ 725613.8, 221617.0 ], [ 725557.6, 221584.9 ], [ 725515.6, 221545.3 ], [ 725223.1, 221517.0 ], [ 724981.6, 221477.0 ], [ 724996.3, 221366.4 ], [ 724266.3, 221252.6 ], [ 723749.1, 221186.2 ], [ 723675.3, 221193.5 ], [ 723616.9, 221210.6 ], [ 723560.6, 221242.5 ], [ 723472.8, 221321.5 ], [ 723427.789, 221373.572 ], [ 723410.456, 221420.683 ], [ 723358.456, 221502.017 ], [ 723357.117, 221514.957 ], [ 723167.4, 221684.3 ] ], [ [ 758071.8, 257012.3 ], [ 758161.6, 256998.1 ] ], [ [ 614593.1, 178362.1 ], [ 614607.7, 178357.4 ], [ 614607.4, 178249.1 ], [ 614636.1, 178209.9 ] ], [ [ 614593.1, 178362.1 ], [ 614590.7, 178375.0 ], [ 614600.4, 178389.7 ], [ 614479.5, 178445.0 ], [ 614399.5, 178504.8 ], [ 614329.9, 178631.3 ], [ 614292.815, 178714.19 ], [ 614295.367, 178725.672 ], [ 614344.8, 178746.9 ], [ 614438.772, 178820.128 ], [ 614376.6, 178879.7 ], [ 614203.5, 178989.9 ], [ 614154.0, 179029.6 ], [ 614110.0, 179053.4 ], [ 614075.69, 179043.193 ], [ 614062.3, 179048.7 ], [ 613922.141, 179203.794 ], [ 613907.776, 179204.479 ], [ 613908.56, 179218.912 ], [ 613771.5, 179380.7 ], [ 613757.3, 179440.9 ], [ 613596.6, 179934.2 ], [ 613563.3, 180006.7 ], [ 613482.303, 180305.658 ], [ 613568.297, 180317.534 ], [ 613571.9, 180327.7 ], [ 613581.1, 180331.5 ], [ 613593.434, 180321.831 ], [ 614026.4, 180304.7 ], [ 614144.7, 180324.9 ], [ 614238.4, 180331.6 ], [ 614348.1, 180370.8 ], [ 614428.6, 180392.1 ], [ 614464.1, 180393.4 ], [ 614510.9, 180376.9 ], [ 614537.6, 180378.6 ], [ 614588.7, 180412.2 ], [ 614639.8, 180463.6 ], [ 614884.1, 180664.6 ], [ 614922.2, 180665.5 ], [ 614976.2, 180743.2 ], [ 615006.597, 180815.9 ], [ 615047.0, 180782.6 ], [ 615129.7, 180740.8 ], [ 615167.4, 180701.9 ], [ 615243.9, 180770.3 ], [ 615329.4, 180830.2 ], [ 615484.5, 180861.0 ], [ 615596.9, 180917.9 ], [ 615618.5, 180932.2 ], [ 615697.0, 181032.6 ], [ 615735.7, 181066.4 ], [ 615765.2, 181060.4 ], [ 615842.7, 180989.9 ], [ 615874.7, 180971.2 ], [ 615910.4, 180962.6 ], [ 615974.0, 180962.4 ], [ 616038.0, 180952.6 ], [ 616206.5, 180988.6 ], [ 616331.7, 181054.0 ], [ 616402.6, 181054.7 ], [ 616460.9, 181040.8 ], [ 616509.9, 181013.9 ], [ 616577.1, 181007.7 ], [ 616635.2, 181041.6 ], [ 616676.6, 181081.7 ], [ 616755.6, 181114.6 ], [ 616920.7, 181132.7 ], [ 616967.7, 181121.9 ], [ 617145.1, 181109.2 ], [ 617189.7, 181124.0 ], [ 617375.5, 181214.6 ], [ 617395.0, 181217.1 ], [ 617445.9, 181208.5 ], [ 617558.1, 181242.2 ], [ 617684.8, 181249.1 ], [ 617727.6, 181242.7 ], [ 617746.2, 181233.1 ], [ 617803.1, 181176.7 ], [ 617849.6, 181144.2 ], [ 617877.4, 181133.3 ], [ 617953.2, 181120.2 ], [ 618001.5, 181090.6 ], [ 618022.8, 181066.3 ], [ 618034.9, 181064.2 ], [ 618064.2, 181095.0 ], [ 618071.6, 181120.3 ], [ 618071.1, 181160.4 ], [ 618096.2, 181203.5 ], [ 618195.234, 181296.681 ], [ 618215.857, 181302.388 ], [ 618266.5, 181297.4 ], [ 618296.7, 181284.4 ], [ 618402.1, 181181.6 ], [ 618419.7, 181170.8 ], [ 618476.8, 181162.9 ], [ 618510.5, 181174.7 ], [ 618557.0, 181209.6 ], [ 618613.8, 181212.2 ], [ 618692.2, 181193.5 ], [ 618735.1, 181189.6 ], [ 618772.1, 181196.6 ], [ 618881.8, 181245.9 ], [ 618902.0, 181249.4 ], [ 618916.0, 181233.4 ], [ 618895.9, 181198.5 ], [ 618903.8, 181113.0 ], [ 618913.5, 181062.2 ], [ 618925.3, 181051.2 ], [ 618937.7, 181049.7 ], [ 619067.8, 181101.8 ], [ 619151.0, 181119.4 ], [ 619315.2, 181184.8 ], [ 619395.8, 181184.8 ], [ 619415.37, 181174.005 ], [ 619427.437, 181136.769 ], [ 619427.437, 181115.491 ], [ 619410.31, 181060.999 ], [ 619420.0, 181037.9 ], [ 619715.0, 181027.9 ], [ 619742.5, 181017.3 ], [ 619817.7, 180956.4 ], [ 619841.4, 180892.8 ], [ 620139.7, 180961.8 ], [ 620227.6, 180970.7 ], [ 620298.7, 180949.6 ], [ 620316.1, 180933.2 ], [ 620335.2, 180897.4 ], [ 620358.0, 180876.9 ], [ 620399.0, 180874.1 ], [ 620541.7, 180906.7 ], [ 620619.1, 180958.2 ], [ 620681.3, 180976.5 ], [ 620755.5, 180987.6 ], [ 620875.4, 181031.3 ], [ 621007.1, 181051.8 ], [ 621090.8, 181031.4 ], [ 621175.9, 181021.1 ], [ 621214.7, 181019.3 ], [ 621291.0, 181031.9 ], [ 621312.2, 181028.5 ], [ 621347.0, 181008.4 ], [ 621444.7, 180984.4 ], [ 621455.7, 180967.1 ], [ 621448.5, 180899.0 ], [ 621460.2, 180883.4 ], [ 621497.7, 180866.3 ], [ 621508.3, 180855.3 ], [ 621509.6, 180841.2 ], [ 621498.7, 180818.2 ], [ 621421.3, 180770.3 ], [ 621398.3, 180738.1 ], [ 621404.5, 180710.6 ], [ 621429.3, 180663.6 ], [ 621443.0, 180543.6 ], [ 621425.4, 180528.1 ], [ 621385.6, 180453.1 ], [ 621367.1, 180433.6 ], [ 621220.8, 180333.6 ], [ 621227.4, 180264.5 ], [ 621245.0, 180243.2 ], [ 621310.5, 180217.3 ], [ 621349.1, 180176.2 ], [ 621372.4, 180163.2 ], [ 621479.6, 180151.2 ], [ 621514.0, 180152.1 ], [ 621560.6, 180162.9 ], [ 621658.9, 180134.7 ], [ 621764.7, 180159.9 ], [ 621780.9, 180155.5 ], [ 621805.6, 180124.4 ], [ 621820.3, 180090.7 ], [ 621819.6, 180077.7 ], [ 621762.1, 180025.9 ], [ 621754.4, 180005.7 ], [ 621763.1, 179979.4 ], [ 621795.8, 179944.4 ], [ 621802.2, 179918.6 ], [ 621790.9, 179902.2 ], [ 621727.5, 179863.3 ], [ 621711.1, 179845.9 ], [ 621719.9, 179827.4 ], [ 621762.9, 179802.4 ], [ 621780.6, 179785.2 ], [ 621840.1, 179760.4 ], [ 621864.9, 179736.3 ], [ 621871.7, 179697.9 ], [ 621854.1, 179656.4 ], [ 621878.1, 179620.0 ], [ 621892.8, 179578.3 ], [ 621872.0, 179492.2 ], [ 621877.4, 179465.6 ], [ 621956.3, 179338.0 ], [ 622013.4, 179184.4 ], [ 622015.4, 179112.0 ], [ 622034.6, 179066.7 ], [ 622034.1, 179033.2 ], [ 622004.4, 178992.9 ], [ 622004.1, 178979.9 ], [ 622016.1, 178959.1 ], [ 622052.5, 178938.6 ], [ 622064.9, 178914.1 ], [ 622088.9, 178888.4 ], [ 622136.1, 178868.9 ], [ 622185.9, 178810.1 ], [ 622232.5, 178626.8 ], [ 622235.5, 178593.7 ], [ 622225.9, 178469.6 ], [ 622240.4, 178449.9 ], [ 622313.1, 178402.6 ], [ 622352.1, 178367.9 ], [ 622450.7, 178254.9 ], [ 622508.6, 178157.3 ], [ 622525.6, 178100.5 ], [ 622537.3, 178030.3 ], [ 622587.4, 177948.1 ], [ 622584.6, 177858.6 ], [ 622567.6, 177772.8 ], [ 622592.0, 177660.2 ], [ 622588.7, 177585.6 ], [ 622597.8, 177436.9 ], [ 622597.1, 177305.6 ], [ 622594.2, 177216.2 ], [ 622574.2, 177078.8 ], [ 622514.2, 176936.7 ], [ 622404.2, 176820.4 ], [ 622377.2, 176776.6 ], [ 622336.1, 176734.8 ], [ 622287.8, 176665.3 ], [ 622208.667, 176586.039 ], [ 622199.9, 176550.1 ], [ 622196.545, 176525.251 ], [ 622228.947, 176492.447 ], [ 622237.285, 176468.69 ], [ 622216.9, 176374.3 ], [ 622215.7, 176341.1 ], [ 622230.2, 176219.1 ], [ 622214.603, 176195.058 ], [ 622214.603, 176172.971 ], [ 622219.1, 176157.4 ], [ 622243.5, 176129.0 ], [ 622294.63, 176102.929 ], [ 622305.718, 176073.238 ], [ 622259.082, 175930.872 ], [ 622276.711, 175888.727 ], [ 622250.9, 175879.9 ], [ 622197.7, 175890.2 ], [ 622184.156, 175885.209 ], [ 622176.117, 175871.382 ], [ 622164.4, 175777.9 ], [ 622122.8, 175666.6 ], [ 622122.0, 175649.8 ], [ 622127.0, 175638.8 ], [ 622175.7, 175600.3 ], [ 622171.1, 175581.9 ], [ 622164.3, 175575.3 ], [ 622087.2, 175562.0 ], [ 621968.9, 175434.9 ], [ 621919.8, 175409.9 ], [ 621906.6, 175392.0 ], [ 621886.9, 175339.1 ], [ 621880.4, 175188.3 ], [ 621901.9, 174910.6 ], [ 621896.4, 174860.7 ], [ 621913.7, 174794.7 ], [ 621929.9, 174666.3 ], [ 621968.7, 174565.1 ], [ 622015.9, 174485.3 ], [ 621953.7, 174370.3 ], [ 621992.2, 174357.1 ], [ 622035.2, 174356.8 ], [ 622086.8, 174272.1 ], [ 622102.5, 174263.4 ], [ 622165.8, 174186.4 ], [ 622189.0, 174169.0 ], [ 622186.2, 174153.8 ], [ 622209.0, 174159.5 ], [ 622216.0, 174155.5 ], [ 622217.3, 174139.2 ], [ 622232.5, 174128.5 ], [ 622221.0, 174104.3 ], [ 622235.3, 174045.3 ], [ 622267.7, 174013.8 ], [ 622321.4, 173993.3 ], [ 622337.5, 173973.8 ], [ 622336.0, 173953.9 ], [ 622353.1, 173915.0 ], [ 622413.2, 173902.8 ], [ 622451.9, 173875.7 ], [ 622505.1, 173863.4 ], [ 622522.8, 173854.2 ], [ 622579.6, 173786.4 ], [ 622595.6, 173775.4 ], [ 622640.2, 173754.4 ], [ 622709.7, 173733.6 ], [ 622755.6, 173682.0 ], [ 622749.0, 173639.8 ], [ 622765.1, 173592.6 ], [ 622808.2, 173568.6 ], [ 622821.2, 173549.8 ], [ 622813.7, 173537.1 ], [ 622841.7, 173509.5 ], [ 622858.3, 173482.9 ], [ 622929.4, 173429.4 ], [ 622942.9, 173377.2 ], [ 622973.9, 173347.2 ], [ 622994.6, 173305.4 ], [ 623079.9, 173260.4 ], [ 623137.6, 173240.8 ], [ 623150.9, 173229.9 ], [ 623151.4, 173209.6 ], [ 623124.6, 173163.6 ], [ 623126.2, 173150.2 ], [ 623134.6, 173142.9 ], [ 623166.2, 173136.5 ], [ 623202.8, 173140.6 ], [ 623214.9, 173135.7 ], [ 623229.4, 173116.9 ], [ 623233.3, 173082.4 ], [ 623251.5, 173042.3 ], [ 623224.6, 172922.2 ], [ 623291.8, 172863.7 ], [ 623305.0, 172828.0 ], [ 623305.9, 172742.9 ], [ 623317.4, 172727.9 ], [ 623346.0, 172719.5 ], [ 623401.1, 172718.5 ], [ 623454.9, 172730.6 ], [ 623511.7, 172777.8 ], [ 623588.9, 172809.8 ], [ 623674.0, 172858.7 ], [ 623697.7, 172890.8 ], [ 623731.8, 172910.6 ], [ 623758.2, 172936.2 ], [ 623810.8, 172961.7 ], [ 623849.9, 172996.1 ], [ 623889.1, 173013.1 ], [ 623953.5, 173083.8 ], [ 624006.2, 173118.4 ], [ 624056.5, 173166.2 ], [ 624096.4, 173179.9 ], [ 624131.4, 173203.8 ], [ 624164.4, 173267.5 ], [ 624219.7, 173301.7 ], [ 624295.9, 173380.1 ], [ 624315.6, 173392.1 ], [ 624354.4, 173397.9 ], [ 624393.0, 173375.3 ], [ 624415.1, 173387.8 ], [ 624433.2, 173418.0 ], [ 624463.7, 173441.1 ], [ 624510.3, 173419.1 ], [ 624543.3, 173427.2 ], [ 624588.6, 173487.4 ], [ 624612.6, 173540.0 ], [ 624629.1, 173561.8 ], [ 624648.1, 173579.3 ], [ 624694.7, 173605.0 ], [ 624711.4, 173639.1 ], [ 624745.2, 173674.7 ], [ 624762.0, 173682.1 ], [ 624789.4, 173674.7 ], [ 624815.7, 173643.3 ], [ 624821.1, 173618.9 ], [ 624728.3, 173467.3 ], [ 624691.4, 173376.1 ], [ 624637.6, 173283.6 ], [ 624603.0, 173177.7 ], [ 624549.9, 173107.2 ], [ 624534.5, 173076.8 ], [ 624497.1, 172962.1 ], [ 624419.2, 172812.6 ], [ 624416.6, 172796.2 ], [ 624426.2, 172745.7 ], [ 624421.7, 172721.9 ], [ 624391.4, 172690.4 ], [ 624381.1, 172669.4 ], [ 624336.6, 172639.9 ], [ 624338.4, 172627.4 ], [ 624373.4, 172596.5 ], [ 624367.6, 172472.7 ], [ 624353.4, 172440.9 ], [ 624348.4, 172410.9 ], [ 624318.9, 172394.7 ], [ 624268.9, 172320.7 ], [ 624228.1, 172298.9 ], [ 624201.4, 172236.7 ], [ 624176.3, 172225.0 ], [ 624157.1, 172205.2 ], [ 624082.9, 172011.9 ], [ 624071.9, 171931.7 ], [ 624106.4, 171890.7 ], [ 623960.0, 171593.6 ], [ 623959.5, 171574.6 ], [ 624018.2, 171493.0 ], [ 624188.9, 171406.1 ], [ 624230.7, 171365.3 ], [ 624289.7, 171333.1 ], [ 624339.4, 171286.8 ], [ 624377.2, 171261.8 ], [ 624432.2, 171245.2 ], [ 624520.3, 171240.1 ], [ 624650.5, 171199.5 ], [ 624700.6, 171193.9 ], [ 624778.9, 171204.6 ], [ 624852.9, 171199.7 ], [ 624969.4, 171216.3 ], [ 625034.2, 171206.1 ], [ 625102.4, 171211.8 ], [ 625160.4, 171225.2 ], [ 625219.3, 171221.2 ], [ 625262.5, 171241.9 ], [ 625282.9, 171244.8 ], [ 625532.5, 171235.6 ], [ 625737.2, 171257.5 ], [ 625687.5, 171276.0 ], [ 625628.8, 171284.3 ], [ 625576.7, 171307.2 ], [ 625410.6, 171355.4 ], [ 625366.9, 171379.9 ], [ 625294.7, 171383.2 ], [ 625201.5, 171367.5 ], [ 625132.7, 171363.5 ], [ 625113.2, 171373.7 ], [ 624880.0, 171433.4 ], [ 624794.5, 171444.0 ], [ 624732.9, 171463.6 ], [ 624620.2, 171505.9 ], [ 624475.1, 171581.4 ], [ 624397.5, 171640.3 ], [ 624363.3, 171684.6 ], [ 624273.7, 171757.1 ], [ 624278.0, 171763.6 ], [ 624289.0, 171762.3 ], [ 624320.5, 171739.3 ], [ 624368.2, 171728.6 ], [ 624535.4, 171662.5 ], [ 624587.7, 171647.5 ], [ 624643.9, 171640.5 ], [ 624725.9, 171643.8 ], [ 624806.1, 171662.4 ], [ 624992.0, 171672.2 ], [ 625081.5, 171751.8 ], [ 625151.2, 171759.6 ], [ 625246.4, 171752.7 ], [ 625312.0, 171763.8 ], [ 625368.7, 171732.0 ], [ 625422.2, 171717.5 ], [ 625521.1, 171726.5 ], [ 625621.9, 171714.5 ], [ 625669.5, 171733.8 ], [ 625716.9, 171793.8 ], [ 625773.2, 171839.3 ], [ 625784.7, 171830.0 ], [ 625795.7, 171791.8 ], [ 625907.8, 171733.1 ], [ 626134.7, 171703.3 ], [ 626227.7, 171699.3 ], [ 626300.8, 171708.0 ], [ 626385.1, 171733.2 ], [ 626435.2, 171757.1 ], [ 626445.8, 171769.3 ], [ 626475.6, 171813.6 ], [ 626485.2, 171850.3 ], [ 626522.9, 171878.9 ], [ 626546.1, 171906.1 ], [ 626561.4, 171931.7 ], [ 626571.0, 171979.8 ], [ 626599.1, 172015.2 ], [ 626610.5, 172040.8 ], [ 626619.1, 172051.2 ], [ 626680.9, 172082.8 ], [ 626724.9, 172150.1 ], [ 626779.6, 172192.0 ], [ 626828.0, 172204.8 ], [ 626864.2, 172228.3 ], [ 626964.0, 172272.3 ], [ 626975.0, 172284.1 ], [ 626990.4, 172319.5 ], [ 626986.307, 172375.018 ], [ 627004.3, 172443.1 ], [ 627003.0, 172480.1 ], [ 627013.7, 172494.1 ], [ 627066.0, 172504.1 ], [ 627094.7, 172527.6 ], [ 627134.8, 172519.4 ], [ 627231.5, 172553.8 ], [ 627296.1, 172563.9 ], [ 627353.5, 172546.4 ], [ 627414.0, 172548.4 ], [ 627438.3, 172555.0 ], [ 627574.7, 172556.2 ], [ 627602.6, 172565.2 ], [ 627632.6, 172584.9 ], [ 627640.5, 172599.7 ], [ 627641.6, 172654.6 ], [ 627655.7, 172665.0 ], [ 627734.0, 172679.6 ], [ 627755.3, 172690.4 ], [ 627772.5, 172710.2 ], [ 627787.0, 172708.3 ], [ 627822.2, 172683.1 ], [ 627846.8, 172694.8 ], [ 627880.4, 172722.9 ], [ 627957.4, 172755.2 ], [ 628148.1, 172907.1 ], [ 628213.4, 172975.6 ], [ 628270.0, 173010.6 ], [ 628376.7, 173060.4 ], [ 628439.611, 173113.483 ], [ 628493.115, 173196.223 ], [ 628542.2, 173255.5 ], [ 628567.9, 173320.4 ], [ 628611.5, 173399.9 ], [ 628623.2, 173409.3 ], [ 628636.5, 173405.6 ], [ 628647.7, 173333.9 ], [ 628676.9, 173263.0 ], [ 628679.5, 173243.0 ], [ 628632.9, 172988.4 ], [ 628632.7, 172924.4 ], [ 628638.9, 172896.3 ], [ 628635.1, 172807.1 ], [ 628614.7, 172725.1 ], [ 628590.2, 172664.6 ], [ 628591.9, 172653.9 ], [ 628604.0, 172653.3 ], [ 628647.9, 172619.6 ], [ 628692.9, 172596.3 ], [ 628719.1, 172589.9 ], [ 628810.7, 172606.6 ], [ 628831.6, 172630.5 ], [ 628845.5, 172634.1 ], [ 628887.6, 172630.7 ], [ 628903.3, 172617.9 ], [ 628914.0, 172595.5 ], [ 628920.2, 172518.1 ], [ 628941.4, 172497.9 ], [ 628946.7, 172500.1 ], [ 628944.0, 172521.6 ], [ 628951.0, 172533.8 ], [ 628983.5, 172539.8 ], [ 629015.0, 172579.1 ], [ 629052.5, 172601.8 ], [ 629068.7, 172626.3 ], [ 629074.3, 172664.3 ], [ 629118.3, 172698.2 ], [ 629133.5, 172717.6 ], [ 629129.9, 172790.9 ], [ 629302.9, 172794.5 ], [ 629367.7, 172817.8 ], [ 629432.5, 172803.4 ], [ 629530.2, 172847.6 ], [ 629579.7, 172886.2 ], [ 629603.0, 172924.9 ], [ 629676.0, 172993.3 ], [ 629677.0, 173040.3 ], [ 629689.0, 173066.1 ], [ 629727.6, 173098.7 ], [ 629782.8, 173124.1 ], [ 629810.0, 173144.3 ], [ 629877.2, 173211.1 ], [ 629902.6, 173240.5 ], [ 629972.7, 173367.5 ], [ 629995.208, 173396.672 ], [ 630008.5, 173400.2 ], [ 630077.345, 173450.934 ], [ 630153.5, 173526.1 ], [ 630171.8, 173533.1 ], [ 630201.7, 173529.7 ], [ 630248.5, 173565.1 ], [ 630295.0, 173625.0 ], [ 630302.7, 173642.9 ], [ 630298.7, 173676.9 ], [ 630371.1, 173744.2 ], [ 630406.5, 173788.5 ], [ 630427.1, 173850.1 ], [ 630422.5, 173907.6 ], [ 630432.4, 173965.2 ], [ 630494.7, 174065.1 ], [ 630479.3, 174143.8 ], [ 630480.7, 174196.4 ], [ 630404.4, 174251.1 ], [ 630367.0, 174371.6 ], [ 630362.0, 174461.6 ], [ 630338.9, 174500.7 ], [ 630287.2, 174549.9 ], [ 630312.5, 174580.9 ], [ 630330.0, 174579.4 ], [ 630359.7, 174551.7 ], [ 630405.7, 174540.9 ], [ 630420.0, 174526.9 ], [ 630515.2, 174408.1 ], [ 630572.4, 174299.6 ], [ 630661.9, 174283.4 ], [ 630685.7, 174268.4 ], [ 630716.3, 174259.3 ], [ 630759.5, 174231.6 ], [ 630796.1, 174218.3 ], [ 630829.6, 174311.8 ], [ 630867.1, 174360.2 ], [ 630900.0, 174427.4 ], [ 630927.928, 174453.614 ], [ 630922.2, 174542.2 ], [ 630905.3, 174573.6 ], [ 630904.0, 174651.4 ], [ 630915.2, 174707.0 ], [ 630946.1, 174782.7 ], [ 630957.6, 174827.6 ], [ 630966.5, 174836.4 ], [ 631062.4, 174830.9 ], [ 631112.1, 174858.4 ], [ 631174.9, 174878.2 ], [ 631211.6, 174908.0 ], [ 631235.8, 174949.4 ], [ 631257.5, 174964.0 ], [ 631332.6, 174981.0 ], [ 631344.5, 174988.6 ], [ 631377.3, 175031.5 ], [ 631446.293, 175084.32 ], [ 631462.6, 175151.7 ], [ 631517.8, 175140.3 ], [ 631551.089, 175118.612 ], [ 631587.5, 175132.2 ], [ 631609.4, 175132.7 ], [ 631617.5, 175128.2 ], [ 631607.7, 175091.7 ], [ 631609.7, 175074.4 ], [ 631659.5, 175047.8 ], [ 631674.0, 175051.3 ], [ 631715.7, 175123.1 ], [ 631734.2, 175122.4 ], [ 631763.0, 175109.7 ], [ 631873.2, 175143.1 ], [ 631896.9, 175141.5 ], [ 631901.4, 175131.8 ], [ 631945.4, 175120.9 ], [ 631991.4, 175096.3 ], [ 632060.7, 175088.5 ], [ 632104.4, 175093.5 ], [ 632146.9, 175128.0 ], [ 632156.1, 175116.5 ], [ 632135.9, 175065.5 ], [ 632152.1, 175054.0 ], [ 632194.6, 175078.5 ], [ 632272.7, 175140.7 ], [ 632432.9, 175218.3 ], [ 632444.1, 175234.0 ], [ 632454.6, 175271.0 ], [ 632463.6, 175272.8 ], [ 632470.6, 175269.0 ], [ 632464.4, 175230.7 ], [ 632482.4, 175177.0 ], [ 632468.4, 175131.8 ], [ 632478.4, 175126.0 ], [ 632497.0, 175141.8 ], [ 632516.3, 175181.3 ], [ 632527.4, 175190.8 ], [ 632542.1, 175201.5 ], [ 632558.4, 175203.8 ], [ 632573.1, 175201.5 ], [ 632583.3, 175190.5 ], [ 632679.0, 175276.1 ], [ 632703.8, 175308.3 ], [ 632741.5, 175374.1 ], [ 632728.5, 175398.1 ], [ 632723.0, 175437.2 ], [ 632694.2, 175466.6 ], [ 632682.2, 175499.4 ], [ 632679.2, 175531.6 ], [ 632713.2, 175593.5 ], [ 632775.2, 175616.6 ], [ 632810.2, 175639.1 ], [ 632883.2, 175755.4 ], [ 632882.5, 175768.6 ], [ 632906.5, 175778.9 ], [ 632943.0, 175786.4 ], [ 632953.5, 175777.4 ], [ 632951.7, 175765.2 ], [ 632924.7, 175739.2 ], [ 632917.4, 175722.3 ], [ 632912.7, 175656.2 ], [ 632897.7, 175625.9 ], [ 632902.0, 175597.9 ], [ 632957.0, 175548.9 ], [ 632975.7, 175478.8 ], [ 632986.2, 175459.7 ], [ 633036.4, 175400.1 ], [ 633092.5, 175312.4 ], [ 633127.0, 175290.7 ], [ 633164.5, 175231.9 ], [ 633203.5, 175235.2 ], [ 633249.0, 175211.4 ], [ 633268.9, 175192.5 ], [ 633283.4, 175159.7 ], [ 633303.2, 175063.2 ], [ 633316.0, 175050.2 ], [ 633344.5, 175044.9 ], [ 633375.5, 175061.5 ], [ 633500.3, 175154.3 ], [ 633570.8, 175174.2 ], [ 633644.0, 175213.7 ], [ 633656.5, 175218.2 ], [ 633672.2, 175212.9 ], [ 633682.5, 175186.4 ], [ 633702.5, 175176.4 ], [ 633730.7, 175199.7 ], [ 633765.5, 175210.8 ], [ 633774.7, 175224.4 ], [ 633776.2, 175247.9 ], [ 633757.5, 175284.3 ], [ 633760.5, 175300.8 ], [ 633799.8, 175316.3 ], [ 633832.9, 175357.6 ], [ 633948.3, 175379.2 ], [ 633964.3, 175389.5 ], [ 633983.1, 175417.6 ], [ 634046.1, 175445.6 ], [ 634051.9, 175470.1 ], [ 634025.8, 175546.9 ], [ 634033.5, 175571.2 ], [ 634062.3, 175602.8 ], [ 634106.1, 175625.5 ], [ 634193.4, 175691.1 ], [ 634272.0, 175687.7 ], [ 634282.0, 175692.2 ], [ 634299.2, 175721.2 ], [ 634312.2, 175722.7 ], [ 634325.7, 175698.9 ], [ 634329.2, 175648.2 ], [ 634345.7, 175639.5 ], [ 634366.9, 175664.2 ], [ 634381.2, 175706.8 ], [ 634407.2, 175727.7 ], [ 634422.5, 175779.7 ], [ 634431.2, 175781.9 ], [ 634466.6, 175764.0 ], [ 634487.1, 175767.6 ], [ 634529.9, 175804.9 ], [ 634602.7, 175787.0 ], [ 634609.0, 175795.3 ], [ 634600.9, 175808.6 ], [ 634568.0, 175836.7 ], [ 634572.7, 175849.4 ], [ 634671.0, 175846.2 ], [ 634806.3, 175859.0 ], [ 634837.2, 175838.1 ], [ 634852.7, 175838.2 ], [ 634861.2, 175854.4 ], [ 634860.1, 175920.7 ], [ 634870.4, 175956.4 ], [ 634910.2, 175996.9 ], [ 634928.3, 176059.9 ], [ 634963.4, 176106.3 ], [ 634991.0, 176108.9 ], [ 635031.2, 176090.4 ], [ 635085.4, 176097.2 ], [ 635118.4, 176085.7 ], [ 635133.7, 176089.4 ], [ 635132.0, 176104.4 ], [ 635108.9, 176118.6 ], [ 635102.2, 176167.9 ], [ 635090.0, 176185.2 ], [ 635095.0, 176240.7 ], [ 635088.7, 176271.4 ], [ 635103.5, 176274.2 ], [ 635131.0, 176254.7 ], [ 635150.5, 176252.2 ], [ 635190.4, 176276.4 ], [ 635293.5, 176314.7 ], [ 635319.0, 176307.9 ], [ 635333.7, 176315.4 ], [ 635333.5, 176349.4 ], [ 635371.5, 176383.2 ], [ 635450.3, 176495.2 ], [ 635454.3, 176515.1 ], [ 635441.6, 176565.1 ], [ 635441.6, 176599.2 ], [ 635448.8, 176624.8 ], [ 635482.2, 176652.4 ], [ 635507.8, 176691.3 ], [ 635593.9, 176770.2 ], [ 635622.6, 176819.5 ], [ 635647.5, 176917.8 ], [ 635670.3, 176948.0 ], [ 635674.8, 176967.0 ], [ 635668.7, 177025.4 ], [ 635654.2, 177057.4 ], [ 635671.7, 177149.3 ], [ 635688.2, 177154.7 ], [ 635715.2, 177130.7 ], [ 635752.0, 177120.7 ], [ 635774.2, 177102.1 ], [ 635787.4, 177079.9 ], [ 635805.0, 177076.4 ], [ 635829.6, 177103.5 ], [ 635839.6, 177127.6 ], [ 635831.0, 177190.5 ], [ 635835.1, 177217.2 ], [ 635866.4, 177266.9 ], [ 635911.7, 177319.8 ], [ 635923.5, 177348.9 ], [ 635924.0, 177368.7 ], [ 635894.0, 177489.8 ], [ 635873.3, 177513.1 ], [ 635826.7, 177532.9 ], [ 635814.2, 177548.9 ], [ 635816.2, 177599.5 ], [ 635831.8, 177686.5 ], [ 635854.2, 177750.7 ], [ 635854.5, 177765.2 ], [ 635837.1, 177805.0 ], [ 635680.6, 177851.4 ], [ 635635.9, 177844.2 ], [ 635563.7, 177816.1 ], [ 635511.2, 177811.5 ], [ 635423.8, 177823.1 ], [ 635337.4, 177850.8 ], [ 635314.2, 177852.5 ], [ 635303.2, 177864.0 ], [ 635311.6, 177911.2 ], [ 635298.5, 177936.0 ], [ 635139.3, 178016.4 ], [ 635079.3, 178040.4 ], [ 635056.5, 178067.5 ], [ 635044.1, 178114.0 ], [ 635060.7, 178220.0 ], [ 635043.9, 178247.9 ], [ 635019.8, 178260.0 ], [ 634988.2, 178265.2 ], [ 634934.3, 178263.0 ], [ 634898.7, 178253.8 ], [ 634870.4, 178263.7 ], [ 634859.2, 178279.2 ], [ 634854.4, 178304.4 ], [ 634947.4, 178407.6 ], [ 634953.8, 178431.2 ], [ 634935.5, 178447.2 ], [ 634902.7, 178456.2 ], [ 634749.4, 178468.0 ], [ 634708.3, 178497.9 ], [ 634695.9, 178522.4 ], [ 634693.0, 178560.0 ], [ 634707.1, 178592.6 ], [ 634754.4, 178652.5 ], [ 634782.7, 178740.5 ], [ 634759.2, 178759.5 ], [ 634700.5, 178784.9 ], [ 634695.7, 178798.0 ], [ 634702.2, 178811.0 ], [ 634796.1, 178896.7 ], [ 634819.6, 178903.0 ], [ 634914.7, 178904.9 ], [ 634947.9, 178920.7 ], [ 634979.7, 178975.7 ], [ 634999.0, 178996.2 ], [ 635110.2, 179042.6 ], [ 635165.9, 179073.3 ], [ 635261.0, 179127.0 ], [ 635346.7, 179191.5 ], [ 635400.5, 179179.5 ], [ 635595.9, 179178.6 ], [ 635627.2, 179169.7 ], [ 635718.8, 179117.4 ], [ 635760.6, 179113.1 ], [ 635784.6, 179118.6 ], [ 635871.6, 179173.0 ], [ 635905.1, 179221.8 ], [ 635937.1, 179285.5 ], [ 635966.9, 179308.8 ], [ 636002.1, 179318.8 ], [ 636105.2, 179317.0 ], [ 636146.1, 179324.1 ], [ 636169.9, 179335.0 ], [ 636219.2, 179378.6 ], [ 636293.6, 179483.3 ], [ 636334.9, 179506.5 ], [ 636463.4, 179556.0 ], [ 636464.1, 179565.8 ], [ 636454.1, 179578.5 ], [ 636382.4, 179629.2 ], [ 636361.1, 179657.1 ], [ 636351.1, 179717.9 ], [ 636325.1, 179767.8 ], [ 636323.7, 179791.0 ], [ 636334.8, 179836.3 ], [ 636321.8, 179871.6 ], [ 636304.3, 179880.4 ], [ 636237.6, 179879.5 ], [ 636231.3, 179894.5 ], [ 636251.9, 179912.8 ], [ 636326.3, 179955.4 ], [ 636394.2, 179982.7 ], [ 636488.3, 180032.0 ], [ 636500.8, 180040.4 ], [ 636505.6, 180061.9 ], [ 636498.1, 180069.3 ], [ 636467.6, 180073.8 ], [ 636336.3, 180072.4 ], [ 636256.4, 180091.0 ], [ 636176.7, 180082.7 ], [ 636122.1, 180067.3 ], [ 636110.6, 180076.1 ], [ 636114.6, 180089.6 ], [ 636178.1, 180135.7 ], [ 636284.8, 180246.9 ], [ 636352.9, 180276.1 ], [ 636377.2, 180293.3 ], [ 636385.0, 180316.7 ], [ 636369.3, 180367.4 ], [ 636377.9, 180383.3 ], [ 636506.1, 180428.0 ], [ 636525.7, 180468.8 ], [ 636551.4, 180487.1 ], [ 636621.9, 180512.6 ], [ 636662.6, 180513.7 ], [ 636706.9, 180528.8 ], [ 636786.1, 180569.4 ], [ 636802.346, 180601.078 ], [ 636826.9, 180599.0 ], [ 636864.4, 180612.3 ], [ 637010.5, 180688.8 ], [ 637119.1, 180726.4 ], [ 637267.1, 180803.3 ], [ 637372.1, 180877.1 ], [ 637489.4, 180974.6 ], [ 637570.0, 181073.5 ], [ 637636.6, 181178.2 ], [ 637723.2, 181281.9 ], [ 637767.1, 181347.0 ], [ 637864.3, 181432.0 ], [ 637923.7, 181521.6 ], [ 637927.0, 181541.8 ], [ 637914.6, 181572.1 ], [ 637915.6, 181585.3 ], [ 637922.3, 181594.6 ], [ 637946.8, 181603.5 ], [ 637988.8, 181648.1 ], [ 638091.1, 181674.2 ], [ 638360.9, 181851.2 ], [ 638449.1, 181923.5 ], [ 638523.6, 181938.2 ], [ 638584.2, 181966.7 ], [ 638669.3, 182029.2 ], [ 638712.2, 182039.0 ], [ 638759.1, 182073.8 ], [ 638887.5, 182142.7 ], [ 639011.2, 182232.0 ], [ 639056.7, 182239.4 ], [ 639082.6, 182256.7 ], [ 639194.2, 182446.2 ], [ 639176.6, 182537.2 ], [ 639178.4, 182618.3 ], [ 639191.4, 182691.8 ], [ 639209.2, 182706.0 ], [ 639261.4, 182721.0 ], [ 639277.5, 182731.6 ], [ 639285.4, 182749.6 ], [ 639286.1, 182797.0 ], [ 639268.0, 182895.2 ], [ 639282.7, 182873.0 ], [ 639294.5, 182868.2 ], [ 639335.2, 182897.0 ], [ 639366.5, 182900.0 ], [ 639384.4, 182872.0 ], [ 639383.4, 182848.1 ], [ 639399.7, 182756.5 ], [ 639395.2, 182742.7 ], [ 639372.6, 182719.6 ], [ 639338.5, 182645.2 ], [ 639357.2, 182646.5 ], [ 639414.2, 182679.9 ], [ 639484.3, 182697.5 ], [ 639513.9, 182718.2 ], [ 639527.9, 182743.8 ], [ 639608.9, 182987.2 ], [ 639629.0, 183008.9 ], [ 639671.6, 183027.5 ], [ 639705.4, 183058.3 ], [ 639734.9, 183074.8 ], [ 639735.5, 183089.1 ], [ 639724.3, 183107.3 ], [ 639641.9, 183095.8 ], [ 639534.5, 183070.1 ], [ 639517.6, 183079.9 ], [ 639501.4, 183103.4 ], [ 639499.7, 183142.5 ], [ 639460.9, 183162.3 ], [ 639435.4, 183190.7 ], [ 639424.0, 183225.6 ], [ 639425.4, 183275.3 ], [ 639438.6, 183324.5 ], [ 639428.7, 183368.0 ], [ 639463.7, 183447.8 ], [ 639471.9, 183464.3 ], [ 639519.0, 183507.7 ], [ 639552.4, 183550.0 ], [ 639595.6, 183583.2 ], [ 639745.6, 183645.4 ], [ 639835.9, 183670.5 ], [ 639872.9, 183674.9 ], [ 639968.2, 183714.7 ], [ 640006.9, 183720.7 ], [ 640037.9, 183733.0 ], [ 640091.7, 183731.8 ], [ 640118.2, 183739.9 ], [ 640141.4, 183710.0 ], [ 640180.2, 183694.8 ], [ 640341.5, 183690.2 ], [ 640398.8, 183662.2 ], [ 640431.1, 183632.3 ], [ 640493.8, 183662.6 ], [ 640558.4, 183684.4 ], [ 640619.4, 183726.2 ], [ 640669.2, 183738.3 ], [ 640692.5, 183757.1 ], [ 640716.6, 183809.4 ], [ 640753.9, 183849.7 ], [ 640809.6, 183882.7 ], [ 640804.9, 183895.2 ], [ 640792.1, 183896.7 ], [ 640753.1, 183880.2 ], [ 640697.5, 183875.3 ], [ 640595.4, 183849.8 ], [ 640541.1, 183845.9 ], [ 640502.6, 183827.9 ], [ 640482.8, 183828.6 ], [ 640479.9, 183845.2 ], [ 640545.6, 183875.8 ], [ 640616.1, 183898.9 ], [ 640742.4, 184008.7 ], [ 640763.9, 184032.1 ], [ 640763.4, 184072.1 ], [ 640780.8, 184095.9 ], [ 640793.4, 184137.9 ], [ 640852.8, 184191.7 ], [ 640873.7, 184228.1 ], [ 640959.9, 184286.9 ], [ 641001.9, 184335.9 ], [ 641060.1, 184376.2 ], [ 641087.0, 184408.6 ], [ 641362.1, 184522.1 ], [ 641387.1, 184540.9 ], [ 641409.1, 184573.2 ], [ 641450.6, 184560.4 ], [ 641471.9, 184562.7 ], [ 641727.7, 184660.7 ], [ 641920.4, 184807.4 ], [ 641987.1, 184822.7 ], [ 642038.1, 184875.6 ], [ 642116.8, 184925.3 ], [ 642198.9, 184995.3 ], [ 642280.7, 185037.5 ], [ 642347.8, 185134.4 ], [ 642399.8, 185197.5 ], [ 642464.8, 185246.3 ], [ 642476.4, 185247.3 ], [ 642502.5, 185225.8 ], [ 642516.5, 185221.6 ], [ 642532.7, 185229.1 ], [ 642591.1, 185295.3 ], [ 642613.026, 185331.933 ], [ 642597.9, 185273.8 ], [ 642571.6, 185242.8 ], [ 642579.7, 185209.5 ], [ 642580.5, 185163.2 ], [ 642566.9, 185025.2 ], [ 642547.3, 184941.6 ], [ 642509.1, 184873.6 ], [ 642524.0, 184856.7 ], [ 642539.9, 184858.9 ], [ 642589.3, 184880.7 ], [ 642698.7, 184912.7 ], [ 642729.9, 184936.2 ], [ 642774.1, 184985.6 ], [ 642817.9, 184977.6 ], [ 642873.5, 184723.6 ], [ 642877.2, 184672.0 ], [ 642889.5, 184667.4 ], [ 642948.8, 184666.1 ], [ 642968.0, 184684.3 ], [ 643003.3, 184739.8 ], [ 643032.6, 184765.6 ], [ 643087.4, 184787.0 ], [ 643129.6, 184841.5 ], [ 643175.1, 184870.5 ], [ 643244.5, 184935.7 ], [ 643290.1, 184970.3 ], [ 643399.4, 185032.5 ], [ 643446.8, 185034.6 ], [ 643466.0, 185027.6 ], [ 643478.7, 184999.4 ], [ 643477.9, 184972.4 ], [ 643490.2, 184963.9 ], [ 643499.9, 184964.1 ], [ 643569.9, 185028.6 ], [ 643599.2, 185030.9 ], [ 643619.5, 185017.1 ], [ 643665.5, 184957.6 ], [ 643711.849, 184923.851 ], [ 643719.2, 184838.3 ], [ 643740.1, 184773.9 ], [ 643737.6, 184728.5 ], [ 643711.1, 184664.0 ], [ 643705.0, 184632.5 ], [ 643669.4, 184587.4 ], [ 643661.9, 184523.7 ], [ 643587.8, 184425.3 ], [ 643575.9, 184400.2 ], [ 643571.5, 184354.8 ], [ 643616.0, 184288.3 ], [ 643675.2, 184287.7 ], [ 643687.2, 184279.9 ], [ 643672.7, 184162.2 ], [ 643672.5, 184073.5 ], [ 643676.4, 184046.0 ], [ 643701.2, 183996.0 ], [ 643768.1, 183620.4 ], [ 643776.7, 183560.7 ], [ 643774.1, 183513.1 ], [ 643841.7, 183387.2 ], [ 643832.1, 183340.5 ], [ 643834.4, 183320.1 ], [ 643861.9, 183269.1 ], [ 643864.3, 183183.2 ], [ 643843.5, 183114.4 ], [ 643859.2, 183093.7 ], [ 643912.7, 183074.3 ], [ 643944.7, 183052.5 ], [ 644021.4, 183029.0 ], [ 644028.4, 183016.0 ], [ 644022.7, 182947.0 ], [ 644035.2, 182941.0 ], [ 644071.7, 182973.3 ], [ 644053.1, 182926.0 ], [ 644056.8, 182901.7 ], [ 644078.4, 182869.5 ], [ 644098.4, 182855.3 ], [ 644110.7, 182861.0 ], [ 644115.9, 182887.0 ], [ 644142.8, 182926.6 ], [ 644197.9, 182934.3 ], [ 644304.7, 183000.8 ], [ 644324.7, 182997.0 ], [ 644371.2, 182966.7 ], [ 644455.2, 182952.8 ], [ 644509.2, 183028.6 ], [ 644830.8, 183268.4 ], [ 644902.4, 183278.8 ], [ 644929.2, 183290.0 ], [ 645089.3, 183322.0 ], [ 645139.2, 183353.4 ], [ 645173.1, 183384.8 ], [ 645498.9, 183601.0 ], [ 645507.5, 183601.7 ], [ 645566.0, 183564.9 ], [ 645579.9, 183562.9 ], [ 645585.3, 183572.5 ], [ 645576.2, 183641.2 ], [ 645579.978, 183653.995 ], [ 645663.0, 183773.3 ], [ 645654.0, 183985.7 ], [ 645665.5, 184009.8 ], [ 645747.6, 184087.8 ], [ 645757.4, 184104.9 ], [ 645763.6, 184149.4 ], [ 645773.8, 184144.0 ], [ 645813.9, 184092.2 ], [ 645852.2, 184068.4 ], [ 645915.0, 184045.5 ], [ 645934.2, 184054.0 ], [ 645957.7, 184095.0 ], [ 645973.0, 184109.4 ], [ 646073.2, 184154.5 ], [ 646104.2, 184160.2 ], [ 646148.5, 184154.4 ], [ 646256.0, 184154.2 ], [ 646265.5, 184143.7 ], [ 646276.0, 184106.5 ], [ 646297.5, 184093.5 ], [ 646315.7, 184098.7 ], [ 646316.0, 184116.5 ], [ 646297.5, 184147.2 ], [ 646300.3, 184240.8 ], [ 646279.7, 184273.0 ], [ 646265.0, 184279.7 ], [ 646237.2, 184279.9 ], [ 646182.2, 184366.0 ], [ 646194.8, 184439.6 ], [ 646188.8, 184456.1 ], [ 646152.7, 184497.6 ], [ 646192.0, 184491.7 ], [ 646264.2, 184507.0 ], [ 646297.0, 184491.2 ], [ 646311.7, 184492.5 ], [ 646346.1, 184512.9 ], [ 646349.7, 184549.2 ], [ 646360.0, 184557.2 ], [ 646382.4, 184540.5 ], [ 646405.2, 184499.7 ], [ 646437.5, 184483.5 ], [ 646453.5, 184462.7 ], [ 646469.7, 184460.5 ], [ 646507.5, 184475.7 ], [ 646505.0, 184494.2 ], [ 646474.2, 184491.2 ], [ 646461.0, 184515.9 ], [ 646454.5, 184545.9 ], [ 646448.7, 184691.7 ], [ 646434.5, 184733.7 ], [ 646435.1, 184751.9 ] ], [ [ 559360.931183, 143054.964848 ], [ 559364.091, 143080.214 ], [ 559354.373, 143097.944 ], [ 559405.0, 143124.9 ], [ 559365.5, 143179.0 ], [ 559313.2, 143286.9 ], [ 559287.5, 143325.9 ], [ 559304.5, 143340.7 ], [ 559331.0, 143328.3 ], [ 559346.6, 143297.1 ], [ 559368.6, 143272.9 ], [ 559460.7, 143234.2 ], [ 559478.6, 143219.2 ], [ 559526.2, 143161.3 ], [ 559533.5, 143107.7 ], [ 559550.6, 143076.6 ], [ 559630.6, 143013.6 ], [ 559741.6, 142871.0 ], [ 559762.8, 142864.3 ], [ 559770.4, 142870.3 ], [ 559769.0, 142944.4 ], [ 559742.6, 143007.4 ], [ 559712.5, 143110.4 ], [ 559720.8, 143137.9 ], [ 559753.3, 143174.4 ], [ 559753.6, 143184.9 ], [ 559734.8, 143208.4 ], [ 559733.6, 143228.9 ], [ 559788.19, 143302.246 ], [ 559795.537, 143322.711 ], [ 559795.1, 143351.2 ], [ 559749.0, 143415.8 ], [ 559725.1, 143482.0 ], [ 559648.3, 143591.5 ], [ 559625.9, 143613.2 ], [ 559525.6, 143681.1 ], [ 559521.8, 143700.8 ], [ 559601.9, 143667.0 ], [ 559663.6, 143667.7 ], [ 559685.5, 143661.4 ], [ 559708.2, 143650.7 ], [ 559761.1, 143597.9 ], [ 559777.4, 143591.3 ], [ 559823.8, 143589.6 ], [ 559841.2, 143579.5 ], [ 559895.7, 143503.8 ], [ 559928.6, 143488.0 ], [ 560043.6, 143462.7 ], [ 560171.6, 143342.0 ], [ 560268.5, 143120.0 ], [ 560302.793, 143088.091 ], [ 560379.471, 143111.946 ], [ 560441.192, 143151.828 ], [ 560490.6, 143139.5 ], [ 560512.4, 143141.2 ], [ 560558.4, 143156.5 ], [ 560574.8, 143168.5 ], [ 560597.5, 143200.0 ], [ 560600.7, 143230.1 ], [ 560663.4, 143349.4 ], [ 560679.8, 143402.0 ], [ 560734.5, 143500.1 ], [ 560771.3, 143533.9 ], [ 560791.2, 143542.7 ], [ 560854.9, 143539.9 ], [ 560880.0, 143545.5 ], [ 560927.9, 143583.4 ], [ 561003.2, 143615.2 ], [ 561056.3, 143578.0 ], [ 561118.5, 143599.5 ], [ 561186.4, 143636.5 ], [ 561213.0, 143690.2 ], [ 561256.7, 143727.8 ], [ 561287.4, 143697.3 ], [ 561303.2, 143694.8 ], [ 561378.4, 143710.8 ], [ 561421.9, 143704.0 ], [ 561423.9, 143692.5 ], [ 561399.0, 143656.6 ], [ 561371.7, 143588.2 ], [ 561387.9, 143473.5 ], [ 561385.9, 143398.2 ], [ 561412.4, 143362.5 ], [ 561404.9, 143324.7 ], [ 561382.5, 143312.8 ], [ 561210.5, 143323.0 ], [ 561172.5, 143315.9 ], [ 561162.7, 143302.8 ], [ 561170.3, 143275.0 ], [ 561166.1, 143260.5 ], [ 561119.0, 143226.1 ], [ 561084.6, 143217.2 ], [ 561072.6, 143206.7 ], [ 561046.7, 143160.8 ], [ 561029.0, 143070.9 ], [ 561052.3, 143015.3 ], [ 561046.5, 142995.0 ], [ 561029.5, 142989.2 ], [ 561005.7, 142994.6 ], [ 560953.5, 142991.3 ], [ 560932.8, 142982.2 ], [ 560872.8, 142938.5 ], [ 560863.2, 142904.0 ], [ 560837.8, 142872.2 ], [ 560794.3, 142866.0 ], [ 560756.5, 142832.7 ], [ 560708.8, 142818.7 ], [ 560592.6, 142656.1 ], [ 560559.3, 142629.0 ], [ 560548.8, 142592.3 ], [ 560563.7, 142514.1 ], [ 560550.7, 142468.4 ], [ 560607.2, 142456.0 ], [ 560620.7, 142461.7 ], [ 560632.2, 142476.7 ], [ 560682.5, 142546.7 ], [ 560703.2, 142598.0 ], [ 560712.1, 142601.4 ], [ 560717.0, 142585.2 ], [ 560698.4, 142505.6 ], [ 560700.8, 142456.9 ], [ 560713.9, 142425.3 ], [ 560807.3, 142326.7 ], [ 560824.1, 142318.4 ], [ 560828.2, 142328.5 ], [ 560794.2, 142374.0 ], [ 560787.2, 142399.2 ], [ 560790.7, 142442.4 ], [ 560875.5, 142554.1 ], [ 560913.4, 142610.5 ], [ 560925.5, 142646.8 ], [ 560939.0, 142656.2 ], [ 560944.7, 142650.5 ], [ 560942.5, 142633.7 ], [ 560911.4, 142488.2 ], [ 560915.3, 142472.0 ], [ 560996.1, 142357.1 ], [ 561079.4, 142271.6 ], [ 561183.3, 142145.1 ], [ 561196.1, 142146.3 ], [ 561198.1, 142155.6 ], [ 561158.2, 142261.3 ], [ 561161.5, 142276.5 ], [ 561174.0, 142272.5 ], [ 561345.5, 142106.6 ], [ 561356.8, 142105.3 ], [ 561360.7, 142118.7 ], [ 561332.3, 142145.0 ], [ 561309.6, 142180.3 ], [ 561253.5, 142287.0 ], [ 561230.7, 142365.2 ], [ 561221.5, 142377.0 ], [ 561156.7, 142416.5 ], [ 561128.5, 142445.5 ], [ 561132.2, 142455.7 ], [ 561144.7, 142455.2 ], [ 561175.7, 142425.2 ], [ 561259.0, 142408.0 ], [ 561295.7, 142383.5 ], [ 561326.5, 142300.7 ], [ 561345.6, 142274.9 ], [ 561428.5, 142210.7 ], [ 561431.0, 142229.7 ], [ 561392.0, 142279.9 ], [ 561357.555, 142366.548 ], [ 561370.031, 142429.187 ], [ 561336.066, 142455.313 ], [ 561324.145, 142479.3 ], [ 561331.6, 142538.2 ], [ 561387.3, 142626.1 ], [ 561395.9, 142630.2 ], [ 561403.7, 142616.7 ], [ 561374.8, 142544.3 ], [ 561379.0, 142519.1 ], [ 561392.2, 142497.5 ], [ 561412.5, 142480.6 ], [ 561432.8, 142476.9 ], [ 561525.1, 142488.5 ], [ 561536.9, 142515.4 ], [ 561525.4, 142599.7 ], [ 561536.0, 142614.7 ], [ 561562.4, 142611.9 ], [ 561576.7, 142584.2 ], [ 561590.2, 142575.6 ], [ 561610.7, 142610.5 ], [ 561621.8, 142611.9 ], [ 561621.9, 142628.9 ], [ 561702.1, 142647.7 ], [ 561819.5, 142659.7 ], [ 561898.4, 142685.4 ], [ 561944.8, 142690.7 ], [ 561996.4, 142713.2 ], [ 562128.1, 142734.0 ], [ 562164.6, 142755.7 ], [ 562199.3, 142789.1 ], [ 562241.7, 142868.7 ], [ 562253.4, 142870.5 ], [ 562263.7, 142883.8 ], [ 562278.6, 142890.1 ], [ 562338.2, 142896.4 ], [ 562398.9, 142914.0 ], [ 562462.9, 142900.1 ], [ 562477.9, 142905.4 ], [ 562515.9, 142943.3 ], [ 562595.0, 142919.7 ], [ 562641.9, 142927.9 ], [ 562681.9, 142914.4 ], [ 562722.0, 142930.5 ], [ 562757.8, 142930.1 ], [ 562787.0, 142943.4 ], [ 562803.6, 142972.1 ], [ 562852.8, 142981.4 ], [ 562868.2, 143024.1 ], [ 562918.2, 143102.4 ], [ 562920.2, 143127.3 ], [ 562938.3, 143145.7 ], [ 562942.6, 143162.4 ], [ 562933.5, 143172.5 ], [ 562898.7, 143182.7 ], [ 562882.2, 143201.4 ], [ 562841.4, 143206.7 ], [ 562742.1, 143282.7 ], [ 562719.4, 143375.3 ], [ 562700.3, 143417.9 ], [ 562690.4, 143485.7 ], [ 562618.7, 143642.9 ], [ 562619.0, 143671.3 ], [ 562626.2, 143686.7 ], [ 562663.3, 143713.9 ], [ 562752.5, 143726.3 ], [ 562805.2, 143737.6 ], [ 562812.7, 143744.3 ], [ 562841.2, 143852.5 ], [ 562857.0, 143887.1 ], [ 562913.1, 143962.5 ], [ 562939.7, 143977.0 ], [ 563002.2, 143968.0 ], [ 563056.9, 143982.1 ], [ 563076.6, 143977.4 ], [ 563104.5, 143964.0 ], [ 563170.7, 143911.8 ], [ 563196.3, 143898.5 ], [ 563266.2, 143897.4 ], [ 563340.0, 143881.2 ], [ 563418.0, 143876.3 ], [ 563466.2, 143892.6 ], [ 563482.2, 143889.0 ], [ 563501.7, 143875.7 ], [ 563544.8, 143806.7 ], [ 563561.2, 143793.9 ], [ 563584.2, 143790.3 ], [ 563599.6, 143812.8 ], [ 563608.6, 143857.2 ], [ 563603.3, 143939.6 ], [ 563669.8, 143974.1 ], [ 563683.2, 144011.4 ], [ 563690.7, 144094.6 ], [ 563716.1, 144124.8 ], [ 563695.2, 144181.0 ], [ 563689.7, 144265.2 ], [ 563695.1, 144331.8 ], [ 563724.2, 144363.5 ], [ 563749.3, 144374.6 ], [ 563769.8, 144369.6 ], [ 563795.2, 144349.5 ], [ 563812.3, 144344.0 ], [ 563844.5, 144351.2 ], [ 563866.9, 144366.1 ], [ 563881.8, 144386.0 ], [ 563876.6, 144422.1 ], [ 563882.2, 144444.9 ], [ 563909.4, 144463.1 ], [ 563948.3, 144506.5 ], [ 563936.6, 144582.5 ], [ 563906.7, 144648.0 ], [ 563895.4, 144694.9 ], [ 563908.4, 144720.0 ], [ 563953.3, 144721.8 ], [ 563963.6, 144735.5 ], [ 563933.6, 144853.9 ], [ 563934.0, 144871.7 ], [ 563942.7, 144889.0 ], [ 563991.0, 144921.3 ], [ 564019.6, 144953.0 ], [ 564055.1, 145019.3 ], [ 564063.3, 145027.3 ], [ 564095.8, 145032.5 ], [ 564114.8, 145050.1 ], [ 564122.9, 145118.0 ], [ 564107.8, 145149.8 ], [ 564142.8, 145189.7 ], [ 564144.5, 145203.4 ], [ 564140.1, 145238.8 ], [ 564117.3, 145263.6 ], [ 564121.8, 145276.6 ], [ 564129.7, 145279.9 ], [ 564154.8, 145249.5 ], [ 564173.1, 145212.6 ], [ 564173.1, 145191.8 ], [ 564158.8, 145155.6 ], [ 564178.1, 145120.8 ], [ 564178.8, 145069.9 ], [ 564195.3, 145063.4 ], [ 564200.8, 145052.8 ], [ 564198.5, 145029.3 ], [ 564173.6, 145008.9 ], [ 564133.6, 144907.8 ], [ 564081.2, 144833.1 ], [ 564103.2, 144754.4 ], [ 564125.3, 144731.7 ], [ 564130.1, 144700.4 ], [ 564158.3, 144658.9 ], [ 564155.8, 144642.0 ], [ 564128.6, 144626.9 ], [ 564126.3, 144619.9 ], [ 564152.6, 144553.1 ], [ 564163.1, 144557.1 ], [ 564150.8, 144609.6 ], [ 564156.1, 144616.9 ], [ 564200.3, 144620.7 ], [ 564215.6, 144643.1 ], [ 564192.7, 144803.0 ], [ 564208.9, 144824.3 ], [ 564288.0, 144879.1 ], [ 564326.6, 144923.9 ], [ 564358.1, 144941.6 ], [ 564383.5, 144971.9 ], [ 564397.5, 144999.9 ], [ 564403.3, 145020.0 ], [ 564394.3, 145041.6 ], [ 564403.9, 145071.5 ], [ 564394.2, 145117.0 ], [ 564412.8, 145173.5 ], [ 564437.7, 145195.8 ], [ 564440.3, 145222.8 ], [ 564450.9, 145243.7 ], [ 564436.9, 145266.3 ], [ 564422.9, 145323.8 ], [ 564437.2, 145343.5 ], [ 564427.9, 145414.5 ], [ 564436.8, 145433.4 ], [ 564424.8, 145467.5 ], [ 564438.5, 145490.6 ], [ 564425.4, 145526.8 ], [ 564424.7, 145573.3 ], [ 564431.4, 145598.9 ], [ 564423.3, 145640.4 ], [ 564401.5, 145659.1 ], [ 564383.6, 145686.9 ], [ 564383.1, 145699.0 ], [ 564354.8, 145749.4 ], [ 564318.349, 145932.965 ], [ 564313.7, 146051.1 ], [ 564274.2, 146197.3 ], [ 564276.5, 146221.8 ], [ 564253.8, 146259.4 ], [ 564275.5, 146370.9 ], [ 564265.6, 146384.5 ], [ 564231.8, 146389.8 ], [ 564223.8, 146407.8 ], [ 564226.3, 146433.0 ], [ 564205.4, 146447.4 ], [ 564197.9, 146461.4 ], [ 564196.0, 146546.3 ], [ 564211.2, 146584.6 ], [ 564224.2, 146663.8 ], [ 564221.5, 146687.9 ], [ 564182.3, 146718.7 ], [ 564152.5, 146754.4 ], [ 564160.4, 146799.2 ], [ 564152.5, 146827.4 ], [ 564118.9, 146879.0 ], [ 564089.1, 146904.4 ], [ 564077.0, 146910.3 ], [ 564044.3, 146893.6 ], [ 564035.7, 146895.5 ], [ 563964.9, 146941.9 ], [ 563941.6, 146947.1 ], [ 563906.2, 146931.9 ], [ 563888.4, 146911.0 ], [ 563861.7, 146857.9 ], [ 563845.9, 146843.9 ], [ 563810.8, 146870.1 ], [ 563797.9, 146896.2 ], [ 563812.4, 146927.6 ], [ 563865.1, 146982.6 ], [ 563871.0, 147014.5 ], [ 563817.1, 147215.2 ], [ 563800.3, 147307.1 ], [ 563798.955, 147350.904 ], [ 563792.8, 147359.6 ], [ 563816.1, 147367.8 ], [ 563863.8, 147339.8 ], [ 563887.3, 147360.8 ], [ 563911.041, 147423.063 ], [ 563952.391, 147482.26 ], [ 563970.8, 147489.3 ], [ 564022.3, 147585.5 ], [ 564025.1, 147642.172 ], [ 564039.7, 147668.0 ], [ 564047.7, 147711.4 ], [ 564038.0, 147735.4 ], [ 564059.0, 147753.1 ], [ 564068.6, 147778.2 ], [ 564061.6, 147794.8 ], [ 563985.3, 147812.0 ], [ 563952.6, 147804.9 ], [ 563926.1, 147786.9 ], [ 563920.1, 147804.4 ], [ 563928.0, 147860.9 ], [ 563938.7, 147886.9 ], [ 563957.8, 147916.5 ], [ 563998.2, 147953.0 ], [ 564045.7, 148091.3 ], [ 564027.8, 148246.3 ], [ 564039.9, 148347.9 ], [ 564010.5, 148402.0 ], [ 564012.5, 148436.6 ], [ 563999.9, 148511.4 ], [ 563976.2, 148603.5 ], [ 563983.7, 148636.3 ], [ 563981.7, 148797.3 ], [ 563997.7, 148807.0 ], [ 564011.2, 148805.8 ], [ 564039.0, 148734.6 ], [ 564075.7, 148682.4 ], [ 564118.0, 148705.4 ], [ 564169.0, 148698.9 ], [ 564203.2, 148762.6 ], [ 564188.7, 148833.9 ], [ 564129.2, 148888.5 ], [ 564117.2, 148940.6 ], [ 564103.7, 148949.3 ], [ 564029.0, 148947.9 ], [ 563923.4, 149008.8 ], [ 563902.2, 149036.5 ], [ 563935.1, 149029.9 ], [ 563971.8, 148997.2 ], [ 564001.3, 149000.2 ], [ 564019.1, 149017.9 ], [ 564024.6, 149051.4 ], [ 564017.1, 149080.9 ], [ 563986.6, 149115.7 ], [ 563990.3, 149131.5 ], [ 564019.8, 149157.2 ], [ 564124.4, 149196.0 ], [ 564129.8, 149220.7 ], [ 564110.6, 149250.2 ], [ 564035.1, 149310.4 ], [ 563964.8, 149342.2 ], [ 563854.1, 149424.9 ], [ 563760.3, 149536.7 ], [ 563755.3, 149596.5 ], [ 563740.2, 149614.6 ], [ 563671.5, 149680.0 ], [ 563643.3, 149693.8 ], [ 563613.4, 149720.6 ], [ 563451.9, 149874.0 ], [ 563254.2, 149986.5 ], [ 563231.3, 149988.0 ], [ 563184.9, 150004.5 ], [ 563129.6, 150071.8 ], [ 563115.6, 150118.1 ], [ 563104.1, 150118.8 ], [ 563066.1, 150099.9 ], [ 563033.8, 150103.2 ], [ 562971.9, 150125.3 ], [ 562932.0, 150176.5 ], [ 562879.2, 150279.8 ], [ 562860.0, 150290.3 ], [ 562830.4, 150338.3 ], [ 562806.0, 150348.4 ], [ 562811.2, 150411.7 ], [ 562807.8, 150450.3 ], [ 562822.5, 150488.7 ], [ 562825.7, 150529.8 ], [ 562779.6, 150582.6 ], [ 562776.9, 150621.2 ], [ 562745.4, 150684.2 ], [ 562727.4, 150696.5 ], [ 562675.8, 150776.1 ], [ 562656.7, 150778.6 ], [ 562578.1, 150754.9 ], [ 562557.1, 150771.4 ], [ 562517.6, 150874.0 ], [ 562472.6, 150923.2 ], [ 562459.8, 150946.0 ], [ 562479.6, 151080.7 ], [ 562493.1, 151117.7 ], [ 562536.2, 151176.6 ], [ 562554.4, 151220.4 ], [ 562558.7, 151281.9 ], [ 562544.1, 151354.7 ], [ 562559.519, 151389.62 ], [ 562700.775, 151510.989 ], [ 562791.459, 151554.461 ], [ 562795.201, 151587.242 ], [ 562778.8, 151799.1 ], [ 562760.994, 151835.777 ], [ 562709.683, 151877.11 ], [ 562676.723, 151916.484 ], [ 562633.0, 151952.4 ], [ 562615.3, 151991.5 ], [ 562582.7, 152026.3 ], [ 562553.0, 152084.3 ], [ 562549.338, 152105.334 ], [ 562557.932, 152138.554 ], [ 562550.187, 152179.599 ], [ 562499.849, 152250.072 ], [ 562344.962, 152421.222 ], [ 562320.449, 152460.878 ], [ 562441.0, 152418.6 ], [ 562612.1, 152334.8 ], [ 562638.7, 152314.8 ], [ 562702.8, 152241.5 ], [ 562823.8, 152171.3 ], [ 562918.6, 152130.6 ], [ 562979.2, 152094.5 ], [ 562994.7, 152090.3 ], [ 563055.0, 152104.0 ], [ 563083.9, 152094.0 ], [ 563108.0, 152070.6 ], [ 563123.8, 152064.0 ], [ 563202.4, 152061.8 ], [ 563295.2, 152047.1 ], [ 563407.7, 152055.9 ], [ 563426.1, 152047.5 ], [ 563455.3, 152008.0 ], [ 563502.1, 152005.7 ], [ 563507.7, 151996.9 ], [ 563557.2, 151982.6 ], [ 563605.7, 151990.9 ], [ 563672.9, 151976.9 ], [ 563736.7, 151997.7 ], [ 563834.7, 151981.9 ], [ 563875.4, 151999.9 ], [ 563902.7, 151998.4 ], [ 563920.3, 151988.7 ], [ 563938.2, 151958.1 ], [ 563930.5, 151877.5 ], [ 564019.4, 151799.6 ], [ 564035.9, 151801.1 ], [ 564143.2, 151897.1 ], [ 564158.4, 151894.9 ], [ 564220.2, 151831.1 ], [ 564233.7, 151829.1 ], [ 564259.1, 151843.5 ], [ 564344.6, 151927.5 ], [ 564360.1, 151934.4 ], [ 564388.1, 151921.6 ], [ 564437.1, 151843.1 ], [ 564479.0, 151818.0 ], [ 564513.5, 151809.9 ], [ 564542.6, 151809.7 ], [ 564644.6, 151844.4 ], [ 564686.8, 151844.9 ], [ 564703.1, 151841.9 ], [ 564731.8, 151813.1 ], [ 564764.2, 151816.1 ], [ 564798.5, 151828.6 ], [ 564865.5, 151801.4 ], [ 564897.5, 151801.4 ], [ 564972.8, 151815.9 ], [ 565087.2, 151792.6 ], [ 565159.7, 151810.9 ], [ 565185.7, 151810.9 ], [ 565256.2, 151794.6 ], [ 565328.8, 151797.9 ], [ 565382.7, 151774.1 ], [ 565420.0, 151772.5 ], [ 565476.5, 151755.9 ], [ 565517.7, 151723.7 ], [ 565561.7, 151673.3 ], [ 565633.4, 151552.8 ], [ 565658.2, 151482.2 ], [ 565668.5, 151368.6 ], [ 565660.0, 151361.8 ], [ 565632.5, 151373.3 ], [ 565606.0, 151373.1 ], [ 565571.5, 151342.3 ], [ 565517.9, 151310.8 ], [ 565479.7, 151271.6 ], [ 565439.7, 151260.6 ], [ 565393.7, 151261.8 ], [ 565327.5, 151288.6 ], [ 565276.0, 151349.8 ], [ 565236.5, 151350.1 ], [ 565227.2, 151340.3 ], [ 565228.2, 151324.6 ], [ 565271.5, 151269.7 ], [ 565403.6, 151177.9 ], [ 565433.5, 151167.1 ], [ 565519.5, 151172.6 ], [ 565544.4, 151158.4 ], [ 565548.5, 151136.1 ], [ 565464.2, 150980.8 ], [ 565469.7, 150960.8 ], [ 565481.7, 150961.3 ], [ 565514.7, 150981.8 ], [ 565550.2, 150973.4 ], [ 565610.8, 150980.7 ], [ 565661.0, 151012.9 ], [ 565756.2, 151051.6 ], [ 565851.5, 151113.2 ], [ 565904.0, 151202.3 ], [ 565912.7, 151254.6 ], [ 565921.4, 151270.6 ], [ 565966.5, 151283.6 ], [ 565998.5, 151301.5 ], [ 566119.6, 151400.6 ], [ 566124.3, 151423.3 ], [ 566143.8, 151461.3 ], [ 566140.3, 151501.6 ], [ 566146.7, 151559.6 ], [ 566124.2, 151640.4 ], [ 566093.2, 151672.1 ], [ 566094.7, 151686.1 ], [ 566133.0, 151722.6 ], [ 566134.2, 151732.4 ], [ 566089.7, 151899.9 ], [ 566262.9, 152035.2 ], [ 566303.4, 152098.5 ], [ 566312.5, 152148.7 ], [ 566272.4, 152202.8 ], [ 566217.4, 152207.8 ], [ 566186.7, 152201.7 ], [ 566155.1, 152184.8 ], [ 566129.1, 152185.0 ], [ 566068.7, 152207.7 ], [ 566037.2, 152231.4 ], [ 566026.7, 152247.9 ], [ 566026.7, 152265.4 ], [ 566079.7, 152380.3 ], [ 566110.5, 152509.9 ], [ 566108.7, 152556.5 ], [ 566094.7, 152586.0 ], [ 566057.5, 152631.0 ], [ 566037.7, 152711.2 ], [ 566043.0, 152765.9 ], [ 566071.4, 152888.3 ], [ 566110.7, 152968.2 ], [ 566108.9, 152987.4 ], [ 566125.3, 153048.6 ], [ 566116.3, 153065.4 ], [ 566103.4, 153068.5 ], [ 566078.1, 153059.1 ], [ 566015.2, 153062.7 ], [ 565919.1, 153088.7 ], [ 565849.3, 153097.1 ], [ 565682.8, 153167.1 ], [ 565657.5, 153191.9 ], [ 565615.2, 153192.9 ], [ 565543.479, 153218.688 ], [ 565512.6, 153208.7 ], [ 565504.5, 153224.0 ], [ 565518.9, 153262.8 ], [ 565492.3, 153377.4 ], [ 565492.1, 153425.7 ], [ 565483.6, 153436.9 ], [ 565503.3, 153555.3 ], [ 565498.9, 153733.9 ], [ 565531.6, 153883.7 ], [ 565527.8, 153932.3 ], [ 565535.4, 153962.4 ], [ 565517.4, 154046.9 ], [ 565537.1, 154100.0 ], [ 565540.6, 154159.7 ], [ 565536.1, 154165.2 ], [ 565527.1, 154161.5 ], [ 565505.3, 154111.7 ], [ 565497.1, 154118.2 ], [ 565490.2, 154165.8 ], [ 565498.8, 154186.0 ], [ 565547.8, 154206.8 ], [ 565571.1, 154271.5 ], [ 565568.0, 154287.6 ], [ 565632.7, 154345.8 ], [ 565674.4, 154436.2 ], [ 565675.7, 154491.4 ], [ 565683.4, 154507.3 ], [ 565714.7, 154523.3 ], [ 565756.2, 154519.5 ], [ 565742.7, 154593.3 ], [ 565784.5, 154604.4 ], [ 565807.2, 154617.3 ], [ 565830.7, 154603.8 ], [ 565884.2, 154639.5 ], [ 565902.6, 154677.4 ], [ 565969.4, 154712.4 ], [ 566005.8, 154764.5 ], [ 566041.5, 154883.1 ], [ 566086.1, 154866.9 ], [ 566098.8, 154872.7 ], [ 566147.2, 154903.1 ], [ 566271.9, 155019.9 ], [ 566314.8, 155149.7 ], [ 566437.8, 155346.5 ], [ 566483.5, 155461.5 ], [ 566511.6, 155559.3 ], [ 566503.1, 155592.5 ], [ 566516.2, 155622.0 ], [ 566523.0, 155661.3 ], [ 566524.4, 155698.8 ], [ 566499.6, 155742.0 ], [ 566500.9, 155762.0 ], [ 566520.9, 155776.5 ], [ 566559.1, 155754.5 ], [ 566568.9, 155783.8 ], [ 566586.2, 155807.3 ], [ 566594.2, 155844.5 ], [ 566612.4, 155855.3 ], [ 566662.7, 155862.9 ], [ 566688.8, 155880.4 ], [ 566699.2, 155896.4 ], [ 566741.5, 155921.3 ], [ 566751.7, 155940.6 ], [ 566804.1, 155961.4 ], [ 566837.4, 155983.1 ], [ 566969.263, 156015.759 ], [ 567006.083, 156019.441 ], [ 567039.956, 155998.086 ], [ 567102.1, 155996.2 ], [ 567137.5, 156023.0 ], [ 567246.8, 156073.8 ], [ 567312.7, 156096.3 ], [ 567345.5, 156077.8 ], [ 567379.2, 156043.8 ], [ 567420.2, 156020.5 ], [ 567452.5, 156024.3 ], [ 567467.6, 156010.3 ], [ 567551.6, 156007.8 ], [ 567632.6, 156034.4 ], [ 567734.4, 156053.6 ], [ 567799.3, 156080.6 ], [ 567828.8, 156108.9 ], [ 567897.4, 156148.8 ], [ 567900.9, 156213.2 ], [ 567940.8, 156337.2 ], [ 567940.9, 156391.3 ], [ 567962.4, 156525.1 ], [ 568020.2, 156691.5 ], [ 568052.5, 156720.1 ], [ 568102.8, 156784.4 ], [ 568097.2, 156831.5 ], [ 568050.8, 156938.8 ], [ 568053.7, 157033.7 ], [ 568063.4, 157099.4 ], [ 568090.2, 157190.3 ], [ 568135.1, 157267.1 ], [ 568152.6, 157360.2 ], [ 568183.4, 157472.8 ], [ 568217.6, 157507.1 ], [ 568226.9, 157525.5 ], [ 568207.2, 157557.9 ], [ 568192.8, 157637.7 ], [ 568174.7, 157750.9 ], [ 568172.8, 157854.2 ], [ 568195.6, 157930.6 ], [ 568199.1, 157976.9 ], [ 568256.9, 158022.2 ], [ 568235.929, 158081.34 ], [ 568257.4, 158078.2 ], [ 568303.3, 158095.1 ], [ 568366.7, 158099.6 ], [ 568385.8, 158078.9 ], [ 568396.1, 158040.8 ], [ 568414.3, 158012.5 ], [ 568490.0, 157945.5 ], [ 568538.9, 157937.6 ], [ 568594.4, 157900.2 ], [ 568591.3, 157865.5 ], [ 568565.4, 157841.2 ], [ 568570.6, 157813.9 ], [ 568553.8, 157739.3 ], [ 568578.7, 157670.4 ], [ 568572.5, 157627.5 ], [ 568605.3, 157552.5 ], [ 568687.8, 157544.0 ], [ 568744.8, 157592.3 ], [ 568759.1, 157595.2 ], [ 568791.9, 157580.9 ], [ 568833.9, 157626.2 ], [ 568890.7, 157634.4 ], [ 568919.1, 157666.6 ], [ 569000.5, 157677.5 ], [ 569096.9, 157671.3 ], [ 569236.2, 157629.7 ], [ 569368.0, 157637.5 ], [ 569409.0, 157647.0 ], [ 569421.3, 157641.1 ], [ 569419.4, 157628.3 ], [ 569388.7, 157582.2 ], [ 569369.8, 157533.4 ], [ 569337.9, 157410.1 ], [ 569296.2, 157157.6 ], [ 569214.8, 157014.4 ], [ 569207.1, 156977.4 ], [ 569215.0, 156791.7 ], [ 569239.3, 156765.9 ], [ 569303.7, 156733.1 ], [ 569355.1, 156655.5 ], [ 569375.0, 156589.7 ], [ 569390.3, 156470.7 ], [ 569404.5, 156454.7 ], [ 569415.8, 156452.2 ], [ 569443.0, 156467.0 ], [ 569469.0, 156505.2 ], [ 569505.3, 156598.0 ], [ 569498.2, 156637.7 ], [ 569543.4, 156702.2 ], [ 569588.3, 156720.8 ], [ 569680.9, 156714.7 ], [ 569751.6, 156722.0 ], [ 569739.1, 156824.7 ], [ 569746.762, 156860.981 ], [ 569767.1, 156884.7 ], [ 569802.6, 156870.5 ], [ 569832.1, 156871.5 ], [ 569863.9, 156899.5 ], [ 569890.6, 156941.5 ], [ 569928.4, 157042.5 ], [ 569972.1, 157032.2 ], [ 570037.4, 157034.1 ], [ 570081.3, 157024.3 ], [ 570107.4, 157045.9 ], [ 570109.0, 157099.1 ], [ 570125.5, 157143.3 ], [ 570141.9, 157218.6 ], [ 570157.0, 157250.4 ], [ 570287.7, 157249.5 ], [ 570381.1, 157239.6 ], [ 570409.1, 157223.1 ], [ 570498.5, 157237.8 ], [ 570545.0, 157212.6 ], [ 570591.8, 157213.0 ], [ 570602.5, 157206.2 ], [ 570625.5, 157163.5 ], [ 570636.5, 157161.7 ], [ 570644.4, 157167.5 ], [ 570640.8, 157214.3 ], [ 570642.0, 157243.5 ], [ 570646.7, 157246.8 ], [ 570657.5, 157241.1 ], [ 570697.1, 157192.0 ], [ 570725.5, 157141.0 ], [ 570746.2, 157127.2 ], [ 570760.2, 157102.3 ], [ 570767.5, 157069.6 ], [ 570761.3, 157015.7 ], [ 570750.1, 156984.2 ], [ 570757.6, 156972.1 ], [ 570765.9, 156972.5 ], [ 570780.0, 156999.1 ], [ 570818.1, 157189.9 ], [ 570829.4, 157210.6 ], [ 570860.1, 157237.1 ], [ 570857.0, 157255.7 ], [ 570826.9, 157275.2 ], [ 570820.9, 157297.7 ], [ 570827.2, 157315.5 ], [ 570858.3, 157356.0 ], [ 570864.2, 157398.7 ], [ 570871.8, 157413.1 ], [ 570900.8, 157445.4 ], [ 570906.3, 157511.9 ], [ 570933.7, 157552.9 ], [ 570942.9, 157584.4 ], [ 570946.7, 157614.9 ], [ 570939.9, 157687.0 ], [ 570897.1, 157720.5 ], [ 570881.6, 157741.8 ], [ 570881.6, 157754.1 ], [ 570889.2, 157755.3 ], [ 570920.3, 157735.4 ], [ 570955.0, 157757.1 ], [ 570972.0, 157756.9 ], [ 570986.6, 157750.3 ], [ 571016.8, 157715.3 ], [ 571068.4, 157710.9 ], [ 571108.6, 157724.5 ], [ 571133.7, 157716.3 ], [ 571149.7, 157644.9 ], [ 571133.7, 157613.5 ], [ 571141.3, 157600.2 ], [ 571157.3, 157613.6 ], [ 571164.9, 157632.7 ], [ 571183.3, 157730.9 ], [ 571256.4, 157796.9 ], [ 571277.5, 157807.7 ], [ 571277.4, 157792.5 ], [ 571256.6, 157763.4 ], [ 571256.2, 157722.0 ], [ 571263.9, 157698.6 ], [ 571273.3, 157690.8 ], [ 571309.7, 157681.5 ], [ 571295.7, 157648.3 ], [ 571304.4, 157641.7 ], [ 571359.9, 157696.3 ], [ 571368.2, 157732.8 ], [ 571401.2, 157772.5 ], [ 571483.1, 157843.7 ], [ 571641.5, 157939.2 ], [ 571649.6, 157953.7 ], [ 571644.3, 157994.9 ], [ 571650.8, 158000.8 ], [ 571692.742, 157963.639 ], [ 571757.4, 157975.1 ], [ 571778.9, 157991.6 ], [ 571776.9, 158007.0 ], [ 571713.9, 158087.3 ], [ 571706.3, 158101.0 ], [ 571708.2, 158121.3 ], [ 571702.1, 158136.2 ], [ 571654.182, 158214.249 ], [ 571675.2, 158255.3 ], [ 571702.1, 158278.4 ], [ 571742.1, 158304.1 ], [ 571783.1, 158317.2 ], [ 571869.3, 158294.4 ], [ 571930.6, 158296.9 ], [ 571967.7, 158275.3 ], [ 572012.7, 158286.6 ], [ 572055.6, 158282.3 ], [ 572114.2, 158325.2 ], [ 572135.8, 158329.8 ], [ 572183.3, 158326.8 ], [ 572236.1, 158358.2 ], [ 572331.8, 158400.3 ], [ 572393.4, 158437.5 ], [ 572449.1, 158499.1 ], [ 572416.1, 158543.3 ], [ 572417.6, 158587.0 ], [ 572407.6, 158608.8 ], [ 572170.4, 158714.5 ], [ 572101.9, 158794.5 ], [ 572025.3, 158827.9 ], [ 571920.8, 158926.0 ], [ 571920.5, 158966.1 ], [ 571848.7, 159118.2 ], [ 571830.7, 159192.2 ], [ 571824.5, 159324.1 ], [ 571848.5, 159404.8 ], [ 571851.1, 159434.4 ], [ 572067.2, 159846.2 ], [ 572096.2, 159945.7 ], [ 572131.2, 160000.7 ], [ 572163.7, 160070.9 ], [ 572185.5, 160107.7 ], [ 572206.2, 160126.7 ], [ 572224.7, 160132.9 ], [ 572260.7, 160222.3 ], [ 572297.7, 160279.5 ], [ 572372.0, 160356.8 ], [ 572525.3, 160448.4 ], [ 572587.0, 160513.6 ], [ 572632.1, 160586.9 ], [ 572723.0, 160614.0 ], [ 572841.7, 160700.8 ], [ 572864.0, 160707.8 ], [ 572883.7, 160705.5 ], [ 572913.2, 160689.0 ], [ 573007.2, 160613.4 ], [ 573035.9, 160599.5 ], [ 573026.8, 160578.5 ], [ 573066.3, 160584.5 ], [ 573065.8, 160596.7 ], [ 573478.1, 160953.7 ], [ 573549.09, 161008.631 ], [ 573697.0, 161048.4 ], [ 573687.7, 161090.6 ], [ 573780.345, 161145.4 ], [ 573771.7, 161167.9 ], [ 573765.9, 161257.5 ], [ 573731.248, 161281.356 ], [ 573672.2, 161295.2 ], [ 573653.0, 161312.4 ], [ 573622.0, 161391.4 ], [ 573578.4, 161365.0 ], [ 573492.028, 161288.337 ], [ 573467.4, 161314.3 ], [ 573449.1, 161356.1 ], [ 573430.4, 161374.6 ], [ 573405.9, 161384.9 ], [ 573420.9, 161409.6 ], [ 573495.3, 161475.7 ], [ 573490.7, 161522.0 ], [ 573500.5, 161618.9 ], [ 573511.9, 161670.3 ], [ 573581.5, 161766.9 ], [ 573650.6, 161816.3 ], [ 573650.9, 161826.3 ], [ 573612.9, 161904.6 ], [ 573611.648, 161960.347 ], [ 573588.1, 161966.2 ], [ 573527.4, 162022.0 ], [ 573468.0, 162180.1 ], [ 573467.5, 162199.1 ], [ 573480.4, 162236.9 ], [ 573547.3, 162323.8 ], [ 573578.5, 162341.1 ], [ 573582.9, 162363.3 ], [ 573608.5, 162406.1 ], [ 573623.5, 162456.8 ], [ 573623.0, 162476.1 ], [ 573598.8, 162557.1 ], [ 573600.3, 162573.8 ], [ 573625.0, 162598.3 ], [ 573641.3, 162602.3 ], [ 573697.4, 162598.0 ], [ 573780.2, 162527.0 ], [ 573885.9, 162423.8 ], [ 573970.7, 162368.3 ], [ 574061.8, 162325.9 ], [ 574198.8, 162078.8 ], [ 574243.4, 162073.5 ], [ 574396.4, 162027.2 ], [ 574489.8, 161968.0 ], [ 574566.9, 162076.7 ], [ 574610.1, 162099.0 ], [ 574635.2, 162103.0 ], [ 574631.2, 162121.5 ], [ 574598.576, 162157.908 ], [ 574662.3, 162136.7 ], [ 574674.4, 162152.0 ], [ 574736.9, 162158.7 ], [ 574744.0, 162151.7 ], [ 574793.798, 162155.1 ], [ 574803.6, 162177.0 ], [ 574796.6, 162214.0 ], [ 574824.6, 162284.7 ], [ 574837.1, 162306.7 ], [ 574875.6, 162336.5 ], [ 574890.6, 162397.7 ], [ 574892.7, 162544.0 ], [ 574873.7, 162575.5 ], [ 574877.0, 162611.2 ], [ 574884.0, 162641.6 ], [ 574933.7, 162685.0 ], [ 574937.2, 162696.0 ], [ 574933.2, 162772.0 ], [ 574955.7, 162837.2 ], [ 574953.7, 162872.2 ], [ 575000.8, 162902.7 ], [ 574991.7, 162977.5 ], [ 575037.2, 163290.9 ], [ 575061.5, 163281.7 ], [ 575080.7, 163221.9 ], [ 575064.5, 163143.9 ], [ 575066.0, 163121.2 ], [ 575078.7, 163110.2 ], [ 575109.2, 163105.9 ], [ 575122.0, 163095.4 ], [ 575137.4, 163037.5 ], [ 575162.7, 163002.9 ], [ 575195.0, 162978.7 ], [ 575215.7, 162913.7 ], [ 575251.5, 162865.2 ], [ 575262.0, 162804.2 ], [ 575261.5, 162667.4 ], [ 575278.5, 162643.4 ], [ 575287.2, 162609.2 ], [ 575316.7, 162567.2 ], [ 575315.5, 162455.7 ], [ 575289.0, 162411.1 ], [ 575291.5, 162398.1 ], [ 575354.0, 162299.1 ], [ 575392.0, 162280.1 ], [ 575423.7, 162276.6 ], [ 575558.2, 162314.6 ], [ 575630.4, 162325.5 ], [ 575663.5, 162340.6 ], [ 575738.7, 162401.4 ], [ 575771.4, 162444.9 ], [ 575905.4, 162483.4 ], [ 576128.2, 162519.5 ], [ 576226.2, 162585.6 ], [ 576265.0, 162624.8 ], [ 576381.7, 162720.8 ], [ 576453.8, 162808.6 ], [ 576495.5, 162817.2 ], [ 576548.7, 162810.9 ], [ 576577.5, 162818.9 ], [ 576621.0, 162839.7 ], [ 576685.7, 162892.9 ], [ 576712.0, 162939.4 ], [ 576750.5, 162961.4 ], [ 576771.7, 162992.0 ], [ 576764.2, 163014.2 ], [ 576716.0, 163051.5 ], [ 576699.2, 163056.0 ], [ 576704.5, 163077.7 ], [ 576750.2, 163066.2 ], [ 576781.0, 163067.0 ], [ 576818.7, 163088.7 ], [ 576833.5, 163088.7 ], [ 576882.7, 163062.5 ], [ 576936.2, 163053.5 ], [ 576986.5, 163059.5 ], [ 577074.8, 163098.4 ], [ 577131.7, 163097.4 ], [ 577156.6, 163078.7 ], [ 577179.7, 163079.4 ], [ 577185.1, 163062.0 ], [ 577240.477, 163039.487 ], [ 577229.2, 163017.6 ], [ 577118.0, 162958.6 ], [ 577089.2, 162960.1 ], [ 577053.7, 162992.6 ], [ 577035.7, 162995.4 ], [ 576961.2, 162964.4 ], [ 576910.5, 162963.6 ], [ 576899.2, 162954.6 ], [ 576898.7, 162936.9 ], [ 577010.4, 162946.8 ], [ 577047.9, 162931.8 ], [ 577114.8, 162891.4 ], [ 577135.2, 162887.8 ], [ 577219.4, 162902.0 ], [ 577438.4, 163018.0 ], [ 577469.4, 163047.0 ], [ 577494.0, 163086.6 ], [ 577524.9, 163118.9 ], [ 577589.4, 163164.5 ], [ 577656.5, 163180.7 ], [ 577681.7, 163210.5 ], [ 577698.5, 163257.9 ], [ 577726.8, 163288.0 ], [ 577804.4, 163353.0 ], [ 577968.5, 163465.894 ], [ 577968.899, 163485.567 ], [ 577979.5, 163493.1 ], [ 578012.5, 163509.1 ], [ 578053.7, 163515.9 ], [ 578093.5, 163532.4 ], [ 578121.5, 163563.1 ], [ 578127.2, 163584.9 ], [ 578168.0, 163583.6 ], [ 578229.5, 163559.6 ], [ 578303.5, 163576.9 ], [ 578390.7, 163612.4 ], [ 578428.2, 163605.4 ], [ 578450.205, 163594.49 ], [ 578446.3, 163652.1 ], [ 578454.2, 163671.4 ], [ 578522.5, 163718.0 ], [ 578524.1, 163727.1 ], [ 578498.8, 163783.0 ], [ 578513.2, 163799.2 ], [ 578554.597, 163809.15 ], [ 578636.4, 163808.9 ], [ 578674.6, 163826.2 ], [ 578753.1, 163883.4 ], [ 578772.6, 163886.7 ], [ 578800.1, 163864.9 ], [ 578832.6, 163822.7 ], [ 578864.9, 163753.2 ], [ 578882.6, 163729.2 ], [ 578908.1, 163711.7 ], [ 578967.3, 163697.9 ], [ 579018.6, 163813.9 ], [ 579065.8, 163887.2 ], [ 579128.5, 164034.0 ], [ 579155.6, 164081.6 ], [ 579198.3, 164136.8 ], [ 579196.1, 164186.3 ], [ 579270.1, 164179.8 ], [ 579322.8, 164194.4 ], [ 579384.6, 164276.3 ], [ 579449.7, 164345.2 ], [ 579506.9, 164447.6 ], [ 579532.5, 164482.0 ], [ 579594.7, 164544.0 ], [ 579750.4, 164662.7 ], [ 579773.303, 164706.039 ], [ 579824.6, 164708.6 ], [ 579853.9, 164725.3 ], [ 580007.6, 164883.3 ], [ 580109.1, 164961.3 ], [ 580203.9, 165058.8 ], [ 580296.8, 165134.1 ], [ 580305.7, 165173.3 ], [ 580376.1, 165252.4 ], [ 580393.7, 165291.0 ], [ 580413.5, 165295.2 ], [ 580422.2, 165314.2 ], [ 580497.9, 165379.4 ], [ 580585.7, 165415.5 ], [ 580642.8, 165475.1 ], [ 580656.7, 165479.9 ], [ 580684.8, 165504.4 ], [ 580829.9, 165578.8 ], [ 580910.6, 165650.8 ], [ 580944.6, 165696.3 ], [ 581030.9, 165754.6 ], [ 581080.1, 165813.3 ], [ 581109.9, 165902.8 ], [ 581153.8, 165999.4 ], [ 581130.3, 165995.0 ], [ 581174.7, 166046.3 ], [ 581384.8, 166124.9 ], [ 581405.2, 166196.6 ], [ 581395.9, 166238.6 ], [ 581380.2, 166249.3 ], [ 581320.4, 166243.3 ], [ 581297.7, 166254.3 ], [ 581306.4, 166276.1 ], [ 581344.9, 166307.1 ], [ 581357.2, 166326.3 ], [ 581356.4, 166342.8 ], [ 581346.9, 166358.8 ], [ 581304.6, 166396.3 ], [ 581242.8, 166429.3 ], [ 581179.4, 166445.5 ], [ 581151.3, 166403.1 ], [ 581105.8, 166430.8 ], [ 581050.8, 166447.3 ], [ 581003.6, 166519.3 ], [ 580968.8, 166604.6 ], [ 580961.6, 166608.6 ], [ 580934.7, 166599.9 ], [ 580958.1, 166635.9 ], [ 581000.7, 166648.8 ], [ 581020.4, 166664.4 ], [ 581040.0, 166693.1 ], [ 581056.7, 166757.3 ], [ 581075.2, 166788.3 ], [ 581231.5, 166859.6 ], [ 581280.5, 166900.1 ], [ 581348.7, 166977.3 ], [ 581489.0, 166988.6 ], [ 581565.0, 166980.1 ], [ 581626.7, 166991.8 ], [ 581643.7, 167007.3 ], [ 581657.0, 167047.3 ], [ 581680.0, 167081.1 ], [ 581733.5, 167119.3 ], [ 581808.5, 167116.3 ], [ 581852.5, 167123.1 ], [ 581879.2, 167117.8 ], [ 581898.2, 167101.6 ], [ 581930.2, 167054.8 ], [ 581953.8, 167043.7 ], [ 582099.5, 167054.3 ], [ 582146.0, 167051.1 ], [ 582197.2, 167026.3 ], [ 582272.9, 166965.4 ], [ 582314.7, 166942.1 ], [ 582381.0, 166922.3 ], [ 582422.0, 166925.1 ], [ 582461.5, 166904.8 ], [ 582507.7, 166907.1 ], [ 582588.0, 166924.8 ], [ 582641.0, 166922.3 ], [ 582788.5, 166831.3 ], [ 582844.0, 166803.8 ], [ 582870.5, 166796.3 ], [ 582908.2, 166799.6 ], [ 582948.2, 166770.8 ], [ 582979.0, 166767.6 ], [ 583003.7, 166768.3 ], [ 583052.5, 166796.6 ], [ 583108.7, 166940.3 ], [ 583131.2, 166964.3 ], [ 583216.2, 167026.1 ], [ 583243.2, 167090.3 ], [ 583257.5, 167100.8 ], [ 583306.0, 167057.6 ], [ 583349.7, 167038.3 ], [ 583349.0, 167014.6 ], [ 583358.2, 166989.8 ], [ 583420.2, 166907.3 ], [ 583444.7, 166857.8 ], [ 583478.7, 166859.1 ], [ 583501.0, 166869.8 ], [ 583549.2, 166878.8 ], [ 583562.7, 166814.3 ], [ 583608.7, 166773.1 ], [ 583685.4, 166744.5 ], [ 583711.9, 166680.7 ], [ 583725.1, 166668.2 ], [ 583746.6, 166674.5 ], [ 583757.5, 166662.3 ], [ 583752.2, 166643.1 ], [ 583760.0, 166624.1 ], [ 583807.3, 166567.4 ], [ 583814.5, 166568.8 ], [ 583816.9, 166630.0 ], [ 583850.1, 166639.2 ], [ 583880.6, 166635.8 ], [ 583905.0, 166610.5 ], [ 584057.9, 166596.5 ], [ 584077.4, 166586.2 ], [ 584079.6, 166576.6 ], [ 584253.7, 166597.3 ], [ 584309.2, 166592.8 ], [ 584326.7, 166610.8 ], [ 584391.5, 166600.8 ], [ 584429.7, 166603.1 ], [ 584498.0, 166628.6 ], [ 584522.5, 166625.1 ], [ 584569.2, 166648.3 ], [ 584622.7, 166655.3 ], [ 584638.5, 166678.8 ], [ 584678.2, 166703.6 ], [ 584749.7, 166773.6 ], [ 584820.2, 166796.8 ], [ 584932.2, 166882.6 ], [ 585000.0, 166949.8 ], [ 585046.9, 166969.0 ], [ 585157.4, 167036.5 ], [ 585257.6, 167051.9 ], [ 585376.7, 167083.3 ], [ 585433.4, 167152.9 ], [ 585497.7, 167174.0 ], [ 585575.0, 167166.8 ], [ 585591.4, 167172.3 ], [ 585624.6, 167201.2 ], [ 585672.5, 167209.2 ], [ 585721.6, 167242.4 ], [ 585783.3, 167250.8 ], [ 585912.7, 167289.6 ], [ 585963.7, 167326.3 ], [ 586017.3, 167354.5 ], [ 586150.9, 167423.7 ], [ 586208.3, 167441.4 ], [ 586248.8, 167469.7 ], [ 586304.4, 167495.6 ], [ 586367.0, 167512.7 ], [ 586399.7, 167513.4 ], [ 586491.9, 167461.3 ], [ 586522.4, 167409.1 ], [ 586524.6, 167378.4 ], [ 586499.4, 167307.5 ], [ 586522.4, 167330.7 ], [ 586557.1, 167384.2 ], [ 586593.6, 167453.2 ], [ 586638.6, 167498.0 ], [ 586639.4, 167510.0 ], [ 586614.9, 167535.2 ], [ 586613.9, 167552.7 ], [ 586693.6, 167546.4 ], [ 586709.0, 167536.4 ], [ 586715.8, 167545.1 ], [ 586709.9, 167557.6 ], [ 586673.6, 167591.7 ], [ 586630.6, 167614.0 ], [ 586610.9, 167650.7 ], [ 586702.1, 167652.5 ], [ 586734.8, 167683.6 ], [ 586793.1, 167711.3 ], [ 586844.0, 167756.3 ], [ 586857.4, 167763.2 ], [ 586893.3, 167764.9 ], [ 586931.8, 167829.9 ], [ 586994.3, 167882.8 ], [ 587027.7, 167897.8 ], [ 587063.9, 167928.5 ], [ 587114.9, 167947.2 ], [ 587181.6, 167955.0 ], [ 587244.6, 167952.2 ], [ 587272.1, 167944.5 ], [ 587286.5, 167996.3 ], [ 587448.9, 168268.7 ], [ 587467.5, 168352.5 ], [ 587491.3, 168388.5 ], [ 587510.0, 168407.3 ], [ 587546.0, 168428.0 ], [ 587854.0, 168568.8 ], [ 588087.5, 168806.8 ], [ 588121.3, 168829.3 ], [ 588162.5, 168845.5 ], [ 588216.0, 168849.5 ], [ 588364.5, 168816.1 ], [ 588404.8, 168814.5 ], [ 588659.5, 168865.0 ], [ 588681.7, 168880.6 ], [ 588886.7, 168688.9 ], [ 588900.6, 168660.9 ], [ 588916.2, 168646.2 ], [ 588927.8, 168612.7 ], [ 588950.0, 168584.6 ], [ 588992.3, 168547.8 ], [ 588996.5, 168537.0 ], [ 588971.9, 168514.0 ], [ 588932.8, 168440.5 ], [ 588984.1, 168435.7 ], [ 589014.1, 168399.8 ], [ 588954.6, 168362.5 ], [ 588949.8, 168352.3 ], [ 588935.9, 168300.7 ], [ 588957.6, 168259.7 ], [ 588965.9, 168227.7 ], [ 588960.9, 168216.5 ], [ 588907.9, 168166.7 ], [ 588911.6, 168151.7 ], [ 588944.9, 168129.4 ], [ 588977.2, 168116.9 ], [ 589105.1, 168094.0 ], [ 589161.4, 168094.7 ], [ 589188.6, 168087.5 ], [ 589212.1, 168071.2 ], [ 589247.6, 167967.6 ], [ 589247.4, 167947.7 ], [ 589270.8, 167870.7 ], [ 589271.3, 167835.1 ], [ 589285.4, 167808.2 ], [ 589301.6, 167795.2 ], [ 589345.9, 167802.0 ], [ 589359.2, 167796.4 ], [ 589345.3, 167738.3 ], [ 589349.8, 167672.0 ], [ 589337.8, 167624.5 ], [ 589343.9, 167611.3 ], [ 589367.5, 167645.7 ], [ 589380.5, 167647.5 ], [ 589432.2, 167614.7 ], [ 589735.2, 167584.2 ], [ 589754.2, 167592.7 ], [ 589793.5, 167635.5 ], [ 589810.6, 167660.0 ], [ 589824.8, 167705.0 ], [ 589858.2, 167747.4 ], [ 589881.5, 167758.5 ], [ 589920.2, 167761.5 ], [ 589939.0, 167772.0 ], [ 589945.0, 167884.0 ], [ 589964.2, 167968.9 ], [ 589936.5, 168024.2 ], [ 589942.5, 168027.0 ], [ 589966.1, 168011.5 ], [ 589998.8, 168025.1 ], [ 590014.2, 168044.1 ], [ 590024.3, 168043.2 ], [ 590072.4, 167958.0 ], [ 590074.6, 167917.2 ], [ 590092.9, 167936.2 ], [ 590111.4, 167937.7 ], [ 590168.1, 167905.5 ], [ 590194.9, 167931.5 ], [ 590207.4, 167935.5 ], [ 590313.4, 167943.5 ], [ 590457.5, 167968.9 ], [ 590545.2, 168006.1 ], [ 590584.0, 168009.8 ], [ 590596.5, 168000.5 ], [ 590638.3, 168044.8 ], [ 590722.1, 168098.6 ], [ 590809.6, 168133.6 ], [ 590832.9, 168134.0 ], [ 590822.2, 168090.8 ], [ 590824.2, 168076.5 ], [ 590873.2, 167982.3 ], [ 590829.4, 167949.8 ], [ 590808.5, 167856.3 ], [ 590815.0, 167835.4 ], [ 590896.5, 167902.5 ], [ 590975.2, 167904.0 ], [ 591085.5, 167968.8 ], [ 591116.2, 167994.8 ], [ 591146.3, 168036.4 ], [ 591177.5, 168178.0 ], [ 591208.3, 168248.2 ], [ 591261.0, 168273.5 ], [ 591310.0, 168337.8 ], [ 591339.5, 168363.3 ], [ 591368.0, 168367.5 ], [ 591398.7, 168362.0 ], [ 591412.5, 168371.0 ], [ 591428.0, 168401.5 ], [ 591439.0, 168402.8 ], [ 591470.2, 168359.8 ], [ 591508.2, 168351.8 ], [ 591539.7, 168372.0 ], [ 591588.5, 168418.8 ], [ 591593.7, 168435.0 ], [ 591579.1, 168472.6 ], [ 591541.1, 168484.0 ], [ 591514.6, 168509.3 ], [ 591492.4, 168508.4 ], [ 591493.6, 168536.6 ], [ 591533.6, 168590.1 ], [ 591567.2, 168613.2 ], [ 591609.6, 168670.6 ], [ 591637.0, 168776.0 ], [ 591663.9, 168815.4 ], [ 591721.9, 168853.6 ], [ 591738.6, 168891.4 ], [ 591811.9, 168930.4 ], [ 591835.6, 168954.4 ], [ 591865.4, 169015.9 ], [ 591879.1, 169075.1 ], [ 591892.5, 169105.6 ], [ 591908.6, 169110.5 ], [ 591927.7, 169105.4 ], [ 591945.5, 169090.9 ], [ 591962.7, 169062.6 ], [ 591969.7, 169061.4 ], [ 591974.2, 169067.9 ], [ 591962.2, 169103.4 ], [ 591965.7, 169126.6 ], [ 591976.5, 169135.6 ], [ 592022.2, 169143.4 ], [ 592039.0, 169164.2 ], [ 592045.0, 169190.4 ], [ 592058.0, 169208.6 ], [ 592068.2, 169204.1 ], [ 592063.7, 169169.6 ], [ 592083.7, 169150.4 ], [ 592086.0, 169102.6 ], [ 592096.0, 169063.9 ], [ 592093.2, 169018.9 ], [ 592108.7, 168950.6 ], [ 592118.0, 168953.1 ], [ 592137.7, 168988.4 ], [ 592170.2, 169018.9 ], [ 592190.5, 169053.1 ], [ 592231.2, 169075.1 ], [ 592264.2, 169071.1 ], [ 592319.2, 169089.6 ], [ 592341.9, 169113.8 ], [ 592362.1, 169079.7 ], [ 592366.6, 169060.2 ], [ 592365.1, 169012.5 ], [ 592342.6, 168990.2 ], [ 592341.6, 168979.0 ], [ 592462.6, 169009.7 ], [ 592483.4, 169025.7 ], [ 592522.6, 169074.3 ], [ 592530.6, 169098.5 ], [ 592536.9, 169094.5 ], [ 592535.6, 169053.0 ], [ 592544.9, 169016.0 ], [ 592545.6, 168980.0 ], [ 592558.7, 168973.5 ], [ 592561.7, 169000.3 ], [ 592579.2, 169032.8 ], [ 592578.5, 169071.0 ], [ 592611.2, 169128.0 ], [ 592760.7, 169328.3 ], [ 592803.5, 169353.5 ], [ 592862.0, 169422.3 ], [ 592913.7, 169501.8 ], [ 592956.2, 169522.5 ], [ 592985.5, 169549.8 ], [ 593050.5, 169563.0 ], [ 593158.1, 169631.0 ], [ 593210.5, 169667.7 ], [ 593322.8, 169777.3 ], [ 593352.6, 169831.0 ], [ 593380.3, 169865.4 ], [ 593413.2, 169947.0 ], [ 593458.032, 170005.245 ], [ 593442.6, 170063.1 ], [ 593444.9, 170087.9 ], [ 593451.6, 170107.6 ], [ 593499.9, 170173.4 ], [ 593516.9, 170211.6 ], [ 593508.6, 170239.1 ], [ 593471.4, 170273.9 ], [ 593462.9, 170295.9 ], [ 593467.9, 170399.6 ], [ 593460.1, 170441.9 ], [ 593444.6, 170450.5 ], [ 593361.0, 170449.6 ], [ 593296.5, 170477.7 ], [ 593252.4, 170511.5 ], [ 593194.5, 170588.0 ], [ 593189.4, 170648.4 ], [ 593171.4, 170690.1 ], [ 593168.3, 170714.7 ], [ 593166.7, 170774.5 ], [ 593178.6, 170834.9 ], [ 593175.9, 170848.9 ], [ 593107.6, 170964.9 ], [ 593083.7, 171130.5 ], [ 593054.9, 171223.4 ], [ 593052.8, 171356.3 ], [ 593085.9, 171440.8 ], [ 593092.0, 171474.4 ], [ 593089.9, 171513.2 ], [ 593081.8, 171550.1 ], [ 592968.7, 171862.1 ], [ 592963.8, 171966.9 ], [ 592957.4, 171986.4 ], [ 592972.1, 172043.6 ], [ 592968.4, 172098.7 ], [ 593026.1, 172295.1 ], [ 593039.1, 172317.4 ], [ 593070.5, 172341.6 ], [ 593101.6, 172379.4 ], [ 593132.0, 172441.4 ], [ 593147.9, 172552.6 ], [ 593171.3, 172585.0 ], [ 593189.2, 172596.8 ], [ 593224.6, 172650.6 ], [ 593216.0, 172703.1 ], [ 593224.4, 172791.1 ], [ 593246.4, 172846.4 ], [ 593254.6, 172941.9 ], [ 593289.9, 173046.8 ], [ 593295.5, 173205.0 ], [ 593326.3, 173297.9 ], [ 593361.451, 173352.302 ], [ 593378.1, 173396.5 ], [ 593381.6, 173471.4 ], [ 593358.5, 173473.7 ], [ 593373.0, 173530.4 ], [ 593396.0, 173580.7 ], [ 593396.5, 173639.1 ], [ 593386.3, 173668.1 ], [ 593300.3, 173790.7 ], [ 593260.5, 173834.0 ], [ 593199.4, 173886.0 ], [ 593181.1, 173913.6 ], [ 593146.8, 174052.4 ], [ 593157.0, 174098.1 ], [ 593155.0, 174127.6 ], [ 593117.35, 174162.451 ], [ 593096.3, 174172.9 ], [ 593070.8, 174171.4 ], [ 592992.8, 174092.9 ], [ 592957.7, 174071.7 ], [ 592882.2, 174048.3 ], [ 592798.1, 174046.5 ], [ 592748.5, 174076.1 ], [ 592660.0, 174062.1 ], [ 592606.3, 174076.4 ], [ 592538.8, 174082.9 ], [ 592508.5, 174108.1 ], [ 592490.8, 174132.3 ], [ 592485.8, 174201.3 ], [ 592424.5, 174252.4 ], [ 592420.4, 174310.1 ], [ 592399.5, 174354.9 ], [ 592378.0, 174373.6 ], [ 592335.3, 174389.1 ], [ 592322.0, 174388.9 ], [ 592277.0, 174360.6 ], [ 592240.0, 174356.4 ], [ 592191.3, 174358.6 ], [ 592118.8, 174383.4 ], [ 592052.3, 174444.1 ], [ 591978.3, 174528.6 ], [ 591970.8, 174555.6 ], [ 591970.5, 174626.1 ], [ 591962.3, 174647.6 ], [ 591946.5, 174664.1 ], [ 591923.3, 174668.4 ], [ 591873.1, 174626.4 ], [ 591816.3, 174627.9 ], [ 591770.3, 174617.1 ], [ 591672.5, 174562.4 ], [ 591655.5, 174560.1 ], [ 591630.5, 174579.1 ], [ 591558.1, 174672.0 ], [ 591531.7, 174717.1 ], [ 591520.5, 174728.9 ], [ 591496.9, 174738.4 ], [ 591508.1, 174754.9 ], [ 591523.9, 174757.6 ], [ 591656.9, 174729.5 ], [ 591704.6, 174727.5 ], [ 591745.4, 174738.0 ], [ 591798.6, 174762.6 ], [ 591833.1, 174801.1 ], [ 591855.1, 174810.9 ], [ 591943.9, 174819.4 ], [ 592001.1, 174801.4 ], [ 592028.9, 174816.1 ], [ 592044.6, 174817.1 ], [ 592075.6, 174801.6 ], [ 592088.1, 174784.6 ], [ 592089.1, 174690.6 ], [ 592102.1, 174650.2 ], [ 592132.9, 174629.2 ], [ 592167.4, 174626.0 ], [ 592201.1, 174652.7 ], [ 592209.4, 174684.2 ], [ 592190.6, 174783.7 ], [ 592194.9, 174837.4 ], [ 592259.4, 174900.1 ], [ 592290.9, 174966.6 ], [ 592301.1, 174974.9 ], [ 592325.6, 174978.9 ], [ 592367.4, 174950.1 ], [ 592384.1, 174947.9 ], [ 592494.0, 174990.0 ], [ 592515.1, 174995.8 ], [ 592536.6, 174993.6 ], [ 592548.9, 174983.6 ], [ 592572.1, 174942.9 ], [ 592620.8, 174936.3 ], [ 592634.1, 174927.1 ], [ 592641.4, 174869.9 ], [ 592650.1, 174857.4 ], [ 592676.1, 174853.6 ], [ 592717.4, 174868.9 ], [ 592743.1, 174891.6 ], [ 592778.0, 174943.2 ], [ 592835.9, 174982.3 ], [ 592860.4, 175014.4 ], [ 592869.6, 175053.4 ], [ 592837.1, 175136.4 ], [ 592850.9, 175161.1 ], [ 592903.7, 175202.0 ], [ 592958.4, 175303.6 ], [ 593044.4, 175376.0 ], [ 593078.8, 175432.4 ], [ 593108.9, 175441.1 ], [ 593167.4, 175442.4 ], [ 593213.4, 175469.4 ], [ 593232.1, 175468.9 ], [ 593274.2, 175453.8 ], [ 593305.0, 175438.1 ], [ 593348.2, 175394.2 ], [ 593394.9, 175388.4 ], [ 593441.1, 175359.9 ], [ 593460.5, 175358.0 ], [ 593481.7, 175366.4 ], [ 593532.3, 175398.0 ], [ 593592.9, 175394.5 ], [ 593644.8, 175402.9 ], [ 593705.5, 175394.8 ], [ 593736.2, 175360.0 ], [ 593780.9, 175286.7 ], [ 593847.5, 175216.9 ], [ 593891.5, 175182.4 ], [ 593929.9, 175157.3 ], [ 593950.9, 175151.9 ], [ 594016.6, 175164.9 ], [ 594080.9, 175208.1 ], [ 594114.4, 175220.6 ], [ 594139.1, 175240.6 ], [ 594191.1, 175334.6 ], [ 594195.522, 175384.801 ], [ 594238.6, 175430.5 ], [ 594265.6, 175489.1 ], [ 594293.6, 175518.6 ], [ 594352.1, 175522.6 ], [ 594399.4, 175554.6 ], [ 594438.1, 175567.6 ], [ 594510.1, 175561.4 ], [ 594567.1, 175538.1 ], [ 594624.9, 175536.9 ], [ 594695.3, 175526.4 ], [ 594750.6, 175570.2 ], [ 594783.2, 175627.8 ], [ 594785.463, 175644.742 ], [ 594777.788, 175667.788 ], [ 594594.307, 175807.681 ], [ 594593.9, 175840.4 ], [ 594616.9, 175949.1 ], [ 594655.3, 176050.2 ], [ 594672.7, 176053.2 ], [ 594693.5, 176090.2 ], [ 594777.2, 176157.7 ], [ 594819.5, 176197.2 ], [ 594840.5, 176226.2 ], [ 594864.2, 176238.7 ], [ 594892.2, 176268.0 ], [ 594945.2, 176290.5 ], [ 594968.0, 176311.7 ], [ 595029.4, 176337.6 ], [ 595104.4, 176353.6 ], [ 595120.6, 176383.4 ], [ 595132.1, 176391.1 ], [ 595165.6, 176390.9 ], [ 595221.9, 176404.6 ], [ 595251.1, 176429.6 ], [ 595286.9, 176420.1 ], [ 595326.6, 176434.0 ], [ 595349.0, 176426.7 ], [ 595374.0, 176439.6 ], [ 595407.0, 176444.5 ], [ 595412.6, 176458.6 ], [ 595466.9, 176489.4 ], [ 595497.1, 176496.2 ], [ 595577.9, 176476.0 ], [ 595654.1, 176431.7 ], [ 595679.9, 176403.0 ], [ 595693.6, 176347.5 ], [ 595749.4, 176321.2 ], [ 595866.6, 176294.2 ], [ 595979.9, 176309.7 ], [ 596029.6, 176303.5 ], [ 596073.1, 176305.7 ], [ 596141.1, 176280.7 ], [ 596202.6, 176217.2 ], [ 596257.9, 176229.5 ], [ 596296.9, 176225.7 ], [ 596336.6, 176170.0 ], [ 596366.6, 176101.5 ], [ 596443.6, 176109.7 ], [ 596455.4, 176102.7 ], [ 596492.6, 176054.5 ], [ 596497.9, 176027.5 ], [ 596489.9, 175960.2 ], [ 596588.1, 175884.7 ], [ 596614.5, 175814.0 ], [ 596635.2, 175795.2 ], [ 596663.0, 175687.5 ], [ 596703.7, 175658.0 ], [ 596795.6, 175620.5 ], [ 596750.5, 175693.2 ], [ 596747.2, 175712.0 ], [ 596747.5, 175731.0 ], [ 596770.3, 175784.6 ], [ 596780.0, 175828.0 ], [ 596781.0, 175895.2 ], [ 596788.3, 175905.9 ], [ 596768.0, 175956.0 ], [ 596783.625, 175959.104 ], [ 596842.4, 175888.9 ], [ 596876.0, 175883.5 ], [ 596950.2, 175885.5 ], [ 596962.4, 175838.6 ], [ 597017.3, 175779.5 ], [ 597157.7, 175649.7 ], [ 597380.7, 175579.5 ], [ 597496.7, 175574.7 ], [ 597575.5, 175591.5 ], [ 597662.7, 175639.0 ], [ 597716.5, 175690.2 ], [ 597841.7, 175744.5 ], [ 597864.2, 175749.0 ], [ 597904.7, 175751.0 ], [ 597979.2, 175721.0 ], [ 598039.7, 175682.2 ], [ 598067.7, 175685.5 ], [ 598153.5, 175730.2 ], [ 598343.3, 175850.6 ], [ 598431.2, 175891.8 ], [ 598484.4, 175909.7 ], [ 598526.4, 175912.7 ], [ 598618.9, 175901.9 ], [ 598712.4, 175859.0 ], [ 598861.7, 175807.2 ], [ 599031.2, 175795.7 ], [ 599109.7, 175746.9 ], [ 599179.3, 175717.0 ], [ 599201.2, 175713.2 ], [ 599342.5, 175725.2 ], [ 599477.5, 175716.5 ], [ 599550.5, 175686.7 ], [ 599609.5, 175635.8 ], [ 599623.1, 175602.6 ], [ 599611.665, 175591.448 ], [ 599619.7, 175527.1 ], [ 599708.6, 175378.4 ], [ 599769.7, 175352.4 ], [ 599799.4, 175315.0 ], [ 599872.6, 175250.5 ], [ 599942.8, 175213.5 ], [ 600025.8, 175154.6 ], [ 600101.3, 175090.1 ], [ 600183.5, 175004.7 ], [ 600222.9, 175001.3 ], [ 600206.0, 175028.0 ], [ 600207.2, 175054.0 ], [ 600247.5, 175105.5 ], [ 600283.2, 175206.8 ], [ 600297.0, 175225.8 ], [ 600355.4, 175271.8 ], [ 600378.7, 175316.5 ], [ 600449.2, 175347.0 ], [ 600503.8, 175384.8 ], [ 600518.8, 175406.4 ], [ 600552.5, 175485.7 ], [ 600677.7, 175578.7 ], [ 600707.5, 175660.5 ], [ 600751.7, 175686.7 ], [ 600839.4, 175724.7 ], [ 600905.2, 175747.0 ], [ 601015.716, 175770.217 ], [ 601067.089, 175789.239 ], [ 601076.042, 175798.492 ], [ 601079.5, 175784.6 ], [ 601040.5, 175766.0 ], [ 600859.146, 175627.852 ], [ 600875.337, 175568.571 ], [ 600871.942, 175549.768 ], [ 600856.8, 175533.8 ], [ 600816.0, 175514.8 ], [ 600792.7, 175482.1 ], [ 600758.2, 175399.4 ], [ 600725.2, 175347.6 ], [ 600707.2, 175278.7 ], [ 600677.5, 175245.6 ], [ 600627.5, 175221.9 ], [ 600578.7, 175165.4 ], [ 600576.2, 175113.0 ], [ 600591.0, 175061.4 ], [ 600568.7, 175024.1 ], [ 600568.7, 174993.6 ], [ 600581.2, 174976.4 ], [ 600610.5, 174956.1 ], [ 600686.2, 174940.4 ], [ 600716.7, 174941.4 ], [ 600785.0, 174966.4 ], [ 600878.9, 174944.9 ], [ 600894.6, 174955.1 ], [ 600960.1, 174954.1 ], [ 601052.4, 174994.6 ], [ 601112.6, 175000.6 ], [ 601169.9, 175027.9 ], [ 601194.4, 175044.1 ], [ 601268.2, 175121.3 ], [ 601294.4, 175138.1 ], [ 601367.9, 175166.6 ], [ 601460.1, 175243.1 ], [ 601486.1, 175250.6 ], [ 601523.4, 175239.4 ], [ 601539.6, 175224.9 ], [ 601541.4, 175207.4 ], [ 601523.4, 175133.1 ], [ 601517.6, 175053.1 ], [ 601509.4, 175032.1 ], [ 601487.6, 175010.9 ], [ 601473.6, 174984.1 ], [ 601476.1, 174972.9 ], [ 601501.9, 174961.1 ], [ 601498.1, 174928.4 ], [ 601431.6, 174867.7 ], [ 601379.4, 174851.8 ], [ 601348.6, 174824.9 ], [ 601312.2, 174805.8 ], [ 601298.1, 174784.9 ], [ 601301.9, 174751.1 ], [ 601344.9, 174701.2 ], [ 601347.4, 174664.9 ], [ 601361.6, 174634.1 ], [ 601358.4, 174592.4 ], [ 601378.1, 174589.4 ], [ 601413.1, 174605.1 ], [ 601455.9, 174628.6 ], [ 601515.9, 174677.4 ], [ 601544.4, 174684.1 ], [ 601553.6, 174668.9 ], [ 601561.9, 174614.4 ], [ 601585.6, 174576.9 ], [ 601586.6, 174529.4 ], [ 601574.1, 174503.3 ], [ 601575.1, 174491.1 ], [ 601597.6, 174488.6 ], [ 601652.7, 174518.0 ], [ 601700.1, 174507.9 ], [ 601727.3, 174468.9 ], [ 601772.1, 174428.7 ], [ 601780.6, 174411.4 ], [ 601779.7, 174397.7 ], [ 601815.7, 174354.9 ], [ 601900.2, 174323.9 ], [ 601961.7, 174354.9 ], [ 602000.9, 174362.4 ], [ 602008.4, 174384.9 ], [ 602009.7, 174430.4 ], [ 602051.7, 174447.9 ], [ 602085.7, 174492.4 ], [ 602104.9, 174486.9 ], [ 602125.9, 174440.4 ], [ 602143.2, 174436.7 ], [ 602160.7, 174452.9 ], [ 602175.9, 174505.2 ], [ 602200.9, 174532.2 ], [ 602199.2, 174596.4 ], [ 602222.9, 174660.2 ], [ 602213.7, 174703.7 ], [ 602182.2, 174760.2 ], [ 602173.3, 174788.3 ], [ 602183.9, 174844.2 ], [ 602204.7, 174885.4 ], [ 602221.2, 174961.9 ], [ 602273.0, 175029.4 ], [ 602313.7, 175060.4 ], [ 602347.5, 175107.0 ], [ 602453.5, 175159.4 ], [ 602533.4, 175169.1 ], [ 602589.2, 175213.0 ], [ 602624.3, 175213.7 ], [ 602623.8, 175225.1 ], [ 602586.0, 175241.6 ], [ 602566.5, 175245.1 ], [ 602500.0, 175236.6 ], [ 602483.5, 175248.1 ], [ 602482.7, 175279.6 ], [ 602514.3, 175312.2 ], [ 602554.3, 175341.4 ], [ 602605.4, 175352.0 ], [ 602658.0, 175343.5 ], [ 602723.4, 175354.7 ], [ 602784.2, 175388.0 ], [ 602830.9, 175434.8 ], [ 603000.0, 175536.0 ], [ 603097.5, 175541.7 ], [ 603143.4, 175535.3 ], [ 603208.3, 175509.1 ], [ 603247.1, 175503.6 ], [ 603311.5, 175512.5 ], [ 603472.4, 175657.7 ], [ 603487.2, 175652.8 ], [ 603525.2, 175622.7 ], [ 603592.8, 175630.4 ], [ 603660.2, 175624.8 ], [ 603688.4, 175634.2 ], [ 603767.9, 175690.6 ], [ 603822.2, 175690.5 ], [ 603835.4, 175699.4 ], [ 603851.2, 175750.5 ], [ 603860.2, 175758.3 ], [ 603874.4, 175757.1 ], [ 603893.0, 175743.0 ], [ 603910.8, 175711.8 ], [ 603945.3, 175681.7 ], [ 603953.4, 175642.6 ], [ 603968.9, 175637.3 ], [ 603994.3, 175703.6 ], [ 603993.9, 175734.5 ], [ 603983.9, 175765.7 ], [ 603987.0, 175785.4 ], [ 604021.9, 175803.8 ], [ 604092.9, 175791.1 ], [ 604127.3, 175793.3 ], [ 604143.5, 175805.8 ], [ 604142.7, 175843.8 ], [ 604170.4, 175866.6 ], [ 604218.2, 175922.4 ], [ 604221.6, 175937.4 ], [ 604209.7, 175983.8 ], [ 604222.7, 176001.1 ], [ 604236.4, 175996.8 ], [ 604251.4, 175966.7 ], [ 604247.3, 175917.0 ], [ 604259.3, 175892.3 ], [ 604284.2, 175865.8 ], [ 604323.8, 175841.8 ], [ 604412.5, 175817.4 ], [ 604493.2, 175763.9 ], [ 604514.2, 175758.8 ], [ 604553.9, 175765.8 ], [ 604569.2, 175762.6 ], [ 604590.4, 175730.6 ], [ 604623.2, 175720.3 ], [ 604625.7, 175676.1 ], [ 604662.4, 175693.1 ], [ 604672.2, 175715.2 ], [ 604655.8, 175737.3 ], [ 604653.4, 175754.1 ], [ 604663.3, 175822.2 ], [ 604678.4, 175853.9 ], [ 604677.7, 175863.6 ], [ 604635.7, 175915.8 ], [ 604634.4, 175931.8 ], [ 604650.4, 175972.4 ], [ 604631.4, 176000.3 ], [ 604580.2, 176041.1 ], [ 604567.2, 176120.1 ], [ 604570.9, 176164.8 ], [ 604505.4, 176248.9 ], [ 604471.5, 176273.8 ], [ 604448.3, 176353.997 ], [ 604455.027, 176372.731 ], [ 604483.135, 176381.4 ], [ 604495.5, 176371.9 ], [ 604517.283, 176325.357 ], [ 604532.335, 176315.148 ], [ 604553.1, 176312.0 ], [ 604634.7, 176337.7 ], [ 604704.0, 176335.8 ], [ 604718.9, 176340.2 ], [ 604723.4, 176349.0 ], [ 604722.6, 176357.8 ], [ 604709.9, 176366.8 ], [ 604667.4, 176378.4 ], [ 604632.8, 176434.3 ], [ 604630.0, 176460.6 ], [ 604655.4, 176546.9 ], [ 604647.2, 176564.7 ], [ 604581.0, 176610.4 ], [ 604556.7, 176643.1 ], [ 604553.0, 176669.4 ], [ 604567.0, 176711.1 ], [ 604552.212, 176740.418 ], [ 604553.955, 176758.196 ], [ 604575.464, 176771.529 ], [ 604776.706, 176817.806 ], [ 604892.7, 176809.3 ], [ 605006.7, 176786.6 ], [ 605103.5, 176837.4 ], [ 605219.3, 176882.1 ], [ 605290.8, 176887.6 ], [ 605365.7, 176883.3 ], [ 605417.7, 176889.6 ], [ 605472.9, 176885.6 ], [ 605605.4, 176844.3 ], [ 605682.8, 176799.6 ], [ 605774.1, 176791.1 ], [ 605825.3, 176773.5 ], [ 605870.4, 176746.6 ], [ 605800.9, 176678.4 ], [ 605628.2, 176447.9 ], [ 605612.8, 176417.1 ], [ 605558.5, 176253.7 ], [ 605530.0, 176143.4 ], [ 605542.9, 176057.0 ], [ 605647.2, 175838.6 ], [ 605678.8, 175726.4 ], [ 605742.4, 175641.0 ], [ 605925.9, 175529.0 ], [ 605991.8, 175501.7 ], [ 606042.7, 175472.1 ], [ 606120.9, 175529.8 ], [ 606207.4, 175575.5 ], [ 606206.0, 175533.0 ], [ 606223.5, 175506.7 ], [ 606233.7, 175454.0 ], [ 606440.1, 175237.4 ], [ 606480.2, 175174.7 ], [ 606513.2, 175142.7 ], [ 606582.2, 175109.8 ], [ 606666.5, 175055.7 ], [ 606737.0, 175023.5 ], [ 606798.0, 175003.7 ], [ 606824.2, 175013.2 ], [ 606848.7, 175008.7 ], [ 607299.0, 174819.0 ], [ 607597.3, 174714.8 ], [ 607645.0, 174691.7 ], [ 607737.35, 174625.7 ], [ 607747.636, 174626.312 ], [ 607775.6, 174647.2 ], [ 607801.9, 174697.2 ], [ 607808.0, 174690.4 ], [ 607817.1, 174700.0 ], [ 607849.0, 174781.4 ], [ 607868.6, 174800.0 ], [ 607902.4, 174796.0 ], [ 607977.9, 174750.1 ], [ 608019.4, 174739.8 ], [ 608115.262, 174741.3 ], [ 608163.5, 174755.1 ], [ 608212.9, 174758.9 ], [ 608267.552, 174780.463 ], [ 608285.1, 174799.7 ], [ 608294.3, 174838.7 ], [ 608291.2, 174873.0 ], [ 608257.4, 174975.2 ], [ 608641.898, 174966.57 ], [ 608746.1, 175001.8 ], [ 608810.9, 175012.8 ], [ 608887.6, 174981.4 ], [ 608960.3, 174967.9 ], [ 609000.6, 174953.8 ], [ 609116.598, 174907.086 ], [ 609141.845, 174886.622 ], [ 609163.6, 174908.4 ], [ 609242.4, 174936.6 ], [ 609325.6, 174981.1 ], [ 609364.841, 175014.729 ], [ 609397.757, 175005.969 ], [ 609503.104, 175009.625 ], [ 609601.494, 174978.43 ], [ 609720.669, 175200.649 ], [ 609736.1, 175204.39 ], [ 609846.917, 175176.335 ], [ 609922.331, 175342.2 ], [ 610018.755, 175390.722 ], [ 610094.8, 175381.5 ], [ 610141.1, 175389.0 ], [ 610178.543, 175387.734 ], [ 610207.211, 175381.716 ], [ 610260.8, 175350.8 ], [ 610337.0, 175419.7 ], [ 610405.45, 175376.593 ], [ 610458.406, 175328.867 ], [ 610490.44, 175312.85 ], [ 610524.531, 175306.688 ], [ 610556.761, 175289.327 ], [ 610668.8, 175202.1 ], [ 610770.4, 175170.2 ], [ 610796.7, 175124.4 ], [ 610869.2, 175159.0 ], [ 611056.5, 175196.5 ], [ 611090.2, 175210.5 ], [ 611128.946, 175244.312 ], [ 611146.1, 175274.4 ], [ 611142.5, 175565.0 ], [ 611106.7, 175666.2 ], [ 611109.0, 175697.2 ], [ 611214.3, 175620.6 ], [ 611304.7, 175572.0 ], [ 611318.0, 175584.2 ], [ 611314.0, 175602.3 ], [ 611282.0, 175620.5 ], [ 611260.1, 175641.4 ], [ 611189.2, 175726.0 ], [ 611184.1, 175743.5 ], [ 611205.5, 175741.3 ], [ 611221.2, 175722.1 ], [ 611290.5, 175673.7 ], [ 611306.8, 175652.0 ], [ 611327.0, 175648.5 ], [ 611330.2, 175664.8 ], [ 611290.2, 175699.3 ], [ 611248.8, 175759.7 ], [ 611212.1, 175836.5 ], [ 611189.4, 175931.5 ], [ 611197.5, 175944.5 ], [ 611261.7, 175996.6 ], [ 611356.0, 176143.4 ], [ 611385.3, 176200.0 ], [ 611958.5, 176899.5 ], [ 612008.7, 176947.7 ], [ 612105.0, 177012.2 ], [ 612242.1, 177077.6 ], [ 613169.589, 177449.052 ], [ 613179.599, 177446.398 ], [ 613258.5, 177501.8 ], [ 613326.8, 177537.2 ], [ 613553.3, 177602.9 ], [ 613601.3, 177623.8 ], [ 613765.6, 177724.5 ], [ 613848.4, 177797.4 ], [ 613877.0, 177814.7 ], [ 613976.5, 177849.3 ], [ 614064.4, 177896.7 ], [ 614134.5, 177965.5 ], [ 614274.3, 178084.9 ], [ 614293.8, 178110.6 ], [ 614316.277, 178180.018 ], [ 614419.419, 178225.066 ], [ 614465.144, 178230.698 ], [ 614593.1, 178362.1 ] ], [ [ 670697.1, 201185.4 ], [ 670705.3, 201170.9 ], [ 670694.9, 201059.0 ], [ 670645.9, 201061.6 ], [ 670604.7, 201093.9 ] ] ] } } , -{ "type": "Feature", "properties": { "FID": 3.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 678782.200000, 199305.200000 ], [ 678793.200000, 199277.200000 ], [ 678820.000000, 199249.500000 ], [ 678880.200000, 199229.600000 ], [ 678930.400000, 199201.100000 ], [ 678975.300000, 199210.400000 ], [ 678984.300000, 199206.200000 ], [ 679008.200000, 199125.900000 ], [ 679046.700000, 199089.700000 ], [ 679052.000000, 199049.400000 ], [ 679044.500000, 199017.900000 ], [ 679046.700000, 198927.400000 ], [ 679037.100000, 198875.400000 ], [ 679025.900000, 198856.100000 ], [ 678974.000000, 198816.200000 ], [ 678919.700000, 198752.800000 ], [ 678895.200000, 198676.700000 ], [ 678857.700000, 198606.000000 ], [ 678813.400000, 198559.600000 ], [ 678779.000000, 198543.500000 ], [ 678776.000000, 198531.700000 ], [ 678806.800000, 198505.300000 ], [ 678841.600000, 198399.900000 ], [ 678854.200000, 198330.600000 ], [ 678886.400000, 198282.700000 ], [ 678917.400000, 198256.700000 ], [ 678923.400000, 198244.700000 ], [ 678927.600000, 198192.800000 ], [ 679008.200000, 198138.500000 ], [ 679010.400000, 198076.600000 ], [ 679051.800000, 198039.400000 ], [ 679119.900000, 198013.300000 ], [ 679153.200000, 197965.700000 ], [ 679183.200000, 197942.300000 ], [ 679239.000000, 197938.500000 ], [ 679268.300000, 197944.700000 ], [ 679292.100000, 197958.100000 ], [ 679320.100000, 197985.300000 ], [ 679349.300000, 198050.700000 ], [ 679405.400000, 198101.700000 ], [ 679442.200000, 198167.400000 ], [ 679481.000000, 198192.200000 ], [ 679549.000000, 198263.700000 ], [ 679604.600000, 198365.300000 ], [ 679619.200000, 198429.500000 ], [ 679678.100000, 198510.400000 ], [ 679722.700000, 198526.800000 ], [ 679781.800000, 198531.100000 ], [ 679801.500000, 198543.800000 ], [ 679811.000000, 198560.900000 ], [ 679875.593000, 198628.187000 ], [ 679943.400000, 198678.000000 ], [ 679969.600000, 198704.400000 ], [ 680018.500000, 198730.500000 ], [ 680064.900000, 198783.900000 ], [ 680092.900000, 198852.400000 ], [ 680104.900000, 198900.400000 ], [ 680137.500000, 198940.700000 ], [ 680151.100000, 198942.100000 ], [ 680186.900000, 198930.200000 ], [ 680217.200000, 198912.600000 ], [ 680272.300000, 198856.300000 ], [ 680263.800000, 198904.000000 ], [ 680297.800000, 198996.800000 ], [ 680309.500000, 199052.000000 ], [ 680315.600000, 199052.000000 ], [ 680324.400000, 199014.500000 ], [ 680330.900000, 198943.100000 ], [ 680339.900000, 198942.000000 ], [ 680358.900000, 199008.000000 ], [ 680396.100000, 199057.000000 ], [ 680427.700000, 199164.500000 ], [ 680439.600000, 199168.500000 ], [ 680442.200000, 199161.200000 ], [ 680435.300000, 199100.600000 ], [ 680439.300000, 199079.600000 ], [ 680461.000000, 199048.600000 ], [ 680477.300000, 199045.700000 ], [ 680480.400000, 199085.900000 ], [ 680493.600000, 199103.100000 ], [ 680510.000000, 199112.700000 ], [ 680556.700000, 199121.200000 ], [ 680566.500000, 199134.800000 ], [ 680536.100000, 199200.800000 ], [ 680540.400000, 199216.200000 ], [ 680556.800000, 199228.100000 ], [ 680580.600000, 199232.600000 ], [ 680618.100000, 199290.100000 ], [ 680662.000000, 199287.000000 ], [ 680669.400000, 199316.400000 ], [ 680725.400000, 199380.200000 ], [ 680762.800000, 199443.600000 ], [ 680774.400000, 199455.300000 ], [ 680804.100000, 199462.000000 ], [ 680815.200000, 199473.700000 ], [ 680821.300000, 199523.800000 ], [ 680830.400000, 199535.100000 ], [ 680858.300000, 199542.400000 ], [ 680879.100000, 199540.200000 ], [ 681016.100000, 199600.100000 ], [ 681106.800000, 199668.300000 ], [ 681144.800000, 199707.700000 ], [ 681153.600000, 199729.200000 ], [ 681161.800000, 199795.800000 ], [ 681173.600000, 199821.800000 ], [ 681188.100000, 199832.600000 ], [ 681222.100000, 199829.300000 ], [ 681260.300000, 199836.300000 ], [ 681276.300000, 199846.800000 ], [ 681292.300000, 199868.900000 ], [ 681295.400000, 199900.000000 ], [ 681269.400000, 199960.000000 ], [ 681269.600000, 200027.500000 ], [ 681258.800000, 200068.200000 ], [ 681262.800000, 200084.000000 ], [ 681278.600000, 200104.500000 ], [ 681282.300000, 200125.200000 ], [ 681224.600000, 200178.000000 ], [ 681210.100000, 200181.400000 ], [ 681191.600000, 200172.600000 ], [ 681147.300000, 200131.000000 ], [ 681126.600000, 200126.200000 ], [ 681110.100000, 200138.700000 ], [ 681107.900000, 200181.300000 ], [ 681075.800000, 200201.800000 ], [ 680948.600000, 200221.100000 ], [ 680885.100000, 200218.300000 ], [ 680803.700000, 200199.600000 ], [ 680780.200000, 200201.600000 ], [ 680687.600000, 200262.000000 ], [ 680606.500000, 200296.200000 ], [ 680493.000000, 200316.300000 ], [ 680435.700000, 200356.500000 ], [ 680391.300000, 200367.400000 ], [ 680216.900000, 200325.400000 ], [ 680004.700000, 200341.500000 ], [ 679920.300000, 200364.100000 ], [ 679876.600000, 200360.000000 ], [ 679838.100000, 200343.400000 ], [ 679812.100000, 200341.800000 ], [ 679680.200000, 200379.900000 ], [ 679673.700000, 200388.800000 ], [ 679677.600000, 200401.400000 ], [ 679688.300000, 200406.700000 ], [ 679764.300000, 200401.700000 ], [ 679807.500000, 200406.100000 ], [ 679838.400000, 200428.800000 ], [ 679887.700000, 200506.600000 ], [ 679902.100000, 200516.400000 ], [ 679971.100000, 200515.200000 ], [ 679994.800000, 200524.200000 ], [ 680081.800000, 200599.900000 ], [ 680174.200000, 200646.300000 ], [ 680228.700000, 200692.600000 ], [ 680301.100000, 200689.100000 ], [ 680371.600000, 200728.000000 ], [ 680425.600000, 200724.000000 ], [ 680464.600000, 200764.300000 ], [ 680534.700000, 200759.700000 ], [ 680646.000000, 200807.900000 ], [ 680673.300000, 200813.400000 ], [ 680822.100000, 200812.700000 ], [ 680917.600000, 200789.500000 ], [ 680953.200000, 200792.000000 ], [ 681014.300000, 200826.200000 ], [ 681032.800000, 200824.700000 ], [ 681066.600000, 200801.700000 ], [ 681074.600000, 200806.000000 ], [ 681074.100000, 200824.700000 ], [ 681065.500000, 200834.100000 ], [ 681040.100000, 200846.800000 ], [ 680965.200000, 200862.400000 ], [ 680951.400000, 200870.800000 ], [ 680892.600000, 200947.100000 ], [ 680844.100000, 200992.200000 ], [ 680783.600000, 201026.500000 ], [ 680742.300000, 201031.500000 ], [ 680738.600000, 201044.000000 ], [ 680747.500000, 201054.000000 ], [ 680774.000000, 201053.300000 ], [ 680865.400000, 201031.200000 ], [ 680943.800000, 201028.900000 ], [ 681117.200000, 200968.700000 ], [ 681218.000000, 200987.300000 ], [ 681364.200000, 200994.000000 ], [ 681418.500000, 201014.700000 ], [ 681468.827000, 201051.129000 ], [ 681504.700000, 201067.400000 ], [ 681612.100000, 201093.400000 ], [ 681745.500000, 201137.500000 ], [ 681784.500000, 201160.700000 ], [ 681801.500000, 201191.200000 ], [ 682187.400000, 201108.200000 ], [ 682221.100000, 201109.100000 ], [ 682294.400000, 201143.900000 ], [ 682423.200000, 201163.500000 ], [ 682443.500000, 201173.600000 ], [ 682495.400000, 201220.200000 ], [ 682540.900000, 201294.300000 ], [ 682584.200000, 201345.900000 ], [ 682667.600000, 201407.600000 ], [ 682722.400000, 201412.100000 ], [ 682798.200000, 201379.900000 ], [ 682870.200000, 201482.600000 ], [ 682873.300000, 201498.300000 ], [ 682855.600000, 201546.500000 ], [ 682861.500000, 201571.000000 ], [ 682875.700000, 201577.300000 ], [ 682911.300000, 201577.500000 ], [ 682941.400000, 201568.500000 ], [ 683021.000000, 201522.800000 ], [ 683039.800000, 201525.800000 ], [ 683058.300000, 201562.900000 ], [ 683134.000000, 201641.300000 ], [ 683134.700000, 201665.800000 ], [ 683120.400000, 201722.600000 ], [ 683084.500000, 201778.500000 ], [ 683082.700000, 201794.000000 ], [ 683093.100000, 201798.900000 ], [ 683154.400000, 201770.000000 ], [ 683183.100000, 201765.300000 ], [ 683235.000000, 201848.000000 ], [ 683256.500000, 201854.500000 ], [ 683456.000000, 201830.300000 ], [ 683463.700000, 201836.300000 ], [ 683463.200000, 201854.800000 ], [ 683422.000000, 201924.000000 ], [ 683436.300000, 201942.300000 ], [ 683621.800000, 201951.900000 ], [ 683653.300000, 201948.300000 ], [ 683696.400000, 201928.300000 ], [ 683722.700000, 201930.700000 ], [ 683763.000000, 201951.700000 ], [ 683772.000000, 201966.500000 ], [ 683778.500000, 202045.000000 ], [ 683792.000000, 202063.500000 ], [ 683864.000000, 202058.500000 ], [ 683896.300000, 202103.600000 ], [ 683906.100000, 202104.600000 ], [ 683918.100000, 202104.600000 ], [ 683967.600000, 202081.500000 ], [ 684035.400000, 202086.100000 ], [ 684245.900000, 202075.900000 ], [ 684276.000000, 202068.100000 ], [ 684344.500000, 202086.200000 ], [ 684369.300000, 202077.900000 ], [ 684393.200000, 202048.100000 ], [ 684420.400000, 202040.500000 ], [ 684458.200000, 202050.700000 ], [ 684560.900000, 202045.300000 ], [ 684661.300000, 202056.800000 ], [ 684711.700000, 202071.800000 ], [ 684763.500000, 202108.500000 ], [ 684868.500000, 202115.800000 ], [ 684972.100000, 202094.800000 ], [ 685028.700000, 202124.100000 ], [ 685055.300000, 202125.000000 ], [ 685137.400000, 202102.800000 ], [ 685151.600000, 202111.100000 ], [ 685161.100000, 202136.100000 ], [ 685203.400000, 202146.300000 ], [ 685244.900000, 202166.800000 ], [ 685257.900000, 202197.600000 ], [ 685318.500000, 202238.300000 ], [ 685369.100000, 202294.300000 ], [ 685383.300000, 202293.800000 ], [ 685384.000000, 202276.700000 ], [ 685369.700000, 202212.000000 ], [ 685300.500000, 202192.000000 ], [ 685246.700000, 202084.700000 ], [ 685243.500000, 202076.200000 ], [ 685249.700000, 202061.700000 ], [ 685344.700000, 202059.000000 ], [ 685352.700000, 202053.500000 ], [ 685391.000000, 201994.000000 ], [ 685394.500000, 201961.700000 ], [ 685386.000000, 201944.000000 ], [ 685430.200000, 201896.700000 ], [ 685455.700000, 201879.700000 ], [ 685482.100000, 201828.500000 ], [ 685534.300000, 201769.400000 ], [ 685617.100000, 201759.300000 ], [ 685730.100000, 201716.500000 ], [ 685753.800000, 201713.600000 ], [ 685780.400000, 201699.700000 ], [ 685821.700000, 201663.200000 ], [ 685852.800000, 201654.300000 ], [ 685943.700000, 201677.200000 ], [ 686046.500000, 201776.300000 ], [ 686091.100000, 201838.500000 ], [ 686136.100000, 201867.300000 ], [ 686229.700000, 201950.700000 ], [ 686257.000000, 201967.500000 ], [ 686294.200000, 201964.000000 ], [ 686301.100000, 201958.400000 ], [ 686414.100000, 202002.800000 ], [ 686493.200000, 202043.400000 ], [ 686610.700000, 202066.900000 ], [ 686693.900000, 202097.500000 ], [ 686783.100000, 202145.900000 ], [ 686814.700000, 202182.600000 ], [ 686836.400000, 202239.300000 ], [ 686858.400000, 202262.100000 ], [ 686967.300000, 202289.900000 ], [ 687023.900000, 202319.400000 ], [ 687123.000000, 202348.000000 ], [ 687139.600000, 202362.300000 ], [ 687173.900000, 202418.700000 ], [ 687272.400000, 202536.700000 ], [ 687304.400000, 202586.900000 ], [ 687326.100000, 202741.000000 ], [ 687343.400000, 202789.500000 ], [ 687375.500000, 202845.800000 ], [ 687422.900000, 203027.900000 ], [ 687410.400000, 203091.600000 ], [ 687359.400000, 203176.300000 ], [ 687336.400000, 203195.500000 ], [ 687280.600000, 203222.800000 ], [ 687265.000000, 203235.500000 ], [ 687256.600000, 203253.200000 ], [ 687253.900000, 203296.800000 ], [ 687274.900000, 203349.600000 ], [ 687383.400000, 203521.200000 ], [ 687372.900000, 203572.200000 ], [ 687355.700000, 203601.900000 ], [ 687304.600000, 203657.100000 ], [ 687299.200000, 203670.300000 ], [ 687371.500000, 203762.800000 ], [ 687397.200000, 203776.500000 ], [ 687430.700000, 203779.100000 ], [ 687466.600000, 203774.100000 ], [ 687511.800000, 203756.800000 ], [ 687523.800000, 203734.600000 ], [ 687526.100000, 203648.500000 ], [ 687535.100000, 203643.300000 ], [ 687554.100000, 203682.700000 ], [ 687563.300000, 203741.600000 ], [ 687549.100000, 203799.600000 ], [ 687502.800000, 203869.700000 ], [ 687508.600000, 203876.500000 ], [ 687566.500000, 203871.100000 ], [ 687603.400000, 203901.300000 ], [ 687643.300000, 203973.700000 ], [ 687660.200000, 204017.600000 ], [ 687663.000000, 204046.600000 ], [ 687641.100000, 204076.800000 ], [ 687621.200000, 204084.700000 ], [ 687429.500000, 204041.400000 ], [ 687372.300000, 204038.100000 ], [ 687245.500000, 203965.900000 ], [ 687222.000000, 203944.900000 ], [ 687198.200000, 203935.900000 ], [ 687130.400000, 203928.400000 ], [ 687081.900000, 203939.400000 ], [ 687013.600000, 203930.100000 ], [ 686990.100000, 203937.700000 ], [ 686981.000000, 203949.600000 ], [ 686979.500000, 203965.900000 ], [ 686996.200000, 203995.600000 ], [ 687013.500000, 204006.900000 ], [ 687113.800000, 204041.700000 ], [ 687202.700000, 204135.500000 ], [ 687296.200000, 204181.400000 ], [ 687294.500000, 204187.600000 ], [ 687272.500000, 204188.100000 ], [ 687151.800000, 204181.000000 ], [ 687098.600000, 204163.900000 ], [ 687091.500000, 204173.900000 ], [ 687176.400000, 204211.900000 ], [ 687307.800000, 204291.300000 ], [ 687376.000000, 204340.700000 ], [ 687422.000000, 204357.600000 ], [ 687441.500000, 204373.900000 ], [ 687437.500000, 204380.900000 ], [ 687346.900000, 204355.500000 ], [ 687102.100000, 204302.500000 ], [ 687070.000000, 204275.700000 ], [ 687025.200000, 204270.400000 ], [ 686934.600000, 204239.300000 ], [ 686787.000000, 204210.000000 ], [ 686684.500000, 204172.100000 ], [ 686529.500000, 204152.100000 ], [ 686538.200000, 204164.900000 ], [ 686624.200000, 204214.700000 ], [ 686761.200000, 204321.100000 ], [ 687159.100000, 204599.300000 ], [ 687249.600000, 204649.600000 ] ] } } +{ "type": "Feature", "properties": { "FID": 3.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 678782.2, 199305.2 ], [ 678793.2, 199277.2 ], [ 678820.0, 199249.5 ], [ 678880.2, 199229.6 ], [ 678930.4, 199201.1 ], [ 678975.3, 199210.4 ], [ 678984.3, 199206.2 ], [ 679008.2, 199125.9 ], [ 679046.7, 199089.7 ], [ 679052.0, 199049.4 ], [ 679044.5, 199017.9 ], [ 679046.7, 198927.4 ], [ 679037.1, 198875.4 ], [ 679025.9, 198856.1 ], [ 678974.0, 198816.2 ], [ 678919.7, 198752.8 ], [ 678895.2, 198676.7 ], [ 678857.7, 198606.0 ], [ 678813.4, 198559.6 ], [ 678779.0, 198543.5 ], [ 678776.0, 198531.7 ], [ 678806.8, 198505.3 ], [ 678841.6, 198399.9 ], [ 678854.2, 198330.6 ], [ 678886.4, 198282.7 ], [ 678917.4, 198256.7 ], [ 678923.4, 198244.7 ], [ 678927.6, 198192.8 ], [ 679008.2, 198138.5 ], [ 679010.4, 198076.6 ], [ 679051.8, 198039.4 ], [ 679119.9, 198013.3 ], [ 679153.2, 197965.7 ], [ 679183.2, 197942.3 ], [ 679239.0, 197938.5 ], [ 679268.3, 197944.7 ], [ 679292.1, 197958.1 ], [ 679320.1, 197985.3 ], [ 679349.3, 198050.7 ], [ 679405.4, 198101.7 ], [ 679442.2, 198167.4 ], [ 679481.0, 198192.2 ], [ 679549.0, 198263.7 ], [ 679604.6, 198365.3 ], [ 679619.2, 198429.5 ], [ 679678.1, 198510.4 ], [ 679722.7, 198526.8 ], [ 679781.8, 198531.1 ], [ 679801.5, 198543.8 ], [ 679811.0, 198560.9 ], [ 679875.593, 198628.187 ], [ 679943.4, 198678.0 ], [ 679969.6, 198704.4 ], [ 680018.5, 198730.5 ], [ 680064.9, 198783.9 ], [ 680092.9, 198852.4 ], [ 680104.9, 198900.4 ], [ 680137.5, 198940.7 ], [ 680151.1, 198942.1 ], [ 680186.9, 198930.2 ], [ 680217.2, 198912.6 ], [ 680272.3, 198856.3 ], [ 680263.8, 198904.0 ], [ 680297.8, 198996.8 ], [ 680309.5, 199052.0 ], [ 680315.6, 199052.0 ], [ 680324.4, 199014.5 ], [ 680330.9, 198943.1 ], [ 680339.9, 198942.0 ], [ 680358.9, 199008.0 ], [ 680396.1, 199057.0 ], [ 680427.7, 199164.5 ], [ 680439.6, 199168.5 ], [ 680442.2, 199161.2 ], [ 680435.3, 199100.6 ], [ 680439.3, 199079.6 ], [ 680461.0, 199048.6 ], [ 680477.3, 199045.7 ], [ 680480.4, 199085.9 ], [ 680493.6, 199103.1 ], [ 680510.0, 199112.7 ], [ 680556.7, 199121.2 ], [ 680566.5, 199134.8 ], [ 680536.1, 199200.8 ], [ 680540.4, 199216.2 ], [ 680556.8, 199228.1 ], [ 680580.6, 199232.6 ], [ 680618.1, 199290.1 ], [ 680662.0, 199287.0 ], [ 680669.4, 199316.4 ], [ 680725.4, 199380.2 ], [ 680762.8, 199443.6 ], [ 680774.4, 199455.3 ], [ 680804.1, 199462.0 ], [ 680815.2, 199473.7 ], [ 680821.3, 199523.8 ], [ 680830.4, 199535.1 ], [ 680858.3, 199542.4 ], [ 680879.1, 199540.2 ], [ 681016.1, 199600.1 ], [ 681106.8, 199668.3 ], [ 681144.8, 199707.7 ], [ 681153.6, 199729.2 ], [ 681161.8, 199795.8 ], [ 681173.6, 199821.8 ], [ 681188.1, 199832.6 ], [ 681222.1, 199829.3 ], [ 681260.3, 199836.3 ], [ 681276.3, 199846.8 ], [ 681292.3, 199868.9 ], [ 681295.4, 199900.0 ], [ 681269.4, 199960.0 ], [ 681269.6, 200027.5 ], [ 681258.8, 200068.2 ], [ 681262.8, 200084.0 ], [ 681278.6, 200104.5 ], [ 681282.3, 200125.2 ], [ 681224.6, 200178.0 ], [ 681210.1, 200181.4 ], [ 681191.6, 200172.6 ], [ 681147.3, 200131.0 ], [ 681126.6, 200126.2 ], [ 681110.1, 200138.7 ], [ 681107.9, 200181.3 ], [ 681075.8, 200201.8 ], [ 680948.6, 200221.1 ], [ 680885.1, 200218.3 ], [ 680803.7, 200199.6 ], [ 680780.2, 200201.6 ], [ 680687.6, 200262.0 ], [ 680606.5, 200296.2 ], [ 680493.0, 200316.3 ], [ 680435.7, 200356.5 ], [ 680391.3, 200367.4 ], [ 680216.9, 200325.4 ], [ 680004.7, 200341.5 ], [ 679920.3, 200364.1 ], [ 679876.6, 200360.0 ], [ 679838.1, 200343.4 ], [ 679812.1, 200341.8 ], [ 679680.2, 200379.9 ], [ 679673.7, 200388.8 ], [ 679677.6, 200401.4 ], [ 679688.3, 200406.7 ], [ 679764.3, 200401.7 ], [ 679807.5, 200406.1 ], [ 679838.4, 200428.8 ], [ 679887.7, 200506.6 ], [ 679902.1, 200516.4 ], [ 679971.1, 200515.2 ], [ 679994.8, 200524.2 ], [ 680081.8, 200599.9 ], [ 680174.2, 200646.3 ], [ 680228.7, 200692.6 ], [ 680301.1, 200689.1 ], [ 680371.6, 200728.0 ], [ 680425.6, 200724.0 ], [ 680464.6, 200764.3 ], [ 680534.7, 200759.7 ], [ 680646.0, 200807.9 ], [ 680673.3, 200813.4 ], [ 680822.1, 200812.7 ], [ 680917.6, 200789.5 ], [ 680953.2, 200792.0 ], [ 681014.3, 200826.2 ], [ 681032.8, 200824.7 ], [ 681066.6, 200801.7 ], [ 681074.6, 200806.0 ], [ 681074.1, 200824.7 ], [ 681065.5, 200834.1 ], [ 681040.1, 200846.8 ], [ 680965.2, 200862.4 ], [ 680951.4, 200870.8 ], [ 680892.6, 200947.1 ], [ 680844.1, 200992.2 ], [ 680783.6, 201026.5 ], [ 680742.3, 201031.5 ], [ 680738.6, 201044.0 ], [ 680747.5, 201054.0 ], [ 680774.0, 201053.3 ], [ 680865.4, 201031.2 ], [ 680943.8, 201028.9 ], [ 681117.2, 200968.7 ], [ 681218.0, 200987.3 ], [ 681364.2, 200994.0 ], [ 681418.5, 201014.7 ], [ 681468.827, 201051.129 ], [ 681504.7, 201067.4 ], [ 681612.1, 201093.4 ], [ 681745.5, 201137.5 ], [ 681784.5, 201160.7 ], [ 681801.5, 201191.2 ], [ 682187.4, 201108.2 ], [ 682221.1, 201109.1 ], [ 682294.4, 201143.9 ], [ 682423.2, 201163.5 ], [ 682443.5, 201173.6 ], [ 682495.4, 201220.2 ], [ 682540.9, 201294.3 ], [ 682584.2, 201345.9 ], [ 682667.6, 201407.6 ], [ 682722.4, 201412.1 ], [ 682798.2, 201379.9 ], [ 682870.2, 201482.6 ], [ 682873.3, 201498.3 ], [ 682855.6, 201546.5 ], [ 682861.5, 201571.0 ], [ 682875.7, 201577.3 ], [ 682911.3, 201577.5 ], [ 682941.4, 201568.5 ], [ 683021.0, 201522.8 ], [ 683039.8, 201525.8 ], [ 683058.3, 201562.9 ], [ 683134.0, 201641.3 ], [ 683134.7, 201665.8 ], [ 683120.4, 201722.6 ], [ 683084.5, 201778.5 ], [ 683082.7, 201794.0 ], [ 683093.1, 201798.9 ], [ 683154.4, 201770.0 ], [ 683183.1, 201765.3 ], [ 683235.0, 201848.0 ], [ 683256.5, 201854.5 ], [ 683456.0, 201830.3 ], [ 683463.7, 201836.3 ], [ 683463.2, 201854.8 ], [ 683422.0, 201924.0 ], [ 683436.3, 201942.3 ], [ 683621.8, 201951.9 ], [ 683653.3, 201948.3 ], [ 683696.4, 201928.3 ], [ 683722.7, 201930.7 ], [ 683763.0, 201951.7 ], [ 683772.0, 201966.5 ], [ 683778.5, 202045.0 ], [ 683792.0, 202063.5 ], [ 683864.0, 202058.5 ], [ 683896.3, 202103.6 ], [ 683906.1, 202104.6 ], [ 683918.1, 202104.6 ], [ 683967.6, 202081.5 ], [ 684035.4, 202086.1 ], [ 684245.9, 202075.9 ], [ 684276.0, 202068.1 ], [ 684344.5, 202086.2 ], [ 684369.3, 202077.9 ], [ 684393.2, 202048.1 ], [ 684420.4, 202040.5 ], [ 684458.2, 202050.7 ], [ 684560.9, 202045.3 ], [ 684661.3, 202056.8 ], [ 684711.7, 202071.8 ], [ 684763.5, 202108.5 ], [ 684868.5, 202115.8 ], [ 684972.1, 202094.8 ], [ 685028.7, 202124.1 ], [ 685055.3, 202125.0 ], [ 685137.4, 202102.8 ], [ 685151.6, 202111.1 ], [ 685161.1, 202136.1 ], [ 685203.4, 202146.3 ], [ 685244.9, 202166.8 ], [ 685257.9, 202197.6 ], [ 685318.5, 202238.3 ], [ 685369.1, 202294.3 ], [ 685383.3, 202293.8 ], [ 685384.0, 202276.7 ], [ 685369.7, 202212.0 ], [ 685300.5, 202192.0 ], [ 685246.7, 202084.7 ], [ 685243.5, 202076.2 ], [ 685249.7, 202061.7 ], [ 685344.7, 202059.0 ], [ 685352.7, 202053.5 ], [ 685391.0, 201994.0 ], [ 685394.5, 201961.7 ], [ 685386.0, 201944.0 ], [ 685430.2, 201896.7 ], [ 685455.7, 201879.7 ], [ 685482.1, 201828.5 ], [ 685534.3, 201769.4 ], [ 685617.1, 201759.3 ], [ 685730.1, 201716.5 ], [ 685753.8, 201713.6 ], [ 685780.4, 201699.7 ], [ 685821.7, 201663.2 ], [ 685852.8, 201654.3 ], [ 685943.7, 201677.2 ], [ 686046.5, 201776.3 ], [ 686091.1, 201838.5 ], [ 686136.1, 201867.3 ], [ 686229.7, 201950.7 ], [ 686257.0, 201967.5 ], [ 686294.2, 201964.0 ], [ 686301.1, 201958.4 ], [ 686414.1, 202002.8 ], [ 686493.2, 202043.4 ], [ 686610.7, 202066.9 ], [ 686693.9, 202097.5 ], [ 686783.1, 202145.9 ], [ 686814.7, 202182.6 ], [ 686836.4, 202239.3 ], [ 686858.4, 202262.1 ], [ 686967.3, 202289.9 ], [ 687023.9, 202319.4 ], [ 687123.0, 202348.0 ], [ 687139.6, 202362.3 ], [ 687173.9, 202418.7 ], [ 687272.4, 202536.7 ], [ 687304.4, 202586.9 ], [ 687326.1, 202741.0 ], [ 687343.4, 202789.5 ], [ 687375.5, 202845.8 ], [ 687422.9, 203027.9 ], [ 687410.4, 203091.6 ], [ 687359.4, 203176.3 ], [ 687336.4, 203195.5 ], [ 687280.6, 203222.8 ], [ 687265.0, 203235.5 ], [ 687256.6, 203253.2 ], [ 687253.9, 203296.8 ], [ 687274.9, 203349.6 ], [ 687383.4, 203521.2 ], [ 687372.9, 203572.2 ], [ 687355.7, 203601.9 ], [ 687304.6, 203657.1 ], [ 687299.2, 203670.3 ], [ 687371.5, 203762.8 ], [ 687397.2, 203776.5 ], [ 687430.7, 203779.1 ], [ 687466.6, 203774.1 ], [ 687511.8, 203756.8 ], [ 687523.8, 203734.6 ], [ 687526.1, 203648.5 ], [ 687535.1, 203643.3 ], [ 687554.1, 203682.7 ], [ 687563.3, 203741.6 ], [ 687549.1, 203799.6 ], [ 687502.8, 203869.7 ], [ 687508.6, 203876.5 ], [ 687566.5, 203871.1 ], [ 687603.4, 203901.3 ], [ 687643.3, 203973.7 ], [ 687660.2, 204017.6 ], [ 687663.0, 204046.6 ], [ 687641.1, 204076.8 ], [ 687621.2, 204084.7 ], [ 687429.5, 204041.4 ], [ 687372.3, 204038.1 ], [ 687245.5, 203965.9 ], [ 687222.0, 203944.9 ], [ 687198.2, 203935.9 ], [ 687130.4, 203928.4 ], [ 687081.9, 203939.4 ], [ 687013.6, 203930.1 ], [ 686990.1, 203937.7 ], [ 686981.0, 203949.6 ], [ 686979.5, 203965.9 ], [ 686996.2, 203995.6 ], [ 687013.5, 204006.9 ], [ 687113.8, 204041.7 ], [ 687202.7, 204135.5 ], [ 687296.2, 204181.4 ], [ 687294.5, 204187.6 ], [ 687272.5, 204188.1 ], [ 687151.8, 204181.0 ], [ 687098.6, 204163.9 ], [ 687091.5, 204173.9 ], [ 687176.4, 204211.9 ], [ 687307.8, 204291.3 ], [ 687376.0, 204340.7 ], [ 687422.0, 204357.6 ], [ 687441.5, 204373.9 ], [ 687437.5, 204380.9 ], [ 687346.9, 204355.5 ], [ 687102.1, 204302.5 ], [ 687070.0, 204275.7 ], [ 687025.2, 204270.4 ], [ 686934.6, 204239.3 ], [ 686787.0, 204210.0 ], [ 686684.5, 204172.1 ], [ 686529.5, 204152.1 ], [ 686538.2, 204164.9 ], [ 686624.2, 204214.7 ], [ 686761.2, 204321.1 ], [ 687159.1, 204599.3 ], [ 687249.6, 204649.6 ] ] } } , -{ "type": "Feature", "properties": { "FID": 4.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 680738.600000, 201044.000000 ], [ 680742.300000, 201031.500000 ], [ 680783.600000, 201026.500000 ], [ 680844.100000, 200992.200000 ], [ 680892.600000, 200947.100000 ], [ 680951.400000, 200870.800000 ], [ 680965.200000, 200862.400000 ], [ 681040.100000, 200846.800000 ], [ 681065.500000, 200834.100000 ], [ 681074.100000, 200824.700000 ], [ 681074.600000, 200806.000000 ], [ 681066.600000, 200801.700000 ], [ 681032.800000, 200824.700000 ], [ 681014.300000, 200826.200000 ], [ 680953.200000, 200792.000000 ], [ 680917.600000, 200789.500000 ], [ 680822.100000, 200812.700000 ], [ 680673.300000, 200813.400000 ], [ 680646.000000, 200807.900000 ], [ 680534.700000, 200759.700000 ], [ 680464.600000, 200764.300000 ], [ 680425.600000, 200724.000000 ], [ 680371.600000, 200728.000000 ], [ 680313.000000, 200694.600000 ] ], [ [ 680738.600000, 201044.000000 ], [ 680747.500000, 201054.000000 ], [ 680759.000000, 201056.000000 ], [ 680865.400000, 201031.200000 ], [ 680943.800000, 201028.900000 ], [ 681117.200000, 200968.700000 ], [ 681218.000000, 200987.300000 ], [ 681345.200000, 200989.800000 ], [ 681418.500000, 201014.700000 ], [ 681468.827000, 201051.129000 ], [ 681504.700000, 201067.400000 ], [ 681612.100000, 201093.400000 ], [ 681745.500000, 201137.500000 ], [ 681784.500000, 201160.700000 ], [ 681801.500000, 201191.200000 ] ], [ [ 680313.000000, 200694.600000 ], [ 680274.000000, 200688.400000 ], [ 680228.700000, 200692.600000 ], [ 680174.200000, 200646.300000 ], [ 680081.800000, 200599.900000 ], [ 679994.800000, 200524.200000 ], [ 679971.100000, 200515.200000 ], [ 679902.100000, 200516.400000 ], [ 679887.700000, 200506.600000 ], [ 679838.400000, 200428.800000 ], [ 679807.500000, 200406.100000 ], [ 679764.300000, 200401.700000 ], [ 679688.300000, 200406.700000 ], [ 679677.600000, 200401.400000 ], [ 679673.700000, 200388.800000 ], [ 679680.200000, 200379.900000 ], [ 679812.100000, 200341.800000 ], [ 679838.100000, 200343.400000 ], [ 679876.600000, 200360.000000 ], [ 679920.300000, 200364.100000 ], [ 680004.700000, 200341.500000 ], [ 680216.900000, 200325.400000 ], [ 680391.300000, 200367.400000 ], [ 680435.700000, 200356.500000 ], [ 680493.000000, 200316.300000 ], [ 680606.500000, 200296.200000 ], [ 680687.600000, 200262.000000 ], [ 680780.200000, 200201.600000 ], [ 680803.700000, 200199.600000 ], [ 680885.100000, 200218.300000 ], [ 680948.600000, 200221.100000 ], [ 681075.800000, 200201.800000 ], [ 681107.900000, 200181.300000 ], [ 681110.100000, 200138.700000 ], [ 681126.600000, 200126.200000 ], [ 681147.300000, 200131.000000 ], [ 681191.600000, 200172.600000 ], [ 681210.100000, 200181.400000 ], [ 681224.600000, 200178.000000 ], [ 681282.300000, 200125.200000 ], [ 681278.600000, 200104.500000 ], [ 681262.800000, 200084.000000 ], [ 681258.800000, 200068.200000 ], [ 681269.600000, 200027.500000 ], [ 681269.400000, 199960.000000 ], [ 681295.400000, 199900.000000 ], [ 681292.300000, 199868.900000 ], [ 681276.300000, 199846.800000 ], [ 681260.300000, 199836.300000 ], [ 681222.100000, 199829.300000 ], [ 681188.100000, 199832.600000 ], [ 681173.600000, 199821.800000 ], [ 681161.800000, 199795.800000 ], [ 681153.600000, 199729.200000 ], [ 681144.800000, 199707.700000 ], [ 681106.800000, 199668.300000 ], [ 681016.100000, 199600.100000 ], [ 680879.100000, 199540.200000 ], [ 680858.300000, 199542.400000 ], [ 680830.400000, 199535.100000 ], [ 680821.300000, 199523.800000 ], [ 680815.200000, 199473.700000 ], [ 680804.100000, 199462.000000 ], [ 680774.400000, 199455.300000 ], [ 680762.800000, 199443.600000 ], [ 680725.400000, 199380.200000 ], [ 680669.400000, 199316.400000 ], [ 680662.000000, 199287.000000 ], [ 680618.100000, 199290.100000 ], [ 680580.600000, 199232.600000 ], [ 680556.800000, 199228.100000 ], [ 680540.400000, 199216.200000 ], [ 680536.100000, 199200.800000 ], [ 680566.500000, 199134.800000 ], [ 680556.700000, 199121.200000 ], [ 680510.000000, 199112.700000 ], [ 680493.600000, 199103.100000 ], [ 680480.400000, 199085.900000 ], [ 680477.300000, 199045.700000 ], [ 680461.000000, 199048.600000 ], [ 680439.300000, 199079.600000 ], [ 680435.300000, 199100.600000 ], [ 680442.200000, 199161.200000 ], [ 680439.600000, 199168.500000 ], [ 680427.700000, 199164.500000 ], [ 680396.100000, 199057.000000 ], [ 680358.900000, 199008.000000 ], [ 680339.900000, 198942.000000 ], [ 680330.900000, 198943.100000 ], [ 680324.400000, 199014.500000 ], [ 680315.600000, 199052.000000 ], [ 680309.500000, 199052.000000 ], [ 680297.800000, 198996.800000 ], [ 680263.800000, 198904.000000 ], [ 680272.300000, 198856.300000 ], [ 680217.200000, 198912.600000 ], [ 680186.900000, 198930.200000 ], [ 680151.100000, 198942.100000 ], [ 680137.500000, 198940.700000 ], [ 680104.900000, 198900.400000 ], [ 680092.900000, 198852.400000 ], [ 680064.900000, 198783.900000 ], [ 680018.500000, 198730.500000 ], [ 679969.600000, 198704.400000 ], [ 679943.400000, 198678.000000 ], [ 679875.593000, 198628.187000 ], [ 679811.000000, 198560.900000 ], [ 679801.500000, 198543.800000 ], [ 679781.800000, 198531.100000 ], [ 679722.700000, 198526.800000 ], [ 679678.100000, 198510.400000 ], [ 679619.200000, 198429.500000 ], [ 679604.600000, 198365.300000 ], [ 679549.000000, 198263.700000 ], [ 679481.000000, 198192.200000 ], [ 679442.200000, 198167.400000 ], [ 679405.400000, 198101.700000 ], [ 679349.300000, 198050.700000 ], [ 679320.100000, 197985.300000 ], [ 679292.100000, 197958.100000 ], [ 679268.300000, 197944.700000 ], [ 679239.000000, 197938.500000 ], [ 679183.200000, 197942.300000 ], [ 679153.200000, 197965.700000 ], [ 679119.900000, 198013.300000 ], [ 679051.800000, 198039.400000 ], [ 679020.200000, 198065.700000 ], [ 678983.900000, 198111.000000 ], [ 678940.800000, 198107.700000 ], [ 678862.000000, 198079.000000 ], [ 678848.800000, 198081.000000 ], [ 678828.300000, 198102.400000 ], [ 678801.100000, 198118.500000 ], [ 678692.200000, 198154.000000 ], [ 678653.500000, 198176.700000 ], [ 678584.900000, 198234.900000 ], [ 678575.500000, 198260.600000 ], [ 678568.600000, 198262.900000 ], [ 678559.900000, 198251.100000 ], [ 678560.500000, 198237.100000 ], [ 678603.600000, 198141.900000 ], [ 678631.200000, 198102.700000 ], [ 678637.300000, 198072.800000 ], [ 678632.900000, 198068.700000 ], [ 678591.100000, 198110.500000 ], [ 678525.900000, 198129.900000 ], [ 678492.300000, 198151.700000 ], [ 678429.400000, 198167.400000 ], [ 678398.800000, 198194.700000 ], [ 678391.700000, 198223.600000 ], [ 678402.000000, 198244.800000 ], [ 678372.800000, 198272.300000 ], [ 678343.800000, 198283.900000 ], [ 678264.500000, 198289.100000 ], [ 678195.200000, 198309.400000 ], [ 678138.400000, 198351.900000 ], [ 678070.000000, 198377.200000 ], [ 677944.800000, 198446.400000 ], [ 677875.000000, 198503.000000 ], [ 677843.000000, 198522.400000 ], [ 677833.600000, 198518.000000 ], [ 677816.900000, 198534.400000 ], [ 677784.900000, 198585.600000 ], [ 677778.000000, 198613.300000 ], [ 677779.400000, 198731.100000 ], [ 677799.800000, 198810.600000 ], [ 677825.300000, 198872.700000 ], [ 677845.900000, 198901.600000 ], [ 677873.100000, 198895.600000 ], [ 677923.100000, 198926.100000 ], [ 677964.900000, 198936.500000 ], [ 677994.900000, 198994.200000 ], [ 678030.400000, 199030.800000 ], [ 678061.600000, 199074.800000 ], [ 678083.800000, 199150.600000 ], [ 678113.500000, 199176.200000 ], [ 678141.400000, 199190.400000 ], [ 678193.900000, 199186.600000 ], [ 678226.600000, 199219.300000 ], [ 678234.700000, 199239.900000 ], [ 678291.000000, 199315.900000 ], [ 678293.200000, 199336.400000 ], [ 678283.500000, 199390.900000 ], [ 678314.100000, 199449.200000 ], [ 678299.800000, 199558.400000 ], [ 678307.600000, 199596.100000 ], [ 678304.600000, 199646.400000 ], [ 678325.200000, 199705.700000 ], [ 678323.100000, 199749.500000 ], [ 678378.700000, 199765.900000 ], [ 678429.200000, 199898.400000 ], [ 678490.800000, 199932.000000 ], [ 678536.800000, 199928.700000 ], [ 678564.700000, 199935.500000 ], [ 678588.600000, 199952.000000 ], [ 678590.100000, 199960.500000 ], [ 678632.200000, 199977.600000 ], [ 678698.800000, 200039.500000 ], [ 678797.700000, 200180.500000 ], [ 678808.400000, 200208.900000 ], [ 678793.600000, 200232.700000 ], [ 678742.800000, 200259.500000 ], [ 678736.100000, 200296.000000 ], [ 678721.100000, 200299.500000 ], [ 678712.800000, 200246.100000 ], [ 678666.600000, 200203.800000 ], [ 678588.100000, 200153.300000 ], [ 678561.100000, 200105.200000 ], [ 678546.600000, 200097.500000 ], [ 678510.400000, 200098.400000 ], [ 678462.900000, 200069.400000 ], [ 678350.300000, 200059.100000 ], [ 678315.200000, 200046.400000 ], [ 678203.800000, 199984.100000 ], [ 678152.000000, 199922.600000 ], [ 678074.600000, 199924.000000 ], [ 678060.800000, 199930.800000 ], [ 678056.300000, 199952.500000 ], [ 678102.100000, 199991.000000 ], [ 678122.100000, 200048.000000 ], [ 678143.300000, 200063.100000 ], [ 678185.300000, 200077.000000 ], [ 678199.200000, 200089.300000 ], [ 678223.800000, 200146.800000 ], [ 678234.000000, 200206.300000 ], [ 678257.100000, 200259.800000 ], [ 678270.400000, 200275.600000 ], [ 678427.700000, 200366.300000 ], [ 678504.000000, 200450.000000 ], [ 678630.500000, 200546.800000 ], [ 678667.600000, 200597.000000 ], [ 678729.600000, 200592.000000 ], [ 678757.600000, 200596.800000 ], [ 678802.600000, 200608.800000 ], [ 678848.900000, 200630.100000 ], [ 678882.200000, 200656.300000 ], [ 678925.300000, 200707.600000 ], [ 678998.900000, 200760.800000 ], [ 679048.100000, 200763.800000 ], [ 679091.400000, 200749.400000 ], [ 679226.500000, 200743.300000 ], [ 679241.600000, 200737.800000 ], [ 679314.000000, 200674.000000 ], [ 679342.300000, 200659.400000 ], [ 679411.100000, 200650.200000 ], [ 679471.800000, 200678.500000 ], [ 679538.500000, 200685.500000 ], [ 679686.100000, 200796.000000 ], [ 679732.900000, 200812.500000 ], [ 679763.100000, 200810.500000 ], [ 679787.300000, 200816.700000 ], [ 679898.800000, 200866.100000 ], [ 679941.600000, 200889.200000 ], [ 679974.600000, 200919.200000 ], [ 680027.900000, 200953.100000 ], [ 680069.400000, 200959.300000 ], [ 680116.900000, 200954.400000 ], [ 680257.900000, 200962.300000 ], [ 680348.200000, 200972.800000 ], [ 680423.100000, 200961.500000 ], [ 680516.800000, 200990.000000 ], [ 680566.100000, 200989.000000 ], [ 680628.100000, 201018.200000 ], [ 680738.600000, 201044.000000 ] ] ] } } +{ "type": "Feature", "properties": { "FID": 4.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 680738.6, 201044.0 ], [ 680742.3, 201031.5 ], [ 680783.6, 201026.5 ], [ 680844.1, 200992.2 ], [ 680892.6, 200947.1 ], [ 680951.4, 200870.8 ], [ 680965.2, 200862.4 ], [ 681040.1, 200846.8 ], [ 681065.5, 200834.1 ], [ 681074.1, 200824.7 ], [ 681074.6, 200806.0 ], [ 681066.6, 200801.7 ], [ 681032.8, 200824.7 ], [ 681014.3, 200826.2 ], [ 680953.2, 200792.0 ], [ 680917.6, 200789.5 ], [ 680822.1, 200812.7 ], [ 680673.3, 200813.4 ], [ 680646.0, 200807.9 ], [ 680534.7, 200759.7 ], [ 680464.6, 200764.3 ], [ 680425.6, 200724.0 ], [ 680371.6, 200728.0 ], [ 680313.0, 200694.6 ] ], [ [ 680738.6, 201044.0 ], [ 680747.5, 201054.0 ], [ 680759.0, 201056.0 ], [ 680865.4, 201031.2 ], [ 680943.8, 201028.9 ], [ 681117.2, 200968.7 ], [ 681218.0, 200987.3 ], [ 681345.2, 200989.8 ], [ 681418.5, 201014.7 ], [ 681468.827, 201051.129 ], [ 681504.7, 201067.4 ], [ 681612.1, 201093.4 ], [ 681745.5, 201137.5 ], [ 681784.5, 201160.7 ], [ 681801.5, 201191.2 ] ], [ [ 680313.0, 200694.6 ], [ 680274.0, 200688.4 ], [ 680228.7, 200692.6 ], [ 680174.2, 200646.3 ], [ 680081.8, 200599.9 ], [ 679994.8, 200524.2 ], [ 679971.1, 200515.2 ], [ 679902.1, 200516.4 ], [ 679887.7, 200506.6 ], [ 679838.4, 200428.8 ], [ 679807.5, 200406.1 ], [ 679764.3, 200401.7 ], [ 679688.3, 200406.7 ], [ 679677.6, 200401.4 ], [ 679673.7, 200388.8 ], [ 679680.2, 200379.9 ], [ 679812.1, 200341.8 ], [ 679838.1, 200343.4 ], [ 679876.6, 200360.0 ], [ 679920.3, 200364.1 ], [ 680004.7, 200341.5 ], [ 680216.9, 200325.4 ], [ 680391.3, 200367.4 ], [ 680435.7, 200356.5 ], [ 680493.0, 200316.3 ], [ 680606.5, 200296.2 ], [ 680687.6, 200262.0 ], [ 680780.2, 200201.6 ], [ 680803.7, 200199.6 ], [ 680885.1, 200218.3 ], [ 680948.6, 200221.1 ], [ 681075.8, 200201.8 ], [ 681107.9, 200181.3 ], [ 681110.1, 200138.7 ], [ 681126.6, 200126.2 ], [ 681147.3, 200131.0 ], [ 681191.6, 200172.6 ], [ 681210.1, 200181.4 ], [ 681224.6, 200178.0 ], [ 681282.3, 200125.2 ], [ 681278.6, 200104.5 ], [ 681262.8, 200084.0 ], [ 681258.8, 200068.2 ], [ 681269.6, 200027.5 ], [ 681269.4, 199960.0 ], [ 681295.4, 199900.0 ], [ 681292.3, 199868.9 ], [ 681276.3, 199846.8 ], [ 681260.3, 199836.3 ], [ 681222.1, 199829.3 ], [ 681188.1, 199832.6 ], [ 681173.6, 199821.8 ], [ 681161.8, 199795.8 ], [ 681153.6, 199729.2 ], [ 681144.8, 199707.7 ], [ 681106.8, 199668.3 ], [ 681016.1, 199600.1 ], [ 680879.1, 199540.2 ], [ 680858.3, 199542.4 ], [ 680830.4, 199535.1 ], [ 680821.3, 199523.8 ], [ 680815.2, 199473.7 ], [ 680804.1, 199462.0 ], [ 680774.4, 199455.3 ], [ 680762.8, 199443.6 ], [ 680725.4, 199380.2 ], [ 680669.4, 199316.4 ], [ 680662.0, 199287.0 ], [ 680618.1, 199290.1 ], [ 680580.6, 199232.6 ], [ 680556.8, 199228.1 ], [ 680540.4, 199216.2 ], [ 680536.1, 199200.8 ], [ 680566.5, 199134.8 ], [ 680556.7, 199121.2 ], [ 680510.0, 199112.7 ], [ 680493.6, 199103.1 ], [ 680480.4, 199085.9 ], [ 680477.3, 199045.7 ], [ 680461.0, 199048.6 ], [ 680439.3, 199079.6 ], [ 680435.3, 199100.6 ], [ 680442.2, 199161.2 ], [ 680439.6, 199168.5 ], [ 680427.7, 199164.5 ], [ 680396.1, 199057.0 ], [ 680358.9, 199008.0 ], [ 680339.9, 198942.0 ], [ 680330.9, 198943.1 ], [ 680324.4, 199014.5 ], [ 680315.6, 199052.0 ], [ 680309.5, 199052.0 ], [ 680297.8, 198996.8 ], [ 680263.8, 198904.0 ], [ 680272.3, 198856.3 ], [ 680217.2, 198912.6 ], [ 680186.9, 198930.2 ], [ 680151.1, 198942.1 ], [ 680137.5, 198940.7 ], [ 680104.9, 198900.4 ], [ 680092.9, 198852.4 ], [ 680064.9, 198783.9 ], [ 680018.5, 198730.5 ], [ 679969.6, 198704.4 ], [ 679943.4, 198678.0 ], [ 679875.593, 198628.187 ], [ 679811.0, 198560.9 ], [ 679801.5, 198543.8 ], [ 679781.8, 198531.1 ], [ 679722.7, 198526.8 ], [ 679678.1, 198510.4 ], [ 679619.2, 198429.5 ], [ 679604.6, 198365.3 ], [ 679549.0, 198263.7 ], [ 679481.0, 198192.2 ], [ 679442.2, 198167.4 ], [ 679405.4, 198101.7 ], [ 679349.3, 198050.7 ], [ 679320.1, 197985.3 ], [ 679292.1, 197958.1 ], [ 679268.3, 197944.7 ], [ 679239.0, 197938.5 ], [ 679183.2, 197942.3 ], [ 679153.2, 197965.7 ], [ 679119.9, 198013.3 ], [ 679051.8, 198039.4 ], [ 679020.2, 198065.7 ], [ 678983.9, 198111.0 ], [ 678940.8, 198107.7 ], [ 678862.0, 198079.0 ], [ 678848.8, 198081.0 ], [ 678828.3, 198102.4 ], [ 678801.1, 198118.5 ], [ 678692.2, 198154.0 ], [ 678653.5, 198176.7 ], [ 678584.9, 198234.9 ], [ 678575.5, 198260.6 ], [ 678568.6, 198262.9 ], [ 678559.9, 198251.1 ], [ 678560.5, 198237.1 ], [ 678603.6, 198141.9 ], [ 678631.2, 198102.7 ], [ 678637.3, 198072.8 ], [ 678632.9, 198068.7 ], [ 678591.1, 198110.5 ], [ 678525.9, 198129.9 ], [ 678492.3, 198151.7 ], [ 678429.4, 198167.4 ], [ 678398.8, 198194.7 ], [ 678391.7, 198223.6 ], [ 678402.0, 198244.8 ], [ 678372.8, 198272.3 ], [ 678343.8, 198283.9 ], [ 678264.5, 198289.1 ], [ 678195.2, 198309.4 ], [ 678138.4, 198351.9 ], [ 678070.0, 198377.2 ], [ 677944.8, 198446.4 ], [ 677875.0, 198503.0 ], [ 677843.0, 198522.4 ], [ 677833.6, 198518.0 ], [ 677816.9, 198534.4 ], [ 677784.9, 198585.6 ], [ 677778.0, 198613.3 ], [ 677779.4, 198731.1 ], [ 677799.8, 198810.6 ], [ 677825.3, 198872.7 ], [ 677845.9, 198901.6 ], [ 677873.1, 198895.6 ], [ 677923.1, 198926.1 ], [ 677964.9, 198936.5 ], [ 677994.9, 198994.2 ], [ 678030.4, 199030.8 ], [ 678061.6, 199074.8 ], [ 678083.8, 199150.6 ], [ 678113.5, 199176.2 ], [ 678141.4, 199190.4 ], [ 678193.9, 199186.6 ], [ 678226.6, 199219.3 ], [ 678234.7, 199239.9 ], [ 678291.0, 199315.9 ], [ 678293.2, 199336.4 ], [ 678283.5, 199390.9 ], [ 678314.1, 199449.2 ], [ 678299.8, 199558.4 ], [ 678307.6, 199596.1 ], [ 678304.6, 199646.4 ], [ 678325.2, 199705.7 ], [ 678323.1, 199749.5 ], [ 678378.7, 199765.9 ], [ 678429.2, 199898.4 ], [ 678490.8, 199932.0 ], [ 678536.8, 199928.7 ], [ 678564.7, 199935.5 ], [ 678588.6, 199952.0 ], [ 678590.1, 199960.5 ], [ 678632.2, 199977.6 ], [ 678698.8, 200039.5 ], [ 678797.7, 200180.5 ], [ 678808.4, 200208.9 ], [ 678793.6, 200232.7 ], [ 678742.8, 200259.5 ], [ 678736.1, 200296.0 ], [ 678721.1, 200299.5 ], [ 678712.8, 200246.1 ], [ 678666.6, 200203.8 ], [ 678588.1, 200153.3 ], [ 678561.1, 200105.2 ], [ 678546.6, 200097.5 ], [ 678510.4, 200098.4 ], [ 678462.9, 200069.4 ], [ 678350.3, 200059.1 ], [ 678315.2, 200046.4 ], [ 678203.8, 199984.1 ], [ 678152.0, 199922.6 ], [ 678074.6, 199924.0 ], [ 678060.8, 199930.8 ], [ 678056.3, 199952.5 ], [ 678102.1, 199991.0 ], [ 678122.1, 200048.0 ], [ 678143.3, 200063.1 ], [ 678185.3, 200077.0 ], [ 678199.2, 200089.3 ], [ 678223.8, 200146.8 ], [ 678234.0, 200206.3 ], [ 678257.1, 200259.8 ], [ 678270.4, 200275.6 ], [ 678427.7, 200366.3 ], [ 678504.0, 200450.0 ], [ 678630.5, 200546.8 ], [ 678667.6, 200597.0 ], [ 678729.6, 200592.0 ], [ 678757.6, 200596.8 ], [ 678802.6, 200608.8 ], [ 678848.9, 200630.1 ], [ 678882.2, 200656.3 ], [ 678925.3, 200707.6 ], [ 678998.9, 200760.8 ], [ 679048.1, 200763.8 ], [ 679091.4, 200749.4 ], [ 679226.5, 200743.3 ], [ 679241.6, 200737.8 ], [ 679314.0, 200674.0 ], [ 679342.3, 200659.4 ], [ 679411.1, 200650.2 ], [ 679471.8, 200678.5 ], [ 679538.5, 200685.5 ], [ 679686.1, 200796.0 ], [ 679732.9, 200812.5 ], [ 679763.1, 200810.5 ], [ 679787.3, 200816.7 ], [ 679898.8, 200866.1 ], [ 679941.6, 200889.2 ], [ 679974.6, 200919.2 ], [ 680027.9, 200953.1 ], [ 680069.4, 200959.3 ], [ 680116.9, 200954.4 ], [ 680257.9, 200962.3 ], [ 680348.2, 200972.8 ], [ 680423.1, 200961.5 ], [ 680516.8, 200990.0 ], [ 680566.1, 200989.0 ], [ 680628.1, 201018.2 ], [ 680738.6, 201044.0 ] ] ] } } , -{ "type": "Feature", "properties": { "FID": 5.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 561800.138000, 205292.135000 ], [ 561886.100000, 205371.200000 ], [ 561874.586000, 205381.519000 ], [ 561680.800000, 205347.800000 ], [ 561546.500000, 205341.500000 ], [ 561423.485000, 205313.388000 ], [ 561446.100000, 205349.000000 ], [ 561471.513000, 205357.967000 ], [ 561441.600000, 205404.600000 ], [ 561438.500000, 205465.000000 ], [ 561608.800000, 205548.600000 ], [ 561699.100000, 205647.800000 ], [ 561753.300000, 205673.100000 ], [ 561792.800000, 205700.300000 ], [ 561825.300000, 205746.100000 ], [ 561863.100000, 205768.300000 ], [ 561903.800000, 205811.000000 ], [ 561940.500000, 205834.800000 ], [ 561970.874000, 205871.152000 ], [ 562046.700000, 205924.700000 ], [ 562207.276000, 206076.274000 ], [ 562255.486000, 206134.528000 ], [ 562297.000000, 206163.500000 ], [ 562299.300000, 206185.200000 ], [ 562262.800000, 206282.100000 ], [ 562344.800000, 206330.900000 ], [ 562467.600000, 206484.900000 ], [ 562529.300000, 206543.600000 ], [ 562535.300000, 206575.100000 ], [ 562521.200000, 206596.600000 ], [ 562682.400000, 206677.100000 ], [ 562725.700000, 206711.300000 ], [ 562893.900000, 206797.100000 ], [ 562982.200000, 206811.800000 ], [ 563163.200000, 206915.300000 ], [ 563176.400000, 206941.600000 ], [ 563223.400000, 206968.100000 ], [ 563330.200000, 207063.800000 ], [ 563395.400000, 207069.300000 ], [ 563469.900000, 207099.600000 ], [ 563530.400000, 207112.100000 ], [ 563653.900000, 207156.100000 ], [ 563728.200000, 207169.100000 ], [ 563886.900000, 207249.200000 ], [ 563975.200000, 207274.900000 ], [ 564044.000000, 207282.400000 ], [ 564258.200000, 207366.400000 ], [ 564332.000000, 207439.200000 ], [ 564466.200000, 207540.700000 ], [ 564572.000000, 207602.700000 ], [ 564656.200000, 207671.200000 ], [ 564686.200000, 207704.700000 ], [ 564740.500000, 207726.900000 ], [ 564799.200000, 207727.200000 ], [ 564829.000000, 207739.900000 ], [ 564884.500000, 207800.700000 ], [ 564922.300000, 207826.100000 ], [ 565030.300000, 207931.400000 ], [ 565082.600000, 207972.100000 ], [ 565107.800000, 207983.400000 ], [ 565128.800000, 207984.100000 ], [ 565148.100000, 207968.900000 ], [ 565153.700000, 207952.700000 ], [ 565216.200000, 208084.000000 ], [ 565294.200000, 208167.500000 ], [ 565371.100000, 208266.000000 ], [ 565483.300000, 208391.200000 ], [ 565616.100000, 208576.500000 ], [ 565714.100000, 208675.500000 ], [ 565754.400000, 208735.100000 ], [ 565772.700000, 208862.400000 ], [ 565822.000000, 209001.800000 ], [ 565846.000000, 209103.100000 ], [ 565969.000000, 209330.100000 ], [ 566023.700000, 209412.600000 ], [ 566026.500000, 209443.300000 ], [ 566021.200000, 209467.300000 ], [ 565984.000000, 209554.600000 ], [ 565987.000000, 209573.800000 ], [ 566008.000000, 209616.100000 ], [ 566005.500000, 209655.600000 ], [ 566010.700000, 209683.600000 ], [ 566043.500000, 209730.600000 ], [ 566116.200000, 209789.600000 ], [ 566209.700000, 209843.900000 ], [ 566263.400000, 209846.900000 ], [ 566333.900000, 209980.100000 ], [ 566407.400000, 210078.600000 ], [ 566421.100000, 210171.300000 ], [ 566478.100000, 210305.300000 ], [ 566499.600000, 210382.600000 ], [ 566510.900000, 210405.100000 ], [ 566550.900000, 210446.100000 ], [ 566628.200000, 210582.000000 ], [ 566623.500000, 210599.100000 ], [ 566627.500000, 210652.800000 ], [ 566638.200000, 210698.100000 ], [ 566701.500000, 210798.300000 ], [ 566773.200000, 210873.100000 ], [ 566919.500000, 210998.900000 ], [ 566943.700000, 211042.600000 ], [ 566968.500000, 211116.100000 ], [ 567028.000000, 211180.400000 ], [ 567084.000000, 211258.600000 ], [ 567247.700000, 211427.600000 ], [ 567262.000000, 211440.400000 ], [ 567280.700000, 211442.600000 ], [ 567332.700000, 211515.400000 ], [ 567358.200000, 211606.900000 ], [ 567380.700000, 211649.600000 ], [ 567435.700000, 211694.900000 ], [ 567548.400000, 211745.100000 ], [ 567560.600000, 211757.600000 ], [ 567591.800000, 211813.500000 ], [ 567598.900000, 211861.600000 ], [ 567617.400000, 211910.400000 ], [ 567688.100000, 212063.800000 ], [ 567765.800000, 212204.400000 ], [ 567779.700000, 212239.800000 ], [ 567826.800000, 212523.000000 ], [ 567843.900000, 212562.200000 ], [ 567885.600000, 212626.000000 ], [ 567903.700000, 212734.700000 ], [ 567950.700000, 212789.500000 ], [ 568002.000000, 212885.000000 ], [ 568087.700000, 212979.500000 ], [ 568127.900000, 213107.100000 ], [ 568222.100000, 213275.100000 ], [ 568245.800000, 213379.200000 ], [ 568262.400000, 213423.700000 ], [ 568365.200000, 213582.600000 ], [ 568371.000000, 213685.200000 ], [ 568396.800000, 213774.000000 ], [ 568416.200000, 213818.800000 ], [ 568541.100000, 213993.300000 ], [ 568611.000000, 214140.700000 ], [ 568653.900000, 214262.500000 ], [ 568695.400000, 214415.800000 ], [ 568750.000000, 214513.000000 ], [ 568685.800000, 214571.500000 ], [ 568670.700000, 214667.800000 ], [ 568685.500000, 214731.900000 ], [ 568682.200000, 214761.000000 ], [ 568564.200000, 215185.900000 ], [ 568556.500000, 215264.500000 ], [ 568520.500000, 215423.700000 ], [ 568510.000000, 215504.000000 ], [ 568456.300000, 215657.300000 ], [ 568442.600000, 215784.400000 ], [ 568447.200000, 215923.700000 ], [ 568438.800000, 216023.000000 ], [ 568465.900000, 216121.500000 ], [ 568516.400000, 216220.200000 ], [ 568631.200000, 216365.700000 ], [ 568694.600000, 216424.400000 ], [ 568746.200000, 216433.600000 ], [ 568863.200000, 216468.900000 ], [ 569002.900000, 216536.600000 ], [ 569256.900000, 216617.100000 ], [ 569328.700000, 216657.900000 ], [ 569434.400000, 216739.100000 ], [ 569478.400000, 216765.900000 ], [ 569634.100000, 216800.900000 ], [ 569717.700000, 216838.300000 ], [ 569749.900000, 216838.800000 ], [ 569764.900000, 216918.600000 ], [ 569799.100000, 216948.400000 ], [ 569908.000000, 216957.100000 ], [ 570010.800000, 216978.600000 ], [ 570206.600000, 217057.600000 ], [ 570324.600000, 217119.500000 ], [ 570375.500000, 217152.200000 ], [ 570453.100000, 217222.200000 ], [ 570589.900000, 217362.500000 ], [ 570653.100000, 217451.400000 ], [ 570713.700000, 217503.900000 ], [ 570807.600000, 217546.900000 ], [ 570868.300000, 217586.900000 ], [ 570901.300000, 217623.600000 ], [ 570951.300000, 217651.900000 ], [ 571103.400000, 217707.500000 ], [ 571150.000000, 217743.100000 ], [ 571212.700000, 217746.900000 ], [ 571336.300000, 217767.700000 ], [ 571577.900000, 217821.600000 ], [ 571660.600000, 217864.100000 ], [ 571742.400000, 217849.100000 ], [ 571833.100000, 217847.200000 ], [ 571887.100000, 217863.600000 ], [ 571973.300000, 217901.100000 ], [ 572156.700000, 217935.600000 ], [ 572207.100000, 217955.400000 ], [ 572242.900000, 217982.100000 ], [ 572297.100000, 217860.200000 ], [ 572312.800000, 217835.200000 ], [ 572346.100000, 217802.200000 ], [ 572389.800000, 217794.300000 ], [ 572409.300000, 217812.800000 ], [ 572429.800000, 217819.500000 ], [ 572513.400000, 217826.700000 ], [ 572756.700000, 217964.400000 ], [ 572826.200000, 218019.900000 ], [ 572860.000000, 218055.200000 ], [ 572878.000000, 218063.600000 ], [ 572904.600000, 218016.600000 ], [ 572958.800000, 218046.300000 ], [ 573005.700000, 218098.800000 ], [ 573038.800000, 218117.500000 ], [ 573040.100000, 218127.200000 ], [ 573123.500000, 218238.000000 ], [ 573286.800000, 218344.000000 ], [ 573354.600000, 218398.200000 ], [ 573365.300000, 218431.500000 ], [ 573437.300000, 218506.500000 ], [ 573521.700000, 218660.800000 ], [ 573539.200000, 218684.000000 ], [ 573618.600000, 218754.600000 ], [ 573658.957000, 218818.928000 ], [ 573640.067000, 218898.536000 ], [ 573599.400000, 218960.100000 ], [ 573668.500000, 218999.300000 ], [ 573759.100000, 219069.900000 ], [ 573817.900000, 219097.100000 ], [ 573891.600000, 219121.000000 ], [ 573979.900000, 219207.900000 ], [ 574203.700000, 219399.200000 ], [ 574412.100000, 219493.200000 ], [ 574488.900000, 219542.500000 ], [ 574555.200000, 219602.500000 ], [ 574601.400000, 219659.400000 ], [ 574722.100000, 219779.700000 ], [ 574917.100000, 220028.500000 ], [ 574973.900000, 220135.300000 ], [ 575034.500000, 220213.900000 ], [ 575025.400000, 220295.500000 ], [ 575001.600000, 220416.000000 ], [ 575000.600000, 220484.700000 ], [ 575086.500000, 220599.700000 ], [ 575171.400000, 220742.500000 ], [ 575199.900000, 220837.200000 ], [ 575218.800000, 220887.300000 ], [ 575233.600000, 220908.600000 ], [ 575304.700000, 220984.000000 ], [ 575418.700000, 221025.700000 ], [ 575460.900000, 221047.600000 ], [ 575620.400000, 221179.900000 ], [ 575702.400000, 221230.400000 ], [ 575751.700000, 221289.400000 ], [ 575858.700000, 221384.400000 ], [ 575985.200000, 221534.600000 ], [ 576004.900000, 221590.400000 ], [ 576007.200000, 221659.600000 ], [ 575961.200000, 221710.900000 ], [ 575967.400000, 221774.900000 ], [ 575965.400000, 221806.900000 ], [ 575954.695000, 221832.520000 ], [ 576001.515000, 221848.329000 ], [ 576011.852000, 221816.102000 ], [ 576336.552000, 221819.142000 ], [ 576362.699000, 221828.263000 ], [ 576623.400000, 222010.500000 ], [ 576671.000000, 222037.100000 ], [ 576765.100000, 222065.000000 ], [ 576863.200000, 222121.700000 ], [ 576894.400000, 222124.200000 ], [ 576808.200000, 222170.000000 ], [ 576799.400000, 222177.200000 ], [ 576799.200000, 222189.500000 ], [ 576878.800000, 222223.500000 ], [ 576938.000000, 222262.900000 ], [ 576948.100000, 222405.800000 ], [ 576954.500000, 222428.500000 ], [ 577091.600000, 222682.100000 ], [ 577162.200000, 222843.700000 ], [ 577232.800000, 222863.000000 ], [ 577324.500000, 222922.300000 ], [ 577399.200000, 222961.600000 ], [ 577482.300000, 223043.300000 ], [ 577536.000000, 223080.900000 ], [ 577636.800000, 223175.900000 ], [ 577719.000000, 223221.400000 ], [ 577766.800000, 223261.400000 ], [ 577982.300000, 223408.000000 ], [ 577986.700000, 223427.200000 ], [ 577981.700000, 223435.300000 ], [ 577879.900000, 223464.100000 ], [ 577769.900000, 223533.600000 ], [ 577766.400000, 223550.900000 ], [ 577870.400000, 223713.400000 ], [ 577914.600000, 223769.700000 ], [ 578146.700000, 223971.500000 ], [ 578151.700000, 223992.700000 ], [ 578140.810000, 224009.240000 ], [ 578092.700000, 224014.500000 ], [ 578031.200000, 224005.700000 ], [ 577876.700000, 223963.900000 ], [ 577774.900000, 223944.200000 ], [ 577551.100000, 223837.400000 ], [ 577353.000000, 223760.000000 ], [ 577276.500000, 223757.300000 ], [ 577195.600000, 223771.700000 ], [ 577159.600000, 223788.300000 ], [ 577125.400000, 223824.100000 ], [ 577122.300000, 223876.300000 ], [ 577098.500000, 223940.100000 ], [ 577079.900000, 224016.600000 ], [ 577004.900000, 224149.100000 ], [ 577003.400000, 224227.100000 ], [ 576960.000000, 224342.500000 ], [ 576966.600000, 224372.100000 ], [ 577039.600000, 224417.600000 ], [ 577074.000000, 224455.200000 ], [ 577107.900000, 224479.800000 ], [ 577131.700000, 224546.400000 ], [ 577168.000000, 224540.500000 ], [ 577312.000000, 224541.300000 ], [ 577399.500000, 224514.500000 ], [ 577479.900000, 224535.400000 ], [ 577550.700000, 224567.000000 ], [ 577634.900000, 224615.900000 ], [ 577713.700000, 224682.500000 ], [ 577796.200000, 224719.600000 ], [ 577890.200000, 224750.400000 ], [ 578092.400000, 224843.900000 ], [ 578338.100000, 224932.700000 ], [ 578522.700000, 224978.300000 ], [ 578625.700000, 225012.800000 ], [ 579041.000000, 225210.500000 ], [ 579066.500000, 225227.500000 ], [ 579097.700000, 225265.300000 ], [ 579114.800000, 225302.400000 ], [ 578991.400000, 225358.500000 ], [ 578955.400000, 225372.400000 ], [ 578879.000000, 225374.300000 ], [ 578775.300000, 225390.600000 ], [ 578751.800000, 225418.600000 ], [ 578736.300000, 225425.600000 ], [ 578615.000000, 225429.800000 ], [ 578410.500000, 225364.300000 ], [ 578374.300000, 225368.800000 ], [ 578323.800000, 225399.500000 ], [ 578342.300000, 225393.300000 ], [ 578381.300000, 225392.800000 ], [ 578404.800000, 225402.800000 ], [ 578418.500000, 225414.300000 ], [ 578466.500000, 225495.600000 ], [ 578532.800000, 225551.100000 ], [ 578621.300000, 225584.100000 ], [ 578684.300000, 225593.800000 ], [ 578906.300000, 225656.300000 ], [ 578979.800000, 225664.600000 ], [ 579030.800000, 225651.600000 ], [ 579106.800000, 225666.100000 ], [ 579156.300000, 225667.100000 ], [ 579223.800000, 225685.100000 ], [ 579346.300000, 225693.600000 ], [ 579367.000000, 225708.600000 ], [ 579390.500000, 225746.300000 ], [ 579478.800000, 225769.600000 ], [ 579607.900000, 225869.500000 ], [ 579730.000000, 225918.600000 ], [ 579805.500000, 225909.600000 ], [ 579826.300000, 225915.600000 ], [ 579832.800000, 225930.900000 ], [ 579828.800000, 225941.600000 ], [ 579743.300000, 225956.600000 ], [ 579728.800000, 225980.600000 ], [ 579719.000000, 226016.100000 ], [ 579707.500000, 226027.100000 ], [ 579557.000000, 226058.600000 ], [ 579487.300000, 226052.100000 ], [ 579432.500000, 226085.900000 ], [ 579408.000000, 226091.400000 ], [ 579369.800000, 226087.100000 ], [ 579357.000000, 226096.200000 ], [ 579358.000000, 226111.100000 ], [ 579371.300000, 226124.100000 ], [ 579444.800000, 226124.900000 ], [ 579475.000000, 226131.400000 ], [ 579580.200000, 226200.000000 ], [ 579606.700000, 226292.800000 ], [ 579631.400000, 226348.600000 ], [ 579649.100000, 226375.500000 ], [ 579730.200000, 226446.300000 ], [ 579742.500000, 226470.700000 ], [ 579756.000000, 226561.900000 ], [ 579766.400000, 226729.200000 ], [ 579730.300000, 226743.000000 ], [ 579546.200000, 226769.900000 ], [ 579505.000000, 226763.800000 ], [ 579371.900000, 226714.200000 ], [ 579352.100000, 226715.700000 ], [ 579333.000000, 226727.400000 ], [ 579302.900000, 226762.000000 ], [ 579282.600000, 226799.500000 ], [ 579259.300000, 226899.900000 ], [ 579263.200000, 226932.500000 ], [ 579284.100000, 226997.700000 ], [ 579281.600000, 227063.400000 ], [ 579226.700000, 227141.200000 ], [ 579247.200000, 227134.800000 ], [ 579299.700000, 227138.500000 ], [ 579605.400000, 227191.000000 ], [ 579776.500000, 227196.400000 ], [ 579857.700000, 227179.900000 ], [ 580013.200000, 227119.900000 ], [ 580125.700000, 227049.400000 ], [ 580132.200000, 227047.700000 ], [ 580175.000000, 227077.000000 ], [ 580255.500000, 227204.400000 ], [ 580467.600000, 227320.100000 ], [ 580542.000000, 227353.200000 ], [ 580604.900000, 227407.300000 ], [ 580665.578000, 227470.364000 ], [ 580662.659000, 227485.213000 ], [ 580685.400000, 227497.200000 ], [ 580695.400000, 227548.900000 ], [ 580689.200000, 227576.800000 ], [ 580671.677000, 227596.021000 ], [ 580697.400000, 227608.300000 ], [ 580721.600000, 227608.700000 ], [ 580868.400000, 227744.800000 ], [ 581044.100000, 227865.600000 ], [ 581209.900000, 227947.000000 ], [ 581231.600000, 227966.900000 ], [ 581261.500000, 228010.800000 ], [ 581262.400000, 228040.900000 ], [ 581279.500000, 228040.800000 ], [ 581282.900000, 228059.300000 ], [ 581287.077000, 228109.396000 ], [ 581275.500000, 228158.500000 ], [ 581272.600000, 228236.300000 ], [ 581249.100000, 228357.200000 ], [ 581258.700000, 228434.100000 ], [ 581276.131000, 228433.788000 ], [ 581301.947000, 228488.519000 ], [ 581289.600000, 228503.300000 ], [ 581309.400000, 228507.800000 ], [ 581321.300000, 228522.800000 ], [ 581353.200000, 228585.900000 ], [ 581421.700000, 228682.000000 ], [ 581440.400000, 228639.300000 ], [ 581453.500000, 228625.600000 ], [ 581492.200000, 228623.700000 ], [ 581566.600000, 228656.800000 ], [ 581602.900000, 228691.200000 ], [ 581639.100000, 228739.300000 ], [ 581676.600000, 228807.500000 ], [ 581706.600000, 228885.600000 ], [ 581732.900000, 228913.100000 ], [ 581764.700000, 228923.700000 ], [ 581868.500000, 228928.700000 ], [ 581879.700000, 228924.300000 ], [ 581887.200000, 228910.600000 ], [ 581886.600000, 228894.300000 ], [ 581840.400000, 228831.200000 ], [ 581809.700000, 228738.700000 ], [ 581810.400000, 228700.000000 ], [ 581822.900000, 228643.100000 ], [ 581827.900000, 228629.300000 ], [ 581849.400000, 228623.700000 ], [ 581921.600000, 228656.200000 ], [ 582000.400000, 228707.500000 ], [ 582021.629000, 228704.305000 ], [ 582074.200000, 228776.100000 ], [ 582108.400000, 228804.900000 ], [ 582161.700000, 228831.600000 ], [ 582256.800000, 228874.100000 ], [ 582324.600000, 228874.800000 ], [ 582338.300000, 228867.900000 ], [ 582323.500000, 228841.200000 ], [ 582297.500000, 228819.900000 ], [ 582279.100000, 228792.600000 ], [ 582247.400000, 228676.600000 ], [ 582241.600000, 228435.000000 ], [ 582210.400000, 228246.800000 ], [ 582212.900000, 228216.200000 ], [ 582270.400000, 228094.900000 ], [ 582273.500000, 228074.900000 ], [ 582265.400000, 227949.900000 ], [ 582239.100000, 227861.800000 ], [ 582245.000000, 227828.700000 ], [ 582307.200000, 227852.400000 ], [ 582344.100000, 227874.300000 ], [ 582395.400000, 227918.700000 ], [ 582462.900000, 228015.600000 ], [ 582526.600000, 228069.900000 ], [ 582567.900000, 228126.200000 ], [ 582612.900000, 228190.600000 ], [ 582675.400000, 228306.200000 ], [ 582728.500000, 228339.300000 ], [ 582797.200000, 228401.800000 ], [ 582826.000000, 228416.200000 ], [ 582989.100000, 228538.100000 ], [ 583053.500000, 228550.600000 ], [ 583118.000000, 228543.100000 ], [ 583221.200000, 228574.100000 ], [ 583232.200000, 228568.300000 ], [ 583236.100000, 228527.800000 ], [ 583254.900000, 228499.700000 ], [ 583298.716000, 228447.146000 ], [ 583319.900000, 228441.000000 ], [ 583484.900000, 228525.300000 ], [ 583538.000000, 228545.300000 ], [ 583553.000000, 228534.700000 ], [ 583554.200000, 228511.600000 ], [ 583578.000000, 228474.100000 ], [ 583598.000000, 228459.100000 ], [ 583650.500000, 228437.800000 ], [ 583739.900000, 228452.200000 ], [ 583799.900000, 228449.700000 ], [ 583853.900000, 228435.000000 ], [ 583898.100000, 228395.100000 ], [ 583941.600000, 228396.300000 ], [ 583994.600000, 228421.600000 ], [ 584079.700000, 228486.100000 ], [ 584368.500000, 228578.600000 ], [ 584423.500000, 228601.700000 ], [ 584467.200000, 228645.500000 ], [ 584491.000000, 228679.200000 ], [ 584588.500000, 228753.600000 ], [ 584640.400000, 228776.100000 ], [ 584673.500000, 228816.700000 ], [ 584701.000000, 228838.600000 ], [ 584732.200000, 228883.000000 ], [ 584784.100000, 228925.500000 ], [ 584801.600000, 228951.700000 ], [ 584857.200000, 228978.900000 ], [ 584843.500000, 229055.000000 ], [ 584872.600000, 229103.900000 ], [ 584934.100000, 229178.600000 ], [ 584989.400000, 229199.000000 ], [ 585021.700000, 229218.600000 ], [ 585088.700000, 229233.400000 ], [ 585131.600000, 229231.300000 ], [ 585284.900000, 229260.000000 ], [ 585441.500000, 229264.900000 ], [ 585537.200000, 229327.000000 ], [ 585610.200000, 229355.900000 ], [ 586068.000000, 229458.400000 ], [ 586178.700000, 229465.400000 ], [ 586227.000000, 229493.700000 ], [ 586281.000000, 229507.900000 ], [ 586313.900000, 229459.900000 ], [ 586380.900000, 229399.300000 ], [ 586437.700000, 229369.300000 ], [ 586493.700000, 229352.600000 ], [ 586550.200000, 229350.600000 ], [ 586725.700000, 229389.200000 ], [ 586811.100000, 229388.900000 ], [ 586910.800000, 229411.200000 ], [ 587046.900000, 229424.700000 ], [ 587097.700000, 229437.600000 ], [ 587208.200000, 229452.400000 ], [ 587337.200000, 229491.200000 ], [ 587391.400000, 229463.400000 ], [ 587441.200000, 229453.100000 ], [ 587570.400000, 229406.900000 ], [ 587612.400000, 229378.400000 ], [ 587674.700000, 229323.100000 ], [ 587698.400000, 229320.300000 ], [ 587805.400000, 229399.700000 ], [ 587886.200000, 229449.800000 ], [ 587981.900000, 229532.900000 ], [ 588050.200000, 229567.900000 ], [ 588109.400000, 229614.000000 ], [ 588402.900000, 229702.500000 ], [ 588642.400000, 229706.700000 ], [ 588755.700000, 229734.600000 ], [ 588771.400000, 229725.600000 ], [ 588772.800000, 229705.600000 ], [ 588922.600000, 229771.900000 ], [ 589000.900000, 229794.700000 ], [ 589057.900000, 229801.700000 ], [ 589189.100000, 229782.200000 ], [ 589231.400000, 229782.700000 ], [ 589313.600000, 229816.900000 ], [ 589389.400000, 229808.400000 ], [ 589409.600000, 229811.900000 ], [ 589602.900000, 229867.200000 ], [ 589674.900000, 229875.700000 ], [ 589762.900000, 229904.400000 ], [ 589779.400000, 229901.900000 ], [ 589789.400000, 229891.200000 ], [ 589779.600000, 229867.400000 ], [ 589783.600000, 229859.900000 ], [ 589943.100000, 229826.200000 ], [ 590012.400000, 229831.400000 ], [ 590104.100000, 229814.600000 ], [ 590238.900000, 229768.400000 ], [ 590310.900000, 229766.800000 ], [ 590465.400000, 229796.500000 ], [ 590609.400000, 229836.800000 ], [ 590765.900000, 229852.000000 ], [ 590883.100000, 229904.300000 ], [ 591004.800000, 229940.800000 ], [ 591018.600000, 229836.000000 ], [ 591030.600000, 229824.500000 ], [ 591082.900000, 229812.000000 ], [ 591073.300000, 229600.800000 ], [ 591222.600000, 229632.800000 ], [ 591329.600000, 229681.300000 ], [ 591421.000000, 229679.800000 ], [ 591530.500000, 229715.000000 ], [ 591547.500000, 229708.000000 ], [ 591556.500000, 229694.300000 ], [ 591593.700000, 229586.000000 ], [ 591628.200000, 229507.300000 ], [ 591682.200000, 229510.300000 ], [ 591803.700000, 229540.000000 ], [ 591874.500000, 229504.500000 ], [ 591923.000000, 229513.800000 ], [ 592030.700000, 229508.800000 ], [ 592069.700000, 229485.000000 ], [ 592080.000000, 229472.300000 ], [ 592084.300000, 229452.400000 ], [ 592157.200000, 229554.800000 ], [ 592179.000000, 229630.500000 ], [ 592195.700000, 229789.300000 ], [ 592182.700000, 229845.000000 ], [ 592157.500000, 229887.000000 ], [ 592229.500000, 229930.500000 ], [ 592604.700000, 229968.500000 ], [ 592721.700000, 229968.300000 ], [ 593089.400000, 230035.300000 ], [ 593262.200000, 230103.900000 ], [ 593312.900000, 230111.400000 ], [ 593355.700000, 230109.400000 ], [ 593559.500000, 230142.200000 ], [ 593602.200000, 230172.700000 ], [ 593659.400000, 230230.100000 ], [ 593695.200000, 230284.600000 ], [ 593748.300000, 230320.700000 ], [ 593850.000000, 230342.200000 ], [ 594024.600000, 230417.200000 ], [ 594049.000000, 230375.400000 ], [ 594122.900000, 230319.000000 ], [ 594328.500000, 230230.900000 ], [ 594384.000000, 230192.800000 ], [ 594414.500000, 230205.600000 ], [ 594440.800000, 230228.200000 ], [ 594467.500000, 230274.700000 ], [ 594502.700000, 230290.600000 ], [ 594676.200000, 230297.000000 ], [ 594835.300000, 230292.300000 ], [ 594886.300000, 230300.300000 ], [ 594949.900000, 230334.700000 ], [ 595288.500000, 230626.600000 ], [ 595474.000000, 230690.300000 ], [ 595671.500000, 230780.600000 ], [ 595826.900000, 230812.400000 ], [ 595859.500000, 230824.500000 ], [ 596184.000000, 230994.100000 ], [ 596225.500000, 231011.600000 ], [ 596278.400000, 231024.300000 ], [ 596406.800000, 231081.300000 ], [ 596511.700000, 231157.000000 ], [ 596568.200000, 231186.700000 ], [ 596713.200000, 231238.100000 ], [ 596765.300000, 231246.600000 ], [ 596807.100000, 231244.400000 ], [ 596813.300000, 231260.000000 ], [ 596826.800000, 231271.500000 ], [ 596915.500000, 231316.800000 ], [ 596959.500000, 231346.500000 ], [ 596993.300000, 231377.500000 ], [ 597026.200000, 231427.100000 ], [ 597122.200000, 231477.000000 ], [ 597232.700000, 231513.600000 ], [ 597307.400000, 231558.900000 ], [ 597349.100000, 231598.100000 ], [ 597413.100000, 231688.100000 ], [ 597422.200000, 231709.700000 ], [ 597455.700000, 231734.000000 ], [ 597465.600000, 231727.100000 ], [ 597479.800000, 231733.800000 ], [ 597522.300000, 231736.400000 ], [ 597557.700000, 231772.300000 ], [ 597616.600000, 231787.000000 ], [ 597673.100000, 231832.900000 ], [ 597743.900000, 231876.100000 ], [ 597807.000000, 231897.300000 ], [ 597771.800000, 231826.300000 ], [ 597775.500000, 231809.300000 ], [ 597784.800000, 231801.600000 ], [ 597810.600000, 231797.600000 ], [ 597904.300000, 231820.700000 ], [ 597954.700000, 231821.000000 ], [ 597994.500000, 231829.100000 ], [ 598013.200000, 231835.500000 ], [ 598058.500000, 231867.800000 ], [ 598098.300000, 231877.800000 ], [ 598113.000000, 231877.800000 ], [ 598117.400000, 231868.300000 ], [ 598134.200000, 231859.800000 ], [ 598264.400000, 231868.500000 ], [ 598431.400000, 231956.300000 ], [ 598617.700000, 231959.800000 ], [ 598718.200000, 231998.300000 ], [ 598779.200000, 231990.000000 ], [ 598851.100000, 232019.900000 ], [ 598906.200000, 232057.500000 ], [ 598930.400000, 232067.300000 ], [ 598995.400000, 232061.000000 ], [ 599008.700000, 232082.000000 ], [ 599019.200000, 232117.800000 ], [ 599100.500000, 232180.000000 ], [ 599106.300000, 232190.800000 ], [ 599099.600000, 232213.800000 ], [ 599068.700000, 232249.300000 ], [ 599020.200000, 232281.800000 ], [ 599020.700000, 232290.800000 ], [ 599100.200000, 232282.100000 ], [ 599306.000000, 232229.800000 ], [ 599458.900000, 232252.300000 ], [ 599486.200000, 232240.000000 ], [ 599502.400000, 232239.500000 ], [ 599591.800000, 232275.200000 ], [ 599757.000000, 232357.900000 ], [ 600065.600000, 232535.200000 ], [ 600125.200000, 232555.500000 ], [ 600146.700000, 232549.500000 ], [ 600176.300000, 232492.500000 ], [ 600218.700000, 232459.600000 ], [ 600426.300000, 232403.500000 ], [ 600487.900000, 232402.500000 ], [ 600586.400000, 232363.400000 ], [ 600737.500000, 232531.700000 ], [ 600899.400000, 232650.800000 ], [ 600944.900000, 232669.500000 ], [ 600995.200000, 232679.500000 ], [ 601098.500000, 232671.600000 ], [ 601189.100000, 232622.700000 ], [ 601204.200000, 232610.600000 ], [ 601223.900000, 232554.500000 ], [ 601265.900000, 232536.500000 ], [ 601338.400000, 232467.000000 ], [ 601338.500000, 232483.900000 ], [ 601313.500000, 232551.400000 ], [ 601314.000000, 232565.700000 ], [ 601322.000000, 232569.900000 ], [ 601336.500000, 232564.900000 ], [ 601363.100000, 232536.200000 ], [ 601455.900000, 232484.300000 ], [ 601486.000000, 232483.600000 ], [ 601519.000000, 232471.300000 ], [ 601526.000000, 232474.900000 ], [ 601523.800000, 232486.400000 ], [ 601488.800000, 232508.900000 ], [ 601468.200000, 232560.500000 ], [ 601607.800000, 232522.300000 ], [ 601662.900000, 232517.900000 ], [ 601737.800000, 232537.300000 ], [ 601781.800000, 232564.800000 ], [ 601840.800000, 232628.400000 ], [ 601871.200000, 232639.900000 ], [ 601938.200000, 232643.200000 ], [ 601996.900000, 232638.400000 ], [ 602198.300000, 232703.900000 ], [ 602241.300000, 232709.700000 ], [ 602284.500000, 232703.700000 ], [ 602325.000000, 232711.700000 ], [ 602353.000000, 232720.900000 ], [ 602393.800000, 232754.200000 ], [ 602461.047000, 232777.599000 ], [ 602540.428000, 232788.169000 ], [ 602587.500000, 232787.200000 ], [ 602639.100000, 232803.200000 ], [ 602702.300000, 232788.400000 ], [ 602748.300000, 232792.200000 ], [ 602768.800000, 232803.200000 ], [ 602807.800000, 232860.400000 ], [ 602903.800000, 232895.200000 ], [ 603043.800000, 232895.700000 ], [ 603285.100000, 232955.900000 ], [ 603380.800000, 232967.700000 ], [ 603433.777000, 232982.088000 ], [ 603499.226000, 233029.852000 ], [ 603636.502000, 233084.535000 ], [ 603645.046000, 233093.079000 ], [ 603630.237000, 233235.481000 ], [ 603634.907000, 233245.406000 ], [ 603712.300000, 233208.400000 ], [ 603798.100000, 233193.600000 ], [ 603847.300000, 233195.400000 ], [ 603909.800000, 233251.900000 ], [ 604023.300000, 233276.900000 ], [ 604297.600000, 233356.400000 ], [ 604375.300000, 233406.900000 ], [ 604478.600000, 233461.600000 ], [ 604865.800000, 233581.600000 ], [ 605157.812000, 233689.595000 ], [ 605254.100000, 233742.300000 ], [ 605565.100000, 233871.400000 ], [ 605783.100000, 233970.400000 ], [ 605938.300000, 234002.300000 ], [ 605976.100000, 233991.300000 ], [ 606049.600000, 233998.800000 ], [ 606109.200000, 233973.900000 ], [ 606155.500000, 233990.200000 ], [ 606190.200000, 234010.200000 ], [ 606234.700000, 234050.300000 ], [ 606277.700000, 234109.100000 ], [ 606277.000000, 234140.800000 ], [ 606299.000000, 234153.200000 ], [ 606346.200000, 234214.400000 ], [ 606426.000000, 234265.800000 ], [ 606480.700000, 234330.300000 ], [ 606585.000000, 234424.200000 ], [ 606650.700000, 234461.500000 ], [ 606683.000000, 234472.300000 ], [ 606696.500000, 234492.800000 ], [ 606736.600000, 234520.500000 ], [ 606829.300000, 234560.500000 ], [ 606894.800000, 234598.700000 ], [ 606971.100000, 234659.100000 ], [ 607067.200000, 234707.600000 ], [ 607134.200000, 234751.700000 ], [ 607202.200000, 234832.700000 ], [ 607249.500000, 234866.300000 ], [ 607635.400000, 235032.100000 ], [ 607666.300000, 235012.600000 ], [ 607690.800000, 234981.400000 ], [ 607712.100000, 234908.600000 ], [ 607712.300000, 234877.400000 ], [ 607701.100000, 234826.100000 ], [ 607708.600000, 234794.900000 ], [ 607698.100000, 234784.100000 ], [ 607650.300000, 234775.100000 ], [ 607628.000000, 234756.900000 ], [ 607620.800000, 234735.100000 ], [ 607628.800000, 234688.600000 ], [ 607602.800000, 234638.900000 ], [ 607607.600000, 234626.100000 ], [ 607621.600000, 234625.100000 ], [ 607673.300000, 234683.900000 ], [ 607692.600000, 234690.100000 ], [ 607702.800000, 234682.400000 ], [ 607702.100000, 234654.600000 ], [ 607662.600000, 234576.600000 ], [ 607663.800000, 234559.900000 ], [ 607674.100000, 234550.900000 ], [ 607772.600000, 234592.000000 ], [ 607811.800000, 234630.600000 ], [ 607966.100000, 234601.100000 ], [ 607994.800000, 234584.600000 ], [ 608016.300000, 234582.400000 ], [ 608076.600000, 234591.400000 ], [ 608160.800000, 234624.600000 ], [ 608223.100000, 234679.900000 ], [ 608286.100000, 234668.900000 ], [ 608406.600000, 234687.100000 ], [ 608498.800000, 234672.900000 ], [ 608508.100000, 234683.400000 ], [ 608494.800000, 234727.600000 ], [ 608525.800000, 234752.100000 ], [ 608596.100000, 234778.600000 ], [ 608614.300000, 234775.600000 ], [ 608650.800000, 234735.400000 ], [ 608754.100000, 234701.900000 ], [ 608760.300000, 234684.900000 ], [ 608749.800000, 234657.400000 ], [ 608753.300000, 234646.100000 ], [ 608818.800000, 234622.600000 ], [ 608835.300000, 234563.900000 ], [ 608882.100000, 234517.400000 ], [ 608956.800000, 234499.600000 ], [ 608996.600000, 234478.400000 ], [ 609010.100000, 234459.900000 ], [ 609019.300000, 234413.900000 ], [ 609058.800000, 234379.100000 ], [ 609071.800000, 234380.900000 ], [ 609093.600000, 234400.100000 ], [ 609171.300000, 234434.600000 ], [ 609208.100000, 234533.600000 ], [ 609288.100000, 234589.900000 ], [ 609332.100000, 234599.600000 ], [ 609409.300000, 234587.900000 ], [ 609429.400000, 234601.600000 ], [ 609442.200000, 234572.600000 ], [ 609412.500000, 234548.600000 ], [ 609349.500000, 234529.400000 ], [ 609314.200000, 234502.100000 ], [ 609297.700000, 234475.100000 ], [ 609270.700000, 234383.100000 ], [ 609201.500000, 234325.100000 ], [ 609195.200000, 234303.900000 ], [ 609204.200000, 234294.400000 ], [ 609243.200000, 234319.900000 ], [ 609292.500000, 234330.600000 ], [ 609357.200000, 234359.900000 ], [ 609366.900000, 234355.200000 ], [ 609363.000000, 234339.600000 ], [ 609275.200000, 234268.900000 ], [ 609218.000000, 234187.900000 ], [ 609137.000000, 234140.100000 ], [ 609128.200000, 234126.900000 ], [ 609075.600000, 234101.900000 ], [ 609053.500000, 234037.500000 ], [ 609032.000000, 233995.700000 ], [ 608990.700000, 233963.400000 ], [ 608964.000000, 233929.900000 ], [ 608929.600000, 233911.000000 ], [ 608875.200000, 233825.600000 ], [ 608872.000000, 233783.100000 ], [ 608911.000000, 233725.600000 ], [ 608932.000000, 233681.900000 ], [ 608996.500000, 233586.900000 ], [ 609031.900000, 233557.200000 ], [ 609047.500000, 233552.400000 ], [ 609063.300000, 233515.400000 ], [ 609072.600000, 233393.100000 ], [ 609103.700000, 233294.100000 ], [ 609096.500000, 233229.100000 ], [ 609080.200000, 233183.100000 ], [ 609038.500000, 233155.400000 ], [ 608936.200000, 233128.400000 ], [ 608906.700000, 233113.400000 ], [ 608880.500000, 233042.900000 ], [ 608781.200000, 232957.900000 ], [ 608738.200000, 232907.600000 ], [ 608727.000000, 232879.100000 ], [ 608718.000000, 232822.400000 ], [ 608693.000000, 232804.400000 ], [ 608638.500000, 232796.100000 ], [ 608607.500000, 232780.400000 ], [ 608535.000000, 232699.400000 ], [ 608487.700000, 232635.400000 ], [ 608429.500000, 232530.900000 ], [ 608404.000000, 232500.100000 ], [ 608364.700000, 232464.400000 ], [ 608252.500000, 232393.100000 ], [ 608099.700000, 232258.600000 ], [ 608016.700000, 232214.600000 ], [ 607867.000000, 232102.400000 ], [ 607803.700000, 232023.100000 ], [ 607737.200000, 231960.600000 ], [ 607671.500000, 231872.500000 ], [ 607717.200000, 231784.400000 ], [ 607722.500000, 231637.100000 ], [ 607731.000000, 231587.900000 ], [ 607781.000000, 231489.900000 ], [ 607809.000000, 231376.600000 ], [ 607842.200000, 231286.900000 ], [ 607885.500000, 231230.900000 ], [ 607942.302000, 231206.919000 ], [ 607958.200000, 231191.100000 ], [ 608074.600000, 231055.400000 ], [ 608119.100000, 230965.900000 ], [ 608122.900000, 230930.100000 ], [ 608118.600000, 230892.400000 ], [ 608068.400000, 230704.100000 ], [ 608043.395000, 230680.014000 ], [ 607993.614000, 230647.848000 ], [ 607984.500000, 230631.600000 ], [ 607977.100000, 230581.400000 ], [ 607938.900000, 230525.600000 ], [ 607943.068000, 230440.303000 ], [ 607938.600000, 230426.600000 ], [ 607864.400000, 230322.100000 ], [ 607869.900000, 230302.900000 ], [ 607915.200000, 230277.300000 ], [ 607949.961000, 230248.075000 ], [ 607938.473000, 230141.621000 ], [ 607947.000000, 230134.400000 ], [ 607921.991000, 230028.056000 ], [ 607917.300000, 229965.600000 ], [ 607940.000000, 229893.100000 ], [ 607944.300000, 229859.600000 ], [ 607895.500000, 229614.900000 ], [ 607890.300000, 229409.900000 ], [ 607827.000000, 229254.200000 ], [ 607908.100000, 229212.100000 ], [ 607936.600000, 229186.600000 ], [ 608041.900000, 229033.600000 ], [ 608172.200000, 228875.800000 ], [ 608272.000000, 228741.600000 ], [ 608284.000000, 228734.500000 ], [ 608380.900000, 228623.500000 ], [ 608363.500000, 228587.000000 ], [ 608343.500000, 228566.000000 ], [ 608300.200000, 228538.800000 ], [ 608250.100000, 228518.900000 ], [ 607956.400000, 228517.900000 ], [ 607604.500000, 228465.700000 ], [ 607642.600000, 228334.500000 ], [ 607812.200000, 228187.200000 ], [ 607853.000000, 228176.800000 ] ] } } +{ "type": "Feature", "properties": { "FID": 5.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 561800.138, 205292.135 ], [ 561886.1, 205371.2 ], [ 561874.586, 205381.519 ], [ 561680.8, 205347.8 ], [ 561546.5, 205341.5 ], [ 561423.485, 205313.388 ], [ 561446.1, 205349.0 ], [ 561471.513, 205357.967 ], [ 561441.6, 205404.6 ], [ 561438.5, 205465.0 ], [ 561608.8, 205548.6 ], [ 561699.1, 205647.8 ], [ 561753.3, 205673.1 ], [ 561792.8, 205700.3 ], [ 561825.3, 205746.1 ], [ 561863.1, 205768.3 ], [ 561903.8, 205811.0 ], [ 561940.5, 205834.8 ], [ 561970.874, 205871.152 ], [ 562046.7, 205924.7 ], [ 562207.276, 206076.274 ], [ 562255.486, 206134.528 ], [ 562297.0, 206163.5 ], [ 562299.3, 206185.2 ], [ 562262.8, 206282.1 ], [ 562344.8, 206330.9 ], [ 562467.6, 206484.9 ], [ 562529.3, 206543.6 ], [ 562535.3, 206575.1 ], [ 562521.2, 206596.6 ], [ 562682.4, 206677.1 ], [ 562725.7, 206711.3 ], [ 562893.9, 206797.1 ], [ 562982.2, 206811.8 ], [ 563163.2, 206915.3 ], [ 563176.4, 206941.6 ], [ 563223.4, 206968.1 ], [ 563330.2, 207063.8 ], [ 563395.4, 207069.3 ], [ 563469.9, 207099.6 ], [ 563530.4, 207112.1 ], [ 563653.9, 207156.1 ], [ 563728.2, 207169.1 ], [ 563886.9, 207249.2 ], [ 563975.2, 207274.9 ], [ 564044.0, 207282.4 ], [ 564258.2, 207366.4 ], [ 564332.0, 207439.2 ], [ 564466.2, 207540.7 ], [ 564572.0, 207602.7 ], [ 564656.2, 207671.2 ], [ 564686.2, 207704.7 ], [ 564740.5, 207726.9 ], [ 564799.2, 207727.2 ], [ 564829.0, 207739.9 ], [ 564884.5, 207800.7 ], [ 564922.3, 207826.1 ], [ 565030.3, 207931.4 ], [ 565082.6, 207972.1 ], [ 565107.8, 207983.4 ], [ 565128.8, 207984.1 ], [ 565148.1, 207968.9 ], [ 565153.7, 207952.7 ], [ 565216.2, 208084.0 ], [ 565294.2, 208167.5 ], [ 565371.1, 208266.0 ], [ 565483.3, 208391.2 ], [ 565616.1, 208576.5 ], [ 565714.1, 208675.5 ], [ 565754.4, 208735.1 ], [ 565772.7, 208862.4 ], [ 565822.0, 209001.8 ], [ 565846.0, 209103.1 ], [ 565969.0, 209330.1 ], [ 566023.7, 209412.6 ], [ 566026.5, 209443.3 ], [ 566021.2, 209467.3 ], [ 565984.0, 209554.6 ], [ 565987.0, 209573.8 ], [ 566008.0, 209616.1 ], [ 566005.5, 209655.6 ], [ 566010.7, 209683.6 ], [ 566043.5, 209730.6 ], [ 566116.2, 209789.6 ], [ 566209.7, 209843.9 ], [ 566263.4, 209846.9 ], [ 566333.9, 209980.1 ], [ 566407.4, 210078.6 ], [ 566421.1, 210171.3 ], [ 566478.1, 210305.3 ], [ 566499.6, 210382.6 ], [ 566510.9, 210405.1 ], [ 566550.9, 210446.1 ], [ 566628.2, 210582.0 ], [ 566623.5, 210599.1 ], [ 566627.5, 210652.8 ], [ 566638.2, 210698.1 ], [ 566701.5, 210798.3 ], [ 566773.2, 210873.1 ], [ 566919.5, 210998.9 ], [ 566943.7, 211042.6 ], [ 566968.5, 211116.1 ], [ 567028.0, 211180.4 ], [ 567084.0, 211258.6 ], [ 567247.7, 211427.6 ], [ 567262.0, 211440.4 ], [ 567280.7, 211442.6 ], [ 567332.7, 211515.4 ], [ 567358.2, 211606.9 ], [ 567380.7, 211649.6 ], [ 567435.7, 211694.9 ], [ 567548.4, 211745.1 ], [ 567560.6, 211757.6 ], [ 567591.8, 211813.5 ], [ 567598.9, 211861.6 ], [ 567617.4, 211910.4 ], [ 567688.1, 212063.8 ], [ 567765.8, 212204.4 ], [ 567779.7, 212239.8 ], [ 567826.8, 212523.0 ], [ 567843.9, 212562.2 ], [ 567885.6, 212626.0 ], [ 567903.7, 212734.7 ], [ 567950.7, 212789.5 ], [ 568002.0, 212885.0 ], [ 568087.7, 212979.5 ], [ 568127.9, 213107.1 ], [ 568222.1, 213275.1 ], [ 568245.8, 213379.2 ], [ 568262.4, 213423.7 ], [ 568365.2, 213582.6 ], [ 568371.0, 213685.2 ], [ 568396.8, 213774.0 ], [ 568416.2, 213818.8 ], [ 568541.1, 213993.3 ], [ 568611.0, 214140.7 ], [ 568653.9, 214262.5 ], [ 568695.4, 214415.8 ], [ 568750.0, 214513.0 ], [ 568685.8, 214571.5 ], [ 568670.7, 214667.8 ], [ 568685.5, 214731.9 ], [ 568682.2, 214761.0 ], [ 568564.2, 215185.9 ], [ 568556.5, 215264.5 ], [ 568520.5, 215423.7 ], [ 568510.0, 215504.0 ], [ 568456.3, 215657.3 ], [ 568442.6, 215784.4 ], [ 568447.2, 215923.7 ], [ 568438.8, 216023.0 ], [ 568465.9, 216121.5 ], [ 568516.4, 216220.2 ], [ 568631.2, 216365.7 ], [ 568694.6, 216424.4 ], [ 568746.2, 216433.6 ], [ 568863.2, 216468.9 ], [ 569002.9, 216536.6 ], [ 569256.9, 216617.1 ], [ 569328.7, 216657.9 ], [ 569434.4, 216739.1 ], [ 569478.4, 216765.9 ], [ 569634.1, 216800.9 ], [ 569717.7, 216838.3 ], [ 569749.9, 216838.8 ], [ 569764.9, 216918.6 ], [ 569799.1, 216948.4 ], [ 569908.0, 216957.1 ], [ 570010.8, 216978.6 ], [ 570206.6, 217057.6 ], [ 570324.6, 217119.5 ], [ 570375.5, 217152.2 ], [ 570453.1, 217222.2 ], [ 570589.9, 217362.5 ], [ 570653.1, 217451.4 ], [ 570713.7, 217503.9 ], [ 570807.6, 217546.9 ], [ 570868.3, 217586.9 ], [ 570901.3, 217623.6 ], [ 570951.3, 217651.9 ], [ 571103.4, 217707.5 ], [ 571150.0, 217743.1 ], [ 571212.7, 217746.9 ], [ 571336.3, 217767.7 ], [ 571577.9, 217821.6 ], [ 571660.6, 217864.1 ], [ 571742.4, 217849.1 ], [ 571833.1, 217847.2 ], [ 571887.1, 217863.6 ], [ 571973.3, 217901.1 ], [ 572156.7, 217935.6 ], [ 572207.1, 217955.4 ], [ 572242.9, 217982.1 ], [ 572297.1, 217860.2 ], [ 572312.8, 217835.2 ], [ 572346.1, 217802.2 ], [ 572389.8, 217794.3 ], [ 572409.3, 217812.8 ], [ 572429.8, 217819.5 ], [ 572513.4, 217826.7 ], [ 572756.7, 217964.4 ], [ 572826.2, 218019.9 ], [ 572860.0, 218055.2 ], [ 572878.0, 218063.6 ], [ 572904.6, 218016.6 ], [ 572958.8, 218046.3 ], [ 573005.7, 218098.8 ], [ 573038.8, 218117.5 ], [ 573040.1, 218127.2 ], [ 573123.5, 218238.0 ], [ 573286.8, 218344.0 ], [ 573354.6, 218398.2 ], [ 573365.3, 218431.5 ], [ 573437.3, 218506.5 ], [ 573521.7, 218660.8 ], [ 573539.2, 218684.0 ], [ 573618.6, 218754.6 ], [ 573658.957, 218818.928 ], [ 573640.067, 218898.536 ], [ 573599.4, 218960.1 ], [ 573668.5, 218999.3 ], [ 573759.1, 219069.9 ], [ 573817.9, 219097.1 ], [ 573891.6, 219121.0 ], [ 573979.9, 219207.9 ], [ 574203.7, 219399.2 ], [ 574412.1, 219493.2 ], [ 574488.9, 219542.5 ], [ 574555.2, 219602.5 ], [ 574601.4, 219659.4 ], [ 574722.1, 219779.7 ], [ 574917.1, 220028.5 ], [ 574973.9, 220135.3 ], [ 575034.5, 220213.9 ], [ 575025.4, 220295.5 ], [ 575001.6, 220416.0 ], [ 575000.6, 220484.7 ], [ 575086.5, 220599.7 ], [ 575171.4, 220742.5 ], [ 575199.9, 220837.2 ], [ 575218.8, 220887.3 ], [ 575233.6, 220908.6 ], [ 575304.7, 220984.0 ], [ 575418.7, 221025.7 ], [ 575460.9, 221047.6 ], [ 575620.4, 221179.9 ], [ 575702.4, 221230.4 ], [ 575751.7, 221289.4 ], [ 575858.7, 221384.4 ], [ 575985.2, 221534.6 ], [ 576004.9, 221590.4 ], [ 576007.2, 221659.6 ], [ 575961.2, 221710.9 ], [ 575967.4, 221774.9 ], [ 575965.4, 221806.9 ], [ 575954.695, 221832.52 ], [ 576001.515, 221848.329 ], [ 576011.852, 221816.102 ], [ 576336.552, 221819.142 ], [ 576362.699, 221828.263 ], [ 576623.4, 222010.5 ], [ 576671.0, 222037.1 ], [ 576765.1, 222065.0 ], [ 576863.2, 222121.7 ], [ 576894.4, 222124.2 ], [ 576808.2, 222170.0 ], [ 576799.4, 222177.2 ], [ 576799.2, 222189.5 ], [ 576878.8, 222223.5 ], [ 576938.0, 222262.9 ], [ 576948.1, 222405.8 ], [ 576954.5, 222428.5 ], [ 577091.6, 222682.1 ], [ 577162.2, 222843.7 ], [ 577232.8, 222863.0 ], [ 577324.5, 222922.3 ], [ 577399.2, 222961.6 ], [ 577482.3, 223043.3 ], [ 577536.0, 223080.9 ], [ 577636.8, 223175.9 ], [ 577719.0, 223221.4 ], [ 577766.8, 223261.4 ], [ 577982.3, 223408.0 ], [ 577986.7, 223427.2 ], [ 577981.7, 223435.3 ], [ 577879.9, 223464.1 ], [ 577769.9, 223533.6 ], [ 577766.4, 223550.9 ], [ 577870.4, 223713.4 ], [ 577914.6, 223769.7 ], [ 578146.7, 223971.5 ], [ 578151.7, 223992.7 ], [ 578140.81, 224009.24 ], [ 578092.7, 224014.5 ], [ 578031.2, 224005.7 ], [ 577876.7, 223963.9 ], [ 577774.9, 223944.2 ], [ 577551.1, 223837.4 ], [ 577353.0, 223760.0 ], [ 577276.5, 223757.3 ], [ 577195.6, 223771.7 ], [ 577159.6, 223788.3 ], [ 577125.4, 223824.1 ], [ 577122.3, 223876.3 ], [ 577098.5, 223940.1 ], [ 577079.9, 224016.6 ], [ 577004.9, 224149.1 ], [ 577003.4, 224227.1 ], [ 576960.0, 224342.5 ], [ 576966.6, 224372.1 ], [ 577039.6, 224417.6 ], [ 577074.0, 224455.2 ], [ 577107.9, 224479.8 ], [ 577131.7, 224546.4 ], [ 577168.0, 224540.5 ], [ 577312.0, 224541.3 ], [ 577399.5, 224514.5 ], [ 577479.9, 224535.4 ], [ 577550.7, 224567.0 ], [ 577634.9, 224615.9 ], [ 577713.7, 224682.5 ], [ 577796.2, 224719.6 ], [ 577890.2, 224750.4 ], [ 578092.4, 224843.9 ], [ 578338.1, 224932.7 ], [ 578522.7, 224978.3 ], [ 578625.7, 225012.8 ], [ 579041.0, 225210.5 ], [ 579066.5, 225227.5 ], [ 579097.7, 225265.3 ], [ 579114.8, 225302.4 ], [ 578991.4, 225358.5 ], [ 578955.4, 225372.4 ], [ 578879.0, 225374.3 ], [ 578775.3, 225390.6 ], [ 578751.8, 225418.6 ], [ 578736.3, 225425.6 ], [ 578615.0, 225429.8 ], [ 578410.5, 225364.3 ], [ 578374.3, 225368.8 ], [ 578323.8, 225399.5 ], [ 578342.3, 225393.3 ], [ 578381.3, 225392.8 ], [ 578404.8, 225402.8 ], [ 578418.5, 225414.3 ], [ 578466.5, 225495.6 ], [ 578532.8, 225551.1 ], [ 578621.3, 225584.1 ], [ 578684.3, 225593.8 ], [ 578906.3, 225656.3 ], [ 578979.8, 225664.6 ], [ 579030.8, 225651.6 ], [ 579106.8, 225666.1 ], [ 579156.3, 225667.1 ], [ 579223.8, 225685.1 ], [ 579346.3, 225693.6 ], [ 579367.0, 225708.6 ], [ 579390.5, 225746.3 ], [ 579478.8, 225769.6 ], [ 579607.9, 225869.5 ], [ 579730.0, 225918.6 ], [ 579805.5, 225909.6 ], [ 579826.3, 225915.6 ], [ 579832.8, 225930.9 ], [ 579828.8, 225941.6 ], [ 579743.3, 225956.6 ], [ 579728.8, 225980.6 ], [ 579719.0, 226016.1 ], [ 579707.5, 226027.1 ], [ 579557.0, 226058.6 ], [ 579487.3, 226052.1 ], [ 579432.5, 226085.9 ], [ 579408.0, 226091.4 ], [ 579369.8, 226087.1 ], [ 579357.0, 226096.2 ], [ 579358.0, 226111.1 ], [ 579371.3, 226124.1 ], [ 579444.8, 226124.9 ], [ 579475.0, 226131.4 ], [ 579580.2, 226200.0 ], [ 579606.7, 226292.8 ], [ 579631.4, 226348.6 ], [ 579649.1, 226375.5 ], [ 579730.2, 226446.3 ], [ 579742.5, 226470.7 ], [ 579756.0, 226561.9 ], [ 579766.4, 226729.2 ], [ 579730.3, 226743.0 ], [ 579546.2, 226769.9 ], [ 579505.0, 226763.8 ], [ 579371.9, 226714.2 ], [ 579352.1, 226715.7 ], [ 579333.0, 226727.4 ], [ 579302.9, 226762.0 ], [ 579282.6, 226799.5 ], [ 579259.3, 226899.9 ], [ 579263.2, 226932.5 ], [ 579284.1, 226997.7 ], [ 579281.6, 227063.4 ], [ 579226.7, 227141.2 ], [ 579247.2, 227134.8 ], [ 579299.7, 227138.5 ], [ 579605.4, 227191.0 ], [ 579776.5, 227196.4 ], [ 579857.7, 227179.9 ], [ 580013.2, 227119.9 ], [ 580125.7, 227049.4 ], [ 580132.2, 227047.7 ], [ 580175.0, 227077.0 ], [ 580255.5, 227204.4 ], [ 580467.6, 227320.1 ], [ 580542.0, 227353.2 ], [ 580604.9, 227407.3 ], [ 580665.578, 227470.364 ], [ 580662.659, 227485.213 ], [ 580685.4, 227497.2 ], [ 580695.4, 227548.9 ], [ 580689.2, 227576.8 ], [ 580671.677, 227596.021 ], [ 580697.4, 227608.3 ], [ 580721.6, 227608.7 ], [ 580868.4, 227744.8 ], [ 581044.1, 227865.6 ], [ 581209.9, 227947.0 ], [ 581231.6, 227966.9 ], [ 581261.5, 228010.8 ], [ 581262.4, 228040.9 ], [ 581279.5, 228040.8 ], [ 581282.9, 228059.3 ], [ 581287.077, 228109.396 ], [ 581275.5, 228158.5 ], [ 581272.6, 228236.3 ], [ 581249.1, 228357.2 ], [ 581258.7, 228434.1 ], [ 581276.131, 228433.788 ], [ 581301.947, 228488.519 ], [ 581289.6, 228503.3 ], [ 581309.4, 228507.8 ], [ 581321.3, 228522.8 ], [ 581353.2, 228585.9 ], [ 581421.7, 228682.0 ], [ 581440.4, 228639.3 ], [ 581453.5, 228625.6 ], [ 581492.2, 228623.7 ], [ 581566.6, 228656.8 ], [ 581602.9, 228691.2 ], [ 581639.1, 228739.3 ], [ 581676.6, 228807.5 ], [ 581706.6, 228885.6 ], [ 581732.9, 228913.1 ], [ 581764.7, 228923.7 ], [ 581868.5, 228928.7 ], [ 581879.7, 228924.3 ], [ 581887.2, 228910.6 ], [ 581886.6, 228894.3 ], [ 581840.4, 228831.2 ], [ 581809.7, 228738.7 ], [ 581810.4, 228700.0 ], [ 581822.9, 228643.1 ], [ 581827.9, 228629.3 ], [ 581849.4, 228623.7 ], [ 581921.6, 228656.2 ], [ 582000.4, 228707.5 ], [ 582021.629, 228704.305 ], [ 582074.2, 228776.1 ], [ 582108.4, 228804.9 ], [ 582161.7, 228831.6 ], [ 582256.8, 228874.1 ], [ 582324.6, 228874.8 ], [ 582338.3, 228867.9 ], [ 582323.5, 228841.2 ], [ 582297.5, 228819.9 ], [ 582279.1, 228792.6 ], [ 582247.4, 228676.6 ], [ 582241.6, 228435.0 ], [ 582210.4, 228246.8 ], [ 582212.9, 228216.2 ], [ 582270.4, 228094.9 ], [ 582273.5, 228074.9 ], [ 582265.4, 227949.9 ], [ 582239.1, 227861.8 ], [ 582245.0, 227828.7 ], [ 582307.2, 227852.4 ], [ 582344.1, 227874.3 ], [ 582395.4, 227918.7 ], [ 582462.9, 228015.6 ], [ 582526.6, 228069.9 ], [ 582567.9, 228126.2 ], [ 582612.9, 228190.6 ], [ 582675.4, 228306.2 ], [ 582728.5, 228339.3 ], [ 582797.2, 228401.8 ], [ 582826.0, 228416.2 ], [ 582989.1, 228538.1 ], [ 583053.5, 228550.6 ], [ 583118.0, 228543.1 ], [ 583221.2, 228574.1 ], [ 583232.2, 228568.3 ], [ 583236.1, 228527.8 ], [ 583254.9, 228499.7 ], [ 583298.716, 228447.146 ], [ 583319.9, 228441.0 ], [ 583484.9, 228525.3 ], [ 583538.0, 228545.3 ], [ 583553.0, 228534.7 ], [ 583554.2, 228511.6 ], [ 583578.0, 228474.1 ], [ 583598.0, 228459.1 ], [ 583650.5, 228437.8 ], [ 583739.9, 228452.2 ], [ 583799.9, 228449.7 ], [ 583853.9, 228435.0 ], [ 583898.1, 228395.1 ], [ 583941.6, 228396.3 ], [ 583994.6, 228421.6 ], [ 584079.7, 228486.1 ], [ 584368.5, 228578.6 ], [ 584423.5, 228601.7 ], [ 584467.2, 228645.5 ], [ 584491.0, 228679.2 ], [ 584588.5, 228753.6 ], [ 584640.4, 228776.1 ], [ 584673.5, 228816.7 ], [ 584701.0, 228838.6 ], [ 584732.2, 228883.0 ], [ 584784.1, 228925.5 ], [ 584801.6, 228951.7 ], [ 584857.2, 228978.9 ], [ 584843.5, 229055.0 ], [ 584872.6, 229103.9 ], [ 584934.1, 229178.6 ], [ 584989.4, 229199.0 ], [ 585021.7, 229218.6 ], [ 585088.7, 229233.4 ], [ 585131.6, 229231.3 ], [ 585284.9, 229260.0 ], [ 585441.5, 229264.9 ], [ 585537.2, 229327.0 ], [ 585610.2, 229355.9 ], [ 586068.0, 229458.4 ], [ 586178.7, 229465.4 ], [ 586227.0, 229493.7 ], [ 586281.0, 229507.9 ], [ 586313.9, 229459.9 ], [ 586380.9, 229399.3 ], [ 586437.7, 229369.3 ], [ 586493.7, 229352.6 ], [ 586550.2, 229350.6 ], [ 586725.7, 229389.2 ], [ 586811.1, 229388.9 ], [ 586910.8, 229411.2 ], [ 587046.9, 229424.7 ], [ 587097.7, 229437.6 ], [ 587208.2, 229452.4 ], [ 587337.2, 229491.2 ], [ 587391.4, 229463.4 ], [ 587441.2, 229453.1 ], [ 587570.4, 229406.9 ], [ 587612.4, 229378.4 ], [ 587674.7, 229323.1 ], [ 587698.4, 229320.3 ], [ 587805.4, 229399.7 ], [ 587886.2, 229449.8 ], [ 587981.9, 229532.9 ], [ 588050.2, 229567.9 ], [ 588109.4, 229614.0 ], [ 588402.9, 229702.5 ], [ 588642.4, 229706.7 ], [ 588755.7, 229734.6 ], [ 588771.4, 229725.6 ], [ 588772.8, 229705.6 ], [ 588922.6, 229771.9 ], [ 589000.9, 229794.7 ], [ 589057.9, 229801.7 ], [ 589189.1, 229782.2 ], [ 589231.4, 229782.7 ], [ 589313.6, 229816.9 ], [ 589389.4, 229808.4 ], [ 589409.6, 229811.9 ], [ 589602.9, 229867.2 ], [ 589674.9, 229875.7 ], [ 589762.9, 229904.4 ], [ 589779.4, 229901.9 ], [ 589789.4, 229891.2 ], [ 589779.6, 229867.4 ], [ 589783.6, 229859.9 ], [ 589943.1, 229826.2 ], [ 590012.4, 229831.4 ], [ 590104.1, 229814.6 ], [ 590238.9, 229768.4 ], [ 590310.9, 229766.8 ], [ 590465.4, 229796.5 ], [ 590609.4, 229836.8 ], [ 590765.9, 229852.0 ], [ 590883.1, 229904.3 ], [ 591004.8, 229940.8 ], [ 591018.6, 229836.0 ], [ 591030.6, 229824.5 ], [ 591082.9, 229812.0 ], [ 591073.3, 229600.8 ], [ 591222.6, 229632.8 ], [ 591329.6, 229681.3 ], [ 591421.0, 229679.8 ], [ 591530.5, 229715.0 ], [ 591547.5, 229708.0 ], [ 591556.5, 229694.3 ], [ 591593.7, 229586.0 ], [ 591628.2, 229507.3 ], [ 591682.2, 229510.3 ], [ 591803.7, 229540.0 ], [ 591874.5, 229504.5 ], [ 591923.0, 229513.8 ], [ 592030.7, 229508.8 ], [ 592069.7, 229485.0 ], [ 592080.0, 229472.3 ], [ 592084.3, 229452.4 ], [ 592157.2, 229554.8 ], [ 592179.0, 229630.5 ], [ 592195.7, 229789.3 ], [ 592182.7, 229845.0 ], [ 592157.5, 229887.0 ], [ 592229.5, 229930.5 ], [ 592604.7, 229968.5 ], [ 592721.7, 229968.3 ], [ 593089.4, 230035.3 ], [ 593262.2, 230103.9 ], [ 593312.9, 230111.4 ], [ 593355.7, 230109.4 ], [ 593559.5, 230142.2 ], [ 593602.2, 230172.7 ], [ 593659.4, 230230.1 ], [ 593695.2, 230284.6 ], [ 593748.3, 230320.7 ], [ 593850.0, 230342.2 ], [ 594024.6, 230417.2 ], [ 594049.0, 230375.4 ], [ 594122.9, 230319.0 ], [ 594328.5, 230230.9 ], [ 594384.0, 230192.8 ], [ 594414.5, 230205.6 ], [ 594440.8, 230228.2 ], [ 594467.5, 230274.7 ], [ 594502.7, 230290.6 ], [ 594676.2, 230297.0 ], [ 594835.3, 230292.3 ], [ 594886.3, 230300.3 ], [ 594949.9, 230334.7 ], [ 595288.5, 230626.6 ], [ 595474.0, 230690.3 ], [ 595671.5, 230780.6 ], [ 595826.9, 230812.4 ], [ 595859.5, 230824.5 ], [ 596184.0, 230994.1 ], [ 596225.5, 231011.6 ], [ 596278.4, 231024.3 ], [ 596406.8, 231081.3 ], [ 596511.7, 231157.0 ], [ 596568.2, 231186.7 ], [ 596713.2, 231238.1 ], [ 596765.3, 231246.6 ], [ 596807.1, 231244.4 ], [ 596813.3, 231260.0 ], [ 596826.8, 231271.5 ], [ 596915.5, 231316.8 ], [ 596959.5, 231346.5 ], [ 596993.3, 231377.5 ], [ 597026.2, 231427.1 ], [ 597122.2, 231477.0 ], [ 597232.7, 231513.6 ], [ 597307.4, 231558.9 ], [ 597349.1, 231598.1 ], [ 597413.1, 231688.1 ], [ 597422.2, 231709.7 ], [ 597455.7, 231734.0 ], [ 597465.6, 231727.1 ], [ 597479.8, 231733.8 ], [ 597522.3, 231736.4 ], [ 597557.7, 231772.3 ], [ 597616.6, 231787.0 ], [ 597673.1, 231832.9 ], [ 597743.9, 231876.1 ], [ 597807.0, 231897.3 ], [ 597771.8, 231826.3 ], [ 597775.5, 231809.3 ], [ 597784.8, 231801.6 ], [ 597810.6, 231797.6 ], [ 597904.3, 231820.7 ], [ 597954.7, 231821.0 ], [ 597994.5, 231829.1 ], [ 598013.2, 231835.5 ], [ 598058.5, 231867.8 ], [ 598098.3, 231877.8 ], [ 598113.0, 231877.8 ], [ 598117.4, 231868.3 ], [ 598134.2, 231859.8 ], [ 598264.4, 231868.5 ], [ 598431.4, 231956.3 ], [ 598617.7, 231959.8 ], [ 598718.2, 231998.3 ], [ 598779.2, 231990.0 ], [ 598851.1, 232019.9 ], [ 598906.2, 232057.5 ], [ 598930.4, 232067.3 ], [ 598995.4, 232061.0 ], [ 599008.7, 232082.0 ], [ 599019.2, 232117.8 ], [ 599100.5, 232180.0 ], [ 599106.3, 232190.8 ], [ 599099.6, 232213.8 ], [ 599068.7, 232249.3 ], [ 599020.2, 232281.8 ], [ 599020.7, 232290.8 ], [ 599100.2, 232282.1 ], [ 599306.0, 232229.8 ], [ 599458.9, 232252.3 ], [ 599486.2, 232240.0 ], [ 599502.4, 232239.5 ], [ 599591.8, 232275.2 ], [ 599757.0, 232357.9 ], [ 600065.6, 232535.2 ], [ 600125.2, 232555.5 ], [ 600146.7, 232549.5 ], [ 600176.3, 232492.5 ], [ 600218.7, 232459.6 ], [ 600426.3, 232403.5 ], [ 600487.9, 232402.5 ], [ 600586.4, 232363.4 ], [ 600737.5, 232531.7 ], [ 600899.4, 232650.8 ], [ 600944.9, 232669.5 ], [ 600995.2, 232679.5 ], [ 601098.5, 232671.6 ], [ 601189.1, 232622.7 ], [ 601204.2, 232610.6 ], [ 601223.9, 232554.5 ], [ 601265.9, 232536.5 ], [ 601338.4, 232467.0 ], [ 601338.5, 232483.9 ], [ 601313.5, 232551.4 ], [ 601314.0, 232565.7 ], [ 601322.0, 232569.9 ], [ 601336.5, 232564.9 ], [ 601363.1, 232536.2 ], [ 601455.9, 232484.3 ], [ 601486.0, 232483.6 ], [ 601519.0, 232471.3 ], [ 601526.0, 232474.9 ], [ 601523.8, 232486.4 ], [ 601488.8, 232508.9 ], [ 601468.2, 232560.5 ], [ 601607.8, 232522.3 ], [ 601662.9, 232517.9 ], [ 601737.8, 232537.3 ], [ 601781.8, 232564.8 ], [ 601840.8, 232628.4 ], [ 601871.2, 232639.9 ], [ 601938.2, 232643.2 ], [ 601996.9, 232638.4 ], [ 602198.3, 232703.9 ], [ 602241.3, 232709.7 ], [ 602284.5, 232703.7 ], [ 602325.0, 232711.7 ], [ 602353.0, 232720.9 ], [ 602393.8, 232754.2 ], [ 602461.047, 232777.599 ], [ 602540.428, 232788.169 ], [ 602587.5, 232787.2 ], [ 602639.1, 232803.2 ], [ 602702.3, 232788.4 ], [ 602748.3, 232792.2 ], [ 602768.8, 232803.2 ], [ 602807.8, 232860.4 ], [ 602903.8, 232895.2 ], [ 603043.8, 232895.7 ], [ 603285.1, 232955.9 ], [ 603380.8, 232967.7 ], [ 603433.777, 232982.088 ], [ 603499.226, 233029.852 ], [ 603636.502, 233084.535 ], [ 603645.046, 233093.079 ], [ 603630.237, 233235.481 ], [ 603634.907, 233245.406 ], [ 603712.3, 233208.4 ], [ 603798.1, 233193.6 ], [ 603847.3, 233195.4 ], [ 603909.8, 233251.9 ], [ 604023.3, 233276.9 ], [ 604297.6, 233356.4 ], [ 604375.3, 233406.9 ], [ 604478.6, 233461.6 ], [ 604865.8, 233581.6 ], [ 605157.812, 233689.595 ], [ 605254.1, 233742.3 ], [ 605565.1, 233871.4 ], [ 605783.1, 233970.4 ], [ 605938.3, 234002.3 ], [ 605976.1, 233991.3 ], [ 606049.6, 233998.8 ], [ 606109.2, 233973.9 ], [ 606155.5, 233990.2 ], [ 606190.2, 234010.2 ], [ 606234.7, 234050.3 ], [ 606277.7, 234109.1 ], [ 606277.0, 234140.8 ], [ 606299.0, 234153.2 ], [ 606346.2, 234214.4 ], [ 606426.0, 234265.8 ], [ 606480.7, 234330.3 ], [ 606585.0, 234424.2 ], [ 606650.7, 234461.5 ], [ 606683.0, 234472.3 ], [ 606696.5, 234492.8 ], [ 606736.6, 234520.5 ], [ 606829.3, 234560.5 ], [ 606894.8, 234598.7 ], [ 606971.1, 234659.1 ], [ 607067.2, 234707.6 ], [ 607134.2, 234751.7 ], [ 607202.2, 234832.7 ], [ 607249.5, 234866.3 ], [ 607635.4, 235032.1 ], [ 607666.3, 235012.6 ], [ 607690.8, 234981.4 ], [ 607712.1, 234908.6 ], [ 607712.3, 234877.4 ], [ 607701.1, 234826.1 ], [ 607708.6, 234794.9 ], [ 607698.1, 234784.1 ], [ 607650.3, 234775.1 ], [ 607628.0, 234756.9 ], [ 607620.8, 234735.1 ], [ 607628.8, 234688.6 ], [ 607602.8, 234638.9 ], [ 607607.6, 234626.1 ], [ 607621.6, 234625.1 ], [ 607673.3, 234683.9 ], [ 607692.6, 234690.1 ], [ 607702.8, 234682.4 ], [ 607702.1, 234654.6 ], [ 607662.6, 234576.6 ], [ 607663.8, 234559.9 ], [ 607674.1, 234550.9 ], [ 607772.6, 234592.0 ], [ 607811.8, 234630.6 ], [ 607966.1, 234601.1 ], [ 607994.8, 234584.6 ], [ 608016.3, 234582.4 ], [ 608076.6, 234591.4 ], [ 608160.8, 234624.6 ], [ 608223.1, 234679.9 ], [ 608286.1, 234668.9 ], [ 608406.6, 234687.1 ], [ 608498.8, 234672.9 ], [ 608508.1, 234683.4 ], [ 608494.8, 234727.6 ], [ 608525.8, 234752.1 ], [ 608596.1, 234778.6 ], [ 608614.3, 234775.6 ], [ 608650.8, 234735.4 ], [ 608754.1, 234701.9 ], [ 608760.3, 234684.9 ], [ 608749.8, 234657.4 ], [ 608753.3, 234646.1 ], [ 608818.8, 234622.6 ], [ 608835.3, 234563.9 ], [ 608882.1, 234517.4 ], [ 608956.8, 234499.6 ], [ 608996.6, 234478.4 ], [ 609010.1, 234459.9 ], [ 609019.3, 234413.9 ], [ 609058.8, 234379.1 ], [ 609071.8, 234380.9 ], [ 609093.6, 234400.1 ], [ 609171.3, 234434.6 ], [ 609208.1, 234533.6 ], [ 609288.1, 234589.9 ], [ 609332.1, 234599.6 ], [ 609409.3, 234587.9 ], [ 609429.4, 234601.6 ], [ 609442.2, 234572.6 ], [ 609412.5, 234548.6 ], [ 609349.5, 234529.4 ], [ 609314.2, 234502.1 ], [ 609297.7, 234475.1 ], [ 609270.7, 234383.1 ], [ 609201.5, 234325.1 ], [ 609195.2, 234303.9 ], [ 609204.2, 234294.4 ], [ 609243.2, 234319.9 ], [ 609292.5, 234330.6 ], [ 609357.2, 234359.9 ], [ 609366.9, 234355.2 ], [ 609363.0, 234339.6 ], [ 609275.2, 234268.9 ], [ 609218.0, 234187.9 ], [ 609137.0, 234140.1 ], [ 609128.2, 234126.9 ], [ 609075.6, 234101.9 ], [ 609053.5, 234037.5 ], [ 609032.0, 233995.7 ], [ 608990.7, 233963.4 ], [ 608964.0, 233929.9 ], [ 608929.6, 233911.0 ], [ 608875.2, 233825.6 ], [ 608872.0, 233783.1 ], [ 608911.0, 233725.6 ], [ 608932.0, 233681.9 ], [ 608996.5, 233586.9 ], [ 609031.9, 233557.2 ], [ 609047.5, 233552.4 ], [ 609063.3, 233515.4 ], [ 609072.6, 233393.1 ], [ 609103.7, 233294.1 ], [ 609096.5, 233229.1 ], [ 609080.2, 233183.1 ], [ 609038.5, 233155.4 ], [ 608936.2, 233128.4 ], [ 608906.7, 233113.4 ], [ 608880.5, 233042.9 ], [ 608781.2, 232957.9 ], [ 608738.2, 232907.6 ], [ 608727.0, 232879.1 ], [ 608718.0, 232822.4 ], [ 608693.0, 232804.4 ], [ 608638.5, 232796.1 ], [ 608607.5, 232780.4 ], [ 608535.0, 232699.4 ], [ 608487.7, 232635.4 ], [ 608429.5, 232530.9 ], [ 608404.0, 232500.1 ], [ 608364.7, 232464.4 ], [ 608252.5, 232393.1 ], [ 608099.7, 232258.6 ], [ 608016.7, 232214.6 ], [ 607867.0, 232102.4 ], [ 607803.7, 232023.1 ], [ 607737.2, 231960.6 ], [ 607671.5, 231872.5 ], [ 607717.2, 231784.4 ], [ 607722.5, 231637.1 ], [ 607731.0, 231587.9 ], [ 607781.0, 231489.9 ], [ 607809.0, 231376.6 ], [ 607842.2, 231286.9 ], [ 607885.5, 231230.9 ], [ 607942.302, 231206.919 ], [ 607958.2, 231191.1 ], [ 608074.6, 231055.4 ], [ 608119.1, 230965.9 ], [ 608122.9, 230930.1 ], [ 608118.6, 230892.4 ], [ 608068.4, 230704.1 ], [ 608043.395, 230680.014 ], [ 607993.614, 230647.848 ], [ 607984.5, 230631.6 ], [ 607977.1, 230581.4 ], [ 607938.9, 230525.6 ], [ 607943.068, 230440.303 ], [ 607938.6, 230426.6 ], [ 607864.4, 230322.1 ], [ 607869.9, 230302.9 ], [ 607915.2, 230277.3 ], [ 607949.961, 230248.075 ], [ 607938.473, 230141.621 ], [ 607947.0, 230134.4 ], [ 607921.991, 230028.056 ], [ 607917.3, 229965.6 ], [ 607940.0, 229893.1 ], [ 607944.3, 229859.6 ], [ 607895.5, 229614.9 ], [ 607890.3, 229409.9 ], [ 607827.0, 229254.2 ], [ 607908.1, 229212.1 ], [ 607936.6, 229186.6 ], [ 608041.9, 229033.6 ], [ 608172.2, 228875.8 ], [ 608272.0, 228741.6 ], [ 608284.0, 228734.5 ], [ 608380.9, 228623.5 ], [ 608363.5, 228587.0 ], [ 608343.5, 228566.0 ], [ 608300.2, 228538.8 ], [ 608250.1, 228518.9 ], [ 607956.4, 228517.9 ], [ 607604.5, 228465.7 ], [ 607642.6, 228334.5 ], [ 607812.2, 228187.2 ], [ 607853.0, 228176.8 ] ] } } , -{ "type": "Feature", "properties": { "FID": 6.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 699053.000000, 220459.500000 ], [ 699032.100000, 220464.200000 ], [ 698991.524000, 220489.924000 ], [ 698983.800000, 220485.123000 ], [ 698974.500000, 220488.700000 ], [ 698973.576000, 220501.430000 ], [ 698844.500000, 220595.300000 ], [ 698618.000000, 220775.900000 ], [ 698504.500000, 220819.500000 ], [ 698375.400000, 220825.800000 ], [ 698237.700000, 220862.900000 ], [ 697985.100000, 221015.500000 ], [ 697960.800000, 221079.000000 ], [ 697879.400000, 221230.700000 ], [ 697846.400000, 221312.800000 ], [ 697845.600000, 221335.600000 ], [ 697820.600000, 221378.700000 ], [ 697816.100000, 221405.700000 ], [ 697826.600000, 221409.000000 ], [ 697853.200000, 221381.600000 ], [ 697878.400000, 221372.500000 ], [ 697935.700000, 221380.900000 ], [ 697939.400000, 221388.900000 ], [ 697890.100000, 221398.800000 ], [ 697860.900000, 221425.400000 ], [ 697850.400000, 221456.700000 ], [ 697842.100000, 221522.700000 ], [ 697834.000000, 221530.100000 ], [ 697815.900000, 221533.800000 ], [ 697782.600000, 221499.900000 ], [ 697772.900000, 221498.400000 ], [ 697765.600000, 221501.400000 ], [ 697753.400000, 221533.200000 ], [ 697735.600000, 221554.700000 ], [ 697727.900000, 221552.200000 ], [ 697705.400000, 221521.400000 ], [ 697665.600000, 221519.900000 ], [ 697657.000000, 221512.200000 ], [ 697651.000000, 221471.500000 ], [ 697635.000000, 221430.400000 ], [ 697631.400000, 221380.200000 ], [ 697587.800000, 221382.400000 ], [ 697511.400000, 221410.100000 ], [ 697299.100000, 221396.100000 ], [ 697223.400000, 221403.300000 ], [ 697207.200000, 221395.400000 ], [ 697155.600000, 221336.400000 ], [ 697003.000000, 221328.800000 ], [ 696911.600000, 221298.900000 ], [ 696829.100000, 221294.100000 ], [ 696771.100000, 221259.200000 ], [ 696719.500000, 221210.600000 ], [ 696698.500000, 221198.200000 ], [ 696660.800000, 221199.700000 ], [ 696516.100000, 221233.300000 ], [ 696400.500000, 221197.700000 ], [ 696229.100000, 221115.300000 ], [ 696206.900000, 221095.600000 ], [ 696124.600000, 220951.500000 ], [ 696094.900000, 220918.200000 ], [ 696021.400000, 220914.100000 ], [ 695930.600000, 221026.100000 ], [ 695907.300000, 221041.100000 ], [ 695892.100000, 221039.600000 ], [ 695562.100000, 220872.000000 ], [ 695520.900000, 220880.200000 ], [ 695488.300000, 220846.200000 ], [ 695410.600000, 220799.400000 ], [ 695387.000000, 220845.900000 ], [ 695414.500000, 220867.200000 ], [ 695424.500000, 220883.400000 ], [ 695425.800000, 220913.400000 ], [ 695345.200000, 221090.500000 ], [ 695233.700000, 221136.300000 ], [ 694999.400000, 221215.900000 ], [ 694898.300000, 221244.600000 ], [ 694865.000000, 221244.800000 ], [ 694714.200000, 221310.800000 ], [ 694696.400000, 221312.000000 ], [ 694603.900000, 221286.900000 ], [ 694546.700000, 221285.400000 ], [ 694343.300000, 221115.600000 ], [ 694321.800000, 221093.000000 ], [ 694304.900000, 221045.900000 ], [ 694271.200000, 221018.900000 ], [ 694202.600000, 220968.600000 ], [ 693984.700000, 220847.800000 ], [ 693948.500000, 220805.300000 ], [ 693880.300000, 220760.700000 ], [ 693823.600000, 220696.400000 ], [ 693738.700000, 220569.900000 ], [ 693696.400000, 220525.600000 ], [ 693653.300000, 220489.100000 ], [ 693557.200000, 220439.000000 ], [ 693513.000000, 220404.100000 ], [ 693440.700000, 220342.200000 ], [ 693331.300000, 220221.500000 ], [ 693311.900000, 220182.900000 ], [ 693303.900000, 220090.200000 ], [ 693287.200000, 220032.800000 ], [ 693243.400000, 219926.200000 ], [ 693182.700000, 219879.300000 ], [ 693200.900000, 219777.100000 ], [ 693160.200000, 219715.800000 ], [ 693070.000000, 219548.700000 ], [ 693031.900000, 219533.500000 ], [ 692947.400000, 219524.000000 ], [ 692879.100000, 219493.300000 ], [ 692814.900000, 219487.900000 ], [ 692798.900000, 219481.500000 ], [ 692768.700000, 219454.700000 ], [ 692722.600000, 219373.400000 ], [ 692694.400000, 219345.000000 ], [ 692604.200000, 219316.100000 ], [ 692527.700000, 219280.000000 ], [ 692482.700000, 219245.500000 ], [ 692430.900000, 219242.400000 ], [ 692421.800000, 219343.300000 ], [ 692424.400000, 219421.400000 ], [ 692446.400000, 219452.500000 ], [ 692456.200000, 219515.700000 ], [ 692440.300000, 219591.300000 ], [ 692442.400000, 219673.500000 ], [ 692415.200000, 219745.300000 ], [ 692416.200000, 219762.600000 ], [ 692403.400000, 219781.600000 ], [ 692377.100000, 219925.200000 ], [ 692366.500000, 219943.300000 ], [ 692339.900000, 219955.800000 ], [ 692311.900000, 219957.100000 ], [ 692208.700000, 219952.900000 ], [ 692063.400000, 219928.900000 ], [ 692044.400000, 219936.100000 ], [ 692012.100000, 219936.600000 ], [ 691924.300000, 219895.500000 ], [ 691879.200000, 219888.100000 ], [ 691854.900000, 219892.600000 ], [ 691783.500000, 219922.700000 ], [ 691660.000000, 219942.100000 ], [ 691559.600000, 219980.000000 ], [ 691536.200000, 219995.800000 ], [ 691506.400000, 220031.100000 ], [ 691486.400000, 220076.600000 ], [ 691483.700000, 220096.100000 ], [ 691494.400000, 220114.100000 ], [ 691553.300000, 220125.700000 ], [ 691576.000000, 220137.300000 ], [ 691613.500000, 220169.600000 ], [ 691648.000000, 220182.100000 ], [ 691698.200000, 220214.600000 ], [ 691787.200000, 220463.400000 ], [ 691785.400000, 220559.800000 ], [ 691798.900000, 220577.200000 ], [ 691858.500000, 220586.700000 ], [ 691858.000000, 220595.400000 ], [ 691834.300000, 220614.500000 ], [ 691732.500000, 220655.800000 ], [ 691713.300000, 220672.900000 ], [ 691677.400000, 220727.600000 ], [ 691674.700000, 220771.200000 ], [ 691723.400000, 220992.400000 ], [ 691724.000000, 221042.900000 ], [ 691712.600000, 221124.000000 ], [ 691534.400000, 221090.200000 ], [ 691457.000000, 221087.200000 ], [ 691429.700000, 221274.100000 ], [ 691385.200000, 221353.400000 ], [ 691310.700000, 221449.000000 ], [ 691259.700000, 221489.000000 ], [ 691139.100000, 221538.100000 ], [ 691044.300000, 221617.300000 ], [ 690972.300000, 221687.400000 ], [ 690954.300000, 221721.500000 ], [ 690952.800000, 221735.300000 ], [ 690960.000000, 221751.500000 ], [ 690972.300000, 221762.000000 ], [ 691035.800000, 221788.700000 ], [ 691042.200000, 221798.100000 ], [ 691036.000000, 221814.800000 ], [ 691020.800000, 221820.800000 ], [ 690943.400000, 221801.200000 ], [ 690819.300000, 221820.800000 ], [ 690755.800000, 221864.600000 ], [ 690730.000000, 221899.300000 ], [ 690694.200000, 221971.500000 ], [ 690667.000000, 222007.500000 ], [ 690639.800000, 222028.500000 ], [ 690570.000000, 222056.500000 ], [ 690530.400000, 222062.000000 ], [ 690367.900000, 222039.000000 ], [ 690304.900000, 222049.500000 ], [ 690299.900000, 222067.000000 ], [ 690310.900000, 222101.500000 ], [ 690308.500000, 222121.900000 ], [ 690274.500000, 222170.600000 ], [ 690271.600000, 222193.100000 ], [ 690287.900000, 222250.800000 ], [ 690328.300000, 222342.500000 ], [ 690352.200000, 222416.700000 ], [ 690388.100000, 222447.800000 ], [ 690415.600000, 222460.800000 ], [ 690422.700000, 222472.500000 ], [ 690401.400000, 222505.600000 ], [ 690382.600000, 222505.100000 ], [ 690333.700000, 222474.100000 ], [ 690277.200000, 222453.000000 ], [ 690211.600000, 222460.800000 ], [ 690182.700000, 222503.000000 ], [ 690168.600000, 222509.100000 ], [ 690161.400000, 222504.600000 ], [ 690148.200000, 222461.000000 ], [ 690137.500000, 222445.300000 ], [ 690083.900000, 222413.700000 ], [ 690057.600000, 222421.600000 ], [ 690040.900000, 222417.600000 ], [ 690019.900000, 222358.600000 ], [ 689834.600000, 222258.700000 ], [ 689791.300000, 222227.700000 ], [ 689732.400000, 222171.300000 ], [ 689395.100000, 222152.100000 ], [ 689379.100000, 222156.600000 ], [ 689333.600000, 222202.100000 ], [ 689316.100000, 222210.100000 ], [ 689286.500000, 222206.700000 ], [ 689211.900000, 222182.800000 ], [ 689178.600000, 222211.300000 ], [ 689165.100000, 222212.100000 ], [ 689029.300000, 222167.800000 ], [ 688858.900000, 222145.700000 ], [ 688796.600000, 222090.100000 ], [ 688777.900000, 222098.600000 ], [ 688740.600000, 222132.100000 ], [ 688727.600000, 222133.800000 ], [ 688714.500000, 222060.800000 ], [ 688686.400000, 222009.900000 ], [ 688702.900000, 222097.400000 ], [ 688702.400000, 222108.400000 ], [ 688696.200000, 222111.300000 ], [ 688620.900000, 222089.800000 ], [ 688576.400000, 222060.700000 ], [ 688508.800000, 222062.800000 ], [ 688396.500000, 222040.400000 ], [ 688193.100000, 222064.200000 ], [ 688116.600000, 222092.400000 ], [ 688098.000000, 222110.100000 ], [ 688093.300000, 222145.400000 ], [ 688125.600000, 222218.800000 ], [ 688129.400000, 222245.400000 ], [ 688072.400000, 222343.100000 ], [ 688076.800000, 222371.600000 ], [ 688071.200000, 222383.600000 ], [ 688020.900000, 222455.100000 ], [ 687936.000000, 222531.800000 ], [ 687900.600000, 222555.000000 ], [ 687869.800000, 222566.100000 ], [ 687779.000000, 222568.600000 ], [ 687716.200000, 222556.200000 ], [ 687682.000000, 222544.200000 ], [ 687710.400000, 222470.500000 ], [ 687780.500000, 222416.800000 ], [ 687832.000000, 222333.000000 ], [ 687891.700000, 222284.100000 ], [ 687902.500000, 222260.600000 ], [ 687897.700000, 222223.300000 ], [ 687863.200000, 222200.100000 ], [ 687840.500000, 222166.100000 ], [ 687806.700000, 222133.100000 ], [ 687805.100000, 222124.300000 ], [ 687814.700000, 222070.500000 ], [ 687797.400000, 222032.100000 ], [ 687795.800000, 221961.900000 ], [ 687796.800000, 221936.400000 ], [ 687828.200000, 221812.800000 ], [ 687818.000000, 221793.800000 ], [ 687778.700000, 221766.000000 ], [ 687756.200000, 221761.500000 ], [ 687623.700000, 221754.300000 ], [ 687514.700000, 221763.500000 ], [ 687411.164000, 221743.000000 ], [ 687380.100000, 221744.900000 ], [ 687329.900000, 221771.100000 ], [ 687247.600000, 221761.800000 ], [ 687211.000000, 221771.600000 ], [ 687184.300000, 221761.800000 ], [ 687116.300000, 221757.900000 ], [ 687014.700000, 221805.900000 ], [ 686969.600000, 221815.800000 ], [ 686948.700000, 221863.900000 ], [ 686941.000000, 221866.500000 ], [ 686922.300000, 221859.600000 ], [ 686912.800000, 221827.300000 ], [ 686904.900000, 221820.000000 ], [ 686841.400000, 221799.500000 ], [ 686787.200000, 221727.600000 ], [ 686758.700000, 221713.600000 ], [ 686715.200000, 221707.500000 ], [ 686638.900000, 221726.800000 ], [ 686570.500000, 221730.100000 ], [ 686431.100000, 221719.000000 ], [ 686340.000000, 221735.200000 ], [ 686333.400000, 221725.600000 ], [ 686376.100000, 221693.000000 ], [ 686644.800000, 221586.700000 ], [ 686655.000000, 221575.400000 ], [ 686657.300000, 221552.400000 ], [ 686647.135000, 221459.556000 ], [ 686555.100000, 221480.600000 ], [ 686479.200000, 221515.500000 ], [ 686364.900000, 221546.100000 ], [ 686134.300000, 221640.800000 ], [ 685990.100000, 221785.700000 ], [ 685903.100000, 221856.700000 ], [ 685844.900000, 221948.700000 ], [ 685771.400000, 221986.000000 ], [ 685746.900000, 222025.700000 ], [ 685693.600000, 222057.500000 ], [ 685638.900000, 222121.000000 ], [ 685615.900000, 222165.300000 ], [ 685616.400000, 222181.000000 ], [ 685646.200000, 222247.600000 ], [ 685647.400000, 222281.000000 ], [ 685562.000000, 222445.100000 ], [ 685523.700000, 222473.700000 ], [ 685490.800000, 222486.400000 ], [ 685385.400000, 222512.800000 ], [ 685360.100000, 222537.500000 ], [ 685350.100000, 222576.100000 ], [ 685360.400000, 222654.600000 ], [ 685356.700000, 222689.400000 ], [ 685317.700000, 222868.200000 ], [ 685257.900000, 223043.000000 ], [ 685228.300000, 223111.100000 ], [ 685099.600000, 223212.900000 ], [ 685082.400000, 223242.100000 ], [ 685076.400000, 223267.100000 ], [ 685080.400000, 223289.600000 ], [ 685107.400000, 223330.400000 ], [ 685094.500000, 223532.300000 ], [ 685082.100000, 223538.300000 ], [ 685080.300000, 223662.500000 ], [ 685094.600000, 223724.100000 ], [ 685157.800000, 223825.900000 ], [ 685161.800000, 223852.300000 ], [ 685152.600000, 223907.300000 ], [ 685115.800000, 223998.400000 ], [ 685111.500000, 224098.500000 ], [ 685030.600000, 224189.700000 ], [ 685022.200000, 224225.700000 ], [ 685023.500000, 224257.700000 ], [ 685050.800000, 224348.900000 ], [ 685049.100000, 224377.200000 ], [ 685032.900000, 224414.100000 ], [ 684984.600000, 224473.700000 ], [ 684971.000000, 224604.200000 ], [ 684991.300000, 224723.200000 ], [ 685038.000000, 224776.000000 ], [ 685047.800000, 224803.000000 ], [ 685055.300000, 224881.000000 ], [ 685090.877000, 224975.500000 ], [ 685074.642000, 225084.940000 ], [ 685058.200000, 225128.500000 ], [ 685058.700000, 225183.600000 ], [ 685025.900000, 225272.600000 ], [ 685032.000000, 225291.000000 ], [ 685078.100000, 225344.000000 ], [ 685077.400000, 225389.400000 ], [ 685026.900000, 225509.000000 ], [ 685021.100000, 225534.700000 ], [ 685023.500000, 225577.200000 ], [ 685012.200000, 225610.800000 ], [ 684973.000000, 225656.800000 ], [ 684946.900000, 225702.500000 ], [ 684932.000000, 225743.600000 ], [ 684921.300000, 225833.600000 ], [ 684911.800000, 225858.800000 ], [ 684885.000000, 225886.400000 ], [ 684834.900000, 225906.800000 ], [ 684721.300000, 225920.800000 ], [ 684707.500000, 225943.800000 ], [ 684692.800000, 226005.600000 ], [ 684643.100000, 226000.700000 ], [ 684604.100000, 226062.900000 ], [ 684580.900000, 226117.400000 ], [ 684585.284000, 226133.412000 ], [ 684616.800000, 226157.100000 ], [ 684618.200000, 226166.900000 ], [ 684594.200000, 226236.900000 ], [ 684631.219000, 226299.739000 ], [ 684644.600000, 226369.600000 ], [ 684685.100000, 226411.700000 ], [ 684691.300000, 226443.700000 ], [ 684723.700000, 226477.600000 ], [ 684741.300000, 226512.400000 ], [ 684744.400000, 226569.700000 ], [ 684759.900000, 226603.900000 ], [ 684768.700000, 226703.400000 ], [ 684805.600000, 226763.800000 ], [ 684805.200000, 226797.200000 ], [ 684787.100000, 226853.400000 ], [ 684792.900000, 226905.900000 ], [ 684803.800000, 226960.700000 ], [ 684843.600000, 227027.600000 ], [ 684810.800000, 227068.300000 ], [ 684843.800000, 227391.100000 ], [ 684847.600000, 227549.600000 ], [ 684823.900000, 227605.200000 ], [ 684783.400000, 227643.900000 ], [ 684772.000000, 227664.700000 ], [ 684779.200000, 227748.400000 ], [ 684817.500000, 227831.200000 ], [ 684818.300000, 227853.200000 ], [ 684789.100000, 227886.900000 ], [ 684696.500000, 227927.300000 ], [ 684540.800000, 227960.300000 ], [ 684366.800000, 227959.700000 ], [ 684329.300000, 227945.700000 ], [ 684304.800000, 227926.300000 ], [ 684242.300000, 227815.000000 ], [ 684185.400000, 227749.300000 ], [ 684127.700000, 227604.700000 ], [ 684074.400000, 227567.100000 ], [ 684032.100000, 227527.000000 ], [ 683981.900000, 227514.900000 ], [ 683939.100000, 227494.800000 ], [ 683827.800000, 227505.600000 ], [ 683774.000000, 227535.400000 ], [ 683641.300000, 227567.400000 ], [ 683547.200000, 227602.900000 ], [ 683517.000000, 227621.000000 ], [ 683456.500000, 227701.000000 ], [ 683361.700000, 227892.700000 ], [ 683344.500000, 227916.500000 ], [ 683344.100000, 227934.700000 ], [ 683240.100000, 228226.100000 ], [ 683232.600000, 228431.300000 ], [ 683185.900000, 228518.700000 ], [ 683157.400000, 228547.300000 ], [ 683136.523000, 228558.787000 ], [ 683159.400000, 228604.700000 ], [ 683191.900000, 228646.200000 ], [ 683223.400000, 228663.000000 ], [ 683293.700000, 228670.300000 ], [ 683324.400000, 228696.600000 ], [ 683342.100000, 228735.400000 ], [ 683360.400000, 228754.300000 ], [ 683431.600000, 228774.400000 ], [ 683465.300000, 228790.900000 ], [ 683565.700000, 228879.500000 ], [ 683637.200000, 228969.900000 ], [ 683661.200000, 228979.900000 ], [ 683718.000000, 228984.100000 ], [ 683763.200000, 229008.400000 ], [ 683825.200000, 229013.700000 ], [ 683867.400000, 229036.200000 ], [ 683933.900000, 229137.000000 ], [ 683985.700000, 229169.400000 ], [ 684007.000000, 229175.400000 ], [ 684033.000000, 229223.800000 ], [ 684074.300000, 229273.800000 ], [ 684140.300000, 229344.400000 ], [ 684262.200000, 229456.700000 ], [ 684290.500000, 229473.200000 ], [ 684352.200000, 229483.400000 ], [ 684546.800000, 229473.300000 ], [ 684612.000000, 229491.600000 ], [ 684649.300000, 229522.600000 ], [ 684662.700000, 229516.900000 ], [ 684681.800000, 229519.900000 ], [ 684776.800000, 229561.900000 ], [ 684808.000000, 229567.200000 ], [ 684797.500000, 229608.200000 ], [ 684818.500000, 229611.700000 ], [ 684833.800000, 229625.900000 ], [ 684825.700000, 229627.500000 ], [ 684775.200000, 229691.100000 ], [ 684701.500000, 229726.800000 ], [ 684678.700000, 229764.800000 ], [ 684650.400000, 229833.600000 ], [ 684628.900000, 229982.900000 ], [ 684630.900000, 230026.800000 ], [ 684637.900000, 230049.300000 ], [ 684681.100000, 230119.300000 ], [ 684683.500000, 230148.700000 ], [ 684700.200000, 230182.400000 ], [ 684696.100000, 230210.800000 ], [ 684554.600000, 230294.800000 ], [ 684490.600000, 230284.300000 ], [ 684233.100000, 230365.500000 ], [ 684200.200000, 230364.000000 ], [ 684152.900000, 230342.600000 ], [ 684033.900000, 230316.900000 ], [ 683994.600000, 230288.600000 ], [ 683786.300000, 230265.000000 ], [ 683717.700000, 230281.800000 ], [ 683661.300000, 230280.900000 ], [ 683574.058000, 230262.257000 ], [ 683462.765000, 230251.413000 ], [ 683393.706000, 230266.538000 ], [ 683353.755000, 230268.250000 ], [ 683340.913000, 230263.684000 ], [ 683270.200000, 230201.800000 ], [ 683254.200000, 230197.100000 ], [ 683197.800000, 230210.300000 ], [ 683177.100000, 230222.500000 ], [ 683166.100000, 230249.600000 ], [ 683140.141000, 230374.053000 ], [ 683134.181000, 230444.433000 ], [ 683100.995000, 230561.619000 ], [ 682906.200000, 230660.366000 ], [ 682804.200000, 230741.700000 ], [ 682736.500000, 230829.700000 ], [ 682687.500000, 230862.500000 ], [ 682633.300000, 230990.400000 ], [ 682572.900000, 231060.900000 ], [ 682462.100000, 231215.200000 ], [ 682455.200000, 231267.900000 ], [ 682494.300000, 231255.500000 ], [ 682525.800000, 231269.600000 ], [ 682483.000000, 231340.800000 ], [ 682452.200000, 231363.500000 ], [ 682413.100000, 231374.400000 ], [ 682407.576000, 231310.711000 ], [ 682393.200000, 231311.000000 ], [ 682242.700000, 231398.900000 ], [ 682235.500000, 231425.900000 ], [ 682185.100000, 231528.100000 ], [ 682110.000000, 231632.900000 ], [ 682083.500000, 231659.400000 ], [ 682058.200000, 231675.900000 ], [ 682033.800000, 231682.500000 ], [ 681825.400000, 231683.400000 ], [ 681826.100000, 231705.900000 ], [ 681835.100000, 231725.400000 ], [ 681871.100000, 231747.600000 ], [ 681844.900000, 231771.700000 ], [ 681758.500000, 231799.200000 ], [ 681615.100000, 231811.100000 ], [ 681593.400000, 231819.200000 ], [ 681474.500000, 231915.500000 ], [ 681405.800000, 231944.000000 ], [ 681366.200000, 231967.900000 ], [ 681356.800000, 231983.200000 ], [ 681362.100000, 232076.000000 ], [ 681310.500000, 232131.300000 ], [ 681285.600000, 232140.600000 ], [ 681308.600000, 232154.800000 ], [ 681347.012000, 232161.247000 ], [ 681344.140000, 232175.125000 ], [ 681273.701000, 232259.261000 ], [ 681157.741000, 232354.737000 ], [ 681108.100000, 232346.800000 ], [ 681085.400000, 232350.400000 ], [ 681027.211000, 232383.992000 ], [ 681001.600000, 232410.200000 ], [ 680936.000000, 232298.400000 ], [ 680908.800000, 232281.800000 ], [ 680886.400000, 232279.900000 ], [ 680536.300000, 232381.900000 ], [ 680476.900000, 232410.100000 ], [ 680351.400000, 232523.400000 ], [ 680318.500000, 232574.600000 ], [ 680289.500000, 232641.600000 ], [ 680152.300000, 232754.700000 ], [ 680146.500000, 232742.700000 ], [ 680086.030000, 232698.986000 ], [ 680043.987000, 232760.287000 ], [ 680013.700000, 232733.000000 ], [ 679935.200000, 232845.600000 ], [ 679920.200000, 232889.800000 ], [ 679902.424000, 232893.608000 ], [ 679840.600000, 232981.500000 ], [ 679802.400000, 233097.200000 ], [ 679780.900000, 233124.300000 ], [ 679711.300000, 233255.500000 ], [ 679715.900000, 233314.400000 ], [ 679706.200000, 233366.000000 ], [ 679694.400000, 233381.400000 ], [ 679638.200000, 233418.900000 ], [ 679595.100000, 233468.100000 ], [ 679564.544000, 233547.148000 ], [ 679556.218000, 233543.580000 ], [ 679544.659000, 233588.101000 ], [ 679600.801000, 233765.985000 ], [ 679587.455000, 233886.563000 ], [ 679591.899000, 234015.380000 ], [ 679585.659000, 234123.578000 ], [ 679683.181000, 234235.871000 ], [ 679685.022000, 234346.324000 ], [ 679726.681000, 234404.279000 ], [ 679694.300000, 234451.500000 ], [ 679733.900000, 234476.300000 ], [ 679792.300000, 234461.900000 ], [ 679861.045000, 234485.682000 ], [ 679871.286000, 234492.850000 ], [ 679875.894000, 234508.723000 ], [ 679821.100000, 234633.300000 ], [ 679728.800000, 234650.700000 ], [ 679671.000000, 234679.000000 ], [ 679627.500000, 234759.700000 ], [ 679575.500000, 234805.400000 ], [ 679531.300000, 234860.500000 ], [ 679508.300000, 234869.700000 ], [ 679425.800000, 234867.500000 ], [ 679405.200000, 234880.100000 ], [ 679353.100000, 234946.800000 ], [ 679343.900000, 234995.300000 ], [ 679284.300000, 235087.300000 ], [ 679248.900000, 235187.400000 ], [ 679259.600000, 235212.100000 ], [ 679304.500000, 235264.200000 ], [ 679311.100000, 235281.200000 ], [ 679311.400000, 235318.500000 ], [ 679289.000000, 235370.200000 ], [ 679237.100000, 235422.600000 ], [ 679234.100000, 235433.800000 ], [ 679239.000000, 235440.600000 ], [ 679277.300000, 235422.000000 ], [ 679344.200000, 235409.400000 ], [ 679481.300000, 235416.200000 ], [ 679528.400000, 235427.800000 ], [ 679589.500000, 235457.000000 ], [ 679650.200000, 235508.300000 ], [ 679676.000000, 235544.600000 ], [ 679698.800000, 235535.100000 ], [ 679776.100000, 235532.800000 ], [ 679788.800000, 235526.500000 ], [ 679798.500000, 235514.800000 ], [ 679803.300000, 235476.800000 ], [ 679876.500000, 235574.400000 ], [ 679913.900000, 235610.700000 ], [ 680027.600000, 235677.800000 ], [ 680090.814000, 235794.740000 ], [ 680041.100000, 235882.300000 ], [ 679996.800000, 235927.900000 ], [ 679939.100000, 236074.800000 ], [ 679923.100000, 236134.300000 ], [ 679921.400000, 236239.300000 ], [ 680008.000000, 236363.200000 ], [ 680046.100000, 236384.300000 ], [ 680059.600000, 236419.000000 ], [ 680064.000000, 236461.000000 ], [ 680079.100000, 236497.000000 ], [ 680080.000000, 236544.200000 ], [ 680067.900000, 236563.300000 ], [ 680200.900000, 236691.800000 ], [ 680241.000000, 236809.500000 ], [ 680472.100000, 236938.200000 ], [ 680434.100000, 236968.100000 ], [ 680408.200000, 236999.100000 ], [ 680317.400000, 237153.600000 ], [ 680258.500000, 237215.300000 ], [ 680193.500000, 237265.500000 ], [ 680137.400000, 237296.300000 ], [ 680002.500000, 237353.400000 ], [ 679891.700000, 237412.400000 ], [ 679856.500000, 237424.600000 ], [ 679691.800000, 237438.500000 ], [ 679554.000000, 237464.900000 ], [ 679460.000000, 237498.700000 ], [ 679406.600000, 237506.600000 ], [ 679375.600000, 237520.700000 ], [ 679316.900000, 237562.100000 ], [ 679183.700000, 237733.500000 ], [ 679106.700000, 237934.800000 ], [ 679079.400000, 238021.700000 ], [ 679072.100000, 238066.100000 ], [ 679077.300000, 238120.000000 ], [ 679177.500000, 238470.800000 ], [ 679182.600000, 238572.000000 ], [ 679177.000000, 238674.300000 ], [ 679184.100000, 238721.300000 ], [ 679213.500000, 238792.000000 ], [ 679308.300000, 238933.800000 ], [ 679332.300000, 238996.400000 ], [ 679331.400000, 239086.100000 ], [ 679317.300000, 239189.600000 ], [ 679373.300000, 239208.000000 ], [ 679403.300000, 239211.200000 ], [ 679547.200000, 239187.500000 ], [ 679568.900000, 239192.800000 ], [ 679611.600000, 239237.100000 ], [ 679615.300000, 239276.400000 ], [ 679568.700000, 239356.400000 ], [ 679557.200000, 239397.700000 ], [ 679492.800000, 239549.500000 ], [ 679492.400000, 239565.800000 ], [ 679507.300000, 239565.200000 ], [ 679578.100000, 239497.600000 ], [ 679616.200000, 239450.200000 ], [ 679697.400000, 239378.300000 ], [ 679712.300000, 239375.200000 ], [ 679780.300000, 239414.100000 ], [ 679819.600000, 239427.400000 ], [ 680061.000000, 239456.100000 ], [ 680087.200000, 239471.300000 ], [ 680159.600000, 239540.100000 ], [ 680206.100000, 239551.000000 ], [ 680236.000000, 239541.700000 ], [ 680314.400000, 239481.700000 ], [ 680328.800000, 239461.400000 ], [ 680350.400000, 239422.700000 ], [ 680372.900000, 239322.300000 ], [ 680385.200000, 239294.000000 ], [ 680408.800000, 239275.500000 ], [ 680450.800000, 239256.100000 ], [ 680455.500000, 239268.000000 ], [ 680452.500000, 239289.000000 ], [ 680410.100000, 239431.700000 ], [ 680388.600000, 239552.800000 ], [ 680396.400000, 239625.500000 ], [ 680415.161000, 239697.479000 ], [ 680404.100000, 239717.600000 ], [ 680328.471000, 239805.132000 ], [ 680330.088000, 239821.132000 ], [ 680422.300000, 239942.100000 ], [ 680493.300000, 240012.900000 ], [ 680546.300000, 240053.600000 ], [ 680731.000000, 240167.400000 ], [ 680795.400000, 240225.900000 ], [ 680838.800000, 240254.400000 ], [ 680857.045000, 240276.961000 ], [ 680852.738000, 240294.649000 ], [ 680839.984000, 240305.562000 ], [ 680738.600000, 240363.200000 ], [ 680700.100000, 240399.200000 ], [ 680683.300000, 240424.100000 ], [ 680669.800000, 240468.500000 ], [ 680674.400000, 240548.800000 ], [ 680670.449000, 240570.537000 ], [ 680655.410000, 240583.177000 ], [ 680626.771000, 240591.336000 ], [ 680617.600000, 240612.800000 ], [ 680619.200000, 240647.300000 ], [ 680690.900000, 240755.700000 ], [ 680697.000000, 240802.200000 ], [ 680694.500000, 240862.200000 ], [ 680655.400000, 240928.700000 ], [ 680628.300000, 240956.100000 ], [ 680606.600000, 241009.700000 ], [ 680591.900000, 241073.900000 ], [ 680588.700000, 241134.800000 ], [ 680559.400000, 241223.300000 ], [ 680545.800000, 241242.800000 ], [ 680438.800000, 241307.400000 ], [ 680373.900000, 241379.900000 ], [ 680274.000000, 241441.600000 ], [ 680258.600000, 241475.600000 ], [ 680249.100000, 241616.500000 ], [ 680269.800000, 241723.200000 ], [ 680271.500000, 241776.600000 ], [ 680263.100000, 241796.400000 ], [ 680205.400000, 241871.100000 ], [ 680196.900000, 241894.500000 ], [ 680190.717000, 241989.951000 ], [ 680196.320000, 242010.324000 ], [ 680213.637000, 242036.300000 ], [ 680268.849000, 242082.609000 ], [ 680290.601000, 242116.814000 ], [ 680300.025000, 242148.431000 ], [ 680306.900000, 242230.500000 ], [ 680300.200000, 242262.800000 ], [ 680256.700000, 242351.500000 ], [ 680271.100000, 242508.400000 ], [ 680286.900000, 242555.700000 ], [ 680280.800000, 242627.700000 ], [ 680256.800000, 242705.300000 ], [ 680244.300000, 242770.300000 ], [ 680242.300000, 242841.500000 ], [ 680245.200000, 242867.000000 ], [ 680259.800000, 242902.200000 ], [ 680328.400000, 243014.700000 ], [ 680348.400000, 243123.700000 ], [ 680347.600000, 243139.400000 ], [ 680335.500000, 243154.600000 ], [ 680283.400000, 243205.000000 ], [ 680280.500000, 243224.000000 ], [ 680320.600000, 243281.000000 ], [ 680369.300000, 243398.700000 ], [ 680367.000000, 243426.600000 ], [ 680348.100000, 243464.700000 ], [ 680257.400000, 243569.200000 ], [ 680274.200000, 243658.400000 ], [ 680289.100000, 243691.200000 ], [ 680289.100000, 243722.700000 ], [ 680295.300000, 243735.700000 ], [ 680321.700000, 243743.600000 ], [ 680347.400000, 243707.000000 ], [ 680364.400000, 243646.100000 ], [ 680388.883000, 243635.581000 ], [ 680458.000000, 243581.900000 ], [ 680504.200000, 243570.700000 ], [ 680550.798000, 243516.575000 ], [ 680544.183000, 243577.469000 ], [ 680510.853000, 243629.224000 ], [ 680507.548000, 243655.124000 ], [ 680513.146000, 243671.752000 ], [ 680548.700000, 243629.000000 ], [ 680559.400000, 243628.300000 ], [ 680548.700000, 243668.300000 ], [ 680550.800000, 243721.900000 ], [ 680576.000000, 243793.900000 ], [ 680591.681000, 243814.021000 ], [ 680578.006000, 243842.787000 ], [ 680588.929000, 243854.481000 ], [ 680598.277000, 243853.632000 ], [ 680614.800000, 243839.100000 ], [ 680618.300000, 243827.500000 ], [ 680615.100000, 243782.400000 ], [ 680632.300000, 243761.900000 ], [ 680650.400000, 243671.800000 ], [ 680685.900000, 243639.100000 ], [ 680712.100000, 243639.600000 ], [ 680712.300000, 243648.100000 ], [ 680692.400000, 243661.300000 ], [ 680683.100000, 243675.700000 ], [ 680678.700000, 243696.900000 ], [ 680697.200000, 243737.600000 ], [ 680700.500000, 243829.000000 ], [ 680728.800000, 243860.600000 ], [ 680680.500000, 243893.500000 ], [ 680670.900000, 243941.500000 ], [ 680678.800000, 243986.500000 ], [ 680683.800000, 243994.000000 ], [ 680700.500000, 243953.100000 ], [ 680720.900000, 243918.100000 ], [ 680726.300000, 243919.000000 ], [ 680722.600000, 243981.900000 ], [ 680733.400000, 244012.300000 ], [ 680799.700000, 244067.300000 ], [ 680805.500000, 244089.400000 ], [ 680793.400000, 244121.000000 ], [ 680801.800000, 244124.400000 ], [ 680829.700000, 244085.600000 ], [ 680821.300000, 244064.000000 ], [ 680804.300000, 244044.400000 ], [ 680800.900000, 244021.500000 ], [ 680828.000000, 243974.800000 ], [ 680840.900000, 243973.100000 ], [ 680837.200000, 244023.100000 ], [ 680847.200000, 244042.300000 ], [ 680873.400000, 244067.300000 ], [ 680882.200000, 244087.300000 ], [ 680888.000000, 244134.400000 ], [ 680880.500000, 244152.700000 ], [ 680885.900000, 244154.000000 ], [ 680897.600000, 244141.000000 ], [ 680908.400000, 244116.500000 ], [ 680913.000000, 244074.000000 ], [ 680919.700000, 244065.600000 ], [ 680951.435000, 244054.998000 ], [ 680966.000000, 244054.300000 ], [ 681009.900000, 244090.700000 ], [ 681069.500000, 244124.300000 ], [ 681050.300000, 244174.700000 ], [ 681008.900000, 244222.300000 ], [ 681007.900000, 244242.400000 ], [ 681013.100000, 244253.000000 ], [ 681039.000000, 244266.900000 ], [ 681117.000000, 244274.800000 ], [ 681152.600000, 244298.200000 ], [ 681179.000000, 244361.400000 ], [ 681200.900000, 244385.200000 ], [ 681215.400000, 244415.600000 ], [ 681230.400000, 244462.900000 ], [ 681270.792000, 244546.513000 ], [ 681322.683000, 244600.072000 ], [ 681323.100000, 244617.578000 ], [ 681312.471000, 244633.416000 ], [ 681327.685000, 244652.797000 ], [ 681333.103000, 244671.137000 ], [ 681334.145000, 244735.949000 ], [ 681352.400000, 244794.200000 ], [ 681361.000000, 244802.800000 ], [ 681387.700000, 244804.800000 ], [ 681502.800000, 244798.300000 ], [ 681533.000000, 244887.300000 ], [ 681602.200000, 244962.600000 ], [ 682003.100000, 245167.300000 ], [ 682060.700000, 245228.800000 ], [ 682071.400000, 245217.000000 ], [ 682095.800000, 245327.600000 ], [ 682070.000000, 245486.700000 ], [ 682057.000000, 245691.100000 ], [ 681980.900000, 246006.000000 ], [ 681973.900000, 246062.500000 ], [ 681961.900000, 246057.900000 ], [ 681932.100000, 246217.800000 ], [ 681923.100000, 246281.000000 ], [ 681918.600000, 246403.800000 ], [ 681930.800000, 246504.300000 ], [ 681968.500000, 246611.600000 ], [ 682025.300000, 246709.800000 ], [ 682152.300000, 246847.900000 ], [ 682333.250000, 247023.243000 ], [ 682427.052000, 247124.844000 ], [ 682478.478000, 247194.144000 ], [ 682539.766000, 247329.287000 ], [ 682573.655000, 247371.905000 ], [ 682594.707000, 247376.013000 ], [ 682622.425000, 247423.042000 ], [ 682638.868000, 247410.467000 ], [ 682682.706000, 247478.673000 ], [ 682683.338000, 247583.540000 ], [ 682798.200000, 247763.400000 ], [ 682850.500000, 247827.800000 ], [ 682780.100000, 247877.500000 ], [ 682890.900000, 248027.500000 ], [ 682904.518000, 248058.909000 ] ] } } +{ "type": "Feature", "properties": { "FID": 6.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 699053.0, 220459.5 ], [ 699032.1, 220464.2 ], [ 698991.524, 220489.924 ], [ 698983.8, 220485.123 ], [ 698974.5, 220488.7 ], [ 698973.576, 220501.43 ], [ 698844.5, 220595.3 ], [ 698618.0, 220775.9 ], [ 698504.5, 220819.5 ], [ 698375.4, 220825.8 ], [ 698237.7, 220862.9 ], [ 697985.1, 221015.5 ], [ 697960.8, 221079.0 ], [ 697879.4, 221230.7 ], [ 697846.4, 221312.8 ], [ 697845.6, 221335.6 ], [ 697820.6, 221378.7 ], [ 697816.1, 221405.7 ], [ 697826.6, 221409.0 ], [ 697853.2, 221381.6 ], [ 697878.4, 221372.5 ], [ 697935.7, 221380.9 ], [ 697939.4, 221388.9 ], [ 697890.1, 221398.8 ], [ 697860.9, 221425.4 ], [ 697850.4, 221456.7 ], [ 697842.1, 221522.7 ], [ 697834.0, 221530.1 ], [ 697815.9, 221533.8 ], [ 697782.6, 221499.9 ], [ 697772.9, 221498.4 ], [ 697765.6, 221501.4 ], [ 697753.4, 221533.2 ], [ 697735.6, 221554.7 ], [ 697727.9, 221552.2 ], [ 697705.4, 221521.4 ], [ 697665.6, 221519.9 ], [ 697657.0, 221512.2 ], [ 697651.0, 221471.5 ], [ 697635.0, 221430.4 ], [ 697631.4, 221380.2 ], [ 697587.8, 221382.4 ], [ 697511.4, 221410.1 ], [ 697299.1, 221396.1 ], [ 697223.4, 221403.3 ], [ 697207.2, 221395.4 ], [ 697155.6, 221336.4 ], [ 697003.0, 221328.8 ], [ 696911.6, 221298.9 ], [ 696829.1, 221294.1 ], [ 696771.1, 221259.2 ], [ 696719.5, 221210.6 ], [ 696698.5, 221198.2 ], [ 696660.8, 221199.7 ], [ 696516.1, 221233.3 ], [ 696400.5, 221197.7 ], [ 696229.1, 221115.3 ], [ 696206.9, 221095.6 ], [ 696124.6, 220951.5 ], [ 696094.9, 220918.2 ], [ 696021.4, 220914.1 ], [ 695930.6, 221026.1 ], [ 695907.3, 221041.1 ], [ 695892.1, 221039.6 ], [ 695562.1, 220872.0 ], [ 695520.9, 220880.2 ], [ 695488.3, 220846.2 ], [ 695410.6, 220799.4 ], [ 695387.0, 220845.9 ], [ 695414.5, 220867.2 ], [ 695424.5, 220883.4 ], [ 695425.8, 220913.4 ], [ 695345.2, 221090.5 ], [ 695233.7, 221136.3 ], [ 694999.4, 221215.9 ], [ 694898.3, 221244.6 ], [ 694865.0, 221244.8 ], [ 694714.2, 221310.8 ], [ 694696.4, 221312.0 ], [ 694603.9, 221286.9 ], [ 694546.7, 221285.4 ], [ 694343.3, 221115.6 ], [ 694321.8, 221093.0 ], [ 694304.9, 221045.9 ], [ 694271.2, 221018.9 ], [ 694202.6, 220968.6 ], [ 693984.7, 220847.8 ], [ 693948.5, 220805.3 ], [ 693880.3, 220760.7 ], [ 693823.6, 220696.4 ], [ 693738.7, 220569.9 ], [ 693696.4, 220525.6 ], [ 693653.3, 220489.1 ], [ 693557.2, 220439.0 ], [ 693513.0, 220404.1 ], [ 693440.7, 220342.2 ], [ 693331.3, 220221.5 ], [ 693311.9, 220182.9 ], [ 693303.9, 220090.2 ], [ 693287.2, 220032.8 ], [ 693243.4, 219926.2 ], [ 693182.7, 219879.3 ], [ 693200.9, 219777.1 ], [ 693160.2, 219715.8 ], [ 693070.0, 219548.7 ], [ 693031.9, 219533.5 ], [ 692947.4, 219524.0 ], [ 692879.1, 219493.3 ], [ 692814.9, 219487.9 ], [ 692798.9, 219481.5 ], [ 692768.7, 219454.7 ], [ 692722.6, 219373.4 ], [ 692694.4, 219345.0 ], [ 692604.2, 219316.1 ], [ 692527.7, 219280.0 ], [ 692482.7, 219245.5 ], [ 692430.9, 219242.4 ], [ 692421.8, 219343.3 ], [ 692424.4, 219421.4 ], [ 692446.4, 219452.5 ], [ 692456.2, 219515.7 ], [ 692440.3, 219591.3 ], [ 692442.4, 219673.5 ], [ 692415.2, 219745.3 ], [ 692416.2, 219762.6 ], [ 692403.4, 219781.6 ], [ 692377.1, 219925.2 ], [ 692366.5, 219943.3 ], [ 692339.9, 219955.8 ], [ 692311.9, 219957.1 ], [ 692208.7, 219952.9 ], [ 692063.4, 219928.9 ], [ 692044.4, 219936.1 ], [ 692012.1, 219936.6 ], [ 691924.3, 219895.5 ], [ 691879.2, 219888.1 ], [ 691854.9, 219892.6 ], [ 691783.5, 219922.7 ], [ 691660.0, 219942.1 ], [ 691559.6, 219980.0 ], [ 691536.2, 219995.8 ], [ 691506.4, 220031.1 ], [ 691486.4, 220076.6 ], [ 691483.7, 220096.1 ], [ 691494.4, 220114.1 ], [ 691553.3, 220125.7 ], [ 691576.0, 220137.3 ], [ 691613.5, 220169.6 ], [ 691648.0, 220182.1 ], [ 691698.2, 220214.6 ], [ 691787.2, 220463.4 ], [ 691785.4, 220559.8 ], [ 691798.9, 220577.2 ], [ 691858.5, 220586.7 ], [ 691858.0, 220595.4 ], [ 691834.3, 220614.5 ], [ 691732.5, 220655.8 ], [ 691713.3, 220672.9 ], [ 691677.4, 220727.6 ], [ 691674.7, 220771.2 ], [ 691723.4, 220992.4 ], [ 691724.0, 221042.9 ], [ 691712.6, 221124.0 ], [ 691534.4, 221090.2 ], [ 691457.0, 221087.2 ], [ 691429.7, 221274.1 ], [ 691385.2, 221353.4 ], [ 691310.7, 221449.0 ], [ 691259.7, 221489.0 ], [ 691139.1, 221538.1 ], [ 691044.3, 221617.3 ], [ 690972.3, 221687.4 ], [ 690954.3, 221721.5 ], [ 690952.8, 221735.3 ], [ 690960.0, 221751.5 ], [ 690972.3, 221762.0 ], [ 691035.8, 221788.7 ], [ 691042.2, 221798.1 ], [ 691036.0, 221814.8 ], [ 691020.8, 221820.8 ], [ 690943.4, 221801.2 ], [ 690819.3, 221820.8 ], [ 690755.8, 221864.6 ], [ 690730.0, 221899.3 ], [ 690694.2, 221971.5 ], [ 690667.0, 222007.5 ], [ 690639.8, 222028.5 ], [ 690570.0, 222056.5 ], [ 690530.4, 222062.0 ], [ 690367.9, 222039.0 ], [ 690304.9, 222049.5 ], [ 690299.9, 222067.0 ], [ 690310.9, 222101.5 ], [ 690308.5, 222121.9 ], [ 690274.5, 222170.6 ], [ 690271.6, 222193.1 ], [ 690287.9, 222250.8 ], [ 690328.3, 222342.5 ], [ 690352.2, 222416.7 ], [ 690388.1, 222447.8 ], [ 690415.6, 222460.8 ], [ 690422.7, 222472.5 ], [ 690401.4, 222505.6 ], [ 690382.6, 222505.1 ], [ 690333.7, 222474.1 ], [ 690277.2, 222453.0 ], [ 690211.6, 222460.8 ], [ 690182.7, 222503.0 ], [ 690168.6, 222509.1 ], [ 690161.4, 222504.6 ], [ 690148.2, 222461.0 ], [ 690137.5, 222445.3 ], [ 690083.9, 222413.7 ], [ 690057.6, 222421.6 ], [ 690040.9, 222417.6 ], [ 690019.9, 222358.6 ], [ 689834.6, 222258.7 ], [ 689791.3, 222227.7 ], [ 689732.4, 222171.3 ], [ 689395.1, 222152.1 ], [ 689379.1, 222156.6 ], [ 689333.6, 222202.1 ], [ 689316.1, 222210.1 ], [ 689286.5, 222206.7 ], [ 689211.9, 222182.8 ], [ 689178.6, 222211.3 ], [ 689165.1, 222212.1 ], [ 689029.3, 222167.8 ], [ 688858.9, 222145.7 ], [ 688796.6, 222090.1 ], [ 688777.9, 222098.6 ], [ 688740.6, 222132.1 ], [ 688727.6, 222133.8 ], [ 688714.5, 222060.8 ], [ 688686.4, 222009.9 ], [ 688702.9, 222097.4 ], [ 688702.4, 222108.4 ], [ 688696.2, 222111.3 ], [ 688620.9, 222089.8 ], [ 688576.4, 222060.7 ], [ 688508.8, 222062.8 ], [ 688396.5, 222040.4 ], [ 688193.1, 222064.2 ], [ 688116.6, 222092.4 ], [ 688098.0, 222110.1 ], [ 688093.3, 222145.4 ], [ 688125.6, 222218.8 ], [ 688129.4, 222245.4 ], [ 688072.4, 222343.1 ], [ 688076.8, 222371.6 ], [ 688071.2, 222383.6 ], [ 688020.9, 222455.1 ], [ 687936.0, 222531.8 ], [ 687900.6, 222555.0 ], [ 687869.8, 222566.1 ], [ 687779.0, 222568.6 ], [ 687716.2, 222556.2 ], [ 687682.0, 222544.2 ], [ 687710.4, 222470.5 ], [ 687780.5, 222416.8 ], [ 687832.0, 222333.0 ], [ 687891.7, 222284.1 ], [ 687902.5, 222260.6 ], [ 687897.7, 222223.3 ], [ 687863.2, 222200.1 ], [ 687840.5, 222166.1 ], [ 687806.7, 222133.1 ], [ 687805.1, 222124.3 ], [ 687814.7, 222070.5 ], [ 687797.4, 222032.1 ], [ 687795.8, 221961.9 ], [ 687796.8, 221936.4 ], [ 687828.2, 221812.8 ], [ 687818.0, 221793.8 ], [ 687778.7, 221766.0 ], [ 687756.2, 221761.5 ], [ 687623.7, 221754.3 ], [ 687514.7, 221763.5 ], [ 687411.164, 221743.0 ], [ 687380.1, 221744.9 ], [ 687329.9, 221771.1 ], [ 687247.6, 221761.8 ], [ 687211.0, 221771.6 ], [ 687184.3, 221761.8 ], [ 687116.3, 221757.9 ], [ 687014.7, 221805.9 ], [ 686969.6, 221815.8 ], [ 686948.7, 221863.9 ], [ 686941.0, 221866.5 ], [ 686922.3, 221859.6 ], [ 686912.8, 221827.3 ], [ 686904.9, 221820.0 ], [ 686841.4, 221799.5 ], [ 686787.2, 221727.6 ], [ 686758.7, 221713.6 ], [ 686715.2, 221707.5 ], [ 686638.9, 221726.8 ], [ 686570.5, 221730.1 ], [ 686431.1, 221719.0 ], [ 686340.0, 221735.2 ], [ 686333.4, 221725.6 ], [ 686376.1, 221693.0 ], [ 686644.8, 221586.7 ], [ 686655.0, 221575.4 ], [ 686657.3, 221552.4 ], [ 686647.135, 221459.556 ], [ 686555.1, 221480.6 ], [ 686479.2, 221515.5 ], [ 686364.9, 221546.1 ], [ 686134.3, 221640.8 ], [ 685990.1, 221785.7 ], [ 685903.1, 221856.7 ], [ 685844.9, 221948.7 ], [ 685771.4, 221986.0 ], [ 685746.9, 222025.7 ], [ 685693.6, 222057.5 ], [ 685638.9, 222121.0 ], [ 685615.9, 222165.3 ], [ 685616.4, 222181.0 ], [ 685646.2, 222247.6 ], [ 685647.4, 222281.0 ], [ 685562.0, 222445.1 ], [ 685523.7, 222473.7 ], [ 685490.8, 222486.4 ], [ 685385.4, 222512.8 ], [ 685360.1, 222537.5 ], [ 685350.1, 222576.1 ], [ 685360.4, 222654.6 ], [ 685356.7, 222689.4 ], [ 685317.7, 222868.2 ], [ 685257.9, 223043.0 ], [ 685228.3, 223111.1 ], [ 685099.6, 223212.9 ], [ 685082.4, 223242.1 ], [ 685076.4, 223267.1 ], [ 685080.4, 223289.6 ], [ 685107.4, 223330.4 ], [ 685094.5, 223532.3 ], [ 685082.1, 223538.3 ], [ 685080.3, 223662.5 ], [ 685094.6, 223724.1 ], [ 685157.8, 223825.9 ], [ 685161.8, 223852.3 ], [ 685152.6, 223907.3 ], [ 685115.8, 223998.4 ], [ 685111.5, 224098.5 ], [ 685030.6, 224189.7 ], [ 685022.2, 224225.7 ], [ 685023.5, 224257.7 ], [ 685050.8, 224348.9 ], [ 685049.1, 224377.2 ], [ 685032.9, 224414.1 ], [ 684984.6, 224473.7 ], [ 684971.0, 224604.2 ], [ 684991.3, 224723.2 ], [ 685038.0, 224776.0 ], [ 685047.8, 224803.0 ], [ 685055.3, 224881.0 ], [ 685090.877, 224975.5 ], [ 685074.642, 225084.94 ], [ 685058.2, 225128.5 ], [ 685058.7, 225183.6 ], [ 685025.9, 225272.6 ], [ 685032.0, 225291.0 ], [ 685078.1, 225344.0 ], [ 685077.4, 225389.4 ], [ 685026.9, 225509.0 ], [ 685021.1, 225534.7 ], [ 685023.5, 225577.2 ], [ 685012.2, 225610.8 ], [ 684973.0, 225656.8 ], [ 684946.9, 225702.5 ], [ 684932.0, 225743.6 ], [ 684921.3, 225833.6 ], [ 684911.8, 225858.8 ], [ 684885.0, 225886.4 ], [ 684834.9, 225906.8 ], [ 684721.3, 225920.8 ], [ 684707.5, 225943.8 ], [ 684692.8, 226005.6 ], [ 684643.1, 226000.7 ], [ 684604.1, 226062.9 ], [ 684580.9, 226117.4 ], [ 684585.284, 226133.412 ], [ 684616.8, 226157.1 ], [ 684618.2, 226166.9 ], [ 684594.2, 226236.9 ], [ 684631.219, 226299.739 ], [ 684644.6, 226369.6 ], [ 684685.1, 226411.7 ], [ 684691.3, 226443.7 ], [ 684723.7, 226477.6 ], [ 684741.3, 226512.4 ], [ 684744.4, 226569.7 ], [ 684759.9, 226603.9 ], [ 684768.7, 226703.4 ], [ 684805.6, 226763.8 ], [ 684805.2, 226797.2 ], [ 684787.1, 226853.4 ], [ 684792.9, 226905.9 ], [ 684803.8, 226960.7 ], [ 684843.6, 227027.6 ], [ 684810.8, 227068.3 ], [ 684843.8, 227391.1 ], [ 684847.6, 227549.6 ], [ 684823.9, 227605.2 ], [ 684783.4, 227643.9 ], [ 684772.0, 227664.7 ], [ 684779.2, 227748.4 ], [ 684817.5, 227831.2 ], [ 684818.3, 227853.2 ], [ 684789.1, 227886.9 ], [ 684696.5, 227927.3 ], [ 684540.8, 227960.3 ], [ 684366.8, 227959.7 ], [ 684329.3, 227945.7 ], [ 684304.8, 227926.3 ], [ 684242.3, 227815.0 ], [ 684185.4, 227749.3 ], [ 684127.7, 227604.7 ], [ 684074.4, 227567.1 ], [ 684032.1, 227527.0 ], [ 683981.9, 227514.9 ], [ 683939.1, 227494.8 ], [ 683827.8, 227505.6 ], [ 683774.0, 227535.4 ], [ 683641.3, 227567.4 ], [ 683547.2, 227602.9 ], [ 683517.0, 227621.0 ], [ 683456.5, 227701.0 ], [ 683361.7, 227892.7 ], [ 683344.5, 227916.5 ], [ 683344.1, 227934.7 ], [ 683240.1, 228226.1 ], [ 683232.6, 228431.3 ], [ 683185.9, 228518.7 ], [ 683157.4, 228547.3 ], [ 683136.523, 228558.787 ], [ 683159.4, 228604.7 ], [ 683191.9, 228646.2 ], [ 683223.4, 228663.0 ], [ 683293.7, 228670.3 ], [ 683324.4, 228696.6 ], [ 683342.1, 228735.4 ], [ 683360.4, 228754.3 ], [ 683431.6, 228774.4 ], [ 683465.3, 228790.9 ], [ 683565.7, 228879.5 ], [ 683637.2, 228969.9 ], [ 683661.2, 228979.9 ], [ 683718.0, 228984.1 ], [ 683763.2, 229008.4 ], [ 683825.2, 229013.7 ], [ 683867.4, 229036.2 ], [ 683933.9, 229137.0 ], [ 683985.7, 229169.4 ], [ 684007.0, 229175.4 ], [ 684033.0, 229223.8 ], [ 684074.3, 229273.8 ], [ 684140.3, 229344.4 ], [ 684262.2, 229456.7 ], [ 684290.5, 229473.2 ], [ 684352.2, 229483.4 ], [ 684546.8, 229473.3 ], [ 684612.0, 229491.6 ], [ 684649.3, 229522.6 ], [ 684662.7, 229516.9 ], [ 684681.8, 229519.9 ], [ 684776.8, 229561.9 ], [ 684808.0, 229567.2 ], [ 684797.5, 229608.2 ], [ 684818.5, 229611.7 ], [ 684833.8, 229625.9 ], [ 684825.7, 229627.5 ], [ 684775.2, 229691.1 ], [ 684701.5, 229726.8 ], [ 684678.7, 229764.8 ], [ 684650.4, 229833.6 ], [ 684628.9, 229982.9 ], [ 684630.9, 230026.8 ], [ 684637.9, 230049.3 ], [ 684681.1, 230119.3 ], [ 684683.5, 230148.7 ], [ 684700.2, 230182.4 ], [ 684696.1, 230210.8 ], [ 684554.6, 230294.8 ], [ 684490.6, 230284.3 ], [ 684233.1, 230365.5 ], [ 684200.2, 230364.0 ], [ 684152.9, 230342.6 ], [ 684033.9, 230316.9 ], [ 683994.6, 230288.6 ], [ 683786.3, 230265.0 ], [ 683717.7, 230281.8 ], [ 683661.3, 230280.9 ], [ 683574.058, 230262.257 ], [ 683462.765, 230251.413 ], [ 683393.706, 230266.538 ], [ 683353.755, 230268.25 ], [ 683340.913, 230263.684 ], [ 683270.2, 230201.8 ], [ 683254.2, 230197.1 ], [ 683197.8, 230210.3 ], [ 683177.1, 230222.5 ], [ 683166.1, 230249.6 ], [ 683140.141, 230374.053 ], [ 683134.181, 230444.433 ], [ 683100.995, 230561.619 ], [ 682906.2, 230660.366 ], [ 682804.2, 230741.7 ], [ 682736.5, 230829.7 ], [ 682687.5, 230862.5 ], [ 682633.3, 230990.4 ], [ 682572.9, 231060.9 ], [ 682462.1, 231215.2 ], [ 682455.2, 231267.9 ], [ 682494.3, 231255.5 ], [ 682525.8, 231269.6 ], [ 682483.0, 231340.8 ], [ 682452.2, 231363.5 ], [ 682413.1, 231374.4 ], [ 682407.576, 231310.711 ], [ 682393.2, 231311.0 ], [ 682242.7, 231398.9 ], [ 682235.5, 231425.9 ], [ 682185.1, 231528.1 ], [ 682110.0, 231632.9 ], [ 682083.5, 231659.4 ], [ 682058.2, 231675.9 ], [ 682033.8, 231682.5 ], [ 681825.4, 231683.4 ], [ 681826.1, 231705.9 ], [ 681835.1, 231725.4 ], [ 681871.1, 231747.6 ], [ 681844.9, 231771.7 ], [ 681758.5, 231799.2 ], [ 681615.1, 231811.1 ], [ 681593.4, 231819.2 ], [ 681474.5, 231915.5 ], [ 681405.8, 231944.0 ], [ 681366.2, 231967.9 ], [ 681356.8, 231983.2 ], [ 681362.1, 232076.0 ], [ 681310.5, 232131.3 ], [ 681285.6, 232140.6 ], [ 681308.6, 232154.8 ], [ 681347.012, 232161.247 ], [ 681344.14, 232175.125 ], [ 681273.701, 232259.261 ], [ 681157.741, 232354.737 ], [ 681108.1, 232346.8 ], [ 681085.4, 232350.4 ], [ 681027.211, 232383.992 ], [ 681001.6, 232410.2 ], [ 680936.0, 232298.4 ], [ 680908.8, 232281.8 ], [ 680886.4, 232279.9 ], [ 680536.3, 232381.9 ], [ 680476.9, 232410.1 ], [ 680351.4, 232523.4 ], [ 680318.5, 232574.6 ], [ 680289.5, 232641.6 ], [ 680152.3, 232754.7 ], [ 680146.5, 232742.7 ], [ 680086.03, 232698.986 ], [ 680043.987, 232760.287 ], [ 680013.7, 232733.0 ], [ 679935.2, 232845.6 ], [ 679920.2, 232889.8 ], [ 679902.424, 232893.608 ], [ 679840.6, 232981.5 ], [ 679802.4, 233097.2 ], [ 679780.9, 233124.3 ], [ 679711.3, 233255.5 ], [ 679715.9, 233314.4 ], [ 679706.2, 233366.0 ], [ 679694.4, 233381.4 ], [ 679638.2, 233418.9 ], [ 679595.1, 233468.1 ], [ 679564.544, 233547.148 ], [ 679556.218, 233543.58 ], [ 679544.659, 233588.101 ], [ 679600.801, 233765.985 ], [ 679587.455, 233886.563 ], [ 679591.899, 234015.38 ], [ 679585.659, 234123.578 ], [ 679683.181, 234235.871 ], [ 679685.022, 234346.324 ], [ 679726.681, 234404.279 ], [ 679694.3, 234451.5 ], [ 679733.9, 234476.3 ], [ 679792.3, 234461.9 ], [ 679861.045, 234485.682 ], [ 679871.286, 234492.85 ], [ 679875.894, 234508.723 ], [ 679821.1, 234633.3 ], [ 679728.8, 234650.7 ], [ 679671.0, 234679.0 ], [ 679627.5, 234759.7 ], [ 679575.5, 234805.4 ], [ 679531.3, 234860.5 ], [ 679508.3, 234869.7 ], [ 679425.8, 234867.5 ], [ 679405.2, 234880.1 ], [ 679353.1, 234946.8 ], [ 679343.9, 234995.3 ], [ 679284.3, 235087.3 ], [ 679248.9, 235187.4 ], [ 679259.6, 235212.1 ], [ 679304.5, 235264.2 ], [ 679311.1, 235281.2 ], [ 679311.4, 235318.5 ], [ 679289.0, 235370.2 ], [ 679237.1, 235422.6 ], [ 679234.1, 235433.8 ], [ 679239.0, 235440.6 ], [ 679277.3, 235422.0 ], [ 679344.2, 235409.4 ], [ 679481.3, 235416.2 ], [ 679528.4, 235427.8 ], [ 679589.5, 235457.0 ], [ 679650.2, 235508.3 ], [ 679676.0, 235544.6 ], [ 679698.8, 235535.1 ], [ 679776.1, 235532.8 ], [ 679788.8, 235526.5 ], [ 679798.5, 235514.8 ], [ 679803.3, 235476.8 ], [ 679876.5, 235574.4 ], [ 679913.9, 235610.7 ], [ 680027.6, 235677.8 ], [ 680090.814, 235794.74 ], [ 680041.1, 235882.3 ], [ 679996.8, 235927.9 ], [ 679939.1, 236074.8 ], [ 679923.1, 236134.3 ], [ 679921.4, 236239.3 ], [ 680008.0, 236363.2 ], [ 680046.1, 236384.3 ], [ 680059.6, 236419.0 ], [ 680064.0, 236461.0 ], [ 680079.1, 236497.0 ], [ 680080.0, 236544.2 ], [ 680067.9, 236563.3 ], [ 680200.9, 236691.8 ], [ 680241.0, 236809.5 ], [ 680472.1, 236938.2 ], [ 680434.1, 236968.1 ], [ 680408.2, 236999.1 ], [ 680317.4, 237153.6 ], [ 680258.5, 237215.3 ], [ 680193.5, 237265.5 ], [ 680137.4, 237296.3 ], [ 680002.5, 237353.4 ], [ 679891.7, 237412.4 ], [ 679856.5, 237424.6 ], [ 679691.8, 237438.5 ], [ 679554.0, 237464.9 ], [ 679460.0, 237498.7 ], [ 679406.6, 237506.6 ], [ 679375.6, 237520.7 ], [ 679316.9, 237562.1 ], [ 679183.7, 237733.5 ], [ 679106.7, 237934.8 ], [ 679079.4, 238021.7 ], [ 679072.1, 238066.1 ], [ 679077.3, 238120.0 ], [ 679177.5, 238470.8 ], [ 679182.6, 238572.0 ], [ 679177.0, 238674.3 ], [ 679184.1, 238721.3 ], [ 679213.5, 238792.0 ], [ 679308.3, 238933.8 ], [ 679332.3, 238996.4 ], [ 679331.4, 239086.1 ], [ 679317.3, 239189.6 ], [ 679373.3, 239208.0 ], [ 679403.3, 239211.2 ], [ 679547.2, 239187.5 ], [ 679568.9, 239192.8 ], [ 679611.6, 239237.1 ], [ 679615.3, 239276.4 ], [ 679568.7, 239356.4 ], [ 679557.2, 239397.7 ], [ 679492.8, 239549.5 ], [ 679492.4, 239565.8 ], [ 679507.3, 239565.2 ], [ 679578.1, 239497.6 ], [ 679616.2, 239450.2 ], [ 679697.4, 239378.3 ], [ 679712.3, 239375.2 ], [ 679780.3, 239414.1 ], [ 679819.6, 239427.4 ], [ 680061.0, 239456.1 ], [ 680087.2, 239471.3 ], [ 680159.6, 239540.1 ], [ 680206.1, 239551.0 ], [ 680236.0, 239541.7 ], [ 680314.4, 239481.7 ], [ 680328.8, 239461.4 ], [ 680350.4, 239422.7 ], [ 680372.9, 239322.3 ], [ 680385.2, 239294.0 ], [ 680408.8, 239275.5 ], [ 680450.8, 239256.1 ], [ 680455.5, 239268.0 ], [ 680452.5, 239289.0 ], [ 680410.1, 239431.7 ], [ 680388.6, 239552.8 ], [ 680396.4, 239625.5 ], [ 680415.161, 239697.479 ], [ 680404.1, 239717.6 ], [ 680328.471, 239805.132 ], [ 680330.088, 239821.132 ], [ 680422.3, 239942.1 ], [ 680493.3, 240012.9 ], [ 680546.3, 240053.6 ], [ 680731.0, 240167.4 ], [ 680795.4, 240225.9 ], [ 680838.8, 240254.4 ], [ 680857.045, 240276.961 ], [ 680852.738, 240294.649 ], [ 680839.984, 240305.562 ], [ 680738.6, 240363.2 ], [ 680700.1, 240399.2 ], [ 680683.3, 240424.1 ], [ 680669.8, 240468.5 ], [ 680674.4, 240548.8 ], [ 680670.449, 240570.537 ], [ 680655.41, 240583.177 ], [ 680626.771, 240591.336 ], [ 680617.6, 240612.8 ], [ 680619.2, 240647.3 ], [ 680690.9, 240755.7 ], [ 680697.0, 240802.2 ], [ 680694.5, 240862.2 ], [ 680655.4, 240928.7 ], [ 680628.3, 240956.1 ], [ 680606.6, 241009.7 ], [ 680591.9, 241073.9 ], [ 680588.7, 241134.8 ], [ 680559.4, 241223.3 ], [ 680545.8, 241242.8 ], [ 680438.8, 241307.4 ], [ 680373.9, 241379.9 ], [ 680274.0, 241441.6 ], [ 680258.6, 241475.6 ], [ 680249.1, 241616.5 ], [ 680269.8, 241723.2 ], [ 680271.5, 241776.6 ], [ 680263.1, 241796.4 ], [ 680205.4, 241871.1 ], [ 680196.9, 241894.5 ], [ 680190.717, 241989.951 ], [ 680196.32, 242010.324 ], [ 680213.637, 242036.3 ], [ 680268.849, 242082.609 ], [ 680290.601, 242116.814 ], [ 680300.025, 242148.431 ], [ 680306.9, 242230.5 ], [ 680300.2, 242262.8 ], [ 680256.7, 242351.5 ], [ 680271.1, 242508.4 ], [ 680286.9, 242555.7 ], [ 680280.8, 242627.7 ], [ 680256.8, 242705.3 ], [ 680244.3, 242770.3 ], [ 680242.3, 242841.5 ], [ 680245.2, 242867.0 ], [ 680259.8, 242902.2 ], [ 680328.4, 243014.7 ], [ 680348.4, 243123.7 ], [ 680347.6, 243139.4 ], [ 680335.5, 243154.6 ], [ 680283.4, 243205.0 ], [ 680280.5, 243224.0 ], [ 680320.6, 243281.0 ], [ 680369.3, 243398.7 ], [ 680367.0, 243426.6 ], [ 680348.1, 243464.7 ], [ 680257.4, 243569.2 ], [ 680274.2, 243658.4 ], [ 680289.1, 243691.2 ], [ 680289.1, 243722.7 ], [ 680295.3, 243735.7 ], [ 680321.7, 243743.6 ], [ 680347.4, 243707.0 ], [ 680364.4, 243646.1 ], [ 680388.883, 243635.581 ], [ 680458.0, 243581.9 ], [ 680504.2, 243570.7 ], [ 680550.798, 243516.575 ], [ 680544.183, 243577.469 ], [ 680510.853, 243629.224 ], [ 680507.548, 243655.124 ], [ 680513.146, 243671.752 ], [ 680548.7, 243629.0 ], [ 680559.4, 243628.3 ], [ 680548.7, 243668.3 ], [ 680550.8, 243721.9 ], [ 680576.0, 243793.9 ], [ 680591.681, 243814.021 ], [ 680578.006, 243842.787 ], [ 680588.929, 243854.481 ], [ 680598.277, 243853.632 ], [ 680614.8, 243839.1 ], [ 680618.3, 243827.5 ], [ 680615.1, 243782.4 ], [ 680632.3, 243761.9 ], [ 680650.4, 243671.8 ], [ 680685.9, 243639.1 ], [ 680712.1, 243639.6 ], [ 680712.3, 243648.1 ], [ 680692.4, 243661.3 ], [ 680683.1, 243675.7 ], [ 680678.7, 243696.9 ], [ 680697.2, 243737.6 ], [ 680700.5, 243829.0 ], [ 680728.8, 243860.6 ], [ 680680.5, 243893.5 ], [ 680670.9, 243941.5 ], [ 680678.8, 243986.5 ], [ 680683.8, 243994.0 ], [ 680700.5, 243953.1 ], [ 680720.9, 243918.1 ], [ 680726.3, 243919.0 ], [ 680722.6, 243981.9 ], [ 680733.4, 244012.3 ], [ 680799.7, 244067.3 ], [ 680805.5, 244089.4 ], [ 680793.4, 244121.0 ], [ 680801.8, 244124.4 ], [ 680829.7, 244085.6 ], [ 680821.3, 244064.0 ], [ 680804.3, 244044.4 ], [ 680800.9, 244021.5 ], [ 680828.0, 243974.8 ], [ 680840.9, 243973.1 ], [ 680837.2, 244023.1 ], [ 680847.2, 244042.3 ], [ 680873.4, 244067.3 ], [ 680882.2, 244087.3 ], [ 680888.0, 244134.4 ], [ 680880.5, 244152.7 ], [ 680885.9, 244154.0 ], [ 680897.6, 244141.0 ], [ 680908.4, 244116.5 ], [ 680913.0, 244074.0 ], [ 680919.7, 244065.6 ], [ 680951.435, 244054.998 ], [ 680966.0, 244054.3 ], [ 681009.9, 244090.7 ], [ 681069.5, 244124.3 ], [ 681050.3, 244174.7 ], [ 681008.9, 244222.3 ], [ 681007.9, 244242.4 ], [ 681013.1, 244253.0 ], [ 681039.0, 244266.9 ], [ 681117.0, 244274.8 ], [ 681152.6, 244298.2 ], [ 681179.0, 244361.4 ], [ 681200.9, 244385.2 ], [ 681215.4, 244415.6 ], [ 681230.4, 244462.9 ], [ 681270.792, 244546.513 ], [ 681322.683, 244600.072 ], [ 681323.1, 244617.578 ], [ 681312.471, 244633.416 ], [ 681327.685, 244652.797 ], [ 681333.103, 244671.137 ], [ 681334.145, 244735.949 ], [ 681352.4, 244794.2 ], [ 681361.0, 244802.8 ], [ 681387.7, 244804.8 ], [ 681502.8, 244798.3 ], [ 681533.0, 244887.3 ], [ 681602.2, 244962.6 ], [ 682003.1, 245167.3 ], [ 682060.7, 245228.8 ], [ 682071.4, 245217.0 ], [ 682095.8, 245327.6 ], [ 682070.0, 245486.7 ], [ 682057.0, 245691.1 ], [ 681980.9, 246006.0 ], [ 681973.9, 246062.5 ], [ 681961.9, 246057.9 ], [ 681932.1, 246217.8 ], [ 681923.1, 246281.0 ], [ 681918.6, 246403.8 ], [ 681930.8, 246504.3 ], [ 681968.5, 246611.6 ], [ 682025.3, 246709.8 ], [ 682152.3, 246847.9 ], [ 682333.25, 247023.243 ], [ 682427.052, 247124.844 ], [ 682478.478, 247194.144 ], [ 682539.766, 247329.287 ], [ 682573.655, 247371.905 ], [ 682594.707, 247376.013 ], [ 682622.425, 247423.042 ], [ 682638.868, 247410.467 ], [ 682682.706, 247478.673 ], [ 682683.338, 247583.54 ], [ 682798.2, 247763.4 ], [ 682850.5, 247827.8 ], [ 682780.1, 247877.5 ], [ 682890.9, 248027.5 ], [ 682904.518, 248058.909 ] ] } } ] } From 5d36c2a55e4e168fc18d1441bd18f22ec28b2b72 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:42:21 +0100 Subject: [PATCH 522/919] Add ol.geom.flat.closestPoint --- src/ol/geom/flatgeom.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 8e87578e94..588858d624 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -5,6 +5,39 @@ goog.require('goog.asserts'); goog.require('goog.vec.Mat4'); +/** + * Returns the point on the line segment (x1, y1) to (x2, y2) that is closest to + * the point (x, y). + * @param {number} x X. + * @param {number} y Y. + * @param {number} x1 X1. + * @param {number} y1 Y1. + * @param {number} x2 X2. + * @param {number} y2 Y2. + * @param {Array.} closestPoint Closest point. + */ +ol.geom.flat.closestPoint = function(x, y, x1, y1, x2, y2, closestPoint) { + var dx = x2 - x1; + var dy = y2 - y1; + if (dx === 0 && dy === 0) { + closestPoint[0] = x1; + closestPoint[1] = y1; + } else { + var t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy); + if (t > 1) { + closestPoint[0] = x2; + closestPoint[1] = y2; + } else if (t > 0) { + closestPoint[0] = x1 + dx * t; + closestPoint[1] = y1 + dy * t; + } else { + closestPoint[0] = x1; + closestPoint[1] = y1; + } + } +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. From 74bf8a7ecb55975176aef138b38bf823090ce99a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:42:41 +0100 Subject: [PATCH 523/919] Add ol.geom.closest --- src/ol/geom/closestgeom.js | 194 ++++++++++++++++++++++++++ test/spec/ol/geom/closestgeom.test.js | 119 ++++++++++++++++ 2 files changed, 313 insertions(+) create mode 100644 src/ol/geom/closestgeom.js create mode 100644 test/spec/ol/geom/closestgeom.test.js diff --git a/src/ol/geom/closestgeom.js b/src/ol/geom/closestgeom.js new file mode 100644 index 0000000000..cb7b6b29bd --- /dev/null +++ b/src/ol/geom/closestgeom.js @@ -0,0 +1,194 @@ +// FIXME find better names for these functions + +goog.provide('ol.geom.closest'); + +goog.require('goog.asserts'); +goog.require('ol.geom.flat'); + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {number} maxSquaredDelta Max squared delta. + * @return {number} Max squared delta. + */ +ol.geom.closest.getMaxSquaredDelta = + function(flatCoordinates, offset, end, stride, maxSquaredDelta) { + var x1 = flatCoordinates[offset]; + var y1 = flatCoordinates[offset + 1]; + for (offset += stride; offset < end; offset += stride) { + var x2 = flatCoordinates[offset]; + var y2 = flatCoordinates[offset + 1]; + var squaredDelta = ol.geom.flat.squaredDistance(x1, y1, x2, y2); + if (squaredDelta > maxSquaredDelta) { + maxSquaredDelta = squaredDelta; + } + x1 = x2; + y1 = y2; + } + return maxSquaredDelta; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @param {number} maxSquaredDelta Max squared delta. + * @return {number} Max squared delta. + */ +ol.geom.closest.getsMaxSquaredDelta = + function(flatCoordinates, offset, ends, stride, maxSquaredDelta) { + var i, ii; + for (i = 0, ii = ends.length; i < ii; ++i) { + var end = ends[i]; + maxSquaredDelta = ol.geom.closest.getMaxSquaredDelta( + flatCoordinates, offset, end, stride, maxSquaredDelta); + offset = end; + } + return maxSquaredDelta; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @param {number} maxSquaredDelta Max squared delta. + * @return {number} Max squared delta. + */ +ol.geom.closest.getssMaxSquaredDelta = + function(flatCoordinates, offset, endss, stride, maxSquaredDelta) { + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + maxSquaredDelta = ol.geom.closest.getsMaxSquaredDelta( + flatCoordinates, offset, ends, stride, maxSquaredDelta); + offset = ends[ends.length - 1]; + } + return maxSquaredDelta; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {number} maxDelta Max delta. + * @param {boolean} isRing Is ring. + * @param {number} x X. + * @param {number} y Y. + * @param {Array.} closestPoint Closest point. + * @param {number} minSquaredDistance Minimum squared distance. + * @return {number} Minimum squared distance. + */ +ol.geom.closest.getClosestPoint = function(flatCoordinates, offset, end, stride, + maxDelta, isRing, x, y, closestPoint, minSquaredDistance) { + if (offset == end) { + return minSquaredDistance; + } + var squaredDistance; + if (maxDelta === 0) { + // All points are identical, so just test the first point. + squaredDistance = ol.geom.flat.squaredDistance( + x, y, flatCoordinates[offset], flatCoordinates[offset + 1]); + if (squaredDistance < minSquaredDistance) { + closestPoint[0] = flatCoordinates[offset]; + closestPoint[1] = flatCoordinates[offset + 1]; + return squaredDistance; + } else { + return minSquaredDistance; + } + } + goog.asserts.assert(maxDelta > 0); + var point = [NaN, NaN]; + var index = offset + stride; + while (index < end) { + ol.geom.flat.closestPoint(x, y, + flatCoordinates[index - stride], flatCoordinates[index - stride + 1], + flatCoordinates[index], flatCoordinates[index + 1], point); + squaredDistance = ol.geom.flat.squaredDistance(x, y, point[0], point[1]); + if (squaredDistance < minSquaredDistance) { + minSquaredDistance = squaredDistance; + closestPoint[0] = point[0]; + closestPoint[1] = point[1]; + index += stride; + } else { + index += stride * Math.max( + ((Math.sqrt(squaredDistance) - + Math.sqrt(minSquaredDistance)) / maxDelta) | 0, 1); + } + } + if (isRing) { + // check the closing segment + ol.geom.flat.closestPoint(x, y, + flatCoordinates[end - stride], flatCoordinates[end - stride + 1], + flatCoordinates[offset], flatCoordinates[offset + 1], point); + squaredDistance = ol.geom.flat.squaredDistance(x, y, point[0], point[1]); + if (squaredDistance < minSquaredDistance) { + minSquaredDistance = squaredDistance; + closestPoint[0] = point[0]; + closestPoint[1] = point[1]; + } + } + return minSquaredDistance; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @param {number} maxDelta Max delta. + * @param {boolean} isRing Is ring. + * @param {number} x X. + * @param {number} y Y. + * @param {Array.} closestPoint Closest point. + * @param {number} minSquaredDistance Minimum squared distance. + * @return {number} Minimum squared distance. + */ +ol.geom.closest.getsClosestPoint = function(flatCoordinates, offset, ends, + stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance) { + var i, ii; + for (i = 0, ii = ends.length; i < ii; ++i) { + var end = ends[i]; + minSquaredDistance = ol.geom.closest.getClosestPoint( + flatCoordinates, offset, end, stride, + maxDelta, isRing, x, y, closestPoint, minSquaredDistance); + offset = end; + } + return minSquaredDistance; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @param {number} maxDelta Max delta. + * @param {boolean} isRing Is ring. + * @param {number} x X. + * @param {number} y Y. + * @param {Array.} closestPoint Closest point. + * @param {number} minSquaredDistance Minimum squared distance. + * @return {number} Minimum squared distance. + */ +ol.geom.closest.getssClosestPoint = function(flatCoordinates, offset, endss, + stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance) { + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + minSquaredDistance = ol.geom.closest.getsClosestPoint( + flatCoordinates, offset, ends, stride, + maxDelta, isRing, x, y, closestPoint, minSquaredDistance); + offset = ends[ends.length - 1]; + } + return minSquaredDistance; +}; diff --git a/test/spec/ol/geom/closestgeom.test.js b/test/spec/ol/geom/closestgeom.test.js new file mode 100644 index 0000000000..102f924e4e --- /dev/null +++ b/test/spec/ol/geom/closestgeom.test.js @@ -0,0 +1,119 @@ +goog.provide('ol.test.geom.closest'); + + +describe('ol.geom.closest', function() { + + describe('with simple data', function() { + + var flatCoordinates = [0, 0, 1, 0, 3, 0, 5, 0, 6, 0, 8, 0, 11, 0]; + + describe('ol.geom.closest.getMaxSquaredDelta', function() { + + it('returns the expected value in simple cases', function() { + expect(ol.geom.closest.getMaxSquaredDelta( + flatCoordinates, 0, flatCoordinates.length, 2, 0)).to.be(9); + }); + + }); + + describe('ol.geom.closest.getClosestPoint', function() { + + it('returns the expected value', function() { + var maxDelta = Math.sqrt(ol.geom.closest.getMaxSquaredDelta( + flatCoordinates, 0, flatCoordinates.length, 2, 0)); + expect(maxDelta).to.be(3); + var closestPoint = [NaN, NaN]; + expect(ol.geom.closest.getClosestPoint( + flatCoordinates, 0, flatCoordinates.length, 2, + maxDelta, false, 0, 0, closestPoint, Infinity)).to.be(0); + expect(closestPoint).to.eql([0, 0]); + expect(ol.geom.closest.getClosestPoint( + flatCoordinates, 0, flatCoordinates.length, 2, + maxDelta, false, 4, 1, closestPoint, Infinity)).to.be(1); + expect(closestPoint).to.eql([4, 0]); + expect(ol.geom.closest.getClosestPoint( + flatCoordinates, 0, flatCoordinates.length, 2, + maxDelta, false, 5, 2, closestPoint, Infinity)).to.be(4); + expect(closestPoint).to.eql([5, 0]); + expect(ol.geom.closest.getClosestPoint( + flatCoordinates, 0, flatCoordinates.length, 2, + maxDelta, false, 10, 100, closestPoint, Infinity)).to.be(10000); + expect(closestPoint).to.eql([10, 0]); + }); + + }); + + }); + + describe('with real data', function() { + + var flatCoordinates = [ + 224.55, 250.15, 226.91, 244.19, 233.31, 241.45, 234.98, 236.06, + 244.21, 232.76, 262.59, 215.31, 267.76, 213.81, 273.57, 201.84, + 273.12, 192.16, 277.62, 189.03, 280.36, 181.41, 286.51, 177.74, + 292.41, 159.37, 296.91, 155.64, 314.95, 151.37, 319.75, 145.16, + 330.33, 137.57, 341.48, 139.96, 369.98, 137.89, 387.39, 142.51, + 391.28, 139.39, 409.52, 141.14, 414.82, 139.75, 427.72, 127.30, + 439.60, 119.74, 474.93, 107.87, 486.51, 106.75, 489.20, 109.45, + 493.79, 108.63, 504.74, 119.66, 512.96, 122.35, 518.63, 120.89, + 524.09, 126.88, 529.57, 127.86, 534.21, 140.93, 539.27, 147.24, + 567.69, 148.91, 575.25, 157.26, 580.62, 158.15, 601.53, 156.85, + 617.74, 159.86, 622.00, 167.04, 629.55, 194.60, 638.90, 195.61, + 641.26, 200.81, 651.77, 204.56, 671.55, 222.55, 683.68, 217.45, + 695.25, 219.15, 700.64, 217.98, 703.12, 214.36, 712.26, 215.87, + 721.49, 212.81, 727.81, 213.36, 729.98, 208.73, 735.32, 208.20, + 739.94, 204.77, 769.98, 208.42, 779.60, 216.87, 784.20, 218.16, + 800.24, 214.62, 810.53, 219.73, 817.19, 226.82, 820.77, 236.17, + 827.23, 236.16, 829.89, 239.89, 851.00, 248.94, 859.88, 255.49, + 865.21, 268.53, 857.95, 280.30, 865.48, 291.45, 866.81, 298.66, + 864.68, 302.71, 867.79, 306.17, 859.87, 311.37, 860.08, 314.35, + 858.29, 314.94, 858.10, 327.60, 854.54, 335.40, 860.92, 343.00, + 856.43, 350.15, 851.42, 352.96, 849.84, 359.59, 854.56, 365.53, + 849.74, 370.38, 844.09, 371.89, 844.75, 380.44, 841.52, 383.67, + 839.57, 390.40, 845.59, 399.05, 848.40, 407.55, 843.71, 411.30, + 844.09, 419.88, 839.51, 432.76, 841.33, 441.04, 847.62, 449.22, + 847.16, 458.44, 851.38, 462.79, 853.97, 471.15, 866.36, 480.77 + ]; + + describe('ol.geom.closet.maSquaredDelta', function() { + + it('returns the expected value', function() { + expect(ol.geom.closest.getMaxSquaredDelta( + flatCoordinates, 0, flatCoordinates.length, 2, 0)). + to.roughlyEqual(1389.1058, 1e-9); + }); + + }); + + describe('ol.geom.closest.getClosestPoint', function() { + + it('returns the expected value', function() { + var maxDelta = Math.sqrt(ol.geom.closest.getMaxSquaredDelta( + flatCoordinates, 0, flatCoordinates.length, 2, 0)); + expect(maxDelta).to.roughlyEqual(Math.sqrt(1389.1058), 1e-9); + var closestPoint = [NaN, NaN]; + expect(ol.geom.closest.getClosestPoint( + flatCoordinates, 0, flatCoordinates.length, 2, + maxDelta, false, 0, 0, closestPoint, Infinity)). + to.roughlyEqual(110902.405, 1e-9); + expect(closestPoint).to.eql([292.41, 159.37]); + expect(ol.geom.closest.getClosestPoint( + flatCoordinates, 0, flatCoordinates.length, 2, + maxDelta, false, 500, 500, closestPoint, Infinity)). + to.roughlyEqual(106407.905, 1e-9); + expect(closestPoint).to.eql([671.55, 222.55]); + expect(ol.geom.closest.getClosestPoint( + flatCoordinates, 0, flatCoordinates.length, 2, + maxDelta, false, 1000, 500, closestPoint, Infinity)). + to.roughlyEqual(18229.4425, 1e-9); + expect(closestPoint).to.eql([866.36, 480.77]); + }); + + }); + + }); + +}); + + +goog.require('ol.geom.closest'); From 35c20bea79959e8337f4aebcc9249b3cce358185 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:43:22 +0100 Subject: [PATCH 524/919] Add ol.geom.Geometry#getClosestPoint --- src/ol/geom/geometry.exports | 1 + src/ol/geom/geometry.js | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/ol/geom/geometry.exports b/src/ol/geom/geometry.exports index f53f11edbc..9737cb2f7d 100644 --- a/src/ol/geom/geometry.exports +++ b/src/ol/geom/geometry.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.Geometry +@exportProperty ol.geom.Geometry.prototype.getClosestPoint @exportProperty ol.geom.Geometry.prototype.getExtent @exportProperty ol.geom.Geometry.prototype.getLayout @exportProperty ol.geom.Geometry.prototype.getSimplifiedGeometry diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 7f85cdafcb..d6ea82e51c 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -103,6 +103,30 @@ ol.geom.Geometry = function() { goog.inherits(ol.geom.Geometry, ol.Observable); +/** + * @param {number} x X. + * @param {number} y Y. + * @param {ol.Coordinate} closestPoint Closest point. + * @param {number} minSquaredDistance Minimum squared distance. + * @return {number} Minimum squared distance. + */ +ol.geom.Geometry.prototype.closestPointXY = goog.abstractMethod; + + +/** + * @param {ol.Coordinate} point Point. + * @param {ol.Coordinate=} opt_closestPoint Closest point. + * @return {ol.Coordinate} Closest point. + */ +ol.geom.Geometry.prototype.getClosestPoint = function(point, opt_closestPoint) { + // FIXME check extent + var closestPoint = goog.isDef(opt_closestPoint) ? + opt_closestPoint : [NaN, NaN]; + this.closestPointXY(point[0], point[1], closestPoint, Infinity); + return closestPoint; +}; + + /** * @param {number} stride Stride. * @private From 1add41033a71f17f768e6d16adc5e069a50888c7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:43:42 +0100 Subject: [PATCH 525/919] Add ol.geom.Point#closestPointXY --- src/ol/geom/point.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index 13a9973d7f..8d8ab4a343 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -20,6 +20,24 @@ ol.geom.Point = function(coordinates, opt_layout) { goog.inherits(ol.geom.Point, ol.geom.Geometry); +/** + * @inheritDoc + */ +ol.geom.Point.prototype.closestPointXY = + function(x, y, closestPoint, minSquaredDistance) { + var flatCoordinates = this.flatCoordinates; + var squaredDistance = ol.geom.flat.squaredDistance( + x, y, flatCoordinates[0], flatCoordinates[1]); + if (squaredDistance < minSquaredDistance) { + closestPoint[0] = flatCoordinates[0]; + closestPoint[1] = flatCoordinates[1]; + return squaredDistance; + } else { + return minSquaredDistance; + } +}; + + /** * @return {ol.geom.RawPoint} Coordinates. */ From a19daf4b1d1f16f7c2f3d0fb7d2a4386d67753a5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:44:00 +0100 Subject: [PATCH 526/919] Add ol.geom.LineString#closestPointXY --- src/ol/geom/linestring.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 7ae4bc0edf..94b2c9e584 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.LineString'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); goog.require('ol.geom.simplify'); @@ -13,12 +14,43 @@ goog.require('ol.geom.simplify'); * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.LineString = function(coordinates, opt_layout) { + goog.base(this); + + /** + * @private + * @type {number} + */ + this.maxDelta_ = -1; + + /** + * @private + * @type {number} + */ + this.maxDeltaRevision_ = -1; + this.setCoordinates(coordinates, opt_layout); + }; goog.inherits(ol.geom.LineString, ol.geom.Geometry); +/** + * @inheritDoc + */ +ol.geom.LineString.prototype.closestPointXY = + function(x, y, closestPoint, minSquaredDistance) { + if (this.maxDeltaRevision_ != this.revision) { + this.maxDelta_ = Math.sqrt(ol.geom.closest.getMaxSquaredDelta( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0)); + this.maxDeltaRevision_ = this.revision; + } + return ol.geom.closest.getClosestPoint( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, + this.maxDelta_, false, x, y, closestPoint, minSquaredDistance); +}; + + /** * @return {ol.geom.RawLineString} Coordinates. */ From 0c2a70f3a20c80cadab14de50f3b92ad385588da Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:44:15 +0100 Subject: [PATCH 527/919] Add ol.geom.LinearRing#closestPointXY --- src/ol/geom/linearring.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index d47230b5a9..566e07200b 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.LinearRing'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); goog.require('ol.geom.simplify'); @@ -13,12 +14,43 @@ goog.require('ol.geom.simplify'); * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ ol.geom.LinearRing = function(coordinates, opt_layout) { + goog.base(this); + + /** + * @private + * @type {number} + */ + this.maxDelta_ = -1; + + /** + * @private + * @type {number} + */ + this.maxDeltaRevision_ = -1; + this.setCoordinates(coordinates, opt_layout); + }; goog.inherits(ol.geom.LinearRing, ol.geom.Geometry); +/** + * @inheritDoc + */ +ol.geom.LinearRing.prototype.closestPointXY = + function(x, y, closestPoint, minSquaredDistance) { + if (this.maxDeltaRevision_ != this.revision) { + this.maxDelta_ = Math.sqrt(ol.geom.closest.getMaxSquaredDelta( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0)); + this.maxDeltaRevision_ = this.revision; + } + return ol.geom.closest.getClosestPoint( + this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, + this.maxDelta_, true, x, y, closestPoint, minSquaredDistance); +}; + + /** * @return {number} Area. */ From cf659f07539f90153714d13ac0f24e2ecc430b2b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:44:43 +0100 Subject: [PATCH 528/919] Add ol.geom.Polygon#closestPointXY --- src/ol/geom/polygon.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 2db8dced32..dbf17b63e9 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -2,6 +2,7 @@ goog.provide('ol.geom.Polygon'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.LinearRing'); +goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); goog.require('ol.geom.simplify'); @@ -35,12 +36,40 @@ ol.geom.Polygon = function(coordinates, opt_layout) { */ this.interiorPoint_ = null; + /** + * @private + * @type {number} + */ + this.maxDelta_ = -1; + + /** + * @private + * @type {number} + */ + this.maxDeltaRevision_ = -1; + this.setCoordinates(coordinates, opt_layout); }; goog.inherits(ol.geom.Polygon, ol.geom.Geometry); +/** + * @inheritDoc + */ +ol.geom.Polygon.prototype.closestPointXY = + function(x, y, closestPoint, minSquaredDistance) { + if (this.maxDeltaRevision_ != this.revision) { + this.maxDelta_ = Math.sqrt(ol.geom.closest.getsMaxSquaredDelta( + this.flatCoordinates, 0, this.ends_, this.stride, 0)); + this.maxDeltaRevision_ = this.revision; + } + return ol.geom.closest.getsClosestPoint( + this.flatCoordinates, 0, this.ends_, this.stride, + this.maxDelta_, true, x, y, closestPoint, minSquaredDistance); +}; + + /** * @inheritDoc */ From 99042c956af66a529e152bd577fa17da9a022107 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:45:02 +0100 Subject: [PATCH 529/919] Add ol.geom.MultiPoint#closestPointXY --- src/ol/geom/multipoint.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index 3092b41284..0330e274d1 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -19,6 +19,27 @@ ol.geom.MultiPoint = function(coordinates, opt_layout) { goog.inherits(ol.geom.MultiPoint, ol.geom.Geometry); +/** + * @inheritDoc + */ +ol.geom.MultiPoint.prototype.closestPointXY = + function(x, y, closestPoint, minSquaredDistance) { + var flatCoordinates = this.flatCoordinates; + var stride = this.stride; + var i, ii; + for (i = 0, ii = flatCoordinates.length; i < ii; i += stride) { + var squaredDistance = ol.geom.flat.squaredDistance( + x, y, flatCoordinates[i], flatCoordinates[i + 1]); + if (squaredDistance < minSquaredDistance) { + minSquaredDistance = squaredDistance; + closestPoint[0] = flatCoordinates[i]; + closestPoint[1] = flatCoordinates[i + 1]; + } + } + return minSquaredDistance; +}; + + /** * @return {ol.geom.RawMultiPoint} Coordinates. */ From 128e174ee253f10bc3f0354563316fe2b174db3f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:45:25 +0100 Subject: [PATCH 530/919] Add ol.geom.MultiLineString#closestPointXY --- src/ol/geom/multilinestring.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index a2649ab2d3..1c6ecf4331 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -2,6 +2,7 @@ goog.provide('ol.geom.MultiLineString'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.LineString'); +goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); goog.require('ol.geom.simplify'); @@ -23,12 +24,40 @@ ol.geom.MultiLineString = function(coordinates, opt_layout) { */ this.ends_ = []; + /** + * @private + * @type {number} + */ + this.maxDelta_ = -1; + + /** + * @private + * @type {number} + */ + this.maxDeltaRevision_ = -1; + this.setCoordinates(coordinates, opt_layout); }; goog.inherits(ol.geom.MultiLineString, ol.geom.Geometry); +/** + * @inheritDoc + */ +ol.geom.MultiLineString.prototype.closestPointXY = + function(x, y, closestPoint, minSquaredDistance) { + if (this.maxDeltaRevision_ != this.revision) { + this.maxDelta_ = Math.sqrt(ol.geom.closest.getsMaxSquaredDelta( + this.flatCoordinates, 0, this.ends_, this.stride, 0)); + this.maxDeltaRevision_ = this.revision; + } + return ol.geom.closest.getsClosestPoint( + this.flatCoordinates, 0, this.ends_, this.stride, + this.maxDelta_, false, x, y, closestPoint, minSquaredDistance); +}; + + /** * @return {ol.geom.RawMultiLineString} Coordinates. */ From 77a658ddee5fdf5dcfedbea825a478ae748944eb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 12:45:45 +0100 Subject: [PATCH 531/919] Add ol.geom.MultiPolygon#closestPointXY --- src/ol/geom/multipolygon.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 657a461b12..b9aca5c04b 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -2,6 +2,7 @@ goog.provide('ol.geom.MultiPolygon'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.Polygon'); +goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); goog.require('ol.geom.simplify'); @@ -35,12 +36,40 @@ ol.geom.MultiPolygon = function(coordinates, opt_layout) { */ this.interiorPoints_ = null; + /** + * @private + * @type {number} + */ + this.maxDelta_ = -1; + + /** + * @private + * @type {number} + */ + this.maxDeltaRevision_ = -1; + this.setCoordinates(coordinates, opt_layout); }; goog.inherits(ol.geom.MultiPolygon, ol.geom.Geometry); +/** + * @inheritDoc + */ +ol.geom.MultiPolygon.prototype.closestPointXY = + function(x, y, closestPoint, minSquaredDistance) { + if (this.maxDeltaRevision_ != this.revision) { + this.maxDelta_ = Math.sqrt(ol.geom.closest.getssMaxSquaredDelta( + this.flatCoordinates, 0, this.endss_, this.stride, 0)); + this.maxDeltaRevision_ = this.revision; + } + return ol.geom.closest.getssClosestPoint( + this.flatCoordinates, 0, this.endss_, this.stride, + this.maxDelta_, true, x, y, closestPoint, minSquaredDistance); +}; + + /** * @inheritDoc */ From 1076c5cad1686545e94710ad9b19c1337723e048 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 14:57:26 +0100 Subject: [PATCH 532/919] Add ol.source.Vector#getClosestFeatureToCoordinate --- src/ol/source/vectorsource.exports | 1 + src/ol/source/vectorsource.js | 61 ++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/src/ol/source/vectorsource.exports b/src/ol/source/vectorsource.exports index 723761892d..8632fdab66 100644 --- a/src/ol/source/vectorsource.exports +++ b/src/ol/source/vectorsource.exports @@ -1,5 +1,6 @@ @exportClass ol.source.Vector ol.source.VectorOptions @exportProperty ol.source.Vector.prototype.addFeature +@exportProperty ol.source.Vector.prototype.getClosestFeatureToCoordinate @exportProperty ol.source.Vector.prototype.forEachFeature @exportProperty ol.source.Vector.prototype.getAllFeatures @exportProperty ol.source.Vector.prototype.getAllFeaturesAtCoordinate diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index cf8ca377ae..25425f9b05 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -165,6 +165,67 @@ ol.source.Vector.prototype.getAllFeaturesInExtent = function(extent) { }; +/** + * @param {ol.Coordinate} coordinate Coordinate. + * @return {ol.Feature} Closest feature. + */ +ol.source.Vector.prototype.getClosestFeatureToCoordinate = + function(coordinate) { + // Find the closest feature using branch and bound. We start searching an + // infinite extent, and find the distance from the first feature found. This + // becomes the closest feature. We then compute a smaller extent which any + // closer feature must overlap. We search again with this smaller extent, + // trying to find a closer feature. The loop continues until no closer + // feature can be found. + var x = coordinate[0]; + var y = coordinate[1]; + var closestFeature = null; + var closestPoint = [NaN, NaN]; + var minSquaredDistance = Infinity; + var extent = [-Infinity, -Infinity, Infinity, Infinity]; + /** @type {Object.} */ + var visitedFeatures = {}; + var callback = + /** + * @param {ol.Feature} feature Feature. + * @return {ol.Feature|undefined} Closer feature. + */ + function(feature) { + // Make sure that we only test against each feature once. This both avoids + // unnecessary calculation and prevents an infinite loop which would occur + // if the coordinate is exactly half way between two features. + var featureKey = goog.getUid(feature).toString(); + if (visitedFeatures.hasOwnProperty(featureKey)) { + return undefined; + } else { + visitedFeatures[featureKey] = true; + } + var geometry = feature.getGeometry(); + if (goog.isNull(geometry)) { + return undefined; + } + var previousMinSquaredDistance = minSquaredDistance; + minSquaredDistance = geometry.closestPointXY( + x, y, closestPoint, minSquaredDistance); + goog.asserts.assert(minSquaredDistance <= previousMinSquaredDistance); + if (minSquaredDistance < previousMinSquaredDistance) { + closestFeature = feature; + var minDistance = Math.sqrt(minSquaredDistance); + extent[0] = closestPoint[0] - minDistance; + extent[1] = closestPoint[1] - minDistance; + extent[2] = closestPoint[0] + minDistance; + extent[3] = closestPoint[1] + minDistance; + return closestFeature; + } else { + return undefined; + } + }; + while (goog.isDef(this.rBush_.forEachInExtent(extent, callback))) { + } + return closestFeature; +}; + + /** * @param {goog.events.Event} event Event. * @private From d0d36193a7c80dbffc9865d0a734792a14be2546 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 7 Dec 2013 14:59:13 +0100 Subject: [PATCH 533/919] Have some fun in the complex-geometry example --- examples/complex-geometry.js | 66 +++++++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 4 deletions(-) diff --git a/examples/complex-geometry.js b/examples/complex-geometry.js index 7554de376e..039ca24b3d 100644 --- a/examples/complex-geometry.js +++ b/examples/complex-geometry.js @@ -6,9 +6,12 @@ goog.require('ol.control'); goog.require('ol.control.ScaleLine'); goog.require('ol.control.ScaleLineUnits'); goog.require('ol.format.GeoJSON'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.Point'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.proj'); +goog.require('ol.shape'); goog.require('ol.source.TileWMS'); goog.require('ol.source.Vector'); goog.require('ol.style.Stroke'); @@ -63,18 +66,73 @@ var styleArray = [new ol.style.Style({ color: 'rgba(128,0,128,0.8)', lineCap: 'round', lineJoin: 'round', - width: 5 + width: 3 }) })]; +var vectorSource = new ol.source.Vector(); $.getJSON('data/mtbland.geojson', function(data) { var format = new ol.format.GeoJSON(); - var vectorSource = new ol.source.Vector(); format.readObject(data, vectorSource.addFeature, vectorSource); - map.getLayers().push(new ol.layer.Vector({ + var vectorLayer = new ol.layer.Vector({ source: vectorSource, styleFunction: function(feature) { return styleArray; } - })); + }); + map.getLayers().push(vectorLayer); +}); + +var point = null; +var line = null; +var displaySnap = function(coordinate) { + var closestFeature = vectorSource.getClosestFeatureToCoordinate(coordinate); + if (closestFeature === null) { + point = null; + line = null; + } else { + var geometry = closestFeature.getGeometry(); + var closestPoint = geometry.getClosestPoint(coordinate); + if (point === null) { + point = new ol.geom.Point(closestPoint); + } else { + point.setCoordinates(closestPoint); + } + if (line === null) { + line = new ol.geom.LineString([coordinate, closestPoint]); + } else { + line.setCoordinates([coordinate, closestPoint]); + } + } + map.requestRenderFrame(); +}; + +$(map.getViewport()).on('mousemove', function(evt) { + var coordinate = map.getEventCoordinate(evt.originalEvent); + displaySnap(coordinate); +}); + +map.on('singleclick', function(evt) { + var coordinate = evt.getCoordinate(); + displaySnap(coordinate); +}); + +var imageStyle = ol.shape.renderCircle(5, null, new ol.style.Stroke({ + color: 'rgba(255,0,0,0.9)', + width: 1 +})); +var strokeStyle = new ol.style.Stroke({ + color: 'rgba(255,0,0,0.9)', + width: 1 +}); +map.on('postcompose', function(evt) { + var render = evt.getRender(); + if (point !== null) { + render.setImageStyle(imageStyle); + render.drawPointGeometry(point); + } + if (line !== null) { + render.setFillStrokeStyle(null, strokeStyle); + render.drawLineStringGeometry(line); + } }); From 5e710b4e57fae5a91065b63e08940b2fb12d85f3 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 8 Dec 2013 09:20:08 +0000 Subject: [PATCH 534/919] Add snapping to synthetic points example (to be removed) --- examples/synthetic-points.js | 62 ++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 3 deletions(-) diff --git a/examples/synthetic-points.js b/examples/synthetic-points.js index ac139f50d5..b1cdfdb882 100644 --- a/examples/synthetic-points.js +++ b/examples/synthetic-points.js @@ -3,6 +3,7 @@ goog.require('ol.Map'); goog.require('ol.Overlay'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); +goog.require('ol.geom.LineString'); goog.require('ol.geom.Point'); goog.require('ol.layer.Vector'); goog.require('ol.shape'); @@ -37,10 +38,11 @@ var styles = { })] }; +var vectorSource = new ol.source.Vector({ + features: features +}); var vector = new ol.layer.Vector({ - source: new ol.source.Vector({ - features: features - }), + source: vectorSource, styleFunction: function(feature, resolution) { return styles[feature.get('size')]; } @@ -61,6 +63,60 @@ var map = new ol.Map({ overlays: [popup] }); +var point = null; +var line = null; +var displaySnap = function(coordinate) { + var closestFeature = vectorSource.getClosestFeatureToCoordinate(coordinate); + if (closestFeature === null) { + point = null; + line = null; + } else { + var geometry = closestFeature.getGeometry(); + var closestPoint = geometry.getClosestPoint(coordinate); + if (point === null) { + point = new ol.geom.Point(closestPoint); + } else { + point.setCoordinates(closestPoint); + } + if (line === null) { + line = new ol.geom.LineString([coordinate, closestPoint]); + } else { + line.setCoordinates([coordinate, closestPoint]); + } + } + map.requestRenderFrame(); +}; + +$(map.getViewport()).on('mousemove', function(evt) { + var coordinate = map.getEventCoordinate(evt.originalEvent); + displaySnap(coordinate); +}); + +map.on('singleclick', function(evt) { + var coordinate = evt.getCoordinate(); + displaySnap(coordinate); +}); + +var imageStyle = ol.shape.renderCircle(10, null, new ol.style.Stroke({ + color: 'rgba(255,255,0,0.9)', + width: 3 +})); +var strokeStyle = new ol.style.Stroke({ + color: 'rgba(255,255,0,0.9)', + width: 3 +}); +map.on('postcompose', function(evt) { + var render = evt.getRender(); + if (point !== null) { + render.setImageStyle(imageStyle); + render.drawPointGeometry(point); + } + if (line !== null) { + render.setFillStrokeStyle(null, strokeStyle); + render.drawLineStringGeometry(line); + } +}); + $(map.getViewport()).on('mousemove', function(e) { var pixel = map.getEventPixel(e.originalEvent); From 3178331bab426316f7bd85da9db0ff94605d57cf Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 9 Dec 2013 11:14:40 +0000 Subject: [PATCH 535/919] Reduce garbage generation --- src/ol/geom/closestgeom.js | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/ol/geom/closestgeom.js b/src/ol/geom/closestgeom.js index cb7b6b29bd..e802ad6e0a 100644 --- a/src/ol/geom/closestgeom.js +++ b/src/ol/geom/closestgeom.js @@ -85,10 +85,11 @@ ol.geom.closest.getssMaxSquaredDelta = * @param {number} y Y. * @param {Array.} closestPoint Closest point. * @param {number} minSquaredDistance Minimum squared distance. + * @param {Array.=} opt_tmpPoint Temporary point object. * @return {number} Minimum squared distance. */ ol.geom.closest.getClosestPoint = function(flatCoordinates, offset, end, stride, - maxDelta, isRing, x, y, closestPoint, minSquaredDistance) { + maxDelta, isRing, x, y, closestPoint, minSquaredDistance, opt_tmpPoint) { if (offset == end) { return minSquaredDistance; } @@ -106,17 +107,18 @@ ol.geom.closest.getClosestPoint = function(flatCoordinates, offset, end, stride, } } goog.asserts.assert(maxDelta > 0); - var point = [NaN, NaN]; + var tmpPoint = goog.isDef(opt_tmpPoint) ? opt_tmpPoint : [NaN, NaN]; var index = offset + stride; while (index < end) { ol.geom.flat.closestPoint(x, y, flatCoordinates[index - stride], flatCoordinates[index - stride + 1], - flatCoordinates[index], flatCoordinates[index + 1], point); - squaredDistance = ol.geom.flat.squaredDistance(x, y, point[0], point[1]); + flatCoordinates[index], flatCoordinates[index + 1], tmpPoint); + squaredDistance = ol.geom.flat.squaredDistance( + x, y, tmpPoint[0], tmpPoint[1]); if (squaredDistance < minSquaredDistance) { minSquaredDistance = squaredDistance; - closestPoint[0] = point[0]; - closestPoint[1] = point[1]; + closestPoint[0] = tmpPoint[0]; + closestPoint[1] = tmpPoint[1]; index += stride; } else { index += stride * Math.max( @@ -128,12 +130,13 @@ ol.geom.closest.getClosestPoint = function(flatCoordinates, offset, end, stride, // check the closing segment ol.geom.flat.closestPoint(x, y, flatCoordinates[end - stride], flatCoordinates[end - stride + 1], - flatCoordinates[offset], flatCoordinates[offset + 1], point); - squaredDistance = ol.geom.flat.squaredDistance(x, y, point[0], point[1]); + flatCoordinates[offset], flatCoordinates[offset + 1], tmpPoint); + squaredDistance = ol.geom.flat.squaredDistance( + x, y, tmpPoint[0], tmpPoint[1]); if (squaredDistance < minSquaredDistance) { minSquaredDistance = squaredDistance; - closestPoint[0] = point[0]; - closestPoint[1] = point[1]; + closestPoint[0] = tmpPoint[0]; + closestPoint[1] = tmpPoint[1]; } } return minSquaredDistance; @@ -151,16 +154,19 @@ ol.geom.closest.getClosestPoint = function(flatCoordinates, offset, end, stride, * @param {number} y Y. * @param {Array.} closestPoint Closest point. * @param {number} minSquaredDistance Minimum squared distance. + * @param {Array.=} opt_tmpPoint Temporary point object. * @return {number} Minimum squared distance. */ ol.geom.closest.getsClosestPoint = function(flatCoordinates, offset, ends, - stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance) { + stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, + opt_tmpPoint) { + var tmpPoint = goog.isDef(opt_tmpPoint) ? opt_tmpPoint : [NaN, NaN]; var i, ii; for (i = 0, ii = ends.length; i < ii; ++i) { var end = ends[i]; minSquaredDistance = ol.geom.closest.getClosestPoint( flatCoordinates, offset, end, stride, - maxDelta, isRing, x, y, closestPoint, minSquaredDistance); + maxDelta, isRing, x, y, closestPoint, minSquaredDistance, tmpPoint); offset = end; } return minSquaredDistance; @@ -178,16 +184,19 @@ ol.geom.closest.getsClosestPoint = function(flatCoordinates, offset, ends, * @param {number} y Y. * @param {Array.} closestPoint Closest point. * @param {number} minSquaredDistance Minimum squared distance. + * @param {Array.=} opt_tmpPoint Temporary point object. * @return {number} Minimum squared distance. */ ol.geom.closest.getssClosestPoint = function(flatCoordinates, offset, endss, - stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance) { + stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, + opt_tmpPoint) { + var tmpPoint = goog.isDef(opt_tmpPoint) ? opt_tmpPoint : [NaN, NaN]; var i, ii; for (i = 0, ii = endss.length; i < ii; ++i) { var ends = endss[i]; minSquaredDistance = ol.geom.closest.getsClosestPoint( flatCoordinates, offset, ends, stride, - maxDelta, isRing, x, y, closestPoint, minSquaredDistance); + maxDelta, isRing, x, y, closestPoint, minSquaredDistance, tmpPoint); offset = ends[ends.length - 1]; } return minSquaredDistance; From 66f1826358de97e1a8a1af03fb661eecc2d7a86a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 9 Dec 2013 11:30:28 +0000 Subject: [PATCH 536/919] Add ol.extent.closestSquaredDistanceXY --- src/ol/extent.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/ol/extent.js b/src/ol/extent.js index b396d8c33d..762d26a3d0 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -84,6 +84,32 @@ ol.extent.clone = function(extent, opt_extent) { }; +/** + * @param {ol.Extent} extent Extent. + * @param {number} x X. + * @param {number} y Y. + * @return {number} Closest squared distance. + */ +ol.extent.closestSquaredDistanceXY = function(extent, x, y) { + var dx, dy; + if (x < extent[0]) { + dx = extent[0] - x; + } else if (extent[2] < x) { + dx = x - extent[2]; + } else { + dx = 0; + } + if (y < extent[1]) { + dy = extent[1] - y; + } else if (extent[3] < y) { + dy = y - extent[3]; + } else { + dy = 0; + } + return dx * dx + dy * dy; +}; + + /** * Checks if the passed coordinate is contained or on the edge of the extent. * From f4fe0046b2c7b20dfc1b9eda83211287c15d2b5a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 9 Dec 2013 11:31:40 +0000 Subject: [PATCH 537/919] Check closest point against extent --- src/ol/geom/geometry.js | 1 - src/ol/geom/linearring.js | 5 +++++ src/ol/geom/linestring.js | 5 +++++ src/ol/geom/multilinestring.js | 5 +++++ src/ol/geom/multipoint.js | 5 +++++ src/ol/geom/multipolygon.js | 5 +++++ src/ol/geom/polygon.js | 5 +++++ 7 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index d6ea82e51c..2b8d58ae6b 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -119,7 +119,6 @@ ol.geom.Geometry.prototype.closestPointXY = goog.abstractMethod; * @return {ol.Coordinate} Closest point. */ ol.geom.Geometry.prototype.getClosestPoint = function(point, opt_closestPoint) { - // FIXME check extent var closestPoint = goog.isDef(opt_closestPoint) ? opt_closestPoint : [NaN, NaN]; this.closestPointXY(point[0], point[1], closestPoint, Infinity); diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index 566e07200b..4531ecf474 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -1,5 +1,6 @@ goog.provide('ol.geom.LinearRing'); +goog.require('ol.extent'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); @@ -40,6 +41,10 @@ goog.inherits(ol.geom.LinearRing, ol.geom.Geometry); */ ol.geom.LinearRing.prototype.closestPointXY = function(x, y, closestPoint, minSquaredDistance) { + if (minSquaredDistance < + ol.extent.closestSquaredDistanceXY(this.getExtent(), x, y)) { + return minSquaredDistance; + } if (this.maxDeltaRevision_ != this.revision) { this.maxDelta_ = Math.sqrt(ol.geom.closest.getMaxSquaredDelta( this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0)); diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 94b2c9e584..45760bcc73 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -1,5 +1,6 @@ goog.provide('ol.geom.LineString'); +goog.require('ol.extent'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); @@ -40,6 +41,10 @@ goog.inherits(ol.geom.LineString, ol.geom.Geometry); */ ol.geom.LineString.prototype.closestPointXY = function(x, y, closestPoint, minSquaredDistance) { + if (minSquaredDistance < + ol.extent.closestSquaredDistanceXY(this.getExtent(), x, y)) { + return minSquaredDistance; + } if (this.maxDeltaRevision_ != this.revision) { this.maxDelta_ = Math.sqrt(ol.geom.closest.getMaxSquaredDelta( this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0)); diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 1c6ecf4331..15e5d578d9 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -1,5 +1,6 @@ goog.provide('ol.geom.MultiLineString'); +goog.require('ol.extent'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.LineString'); goog.require('ol.geom.closest'); @@ -47,6 +48,10 @@ goog.inherits(ol.geom.MultiLineString, ol.geom.Geometry); */ ol.geom.MultiLineString.prototype.closestPointXY = function(x, y, closestPoint, minSquaredDistance) { + if (minSquaredDistance < + ol.extent.closestSquaredDistanceXY(this.getExtent(), x, y)) { + return minSquaredDistance; + } if (this.maxDeltaRevision_ != this.revision) { this.maxDelta_ = Math.sqrt(ol.geom.closest.getsMaxSquaredDelta( this.flatCoordinates, 0, this.ends_, this.stride, 0)); diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index 0330e274d1..ad390a7adf 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -1,5 +1,6 @@ goog.provide('ol.geom.MultiPoint'); +goog.require('ol.extent'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.Point'); goog.require('ol.geom.flat'); @@ -24,6 +25,10 @@ goog.inherits(ol.geom.MultiPoint, ol.geom.Geometry); */ ol.geom.MultiPoint.prototype.closestPointXY = function(x, y, closestPoint, minSquaredDistance) { + if (minSquaredDistance < + ol.extent.closestSquaredDistanceXY(this.getExtent(), x, y)) { + return minSquaredDistance; + } var flatCoordinates = this.flatCoordinates; var stride = this.stride; var i, ii; diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index b9aca5c04b..41014f4c0c 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -1,5 +1,6 @@ goog.provide('ol.geom.MultiPolygon'); +goog.require('ol.extent'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.Polygon'); goog.require('ol.geom.closest'); @@ -59,6 +60,10 @@ goog.inherits(ol.geom.MultiPolygon, ol.geom.Geometry); */ ol.geom.MultiPolygon.prototype.closestPointXY = function(x, y, closestPoint, minSquaredDistance) { + if (minSquaredDistance < + ol.extent.closestSquaredDistanceXY(this.getExtent(), x, y)) { + return minSquaredDistance; + } if (this.maxDeltaRevision_ != this.revision) { this.maxDelta_ = Math.sqrt(ol.geom.closest.getssMaxSquaredDelta( this.flatCoordinates, 0, this.endss_, this.stride, 0)); diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index dbf17b63e9..fc4b3a891a 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -1,5 +1,6 @@ goog.provide('ol.geom.Polygon'); +goog.require('ol.extent'); goog.require('ol.geom.Geometry'); goog.require('ol.geom.LinearRing'); goog.require('ol.geom.closest'); @@ -59,6 +60,10 @@ goog.inherits(ol.geom.Polygon, ol.geom.Geometry); */ ol.geom.Polygon.prototype.closestPointXY = function(x, y, closestPoint, minSquaredDistance) { + if (minSquaredDistance < + ol.extent.closestSquaredDistanceXY(this.getExtent(), x, y)) { + return minSquaredDistance; + } if (this.maxDeltaRevision_ != this.revision) { this.maxDelta_ = Math.sqrt(ol.geom.closest.getsMaxSquaredDelta( this.flatCoordinates, 0, this.ends_, this.stride, 0)); From b4c6a36a4f2d2069e71ba6e5d7f206b3d5dec409 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 9 Dec 2013 18:45:06 +0100 Subject: [PATCH 538/919] Fix and accelerate ol.source.Vector#getClosestFeatureToCoordinate The previous implementation contained a bug (the reduced extent was calculated around the closest point found, it should have been calculated around the coordinate being searched for). This allows a speed-up that requires only a single traversal of the R-Tree (as opposed to many traversals). --- src/ol/source/vectorsource.js | 61 +++++++++++++---------------------- 1 file changed, 23 insertions(+), 38 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 25425f9b05..49c3edf8c9 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -174,54 +174,39 @@ ol.source.Vector.prototype.getClosestFeatureToCoordinate = // Find the closest feature using branch and bound. We start searching an // infinite extent, and find the distance from the first feature found. This // becomes the closest feature. We then compute a smaller extent which any - // closer feature must overlap. We search again with this smaller extent, - // trying to find a closer feature. The loop continues until no closer - // feature can be found. + // closer feature must intersect. We continue searching with this smaller + // extent, trying to find a closer feature. Every time we find a closer + // feature, we update the extent being searched so that any even closer + // feature must intersect it. We continue until we run out of features. var x = coordinate[0]; var y = coordinate[1]; var closestFeature = null; var closestPoint = [NaN, NaN]; var minSquaredDistance = Infinity; var extent = [-Infinity, -Infinity, Infinity, Infinity]; - /** @type {Object.} */ - var visitedFeatures = {}; - var callback = + this.rBush_.forEachInExtent(extent, /** * @param {ol.Feature} feature Feature. - * @return {ol.Feature|undefined} Closer feature. */ function(feature) { - // Make sure that we only test against each feature once. This both avoids - // unnecessary calculation and prevents an infinite loop which would occur - // if the coordinate is exactly half way between two features. - var featureKey = goog.getUid(feature).toString(); - if (visitedFeatures.hasOwnProperty(featureKey)) { - return undefined; - } else { - visitedFeatures[featureKey] = true; - } - var geometry = feature.getGeometry(); - if (goog.isNull(geometry)) { - return undefined; - } - var previousMinSquaredDistance = minSquaredDistance; - minSquaredDistance = geometry.closestPointXY( - x, y, closestPoint, minSquaredDistance); - goog.asserts.assert(minSquaredDistance <= previousMinSquaredDistance); - if (minSquaredDistance < previousMinSquaredDistance) { - closestFeature = feature; - var minDistance = Math.sqrt(minSquaredDistance); - extent[0] = closestPoint[0] - minDistance; - extent[1] = closestPoint[1] - minDistance; - extent[2] = closestPoint[0] + minDistance; - extent[3] = closestPoint[1] + minDistance; - return closestFeature; - } else { - return undefined; - } - }; - while (goog.isDef(this.rBush_.forEachInExtent(extent, callback))) { - } + var geometry = feature.getGeometry(); + goog.asserts.assert(!goog.isNull(geometry)); + var previousMinSquaredDistance = minSquaredDistance; + minSquaredDistance = geometry.closestPointXY( + x, y, closestPoint, minSquaredDistance); + if (minSquaredDistance < previousMinSquaredDistance) { + closestFeature = feature; + // This is sneaky. Reduce the extent that it is currently being + // searched while the R-Tree traversal using this same extent object + // is still in progress. This is safe because the new extent is + // strictly contained by the old extent. + var minDistance = Math.sqrt(minSquaredDistance); + extent[0] = x - minDistance; + extent[1] = y - minDistance; + extent[2] = x + minDistance; + extent[3] = y + minDistance; + } + }); return closestFeature; }; From 496c9c4250ed80c2570335ac8b96b94efa1e8b53 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 9 Dec 2013 18:56:34 +0100 Subject: [PATCH 539/919] Add and improve comments --- src/ol/geom/closestgeom.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ol/geom/closestgeom.js b/src/ol/geom/closestgeom.js index e802ad6e0a..5fa7712359 100644 --- a/src/ol/geom/closestgeom.js +++ b/src/ol/geom/closestgeom.js @@ -7,6 +7,8 @@ goog.require('ol.geom.flat'); /** + * Return the squared of the largest distance between any pair of consecutive + * coordinates. * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. * @param {number} end End. @@ -121,13 +123,23 @@ ol.geom.closest.getClosestPoint = function(flatCoordinates, offset, end, stride, closestPoint[1] = tmpPoint[1]; index += stride; } else { + // Skip ahead multiple points, because we know that all the skipped + // points cannot be any closer than the closest point we have found so + // far. We know this because we know how close the current point is, how + // close the closest point we have found so far is, and the maximum + // distance between consecutive points. For example, if we're currently + // at distance 10, the best we've found so far is 3, and that the maximum + // distance between consecutive points is 2, then we'll need to skip at + // least (10 - 3) / 2 == 3 (rounded down) points to have any chance of + // finding a closer point. We use Math.max(..., 1) to ensure that we + // always advance at least one point, to avoid an infinite loop. index += stride * Math.max( ((Math.sqrt(squaredDistance) - Math.sqrt(minSquaredDistance)) / maxDelta) | 0, 1); } } if (isRing) { - // check the closing segment + // Check the closing segment. ol.geom.flat.closestPoint(x, y, flatCoordinates[end - stride], flatCoordinates[end - stride + 1], flatCoordinates[offset], flatCoordinates[offset + 1], tmpPoint); From fafb7e487e2e67eb01cfa06027bbf5d5be9c04af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 3 Dec 2013 16:19:40 +0100 Subject: [PATCH 540/919] Add ol.render.FeaturesOverlay --- src/ol/render/featuresoverlay.js | 199 +++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 src/ol/render/featuresoverlay.js diff --git a/src/ol/render/featuresoverlay.js b/src/ol/render/featuresoverlay.js new file mode 100644 index 0000000000..3b5352c784 --- /dev/null +++ b/src/ol/render/featuresoverlay.js @@ -0,0 +1,199 @@ +goog.provide('ol.render.FeaturesOverlay'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.events'); +goog.require('goog.events.EventType'); +goog.require('goog.object'); +goog.require('ol.Collection'); +goog.require('ol.CollectionEventType'); +goog.require('ol.Feature'); +goog.require('ol.render.EventType'); +goog.require('ol.style.StyleFunction'); + + + +/** + * @constructor + */ +ol.render.FeaturesOverlay = function() { + + /** + * @private + * @type {ol.Collection} + */ + this.features_ = null; + + /** + * @private + * @type {Array.} + */ + this.featuresListenerKeys_ = null; + + /** + * @private + * @type {Object.} + */ + this.featureChangeListenerKeys_ = null; + + /** + * @private + * @type {ol.Map} + */ + this.map_ = null; + + /** + * @private + * @type {goog.events.Key} + */ + this.postComposeListenerKey_ = null; + + /** + * @private + * @type {ol.style.StyleFunction|undefined} + */ + this.styleFunction_ = undefined; + +}; + + +/** + * @return {ol.Collection} Features collection. + */ +ol.render.FeaturesOverlay.prototype.getFeatures = function() { + return this.features_; +}; + + +/** + * @private + */ +ol.render.FeaturesOverlay.prototype.handleFeatureChange_ = function() { + this.requestRenderFrame_(); +}; + + +/** + * @private + * @param {ol.CollectionEvent} collectionEvent Collection event. + */ +ol.render.FeaturesOverlay.prototype.handleFeaturesAdd_ = + function(collectionEvent) { + goog.asserts.assert(!goog.isNull(this.featureChangeListenerKeys_)); + var feature = /** @type {ol.Feature} */ (collectionEvent.getElement()); + this.featureChangeListenerKeys_[goog.getUid(feature).toString()] = + goog.events.listen(feature, goog.events.EventType.CHANGE, + this.handleFeatureChange_, false, this); + this.requestRenderFrame_(); +}; + + +/** + * @private + * @param {ol.CollectionEvent} collectionEvent Collection event. + */ +ol.render.FeaturesOverlay.prototype.handleFeaturesRemove_ = + function(collectionEvent) { + goog.asserts.assert(!goog.isNull(this.featureChangeListenerKeys_)); + var feature = /** @type {ol.Feature} */ (collectionEvent.getElement()); + var key = goog.getUid(feature).toString(); + goog.events.unlistenByKey(this.featureChangeListenerKeys_[key]); + delete this.featureChangeListenerKeys_[key]; + this.requestRenderFrame_(); +}; + + +/** + * @param {ol.render.Event} event Event. + * @private + */ +ol.render.FeaturesOverlay.prototype.handleMapPostCompose_ = function(event) { + if (goog.isNull(this.features_) || !goog.isDef(this.styleFunction_)) { + return; + } + var resolution = event.getFrameState().view2DState.resolution; + var render = event.getRender(); + var i, ii, feature, styles; + this.features_.forEach(function(feature) { + styles = this.styleFunction_(feature, resolution); + ii = styles.length; + for (i = 0; i < ii; ++i) { + render.drawFeature(feature, styles[i]); + } + }, this); +}; + + +/** + * @private + */ +ol.render.FeaturesOverlay.prototype.requestRenderFrame_ = function() { + if (!goog.isNull(this.map_)) { + this.map_.requestRenderFrame(); + } +}; + + +/** + * @param {ol.Collection} features Features collection. + */ +ol.render.FeaturesOverlay.prototype.setFeatures = function(features) { + if (!goog.isNull(this.featuresListenerKeys_)) { + goog.array.forEach(this.featuresListenerKeys_, goog.events.unlistenByKey); + this.featuresListenerKeys_ = null; + } + if (!goog.isNull(this.featureChangeListenerKeys_)) { + goog.array.forEach( + goog.object.getValues(this.featureChangeListenerKeys_), + goog.events.unlistenByKey); + this.featureChangeListenerKeys_ = null; + } + this.features_ = features; + if (!goog.isNull(features)) { + this.featuresListenerKeys_ = [ + goog.events.listen(features, ol.CollectionEventType.ADD, + this.handleFeaturesAdd_, false, this), + goog.events.listen(features, ol.CollectionEventType.REMOVE, + this.handleFeaturesRemove_, false, this) + ]; + this.featureChangeListenerKeys_ = {}; + var featuresArray = features.getArray(); + var i, ii = featuresArray.length; + var feature; + for (i = 0; i < ii; ++i) { + feature = featuresArray[i]; + this.featureChangeListenerKeys_[goog.getUid(feature).toString()] = + goog.events.listen(feature, goog.events.EventType.CHANGE, + this.handleFeatureChange_, false, this); + } + } + this.requestRenderFrame_(); +}; + + +/** + * @param {ol.Map} map Map. + */ +ol.render.FeaturesOverlay.prototype.setMap = function(map) { + if (!goog.isNull(this.postComposeListenerKey_)) { + goog.events.unlistenByKey(this.postComposeListenerKey_); + this.postComposeListenerKey_ = null; + } + this.requestRenderFrame_(); + this.map_ = map; + if (!goog.isNull(map)) { + this.postComposeListenerKey_ = goog.events.listen( + map, ol.render.EventType.POSTCOMPOSE, this.handleMapPostCompose_, false, + this); + map.requestRenderFrame(); + } +}; + + +/** + * @param {ol.style.StyleFunction} styleFunction Style function. + */ +ol.render.FeaturesOverlay.prototype.setStyleFunction = function(styleFunction) { + this.styleFunction_ = styleFunction; + this.requestRenderFrame_(); +}; From 6d96fbf44df4f833a0244493e41cad076cc80e22 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:09:55 +0100 Subject: [PATCH 541/919] Remove experimental ol.format code --- src/ol/format/format.js | 17 -- src/ol/format/geojson/geojsonformat.exports | 3 - src/ol/format/geojson/geojsonformat.js | 171 -------------------- src/ol/format/iformat.js | 34 ---- test/spec/ol/format/geojsonformat.test.js | 113 ------------- 5 files changed, 338 deletions(-) delete mode 100644 src/ol/format/format.js delete mode 100644 src/ol/format/geojson/geojsonformat.exports delete mode 100644 src/ol/format/geojson/geojsonformat.js delete mode 100644 src/ol/format/iformat.js delete mode 100644 test/spec/ol/format/geojsonformat.test.js diff --git a/src/ol/format/format.js b/src/ol/format/format.js deleted file mode 100644 index 30615c454b..0000000000 --- a/src/ol/format/format.js +++ /dev/null @@ -1,17 +0,0 @@ -goog.provide('ol.format'); - - -/** - * @param {function(Object, function(this: S, ol.Feature): T, S=)} reader - * Reader. - * @param {Object} object Object. - * @return {Array.} - * @template S,T - */ -ol.format.readAllFromObject = function(reader, object) { - var features = []; - reader(object, function(feature) { - features.push(feature); - }); - return features; -}; diff --git a/src/ol/format/geojson/geojsonformat.exports b/src/ol/format/geojson/geojsonformat.exports deleted file mode 100644 index 7ba8843ef0..0000000000 --- a/src/ol/format/geojson/geojsonformat.exports +++ /dev/null @@ -1,3 +0,0 @@ -@exportClass ol.format.GeoJSON ol.format.GeoJSONOptions -@exportProperty ol.format.GeoJSON.prototype.readObject -@exportProperty ol.format.GeoJSON.prototype.readString diff --git a/src/ol/format/geojson/geojsonformat.js b/src/ol/format/geojson/geojsonformat.js deleted file mode 100644 index a3945f81f2..0000000000 --- a/src/ol/format/geojson/geojsonformat.js +++ /dev/null @@ -1,171 +0,0 @@ -// FIXME coordinate order -// FIXME reprojection -// FIXME support other geometry types - -goog.provide('ol.format.GeoJSON'); - -goog.require('goog.asserts'); -goog.require('goog.json'); -goog.require('ol.Feature'); -goog.require('ol.format.IReader'); -goog.require('ol.geom.LineString'); -goog.require('ol.geom.MultiLineString'); -goog.require('ol.geom.MultiPolygon'); -goog.require('ol.geom.Point'); -goog.require('ol.geom.Polygon'); - - - -/** - * @constructor - * @implements {ol.format.IReader} - * @param {ol.format.GeoJSONOptions=} opt_options Options. - */ -ol.format.GeoJSON = function(opt_options) { -}; - - -/** - * @param {GeoJSONGeometry} geometry Geometry. - * @private - * @return {ol.geom.Point} Point. - */ -ol.format.GeoJSON.readPointGeometry_ = function(geometry) { - goog.asserts.assert(geometry.type == 'Point'); - return new ol.geom.Point(geometry.coordinates); -}; - - -/** - * @param {GeoJSONGeometry} geometry Geometry. - * @private - * @return {ol.geom.LineString} LineString. - */ -ol.format.GeoJSON.readLineStringGeometry_ = function(geometry) { - goog.asserts.assert(geometry.type == 'LineString'); - return new ol.geom.LineString(geometry.coordinates); -}; - - -/** - * @param {GeoJSONGeometry} geometry Geometry. - * @private - * @return {ol.geom.MultiLineString} MultiLineString. - */ -ol.format.GeoJSON.readMultiLineStringGeometry_ = function(geometry) { - goog.asserts.assert(geometry.type == 'MultiLineString'); - return new ol.geom.MultiLineString(geometry.coordinates); -}; - - -/** - * @param {GeoJSONGeometry} geometry Geometry. - * @private - * @return {ol.geom.MultiPolygon} MultiPolygon. - */ -ol.format.GeoJSON.readMultiPolygonGeometry_ = function(geometry) { - goog.asserts.assert(geometry.type == 'MultiPolygon'); - return new ol.geom.MultiPolygon(geometry.coordinates); -}; - - -/** - * @param {GeoJSONGeometry} geometry Geometry. - * @private - * @return {ol.geom.Polygon} Polygon. - */ -ol.format.GeoJSON.readPolygonGeometry_ = function(geometry) { - goog.asserts.assert(geometry.type == 'Polygon'); - return new ol.geom.Polygon(geometry.coordinates); -}; - - -/** - * @param {GeoJSONObject} object Object. - * @param {function(this: S, ol.Feature): T} callback Callback. - * @param {S=} opt_obj Scope. - * @private - * @return {T} Callback result. - * @template S,T - */ -ol.format.GeoJSON.readFeature_ = function(object, callback, opt_obj) { - goog.asserts.assert(object.type == 'Feature'); - var feature = /** @type {GeoJSONFeature} */ (object); - var geometryReader = - ol.format.GeoJSON.GEOMETRY_READERS_[feature.geometry.type]; - goog.asserts.assert(goog.isDef(geometryReader)); - var geometry = geometryReader(feature.geometry); - var f = new ol.Feature(geometry); - f.setId(feature.id); - if (goog.isDef(feature.properties)) { - f.setValues(feature.properties); - } - return callback.call(opt_obj, f); -}; - - -/** - * @param {GeoJSONObject} object Object. - * @param {function(this: S, ol.Feature): T} callback Callback. - * @param {S=} opt_obj Scope. - * @private - * @return {T|undefined} Callback result. - * @template S,T - */ -ol.format.GeoJSON.readFeatureCollection_ = function(object, callback, opt_obj) { - goog.asserts.assert(object.type == 'FeatureCollection'); - var featureCollection = /** @type {GeoJSONFeatureCollection} */ (object); - var features = featureCollection.features; - var i, ii; - for (i = 0, ii = features.length; i < ii; ++i) { - var result = ol.format.GeoJSON.readFeature_(features[i], callback, opt_obj); - if (result) { - return result; - } - } - return undefined; -}; - - -/** - * @inheritDoc - */ -ol.format.GeoJSON.prototype.readObject = function(object, callback, opt_obj) { - var geoJSONObject = /** @type {GeoJSONObject} */ (object); - var objectReader = ol.format.GeoJSON.OBJECT_READERS_[geoJSONObject.type]; - goog.asserts.assert(goog.isDef(objectReader)); - return objectReader(geoJSONObject, callback, opt_obj); -}; - - -/** - * @inheritDoc - */ -ol.format.GeoJSON.prototype.readString = function(string, callback, opt_obj) { - return this.readObject(goog.json.parse(string), callback, opt_obj); -}; - - -/** - * @const - * @private - * @type {Object.} - */ -ol.format.GeoJSON.GEOMETRY_READERS_ = { - 'Point': ol.format.GeoJSON.readPointGeometry_, - 'LineString': ol.format.GeoJSON.readLineStringGeometry_, - 'Polygon': ol.format.GeoJSON.readPolygonGeometry_, - 'MultiLineString': ol.format.GeoJSON.readMultiLineStringGeometry_, - 'MultiPolygon': ol.format.GeoJSON.readMultiPolygonGeometry_ -}; - - -/** - * @const - * @private - * @type {Object.} - */ -ol.format.GeoJSON.OBJECT_READERS_ = { - 'Feature': ol.format.GeoJSON.readFeature_, - 'FeatureCollection': ol.format.GeoJSON.readFeatureCollection_ -}; diff --git a/src/ol/format/iformat.js b/src/ol/format/iformat.js deleted file mode 100644 index 3ee5601845..0000000000 --- a/src/ol/format/iformat.js +++ /dev/null @@ -1,34 +0,0 @@ -// FIXME add XML -// FIXME add IWriter - -goog.provide('ol.format.IReader'); - - - -/** - * @interface - */ -ol.format.IReader = function() { -}; - - -/** - * @param {Object} object Object. - * @param {function(this: S, ol.Feature): T} callback Callback. - * @param {S=} opt_obj Scope. - * @return {T|undefined} Callback result. - * @template S,T - */ -ol.format.IReader.prototype.readObject = function(object, callback, opt_obj) { -}; - - -/** - * @param {string} string String. - * @param {function(this: S, ol.Feature): T} callback Callback. - * @param {S=} opt_obj Scope. - * @return {T|undefined} Callback result. - * @template S,T - */ -ol.format.IReader.prototype.readString = function(string, callback, opt_obj) { -}; diff --git a/test/spec/ol/format/geojsonformat.test.js b/test/spec/ol/format/geojsonformat.test.js deleted file mode 100644 index b25b5616ed..0000000000 --- a/test/spec/ol/format/geojsonformat.test.js +++ /dev/null @@ -1,113 +0,0 @@ -goog.provide('ol.test.reader.GeoJSON'); - - -describe('ol.format.GeoJSON', function() { - - var pointGeoJSON = { - 'type': 'Feature', - 'geometry': { - 'type': 'Point', - 'coordinates': [102.0, 0.5] - }, - 'properties': { - 'prop0': 'value0' - } - }; - - var lineStringGeoJSON = { - 'type': 'Feature', - 'geometry': { - 'type': 'LineString', - 'coordinates': [ - [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0] - ] - }, - 'properties': { - 'prop0': 'value0', - 'prop1': 0.0 - } - }; - - var polygonGeoJSON = { - 'type': 'Feature', - 'geometry': { - 'type': 'Polygon', - 'coordinates': [[ - [100.0, 0.0], [100.0, 1.0], [101.0, 1.0], [101.0, 0.0] - ]] - }, - 'properties': { - 'prop0': 'value0', - 'prop1': {'this': 'that'} - } - }; - - var featureCollectionGeoJSON = { - 'type': 'FeatureCollection', - 'features': [pointGeoJSON, lineStringGeoJSON, polygonGeoJSON] - }; - - var format = new ol.format.GeoJSON(); - - describe('readObject', function() { - - it('can read a single point feature', function() { - var feature = format.readObject(pointGeoJSON, function(f) { - return f; - }); - expect(feature).to.be.an(ol.Feature); - var geometry = feature.getGeometry(); - expect(geometry).to.be.an(ol.geom.Point); - expect(geometry.getCoordinates()).to.eql([102.0, 0.5]); - expect(feature.get('prop0')).to.be('value0'); - }); - - it('can read a single line string feature', function() { - var feature = format.readObject(lineStringGeoJSON, - function(f) { - return f; - }); - expect(feature).to.be.an(ol.Feature); - var geometry = feature.getGeometry(); - expect(geometry).to.be.an(ol.geom.LineString); - expect(geometry.getCoordinates()).to.eql( - [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]]); - expect(feature.get('prop0')).to.be('value0'); - expect(feature.get('prop1')).to.be(0.0); - }); - - it('can read a single polygon feature', function() { - var feature = format.readObject(polygonGeoJSON, function(f) { - return f; - }); - expect(feature).to.be.an(ol.Feature); - var geometry = feature.getGeometry(); - expect(geometry).to.be.an(ol.geom.Polygon); - expect(geometry.getCoordinates()).to.eql([[ - [100.0, 0.0], [100.0, 1.0], [101.0, 1.0], [101.0, 0.0] - ]]); - expect(feature.get('prop0')).to.be('value0'); - expect(feature.get('prop1')).to.eql({'this': 'that'}); - }); - - it('can read a feature collection', function() { - var features = []; - format.readObject(featureCollectionGeoJSON, function(f) { - features.push(f); - }); - expect(features).to.have.length(3); - expect(features[0].getGeometry()).to.be.an(ol.geom.Point); - expect(features[1].getGeometry()).to.be.an(ol.geom.LineString); - expect(features[2].getGeometry()).to.be.an(ol.geom.Polygon); - }); - - }); - -}); - - -goog.require('ol.Feature'); -goog.require('ol.format.GeoJSON'); -goog.require('ol.geom.LineString'); -goog.require('ol.geom.Point'); -goog.require('ol.geom.Polygon'); From 1187466ebffcb2edd0a2110905d397daf4eb7b7e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:15:11 +0100 Subject: [PATCH 542/919] Add ol.format.Format --- src/ol/format/format.exports | 2 + src/ol/format/format.js | 101 +++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 src/ol/format/format.exports create mode 100644 src/ol/format/format.js diff --git a/src/ol/format/format.exports b/src/ol/format/format.exports new file mode 100644 index 0000000000..0d0fdfb024 --- /dev/null +++ b/src/ol/format/format.exports @@ -0,0 +1,2 @@ +@exportProperty ol.format.Format.prototype.readProjection +@exportProperty ol.format.Format.prototype.readStyleFunction diff --git a/src/ol/format/format.js b/src/ol/format/format.js new file mode 100644 index 0000000000..18d924554d --- /dev/null +++ b/src/ol/format/format.js @@ -0,0 +1,101 @@ +goog.provide('ol.format.Format'); +goog.provide('ol.format.FormatType'); + +goog.require('goog.functions'); +goog.require('ol.proj'); + + +/** + * @enum {string} + */ +ol.format.FormatType = { + BINARY: 'binary', + JSON: 'json', + TEXT: 'text', + XML: 'xml' +}; + + + +/** + * @constructor + */ +ol.format.Format = function() { +}; + + +/** + * @return {ol.format.FormatType} Format. + */ +ol.format.Format.prototype.getType = goog.abstractMethod; + + +/** + * @param {Document|Node|Object|string} source Source. + * @return {ol.Feature} Feature. + */ +ol.format.Format.prototype.readFeature = goog.abstractMethod; + + +/** + * @param {Document|Node|Object|string} source Source. + * @return {Array.} Features. + */ +ol.format.Format.prototype.readFeatures = goog.abstractMethod; + + +/** + * @param {Document|Node|Object|string} source Source. + * @param {function(this: S, ol.Feature, (Document|Node|Object|undefined)): T} + * callback Callback. + * @param {S=} opt_obj Scope. + * @template S,T + */ +ol.format.Format.prototype.readFeaturesAsync = goog.abstractMethod; + + +/** + * @param {Document|Node|Object|string} source Source. + * @return {ol.geom.Geometry} Geometry. + */ +ol.format.Format.prototype.readGeometry = goog.abstractMethod; + + +/** + * @param {Document|Node|Object|string} source Source. + * @return {ol.proj.Projection} Projection. + */ +ol.format.Format.prototype.readProjection = function(source) { + return ol.proj.get('EPSG:4326'); +}; + + +/** + * @param {Document|Node|Object|string} source Source. + * @return {function(ol.Feature, number): Array.} Style + * function. + */ +ol.format.Format.prototype.readStyleFunction = function(source) { + return goog.functions.NULL; +}; + + +/** + * @param {ol.Feature} feature Feature. + * @return {Node|Object|string} Result. + */ +ol.format.Format.prototype.writeFeature = goog.abstractMethod; + + +/** + * @param {Array.} features Features. + * @return {Node|Object|string} Result. + */ +ol.format.Format.prototype.writeFeatures = goog.abstractMethod; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @return {Node|Object|string} Node. + */ +ol.format.Format.prototype.writeGeometry = goog.abstractMethod; From 409cde83bfac484f6be300c8adb3feb4025ec59c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:17:49 +0100 Subject: [PATCH 543/919] Add ol.format.JSON --- src/ol/format/jsonformat.exports | 8 ++ src/ol/format/jsonformat.js | 155 +++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 src/ol/format/jsonformat.exports create mode 100644 src/ol/format/jsonformat.js diff --git a/src/ol/format/jsonformat.exports b/src/ol/format/jsonformat.exports new file mode 100644 index 0000000000..d45558a5dd --- /dev/null +++ b/src/ol/format/jsonformat.exports @@ -0,0 +1,8 @@ +@exportProperty ol.format.JSON.prototype.readFeature +@exportProperty ol.format.JSON.prototype.readFeatures +@exportProperty ol.format.JSON.prototype.readFeaturesAsync +@exportProperty ol.format.JSON.prototype.readGeometry +@exportProperty ol.format.JSON.prototype.readProjection +@exportProperty ol.format.JSON.prototype.writeFeature +@exportProperty ol.format.JSON.prototype.writeFeatures +@exportProperty ol.format.JSON.prototype.writeGeometry diff --git a/src/ol/format/jsonformat.js b/src/ol/format/jsonformat.js new file mode 100644 index 0000000000..59ac11b62f --- /dev/null +++ b/src/ol/format/jsonformat.js @@ -0,0 +1,155 @@ +goog.provide('ol.format.JSON'); + +goog.require('goog.asserts'); +goog.require('goog.json'); +goog.require('ol.format.Format'); +goog.require('ol.format.FormatType'); + + + +/** + * @constructor + * @extends {ol.format.Format} + */ +ol.format.JSON = function() { + goog.base(this); +}; +goog.inherits(ol.format.JSON, ol.format.Format); + + +/** + * @param {Document|Node|Object|string} source Source. + * @private + * @return {Object} Object. + */ +ol.format.JSON.prototype.getObject_ = function(source) { + if (goog.isObject(source)) { + return source; + } else if (goog.isString(source)) { + var object = goog.json.parse(source); + return goog.isDef(object) ? object : null; + } else { + goog.asserts.fail(); + return null; + } +}; + + +/** + * @inheritDoc + */ +ol.format.JSON.prototype.getType = function() { + return ol.format.FormatType.JSON; +}; + + +/** + * @inheritDoc + */ +ol.format.JSON.prototype.readFeature = function(source) { + return this.readFeatureFromObject(this.getObject_(source)); +}; + + +/** + * @inheritDoc + */ +ol.format.JSON.prototype.readFeatures = function(source) { + return this.readFeaturesFromObject(this.getObject_(source)); +}; + + +/** + * @param {Object} object Object. + * @protected + * @return {ol.Feature} Feature. + */ +ol.format.JSON.prototype.readFeatureFromObject = goog.abstractMethod; + + +/** + * @param {Object} object Object. + * @protected + * @return {Array.} Features. + */ +ol.format.JSON.prototype.readFeaturesFromObject = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.JSON.prototype.readGeometry = function(source) { + return this.readGeometryFromObject(this.getObject_(source)); +}; + + +/** + * @param {Object} object Object. + * @protected + * @return {ol.geom.Geometry} Geometry. + */ +ol.format.JSON.prototype.readGeometryFromObject = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.JSON.prototype.readProjection = function(source) { + return this.readProjectionFromObject(this.getObject_(source)); +}; + + +/** + * @param {Object} object Object. + * @protected + * @return {ol.proj.Projection} Projection. + */ +ol.format.JSON.prototype.readProjectionFromObject = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.JSON.prototype.writeFeature = function(feature) { + return this.writeFeatureObject(feature); +}; + + +/** + * @param {ol.Feature} feature Feature. + * @protected + * @return {Object} Object. + */ +ol.format.JSON.prototype.writeFeatureObject = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.JSON.prototype.writeFeatures = function(features) { + return this.writeFeaturesObject(features); +}; + + +/** + * @param {Array.} features Features. + * @protected + * @return {Object} Object. + */ +ol.format.JSON.prototype.writeFeaturesObject = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.JSON.prototype.writeGeometry = function(geometry) { + return this.writeGeometryObject(geometry); +}; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @protected + * @return {Object} Object. + */ +ol.format.JSON.prototype.writeGeometryObject = goog.abstractMethod; From 8c7ff294705087224cf6ce2c017b134c06dc8551 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:18:05 +0100 Subject: [PATCH 544/919] Add ol.format.Text --- src/ol/format/textformat.exports | 8 ++ src/ol/format/textformat.js | 154 +++++++++++++++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 src/ol/format/textformat.exports create mode 100644 src/ol/format/textformat.js diff --git a/src/ol/format/textformat.exports b/src/ol/format/textformat.exports new file mode 100644 index 0000000000..21c60b12e2 --- /dev/null +++ b/src/ol/format/textformat.exports @@ -0,0 +1,8 @@ +@exportProperty ol.format.Text.prototype.readFeature +@exportProperty ol.format.Text.prototype.readFeatures +@exportProperty ol.format.Text.prototype.readFeaturesAsync +@exportProperty ol.format.Text.prototype.readGeometry +@exportProperty ol.format.Text.prototype.readProjection +@exportProperty ol.format.Text.prototype.writeFeature +@exportProperty ol.format.Text.prototype.writeFeatures +@exportProperty ol.format.Text.prototype.writeGeometry diff --git a/src/ol/format/textformat.js b/src/ol/format/textformat.js new file mode 100644 index 0000000000..4db799da68 --- /dev/null +++ b/src/ol/format/textformat.js @@ -0,0 +1,154 @@ +goog.provide('ol.format.Text'); + +goog.require('goog.asserts'); +goog.require('ol.format.Format'); +goog.require('ol.format.FormatType'); +goog.require('ol.proj'); + + + +/** + * @constructor + * @extends {ol.format.Format} + */ +ol.format.Text = function() { + goog.base(this); +}; +goog.inherits(ol.format.Text, ol.format.Format); + + +/** + * @param {Document|Node|Object|string} source Source. + * @private + * @return {string} Text. + */ +ol.format.Text.prototype.getText_ = function(source) { + if (goog.isString(source)) { + return source; + } else { + goog.asserts.fail(); + return ''; + } +}; + + +/** + * @inheritDoc + */ +ol.format.Text.prototype.getType = function() { + return ol.format.FormatType.TEXT; +}; + + +/** + * @inheritDoc + */ +ol.format.Text.prototype.readFeature = function(source) { + return this.readFeatureFromText(this.getText_(source)); +}; + + +/** + * @param {string} text Text. + * @protected + * @return {ol.Feature} Feature. + */ +ol.format.Text.prototype.readFeatureFromText = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.Text.prototype.readFeatures = function(source) { + return this.readFeaturesFromText(this.getText_(source)); +}; + + +/** + * @param {string} text Text. + * @protected + * @return {Array.} Features. + */ +ol.format.Text.prototype.readFeaturesFromText = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.Text.prototype.readGeometry = function(source) { + return this.readGeometryFromText(this.getText_(source)); +}; + + +/** + * @param {string} text Text. + * @protected + * @return {ol.geom.Geometry} Geometry. + */ +ol.format.Text.prototype.readGeometryFromText = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.Text.prototype.readProjection = function(source) { + return this.readProjectionFromText(this.getText_(source)); +}; + + +/** + * @param {string} text Text. + * @protected + * @return {ol.proj.Projection} Projection. + */ +ol.format.Text.prototype.readProjectionFromText = function(text) { + return ol.proj.get('EPSG:4326'); +}; + + +/** + * @inheritDoc + */ +ol.format.Text.prototype.writeFeature = function(feature) { + return this.writeFeatureText(feature); +}; + + +/** + * @param {ol.Feature} feature Features. + * @protected + * @return {string} Text. + */ +ol.format.Text.prototype.writeFeatureText = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.Text.prototype.writeFeatures = function(features) { + return this.writeFeaturesText(features); +}; + + +/** + * @param {Array.} features Features. + * @protected + * @return {string} Text. + */ +ol.format.Text.prototype.writeFeaturesText = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.Text.prototype.writeGeometry = function(geometry) { + return this.writeGeometryText(geometry); +}; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @protected + * @return {string} Text. + */ +ol.format.Text.prototype.writeGeometryText = goog.abstractMethod; From aa0002d8808d6181be4bd8e914dabe749017385a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:18:43 +0100 Subject: [PATCH 545/919] Add ol.format.XML --- src/ol/format/xmlformat.exports | 8 ++ src/ol/format/xmlformat.js | 209 ++++++++++++++++++++++++++++++++ 2 files changed, 217 insertions(+) create mode 100644 src/ol/format/xmlformat.exports create mode 100644 src/ol/format/xmlformat.js diff --git a/src/ol/format/xmlformat.exports b/src/ol/format/xmlformat.exports new file mode 100644 index 0000000000..85b7e0f070 --- /dev/null +++ b/src/ol/format/xmlformat.exports @@ -0,0 +1,8 @@ +@exportProperty ol.format.XML.prototype.readFeature +@exportProperty ol.format.XML.prototype.readFeatures +@exportProperty ol.format.XML.prototype.readFeaturesAsync +@exportProperty ol.format.XML.prototype.readGeometry +@exportProperty ol.format.XML.prototype.readProjection +@exportProperty ol.format.XML.prototype.writeFeature +@exportProperty ol.format.XML.prototype.writeFeatures +@exportProperty ol.format.XML.prototype.writeGeometry diff --git a/src/ol/format/xmlformat.js b/src/ol/format/xmlformat.js new file mode 100644 index 0000000000..8f32bcbeaf --- /dev/null +++ b/src/ol/format/xmlformat.js @@ -0,0 +1,209 @@ +goog.provide('ol.format.XML'); + +goog.require('goog.asserts'); +goog.require('goog.dom.xml'); +goog.require('ol.format.Format'); +goog.require('ol.format.FormatType'); +goog.require('ol.proj'); + + + +/** + * @constructor + * @extends {ol.format.Format} + */ +ol.format.XML = function() { + goog.base(this); +}; +goog.inherits(ol.format.XML, ol.format.Format); + + +/** + * @param {Document|Node|Object|string} source Source. + * @private + * @return {Document} Document. + */ +ol.format.XML.prototype.getDocument_ = function(source) { + if (source instanceof Document) { + return source; + } else if (goog.isString(source)) { + return goog.dom.xml.loadXml(source); + } else { + goog.asserts.fail(); + return null; + } +}; + + +/** + * @param {Document|Node|Object|string} source Source. + * @private + * @return {Document|Node} Document. + */ +ol.format.XML.prototype.getDocumentOrNode_ = function(source) { + if (source instanceof Document) { + return source; + } else if (source instanceof Node) { + return source; + } else if (goog.isString(source)) { + return goog.dom.xml.loadXml(source); + } else { + goog.asserts.fail(); + return null; + } +}; + + +/** + * @param {Document|Node|Object|string} source Source. + * @private + * @return {Node} Node. + */ +ol.format.XML.prototype.getNode_ = function(source) { + if (source instanceof Node) { + return source; + } else { + goog.asserts.fail(); + return null; + } +}; + + +/** + * @inheritDoc + */ +ol.format.XML.prototype.getType = function() { + return ol.format.FormatType.XML; +}; + + +/** + * @inheritDoc + */ +ol.format.XML.prototype.readFeature = function(source) { + return this.readFeatureFromNode(this.getNode_(source)); +}; + + +/** + * @param {Node} node Node. + * @return {ol.Feature} Feature. + */ +ol.format.XML.prototype.readFeatureFromNode = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.XML.prototype.readFeatures = function(source) { + var documentOrNode = this.getDocumentOrNode_(source); + if (documentOrNode instanceof Document) { + return this.readFeaturesFromDocument(documentOrNode); + } else if (documentOrNode instanceof Node) { + return this.readFeaturesFromNode(documentOrNode); + } else { + goog.asserts.fail(); + return null; + } +}; + + +/** + * @param {Document} doc Document. + * @protected + * @return {Array.} Features. + */ +ol.format.XML.prototype.readFeaturesFromDocument = function(doc) { + goog.asserts.assert(doc.childNodes.length == 1); + return this.readFeaturesFromNode(doc.firstChild); +}; + + +/** + * @param {Node} node Node. + * @protected + * @return {Array.} Features. + */ +ol.format.XML.prototype.readFeaturesFromNode = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.XML.prototype.readGeometry = function(source) { + return this.readGeometryFromNode(this.getNode_(source)); +}; + + +/** + * @param {Node} node Node. + * @protected + * @return {ol.geom.Geometry} Geometry. + */ +ol.format.XML.prototype.readGeometryFromNode = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.XML.prototype.readProjection = function(source) { + return this.readProjectionFromNode(this.getNode_(source)); +}; + + +/** + * @param {Node} node Node. + * @protected + * @return {ol.proj.Projection} Projection. + */ +ol.format.XML.prototype.readProjectionFromNode = function(node) { + return ol.proj.get('EPSG:4326'); +}; + + +/** + * @inheritDoc + */ +ol.format.XML.prototype.writeFeature = function(feature) { + return this.writeFeatureNode(feature); +}; + + +/** + * @param {ol.Feature} feature Feature. + * @protected + * @return {Node} Node. + */ +ol.format.XML.prototype.writeFeatureNode = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.XML.prototype.writeFeatures = function(features) { + return this.writeFeaturesNode(features); +}; + + +/** + * @param {Array.} features Features. + * @protected + * @return {Node} Node. + */ +ol.format.XML.prototype.writeFeaturesNode = goog.abstractMethod; + + +/** + * @inheritDoc + */ +ol.format.XML.prototype.writeGeometry = function(geometry) { + return this.writeGeometryNode(geometry); +}; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @protected + * @return {Node} Node. + */ +ol.format.XML.prototype.writeGeometryNode = goog.abstractMethod; From ecf9ace190b75e8b017695297fddb50c28e59964 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:20:08 +0100 Subject: [PATCH 546/919] Add ol.format.GeoJSON --- src/objectliterals.jsdoc | 2 +- src/ol/format/geojsonformat.exports | 1 + src/ol/format/geojsonformat.js | 365 ++++++++++++++ test/spec/ol/format/geojson/countries.geojson | 181 +++++++ test/spec/ol/format/geojsonformat.test.js | 470 ++++++++++++++++++ 5 files changed, 1018 insertions(+), 1 deletion(-) create mode 100644 src/ol/format/geojsonformat.exports create mode 100644 src/ol/format/geojsonformat.js create mode 100644 test/spec/ol/format/geojson/countries.geojson create mode 100644 test/spec/ol/format/geojsonformat.test.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 33aa022d0b..8566f748d0 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -247,7 +247,7 @@ /** * @typedef {Object} ol.format.GeoJSONOptions - * @property {ol.proj.ProjectionLike} projection Projection. + * @property {ol.proj.ProjectionLike} defaultProjection Default projection. */ /** diff --git a/src/ol/format/geojsonformat.exports b/src/ol/format/geojsonformat.exports new file mode 100644 index 0000000000..04b82fa2b4 --- /dev/null +++ b/src/ol/format/geojsonformat.exports @@ -0,0 +1 @@ +@exportClass ol.format.GeoJSON ol.format.GeoJSONOptions diff --git a/src/ol/format/geojsonformat.js b/src/ol/format/geojsonformat.js new file mode 100644 index 0000000000..4e4b96ca66 --- /dev/null +++ b/src/ol/format/geojsonformat.js @@ -0,0 +1,365 @@ +// FIXME coordinate order +// FIXME reprojection +// FIXME GeometryCollection + +goog.provide('ol.format.GeoJSON'); + +goog.require('goog.asserts'); +goog.require('goog.object'); +goog.require('ol.Feature'); +goog.require('ol.format.JSON'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.MultiLineString'); +goog.require('ol.geom.MultiPoint'); +goog.require('ol.geom.MultiPolygon'); +goog.require('ol.geom.Point'); +goog.require('ol.geom.Polygon'); +goog.require('ol.proj'); + + + +/** + * @constructor + * @extends {ol.format.JSON} + * @param {ol.format.GeoJSONOptions=} opt_options Options. + */ +ol.format.GeoJSON = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + goog.base(this); + + /** + * @private + * @type {ol.proj.Projection} + */ + this.defaultProjection_ = ol.proj.get(options.defaultProjection ? + options.defaultProjection : 'EPSG:4326'); + +}; +goog.inherits(ol.format.GeoJSON, ol.format.JSON); + + +/** + * @param {GeoJSONGeometry} object Object. + * @private + * @return {ol.geom.Geometry} Geometry. + */ +ol.format.GeoJSON.readGeometry_ = function(object) { + var geometryReader = ol.format.GeoJSON.GEOMETRY_READERS_[object.type]; + goog.asserts.assert(goog.isDef(geometryReader)); + return geometryReader(object); +}; + + +/** + * @param {GeoJSONGeometry} object Object. + * @private + * @return {ol.geom.Point} Point. + */ +ol.format.GeoJSON.readPointGeometry_ = function(object) { + goog.asserts.assert(object.type == 'Point'); + return new ol.geom.Point(object.coordinates); +}; + + +/** + * @param {GeoJSONGeometry} object Object. + * @private + * @return {ol.geom.LineString} LineString. + */ +ol.format.GeoJSON.readLineStringGeometry_ = function(object) { + goog.asserts.assert(object.type == 'LineString'); + return new ol.geom.LineString(object.coordinates); +}; + + +/** + * @param {GeoJSONGeometry} object Object. + * @private + * @return {ol.geom.MultiLineString} MultiLineString. + */ +ol.format.GeoJSON.readMultiLineStringGeometry_ = function(object) { + goog.asserts.assert(object.type == 'MultiLineString'); + return new ol.geom.MultiLineString(object.coordinates); +}; + + +/** + * @param {GeoJSONGeometry} object Object. + * @private + * @return {ol.geom.MultiPoint} MultiPoint. + */ +ol.format.GeoJSON.readMultiPointGeometry_ = function(object) { + goog.asserts.assert(object.type == 'MultiPoint'); + return new ol.geom.MultiPoint(object.coordinates); +}; + + +/** + * @param {GeoJSONGeometry} object Object. + * @private + * @return {ol.geom.MultiPolygon} MultiPolygon. + */ +ol.format.GeoJSON.readMultiPolygonGeometry_ = function(object) { + goog.asserts.assert(object.type == 'MultiPolygon'); + return new ol.geom.MultiPolygon(object.coordinates); +}; + + +/** + * @param {GeoJSONGeometry} object Object. + * @private + * @return {ol.geom.Polygon} Polygon. + */ +ol.format.GeoJSON.readPolygonGeometry_ = function(object) { + goog.asserts.assert(object.type == 'Polygon'); + return new ol.geom.Polygon(object.coordinates); +}; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @private + * @return {GeoJSONGeometry} GeoJSON geometry. + */ +ol.format.GeoJSON.writeGeometry_ = function(geometry) { + var geometryWriter = ol.format.GeoJSON.GEOMETRY_WRITERS_[geometry.getType()]; + goog.asserts.assert(goog.isDef(geometryWriter)); + return geometryWriter(geometry); +}; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @private + * @return {GeoJSONGeometry} GeoJSON geometry. + */ +ol.format.GeoJSON.writeLineStringGeometry_ = function(geometry) { + goog.asserts.assertInstanceof(geometry, ol.geom.LineString); + return /** @type {GeoJSONGeometry} */ ({ + 'type': 'LineString', + 'coordinates': geometry.getCoordinates() + }); +}; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @private + * @return {GeoJSONGeometry} GeoJSON geometry. + */ +ol.format.GeoJSON.writeMultiLineStringGeometry_ = function(geometry) { + goog.asserts.assertInstanceof(geometry, ol.geom.MultiLineString); + goog.asserts.assert( + geometry.getType() == ol.geom.GeometryType.MULTI_LINE_STRING); + return /** @type {GeoJSONGeometry} */ ({ + 'type': 'MultiLineString', + 'coordinates': geometry.getCoordinates() + }); +}; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @private + * @return {GeoJSONGeometry} GeoJSON geometry. + */ +ol.format.GeoJSON.writeMultiPointGeometry_ = function(geometry) { + goog.asserts.assertInstanceof(geometry, ol.geom.MultiPoint); + return /** @type {GeoJSONGeometry} */ ({ + 'type': 'MultiPoint', + 'coordinates': geometry.getCoordinates() + }); +}; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @private + * @return {GeoJSONGeometry} GeoJSON geometry. + */ +ol.format.GeoJSON.writeMultiPolygonGeometry_ = function(geometry) { + goog.asserts.assertInstanceof(geometry, ol.geom.MultiPolygon); + return /** @type {GeoJSONGeometry} */ ({ + 'type': 'MultiPolygon', + 'coordinates': geometry.getCoordinates() + }); +}; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @private + * @return {GeoJSONGeometry} GeoJSON geometry. + */ +ol.format.GeoJSON.writePointGeometry_ = function(geometry) { + goog.asserts.assertInstanceof(geometry, ol.geom.Point); + return /** @type {GeoJSONGeometry} */ ({ + 'type': 'Point', + 'coordinates': geometry.getCoordinates() + }); +}; + + +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @private + * @return {GeoJSONGeometry} GeoJSON geometry. + */ +ol.format.GeoJSON.writePolygonGeometry_ = function(geometry) { + goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); + return /** @type {GeoJSONGeometry} */ ({ + 'type': 'Polygon', + 'coordinates': geometry.getCoordinates() + }); +}; + + +/** + * @const + * @private + * @type {Object.} + */ +ol.format.GeoJSON.GEOMETRY_READERS_ = { + 'Point': ol.format.GeoJSON.readPointGeometry_, + 'LineString': ol.format.GeoJSON.readLineStringGeometry_, + 'Polygon': ol.format.GeoJSON.readPolygonGeometry_, + 'MultiPoint': ol.format.GeoJSON.readMultiPointGeometry_, + 'MultiLineString': ol.format.GeoJSON.readMultiLineStringGeometry_, + 'MultiPolygon': ol.format.GeoJSON.readMultiPolygonGeometry_ +}; + + +/** + * @const + * @private + * @type {Object.} + */ +ol.format.GeoJSON.GEOMETRY_WRITERS_ = { + 'Point': ol.format.GeoJSON.writePointGeometry_, + 'LineString': ol.format.GeoJSON.writeLineStringGeometry_, + 'Polygon': ol.format.GeoJSON.writePolygonGeometry_, + 'MultiPoint': ol.format.GeoJSON.writeMultiPointGeometry_, + 'MultiLineString': ol.format.GeoJSON.writeMultiLineStringGeometry_, + 'MultiPolygon': ol.format.GeoJSON.writeMultiPolygonGeometry_ +}; + + +/** + * @inheritDoc + */ +ol.format.GeoJSON.prototype.readFeatureFromObject = function(object) { + var geoJSONFeature = /** @type {GeoJSONFeature} */ (object); + goog.asserts.assert(geoJSONFeature.type == 'Feature'); + var geometry = ol.format.GeoJSON.readGeometry_(geoJSONFeature.geometry); + var feature = new ol.Feature(geometry); + if (goog.isDef(geoJSONFeature.id)) { + feature.setId(geoJSONFeature.id); + } + if (goog.isDef(geoJSONFeature.properties)) { + feature.setValues(geoJSONFeature.properties); + } + return feature; +}; + + +/** + * @inheritDoc + */ +ol.format.GeoJSON.prototype.readFeaturesFromObject = function(object) { + var geoJSONObject = /** @type {GeoJSONObject} */ (object); + if (geoJSONObject.type == 'Feature') { + return [this.readFeatureFromObject(object)]; + } else if (geoJSONObject.type == 'FeatureCollection') { + var geoJSONFeatureCollection = /** @type {GeoJSONFeatureCollection} */ + (object); + /** @type {Array.} */ + var features = []; + var geoJSONFeatures = geoJSONFeatureCollection.features; + var i, ii; + for (i = 0, ii = geoJSONFeatures.length; i < ii; ++i) { + features.push(this.readFeatureFromObject(geoJSONFeatures[i])); + } + return features; + } else { + goog.asserts.fail(); + return null; + } +}; + + +/** + * @inheritDoc + */ +ol.format.GeoJSON.prototype.readGeometryFromObject = function(object) { + return ol.format.GeoJSON.readGeometry_( + /** @type {GeoJSONGeometry} */ (object)); +}; + + +/** + * @inheritDoc + */ +ol.format.GeoJSON.prototype.readProjection = function(object) { + var geoJSONObject = /** @type {GeoJSONObject} */ (object); + var crs = geoJSONObject.crs; + if (goog.isDefAndNotNull(crs)) { + if (crs.type == 'name') { + return ol.proj.get(crs.properties.name); + } else { + goog.asserts.fail(); + return null; + } + } else { + return this.defaultProjection_; + } +}; + + +/** + * @inheritDoc + */ +ol.format.GeoJSON.prototype.writeFeatureObject = function(feature) { + var object = { + 'type': 'Feature' + }; + var id = feature.getId(); + if (goog.isDefAndNotNull(id)) { + goog.object.set(object, 'id', id); + } + var geometry = feature.getGeometry(); + if (goog.isDefAndNotNull(geometry)) { + goog.object.set( + object, 'geometry', ol.format.GeoJSON.writeGeometry_(geometry)); + } + var properties = feature.getProperties(); + goog.object.remove(properties, 'geometry'); + if (!goog.object.isEmpty(properties)) { + goog.object.set(object, 'properties', properties); + } + return object; +}; + + +/** + * @inheritDoc + */ +ol.format.GeoJSON.prototype.writeFeaturesObject = function(features) { + var objects = []; + var i, ii; + for (i = 0, ii = features.length; i < ii; ++i) { + objects.push(this.writeFeatureObject(features[i])); + } + return /** @type {GeoJSONFeatureCollection} */ ({ + 'type': 'FeatureCollection', + 'features': objects + }); +}; + + +/** + * @inheritDoc + */ +ol.format.GeoJSON.prototype.writeGeometryObject = + ol.format.GeoJSON.writeGeometry_; diff --git a/test/spec/ol/format/geojson/countries.geojson b/test/spec/ol/format/geojson/countries.geojson new file mode 100644 index 0000000000..b27f2ecacb --- /dev/null +++ b/test/spec/ol/format/geojson/countries.geojson @@ -0,0 +1,181 @@ +{"type":"FeatureCollection","features":[ +{"type":"Feature","id":"AFG","properties":{"name":"Afghanistan"},"geometry":{"type":"Polygon","coordinates":[[[61.210817,35.650072],[62.230651,35.270664],[62.984662,35.404041],[63.193538,35.857166],[63.982896,36.007957],[64.546479,36.312073],[64.746105,37.111818],[65.588948,37.305217],[65.745631,37.661164],[66.217385,37.39379],[66.518607,37.362784],[67.075782,37.356144],[67.83,37.144994],[68.135562,37.023115],[68.859446,37.344336],[69.196273,37.151144],[69.518785,37.608997],[70.116578,37.588223],[70.270574,37.735165],[70.376304,38.138396],[70.806821,38.486282],[71.348131,38.258905],[71.239404,37.953265],[71.541918,37.905774],[71.448693,37.065645],[71.844638,36.738171],[72.193041,36.948288],[72.63689,37.047558],[73.260056,37.495257],[73.948696,37.421566],[74.980002,37.41999],[75.158028,37.133031],[74.575893,37.020841],[74.067552,36.836176],[72.920025,36.720007],[71.846292,36.509942],[71.262348,36.074388],[71.498768,35.650563],[71.613076,35.153203],[71.115019,34.733126],[71.156773,34.348911],[70.881803,33.988856],[69.930543,34.02012],[70.323594,33.358533],[69.687147,33.105499],[69.262522,32.501944],[69.317764,31.901412],[68.926677,31.620189],[68.556932,31.71331],[67.792689,31.58293],[67.683394,31.303154],[66.938891,31.304911],[66.381458,30.738899],[66.346473,29.887943],[65.046862,29.472181],[64.350419,29.560031],[64.148002,29.340819],[63.550261,29.468331],[62.549857,29.318572],[60.874248,29.829239],[61.781222,30.73585],[61.699314,31.379506],[60.941945,31.548075],[60.863655,32.18292],[60.536078,32.981269],[60.9637,33.528832],[60.52843,33.676446],[60.803193,34.404102],[61.210817,35.650072]]]}}, +{"type":"Feature","id":"AGO","properties":{"name":"Angola"},"geometry":{"type":"MultiPolygon","coordinates":[[[[16.326528,-5.87747],[16.57318,-6.622645],[16.860191,-7.222298],[17.089996,-7.545689],[17.47297,-8.068551],[18.134222,-7.987678],[18.464176,-7.847014],[19.016752,-7.988246],[19.166613,-7.738184],[19.417502,-7.155429],[20.037723,-7.116361],[20.091622,-6.94309],[20.601823,-6.939318],[20.514748,-7.299606],[21.728111,-7.290872],[21.746456,-7.920085],[21.949131,-8.305901],[21.801801,-8.908707],[21.875182,-9.523708],[22.208753,-9.894796],[22.155268,-11.084801],[22.402798,-10.993075],[22.837345,-11.017622],[23.456791,-10.867863],[23.912215,-10.926826],[24.017894,-11.237298],[23.904154,-11.722282],[24.079905,-12.191297],[23.930922,-12.565848],[24.016137,-12.911046],[21.933886,-12.898437],[21.887843,-16.08031],[22.562478,-16.898451],[23.215048,-17.523116],[21.377176,-17.930636],[18.956187,-17.789095],[18.263309,-17.309951],[14.209707,-17.353101],[14.058501,-17.423381],[13.462362,-16.971212],[12.814081,-16.941343],[12.215461,-17.111668],[11.734199,-17.301889],[11.640096,-16.673142],[11.778537,-15.793816],[12.123581,-14.878316],[12.175619,-14.449144],[12.500095,-13.5477],[12.738479,-13.137906],[13.312914,-12.48363],[13.633721,-12.038645],[13.738728,-11.297863],[13.686379,-10.731076],[13.387328,-10.373578],[13.120988,-9.766897],[12.87537,-9.166934],[12.929061,-8.959091],[13.236433,-8.562629],[12.93304,-7.596539],[12.728298,-6.927122],[12.227347,-6.294448],[12.322432,-6.100092],[12.735171,-5.965682],[13.024869,-5.984389],[13.375597,-5.864241],[16.326528,-5.87747]]],[[[12.436688,-5.684304],[12.182337,-5.789931],[11.914963,-5.037987],[12.318608,-4.60623],[12.62076,-4.438023],[12.995517,-4.781103],[12.631612,-4.991271],[12.468004,-5.248362],[12.436688,-5.684304]]]]}}, +{"type":"Feature","id":"ALB","properties":{"name":"Albania"},"geometry":{"type":"Polygon","coordinates":[[[20.590247,41.855404],[20.463175,41.515089],[20.605182,41.086226],[21.02004,40.842727],[20.99999,40.580004],[20.674997,40.435],[20.615,40.110007],[20.150016,39.624998],[19.98,39.694993],[19.960002,39.915006],[19.406082,40.250773],[19.319059,40.72723],[19.40355,41.409566],[19.540027,41.719986],[19.371769,41.877548],[19.304486,42.195745],[19.738051,42.688247],[19.801613,42.500093],[20.0707,42.58863],[20.283755,42.32026],[20.52295,42.21787],[20.590247,41.855404]]]}}, +{"type":"Feature","id":"ARE","properties":{"name":"United Arab Emirates"},"geometry":{"type":"Polygon","coordinates":[[[51.579519,24.245497],[51.757441,24.294073],[51.794389,24.019826],[52.577081,24.177439],[53.404007,24.151317],[54.008001,24.121758],[54.693024,24.797892],[55.439025,25.439145],[56.070821,26.055464],[56.261042,25.714606],[56.396847,24.924732],[55.886233,24.920831],[55.804119,24.269604],[55.981214,24.130543],[55.528632,23.933604],[55.525841,23.524869],[55.234489,23.110993],[55.208341,22.70833],[55.006803,22.496948],[52.000733,23.001154],[51.617708,24.014219],[51.579519,24.245497]]]}}, +{"type":"Feature","id":"ARG","properties":{"name":"Argentina"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-65.5,-55.2],[-66.45,-55.25],[-66.95992,-54.89681],[-67.56244,-54.87001],[-68.63335,-54.8695],[-68.63401,-52.63637],[-68.25,-53.1],[-67.75,-53.85],[-66.45,-54.45],[-65.05,-54.7],[-65.5,-55.2]]],[[[-64.964892,-22.075862],[-64.377021,-22.798091],[-63.986838,-21.993644],[-62.846468,-22.034985],[-62.685057,-22.249029],[-60.846565,-23.880713],[-60.028966,-24.032796],[-58.807128,-24.771459],[-57.777217,-25.16234],[-57.63366,-25.603657],[-58.618174,-27.123719],[-57.60976,-27.395899],[-56.486702,-27.548499],[-55.695846,-27.387837],[-54.788795,-26.621786],[-54.625291,-25.739255],[-54.13005,-25.547639],[-53.628349,-26.124865],[-53.648735,-26.923473],[-54.490725,-27.474757],[-55.162286,-27.881915],[-56.2909,-28.852761],[-57.625133,-30.216295],[-57.874937,-31.016556],[-58.14244,-32.044504],[-58.132648,-33.040567],[-58.349611,-33.263189],[-58.427074,-33.909454],[-58.495442,-34.43149],[-57.22583,-35.288027],[-57.362359,-35.97739],[-56.737487,-36.413126],[-56.788285,-36.901572],[-57.749157,-38.183871],[-59.231857,-38.72022],[-61.237445,-38.928425],[-62.335957,-38.827707],[-62.125763,-39.424105],[-62.330531,-40.172586],[-62.145994,-40.676897],[-62.745803,-41.028761],[-63.770495,-41.166789],[-64.73209,-40.802677],[-65.118035,-41.064315],[-64.978561,-42.058001],[-64.303408,-42.359016],[-63.755948,-42.043687],[-63.458059,-42.563138],[-64.378804,-42.873558],[-65.181804,-43.495381],[-65.328823,-44.501366],[-65.565269,-45.036786],[-66.509966,-45.039628],[-67.293794,-45.551896],[-67.580546,-46.301773],[-66.597066,-47.033925],[-65.641027,-47.236135],[-65.985088,-48.133289],[-67.166179,-48.697337],[-67.816088,-49.869669],[-68.728745,-50.264218],[-69.138539,-50.73251],[-68.815561,-51.771104],[-68.149995,-52.349983],[-68.571545,-52.299444],[-69.498362,-52.142761],[-71.914804,-52.009022],[-72.329404,-51.425956],[-72.309974,-50.67701],[-72.975747,-50.74145],[-73.328051,-50.378785],[-73.415436,-49.318436],[-72.648247,-48.878618],[-72.331161,-48.244238],[-72.447355,-47.738533],[-71.917258,-46.884838],[-71.552009,-45.560733],[-71.659316,-44.973689],[-71.222779,-44.784243],[-71.329801,-44.407522],[-71.793623,-44.207172],[-71.464056,-43.787611],[-71.915424,-43.408565],[-72.148898,-42.254888],[-71.746804,-42.051386],[-71.915734,-40.832339],[-71.680761,-39.808164],[-71.413517,-38.916022],[-70.814664,-38.552995],[-71.118625,-37.576827],[-71.121881,-36.658124],[-70.364769,-36.005089],[-70.388049,-35.169688],[-69.817309,-34.193571],[-69.814777,-33.273886],[-70.074399,-33.09121],[-70.535069,-31.36501],[-69.919008,-30.336339],[-70.01355,-29.367923],[-69.65613,-28.459141],[-69.001235,-27.521214],[-68.295542,-26.89934],[-68.5948,-26.506909],[-68.386001,-26.185016],[-68.417653,-24.518555],[-67.328443,-24.025303],[-66.985234,-22.986349],[-67.106674,-22.735925],[-66.273339,-21.83231],[-64.964892,-22.075862]]]]}}, +{"type":"Feature","id":"ARM","properties":{"name":"Armenia"},"geometry":{"type":"Polygon","coordinates":[[[43.582746,41.092143],[44.97248,41.248129],[45.179496,40.985354],[45.560351,40.81229],[45.359175,40.561504],[45.891907,40.218476],[45.610012,39.899994],[46.034534,39.628021],[46.483499,39.464155],[46.50572,38.770605],[46.143623,38.741201],[45.735379,39.319719],[45.739978,39.473999],[45.298145,39.471751],[45.001987,39.740004],[44.79399,39.713003],[44.400009,40.005],[43.656436,40.253564],[43.752658,40.740201],[43.582746,41.092143]]]}}, +{"type":"Feature","id":"ATA","properties":{"name":"Antarctica"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-59.572095,-80.040179],[-59.865849,-80.549657],[-60.159656,-81.000327],[-62.255393,-80.863178],[-64.488125,-80.921934],[-65.741666,-80.588827],[-65.741666,-80.549657],[-66.290031,-80.255773],[-64.037688,-80.294944],[-61.883246,-80.39287],[-61.138976,-79.981371],[-60.610119,-79.628679],[-59.572095,-80.040179]]],[[[-159.208184,-79.497059],[-161.127601,-79.634209],[-162.439847,-79.281465],[-163.027408,-78.928774],[-163.066604,-78.869966],[-163.712896,-78.595667],[-163.712896,-78.595667],[-163.105801,-78.223338],[-161.245113,-78.380176],[-160.246208,-78.693645],[-159.482405,-79.046338],[-159.208184,-79.497059]]],[[[-45.154758,-78.04707],[-43.920828,-78.478103],[-43.48995,-79.08556],[-43.372438,-79.516645],[-43.333267,-80.026123],[-44.880537,-80.339644],[-46.506174,-80.594357],[-48.386421,-80.829485],[-50.482107,-81.025442],[-52.851988,-80.966685],[-54.164259,-80.633528],[-53.987991,-80.222028],[-51.853134,-79.94773],[-50.991326,-79.614623],[-50.364595,-79.183487],[-49.914131,-78.811209],[-49.306959,-78.458569],[-48.660616,-78.047018],[-48.660616,-78.047019],[-48.151396,-78.04707],[-46.662857,-77.831476],[-45.154758,-78.04707]]],[[[-121.211511,-73.50099],[-119.918851,-73.657725],[-118.724143,-73.481353],[-119.292119,-73.834097],[-120.232217,-74.08881],[-121.62283,-74.010468],[-122.621735,-73.657778],[-122.621735,-73.657777],[-122.406245,-73.324619],[-121.211511,-73.50099]]],[[[-125.559566,-73.481353],[-124.031882,-73.873268],[-124.619469,-73.834097],[-125.912181,-73.736118],[-127.28313,-73.461769],[-127.28313,-73.461768],[-126.558472,-73.246226],[-125.559566,-73.481353]]],[[[-98.98155,-71.933334],[-97.884743,-72.070535],[-96.787937,-71.952971],[-96.20035,-72.521205],[-96.983765,-72.442864],[-98.198083,-72.482035],[-99.432013,-72.442864],[-100.783455,-72.50162],[-101.801868,-72.305663],[-102.330725,-71.894164],[-102.330725,-71.894164],[-101.703967,-71.717792],[-100.430919,-71.854993],[-98.98155,-71.933334]]],[[[-68.451346,-70.955823],[-68.333834,-71.406493],[-68.510128,-71.798407],[-68.784297,-72.170736],[-69.959471,-72.307885],[-71.075889,-72.503842],[-72.388134,-72.484257],[-71.8985,-72.092343],[-73.073622,-72.229492],[-74.19004,-72.366693],[-74.953895,-72.072757],[-75.012625,-71.661258],[-73.915819,-71.269345],[-73.915819,-71.269344],[-73.230331,-71.15178],[-72.074717,-71.190951],[-71.780962,-70.681473],[-71.72218,-70.309196],[-71.741791,-69.505782],[-71.173815,-69.035475],[-70.253252,-68.87874],[-69.724447,-69.251017],[-69.489422,-69.623346],[-69.058518,-70.074016],[-68.725541,-70.505153],[-68.451346,-70.955823]]],[[[-58.614143,-64.152467],[-59.045073,-64.36801],[-59.789342,-64.211223],[-60.611928,-64.309202],[-61.297416,-64.54433],[-62.0221,-64.799094],[-62.51176,-65.09303],[-62.648858,-65.484942],[-62.590128,-65.857219],[-62.120079,-66.190326],[-62.805567,-66.425505],[-63.74569,-66.503847],[-64.294106,-66.837004],[-64.881693,-67.150474],[-65.508425,-67.58161],[-65.665082,-67.953887],[-65.312545,-68.365335],[-64.783715,-68.678908],[-63.961103,-68.913984],[-63.1973,-69.227556],[-62.785955,-69.619419],[-62.570516,-69.991747],[-62.276736,-70.383661],[-61.806661,-70.716768],[-61.512906,-71.089045],[-61.375809,-72.010074],[-61.081977,-72.382351],[-61.003661,-72.774265],[-60.690269,-73.166179],[-60.827367,-73.695242],[-61.375809,-74.106742],[-61.96337,-74.439848],[-63.295201,-74.576997],[-63.74569,-74.92974],[-64.352836,-75.262847],[-65.860987,-75.635124],[-67.192818,-75.79191],[-68.446282,-76.007452],[-69.797724,-76.222995],[-70.600724,-76.634494],[-72.206776,-76.673665],[-73.969536,-76.634494],[-75.555977,-76.712887],[-77.24037,-76.712887],[-76.926979,-77.104802],[-75.399294,-77.28107],[-74.282876,-77.55542],[-73.656119,-77.908112],[-74.772536,-78.221633],[-76.4961,-78.123654],[-77.925858,-78.378419],[-77.984666,-78.789918],[-78.023785,-79.181833],[-76.848637,-79.514939],[-76.633224,-79.887216],[-75.360097,-80.259545],[-73.244852,-80.416331],[-71.442946,-80.69063],[-70.013163,-81.004151],[-68.191646,-81.317672],[-65.704279,-81.474458],[-63.25603,-81.748757],[-61.552026,-82.042692],[-59.691416,-82.37585],[-58.712121,-82.846106],[-58.222487,-83.218434],[-57.008117,-82.865691],[-55.362894,-82.571755],[-53.619771,-82.258235],[-51.543644,-82.003521],[-49.76135,-81.729171],[-47.273931,-81.709586],[-44.825708,-81.846735],[-42.808363,-82.081915],[-42.16202,-81.65083],[-40.771433,-81.356894],[-38.244818,-81.337309],[-36.26667,-81.121715],[-34.386397,-80.906172],[-32.310296,-80.769023],[-30.097098,-80.592651],[-28.549802,-80.337938],[-29.254901,-79.985195],[-29.685805,-79.632503],[-29.685805,-79.260226],[-31.624808,-79.299397],[-33.681324,-79.456132],[-35.639912,-79.456132],[-35.914107,-79.083855],[-35.77701,-78.339248],[-35.326546,-78.123654],[-33.896763,-77.888526],[-32.212369,-77.65345],[-30.998051,-77.359515],[-29.783732,-77.065579],[-28.882779,-76.673665],[-27.511752,-76.497345],[-26.160336,-76.360144],[-25.474822,-76.281803],[-23.927552,-76.24258],[-22.458598,-76.105431],[-21.224694,-75.909474],[-20.010375,-75.674346],[-18.913543,-75.439218],[-17.522982,-75.125698],[-16.641589,-74.79254],[-15.701491,-74.498604],[-15.40771,-74.106742],[-16.46532,-73.871614],[-16.112784,-73.460114],[-15.446855,-73.146542],[-14.408805,-72.950585],[-13.311973,-72.715457],[-12.293508,-72.401936],[-11.510067,-72.010074],[-11.020433,-71.539767],[-10.295774,-71.265416],[-9.101015,-71.324224],[-8.611381,-71.65733],[-7.416622,-71.696501],[-7.377451,-71.324224],[-6.868232,-70.93231],[-5.790985,-71.030289],[-5.536375,-71.402617],[-4.341667,-71.461373],[-3.048981,-71.285053],[-1.795492,-71.167438],[-0.659489,-71.226246],[-0.228637,-71.637745],[0.868195,-71.304639],[1.886686,-71.128267],[3.022638,-70.991118],[4.139055,-70.853917],[5.157546,-70.618789],[6.273912,-70.462055],[7.13572,-70.246512],[7.742866,-69.893769],[8.48711,-70.148534],[9.525135,-70.011333],[10.249845,-70.48164],[10.817821,-70.834332],[11.953824,-70.638375],[12.404287,-70.246512],[13.422778,-69.972162],[14.734998,-70.030918],[15.126757,-70.403247],[15.949342,-70.030918],[17.026589,-69.913354],[18.201711,-69.874183],[19.259373,-69.893769],[20.375739,-70.011333],[21.452985,-70.07014],[21.923034,-70.403247],[22.569403,-70.697182],[23.666184,-70.520811],[24.841357,-70.48164],[25.977309,-70.48164],[27.093726,-70.462055],[28.09258,-70.324854],[29.150242,-70.20729],[30.031583,-69.93294],[30.971733,-69.75662],[31.990172,-69.658641],[32.754053,-69.384291],[33.302443,-68.835642],[33.870419,-68.502588],[34.908495,-68.659271],[35.300202,-69.012014],[36.16201,-69.247142],[37.200035,-69.168748],[37.905108,-69.52144],[38.649404,-69.776205],[39.667894,-69.541077],[40.020431,-69.109941],[40.921358,-68.933621],[41.959434,-68.600514],[42.938702,-68.463313],[44.113876,-68.267408],[44.897291,-68.051866],[45.719928,-67.816738],[46.503343,-67.601196],[47.44344,-67.718759],[48.344419,-67.366068],[48.990736,-67.091718],[49.930885,-67.111303],[50.753471,-66.876175],[50.949325,-66.523484],[51.791547,-66.249133],[52.614133,-66.053176],[53.613038,-65.89639],[54.53355,-65.818049],[55.414943,-65.876805],[56.355041,-65.974783],[57.158093,-66.249133],[57.255968,-66.680218],[58.137361,-67.013324],[58.744508,-67.287675],[59.939318,-67.405239],[60.605221,-67.679589],[61.427806,-67.953887],[62.387489,-68.012695],[63.19049,-67.816738],[64.052349,-67.405239],[64.992447,-67.620729],[65.971715,-67.738345],[66.911864,-67.855909],[67.891133,-67.934302],[68.890038,-67.934302],[69.712624,-68.972791],[69.673453,-69.227556],[69.555941,-69.678226],[68.596258,-69.93294],[67.81274,-70.305268],[67.949889,-70.697182],[69.066307,-70.677545],[68.929157,-71.069459],[68.419989,-71.441788],[67.949889,-71.853287],[68.71377,-72.166808],[69.869307,-72.264787],[71.024895,-72.088415],[71.573285,-71.696501],[71.906288,-71.324224],[72.454627,-71.010703],[73.08141,-70.716768],[73.33602,-70.364024],[73.864877,-69.874183],[74.491557,-69.776205],[75.62756,-69.737034],[76.626465,-69.619419],[77.644904,-69.462684],[78.134539,-69.07077],[78.428371,-68.698441],[79.113859,-68.326216],[80.093127,-68.071503],[80.93535,-67.875546],[81.483792,-67.542388],[82.051767,-67.366068],[82.776426,-67.209282],[83.775331,-67.30726],[84.676206,-67.209282],[85.655527,-67.091718],[86.752359,-67.150474],[87.477017,-66.876175],[87.986289,-66.209911],[88.358411,-66.484261],[88.828408,-66.954568],[89.67063,-67.150474],[90.630365,-67.228867],[91.5901,-67.111303],[92.608539,-67.189696],[93.548637,-67.209282],[94.17542,-67.111303],[95.017591,-67.170111],[95.781472,-67.385653],[96.682399,-67.248504],[97.759646,-67.248504],[98.68021,-67.111303],[99.718182,-67.248504],[100.384188,-66.915346],[100.893356,-66.58224],[101.578896,-66.30789],[102.832411,-65.563284],[103.478676,-65.700485],[104.242557,-65.974783],[104.90846,-66.327527],[106.181561,-66.934931],[107.160881,-66.954568],[108.081393,-66.954568],[109.15864,-66.837004],[110.235835,-66.699804],[111.058472,-66.425505],[111.74396,-66.13157],[112.860378,-66.092347],[113.604673,-65.876805],[114.388088,-66.072762],[114.897308,-66.386283],[115.602381,-66.699804],[116.699161,-66.660633],[117.384701,-66.915346],[118.57946,-67.170111],[119.832924,-67.268089],[120.871,-67.189696],[121.654415,-66.876175],[122.320369,-66.562654],[123.221296,-66.484261],[124.122274,-66.621462],[125.160247,-66.719389],[126.100396,-66.562654],[127.001427,-66.562654],[127.882768,-66.660633],[128.80328,-66.758611],[129.704259,-66.58224],[130.781454,-66.425505],[131.799945,-66.386283],[132.935896,-66.386283],[133.85646,-66.288304],[134.757387,-66.209963],[135.031582,-65.72007],[135.070753,-65.308571],[135.697485,-65.582869],[135.873805,-66.033591],[136.206705,-66.44509],[136.618049,-66.778197],[137.460271,-66.954568],[138.596223,-66.895761],[139.908442,-66.876175],[140.809421,-66.817367],[142.121692,-66.817367],[143.061842,-66.797782],[144.374061,-66.837004],[145.490427,-66.915346],[146.195552,-67.228867],[145.999699,-67.601196],[146.646067,-67.895131],[147.723263,-68.130259],[148.839629,-68.385024],[150.132314,-68.561292],[151.483705,-68.71813],[152.502247,-68.874813],[153.638199,-68.894502],[154.284567,-68.561292],[155.165857,-68.835642],[155.92979,-69.149215],[156.811132,-69.384291],[158.025528,-69.482269],[159.181013,-69.599833],[159.670699,-69.991747],[160.80665,-70.226875],[161.570479,-70.579618],[162.686897,-70.736353],[163.842434,-70.716768],[164.919681,-70.775524],[166.11444,-70.755938],[167.309095,-70.834332],[168.425616,-70.971481],[169.463589,-71.20666],[170.501665,-71.402617],[171.20679,-71.696501],[171.089227,-72.088415],[170.560422,-72.441159],[170.109958,-72.891829],[169.75737,-73.24452],[169.287321,-73.65602],[167.975101,-73.812806],[167.387489,-74.165498],[166.094803,-74.38104],[165.644391,-74.772954],[164.958851,-75.145283],[164.234193,-75.458804],[163.822797,-75.870303],[163.568239,-76.24258],[163.47026,-76.693302],[163.489897,-77.065579],[164.057873,-77.457442],[164.273363,-77.82977],[164.743464,-78.182514],[166.604126,-78.319611],[166.995781,-78.750748],[165.193876,-78.907483],[163.666217,-79.123025],[161.766385,-79.162248],[160.924162,-79.730482],[160.747894,-80.200737],[160.316964,-80.573066],[159.788211,-80.945395],[161.120016,-81.278501],[161.629287,-81.690001],[162.490992,-82.062278],[163.705336,-82.395435],[165.095949,-82.708956],[166.604126,-83.022477],[168.895665,-83.335998],[169.404782,-83.825891],[172.283934,-84.041433],[172.477049,-84.117914],[173.224083,-84.41371],[175.985672,-84.158997],[178.277212,-84.472518],[180,-84.71338],[-179.942499,-84.721443],[-179.058677,-84.139412],[-177.256772,-84.452933],[-177.140807,-84.417941],[-176.084673,-84.099259],[-175.947235,-84.110449],[-175.829882,-84.117914],[-174.382503,-84.534323],[-173.116559,-84.117914],[-172.889106,-84.061019],[-169.951223,-83.884647],[-168.999989,-84.117914],[-168.530199,-84.23739],[-167.022099,-84.570497],[-164.182144,-84.82521],[-161.929775,-85.138731],[-158.07138,-85.37391],[-155.192253,-85.09956],[-150.942099,-85.295517],[-148.533073,-85.609038],[-145.888918,-85.315102],[-143.107718,-85.040752],[-142.892279,-84.570497],[-146.829068,-84.531274],[-150.060732,-84.296146],[-150.902928,-83.904232],[-153.586201,-83.68869],[-153.409907,-83.23802],[-153.037759,-82.82652],[-152.665637,-82.454192],[-152.861517,-82.042692],[-154.526299,-81.768394],[-155.29018,-81.41565],[-156.83745,-81.102129],[-154.408787,-81.160937],[-152.097662,-81.004151],[-150.648293,-81.337309],[-148.865998,-81.043373],[-147.22075,-80.671045],[-146.417749,-80.337938],[-146.770286,-79.926439],[-148.062947,-79.652089],[-149.531901,-79.358205],[-151.588416,-79.299397],[-153.390322,-79.162248],[-155.329376,-79.064269],[-155.975668,-78.69194],[-157.268302,-78.378419],[-158.051768,-78.025676],[-158.365134,-76.889207],[-157.875474,-76.987238],[-156.974573,-77.300759],[-155.329376,-77.202728],[-153.742832,-77.065579],[-152.920247,-77.496664],[-151.33378,-77.398737],[-150.00195,-77.183143],[-148.748486,-76.908845],[-147.612483,-76.575738],[-146.104409,-76.47776],[-146.143528,-76.105431],[-146.496091,-75.733154],[-146.20231,-75.380411],[-144.909624,-75.204039],[-144.322037,-75.537197],[-142.794353,-75.34124],[-141.638764,-75.086475],[-140.209007,-75.06689],[-138.85759,-74.968911],[-137.5062,-74.733783],[-136.428901,-74.518241],[-135.214583,-74.302699],[-134.431194,-74.361455],[-133.745654,-74.439848],[-132.257168,-74.302699],[-130.925311,-74.479019],[-129.554284,-74.459433],[-128.242038,-74.322284],[-126.890622,-74.420263],[-125.402082,-74.518241],[-124.011496,-74.479019],[-122.562152,-74.498604],[-121.073613,-74.518241],[-119.70256,-74.479019],[-118.684145,-74.185083],[-117.469801,-74.028348],[-116.216312,-74.243891],[-115.021552,-74.067519],[-113.944331,-73.714828],[-113.297988,-74.028348],[-112.945452,-74.38104],[-112.299083,-74.714198],[-111.261059,-74.420263],[-110.066325,-74.79254],[-108.714909,-74.910103],[-107.559346,-75.184454],[-106.149148,-75.125698],[-104.876074,-74.949326],[-103.367949,-74.988497],[-102.016507,-75.125698],[-100.645531,-75.302018],[-100.1167,-74.870933],[-100.763043,-74.537826],[-101.252703,-74.185083],[-102.545337,-74.106742],[-103.113313,-73.734413],[-103.328752,-73.362084],[-103.681289,-72.61753],[-102.917485,-72.754679],[-101.60524,-72.813436],[-100.312528,-72.754679],[-99.13738,-72.911414],[-98.118889,-73.20535],[-97.688037,-73.558041],[-96.336595,-73.616849],[-95.043961,-73.4797],[-93.672907,-73.283743],[-92.439003,-73.166179],[-91.420564,-73.401307],[-90.088733,-73.322914],[-89.226951,-72.558722],[-88.423951,-73.009393],[-87.268337,-73.185764],[-86.014822,-73.087786],[-85.192236,-73.4797],[-83.879991,-73.518871],[-82.665646,-73.636434],[-81.470913,-73.851977],[-80.687447,-73.4797],[-80.295791,-73.126956],[-79.296886,-73.518871],[-77.925858,-73.420892],[-76.907367,-73.636434],[-76.221879,-73.969541],[-74.890049,-73.871614],[-73.852024,-73.65602],[-72.833533,-73.401307],[-71.619215,-73.264157],[-70.209042,-73.146542],[-68.935916,-73.009393],[-67.956622,-72.79385],[-67.369061,-72.480329],[-67.134036,-72.049244],[-67.251548,-71.637745],[-67.56494,-71.245831],[-67.917477,-70.853917],[-68.230843,-70.462055],[-68.485452,-70.109311],[-68.544209,-69.717397],[-68.446282,-69.325535],[-67.976233,-68.953206],[-67.5845,-68.541707],[-67.427843,-68.149844],[-67.62367,-67.718759],[-67.741183,-67.326845],[-67.251548,-66.876175],[-66.703184,-66.58224],[-66.056815,-66.209963],[-65.371327,-65.89639],[-64.568276,-65.602506],[-64.176542,-65.171423],[-63.628152,-64.897073],[-63.001394,-64.642308],[-62.041686,-64.583552],[-61.414928,-64.270031],[-60.709855,-64.074074],[-59.887269,-63.95651],[-59.162585,-63.701745],[-58.594557,-63.388224],[-57.811143,-63.27066],[-57.223582,-63.525425],[-57.59573,-63.858532],[-58.614143,-64.152467]]]]}}, +{"type":"Feature","id":"ATF","properties":{"name":"French Southern and Antarctic Lands"},"geometry":{"type":"Polygon","coordinates":[[[68.935,-48.625],[69.58,-48.94],[70.525,-49.065],[70.56,-49.255],[70.28,-49.71],[68.745,-49.775],[68.72,-49.2425],[68.8675,-48.83],[68.935,-48.625]]]}}, +{"type":"Feature","id":"AUS","properties":{"name":"Australia"},"geometry":{"type":"MultiPolygon","coordinates":[[[[145.397978,-40.792549],[146.364121,-41.137695],[146.908584,-41.000546],[147.689259,-40.808258],[148.289068,-40.875438],[148.359865,-42.062445],[148.017301,-42.407024],[147.914052,-43.211522],[147.564564,-42.937689],[146.870343,-43.634597],[146.663327,-43.580854],[146.048378,-43.549745],[145.43193,-42.693776],[145.29509,-42.03361],[144.718071,-41.162552],[144.743755,-40.703975],[145.397978,-40.792549]]],[[[143.561811,-13.763656],[143.922099,-14.548311],[144.563714,-14.171176],[144.894908,-14.594458],[145.374724,-14.984976],[145.271991,-15.428205],[145.48526,-16.285672],[145.637033,-16.784918],[145.888904,-16.906926],[146.160309,-17.761655],[146.063674,-18.280073],[146.387478,-18.958274],[147.471082,-19.480723],[148.177602,-19.955939],[148.848414,-20.39121],[148.717465,-20.633469],[149.28942,-21.260511],[149.678337,-22.342512],[150.077382,-22.122784],[150.482939,-22.556142],[150.727265,-22.402405],[150.899554,-23.462237],[151.609175,-24.076256],[152.07354,-24.457887],[152.855197,-25.267501],[153.136162,-26.071173],[153.161949,-26.641319],[153.092909,-27.2603],[153.569469,-28.110067],[153.512108,-28.995077],[153.339095,-29.458202],[153.069241,-30.35024],[153.089602,-30.923642],[152.891578,-31.640446],[152.450002,-32.550003],[151.709117,-33.041342],[151.343972,-33.816023],[151.010555,-34.31036],[150.714139,-35.17346],[150.32822,-35.671879],[150.075212,-36.420206],[149.946124,-37.109052],[149.997284,-37.425261],[149.423882,-37.772681],[148.304622,-37.809061],[147.381733,-38.219217],[146.922123,-38.606532],[146.317922,-39.035757],[145.489652,-38.593768],[144.876976,-38.417448],[145.032212,-37.896188],[144.485682,-38.085324],[143.609974,-38.809465],[142.745427,-38.538268],[142.17833,-38.380034],[141.606582,-38.308514],[140.638579,-38.019333],[139.992158,-37.402936],[139.806588,-36.643603],[139.574148,-36.138362],[139.082808,-35.732754],[138.120748,-35.612296],[138.449462,-35.127261],[138.207564,-34.384723],[137.71917,-35.076825],[136.829406,-35.260535],[137.352371,-34.707339],[137.503886,-34.130268],[137.890116,-33.640479],[137.810328,-32.900007],[136.996837,-33.752771],[136.372069,-34.094766],[135.989043,-34.890118],[135.208213,-34.47867],[135.239218,-33.947953],[134.613417,-33.222778],[134.085904,-32.848072],[134.273903,-32.617234],[132.990777,-32.011224],[132.288081,-31.982647],[131.326331,-31.495803],[129.535794,-31.590423],[128.240938,-31.948489],[127.102867,-32.282267],[126.148714,-32.215966],[125.088623,-32.728751],[124.221648,-32.959487],[124.028947,-33.483847],[123.659667,-33.890179],[122.811036,-33.914467],[122.183064,-34.003402],[121.299191,-33.821036],[120.580268,-33.930177],[119.893695,-33.976065],[119.298899,-34.509366],[119.007341,-34.464149],[118.505718,-34.746819],[118.024972,-35.064733],[117.295507,-35.025459],[116.625109,-35.025097],[115.564347,-34.386428],[115.026809,-34.196517],[115.048616,-33.623425],[115.545123,-33.487258],[115.714674,-33.259572],[115.679379,-32.900369],[115.801645,-32.205062],[115.689611,-31.612437],[115.160909,-30.601594],[114.997043,-30.030725],[115.040038,-29.461095],[114.641974,-28.810231],[114.616498,-28.516399],[114.173579,-28.118077],[114.048884,-27.334765],[113.477498,-26.543134],[113.338953,-26.116545],[113.778358,-26.549025],[113.440962,-25.621278],[113.936901,-25.911235],[114.232852,-26.298446],[114.216161,-25.786281],[113.721255,-24.998939],[113.625344,-24.683971],[113.393523,-24.384764],[113.502044,-23.80635],[113.706993,-23.560215],[113.843418,-23.059987],[113.736552,-22.475475],[114.149756,-21.755881],[114.225307,-22.517488],[114.647762,-21.82952],[115.460167,-21.495173],[115.947373,-21.068688],[116.711615,-20.701682],[117.166316,-20.623599],[117.441545,-20.746899],[118.229559,-20.374208],[118.836085,-20.263311],[118.987807,-20.044203],[119.252494,-19.952942],[119.805225,-19.976506],[120.85622,-19.683708],[121.399856,-19.239756],[121.655138,-18.705318],[122.241665,-18.197649],[122.286624,-17.798603],[122.312772,-17.254967],[123.012574,-16.4052],[123.433789,-17.268558],[123.859345,-17.069035],[123.503242,-16.596506],[123.817073,-16.111316],[124.258287,-16.327944],[124.379726,-15.56706],[124.926153,-15.0751],[125.167275,-14.680396],[125.670087,-14.51007],[125.685796,-14.230656],[126.125149,-14.347341],[126.142823,-14.095987],[126.582589,-13.952791],[127.065867,-13.817968],[127.804633,-14.276906],[128.35969,-14.86917],[128.985543,-14.875991],[129.621473,-14.969784],[129.4096,-14.42067],[129.888641,-13.618703],[130.339466,-13.357376],[130.183506,-13.10752],[130.617795,-12.536392],[131.223495,-12.183649],[131.735091,-12.302453],[132.575298,-12.114041],[132.557212,-11.603012],[131.824698,-11.273782],[132.357224,-11.128519],[133.019561,-11.376411],[133.550846,-11.786515],[134.393068,-12.042365],[134.678632,-11.941183],[135.298491,-12.248606],[135.882693,-11.962267],[136.258381,-12.049342],[136.492475,-11.857209],[136.95162,-12.351959],[136.685125,-12.887223],[136.305407,-13.29123],[135.961758,-13.324509],[136.077617,-13.724278],[135.783836,-14.223989],[135.428664,-14.715432],[135.500184,-14.997741],[136.295175,-15.550265],[137.06536,-15.870762],[137.580471,-16.215082],[138.303217,-16.807604],[138.585164,-16.806622],[139.108543,-17.062679],[139.260575,-17.371601],[140.215245,-17.710805],[140.875463,-17.369069],[141.07111,-16.832047],[141.274095,-16.38887],[141.398222,-15.840532],[141.702183,-15.044921],[141.56338,-14.561333],[141.63552,-14.270395],[141.519869,-13.698078],[141.65092,-12.944688],[141.842691,-12.741548],[141.68699,-12.407614],[141.928629,-11.877466],[142.118488,-11.328042],[142.143706,-11.042737],[142.51526,-10.668186],[142.79731,-11.157355],[142.866763,-11.784707],[143.115947,-11.90563],[143.158632,-12.325656],[143.522124,-12.834358],[143.597158,-13.400422],[143.561811,-13.763656]]]]}}, +{"type":"Feature","id":"AUT","properties":{"name":"Austria"},"geometry":{"type":"Polygon","coordinates":[[[16.979667,48.123497],[16.903754,47.714866],[16.340584,47.712902],[16.534268,47.496171],[16.202298,46.852386],[16.011664,46.683611],[15.137092,46.658703],[14.632472,46.431817],[13.806475,46.509306],[12.376485,46.767559],[12.153088,47.115393],[11.164828,46.941579],[11.048556,46.751359],[10.442701,46.893546],[9.932448,46.920728],[9.47997,47.10281],[9.632932,47.347601],[9.594226,47.525058],[9.896068,47.580197],[10.402084,47.302488],[10.544504,47.566399],[11.426414,47.523766],[12.141357,47.703083],[12.62076,47.672388],[12.932627,47.467646],[13.025851,47.637584],[12.884103,48.289146],[13.243357,48.416115],[13.595946,48.877172],[14.338898,48.555305],[14.901447,48.964402],[15.253416,49.039074],[16.029647,48.733899],[16.499283,48.785808],[16.960288,48.596982],[16.879983,48.470013],[16.979667,48.123497]]]}}, +{"type":"Feature","id":"AZE","properties":{"name":"Azerbaijan"},"geometry":{"type":"MultiPolygon","coordinates":[[[[45.001987,39.740004],[45.298145,39.471751],[45.739978,39.473999],[45.735379,39.319719],[46.143623,38.741201],[45.457722,38.874139],[44.952688,39.335765],[44.79399,39.713003],[45.001987,39.740004]]],[[[47.373315,41.219732],[47.815666,41.151416],[47.987283,41.405819],[48.584353,41.80887],[49.110264,41.282287],[49.618915,40.572924],[50.08483,40.526157],[50.392821,40.256561],[49.569202,40.176101],[49.395259,39.399482],[49.223228,39.049219],[48.856532,38.815486],[48.883249,38.320245],[48.634375,38.270378],[48.010744,38.794015],[48.355529,39.288765],[48.060095,39.582235],[47.685079,39.508364],[46.50572,38.770605],[46.483499,39.464155],[46.034534,39.628021],[45.610012,39.899994],[45.891907,40.218476],[45.359175,40.561504],[45.560351,40.81229],[45.179496,40.985354],[44.97248,41.248129],[45.217426,41.411452],[45.962601,41.123873],[46.501637,41.064445],[46.637908,41.181673],[46.145432,41.722802],[46.404951,41.860675],[46.686071,41.827137],[47.373315,41.219732]]]]}}, +{"type":"Feature","id":"BDI","properties":{"name":"Burundi"},"geometry":{"type":"Polygon","coordinates":[[[29.339998,-4.499983],[29.276384,-3.293907],[29.024926,-2.839258],[29.632176,-2.917858],[29.938359,-2.348487],[30.469696,-2.413858],[30.527677,-2.807632],[30.743013,-3.034285],[30.752263,-3.35933],[30.50556,-3.568567],[30.116333,-4.090138],[29.753512,-4.452389],[29.339998,-4.499983]]]}}, +{"type":"Feature","id":"BEL","properties":{"name":"Belgium"},"geometry":{"type":"Polygon","coordinates":[[[3.314971,51.345781],[4.047071,51.267259],[4.973991,51.475024],[5.606976,51.037298],[6.156658,50.803721],[6.043073,50.128052],[5.782417,50.090328],[5.674052,49.529484],[4.799222,49.985373],[4.286023,49.907497],[3.588184,50.378992],[3.123252,50.780363],[2.658422,50.796848],[2.513573,51.148506],[3.314971,51.345781]]]}}, +{"type":"Feature","id":"BEN","properties":{"name":"Benin"},"geometry":{"type":"Polygon","coordinates":[[[2.691702,6.258817],[1.865241,6.142158],[1.618951,6.832038],[1.664478,9.12859],[1.463043,9.334624],[1.425061,9.825395],[1.077795,10.175607],[0.772336,10.470808],[0.899563,10.997339],[1.24347,11.110511],[1.447178,11.547719],[1.935986,11.64115],[2.154474,11.94015],[2.490164,12.233052],[2.848643,12.235636],[3.61118,11.660167],[3.572216,11.327939],[3.797112,10.734746],[3.60007,10.332186],[3.705438,10.06321],[3.220352,9.444153],[2.912308,9.137608],[2.723793,8.506845],[2.749063,7.870734],[2.691702,6.258817]]]}}, +{"type":"Feature","id":"BFA","properties":{"name":"Burkina Faso"},"geometry":{"type":"Polygon","coordinates":[[[-2.827496,9.642461],[-3.511899,9.900326],[-3.980449,9.862344],[-4.330247,9.610835],[-4.779884,9.821985],[-4.954653,10.152714],[-5.404342,10.370737],[-5.470565,10.95127],[-5.197843,11.375146],[-5.220942,11.713859],[-4.427166,12.542646],[-4.280405,13.228444],[-4.006391,13.472485],[-3.522803,13.337662],[-3.103707,13.541267],[-2.967694,13.79815],[-2.191825,14.246418],[-2.001035,14.559008],[-1.066363,14.973815],[-0.515854,15.116158],[-0.266257,14.924309],[0.374892,14.928908],[0.295646,14.444235],[0.429928,13.988733],[0.993046,13.33575],[1.024103,12.851826],[2.177108,12.625018],[2.154474,11.94015],[1.935986,11.64115],[1.447178,11.547719],[1.24347,11.110511],[0.899563,10.997339],[0.023803,11.018682],[-0.438702,11.098341],[-0.761576,10.93693],[-1.203358,11.009819],[-2.940409,10.96269],[-2.963896,10.395335],[-2.827496,9.642461]]]}}, +{"type":"Feature","id":"BGD","properties":{"name":"Bangladesh"},"geometry":{"type":"Polygon","coordinates":[[[92.672721,22.041239],[92.652257,21.324048],[92.303234,21.475485],[92.368554,20.670883],[92.082886,21.192195],[92.025215,21.70157],[91.834891,22.182936],[91.417087,22.765019],[90.496006,22.805017],[90.586957,22.392794],[90.272971,21.836368],[89.847467,22.039146],[89.70205,21.857116],[89.418863,21.966179],[89.031961,22.055708],[88.876312,22.879146],[88.52977,23.631142],[88.69994,24.233715],[88.084422,24.501657],[88.306373,24.866079],[88.931554,25.238692],[88.209789,25.768066],[88.563049,26.446526],[89.355094,26.014407],[89.832481,25.965082],[89.920693,25.26975],[90.872211,25.132601],[91.799596,25.147432],[92.376202,24.976693],[91.915093,24.130414],[91.46773,24.072639],[91.158963,23.503527],[91.706475,22.985264],[91.869928,23.624346],[92.146035,23.627499],[92.672721,22.041239]]]}}, +{"type":"Feature","id":"BGR","properties":{"name":"Bulgaria"},"geometry":{"type":"Polygon","coordinates":[[[22.65715,44.234923],[22.944832,43.823785],[23.332302,43.897011],[24.100679,43.741051],[25.569272,43.688445],[26.065159,43.943494],[27.2424,44.175986],[27.970107,43.812468],[28.558081,43.707462],[28.039095,43.293172],[27.673898,42.577892],[27.99672,42.007359],[27.135739,42.141485],[26.117042,41.826905],[26.106138,41.328899],[25.197201,41.234486],[24.492645,41.583896],[23.692074,41.309081],[22.952377,41.337994],[22.881374,41.999297],[22.380526,42.32026],[22.545012,42.461362],[22.436595,42.580321],[22.604801,42.898519],[22.986019,43.211161],[22.500157,43.642814],[22.410446,44.008063],[22.65715,44.234923]]]}}, +{"type":"Feature","id":"BHS","properties":{"name":"The Bahamas"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-77.53466,23.75975],[-77.78,23.71],[-78.03405,24.28615],[-78.40848,24.57564],[-78.19087,25.2103],[-77.89,25.17],[-77.54,24.34],[-77.53466,23.75975]]],[[[-77.82,26.58],[-78.91,26.42],[-78.98,26.79],[-78.51,26.87],[-77.85,26.84],[-77.82,26.58]]],[[[-77,26.59],[-77.17255,25.87918],[-77.35641,26.00735],[-77.34,26.53],[-77.78802,26.92516],[-77.79,27.04],[-77,26.59]]]]}}, +{"type":"Feature","id":"BIH","properties":{"name":"Bosnia and Herzegovina"},"geometry":{"type":"Polygon","coordinates":[[[19.005486,44.860234],[19.36803,44.863],[19.11761,44.42307],[19.59976,44.03847],[19.454,43.5681],[19.21852,43.52384],[19.03165,43.43253],[18.70648,43.20011],[18.56,42.65],[17.674922,43.028563],[17.297373,43.446341],[16.916156,43.667722],[16.456443,44.04124],[16.23966,44.351143],[15.750026,44.818712],[15.959367,45.233777],[16.318157,45.004127],[16.534939,45.211608],[17.002146,45.233777],[17.861783,45.06774],[18.553214,45.08159],[19.005486,44.860234]]]}}, +{"type":"Feature","id":"BLR","properties":{"name":"Belarus"},"geometry":{"type":"Polygon","coordinates":[[[23.484128,53.912498],[24.450684,53.905702],[25.536354,54.282423],[25.768433,54.846963],[26.588279,55.167176],[26.494331,55.615107],[27.10246,55.783314],[28.176709,56.16913],[29.229513,55.918344],[29.371572,55.670091],[29.896294,55.789463],[30.873909,55.550976],[30.971836,55.081548],[30.757534,54.811771],[31.384472,54.157056],[31.791424,53.974639],[31.731273,53.794029],[32.405599,53.618045],[32.693643,53.351421],[32.304519,53.132726],[31.497644,53.167427],[31.305201,53.073996],[31.540018,52.742052],[31.785998,52.101678],[30.927549,52.042353],[30.619454,51.822806],[30.555117,51.319503],[30.157364,51.416138],[29.254938,51.368234],[28.992835,51.602044],[28.617613,51.427714],[28.241615,51.572227],[27.454066,51.592303],[26.337959,51.832289],[25.327788,51.910656],[24.553106,51.888461],[24.005078,51.617444],[23.527071,51.578454],[23.508002,52.023647],[23.199494,52.486977],[23.799199,52.691099],[23.804935,53.089731],[23.527536,53.470122],[23.484128,53.912498]]]}}, +{"type":"Feature","id":"BLZ","properties":{"name":"Belize"},"geometry":{"type":"Polygon","coordinates":[[[-89.14308,17.808319],[-89.150909,17.955468],[-89.029857,18.001511],[-88.848344,17.883198],[-88.490123,18.486831],[-88.300031,18.499982],[-88.296336,18.353273],[-88.106813,18.348674],[-88.123479,18.076675],[-88.285355,17.644143],[-88.197867,17.489475],[-88.302641,17.131694],[-88.239518,17.036066],[-88.355428,16.530774],[-88.551825,16.265467],[-88.732434,16.233635],[-88.930613,15.887273],[-89.229122,15.886938],[-89.150806,17.015577],[-89.14308,17.808319]]]}}, +{"type":"Feature","id":"BMU","properties":{"name":"Bermuda"},"geometry":{"type":"Polygon","coordinates":[[[-64.7799734332998,32.3072000581802],[-64.7873319183061,32.3039237143428],[-64.7946942710173,32.3032682700388],[-64.8094297981283,32.3098175728414],[-64.8167896352437,32.3058845718466],[-64.8101968029642,32.3022833180511],[-64.7962291465484,32.2934409732427],[-64.7815086336978,32.2868973114514],[-64.7997025513437,32.2796896417328],[-64.8066707691087,32.2747767569465],[-64.8225587873683,32.2669111289395],[-64.8287548840306,32.2669075473817],[-64.8306732143498,32.2583944840235],[-64.8399924854972,32.254782282336],[-64.8566090462354,32.2547740387514],[-64.8682296789446,32.2616393614322],[-64.8628241459563,32.2724481933959],[-64.8748651338951,32.2757120264753],[-64.8717752856644,32.2819371582026],[-64.8671422127295,32.2930760547989],[-64.8559068764437,32.2960321186471],[-64.8597429072279,32.3015842021933],[-64.8439233486717,32.3140553852543],[-64.8350242329311,32.3242161760006],[-64.8338690593672,32.3294587561557],[-64.8520298651164,32.3110911879954],[-64.8635922932573,32.3048469433363],[-64.8686668994079,32.30910745083],[-64.8721354593415,32.3041908606301],[-64.8779667328485,32.3038632800462],[-64.8780046844321,32.2907757831692],[-64.8849776658292,32.2819261366004],[-64.8783230004629,32.2613001418681],[-64.863194968877,32.2465799485801],[-64.8519819555722,32.2485519134663],[-64.842311980074,32.2492123317296],[-64.8388242605209,32.2475773472534],[-64.8334002575532,32.2462714714698],[-64.8256389530584,32.2472637398594],[-64.8205697556026,32.2531698880328],[-64.8105087275579,32.2561208974156],[-64.7900177727338,32.2659446936992],[-64.7745415970416,32.2718413023427],[-64.7644742436426,32.2855931353214],[-64.7551803442276,32.2908326702531],[-64.7423982971436,32.2996734994024],[-64.7206991797682,32.3137542201258],[-64.7117851247134,32.3176823360806],[-64.6962778813133,32.3275029115532],[-64.6768921127452,32.3324095397555],[-64.6567136927777,32.3451776458469],[-64.6532168823499,32.3494356627941],[-64.6605720384429,32.3589423487763],[-64.65125819471,32.3615600906466],[-64.6462011670816,32.36975169749],[-64.6613227512832,32.3763135008721],[-64.6690666074397,32.388444543924],[-64.6834270548595,32.3854968316788],[-64.6954617672714,32.3763221285869],[-64.70438689565,32.3704254760469],[-64.7117569982798,32.368132600249],[-64.7061764744404,32.3600110593559],[-64.700531552697,32.3590601356818],[-64.6940348033967,32.3640708659835],[-64.6895164826082,32.3633598579866],[-64.6864150099255,32.3547797587266],[-64.6824635995504,32.3540628176846],[-64.6835876652835,32.3626447677968],[-64.6801998697415,32.3631199096979],[-64.6672170444687,32.3597751617473],[-64.6598811264978,32.3497625771755],[-64.6737331235384,32.3390281851635],[-64.6887090648183,32.3342439408053],[-64.706732854446,32.3429010723036],[-64.7149301576112,32.3552188753513],[-64.7185967666669,32.3552239212394],[-64.7214189847314,32.3518830231342],[-64.7270616067222,32.3466461715475],[-64.734962460882,32.3442819830499],[-64.7383521549094,32.3407216514918],[-64.7411729976333,32.3311790864627],[-64.7423019216485,32.323311561213],[-64.7462482354281,32.318538611581],[-64.7566773739613,32.3130509130175],[-64.768738200563,32.3088369816572],[-64.7799734332998,32.3072000581802]]]}}, +{"type":"Feature","id":"BOL","properties":{"name":"Bolivia"},"geometry":{"type":"Polygon","coordinates":[[[-62.846468,-22.034985],[-63.986838,-21.993644],[-64.377021,-22.798091],[-64.964892,-22.075862],[-66.273339,-21.83231],[-67.106674,-22.735925],[-67.82818,-22.872919],[-68.219913,-21.494347],[-68.757167,-20.372658],[-68.442225,-19.405068],[-68.966818,-18.981683],[-69.100247,-18.260125],[-69.590424,-17.580012],[-68.959635,-16.500698],[-69.389764,-15.660129],[-69.160347,-15.323974],[-69.339535,-14.953195],[-68.948887,-14.453639],[-68.929224,-13.602684],[-68.88008,-12.899729],[-68.66508,-12.5613],[-69.529678,-10.951734],[-68.786158,-11.03638],[-68.271254,-11.014521],[-68.048192,-10.712059],[-67.173801,-10.306812],[-66.646908,-9.931331],[-65.338435,-9.761988],[-65.444837,-10.511451],[-65.321899,-10.895872],[-65.402281,-11.56627],[-64.316353,-12.461978],[-63.196499,-12.627033],[-62.80306,-13.000653],[-62.127081,-13.198781],[-61.713204,-13.489202],[-61.084121,-13.479384],[-60.503304,-13.775955],[-60.459198,-14.354007],[-60.264326,-14.645979],[-60.251149,-15.077219],[-60.542966,-15.09391],[-60.15839,-16.258284],[-58.24122,-16.299573],[-58.388058,-16.877109],[-58.280804,-17.27171],[-57.734558,-17.552468],[-57.498371,-18.174188],[-57.676009,-18.96184],[-57.949997,-19.400004],[-57.853802,-19.969995],[-58.166392,-20.176701],[-58.183471,-19.868399],[-59.115042,-19.356906],[-60.043565,-19.342747],[-61.786326,-19.633737],[-62.265961,-20.513735],[-62.291179,-21.051635],[-62.685057,-22.249029],[-62.846468,-22.034985]]]}}, +{"type":"Feature","id":"BRA","properties":{"name":"Brazil"},"geometry":{"type":"Polygon","coordinates":[[[-57.625133,-30.216295],[-56.2909,-28.852761],[-55.162286,-27.881915],[-54.490725,-27.474757],[-53.648735,-26.923473],[-53.628349,-26.124865],[-54.13005,-25.547639],[-54.625291,-25.739255],[-54.428946,-25.162185],[-54.293476,-24.5708],[-54.29296,-24.021014],[-54.652834,-23.839578],[-55.027902,-24.001274],[-55.400747,-23.956935],[-55.517639,-23.571998],[-55.610683,-22.655619],[-55.797958,-22.35693],[-56.473317,-22.0863],[-56.88151,-22.282154],[-57.937156,-22.090176],[-57.870674,-20.732688],[-58.166392,-20.176701],[-57.853802,-19.969995],[-57.949997,-19.400004],[-57.676009,-18.96184],[-57.498371,-18.174188],[-57.734558,-17.552468],[-58.280804,-17.27171],[-58.388058,-16.877109],[-58.24122,-16.299573],[-60.15839,-16.258284],[-60.542966,-15.09391],[-60.251149,-15.077219],[-60.264326,-14.645979],[-60.459198,-14.354007],[-60.503304,-13.775955],[-61.084121,-13.479384],[-61.713204,-13.489202],[-62.127081,-13.198781],[-62.80306,-13.000653],[-63.196499,-12.627033],[-64.316353,-12.461978],[-65.402281,-11.56627],[-65.321899,-10.895872],[-65.444837,-10.511451],[-65.338435,-9.761988],[-66.646908,-9.931331],[-67.173801,-10.306812],[-68.048192,-10.712059],[-68.271254,-11.014521],[-68.786158,-11.03638],[-69.529678,-10.951734],[-70.093752,-11.123972],[-70.548686,-11.009147],[-70.481894,-9.490118],[-71.302412,-10.079436],[-72.184891,-10.053598],[-72.563033,-9.520194],[-73.226713,-9.462213],[-73.015383,-9.032833],[-73.571059,-8.424447],[-73.987235,-7.52383],[-73.723401,-7.340999],[-73.724487,-6.918595],[-73.120027,-6.629931],[-73.219711,-6.089189],[-72.964507,-5.741251],[-72.891928,-5.274561],[-71.748406,-4.593983],[-70.928843,-4.401591],[-70.794769,-4.251265],[-69.893635,-4.298187],[-69.444102,-1.556287],[-69.420486,-1.122619],[-69.577065,-0.549992],[-70.020656,-0.185156],[-70.015566,0.541414],[-69.452396,0.706159],[-69.252434,0.602651],[-69.218638,0.985677],[-69.804597,1.089081],[-69.816973,1.714805],[-67.868565,1.692455],[-67.53781,2.037163],[-67.259998,1.719999],[-67.065048,1.130112],[-66.876326,1.253361],[-66.325765,0.724452],[-65.548267,0.789254],[-65.354713,1.095282],[-64.611012,1.328731],[-64.199306,1.492855],[-64.083085,1.916369],[-63.368788,2.2009],[-63.422867,2.411068],[-64.269999,2.497006],[-64.408828,3.126786],[-64.368494,3.79721],[-64.816064,4.056445],[-64.628659,4.148481],[-63.888343,4.02053],[-63.093198,3.770571],[-62.804533,4.006965],[-62.08543,4.162124],[-60.966893,4.536468],[-60.601179,4.918098],[-60.733574,5.200277],[-60.213683,5.244486],[-59.980959,5.014061],[-60.111002,4.574967],[-59.767406,4.423503],[-59.53804,3.958803],[-59.815413,3.606499],[-59.974525,2.755233],[-59.718546,2.24963],[-59.646044,1.786894],[-59.030862,1.317698],[-58.540013,1.268088],[-58.429477,1.463942],[-58.11345,1.507195],[-57.660971,1.682585],[-57.335823,1.948538],[-56.782704,1.863711],[-56.539386,1.899523],[-55.995698,1.817667],[-55.9056,2.021996],[-56.073342,2.220795],[-55.973322,2.510364],[-55.569755,2.421506],[-55.097587,2.523748],[-54.524754,2.311849],[-54.088063,2.105557],[-53.778521,2.376703],[-53.554839,2.334897],[-53.418465,2.053389],[-52.939657,2.124858],[-52.556425,2.504705],[-52.249338,3.241094],[-51.657797,4.156232],[-51.317146,4.203491],[-51.069771,3.650398],[-50.508875,1.901564],[-49.974076,1.736483],[-49.947101,1.04619],[-50.699251,0.222984],[-50.388211,-0.078445],[-48.620567,-0.235489],[-48.584497,-1.237805],[-47.824956,-0.581618],[-46.566584,-0.941028],[-44.905703,-1.55174],[-44.417619,-2.13775],[-44.581589,-2.691308],[-43.418791,-2.38311],[-41.472657,-2.912018],[-39.978665,-2.873054],[-38.500383,-3.700652],[-37.223252,-4.820946],[-36.452937,-5.109404],[-35.597796,-5.149504],[-35.235389,-5.464937],[-34.89603,-6.738193],[-34.729993,-7.343221],[-35.128212,-8.996401],[-35.636967,-9.649282],[-37.046519,-11.040721],[-37.683612,-12.171195],[-38.423877,-13.038119],[-38.673887,-13.057652],[-38.953276,-13.79337],[-38.882298,-15.667054],[-39.161092,-17.208407],[-39.267339,-17.867746],[-39.583521,-18.262296],[-39.760823,-19.599113],[-40.774741,-20.904512],[-40.944756,-21.937317],[-41.754164,-22.370676],[-41.988284,-22.97007],[-43.074704,-22.967693],[-44.647812,-23.351959],[-45.352136,-23.796842],[-46.472093,-24.088969],[-47.648972,-24.885199],[-48.495458,-25.877025],[-48.641005,-26.623698],[-48.474736,-27.175912],[-48.66152,-28.186135],[-48.888457,-28.674115],[-49.587329,-29.224469],[-50.696874,-30.984465],[-51.576226,-31.777698],[-52.256081,-32.24537],[-52.7121,-33.196578],[-53.373662,-33.768378],[-53.650544,-33.202004],[-53.209589,-32.727666],[-53.787952,-32.047243],[-54.572452,-31.494511],[-55.60151,-30.853879],[-55.973245,-30.883076],[-56.976026,-30.109686],[-57.625133,-30.216295]]]}}, +{"type":"Feature","id":"BRN","properties":{"name":"Brunei"},"geometry":{"type":"Polygon","coordinates":[[[114.204017,4.525874],[114.599961,4.900011],[115.45071,5.44773],[115.4057,4.955228],[115.347461,4.316636],[114.869557,4.348314],[114.659596,4.007637],[114.204017,4.525874]]]}}, +{"type":"Feature","id":"BTN","properties":{"name":"Bhutan"},"geometry":{"type":"Polygon","coordinates":[[[91.696657,27.771742],[92.103712,27.452614],[92.033484,26.83831],[91.217513,26.808648],[90.373275,26.875724],[89.744528,26.719403],[88.835643,27.098966],[88.814248,27.299316],[89.47581,28.042759],[90.015829,28.296439],[90.730514,28.064954],[91.258854,28.040614],[91.696657,27.771742]]]}}, +{"type":"Feature","id":"BWA","properties":{"name":"Botswana"},"geometry":{"type":"Polygon","coordinates":[[[25.649163,-18.536026],[25.850391,-18.714413],[26.164791,-19.293086],[27.296505,-20.39152],[27.724747,-20.499059],[27.727228,-20.851802],[28.02137,-21.485975],[28.794656,-21.639454],[29.432188,-22.091313],[28.017236,-22.827754],[27.11941,-23.574323],[26.786407,-24.240691],[26.485753,-24.616327],[25.941652,-24.696373],[25.765849,-25.174845],[25.664666,-25.486816],[25.025171,-25.71967],[24.211267,-25.670216],[23.73357,-25.390129],[23.312097,-25.26869],[22.824271,-25.500459],[22.579532,-25.979448],[22.105969,-26.280256],[21.605896,-26.726534],[20.889609,-26.828543],[20.66647,-26.477453],[20.758609,-25.868136],[20.165726,-24.917962],[19.895768,-24.76779],[19.895458,-21.849157],[20.881134,-21.814327],[20.910641,-18.252219],[21.65504,-18.219146],[23.196858,-17.869038],[23.579006,-18.281261],[24.217365,-17.889347],[24.520705,-17.887125],[25.084443,-17.661816],[25.264226,-17.73654],[25.649163,-18.536026]]]}}, +{"type":"Feature","id":"CAF","properties":{"name":"Central African Republic"},"geometry":{"type":"Polygon","coordinates":[[[15.27946,7.421925],[16.106232,7.497088],[16.290562,7.754307],[16.456185,7.734774],[16.705988,7.508328],[17.96493,7.890914],[18.389555,8.281304],[18.911022,8.630895],[18.81201,8.982915],[19.094008,9.074847],[20.059685,9.012706],[21.000868,9.475985],[21.723822,10.567056],[22.231129,10.971889],[22.864165,11.142395],[22.977544,10.714463],[23.554304,10.089255],[23.55725,9.681218],[23.394779,9.265068],[23.459013,8.954286],[23.805813,8.666319],[24.567369,8.229188],[25.114932,7.825104],[25.124131,7.500085],[25.796648,6.979316],[26.213418,6.546603],[26.465909,5.946717],[27.213409,5.550953],[27.374226,5.233944],[27.044065,5.127853],[26.402761,5.150875],[25.650455,5.256088],[25.278798,5.170408],[25.128833,4.927245],[24.805029,4.897247],[24.410531,5.108784],[23.297214,4.609693],[22.84148,4.710126],[22.704124,4.633051],[22.405124,4.02916],[21.659123,4.224342],[20.927591,4.322786],[20.290679,4.691678],[19.467784,5.031528],[18.932312,4.709506],[18.542982,4.201785],[18.453065,3.504386],[17.8099,3.560196],[17.133042,3.728197],[16.537058,3.198255],[16.012852,2.26764],[15.907381,2.557389],[15.862732,3.013537],[15.405396,3.335301],[15.03622,3.851367],[14.950953,4.210389],[14.478372,4.732605],[14.558936,5.030598],[14.459407,5.451761],[14.53656,6.226959],[14.776545,6.408498],[15.27946,7.421925]]]}}, +{"type":"Feature","id":"CAN","properties":{"name":"Canada"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-63.6645,46.55001],[-62.9393,46.41587],[-62.01208,46.44314],[-62.50391,46.03339],[-62.87433,45.96818],[-64.1428,46.39265],[-64.39261,46.72747],[-64.01486,47.03601],[-63.6645,46.55001]]],[[[-61.806305,49.10506],[-62.29318,49.08717],[-63.58926,49.40069],[-64.51912,49.87304],[-64.17322,49.95718],[-62.85829,49.70641],[-61.835585,49.28855],[-61.806305,49.10506]]],[[[-123.510002,48.510011],[-124.012891,48.370846],[-125.655013,48.825005],[-125.954994,49.179996],[-126.850004,49.53],[-127.029993,49.814996],[-128.059336,49.994959],[-128.444584,50.539138],[-128.358414,50.770648],[-127.308581,50.552574],[-126.695001,50.400903],[-125.755007,50.295018],[-125.415002,49.950001],[-124.920768,49.475275],[-123.922509,49.062484],[-123.510002,48.510011]]],[[[-56.134036,50.68701],[-56.795882,49.812309],[-56.143105,50.150117],[-55.471492,49.935815],[-55.822401,49.587129],[-54.935143,49.313011],[-54.473775,49.556691],[-53.476549,49.249139],[-53.786014,48.516781],[-53.086134,48.687804],[-52.958648,48.157164],[-52.648099,47.535548],[-53.069158,46.655499],[-53.521456,46.618292],[-54.178936,46.807066],[-53.961869,47.625207],[-54.240482,47.752279],[-55.400773,46.884994],[-55.997481,46.91972],[-55.291219,47.389562],[-56.250799,47.632545],[-57.325229,47.572807],[-59.266015,47.603348],[-59.419494,47.899454],[-58.796586,48.251525],[-59.231625,48.523188],[-58.391805,49.125581],[-57.35869,50.718274],[-56.73865,51.287438],[-55.870977,51.632094],[-55.406974,51.588273],[-55.600218,51.317075],[-56.134036,50.68701]]],[[[-132.710008,54.040009],[-132.710009,54.040009],[-132.710008,54.040009],[-132.710008,54.040009],[-131.74999,54.120004],[-132.04948,52.984621],[-131.179043,52.180433],[-131.57783,52.182371],[-132.180428,52.639707],[-132.549992,53.100015],[-133.054611,53.411469],[-133.239664,53.85108],[-133.180004,54.169975],[-132.710008,54.040009]]],[[[-79.26582,62.158675],[-79.65752,61.63308],[-80.09956,61.7181],[-80.36215,62.01649],[-80.315395,62.085565],[-79.92939,62.3856],[-79.52002,62.36371],[-79.26582,62.158675]]],[[[-81.89825,62.7108],[-83.06857,62.15922],[-83.77462,62.18231],[-83.99367,62.4528],[-83.25048,62.91409],[-81.87699,62.90458],[-81.89825,62.7108]]],[[[-85.161308,65.657285],[-84.975764,65.217518],[-84.464012,65.371772],[-83.882626,65.109618],[-82.787577,64.766693],[-81.642014,64.455136],[-81.55344,63.979609],[-80.817361,64.057486],[-80.103451,63.725981],[-80.99102,63.411246],[-82.547178,63.651722],[-83.108798,64.101876],[-84.100417,63.569712],[-85.523405,63.052379],[-85.866769,63.637253],[-87.221983,63.541238],[-86.35276,64.035833],[-86.224886,64.822917],[-85.883848,65.738778],[-85.161308,65.657285]]],[[[-75.86588,67.14886],[-76.98687,67.09873],[-77.2364,67.58809],[-76.81166,68.14856],[-75.89521,68.28721],[-75.1145,68.01036],[-75.10333,67.58202],[-75.21597,67.44425],[-75.86588,67.14886]]],[[[-95.647681,69.10769],[-96.269521,68.75704],[-97.617401,69.06003],[-98.431801,68.9507],[-99.797401,69.40003],[-98.917401,69.71003],[-98.218261,70.14354],[-97.157401,69.86003],[-96.557401,69.68003],[-96.257401,69.49003],[-95.647681,69.10769]]],[[[-90.5471,69.49766],[-90.55151,68.47499],[-89.21515,69.25873],[-88.01966,68.61508],[-88.31749,67.87338],[-87.35017,67.19872],[-86.30607,67.92146],[-85.57664,68.78456],[-85.52197,69.88211],[-84.10081,69.80539],[-82.62258,69.65826],[-81.28043,69.16202],[-81.2202,68.66567],[-81.96436,68.13253],[-81.25928,67.59716],[-81.38653,67.11078],[-83.34456,66.41154],[-84.73542,66.2573],[-85.76943,66.55833],[-86.0676,66.05625],[-87.03143,65.21297],[-87.32324,64.77563],[-88.48296,64.09897],[-89.91444,64.03273],[-90.70398,63.61017],[-90.77004,62.96021],[-91.93342,62.83508],[-93.15698,62.02469],[-94.24153,60.89865],[-94.62931,60.11021],[-94.6846,58.94882],[-93.21502,58.78212],[-92.76462,57.84571],[-92.29703,57.08709],[-90.89769,57.28468],[-89.03953,56.85172],[-88.03978,56.47162],[-87.32421,55.99914],[-86.07121,55.72383],[-85.01181,55.3026],[-83.36055,55.24489],[-82.27285,55.14832],[-82.4362,54.28227],[-82.12502,53.27703],[-81.40075,52.15788],[-79.91289,51.20842],[-79.14301,51.53393],[-78.60191,52.56208],[-79.12421,54.14145],[-79.82958,54.66772],[-78.22874,55.13645],[-77.0956,55.83741],[-76.54137,56.53423],[-76.62319,57.20263],[-77.30226,58.05209],[-78.51688,58.80458],[-77.33676,59.85261],[-77.77272,60.75788],[-78.10687,62.31964],[-77.41067,62.55053],[-75.69621,62.2784],[-74.6682,62.18111],[-73.83988,62.4438],[-72.90853,62.10507],[-71.67708,61.52535],[-71.37369,61.13717],[-69.59042,61.06141],[-69.62033,60.22125],[-69.2879,58.95736],[-68.37455,58.80106],[-67.64976,58.21206],[-66.20178,58.76731],[-65.24517,59.87071],[-64.58352,60.33558],[-63.80475,59.4426],[-62.50236,58.16708],[-61.39655,56.96745],[-61.79866,56.33945],[-60.46853,55.77548],[-59.56962,55.20407],[-57.97508,54.94549],[-57.3332,54.6265],[-56.93689,53.78032],[-56.15811,53.64749],[-55.75632,53.27036],[-55.68338,52.14664],[-56.40916,51.7707],[-57.12691,51.41972],[-58.77482,51.0643],[-60.03309,50.24277],[-61.72366,50.08046],[-63.86251,50.29099],[-65.36331,50.2982],[-66.39905,50.22897],[-67.23631,49.51156],[-68.51114,49.06836],[-69.95362,47.74488],[-71.10458,46.82171],[-70.25522,46.98606],[-68.65,48.3],[-66.55243,49.1331],[-65.05626,49.23278],[-64.17099,48.74248],[-65.11545,48.07085],[-64.79854,46.99297],[-64.47219,46.23849],[-63.17329,45.73902],[-61.52072,45.88377],[-60.51815,47.00793],[-60.4486,46.28264],[-59.80287,45.9204],[-61.03988,45.26525],[-63.25471,44.67014],[-64.24656,44.26553],[-65.36406,43.54523],[-66.1234,43.61867],[-66.16173,44.46512],[-64.42549,45.29204],[-66.02605,45.25931],[-67.13741,45.13753],[-67.79134,45.70281],[-67.79046,47.06636],[-68.23444,47.35486],[-68.905,47.185],[-69.237216,47.447781],[-69.99997,46.69307],[-70.305,45.915],[-70.66,45.46],[-71.08482,45.30524],[-71.405,45.255],[-71.50506,45.0082],[-73.34783,45.00738],[-74.867,45.00048],[-75.31821,44.81645],[-76.375,44.09631],[-76.5,44.018459],[-76.820034,43.628784],[-77.737885,43.629056],[-78.72028,43.625089],[-79.171674,43.466339],[-79.01,43.27],[-78.92,42.965],[-78.939362,42.863611],[-80.247448,42.3662],[-81.277747,42.209026],[-82.439278,41.675105],[-82.690089,41.675105],[-83.02981,41.832796],[-83.142,41.975681],[-83.12,42.08],[-82.9,42.43],[-82.43,42.98],[-82.137642,43.571088],[-82.337763,44.44],[-82.550925,45.347517],[-83.592851,45.816894],[-83.469551,45.994686],[-83.616131,46.116927],[-83.890765,46.116927],[-84.091851,46.275419],[-84.14212,46.512226],[-84.3367,46.40877],[-84.6049,46.4396],[-84.543749,46.538684],[-84.779238,46.637102],[-84.87608,46.900083],[-85.652363,47.220219],[-86.461991,47.553338],[-87.439793,47.94],[-88.378114,48.302918],[-89.272917,48.019808],[-89.6,48.01],[-90.83,48.27],[-91.64,48.14],[-92.61,48.45],[-93.63087,48.60926],[-94.32914,48.67074],[-94.64,48.84],[-94.81758,49.38905],[-95.15609,49.38425],[-95.15907,49],[-97.22872,49.0007],[-100.65,49],[-104.04826,48.99986],[-107.05,49],[-110.05,49],[-113,49],[-116.04818,49],[-117.03121,49],[-120,49],[-122.84,49],[-122.97421,49.002538],[-124.91024,49.98456],[-125.62461,50.41656],[-127.43561,50.83061],[-127.99276,51.71583],[-127.85032,52.32961],[-129.12979,52.75538],[-129.30523,53.56159],[-130.51497,54.28757],[-130.53611,54.80278],[-129.98,55.285],[-130.00778,55.91583],[-131.70781,56.55212],[-132.73042,57.69289],[-133.35556,58.41028],[-134.27111,58.86111],[-134.945,59.27056],[-135.47583,59.78778],[-136.47972,59.46389],[-137.4525,58.905],[-138.34089,59.56211],[-139.039,60],[-140.013,60.27682],[-140.99778,60.30639],[-140.9925,66.00003],[-140.986,69.712],[-139.12052,69.47102],[-137.54636,68.99002],[-136.50358,68.89804],[-135.62576,69.31512],[-134.41464,69.62743],[-132.92925,69.50534],[-131.43136,69.94451],[-129.79471,70.19369],[-129.10773,69.77927],[-128.36156,70.01286],[-128.13817,70.48384],[-127.44712,70.37721],[-125.75632,69.48058],[-124.42483,70.1584],[-124.28968,69.39969],[-123.06108,69.56372],[-122.6835,69.85553],[-121.47226,69.79778],[-119.94288,69.37786],[-117.60268,69.01128],[-116.22643,68.84151],[-115.2469,68.90591],[-113.89794,68.3989],[-115.30489,67.90261],[-113.49727,67.68815],[-110.798,67.80612],[-109.94619,67.98104],[-108.8802,67.38144],[-107.79239,67.88736],[-108.81299,68.31164],[-108.16721,68.65392],[-106.95,68.7],[-106.15,68.8],[-105.34282,68.56122],[-104.33791,68.018],[-103.22115,68.09775],[-101.45433,67.64689],[-99.90195,67.80566],[-98.4432,67.78165],[-98.5586,68.40394],[-97.66948,68.57864],[-96.11991,68.23939],[-96.12588,67.29338],[-95.48943,68.0907],[-94.685,68.06383],[-94.23282,69.06903],[-95.30408,69.68571],[-96.47131,70.08976],[-96.39115,71.19482],[-95.2088,71.92053],[-93.88997,71.76015],[-92.87818,71.31869],[-91.51964,70.19129],[-92.40692,69.69997],[-90.5471,69.49766]]],[[[-114.16717,73.12145],[-114.66634,72.65277],[-112.44102,72.9554],[-111.05039,72.4504],[-109.92035,72.96113],[-109.00654,72.63335],[-108.18835,71.65089],[-107.68599,72.06548],[-108.39639,73.08953],[-107.51645,73.23598],[-106.52259,73.07601],[-105.40246,72.67259],[-104.77484,71.6984],[-104.46476,70.99297],[-102.78537,70.49776],[-100.98078,70.02432],[-101.08929,69.58447],[-102.73116,69.50402],[-102.09329,69.11962],[-102.43024,68.75282],[-104.24,68.91],[-105.96,69.18],[-107.12254,69.11922],[-109,68.78],[-111.534149,68.630059],[-113.3132,68.53554],[-113.85496,69.00744],[-115.22,69.28],[-116.10794,69.16821],[-117.34,69.96],[-116.67473,70.06655],[-115.13112,70.2373],[-113.72141,70.19237],[-112.4161,70.36638],[-114.35,70.6],[-116.48684,70.52045],[-117.9048,70.54056],[-118.43238,70.9092],[-116.11311,71.30918],[-117.65568,71.2952],[-119.40199,71.55859],[-118.56267,72.30785],[-117.86642,72.70594],[-115.18909,73.31459],[-114.16717,73.12145]]],[[[-104.5,73.42],[-105.38,72.76],[-106.94,73.46],[-106.6,73.6],[-105.26,73.64],[-104.5,73.42]]],[[[-76.34,73.102685],[-76.251404,72.826385],[-77.314438,72.855545],[-78.39167,72.876656],[-79.486252,72.742203],[-79.775833,72.802902],[-80.876099,73.333183],[-80.833885,73.693184],[-80.353058,73.75972],[-78.064438,73.651932],[-76.34,73.102685]]],[[[-86.562179,73.157447],[-85.774371,72.534126],[-84.850112,73.340278],[-82.31559,73.750951],[-80.600088,72.716544],[-80.748942,72.061907],[-78.770639,72.352173],[-77.824624,72.749617],[-75.605845,72.243678],[-74.228616,71.767144],[-74.099141,71.33084],[-72.242226,71.556925],[-71.200015,70.920013],[-68.786054,70.525024],[-67.91497,70.121948],[-66.969033,69.186087],[-68.805123,68.720198],[-66.449866,68.067163],[-64.862314,67.847539],[-63.424934,66.928473],[-61.851981,66.862121],[-62.163177,66.160251],[-63.918444,64.998669],[-65.14886,65.426033],[-66.721219,66.388041],[-68.015016,66.262726],[-68.141287,65.689789],[-67.089646,65.108455],[-65.73208,64.648406],[-65.320168,64.382737],[-64.669406,63.392927],[-65.013804,62.674185],[-66.275045,62.945099],[-68.783186,63.74567],[-67.369681,62.883966],[-66.328297,62.280075],[-66.165568,61.930897],[-68.877367,62.330149],[-71.023437,62.910708],[-72.235379,63.397836],[-71.886278,63.679989],[-73.378306,64.193963],[-74.834419,64.679076],[-74.818503,64.389093],[-77.70998,64.229542],[-78.555949,64.572906],[-77.897281,65.309192],[-76.018274,65.326969],[-73.959795,65.454765],[-74.293883,65.811771],[-73.944912,66.310578],[-72.651167,67.284576],[-72.92606,67.726926],[-73.311618,68.069437],[-74.843307,68.554627],[-76.869101,68.894736],[-76.228649,69.147769],[-77.28737,69.76954],[-78.168634,69.826488],[-78.957242,70.16688],[-79.492455,69.871808],[-81.305471,69.743185],[-84.944706,69.966634],[-87.060003,70.260001],[-88.681713,70.410741],[-89.51342,70.762038],[-88.467721,71.218186],[-89.888151,71.222552],[-90.20516,72.235074],[-89.436577,73.129464],[-88.408242,73.537889],[-85.826151,73.803816],[-86.562179,73.157447]]],[[[-100.35642,73.84389],[-99.16387,73.63339],[-97.38,73.76],[-97.12,73.47],[-98.05359,72.99052],[-96.54,72.56],[-96.72,71.66],[-98.35966,71.27285],[-99.32286,71.35639],[-100.01482,71.73827],[-102.5,72.51],[-102.48,72.83],[-100.43836,72.70588],[-101.54,73.36],[-100.35642,73.84389]]],[[[-93.196296,72.771992],[-94.269047,72.024596],[-95.409856,72.061881],[-96.033745,72.940277],[-96.018268,73.43743],[-95.495793,73.862417],[-94.503658,74.134907],[-92.420012,74.100025],[-90.509793,73.856732],[-92.003965,72.966244],[-93.196296,72.771992]]],[[[-120.46,71.383602],[-123.09219,70.90164],[-123.62,71.34],[-125.928949,71.868688],[-125.5,72.292261],[-124.80729,73.02256],[-123.94,73.68],[-124.91775,74.29275],[-121.53788,74.44893],[-120.10978,74.24135],[-117.55564,74.18577],[-116.58442,73.89607],[-115.51081,73.47519],[-116.76794,73.22292],[-119.22,72.52],[-120.46,71.82],[-120.46,71.383602]]],[[[-93.612756,74.979997],[-94.156909,74.592347],[-95.608681,74.666864],[-96.820932,74.927623],[-96.288587,75.377828],[-94.85082,75.647218],[-93.977747,75.29649],[-93.612756,74.979997]]],[[[-98.5,76.72],[-97.735585,76.25656],[-97.704415,75.74344],[-98.16,75],[-99.80874,74.89744],[-100.88366,75.05736],[-100.86292,75.64075],[-102.50209,75.5638],[-102.56552,76.3366],[-101.48973,76.30537],[-99.98349,76.64634],[-98.57699,76.58859],[-98.5,76.72]]],[[[-108.21141,76.20168],[-107.81943,75.84552],[-106.92893,76.01282],[-105.881,75.9694],[-105.70498,75.47951],[-106.31347,75.00527],[-109.7,74.85],[-112.22307,74.41696],[-113.74381,74.39427],[-113.87135,74.72029],[-111.79421,75.1625],[-116.31221,75.04343],[-117.7104,75.2222],[-116.34602,76.19903],[-115.40487,76.47887],[-112.59056,76.14134],[-110.81422,75.54919],[-109.0671,75.47321],[-110.49726,76.42982],[-109.5811,76.79417],[-108.54859,76.67832],[-108.21141,76.20168]]],[[[-94.684086,77.097878],[-93.573921,76.776296],[-91.605023,76.778518],[-90.741846,76.449597],[-90.969661,76.074013],[-89.822238,75.847774],[-89.187083,75.610166],[-87.838276,75.566189],[-86.379192,75.482421],[-84.789625,75.699204],[-82.753445,75.784315],[-81.128531,75.713983],[-80.057511,75.336849],[-79.833933,74.923127],[-80.457771,74.657304],[-81.948843,74.442459],[-83.228894,74.564028],[-86.097452,74.410032],[-88.15035,74.392307],[-89.764722,74.515555],[-92.422441,74.837758],[-92.768285,75.38682],[-92.889906,75.882655],[-93.893824,76.319244],[-95.962457,76.441381],[-97.121379,76.751078],[-96.745123,77.161389],[-94.684086,77.097878]]],[[[-116.198587,77.645287],[-116.335813,76.876962],[-117.106051,76.530032],[-118.040412,76.481172],[-119.899318,76.053213],[-121.499995,75.900019],[-122.854924,76.116543],[-122.854925,76.116543],[-121.157535,76.864508],[-119.103939,77.51222],[-117.570131,77.498319],[-116.198587,77.645287]]],[[[-93.840003,77.519997],[-94.295608,77.491343],[-96.169654,77.555111],[-96.436304,77.834629],[-94.422577,77.820005],[-93.720656,77.634331],[-93.840003,77.519997]]],[[[-110.186938,77.697015],[-112.051191,77.409229],[-113.534279,77.732207],[-112.724587,78.05105],[-111.264443,78.152956],[-109.854452,77.996325],[-110.186938,77.697015]]],[[[-109.663146,78.601973],[-110.881314,78.40692],[-112.542091,78.407902],[-112.525891,78.550555],[-111.50001,78.849994],[-110.963661,78.804441],[-109.663146,78.601973]]],[[[-95.830295,78.056941],[-97.309843,77.850597],[-98.124289,78.082857],[-98.552868,78.458105],[-98.631984,78.87193],[-97.337231,78.831984],[-96.754399,78.765813],[-95.559278,78.418315],[-95.830295,78.056941]]],[[[-100.060192,78.324754],[-99.670939,77.907545],[-101.30394,78.018985],[-102.949809,78.343229],[-105.176133,78.380332],[-104.210429,78.67742],[-105.41958,78.918336],[-105.492289,79.301594],[-103.529282,79.165349],[-100.825158,78.800462],[-100.060192,78.324754]]],[[[-87.02,79.66],[-85.81435,79.3369],[-87.18756,79.0393],[-89.03535,78.28723],[-90.80436,78.21533],[-92.87669,78.34333],[-93.95116,78.75099],[-93.93574,79.11373],[-93.14524,79.3801],[-94.974,79.37248],[-96.07614,79.70502],[-96.70972,80.15777],[-96.01644,80.60233],[-95.32345,80.90729],[-94.29843,80.97727],[-94.73542,81.20646],[-92.40984,81.25739],[-91.13289,80.72345],[-89.45,80.509322],[-87.81,80.32],[-87.02,79.66]]],[[[-68.5,83.106322],[-65.82735,83.02801],[-63.68,82.9],[-61.85,82.6286],[-61.89388,82.36165],[-64.334,81.92775],[-66.75342,81.72527],[-67.65755,81.50141],[-65.48031,81.50657],[-67.84,80.9],[-69.4697,80.61683],[-71.18,79.8],[-73.2428,79.63415],[-73.88,79.430162],[-76.90773,79.32309],[-75.52924,79.19766],[-76.22046,79.01907],[-75.39345,78.52581],[-76.34354,78.18296],[-77.88851,77.89991],[-78.36269,77.50859],[-79.75951,77.20968],[-79.61965,76.98336],[-77.91089,77.022045],[-77.88911,76.777955],[-80.56125,76.17812],[-83.17439,76.45403],[-86.11184,76.29901],[-87.6,76.42],[-89.49068,76.47239],[-89.6161,76.95213],[-87.76739,77.17833],[-88.26,77.9],[-87.65,77.970222],[-84.97634,77.53873],[-86.34,78.18],[-87.96192,78.37181],[-87.15198,78.75867],[-85.37868,78.9969],[-85.09495,79.34543],[-86.50734,79.73624],[-86.93179,80.25145],[-84.19844,80.20836],[-83.408696,80.1],[-81.84823,80.46442],[-84.1,80.58],[-87.59895,80.51627],[-89.36663,80.85569],[-90.2,81.26],[-91.36786,81.5531],[-91.58702,81.89429],[-90.1,82.085],[-88.93227,82.11751],[-86.97024,82.27961],[-85.5,82.652273],[-84.260005,82.6],[-83.18,82.32],[-82.42,82.86],[-81.1,83.02],[-79.30664,83.13056],[-76.25,83.172059],[-75.71878,83.06404],[-72.83153,83.23324],[-70.665765,83.169781],[-68.5,83.106322]]]]}}, +{"type":"Feature","id":"CHE","properties":{"name":"Switzerland"},"geometry":{"type":"Polygon","coordinates":[[[9.594226,47.525058],[9.632932,47.347601],[9.47997,47.10281],[9.932448,46.920728],[10.442701,46.893546],[10.363378,46.483571],[9.922837,46.314899],[9.182882,46.440215],[8.966306,46.036932],[8.489952,46.005151],[8.31663,46.163642],[7.755992,45.82449],[7.273851,45.776948],[6.843593,45.991147],[6.5001,46.429673],[6.022609,46.27299],[6.037389,46.725779],[6.768714,47.287708],[6.736571,47.541801],[7.192202,47.449766],[7.466759,47.620582],[8.317301,47.61358],[8.522612,47.830828],[9.594226,47.525058]]]}}, +{"type":"Feature","id":"CHL","properties":{"name":"Chile"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-68.63401,-52.63637],[-68.63335,-54.8695],[-67.56244,-54.87001],[-66.95992,-54.89681],[-67.29103,-55.30124],[-68.14863,-55.61183],[-68.639991,-55.580018],[-69.2321,-55.49906],[-69.95809,-55.19843],[-71.00568,-55.05383],[-72.2639,-54.49514],[-73.2852,-53.95752],[-74.66253,-52.83749],[-73.8381,-53.04743],[-72.43418,-53.7154],[-71.10773,-54.07433],[-70.59178,-53.61583],[-70.26748,-52.93123],[-69.34565,-52.5183],[-68.63401,-52.63637]]],[[[-68.219913,-21.494347],[-67.82818,-22.872919],[-67.106674,-22.735925],[-66.985234,-22.986349],[-67.328443,-24.025303],[-68.417653,-24.518555],[-68.386001,-26.185016],[-68.5948,-26.506909],[-68.295542,-26.89934],[-69.001235,-27.521214],[-69.65613,-28.459141],[-70.01355,-29.367923],[-69.919008,-30.336339],[-70.535069,-31.36501],[-70.074399,-33.09121],[-69.814777,-33.273886],[-69.817309,-34.193571],[-70.388049,-35.169688],[-70.364769,-36.005089],[-71.121881,-36.658124],[-71.118625,-37.576827],[-70.814664,-38.552995],[-71.413517,-38.916022],[-71.680761,-39.808164],[-71.915734,-40.832339],[-71.746804,-42.051386],[-72.148898,-42.254888],[-71.915424,-43.408565],[-71.464056,-43.787611],[-71.793623,-44.207172],[-71.329801,-44.407522],[-71.222779,-44.784243],[-71.659316,-44.973689],[-71.552009,-45.560733],[-71.917258,-46.884838],[-72.447355,-47.738533],[-72.331161,-48.244238],[-72.648247,-48.878618],[-73.415436,-49.318436],[-73.328051,-50.378785],[-72.975747,-50.74145],[-72.309974,-50.67701],[-72.329404,-51.425956],[-71.914804,-52.009022],[-69.498362,-52.142761],[-68.571545,-52.299444],[-69.461284,-52.291951],[-69.94278,-52.537931],[-70.845102,-52.899201],[-71.006332,-53.833252],[-71.429795,-53.856455],[-72.557943,-53.53141],[-73.702757,-52.835069],[-73.702757,-52.83507],[-74.946763,-52.262754],[-75.260026,-51.629355],[-74.976632,-51.043396],[-75.479754,-50.378372],[-75.608015,-48.673773],[-75.18277,-47.711919],[-74.126581,-46.939253],[-75.644395,-46.647643],[-74.692154,-45.763976],[-74.351709,-44.103044],[-73.240356,-44.454961],[-72.717804,-42.383356],[-73.3889,-42.117532],[-73.701336,-43.365776],[-74.331943,-43.224958],[-74.017957,-41.794813],[-73.677099,-39.942213],[-73.217593,-39.258689],[-73.505559,-38.282883],[-73.588061,-37.156285],[-73.166717,-37.12378],[-72.553137,-35.50884],[-71.861732,-33.909093],[-71.43845,-32.418899],[-71.668721,-30.920645],[-71.370083,-30.095682],[-71.489894,-28.861442],[-70.905124,-27.64038],[-70.724954,-25.705924],[-70.403966,-23.628997],[-70.091246,-21.393319],[-70.16442,-19.756468],[-70.372572,-18.347975],[-69.858444,-18.092694],[-69.590424,-17.580012],[-69.100247,-18.260125],[-68.966818,-18.981683],[-68.442225,-19.405068],[-68.757167,-20.372658],[-68.219913,-21.494347]]]]}}, +{"type":"Feature","id":"CHN","properties":{"name":"China"},"geometry":{"type":"MultiPolygon","coordinates":[[[[110.339188,18.678395],[109.47521,18.197701],[108.655208,18.507682],[108.626217,19.367888],[109.119056,19.821039],[110.211599,20.101254],[110.786551,20.077534],[111.010051,19.69593],[110.570647,19.255879],[110.339188,18.678395]]],[[[127.657407,49.76027],[129.397818,49.4406],[130.582293,48.729687],[130.987282,47.790132],[132.506672,47.78897],[133.373596,48.183442],[135.026311,48.47823],[134.500814,47.57844],[134.112362,47.212467],[133.769644,46.116927],[133.097127,45.144066],[131.883454,45.321162],[131.025212,44.967953],[131.288555,44.11152],[131.144688,42.92999],[130.633866,42.903015],[130.640016,42.395009],[129.994267,42.985387],[129.596669,42.424982],[128.052215,41.994285],[128.208433,41.466772],[127.343783,41.503152],[126.869083,41.816569],[126.182045,41.107336],[125.079942,40.569824],[124.265625,39.928493],[122.86757,39.637788],[122.131388,39.170452],[121.054554,38.897471],[121.585995,39.360854],[121.376757,39.750261],[122.168595,40.422443],[121.640359,40.94639],[120.768629,40.593388],[119.639602,39.898056],[119.023464,39.252333],[118.042749,39.204274],[117.532702,38.737636],[118.059699,38.061476],[118.87815,37.897325],[118.911636,37.448464],[119.702802,37.156389],[120.823457,37.870428],[121.711259,37.481123],[122.357937,37.454484],[122.519995,36.930614],[121.104164,36.651329],[120.637009,36.11144],[119.664562,35.609791],[119.151208,34.909859],[120.227525,34.360332],[120.620369,33.376723],[121.229014,32.460319],[121.908146,31.692174],[121.891919,30.949352],[121.264257,30.676267],[121.503519,30.142915],[122.092114,29.83252],[121.938428,29.018022],[121.684439,28.225513],[121.125661,28.135673],[120.395473,27.053207],[119.585497,25.740781],[118.656871,24.547391],[117.281606,23.624501],[115.890735,22.782873],[114.763827,22.668074],[114.152547,22.22376],[113.80678,22.54834],[113.241078,22.051367],[111.843592,21.550494],[110.785466,21.397144],[110.444039,20.341033],[109.889861,20.282457],[109.627655,21.008227],[109.864488,21.395051],[108.522813,21.715212],[108.05018,21.55238],[107.04342,21.811899],[106.567273,22.218205],[106.725403,22.794268],[105.811247,22.976892],[105.329209,23.352063],[104.476858,22.81915],[103.504515,22.703757],[102.706992,22.708795],[102.170436,22.464753],[101.652018,22.318199],[101.80312,21.174367],[101.270026,21.201652],[101.180005,21.436573],[101.150033,21.849984],[100.416538,21.558839],[99.983489,21.742937],[99.240899,22.118314],[99.531992,22.949039],[98.898749,23.142722],[98.660262,24.063286],[97.60472,23.897405],[97.724609,25.083637],[98.671838,25.918703],[98.712094,26.743536],[98.68269,27.508812],[98.246231,27.747221],[97.911988,28.335945],[97.327114,28.261583],[96.248833,28.411031],[96.586591,28.83098],[96.117679,29.452802],[95.404802,29.031717],[94.56599,29.277438],[93.413348,28.640629],[92.503119,27.896876],[91.696657,27.771742],[91.258854,28.040614],[90.730514,28.064954],[90.015829,28.296439],[89.47581,28.042759],[88.814248,27.299316],[88.730326,28.086865],[88.120441,27.876542],[86.954517,27.974262],[85.82332,28.203576],[85.011638,28.642774],[84.23458,28.839894],[83.898993,29.320226],[83.337115,29.463732],[82.327513,30.115268],[81.525804,30.422717],[81.111256,30.183481],[79.721367,30.882715],[78.738894,31.515906],[78.458446,32.618164],[79.176129,32.48378],[79.208892,32.994395],[78.811086,33.506198],[78.912269,34.321936],[77.837451,35.49401],[76.192848,35.898403],[75.896897,36.666806],[75.158028,37.133031],[74.980002,37.41999],[74.829986,37.990007],[74.864816,38.378846],[74.257514,38.606507],[73.928852,38.505815],[73.675379,39.431237],[73.960013,39.660008],[73.822244,39.893973],[74.776862,40.366425],[75.467828,40.562072],[76.526368,40.427946],[76.904484,41.066486],[78.187197,41.185316],[78.543661,41.582243],[80.11943,42.123941],[80.25999,42.349999],[80.18015,42.920068],[80.866206,43.180362],[79.966106,44.917517],[81.947071,45.317027],[82.458926,45.53965],[83.180484,47.330031],[85.16429,47.000956],[85.720484,47.452969],[85.768233,48.455751],[86.598776,48.549182],[87.35997,49.214981],[87.751264,49.297198],[88.013832,48.599463],[88.854298,48.069082],[90.280826,47.693549],[90.970809,46.888146],[90.585768,45.719716],[90.94554,45.286073],[92.133891,45.115076],[93.480734,44.975472],[94.688929,44.352332],[95.306875,44.241331],[95.762455,43.319449],[96.349396,42.725635],[97.451757,42.74889],[99.515817,42.524691],[100.845866,42.663804],[101.83304,42.514873],[103.312278,41.907468],[104.522282,41.908347],[104.964994,41.59741],[106.129316,42.134328],[107.744773,42.481516],[109.243596,42.519446],[110.412103,42.871234],[111.129682,43.406834],[111.829588,43.743118],[111.667737,44.073176],[111.348377,44.457442],[111.873306,45.102079],[112.436062,45.011646],[113.463907,44.808893],[114.460332,45.339817],[115.985096,45.727235],[116.717868,46.388202],[117.421701,46.672733],[118.874326,46.805412],[119.66327,46.69268],[119.772824,47.048059],[118.866574,47.74706],[118.064143,48.06673],[117.295507,47.697709],[116.308953,47.85341],[115.742837,47.726545],[115.485282,48.135383],[116.191802,49.134598],[116.678801,49.888531],[117.879244,49.510983],[119.288461,50.142883],[119.279366,50.582908],[120.18205,51.643566],[120.738191,51.964115],[120.725789,52.516226],[120.177089,52.753886],[121.003085,53.251401],[122.245748,53.431726],[123.571507,53.458804],[125.068211,53.161045],[125.946349,52.792799],[126.564399,51.784255],[126.939157,51.353894],[127.287456,50.739797],[127.657407,49.76027]]]]}}, +{"type":"Feature","id":"CIV","properties":{"name":"Ivory Coast"},"geometry":{"type":"Polygon","coordinates":[[[-2.856125,4.994476],[-3.311084,4.984296],[-4.00882,5.179813],[-4.649917,5.168264],[-5.834496,4.993701],[-6.528769,4.705088],[-7.518941,4.338288],[-7.712159,4.364566],[-7.635368,5.188159],[-7.539715,5.313345],[-7.570153,5.707352],[-7.993693,6.12619],[-8.311348,6.193033],[-8.60288,6.467564],[-8.385452,6.911801],[-8.485446,7.395208],[-8.439298,7.686043],[-8.280703,7.68718],[-8.221792,8.123329],[-8.299049,8.316444],[-8.203499,8.455453],[-7.8321,8.575704],[-8.079114,9.376224],[-8.309616,9.789532],[-8.229337,10.12902],[-8.029944,10.206535],[-7.89959,10.297382],[-7.622759,10.147236],[-6.850507,10.138994],[-6.666461,10.430811],[-6.493965,10.411303],[-6.205223,10.524061],[-6.050452,10.096361],[-5.816926,10.222555],[-5.404342,10.370737],[-4.954653,10.152714],[-4.779884,9.821985],[-4.330247,9.610835],[-3.980449,9.862344],[-3.511899,9.900326],[-2.827496,9.642461],[-2.56219,8.219628],[-2.983585,7.379705],[-3.24437,6.250472],[-2.810701,5.389051],[-2.856125,4.994476]]]}}, +{"type":"Feature","id":"CMR","properties":{"name":"Cameroon"},"geometry":{"type":"Polygon","coordinates":[[[13.075822,2.267097],[12.951334,2.321616],[12.35938,2.192812],[11.751665,2.326758],[11.276449,2.261051],[9.649158,2.283866],[9.795196,3.073404],[9.404367,3.734527],[8.948116,3.904129],[8.744924,4.352215],[8.488816,4.495617],[8.500288,4.771983],[8.757533,5.479666],[9.233163,6.444491],[9.522706,6.453482],[10.118277,7.03877],[10.497375,7.055358],[11.058788,6.644427],[11.745774,6.981383],[11.839309,7.397042],[12.063946,7.799808],[12.218872,8.305824],[12.753672,8.717763],[12.955468,9.417772],[13.1676,9.640626],[13.308676,10.160362],[13.57295,10.798566],[14.415379,11.572369],[14.468192,11.904752],[14.577178,12.085361],[14.181336,12.483657],[14.213531,12.802035],[14.495787,12.859396],[14.893386,12.219048],[14.960152,11.555574],[14.923565,10.891325],[15.467873,9.982337],[14.909354,9.992129],[14.627201,9.920919],[14.171466,10.021378],[13.954218,9.549495],[14.544467,8.965861],[14.979996,8.796104],[15.120866,8.38215],[15.436092,7.692812],[15.27946,7.421925],[14.776545,6.408498],[14.53656,6.226959],[14.459407,5.451761],[14.558936,5.030598],[14.478372,4.732605],[14.950953,4.210389],[15.03622,3.851367],[15.405396,3.335301],[15.862732,3.013537],[15.907381,2.557389],[16.012852,2.26764],[15.940919,1.727673],[15.146342,1.964015],[14.337813,2.227875],[13.075822,2.267097]]]}}, +{"type":"Feature","id":"COD","properties":{"name":"Democratic Republic of the Congo"},"geometry":{"type":"Polygon","coordinates":[[[30.83386,3.509166],[30.773347,2.339883],[31.174149,2.204465],[30.85267,1.849396],[30.468508,1.583805],[30.086154,1.062313],[29.875779,0.59738],[29.819503,-0.20531],[29.587838,-0.587406],[29.579466,-1.341313],[29.291887,-1.620056],[29.254835,-2.21511],[29.117479,-2.292211],[29.024926,-2.839258],[29.276384,-3.293907],[29.339998,-4.499983],[29.519987,-5.419979],[29.419993,-5.939999],[29.620032,-6.520015],[30.199997,-7.079981],[30.740015,-8.340007],[30.346086,-8.238257],[29.002912,-8.407032],[28.734867,-8.526559],[28.449871,-9.164918],[28.673682,-9.605925],[28.49607,-10.789884],[28.372253,-11.793647],[28.642417,-11.971569],[29.341548,-12.360744],[29.616001,-12.178895],[29.699614,-13.257227],[28.934286,-13.248958],[28.523562,-12.698604],[28.155109,-12.272481],[27.388799,-12.132747],[27.16442,-11.608748],[26.553088,-11.92444],[25.75231,-11.784965],[25.418118,-11.330936],[24.78317,-11.238694],[24.314516,-11.262826],[24.257155,-10.951993],[23.912215,-10.926826],[23.456791,-10.867863],[22.837345,-11.017622],[22.402798,-10.993075],[22.155268,-11.084801],[22.208753,-9.894796],[21.875182,-9.523708],[21.801801,-8.908707],[21.949131,-8.305901],[21.746456,-7.920085],[21.728111,-7.290872],[20.514748,-7.299606],[20.601823,-6.939318],[20.091622,-6.94309],[20.037723,-7.116361],[19.417502,-7.155429],[19.166613,-7.738184],[19.016752,-7.988246],[18.464176,-7.847014],[18.134222,-7.987678],[17.47297,-8.068551],[17.089996,-7.545689],[16.860191,-7.222298],[16.57318,-6.622645],[16.326528,-5.87747],[13.375597,-5.864241],[13.024869,-5.984389],[12.735171,-5.965682],[12.322432,-6.100092],[12.182337,-5.789931],[12.436688,-5.684304],[12.468004,-5.248362],[12.631612,-4.991271],[12.995517,-4.781103],[13.25824,-4.882957],[13.600235,-4.500138],[14.144956,-4.510009],[14.209035,-4.793092],[14.582604,-4.970239],[15.170992,-4.343507],[15.75354,-3.855165],[16.00629,-3.535133],[15.972803,-2.712392],[16.407092,-1.740927],[16.865307,-1.225816],[17.523716,-0.74383],[17.638645,-0.424832],[17.663553,-0.058084],[17.82654,0.288923],[17.774192,0.855659],[17.898835,1.741832],[18.094276,2.365722],[18.393792,2.900443],[18.453065,3.504386],[18.542982,4.201785],[18.932312,4.709506],[19.467784,5.031528],[20.290679,4.691678],[20.927591,4.322786],[21.659123,4.224342],[22.405124,4.02916],[22.704124,4.633051],[22.84148,4.710126],[23.297214,4.609693],[24.410531,5.108784],[24.805029,4.897247],[25.128833,4.927245],[25.278798,5.170408],[25.650455,5.256088],[26.402761,5.150875],[27.044065,5.127853],[27.374226,5.233944],[27.979977,4.408413],[28.428994,4.287155],[28.696678,4.455077],[29.159078,4.389267],[29.715995,4.600805],[29.9535,4.173699],[30.83386,3.509166]]]}}, +{"type":"Feature","id":"COG","properties":{"name":"Republic of the Congo"},"geometry":{"type":"Polygon","coordinates":[[[12.995517,-4.781103],[12.62076,-4.438023],[12.318608,-4.60623],[11.914963,-5.037987],[11.093773,-3.978827],[11.855122,-3.426871],[11.478039,-2.765619],[11.820964,-2.514161],[12.495703,-2.391688],[12.575284,-1.948511],[13.109619,-2.42874],[13.992407,-2.470805],[14.29921,-1.998276],[14.425456,-1.333407],[14.316418,-0.552627],[13.843321,0.038758],[14.276266,1.19693],[14.026669,1.395677],[13.282631,1.314184],[13.003114,1.830896],[13.075822,2.267097],[14.337813,2.227875],[15.146342,1.964015],[15.940919,1.727673],[16.012852,2.26764],[16.537058,3.198255],[17.133042,3.728197],[17.8099,3.560196],[18.453065,3.504386],[18.393792,2.900443],[18.094276,2.365722],[17.898835,1.741832],[17.774192,0.855659],[17.82654,0.288923],[17.663553,-0.058084],[17.638645,-0.424832],[17.523716,-0.74383],[16.865307,-1.225816],[16.407092,-1.740927],[15.972803,-2.712392],[16.00629,-3.535133],[15.75354,-3.855165],[15.170992,-4.343507],[14.582604,-4.970239],[14.209035,-4.793092],[14.144956,-4.510009],[13.600235,-4.500138],[13.25824,-4.882957],[12.995517,-4.781103]]]}}, +{"type":"Feature","id":"COL","properties":{"name":"Colombia"},"geometry":{"type":"Polygon","coordinates":[[[-75.373223,-0.152032],[-75.801466,0.084801],[-76.292314,0.416047],[-76.57638,0.256936],[-77.424984,0.395687],[-77.668613,0.825893],[-77.855061,0.809925],[-78.855259,1.380924],[-78.990935,1.69137],[-78.617831,1.766404],[-78.662118,2.267355],[-78.42761,2.629556],[-77.931543,2.696606],[-77.510431,3.325017],[-77.12769,3.849636],[-77.496272,4.087606],[-77.307601,4.667984],[-77.533221,5.582812],[-77.318815,5.845354],[-77.476661,6.691116],[-77.881571,7.223771],[-77.753414,7.70984],[-77.431108,7.638061],[-77.242566,7.935278],[-77.474723,8.524286],[-77.353361,8.670505],[-76.836674,8.638749],[-76.086384,9.336821],[-75.6746,9.443248],[-75.664704,9.774003],[-75.480426,10.61899],[-74.906895,11.083045],[-74.276753,11.102036],[-74.197223,11.310473],[-73.414764,11.227015],[-72.627835,11.731972],[-72.238195,11.95555],[-71.75409,12.437303],[-71.399822,12.376041],[-71.137461,12.112982],[-71.331584,11.776284],[-71.973922,11.608672],[-72.227575,11.108702],[-72.614658,10.821975],[-72.905286,10.450344],[-73.027604,9.73677],[-73.304952,9.152],[-72.78873,9.085027],[-72.660495,8.625288],[-72.439862,8.405275],[-72.360901,8.002638],[-72.479679,7.632506],[-72.444487,7.423785],[-72.198352,7.340431],[-71.960176,6.991615],[-70.674234,7.087785],[-70.093313,6.960376],[-69.38948,6.099861],[-68.985319,6.206805],[-68.265052,6.153268],[-67.695087,6.267318],[-67.34144,6.095468],[-67.521532,5.55687],[-67.744697,5.221129],[-67.823012,4.503937],[-67.621836,3.839482],[-67.337564,3.542342],[-67.303173,3.318454],[-67.809938,2.820655],[-67.447092,2.600281],[-67.181294,2.250638],[-66.876326,1.253361],[-67.065048,1.130112],[-67.259998,1.719999],[-67.53781,2.037163],[-67.868565,1.692455],[-69.816973,1.714805],[-69.804597,1.089081],[-69.218638,0.985677],[-69.252434,0.602651],[-69.452396,0.706159],[-70.015566,0.541414],[-70.020656,-0.185156],[-69.577065,-0.549992],[-69.420486,-1.122619],[-69.444102,-1.556287],[-69.893635,-4.298187],[-70.394044,-3.766591],[-70.692682,-3.742872],[-70.047709,-2.725156],[-70.813476,-2.256865],[-71.413646,-2.342802],[-71.774761,-2.16979],[-72.325787,-2.434218],[-73.070392,-2.308954],[-73.659504,-1.260491],[-74.122395,-1.002833],[-74.441601,-0.53082],[-75.106625,-0.057205],[-75.373223,-0.152032]]]}}, +{"type":"Feature","id":"CRI","properties":{"name":"Costa Rica"},"geometry":{"type":"Polygon","coordinates":[[[-82.965783,8.225028],[-83.508437,8.446927],[-83.711474,8.656836],[-83.596313,8.830443],[-83.632642,9.051386],[-83.909886,9.290803],[-84.303402,9.487354],[-84.647644,9.615537],[-84.713351,9.908052],[-84.97566,10.086723],[-84.911375,9.795992],[-85.110923,9.55704],[-85.339488,9.834542],[-85.660787,9.933347],[-85.797445,10.134886],[-85.791709,10.439337],[-85.659314,10.754331],[-85.941725,10.895278],[-85.71254,11.088445],[-85.561852,11.217119],[-84.903003,10.952303],[-84.673069,11.082657],[-84.355931,10.999226],[-84.190179,10.79345],[-83.895054,10.726839],[-83.655612,10.938764],[-83.40232,10.395438],[-83.015677,9.992982],[-82.546196,9.566135],[-82.932891,9.476812],[-82.927155,9.07433],[-82.719183,8.925709],[-82.868657,8.807266],[-82.829771,8.626295],[-82.913176,8.423517],[-82.965783,8.225028]]]}}, +{"type":"Feature","id":"CUB","properties":{"name":"Cuba"},"geometry":{"type":"Polygon","coordinates":[[[-82.268151,23.188611],[-81.404457,23.117271],[-80.618769,23.10598],[-79.679524,22.765303],[-79.281486,22.399202],[-78.347434,22.512166],[-77.993296,22.277194],[-77.146422,21.657851],[-76.523825,21.20682],[-76.19462,21.220565],[-75.598222,21.016624],[-75.67106,20.735091],[-74.933896,20.693905],[-74.178025,20.284628],[-74.296648,20.050379],[-74.961595,19.923435],[-75.63468,19.873774],[-76.323656,19.952891],[-77.755481,19.855481],[-77.085108,20.413354],[-77.492655,20.673105],[-78.137292,20.739949],[-78.482827,21.028613],[-78.719867,21.598114],[-79.285,21.559175],[-80.217475,21.827324],[-80.517535,22.037079],[-81.820943,22.192057],[-82.169992,22.387109],[-81.795002,22.636965],[-82.775898,22.68815],[-83.494459,22.168518],[-83.9088,22.154565],[-84.052151,21.910575],[-84.54703,21.801228],[-84.974911,21.896028],[-84.447062,22.20495],[-84.230357,22.565755],[-83.77824,22.788118],[-83.267548,22.983042],[-82.510436,23.078747],[-82.268151,23.188611]]]}}, +{"type":"Feature","id":"-99","properties":{"name":"Northern Cyprus"},"geometry":{"type":"Polygon","coordinates":[[[32.73178,35.140026],[32.802474,35.145504],[32.946961,35.386703],[33.667227,35.373216],[34.576474,35.671596],[33.900804,35.245756],[33.973617,35.058506],[33.86644,35.093595],[33.675392,35.017863],[33.525685,35.038688],[33.475817,35.000345],[33.455922,35.101424],[33.383833,35.162712],[33.190977,35.173125],[32.919572,35.087833],[32.73178,35.140026]]]}}, +{"type":"Feature","id":"CYP","properties":{"name":"Cyprus"},"geometry":{"type":"Polygon","coordinates":[[[33.973617,35.058506],[34.004881,34.978098],[32.979827,34.571869],[32.490296,34.701655],[32.256667,35.103232],[32.73178,35.140026],[32.919572,35.087833],[33.190977,35.173125],[33.383833,35.162712],[33.455922,35.101424],[33.475817,35.000345],[33.525685,35.038688],[33.675392,35.017863],[33.86644,35.093595],[33.973617,35.058506]]]}}, +{"type":"Feature","id":"CZE","properties":{"name":"Czech Republic"},"geometry":{"type":"Polygon","coordinates":[[[16.960288,48.596982],[16.499283,48.785808],[16.029647,48.733899],[15.253416,49.039074],[14.901447,48.964402],[14.338898,48.555305],[13.595946,48.877172],[13.031329,49.307068],[12.521024,49.547415],[12.415191,49.969121],[12.240111,50.266338],[12.966837,50.484076],[13.338132,50.733234],[14.056228,50.926918],[14.307013,51.117268],[14.570718,51.002339],[15.016996,51.106674],[15.490972,50.78473],[16.238627,50.697733],[16.176253,50.422607],[16.719476,50.215747],[16.868769,50.473974],[17.554567,50.362146],[17.649445,50.049038],[18.392914,49.988629],[18.853144,49.49623],[18.554971,49.495015],[18.399994,49.315001],[18.170498,49.271515],[18.104973,49.043983],[17.913512,48.996493],[17.886485,48.903475],[17.545007,48.800019],[17.101985,48.816969],[16.960288,48.596982]]]}}, +{"type":"Feature","id":"DEU","properties":{"name":"Germany"},"geometry":{"type":"Polygon","coordinates":[[[9.921906,54.983104],[9.93958,54.596642],[10.950112,54.363607],[10.939467,54.008693],[11.956252,54.196486],[12.51844,54.470371],[13.647467,54.075511],[14.119686,53.757029],[14.353315,53.248171],[14.074521,52.981263],[14.4376,52.62485],[14.685026,52.089947],[14.607098,51.745188],[15.016996,51.106674],[14.570718,51.002339],[14.307013,51.117268],[14.056228,50.926918],[13.338132,50.733234],[12.966837,50.484076],[12.240111,50.266338],[12.415191,49.969121],[12.521024,49.547415],[13.031329,49.307068],[13.595946,48.877172],[13.243357,48.416115],[12.884103,48.289146],[13.025851,47.637584],[12.932627,47.467646],[12.62076,47.672388],[12.141357,47.703083],[11.426414,47.523766],[10.544504,47.566399],[10.402084,47.302488],[9.896068,47.580197],[9.594226,47.525058],[8.522612,47.830828],[8.317301,47.61358],[7.466759,47.620582],[7.593676,48.333019],[8.099279,49.017784],[6.65823,49.201958],[6.18632,49.463803],[6.242751,49.902226],[6.043073,50.128052],[6.156658,50.803721],[5.988658,51.851616],[6.589397,51.852029],[6.84287,52.22844],[7.092053,53.144043],[6.90514,53.482162],[7.100425,53.693932],[7.936239,53.748296],[8.121706,53.527792],[8.800734,54.020786],[8.572118,54.395646],[8.526229,54.962744],[9.282049,54.830865],[9.921906,54.983104]]]}}, +{"type":"Feature","id":"DJI","properties":{"name":"Djibouti"},"geometry":{"type":"Polygon","coordinates":[[[43.081226,12.699639],[43.317852,12.390148],[43.286381,11.974928],[42.715874,11.735641],[43.145305,11.46204],[42.776852,10.926879],[42.55493,11.10511],[42.31414,11.0342],[41.75557,11.05091],[41.73959,11.35511],[41.66176,11.6312],[42,12.1],[42.35156,12.54223],[42.779642,12.455416],[43.081226,12.699639]]]}}, +{"type":"Feature","id":"DNK","properties":{"name":"Denmark"},"geometry":{"type":"MultiPolygon","coordinates":[[[[12.690006,55.609991],[12.089991,54.800015],[11.043543,55.364864],[10.903914,55.779955],[12.370904,56.111407],[12.690006,55.609991]]],[[[10.912182,56.458621],[10.667804,56.081383],[10.369993,56.190007],[9.649985,55.469999],[9.921906,54.983104],[9.282049,54.830865],[8.526229,54.962744],[8.120311,55.517723],[8.089977,56.540012],[8.256582,56.809969],[8.543438,57.110003],[9.424469,57.172066],[9.775559,57.447941],[10.580006,57.730017],[10.546106,57.215733],[10.25,56.890016],[10.369993,56.609982],[10.912182,56.458621]]]]}}, +{"type":"Feature","id":"DOM","properties":{"name":"Dominican Republic"},"geometry":{"type":"Polygon","coordinates":[[[-71.712361,19.714456],[-71.587304,19.884911],[-70.806706,19.880286],[-70.214365,19.622885],[-69.950815,19.648],[-69.76925,19.293267],[-69.222126,19.313214],[-69.254346,19.015196],[-68.809412,18.979074],[-68.317943,18.612198],[-68.689316,18.205142],[-69.164946,18.422648],[-69.623988,18.380713],[-69.952934,18.428307],[-70.133233,18.245915],[-70.517137,18.184291],[-70.669298,18.426886],[-70.99995,18.283329],[-71.40021,17.598564],[-71.657662,17.757573],[-71.708305,18.044997],[-71.687738,18.31666],[-71.945112,18.6169],[-71.701303,18.785417],[-71.624873,19.169838],[-71.712361,19.714456]]]}}, +{"type":"Feature","id":"DZA","properties":{"name":"Algeria"},"geometry":{"type":"Polygon","coordinates":[[[11.999506,23.471668],[8.572893,21.565661],[5.677566,19.601207],[4.267419,19.155265],[3.158133,19.057364],[3.146661,19.693579],[2.683588,19.85623],[2.060991,20.142233],[1.823228,20.610809],[-1.550055,22.792666],[-4.923337,24.974574],[-8.6844,27.395744],[-8.665124,27.589479],[-8.66559,27.656426],[-8.674116,28.841289],[-7.059228,29.579228],[-6.060632,29.7317],[-5.242129,30.000443],[-4.859646,30.501188],[-3.690441,30.896952],[-3.647498,31.637294],[-3.06898,31.724498],[-2.616605,32.094346],[-1.307899,32.262889],[-1.124551,32.651522],[-1.388049,32.864015],[-1.733455,33.919713],[-1.792986,34.527919],[-2.169914,35.168396],[-1.208603,35.714849],[-0.127454,35.888662],[0.503877,36.301273],[1.466919,36.605647],[3.161699,36.783905],[4.815758,36.865037],[5.32012,36.716519],[6.26182,37.110655],[7.330385,37.118381],[7.737078,36.885708],[8.420964,36.946427],[8.217824,36.433177],[8.376368,35.479876],[8.140981,34.655146],[7.524482,34.097376],[7.612642,33.344115],[8.430473,32.748337],[8.439103,32.506285],[9.055603,32.102692],[9.48214,30.307556],[9.805634,29.424638],[9.859998,28.95999],[9.683885,28.144174],[9.756128,27.688259],[9.629056,27.140953],[9.716286,26.512206],[9.319411,26.094325],[9.910693,25.365455],[9.948261,24.936954],[10.303847,24.379313],[10.771364,24.562532],[11.560669,24.097909],[11.999506,23.471668]]]}}, +{"type":"Feature","id":"ECU","properties":{"name":"Ecuador"},"geometry":{"type":"Polygon","coordinates":[[[-80.302561,-3.404856],[-79.770293,-2.657512],[-79.986559,-2.220794],[-80.368784,-2.685159],[-80.967765,-2.246943],[-80.764806,-1.965048],[-80.933659,-1.057455],[-80.58337,-0.906663],[-80.399325,-0.283703],[-80.020898,0.36034],[-80.09061,0.768429],[-79.542762,0.982938],[-78.855259,1.380924],[-77.855061,0.809925],[-77.668613,0.825893],[-77.424984,0.395687],[-76.57638,0.256936],[-76.292314,0.416047],[-75.801466,0.084801],[-75.373223,-0.152032],[-75.233723,-0.911417],[-75.544996,-1.56161],[-76.635394,-2.608678],[-77.837905,-3.003021],[-78.450684,-3.873097],[-78.639897,-4.547784],[-79.205289,-4.959129],[-79.624979,-4.454198],[-80.028908,-4.346091],[-80.442242,-4.425724],[-80.469295,-4.059287],[-80.184015,-3.821162],[-80.302561,-3.404856]]]}}, +{"type":"Feature","id":"EGY","properties":{"name":"Egypt"},"geometry":{"type":"Polygon","coordinates":[[[34.9226,29.50133],[34.64174,29.09942],[34.42655,28.34399],[34.15451,27.8233],[33.92136,27.6487],[33.58811,27.97136],[33.13676,28.41765],[32.42323,29.85108],[32.32046,29.76043],[32.73482,28.70523],[33.34876,27.69989],[34.10455,26.14227],[34.47387,25.59856],[34.79507,25.03375],[35.69241,23.92671],[35.49372,23.75237],[35.52598,23.10244],[36.69069,22.20485],[36.86623,22],[32.9,22],[29.02,22],[25,22],[25,25.6825],[25,29.238655],[24.70007,30.04419],[24.95762,30.6616],[24.80287,31.08929],[25.16482,31.56915],[26.49533,31.58568],[27.45762,31.32126],[28.45048,31.02577],[28.91353,30.87005],[29.68342,31.18686],[30.09503,31.4734],[30.97693,31.55586],[31.68796,31.4296],[31.96041,30.9336],[32.19247,31.26034],[32.99392,31.02407],[33.7734,30.96746],[34.26544,31.21936],[34.9226,29.50133]]]}}, +{"type":"Feature","id":"ERI","properties":{"name":"Eritrea"},"geometry":{"type":"Polygon","coordinates":[[[42.35156,12.54223],[42.00975,12.86582],[41.59856,13.45209],[41.155194,13.77332],[40.8966,14.11864],[40.026219,14.519579],[39.34061,14.53155],[39.0994,14.74064],[38.51295,14.50547],[37.90607,14.95943],[37.59377,14.2131],[36.42951,14.42211],[36.323189,14.822481],[36.75386,16.291874],[36.85253,16.95655],[37.16747,17.26314],[37.904,17.42754],[38.41009,17.998307],[38.990623,16.840626],[39.26611,15.922723],[39.814294,15.435647],[41.179275,14.49108],[41.734952,13.921037],[42.276831,13.343992],[42.589576,13.000421],[43.081226,12.699639],[42.779642,12.455416],[42.35156,12.54223]]]}}, +{"type":"Feature","id":"ESP","properties":{"name":"Spain"},"geometry":{"type":"Polygon","coordinates":[[[-9.034818,41.880571],[-8.984433,42.592775],[-9.392884,43.026625],[-7.97819,43.748338],[-6.754492,43.567909],[-5.411886,43.57424],[-4.347843,43.403449],[-3.517532,43.455901],[-1.901351,43.422802],[-1.502771,43.034014],[0.338047,42.579546],[0.701591,42.795734],[1.826793,42.343385],[2.985999,42.473015],[3.039484,41.89212],[2.091842,41.226089],[0.810525,41.014732],[0.721331,40.678318],[0.106692,40.123934],[-0.278711,39.309978],[0.111291,38.738514],[-0.467124,38.292366],[-0.683389,37.642354],[-1.438382,37.443064],[-2.146453,36.674144],[-3.415781,36.6589],[-4.368901,36.677839],[-4.995219,36.324708],[-5.37716,35.94685],[-5.866432,36.029817],[-6.236694,36.367677],[-6.520191,36.942913],[-7.453726,37.097788],[-7.537105,37.428904],[-7.166508,37.803894],[-7.029281,38.075764],[-7.374092,38.373059],[-7.098037,39.030073],[-7.498632,39.629571],[-7.066592,39.711892],[-7.026413,40.184524],[-6.86402,40.330872],[-6.851127,41.111083],[-6.389088,41.381815],[-6.668606,41.883387],[-7.251309,41.918346],[-7.422513,41.792075],[-8.013175,41.790886],[-8.263857,42.280469],[-8.671946,42.134689],[-9.034818,41.880571]]]}}, +{"type":"Feature","id":"EST","properties":{"name":"Estonia"},"geometry":{"type":"Polygon","coordinates":[[[24.312863,57.793424],[24.428928,58.383413],[24.061198,58.257375],[23.42656,58.612753],[23.339795,59.18724],[24.604214,59.465854],[25.864189,59.61109],[26.949136,59.445803],[27.981114,59.475388],[28.131699,59.300825],[27.420166,58.724581],[27.716686,57.791899],[27.288185,57.474528],[26.463532,57.476389],[25.60281,57.847529],[25.164594,57.970157],[24.312863,57.793424]]]}}, +{"type":"Feature","id":"ETH","properties":{"name":"Ethiopia"},"geometry":{"type":"Polygon","coordinates":[[[37.90607,14.95943],[38.51295,14.50547],[39.0994,14.74064],[39.34061,14.53155],[40.02625,14.51959],[40.8966,14.11864],[41.1552,13.77333],[41.59856,13.45209],[42.00975,12.86582],[42.35156,12.54223],[42,12.1],[41.66176,11.6312],[41.73959,11.35511],[41.75557,11.05091],[42.31414,11.0342],[42.55493,11.10511],[42.776852,10.926879],[42.55876,10.57258],[42.92812,10.02194],[43.29699,9.54048],[43.67875,9.18358],[46.94834,7.99688],[47.78942,8.003],[44.9636,5.00162],[43.66087,4.95755],[42.76967,4.25259],[42.12861,4.23413],[41.855083,3.918912],[41.1718,3.91909],[40.76848,4.25702],[39.85494,3.83879],[39.559384,3.42206],[38.89251,3.50074],[38.67114,3.61607],[38.43697,3.58851],[38.120915,3.598605],[36.855093,4.447864],[36.159079,4.447864],[35.817448,4.776966],[35.817448,5.338232],[35.298007,5.506],[34.70702,6.59422],[34.25032,6.82607],[34.0751,7.22595],[33.56829,7.71334],[32.95418,7.78497],[33.2948,8.35458],[33.8255,8.37916],[33.97498,8.68456],[33.96162,9.58358],[34.25745,10.63009],[34.73115,10.91017],[34.83163,11.31896],[35.26049,12.08286],[35.86363,12.57828],[36.27022,13.56333],[36.42951,14.42211],[37.59377,14.2131],[37.90607,14.95943]]]}}, +{"type":"Feature","id":"FIN","properties":{"name":"Finland"},"geometry":{"type":"Polygon","coordinates":[[[28.59193,69.064777],[28.445944,68.364613],[29.977426,67.698297],[29.054589,66.944286],[30.21765,65.80598],[29.54443,64.948672],[30.444685,64.204453],[30.035872,63.552814],[31.516092,62.867687],[31.139991,62.357693],[30.211107,61.780028],[28.069998,60.503517],[26.255173,60.423961],[24.496624,60.057316],[22.869695,59.846373],[22.290764,60.391921],[21.322244,60.72017],[21.544866,61.705329],[21.059211,62.607393],[21.536029,63.189735],[22.442744,63.81781],[24.730512,64.902344],[25.398068,65.111427],[25.294043,65.534346],[23.903379,66.006927],[23.56588,66.396051],[23.539473,67.936009],[21.978535,68.616846],[20.645593,69.106247],[21.244936,69.370443],[22.356238,68.841741],[23.66205,68.891247],[24.735679,68.649557],[25.689213,69.092114],[26.179622,69.825299],[27.732292,70.164193],[29.015573,69.766491],[28.59193,69.064777]]]}}, +{"type":"Feature","id":"FJI","properties":{"name":"Fiji"},"geometry":{"type":"MultiPolygon","coordinates":[[[[178.3736,-17.33992],[178.71806,-17.62846],[178.55271,-18.15059],[177.93266,-18.28799],[177.38146,-18.16432],[177.28504,-17.72465],[177.67087,-17.38114],[178.12557,-17.50481],[178.3736,-17.33992]]],[[[179.364143,-16.801354],[178.725059,-17.012042],[178.596839,-16.63915],[179.096609,-16.433984],[179.413509,-16.379054],[180,-16.067133],[180,-16.555217],[179.364143,-16.801354]]],[[[-179.917369,-16.501783],[-180,-16.555217],[-180,-16.067133],[-179.79332,-16.020882],[-179.917369,-16.501783]]]]}}, +{"type":"Feature","id":"FLK","properties":{"name":"Falkland Islands"},"geometry":{"type":"Polygon","coordinates":[[[-61.2,-51.85],[-60,-51.25],[-59.15,-51.5],[-58.55,-51.1],[-57.75,-51.55],[-58.05,-51.9],[-59.4,-52.2],[-59.85,-51.85],[-60.7,-52.3],[-61.2,-51.85]]]}}, +{"type":"Feature","id":"FRA","properties":{"name":"France"},"geometry":{"type":"MultiPolygon","coordinates":[[[[9.560016,42.152492],[9.229752,41.380007],[8.775723,41.583612],[8.544213,42.256517],[8.746009,42.628122],[9.390001,43.009985],[9.560016,42.152492]]],[[[3.588184,50.378992],[4.286023,49.907497],[4.799222,49.985373],[5.674052,49.529484],[5.897759,49.442667],[6.18632,49.463803],[6.65823,49.201958],[8.099279,49.017784],[7.593676,48.333019],[7.466759,47.620582],[7.192202,47.449766],[6.736571,47.541801],[6.768714,47.287708],[6.037389,46.725779],[6.022609,46.27299],[6.5001,46.429673],[6.843593,45.991147],[6.802355,45.70858],[7.096652,45.333099],[6.749955,45.028518],[7.007562,44.254767],[7.549596,44.127901],[7.435185,43.693845],[6.529245,43.128892],[4.556963,43.399651],[3.100411,43.075201],[2.985999,42.473015],[1.826793,42.343385],[0.701591,42.795734],[0.338047,42.579546],[-1.502771,43.034014],[-1.901351,43.422802],[-1.384225,44.02261],[-1.193798,46.014918],[-2.225724,47.064363],[-2.963276,47.570327],[-4.491555,47.954954],[-4.59235,48.68416],[-3.295814,48.901692],[-1.616511,48.644421],[-1.933494,49.776342],[-0.989469,49.347376],[1.338761,50.127173],[1.639001,50.946606],[2.513573,51.148506],[2.658422,50.796848],[3.123252,50.780363],[3.588184,50.378992]]]]}}, +{"type":"Feature","id":"GAB","properties":{"name":"Gabon"},"geometry":{"type":"Polygon","coordinates":[[[11.093773,-3.978827],[10.066135,-2.969483],[9.405245,-2.144313],[8.797996,-1.111301],[8.830087,-0.779074],[9.04842,-0.459351],[9.291351,0.268666],[9.492889,1.01012],[9.830284,1.067894],[11.285079,1.057662],[11.276449,2.261051],[11.751665,2.326758],[12.35938,2.192812],[12.951334,2.321616],[13.075822,2.267097],[13.003114,1.830896],[13.282631,1.314184],[14.026669,1.395677],[14.276266,1.19693],[13.843321,0.038758],[14.316418,-0.552627],[14.425456,-1.333407],[14.29921,-1.998276],[13.992407,-2.470805],[13.109619,-2.42874],[12.575284,-1.948511],[12.495703,-2.391688],[11.820964,-2.514161],[11.478039,-2.765619],[11.855122,-3.426871],[11.093773,-3.978827]]]}}, +{"type":"Feature","id":"GBR","properties":{"name":"United Kingdom"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-5.661949,54.554603],[-6.197885,53.867565],[-6.95373,54.073702],[-7.572168,54.059956],[-7.366031,54.595841],[-7.572168,55.131622],[-6.733847,55.17286],[-5.661949,54.554603]]],[[[-3.005005,58.635],[-4.073828,57.553025],[-3.055002,57.690019],[-1.959281,57.6848],[-2.219988,56.870017],[-3.119003,55.973793],[-2.085009,55.909998],[-2.005676,55.804903],[-1.114991,54.624986],[-0.430485,54.464376],[0.184981,53.325014],[0.469977,52.929999],[1.681531,52.73952],[1.559988,52.099998],[1.050562,51.806761],[1.449865,51.289428],[0.550334,50.765739],[-0.787517,50.774989],[-2.489998,50.500019],[-2.956274,50.69688],[-3.617448,50.228356],[-4.542508,50.341837],[-5.245023,49.96],[-5.776567,50.159678],[-4.30999,51.210001],[-3.414851,51.426009],[-3.422719,51.426848],[-4.984367,51.593466],[-5.267296,51.9914],[-4.222347,52.301356],[-4.770013,52.840005],[-4.579999,53.495004],[-3.093831,53.404547],[-3.09208,53.404441],[-2.945009,53.985],[-3.614701,54.600937],[-3.630005,54.615013],[-4.844169,54.790971],[-5.082527,55.061601],[-4.719112,55.508473],[-5.047981,55.783986],[-5.586398,55.311146],[-5.644999,56.275015],[-6.149981,56.78501],[-5.786825,57.818848],[-5.009999,58.630013],[-4.211495,58.550845],[-3.005005,58.635]]]]}}, +{"type":"Feature","id":"GEO","properties":{"name":"Georgia"},"geometry":{"type":"Polygon","coordinates":[[[41.554084,41.535656],[41.703171,41.962943],[41.45347,42.645123],[40.875469,43.013628],[40.321394,43.128634],[39.955009,43.434998],[40.076965,43.553104],[40.922185,43.382159],[42.394395,43.220308],[43.756017,42.740828],[43.9312,42.554974],[44.537623,42.711993],[45.470279,42.502781],[45.77641,42.092444],[46.404951,41.860675],[46.145432,41.722802],[46.637908,41.181673],[46.501637,41.064445],[45.962601,41.123873],[45.217426,41.411452],[44.97248,41.248129],[43.582746,41.092143],[42.619549,41.583173],[41.554084,41.535656]]]}}, +{"type":"Feature","id":"GHA","properties":{"name":"Ghana"},"geometry":{"type":"Polygon","coordinates":[[[1.060122,5.928837],[-0.507638,5.343473],[-1.063625,5.000548],[-1.964707,4.710462],[-2.856125,4.994476],[-2.810701,5.389051],[-3.24437,6.250472],[-2.983585,7.379705],[-2.56219,8.219628],[-2.827496,9.642461],[-2.963896,10.395335],[-2.940409,10.96269],[-1.203358,11.009819],[-0.761576,10.93693],[-0.438702,11.098341],[0.023803,11.018682],[-0.049785,10.706918],[0.36758,10.191213],[0.365901,9.465004],[0.461192,8.677223],[0.712029,8.312465],[0.490957,7.411744],[0.570384,6.914359],[0.836931,6.279979],[1.060122,5.928837]]]}}, +{"type":"Feature","id":"GIN","properties":{"name":"Guinea"},"geometry":{"type":"Polygon","coordinates":[[[-8.439298,7.686043],[-8.722124,7.711674],[-8.926065,7.309037],[-9.208786,7.313921],[-9.403348,7.526905],[-9.33728,7.928534],[-9.755342,8.541055],[-10.016567,8.428504],[-10.230094,8.406206],[-10.505477,8.348896],[-10.494315,8.715541],[-10.65477,8.977178],[-10.622395,9.26791],[-10.839152,9.688246],[-11.117481,10.045873],[-11.917277,10.046984],[-12.150338,9.858572],[-12.425929,9.835834],[-12.596719,9.620188],[-12.711958,9.342712],[-13.24655,8.903049],[-13.685154,9.494744],[-14.074045,9.886167],[-14.330076,10.01572],[-14.579699,10.214467],[-14.693232,10.656301],[-14.839554,10.876572],[-15.130311,11.040412],[-14.685687,11.527824],[-14.382192,11.509272],[-14.121406,11.677117],[-13.9008,11.678719],[-13.743161,11.811269],[-13.828272,12.142644],[-13.718744,12.247186],[-13.700476,12.586183],[-13.217818,12.575874],[-12.499051,12.33209],[-12.278599,12.35444],[-12.203565,12.465648],[-11.658301,12.386583],[-11.513943,12.442988],[-11.456169,12.076834],[-11.297574,12.077971],[-11.036556,12.211245],[-10.87083,12.177887],[-10.593224,11.923975],[-10.165214,11.844084],[-9.890993,12.060479],[-9.567912,12.194243],[-9.327616,12.334286],[-9.127474,12.30806],[-8.905265,12.088358],[-8.786099,11.812561],[-8.376305,11.393646],[-8.581305,11.136246],[-8.620321,10.810891],[-8.407311,10.909257],[-8.282357,10.792597],[-8.335377,10.494812],[-8.029944,10.206535],[-8.229337,10.12902],[-8.309616,9.789532],[-8.079114,9.376224],[-7.8321,8.575704],[-8.203499,8.455453],[-8.299049,8.316444],[-8.221792,8.123329],[-8.280703,7.68718],[-8.439298,7.686043]]]}}, +{"type":"Feature","id":"GMB","properties":{"name":"Gambia"},"geometry":{"type":"Polygon","coordinates":[[[-16.841525,13.151394],[-16.713729,13.594959],[-15.624596,13.623587],[-15.39877,13.860369],[-15.081735,13.876492],[-14.687031,13.630357],[-14.376714,13.62568],[-14.046992,13.794068],[-13.844963,13.505042],[-14.277702,13.280585],[-14.712197,13.298207],[-15.141163,13.509512],[-15.511813,13.27857],[-15.691001,13.270353],[-15.931296,13.130284],[-16.841525,13.151394]]]}}, +{"type":"Feature","id":"GNB","properties":{"name":"Guinea Bissau"},"geometry":{"type":"Polygon","coordinates":[[[-15.130311,11.040412],[-15.66418,11.458474],[-16.085214,11.524594],[-16.314787,11.806515],[-16.308947,11.958702],[-16.613838,12.170911],[-16.677452,12.384852],[-16.147717,12.547762],[-15.816574,12.515567],[-15.548477,12.62817],[-13.700476,12.586183],[-13.718744,12.247186],[-13.828272,12.142644],[-13.743161,11.811269],[-13.9008,11.678719],[-14.121406,11.677117],[-14.382192,11.509272],[-14.685687,11.527824],[-15.130311,11.040412]]]}}, +{"type":"Feature","id":"GNQ","properties":{"name":"Equatorial Guinea"},"geometry":{"type":"Polygon","coordinates":[[[9.492889,1.01012],[9.305613,1.160911],[9.649158,2.283866],[11.276449,2.261051],[11.285079,1.057662],[9.830284,1.067894],[9.492889,1.01012]]]}}, +{"type":"Feature","id":"GRC","properties":{"name":"Greece"},"geometry":{"type":"MultiPolygon","coordinates":[[[[23.69998,35.705004],[24.246665,35.368022],[25.025015,35.424996],[25.769208,35.354018],[25.745023,35.179998],[26.290003,35.29999],[26.164998,35.004995],[24.724982,34.919988],[24.735007,35.084991],[23.514978,35.279992],[23.69998,35.705004]]],[[[26.604196,41.562115],[26.294602,40.936261],[26.056942,40.824123],[25.447677,40.852545],[24.925848,40.947062],[23.714811,40.687129],[24.407999,40.124993],[23.899968,39.962006],[23.342999,39.960998],[22.813988,40.476005],[22.626299,40.256561],[22.849748,39.659311],[23.350027,39.190011],[22.973099,38.970903],[23.530016,38.510001],[24.025025,38.219993],[24.040011,37.655015],[23.115003,37.920011],[23.409972,37.409991],[22.774972,37.30501],[23.154225,36.422506],[22.490028,36.41],[21.670026,36.844986],[21.295011,37.644989],[21.120034,38.310323],[20.730032,38.769985],[20.217712,39.340235],[20.150016,39.624998],[20.615,40.110007],[20.674997,40.435],[20.99999,40.580004],[21.02004,40.842727],[21.674161,40.931275],[22.055378,41.149866],[22.597308,41.130487],[22.76177,41.3048],[22.952377,41.337994],[23.692074,41.309081],[24.492645,41.583896],[25.197201,41.234486],[26.106138,41.328899],[26.117042,41.826905],[26.604196,41.562115]]]]}}, +{"type":"Feature","id":"GRL","properties":{"name":"Greenland"},"geometry":{"type":"Polygon","coordinates":[[[-46.76379,82.62796],[-43.40644,83.22516],[-39.89753,83.18018],[-38.62214,83.54905],[-35.08787,83.64513],[-27.10046,83.51966],[-20.84539,82.72669],[-22.69182,82.34165],[-26.51753,82.29765],[-31.9,82.2],[-31.39646,82.02154],[-27.85666,82.13178],[-24.84448,81.78697],[-22.90328,82.09317],[-22.07175,81.73449],[-23.16961,81.15271],[-20.62363,81.52462],[-15.76818,81.91245],[-12.77018,81.71885],[-12.20855,81.29154],[-16.28533,80.58004],[-16.85,80.35],[-20.04624,80.17708],[-17.73035,80.12912],[-18.9,79.4],[-19.70499,78.75128],[-19.67353,77.63859],[-18.47285,76.98565],[-20.03503,76.94434],[-21.67944,76.62795],[-19.83407,76.09808],[-19.59896,75.24838],[-20.66818,75.15585],[-19.37281,74.29561],[-21.59422,74.22382],[-20.43454,73.81713],[-20.76234,73.46436],[-22.17221,73.30955],[-23.56593,73.30663],[-22.31311,72.62928],[-22.29954,72.18409],[-24.27834,72.59788],[-24.79296,72.3302],[-23.44296,72.08016],[-22.13281,71.46898],[-21.75356,70.66369],[-23.53603,70.471],[-24.30702,70.85649],[-25.54341,71.43094],[-25.20135,70.75226],[-26.36276,70.22646],[-23.72742,70.18401],[-22.34902,70.12946],[-25.02927,69.2588],[-27.74737,68.47046],[-30.67371,68.12503],[-31.77665,68.12078],[-32.81105,67.73547],[-34.20196,66.67974],[-36.35284,65.9789],[-37.04378,65.93768],[-38.37505,65.69213],[-39.81222,65.45848],[-40.66899,64.83997],[-40.68281,64.13902],[-41.1887,63.48246],[-42.81938,62.68233],[-42.41666,61.90093],[-42.86619,61.07404],[-43.3784,60.09772],[-44.7875,60.03676],[-46.26364,60.85328],[-48.26294,60.85843],[-49.23308,61.40681],[-49.90039,62.38336],[-51.63325,63.62691],[-52.14014,64.27842],[-52.27659,65.1767],[-53.66166,66.09957],[-53.30161,66.8365],[-53.96911,67.18899],[-52.9804,68.35759],[-51.47536,68.72958],[-51.08041,69.14781],[-50.87122,69.9291],[-52.013585,69.574925],[-52.55792,69.42616],[-53.45629,69.283625],[-54.68336,69.61003],[-54.75001,70.28932],[-54.35884,70.821315],[-53.431315,70.835755],[-51.39014,70.56978],[-53.10937,71.20485],[-54.00422,71.54719],[-55,71.406537],[-55.83468,71.65444],[-54.71819,72.58625],[-55.32634,72.95861],[-56.12003,73.64977],[-57.32363,74.71026],[-58.59679,75.09861],[-58.58516,75.51727],[-61.26861,76.10238],[-63.39165,76.1752],[-66.06427,76.13486],[-68.50438,76.06141],[-69.66485,76.37975],[-71.40257,77.00857],[-68.77671,77.32312],[-66.76397,77.37595],[-71.04293,77.63595],[-73.297,78.04419],[-73.15938,78.43271],[-69.37345,78.91388],[-65.7107,79.39436],[-65.3239,79.75814],[-68.02298,80.11721],[-67.15129,80.51582],[-63.68925,81.21396],[-62.23444,81.3211],[-62.65116,81.77042],[-60.28249,82.03363],[-57.20744,82.19074],[-54.13442,82.19962],[-53.04328,81.88833],[-50.39061,82.43883],[-48.00386,82.06481],[-46.59984,81.985945],[-44.523,81.6607],[-46.9007,82.19979],[-46.76379,82.62796]]]}}, +{"type":"Feature","id":"GTM","properties":{"name":"Guatemala"},"geometry":{"type":"Polygon","coordinates":[[[-90.095555,13.735338],[-90.608624,13.909771],[-91.23241,13.927832],[-91.689747,14.126218],[-92.22775,14.538829],[-92.20323,14.830103],[-92.087216,15.064585],[-92.229249,15.251447],[-91.74796,16.066565],[-90.464473,16.069562],[-90.438867,16.41011],[-90.600847,16.470778],[-90.711822,16.687483],[-91.08167,16.918477],[-91.453921,17.252177],[-91.002269,17.254658],[-91.00152,17.817595],[-90.067934,17.819326],[-89.14308,17.808319],[-89.150806,17.015577],[-89.229122,15.886938],[-88.930613,15.887273],[-88.604586,15.70638],[-88.518364,15.855389],[-88.225023,15.727722],[-88.68068,15.346247],[-89.154811,15.066419],[-89.22522,14.874286],[-89.145535,14.678019],[-89.353326,14.424133],[-89.587343,14.362586],[-89.534219,14.244816],[-89.721934,14.134228],[-90.064678,13.88197],[-90.095555,13.735338]]]}}, +{"type":"Feature","id":"GUF","properties":{"name":"French Guiana"},"geometry":{"type":"Polygon","coordinates":[[[-52.556425,2.504705],[-52.939657,2.124858],[-53.418465,2.053389],[-53.554839,2.334897],[-53.778521,2.376703],[-54.088063,2.105557],[-54.524754,2.311849],[-54.27123,2.738748],[-54.184284,3.194172],[-54.011504,3.62257],[-54.399542,4.212611],[-54.478633,4.896756],[-53.958045,5.756548],[-53.618453,5.646529],[-52.882141,5.409851],[-51.823343,4.565768],[-51.657797,4.156232],[-52.249338,3.241094],[-52.556425,2.504705]]]}}, +{"type":"Feature","id":"GUY","properties":{"name":"Guyana"},"geometry":{"type":"Polygon","coordinates":[[[-59.758285,8.367035],[-59.101684,7.999202],[-58.482962,7.347691],[-58.454876,6.832787],[-58.078103,6.809094],[-57.542219,6.321268],[-57.147436,5.97315],[-57.307246,5.073567],[-57.914289,4.812626],[-57.86021,4.576801],[-58.044694,4.060864],[-57.601569,3.334655],[-57.281433,3.333492],[-57.150098,2.768927],[-56.539386,1.899523],[-56.782704,1.863711],[-57.335823,1.948538],[-57.660971,1.682585],[-58.11345,1.507195],[-58.429477,1.463942],[-58.540013,1.268088],[-59.030862,1.317698],[-59.646044,1.786894],[-59.718546,2.24963],[-59.974525,2.755233],[-59.815413,3.606499],[-59.53804,3.958803],[-59.767406,4.423503],[-60.111002,4.574967],[-59.980959,5.014061],[-60.213683,5.244486],[-60.733574,5.200277],[-61.410303,5.959068],[-61.139415,6.234297],[-61.159336,6.696077],[-60.543999,6.856584],[-60.295668,7.043911],[-60.637973,7.415],[-60.550588,7.779603],[-59.758285,8.367035]]]}}, +{"type":"Feature","id":"HND","properties":{"name":"Honduras"},"geometry":{"type":"Polygon","coordinates":[[[-87.316654,12.984686],[-87.489409,13.297535],[-87.793111,13.38448],[-87.723503,13.78505],[-87.859515,13.893312],[-88.065343,13.964626],[-88.503998,13.845486],[-88.541231,13.980155],[-88.843073,14.140507],[-89.058512,14.340029],[-89.353326,14.424133],[-89.145535,14.678019],[-89.22522,14.874286],[-89.154811,15.066419],[-88.68068,15.346247],[-88.225023,15.727722],[-88.121153,15.688655],[-87.901813,15.864458],[-87.61568,15.878799],[-87.522921,15.797279],[-87.367762,15.84694],[-86.903191,15.756713],[-86.440946,15.782835],[-86.119234,15.893449],[-86.001954,16.005406],[-85.683317,15.953652],[-85.444004,15.885749],[-85.182444,15.909158],[-84.983722,15.995923],[-84.52698,15.857224],[-84.368256,15.835158],[-84.063055,15.648244],[-83.773977,15.424072],[-83.410381,15.270903],[-83.147219,14.995829],[-83.489989,15.016267],[-83.628585,14.880074],[-83.975721,14.749436],[-84.228342,14.748764],[-84.449336,14.621614],[-84.649582,14.666805],[-84.820037,14.819587],[-84.924501,14.790493],[-85.052787,14.551541],[-85.148751,14.560197],[-85.165365,14.35437],[-85.514413,14.079012],[-85.698665,13.960078],[-85.801295,13.836055],[-86.096264,14.038187],[-86.312142,13.771356],[-86.520708,13.778487],[-86.755087,13.754845],[-86.733822,13.263093],[-86.880557,13.254204],[-87.005769,13.025794],[-87.316654,12.984686]]]}}, +{"type":"Feature","id":"HRV","properties":{"name":"Croatia"},"geometry":{"type":"Polygon","coordinates":[[[18.829838,45.908878],[19.072769,45.521511],[19.390476,45.236516],[19.005486,44.860234],[18.553214,45.08159],[17.861783,45.06774],[17.002146,45.233777],[16.534939,45.211608],[16.318157,45.004127],[15.959367,45.233777],[15.750026,44.818712],[16.23966,44.351143],[16.456443,44.04124],[16.916156,43.667722],[17.297373,43.446341],[17.674922,43.028563],[18.56,42.65],[18.450016,42.479991],[17.50997,42.849995],[16.930006,43.209998],[16.015385,43.507215],[15.174454,44.243191],[15.37625,44.317915],[14.920309,44.738484],[14.901602,45.07606],[14.258748,45.233777],[13.952255,44.802124],[13.656976,45.136935],[13.679403,45.484149],[13.71506,45.500324],[14.411968,45.466166],[14.595109,45.634941],[14.935244,45.471695],[15.327675,45.452316],[15.323954,45.731783],[15.67153,45.834154],[15.768733,46.238108],[16.564808,46.503751],[16.882515,46.380632],[17.630066,45.951769],[18.456062,45.759481],[18.829838,45.908878]]]}}, +{"type":"Feature","id":"HTI","properties":{"name":"Haiti"},"geometry":{"type":"Polygon","coordinates":[[[-73.189791,19.915684],[-72.579673,19.871501],[-71.712361,19.714456],[-71.624873,19.169838],[-71.701303,18.785417],[-71.945112,18.6169],[-71.687738,18.31666],[-71.708305,18.044997],[-72.372476,18.214961],[-72.844411,18.145611],[-73.454555,18.217906],[-73.922433,18.030993],[-74.458034,18.34255],[-74.369925,18.664908],[-73.449542,18.526053],[-72.694937,18.445799],[-72.334882,18.668422],[-72.79165,19.101625],[-72.784105,19.483591],[-73.415022,19.639551],[-73.189791,19.915684]]]}}, +{"type":"Feature","id":"HUN","properties":{"name":"Hungary"},"geometry":{"type":"Polygon","coordinates":[[[16.202298,46.852386],[16.534268,47.496171],[16.340584,47.712902],[16.903754,47.714866],[16.979667,48.123497],[17.488473,47.867466],[17.857133,47.758429],[18.696513,47.880954],[18.777025,48.081768],[19.174365,48.111379],[19.661364,48.266615],[19.769471,48.202691],[20.239054,48.327567],[20.473562,48.56285],[20.801294,48.623854],[21.872236,48.319971],[22.085608,48.422264],[22.64082,48.15024],[22.710531,47.882194],[22.099768,47.672439],[21.626515,46.994238],[21.021952,46.316088],[20.220192,46.127469],[19.596045,46.17173],[18.829838,45.908878],[18.456062,45.759481],[17.630066,45.951769],[16.882515,46.380632],[16.564808,46.503751],[16.370505,46.841327],[16.202298,46.852386]]]}}, +{"type":"Feature","id":"IDN","properties":{"name":"Indonesia"},"geometry":{"type":"MultiPolygon","coordinates":[[[[120.715609,-10.239581],[120.295014,-10.25865],[118.967808,-9.557969],[119.90031,-9.36134],[120.425756,-9.665921],[120.775502,-9.969675],[120.715609,-10.239581]]],[[[124.43595,-10.140001],[123.579982,-10.359987],[123.459989,-10.239995],[123.550009,-9.900016],[123.980009,-9.290027],[124.968682,-8.89279],[125.07002,-9.089987],[125.08852,-9.393173],[124.43595,-10.140001]]],[[[117.900018,-8.095681],[118.260616,-8.362383],[118.87846,-8.280683],[119.126507,-8.705825],[117.970402,-8.906639],[117.277731,-9.040895],[116.740141,-9.032937],[117.083737,-8.457158],[117.632024,-8.449303],[117.900018,-8.095681]]],[[[122.903537,-8.094234],[122.756983,-8.649808],[121.254491,-8.933666],[119.924391,-8.810418],[119.920929,-8.444859],[120.715092,-8.236965],[121.341669,-8.53674],[122.007365,-8.46062],[122.903537,-8.094234]]],[[[108.623479,-6.777674],[110.539227,-6.877358],[110.759576,-6.465186],[112.614811,-6.946036],[112.978768,-7.594213],[114.478935,-7.776528],[115.705527,-8.370807],[114.564511,-8.751817],[113.464734,-8.348947],[112.559672,-8.376181],[111.522061,-8.302129],[110.58615,-8.122605],[109.427667,-7.740664],[108.693655,-7.6416],[108.277763,-7.766657],[106.454102,-7.3549],[106.280624,-6.9249],[105.365486,-6.851416],[106.051646,-5.895919],[107.265009,-5.954985],[108.072091,-6.345762],[108.486846,-6.421985],[108.623479,-6.777674]]],[[[134.724624,-6.214401],[134.210134,-6.895238],[134.112776,-6.142467],[134.290336,-5.783058],[134.499625,-5.445042],[134.727002,-5.737582],[134.724624,-6.214401]]],[[[127.249215,-3.459065],[126.874923,-3.790983],[126.183802,-3.607376],[125.989034,-3.177273],[127.000651,-3.129318],[127.249215,-3.459065]]],[[[130.471344,-3.093764],[130.834836,-3.858472],[129.990547,-3.446301],[129.155249,-3.362637],[128.590684,-3.428679],[127.898891,-3.393436],[128.135879,-2.84365],[129.370998,-2.802154],[130.471344,-3.093764]]],[[[134.143368,-1.151867],[134.422627,-2.769185],[135.457603,-3.367753],[136.293314,-2.307042],[137.440738,-1.703513],[138.329727,-1.702686],[139.184921,-2.051296],[139.926684,-2.409052],[141.00021,-2.600151],[141.017057,-5.859022],[141.033852,-9.117893],[140.143415,-8.297168],[139.127767,-8.096043],[138.881477,-8.380935],[137.614474,-8.411683],[138.039099,-7.597882],[138.668621,-7.320225],[138.407914,-6.232849],[137.92784,-5.393366],[135.98925,-4.546544],[135.164598,-4.462931],[133.66288,-3.538853],[133.367705,-4.024819],[132.983956,-4.112979],[132.756941,-3.746283],[132.753789,-3.311787],[131.989804,-2.820551],[133.066845,-2.460418],[133.780031,-2.479848],[133.696212,-2.214542],[132.232373,-2.212526],[131.836222,-1.617162],[130.94284,-1.432522],[130.519558,-0.93772],[131.867538,-0.695461],[132.380116,-0.369538],[133.985548,-0.78021],[134.143368,-1.151867]]],[[[125.240501,1.419836],[124.437035,0.427881],[123.685505,0.235593],[122.723083,0.431137],[121.056725,0.381217],[120.183083,0.237247],[120.04087,-0.519658],[120.935905,-1.408906],[121.475821,-0.955962],[123.340565,-0.615673],[123.258399,-1.076213],[122.822715,-0.930951],[122.38853,-1.516858],[121.508274,-1.904483],[122.454572,-3.186058],[122.271896,-3.5295],[123.170963,-4.683693],[123.162333,-5.340604],[122.628515,-5.634591],[122.236394,-5.282933],[122.719569,-4.464172],[121.738234,-4.851331],[121.489463,-4.574553],[121.619171,-4.188478],[120.898182,-3.602105],[120.972389,-2.627643],[120.305453,-2.931604],[120.390047,-4.097579],[120.430717,-5.528241],[119.796543,-5.6734],[119.366906,-5.379878],[119.653606,-4.459417],[119.498835,-3.494412],[119.078344,-3.487022],[118.767769,-2.801999],[119.180974,-2.147104],[119.323394,-1.353147],[119.825999,0.154254],[120.035702,0.566477],[120.885779,1.309223],[121.666817,1.013944],[122.927567,0.875192],[124.077522,0.917102],[125.065989,1.643259],[125.240501,1.419836]]],[[[128.688249,1.132386],[128.635952,0.258486],[128.12017,0.356413],[127.968034,-0.252077],[128.379999,-0.780004],[128.100016,-0.899996],[127.696475,-0.266598],[127.39949,1.011722],[127.600512,1.810691],[127.932378,2.174596],[128.004156,1.628531],[128.594559,1.540811],[128.688249,1.132386]]],[[[117.875627,1.827641],[118.996747,0.902219],[117.811858,0.784242],[117.478339,0.102475],[117.521644,-0.803723],[116.560048,-1.487661],[116.533797,-2.483517],[116.148084,-4.012726],[116.000858,-3.657037],[114.864803,-4.106984],[114.468652,-3.495704],[113.755672,-3.43917],[113.256994,-3.118776],[112.068126,-3.478392],[111.703291,-2.994442],[111.04824,-3.049426],[110.223846,-2.934032],[110.070936,-1.592874],[109.571948,-1.314907],[109.091874,-0.459507],[108.952658,0.415375],[109.069136,1.341934],[109.66326,2.006467],[109.830227,1.338136],[110.514061,0.773131],[111.159138,0.976478],[111.797548,0.904441],[112.380252,1.410121],[112.859809,1.49779],[113.80585,1.217549],[114.621355,1.430688],[115.134037,2.821482],[115.519078,3.169238],[115.865517,4.306559],[117.015214,4.306094],[117.882035,4.137551],[117.313232,3.234428],[118.04833,2.28769],[117.875627,1.827641]]],[[[105.817655,-5.852356],[104.710384,-5.873285],[103.868213,-5.037315],[102.584261,-4.220259],[102.156173,-3.614146],[101.399113,-2.799777],[100.902503,-2.050262],[100.141981,-0.650348],[99.26374,0.183142],[98.970011,1.042882],[98.601351,1.823507],[97.699598,2.453184],[97.176942,3.308791],[96.424017,3.86886],[95.380876,4.970782],[95.293026,5.479821],[95.936863,5.439513],[97.484882,5.246321],[98.369169,4.26837],[99.142559,3.59035],[99.693998,3.174329],[100.641434,2.099381],[101.658012,2.083697],[102.498271,1.3987],[103.07684,0.561361],[103.838396,0.104542],[103.437645,-0.711946],[104.010789,-1.059212],[104.369991,-1.084843],[104.53949,-1.782372],[104.887893,-2.340425],[105.622111,-2.428844],[106.108593,-3.061777],[105.857446,-4.305525],[105.817655,-5.852356]]]]}}, +{"type":"Feature","id":"IND","properties":{"name":"India"},"geometry":{"type":"Polygon","coordinates":[[[77.837451,35.49401],[78.912269,34.321936],[78.811086,33.506198],[79.208892,32.994395],[79.176129,32.48378],[78.458446,32.618164],[78.738894,31.515906],[79.721367,30.882715],[81.111256,30.183481],[80.476721,29.729865],[80.088425,28.79447],[81.057203,28.416095],[81.999987,27.925479],[83.304249,27.364506],[84.675018,27.234901],[85.251779,26.726198],[86.024393,26.630985],[87.227472,26.397898],[88.060238,26.414615],[88.174804,26.810405],[88.043133,27.445819],[88.120441,27.876542],[88.730326,28.086865],[88.814248,27.299316],[88.835643,27.098966],[89.744528,26.719403],[90.373275,26.875724],[91.217513,26.808648],[92.033484,26.83831],[92.103712,27.452614],[91.696657,27.771742],[92.503119,27.896876],[93.413348,28.640629],[94.56599,29.277438],[95.404802,29.031717],[96.117679,29.452802],[96.586591,28.83098],[96.248833,28.411031],[97.327114,28.261583],[97.402561,27.882536],[97.051989,27.699059],[97.133999,27.083774],[96.419366,27.264589],[95.124768,26.573572],[95.155153,26.001307],[94.603249,25.162495],[94.552658,24.675238],[94.106742,23.850741],[93.325188,24.078556],[93.286327,23.043658],[93.060294,22.703111],[93.166128,22.27846],[92.672721,22.041239],[92.146035,23.627499],[91.869928,23.624346],[91.706475,22.985264],[91.158963,23.503527],[91.46773,24.072639],[91.915093,24.130414],[92.376202,24.976693],[91.799596,25.147432],[90.872211,25.132601],[89.920693,25.26975],[89.832481,25.965082],[89.355094,26.014407],[88.563049,26.446526],[88.209789,25.768066],[88.931554,25.238692],[88.306373,24.866079],[88.084422,24.501657],[88.69994,24.233715],[88.52977,23.631142],[88.876312,22.879146],[89.031961,22.055708],[88.888766,21.690588],[88.208497,21.703172],[86.975704,21.495562],[87.033169,20.743308],[86.499351,20.151638],[85.060266,19.478579],[83.941006,18.30201],[83.189217,17.671221],[82.192792,17.016636],[82.191242,16.556664],[81.692719,16.310219],[80.791999,15.951972],[80.324896,15.899185],[80.025069,15.136415],[80.233274,13.835771],[80.286294,13.006261],[79.862547,12.056215],[79.857999,10.357275],[79.340512,10.308854],[78.885345,9.546136],[79.18972,9.216544],[78.277941,8.933047],[77.941165,8.252959],[77.539898,7.965535],[76.592979,8.899276],[76.130061,10.29963],[75.746467,11.308251],[75.396101,11.781245],[74.864816,12.741936],[74.616717,13.992583],[74.443859,14.617222],[73.534199,15.990652],[73.119909,17.92857],[72.820909,19.208234],[72.824475,20.419503],[72.630533,21.356009],[71.175273,20.757441],[70.470459,20.877331],[69.16413,22.089298],[69.644928,22.450775],[69.349597,22.84318],[68.176645,23.691965],[68.842599,24.359134],[71.04324,24.356524],[70.844699,25.215102],[70.282873,25.722229],[70.168927,26.491872],[69.514393,26.940966],[70.616496,27.989196],[71.777666,27.91318],[72.823752,28.961592],[73.450638,29.976413],[74.42138,30.979815],[74.405929,31.692639],[75.258642,32.271105],[74.451559,32.7649],[74.104294,33.441473],[73.749948,34.317699],[74.240203,34.748887],[75.757061,34.504923],[76.871722,34.653544],[77.837451,35.49401]]]}}, +{"type":"Feature","id":"IRL","properties":{"name":"Ireland"},"geometry":{"type":"Polygon","coordinates":[[[-6.197885,53.867565],[-6.032985,53.153164],[-6.788857,52.260118],[-8.561617,51.669301],[-9.977086,51.820455],[-9.166283,52.864629],[-9.688525,53.881363],[-8.327987,54.664519],[-7.572168,55.131622],[-7.366031,54.595841],[-7.572168,54.059956],[-6.95373,54.073702],[-6.197885,53.867565]]]}}, +{"type":"Feature","id":"IRN","properties":{"name":"Iran"},"geometry":{"type":"Polygon","coordinates":[[[53.921598,37.198918],[54.800304,37.392421],[55.511578,37.964117],[56.180375,37.935127],[56.619366,38.121394],[57.330434,38.029229],[58.436154,37.522309],[59.234762,37.412988],[60.377638,36.527383],[61.123071,36.491597],[61.210817,35.650072],[60.803193,34.404102],[60.52843,33.676446],[60.9637,33.528832],[60.536078,32.981269],[60.863655,32.18292],[60.941945,31.548075],[61.699314,31.379506],[61.781222,30.73585],[60.874248,29.829239],[61.369309,29.303276],[61.771868,28.699334],[62.72783,28.259645],[62.755426,27.378923],[63.233898,27.217047],[63.316632,26.756532],[61.874187,26.239975],[61.497363,25.078237],[59.616134,25.380157],[58.525761,25.609962],[57.397251,25.739902],[56.970766,26.966106],[56.492139,27.143305],[55.72371,26.964633],[54.71509,26.480658],[53.493097,26.812369],[52.483598,27.580849],[51.520763,27.86569],[50.852948,28.814521],[50.115009,30.147773],[49.57685,29.985715],[48.941333,30.31709],[48.567971,29.926778],[48.014568,30.452457],[48.004698,30.985137],[47.685286,30.984853],[47.849204,31.709176],[47.334661,32.469155],[46.109362,33.017287],[45.416691,33.967798],[45.64846,34.748138],[46.151788,35.093259],[46.07634,35.677383],[45.420618,35.977546],[44.77267,37.17045],[44.225756,37.971584],[44.421403,38.281281],[44.109225,39.428136],[44.79399,39.713003],[44.952688,39.335765],[45.457722,38.874139],[46.143623,38.741201],[46.50572,38.770605],[47.685079,39.508364],[48.060095,39.582235],[48.355529,39.288765],[48.010744,38.794015],[48.634375,38.270378],[48.883249,38.320245],[49.199612,37.582874],[50.147771,37.374567],[50.842354,36.872814],[52.264025,36.700422],[53.82579,36.965031],[53.921598,37.198918]]]}}, +{"type":"Feature","id":"IRQ","properties":{"name":"Iraq"},"geometry":{"type":"Polygon","coordinates":[[[45.420618,35.977546],[46.07634,35.677383],[46.151788,35.093259],[45.64846,34.748138],[45.416691,33.967798],[46.109362,33.017287],[47.334661,32.469155],[47.849204,31.709176],[47.685286,30.984853],[48.004698,30.985137],[48.014568,30.452457],[48.567971,29.926778],[47.974519,29.975819],[47.302622,30.05907],[46.568713,29.099025],[44.709499,29.178891],[41.889981,31.190009],[40.399994,31.889992],[39.195468,32.161009],[38.792341,33.378686],[41.006159,34.419372],[41.383965,35.628317],[41.289707,36.358815],[41.837064,36.605854],[42.349591,37.229873],[42.779126,37.385264],[43.942259,37.256228],[44.293452,37.001514],[44.772699,37.170445],[45.420618,35.977546]]]}}, +{"type":"Feature","id":"ISL","properties":{"name":"Iceland"},"geometry":{"type":"Polygon","coordinates":[[[-14.508695,66.455892],[-14.739637,65.808748],[-13.609732,65.126671],[-14.909834,64.364082],[-17.794438,63.678749],[-18.656246,63.496383],[-19.972755,63.643635],[-22.762972,63.960179],[-21.778484,64.402116],[-23.955044,64.89113],[-22.184403,65.084968],[-22.227423,65.378594],[-24.326184,65.611189],[-23.650515,66.262519],[-22.134922,66.410469],[-20.576284,65.732112],[-19.056842,66.276601],[-17.798624,65.993853],[-16.167819,66.526792],[-14.508695,66.455892]]]}}, +{"type":"Feature","id":"ISR","properties":{"name":"Israel"},"geometry":{"type":"Polygon","coordinates":[[[35.719918,32.709192],[35.545665,32.393992],[35.18393,32.532511],[34.974641,31.866582],[35.225892,31.754341],[34.970507,31.616778],[34.927408,31.353435],[35.397561,31.489086],[35.420918,31.100066],[34.922603,29.501326],[34.265433,31.219361],[34.556372,31.548824],[34.488107,31.605539],[34.752587,32.072926],[34.955417,32.827376],[35.098457,33.080539],[35.126053,33.0909],[35.460709,33.08904],[35.552797,33.264275],[35.821101,33.277426],[35.836397,32.868123],[35.700798,32.716014],[35.719918,32.709192]]]}}, +{"type":"Feature","id":"ITA","properties":{"name":"Italy"},"geometry":{"type":"MultiPolygon","coordinates":[[[[15.520376,38.231155],[15.160243,37.444046],[15.309898,37.134219],[15.099988,36.619987],[14.335229,36.996631],[13.826733,37.104531],[12.431004,37.61295],[12.570944,38.126381],[13.741156,38.034966],[14.761249,38.143874],[15.520376,38.231155]]],[[[9.210012,41.209991],[9.809975,40.500009],[9.669519,39.177376],[9.214818,39.240473],[8.806936,38.906618],[8.428302,39.171847],[8.388253,40.378311],[8.159998,40.950007],[8.709991,40.899984],[9.210012,41.209991]]],[[[12.376485,46.767559],[13.806475,46.509306],[13.69811,46.016778],[13.93763,45.591016],[13.141606,45.736692],[12.328581,45.381778],[12.383875,44.885374],[12.261453,44.600482],[12.589237,44.091366],[13.526906,43.587727],[14.029821,42.761008],[15.14257,41.95514],[15.926191,41.961315],[16.169897,41.740295],[15.889346,41.541082],[16.785002,41.179606],[17.519169,40.877143],[18.376687,40.355625],[18.480247,40.168866],[18.293385,39.810774],[17.73838,40.277671],[16.869596,40.442235],[16.448743,39.795401],[17.17149,39.4247],[17.052841,38.902871],[16.635088,38.843572],[16.100961,37.985899],[15.684087,37.908849],[15.687963,38.214593],[15.891981,38.750942],[16.109332,38.964547],[15.718814,39.544072],[15.413613,40.048357],[14.998496,40.172949],[14.703268,40.60455],[14.060672,40.786348],[13.627985,41.188287],[12.888082,41.25309],[12.106683,41.704535],[11.191906,42.355425],[10.511948,42.931463],[10.200029,43.920007],[9.702488,44.036279],[8.888946,44.366336],[8.428561,44.231228],[7.850767,43.767148],[7.435185,43.693845],[7.549596,44.127901],[7.007562,44.254767],[6.749955,45.028518],[7.096652,45.333099],[6.802355,45.70858],[6.843593,45.991147],[7.273851,45.776948],[7.755992,45.82449],[8.31663,46.163642],[8.489952,46.005151],[8.966306,46.036932],[9.182882,46.440215],[9.922837,46.314899],[10.363378,46.483571],[10.442701,46.893546],[11.048556,46.751359],[11.164828,46.941579],[12.153088,47.115393],[12.376485,46.767559]]]]}}, +{"type":"Feature","id":"JAM","properties":{"name":"Jamaica"},"geometry":{"type":"Polygon","coordinates":[[[-77.569601,18.490525],[-76.896619,18.400867],[-76.365359,18.160701],[-76.199659,17.886867],[-76.902561,17.868238],[-77.206341,17.701116],[-77.766023,17.861597],[-78.337719,18.225968],[-78.217727,18.454533],[-77.797365,18.524218],[-77.569601,18.490525]]]}}, +{"type":"Feature","id":"JOR","properties":{"name":"Jordan"},"geometry":{"type":"Polygon","coordinates":[[[35.545665,32.393992],[35.719918,32.709192],[36.834062,32.312938],[38.792341,33.378686],[39.195468,32.161009],[39.004886,32.010217],[37.002166,31.508413],[37.998849,30.5085],[37.66812,30.338665],[37.503582,30.003776],[36.740528,29.865283],[36.501214,29.505254],[36.068941,29.197495],[34.956037,29.356555],[34.922603,29.501326],[35.420918,31.100066],[35.397561,31.489086],[35.545252,31.782505],[35.545665,32.393992]]]}}, +{"type":"Feature","id":"JPN","properties":{"name":"Japan"},"geometry":{"type":"MultiPolygon","coordinates":[[[[134.638428,34.149234],[134.766379,33.806335],[134.203416,33.201178],[133.79295,33.521985],[133.280268,33.28957],[133.014858,32.704567],[132.363115,32.989382],[132.371176,33.463642],[132.924373,34.060299],[133.492968,33.944621],[133.904106,34.364931],[134.638428,34.149234]]],[[[140.976388,37.142074],[140.59977,36.343983],[140.774074,35.842877],[140.253279,35.138114],[138.975528,34.6676],[137.217599,34.606286],[135.792983,33.464805],[135.120983,33.849071],[135.079435,34.596545],[133.340316,34.375938],[132.156771,33.904933],[130.986145,33.885761],[132.000036,33.149992],[131.33279,31.450355],[130.686318,31.029579],[130.20242,31.418238],[130.447676,32.319475],[129.814692,32.61031],[129.408463,33.296056],[130.353935,33.604151],[130.878451,34.232743],[131.884229,34.749714],[132.617673,35.433393],[134.608301,35.731618],[135.677538,35.527134],[136.723831,37.304984],[137.390612,36.827391],[138.857602,37.827485],[139.426405,38.215962],[140.05479,39.438807],[139.883379,40.563312],[140.305783,41.195005],[141.368973,41.37856],[141.914263,39.991616],[141.884601,39.180865],[140.959489,38.174001],[140.976388,37.142074]]],[[[143.910162,44.1741],[144.613427,43.960883],[145.320825,44.384733],[145.543137,43.262088],[144.059662,42.988358],[143.18385,41.995215],[141.611491,42.678791],[141.067286,41.584594],[139.955106,41.569556],[139.817544,42.563759],[140.312087,43.333273],[141.380549,43.388825],[141.671952,44.772125],[141.967645,45.551483],[143.14287,44.510358],[143.910162,44.1741]]]]}}, +{"type":"Feature","id":"KAZ","properties":{"name":"Kazakhstan"},"geometry":{"type":"Polygon","coordinates":[[[70.962315,42.266154],[70.388965,42.081308],[69.070027,41.384244],[68.632483,40.668681],[68.259896,40.662325],[67.985856,41.135991],[66.714047,41.168444],[66.510649,41.987644],[66.023392,41.994646],[66.098012,42.99766],[64.900824,43.728081],[63.185787,43.650075],[62.0133,43.504477],[61.05832,44.405817],[60.239972,44.784037],[58.689989,45.500014],[58.503127,45.586804],[55.928917,44.995858],[55.968191,41.308642],[55.455251,41.259859],[54.755345,42.043971],[54.079418,42.324109],[52.944293,42.116034],[52.50246,41.783316],[52.446339,42.027151],[52.692112,42.443895],[52.501426,42.792298],[51.342427,43.132975],[50.891292,44.031034],[50.339129,44.284016],[50.305643,44.609836],[51.278503,44.514854],[51.316899,45.245998],[52.16739,45.408391],[53.040876,45.259047],[53.220866,46.234646],[53.042737,46.853006],[52.042023,46.804637],[51.191945,47.048705],[50.034083,46.60899],[49.10116,46.39933],[48.593241,46.561034],[48.694734,47.075628],[48.057253,47.743753],[47.315231,47.715847],[46.466446,48.394152],[47.043672,49.152039],[46.751596,49.356006],[47.54948,50.454698],[48.577841,49.87476],[48.702382,50.605128],[50.766648,51.692762],[52.328724,51.718652],[54.532878,51.02624],[55.716941,50.621717],[56.777961,51.043551],[58.363291,51.063653],[59.642282,50.545442],[59.932807,50.842194],[61.337424,50.79907],[61.588003,51.272659],[59.967534,51.96042],[60.927269,52.447548],[60.739993,52.719986],[61.699986,52.979996],[60.978066,53.664993],[61.436591,54.006265],[65.178534,54.354228],[65.666876,54.601267],[68.1691,54.970392],[69.068167,55.38525],[70.865267,55.169734],[71.180131,54.133285],[72.22415,54.376655],[73.508516,54.035617],[73.425679,53.48981],[74.384845,53.546861],[76.8911,54.490524],[76.525179,54.177003],[77.800916,53.404415],[80.03556,50.864751],[80.568447,51.388336],[81.945986,50.812196],[83.383004,51.069183],[83.935115,50.889246],[84.416377,50.3114],[85.11556,50.117303],[85.54127,49.692859],[86.829357,49.826675],[87.35997,49.214981],[86.598776,48.549182],[85.768233,48.455751],[85.720484,47.452969],[85.16429,47.000956],[83.180484,47.330031],[82.458926,45.53965],[81.947071,45.317027],[79.966106,44.917517],[80.866206,43.180362],[80.18015,42.920068],[80.25999,42.349999],[79.643645,42.496683],[79.142177,42.856092],[77.658392,42.960686],[76.000354,42.988022],[75.636965,42.8779],[74.212866,43.298339],[73.645304,43.091272],[73.489758,42.500894],[71.844638,42.845395],[71.186281,42.704293],[70.962315,42.266154]]]}}, +{"type":"Feature","id":"KEN","properties":{"name":"Kenya"},"geometry":{"type":"Polygon","coordinates":[[[40.993,-0.85829],[41.58513,-1.68325],[40.88477,-2.08255],[40.63785,-2.49979],[40.26304,-2.57309],[40.12119,-3.27768],[39.80006,-3.68116],[39.60489,-4.34653],[39.20222,-4.67677],[37.7669,-3.67712],[37.69869,-3.09699],[34.07262,-1.05982],[33.903711,-0.95],[33.893569,0.109814],[34.18,0.515],[34.6721,1.17694],[35.03599,1.90584],[34.59607,3.05374],[34.47913,3.5556],[34.005,4.249885],[34.620196,4.847123],[35.298007,5.506],[35.817448,5.338232],[35.817448,4.776966],[36.159079,4.447864],[36.855093,4.447864],[38.120915,3.598605],[38.43697,3.58851],[38.67114,3.61607],[38.89251,3.50074],[39.559384,3.42206],[39.85494,3.83879],[40.76848,4.25702],[41.1718,3.91909],[41.855083,3.918912],[40.98105,2.78452],[40.993,-0.85829]]]}}, +{"type":"Feature","id":"KGZ","properties":{"name":"Kyrgyzstan"},"geometry":{"type":"Polygon","coordinates":[[[70.962315,42.266154],[71.186281,42.704293],[71.844638,42.845395],[73.489758,42.500894],[73.645304,43.091272],[74.212866,43.298339],[75.636965,42.8779],[76.000354,42.988022],[77.658392,42.960686],[79.142177,42.856092],[79.643645,42.496683],[80.25999,42.349999],[80.11943,42.123941],[78.543661,41.582243],[78.187197,41.185316],[76.904484,41.066486],[76.526368,40.427946],[75.467828,40.562072],[74.776862,40.366425],[73.822244,39.893973],[73.960013,39.660008],[73.675379,39.431237],[71.784694,39.279463],[70.549162,39.604198],[69.464887,39.526683],[69.55961,40.103211],[70.648019,39.935754],[71.014198,40.244366],[71.774875,40.145844],[73.055417,40.866033],[71.870115,41.3929],[71.157859,41.143587],[70.420022,41.519998],[71.259248,42.167711],[70.962315,42.266154]]]}}, +{"type":"Feature","id":"KHM","properties":{"name":"Cambodia"},"geometry":{"type":"Polygon","coordinates":[[[103.49728,10.632555],[103.09069,11.153661],[102.584932,12.186595],[102.348099,13.394247],[102.988422,14.225721],[104.281418,14.416743],[105.218777,14.273212],[106.043946,13.881091],[106.496373,14.570584],[107.382727,14.202441],[107.614548,13.535531],[107.491403,12.337206],[105.810524,11.567615],[106.24967,10.961812],[105.199915,10.88931],[104.334335,10.486544],[103.49728,10.632555]]]}}, +{"type":"Feature","id":"KOR","properties":{"name":"South Korea"},"geometry":{"type":"Polygon","coordinates":[[[128.349716,38.612243],[129.21292,37.432392],[129.46045,36.784189],[129.468304,35.632141],[129.091377,35.082484],[128.18585,34.890377],[127.386519,34.475674],[126.485748,34.390046],[126.37392,34.93456],[126.559231,35.684541],[126.117398,36.725485],[126.860143,36.893924],[126.174759,37.749686],[126.237339,37.840378],[126.68372,37.804773],[127.073309,38.256115],[127.780035,38.304536],[128.205746,38.370397],[128.349716,38.612243]]]}}, +{"type":"Feature","id":"CS-KM","properties":{"name":"Kosovo"},"geometry":{"type":"Polygon","coordinates":[[[20.76216,42.05186],[20.71731,41.84711],[20.59023,41.85541],[20.52295,42.21787],[20.28374,42.32025],[20.0707,42.58863],[20.25758,42.81275],[20.49679,42.88469],[20.63508,43.21671],[20.81448,43.27205],[20.95651,43.13094],[21.143395,43.068685],[21.27421,42.90959],[21.43866,42.86255],[21.63302,42.67717],[21.77505,42.6827],[21.66292,42.43922],[21.54332,42.32025],[21.576636,42.245224],[21.3527,42.2068],[20.76216,42.05186]]]}}, +{"type":"Feature","id":"KWT","properties":{"name":"Kuwait"},"geometry":{"type":"Polygon","coordinates":[[[47.974519,29.975819],[48.183189,29.534477],[48.093943,29.306299],[48.416094,28.552004],[47.708851,28.526063],[47.459822,29.002519],[46.568713,29.099025],[47.302622,30.05907],[47.974519,29.975819]]]}}, +{"type":"Feature","id":"LAO","properties":{"name":"Laos"},"geometry":{"type":"Polygon","coordinates":[[[105.218777,14.273212],[105.544338,14.723934],[105.589039,15.570316],[104.779321,16.441865],[104.716947,17.428859],[103.956477,18.240954],[103.200192,18.309632],[102.998706,17.961695],[102.413005,17.932782],[102.113592,18.109102],[101.059548,17.512497],[101.035931,18.408928],[101.282015,19.462585],[100.606294,19.508344],[100.548881,20.109238],[100.115988,20.41785],[100.329101,20.786122],[101.180005,21.436573],[101.270026,21.201652],[101.80312,21.174367],[101.652018,22.318199],[102.170436,22.464753],[102.754896,21.675137],[103.203861,20.766562],[104.435,20.758733],[104.822574,19.886642],[104.183388,19.624668],[103.896532,19.265181],[105.094598,18.666975],[105.925762,17.485315],[106.556008,16.604284],[107.312706,15.908538],[107.564525,15.202173],[107.382727,14.202441],[106.496373,14.570584],[106.043946,13.881091],[105.218777,14.273212]]]}}, +{"type":"Feature","id":"LBN","properties":{"name":"Lebanon"},"geometry":{"type":"Polygon","coordinates":[[[35.821101,33.277426],[35.552797,33.264275],[35.460709,33.08904],[35.126053,33.0909],[35.482207,33.90545],[35.979592,34.610058],[35.998403,34.644914],[36.448194,34.593935],[36.61175,34.201789],[36.06646,33.824912],[35.821101,33.277426]]]}}, +{"type":"Feature","id":"LBR","properties":{"name":"Liberia"},"geometry":{"type":"Polygon","coordinates":[[[-7.712159,4.364566],[-7.974107,4.355755],[-9.004794,4.832419],[-9.91342,5.593561],[-10.765384,6.140711],[-11.438779,6.785917],[-11.199802,7.105846],[-11.146704,7.396706],[-10.695595,7.939464],[-10.230094,8.406206],[-10.016567,8.428504],[-9.755342,8.541055],[-9.33728,7.928534],[-9.403348,7.526905],[-9.208786,7.313921],[-8.926065,7.309037],[-8.722124,7.711674],[-8.439298,7.686043],[-8.485446,7.395208],[-8.385452,6.911801],[-8.60288,6.467564],[-8.311348,6.193033],[-7.993693,6.12619],[-7.570153,5.707352],[-7.539715,5.313345],[-7.635368,5.188159],[-7.712159,4.364566]]]}}, +{"type":"Feature","id":"LBY","properties":{"name":"Libya"},"geometry":{"type":"Polygon","coordinates":[[[14.8513,22.86295],[14.143871,22.491289],[13.581425,23.040506],[11.999506,23.471668],[11.560669,24.097909],[10.771364,24.562532],[10.303847,24.379313],[9.948261,24.936954],[9.910693,25.365455],[9.319411,26.094325],[9.716286,26.512206],[9.629056,27.140953],[9.756128,27.688259],[9.683885,28.144174],[9.859998,28.95999],[9.805634,29.424638],[9.48214,30.307556],[9.970017,30.539325],[10.056575,30.961831],[9.950225,31.37607],[10.636901,31.761421],[10.94479,32.081815],[11.432253,32.368903],[11.488787,33.136996],[12.66331,32.79278],[13.08326,32.87882],[13.91868,32.71196],[15.24563,32.26508],[15.71394,31.37626],[16.61162,31.18218],[18.02109,30.76357],[19.08641,30.26639],[19.57404,30.52582],[20.05335,30.98576],[19.82033,31.75179],[20.13397,32.2382],[20.85452,32.7068],[21.54298,32.8432],[22.89576,32.63858],[23.2368,32.19149],[23.60913,32.18726],[23.9275,32.01667],[24.92114,31.89936],[25.16482,31.56915],[24.80287,31.08929],[24.95762,30.6616],[24.70007,30.04419],[25,29.238655],[25,25.6825],[25,22],[25,20.00304],[23.85,20],[23.83766,19.58047],[19.84926,21.49509],[15.86085,23.40972],[14.8513,22.86295]]]}}, +{"type":"Feature","id":"LKA","properties":{"name":"Sri Lanka"},"geometry":{"type":"Polygon","coordinates":[[[81.787959,7.523055],[81.637322,6.481775],[81.21802,6.197141],[80.348357,5.96837],[79.872469,6.763463],[79.695167,8.200843],[80.147801,9.824078],[80.838818,9.268427],[81.304319,8.564206],[81.787959,7.523055]]]}}, +{"type":"Feature","id":"LSO","properties":{"name":"Lesotho"},"geometry":{"type":"Polygon","coordinates":[[[28.978263,-28.955597],[29.325166,-29.257387],[29.018415,-29.743766],[28.8484,-30.070051],[28.291069,-30.226217],[28.107205,-30.545732],[27.749397,-30.645106],[26.999262,-29.875954],[27.532511,-29.242711],[28.074338,-28.851469],[28.5417,-28.647502],[28.978263,-28.955597]]]}}, +{"type":"Feature","id":"LTU","properties":{"name":"Lithuania"},"geometry":{"type":"Polygon","coordinates":[[[22.731099,54.327537],[22.651052,54.582741],[22.757764,54.856574],[22.315724,55.015299],[21.268449,55.190482],[21.0558,56.031076],[22.201157,56.337802],[23.878264,56.273671],[24.860684,56.372528],[25.000934,56.164531],[25.533047,56.100297],[26.494331,55.615107],[26.588279,55.167176],[25.768433,54.846963],[25.536354,54.282423],[24.450684,53.905702],[23.484128,53.912498],[23.243987,54.220567],[22.731099,54.327537]]]}}, +{"type":"Feature","id":"LUX","properties":{"name":"Luxembourg"},"geometry":{"type":"Polygon","coordinates":[[[6.043073,50.128052],[6.242751,49.902226],[6.18632,49.463803],[5.897759,49.442667],[5.674052,49.529484],[5.782417,50.090328],[6.043073,50.128052]]]}}, +{"type":"Feature","id":"LVA","properties":{"name":"Latvia"},"geometry":{"type":"Polygon","coordinates":[[[21.0558,56.031076],[21.090424,56.783873],[21.581866,57.411871],[22.524341,57.753374],[23.318453,57.006236],[24.12073,57.025693],[24.312863,57.793424],[25.164594,57.970157],[25.60281,57.847529],[26.463532,57.476389],[27.288185,57.474528],[27.770016,57.244258],[27.855282,56.759326],[28.176709,56.16913],[27.10246,55.783314],[26.494331,55.615107],[25.533047,56.100297],[25.000934,56.164531],[24.860684,56.372528],[23.878264,56.273671],[22.201157,56.337802],[21.0558,56.031076]]]}}, +{"type":"Feature","id":"MAR","properties":{"name":"Morocco"},"geometry":{"type":"Polygon","coordinates":[[[-5.193863,35.755182],[-4.591006,35.330712],[-3.640057,35.399855],[-2.604306,35.179093],[-2.169914,35.168396],[-1.792986,34.527919],[-1.733455,33.919713],[-1.388049,32.864015],[-1.124551,32.651522],[-1.307899,32.262889],[-2.616605,32.094346],[-3.06898,31.724498],[-3.647498,31.637294],[-3.690441,30.896952],[-4.859646,30.501188],[-5.242129,30.000443],[-6.060632,29.7317],[-7.059228,29.579228],[-8.674116,28.841289],[-8.66559,27.656426],[-8.817809,27.656426],[-8.817828,27.656426],[-8.794884,27.120696],[-9.413037,27.088476],[-9.735343,26.860945],[-10.189424,26.860945],[-10.551263,26.990808],[-11.392555,26.883424],[-11.71822,26.104092],[-12.030759,26.030866],[-12.500963,24.770116],[-13.89111,23.691009],[-14.221168,22.310163],[-14.630833,21.86094],[-14.750955,21.5006],[-17.002962,21.420734],[-17.020428,21.42231],[-16.973248,21.885745],[-16.589137,22.158234],[-16.261922,22.67934],[-16.326414,23.017768],[-15.982611,23.723358],[-15.426004,24.359134],[-15.089332,24.520261],[-14.824645,25.103533],[-14.800926,25.636265],[-14.43994,26.254418],[-13.773805,26.618892],[-13.139942,27.640148],[-13.121613,27.654148],[-12.618837,28.038186],[-11.688919,28.148644],[-10.900957,28.832142],[-10.399592,29.098586],[-9.564811,29.933574],[-9.814718,31.177736],[-9.434793,32.038096],[-9.300693,32.564679],[-8.657476,33.240245],[-7.654178,33.697065],[-6.912544,34.110476],[-6.244342,35.145865],[-5.929994,35.759988],[-5.193863,35.755182]]]}}, +{"type":"Feature","id":"MDA","properties":{"name":"Moldova"},"geometry":{"type":"Polygon","coordinates":[[[26.619337,48.220726],[26.857824,48.368211],[27.522537,48.467119],[28.259547,48.155562],[28.670891,48.118149],[29.122698,47.849095],[29.050868,47.510227],[29.415135,47.346645],[29.559674,46.928583],[29.908852,46.674361],[29.83821,46.525326],[30.024659,46.423937],[29.759972,46.349988],[29.170654,46.379262],[29.072107,46.517678],[28.862972,46.437889],[28.933717,46.25883],[28.659987,45.939987],[28.485269,45.596907],[28.233554,45.488283],[28.054443,45.944586],[28.160018,46.371563],[28.12803,46.810476],[27.551166,47.405117],[27.233873,47.826771],[26.924176,48.123264],[26.619337,48.220726]]]}}, +{"type":"Feature","id":"MDG","properties":{"name":"Madagascar"},"geometry":{"type":"Polygon","coordinates":[[[49.543519,-12.469833],[49.808981,-12.895285],[50.056511,-13.555761],[50.217431,-14.758789],[50.476537,-15.226512],[50.377111,-15.706069],[50.200275,-16.000263],[49.860606,-15.414253],[49.672607,-15.710204],[49.863344,-16.451037],[49.774564,-16.875042],[49.498612,-17.106036],[49.435619,-17.953064],[49.041792,-19.118781],[48.548541,-20.496888],[47.930749,-22.391501],[47.547723,-23.781959],[47.095761,-24.94163],[46.282478,-25.178463],[45.409508,-25.601434],[44.833574,-25.346101],[44.03972,-24.988345],[43.763768,-24.460677],[43.697778,-23.574116],[43.345654,-22.776904],[43.254187,-22.057413],[43.433298,-21.336475],[43.893683,-21.163307],[43.89637,-20.830459],[44.374325,-20.072366],[44.464397,-19.435454],[44.232422,-18.961995],[44.042976,-18.331387],[43.963084,-17.409945],[44.312469,-16.850496],[44.446517,-16.216219],[44.944937,-16.179374],[45.502732,-15.974373],[45.872994,-15.793454],[46.312243,-15.780018],[46.882183,-15.210182],[47.70513,-14.594303],[48.005215,-14.091233],[47.869047,-13.663869],[48.293828,-13.784068],[48.84506,-13.089175],[48.863509,-12.487868],[49.194651,-12.040557],[49.543519,-12.469833]]]}}, +{"type":"Feature","id":"MEX","properties":{"name":"Mexico"},"geometry":{"type":"Polygon","coordinates":[[[-97.140008,25.869997],[-97.528072,24.992144],[-97.702946,24.272343],[-97.776042,22.93258],[-97.872367,22.444212],[-97.699044,21.898689],[-97.38896,21.411019],[-97.189333,20.635433],[-96.525576,19.890931],[-96.292127,19.320371],[-95.900885,18.828024],[-94.839063,18.562717],[-94.42573,18.144371],[-93.548651,18.423837],[-92.786114,18.524839],[-92.037348,18.704569],[-91.407903,18.876083],[-90.77187,19.28412],[-90.53359,19.867418],[-90.451476,20.707522],[-90.278618,20.999855],[-89.601321,21.261726],[-88.543866,21.493675],[-87.658417,21.458846],[-87.05189,21.543543],[-86.811982,21.331515],[-86.845908,20.849865],[-87.383291,20.255405],[-87.621054,19.646553],[-87.43675,19.472403],[-87.58656,19.04013],[-87.837191,18.259816],[-88.090664,18.516648],[-88.300031,18.499982],[-88.490123,18.486831],[-88.848344,17.883198],[-89.029857,18.001511],[-89.150909,17.955468],[-89.14308,17.808319],[-90.067934,17.819326],[-91.00152,17.817595],[-91.002269,17.254658],[-91.453921,17.252177],[-91.08167,16.918477],[-90.711822,16.687483],[-90.600847,16.470778],[-90.438867,16.41011],[-90.464473,16.069562],[-91.74796,16.066565],[-92.229249,15.251447],[-92.087216,15.064585],[-92.20323,14.830103],[-92.22775,14.538829],[-93.359464,15.61543],[-93.875169,15.940164],[-94.691656,16.200975],[-95.250227,16.128318],[-96.053382,15.752088],[-96.557434,15.653515],[-97.263592,15.917065],[-98.01303,16.107312],[-98.947676,16.566043],[-99.697397,16.706164],[-100.829499,17.171071],[-101.666089,17.649026],[-101.918528,17.91609],[-102.478132,17.975751],[-103.50099,18.292295],[-103.917527,18.748572],[-104.99201,19.316134],[-105.493038,19.946767],[-105.731396,20.434102],[-105.397773,20.531719],[-105.500661,20.816895],[-105.270752,21.076285],[-105.265817,21.422104],[-105.603161,21.871146],[-105.693414,22.26908],[-106.028716,22.773752],[-106.90998,23.767774],[-107.915449,24.548915],[-108.401905,25.172314],[-109.260199,25.580609],[-109.444089,25.824884],[-109.291644,26.442934],[-109.801458,26.676176],[-110.391732,27.162115],[-110.641019,27.859876],[-111.178919,27.941241],[-111.759607,28.467953],[-112.228235,28.954409],[-112.271824,29.266844],[-112.809594,30.021114],[-113.163811,30.786881],[-113.148669,31.170966],[-113.871881,31.567608],[-114.205737,31.524045],[-114.776451,31.799532],[-114.9367,31.393485],[-114.771232,30.913617],[-114.673899,30.162681],[-114.330974,29.750432],[-113.588875,29.061611],[-113.424053,28.826174],[-113.271969,28.754783],[-113.140039,28.411289],[-112.962298,28.42519],[-112.761587,27.780217],[-112.457911,27.525814],[-112.244952,27.171727],[-111.616489,26.662817],[-111.284675,25.73259],[-110.987819,25.294606],[-110.710007,24.826004],[-110.655049,24.298595],[-110.172856,24.265548],[-109.771847,23.811183],[-109.409104,23.364672],[-109.433392,23.185588],[-109.854219,22.818272],[-110.031392,22.823078],[-110.295071,23.430973],[-110.949501,24.000964],[-111.670568,24.484423],[-112.182036,24.738413],[-112.148989,25.470125],[-112.300711,26.012004],[-112.777297,26.32196],[-113.464671,26.768186],[-113.59673,26.63946],[-113.848937,26.900064],[-114.465747,27.14209],[-115.055142,27.722727],[-114.982253,27.7982],[-114.570366,27.741485],[-114.199329,28.115003],[-114.162018,28.566112],[-114.931842,29.279479],[-115.518654,29.556362],[-115.887365,30.180794],[-116.25835,30.836464],[-116.721526,31.635744],[-117.12776,32.53534],[-115.99135,32.61239],[-114.72139,32.72083],[-114.815,32.52528],[-113.30498,32.03914],[-111.02361,31.33472],[-109.035,31.34194],[-108.24194,31.34222],[-108.24,31.754854],[-106.50759,31.75452],[-106.1429,31.39995],[-105.63159,31.08383],[-105.03737,30.64402],[-104.70575,30.12173],[-104.45697,29.57196],[-103.94,29.27],[-103.11,28.97],[-102.48,29.76],[-101.6624,29.7793],[-100.9576,29.38071],[-100.45584,28.69612],[-100.11,28.11],[-99.52,27.54],[-99.3,26.84],[-99.02,26.37],[-98.24,26.06],[-97.53,25.84],[-97.140008,25.869997]]]}}, +{"type":"Feature","id":"MKD","properties":{"name":"Macedonia"},"geometry":{"type":"Polygon","coordinates":[[[20.59023,41.85541],[20.71731,41.84711],[20.76216,42.05186],[21.3527,42.2068],[21.576636,42.245224],[21.91708,42.30364],[22.380526,42.32026],[22.881374,41.999297],[22.952377,41.337994],[22.76177,41.3048],[22.597308,41.130487],[22.055378,41.149866],[21.674161,40.931275],[21.02004,40.842727],[20.60518,41.08622],[20.46315,41.51509],[20.59023,41.85541]]]}}, +{"type":"Feature","id":"MLI","properties":{"name":"Mali"},"geometry":{"type":"Polygon","coordinates":[[[-12.17075,14.616834],[-11.834208,14.799097],[-11.666078,15.388208],[-11.349095,15.411256],[-10.650791,15.132746],[-10.086846,15.330486],[-9.700255,15.264107],[-9.550238,15.486497],[-5.537744,15.50169],[-5.315277,16.201854],[-5.488523,16.325102],[-5.971129,20.640833],[-6.453787,24.956591],[-4.923337,24.974574],[-1.550055,22.792666],[1.823228,20.610809],[2.060991,20.142233],[2.683588,19.85623],[3.146661,19.693579],[3.158133,19.057364],[4.267419,19.155265],[4.27021,16.852227],[3.723422,16.184284],[3.638259,15.56812],[2.749993,15.409525],[1.385528,15.323561],[1.015783,14.968182],[0.374892,14.928908],[-0.266257,14.924309],[-0.515854,15.116158],[-1.066363,14.973815],[-2.001035,14.559008],[-2.191825,14.246418],[-2.967694,13.79815],[-3.103707,13.541267],[-3.522803,13.337662],[-4.006391,13.472485],[-4.280405,13.228444],[-4.427166,12.542646],[-5.220942,11.713859],[-5.197843,11.375146],[-5.470565,10.95127],[-5.404342,10.370737],[-5.816926,10.222555],[-6.050452,10.096361],[-6.205223,10.524061],[-6.493965,10.411303],[-6.666461,10.430811],[-6.850507,10.138994],[-7.622759,10.147236],[-7.89959,10.297382],[-8.029944,10.206535],[-8.335377,10.494812],[-8.282357,10.792597],[-8.407311,10.909257],[-8.620321,10.810891],[-8.581305,11.136246],[-8.376305,11.393646],[-8.786099,11.812561],[-8.905265,12.088358],[-9.127474,12.30806],[-9.327616,12.334286],[-9.567912,12.194243],[-9.890993,12.060479],[-10.165214,11.844084],[-10.593224,11.923975],[-10.87083,12.177887],[-11.036556,12.211245],[-11.297574,12.077971],[-11.456169,12.076834],[-11.513943,12.442988],[-11.467899,12.754519],[-11.553398,13.141214],[-11.927716,13.422075],[-12.124887,13.994727],[-12.17075,14.616834]]]}}, +{"type":"Feature","id":"MMR","properties":{"name":"Myanmar"},"geometry":{"type":"Polygon","coordinates":[[[99.543309,20.186598],[98.959676,19.752981],[98.253724,19.708203],[97.797783,18.62708],[97.375896,18.445438],[97.859123,17.567946],[98.493761,16.837836],[98.903348,16.177824],[98.537376,15.308497],[98.192074,15.123703],[98.430819,14.622028],[99.097755,13.827503],[99.212012,13.269294],[99.196354,12.804748],[99.587286,11.892763],[99.038121,10.960546],[98.553551,9.93296],[98.457174,10.675266],[98.764546,11.441292],[98.428339,12.032987],[98.509574,13.122378],[98.103604,13.64046],[97.777732,14.837286],[97.597072,16.100568],[97.16454,16.928734],[96.505769,16.427241],[95.369352,15.71439],[94.808405,15.803454],[94.188804,16.037936],[94.533486,17.27724],[94.324817,18.213514],[93.540988,19.366493],[93.663255,19.726962],[93.078278,19.855145],[92.368554,20.670883],[92.303234,21.475485],[92.652257,21.324048],[92.672721,22.041239],[93.166128,22.27846],[93.060294,22.703111],[93.286327,23.043658],[93.325188,24.078556],[94.106742,23.850741],[94.552658,24.675238],[94.603249,25.162495],[95.155153,26.001307],[95.124768,26.573572],[96.419366,27.264589],[97.133999,27.083774],[97.051989,27.699059],[97.402561,27.882536],[97.327114,28.261583],[97.911988,28.335945],[98.246231,27.747221],[98.68269,27.508812],[98.712094,26.743536],[98.671838,25.918703],[97.724609,25.083637],[97.60472,23.897405],[98.660262,24.063286],[98.898749,23.142722],[99.531992,22.949039],[99.240899,22.118314],[99.983489,21.742937],[100.416538,21.558839],[101.150033,21.849984],[101.180005,21.436573],[100.329101,20.786122],[100.115988,20.41785],[99.543309,20.186598]]]}}, +{"type":"Feature","id":"MNE","properties":{"name":"Montenegro"},"geometry":{"type":"Polygon","coordinates":[[[19.801613,42.500093],[19.738051,42.688247],[19.30449,42.19574],[19.37177,41.87755],[19.16246,41.95502],[18.88214,42.28151],[18.45,42.48],[18.56,42.65],[18.70648,43.20011],[19.03165,43.43253],[19.21852,43.52384],[19.48389,43.35229],[19.63,43.21378],[19.95857,43.10604],[20.3398,42.89852],[20.25758,42.81275],[20.0707,42.58863],[19.801613,42.500093]]]}}, +{"type":"Feature","id":"MNG","properties":{"name":"Mongolia"},"geometry":{"type":"Polygon","coordinates":[[[87.751264,49.297198],[88.805567,49.470521],[90.713667,50.331812],[92.234712,50.802171],[93.104219,50.49529],[94.147566,50.480537],[94.815949,50.013433],[95.814028,49.977467],[97.259728,49.726061],[98.231762,50.422401],[97.82574,51.010995],[98.861491,52.047366],[99.981732,51.634006],[100.88948,51.516856],[102.065223,51.259921],[102.255909,50.510561],[103.676545,50.089966],[104.621552,50.275329],[105.886591,50.406019],[106.888804,50.274296],[107.868176,49.793705],[108.475167,49.282548],[109.402449,49.292961],[110.662011,49.130128],[111.581231,49.377968],[112.89774,49.543565],[114.362456,50.248303],[114.96211,50.140247],[115.485695,49.805177],[116.678801,49.888531],[116.191802,49.134598],[115.485282,48.135383],[115.742837,47.726545],[116.308953,47.85341],[117.295507,47.697709],[118.064143,48.06673],[118.866574,47.74706],[119.772824,47.048059],[119.66327,46.69268],[118.874326,46.805412],[117.421701,46.672733],[116.717868,46.388202],[115.985096,45.727235],[114.460332,45.339817],[113.463907,44.808893],[112.436062,45.011646],[111.873306,45.102079],[111.348377,44.457442],[111.667737,44.073176],[111.829588,43.743118],[111.129682,43.406834],[110.412103,42.871234],[109.243596,42.519446],[107.744773,42.481516],[106.129316,42.134328],[104.964994,41.59741],[104.522282,41.908347],[103.312278,41.907468],[101.83304,42.514873],[100.845866,42.663804],[99.515817,42.524691],[97.451757,42.74889],[96.349396,42.725635],[95.762455,43.319449],[95.306875,44.241331],[94.688929,44.352332],[93.480734,44.975472],[92.133891,45.115076],[90.94554,45.286073],[90.585768,45.719716],[90.970809,46.888146],[90.280826,47.693549],[88.854298,48.069082],[88.013832,48.599463],[87.751264,49.297198]]]}}, +{"type":"Feature","id":"MOZ","properties":{"name":"Mozambique"},"geometry":{"type":"Polygon","coordinates":[[[34.559989,-11.52002],[35.312398,-11.439146],[36.514082,-11.720938],[36.775151,-11.594537],[37.471284,-11.568751],[37.827645,-11.268769],[38.427557,-11.285202],[39.52103,-10.896854],[40.316589,-10.317096],[40.478387,-10.765441],[40.437253,-11.761711],[40.560811,-12.639177],[40.59962,-14.201975],[40.775475,-14.691764],[40.477251,-15.406294],[40.089264,-16.100774],[39.452559,-16.720891],[38.538351,-17.101023],[37.411133,-17.586368],[36.281279,-18.659688],[35.896497,-18.84226],[35.1984,-19.552811],[34.786383,-19.784012],[34.701893,-20.497043],[35.176127,-21.254361],[35.373428,-21.840837],[35.385848,-22.14],[35.562546,-22.09],[35.533935,-23.070788],[35.371774,-23.535359],[35.60747,-23.706563],[35.458746,-24.12261],[35.040735,-24.478351],[34.215824,-24.816314],[33.01321,-25.357573],[32.574632,-25.727318],[32.660363,-26.148584],[32.915955,-26.215867],[32.83012,-26.742192],[32.071665,-26.73382],[31.985779,-26.29178],[31.837778,-25.843332],[31.752408,-25.484284],[31.930589,-24.369417],[31.670398,-23.658969],[31.191409,-22.25151],[32.244988,-21.116489],[32.508693,-20.395292],[32.659743,-20.30429],[32.772708,-19.715592],[32.611994,-19.419383],[32.654886,-18.67209],[32.849861,-17.979057],[32.847639,-16.713398],[32.328239,-16.392074],[31.852041,-16.319417],[31.636498,-16.07199],[31.173064,-15.860944],[30.338955,-15.880839],[30.274256,-15.507787],[30.179481,-14.796099],[33.214025,-13.97186],[33.7897,-14.451831],[34.064825,-14.35995],[34.459633,-14.61301],[34.517666,-15.013709],[34.307291,-15.478641],[34.381292,-16.18356],[35.03381,-16.8013],[35.339063,-16.10744],[35.771905,-15.896859],[35.686845,-14.611046],[35.267956,-13.887834],[34.907151,-13.565425],[34.559989,-13.579998],[34.280006,-12.280025],[34.559989,-11.52002]]]}}, +{"type":"Feature","id":"MRT","properties":{"name":"Mauritania"},"geometry":{"type":"Polygon","coordinates":[[[-12.17075,14.616834],[-12.830658,15.303692],[-13.435738,16.039383],[-14.099521,16.304302],[-14.577348,16.598264],[-15.135737,16.587282],[-15.623666,16.369337],[-16.12069,16.455663],[-16.463098,16.135036],[-16.549708,16.673892],[-16.270552,17.166963],[-16.146347,18.108482],[-16.256883,19.096716],[-16.377651,19.593817],[-16.277838,20.092521],[-16.536324,20.567866],[-17.063423,20.999752],[-16.845194,21.333323],[-12.929102,21.327071],[-13.118754,22.77122],[-12.874222,23.284832],[-11.937224,23.374594],[-11.969419,25.933353],[-8.687294,25.881056],[-8.6844,27.395744],[-4.923337,24.974574],[-6.453787,24.956591],[-5.971129,20.640833],[-5.488523,16.325102],[-5.315277,16.201854],[-5.537744,15.50169],[-9.550238,15.486497],[-9.700255,15.264107],[-10.086846,15.330486],[-10.650791,15.132746],[-11.349095,15.411256],[-11.666078,15.388208],[-11.834208,14.799097],[-12.17075,14.616834]]]}}, +{"type":"Feature","id":"MWI","properties":{"name":"Malawi"},"geometry":{"type":"Polygon","coordinates":[[[34.559989,-11.52002],[34.280006,-12.280025],[34.559989,-13.579998],[34.907151,-13.565425],[35.267956,-13.887834],[35.686845,-14.611046],[35.771905,-15.896859],[35.339063,-16.10744],[35.03381,-16.8013],[34.381292,-16.18356],[34.307291,-15.478641],[34.517666,-15.013709],[34.459633,-14.61301],[34.064825,-14.35995],[33.7897,-14.451831],[33.214025,-13.97186],[32.688165,-13.712858],[32.991764,-12.783871],[33.306422,-12.435778],[33.114289,-11.607198],[33.31531,-10.79655],[33.485688,-10.525559],[33.231388,-9.676722],[32.759375,-9.230599],[33.739729,-9.417151],[33.940838,-9.693674],[34.280006,-10.16],[34.559989,-11.52002]]]}}, +{"type":"Feature","id":"MYS","properties":{"name":"Malaysia"},"geometry":{"type":"MultiPolygon","coordinates":[[[[101.075516,6.204867],[101.154219,5.691384],[101.814282,5.810808],[102.141187,6.221636],[102.371147,6.128205],[102.961705,5.524495],[103.381215,4.855001],[103.438575,4.181606],[103.332122,3.726698],[103.429429,3.382869],[103.502448,2.791019],[103.854674,2.515454],[104.247932,1.631141],[104.228811,1.293048],[103.519707,1.226334],[102.573615,1.967115],[101.390638,2.760814],[101.27354,3.270292],[100.695435,3.93914],[100.557408,4.76728],[100.196706,5.312493],[100.30626,6.040562],[100.085757,6.464489],[100.259596,6.642825],[101.075516,6.204867]]],[[[118.618321,4.478202],[117.882035,4.137551],[117.015214,4.306094],[115.865517,4.306559],[115.519078,3.169238],[115.134037,2.821482],[114.621355,1.430688],[113.80585,1.217549],[112.859809,1.49779],[112.380252,1.410121],[111.797548,0.904441],[111.159138,0.976478],[110.514061,0.773131],[109.830227,1.338136],[109.66326,2.006467],[110.396135,1.663775],[111.168853,1.850637],[111.370081,2.697303],[111.796928,2.885897],[112.995615,3.102395],[113.712935,3.893509],[114.204017,4.525874],[114.659596,4.007637],[114.869557,4.348314],[115.347461,4.316636],[115.4057,4.955228],[115.45071,5.44773],[116.220741,6.143191],[116.725103,6.924771],[117.129626,6.928053],[117.643393,6.422166],[117.689075,5.98749],[118.347691,5.708696],[119.181904,5.407836],[119.110694,5.016128],[118.439727,4.966519],[118.618321,4.478202]]]]}}, +{"type":"Feature","id":"NAM","properties":{"name":"Namibia"},"geometry":{"type":"Polygon","coordinates":[[[16.344977,-28.576705],[15.601818,-27.821247],[15.210472,-27.090956],[14.989711,-26.117372],[14.743214,-25.39292],[14.408144,-23.853014],[14.385717,-22.656653],[14.257714,-22.111208],[13.868642,-21.699037],[13.352498,-20.872834],[12.826845,-19.673166],[12.608564,-19.045349],[11.794919,-18.069129],[11.734199,-17.301889],[12.215461,-17.111668],[12.814081,-16.941343],[13.462362,-16.971212],[14.058501,-17.423381],[14.209707,-17.353101],[18.263309,-17.309951],[18.956187,-17.789095],[21.377176,-17.930636],[23.215048,-17.523116],[24.033862,-17.295843],[24.682349,-17.353411],[25.07695,-17.578823],[25.084443,-17.661816],[24.520705,-17.887125],[24.217365,-17.889347],[23.579006,-18.281261],[23.196858,-17.869038],[21.65504,-18.219146],[20.910641,-18.252219],[20.881134,-21.814327],[19.895458,-21.849157],[19.895768,-24.76779],[19.894734,-28.461105],[19.002127,-28.972443],[18.464899,-29.045462],[17.836152,-28.856378],[17.387497,-28.783514],[17.218929,-28.355943],[16.824017,-28.082162],[16.344977,-28.576705]]]}}, +{"type":"Feature","id":"NCL","properties":{"name":"New Caledonia"},"geometry":{"type":"Polygon","coordinates":[[[165.77999,-21.080005],[166.599991,-21.700019],[167.120011,-22.159991],[166.740035,-22.399976],[166.189732,-22.129708],[165.474375,-21.679607],[164.829815,-21.14982],[164.167995,-20.444747],[164.029606,-20.105646],[164.459967,-20.120012],[165.020036,-20.459991],[165.460009,-20.800022],[165.77999,-21.080005]]]}}, +{"type":"Feature","id":"NER","properties":{"name":"Niger"},"geometry":{"type":"Polygon","coordinates":[[[2.154474,11.94015],[2.177108,12.625018],[1.024103,12.851826],[0.993046,13.33575],[0.429928,13.988733],[0.295646,14.444235],[0.374892,14.928908],[1.015783,14.968182],[1.385528,15.323561],[2.749993,15.409525],[3.638259,15.56812],[3.723422,16.184284],[4.27021,16.852227],[4.267419,19.155265],[5.677566,19.601207],[8.572893,21.565661],[11.999506,23.471668],[13.581425,23.040506],[14.143871,22.491289],[14.8513,22.86295],[15.096888,21.308519],[15.471077,21.048457],[15.487148,20.730415],[15.903247,20.387619],[15.685741,19.95718],[15.300441,17.92795],[15.247731,16.627306],[13.972202,15.684366],[13.540394,14.367134],[13.956699,13.996691],[13.954477,13.353449],[14.595781,13.330427],[14.495787,12.859396],[14.213531,12.802035],[14.181336,12.483657],[13.995353,12.461565],[13.318702,13.556356],[13.083987,13.596147],[12.302071,13.037189],[11.527803,13.32898],[10.989593,13.387323],[10.701032,13.246918],[10.114814,13.277252],[9.524928,12.851102],[9.014933,12.826659],[7.804671,13.343527],[7.330747,13.098038],[6.820442,13.115091],[6.445426,13.492768],[5.443058,13.865924],[4.368344,13.747482],[4.107946,13.531216],[3.967283,12.956109],[3.680634,12.552903],[3.61118,11.660167],[2.848643,12.235636],[2.490164,12.233052],[2.154474,11.94015]]]}}, +{"type":"Feature","id":"NGA","properties":{"name":"Nigeria"},"geometry":{"type":"Polygon","coordinates":[[[8.500288,4.771983],[7.462108,4.412108],[7.082596,4.464689],[6.698072,4.240594],[5.898173,4.262453],[5.362805,4.887971],[5.033574,5.611802],[4.325607,6.270651],[3.57418,6.2583],[2.691702,6.258817],[2.749063,7.870734],[2.723793,8.506845],[2.912308,9.137608],[3.220352,9.444153],[3.705438,10.06321],[3.60007,10.332186],[3.797112,10.734746],[3.572216,11.327939],[3.61118,11.660167],[3.680634,12.552903],[3.967283,12.956109],[4.107946,13.531216],[4.368344,13.747482],[5.443058,13.865924],[6.445426,13.492768],[6.820442,13.115091],[7.330747,13.098038],[7.804671,13.343527],[9.014933,12.826659],[9.524928,12.851102],[10.114814,13.277252],[10.701032,13.246918],[10.989593,13.387323],[11.527803,13.32898],[12.302071,13.037189],[13.083987,13.596147],[13.318702,13.556356],[13.995353,12.461565],[14.181336,12.483657],[14.577178,12.085361],[14.468192,11.904752],[14.415379,11.572369],[13.57295,10.798566],[13.308676,10.160362],[13.1676,9.640626],[12.955468,9.417772],[12.753672,8.717763],[12.218872,8.305824],[12.063946,7.799808],[11.839309,7.397042],[11.745774,6.981383],[11.058788,6.644427],[10.497375,7.055358],[10.118277,7.03877],[9.522706,6.453482],[9.233163,6.444491],[8.757533,5.479666],[8.500288,4.771983]]]}}, +{"type":"Feature","id":"NIC","properties":{"name":"Nicaragua"},"geometry":{"type":"Polygon","coordinates":[[[-85.71254,11.088445],[-86.058488,11.403439],[-86.52585,11.806877],[-86.745992,12.143962],[-87.167516,12.458258],[-87.668493,12.90991],[-87.557467,13.064552],[-87.392386,12.914018],[-87.316654,12.984686],[-87.005769,13.025794],[-86.880557,13.254204],[-86.733822,13.263093],[-86.755087,13.754845],[-86.520708,13.778487],[-86.312142,13.771356],[-86.096264,14.038187],[-85.801295,13.836055],[-85.698665,13.960078],[-85.514413,14.079012],[-85.165365,14.35437],[-85.148751,14.560197],[-85.052787,14.551541],[-84.924501,14.790493],[-84.820037,14.819587],[-84.649582,14.666805],[-84.449336,14.621614],[-84.228342,14.748764],[-83.975721,14.749436],[-83.628585,14.880074],[-83.489989,15.016267],[-83.147219,14.995829],[-83.233234,14.899866],[-83.284162,14.676624],[-83.182126,14.310703],[-83.4125,13.970078],[-83.519832,13.567699],[-83.552207,13.127054],[-83.498515,12.869292],[-83.473323,12.419087],[-83.626104,12.32085],[-83.719613,11.893124],[-83.650858,11.629032],[-83.85547,11.373311],[-83.808936,11.103044],[-83.655612,10.938764],[-83.895054,10.726839],[-84.190179,10.79345],[-84.355931,10.999226],[-84.673069,11.082657],[-84.903003,10.952303],[-85.561852,11.217119],[-85.71254,11.088445]]]}}, +{"type":"Feature","id":"NLD","properties":{"name":"Netherlands"},"geometry":{"type":"Polygon","coordinates":[[[6.074183,53.510403],[6.90514,53.482162],[7.092053,53.144043],[6.84287,52.22844],[6.589397,51.852029],[5.988658,51.851616],[6.156658,50.803721],[5.606976,51.037298],[4.973991,51.475024],[4.047071,51.267259],[3.314971,51.345755],[3.830289,51.620545],[4.705997,53.091798],[6.074183,53.510403]]]}}, +{"type":"Feature","id":"NOR","properties":{"name":"Norway"},"geometry":{"type":"MultiPolygon","coordinates":[[[[28.165547,71.185474],[31.293418,70.453788],[30.005435,70.186259],[31.101079,69.55808],[29.399581,69.156916],[28.59193,69.064777],[29.015573,69.766491],[27.732292,70.164193],[26.179622,69.825299],[25.689213,69.092114],[24.735679,68.649557],[23.66205,68.891247],[22.356238,68.841741],[21.244936,69.370443],[20.645593,69.106247],[20.025269,69.065139],[19.87856,68.407194],[17.993868,68.567391],[17.729182,68.010552],[16.768879,68.013937],[16.108712,67.302456],[15.108411,66.193867],[13.55569,64.787028],[13.919905,64.445421],[13.571916,64.049114],[12.579935,64.066219],[11.930569,63.128318],[11.992064,61.800362],[12.631147,61.293572],[12.300366,60.117933],[11.468272,59.432393],[11.027369,58.856149],[10.356557,59.469807],[8.382,58.313288],[7.048748,58.078884],[5.665835,58.588155],[5.308234,59.663232],[4.992078,61.970998],[5.9129,62.614473],[8.553411,63.454008],[10.527709,64.486038],[12.358347,65.879726],[14.761146,67.810642],[16.435927,68.563205],[19.184028,69.817444],[21.378416,70.255169],[23.023742,70.202072],[24.546543,71.030497],[26.37005,70.986262],[28.165547,71.185474]]],[[[24.72412,77.85385],[22.49032,77.44493],[20.72601,77.67704],[21.41611,77.93504],[20.8119,78.25463],[22.88426,78.45494],[23.28134,78.07954],[24.72412,77.85385]]],[[[18.25183,79.70175],[21.54383,78.95611],[19.02737,78.5626],[18.47172,77.82669],[17.59441,77.63796],[17.1182,76.80941],[15.91315,76.77045],[13.76259,77.38035],[14.66956,77.73565],[13.1706,78.02493],[11.22231,78.8693],[10.44453,79.65239],[13.17077,80.01046],[13.71852,79.66039],[15.14282,79.67431],[15.52255,80.01608],[16.99085,80.05086],[18.25183,79.70175]]],[[[25.447625,80.40734],[27.407506,80.056406],[25.924651,79.517834],[23.024466,79.400012],[20.075188,79.566823],[19.897266,79.842362],[18.462264,79.85988],[17.368015,80.318896],[20.455992,80.598156],[21.907945,80.357679],[22.919253,80.657144],[25.447625,80.40734]]]]}}, +{"type":"Feature","id":"NPL","properties":{"name":"Nepal"},"geometry":{"type":"Polygon","coordinates":[[[88.120441,27.876542],[88.043133,27.445819],[88.174804,26.810405],[88.060238,26.414615],[87.227472,26.397898],[86.024393,26.630985],[85.251779,26.726198],[84.675018,27.234901],[83.304249,27.364506],[81.999987,27.925479],[81.057203,28.416095],[80.088425,28.79447],[80.476721,29.729865],[81.111256,30.183481],[81.525804,30.422717],[82.327513,30.115268],[83.337115,29.463732],[83.898993,29.320226],[84.23458,28.839894],[85.011638,28.642774],[85.82332,28.203576],[86.954517,27.974262],[88.120441,27.876542]]]}}, +{"type":"Feature","id":"NZL","properties":{"name":"New Zealand"},"geometry":{"type":"MultiPolygon","coordinates":[[[[173.020375,-40.919052],[173.247234,-41.331999],[173.958405,-40.926701],[174.247587,-41.349155],[174.248517,-41.770008],[173.876447,-42.233184],[173.22274,-42.970038],[172.711246,-43.372288],[173.080113,-43.853344],[172.308584,-43.865694],[171.452925,-44.242519],[171.185138,-44.897104],[170.616697,-45.908929],[169.831422,-46.355775],[169.332331,-46.641235],[168.411354,-46.619945],[167.763745,-46.290197],[166.676886,-46.219917],[166.509144,-45.852705],[167.046424,-45.110941],[168.303763,-44.123973],[168.949409,-43.935819],[169.667815,-43.555326],[170.52492,-43.031688],[171.12509,-42.512754],[171.569714,-41.767424],[171.948709,-41.514417],[172.097227,-40.956104],[172.79858,-40.493962],[173.020375,-40.919052]]],[[[174.612009,-36.156397],[175.336616,-37.209098],[175.357596,-36.526194],[175.808887,-36.798942],[175.95849,-37.555382],[176.763195,-37.881253],[177.438813,-37.961248],[178.010354,-37.579825],[178.517094,-37.695373],[178.274731,-38.582813],[177.97046,-39.166343],[177.206993,-39.145776],[176.939981,-39.449736],[177.032946,-39.879943],[176.885824,-40.065978],[176.508017,-40.604808],[176.01244,-41.289624],[175.239567,-41.688308],[175.067898,-41.425895],[174.650973,-41.281821],[175.22763,-40.459236],[174.900157,-39.908933],[173.824047,-39.508854],[173.852262,-39.146602],[174.574802,-38.797683],[174.743474,-38.027808],[174.697017,-37.381129],[174.292028,-36.711092],[174.319004,-36.534824],[173.840997,-36.121981],[173.054171,-35.237125],[172.636005,-34.529107],[173.007042,-34.450662],[173.551298,-35.006183],[174.32939,-35.265496],[174.612009,-36.156397]]]]}}, +{"type":"Feature","id":"OMN","properties":{"name":"Oman"},"geometry":{"type":"MultiPolygon","coordinates":[[[[58.861141,21.114035],[58.487986,20.428986],[58.034318,20.481437],[57.826373,20.243002],[57.665762,19.736005],[57.7887,19.06757],[57.694391,18.94471],[57.234264,18.947991],[56.609651,18.574267],[56.512189,18.087113],[56.283521,17.876067],[55.661492,17.884128],[55.269939,17.632309],[55.2749,17.228354],[54.791002,16.950697],[54.239253,17.044981],[53.570508,16.707663],[53.108573,16.651051],[52.782184,17.349742],[52.00001,19.000003],[54.999982,19.999994],[55.666659,22.000001],[55.208341,22.70833],[55.234489,23.110993],[55.525841,23.524869],[55.528632,23.933604],[55.981214,24.130543],[55.804119,24.269604],[55.886233,24.920831],[56.396847,24.924732],[56.84514,24.241673],[57.403453,23.878594],[58.136948,23.747931],[58.729211,23.565668],[59.180502,22.992395],[59.450098,22.660271],[59.80806,22.533612],[59.806148,22.310525],[59.442191,21.714541],[59.282408,21.433886],[58.861141,21.114035]]],[[[56.391421,25.895991],[56.261042,25.714606],[56.070821,26.055464],[56.362017,26.395934],[56.485679,26.309118],[56.391421,25.895991]]]]}}, +{"type":"Feature","id":"PAK","properties":{"name":"Pakistan"},"geometry":{"type":"Polygon","coordinates":[[[75.158028,37.133031],[75.896897,36.666806],[76.192848,35.898403],[77.837451,35.49401],[76.871722,34.653544],[75.757061,34.504923],[74.240203,34.748887],[73.749948,34.317699],[74.104294,33.441473],[74.451559,32.7649],[75.258642,32.271105],[74.405929,31.692639],[74.42138,30.979815],[73.450638,29.976413],[72.823752,28.961592],[71.777666,27.91318],[70.616496,27.989196],[69.514393,26.940966],[70.168927,26.491872],[70.282873,25.722229],[70.844699,25.215102],[71.04324,24.356524],[68.842599,24.359134],[68.176645,23.691965],[67.443667,23.944844],[67.145442,24.663611],[66.372828,25.425141],[64.530408,25.237039],[62.905701,25.218409],[61.497363,25.078237],[61.874187,26.239975],[63.316632,26.756532],[63.233898,27.217047],[62.755426,27.378923],[62.72783,28.259645],[61.771868,28.699334],[61.369309,29.303276],[60.874248,29.829239],[62.549857,29.318572],[63.550261,29.468331],[64.148002,29.340819],[64.350419,29.560031],[65.046862,29.472181],[66.346473,29.887943],[66.381458,30.738899],[66.938891,31.304911],[67.683394,31.303154],[67.792689,31.58293],[68.556932,31.71331],[68.926677,31.620189],[69.317764,31.901412],[69.262522,32.501944],[69.687147,33.105499],[70.323594,33.358533],[69.930543,34.02012],[70.881803,33.988856],[71.156773,34.348911],[71.115019,34.733126],[71.613076,35.153203],[71.498768,35.650563],[71.262348,36.074388],[71.846292,36.509942],[72.920025,36.720007],[74.067552,36.836176],[74.575893,37.020841],[75.158028,37.133031]]]}}, +{"type":"Feature","id":"PAN","properties":{"name":"Panama"},"geometry":{"type":"Polygon","coordinates":[[[-77.881571,7.223771],[-78.214936,7.512255],[-78.429161,8.052041],[-78.182096,8.319182],[-78.435465,8.387705],[-78.622121,8.718124],[-79.120307,8.996092],[-79.557877,8.932375],[-79.760578,8.584515],[-80.164481,8.333316],[-80.382659,8.298409],[-80.480689,8.090308],[-80.00369,7.547524],[-80.276671,7.419754],[-80.421158,7.271572],[-80.886401,7.220541],[-81.059543,7.817921],[-81.189716,7.647906],[-81.519515,7.70661],[-81.721311,8.108963],[-82.131441,8.175393],[-82.390934,8.292362],[-82.820081,8.290864],[-82.850958,8.073823],[-82.965783,8.225028],[-82.913176,8.423517],[-82.829771,8.626295],[-82.868657,8.807266],[-82.719183,8.925709],[-82.927155,9.07433],[-82.932891,9.476812],[-82.546196,9.566135],[-82.187123,9.207449],[-82.207586,8.995575],[-81.808567,8.950617],[-81.714154,9.031955],[-81.439287,8.786234],[-80.947302,8.858504],[-80.521901,9.111072],[-79.9146,9.312765],[-79.573303,9.61161],[-79.021192,9.552931],[-79.05845,9.454565],[-78.500888,9.420459],[-78.055928,9.24773],[-77.729514,8.946844],[-77.353361,8.670505],[-77.474723,8.524286],[-77.242566,7.935278],[-77.431108,7.638061],[-77.753414,7.70984],[-77.881571,7.223771]]]}}, +{"type":"Feature","id":"PER","properties":{"name":"Peru"},"geometry":{"type":"Polygon","coordinates":[[[-69.590424,-17.580012],[-69.858444,-18.092694],[-70.372572,-18.347975],[-71.37525,-17.773799],[-71.462041,-17.363488],[-73.44453,-16.359363],[-75.237883,-15.265683],[-76.009205,-14.649286],[-76.423469,-13.823187],[-76.259242,-13.535039],[-77.106192,-12.222716],[-78.092153,-10.377712],[-79.036953,-8.386568],[-79.44592,-7.930833],[-79.760578,-7.194341],[-80.537482,-6.541668],[-81.249996,-6.136834],[-80.926347,-5.690557],[-81.410943,-4.736765],[-81.09967,-4.036394],[-80.302561,-3.404856],[-80.184015,-3.821162],[-80.469295,-4.059287],[-80.442242,-4.425724],[-80.028908,-4.346091],[-79.624979,-4.454198],[-79.205289,-4.959129],[-78.639897,-4.547784],[-78.450684,-3.873097],[-77.837905,-3.003021],[-76.635394,-2.608678],[-75.544996,-1.56161],[-75.233723,-0.911417],[-75.373223,-0.152032],[-75.106625,-0.057205],[-74.441601,-0.53082],[-74.122395,-1.002833],[-73.659504,-1.260491],[-73.070392,-2.308954],[-72.325787,-2.434218],[-71.774761,-2.16979],[-71.413646,-2.342802],[-70.813476,-2.256865],[-70.047709,-2.725156],[-70.692682,-3.742872],[-70.394044,-3.766591],[-69.893635,-4.298187],[-70.794769,-4.251265],[-70.928843,-4.401591],[-71.748406,-4.593983],[-72.891928,-5.274561],[-72.964507,-5.741251],[-73.219711,-6.089189],[-73.120027,-6.629931],[-73.724487,-6.918595],[-73.723401,-7.340999],[-73.987235,-7.52383],[-73.571059,-8.424447],[-73.015383,-9.032833],[-73.226713,-9.462213],[-72.563033,-9.520194],[-72.184891,-10.053598],[-71.302412,-10.079436],[-70.481894,-9.490118],[-70.548686,-11.009147],[-70.093752,-11.123972],[-69.529678,-10.951734],[-68.66508,-12.5613],[-68.88008,-12.899729],[-68.929224,-13.602684],[-68.948887,-14.453639],[-69.339535,-14.953195],[-69.160347,-15.323974],[-69.389764,-15.660129],[-68.959635,-16.500698],[-69.590424,-17.580012]]]}}, +{"type":"Feature","id":"PHL","properties":{"name":"Philippines"},"geometry":{"type":"MultiPolygon","coordinates":[[[[126.376814,8.414706],[126.478513,7.750354],[126.537424,7.189381],[126.196773,6.274294],[125.831421,7.293715],[125.363852,6.786485],[125.683161,6.049657],[125.396512,5.581003],[124.219788,6.161355],[123.93872,6.885136],[124.243662,7.36061],[123.610212,7.833527],[123.296071,7.418876],[122.825506,7.457375],[122.085499,6.899424],[121.919928,7.192119],[122.312359,8.034962],[122.942398,8.316237],[123.487688,8.69301],[123.841154,8.240324],[124.60147,8.514158],[124.764612,8.960409],[125.471391,8.986997],[125.412118,9.760335],[126.222714,9.286074],[126.306637,8.782487],[126.376814,8.414706]]],[[[123.982438,10.278779],[123.623183,9.950091],[123.309921,9.318269],[122.995883,9.022189],[122.380055,9.713361],[122.586089,9.981045],[122.837081,10.261157],[122.947411,10.881868],[123.49885,10.940624],[123.337774,10.267384],[124.077936,11.232726],[123.982438,10.278779]]],[[[118.504581,9.316383],[117.174275,8.3675],[117.664477,9.066889],[118.386914,9.6845],[118.987342,10.376292],[119.511496,11.369668],[119.689677,10.554291],[119.029458,10.003653],[118.504581,9.316383]]],[[[121.883548,11.891755],[122.483821,11.582187],[123.120217,11.58366],[123.100838,11.165934],[122.637714,10.741308],[122.00261,10.441017],[121.967367,10.905691],[122.03837,11.415841],[121.883548,11.891755]]],[[[125.502552,12.162695],[125.783465,11.046122],[125.011884,11.311455],[125.032761,10.975816],[125.277449,10.358722],[124.801819,10.134679],[124.760168,10.837995],[124.459101,10.88993],[124.302522,11.495371],[124.891013,11.415583],[124.87799,11.79419],[124.266762,12.557761],[125.227116,12.535721],[125.502552,12.162695]]],[[[121.527394,13.06959],[121.26219,12.20556],[120.833896,12.704496],[120.323436,13.466413],[121.180128,13.429697],[121.527394,13.06959]]],[[[121.321308,18.504065],[121.937601,18.218552],[122.246006,18.47895],[122.336957,18.224883],[122.174279,17.810283],[122.515654,17.093505],[122.252311,16.262444],[121.662786,15.931018],[121.50507,15.124814],[121.728829,14.328376],[122.258925,14.218202],[122.701276,14.336541],[123.950295,13.782131],[123.855107,13.237771],[124.181289,12.997527],[124.077419,12.536677],[123.298035,13.027526],[122.928652,13.55292],[122.671355,13.185836],[122.03465,13.784482],[121.126385,13.636687],[120.628637,13.857656],[120.679384,14.271016],[120.991819,14.525393],[120.693336,14.756671],[120.564145,14.396279],[120.070429,14.970869],[119.920929,15.406347],[119.883773,16.363704],[120.286488,16.034629],[120.390047,17.599081],[120.715867,18.505227],[121.321308,18.504065]]]]}}, +{"type":"Feature","id":"PNG","properties":{"name":"Papua New Guinea"},"geometry":{"type":"MultiPolygon","coordinates":[[[[155.880026,-6.819997],[155.599991,-6.919991],[155.166994,-6.535931],[154.729192,-5.900828],[154.514114,-5.139118],[154.652504,-5.042431],[154.759991,-5.339984],[155.062918,-5.566792],[155.547746,-6.200655],[156.019965,-6.540014],[155.880026,-6.819997]]],[[[151.982796,-5.478063],[151.459107,-5.56028],[151.30139,-5.840728],[150.754447,-6.083763],[150.241197,-6.317754],[149.709963,-6.316513],[148.890065,-6.02604],[148.318937,-5.747142],[148.401826,-5.437756],[149.298412,-5.583742],[149.845562,-5.505503],[149.99625,-5.026101],[150.139756,-5.001348],[150.236908,-5.53222],[150.807467,-5.455842],[151.089672,-5.113693],[151.647881,-4.757074],[151.537862,-4.167807],[152.136792,-4.14879],[152.338743,-4.312966],[152.318693,-4.867661],[151.982796,-5.478063]]],[[[147.191874,-7.388024],[148.084636,-8.044108],[148.734105,-9.104664],[149.306835,-9.071436],[149.266631,-9.514406],[150.038728,-9.684318],[149.738798,-9.872937],[150.801628,-10.293687],[150.690575,-10.582713],[150.028393,-10.652476],[149.78231,-10.393267],[148.923138,-10.280923],[147.913018,-10.130441],[147.135443,-9.492444],[146.567881,-8.942555],[146.048481,-8.067414],[144.744168,-7.630128],[143.897088,-7.91533],[143.286376,-8.245491],[143.413913,-8.983069],[142.628431,-9.326821],[142.068259,-9.159596],[141.033852,-9.117893],[141.017057,-5.859022],[141.00021,-2.600151],[142.735247,-3.289153],[144.583971,-3.861418],[145.27318,-4.373738],[145.829786,-4.876498],[145.981922,-5.465609],[147.648073,-6.083659],[147.891108,-6.614015],[146.970905,-6.721657],[147.191874,-7.388024]]],[[[153.140038,-4.499983],[152.827292,-4.766427],[152.638673,-4.176127],[152.406026,-3.789743],[151.953237,-3.462062],[151.384279,-3.035422],[150.66205,-2.741486],[150.939965,-2.500002],[151.479984,-2.779985],[151.820015,-2.999972],[152.239989,-3.240009],[152.640017,-3.659983],[153.019994,-3.980015],[153.140038,-4.499983]]]]}}, +{"type":"Feature","id":"POL","properties":{"name":"Poland"},"geometry":{"type":"Polygon","coordinates":[[[15.016996,51.106674],[14.607098,51.745188],[14.685026,52.089947],[14.4376,52.62485],[14.074521,52.981263],[14.353315,53.248171],[14.119686,53.757029],[14.8029,54.050706],[16.363477,54.513159],[17.622832,54.851536],[18.620859,54.682606],[18.696255,54.438719],[19.66064,54.426084],[20.892245,54.312525],[22.731099,54.327537],[23.243987,54.220567],[23.484128,53.912498],[23.527536,53.470122],[23.804935,53.089731],[23.799199,52.691099],[23.199494,52.486977],[23.508002,52.023647],[23.527071,51.578454],[24.029986,50.705407],[23.922757,50.424881],[23.426508,50.308506],[22.51845,49.476774],[22.776419,49.027395],[22.558138,49.085738],[21.607808,49.470107],[20.887955,49.328772],[20.415839,49.431453],[19.825023,49.217125],[19.320713,49.571574],[18.909575,49.435846],[18.853144,49.49623],[18.392914,49.988629],[17.649445,50.049038],[17.554567,50.362146],[16.868769,50.473974],[16.719476,50.215747],[16.176253,50.422607],[16.238627,50.697733],[15.490972,50.78473],[15.016996,51.106674]]]}}, +{"type":"Feature","id":"PRI","properties":{"name":"Puerto Rico"},"geometry":{"type":"Polygon","coordinates":[[[-66.282434,18.514762],[-65.771303,18.426679],[-65.591004,18.228035],[-65.847164,17.975906],[-66.599934,17.981823],[-67.184162,17.946553],[-67.242428,18.37446],[-67.100679,18.520601],[-66.282434,18.514762]]]}}, +{"type":"Feature","id":"PRK","properties":{"name":"North Korea"},"geometry":{"type":"Polygon","coordinates":[[[130.640016,42.395009],[130.780007,42.220007],[130.400031,42.280004],[129.965949,41.941368],[129.667362,41.601104],[129.705189,40.882828],[129.188115,40.661808],[129.0104,40.485436],[128.633368,40.189847],[127.967414,40.025413],[127.533436,39.75685],[127.50212,39.323931],[127.385434,39.213472],[127.783343,39.050898],[128.349716,38.612243],[128.205746,38.370397],[127.780035,38.304536],[127.073309,38.256115],[126.68372,37.804773],[126.237339,37.840378],[126.174759,37.749686],[125.689104,37.94001],[125.568439,37.752089],[125.27533,37.669071],[125.240087,37.857224],[124.981033,37.948821],[124.712161,38.108346],[124.985994,38.548474],[125.221949,38.665857],[125.132859,38.848559],[125.38659,39.387958],[125.321116,39.551385],[124.737482,39.660344],[124.265625,39.928493],[125.079942,40.569824],[126.182045,41.107336],[126.869083,41.816569],[127.343783,41.503152],[128.208433,41.466772],[128.052215,41.994285],[129.596669,42.424982],[129.994267,42.985387],[130.640016,42.395009]]]}}, +{"type":"Feature","id":"PRT","properties":{"name":"Portugal"},"geometry":{"type":"Polygon","coordinates":[[[-9.034818,41.880571],[-8.671946,42.134689],[-8.263857,42.280469],[-8.013175,41.790886],[-7.422513,41.792075],[-7.251309,41.918346],[-6.668606,41.883387],[-6.389088,41.381815],[-6.851127,41.111083],[-6.86402,40.330872],[-7.026413,40.184524],[-7.066592,39.711892],[-7.498632,39.629571],[-7.098037,39.030073],[-7.374092,38.373059],[-7.029281,38.075764],[-7.166508,37.803894],[-7.537105,37.428904],[-7.453726,37.097788],[-7.855613,36.838269],[-8.382816,36.97888],[-8.898857,36.868809],[-8.746101,37.651346],[-8.839998,38.266243],[-9.287464,38.358486],[-9.526571,38.737429],[-9.446989,39.392066],[-9.048305,39.755093],[-8.977353,40.159306],[-8.768684,40.760639],[-8.790853,41.184334],[-8.990789,41.543459],[-9.034818,41.880571]]]}}, +{"type":"Feature","id":"PRY","properties":{"name":"Paraguay"},"geometry":{"type":"Polygon","coordinates":[[[-62.685057,-22.249029],[-62.291179,-21.051635],[-62.265961,-20.513735],[-61.786326,-19.633737],[-60.043565,-19.342747],[-59.115042,-19.356906],[-58.183471,-19.868399],[-58.166392,-20.176701],[-57.870674,-20.732688],[-57.937156,-22.090176],[-56.88151,-22.282154],[-56.473317,-22.0863],[-55.797958,-22.35693],[-55.610683,-22.655619],[-55.517639,-23.571998],[-55.400747,-23.956935],[-55.027902,-24.001274],[-54.652834,-23.839578],[-54.29296,-24.021014],[-54.293476,-24.5708],[-54.428946,-25.162185],[-54.625291,-25.739255],[-54.788795,-26.621786],[-55.695846,-27.387837],[-56.486702,-27.548499],[-57.60976,-27.395899],[-58.618174,-27.123719],[-57.63366,-25.603657],[-57.777217,-25.16234],[-58.807128,-24.771459],[-60.028966,-24.032796],[-60.846565,-23.880713],[-62.685057,-22.249029]]]}}, +{"type":"Feature","id":"QAT","properties":{"name":"Qatar"},"geometry":{"type":"Polygon","coordinates":[[[50.810108,24.754743],[50.743911,25.482424],[51.013352,26.006992],[51.286462,26.114582],[51.589079,25.801113],[51.6067,25.21567],[51.389608,24.627386],[51.112415,24.556331],[50.810108,24.754743]]]}}, +{"type":"Feature","id":"ROU","properties":{"name":"Romania"},"geometry":{"type":"Polygon","coordinates":[[[22.710531,47.882194],[23.142236,48.096341],[23.760958,47.985598],[24.402056,47.981878],[24.866317,47.737526],[25.207743,47.891056],[25.945941,47.987149],[26.19745,48.220881],[26.619337,48.220726],[26.924176,48.123264],[27.233873,47.826771],[27.551166,47.405117],[28.12803,46.810476],[28.160018,46.371563],[28.054443,45.944586],[28.233554,45.488283],[28.679779,45.304031],[29.149725,45.464925],[29.603289,45.293308],[29.626543,45.035391],[29.141612,44.82021],[28.837858,44.913874],[28.558081,43.707462],[27.970107,43.812468],[27.2424,44.175986],[26.065159,43.943494],[25.569272,43.688445],[24.100679,43.741051],[23.332302,43.897011],[22.944832,43.823785],[22.65715,44.234923],[22.474008,44.409228],[22.705726,44.578003],[22.459022,44.702517],[22.145088,44.478422],[21.562023,44.768947],[21.483526,45.18117],[20.874313,45.416375],[20.762175,45.734573],[20.220192,46.127469],[21.021952,46.316088],[21.626515,46.994238],[22.099768,47.672439],[22.710531,47.882194]]]}}, +{"type":"Feature","id":"RUS","properties":{"name":"Russia"},"geometry":{"type":"MultiPolygon","coordinates":[[[[143.648007,50.7476],[144.654148,48.976391],[143.173928,49.306551],[142.558668,47.861575],[143.533492,46.836728],[143.505277,46.137908],[142.747701,46.740765],[142.09203,45.966755],[141.906925,46.805929],[142.018443,47.780133],[141.904445,48.859189],[142.1358,49.615163],[142.179983,50.952342],[141.594076,51.935435],[141.682546,53.301966],[142.606934,53.762145],[142.209749,54.225476],[142.654786,54.365881],[142.914616,53.704578],[143.260848,52.74076],[143.235268,51.75666],[143.648007,50.7476]]],[[[22.731099,54.327537],[20.892245,54.312525],[19.66064,54.426084],[19.888481,54.86616],[21.268449,55.190482],[22.315724,55.015299],[22.757764,54.856574],[22.651052,54.582741],[22.731099,54.327537]]],[[[-175.01425,66.58435],[-174.33983,66.33556],[-174.57182,67.06219],[-171.85731,66.91308],[-169.89958,65.97724],[-170.89107,65.54139],[-172.53025,65.43791],[-172.555,64.46079],[-172.95533,64.25269],[-173.89184,64.2826],[-174.65392,64.63125],[-175.98353,64.92288],[-176.20716,65.35667],[-177.22266,65.52024],[-178.35993,65.39052],[-178.90332,65.74044],[-178.68611,66.11211],[-179.88377,65.87456],[-179.43268,65.40411],[-180,64.979709],[-180,68.963636],[-177.55,68.2],[-174.92825,67.20589],[-175.01425,66.58435]]],[[[180,70.832199],[178.903425,70.78114],[178.7253,71.0988],[180,71.515714],[180,70.832199]]],[[[-178.69378,70.89302],[-180,70.832199],[-180,71.515714],[-179.871875,71.55762],[-179.02433,71.55553],[-177.577945,71.26948],[-177.663575,71.13277],[-178.69378,70.89302]]],[[[143.60385,73.21244],[142.08763,73.20544],[140.038155,73.31692],[139.86312,73.36983],[140.81171,73.76506],[142.06207,73.85758],[143.48283,73.47525],[143.60385,73.21244]]],[[[150.73167,75.08406],[149.575925,74.68892],[147.977465,74.778355],[146.11919,75.17298],[146.358485,75.49682],[148.22223,75.345845],[150.73167,75.08406]]],[[[145.086285,75.562625],[144.3,74.82],[140.61381,74.84768],[138.95544,74.61148],[136.97439,75.26167],[137.51176,75.94917],[138.831075,76.13676],[141.471615,76.09289],[145.086285,75.562625]]],[[[57.535693,70.720464],[56.944979,70.632743],[53.677375,70.762658],[53.412017,71.206662],[51.601895,71.474759],[51.455754,72.014881],[52.478275,72.229442],[52.444169,72.774731],[54.427614,73.627548],[53.50829,73.749814],[55.902459,74.627486],[55.631933,75.081412],[57.868644,75.60939],[61.170044,76.251883],[64.498368,76.439055],[66.210977,76.809782],[68.15706,76.939697],[68.852211,76.544811],[68.180573,76.233642],[64.637326,75.737755],[61.583508,75.260885],[58.477082,74.309056],[56.986786,73.333044],[55.419336,72.371268],[55.622838,71.540595],[57.535693,70.720464]]],[[[106.97013,76.97419],[107.24,76.48],[108.1538,76.72335],[111.07726,76.71],[113.33151,76.22224],[114.13417,75.84764],[113.88539,75.32779],[112.77918,75.03186],[110.15125,74.47673],[109.4,74.18],[110.64,74.04],[112.11919,73.78774],[113.01954,73.97693],[113.52958,73.33505],[113.96881,73.59488],[115.56782,73.75285],[118.77633,73.58772],[119.02,73.12],[123.20066,72.97122],[123.25777,73.73503],[125.38,73.56],[126.97644,73.56549],[128.59126,73.03871],[129.05157,72.39872],[128.46,71.98],[129.71599,71.19304],[131.28858,70.78699],[132.2535,71.8363],[133.85766,71.38642],[135.56193,71.65525],[137.49755,71.34763],[138.23409,71.62803],[139.86983,71.48783],[139.14791,72.41619],[140.46817,72.84941],[149.5,72.2],[150.35118,71.60643],[152.9689,70.84222],[157.00688,71.03141],[158.99779,70.86672],[159.83031,70.45324],[159.70866,69.72198],[160.94053,69.43728],[162.27907,69.64204],[164.05248,69.66823],[165.94037,69.47199],[167.83567,69.58269],[169.57763,68.6938],[170.81688,69.01363],[170.0082,69.65276],[170.45345,70.09703],[173.64391,69.81743],[175.72403,69.87725],[178.6,69.4],[180,68.963636],[180,64.979709],[179.99281,64.97433],[178.7072,64.53493],[177.41128,64.60821],[178.313,64.07593],[178.90825,63.25197],[179.37034,62.98262],[179.48636,62.56894],[179.22825,62.3041],[177.3643,62.5219],[174.56929,61.76915],[173.68013,61.65261],[172.15,60.95],[170.6985,60.33618],[170.33085,59.88177],[168.90046,60.57355],[166.29498,59.78855],[165.84,60.16],[164.87674,59.7316],[163.53929,59.86871],[163.21711,59.21101],[162.01733,58.24328],[162.05297,57.83912],[163.19191,57.61503],[163.05794,56.15924],[162.12958,56.12219],[161.70146,55.28568],[162.11749,54.85514],[160.36877,54.34433],[160.02173,53.20257],[158.53094,52.95868],[158.23118,51.94269],[156.78979,51.01105],[156.42,51.7],[155.99182,53.15895],[155.43366,55.38103],[155.91442,56.76792],[156.75815,57.3647],[156.81035,57.83204],[158.36433,58.05575],[160.15064,59.31477],[161.87204,60.343],[163.66969,61.1409],[164.47355,62.55061],[163.25842,62.46627],[162.65791,61.6425],[160.12148,60.54423],[159.30232,61.77396],[156.72068,61.43442],[154.21806,59.75818],[155.04375,59.14495],[152.81185,58.88385],[151.26573,58.78089],[151.33815,59.50396],[149.78371,59.65573],[148.54481,59.16448],[145.48722,59.33637],[142.19782,59.03998],[138.95848,57.08805],[135.12619,54.72959],[136.70171,54.60355],[137.19342,53.97732],[138.1647,53.75501],[138.80463,54.25455],[139.90151,54.18968],[141.34531,53.08957],[141.37923,52.23877],[140.59742,51.23967],[140.51308,50.04553],[140.06193,48.44671],[138.55472,46.99965],[138.21971,46.30795],[136.86232,45.1435],[135.51535,43.989],[134.86939,43.39821],[133.53687,42.81147],[132.90627,42.79849],[132.27807,43.28456],[130.93587,42.55274],[130.78,42.22],[130.64,42.395],[130.633866,42.903015],[131.144688,42.92999],[131.288555,44.11152],[131.02519,44.96796],[131.883454,45.321162],[133.09712,45.14409],[133.769644,46.116927],[134.11235,47.21248],[134.50081,47.57845],[135.026311,48.47823],[133.373596,48.183442],[132.50669,47.78896],[130.98726,47.79013],[130.582293,48.729687],[129.397818,49.4406],[127.6574,49.76027],[127.287456,50.739797],[126.939157,51.353894],[126.564399,51.784255],[125.946349,52.792799],[125.068211,53.161045],[123.57147,53.4588],[122.245748,53.431726],[121.003085,53.251401],[120.177089,52.753886],[120.725789,52.516226],[120.7382,51.96411],[120.18208,51.64355],[119.27939,50.58292],[119.288461,50.142883],[117.879244,49.510983],[116.678801,49.888531],[115.485695,49.805177],[114.96211,50.140247],[114.362456,50.248303],[112.89774,49.543565],[111.581231,49.377968],[110.662011,49.130128],[109.402449,49.292961],[108.475167,49.282548],[107.868176,49.793705],[106.888804,50.274296],[105.886591,50.406019],[104.62158,50.27532],[103.676545,50.089966],[102.25589,50.51056],[102.06521,51.25991],[100.88948,51.516856],[99.981732,51.634006],[98.861491,52.047366],[97.82574,51.010995],[98.231762,50.422401],[97.25976,49.72605],[95.81402,49.97746],[94.815949,50.013433],[94.147566,50.480537],[93.10421,50.49529],[92.234712,50.802171],[90.713667,50.331812],[88.805567,49.470521],[87.751264,49.297198],[87.35997,49.214981],[86.829357,49.826675],[85.54127,49.692859],[85.11556,50.117303],[84.416377,50.3114],[83.935115,50.889246],[83.383004,51.069183],[81.945986,50.812196],[80.568447,51.388336],[80.03556,50.864751],[77.800916,53.404415],[76.525179,54.177003],[76.8911,54.490524],[74.38482,53.54685],[73.425679,53.48981],[73.508516,54.035617],[72.22415,54.376655],[71.180131,54.133285],[70.865267,55.169734],[69.068167,55.38525],[68.1691,54.970392],[65.66687,54.60125],[65.178534,54.354228],[61.4366,54.00625],[60.978066,53.664993],[61.699986,52.979996],[60.739993,52.719986],[60.927269,52.447548],[59.967534,51.96042],[61.588003,51.272659],[61.337424,50.79907],[59.932807,50.842194],[59.642282,50.545442],[58.36332,51.06364],[56.77798,51.04355],[55.71694,50.62171],[54.532878,51.02624],[52.328724,51.718652],[50.766648,51.692762],[48.702382,50.605128],[48.577841,49.87476],[47.54948,50.454698],[46.751596,49.356006],[47.043672,49.152039],[46.466446,48.394152],[47.31524,47.71585],[48.05725,47.74377],[48.694734,47.075628],[48.59325,46.56104],[49.10116,46.39933],[48.64541,45.80629],[47.67591,45.64149],[46.68201,44.6092],[47.59094,43.66016],[47.49252,42.98658],[48.58437,41.80888],[47.987283,41.405819],[47.815666,41.151416],[47.373315,41.219732],[46.686071,41.827137],[46.404951,41.860675],[45.7764,42.09244],[45.470279,42.502781],[44.537623,42.711993],[43.93121,42.55496],[43.75599,42.74083],[42.3944,43.2203],[40.92219,43.38215],[40.076965,43.553104],[39.955009,43.434998],[38.68,44.28],[37.53912,44.65721],[36.67546,45.24469],[37.40317,45.40451],[38.23295,46.24087],[37.67372,46.63657],[39.14767,47.04475],[39.1212,47.26336],[38.223538,47.10219],[38.255112,47.5464],[38.77057,47.82562],[39.738278,47.898937],[39.89562,48.23241],[39.67465,48.78382],[40.080789,49.30743],[40.06904,49.60105],[38.594988,49.926462],[38.010631,49.915662],[37.39346,50.383953],[36.626168,50.225591],[35.356116,50.577197],[35.37791,50.77394],[35.022183,51.207572],[34.224816,51.255993],[34.141978,51.566413],[34.391731,51.768882],[33.7527,52.335075],[32.715761,52.238465],[32.412058,52.288695],[32.15944,52.06125],[31.78597,52.10168],[31.540018,52.742052],[31.305201,53.073996],[31.49764,53.16743],[32.304519,53.132726],[32.693643,53.351421],[32.405599,53.618045],[31.731273,53.794029],[31.791424,53.974639],[31.384472,54.157056],[30.757534,54.811771],[30.971836,55.081548],[30.873909,55.550976],[29.896294,55.789463],[29.371572,55.670091],[29.229513,55.918344],[28.176709,56.16913],[27.855282,56.759326],[27.770016,57.244258],[27.288185,57.474528],[27.716686,57.791899],[27.42015,58.72457],[28.131699,59.300825],[27.98112,59.47537],[29.1177,60.02805],[28.07,60.50352],[30.211107,61.780028],[31.139991,62.357693],[31.516092,62.867687],[30.035872,63.552814],[30.444685,64.204453],[29.54443,64.948672],[30.21765,65.80598],[29.054589,66.944286],[29.977426,67.698297],[28.445944,68.364613],[28.59193,69.064777],[29.39955,69.15692],[31.10108,69.55811],[32.13272,69.90595],[33.77547,69.30142],[36.51396,69.06342],[40.29234,67.9324],[41.05987,67.45713],[41.12595,66.79158],[40.01583,66.26618],[38.38295,65.99953],[33.91871,66.75961],[33.18444,66.63253],[34.81477,65.90015],[34.878574,65.436213],[34.94391,64.41437],[36.23129,64.10945],[37.01273,63.84983],[37.14197,64.33471],[36.539579,64.76446],[37.17604,65.14322],[39.59345,64.52079],[40.4356,64.76446],[39.7626,65.49682],[42.09309,66.47623],[43.01604,66.41858],[43.94975,66.06908],[44.53226,66.75634],[43.69839,67.35245],[44.18795,67.95051],[43.45282,68.57079],[46.25,68.25],[46.82134,67.68997],[45.55517,67.56652],[45.56202,67.01005],[46.34915,66.66767],[47.89416,66.88455],[48.13876,67.52238],[50.22766,67.99867],[53.71743,68.85738],[54.47171,68.80815],[53.48582,68.20131],[54.72628,68.09702],[55.44268,68.43866],[57.31702,68.46628],[58.802,68.88082],[59.94142,68.27844],[61.07784,68.94069],[60.03,69.52],[60.55,69.85],[63.504,69.54739],[64.888115,69.234835],[68.51216,68.09233],[69.18068,68.61563],[68.16444,69.14436],[68.13522,69.35649],[66.93008,69.45461],[67.25976,69.92873],[66.72492,70.70889],[66.69466,71.02897],[68.54006,71.9345],[69.19636,72.84336],[69.94,73.04],[72.58754,72.77629],[72.79603,72.22006],[71.84811,71.40898],[72.47011,71.09019],[72.79188,70.39114],[72.5647,69.02085],[73.66787,68.4079],[73.2387,67.7404],[71.28,66.32],[72.42301,66.17267],[72.82077,66.53267],[73.92099,66.78946],[74.18651,67.28429],[75.052,67.76047],[74.46926,68.32899],[74.93584,68.98918],[73.84236,69.07146],[73.60187,69.62763],[74.3998,70.63175],[73.1011,71.44717],[74.89082,72.12119],[74.65926,72.83227],[75.15801,72.85497],[75.68351,72.30056],[75.28898,71.33556],[76.35911,71.15287],[75.90313,71.87401],[77.57665,72.26717],[79.65202,72.32011],[81.5,71.75],[80.61071,72.58285],[80.51109,73.6482],[82.25,73.85],[84.65526,73.80591],[86.8223,73.93688],[86.00956,74.45967],[87.16682,75.11643],[88.31571,75.14393],[90.26,75.64],[92.90058,75.77333],[93.23421,76.0472],[95.86,76.14],[96.67821,75.91548],[98.92254,76.44689],[100.75967,76.43028],[101.03532,76.86189],[101.99084,77.28754],[104.3516,77.69792],[106.06664,77.37389],[104.705,77.1274],[106.97013,76.97419]]],[[[105.07547,78.30689],[99.43814,77.921],[101.2649,79.23399],[102.08635,79.34641],[102.837815,79.28129],[105.37243,78.71334],[105.07547,78.30689]]],[[[51.136187,80.54728],[49.793685,80.415428],[48.894411,80.339567],[48.754937,80.175468],[47.586119,80.010181],[46.502826,80.247247],[47.072455,80.559424],[44.846958,80.58981],[46.799139,80.771918],[48.318477,80.78401],[48.522806,80.514569],[49.09719,80.753986],[50.039768,80.918885],[51.522933,80.699726],[51.136187,80.54728]]],[[[99.93976,78.88094],[97.75794,78.7562],[94.97259,79.044745],[93.31288,79.4265],[92.5454,80.14379],[91.18107,80.34146],[93.77766,81.0246],[95.940895,81.2504],[97.88385,80.746975],[100.186655,79.780135],[99.93976,78.88094]]]]}}, +{"type":"Feature","id":"RWA","properties":{"name":"Rwanda"},"geometry":{"type":"Polygon","coordinates":[[[30.419105,-1.134659],[30.816135,-1.698914],[30.758309,-2.28725],[30.469696,-2.413858],[29.938359,-2.348487],[29.632176,-2.917858],[29.024926,-2.839258],[29.117479,-2.292211],[29.254835,-2.21511],[29.291887,-1.620056],[29.579466,-1.341313],[29.821519,-1.443322],[30.419105,-1.134659]]]}}, +{"type":"Feature","id":"ESH","properties":{"name":"Western Sahara"},"geometry":{"type":"Polygon","coordinates":[[[-8.794884,27.120696],[-8.817828,27.656426],[-8.66559,27.656426],[-8.665124,27.589479],[-8.6844,27.395744],[-8.687294,25.881056],[-11.969419,25.933353],[-11.937224,23.374594],[-12.874222,23.284832],[-13.118754,22.77122],[-12.929102,21.327071],[-16.845194,21.333323],[-17.063423,20.999752],[-17.020428,21.42231],[-17.002962,21.420734],[-14.750955,21.5006],[-14.630833,21.86094],[-14.221168,22.310163],[-13.89111,23.691009],[-12.500963,24.770116],[-12.030759,26.030866],[-11.71822,26.104092],[-11.392555,26.883424],[-10.551263,26.990808],[-10.189424,26.860945],[-9.735343,26.860945],[-9.413037,27.088476],[-8.794884,27.120696]]]}}, +{"type":"Feature","id":"SAU","properties":{"name":"Saudi Arabia"},"geometry":{"type":"Polygon","coordinates":[[[42.779332,16.347891],[42.649573,16.774635],[42.347989,17.075806],[42.270888,17.474722],[41.754382,17.833046],[41.221391,18.6716],[40.939341,19.486485],[40.247652,20.174635],[39.801685,20.338862],[39.139399,21.291905],[39.023696,21.986875],[39.066329,22.579656],[38.492772,23.688451],[38.02386,24.078686],[37.483635,24.285495],[37.154818,24.858483],[37.209491,25.084542],[36.931627,25.602959],[36.639604,25.826228],[36.249137,26.570136],[35.640182,27.37652],[35.130187,28.063352],[34.632336,28.058546],[34.787779,28.607427],[34.83222,28.957483],[34.956037,29.356555],[36.068941,29.197495],[36.501214,29.505254],[36.740528,29.865283],[37.503582,30.003776],[37.66812,30.338665],[37.998849,30.5085],[37.002166,31.508413],[39.004886,32.010217],[39.195468,32.161009],[40.399994,31.889992],[41.889981,31.190009],[44.709499,29.178891],[46.568713,29.099025],[47.459822,29.002519],[47.708851,28.526063],[48.416094,28.552004],[48.807595,27.689628],[49.299554,27.461218],[49.470914,27.109999],[50.152422,26.689663],[50.212935,26.277027],[50.113303,25.943972],[50.239859,25.60805],[50.527387,25.327808],[50.660557,24.999896],[50.810108,24.754743],[51.112415,24.556331],[51.389608,24.627386],[51.579519,24.245497],[51.617708,24.014219],[52.000733,23.001154],[55.006803,22.496948],[55.208341,22.70833],[55.666659,22.000001],[54.999982,19.999994],[52.00001,19.000003],[49.116672,18.616668],[48.183344,18.166669],[47.466695,17.116682],[47.000005,16.949999],[46.749994,17.283338],[46.366659,17.233315],[45.399999,17.333335],[45.216651,17.433329],[44.062613,17.410359],[43.791519,17.319977],[43.380794,17.579987],[43.115798,17.08844],[43.218375,16.66689],[42.779332,16.347891]]]}}, +{"type":"Feature","id":"SDN","properties":{"name":"Sudan"},"geometry":{"type":"Polygon","coordinates":[[[33.963393,9.464285],[33.824963,9.484061],[33.842131,9.981915],[33.721959,10.325262],[33.206938,10.720112],[33.086766,11.441141],[33.206938,12.179338],[32.743419,12.248008],[32.67475,12.024832],[32.073892,11.97333],[32.314235,11.681484],[32.400072,11.080626],[31.850716,10.531271],[31.352862,9.810241],[30.837841,9.707237],[29.996639,10.290927],[29.618957,10.084919],[29.515953,9.793074],[29.000932,9.604232],[28.966597,9.398224],[27.97089,9.398224],[27.833551,9.604232],[27.112521,9.638567],[26.752006,9.466893],[26.477328,9.55273],[25.962307,10.136421],[25.790633,10.411099],[25.069604,10.27376],[24.794926,9.810241],[24.537415,8.917538],[24.194068,8.728696],[23.88698,8.61973],[23.805813,8.666319],[23.459013,8.954286],[23.394779,9.265068],[23.55725,9.681218],[23.554304,10.089255],[22.977544,10.714463],[22.864165,11.142395],[22.87622,11.38461],[22.50869,11.67936],[22.49762,12.26024],[22.28801,12.64605],[21.93681,12.58818],[22.03759,12.95546],[22.29658,13.37232],[22.18329,13.78648],[22.51202,14.09318],[22.30351,14.32682],[22.56795,14.94429],[23.02459,15.68072],[23.88689,15.61084],[23.83766,19.58047],[23.85,20],[25,20.00304],[25,22],[29.02,22],[32.9,22],[36.86623,22],[37.18872,21.01885],[36.96941,20.83744],[37.1147,19.80796],[37.48179,18.61409],[37.86276,18.36786],[38.41009,17.998307],[37.904,17.42754],[37.16747,17.26314],[36.85253,16.95655],[36.75389,16.29186],[36.32322,14.82249],[36.42951,14.42211],[36.27022,13.56333],[35.86363,12.57828],[35.26049,12.08286],[34.83163,11.31896],[34.73115,10.91017],[34.25745,10.63009],[33.96162,9.58358],[33.963393,9.464285]]]}}, +{"type":"Feature","id":"SDS","properties":{"name":"South Sudan"},"geometry":{"type":"Polygon","coordinates":[[[33.963393,9.464285],[33.97498,8.68456],[33.8255,8.37916],[33.2948,8.35458],[32.95418,7.78497],[33.56829,7.71334],[34.0751,7.22595],[34.25032,6.82607],[34.70702,6.59422],[35.298007,5.506],[34.620196,4.847123],[34.005,4.249885],[33.39,3.79],[32.68642,3.79232],[31.88145,3.55827],[31.24556,3.7819],[30.83385,3.50917],[29.95349,4.1737],[29.715995,4.600805],[29.159078,4.389267],[28.696678,4.455077],[28.428994,4.287155],[27.979977,4.408413],[27.374226,5.233944],[27.213409,5.550953],[26.465909,5.946717],[26.213418,6.546603],[25.796648,6.979316],[25.124131,7.500085],[25.114932,7.825104],[24.567369,8.229188],[23.88698,8.61973],[24.194068,8.728696],[24.537415,8.917538],[24.794926,9.810241],[25.069604,10.27376],[25.790633,10.411099],[25.962307,10.136421],[26.477328,9.55273],[26.752006,9.466893],[27.112521,9.638567],[27.833551,9.604232],[27.97089,9.398224],[28.966597,9.398224],[29.000932,9.604232],[29.515953,9.793074],[29.618957,10.084919],[29.996639,10.290927],[30.837841,9.707237],[31.352862,9.810241],[31.850716,10.531271],[32.400072,11.080626],[32.314235,11.681484],[32.073892,11.97333],[32.67475,12.024832],[32.743419,12.248008],[33.206938,12.179338],[33.086766,11.441141],[33.206938,10.720112],[33.721959,10.325262],[33.842131,9.981915],[33.824963,9.484061],[33.963393,9.464285]]]}}, +{"type":"Feature","id":"SEN","properties":{"name":"Senegal"},"geometry":{"type":"Polygon","coordinates":[[[-16.713729,13.594959],[-17.126107,14.373516],[-17.625043,14.729541],[-17.185173,14.919477],[-16.700706,15.621527],[-16.463098,16.135036],[-16.12069,16.455663],[-15.623666,16.369337],[-15.135737,16.587282],[-14.577348,16.598264],[-14.099521,16.304302],[-13.435738,16.039383],[-12.830658,15.303692],[-12.17075,14.616834],[-12.124887,13.994727],[-11.927716,13.422075],[-11.553398,13.141214],[-11.467899,12.754519],[-11.513943,12.442988],[-11.658301,12.386583],[-12.203565,12.465648],[-12.278599,12.35444],[-12.499051,12.33209],[-13.217818,12.575874],[-13.700476,12.586183],[-15.548477,12.62817],[-15.816574,12.515567],[-16.147717,12.547762],[-16.677452,12.384852],[-16.841525,13.151394],[-15.931296,13.130284],[-15.691001,13.270353],[-15.511813,13.27857],[-15.141163,13.509512],[-14.712197,13.298207],[-14.277702,13.280585],[-13.844963,13.505042],[-14.046992,13.794068],[-14.376714,13.62568],[-14.687031,13.630357],[-15.081735,13.876492],[-15.39877,13.860369],[-15.624596,13.623587],[-16.713729,13.594959]]]}}, +{"type":"Feature","id":"SLB","properties":{"name":"Solomon Islands"},"geometry":{"type":"MultiPolygon","coordinates":[[[[162.119025,-10.482719],[162.398646,-10.826367],[161.700032,-10.820011],[161.319797,-10.204751],[161.917383,-10.446701],[162.119025,-10.482719]]],[[[160.852229,-9.872937],[160.462588,-9.89521],[159.849447,-9.794027],[159.640003,-9.63998],[159.702945,-9.24295],[160.362956,-9.400304],[160.688518,-9.610162],[160.852229,-9.872937]]],[[[161.679982,-9.599982],[161.529397,-9.784312],[160.788253,-8.917543],[160.579997,-8.320009],[160.920028,-8.320009],[161.280006,-9.120011],[161.679982,-9.599982]]],[[[159.875027,-8.33732],[159.917402,-8.53829],[159.133677,-8.114181],[158.586114,-7.754824],[158.21115,-7.421872],[158.359978,-7.320018],[158.820001,-7.560003],[159.640003,-8.020027],[159.875027,-8.33732]]],[[[157.538426,-7.34782],[157.33942,-7.404767],[156.90203,-7.176874],[156.491358,-6.765943],[156.542828,-6.599338],[157.14,-7.021638],[157.538426,-7.34782]]]]}}, +{"type":"Feature","id":"SLE","properties":{"name":"Sierra Leone"},"geometry":{"type":"Polygon","coordinates":[[[-11.438779,6.785917],[-11.708195,6.860098],[-12.428099,7.262942],[-12.949049,7.798646],[-13.124025,8.163946],[-13.24655,8.903049],[-12.711958,9.342712],[-12.596719,9.620188],[-12.425929,9.835834],[-12.150338,9.858572],[-11.917277,10.046984],[-11.117481,10.045873],[-10.839152,9.688246],[-10.622395,9.26791],[-10.65477,8.977178],[-10.494315,8.715541],[-10.505477,8.348896],[-10.230094,8.406206],[-10.695595,7.939464],[-11.146704,7.396706],[-11.199802,7.105846],[-11.438779,6.785917]]]}}, +{"type":"Feature","id":"SLV","properties":{"name":"El Salvador"},"geometry":{"type":"Polygon","coordinates":[[[-87.793111,13.38448],[-87.904112,13.149017],[-88.483302,13.163951],[-88.843228,13.259734],[-89.256743,13.458533],[-89.812394,13.520622],[-90.095555,13.735338],[-90.064678,13.88197],[-89.721934,14.134228],[-89.534219,14.244816],[-89.587343,14.362586],[-89.353326,14.424133],[-89.058512,14.340029],[-88.843073,14.140507],[-88.541231,13.980155],[-88.503998,13.845486],[-88.065343,13.964626],[-87.859515,13.893312],[-87.723503,13.78505],[-87.793111,13.38448]]]}}, +{"type":"Feature","id":"-99","properties":{"name":"Somaliland"},"geometry":{"type":"Polygon","coordinates":[[[48.93813,9.451749],[48.486736,8.837626],[47.78942,8.003],[46.948328,7.996877],[43.67875,9.18358],[43.296975,9.540477],[42.92812,10.02194],[42.55876,10.57258],[42.776852,10.926879],[43.145305,11.46204],[43.47066,11.27771],[43.666668,10.864169],[44.117804,10.445538],[44.614259,10.442205],[45.556941,10.698029],[46.645401,10.816549],[47.525658,11.127228],[48.021596,11.193064],[48.378784,11.375482],[48.948206,11.410622],[48.942005,11.394266],[48.938491,10.982327],[48.938233,9.9735],[48.93813,9.451749]]]}}, +{"type":"Feature","id":"SOM","properties":{"name":"Somalia"},"geometry":{"type":"Polygon","coordinates":[[[49.72862,11.5789],[50.25878,11.67957],[50.73202,12.0219],[51.1112,12.02464],[51.13387,11.74815],[51.04153,11.16651],[51.04531,10.6409],[50.83418,10.27972],[50.55239,9.19874],[50.07092,8.08173],[49.4527,6.80466],[48.59455,5.33911],[47.74079,4.2194],[46.56476,2.85529],[45.56399,2.04576],[44.06815,1.05283],[43.13597,0.2922],[42.04157,-0.91916],[41.81095,-1.44647],[41.58513,-1.68325],[40.993,-0.85829],[40.98105,2.78452],[41.855083,3.918912],[42.12861,4.23413],[42.76967,4.25259],[43.66087,4.95755],[44.9636,5.00162],[47.78942,8.003],[48.486736,8.837626],[48.93813,9.451749],[48.938233,9.9735],[48.938491,10.982327],[48.942005,11.394266],[48.948205,11.410617],[49.26776,11.43033],[49.72862,11.5789]]]}}, +{"type":"Feature","id":"SRB","properties":{"name":"Republic of Serbia"},"geometry":{"type":"Polygon","coordinates":[[[20.874313,45.416375],[21.483526,45.18117],[21.562023,44.768947],[22.145088,44.478422],[22.459022,44.702517],[22.705726,44.578003],[22.474008,44.409228],[22.65715,44.234923],[22.410446,44.008063],[22.500157,43.642814],[22.986019,43.211161],[22.604801,42.898519],[22.436595,42.580321],[22.545012,42.461362],[22.380526,42.32026],[21.91708,42.30364],[21.576636,42.245224],[21.54332,42.32025],[21.66292,42.43922],[21.77505,42.6827],[21.63302,42.67717],[21.43866,42.86255],[21.27421,42.90959],[21.143395,43.068685],[20.95651,43.13094],[20.81448,43.27205],[20.63508,43.21671],[20.49679,42.88469],[20.25758,42.81275],[20.3398,42.89852],[19.95857,43.10604],[19.63,43.21378],[19.48389,43.35229],[19.21852,43.52384],[19.454,43.5681],[19.59976,44.03847],[19.11761,44.42307],[19.36803,44.863],[19.00548,44.86023],[19.390476,45.236516],[19.072769,45.521511],[18.82982,45.90888],[19.596045,46.17173],[20.220192,46.127469],[20.762175,45.734573],[20.874313,45.416375]]]}}, +{"type":"Feature","id":"SUR","properties":{"name":"Suriname"},"geometry":{"type":"Polygon","coordinates":[[[-57.147436,5.97315],[-55.949318,5.772878],[-55.84178,5.953125],[-55.03325,6.025291],[-53.958045,5.756548],[-54.478633,4.896756],[-54.399542,4.212611],[-54.006931,3.620038],[-54.181726,3.18978],[-54.269705,2.732392],[-54.524754,2.311849],[-55.097587,2.523748],[-55.569755,2.421506],[-55.973322,2.510364],[-56.073342,2.220795],[-55.9056,2.021996],[-55.995698,1.817667],[-56.539386,1.899523],[-57.150098,2.768927],[-57.281433,3.333492],[-57.601569,3.334655],[-58.044694,4.060864],[-57.86021,4.576801],[-57.914289,4.812626],[-57.307246,5.073567],[-57.147436,5.97315]]]}}, +{"type":"Feature","id":"SVK","properties":{"name":"Slovakia"},"geometry":{"type":"Polygon","coordinates":[[[18.853144,49.49623],[18.909575,49.435846],[19.320713,49.571574],[19.825023,49.217125],[20.415839,49.431453],[20.887955,49.328772],[21.607808,49.470107],[22.558138,49.085738],[22.280842,48.825392],[22.085608,48.422264],[21.872236,48.319971],[20.801294,48.623854],[20.473562,48.56285],[20.239054,48.327567],[19.769471,48.202691],[19.661364,48.266615],[19.174365,48.111379],[18.777025,48.081768],[18.696513,47.880954],[17.857133,47.758429],[17.488473,47.867466],[16.979667,48.123497],[16.879983,48.470013],[16.960288,48.596982],[17.101985,48.816969],[17.545007,48.800019],[17.886485,48.903475],[17.913512,48.996493],[18.104973,49.043983],[18.170498,49.271515],[18.399994,49.315001],[18.554971,49.495015],[18.853144,49.49623]]]}}, +{"type":"Feature","id":"SVN","properties":{"name":"Slovenia"},"geometry":{"type":"Polygon","coordinates":[[[13.806475,46.509306],[14.632472,46.431817],[15.137092,46.658703],[16.011664,46.683611],[16.202298,46.852386],[16.370505,46.841327],[16.564808,46.503751],[15.768733,46.238108],[15.67153,45.834154],[15.323954,45.731783],[15.327675,45.452316],[14.935244,45.471695],[14.595109,45.634941],[14.411968,45.466166],[13.71506,45.500324],[13.93763,45.591016],[13.69811,46.016778],[13.806475,46.509306]]]}}, +{"type":"Feature","id":"SWE","properties":{"name":"Sweden"},"geometry":{"type":"Polygon","coordinates":[[[22.183173,65.723741],[21.213517,65.026005],[21.369631,64.413588],[19.778876,63.609554],[17.847779,62.7494],[17.119555,61.341166],[17.831346,60.636583],[18.787722,60.081914],[17.869225,58.953766],[16.829185,58.719827],[16.44771,57.041118],[15.879786,56.104302],[14.666681,56.200885],[14.100721,55.407781],[12.942911,55.361737],[12.625101,56.30708],[11.787942,57.441817],[11.027369,58.856149],[11.468272,59.432393],[12.300366,60.117933],[12.631147,61.293572],[11.992064,61.800362],[11.930569,63.128318],[12.579935,64.066219],[13.571916,64.049114],[13.919905,64.445421],[13.55569,64.787028],[15.108411,66.193867],[16.108712,67.302456],[16.768879,68.013937],[17.729182,68.010552],[17.993868,68.567391],[19.87856,68.407194],[20.025269,69.065139],[20.645593,69.106247],[21.978535,68.616846],[23.539473,67.936009],[23.56588,66.396051],[23.903379,66.006927],[22.183173,65.723741]]]}}, +{"type":"Feature","id":"SWZ","properties":{"name":"Swaziland"},"geometry":{"type":"Polygon","coordinates":[[[32.071665,-26.73382],[31.86806,-27.177927],[31.282773,-27.285879],[30.685962,-26.743845],[30.676609,-26.398078],[30.949667,-26.022649],[31.04408,-25.731452],[31.333158,-25.660191],[31.837778,-25.843332],[31.985779,-26.29178],[32.071665,-26.73382]]]}}, +{"type":"Feature","id":"SYR","properties":{"name":"Syria"},"geometry":{"type":"Polygon","coordinates":[[[38.792341,33.378686],[36.834062,32.312938],[35.719918,32.709192],[35.700798,32.716014],[35.836397,32.868123],[35.821101,33.277426],[36.06646,33.824912],[36.61175,34.201789],[36.448194,34.593935],[35.998403,34.644914],[35.905023,35.410009],[36.149763,35.821535],[36.41755,36.040617],[36.685389,36.259699],[36.739494,36.81752],[37.066761,36.623036],[38.167727,36.90121],[38.699891,36.712927],[39.52258,36.716054],[40.673259,37.091276],[41.212089,37.074352],[42.349591,37.229873],[41.837064,36.605854],[41.289707,36.358815],[41.383965,35.628317],[41.006159,34.419372],[38.792341,33.378686]]]}}, +{"type":"Feature","id":"TCD","properties":{"name":"Chad"},"geometry":{"type":"Polygon","coordinates":[[[14.495787,12.859396],[14.595781,13.330427],[13.954477,13.353449],[13.956699,13.996691],[13.540394,14.367134],[13.97217,15.68437],[15.247731,16.627306],[15.300441,17.92795],[15.685741,19.95718],[15.903247,20.387619],[15.487148,20.730415],[15.47106,21.04845],[15.096888,21.308519],[14.8513,22.86295],[15.86085,23.40972],[19.84926,21.49509],[23.83766,19.58047],[23.88689,15.61084],[23.02459,15.68072],[22.56795,14.94429],[22.30351,14.32682],[22.51202,14.09318],[22.18329,13.78648],[22.29658,13.37232],[22.03759,12.95546],[21.93681,12.58818],[22.28801,12.64605],[22.49762,12.26024],[22.50869,11.67936],[22.87622,11.38461],[22.864165,11.142395],[22.231129,10.971889],[21.723822,10.567056],[21.000868,9.475985],[20.059685,9.012706],[19.094008,9.074847],[18.81201,8.982915],[18.911022,8.630895],[18.389555,8.281304],[17.96493,7.890914],[16.705988,7.508328],[16.456185,7.734774],[16.290562,7.754307],[16.106232,7.497088],[15.27946,7.421925],[15.436092,7.692812],[15.120866,8.38215],[14.979996,8.796104],[14.544467,8.965861],[13.954218,9.549495],[14.171466,10.021378],[14.627201,9.920919],[14.909354,9.992129],[15.467873,9.982337],[14.923565,10.891325],[14.960152,11.555574],[14.89336,12.21905],[14.495787,12.859396]]]}}, +{"type":"Feature","id":"TGO","properties":{"name":"Togo"},"geometry":{"type":"Polygon","coordinates":[[[1.865241,6.142158],[1.060122,5.928837],[0.836931,6.279979],[0.570384,6.914359],[0.490957,7.411744],[0.712029,8.312465],[0.461192,8.677223],[0.365901,9.465004],[0.36758,10.191213],[-0.049785,10.706918],[0.023803,11.018682],[0.899563,10.997339],[0.772336,10.470808],[1.077795,10.175607],[1.425061,9.825395],[1.463043,9.334624],[1.664478,9.12859],[1.618951,6.832038],[1.865241,6.142158]]]}}, +{"type":"Feature","id":"THA","properties":{"name":"Thailand"},"geometry":{"type":"Polygon","coordinates":[[[102.584932,12.186595],[101.687158,12.64574],[100.83181,12.627085],[100.978467,13.412722],[100.097797,13.406856],[100.018733,12.307001],[99.478921,10.846367],[99.153772,9.963061],[99.222399,9.239255],[99.873832,9.207862],[100.279647,8.295153],[100.459274,7.429573],[101.017328,6.856869],[101.623079,6.740622],[102.141187,6.221636],[101.814282,5.810808],[101.154219,5.691384],[101.075516,6.204867],[100.259596,6.642825],[100.085757,6.464489],[99.690691,6.848213],[99.519642,7.343454],[98.988253,7.907993],[98.503786,8.382305],[98.339662,7.794512],[98.150009,8.350007],[98.25915,8.973923],[98.553551,9.93296],[99.038121,10.960546],[99.587286,11.892763],[99.196354,12.804748],[99.212012,13.269294],[99.097755,13.827503],[98.430819,14.622028],[98.192074,15.123703],[98.537376,15.308497],[98.903348,16.177824],[98.493761,16.837836],[97.859123,17.567946],[97.375896,18.445438],[97.797783,18.62708],[98.253724,19.708203],[98.959676,19.752981],[99.543309,20.186598],[100.115988,20.41785],[100.548881,20.109238],[100.606294,19.508344],[101.282015,19.462585],[101.035931,18.408928],[101.059548,17.512497],[102.113592,18.109102],[102.413005,17.932782],[102.998706,17.961695],[103.200192,18.309632],[103.956477,18.240954],[104.716947,17.428859],[104.779321,16.441865],[105.589039,15.570316],[105.544338,14.723934],[105.218777,14.273212],[104.281418,14.416743],[102.988422,14.225721],[102.348099,13.394247],[102.584932,12.186595]]]}}, +{"type":"Feature","id":"TJK","properties":{"name":"Tajikistan"},"geometry":{"type":"Polygon","coordinates":[[[71.014198,40.244366],[70.648019,39.935754],[69.55961,40.103211],[69.464887,39.526683],[70.549162,39.604198],[71.784694,39.279463],[73.675379,39.431237],[73.928852,38.505815],[74.257514,38.606507],[74.864816,38.378846],[74.829986,37.990007],[74.980002,37.41999],[73.948696,37.421566],[73.260056,37.495257],[72.63689,37.047558],[72.193041,36.948288],[71.844638,36.738171],[71.448693,37.065645],[71.541918,37.905774],[71.239404,37.953265],[71.348131,38.258905],[70.806821,38.486282],[70.376304,38.138396],[70.270574,37.735165],[70.116578,37.588223],[69.518785,37.608997],[69.196273,37.151144],[68.859446,37.344336],[68.135562,37.023115],[67.83,37.144994],[68.392033,38.157025],[68.176025,38.901553],[67.44222,39.140144],[67.701429,39.580478],[68.536416,39.533453],[69.011633,40.086158],[69.329495,40.727824],[70.666622,40.960213],[70.45816,40.496495],[70.601407,40.218527],[71.014198,40.244366]]]}}, +{"type":"Feature","id":"TKM","properties":{"name":"Turkmenistan"},"geometry":{"type":"Polygon","coordinates":[[[61.210817,35.650072],[61.123071,36.491597],[60.377638,36.527383],[59.234762,37.412988],[58.436154,37.522309],[57.330434,38.029229],[56.619366,38.121394],[56.180375,37.935127],[55.511578,37.964117],[54.800304,37.392421],[53.921598,37.198918],[53.735511,37.906136],[53.880929,38.952093],[53.101028,39.290574],[53.357808,39.975286],[52.693973,40.033629],[52.915251,40.876523],[53.858139,40.631034],[54.736845,40.951015],[54.008311,41.551211],[53.721713,42.123191],[52.91675,41.868117],[52.814689,41.135371],[52.50246,41.783316],[52.944293,42.116034],[54.079418,42.324109],[54.755345,42.043971],[55.455251,41.259859],[55.968191,41.308642],[57.096391,41.32231],[56.932215,41.826026],[57.78653,42.170553],[58.629011,42.751551],[59.976422,42.223082],[60.083341,41.425146],[60.465953,41.220327],[61.547179,41.26637],[61.882714,41.084857],[62.37426,40.053886],[63.518015,39.363257],[64.170223,38.892407],[65.215999,38.402695],[66.54615,37.974685],[66.518607,37.362784],[66.217385,37.39379],[65.745631,37.661164],[65.588948,37.305217],[64.746105,37.111818],[64.546479,36.312073],[63.982896,36.007957],[63.193538,35.857166],[62.984662,35.404041],[62.230651,35.270664],[61.210817,35.650072]]]}}, +{"type":"Feature","id":"TLS","properties":{"name":"East Timor"},"geometry":{"type":"Polygon","coordinates":[[[124.968682,-8.89279],[125.086246,-8.656887],[125.947072,-8.432095],[126.644704,-8.398247],[126.957243,-8.273345],[127.335928,-8.397317],[126.967992,-8.668256],[125.925885,-9.106007],[125.08852,-9.393173],[125.07002,-9.089987],[124.968682,-8.89279]]]}}, +{"type":"Feature","id":"TTO","properties":{"name":"Trinidad and Tobago"},"geometry":{"type":"Polygon","coordinates":[[[-61.68,10.76],[-61.105,10.89],[-60.895,10.855],[-60.935,10.11],[-61.77,10],[-61.95,10.09],[-61.66,10.365],[-61.68,10.76]]]}}, +{"type":"Feature","id":"TUN","properties":{"name":"Tunisia"},"geometry":{"type":"Polygon","coordinates":[[[9.48214,30.307556],[9.055603,32.102692],[8.439103,32.506285],[8.430473,32.748337],[7.612642,33.344115],[7.524482,34.097376],[8.140981,34.655146],[8.376368,35.479876],[8.217824,36.433177],[8.420964,36.946427],[9.509994,37.349994],[10.210002,37.230002],[10.18065,36.724038],[11.028867,37.092103],[11.100026,36.899996],[10.600005,36.41],[10.593287,35.947444],[10.939519,35.698984],[10.807847,34.833507],[10.149593,34.330773],[10.339659,33.785742],[10.856836,33.76874],[11.108501,33.293343],[11.488787,33.136996],[11.432253,32.368903],[10.94479,32.081815],[10.636901,31.761421],[9.950225,31.37607],[10.056575,30.961831],[9.970017,30.539325],[9.48214,30.307556]]]}}, +{"type":"Feature","id":"TUR","properties":{"name":"Turkey"},"geometry":{"type":"MultiPolygon","coordinates":[[[[36.913127,41.335358],[38.347665,40.948586],[39.512607,41.102763],[40.373433,41.013673],[41.554084,41.535656],[42.619549,41.583173],[43.582746,41.092143],[43.752658,40.740201],[43.656436,40.253564],[44.400009,40.005],[44.79399,39.713003],[44.109225,39.428136],[44.421403,38.281281],[44.225756,37.971584],[44.772699,37.170445],[44.293452,37.001514],[43.942259,37.256228],[42.779126,37.385264],[42.349591,37.229873],[41.212089,37.074352],[40.673259,37.091276],[39.52258,36.716054],[38.699891,36.712927],[38.167727,36.90121],[37.066761,36.623036],[36.739494,36.81752],[36.685389,36.259699],[36.41755,36.040617],[36.149763,35.821535],[35.782085,36.274995],[36.160822,36.650606],[35.550936,36.565443],[34.714553,36.795532],[34.026895,36.21996],[32.509158,36.107564],[31.699595,36.644275],[30.621625,36.677865],[30.391096,36.262981],[29.699976,36.144357],[28.732903,36.676831],[27.641187,36.658822],[27.048768,37.653361],[26.318218,38.208133],[26.8047,38.98576],[26.170785,39.463612],[27.28002,40.420014],[28.819978,40.460011],[29.240004,41.219991],[31.145934,41.087622],[32.347979,41.736264],[33.513283,42.01896],[35.167704,42.040225],[36.913127,41.335358]]],[[[27.192377,40.690566],[26.358009,40.151994],[26.043351,40.617754],[26.056942,40.824123],[26.294602,40.936261],[26.604196,41.562115],[26.117042,41.826905],[27.135739,42.141485],[27.99672,42.007359],[28.115525,41.622886],[28.988443,41.299934],[28.806438,41.054962],[27.619017,40.999823],[27.192377,40.690566]]]]}}, +{"type":"Feature","id":"TWN","properties":{"name":"Taiwan"},"geometry":{"type":"Polygon","coordinates":[[[121.777818,24.394274],[121.175632,22.790857],[120.74708,21.970571],[120.220083,22.814861],[120.106189,23.556263],[120.69468,24.538451],[121.495044,25.295459],[121.951244,24.997596],[121.777818,24.394274]]]}}, +{"type":"Feature","id":"TZA","properties":{"name":"United Republic of Tanzania"},"geometry":{"type":"Polygon","coordinates":[[[33.903711,-0.95],[34.07262,-1.05982],[37.69869,-3.09699],[37.7669,-3.67712],[39.20222,-4.67677],[38.74054,-5.90895],[38.79977,-6.47566],[39.44,-6.84],[39.47,-7.1],[39.19469,-7.7039],[39.25203,-8.00781],[39.18652,-8.48551],[39.53574,-9.11237],[39.9496,-10.0984],[40.31659,-10.3171],[39.521,-10.89688],[38.427557,-11.285202],[37.82764,-11.26879],[37.47129,-11.56876],[36.775151,-11.594537],[36.514082,-11.720938],[35.312398,-11.439146],[34.559989,-11.52002],[34.28,-10.16],[33.940838,-9.693674],[33.73972,-9.41715],[32.759375,-9.230599],[32.191865,-8.930359],[31.556348,-8.762049],[31.157751,-8.594579],[30.74,-8.34],[30.2,-7.08],[29.62,-6.52],[29.419993,-5.939999],[29.519987,-5.419979],[29.339998,-4.499983],[29.753512,-4.452389],[30.11632,-4.09012],[30.50554,-3.56858],[30.75224,-3.35931],[30.74301,-3.03431],[30.52766,-2.80762],[30.46967,-2.41383],[30.758309,-2.28725],[30.816135,-1.698914],[30.419105,-1.134659],[30.76986,-1.01455],[31.86617,-1.02736],[33.903711,-0.95]]]}}, +{"type":"Feature","id":"UGA","properties":{"name":"Uganda"},"geometry":{"type":"Polygon","coordinates":[[[31.86617,-1.02736],[30.76986,-1.01455],[30.419105,-1.134659],[29.821519,-1.443322],[29.579466,-1.341313],[29.587838,-0.587406],[29.8195,-0.2053],[29.875779,0.59738],[30.086154,1.062313],[30.468508,1.583805],[30.85267,1.849396],[31.174149,2.204465],[30.77332,2.33989],[30.83385,3.50917],[31.24556,3.7819],[31.88145,3.55827],[32.68642,3.79232],[33.39,3.79],[34.005,4.249885],[34.47913,3.5556],[34.59607,3.05374],[35.03599,1.90584],[34.6721,1.17694],[34.18,0.515],[33.893569,0.109814],[33.903711,-0.95],[31.86617,-1.02736]]]}}, +{"type":"Feature","id":"UKR","properties":{"name":"Ukraine"},"geometry":{"type":"Polygon","coordinates":[[[31.785998,52.101678],[32.159412,52.061267],[32.412058,52.288695],[32.715761,52.238465],[33.7527,52.335075],[34.391731,51.768882],[34.141978,51.566413],[34.224816,51.255993],[35.022183,51.207572],[35.377924,50.773955],[35.356116,50.577197],[36.626168,50.225591],[37.39346,50.383953],[38.010631,49.915662],[38.594988,49.926462],[40.069058,49.601055],[40.080789,49.30743],[39.674664,48.783818],[39.895632,48.232405],[39.738278,47.898937],[38.770585,47.825608],[38.255112,47.5464],[38.223538,47.10219],[37.425137,47.022221],[36.759855,46.6987],[35.823685,46.645964],[34.962342,46.273197],[35.020788,45.651219],[35.510009,45.409993],[36.529998,45.46999],[36.334713,45.113216],[35.239999,44.939996],[33.882511,44.361479],[33.326421,44.564877],[33.546924,45.034771],[32.454174,45.327466],[32.630804,45.519186],[33.588162,45.851569],[33.298567,46.080598],[31.74414,46.333348],[31.675307,46.706245],[30.748749,46.5831],[30.377609,46.03241],[29.603289,45.293308],[29.149725,45.464925],[28.679779,45.304031],[28.233554,45.488283],[28.485269,45.596907],[28.659987,45.939987],[28.933717,46.25883],[28.862972,46.437889],[29.072107,46.517678],[29.170654,46.379262],[29.759972,46.349988],[30.024659,46.423937],[29.83821,46.525326],[29.908852,46.674361],[29.559674,46.928583],[29.415135,47.346645],[29.050868,47.510227],[29.122698,47.849095],[28.670891,48.118149],[28.259547,48.155562],[27.522537,48.467119],[26.857824,48.368211],[26.619337,48.220726],[26.19745,48.220881],[25.945941,47.987149],[25.207743,47.891056],[24.866317,47.737526],[24.402056,47.981878],[23.760958,47.985598],[23.142236,48.096341],[22.710531,47.882194],[22.64082,48.15024],[22.085608,48.422264],[22.280842,48.825392],[22.558138,49.085738],[22.776419,49.027395],[22.51845,49.476774],[23.426508,50.308506],[23.922757,50.424881],[24.029986,50.705407],[23.527071,51.578454],[24.005078,51.617444],[24.553106,51.888461],[25.327788,51.910656],[26.337959,51.832289],[27.454066,51.592303],[28.241615,51.572227],[28.617613,51.427714],[28.992835,51.602044],[29.254938,51.368234],[30.157364,51.416138],[30.555117,51.319503],[30.619454,51.822806],[30.927549,52.042353],[31.785998,52.101678]]]}}, +{"type":"Feature","id":"URY","properties":{"name":"Uruguay"},"geometry":{"type":"Polygon","coordinates":[[[-57.625133,-30.216295],[-56.976026,-30.109686],[-55.973245,-30.883076],[-55.60151,-30.853879],[-54.572452,-31.494511],[-53.787952,-32.047243],[-53.209589,-32.727666],[-53.650544,-33.202004],[-53.373662,-33.768378],[-53.806426,-34.396815],[-54.935866,-34.952647],[-55.67409,-34.752659],[-56.215297,-34.859836],[-57.139685,-34.430456],[-57.817861,-34.462547],[-58.427074,-33.909454],[-58.349611,-33.263189],[-58.132648,-33.040567],[-58.14244,-32.044504],[-57.874937,-31.016556],[-57.625133,-30.216295]]]}}, +{"type":"Feature","id":"USA","properties":{"name":"United States of America"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.54211,19.08348],[-155.68817,18.91619],[-155.93665,19.05939],[-155.90806,19.33888],[-156.07347,19.70294],[-156.02368,19.81422],[-155.85008,19.97729],[-155.91907,20.17395],[-155.86108,20.26721],[-155.78505,20.2487],[-155.40214,20.07975],[-155.22452,19.99302],[-155.06226,19.8591],[-154.80741,19.50871],[-154.83147,19.45328],[-155.22217,19.23972],[-155.54211,19.08348]]],[[[-156.07926,20.64397],[-156.41445,20.57241],[-156.58673,20.783],[-156.70167,20.8643],[-156.71055,20.92676],[-156.61258,21.01249],[-156.25711,20.91745],[-155.99566,20.76404],[-156.07926,20.64397]]],[[[-156.75824,21.17684],[-156.78933,21.06873],[-157.32521,21.09777],[-157.25027,21.21958],[-156.75824,21.17684]]],[[[-157.65283,21.32217],[-157.70703,21.26442],[-157.7786,21.27729],[-158.12667,21.31244],[-158.2538,21.53919],[-158.29265,21.57912],[-158.0252,21.71696],[-157.94161,21.65272],[-157.65283,21.32217]]],[[[-159.34512,21.982],[-159.46372,21.88299],[-159.80051,22.06533],[-159.74877,22.1382],[-159.5962,22.23618],[-159.36569,22.21494],[-159.34512,21.982]]],[[[-94.81758,49.38905],[-94.64,48.84],[-94.32914,48.67074],[-93.63087,48.60926],[-92.61,48.45],[-91.64,48.14],[-90.83,48.27],[-89.6,48.01],[-89.272917,48.019808],[-88.378114,48.302918],[-87.439793,47.94],[-86.461991,47.553338],[-85.652363,47.220219],[-84.87608,46.900083],[-84.779238,46.637102],[-84.543749,46.538684],[-84.6049,46.4396],[-84.3367,46.40877],[-84.14212,46.512226],[-84.091851,46.275419],[-83.890765,46.116927],[-83.616131,46.116927],[-83.469551,45.994686],[-83.592851,45.816894],[-82.550925,45.347517],[-82.337763,44.44],[-82.137642,43.571088],[-82.43,42.98],[-82.9,42.43],[-83.12,42.08],[-83.142,41.975681],[-83.02981,41.832796],[-82.690089,41.675105],[-82.439278,41.675105],[-81.277747,42.209026],[-80.247448,42.3662],[-78.939362,42.863611],[-78.92,42.965],[-79.01,43.27],[-79.171674,43.466339],[-78.72028,43.625089],[-77.737885,43.629056],[-76.820034,43.628784],[-76.5,44.018459],[-76.375,44.09631],[-75.31821,44.81645],[-74.867,45.00048],[-73.34783,45.00738],[-71.50506,45.0082],[-71.405,45.255],[-71.08482,45.30524],[-70.66,45.46],[-70.305,45.915],[-69.99997,46.69307],[-69.237216,47.447781],[-68.905,47.185],[-68.23444,47.35486],[-67.79046,47.06636],[-67.79134,45.70281],[-67.13741,45.13753],[-66.96466,44.8097],[-68.03252,44.3252],[-69.06,43.98],[-70.11617,43.68405],[-70.645476,43.090238],[-70.81489,42.8653],[-70.825,42.335],[-70.495,41.805],[-70.08,41.78],[-70.185,42.145],[-69.88497,41.92283],[-69.96503,41.63717],[-70.64,41.475],[-71.12039,41.49445],[-71.86,41.32],[-72.295,41.27],[-72.87643,41.22065],[-73.71,40.931102],[-72.24126,41.11948],[-71.945,40.93],[-73.345,40.63],[-73.982,40.628],[-73.952325,40.75075],[-74.25671,40.47351],[-73.96244,40.42763],[-74.17838,39.70926],[-74.90604,38.93954],[-74.98041,39.1964],[-75.20002,39.24845],[-75.52805,39.4985],[-75.32,38.96],[-75.071835,38.782032],[-75.05673,38.40412],[-75.37747,38.01551],[-75.94023,37.21689],[-76.03127,37.2566],[-75.72205,37.93705],[-76.23287,38.319215],[-76.35,39.15],[-76.542725,38.717615],[-76.32933,38.08326],[-76.989998,38.239992],[-76.30162,37.917945],[-76.25874,36.9664],[-75.9718,36.89726],[-75.86804,36.55125],[-75.72749,35.55074],[-76.36318,34.80854],[-77.397635,34.51201],[-78.05496,33.92547],[-78.55435,33.86133],[-79.06067,33.49395],[-79.20357,33.15839],[-80.301325,32.509355],[-80.86498,32.0333],[-81.33629,31.44049],[-81.49042,30.72999],[-81.31371,30.03552],[-80.98,29.18],[-80.535585,28.47213],[-80.53,28.04],[-80.056539,26.88],[-80.088015,26.205765],[-80.13156,25.816775],[-80.38103,25.20616],[-80.68,25.08],[-81.17213,25.20126],[-81.33,25.64],[-81.71,25.87],[-82.24,26.73],[-82.70515,27.49504],[-82.85526,27.88624],[-82.65,28.55],[-82.93,29.1],[-83.70959,29.93656],[-84.1,30.09],[-85.10882,29.63615],[-85.28784,29.68612],[-85.7731,30.15261],[-86.4,30.4],[-87.53036,30.27433],[-88.41782,30.3849],[-89.18049,30.31598],[-89.593831,30.159994],[-89.413735,29.89419],[-89.43,29.48864],[-89.21767,29.29108],[-89.40823,29.15961],[-89.77928,29.30714],[-90.15463,29.11743],[-90.880225,29.148535],[-91.626785,29.677],[-92.49906,29.5523],[-93.22637,29.78375],[-93.84842,29.71363],[-94.69,29.48],[-95.60026,28.73863],[-96.59404,28.30748],[-97.14,27.83],[-97.37,27.38],[-97.38,26.69],[-97.33,26.21],[-97.14,25.87],[-97.53,25.84],[-98.24,26.06],[-99.02,26.37],[-99.3,26.84],[-99.52,27.54],[-100.11,28.11],[-100.45584,28.69612],[-100.9576,29.38071],[-101.6624,29.7793],[-102.48,29.76],[-103.11,28.97],[-103.94,29.27],[-104.45697,29.57196],[-104.70575,30.12173],[-105.03737,30.64402],[-105.63159,31.08383],[-106.1429,31.39995],[-106.50759,31.75452],[-108.24,31.754854],[-108.24194,31.34222],[-109.035,31.34194],[-111.02361,31.33472],[-113.30498,32.03914],[-114.815,32.52528],[-114.72139,32.72083],[-115.99135,32.61239],[-117.12776,32.53534],[-117.295938,33.046225],[-117.944,33.621236],[-118.410602,33.740909],[-118.519895,34.027782],[-119.081,34.078],[-119.438841,34.348477],[-120.36778,34.44711],[-120.62286,34.60855],[-120.74433,35.15686],[-121.71457,36.16153],[-122.54747,37.55176],[-122.51201,37.78339],[-122.95319,38.11371],[-123.7272,38.95166],[-123.86517,39.76699],[-124.39807,40.3132],[-124.17886,41.14202],[-124.2137,41.99964],[-124.53284,42.76599],[-124.14214,43.70838],[-124.020535,44.615895],[-123.89893,45.52341],[-124.079635,46.86475],[-124.39567,47.72017],[-124.68721,48.184433],[-124.566101,48.379715],[-123.12,48.04],[-122.58736,47.096],[-122.34,47.36],[-122.5,48.18],[-122.84,49],[-120,49],[-117.03121,49],[-116.04818,49],[-113,49],[-110.05,49],[-107.05,49],[-104.04826,48.99986],[-100.65,49],[-97.22872,49.0007],[-95.15907,49],[-95.15609,49.38425],[-94.81758,49.38905]]],[[[-153.006314,57.115842],[-154.00509,56.734677],[-154.516403,56.992749],[-154.670993,57.461196],[-153.76278,57.816575],[-153.228729,57.968968],[-152.564791,57.901427],[-152.141147,57.591059],[-153.006314,57.115842]]],[[[-165.579164,59.909987],[-166.19277,59.754441],[-166.848337,59.941406],[-167.455277,60.213069],[-166.467792,60.38417],[-165.67443,60.293607],[-165.579164,59.909987]]],[[[-171.731657,63.782515],[-171.114434,63.592191],[-170.491112,63.694975],[-169.682505,63.431116],[-168.689439,63.297506],[-168.771941,63.188598],[-169.52944,62.976931],[-170.290556,63.194438],[-170.671386,63.375822],[-171.553063,63.317789],[-171.791111,63.405846],[-171.731657,63.782515]]],[[[-155.06779,71.147776],[-154.344165,70.696409],[-153.900006,70.889989],[-152.210006,70.829992],[-152.270002,70.600006],[-150.739992,70.430017],[-149.720003,70.53001],[-147.613362,70.214035],[-145.68999,70.12001],[-144.920011,69.989992],[-143.589446,70.152514],[-142.07251,69.851938],[-140.985988,69.711998],[-140.985988,69.711998],[-140.992499,66.000029],[-140.99777,60.306397],[-140.012998,60.276838],[-139.039,60.000007],[-138.34089,59.56211],[-137.4525,58.905],[-136.47972,59.46389],[-135.47583,59.78778],[-134.945,59.27056],[-134.27111,58.86111],[-133.355549,58.410285],[-132.73042,57.69289],[-131.70781,56.55212],[-130.00778,55.91583],[-129.979994,55.284998],[-130.53611,54.802753],[-131.085818,55.178906],[-131.967211,55.497776],[-132.250011,56.369996],[-133.539181,57.178887],[-134.078063,58.123068],[-135.038211,58.187715],[-136.628062,58.212209],[-137.800006,58.499995],[-139.867787,59.537762],[-140.825274,59.727517],[-142.574444,60.084447],[-143.958881,59.99918],[-145.925557,60.45861],[-147.114374,60.884656],[-148.224306,60.672989],[-148.018066,59.978329],[-148.570823,59.914173],[-149.727858,59.705658],[-150.608243,59.368211],[-151.716393,59.155821],[-151.859433,59.744984],[-151.409719,60.725803],[-150.346941,61.033588],[-150.621111,61.284425],[-151.895839,60.727198],[-152.57833,60.061657],[-154.019172,59.350279],[-153.287511,58.864728],[-154.232492,58.146374],[-155.307491,57.727795],[-156.308335,57.422774],[-156.556097,56.979985],[-158.117217,56.463608],[-158.433321,55.994154],[-159.603327,55.566686],[-160.28972,55.643581],[-161.223048,55.364735],[-162.237766,55.024187],[-163.069447,54.689737],[-164.785569,54.404173],[-164.942226,54.572225],[-163.84834,55.039431],[-162.870001,55.348043],[-161.804175,55.894986],[-160.563605,56.008055],[-160.07056,56.418055],[-158.684443,57.016675],[-158.461097,57.216921],[-157.72277,57.570001],[-157.550274,58.328326],[-157.041675,58.918885],[-158.194731,58.615802],[-158.517218,58.787781],[-159.058606,58.424186],[-159.711667,58.93139],[-159.981289,58.572549],[-160.355271,59.071123],[-161.355003,58.670838],[-161.968894,58.671665],[-162.054987,59.266925],[-161.874171,59.633621],[-162.518059,59.989724],[-163.818341,59.798056],[-164.662218,60.267484],[-165.346388,60.507496],[-165.350832,61.073895],[-166.121379,61.500019],[-165.734452,62.074997],[-164.919179,62.633076],[-164.562508,63.146378],[-163.753332,63.219449],[-163.067224,63.059459],[-162.260555,63.541936],[-161.53445,63.455817],[-160.772507,63.766108],[-160.958335,64.222799],[-161.518068,64.402788],[-160.777778,64.788604],[-161.391926,64.777235],[-162.45305,64.559445],[-162.757786,64.338605],[-163.546394,64.55916],[-164.96083,64.446945],[-166.425288,64.686672],[-166.845004,65.088896],[-168.11056,65.669997],[-166.705271,66.088318],[-164.47471,66.57666],[-163.652512,66.57666],[-163.788602,66.077207],[-161.677774,66.11612],[-162.489715,66.735565],[-163.719717,67.116395],[-164.430991,67.616338],[-165.390287,68.042772],[-166.764441,68.358877],[-166.204707,68.883031],[-164.430811,68.915535],[-163.168614,69.371115],[-162.930566,69.858062],[-161.908897,70.33333],[-160.934797,70.44769],[-159.039176,70.891642],[-158.119723,70.824721],[-156.580825,71.357764],[-155.06779,71.147776]]]]}}, +{"type":"Feature","id":"UZB","properties":{"name":"Uzbekistan"},"geometry":{"type":"Polygon","coordinates":[[[66.518607,37.362784],[66.54615,37.974685],[65.215999,38.402695],[64.170223,38.892407],[63.518015,39.363257],[62.37426,40.053886],[61.882714,41.084857],[61.547179,41.26637],[60.465953,41.220327],[60.083341,41.425146],[59.976422,42.223082],[58.629011,42.751551],[57.78653,42.170553],[56.932215,41.826026],[57.096391,41.32231],[55.968191,41.308642],[55.928917,44.995858],[58.503127,45.586804],[58.689989,45.500014],[60.239972,44.784037],[61.05832,44.405817],[62.0133,43.504477],[63.185787,43.650075],[64.900824,43.728081],[66.098012,42.99766],[66.023392,41.994646],[66.510649,41.987644],[66.714047,41.168444],[67.985856,41.135991],[68.259896,40.662325],[68.632483,40.668681],[69.070027,41.384244],[70.388965,42.081308],[70.962315,42.266154],[71.259248,42.167711],[70.420022,41.519998],[71.157859,41.143587],[71.870115,41.3929],[73.055417,40.866033],[71.774875,40.145844],[71.014198,40.244366],[70.601407,40.218527],[70.45816,40.496495],[70.666622,40.960213],[69.329495,40.727824],[69.011633,40.086158],[68.536416,39.533453],[67.701429,39.580478],[67.44222,39.140144],[68.176025,38.901553],[68.392033,38.157025],[67.83,37.144994],[67.075782,37.356144],[66.518607,37.362784]]]}}, +{"type":"Feature","id":"VEN","properties":{"name":"Venezuela"},"geometry":{"type":"Polygon","coordinates":[[[-71.331584,11.776284],[-71.360006,11.539994],[-71.94705,11.423282],[-71.620868,10.96946],[-71.633064,10.446494],[-72.074174,9.865651],[-71.695644,9.072263],[-71.264559,9.137195],[-71.039999,9.859993],[-71.350084,10.211935],[-71.400623,10.968969],[-70.155299,11.375482],[-70.293843,11.846822],[-69.943245,12.162307],[-69.5843,11.459611],[-68.882999,11.443385],[-68.233271,10.885744],[-68.194127,10.554653],[-67.296249,10.545868],[-66.227864,10.648627],[-65.655238,10.200799],[-64.890452,10.077215],[-64.329479,10.389599],[-64.318007,10.641418],[-63.079322,10.701724],[-61.880946,10.715625],[-62.730119,10.420269],[-62.388512,9.948204],[-61.588767,9.873067],[-60.830597,9.38134],[-60.671252,8.580174],[-60.150096,8.602757],[-59.758285,8.367035],[-60.550588,7.779603],[-60.637973,7.415],[-60.295668,7.043911],[-60.543999,6.856584],[-61.159336,6.696077],[-61.139415,6.234297],[-61.410303,5.959068],[-60.733574,5.200277],[-60.601179,4.918098],[-60.966893,4.536468],[-62.08543,4.162124],[-62.804533,4.006965],[-63.093198,3.770571],[-63.888343,4.02053],[-64.628659,4.148481],[-64.816064,4.056445],[-64.368494,3.79721],[-64.408828,3.126786],[-64.269999,2.497006],[-63.422867,2.411068],[-63.368788,2.2009],[-64.083085,1.916369],[-64.199306,1.492855],[-64.611012,1.328731],[-65.354713,1.095282],[-65.548267,0.789254],[-66.325765,0.724452],[-66.876326,1.253361],[-67.181294,2.250638],[-67.447092,2.600281],[-67.809938,2.820655],[-67.303173,3.318454],[-67.337564,3.542342],[-67.621836,3.839482],[-67.823012,4.503937],[-67.744697,5.221129],[-67.521532,5.55687],[-67.34144,6.095468],[-67.695087,6.267318],[-68.265052,6.153268],[-68.985319,6.206805],[-69.38948,6.099861],[-70.093313,6.960376],[-70.674234,7.087785],[-71.960176,6.991615],[-72.198352,7.340431],[-72.444487,7.423785],[-72.479679,7.632506],[-72.360901,8.002638],[-72.439862,8.405275],[-72.660495,8.625288],[-72.78873,9.085027],[-73.304952,9.152],[-73.027604,9.73677],[-72.905286,10.450344],[-72.614658,10.821975],[-72.227575,11.108702],[-71.973922,11.608672],[-71.331584,11.776284]]]}}, +{"type":"Feature","id":"VNM","properties":{"name":"Vietnam"},"geometry":{"type":"Polygon","coordinates":[[[108.05018,21.55238],[106.715068,20.696851],[105.881682,19.75205],[105.662006,19.058165],[106.426817,18.004121],[107.361954,16.697457],[108.269495,16.079742],[108.877107,15.276691],[109.33527,13.426028],[109.200136,11.666859],[108.36613,11.008321],[107.220929,10.364484],[106.405113,9.53084],[105.158264,8.59976],[104.795185,9.241038],[105.076202,9.918491],[104.334335,10.486544],[105.199915,10.88931],[106.24967,10.961812],[105.810524,11.567615],[107.491403,12.337206],[107.614548,13.535531],[107.382727,14.202441],[107.564525,15.202173],[107.312706,15.908538],[106.556008,16.604284],[105.925762,17.485315],[105.094598,18.666975],[103.896532,19.265181],[104.183388,19.624668],[104.822574,19.886642],[104.435,20.758733],[103.203861,20.766562],[102.754896,21.675137],[102.170436,22.464753],[102.706992,22.708795],[103.504515,22.703757],[104.476858,22.81915],[105.329209,23.352063],[105.811247,22.976892],[106.725403,22.794268],[106.567273,22.218205],[107.04342,21.811899],[108.05018,21.55238]]]}}, +{"type":"Feature","id":"VUT","properties":{"name":"Vanuatu"},"geometry":{"type":"MultiPolygon","coordinates":[[[[167.844877,-16.466333],[167.515181,-16.59785],[167.180008,-16.159995],[167.216801,-15.891846],[167.844877,-16.466333]]],[[[167.107712,-14.93392],[167.270028,-15.740021],[167.001207,-15.614602],[166.793158,-15.668811],[166.649859,-15.392704],[166.629137,-14.626497],[167.107712,-14.93392]]]]}}, +{"type":"Feature","id":"PSE","properties":{"name":"West Bank"},"geometry":{"type":"Polygon","coordinates":[[[35.545665,32.393992],[35.545252,31.782505],[35.397561,31.489086],[34.927408,31.353435],[34.970507,31.616778],[35.225892,31.754341],[34.974641,31.866582],[35.18393,32.532511],[35.545665,32.393992]]]}}, +{"type":"Feature","id":"YEM","properties":{"name":"Yemen"},"geometry":{"type":"Polygon","coordinates":[[[53.108573,16.651051],[52.385206,16.382411],[52.191729,15.938433],[52.168165,15.59742],[51.172515,15.17525],[49.574576,14.708767],[48.679231,14.003202],[48.238947,13.94809],[47.938914,14.007233],[47.354454,13.59222],[46.717076,13.399699],[45.877593,13.347764],[45.62505,13.290946],[45.406459,13.026905],[45.144356,12.953938],[44.989533,12.699587],[44.494576,12.721653],[44.175113,12.58595],[43.482959,12.6368],[43.222871,13.22095],[43.251448,13.767584],[43.087944,14.06263],[42.892245,14.802249],[42.604873,15.213335],[42.805015,15.261963],[42.702438,15.718886],[42.823671,15.911742],[42.779332,16.347891],[43.218375,16.66689],[43.115798,17.08844],[43.380794,17.579987],[43.791519,17.319977],[44.062613,17.410359],[45.216651,17.433329],[45.399999,17.333335],[46.366659,17.233315],[46.749994,17.283338],[47.000005,16.949999],[47.466695,17.116682],[48.183344,18.166669],[49.116672,18.616668],[52.00001,19.000003],[52.782184,17.349742],[53.108573,16.651051]]]}}, +{"type":"Feature","id":"ZAF","properties":{"name":"South Africa"},"geometry":{"type":"Polygon","coordinates":[[[31.521001,-29.257387],[31.325561,-29.401978],[30.901763,-29.909957],[30.622813,-30.423776],[30.055716,-31.140269],[28.925553,-32.172041],[28.219756,-32.771953],[27.464608,-33.226964],[26.419452,-33.61495],[25.909664,-33.66704],[25.780628,-33.944646],[25.172862,-33.796851],[24.677853,-33.987176],[23.594043,-33.794474],[22.988189,-33.916431],[22.574157,-33.864083],[21.542799,-34.258839],[20.689053,-34.417175],[20.071261,-34.795137],[19.616405,-34.819166],[19.193278,-34.462599],[18.855315,-34.444306],[18.424643,-33.997873],[18.377411,-34.136521],[18.244499,-33.867752],[18.25008,-33.281431],[17.92519,-32.611291],[18.24791,-32.429131],[18.221762,-31.661633],[17.566918,-30.725721],[17.064416,-29.878641],[17.062918,-29.875954],[16.344977,-28.576705],[16.824017,-28.082162],[17.218929,-28.355943],[17.387497,-28.783514],[17.836152,-28.856378],[18.464899,-29.045462],[19.002127,-28.972443],[19.894734,-28.461105],[19.895768,-24.76779],[20.165726,-24.917962],[20.758609,-25.868136],[20.66647,-26.477453],[20.889609,-26.828543],[21.605896,-26.726534],[22.105969,-26.280256],[22.579532,-25.979448],[22.824271,-25.500459],[23.312097,-25.26869],[23.73357,-25.390129],[24.211267,-25.670216],[25.025171,-25.71967],[25.664666,-25.486816],[25.765849,-25.174845],[25.941652,-24.696373],[26.485753,-24.616327],[26.786407,-24.240691],[27.11941,-23.574323],[28.017236,-22.827754],[29.432188,-22.091313],[29.839037,-22.102216],[30.322883,-22.271612],[30.659865,-22.151567],[31.191409,-22.25151],[31.670398,-23.658969],[31.930589,-24.369417],[31.752408,-25.484284],[31.837778,-25.843332],[31.333158,-25.660191],[31.04408,-25.731452],[30.949667,-26.022649],[30.676609,-26.398078],[30.685962,-26.743845],[31.282773,-27.285879],[31.86806,-27.177927],[32.071665,-26.73382],[32.83012,-26.742192],[32.580265,-27.470158],[32.462133,-28.301011],[32.203389,-28.752405],[31.521001,-29.257387]],[[28.978263,-28.955597],[28.5417,-28.647502],[28.074338,-28.851469],[27.532511,-29.242711],[26.999262,-29.875954],[27.749397,-30.645106],[28.107205,-30.545732],[28.291069,-30.226217],[28.8484,-30.070051],[29.018415,-29.743766],[29.325166,-29.257387],[28.978263,-28.955597]]]}}, +{"type":"Feature","id":"ZMB","properties":{"name":"Zambia"},"geometry":{"type":"Polygon","coordinates":[[[32.759375,-9.230599],[33.231388,-9.676722],[33.485688,-10.525559],[33.31531,-10.79655],[33.114289,-11.607198],[33.306422,-12.435778],[32.991764,-12.783871],[32.688165,-13.712858],[33.214025,-13.97186],[30.179481,-14.796099],[30.274256,-15.507787],[29.516834,-15.644678],[28.947463,-16.043051],[28.825869,-16.389749],[28.467906,-16.4684],[27.598243,-17.290831],[27.044427,-17.938026],[26.706773,-17.961229],[26.381935,-17.846042],[25.264226,-17.73654],[25.084443,-17.661816],[25.07695,-17.578823],[24.682349,-17.353411],[24.033862,-17.295843],[23.215048,-17.523116],[22.562478,-16.898451],[21.887843,-16.08031],[21.933886,-12.898437],[24.016137,-12.911046],[23.930922,-12.565848],[24.079905,-12.191297],[23.904154,-11.722282],[24.017894,-11.237298],[23.912215,-10.926826],[24.257155,-10.951993],[24.314516,-11.262826],[24.78317,-11.238694],[25.418118,-11.330936],[25.75231,-11.784965],[26.553088,-11.92444],[27.16442,-11.608748],[27.388799,-12.132747],[28.155109,-12.272481],[28.523562,-12.698604],[28.934286,-13.248958],[29.699614,-13.257227],[29.616001,-12.178895],[29.341548,-12.360744],[28.642417,-11.971569],[28.372253,-11.793647],[28.49607,-10.789884],[28.673682,-9.605925],[28.449871,-9.164918],[28.734867,-8.526559],[29.002912,-8.407032],[30.346086,-8.238257],[30.740015,-8.340007],[31.157751,-8.594579],[31.556348,-8.762049],[32.191865,-8.930359],[32.759375,-9.230599]]]}}, +{"type":"Feature","id":"ZWE","properties":{"name":"Zimbabwe"},"geometry":{"type":"Polygon","coordinates":[[[31.191409,-22.25151],[30.659865,-22.151567],[30.322883,-22.271612],[29.839037,-22.102216],[29.432188,-22.091313],[28.794656,-21.639454],[28.02137,-21.485975],[27.727228,-20.851802],[27.724747,-20.499059],[27.296505,-20.39152],[26.164791,-19.293086],[25.850391,-18.714413],[25.649163,-18.536026],[25.264226,-17.73654],[26.381935,-17.846042],[26.706773,-17.961229],[27.044427,-17.938026],[27.598243,-17.290831],[28.467906,-16.4684],[28.825869,-16.389749],[28.947463,-16.043051],[29.516834,-15.644678],[30.274256,-15.507787],[30.338955,-15.880839],[31.173064,-15.860944],[31.636498,-16.07199],[31.852041,-16.319417],[32.328239,-16.392074],[32.847639,-16.713398],[32.849861,-17.979057],[32.654886,-18.67209],[32.611994,-19.419383],[32.772708,-19.715592],[32.659743,-20.30429],[32.508693,-20.395292],[32.244988,-21.116489],[31.191409,-22.25151]]]}} +]} diff --git a/test/spec/ol/format/geojsonformat.test.js b/test/spec/ol/format/geojsonformat.test.js new file mode 100644 index 0000000000..1d40411c62 --- /dev/null +++ b/test/spec/ol/format/geojsonformat.test.js @@ -0,0 +1,470 @@ +goog.provide('ol.test.reader.GeoJSON'); + + +describe('ol.format.GeoJSON', function() { + + var format; + beforeEach(function() { + format = new ol.format.GeoJSON(); + }); + + var pointGeoJSON = { + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [102.0, 0.5] + }, + 'properties': { + 'prop0': 'value0' + } + }; + + var lineStringGeoJSON = { + 'type': 'Feature', + 'geometry': { + 'type': 'LineString', + 'coordinates': [ + [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0] + ] + }, + 'properties': { + 'prop0': 'value0', + 'prop1': 0.0 + } + }; + + var polygonGeoJSON = { + 'type': 'Feature', + 'geometry': { + 'type': 'Polygon', + 'coordinates': [[ + [100.0, 0.0], [100.0, 1.0], [101.0, 1.0], [101.0, 0.0] + ]] + }, + 'properties': { + 'prop0': 'value0', + 'prop1': {'this': 'that'} + } + }; + + var featureCollectionGeoJSON = { + 'type': 'FeatureCollection', + 'features': [pointGeoJSON, lineStringGeoJSON, polygonGeoJSON] + }; + + var data = { + 'type': 'FeatureCollection', + 'features': [ + { + 'type': 'Feature', + 'properties': { + 'LINK_ID': 573730499, + 'RP_TYPE': 14, + 'RP_FUNC': 0, + 'DIRECTION': 2, + 'LOGKOD': '', + 'CHANGED': '', + 'USERID': '', + 'ST_NAME': '', + 'L_REFADDR': '', + 'L_NREFADDR': '', + 'R_REFADDR': '', + 'R_NREFADDR': '', + 'SPEED_CAT': '7', + 'ZIPCODE': '59330', + 'SHAPE_LEN': 46.3826 + }, + 'geometry': { + 'type': 'LineString', + 'coordinates': [ + [1549497.66985, 6403707.96], + [1549491.1, 6403710.1], + [1549488.03995, 6403716.7504], + [1549488.5401, 6403724.5504], + [1549494.37985, 6403733.54], + [1549499.6799, 6403738.0504], + [1549506.22, 6403739.2504] + ] + } + }, { + 'type': 'Feature', + 'properties': { + 'LINK_ID': 30760556, + 'RP_TYPE': 12, + 'RP_FUNC': 1, + 'DIRECTION': 0, + 'LOGKOD': '', + 'CHANGED': '', + 'USERID': '', + 'ST_NAME': 'BRUNNSGATAN', + 'L_REFADDR': '24', + 'L_NREFADDR': '16', + 'R_REFADDR': '', + 'R_NREFADDR': '', + 'SPEED_CAT': '7', + 'ZIPCODE': '59330', + 'SHAPE_LEN': 70.3106 + }, + 'geometry': { + 'type': 'LineString', + 'coordinates': [ + [1549754.2769, 6403854.8024], + [1549728.45985, 6403920.2] + ] + } + } + ] + }; + + describe('#readFeature', function() { + + it('can read a single point feature', function() { + var feature = format.readFeature(pointGeoJSON); + expect(feature).to.be.an(ol.Feature); + var geometry = feature.getGeometry(); + expect(geometry).to.be.an(ol.geom.Point); + expect(geometry.getCoordinates()).to.eql([102.0, 0.5]); + expect(feature.get('prop0')).to.be('value0'); + }); + + it('can read a single line string feature', function() { + var feature = format.readFeature(lineStringGeoJSON); + expect(feature).to.be.an(ol.Feature); + var geometry = feature.getGeometry(); + expect(geometry).to.be.an(ol.geom.LineString); + expect(geometry.getCoordinates()).to.eql( + [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]]); + expect(feature.get('prop0')).to.be('value0'); + expect(feature.get('prop1')).to.be(0.0); + }); + + it('can read a single polygon feature', function() { + var feature = format.readFeature(polygonGeoJSON); + expect(feature).to.be.an(ol.Feature); + var geometry = feature.getGeometry(); + expect(geometry).to.be.an(ol.geom.Polygon); + expect(geometry.getCoordinates()).to.eql([[ + [100.0, 0.0], [100.0, 1.0], [101.0, 1.0], [101.0, 0.0] + ]]); + expect(feature.get('prop0')).to.be('value0'); + expect(feature.get('prop1')).to.eql({'this': 'that'}); + }); + + it('can read a feature collection', function() { + var features = format.readFeatures(featureCollectionGeoJSON); + expect(features).to.have.length(3); + expect(features[0].getGeometry()).to.be.an(ol.geom.Point); + expect(features[1].getGeometry()).to.be.an(ol.geom.LineString); + expect(features[2].getGeometry()).to.be.an(ol.geom.Polygon); + }); + + }); + + describe('#readFeatures', function() { + + it('parses feature collection', function() { + var str = JSON.stringify(data), + array = format.readFeatures(str); + + expect(array.length).to.be(2); + + var first = array[0]; + expect(first).to.be.a(ol.Feature); + expect(first.get('LINK_ID')).to.be(573730499); + var firstGeom = first.getGeometry(); + expect(firstGeom).to.be.a(ol.geom.LineString); + + var second = array[1]; + expect(second).to.be.a(ol.Feature); + expect(second.get('ST_NAME')).to.be('BRUNNSGATAN'); + var secondGeom = second.getGeometry(); + expect(secondGeom).to.be.a(ol.geom.LineString); + }); + + it('parses countries.geojson', function(done) { + afterLoadText('spec/ol/format/geojson/countries.geojson', function(text) { + var result = format.readFeatures(text); + expect(result.length).to.be(179); + + var first = result[0]; + expect(first).to.be.a(ol.Feature); + expect(first.get('name')).to.be('Afghanistan'); + expect(first.getId()).to.be('AFG'); + var firstGeom = first.getGeometry(); + expect(firstGeom).to.be.a(ol.geom.Polygon); + expect(ol.extent.equals(firstGeom.getExtent(), + [60.52843, 29.318572, 75.158028, 38.486282])) + .to.be(true); + + var last = result[178]; + expect(last).to.be.a(ol.Feature); + expect(last.get('name')).to.be('Zimbabwe'); + expect(last.getId()).to.be('ZWE'); + var lastGeom = last.getGeometry(); + expect(lastGeom).to.be.a(ol.geom.Polygon); + expect(ol.extent.equals(lastGeom.getExtent(), + [25.264226, -22.271612, 32.849861, -15.507787])) + .to.be(true); + done(); + }); + + }); + + it('generates an array of features for Feature', function() { + + var format = new ol.format.GeoJSON(); + var json = { + type: 'Feature', + properties: { + bam: 'baz' + }, + geometry: { + type: 'LineString', + coordinates: [[1, 2], [3, 4]] + } + }; + var features = format.readFeatures(json); + + expect(features.length).to.be(1); + + var first = features[0]; + expect(first).to.be.a(ol.Feature); + expect(first.get('bam')).to.be('baz'); + expect(first.getGeometry()).to.be.a(ol.geom.LineString); + + expect(format.readProjection(json)).to.be(ol.proj.get('EPSG:4326')); + }); + + }); + + describe('#readGeometry', function() { + + it('parses point', function() { + var str = JSON.stringify({ + type: 'Point', + coordinates: [10, 20] + }); + + var obj = format.readGeometry(str); + expect(obj).to.be.a(ol.geom.Point); + expect(obj.getCoordinates()).to.eql([10, 20]); + }); + + it('parses linestring', function() { + var str = JSON.stringify({ + type: 'LineString', + coordinates: [[10, 20], [30, 40]] + }); + + var obj = format.readGeometry(str); + expect(obj).to.be.a(ol.geom.LineString); + expect(obj.getCoordinates()).to.eql([[10, 20], [30, 40]]); + }); + + it('parses polygon', function() { + var outer = [[0, 0], [10, 0], [10, 10], [0, 10], [0, 0]], + inner1 = [[1, 1], [2, 1], [2, 2], [1, 2], [1, 1]], + inner2 = [[8, 8], [9, 8], [9, 9], [8, 9], [8, 8]], + str = JSON.stringify({ + type: 'Polygon', + coordinates: [outer, inner1, inner2] + }); + + var obj = format.readGeometry(str); + expect(obj).to.be.a(ol.geom.Polygon); + var rings = obj.getLinearRings(); + expect(rings.length).to.be(3); + expect(rings[0]).to.be.a(ol.geom.LinearRing); + expect(rings[1]).to.be.a(ol.geom.LinearRing); + expect(rings[2]).to.be.a(ol.geom.LinearRing); + }); + + it.skip('parses geometry collection', function() { + var str = JSON.stringify({ + type: 'GeometryCollection', + geometries: [ + {type: 'Point', coordinates: [10, 20]}, + {type: 'LineString', coordinates: [[30, 40], [50, 60]]} + ] + }); + + var array = format.readGeometry(str); + expect(array.length).to.be(2); + expect(array[0]).to.be.a(ol.geom.Point); + expect(array[1]).to.be.a(ol.geom.LineString); + }); + + }); + + describe('#readProjection', function() { + + it('reads named crs from top-level object', function() { + + var json = { + type: 'FeatureCollection', + crs: { + type: 'name', + properties: { + name: 'EPSG:3857' + } + }, + features: [{ + type: 'Feature', + properties: { + foo: 'bar' + }, + geometry: { + type: 'Point', + coordinates: [1, 2] + } + }, { + type: 'Feature', + properties: { + bam: 'baz' + }, + geometry: { + type: 'LineString', + coordinates: [[1, 2], [3, 4]] + } + }] + }; + var features = format.readFeatures(json); + + expect(features.length).to.be(2); + + var first = features[0]; + expect(first).to.be.a(ol.Feature); + expect(first.get('foo')).to.be('bar'); + expect(first.getGeometry()).to.be.a(ol.geom.Point); + + var second = features[1]; + expect(second).to.be.a(ol.Feature); + expect(second.get('bam')).to.be('baz'); + expect(second.getGeometry()).to.be.a(ol.geom.LineString); + + expect(format.readProjection(json)).to.be(ol.proj.get('EPSG:3857')); + + }); + + it('accepts null crs', function() { + + var json = { + type: 'FeatureCollection', + crs: null, + features: [{ + type: 'Feature', + properties: { + foo: 'bar' + }, + geometry: { + type: 'Point', + coordinates: [1, 2] + } + }, { + type: 'Feature', + properties: { + bam: 'baz' + }, + geometry: { + type: 'LineString', + coordinates: [[1, 2], [3, 4]] + } + }] + }; + var features = format.readFeatures(json); + + expect(features.length).to.be(2); + + var first = features[0]; + expect(first).to.be.a(ol.Feature); + expect(first.get('foo')).to.be('bar'); + expect(first.getGeometry()).to.be.a(ol.geom.Point); + + var second = features[1]; + expect(second).to.be.a(ol.Feature); + expect(second.get('bam')).to.be('baz'); + expect(second.getGeometry()).to.be.a(ol.geom.LineString); + + expect(format.readProjection(json)).to.be(ol.proj.get('EPSG:4326')); + + }); + + }); + + describe('#writeFeatures', function() { + + it('encodes feature collection', function() { + var str = JSON.stringify(data), + array = format.readFeatures(str); + var geojson = format.writeFeatures(array); + var result = format.readFeatures(geojson); + expect(array.length).to.equal(result.length); + var got, exp, gotProp, expProp; + for (var i = 0, ii = array.length; i < ii; ++i) { + got = array[i]; + exp = result[i]; + expect(got.getGeometry().getCoordinates()).to.eql( + exp.getGeometry().getCoordinates()); + gotProp = got.getProperties(); + delete gotProp.geometry; + expProp = exp.getProperties(); + delete expProp.geometry; + expect(gotProp).to.eql(expProp); + } + }); + + }); + + describe('#writeGeometry', function() { + + it('encodes point', function() { + var point = new ol.geom.Point([10, 20]); + var geojson = format.writeGeometry(point); + expect(point.getCoordinates()).to.eql( + format.readGeometry(geojson).getCoordinates()); + }); + + it('encodes linestring', function() { + var linestring = new ol.geom.LineString([[10, 20], [30, 40]]); + var geojson = format.writeGeometry(linestring); + expect(linestring.getCoordinates()).to.eql( + format.readGeometry(geojson).getCoordinates()); + }); + + it('encodes polygon', function() { + var outer = [[0, 0], [10, 0], [10, 10], [0, 10], [0, 0]], + inner1 = [[1, 1], [2, 1], [2, 2], [1, 2], [1, 1]], + inner2 = [[8, 8], [9, 8], [9, 9], [8, 9], [8, 8]]; + var polygon = new ol.geom.Polygon([outer, inner1, inner2]); + var geojson = format.writeGeometry(polygon); + expect(polygon.getCoordinates()).to.eql( + format.readGeometry(geojson).getCoordinates()); + }); + + it.skip('encodes geometry collection', function() { + var collection = new ol.geom.GeometryCollection([ + new ol.geom.Point([10, 20]), + new ol.geom.LineString([[30, 40], [50, 60]]) + ]); + var geojson = format.writeGeometry(collection); + var got = format.readGeometry(geojson); + var components = collection.getComponents(); + expect(components.length).to.equal(got.length); + for (var i = 0, ii = components.length; i < ii; ++i) { + expect(components[i].getCoordinates()).to.eql(got[i].getCoordinates()); + } + }); + + }); + +}); + + +goog.require('ol.Feature'); +goog.require('ol.extent'); +goog.require('ol.format.GeoJSON'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.LinearRing'); +goog.require('ol.geom.Point'); +goog.require('ol.geom.Polygon'); +goog.require('ol.proj'); From 0941f06c0b3d1e93c6584fb5ac4806c7972f4b53 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:20:47 +0100 Subject: [PATCH 547/919] Use ol.format.GeoJSON in geojson example --- examples/geojson.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 8ab63eedbb..e42e73efac 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -62,9 +62,14 @@ var styleFunction = function(feature, resolution) { return styles[feature.getGeometry().getType()]; }; -var vectorSource = new ol.source.Vector(); -new ol.format.GeoJSON().readObject({ +var features = new ol.format.GeoJSON().readFeatures({ 'type': 'FeatureCollection', + 'crs': { + 'type': 'name', + 'properties': { + 'name': 'EPSG:3857' + } + }, 'features': [ { 'type': 'Feature', @@ -118,10 +123,12 @@ new ol.format.GeoJSON().readObject({ } } ] -}, vectorSource.addFeature, vectorSource); +}); var vectorLayer = new ol.layer.Vector({ - source: vectorSource, + source: new ol.source.Vector({ + features: features + }), styleFunction: styleFunction }); var tmpLineFeature = new ol.Feature( From 514ebb752b3a3ede55f6df0d19ea2f15fdb3dde1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:21:12 +0100 Subject: [PATCH 548/919] Use ol.format.GeoJSON in icon example --- examples/icon.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/icon.js b/examples/icon.js index 4297145edf..377a9a51af 100644 --- a/examples/icon.js +++ b/examples/icon.js @@ -18,9 +18,7 @@ var raster = new ol.layer.Tile({ }) }); -var vectorSource = new ol.source.Vector(); - -new ol.format.GeoJSON().readObject({ +var features = new ol.format.GeoJSON().readFeatures({ 'type': 'FeatureCollection', 'features': [{ 'type': 'Feature', @@ -34,7 +32,11 @@ new ol.format.GeoJSON().readObject({ 'coordinates': [0, 0] } }] -}, vectorSource.addFeature, vectorSource); +}); + +var vectorSource = new ol.source.Vector({ + features: features +}); var styleArray = [new ol.style.Style({ image: ol.icon.renderIcon('data/icon.png') From 28c7ecc0145d01b67aaa7246e344934a09a74852 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 18:36:33 +0100 Subject: [PATCH 549/919] Add ol.source.VectorFile --- src/objectliterals.jsdoc | 14 +++ src/ol/source/vectorfilesource.exports | 1 + src/ol/source/vectorfilesource.js | 125 +++++++++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 src/ol/source/vectorfilesource.exports create mode 100644 src/ol/source/vectorfilesource.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 8566f748d0..d4ac12b859 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -617,6 +617,20 @@ * @property {ol.source.State|undefined} state State. */ +/** + * @typedef {Object} ol.source.VectorFileOptions + * @property {Array.|undefined} attributions Attributions. + * @property {Document|undefined} doc Document. + * @property {ol.Extent|undefined} extent Extent. + * @property {ol.format.Format} format Format. + * @property {string|undefined} logo Logo. + * @property {Node|undefined} node Node. + * @property {Object|undefined} object Object. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {string|undefined} text Text. + * @property {string|undefined} url URL. + */ + /** * @typedef {Object} ol.source.WMTSOptions * @property {Array.|undefined} attributions Attributions. diff --git a/src/ol/source/vectorfilesource.exports b/src/ol/source/vectorfilesource.exports new file mode 100644 index 0000000000..285db94e72 --- /dev/null +++ b/src/ol/source/vectorfilesource.exports @@ -0,0 +1 @@ +@exportClass ol.source.VectorFile ol.source.VectorFileOptions diff --git a/src/ol/source/vectorfilesource.js b/src/ol/source/vectorfilesource.js new file mode 100644 index 0000000000..7d4493dec6 --- /dev/null +++ b/src/ol/source/vectorfilesource.js @@ -0,0 +1,125 @@ +// FIXME remove reprojectTo + +goog.provide('ol.source.VectorFile'); + +goog.require('goog.asserts'); +goog.require('goog.net.XhrIo'); +goog.require('ol.format.FormatType'); +goog.require('ol.proj'); +goog.require('ol.source.State'); +goog.require('ol.source.Vector'); + + + +/** + * @constructor + * @extends {ol.source.Vector} + * @param {ol.source.VectorFileOptions=} opt_options Options. + */ +ol.source.VectorFile = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + goog.base(this, { + attributions: options.attributions, + extent: options.extent, + logo: options.logo, + projection: options.projection + }); + + /** + * @type {ol.format.Format} + * @protected + */ + this.format = options.format; + + /** + * @type {ol.proj.Projection} + * @private + */ + this.reprojectTo_ = goog.isDef(options.reprojectTo) ? + ol.proj.get(options.reprojectTo) : ol.proj.get('EPSG:3857'); + + if (goog.isDef(options.doc)) { + this.readFeatures_(options.doc); + } + + if (goog.isDef(options.node)) { + this.readFeatures_(options.node); + } + + if (goog.isDef(options.object)) { + this.readFeatures_(options.object); + } + + if (goog.isDef(options.text)) { + this.readFeatures_(options.text); + } + + if (goog.isDef(options.url)) { + this.setState(ol.source.State.LOADING); + goog.net.XhrIo.send(options.url, goog.bind(this.handleXhrIo_, this)); + } + +}; +goog.inherits(ol.source.VectorFile, ol.source.Vector); + + +/** + * @param {Event} event Event. + * @private + */ +ol.source.VectorFile.prototype.handleXhrIo_ = function(event) { + var xhrIo = /** @type {goog.net.XhrIo} */ (event.target); + if (xhrIo.isSuccess()) { + var type = this.format.getType(); + /** @type {Document|Node|Object|string|undefined} */ + var source; + if (type == ol.format.FormatType.BINARY) { + // FIXME + } else if (type == ol.format.FormatType.JSON) { + source = xhrIo.getResponseJson(); + } else if (type == ol.format.FormatType.TEXT) { + source = xhrIo.getResponseText(); + } else if (type == ol.format.FormatType.XML) { + source = xhrIo.getResponseXml(); + } else { + goog.asserts.fail(); + } + if (goog.isDef(source)) { + this.readFeatures_(source); + } else { + goog.asserts.fail(); + this.setState(ol.source.State.ERROR); + } + } else { + this.setState(ol.source.State.ERROR); + } +}; + + +/** + * @param {Document|Node|Object|string} source Source. + * @private + */ +ol.source.VectorFile.prototype.readFeatures_ = function(source) { + var format = this.format; + var features = format.readFeatures(source); + var featureProjection = format.readProjection(source); + var transform; + if (!ol.proj.equivalent(featureProjection, this.reprojectTo_)) { + transform = ol.proj.getTransform(featureProjection, this.reprojectTo_); + } else { + transform = null; + } + var i, ii; + for (i = 0, ii = features.length; i < ii; ++i) { + var feature = features[i]; + var geometry = feature.getGeometry(); + if (!goog.isNull(geometry) && !goog.isNull(transform)) { + geometry.transform(transform); + } + this.addFeature(feature); + } + this.setState(ol.source.State.READY); +}; From df975aa55878b2775a5d13d7f3bd91912f44ae79 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 18:37:19 +0100 Subject: [PATCH 550/919] Add ol.source.GeoJSON --- src/objectliterals.jsdoc | 9 +++++--- src/ol/source/geojsonsource.exports | 1 + src/ol/source/geojsonsource.js | 32 +++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 src/ol/source/geojsonsource.exports create mode 100644 src/ol/source/geojsonsource.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index d4ac12b859..5b01f40a5e 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -479,11 +479,14 @@ /** * @typedef {Object} ol.source.GeoJSONOptions * @property {Array.|undefined} attributions Attributions. + * @property {ol.proj.ProjectionLike} defaultProjection Default projection. + * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. - * @property {GeoJSONObject|undefined} geoJSON Object. + * @property {GeoJSONObject|undefined} object Object. * @property {ol.proj.ProjectionLike} projection Projection. - * @property {string|undefined} string String. - * @proprtty {string|undefined} url URL. + * @property {ol.proj.ProjectionLike} reprojectTo Re-project to. + * @property {string|undefined} text Text. + * @property {string|undefined} url URL. */ /** diff --git a/src/ol/source/geojsonsource.exports b/src/ol/source/geojsonsource.exports new file mode 100644 index 0000000000..abf4c9f35e --- /dev/null +++ b/src/ol/source/geojsonsource.exports @@ -0,0 +1 @@ +@exportClass ol.source.GeoJSON ol.source.GeoJSONOptions diff --git a/src/ol/source/geojsonsource.js b/src/ol/source/geojsonsource.js new file mode 100644 index 0000000000..5e0613faa3 --- /dev/null +++ b/src/ol/source/geojsonsource.js @@ -0,0 +1,32 @@ +goog.provide('ol.source.GeoJSON'); + +goog.require('ol.format.GeoJSON'); +goog.require('ol.source.VectorFile'); + + + +/** + * @constructor + * @extends {ol.source.VectorFile} + * @param {ol.source.GeoJSONOptions=} opt_options Options. + */ +ol.source.GeoJSON = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + goog.base(this, { + attributions: options.attributions, + extent: options.extent, + format: new ol.format.GeoJSON({ + defaultProjection: options.defaultProjection + }), + logo: options.logo, + object: options.object, + projection: options.projection, + reprojectTo: options.reprojectTo, + text: options.text, + url: options.url + }); + +}; +goog.inherits(ol.source.GeoJSON, ol.source.VectorFile); From 94d392c0c6b4427bcd47be658540b3f148f7f918 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 19:17:44 +0100 Subject: [PATCH 551/919] Use ol.source.GeoJSON in geojson example --- examples/geojson.js | 130 ++++++++++++++++++++++---------------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index e42e73efac..c081dc4067 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -2,14 +2,13 @@ goog.require('ol.Feature'); goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); -goog.require('ol.format.GeoJSON'); goog.require('ol.geom.LineString'); goog.require('ol.geom.Point'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.shape'); +goog.require('ol.source.GeoJSON'); goog.require('ol.source.OSM'); -goog.require('ol.source.Vector'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); @@ -62,73 +61,74 @@ var styleFunction = function(feature, resolution) { return styles[feature.getGeometry().getType()]; }; -var features = new ol.format.GeoJSON().readFeatures({ - 'type': 'FeatureCollection', - 'crs': { - 'type': 'name', - 'properties': { - 'name': 'EPSG:3857' - } - }, - 'features': [ - { - 'type': 'Feature', - 'geometry': { - 'type': 'Point', - 'coordinates': [0, 0] - } - }, - { - 'type': 'Feature', - 'geometry': { - 'type': 'LineString', - 'coordinates': [[4e6, -2e6], [8e6, 2e6]] - } - }, - { - 'type': 'Feature', - 'geometry': { - 'type': 'LineString', - 'coordinates': [[4e6, 2e6], [8e6, -2e6]] - } - }, - { - 'type': 'Feature', - 'geometry': { - 'type': 'Polygon', - 'coordinates': [[[-5e6, -1e6], [-4e6, 1e6], [-3e6, -1e6]]] - } - }, - { - 'type': 'Feature', - 'geometry': { - 'type': 'MultiLineString', - 'coordinates': [ - [[-1e6, -7.5e5], [-1e6, 7.5e5]], - [[1e6, -7.5e5], [1e6, 7.5e5]], - [[-7.5e5, -1e6], [7.5e5, -1e6]], - [[-7.5e5, 1e6], [7.5e5, 1e6]] +var vectorSource = new ol.source.GeoJSON( + /** @type {ol.source.GeoJSONOptions} */ ({ + object: { + 'type': 'FeatureCollection', + 'crs': { + 'type': 'name', + 'properties': { + 'name': 'EPSG:3857' + } + }, + 'features': [ + { + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [0, 0] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'LineString', + 'coordinates': [[4e6, -2e6], [8e6, 2e6]] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'LineString', + 'coordinates': [[4e6, 2e6], [8e6, -2e6]] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'Polygon', + 'coordinates': [[[-5e6, -1e6], [-4e6, 1e6], [-3e6, -1e6]]] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'MultiLineString', + 'coordinates': [ + [[-1e6, -7.5e5], [-1e6, 7.5e5]], + [[1e6, -7.5e5], [1e6, 7.5e5]], + [[-7.5e5, -1e6], [7.5e5, -1e6]], + [[-7.5e5, 1e6], [7.5e5, 1e6]] + ] + } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'MultiPolygon', + 'coordinates': [ + [[[-5e6, 6e6], [-5e6, 8e6], [-3e6, 8e6], [-3e6, 6e6]]], + [[[-2e6, 6e6], [-2e6, 8e6], [0e6, 8e6], [0e6, 6e6]]], + [[[1e6, 6e6], [1e6, 8e6], [3e6, 8e6], [3e6, 6e6]]] + ] + } + } ] } - }, - { - 'type': 'Feature', - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - [[[-5e6, 6e6], [-5e6, 8e6], [-3e6, 8e6], [-3e6, 6e6]]], - [[[-2e6, 6e6], [-2e6, 8e6], [0e6, 8e6], [0e6, 6e6]]], - [[[1e6, 6e6], [1e6, 8e6], [3e6, 8e6], [3e6, 6e6]]] - ] - } - } - ] -}); + })); var vectorLayer = new ol.layer.Vector({ - source: new ol.source.Vector({ - features: features - }), + source: vectorSource, styleFunction: styleFunction }); var tmpLineFeature = new ol.Feature( From a814dd11cad48cb559b7f8cfcdf452e01fd1ce34 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 19:18:05 +0100 Subject: [PATCH 552/919] Use ol.source.GeoJSON in icon example --- examples/icon.js | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/examples/icon.js b/examples/icon.js index 377a9a51af..246c00e653 100644 --- a/examples/icon.js +++ b/examples/icon.js @@ -3,12 +3,11 @@ goog.require('ol.Overlay'); goog.require('ol.OverlayPositioning'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); -goog.require('ol.format.GeoJSON'); goog.require('ol.icon'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); +goog.require('ol.source.GeoJSON'); goog.require('ol.source.TileJSON'); -goog.require('ol.source.Vector'); goog.require('ol.style.Style'); @@ -18,32 +17,28 @@ var raster = new ol.layer.Tile({ }) }); -var features = new ol.format.GeoJSON().readFeatures({ - 'type': 'FeatureCollection', - 'features': [{ - 'type': 'Feature', - 'properties': { - 'name': 'Null Island', - 'population': 4000, - 'rainfall': 500 - }, - 'geometry': { - 'type': 'Point', - 'coordinates': [0, 0] - } - }] -}); - -var vectorSource = new ol.source.Vector({ - features: features -}); - var styleArray = [new ol.style.Style({ image: ol.icon.renderIcon('data/icon.png') })]; var vector = new ol.layer.Vector({ - source: vectorSource, + source: new ol.source.GeoJSON(/** @type {ol.source.GeoJSONOptions} */ ({ + object: { + 'type': 'FeatureCollection', + 'features': [{ + 'type': 'Feature', + 'properties': { + 'name': 'Null Island', + 'population': 4000, + 'rainfall': 500 + }, + 'geometry': { + 'type': 'Point', + 'coordinates': [0, 0] + } + }] + } + })), styleFunction: function(feature, resolution) { return styleArray; } From b31385fcb608952aa10c0c11317efe95c93b4af9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 19:18:25 +0100 Subject: [PATCH 553/919] Use ol.source.GeoJSON in vector-layer example --- examples/vector-layer.js | 57 ++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 3962958771..35b95c69b2 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -1,31 +1,15 @@ goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); -goog.require('ol.format.GeoJSON'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); -goog.require('ol.proj'); +goog.require('ol.source.GeoJSON'); goog.require('ol.source.MapQuestOpenAerial'); -goog.require('ol.source.Vector'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); -var map = new ol.Map({ - layers: [ - new ol.layer.Tile({ - source: new ol.source.MapQuestOpenAerial() - }) - ], - renderer: ol.RendererHint.CANVAS, - target: 'map', - view: new ol.View2D({ - center: [0, 0], - zoom: 2 - }) -}); -var vectorSource = new ol.source.Vector(); var styleArray = [new ol.style.Style({ fill: new ol.style.Fill({ color: 'rgba(255, 255, 255, 0.6)' @@ -36,23 +20,28 @@ var styleArray = [new ol.style.Style({ }) })]; -var vectorLayer; -$.getJSON('data/countries.geojson', function(data) { - var format = new ol.format.GeoJSON(); - var transformFn = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); - format.readObject(data, function(feature) { - var geometry = feature.getGeometry(); - geometry.transform(transformFn); - feature.setGeometry(geometry); - vectorSource.addFeature(feature); - }); - vectorLayer = new ol.layer.Vector({ - source: vectorSource, - styleFunction: function(feature, resolution) { - return styleArray; - } - }); - map.getLayers().push(vectorLayer); +var vectorLayer = new ol.layer.Vector({ + source: new ol.source.GeoJSON({ + url: 'data/countries.geojson' + }), + styleFunction: function(feature, resolution) { + return styleArray; + } +}); + +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + source: new ol.source.MapQuestOpenAerial() + }), + vectorLayer + ], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) }); var highlight; From 7b3721fa3fa74d1277d56054f7ea5ddbcb64d3e5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 10 Dec 2013 15:35:43 +0100 Subject: [PATCH 554/919] Use ol.source.GeoJSON in complex-geometry example --- examples/complex-geometry.js | 45 +++++++++++++++++------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/examples/complex-geometry.js b/examples/complex-geometry.js index 039ca24b3d..6f5f4fdee0 100644 --- a/examples/complex-geometry.js +++ b/examples/complex-geometry.js @@ -5,15 +5,14 @@ goog.require('ol.View2D'); goog.require('ol.control'); goog.require('ol.control.ScaleLine'); goog.require('ol.control.ScaleLineUnits'); -goog.require('ol.format.GeoJSON'); goog.require('ol.geom.LineString'); goog.require('ol.geom.Point'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.proj'); goog.require('ol.shape'); +goog.require('ol.source.GeoJSON'); goog.require('ol.source.TileWMS'); -goog.require('ol.source.Vector'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); @@ -23,6 +22,20 @@ var projection = ol.proj.configureProj4jsProjection({ extent: [485869.5728, 76443.1884, 837076.5648, 299941.7864] }); +var vectorSource = new ol.source.GeoJSON({ + defaultProjection: projection, + url: 'data/mtbland.geojson' +}); + +var styleArray = [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'rgba(128,0,128,0.8)', + lineCap: 'round', + lineJoin: 'round', + width: 3 + }) +})]; + var extent = [420000, 30000, 900000, 350000]; var layers = [ new ol.layer.Tile({ @@ -41,6 +54,12 @@ var layers = [ }, extent: extent }) + }), + new ol.layer.Vector({ + source: vectorSource, + styleFunction: function(feature, resolution) { + return styleArray; + } }) ]; @@ -61,28 +80,6 @@ var map = new ol.Map({ }) }); -var styleArray = [new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'rgba(128,0,128,0.8)', - lineCap: 'round', - lineJoin: 'round', - width: 3 - }) -})]; - -var vectorSource = new ol.source.Vector(); -$.getJSON('data/mtbland.geojson', function(data) { - var format = new ol.format.GeoJSON(); - format.readObject(data, vectorSource.addFeature, vectorSource); - var vectorLayer = new ol.layer.Vector({ - source: vectorSource, - styleFunction: function(feature) { - return styleArray; - } - }); - map.getLayers().push(vectorLayer); -}); - var point = null; var line = null; var displaySnap = function(coordinate) { From fda22171669b023ded2f51713b6e0de0872405ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 11 Dec 2013 15:01:58 +0100 Subject: [PATCH 555/919] Hit detect rotated features --- src/ol/render/canvas/canvasreplay.js | 7 +++++-- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 11 ++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 85807afa6e..1aeaf5f3be 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1165,6 +1165,7 @@ ol.render.canvas.ReplayGroup.prototype.replayForward_ = /** * @param {ol.Extent} extent Extent. * @param {number} resolution Resolution. + * @param {number} rotation Rotation. * @param {ol.Coordinate} coordinate Coordinate. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. @@ -1173,11 +1174,13 @@ ol.render.canvas.ReplayGroup.prototype.replayForward_ = * @template T */ ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtCoordinate = function( - extent, resolution, coordinate, renderGeometryFunction, callback) { + extent, resolution, rotation, coordinate, + renderGeometryFunction, callback) { var transform = this.hitDetectionTransform_; ol.vec.Mat4.makeTransform2D(transform, 0.5, 0.5, - 1 / resolution, -1 / resolution, 0, -coordinate[0], -coordinate[1]); + 1 / resolution, -1 / resolution, -rotation, + -coordinate[0], -coordinate[1]); /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index d91404dd80..ba41325eca 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -41,6 +41,12 @@ ol.renderer.canvas.VectorLayer = function(mapRenderer, vectorLayer) { */ this.renderedResolution_ = NaN; + /** + * @private + * @type {number} + */ + this.renderedRotation_ = NaN; + /** * @private * @type {ol.Extent} @@ -91,12 +97,14 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = } else { goog.asserts.assert(!ol.extent.isEmpty(this.renderedExtent_)); goog.asserts.assert(!isNaN(this.renderedResolution_)); + goog.asserts.assert(!isNaN(this.renderedRotation_)); var coordinate = this.getMap().getCoordinateFromPixel(pixel); var layer = this.getLayer(); var renderGeometryFunction = this.getRenderGeometryFunction_(); goog.asserts.assert(goog.isFunction(renderGeometryFunction)); return this.replayGroup_.forEachGeometryAtCoordinate(this.renderedExtent_, - this.renderedResolution_, coordinate, renderGeometryFunction, + this.renderedResolution_, this.renderedRotation_, coordinate, + renderGeometryFunction, /** * @param {ol.geom.Geometry} geometry Geometry. * @param {Object} data Data. @@ -200,6 +208,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = this.renderedResolution_ = frameStateResolution; this.renderedRevision_ = vectorSource.getRevision(); + this.renderedRotation_ = frameState.view2DState.rotation; if (!replayGroup.isEmpty()) { this.replayGroup_ = replayGroup; } From 86995a8cb48832e1504ed12f5b19d8bd7b903e75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 11 Dec 2013 15:45:08 +0100 Subject: [PATCH 556/919] Rename reversedInstructions array to hitDetectionInstructions --- src/ol/render/canvas/canvasreplay.js | 50 ++++++++++++++-------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 1aeaf5f3be..843b4050f9 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -80,7 +80,7 @@ ol.render.canvas.Replay = function() { * @protected * @type {Array.<*>} */ - this.reversedInstructions = []; + this.hitDetectionInstructions = []; /** * @private @@ -132,7 +132,7 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { this.instructions.push(this.beginGeometryInstruction1_); this.beginGeometryInstruction2_ = [ol.render.canvas.Instruction.BEGIN_GEOMETRY, geometry, 0]; - this.reversedInstructions.push(this.beginGeometryInstruction2_); + this.hitDetectionInstructions.push(this.beginGeometryInstruction2_); }; @@ -289,7 +289,7 @@ ol.render.canvas.Replay.prototype.replayForward = */ ol.render.canvas.Replay.prototype.replayBackward = function(context, transform, renderGeometryFunction, opt_geometryCallback) { - var instructions = this.reversedInstructions; + var instructions = this.hitDetectionInstructions; return this.replay_(context, transform, renderGeometryFunction, instructions, opt_geometryCallback); }; @@ -299,24 +299,24 @@ ol.render.canvas.Replay.prototype.replayBackward = * @private */ ol.render.canvas.Replay.prototype.reverseInstructions_ = function() { - var reversedInstructions = this.reversedInstructions; + var hitDetectionInstructions = this.hitDetectionInstructions; // step 1 - reverse array - reversedInstructions.reverse(); + hitDetectionInstructions.reverse(); // step 2 - reverse instructions within geometry blocks var i; - var n = reversedInstructions.length; + var n = hitDetectionInstructions.length; var instruction; var type; var begin = -1; for (i = 0; i < n; ++i) { - instruction = reversedInstructions[i]; + instruction = hitDetectionInstructions[i]; type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); if (type == ol.render.canvas.Instruction.END_GEOMETRY) { goog.asserts.assert(begin == -1); begin = i; } else if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) { goog.asserts.assert(begin >= 0); - ol.array.reverseSubArray(this.reversedInstructions, begin, i); + ol.array.reverseSubArray(this.hitDetectionInstructions, begin, i); begin = -1; } } @@ -377,12 +377,12 @@ ol.render.canvas.Replay.prototype.endGeometry = this.beginGeometryInstruction1_[2] = this.instructions.length; this.beginGeometryInstruction1_ = null; goog.asserts.assert(!goog.isNull(this.beginGeometryInstruction2_)); - this.beginGeometryInstruction2_[2] = this.reversedInstructions.length; + this.beginGeometryInstruction2_[2] = this.hitDetectionInstructions.length; this.beginGeometryInstruction2_ = null; var endGeometryInstruction = [ol.render.canvas.Instruction.END_GEOMETRY, geometry, data]; this.instructions.push(endGeometryInstruction); - this.reversedInstructions.push(endGeometryInstruction); + this.hitDetectionInstructions.push(endGeometryInstruction); }; @@ -509,7 +509,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = this.image_, this.snapToPixel_ ]; this.instructions.push(drawImageInstruction); - this.reversedInstructions.push(drawImageInstruction); + this.hitDetectionInstructions.push(drawImageInstruction); this.endGeometry(pointGeometry, data); }; @@ -539,7 +539,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = this.image_, this.snapToPixel_ ]; this.instructions.push(drawImageInstruction); - this.reversedInstructions.push(drawImageInstruction); + this.hitDetectionInstructions.push(drawImageInstruction); this.endGeometry(multiPointGeometry, data); }; @@ -639,7 +639,7 @@ ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_ = var moveToLineToInstruction = [ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myBegin, myEnd]; this.instructions.push(moveToLineToInstruction); - this.reversedInstructions.push(moveToLineToInstruction); + this.hitDetectionInstructions.push(moveToLineToInstruction); return end; }; @@ -701,12 +701,12 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); this.setStrokeStyle_(); this.beginGeometry(lineStringGeometry); - this.reversedInstructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); + this.hitDetectionInstructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); var flatCoordinates = lineStringGeometry.getFlatCoordinates(); var stride = lineStringGeometry.getStride(); this.drawFlatCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); - this.reversedInstructions.push([ol.render.canvas.Instruction.STROKE]); + this.hitDetectionInstructions.push([ol.render.canvas.Instruction.STROKE]); this.endGeometry(lineStringGeometry, data); }; @@ -725,7 +725,7 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = } ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); this.setStrokeStyle_(); - this.reversedInstructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); + this.hitDetectionInstructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); this.beginGeometry(multiLineStringGeometry); var ends = multiLineStringGeometry.getEnds(); var flatCoordinates = multiLineStringGeometry.getFlatCoordinates(); @@ -736,7 +736,7 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = offset = this.drawFlatCoordinates_( flatCoordinates, offset, ends[i], stride); } - this.reversedInstructions.push([ol.render.canvas.Instruction.STROKE]); + this.hitDetectionInstructions.push([ol.render.canvas.Instruction.STROKE]); this.endGeometry(multiLineStringGeometry, data); }; @@ -840,7 +840,7 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = var state = this.state_; var beginPathInstruction = [ol.render.canvas.Instruction.BEGIN_PATH]; this.instructions.push(beginPathInstruction); - this.reversedInstructions.push(beginPathInstruction); + this.hitDetectionInstructions.push(beginPathInstruction); var i, ii; for (i = 0, ii = ends.length; i < ii; ++i) { var end = ends[i]; @@ -851,7 +851,7 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = [ol.render.canvas.Instruction.MOVE_TO_LINE_TO, myBegin, myEnd]; var closePathInstruction = [ol.render.canvas.Instruction.CLOSE_PATH]; this.instructions.push(moveToLineToInstruction, closePathInstruction); - this.reversedInstructions.push(moveToLineToInstruction, + this.hitDetectionInstructions.push(moveToLineToInstruction, closePathInstruction); offset = end; } @@ -860,13 +860,13 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = if (goog.isDef(state.fillStyle)) { var fillInstruction = [ol.render.canvas.Instruction.FILL]; this.instructions.push(fillInstruction); - this.reversedInstructions.push(fillInstruction); + this.hitDetectionInstructions.push(fillInstruction); } if (goog.isDef(state.strokeStyle)) { goog.asserts.assert(goog.isDef(state.lineWidth)); var strokeInstruction = [ol.render.canvas.Instruction.STROKE]; this.instructions.push(strokeInstruction); - this.reversedInstructions.push(strokeInstruction); + this.hitDetectionInstructions.push(strokeInstruction); } return offset; }; @@ -891,11 +891,11 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = this.setFillStrokeStyles_(); this.beginGeometry(polygonGeometry); if (goog.isDef(state.fillStyle)) { - this.reversedInstructions.push( + this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); } if (goog.isDef(state.strokeStyle)) { - this.reversedInstructions.push( + this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin, state.miterLimit, state.lineDash]); @@ -927,11 +927,11 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = this.setFillStrokeStyles_(); this.beginGeometry(multiPolygonGeometry); if (goog.isDef(state.fillStyle)) { - this.reversedInstructions.push( + this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); } if (goog.isDef(state.strokeStyle)) { - this.reversedInstructions.push( + this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin, state.miterLimit, state.lineDash]); From 3019933cb6356fc5307afe5b4b62a9d64c18240f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 11 Dec 2013 15:45:35 +0100 Subject: [PATCH 557/919] Rename reverseInstructions_ function to reverseHitDetectionInstructions_ --- src/ol/render/canvas/canvasreplay.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 843b4050f9..24229b0f81 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -298,7 +298,8 @@ ol.render.canvas.Replay.prototype.replayBackward = /** * @private */ -ol.render.canvas.Replay.prototype.reverseInstructions_ = function() { +ol.render.canvas.Replay.prototype.reverseHitDetectionInstructions_ = + function() { var hitDetectionInstructions = this.hitDetectionInstructions; // step 1 - reverse array hitDetectionInstructions.reverse(); @@ -548,7 +549,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = * @inheritDoc */ ol.render.canvas.ImageReplay.prototype.finish = function() { - this.reverseInstructions_(); + this.reverseHitDetectionInstructions_(); // FIXME this doesn't really protect us against further calls to draw*Geometry this.anchorX_ = undefined; this.anchorY_ = undefined; @@ -750,7 +751,7 @@ ol.render.canvas.LineStringReplay.prototype.finish = function() { if (state.lastStroke != this.coordinates.length) { this.instructions.push([ol.render.canvas.Instruction.STROKE]); } - this.reverseInstructions_(); + this.reverseHitDetectionInstructions_(); this.state_ = null; }; @@ -954,7 +955,7 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = */ ol.render.canvas.PolygonReplay.prototype.finish = function() { goog.asserts.assert(!goog.isNull(this.state_)); - this.reverseInstructions_(); + this.reverseHitDetectionInstructions_(); this.state_ = null; }; From 87125093006f1db4ae6194431874a0dbf26b4c44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 11 Dec 2013 15:50:21 +0100 Subject: [PATCH 558/919] Rename replayBackward functions to replayHitDetection --- src/ol/render/canvas/canvasreplay.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 24229b0f81..79a254655c 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -287,7 +287,7 @@ ol.render.canvas.Replay.prototype.replayForward = * @return {T|undefined} Callback result. * @template T */ -ol.render.canvas.Replay.prototype.replayBackward = +ol.render.canvas.Replay.prototype.replayHitDetection = function(context, transform, renderGeometryFunction, opt_geometryCallback) { var instructions = this.hitDetectionInstructions; return this.replay_(context, transform, renderGeometryFunction, @@ -1112,15 +1112,16 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent, * @return {T|undefined} Callback result. * @template T */ -ol.render.canvas.ReplayGroup.prototype.replayBackward_ = function(zs, context, - extent, transform, renderGeometryFunction, geometryCallback) { +ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = + function(zs, context, extent, transform, renderGeometryFunction, + geometryCallback) { var i, ii, replayes, replayType, replay, result; for (i = 0, ii = zs.length; i < ii; ++i) { replayes = this.replayesByZIndex_[zs[i].toString()]; for (replayType in replayes) { replay = replayes[replayType]; if (ol.extent.intersects(extent, replay.getExtent())) { - result = replay.replayBackward( + result = replay.replayHitDetection( context, transform, renderGeometryFunction, geometryCallback); if (result) { return result; @@ -1190,7 +1191,7 @@ ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtCoordinate = function( var context = this.hitDetectionContext_; context.clearRect(0, 0, 1, 1); - return this.replayBackward_(zs, context, extent, transform, + return this.replayHitDetection_(zs, context, extent, transform, renderGeometryFunction, /** * @param {ol.geom.Geometry} geometry Geometry. From ac2a3cd1e8d48a56f2a7017345d254702e8fefa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 11 Dec 2013 15:51:42 +0100 Subject: [PATCH 559/919] Rename replayForward functions to replay --- src/ol/render/canvas/canvasreplay.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 79a254655c..4e343c025b 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -269,7 +269,7 @@ ol.render.canvas.Replay.prototype.replay_ = * @return {T|undefined} Callback result. * @template T */ -ol.render.canvas.Replay.prototype.replayForward = +ol.render.canvas.Replay.prototype.replay = function(context, transform, renderGeometryFunction) { var instructions = this.instructions; return this.replay_(context, transform, renderGeometryFunction, @@ -1094,7 +1094,7 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent, /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); goog.array.sort(zs); - return this.replayForward_( + return this.replay_( zs, context, extent, transform, renderGeometryFunction); }; @@ -1144,7 +1144,7 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = * @return {T|undefined} Callback result. * @template T */ -ol.render.canvas.ReplayGroup.prototype.replayForward_ = +ol.render.canvas.ReplayGroup.prototype.replay_ = function(zs, context, extent, transform, renderGeometryFunction) { var i, ii, replayes, replayType, replay, result; for (i = 0, ii = zs.length; i < ii; ++i) { @@ -1152,7 +1152,7 @@ ol.render.canvas.ReplayGroup.prototype.replayForward_ = for (replayType in replayes) { replay = replayes[replayType]; if (ol.extent.intersects(extent, replay.getExtent())) { - result = replay.replayForward( + result = replay.replay( context, transform, renderGeometryFunction); if (result) { return result; From 829381fd43bc9c3df5425f2066ce97aba55f6890 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 11 Dec 2013 16:14:25 +0100 Subject: [PATCH 560/919] Always fill polygons for hit detection --- src/ol/render/canvas/canvasreplay.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 4e343c025b..6dd3d24d89 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -858,10 +858,10 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = } // FIXME is it quicker to fill and stroke each polygon individually, // FIXME or all polygons together? + var fillInstruction = [ol.render.canvas.Instruction.FILL]; + this.hitDetectionInstructions.push(fillInstruction); if (goog.isDef(state.fillStyle)) { - var fillInstruction = [ol.render.canvas.Instruction.FILL]; this.instructions.push(fillInstruction); - this.hitDetectionInstructions.push(fillInstruction); } if (goog.isDef(state.strokeStyle)) { goog.asserts.assert(goog.isDef(state.lineWidth)); @@ -891,10 +891,10 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry = ol.extent.extend(this.extent_, polygonGeometry.getExtent()); this.setFillStrokeStyles_(); this.beginGeometry(polygonGeometry); - if (goog.isDef(state.fillStyle)) { - this.hitDetectionInstructions.push( - [ol.render.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); - } + // always fill the polygon for hit detection + this.hitDetectionInstructions.push( + [ol.render.canvas.Instruction.SET_FILL_STYLE, + ol.color.asString(ol.render.canvas.defaultFillStyle)]); if (goog.isDef(state.strokeStyle)) { this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, @@ -927,10 +927,10 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry = ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent()); this.setFillStrokeStyles_(); this.beginGeometry(multiPolygonGeometry); - if (goog.isDef(state.fillStyle)) { - this.hitDetectionInstructions.push( - [ol.render.canvas.Instruction.SET_FILL_STYLE, state.fillStyle]); - } + // always fill the multi-polygon for hit detection + this.hitDetectionInstructions.push( + [ol.render.canvas.Instruction.SET_FILL_STYLE, + ol.color.asString(ol.render.canvas.defaultFillStyle)]); if (goog.isDef(state.strokeStyle)) { this.hitDetectionInstructions.push( [ol.render.canvas.Instruction.SET_STROKE_STYLE, From 76a6e08ec15cc740bcda1f79b9058bcbb7f70953 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Dec 2013 14:43:06 +0100 Subject: [PATCH 561/919] Factor out ol.geom.SimpleGeometry --- src/ol/geom/geometry.exports | 5 +- src/ol/geom/geometry.js | 221 +-------------------- src/ol/geom/linearring.js | 6 +- src/ol/geom/linestring.js | 6 +- src/ol/geom/multilinestring.js | 6 +- src/ol/geom/multipoint.js | 6 +- src/ol/geom/multipolygon.js | 6 +- src/ol/geom/point.js | 6 +- src/ol/geom/polygon.js | 6 +- src/ol/geom/simplegeometry.exports | 5 + src/ol/geom/simplegeometry.js | 247 ++++++++++++++++++++++++ src/ol/render/canvas/canvasimmediate.js | 12 +- 12 files changed, 289 insertions(+), 243 deletions(-) create mode 100644 src/ol/geom/simplegeometry.exports create mode 100644 src/ol/geom/simplegeometry.js diff --git a/src/ol/geom/geometry.exports b/src/ol/geom/geometry.exports index 9737cb2f7d..4c332d46de 100644 --- a/src/ol/geom/geometry.exports +++ b/src/ol/geom/geometry.exports @@ -1,6 +1,3 @@ @exportSymbol ol.geom.Geometry @exportProperty ol.geom.Geometry.prototype.getClosestPoint -@exportProperty ol.geom.Geometry.prototype.getExtent -@exportProperty ol.geom.Geometry.prototype.getLayout -@exportProperty ol.geom.Geometry.prototype.getSimplifiedGeometry -@exportProperty ol.geom.Geometry.prototype.transform +@exportProperty ol.geom.Geometry.prototype.getType diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 2b8d58ae6b..40c7aec271 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -5,10 +5,7 @@ goog.provide('ol.geom.Geometry'); goog.require('goog.asserts'); goog.require('goog.events.EventType'); goog.require('goog.functions'); -goog.require('goog.object'); goog.require('ol.Observable'); -goog.require('ol.extent'); -goog.require('ol.geom.flat'); /** @@ -45,24 +42,6 @@ ol.geom.Geometry = function() { goog.base(this); - /** - * @protected - * @type {ol.geom.GeometryLayout} - */ - this.layout = ol.geom.GeometryLayout.XY; - - /** - * @protected - * @type {number} - */ - this.stride = 2; - - /** - * @protected - * @type {Array.} - */ - this.flatCoordinates = null; - /** * @protected * @type {number} @@ -82,22 +61,22 @@ ol.geom.Geometry = function() { this.extentRevision = -1; /** - * @private + * @protected * @type {Object.} */ - this.simplifiedGeometryCache_ = {}; + this.simplifiedGeometryCache = {}; /** - * @private + * @protected * @type {number} */ - this.simplifiedGeometryMaxMinSquaredTolerance_ = 0; + this.simplifiedGeometryMaxMinSquaredTolerance = 0; /** - * @private + * @protected * @type {number} */ - this.simplifiedGeometryRevision_ = 0; + this.simplifiedGeometryRevision = 0; }; goog.inherits(ol.geom.Geometry, ol.Observable); @@ -126,44 +105,6 @@ ol.geom.Geometry.prototype.getClosestPoint = function(point, opt_closestPoint) { }; -/** - * @param {number} stride Stride. - * @private - * @return {ol.geom.GeometryLayout} layout Layout. - */ -ol.geom.Geometry.getLayoutForStride_ = function(stride) { - if (stride == 2) { - return ol.geom.GeometryLayout.XY; - } else if (stride == 3) { - return ol.geom.GeometryLayout.XYZ; - } else if (stride == 4) { - return ol.geom.GeometryLayout.XYZM; - } else { - throw new Error('unsupported stride: ' + stride); - } -}; - - -/** - * @param {ol.geom.GeometryLayout} layout Layout. - * @private - * @return {number} Stride. - */ -ol.geom.Geometry.getStrideForLayout_ = function(layout) { - if (layout == ol.geom.GeometryLayout.XY) { - return 2; - } else if (layout == ol.geom.GeometryLayout.XYZ) { - return 3; - } else if (layout == ol.geom.GeometryLayout.XYM) { - return 3; - } else if (layout == ol.geom.GeometryLayout.XYZM) { - return 4; - } else { - throw new Error('unsupported layout: ' + layout); - } -}; - - /** * @param {ol.Coordinate} coordinate Coordinate. * @return {boolean} Contains coordinate. @@ -194,31 +135,7 @@ ol.geom.Geometry.prototype.dispatchChangeEvent = function() { * @param {ol.Extent=} opt_extent Extent. * @return {ol.Extent} extent Extent. */ -ol.geom.Geometry.prototype.getExtent = function(opt_extent) { - if (this.extentRevision != this.revision) { - this.extent = ol.extent.createOrUpdateFromFlatCoordinates( - this.flatCoordinates, this.stride, this.extent); - this.extentRevision = this.revision; - } - goog.asserts.assert(goog.isDef(this.extent)); - return ol.extent.returnOrUpdate(this.extent, opt_extent); -}; - - -/** - * @return {Array.} Flat coordinates. - */ -ol.geom.Geometry.prototype.getFlatCoordinates = function() { - return this.flatCoordinates; -}; - - -/** - * @return {ol.geom.GeometryLayout} Layout. - */ -ol.geom.Geometry.prototype.getLayout = function() { - return this.layout; -}; +ol.geom.Geometry.prototype.getExtent = goog.abstractMethod; /** @@ -233,60 +150,7 @@ ol.geom.Geometry.prototype.getRevision = function() { * @param {number} squaredTolerance Squared tolerance. * @return {ol.geom.Geometry} Simplified geometry. */ -ol.geom.Geometry.prototype.getSimplifiedGeometry = function(squaredTolerance) { - if (this.simplifiedGeometryRevision_ != this.revision) { - goog.object.clear(this.simplifiedGeometryCache_); - this.simplifiedGeometryMaxMinSquaredTolerance_ = 0; - this.simplifiedGeometryRevision_ = this.revision; - } - // If squaredTolerance is negative or if we know that simplification will not - // have any effect then just return this. - if (squaredTolerance < 0 || - (this.simplifiedGeometryMaxMinSquaredTolerance_ !== 0 && - squaredTolerance <= this.simplifiedGeometryMaxMinSquaredTolerance_)) { - return this; - } - var key = squaredTolerance.toString(); - if (this.simplifiedGeometryCache_.hasOwnProperty(key)) { - return this.simplifiedGeometryCache_[key]; - } else { - var simplifiedGeometry = - this.getSimplifiedGeometryInternal(squaredTolerance); - var simplifiedFlatCoordinates = simplifiedGeometry.getFlatCoordinates(); - if (simplifiedFlatCoordinates.length < this.flatCoordinates.length) { - this.simplifiedGeometryCache_[key] = simplifiedGeometry; - return simplifiedGeometry; - } else { - // Simplification did not actually remove any coordinates. We now know - // that any calls to getSimplifiedGeometry with a squaredTolerance less - // than or equal to the current squaredTolerance will also not have any - // effect. This allows us to short circuit simplification (saving CPU - // cycles) and prevents the cache of simplified geometries from filling - // up with useless identical copies of this geometry (saving memory). - this.simplifiedGeometryMaxMinSquaredTolerance_ = squaredTolerance; - return this; - } - } -}; - - -/** - * @param {number} squaredTolerance Squared tolerance. - * @return {ol.geom.Geometry} Simplified geometry. - * @protected - */ -ol.geom.Geometry.prototype.getSimplifiedGeometryInternal = - function(squaredTolerance) { - return this; -}; - - -/** - * @return {number} Stride. - */ -ol.geom.Geometry.prototype.getStride = function() { - return this.stride; -}; +ol.geom.Geometry.prototype.getSimplifiedGeometry = goog.abstractMethod; /** @@ -295,59 +159,10 @@ ol.geom.Geometry.prototype.getStride = function() { ol.geom.Geometry.prototype.getType = goog.abstractMethod; -/** - * @param {ol.geom.GeometryLayout} layout Layout. - * @param {Array.} flatCoordinates Flat coordinates. - * @protected - */ -ol.geom.Geometry.prototype.setFlatCoordinatesInternal = - function(layout, flatCoordinates) { - this.stride = ol.geom.Geometry.getStrideForLayout_(layout); - this.layout = layout; - this.flatCoordinates = flatCoordinates; -}; - - -/** - * @param {ol.geom.GeometryLayout|undefined} layout Layout. - * @param {Array} coordinates Coordinates. - * @param {number} nesting Nesting. - * @protected - */ -ol.geom.Geometry.prototype.setLayout = - function(layout, coordinates, nesting) { - /** @type {number} */ - var stride; - if (goog.isDef(layout)) { - stride = ol.geom.Geometry.getStrideForLayout_(layout); - } else { - var i; - for (i = 0; i < nesting; ++i) { - if (coordinates.length === 0) { - this.layout = ol.geom.GeometryLayout.XY; - this.stride = 2; - return; - } else { - coordinates = /** @type {Array} */ (coordinates[0]); - } - } - stride = (/** @type {Array} */ (coordinates)).length; - layout = ol.geom.Geometry.getLayoutForStride_(stride); - } - this.layout = layout; - this.stride = stride; -}; - - /** * @param {ol.TransformFunction} transformFn Transform. */ -ol.geom.Geometry.prototype.transform = function(transformFn) { - if (!goog.isNull(this.flatCoordinates)) { - transformFn(this.flatCoordinates, this.flatCoordinates, this.stride); - this.dispatchChangeEvent(); - } -}; +ol.geom.Geometry.prototype.transform = goog.abstractMethod; /** @@ -391,21 +206,3 @@ ol.geom.RawMultiLineString; * @typedef {Array.} */ ol.geom.RawMultiPolygon; - - -/** - * @param {ol.geom.Geometry} geometry Geometry. - * @param {goog.vec.Mat4.AnyType} transform Transform. - * @param {Array.=} opt_dest Destination. - * @return {Array.} Transformed flat coordinates. - */ -ol.geom.transformGeometry2D = function(geometry, transform, opt_dest) { - var flatCoordinates = geometry.getFlatCoordinates(); - if (goog.isNull(flatCoordinates)) { - return null; - } else { - var stride = geometry.getStride(); - return ol.geom.flat.transform2D( - flatCoordinates, stride, transform, opt_dest); - } -}; diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index 4531ecf474..1407d5b74c 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -1,7 +1,7 @@ goog.provide('ol.geom.LinearRing'); goog.require('ol.extent'); -goog.require('ol.geom.Geometry'); +goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); goog.require('ol.geom.simplify'); @@ -10,7 +10,7 @@ goog.require('ol.geom.simplify'); /** * @constructor - * @extends {ol.geom.Geometry} + * @extends {ol.geom.SimpleGeometry} * @param {ol.geom.RawLinearRing} coordinates Coordinates. * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ @@ -33,7 +33,7 @@ ol.geom.LinearRing = function(coordinates, opt_layout) { this.setCoordinates(coordinates, opt_layout); }; -goog.inherits(ol.geom.LinearRing, ol.geom.Geometry); +goog.inherits(ol.geom.LinearRing, ol.geom.SimpleGeometry); /** diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 45760bcc73..74258465d9 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -1,7 +1,7 @@ goog.provide('ol.geom.LineString'); goog.require('ol.extent'); -goog.require('ol.geom.Geometry'); +goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); goog.require('ol.geom.simplify'); @@ -10,7 +10,7 @@ goog.require('ol.geom.simplify'); /** * @constructor - * @extends {ol.geom.Geometry} + * @extends {ol.geom.SimpleGeometry} * @param {ol.geom.RawLineString} coordinates Coordinates. * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ @@ -33,7 +33,7 @@ ol.geom.LineString = function(coordinates, opt_layout) { this.setCoordinates(coordinates, opt_layout); }; -goog.inherits(ol.geom.LineString, ol.geom.Geometry); +goog.inherits(ol.geom.LineString, ol.geom.SimpleGeometry); /** diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 15e5d578d9..9ab574574f 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -1,8 +1,8 @@ goog.provide('ol.geom.MultiLineString'); goog.require('ol.extent'); -goog.require('ol.geom.Geometry'); goog.require('ol.geom.LineString'); +goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); goog.require('ol.geom.simplify'); @@ -11,7 +11,7 @@ goog.require('ol.geom.simplify'); /** * @constructor - * @extends {ol.geom.Geometry} + * @extends {ol.geom.SimpleGeometry} * @param {ol.geom.RawMultiLineString} coordinates Coordinates. * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ @@ -40,7 +40,7 @@ ol.geom.MultiLineString = function(coordinates, opt_layout) { this.setCoordinates(coordinates, opt_layout); }; -goog.inherits(ol.geom.MultiLineString, ol.geom.Geometry); +goog.inherits(ol.geom.MultiLineString, ol.geom.SimpleGeometry); /** diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index ad390a7adf..5a8fd5282f 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -1,15 +1,15 @@ goog.provide('ol.geom.MultiPoint'); goog.require('ol.extent'); -goog.require('ol.geom.Geometry'); goog.require('ol.geom.Point'); +goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.flat'); /** * @constructor - * @extends {ol.geom.Geometry} + * @extends {ol.geom.SimpleGeometry} * @param {ol.geom.RawMultiPoint} coordinates Coordinates. * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ @@ -17,7 +17,7 @@ ol.geom.MultiPoint = function(coordinates, opt_layout) { goog.base(this); this.setCoordinates(coordinates, opt_layout); }; -goog.inherits(ol.geom.MultiPoint, ol.geom.Geometry); +goog.inherits(ol.geom.MultiPoint, ol.geom.SimpleGeometry); /** diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 41014f4c0c..ac7554874a 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -1,8 +1,8 @@ goog.provide('ol.geom.MultiPolygon'); goog.require('ol.extent'); -goog.require('ol.geom.Geometry'); goog.require('ol.geom.Polygon'); +goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); goog.require('ol.geom.simplify'); @@ -11,7 +11,7 @@ goog.require('ol.geom.simplify'); /** * @constructor - * @extends {ol.geom.Geometry} + * @extends {ol.geom.SimpleGeometry} * @param {ol.geom.RawMultiPolygon} coordinates Coordinates. * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ @@ -52,7 +52,7 @@ ol.geom.MultiPolygon = function(coordinates, opt_layout) { this.setCoordinates(coordinates, opt_layout); }; -goog.inherits(ol.geom.MultiPolygon, ol.geom.Geometry); +goog.inherits(ol.geom.MultiPolygon, ol.geom.SimpleGeometry); /** diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index 8d8ab4a343..6ae66ad28a 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -2,14 +2,14 @@ goog.provide('ol.geom.Point'); goog.require('goog.asserts'); goog.require('ol.extent'); -goog.require('ol.geom.Geometry'); +goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.flat'); /** * @constructor - * @extends {ol.geom.Geometry} + * @extends {ol.geom.SimpleGeometry} * @param {ol.geom.RawPoint} coordinates Coordinates. * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ @@ -17,7 +17,7 @@ ol.geom.Point = function(coordinates, opt_layout) { goog.base(this); this.setCoordinates(coordinates, opt_layout); }; -goog.inherits(ol.geom.Point, ol.geom.Geometry); +goog.inherits(ol.geom.Point, ol.geom.SimpleGeometry); /** diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index fc4b3a891a..601cc849d4 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -1,8 +1,8 @@ goog.provide('ol.geom.Polygon'); goog.require('ol.extent'); -goog.require('ol.geom.Geometry'); goog.require('ol.geom.LinearRing'); +goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); goog.require('ol.geom.simplify'); @@ -11,7 +11,7 @@ goog.require('ol.geom.simplify'); /** * @constructor - * @extends {ol.geom.Geometry} + * @extends {ol.geom.SimpleGeometry} * @param {ol.geom.RawPolygon} coordinates Coordinates. * @param {ol.geom.GeometryLayout=} opt_layout Layout. */ @@ -52,7 +52,7 @@ ol.geom.Polygon = function(coordinates, opt_layout) { this.setCoordinates(coordinates, opt_layout); }; -goog.inherits(ol.geom.Polygon, ol.geom.Geometry); +goog.inherits(ol.geom.Polygon, ol.geom.SimpleGeometry); /** diff --git a/src/ol/geom/simplegeometry.exports b/src/ol/geom/simplegeometry.exports new file mode 100644 index 0000000000..89c0067b62 --- /dev/null +++ b/src/ol/geom/simplegeometry.exports @@ -0,0 +1,5 @@ +@exportSymbol ol.geom.SimpleGeometry +@exportProperty ol.geom.SimpleGeometry.prototype.getExtent +@exportProperty ol.geom.SimpleGeometry.prototype.getLayout +@exportProperty ol.geom.SimpleGeometry.prototype.getSimplifiedGeometry +@exportProperty ol.geom.SimpleGeometry.prototype.transform diff --git a/src/ol/geom/simplegeometry.js b/src/ol/geom/simplegeometry.js new file mode 100644 index 0000000000..29a92f6b97 --- /dev/null +++ b/src/ol/geom/simplegeometry.js @@ -0,0 +1,247 @@ +goog.provide('ol.geom.SimpleGeometry'); + +goog.require('goog.asserts'); +goog.require('goog.functions'); +goog.require('goog.object'); +goog.require('ol.extent'); +goog.require('ol.geom.Geometry'); +goog.require('ol.geom.flat'); + + + +/** + * @constructor + * @extends {ol.geom.Geometry} + */ +ol.geom.SimpleGeometry = function() { + + goog.base(this); + + /** + * @protected + * @type {ol.geom.GeometryLayout} + */ + this.layout = ol.geom.GeometryLayout.XY; + + /** + * @protected + * @type {number} + */ + this.stride = 2; + + /** + * @protected + * @type {Array.} + */ + this.flatCoordinates = null; + +}; +goog.inherits(ol.geom.SimpleGeometry, ol.geom.Geometry); + + +/** + * @param {number} stride Stride. + * @private + * @return {ol.geom.GeometryLayout} layout Layout. + */ +ol.geom.SimpleGeometry.getLayoutForStride_ = function(stride) { + if (stride == 2) { + return ol.geom.GeometryLayout.XY; + } else if (stride == 3) { + return ol.geom.GeometryLayout.XYZ; + } else if (stride == 4) { + return ol.geom.GeometryLayout.XYZM; + } else { + throw new Error('unsupported stride: ' + stride); + } +}; + + +/** + * @param {ol.geom.GeometryLayout} layout Layout. + * @private + * @return {number} Stride. + */ +ol.geom.SimpleGeometry.getStrideForLayout_ = function(layout) { + if (layout == ol.geom.GeometryLayout.XY) { + return 2; + } else if (layout == ol.geom.GeometryLayout.XYZ) { + return 3; + } else if (layout == ol.geom.GeometryLayout.XYM) { + return 3; + } else if (layout == ol.geom.GeometryLayout.XYZM) { + return 4; + } else { + throw new Error('unsupported layout: ' + layout); + } +}; + + +/** + * @inheritDoc + */ +ol.geom.SimpleGeometry.prototype.containsXY = goog.functions.FALSE; + + +/** + * @inheritDoc + */ +ol.geom.SimpleGeometry.prototype.getExtent = function(opt_extent) { + if (this.extentRevision != this.revision) { + this.extent = ol.extent.createOrUpdateFromFlatCoordinates( + this.flatCoordinates, this.stride, this.extent); + this.extentRevision = this.revision; + } + goog.asserts.assert(goog.isDef(this.extent)); + return ol.extent.returnOrUpdate(this.extent, opt_extent); +}; + + +/** + * @return {Array.} Flat coordinates. + */ +ol.geom.SimpleGeometry.prototype.getFlatCoordinates = function() { + return this.flatCoordinates; +}; + + +/** + * @return {ol.geom.GeometryLayout} Layout. + */ +ol.geom.SimpleGeometry.prototype.getLayout = function() { + return this.layout; +}; + + +/** + * @inheritDoc + */ +ol.geom.SimpleGeometry.prototype.getSimplifiedGeometry = + function(squaredTolerance) { + if (this.simplifiedGeometryRevision != this.revision) { + goog.object.clear(this.simplifiedGeometryCache); + this.simplifiedGeometryMaxMinSquaredTolerance = 0; + this.simplifiedGeometryRevision = this.revision; + } + // If squaredTolerance is negative or if we know that simplification will not + // have any effect then just return this. + if (squaredTolerance < 0 || + (this.simplifiedGeometryMaxMinSquaredTolerance !== 0 && + squaredTolerance <= this.simplifiedGeometryMaxMinSquaredTolerance)) { + return this; + } + var key = squaredTolerance.toString(); + if (this.simplifiedGeometryCache.hasOwnProperty(key)) { + return this.simplifiedGeometryCache[key]; + } else { + var simplifiedGeometry = + this.getSimplifiedGeometryInternal(squaredTolerance); + var simplifiedFlatCoordinates = simplifiedGeometry.getFlatCoordinates(); + if (simplifiedFlatCoordinates.length < this.flatCoordinates.length) { + this.simplifiedGeometryCache[key] = simplifiedGeometry; + return simplifiedGeometry; + } else { + // Simplification did not actually remove any coordinates. We now know + // that any calls to getSimplifiedGeometry with a squaredTolerance less + // than or equal to the current squaredTolerance will also not have any + // effect. This allows us to short circuit simplification (saving CPU + // cycles) and prevents the cache of simplified geometries from filling + // up with useless identical copies of this geometry (saving memory). + this.simplifiedGeometryMaxMinSquaredTolerance = squaredTolerance; + return this; + } + } +}; + + +/** + * @param {number} squaredTolerance Squared tolerance. + * @return {ol.geom.SimpleGeometry} Simplified geometry. + * @protected + */ +ol.geom.SimpleGeometry.prototype.getSimplifiedGeometryInternal = + function(squaredTolerance) { + return this; +}; + + +/** + * @return {number} Stride. + */ +ol.geom.SimpleGeometry.prototype.getStride = function() { + return this.stride; +}; + + +/** + * @param {ol.geom.GeometryLayout} layout Layout. + * @param {Array.} flatCoordinates Flat coordinates. + * @protected + */ +ol.geom.SimpleGeometry.prototype.setFlatCoordinatesInternal = + function(layout, flatCoordinates) { + this.stride = ol.geom.SimpleGeometry.getStrideForLayout_(layout); + this.layout = layout; + this.flatCoordinates = flatCoordinates; +}; + + +/** + * @param {ol.geom.GeometryLayout|undefined} layout Layout. + * @param {Array} coordinates Coordinates. + * @param {number} nesting Nesting. + * @protected + */ +ol.geom.SimpleGeometry.prototype.setLayout = + function(layout, coordinates, nesting) { + /** @type {number} */ + var stride; + if (goog.isDef(layout)) { + stride = ol.geom.SimpleGeometry.getStrideForLayout_(layout); + } else { + var i; + for (i = 0; i < nesting; ++i) { + if (coordinates.length === 0) { + this.layout = ol.geom.GeometryLayout.XY; + this.stride = 2; + return; + } else { + coordinates = /** @type {Array} */ (coordinates[0]); + } + } + stride = (/** @type {Array} */ (coordinates)).length; + layout = ol.geom.SimpleGeometry.getLayoutForStride_(stride); + } + this.layout = layout; + this.stride = stride; +}; + + +/** + * @inheritDoc + */ +ol.geom.SimpleGeometry.prototype.transform = function(transformFn) { + if (!goog.isNull(this.flatCoordinates)) { + transformFn(this.flatCoordinates, this.flatCoordinates, this.stride); + this.dispatchChangeEvent(); + } +}; + + +/** + * @param {ol.geom.SimpleGeometry} simpleGeometry Simple geometry. + * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {Array.=} opt_dest Destination. + * @return {Array.} Transformed flat coordinates. + */ +ol.geom.transformSimpleGeometry2D = + function(simpleGeometry, transform, opt_dest) { + var flatCoordinates = simpleGeometry.getFlatCoordinates(); + if (goog.isNull(flatCoordinates)) { + return null; + } else { + var stride = simpleGeometry.getStride(); + return ol.geom.flat.transform2D( + flatCoordinates, stride, transform, opt_dest); + } +}; diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index bdf1538b3e..dcf09919e3 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -113,7 +113,7 @@ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { goog.asserts.assert(goog.isDef(state.anchorY)); goog.asserts.assert(goog.isDef(state.height)); goog.asserts.assert(goog.isDef(state.width)); - var pixelCoordinates = ol.geom.transformGeometry2D( + var pixelCoordinates = ol.geom.transformSimpleGeometry2D( geometry, this.transform_, this.pixelCoordinates_); var i, ii; for (i = 0, ii = pixelCoordinates.length; i < ii; i += 2) { @@ -144,7 +144,7 @@ ol.render.canvas.Immediate.prototype.drawText_ = function(geometry) { return; } this.setFillStrokeStyles_(); - var pixelCoordinates = ol.geom.transformGeometry2D( + var pixelCoordinates = ol.geom.transformSimpleGeometry2D( geometry, this.transform_, this.pixelCoordinates_); var i, ii; for (i = 0, ii = pixelCoordinates.length; i < ii; i += 2) { @@ -251,7 +251,7 @@ ol.render.canvas.Immediate.prototype.drawLineStringGeometry = } this.setFillStrokeStyles_(); var context = this.context_; - var pixelCoordinates = ol.geom.transformGeometry2D( + var pixelCoordinates = ol.geom.transformSimpleGeometry2D( lineStringGeometry, this.transform_, this.pixelCoordinates_); context.beginPath(); this.moveToLineTo_(pixelCoordinates, 0, pixelCoordinates.length, false); @@ -271,7 +271,7 @@ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry = } this.setFillStrokeStyles_(); var context = this.context_; - var pixelCoordinates = ol.geom.transformGeometry2D( + var pixelCoordinates = ol.geom.transformSimpleGeometry2D( multiLineStringGeometry, this.transform_, this.pixelCoordinates_); context.beginPath(); var ends = multiLineStringGeometry.getEnds(); @@ -298,7 +298,7 @@ ol.render.canvas.Immediate.prototype.drawPolygonGeometry = } this.setFillStrokeStyles_(); var context = this.context_; - var pixelCoordinates = ol.geom.transformGeometry2D( + var pixelCoordinates = ol.geom.transformSimpleGeometry2D( polygonGeometry, this.transform_, this.pixelCoordinates_); var ends = polygonGeometry.getEnds(); context.beginPath(); @@ -327,7 +327,7 @@ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = } this.setFillStrokeStyles_(); var context = this.context_; - var pixelCoordinates = ol.geom.transformGeometry2D( + var pixelCoordinates = ol.geom.transformSimpleGeometry2D( multiPolygonGeometry, this.transform_, this.pixelCoordinates_); var endss = multiPolygonGeometry.getEndss(); var offset = 0; From 6295fa60889276c7612bb00110a077c3a436214d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Dec 2013 15:03:44 +0100 Subject: [PATCH 562/919] Add ol.geom.Geometry#clone --- src/ol/geom/geometry.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 40c7aec271..76ede57540 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -82,6 +82,12 @@ ol.geom.Geometry = function() { goog.inherits(ol.geom.Geometry, ol.Observable); +/** + * @return {ol.geom.Geometry} Clone. + */ +ol.geom.Geometry.prototype.clone = goog.abstractMethod; + + /** * @param {number} x X. * @param {number} y Y. From 802d1644bbcd752d32962ce49ab97a2eea0c6464 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Dec 2013 15:03:56 +0100 Subject: [PATCH 563/919] Implement clone for simple geometries --- src/ol/geom/linearring.exports | 1 + src/ol/geom/linearring.js | 10 ++++++++++ src/ol/geom/linestring.exports | 1 + src/ol/geom/linestring.js | 10 ++++++++++ src/ol/geom/multilinestring.exports | 1 + src/ol/geom/multilinestring.js | 11 +++++++++++ src/ol/geom/multipoint.exports | 1 + src/ol/geom/multipoint.js | 10 ++++++++++ src/ol/geom/multipolygon.exports | 1 + src/ol/geom/multipolygon.js | 11 +++++++++++ src/ol/geom/point.exports | 1 + src/ol/geom/point.js | 10 ++++++++++ src/ol/geom/polygon.exports | 1 + src/ol/geom/polygon.js | 11 +++++++++++ 14 files changed, 80 insertions(+) diff --git a/src/ol/geom/linearring.exports b/src/ol/geom/linearring.exports index ab788b38a3..568949b1bb 100644 --- a/src/ol/geom/linearring.exports +++ b/src/ol/geom/linearring.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.LinearRing +@exportProperty ol.geom.LinearRing.prototype.clone @exportProperty ol.geom.LinearRing.prototype.getArea @exportProperty ol.geom.LinearRing.prototype.getCoordinates @exportProperty ol.geom.LinearRing.prototype.getType diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index 1407d5b74c..622e56776d 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -36,6 +36,16 @@ ol.geom.LinearRing = function(coordinates, opt_layout) { goog.inherits(ol.geom.LinearRing, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.LinearRing.prototype.clone = function() { + var linearRing = new ol.geom.LinearRing(null); + linearRing.setFlatCoordinates(this.layout, this.flatCoordinates.slice()); + return linearRing; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/linestring.exports b/src/ol/geom/linestring.exports index 362c1b1042..8de2df528c 100644 --- a/src/ol/geom/linestring.exports +++ b/src/ol/geom/linestring.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.LineString +@exportProperty ol.geom.LineString.prototype.clone @exportProperty ol.geom.LineString.prototype.getCoordinates @exportProperty ol.geom.LineString.prototype.getType @exportProperty ol.geom.LineString.prototype.setCoordinates diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 74258465d9..ead7a2ad91 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -36,6 +36,16 @@ ol.geom.LineString = function(coordinates, opt_layout) { goog.inherits(ol.geom.LineString, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.LineString.prototype.clone = function() { + var lineString = new ol.geom.LineString(null); + lineString.setFlatCoordinates(this.layout, this.flatCoordinates.slice()); + return lineString; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/multilinestring.exports b/src/ol/geom/multilinestring.exports index 6cea01324c..47f28467da 100644 --- a/src/ol/geom/multilinestring.exports +++ b/src/ol/geom/multilinestring.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.MultiLineString +@exportProperty ol.geom.MultiLineString.prototype.clone @exportProperty ol.geom.MultiLineString.prototype.getCoordinates @exportProperty ol.geom.MultiLineString.prototype.getLineStrings @exportProperty ol.geom.MultiLineString.prototype.getType diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 9ab574574f..18b00c2eb6 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -43,6 +43,17 @@ ol.geom.MultiLineString = function(coordinates, opt_layout) { goog.inherits(ol.geom.MultiLineString, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.MultiLineString.prototype.clone = function() { + var multiLineString = new ol.geom.MultiLineString(null); + multiLineString.setFlatCoordinates( + this.layout, this.flatCoordinates.slice(), this.ends_.slice()); + return multiLineString; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/multipoint.exports b/src/ol/geom/multipoint.exports index eb89fe7d5d..97dff56f42 100644 --- a/src/ol/geom/multipoint.exports +++ b/src/ol/geom/multipoint.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.MultiPoint +@exportProperty ol.geom.MultiPoint.prototype.clone @exportProperty ol.geom.MultiPoint.prototype.getCoordinates @exportProperty ol.geom.MultiPoint.prototype.getPoints @exportProperty ol.geom.MultiPoint.prototype.getType diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index 5a8fd5282f..35185d244e 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -20,6 +20,16 @@ ol.geom.MultiPoint = function(coordinates, opt_layout) { goog.inherits(ol.geom.MultiPoint, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.MultiPoint.prototype.clone = function() { + var multiPoint = new ol.geom.MultiPoint(null); + multiPoint.setFlatCoordinates(this.layout, this.flatCoordinates.slice()); + return multiPoint; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/multipolygon.exports b/src/ol/geom/multipolygon.exports index e8e244a0aa..3bc1d385c7 100644 --- a/src/ol/geom/multipolygon.exports +++ b/src/ol/geom/multipolygon.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.MultiPolygon +@exportProperty ol.geom.MultiPolygon.prototype.clone @exportProperty ol.geom.MultiPolygon.prototype.getArea @exportProperty ol.geom.MultiPolygon.prototype.getCoordinates @exportProperty ol.geom.MultiPolygon.prototype.getPolygons diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index ac7554874a..74880c43e9 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -55,6 +55,17 @@ ol.geom.MultiPolygon = function(coordinates, opt_layout) { goog.inherits(ol.geom.MultiPolygon, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.MultiPolygon.prototype.clone = function() { + var multiPolygon = new ol.geom.MultiPolygon(null); + multiPolygon.setFlatCoordinates( + this.layout, this.flatCoordinates.slice(), this.endss_.slice()); + return multiPolygon; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/point.exports b/src/ol/geom/point.exports index 4125ad3ab1..f48a3b7a4d 100644 --- a/src/ol/geom/point.exports +++ b/src/ol/geom/point.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.Point +@exportProperty ol.geom.Point.prototype.clone @exportProperty ol.geom.Point.prototype.getCoordinates @exportProperty ol.geom.Point.prototype.getType @exportProperty ol.geom.Point.prototype.setCoordinates diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index 6ae66ad28a..57e10e4fd5 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -20,6 +20,16 @@ ol.geom.Point = function(coordinates, opt_layout) { goog.inherits(ol.geom.Point, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.Point.prototype.clone = function() { + var point = new ol.geom.Point(null); + point.setFlatCoordinates(this.layout, this.flatCoordinates.slice()); + return point; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/polygon.exports b/src/ol/geom/polygon.exports index 1b2fa4f0aa..d950a3ae05 100644 --- a/src/ol/geom/polygon.exports +++ b/src/ol/geom/polygon.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.Polygon +@exportProperty ol.geom.Polygon.prototype.clone @exportProperty ol.geom.Polygon.prototype.getArea @exportProperty ol.geom.Polygon.prototype.getCoordinates @exportProperty ol.geom.Polygon.prototype.getLinearRings diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 601cc849d4..9300613f4b 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -55,6 +55,17 @@ ol.geom.Polygon = function(coordinates, opt_layout) { goog.inherits(ol.geom.Polygon, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.Polygon.prototype.clone = function() { + var polygon = new ol.geom.Polygon(null); + polygon.setFlatCoordinates( + this.layout, this.flatCoordinates.slice(), this.ends_.slice()); + return polygon; +}; + + /** * @inheritDoc */ From d7eb4db69e07f91205e842762c8034066f9b4470 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Dec 2013 15:54:29 +0100 Subject: [PATCH 564/919] Add ol.geom.GeometryCollection --- src/ol/geom/geometry.js | 5 +- src/ol/geom/geometrycollection.exports | 7 + src/ol/geom/geometrycollection.js | 204 +++++++++++++++++++ test/spec/ol/geom/geometrycollection.test.js | 110 ++++++++++ 4 files changed, 323 insertions(+), 3 deletions(-) create mode 100644 src/ol/geom/geometrycollection.exports create mode 100644 src/ol/geom/geometrycollection.js create mode 100644 test/spec/ol/geom/geometrycollection.test.js diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 76ede57540..ca079dd89c 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -1,5 +1,3 @@ -// FIXME add GeometryCollection - goog.provide('ol.geom.Geometry'); goog.require('goog.asserts'); @@ -18,7 +16,8 @@ ol.geom.GeometryType = { POLYGON: 'Polygon', MULTI_POINT: 'MultiPoint', MULTI_LINE_STRING: 'MultiLineString', - MULTI_POLYGON: 'MultiPolygon' + MULTI_POLYGON: 'MultiPolygon', + GEOMETRY_COLLECTION: 'GeometryCollection' }; diff --git a/src/ol/geom/geometrycollection.exports b/src/ol/geom/geometrycollection.exports new file mode 100644 index 0000000000..103ce2c40f --- /dev/null +++ b/src/ol/geom/geometrycollection.exports @@ -0,0 +1,7 @@ +@exportSymbol ol.geom.GeometryCollection +@exportProperty ol.geom.GeometryCollection.prototype.clone +@exportProperty ol.geom.GeometryCollection.prototype.getExtent +@exportProperty ol.geom.GeometryCollection.prototype.getGeometries +@exportProperty ol.geom.GeometryCollection.prototype.getSimplifiedGeometry +@exportProperty ol.geom.GeometryCollection.prototype.getType +@exportProperty ol.geom.GeometryCollection.prototype.setGeometries diff --git a/src/ol/geom/geometrycollection.js b/src/ol/geom/geometrycollection.js new file mode 100644 index 0000000000..7765699b0c --- /dev/null +++ b/src/ol/geom/geometrycollection.js @@ -0,0 +1,204 @@ +goog.provide('ol.geom.GeometryCollection'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.object'); +goog.require('ol.extent'); +goog.require('ol.geom.Geometry'); + + + +/** + * @constructor + * @extends {ol.geom.Geometry} + * @param {Array.=} opt_geometries Geometries. + */ +ol.geom.GeometryCollection = function(opt_geometries) { + + goog.base(this); + + /** + * @private + * @type {Array.} + */ + this.geometries_ = goog.isDef(opt_geometries) ? opt_geometries : null; + +}; +goog.inherits(ol.geom.GeometryCollection, ol.geom.Geometry); + + +/** + * @param {Array.} geometries Geometries. + * @private + * @return {Array.} Cloned geometries. + */ +ol.geom.GeometryCollection.cloneGeometries_ = function(geometries) { + var clonedGeometries = []; + var i, ii; + for (i = 0, ii = geometries.length; i < ii; ++i) { + clonedGeometries.push(geometries[i].clone()); + } + return clonedGeometries; +}; + + +/** + * @inheritDoc + */ +ol.geom.GeometryCollection.prototype.clone = function() { + var geometryCollection = new ol.geom.GeometryCollection(null); + geometryCollection.setGeometries(this.geometries_); + return geometryCollection; +}; + + +/** + * @inheritDoc + */ +ol.geom.GeometryCollection.prototype.closestPointXY = + function(x, y, closestPoint, minSquaredDistance) { + if (minSquaredDistance < + ol.extent.closestSquaredDistanceXY(this.getExtent(), x, y)) { + return minSquaredDistance; + } + var geometries = this.geometries_; + var i, ii; + for (i = 0, ii = geometries.length; i < ii; ++i) { + minSquaredDistance = geometries[i].closestPointXY( + x, y, closestPoint, minSquaredDistance); + } + return minSquaredDistance; +}; + + +/** + * @inheritDoc + */ +ol.geom.GeometryCollection.prototype.containsXY = function(x, y) { + var geometries = this.geometries_; + var i, ii; + for (i = 0, ii = geometries.length; i < ii; ++i) { + if (geometries[i].containsXY(x, y)) { + return true; + } + } + return false; +}; + + +/** + * @inheritDoc + */ +ol.geom.GeometryCollection.prototype.getExtent = function(opt_extent) { + if (this.extentRevision != this.revision) { + var extent = ol.extent.createOrUpdateEmpty(this.extent); + var geometries = this.geometries_; + var i, ii; + for (i = 0, ii = geometries.length; i < ii; ++i) { + ol.extent.extend(extent, geometries[i].getExtent()); + } + this.extent = extent; + this.extentRevision = this.revision; + } + goog.asserts.assert(goog.isDef(this.extent)); + return ol.extent.returnOrUpdate(this.extent, opt_extent); +}; + + +/** + * @return {Array.} Geometries. + */ +ol.geom.GeometryCollection.prototype.getGeometries = function() { + return ol.geom.GeometryCollection.cloneGeometries_(this.geometries_); +}; + + +/** + * @return {Array.} Geometries. + */ +ol.geom.GeometryCollection.prototype.getGeometriesArray = function() { + return this.geometries_; +}; + + +/** + * @inheritDoc + */ +ol.geom.GeometryCollection.prototype.getSimplifiedGeometry = + function(squaredTolerance) { + if (this.simplifiedGeometryRevision != this.revision) { + goog.object.clear(this.simplifiedGeometryCache); + this.simplifiedGeometryMaxMinSquaredTolerance = 0; + this.simplifiedGeometryRevision = this.revision; + } + if (squaredTolerance < 0 || + (this.simplifiedGeometryMaxMinSquaredTolerance !== 0 && + squaredTolerance < this.simplifiedGeometryMaxMinSquaredTolerance)) { + return this; + } + var key = squaredTolerance.toString(); + if (this.simplifiedGeometryCache.hasOwnProperty(key)) { + return this.simplifiedGeometryCache[key]; + } else { + var simplifiedGeometries = []; + var geometries = this.geometries_; + var simplified = false; + var i, ii; + for (i = 0, ii = geometries.length; i < ii; ++i) { + var geometry = geometries[i]; + var simplifiedGeometry = geometry.getSimplifiedGeometry(squaredTolerance); + simplifiedGeometries.push(simplifiedGeometry); + if (simplifiedGeometry !== geometry) { + simplified = true; + } + } + if (simplified) { + var simplifiedGeometryCollection = new ol.geom.GeometryCollection(null); + simplifiedGeometryCollection.setGeometriesArray(simplifiedGeometries); + this.simplifiedGeometryCache[key] = simplifiedGeometryCollection; + return simplifiedGeometryCollection; + } else { + this.simplifiedGeometryMaxMinSquaredTolerance = squaredTolerance; + return this; + } + } +}; + + +/** + * @inheritDoc + */ +ol.geom.GeometryCollection.prototype.getType = function() { + return ol.geom.GeometryType.GEOMETRY_COLLECTION; +}; + + +/** + * @param {Array.} geometries Geometries. + */ +ol.geom.GeometryCollection.prototype.setGeometries = function(geometries) { + this.setGeometriesArray( + ol.geom.GeometryCollection.cloneGeometries_(geometries)); +}; + + +/** + * @param {Array.} geometries Geometries. + */ +ol.geom.GeometryCollection.prototype.setGeometriesArray = function(geometries) { + this.geometries_ = geometries; + this.dispatchChangeEvent(); +}; + + +/** + * @inheritDoc + */ +ol.geom.GeometryCollection.prototype.transform = function(transformFn) { + var geometries = this.geometries_; + var i, ii; + for (i = 0, ii = geometries.length; i < ii; ++i) { + geometries[i].transform(transformFn); + } + this.dispatchChangeEvent(); +}; diff --git a/test/spec/ol/geom/geometrycollection.test.js b/test/spec/ol/geom/geometrycollection.test.js new file mode 100644 index 0000000000..f409fbf7dd --- /dev/null +++ b/test/spec/ol/geom/geometrycollection.test.js @@ -0,0 +1,110 @@ +goog.provide('ol.test.geom.GeometryCollection'); + + +describe('ol.geom.GeometryCollection', function() { + + var outer = [[0, 0], [0, 10], [10, 10], [10, 0], [0, 0]], + inner1 = [[1, 1], [2, 1], [2, 2], [1, 2], [1, 1]], + inner2 = [[8, 8], [9, 8], [9, 9], [8, 9], [8, 8]]; + + describe('constructor', function() { + + it('creates a geometry collection from an array of geometries', function() { + var point = new ol.geom.Point([10, 20]); + var line = new ol.geom.LineString([[10, 20], [30, 40]]); + var poly = new ol.geom.Polygon([outer, inner1, inner2]); + var multi = new ol.geom.GeometryCollection([point, line, poly]); + expect(multi).to.be.a(ol.geom.GeometryCollection); + expect(multi).to.be.a(ol.geom.Geometry); + }); + + }); + + describe('#getGeometries', function() { + + it('returns a collection of geometries', function() { + var point = new ol.geom.Point([10, 20]); + var line = new ol.geom.LineString([[10, 20], [30, 40]]); + var poly = new ol.geom.Polygon([outer, inner1, inner2]); + var multi = new ol.geom.GeometryCollection([point, line, poly]); + + var geometries = multi.getGeometries(); + expect(geometries).to.be.an(Array); + expect(geometries).to.have.length(3); + expect(geometries[0]).to.be.a(ol.geom.Point); + expect(geometries[1]).to.be.a(ol.geom.LineString); + expect(geometries[2]).to.be.a(ol.geom.Polygon); + }); + + }); + + describe('#clone()', function() { + + it('has a working clone method', function() { + var point = new ol.geom.Point([10, 20]); + var line = new ol.geom.LineString([[10, 20], [30, 40]]); + var poly = new ol.geom.Polygon([outer, inner1, inner2]); + var multi = new ol.geom.GeometryCollection([point, line, poly]); + var clone = multi.clone(); + expect(clone).to.not.be(multi); + var geometries = clone.getGeometries(); + expect(geometries[0].getCoordinates()).to.eql([10, 20]); + expect(geometries[1].getCoordinates()).to.eql([[10, 20], [30, 40]]); + expect(geometries[2].getCoordinates()).to.eql([outer, inner1, inner2]); + }); + + }); + + describe('#getExtent()', function() { + + it('returns the bounding extent', function() { + var point = new ol.geom.Point([10, 2]); + var line = new ol.geom.LineString([[1, 20], [30, 40]]); + var multi = new ol.geom.GeometryCollection([point, line]); + var extent = multi.getExtent(); + expect(extent[0]).to.be(1); + expect(extent[2]).to.be(30); + expect(extent[1]).to.be(2); + expect(extent[3]).to.be(40); + }); + + }); + + describe('#setGeometries', function() { + + var line, multi, point, poly; + beforeEach(function() { + point = new ol.geom.Point([10, 20]); + line = new ol.geom.LineString([[10, 20], [30, 40]]); + poly = new ol.geom.Polygon([outer, inner1, inner2]); + multi = new ol.geom.GeometryCollection([point, line, poly]); + }); + + it('fires a change event', function() { + var listener = sinon.spy(); + multi.on('change', listener); + point.setCoordinates([15, 25]); + expect(listener.calledOnce).to.be(false); + multi.setGeometries([point, line, poly]); + expect(listener.calledOnce).to.be(true); + }); + + it('updates the extent', function() { + expect(multi.getExtent()).to.eql([0, 0, 30, 40]); + line.setCoordinates([[10, 20], [300, 400]]); + expect(multi.getExtent()).to.eql([0, 0, 30, 40]); + multi.setGeometries([point, line, poly]); + expect(multi.getExtent()).to.eql([0, 0, 300, 400]); + }); + + }); + +}); + + +goog.require('ol.Collection'); +goog.require('ol.geom.Geometry'); +goog.require('ol.geom.GeometryCollection'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.Point'); +goog.require('ol.geom.Polygon'); From 4205c01414f42029bfca700ffc174fae52c53c18 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Dec 2013 16:43:40 +0100 Subject: [PATCH 565/919] Add ol.geom.GeometryCollection rendering --- src/ol/render/canvas/canvasimmediate.js | 21 ++++++++++++++++++- src/ol/render/canvas/canvasreplay.js | 7 +++++++ src/ol/render/irender.js | 12 +++++++++++ src/ol/render/vector.js | 27 ++++++++++++++++++++++++- 4 files changed, 65 insertions(+), 2 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index dcf09919e3..f3aa2228b5 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -220,6 +220,23 @@ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { }; +/** + * @inheritDoc + */ +ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry = + function(geometryCollectionGeometry, data) { + var geometries = geometryCollectionGeometry.getGeometriesArray(); + var i, ii; + for (i = 0, ii = geometries.length; i < ii; ++i) { + var geometry = geometries[i]; + var geometryRenderer = + ol.render.canvas.Immediate.GEOMETRY_RENDERES_[geometry.getType()]; + goog.asserts.assert(goog.isDef(geometryRenderer)); + geometryRenderer.call(this, geometry, data); + } +}; + + /** * @inheritDoc */ @@ -478,5 +495,7 @@ ol.render.canvas.Immediate.GEOMETRY_RENDERES_ = { 'MultiPoint': ol.render.canvas.Immediate.prototype.drawMultiPointGeometry, 'MultiLineString': ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry, - 'MultiPolygon': ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry + 'MultiPolygon': ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry, + 'GeometryCollection': + ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry }; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 1aeaf5f3be..1fe7d69e92 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -329,6 +329,13 @@ ol.render.canvas.Replay.prototype.reverseInstructions_ = function() { ol.render.canvas.Replay.prototype.drawFeature = goog.abstractMethod; +/** + * @inheritDoc + */ +ol.render.canvas.Replay.prototype.drawGeometryCollectionGeometry = + goog.abstractMethod; + + /** * @inheritDoc */ diff --git a/src/ol/render/irender.js b/src/ol/render/irender.js index 07c7ffee11..bbefdd7af5 100644 --- a/src/ol/render/irender.js +++ b/src/ol/render/irender.js @@ -1,3 +1,5 @@ +// FIXME remove trailing "Geometry" in method names + goog.provide('ol.render.IRender'); @@ -17,6 +19,16 @@ ol.render.IRender.prototype.drawFeature = function(feature, style) { }; +/** + * @param {ol.geom.GeometryCollection} geometryCollectionGeometry Geometry + * collection. + * @param {Object} data Opaque data object. + */ +ol.render.IRender.prototype.drawGeometryCollectionGeometry = + function(geometryCollectionGeometry, data) { +}; + + /** * @param {ol.geom.Point} pointGeometry Point geometry. * @param {Object} data Opaque data object. diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index 717490f8c6..6143a6080f 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -1,6 +1,7 @@ goog.provide('ol.renderer.vector'); goog.require('goog.asserts'); +goog.require('ol.geom.GeometryCollection'); goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString'); goog.require('ol.geom.MultiPoint'); @@ -28,6 +29,29 @@ ol.renderer.vector.renderFeature = function( }; +/** + * @param {ol.render.IReplayGroup} replayGroup Replay group. + * @param {ol.geom.Geometry} geometry Geometry. + * @param {ol.style.Style} style Style. + * @param {Object} data Opaque data object. + * @private + */ +ol.renderer.vector.renderGeometryCollectionGeometry_ = + function(replayGroup, geometry, style, data) { + goog.asserts.assertInstanceof(geometry, ol.geom.GeometryCollection); + var geometryCollectionGeometry = /** @type {ol.geom.GeometryCollection} */ ( + geometry); + var geometries = geometryCollectionGeometry.getGeometriesArray(); + var i, ii; + for (i = 0, ii = geometries.length; i < ii; ++i) { + var geometryRenderer = + ol.renderer.vector.GEOMETRY_RENDERERS_[geometries[i].getType()]; + goog.asserts.assert(goog.isDef(geometryRenderer)); + geometryRenderer(replayGroup, geometries[i], style, data); + } +}; + + /** * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.geom.Geometry} geometry Geometry. @@ -167,5 +191,6 @@ ol.renderer.vector.GEOMETRY_RENDERERS_ = { 'Polygon': ol.renderer.vector.renderPolygonGeometry_, 'MultiPoint': ol.renderer.vector.renderMultiPointGeometry_, 'MultiLineString': ol.renderer.vector.renderMultiLineStringGeometry_, - 'MultiPolygon': ol.renderer.vector.renderMultiPolygonGeometry_ + 'MultiPolygon': ol.renderer.vector.renderMultiPolygonGeometry_, + 'GeometryCollection': ol.renderer.vector.renderGeometryCollectionGeometry_ }; From bde17b2ac83a30561e502d9e623a5943bf58780b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Dec 2013 17:28:00 +0100 Subject: [PATCH 566/919] Add ol.geom.GeometryCollection support to ol.format.GeoJSON --- src/ol/format/geojsonformat.js | 46 +++++++++++++++++++---- test/spec/ol/format/geojsonformat.test.js | 20 ++++++---- 2 files changed, 52 insertions(+), 14 deletions(-) diff --git a/src/ol/format/geojsonformat.js b/src/ol/format/geojsonformat.js index 4e4b96ca66..ae5d9c76e8 100644 --- a/src/ol/format/geojsonformat.js +++ b/src/ol/format/geojsonformat.js @@ -1,13 +1,14 @@ // FIXME coordinate order // FIXME reprojection -// FIXME GeometryCollection goog.provide('ol.format.GeoJSON'); +goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.object'); goog.require('ol.Feature'); goog.require('ol.format.JSON'); +goog.require('ol.geom.GeometryCollection'); goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString'); goog.require('ol.geom.MultiPoint'); @@ -41,7 +42,7 @@ goog.inherits(ol.format.GeoJSON, ol.format.JSON); /** - * @param {GeoJSONGeometry} object Object. + * @param {GeoJSONObject} object Object. * @private * @return {ol.geom.Geometry} Geometry. */ @@ -52,6 +53,19 @@ ol.format.GeoJSON.readGeometry_ = function(object) { }; +/** + * @param {GeoJSONGeometryCollection} object Object. + * @private + * @return {ol.geom.GeometryCollection} Geometry collection. + */ +ol.format.GeoJSON.readGeometryCollectionGeometry_ = function(object) { + goog.asserts.assert(object.type == 'GeometryCollection'); + var geometries = goog.array.map( + object.geometries, ol.format.GeoJSON.readGeometry_); + return new ol.geom.GeometryCollection(geometries); +}; + + /** * @param {GeoJSONGeometry} object Object. * @private @@ -121,7 +135,7 @@ ol.format.GeoJSON.readPolygonGeometry_ = function(object) { /** * @param {ol.geom.Geometry} geometry Geometry. * @private - * @return {GeoJSONGeometry} GeoJSON geometry. + * @return {GeoJSONObject} GeoJSON geometry. */ ol.format.GeoJSON.writeGeometry_ = function(geometry) { var geometryWriter = ol.format.GeoJSON.GEOMETRY_WRITERS_[geometry.getType()]; @@ -130,6 +144,22 @@ ol.format.GeoJSON.writeGeometry_ = function(geometry) { }; +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @private + * @return {GeoJSONGeometryCollection} GeoJSON geometry collection. + */ +ol.format.GeoJSON.writeGeometryCollectionGeometry_ = function(geometry) { + goog.asserts.assertInstanceof(geometry, ol.geom.GeometryCollection); + var geometries = goog.array.map( + geometry.getGeometriesArray(), ol.format.GeoJSON.writeGeometry_); + return /** @type {GeoJSONGeometryCollection} */ ({ + 'type': 'GeometryCollection', + 'geometries': geometries + }); +}; + + /** * @param {ol.geom.Geometry} geometry Geometry. * @private @@ -219,7 +249,7 @@ ol.format.GeoJSON.writePolygonGeometry_ = function(geometry) { /** * @const * @private - * @type {Object.} + * @type {Object.} */ ol.format.GeoJSON.GEOMETRY_READERS_ = { 'Point': ol.format.GeoJSON.readPointGeometry_, @@ -227,14 +257,15 @@ ol.format.GeoJSON.GEOMETRY_READERS_ = { 'Polygon': ol.format.GeoJSON.readPolygonGeometry_, 'MultiPoint': ol.format.GeoJSON.readMultiPointGeometry_, 'MultiLineString': ol.format.GeoJSON.readMultiLineStringGeometry_, - 'MultiPolygon': ol.format.GeoJSON.readMultiPolygonGeometry_ + 'MultiPolygon': ol.format.GeoJSON.readMultiPolygonGeometry_, + 'GeometryCollection': ol.format.GeoJSON.readGeometryCollectionGeometry_ }; /** * @const * @private - * @type {Object.} + * @type {Object.} */ ol.format.GeoJSON.GEOMETRY_WRITERS_ = { 'Point': ol.format.GeoJSON.writePointGeometry_, @@ -242,7 +273,8 @@ ol.format.GeoJSON.GEOMETRY_WRITERS_ = { 'Polygon': ol.format.GeoJSON.writePolygonGeometry_, 'MultiPoint': ol.format.GeoJSON.writeMultiPointGeometry_, 'MultiLineString': ol.format.GeoJSON.writeMultiLineStringGeometry_, - 'MultiPolygon': ol.format.GeoJSON.writeMultiPolygonGeometry_ + 'MultiPolygon': ol.format.GeoJSON.writeMultiPolygonGeometry_, + 'GeometryCollection': ol.format.GeoJSON.writeGeometryCollectionGeometry_ }; diff --git a/test/spec/ol/format/geojsonformat.test.js b/test/spec/ol/format/geojsonformat.test.js index 1d40411c62..a6792d834f 100644 --- a/test/spec/ol/format/geojsonformat.test.js +++ b/test/spec/ol/format/geojsonformat.test.js @@ -279,7 +279,7 @@ describe('ol.format.GeoJSON', function() { expect(rings[2]).to.be.a(ol.geom.LinearRing); }); - it.skip('parses geometry collection', function() { + it('parses geometry collection', function() { var str = JSON.stringify({ type: 'GeometryCollection', geometries: [ @@ -288,7 +288,9 @@ describe('ol.format.GeoJSON', function() { ] }); - var array = format.readGeometry(str); + var geometryCollection = format.readGeometry(str); + expect(geometryCollection).to.be.an(ol.geom.GeometryCollection); + var array = geometryCollection.getGeometries(); expect(array.length).to.be(2); expect(array[0]).to.be.a(ol.geom.Point); expect(array[1]).to.be.a(ol.geom.LineString); @@ -441,17 +443,20 @@ describe('ol.format.GeoJSON', function() { format.readGeometry(geojson).getCoordinates()); }); - it.skip('encodes geometry collection', function() { + it('encodes geometry collection', function() { var collection = new ol.geom.GeometryCollection([ new ol.geom.Point([10, 20]), new ol.geom.LineString([[30, 40], [50, 60]]) ]); var geojson = format.writeGeometry(collection); var got = format.readGeometry(geojson); - var components = collection.getComponents(); - expect(components.length).to.equal(got.length); - for (var i = 0, ii = components.length; i < ii; ++i) { - expect(components[i].getCoordinates()).to.eql(got[i].getCoordinates()); + expect(got).to.be.an(ol.geom.GeometryCollection); + var gotGeometries = got.getGeometries(); + var geometries = collection.getGeometries(); + expect(geometries.length).to.equal(gotGeometries.length); + for (var i = 0, ii = geometries.length; i < ii; ++i) { + expect(geometries[i].getCoordinates()). + to.eql(gotGeometries[i].getCoordinates()); } }); @@ -463,6 +468,7 @@ describe('ol.format.GeoJSON', function() { goog.require('ol.Feature'); goog.require('ol.extent'); goog.require('ol.format.GeoJSON'); +goog.require('ol.geom.GeometryCollection'); goog.require('ol.geom.LineString'); goog.require('ol.geom.LinearRing'); goog.require('ol.geom.Point'); From 0943bbf0701ebe050d51c46520aa91b220f33040 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Dec 2013 17:44:12 +0100 Subject: [PATCH 567/919] Don't use postcompose in geojson example --- examples/geojson.js | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index c081dc4067..70ae39bcc9 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -2,8 +2,6 @@ goog.require('ol.Feature'); goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); -goog.require('ol.geom.LineString'); -goog.require('ol.geom.Point'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.shape'); @@ -131,29 +129,6 @@ var vectorLayer = new ol.layer.Vector({ source: vectorSource, styleFunction: styleFunction }); -var tmpLineFeature = new ol.Feature( - new ol.geom.LineString([[-5e6, -5e6], [5e6, -5e6]])); -var tmpPointFeature = new ol.Feature( - new ol.geom.Point([0, 3e6])); -var tmpStyle = new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'magenta', - lineCap: 'round', - width: 5 - }), - image: ol.shape.renderCircle(5, - new ol.style.Fill({ - color: 'green' - }), - new ol.style.Stroke({ - color: 'blue' - })) -}); -vectorLayer.on('postcompose', function(event) { - var render = event.getRender(); - render.drawFeature(tmpLineFeature, tmpStyle); - render.drawFeature(tmpPointFeature, tmpStyle); -}); var map = new ol.Map({ layers: [ From a03bf6d44719e0ea45f30346b2c7957e92f2b7d2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Dec 2013 17:44:28 +0100 Subject: [PATCH 568/919] Add GeometryCollection to geojson example --- examples/geojson.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/examples/geojson.js b/examples/geojson.js index 70ae39bcc9..911707926a 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -52,6 +52,18 @@ var styles = { fill: new ol.style.Fill({ color: 'rgba(0, 0, 255, 0.1)' }) + })], + 'GeometryCollection': [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'magenta', + width: 2 + }), + fill: new ol.style.Fill({ + color: 'magenta' + }), + image: ol.shape.renderCircle(10, null, new ol.style.Stroke({ + color: 'magenta' + })) })] }; @@ -120,6 +132,26 @@ var vectorSource = new ol.source.GeoJSON( [[[1e6, 6e6], [1e6, 8e6], [3e6, 8e6], [3e6, 6e6]]] ] } + }, + { + 'type': 'Feature', + 'geometry': { + 'type': 'GeometryCollection', + 'geometries': [ + { + 'type': 'LineString', + 'coordinates': [[-5e6, -5e6], [0e6, -5e6]] + }, + { + 'type': 'Point', + 'coordinates': [4e6, -5e6] + }, + { + 'type': 'Polygon', + 'coordinates': [[[1e6, -6e6], [2e6, -4e6], [3e6, -6e6]]] + } + ] + } } ] } From dd3c39bb12b6eff7af069197e8488157eab8ff5d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Dec 2013 22:05:33 +0100 Subject: [PATCH 569/919] Add deep clone test --- test/spec/ol/geom/geometrycollection.test.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/spec/ol/geom/geometrycollection.test.js b/test/spec/ol/geom/geometrycollection.test.js index f409fbf7dd..1e86c640f5 100644 --- a/test/spec/ol/geom/geometrycollection.test.js +++ b/test/spec/ol/geom/geometrycollection.test.js @@ -53,6 +53,20 @@ describe('ol.geom.GeometryCollection', function() { expect(geometries[2].getCoordinates()).to.eql([outer, inner1, inner2]); }); + it('does a deep clone', function() { + var point = new ol.geom.Point([30, 40]); + var originalGeometries = [point]; + var multi = new ol.geom.GeometryCollection(originalGeometries); + var clone = multi.clone(); + var clonedGeometries = multi.getGeometries(); + expect(clonedGeometries).not.to.be(originalGeometries); + expect(clonedGeometries).to.have.length(originalGeometries.length); + expect(clonedGeometries).to.have.length(1); + expect(clonedGeometries[0]).not.to.be(originalGeometries[0]); + expect(clonedGeometries[0].getCoordinates()). + to.eql(originalGeometries[0].getCoordinates()); + }); + }); describe('#getExtent()', function() { From ccf96ea41519315979e95094cb9ba02112a89506 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 12 Dec 2013 11:30:33 +0100 Subject: [PATCH 570/919] Fix ol.geom.GeometryCollection test --- test/spec/ol/geom/geometrycollection.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/spec/ol/geom/geometrycollection.test.js b/test/spec/ol/geom/geometrycollection.test.js index 1e86c640f5..25edd5b6c6 100644 --- a/test/spec/ol/geom/geometrycollection.test.js +++ b/test/spec/ol/geom/geometrycollection.test.js @@ -58,7 +58,7 @@ describe('ol.geom.GeometryCollection', function() { var originalGeometries = [point]; var multi = new ol.geom.GeometryCollection(originalGeometries); var clone = multi.clone(); - var clonedGeometries = multi.getGeometries(); + var clonedGeometries = clone.getGeometries(); expect(clonedGeometries).not.to.be(originalGeometries); expect(clonedGeometries).to.have.length(originalGeometries.length); expect(clonedGeometries).to.have.length(1); From f79ab2561716e879ce1e005774970afa1c2859fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 13 Dec 2013 11:58:23 +0100 Subject: [PATCH 571/919] Make forEachFeatureAtPixel work with layer groups --- src/ol/renderer/maprenderer.js | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index fac6bec51e..b51beab355 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -93,19 +93,16 @@ ol.renderer.Map.prototype.forEachFeatureAtPixel = function(pixel, callback, opt_obj, opt_layerFunction, opt_obj2) { var layerFunction = goog.isDef(opt_layerFunction) ? opt_layerFunction : goog.functions.TRUE; - var layers = this.map_.getLayers(); - if (goog.isDef(layers)) { - var layersArray = layers.getArray(); - var i; - for (i = layersArray.length - 1; i >= 0; --i) { - var layer = layersArray[i]; - if (layer.getVisible() && layerFunction.call(opt_obj2, layer)) { - var layerRenderer = this.getLayerRenderer(layer); - var result = - layerRenderer.forEachFeatureAtPixel(pixel, callback, opt_obj); - if (result) { - return result; - } + var layersArray = this.map_.getLayerGroup().getLayersArray(); + var i; + for (i = layersArray.length - 1; i >= 0; --i) { + var layer = layersArray[i]; + if (layer.getVisible() && layerFunction.call(opt_obj2, layer)) { + var layerRenderer = this.getLayerRenderer(layer); + var result = + layerRenderer.forEachFeatureAtPixel(pixel, callback, opt_obj); + if (result) { + return result; } } } From 12c96510c186f2fce46117f15328388c23661d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 13 Dec 2013 13:43:51 +0100 Subject: [PATCH 572/919] Use olx options ns in icon and geojson examples --- examples/geojson.js | 2 +- examples/icon.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 911707926a..1d8aca183a 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -72,7 +72,7 @@ var styleFunction = function(feature, resolution) { }; var vectorSource = new ol.source.GeoJSON( - /** @type {ol.source.GeoJSONOptions} */ ({ + /** @type {olx.source.GeoJSONOptions} */ ({ object: { 'type': 'FeatureCollection', 'crs': { diff --git a/examples/icon.js b/examples/icon.js index 246c00e653..aa49a4872a 100644 --- a/examples/icon.js +++ b/examples/icon.js @@ -22,7 +22,7 @@ var styleArray = [new ol.style.Style({ })]; var vector = new ol.layer.Vector({ - source: new ol.source.GeoJSON(/** @type {ol.source.GeoJSONOptions} */ ({ + source: new ol.source.GeoJSON(/** @type {olx.source.GeoJSONOptions} */ ({ object: { 'type': 'FeatureCollection', 'features': [{ From 5b1bbe15dd71f0c3b776394c164725676c7513ee Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 13:51:58 +0100 Subject: [PATCH 573/919] Add ol.geom.simplify.schaub --- src/ol/geom/simplifygeom.js | 164 +++++++++++++++++++++++++ test/spec/ol/geom/simplifygeom.test.js | 65 ++++++++++ 2 files changed, 229 insertions(+) diff --git a/src/ol/geom/simplifygeom.js b/src/ol/geom/simplifygeom.js index d7cab5ea77..cd60faf37d 100644 --- a/src/ol/geom/simplifygeom.js +++ b/src/ol/geom/simplifygeom.js @@ -233,3 +233,167 @@ ol.geom.simplify.radialDistance = function(flatCoordinates, offset, end, } return simplifiedOffset; }; + + +/** + * @param {number} value Value. + * @param {number} tolerance Squared tolerance. + * @return {number} Rounded value. + */ +ol.geom.simplify.snap = function(value, tolerance) { + return tolerance * Math.round(value / tolerance); +}; + + +/** + * Simplifies a line string using an algorithm designed by Tim Schaub. + * Coordinates are snapped to the nearest value in a virtual grid and + * consecutive duplicate coordinates are discarded. This effectively preserves + * topology as the simplification of any subsection of a line string is + * independent of the rest of the line string. This means that, for examples, + * the common edge between two polygons will be simplified to the same line + * string independently in both polygons. This implementation uses a single + * pass over the coordinates and eliminates intermediate collinear points. + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {number} tolerance Squared tolerance. + * @param {Array.} simplifiedFlatCoordinates Simplified flat + * coordinates. + * @param {number} simplifiedOffset Simplified offset. + * @return {number} Simplified offset. + */ +ol.geom.simplify.schaub = function(flatCoordinates, offset, end, stride, + tolerance, simplifiedFlatCoordinates, simplifiedOffset) { + // do nothing if the line is empty + if (offset == end) { + return simplifiedOffset; + } + // snap the first coordinate (P1) + var x1 = ol.geom.simplify.snap(flatCoordinates[offset], tolerance); + var y1 = ol.geom.simplify.snap(flatCoordinates[offset + 1], tolerance); + offset += stride; + // add the first coordinate to the output + simplifiedFlatCoordinates[simplifiedOffset++] = x1; + simplifiedFlatCoordinates[simplifiedOffset++] = y1; + // find the next coordinate that does not snap to the same value as the first + // coordinate (P2) + var x2, y2; + do { + x2 = ol.geom.simplify.snap(flatCoordinates[offset], tolerance); + y2 = ol.geom.simplify.snap(flatCoordinates[offset + 1], tolerance); + offset += stride; + if (offset == end) { + // all coordinates snap to the same value, the line collapses to a point + // push the last snapped value anyway to ensure that the output contains + // at least two points + // FIXME should we really return at least two points anyway? + simplifiedFlatCoordinates[simplifiedOffset++] = x2; + simplifiedFlatCoordinates[simplifiedOffset++] = y2; + return simplifiedOffset; + } + } while (x2 == x1 && y2 == y1); + while (offset < end) { + var x3, y3; + // snap the next coordinate (P3) + x3 = ol.geom.simplify.snap(flatCoordinates[offset], tolerance); + y3 = ol.geom.simplify.snap(flatCoordinates[offset + 1], tolerance); + offset += stride; + // skip P3 if it is equal to P2 + if (x3 == x2 && y3 == y2) { + continue; + } + // calculate the delta between P1 and P2 + var dx1 = x2 - x1; + var dy1 = y2 - y1; + // calculate the delta between P3 and P1 + var dx2 = x3 - x1; + var dy2 = y3 - y1; + // if P1, P2, and P3 are colinear and P3 is further from P1 than P2 is from + // P1 in the same direction then P2 is on the straight line between P1 and + // P3 + if ((dx1 * dy2 == dy1 * dx2) && + ((dx1 < 0 && dx2 < dx1) || dx1 == dx2 || (dx1 > 0 && dx2 > dx1)) && + ((dy1 < 0 && dy2 < dy1) || dy1 == dy2 || (dy1 > 0 && dy2 > dy1))) { + // discard P2 and set P2 = P3 + x2 = x3; + y2 = y3; + continue; + } + // either P1, P2, and P3 are not colinear, or they are colinear but P3 is + // between P3 and P1 or on the opposite half of the line to P2. add P2, + // and continue with P1 = P2 and P2 = P3 + simplifiedFlatCoordinates[simplifiedOffset++] = x2; + simplifiedFlatCoordinates[simplifiedOffset++] = y2; + x1 = x2; + y1 = y2; + x2 = x3; + y2 = y3; + } + // add the last point (P2) + simplifiedFlatCoordinates[simplifiedOffset++] = x2; + simplifiedFlatCoordinates[simplifiedOffset++] = y2; + return simplifiedOffset; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @param {number} tolerance Squared tolerance. + * @param {Array.} simplifiedFlatCoordinates Simplified flat + * coordinates. + * @param {number} simplifiedOffset Simplified offset. + * @param {Array.} simplifiedEnds Simplified ends. + * @return {number} Simplified offset. + */ +ol.geom.simplify.schaubs = function( + flatCoordinates, offset, ends, stride, + tolerance, + simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) { + var i, ii; + for (i = 0, ii = ends.length; i < ii; ++i) { + var end = ends[i]; + simplifiedOffset = ol.geom.simplify.schaub( + flatCoordinates, offset, end, stride, + tolerance, + simplifiedFlatCoordinates, simplifiedOffset); + simplifiedEnds.push(simplifiedOffset); + offset = end; + } + return simplifiedOffset; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @param {number} tolerance Squared tolerance. + * @param {Array.} simplifiedFlatCoordinates Simplified flat + * coordinates. + * @param {number} simplifiedOffset Simplified offset. + * @param {Array.>} simplifiedEndss Simplified endss. + * @return {number} Simplified offset. + */ +ol.geom.simplify.schaubss = function( + flatCoordinates, offset, endss, stride, + tolerance, + simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) { + var i, ii; + for (i = 0, ii = endss.length; i < ii; ++i) { + var ends = endss[i]; + var simplifiedEnds = []; + simplifiedOffset = ol.geom.simplify.schaubs( + flatCoordinates, offset, ends, stride, + tolerance, + simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds); + simplifiedEndss.push(simplifiedEnds); + offset = ends[ends.length - 1]; + } + return simplifiedOffset; +}; diff --git a/test/spec/ol/geom/simplifygeom.test.js b/test/spec/ol/geom/simplifygeom.test.js index 00795806d7..ee2b9d3a12 100644 --- a/test/spec/ol/geom/simplifygeom.test.js +++ b/test/spec/ol/geom/simplifygeom.test.js @@ -287,6 +287,71 @@ describe('ol.geom.simplify', function() { }); + describe('ol.geom.simplify.schaub', function() { + + it('handles empty coordinates', function() { + var simplifiedFlatCoordinates = []; + expect(ol.geom.simplify.schaub( + [], 0, 0, 2, 2, simplifiedFlatCoordinates, 0)).to.be(0); + expect(simplifiedFlatCoordinates).to.be.empty(); + }); + + it('expands points to a zero-length line', function() { + var simplifiedFlatCoordinates = []; + expect(ol.geom.simplify.schaub( + [0, 0, 0, 0], 0, 4, 2, 2, simplifiedFlatCoordinates, 0)).to.be(4); + expect(simplifiedFlatCoordinates).to.eql([0, 0, 0, 0]); + }); + + it('snaps near-by points to the same value', function() { + var simplifiedFlatCoordinates = []; + expect(ol.geom.simplify.schaub( + [0.1, 0, 0, 0.1], 0, 4, 2, 2, simplifiedFlatCoordinates, 0)).to.be(4); + expect(simplifiedFlatCoordinates).to.eql([0, 0, 0, 0]); + }); + + it('eliminates duplicate snapped points', function() { + var simplifiedFlatCoordinates = []; + expect(ol.geom.simplify.schaub( + [0.1, 0, 2, 0, 2.1, 0, 2, 0.1, 1.9, 0, 2, -0.1], 0, 12, 2, 2, + simplifiedFlatCoordinates, 0)).to.be(4); + expect(simplifiedFlatCoordinates).to.eql([0, 0, 2, 0]); + }); + + it('eliminates horizontal colinear points', function() { + var simplifiedFlatCoordinates = []; + expect(ol.geom.simplify.schaub( + [0, 0, 2, 0, 4, 0, 6, 0], 0, 8, 2, 2, + simplifiedFlatCoordinates, 0)).to.be(4); + expect(simplifiedFlatCoordinates).to.eql([0, 0, 6, 0]); + }); + + it('eliminates vertical colinear points', function() { + var simplifiedFlatCoordinates = []; + expect(ol.geom.simplify.schaub( + [0, 0, 0, -2, 0, -4, 0, -6], 0, 8, 2, 2, + simplifiedFlatCoordinates, 0)).to.be(4); + expect(simplifiedFlatCoordinates).to.eql([0, 0, 0, -6]); + }); + + it('eliminates diagonal colinear points', function() { + var simplifiedFlatCoordinates = []; + expect(ol.geom.simplify.schaub( + [0, 0, 2, -2, 4, -4, 6, -6], 0, 8, 2, 2, + simplifiedFlatCoordinates, 0)).to.be(4); + expect(simplifiedFlatCoordinates).to.eql([0, 0, 6, -6]); + }); + + it('handles switchbacks', function() { + var simplifiedFlatCoordinates = []; + expect(ol.geom.simplify.schaub( + [0, 0, 2, 0, 0, 0, 4, 0], 0, 8, 2, 2, + simplifiedFlatCoordinates, 0)).to.be(8); + expect(simplifiedFlatCoordinates).to.eql([0, 0, 2, 0, 0, 0, 4, 0]); + }); + + }); + }); From 594cee01e4251818890698828fb7bd40f0b5d14c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 13:52:38 +0100 Subject: [PATCH 574/919] Use Schaub's topology-preserving simplification method for Polygons and MultiPolygons --- src/ol/geom/multipolygon.js | 8 ++++---- src/ol/geom/polygon.js | 5 +++-- test/spec/ol/geom/polygon.test.js | 12 ++++++------ 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 74880c43e9..9b4a279384 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -143,10 +143,10 @@ ol.geom.MultiPolygon.prototype.getSimplifiedGeometryInternal = function(squaredTolerance) { var simplifiedFlatCoordinates = []; var simplifiedEndss = []; - simplifiedFlatCoordinates.length = - ol.geom.simplify.douglasPeuckerss(this.flatCoordinates, 0, - this.endss_, this.stride, squaredTolerance, simplifiedFlatCoordinates, - 0, simplifiedEndss); + simplifiedFlatCoordinates.length = ol.geom.simplify.schaubss( + this.flatCoordinates, 0, this.endss_, this.stride, + Math.sqrt(squaredTolerance), + simplifiedFlatCoordinates, 0, simplifiedEndss); var simplifiedMultiPolygon = new ol.geom.MultiPolygon(null); simplifiedMultiPolygon.setFlatCoordinates( ol.geom.GeometryLayout.XY, simplifiedFlatCoordinates, simplifiedEndss); diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 9300613f4b..a678b4e14b 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -157,8 +157,9 @@ ol.geom.Polygon.prototype.getSimplifiedGeometryInternal = function(squaredTolerance) { var simplifiedFlatCoordinates = []; var simplifiedEnds = []; - simplifiedFlatCoordinates.length = ol.geom.simplify.douglasPeuckers( - this.flatCoordinates, 0, this.ends_, this.stride, squaredTolerance, + simplifiedFlatCoordinates.length = ol.geom.simplify.schaubs( + this.flatCoordinates, 0, this.ends_, this.stride, + Math.sqrt(squaredTolerance), simplifiedFlatCoordinates, 0, simplifiedEnds); var simplifiedPolygon = new ol.geom.Polygon(null); simplifiedPolygon.setFlatCoordinates( diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js index a4410ff881..1f6e57089d 100644 --- a/test/spec/ol/geom/polygon.test.js +++ b/test/spec/ol/geom/polygon.test.js @@ -321,17 +321,17 @@ describe('ol.geom.Polygon', function() { describe('#getSimplifiedGeometry', function() { it('returns the expected result', function() { - var simplifiedGeometry = polygon.getSimplifiedGeometry(1); + var simplifiedGeometry = polygon.getSimplifiedGeometry(9); expect(simplifiedGeometry).to.be.an(ol.geom.Polygon); expect(simplifiedGeometry.getCoordinates()).to.eql( - [[[3, 0], [0, 6], [6, 6], [4, 3]]]); + [[[3, 0], [0, 3], [0, 6], [6, 6], [3, 3]]]); }); it('caches multiple simplified geometries', function() { - var simplifiedGeometry1 = polygon.getSimplifiedGeometry(1); - var simplifiedGeometry2 = polygon.getSimplifiedGeometry(2); - var simplifiedGeometry3 = polygon.getSimplifiedGeometry(1); - var simplifiedGeometry4 = polygon.getSimplifiedGeometry(2); + var simplifiedGeometry1 = polygon.getSimplifiedGeometry(4); + var simplifiedGeometry2 = polygon.getSimplifiedGeometry(9); + var simplifiedGeometry3 = polygon.getSimplifiedGeometry(4); + var simplifiedGeometry4 = polygon.getSimplifiedGeometry(9); expect(simplifiedGeometry1).to.be(simplifiedGeometry3); expect(simplifiedGeometry2).to.be(simplifiedGeometry4); }); From b179a27adedb68d1ba5767b92fb2921bf7beb466 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 20:51:54 +0100 Subject: [PATCH 575/919] Rename ol.geom.simplify.schaub to quantize --- src/ol/geom/multipolygon.js | 2 +- src/ol/geom/polygon.js | 2 +- src/ol/geom/simplifygeom.js | 10 +++++----- test/spec/ol/geom/simplifygeom.test.js | 18 +++++++++--------- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 9b4a279384..87adb0c827 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -143,7 +143,7 @@ ol.geom.MultiPolygon.prototype.getSimplifiedGeometryInternal = function(squaredTolerance) { var simplifiedFlatCoordinates = []; var simplifiedEndss = []; - simplifiedFlatCoordinates.length = ol.geom.simplify.schaubss( + simplifiedFlatCoordinates.length = ol.geom.simplify.quantizess( this.flatCoordinates, 0, this.endss_, this.stride, Math.sqrt(squaredTolerance), simplifiedFlatCoordinates, 0, simplifiedEndss); diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index a678b4e14b..b6d67d87fd 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -157,7 +157,7 @@ ol.geom.Polygon.prototype.getSimplifiedGeometryInternal = function(squaredTolerance) { var simplifiedFlatCoordinates = []; var simplifiedEnds = []; - simplifiedFlatCoordinates.length = ol.geom.simplify.schaubs( + simplifiedFlatCoordinates.length = ol.geom.simplify.quantizes( this.flatCoordinates, 0, this.ends_, this.stride, Math.sqrt(squaredTolerance), simplifiedFlatCoordinates, 0, simplifiedEnds); diff --git a/src/ol/geom/simplifygeom.js b/src/ol/geom/simplifygeom.js index cd60faf37d..427f8b22ce 100644 --- a/src/ol/geom/simplifygeom.js +++ b/src/ol/geom/simplifygeom.js @@ -264,7 +264,7 @@ ol.geom.simplify.snap = function(value, tolerance) { * @param {number} simplifiedOffset Simplified offset. * @return {number} Simplified offset. */ -ol.geom.simplify.schaub = function(flatCoordinates, offset, end, stride, +ol.geom.simplify.quantize = function(flatCoordinates, offset, end, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset) { // do nothing if the line is empty if (offset == end) { @@ -350,14 +350,14 @@ ol.geom.simplify.schaub = function(flatCoordinates, offset, end, stride, * @param {Array.} simplifiedEnds Simplified ends. * @return {number} Simplified offset. */ -ol.geom.simplify.schaubs = function( +ol.geom.simplify.quantizes = function( flatCoordinates, offset, ends, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) { var i, ii; for (i = 0, ii = ends.length; i < ii; ++i) { var end = ends[i]; - simplifiedOffset = ol.geom.simplify.schaub( + simplifiedOffset = ol.geom.simplify.quantize( flatCoordinates, offset, end, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset); @@ -380,7 +380,7 @@ ol.geom.simplify.schaubs = function( * @param {Array.>} simplifiedEndss Simplified endss. * @return {number} Simplified offset. */ -ol.geom.simplify.schaubss = function( +ol.geom.simplify.quantizess = function( flatCoordinates, offset, endss, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) { @@ -388,7 +388,7 @@ ol.geom.simplify.schaubss = function( for (i = 0, ii = endss.length; i < ii; ++i) { var ends = endss[i]; var simplifiedEnds = []; - simplifiedOffset = ol.geom.simplify.schaubs( + simplifiedOffset = ol.geom.simplify.quantizes( flatCoordinates, offset, ends, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds); diff --git a/test/spec/ol/geom/simplifygeom.test.js b/test/spec/ol/geom/simplifygeom.test.js index ee2b9d3a12..a59f128304 100644 --- a/test/spec/ol/geom/simplifygeom.test.js +++ b/test/spec/ol/geom/simplifygeom.test.js @@ -287,32 +287,32 @@ describe('ol.geom.simplify', function() { }); - describe('ol.geom.simplify.schaub', function() { + describe('ol.geom.simplify.quantize', function() { it('handles empty coordinates', function() { var simplifiedFlatCoordinates = []; - expect(ol.geom.simplify.schaub( + expect(ol.geom.simplify.quantize( [], 0, 0, 2, 2, simplifiedFlatCoordinates, 0)).to.be(0); expect(simplifiedFlatCoordinates).to.be.empty(); }); it('expands points to a zero-length line', function() { var simplifiedFlatCoordinates = []; - expect(ol.geom.simplify.schaub( + expect(ol.geom.simplify.quantize( [0, 0, 0, 0], 0, 4, 2, 2, simplifiedFlatCoordinates, 0)).to.be(4); expect(simplifiedFlatCoordinates).to.eql([0, 0, 0, 0]); }); it('snaps near-by points to the same value', function() { var simplifiedFlatCoordinates = []; - expect(ol.geom.simplify.schaub( + expect(ol.geom.simplify.quantize( [0.1, 0, 0, 0.1], 0, 4, 2, 2, simplifiedFlatCoordinates, 0)).to.be(4); expect(simplifiedFlatCoordinates).to.eql([0, 0, 0, 0]); }); it('eliminates duplicate snapped points', function() { var simplifiedFlatCoordinates = []; - expect(ol.geom.simplify.schaub( + expect(ol.geom.simplify.quantize( [0.1, 0, 2, 0, 2.1, 0, 2, 0.1, 1.9, 0, 2, -0.1], 0, 12, 2, 2, simplifiedFlatCoordinates, 0)).to.be(4); expect(simplifiedFlatCoordinates).to.eql([0, 0, 2, 0]); @@ -320,7 +320,7 @@ describe('ol.geom.simplify', function() { it('eliminates horizontal colinear points', function() { var simplifiedFlatCoordinates = []; - expect(ol.geom.simplify.schaub( + expect(ol.geom.simplify.quantize( [0, 0, 2, 0, 4, 0, 6, 0], 0, 8, 2, 2, simplifiedFlatCoordinates, 0)).to.be(4); expect(simplifiedFlatCoordinates).to.eql([0, 0, 6, 0]); @@ -328,7 +328,7 @@ describe('ol.geom.simplify', function() { it('eliminates vertical colinear points', function() { var simplifiedFlatCoordinates = []; - expect(ol.geom.simplify.schaub( + expect(ol.geom.simplify.quantize( [0, 0, 0, -2, 0, -4, 0, -6], 0, 8, 2, 2, simplifiedFlatCoordinates, 0)).to.be(4); expect(simplifiedFlatCoordinates).to.eql([0, 0, 0, -6]); @@ -336,7 +336,7 @@ describe('ol.geom.simplify', function() { it('eliminates diagonal colinear points', function() { var simplifiedFlatCoordinates = []; - expect(ol.geom.simplify.schaub( + expect(ol.geom.simplify.quantize( [0, 0, 2, -2, 4, -4, 6, -6], 0, 8, 2, 2, simplifiedFlatCoordinates, 0)).to.be(4); expect(simplifiedFlatCoordinates).to.eql([0, 0, 6, -6]); @@ -344,7 +344,7 @@ describe('ol.geom.simplify', function() { it('handles switchbacks', function() { var simplifiedFlatCoordinates = []; - expect(ol.geom.simplify.schaub( + expect(ol.geom.simplify.quantize( [0, 0, 2, 0, 0, 0, 4, 0], 0, 8, 2, 2, simplifiedFlatCoordinates, 0)).to.be(8); expect(simplifiedFlatCoordinates).to.eql([0, 0, 2, 0, 0, 0, 4, 0]); From dbec07396e3f7b8d18afa1d08a73f722cc0e1fac Mon Sep 17 00:00:00 2001 From: Gilbert Jeiziner Date: Thu, 12 Dec 2013 17:52:02 +0100 Subject: [PATCH 576/919] Exporting ol.render.DragBox --- src/ol/render/dragbox.exports | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/ol/render/dragbox.exports diff --git a/src/ol/render/dragbox.exports b/src/ol/render/dragbox.exports new file mode 100644 index 0000000000..c98c668fb9 --- /dev/null +++ b/src/ol/render/dragbox.exports @@ -0,0 +1,3 @@ +@exportSymbol ol.render.DragBox +@exportProperty ol.render.DragBox.prototype.setCoordinates +@exportProperty ol.render.DragBox.prototype.setMap From 700ebb860a62a7152f2e6c0716084e55bd7ded80 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 21:42:25 +0100 Subject: [PATCH 577/919] Don't assume EPSG:4326 in ol.format.Format --- src/ol/format/format.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ol/format/format.js b/src/ol/format/format.js index 18d924554d..4e3c0a055a 100644 --- a/src/ol/format/format.js +++ b/src/ol/format/format.js @@ -2,7 +2,6 @@ goog.provide('ol.format.Format'); goog.provide('ol.format.FormatType'); goog.require('goog.functions'); -goog.require('ol.proj'); /** @@ -65,9 +64,7 @@ ol.format.Format.prototype.readGeometry = goog.abstractMethod; * @param {Document|Node|Object|string} source Source. * @return {ol.proj.Projection} Projection. */ -ol.format.Format.prototype.readProjection = function(source) { - return ol.proj.get('EPSG:4326'); -}; +ol.format.Format.prototype.readProjection = goog.abstractMethod; /** From c86d7c40e2499035384e70b2d317f97a9c47e8ca Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 21:42:38 +0100 Subject: [PATCH 578/919] Don't assume EPSG:4326 in ol.format.Text --- src/ol/format/textformat.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ol/format/textformat.js b/src/ol/format/textformat.js index 4db799da68..ca56d9c2e4 100644 --- a/src/ol/format/textformat.js +++ b/src/ol/format/textformat.js @@ -3,7 +3,6 @@ goog.provide('ol.format.Text'); goog.require('goog.asserts'); goog.require('ol.format.Format'); goog.require('ol.format.FormatType'); -goog.require('ol.proj'); @@ -101,9 +100,7 @@ ol.format.Text.prototype.readProjection = function(source) { * @protected * @return {ol.proj.Projection} Projection. */ -ol.format.Text.prototype.readProjectionFromText = function(text) { - return ol.proj.get('EPSG:4326'); -}; +ol.format.Text.prototype.readProjectionFromText = goog.abstractMethod; /** From d46d3a209ed0d5de2e09a4a20483ec87d5639452 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 21:43:11 +0100 Subject: [PATCH 579/919] Don't assume EPSG:4326 in ol.format.XML --- src/ol/format/xmlformat.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ol/format/xmlformat.js b/src/ol/format/xmlformat.js index 8f32bcbeaf..2fd8ddbc54 100644 --- a/src/ol/format/xmlformat.js +++ b/src/ol/format/xmlformat.js @@ -4,7 +4,6 @@ goog.require('goog.asserts'); goog.require('goog.dom.xml'); goog.require('ol.format.Format'); goog.require('ol.format.FormatType'); -goog.require('ol.proj'); @@ -156,9 +155,7 @@ ol.format.XML.prototype.readProjection = function(source) { * @protected * @return {ol.proj.Projection} Projection. */ -ol.format.XML.prototype.readProjectionFromNode = function(node) { - return ol.proj.get('EPSG:4326'); -}; +ol.format.XML.prototype.readProjectionFromNode = goog.abstractMethod; /** From 31cd8da6f63ff2f9c46062f09e3b141d295862c5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 12 Dec 2013 10:57:41 +0100 Subject: [PATCH 580/919] Make options argument to ol.style.Style optional --- src/ol/style/style.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ol/style/style.js b/src/ol/style/style.js index d6e26decac..ebe3360482 100644 --- a/src/ol/style/style.js +++ b/src/ol/style/style.js @@ -8,10 +8,12 @@ goog.require('ol.style.Image'); /** * @constructor - * @param {olx.style.StyleOptions} options Style options. + * @param {olx.style.StyleOptions=} opt_options Style options. * @todo stability experimental */ -ol.style.Style = function(options) { +ol.style.Style = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; /** * @type {ol.style.Fill} From 465e33e170a10ad39c3948cb9bcb852bd5705f91 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 12 Dec 2013 10:57:55 +0100 Subject: [PATCH 581/919] Make options argument to ol.style.Fill optional --- src/ol/style/fillstyle.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ol/style/fillstyle.js b/src/ol/style/fillstyle.js index 438af2e496..78a4ddf59e 100644 --- a/src/ol/style/fillstyle.js +++ b/src/ol/style/fillstyle.js @@ -6,9 +6,11 @@ goog.require('ol.color'); /** * @constructor - * @param {olx.style.FillOptions} options Options. + * @param {olx.style.FillOptions=} opt_options Options. */ -ol.style.Fill = function(options) { +ol.style.Fill = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; /** * @type {ol.Color|string} From f429297a2f4ad43150030c030725a00546546f70 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 12 Dec 2013 10:58:03 +0100 Subject: [PATCH 582/919] Make options argument to ol.style.Image optional --- src/ol/style/imagestyle.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 4322dcf9a9..98087746b9 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -24,10 +24,12 @@ ol.style.ImageState = { /** * @constructor - * @param {olx.style.ImageOptions} options Options. + * @param {olx.style.ImageOptions=} opt_options Options. * @extends {goog.events.EventTarget} */ -ol.style.Image = function(options) { +ol.style.Image = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; goog.base(this); From aae425eb59b8bb7bf4be603b2dd7faff8464b327 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 12 Dec 2013 10:58:15 +0100 Subject: [PATCH 583/919] Make options argument to ol.style.Stroke optional --- src/ol/style/strokestyle.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ol/style/strokestyle.js b/src/ol/style/strokestyle.js index fc5575eff1..7363fd3a2f 100644 --- a/src/ol/style/strokestyle.js +++ b/src/ol/style/strokestyle.js @@ -6,9 +6,11 @@ goog.require('ol.color'); /** * @constructor - * @param {olx.style.StrokeOptions} options Options. + * @param {olx.style.StrokeOptions=} opt_options Options. */ -ol.style.Stroke = function(options) { +ol.style.Stroke = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; /** * @type {ol.Color|string} From ece21e18feb6871c83f02bc4a2516471c61c4bee Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 12 Dec 2013 10:58:26 +0100 Subject: [PATCH 584/919] Make options argument to ol.style.Text optional --- src/ol/style/textstyle.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ol/style/textstyle.js b/src/ol/style/textstyle.js index 6e6d6b9b6c..a2a7851897 100644 --- a/src/ol/style/textstyle.js +++ b/src/ol/style/textstyle.js @@ -4,9 +4,11 @@ goog.provide('ol.style.Text'); /** * @constructor - * @param {olx.style.TextOptions} options Options. + * @param {olx.style.TextOptions=} opt_options Options. */ -ol.style.Text = function(options) { +ol.style.Text = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; /** * @type {string|undefined} From a7d6730259fe42fe5d57edb3e92fcd6cba2b8b15 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 12 Dec 2013 10:59:14 +0100 Subject: [PATCH 585/919] Add styleFunction property to ol.Feature --- src/ol/feature.js | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/ol/feature.js b/src/ol/feature.js index e4200c70d4..63127bb16b 100644 --- a/src/ol/feature.js +++ b/src/ol/feature.js @@ -5,16 +5,24 @@ goog.require('goog.events'); goog.require('goog.events.EventType'); goog.require('ol.Object'); goog.require('ol.geom.Geometry'); +goog.require('ol.style.Style'); /** * @enum {string} */ ol.FeatureProperty = { - GEOMETRY: 'geometry' + GEOMETRY: 'geometry', + STYLE_FUNCTION: 'styleFunction' }; +/** + * @typedef {function(this: ol.Feature, number): Array.} + */ +ol.FeatureStyleFunction; + + /** * @constructor @@ -47,6 +55,9 @@ ol.Feature = function(opt_geometryOrValues) { goog.events.listen( this, ol.Object.getChangeEventType(ol.FeatureProperty.GEOMETRY), this.handleGeometryChanged_, false, this); + goog.events.listen( + this, ol.Object.getChangeEventType(ol.FeatureProperty.STYLE_FUNCTION), + this.handleStyleFunctionChange_, false, this); if (goog.isDefAndNotNull(opt_geometryOrValues)) { if (opt_geometryOrValues instanceof ol.geom.Geometry) { @@ -102,6 +113,19 @@ ol.Feature.prototype.getRevision = function() { }; +/** + * @return {ol.FeatureStyleFunction|undefined} Style function. + */ +ol.Feature.prototype.getStyleFunction = function() { + return /** @type {ol.FeatureStyleFunction|undefined} */ ( + this.get(ol.FeatureProperty.STYLE_FUNCTION)); +}; +goog.exportProperty( + ol.Feature.prototype, + 'getStyleFunction', + ol.Feature.prototype.getStyleFunction); + + /** * @private */ @@ -127,6 +151,14 @@ ol.Feature.prototype.handleGeometryChanged_ = function() { }; +/** + * @private + */ +ol.Feature.prototype.handleStyleFunctionChange_ = function() { + this.dispatchChangeEvent(); +}; + + /** * @param {ol.geom.Geometry|undefined} geometry Geometry. */ @@ -139,6 +171,18 @@ goog.exportProperty( ol.Feature.prototype.setGeometry); +/** + * @param {ol.FeatureStyleFunction|undefined} styleFunction Style function. + */ +ol.Feature.prototype.setStyleFunction = function(styleFunction) { + this.set(ol.FeatureProperty.STYLE_FUNCTION, styleFunction); +}; +goog.exportProperty( + ol.Feature.prototype, + 'setStyleFunction', + ol.Feature.prototype.setStyleFunction); + + /** * @param {number|string|undefined} id Id. */ From c672eca7496b087eb063019880af752a234e1372 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 12 Dec 2013 10:59:48 +0100 Subject: [PATCH 586/919] Add ol.layer.Vector.defaultStyleFunction --- src/ol/layer/vectorlayer.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js index e9a9290119..35e5cd535c 100644 --- a/src/ol/layer/vectorlayer.js +++ b/src/ol/layer/vectorlayer.js @@ -35,6 +35,21 @@ ol.layer.Vector = function(opt_options) { goog.inherits(ol.layer.Vector, ol.layer.Layer); +/** + * @param {ol.Feature} feature Feature. + * @param {number} resolution Resolution. + * @return {Array.} Styles. + */ +ol.layer.Vector.defaultStyleFunction = function(feature, resolution) { + var featureStyleFunction = feature.getStyleFunction(); + if (goog.isDef(featureStyleFunction)) { + return featureStyleFunction.call(feature, resolution); + } else { + return null; + } +}; + + /** * @return {function(ol.geom.Geometry): boolean|undefined} Render geometry * function. From afdfb92198ebf597b7a208e35133b299a50b0d78 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 12 Dec 2013 11:02:15 +0100 Subject: [PATCH 587/919] Use ol.layer.Vector.defaultStyleFunction by default --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index ba41325eca..4d4eee8b0a 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -6,6 +6,7 @@ goog.require('goog.events.EventType'); goog.require('goog.functions'); goog.require('ol.ViewHint'); goog.require('ol.extent'); +goog.require('ol.layer.Vector'); goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.vector'); @@ -194,6 +195,9 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = this.dirty_ = false; var styleFunction = vectorLayer.getStyleFunction(); + if (!goog.isDef(styleFunction)) { + styleFunction = ol.layer.Vector.defaultStyleFunction; + } var replayGroup = new ol.render.canvas.ReplayGroup(); vectorSource.forEachFeatureInExtent(extent, /** From ec7d1935430b6f397c901a3f43fb7b65ef036f4d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 12 Dec 2013 11:07:02 +0100 Subject: [PATCH 588/919] Don't attempt to render features whose style is undefined or null --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 4d4eee8b0a..1061501efb 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -231,6 +231,10 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = function(feature, resolution, styleFunction, replayGroup) { var loading = false; var styles = styleFunction(feature, resolution); + // FIXME if styles is null, should we use the default style? + if (!goog.isDefAndNotNull(styles)) { + return false; + } // simplify to a tolerance of half a CSS pixel var squaredTolerance = resolution * resolution / 4; var i, ii, style, imageStyle, imageState; From 01a246ca720633cd392062f6dbdfaa2a9386ee86 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 12 Dec 2013 14:21:27 +0100 Subject: [PATCH 589/919] Add devicePixelRatio option to ol.Map constructor --- src/objectliterals.jsdoc | 3 +++ src/ol/map.js | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 622a98a221..71636f4f7c 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -25,6 +25,9 @@ * @typedef {Object} olx.MapOptions * @property {ol.Collection|Array.|undefined} controls * Controls initially added to the map. + * @property {number|undefined} devicePixelRatio The ratio between physical + * pixels and device-independent pixels (dips) on the device. If `undefined` + * then it gets set by using `window.devicePixelRatio`. * @property {ol.Collection|Array.|undefined} interactions * Interactions that are initially added to the map. * @property {Array.|ol.Collection|undefined} layers Layers. diff --git a/src/ol/map.js b/src/ol/map.js index 1019341a02..797451b7a5 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -157,6 +157,13 @@ ol.Map = function(options) { var optionsInternal = ol.Map.createOptionsInternal(options); + /** + * @private + * @type {number} + */ + this.devicePixelRatio_ = goog.isDef(options.devicePixelRatio) ? + options.devicePixelRatio : ol.BrowserFeature.DEVICE_PIXEL_RATIO; + /** * @private * @type {goog.async.AnimationDelay} From bd1107f785024b8269d8902041106126d11975d6 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 12 Dec 2013 14:21:43 +0100 Subject: [PATCH 590/919] Add devicePixelRatio to ol.FrameState --- src/ol/framestate.js | 1 + src/ol/map.js | 1 + 2 files changed, 2 insertions(+) diff --git a/src/ol/framestate.js b/src/ol/framestate.js index b86c897ef9..84f3da2c46 100644 --- a/src/ol/framestate.js +++ b/src/ol/framestate.js @@ -20,6 +20,7 @@ goog.require('ol.layer.LayerState'); * @typedef {{animate: boolean, * attributions: Object., * coordinateToPixelMatrix: goog.vec.Mat4.Number, + * devicePixelRatio: number, * extent: (null|ol.Extent), * focus: ol.Coordinate, * index: number, diff --git a/src/ol/map.js b/src/ol/map.js index 797451b7a5..98ea98d24e 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -1076,6 +1076,7 @@ ol.Map.prototype.renderFrame_ = function(time) { animate: false, attributions: {}, coordinateToPixelMatrix: this.coordinateToPixelMatrix_, + devicePixelRatio: this.devicePixelRatio_, extent: null, focus: goog.isNull(this.focus_) ? view2DState.center : this.focus_, index: this.frameIndex_++, From 355c0a10179625ff103d4f5b63c2816a73fc2618 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 12 Dec 2013 14:46:39 +0100 Subject: [PATCH 591/919] Scale output canvas by devicePixelRatio --- .../canvas/canvasimagelayerrenderer.js | 7 +++-- src/ol/renderer/canvas/canvaslayerrenderer.js | 7 +++-- src/ol/renderer/canvas/canvasmaprenderer.js | 30 +++++++++++++++---- .../canvas/canvastilelayerrenderer.js | 8 +++-- 4 files changed, 39 insertions(+), 13 deletions(-) diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index 29af98a994..dc6a94d298 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -96,9 +96,12 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame = image = this.image_; var imageExtent = image.getExtent(); var imageResolution = image.getResolution(); + var devicePixelRatio = frameState.devicePixelRatio; ol.vec.Mat4.makeTransform2D(this.imageTransform_, - frameState.size[0] / 2, frameState.size[1] / 2, - imageResolution / viewResolution, imageResolution / viewResolution, + devicePixelRatio * frameState.size[0] / 2, + devicePixelRatio * frameState.size[1] / 2, + devicePixelRatio * imageResolution / viewResolution, + devicePixelRatio * imageResolution / viewResolution, viewRotation, (imageExtent[0] - viewCenter[0]) / imageResolution, (viewCenter[1] - imageExtent[3]) / imageResolution); diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index 7485e3f05a..3a0d2a53d2 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -139,9 +139,12 @@ ol.renderer.canvas.Layer.prototype.getImageTransform = goog.abstractMethod; */ ol.renderer.canvas.Layer.prototype.getTransform = function(frameState) { var view2DState = frameState.view2DState; + var devicePixelRatio = frameState.devicePixelRatio; return ol.vec.Mat4.makeTransform2D(this.transform_, - frameState.size[0] / 2, frameState.size[1] / 2, - 1 / view2DState.resolution, -1 / view2DState.resolution, + devicePixelRatio * frameState.size[0] / 2, + devicePixelRatio * frameState.size[1] / 2, + devicePixelRatio / view2DState.resolution, + -devicePixelRatio / view2DState.resolution, -view2DState.rotation, -view2DState.center[0], -view2DState.center[1]); }; diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index a78e1f7735..404762d94c 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -6,6 +6,7 @@ goog.require('goog.asserts'); goog.require('goog.dom'); goog.require('goog.dom.TagName'); goog.require('goog.style'); +goog.require('goog.vec.Mat4'); goog.require('ol.css'); goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); @@ -19,6 +20,7 @@ goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.canvas.TileLayer'); goog.require('ol.renderer.canvas.VectorLayer'); goog.require('ol.source.State'); +goog.require('ol.vec.Mat4'); @@ -56,6 +58,12 @@ ol.renderer.canvas.Map = function(container, map) { this.context_ = /** @type {CanvasRenderingContext2D} */ (this.canvas_.getContext('2d')); + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.transform_ = goog.vec.Mat4.createNumber(); + }; goog.inherits(ol.renderer.canvas.Map, ol.renderer.Map); @@ -87,8 +95,17 @@ ol.renderer.canvas.Map.prototype.dispatchComposeEvent_ = var map = this.getMap(); var context = this.context_; if (map.hasListener(type)) { + var view2DState = frameState.view2DState; + var devicePixelRatio = frameState.devicePixelRatio; + ol.vec.Mat4.makeTransform2D(this.transform_, + this.canvas_.width / 2, + this.canvas_.height / 2, + devicePixelRatio / view2DState.resolution, + -devicePixelRatio / view2DState.resolution, + -view2DState.rotation, + -view2DState.center[0], -view2DState.center[1]); var render = new ol.render.canvas.Immediate( - context, frameState.extent, frameState.coordinateToPixelMatrix); + context, frameState.extent, this.transform_); var composeEvent = new ol.render.Event(type, map, render, frameState, context, null); map.dispatchEvent(composeEvent); @@ -121,11 +138,12 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { } var context = this.context_; - - var size = frameState.size; - if (this.canvas_.width != size[0] || this.canvas_.height != size[1]) { - this.canvas_.width = size[0]; - this.canvas_.height = size[1]; + var ratio = frameState.devicePixelRatio; + var width = frameState.size[0] * ratio; + var height = frameState.size[1] * ratio; + if (this.canvas_.width != width || this.canvas_.height != height) { + this.canvas_.width = width; + this.canvas_.height = height; } else { context.clearRect(0, 0, this.canvas_.width, this.canvas_.height); } diff --git a/src/ol/renderer/canvas/canvastilelayerrenderer.js b/src/ol/renderer/canvas/canvastilelayerrenderer.js index db5919be45..c24e597615 100644 --- a/src/ol/renderer/canvas/canvastilelayerrenderer.js +++ b/src/ol/renderer/canvas/canvastilelayerrenderer.js @@ -382,10 +382,12 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = this.scheduleExpireCache(frameState, tileSource); this.updateLogos(frameState, tileSource); + var devicePixelRatio = frameState.devicePixelRatio; ol.vec.Mat4.makeTransform2D(this.imageTransform_, - frameState.size[0] / 2, frameState.size[1] / 2, - tileResolution / view2DState.resolution, - tileResolution / view2DState.resolution, + devicePixelRatio * frameState.size[0] / 2, + devicePixelRatio * frameState.size[1] / 2, + devicePixelRatio * tileResolution / view2DState.resolution, + devicePixelRatio * tileResolution / view2DState.resolution, view2DState.rotation, (origin[0] - center[0]) / tileResolution, (center[1] - origin[1]) / tileResolution); From 2d0e6fd6bca4b9fbba9cf6c7f89d2707c42c61e1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 14 Dec 2013 11:23:44 +0100 Subject: [PATCH 592/919] Pass pixel ratio to ol.render.canvas.ReplayGroup constructor --- src/ol/render/canvas/canvasreplay.js | 9 ++++++++- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 8a7f7a7a12..e853db1069 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1052,9 +1052,16 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { /** * @constructor * @implements {ol.render.IReplayGroup} + * @param {number} pixelRatio Pixel ratio. * @struct */ -ol.render.canvas.ReplayGroup = function() { +ol.render.canvas.ReplayGroup = function(pixelRatio) { + + /** + * @private + * @type {number} + */ + this.pixelRatio_ = pixelRatio; /** * @private diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 1061501efb..52c8b38eb5 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -172,6 +172,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = var vectorSource = vectorLayer.getVectorSource(); var frameStateExtent = frameState.extent; var frameStateResolution = frameState.view2DState.resolution; + var pixelRatio = frameState.devicePixelRatio; if (!this.dirty_ && this.renderedResolution_ == frameStateResolution && @@ -198,7 +199,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = if (!goog.isDef(styleFunction)) { styleFunction = ol.layer.Vector.defaultStyleFunction; } - var replayGroup = new ol.render.canvas.ReplayGroup(); + var replayGroup = new ol.render.canvas.ReplayGroup(pixelRatio); vectorSource.forEachFeatureInExtent(extent, /** * @param {ol.Feature} feature Feature. From 8304a2c7aaf5f0f1d37739f87a4ad337f33499b5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 14 Dec 2013 11:24:46 +0100 Subject: [PATCH 593/919] Pass pixel ratio to ol.render.canvas.Replay constructors --- src/ol/render/canvas/canvasreplay.js | 29 +++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index e853db1069..df13fc150a 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -41,10 +41,17 @@ ol.render.canvas.Instruction = { /** * @constructor * @implements {ol.render.IRender} + * @param {number} pixelRatio Pixel ratio. * @protected * @struct */ -ol.render.canvas.Replay = function() { +ol.render.canvas.Replay = function(pixelRatio) { + + /** + * @protected + * @type {number} + */ + this.pixelRatio = pixelRatio; /** * @private @@ -430,12 +437,13 @@ ol.render.canvas.Replay.prototype.setTextStyle = goog.abstractMethod; /** * @constructor * @extends {ol.render.canvas.Replay} + * @param {number} pixelRatio Pixel ratio. * @protected * @struct */ -ol.render.canvas.ImageReplay = function() { +ol.render.canvas.ImageReplay = function(pixelRatio) { - goog.base(this); + goog.base(this, pixelRatio); /** * @private @@ -588,12 +596,13 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { /** * @constructor * @extends {ol.render.canvas.Replay} + * @param {number} pixelRatio Pixel ratio. * @protected * @struct */ -ol.render.canvas.LineStringReplay = function() { +ol.render.canvas.LineStringReplay = function(pixelRatio) { - goog.base(this); + goog.base(this, pixelRatio); /** * @private @@ -790,12 +799,13 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = /** * @constructor * @extends {ol.render.canvas.Replay} + * @param {number} pixelRatio Pixel ratio. * @protected * @struct */ -ol.render.canvas.PolygonReplay = function() { +ol.render.canvas.PolygonReplay = function(pixelRatio) { - goog.base(this); + goog.base(this, pixelRatio); /** * @private @@ -1255,7 +1265,7 @@ ol.render.canvas.ReplayGroup.prototype.getReplay = if (!goog.isDef(replay)) { var constructor = ol.render.canvas.BATCH_CONSTRUCTORS_[replayType]; goog.asserts.assert(goog.isDef(constructor)); - replay = new constructor(); + replay = new constructor(this.pixelRatio_); replayes[replayType] = replay; } return replay; @@ -1273,7 +1283,8 @@ ol.render.canvas.ReplayGroup.prototype.isEmpty = function() { /** * @const * @private - * @type {Object.} + * @type {Object.} */ ol.render.canvas.BATCH_CONSTRUCTORS_ = { 'Image': ol.render.canvas.ImageReplay, From 9b1a5f512dab0948dc02ec646bade95de6924455 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 14 Dec 2013 11:25:18 +0100 Subject: [PATCH 594/919] Scale line widths by pixel ratio in replay mode --- src/ol/render/canvas/canvasreplay.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index df13fc150a..14763abc57 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -788,8 +788,8 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = strokeStyle.lineDash : ol.render.canvas.defaultLineDash; this.state_.lineJoin = goog.isDef(strokeStyle.lineJoin) ? strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; - this.state_.lineWidth = goog.isDef(strokeStyle.width) ? - strokeStyle.width : ol.render.canvas.defaultLineWidth; + this.state_.lineWidth = this.pixelRatio * (goog.isDef(strokeStyle.width) ? + strokeStyle.width : ol.render.canvas.defaultLineWidth); this.state_.miterLimit = goog.isDef(strokeStyle.miterLimit) ? strokeStyle.miterLimit : ol.render.canvas.defaultMiterLimit; }; @@ -1000,8 +1000,8 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = strokeStyle.lineDash : ol.render.canvas.defaultLineDash; state.lineJoin = goog.isDef(strokeStyle.lineJoin) ? strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; - state.lineWidth = goog.isDef(strokeStyle.width) ? - strokeStyle.width : ol.render.canvas.defaultLineWidth; + state.lineWidth = this.pixelRatio * (goog.isDef(strokeStyle.width) ? + strokeStyle.width : ol.render.canvas.defaultLineWidth); state.miterLimit = goog.isDef(strokeStyle.miterLimit) ? strokeStyle.miterLimit : ol.render.canvas.defaultMiterLimit; } else { From 20e51a5e348bb4fdce7872cbcddd31f3e79e95d2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 14 Dec 2013 11:25:47 +0100 Subject: [PATCH 595/919] Pass pixel ratio to ol.renderer.canvas.VectorLayer#renderFeature --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 52c8b38eb5..ef94a0e754 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -206,8 +206,8 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = */ function(feature) { this.dirty_ = this.dirty_ || - this.renderFeature(feature, frameStateResolution, styleFunction, - replayGroup); + this.renderFeature(feature, frameStateResolution, pixelRatio, + styleFunction, replayGroup); }, this); replayGroup.finish(); @@ -224,12 +224,13 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = /** * @param {ol.Feature} feature Feature. * @param {number} resolution Resolution. + * @param {number} pixelRatio Pixel ratio. * @param {ol.style.StyleFunction} styleFunction Style function. * @param {ol.render.canvas.ReplayGroup} replayGroup Replay group. * @return {boolean} `true` if an image is loading. */ ol.renderer.canvas.VectorLayer.prototype.renderFeature = - function(feature, resolution, styleFunction, replayGroup) { + function(feature, resolution, pixelRatio, styleFunction, replayGroup) { var loading = false; var styles = styleFunction(feature, resolution); // FIXME if styles is null, should we use the default style? From 81c0c37eb9193db1167fad0bd11ff04bea2e80e9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 14 Dec 2013 11:34:11 +0100 Subject: [PATCH 596/919] Simplify geometries to a tolerance of half a device pixel --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index ef94a0e754..08b78a3a7f 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -237,8 +237,9 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = if (!goog.isDefAndNotNull(styles)) { return false; } - // simplify to a tolerance of half a CSS pixel - var squaredTolerance = resolution * resolution / 4; + // simplify to a tolerance of half a device pixel + var squaredTolerance = + resolution * resolution / (4 * pixelRatio * pixelRatio); var i, ii, style, imageStyle, imageState; for (i = 0, ii = styles.length; i < ii; ++i) { style = styles[i]; From eb8407237384f47191df0316a026b773a593f366 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 14 Dec 2013 11:42:11 +0100 Subject: [PATCH 597/919] Pass pixel ratio to ol.render.canvas.Immediate constructor --- src/ol/render/canvas/canvasimmediate.js | 9 ++++++++- src/ol/renderer/canvas/canvaslayerrenderer.js | 4 ++-- src/ol/renderer/canvas/canvasmaprenderer.js | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index f3aa2228b5..b011d1a269 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -17,11 +17,12 @@ goog.require('ol.style.Text'); * @constructor * @implements {ol.render.IRender} * @param {CanvasRenderingContext2D} context Context. + * @param {number} pixelRatio Pixel ratio. * @param {ol.Extent} extent Extent. * @param {goog.vec.Mat4.AnyType} transform Transform. * @struct */ -ol.render.canvas.Immediate = function(context, extent, transform) { +ol.render.canvas.Immediate = function(context, pixelRatio, extent, transform) { /** * @private @@ -29,6 +30,12 @@ ol.render.canvas.Immediate = function(context, extent, transform) { */ this.context_ = context; + /** + * @private + * @type {number} + */ + this.pixelRatio_ = pixelRatio; + /** * @private * @type {ol.Extent} diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index 3a0d2a53d2..f3a0366338 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -85,8 +85,8 @@ ol.renderer.canvas.Layer.prototype.dispatchComposeEvent_ = if (layer.hasListener(type)) { var transform = goog.isDef(opt_transform) ? opt_transform : this.getTransform(frameState); - var render = new ol.render.canvas.Immediate(context, frameState.extent, - transform); + var render = new ol.render.canvas.Immediate( + context, frameState.devicePixelRatio, frameState.extent, transform); var composeEvent = new ol.render.Event(type, layer, render, frameState, context, null); layer.dispatchEvent(composeEvent); diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index 404762d94c..a842aa6482 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -105,7 +105,7 @@ ol.renderer.canvas.Map.prototype.dispatchComposeEvent_ = -view2DState.rotation, -view2DState.center[0], -view2DState.center[1]); var render = new ol.render.canvas.Immediate( - context, frameState.extent, this.transform_); + context, devicePixelRatio, frameState.extent, this.transform_); var composeEvent = new ol.render.Event(type, map, render, frameState, context, null); map.dispatchEvent(composeEvent); From 6f2292588faa0faf60500c333bbcc67fc098cbdd Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sat, 14 Dec 2013 11:42:33 +0100 Subject: [PATCH 598/919] Scale line widths by pixel ratio in immediate mode --- src/ol/render/canvas/canvasimmediate.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index b011d1a269..2e1729bc29 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -392,8 +392,8 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = strokeStyle.lineDash : ol.render.canvas.defaultLineDash; state.lineJoin = goog.isDef(strokeStyle.lineJoin) ? strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; - state.lineWidth = goog.isDef(strokeStyle.width) ? - strokeStyle.width : ol.render.canvas.defaultLineWidth; + state.lineWidth = this.pixelRatio_ * (goog.isDef(strokeStyle.width) ? + strokeStyle.width : ol.render.canvas.defaultLineWidth); state.miterLimit = goog.isDef(strokeStyle.miterLimit) ? strokeStyle.miterLimit : ol.render.canvas.defaultMiterLimit; } else { From 0ddcfb694b2c2ca22d89cb795418794e2b3c922f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 16 Dec 2013 12:29:57 +0100 Subject: [PATCH 599/919] Set zoom in vector-layer example to match master --- examples/vector-layer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/vector-layer.js b/examples/vector-layer.js index 35b95c69b2..adda211076 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -40,7 +40,7 @@ var map = new ol.Map({ target: 'map', view: new ol.View2D({ center: [0, 0], - zoom: 2 + zoom: 1 }) }); From 8003c4ba5aa7f6212c650cd6a0e8c38c0d01410b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 15 Dec 2013 15:30:56 +0100 Subject: [PATCH 600/919] Remove ol.format.Format#readStyleFunction --- src/ol/format/format.exports | 1 - src/ol/format/format.js | 10 ---------- 2 files changed, 11 deletions(-) diff --git a/src/ol/format/format.exports b/src/ol/format/format.exports index 0d0fdfb024..b739fdbdb7 100644 --- a/src/ol/format/format.exports +++ b/src/ol/format/format.exports @@ -1,2 +1 @@ @exportProperty ol.format.Format.prototype.readProjection -@exportProperty ol.format.Format.prototype.readStyleFunction diff --git a/src/ol/format/format.js b/src/ol/format/format.js index 4e3c0a055a..b426dbaebc 100644 --- a/src/ol/format/format.js +++ b/src/ol/format/format.js @@ -67,16 +67,6 @@ ol.format.Format.prototype.readGeometry = goog.abstractMethod; ol.format.Format.prototype.readProjection = goog.abstractMethod; -/** - * @param {Document|Node|Object|string} source Source. - * @return {function(ol.Feature, number): Array.} Style - * function. - */ -ol.format.Format.prototype.readStyleFunction = function(source) { - return goog.functions.NULL; -}; - - /** * @param {ol.Feature} feature Feature. * @return {Node|Object|string} Result. From 5729ebbd79b918496ef34f656718297a20780b25 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 15 Dec 2013 23:04:42 +0100 Subject: [PATCH 601/919] Add ol.geom.GeometryCollection#isEmpty --- src/ol/geom/geometrycollection.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ol/geom/geometrycollection.js b/src/ol/geom/geometrycollection.js index 7765699b0c..3357e84184 100644 --- a/src/ol/geom/geometrycollection.js +++ b/src/ol/geom/geometrycollection.js @@ -173,6 +173,14 @@ ol.geom.GeometryCollection.prototype.getType = function() { }; +/** + * @return {boolean} Is empty. + */ +ol.geom.GeometryCollection.prototype.isEmpty = function() { + return goog.array.isEmpty(this.geometries_); +}; + + /** * @param {Array.} geometries Geometries. */ From 47e2dd53ce6f84e5a53060c130d227b3ab281afb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 15 Dec 2013 22:33:14 +0100 Subject: [PATCH 602/919] Add ol.structs.RBush#getExtent --- src/ol/structs/rbush.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ol/structs/rbush.js b/src/ol/structs/rbush.js index 8f45d27cb6..7e8ff0ff50 100644 --- a/src/ol/structs/rbush.js +++ b/src/ol/structs/rbush.js @@ -522,6 +522,15 @@ ol.structs.RBush.prototype.getAllInExtent = function(extent) { }; +/** + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} Extent. + */ +ol.structs.RBush.prototype.getExtent = function(opt_extent) { + return ol.extent.returnOrUpdate(this.root_.extent, opt_extent); +}; + + /** * @param {T} value Value. * @private From 975e0c0576ec4cdc04204819f2726a40b1d6c76a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 15 Dec 2013 23:11:07 +0100 Subject: [PATCH 603/919] Add ol.source.Vector#getExtent --- src/ol/source/vectorsource.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 776dd2f7b2..d002278ebb 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -212,6 +212,14 @@ ol.source.Vector.prototype.getClosestFeatureToCoordinate = }; +/** + * @return {ol.Extent} Extent. + */ +ol.source.Vector.prototype.getExtent = function() { + return this.rBush_.getExtent(); +}; + + /** * @param {goog.events.Event} event Event. * @private From 451051047767be3ff4542466fbe754845eeffdc9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 15 Dec 2013 23:10:38 +0100 Subject: [PATCH 604/919] Handle features with null geometries in ol.source.Vector --- src/ol/source/vectorsource.js | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index d002278ebb..11079daf57 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -6,10 +6,12 @@ goog.provide('ol.source.Vector'); goog.provide('ol.source.VectorEvent'); goog.provide('ol.source.VectorEventType'); +goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.events'); goog.require('goog.events.Event'); goog.require('goog.events.EventType'); +goog.require('goog.object'); goog.require('ol.source.Source'); goog.require('ol.structs.RBush'); @@ -48,6 +50,12 @@ ol.source.Vector = function(opt_options) { */ this.rBush_ = new ol.structs.RBush(); + /** + * @private + * @type {Object.} + */ + this.nullGeometryFeatures_ = {}; + /** * @private * @type {Object.} @@ -74,8 +82,13 @@ ol.source.Vector.prototype.addFeature = function(feature) { goog.asserts.assert(!(featureKey in this.featureChangeKeys_)); this.featureChangeKeys_[featureKey] = goog.events.listen(feature, goog.events.EventType.CHANGE, this.handleFeatureChange_, false, this); - var extent = feature.getGeometry().getExtent(); - this.rBush_.insert(extent, feature); + var geometry = feature.getGeometry(); + if (goog.isNull(geometry)) { + this.nullGeometryFeatures_[goog.getUid(feature).toString()] = feature; + } else { + var extent = geometry.getExtent(); + this.rBush_.insert(extent, feature); + } this.dispatchEvent( new ol.source.VectorEvent(ol.source.VectorEventType.ADDFEATURE, feature)); this.dispatchChangeEvent(); @@ -140,7 +153,12 @@ ol.source.Vector.prototype.forEachFeatureInExtent = * @return {Array.} Features. */ ol.source.Vector.prototype.getAllFeatures = function() { - return this.rBush_.getAll(); + var features = this.rBush_.getAll(); + if (!goog.object.isEmpty(this.nullGeometryFeatures_)) { + goog.array.extend( + features, goog.object.getValues(this.nullGeometryFeatures_)); + } + return features; }; @@ -235,7 +253,8 @@ ol.source.Vector.prototype.handleFeatureChange_ = function(event) { * @return {boolean} Is empty. */ ol.source.Vector.prototype.isEmpty = function() { - return this.rBush_.isEmpty(); + return this.rBush_.isEmpty() && + goog.object.isEmpty(this.nullGeometryFeatures_); }; @@ -243,7 +262,12 @@ ol.source.Vector.prototype.isEmpty = function() { * @param {ol.Feature} feature Feature. */ ol.source.Vector.prototype.removeFeature = function(feature) { - this.rBush_.remove(feature); + var featureKey = goog.getUid(feature).toString(); + if (featureKey in this.nullGeometryFeatures_) { + delete this.nullGeometryFeatures_[featureKey]; + } else { + this.rBush_.remove(feature); + } this.removeFeatureInternal_(feature); this.dispatchChangeEvent(); }; From fde0350414afeae6346d1e818da7e1978edfd92d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 16 Dec 2013 20:25:49 +0100 Subject: [PATCH 605/919] Add ol.format.IGC --- src/objectliterals.jsdoc | 6 ++ src/ol/format/igcformat.exports | 1 + src/ol/format/igcformat.js | 154 ++++++++++++++++++++++++++++++++ 3 files changed, 161 insertions(+) create mode 100644 src/ol/format/igcformat.exports create mode 100644 src/ol/format/igcformat.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 6f981585ed..5c66ab9706 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -254,6 +254,12 @@ * @property {ol.proj.ProjectionLike} defaultProjection Default projection. */ +/** + * @typedef {Object} olx.format.IGCOptions + * @property {ol.format.IGCZ|undefined} altitudeMode Altitude mode. + * Possible values are `barometric`, `gps`, and `none`. Default is `none`. + */ + /** * @typedef {Object} olx.interaction.DoubleClickZoomOptions * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`. diff --git a/src/ol/format/igcformat.exports b/src/ol/format/igcformat.exports new file mode 100644 index 0000000000..640005aa90 --- /dev/null +++ b/src/ol/format/igcformat.exports @@ -0,0 +1 @@ +@exportSymbol ol.format.IGC diff --git a/src/ol/format/igcformat.js b/src/ol/format/igcformat.js new file mode 100644 index 0000000000..826c62c1c3 --- /dev/null +++ b/src/ol/format/igcformat.js @@ -0,0 +1,154 @@ +goog.provide('ol.format.IGC'); + +goog.require('goog.asserts'); +goog.require('goog.string'); +goog.require('goog.string.newlines'); +goog.require('ol.Feature'); +goog.require('ol.format.Text'); +goog.require('ol.geom.LineString'); +goog.require('ol.proj'); + + +/** + * @enum {string} + */ +ol.format.IGCZ = { + BAROMETRIC: 'barometric', + GPS: 'gps', + NONE: 'none' +}; + + + +/** + * @constructor + * @extends {ol.format.Text} + * @param {olx.format.IGCOptions=} opt_options Options. + */ +ol.format.IGC = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + goog.base(this); + + /** + * @private + * @type {ol.format.IGCZ} + */ + this.altitudeMode_ = goog.isDef(options.altitudeMode) ? + options.altitudeMode : ol.format.IGCZ.NONE; + +}; +goog.inherits(ol.format.IGC, ol.format.Text); + + +/** + * @const {RegExp} + * @private + */ +ol.format.IGC.B_RECORD_RE_ = + /^B(\d{2})(\d{2})(\d{2})(\d{2})(\d{5})([NS])(\d{3})(\d{5})([EW])([AV])(\d{5})(\d{5})/; + + +/** + * @const {RegExp} + * @private + */ +ol.format.IGC.H_RECORD_RE_ = /^H.([A-Z]{3}).*?:(.*)/; + + +/** + * @const {RegExp} + * @private + */ +ol.format.IGC.HFDTE_RECORD_RE_ = /^HFDTE(\d{2})(\d{2})(\d{2})/; + + +/** + * @inheritDoc + */ +ol.format.IGC.prototype.readFeatureFromText = function(text) { + var altitudeMode = this.altitudeMode_; + var lines = goog.string.newlines.splitLines(text); + /** @type {Object.} */ + var properties = {}; + var flatCoordinates = []; + var year = 2000; + var month = 1; + var day = 1; + var i, ii; + for (i = 0, ii = lines.length; i < ii; ++i) { + var line = lines[i]; + var m; + if (line.charAt(0) == 'B') { + m = ol.format.IGC.B_RECORD_RE_.exec(line); + if (m) { + var hour = parseInt(m[1], 10); + var minute = parseInt(m[2], 10); + var second = parseInt(m[3], 10); + var y = parseInt(m[4], 10) + parseInt(m[5], 10) / 60000; + if (m[6] == 'S') { + y = -y; + } + var x = parseInt(m[7], 10) + parseInt(m[8], 10) / 60000; + if (m[9] == 'W') { + x = -x; + } + flatCoordinates.push(x, y); + if (altitudeMode != ol.format.IGCZ.NONE) { + var z; + if (altitudeMode == ol.format.IGCZ.GPS) { + z = parseInt(m[11], 10); + } else if (altitudeMode == ol.format.IGCZ.BAROMETRIC) { + z = parseInt(m[12], 10); + } else { + goog.asserts.fail(); + z = 0; + } + flatCoordinates.push(z); + } + var date = new Date(year, month, day, hour, minute, second, 0); + flatCoordinates.push(date.getTime() / 1000); + } + } else if (line.charAt(0) == 'H') { + m = ol.format.IGC.H_RECORD_RE_.exec(line); + if (m) { + properties[m[1]] = goog.string.trim(m[2]); + m = ol.format.IGC.HFDTE_RECORD_RE_.exec(line); + if (m) { + year = 2000 + parseInt(m[1], 10); + month = parseInt(m[2], 10); + day = parseInt(m[3], 10); + } + } + } + } + var lineString = new ol.geom.LineString(null); + var layout = altitudeMode == ol.format.IGCZ.NONE ? + ol.geom.GeometryLayout.XYM : ol.geom.GeometryLayout.XYZM; + lineString.setFlatCoordinates(layout, flatCoordinates); + var feature = new ol.Feature(lineString); + feature.setValues(properties); + return feature; +}; + + +/** + * @inheritDoc + */ +ol.format.IGC.prototype.readFeaturesFromText = function(text) { + var feature = this.readFeatureFromText(text); + if (!goog.isNull(feature)) { + return [feature]; + } else { + return []; + } +}; + + +/** + * @inheritDoc + */ +ol.format.IGC.prototype.readProjectionFromText = function(text) { + return ol.proj.get('EPSG:4326'); +}; From 856a16b43e3154682423bd6f4a55e85c5aefc8bc Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 16 Dec 2013 20:26:45 +0100 Subject: [PATCH 606/919] Add ol.source.IGC --- src/objectliterals.jsdoc | 8 ++++++++ src/ol/source/igcsource.exports | 1 + src/ol/source/igcsource.js | 26 ++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 src/ol/source/igcsource.exports create mode 100644 src/ol/source/igcsource.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 5c66ab9706..df4e7c4e28 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -500,6 +500,14 @@ * @property {string|undefined} url URL. */ +/** + * @typedef {Object} olx.source.IGCOptions + * @property {ol.format.IGCZ|undefined} altitudeMode Altitude mode. + * Possible values are `barometric`, `gps`, and `none`. Default is `none`. + * @property {string|undefined} text Text. + * @property {string|undefined} url URL. + */ + /** * @typedef {Object} olx.source.MapGuideOptions * @property {string|undefined} url The mapagent url. diff --git a/src/ol/source/igcsource.exports b/src/ol/source/igcsource.exports new file mode 100644 index 0000000000..6d4292225e --- /dev/null +++ b/src/ol/source/igcsource.exports @@ -0,0 +1 @@ +@exportSymbol ol.source.IGC diff --git a/src/ol/source/igcsource.js b/src/ol/source/igcsource.js new file mode 100644 index 0000000000..2ca98e470e --- /dev/null +++ b/src/ol/source/igcsource.js @@ -0,0 +1,26 @@ +goog.provide('ol.source.IGC'); + +goog.require('ol.format.IGC'); +goog.require('ol.source.VectorFile'); + + + +/** + * @constructor + * @extends {ol.source.VectorFile} + * @param {olx.source.IGCOptions=} opt_options Options. + */ +ol.source.IGC = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + goog.base(this, { + format: new ol.format.IGC({ + altitudeMode: options.altitudeMode + }), + text: options.text, + url: options.url + }); + +}; +goog.inherits(ol.source.IGC, ol.source.VectorFile); From d80c327515da3da8e8266a43a6264a0942dff236 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 16 Dec 2013 20:26:58 +0100 Subject: [PATCH 607/919] Add IGC example --- examples/data/igc/Clement-Latour.igc | 15585 +++++++++++++++++++++ examples/data/igc/Damien-de-Baenst.igc | 3319 +++++ examples/data/igc/Sylvain-Dhonneur.igc | 16374 +++++++++++++++++++++++ examples/data/igc/Tom-Payne.igc | 9879 ++++++++++++++ examples/data/igc/Ulrich-Prinz.igc | 4611 +++++++ examples/igc.html | 56 + examples/igc.js | 149 + 7 files changed, 49973 insertions(+) create mode 100644 examples/data/igc/Clement-Latour.igc create mode 100644 examples/data/igc/Damien-de-Baenst.igc create mode 100644 examples/data/igc/Sylvain-Dhonneur.igc create mode 100644 examples/data/igc/Tom-Payne.igc create mode 100644 examples/data/igc/Ulrich-Prinz.igc create mode 100644 examples/igc.html create mode 100644 examples/igc.js diff --git a/examples/data/igc/Clement-Latour.igc b/examples/data/igc/Clement-Latour.igc new file mode 100644 index 0000000000..6789e28ba6 --- /dev/null +++ b/examples/data/igc/Clement-Latour.igc @@ -0,0 +1,15585 @@ +AXGD123 6030 SN07172 SW3.32 +HFDTE190411 +HOPLTPILOT: Clement Latour +HOGTYGLIDERTYPE: R10.2 +HOGIDGLIDERID: None +HODTM100GPSDATUM: WGS-84 +HOCIDCOMPETITIONID: +HOCCLCOMPETITION CLASS: None +HOSITSite: Marlens +B0853524556201N00651065EA0200502041 +B0853544556201N00651065EA0200502041 +B0853564556201N00651065EA0200402041 +B0853584556201N00651065EA0200402041 +B0854004556201N00651065EA0200402041 +B0854024556201N00651065EA0200402041 +B0854044556201N00651065EA0200402041 +B0854064556201N00651065EA0200402041 +B0854084556201N00651065EA0200402041 +B0854104556201N00651065EA0200402041 +B0854124556201N00651065EA0200402041 +B0854144556201N00651065EA0200402041 +B0854164556201N00651064EA0200402041 +B0854184556201N00651064EA0200402041 +B0854204556201N00651065EA0200402041 +B0854224556201N00651065EA0200502041 +B0854244556200N00651064EA0200402041 +B0854264556198N00651062EA0200302041 +B0854284556194N00651060EA0199902039 +B0854304556188N00651058EA0199802038 +B0854324556182N00651058EA0199602036 +B0854344556174N00651057EA0199202034 +B0854364556165N00651059EA0199302032 +B0854384556157N00651061EA0199302031 +B0854404556147N00651061EA0199502031 +B0854424556138N00651060EA0200102031 +B0854444556136N00651051EA0200702035 +B0854464556139N00651038EA0201102040 +B0854484556143N00651023EA0201602046 +B0854504556142N00651008EA0202402053 +B0854524556141N00650995EA0203102061 +B0854544556141N00650984EA0203902070 +B0854564556138N00650976EA0204502077 +B0854584556132N00650971EA0205202085 +B0855004556130N00650958EA0205502092 +B0855024556141N00650943EA0205902097 +B0855044556156N00650946EA0206502102 +B0855064556161N00650961EA0206802108 +B0855084556150N00650973EA0207402114 +B0855104556141N00650966EA0208102121 +B0855124556140N00650949EA0208602126 +B0855144556149N00650938EA0209202132 +B0855164556163N00650942EA0209502137 +B0855184556172N00650956EA0210102142 +B0855204556167N00650969EA0210402146 +B0855224556155N00650968EA0211202151 +B0855244556147N00650959EA0212102158 +B0855264556143N00650948EA0212602164 +B0855284556141N00650932EA0212902168 +B0855304556149N00650914EA0213402172 +B0855324556164N00650915EA0213802177 +B0855344556174N00650928EA0214502182 +B0855364556175N00650943EA0215002188 +B0855384556167N00650953EA0215202192 +B0855404556154N00650950EA0215802196 +B0855424556148N00650933EA0216402200 +B0855444556154N00650914EA0216502205 +B0855464556171N00650911EA0216802208 +B0855484556184N00650926EA0217502214 +B0855504556186N00650944EA0218202219 +B0855524556178N00650956EA0218802226 +B0855544556166N00650955EA0219102232 +B0855564556156N00650941EA0219502236 +B0855584556157N00650918EA0219902239 +B0856004556171N00650905EA0220702245 +B0856024556183N00650912EA0220902247 +B0856044556182N00650927EA0221202252 +B0856064556169N00650930EA0221802256 +B0856084556157N00650915EA0222402262 +B0856104556153N00650893EA0223102267 +B0856124556159N00650876EA0223402273 +B0856144556173N00650872EA0223502276 +B0856164556185N00650881EA0223802279 +B0856184556188N00650896EA0224202282 +B0856204556181N00650907EA0224702286 +B0856224556171N00650911EA0225302291 +B0856244556162N00650905EA0225802297 +B0856264556157N00650886EA0226102301 +B0856284556164N00650867EA0226302305 +B0856304556179N00650864EA0226902309 +B0856324556189N00650870EA0227502315 +B0856344556195N00650878EA0228002321 +B0856364556197N00650888EA0228202323 +B0856384556190N00650899EA0228302326 +B0856404556177N00650899EA0228402327 +B0856424556166N00650883EA0228702330 +B0856444556164N00650863EA0229202333 +B0856464556170N00650844EA0229802337 +B0856484556181N00650835EA0230102341 +B0856504556194N00650834EA0230502344 +B0856524556203N00650845EA0230402346 +B0856544556192N00650853EA0230602347 +B0856564556180N00650843EA0231202351 +B0856584556177N00650825EA0231802356 +B0857004556176N00650809EA0232202361 +B0857024556177N00650793EA0232102364 +B0857044556186N00650779EA0231902365 +B0857064556200N00650781EA0232002365 +B0857084556208N00650792EA0232502367 +B0857104556213N00650800EA0232802370 +B0857124556218N00650809EA0232902371 +B0857144556213N00650822EA0233402373 +B0857164556205N00650832EA0234202377 +B0857184556198N00650840EA0234802383 +B0857204556192N00650844EA0235002386 +B0857224556182N00650835EA0235102389 +B0857244556180N00650815EA0235302392 +B0857264556190N00650803EA0235802395 +B0857284556202N00650801EA0236602402 +B0857304556209N00650806EA0237002406 +B0857324556218N00650815EA0237302410 +B0857344556221N00650827EA0237802415 +B0857364556212N00650836EA0238202419 +B0857384556199N00650833EA0238702425 +B0857404556190N00650819EA0238902429 +B0857424556191N00650800EA0239102432 +B0857444556201N00650789EA0239202434 +B0857464556215N00650789EA0239502437 +B0857484556223N00650796EA0239902440 +B0857504556226N00650807EA0240202443 +B0857524556225N00650821EA0240502446 +B0857544556219N00650833EA0241002449 +B0857564556208N00650833EA0241202453 +B0857584556198N00650825EA0241402455 +B0858004556189N00650814EA0241802458 +B0858024556180N00650805EA0242302462 +B0858044556171N00650795EA0242702466 +B0858064556166N00650782EA0243102470 +B0858084556162N00650766EA0243402474 +B0858104556154N00650757EA0243502477 +B0858124556141N00650753EA0243602478 +B0858144556131N00650748EA0243802481 +B0858164556121N00650740EA0243902482 +B0858184556108N00650731EA0244202483 +B0858204556096N00650722EA0244702486 +B0858224556088N00650710EA0244702488 +B0858244556080N00650696EA0244102488 +B0858264556070N00650684EA0243902485 +B0858284556060N00650677EA0243402482 +B0858304556050N00650671EA0242602477 +B0858324556039N00650660EA0241802470 +B0858344556026N00650647EA0241702466 +B0858364556016N00650633EA0242002463 +B0858384556006N00650620EA0242002464 +B0858404555997N00650609EA0241602461 +B0858424555988N00650598EA0241202456 +B0858444555977N00650587EA0240802453 +B0858464555965N00650578EA0240502449 +B0858484555954N00650568EA0240102445 +B0858504555941N00650556EA0239902442 +B0858524555929N00650544EA0240202440 +B0858544555919N00650532EA0240502440 +B0858564555910N00650520EA0240502441 +B0858584555900N00650508EA0240402440 +B0859004555888N00650495EA0240402440 +B0859024555876N00650482EA0240302439 +B0859044555864N00650468EA0240202439 +B0859064555852N00650455EA0240202439 +B0859084555840N00650442EA0240202439 +B0859104555829N00650429EA0240002438 +B0859124555817N00650417EA0239802436 +B0859144555805N00650402EA0239802435 +B0859164555794N00650388EA0240002434 +B0859184555785N00650375EA0239902434 +B0859204555775N00650365EA0239402432 +B0859224555762N00650354EA0239202430 +B0859244555751N00650339EA0239202430 +B0859264555742N00650324EA0239102429 +B0859284555733N00650308EA0238702427 +B0859304555723N00650293EA0238602425 +B0859324555714N00650279EA0238302423 +B0859344555706N00650265EA0238002421 +B0859364555701N00650258EA0237902419 +B0859384555685N00650234EA0237802417 +B0859404555674N00650218EA0237602415 +B0859424555662N00650205EA0237302414 +B0859444555649N00650193EA0237102412 +B0859464555636N00650180EA0236902410 +B0859484555624N00650166EA0237002409 +B0859504555612N00650151EA0237602409 +B0859524555604N00650135EA0238302412 +B0859544555595N00650121EA0238702417 +B0859564555586N00650110EA0238802419 +B0859584555575N00650104EA0239002422 +B0900004555563N00650095EA0239502426 +B0900024555551N00650082EA0240102431 +B0900044555540N00650074EA0240402435 +B0900064555529N00650080EA0240302439 +B0900084555526N00650091EA0240202442 +B0900104555537N00650095EA0240102444 +B0900124555549N00650076EA0240102445 +B0900144555551N00650049EA0240802448 +B0900164555548N00650028EA0241402455 +B0900184555546N00650010EA0241602457 +B0900204555541N00649989EA0242102460 +B0900224555530N00649978EA0242402465 +B0900244555520N00649983EA0242702468 +B0900264555518N00649996EA0243402473 +B0900284555528N00650000EA0243902479 +B0900304555541N00649985EA0244602485 +B0900324555545N00649961EA0245202491 +B0900344555534N00649946EA0245502496 +B0900364555522N00649952EA0246202500 +B0900384555521N00649967EA0247202508 +B0900404555531N00649969EA0247902517 +B0900424555542N00649959EA0248602524 +B0900444555548N00649938EA0249402532 +B0900464555541N00649918EA0249902540 +B0900484555528N00649915EA0250602547 +B0900504555522N00649928EA0251402554 +B0900524555525N00649937EA0252302564 +B0900544555535N00649936EA0253002570 +B0900564555546N00649928EA0253702578 +B0900584555552N00649908EA0254202584 +B0901004555548N00649885EA0254802590 +B0901024555536N00649876EA0255502596 +B0901044555527N00649886EA0256202602 +B0901064555526N00649900EA0257002611 +B0901084555534N00649903EA0257602617 +B0901104555545N00649894EA0258302623 +B0901124555550N00649874EA0258902630 +B0901144555543N00649855EA0259502636 +B0901164555530N00649850EA0260302642 +B0901184555522N00649861EA0261002649 +B0901204555522N00649873EA0261802657 +B0901224555529N00649879EA0262402663 +B0901244555540N00649872EA0263102670 +B0901264555545N00649853EA0263702677 +B0901284555539N00649836EA0264402684 +B0901304555525N00649830EA0265002691 +B0901324555514N00649837EA0265702698 +B0901344555511N00649847EA0266202704 +B0901364555519N00649853EA0266502708 +B0901384555531N00649846EA0267002712 +B0901404555538N00649827EA0267602717 +B0901424555534N00649806EA0268202722 +B0901444555522N00649795EA0268902729 +B0901464555508N00649797EA0269502735 +B0901484555503N00649807EA0269802740 +B0901504555510N00649814EA0270102745 +B0901524555522N00649807EA0270602749 +B0901544555527N00649788EA0271202754 +B0901564555524N00649768EA0271902761 +B0901584555517N00649752EA0272402767 +B0902004555504N00649748EA0272702772 +B0902024555492N00649755EA0273202777 +B0902044555490N00649767EA0273602782 +B0902064555498N00649774EA0274002786 +B0902084555508N00649761EA0274402789 +B0902104555510N00649738EA0275002794 +B0902124555502N00649717EA0275902800 +B0902144555494N00649700EA0276402806 +B0902164555485N00649681EA0276802810 +B0902184555475N00649659EA0277402815 +B0902204555466N00649638EA0278102822 +B0902224555458N00649618EA0278602829 +B0902244555451N00649600EA0278702833 +B0902264555442N00649582EA0278502836 +B0902284555434N00649563EA0278402836 +B0902304555427N00649545EA0278102834 +B0902324555420N00649526EA0277902830 +B0902344555412N00649505EA0278002829 +B0902364555405N00649488EA0278302831 +B0902384555399N00649472EA0278202829 +B0902404555393N00649457EA0278002827 +B0902424555385N00649441EA0277502824 +B0902444555378N00649425EA0277102820 +B0902464555370N00649408EA0276802816 +B0902484555362N00649391EA0276502812 +B0902504555356N00649374EA0276202808 +B0902524555348N00649357EA0275702804 +B0902544555340N00649341EA0275102799 +B0902564555332N00649322EA0274702794 +B0902584555326N00649302EA0274402791 +B0903004555319N00649283EA0274002787 +B0903024555312N00649264EA0273502781 +B0903044555307N00649243EA0273202778 +B0903064555303N00649224EA0273002775 +B0903084555298N00649207EA0272602771 +B0903104555294N00649187EA0271802766 +B0903124555291N00649165EA0271302760 +B0903144555287N00649145EA0270802755 +B0903164555283N00649124EA0270102749 +B0903184555281N00649104EA0269602743 +B0903204555279N00649085EA0269002737 +B0903224555276N00649070EA0268402730 +B0903244555273N00649054EA0267702723 +B0903264555269N00649034EA0267202716 +B0903284555267N00649015EA0267202711 +B0903304555266N00648998EA0267002709 +B0903324555263N00648982EA0266502704 +B0903344555258N00648964EA0266202700 +B0903364555253N00648946EA0266202698 +B0903384555247N00648929EA0266002697 +B0903404555242N00648911EA0266102697 +B0903424555237N00648893EA0266902697 +B0903444555231N00648875EA0267902700 +B0903464555227N00648857EA0268502706 +B0903484555225N00648837EA0268902711 +B0903504555221N00648816EA0269802717 +B0903524555218N00648795EA0270802725 +B0903544555218N00648779EA0271302732 +B0903564555215N00648761EA0271602737 +B0903584555211N00648742EA0272302745 +B0904004555209N00648727EA0273202754 +B0904024555207N00648712EA0273802763 +B0904044555204N00648699EA0274202770 +B0904064555199N00648685EA0274502776 +B0904084555193N00648669EA0274902781 +B0904104555186N00648654EA0275402786 +B0904124555179N00648642EA0275602791 +B0904144555172N00648630EA0275902794 +B0904164555166N00648615EA0276102797 +B0904184555161N00648600EA0276202799 +B0904204555155N00648586EA0276102799 +B0904224555148N00648571EA0276102800 +B0904244555141N00648557EA0275902799 +B0904264555135N00648543EA0275802798 +B0904284555130N00648529EA0275602797 +B0904304555125N00648515EA0275302795 +B0904324555118N00648502EA0275302794 +B0904344555111N00648489EA0275402794 +B0904364555104N00648477EA0275202793 +B0904384555096N00648462EA0275102792 +B0904404555090N00648445EA0275102792 +B0904424555084N00648428EA0274902790 +B0904444555078N00648411EA0274602788 +B0904464555071N00648395EA0274202785 +B0904484555064N00648380EA0274002782 +B0904504555057N00648363EA0273702779 +B0904524555051N00648344EA0274002777 +B0904544555046N00648327EA0274302777 +B0904564555040N00648314EA0274302779 +B0904584555035N00648301EA0274302779 +B0905004555029N00648287EA0274202779 +B0905024555021N00648272EA0274002777 +B0905044555013N00648257EA0273502775 +B0905064555004N00648243EA0273102771 +B0905084554995N00648227EA0272302765 +B0905104554984N00648211EA0271902760 +B0905124554974N00648196EA0271502756 +B0905144554963N00648181EA0271002752 +B0905164554954N00648165EA0270302746 +B0905184554943N00648147EA0269402739 +B0905204554931N00648130EA0268602733 +B0905224554919N00648114EA0268002726 +B0905244554908N00648096EA0267302718 +B0905264554896N00648078EA0266602711 +B0905284554885N00648061EA0266002705 +B0905304554873N00648043EA0265402698 +B0905324554861N00648026EA0264902693 +B0905344554849N00648009EA0264302686 +B0905364554836N00647992EA0263502680 +B0905384554823N00647975EA0263002674 +B0905404554808N00647962EA0262402669 +B0905424554794N00647950EA0262202665 +B0905444554780N00647938EA0262002662 +B0905464554766N00647928EA0261902659 +B0905484554751N00647918EA0261602656 +B0905504554738N00647907EA0261602654 +B0905524554725N00647897EA0261202652 +B0905544554713N00647887EA0260702647 +B0905564554700N00647874EA0260302643 +B0905584554688N00647857EA0260002640 +B0906004554678N00647841EA0259702637 +B0906024554668N00647826EA0259102633 +B0906044554657N00647808EA0258602628 +B0906064554646N00647788EA0258202623 +B0906084554637N00647767EA0257802619 +B0906104554628N00647746EA0257302615 +B0906124554617N00647727EA0257002611 +B0906144554607N00647708EA0256702608 +B0906164554598N00647689EA0256302604 +B0906184554587N00647669EA0256102602 +B0906204554577N00647650EA0256002600 +B0906224554567N00647631EA0255702597 +B0906244554557N00647611EA0255602595 +B0906264554547N00647590EA0255602594 +B0906284554538N00647572EA0255502593 +B0906304554528N00647552EA0255202591 +B0906324554520N00647532EA0254902588 +B0906344554512N00647512EA0254502585 +B0906364554503N00647494EA0254102581 +B0906384554495N00647476EA0253902578 +B0906404554487N00647461EA0253702576 +B0906424554479N00647444EA0253302573 +B0906444554470N00647426EA0253102570 +B0906464554463N00647410EA0253002569 +B0906484554455N00647395EA0252702566 +B0906504554447N00647379EA0252302562 +B0906524554439N00647359EA0251902559 +B0906544554434N00647339EA0251702557 +B0906564554430N00647320EA0251702555 +B0906584554424N00647302EA0251502554 +B0907004554419N00647284EA0251302552 +B0907024554416N00647264EA0250902549 +B0907044554415N00647246EA0250702547 +B0907064554412N00647227EA0250402544 +B0907084554407N00647208EA0250302542 +B0907104554402N00647190EA0250102541 +B0907124554396N00647175EA0249802539 +B0907144554389N00647159EA0249602535 +B0907164554382N00647143EA0249402533 +B0907184554376N00647129EA0249002531 +B0907204554370N00647115EA0248402528 +B0907224554362N00647100EA0248102524 +B0907244554353N00647085EA0247902521 +B0907264554346N00647071EA0247602518 +B0907284554338N00647056EA0247302515 +B0907304554329N00647041EA0247002512 +B0907324554321N00647026EA0246702509 +B0907344554313N00647011EA0246402505 +B0907364554304N00646995EA0246002502 +B0907384554295N00646981EA0245702498 +B0907404554286N00646966EA0245502495 +B0907424554277N00646950EA0245202493 +B0907444554268N00646934EA0245102491 +B0907464554258N00646919EA0245002490 +B0907484554248N00646904EA0244902489 +B0907504554239N00646888EA0244702488 +B0907524554229N00646873EA0244602487 +B0907544554219N00646859EA0244602486 +B0907564554208N00646844EA0244502485 +B0907584554197N00646829EA0244502485 +B0908004554187N00646815EA0244402485 +B0908024554177N00646799EA0244402484 +B0908044554167N00646782EA0244402484 +B0908064554158N00646764EA0244602485 +B0908084554150N00646747EA0244602486 +B0908104554142N00646732EA0244502486 +B0908124554136N00646716EA0244302485 +B0908144554130N00646700EA0243902482 +B0908164554122N00646682EA0243702479 +B0908184554114N00646665EA0243702478 +B0908204554106N00646649EA0243602477 +B0908224554099N00646632EA0243302474 +B0908244554091N00646614EA0243102472 +B0908264554084N00646597EA0243002471 +B0908284554078N00646579EA0242602468 +B0908304554070N00646559EA0242202465 +B0908324554062N00646541EA0242202464 +B0908344554054N00646526EA0242002462 +B0908364554045N00646510EA0241602458 +B0908384554035N00646494EA0241302455 +B0908404554025N00646479EA0241202453 +B0908424554015N00646465EA0240902451 +B0908444554005N00646450EA0240602448 +B0908464553995N00646435EA0240402445 +B0908484553985N00646421EA0240202443 +B0908504553976N00646407EA0239802440 +B0908524553965N00646392EA0239302436 +B0908544553954N00646377EA0239002432 +B0908564553945N00646363EA0238902430 +B0908584553935N00646347EA0238602428 +B0909004553925N00646331EA0238402426 +B0909024553917N00646315EA0238302424 +B0909044553908N00646300EA0238202422 +B0909064553899N00646285EA0237802419 +B0909084553891N00646268EA0237502417 +B0909104553882N00646252EA0237302415 +B0909124553873N00646236EA0237002412 +B0909144553865N00646219EA0236702409 +B0909164553855N00646203EA0236502406 +B0909184553846N00646188EA0236202404 +B0909204553838N00646171EA0235902401 +B0909224553830N00646153EA0235602397 +B0909244553822N00646135EA0235402395 +B0909264553814N00646120EA0235202393 +B0909284553805N00646105EA0234802390 +B0909304553796N00646089EA0234602387 +B0909324553787N00646073EA0234402386 +B0909344553779N00646058EA0234102383 +B0909364553771N00646043EA0233802380 +B0909384553762N00646027EA0233702378 +B0909404553754N00646013EA0233602377 +B0909424553746N00645999EA0233102374 +B0909444553736N00645984EA0232802370 +B0909464553728N00645968EA0232802369 +B0909484553720N00645953EA0232602367 +B0909504553712N00645937EA0232302364 +B0909524553704N00645919EA0232202363 +B0909544553697N00645902EA0232202362 +B0909564553690N00645886EA0231902360 +B0909584553682N00645870EA0231602357 +B0910004553674N00645853EA0231402355 +B0910024553665N00645839EA0231202353 +B0910044553655N00645825EA0230902350 +B0910064553646N00645810EA0230702347 +B0910084553637N00645796EA0230402345 +B0910104553627N00645781EA0230002342 +B0910124553618N00645766EA0229702339 +B0910144553609N00645751EA0229502336 +B0910164553601N00645735EA0229302334 +B0910184553594N00645718EA0229102332 +B0910204553587N00645702EA0228802329 +B0910224553579N00645686EA0228402327 +B0910244553571N00645671EA0228202324 +B0910264553563N00645656EA0228102322 +B0910284553554N00645642EA0227902320 +B0910304553545N00645627EA0227702318 +B0910324553537N00645612EA0227602316 +B0910344553528N00645598EA0227302314 +B0910364553518N00645584EA0227202312 +B0910384553509N00645570EA0226902310 +B0910404553500N00645556EA0226702308 +B0910424553490N00645542EA0226402305 +B0910444553481N00645527EA0226002302 +B0910464553472N00645512EA0225802299 +B0910484553461N00645498EA0225602297 +B0910504553452N00645485EA0225402295 +B0910524553442N00645471EA0225202293 +B0910544553431N00645458EA0225002291 +B0910564553421N00645445EA0224902289 +B0910584553410N00645432EA0224702288 +B0911004553400N00645419EA0224502286 +B0911024553390N00645406EA0224302284 +B0911044553381N00645392EA0224102282 +B0911064553371N00645378EA0223902280 +B0911084553361N00645364EA0223602278 +B0911104553351N00645350EA0223302275 +B0911124553341N00645335EA0223102272 +B0911144553332N00645320EA0222902270 +B0911164553324N00645306EA0222602268 +B0911184553317N00645291EA0222202264 +B0911204553308N00645276EA0221902261 +B0911224553300N00645260EA0221702258 +B0911244553293N00645246EA0221202254 +B0911264553285N00645231EA0220902250 +B0911284553279N00645215EA0221202248 +B0911304553274N00645203EA0221402248 +B0911324553268N00645193EA0221402249 +B0911344553261N00645183EA0221402250 +B0911364553256N00645171EA0221302250 +B0911384553249N00645157EA0221402250 +B0911404553242N00645142EA0221702252 +B0911424553237N00645126EA0222202256 +B0911444553233N00645110EA0222602260 +B0911464553227N00645094EA0223002265 +B0911484553216N00645082EA0223202268 +B0911504553203N00645085EA0223502272 +B0911524553197N00645101EA0223802275 +B0911544553206N00645112EA0224202280 +B0911564553216N00645107EA0224502284 +B0911584553220N00645090EA0224802287 +B0912004553214N00645071EA0225102290 +B0912024553200N00645061EA0225502293 +B0912044553186N00645065EA0225702296 +B0912064553179N00645079EA0226002299 +B0912084553182N00645094EA0226302302 +B0912104553192N00645100EA0226402304 +B0912124553203N00645091EA0226602306 +B0912144553207N00645075EA0226802308 +B0912164553203N00645058EA0227002310 +B0912184553192N00645047EA0227102312 +B0912204553178N00645047EA0227302313 +B0912224553168N00645057EA0227602315 +B0912244553168N00645074EA0227802317 +B0912264553175N00645087EA0228002320 +B0912284553185N00645090EA0228202322 +B0912304553194N00645085EA0228402324 +B0912324553199N00645070EA0228802327 +B0912344553197N00645051EA0229102330 +B0912364553185N00645040EA0229102332 +B0912384553172N00645046EA0229102333 +B0912404553169N00645062EA0229202334 +B0912424553177N00645072EA0229402336 +B0912444553187N00645072EA0229802338 +B0912464553196N00645066EA0230302343 +B0912484553204N00645058EA0230602347 +B0912504553210N00645052EA0230802350 +B0912524553214N00645035EA0230802351 +B0912544553208N00645014EA0231202352 +B0912564553197N00645005EA0231602355 +B0912584553186N00645012EA0231802358 +B0913004553183N00645025EA0231902360 +B0913024553188N00645037EA0232002361 +B0913044553196N00645043EA0232402365 +B0913064553206N00645041EA0232702367 +B0913084553216N00645029EA0233102371 +B0913104553219N00645010EA0233602375 +B0913124553214N00644990EA0234102380 +B0913144553203N00644979EA0234402384 +B0913164553192N00644985EA0234702388 +B0913184553191N00645000EA0235102392 +B0913204553199N00645008EA0235502396 +B0913224553210N00645004EA0235802399 +B0913244553217N00644987EA0236202402 +B0913264553212N00644965EA0236702407 +B0913284553199N00644956EA0237102411 +B0913304553189N00644962EA0237302415 +B0913324553187N00644977EA0237602418 +B0913344553196N00644983EA0237902420 +B0913364553208N00644975EA0238302424 +B0913384553213N00644958EA0238702429 +B0913404553212N00644939EA0239302433 +B0913424553202N00644926EA0239802438 +B0913444553189N00644925EA0240202443 +B0913464553182N00644934EA0240302446 +B0913484553183N00644948EA0240502449 +B0913504553193N00644953EA0240802452 +B0913524553203N00644944EA0241002454 +B0913544553210N00644927EA0241302456 +B0913564553209N00644907EA0241802459 +B0913584553200N00644895EA0242302463 +B0914004553189N00644892EA0243002468 +B0914024553180N00644894EA0243502475 +B0914044553175N00644904EA0243702479 +B0914064553179N00644916EA0243902483 +B0914084553190N00644916EA0243902485 +B0914104553200N00644902EA0244002486 +B0914124553203N00644883EA0244602489 +B0914144553201N00644863EA0245002494 +B0914164553192N00644850EA0245002496 +B0914184553180N00644851EA0245102498 +B0914204553172N00644860EA0245202499 +B0914224553173N00644873EA0245702501 +B0914244553182N00644879EA0246202504 +B0914264553194N00644870EA0246602508 +B0914284553199N00644852EA0246902511 +B0914304553195N00644834EA0246902513 +B0914324553184N00644828EA0246602513 +B0914344553173N00644837EA0246602513 +B0914364553169N00644850EA0247002515 +B0914384553172N00644860EA0247302518 +B0914404553178N00644866EA0247502520 +B0914424553186N00644869EA0247702522 +B0914444553196N00644866EA0247902523 +B0914464553207N00644858EA0248402526 +B0914484553216N00644850EA0249002531 +B0914504553223N00644837EA0249302535 +B0914524553229N00644818EA0249502538 +B0914544553225N00644793EA0249702541 +B0914564553213N00644785EA0249602542 +B0914584553206N00644797EA0249802542 +B0915004553206N00644811EA0250302546 +B0915024553207N00644820EA0250802551 +B0915044553210N00644826EA0251102555 +B0915064553221N00644825EA0251002557 +B0915084553232N00644814EA0251002557 +B0915104553235N00644795EA0251002556 +B0915124553231N00644775EA0251402557 +B0915144553223N00644760EA0251802560 +B0915164553213N00644751EA0252002562 +B0915184553203N00644754EA0251902563 +B0915204553197N00644765EA0251902563 +B0915224553197N00644778EA0252102565 +B0915244553205N00644785EA0252302566 +B0915264553218N00644781EA0252402568 +B0915284553224N00644758EA0252402567 +B0915304553220N00644736EA0252702568 +B0915324553208N00644729EA0252902570 +B0915344553198N00644729EA0253002572 +B0915364553191N00644734EA0252902573 +B0915384553187N00644745EA0252802572 +B0915404553193N00644757EA0252802572 +B0915424553205N00644759EA0252902572 +B0915444553216N00644746EA0252902572 +B0915464553217N00644722EA0252902572 +B0915484553210N00644707EA0253202574 +B0915504553199N00644702EA0253202575 +B0915524553189N00644699EA0253102574 +B0915544553178N00644698EA0252602572 +B0915564553164N00644699EA0252602570 +B0915584553151N00644699EA0252702571 +B0916004553140N00644701EA0252602570 +B0916024553129N00644703EA0252402568 +B0916044553117N00644703EA0252002565 +B0916064553106N00644705EA0251602562 +B0916084553093N00644706EA0251302558 +B0916104553081N00644705EA0251202556 +B0916124553070N00644702EA0250802553 +B0916144553058N00644699EA0250502550 +B0916164553046N00644696EA0250302547 +B0916184553034N00644694EA0250202545 +B0916204553022N00644693EA0250002543 +B0916224553009N00644689EA0250002542 +B0916244552997N00644682EA0250302542 +B0916264552986N00644677EA0250802544 +B0916284552976N00644672EA0251302549 +B0916304552967N00644665EA0251202550 +B0916324552955N00644659EA0250902551 +B0916344552942N00644655EA0251002551 +B0916364552930N00644650EA0251502554 +B0916384552918N00644646EA0251802557 +B0916404552905N00644641EA0252102560 +B0916424552892N00644637EA0252202563 +B0916444552880N00644635EA0252302564 +B0916464552866N00644633EA0252502566 +B0916484552853N00644631EA0252502567 +B0916504552841N00644629EA0252602568 +B0916524552829N00644626EA0252702569 +B0916544552817N00644623EA0252602569 +B0916564552804N00644620EA0252802570 +B0916584552790N00644619EA0253202572 +B0917004552778N00644618EA0253502576 +B0917024552767N00644621EA0253602578 +B0917044552756N00644629EA0253602578 +B0917064552748N00644638EA0253502578 +B0917084552736N00644641EA0253302578 +B0917104552722N00644638EA0252702576 +B0917124552708N00644629EA0252002572 +B0917144552695N00644619EA0251402565 +B0917164552681N00644607EA0251002560 +B0917184552670N00644595EA0250702557 +B0917204552660N00644583EA0250302552 +B0917224552649N00644570EA0249602546 +B0917244552638N00644555EA0249302541 +B0917264552627N00644542EA0248902537 +B0917284552617N00644529EA0248502532 +B0917304552604N00644515EA0248202527 +B0917324552591N00644502EA0248302524 +B0917344552579N00644491EA0248602523 +B0917364552569N00644478EA0249002524 +B0917384552559N00644464EA0249502528 +B0917404552549N00644449EA0250102534 +B0917424552541N00644434EA0250602541 +B0917444552534N00644418EA0251102547 +B0917464552525N00644405EA0251702552 +B0917484552516N00644394EA0252202558 +B0917504552507N00644386EA0252202562 +B0917524552494N00644387EA0251802565 +B0917544552487N00644399EA0251802566 +B0917564552496N00644407EA0252202567 +B0917584552508N00644397EA0252602570 +B0918004552514N00644383EA0253102575 +B0918024552516N00644367EA0253402578 +B0918044552516N00644350EA0253702581 +B0918064552512N00644333EA0254002584 +B0918084552506N00644317EA0254402587 +B0918104552500N00644302EA0254702590 +B0918124552493N00644287EA0254702592 +B0918144552483N00644274EA0254602592 +B0918164552471N00644260EA0254702592 +B0918184552458N00644247EA0254902593 +B0918204552445N00644232EA0255102595 +B0918224552433N00644218EA0255202596 +B0918244552419N00644205EA0255002596 +B0918264552405N00644190EA0255002595 +B0918284552393N00644174EA0255002595 +B0918304552381N00644159EA0254802593 +B0918324552367N00644145EA0254602592 +B0918344552352N00644131EA0254302589 +B0918364552338N00644117EA0254102587 +B0918384552326N00644103EA0254102586 +B0918404552314N00644090EA0253802585 +B0918424552301N00644079EA0253302581 +B0918444552288N00644066EA0252802576 +B0918464552276N00644051EA0252202571 +B0918484552265N00644037EA0251602564 +B0918504552253N00644023EA0250902558 +B0918524552240N00644010EA0250402552 +B0918544552228N00643998EA0250002546 +B0918564552216N00643986EA0249502541 +B0918584552204N00643973EA0249002536 +B0919004552191N00643961EA0248702532 +B0919024552179N00643951EA0248302528 +B0919044552167N00643939EA0247602523 +B0919064552154N00643927EA0247002516 +B0919084552139N00643916EA0246602512 +B0919104552128N00643903EA0246202508 +B0919124552117N00643890EA0245502502 +B0919144552104N00643878EA0245002496 +B0919164552091N00643867EA0244802491 +B0919184552080N00643855EA0244302487 +B0919204552068N00643844EA0243702482 +B0919224552055N00643834EA0243002476 +B0919244552042N00643823EA0242602471 +B0919264552029N00643812EA0242302468 +B0919284552016N00643801EA0241902464 +B0919304552003N00643789EA0241602460 +B0919324551990N00643779EA0241402458 +B0919344551978N00643769EA0240902455 +B0919364551965N00643761EA0240602451 +B0919384551951N00643760EA0240602448 +B0919404551938N00643760EA0240402446 +B0919424551925N00643755EA0239802442 +B0919444551911N00643750EA0239602438 +B0919464551898N00643743EA0239402435 +B0919484551887N00643730EA0239202432 +B0919504551875N00643716EA0238902430 +B0919524551863N00643702EA0238902429 +B0919544551852N00643687EA0238902428 +B0919564551840N00643674EA0238602427 +B0919584551828N00643660EA0238402425 +B0920004551815N00643647EA0238402424 +B0920024551803N00643634EA0238502424 +B0920044551791N00643622EA0238502424 +B0920064551778N00643608EA0238402423 +B0920084551766N00643594EA0238402424 +B0920104551753N00643584EA0238502425 +B0920124551741N00643573EA0238402425 +B0920144551729N00643563EA0238202423 +B0920164551715N00643554EA0238002421 +B0920184551701N00643548EA0238002421 +B0920204551688N00643544EA0237902420 +B0920224551673N00643540EA0237502418 +B0920244551658N00643535EA0237302415 +B0920264551644N00643530EA0237202414 +B0920284551630N00643522EA0237102413 +B0920304551616N00643512EA0237002413 +B0920324551603N00643502EA0236902412 +B0920344551590N00643492EA0236902411 +B0920364551578N00643482EA0236702410 +B0920384551565N00643472EA0236502408 +B0920404551552N00643463EA0236402406 +B0920424551539N00643453EA0236202405 +B0920444551527N00643444EA0236002403 +B0920464551516N00643434EA0235602400 +B0920484551504N00643423EA0235402397 +B0920504551491N00643413EA0235302395 +B0920524551477N00643406EA0235102393 +B0920544551465N00643400EA0234902392 +B0920564551452N00643394EA0234702389 +B0920584551438N00643387EA0234602388 +B0921004551426N00643379EA0234502387 +B0921024551414N00643370EA0234302385 +B0921044551401N00643359EA0234002382 +B0921064551389N00643348EA0233902381 +B0921084551377N00643336EA0233802380 +B0921104551366N00643324EA0233602377 +B0921124551354N00643311EA0233302375 +B0921144551342N00643300EA0233102373 +B0921164551330N00643289EA0232702371 +B0921184551318N00643278EA0232402367 +B0921204551306N00643265EA0232202364 +B0921224551294N00643255EA0232202363 +B0921244551283N00643246EA0232002362 +B0921264551271N00643235EA0231802359 +B0921284551258N00643223EA0231602357 +B0921304551246N00643212EA0231402356 +B0921324551235N00643200EA0231202354 +B0921344551224N00643187EA0230902351 +B0921364551212N00643175EA0230602348 +B0921384551199N00643165EA0230402346 +B0921404551185N00643156EA0230202344 +B0921424551172N00643148EA0229902341 +B0921444551159N00643139EA0229702339 +B0921464551146N00643129EA0229502337 +B0921484551133N00643118EA0229202334 +B0921504551120N00643108EA0229002332 +B0921524551108N00643099EA0228802330 +B0921544551096N00643089EA0228502327 +B0921564551084N00643076EA0228202324 +B0921584551072N00643064EA0227802321 +B0922004551060N00643051EA0227602318 +B0922024551048N00643039EA0227402316 +B0922044551036N00643027EA0227402315 +B0922064551026N00643016EA0227202313 +B0922084551015N00643004EA0226802310 +B0922104551004N00642992EA0226602308 +B0922124550993N00642982EA0226302305 +B0922144550981N00642973EA0226002302 +B0922164550968N00642965EA0225702299 +B0922184550955N00642956EA0225402296 +B0922204550943N00642946EA0225102293 +B0922224550931N00642936EA0224802290 +B0922244550919N00642927EA0224602287 +B0922264550907N00642917EA0224302285 +B0922284550896N00642906EA0224002281 +B0922304550885N00642896EA0223702278 +B0922324550872N00642886EA0223302275 +B0922344550861N00642876EA0222902271 +B0922364550848N00642866EA0222502267 +B0922384550835N00642859EA0222102263 +B0922404550822N00642852EA0221902260 +B0922424550809N00642845EA0221502257 +B0922444550798N00642836EA0220902252 +B0922464550786N00642827EA0220302246 +B0922484550773N00642819EA0219602239 +B0922504550761N00642808EA0219302234 +B0922524550750N00642797EA0219102231 +B0922544550738N00642787EA0219002229 +B0922564550727N00642774EA0218902227 +B0922584550716N00642761EA0218802226 +B0923004550705N00642751EA0218602226 +B0923024550693N00642741EA0218502224 +B0923044550681N00642731EA0218502223 +B0923064550668N00642725EA0218502224 +B0923084550656N00642719EA0218502224 +B0923104550644N00642712EA0218402223 +B0923124550632N00642701EA0218202222 +B0923144550620N00642690EA0218202221 +B0923164550607N00642679EA0217802219 +B0923184550594N00642668EA0217702217 +B0923204550582N00642656EA0217502215 +B0923224550569N00642644EA0217402214 +B0923244550556N00642633EA0217202212 +B0923264550544N00642622EA0217002211 +B0923284550533N00642609EA0216902209 +B0923304550522N00642598EA0216802208 +B0923324550511N00642587EA0216602206 +B0923344550500N00642573EA0216402204 +B0923364550490N00642558EA0216102202 +B0923384550481N00642545EA0215702199 +B0923404550472N00642531EA0215002195 +B0923424550463N00642517EA0214302189 +B0923444550451N00642503EA0213702183 +B0923464550441N00642492EA0213102177 +B0923484550430N00642482EA0212402169 +B0923504550418N00642471EA0211702161 +B0923524550404N00642463EA0211002155 +B0923544550389N00642458EA0210502149 +B0923564550373N00642452EA0210102143 +B0923584550359N00642445EA0209902139 +B0924004550345N00642438EA0209402135 +B0924024550331N00642431EA0208802130 +B0924044550317N00642421EA0208302124 +B0924064550304N00642410EA0208002120 +B0924084550290N00642400EA0207702117 +B0924104550278N00642391EA0207402113 +B0924124550264N00642383EA0207102109 +B0924144550251N00642374EA0206902107 +B0924164550238N00642366EA0206402103 +B0924184550223N00642356EA0205802098 +B0924204550209N00642347EA0205602094 +B0924224550195N00642337EA0205502092 +B0924244550183N00642329EA0205102089 +B0924264550169N00642322EA0204602085 +B0924284550154N00642313EA0204602083 +B0924304550141N00642304EA0204502082 +B0924324550127N00642295EA0204202079 +B0924344550112N00642285EA0204002076 +B0924364550098N00642275EA0203802075 +B0924384550084N00642266EA0203702073 +B0924404550070N00642256EA0203702073 +B0924424550055N00642251EA0203802074 +B0924444550042N00642248EA0203602074 +B0924464550028N00642243EA0203502073 +B0924484550014N00642238EA0203702073 +B0924504550001N00642233EA0203702074 +B0924524549988N00642228EA0203602074 +B0924544549974N00642224EA0203502073 +B0924564549961N00642220EA0203502073 +B0924584549948N00642217EA0203502074 +B0925004549935N00642214EA0203502074 +B0925024549921N00642211EA0203602074 +B0925044549909N00642206EA0203702075 +B0925064549896N00642201EA0203702075 +B0925084549884N00642197EA0203502075 +B0925104549872N00642194EA0203402074 +B0925124549858N00642191EA0203402074 +B0925144549845N00642187EA0203402074 +B0925164549832N00642184EA0203202073 +B0925184549818N00642181EA0203202072 +B0925204549804N00642177EA0203302072 +B0925224549789N00642173EA0203402073 +B0925244549775N00642169EA0203502074 +B0925264549761N00642166EA0203602076 +B0925284549747N00642162EA0203702077 +B0925304549733N00642157EA0203902078 +B0925324549720N00642152EA0204002079 +B0925344549706N00642148EA0204302081 +B0925364549692N00642144EA0204702085 +B0925384549678N00642139EA0205102088 +B0925404549665N00642134EA0205402092 +B0925424549653N00642127EA0205902096 +B0925444549642N00642120EA0206102100 +B0925464549630N00642115EA0206402102 +B0925484549618N00642108EA0206702106 +B0925504549606N00642101EA0206902109 +B0925524549595N00642100EA0207002111 +B0925544549588N00642108EA0207002112 +B0925564549591N00642117EA0207002112 +B0925584549601N00642117EA0207002113 +B0926004549611N00642109EA0207402116 +B0926024549620N00642101EA0207702119 +B0926044549628N00642096EA0207902121 +B0926064549636N00642092EA0208202123 +B0926084549643N00642089EA0208602126 +B0926104549650N00642086EA0209002130 +B0926124549656N00642083EA0209502135 +B0926144549662N00642082EA0209902139 +B0926164549668N00642082EA0210302143 +B0926184549674N00642082EA0210602147 +B0926204549680N00642088EA0210702148 +B0926224549677N00642104EA0210902150 +B0926244549665N00642111EA0211102151 +B0926264549649N00642100EA0211602154 +B0926284549638N00642086EA0211902158 +B0926304549627N00642074EA0212202161 +B0926324549614N00642062EA0212702165 +B0926344549602N00642057EA0212902168 +B0926364549592N00642065EA0212502170 +B0926384549589N00642076EA0212502171 +B0926404549597N00642080EA0212702171 +B0926424549608N00642076EA0213002172 +B0926444549615N00642070EA0213202174 +B0926464549622N00642066EA0213602177 +B0926484549629N00642062EA0214102181 +B0926504549635N00642057EA0214502185 +B0926524549641N00642052EA0215002189 +B0926544549648N00642049EA0215602195 +B0926564549653N00642050EA0216002200 +B0926584549655N00642059EA0216402204 +B0927004549650N00642072EA0216902208 +B0927024549634N00642072EA0217202212 +B0927044549621N00642054EA0217402214 +B0927064549620N00642032EA0217602217 +B0927084549632N00642030EA0217902220 +B0927104549640N00642043EA0218702225 +B0927124549645N00642051EA0219402232 +B0927144549651N00642053EA0220102240 +B0927164549655N00642058EA0220502246 +B0927184549651N00642069EA0220702250 +B0927204549633N00642070EA0221002252 +B0927224549618N00642050EA0221802258 +B0927244549616N00642029EA0222202263 +B0927264549622N00642015EA0222802268 +B0927284549629N00642008EA0223602275 +B0927304549636N00642003EA0224402283 +B0927324549640N00641998EA0224802290 +B0927344549646N00641999EA0225202295 +B0927364549648N00642012EA0225602299 +B0927384549637N00642023EA0225802302 +B0927404549620N00642018EA0226102304 +B0927424549607N00641997EA0226702307 +B0927444549606N00641976EA0227202312 +B0927464549612N00641962EA0227902318 +B0927484549619N00641955EA0228702326 +B0927504549626N00641949EA0229502333 +B0927524549632N00641944EA0230302342 +B0927544549639N00641938EA0231002349 +B0927564549647N00641937EA0231502356 +B0927584549651N00641951EA0231802360 +B0928004549645N00641967EA0232202365 +B0928024549629N00641967EA0232702368 +B0928044549618N00641948EA0233502374 +B0928064549616N00641930EA0234702382 +B0928084549620N00641921EA0235602392 +B0928104549625N00641916EA0236202401 +B0928124549630N00641909EA0236402407 +B0928144549637N00641903EA0236602412 +B0928164549647N00641910EA0237102416 +B0928184549652N00641928EA0237702420 +B0928204549646N00641946EA0237802424 +B0928224549632N00641960EA0238102426 +B0928244549616N00641965EA0238602430 +B0928264549602N00641956EA0239002433 +B0928284549594N00641939EA0239402437 +B0928304549598N00641925EA0240002442 +B0928324549607N00641922EA0240502446 +B0928344549614N00641919EA0240802450 +B0928364549620N00641911EA0241302454 +B0928384549628N00641904EA0242102460 +B0928404549635N00641902EA0242002464 +B0928424549642N00641903EA0241602467 +B0928444549645N00641915EA0240802466 +B0928464549638N00641934EA0240102463 +B0928484549622N00641939EA0239702455 +B0928504549606N00641929EA0240002451 +B0928524549595N00641920EA0240302451 +B0928544549584N00641916EA0240702453 +B0928564549571N00641911EA0241002455 +B0928584549559N00641904EA0241402459 +B0929004549546N00641899EA0241902463 +B0929024549533N00641894EA0242302466 +B0929044549522N00641890EA0242902470 +B0929064549516N00641894EA0243402474 +B0929084549512N00641901EA0243702478 +B0929104549510N00641910EA0243602481 +B0929124549511N00641920EA0243402481 +B0929144549517N00641931EA0243702483 +B0929164549525N00641933EA0244402486 +B0929184549529N00641928EA0245102492 +B0929204549532N00641923EA0245602496 +B0929224549535N00641919EA0245902500 +B0929244549537N00641911EA0246302504 +B0929264549536N00641901EA0246402506 +B0929284549528N00641891EA0246402508 +B0929304549516N00641886EA0246702510 +B0929324549507N00641881EA0246702512 +B0929344549497N00641876EA0246402512 +B0929364549482N00641880EA0246802511 +B0929384549474N00641896EA0247302513 +B0929404549476N00641910EA0247602515 +B0929424549482N00641916EA0247502516 +B0929444549488N00641915EA0247602517 +B0929464549493N00641912EA0248102521 +B0929484549497N00641912EA0247802521 +B0929504549500N00641910EA0247302521 +B0929524549506N00641904EA0247202519 +B0929544549511N00641900EA0246902517 +B0929564549516N00641897EA0246102513 +B0929584549521N00641893EA0245602508 +B0930004549526N00641884EA0245202504 +B0930024549522N00641868EA0244602498 +B0930044549511N00641855EA0244202492 +B0930064549498N00641844EA0244302488 +B0930084549486N00641834EA0244702486 +B0930104549478N00641829EA0244602485 +B0930124549466N00641826EA0244102482 +B0930144549455N00641817EA0244102479 +B0930164549446N00641806EA0244202479 +B0930184549439N00641794EA0243902478 +B0930204549428N00641782EA0243602475 +B0930224549416N00641768EA0244402475 +B0930244549407N00641753EA0245102477 +B0930264549398N00641741EA0245102479 +B0930284549383N00641737EA0245102479 +B0930304549371N00641739EA0245602483 +B0930324549362N00641741EA0245802487 +B0930344549355N00641745EA0245202488 +B0930364549349N00641760EA0244902489 +B0930384549353N00641773EA0245002490 +B0930404549365N00641771EA0245002490 +B0930424549372N00641753EA0244902491 +B0930444549371N00641733EA0245002492 +B0930464549365N00641716EA0245002493 +B0930484549356N00641702EA0244802492 +B0930504549347N00641688EA0244902491 +B0930524549338N00641675EA0244702490 +B0930544549331N00641661EA0244302488 +B0930564549325N00641645EA0243702485 +B0930584549316N00641631EA0243102479 +B0931004549305N00641619EA0242602474 +B0931024549296N00641607EA0242502471 +B0931044549286N00641596EA0242402469 +B0931064549275N00641587EA0242402468 +B0931084549264N00641577EA0242402467 +B0931104549253N00641564EA0242402466 +B0931124549242N00641551EA0242702467 +B0931144549230N00641542EA0242802468 +B0931164549220N00641532EA0242502467 +B0931184549210N00641516EA0242502467 +B0931204549199N00641499EA0242702467 +B0931224549190N00641483EA0242902469 +B0931244549181N00641470EA0242802469 +B0931264549170N00641453EA0243202470 +B0931284549160N00641437EA0243502473 +B0931304549152N00641421EA0243602475 +B0931324549145N00641405EA0243602476 +B0931344549137N00641393EA0243402476 +B0931364549129N00641383EA0243302474 +B0931384549120N00641371EA0243202473 +B0931404549113N00641358EA0243502474 +B0931424549104N00641346EA0243802475 +B0931444549095N00641335EA0244102478 +B0931464549086N00641324EA0244302482 +B0931484549076N00641312EA0244402483 +B0931504549064N00641306EA0244302484 +B0931524549053N00641303EA0243902483 +B0931544549041N00641298EA0243502481 +B0931564549029N00641287EA0243202478 +B0931584549016N00641272EA0242902474 +B0932004549004N00641253EA0242702471 +B0932024548990N00641238EA0242502469 +B0932044548977N00641228EA0242302467 +B0932064548965N00641218EA0242002464 +B0932084548952N00641210EA0241602461 +B0932104548939N00641198EA0241302457 +B0932124548928N00641182EA0241002454 +B0932144548919N00641165EA0240702452 +B0932164548909N00641149EA0240502448 +B0932184548898N00641135EA0240702447 +B0932204548889N00641124EA0241202446 +B0932224548880N00641116EA0241502449 +B0932244548869N00641108EA0241702452 +B0932264548858N00641109EA0241602453 +B0932284548851N00641122EA0241702455 +B0932304548854N00641131EA0242302459 +B0932324548862N00641132EA0242602464 +B0932344548870N00641128EA0242702466 +B0932364548876N00641119EA0242502468 +B0932384548881N00641100EA0242202467 +B0932404548877N00641077EA0242102466 +B0932424548865N00641062EA0242502466 +B0932444548854N00641060EA0242702466 +B0932464548845N00641064EA0242602466 +B0932484548837N00641071EA0242602466 +B0932504548834N00641085EA0242702467 +B0932524548841N00641095EA0243002470 +B0932544548849N00641101EA0243402474 +B0932564548854N00641107EA0243702478 +B0932584548858N00641112EA0243702480 +B0933004548865N00641111EA0243602480 +B0933024548875N00641099EA0243802480 +B0933044548877N00641076EA0243902482 +B0933064548870N00641057EA0243902483 +B0933084548862N00641043EA0243902483 +B0933104548850N00641036EA0243702482 +B0933124548838N00641043EA0243402481 +B0933144548833N00641058EA0243602480 +B0933164548839N00641068EA0243802481 +B0933184548847N00641074EA0243802481 +B0933204548856N00641078EA0243802481 +B0933224548865N00641084EA0243902482 +B0933244548874N00641090EA0244202484 +B0933264548880N00641095EA0244402487 +B0933284548888N00641097EA0244502489 +B0933304548897N00641101EA0244502489 +B0933324548906N00641110EA0244902491 +B0933344548914N00641120EA0245402494 +B0933364548918N00641130EA0245702498 +B0933384548922N00641138EA0245702500 +B0933404548931N00641138EA0245702502 +B0933424548945N00641125EA0245802503 +B0933444548950N00641104EA0246102505 +B0933464548944N00641090EA0246502506 +B0933484548933N00641088EA0247002510 +B0933504548928N00641094EA0247202514 +B0933524548928N00641102EA0247502517 +B0933544548933N00641110EA0248002520 +B0933564548939N00641115EA0248502525 +B0933584548946N00641115EA0248802529 +B0934004548953N00641119EA0248902532 +B0934024548960N00641126EA0248902534 +B0934044548969N00641117EA0248802535 +B0934064548970N00641094EA0248802534 +B0934084548957N00641074EA0249102534 +B0934104548945N00641068EA0250002537 +B0934124548936N00641067EA0250802543 +B0934144548929N00641065EA0251202548 +B0934164548923N00641070EA0251002551 +B0934184548927N00641078EA0251002553 +B0934204548937N00641068EA0251002554 +B0934224548945N00641054EA0251502559 +B0934244548950N00641045EA0251702562 +B0934264548953N00641030EA0251602564 +B0934284548954N00641008EA0251902565 +B0934304548947N00640993EA0252402568 +B0934324548937N00640993EA0252602571 +B0934344548932N00641002EA0253102574 +B0934364548931N00641014EA0253902580 +B0934384548934N00641022EA0254302585 +B0934404548941N00641024EA0254402587 +B0934424548951N00641013EA0254302589 +B0934444548954N00640992EA0254502589 +B0934464548947N00640976EA0255202592 +B0934484548938N00640977EA0255902595 +B0934504548929N00640985EA0256702603 +B0934524548926N00640991EA0256902608 +B0934544548928N00640996EA0256802611 +B0934564548939N00640993EA0256702613 +B0934584548949N00640974EA0256702614 +B0935004548948N00640949EA0257002615 +B0935024548938N00640931EA0257902619 +B0935044548929N00640922EA0258702626 +B0935064548923N00640914EA0258902630 +B0935084548915N00640902EA0258602632 +B0935104548904N00640896EA0258302632 +B0935124548897N00640903EA0258402633 +B0935144548899N00640912EA0258602634 +B0935164548909N00640913EA0258802635 +B0935184548919N00640904EA0259102636 +B0935204548926N00640887EA0259402639 +B0935224548925N00640865EA0259802642 +B0935244548916N00640850EA0260202646 +B0935264548906N00640848EA0260402649 +B0935284548902N00640857EA0260802652 +B0935304548909N00640863EA0261002655 +B0935324548922N00640855EA0261202658 +B0935344548928N00640837EA0261502661 +B0935364548927N00640818EA0261702663 +B0935384548922N00640802EA0262102666 +B0935404548911N00640792EA0262502670 +B0935424548900N00640785EA0262802673 +B0935444548891N00640776EA0263002675 +B0935464548883N00640766EA0263302678 +B0935484548874N00640757EA0263602681 +B0935504548865N00640755EA0263602684 +B0935524548857N00640764EA0263602685 +B0935544548850N00640773EA0263702686 +B0935564548840N00640770EA0263702685 +B0935584548829N00640762EA0263902686 +B0936004548818N00640756EA0264402688 +B0936024548807N00640749EA0264902691 +B0936044548796N00640743EA0265202695 +B0936064548786N00640736EA0265502699 +B0936084548777N00640727EA0265602701 +B0936104548768N00640717EA0265502702 +B0936124548758N00640708EA0265502702 +B0936144548749N00640698EA0265602703 +B0936164548740N00640685EA0265902703 +B0936184548733N00640669EA0266602705 +B0936204548731N00640656EA0267502709 +B0936224548727N00640648EA0268202715 +B0936244548721N00640640EA0268602721 +B0936264548715N00640630EA0268602725 +B0936284548706N00640620EA0268902728 +B0936304548696N00640608EA0269502734 +B0936324548687N00640597EA0270202740 +B0936344548678N00640587EA0270802747 +B0936364548669N00640577EA0271402754 +B0936384548660N00640567EA0272002760 +B0936404548652N00640559EA0272302766 +B0936424548643N00640552EA0272402770 +B0936444548633N00640544EA0272402772 +B0936464548622N00640534EA0273002775 +B0936484548612N00640525EA0273702780 +B0936504548603N00640514EA0274302786 +B0936524548595N00640498EA0274902791 +B0936544548586N00640485EA0275402797 +B0936564548576N00640476EA0275902802 +B0936584548565N00640464EA0276602808 +B0937004548554N00640454EA0277002814 +B0937024548543N00640448EA0277102818 +B0937044548530N00640439EA0277102820 +B0937064548518N00640426EA0277302822 +B0937084548508N00640417EA0277302824 +B0937104548496N00640412EA0277002824 +B0937124548484N00640403EA0276802822 +B0937144548473N00640392EA0276802822 +B0937164548463N00640383EA0276902821 +B0937184548453N00640372EA0277002822 +B0937204548445N00640361EA0277302823 +B0937224548436N00640351EA0277402825 +B0937244548427N00640341EA0277302824 +B0937264548417N00640327EA0277202823 +B0937284548408N00640312EA0277302823 +B0937304548400N00640300EA0277102823 +B0937324548391N00640289EA0277002821 +B0937344548383N00640276EA0277002821 +B0937364548375N00640264EA0276802820 +B0937384548366N00640254EA0276702818 +B0937404548359N00640241EA0276602817 +B0937424548351N00640227EA0276502815 +B0937444548343N00640214EA0276602814 +B0937464548334N00640200EA0276802815 +B0937484548327N00640184EA0277002817 +B0937504548319N00640169EA0277202819 +B0937524548310N00640156EA0277202819 +B0937544548303N00640138EA0277502821 +B0937564548297N00640121EA0277802823 +B0937584548292N00640107EA0278002825 +B0938004548284N00640091EA0278202826 +B0938024548276N00640075EA0278802829 +B0938044548269N00640061EA0279202834 +B0938064548264N00640048EA0279202836 +B0938084548258N00640032EA0279102837 +B0938104548252N00640014EA0279402839 +B0938124548247N00639999EA0279702842 +B0938144548243N00639985EA0279802843 +B0938164548237N00639969EA0279902844 +B0938184548230N00639953EA0280202846 +B0938204548225N00639938EA0280402849 +B0938224548219N00639923EA0280502850 +B0938244548213N00639906EA0280602851 +B0938264548210N00639888EA0280802853 +B0938284548206N00639872EA0280802854 +B0938304548202N00639856EA0280802854 +B0938324548198N00639840EA0280802854 +B0938344548194N00639824EA0280702853 +B0938364548190N00639809EA0280702853 +B0938384548185N00639794EA0280602852 +B0938404548180N00639779EA0280302851 +B0938424548175N00639764EA0280302849 +B0938444548165N00639760EA0279902848 +B0938464548150N00639762EA0279602845 +B0938484548143N00639746EA0278602840 +B0938504548149N00639719EA0278802836 +B0938524548154N00639702EA0279102835 +B0938544548152N00639690EA0278702833 +B0938564548150N00639671EA0278002828 +B0938584548149N00639650EA0278102827 +B0939004548148N00639633EA0278102827 +B0939024548145N00639616EA0277602823 +B0939044548142N00639594EA0277202820 +B0939064548142N00639572EA0277102818 +B0939084548146N00639552EA0276602814 +B0939104548154N00639532EA0276402810 +B0939124548161N00639512EA0276402808 +B0939144548165N00639494EA0276302807 +B0939164548166N00639474EA0275902804 +B0939184548165N00639453EA0275702801 +B0939204548164N00639433EA0275802800 +B0939224548164N00639415EA0275602799 +B0939244548162N00639397EA0275202796 +B0939264548159N00639378EA0274902793 +B0939284548155N00639361EA0274802792 +B0939304548152N00639344EA0274502789 +B0939324548148N00639329EA0274102786 +B0939344548142N00639312EA0273702782 +B0939364548137N00639294EA0273402779 +B0939384548132N00639276EA0273102775 +B0939404548127N00639258EA0272902773 +B0939424548124N00639240EA0272902772 +B0939444548120N00639224EA0272702771 +B0939464548114N00639207EA0272802770 +B0939484548109N00639192EA0272902771 +B0939504548102N00639178EA0272702770 +B0939524548096N00639163EA0272502768 +B0939544548090N00639148EA0272302767 +B0939564548083N00639135EA0272202766 +B0939584548077N00639121EA0271902764 +B0940004548070N00639106EA0271702762 +B0940024548063N00639092EA0271702761 +B0940044548056N00639078EA0271602760 +B0940064548049N00639063EA0271402758 +B0940084548041N00639048EA0271402757 +B0940104548032N00639034EA0271302757 +B0940124548025N00639021EA0271002755 +B0940144548017N00639005EA0270702752 +B0940164548010N00638990EA0270702751 +B0940184548003N00638977EA0270402750 +B0940204547996N00638964EA0270202747 +B0940224547989N00638950EA0270102746 +B0940244547983N00638937EA0270102745 +B0940264547977N00638923EA0269902744 +B0940284547970N00638908EA0269702742 +B0940304547964N00638893EA0269502740 +B0940324547958N00638877EA0269202738 +B0940344547952N00638861EA0268802734 +B0940364547947N00638843EA0268502731 +B0940384547942N00638827EA0268302729 +B0940404547937N00638811EA0268002726 +B0940424547932N00638794EA0267602722 +B0940444547927N00638777EA0267302718 +B0940464547921N00638761EA0266902715 +B0940484547915N00638744EA0266502711 +B0940504547909N00638727EA0266002707 +B0940524547901N00638709EA0265702703 +B0940544547893N00638693EA0265402700 +B0940564547886N00638678EA0265202696 +B0940584547880N00638660EA0265002693 +B0941004547876N00638643EA0264902691 +B0941024547874N00638626EA0264702689 +B0941044547873N00638609EA0264302685 +B0941064547874N00638588EA0264302683 +B0941084547873N00638571EA0264602683 +B0941104547869N00638558EA0264402682 +B0941124547862N00638544EA0264002680 +B0941144547856N00638528EA0263702678 +B0941164547850N00638511EA0263702678 +B0941184547846N00638496EA0263602677 +B0941204547842N00638480EA0263702677 +B0941224547839N00638466EA0263702678 +B0941244547837N00638453EA0263302676 +B0941264547833N00638436EA0262902674 +B0941284547830N00638420EA0263102673 +B0941304547826N00638409EA0263002674 +B0941324547820N00638400EA0262702672 +B0941344547813N00638387EA0262502670 +B0941364547805N00638374EA0262602669 +B0941384547798N00638363EA0262402668 +B0941404547789N00638351EA0262002666 +B0941424547783N00638336EA0261602663 +B0941444547778N00638322EA0261402661 +B0941464547772N00638309EA0261102658 +B0941484547767N00638294EA0260902654 +B0941504547763N00638277EA0260802653 +B0941524547759N00638260EA0260602651 +B0941544547753N00638246EA0260302649 +B0941564547748N00638230EA0260002646 +B0941584547744N00638215EA0259802643 +B0942004547741N00638200EA0259602640 +B0942024547737N00638184EA0259502639 +B0942044547734N00638170EA0259302637 +B0942064547731N00638154EA0259302636 +B0942084547728N00638137EA0259402637 +B0942104547725N00638122EA0259402637 +B0942124547722N00638105EA0259202635 +B0942144547718N00638089EA0259202635 +B0942164547712N00638075EA0259102634 +B0942184547706N00638061EA0259102634 +B0942204547700N00638048EA0259302635 +B0942224547693N00638036EA0259402636 +B0942244547687N00638024EA0259402636 +B0942264547682N00638012EA0259502637 +B0942284547677N00638000EA0259402637 +B0942304547673N00637986EA0259402637 +B0942324547669N00637974EA0259502638 +B0942344547664N00637964EA0259502638 +B0942364547660N00637952EA0259402638 +B0942384547653N00637939EA0259502638 +B0942404547645N00637926EA0259702640 +B0942424547637N00637914EA0259802641 +B0942444547631N00637901EA0259902642 +B0942464547625N00637889EA0259702642 +B0942484547619N00637876EA0259602641 +B0942504547612N00637862EA0259602641 +B0942524547607N00637848EA0259602641 +B0942544547602N00637834EA0259502641 +B0942564547595N00637821EA0259502640 +B0942584547588N00637810EA0259502640 +B0943004547582N00637798EA0259302639 +B0943024547576N00637783EA0259202637 +B0943044547570N00637769EA0259102636 +B0943064547565N00637756EA0259102636 +B0943084547560N00637742EA0259002635 +B0943104547555N00637725EA0259202636 +B0943124547551N00637709EA0259402637 +B0943144547546N00637696EA0259502637 +B0943164547541N00637680EA0259602639 +B0943184547537N00637666EA0259902641 +B0943204547534N00637655EA0259802642 +B0943224547529N00637642EA0259402641 +B0943244547523N00637629EA0259202639 +B0943264547517N00637616EA0259102638 +B0943284547513N00637601EA0259002636 +B0943304547509N00637586EA0258902635 +B0943324547504N00637574EA0258902635 +B0943344547499N00637562EA0258702633 +B0943364547494N00637549EA0258102630 +B0943384547486N00637537EA0257502626 +B0943404547478N00637524EA0257202622 +B0943424547472N00637511EA0256902619 +B0943444547464N00637501EA0256302614 +B0943464547456N00637490EA0256002609 +B0943484547448N00637478EA0255702605 +B0943504547439N00637470EA0255002600 +B0943524547430N00637461EA0254102595 +B0943544547421N00637447EA0253602588 +B0943564547413N00637432EA0253402584 +B0943584547406N00637419EA0253202581 +B0944004547401N00637406EA0252902577 +B0944024547395N00637392EA0252802574 +B0944044547390N00637374EA0253202571 +B0944064547390N00637356EA0253902571 +B0944084547388N00637342EA0254202573 +B0944104547385N00637329EA0254502576 +B0944124547381N00637315EA0254602578 +B0944144547374N00637300EA0254802580 +B0944164547367N00637284EA0255202584 +B0944184547361N00637269EA0255602588 +B0944204547356N00637256EA0256002593 +B0944224547351N00637243EA0256302597 +B0944244547345N00637230EA0256602601 +B0944264547340N00637218EA0256902604 +B0944284547335N00637207EA0256802606 +B0944304547328N00637194EA0256702607 +B0944324547320N00637179EA0257002609 +B0944344547313N00637165EA0257402612 +B0944364547307N00637155EA0257502615 +B0944384547299N00637145EA0257202616 +B0944404547291N00637132EA0257002615 +B0944424547283N00637117EA0257002616 +B0944444547277N00637104EA0256802614 +B0944464547270N00637091EA0256302612 +B0944484547262N00637075EA0256202610 +B0944504547255N00637058EA0256402609 +B0944524547250N00637042EA0256502611 +B0944544547244N00637026EA0256602611 +B0944564547237N00637008EA0256702612 +B0944584547229N00636991EA0257002613 +B0945004547222N00636976EA0257202615 +B0945024547216N00636961EA0257802617 +B0945044547212N00636946EA0259002621 +B0945064547209N00636935EA0259602628 +B0945084547204N00636922EA0260102633 +B0945104547196N00636908EA0261002639 +B0945124547188N00636897EA0262002647 +B0945144547178N00636888EA0263002657 +B0945164547167N00636881EA0263902668 +B0945184547155N00636876EA0264902680 +B0945204547143N00636872EA0265502689 +B0945224547129N00636866EA0266002696 +B0945244547116N00636857EA0266902705 +B0945264547105N00636847EA0268002715 +B0945284547095N00636842EA0268502724 +B0945304547083N00636837EA0268602731 +B0945324547072N00636828EA0268602735 +B0945344547061N00636820EA0268402739 +B0945364547050N00636811EA0267902740 +B0945384547040N00636798EA0267702737 +B0945404547030N00636784EA0267602735 +B0945424547019N00636772EA0267602734 +B0945444547009N00636759EA0267302731 +B0945464546998N00636745EA0267002728 +B0945484546988N00636730EA0266702724 +B0945504546979N00636714EA0266402720 +B0945524546970N00636697EA0266202717 +B0945544546962N00636680EA0266002714 +B0945564546954N00636662EA0265702710 +B0945584546947N00636643EA0265602708 +B0946004546940N00636626EA0265302706 +B0946024546934N00636610EA0264702702 +B0946044546926N00636594EA0264102697 +B0946064546917N00636578EA0263902693 +B0946084546909N00636564EA0263602690 +B0946104546902N00636550EA0263102686 +B0946124546895N00636536EA0262702681 +B0946144546886N00636522EA0262702677 +B0946164546877N00636507EA0262702675 +B0946184546871N00636492EA0262502673 +B0946204546865N00636476EA0262302670 +B0946224546859N00636459EA0262302669 +B0946244546852N00636444EA0262302669 +B0946264546844N00636430EA0262302668 +B0946284546836N00636414EA0262302668 +B0946304546828N00636397EA0262702668 +B0946324546820N00636383EA0263102670 +B0946344546812N00636371EA0263302672 +B0946364546801N00636359EA0263602674 +B0946384546791N00636349EA0264002677 +B0946404546781N00636340EA0264202681 +B0946424546771N00636329EA0264002682 +B0946444546761N00636317EA0264102682 +B0946464546752N00636302EA0264302684 +B0946484546745N00636288EA0264402686 +B0946504546738N00636274EA0264502687 +B0946524546731N00636260EA0264502688 +B0946544546723N00636244EA0264602689 +B0946564546716N00636228EA0264702690 +B0946584546709N00636212EA0264802691 +B0947004546701N00636198EA0265102693 +B0947024546694N00636185EA0265402696 +B0947044546689N00636172EA0265402697 +B0947064546682N00636158EA0265302697 +B0947084546675N00636144EA0265302697 +B0947104546670N00636129EA0265302697 +B0947124546665N00636114EA0265002696 +B0947144546660N00636096EA0265002695 +B0947164546655N00636078EA0265202695 +B0947184546650N00636064EA0265202695 +B0947204546644N00636050EA0265002694 +B0947224546637N00636031EA0264902694 +B0947244546631N00636013EA0265102695 +B0947264546627N00635998EA0265002696 +B0947284546623N00635981EA0264802694 +B0947304546616N00635962EA0264802693 +B0947324546610N00635945EA0264902694 +B0947344546604N00635929EA0264702693 +B0947364546598N00635911EA0264302690 +B0947384546591N00635892EA0264202688 +B0947404546586N00635873EA0264102687 +B0947424546582N00635855EA0263702685 +B0947444546576N00635838EA0263402681 +B0947464546569N00635819EA0263302680 +B0947484546564N00635803EA0263302679 +B0947504546557N00635787EA0263202677 +B0947524546551N00635772EA0263302677 +B0947544546545N00635757EA0263602678 +B0947564546538N00635745EA0264102680 +B0947584546531N00635733EA0264502684 +B0948004546524N00635722EA0265102690 +B0948024546516N00635714EA0265502695 +B0948044546508N00635707EA0265902699 +B0948064546500N00635699EA0266202702 +B0948084546491N00635689EA0266602706 +B0948104546481N00635680EA0267102711 +B0948124546471N00635677EA0267502716 +B0948144546462N00635675EA0267602719 +B0948164546451N00635675EA0267702721 +B0948184546439N00635672EA0268002723 +B0948204546427N00635667EA0268502727 +B0948224546415N00635664EA0268702731 +B0948244546402N00635662EA0269002733 +B0948264546389N00635657EA0269202736 +B0948284546377N00635649EA0269402738 +B0948304546366N00635639EA0269502739 +B0948324546356N00635625EA0269602740 +B0948344546348N00635607EA0269602741 +B0948364546341N00635589EA0269702742 +B0948384546335N00635573EA0269702742 +B0948404546330N00635555EA0269702742 +B0948424546329N00635537EA0269702742 +B0948444546328N00635518EA0269702742 +B0948464546327N00635499EA0269802742 +B0948484546326N00635480EA0270002743 +B0948504546323N00635461EA0269902744 +B0948524546317N00635445EA0269702744 +B0948544546311N00635429EA0269102742 +B0948564546306N00635410EA0269002740 +B0948584546301N00635392EA0268902739 +B0949004546297N00635377EA0268602737 +B0949024546293N00635360EA0268202733 +B0949044546291N00635340EA0268102731 +B0949064546289N00635322EA0268002730 +B0949084546286N00635306EA0267602727 +B0949104546282N00635288EA0267102722 +B0949124546279N00635268EA0267002719 +B0949144546276N00635250EA0266802717 +B0949164546273N00635233EA0266502713 +B0949184546269N00635215EA0266102710 +B0949204546263N00635197EA0266002707 +B0949224546258N00635181EA0265702705 +B0949244546252N00635166EA0265402702 +B0949264546246N00635149EA0265202699 +B0949284546241N00635131EA0264902696 +B0949304546236N00635114EA0264602693 +B0949324546231N00635097EA0264202689 +B0949344546226N00635079EA0263902686 +B0949364546222N00635062EA0263502682 +B0949384546217N00635046EA0263002678 +B0949404546212N00635028EA0262502673 +B0949424546208N00635010EA0262102668 +B0949444546203N00634992EA0261702664 +B0949464546198N00634975EA0261302660 +B0949484546191N00634956EA0260902656 +B0949504546186N00634938EA0260802654 +B0949524546181N00634923EA0260302650 +B0949544546176N00634905EA0259902645 +B0949564546171N00634887EA0259802642 +B0949584546165N00634871EA0259602641 +B0950004546159N00634857EA0259202637 +B0950024546153N00634840EA0258802633 +B0950044546147N00634823EA0258702631 +B0950064546141N00634808EA0258502629 +B0950084546136N00634792EA0258202626 +B0950104546130N00634775EA0257902623 +B0950124546125N00634760EA0257602621 +B0950144546118N00634745EA0257302618 +B0950164546112N00634728EA0257002614 +B0950184546105N00634711EA0257002613 +B0950204546099N00634695EA0256802611 +B0950224546092N00634679EA0256602610 +B0950244546087N00634663EA0256502609 +B0950264546082N00634647EA0256202607 +B0950284546076N00634631EA0256002604 +B0950304546068N00634615EA0256002603 +B0950324546060N00634598EA0256202602 +B0950344546053N00634581EA0256102602 +B0950364546047N00634563EA0255802600 +B0950384546040N00634542EA0255502597 +B0950404546034N00634522EA0255402596 +B0950424546029N00634504EA0255302596 +B0950444546025N00634485EA0255002593 +B0950464546020N00634465EA0255002591 +B0950484546016N00634448EA0255102591 +B0950504546013N00634432EA0254902590 +B0950524546009N00634414EA0254802588 +B0950544546005N00634396EA0255002588 +B0950564546001N00634382EA0254902588 +B0950584545996N00634370EA0254802586 +B0951004545991N00634357EA0254502584 +B0951024545986N00634343EA0254302582 +B0951044545980N00634329EA0254302581 +B0951064545975N00634314EA0254502581 +B0951084545970N00634299EA0254802583 +B0951104545965N00634285EA0255002586 +B0951124545960N00634272EA0255202587 +B0951144545953N00634257EA0255602591 +B0951164545947N00634243EA0256202595 +B0951184545941N00634229EA0256602600 +B0951204545936N00634217EA0256802604 +B0951224545929N00634206EA0256602606 +B0951244545923N00634192EA0256302607 +B0951264545918N00634176EA0255902605 +B0951284545912N00634159EA0255702603 +B0951304545906N00634143EA0255502601 +B0951324545902N00634127EA0255302599 +B0951344545897N00634109EA0255202597 +B0951364545893N00634090EA0255602596 +B0951384545893N00634071EA0256202597 +B0951404545893N00634053EA0256902599 +B0951424545889N00634035EA0257602605 +B0951444545886N00634018EA0258402612 +B0951464545885N00634003EA0258902620 +B0951484545884N00633991EA0258902625 +B0951504545882N00633978EA0258802628 +B0951524545879N00633963EA0258602629 +B0951544545875N00633946EA0258502627 +B0951564545871N00633928EA0258502627 +B0951584545867N00633910EA0258702628 +B0952004545864N00633893EA0258702629 +B0952024545860N00633878EA0258602628 +B0952044545855N00633862EA0258302627 +B0952064545850N00633845EA0258102625 +B0952084545846N00633828EA0258002624 +B0952104545842N00633812EA0257702622 +B0952124545837N00633797EA0257502619 +B0952144545833N00633780EA0257102616 +B0952164545829N00633764EA0256802613 +B0952184545826N00633747EA0256602611 +B0952204545822N00633730EA0256502609 +B0952224545816N00633713EA0256502607 +B0952244545812N00633696EA0256502608 +B0952264545808N00633680EA0256402607 +B0952284545804N00633663EA0256302606 +B0952304545799N00633646EA0256602606 +B0952324545795N00633630EA0256802607 +B0952344545790N00633615EA0256902608 +B0952364545785N00633598EA0256902609 +B0952384545779N00633581EA0256902609 +B0952404545774N00633564EA0256702609 +B0952424545769N00633545EA0256502607 +B0952444545763N00633526EA0256702607 +B0952464545757N00633509EA0256702608 +B0952484545752N00633495EA0256702608 +B0952504545745N00633480EA0256802608 +B0952524545740N00633464EA0257102609 +B0952544545737N00633450EA0257302611 +B0952564545732N00633434EA0257302611 +B0952584545725N00633415EA0257202611 +B0953004545718N00633398EA0257102612 +B0953024545713N00633383EA0256502611 +B0953044545706N00633367EA0256002608 +B0953064545697N00633348EA0255902606 +B0953084545690N00633332EA0255802605 +B0953104545683N00633316EA0255502602 +B0953124545675N00633297EA0255502600 +B0953144545669N00633280EA0255602600 +B0953164545665N00633264EA0255302598 +B0953184545658N00633247EA0255102595 +B0953204545649N00633233EA0255102594 +B0953224545641N00633220EA0255102594 +B0953244545635N00633203EA0255102594 +B0953264545629N00633187EA0255002594 +B0953284545623N00633173EA0254702592 +B0953304545615N00633158EA0254502590 +B0953324545607N00633144EA0254402589 +B0953344545602N00633130EA0254002587 +B0953364545595N00633117EA0253502583 +B0953384545589N00633102EA0253002578 +B0953404545582N00633086EA0252502573 +B0953424545577N00633070EA0252202570 +B0953444545573N00633055EA0251902566 +B0953464545569N00633040EA0251602563 +B0953484545565N00633026EA0251202559 +B0953504545560N00633014EA0250802555 +B0953524545555N00633001EA0250402551 +B0953544545550N00632988EA0250002547 +B0953564545545N00632977EA0249602544 +B0953584545540N00632966EA0249102539 +B0954004545534N00632954EA0248602534 +B0954024545527N00632944EA0248202529 +B0954044545521N00632932EA0247802523 +B0954064545514N00632919EA0247302519 +B0954084545507N00632905EA0247102515 +B0954104545500N00632891EA0247002513 +B0954124545494N00632877EA0246902512 +B0954144545489N00632862EA0246802511 +B0954164545484N00632847EA0246702509 +B0954184545480N00632831EA0246502508 +B0954204545475N00632816EA0246202505 +B0954224545469N00632804EA0245902503 +B0954244545462N00632791EA0245502500 +B0954264545455N00632778EA0245302497 +B0954284545449N00632766EA0245102495 +B0954304545442N00632753EA0244802492 +B0954324545436N00632740EA0244502489 +B0954344545430N00632725EA0244402487 +B0954364545425N00632710EA0244102485 +B0954384545419N00632696EA0243902483 +B0954404545413N00632680EA0243802481 +B0954424545407N00632666EA0243602479 +B0954444545401N00632653EA0243302477 +B0954464545395N00632638EA0243102474 +B0954484545388N00632622EA0242802471 +B0954504545382N00632606EA0242702470 +B0954524545376N00632591EA0242502468 +B0954544545371N00632576EA0242202465 +B0954564545365N00632560EA0242002462 +B0954584545360N00632544EA0241702460 +B0955004545355N00632529EA0241402458 +B0955024545349N00632514EA0241002454 +B0955044545344N00632499EA0240702451 +B0955064545338N00632483EA0240402447 +B0955084545332N00632469EA0240102444 +B0955104545326N00632454EA0239802441 +B0955124545321N00632439EA0239402437 +B0955144545316N00632424EA0239102435 +B0955164545311N00632409EA0238802432 +B0955184545308N00632393EA0238702430 +B0955204545305N00632379EA0238402427 +B0955224545303N00632364EA0238102424 +B0955244545301N00632348EA0237902421 +B0955264545299N00632333EA0237702420 +B0955284545298N00632319EA0237202417 +B0955304545295N00632304EA0236702412 +B0955324545289N00632290EA0236502410 +B0955344545283N00632279EA0236302408 +B0955364545278N00632267EA0235902404 +B0955384545271N00632254EA0235602401 +B0955404545264N00632242EA0235302398 +B0955424545259N00632228EA0235002395 +B0955444545253N00632214EA0234702392 +B0955464545246N00632199EA0234702390 +B0955484545241N00632184EA0234602389 +B0955504545237N00632170EA0234302388 +B0955524545231N00632158EA0233702385 +B0955544545224N00632144EA0233202380 +B0955564545219N00632127EA0233002377 +B0955584545214N00632111EA0232902376 +B0956004545210N00632097EA0232802374 +B0956024545207N00632081EA0232802373 +B0956044545202N00632066EA0233002373 +B0956064545198N00632053EA0232802373 +B0956084545194N00632038EA0232602371 +B0956104545188N00632023EA0232502369 +B0956124545182N00632010EA0232402369 +B0956144545177N00631996EA0232202367 +B0956164545172N00631982EA0231802364 +B0956184545166N00631969EA0231402359 +B0956204545161N00631954EA0231002355 +B0956224545156N00631939EA0230902352 +B0956244545153N00631925EA0231102351 +B0956264545150N00631912EA0231202351 +B0956284545147N00631897EA0231102350 +B0956304545144N00631881EA0231202351 +B0956324545141N00631865EA0231302351 +B0956344545138N00631849EA0231302352 +B0956364545134N00631833EA0231402352 +B0956384545132N00631817EA0231702355 +B0956404545130N00631803EA0231802357 +B0956424545127N00631789EA0231802357 +B0956444545123N00631775EA0231902358 +B0956464545119N00631759EA0232302360 +B0956484545114N00631745EA0232402363 +B0956504545110N00631732EA0232102363 +B0956524545106N00631718EA0231902362 +B0956544545103N00631703EA0231602359 +B0956564545099N00631687EA0231402356 +B0956584545094N00631671EA0231302355 +B0957004545091N00631656EA0231102354 +B0957024545088N00631641EA0230902352 +B0957044545085N00631626EA0230902351 +B0957064545082N00631613EA0230802350 +B0957084545079N00631599EA0230502347 +B0957104545077N00631583EA0230902346 +B0957124545075N00631569EA0231102346 +B0957144545073N00631556EA0231302348 +B0957164545072N00631543EA0231402350 +B0957184545070N00631527EA0231602352 +B0957204545068N00631512EA0231902355 +B0957224545066N00631496EA0232102357 +B0957244545063N00631481EA0232202359 +B0957264545060N00631465EA0232502362 +B0957284545058N00631449EA0232802365 +B0957304545056N00631435EA0232902367 +B0957324545052N00631422EA0233002369 +B0957344545048N00631407EA0233202370 +B0957364545045N00631392EA0233302372 +B0957384545042N00631375EA0233502373 +B0957404545040N00631357EA0234002376 +B0957424545037N00631341EA0234602380 +B0957444545033N00631326EA0235102385 +B0957464545030N00631312EA0235602390 +B0957484545027N00631297EA0236102395 +B0957504545023N00631281EA0236802402 +B0957524545021N00631266EA0237302408 +B0957544545020N00631252EA0237502413 +B0957564545020N00631236EA0237802416 +B0957584545018N00631219EA0237902418 +B0958004545015N00631202EA0238002419 +B0958024545011N00631183EA0238002420 +B0958044545009N00631165EA0238002421 +B0958064545007N00631150EA0237902420 +B0958084545006N00631134EA0237902420 +B0958104545007N00631118EA0237702420 +B0958124545004N00631104EA0237702419 +B0958144545002N00631090EA0237902420 +B0958164545001N00631077EA0237902421 +B0958184544999N00631063EA0238002421 +B0958204544997N00631048EA0238102422 +B0958224544995N00631033EA0238402424 +B0958244544992N00631018EA0238702427 +B0958264544988N00631003EA0239502431 +B0958284544986N00630989EA0240402437 +B0958304544985N00630978EA0241202445 +B0958324544983N00630970EA0241802452 +B0958344544976N00630965EA0242202458 +B0958364544966N00630975EA0242802464 +B0958384544966N00630991EA0243402471 +B0958404544978N00631001EA0244102478 +B0958424544991N00630994EA0244902486 +B0958444544995N00630978EA0245802496 +B0958464544994N00630966EA0246602505 +B0958484544990N00630957EA0247002511 +B0958504544981N00630954EA0247302517 +B0958524544973N00630968EA0247602521 +B0958544544977N00630985EA0248202525 +B0958564544991N00630991EA0248902531 +B0958584545004N00630984EA0249702538 +B0959004545010N00630969EA0250302544 +B0959024545011N00630952EA0251002551 +B0959044545011N00630939EA0251602558 +B0959064545010N00630927EA0251902563 +B0959084545007N00630914EA0252202566 +B0959104545002N00630899EA0252502569 +B0959124545000N00630885EA0252602572 +B0959144544998N00630871EA0252602573 +B0959164544995N00630855EA0252602573 +B0959184544992N00630838EA0252702574 +B0959204544990N00630824EA0252602574 +B0959224544985N00630809EA0252302572 +B0959244544980N00630795EA0252302571 +B0959264544975N00630782EA0252302571 +B0959284544970N00630770EA0252302570 +B0959304544964N00630758EA0252302570 +B0959324544957N00630746EA0252402570 +B0959344544951N00630731EA0252202570 +B0959364544948N00630716EA0252002568 +B0959384544944N00630703EA0251702565 +B0959404544942N00630690EA0251302562 +B0959424544940N00630675EA0250802557 +B0959444544937N00630660EA0250302552 +B0959464544931N00630645EA0249902547 +B0959484544925N00630630EA0249302542 +B0959504544919N00630614EA0248802536 +B0959524544912N00630599EA0248402532 +B0959544544906N00630584EA0248102527 +B0959564544902N00630567EA0248102524 +B0959584544897N00630552EA0248202523 +B1000004544891N00630540EA0248302524 +B1000024544887N00630527EA0248302524 +B1000044544883N00630512EA0248302524 +B1000064544879N00630495EA0248802525 +B1000084544875N00630480EA0249502527 +B1000104544872N00630470EA0249802531 +B1000124544869N00630457EA0250202534 +B1000144544865N00630444EA0250902540 +B1000164544861N00630432EA0251202545 +B1000184544858N00630421EA0250902549 +B1000204544854N00630405EA0250902551 +B1000224544852N00630388EA0251302556 +B1000244544848N00630375EA0251502559 +B1000264544845N00630362EA0251602560 +B1000284544841N00630348EA0251502560 +B1000304544836N00630331EA0251402560 +B1000324544830N00630313EA0251602560 +B1000344544825N00630294EA0252302562 +B1000364544821N00630280EA0252702565 +B1000384544817N00630270EA0252802567 +B1000404544813N00630258EA0252902568 +B1000424544810N00630242EA0253002570 +B1000444544808N00630226EA0253102571 +B1000464544806N00630210EA0253002571 +B1000484544804N00630194EA0252902571 +B1000504544799N00630178EA0252802570 +B1000524544794N00630164EA0252602569 +B1000544544789N00630148EA0252302566 +B1000564544785N00630130EA0252202565 +B1000584544781N00630113EA0252102564 +B1001004544776N00630097EA0251802562 +B1001024544771N00630081EA0251402559 +B1001044544765N00630066EA0250902555 +B1001064544759N00630049EA0250602551 +B1001084544754N00630032EA0250402548 +B1001104544749N00630015EA0250202546 +B1001124544745N00629999EA0249902543 +B1001144544740N00629982EA0249702541 +B1001164544735N00629964EA0249502539 +B1001184544731N00629947EA0249302537 +B1001204544728N00629930EA0249202535 +B1001224544724N00629913EA0249102534 +B1001244544720N00629895EA0249102534 +B1001264544716N00629879EA0249002533 +B1001284544712N00629863EA0248602531 +B1001304544708N00629845EA0248702531 +B1001324544705N00629828EA0248802531 +B1001344544703N00629815EA0248702530 +B1001364544701N00629800EA0248802530 +B1001384544699N00629782EA0249402530 +B1001404544697N00629765EA0250302533 +B1001424544695N00629748EA0251002538 +B1001444544693N00629731EA0251402543 +B1001464544689N00629713EA0251902550 +B1001484544687N00629694EA0252402555 +B1001504544686N00629675EA0252602559 +B1001524544685N00629654EA0252802562 +B1001544544683N00629634EA0253002566 +B1001564544681N00629613EA0253602569 +B1001584544682N00629590EA0254402574 +B1002004544684N00629570EA0254902580 +B1002024544684N00629553EA0255102584 +B1002044544683N00629534EA0255402587 +B1002064544679N00629515EA0255902592 +B1002084544675N00629496EA0256502599 +B1002104544669N00629480EA0256502603 +B1002124544664N00629463EA0256402606 +B1002144544661N00629445EA0256502607 +B1002164544659N00629430EA0256702610 +B1002184544655N00629417EA0256702611 +B1002204544652N00629404EA0256302611 +B1002224544647N00629388EA0256002609 +B1002244544642N00629371EA0255902607 +B1002264544637N00629355EA0255702606 +B1002284544633N00629340EA0255602604 +B1002304544627N00629324EA0255502602 +B1002324544621N00629309EA0255502601 +B1002344544616N00629295EA0255502601 +B1002364544612N00629282EA0255202599 +B1002384544606N00629268EA0254902597 +B1002404544601N00629251EA0254902595 +B1002424544598N00629235EA0255002595 +B1002444544594N00629222EA0254902594 +B1002464544590N00629208EA0254702592 +B1002484544584N00629193EA0254602591 +B1002504544579N00629179EA0254702591 +B1002524544574N00629165EA0254702591 +B1002544544569N00629150EA0254602590 +B1002564544565N00629136EA0254602590 +B1002584544560N00629122EA0254502589 +B1003004544555N00629107EA0254502589 +B1003024544551N00629093EA0254402588 +B1003044544546N00629078EA0254302587 +B1003064544541N00629063EA0254202586 +B1003084544537N00629049EA0254002585 +B1003104544532N00629035EA0253802583 +B1003124544528N00629020EA0253602581 +B1003144544523N00629005EA0253402579 +B1003164544518N00628990EA0253302577 +B1003184544513N00628975EA0253102575 +B1003204544508N00628960EA0252802572 +B1003224544503N00628944EA0252402569 +B1003244544498N00628928EA0252002566 +B1003264544494N00628912EA0251302561 +B1003284544490N00628894EA0250502555 +B1003304544486N00628876EA0250102550 +B1003324544485N00628860EA0249302544 +B1003344544484N00628844EA0248202537 +B1003364544481N00628826EA0247502529 +B1003384544479N00628810EA0246902522 +B1003404544478N00628794EA0246102514 +B1003424544476N00628777EA0245602507 +B1003444544472N00628760EA0245502502 +B1003464544466N00628746EA0245202498 +B1003484544460N00628732EA0244802493 +B1003504544453N00628717EA0244302489 +B1003524544446N00628700EA0244002485 +B1003544544442N00628683EA0243502480 +B1003564544439N00628666EA0242902475 +B1003584544434N00628648EA0242502470 +B1004004544430N00628630EA0242202466 +B1004024544427N00628612EA0241802462 +B1004044544422N00628594EA0241302457 +B1004064544417N00628575EA0240902454 +B1004084544412N00628557EA0240602451 +B1004104544407N00628540EA0240202446 +B1004124544403N00628522EA0239702441 +B1004144544398N00628502EA0239602438 +B1004164544394N00628484EA0239402436 +B1004184544390N00628467EA0238902432 +B1004204544386N00628450EA0238202427 +B1004224544383N00628429EA0237702422 +B1004244544378N00628410EA0237602419 +B1004264544375N00628393EA0237202416 +B1004284544371N00628375EA0236602411 +B1004304544365N00628357EA0236202406 +B1004324544359N00628338EA0236002404 +B1004344544354N00628321EA0235702401 +B1004364544349N00628303EA0235302396 +B1004384544344N00628285EA0234902393 +B1004404544339N00628265EA0234702390 +B1004424544335N00628247EA0234202386 +B1004444544330N00628228EA0233802382 +B1004464544326N00628208EA0233402378 +B1004484544323N00628189EA0233002374 +B1004504544320N00628169EA0232602370 +B1004524544317N00628150EA0232202366 +B1004544544314N00628129EA0231802362 +B1004564544311N00628109EA0231502359 +B1004584544308N00628089EA0231202356 +B1005004544306N00628069EA0230802352 +B1005024544303N00628049EA0230402348 +B1005044544300N00628029EA0230002344 +B1005064544297N00628007EA0229702340 +B1005084544294N00627987EA0229402337 +B1005104544290N00627967EA0229102333 +B1005124544285N00627947EA0228602329 +B1005144544281N00627927EA0228302326 +B1005164544277N00627907EA0228002323 +B1005184544273N00627887EA0227702319 +B1005204544269N00627867EA0227402317 +B1005224544265N00627847EA0227102313 +B1005244544261N00627827EA0226902310 +B1005264544258N00627806EA0226702308 +B1005284544255N00627787EA0226402306 +B1005304544252N00627767EA0226102303 +B1005324544249N00627746EA0225802300 +B1005344544247N00627724EA0225602298 +B1005364544245N00627704EA0225402296 +B1005384544243N00627683EA0225102293 +B1005404544241N00627661EA0224902290 +B1005424544240N00627639EA0224802288 +B1005444544239N00627618EA0224602286 +B1005464544238N00627598EA0224302284 +B1005484544237N00627577EA0224002281 +B1005504544236N00627555EA0223802279 +B1005524544235N00627534EA0223702277 +B1005544544233N00627513EA0223502275 +B1005564544231N00627491EA0223402273 +B1005584544230N00627470EA0223202272 +B1006004544227N00627449EA0222902270 +B1006024544223N00627429EA0222702268 +B1006044544219N00627408EA0222602266 +B1006064544216N00627387EA0222402265 +B1006084544211N00627366EA0222302263 +B1006104544207N00627345EA0222102262 +B1006124544202N00627324EA0222102261 +B1006144544198N00627303EA0221902260 +B1006164544193N00627283EA0221702258 +B1006184544188N00627263EA0221502256 +B1006204544182N00627242EA0221402255 +B1006224544179N00627221EA0221202253 +B1006244544174N00627200EA0221002251 +B1006264544169N00627179EA0220802249 +B1006284544165N00627158EA0220602247 +B1006304544159N00627138EA0220402245 +B1006324544153N00627119EA0220202243 +B1006344544148N00627098EA0219802240 +B1006364544144N00627077EA0219702238 +B1006384544141N00627055EA0219402236 +B1006404544141N00627032EA0219102233 +B1006424544141N00627009EA0219002231 +B1006444544141N00626986EA0218702229 +B1006464544141N00626964EA0218502226 +B1006484544141N00626942EA0218302224 +B1006504544141N00626919EA0218102222 +B1006524544141N00626897EA0217902220 +B1006544544140N00626874EA0217702218 +B1006564544140N00626852EA0217502216 +B1006584544140N00626829EA0217302214 +B1007004544139N00626807EA0217102212 +B1007024544138N00626785EA0216902210 +B1007044544138N00626763EA0216702208 +B1007064544139N00626740EA0216502205 +B1007084544139N00626717EA0216302203 +B1007104544140N00626695EA0216102202 +B1007124544140N00626672EA0215902200 +B1007144544139N00626650EA0215802197 +B1007164544138N00626628EA0215602196 +B1007184544138N00626605EA0215402193 +B1007204544138N00626583EA0215102191 +B1007224544137N00626561EA0214902189 +B1007244544137N00626538EA0214702187 +B1007264544137N00626516EA0214502184 +B1007284544136N00626494EA0214202182 +B1007304544135N00626471EA0214102180 +B1007324544134N00626449EA0213802177 +B1007344544133N00626427EA0213602175 +B1007364544132N00626405EA0213402173 +B1007384544131N00626383EA0213102170 +B1007404544129N00626361EA0212902168 +B1007424544128N00626340EA0212702166 +B1007444544126N00626318EA0212502164 +B1007464544124N00626297EA0212302161 +B1007484544121N00626276EA0212002159 +B1007504544119N00626254EA0211802157 +B1007524544117N00626233EA0211602154 +B1007544544115N00626211EA0211302152 +B1007564544113N00626190EA0211002150 +B1007584544111N00626169EA0210702147 +B1008004544109N00626147EA0210402144 +B1008024544106N00626126EA0210102141 +B1008044544103N00626106EA0209902138 +B1008064544100N00626085EA0209602135 +B1008084544097N00626064EA0209302132 +B1008104544093N00626043EA0209002129 +B1008124544090N00626022EA0208702126 +B1008144544087N00626001EA0208502123 +B1008164544085N00625980EA0208302121 +B1008184544082N00625958EA0208002118 +B1008204544080N00625938EA0207702116 +B1008224544077N00625917EA0207502113 +B1008244544075N00625896EA0207302111 +B1008264544072N00625875EA0207002109 +B1008284544069N00625854EA0206802106 +B1008304544068N00625833EA0206602104 +B1008324544066N00625812EA0206302101 +B1008344544064N00625791EA0206102099 +B1008364544062N00625770EA0205902097 +B1008384544061N00625749EA0205702095 +B1008404544059N00625728EA0205502093 +B1008424544057N00625708EA0205202091 +B1008444544055N00625687EA0205002088 +B1008464544053N00625667EA0204802086 +B1008484544050N00625647EA0204602084 +B1008504544047N00625626EA0204402082 +B1008524544044N00625607EA0204202080 +B1008544544040N00625587EA0203902077 +B1008564544037N00625567EA0203702074 +B1008584544034N00625547EA0203302072 +B1009004544031N00625528EA0203102070 +B1009024544027N00625508EA0202902068 +B1009044544023N00625488EA0202802065 +B1009064544019N00625469EA0202602063 +B1009084544014N00625450EA0202302061 +B1009104544010N00625430EA0202102059 +B1009124544006N00625410EA0202002057 +B1009144544002N00625391EA0201702055 +B1009164543997N00625372EA0201502053 +B1009184543991N00625353EA0201302050 +B1009204543985N00625335EA0201102049 +B1009224543978N00625317EA0200902047 +B1009244543972N00625299EA0200602044 +B1009264543967N00625279EA0200402042 +B1009284543962N00625260EA0200302040 +B1009304543959N00625240EA0200102038 +B1009324543956N00625221EA0199902036 +B1009344543953N00625201EA0199602034 +B1009364543950N00625180EA0199402032 +B1009384543948N00625161EA0199202030 +B1009404543946N00625141EA0199002028 +B1009424543944N00625122EA0198802025 +B1009444543942N00625102EA0198502023 +B1009464543940N00625082EA0198302022 +B1009484543938N00625062EA0198102020 +B1009504543936N00625042EA0197802017 +B1009524543934N00625022EA0197502014 +B1009544543931N00625002EA0197402012 +B1009564543927N00624982EA0197202010 +B1009584543924N00624962EA0196902008 +B1010004543920N00624942EA0196702006 +B1010024543916N00624923EA0196502004 +B1010044543913N00624904EA0196402002 +B1010064543908N00624885EA0196202000 +B1010084543904N00624866EA0196001998 +B1010104543901N00624847EA0195701995 +B1010124543897N00624827EA0195501992 +B1010144543893N00624808EA0195301990 +B1010164543890N00624790EA0195101988 +B1010184543886N00624772EA0194701985 +B1010204543883N00624753EA0194601983 +B1010224543879N00624734EA0194401981 +B1010244543875N00624716EA0194201979 +B1010264543871N00624698EA0194001976 +B1010284543867N00624679EA0193901975 +B1010304543862N00624661EA0193701973 +B1010324543858N00624643EA0193501972 +B1010344543854N00624625EA0193401970 +B1010364543849N00624607EA0193201968 +B1010384543845N00624589EA0193001967 +B1010404543840N00624571EA0192901965 +B1010424543836N00624553EA0192701963 +B1010444543833N00624534EA0192501961 +B1010464543829N00624516EA0192301959 +B1010484543825N00624498EA0192001957 +B1010504543822N00624480EA0191801955 +B1010524543818N00624462EA0191601953 +B1010544543815N00624444EA0191401951 +B1010564543811N00624426EA0191201949 +B1010584543806N00624408EA0191001947 +B1011004543802N00624390EA0190901945 +B1011024543798N00624373EA0190601943 +B1011044543793N00624355EA0190401941 +B1011064543789N00624337EA0190201938 +B1011084543784N00624319EA0190001936 +B1011104543780N00624301EA0189801934 +B1011124543776N00624283EA0189501932 +B1011144543772N00624266EA0189201930 +B1011164543768N00624248EA0189001927 +B1011184543762N00624231EA0188801925 +B1011204543755N00624215EA0188701923 +B1011224543750N00624197EA0188401921 +B1011244543745N00624180EA0188201919 +B1011264543739N00624163EA0188001917 +B1011284543734N00624145EA0187801914 +B1011304543730N00624128EA0187501912 +B1011324543725N00624110EA0187301910 +B1011344543721N00624092EA0187101907 +B1011364543717N00624074EA0186901905 +B1011384543712N00624056EA0186601903 +B1011404543708N00624038EA0186401900 +B1011424543703N00624020EA0186201898 +B1011444543698N00624003EA0185901895 +B1011464543693N00623984EA0185701893 +B1011484543688N00623966EA0185501891 +B1011504543684N00623948EA0185301889 +B1011524543679N00623930EA0185001887 +B1011544543675N00623912EA0184801884 +B1011564543670N00623894EA0184601882 +B1011584543665N00623876EA0184401880 +B1012004543660N00623858EA0184201877 +B1012024543654N00623840EA0183901875 +B1012044543650N00623822EA0183701873 +B1012064543645N00623804EA0183501871 +B1012084543640N00623786EA0183301868 +B1012104543635N00623768EA0183001866 +B1012124543631N00623750EA0182801864 +B1012144543626N00623732EA0182601862 +B1012164543621N00623714EA0182401860 +B1012184543616N00623697EA0182201858 +B1012204543612N00623679EA0182001856 +B1012224543607N00623661EA0181801854 +B1012244543603N00623643EA0181601852 +B1012264543599N00623626EA0181401850 +B1012284543594N00623608EA0181201848 +B1012304543589N00623591EA0181001846 +B1012324543585N00623573EA0180801844 +B1012344543582N00623555EA0180601842 +B1012364543578N00623536EA0180401840 +B1012384543575N00623518EA0180201838 +B1012404543571N00623499EA0180101836 +B1012424543568N00623481EA0179901834 +B1012444543565N00623462EA0179701833 +B1012464543562N00623444EA0179401830 +B1012484543558N00623426EA0179301828 +B1012504543554N00623408EA0179101827 +B1012524543551N00623390EA0178901825 +B1012544543547N00623372EA0178701822 +B1012564543544N00623354EA0178501821 +B1012584543540N00623336EA0178301819 +B1013004543536N00623319EA0178101817 +B1013024543532N00623301EA0178001815 +B1013044543528N00623283EA0177801813 +B1013064543523N00623265EA0177701812 +B1013084543519N00623247EA0177501810 +B1013104543514N00623229EA0177401808 +B1013124543509N00623212EA0177201807 +B1013144543504N00623195EA0177001805 +B1013164543499N00623177EA0176701803 +B1013184543493N00623160EA0176501801 +B1013204543489N00623142EA0176301798 +B1013224543484N00623125EA0176001796 +B1013244543479N00623108EA0175901794 +B1013264543474N00623091EA0175601791 +B1013284543469N00623074EA0175401789 +B1013304543464N00623057EA0175101786 +B1013324543459N00623039EA0174901784 +B1013344543454N00623022EA0174701782 +B1013364543450N00623005EA0174501779 +B1013384543445N00622988EA0174301777 +B1013404543441N00622970EA0174001775 +B1013424543437N00622953EA0173801772 +B1013444543433N00622935EA0173601770 +B1013464543428N00622918EA0173301768 +B1013484543424N00622901EA0173101765 +B1013504543420N00622883EA0172901763 +B1013524543416N00622866EA0172701761 +B1013544543413N00622848EA0172501758 +B1013564543409N00622831EA0172301756 +B1013584543406N00622814EA0172101754 +B1014004543402N00622796EA0171901752 +B1014024543398N00622779EA0171701750 +B1014044543395N00622761EA0171501748 +B1014064543392N00622744EA0171301746 +B1014084543388N00622727EA0171001744 +B1014104543384N00622709EA0170801742 +B1014124543380N00622691EA0170601740 +B1014144543376N00622673EA0170501738 +B1014164543373N00622656EA0170201736 +B1014184543369N00622638EA0170001734 +B1014204543366N00622621EA0169801732 +B1014224543363N00622603EA0169601730 +B1014244543359N00622585EA0169401728 +B1014264543356N00622568EA0169101725 +B1014284543353N00622550EA0168901723 +B1014304543350N00622532EA0168601720 +B1014324543347N00622515EA0168501718 +B1014344543344N00622497EA0168201716 +B1014364543340N00622479EA0168001714 +B1014384543338N00622461EA0167701711 +B1014404543335N00622444EA0167501708 +B1014424543332N00622426EA0167201706 +B1014444543330N00622408EA0167001703 +B1014464543327N00622390EA0166701701 +B1014484543324N00622372EA0166501699 +B1014504543322N00622355EA0166301696 +B1014524543320N00622337EA0166001694 +B1014544543317N00622319EA0165801691 +B1014564543314N00622302EA0165601689 +B1014584543311N00622285EA0165301687 +B1015004543307N00622267EA0165201684 +B1015024543304N00622250EA0164901682 +B1015044543300N00622234EA0164701680 +B1015064543296N00622217EA0164401677 +B1015084543292N00622201EA0164101674 +B1015104543288N00622184EA0163801671 +B1015124543284N00622168EA0163601669 +B1015144543280N00622151EA0163301666 +B1015164543275N00622135EA0163001663 +B1015184543271N00622119EA0162801660 +B1015204543266N00622103EA0162401657 +B1015224543262N00622086EA0162101655 +B1015244543258N00622069EA0162301654 +B1015264543253N00622055EA0162201654 +B1015284543247N00622042EA0161901651 +B1015304543242N00622028EA0161601649 +B1015324543237N00622014EA0161501648 +B1015344543232N00622000EA0161201646 +B1015364543228N00621986EA0160701642 +B1015384543228N00621970EA0160501639 +B1015404543227N00621954EA0160201637 +B1015424543225N00621939EA0159801633 +B1015444543224N00621923EA0159501630 +B1015464543223N00621907EA0159201627 +B1015484543221N00621890EA0158901624 +B1015504543219N00621874EA0158701621 +B1015524543217N00621856EA0158501619 +B1015544543215N00621839EA0158401618 +B1015564543212N00621822EA0158201616 +B1015584543210N00621805EA0158001614 +B1016004543208N00621788EA0157801612 +B1016024543205N00621773EA0157301609 +B1016044543200N00621756EA0156901605 +B1016064543196N00621737EA0157001603 +B1016084543191N00621721EA0156901602 +B1016104543186N00621708EA0156401599 +B1016124543181N00621691EA0156001595 +B1016144543176N00621673EA0155801592 +B1016164543171N00621654EA0155801591 +B1016184543168N00621637EA0155901591 +B1016204543168N00621620EA0156001591 +B1016224543167N00621607EA0156001593 +B1016244543166N00621594EA0156301594 +B1016264543167N00621581EA0156601596 +B1016284543169N00621570EA0157001600 +B1016304543169N00621559EA0157101602 +B1016324543168N00621548EA0157201604 +B1016344543170N00621535EA0157501606 +B1016364543176N00621523EA0157701608 +B1016384543184N00621515EA0157801610 +B1016404543192N00621507EA0157801611 +B1016424543196N00621495EA0157601611 +B1016444543188N00621488EA0157601611 +B1016464543178N00621496EA0157601611 +B1016484543176N00621515EA0157901611 +B1016504543176N00621530EA0158301615 +B1016524543174N00621542EA0158501617 +B1016544543171N00621555EA0158701619 +B1016564543165N00621565EA0158801621 +B1016584543154N00621562EA0159201623 +B1017004543151N00621546EA0159301626 +B1017024543157N00621530EA0159401627 +B1017044543170N00621523EA0159501628 +B1017064543182N00621531EA0159701629 +B1017084543183N00621548EA0159801630 +B1017104543174N00621561EA0160101633 +B1017124543164N00621567EA0160401636 +B1017144543154N00621567EA0160801639 +B1017164543146N00621562EA0160901642 +B1017184543142N00621552EA0160701643 +B1017204543148N00621534EA0160501642 +B1017224543162N00621526EA0160501641 +B1017244543175N00621534EA0160701641 +B1017264543181N00621548EA0161101644 +B1017284543186N00621561EA0161401647 +B1017304543192N00621573EA0161701650 +B1017324543193N00621588EA0161801651 +B1017344543183N00621594EA0161801653 +B1017364543175N00621585EA0161901654 +B1017384543176N00621570EA0162001655 +B1017404543187N00621560EA0162501657 +B1017424543198N00621557EA0163001661 +B1017444543206N00621554EA0163201664 +B1017464543211N00621547EA0162701665 +B1017484543204N00621532EA0162401666 +B1017504543190N00621529EA0162601665 +B1017524543183N00621544EA0162701665 +B1017544543189N00621559EA0162901664 +B1017564543202N00621563EA0163301667 +B1017584543211N00621554EA0163301668 +B1018004543213N00621541EA0163401669 +B1018024543209N00621529EA0163301669 +B1018044543201N00621518EA0163301669 +B1018064543193N00621506EA0163501670 +B1018084543189N00621493EA0163401669 +B1018104543186N00621478EA0163101668 +B1018124543181N00621461EA0163001666 +B1018144543176N00621444EA0163101666 +B1018164543171N00621429EA0163201667 +B1018184543165N00621414EA0163201667 +B1018204543159N00621399EA0163201667 +B1018224543153N00621385EA0163201667 +B1018244543147N00621374EA0162901666 +B1018264543141N00621362EA0162401663 +B1018284543135N00621347EA0162201660 +B1018304543129N00621331EA0162101658 +B1018324543126N00621316EA0161801656 +B1018344543121N00621303EA0161401653 +B1018364543114N00621288EA0161101650 +B1018384543108N00621273EA0160901648 +B1018404543102N00621260EA0160701645 +B1018424543096N00621246EA0160301641 +B1018444543090N00621232EA0160201639 +B1018464543085N00621218EA0159901636 +B1018484543080N00621203EA0159601633 +B1018504543075N00621187EA0159401631 +B1018524543069N00621173EA0159301629 +B1018544543063N00621160EA0159001627 +B1018564543057N00621147EA0158601623 +B1018584543051N00621133EA0158301619 +B1019004543044N00621118EA0158101617 +B1019024543038N00621103EA0157901615 +B1019044543034N00621089EA0157401611 +B1019064543028N00621073EA0156901607 +B1019084543020N00621054EA0157301605 +B1019104543015N00621037EA0158001605 +B1019124543012N00621024EA0158401608 +B1019144543007N00621011EA0158701612 +B1019164543002N00620998EA0159401617 +B1019184542996N00620985EA0159901623 +B1019204542988N00620978EA0159901626 +B1019224542977N00620986EA0159701628 +B1019244542976N00621006EA0159801630 +B1019264542988N00621013EA0160101632 +B1019284543000N00621003EA0160401635 +B1019304543006N00620985EA0161101639 +B1019324543008N00620968EA0161701647 +B1019344543008N00620956EA0161801650 +B1019364543003N00620947EA0161601652 +B1019384542992N00620942EA0161301652 +B1019404542982N00620954EA0160901651 +B1019424542983N00620972EA0160701647 +B1019444542996N00620978EA0160501644 +B1019464543006N00620966EA0160501641 +B1019484543006N00620948EA0160501641 +B1019504542999N00620932EA0160601640 +B1019524542990N00620921EA0160801641 +B1019544542982N00620912EA0160601642 +B1019564542975N00620905EA0160001640 +B1019584542965N00620899EA0159501636 +B1020004542955N00620889EA0159101632 +B1020024542946N00620878EA0158801627 +B1020044542935N00620867EA0158901624 +B1020064542924N00620859EA0159101623 +B1020084542916N00620852EA0159101622 +B1020104542906N00620848EA0158601619 +B1020124542895N00620842EA0158501617 +B1020144542886N00620834EA0158401616 +B1020164542878N00620827EA0158201615 +B1020184542870N00620820EA0157901612 +B1020204542861N00620811EA0157801610 +B1020224542853N00620801EA0157801609 +B1020244542844N00620791EA0157901610 +B1020264542836N00620783EA0158101611 +B1020284542827N00620775EA0158301613 +B1020304542819N00620765EA0158601616 +B1020324542811N00620755EA0158901618 +B1020344542802N00620746EA0159401622 +B1020364542794N00620738EA0160001627 +B1020384542787N00620729EA0160201631 +B1020404542778N00620727EA0159901634 +B1020424542771N00620739EA0159501636 +B1020444542778N00620754EA0159201636 +B1020464542795N00620753EA0159701637 +B1020484542807N00620749EA0160201640 +B1020504542816N00620749EA0160401641 +B1020524542827N00620749EA0160901645 +B1020544542838N00620749EA0161401649 +B1020564542845N00620758EA0161201652 +B1020584542843N00620773EA0161001652 +B1021004542831N00620776EA0161301653 +B1021024542822N00620766EA0161801655 +B1021044542818N00620754EA0162201659 +B1021064542813N00620744EA0162101661 +B1021084542804N00620733EA0162401663 +B1021104542795N00620720EA0163001667 +B1021124542788N00620711EA0163201670 +B1021144542781N00620703EA0163201671 +B1021164542771N00620694EA0163401673 +B1021184542763N00620682EA0163901676 +B1021204542758N00620669EA0164001679 +B1021224542752N00620658EA0163801680 +B1021244542742N00620651EA0163701679 +B1021264542733N00620662EA0163901679 +B1021284542738N00620677EA0164401680 +B1021304542749N00620681EA0164901683 +B1021324542759N00620682EA0165101686 +B1021344542766N00620690EA0165101686 +B1021364542764N00620703EA0165301687 +B1021384542753N00620700EA0165201687 +B1021404542745N00620685EA0165501689 +B1021424542743N00620667EA0165901692 +B1021454542740N00620644EA0166401697 +B1021474542736N00620633EA0166501699 +B1021494542728N00620631EA0166401700 +B1021514542721N00620644EA0166501699 +B1021534542724N00620659EA0167101701 +B1021554542731N00620666EA0167601706 +B1021574542741N00620665EA0167701708 +B1021594542753N00620662EA0168101712 +B1022014542763N00620661EA0168301716 +B1022034542772N00620662EA0168401717 +B1022054542782N00620666EA0168401718 +B1022074542786N00620677EA0168301718 +B1022094542780N00620688EA0168201717 +B1022114542769N00620683EA0168501718 +B1022134542763N00620666EA0169101720 +B1022154542759N00620652EA0169401724 +B1022174542754N00620641EA0169501725 +B1022194542748N00620626EA0169701727 +B1022214542742N00620615EA0170101731 +B1022234542736N00620608EA0170101732 +B1022254542730N00620601EA0170101733 +B1022274542725N00620590EA0170401735 +B1022294542720N00620579EA0171001738 +B1022314542715N00620570EA0171301743 +B1022334542710N00620565EA0171301746 +B1022354542701N00620572EA0171101746 +B1022374542699N00620592EA0171201746 +B1022394542711N00620604EA0171701747 +B1022414542725N00620602EA0172301751 +B1022434542735N00620603EA0172601755 +B1022454542746N00620607EA0172501756 +B1022474542754N00620616EA0172401756 +B1022494542751N00620632EA0172501755 +B1022514542740N00620635EA0172801757 +B1022534542733N00620623EA0173001760 +B1022554542730N00620609EA0173201763 +B1022574542725N00620600EA0173301764 +B1022594542715N00620600EA0173401766 +B1023014542709N00620613EA0173401767 +B1023034542712N00620630EA0173601768 +B1023054542722N00620637EA0173801770 +B1023074542734N00620629EA0173801772 +B1023094542741N00620611EA0173901773 +B1023114542738N00620595EA0174201776 +B1023134542732N00620582EA0174601779 +B1023154542725N00620571EA0174901782 +B1023174542716N00620563EA0175401787 +B1023194542707N00620564EA0175401789 +B1023214542701N00620578EA0175001791 +B1023234542707N00620593EA0174901790 +B1023254542719N00620598EA0175101792 +B1023274542730N00620596EA0175301792 +B1023294542740N00620593EA0175401792 +B1023314542751N00620593EA0175601794 +B1023334542761N00620594EA0175901796 +B1023354542771N00620597EA0176101798 +B1023374542781N00620601EA0176301800 +B1023394542790N00620604EA0176501801 +B1023414542797N00620610EA0176601803 +B1023434542801N00620621EA0176701804 +B1023454542793N00620633EA0176901804 +B1023474542783N00620628EA0177101806 +B1023494542778N00620612EA0177501809 +B1023514542774N00620598EA0177901813 +B1023534542770N00620587EA0178001815 +B1023554542764N00620578EA0178301817 +B1023574542758N00620568EA0178701821 +B1023594542750N00620568EA0178901823 +B1024014542744N00620583EA0179101826 +B1024034542750N00620596EA0179401827 +B1024054542764N00620595EA0179801831 +B1024074542776N00620589EA0180201835 +B1024094542786N00620585EA0180201837 +B1024114542796N00620595EA0180101838 +B1024134542795N00620612EA0180101839 +B1024154542785N00620613EA0180001839 +B1024174542775N00620597EA0180401841 +B1024194542769N00620582EA0180901845 +B1024214542763N00620572EA0181201848 +B1024234542757N00620560EA0181601852 +B1024254542751N00620548EA0182201857 +B1024274542746N00620537EA0182801863 +B1024294542740N00620529EA0182801867 +B1024314542730N00620532EA0182601870 +B1024334542724N00620549EA0182701870 +B1024354542732N00620561EA0183201871 +B1024374542744N00620553EA0183501873 +B1024394542749N00620531EA0184201876 +B1024414542744N00620514EA0184701881 +B1024434542735N00620509EA0184601883 +B1024454542725N00620507EA0184301882 +B1024474542714N00620503EA0184001879 +B1024494542703N00620497EA0183801877 +B1024514542692N00620494EA0183501874 +B1024534542681N00620492EA0183401871 +B1024554542671N00620489EA0183601871 +B1024574542662N00620489EA0183801872 +B1024594542653N00620492EA0183801873 +B1025014542644N00620494EA0183801873 +B1025034542635N00620492EA0183801873 +B1025054542625N00620488EA0183901874 +B1025074542615N00620484EA0184201875 +B1025094542604N00620479EA0185101878 +B1025114542597N00620475EA0185801883 +B1025134542589N00620473EA0186101887 +B1025154542580N00620483EA0186501891 +B1025174542580N00620503EA0186601895 +B1025194542592N00620510EA0186401897 +B1025214542606N00620499EA0186901901 +B1025234542611N00620485EA0187501906 +B1025254542610N00620471EA0188101912 +B1025274542602N00620457EA0188601918 +B1025294542590N00620457EA0189001923 +B1025314542584N00620471EA0189401928 +B1025334542582N00620488EA0190101935 +B1025354542591N00620502EA0190301939 +B1025374542607N00620504EA0190601942 +B1025394542616N00620492EA0191201946 +B1025414542610N00620477EA0191801951 +B1025434542597N00620472EA0192601957 +B1025454542586N00620469EA0193101964 +B1025474542578N00620463EA0193301968 +B1025494542568N00620456EA0193701971 +B1025514542558N00620449EA0194301977 +B1025534542550N00620442EA0194701982 +B1025554542541N00620436EA0194901984 +B1025574542531N00620429EA0195001986 +B1025594542521N00620420EA0195201987 +B1026014542511N00620411EA0195301988 +B1026034542501N00620401EA0195401990 +B1026054542491N00620391EA0195601992 +B1026074542482N00620381EA0195701993 +B1026094542472N00620372EA0195601993 +B1026114542463N00620363EA0195401992 +B1026134542453N00620353EA0195101989 +B1026154542442N00620344EA0195001988 +B1026174542431N00620336EA0194801986 +B1026194542421N00620326EA0194701984 +B1026214542409N00620315EA0194801984 +B1026234542399N00620303EA0194701984 +B1026254542388N00620293EA0194801984 +B1026274542376N00620287EA0194901985 +B1026294542365N00620283EA0195101987 +B1026314542354N00620280EA0195201988 +B1026334542343N00620275EA0195201988 +B1026354542331N00620269EA0195301988 +B1026374542319N00620260EA0195401989 +B1026394542308N00620249EA0195501991 +B1026414542297N00620237EA0195601992 +B1026434542286N00620229EA0195601993 +B1026454542275N00620224EA0195701993 +B1026474542264N00620218EA0195401992 +B1026494542254N00620213EA0194901990 +B1026514542239N00620208EA0195201989 +B1026534542226N00620204EA0195501990 +B1026554542217N00620199EA0195601990 +B1026574542208N00620192EA0195701991 +B1026594542199N00620185EA0196001994 +B1027014542191N00620175EA0196201996 +B1027034542182N00620166EA0196501998 +B1027054542173N00620158EA0196702001 +B1027074542164N00620151EA0196702002 +B1027094542155N00620145EA0196602001 +B1027114542146N00620139EA0196602001 +B1027134542138N00620131EA0196502002 +B1027154542132N00620123EA0196202001 +B1027174542123N00620115EA0196302000 +B1027194542113N00620107EA0196502000 +B1027214542106N00620100EA0196502001 +B1027234542098N00620094EA0196201999 +B1027254542090N00620088EA0196201998 +B1027274542080N00620084EA0196001997 +B1027294542070N00620079EA0195801995 +B1027314542060N00620072EA0195501993 +B1027334542050N00620064EA0195301990 +B1027354542040N00620057EA0195101989 +B1027374542032N00620049EA0194701986 +B1027394542022N00620043EA0194201981 +B1027414542012N00620036EA0193701976 +B1027434542002N00620027EA0193301973 +B1027454541994N00620019EA0192801967 +B1027474541984N00620011EA0192301962 +B1027494541974N00620003EA0192001958 +B1027514541964N00619995EA0191601955 +B1027534541955N00619989EA0191201950 +B1027554541945N00619982EA0190801946 +B1027574541936N00619974EA0190401942 +B1027594541927N00619968EA0190101938 +B1028014541916N00619961EA0190201936 +B1028034541904N00619952EA0190901935 +B1028054541894N00619945EA0191401936 +B1028074541885N00619941EA0191601940 +B1028094541876N00619936EA0191601940 +B1028114541866N00619930EA0191601941 +B1028134541855N00619925EA0191701942 +B1028154541844N00619922EA0191601943 +B1028174541833N00619919EA0191401943 +B1028194541823N00619912EA0191101941 +B1028214541813N00619905EA0190601939 +B1028234541803N00619899EA0190201934 +B1028254541792N00619891EA0190201933 +B1028274541782N00619885EA0190301932 +B1028294541773N00619878EA0190301932 +B1028314541763N00619872EA0190201931 +B1028334541751N00619865EA0190601932 +B1028354541740N00619859EA0190901935 +B1028374541731N00619852EA0191101938 +B1028394541722N00619843EA0191401941 +B1028414541713N00619831EA0192201945 +B1028434541705N00619822EA0192901951 +B1028454541699N00619813EA0193201956 +B1028474541693N00619805EA0193401959 +B1028494541686N00619796EA0193801963 +B1028514541679N00619788EA0194301969 +B1028534541674N00619780EA0194601974 +B1028554541667N00619777EA0194601977 +B1028574541658N00619789EA0194801979 +B1028594541658N00619807EA0195001983 +B1029014541667N00619817EA0195301986 +B1029034541676N00619824EA0195701990 +B1029054541685N00619831EA0196001994 +B1029074541696N00619827EA0196301997 +B1029094541704N00619812EA0196702002 +B1029114541705N00619795EA0197102006 +B1029134541701N00619781EA0197302009 +B1029154541693N00619771EA0197702012 +B1029174541683N00619767EA0198202016 +B1029194541673N00619767EA0198802022 +B1029214541665N00619773EA0199402029 +B1029234541661N00619785EA0199702033 +B1029254541664N00619797EA0199602037 +B1029274541673N00619804EA0199602039 +B1029294541689N00619802EA0200102041 +B1029314541698N00619789EA0200602045 +B1029334541696N00619772EA0201002048 +B1029354541690N00619758EA0201702054 +B1029374541683N00619752EA0202202059 +B1029394541675N00619750EA0202602063 +B1029414541667N00619748EA0203102068 +B1029434541660N00619758EA0203402072 +B1029454541662N00619771EA0203602075 +B1029474541672N00619777EA0203802077 +B1029494541686N00619772EA0204302079 +B1029514541694N00619754EA0204902083 +B1029534541693N00619734EA0205402089 +B1029554541690N00619720EA0205702093 +B1029574541685N00619709EA0205802096 +B1029594541678N00619700EA0205802097 +B1030014541668N00619699EA0205802097 +B1030034541659N00619713EA0205602096 +B1030054541662N00619733EA0206102096 +B1030074541669N00619746EA0207002099 +B1030094541673N00619755EA0207702105 +B1030114541676N00619765EA0208002109 +B1030134541685N00619774EA0208302112 +B1030154541698N00619768EA0208702117 +B1030174541704N00619748EA0209302123 +B1030194541698N00619730EA0209902128 +B1030214541689N00619721EA0210602136 +B1030234541681N00619723EA0211002143 +B1030254541675N00619733EA0211402147 +B1030274541676N00619749EA0211502151 +B1030294541689N00619754EA0211902154 +B1030314541702N00619744EA0212502159 +B1030334541704N00619723EA0213002164 +B1030354541700N00619702EA0213602171 +B1030374541693N00619686EA0214002176 +B1030394541685N00619676EA0214202180 +B1030414541676N00619671EA0214402182 +B1030434541665N00619667EA0214702185 +B1030454541654N00619664EA0215002189 +B1030474541643N00619662EA0215302192 +B1030494541632N00619658EA0215502194 +B1030514541621N00619655EA0215702196 +B1030534541609N00619654EA0215802198 +B1030554541597N00619653EA0215902199 +B1030574541586N00619649EA0216102200 +B1030594541576N00619645EA0216002201 +B1031014541566N00619643EA0215802200 +B1031034541557N00619640EA0215402198 +B1031054541548N00619633EA0215102195 +B1031074541539N00619623EA0214902192 +B1031094541530N00619614EA0214602190 +B1031114541520N00619606EA0214302186 +B1031134541510N00619598EA0214002183 +B1031154541499N00619591EA0213902180 +B1031174541488N00619586EA0213602178 +B1031194541478N00619580EA0213302175 +B1031214541468N00619572EA0213002171 +B1031234541460N00619560EA0212602167 +B1031254541453N00619547EA0212102163 +B1031274541444N00619535EA0211802159 +B1031294541435N00619522EA0211602156 +B1031314541428N00619509EA0211202152 +B1031334541421N00619495EA0210802148 +B1031354541414N00619480EA0210402145 +B1031374541407N00619464EA0210102141 +B1031394541401N00619449EA0209702138 +B1031414541395N00619435EA0209302134 +B1031434541388N00619419EA0208802129 +B1031454541381N00619403EA0208602126 +B1031474541375N00619389EA0208402123 +B1031494541367N00619376EA0207802119 +B1031514541358N00619363EA0207302114 +B1031534541348N00619351EA0206802110 +B1031554541337N00619341EA0206302105 +B1031574541325N00619332EA0206002101 +B1031594541314N00619322EA0205602097 +B1032014541304N00619312EA0205202092 +B1032034541293N00619300EA0204902088 +B1032054541283N00619287EA0204802085 +B1032074541273N00619276EA0204802084 +B1032094541263N00619266EA0204702084 +B1032114541253N00619255EA0204702084 +B1032134541245N00619243EA0204602083 +B1032154541237N00619231EA0204402082 +B1032174541228N00619220EA0204002079 +B1032194541219N00619207EA0203602075 +B1032214541211N00619192EA0203102070 +B1032234541203N00619177EA0202602065 +B1032254541196N00619161EA0201902060 +B1032274541189N00619146EA0201302053 +B1032294541181N00619131EA0200802047 +B1032314541172N00619115EA0200502042 +B1032334541164N00619101EA0200102039 +B1032354541155N00619088EA0199702035 +B1032374541146N00619074EA0199302031 +B1032394541136N00619059EA0199202028 +B1032414541128N00619044EA0199202027 +B1032434541121N00619029EA0199002024 +B1032454541114N00619011EA0198902023 +B1032474541108N00618993EA0198902023 +B1032494541101N00618977EA0198602021 +B1032514541094N00618962EA0198302018 +B1032534541085N00618945EA0197902015 +B1032554541077N00618929EA0197502012 +B1032574541069N00618914EA0197102008 +B1032594541061N00618897EA0196602003 +B1033014541053N00618881EA0196302000 +B1033034541045N00618865EA0195901996 +B1033054541038N00618849EA0195501992 +B1033074541031N00618831EA0195301988 +B1033094541025N00618814EA0195101986 +B1033114541018N00618797EA0194901984 +B1033134541011N00618779EA0194601981 +B1033154541005N00618761EA0194501980 +B1033174541000N00618744EA0194301979 +B1033194540995N00618726EA0194101977 +B1033214540989N00618709EA0193801975 +B1033234540983N00618692EA0193601973 +B1033254540978N00618675EA0193501971 +B1033274540972N00618657EA0193301970 +B1033294540966N00618641EA0193201968 +B1033314540961N00618624EA0192901966 +B1033334540955N00618608EA0192601963 +B1033354540949N00618591EA0192401961 +B1033374540942N00618574EA0192201960 +B1033394540936N00618558EA0192001958 +B1033414540930N00618540EA0192001956 +B1033434540925N00618523EA0191901955 +B1033454540922N00618506EA0191601953 +B1033474540919N00618490EA0191401951 +B1033494540913N00618473EA0191201948 +B1033514540908N00618456EA0191001947 +B1033534540902N00618440EA0190901945 +B1033554540896N00618424EA0190601943 +B1033574540889N00618407EA0190501941 +B1033594540884N00618391EA0190301940 +B1034014540879N00618375EA0190101938 +B1034034540874N00618358EA0189801935 +B1034054540870N00618340EA0189601933 +B1034074540864N00618323EA0189501931 +B1034094540859N00618307EA0189301929 +B1034114540853N00618290EA0189101928 +B1034134540848N00618274EA0188901926 +B1034154540842N00618258EA0188601923 +B1034174540837N00618241EA0188501920 +B1034194540831N00618224EA0188301919 +B1034214540825N00618208EA0188001916 +B1034234540820N00618191EA0187701913 +B1034254540814N00618174EA0187401910 +B1034274540808N00618156EA0187201908 +B1034294540802N00618139EA0187001906 +B1034314540796N00618122EA0186601903 +B1034334540790N00618105EA0186501900 +B1034354540784N00618088EA0186101898 +B1034374540779N00618071EA0185901896 +B1034394540773N00618054EA0185701893 +B1034414540767N00618037EA0185301890 +B1034434540762N00618020EA0185001887 +B1034454540756N00618003EA0184701884 +B1034474540750N00617986EA0184401880 +B1034494540743N00617970EA0184201877 +B1034514540737N00617953EA0183901875 +B1034534540731N00617936EA0183601872 +B1034554540725N00617919EA0183301869 +B1034574540719N00617902EA0183001866 +B1034594540713N00617885EA0182701863 +B1035014540706N00617868EA0182401860 +B1035034540700N00617851EA0182101857 +B1035054540694N00617834EA0181801854 +B1035074540688N00617818EA0181601851 +B1035094540682N00617800EA0181301848 +B1035114540676N00617783EA0181001845 +B1035134540671N00617765EA0180501841 +B1035154540665N00617747EA0180201838 +B1035174540660N00617730EA0179901834 +B1035194540654N00617713EA0179401831 +B1035214540649N00617698EA0178901827 +B1035234540644N00617682EA0178301821 +B1035254540639N00617664EA0177801815 +B1035274540634N00617648EA0177501811 +B1035294540630N00617631EA0177101806 +B1035314540625N00617613EA0177101803 +B1035334540619N00617596EA0177301802 +B1035354540615N00617580EA0177501803 +B1035374540610N00617564EA0177701805 +B1035394540604N00617548EA0178101808 +B1035414540599N00617531EA0178501813 +B1035434540596N00617516EA0178601815 +B1035454540592N00617499EA0178801817 +B1035474540586N00617481EA0179201821 +B1035494540581N00617461EA0179701825 +B1035514540578N00617442EA0180301830 +B1035534540575N00617423EA0181101837 +B1035554540571N00617409EA0181801845 +B1035574540566N00617396EA0182001850 +B1035594540553N00617391EA0182101855 +B1036014540540N00617400EA0182501859 +B1036034540538N00617416EA0182801863 +B1036054540546N00617427EA0183401869 +B1036074540552N00617433EA0184001875 +B1036094540560N00617427EA0184301880 +B1036114540564N00617409EA0184701884 +B1036134540559N00617391EA0185201888 +B1036154540548N00617381EA0185701893 +B1036174540536N00617382EA0185701896 +B1036194540527N00617396EA0185601897 +B1036214540530N00617412EA0185801897 +B1036234540541N00617419EA0186201899 +B1036254540552N00617413EA0186801904 +B1036274540558N00617401EA0187201908 +B1036294540561N00617385EA0187601912 +B1036314540563N00617369EA0188001916 +B1036334540565N00617354EA0188301919 +B1036354540566N00617339EA0188501922 +B1036374540569N00617327EA0188001923 +B1036394540572N00617314EA0187301923 +B1036414540574N00617295EA0186901920 +B1036434540574N00617277EA0186601915 +B1036454540572N00617258EA0186301911 +B1036474540569N00617239EA0186101907 +B1036494540567N00617220EA0186501905 +B1036514540563N00617201EA0187001904 +B1036534540562N00617188EA0187301905 +B1036554540563N00617174EA0187501908 +B1036574540564N00617161EA0187701911 +B1036594540564N00617150EA0187601911 +B1037014540560N00617136EA0187701912 +B1037034540555N00617117EA0188501915 +B1037054540553N00617100EA0189101920 +B1037074540549N00617087EA0189501925 +B1037094540539N00617082EA0190001929 +B1037114540531N00617089EA0190401935 +B1037134540532N00617103EA0190501939 +B1037154540544N00617107EA0191001943 +B1037174540556N00617095EA0191301948 +B1037194540563N00617079EA0191701952 +B1037214540569N00617060EA0191901955 +B1037234540565N00617042EA0191701957 +B1037254540556N00617030EA0191701957 +B1037274540544N00617030EA0191801957 +B1037294540536N00617042EA0192001957 +B1037314540535N00617058EA0192401959 +B1037334540538N00617072EA0193001964 +B1037354540540N00617083EA0193601969 +B1037374540542N00617095EA0194501976 +B1037394540544N00617106EA0195201984 +B1037414540546N00617115EA0195301990 +B1037434540559N00617118EA0195101990 +B1037454540571N00617107EA0195301993 +B1037474540569N00617088EA0195501994 +B1037494540562N00617072EA0196501997 +B1037514540558N00617057EA0197302003 +B1037534540553N00617046EA0197602008 +B1037554540543N00617041EA0197702012 +B1037574540533N00617052EA0197902014 +B1037594540538N00617068EA0198602018 +B1038014540553N00617065EA0199102023 +B1038034540560N00617043EA0199802028 +B1038054540552N00617026EA0200402035 +B1038074540541N00617026EA0200602039 +B1038094540535N00617039EA0200902043 +B1038114540543N00617051EA0201302047 +B1038134540557N00617047EA0201902051 +B1038154540563N00617025EA0202502056 +B1038174540557N00617006EA0203102062 +B1038194540547N00617004EA0203302066 +B1038214540541N00617016EA0203502069 +B1038234540547N00617030EA0203902072 +B1038254540561N00617025EA0204602077 +B1038274540571N00617011EA0205402083 +B1038294540579N00616999EA0206002090 +B1038314540582N00616984EA0206102095 +B1038334540576N00616968EA0206002099 +B1038354540564N00616969EA0206002102 +B1038374540557N00616983EA0206202102 +B1038394540560N00617000EA0206502104 +B1038414540570N00617009EA0207202108 +B1038434540580N00617008EA0207602113 +B1038454540588N00616997EA0207902116 +B1038474540588N00616979EA0208202119 +B1038494540579N00616968EA0208502122 +B1038514540568N00616971EA0208702125 +B1038534540565N00616988EA0209102128 +B1038554540573N00617000EA0209302130 +B1038574540586N00616997EA0209602133 +B1038594540595N00616984EA0210002136 +B1039014540596N00616966EA0210402141 +B1039034540590N00616953EA0210702144 +B1039054540581N00616948EA0211102148 +B1039074540572N00616956EA0211402150 +B1039094540568N00616971EA0211702153 +B1039114540575N00616980EA0212002156 +B1039134540588N00616975EA0212202159 +B1039154540594N00616955EA0212502162 +B1039174540592N00616937EA0212802166 +B1039194540587N00616923EA0213102170 +B1039214540579N00616911EA0213302172 +B1039234540570N00616900EA0213502174 +B1039254540560N00616890EA0213602176 +B1039274540552N00616881EA0213502176 +B1039294540541N00616872EA0213502176 +B1039314540532N00616863EA0213602176 +B1039334540524N00616853EA0213402176 +B1039354540517N00616844EA0213102174 +B1039374540508N00616833EA0212602170 +B1039394540500N00616822EA0212102165 +B1039414540489N00616812EA0211802161 +B1039434540479N00616803EA0211402157 +B1039454540469N00616793EA0210902153 +B1039474540458N00616785EA0210502148 +B1039494540446N00616778EA0210202144 +B1039514540435N00616770EA0210002141 +B1039534540425N00616762EA0209602138 +B1039554540414N00616751EA0209202133 +B1039574540402N00616739EA0209002130 +B1039594540390N00616731EA0208802128 +B1040014540379N00616723EA0208302124 +B1040034540368N00616712EA0207802119 +B1040054540356N00616699EA0207502116 +B1040074540346N00616686EA0207102112 +B1040094540338N00616672EA0206602108 +B1040114540329N00616659EA0206202103 +B1040134540318N00616647EA0205802099 +B1040154540307N00616636EA0205602096 +B1040174540296N00616626EA0205302093 +B1040194540286N00616616EA0205002090 +B1040214540275N00616606EA0204502085 +B1040234540264N00616594EA0204202082 +B1040254540254N00616583EA0203902079 +B1040274540245N00616571EA0203502075 +B1040294540235N00616560EA0203102071 +B1040314540224N00616549EA0202702067 +B1040334540215N00616537EA0202402063 +B1040354540205N00616525EA0202002059 +B1040374540195N00616514EA0201702056 +B1040394540185N00616503EA0201402052 +B1040414540175N00616493EA0201102049 +B1040434540165N00616483EA0200702046 +B1040454540155N00616474EA0200402043 +B1040474540145N00616464EA0200002039 +B1040494540135N00616452EA0199702036 +B1040514540126N00616440EA0199502033 +B1040534540116N00616428EA0199202030 +B1040554540106N00616417EA0198902027 +B1040574540096N00616405EA0198602024 +B1040594540086N00616395EA0198402022 +B1041014540076N00616384EA0198002019 +B1041034540065N00616373EA0197702015 +B1041054540055N00616363EA0197402012 +B1041074540044N00616352EA0197002009 +B1041094540034N00616342EA0196602006 +B1041114540023N00616332EA0196402002 +B1041134540012N00616323EA0196102000 +B1041154540002N00616313EA0195701996 +B1041174539992N00616302EA0195401992 +B1041194539982N00616290EA0195101989 +B1041214539972N00616279EA0194901987 +B1041234539962N00616268EA0194601983 +B1041254539952N00616258EA0194301980 +B1041274539942N00616248EA0194001977 +B1041294539932N00616237EA0193801975 +B1041314539922N00616226EA0193501972 +B1041334539911N00616216EA0193201969 +B1041354539901N00616206EA0192901966 +B1041374539890N00616197EA0192601963 +B1041394539880N00616187EA0192301960 +B1041414539869N00616178EA0192001957 +B1041434539859N00616168EA0191801954 +B1041454539849N00616158EA0191501952 +B1041474539839N00616149EA0191101948 +B1041494539828N00616140EA0190901946 +B1041514539818N00616131EA0190501943 +B1041534539807N00616123EA0190201940 +B1041554539797N00616115EA0189901937 +B1041574539786N00616107EA0189601934 +B1041594539776N00616098EA0189401931 +B1042014539765N00616090EA0189101928 +B1042034539755N00616082EA0188801925 +B1042054539744N00616073EA0188501922 +B1042074539734N00616065EA0188201919 +B1042094539723N00616057EA0187901917 +B1042114539712N00616049EA0187701914 +B1042134539701N00616042EA0187401911 +B1042154539691N00616035EA0187101908 +B1042174539680N00616027EA0186901906 +B1042194539669N00616019EA0186601903 +B1042214539658N00616012EA0186401900 +B1042234539648N00616004EA0186101898 +B1042254539636N00615998EA0185701894 +B1042274539625N00615991EA0185401892 +B1042294539615N00615983EA0185201889 +B1042314539604N00615975EA0184901885 +B1042334539593N00615967EA0184601882 +B1042354539583N00615959EA0184401880 +B1042374539572N00615952EA0184301879 +B1042394539562N00615945EA0183901876 +B1042414539551N00615939EA0183601873 +B1042434539539N00615931EA0183401870 +B1042454539527N00615923EA0183301869 +B1042474539516N00615917EA0183301869 +B1042494539505N00615910EA0183301868 +B1042514539494N00615903EA0183401869 +B1042534539483N00615896EA0183501870 +B1042554539473N00615890EA0183601871 +B1042574539461N00615884EA0183701872 +B1042594539450N00615879EA0183701873 +B1043014539439N00615874EA0183801873 +B1043034539429N00615870EA0183501872 +B1043054539418N00615868EA0183201870 +B1043074539405N00615863EA0183101868 +B1043094539394N00615859EA0183201867 +B1043114539385N00615857EA0183601869 +B1043134539377N00615854EA0184101873 +B1043154539369N00615851EA0184401877 +B1043174539363N00615852EA0184301879 +B1043194539356N00615857EA0184301879 +B1043214539346N00615860EA0184401880 +B1043234539335N00615859EA0184601882 +B1043254539326N00615860EA0184801884 +B1043274539317N00615860EA0184901886 +B1043294539308N00615859EA0185001887 +B1043314539299N00615858EA0185001888 +B1043334539289N00615861EA0185001888 +B1043354539279N00615862EA0184901888 +B1043374539267N00615863EA0184801887 +B1043394539256N00615864EA0184801886 +B1043414539244N00615863EA0184801886 +B1043434539234N00615860EA0184701886 +B1043454539225N00615858EA0184401885 +B1043474539213N00615855EA0184201882 +B1043494539202N00615850EA0184101881 +B1043514539191N00615847EA0183601878 +B1043534539181N00615845EA0183301874 +B1043554539170N00615842EA0183201873 +B1043574539161N00615841EA0182901870 +B1043594539153N00615840EA0182501867 +B1044014539143N00615838EA0182201862 +B1044034539132N00615837EA0182001859 +B1044054539121N00615837EA0181901857 +B1044074539110N00615835EA0182101857 +B1044094539100N00615831EA0182401858 +B1044114539091N00615827EA0182701861 +B1044134539081N00615824EA0183001863 +B1044154539072N00615819EA0183301866 +B1044174539062N00615814EA0183501869 +B1044194539052N00615810EA0183501870 +B1044214539042N00615807EA0183601872 +B1044234539032N00615802EA0183601872 +B1044254539023N00615796EA0183401871 +B1044274539011N00615788EA0183401871 +B1044294539000N00615781EA0183501871 +B1044314538990N00615777EA0183401871 +B1044334538980N00615772EA0183101869 +B1044354538970N00615766EA0182701866 +B1044374538961N00615757EA0182501863 +B1044394538952N00615747EA0182701861 +B1044414538947N00615736EA0183001861 +B1044434538941N00615725EA0183101863 +B1044454538933N00615714EA0183401865 +B1044474538927N00615703EA0183801869 +B1044494538921N00615692EA0183901870 +B1044514538913N00615680EA0183801870 +B1044534538906N00615672EA0183801871 +B1044554538898N00615668EA0183701871 +B1044574538890N00615663EA0183301870 +B1044594538882N00615654EA0183001867 +B1045014538872N00615645EA0182801865 +B1045034538863N00615636EA0182601863 +B1045054538854N00615627EA0182301860 +B1045074538845N00615616EA0182001857 +B1045094538836N00615606EA0181801855 +B1045114538827N00615597EA0181601853 +B1045134538818N00615588EA0181101849 +B1045154538808N00615578EA0180701845 +B1045174538797N00615569EA0180201841 +B1045194538787N00615560EA0179701836 +B1045214538776N00615551EA0179201830 +B1045234538766N00615541EA0178701826 +B1045254538755N00615533EA0178401822 +B1045274538744N00615526EA0178101818 +B1045294538732N00615519EA0177801815 +B1045314538721N00615511EA0177701813 +B1045334538710N00615505EA0177401811 +B1045354538699N00615499EA0177101808 +B1045374538688N00615492EA0176901805 +B1045394538676N00615487EA0176701803 +B1045414538665N00615481EA0176401800 +B1045434538653N00615474EA0176101797 +B1045454538642N00615469EA0175801794 +B1045474538630N00615465EA0175401791 +B1045494538617N00615461EA0175101787 +B1045514538606N00615456EA0174901785 +B1045534538594N00615451EA0174601782 +B1045554538582N00615445EA0174401780 +B1045574538571N00615439EA0174201778 +B1045594538560N00615431EA0174001776 +B1046014538548N00615426EA0173901774 +B1046034538536N00615421EA0173901774 +B1046054538525N00615414EA0173801773 +B1046074538513N00615409EA0173501771 +B1046094538500N00615405EA0173401769 +B1046114538488N00615400EA0173301768 +B1046134538476N00615397EA0173101767 +B1046154538464N00615393EA0173001765 +B1046174538452N00615389EA0173001765 +B1046194538440N00615386EA0172801763 +B1046214538428N00615383EA0172701762 +B1046234538417N00615380EA0172601761 +B1046254538405N00615376EA0172401760 +B1046274538393N00615374EA0172301758 +B1046294538381N00615374EA0172101757 +B1046314538369N00615373EA0171801754 +B1046334538356N00615370EA0171601752 +B1046354538344N00615367EA0171601751 +B1046374538333N00615366EA0171401749 +B1046394538321N00615365EA0171201747 +B1046414538308N00615366EA0171201745 +B1046434538295N00615365EA0171501745 +B1046454538284N00615364EA0171701746 +B1046474538273N00615362EA0172001749 +B1046494538261N00615358EA0172501753 +B1046514538250N00615354EA0173101758 +B1046534538241N00615351EA0173401763 +B1046554538236N00615360EA0173401766 +B1046574538237N00615373EA0173401769 +B1046594538248N00615376EA0173701771 +B1047014538257N00615367EA0174301774 +B1047034538264N00615352EA0174801778 +B1047054538270N00615339EA0175101783 +B1047074538279N00615333EA0175201785 +B1047094538286N00615340EA0175201786 +B1047114538281N00615351EA0175201787 +B1047134538268N00615352EA0175501788 +B1047154538257N00615343EA0176101792 +B1047174538248N00615334EA0176601798 +B1047194538242N00615322EA0176801801 +B1047214538237N00615304EA0177201804 +B1047234538230N00615290EA0177401808 +B1047254538221N00615293EA0177501809 +B1047274538218N00615306EA0177701811 +B1047294538224N00615315EA0178201815 +B1047314538234N00615309EA0178501819 +B1047334538240N00615293EA0178701821 +B1047354538238N00615272EA0179001824 +B1047374538228N00615260EA0179001827 +B1047394538215N00615267EA0179201828 +B1047414538214N00615282EA0179401830 +B1047434538224N00615290EA0179801832 +B1047454538234N00615287EA0180201837 +B1047474538242N00615280EA0180601840 +B1047494538250N00615273EA0180801844 +B1047514538257N00615268EA0180801846 +B1047534538266N00615266EA0180801846 +B1047554538274N00615274EA0180801846 +B1047574538273N00615288EA0181001846 +B1047594538265N00615298EA0181301848 +B1048014538254N00615301EA0181601851 +B1048034538243N00615302EA0182201855 +B1048054538233N00615301EA0182601859 +B1048074538224N00615302EA0182601863 +B1048094538214N00615303EA0182401864 +B1048114538204N00615301EA0182301863 +B1048134538194N00615298EA0182201862 +B1048154538185N00615294EA0182201861 +B1048174538177N00615290EA0182301861 +B1048194538168N00615285EA0182501862 +B1048214538158N00615281EA0182801864 +B1048234538148N00615278EA0183001866 +B1048254538137N00615274EA0183101867 +B1048274538125N00615271EA0182901867 +B1048294538113N00615267EA0182701866 +B1048314538102N00615262EA0182601864 +B1048334538092N00615257EA0182701864 +B1048354538082N00615251EA0182901865 +B1048374538072N00615246EA0183201867 +B1048394538061N00615240EA0183601870 +B1048414538051N00615234EA0183901874 +B1048434538041N00615232EA0183701875 +B1048454538030N00615233EA0183201875 +B1048474538017N00615234EA0182901872 +B1048494538005N00615235EA0182801870 +B1048514537995N00615237EA0182501867 +B1048534537984N00615238EA0182101863 +B1048554537972N00615238EA0181801860 +B1048574537961N00615238EA0181601857 +B1048594537951N00615239EA0181401854 +B1049014537938N00615240EA0181401852 +B1049034537925N00615241EA0181401851 +B1049054537915N00615245EA0181301850 +B1049074537903N00615248EA0181301849 +B1049094537892N00615251EA0181401849 +B1049114537881N00615253EA0181701851 +B1049134537872N00615252EA0182401854 +B1049154537865N00615251EA0182901859 +B1049174537857N00615252EA0183201863 +B1049194537848N00615254EA0183401866 +B1049214537839N00615248EA0183601868 +B1049234537830N00615239EA0183901871 +B1049254537821N00615229EA0184001873 +B1049274537813N00615218EA0184201874 +B1049294537805N00615205EA0184301876 +B1049314537799N00615193EA0184101876 +B1049334537792N00615184EA0183601876 +B1049354537783N00615177EA0183201873 +B1049374537771N00615171EA0183101871 +B1049394537760N00615165EA0183101870 +B1049414537751N00615159EA0182801868 +B1049434537742N00615155EA0182801865 +B1049454537732N00615149EA0183301864 +B1049474537725N00615142EA0183401864 +B1049494537717N00615134EA0183201864 +B1049514537707N00615129EA0183301863 +B1049534537697N00615130EA0183901865 +B1049554537688N00615130EA0184601872 +B1049574537680N00615129EA0185101878 +B1049594537672N00615129EA0185701884 +B1050014537665N00615136EA0186001889 +B1050034537663N00615153EA0186401894 +B1050054537673N00615163EA0186401897 +B1050074537685N00615154EA0186301899 +B1050094537690N00615138EA0186401899 +B1050114537686N00615123EA0186601901 +B1050134537678N00615113EA0187101904 +B1050154537670N00615110EA0187801909 +B1050174537662N00615108EA0188101914 +B1050194537653N00615108EA0188201917 +B1050214537644N00615118EA0188301918 +B1050234537643N00615135EA0188601920 +B1050254537653N00615142EA0188901922 +B1050274537663N00615131EA0188901925 +B1050294537666N00615110EA0189201927 +B1050314537661N00615091EA0190001930 +B1050334537654N00615084EA0190601936 +B1050354537646N00615081EA0190901942 +B1050374537637N00615083EA0191101945 +B1050394537631N00615097EA0191101946 +B1050414537634N00615117EA0191301947 +B1050434537647N00615118EA0191701950 +B1050454537654N00615101EA0191901952 +B1050474537652N00615080EA0192501955 +B1050494537647N00615064EA0193101962 +B1050514537643N00615054EA0193601968 +B1050534537636N00615046EA0193801972 +B1050554537625N00615048EA0193601974 +B1050574537618N00615063EA0193401974 +B1050594537623N00615078EA0193301973 +B1051014537636N00615080EA0193501973 +B1051034537645N00615070EA0193901976 +B1051054537650N00615056EA0194201979 +B1051074537652N00615040EA0194701982 +B1051094537651N00615024EA0195201987 +B1051114537651N00615009EA0195201990 +B1051134537648N00614996EA0194901992 +B1051154537641N00614983EA0194701991 +B1051174537634N00614968EA0194501989 +B1051194537628N00614953EA0194101986 +B1051214537621N00614937EA0193501982 +B1051234537614N00614919EA0193201978 +B1051254537608N00614902EA0193001975 +B1051274537601N00614887EA0192601971 +B1051294537595N00614871EA0192301967 +B1051314537588N00614857EA0192701964 +B1051334537580N00614846EA0193101968 +B1051354537575N00614835EA0193001969 +B1051374537569N00614821EA0192701968 +B1051394537562N00614803EA0193001969 +B1051414537558N00614786EA0193401972 +B1051434537556N00614772EA0193601974 +B1051454537551N00614759EA0193501975 +B1051474537545N00614745EA0193801976 +B1051494537540N00614732EA0194001978 +B1051514537534N00614720EA0194201980 +B1051534537528N00614709EA0194401982 +B1051554537523N00614697EA0194401984 +B1051574537517N00614687EA0194201983 +B1051594537510N00614677EA0193701982 +B1052014537502N00614664EA0193501979 +B1052034537494N00614650EA0193401978 +B1052054537486N00614638EA0192901975 +B1052074537477N00614626EA0192601970 +B1052094537468N00614612EA0192401968 +B1052114537461N00614598EA0192401966 +B1052134537456N00614584EA0192301965 +B1052154537451N00614570EA0192201963 +B1052174537446N00614558EA0192501962 +B1052194537438N00614548EA0192901963 +B1052214537431N00614538EA0193301967 +B1052234537427N00614528EA0193401968 +B1052254537421N00614519EA0193401968 +B1052274537416N00614510EA0193501969 +B1052294537410N00614500EA0193801971 +B1052314537403N00614489EA0194401974 +B1052334537397N00614479EA0195101979 +B1052354537391N00614471EA0195501984 +B1052374537383N00614466EA0195601987 +B1052394537374N00614474EA0195701990 +B1052414537372N00614487EA0195901992 +B1052434537376N00614498EA0196101994 +B1052454537387N00614505EA0196501996 +B1052474537403N00614500EA0197302001 +B1052494537413N00614490EA0198202007 +B1052514537417N00614478EA0198602014 +B1052534537414N00614463EA0198802018 +B1052554537402N00614457EA0199002023 +B1052574537394N00614465EA0199202026 +B1052594537392N00614480EA0199502029 +B1053014537392N00614492EA0200102035 +B1053034537390N00614500EA0200302039 +B1053054537392N00614512EA0200102042 +B1053074537404N00614524EA0200302044 +B1053094537418N00614523EA0200602047 +B1053114537428N00614513EA0200902049 +B1053134537436N00614500EA0201302052 +B1053154537440N00614484EA0201702055 +B1053174537439N00614470EA0202202060 +B1053194537433N00614460EA0202602063 +B1053214537425N00614453EA0203102069 +B1053234537418N00614448EA0203302073 +B1053254537411N00614452EA0203102075 +B1053274537408N00614467EA0203102074 +B1053294537416N00614479EA0203302074 +B1053314537427N00614485EA0203702077 +B1053334537440N00614480EA0203902079 +B1053354537450N00614464EA0204102080 +B1053374537452N00614446EA0204702083 +B1053394537449N00614432EA0205202088 +B1053414537442N00614421EA0205502092 +B1053434537434N00614417EA0205702095 +B1053454537427N00614426EA0205502096 +B1053474537427N00614442EA0205502096 +B1053494537436N00614451EA0205702096 +B1053514537450N00614454EA0206302098 +B1053534537461N00614449EA0206602102 +B1053554537469N00614435EA0207002105 +B1053574537471N00614416EA0207302108 +B1053594537463N00614402EA0207602111 +B1054014537456N00614392EA0208102117 +B1054034537456N00614376EA0208002120 +B1054054537462N00614358EA0208102121 +B1054074537474N00614345EA0208402123 +B1054094537487N00614343EA0208902126 +B1054114537497N00614348EA0209602131 +B1054134537503N00614358EA0210002135 +B1054154537507N00614369EA0210302139 +B1054174537509N00614379EA0210502143 +B1054194537506N00614388EA0210402145 +B1054214537494N00614394EA0210602146 +B1054234537485N00614387EA0211002148 +B1054254537478N00614379EA0211002150 +B1054274537471N00614373EA0211102149 +B1054294537464N00614366EA0211102150 +B1054314537456N00614357EA0211102150 +B1054334537449N00614350EA0211002149 +B1054354537439N00614342EA0210802147 +B1054374537430N00614332EA0210702146 +B1054394537421N00614321EA0210702146 +B1054414537413N00614311EA0210602145 +B1054434537406N00614298EA0210502143 +B1054454537399N00614286EA0210402142 +B1054474537390N00614278EA0210102140 +B1054494537382N00614269EA0209802137 +B1054514537372N00614259EA0209702135 +B1054534537362N00614248EA0209802134 +B1054554537353N00614238EA0209602133 +B1054574537345N00614230EA0209102131 +B1054594537336N00614219EA0208602127 +B1055014537326N00614207EA0208202123 +B1055034537317N00614195EA0207902119 +B1055054537307N00614183EA0207502115 +B1055074537296N00614172EA0207202112 +B1055094537286N00614161EA0206902109 +B1055114537275N00614152EA0206502106 +B1055134537264N00614143EA0206202102 +B1055154537253N00614132EA0206002099 +B1055174537242N00614121EA0205702097 +B1055194537232N00614111EA0205402093 +B1055214537222N00614100EA0205202091 +B1055234537212N00614088EA0205102089 +B1055254537204N00614076EA0204902088 +B1055274537195N00614063EA0204802086 +B1055294537185N00614049EA0204702085 +B1055314537176N00614038EA0204602084 +B1055334537166N00614027EA0204502083 +B1055354537156N00614016EA0204302081 +B1055374537146N00614004EA0204402081 +B1055394537135N00613992EA0204602082 +B1055414537127N00613982EA0204602083 +B1055434537118N00613972EA0204402082 +B1055454537108N00613962EA0204102080 +B1055474537098N00613951EA0203802077 +B1055494537088N00613940EA0203502074 +B1055514537076N00613930EA0203202071 +B1055534537066N00613922EA0203002069 +B1055554537055N00613914EA0202702066 +B1055574537046N00613904EA0202402063 +B1055594537036N00613893EA0202502062 +B1056014537028N00613882EA0203202062 +B1056034537020N00613871EA0203802064 +B1056054537013N00613860EA0204302069 +B1056074537008N00613851EA0204502073 +B1056094537001N00613843EA0204402074 +B1056114536992N00613834EA0204402075 +B1056134536985N00613823EA0204402076 +B1056154536978N00613809EA0204302076 +B1056174536970N00613796EA0204302076 +B1056194536963N00613783EA0204402077 +B1056214536957N00613770EA0204402077 +B1056234536952N00613757EA0204302077 +B1056254536946N00613743EA0204402078 +B1056274536940N00613728EA0204602079 +B1056294536934N00613715EA0204702081 +B1056314536928N00613704EA0204602081 +B1056334536921N00613693EA0204202080 +B1056354536915N00613679EA0204102078 +B1056374536910N00613666EA0204202078 +B1056394536905N00613654EA0204202078 +B1056414536899N00613644EA0204002076 +B1056434536892N00613633EA0204102076 +B1056454536884N00613624EA0204302077 +B1056474536876N00613615EA0204602079 +B1056494536869N00613606EA0205002083 +B1056514536862N00613596EA0205302086 +B1056534536855N00613586EA0205702090 +B1056554536849N00613575EA0205902093 +B1056574536842N00613563EA0206102095 +B1056594536835N00613551EA0206402097 +B1057014536829N00613541EA0206602101 +B1057034536823N00613533EA0206602103 +B1057054536815N00613522EA0206202103 +B1057074536807N00613511EA0206002101 +B1057094536799N00613499EA0205702098 +B1057114536791N00613486EA0205402095 +B1057134536783N00613473EA0205202093 +B1057154536775N00613460EA0204902090 +B1057174536768N00613447EA0204502086 +B1057194536760N00613432EA0204202082 +B1057214536753N00613416EA0204202080 +B1057234536747N00613401EA0204102080 +B1057254536740N00613387EA0204102079 +B1057274536732N00613374EA0204202079 +B1057294536725N00613361EA0204302080 +B1057314536719N00613345EA0204702082 +B1057334536715N00613329EA0205202086 +B1057354536710N00613316EA0205302088 +B1057374536704N00613302EA0205102090 +B1057394536698N00613287EA0204702089 +B1057414536692N00613275EA0204602087 +B1057434536685N00613265EA0204402085 +B1057454536679N00613253EA0204002082 +B1057474536672N00613239EA0203902079 +B1057494536666N00613224EA0203902077 +B1057514536661N00613208EA0203902077 +B1057534536654N00613192EA0204202078 +B1057554536647N00613175EA0204802080 +B1057574536641N00613160EA0205502085 +B1057594536633N00613147EA0206302091 +B1058014536623N00613141EA0207002098 +B1058034536613N00613151EA0207402104 +B1058054536610N00613168EA0207202108 +B1058074536620N00613179EA0206602110 +B1058094536634N00613172EA0206502112 +B1058114536641N00613150EA0206802113 +B1058134536640N00613124EA0207702117 +B1058154536639N00613105EA0208802125 +B1058174536637N00613091EA0209502132 +B1058194536632N00613081EA0209902137 +B1058214536621N00613084EA0210402141 +B1058234536615N00613101EA0211202147 +B1058254536617N00613111EA0212002155 +B1058274536627N00613112EA0212502160 +B1058294536637N00613103EA0213102167 +B1058314536639N00613085EA0213602172 +B1058334536631N00613070EA0214502179 +B1058354536622N00613070EA0215102186 +B1058374536614N00613077EA0215802193 +B1058394536609N00613087EA0216302200 +B1058414536608N00613099EA0216602204 +B1058434536613N00613114EA0216502208 +B1058454536624N00613122EA0216602209 +B1058474536638N00613118EA0216602209 +B1058494536648N00613102EA0216802209 +B1058514536653N00613079EA0217302213 +B1058534536657N00613059EA0217902217 +B1058554536659N00613041EA0218402221 +B1058574536661N00613020EA0219302227 +B1058594536661N00613004EA0220102234 +B1059014536659N00612994EA0220402239 +B1059034536654N00612984EA0220802243 +B1059054536645N00612978EA0221202248 +B1059074536635N00612986EA0221602252 +B1059094536632N00613001EA0222202257 +B1059114536639N00613009EA0222602262 +B1059134536652N00612995EA0223102267 +B1059154536655N00612973EA0224002273 +B1059174536648N00612958EA0224502279 +B1059194536638N00612953EA0225102286 +B1059214536628N00612953EA0225402291 +B1059234536623N00612964EA0225802295 +B1059254536627N00612976EA0226302300 +B1059274536638N00612975EA0226702304 +B1059294536647N00612957EA0227302309 +B1059314536647N00612935EA0227702313 +B1059334536641N00612917EA0228202318 +B1059354536631N00612908EA0228702323 +B1059374536622N00612908EA0229102326 +B1059394536619N00612919EA0229202330 +B1059414536630N00612927EA0229402331 +B1059434536643N00612922EA0230002336 +B1059454536650N00612906EA0230302340 +B1059474536654N00612887EA0230702343 +B1059494536655N00612869EA0230802346 +B1059514536655N00612851EA0230902348 +B1059534536652N00612833EA0231102350 +B1059554536649N00612817EA0231102351 +B1059574536645N00612804EA0230802351 +B1059594536639N00612792EA0230602350 +B1100014536635N00612777EA0230302347 +B1100034536631N00612762EA0230002344 +B1100054536626N00612747EA0229502341 +B1100074536619N00612732EA0229302338 +B1100094536614N00612718EA0228702334 +B1100114536607N00612704EA0228102328 +B1100134536600N00612689EA0227702323 +B1100154536593N00612674EA0227202318 +B1100174536587N00612659EA0226702312 +B1100194536580N00612643EA0226302307 +B1100214536575N00612625EA0226102303 +B1100234536570N00612608EA0226102301 +B1100254536563N00612595EA0226102301 +B1100274536558N00612582EA0226002299 +B1100294536551N00612569EA0226302300 +B1100314536544N00612558EA0226802301 +B1100334536538N00612550EA0227102305 +B1100354536531N00612543EA0227302307 +B1100374536522N00612535EA0227902311 +B1100394536514N00612528EA0228502316 +B1100414536506N00612521EA0228902321 +B1100434536499N00612513EA0229302326 +B1100454536491N00612507EA0229902332 +B1100474536482N00612508EA0230202336 +B1100494536476N00612520EA0230202340 +B1100514536479N00612539EA0230402343 +B1100534536491N00612543EA0230602346 +B1100554536504N00612533EA0230902349 +B1100574536512N00612518EA0231602354 +B1100594536516N00612498EA0232202360 +B1101014536516N00612481EA0232602365 +B1101034536513N00612465EA0232902368 +B1101054536504N00612455EA0232902371 +B1101074536493N00612451EA0232902372 +B1101094536483N00612448EA0232902372 +B1101114536474N00612445EA0233002372 +B1101134536466N00612438EA0233102373 +B1101154536459N00612430EA0233402375 +B1101174536453N00612422EA0233502377 +B1101194536447N00612411EA0233402377 +B1101214536442N00612397EA0233502377 +B1101234536435N00612384EA0233902379 +B1101254536429N00612372EA0234002382 +B1101274536423N00612363EA0233502382 +B1101294536415N00612352EA0233002380 +B1101314536408N00612339EA0232902378 +B1101334536401N00612326EA0232702376 +B1101354536394N00612315EA0232402372 +B1101374536387N00612303EA0232102369 +B1101394536380N00612291EA0232202367 +B1101414536373N00612278EA0232702366 +B1101434536367N00612268EA0233202368 +B1101454536360N00612260EA0233502372 +B1101474536353N00612252EA0233602373 +B1101494536345N00612241EA0233602374 +B1101514536336N00612229EA0234102376 +B1101534536329N00612217EA0234702381 +B1101554536324N00612204EA0235002386 +B1101574536319N00612191EA0235102388 +B1101594536312N00612180EA0235302390 +B1102014536305N00612169EA0235402392 +B1102034536298N00612158EA0235202392 +B1102054536289N00612146EA0234802391 +B1102074536280N00612136EA0234602388 +B1102094536271N00612124EA0234502387 +B1102114536264N00612110EA0234302385 +B1102134536256N00612094EA0234202384 +B1102154536249N00612080EA0234302384 +B1102174536242N00612067EA0234302384 +B1102194536236N00612054EA0234102383 +B1102214536228N00612042EA0233802381 +B1102234536220N00612029EA0233702379 +B1102254536211N00612015EA0233702378 +B1102274536203N00612002EA0233702378 +B1102294536196N00611989EA0233702378 +B1102314536188N00611976EA0233702378 +B1102334536181N00611963EA0233502377 +B1102354536174N00611950EA0233302374 +B1102374536166N00611935EA0233002372 +B1102394536158N00611921EA0232902370 +B1102414536149N00611907EA0232702368 +B1102434536139N00611894EA0232502367 +B1102454536129N00611882EA0232302365 +B1102474536118N00611869EA0232102363 +B1102494536108N00611855EA0232002361 +B1102514536099N00611840EA0231702359 +B1102534536090N00611824EA0231502356 +B1102554536081N00611806EA0231302354 +B1102574536073N00611790EA0231002351 +B1102594536066N00611772EA0230602348 +B1103014536058N00611754EA0230502345 +B1103034536051N00611737EA0230402344 +B1103054536045N00611720EA0230202342 +B1103074536038N00611704EA0230002340 +B1103094536030N00611686EA0229902338 +B1103114536022N00611670EA0229902338 +B1103134536014N00611654EA0229802337 +B1103154536006N00611637EA0229602335 +B1103174536000N00611619EA0229402334 +B1103194535993N00611601EA0229202332 +B1103214535986N00611582EA0228802329 +B1103234535980N00611562EA0228702326 +B1103254535974N00611541EA0228602325 +B1103274535969N00611521EA0228502324 +B1103294535964N00611501EA0228202322 +B1103314535959N00611481EA0227902319 +B1103334535952N00611460EA0227802317 +B1103354535947N00611440EA0227602315 +B1103374535941N00611421EA0227502313 +B1103394535935N00611401EA0227402312 +B1103414535929N00611382EA0227202311 +B1103434535924N00611363EA0227102310 +B1103454535918N00611344EA0227002309 +B1103474535912N00611324EA0227102308 +B1103494535905N00611305EA0227302309 +B1103514535900N00611288EA0227302310 +B1103534535894N00611272EA0227102309 +B1103554535888N00611255EA0226902308 +B1103574535882N00611238EA0226802306 +B1103594535876N00611220EA0226702305 +B1104014535870N00611202EA0226502303 +B1104034535865N00611183EA0226302302 +B1104054535860N00611165EA0226202300 +B1104074535855N00611147EA0226002298 +B1104094535851N00611129EA0225802297 +B1104114535847N00611110EA0225602295 +B1104134535842N00611093EA0225402293 +B1104154535837N00611074EA0225202291 +B1104174535832N00611056EA0224902288 +B1104194535828N00611038EA0224602285 +B1104214535824N00611020EA0224202281 +B1104234535819N00611001EA0224002278 +B1104254535815N00610982EA0223902277 +B1104274535812N00610964EA0223602275 +B1104294535809N00610947EA0223202272 +B1104314535805N00610927EA0223002269 +B1104334535802N00610909EA0222902267 +B1104354535799N00610892EA0222602265 +B1104374535794N00610874EA0222502262 +B1104394535790N00610856EA0222502261 +B1104414535787N00610840EA0222502261 +B1104434535785N00610825EA0222202260 +B1104454535781N00610810EA0221702257 +B1104474535775N00610793EA0221502254 +B1104494535769N00610775EA0221602252 +B1104514535765N00610758EA0221702253 +B1104534535762N00610743EA0221602253 +B1104554535758N00610727EA0221702253 +B1104574535756N00610711EA0221702253 +B1104594535754N00610697EA0221602253 +B1105014535750N00610680EA0221602253 +B1105034535746N00610663EA0221702253 +B1105054535741N00610648EA0221602254 +B1105074535735N00610635EA0221602253 +B1105094535729N00610620EA0221502252 +B1105114535724N00610603EA0221502252 +B1105134535718N00610588EA0221602253 +B1105154535713N00610572EA0221602253 +B1105174535707N00610554EA0221602253 +B1105194535701N00610536EA0221802254 +B1105214535694N00610518EA0222002256 +B1105234535687N00610502EA0222002257 +B1105254535680N00610485EA0222002257 +B1105274535673N00610467EA0222102258 +B1105294535667N00610450EA0222302259 +B1105314535661N00610433EA0222502261 +B1105334535654N00610416EA0222802263 +B1105354535646N00610399EA0223302267 +B1105374535638N00610385EA0223602271 +B1105394535630N00610371EA0223802273 +B1105414535622N00610358EA0223902275 +B1105434535616N00610343EA0223802275 +B1105454535611N00610327EA0223702275 +B1105474535606N00610312EA0223602274 +B1105494535601N00610295EA0223302271 +B1105514535596N00610277EA0223202269 +B1105534535591N00610259EA0223002268 +B1105554535588N00610240EA0222902266 +B1105574535585N00610221EA0222602264 +B1105594535581N00610204EA0222302262 +B1106014535577N00610187EA0222002258 +B1106034535573N00610170EA0221502254 +B1106054535568N00610153EA0221102250 +B1106074535563N00610135EA0220602245 +B1106094535559N00610117EA0220302241 +B1106114535554N00610100EA0219902237 +B1106134535550N00610082EA0219402232 +B1106154535546N00610064EA0219102228 +B1106174535543N00610046EA0218802225 +B1106194535538N00610028EA0218502222 +B1106214535533N00610011EA0218102218 +B1106234535526N00609994EA0217902215 +B1106254535519N00609978EA0217702213 +B1106274535514N00609960EA0217502211 +B1106294535507N00609943EA0217202208 +B1106314535499N00609927EA0216802205 +B1106334535493N00609907EA0216402201 +B1106354535488N00609885EA0216202198 +B1106374535483N00609863EA0216002196 +B1106394535480N00609842EA0215802194 +B1106414535477N00609821EA0215402191 +B1106434535475N00609800EA0215202188 +B1106454535472N00609780EA0214902185 +B1106474535468N00609760EA0214302181 +B1106494535464N00609739EA0214002177 +B1106514535461N00609716EA0213902174 +B1106534535457N00609695EA0213602172 +B1106554535455N00609675EA0213002169 +B1106574535455N00609653EA0212502163 +B1106594535455N00609630EA0212202160 +B1107014535457N00609608EA0211902156 +B1107034535457N00609586EA0211502153 +B1107054535456N00609563EA0211202149 +B1107074535456N00609540EA0210802146 +B1107094535457N00609517EA0210502142 +B1107114535456N00609493EA0210102139 +B1107134535456N00609469EA0210002136 +B1107154535457N00609445EA0209902135 +B1107174535457N00609423EA0209602133 +B1107194535459N00609400EA0209202129 +B1107214535462N00609376EA0208902126 +B1107234535465N00609352EA0208802124 +B1107254535468N00609330EA0208602122 +B1107274535471N00609308EA0208402119 +B1107294535474N00609285EA0208202117 +B1107314535477N00609261EA0208102116 +B1107334535478N00609238EA0207902115 +B1107354535479N00609216EA0207702113 +B1107374535480N00609193EA0207402110 +B1107394535479N00609170EA0207202108 +B1107414535479N00609148EA0207102107 +B1107434535477N00609126EA0206802105 +B1107454535475N00609104EA0206602102 +B1107474535475N00609081EA0206402100 +B1107494535477N00609061EA0206302098 +B1107514535477N00609043EA0205802095 +B1107534535477N00609023EA0205302091 +B1107554535474N00609002EA0205002087 +B1107574535472N00608982EA0204802085 +B1107594535470N00608963EA0204502082 +B1108014535468N00608942EA0204302079 +B1108034535465N00608922EA0204002076 +B1108054535463N00608902EA0203702073 +B1108074535463N00608881EA0203502071 +B1108094535461N00608861EA0203302069 +B1108114535458N00608842EA0203102067 +B1108134535457N00608823EA0202902064 +B1108154535455N00608803EA0202702062 +B1108174535453N00608783EA0202402060 +B1108194535451N00608764EA0202102058 +B1108214535449N00608744EA0201902055 +B1108234535447N00608724EA0201702053 +B1108254535445N00608705EA0201502051 +B1108274535444N00608686EA0201202048 +B1108294535442N00608665EA0200902045 +B1108314535440N00608644EA0200802044 +B1108334535438N00608626EA0200602042 +B1108354535437N00608606EA0200302039 +B1108374535436N00608585EA0200202037 +B1108394535435N00608565EA0200102035 +B1108414535434N00608546EA0199902034 +B1108434535433N00608527EA0199602031 +B1108454535433N00608507EA0199502030 +B1108474535433N00608488EA0199402028 +B1108494535433N00608469EA0199202026 +B1108514535434N00608450EA0199002025 +B1108534535434N00608431EA0198802024 +B1108554535432N00608412EA0198602022 +B1108574535429N00608393EA0198402020 +B1108594535427N00608374EA0198202018 +B1109014535424N00608356EA0197902015 +B1109034535419N00608338EA0197602012 +B1109054535413N00608320EA0197302009 +B1109074535406N00608303EA0197102006 +B1109094535401N00608284EA0196702002 +B1109114535395N00608265EA0196502000 +B1109134535389N00608247EA0196301998 +B1109154535383N00608230EA0195801994 +B1109174535378N00608211EA0195401990 +B1109194535372N00608190EA0195201987 +B1109214535367N00608170EA0195101984 +B1109234535364N00608150EA0194801982 +B1109254535360N00608129EA0194601979 +B1109274535355N00608107EA0194401978 +B1109294535351N00608088EA0194401977 +B1109314535347N00608068EA0194101975 +B1109334535345N00608048EA0194001973 +B1109354535345N00608027EA0193801972 +B1109374535346N00608007EA0193601970 +B1109394535348N00607987EA0193201967 +B1109414535349N00607966EA0192901963 +B1109434535352N00607945EA0192601961 +B1109454535354N00607925EA0192501959 +B1109474535356N00607906EA0192301957 +B1109494535357N00607886EA0192101955 +B1109514535358N00607867EA0191801952 +B1109534535359N00607847EA0191401949 +B1109554535361N00607827EA0191101945 +B1109574535362N00607807EA0190701941 +B1109594535362N00607787EA0190301938 +B1110014535364N00607767EA0190001934 +B1110034535364N00607748EA0189701932 +B1110054535365N00607728EA0189501929 +B1110074535365N00607709EA0189201926 +B1110094535365N00607689EA0189001924 +B1110114535364N00607669EA0188901922 +B1110134535365N00607651EA0188601920 +B1110154535366N00607633EA0188201916 +B1110174535367N00607614EA0188001914 +B1110194535368N00607595EA0187801912 +B1110214535369N00607578EA0187401909 +B1110234535370N00607559EA0187101905 +B1110254535372N00607539EA0186901902 +B1110274535372N00607521EA0186601900 +B1110294535372N00607503EA0186301897 +B1110314535372N00607485EA0186001894 +B1110334535372N00607467EA0185701891 +B1110354535373N00607448EA0185401888 +B1110374535373N00607430EA0185001885 +B1110394535372N00607412EA0184601881 +B1110414535370N00607393EA0184101876 +B1110434535368N00607374EA0183701872 +B1110454535367N00607355EA0183401868 +B1110474535366N00607338EA0183001865 +B1110494535365N00607320EA0182701861 +B1110514535365N00607301EA0182401857 +B1110534535367N00607283EA0182201855 +B1110554535368N00607266EA0182001853 +B1110574535370N00607249EA0181701850 +B1110594535372N00607232EA0181401847 +B1111014535375N00607215EA0181201845 +B1111034535377N00607198EA0180901842 +B1111054535379N00607181EA0180601840 +B1111074535382N00607164EA0180301837 +B1111094535386N00607147EA0180001834 +B1111114535388N00607130EA0179701831 +B1111134535389N00607113EA0179301827 +B1111154535391N00607095EA0179001823 +B1111174535395N00607078EA0178801821 +B1111194535399N00607063EA0178701819 +B1111214535402N00607050EA0178401816 +B1111234535405N00607035EA0178001813 +B1111254535409N00607019EA0177601809 +B1111274535410N00607003EA0177201806 +B1111294535412N00606986EA0176901802 +B1111314535416N00606971EA0176401798 +B1111334535420N00606955EA0176001793 +B1111354535423N00606937EA0175601790 +B1111374535427N00606920EA0175301786 +B1111394535432N00606904EA0174901782 +B1111414535438N00606888EA0174601779 +B1111434535444N00606873EA0174301776 +B1111454535450N00606857EA0173901772 +B1111474535455N00606840EA0173601769 +B1111494535460N00606824EA0173401766 +B1111514535466N00606809EA0173101764 +B1111534535470N00606793EA0172801761 +B1111554535475N00606776EA0172501758 +B1111574535480N00606761EA0172101755 +B1111594535486N00606747EA0171601750 +B1112014535494N00606733EA0171101746 +B1112034535503N00606720EA0170701741 +B1112054535513N00606710EA0170301738 +B1112074535524N00606705EA0169901733 +B1112094535535N00606699EA0169401728 +B1112114535547N00606689EA0169101724 +B1112134535557N00606677EA0168801721 +B1112154535567N00606666EA0168501717 +B1112174535578N00606657EA0168301715 +B1112194535588N00606652EA0167901711 +B1112214535599N00606656EA0167401706 +B1112234535608N00606665EA0167001702 +B1112254535615N00606675EA0166501698 +B1112274535623N00606687EA0166101693 +B1112294535631N00606700EA0166201689 +B1112314535639N00606711EA0166401688 +B1112334535645N00606721EA0166301688 +B1112354535653N00606728EA0166001686 +B1112374535662N00606736EA0165501683 +B1112394535672N00606745EA0165201680 +B1112414535682N00606755EA0165201679 +B1112434535691N00606765EA0165301679 +B1112454535700N00606773EA0165401679 +B1112474535710N00606783EA0165601680 +B1112494535719N00606794EA0166001683 +B1112514535728N00606805EA0166801687 +B1112534535737N00606814EA0167401694 +B1112554535745N00606822EA0168101700 +B1112574535753N00606827EA0168801707 +B1112594535760N00606825EA0168901713 +B1113014535760N00606810EA0169001718 +B1113034535750N00606799EA0169401723 +B1113054535736N00606807EA0169901727 +B1113074535732N00606826EA0170801735 +B1113094535733N00606843EA0171601744 +B1113114535738N00606857EA0172201751 +B1113134535746N00606869EA0172901757 +B1113154535757N00606877EA0173601764 +B1113174535767N00606872EA0174301771 +B1113194535768N00606861EA0174801777 +B1113214535761N00606850EA0175501784 +B1113234535751N00606846EA0176101791 +B1113254535741N00606859EA0176501797 +B1113274535737N00606882EA0177301803 +B1113294535744N00606899EA0178101810 +B1113314535755N00606906EA0178701816 +B1113334535766N00606904EA0179201823 +B1113354535772N00606893EA0179501828 +B1113374535771N00606879EA0180001833 +B1113394535763N00606872EA0180401838 +B1113414535753N00606870EA0181001843 +B1113434535742N00606875EA0181501847 +B1113454535736N00606894EA0182101852 +B1113474535738N00606914EA0183001858 +B1113494535748N00606926EA0183801866 +B1113514535756N00606933EA0184301874 +B1113534535760N00606946EA0184401879 +B1113554535753N00606962EA0184501884 +B1113574535741N00606966EA0184501886 +B1113594535731N00606956EA0184301887 +B1114014535722N00606943EA0184201885 +B1114034535712N00606935EA0184001883 +B1114054535702N00606926EA0183701879 +B1114074535699N00606906EA0183301875 +B1114094535706N00606887EA0183601872 +B1114114535717N00606875EA0184401873 +B1114134535725N00606866EA0185201876 +B1114154535730N00606856EA0185601880 +B1114174535735N00606846EA0186001885 +B1114194535743N00606844EA0186601890 +B1114214535751N00606849EA0187201897 +B1114234535754N00606859EA0187301901 +B1114254535752N00606878EA0187401904 +B1114274535742N00606894EA0188101909 +B1114294535730N00606895EA0188701914 +B1114314535723N00606881EA0189301920 +B1114334535726N00606865EA0189701926 +B1114354535737N00606860EA0189801930 +B1114374535750N00606870EA0190301933 +B1114394535757N00606884EA0191101939 +B1114414535761N00606896EA0191601945 +B1114434535767N00606910EA0192201950 +B1114454535766N00606928EA0193101956 +B1114474535755N00606937EA0193501963 +B1114494535745N00606927EA0194101968 +B1114514535746N00606908EA0195001976 +B1114534535757N00606903EA0195801984 +B1114554535768N00606914EA0196501992 +B1114574535769N00606933EA0197301999 +B1114594535760N00606944EA0197802007 +B1115014535749N00606941EA0198202011 +B1115034535739N00606933EA0198702015 +B1115054535732N00606920EA0199302021 +B1115074535728N00606904EA0199902027 +B1115094535731N00606892EA0200502033 +B1115114535737N00606887EA0200702038 +B1115134535745N00606887EA0201002041 +B1115154535755N00606895EA0201502045 +B1115174535756N00606911EA0202002050 +B1115194535749N00606925EA0202802056 +B1115214535739N00606933EA0203602064 +B1115234535730N00606940EA0204002070 +B1115254535718N00606938EA0204302075 +B1115274535708N00606923EA0204702080 +B1115294535705N00606906EA0205102084 +B1115314535708N00606891EA0205202086 +B1115334535717N00606878EA0205302088 +B1115354535731N00606877EA0205402088 +B1115374535744N00606883EA0205802091 +B1115394535751N00606894EA0206002093 +B1115414535754N00606911EA0206102094 +B1115434535751N00606932EA0207002097 +B1115454535745N00606949EA0208002103 +B1115474535742N00606961EA0208502109 +B1115494535739N00606970EA0208602114 +B1115514535733N00606978EA0208302116 +B1115534535723N00606983EA0208402117 +B1115554535713N00606981EA0208302117 +B1115574535703N00606973EA0208302116 +B1115594535693N00606964EA0208802117 +B1116014535686N00606955EA0209302120 +B1116034535679N00606946EA0209602124 +B1116054535672N00606936EA0209802127 +B1116074535668N00606918EA0209702128 +B1116094535676N00606902EA0209902129 +B1116114535688N00606900EA0210202131 +B1116134535696N00606910EA0210402134 +B1116154535699N00606926EA0210902137 +B1116174535696N00606941EA0211602142 +B1116194535690N00606954EA0211902148 +B1116214535682N00606961EA0211902151 +B1116234535667N00606958EA0211802153 +B1116254535655N00606947EA0212202155 +B1116274535651N00606932EA0212402157 +B1116294535655N00606920EA0212502159 +B1116314535663N00606916EA0212402158 +B1116334535673N00606922EA0212702158 +B1116354535683N00606926EA0213102161 +B1116374535691N00606925EA0213302164 +B1116394535700N00606922EA0213202166 +B1116414535710N00606916EA0213502167 +B1116434535719N00606908EA0214002171 +B1116454535725N00606900EA0214302175 +B1116474535730N00606890EA0214402177 +B1116494535734N00606877EA0214802180 +B1116514535735N00606862EA0215202184 +B1116534535738N00606853EA0215402188 +B1116554535747N00606848EA0215302190 +B1116574535758N00606856EA0215502191 +B1116594535761N00606873EA0215702193 +B1117014535758N00606889EA0216002196 +B1117034535749N00606898EA0216402199 +B1117054535738N00606896EA0216902202 +B1117074535730N00606885EA0217202206 +B1117094535729N00606870EA0217602209 +B1117114535733N00606859EA0217902213 +B1117134535741N00606853EA0218202216 +B1117154535751N00606855EA0218402219 +B1117174535761N00606863EA0218502221 +B1117194535767N00606881EA0218502222 +B1117214535762N00606900EA0218702223 +B1117234535752N00606912EA0219102226 +B1117254535741N00606921EA0219702231 +B1117274535732N00606928EA0219902235 +B1117294535723N00606932EA0219802236 +B1117314535712N00606933EA0219702237 +B1117334535701N00606926EA0219802236 +B1117354535693N00606913EA0220102238 +B1117374535689N00606900EA0220402241 +B1117394535688N00606888EA0220602242 +B1117414535685N00606875EA0220802244 +B1117434535682N00606862EA0221002246 +B1117454535682N00606849EA0221102248 +B1117474535687N00606838EA0221302249 +B1117494535694N00606830EA0221402251 +B1117514535702N00606825EA0221402251 +B1117534535711N00606820EA0221302251 +B1117554535722N00606821EA0221402251 +B1117574535732N00606831EA0221502252 +B1117594535741N00606842EA0221602253 +B1118014535749N00606854EA0221602254 +B1118034535756N00606867EA0221602254 +B1118054535759N00606883EA0221702254 +B1118074535753N00606900EA0222102255 +B1118094535746N00606910EA0222302257 +B1118114535741N00606920EA0222202256 +B1118134535736N00606929EA0222102256 +B1118154535727N00606931EA0221702254 +B1118174535715N00606927EA0221602252 +B1118194535703N00606922EA0221802252 +B1118214535691N00606919EA0222002254 +B1118234535680N00606916EA0222202256 +B1118254535671N00606910EA0222302257 +B1118274535661N00606903EA0222402258 +B1118294535651N00606896EA0222702261 +B1118314535641N00606889EA0222802263 +B1118334535631N00606882EA0222902264 +B1118354535620N00606874EA0222902264 +B1118374535612N00606864EA0223002265 +B1118394535606N00606851EA0222902265 +B1118414535600N00606836EA0223002265 +B1118434535595N00606821EA0223002265 +B1118454535590N00606804EA0223002265 +B1118474535585N00606787EA0222802264 +B1118494535582N00606770EA0222502263 +B1118514535578N00606751EA0222102260 +B1118534535574N00606731EA0221802256 +B1118554535569N00606711EA0221502253 +B1118574535565N00606691EA0221302250 +B1118594535562N00606670EA0220902247 +B1119014535557N00606650EA0220602244 +B1119034535551N00606631EA0220402242 +B1119054535546N00606613EA0220002238 +B1119074535539N00606594EA0219602234 +B1119094535532N00606574EA0219102230 +B1119114535523N00606556EA0218902227 +B1119134535513N00606540EA0218502223 +B1119154535503N00606523EA0218002218 +B1119174535495N00606504EA0217502213 +B1119194535486N00606486EA0217102209 +B1119214535476N00606469EA0216502203 +B1119234535466N00606451EA0216002197 +B1119254535455N00606432EA0215902193 +B1119274535447N00606415EA0215802191 +B1119294535438N00606400EA0215502188 +B1119314535428N00606383EA0215202184 +B1119334535417N00606367EA0215002183 +B1119354535406N00606354EA0214702181 +B1119374535395N00606340EA0214502178 +B1119394535385N00606325EA0214202175 +B1119414535374N00606309EA0213902172 +B1119434535363N00606292EA0213702169 +B1119454535353N00606275EA0213502168 +B1119474535344N00606259EA0213302166 +B1119494535334N00606242EA0213102163 +B1119514535325N00606226EA0212802161 +B1119534535316N00606207EA0212602159 +B1119554535308N00606188EA0212602158 +B1119574535300N00606170EA0212402157 +B1119594535292N00606152EA0212202155 +B1120014535283N00606133EA0212202154 +B1120034535274N00606116EA0212002153 +B1120054535266N00606100EA0211802151 +B1120074535257N00606082EA0211602149 +B1120094535247N00606064EA0211502148 +B1120114535237N00606047EA0211302147 +B1120134535229N00606030EA0211102145 +B1120154535220N00606012EA0210902142 +B1120174535210N00605995EA0210802141 +B1120194535200N00605979EA0210602140 +B1120214535191N00605962EA0210502138 +B1120234535182N00605946EA0210202137 +B1120254535172N00605929EA0210002136 +B1120274535162N00605914EA0209602134 +B1120294535152N00605898EA0209502133 +B1120314535142N00605883EA0209302131 +B1120334535132N00605868EA0209002129 +B1120354535122N00605852EA0208902127 +B1120374535112N00605837EA0208802126 +B1120394535102N00605823EA0208602124 +B1120414535092N00605807EA0208402122 +B1120434535082N00605791EA0208202120 +B1120454535073N00605775EA0208102118 +B1120474535064N00605759EA0207902116 +B1120494535055N00605743EA0207702114 +B1120514535045N00605727EA0207402111 +B1120534535036N00605710EA0207202109 +B1120554535028N00605693EA0207102107 +B1120574535019N00605676EA0206902105 +B1120594535011N00605659EA0206602103 +B1121014535002N00605643EA0206402100 +B1121034534993N00605626EA0206102097 +B1121054534984N00605609EA0205802094 +B1121074534975N00605592EA0205402091 +B1121094534966N00605574EA0205602088 +B1121114534957N00605556EA0205002085 +B1121134534947N00605539EA0204802083 +B1121154534938N00605522EA0204602080 +B1121174534930N00605504EA0204302078 +B1121194534920N00605488EA0204102075 +B1121214534911N00605472EA0203802073 +B1121234534901N00605456EA0203602071 +B1121254534890N00605442EA0203302069 +B1121274534878N00605428EA0203202066 +B1121294534868N00605414EA0202902064 +B1121314534856N00605401EA0202702062 +B1121334534844N00605388EA0202602060 +B1121354534833N00605375EA0202402059 +B1121374534822N00605361EA0202202057 +B1121394534811N00605347EA0202002055 +B1121414534800N00605334EA0201902053 +B1121434534789N00605322EA0201702052 +B1121454534778N00605310EA0201402050 +B1121474534768N00605294EA0201502048 +B1121494534758N00605278EA0201402048 +B1121514534749N00605263EA0201402047 +B1121534534738N00605250EA0201202046 +B1121554534727N00605238EA0201102045 +B1121574534715N00605227EA0201102045 +B1121594534705N00605215EA0201102044 +B1122014534694N00605202EA0200902042 +B1122034534683N00605188EA0200902041 +B1122054534673N00605175EA0200702041 +B1122074534663N00605161EA0200502039 +B1122094534653N00605147EA0200302037 +B1122114534644N00605131EA0200102035 +B1122134534635N00605115EA0199802033 +B1122154534626N00605098EA0199602031 +B1122174534617N00605080EA0199402029 +B1122194534608N00605063EA0199302028 +B1122214534599N00605046EA0199302027 +B1122234534591N00605030EA0199202026 +B1122254534581N00605014EA0199002025 +B1122274534571N00605000EA0199002024 +B1122294534561N00604986EA0198802022 +B1122314534551N00604971EA0198702021 +B1122334534541N00604956EA0198602019 +B1122354534531N00604942EA0198402018 +B1122374534521N00604928EA0198402017 +B1122394534511N00604914EA0198302016 +B1122414534501N00604900EA0198202015 +B1122434534490N00604886EA0198102014 +B1122454534479N00604873EA0198002013 +B1122474534469N00604860EA0197802011 +B1122494534459N00604847EA0197602009 +B1122514534448N00604835EA0197302007 +B1122534534437N00604823EA0197102005 +B1122554534426N00604811EA0196902003 +B1122574534416N00604799EA0196702000 +B1122594534405N00604786EA0196601998 +B1123014534395N00604773EA0196301996 +B1123034534385N00604760EA0196001994 +B1123054534375N00604748EA0195701991 +B1123074534364N00604734EA0195401987 +B1123094534354N00604721EA0195201985 +B1123114534344N00604708EA0195001983 +B1123134534336N00604694EA0194801981 +B1123154534327N00604680EA0194601979 +B1123174534318N00604667EA0194401977 +B1123194534308N00604658EA0194101974 +B1123214534298N00604647EA0193801971 +B1123234534287N00604635EA0193601969 +B1123254534277N00604623EA0193401967 +B1123274534268N00604609EA0193301965 +B1123294534259N00604594EA0193101963 +B1123314534249N00604581EA0192901961 +B1123334534239N00604568EA0192701958 +B1123354534228N00604556EA0192501957 +B1123374534218N00604544EA0192301955 +B1123394534208N00604534EA0191901952 +B1123414534198N00604523EA0191601948 +B1123434534187N00604509EA0191301946 +B1123454534178N00604493EA0191101943 +B1123474534170N00604478EA0190901941 +B1123494534160N00604464EA0190801939 +B1123514534152N00604451EA0190501937 +B1123534534143N00604438EA0190301934 +B1123554534133N00604427EA0190101932 +B1123574534123N00604415EA0189901931 +B1123594534114N00604404EA0189701929 +B1124014534105N00604394EA0189501926 +B1124034534096N00604383EA0189501924 +B1124054534085N00604373EA0189801924 +B1124074534076N00604366EA0189901925 +B1124094534070N00604359EA0189701924 +B1124114534062N00604352EA0189701923 +B1124134534052N00604344EA0190001925 +B1124154534045N00604332EA0190401928 +B1124174534040N00604321EA0190601932 +B1124194534033N00604311EA0190501933 +B1124214534023N00604301EA0190101933 +B1124234534013N00604290EA0190101932 +B1124254534004N00604281EA0190401934 +B1124274533996N00604273EA0190801938 +B1124294533990N00604265EA0191001941 +B1124314533984N00604255EA0191201943 +B1124334533976N00604246EA0191401945 +B1124354533967N00604242EA0191601947 +B1124374533960N00604253EA0191601948 +B1124394533962N00604268EA0191701949 +B1124414533972N00604275EA0192001951 +B1124434533981N00604269EA0192101953 +B1124454533987N00604255EA0192401955 +B1124474533989N00604241EA0193001959 +B1124494533988N00604229EA0193301962 +B1124514533985N00604217EA0193601964 +B1124534533977N00604208EA0194001967 +B1124554533968N00604219EA0194301971 +B1124574533971N00604236EA0194401974 +B1124594533984N00604235EA0194401975 +B1125014533994N00604223EA0194801978 +B1125034533997N00604209EA0195101981 +B1125054533996N00604193EA0195501984 +B1125074533991N00604176EA0196201989 +B1125094533984N00604163EA0196801996 +B1125114533976N00604153EA0197302001 +B1125134533966N00604147EA0197702006 +B1125154533954N00604157EA0198102009 +B1125174533954N00604173EA0198502013 +B1125194533965N00604181EA0199102017 +B1125214533975N00604181EA0199802023 +B1125234533981N00604170EA0200202028 +B1125254533983N00604155EA0200902034 +B1125274533979N00604139EA0201302040 +B1125294533969N00604131EA0201502044 +B1125314533958N00604131EA0201902048 +B1125334533950N00604139EA0202302054 +B1125354533951N00604151EA0202602057 +B1125374533958N00604159EA0203102062 +B1125394533968N00604159EA0203602067 +B1125414533975N00604147EA0204102072 +B1125434533978N00604132EA0204602078 +B1125454533975N00604118EA0204702082 +B1125474533969N00604104EA0204902084 +B1125494533959N00604095EA0205202087 +B1125514533949N00604094EA0205402089 +B1125534533941N00604100EA0205502091 +B1125554533938N00604109EA0205602093 +B1125574533940N00604120EA0205802095 +B1125594533944N00604127EA0205902096 +B1126014533951N00604133EA0206302098 +B1126034533957N00604141EA0206902102 +B1126054533960N00604149EA0207202106 +B1126074533963N00604155EA0207102108 +B1126094533971N00604157EA0206702109 +B1126114533982N00604150EA0206602109 +B1126134533987N00604132EA0206602107 +B1126154533986N00604114EA0206902107 +B1126174533983N00604098EA0207102108 +B1126194533977N00604084EA0207202109 +B1126214533967N00604074EA0207102108 +B1126234533956N00604069EA0207302110 +B1126254533946N00604068EA0207402111 +B1126274533936N00604071EA0207402110 +B1126294533925N00604074EA0207302109 +B1126314533914N00604061EA0207102108 +B1126334533913N00604041EA0207102106 +B1126354533921N00604028EA0207002104 +B1126374533931N00604022EA0207002103 +B1126394533941N00604024EA0206902102 +B1126414533948N00604035EA0206802100 +B1126434533952N00604048EA0206902100 +B1126454533956N00604060EA0206802100 +B1126474533958N00604071EA0206802099 +B1126494533960N00604083EA0207002100 +B1126514533961N00604093EA0207102101 +B1126534533963N00604102EA0207302103 +B1126554533964N00604111EA0207302104 +B1126574533966N00604121EA0207302104 +B1126594533967N00604130EA0207102103 +B1127014533964N00604139EA0206802102 +B1127034533956N00604147EA0206602099 +B1127054533943N00604148EA0206502097 +B1127074533930N00604143EA0206402096 +B1127094533917N00604135EA0206302094 +B1127114533903N00604127EA0206202092 +B1127134533890N00604118EA0206002091 +B1127154533877N00604108EA0205702088 +B1127174533864N00604099EA0205402084 +B1127194533849N00604088EA0205202082 +B1127214533835N00604079EA0205102080 +B1127234533821N00604069EA0204902079 +B1127254533808N00604059EA0204702076 +B1127274533794N00604048EA0204502074 +B1127294533781N00604038EA0204102072 +B1127314533768N00604027EA0203602068 +B1127334533754N00604017EA0203302064 +B1127354533741N00604006EA0203002062 +B1127374533729N00603995EA0202602058 +B1127394533716N00603985EA0202102053 +B1127414533703N00603973EA0201802049 +B1127434533691N00603963EA0201602046 +B1127454533679N00603952EA0201302044 +B1127474533668N00603941EA0201002041 +B1127494533656N00603931EA0200702038 +B1127514533644N00603921EA0200602036 +B1127534533633N00603911EA0200302034 +B1127554533622N00603902EA0200102031 +B1127574533610N00603892EA0199802029 +B1127594533599N00603883EA0199502027 +B1128014533587N00603874EA0199102023 +B1128034533576N00603866EA0198802020 +B1128054533565N00603856EA0198602018 +B1128074533555N00603844EA0198202014 +B1128094533544N00603836EA0197702010 +B1128114533532N00603828EA0197202006 +B1128134533521N00603819EA0196902002 +B1128154533509N00603809EA0196701999 +B1128174533498N00603800EA0196401996 +B1128194533486N00603791EA0196001993 +B1128214533474N00603781EA0195701989 +B1128234533461N00603771EA0195601987 +B1128254533449N00603761EA0195701986 +B1128274533438N00603749EA0195601986 +B1128294533427N00603738EA0195501984 +B1128314533414N00603729EA0195501984 +B1128334533402N00603720EA0195501984 +B1128354533390N00603711EA0195401984 +B1128374533380N00603703EA0195501984 +B1128394533370N00603694EA0195401985 +B1128414533362N00603686EA0195101984 +B1128434533352N00603676EA0194801981 +B1128454533341N00603666EA0194601979 +B1128474533331N00603657EA0194401977 +B1128494533322N00603649EA0194201974 +B1128514533312N00603640EA0194201973 +B1128534533303N00603633EA0194301973 +B1128554533295N00603625EA0194401974 +B1128574533287N00603617EA0194501975 +B1128594533280N00603609EA0194401974 +B1129014533272N00603601EA0194401974 +B1129034533264N00603595EA0194301974 +B1129054533257N00603591EA0194101973 +B1129074533249N00603588EA0194001972 +B1129094533242N00603585EA0194001971 +B1129114533235N00603583EA0193701970 +B1129134533226N00603580EA0193501968 +B1129154533218N00603578EA0193301966 +B1129174533208N00603577EA0193301965 +B1129194533200N00603575EA0193301964 +B1129214533191N00603572EA0193101963 +B1129234533181N00603568EA0193001962 +B1129254533172N00603563EA0193101962 +B1129274533164N00603558EA0193301963 +B1129294533155N00603553EA0193801965 +B1129314533147N00603548EA0194401969 +B1129334533141N00603540EA0194901974 +B1129354533133N00603536EA0195401979 +B1129374533125N00603548EA0195901984 +B1129394533130N00603566EA0196401989 +B1129414533144N00603568EA0196801994 +B1129434533154N00603554EA0197201999 +B1129454533152N00603537EA0197702004 +B1129474533143N00603530EA0198002010 +B1129494533132N00603534EA0198602015 +B1129514533122N00603538EA0199202021 +B1129534533116N00603546EA0199702026 +B1129554533116N00603564EA0200202031 +B1129574533126N00603573EA0200702035 +B1129594533139N00603567EA0201002039 +B1130014533146N00603552EA0201302042 +B1130034533146N00603537EA0201702046 +B1130054533138N00603528EA0202102050 +B1130074533126N00603533EA0202402052 +B1130094533120N00603549EA0202902055 +B1130114533125N00603564EA0203602060 +B1130134533134N00603572EA0204202066 +B1130154533144N00603572EA0204302070 +B1130174533154N00603562EA0204602074 +B1130194533156N00603545EA0204902077 +B1130214533151N00603531EA0205202080 +B1130234533142N00603526EA0205602084 +B1130254533133N00603530EA0206002087 +B1130274533129N00603546EA0206402091 +B1130294533130N00603559EA0206902097 +B1130314533134N00603569EA0207102101 +B1130334533142N00603571EA0206902104 +B1130354533154N00603560EA0207002105 +B1130374533158N00603544EA0207302108 +B1130394533156N00603527EA0207602109 +B1130414533151N00603513EA0207902112 +B1130434533141N00603505EA0208102114 +B1130454533130N00603500EA0208602118 +B1130474533120N00603500EA0209102123 +B1130494533110N00603504EA0209502127 +B1130514533103N00603513EA0209802131 +B1130534533104N00603525EA0210002134 +B1130554533109N00603534EA0210402137 +B1130574533117N00603534EA0210702141 +B1130594533124N00603522EA0210802144 +B1131014533126N00603501EA0211102146 +B1131034533121N00603482EA0211402149 +B1131054533107N00603474EA0211702152 +B1131074533097N00603481EA0211902154 +B1131094533093N00603494EA0212102156 +B1131114533093N00603506EA0212602160 +B1131134533097N00603513EA0212802163 +B1131154533105N00603513EA0212702165 +B1131174533113N00603499EA0212502165 +B1131194533115N00603477EA0212502163 +B1131214533111N00603457EA0212802164 +B1131234533102N00603443EA0213202167 +B1131254533093N00603434EA0213402169 +B1131274533083N00603429EA0213402170 +B1131294533072N00603431EA0213302169 +B1131314533065N00603444EA0213202168 +B1131334533067N00603456EA0213302168 +B1131354533073N00603461EA0213402169 +B1131374533079N00603462EA0213502170 +B1131394533086N00603460EA0213202169 +B1131414533093N00603454EA0212802167 +B1131434533100N00603435EA0212902166 +B1131454533103N00603416EA0213102167 +B1131474533099N00603399EA0213102166 +B1131494533092N00603382EA0213002165 +B1131514533084N00603367EA0212802163 +B1131534533075N00603353EA0212502160 +B1131554533065N00603342EA0212102157 +B1131574533054N00603331EA0211302152 +B1131594533043N00603317EA0210602145 +B1132014533033N00603303EA0210102139 +B1132034533023N00603290EA0209602133 +B1132054533013N00603276EA0209102127 +B1132074533003N00603261EA0208702122 +B1132094532993N00603246EA0208402118 +B1132114532984N00603232EA0207902113 +B1132134532974N00603217EA0207402107 +B1132154532965N00603200EA0206902102 +B1132174532956N00603181EA0206502098 +B1132194532948N00603164EA0206102094 +B1132214532939N00603148EA0205602089 +B1132234532930N00603130EA0205302085 +B1132254532920N00603113EA0205102081 +B1132274532911N00603098EA0204802078 +B1132294532901N00603082EA0204302074 +B1132314532891N00603068EA0203902070 +B1132334532880N00603053EA0203802067 +B1132354532870N00603037EA0203402063 +B1132374532860N00603021EA0203102060 +B1132394532850N00603005EA0202702056 +B1132414532841N00602988EA0202302052 +B1132434532832N00602970EA0202002048 +B1132454532823N00602953EA0201602044 +B1132474532814N00602936EA0201202040 +B1132494532806N00602918EA0200802036 +B1132514532797N00602900EA0200402032 +B1132534532789N00602882EA0200002029 +B1132554532783N00602861EA0199602025 +B1132574532778N00602841EA0199402023 +B1132594532772N00602822EA0198802019 +B1133014532765N00602804EA0198202015 +B1133034532756N00602785EA0197702010 +B1133054532747N00602769EA0197402006 +B1133074532736N00602754EA0196902002 +B1133094532726N00602741EA0196401998 +B1133114532715N00602729EA0196001993 +B1133134532704N00602716EA0195601988 +B1133154532693N00602702EA0195201984 +B1133174532683N00602688EA0194801980 +B1133194532674N00602673EA0194301975 +B1133214532664N00602659EA0193801970 +B1133234532654N00602644EA0193301965 +B1133254532644N00602629EA0192901961 +B1133274532636N00602614EA0192601958 +B1133294532628N00602598EA0192201954 +B1133314532619N00602583EA0191901950 +B1133334532610N00602568EA0191601947 +B1133354532601N00602554EA0191201944 +B1133374532591N00602540EA0190901940 +B1133394532581N00602526EA0190601937 +B1133414532571N00602513EA0190301934 +B1133434532561N00602499EA0190001931 +B1133454532550N00602485EA0189801928 +B1133474532540N00602472EA0189501926 +B1133494532530N00602458EA0189201923 +B1133514532520N00602443EA0188901920 +B1133534532510N00602429EA0188501916 +B1133554532498N00602416EA0188301914 +B1133574532489N00602402EA0187901911 +B1133594532479N00602389EA0187701907 +B1134014532468N00602375EA0187501905 +B1134034532459N00602361EA0187401904 +B1134054532449N00602347EA0187201902 +B1134074532440N00602333EA0187001900 +B1134094532430N00602319EA0186801898 +B1134114532420N00602306EA0186701896 +B1134134532410N00602293EA0186401894 +B1134154532400N00602280EA0186201892 +B1134174532390N00602267EA0186001891 +B1134194532380N00602254EA0185901889 +B1134214532370N00602241EA0185801887 +B1134234532359N00602227EA0185601885 +B1134254532349N00602213EA0185401883 +B1134274532339N00602200EA0185201881 +B1134294532329N00602186EA0185001879 +B1134314532319N00602173EA0184801877 +B1134334532309N00602160EA0184601875 +B1134354532298N00602148EA0184401873 +B1134374532288N00602136EA0184201871 +B1134394532277N00602123EA0184001869 +B1134414532266N00602111EA0183801867 +B1134434532256N00602098EA0183601865 +B1134454532245N00602086EA0183401863 +B1134474532235N00602074EA0183201861 +B1134494532224N00602061EA0183001859 +B1134514532214N00602049EA0182801857 +B1134534532204N00602036EA0182501855 +B1134554532193N00602024EA0182401852 +B1134574532183N00602011EA0182201851 +B1134594532172N00601999EA0182001849 +B1135014532162N00601986EA0181801847 +B1135034532152N00601973EA0181501845 +B1135054532141N00601961EA0181301843 +B1135074532131N00601950EA0181101841 +B1135094532122N00601938EA0181001839 +B1135114532112N00601928EA0181201839 +B1135134532104N00601921EA0181201839 +B1135154532097N00601915EA0181101838 +B1135174532090N00601908EA0181001837 +B1135194532082N00601900EA0181201838 +B1135214532074N00601897EA0181401839 +B1135234532067N00601893EA0181401841 +B1135254532062N00601888EA0181101840 +B1135274532055N00601881EA0180801839 +B1135294532044N00601875EA0181001839 +B1135314532034N00601872EA0181101840 +B1135334532025N00601868EA0180901840 +B1135354532018N00601862EA0180501838 +B1135374532010N00601853EA0180201835 +B1135394532002N00601845EA0179901832 +B1135414531994N00601837EA0179601828 +B1135434531985N00601827EA0179501826 +B1135454531976N00601818EA0179401825 +B1135474531967N00601809EA0179301824 +B1135494531959N00601799EA0179101822 +B1135514531951N00601789EA0178801820 +B1135534531942N00601779EA0178501817 +B1135554531934N00601768EA0178001813 +B1135574531925N00601755EA0177501809 +B1135594531916N00601743EA0177001804 +B1136014531907N00601730EA0176401798 +B1136034531898N00601718EA0175801792 +B1136054531887N00601706EA0175101786 +B1136074531876N00601695EA0174601779 +B1136094531865N00601684EA0174301774 +B1136114531856N00601673EA0173801769 +B1136134531846N00601663EA0173301764 +B1136154531834N00601654EA0172801759 +B1136174531823N00601645EA0172301754 +B1136194531813N00601637EA0171601748 +B1136214531801N00601631EA0170801741 +B1136234531788N00601629EA0170201734 +B1136254531775N00601626EA0169701728 +B1136274531763N00601624EA0169401724 +B1136294531752N00601623EA0168801718 +B1136314531741N00601622EA0168301712 +B1136334531729N00601622EA0167801707 +B1136354531717N00601624EA0167301702 +B1136374531704N00601627EA0166701697 +B1136394531691N00601631EA0166101691 +B1136414531677N00601632EA0165401685 +B1136434531664N00601632EA0164701678 +B1136454531649N00601633EA0164101670 +B1136474531635N00601635EA0163701665 +B1136494531621N00601637EA0163401660 +B1136514531608N00601640EA0163101656 +B1136534531595N00601641EA0162801654 +B1136554531582N00601643EA0162801652 +B1136574531570N00601648EA0162801651 +B1136594531560N00601651EA0162601650 +B1137014531547N00601654EA0162401648 +B1137034531533N00601658EA0162301647 +B1137054531522N00601661EA0161901645 +B1137074531511N00601664EA0161201642 +B1137094531498N00601669EA0160801637 +B1137114531484N00601674EA0160501634 +B1137134531472N00601677EA0159901629 +B1137154531459N00601681EA0159201623 +B1137174531444N00601687EA0158701618 +B1137194531430N00601689EA0158401614 +B1137214531417N00601686EA0157801608 +B1137234531403N00601682EA0157301603 +B1137254531387N00601677EA0157101598 +B1137274531374N00601669EA0156701595 +B1137294531360N00601660EA0156301591 +B1137314531347N00601650EA0156101587 +B1137334531334N00601639EA0155801585 +B1137354531323N00601627EA0155501582 +B1137374531313N00601617EA0155001578 +B1137394531303N00601605EA0154601574 +B1137414531293N00601593EA0154301571 +B1137434531283N00601584EA0153701566 +B1137454531272N00601575EA0153101560 +B1137474531260N00601565EA0152601555 +B1137494531248N00601555EA0152201550 +B1137514531236N00601546EA0152001547 +B1137534531226N00601535EA0151701544 +B1137554531215N00601525EA0151401540 +B1137574531203N00601515EA0151301538 +B1137594531192N00601505EA0151001536 +B1138014531181N00601494EA0150701533 +B1138034531170N00601484EA0150501530 +B1138054531158N00601475EA0150301529 +B1138074531147N00601465EA0150001527 +B1138094531136N00601456EA0149801524 +B1138114531124N00601447EA0149501521 +B1138134531114N00601436EA0149201518 +B1138154531103N00601425EA0148801515 +B1138174531091N00601415EA0148601512 +B1138194531079N00601403EA0148401510 +B1138214531068N00601393EA0148101508 +B1138234531056N00601383EA0147801504 +B1138254531045N00601371EA0147501502 +B1138274531033N00601359EA0147301499 +B1138294531022N00601348EA0146901496 +B1138314531010N00601336EA0146701493 +B1138334530998N00601325EA0146501491 +B1138354530986N00601315EA0146201488 +B1138374530975N00601304EA0145901486 +B1138394530963N00601293EA0145601482 +B1138414530950N00601283EA0145301480 +B1138434530937N00601273EA0145101477 +B1138454530924N00601263EA0144801474 +B1138474530912N00601253EA0144501471 +B1138494530900N00601241EA0144201468 +B1138514530888N00601229EA0144001466 +B1138534530876N00601216EA0143801464 +B1138554530865N00601202EA0143601462 +B1138574530854N00601189EA0143301459 +B1138594530843N00601177EA0143001455 +B1139014530831N00601165EA0142701453 +B1139034530818N00601154EA0142501450 +B1139054530805N00601146EA0142201447 +B1139074530791N00601137EA0142001444 +B1139094530778N00601127EA0141801443 +B1139114530766N00601118EA0141401440 +B1139134530754N00601108EA0141201437 +B1139154530740N00601098EA0141101436 +B1139174530728N00601089EA0140901434 +B1139194530716N00601079EA0140501431 +B1139214530703N00601069EA0140201428 +B1139234530690N00601060EA0140001425 +B1139254530677N00601050EA0139901424 +B1139274530664N00601040EA0139701422 +B1139294530652N00601031EA0139501420 +B1139314530639N00601020EA0139201417 +B1139334530627N00601009EA0139001415 +B1139354530614N00600999EA0138901413 +B1139374530602N00600989EA0138701411 +B1139394530590N00600979EA0138501409 +B1139414530577N00600970EA0138201406 +B1139434530565N00600958EA0138001404 +B1139454530554N00600947EA0137601402 +B1139474530542N00600936EA0137301399 +B1139494530530N00600925EA0136901395 +B1139514530518N00600913EA0136601391 +B1139534530504N00600903EA0136401388 +B1139554530491N00600893EA0136101386 +B1139574530479N00600883EA0135801383 +B1139594530467N00600872EA0135701380 +B1140014530456N00600861EA0135501378 +B1140034530445N00600850EA0135201376 +B1140054530436N00600838EA0135001374 +B1140074530425N00600827EA0134901373 +B1140094530415N00600817EA0134601371 +B1140114530404N00600807EA0134401368 +B1140134530392N00600795EA0134401367 +B1140154530381N00600784EA0134401367 +B1140174530371N00600773EA0134101365 +B1140194530361N00600763EA0133901363 +B1140214530350N00600753EA0133701361 +B1140234530339N00600743EA0133501358 +B1140254530328N00600734EA0133301357 +B1140274530317N00600724EA0133101355 +B1140294530307N00600715EA0132901352 +B1140314530296N00600707EA0132701350 +B1140334530285N00600699EA0132501348 +B1140354530274N00600691EA0132201346 +B1140374530263N00600683EA0131901343 +B1140394530252N00600675EA0131801341 +B1140414530240N00600670EA0131601339 +B1140434530228N00600666EA0131201336 +B1140454530216N00600663EA0131001334 +B1140474530203N00600660EA0130801332 +B1140494530191N00600655EA0130601329 +B1140514530180N00600650EA0130401327 +B1140534530168N00600644EA0130101324 +B1140554530157N00600636EA0129901322 +B1140574530147N00600629EA0129601319 +B1140594530137N00600620EA0129401317 +B1141014530127N00600611EA0129101314 +B1141034530117N00600602EA0128901312 +B1141054530108N00600592EA0128701310 +B1141074530097N00600584EA0128501307 +B1141094530087N00600575EA0128301306 +B1141114530077N00600568EA0128101304 +B1141134530066N00600560EA0127801302 +B1141154530056N00600552EA0127701300 +B1141174530046N00600543EA0127601298 +B1141194530036N00600535EA0127501297 +B1141214530026N00600527EA0127201295 +B1141234530015N00600520EA0127001292 +B1141254530005N00600511EA0126801290 +B1141274529995N00600502EA0126601288 +B1141294529985N00600494EA0126501287 +B1141314529976N00600485EA0126201285 +B1141334529967N00600476EA0126001283 +B1141354529958N00600466EA0125901281 +B1141374529949N00600457EA0125701279 +B1141394529940N00600447EA0125501277 +B1141414529931N00600438EA0125301275 +B1141434529923N00600428EA0125101273 +B1141454529914N00600418EA0124901271 +B1141474529905N00600409EA0124601268 +B1141494529896N00600399EA0124301265 +B1141514529887N00600390EA0124101263 +B1141534529878N00600381EA0123801260 +B1141554529869N00600372EA0123501257 +B1141574529859N00600364EA0123201254 +B1141594529849N00600356EA0122901251 +B1142014529839N00600348EA0122601248 +B1142034529830N00600341EA0122301246 +B1142054529820N00600333EA0122001242 +B1142074529810N00600325EA0121701239 +B1142094529800N00600317EA0121401236 +B1142114529791N00600309EA0121101233 +B1142134529782N00600301EA0120801230 +B1142154529773N00600292EA0120601227 +B1142174529765N00600283EA0120201225 +B1142194529756N00600275EA0119801222 +B1142214529747N00600266EA0119501218 +B1142234529738N00600258EA0119301215 +B1142254529729N00600250EA0119001212 +B1142274529719N00600243EA0118601208 +B1142294529710N00600234EA0118201204 +B1142314529701N00600224EA0117901200 +B1142334529693N00600214EA0117601197 +B1142354529684N00600204EA0117201194 +B1142374529676N00600194EA0117001191 +B1142394529667N00600183EA0116601188 +B1142414529659N00600173EA0116201184 +B1142434529651N00600163EA0115801180 +B1142454529642N00600152EA0115401176 +B1142474529633N00600142EA0115201172 +B1142494529624N00600133EA0114801169 +B1142514529615N00600123EA0114401165 +B1142534529606N00600112EA0114001161 +B1142554529596N00600102EA0113701158 +B1142574529587N00600091EA0113401154 +B1142594529578N00600080EA0113101151 +B1143014529569N00600071EA0112901149 +B1143034529560N00600062EA0112501145 +B1143054529551N00600052EA0112101142 +B1143074529542N00600041EA0111801138 +B1143094529533N00600031EA0111401135 +B1143114529524N00600021EA0111101132 +B1143134529514N00600012EA0110901129 +B1143154529505N00600004EA0110801127 +B1143174529496N00559995EA0110401125 +B1143194529486N00559986EA0110201122 +B1143214529477N00559978EA0110101121 +B1143234529468N00559971EA0109901119 +B1143254529458N00559963EA0109601116 +B1143274529448N00559956EA0109401114 +B1143294529439N00559949EA0109301112 +B1143314529429N00559942EA0109001110 +B1143334529419N00559936EA0108801107 +B1143354529408N00559928EA0108601105 +B1143374529397N00559921EA0108601104 +B1143394529386N00559914EA0108501104 +B1143414529376N00559908EA0108501103 +B1143434529367N00559901EA0108501103 +B1143454529359N00559895EA0108501103 +B1143474529350N00559889EA0108401103 +B1143494529342N00559883EA0108201102 +B1143514529333N00559878EA0108101101 +B1143534529324N00559874EA0108001099 +B1143554529314N00559868EA0108001098 +B1143574529305N00559862EA0107901098 +B1143594529297N00559856EA0107701097 +B1144014529289N00559849EA0107601095 +B1144034529280N00559841EA0107401094 +B1144054529271N00559833EA0107301093 +B1144074529261N00559824EA0107201091 +B1144094529252N00559817EA0107201091 +B1144114529242N00559809EA0107101090 +B1144134529233N00559801EA0107001089 +B1144154529223N00559793EA0106901088 +B1144174529212N00559784EA0106801087 +B1144194529202N00559774EA0106801087 +B1144214529192N00559766EA0106801087 +B1144234529182N00559757EA0106701086 +B1144254529172N00559749EA0106601085 +B1144274529163N00559740EA0106501085 +B1144294529153N00559731EA0106501084 +B1144314529144N00559721EA0106501083 +B1144334529135N00559712EA0106401083 +B1144354529126N00559704EA0106201082 +B1144374529117N00559695EA0105901080 +B1144394529108N00559686EA0105801078 +B1144414529099N00559677EA0105701077 +B1144434529089N00559668EA0105501075 +B1144454529079N00559658EA0105301074 +B1144474529068N00559650EA0105301073 +B1144494529059N00559641EA0105201072 +B1144514529050N00559632EA0105001070 +B1144534529039N00559624EA0105001070 +B1144554529029N00559616EA0105001069 +B1144574529019N00559607EA0104901069 +B1144594529009N00559599EA0104801068 +B1145014528999N00559591EA0104601066 +B1145034528989N00559582EA0104501065 +B1145054528978N00559573EA0104401064 +B1145074528969N00559564EA0104301063 +B1145094528959N00559557EA0104201062 +B1145114528949N00559548EA0104001060 +B1145134528940N00559540EA0104001059 +B1145154528929N00559532EA0103901059 +B1145174528918N00559525EA0103901058 +B1145194528908N00559516EA0104001058 +B1145214528898N00559509EA0103901058 +B1145234528889N00559500EA0103701057 +B1145254528879N00559490EA0103701056 +B1145274528869N00559481EA0103701056 +B1145294528861N00559471EA0103601056 +B1145314528852N00559462EA0103401054 +B1145334528842N00559451EA0103601054 +B1145354528832N00559442EA0103601055 +B1145374528823N00559433EA0103401053 +B1145394528813N00559421EA0103501053 +B1145414528804N00559413EA0103501054 +B1145434528795N00559407EA0103201053 +B1145454528785N00559399EA0103001051 +B1145474528776N00559390EA0102901050 +B1145494528768N00559381EA0102801048 +B1145514528759N00559372EA0102901047 +B1145534528750N00559365EA0103001048 +B1145554528743N00559357EA0102801047 +B1145574528736N00559346EA0102801046 +B1145594528727N00559336EA0102901046 +B1146014528718N00559327EA0103001048 +B1146034528711N00559318EA0103001048 +B1146054528702N00559309EA0103201049 +B1146074528694N00559304EA0103301051 +B1146094528686N00559300EA0103401053 +B1146114528677N00559298EA0103401053 +B1146134528667N00559296EA0103501054 +B1146154528658N00559294EA0103601055 +B1146174528649N00559292EA0103601056 +B1146194528639N00559290EA0103701056 +B1146214528630N00559288EA0103701057 +B1146234528621N00559288EA0103501056 +B1146254528611N00559287EA0103201054 +B1146274528601N00559284EA0103001052 +B1146294528592N00559281EA0102501049 +B1146314528583N00559277EA0101901044 +B1146334528574N00559272EA0101501039 +B1146354528562N00559267EA0101401035 +B1146374528550N00559265EA0101201033 +B1146394528539N00559265EA0100801029 +B1146414528527N00559264EA0100301024 +B1146434528514N00559262EA0100201021 +B1146454528502N00559260EA0099901019 +B1146474528491N00559258EA0099501016 +B1146494528479N00559253EA0099101011 +B1146514528467N00559247EA0099001007 +B1146534528455N00559241EA0099101006 +B1146554528446N00559235EA0098901005 +B1146574528437N00559230EA0098501002 +B1146594528426N00559223EA0098200999 +B1147014528416N00559214EA0098200998 +B1147034528405N00559206EA0098200997 +B1147054528395N00559198EA0098100997 +B1147074528385N00559189EA0098100996 +B1147094528376N00559181EA0098200997 +B1147114528367N00559174EA0098100997 +B1147134528358N00559165EA0098000996 +B1147154528349N00559155EA0098000996 +B1147174528340N00559148EA0097900996 +B1147194528332N00559140EA0097700994 +B1147214528323N00559130EA0097700994 +B1147234528313N00559122EA0097800995 +B1147254528306N00559115EA0097700994 +B1147274528298N00559107EA0097600993 +B1147294528291N00559099EA0097500992 +B1147314528283N00559091EA0097500992 +B1147334528273N00559084EA0097400991 +B1147354528264N00559077EA0097300990 +B1147374528253N00559070EA0097100989 +B1147394528242N00559062EA0097100988 +B1147414528231N00559055EA0097100988 +B1147434528221N00559048EA0097000988 +B1147454528211N00559041EA0096800986 +B1147474528200N00559033EA0096700985 +B1147494528190N00559025EA0096700985 +B1147514528181N00559017EA0096500983 +B1147534528172N00559006EA0096500982 +B1147554528162N00558998EA0096700982 +B1147574528152N00558992EA0096600982 +B1147594528143N00558983EA0096400981 +B1148014528133N00558974EA0096500981 +B1148034528123N00558966EA0096500981 +B1148054528114N00558957EA0096300980 +B1148074528104N00558947EA0096000978 +B1148094528094N00558936EA0095700975 +B1148114528085N00558926EA0095200972 +B1148134528074N00558914EA0095000968 +B1148154528064N00558904EA0094800966 +B1148174528055N00558895EA0094300963 +B1148194528044N00558885EA0094100959 +B1148214528032N00558875EA0094000957 +B1148234528022N00558866EA0093600955 +B1148254528011N00558857EA0093200950 +B1148274527999N00558845EA0093300948 +B1148294527988N00558835EA0093300947 +B1148314527978N00558827EA0093200947 +B1148334527967N00558818EA0093200946 +B1148354527956N00558810EA0093200946 +B1148374527945N00558802EA0093100946 +B1148394527935N00558794EA0093100946 +B1148414527926N00558785EA0093000945 +B1148434527917N00558774EA0093100945 +B1148454527910N00558764EA0093000945 +B1148474527902N00558755EA0092800944 +B1148494527893N00558746EA0092700943 +B1148514527883N00558740EA0092500942 +B1148534527874N00558733EA0092200939 +B1148554527864N00558725EA0092100937 +B1148574527853N00558716EA0092000935 +B1148594527843N00558707EA0092000935 +B1149014527833N00558699EA0092000935 +B1149034527824N00558689EA0092100936 +B1149054527815N00558679EA0092100936 +B1149074527806N00558669EA0092100937 +B1149094527797N00558660EA0091800935 +B1149114527788N00558648EA0091600933 +B1149134527778N00558636EA0091800932 +B1149154527770N00558627EA0091900933 +B1149174527763N00558618EA0091800933 +B1149194527755N00558607EA0091700932 +B1149214527746N00558597EA0091600931 +B1149234527738N00558587EA0091400930 +B1149254527730N00558576EA0091100927 +B1149274527720N00558564EA0090900925 +B1149294527710N00558552EA0090800923 +B1149314527700N00558541EA0090700923 +B1149334527690N00558529EA0090700922 +B1149354527680N00558515EA0090700921 +B1149374527672N00558500EA0090900922 +B1149394527665N00558488EA0091000924 +B1149414527656N00558477EA0091200925 +B1149434527649N00558465EA0091300927 +B1149454527642N00558452EA0091400929 +B1149474527636N00558439EA0091500929 +B1149494527629N00558425EA0091500930 +B1149514527622N00558411EA0091500930 +B1149534527615N00558397EA0091400930 +B1149554527609N00558382EA0091300929 +B1149574527601N00558368EA0091300929 +B1149594527592N00558355EA0091100928 +B1150014527582N00558341EA0090800926 +B1150034527574N00558325EA0090700924 +B1150054527566N00558310EA0090600924 +B1150074527558N00558296EA0090400922 +B1150094527551N00558280EA0090100920 +B1150114527543N00558262EA0090000918 +B1150134527536N00558245EA0090000917 +B1150154527531N00558228EA0089900916 +B1150174527526N00558211EA0089800915 +B1150194527521N00558194EA0089700914 +B1150214527515N00558178EA0089600913 +B1150234527510N00558162EA0089400911 +B1150254527504N00558145EA0089100909 +B1150274527496N00558128EA0089000907 +B1150294527488N00558111EA0089000906 +B1150314527483N00558094EA0089000906 +B1150334527480N00558078EA0089100907 +B1150354527475N00558061EA0089100907 +B1150374527469N00558046EA0089000906 +B1150394527461N00558032EA0088800905 +B1150414527450N00558019EA0089000905 +B1150434527436N00558010EA0089200906 +B1150454527424N00558001EA0089200907 +B1150474527412N00557995EA0089100907 +B1150494527398N00557991EA0089200907 +B1150514527384N00557989EA0089500909 +B1150534527371N00557985EA0089600911 +B1150554527361N00557990EA0089600911 +B1150574527356N00558004EA0089600912 +B1150594527362N00558010EA0089600912 +B1151014527370N00557999EA0089700912 +B1151034527371N00557977EA0089900913 +B1151054527366N00557957EA0090100915 +B1151074527356N00557944EA0090300917 +B1151094527344N00557942EA0090400919 +B1151114527334N00557947EA0090500920 +B1151134527330N00557961EA0090400920 +B1151154527335N00557972EA0090400920 +B1151174527342N00557975EA0090700922 +B1151194527349N00557975EA0090700923 +B1151214527358N00557970EA0090700923 +B1151234527367N00557959EA0091000924 +B1151254527374N00557942EA0091400926 +B1151274527375N00557923EA0091800930 +B1151294527372N00557907EA0091900934 +B1151314527371N00557889EA0091700935 +B1151334527370N00557869EA0091700936 +B1151354527361N00557854EA0091400936 +B1151374527347N00557856EA0091200934 +B1151394527338N00557866EA0091100933 +B1151414527338N00557879EA0091000931 +B1151434527344N00557889EA0091300931 +B1151454527354N00557893EA0091600932 +B1151474527365N00557891EA0091900936 +B1151494527374N00557887EA0092100938 +B1151514527383N00557885EA0092300940 +B1151534527391N00557883EA0092400942 +B1151554527398N00557883EA0092400943 +B1151574527407N00557879EA0092300943 +B1151594527412N00557862EA0092200943 +B1152014527410N00557845EA0092200943 +B1152034527401N00557834EA0092200943 +B1152054527391N00557834EA0092200942 +B1152074527384N00557845EA0092200942 +B1152094527382N00557857EA0092400943 +B1152114527386N00557864EA0092500944 +B1152134527391N00557868EA0092500945 +B1152154527397N00557871EA0092500944 +B1152174527404N00557873EA0092500944 +B1152194527413N00557874EA0092700944 +B1152214527422N00557874EA0092800946 +B1152234527432N00557875EA0093100947 +B1152254527442N00557877EA0093400950 +B1152274527451N00557879EA0093700953 +B1152294527459N00557882EA0094100957 +B1152314527466N00557884EA0094600961 +B1152334527473N00557885EA0094800964 +B1152354527480N00557879EA0094900967 +B1152374527483N00557862EA0094900969 +B1152394527477N00557847EA0095000970 +B1152414527462N00557846EA0095200971 +B1152434527457N00557857EA0095300972 +B1152454527458N00557868EA0095700974 +B1152474527463N00557873EA0095900977 +B1152494527470N00557873EA0095800978 +B1152514527477N00557865EA0095900978 +B1152534527480N00557847EA0096000978 +B1152554527476N00557829EA0096400981 +B1152574527470N00557818EA0096700985 +B1152594527461N00557814EA0096800987 +B1153014527453N00557817EA0096900988 +B1153034527449N00557826EA0097000989 +B1153054527450N00557836EA0097200990 +B1153074527455N00557843EA0097500992 +B1153094527462N00557843EA0097900995 +B1153114527469N00557845EA0098300999 +B1153134527475N00557850EA0098501002 +B1153154527480N00557854EA0098501005 +B1153174527488N00557850EA0098201006 +B1153194527492N00557833EA0098101006 +B1153214527487N00557816EA0098101006 +B1153234527476N00557811EA0098201005 +B1153254527465N00557819EA0098301004 +B1153274527456N00557828EA0098701006 +B1153294527449N00557835EA0099101010 +B1153314527445N00557844EA0099501013 +B1153334527444N00557854EA0099901017 +B1153354527443N00557865EA0100301021 +B1153374527442N00557875EA0100601024 +B1153394527450N00557878EA0100801027 +B1153414527456N00557866EA0101301029 +B1153434527455N00557848EA0101601033 +B1153454527443N00557838EA0101801035 +B1153474527431N00557846EA0102201039 +B1153494527430N00557861EA0102501041 +B1153514527437N00557869EA0103001047 +B1153534527444N00557862EA0103301051 +B1153554527445N00557848EA0103701055 +B1153574527439N00557835EA0104001059 +B1153594527428N00557830EA0104201062 +B1154014527416N00557840EA0104601065 +B1154034527409N00557853EA0104701067 +B1154054527409N00557866EA0104901069 +B1154074527418N00557869EA0105301071 +B1154094527424N00557862EA0105901075 +B1154114527429N00557858EA0106401081 +B1154134527434N00557855EA0106701085 +B1154154527437N00557845EA0106801088 +B1154174527438N00557831EA0107301091 +B1154194527435N00557819EA0107501095 +B1154214527425N00557811EA0107701097 +B1154234527411N00557811EA0107901099 +B1154254527401N00557823EA0108001101 +B1154274527398N00557839EA0108201102 +B1154294527402N00557849EA0108401104 +B1154314527408N00557850EA0108401105 +B1154334527415N00557843EA0108501105 +B1154354527418N00557832EA0108901107 +B1154374527417N00557819EA0109201110 +B1154394527415N00557807EA0109101111 +B1154414527410N00557795EA0108701111 +B1154434527395N00557785EA0108901112 +B1154454527380N00557789EA0109201112 +B1154474527375N00557803EA0109001112 +B1154494527374N00557816EA0108901109 +B1154514527378N00557829EA0108901108 +B1154534527387N00557835EA0109101109 +B1154554527396N00557834EA0109401111 +B1154574527403N00557831EA0109601113 +B1154594527410N00557827EA0109801115 +B1155014527418N00557823EA0110301118 +B1155034527426N00557820EA0110701123 +B1155054527431N00557816EA0110701126 +B1155074527435N00557809EA0110201128 +B1155094527434N00557791EA0109801129 +B1155114527426N00557776EA0109901128 +B1155134527413N00557773EA0110101128 +B1155154527404N00557782EA0110301129 +B1155174527402N00557796EA0110501130 +B1155194527404N00557809EA0110801131 +B1155214527411N00557816EA0110801133 +B1155234527418N00557816EA0110501133 +B1155254527422N00557802EA0110101130 +B1155274527419N00557785EA0109901128 +B1155294527409N00557774EA0109801126 +B1155314527398N00557771EA0110001126 +B1155334527387N00557773EA0110301128 +B1155354527378N00557777EA0110401129 +B1155374527369N00557782EA0110301130 +B1155394527364N00557796EA0110301130 +B1155414527364N00557811EA0110301129 +B1155434527372N00557820EA0110301128 +B1155454527381N00557819EA0110201128 +B1155474527388N00557810EA0110301129 +B1155494527392N00557801EA0110101128 +B1155514527394N00557790EA0109601126 +B1155534527392N00557775EA0109201123 +B1155554527385N00557759EA0109101120 +B1155574527373N00557748EA0109201120 +B1155594527362N00557740EA0109101119 +B1156014527352N00557731EA0109101118 +B1156034527342N00557722EA0109101117 +B1156054527333N00557715EA0109101117 +B1156074527324N00557709EA0109201117 +B1156094527314N00557708EA0109401118 +B1156114527305N00557706EA0109701120 +B1156134527298N00557706EA0109901122 +B1156154527293N00557719EA0110001123 +B1156174527298N00557734EA0110201124 +B1156194527311N00557735EA0110401127 +B1156214527317N00557724EA0110401128 +B1156234527317N00557707EA0110401129 +B1156254527312N00557691EA0110601130 +B1156274527304N00557683EA0110701130 +B1156294527293N00557684EA0111001132 +B1156314527283N00557687EA0111201134 +B1156334527276N00557691EA0111301136 +B1156354527273N00557704EA0111501137 +B1156374527276N00557715EA0111701139 +B1156394527286N00557714EA0111401140 +B1156414527295N00557699EA0111701140 +B1156434527295N00557682EA0112001141 +B1156454527288N00557671EA0112101142 +B1156474527278N00557666EA0112201144 +B1156494527269N00557672EA0112201144 +B1156514527264N00557684EA0112401144 +B1156534527263N00557696EA0112601146 +B1156554527265N00557702EA0112201146 +B1156574527272N00557706EA0111701144 +B1156594527281N00557704EA0111401141 +B1157014527289N00557689EA0111101137 +B1157034527289N00557669EA0111301134 +B1157054527285N00557654EA0111501134 +B1157074527278N00557645EA0111601135 +B1157094527268N00557638EA0111701136 +B1157114527256N00557635EA0112001139 +B1157134527245N00557635EA0112201141 +B1157154527236N00557636EA0112201142 +B1157174527228N00557642EA0112101142 +B1157194527227N00557651EA0111901141 +B1157214527233N00557655EA0111701140 +B1157234527241N00557649EA0111601139 +B1157254527247N00557635EA0111601138 +B1157274527248N00557617EA0111701137 +B1157294527241N00557597EA0111901138 +B1157314527231N00557586EA0112101139 +B1157334527221N00557581EA0112001139 +B1157354527211N00557582EA0111701138 +B1157374527207N00557593EA0111701137 +B1157394527210N00557602EA0111801138 +B1157414527217N00557601EA0111801138 +B1157434527224N00557587EA0111801137 +B1157454527225N00557568EA0111901138 +B1157474527221N00557551EA0111801137 +B1157494527212N00557540EA0111601136 +B1157514527200N00557537EA0111301134 +B1157534527192N00557546EA0111201132 +B1157554527188N00557557EA0111301132 +B1157574527181N00557566EA0111201131 +B1157594527172N00557572EA0111101130 +B1158014527163N00557579EA0110901128 +B1158034527155N00557588EA0110801127 +B1158054527147N00557594EA0110601125 +B1158074527137N00557599EA0110601124 +B1158094527128N00557604EA0110601123 +B1158114527120N00557611EA0110301122 +B1158134527111N00557617EA0110001119 +B1158154527101N00557624EA0109701116 +B1158174527092N00557633EA0109901115 +B1158194527083N00557642EA0110101115 +B1158214527075N00557649EA0110101116 +B1158234527068N00557657EA0110201116 +B1158254527059N00557664EA0110601118 +B1158274527052N00557668EA0110801121 +B1158294527047N00557673EA0110801122 +B1158314527046N00557681EA0110901123 +B1158334527052N00557688EA0110901124 +B1158354527063N00557684EA0110801125 +B1158374527072N00557669EA0110701124 +B1158394527073N00557649EA0110801124 +B1158414527068N00557633EA0110901125 +B1158434527058N00557623EA0111001126 +B1158454527048N00557620EA0111201128 +B1158474527040N00557620EA0111201129 +B1158494527034N00557626EA0111001128 +B1158514527027N00557636EA0111101128 +B1158534527019N00557644EA0111301129 +B1158554527011N00557649EA0111501132 +B1158574527003N00557652EA0111701134 +B1158594526997N00557656EA0111901136 +B1159014526995N00557663EA0111801137 +B1159034526997N00557673EA0112001138 +B1159054527005N00557680EA0112201139 +B1159074527015N00557677EA0112301140 +B1159094527023N00557666EA0112101141 +B1159114527027N00557644EA0112201141 +B1159134527024N00557625EA0112201142 +B1159154527015N00557614EA0112301141 +B1159174527004N00557612EA0112401143 +B1159194526994N00557614EA0112701145 +B1159214526984N00557615EA0112801147 +B1159234526975N00557613EA0112901148 +B1159254526966N00557612EA0112901149 +B1159274526958N00557614EA0113001150 +B1159294526951N00557617EA0112901150 +B1159314526947N00557624EA0112801150 +B1159334526944N00557634EA0112801149 +B1159354526938N00557644EA0112801148 +B1159374526932N00557652EA0112801148 +B1159394526925N00557659EA0112701147 +B1159414526918N00557667EA0112601146 +B1159434526911N00557676EA0112401145 +B1159454526904N00557683EA0112301144 +B1159474526895N00557691EA0112201143 +B1159494526887N00557698EA0112201143 +B1159514526878N00557704EA0112101142 +B1159534526869N00557710EA0112001141 +B1159554526860N00557716EA0111801140 +B1159574526851N00557722EA0111501137 +B1159594526841N00557727EA0111101135 +B1200014526832N00557731EA0110701131 +B1200034526821N00557733EA0110401127 +B1200054526810N00557737EA0110201124 +B1200074526799N00557741EA0110001122 +B1200094526789N00557742EA0109601119 +B1200114526777N00557744EA0109301115 +B1200134526765N00557746EA0109201113 +B1200154526753N00557748EA0108901111 +B1200174526743N00557753EA0108601108 +B1200194526731N00557758EA0108301104 +B1200214526720N00557763EA0108101102 +B1200234526708N00557767EA0107601099 +B1200254526696N00557770EA0107301095 +B1200274526684N00557773EA0107001092 +B1200294526673N00557776EA0106601088 +B1200314526661N00557778EA0106001084 +B1200334526647N00557782EA0105801080 +B1200354526634N00557783EA0105501077 +B1200374526621N00557783EA0105101073 +B1200394526607N00557783EA0105501069 +B1200414526593N00557778EA0106101067 +B1200434526583N00557775EA0106301067 +B1200454526574N00557779EA0106501068 +B1200474526569N00557794EA0106801070 +B1200494526575N00557802EA0107101073 +B1200514526584N00557796EA0107501079 +B1200534526587N00557782EA0107801085 +B1200554526581N00557767EA0107901090 +B1200574526569N00557760EA0108001094 +B1200594526556N00557771EA0108201097 +B1201014526553N00557786EA0108401100 +B1201044526559N00557794EA0108901106 +B1201064526566N00557793EA0109201109 +B1201084526573N00557789EA0109601113 +B1201104526580N00557782EA0110101117 +B1201124526583N00557769EA0110201119 +B1201144526577N00557754EA0110201121 +B1201164526565N00557754EA0110301123 +B1201184526556N00557770EA0110701125 +B1201204526559N00557786EA0111201128 +B1201224526567N00557787EA0111601132 +B1201244526574N00557780EA0112001137 +B1201264526579N00557769EA0112201140 +B1201284526578N00557755EA0111901142 +B1201304526566N00557744EA0111701142 +B1201324526554N00557754EA0111801143 +B1201344526551N00557772EA0112401144 +B1201364526555N00557782EA0112901147 +B1201384526563N00557783EA0113101150 +B1201404526573N00557781EA0113401152 +B1201424526583N00557779EA0113801156 +B1201444526592N00557773EA0113801158 +B1201464526595N00557756EA0113701160 +B1201484526590N00557734EA0113401162 +B1201504526576N00557727EA0113001160 +B1201524526564N00557737EA0112901160 +B1201544526561N00557751EA0112701159 +B1201564526568N00557763EA0112701157 +B1201584526578N00557763EA0112601156 +B1202004526584N00557751EA0112601153 +B1202024526586N00557736EA0112401150 +B1202044526584N00557717EA0112101146 +B1202064526577N00557700EA0111801143 +B1202084526567N00557690EA0111301140 +B1202104526553N00557686EA0110801135 +B1202124526539N00557683EA0110901133 +B1202144526526N00557681EA0111101132 +B1202164526514N00557681EA0111301134 +B1202184526502N00557680EA0111801136 +B1202204526492N00557678EA0112301140 +B1202224526484N00557678EA0112201143 +B1202244526480N00557688EA0112001145 +B1202264526486N00557700EA0112001147 +B1202284526498N00557697EA0112301148 +B1202304526508N00557693EA0112601150 +B1202324526514N00557700EA0112601151 +B1202344526511N00557715EA0112901152 +B1202364526498N00557721EA0113101153 +B1202384526487N00557710EA0113301154 +B1202404526483N00557691EA0113501156 +B1202424526490N00557677EA0113601158 +B1202444526501N00557676EA0113901160 +B1202464526506N00557684EA0114101161 +B1202484526504N00557696EA0114201163 +B1202504526493N00557706EA0114501165 +B1202524526478N00557700EA0114701167 +B1202544526470N00557685EA0114901169 +B1202564526470N00557667EA0115201172 +B1202584526477N00557654EA0115401176 +B1203004526486N00557652EA0115401178 +B1203024526494N00557661EA0115601179 +B1203044526489N00557673EA0115801180 +B1203064526477N00557678EA0116301182 +B1203084526464N00557677EA0116501186 +B1203104526453N00557669EA0116401187 +B1203124526447N00557654EA0116201186 +B1203144526451N00557632EA0116401186 +B1203164526460N00557621EA0116601186 +B1203184526470N00557620EA0116901187 +B1203204526477N00557627EA0117001188 +B1203224526476N00557638EA0117301191 +B1203244526468N00557648EA0117901194 +B1203264526460N00557654EA0118301198 +B1203284526455N00557662EA0118301201 +B1203304526457N00557672EA0118401203 +B1203324526468N00557667EA0118701206 +B1203344526473N00557651EA0118801209 +B1203364526472N00557631EA0119001211 +B1203384526466N00557615EA0119101212 +B1203404526451N00557613EA0119601216 +B1203424526441N00557621EA0120001220 +B1203444526437N00557632EA0120301223 +B1203464526437N00557641EA0120701226 +B1203484526443N00557648EA0121001229 +B1203504526452N00557641EA0121101233 +B1203524526454N00557624EA0121301235 +B1203544526448N00557603EA0121701238 +B1203564526433N00557602EA0122001240 +B1203584526423N00557612EA0122201242 +B1204004526422N00557624EA0122701245 +B1204024526429N00557628EA0123101249 +B1204044526436N00557619EA0123401253 +B1204064526439N00557604EA0123601256 +B1204084526436N00557587EA0123801259 +B1204104526428N00557572EA0123901261 +B1204124526414N00557568EA0124101262 +B1204144526403N00557576EA0124301265 +B1204164526401N00557589EA0124501267 +B1204184526406N00557598EA0124901269 +B1204204526415N00557600EA0125301273 +B1204224526423N00557597EA0125501275 +B1204244526429N00557590EA0125601276 +B1204264526430N00557573EA0125501278 +B1204284526425N00557556EA0125501279 +B1204304526414N00557551EA0125601279 +B1204324526401N00557555EA0125901282 +B1204344526393N00557566EA0126301285 +B1204364526387N00557576EA0126701289 +B1204384526380N00557586EA0127101293 +B1204404526375N00557597EA0127501296 +B1204424526377N00557606EA0127401299 +B1204444526386N00557605EA0127301300 +B1204464526391N00557590EA0127401301 +B1204484526386N00557571EA0127701302 +B1204504526376N00557558EA0128101305 +B1204524526363N00557551EA0128401309 +B1204544526351N00557552EA0128401311 +B1204564526340N00557560EA0128401311 +B1204584526333N00557570EA0128701312 +B1205004526328N00557581EA0128601312 +B1205024526325N00557593EA0128301311 +B1205044526328N00557604EA0127801309 +B1205064526336N00557601EA0127701306 +B1205084526340N00557583EA0128201304 +B1205104526335N00557567EA0128301304 +B1205124526327N00557555EA0128301305 +B1205144526318N00557547EA0128001303 +B1205164526306N00557541EA0127801301 +B1205184526293N00557541EA0127801300 +B1205204526280N00557542EA0127701300 +B1205224526267N00557542EA0127601299 +B1205244526253N00557542EA0127401297 +B1205264526241N00557540EA0127101295 +B1205284526228N00557538EA0126701291 +B1205304526215N00557537EA0126401288 +B1205324526202N00557536EA0126301286 +B1205344526190N00557536EA0126001284 +B1205364526178N00557537EA0125601280 +B1205384526165N00557537EA0125401277 +B1205404526151N00557537EA0125201274 +B1205424526139N00557538EA0125001272 +B1205444526127N00557541EA0124901270 +B1205464526114N00557542EA0124801268 +B1205484526102N00557541EA0124401266 +B1205504526091N00557543EA0123801263 +B1205524526079N00557548EA0123401260 +B1205544526066N00557555EA0123101257 +B1205564526055N00557561EA0122601254 +B1205584526044N00557567EA0121801249 +B1206004526031N00557574EA0121301243 +B1206024526017N00557581EA0120901238 +B1206044526003N00557587EA0120401234 +B1206064525991N00557596EA0119901228 +B1206084525977N00557606EA0119501223 +B1206104525964N00557615EA0119201219 +B1206124525950N00557624EA0118901216 +B1206144525937N00557633EA0118601212 +B1206164525925N00557641EA0118401209 +B1206184525912N00557648EA0118001206 +B1206204525899N00557655EA0117701203 +B1206224525887N00557661EA0117401199 +B1206244525874N00557666EA0117101196 +B1206264525861N00557671EA0117001193 +B1206284525848N00557676EA0116901192 +B1206304525838N00557681EA0116501189 +B1206324525825N00557685EA0116101185 +B1206344525812N00557687EA0115801183 +B1206364525799N00557689EA0115501180 +B1206384525788N00557693EA0115101176 +B1206404525776N00557696EA0114701173 +B1206424525764N00557700EA0114301168 +B1206444525750N00557704EA0114201164 +B1206464525737N00557704EA0114301161 +B1206484525726N00557705EA0114101160 +B1206504525716N00557707EA0113801157 +B1206524525703N00557710EA0113701155 +B1206544525691N00557713EA0113601155 +B1206564525680N00557716EA0113401153 +B1206584525668N00557718EA0113101150 +B1207004525655N00557720EA0112701147 +B1207024525641N00557721EA0112401144 +B1207044525626N00557720EA0112401142 +B1207064525612N00557719EA0112501141 +B1207084525599N00557718EA0112701142 +B1207104525587N00557716EA0112701143 +B1207124525576N00557714EA0112501143 +B1207144525564N00557713EA0112201142 +B1207164525551N00557712EA0112001140 +B1207184525538N00557710EA0111901139 +B1207204525527N00557708EA0111601137 +B1207224525515N00557707EA0111101135 +B1207244525502N00557706EA0110801132 +B1207264525490N00557706EA0110801130 +B1207284525479N00557707EA0110901130 +B1207304525469N00557707EA0111201131 +B1207324525460N00557707EA0111101131 +B1207344525451N00557709EA0110701129 +B1207364525441N00557710EA0110301126 +B1207384525430N00557711EA0110001122 +B1207404525419N00557712EA0109501119 +B1207424525407N00557712EA0108901114 +B1207444525395N00557712EA0108701109 +B1207464525383N00557709EA0108601107 +B1207484525374N00557703EA0108601106 +B1207504525364N00557696EA0108601105 +B1207524525354N00557689EA0109301105 +B1207544525346N00557684EA0109801107 +B1207564525342N00557680EA0109901109 +B1207584525335N00557682EA0109901111 +B1208004525336N00557695EA0110001112 +B1208024525349N00557702EA0110201114 +B1208044525363N00557690EA0110601116 +B1208064525364N00557670EA0110801120 +B1208084525356N00557654EA0111201126 +B1208104525347N00557651EA0111601132 +B1208124525341N00557658EA0111801136 +B1208144525339N00557670EA0112001140 +B1208164525347N00557678EA0112101141 +B1208184525362N00557669EA0112601144 +B1208204525369N00557653EA0112601146 +B1208224525369N00557633EA0112601147 +B1208244525364N00557618EA0112801148 +B1208264525354N00557616EA0113001149 +B1208284525343N00557620EA0113701153 +B1208304525335N00557622EA0114401159 +B1208324525328N00557621EA0114801164 +B1208344525324N00557628EA0114701168 +B1208364525330N00557641EA0114801171 +B1208384525343N00557637EA0115001173 +B1208404525350N00557617EA0115401175 +B1208424525347N00557600EA0115801179 +B1208444525339N00557597EA0116001181 +B1208464525330N00557606EA0116501186 +B1208484525330N00557617EA0116501189 +B1208504525340N00557624EA0116501192 +B1208524525353N00557614EA0116701193 +B1208544525359N00557596EA0117201195 +B1208564525354N00557581EA0117601198 +B1208584525344N00557576EA0117901201 +B1209004525335N00557580EA0118201204 +B1209024525333N00557594EA0118201206 +B1209044525342N00557603EA0118201207 +B1209064525355N00557598EA0118301207 +B1209084525362N00557582EA0118301207 +B1209104525359N00557563EA0118901209 +B1209124525354N00557551EA0119701214 +B1209144525350N00557541EA0119901219 +B1209164525343N00557531EA0120101221 +B1209184525330N00557530EA0120401224 +B1209204525324N00557543EA0120601226 +B1209224525330N00557556EA0121001228 +B1209244525341N00557555EA0121401232 +B1209264525349N00557542EA0121701236 +B1209284525348N00557525EA0122101240 +B1209304525338N00557514EA0122501244 +B1209324525327N00557519EA0122701248 +B1209344525324N00557533EA0122901251 +B1209364525332N00557542EA0123001253 +B1209384525343N00557538EA0123101255 +B1209404525348N00557521EA0123501257 +B1209424525346N00557502EA0124201262 +B1209444525341N00557487EA0124701268 +B1209464525331N00557481EA0125301274 +B1209484525321N00557482EA0125601279 +B1209504525315N00557492EA0125501282 +B1209524525321N00557505EA0125501285 +B1209544525331N00557499EA0125601286 +B1209564525336N00557478EA0126201288 +B1209584525333N00557460EA0126701292 +B1210004525324N00557449EA0127201297 +B1210024525316N00557440EA0127501300 +B1210044525307N00557437EA0127501303 +B1210064525299N00557448EA0127601304 +B1210084525302N00557461EA0128001307 +B1210104525312N00557457EA0128201309 +B1210124525319N00557442EA0128801312 +B1210144525319N00557425EA0129201316 +B1210164525314N00557412EA0129401318 +B1210184525305N00557405EA0129601320 +B1210204525297N00557413EA0129701321 +B1210224525298N00557426EA0129801322 +B1210244525307N00557431EA0130201324 +B1210264525316N00557421EA0130501326 +B1210284525319N00557403EA0130701328 +B1210304525312N00557388EA0130901331 +B1210324525302N00557382EA0131101334 +B1210344525294N00557385EA0131201336 +B1210364525291N00557397EA0131301338 +B1210384525297N00557407EA0131401339 +B1210404525307N00557404EA0131501341 +B1210424525313N00557390EA0131701343 +B1210444525315N00557374EA0131801345 +B1210464525313N00557360EA0132001347 +B1210484525308N00557347EA0132101348 +B1210504525300N00557339EA0132201349 +B1210524525291N00557339EA0132301350 +B1210544525284N00557349EA0132301351 +B1210564525287N00557363EA0132501351 +B1210584525296N00557362EA0132701352 +B1211004525302N00557346EA0132801353 +B1211024525300N00557329EA0132801354 +B1211044525292N00557315EA0132901355 +B1211064525281N00557309EA0132901355 +B1211084525272N00557314EA0132701355 +B1211104525271N00557329EA0132501353 +B1211124525282N00557330EA0132401352 +B1211144525291N00557317EA0132401352 +B1211164525295N00557301EA0132401352 +B1211184525296N00557282EA0132401352 +B1211204525292N00557264EA0132401352 +B1211224525284N00557251EA0132201351 +B1211244525274N00557243EA0131801348 +B1211264525261N00557238EA0131501345 +B1211284525248N00557231EA0131401342 +B1211304525235N00557224EA0131401341 +B1211324525224N00557219EA0131401341 +B1211344525214N00557211EA0131101339 +B1211364525203N00557200EA0130901337 +B1211384525192N00557188EA0131001336 +B1211404525182N00557177EA0131001336 +B1211424525173N00557168EA0131001337 +B1211444525164N00557162EA0130901337 +B1211464525155N00557154EA0130801335 +B1211484525145N00557146EA0130601333 +B1211504525133N00557137EA0130501332 +B1211524525123N00557127EA0130401331 +B1211544525112N00557115EA0130201330 +B1211564525100N00557104EA0130101328 +B1211584525088N00557094EA0129801327 +B1212004525076N00557084EA0129601325 +B1212024525063N00557074EA0129401323 +B1212044525051N00557063EA0129101321 +B1212064525040N00557054EA0128601317 +B1212084525027N00557043EA0128001312 +B1212104525015N00557031EA0127701308 +B1212124525003N00557022EA0127401305 +B1212144524991N00557015EA0127001300 +B1212164524977N00557010EA0126501295 +B1212184524964N00557007EA0126201291 +B1212204524950N00557005EA0125701287 +B1212224524936N00557004EA0125301282 +B1212244524922N00557003EA0124901277 +B1212264524911N00557000EA0124301272 +B1212284524899N00557000EA0123801266 +B1212304524886N00557001EA0123501260 +B1212324524875N00557001EA0123501256 +B1212344524865N00557000EA0123401253 +B1212364524853N00557001EA0123401253 +B1212384524841N00557002EA0123501254 +B1212404524830N00557004EA0123501255 +B1212424524817N00557006EA0123601256 +B1212444524805N00557007EA0123901258 +B1212464524794N00557009EA0124301261 +B1212484524784N00557010EA0124601264 +B1212504524777N00557019EA0124701267 +B1212524524778N00557036EA0125101269 +B1212544524787N00557044EA0125401272 +B1212564524798N00557033EA0125601274 +B1212584524797N00557012EA0125701278 +B1213004524784N00557007EA0125901281 +B1213024524775N00557019EA0126401285 +B1213044524777N00557034EA0126801288 +B1213064524786N00557040EA0127201293 +B1213084524796N00557037EA0127501297 +B1213104524801N00557024EA0127601301 +B1213124524799N00557006EA0127601303 +B1213144524787N00557000EA0127901305 +B1213164524777N00557009EA0128201308 +B1213184524778N00557022EA0128601310 +B1213204524788N00557031EA0129101315 +B1213224524798N00557029EA0129401319 +B1213244524806N00557017EA0129801322 +B1213264524805N00556999EA0130101326 +B1213284524796N00556987EA0130301328 +B1213304524784N00556992EA0130501330 +B1213324524781N00557006EA0130901331 +B1213344524791N00557018EA0131401337 +B1213364524800N00557019EA0131901342 +B1213384524807N00557012EA0132101345 +B1213404524805N00556993EA0132201348 +B1213424524793N00556982EA0132701352 +B1213444524783N00556990EA0132901355 +B1213464524785N00557006EA0133201358 +B1213484524796N00557012EA0133601362 +B1213504524805N00557001EA0134001364 +B1213524524807N00556982EA0134501368 +B1213544524801N00556963EA0134701372 +B1213564524787N00556959EA0135001375 +B1213584524779N00556972EA0135101377 +B1214004524784N00556985EA0135301380 +B1214024524795N00556986EA0135701382 +B1214044524802N00556973EA0136201386 +B1214064524801N00556956EA0136501390 +B1214084524793N00556942EA0136801394 +B1214104524782N00556939EA0136901396 +B1214124524773N00556950EA0137001398 +B1214144524776N00556964EA0137201400 +B1214164524787N00556968EA0137701402 +B1214184524798N00556963EA0138301407 +B1214204524807N00556956EA0138701412 +B1214224524814N00556946EA0138801415 +B1214244524815N00556927EA0138701417 +B1214264524807N00556909EA0139101419 +B1214284524793N00556911EA0139401421 +B1214304524787N00556921EA0139501423 +B1214324524792N00556933EA0139801425 +B1214344524802N00556933EA0140101428 +B1214364524809N00556920EA0140201431 +B1214384524811N00556903EA0140401431 +B1214404524805N00556886EA0140601433 +B1214424524793N00556881EA0140701435 +B1214444524784N00556890EA0140901436 +B1214464524783N00556903EA0141101439 +B1214484524789N00556913EA0141301441 +B1214504524800N00556915EA0141601443 +B1214524524811N00556909EA0141901446 +B1214544524818N00556896EA0141901448 +B1214564524818N00556877EA0141701449 +B1214584524810N00556862EA0141701449 +B1215004524797N00556864EA0141901449 +B1215024524792N00556876EA0142101450 +B1215044524797N00556888EA0142301451 +B1215064524808N00556891EA0142501453 +B1215084524819N00556885EA0142601454 +B1215104524826N00556876EA0142501454 +B1215124524829N00556862EA0142201453 +B1215144524827N00556845EA0141901451 +B1215164524815N00556837EA0141701448 +B1215184524803N00556841EA0141701447 +B1215204524798N00556850EA0141801446 +B1215224524798N00556860EA0141901447 +B1215244524800N00556870EA0142001447 +B1215264524803N00556881EA0142101449 +B1215284524804N00556891EA0142101449 +B1215304524806N00556898EA0142001448 +B1215324524816N00556898EA0142201448 +B1215344524824N00556885EA0142101448 +B1215364524824N00556870EA0141701447 +B1215384524818N00556855EA0141401444 +B1215404524809N00556840EA0141501443 +B1215424524803N00556823EA0141701443 +B1215444524798N00556807EA0141801445 +B1215464524793N00556789EA0141901446 +B1215484524787N00556771EA0142201447 +B1215504524783N00556755EA0142401450 +B1215524524779N00556741EA0142201451 +B1215544524773N00556725EA0141901451 +B1215564524766N00556709EA0141801450 +B1215584524759N00556693EA0141601448 +B1216004524751N00556679EA0141101445 +B1216024524744N00556664EA0140601440 +B1216044524737N00556648EA0140101435 +B1216064524731N00556632EA0139701431 +B1216084524725N00556617EA0139201425 +B1216104524717N00556601EA0138801420 +B1216124524710N00556584EA0138501416 +B1216144524703N00556567EA0138301413 +B1216164524696N00556550EA0137901409 +B1216184524690N00556532EA0137601405 +B1216204524682N00556516EA0137501403 +B1216224524676N00556502EA0137401402 +B1216244524669N00556487EA0137401401 +B1216264524663N00556471EA0137601401 +B1216284524659N00556455EA0137601402 +B1216304524654N00556440EA0137501401 +B1216324524647N00556424EA0137401400 +B1216344524640N00556407EA0137401400 +B1216364524634N00556392EA0137301400 +B1216384524628N00556380EA0137101399 +B1216404524621N00556367EA0136701397 +B1216424524613N00556354EA0136201393 +B1216444524606N00556340EA0135801388 +B1216464524600N00556325EA0135601385 +B1216484524592N00556311EA0135501382 +B1216504524585N00556296EA0135501381 +B1216524524578N00556281EA0135801381 +B1216544524572N00556267EA0136001382 +B1216564524567N00556253EA0136101384 +B1216584524563N00556238EA0136201385 +B1217004524560N00556221EA0136501387 +B1217024524558N00556205EA0137101391 +B1217044524554N00556192EA0137501395 +B1217064524545N00556190EA0137701399 +B1217084524537N00556203EA0138101403 +B1217104524538N00556217EA0138501407 +B1217124524548N00556220EA0138701411 +B1217144524558N00556205EA0138901414 +B1217164524560N00556187EA0139201417 +B1217184524558N00556170EA0139701422 +B1217204524556N00556155EA0140301427 +B1217224524549N00556144EA0140801432 +B1217244524540N00556138EA0141101437 +B1217264524531N00556148EA0141101440 +B1217284524533N00556164EA0141401444 +B1217304524545N00556164EA0141901447 +B1217324524554N00556148EA0142501452 +B1217344524553N00556133EA0142901456 +B1217364524546N00556123EA0143201459 +B1217384524536N00556128EA0143401463 +B1217404524536N00556142EA0143601465 +B1217424524546N00556150EA0144101467 +B1217444524558N00556143EA0144501470 +B1217464524563N00556129EA0144801473 +B1217484524566N00556114EA0145101476 +B1217504524565N00556102EA0145101478 +B1217524524561N00556090EA0145201478 +B1217544524551N00556082EA0145601480 +B1217564524540N00556085EA0146201482 +B1217584524531N00556091EA0146801487 +B1218004524525N00556098EA0147101492 +B1218024524526N00556112EA0147101496 +B1218044524537N00556122EA0147401499 +B1218064524549N00556114EA0147701502 +B1218084524554N00556095EA0148101506 +B1218104524548N00556080EA0148701510 +B1218124524537N00556078EA0149201515 +B1218144524529N00556088EA0149501519 +B1218164524528N00556103EA0149801523 +B1218184524536N00556113EA0150001526 +B1218204524548N00556106EA0150201529 +B1218224524555N00556088EA0150801532 +B1218244524551N00556071EA0151301538 +B1218264524543N00556059EA0152001545 +B1218284524536N00556049EA0152701552 +B1218304524528N00556043EA0153201558 +B1218324524519N00556050EA0153501563 +B1218344524518N00556064EA0153901568 +B1218364524529N00556075EA0154401572 +B1218384524540N00556064EA0154801576 +B1218404524544N00556045EA0155501581 +B1218424524540N00556030EA0156201589 +B1218444524534N00556019EA0156801595 +B1218464524526N00556013EA0156901600 +B1218484524516N00556022EA0157101604 +B1218504524517N00556039EA0157301608 +B1218524524529N00556045EA0157701612 +B1218544524544N00556037EA0158301615 +B1218564524553N00556021EA0159101621 +B1218584524554N00556004EA0159501627 +B1219004524550N00555991EA0159701632 +B1219024524542N00555987EA0159701634 +B1219044524535N00555999EA0159801636 +B1219064524540N00556016EA0160201638 +B1219084524556N00556020EA0160701640 +B1219104524573N00556015EA0161501646 +B1219124524586N00556007EA0162301653 +B1219144524592N00555995EA0162701658 +B1219164524588N00555980EA0163001662 +B1219184524579N00555980EA0163401666 +B1219204524575N00555997EA0163701669 +B1219224524587N00556013EA0164101672 +B1219244524603N00556012EA0164801676 +B1219264524613N00556004EA0165001681 +B1219284524619N00555994EA0164901683 +B1219304524618N00555980EA0164701683 +B1219324524610N00555971EA0164701682 +B1219344524597N00555974EA0165401684 +B1219364524587N00555979EA0166301688 +B1219384524581N00555981EA0166701694 +B1219404524577N00555983EA0166701697 +B1219424524576N00555998EA0167001698 +B1219444524585N00556015EA0167701702 +B1219464524599N00556014EA0168201705 +B1219484524606N00556002EA0168301709 +B1219504524601N00555987EA0168901714 +B1219524524593N00555980EA0169601721 +B1219544524586N00555987EA0169901726 +B1219564524583N00556000EA0170101730 +B1219584524586N00556015EA0170301733 +B1220004524596N00556026EA0170901736 +B1220024524608N00556023EA0171501742 +B1220044524613N00556013EA0171901746 +B1220064524610N00556001EA0172501753 +B1220084524600N00556000EA0172801758 +B1220104524591N00556012EA0173101762 +B1220124524590N00556031EA0173701766 +B1220144524600N00556043EA0174101770 +B1220164524611N00556042EA0174501775 +B1220184524617N00556031EA0174801778 +B1220204524614N00556018EA0175201783 +B1220224524603N00556016EA0175401786 +B1220244524593N00556027EA0175901790 +B1220264524586N00556043EA0176501795 +B1220284524586N00556060EA0176801799 +B1220304524592N00556075EA0177101802 +B1220324524603N00556079EA0177201805 +B1220344524611N00556068EA0177501808 +B1220364524612N00556054EA0178001811 +B1220384524603N00556047EA0178401815 +B1220404524592N00556048EA0179001821 +B1220424524582N00556052EA0179201825 +B1220444524574N00556063EA0179201827 +B1220464524572N00556083EA0179301829 +B1220484524581N00556097EA0179501831 +B1220504524593N00556093EA0179601832 +B1220524524599N00556081EA0179901834 +B1220544524598N00556068EA0180301837 +B1220564524594N00556057EA0180601841 +B1220584524588N00556048EA0180701843 +B1221004524582N00556037EA0181001844 +B1221024524578N00556025EA0181301848 +B1221044524575N00556013EA0181801851 +B1221064524573N00556000EA0182201856 +B1221084524569N00555989EA0182401859 +B1221104524562N00555981EA0182601861 +B1221124524553N00555983EA0182901863 +B1221144524548N00555994EA0183101865 +B1221164524551N00556008EA0183101867 +B1221184524560N00556018EA0183101867 +B1221204524573N00556019EA0183101867 +B1221224524584N00556013EA0183201867 +B1221244524591N00556001EA0183301868 +B1221264524596N00555987EA0183501869 +B1221284524600N00555976EA0183701871 +B1221304524601N00555965EA0183601871 +B1221324524602N00555952EA0183501870 +B1221344524608N00555936EA0183801870 +B1221364524613N00555919EA0184201872 +B1221384524615N00555907EA0184601876 +B1221404524617N00555896EA0184601878 +B1221424524620N00555881EA0184701879 +B1221444524623N00555865EA0184801880 +B1221464524626N00555850EA0184901881 +B1221484524628N00555834EA0185101883 +B1221504524631N00555818EA0185301886 +B1221524524633N00555801EA0185401887 +B1221544524634N00555785EA0185301888 +B1221564524635N00555769EA0185201887 +B1221584524634N00555752EA0185101886 +B1222004524633N00555734EA0185001885 +B1222024524633N00555715EA0185101885 +B1222044524631N00555697EA0185301886 +B1222064524629N00555683EA0185301887 +B1222084524628N00555670EA0185101886 +B1222104524625N00555654EA0185001885 +B1222124524621N00555640EA0185201885 +B1222144524617N00555627EA0185801887 +B1222164524614N00555616EA0186301890 +B1222184524611N00555605EA0186501894 +B1222204524609N00555592EA0186601896 +B1222224524605N00555575EA0186701897 +B1222244524600N00555557EA0187301901 +B1222264524594N00555541EA0187801906 +B1222284524590N00555526EA0188001910 +B1222304524584N00555510EA0187801912 +B1222324524576N00555492EA0187801912 +B1222344524567N00555472EA0188401916 +B1222364524560N00555455EA0188701921 +B1222384524554N00555442EA0188601923 +B1222404524546N00555429EA0188501923 +B1222424524537N00555416EA0188401922 +B1222444524529N00555403EA0188301920 +B1222464524521N00555390EA0188201919 +B1222484524512N00555377EA0188201918 +B1222504524504N00555366EA0188101918 +B1222524524495N00555354EA0188101917 +B1222544524485N00555342EA0188301917 +B1222564524476N00555329EA0188601919 +B1222584524466N00555316EA0189001921 +B1223004524455N00555307EA0189601925 +B1223024524444N00555308EA0190901930 +B1223044524439N00555303EA0191601938 +B1223064524434N00555296EA0192201945 +B1223084524424N00555302EA0192901952 +B1223104524423N00555317EA0193501958 +B1223124524439N00555319EA0194301966 +B1223144524451N00555307EA0195501976 +B1223164524449N00555293EA0196001986 +B1223184524441N00555283EA0196701994 +B1223204524432N00555278EA0197302002 +B1223224524424N00555290EA0197902009 +B1223244524427N00555307EA0198602016 +B1223264524440N00555311EA0199602023 +B1223284524449N00555297EA0200302031 +B1223304524449N00555283EA0200802038 +B1223324524446N00555270EA0201102042 +B1223344524436N00555262EA0201702047 +B1223364524427N00555269EA0202402053 +B1223384524426N00555283EA0203002060 +B1223404524435N00555291EA0203602066 +B1223424524448N00555286EA0204502074 +B1223444524453N00555272EA0205102081 +B1223464524451N00555256EA0205602088 +B1223484524447N00555243EA0206102094 +B1223504524440N00555235EA0206502099 +B1223524524431N00555238EA0207302105 +B1223544524427N00555252EA0207802110 +B1223564524436N00555267EA0208502116 +B1223584524449N00555264EA0209202124 +B1224004524454N00555246EA0209602129 +B1224024524452N00555229EA0210402137 +B1224044524446N00555222EA0211002143 +B1224064524437N00555223EA0211602149 +B1224084524435N00555236EA0212002155 +B1224104524440N00555251EA0212702160 +B1224124524452N00555256EA0213402166 +B1224144524464N00555244EA0213902171 +B1224164524470N00555229EA0214402178 +B1224184524467N00555215EA0214902184 +B1224204524461N00555207EA0215402188 +B1224224524453N00555208EA0215802193 +B1224244524448N00555220EA0216102197 +B1224264524455N00555235EA0216702201 +B1224284524469N00555240EA0217402206 +B1224304524483N00555234EA0218002213 +B1224324524493N00555224EA0218402219 +B1224344524497N00555211EA0218602223 +B1224364524495N00555196EA0218802226 +B1224384524487N00555188EA0219102228 +B1224404524479N00555180EA0219902233 +B1224424524473N00555171EA0220902239 +B1224444524468N00555164EA0221402246 +B1224464524461N00555155EA0221802251 +B1224484524452N00555144EA0222102255 +B1224504524444N00555136EA0222302259 +B1224524524434N00555130EA0222502261 +B1224544524423N00555123EA0222702263 +B1224564524413N00555117EA0222702265 +B1224584524403N00555113EA0222702266 +B1225004524392N00555109EA0222902267 +B1225024524382N00555103EA0223002268 +B1225044524371N00555097EA0223202270 +B1225064524361N00555091EA0223402271 +B1225084524350N00555085EA0223502273 +B1225104524340N00555078EA0223602274 +B1225124524330N00555073EA0223702276 +B1225144524320N00555066EA0223802277 +B1225164524310N00555059EA0223902278 +B1225184524299N00555052EA0224102279 +B1225204524288N00555045EA0224302282 +B1225224524279N00555037EA0224402283 +B1225244524269N00555028EA0224502284 +B1225264524258N00555018EA0224602285 +B1225284524248N00555007EA0224702287 +B1225304524238N00554995EA0224602287 +B1225324524226N00554984EA0224302286 +B1225344524215N00554974EA0224102284 +B1225364524204N00554966EA0223602281 +B1225384524193N00554958EA0223202277 +B1225404524181N00554949EA0223002274 +B1225424524170N00554940EA0222902271 +B1225444524158N00554933EA0222602269 +B1225464524148N00554925EA0222502267 +B1225484524138N00554917EA0222402265 +B1225504524128N00554909EA0222202263 +B1225524524117N00554900EA0222302262 +B1225544524107N00554892EA0222302262 +B1225564524097N00554885EA0222502263 +B1225584524087N00554876EA0222502263 +B1226004524077N00554867EA0222502263 +B1226024524066N00554858EA0222402263 +B1226044524055N00554850EA0222402263 +B1226064524044N00554841EA0222202262 +B1226084524032N00554833EA0222202261 +B1226104524022N00554826EA0222002260 +B1226124524011N00554820EA0221602257 +B1226144523999N00554813EA0221502255 +B1226164523988N00554805EA0221502254 +B1226184523978N00554799EA0221402253 +B1226204523967N00554793EA0221202251 +B1226224523955N00554786EA0221102249 +B1226244523944N00554778EA0221402248 +B1226264523936N00554775EA0221602249 +B1226284523928N00554770EA0221802250 +B1226304523919N00554762EA0222102253 +B1226324523909N00554755EA0222502257 +B1226344523901N00554750EA0223002261 +B1226364523895N00554745EA0223102264 +B1226384523887N00554739EA0223202266 +B1226404523878N00554730EA0223502268 +B1226424523870N00554722EA0223802272 +B1226444523861N00554714EA0224002274 +B1226464523852N00554706EA0224202277 +B1226484523843N00554696EA0224502280 +B1226504523836N00554684EA0224702283 +B1226524523828N00554675EA0224902285 +B1226544523819N00554666EA0224902286 +B1226564523811N00554658EA0225002288 +B1226584523803N00554651EA0225102288 +B1227004523795N00554646EA0225002289 +B1227024523786N00554643EA0224902288 +B1227044523776N00554640EA0224902287 +B1227064523765N00554636EA0225002288 +B1227084523756N00554634EA0225102289 +B1227104523746N00554635EA0224902288 +B1227124523734N00554634EA0224802287 +B1227144523722N00554633EA0224902287 +B1227164523713N00554631EA0224902288 +B1227184523703N00554626EA0224902287 +B1227204523693N00554623EA0225102288 +B1227224523684N00554621EA0225302290 +B1227244523674N00554618EA0225202290 +B1227264523663N00554616EA0225102289 +B1227284523651N00554614EA0225002288 +B1227304523639N00554609EA0224902287 +B1227324523628N00554606EA0224902287 +B1227344523616N00554602EA0224802286 +B1227364523603N00554597EA0224802285 +B1227384523589N00554594EA0225002286 +B1227404523576N00554591EA0225002286 +B1227424523562N00554587EA0225202287 +B1227444523548N00554584EA0225302289 +B1227464523536N00554581EA0225302289 +B1227484523522N00554576EA0225302289 +B1227504523509N00554569EA0225502290 +B1227524523497N00554563EA0225702292 +B1227544523485N00554556EA0225702293 +B1227564523473N00554551EA0225702293 +B1227584523460N00554546EA0225702293 +B1228004523447N00554541EA0225802294 +B1228024523434N00554535EA0225802294 +B1228044523421N00554529EA0225802294 +B1228064523405N00554524EA0225902295 +B1228084523392N00554520EA0226002296 +B1228104523379N00554516EA0226002296 +B1228124523365N00554511EA0226202297 +B1228144523352N00554507EA0226302299 +B1228164523339N00554505EA0226402300 +B1228184523327N00554502EA0226302301 +B1228204523314N00554499EA0226102300 +B1228224523300N00554496EA0226102300 +B1228244523287N00554493EA0226002299 +B1228264523274N00554489EA0225902298 +B1228284523260N00554485EA0226002298 +B1228304523246N00554482EA0225902298 +B1228324523232N00554478EA0225902298 +B1228344523219N00554476EA0225902297 +B1228364523204N00554473EA0225902297 +B1228384523191N00554468EA0225902297 +B1228404523177N00554463EA0226002297 +B1228424523164N00554459EA0225902297 +B1228444523152N00554455EA0225802297 +B1228464523139N00554450EA0225802296 +B1228484523125N00554446EA0225802297 +B1228504523112N00554442EA0225902297 +B1228524523099N00554440EA0225802297 +B1228544523085N00554437EA0225802296 +B1228564523072N00554435EA0225802297 +B1228584523059N00554432EA0225902297 +B1229004523046N00554430EA0225802297 +B1229024523033N00554429EA0225702296 +B1229044523020N00554425EA0225702295 +B1229064523007N00554421EA0225902296 +B1229084522995N00554418EA0226302298 +B1229104522983N00554416EA0226502300 +B1229124522972N00554413EA0226502302 +B1229144522959N00554408EA0226502302 +B1229164522945N00554404EA0226602303 +B1229184522932N00554402EA0226702304 +B1229204522918N00554398EA0226702305 +B1229224522904N00554395EA0226702305 +B1229244522893N00554392EA0226402304 +B1229264522880N00554386EA0226202302 +B1229284522867N00554380EA0226602302 +B1229304522856N00554375EA0226902303 +B1229324522845N00554371EA0226902303 +B1229344522830N00554366EA0227002304 +B1229364522816N00554361EA0227202306 +B1229384522802N00554357EA0227302308 +B1229404522788N00554356EA0227302309 +B1229424522774N00554356EA0227302309 +B1229444522761N00554354EA0227202309 +B1229464522748N00554353EA0226802308 +B1229484522733N00554350EA0226402305 +B1229504522719N00554345EA0226202303 +B1229524522706N00554339EA0225902300 +B1229544522694N00554331EA0225702297 +B1229564522681N00554324EA0225502294 +B1229584522667N00554317EA0225302292 +B1230004522654N00554310EA0225002290 +B1230024522640N00554305EA0224602286 +B1230044522626N00554299EA0224302283 +B1230064522613N00554293EA0224202280 +B1230084522599N00554287EA0224202279 +B1230104522586N00554284EA0224302279 +B1230124522573N00554281EA0224302279 +B1230144522561N00554275EA0224202278 +B1230164522550N00554267EA0224002277 +B1230184522537N00554260EA0223802275 +B1230204522524N00554255EA0223602274 +B1230224522511N00554253EA0223302272 +B1230244522498N00554249EA0223002269 +B1230264522484N00554246EA0222802266 +B1230284522470N00554243EA0222602264 +B1230304522457N00554238EA0222602263 +B1230324522445N00554234EA0222402261 +B1230344522432N00554230EA0222102259 +B1230364522419N00554226EA0221902257 +B1230384522405N00554221EA0221802255 +B1230404522392N00554217EA0221702254 +B1230424522380N00554212EA0221602253 +B1230444522366N00554207EA0221502252 +B1230464522353N00554202EA0221502251 +B1230484522341N00554197EA0221502251 +B1230504522329N00554192EA0221302250 +B1230524522316N00554187EA0221202248 +B1230544522303N00554182EA0221102248 +B1230564522291N00554177EA0220902246 +B1230584522278N00554174EA0220702245 +B1231004522266N00554171EA0220702243 +B1231024522253N00554166EA0220702243 +B1231044522240N00554162EA0220602243 +B1231064522228N00554158EA0220602242 +B1231084522216N00554154EA0220702242 +B1231104522204N00554151EA0220802244 +B1231124522192N00554148EA0220702244 +B1231144522180N00554144EA0220402243 +B1231164522166N00554140EA0220302241 +B1231184522153N00554137EA0220302241 +B1231204522141N00554132EA0220402241 +B1231224522129N00554126EA0220502242 +B1231244522117N00554122EA0220502242 +B1231264522105N00554118EA0220402241 +B1231284522092N00554114EA0220402241 +B1231304522079N00554110EA0220602241 +B1231324522067N00554106EA0221102243 +B1231344522058N00554100EA0221202245 +B1231364522050N00554091EA0221102245 +B1231384522038N00554084EA0221202245 +B1231404522027N00554077EA0221402247 +B1231424522018N00554071EA0221302248 +B1231444522010N00554065EA0221002248 +B1231464522000N00554057EA0220602246 +B1231484521988N00554050EA0220302244 +B1231504521976N00554043EA0220202242 +B1231524521965N00554035EA0220102240 +B1231544521954N00554026EA0220102239 +B1231564521943N00554018EA0220402239 +B1231584521934N00554012EA0220802241 +B1232004521926N00554008EA0221202244 +B1232024521917N00554002EA0221502247 +B1232044521908N00553995EA0221702250 +B1232064521899N00553989EA0222202254 +B1232084521891N00553984EA0222502258 +B1232104521883N00553979EA0222802261 +B1232124521873N00553975EA0223102264 +B1232144521862N00553971EA0223502268 +B1232164521851N00553965EA0223902273 +B1232184521841N00553957EA0224402277 +B1232204521832N00553952EA0224702281 +B1232224521823N00553947EA0224902284 +B1232244521813N00553939EA0225102287 +B1232264521802N00553933EA0225402289 +B1232284521792N00553926EA0226002293 +B1232304521782N00553916EA0226402297 +B1232324521772N00553909EA0226902302 +B1232344521761N00553903EA0227502307 +B1232364521753N00553894EA0228302314 +B1232384521746N00553883EA0229302321 +B1232404521740N00553873EA0230302331 +B1232424521732N00553865EA0231102340 +B1232444521724N00553858EA0231902349 +B1232464521716N00553850EA0232702358 +B1232484521707N00553844EA0233302366 +B1232504521698N00553836EA0233702372 +B1232524521689N00553829EA0234102378 +B1232544521679N00553821EA0234502382 +B1232564521669N00553811EA0235302388 +B1232584521661N00553800EA0236002395 +B1233004521653N00553790EA0236102400 +B1233024521643N00553780EA0236302403 +B1233044521634N00553771EA0236602407 +B1233064521626N00553763EA0236502409 +B1233084521617N00553753EA0236502409 +B1233104521607N00553741EA0237102411 +B1233124521599N00553731EA0237702415 +B1233144521592N00553724EA0237902418 +B1233164521583N00553716EA0238202420 +B1233184521573N00553708EA0238802424 +B1233204521563N00553698EA0239302429 +B1233224521554N00553688EA0239602433 +B1233244521543N00553678EA0240002437 +B1233264521534N00553667EA0240202440 +B1233284521524N00553655EA0240302443 +B1233304521514N00553641EA0240902446 +B1233324521509N00553623EA0241502450 +B1233344521503N00553609EA0241802454 +B1233364521495N00553597EA0242202458 +B1233384521490N00553582EA0242602462 +B1233404521487N00553567EA0242702465 +B1233424521483N00553550EA0242802467 +B1233444521475N00553535EA0242902469 +B1233464521469N00553520EA0243002470 +B1233484521464N00553502EA0243102471 +B1233504521458N00553486EA0243302473 +B1233524521450N00553471EA0243502475 +B1233544521443N00553457EA0243402476 +B1233564521433N00553444EA0243102476 +B1233584521421N00553430EA0243002475 +B1234004521408N00553416EA0243402475 +B1234024521399N00553404EA0243402477 +B1234044521391N00553393EA0243002476 +B1234064521382N00553380EA0243002475 +B1234084521372N00553369EA0243102476 +B1234104521362N00553364EA0242902475 +B1234124521349N00553360EA0243202474 +B1234144521336N00553360EA0243502476 +B1234164521325N00553365EA0243502477 +B1234184521314N00553369EA0243102477 +B1234204521301N00553369EA0242802474 +B1234224521289N00553364EA0242402470 +B1234244521279N00553359EA0242002466 +B1234264521266N00553355EA0241602461 +B1234284521254N00553350EA0241502458 +B1234304521242N00553345EA0241502457 +B1234324521231N00553341EA0241302456 +B1234344521221N00553336EA0240802453 +B1234364521211N00553330EA0240202449 +B1234384521199N00553324EA0239802444 +B1234404521189N00553320EA0239302440 +B1234424521179N00553318EA0238602434 +B1234444521168N00553316EA0238002426 +B1234464521156N00553312EA0237602420 +B1234484521144N00553306EA0237502416 +B1234504521135N00553300EA0237002411 +B1234524521125N00553292EA0236402405 +B1234544521114N00553284EA0236102400 +B1234564521102N00553281EA0235802396 +B1234584521092N00553278EA0235502393 +B1235004521082N00553273EA0235002389 +B1235024521071N00553267EA0234702384 +B1235044521060N00553263EA0234402382 +B1235064521050N00553261EA0234002379 +B1235084521040N00553260EA0233402374 +B1235104521028N00553257EA0233002369 +B1235124521017N00553252EA0232702366 +B1235144521009N00553247EA0232302362 +B1235164520999N00553241EA0231802357 +B1235184520989N00553234EA0231502353 +B1235204520978N00553229EA0231502350 +B1235224520969N00553224EA0231302349 +B1235244520960N00553219EA0231002345 +B1235264520948N00553213EA0230802343 +B1235284520938N00553210EA0230802343 +B1235304520928N00553206EA0230602341 +B1235324520918N00553201EA0230502340 +B1235344520908N00553196EA0230302339 +B1235364520899N00553191EA0229902337 +B1235384520890N00553184EA0229502333 +B1235404520879N00553178EA0229102329 +B1235424520869N00553173EA0228702326 +B1235444520861N00553167EA0228002322 +B1235464520852N00553161EA0227202315 +B1235484520841N00553155EA0226802310 +B1235504520832N00553148EA0226602307 +B1235524520824N00553143EA0226002301 +B1235544520814N00553135EA0225702297 +B1235564520804N00553130EA0225402293 +B1235584520795N00553127EA0225202290 +B1236004520786N00553120EA0224902286 +B1236024520777N00553113EA0225102285 +B1236044520769N00553106EA0225102284 +B1236064520760N00553099EA0225102284 +B1236084520749N00553091EA0225102285 +B1236104520740N00553083EA0225302286 +B1236124520731N00553075EA0225102286 +B1236144520721N00553067EA0224802285 +B1236164520712N00553058EA0224602283 +B1236184520704N00553050EA0224302280 +B1236204520695N00553041EA0224202279 +B1236224520686N00553034EA0224302279 +B1236244520678N00553027EA0224202278 +B1236264520670N00553020EA0223802276 +B1236284520659N00553014EA0223702274 +B1236304520648N00553007EA0223902274 +B1236324520639N00552999EA0224002275 +B1236344520629N00552991EA0224202277 +B1236364520619N00552983EA0224602279 +B1236384520611N00552975EA0224902282 +B1236404520603N00552969EA0225002284 +B1236424520594N00552965EA0224602285 +B1236444520585N00552961EA0224102283 +B1236464520576N00552956EA0223702279 +B1236484520567N00552950EA0223102274 +B1236504520555N00552944EA0222802269 +B1236524520543N00552936EA0223002265 +B1236544520534N00552927EA0223202264 +B1236564520525N00552921EA0223402264 +B1236584520515N00552915EA0223302265 +B1237004520503N00552909EA0223202264 +B1237024520491N00552904EA0223302265 +B1237044520480N00552898EA0223302266 +B1237064520470N00552892EA0223302266 +B1237084520459N00552885EA0223502267 +B1237104520448N00552877EA0223902269 +B1237124520440N00552869EA0224202273 +B1237144520433N00552862EA0224002275 +B1237164520424N00552856EA0223702276 +B1237184520415N00552850EA0223502274 +B1237204520405N00552842EA0223502274 +B1237224520396N00552834EA0223602275 +B1237244520387N00552825EA0223902276 +B1237264520377N00552816EA0224402278 +B1237284520369N00552807EA0224802282 +B1237304520362N00552796EA0225202286 +B1237324520354N00552783EA0225902291 +B1237344520344N00552774EA0226702297 +B1237364520336N00552768EA0227002303 +B1237384520328N00552765EA0227402307 +B1237404520319N00552759EA0228002312 +B1237424520310N00552752EA0228702319 +B1237444520301N00552748EA0229202325 +B1237464520292N00552743EA0229902331 +B1237484520283N00552740EA0230402338 +B1237504520275N00552736EA0230802343 +B1237524520265N00552731EA0231202347 +B1237544520253N00552725EA0231802353 +B1237564520243N00552720EA0232202359 +B1237584520233N00552719EA0232502363 +B1238004520223N00552717EA0232802366 +B1238024520214N00552711EA0233102369 +B1238044520205N00552704EA0233402372 +B1238064520197N00552694EA0233602374 +B1238084520189N00552684EA0233902378 +B1238104520180N00552675EA0234102380 +B1238124520170N00552668EA0234102382 +B1238144520160N00552659EA0234002382 +B1238164520147N00552650EA0234102382 +B1238184520135N00552642EA0234602383 +B1238204520123N00552636EA0235002386 +B1238224520112N00552630EA0235302389 +B1238244520101N00552621EA0236002394 +B1238264520091N00552613EA0236702399 +B1238284520081N00552606EA0237302406 +B1238304520072N00552599EA0237802411 +B1238324520063N00552593EA0238102416 +B1238344520054N00552587EA0238002419 +B1238364520045N00552581EA0237702421 +B1238384520034N00552573EA0237602421 +B1238404520025N00552569EA0237502420 +B1238424520018N00552565EA0237202418 +B1238444520009N00552560EA0237002415 +B1238464519998N00552551EA0237002413 +B1238484519989N00552542EA0237302413 +B1238504519982N00552534EA0237402413 +B1238524519974N00552527EA0237502413 +B1238544519965N00552519EA0237702414 +B1238564519957N00552512EA0237902416 +B1238584519949N00552507EA0237902418 +B1239004519939N00552503EA0237802417 +B1239024519928N00552496EA0238702419 +B1239044519920N00552489EA0239802423 +B1239064519912N00552484EA0240302430 +B1239084519903N00552480EA0240502433 +B1239104519893N00552475EA0240502436 +B1239124519882N00552469EA0240402437 +B1239144519873N00552462EA0240202437 +B1239164519863N00552455EA0239902436 +B1239184519855N00552446EA0239702433 +B1239204519845N00552437EA0239602432 +B1239224519835N00552429EA0239602432 +B1239244519825N00552422EA0239402431 +B1239264519815N00552413EA0239102429 +B1239284519804N00552404EA0238802427 +B1239304519793N00552395EA0238602425 +B1239324519785N00552387EA0238002422 +B1239344519775N00552378EA0237302418 +B1239364519763N00552369EA0237002412 +B1239384519752N00552360EA0236702409 +B1239404519742N00552352EA0236302405 +B1239424519733N00552345EA0235802400 +B1239444519722N00552337EA0235402396 +B1239464519712N00552328EA0235302393 +B1239484519703N00552320EA0235402391 +B1239504519693N00552313EA0235202390 +B1239524519680N00552307EA0234902387 +B1239544519666N00552300EA0234702385 +B1239564519654N00552293EA0234502384 +B1239584519644N00552285EA0234502382 +B1240004519632N00552275EA0234802382 +B1240024519621N00552268EA0235002383 +B1240044519610N00552264EA0234902383 +B1240064519598N00552257EA0234502381 +B1240084519586N00552247EA0234302380 +B1240104519574N00552239EA0234002377 +B1240124519562N00552233EA0233502374 +B1240144519549N00552226EA0233002369 +B1240164519537N00552218EA0232502364 +B1240184519524N00552208EA0232102359 +B1240204519513N00552199EA0231802356 +B1240224519504N00552191EA0231502353 +B1240244519493N00552183EA0231002348 +B1240264519481N00552174EA0230502343 +B1240284519469N00552164EA0230202339 +B1240304519459N00552154EA0230302337 +B1240324519449N00552146EA0230502335 +B1240344519440N00552139EA0230202335 +B1240364519431N00552134EA0229802332 +B1240384519420N00552126EA0229402329 +B1240404519409N00552117EA0229302328 +B1240424519399N00552109EA0229002325 +B1240444519388N00552100EA0228802323 +B1240464519377N00552090EA0228902322 +B1240484519367N00552081EA0228802322 +B1240504519357N00552071EA0228402319 +B1240524519345N00552059EA0228102317 +B1240544519334N00552050EA0228202317 +B1240564519325N00552040EA0228202317 +B1240584519317N00552031EA0228002316 +B1241004519307N00552022EA0227802314 +B1241024519297N00552013EA0227702313 +B1241044519288N00552005EA0227502312 +B1241064519278N00551997EA0227102309 +B1241084519268N00551989EA0226902306 +B1241104519258N00551982EA0226602304 +B1241124519248N00551975EA0226402301 +B1241144519237N00551967EA0226102299 +B1241164519228N00551959EA0225702296 +B1241184519218N00551952EA0225202292 +B1241204519207N00551943EA0224702287 +B1241224519196N00551933EA0224602285 +B1241244519186N00551927EA0224402283 +B1241264519176N00551922EA0224002280 +B1241284519166N00551915EA0223502275 +B1241304519154N00551910EA0223302271 +B1241324519143N00551904EA0223002269 +B1241344519134N00551897EA0222702265 +B1241364519124N00551889EA0222402262 +B1241384519114N00551880EA0222402259 +B1241404519105N00551872EA0222302258 +B1241424519095N00551863EA0222202257 +B1241444519086N00551853EA0222302256 +B1241464519076N00551844EA0222402257 +B1241484519069N00551835EA0222502258 +B1241504519060N00551826EA0222502258 +B1241524519051N00551815EA0222802260 +B1241544519043N00551804EA0223402263 +B1241564519036N00551794EA0223602267 +B1241584519028N00551786EA0223502269 +B1242004519020N00551777EA0223502270 +B1242024519011N00551768EA0223702271 +B1242044519002N00551759EA0224002274 +B1242064518993N00551749EA0224102276 +B1242084518984N00551740EA0224002277 +B1242104518977N00551732EA0223702277 +B1242124518968N00551724EA0223402275 +B1242144518959N00551716EA0223202272 +B1242164518950N00551710EA0223102271 +B1242184518941N00551702EA0223102270 +B1242204518933N00551691EA0223202270 +B1242224518925N00551684EA0223202270 +B1242244518918N00551675EA0223002268 +B1242264518909N00551665EA0223102268 +B1242284518898N00551654EA0223602268 +B1242304518890N00551644EA0224202271 +B1242324518882N00551634EA0224902275 +B1242344518873N00551624EA0225702282 +B1242364518864N00551614EA0226302291 +B1242384518854N00551606EA0226802298 +B1242404518845N00551598EA0227002303 +B1242424518836N00551588EA0227102306 +B1242444518824N00551579EA0227402310 +B1242464518812N00551570EA0228002315 +B1242484518804N00551559EA0228802320 +B1242504518798N00551549EA0229402327 +B1242524518792N00551538EA0229802331 +B1242544518784N00551527EA0230302337 +B1242564518776N00551518EA0230502342 +B1242584518765N00551509EA0230602345 +B1243004518754N00551499EA0230802348 +B1243024518744N00551492EA0230502350 +B1243044518735N00551487EA0229902351 +B1243064518723N00551476EA0230102351 +B1243084518714N00551464EA0230702353 +B1243104518708N00551455EA0230802354 +B1243124518701N00551445EA0231202356 +B1243144518695N00551434EA0231702359 +B1243164518690N00551421EA0232502364 +B1243184518685N00551408EA0233202370 +B1243204518679N00551395EA0233902377 +B1243224518671N00551388EA0234002383 +B1243244518658N00551394EA0234102386 +B1243264518651N00551412EA0234502389 +B1243284518653N00551430EA0235302393 +B1243304518665N00551435EA0236002398 +B1243324518676N00551424EA0236802405 +B1243344518679N00551408EA0237402412 +B1243364518672N00551395EA0237502416 +B1243384518659N00551396EA0237402418 +B1243404518648N00551414EA0237302420 +B1243424518649N00551434EA0237702421 +B1243444518662N00551444EA0238502425 +B1243464518674N00551444EA0239302432 +B1243484518682N00551443EA0239702437 +B1243504518691N00551440EA0240102441 +B1243524518698N00551426EA0240402444 +B1243544518700N00551409EA0240802447 +B1243564518696N00551396EA0241002451 +B1243584518690N00551387EA0241202453 +B1244004518683N00551376EA0241102454 +B1244024518676N00551365EA0241202453 +B1244044518668N00551354EA0241402454 +B1244064518663N00551343EA0241402456 +B1244084518657N00551331EA0241402456 +B1244104518652N00551321EA0241102455 +B1244124518648N00551309EA0240602452 +B1244144518641N00551297EA0240302449 +B1244164518635N00551283EA0240202446 +B1244184518630N00551270EA0240002445 +B1244204518624N00551259EA0239802442 +B1244224518619N00551247EA0239502440 +B1244244518614N00551235EA0239302437 +B1244264518608N00551222EA0239102434 +B1244284518603N00551211EA0238802432 +B1244304518597N00551199EA0238602429 +B1244324518592N00551185EA0238502427 +B1244344518588N00551171EA0238402426 +B1244364518583N00551160EA0238102424 +B1244384518577N00551148EA0237702420 +B1244404518571N00551135EA0237402417 +B1244424518565N00551123EA0237302415 +B1244444518559N00551110EA0237202413 +B1244464518553N00551096EA0237102412 +B1244484518547N00551083EA0237002411 +B1244504518541N00551071EA0236702409 +B1244524518536N00551060EA0236402406 +B1244544518531N00551048EA0236002403 +B1244564518526N00551036EA0235602399 +B1244584518522N00551023EA0235202395 +B1245004518518N00551009EA0234702390 +B1245024518514N00550995EA0234302386 +B1245044518509N00550981EA0233902382 +B1245064518505N00550967EA0233502378 +B1245084518501N00550953EA0233102373 +B1245104518496N00550940EA0232802369 +B1245124518490N00550927EA0232402365 +B1245144518484N00550917EA0232002362 +B1245164518477N00550906EA0231502357 +B1245184518472N00550893EA0231302354 +B1245204518467N00550881EA0230902351 +B1245224518462N00550870EA0230502347 +B1245244518457N00550857EA0230202343 +B1245264518451N00550845EA0229902340 +B1245284518446N00550833EA0229502336 +B1245304518441N00550820EA0229402334 +B1245324518435N00550809EA0229102332 +B1245344518430N00550799EA0228802329 +B1245364518425N00550788EA0228402325 +B1245384518418N00550776EA0228102322 +B1245404518412N00550765EA0227802318 +B1245424518406N00550756EA0227402315 +B1245444518399N00550746EA0227002311 +B1245464518393N00550735EA0226602307 +B1245484518386N00550723EA0226302304 +B1245504518380N00550713EA0226102301 +B1245524518374N00550702EA0225802298 +B1245544518368N00550692EA0225702296 +B1245564518362N00550684EA0225402294 +B1245584518356N00550676EA0225002291 +B1246004518350N00550665EA0224502287 +B1246024518343N00550656EA0224202283 +B1246044518336N00550647EA0223902281 +B1246064518330N00550638EA0223502277 +B1246084518324N00550628EA0223002272 +B1246104518318N00550617EA0222502267 +B1246124518313N00550605EA0222102263 +B1246144518307N00550595EA0221602258 +B1246164518300N00550584EA0221202253 +B1246184518293N00550570EA0221002249 +B1246204518288N00550556EA0221002246 +B1246224518283N00550543EA0220902246 +B1246244518278N00550529EA0220802244 +B1246264518273N00550513EA0220702242 +B1246284518269N00550498EA0220602242 +B1246304518265N00550482EA0220502241 +B1246324518261N00550466EA0220502241 +B1246344518257N00550451EA0220602241 +B1246364518253N00550437EA0220602241 +B1246384518249N00550422EA0220602242 +B1246404518245N00550408EA0220402242 +B1246424518240N00550395EA0220502242 +B1246444518236N00550381EA0220502242 +B1246464518234N00550366EA0220402242 +B1246484518232N00550353EA0220302241 +B1246504518229N00550339EA0220202240 +B1246524518226N00550324EA0220302240 +B1246544518222N00550311EA0220302241 +B1246564518219N00550300EA0220202241 +B1246584518214N00550288EA0220102239 +B1247004518210N00550277EA0219902238 +B1247024518205N00550265EA0219902237 +B1247044518200N00550255EA0219702236 +B1247064518196N00550245EA0219502234 +B1247084518190N00550235EA0219102232 +B1247104518182N00550226EA0219002230 +B1247124518174N00550218EA0218902229 +B1247144518168N00550211EA0218702227 +B1247164518161N00550203EA0218502224 +B1247184518154N00550193EA0218202221 +B1247204518147N00550184EA0218102219 +B1247224518139N00550175EA0218102218 +B1247244518132N00550165EA0218102218 +B1247264518127N00550154EA0218102219 +B1247284518123N00550146EA0218002219 +B1247304518117N00550137EA0217802217 +B1247324518112N00550128EA0217702215 +B1247344518105N00550119EA0217502213 +B1247364518099N00550108EA0217302211 +B1247384518094N00550098EA0217102209 +B1247404518088N00550088EA0216902207 +B1247424518082N00550078EA0216802205 +B1247444518075N00550067EA0217202204 +B1247464518068N00550059EA0217502205 +B1247484518063N00550051EA0217702209 +B1247504518057N00550043EA0217702211 +B1247524518052N00550036EA0217402211 +B1247544518045N00550027EA0217002209 +B1247564518037N00550017EA0216902207 +B1247584518029N00550007EA0216702206 +B1248004518021N00549997EA0216602204 +B1248024518014N00549989EA0216502203 +B1248044518007N00549986EA0216402201 +B1248064517998N00549984EA0216802201 +B1248084517991N00549981EA0217302202 +B1248104517985N00549979EA0218002205 +B1248124517979N00549978EA0218702210 +B1248144517974N00549976EA0218902215 +B1248164517968N00549972EA0219102218 +B1248184517959N00549968EA0219502222 +B1248204517951N00549962EA0220102228 +B1248224517943N00549959EA0220102233 +B1248244517933N00549963EA0219802236 +B1248264517923N00549965EA0219302237 +B1248284517912N00549962EA0219302235 +B1248304517905N00549957EA0219002233 +B1248324517899N00549953EA0218602231 +B1248344517890N00549948EA0218102226 +B1248364517880N00549943EA0217902223 +B1248384517870N00549939EA0217702220 +B1248404517861N00549933EA0217402217 +B1248424517853N00549925EA0217102213 +B1248444517845N00549916EA0217002211 +B1248464517837N00549907EA0216702209 +B1248484517829N00549898EA0216402206 +B1248504517820N00549891EA0216002203 +B1248524517810N00549883EA0215802199 +B1248544517801N00549876EA0215402195 +B1248564517790N00549873EA0214902191 +B1248584517780N00549868EA0214402186 +B1249004517769N00549861EA0214002181 +B1249024517759N00549855EA0213702178 +B1249044517748N00549850EA0213402174 +B1249064517738N00549844EA0213102171 +B1249084517728N00549837EA0212802168 +B1249104517720N00549831EA0212202164 +B1249124517711N00549825EA0211502158 +B1249144517700N00549819EA0210902152 +B1249164517690N00549813EA0210502147 +B1249184517681N00549807EA0210102143 +B1249204517672N00549803EA0209702138 +B1249224517663N00549797EA0209102133 +B1249244517655N00549790EA0208602127 +B1249264517645N00549783EA0208102122 +B1249284517636N00549776EA0207702117 +B1249304517626N00549770EA0207202113 +B1249324517617N00549764EA0206702107 +B1249344517607N00549756EA0206402103 +B1249364517597N00549749EA0206002099 +B1249384517589N00549740EA0205602095 +B1249404517580N00549731EA0205102090 +B1249424517569N00549722EA0204902086 +B1249444517559N00549712EA0204802084 +B1249464517550N00549702EA0204702083 +B1249484517541N00549694EA0204602082 +B1249504517531N00549685EA0204602081 +B1249524517521N00549677EA0204502080 +B1249544517511N00549670EA0204402080 +B1249564517501N00549661EA0204302079 +B1249584517492N00549653EA0204202077 +B1250004517482N00549644EA0204002076 +B1250024517472N00549635EA0204002075 +B1250044517463N00549626EA0203902075 +B1250064517453N00549618EA0203802074 +B1250084517443N00549610EA0203702073 +B1250104517433N00549602EA0203602072 +B1250124517423N00549594EA0203402071 +B1250144517413N00549585EA0203302070 +B1250164517402N00549576EA0203302069 +B1250184517392N00549567EA0203202069 +B1250204517382N00549557EA0203202068 +B1250224517371N00549548EA0203202068 +B1250244517361N00549540EA0203202068 +B1250264517351N00549533EA0203102067 +B1250284517341N00549525EA0203002067 +B1250304517331N00549517EA0203002066 +B1250324517321N00549510EA0202902066 +B1250344517310N00549502EA0202702064 +B1250364517300N00549492EA0202702063 +B1250384517290N00549483EA0202602063 +B1250404517280N00549474EA0202302061 +B1250424517270N00549465EA0202102059 +B1250444517258N00549457EA0202002057 +B1250464517247N00549450EA0201802056 +B1250484517238N00549442EA0201402053 +B1250504517227N00549432EA0201102050 +B1250524517216N00549422EA0201102048 +B1250544517206N00549415EA0200902047 +B1250564517197N00549407EA0200402044 +B1250584517188N00549396EA0200202040 +B1251004517179N00549386EA0200002038 +B1251024517170N00549379EA0199602035 +B1251044517159N00549372EA0199202031 +B1251064517150N00549360EA0198902028 +B1251084517142N00549350EA0198502025 +B1251104517134N00549340EA0197902021 +B1251124517125N00549329EA0197602016 +B1251144517116N00549319EA0197402012 +B1251164517108N00549312EA0196902008 +B1251184517097N00549305EA0196402002 +B1251204517086N00549297EA0196201999 +B1251224517077N00549290EA0195801995 +B1251244517068N00549284EA0195101989 +B1251264517058N00549277EA0194501983 +B1251284517048N00549271EA0194101979 +B1251304517040N00549267EA0193601974 +B1251324517030N00549261EA0192701968 +B1251344517018N00549253EA0192201961 +B1251364517009N00549244EA0192001957 +B1251384517002N00549236EA0191301952 +B1251404516993N00549226EA0190601945 +B1251424516984N00549215EA0190301940 +B1251444516975N00549207EA0190101937 +B1251464516967N00549201EA0189701933 +B1251484516958N00549194EA0189301928 +B1251504516948N00549187EA0188901924 +B1251524516939N00549179EA0188601921 +B1251544516929N00549172EA0188101917 +B1251564516919N00549167EA0187501912 +B1251584516909N00549158EA0186801906 +B1252004516900N00549145EA0186501902 +B1252024516891N00549136EA0185901898 +B1252044516883N00549126EA0185101891 +B1252064516873N00549115EA0184501885 +B1252084516863N00549104EA0184201881 +B1252104516854N00549093EA0184001877 +B1252124516846N00549083EA0183901874 +B1252144516836N00549073EA0183701873 +B1252164516828N00549062EA0183601871 +B1252184516821N00549052EA0183301869 +B1252204516813N00549043EA0182901865 +B1252224516804N00549034EA0182601862 +B1252244516795N00549024EA0182501860 +B1252264516786N00549016EA0182401858 +B1252284516778N00549008EA0182101856 +B1252304516769N00549000EA0181601853 +B1252324516760N00548991EA0181101848 +B1252344516751N00548982EA0180701845 +B1252364516743N00548974EA0180301840 +B1252384516733N00548967EA0180101836 +B1252404516724N00548958EA0179901834 +B1252424516715N00548952EA0179601831 +B1252444516705N00548944EA0179401827 +B1252464516695N00548935EA0179501826 +B1252484516687N00548928EA0179701825 +B1252504516678N00548921EA0179801826 +B1252524516670N00548913EA0179901827 +B1252544516661N00548905EA0180301829 +B1252564516652N00548900EA0180701832 +B1252584516643N00548893EA0181101837 +B1253004516635N00548885EA0181501842 +B1253024516625N00548879EA0181901846 +B1253044516616N00548873EA0182101850 +B1253064516608N00548864EA0182001852 +B1253084516599N00548853EA0182101854 +B1253104516589N00548843EA0182501857 +B1253124516583N00548833EA0182901860 +B1253144516578N00548821EA0183401865 +B1253164516571N00548811EA0184101870 +B1253184516564N00548801EA0184901877 +B1253204516556N00548792EA0185201884 +B1253224516549N00548785EA0185301889 +B1253244516540N00548777EA0185301892 +B1253264516530N00548768EA0186101896 +B1253284516521N00548761EA0187001901 +B1253304516517N00548751EA0187501907 +B1253324516511N00548743EA0187901911 +B1253344516503N00548734EA0188501917 +B1253364516497N00548723EA0189101923 +B1253384516491N00548714EA0189601928 +B1253404516484N00548705EA0190201934 +B1253424516479N00548693EA0190401939 +B1253444516476N00548681EA0190201942 +B1253464516471N00548671EA0189701944 +B1253484516464N00548663EA0189501943 +B1253504516457N00548654EA0189201940 +B1253524516450N00548645EA0189501937 +B1253544516445N00548635EA0189801938 +B1253564516439N00548628EA0189801938 +B1253584516432N00548622EA0189701938 +B1254004516425N00548615EA0189401936 +B1254024516416N00548607EA0188901933 +B1254044516408N00548598EA0188601929 +B1254064516400N00548589EA0188501926 +B1254084516391N00548580EA0188501924 +B1254104516383N00548571EA0188501923 +B1254124516375N00548564EA0188401923 +B1254144516367N00548558EA0188201921 +B1254164516357N00548550EA0188301920 +B1254184516349N00548543EA0188901919 +B1254204516343N00548537EA0189401922 +B1254224516337N00548532EA0189601925 +B1254244516330N00548525EA0189701926 +B1254264516322N00548518EA0190001929 +B1254284516314N00548514EA0190401933 +B1254304516307N00548509EA0190501937 +B1254324516300N00548499EA0190601939 +B1254344516292N00548488EA0191101942 +B1254364516283N00548480EA0191701946 +B1254384516277N00548474EA0192001951 +B1254404516271N00548467EA0191701954 +B1254424516263N00548459EA0191401956 +B1254444516253N00548449EA0191201956 +B1254464516244N00548434EA0191201955 +B1254484516235N00548417EA0191601956 +B1254504516226N00548406EA0192101958 +B1254524516217N00548399EA0192001960 +B1254544516207N00548389EA0191501960 +B1254564516196N00548377EA0191501959 +B1254584516186N00548365EA0191501959 +B1255004516175N00548358EA0191401957 +B1255024516163N00548352EA0191601956 +B1255044516153N00548342EA0191801957 +B1255064516145N00548331EA0192001958 +B1255084516136N00548322EA0192301960 +B1255104516127N00548313EA0192601963 +B1255124516120N00548303EA0192501964 +B1255144516111N00548293EA0192301964 +B1255164516099N00548282EA0192601964 +B1255184516089N00548272EA0192901967 +B1255204516080N00548263EA0192901968 +B1255224516070N00548254EA0192901968 +B1255244516060N00548245EA0192901967 +B1255264516050N00548236EA0192901966 +B1255284516040N00548224EA0193101967 +B1255304516031N00548211EA0193601968 +B1255324516024N00548201EA0194201971 +B1255344516018N00548192EA0194501975 +B1255364516013N00548184EA0194301977 +B1255384516005N00548175EA0194101977 +B1255404515996N00548166EA0193901976 +B1255424515988N00548158EA0193701975 +B1255444515981N00548150EA0193401972 +B1255464515973N00548141EA0193101969 +B1255484515965N00548132EA0192901966 +B1255504515956N00548122EA0192601963 +B1255524515948N00548113EA0192401961 +B1255544515938N00548104EA0192201958 +B1255564515929N00548096EA0192001956 +B1255584515920N00548087EA0191801954 +B1256004515910N00548076EA0191601952 +B1256024515901N00548066EA0191401950 +B1256044515893N00548056EA0191101947 +B1256064515883N00548046EA0191001945 +B1256084515874N00548039EA0190701943 +B1256104515865N00548030EA0190201940 +B1256124515855N00548020EA0189901936 +B1256144515845N00548011EA0189701934 +B1256164515835N00548002EA0189301931 +B1256184515824N00547994EA0189101927 +B1256204515812N00547986EA0189301925 +B1256224515802N00547977EA0189901925 +B1256244515794N00547966EA0190501926 +B1256264515786N00547955EA0191401931 +B1256284515777N00547944EA0192301938 +B1256304515770N00547936EA0193001947 +B1256324515763N00547939EA0193301954 +B1256344515757N00547956EA0193801961 +B1256364515762N00547971EA0194301967 +B1256384515773N00547971EA0194901975 +B1256404515779N00547955EA0195401981 +B1256424515770N00547940EA0196101989 +B1256444515758N00547942EA0196401996 +B1256464515752N00547957EA0196502001 +B1256484515755N00547971EA0196902005 +B1256504515769N00547975EA0197302009 +B1256524515778N00547961EA0197802014 +B1256544515774N00547943EA0198402019 +B1256564515764N00547938EA0198602024 +B1256584515754N00547946EA0198702027 +B1257004515752N00547964EA0198902030 +B1257024515761N00547976EA0199202032 +B1257044515773N00547976EA0199702035 +B1257064515782N00547964EA0200202038 +B1257084515786N00547949EA0200602043 +B1257104515784N00547935EA0200802046 +B1257124515775N00547927EA0201002048 +B1257144515764N00547934EA0201002050 +B1257164515761N00547949EA0201002051 +B1257184515769N00547964EA0201202052 +B1257204515783N00547967EA0201502053 +B1257224515793N00547959EA0201802055 +B1257244515797N00547946EA0202002057 +B1257264515798N00547930EA0202302060 +B1257284515794N00547919EA0202402062 +B1257304515787N00547909EA0202702063 +B1257324515779N00547899EA0203002066 +B1257344515770N00547889EA0203602070 +B1257364515763N00547882EA0203802074 +B1257384515755N00547876EA0203902076 +B1257404515746N00547869EA0204102078 +B1257424515737N00547860EA0204102079 +B1257444515729N00547850EA0204002079 +B1257464515719N00547842EA0203802078 +B1257484515709N00547832EA0203802077 +B1257504515698N00547821EA0203902077 +B1257524515688N00547811EA0204002078 +B1257544515679N00547801EA0204102078 +B1257564515671N00547789EA0204102079 +B1257584515663N00547778EA0204102079 +B1258004515654N00547768EA0204302079 +B1258024515647N00547758EA0204402080 +B1258044515641N00547748EA0204402080 +B1258064515634N00547739EA0204402081 +B1258084515627N00547732EA0204302080 +B1258104515619N00547725EA0204002079 +B1258124515611N00547717EA0203702077 +B1258144515603N00547710EA0203402073 +B1258164515593N00547700EA0203302070 +B1258184515584N00547690EA0203202069 +B1258204515576N00547680EA0202902068 +B1258224515569N00547669EA0202402065 +B1258244515560N00547658EA0202202061 +B1258264515552N00547647EA0202102059 +B1258284515544N00547636EA0201802057 +B1258304515537N00547624EA0201702054 +B1258324515530N00547612EA0201702053 +B1258344515524N00547602EA0201702053 +B1258364515515N00547593EA0201502052 +B1258384515506N00547583EA0201502051 +B1258404515497N00547573EA0201602052 +B1258424515490N00547561EA0201702053 +B1258444515484N00547549EA0201702053 +B1258464515475N00547538EA0201902054 +B1258484515467N00547526EA0202002055 +B1258504515460N00547515EA0202002056 +B1258524515453N00547504EA0202002056 +B1258544515445N00547493EA0201902056 +B1258564515437N00547483EA0201902055 +B1258584515430N00547473EA0201902055 +B1259004515422N00547464EA0201802055 +B1259024515414N00547454EA0201602054 +B1259044515407N00547444EA0201402052 +B1259064515398N00547435EA0201102049 +B1259084515387N00547428EA0201102048 +B1259104515379N00547420EA0201102048 +B1259124515372N00547412EA0200502046 +B1259144515361N00547404EA0200502043 +B1259164515351N00547393EA0200502043 +B1259184515342N00547384EA0200402042 +B1259204515332N00547378EA0200202040 +B1259224515322N00547369EA0200502039 +B1259244515312N00547359EA0201202040 +B1259264515305N00547351EA0202002042 +B1259284515298N00547344EA0202402047 +B1259304515292N00547335EA0202502050 +B1259324515284N00547325EA0202602052 +B1259344515278N00547313EA0202802054 +B1259364515272N00547300EA0203102057 +B1259384515265N00547288EA0203402061 +B1259404515258N00547276EA0203902065 +B1259424515251N00547265EA0204802071 +B1259444515247N00547255EA0205302077 +B1259464515245N00547244EA0205602081 +B1259484515241N00547233EA0205602085 +B1259504515236N00547223EA0205602087 +B1259524515231N00547216EA0205602088 +B1259544515225N00547209EA0205602087 +B1259564515221N00547201EA0206102089 +B1259584515218N00547193EA0206402093 +B1300004515214N00547185EA0206502095 +B1300024515208N00547177EA0206602096 +B1300044515201N00547170EA0206902099 +B1300064515194N00547164EA0206702101 +B1300084515186N00547158EA0206702101 +B1300104515178N00547150EA0207202103 +B1300124515173N00547148EA0207402105 +B1300144515166N00547148EA0207502107 +B1300164515157N00547141EA0207502108 +B1300184515149N00547139EA0207402110 +B1300204515143N00547141EA0206702110 +B1300224515137N00547142EA0206202107 +B1300244515130N00547139EA0205702103 +B1300264515124N00547136EA0205002099 +B1300284515117N00547130EA0204102092 +B1300304515110N00547122EA0203402083 +B1300324515105N00547113EA0202802076 +B1300344515100N00547104EA0202202069 +B1300364515094N00547099EA0201502062 +B1300384515087N00547091EA0201102055 +B1300404515081N00547078EA0201002050 +B1300424515073N00547069EA0200902046 +B1300444515064N00547062EA0200802045 +B1300464515056N00547052EA0200702043 +B1300484515047N00547042EA0200602042 +B1300504515039N00547032EA0200502041 +B1300524515033N00547020EA0200602041 +B1300544515028N00547006EA0200602041 +B1300564515022N00546994EA0200402041 +B1300584515014N00546982EA0200402039 +B1301004515004N00546967EA0200802040 +B1301024514996N00546954EA0201002041 +B1301044514989N00546943EA0200702041 +B1301064514979N00546932EA0200602040 +B1301084514968N00546921EA0201002041 +B1301104514959N00546910EA0201202044 +B1301124514950N00546901EA0201402045 +B1301144514940N00546892EA0201902048 +B1301164514932N00546883EA0202302052 +B1301184514924N00546874EA0202602055 +B1301204514915N00546864EA0203302060 +B1301224514906N00546851EA0204402066 +B1301244514900N00546838EA0204702072 +B1301264514895N00546829EA0204602076 +B1301284514887N00546821EA0204702078 +B1301304514878N00546813EA0205002082 +B1301324514873N00546803EA0205102085 +B1301344514868N00546794EA0205102087 +B1301364514861N00546785EA0204902088 +B1301384514854N00546774EA0204702087 +B1301404514845N00546762EA0204402085 +B1301424514836N00546751EA0204502085 +B1301444514828N00546742EA0204102083 +B1301464514820N00546734EA0203402080 +B1301484514809N00546726EA0202902075 +B1301504514798N00546718EA0202802073 +B1301524514789N00546711EA0202602071 +B1301544514780N00546704EA0202302067 +B1301564514769N00546696EA0202802064 +B1301584514759N00546688EA0204002063 +B1302004514753N00546683EA0204302065 +B1302024514747N00546678EA0204202066 +B1302044514738N00546671EA0204302067 +B1302064514730N00546662EA0204602069 +B1302084514723N00546653EA0204702072 +B1302104514717N00546647EA0204702074 +B1302124514712N00546637EA0204702075 +B1302144514707N00546625EA0204702075 +B1302164514700N00546613EA0204702076 +B1302184514693N00546601EA0204702076 +B1302204514688N00546589EA0204602076 +B1302224514682N00546579EA0204602076 +B1302244514676N00546571EA0204402076 +B1302264514670N00546562EA0204102074 +B1302284514664N00546552EA0204102073 +B1302304514658N00546543EA0203902072 +B1302324514653N00546534EA0203702071 +B1302344514647N00546524EA0203502069 +B1302364514641N00546515EA0203402067 +B1302384514636N00546506EA0203202066 +B1302404514630N00546499EA0203002065 +B1302424514625N00546492EA0202902063 +B1302444514619N00546486EA0202802063 +B1302464514614N00546481EA0202702062 +B1302484514607N00546475EA0202502060 +B1302504514602N00546468EA0202402059 +B1302524514597N00546459EA0202402058 +B1302544514590N00546453EA0202402058 +B1302564514583N00546447EA0202902058 +B1302584514577N00546439EA0203402061 +B1303004514572N00546427EA0203702065 +B1303024514565N00546415EA0204102068 +B1303044514558N00546401EA0204702073 +B1303064514553N00546388EA0205102079 +B1303084514547N00546377EA0205402083 +B1303104514541N00546366EA0205502086 +B1303124514535N00546356EA0205502088 +B1303144514530N00546345EA0205302088 +B1303164514523N00546335EA0205102087 +B1303184514515N00546327EA0205102086 +B1303204514508N00546319EA0204902085 +B1303224514502N00546311EA0204602083 +B1303244514494N00546304EA0204402081 +B1303264514487N00546297EA0204202079 +B1303284514481N00546290EA0204002076 +B1303304514474N00546283EA0203602073 +B1303324514468N00546275EA0203302070 +B1303344514460N00546267EA0203002067 +B1303364514454N00546260EA0202602064 +B1303384514448N00546253EA0202302060 +B1303404514441N00546245EA0201902056 +B1303424514435N00546237EA0201602053 +B1303444514429N00546230EA0201202049 +B1303464514422N00546224EA0200902045 +B1303484514416N00546219EA0200502042 +B1303504514409N00546212EA0200202038 +B1303524514403N00546205EA0199802035 +B1303544514396N00546198EA0199402031 +B1303564514389N00546190EA0199002027 +B1303584514381N00546182EA0198802023 +B1304004514374N00546173EA0198802021 +B1304024514368N00546164EA0199202020 +B1304044514363N00546155EA0199402021 +B1304064514359N00546148EA0199402022 +B1304084514353N00546141EA0199102021 +B1304104514348N00546133EA0198802019 +B1304124514342N00546123EA0198502016 +B1304144514337N00546113EA0198402015 +B1304164514332N00546106EA0198102013 +B1304184514326N00546098EA0197802010 +B1304204514320N00546089EA0197702008 +B1304224514315N00546081EA0197402006 +B1304244514311N00546072EA0197002003 +B1304264514305N00546061EA0197002001 +B1304284514297N00546051EA0197202001 +B1304304514289N00546042EA0197302001 +B1304324514283N00546032EA0197202001 +B1304344514274N00546021EA0197102000 +B1304364514266N00546009EA0197102001 +B1304384514260N00546000EA0196902000 +B1304404514254N00545990EA0196801999 +B1304424514246N00545977EA0197101999 +B1304444514239N00545963EA0197602000 +B1304464514234N00545952EA0197602001 +B1304484514228N00545942EA0197502000 +B1304504514223N00545931EA0197402001 +B1304524514218N00545921EA0197302001 +B1304544514213N00545910EA0197202001 +B1304564514207N00545899EA0197102000 +B1304584514202N00545886EA0197102001 +B1305004514198N00545875EA0197002000 +B1305024514193N00545864EA0196901999 +B1305044514187N00545854EA0196901999 +B1305064514181N00545844EA0196801999 +B1305084514176N00545836EA0196601998 +B1305104514170N00545827EA0196501997 +B1305124514165N00545817EA0196301996 +B1305144514160N00545810EA0196101994 +B1305164514153N00545802EA0195901992 +B1305184514147N00545794EA0195901992 +B1305204514141N00545788EA0195801991 +B1305224514135N00545780EA0195601990 +B1305244514129N00545772EA0195501988 +B1305264514123N00545763EA0195501987 +B1305284514118N00545754EA0195401987 +B1305304514113N00545745EA0195201986 +B1305324514107N00545737EA0195101985 +B1305344514100N00545730EA0195001984 +B1305364514095N00545722EA0194801983 +B1305384514088N00545715EA0194501981 +B1305404514081N00545709EA0194501979 +B1305424514074N00545707EA0194301978 +B1305444514069N00545719EA0193901976 +B1305464514069N00545740EA0193901974 +B1305484514073N00545757EA0193801974 +B1305504514079N00545773EA0193501972 +B1305524514087N00545792EA0193301969 +B1305544514096N00545810EA0193301968 +B1305564514104N00545826EA0193101967 +B1305584514113N00545842EA0192801965 +B1306004514121N00545861EA0192901963 +B1306024514129N00545878EA0193001963 +B1306044514137N00545894EA0192801962 +B1306064514147N00545910EA0192601960 +B1306084514158N00545927EA0192601959 +B1306104514168N00545943EA0192601959 +B1306124514180N00545957EA0192401958 +B1306144514191N00545972EA0192201956 +B1306164514202N00545988EA0192101955 +B1306184514213N00546003EA0192101954 +B1306204514223N00546018EA0191901953 +B1306224514234N00546034EA0191801952 +B1306244514244N00546050EA0191801951 +B1306264514254N00546065EA0191801951 +B1306284514263N00546080EA0191701951 +B1306304514270N00546094EA0191601951 +B1306324514275N00546104EA0191501949 +B1306344514280N00546116EA0191601949 +B1306364514285N00546128EA0191801950 +B1306384514290N00546139EA0191801951 +B1306404514297N00546151EA0191801951 +B1306424514305N00546165EA0191801951 +B1306444514312N00546178EA0191601951 +B1306464514320N00546190EA0191301949 +B1306484514327N00546203EA0191101947 +B1306504514336N00546215EA0191101947 +B1306524514345N00546225EA0191101946 +B1306544514353N00546236EA0190701945 +B1306564514362N00546248EA0190501942 +B1306584514370N00546261EA0190101940 +B1307004514377N00546275EA0189901936 +B1307024514385N00546290EA0189801934 +B1307044514394N00546306EA0189801933 +B1307064514402N00546321EA0190201932 +B1307084514410N00546336EA0190601934 +B1307104514417N00546350EA0190901936 +B1307124514425N00546364EA0191401940 +B1307144514432N00546380EA0191601943 +B1307164514437N00546395EA0190901945 +B1307184514444N00546413EA0190101945 +B1307204514453N00546431EA0189701942 +B1307224514461N00546447EA0189401939 +B1307244514467N00546462EA0189001934 +B1307264514475N00546476EA0188501929 +B1307284514484N00546492EA0188201924 +B1307304514493N00546506EA0187801921 +B1307324514503N00546520EA0187501916 +B1307344514513N00546533EA0187201913 +B1307364514523N00546546EA0187001910 +B1307384514533N00546559EA0186801907 +B1307404514542N00546572EA0186601905 +B1307424514550N00546586EA0186401902 +B1307444514557N00546599EA0186301900 +B1307464514565N00546610EA0186201899 +B1307484514573N00546618EA0186001898 +B1307504514581N00546627EA0185701895 +B1307524514590N00546636EA0185501893 +B1307544514597N00546646EA0185101890 +B1307564514604N00546657EA0184801887 +B1307584514614N00546667EA0184601884 +B1308004514624N00546679EA0184501882 +B1308024514634N00546692EA0184601880 +B1308044514644N00546706EA0185601880 +B1308064514654N00546720EA0186501881 +B1308084514661N00546733EA0186901885 +B1308104514668N00546744EA0187101889 +B1308124514673N00546757EA0187601893 +B1308144514678N00546773EA0188401899 +B1308164514683N00546787EA0189301906 +B1308184514690N00546800EA0189901915 +B1308204514696N00546811EA0190201921 +B1308224514703N00546823EA0190301927 +B1308244514713N00546837EA0190501930 +B1308264514723N00546853EA0191001935 +B1308284514731N00546869EA0190901939 +B1308304514740N00546883EA0190501941 +B1308324514749N00546896EA0189801942 +B1308344514759N00546910EA0189401940 +B1308364514770N00546923EA0189101936 +B1308384514780N00546934EA0188801931 +B1308404514790N00546946EA0188401927 +B1308424514799N00546959EA0188101923 +B1308444514808N00546972EA0187801919 +B1308464514816N00546986EA0187501916 +B1308484514823N00547000EA0187301913 +B1308504514830N00547011EA0186901909 +B1308524514837N00547023EA0186401904 +B1308544514843N00547038EA0186401901 +B1308564514850N00547051EA0186501898 +B1308584514856N00547058EA0186401897 +B1309004514863N00547067EA0186101894 +B1309024514870N00547077EA0185901892 +B1309044514878N00547087EA0185701890 +B1309064514888N00547095EA0185501888 +B1309084514897N00547105EA0185201886 +B1309104514905N00547115EA0184801883 +B1309124514913N00547126EA0184401879 +B1309144514923N00547138EA0184701876 +B1309164514932N00547150EA0185301874 +B1309184514940N00547162EA0185501874 +B1309204514948N00547174EA0185601876 +B1309224514958N00547186EA0185801880 +B1309244514967N00547197EA0186001883 +B1309264514975N00547208EA0186301887 +B1309284514983N00547219EA0186801891 +B1309304514993N00547232EA0187501896 +B1309324515003N00547245EA0188501902 +B1309344515010N00547255EA0189201910 +B1309364515014N00547267EA0189701916 +B1309384515010N00547278EA0189801923 +B1309404514998N00547280EA0190101928 +B1309424514989N00547268EA0190601933 +B1309444514994N00547254EA0191201939 +B1309464515008N00547250EA0192101946 +B1309484515020N00547252EA0193201956 +B1309504515030N00547253EA0193901965 +B1309524515039N00547256EA0194201972 +B1309544515047N00547274EA0194901979 +B1309564515045N00547295EA0195501986 +B1309584515033N00547299EA0196001992 +B1310004515026N00547287EA0196501999 +B1310024515029N00547272EA0197002005 +B1310044515042N00547267EA0197902010 +B1310064515055N00547273EA0198802018 +B1310084515065N00547282EA0199602028 +B1310104515073N00547290EA0200002034 +B1310124515075N00547308EA0200002039 +B1310144515067N00547325EA0200102043 +B1310164515053N00547327EA0200602046 +B1310184515045N00547311EA0201102049 +B1310204515046N00547295EA0201802054 +B1310224515049N00547284EA0202602060 +B1310244515055N00547274EA0203602067 +B1310264515063N00547267EA0204402075 +B1310284515074N00547267EA0205302082 +B1310304515082N00547277EA0205902090 +B1310324515088N00547294EA0206202096 +B1310344515087N00547316EA0206202100 +B1310364515075N00547324EA0206202103 +B1310384515064N00547313EA0206402105 +B1310404515066N00547298EA0206802106 +B1310424515076N00547291EA0207402110 +B1310444515086N00547288EA0208202117 +B1310464515097N00547286EA0208902123 +B1310484515109N00547287EA0209902131 +B1310504515120N00547290EA0210802141 +B1310524515130N00547293EA0211502149 +B1310544515138N00547288EA0211502156 +B1310564515132N00547275EA0211802161 +B1310584515120N00547274EA0212602165 +B1311004515113N00547289EA0213602171 +B1311024515115N00547307EA0214602179 +B1311044515127N00547316EA0215302186 +B1311064515138N00547312EA0215902194 +B1311084515142N00547301EA0216302199 +B1311104515140N00547290EA0216802204 +B1311124515130N00547289EA0217202208 +B1311144515119N00547303EA0218402213 +B1311164515116N00547324EA0219502221 +B1311184515120N00547343EA0220402230 +B1311204515131N00547359EA0221102240 +B1311224515145N00547362EA0221802248 +B1311244515152N00547350EA0222402256 +B1311264515146N00547337EA0222902263 +B1311284515132N00547336EA0223702270 +B1311304515123N00547351EA0224702278 +B1311324515123N00547372EA0225502287 +B1311344515133N00547389EA0226102295 +B1311364515148N00547395EA0226802302 +B1311384515158N00547387EA0227502309 +B1311404515155N00547374EA0228102316 +B1311424515143N00547370EA0228802322 +B1311444515132N00547381EA0229602330 +B1311464515130N00547401EA0230202338 +B1311484515140N00547418EA0230702345 +B1311504515153N00547424EA0230902350 +B1311524515167N00547420EA0231602355 +B1311544515176N00547410EA0232402362 +B1311564515178N00547398EA0233102370 +B1311584515178N00547387EA0234002378 +B1312004515178N00547379EA0234702386 +B1312024515172N00547380EA0235002393 +B1312044515165N00547394EA0235302398 +B1312064515167N00547413EA0235802404 +B1312084515178N00547430EA0236402408 +B1312104515194N00547437EA0236902414 +B1312124515207N00547431EA0237402419 +B1312144515214N00547419EA0238102425 +B1312164515215N00547409EA0238802431 +B1312184515210N00547404EA0239402437 +B1312204515205N00547403EA0239802442 +B1312224515200N00547411EA0240002446 +B1312244515198N00547428EA0240202448 +B1312264515204N00547448EA0240502451 +B1312284515216N00547464EA0241002455 +B1312304515231N00547474EA0241702460 +B1312324515244N00547479EA0242102465 +B1312344515258N00547483EA0242202469 +B1312364515272N00547488EA0242102471 +B1312384515286N00547499EA0242102470 +B1312404515298N00547511EA0241602469 +B1312424515312N00547520EA0241302466 +B1312444515328N00547530EA0240902461 +B1312464515341N00547543EA0240302455 +B1312484515354N00547556EA0239702449 +B1312504515369N00547568EA0239302443 +B1312524515382N00547582EA0238802438 +B1312544515394N00547595EA0238402433 +B1312564515408N00547607EA0238102429 +B1312584515421N00547619EA0237802425 +B1313004515432N00547634EA0237502422 +B1313024515443N00547649EA0237402419 +B1313044515454N00547665EA0237302418 +B1313064515465N00547679EA0237202416 +B1313084515476N00547693EA0236902413 +B1313104515489N00547706EA0236602411 +B1313124515501N00547719EA0236402408 +B1313144515513N00547732EA0236002405 +B1313164515524N00547745EA0235602401 +B1313184515537N00547758EA0235102397 +B1313204515549N00547770EA0234602391 +B1313224515561N00547781EA0234002386 +B1313244515574N00547791EA0233502380 +B1313264515587N00547802EA0233102375 +B1313284515600N00547815EA0232702371 +B1313304515611N00547829EA0232302367 +B1313324515622N00547842EA0232102363 +B1313344515633N00547853EA0231802361 +B1313364515643N00547863EA0231402357 +B1313384515653N00547874EA0231002353 +B1313404515664N00547884EA0230702349 +B1313424515675N00547895EA0230302346 +B1313444515685N00547906EA0229902342 +B1313464515695N00547917EA0229402338 +B1313484515707N00547928EA0229102334 +B1313504515718N00547940EA0228902331 +B1313524515729N00547951EA0228502327 +B1313544515740N00547961EA0228102323 +B1313564515752N00547971EA0227702319 +B1313594515763N00547982EA0227302315 +B1314014515775N00547994EA0227002312 +B1314034515787N00548006EA0227102310 +B1314054515798N00548019EA0227302309 +B1314074515807N00548030EA0227002308 +B1314094515817N00548040EA0226302304 +B1314114515828N00548053EA0226002301 +B1314134515840N00548066EA0226002299 +B1314154515850N00548077EA0225602296 +B1314174515860N00548090EA0225202292 +B1314194515871N00548105EA0224902289 +B1314214515884N00548117EA0224602286 +B1314234515895N00548129EA0224202282 +B1314254515906N00548141EA0223602278 +B1314274515916N00548152EA0223002273 +B1314294515927N00548163EA0222602268 +B1314314515938N00548173EA0222102264 +B1314334515949N00548184EA0221502258 +B1314354515959N00548195EA0221002252 +B1314374515971N00548206EA0220802247 +B1314394515981N00548219EA0220702244 +B1314414515989N00548231EA0220402242 +B1314434515998N00548243EA0220002237 +B1314454516007N00548257EA0219902235 +B1314474516017N00548270EA0219902234 +B1314494516027N00548282EA0219702232 +B1314514516037N00548295EA0219602231 +B1314534516047N00548306EA0219402230 +B1314554516055N00548316EA0218902228 +B1314574516064N00548329EA0218302224 +B1314594516074N00548342EA0217902219 +B1315014516084N00548353EA0217702217 +B1315034516094N00548363EA0217302213 +B1315054516105N00548373EA0217002210 +B1315074516116N00548383EA0216602206 +B1315094516128N00548393EA0216202202 +B1315114516140N00548401EA0215702198 +B1315134516152N00548411EA0215302194 +B1315154516163N00548423EA0215102191 +B1315174516175N00548434EA0214802188 +B1315194516185N00548446EA0214402185 +B1315214516195N00548458EA0214002181 +B1315234516204N00548468EA0213402176 +B1315254516215N00548480EA0213002171 +B1315274516226N00548492EA0212602167 +B1315294516237N00548501EA0211902162 +B1315314516250N00548509EA0211402155 +B1315334516264N00548516EA0211302151 +B1315354516275N00548527EA0211002148 +B1315374516284N00548538EA0210702144 +B1315394516295N00548548EA0210502142 +B1315414516305N00548557EA0210302140 +B1315434516314N00548567EA0209802137 +B1315454516324N00548577EA0209302132 +B1315474516336N00548588EA0209102130 +B1315494516346N00548598EA0209002128 +B1315514516356N00548607EA0208802126 +B1315534516367N00548616EA0208602124 +B1315554516379N00548625EA0208702123 +B1315574516390N00548633EA0208502123 +B1315594516401N00548641EA0208202121 +B1316014516414N00548650EA0208202120 +B1316034516428N00548660EA0208302119 +B1316054516439N00548672EA0208202119 +B1316074516450N00548682EA0208102118 +B1316094516463N00548691EA0208102118 +B1316114516475N00548700EA0208002118 +B1316134516486N00548709EA0207802116 +B1316154516498N00548719EA0207802115 +B1316174516510N00548729EA0207902116 +B1316194516522N00548739EA0207902117 +B1316214516533N00548749EA0208102117 +B1316234516546N00548759EA0208602119 +B1316254516558N00548769EA0208902121 +B1316274516568N00548779EA0209302123 +B1316294516580N00548789EA0210002128 +B1316314516591N00548799EA0210502134 +B1316334516603N00548811EA0210802138 +B1316354516617N00548820EA0211302142 +B1316374516630N00548828EA0211902148 +B1316394516640N00548838EA0212202153 +B1316414516650N00548847EA0212402157 +B1316434516661N00548855EA0212402159 +B1316454516672N00548862EA0212402160 +B1316474516684N00548872EA0212502160 +B1316494516696N00548881EA0212602161 +B1316514516709N00548888EA0212602162 +B1316534516721N00548895EA0212502162 +B1316554516733N00548903EA0212402161 +B1316574516745N00548911EA0212302160 +B1316594516757N00548921EA0212402160 +B1317014516768N00548931EA0212602161 +B1317034516780N00548942EA0212802163 +B1317054516791N00548954EA0213202166 +B1317074516802N00548966EA0213402169 +B1317094516814N00548977EA0213602171 +B1317114516827N00548987EA0213802173 +B1317134516839N00548997EA0213802175 +B1317154516851N00549007EA0213602175 +B1317174516864N00549018EA0213502174 +B1317194516877N00549031EA0213502174 +B1317214516889N00549042EA0213202173 +B1317234516900N00549055EA0212902170 +B1317254516912N00549072EA0212402166 +B1317274516923N00549087EA0212102162 +B1317294516933N00549099EA0212002160 +B1317314516942N00549110EA0211402156 +B1317334516952N00549122EA0210702152 +B1317354516964N00549131EA0210002146 +B1317374516975N00549139EA0209202138 +B1317394516987N00549148EA0208402129 +B1317414516999N00549158EA0207602121 +B1317434517012N00549167EA0207002114 +B1317454517024N00549176EA0206302107 +B1317474517038N00549183EA0205702099 +B1317494517054N00549191EA0205402092 +B1317514517069N00549200EA0205602087 +B1317534517082N00549208EA0205502083 +B1317554517091N00549217EA0205102080 +B1317574517102N00549227EA0204902077 +B1317594517112N00549238EA0204702075 +B1318014517122N00549248EA0204402073 +B1318034517134N00549258EA0204002070 +B1318054517146N00549268EA0203702067 +B1318074517158N00549278EA0203402064 +B1318094517170N00549287EA0203302062 +B1318114517180N00549297EA0202902060 +B1318134517189N00549307EA0202602057 +B1318154517199N00549316EA0202402055 +B1318174517210N00549324EA0202202053 +B1318194517220N00549332EA0201902051 +B1318214517230N00549340EA0201602048 +B1318234517240N00549350EA0201502046 +B1318254517250N00549359EA0201202044 +B1318274517260N00549367EA0200802041 +B1318294517270N00549375EA0200302037 +B1318314517281N00549383EA0200102034 +B1318334517293N00549390EA0200002031 +B1318354517301N00549396EA0199602029 +B1318374517311N00549400EA0199002025 +B1318394517324N00549407EA0198902021 +B1318414517337N00549417EA0199202018 +B1318434517348N00549424EA0199002017 +B1318454517357N00549431EA0198602014 +B1318474517368N00549441EA0198302011 +B1318494517378N00549452EA0198102010 +B1318514517387N00549461EA0197802008 +B1318534517396N00549471EA0197202003 +B1318554517406N00549483EA0196901999 +B1318574517417N00549493EA0196801997 +B1318594517427N00549503EA0196701996 +B1319014517437N00549513EA0196501994 +B1319034517448N00549522EA0196301993 +B1319054517459N00549531EA0196201992 +B1319074517470N00549541EA0196201991 +B1319094517482N00549550EA0196101991 +B1319114517492N00549560EA0195701989 +B1319134517502N00549570EA0195201986 +B1319154517514N00549581EA0195001983 +B1319174517526N00549592EA0194901981 +B1319194517538N00549600EA0194801980 +B1319214517549N00549607EA0194501977 +B1319234517561N00549618EA0194601976 +B1319254517571N00549630EA0194701977 +B1319274517580N00549641EA0194601977 +B1319294517590N00549652EA0194501976 +B1319314517599N00549664EA0194401975 +B1319334517609N00549677EA0194401975 +B1319354517618N00549691EA0194301975 +B1319374517627N00549703EA0194001973 +B1319394517637N00549714EA0193701970 +B1319414517647N00549726EA0193501968 +B1319434517657N00549738EA0193301966 +B1319454517666N00549750EA0193401965 +B1319474517675N00549762EA0193401965 +B1319494517682N00549775EA0193201964 +B1319514517690N00549786EA0192901962 +B1319534517698N00549798EA0192601960 +B1319554517707N00549810EA0192301957 +B1319574517715N00549823EA0192201954 +B1319594517722N00549837EA0192101953 +B1320014517728N00549851EA0192001952 +B1320034517734N00549864EA0191701950 +B1320054517741N00549880EA0191701948 +B1320074517750N00549896EA0191701948 +B1320094517758N00549912EA0191901948 +B1320114517766N00549928EA0192101950 +B1320134517774N00549944EA0192301952 +B1320154517781N00549958EA0192501955 +B1320174517787N00549972EA0192801957 +B1320194517795N00549981EA0192701959 +B1320214517808N00549978EA0192601959 +B1320234517818N00549964EA0192801960 +B1320254517816N00549950EA0192801960 +B1320274517806N00549944EA0192901960 +B1320294517797N00549954EA0192901961 +B1320314517794N00549972EA0193001960 +B1320334517797N00549991EA0193201962 +B1320354517802N00550009EA0193401963 +B1320374517806N00550026EA0193601966 +B1320394517812N00550042EA0194001969 +B1320414517818N00550056EA0194401973 +B1320434517822N00550069EA0194801977 +B1320454517824N00550083EA0195101980 +B1320474517819N00550095EA0195301983 +B1320494517808N00550094EA0195601986 +B1320514517802N00550080EA0195801989 +B1320534517808N00550063EA0195901991 +B1320554517823N00550063EA0196101993 +B1320574517834N00550080EA0196601996 +B1320594517838N00550096EA0197102001 +B1321014517844N00550109EA0197702007 +B1321034517849N00550123EA0198102012 +B1321054517850N00550137EA0198702017 +B1321074517843N00550148EA0199002021 +B1321094517832N00550148EA0199202024 +B1321114517825N00550138EA0199302026 +B1321134517826N00550121EA0199402028 +B1321154517838N00550110EA0199702030 +B1321174517852N00550116EA0200102032 +B1321194517862N00550131EA0200702035 +B1321214517868N00550145EA0201302041 +B1321234517876N00550155EA0201702046 +B1321254517885N00550163EA0201902050 +B1321274517894N00550172EA0202002052 +B1321294517902N00550183EA0202002053 +B1321314517910N00550194EA0201902053 +B1321334517918N00550207EA0202002053 +B1321354517926N00550220EA0201902053 +B1321374517933N00550235EA0201902053 +B1321394517940N00550250EA0202102054 +B1321414517947N00550263EA0202202055 +B1321434517954N00550277EA0202002055 +B1321454517961N00550291EA0202002054 +B1321474517970N00550306EA0202102054 +B1321494517978N00550318EA0202202055 +B1321514517984N00550330EA0202102055 +B1321534517991N00550342EA0202002054 +B1321554517999N00550354EA0201902052 +B1321574518007N00550365EA0201902052 +B1321594518017N00550377EA0201802052 +B1322014518027N00550388EA0201702051 +B1322034518036N00550400EA0201402049 +B1322054518045N00550413EA0201102047 +B1322074518055N00550427EA0201102045 +B1322094518064N00550441EA0201102044 +B1322114518072N00550454EA0201002044 +B1322134518081N00550467EA0200902043 +B1322154518090N00550481EA0201002043 +B1322174518098N00550496EA0201102044 +B1322194518105N00550510EA0201002044 +B1322214518113N00550523EA0200702043 +B1322234518121N00550538EA0200502040 +B1322254518128N00550553EA0200302039 +B1322274518135N00550566EA0200002037 +B1322294518143N00550579EA0199502033 +B1322314518151N00550593EA0199102028 +B1322334518160N00550606EA0198802025 +B1322354518169N00550618EA0198502021 +B1322374518178N00550632EA0198202018 +B1322394518186N00550645EA0197802015 +B1322414518194N00550658EA0197502011 +B1322434518203N00550671EA0197302008 +B1322454518213N00550683EA0197002006 +B1322474518221N00550695EA0196602002 +B1322494518230N00550707EA0196201998 +B1322514518240N00550720EA0195801994 +B1322534518249N00550734EA0195601991 +B1322554518257N00550747EA0195401989 +B1322574518264N00550761EA0195101986 +B1322594518271N00550775EA0194601982 +B1323014518280N00550790EA0194201978 +B1323034518288N00550804EA0194001975 +B1323054518296N00550818EA0193601972 +B1323074518304N00550831EA0193101968 +B1323094518312N00550845EA0192701963 +B1323114518321N00550861EA0192401959 +B1323134518329N00550875EA0192101956 +B1323154518337N00550888EA0191901953 +B1323174518346N00550901EA0191501951 +B1323194518354N00550916EA0191001946 +B1323214518362N00550932EA0190601942 +B1323234518368N00550950EA0190201938 +B1323254518374N00550967EA0190001934 +B1323274518379N00550983EA0189601931 +B1323294518384N00550999EA0189301928 +B1323314518389N00551015EA0189101925 +B1323334518394N00551031EA0188901923 +B1323354518402N00551044EA0188501920 +B1323374518411N00551055EA0188101916 +B1323394518424N00551062EA0187901912 +B1323414518437N00551064EA0187701910 +B1323434518450N00551062EA0187501908 +B1323454518463N00551062EA0187501907 +B1323474518475N00551060EA0187701907 +B1323494518487N00551058EA0187701908 +B1323514518499N00551058EA0187801908 +B1323534518512N00551057EA0187901909 +B1323554518524N00551055EA0187901911 +B1323574518535N00551053EA0187601911 +B1323594518546N00551050EA0187201910 +B1324014518559N00551045EA0187101908 +B1324034518572N00551042EA0187001907 +B1324054518585N00551039EA0187101907 +B1324074518599N00551034EA0187201907 +B1324094518613N00551029EA0187601909 +B1324114518625N00551023EA0187901911 +B1324134518635N00551015EA0187901912 +B1324154518645N00551007EA0187801913 +B1324174518655N00551004EA0187601913 +B1324194518666N00550995EA0187501912 +B1324214518671N00550979EA0187401911 +B1324234518659N00550964EA0187301911 +B1324254518651N00550964EA0187301910 +B1324274518644N00550970EA0187101908 +B1324294518635N00550976EA0187001906 +B1324314518627N00550984EA0187001905 +B1324334518620N00550993EA0186901905 +B1324354518614N00550997EA0186501903 +B1324374518605N00551002EA0186201900 +B1324394518596N00551009EA0186001898 +B1324414518588N00551015EA0185901897 +B1324434518581N00551021EA0185701894 +B1324454518572N00551027EA0185601892 +B1324474518563N00551033EA0185501890 +B1324494518555N00551038EA0185401889 +B1324514518546N00551043EA0185401888 +B1324534518537N00551050EA0185401888 +B1324554518528N00551056EA0185401888 +B1324574518519N00551061EA0185201887 +B1324594518510N00551067EA0184901885 +B1325014518500N00551074EA0184701883 +B1325034518491N00551082EA0184601882 +B1325054518481N00551089EA0184401880 +B1325074518471N00551095EA0184301878 +B1325094518460N00551100EA0184301877 +B1325114518450N00551105EA0184401877 +B1325134518440N00551110EA0184601878 +B1325154518431N00551112EA0184901880 +B1325174518421N00551110EA0185601883 +B1325194518413N00551109EA0185801887 +B1325214518406N00551113EA0185401889 +B1325234518399N00551119EA0185201888 +B1325254518390N00551125EA0185201887 +B1325274518382N00551131EA0185101887 +B1325294518375N00551137EA0184901885 +B1325314518365N00551129EA0185101884 +B1325334518356N00551115EA0186101884 +B1325354518349N00551103EA0186901887 +B1325374518343N00551094EA0187401893 +B1325394518336N00551085EA0187901900 +B1325414518328N00551074EA0188401906 +B1325434518321N00551066EA0188901912 +B1325454518312N00551064EA0188901917 +B1325474518305N00551075EA0188901921 +B1325494518305N00551092EA0189201924 +B1325514518315N00551106EA0190001928 +B1325534518329N00551110EA0190701935 +B1325554518345N00551105EA0191601942 +B1325574518357N00551091EA0192401950 +B1325594518365N00551073EA0193101959 +B1326014518370N00551056EA0193401966 +B1326034518369N00551041EA0193401972 +B1326054518358N00551031EA0193301976 +B1326074518347N00551041EA0193601978 +B1326094518350N00551058EA0193901981 +B1326114518364N00551067EA0194501983 +B1326134518381N00551064EA0194701985 +B1326154518392N00551051EA0194401986 +B1326174518390N00551035EA0194001987 +B1326194518378N00551029EA0193901985 +B1326214518366N00551036EA0194101984 +B1326234518361N00551050EA0194701984 +B1326254518361N00551063EA0195701986 +B1326274518359N00551072EA0196501992 +B1326294518354N00551083EA0197301999 +B1326314518350N00551098EA0198202007 +B1326334518358N00551111EA0198902014 +B1326354518371N00551106EA0199602021 +B1326374518371N00551087EA0200602029 +B1326394518360N00551086EA0201502037 +B1326414518357N00551107EA0202402045 +B1326434518366N00551119EA0203702057 +B1326454518378N00551118EA0204402066 +B1326474518386N00551101EA0205302076 +B1326494518380N00551086EA0206002085 +B1326514518367N00551088EA0207302094 +B1326534518362N00551102EA0208402107 +B1326554518362N00551115EA0209302120 +B1326574518366N00551125EA0209902130 +B1326594518380N00551129EA0210602139 +B1327014518395N00551119EA0211802147 +B1327034518399N00551104EA0212602155 +B1327054518383N00551092EA0213602166 +B1327074518371N00551099EA0214502176 +B1327094518370N00551115EA0215302185 +B1327114518379N00551125EA0216002193 +B1327134518394N00551118EA0216802201 +B1327154518400N00551100EA0218102210 +B1327174518395N00551086EA0219002221 +B1327194518383N00551081EA0219902230 +B1327214518375N00551087EA0220702241 +B1327234518375N00551103EA0221402248 +B1327254518385N00551116EA0222402257 +B1327274518400N00551112EA0223202265 +B1327294518408N00551096EA0224302275 +B1327314518404N00551078EA0225102286 +B1327334518392N00551075EA0225902293 +B1327354518387N00551089EA0226702301 +B1327374518394N00551105EA0227302309 +B1327394518408N00551101EA0228202315 +B1327414518415N00551079EA0229302325 +B1327434518406N00551066EA0230202335 +B1327454518396N00551068EA0231102344 +B1327474518393N00551080EA0231802352 +B1327494518400N00551092EA0232402358 +B1327514518413N00551090EA0233202367 +B1327534518422N00551073EA0234102375 +B1327554518425N00551052EA0235302385 +B1327574518424N00551035EA0236002395 +B1327594518419N00551022EA0236302403 +B1328014518406N00551027EA0236502410 +B1328034518400N00551046EA0237202416 +B1328054518405N00551063EA0238302423 +B1328074518412N00551071EA0238802430 +B1328094518422N00551076EA0239002434 +B1328114518436N00551077EA0239502437 +B1328134518448N00551065EA0240102441 +B1328154518444N00551047EA0240802447 +B1328174518432N00551041EA0241702453 +B1328194518423N00551050EA0242502461 +B1328214518421N00551067EA0242802468 +B1328234518427N00551081EA0243302472 +B1328254518436N00551093EA0243902478 +B1328274518445N00551108EA0244602485 +B1328294518452N00551122EA0245502492 +B1328314518461N00551136EA0246302500 +B1328334518471N00551150EA0247102508 +B1328354518481N00551164EA0247802515 +B1328374518488N00551181EA0248302522 +B1328394518494N00551200EA0248802527 +B1328414518500N00551219EA0249302533 +B1328434518508N00551238EA0249502537 +B1328454518516N00551258EA0249502539 +B1328474518524N00551279EA0249402540 +B1328494518533N00551298EA0249402540 +B1328514518541N00551315EA0249302540 +B1328534518548N00551331EA0249102539 +B1328554518557N00551346EA0248802536 +B1328574518566N00551359EA0248602533 +B1328594518577N00551371EA0248502531 +B1329014518587N00551383EA0248302529 +B1329034518599N00551395EA0248102526 +B1329054518611N00551407EA0247902524 +B1329074518620N00551421EA0247802523 +B1329094518629N00551435EA0247402520 +B1329114518639N00551449EA0246902516 +B1329134518650N00551464EA0246502511 +B1329154518662N00551479EA0246202507 +B1329174518674N00551492EA0246102504 +B1329194518687N00551505EA0246102502 +B1329214518699N00551516EA0246402502 +B1329234518710N00551527EA0246202501 +B1329254518722N00551538EA0246002499 +B1329274518735N00551550EA0246102499 +B1329294518747N00551561EA0246202499 +B1329314518759N00551571EA0246202499 +B1329334518771N00551581EA0246302500 +B1329354518782N00551592EA0246302500 +B1329374518795N00551604EA0246402500 +B1329394518807N00551615EA0246602502 +B1329414518817N00551625EA0246702503 +B1329434518827N00551633EA0246402503 +B1329454518839N00551641EA0246202502 +B1329474518850N00551649EA0246302501 +B1329494518861N00551657EA0246202501 +B1329514518872N00551664EA0246102501 +B1329534518883N00551672EA0245802499 +B1329554518894N00551679EA0245602496 +B1329574518906N00551685EA0245402494 +B1329594518917N00551693EA0245102492 +B1330014518928N00551700EA0244802489 +B1330034518940N00551708EA0244602485 +B1330054518952N00551718EA0244502484 +B1330074518963N00551726EA0244302483 +B1330094518973N00551734EA0244002480 +B1330114518984N00551741EA0243702477 +B1330134518994N00551750EA0243302474 +B1330154519005N00551757EA0242902470 +B1330174519017N00551765EA0242602466 +B1330194519028N00551774EA0242502464 +B1330214519039N00551780EA0242102461 +B1330234519049N00551789EA0241802457 +B1330254519060N00551800EA0241902455 +B1330274519069N00551807EA0241802455 +B1330294519078N00551814EA0241602453 +B1330314519089N00551823EA0241602452 +B1330334519099N00551830EA0241502452 +B1330354519109N00551836EA0241002450 +B1330374519118N00551845EA0240402447 +B1330394519130N00551855EA0240202444 +B1330414519142N00551865EA0240102442 +B1330434519151N00551874EA0239502438 +B1330454519161N00551882EA0238702433 +B1330474519173N00551891EA0238002426 +B1330494519186N00551899EA0237702421 +B1330514519198N00551906EA0237302417 +B1330534519210N00551913EA0236602410 +B1330554519222N00551921EA0236002404 +B1330574519236N00551929EA0235602398 +B1330594519248N00551935EA0234902393 +B1331014519260N00551942EA0234302386 +B1331034519273N00551948EA0234002380 +B1331054519285N00551955EA0233902375 +B1331074519295N00551963EA0233802373 +B1331094519305N00551970EA0233302369 +B1331114519316N00551979EA0232902365 +B1331134519327N00551988EA0232802361 +B1331154519337N00551996EA0232802360 +B1331174519346N00552004EA0232502358 +B1331194519357N00552012EA0232302355 +B1331214519368N00552021EA0232302354 +B1331234519378N00552030EA0232202354 +B1331254519387N00552038EA0232002352 +B1331274519397N00552047EA0231802350 +B1331294519408N00552054EA0231902350 +B1331314519418N00552063EA0231702349 +B1331334519427N00552072EA0231502348 +B1331354519437N00552081EA0231402347 +B1331374519447N00552090EA0231302346 +B1331394519456N00552100EA0231102344 +B1331414519466N00552109EA0231002343 +B1331434519477N00552117EA0230902342 +B1331454519487N00552123EA0230802341 +B1331474519497N00552130EA0230702340 +B1331494519508N00552137EA0230602339 +B1331514519518N00552144EA0230602339 +B1331534519528N00552151EA0230402338 +B1331554519538N00552158EA0230202336 +B1331574519548N00552166EA0230102334 +B1331594519559N00552174EA0230002333 +B1332014519568N00552183EA0229702332 +B1332034519578N00552192EA0229302329 +B1332054519589N00552201EA0229002326 +B1332074519599N00552206EA0228902324 +B1332094519608N00552210EA0228602322 +B1332114519618N00552215EA0228002319 +B1332134519629N00552221EA0227802316 +B1332154519640N00552226EA0227702314 +B1332174519647N00552233EA0227202311 +B1332194519656N00552240EA0226602307 +B1332214519667N00552248EA0226502304 +B1332234519676N00552254EA0226202301 +B1332254519686N00552258EA0225702297 +B1332274519696N00552264EA0225502293 +B1332294519706N00552271EA0225402291 +B1332314519714N00552277EA0225102288 +B1332334519721N00552285EA0224602284 +B1332354519730N00552292EA0224302280 +B1332374519739N00552297EA0224102278 +B1332394519747N00552302EA0223802275 +B1332414519756N00552306EA0223502272 +B1332434519766N00552311EA0223202269 +B1332454519775N00552317EA0223002266 +B1332474519784N00552322EA0222702264 +B1332494519794N00552327EA0222402261 +B1332514519804N00552331EA0222202258 +B1332534519814N00552337EA0222202257 +B1332554519824N00552344EA0222402256 +B1332574519833N00552352EA0222802256 +B1332594519842N00552358EA0223302259 +B1333014519850N00552365EA0223502262 +B1333034519858N00552372EA0223602264 +B1333054519868N00552377EA0223902267 +B1333074519877N00552384EA0224202270 +B1333094519885N00552392EA0224402273 +B1333114519893N00552399EA0224602276 +B1333134519903N00552405EA0224902278 +B1333154519913N00552408EA0225202281 +B1333174519924N00552410EA0225402285 +B1333194519934N00552413EA0225402287 +B1333214519944N00552418EA0225302288 +B1333234519956N00552421EA0225402288 +B1333254519968N00552424EA0225502289 +B1333274519978N00552429EA0225802291 +B1333294519987N00552433EA0226002294 +B1333314519996N00552437EA0226202296 +B1333334520004N00552443EA0226402298 +B1333354520012N00552449EA0226702301 +B1333374520020N00552456EA0226902304 +B1333394520027N00552463EA0227002306 +B1333414520036N00552473EA0227002307 +B1333434520044N00552482EA0227002307 +B1333454520053N00552491EA0227202307 +B1333474520061N00552501EA0227402309 +B1333494520069N00552511EA0227502310 +B1333514520078N00552521EA0227602312 +B1333534520087N00552535EA0228002314 +B1333554520094N00552548EA0228702317 +B1333574520101N00552562EA0229102322 +B1333594520106N00552574EA0229402326 +B1334014520113N00552584EA0229502329 +B1334034520124N00552590EA0230002332 +B1334054520133N00552598EA0230302336 +B1334074520142N00552607EA0230502340 +B1334094520153N00552612EA0230802342 +B1334114520164N00552616EA0231202346 +B1334134520175N00552621EA0231602351 +B1334154520186N00552626EA0232002354 +B1334174520197N00552631EA0232502359 +B1334194520208N00552634EA0232802363 +B1334214520219N00552636EA0233002366 +B1334234520231N00552637EA0233202369 +B1334254520242N00552635EA0233302371 +B1334274520253N00552635EA0233302372 +B1334294520265N00552635EA0233302372 +B1334314520276N00552634EA0233402373 +B1334334520288N00552633EA0233402373 +B1334354520299N00552630EA0233302373 +B1334374520311N00552627EA0233302373 +B1334394520322N00552623EA0233202372 +B1334414520333N00552617EA0233102371 +B1334434520343N00552610EA0233002370 +B1334454520353N00552604EA0232802369 +B1334474520364N00552599EA0232602367 +B1334494520376N00552597EA0232502365 +B1334514520388N00552598EA0232402364 +B1334534520400N00552600EA0232302363 +B1334554520412N00552601EA0232002361 +B1334574520424N00552603EA0231902359 +B1334594520436N00552602EA0231802357 +B1335014520448N00552601EA0231602356 +B1335034520459N00552600EA0231402354 +B1335054520470N00552599EA0231302352 +B1335074520481N00552600EA0231102350 +B1335094520492N00552601EA0230802348 +B1335114520503N00552604EA0230502345 +B1335134520515N00552606EA0230502343 +B1335154520527N00552607EA0230502342 +B1335174520537N00552609EA0230402342 +B1335194520548N00552610EA0230402341 +B1335214520560N00552610EA0230602342 +B1335234520570N00552610EA0230702343 +B1335254520580N00552609EA0230702343 +B1335274520592N00552609EA0230802344 +B1335294520603N00552611EA0230902346 +B1335314520612N00552611EA0230602346 +B1335334520623N00552610EA0230302345 +B1335354520636N00552608EA0230402344 +B1335374520647N00552607EA0230502345 +B1335394520657N00552606EA0230202344 +B1335414520667N00552606EA0230102342 +B1335434520679N00552606EA0230302341 +B1335454520690N00552606EA0230602342 +B1335474520702N00552606EA0230702344 +B1335494520714N00552605EA0231002346 +B1335514520726N00552604EA0231202349 +B1335534520738N00552604EA0231402350 +B1335554520751N00552604EA0231602352 +B1335574520765N00552605EA0231802355 +B1335594520777N00552607EA0232002357 +B1336014520790N00552609EA0232202358 +B1336034520803N00552612EA0232302360 +B1336054520817N00552615EA0232402361 +B1336074520831N00552617EA0232602362 +B1336094520846N00552618EA0233102364 +B1336114520857N00552617EA0233202367 +B1336134520866N00552618EA0232902368 +B1336154520878N00552617EA0232702367 +B1336174520890N00552615EA0232402364 +B1336194520901N00552613EA0232002361 +B1336214520911N00552613EA0231502356 +B1336234520923N00552615EA0231202353 +B1336254520932N00552619EA0231002350 +B1336274520940N00552623EA0230502346 +B1336294520949N00552626EA0230102341 +B1336314520961N00552627EA0230002338 +B1336334520969N00552631EA0229802336 +B1336354520976N00552636EA0229202331 +B1336374520986N00552637EA0228902327 +B1336394520998N00552639EA0229102324 +B1336414521010N00552640EA0229302323 +B1336434521019N00552639EA0229302322 +B1336454521029N00552638EA0229202322 +B1336474521040N00552638EA0229302324 +B1336494521049N00552638EA0229102323 +B1336514521059N00552638EA0228902321 +B1336534521071N00552637EA0229002321 +B1336554521082N00552639EA0229102322 +B1336574521090N00552641EA0228902322 +B1336594521101N00552644EA0228702320 +B1337014521114N00552648EA0228802320 +B1337034521125N00552650EA0228902322 +B1337054521136N00552650EA0228902322 +B1337074521149N00552650EA0229102322 +B1337094521161N00552650EA0229302323 +B1337114521172N00552650EA0229302324 +B1337134521184N00552650EA0229402325 +B1337154521198N00552650EA0229702327 +B1337174521210N00552650EA0229702329 +B1337194521221N00552650EA0229602329 +B1337214521233N00552648EA0229502328 +B1337234521247N00552646EA0229802329 +B1337254521259N00552646EA0230102332 +B1337274521270N00552645EA0230502335 +B1337294521281N00552645EA0230802339 +B1337314521290N00552649EA0230902342 +B1337334521299N00552651EA0230902345 +B1337354521310N00552651EA0231002345 +B1337374521321N00552653EA0231202347 +B1337394521332N00552655EA0231402349 +B1337414521342N00552656EA0231502350 +B1337434521354N00552657EA0231502351 +B1337454521367N00552658EA0231602351 +B1337474521379N00552656EA0231802353 +B1337494521390N00552654EA0231802354 +B1337514521401N00552652EA0231702353 +B1337534521412N00552651EA0231702354 +B1337554521423N00552651EA0231702353 +B1337574521435N00552653EA0231902354 +B1337594521446N00552653EA0232202355 +B1338014521456N00552654EA0232302357 +B1338034521466N00552657EA0232302357 +B1338054521478N00552661EA0232602358 +B1338074521490N00552666EA0233002360 +B1338094521501N00552668EA0233302363 +B1338114521512N00552669EA0233802366 +B1338134521523N00552671EA0234202371 +B1338154521533N00552671EA0234702375 +B1338174521543N00552670EA0235402380 +B1338194521552N00552669EA0236002387 +B1338214521561N00552668EA0236602394 +B1338234521569N00552663EA0237002400 +B1338254521575N00552653EA0237302405 +B1338274521569N00552636EA0237302409 +B1338294521556N00552626EA0237402412 +B1338314521542N00552631EA0237702415 +B1338334521535N00552645EA0237902418 +B1338354521536N00552662EA0238602422 +B1338374521543N00552675EA0239202428 +B1338394521552N00552685EA0239802435 +B1338414521561N00552694EA0240402441 +B1338434521571N00552701EA0240902446 +B1338454521582N00552706EA0241302450 +B1338474521593N00552711EA0241602454 +B1338494521604N00552717EA0241602457 +B1338514521615N00552722EA0241502458 +B1338534521626N00552730EA0241402458 +B1338554521637N00552740EA0241102456 +B1338574521649N00552747EA0240802453 +B1338594521661N00552754EA0240802451 +B1339014521674N00552760EA0241002450 +B1339034521686N00552766EA0241202450 +B1339054521696N00552769EA0240902450 +B1339074521706N00552770EA0240502447 +B1339094521717N00552772EA0240102443 +B1339114521728N00552773EA0239902439 +B1339134521740N00552774EA0240202437 +B1339154521749N00552775EA0240302436 +B1339174521757N00552777EA0240202435 +B1339194521767N00552778EA0240302434 +B1339214521778N00552779EA0240402435 +B1339234521788N00552782EA0240402436 +B1339254521797N00552785EA0240202436 +B1339274521808N00552785EA0240102435 +B1339294521818N00552787EA0239802433 +B1339314521829N00552788EA0239702432 +B1339334521839N00552791EA0239602430 +B1339354521848N00552795EA0239502430 +B1339374521859N00552797EA0239902430 +B1339394521870N00552799EA0240402431 +B1339414521880N00552802EA0240802435 +B1339434521889N00552804EA0241102440 +B1339454521898N00552806EA0241102442 +B1339474521907N00552809EA0241102443 +B1339494521919N00552811EA0241402444 +B1339514521929N00552812EA0241202446 +B1339534521938N00552814EA0241002447 +B1339554521950N00552816EA0241202446 +B1339574521963N00552817EA0241702448 +B1339594521973N00552818EA0242102451 +B1340014521982N00552819EA0242302453 +B1340034521993N00552818EA0243002457 +B1340054522003N00552819EA0243602462 +B1340074522013N00552820EA0243802465 +B1340094522023N00552820EA0243802467 +B1340114522035N00552819EA0244102469 +B1340134522046N00552818EA0244502472 +B1340154522056N00552819EA0244902476 +B1340174522065N00552821EA0245402480 +B1340194522075N00552820EA0245902485 +B1340214522083N00552818EA0246502493 +B1340234522093N00552817EA0246902497 +B1340254522100N00552816EA0247202500 +B1340274522110N00552815EA0247702504 +B1340294522119N00552814EA0247902508 +B1340314522129N00552812EA0248302511 +B1340334522140N00552811EA0248902515 +B1340354522151N00552814EA0249802521 +B1340374522160N00552818EA0250202528 +B1340394522169N00552822EA0250402533 +B1340414522178N00552827EA0250402536 +B1340434522190N00552833EA0250602538 +B1340454522202N00552840EA0250802540 +B1340474522213N00552848EA0251202544 +B1340494522224N00552856EA0251302546 +B1340514522235N00552865EA0251302548 +B1340534522246N00552873EA0251302548 +B1340554522257N00552879EA0251202548 +B1340574522268N00552884EA0250802547 +B1340594522279N00552890EA0250302544 +B1341014522290N00552894EA0249702540 +B1341034522301N00552899EA0249102534 +B1341054522313N00552903EA0248702529 +B1341074522325N00552906EA0248502526 +B1341094522337N00552910EA0248102523 +B1341114522348N00552914EA0247802519 +B1341134522360N00552920EA0247602516 +B1341154522371N00552926EA0247402514 +B1341174522381N00552932EA0247102511 +B1341194522393N00552942EA0246902507 +B1341214522405N00552954EA0247502505 +B1341234522416N00552961EA0248002505 +B1341254522426N00552968EA0248202508 +B1341274522438N00552976EA0248602512 +B1341294522450N00552982EA0249402517 +B1341314522461N00552989EA0249902524 +B1341334522471N00552997EA0250502530 +B1341354522481N00553003EA0251102537 +B1341374522492N00553012EA0251602543 +B1341394522502N00553024EA0252202550 +B1341414522512N00553034EA0252402555 +B1341434522522N00553044EA0252402559 +B1341454522533N00553053EA0252602561 +B1341474522545N00553060EA0252802564 +B1341494522556N00553066EA0253002566 +B1341514522565N00553074EA0253102568 +B1341534522576N00553081EA0253202570 +B1341554522588N00553088EA0253302570 +B1341574522601N00553095EA0253502572 +B1341594522613N00553105EA0253802575 +B1342014522625N00553115EA0253802577 +B1342034522637N00553125EA0253702578 +B1342054522650N00553137EA0253502577 +B1342074522661N00553152EA0253402575 +B1342094522673N00553166EA0253202574 +B1342114522683N00553180EA0252802572 +B1342134522694N00553196EA0252402568 +B1342154522706N00553207EA0251902564 +B1342174522718N00553218EA0251202558 +B1342194522730N00553230EA0250602552 +B1342214522744N00553240EA0250202547 +B1342234522757N00553250EA0249702542 +B1342254522771N00553259EA0249102536 +B1342274522785N00553270EA0248402529 +B1342294522798N00553279EA0248002524 +B1342314522811N00553284EA0247702520 +B1342334522824N00553288EA0247502516 +B1342354522837N00553293EA0247202513 +B1342374522850N00553299EA0246902510 +B1342394522863N00553305EA0246702507 +B1342414522874N00553312EA0246402505 +B1342434522887N00553316EA0246002501 +B1342454522900N00553321EA0245802498 +B1342474522912N00553327EA0245502496 +B1342494522924N00553333EA0245102492 +B1342514522937N00553338EA0245002489 +B1342534522950N00553344EA0245102487 +B1342554522961N00553351EA0244902486 +B1342574522973N00553359EA0244702483 +B1342594522985N00553366EA0244602482 +B1343014522998N00553372EA0244502481 +B1343034523011N00553376EA0244202479 +B1343054523023N00553380EA0243902478 +B1343074523036N00553386EA0243702477 +B1343094523047N00553393EA0243602476 +B1343114523060N00553399EA0243402475 +B1343134523072N00553404EA0243402474 +B1343154523085N00553408EA0243202472 +B1343174523098N00553411EA0243202471 +B1343194523111N00553413EA0243102471 +B1343214523124N00553415EA0242902470 +B1343234523137N00553419EA0242702467 +B1343254523150N00553422EA0242502465 +B1343274523163N00553426EA0242502464 +B1343294523175N00553430EA0242202463 +B1343314523187N00553435EA0241902460 +B1343334523200N00553441EA0241702458 +B1343354523211N00553449EA0241502456 +B1343374523222N00553455EA0241002453 +B1343394523234N00553460EA0240502449 +B1343414523246N00553467EA0240302446 +B1343434523257N00553476EA0240002443 +B1343454523268N00553479EA0239502439 +B1343474523281N00553480EA0239302436 +B1343494523292N00553485EA0239002433 +B1343514523302N00553490EA0238602429 +B1343534523314N00553494EA0238402426 +B1343554523326N00553498EA0238202424 +B1343574523337N00553503EA0237902421 +B1343594523348N00553511EA0237802418 +B1344014523358N00553520EA0237602414 +B1344034523369N00553529EA0237102410 +B1344054523379N00553537EA0236902408 +B1344074523389N00553546EA0236602406 +B1344094523399N00553556EA0236402403 +B1344114523410N00553564EA0236202401 +B1344134523421N00553572EA0236002399 +B1344154523432N00553578EA0235702396 +B1344174523443N00553583EA0235502394 +B1344194523455N00553588EA0235402392 +B1344214523466N00553592EA0235202390 +B1344234523478N00553595EA0235102388 +B1344254523490N00553600EA0235002387 +B1344274523501N00553606EA0234902385 +B1344294523512N00553613EA0234602383 +B1344314523523N00553620EA0234602382 +B1344334523534N00553627EA0234602381 +B1344354523544N00553633EA0234402379 +B1344374523555N00553640EA0234102377 +B1344394523566N00553645EA0234002375 +B1344414523577N00553650EA0233702373 +B1344434523588N00553655EA0233402371 +B1344454523599N00553660EA0233302369 +B1344474523611N00553665EA0233202368 +B1344494523621N00553668EA0232802365 +B1344514523633N00553672EA0232402362 +B1344534523644N00553677EA0232202359 +B1344554523657N00553681EA0232102356 +B1344574523669N00553683EA0232002355 +B1344594523679N00553686EA0231702353 +B1345014523691N00553689EA0231502350 +B1345034523704N00553691EA0231402349 +B1345054523715N00553694EA0231202348 +B1345074523726N00553698EA0230902345 +B1345094523737N00553704EA0230702343 +B1345114523748N00553711EA0230802342 +B1345134523757N00553719EA0230502340 +B1345154523767N00553727EA0230102337 +B1345174523777N00553737EA0230002335 +B1345194523787N00553746EA0229802333 +B1345214523799N00553751EA0229402330 +B1345234523811N00553755EA0229202327 +B1345254523823N00553760EA0229002324 +B1345274523835N00553764EA0228802322 +B1345294523847N00553768EA0228302319 +B1345314523860N00553771EA0228102316 +B1345334523872N00553775EA0227902314 +B1345354523884N00553779EA0227602311 +B1345374523896N00553783EA0227302308 +B1345394523908N00553787EA0227002305 +B1345414523920N00553791EA0226702302 +B1345434523932N00553795EA0226302299 +B1345454523945N00553798EA0226002296 +B1345474523957N00553801EA0225702293 +B1345494523970N00553804EA0225502290 +B1345514523982N00553807EA0225302288 +B1345534523994N00553809EA0225002286 +B1345554524006N00553812EA0224802283 +B1345574524018N00553816EA0224702281 +B1345594524030N00553818EA0224502280 +B1346014524041N00553821EA0224302279 +B1346034524052N00553825EA0224002276 +B1346054524064N00553829EA0223802273 +B1346074524076N00553832EA0223702272 +B1346094524087N00553835EA0223402270 +B1346114524099N00553838EA0223302267 +B1346134524111N00553841EA0223102266 +B1346154524123N00553844EA0222902264 +B1346174524135N00553849EA0222602262 +B1346194524146N00553853EA0222502260 +B1346214524158N00553858EA0222402259 +B1346234524170N00553862EA0222302258 +B1346254524181N00553867EA0222102257 +B1346274524192N00553871EA0222002256 +B1346294524204N00553876EA0221902255 +B1346314524216N00553880EA0221802254 +B1346334524227N00553885EA0221602252 +B1346354524239N00553889EA0221402251 +B1346374524251N00553894EA0221102248 +B1346394524263N00553899EA0220802245 +B1346414524275N00553903EA0220602243 +B1346434524286N00553907EA0220402240 +B1346454524297N00553911EA0220102238 +B1346474524307N00553915EA0219602234 +B1346494524318N00553919EA0219502231 +B1346514524329N00553924EA0219402229 +B1346534524339N00553928EA0219002227 +B1346554524350N00553933EA0218702224 +B1346574524362N00553938EA0218602222 +B1346594524374N00553940EA0218602222 +B1347014524385N00553942EA0218502220 +B1347034524397N00553946EA0218602219 +B1347054524409N00553950EA0218502220 +B1347074524420N00553951EA0218302219 +B1347094524430N00553952EA0218002217 +B1347114524441N00553955EA0217902215 +B1347134524451N00553957EA0217602213 +B1347154524461N00553957EA0217202210 +B1347174524471N00553960EA0217002207 +B1347194524480N00553963EA0216602204 +B1347214524487N00553967EA0216102200 +B1347234524496N00553973EA0215602195 +B1347254524505N00553977EA0215302192 +B1347274524513N00553981EA0214802187 +B1347294524521N00553986EA0214102182 +B1347314524530N00553989EA0213402175 +B1347334524540N00553991EA0212702168 +B1347354524548N00553993EA0212002161 +B1347374524558N00553996EA0211302153 +B1347394524568N00554000EA0210702146 +B1347414524578N00554005EA0210202140 +B1347434524589N00554009EA0209802135 +B1347454524600N00554011EA0209402130 +B1347474524608N00554014EA0208902126 +B1347494524618N00554017EA0208302121 +B1347514524629N00554019EA0208002116 +B1347534524639N00554022EA0207802113 +B1347554524647N00554025EA0207202109 +B1347574524656N00554027EA0206502103 +B1347594524667N00554032EA0206302098 +B1348014524677N00554036EA0206302095 +B1348034524686N00554040EA0206002093 +B1348054524696N00554044EA0205502088 +B1348074524708N00554046EA0205302085 +B1348094524719N00554046EA0204902082 +B1348114524730N00554047EA0204502078 +B1348134524742N00554048EA0204302075 +B1348154524755N00554050EA0204202073 +B1348174524766N00554050EA0204002072 +B1348194524778N00554052EA0203602069 +B1348214524790N00554055EA0203402067 +B1348234524802N00554057EA0203302066 +B1348254524813N00554057EA0202902063 +B1348274524824N00554060EA0202502059 +B1348294524836N00554063EA0202302056 +B1348314524848N00554065EA0202102054 +B1348334524859N00554068EA0201802052 +B1348354524870N00554069EA0201802050 +B1348374524882N00554071EA0202302049 +B1348394524893N00554073EA0202802049 +B1348414524903N00554076EA0202802051 +B1348434524913N00554079EA0202502051 +B1348454524925N00554082EA0202402050 +B1348474524936N00554086EA0202302050 +B1348494524946N00554090EA0202302050 +B1348514524957N00554094EA0202502050 +B1348534524967N00554102EA0203102052 +B1348554524975N00554111EA0203802055 +B1348574524983N00554119EA0204402061 +B1348594524993N00554121EA0204902067 +B1349014525000N00554106EA0205202074 +B1349034524991N00554090EA0205602080 +B1349054524978N00554092EA0206002086 +B1349074524971N00554107EA0206502091 +B1349094524975N00554124EA0207202098 +B1349114524985N00554130EA0207902106 +B1349134524996N00554124EA0208602114 +B1349154525000N00554109EA0209002121 +B1349174524995N00554094EA0209402127 +B1349194524985N00554090EA0209402131 +B1349214524974N00554099EA0209802134 +B1349234524972N00554117EA0210302137 +B1349254524976N00554134EA0211102144 +B1349274524980N00554148EA0211702152 +B1349294524988N00554157EA0212002155 +B1349314525001N00554157EA0212502160 +B1349334525008N00554143EA0212602163 +B1349354525002N00554123EA0213102166 +B1349374524988N00554119EA0213602170 +B1349394524978N00554130EA0214002174 +B1349414524977N00554149EA0214502178 +B1349434524985N00554165EA0214902183 +B1349454524998N00554169EA0215402188 +B1349474525008N00554163EA0215802192 +B1349494525015N00554149EA0216002196 +B1349514525014N00554131EA0216602199 +B1349534525004N00554120EA0217302204 +B1349554524994N00554128EA0217702208 +B1349574524992N00554146EA0218302212 +B1349594525002N00554156EA0218602216 +B1350014525014N00554150EA0218802220 +B1350034525020N00554133EA0219202225 +B1350054525015N00554115EA0219802229 +B1350074525004N00554106EA0220502236 +B1350094524994N00554111EA0221002241 +B1350114524987N00554124EA0221302246 +B1350134524984N00554139EA0221702250 +B1350154524989N00554155EA0222102255 +B1350174525000N00554159EA0222402259 +B1350194525011N00554152EA0222802262 +B1350214525018N00554138EA0223102266 +B1350234525019N00554119EA0223802270 +B1350254525012N00554101EA0224502276 +B1350274525007N00554089EA0225102283 +B1350294525002N00554082EA0225002288 +B1350314524990N00554086EA0224802291 +B1350334524980N00554100EA0224902293 +B1350354524979N00554118EA0225202295 +B1350374524987N00554131EA0225802298 +B1350394524996N00554134EA0226202302 +B1350414525007N00554132EA0226502305 +B1350434525017N00554123EA0226802307 +B1350454525024N00554108EA0226902309 +B1350474525023N00554088EA0227002311 +B1350494525013N00554077EA0227002312 +B1350514525004N00554079EA0226802310 +B1350534524996N00554085EA0226302306 +B1350554524990N00554100EA0226202302 +B1350574524994N00554115EA0226502300 +B1350594525001N00554124EA0226802300 +B1351014525010N00554129EA0227202303 +B1351034525019N00554133EA0227302305 +B1351054525027N00554140EA0227502307 +B1351074525036N00554149EA0227902309 +B1351094525046N00554154EA0228702314 +B1351114525055N00554156EA0229302320 +B1351134525063N00554159EA0229502324 +B1351154525074N00554154EA0229402327 +B1351174525076N00554139EA0229102329 +B1351194525067N00554127EA0229202330 +B1351214525056N00554131EA0229002331 +B1351234525047N00554143EA0229002330 +B1351254525045N00554161EA0229102330 +B1351274525051N00554180EA0229302330 +B1351294525061N00554194EA0229802333 +B1351314525073N00554199EA0230202337 +B1351334525084N00554202EA0230802343 +B1351354525092N00554209EA0231202348 +B1351374525100N00554211EA0231302352 +B1351394525104N00554202EA0231402354 +B1351414525099N00554189EA0231902355 +B1351434525087N00554187EA0232202358 +B1351454525075N00554200EA0232402360 +B1351474525068N00554219EA0232602362 +B1351494525069N00554241EA0233002365 +B1351514525076N00554257EA0233202368 +B1351534525088N00554265EA0233302369 +B1351554525101N00554260EA0233802371 +B1351574525104N00554246EA0234402373 +B1351594525093N00554235EA0234802378 +B1352014525080N00554243EA0234902380 +B1352034525075N00554264EA0234902382 +B1352054525078N00554285EA0235102383 +B1352074525091N00554298EA0235602389 +B1352094525104N00554296EA0236202393 +B1352114525112N00554283EA0236702399 +B1352134525113N00554268EA0237402405 +B1352154525103N00554261EA0237602410 +B1352174525091N00554268EA0237902414 +B1352194525085N00554288EA0238002417 +B1352214525090N00554307EA0238202418 +B1352234525105N00554313EA0238902422 +B1352254525118N00554312EA0239602429 +B1352274525128N00554306EA0240402437 +B1352294525134N00554298EA0241102445 +B1352314525133N00554287EA0241502451 +B1352334525121N00554279EA0242002456 +B1352354525110N00554291EA0242402460 +B1352374525109N00554312EA0243002464 +B1352394525119N00554326EA0243702470 +B1352414525129N00554333EA0244302476 +B1352434525139N00554337EA0244902482 +B1352454525152N00554343EA0245502488 +B1352474525166N00554349EA0246102493 +B1352494525180N00554352EA0246702499 +B1352514525193N00554352EA0247202505 +B1352534525205N00554355EA0247602510 +B1352554525217N00554358EA0248002514 +B1352574525228N00554363EA0248602520 +B1352594525234N00554375EA0248602524 +B1353014525240N00554393EA0249002527 +B1353034525248N00554410EA0249502533 +B1353054525257N00554421EA0249702537 +B1353074525267N00554433EA0249802540 +B1353094525277N00554447EA0250202543 +B1353114525288N00554459EA0250502547 +B1353134525297N00554469EA0250602549 +B1353154525307N00554480EA0250602550 +B1353174525318N00554490EA0250402549 +B1353194525329N00554500EA0250302548 +B1353214525340N00554508EA0250102546 +B1353234525353N00554513EA0249902544 +B1353254525366N00554519EA0250002543 +B1353274525379N00554527EA0250102543 +B1353294525392N00554534EA0250002543 +B1353314525406N00554537EA0249802542 +B1353334525420N00554546EA0249902541 +B1353354525433N00554556EA0249902541 +B1353374525445N00554562EA0249802541 +B1353394525459N00554567EA0249702539 +B1353414525473N00554574EA0249702539 +B1353434525486N00554581EA0249602538 +B1353454525500N00554587EA0249502537 +B1353474525515N00554594EA0249402537 +B1353494525529N00554600EA0249402536 +B1353514525544N00554604EA0249302535 +B1353534525558N00554609EA0249202534 +B1353554525573N00554612EA0249102533 +B1353574525587N00554615EA0248802532 +B1353594525600N00554618EA0248602530 +B1354014525613N00554620EA0248402527 +B1354034525625N00554620EA0248202525 +B1354054525635N00554619EA0247902523 +B1354074525645N00554619EA0247502520 +B1354094525656N00554618EA0247102515 +B1354114525668N00554618EA0246802512 +B1354134525680N00554620EA0246502509 +B1354154525693N00554620EA0246202506 +B1354174525705N00554618EA0246002502 +B1354194525719N00554616EA0245902500 +B1354214525732N00554614EA0245902499 +B1354234525745N00554612EA0246002499 +B1354254525758N00554609EA0246302500 +B1354274525771N00554608EA0246802502 +B1354294525783N00554610EA0247202506 +B1354314525794N00554612EA0247402509 +B1354334525805N00554614EA0247702511 +B1354354525817N00554619EA0247902513 +B1354374525828N00554619EA0248102516 +B1354394525841N00554621EA0248402519 +B1354414525853N00554628EA0248702522 +B1354434525865N00554637EA0248802525 +B1354454525878N00554645EA0248902526 +B1354474525891N00554652EA0249002527 +B1354494525905N00554660EA0249102528 +B1354514525916N00554664EA0248802528 +B1354534525927N00554667EA0248202527 +B1354554525939N00554671EA0247802524 +B1354574525952N00554675EA0247702522 +B1354594525963N00554677EA0247502522 +B1355014525973N00554680EA0247202519 +B1355034525984N00554683EA0247002516 +B1355054525997N00554686EA0246702513 +B1355074526009N00554689EA0246502510 +B1355094526021N00554694EA0246202507 +B1355114526034N00554700EA0246002505 +B1355134526046N00554706EA0245802503 +B1355154526058N00554711EA0245502500 +B1355174526071N00554719EA0245302497 +B1355194526083N00554725EA0245202495 +B1355214526095N00554728EA0244802492 +B1355234526108N00554732EA0244602489 +B1355254526120N00554739EA0244202486 +B1355274526132N00554744EA0243902483 +B1355294526143N00554749EA0243502479 +B1355314526154N00554756EA0242902474 +B1355334526164N00554764EA0242302469 +B1355354526175N00554772EA0241902463 +B1355374526186N00554782EA0241602460 +B1355394526197N00554790EA0241202455 +B1355414526209N00554796EA0241102451 +B1355434526223N00554803EA0241602449 +B1355454526234N00554809EA0241902448 +B1355474526242N00554816EA0241702448 +B1355494526251N00554818EA0241302446 +B1355514526261N00554817EA0241402445 +B1355534526272N00554820EA0241502446 +B1355554526283N00554823EA0241402447 +B1355574526295N00554825EA0241302446 +B1355594526309N00554827EA0241502446 +B1356014526323N00554825EA0241802448 +B1356034526334N00554824EA0241802450 +B1356054526346N00554824EA0241602450 +B1356074526358N00554823EA0241502449 +B1356094526372N00554824EA0241502449 +B1356114526386N00554828EA0241302449 +B1356134526399N00554831EA0241102448 +B1356154526413N00554832EA0241002446 +B1356174526426N00554831EA0240802445 +B1356194526439N00554834EA0240602443 +B1356214526453N00554839EA0240502441 +B1356234526468N00554844EA0240402440 +B1356254526482N00554850EA0240202439 +B1356274526495N00554856EA0239702436 +B1356294526510N00554862EA0239202432 +B1356314526523N00554867EA0238802427 +B1356334526537N00554871EA0238302423 +B1356354526551N00554876EA0238002419 +B1356374526564N00554879EA0237602415 +B1356394526577N00554881EA0237102411 +B1356414526590N00554882EA0236802407 +B1356434526603N00554883EA0236402403 +B1356454526616N00554883EA0236002399 +B1356474526630N00554882EA0235602396 +B1356494526643N00554881EA0235202392 +B1356514526657N00554882EA0234802388 +B1356534526671N00554882EA0234602384 +B1356554526685N00554884EA0234302382 +B1356574526698N00554887EA0234002378 +B1356594526712N00554890EA0233602374 +B1357014526727N00554893EA0233202371 +B1357034526742N00554897EA0233002368 +B1357054526756N00554901EA0232702365 +B1357074526770N00554906EA0232302361 +B1357094526784N00554910EA0232002358 +B1357114526798N00554915EA0231702355 +B1357134526812N00554921EA0231402352 +B1357154526826N00554926EA0231102349 +B1357174526840N00554931EA0230902346 +B1357194526854N00554936EA0230702344 +B1357214526868N00554941EA0230402342 +B1357234526882N00554945EA0230202339 +B1357254526896N00554950EA0229902337 +B1357274526910N00554955EA0229702334 +B1357294526925N00554960EA0229502331 +B1357314526939N00554965EA0229402330 +B1357334526951N00554971EA0229202328 +B1357354526964N00554978EA0228802325 +B1357374526978N00554985EA0228502322 +B1357394526992N00554991EA0228202319 +B1357414527005N00554997EA0227802315 +B1357434527019N00555005EA0227502312 +B1357454527032N00555012EA0227102309 +B1357474527045N00555018EA0226602305 +B1357494527058N00555024EA0226202300 +B1357514527071N00555030EA0225702295 +B1357534527084N00555037EA0225202290 +B1357554527097N00555044EA0224702285 +B1357574527111N00555053EA0224402280 +B1357594527124N00555061EA0224302277 +B1358014527136N00555071EA0224102275 +B1358034527149N00555080EA0223902273 +B1358054527161N00555088EA0223702272 +B1358074527173N00555098EA0223602270 +B1358094527186N00555107EA0223602269 +B1358114527197N00555113EA0223402269 +B1358134527209N00555119EA0223102267 +B1358154527222N00555126EA0223002265 +B1358174527235N00555135EA0222902265 +B1358194527245N00555144EA0222402263 +B1358214527257N00555153EA0222002260 +B1358234527271N00555161EA0221902258 +B1358254527283N00555172EA0221902257 +B1358274527293N00555181EA0221702255 +B1358294527306N00555189EA0221402252 +B1358314527318N00555197EA0221302250 +B1358334527331N00555203EA0221002248 +B1358354527344N00555208EA0220902246 +B1358374527357N00555212EA0220702245 +B1358394527370N00555216EA0220402242 +B1358414527384N00555220EA0220202240 +B1358434527397N00555223EA0220102237 +B1358454527412N00555228EA0220002236 +B1358474527426N00555232EA0219902235 +B1358494527439N00555236EA0219802234 +B1358514527453N00555239EA0219602232 +B1358534527467N00555242EA0219402230 +B1358554527481N00555248EA0219202229 +B1358574527494N00555255EA0219002227 +B1358594527507N00555261EA0218702224 +B1359014527520N00555268EA0218402222 +B1359034527533N00555274EA0218202219 +B1359054527546N00555280EA0217902216 +B1359074527560N00555286EA0217502213 +B1359094527573N00555291EA0217202209 +B1359114527587N00555294EA0216902206 +B1359134527600N00555297EA0216602203 +B1359154527614N00555302EA0216302200 +B1359174527628N00555306EA0215902196 +B1359194527641N00555310EA0215502193 +B1359214527655N00555314EA0215202189 +B1359234527668N00555317EA0214802185 +B1359254527682N00555321EA0214602182 +B1359274527695N00555326EA0214202178 +B1359294527708N00555330EA0213802174 +B1359314527721N00555335EA0213602171 +B1359334527734N00555341EA0213302168 +B1359354527747N00555347EA0212902164 +B1359374527760N00555353EA0212702161 +B1359394527773N00555360EA0212502158 +B1359414527786N00555367EA0212202156 +B1359434527799N00555374EA0211802152 +B1359454527812N00555381EA0211602150 +B1359474527825N00555387EA0211402148 +B1359494527837N00555392EA0211202146 +B1359514527848N00555400EA0211002144 +B1359534527859N00555407EA0210702142 +B1359554527869N00555413EA0210502139 +B1359574527879N00555419EA0210202137 +B1359594527890N00555427EA0210102135 +B1400014527900N00555434EA0210102134 +B1400034527910N00555438EA0209902133 +B1400054527920N00555442EA0209802132 +B1400074527930N00555448EA0209702131 +B1400094527940N00555453EA0209702131 +B1400114527949N00555457EA0209402130 +B1400134527960N00555464EA0209002128 +B1400154527972N00555473EA0209002126 +B1400174527984N00555481EA0208802125 +B1400194527994N00555489EA0208402122 +B1400214528007N00555496EA0207902117 +B1400234528020N00555501EA0207702115 +B1400254528032N00555505EA0207302112 +B1400274528045N00555509EA0206902107 +B1400294528058N00555516EA0206702104 +B1400314528071N00555523EA0206702102 +B1400334528082N00555528EA0206502100 +B1400354528094N00555532EA0206102097 +B1400374528107N00555535EA0205902094 +B1400394528119N00555538EA0205702092 +B1400414528131N00555544EA0205502090 +B1400434528143N00555550EA0205402088 +B1400454528154N00555556EA0205202087 +B1400474528165N00555563EA0205002085 +B1400494528176N00555572EA0204802083 +B1400514528186N00555582EA0204402081 +B1400534528195N00555591EA0204002077 +B1400554528207N00555603EA0204002074 +B1400574528217N00555617EA0204202073 +B1400594528225N00555628EA0204202073 +B1401014528234N00555638EA0204002072 +B1401034528242N00555650EA0203902070 +B1401054528251N00555662EA0203802068 +B1401074528260N00555674EA0203702068 +B1401094528269N00555686EA0203402066 +B1401114528278N00555698EA0203202064 +B1401134528289N00555711EA0203202063 +B1401154528297N00555726EA0203002062 +B1401174528305N00555741EA0202702060 +B1401194528313N00555758EA0202402057 +B1401214528321N00555774EA0202202055 +B1401234528330N00555789EA0201902053 +B1401254528338N00555804EA0201602049 +B1401274528347N00555819EA0201502047 +B1401294528356N00555833EA0201402045 +B1401314528365N00555847EA0201302044 +B1401334528374N00555861EA0201302043 +B1401354528383N00555875EA0201302043 +B1401374528392N00555888EA0201202043 +B1401394528402N00555901EA0201002042 +B1401414528412N00555914EA0200902041 +B1401434528422N00555927EA0200902040 +B1401454528433N00555939EA0200902041 +B1401474528443N00555952EA0200902041 +B1401494528453N00555964EA0200702040 +B1401514528465N00555976EA0200602039 +B1401534528476N00555988EA0200402037 +B1401554528487N00556000EA0200102035 +B1401574528498N00556014EA0200002033 +B1401594528508N00556027EA0199802032 +B1402014528518N00556039EA0199402029 +B1402034528529N00556051EA0199102026 +B1402054528540N00556063EA0199002024 +B1402074528550N00556073EA0198602022 +B1402094528561N00556083EA0198202018 +B1402114528573N00556092EA0197902015 +B1402134528585N00556101EA0197602012 +B1402154528595N00556112EA0197202009 +B1402174528605N00556123EA0196602004 +B1402194528616N00556136EA0196301999 +B1402214528627N00556149EA0196001996 +B1402234528637N00556161EA0195601992 +B1402254528647N00556173EA0195001987 +B1402274528657N00556188EA0194701982 +B1402294528668N00556202EA0194401979 +B1402314528678N00556215EA0194001975 +B1402334528689N00556229EA0193601971 +B1402354528700N00556243EA0193301968 +B1402374528710N00556257EA0193001965 +B1402394528720N00556272EA0192501961 +B1402414528730N00556287EA0192201956 +B1402434528741N00556301EA0191901953 +B1402454528750N00556315EA0191501949 +B1402474528759N00556329EA0191001944 +B1402494528771N00556344EA0190601940 +B1402514528781N00556359EA0190401938 +B1402534528790N00556373EA0190001934 +B1402554528800N00556388EA0189601930 +B1402574528811N00556404EA0189301927 +B1402594528821N00556421EA0189101924 +B1403014528832N00556436EA0188901922 +B1403034528842N00556450EA0188801920 +B1403054528852N00556466EA0188501917 +B1403074528862N00556480EA0188301915 +B1403094528873N00556494EA0188101912 +B1403114528882N00556508EA0187801911 +B1403134528892N00556522EA0187601908 +B1403154528903N00556534EA0187301905 +B1403174528912N00556548EA0187101903 +B1403194528921N00556562EA0186801900 +B1403214528930N00556575EA0186501897 +B1403234528940N00556589EA0186201894 +B1403254528949N00556603EA0185901891 +B1403274528958N00556617EA0185601888 +B1403294528966N00556632EA0185201884 +B1403314528975N00556647EA0184801880 +B1403334528984N00556661EA0184401876 +B1403354528992N00556676EA0184001872 +B1403374529002N00556690EA0183601868 +B1403394529011N00556705EA0183301864 +B1403414529021N00556721EA0183101861 +B1403434529029N00556736EA0182701859 +B1403454529038N00556750EA0182301855 +B1403474529048N00556766EA0182001851 +B1403494529057N00556782EA0181701848 +B1403514529067N00556796EA0181301844 +B1403534529077N00556810EA0180901840 +B1403554529088N00556825EA0180601836 +B1403574529098N00556840EA0180301833 +B1403594529108N00556854EA0180001830 +B1404014529119N00556867EA0179701827 +B1404034529129N00556880EA0179401824 +B1404054529139N00556893EA0179001821 +B1404074529149N00556908EA0178701817 +B1404094529159N00556923EA0178401814 +B1404114529169N00556937EA0178001811 +B1404134529179N00556951EA0177701807 +B1404154529189N00556966EA0177401804 +B1404174529199N00556981EA0177101801 +B1404194529208N00556996EA0176701798 +B1404214529219N00557011EA0176401794 +B1404234529229N00557026EA0176101791 +B1404254529238N00557042EA0175801788 +B1404274529248N00557058EA0175501784 +B1404294529258N00557074EA0175201781 +B1404314529269N00557090EA0174901778 +B1404334529279N00557105EA0174701776 +B1404354529288N00557120EA0174401773 +B1404374529299N00557135EA0174101769 +B1404394529309N00557150EA0173801767 +B1404414529319N00557164EA0173601765 +B1404434529329N00557178EA0173301762 +B1404454529339N00557193EA0173101759 +B1404484529350N00557207EA0173001758 +B1404504529359N00557219EA0172701756 +B1404524529369N00557233EA0172401754 +B1404544529379N00557247EA0172301751 +B1404564529390N00557261EA0172201750 +B1404584529399N00557272EA0172001749 +B1405004529409N00557284EA0171601746 +B1405024529420N00557297EA0171401744 +B1405044529431N00557309EA0171201742 +B1405064529441N00557321EA0171001740 +B1405084529451N00557333EA0170701737 +B1405104529461N00557346EA0170401733 +B1405124529471N00557359EA0170101731 +B1405144529481N00557372EA0170001729 +B1405164529490N00557385EA0169801727 +B1405184529500N00557397EA0169501724 +B1405204529509N00557410EA0169301721 +B1405224529519N00557423EA0169201720 +B1405244529528N00557436EA0168901717 +B1405264529538N00557448EA0168501714 +B1405284529548N00557463EA0168201710 +B1405304529557N00557478EA0167901708 +B1405324529567N00557492EA0167501704 +B1405344529576N00557508EA0167201701 +B1405364529585N00557523EA0167001698 +B1405384529595N00557538EA0166801696 +B1405404529604N00557551EA0166701694 +B1405424529612N00557564EA0166501692 +B1405444529621N00557578EA0166301690 +B1405464529629N00557592EA0166001688 +B1405484529638N00557606EA0165801685 +B1405504529645N00557620EA0165601683 +B1405524529654N00557635EA0165401681 +B1405544529662N00557650EA0165201679 +B1405564529669N00557666EA0165101677 +B1405584529677N00557679EA0164801675 +B1406004529686N00557693EA0164601673 +B1406024529695N00557706EA0164401670 +B1406044529704N00557717EA0164201668 +B1406064529713N00557730EA0163901666 +B1406084529722N00557743EA0163701663 +B1406104529732N00557755EA0163601662 +B1406124529740N00557768EA0163501661 +B1406144529748N00557780EA0163301658 +B1406164529757N00557793EA0163101656 +B1406184529766N00557806EA0162901655 +B1406204529774N00557817EA0162701653 +B1406224529783N00557829EA0162401650 +B1406244529792N00557841EA0162301648 +B1406264529801N00557851EA0162101647 +B1406284529810N00557861EA0161801644 +B1406304529819N00557872EA0161601642 +B1406324529829N00557883EA0161501640 +B1406344529837N00557894EA0161201638 +B1406364529846N00557905EA0160901635 +B1406384529855N00557917EA0160701633 +B1406404529864N00557929EA0160401631 +B1406424529872N00557941EA0160101628 +B1406444529882N00557952EA0159901625 +B1406464529892N00557964EA0159701622 +B1406484529900N00557976EA0159401620 +B1406504529910N00557988EA0159001617 +B1406524529920N00557999EA0158801614 +B1406544529929N00558011EA0158601612 +B1406564529939N00558022EA0158401609 +B1406584529948N00558033EA0158101607 +B1407004529958N00558045EA0157901605 +B1407024529967N00558056EA0157701603 +B1407044529976N00558068EA0157401600 +B1407064529986N00558079EA0157101597 +B1407084529996N00558090EA0156901594 +B1407104530005N00558102EA0156601591 +B1407124530014N00558114EA0156301588 +B1407144530024N00558127EA0156101586 +B1407164530033N00558140EA0155901584 +B1407184530042N00558154EA0155701582 +B1407204530051N00558167EA0155501580 +B1407224530059N00558180EA0155201577 +B1407244530068N00558193EA0155001575 +B1407264530077N00558206EA0154801573 +B1407284530086N00558218EA0154601571 +B1407304530096N00558230EA0154301568 +B1407324530105N00558242EA0154101565 +B1407344530114N00558255EA0153901564 +B1407364530123N00558267EA0153701561 +B1407384530132N00558280EA0153401559 +B1407404530141N00558294EA0153301557 +B1407424530150N00558306EA0153101555 +B1407444530158N00558319EA0152901553 +B1407464530167N00558332EA0152701551 +B1407484530176N00558344EA0152501549 +B1407504530184N00558356EA0152201547 +B1407524530193N00558369EA0152001544 +B1407544530202N00558382EA0151701542 +B1407564530210N00558395EA0151501539 +B1407584530219N00558407EA0151301537 +B1408004530227N00558420EA0151101535 +B1408024530236N00558433EA0151001534 +B1408044530244N00558445EA0150801532 +B1408064530253N00558457EA0150601530 +B1408084530261N00558470EA0150401528 +B1408104530269N00558482EA0150201526 +B1408124530277N00558494EA0150001523 +B1408144530285N00558506EA0149701521 +B1408164530294N00558518EA0149601519 +B1408184530302N00558529EA0149401517 +B1408204530311N00558541EA0149101515 +B1408224530320N00558552EA0148901512 +B1408244530329N00558564EA0148701510 +B1408264530338N00558575EA0148501509 +B1408284530347N00558587EA0148301507 +B1408304530356N00558598EA0148101504 +B1408324530365N00558610EA0147901503 +B1408344530373N00558622EA0147801501 +B1408364530382N00558633EA0147501499 +B1408384530391N00558645EA0147401497 +B1408404530400N00558657EA0147201495 +B1408424530408N00558669EA0147001493 +B1408444530418N00558681EA0146801491 +B1408464530426N00558693EA0146601489 +B1408484530435N00558704EA0146501488 +B1408504530443N00558717EA0146301486 +B1408524530452N00558729EA0146101484 +B1408544530461N00558740EA0145901482 +B1408564530470N00558752EA0145701480 +B1408584530478N00558764EA0145501478 +B1409004530487N00558776EA0145301476 +B1409024530496N00558787EA0145101474 +B1409044530505N00558798EA0144901472 +B1409064530514N00558809EA0144701470 +B1409084530523N00558821EA0144501468 +B1409104530531N00558832EA0144201465 +B1409124530540N00558844EA0144001463 +B1409144530549N00558856EA0143801461 +B1409164530557N00558868EA0143501458 +B1409184530566N00558880EA0143201455 +B1409204530574N00558893EA0143001453 +B1409224530583N00558905EA0142801451 +B1409244530591N00558917EA0142601448 +B1409264530600N00558928EA0142401446 +B1409284530609N00558940EA0142201444 +B1409304530617N00558951EA0141901441 +B1409324530626N00558963EA0141601439 +B1409344530635N00558975EA0141401436 +B1409364530643N00558987EA0141201434 +B1409384530651N00558999EA0140901431 +B1409404530660N00559010EA0140601428 +B1409424530669N00559022EA0140401426 +B1409444530677N00559033EA0140101423 +B1409464530686N00559044EA0139701420 +B1409484530695N00559056EA0139401417 +B1409504530703N00559067EA0139101414 +B1409524530712N00559079EA0138701411 +B1409544530721N00559090EA0138401407 +B1409564530730N00559102EA0138101404 +B1409584530739N00559113EA0137801401 +B1410004530747N00559124EA0137501398 +B1410024530756N00559137EA0137201395 +B1410044530764N00559149EA0136901392 +B1410064530773N00559161EA0136601389 +B1410084530781N00559173EA0136401386 +B1410104530789N00559185EA0136101383 +B1410124530798N00559197EA0135801380 +B1410144530806N00559209EA0135401377 +B1410164530815N00559220EA0135101374 +B1410184530823N00559232EA0134801371 +B1410204530831N00559244EA0134501367 +B1410224530840N00559256EA0134201364 +B1410244530848N00559268EA0133901361 +B1410264530856N00559281EA0133701359 +B1410284530864N00559293EA0133401356 +B1410304530871N00559306EA0133101353 +B1410324530879N00559319EA0132901350 +B1410344530886N00559332EA0132601348 +B1410364530894N00559345EA0132401345 +B1410384530902N00559358EA0132101342 +B1410404530909N00559371EA0131901340 +B1410424530917N00559384EA0131701337 +B1410444530924N00559397EA0131401334 +B1410464530932N00559410EA0131201332 +B1410484530939N00559423EA0131001330 +B1410504530947N00559435EA0130801328 +B1410524530955N00559448EA0130701326 +B1410544530963N00559460EA0130401324 +B1410564530970N00559473EA0130301322 +B1410584530977N00559485EA0130001320 +B1411004530984N00559498EA0129801317 +B1411024530992N00559511EA0129601315 +B1411044530999N00559523EA0129401314 +B1411064531006N00559535EA0129101311 +B1411084531014N00559548EA0129001309 +B1411104531021N00559561EA0128801308 +B1411124531028N00559574EA0128601305 +B1411144531034N00559587EA0128301302 +B1411164531041N00559602EA0128101300 +B1411184531047N00559615EA0127801298 +B1411204531054N00559628EA0127501294 +B1411224531061N00559642EA0127201291 +B1411244531068N00559655EA0126901289 +B1411264531074N00559668EA0126601286 +B1411284531080N00559682EA0126301283 +B1411304531087N00559695EA0126001280 +B1411324531093N00559709EA0125701277 +B1411344531100N00559723EA0125401273 +B1411364531107N00559737EA0125201271 +B1411384531114N00559750EA0124901268 +B1411404531119N00559764EA0124701266 +B1411424531126N00559779EA0124601264 +B1411444531132N00559793EA0124501263 +B1411464531138N00559806EA0124301262 +B1411484531144N00559820EA0124101260 +B1411504531151N00559834EA0124001259 +B1411524531157N00559848EA0123701257 +B1411544531163N00559861EA0123401254 +B1411564531170N00559874EA0123001251 +B1411584531177N00559885EA0122801248 +B1412004531183N00559898EA0122601245 +B1412024531189N00559912EA0122501243 +B1412044531193N00559927EA0122201242 +B1412064531197N00559940EA0121601239 +B1412084531203N00559949EA0121201234 +B1412104531210N00559959EA0121001231 +B1412124531215N00559970EA0120601229 +B1412144531221N00559979EA0120201224 +B1412164531228N00559988EA0119901220 +B1412184531234N00559998EA0119601218 +B1412204531240N00600008EA0119101214 +B1412224531246N00600019EA0118801209 +B1412244531253N00600031EA0118501206 +B1412264531259N00600042EA0118201203 +B1412284531265N00600052EA0117801199 +B1412304531271N00600064EA0117501195 +B1412324531277N00600075EA0117201192 +B1412344531284N00600085EA0116801188 +B1412364531290N00600094EA0116401184 +B1412384531298N00600104EA0116001180 +B1412404531305N00600114EA0115701176 +B1412424531312N00600123EA0115301172 +B1412444531319N00600133EA0115101169 +B1412464531327N00600143EA0114901166 +B1412484531334N00600153EA0114601163 +B1412504531342N00600161EA0114401161 +B1412524531350N00600169EA0114501160 +B1412544531357N00600177EA0114401160 +B1412564531365N00600185EA0114401160 +B1412584531371N00600194EA0114301159 +B1413004531377N00600203EA0114001157 +B1413024531384N00600214EA0113801155 +B1413044531389N00600227EA0113701154 +B1413064531396N00600239EA0113601152 +B1413084531402N00600251EA0113401151 +B1413104531409N00600262EA0113301149 +B1413124531416N00600271EA0113101148 +B1413144531423N00600280EA0112901146 +B1413164531430N00600290EA0112601144 +B1413184531438N00600300EA0112401141 +B1413204531445N00600309EA0112101138 +B1413224531453N00600320EA0112101136 +B1413244531461N00600331EA0112001135 +B1413264531469N00600342EA0111901135 +B1413284531476N00600353EA0111701133 +B1413304531485N00600363EA0111601132 +B1413324531492N00600373EA0111501131 +B1413344531499N00600383EA0111301129 +B1413364531507N00600391EA0111001127 +B1413384531513N00600400EA0110801125 +B1413404531519N00600410EA0110401122 +B1413424531525N00600419EA0109901118 +B1413444531532N00600429EA0109501113 +B1413464531539N00600440EA0109301110 +B1413484531545N00600452EA0109001108 +B1413504531551N00600465EA0108701104 +B1413524531559N00600476EA0108401101 +B1413544531565N00600488EA0108201099 +B1413564531571N00600502EA0108001096 +B1413584531577N00600517EA0107701094 +B1414004531584N00600531EA0107501091 +B1414024531590N00600546EA0107301089 +B1414044531596N00600560EA0107101087 +B1414064531602N00600575EA0106901085 +B1414084531609N00600590EA0106801083 +B1414104531616N00600606EA0106701082 +B1414124531623N00600622EA0106701081 +B1414144531629N00600638EA0106601081 +B1414164531636N00600653EA0106401080 +B1414184531642N00600668EA0106301078 +B1414204531650N00600684EA0106201077 +B1414224531656N00600701EA0106101077 +B1414244531661N00600716EA0106001076 +B1414264531668N00600731EA0105701073 +B1414284531675N00600747EA0105501071 +B1414304531682N00600760EA0105401069 +B1414324531689N00600773EA0105101068 +B1414344531693N00600787EA0105001066 +B1414364531698N00600802EA0104701063 +B1414384531703N00600815EA0104501060 +B1414404531709N00600829EA0104201058 +B1414424531715N00600842EA0104001055 +B1414444531723N00600853EA0103901053 +B1414464531729N00600864EA0103701052 +B1414484531735N00600877EA0103501050 +B1414504531742N00600890EA0103601049 +B1414524531746N00600902EA0103601050 +B1414544531748N00600914EA0103301049 +B1414564531753N00600926EA0103201047 +B1414584531758N00600939EA0103301047 +B1415004531760N00600952EA0103001047 +B1415024531765N00600964EA0102801045 +B1415044531770N00600978EA0102901045 +B1415064531774N00600993EA0102901045 +B1415084531778N00601004EA0102901045 +B1415104531784N00601015EA0102801044 +B1415124531789N00601026EA0102901044 +B1415144531795N00601038EA0103001045 +B1415164531800N00601050EA0103001045 +B1415184531805N00601064EA0102901044 +B1415204531810N00601077EA0103001044 +B1415224531814N00601090EA0103101044 +B1415244531818N00601102EA0103101044 +B1415264531824N00601114EA0103101044 +B1415284531828N00601124EA0103201045 +B1415304531833N00601131EA0103301045 +B1415324531838N00601140EA0103501046 +B1415344531843N00601150EA0103701049 +B1415364531847N00601160EA0103901050 +B1415384531852N00601168EA0104001051 +B1415404531857N00601176EA0104201053 +B1415424531863N00601184EA0104401055 +B1415444531868N00601193EA0104601056 +B1415464531874N00601201EA0104601058 +B1415484531879N00601208EA0104301058 +B1415504531885N00601215EA0104001057 +B1415524531892N00601222EA0103801055 +B1415544531899N00601226EA0103801053 +B1415564531906N00601229EA0103901053 +B1415584531914N00601233EA0103801053 +B1416004531921N00601234EA0103801051 +B1416024531930N00601234EA0104001052 +B1416044531939N00601235EA0104401053 +B1416064531947N00601236EA0104701056 +B1416084531954N00601237EA0104901059 +B1416104531959N00601237EA0105001060 +B1416124531965N00601237EA0105001061 +B1416144531971N00601237EA0105001061 +B1416164531977N00601236EA0105301063 +B1416184531983N00601235EA0105601066 +B1416204531989N00601234EA0105901069 +B1416224531994N00601235EA0106101071 +B1416244532000N00601234EA0106401074 +B1416264532006N00601233EA0106801079 +B1416284532010N00601232EA0107301083 +B1416304532014N00601233EA0107501086 +B1416324532018N00601232EA0107701089 +B1416344532021N00601230EA0107901091 +B1416364532025N00601230EA0108201094 +B1416384532026N00601227EA0108401095 +B1416404532025N00601221EA0108601097 +B1416424532013N00601217EA0108801099 +B1416444531997N00601226EA0109101101 +B1416464531988N00601245EA0109201103 +B1416484531988N00601267EA0109501105 +B1416504531994N00601285EA0109801109 +B1416524532002N00601290EA0110001112 +B1416544532007N00601288EA0110301113 +B1416564532010N00601283EA0110601116 +B1416584532011N00601278EA0111101121 +B1417004532012N00601277EA0111401125 +B1417024532015N00601278EA0111501128 +B1417044532015N00601276EA0111501130 +B1417064532010N00601271EA0111501132 +B1417084531996N00601274EA0111701134 +B1417104531981N00601285EA0112101137 +B1417124531972N00601305EA0112301140 +B1417144531970N00601329EA0112701143 +B1417164531976N00601345EA0113101146 +B1417184531982N00601347EA0113401150 +B1417204531985N00601347EA0113501152 +B1417224531988N00601348EA0113201153 +B1417244531992N00601347EA0113201152 +B1417264531997N00601343EA0113501154 +B1417284532000N00601342EA0113601156 +B1417304532002N00601341EA0113601156 +B1417324532004N00601337EA0113801157 +B1417344532007N00601334EA0113901159 +B1417364532010N00601331EA0113901159 +B1417384532012N00601326EA0113901158 +B1417404532016N00601320EA0114001159 +B1417424532021N00601314EA0114501161 +B1417444532024N00601310EA0114901164 +B1417464532026N00601309EA0114901166 +B1417484532027N00601308EA0114901167 +B1417504532030N00601303EA0115401169 +B1417524532032N00601299EA0116001173 +B1417544532033N00601298EA0116201177 +B1417564532035N00601298EA0116201179 +B1417584532038N00601297EA0116301180 +B1418004532040N00601294EA0116501181 +B1418024532042N00601292EA0116501183 +B1418044532045N00601290EA0116401184 +B1418064532048N00601288EA0116501183 +B1418084532051N00601285EA0116601185 +B1418104532054N00601283EA0116801186 +B1418124532058N00601280EA0117201188 +B1418144532063N00601278EA0117701192 +B1418164532065N00601274EA0118001195 +B1418184532061N00601267EA0118101198 +B1418204532048N00601266EA0118301200 +B1418224532036N00601278EA0118601202 +B1418244532031N00601301EA0118801205 +B1418264532032N00601324EA0119301210 +B1418284532039N00601337EA0119701214 +B1418304532045N00601337EA0120001218 +B1418324532046N00601331EA0120101221 +B1418344532042N00601324EA0120201223 +B1418364532031N00601321EA0120201224 +B1418384532016N00601330EA0120401225 +B1418404532006N00601349EA0120601227 +B1418424532002N00601371EA0121001230 +B1418444532004N00601390EA0121501234 +B1418464532009N00601403EA0121701236 +B1418484532017N00601411EA0122001239 +B1418504532023N00601413EA0122801243 +B1418524532026N00601409EA0123201248 +B1418544532027N00601406EA0123101251 +B1418564532031N00601404EA0123001253 +B1418584532035N00601400EA0122901254 +B1419004532031N00601391EA0122501252 +B1419024532018N00601389EA0122301250 +B1419044532002N00601401EA0122301249 +B1419064531993N00601423EA0122301247 +B1419084531992N00601447EA0122401246 +B1419104531997N00601464EA0122701247 +B1419124532003N00601471EA0122901248 +B1419144532007N00601473EA0122801249 +B1419164532011N00601473EA0122601247 +B1419184532016N00601471EA0123001247 +B1419204532021N00601471EA0123401250 +B1419224532024N00601471EA0123501253 +B1419244532026N00601471EA0123601253 +B1419264532030N00601469EA0123901255 +B1419284532033N00601467EA0124101259 +B1419304532034N00601466EA0124101260 +B1419324532037N00601464EA0124201260 +B1419344532041N00601462EA0124401262 +B1419364532045N00601460EA0124401264 +B1419384532049N00601458EA0124501264 +B1419404532055N00601455EA0124801266 +B1419424532061N00601453EA0125101269 +B1419444532067N00601449EA0125401272 +B1419464532072N00601446EA0125601275 +B1419484532076N00601444EA0125401277 +B1419504532080N00601441EA0125101277 +B1419524532084N00601438EA0125001274 +B1419544532090N00601437EA0125201275 +B1419564532095N00601435EA0125501277 +B1419584532098N00601433EA0125801279 +B1420004532103N00601430EA0126401282 +B1420024532107N00601427EA0126901285 +B1420044532111N00601427EA0126801288 +B1420064532115N00601426EA0126601289 +B1420084532123N00601422EA0126801290 +B1420104532131N00601420EA0127101292 +B1420124532137N00601419EA0127301294 +B1420144532142N00601419EA0127401295 +B1420164532148N00601417EA0127801297 +B1420184532152N00601415EA0128301301 +B1420204532156N00601414EA0128401304 +B1420224532159N00601414EA0128401305 +B1420244532158N00601410EA0128601305 +B1420264532152N00601401EA0129201307 +B1420284532140N00601403EA0129501310 +B1420304532128N00601414EA0129801313 +B1420324532117N00601432EA0129901317 +B1420344532114N00601455EA0129801318 +B1420364532123N00601471EA0130001319 +B1420384532134N00601474EA0130501323 +B1420404532138N00601473EA0131201328 +B1420424532141N00601472EA0131701334 +B1420444532145N00601472EA0132201339 +B1420464532149N00601471EA0132701345 +B1420484532148N00601465EA0132801348 +B1420504532137N00601459EA0133201352 +B1420524532124N00601467EA0133501356 +B1420544532114N00601489EA0133901359 +B1420564532114N00601514EA0134701364 +B1420584532123N00601530EA0135501371 +B1421004532131N00601535EA0136101379 +B1421024532134N00601537EA0136401385 +B1421044532138N00601536EA0136801389 +B1421064532138N00601530EA0137101394 +B1421084532130N00601526EA0137301398 +B1421104532117N00601529EA0137601402 +B1421124532104N00601544EA0138001405 +B1421144532098N00601570EA0138301408 +B1421164532100N00601594EA0138801412 +B1421184532107N00601608EA0139201416 +B1421204532114N00601610EA0139601420 +B1421224532118N00601609EA0140001423 +B1421244532122N00601609EA0139701425 +B1421264532127N00601608EA0138901426 +B1421284532132N00601604EA0138301424 +B1421304532134N00601598EA0138101420 +B1421324532136N00601599EA0137801416 +B1421344532141N00601601EA0137201411 +B1421364532148N00601598EA0137101407 +B1421384532152N00601594EA0136901405 +B1421404532156N00601590EA0136601402 +B1421424532160N00601588EA0136301398 +B1421444532165N00601585EA0136301395 +B1421464532170N00601581EA0136301393 +B1421484532175N00601578EA0136401392 +B1421504532180N00601576EA0136601392 +B1421524532185N00601572EA0136901393 +B1421544532190N00601568EA0137001394 +B1421564532193N00601564EA0136401393 +B1421584532194N00601558EA0135601391 +B1422004532197N00601550EA0135401388 +B1422024532200N00601544EA0135401386 +B1422044532205N00601539EA0135401385 +B1422064532210N00601537EA0135401384 +B1422084532216N00601538EA0135301383 +B1422104532221N00601536EA0135201382 +B1422124532226N00601531EA0135301381 +B1422144532232N00601526EA0135601381 +B1422164532237N00601524EA0135901383 +B1422184532243N00601522EA0136001384 +B1422204532249N00601518EA0135701383 +B1422224532257N00601516EA0135001381 +B1422244532265N00601513EA0134501377 +B1422264532273N00601510EA0134301374 +B1422284532282N00601510EA0134201372 +B1422304532291N00601510EA0134201371 +B1422324532301N00601513EA0134101370 +B1422344532311N00601514EA0134001368 +B1422364532321N00601516EA0134101367 +B1422384532331N00601517EA0134301367 +B1422404532340N00601518EA0134601369 +B1422424532347N00601517EA0134901371 +B1422444532353N00601514EA0135301374 +B1422464532358N00601510EA0135701378 +B1422484532364N00601506EA0135901381 +B1422504532371N00601503EA0136101384 +B1422524532376N00601500EA0136101386 +B1422544532377N00601494EA0135701387 +B1422564532373N00601489EA0135401386 +B1422584532365N00601490EA0135201384 +B1423004532355N00601498EA0135301381 +B1423024532345N00601510EA0135601382 +B1423044532336N00601522EA0135901384 +B1423064532328N00601532EA0136101386 +B1423084532319N00601544EA0136101386 +B1423104532309N00601554EA0136101386 +B1423124532300N00601553EA0136101385 +B1423144532300N00601546EA0136201385 +B1423164532305N00601541EA0136301386 +B1423184532313N00601540EA0136201385 +B1423204532321N00601537EA0136101384 +B1423224532329N00601535EA0135801382 +B1423244532336N00601532EA0135401380 +B1423264532341N00601527EA0135101377 +B1423284532341N00601519EA0134801374 +B1423304532338N00601510EA0134501370 +B1423324532335N00601501EA0134301367 +B1423344532332N00601492EA0134201365 +B1423364532328N00601485EA0133901362 +B1423384532322N00601477EA0133601359 +B1423404532316N00601466EA0133601357 +B1423424532314N00601456EA0133401356 +B1423444532312N00601446EA0133001353 +B1423464532309N00601437EA0132601350 +B1423484532307N00601427EA0132301346 +B1423504532306N00601416EA0132001343 +B1423524532303N00601406EA0131801340 +B1423544532301N00601397EA0131501338 +B1423564532300N00601386EA0131301334 +B1423584532299N00601374EA0131101332 +B1424004532297N00601363EA0130901330 +B1424024532297N00601351EA0130601327 +B1424044532298N00601338EA0130501325 +B1424064532300N00601326EA0130401324 +B1424084532304N00601316EA0130201322 +B1424104532307N00601305EA0130201321 +B1424124532310N00601293EA0130301321 +B1424144532313N00601283EA0130601323 +B1424164532316N00601274EA0130801325 +B1424184532317N00601267EA0130801327 +B1424204532319N00601261EA0130901327 +B1424224532321N00601255EA0131001328 +B1424244532324N00601248EA0130901328 +B1424264532328N00601242EA0131001328 +B1424284532331N00601235EA0131101329 +B1424304532333N00601228EA0131101330 +B1424324532336N00601222EA0131001330 +B1424344532339N00601217EA0130901329 +B1424364532343N00601211EA0130801328 +B1424384532347N00601203EA0130701327 +B1424404532350N00601196EA0130601326 +B1424424532355N00601191EA0130601326 +B1424444532359N00601187EA0130301325 +B1424464532360N00601178EA0130201323 +B1424484532355N00601169EA0130101323 +B1424504532351N00601162EA0129901321 +B1424524532354N00601157EA0129401319 +B1424544532364N00601160EA0128901316 +B1424564532374N00601174EA0128701312 +B1424584532380N00601192EA0128501309 +B1425004532385N00601212EA0128301307 +B1425024532390N00601232EA0128301305 +B1425044532394N00601252EA0128401304 +B1425064532399N00601271EA0128501304 +B1425084532404N00601289EA0128801306 +B1425104532408N00601307EA0128701307 +B1425124532412N00601322EA0128201308 +B1425144532418N00601338EA0127801307 +B1425164532425N00601356EA0127901306 +B1425184532430N00601373EA0127801305 +B1425204532434N00601391EA0127801303 +B1425224532440N00601408EA0127701302 +B1425244532446N00601424EA0127701301 +B1425264532453N00601440EA0127801301 +B1425284532458N00601456EA0128001302 +B1425304532464N00601471EA0128201304 +B1425324532470N00601486EA0128301305 +B1425344532475N00601500EA0128501307 +B1425364532480N00601515EA0128601308 +B1425384532487N00601527EA0128701308 +B1425404532494N00601536EA0128701308 +B1425424532501N00601536EA0128601308 +B1425444532505N00601523EA0128601307 +B1425464532499N00601515EA0128601306 +B1425484532486N00601516EA0128801306 +B1425504532474N00601521EA0129001309 +B1425524532463N00601524EA0129101310 +B1425544532453N00601525EA0129301311 +B1425564532442N00601526EA0129401314 +B1425584532433N00601526EA0129501315 +B1426004532425N00601522EA0129501315 +B1426024532420N00601514EA0129501315 +B1426044532417N00601504EA0129501314 +B1426064532415N00601493EA0129401314 +B1426084532412N00601482EA0129401314 +B1426104532409N00601473EA0129301314 +B1426124532406N00601462EA0129201313 +B1426144532403N00601452EA0129101312 +B1426164532399N00601442EA0129101311 +B1426184532395N00601431EA0129201311 +B1426204532394N00601420EA0129301312 +B1426224532393N00601411EA0129401313 +B1426244532391N00601403EA0129301313 +B1426264532387N00601396EA0129101312 +B1426284532383N00601386EA0128901310 +B1426304532380N00601375EA0128801308 +B1426324532377N00601364EA0128801307 +B1426344532374N00601353EA0128801307 +B1426364532372N00601344EA0128801307 +B1426384532372N00601334EA0128901308 +B1426404532372N00601326EA0129001310 +B1426424532373N00601318EA0129001310 +B1426444532373N00601309EA0129201311 +B1426464532374N00601298EA0129601312 +B1426484532376N00601288EA0129901316 +B1426504532377N00601280EA0130101318 +B1426524532379N00601271EA0130001319 +B1426544532389N00601269EA0130001319 +B1426564532397N00601282EA0130101319 +B1426584532395N00601301EA0130101320 +B1427004532386N00601316EA0130401321 +B1427024532376N00601323EA0130701323 +B1427044532366N00601321EA0131001327 +B1427064532357N00601317EA0131201330 +B1427084532351N00601311EA0131201332 +B1427104532346N00601303EA0131101332 +B1427124532344N00601294EA0131101333 +B1427144532346N00601289EA0131101332 +B1427164532352N00601290EA0131101332 +B1427184532359N00601303EA0131201331 +B1427204532360N00601321EA0131201332 +B1427224532357N00601338EA0131101332 +B1427244532354N00601355EA0131201331 +B1427264532348N00601372EA0131401332 +B1427284532339N00601385EA0131601333 +B1427304532330N00601396EA0131701335 +B1427324532320N00601408EA0132101337 +B1427344532310N00601419EA0132701341 +B1427364532302N00601431EA0133001346 +B1427384532293N00601441EA0132801349 +B1427404532280N00601440EA0132701351 +B1427424532269N00601431EA0133001352 +B1427444532266N00601420EA0133301355 +B1427464532269N00601412EA0133601358 +B1427484532275N00601409EA0133701360 +B1427504532285N00601414EA0133901361 +B1427524532291N00601432EA0134101362 +B1427544532287N00601454EA0134701365 +B1427564532277N00601466EA0135101369 +B1427584532266N00601469EA0135301371 +B1428004532255N00601464EA0135601374 +B1428024532251N00601452EA0135901376 +B1428044532255N00601443EA0136201380 +B1428064532264N00601445EA0136201382 +B1428084532273N00601457EA0136301383 +B1428104532276N00601479EA0136601385 +B1428124532268N00601495EA0136901388 +B1428144532256N00601502EA0137201391 +B1428164532244N00601503EA0137301392 +B1428184532232N00601500EA0137501393 +B1428204532224N00601487EA0137901395 +B1428224532227N00601477EA0138101398 +B1428244532235N00601478EA0138201401 +B1428264532242N00601489EA0138101402 +B1428284532247N00601510EA0138201402 +B1428304532243N00601532EA0138501404 +B1428324532231N00601545EA0138801405 +B1428344532219N00601550EA0138801406 +B1428364532207N00601551EA0138801405 +B1428384532193N00601550EA0139001404 +B1428404532184N00601538EA0139301404 +B1428424532184N00601527EA0139601406 +B1428444532187N00601520EA0139701409 +B1428464532189N00601515EA0139501410 +B1428484532192N00601511EA0139101410 +B1428504532203N00601516EA0138901408 +B1428524532214N00601524EA0138901408 +B1428544532223N00601532EA0138801408 +B1428564532231N00601539EA0138701406 +B1428584532240N00601545EA0138501404 +B1429004532250N00601550EA0138201402 +B1429024532260N00601554EA0138001400 +B1429044532271N00601554EA0138401398 +B1429064532279N00601554EA0138701398 +B1429084532286N00601556EA0138801399 +B1429104532293N00601557EA0138701398 +B1429124532302N00601556EA0138901398 +B1429144532311N00601559EA0139401399 +B1429164532319N00601560EA0139601403 +B1429184532324N00601559EA0139901406 +B1429204532330N00601556EA0140301410 +B1429224532335N00601552EA0140301413 +B1429244532336N00601545EA0139901415 +B1429264532325N00601534EA0139601415 +B1429284532309N00601534EA0139501414 +B1429304532296N00601553EA0139301414 +B1429324532297N00601575EA0139301413 +B1429344532305N00601586EA0139501413 +B1429364532313N00601586EA0139501414 +B1429384532319N00601586EA0139401413 +B1429404532327N00601587EA0139301412 +B1429424532333N00601585EA0139001411 +B1429444532341N00601583EA0138701409 +B1429464532349N00601582EA0138601406 +B1429484532359N00601584EA0138801404 +B1429504532367N00601587EA0139301404 +B1429524532374N00601590EA0139501405 +B1429544532380N00601591EA0139401405 +B1429564532387N00601591EA0139101404 +B1429584532396N00601591EA0138801401 +B1430004532406N00601594EA0138901401 +B1430024532415N00601597EA0138901400 +B1430044532422N00601598EA0138701399 +B1430064532430N00601600EA0138301397 +B1430084532439N00601601EA0137701393 +B1430104532448N00601600EA0137601390 +B1430124532457N00601600EA0137701388 +B1430144532466N00601603EA0137601387 +B1430164532477N00601603EA0137601386 +B1430184532488N00601605EA0138001385 +B1430204532498N00601608EA0138001386 +B1430224532504N00601610EA0137601385 +B1430244532512N00601610EA0137401383 +B1430264532522N00601610EA0137501383 +B1430284532530N00601610EA0137701385 +B1430304532540N00601612EA0137601385 +B1430324532549N00601615EA0137301385 +B1430344532557N00601617EA0136701383 +B1430364532565N00601619EA0136301380 +B1430384532574N00601620EA0135801376 +B1430404532582N00601617EA0135701372 +B1430424532589N00601614EA0135701371 +B1430444532597N00601613EA0135601369 +B1430464532607N00601614EA0135701369 +B1430484532615N00601615EA0135601370 +B1430504532622N00601618EA0135301368 +B1430524532631N00601623EA0135001366 +B1430544532640N00601632EA0135001365 +B1430564532648N00601645EA0134901364 +B1430584532655N00601659EA0134601362 +B1431004532662N00601672EA0134101359 +B1431024532670N00601690EA0133901356 +B1431044532677N00601709EA0133701354 +B1431064532682N00601730EA0133301351 +B1431084532687N00601751EA0133101347 +B1431104532693N00601773EA0132901345 +B1431124532697N00601793EA0132501342 +B1431144532703N00601815EA0132201338 +B1431164532708N00601837EA0132101336 +B1431184532713N00601858EA0132001334 +B1431204532719N00601873EA0131501332 +B1431224532727N00601891EA0130901328 +B1431244532734N00601912EA0130701324 +B1431264532736N00601934EA0130401321 +B1431284532736N00601951EA0129601317 +B1431304532738N00601970EA0128801312 +B1431324532741N00601991EA0128201305 +B1431344532742N00602010EA0127401299 +B1431364532744N00602028EA0126301291 +B1431384532749N00602050EA0125901284 +B1431404532754N00602073EA0125701277 +B1431424532757N00602091EA0125301273 +B1431444532762N00602109EA0125201268 +B1431464532768N00602128EA0125601264 +B1431484532771N00602148EA0126101262 +B1431504532773N00602164EA0126201263 +B1431524532776N00602181EA0126501265 +B1431544532778N00602198EA0126501267 +B1431564532779N00602214EA0126201267 +B1431584532781N00602231EA0125701266 +B1432004532784N00602251EA0125501263 +B1432024532787N00602270EA0125201261 +B1432044532789N00602289EA0124801258 +B1432064532790N00602310EA0124601255 +B1432084532792N00602331EA0124501254 +B1432104532793N00602349EA0124101252 +B1432124532794N00602369EA0123701249 +B1432144532794N00602389EA0123501246 +B1432164532797N00602408EA0123201244 +B1432184532798N00602428EA0122801242 +B1432204532799N00602449EA0122501238 +B1432224532801N00602470EA0122201235 +B1432244532801N00602491EA0122001234 +B1432264532802N00602511EA0121801231 +B1432284532805N00602531EA0121601229 +B1432304532807N00602551EA0121301226 +B1432324532809N00602571EA0120901223 +B1432344532812N00602590EA0120801221 +B1432364532814N00602610EA0120701220 +B1432384532817N00602628EA0120501218 +B1432404532820N00602645EA0120201216 +B1432424532822N00602663EA0120201214 +B1432444532824N00602681EA0120101214 +B1432464532826N00602698EA0119801212 +B1432484532829N00602716EA0119501209 +B1432504532833N00602734EA0119301207 +B1432524532838N00602751EA0119201206 +B1432544532843N00602767EA0119101204 +B1432564532852N00602791EA0119101203 +B1432584532855N00602799EA0119201203 +B1433004532861N00602813EA0119201204 +B1433024532865N00602827EA0119201204 +B1433044532870N00602839EA0119001203 +B1433064532876N00602850EA0118901202 +B1433084532884N00602859EA0118801201 +B1433104532894N00602867EA0119001201 +B1433124532904N00602873EA0119101202 +B1433144532914N00602879EA0119401204 +B1433164532922N00602885EA0119501206 +B1433184532929N00602892EA0119601208 +B1433204532937N00602897EA0119401208 +B1433224532944N00602899EA0119001208 +B1433244532953N00602900EA0118901206 +B1433264532963N00602902EA0119001204 +B1433284532972N00602904EA0119301205 +B1433304532981N00602904EA0119701207 +B1433324532989N00602904EA0120301211 +B1433344532995N00602908EA0120801217 +B1433364532999N00602907EA0120801221 +B1433384533000N00602896EA0120701224 +B1433404532990N00602884EA0121001226 +B1433424532975N00602891EA0121501230 +B1433444532966N00602910EA0122001234 +B1433464532967N00602928EA0122401239 +B1433484532974N00602940EA0122701243 +B1433504532982N00602939EA0122801244 +B1433524532984N00602927EA0122801245 +B1433544532976N00602917EA0123101246 +B1433564532957N00602918EA0123501251 +B1433584532951N00602924EA0123801252 +B1434004532942N00602941EA0124101256 +B1434024532939N00602961EA0124501259 +B1434044532943N00602977EA0124901263 +B1434064532951N00602985EA0125401268 +B1434084532958N00602983EA0125601271 +B1434104532958N00602970EA0125701274 +B1434124532948N00602961EA0126001276 +B1434144532934N00602968EA0126401280 +B1434164532924N00602986EA0126801283 +B1434184532923N00603006EA0127201286 +B1434204532929N00603021EA0127401289 +B1434224532938N00603024EA0127601291 +B1434244532942N00603016EA0127601292 +B1434264532934N00603005EA0127701294 +B1434284532919N00603006EA0128101296 +B1434304532908N00603021EA0128601299 +B1434324532902N00603039EA0129001302 +B1434344532903N00603057EA0129401307 +B1434364532908N00603072EA0129801312 +B1434384532917N00603078EA0129901315 +B1434404532925N00603074EA0129901318 +B1434424532922N00603055EA0129701319 +B1434444532908N00603053EA0129701319 +B1434464532900N00603059EA0130001320 +B1434484532888N00603072EA0130301323 +B1434504532879N00603087EA0130901327 +B1434524532869N00603111EA0131501335 +B1434544532866N00603117EA0131701337 +B1434564532861N00603131EA0131601340 +B1434584532871N00603152EA0131901344 +B1435004532877N00603146EA0132201346 +B1435024532878N00603140EA0132601348 +B1435044532864N00603125EA0132801351 +B1435064532856N00603125EA0133101352 +B1435084532835N00603142EA0133501356 +B1435104532830N00603160EA0133801359 +B1435124532832N00603177EA0134001361 +B1435144532840N00603185EA0134101361 +B1435164532846N00603182EA0134201363 +B1435184532844N00603169EA0134401365 +B1435204532832N00603160EA0134901368 +B1435224532824N00603161EA0135201369 +B1435244532808N00603168EA0135701374 +B1435264532787N00603167EA0135801379 +B1435284532780N00603153EA0135801381 +B1435304532785N00603146EA0136101383 +B1435324532789N00603149EA0136401384 +B1435344532796N00603172EA0136901390 +B1435364532799N00603183EA0137401395 +B1435384532801N00603193EA0137601397 +B1435404532803N00603200EA0137701397 +B1435424532807N00603221EA0138101401 +B1435444532812N00603234EA0138701406 +B1435464532818N00603243EA0139301412 +B1435484532821N00603246EA0139701414 +B1435504532828N00603236EA0139701419 +B1435524532821N00603221EA0140001422 +B1435544532806N00603217EA0140401426 +B1435564532791N00603224EA0140701429 +B1435584532779N00603228EA0140701431 +B1436004532766N00603218EA0140401431 +B1436024532761N00603204EA0140401431 +B1436044532764N00603197EA0139901429 +B1436064532771N00603198EA0139501425 +B1436084532778N00603205EA0139101420 +B1436104532782N00603209EA0138901417 +B1436124532794N00603222EA0138901414 +B1436144532800N00603233EA0139001414 +B1436164532806N00603244EA0139301415 +B1436184532812N00603254EA0139701417 +B1436204532817N00603261EA0140101420 +B1436224532823N00603268EA0140401423 +B1436244532829N00603276EA0140701426 +B1436264532835N00603284EA0140801428 +B1436284532841N00603290EA0141001430 +B1436304532847N00603297EA0141201432 +B1436324532854N00603304EA0141301433 +B1436344532862N00603312EA0141501435 +B1436364532869N00603320EA0141701437 +B1436384532876N00603325EA0141901439 +B1436404532883N00603330EA0142001441 +B1436424532890N00603336EA0142301444 +B1436444532897N00603341EA0142601447 +B1436464532904N00603346EA0143001451 +B1436484532911N00603349EA0143101453 +B1436504532917N00603352EA0143201455 +B1436524532925N00603354EA0143201456 +B1436544532933N00603357EA0143401457 +B1436564532940N00603357EA0143401457 +B1436584532947N00603355EA0143501458 +B1437004532950N00603347EA0143301457 +B1437024532946N00603333EA0142901456 +B1437044532934N00603326EA0143001456 +B1437064532922N00603325EA0143201457 +B1437084532911N00603322EA0143201457 +B1437104532900N00603318EA0143301457 +B1437124532889N00603317EA0143201457 +B1437144532878N00603319EA0143101455 +B1437164532866N00603320EA0143201456 +B1437184532853N00603319EA0143601458 +B1437204532842N00603318EA0144201461 +B1437224532830N00603316EA0144701466 +B1437244532821N00603310EA0145101471 +B1437264532822N00603300EA0145301474 +B1437284532829N00603296EA0145701478 +B1437304532832N00603296EA0146101481 +B1437324532837N00603299EA0146301484 +B1437344532845N00603311EA0146401488 +B1437364532851N00603323EA0146901492 +B1437384532856N00603334EA0147101494 +B1437404532862N00603342EA0147001495 +B1437424532866N00603346EA0146801495 +B1437444532876N00603354EA0146701492 +B1437464532882N00603349EA0146401490 +B1437484532879N00603333EA0146101487 +B1437504532867N00603320EA0146501485 +B1437524532856N00603315EA0147201487 +B1437544532848N00603312EA0147101488 +B1437564532838N00603308EA0147001487 +B1437584532831N00603305EA0147201488 +B1438004532818N00603302EA0147301490 +B1438024532800N00603296EA0147101490 +B1438044532791N00603286EA0147101490 +B1438064532792N00603273EA0147001489 +B1438084532802N00603273EA0146901489 +B1438104532810N00603286EA0147301491 +B1438124532814N00603295EA0147701494 +B1438144532817N00603301EA0147701495 +B1438164532823N00603310EA0147901497 +B1438184532828N00603319EA0148301500 +B1438204532833N00603326EA0148701504 +B1438224532839N00603331EA0148801506 +B1438244532847N00603337EA0149101510 +B1438264532853N00603345EA0149601514 +B1438284532859N00603353EA0150201520 +B1438304532862N00603359EA0150501524 +B1438324532871N00603363EA0150801527 +B1438344532879N00603367EA0151301532 +B1438364532886N00603367EA0151301535 +B1438384532893N00603364EA0150801537 +B1438404532901N00603366EA0150501536 +B1438424532908N00603371EA0150401534 +B1438444532915N00603375EA0150401534 +B1438464532921N00603377EA0150101531 +B1438484532928N00603377EA0149801528 +B1438504532937N00603375EA0149701526 +B1438524532945N00603375EA0149801525 +B1438544532952N00603373EA0149901525 +B1438564532961N00603370EA0150001525 +B1438584532969N00603369EA0150501526 +B1439004532977N00603370EA0150701528 +B1439024532985N00603371EA0150801529 +B1439044532992N00603369EA0151001531 +B1439064532999N00603365EA0150601531 +B1439084533006N00603360EA0150001530 +B1439104533014N00603355EA0149601527 +B1439124533022N00603351EA0149301523 +B1439144533030N00603345EA0149301521 +B1439164533039N00603343EA0149801520 +B1439184533044N00603345EA0150201520 +B1439204533049N00603344EA0150101519 +B1439224533057N00603340EA0150201520 +B1439244533064N00603339EA0150501522 +B1439264533070N00603336EA0150601523 +B1439284533078N00603331EA0150701525 +B1439304533085N00603325EA0150901527 +B1439324533093N00603320EA0151201531 +B1439344533101N00603315EA0151501534 +B1439364533109N00603315EA0151701536 +B1439384533116N00603321EA0151801538 +B1439404533123N00603329EA0151801538 +B1439424533130N00603334EA0151601537 +B1439444533138N00603339EA0151301535 +B1439464533146N00603347EA0151101533 +B1439484533154N00603356EA0150901531 +B1439504533161N00603364EA0150601528 +B1439524533168N00603373EA0150201524 +B1439544533176N00603382EA0149801521 +B1439564533185N00603391EA0149601518 +B1439584533194N00603399EA0149401515 +B1440004533203N00603406EA0149101512 +B1440024533212N00603414EA0148901510 +B1440044533221N00603423EA0148801509 +B1440064533229N00603431EA0148601507 +B1440084533237N00603440EA0148401505 +B1440104533245N00603449EA0148101502 +B1440124533254N00603458EA0147901500 +B1440144533262N00603466EA0147801498 +B1440164533270N00603474EA0147501495 +B1440184533279N00603483EA0147201493 +B1440204533287N00603492EA0147001491 +B1440224533295N00603500EA0146801488 +B1440244533304N00603506EA0146401485 +B1440264533313N00603512EA0146201483 +B1440284533322N00603519EA0146001481 +B1440304533330N00603527EA0145801479 +B1440324533338N00603538EA0145801478 +B1440344533343N00603550EA0145701477 +B1440364533350N00603562EA0145601476 +B1440384533357N00603574EA0145401475 +B1440404533364N00603587EA0145601475 +B1440424533369N00603601EA0145701476 +B1440444533372N00603615EA0145401475 +B1440464533379N00603628EA0144901473 +B1440484533386N00603641EA0144701471 +B1440504533394N00603655EA0144701471 +B1440524533401N00603668EA0144901471 +B1440544533409N00603679EA0145101473 +B1440564533416N00603691EA0145001473 +B1440584533424N00603704EA0144801471 +B1441004533433N00603718EA0144701470 +B1441024533442N00603731EA0144601469 +B1441044533451N00603744EA0144401467 +B1441064533461N00603756EA0144201465 +B1441084533472N00603768EA0144301465 +B1441104533483N00603778EA0144601466 +B1441124533493N00603786EA0145101469 +B1441144533501N00603796EA0145401472 +B1441164533510N00603807EA0145401473 +B1441184533521N00603818EA0145801476 +B1441204533529N00603830EA0146201479 +B1441224533537N00603844EA0146401481 +B1441244533547N00603858EA0146601483 +B1441264533558N00603873EA0147201487 +B1441284533568N00603878EA0147701492 +B1441304533571N00603871EA0148101496 +B1441324533568N00603862EA0148501502 +B1441344533562N00603856EA0149001508 +B1441364533558N00603850EA0149801515 +B1441384533559N00603843EA0150301520 +B1441404533565N00603836EA0150601524 +B1441424533577N00603835EA0151001529 +B1441444533587N00603854EA0151101532 +B1441464533579N00603878EA0151401536 +B1441484533565N00603879EA0151801540 +B1441504533556N00603877EA0152601546 +B1441524533550N00603875EA0153001551 +B1441544533546N00603868EA0153201554 +B1441564533549N00603856EA0153601557 +B1441584533562N00603857EA0154101561 +B1442004533572N00603874EA0154501564 +B1442024533571N00603895EA0154801567 +B1442044533559N00603907EA0155001569 +B1442064533546N00603906EA0155501574 +B1442084533540N00603897EA0156001579 +B1442104533539N00603888EA0156601586 +B1442124533543N00603883EA0156901590 +B1442144533553N00603886EA0157001592 +B1442164533565N00603900EA0157201593 +B1442184533567N00603922EA0157501596 +B1442204533559N00603940EA0157701598 +B1442224533546N00603947EA0158101601 +B1442244533537N00603944EA0158401604 +B1442264533533N00603937EA0158801609 +B1442284533533N00603930EA0159201613 +B1442304533540N00603927EA0159601617 +B1442324533550N00603935EA0159601618 +B1442344533556N00603958EA0159501618 +B1442364533550N00603981EA0159501618 +B1442384533536N00603988EA0159601617 +B1442404533525N00603985EA0159901619 +B1442424533516N00603982EA0160301623 +B1442444533508N00603980EA0160701627 +B1442464533499N00603977EA0161301632 +B1442484533490N00603975EA0162101639 +B1442504533484N00603974EA0162701645 +B1442524533479N00603970EA0162401648 +B1442544533486N00603964EA0162201649 +B1442564533497N00603965EA0162101650 +B1442584533508N00603978EA0162301649 +B1443004533514N00603997EA0162601651 +B1443024533509N00604019EA0162901655 +B1443044533496N00604030EA0163201658 +B1443064533481N00604032EA0163801662 +B1443084533471N00604031EA0164601668 +B1443104533464N00604029EA0164901672 +B1443124533458N00604025EA0164601674 +B1443144533461N00604013EA0164001673 +B1443164533471N00604008EA0163601673 +B1443184533480N00604008EA0163401670 +B1443204533490N00604009EA0163001663 +B1443224533500N00604011EA0162701659 +B1443244533510N00604012EA0162701657 +B1443264533519N00604012EA0162801656 +B1443284533526N00604012EA0162801655 +B1443304533535N00604012EA0162801653 +B1443324533543N00604010EA0162701652 +B1443344533550N00604007EA0162701651 +B1443364533558N00604005EA0162601650 +B1443384533565N00604002EA0162401648 +B1443404533572N00603999EA0161901644 +B1443424533580N00603998EA0161701641 +B1443444533588N00603996EA0161401638 +B1443464533595N00603995EA0161001634 +B1443484533603N00603993EA0160801631 +B1443504533611N00603994EA0160501628 +B1443524533620N00603993EA0160201625 +B1443544533629N00603990EA0160001622 +B1443564533637N00603989EA0159801620 +B1443584533645N00603987EA0159501617 +B1444004533654N00603985EA0159201614 +B1444024533662N00603983EA0158801611 +B1444044533672N00603981EA0158501608 +B1444064533682N00603978EA0158401606 +B1444084533690N00603974EA0158301604 +B1444104533698N00603971EA0158001601 +B1444124533708N00603966EA0157501597 +B1444144533717N00603959EA0157001594 +B1444164533726N00603953EA0156601590 +B1444184533735N00603945EA0156101585 +B1444204533746N00603937EA0155801580 +B1444224533755N00603930EA0155701578 +B1444244533764N00603925EA0155701576 +B1444264533773N00603921EA0156001577 +B1444284533780N00603917EA0156301579 +B1444304533785N00603912EA0156401580 +B1444324533792N00603905EA0156601583 +B1444344533798N00603899EA0157201587 +B1444364533806N00603896EA0157901593 +B1444384533810N00603894EA0158001596 +B1444404533816N00603888EA0158101599 +B1444424533824N00603882EA0158501604 +B1444444533830N00603878EA0158801607 +B1444464533836N00603874EA0158701608 +B1444484533845N00603870EA0158801609 +B1444504533854N00603867EA0158901610 +B1444524533863N00603863EA0158901610 +B1444544533872N00603860EA0159001611 +B1444564533883N00603859EA0159401613 +B1444584533892N00603858EA0159601616 +B1445004533901N00603857EA0159701617 +B1445024533912N00603855EA0159801619 +B1445044533924N00603856EA0160201621 +B1445064533934N00603858EA0160501625 +B1445084533945N00603857EA0160801628 +B1445104533957N00603859EA0161501633 +B1445124533965N00603866EA0161901637 +B1445144533973N00603876EA0162001640 +B1445164533983N00603889EA0162301643 +B1445184533991N00603902EA0163001648 +B1445204533999N00603911EA0163501653 +B1445224534008N00603922EA0163901658 +B1445244534017N00603925EA0164301663 +B1445264534018N00603917EA0164301667 +B1445284534008N00603911EA0164501673 +B1445304533998N00603916EA0165001678 +B1445324533989N00603919EA0165301681 +B1445344533980N00603917EA0165801685 +B1445364533972N00603911EA0166301690 +B1445384533967N00603905EA0166801695 +B1445404533965N00603896EA0167201699 +B1445424533972N00603886EA0167501702 +B1445444533985N00603888EA0167901706 +B1445464533994N00603905EA0168001708 +B1445484533992N00603929EA0167901710 +B1445504533980N00603941EA0168101710 +B1445524533967N00603941EA0168701714 +B1445544533958N00603939EA0169401721 +B1445564533947N00603940EA0170001727 +B1445584533936N00603939EA0170601733 +B1446004533930N00603933EA0171201739 +B1446024533930N00603924EA0171601744 +B1446044533940N00603922EA0171901748 +B1446064533951N00603935EA0172301752 +B1446084533954N00603956EA0172701755 +B1446104533944N00603972EA0173201760 +B1446124533930N00603976EA0173901764 +B1446144533922N00603971EA0174401770 +B1446164533921N00603963EA0174601773 +B1446184533929N00603957EA0174901775 +B1446204533941N00603963EA0175201778 +B1446224533950N00603982EA0175501782 +B1446244533952N00604004EA0176101787 +B1446264533946N00604024EA0176701793 +B1446284533937N00604040EA0177401800 +B1446304533927N00604048EA0178101808 +B1446324533916N00604044EA0178601813 +B1446344533911N00604035EA0179101818 +B1446364533918N00604027EA0179301822 +B1446384533930N00604032EA0179601826 +B1446404533940N00604048EA0180001830 +B1446424533946N00604066EA0180601836 +B1446444533950N00604084EA0181101841 +B1446464533951N00604106EA0181101845 +B1446484533942N00604129EA0181101847 +B1446504533925N00604141EA0181101848 +B1446524533909N00604137EA0181601849 +B1446544533898N00604129EA0182401854 +B1446564533888N00604121EA0183001859 +B1446584533879N00604113EA0183401864 +B1447004533878N00604102EA0183901867 +B1447024533888N00604102EA0184501873 +B1447044533896N00604113EA0185101878 +B1447064533899N00604131EA0185301882 +B1447084533894N00604151EA0185601885 +B1447104533880N00604160EA0186001889 +B1447124533867N00604157EA0186601895 +B1447144533859N00604147EA0187101900 +B1447164533856N00604138EA0187801907 +B1447184533858N00604132EA0188301912 +B1447204533866N00604131EA0188701916 +B1447224533877N00604140EA0189201921 +B1447244533883N00604156EA0189601926 +B1447264533880N00604175EA0190001930 +B1447284533871N00604192EA0190601935 +B1447304533857N00604198EA0191101940 +B1447324533844N00604195EA0191601945 +B1447344533834N00604186EA0192201950 +B1447364533834N00604173EA0192701955 +B1447384533840N00604170EA0193301961 +B1447404533850N00604176EA0193601965 +B1447424533858N00604188EA0194001970 +B1447444533861N00604205EA0194401975 +B1447464533859N00604224EA0194601978 +B1447484533853N00604246EA0195001983 +B1447504533838N00604258EA0195601987 +B1447524533823N00604255EA0196001991 +B1447544533814N00604244EA0196501996 +B1447564533811N00604232EA0196901999 +B1447584533814N00604222EA0197502004 +B1448004533822N00604223EA0197802008 +B1448024533831N00604233EA0198102012 +B1448044533836N00604249EA0198402016 +B1448064533834N00604269EA0198602018 +B1448084533820N00604284EA0198702020 +B1448104533803N00604286EA0199202023 +B1448124533791N00604282EA0199702028 +B1448144533781N00604276EA0200202033 +B1448164533770N00604272EA0200902039 +B1448184533761N00604269EA0201402044 +B1448204533752N00604261EA0201802049 +B1448224533749N00604249EA0201902052 +B1448244533757N00604245EA0201902053 +B1448264533766N00604255EA0202102055 +B1448284533769N00604272EA0202202056 +B1448304533765N00604293EA0202502059 +B1448324533755N00604308EA0203002062 +B1448344533744N00604321EA0203602067 +B1448364533738N00604337EA0203902070 +B1448384533736N00604353EA0204202073 +B1448404533740N00604366EA0204502076 +B1448424533747N00604370EA0204702078 +B1448444533753N00604360EA0204602079 +B1448464533751N00604344EA0204802081 +B1448484533743N00604333EA0205402085 +B1448504533733N00604325EA0205802089 +B1448524533724N00604318EA0206202093 +B1448544533714N00604314EA0206302095 +B1448564533699N00604321EA0206502097 +B1448584533690N00604338EA0206702099 +B1449004533693N00604353EA0206902101 +B1449024533701N00604356EA0207202104 +B1449044533704N00604343EA0207402107 +B1449064533701N00604330EA0207702110 +B1449084533692N00604320EA0207802111 +B1449104533679N00604314EA0207802112 +B1449124533664N00604319EA0208002114 +B1449144533653N00604330EA0208202115 +B1449164533644N00604341EA0208402118 +B1449184533640N00604354EA0208602119 +B1449204533639N00604368EA0208702121 +B1449224533644N00604377EA0208802121 +B1449244533653N00604372EA0208902122 +B1449264533657N00604357EA0209102123 +B1449284533652N00604341EA0209202124 +B1449304533640N00604330EA0209102124 +B1449324533623N00604330EA0209102124 +B1449344533608N00604338EA0209102124 +B1449364533596N00604348EA0209402126 +B1449384533585N00604358EA0209602128 +B1449404533578N00604369EA0209502129 +B1449424533575N00604384EA0209302128 +B1449444533577N00604397EA0209002126 +B1449464533582N00604405EA0208702123 +B1449484533589N00604408EA0208702122 +B1449504533596N00604408EA0208702122 +B1449524533602N00604409EA0208602120 +B1449544533608N00604415EA0208302117 +B1449564533613N00604423EA0208002113 +B1449584533619N00604436EA0207702110 +B1450004533623N00604450EA0207402107 +B1450024533625N00604464EA0206902103 +B1450044533626N00604480EA0206402098 +B1450064533627N00604499EA0206002094 +B1450084533627N00604515EA0205702091 +B1450104533627N00604528EA0205402087 +B1450124533629N00604543EA0204902082 +B1450144533631N00604558EA0204702079 +B1450164533631N00604572EA0204602078 +B1450184533631N00604586EA0204302074 +B1450204533632N00604601EA0204202072 +B1450224533633N00604615EA0204102071 +B1450244533633N00604629EA0204102071 +B1450264533634N00604641EA0204002069 +B1450284533635N00604656EA0203802068 +B1450304533636N00604670EA0204002068 +B1450324533635N00604684EA0204002068 +B1450344533634N00604698EA0203902067 +B1450364533635N00604712EA0203802067 +B1450384533635N00604727EA0203702066 +B1450404533634N00604741EA0203702066 +B1450424533632N00604756EA0203702065 +B1450444533630N00604771EA0203502065 +B1450464533628N00604785EA0203402063 +B1450484533627N00604799EA0203202062 +B1450504533626N00604814EA0203002060 +B1450524533626N00604829EA0202802058 +B1450544533627N00604843EA0202702057 +B1450564533627N00604857EA0202602055 +B1450584533627N00604871EA0202302053 +B1451004533627N00604885EA0202002050 +B1451024533628N00604900EA0201802048 +B1451044533630N00604915EA0201602046 +B1451064533631N00604931EA0201502045 +B1451084533633N00604946EA0201302043 +B1451104533634N00604961EA0201102041 +B1451124533635N00604976EA0200902038 +B1451144533636N00604992EA0200602036 +B1451164533638N00605006EA0200302033 +B1451184533640N00605021EA0200002030 +B1451204533643N00605037EA0199702026 +B1451224533646N00605052EA0199502024 +B1451244533649N00605067EA0199302022 +B1451264533652N00605081EA0198902019 +B1451284533656N00605096EA0198702016 +B1451304533660N00605111EA0198702015 +B1451324533662N00605124EA0198502014 +B1451344533665N00605139EA0198302012 +B1451364533667N00605154EA0198202011 +B1451384533669N00605167EA0198102010 +B1451404533673N00605180EA0197902008 +B1451424533676N00605194EA0197802006 +B1451444533679N00605208EA0198002007 +B1451464533680N00605220EA0197902006 +B1451484533681N00605232EA0197502004 +B1451504533683N00605247EA0197302001 +B1451524533687N00605261EA0197202001 +B1451544533690N00605274EA0197102000 +B1451564533695N00605286EA0197001998 +B1451584533700N00605298EA0196801997 +B1452004533704N00605310EA0196701997 +B1452024533710N00605321EA0196601996 +B1452044533716N00605331EA0196601995 +B1452064533722N00605339EA0196501995 +B1452084533729N00605346EA0196301993 +B1452104533736N00605353EA0196101991 +B1452124533743N00605362EA0195901989 +B1452144533749N00605371EA0195801987 +B1452164533755N00605382EA0195501985 +B1452184533761N00605392EA0195301982 +B1452204533768N00605402EA0195201980 +B1452224533775N00605410EA0194901978 +B1452244533783N00605418EA0194501975 +B1452264533791N00605426EA0194201972 +B1452284533799N00605432EA0194001969 +B1452304533806N00605439EA0193601966 +B1452324533813N00605447EA0193401963 +B1452344533820N00605455EA0193101960 +B1452364533827N00605462EA0192801957 +B1452384533835N00605470EA0192601955 +B1452404533842N00605477EA0192601954 +B1452424533849N00605483EA0192501953 +B1452444533857N00605489EA0192301951 +B1452464533865N00605495EA0192301950 +B1452484533872N00605502EA0192201949 +B1452504533879N00605510EA0192201950 +B1452524533885N00605518EA0192201950 +B1452544533893N00605527EA0192201950 +B1452564533900N00605536EA0192101950 +B1452584533906N00605547EA0192101949 +B1453004533911N00605559EA0192201949 +B1453024533917N00605571EA0192301951 +B1453044533921N00605581EA0192401952 +B1453064533926N00605592EA0192401952 +B1453084533932N00605603EA0192301951 +B1453104533939N00605613EA0192201951 +B1453124533943N00605624EA0192001949 +B1453144533948N00605635EA0191701946 +B1453164533954N00605647EA0191401943 +B1453184533959N00605659EA0191201941 +B1453204533963N00605669EA0191001939 +B1453224533967N00605682EA0190501935 +B1453244533974N00605693EA0190101931 +B1453264533980N00605704EA0189701927 +B1453284533985N00605717EA0189501924 +B1453304533991N00605728EA0189201921 +B1453324533997N00605738EA0188801917 +B1453344534004N00605748EA0188501914 +B1453364534011N00605757EA0188301911 +B1453384534020N00605765EA0188101909 +B1453404534027N00605773EA0187901906 +B1453424534035N00605781EA0187401903 +B1453444534044N00605789EA0187101899 +B1453464534054N00605797EA0186901897 +B1453484534063N00605804EA0186601894 +B1453504534072N00605809EA0186201891 +B1453524534082N00605816EA0185901887 +B1453544534092N00605823EA0185701884 +B1453564534102N00605830EA0185501882 +B1453584534111N00605836EA0185301880 +B1454004534121N00605843EA0185201878 +B1454024534131N00605849EA0184901876 +B1454044534142N00605855EA0185001875 +B1454064534151N00605860EA0185301877 +B1454084534159N00605865EA0185201876 +B1454104534167N00605867EA0184801875 +B1454124534178N00605873EA0184301871 +B1454144534190N00605879EA0184101869 +B1454164534199N00605884EA0183801866 +B1454184534209N00605890EA0183401862 +B1454204534219N00605897EA0182901857 +B1454224534229N00605903EA0182601854 +B1454244534239N00605909EA0182201850 +B1454264534248N00605915EA0181801845 +B1454284534258N00605921EA0181301841 +B1454304534268N00605928EA0181101839 +B1454324534278N00605935EA0180701835 +B1454344534288N00605944EA0180201830 +B1454364534300N00605954EA0180001826 +B1454384534310N00605962EA0179901824 +B1454404534320N00605969EA0179401819 +B1454424534331N00605978EA0179001815 +B1454444534344N00605987EA0179101813 +B1454464534354N00605994EA0179201813 +B1454484534364N00605999EA0178801810 +B1454504534375N00606005EA0178401806 +B1454524534386N00606013EA0178301804 +B1454544534397N00606021EA0178101803 +B1454564534408N00606028EA0177801801 +B1454584534418N00606036EA0177601799 +B1455004534428N00606043EA0177301797 +B1455024534440N00606048EA0177101794 +B1455044534452N00606055EA0177101792 +B1455064534463N00606064EA0177201792 +B1455084534473N00606071EA0177201793 +B1455104534483N00606078EA0177201793 +B1455124534494N00606084EA0177301794 +B1455144534505N00606089EA0177501794 +B1455164534517N00606091EA0177301794 +B1455184534529N00606096EA0177401795 +B1455204534540N00606103EA0177501795 +B1455224534552N00606110EA0177401795 +B1455244534565N00606119EA0177401796 +B1455264534577N00606128EA0177601797 +B1455284534589N00606134EA0177801799 +B1455304534601N00606140EA0178101802 +B1455324534613N00606147EA0178201804 +B1455344534625N00606155EA0178401805 +B1455364534636N00606162EA0178801809 +B1455384534646N00606169EA0179001811 +B1455404534657N00606178EA0179301815 +B1455424534669N00606188EA0180101819 +B1455444534678N00606196EA0181101826 +B1455464534685N00606202EA0181801833 +B1455484534694N00606205EA0182301839 +B1455504534703N00606195EA0182901847 +B1455524534707N00606183EA0183501854 +B1455544534705N00606170EA0183901859 +B1455564534698N00606158EA0184101863 +B1455584534685N00606154EA0184301867 +B1456004534672N00606161EA0184801872 +B1456024534663N00606174EA0185801878 +B1456044534659N00606189EA0186601887 +B1456064534659N00606203EA0187401896 +B1456084534661N00606218EA0188101903 +B1456104534666N00606232EA0188801911 +B1456124534678N00606236EA0189601920 +B1456144534686N00606227EA0189901926 +B1456164534684N00606209EA0190101932 +B1456184534670N00606203EA0190501937 +B1456204534656N00606215EA0191301944 +B1456224534644N00606227EA0192501955 +B1456244534635N00606236EA0193401965 +B1456264534631N00606249EA0193801973 +B1456284534633N00606267EA0194201979 +B1456304534643N00606278EA0195001985 +B1456324534653N00606276EA0195901993 +B1456344534659N00606265EA0196501999 +B1456364534655N00606251EA0197102005 +B1456384534643N00606248EA0197802011 +B1456404534632N00606255EA0198702018 +B1456424534624N00606269EA0199302024 +B1456444534620N00606285EA0200002030 +B1456464534625N00606301EA0200602036 +B1456484534638N00606306EA0201302042 +B1456504534646N00606296EA0202102048 +B1456524534645N00606280EA0202802055 +B1456544534636N00606272EA0203502062 +B1456564534624N00606271EA0204102069 +B1456584534613N00606279EA0204902076 +B1457004534606N00606294EA0205702084 +B1457024534609N00606309EA0206602092 +B1457044534619N00606317EA0207502102 +B1457064534627N00606310EA0208102110 +B1457084534627N00606293EA0208802117 +B1457104534617N00606284EA0209402125 +B1457124534603N00606286EA0210202133 +B1457144534593N00606297EA0211102141 +B1457164534587N00606313EA0211802149 +B1457184534586N00606329EA0212602156 +B1457204534594N00606341EA0213202163 +B1457224534604N00606341EA0214002171 +B1457244534612N00606332EA0215002179 +B1457264534611N00606317EA0216002188 +B1457284534600N00606309EA0216802198 +B1457304534587N00606318EA0217602206 +B1457324534581N00606335EA0218302215 +B1457344534583N00606354EA0219302226 +B1457364534590N00606366EA0220402237 +B1457384534600N00606368EA0221302247 +B1457404534608N00606362EA0222202257 +B1457424534609N00606349EA0222802265 +B1457444534600N00606337EA0223502274 +B1457464534589N00606335EA0224302282 +B1457484534576N00606347EA0225002290 +B1457504534570N00606365EA0226202300 +B1457524534573N00606381EA0227202309 +B1457544534583N00606389EA0228102318 +B1457564534592N00606384EA0228902327 +B1457584534592N00606370EA0229602334 +B1458004534584N00606359EA0230302342 +B1458024534571N00606360EA0231102349 +B1458044534558N00606370EA0232102359 +B1458064534551N00606386EA0233102369 +B1458084534551N00606403EA0234002378 +B1458104534560N00606415EA0234902387 +B1458124534570N00606416EA0235702395 +B1458144534576N00606406EA0236402403 +B1458164534575N00606391EA0237102410 +B1458184534566N00606381EA0237802417 +B1458204534556N00606376EA0238602425 +B1458224534543N00606378EA0239302432 +B1458244534532N00606395EA0239902439 +B1458264534532N00606414EA0240702446 +B1458284534541N00606421EA0241602453 +B1458304534549N00606414EA0242302460 +B1458324534549N00606401EA0242802466 +B1458344534540N00606388EA0243502474 +B1458364534526N00606387EA0244302483 +B1458384534511N00606393EA0245302492 +B1458404534501N00606408EA0246202502 +B1458424534497N00606424EA0247102510 +B1458444534503N00606438EA0247902519 +B1458464534511N00606443EA0248902528 +B1458484534519N00606436EA0249602537 +B1458504534522N00606423EA0250402545 +B1458524534516N00606410EA0251202553 +B1458544534502N00606406EA0252002561 +B1458564534488N00606413EA0252802569 +B1458584534480N00606426EA0253702578 +B1459004534478N00606440EA0254402586 +B1459024534480N00606453EA0255402595 +B1459044534488N00606458EA0256102603 +B1459064534497N00606456EA0256902612 +B1459084534504N00606451EA0257802620 +B1459104534508N00606441EA0258402628 +B1459124534508N00606426EA0258902634 +B1459144534499N00606410EA0259502639 +B1459164534484N00606408EA0260102645 +B1459184534471N00606417EA0260702650 +B1459204534463N00606431EA0261302655 +B1459224534459N00606447EA0262102662 +B1459244534458N00606462EA0262802669 +B1459264534457N00606479EA0263602676 +B1459284534453N00606495EA0264502684 +B1459304534446N00606509EA0265202691 +B1459324534440N00606526EA0265702697 +B1459344534431N00606543EA0266302703 +B1459364534423N00606560EA0266802709 +B1459384534415N00606575EA0267302714 +B1459404534407N00606589EA0267502718 +B1459424534400N00606603EA0267402720 +B1459444534390N00606619EA0267502720 +B1459464534381N00606636EA0267802722 +B1459484534372N00606650EA0267802722 +B1459504534361N00606664EA0267502721 +B1459524534349N00606678EA0267502720 +B1459544534337N00606694EA0267702721 +B1459564534326N00606708EA0267802722 +B1459584534313N00606721EA0267802722 +B1500004534302N00606735EA0267802722 +B1500024534292N00606747EA0267402720 +B1500044534281N00606762EA0267002717 +B1500064534271N00606781EA0266902716 +B1500084534264N00606797EA0266702715 +B1500104534259N00606813EA0266202711 +B1500124534257N00606832EA0265602706 +B1500144534260N00606850EA0265102701 +B1500164534263N00606864EA0264802697 +B1500184534266N00606877EA0264302691 +B1500204534271N00606891EA0263802684 +B1500224534276N00606903EA0263202678 +B1500244534282N00606915EA0262602671 +B1500264534289N00606930EA0262102664 +B1500284534295N00606945EA0261802659 +B1500304534301N00606960EA0261502656 +B1500324534307N00606974EA0261202652 +B1500344534315N00606989EA0261102649 +B1500364534324N00607001EA0261102648 +B1500384534331N00607008EA0260702645 +B1500404534335N00607016EA0259502641 +B1500424534341N00607028EA0258402635 +B1500444534353N00607046EA0258002628 +B1500464534362N00607062EA0258202625 +B1500484534369N00607072EA0258202624 +B1500504534377N00607081EA0257902620 +B1500524534386N00607092EA0257702618 +B1500544534395N00607103EA0257602616 +B1500564534404N00607114EA0257402613 +B1500584534414N00607123EA0257202611 +B1501004534425N00607130EA0256902609 +B1501024534436N00607133EA0256702606 +B1501044534448N00607135EA0256302602 +B1501064534461N00607136EA0256002598 +B1501084534474N00607140EA0255602595 +B1501104534488N00607144EA0255302591 +B1501124534501N00607148EA0255002588 +B1501144534514N00607152EA0254702585 +B1501164534528N00607155EA0254502582 +B1501184534541N00607158EA0254302580 +B1501204534555N00607160EA0254102578 +B1501224534568N00607162EA0254002577 +B1501244534582N00607163EA0253802575 +B1501264534596N00607165EA0253702574 +B1501284534610N00607166EA0253602573 +B1501304534623N00607167EA0253502572 +B1501324534637N00607168EA0253402571 +B1501344534651N00607168EA0253302569 +B1501364534665N00607168EA0253102568 +B1501384534678N00607167EA0253002566 +B1501404534691N00607165EA0252802565 +B1501424534704N00607161EA0252702563 +B1501444534718N00607158EA0252402561 +B1501464534731N00607153EA0252202559 +B1501484534744N00607148EA0252102557 +B1501504534757N00607143EA0251902555 +B1501524534771N00607139EA0251702554 +B1501544534784N00607135EA0251602552 +B1501564534798N00607132EA0251402550 +B1501584534811N00607129EA0251202548 +B1502004534824N00607127EA0250902546 +B1502024534838N00607124EA0250702544 +B1502044534852N00607122EA0250602542 +B1502064534865N00607121EA0250602542 +B1502084534878N00607122EA0250502541 +B1502104534891N00607121EA0250202539 +B1502124534905N00607120EA0249902536 +B1502144534920N00607121EA0249702534 +B1502164534933N00607122EA0249502532 +B1502184534947N00607125EA0249202530 +B1502204534962N00607132EA0249102528 +B1502224534975N00607141EA0249102527 +B1502244534988N00607150EA0249102527 +B1502264535000N00607158EA0248902526 +B1502284535012N00607166EA0248602524 +B1502304535024N00607174EA0248302520 +B1502324535036N00607186EA0247902516 +B1502344535047N00607198EA0247602513 +B1502364535057N00607211EA0247202509 +B1502384535067N00607224EA0246802505 +B1502404535076N00607237EA0246402501 +B1502424535085N00607250EA0245902496 +B1502444535094N00607264EA0245202489 +B1502464535105N00607278EA0245002485 +B1502484535114N00607293EA0244802481 +B1502504535122N00607307EA0244502477 +B1502524535130N00607322EA0244202473 +B1502544535140N00607337EA0243902471 +B1502564535147N00607351EA0243702468 +B1502584535154N00607365EA0243302464 +B1503004535162N00607379EA0242902460 +B1503024535170N00607394EA0242602458 +B1503044535176N00607411EA0242302455 +B1503064535183N00607426EA0242102453 +B1503084535190N00607441EA0241802450 +B1503104535197N00607455EA0241502447 +B1503124535204N00607469EA0241302446 +B1503144535210N00607484EA0241102443 +B1503164535216N00607499EA0240802440 +B1503184535222N00607514EA0240502438 +B1503204535228N00607530EA0240302436 +B1503224535232N00607547EA0240102433 +B1503244535238N00607564EA0239902432 +B1503264535245N00607580EA0239702430 +B1503284535251N00607595EA0239602429 +B1503304535258N00607610EA0239402427 +B1503324535266N00607624EA0239202425 +B1503344535273N00607640EA0238902422 +B1503364535281N00607656EA0238702420 +B1503384535288N00607673EA0238702419 +B1503404535295N00607688EA0238802419 +B1503424535302N00607702EA0238702418 +B1503444535309N00607718EA0238402416 +B1503464535317N00607735EA0238302416 +B1503484535325N00607750EA0238302415 +B1503504535333N00607765EA0238102414 +B1503524535341N00607780EA0237902412 +B1503544535350N00607796EA0237702410 +B1503564535358N00607810EA0237602409 +B1503584535365N00607822EA0237402407 +B1504004535373N00607836EA0237002404 +B1504024535381N00607850EA0236802402 +B1504044535388N00607863EA0236602399 +B1504064535395N00607875EA0236202396 +B1504084535403N00607888EA0235902393 +B1504104535411N00607900EA0235702391 +B1504124535419N00607912EA0235402388 +B1504144535427N00607926EA0235102385 +B1504164535435N00607940EA0234902383 +B1504184535444N00607953EA0234602380 +B1504204535452N00607967EA0234302377 +B1504224535460N00607982EA0233902373 +B1504244535467N00607996EA0233702371 +B1504264535473N00608010EA0233402368 +B1504284535480N00608026EA0232902364 +B1504304535486N00608043EA0232802361 +B1504324535492N00608059EA0232502359 +B1504344535498N00608075EA0232202355 +B1504364535505N00608092EA0231902353 +B1504384535512N00608107EA0231802351 +B1504404535518N00608121EA0231602349 +B1504424535525N00608136EA0231302346 +B1504444535533N00608150EA0231002344 +B1504464535540N00608165EA0230702340 +B1504484535547N00608183EA0230402337 +B1504504535553N00608200EA0230302336 +B1504524535559N00608215EA0230002333 +B1504544535565N00608232EA0229702330 +B1504564535573N00608249EA0229302327 +B1504584535580N00608265EA0229302325 +B1505004535587N00608281EA0229102324 +B1505024535593N00608296EA0229002322 +B1505044535600N00608312EA0228702320 +B1505064535606N00608327EA0228602318 +B1505084535613N00608341EA0228302316 +B1505104535620N00608356EA0228002313 +B1505124535627N00608371EA0227702310 +B1505144535634N00608386EA0227502308 +B1505164535639N00608402EA0227302305 +B1505184535644N00608417EA0226902302 +B1505204535651N00608433EA0226602299 +B1505224535658N00608448EA0226502298 +B1505244535663N00608462EA0226102294 +B1505264535671N00608476EA0225702290 +B1505284535679N00608492EA0225402288 +B1505304535685N00608508EA0225402286 +B1505324535690N00608523EA0225302285 +B1505344535694N00608539EA0225002282 +B1505364535701N00608554EA0224702279 +B1505384535708N00608567EA0224602278 +B1505404535713N00608582EA0224502277 +B1505424535718N00608596EA0224202274 +B1505444535725N00608611EA0224002272 +B1505464535731N00608625EA0223902271 +B1505484535736N00608638EA0223602269 +B1505504535743N00608652EA0223202265 +B1505524535750N00608667EA0223002263 +B1505544535757N00608679EA0222802262 +B1505564535763N00608692EA0222502258 +B1505584535771N00608705EA0222202256 +B1506004535777N00608719EA0221902253 +B1506024535782N00608733EA0221602250 +B1506044535787N00608748EA0221302247 +B1506064535792N00608763EA0221002244 +B1506084535798N00608776EA0220702240 +B1506104535802N00608790EA0220302236 +B1506124535807N00608805EA0220002233 +B1506144535811N00608820EA0219802230 +B1506164535812N00608835EA0219502227 +B1506184535814N00608851EA0219202223 +B1506204535818N00608866EA0219002221 +B1506224535822N00608883EA0219102220 +B1506244535824N00608899EA0219202221 +B1506264535826N00608910EA0219102221 +B1506284535828N00608919EA0218702220 +B1506304535830N00608933EA0218602219 +B1506324535831N00608946EA0218902220 +B1506344535831N00608957EA0218902219 +B1506364535834N00608968EA0218502217 +B1506384535838N00608981EA0218502216 +B1506404535842N00608995EA0218802216 +B1506424535845N00609008EA0219202218 +B1506444535849N00609019EA0219402222 +B1506464535852N00609031EA0219602224 +B1506484535858N00609041EA0219802226 +B1506504535864N00609052EA0220102229 +B1506524535870N00609063EA0220402232 +B1506544535876N00609075EA0220702235 +B1506564535882N00609086EA0221002239 +B1506584535889N00609095EA0221302242 +B1507004535896N00609104EA0221402244 +B1507024535904N00609113EA0221602246 +B1507044535910N00609123EA0222002250 +B1507064535917N00609132EA0222202252 +B1507084535924N00609141EA0222402255 +B1507104535932N00609148EA0222902259 +B1507124535938N00609156EA0223402264 +B1507144535944N00609163EA0224202271 +B1507164535949N00609172EA0225102279 +B1507184535956N00609181EA0226002288 +B1507204535962N00609188EA0226702296 +B1507224535969N00609193EA0227402304 +B1507244535976N00609202EA0228202312 +B1507264535981N00609210EA0229302322 +B1507284535987N00609212EA0230102331 +B1507304535993N00609214EA0230402339 +B1507324536000N00609222EA0230902345 +B1507344536007N00609231EA0231802353 +B1507364536013N00609237EA0232602362 +B1507384536019N00609243EA0233002368 +B1507404536024N00609251EA0233002372 +B1507424536031N00609259EA0233002374 +B1507444536038N00609268EA0233102374 +B1507464536046N00609278EA0233002373 +B1507484536054N00609286EA0233102373 +B1507504536063N00609294EA0233202374 +B1507524536070N00609304EA0233202373 +B1507544536077N00609314EA0233202373 +B1507564536084N00609325EA0233102372 +B1507584536091N00609337EA0233102371 +B1508004536098N00609348EA0233002370 +B1508024536105N00609359EA0232802368 +B1508044536113N00609369EA0232602366 +B1508064536122N00609380EA0232502365 +B1508084536130N00609391EA0232502365 +B1508104536137N00609402EA0232502364 +B1508124536144N00609414EA0232302362 +B1508144536151N00609426EA0232102361 +B1508164536156N00609439EA0231902359 +B1508184536161N00609452EA0231602355 +B1508204536168N00609466EA0231302353 +B1508224536174N00609480EA0231302351 +B1508244536180N00609494EA0231302350 +B1508264536186N00609507EA0231102348 +B1508284536192N00609520EA0231002347 +B1508304536197N00609535EA0230902346 +B1508324536202N00609549EA0230802344 +B1508344536207N00609565EA0230702343 +B1508364536211N00609581EA0230802343 +B1508384536214N00609596EA0230802342 +B1508404536216N00609612EA0230602341 +B1508424536219N00609628EA0230502340 +B1508444536221N00609644EA0230502339 +B1508464536223N00609660EA0230402338 +B1508484536226N00609674EA0230302337 +B1508504536229N00609689EA0230202337 +B1508524536229N00609706EA0230102336 +B1508544536226N00609723EA0230002335 +B1508564536221N00609738EA0229902334 +B1508584536216N00609754EA0229802333 +B1509004536209N00609769EA0229602332 +B1509024536202N00609785EA0229602331 +B1509044536194N00609801EA0229502331 +B1509064536187N00609817EA0229502330 +B1509084536180N00609833EA0229402330 +B1509104536173N00609849EA0229302329 +B1509124536166N00609865EA0229302329 +B1509144536159N00609882EA0229302329 +B1509164536152N00609897EA0229202329 +B1509184536146N00609913EA0229102328 +B1509204536140N00609929EA0228902326 +B1509224536133N00609946EA0229002326 +B1509244536126N00609963EA0229002326 +B1509264536118N00609978EA0229002326 +B1509284536111N00609995EA0228902325 +B1509304536103N00610011EA0228902325 +B1509324536096N00610027EA0229002326 +B1509344536087N00610043EA0229002327 +B1509364536080N00610058EA0229102327 +B1509384536073N00610073EA0229102327 +B1509404536067N00610090EA0229102327 +B1509424536059N00610106EA0229102328 +B1509444536052N00610123EA0229302329 +B1509464536045N00610138EA0229502331 +B1509484536038N00610153EA0229602332 +B1509504536031N00610169EA0229802334 +B1509524536024N00610183EA0229802335 +B1509544536016N00610197EA0229802335 +B1509564536008N00610212EA0229802335 +B1509584535999N00610226EA0229802335 +B1510004535990N00610241EA0229702334 +B1510024535981N00610258EA0229602333 +B1510044535971N00610274EA0229702333 +B1510064535962N00610290EA0229802335 +B1510084535953N00610305EA0229902336 +B1510104535945N00610320EA0230102337 +B1510124535936N00610335EA0230302339 +B1510144535926N00610348EA0230502341 +B1510164535917N00610360EA0230602343 +B1510184535907N00610371EA0230802345 +B1510204535897N00610382EA0231002346 +B1510224535887N00610393EA0231402349 +B1510244535876N00610402EA0231802353 +B1510264535866N00610410EA0232302358 +B1510284535855N00610419EA0233002364 +B1510304535844N00610425EA0233802371 +B1510324535835N00610432EA0234502378 +B1510344535830N00610447EA0234902384 +B1510364535832N00610465EA0235602390 +B1510384535843N00610470EA0236302397 +B1510404535850N00610458EA0237002404 +B1510424535847N00610444EA0237802411 +B1510444535835N00610435EA0238302418 +B1510464535820N00610439EA0238902426 +B1510484535809N00610453EA0239802434 +B1510504535808N00610469EA0240402442 +B1510524535813N00610484EA0241102448 +B1510544535821N00610495EA0241802456 +B1510564535830N00610493EA0242402462 +B1510584535835N00610482EA0243102469 +B1511004535831N00610468EA0243902477 +B1511024535818N00610463EA0244502484 +B1511044535805N00610471EA0245402493 +B1511064535798N00610488EA0246002501 +B1511084535799N00610506EA0246502507 +B1511104535804N00610521EA0247002512 +B1511124535813N00610529EA0247602517 +B1511144535824N00610527EA0248302523 +B1511164535829N00610518EA0249002530 +B1511184535828N00610505EA0249802538 +B1511204535820N00610492EA0250602546 +B1511224535806N00610490EA0251202552 +B1511244535792N00610497EA0252302561 +B1511264535785N00610513EA0253102570 +B1511284535783N00610530EA0253402577 +B1511304535785N00610549EA0253802582 +B1511324535793N00610565EA0254102585 +B1511344535805N00610570EA0254602589 +B1511364535814N00610568EA0255202595 +B1511384535819N00610559EA0256102601 +B1511404535818N00610548EA0256902608 +B1511424535813N00610538EA0257602615 +B1511444535802N00610531EA0258202622 +B1511464535786N00610534EA0258902628 +B1511484535776N00610551EA0259702635 +B1511504535775N00610573EA0260302642 +B1511524535783N00610589EA0260602648 +B1511544535793N00610599EA0261002651 +B1511564535805N00610598EA0261702657 +B1511584535809N00610589EA0262302663 +B1512004535803N00610576EA0262602667 +B1512024535787N00610573EA0263102672 +B1512044535772N00610588EA0263902679 +B1512064535763N00610607EA0264802687 +B1512084535758N00610622EA0265202693 +B1512104535755N00610638EA0265002697 +B1512124535751N00610659EA0264902699 +B1512144535746N00610681EA0265102698 +B1512164535742N00610703EA0265202700 +B1512184535739N00610723EA0265402701 +B1512204535735N00610740EA0265602702 +B1512224535730N00610757EA0265602702 +B1512244535724N00610776EA0265802703 +B1512264535717N00610794EA0265702702 +B1512284535710N00610812EA0265402700 +B1512304535703N00610831EA0265102698 +B1512324535699N00610853EA0264602693 +B1512344535697N00610875EA0264202688 +B1512364535693N00610895EA0263502682 +B1512384535688N00610914EA0262902675 +B1512404535688N00610934EA0262302668 +B1512424535693N00610954EA0261902662 +B1512444535698N00610973EA0261502657 +B1512464535702N00610991EA0260702650 +B1512484535706N00611008EA0259802642 +B1512504535713N00611028EA0259002634 +B1512524535717N00611048EA0258402627 +B1512544535722N00611065EA0257702619 +B1512564535728N00611079EA0256902611 +B1512584535736N00611095EA0256002602 +B1513004535744N00611111EA0255302594 +B1513024535752N00611128EA0254702587 +B1513044535760N00611144EA0254102580 +B1513064535768N00611161EA0253702575 +B1513084535774N00611177EA0253202569 +B1513104535779N00611193EA0252302562 +B1513124535788N00611210EA0251502555 +B1513144535797N00611228EA0251202549 +B1513164535806N00611244EA0251302544 +B1513184535812N00611258EA0251202541 +B1513204535818N00611273EA0250902537 +B1513224535826N00611289EA0250602535 +B1513244535833N00611305EA0250402533 +B1513264535841N00611320EA0250202531 +B1513284535848N00611334EA0250002530 +B1513304535855N00611348EA0249802528 +B1513324535862N00611362EA0249302524 +B1513344535871N00611378EA0249002521 +B1513364535879N00611395EA0248802519 +B1513384535888N00611411EA0248402515 +B1513404535897N00611427EA0248102512 +B1513424535906N00611444EA0248102511 +B1513444535914N00611459EA0248002510 +B1513464535921N00611473EA0247702507 +B1513484535930N00611488EA0247302503 +B1513504535940N00611504EA0247102501 +B1513524535948N00611520EA0247302500 +B1513544535955N00611533EA0247502501 +B1513564535960N00611546EA0247502501 +B1513584535965N00611558EA0247402501 +B1514004535971N00611571EA0247302500 +B1514024535976N00611584EA0247202500 +B1514044535982N00611595EA0247102499 +B1514064535988N00611608EA0247002499 +B1514084535994N00611622EA0246902498 +B1514104536000N00611635EA0246802497 +B1514124536007N00611649EA0246602496 +B1514144536013N00611663EA0246502495 +B1514164536019N00611677EA0246402494 +B1514184536025N00611691EA0246102491 +B1514204536032N00611705EA0245702488 +B1514224536039N00611721EA0245302484 +B1514244536045N00611736EA0244802480 +B1514264536053N00611751EA0244502477 +B1514284536060N00611764EA0244302474 +B1514304536067N00611777EA0243902471 +B1514324536075N00611789EA0243502467 +B1514344536083N00611803EA0243202463 +B1514364536091N00611816EA0243002461 +B1514384536098N00611827EA0242702459 +B1514404536105N00611840EA0242302456 +B1514424536112N00611855EA0242002453 +B1514444536119N00611868EA0241702451 +B1514464536126N00611879EA0241502448 +B1514484536134N00611889EA0241102445 +B1514504536142N00611898EA0240802442 +B1514524536148N00611907EA0240302438 +B1514544536154N00611919EA0239802433 +B1514564536161N00611933EA0239602429 +B1514584536168N00611943EA0239402427 +B1515004536174N00611952EA0238902423 +B1515024536182N00611964EA0238602419 +B1515044536189N00611975EA0238502417 +B1515064536195N00611986EA0238302415 +B1515084536201N00611998EA0237902411 +B1515104536207N00612011EA0237502408 +B1515124536214N00612021EA0237202405 +B1515144536221N00612028EA0236702401 +B1515164536228N00612038EA0236302397 +B1515184536234N00612048EA0236102395 +B1515204536240N00612057EA0235702391 +B1515224536246N00612068EA0235202387 +B1515244536253N00612078EA0234902384 +B1515264536259N00612087EA0234702381 +B1515284536264N00612096EA0234402378 +B1515304536271N00612106EA0234102375 +B1515324536278N00612116EA0233902373 +B1515344536285N00612125EA0233602370 +B1515364536291N00612135EA0233302367 +B1515384536298N00612146EA0233002365 +B1515404536305N00612157EA0232802363 +B1515424536312N00612168EA0232602361 +B1515444536318N00612179EA0232402359 +B1515464536324N00612191EA0232202356 +B1515484536331N00612204EA0232002354 +B1515504536336N00612218EA0231702352 +B1515524536342N00612231EA0231402349 +B1515544536349N00612245EA0231202347 +B1515564536355N00612260EA0231102346 +B1515584536362N00612273EA0231102345 +B1516004536368N00612287EA0231002344 +B1516024536374N00612302EA0230802342 +B1516044536380N00612315EA0230502339 +B1516064536387N00612331EA0230302337 +B1516084536394N00612346EA0230402337 +B1516104536400N00612357EA0230202335 +B1516124536406N00612370EA0229802332 +B1516144536413N00612383EA0229802332 +B1516164536420N00612395EA0229902332 +B1516184536425N00612407EA0229702331 +B1516204536432N00612418EA0229402328 +B1516224536440N00612428EA0229302328 +B1516244536446N00612439EA0229302327 +B1516264536452N00612451EA0229002325 +B1516284536459N00612465EA0228902323 +B1516304536464N00612479EA0228802323 +B1516324536468N00612494EA0228702322 +B1516344536473N00612507EA0228502320 +B1516364536478N00612521EA0228302318 +B1516384536485N00612535EA0228202316 +B1516404536491N00612547EA0228102316 +B1516424536498N00612559EA0228102315 +B1516444536505N00612570EA0227902314 +B1516464536511N00612582EA0227702312 +B1516484536518N00612594EA0227502310 +B1516504536525N00612607EA0227202307 +B1516524536533N00612621EA0227102306 +B1516544536540N00612633EA0226902304 +B1516564536548N00612644EA0226802302 +B1516584536555N00612657EA0226702301 +B1517004536562N00612669EA0226602301 +B1517024536569N00612681EA0226502299 +B1517044536576N00612695EA0226402298 +B1517064536583N00612708EA0226402298 +B1517084536589N00612722EA0226302298 +B1517104536595N00612735EA0226002296 +B1517124536602N00612747EA0225502293 +B1517144536610N00612759EA0225302291 +B1517164536615N00612774EA0225102288 +B1517184536621N00612788EA0224802285 +B1517204536628N00612801EA0224502281 +B1517224536634N00612815EA0224102278 +B1517244536640N00612827EA0223702274 +B1517264536646N00612840EA0223202268 +B1517284536652N00612854EA0222702264 +B1517304536658N00612867EA0222302259 +B1517324536664N00612879EA0221802254 +B1517344536671N00612892EA0221302249 +B1517364536677N00612904EA0220902245 +B1517384536683N00612914EA0220402240 +B1517404536689N00612926EA0219802234 +B1517424536695N00612940EA0219402229 +B1517444536701N00612954EA0219202225 +B1517464536705N00612968EA0218902222 +B1517484536710N00612981EA0218602219 +B1517504536716N00612993EA0218502218 +B1517524536722N00613005EA0218402216 +B1517544536727N00613018EA0218302215 +B1517564536732N00613032EA0218202214 +B1517584536737N00613045EA0218102214 +B1518004536742N00613058EA0218102213 +B1518024536748N00613072EA0218102214 +B1518044536756N00613084EA0218102214 +B1518064536763N00613097EA0218302215 +B1518084536771N00613109EA0218202215 +B1518104536778N00613121EA0218202215 +B1518124536785N00613133EA0218202215 +B1518144536793N00613145EA0218102214 +B1518164536802N00613157EA0218102215 +B1518184536811N00613171EA0218102215 +B1518204536819N00613184EA0218202215 +B1518224536827N00613196EA0218202215 +B1518244536835N00613208EA0217902213 +B1518264536844N00613220EA0217902212 +B1518284536854N00613230EA0217902213 +B1518304536863N00613240EA0217902212 +B1518324536871N00613252EA0217702211 +B1518344536880N00613263EA0217602210 +B1518364536888N00613275EA0217502209 +B1518384536897N00613287EA0217302208 +B1518404536906N00613300EA0217302207 +B1518424536913N00613314EA0217302207 +B1518444536921N00613327EA0217102205 +B1518464536930N00613341EA0217002204 +B1518484536938N00613353EA0217102204 +B1518504536947N00613365EA0217102204 +B1518524536955N00613376EA0217002203 +B1518544536964N00613389EA0216902202 +B1518564536973N00613402EA0216902202 +B1518584536982N00613416EA0216802201 +B1519004536990N00613429EA0216802202 +B1519024536999N00613441EA0216802201 +B1519044537007N00613455EA0216702200 +B1519064537016N00613468EA0216602200 +B1519084537025N00613479EA0216702200 +B1519104537034N00613492EA0216602199 +B1519124537043N00613504EA0216402198 +B1519144537052N00613517EA0216302197 +B1519164537060N00613530EA0216202196 +B1519184537069N00613543EA0216102194 +B1519204537078N00613558EA0215902192 +B1519224537087N00613572EA0215802191 +B1519244537095N00613584EA0215602190 +B1519264537104N00613597EA0215302187 +B1519284537112N00613611EA0215002184 +B1519304537120N00613623EA0214802182 +B1519324537128N00613636EA0214502178 +B1519344537137N00613649EA0214102175 +B1519364537145N00613664EA0213902173 +B1519384537153N00613677EA0213702171 +B1519404537162N00613690EA0213502167 +B1519434537174N00613709EA0213202165 +B1519454537183N00613722EA0212802162 +B1519474537191N00613736EA0212502159 +B1519494537200N00613749EA0212402157 +B1519514537207N00613761EA0212202154 +B1519534537215N00613772EA0211802151 +B1519554537224N00613783EA0211302147 +B1519574537234N00613794EA0211202144 +B1519594537242N00613804EA0211102142 +B1520014537249N00613816EA0210502138 +B1520034537258N00613829EA0210102135 +B1520054537267N00613840EA0209902133 +B1520074537276N00613850EA0209602129 +B1520094537287N00613860EA0209302125 +B1520114537297N00613870EA0209102123 +B1520134537306N00613878EA0208902120 +B1520154537315N00613887EA0208502117 +B1520174537326N00613898EA0208002113 +B1520194537337N00613909EA0207802111 +B1520214537347N00613919EA0207702110 +B1520234537357N00613927EA0207502108 +B1520254537366N00613936EA0207302105 +B1520274537377N00613947EA0207102103 +B1520294537387N00613956EA0206902101 +B1520314537397N00613964EA0206602098 +B1520334537408N00613971EA0206202095 +B1520354537419N00613979EA0206002093 +B1520374537431N00613987EA0206002092 +B1520394537441N00613997EA0205802091 +B1520414537453N00614005EA0205802090 +B1520434537464N00614014EA0205702090 +B1520454537476N00614022EA0205602088 +B1520474537488N00614030EA0205502088 +B1520494537501N00614036EA0205402087 +B1520514537513N00614043EA0205402086 +B1520534537526N00614050EA0205302086 +B1520554537538N00614056EA0205402086 +B1520574537551N00614062EA0205602088 +B1520594537562N00614068EA0205802090 +B1521014537573N00614074EA0206102092 +B1521034537584N00614081EA0206402095 +B1521054537595N00614088EA0206702098 +B1521074537605N00614094EA0207002101 +B1521094537616N00614101EA0207202103 +B1521114537627N00614108EA0207402105 +B1521134537637N00614112EA0207702107 +B1521154537647N00614115EA0207802108 +B1521174537656N00614116EA0208002109 +B1521194537667N00614116EA0208302110 +B1521214537677N00614116EA0208602112 +B1521234537686N00614114EA0209202117 +B1521254537692N00614108EA0209802122 +B1521274537690N00614098EA0210502128 +B1521294537680N00614102EA0211002134 +B1521314537671N00614121EA0211402139 +B1521334537671N00614147EA0211902144 +B1521354537686N00614162EA0212402150 +B1521374537700N00614161EA0212902156 +B1521394537708N00614154EA0213702163 +B1521414537714N00614147EA0214602172 +B1521434537719N00614142EA0215102179 +B1521454537721N00614136EA0215402184 +B1521474537716N00614129EA0215602188 +B1521494537705N00614133EA0215702191 +B1521514537697N00614152EA0215902194 +B1521534537698N00614175EA0216302196 +B1521554537708N00614186EA0216602199 +B1521574537724N00614183EA0217102202 +B1521594537733N00614176EA0217702207 +B1522014537739N00614171EA0218002210 +B1522034537745N00614164EA0218302213 +B1522054537749N00614154EA0218702216 +B1522074537748N00614144EA0218902219 +B1522094537740N00614136EA0218902220 +B1522114537728N00614140EA0219202223 +B1522134537722N00614156EA0219402226 +B1522154537723N00614177EA0219502228 +B1522174537731N00614191EA0219602229 +B1522194537743N00614198EA0219702229 +B1522214537755N00614194EA0220102231 +B1522234537761N00614185EA0220402234 +B1522254537762N00614176EA0220602236 +B1522274537763N00614166EA0220902238 +B1522294537765N00614155EA0221102240 +B1522314537766N00614145EA0221502243 +B1522334537766N00614136EA0222202248 +B1522354537766N00614127EA0222702254 +B1522374537767N00614118EA0223302260 +B1522394537764N00614111EA0223902266 +B1522414537753N00614113EA0224202272 +B1522434537742N00614132EA0224702278 +B1522454537739N00614155EA0225302283 +B1522474537748N00614166EA0225702288 +B1522494537763N00614162EA0226202293 +B1522514537763N00614148EA0226602297 +B1522534537756N00614142EA0227202303 +B1522554537747N00614142EA0227802310 +B1522574537738N00614154EA0228402316 +B1522594537730N00614173EA0228902323 +B1523014537730N00614193EA0229402328 +B1523034537739N00614208EA0230002333 +B1523054537751N00614212EA0230502339 +B1523074537758N00614205EA0231002343 +B1523094537758N00614194EA0231402348 +B1523114537752N00614186EA0232102354 +B1523134537743N00614186EA0232902361 +B1523154537733N00614197EA0233602368 +B1523174537726N00614217EA0234002373 +B1523194537727N00614239EA0234602379 +B1523214537738N00614248EA0235202385 +B1523234537749N00614243EA0235602391 +B1523254537754N00614232EA0236002394 +B1523274537756N00614223EA0236602400 +B1523294537755N00614215EA0237402408 +B1523314537749N00614207EA0238202416 +B1523334537740N00614201EA0238802422 +B1523354537724N00614206EA0238902427 +B1523374537709N00614227EA0239602433 +B1523394537704N00614251EA0240502439 +B1523414537711N00614263EA0240902444 +B1523434537724N00614269EA0241202449 +B1523454537736N00614269EA0241602453 +B1523474537745N00614258EA0242202458 +B1523494537750N00614247EA0243402464 +B1523514537747N00614239EA0243902471 +B1523534537744N00614234EA0243702474 +B1523554537740N00614221EA0243102475 +B1523574537728N00614212EA0243002473 +B1523594537717N00614220EA0242802472 +B1524014537708N00614235EA0242402469 +B1524034537702N00614253EA0242202465 +B1524054537698N00614273EA0242702465 +B1524074537696N00614293EA0243502466 +B1524094537693N00614308EA0244302471 +B1524114537691N00614324EA0244702476 +B1524134537694N00614342EA0245002479 +B1524154537703N00614358EA0245402484 +B1524174537714N00614360EA0245802488 +B1524194537720N00614350EA0246202493 +B1524214537718N00614339EA0246902498 +B1524234537708N00614337EA0247402504 +B1524254537696N00614347EA0247802510 +B1524274537689N00614365EA0248602517 +B1524294537690N00614384EA0248902523 +B1524314537695N00614403EA0249102527 +B1524334537706N00614416EA0249502531 +B1524354537719N00614419EA0249902535 +B1524374537723N00614416EA0250202536 +B1524394537731N00614402EA0250902543 +B1524414537729N00614392EA0251602550 +B1524434537723N00614388EA0252002555 +B1524454537710N00614396EA0252402559 +B1524474537700N00614413EA0253202567 +B1524494537700N00614433EA0253702573 +B1524514537704N00614442EA0253902575 +B1524534537721N00614455EA0254202581 +B1524554537730N00614447EA0254502584 +B1524574537734N00614437EA0255302591 +B1524594537734N00614428EA0255602595 +B1525014537728N00614421EA0255802598 +B1525034537716N00614419EA0256002600 +B1525054537710N00614423EA0256402601 +B1525074537699N00614448EA0257002608 +B1525094537695N00614464EA0257802615 +B1525114537694N00614481EA0258202619 +B1525134537696N00614501EA0258202623 +B1525154537707N00614516EA0258202624 +B1525174537719N00614514EA0258002624 +B1525194537724N00614501EA0258002623 +B1525214537720N00614490EA0258602626 +B1525234537714N00614482EA0259502631 +B1525254537708N00614477EA0260202637 +B1525274537704N00614470EA0260502640 +B1525294537697N00614462EA0260702643 +B1525314537686N00614461EA0261302647 +B1525334537678N00614473EA0261902651 +B1525354537677N00614489EA0262302656 +B1525374537684N00614508EA0263002663 +B1525394537688N00614528EA0263502669 +B1525414537689N00614547EA0263702673 +B1525434537692N00614565EA0263602675 +B1525454537695N00614585EA0263202676 +B1525474537699N00614606EA0262802674 +B1525494537705N00614627EA0262602671 +B1525514537711N00614643EA0262502669 +B1525534537717N00614658EA0262202666 +B1525554537722N00614674EA0261702662 +B1525574537730N00614686EA0261202656 +B1525594537740N00614698EA0260702651 +B1526014537750N00614709EA0260402648 +B1526034537760N00614717EA0260102644 +B1526054537770N00614727EA0259702639 +B1526074537781N00614737EA0259302635 +B1526094537792N00614745EA0259102632 +B1526114537804N00614752EA0258902631 +B1526134537815N00614758EA0258702627 +B1526154537826N00614760EA0258402625 +B1526174537837N00614762EA0258202623 +B1526194537847N00614764EA0257902620 +B1526214537859N00614766EA0257502617 +B1526234537871N00614767EA0257502615 +B1526254537883N00614769EA0257502615 +B1526274537895N00614771EA0257302614 +B1526294537906N00614775EA0257302614 +B1526314537915N00614779EA0257202613 +B1526334537925N00614784EA0256802610 +B1526354537935N00614788EA0256602609 +B1526374537945N00614791EA0256402606 +B1526394537954N00614795EA0256002603 +B1526414537965N00614799EA0255602599 +B1526434537975N00614801EA0255402597 +B1526454537985N00614802EA0255102594 +B1526474537995N00614804EA0254702590 +B1526494538006N00614805EA0254402587 +B1526514538017N00614806EA0254202584 +B1526534538027N00614807EA0253902580 +B1526554538038N00614810EA0253502577 +B1526574538050N00614813EA0253302574 +B1526594538060N00614817EA0253202572 +B1527014538070N00614821EA0252802569 +B1527034538081N00614824EA0252402565 +B1527054538093N00614826EA0252102561 +B1527074538105N00614828EA0251902559 +B1527094538116N00614830EA0251702557 +B1527114538128N00614831EA0251402554 +B1527134538139N00614830EA0251002550 +B1527154538150N00614829EA0250702548 +B1527174538160N00614829EA0250402544 +B1527194538170N00614829EA0250002540 +B1527214538180N00614830EA0249602536 +B1527234538190N00614831EA0249302533 +B1527254538200N00614833EA0248902529 +B1527274538212N00614833EA0248502525 +B1527294538224N00614835EA0248202521 +B1527314538237N00614837EA0248102519 +B1527334538248N00614839EA0248002518 +B1527354538260N00614841EA0247902516 +B1527374538271N00614845EA0247702515 +B1527394538281N00614847EA0247402512 +B1527414538291N00614849EA0247002509 +B1527434538303N00614853EA0246802507 +B1527454538313N00614858EA0246502504 +B1527474538323N00614863EA0246102500 +B1527494538334N00614868EA0245902498 +B1527514538345N00614872EA0245702495 +B1527534538356N00614874EA0245302491 +B1527554538368N00614876EA0244902488 +B1527574538380N00614880EA0244802486 +B1527594538391N00614883EA0244602483 +B1528014538403N00614886EA0244302480 +B1528034538414N00614889EA0244002477 +B1528054538424N00614890EA0243702474 +B1528074538436N00614892EA0243202470 +B1528094538448N00614892EA0242902467 +B1528114538460N00614893EA0242602464 +B1528134538472N00614896EA0242202460 +B1528154538484N00614899EA0241802456 +B1528174538495N00614906EA0241502453 +B1528194538506N00614913EA0241202450 +B1528214538519N00614921EA0241002447 +B1528234538530N00614926EA0240802446 +B1528254538541N00614929EA0240602444 +B1528274538551N00614932EA0240202440 +B1528294538563N00614935EA0239802436 +B1528314538574N00614936EA0239502433 +B1528334538584N00614937EA0239002429 +B1528354538593N00614934EA0238402424 +B1528374538604N00614933EA0237902418 +B1528394538616N00614935EA0237702415 +B1528414538627N00614937EA0237402412 +B1528434538637N00614938EA0236802407 +B1528454538647N00614937EA0236202401 +B1528474538658N00614939EA0235702395 +B1528494538670N00614942EA0235302390 +B1528514538682N00614946EA0235002386 +B1528534538694N00614949EA0234902384 +B1528554538704N00614951EA0234702381 +B1528574538716N00614951EA0234302377 +B1528594538728N00614949EA0234002375 +B1529014538739N00614945EA0233902373 +B1529034538749N00614942EA0233802372 +B1529054538759N00614939EA0233602370 +B1529074538769N00614940EA0233202366 +B1529094538780N00614940EA0232902363 +B1529114538791N00614936EA0232602361 +B1529134538803N00614936EA0232502360 +B1529154538814N00614937EA0232502360 +B1529174538825N00614938EA0232602360 +B1529194538834N00614938EA0232602359 +B1529214538844N00614936EA0232402358 +B1529234538854N00614932EA0232502358 +B1529254538865N00614930EA0232702359 +B1529274538873N00614931EA0232902361 +B1529294538881N00614931EA0233202364 +B1529314538887N00614930EA0233302366 +B1529334538893N00614928EA0233302367 +B1529354538900N00614926EA0233302367 +B1529374538909N00614926EA0233202367 +B1529394538919N00614930EA0233202366 +B1529414538930N00614937EA0233102366 +B1529434538941N00614944EA0233002365 +B1529454538954N00614950EA0232902365 +B1529474538966N00614958EA0233002365 +B1529494538977N00614964EA0233002365 +B1529514538988N00614971EA0232702364 +B1529534539001N00614977EA0232702363 +B1529554539014N00614981EA0232802364 +B1529574539025N00614985EA0232802364 +B1529594539037N00614990EA0232802364 +B1530014539049N00614995EA0232902365 +B1530034539059N00615002EA0233002366 +B1530054539068N00615007EA0232702365 +B1530074539079N00615012EA0232302363 +B1530094539090N00615019EA0232002360 +B1530114539102N00615027EA0231902359 +B1530134539113N00615035EA0231802358 +B1530154539124N00615041EA0231802357 +B1530174539134N00615048EA0231702356 +B1530194539145N00615055EA0231402353 +B1530214539156N00615062EA0231102350 +B1530234539167N00615070EA0230902348 +B1530254539177N00615077EA0230602345 +B1530274539188N00615086EA0230202341 +B1530294539198N00615098EA0229802336 +B1530314539208N00615107EA0229302332 +B1530334539219N00615116EA0228902327 +B1530354539230N00615125EA0228502323 +B1530374539241N00615134EA0228102318 +B1530394539252N00615143EA0227702315 +B1530414539262N00615152EA0227402311 +B1530434539273N00615160EA0227002307 +B1530454539284N00615168EA0226602303 +B1530474539296N00615178EA0226402300 +B1530494539306N00615187EA0226202297 +B1530514539316N00615197EA0225802293 +B1530534539328N00615207EA0225402289 +B1530554539341N00615215EA0225302287 +B1530574539352N00615220EA0225102284 +B1530594539363N00615227EA0224702281 +B1531014539376N00615235EA0224602279 +B1531034539387N00615247EA0224502278 +B1531054539398N00615257EA0224402276 +B1531074539409N00615268EA0224002273 +B1531094539420N00615279EA0223602269 +B1531114539432N00615288EA0223302266 +B1531134539443N00615298EA0222902262 +B1531154539454N00615309EA0222502258 +B1531174539466N00615319EA0222202255 +B1531194539477N00615330EA0221902251 +B1531214539488N00615341EA0221502248 +B1531234539500N00615352EA0221202244 +B1531254539512N00615364EA0220802240 +B1531274539524N00615375EA0220602238 +B1531294539535N00615387EA0220602237 +B1531314539547N00615399EA0220402236 +B1531334539558N00615410EA0220302234 +B1531354539571N00615421EA0220102233 +B1531374539583N00615433EA0220102233 +B1531394539594N00615446EA0220202233 +B1531414539605N00615459EA0220102233 +B1531434539616N00615472EA0220002231 +B1531454539628N00615486EA0219902231 +B1531474539638N00615499EA0220002231 +B1531494539648N00615511EA0219902230 +B1531514539660N00615524EA0219802229 +B1531534539671N00615536EA0219702229 +B1531554539681N00615546EA0219402227 +B1531574539693N00615557EA0219202225 +B1531594539706N00615569EA0219302225 +B1532014539718N00615580EA0219402225 +B1532034539728N00615590EA0219202223 +B1532054539740N00615603EA0218802220 +B1532074539752N00615616EA0218802220 +B1532094539763N00615626EA0218702219 +B1532114539774N00615636EA0218402217 +B1532134539785N00615646EA0218202215 +B1532154539797N00615657EA0218102214 +B1532174539808N00615667EA0218002213 +B1532194539819N00615677EA0217702210 +B1532214539831N00615689EA0217402207 +B1532234539842N00615701EA0217202205 +B1532254539853N00615712EA0217002203 +B1532274539864N00615723EA0216602200 +B1532294539875N00615733EA0216102195 +B1532314539888N00615743EA0215702191 +B1532334539901N00615753EA0215302187 +B1532354539914N00615765EA0214902183 +B1532374539927N00615779EA0214702180 +B1532394539940N00615791EA0214602178 +B1532414539951N00615803EA0214202175 +B1532434539963N00615815EA0213902171 +B1532454539975N00615825EA0213602169 +B1532474539985N00615835EA0213302166 +B1532494539993N00615846EA0212702161 +B1532514540003N00615856EA0212002155 +B1532534540013N00615868EA0211602151 +B1532554540022N00615878EA0211202146 +B1532574540030N00615888EA0210502140 +B1532594540040N00615899EA0210002134 +B1533014540051N00615911EA0209502129 +B1533034540060N00615924EA0209302125 +B1533054540067N00615934EA0208802121 +B1533074540076N00615944EA0208202115 +B1533094540086N00615953EA0207902111 +B1533114540096N00615961EA0207502107 +B1533134540107N00615969EA0207102103 +B1533154540118N00615977EA0206702099 +B1533174540128N00615984EA0206502097 +B1533194540139N00615992EA0206302094 +B1533214540149N00616002EA0206002091 +B1533234540159N00616013EA0205802088 +B1533254540170N00616024EA0205602086 +B1533274540180N00616033EA0205302083 +B1533294540190N00616043EA0205002080 +B1533314540201N00616053EA0204702077 +B1533334540211N00616062EA0204502075 +B1533354540222N00616071EA0204302072 +B1533374540233N00616080EA0204002070 +B1533394540243N00616090EA0203802068 +B1533414540253N00616099EA0203502065 +B1533434540263N00616109EA0203102062 +B1533454540274N00616117EA0203102060 +B1533474540285N00616126EA0202902058 +B1533494540296N00616137EA0202702056 +B1533514540307N00616148EA0202702056 +B1533534540319N00616159EA0203002056 +B1533554540330N00616169EA0203202058 +B1533574540340N00616176EA0203202059 +B1533594540350N00616183EA0203102058 +B1534014540360N00616194EA0203002058 +B1534034540370N00616204EA0203002058 +B1534054540380N00616213EA0202902057 +B1534074540390N00616222EA0202802056 +B1534094540400N00616232EA0202802056 +B1534114540409N00616242EA0202702056 +B1534134540418N00616251EA0202502054 +B1534154540428N00616261EA0202502055 +B1534174540438N00616270EA0202502055 +B1534194540447N00616279EA0202402054 +B1534214540457N00616289EA0202302053 +B1534234540464N00616304EA0202202051 +B1534254540470N00616321EA0202202051 +B1534274540475N00616338EA0202302051 +B1534294540479N00616355EA0202202051 +B1534314540482N00616373EA0202202050 +B1534334540485N00616392EA0202202051 +B1534354540490N00616409EA0202502052 +B1534374540494N00616423EA0202902055 +B1534394540497N00616436EA0203402059 +B1534414540503N00616446EA0203602062 +B1534434540513N00616442EA0204002066 +B1534454540517N00616436EA0204402068 +B1534474540512N00616411EA0204802074 +B1534494540499N00616409EA0205202079 +B1534514540489N00616419EA0205502084 +B1534534540486N00616433EA0205702087 +B1534554540493N00616447EA0205902090 +B1534574540506N00616450EA0206402094 +B1534594540517N00616449EA0207302101 +B1535014540525N00616447EA0207802107 +B1535034540532N00616438EA0208002111 +B1535054540531N00616419EA0208102113 +B1535074540521N00616405EA0208402116 +B1535094540509N00616404EA0208702119 +B1535114540500N00616415EA0209002122 +B1535134540498N00616429EA0209302126 +B1535154540502N00616442EA0209702129 +B1535174540512N00616449EA0210202135 +B1535194540522N00616450EA0210902141 +B1535214540532N00616447EA0211402147 +B1535234540541N00616445EA0211802151 +B1535254540548N00616442EA0211902154 +B1535274540554N00616427EA0211902156 +B1535294540552N00616408EA0212302160 +B1535314540541N00616400EA0212502162 +B1535334540528N00616405EA0212702164 +B1535354540521N00616416EA0213202167 +B1535374540521N00616430EA0213702172 +B1535394540527N00616440EA0214202177 +B1535414540537N00616437EA0214202179 +B1535434540544N00616422EA0214402181 +B1535454540542N00616406EA0214802185 +B1535474540534N00616395EA0215102187 +B1535494540524N00616388EA0215302190 +B1535514540512N00616386EA0215502191 +B1535534540501N00616392EA0215802193 +B1535554540493N00616403EA0216102196 +B1535574540491N00616419EA0216602200 +B1535594540493N00616435EA0217202205 +B1536014540495N00616447EA0217902212 +B1536034540498N00616458EA0218402218 +B1536054540503N00616464EA0218502222 +B1536074540516N00616459EA0218802225 +B1536094540522N00616443EA0219202229 +B1536114540518N00616428EA0219602232 +B1536134540507N00616421EA0220102237 +B1536154540497N00616427EA0220702241 +B1536174540494N00616434EA0221202244 +B1536194540493N00616449EA0221802250 +B1536214540498N00616461EA0222102255 +B1536234540508N00616463EA0222202258 +B1536254540519N00616456EA0222502261 +B1536274540526N00616444EA0222802264 +B1536294540530N00616427EA0223202265 +B1536314540530N00616408EA0223602269 +B1536334540521N00616395EA0224102274 +B1536354540511N00616386EA0224502279 +B1536374540499N00616389EA0224702282 +B1536394540492N00616404EA0225002284 +B1536414540492N00616421EA0225602287 +B1536434540500N00616433EA0226102292 +B1536454540507N00616438EA0226502296 +B1536474540515N00616437EA0226702299 +B1536494540525N00616425EA0226902302 +B1536514540527N00616407EA0227302306 +B1536534540522N00616391EA0227602310 +B1536554540512N00616379EA0228002314 +B1536574540500N00616378EA0228302317 +B1536594540490N00616388EA0228602320 +B1537014540487N00616404EA0229002324 +B1537034540492N00616416EA0229102327 +B1537054540500N00616423EA0229302329 +B1537074540508N00616429EA0229802332 +B1537094540523N00616427EA0230502338 +B1537114540528N00616424EA0231302341 +B1537134540537N00616420EA0231902348 +B1537154540552N00616411EA0232502357 +B1537174540555N00616401EA0232902360 +B1537194540553N00616383EA0233202367 +B1537214540541N00616377EA0233602371 +B1537234540530N00616390EA0234002375 +B1537254540531N00616408EA0234702381 +B1537274540541N00616413EA0235402386 +B1537294540553N00616401EA0235802392 +B1537314540554N00616382EA0236202396 +B1537334540542N00616373EA0236502401 +B1537354540529N00616380EA0237102408 +B1537374540522N00616393EA0237502413 +B1537394540523N00616409EA0238102417 +B1537414540533N00616420EA0238902424 +B1537434540544N00616420EA0239702431 +B1537454540554N00616414EA0240402438 +B1537474540559N00616405EA0240902445 +B1537494540557N00616390EA0241302451 +B1537514540549N00616377EA0241902457 +B1537534540535N00616377EA0242202462 +B1537554540525N00616389EA0242702467 +B1537574540523N00616406EA0243402472 +B1537594540530N00616416EA0244002478 +B1538014540541N00616415EA0244702484 +B1538034540549N00616408EA0245302490 +B1538054540551N00616395EA0245902496 +B1538074540546N00616380EA0246502502 +B1538094540536N00616369EA0247102508 +B1538114540523N00616371EA0247402513 +B1538134540514N00616385EA0248002519 +B1538154540513N00616400EA0248602525 +B1538174540520N00616411EA0249202530 +B1538194540530N00616413EA0249802535 +B1538214540539N00616409EA0250302541 +B1538234540545N00616401EA0251002547 +B1538254540548N00616390EA0251602554 +B1538274540547N00616376EA0252002559 +B1538294540537N00616362EA0252602564 +B1538314540522N00616359EA0253102570 +B1538334540513N00616371EA0253602574 +B1538354540513N00616387EA0254102579 +B1538374540521N00616397EA0254602583 +B1538394540530N00616399EA0255102587 +B1538414540538N00616392EA0255602592 +B1538434540538N00616377EA0256102595 +B1538454540525N00616366EA0256702600 +B1538474540514N00616368EA0257102605 +B1538494540507N00616381EA0257602610 +B1538514540505N00616396EA0258002615 +B1538534540509N00616409EA0258402619 +B1538554540517N00616417EA0258902624 +B1538574540528N00616417EA0259202627 +B1538594540538N00616406EA0259702631 +B1539014540541N00616392EA0260302637 +B1539034540536N00616377EA0260802641 +B1539054540524N00616371EA0261402647 +B1539074540512N00616375EA0261902652 +B1539094540505N00616388EA0262402657 +B1539114540505N00616404EA0262802662 +B1539134540513N00616416EA0263402668 +B1539154540525N00616419EA0263902673 +B1539174540536N00616416EA0264402678 +B1539194540544N00616406EA0264902683 +B1539214540544N00616389EA0265202688 +B1539234540535N00616376EA0265802692 +B1539254540522N00616377EA0266202697 +B1539274540514N00616393EA0266502700 +B1539294540517N00616414EA0267102706 +B1539314540522N00616430EA0267802714 +B1539334540526N00616444EA0268102719 +B1539354540528N00616457EA0268502723 +B1539374540533N00616469EA0268802726 +B1539394540539N00616480EA0269302730 +B1539414540545N00616492EA0269802735 +B1539434540552N00616502EA0270402740 +B1539454540557N00616514EA0270802746 +B1539474540561N00616528EA0271202750 +B1539494540565N00616543EA0271702755 +B1539514540569N00616556EA0271902759 +B1539534540573N00616570EA0271802762 +B1539554540576N00616587EA0271702763 +B1539574540581N00616603EA0271502762 +B1539594540587N00616619EA0271502760 +B1540014540594N00616635EA0271602761 +B1540034540598N00616651EA0271702762 +B1540054540602N00616666EA0271602762 +B1540074540607N00616680EA0271202761 +B1540094540612N00616695EA0270602759 +B1540114540620N00616710EA0270002755 +B1540134540629N00616725EA0269602749 +B1540154540638N00616742EA0269302745 +B1540174540648N00616756EA0269002741 +B1540194540660N00616768EA0268802737 +B1540214540672N00616780EA0268602734 +B1540234540684N00616790EA0268102731 +B1540254540697N00616801EA0267602726 +B1540274540710N00616814EA0267402722 +B1540294540724N00616827EA0267402720 +B1540314540736N00616838EA0267202718 +B1540334540747N00616848EA0267002716 +B1540354540759N00616858EA0266702713 +B1540374540770N00616868EA0266502710 +B1540394540782N00616878EA0266302707 +B1540414540793N00616888EA0266102705 +B1540434540804N00616898EA0265802702 +B1540454540815N00616909EA0265602699 +B1540474540826N00616919EA0265302697 +B1540494540837N00616929EA0265102694 +B1540514540848N00616939EA0264802691 +B1540534540859N00616950EA0264502688 +B1540554540871N00616961EA0264302686 +B1540574540882N00616973EA0264102683 +B1540594540893N00616985EA0264002682 +B1541014540904N00616997EA0263902681 +B1541034540914N00617007EA0263802680 +B1541054540925N00617018EA0263502678 +B1541074540936N00617030EA0263302675 +B1541094540947N00617042EA0263102673 +B1541114540958N00617053EA0262802671 +B1541134540968N00617064EA0262502668 +B1541154540977N00617077EA0262202665 +B1541174540987N00617089EA0261902663 +B1541194540996N00617100EA0261502659 +B1541214541006N00617113EA0261102655 +B1541234541017N00617126EA0260902651 +B1541254541027N00617140EA0260702649 +B1541274541035N00617155EA0260402646 +B1541294541044N00617169EA0260202642 +B1541314541055N00617183EA0260002641 +B1541334541063N00617199EA0259902640 +B1541354541072N00617214EA0259802639 +B1541374541085N00617236EA0259602635 +B1541394541089N00617244EA0259502635 +B1541414541096N00617259EA0259502634 +B1541434541102N00617272EA0259102632 +B1541454541109N00617287EA0258602629 +B1541474541116N00617302EA0258302626 +B1541494541126N00617325EA0257902620 +B1541514541132N00617341EA0257502616 +B1541534541139N00617359EA0257202612 +B1541554541141N00617367EA0257002611 +B1541574541146N00617382EA0256602608 +B1541594541154N00617408EA0256202602 +B1542014541157N00617418EA0256002600 +B1542034541162N00617435EA0255902599 +B1542054541170N00617461EA0255702595 +B1542074541173N00617470EA0255602594 +B1542094541179N00617487EA0255602594 +B1542114541188N00617512EA0255402591 +B1542134541194N00617530EA0255202589 +B1542154541197N00617538EA0255002588 +B1542174541206N00617564EA0254802585 +B1542194541212N00617580EA0254502582 +B1542214541219N00617597EA0254302579 +B1542234541226N00617613EA0254302578 +B1542254541233N00617627EA0254202577 +B1542274541237N00617635EA0253902576 +B1542294541248N00617659EA0253702573 +B1542314541252N00617668EA0253702572 +B1542334541264N00617690EA0253602571 +B1542354541273N00617705EA0253402569 +B1542374541282N00617719EA0253302568 +B1542394541286N00617726EA0253102568 +B1542414541300N00617748EA0252802565 +B1542434541309N00617763EA0252602563 +B1542454541320N00617777EA0252602562 +B1542474541329N00617790EA0252402560 +B1542494541339N00617804EA0252202558 +B1542514541345N00617812EA0252202557 +B1542534541359N00617833EA0252202557 +B1542554541367N00617847EA0252002556 +B1542574541372N00617861EA0251802554 +B1542594541386N00617877EA0251702553 +B1543014541394N00617891EA0251502552 +B1543034541398N00617899EA0251202550 +B1543054541410N00617923EA0251002547 +B1543074541419N00617938EA0250802545 +B1543094541426N00617953EA0250502542 +B1543114541435N00617968EA0250202539 +B1543134541443N00617984EA0250002537 +B1543154541450N00617999EA0249702535 +B1543174541457N00618015EA0249402531 +B1543194541465N00618031EA0249102528 +B1543214541472N00618047EA0248802525 +B1543234541478N00618063EA0248402521 +B1543254541485N00618080EA0248102518 +B1543274541492N00618099EA0247902515 +B1543294541499N00618115EA0247602513 +B1543314541506N00618131EA0247302510 +B1543334541512N00618149EA0247002507 +B1543354541520N00618166EA0246802505 +B1543374541526N00618183EA0246602503 +B1543394541533N00618199EA0246402500 +B1543414541540N00618216EA0246202498 +B1543434541547N00618233EA0246002496 +B1543454541554N00618249EA0245802494 +B1543474541562N00618265EA0245602493 +B1543494541569N00618281EA0245502491 +B1543514541577N00618297EA0245202488 +B1543534541585N00618313EA0244902485 +B1543554541593N00618328EA0244702483 +B1543574541601N00618343EA0244402481 +B1543594541609N00618358EA0244202478 +B1544014541617N00618373EA0244102477 +B1544034541626N00618387EA0244002476 +B1544054541634N00618399EA0243902475 +B1544074541643N00618413EA0243802473 +B1544094541651N00618428EA0243702473 +B1544114541658N00618442EA0243602472 +B1544134541665N00618457EA0243402470 +B1544154541673N00618473EA0243302469 +B1544174541680N00618490EA0243302469 +B1544194541686N00618505EA0243302468 +B1544214541692N00618522EA0243102467 +B1544234541699N00618539EA0243002465 +B1544254541706N00618556EA0242902465 +B1544274541712N00618572EA0242802464 +B1544294541719N00618588EA0242602462 +B1544314541726N00618605EA0242502461 +B1544334541733N00618621EA0242302460 +B1544354541740N00618637EA0242202458 +B1544374541746N00618654EA0242002456 +B1544394541753N00618670EA0241802454 +B1544414541760N00618686EA0241602452 +B1544434541767N00618702EA0241302450 +B1544454541774N00618717EA0241102448 +B1544474541780N00618733EA0240802445 +B1544494541787N00618749EA0240602442 +B1544514541794N00618765EA0240302439 +B1544534541801N00618781EA0240002437 +B1544554541808N00618798EA0239802434 +B1544574541815N00618813EA0239702432 +B1544594541822N00618828EA0239402430 +B1545014541829N00618844EA0239102428 +B1545034541835N00618861EA0238902425 +B1545054541842N00618878EA0238702423 +B1545074541848N00618895EA0238402420 +B1545094541853N00618912EA0238202418 +B1545114541860N00618928EA0238002416 +B1545134541866N00618944EA0237702414 +B1545154541871N00618959EA0237402411 +B1545174541878N00618975EA0237002407 +B1545194541884N00618991EA0236702404 +B1545214541889N00619007EA0236502401 +B1545234541896N00619021EA0236202398 +B1545254541902N00619036EA0236002395 +B1545274541909N00619051EA0235802394 +B1545294541914N00619064EA0235502391 +B1545314541920N00619078EA0235102387 +B1545334541926N00619093EA0234702384 +B1545354541931N00619109EA0234502382 +B1545374541934N00619124EA0234302379 +B1545394541939N00619139EA0233902375 +B1545414541944N00619154EA0233602373 +B1545434541949N00619168EA0233402369 +B1545454541954N00619182EA0233002365 +B1545474541960N00619197EA0232602362 +B1545494541966N00619212EA0232402359 +B1545514541972N00619224EA0232102356 +B1545534541978N00619236EA0231702353 +B1545554541986N00619248EA0231502351 +B1545574541993N00619258EA0231302349 +B1545594542001N00619268EA0231102347 +B1546014542009N00619278EA0230902345 +B1546034542017N00619289EA0230802344 +B1546054542024N00619300EA0230702342 +B1546074542031N00619313EA0230502341 +B1546094542038N00619325EA0230402339 +B1546114542045N00619336EA0230302338 +B1546134542051N00619349EA0230202337 +B1546154542057N00619363EA0230202336 +B1546174542064N00619376EA0230002335 +B1546194542070N00619389EA0229802333 +B1546214542076N00619401EA0229502331 +B1546234542083N00619413EA0229302329 +B1546254542090N00619425EA0229102327 +B1546274542096N00619438EA0229002325 +B1546294542103N00619449EA0228802324 +B1546314542110N00619460EA0228702322 +B1546334542118N00619471EA0228602321 +B1546354542125N00619479EA0228502321 +B1546374542133N00619487EA0228402319 +B1546394542141N00619496EA0228202317 +B1546414542149N00619504EA0228102315 +B1546434542156N00619511EA0227802314 +B1546454542164N00619518EA0227502311 +B1546474542171N00619527EA0227202308 +B1546494542179N00619534EA0227002305 +B1546514542186N00619544EA0226702302 +B1546534542193N00619554EA0226402299 +B1546554542200N00619564EA0226102296 +B1546574542207N00619575EA0225802293 +B1546594542215N00619585EA0225602291 +B1547014542222N00619595EA0225302288 +B1547034542230N00619605EA0225102286 +B1547054542237N00619615EA0224902284 +B1547074542244N00619625EA0224702281 +B1547094542251N00619635EA0224502279 +B1547114542260N00619644EA0224302278 +B1547134542268N00619654EA0224302277 +B1547154542275N00619663EA0224102276 +B1547174542284N00619672EA0223902274 +B1547194542293N00619681EA0223702272 +B1547214542301N00619689EA0223502270 +B1547234542309N00619698EA0223302268 +B1547254542317N00619710EA0223202266 +B1547274542325N00619720EA0223102265 +B1547294542332N00619729EA0223002264 +B1547314542340N00619739EA0222702261 +B1547334542349N00619749EA0222602260 +B1547354542357N00619759EA0222402259 +B1547374542365N00619768EA0222302257 +B1547394542374N00619777EA0222002254 +B1547414542382N00619785EA0221802252 +B1547434542391N00619794EA0221602250 +B1547454542400N00619802EA0221402248 +B1547474542409N00619809EA0221302246 +B1547494542414N00619814EA0221102245 +B1547514542426N00619827EA0220902243 +B1547534542434N00619836EA0220702241 +B1547554542442N00619845EA0220502238 +B1547574542450N00619855EA0220202236 +B1547594542457N00619865EA0220102234 +B1548014542465N00619875EA0219702232 +B1548034542473N00619885EA0219602230 +B1548054542481N00619895EA0219402228 +B1548074542489N00619905EA0219102225 +B1548094542497N00619915EA0218802222 +B1548114542505N00619926EA0218502219 +B1548134542513N00619936EA0218502218 +B1548154542520N00619945EA0218402217 +B1548174542527N00619955EA0218202215 +B1548194542534N00619966EA0217902212 +B1548214542541N00619977EA0217702211 +B1548234542548N00619989EA0217402208 +B1548254542555N00620001EA0217202206 +B1548274542562N00620014EA0217002204 +B1548294542569N00620025EA0216802202 +B1548314542577N00620035EA0216502199 +B1548334542585N00620044EA0216302197 +B1548354542593N00620052EA0216202195 +B1548374542601N00620059EA0216102194 +B1548394542610N00620063EA0215902192 +B1548414542618N00620069EA0215602190 +B1548434542626N00620077EA0215502189 +B1548454542634N00620085EA0215402187 +B1548474542642N00620093EA0215302185 +B1548494542651N00620100EA0215102183 +B1548514542660N00620106EA0214902182 +B1548534542668N00620112EA0214602180 +B1548554542676N00620119EA0214502178 +B1548574542684N00620128EA0214202176 +B1548594542692N00620137EA0214002174 +B1549014542700N00620145EA0213802172 +B1549034542708N00620154EA0213602170 +B1549054542716N00620163EA0213302167 +B1549074542724N00620172EA0213002164 +B1549094542732N00620181EA0212802162 +B1549114542740N00620189EA0212502159 +B1549134542748N00620197EA0212302157 +B1549154542756N00620205EA0212002154 +B1549174542764N00620213EA0211802152 +B1549194542773N00620221EA0211602149 +B1549214542781N00620230EA0211302147 +B1549234542789N00620238EA0211102144 +B1549254542798N00620246EA0210902143 +B1549274542806N00620255EA0210802141 +B1549294542814N00620262EA0210602139 +B1549314542822N00620271EA0210402137 +B1549334542831N00620279EA0210202136 +B1549354542839N00620288EA0210002133 +B1549374542847N00620297EA0209702130 +B1549394542856N00620307EA0209502128 +B1549414542865N00620318EA0209502127 +B1549434542874N00620327EA0209402126 +B1549454542882N00620336EA0209102123 +B1549474542891N00620345EA0209002122 +B1549494542899N00620354EA0209302123 +B1549514542906N00620361EA0209202123 +B1549534542913N00620368EA0208902121 +B1549554542922N00620375EA0208702120 +B1549574542929N00620382EA0208902121 +B1549594542935N00620390EA0209002122 +B1550014542941N00620398EA0209202124 +B1550034542948N00620404EA0209402127 +B1550054542955N00620411EA0209702129 +B1550074542962N00620419EA0210202134 +B1550094542968N00620424EA0210702139 +B1550114542974N00620429EA0211202144 +B1550134542980N00620434EA0211902151 +B1550154542986N00620439EA0212602158 +B1550174542991N00620444EA0213002164 +B1550194542993N00620436EA0213102169 +B1550214542987N00620425EA0213502173 +B1550234542972N00620429EA0213802176 +B1550254542958N00620450EA0214002180 +B1550274542958N00620474EA0214902186 +B1550294542963N00620487EA0215902194 +B1550314542969N00620493EA0216702201 +B1550334542976N00620499EA0217402209 +B1550354542984N00620500EA0217902215 +B1550374542987N00620493EA0218002220 +B1550394542979N00620487EA0218302223 +B1550414542965N00620490EA0218602224 +B1550434542953N00620501EA0219002228 +B1550454542945N00620517EA0219602233 +B1550474542938N00620535EA0220402240 +B1550494542936N00620553EA0221102246 +B1550514542939N00620568EA0221702252 +B1550534542947N00620573EA0222302257 +B1550554542950N00620566EA0222602263 +B1550574542942N00620558EA0222902268 +B1550594542927N00620559EA0223702273 +B1551014542913N00620568EA0224402281 +B1551034542903N00620579EA0224902287 +B1551054542895N00620596EA0225302292 +B1551074542894N00620614EA0225602296 +B1551094542902N00620620EA0225802299 +B1551114542906N00620610EA0226202302 +B1551134542899N00620597EA0226802306 +B1551154542888N00620590EA0227502314 +B1551174542880N00620586EA0228002318 +B1551194542872N00620582EA0228402323 +B1551214542861N00620581EA0228902327 +B1551234542849N00620593EA0229202331 +B1551254542844N00620614EA0229502334 +B1551274542848N00620630EA0229902338 +B1551294542859N00620628EA0229902340 +B1551314542862N00620615EA0230202344 +B1551334542856N00620603EA0231002349 +B1551354542848N00620598EA0231302351 +B1551374542842N00620590EA0231402353 +B1551394542835N00620585EA0231602355 +B1551414542823N00620586EA0231702356 +B1551434542810N00620600EA0231802357 +B1551454542803N00620619EA0232002357 +B1551474542805N00620638EA0232302359 +B1551494542815N00620644EA0232302360 +B1551514542825N00620641EA0232302361 +B1551534542834N00620641EA0232502362 +B1551554542843N00620641EA0232402362 +B1551574542850N00620639EA0231802361 +B1551594542858N00620637EA0230802359 +B1552014542869N00620635EA0230402356 +B1552034542877N00620633EA0230502354 +B1552054542881N00620632EA0230202350 +B1552074542887N00620628EA0229402344 +B1552094542896N00620624EA0229102339 +B1552114542904N00620624EA0229102336 +B1552134542911N00620624EA0228802332 +B1552154542919N00620622EA0228302326 +B1552174542929N00620621EA0228002322 +B1552194542938N00620622EA0227902320 +B1552214542946N00620624EA0227602316 +B1552234542956N00620626EA0227202312 +B1552254542966N00620627EA0227002309 +B1552274542975N00620629EA0226902307 +B1552294542985N00620631EA0226702304 +B1552314542994N00620634EA0226202300 +B1552334543004N00620637EA0225802295 +B1552354543013N00620640EA0225502292 +B1552374543022N00620644EA0225202288 +B1552394543032N00620648EA0224702283 +B1552414543042N00620652EA0224202279 +B1552434543051N00620656EA0223902275 +B1552454543061N00620658EA0223502271 +B1552474543070N00620661EA0223102266 +B1552494543080N00620663EA0222702262 +B1552514543091N00620665EA0222402259 +B1552534543101N00620668EA0221902255 +B1552554543111N00620672EA0221502251 +B1552574543121N00620675EA0221102246 +B1552594543131N00620678EA0220702242 +B1553014543142N00620680EA0220302238 +B1553034543152N00620682EA0219902234 +B1553054543162N00620686EA0219602231 +B1553074543172N00620690EA0219302228 +B1553094543182N00620694EA0219002225 +B1553114543192N00620698EA0218702221 +B1553134543202N00620703EA0218502219 +B1553154543212N00620709EA0218202216 +B1553174543222N00620716EA0217902214 +B1553194543233N00620722EA0217802212 +B1553214543242N00620729EA0217502209 +B1553234543251N00620737EA0217202207 +B1553254543260N00620743EA0216802203 +B1553274543270N00620749EA0216402199 +B1553294543280N00620756EA0216402198 +B1553314543289N00620761EA0216202196 +B1553334543298N00620766EA0216002193 +B1553354543308N00620770EA0215802191 +B1553374543317N00620774EA0215502189 +B1553394543326N00620778EA0215202186 +B1553414543336N00620781EA0215102184 +B1553434543346N00620783EA0215002183 +B1553454543354N00620784EA0214802182 +B1553474543361N00620784EA0214602179 +B1553494543370N00620788EA0214302176 +B1553514543381N00620793EA0214102175 +B1553534543392N00620799EA0214602174 +B1553554543400N00620805EA0215202175 +B1553574543409N00620811EA0215502179 +B1553594543418N00620816EA0215802183 +B1554014543428N00620821EA0216302188 +B1554034543437N00620826EA0216602193 +B1554054543445N00620828EA0216402196 +B1554074543453N00620824EA0216202197 +B1554094543463N00620822EA0216302198 +B1554114543472N00620823EA0216102198 +B1554134543482N00620822EA0215802197 +B1554154543493N00620824EA0215602195 +B1554174543504N00620826EA0215402193 +B1554194543515N00620827EA0215302192 +B1554214543527N00620828EA0215302191 +B1554234543539N00620828EA0215202190 +B1554254543550N00620830EA0215102189 +B1554274543561N00620834EA0215002188 +B1554294543573N00620838EA0214902187 +B1554314543584N00620843EA0214902187 +B1554334543595N00620847EA0214902187 +B1554354543606N00620850EA0214702185 +B1554374543618N00620852EA0214702184 +B1554394543630N00620854EA0214702184 +B1554414543641N00620856EA0214702184 +B1554434543652N00620859EA0214702184 +B1554454543663N00620862EA0214702184 +B1554474543674N00620864EA0214802184 +B1554494543685N00620866EA0214802185 +B1554514543696N00620868EA0214802185 +B1554534543708N00620871EA0214802185 +B1554554543720N00620874EA0214802185 +B1554574543732N00620878EA0214902185 +B1554594543744N00620882EA0215002186 +B1555014543756N00620887EA0215202188 +B1555034543768N00620893EA0215302189 +B1555054543781N00620898EA0215302189 +B1555074543794N00620902EA0215402190 +B1555094543806N00620905EA0215402190 +B1555114543819N00620909EA0215402190 +B1555134543832N00620913EA0215302190 +B1555154543845N00620916EA0215302190 +B1555174543858N00620919EA0215302190 +B1555194543870N00620921EA0215202189 +B1555214543883N00620923EA0215102188 +B1555234543896N00620926EA0215002187 +B1555254543908N00620930EA0214902186 +B1555274543921N00620933EA0214802184 +B1555294543933N00620936EA0214602183 +B1555314543944N00620941EA0214402181 +B1555334543956N00620947EA0214002177 +B1555354543968N00620952EA0213702174 +B1555374543981N00620957EA0213502171 +B1555394543993N00620963EA0213402170 +B1555414544004N00620970EA0213102167 +B1555434544016N00620979EA0212702163 +B1555454544028N00620988EA0212602161 +B1555474544040N00620995EA0212302159 +B1555494544052N00621001EA0211902156 +B1555514544065N00621006EA0211802154 +B1555534544078N00621011EA0211902153 +B1555554544090N00621016EA0212202153 +B1555574544101N00621022EA0212302154 +B1555594544113N00621026EA0212302155 +B1556014544126N00621031EA0212402156 +B1556034544138N00621034EA0212502157 +B1556054544150N00621036EA0212502158 +B1556074544162N00621038EA0212402157 +B1556094544175N00621040EA0212202156 +B1556114544188N00621043EA0212202156 +B1556134544199N00621046EA0211902153 +B1556154544212N00621050EA0211502150 +B1556174544226N00621056EA0211302148 +B1556194544238N00621063EA0211302147 +B1556214544252N00621068EA0211102145 +B1556234544266N00621073EA0211102145 +B1556254544280N00621077EA0211402145 +B1556274544292N00621081EA0211502146 +B1556294544303N00621086EA0211202146 +B1556314544316N00621090EA0210902144 +B1556334544330N00621093EA0210802143 +B1556354544342N00621098EA0210602142 +B1556374544355N00621102EA0210302139 +B1556394544370N00621108EA0210002136 +B1556414544383N00621114EA0209802134 +B1556434544396N00621121EA0209502131 +B1556454544409N00621128EA0209102127 +B1556474544424N00621134EA0208702123 +B1556494544438N00621140EA0208702121 +B1556514544451N00621144EA0208402119 +B1556534544463N00621147EA0207902115 +B1556554544478N00621151EA0207502110 +B1556574544492N00621155EA0207302108 +B1556594544506N00621159EA0207002105 +B1557014544520N00621164EA0206702103 +B1557034544535N00621169EA0206702101 +B1557054544549N00621175EA0206502100 +B1557074544562N00621182EA0206202097 +B1557094544576N00621187EA0205902094 +B1557114544591N00621192EA0205802092 +B1557134544604N00621199EA0205602090 +B1557154544618N00621205EA0205402088 +B1557174544632N00621211EA0205402088 +B1557194544644N00621218EA0205202086 +B1557214544657N00621225EA0205002084 +B1557234544671N00621231EA0204702081 +B1557254544684N00621238EA0204702081 +B1557274544696N00621244EA0204702080 +B1557294544709N00621251EA0204502078 +B1557314544723N00621258EA0204402077 +B1557334544735N00621266EA0204302077 +B1557354544747N00621274EA0204102074 +B1557374544760N00621282EA0203802072 +B1557394544774N00621289EA0203802071 +B1557414544786N00621297EA0203702070 +B1557434544799N00621306EA0203502068 +B1557454544812N00621315EA0203302066 +B1557474544825N00621324EA0203102065 +B1557494544837N00621332EA0203002063 +B1557514544850N00621341EA0202702060 +B1557534544863N00621350EA0202502059 +B1557554544877N00621357EA0202502057 +B1557574544890N00621366EA0202402056 +B1557594544905N00621373EA0202202055 +B1558014544919N00621380EA0202202054 +B1558034544932N00621387EA0202102054 +B1558054544946N00621393EA0202002052 +B1558074544959N00621399EA0201802051 +B1558094544973N00621405EA0201702050 +B1558114544986N00621412EA0201602049 +B1558134544999N00621419EA0201502048 +B1558154545012N00621429EA0201302046 +B1558174545024N00621439EA0201202045 +B1558194545038N00621447EA0201002043 +B1558214545051N00621455EA0201002043 +B1558234545064N00621461EA0200902042 +B1558254545077N00621466EA0200802041 +B1558274545090N00621472EA0200702040 +B1558294545103N00621478EA0200602039 +B1558314545116N00621483EA0200602038 +B1558334545130N00621487EA0200502037 +B1558354545142N00621491EA0200402036 +B1558374545155N00621495EA0200302035 +B1558394545168N00621499EA0200102033 +B1558414545182N00621503EA0199902031 +B1558434545195N00621506EA0199602029 +B1558454545208N00621509EA0199402026 +B1558474545222N00621512EA0199102023 +B1558494545235N00621516EA0198902021 +B1558514545247N00621521EA0198602018 +B1558534545260N00621527EA0198402016 +B1558554545273N00621534EA0198402015 +B1558574545284N00621538EA0198102013 +B1558594545295N00621540EA0197602010 +B1559014545308N00621541EA0197202006 +B1559034545321N00621542EA0197002005 +B1559054545333N00621543EA0196802002 +B1559074545346N00621543EA0196702000 +B1559094545358N00621544EA0196701999 +B1559114545369N00621544EA0196601998 +B1559134545379N00621543EA0196301996 +B1559154545390N00621541EA0196201995 +B1559174545401N00621538EA0196301995 +B1559194545411N00621535EA0196201994 +B1559214545421N00621532EA0195901992 +B1559234545433N00621531EA0195801991 +B1559254545444N00621533EA0195601990 +B1559274545456N00621536EA0195401988 +B1559294545467N00621539EA0195201985 +B1559314545479N00621543EA0195101983 +B1559334545491N00621546EA0194901982 +B1559354545502N00621550EA0194801980 +B1559374545513N00621555EA0194801980 +B1559394545523N00621560EA0194701979 +B1559414545534N00621564EA0194501978 +B1559434545546N00621568EA0194501977 +B1559454545557N00621572EA0194601977 +B1559474545569N00621576EA0194501977 +B1559494545580N00621580EA0194401976 +B1559514545593N00621583EA0194301975 +B1559534545604N00621585EA0194201974 +B1559554545616N00621587EA0194201974 +B1559574545628N00621590EA0194201973 +B1559594545639N00621593EA0194201973 +B1600014545651N00621596EA0194101972 +B1600034545662N00621599EA0193901971 +B1600054545673N00621603EA0193701969 +B1600074545685N00621606EA0193601968 +B1600094545696N00621609EA0193501967 +B1600114545708N00621613EA0193401965 +B1600134545720N00621617EA0193301964 +B1600154545732N00621622EA0193201963 +B1600174545743N00621624EA0193101962 +B1600194545754N00621628EA0192901961 +B1600214545766N00621632EA0192801958 +B1600234545778N00621639EA0192601957 +B1600254545788N00621647EA0192501956 +B1600274545799N00621653EA0192301954 +B1600294545810N00621660EA0192101952 +B1600314545821N00621666EA0192001950 +B1600334545832N00621671EA0191801949 +B1600354545844N00621677EA0191601947 +B1600374545855N00621683EA0191501945 +B1600394545865N00621688EA0191301944 +B1600414545876N00621694EA0191101942 +B1600434545887N00621699EA0190901940 +B1600454545898N00621703EA0190801938 +B1600474545908N00621707EA0190501936 +B1600494545918N00621712EA0190201933 +B1600514545928N00621716EA0189901930 +B1600534545938N00621722EA0189501926 +B1600554545948N00621727EA0189101922 +B1600574545958N00621734EA0188801919 +B1600594545967N00621740EA0188501916 +B1601014545977N00621743EA0188201912 +B1601034545987N00621745EA0187801909 +B1601054545997N00621747EA0187501906 +B1601074546008N00621748EA0187301903 +B1601094546018N00621749EA0187101901 +B1601114546028N00621752EA0186901898 +B1601134546037N00621757EA0186401894 +B1601154546048N00621764EA0185901890 +B1601174546058N00621769EA0185801888 +B1601194546067N00621773EA0185701886 +B1601214546077N00621780EA0185501883 +B1601234546087N00621788EA0185301881 +B1601254546096N00621795EA0185101880 +B1601274546106N00621802EA0185101879 +B1601294546115N00621806EA0184901878 +B1601314546123N00621810EA0184401876 +B1601334546134N00621815EA0183801872 +B1601354546146N00621821EA0183501868 +B1601374546158N00621826EA0183501867 +B1601394546169N00621829EA0183301866 +B1601414546180N00621832EA0183101863 +B1601434546190N00621834EA0183001862 +B1601454546200N00621835EA0182901860 +B1601474546211N00621840EA0182601857 +B1601494546223N00621844EA0182501856 +B1601514546234N00621849EA0182501855 +B1601534546244N00621853EA0182501855 +B1601554546253N00621856EA0182301853 +B1601574546265N00621858EA0182201852 +B1601594546276N00621860EA0182301853 +B1602014546285N00621861EA0182301852 +B1602034546294N00621863EA0182101851 +B1602054546303N00621866EA0181901848 +B1602074546314N00621871EA0181701847 +B1602094546323N00621875EA0181501844 +B1602114546333N00621878EA0181201841 +B1602134546344N00621882EA0181001839 +B1602154546355N00621887EA0180901838 +B1602174546366N00621891EA0180701836 +B1602194546376N00621896EA0180501834 +B1602214546388N00621901EA0180501833 +B1602234546398N00621906EA0180401833 +B1602254546407N00621913EA0180301831 +B1602274546417N00621918EA0180001829 +B1602294546428N00621923EA0179901827 +B1602314546438N00621929EA0180001827 +B1602334546447N00621934EA0179801826 +B1602354546457N00621938EA0179601824 +B1602374546466N00621940EA0179601824 +B1602394546474N00621944EA0179601823 +B1602414546484N00621949EA0179401822 +B1602434546494N00621955EA0179501822 +B1602454546503N00621960EA0179601823 +B1602474546513N00621967EA0179701825 +B1602494546522N00621973EA0180101827 +B1602514546530N00621977EA0180401831 +B1602534546538N00621982EA0180801835 +B1602554546545N00621985EA0181001838 +B1602574546548N00621978EA0181001840 +B1602594546545N00621966EA0181101841 +B1603014546535N00621961EA0181301842 +B1603034546521N00621969EA0181501844 +B1603054546514N00621988EA0181601845 +B1603074546515N00622008EA0181701846 +B1603094546522N00622021EA0181801847 +B1603114546530N00622028EA0182001848 +B1603134546538N00622030EA0182001849 +B1603154546547N00622031EA0182301851 +B1603174546557N00622034EA0182901854 +B1603194546565N00622036EA0183301859 +B1603214546571N00622039EA0183601862 +B1603234546577N00622038EA0183601864 +B1603254546577N00622028EA0183601865 +B1603274546568N00622020EA0183701865 +B1603294546553N00622026EA0183701866 +B1603314546542N00622044EA0183701867 +B1603334546539N00622066EA0183701867 +B1603354546545N00622084EA0183801868 +B1603374546553N00622096EA0184001869 +B1603394546562N00622106EA0184201871 +B1603414546571N00622115EA0184401872 +B1603434546581N00622123EA0184601875 +B1603454546590N00622128EA0184901877 +B1603474546600N00622133EA0185201880 +B1603494546610N00622137EA0185601884 +B1603514546618N00622142EA0186001888 +B1603534546624N00622145EA0186201892 +B1603554546630N00622146EA0186301894 +B1603574546632N00622140EA0186401895 +B1603594546626N00622133EA0186501897 +B1604014546612N00622133EA0186601897 +B1604034546599N00622147EA0186501896 +B1604054546591N00622168EA0186601897 +B1604074546591N00622190EA0186801898 +B1604094546597N00622207EA0187101901 +B1604114546604N00622220EA0187401904 +B1604134546612N00622231EA0187701907 +B1604154546621N00622239EA0188001909 +B1604174546630N00622243EA0188201912 +B1604194546640N00622247EA0188501914 +B1604214546651N00622251EA0188901918 +B1604234546661N00622254EA0189301922 +B1604254546671N00622252EA0189801926 +B1604274546679N00622249EA0190301932 +B1604294546687N00622250EA0190601935 +B1604314546696N00622251EA0190901939 +B1604334546705N00622251EA0191401944 +B1604354546713N00622249EA0191901949 +B1604374546719N00622247EA0192501955 +B1604394546726N00622248EA0193201962 +B1604414546733N00622251EA0193901969 +B1604434546740N00622251EA0194701977 +B1604454546745N00622251EA0195301984 +B1604474546747N00622243EA0195701990 +B1604494546740N00622229EA0196101995 +B1604514546725N00622227EA0196802001 +B1604534546713N00622241EA0197302006 +B1604554546709N00622262EA0197902011 +B1604574546714N00622276EA0198502017 +B1604594546723N00622276EA0199002023 +B1605014546728N00622266EA0199802029 +B1605034546721N00622253EA0200402035 +B1605054546707N00622250EA0200902041 +B1605074546692N00622261EA0201402046 +B1605094546686N00622283EA0202002052 +B1605114546689N00622301EA0202702058 +B1605134546696N00622311EA0203302065 +B1605154546704N00622315EA0204002072 +B1605174546711N00622314EA0204802080 +B1605194546714N00622307EA0205402087 +B1605214546714N00622297EA0206202094 +B1605234546706N00622286EA0206802101 +B1605254546693N00622285EA0207302108 +B1605274546679N00622295EA0207802113 +B1605294546672N00622314EA0208202118 +B1605314546674N00622334EA0208902124 +B1605334546681N00622345EA0209602131 +B1605354546688N00622348EA0210202137 +B1605374546693N00622346EA0210902144 +B1605394546695N00622337EA0211402149 +B1605414546688N00622326EA0212002155 +B1605434546678N00622319EA0212702161 +B1605454546665N00622323EA0213102167 +B1605474546652N00622339EA0213602172 +B1605494546646N00622358EA0214202178 +B1605514546646N00622376EA0214702184 +B1605534546649N00622391EA0215102188 +B1605554546656N00622400EA0215302191 +B1605574546666N00622403EA0215602194 +B1605594546676N00622399EA0216302199 +B1606014546681N00622394EA0217102206 +B1606034546686N00622392EA0217802213 +B1606054546690N00622390EA0218202219 +B1606074546691N00622384EA0218502223 +B1606094546685N00622374EA0218702226 +B1606114546672N00622365EA0219002229 +B1606134546656N00622370EA0219502233 +B1606154546646N00622387EA0219902236 +B1606174546645N00622406EA0220302241 +B1606194546651N00622420EA0220802245 +B1606214546660N00622424EA0221302250 +B1606234546667N00622421EA0222002256 +B1606254546668N00622413EA0222402262 +B1606274546663N00622406EA0222602266 +B1606294546652N00622398EA0222802268 +B1606314546635N00622397EA0223302272 +B1606334546620N00622410EA0223602275 +B1606354546613N00622429EA0224002279 +B1606374546611N00622447EA0224402283 +B1606394546615N00622462EA0224702286 +B1606414546624N00622473EA0225002289 +B1606434546634N00622479EA0225602293 +B1606454546642N00622481EA0226302299 +B1606474546649N00622481EA0226902306 +B1606494546654N00622482EA0227502312 +B1606514546660N00622482EA0227802317 +B1606534546665N00622478EA0227602321 +B1606554546664N00622465EA0227002322 +B1606574546654N00622450EA0226902320 +B1606594546639N00622449EA0227102320 +B1607014546626N00622462EA0227102318 +B1607034546620N00622480EA0227102316 +B1607054546619N00622499EA0227202315 +B1607074546623N00622516EA0227502317 +B1607094546630N00622530EA0228002320 +B1607114546637N00622542EA0228402325 +B1607134546642N00622555EA0228902329 +B1607154546649N00622567EA0229402334 +B1607174546656N00622570EA0230002339 +B1607194546662N00622563EA0230302343 +B1607214546660N00622549EA0230502346 +B1607234546648N00622542EA0230702348 +B1607254546633N00622547EA0231002352 +B1607274546622N00622564EA0231302354 +B1607294546620N00622584EA0231602357 +B1607314546624N00622601EA0232002360 +B1607334546631N00622612EA0232402364 +B1607354546638N00622618EA0232802368 +B1607374546645N00622613EA0233102372 +B1607394546647N00622603EA0233302373 +B1607414546644N00622592EA0233602376 +B1607434546633N00622585EA0233702378 +B1607454546618N00622587EA0233802380 +B1607474546606N00622601EA0234202382 +B1607494546602N00622621EA0234502385 +B1607514546604N00622637EA0234702388 +B1607534546610N00622650EA0235002391 +B1607554546616N00622661EA0235402394 +B1607574546621N00622669EA0235702397 +B1607594546627N00622674EA0235802399 +B1608014546634N00622675EA0236002401 +B1608034546642N00622674EA0236102402 +B1608054546650N00622673EA0236102402 +B1608074546657N00622672EA0236202402 +B1608094546664N00622671EA0236202402 +B1608114546672N00622668EA0236302403 +B1608134546679N00622664EA0236702405 +B1608154546685N00622663EA0237202409 +B1608174546692N00622662EA0237702414 +B1608194546699N00622661EA0238002417 +B1608214546707N00622660EA0238302421 +B1608234546714N00622657EA0238702425 +B1608254546717N00622649EA0238802428 +B1608274546712N00622639EA0238802430 +B1608294546700N00622635EA0238702431 +B1608314546684N00622642EA0238902432 +B1608334546673N00622659EA0239302433 +B1608354546669N00622679EA0239702437 +B1608374546669N00622697EA0240102442 +B1608394546672N00622712EA0240502446 +B1608414546677N00622723EA0240902449 +B1608434546683N00622731EA0241102452 +B1608454546690N00622737EA0241402454 +B1608474546698N00622738EA0241502455 +B1608494546707N00622741EA0241502456 +B1608514546716N00622746EA0241502456 +B1608534546725N00622750EA0241302455 +B1608554546736N00622751EA0241302454 +B1608574546748N00622749EA0241602455 +B1608594546758N00622748EA0242302456 +B1609014546769N00622748EA0242802460 +B1609034546780N00622743EA0243202464 +B1609054546791N00622739EA0243902470 +B1609074546802N00622738EA0244602477 +B1609094546813N00622736EA0245002482 +B1609114546825N00622733EA0245602488 +B1609134546837N00622732EA0246402495 +B1609154546850N00622733EA0247502504 +B1609174546862N00622733EA0248402514 +B1609194546874N00622732EA0249302523 +B1609214546886N00622729EA0250102533 +B1609234546897N00622725EA0250702541 +B1609254546908N00622723EA0251202547 +B1609274546920N00622719EA0251402552 +B1609294546933N00622711EA0251702556 +B1609314546944N00622704EA0252002559 +B1609334546956N00622698EA0252302563 +B1609354546966N00622694EA0252802568 +B1609374546975N00622692EA0253102572 +B1609394546984N00622688EA0253202574 +B1609414546993N00622681EA0253302575 +B1609434547002N00622677EA0253302576 +B1609454547010N00622674EA0253302577 +B1609474547017N00622670EA0253202576 +B1609494547025N00622665EA0253002574 +B1609514547033N00622661EA0252702572 +B1609534547044N00622656EA0252302568 +B1609554547054N00622652EA0251902564 +B1609574547064N00622649EA0251602560 +B1609594547075N00622647EA0251202555 +B1610014547086N00622647EA0250702550 +B1610034547097N00622645EA0250402546 +B1610054547109N00622641EA0250402543 +B1610074547119N00622637EA0250402542 +B1610094547129N00622633EA0250202540 +B1610114547140N00622627EA0250502540 +B1610134547150N00622620EA0251102541 +B1610154547158N00622615EA0251502545 +B1610174547167N00622611EA0251702547 +B1610194547177N00622609EA0251802549 +B1610214547187N00622610EA0251802550 +B1610234547198N00622610EA0251902552 +B1610254547210N00622611EA0252202554 +B1610274547221N00622612EA0252702558 +B1610294547231N00622612EA0253202563 +B1610314547240N00622609EA0253602568 +B1610334547249N00622607EA0254202574 +B1610354547257N00622604EA0254502579 +B1610374547266N00622603EA0254402583 +B1610394547276N00622602EA0254402585 +B1610414547288N00622600EA0254602587 +B1610434547297N00622598EA0254802590 +B1610454547307N00622598EA0255002591 +B1610474547315N00622594EA0255202594 +B1610494547324N00622591EA0255602597 +B1610514547331N00622589EA0255802600 +B1610534547340N00622587EA0256202603 +B1610554547350N00622587EA0256902608 +B1610574547359N00622590EA0257602614 +B1610594547368N00622592EA0258002618 +B1611014547377N00622595EA0258402623 +B1611034547386N00622600EA0258702627 +B1611054547396N00622605EA0258902629 +B1611074547405N00622608EA0259202632 +B1611094547414N00622608EA0259402635 +B1611114547424N00622609EA0259702638 +B1611134547434N00622611EA0260002641 +B1611154547444N00622612EA0260502645 +B1611174547453N00622612EA0261002650 +B1611194547461N00622613EA0261202653 +B1611214547469N00622612EA0261002655 +B1611234547480N00622610EA0260802655 +B1611254547491N00622612EA0260902657 +B1611274547502N00622615EA0261402659 +B1611294547512N00622616EA0262002664 +B1611314547523N00622618EA0262602670 +B1611334547533N00622621EA0263302676 +B1611354547544N00622625EA0263702681 +B1611374547556N00622630EA0263802684 +B1611394547568N00622637EA0263902686 +B1611414547578N00622647EA0264302688 +B1611434547587N00622657EA0264602691 +B1611454547596N00622665EA0264802693 +B1611474547603N00622675EA0265002695 +B1611494547607N00622690EA0265102696 +B1611514547612N00622704EA0265302698 +B1611534547616N00622718EA0265402699 +B1611554547619N00622733EA0265602700 +B1611574547623N00622748EA0265702701 +B1611594547628N00622763EA0266002703 +B1612014547633N00622777EA0266202706 +B1612034547638N00622790EA0266202707 +B1612054547645N00622805EA0265902706 +B1612074547650N00622820EA0265802705 +B1612094547655N00622834EA0265602703 +B1612114547660N00622850EA0265002700 +B1612134547666N00622868EA0264302695 +B1612154547670N00622885EA0263702688 +B1612174547677N00622901EA0263302683 +B1612194547687N00622912EA0262802677 +B1612214547699N00622919EA0262302672 +B1612234547712N00622926EA0261702666 +B1612254547725N00622934EA0261102659 +B1612274547738N00622942EA0260502653 +B1612294547751N00622950EA0259902646 +B1612314547764N00622955EA0259402641 +B1612334547776N00622959EA0258802634 +B1612354547790N00622965EA0258202627 +B1612374547803N00622972EA0258002622 +B1612394547814N00622981EA0257702618 +B1612414547823N00622989EA0257302613 +B1612434547834N00622995EA0256802608 +B1612454547845N00623001EA0256502604 +B1612474547857N00623006EA0256402601 +B1612494547866N00623010EA0256902599 +B1612514547872N00623011EA0256702597 +B1612534547879N00623008EA0256002594 +B1612554547890N00623009EA0255302589 +B1612574547901N00623014EA0255302587 +B1612594547911N00623018EA0255502587 +B1613014547922N00623024EA0255702589 +B1613034547931N00623033EA0256202592 +B1613054547940N00623039EA0256902598 +B1613074547948N00623043EA0257502605 +B1613094547957N00623039EA0258002612 +B1613114547963N00623025EA0258302617 +B1613134547963N00623007EA0258502620 +B1613154547955N00622992EA0258902624 +B1613174547941N00622992EA0259402628 +B1613194547931N00623004EA0259802634 +B1613214547928N00623019EA0260202638 +B1613234547931N00623034EA0260702644 +B1613254547936N00623047EA0261202649 +B1613274547941N00623061EA0261702655 +B1613294547946N00623073EA0262102659 +B1613314547951N00623087EA0262402663 +B1613334547956N00623101EA0262702666 +B1613354547961N00623115EA0263002669 +B1613374547967N00623129EA0263402672 +B1613394547972N00623143EA0263702676 +B1613414547977N00623158EA0263902678 +B1613434547982N00623173EA0264002680 +B1613454547987N00623188EA0264102681 +B1613474547992N00623203EA0264102681 +B1613494547998N00623218EA0264002680 +B1613514548004N00623236EA0263902680 +B1613534548010N00623250EA0263702679 +B1613554548015N00623266EA0263102676 +B1613574548021N00623284EA0262502672 +B1613594548029N00623299EA0262102668 +B1614014548036N00623313EA0261702663 +B1614034548042N00623331EA0261202658 +B1614054548048N00623349EA0261002654 +B1614074548053N00623365EA0260602651 +B1614094548060N00623383EA0259802645 +B1614114548068N00623402EA0259302640 +B1614134548074N00623419EA0259202636 +B1614154548080N00623435EA0258902633 +B1614174548086N00623453EA0258502629 +B1614194548092N00623470EA0258302626 +B1614214548098N00623487EA0258102623 +B1614234548103N00623504EA0257802621 +B1614254548108N00623522EA0257702619 +B1614274548114N00623539EA0257602618 +B1614294548119N00623555EA0257402616 +B1614314548125N00623573EA0257402614 +B1614334548131N00623590EA0257302613 +B1614354548137N00623607EA0257202613 +B1614374548142N00623625EA0256902611 +B1614394548149N00623643EA0256602608 +B1614414548156N00623661EA0256502606 +B1614434548162N00623678EA0256302604 +B1614454548169N00623696EA0256002601 +B1614474548175N00623715EA0255802599 +B1614494548181N00623733EA0255602597 +B1614514548187N00623751EA0255302595 +B1614534548193N00623769EA0255102592 +B1614554548200N00623787EA0254902590 +B1614574548206N00623804EA0254702588 +B1614594548212N00623822EA0254302584 +B1615014548219N00623840EA0254102582 +B1615034548226N00623858EA0254002580 +B1615054548232N00623875EA0253802578 +B1615074548238N00623893EA0253602576 +B1615094548245N00623911EA0253402575 +B1615114548251N00623928EA0253202573 +B1615134548258N00623946EA0253002570 +B1615154548263N00623965EA0252702567 +B1615174548267N00623984EA0252402564 +B1615194548271N00624003EA0252102561 +B1615214548275N00624021EA0251902558 +B1615234548278N00624040EA0251702556 +B1615254548279N00624059EA0251602555 +B1615274548281N00624077EA0251502553 +B1615294548283N00624098EA0251102550 +B1615314548285N00624120EA0250902548 +B1615334548288N00624140EA0250902547 +B1615354548291N00624159EA0250802546 +B1615374548292N00624179EA0250602544 +B1615394548295N00624198EA0250402543 +B1615414548299N00624217EA0250302542 +B1615434548303N00624236EA0250202540 +B1615454548306N00624256EA0250102539 +B1615474548310N00624274EA0249802538 +B1615494548316N00624292EA0249702536 +B1615514548321N00624310EA0249402533 +B1615534548327N00624328EA0249102530 +B1615554548332N00624347EA0249002529 +B1615574548337N00624364EA0248802527 +B1615594548343N00624382EA0248602524 +B1616014548348N00624401EA0248402522 +B1616034548352N00624419EA0248202520 +B1616054548357N00624437EA0247902518 +B1616074548361N00624455EA0248002517 +B1616094548365N00624472EA0248102517 +B1616114548369N00624486EA0247902515 +B1616134548374N00624501EA0247702514 +B1616154548377N00624516EA0247702513 +B1616174548380N00624531EA0247302511 +B1616194548386N00624547EA0246902507 +B1616214548391N00624563EA0246702505 +B1616234548396N00624579EA0246402503 +B1616254548402N00624593EA0246102500 +B1616274548408N00624610EA0245702496 +B1616294548413N00624627EA0245602494 +B1616314548418N00624644EA0245402492 +B1616334548423N00624660EA0245202490 +B1616354548429N00624676EA0245102489 +B1616374548435N00624691EA0244902487 +B1616394548442N00624706EA0244602484 +B1616414548449N00624721EA0244402483 +B1616434548456N00624735EA0244202480 +B1616454548465N00624748EA0243802476 +B1616474548473N00624762EA0243502473 +B1616494548481N00624774EA0243202471 +B1616514548490N00624786EA0242802467 +B1616534548497N00624801EA0242402463 +B1616554548504N00624817EA0242002459 +B1616574548511N00624832EA0241902457 +B1616594548517N00624847EA0241702455 +B1617014548523N00624861EA0241502453 +B1617034548530N00624874EA0241302451 +B1617054548537N00624887EA0241102448 +B1617074548543N00624901EA0240902446 +B1617094548550N00624914EA0240602443 +B1617114548557N00624927EA0240302440 +B1617134548563N00624942EA0240002437 +B1617154548571N00624956EA0239602433 +B1617174548579N00624969EA0239302430 +B1617194548587N00624981EA0239102428 +B1617214548595N00624994EA0238802425 +B1617234548602N00625006EA0238502422 +B1617254548610N00625019EA0237902418 +B1617274548619N00625031EA0237502413 +B1617294548628N00625043EA0237102409 +B1617314548637N00625055EA0236602405 +B1617334548646N00625069EA0236202400 +B1617354548653N00625083EA0235902397 +B1617374548660N00625098EA0235502393 +B1617394548668N00625112EA0235102388 +B1617414548675N00625128EA0234902385 +B1617434548681N00625144EA0234802383 +B1617454548687N00625159EA0234802382 +B1617474548693N00625172EA0234502379 +B1617494548700N00625184EA0234202377 +B1617514548708N00625196EA0234002375 +B1617534548715N00625207EA0233702372 +B1617554548723N00625219EA0233402369 +B1617574548731N00625230EA0233102366 +B1617594548738N00625241EA0232802363 +B1618014548746N00625253EA0232602361 +B1618034548755N00625263EA0232402358 +B1618054548763N00625274EA0232602358 +B1618074548769N00625288EA0232602359 +B1618094548775N00625299EA0232302358 +B1618114548783N00625313EA0232102355 +B1618134548790N00625329EA0232002355 +B1618154548795N00625342EA0231902354 +B1618174548802N00625354EA0231602351 +B1618194548811N00625367EA0231302348 +B1618214548819N00625378EA0231102346 +B1618234548826N00625388EA0230902344 +B1618254548835N00625398EA0230702342 +B1618274548845N00625408EA0230602341 +B1618294548853N00625417EA0230402339 +B1618314548862N00625426EA0230102336 +B1618334548871N00625437EA0229902334 +B1618354548880N00625447EA0229902334 +B1618374548888N00625458EA0229802333 +B1618394548897N00625467EA0229602331 +B1618414548907N00625477EA0229302328 +B1618434548916N00625487EA0229202327 +B1618454548925N00625497EA0229102326 +B1618474548933N00625508EA0228902324 +B1618494548941N00625519EA0228802323 +B1618514548949N00625529EA0228502321 +B1618534548957N00625539EA0228202318 +B1618554548966N00625549EA0227902315 +B1618574548974N00625562EA0227702312 +B1618594548982N00625574EA0227502310 +B1619014548991N00625584EA0227402308 +B1619034548999N00625595EA0227202306 +B1619054549007N00625605EA0227002304 +B1619074549015N00625614EA0226702302 +B1619094549023N00625625EA0226402299 +B1619114549031N00625634EA0226202297 +B1619134549040N00625643EA0226002295 +B1619154549048N00625652EA0225802292 +B1619174549057N00625660EA0225402288 +B1619194549066N00625668EA0225102286 +B1619214549075N00625677EA0225002284 +B1619234549083N00625687EA0224802282 +B1619254549091N00625699EA0224602280 +B1619274549100N00625712EA0224402278 +B1619294549108N00625723EA0224302276 +B1619314549117N00625734EA0224002274 +B1619334549126N00625744EA0224002273 +B1619354549134N00625753EA0223802272 +B1619374549143N00625762EA0223802271 +B1619394549152N00625771EA0223702271 +B1619414549161N00625779EA0223702270 +B1619434549170N00625787EA0223702270 +B1619454549178N00625794EA0223702270 +B1619474549186N00625801EA0223802271 +B1619494549194N00625809EA0224002272 +B1619514549202N00625817EA0224002272 +B1619534549209N00625825EA0224302274 +B1619554549216N00625832EA0224502277 +B1619574549222N00625838EA0224502279 +B1619594549230N00625844EA0224302279 +B1620014549239N00625849EA0224102277 +B1620034549248N00625856EA0223902275 +B1620054549256N00625864EA0223702273 +B1620074549266N00625873EA0223502270 +B1620094549275N00625882EA0223302268 +B1620114549284N00625892EA0223102266 +B1620134549294N00625901EA0222902264 +B1620154549303N00625910EA0222802262 +B1620174549310N00625921EA0222602260 +B1620194549318N00625931EA0222102257 +B1620214549328N00625938EA0221602252 +B1620234549337N00625947EA0221302249 +B1620254549346N00625957EA0221002245 +B1620274549355N00625965EA0220702242 +B1620294549365N00625975EA0220502239 +B1620314549373N00625986EA0220302237 +B1620334549382N00625997EA0220102234 +B1620354549391N00626008EA0220002233 +B1620374549400N00626018EA0219802231 +B1620394549409N00626026EA0219602229 +B1620414549418N00626037EA0219402226 +B1620434549429N00626047EA0219302225 +B1620454549438N00626054EA0219302225 +B1620474549447N00626061EA0219002223 +B1620494549456N00626068EA0218802221 +B1620514549465N00626075EA0218602218 +B1620534549474N00626081EA0218302215 +B1620554549484N00626089EA0218002212 +B1620574549492N00626095EA0218102211 +B1620594549499N00626101EA0218002210 +B1621014549506N00626110EA0217602208 +B1621034549513N00626120EA0217302205 +B1621054549521N00626129EA0217302204 +B1621074549528N00626139EA0217302204 +B1621094549535N00626149EA0217102202 +B1621114549542N00626158EA0216902200 +B1621134549550N00626166EA0216502197 +B1621154549559N00626174EA0216202194 +B1621174549568N00626180EA0216102192 +B1621194549575N00626185EA0215802190 +B1621214549583N00626189EA0215502187 +B1621234549592N00626193EA0215202184 +B1621254549601N00626200EA0215002182 +B1621274549608N00626207EA0214702179 +B1621294549616N00626212EA0214102175 +B1621314549624N00626218EA0213602170 +B1621334549632N00626224EA0213302167 +B1621354549639N00626228EA0212902163 +B1621374549647N00626230EA0212402158 +B1621394549655N00626231EA0211902153 +B1621414549663N00626233EA0211402148 +B1621434549670N00626230EA0210902143 +B1621454549677N00626224EA0210502138 +B1621474549685N00626218EA0210402134 +B1621494549692N00626214EA0210302132 +B1621514549697N00626211EA0210502131 +B1621534549701N00626207EA0210702134 +B1621554549704N00626204EA0210702135 +B1621574549709N00626201EA0210702135 +B1621594549714N00626200EA0210702136 +B1622014549720N00626200EA0210902138 +B1622034549726N00626203EA0211002139 +B1622054549733N00626206EA0211202142 +B1622074549739N00626211EA0211402144 +B1622094549746N00626216EA0211402145 +B1622114549752N00626222EA0211602147 +B1622134549758N00626229EA0211702148 +B1622154549764N00626235EA0211602149 +B1622174549770N00626241EA0211602149 +B1622194549777N00626247EA0211702149 +B1622214549784N00626254EA0211802150 +B1622234549791N00626261EA0211902150 +B1622254549798N00626268EA0211902151 +B1622274549805N00626275EA0212002152 +B1622294549812N00626282EA0212202154 +B1622314549819N00626289EA0212402156 +B1622334549825N00626298EA0212702158 +B1622354549831N00626307EA0213002161 +B1622374549837N00626317EA0213302164 +B1622394549843N00626328EA0213602167 +B1622414549849N00626338EA0213802169 +B1622434549855N00626348EA0214002172 +B1622454549862N00626358EA0214302174 +B1622474549867N00626369EA0214602177 +B1622494549873N00626379EA0215102182 +B1622514549879N00626390EA0215502185 +B1622534549884N00626403EA0215802189 +B1622554549891N00626414EA0216102192 +B1622574549898N00626418EA0216502196 +B1622594549905N00626411EA0216602199 +B1623014549903N00626396EA0216902202 +B1623034549892N00626390EA0217302206 +B1623054549878N00626392EA0217402208 +B1623074549867N00626392EA0217602209 +B1623094549857N00626384EA0217602210 +B1623114549852N00626374EA0217802211 +B1623134549854N00626366EA0217702212 +B1623154549864N00626368EA0217602212 +B1623174549873N00626381EA0217702212 +B1623194549879N00626398EA0217902214 +B1623214549884N00626412EA0218102216 +B1623234549889N00626425EA0218202217 +B1623254549894N00626439EA0218602219 +B1623274549898N00626455EA0219102223 +B1623294549902N00626470EA0219602227 +B1623314549909N00626480EA0219702230 +B1623334549919N00626479EA0219802232 +B1623354549920N00626468EA0219702232 +B1623374549911N00626459EA0219502233 +B1623394549899N00626454EA0219502233 +B1623414549891N00626444EA0219502231 +B1623434549889N00626431EA0219702232 +B1623454549892N00626424EA0219702232 +B1623474549897N00626420EA0219602231 +B1623494549907N00626424EA0219302228 +B1623514549915N00626443EA0219102226 +B1623534549914N00626465EA0219202226 +B1623554549911N00626483EA0219202226 +B1623574549911N00626502EA0219002224 +B1623594549913N00626523EA0218802222 +B1624014549916N00626544EA0219102222 +B1624034549919N00626563EA0219602224 +B1624054549922N00626580EA0219902226 +B1624074549926N00626598EA0220002228 +B1624094549933N00626614EA0220202230 +B1624114549941N00626622EA0220402232 +B1624134549952N00626619EA0220302232 +B1624154549952N00626608EA0220402234 +B1624174549942N00626601EA0220502235 +B1624194549931N00626598EA0220602238 +B1624214549922N00626593EA0220802239 +B1624234549916N00626587EA0221102241 +B1624254549910N00626581EA0221202243 +B1624274549904N00626574EA0221302244 +B1624294549899N00626565EA0221502246 +B1624314549896N00626556EA0221802249 +B1624334549892N00626548EA0222002251 +B1624354549888N00626539EA0222102253 +B1624374549889N00626531EA0221902253 +B1624394549901N00626533EA0221602252 +B1624414549907N00626555EA0221602251 +B1624434549906N00626578EA0222102253 +B1624454549905N00626596EA0222502255 +B1624474549907N00626612EA0222702258 +B1624494549910N00626627EA0222802259 +B1624514549917N00626641EA0222702259 +B1624534549928N00626642EA0222602258 +B1624554549933N00626632EA0222502257 +B1624574549926N00626620EA0222602257 +B1624594549916N00626613EA0223102259 +B1625014549907N00626607EA0223402263 +B1625034549900N00626599EA0223602266 +B1625054549893N00626592EA0223702267 +B1625074549886N00626583EA0224002270 +B1625094549880N00626575EA0224202272 +B1625114549875N00626566EA0224302273 +B1625134549870N00626556EA0224302274 +B1625154549867N00626547EA0224302275 +B1625174549870N00626538EA0224202274 +B1625194549880N00626541EA0224202274 +B1625214549887N00626563EA0224502274 +B1625234549887N00626585EA0225102278 +B1625254549889N00626600EA0225302281 +B1625274549893N00626616EA0225502283 +B1625294549896N00626633EA0225802286 +B1625314549901N00626646EA0226002290 +B1625334549910N00626649EA0226002292 +B1625354549916N00626642EA0226102293 +B1625374549915N00626631EA0226302296 +B1625394549906N00626622EA0226502298 +B1625414549897N00626615EA0226802300 +B1625434549890N00626606EA0227102303 +B1625454549883N00626597EA0227402307 +B1625474549875N00626590EA0227702310 +B1625494549870N00626582EA0227702311 +B1625514549869N00626575EA0227602311 +B1625534549878N00626576EA0227502310 +B1625554549887N00626589EA0227502310 +B1625574549894N00626606EA0227702311 +B1625594549901N00626618EA0227802312 +B1626014549909N00626628EA0228002313 +B1626034549917N00626637EA0228202315 +B1626054549925N00626642EA0228302316 +B1626074549934N00626647EA0228402317 +B1626094549943N00626652EA0228502318 +B1626114549950N00626659EA0228402318 +B1626134549958N00626667EA0228302317 +B1626154549966N00626674EA0228202316 +B1626174549975N00626684EA0228102314 +B1626194549984N00626693EA0228202314 +B1626214549994N00626702EA0228202314 +B1626234550003N00626710EA0228202314 +B1626254550012N00626718EA0228102313 +B1626274550022N00626725EA0228102312 +B1626294550032N00626732EA0228202313 +B1626314550041N00626737EA0228402314 +B1626334550049N00626740EA0228502315 +B1626354550057N00626743EA0228502316 +B1626374550066N00626746EA0228402316 +B1626394550075N00626750EA0228102314 +B1626414550084N00626754EA0227902312 +B1626434550093N00626758EA0227602309 +B1626454550103N00626761EA0227302306 +B1626474550113N00626764EA0226902302 +B1626494550123N00626764EA0226702299 +B1626514550134N00626765EA0226602297 +B1626534550144N00626769EA0226602297 +B1626554550152N00626772EA0226502296 +B1626574550162N00626776EA0226102293 +B1626594550174N00626780EA0225902291 +B1627014550184N00626784EA0225902290 +B1627034550193N00626789EA0225702289 +B1627054550202N00626795EA0225402287 +B1627074550213N00626798EA0225102284 +B1627094550223N00626800EA0224902282 +B1627114550232N00626800EA0224602279 +B1627134550242N00626802EA0224302276 +B1627154550252N00626805EA0224002273 +B1627174550261N00626806EA0223602269 +B1627194550271N00626807EA0223202265 +B1627214550281N00626807EA0222802261 +B1627234550290N00626809EA0222302256 +B1627254550301N00626814EA0221702250 +B1627274550311N00626822EA0221302246 +B1627294550320N00626832EA0221102242 +B1627314550328N00626843EA0220702239 +B1627334550336N00626852EA0220402235 +B1627354550345N00626858EA0220102232 +B1627374550352N00626865EA0219702229 +B1627394550357N00626878EA0219302225 +B1627414550356N00626895EA0218902221 +B1627434550351N00626913EA0218702218 +B1627454550343N00626929EA0218602216 +B1627474550334N00626943EA0218502214 +B1627494550324N00626956EA0218402213 +B1627514550312N00626964EA0218302211 +B1627534550299N00626971EA0218202210 +B1627554550287N00626976EA0218102209 +B1627574550275N00626982EA0218002209 +B1627594550263N00626987EA0217802207 +B1628014550251N00626989EA0217602205 +B1628034550239N00626986EA0217402204 +B1628054550229N00626982EA0217302203 +B1628074550219N00626976EA0217102202 +B1628094550210N00626968EA0217102201 +B1628114550201N00626960EA0217302201 +B1628134550193N00626952EA0217702204 +B1628154550187N00626945EA0218002207 +B1628174550179N00626939EA0218202210 +B1628194550170N00626934EA0218402212 +B1628214550163N00626928EA0218602214 +B1628234550161N00626919EA0218602216 +B1628254550170N00626915EA0218602216 +B1628274550179N00626927EA0218402216 +B1628294550185N00626941EA0218402216 +B1628314550192N00626948EA0218202216 +B1628334550199N00626946EA0217802214 +B1628354550201N00626933EA0217502211 +B1628374550194N00626921EA0217302209 +B1628394550184N00626913EA0217202207 +B1628414550172N00626906EA0217202206 +B1628434550162N00626898EA0217302207 +B1628454550152N00626888EA0217202206 +B1628474550142N00626878EA0217002204 +B1628494550134N00626868EA0216902203 +B1628514550128N00626857EA0216802203 +B1628534550122N00626847EA0216702202 +B1628554550117N00626837EA0216502201 +B1628574550111N00626825EA0216402199 +B1628594550105N00626813EA0216302198 +B1629014550099N00626802EA0216302198 +B1629034550094N00626792EA0216402199 +B1629054550088N00626783EA0216602201 +B1629074550081N00626776EA0216802203 +B1629094550075N00626771EA0216902204 +B1629114550069N00626763EA0217102206 +B1629134550062N00626756EA0217302207 +B1629154550054N00626750EA0217402210 +B1629174550046N00626744EA0217502211 +B1629194550039N00626738EA0217702212 +B1629214550032N00626729EA0218002214 +B1629234550025N00626722EA0218402218 +B1629254550019N00626716EA0218802222 +B1629274550017N00626707EA0219202226 +B1629294550017N00626699EA0219502230 +B1629314550019N00626692EA0219702233 +B1629334550028N00626691EA0219702235 +B1629354550040N00626704EA0220102237 +B1629374550042N00626722EA0220502241 +B1629394550042N00626739EA0220602243 +B1629414550050N00626750EA0220402244 +B1629434550061N00626747EA0220202243 +B1629454550063N00626734EA0220102243 +B1629474550050N00626725EA0220102243 +B1629494550037N00626724EA0220402244 +B1629514550027N00626724EA0220802247 +B1629534550018N00626722EA0220902248 +B1629554550010N00626719EA0220902248 +B1629574550002N00626715EA0221002248 +B1629594549994N00626711EA0221202250 +B1630014549986N00626708EA0221402251 +B1630034549977N00626707EA0221502253 +B1630054549967N00626705EA0221602254 +B1630074549958N00626702EA0221702255 +B1630094549949N00626698EA0221902256 +B1630114549941N00626691EA0222002257 +B1630134549932N00626684EA0222202259 +B1630154549924N00626676EA0222702262 +B1630174549917N00626668EA0223002266 +B1630194549912N00626661EA0223202267 +B1630214549911N00626652EA0223102268 +B1630234549920N00626648EA0223102269 +B1630254549930N00626660EA0223102269 +B1630274549937N00626675EA0223202271 +B1630294549944N00626686EA0223402272 +B1630314549951N00626695EA0223502272 +B1630334549958N00626702EA0223402272 +B1630354549966N00626708EA0223402271 +B1630374549974N00626714EA0223402271 +B1630394549982N00626718EA0223402270 +B1630414549990N00626722EA0223402271 +B1630434549998N00626726EA0223402270 +B1630454550006N00626729EA0223302270 +B1630474550013N00626731EA0223102268 +B1630494550017N00626727EA0222802265 +B1630514550014N00626715EA0222502262 +B1630534550004N00626708EA0222502260 +B1630554549992N00626708EA0222702260 +B1630574549980N00626710EA0222702260 +B1630594549970N00626709EA0222802261 +B1631014549960N00626707EA0222902263 +B1631034549951N00626705EA0222802263 +B1631054549943N00626700EA0222802263 +B1631074549935N00626692EA0222802264 +B1631094549930N00626683EA0222702263 +B1631114549925N00626672EA0222602262 +B1631134549921N00626662EA0222502262 +B1631154549917N00626651EA0222502261 +B1631174549912N00626640EA0222502261 +B1631194549908N00626629EA0222702262 +B1631214549904N00626619EA0222602262 +B1631234549901N00626607EA0222602261 +B1631254549897N00626594EA0222502260 +B1631274549893N00626579EA0222502260 +B1631294549887N00626566EA0222602261 +B1631314549882N00626554EA0222702262 +B1631334549877N00626540EA0222802263 +B1631354549872N00626528EA0223002265 +B1631374549865N00626518EA0223202266 +B1631394549855N00626510EA0223302268 +B1631414549849N00626499EA0223402269 +B1631434549853N00626491EA0223602271 +B1631454549859N00626492EA0223802273 +B1631474549866N00626500EA0223902275 +B1631494549869N00626514EA0224102276 +B1631514549871N00626531EA0224302279 +B1631534549874N00626546EA0224602281 +B1631554549882N00626548EA0224702283 +B1631574549888N00626542EA0225102286 +B1631594549889N00626531EA0225502291 +B1632014549890N00626520EA0225902295 +B1632034549894N00626513EA0226102297 +B1632054549890N00626503EA0226002299 +B1632074549877N00626503EA0225802301 +B1632094549865N00626520EA0225702301 +B1632114549867N00626542EA0225602300 +B1632134549871N00626563EA0226102303 +B1632154549875N00626578EA0226602307 +B1632174549880N00626591EA0226802309 +B1632194549885N00626603EA0226902309 +B1632214549893N00626606EA0226702309 +B1632234549897N00626597EA0226502306 +B1632254549896N00626584EA0226502305 +B1632274549887N00626573EA0226602305 +B1632294549880N00626563EA0226702305 +B1632314549876N00626551EA0226702305 +B1632334549872N00626540EA0226902305 +B1632354549865N00626531EA0227002306 +B1632374549860N00626521EA0227002306 +B1632394549854N00626511EA0227202307 +B1632414549846N00626504EA0227102307 +B1632434549837N00626499EA0226802306 +B1632454549830N00626489EA0226202303 +B1632474549829N00626477EA0225802299 +B1632494549839N00626474EA0225602296 +B1632514549847N00626482EA0225502293 +B1632534549853N00626497EA0225602293 +B1632554549858N00626513EA0225702293 +B1632574549862N00626530EA0226002294 +B1632594549865N00626544EA0226402297 +B1633014549869N00626554EA0226702299 +B1633034549875N00626561EA0226802301 +B1633054549881N00626555EA0226702301 +B1633074549879N00626544EA0226902302 +B1633094549870N00626537EA0227102304 +B1633114549859N00626533EA0227402306 +B1633134549850N00626526EA0227702310 +B1633154549844N00626518EA0227602311 +B1633174549842N00626508EA0227202311 +B1633194549851N00626508EA0226902308 +B1633214549860N00626523EA0226802307 +B1633234549863N00626540EA0226902307 +B1633254549865N00626555EA0226802305 +B1633274549870N00626569EA0226702303 +B1633294549875N00626583EA0226702303 +B1633314549882N00626597EA0226802303 +B1633334549889N00626605EA0227002304 +B1633354549895N00626600EA0227002304 +B1633374549895N00626588EA0227002305 +B1633394549893N00626577EA0227102305 +B1633414549891N00626566EA0227102305 +B1633434549887N00626555EA0227102305 +B1633454549883N00626543EA0227202306 +B1633474549878N00626532EA0227102307 +B1633494549872N00626522EA0227002306 +B1633514549861N00626514EA0227002306 +B1633534549850N00626508EA0227002305 +B1633554549840N00626502EA0226902305 +B1633574549829N00626495EA0226802303 +B1633594549824N00626485EA0226502301 +B1634014549824N00626474EA0226302299 +B1634034549830N00626469EA0226302298 +B1634054549839N00626477EA0226302298 +B1634074549845N00626490EA0226202297 +B1634094549850N00626507EA0226202297 +B1634114549855N00626523EA0226102296 +B1634134549860N00626538EA0226102296 +B1634154549865N00626554EA0226002295 +B1634174549870N00626568EA0225902295 +B1634194549876N00626582EA0226002295 +B1634214549882N00626596EA0226302296 +B1634234549886N00626609EA0226702300 +B1634254549890N00626619EA0226802302 +B1634274549897N00626625EA0226702302 +B1634294549906N00626621EA0226402301 +B1634314549906N00626607EA0226402300 +B1634334549896N00626596EA0226502300 +B1634354549885N00626590EA0226802302 +B1634374549874N00626586EA0227002303 +B1634394549864N00626581EA0226902303 +B1634414549857N00626572EA0226802303 +B1634434549856N00626561EA0226802302 +B1634454549863N00626559EA0226702301 +B1634474549871N00626569EA0226702301 +B1634494549877N00626585EA0226902303 +B1634514549880N00626601EA0227102305 +B1634534549884N00626616EA0227402308 +B1634554549890N00626631EA0227702311 +B1634574549895N00626645EA0228002314 +B1634594549902N00626654EA0228002316 +B1635014549909N00626651EA0227702316 +B1635034549909N00626637EA0227602316 +B1635054549899N00626627EA0227702316 +B1635074549887N00626624EA0228102318 +B1635094549876N00626623EA0228102319 +B1635114549868N00626619EA0227802319 +B1635134549863N00626609EA0227702317 +B1635154549864N00626601EA0227802316 +B1635174549870N00626599EA0227802316 +B1635194549879N00626604EA0227902316 +B1635214549888N00626612EA0228102317 +B1635234549895N00626620EA0228302319 +B1635254549902N00626623EA0228302320 +B1635274549907N00626619EA0228302319 +B1635294549910N00626609EA0228302319 +B1635314549913N00626599EA0228202319 +B1635334549916N00626590EA0228202318 +B1635354549918N00626579EA0228102316 +B1635374549921N00626568EA0228002316 +B1635394549925N00626556EA0228002315 +B1635414549927N00626544EA0227802314 +B1635434549925N00626532EA0227702313 +B1635454549913N00626525EA0227302311 +B1635474549898N00626529EA0227102310 +B1635494549887N00626543EA0227002308 +B1635514549881N00626562EA0226802306 +B1635534549880N00626583EA0226802305 +B1635554549884N00626603EA0226902305 +B1635574549890N00626619EA0227102307 +B1635594549897N00626631EA0227302308 +B1636014549905N00626640EA0227302309 +B1636034549913N00626648EA0227402310 +B1636054549921N00626657EA0227502311 +B1636074549928N00626665EA0227702313 +B1636094549934N00626672EA0227702314 +B1636114549940N00626678EA0227602313 +B1636134549947N00626690EA0227502312 +B1636154549953N00626709EA0227402311 +B1636174549955N00626730EA0227302310 +B1636194549957N00626752EA0227202308 +B1636214549957N00626776EA0226902306 +B1636234549956N00626802EA0226802304 +B1636254549956N00626828EA0226702302 +B1636274549955N00626854EA0226802302 +B1636294549954N00626880EA0226802302 +B1636314549952N00626907EA0226802301 +B1636334549949N00626935EA0226602300 +B1636354549946N00626961EA0226202298 +B1636374549941N00626987EA0225402295 +B1636394549934N00627014EA0225002292 +B1636414549929N00627035EA0224602287 +B1636434549926N00627056EA0223502282 +B1636454549923N00627081EA0222402275 +B1636474549920N00627105EA0221702268 +B1636494549919N00627126EA0220802259 +B1636514549917N00627147EA0219802247 +B1636534549918N00627169EA0219002237 +B1636554549920N00627192EA0218202228 +B1636574549920N00627213EA0217402219 +B1636594549921N00627233EA0216802211 +B1637014549923N00627252EA0216102203 +B1637034549925N00627271EA0215302193 +B1637054549927N00627292EA0214802186 +B1637074549930N00627309EA0214502179 +B1637094549933N00627325EA0213802171 +B1637114549937N00627345EA0213402164 +B1637134549941N00627365EA0213102159 +B1637154549944N00627384EA0212602154 +B1637174549946N00627403EA0212102150 +B1637194549947N00627420EA0211602145 +B1637214549947N00627439EA0211102139 +B1637234549947N00627458EA0211002135 +B1637254549947N00627474EA0210802133 +B1637274549948N00627490EA0210502129 +B1637294549949N00627509EA0210202127 +B1637314549950N00627526EA0210202126 +B1637334549954N00627542EA0210002125 +B1637354549957N00627558EA0209602122 +B1637374549961N00627576EA0209402120 +B1637394549964N00627592EA0209102117 +B1637414549967N00627609EA0208702114 +B1637434549970N00627626EA0208302111 +B1637454549973N00627641EA0208002108 +B1637474549977N00627656EA0207502103 +B1637494549982N00627671EA0207202100 +B1637514549986N00627685EA0206902097 +B1637534549989N00627699EA0206502093 +B1637554549992N00627715EA0206002089 +B1637574549997N00627732EA0205702086 +B1637594550000N00627748EA0205502083 +B1638014550002N00627765EA0205102080 +B1638034550007N00627780EA0204802076 +B1638054550011N00627796EA0204302072 +B1638074550014N00627813EA0204002068 +B1638094550018N00627830EA0203902065 +B1638114550022N00627844EA0203702063 +B1638134550024N00627858EA0203402060 +B1638154550027N00627873EA0203102057 +B1638174550032N00627887EA0202902055 +B1638194550036N00627899EA0202502052 +B1638214550041N00627913EA0202102048 +B1638234550045N00627929EA0201902046 +B1638254550047N00627945EA0201802044 +B1638274550050N00627959EA0201502042 +B1638294550054N00627974EA0201102038 +B1638314550058N00627990EA0201002037 +B1638334550062N00628005EA0201002036 +B1638354550063N00628021EA0200702034 +B1638374550066N00628037EA0200402032 +B1638394550071N00628054EA0200402031 +B1638414550073N00628069EA0200302030 +B1638434550074N00628085EA0199902028 +B1638454550076N00628102EA0199702026 +B1638474550079N00628118EA0199702025 +B1638494550080N00628132EA0199702024 +B1638514550083N00628147EA0199402021 +B1638534550086N00628163EA0199102019 +B1638554550087N00628181EA0198902017 +B1638574550089N00628199EA0198502013 +B1638594550091N00628217EA0198202011 +B1639014550093N00628234EA0198002009 +B1639034550095N00628250EA0197802006 +B1639054550096N00628267EA0197402003 +B1639074550098N00628285EA0197202000 +B1639094550101N00628302EA0197001998 +B1639114550103N00628318EA0196701996 +B1639134550106N00628336EA0196501993 +B1639154550108N00628354EA0196301991 +B1639174550110N00628370EA0196001988 +B1639194550111N00628388EA0195601984 +B1639214550113N00628407EA0195201981 +B1639234550115N00628425EA0195001978 +B1639254550118N00628443EA0194701976 +B1639274550120N00628461EA0194401973 +B1639294550120N00628481EA0194301971 +B1639314550121N00628500EA0194101969 +B1639334550123N00628519EA0193901967 +B1639354550125N00628539EA0193701965 +B1639374550129N00628557EA0193801965 +B1639394550134N00628573EA0193901966 +B1639414550139N00628589EA0194001968 +B1639434550145N00628604EA0194101969 +B1639454550151N00628618EA0194301970 +B1639474550156N00628633EA0194401972 +B1639494550161N00628647EA0194601974 +B1639514550168N00628657EA0194601975 +B1639534550178N00628653EA0194301975 +B1639554550184N00628642EA0194301974 +B1639574550182N00628630EA0194501975 +B1639594550172N00628622EA0194501976 +B1640014550160N00628626EA0194601977 +B1640034550151N00628638EA0194701978 +B1640054550146N00628656EA0194901980 +B1640074550147N00628674EA0195001981 +B1640094550154N00628689EA0195101982 +B1640114550165N00628695EA0195201983 +B1640134550175N00628689EA0195201984 +B1640154550179N00628678EA0195201984 +B1640174550174N00628666EA0195301984 +B1640194550162N00628664EA0195301984 +B1640214550150N00628675EA0195301984 +B1640234550143N00628691EA0195501985 +B1640254550138N00628708EA0195501985 +B1640274550134N00628727EA0195501985 +B1640294550130N00628749EA0195801987 +B1640314550128N00628768EA0196001989 +B1640334550127N00628783EA0196001989 +B1640354550125N00628801EA0196001990 +B1640374550122N00628817EA0196301992 +B1640394550117N00628829EA0196301994 +B1640414550113N00628841EA0196401994 +B1640434550108N00628855EA0196401995 +B1640454550105N00628868EA0196701997 +B1640474550104N00628882EA0196801998 +B1640494550113N00628891EA0196701998 +B1640514550126N00628890EA0196701998 +B1640534550134N00628877EA0196801999 +B1640554550132N00628862EA0196902000 +B1640574550122N00628854EA0196902000 +B1640594550111N00628860EA0197002000 +B1641014550104N00628872EA0197302002 +B1641034550102N00628885EA0197502005 +B1641054550102N00628897EA0197502006 +B1641074550105N00628911EA0197402005 +B1641094550116N00628919EA0197402004 +B1641114550129N00628916EA0197502004 +B1641134550138N00628904EA0197602006 +B1641154550140N00628889EA0197702007 +B1641174550135N00628876EA0197702007 +B1641194550123N00628873EA0197702007 +B1641214550112N00628882EA0197802009 +B1641234550109N00628898EA0198002010 +B1641254550112N00628913EA0198002011 +B1641274550122N00628923EA0198102011 +B1641294550135N00628921EA0198202012 +B1641314550144N00628909EA0198202013 +B1641334550146N00628894EA0198402014 +B1641354550138N00628882EA0198602016 +B1641374550127N00628883EA0198802018 +B1641394550120N00628895EA0199002020 +B1641414550121N00628911EA0199002022 +B1641434550130N00628923EA0199002022 +B1641454550144N00628925EA0199102023 +B1641474550155N00628917EA0199202024 +B1641494550160N00628903EA0199402026 +B1641514550160N00628889EA0199502027 +B1641534550156N00628875EA0199502028 +B1641554550147N00628866EA0199502029 +B1641574550134N00628868EA0199602029 +B1641594550123N00628876EA0199702029 +B1642014550114N00628888EA0200002032 +B1642034550110N00628901EA0200302035 +B1642054550107N00628913EA0200402036 +B1642074550107N00628927EA0200302036 +B1642094550114N00628942EA0200202036 +B1642114550129N00628946EA0200202036 +B1642134550139N00628937EA0200202036 +B1642154550143N00628923EA0200302036 +B1642174550139N00628910EA0200502038 +B1642194550129N00628902EA0200702040 +B1642214550119N00628900EA0200902042 +B1642234550109N00628901EA0201102045 +B1642254550100N00628904EA0201302047 +B1642274550092N00628908EA0201202048 +B1642294550086N00628919EA0201102047 +B1642314550084N00628935EA0201102047 +B1642334550094N00628948EA0200902045 +B1642354550105N00628951EA0200802043 +B1642374550116N00628943EA0200702041 +B1642394550120N00628928EA0200702041 +B1642414550113N00628916EA0200802041 +B1642434550104N00628910EA0201002043 +B1642454550096N00628908EA0201102044 +B1642474550086N00628910EA0201102044 +B1642494550078N00628920EA0201202044 +B1642514550074N00628934EA0201102044 +B1642534550073N00628949EA0201002043 +B1642554550071N00628966EA0200902042 +B1642574550069N00628984EA0201002043 +B1642594550067N00628999EA0200902043 +B1643014550064N00629015EA0200602041 +B1643034550062N00629032EA0200502039 +B1643054550060N00629049EA0200402039 +B1643074550057N00629065EA0200202036 +B1643094550053N00629082EA0200102034 +B1643114550049N00629099EA0200102034 +B1643134550045N00629113EA0200002033 +B1643154550041N00629128EA0199702030 +B1643174550038N00629145EA0199502028 +B1643194550036N00629160EA0199402027 +B1643214550034N00629175EA0199202025 +B1643234550032N00629191EA0199102023 +B1643254550030N00629208EA0199002022 +B1643274550027N00629225EA0199102022 +B1643294550024N00629241EA0199102022 +B1643314550020N00629257EA0199002021 +B1643334550016N00629274EA0199202022 +B1643354550014N00629290EA0199702025 +B1643374550012N00629303EA0200002028 +B1643394550008N00629314EA0200202031 +B1643414550002N00629320EA0200102032 +B1643434549993N00629310EA0199802030 +B1643454549990N00629292EA0199702029 +B1643474549997N00629276EA0199702029 +B1643494550010N00629272EA0199802029 +B1643514550022N00629280EA0199802029 +B1643534550030N00629294EA0200002030 +B1643554550034N00629310EA0200402033 +B1643574550037N00629324EA0200702037 +B1643594550040N00629337EA0200902039 +B1644014550041N00629352EA0201102041 +B1644034550042N00629369EA0201402044 +B1644054550042N00629383EA0201702047 +B1644074550048N00629394EA0201702049 +B1644094550061N00629396EA0201702050 +B1644114550070N00629386EA0201802051 +B1644134550073N00629370EA0201702051 +B1644154550068N00629356EA0201802051 +B1644174550058N00629352EA0201802051 +B1644194550047N00629359EA0201902052 +B1644214550040N00629371EA0202302054 +B1644234550035N00629385EA0202702058 +B1644254550030N00629398EA0203002061 +B1644274550026N00629410EA0203302064 +B1644294550021N00629422EA0203602067 +B1644314550016N00629432EA0204002071 +B1644334550011N00629442EA0204302074 +B1644354550007N00629454EA0204702078 +B1644374550004N00629464EA0205002082 +B1644394550003N00629475EA0205202085 +B1644414550007N00629488EA0205302086 +B1644434550019N00629494EA0205502088 +B1644454550030N00629486EA0205602089 +B1644474550035N00629472EA0205802091 +B1644494550031N00629457EA0205902092 +B1644514550024N00629446EA0206202095 +B1644534550016N00629438EA0206502098 +B1644554550007N00629434EA0206802101 +B1644574549996N00629434EA0207202104 +B1644594549986N00629434EA0207602108 +B1645014549976N00629435EA0207902112 +B1645034549967N00629439EA0208302116 +B1645054549961N00629454EA0208502118 +B1645074549962N00629470EA0208602120 +B1645094549971N00629483EA0208802122 +B1645114549984N00629487EA0209102125 +B1645134549993N00629477EA0209202127 +B1645154549992N00629463EA0209402128 +B1645174549982N00629455EA0209602130 +B1645194549972N00629458EA0209802132 +B1645214549963N00629464EA0210002134 +B1645234549957N00629474EA0210102135 +B1645254549953N00629488EA0210102135 +B1645274549957N00629504EA0210202136 +B1645294549969N00629516EA0210402138 +B1645314549983N00629515EA0210602140 +B1645334549991N00629504EA0210702141 +B1645354549992N00629490EA0210802143 +B1645374549988N00629480EA0210902143 +B1645394549981N00629473EA0211002145 +B1645414549974N00629471EA0211102145 +B1645434549965N00629472EA0211202146 +B1645454549956N00629476EA0211202147 +B1645474549948N00629482EA0211102146 +B1645494549940N00629492EA0210802144 +B1645514549935N00629508EA0210902143 +B1645534549930N00629528EA0211302144 +B1645554549927N00629545EA0211402146 +B1645574549925N00629560EA0211102145 +B1645594549923N00629578EA0210702143 +B1646014549919N00629597EA0210502141 +B1646034549916N00629614EA0210502141 +B1646054549912N00629630EA0210302139 +B1646074549908N00629649EA0210102136 +B1646094549905N00629669EA0210202136 +B1646114549902N00629687EA0210102135 +B1646134549899N00629706EA0209902133 +B1646154549896N00629724EA0209902132 +B1646174549894N00629743EA0209802131 +B1646194549892N00629763EA0209802130 +B1646214549888N00629783EA0209902131 +B1646234549885N00629802EA0210102132 +B1646254549880N00629817EA0210002133 +B1646274549875N00629833EA0209802132 +B1646294549871N00629853EA0209602130 +B1646314549866N00629870EA0209502129 +B1646334549860N00629885EA0209202127 +B1646354549855N00629901EA0208702123 +B1646374549850N00629919EA0208502120 +B1646394549847N00629936EA0208002116 +B1646414549843N00629953EA0207602111 +B1646434549839N00629971EA0207402107 +B1646454549834N00629987EA0207202105 +B1646474549830N00630002EA0206802101 +B1646494549828N00630020EA0206402097 +B1646514549824N00630037EA0206002093 +B1646534549821N00630054EA0205702090 +B1646554549818N00630072EA0205402086 +B1646574549815N00630089EA0205102083 +B1646594549813N00630107EA0204802079 +B1647014549810N00630125EA0204302075 +B1647034549807N00630143EA0204102072 +B1647054549804N00630160EA0203802069 +B1647074549800N00630177EA0203402066 +B1647094549797N00630194EA0203102062 +B1647114549794N00630211EA0202902060 +B1647134549791N00630227EA0202702058 +B1647154549789N00630243EA0202402054 +B1647174549786N00630260EA0202202052 +B1647194549784N00630277EA0202102051 +B1647214549782N00630293EA0202002049 +B1647234549779N00630310EA0201902048 +B1647254549776N00630326EA0201902048 +B1647274549772N00630343EA0201802047 +B1647294549769N00630359EA0201602045 +B1647314549766N00630376EA0201402044 +B1647334549763N00630394EA0201402043 +B1647354549760N00630410EA0201202042 +B1647374549756N00630427EA0201102040 +B1647394549751N00630444EA0201002039 +B1647414549746N00630461EA0201002039 +B1647434549742N00630476EA0200902038 +B1647454549738N00630492EA0200802037 +B1647474549734N00630509EA0200602035 +B1647494549731N00630527EA0200502035 +B1647514549728N00630545EA0200502034 +B1647534549725N00630561EA0200402033 +B1647554549720N00630579EA0200202031 +B1647574549715N00630597EA0200102031 +B1647594549712N00630614EA0200102030 +B1648014549708N00630632EA0200002029 +B1648034549704N00630649EA0200102029 +B1648054549701N00630665EA0200002029 +B1648074549698N00630681EA0199802027 +B1648094549695N00630700EA0199502025 +B1648114549692N00630718EA0199502025 +B1648134549689N00630734EA0199502024 +B1648154549686N00630751EA0199302022 +B1648174549683N00630768EA0199202021 +B1648194549681N00630786EA0199102020 +B1648214549680N00630804EA0199002019 +B1648234549676N00630822EA0198802017 +B1648254549673N00630841EA0198702016 +B1648274549670N00630860EA0198602015 +B1648294549666N00630879EA0198602014 +B1648314549663N00630896EA0198302012 +B1648334549659N00630914EA0197802008 +B1648354549655N00630932EA0197202004 +B1648374549651N00630950EA0196801999 +B1648394549646N00630969EA0196401994 +B1648414549641N00630987EA0196001990 +B1648434549636N00631005EA0195801987 +B1648454549633N00631023EA0195501984 +B1648474549630N00631042EA0195101981 +B1648494549626N00631061EA0194801977 +B1648514549621N00631079EA0194401974 +B1648534549616N00631096EA0194001970 +B1648554549611N00631113EA0193501964 +B1648574549607N00631132EA0192901959 +B1648594549603N00631150EA0192401954 +B1649014549599N00631167EA0191901948 +B1649034549595N00631185EA0191301942 +B1649054549591N00631204EA0190801937 +B1649074549588N00631223EA0190401932 +B1649094549584N00631241EA0190001928 +B1649114549579N00631259EA0189701924 +B1649134549574N00631277EA0189201920 +B1649154549568N00631294EA0188901916 +B1649174549561N00631309EA0188501912 +B1649194549555N00631326EA0188101908 +B1649214549549N00631343EA0187601904 +B1649234549543N00631361EA0187301900 +B1649254549538N00631379EA0186901896 +B1649274549533N00631397EA0186601892 +B1649294549531N00631416EA0186201889 +B1649314549528N00631434EA0185801885 +B1649334549525N00631453EA0185401881 +B1649354549522N00631473EA0185201878 +B1649374549519N00631489EA0185001875 +B1649394549516N00631505EA0184601871 +B1649414549513N00631524EA0184401869 +B1649434549511N00631542EA0184301867 +B1649454549509N00631558EA0183901864 +B1649474549506N00631576EA0183601861 +B1649494549504N00631594EA0183301859 +B1649514549501N00631611EA0183101856 +B1649534549497N00631627EA0182701853 +B1649554549493N00631645EA0182301849 +B1649574549489N00631662EA0182001846 +B1649594549486N00631679EA0181801844 +B1650014549482N00631695EA0181401840 +B1650034549478N00631712EA0181001836 +B1650054549475N00631731EA0180801834 +B1650074549472N00631748EA0180701832 +B1650094549469N00631763EA0180301829 +B1650114549466N00631780EA0180001826 +B1650134549462N00631797EA0179901824 +B1650154549459N00631813EA0179701822 +B1650174549455N00631830EA0179401819 +B1650194549450N00631847EA0179101817 +B1650214549445N00631863EA0178701813 +B1650234549439N00631880EA0178301809 +B1650254549432N00631898EA0178001805 +B1650274549426N00631916EA0178001802 +B1650294549421N00631930EA0177801801 +B1650314549415N00631945EA0177401797 +B1650334549408N00631961EA0177101795 +B1650354549401N00631977EA0177001793 +B1650374549395N00631991EA0176701790 +B1650394549389N00632008EA0176301787 +B1650414549383N00632024EA0176201785 +B1650434549378N00632040EA0176001784 +B1650454549372N00632056EA0175701781 +B1650474549367N00632073EA0175601780 +B1650494549362N00632089EA0175401778 +B1650514549356N00632105EA0175201776 +B1650534549350N00632121EA0175001774 +B1650554549345N00632138EA0174801772 +B1650574549339N00632153EA0174501769 +B1650594549334N00632169EA0174101766 +B1651014549329N00632186EA0173801762 +B1651034549323N00632202EA0173501759 +B1651054549318N00632219EA0173201757 +B1651074549312N00632235EA0172901754 +B1651094549307N00632252EA0172501750 +B1651114549302N00632270EA0172201746 +B1651134549297N00632289EA0172001743 +B1651154549292N00632308EA0171801742 +B1651174549287N00632326EA0171801741 +B1651194549282N00632343EA0171701740 +B1651214549276N00632361EA0171501738 +B1651234549271N00632379EA0171501737 +B1651254549267N00632397EA0171401737 +B1651274549262N00632414EA0171301735 +B1651294549258N00632433EA0171101734 +B1651314549254N00632451EA0171001733 +B1651334549250N00632468EA0170801731 +B1651354549246N00632486EA0170601729 +B1651374549241N00632503EA0170401728 +B1651394549237N00632521EA0170301726 +B1651414549232N00632539EA0170101724 +B1651434549228N00632556EA0169901722 +B1651454549224N00632574EA0169701720 +B1651474549220N00632592EA0169501718 +B1651494549216N00632610EA0169301716 +B1651514549211N00632628EA0169001714 +B1651534549207N00632646EA0168901712 +B1651554549203N00632663EA0168501709 +B1651574549199N00632681EA0168201706 +B1651594549195N00632698EA0168001703 +B1652014549191N00632716EA0167801701 +B1652034549186N00632734EA0167501698 +B1652054549180N00632751EA0167301696 +B1652074549175N00632767EA0167101693 +B1652094549170N00632785EA0166701690 +B1652114549164N00632802EA0166501688 +B1652134549158N00632818EA0166301686 +B1652154549152N00632834EA0166101683 +B1652174549146N00632851EA0165801681 +B1652194549140N00632868EA0165501678 +B1652214549135N00632885EA0165301675 +B1652234549130N00632903EA0165001673 +B1652254549125N00632921EA0164701670 +B1652274549120N00632938EA0164301666 +B1652294549115N00632957EA0164001662 +B1652314549111N00632976EA0163801660 +B1652334549106N00632995EA0163701658 +B1652354549102N00633014EA0163301656 +B1652374549099N00633035EA0163101653 +B1652394549094N00633056EA0163001652 +B1652414549090N00633076EA0162901650 +B1652434549085N00633096EA0162701649 +B1652454549080N00633115EA0162601647 +B1652474549074N00633133EA0162301645 +B1652494549067N00633151EA0162101642 +B1652514549061N00633170EA0161801640 +B1652534549056N00633188EA0161401637 +B1652554549050N00633206EA0161101633 +B1652574549044N00633225EA0160801630 +B1652594549037N00633242EA0160401627 +B1653014549028N00633259EA0160101623 +B1653034549020N00633277EA0160001621 +B1653054549011N00633292EA0159801619 +B1653074549003N00633306EA0159501616 +B1653094548994N00633323EA0159301614 +B1653114548986N00633341EA0159301613 +B1653134548980N00633358EA0159201611 +B1653154548975N00633377EA0158901610 +B1653174548968N00633398EA0159001610 +B1653194548961N00633415EA0159401612 +B1653214548954N00633428EA0159601615 +B1653234548947N00633440EA0159601615 +B1653254548940N00633454EA0159301615 +B1653274548931N00633469EA0159101613 +B1653294548923N00633483EA0159001612 +B1653314548917N00633500EA0158701610 +B1653334548915N00633520EA0158501608 +B1653354548916N00633542EA0158201605 +B1653374548917N00633564EA0158001603 +B1653394548919N00633586EA0157801600 +B1653414548921N00633609EA0157701599 +B1653434548922N00633630EA0157601598 +B1653454548924N00633651EA0157501596 +B1653474548927N00633675EA0157501595 +B1653494548929N00633697EA0157901596 +B1653514548930N00633714EA0158201598 +B1653534548932N00633730EA0158301599 +B1653554548939N00633735EA0158201600 +B1653574548947N00633731EA0158301602 +B1653594548946N00633720EA0158401603 +B1654014548938N00633709EA0158501604 +B1654034548925N00633706EA0158701606 +B1654054548914N00633714EA0158601607 +B1654074548903N00633730EA0158601607 +B1654094548897N00633749EA0158901609 +B1654114548896N00633765EA0159301613 +B1654134548898N00633778EA0159701617 +B1654154548901N00633790EA0160101621 +B1654174548904N00633800EA0160301623 +B1654194548912N00633798EA0160201625 +B1654214548914N00633786EA0160401627 +B1654234548902N00633777EA0160501628 +B1654254548885N00633780EA0160901631 +B1654274548874N00633791EA0161401636 +B1654294548870N00633807EA0161601639 +B1654314548875N00633821EA0162001642 +B1654334548882N00633822EA0162101645 +B1654354548886N00633811EA0162301647 +B1654374548883N00633797EA0162701650 +B1654394548870N00633789EA0163001654 +B1654414548856N00633793EA0163401657 +B1654434548845N00633808EA0163601660 +B1654454548842N00633824EA0163901664 +B1654474548848N00633834EA0164101666 +B1654494548855N00633835EA0164401669 +B1654514548859N00633828EA0164701672 +B1654534548859N00633818EA0165001675 +B1654554548856N00633807EA0165301679 +B1654574548851N00633799EA0165301681 +B1654594548843N00633791EA0165401682 +B1655014548838N00633781EA0165301682 +B1655034548844N00633774EA0165301682 +B1655054548852N00633781EA0165501682 +B1655074548857N00633795EA0165501682 +B1655094548858N00633813EA0165501681 +B1655114548860N00633832EA0165501681 +B1655134548865N00633847EA0165501680 +B1655154548871N00633862EA0165501680 +B1655174548875N00633879EA0165701682 +B1655194548879N00633893EA0166001684 +B1655214548885N00633905EA0166301686 +B1655234548891N00633915EA0166501689 +B1655254548897N00633926EA0166801692 +B1655274548901N00633938EA0167001695 +B1655294548907N00633950EA0167101697 +B1655314548917N00633949EA0167301698 +B1655334548924N00633937EA0167701701 +B1655354548920N00633924EA0168001705 +B1655374548908N00633920EA0168301707 +B1655394548896N00633930EA0168701710 +B1655414548891N00633947EA0169101714 +B1655434548892N00633962EA0169401718 +B1655454548899N00633974EA0169701721 +B1655474548910N00633974EA0170101725 +B1655494548916N00633964EA0170501729 +B1655514548917N00633951EA0170801733 +B1655534548913N00633939EA0171201737 +B1655554548902N00633934EA0171301740 +B1655574548890N00633941EA0171401742 +B1655594548881N00633956EA0171901746 +B1656014548879N00633972EA0172401750 +B1656034548885N00633983EA0172701753 +B1656054548895N00633992EA0173001756 +B1656074548906N00633996EA0173401760 +B1656094548912N00633987EA0173701764 +B1656114548912N00633971EA0174001767 +B1656134548902N00633962EA0174301770 +B1656154548890N00633970EA0174601773 +B1656174548880N00633983EA0175401778 +B1656194548877N00633998EA0176001784 +B1656214548879N00634013EA0176301788 +B1656234548886N00634028EA0176401791 +B1656254548900N00634035EA0176901795 +B1656274548909N00634029EA0177301800 +B1656294548909N00634017EA0177801805 +B1656314548900N00634008EA0178201809 +B1656334548888N00634012EA0178601814 +B1656354548882N00634027EA0179201819 +B1656374548882N00634044EA0179501824 +B1656394548887N00634060EA0179901828 +B1656414548897N00634067EA0180401832 +B1656434548906N00634063EA0180701836 +B1656454548909N00634051EA0180901839 +B1656474548904N00634039EA0181201842 +B1656494548893N00634035EA0181601845 +B1656514548880N00634040EA0182101850 +B1656534548871N00634052EA0182601855 +B1656554548868N00634069EA0183001859 +B1656574548868N00634088EA0183401863 +B1656594548876N00634101EA0183701866 +B1657014548888N00634101EA0183801869 +B1657034548896N00634090EA0184101872 +B1657054548894N00634076EA0184401875 +B1657074548884N00634066EA0184701878 +B1657094548871N00634069EA0185101882 +B1657114548861N00634081EA0185501886 +B1657134548854N00634097EA0185801889 +B1657154548852N00634115EA0186001892 +B1657174548857N00634129EA0186101893 +B1657194548868N00634137EA0185801892 +B1657214548878N00634134EA0185501889 +B1657234548886N00634121EA0185401887 +B1657254548888N00634107EA0185601887 +B1657274548886N00634093EA0186001889 +B1657294548881N00634079EA0186701893 +B1657314548877N00634067EA0187201899 +B1657334548871N00634056EA0187401902 +B1657354548859N00634052EA0187501904 +B1657374548845N00634058EA0187801907 +B1657394548840N00634071EA0188001910 +B1657414548846N00634083EA0188401914 +B1657434548855N00634082EA0188901919 +B1657454548862N00634070EA0189301924 +B1657474548866N00634057EA0189801930 +B1657494548864N00634044EA0190201934 +B1657514548855N00634031EA0190601938 +B1657534548840N00634030EA0190901942 +B1657554548829N00634042EA0191201945 +B1657574548828N00634055EA0191301946 +B1657594548836N00634064EA0191501947 +B1658014548845N00634065EA0191901950 +B1658034548851N00634057EA0192201953 +B1658054548853N00634043EA0192501955 +B1658074548847N00634029EA0192801957 +B1658094548836N00634020EA0193101960 +B1658114548823N00634018EA0193501964 +B1658134548812N00634025EA0193901967 +B1658154548805N00634037EA0194101970 +B1658174548806N00634051EA0194401973 +B1658194548814N00634060EA0194801977 +B1658214548822N00634054EA0195201981 +B1658234548825N00634042EA0195401984 +B1658254548822N00634028EA0195701986 +B1658274548812N00634016EA0196001989 +B1658294548799N00634012EA0196301992 +B1658314548786N00634015EA0196601995 +B1658334548777N00634025EA0196901998 +B1658354548773N00634040EA0197202001 +B1658374548776N00634052EA0197502004 +B1658394548784N00634056EA0197802007 +B1658414548790N00634051EA0198102010 +B1658434548793N00634038EA0198202012 +B1658454548789N00634024EA0198502014 +B1658474548776N00634013EA0198802016 +B1658494548762N00634012EA0199102020 +B1658514548750N00634018EA0199502024 +B1658534548742N00634030EA0199702027 +B1658554548740N00634043EA0200002029 +B1658574548744N00634054EA0200102030 +B1658594548751N00634057EA0200402033 +B1659014548759N00634049EA0200602035 +B1659034548762N00634035EA0200802037 +B1659054548760N00634020EA0201202040 +B1659074548752N00634008EA0201502042 +B1659094548736N00634004EA0201902046 +B1659114548722N00634009EA0202302051 +B1659134548713N00634020EA0202502056 +B1659154548709N00634034EA0202702058 +B1659174548709N00634048EA0202802060 +B1659194548719N00634058EA0202902062 +B1659214548730N00634060EA0203402065 +B1659234548735N00634053EA0203602069 +B1659254548736N00634039EA0203802071 +B1659274548730N00634022EA0204102074 +B1659294548714N00634010EA0204702077 +B1659314548700N00634012EA0204902081 +B1659334548689N00634023EA0205302084 +B1659354548684N00634038EA0205502088 +B1659374548686N00634052EA0205702090 +B1659394548694N00634058EA0206002093 +B1659414548701N00634056EA0206302096 +B1659434548707N00634048EA0206702100 +B1659454548710N00634036EA0207102104 +B1659474548712N00634025EA0207502108 +B1659494548715N00634013EA0207902112 +B1659514548715N00634000EA0208302115 +B1659534548709N00633989EA0208402119 +B1659554548694N00633988EA0208602122 +B1659574548683N00633998EA0208902125 +B1659594548678N00634013EA0209402128 +B1700014548681N00634026EA0209702131 +B1700034548687N00634034EA0210102135 +B1700054548696N00634038EA0210602139 +B1700074548705N00634035EA0211002144 +B1700094548711N00634026EA0211402148 +B1700114548712N00634013EA0211802152 +B1700134548708N00634000EA0212102156 +B1700154548700N00633993EA0212402159 +B1700174548687N00633995EA0212902163 +B1700194548676N00634006EA0213202167 +B1700214548667N00634019EA0213502170 +B1700234548661N00634033EA0213902173 +B1700254548660N00634050EA0214402177 +B1700274548663N00634065EA0214902182 +B1700294548667N00634075EA0215402187 +B1700314548674N00634079EA0215702191 +B1700334548682N00634071EA0216002195 +B1700354548684N00634060EA0216402199 +B1700374548680N00634048EA0216702202 +B1700394548668N00634044EA0217102205 +B1700414548657N00634049EA0217502209 +B1700434548648N00634062EA0217902214 +B1700454548644N00634077EA0218302218 +B1700474548642N00634091EA0218702222 +B1700494548642N00634101EA0218902225 +B1700514548647N00634106EA0218802226 +B1700534548653N00634106EA0218902226 +B1700554548658N00634100EA0219202227 +B1700574548661N00634089EA0219602229 +B1700594548660N00634078EA0220002233 +B1701014548653N00634068EA0220302236 +B1701034548642N00634063EA0220602239 +B1701054548629N00634066EA0220802241 +B1701074548618N00634075EA0221402245 +B1701094548608N00634088EA0221902250 +B1701114548601N00634100EA0222302255 +B1701134548598N00634111EA0222402258 +B1701154548602N00634121EA0222502259 +B1701174548612N00634121EA0222802262 +B1701194548618N00634113EA0223302265 +B1701214548620N00634100EA0223802270 +B1701234548617N00634087EA0224402275 +B1701254548607N00634078EA0224802280 +B1701274548593N00634083EA0225202285 +B1701294548587N00634099EA0225502290 +B1701314548591N00634112EA0225802294 +B1701334548600N00634118EA0226302299 +B1701354548609N00634117EA0226902305 +B1701374548617N00634112EA0227402311 +B1701394548621N00634103EA0227902316 +B1701414548621N00634091EA0228402321 +B1701434548614N00634081EA0228802325 +B1701454548599N00634079EA0229102329 +B1701474548587N00634089EA0229502332 +B1701494548581N00634104EA0229802336 +B1701514548581N00634120EA0230102339 +B1701534548585N00634135EA0230702344 +B1701554548594N00634141EA0231302350 +B1701574548604N00634136EA0232002355 +B1701594548611N00634127EA0232802363 +B1702014548614N00634116EA0233402370 +B1702034548609N00634102EA0233802376 +B1702054548596N00634094EA0234102381 +B1702074548582N00634101EA0234402384 +B1702094548574N00634117EA0234902389 +B1702114548572N00634135EA0235602394 +B1702134548573N00634151EA0236202400 +B1702154548578N00634164EA0236902407 +B1702174548585N00634172EA0237502414 +B1702194548592N00634174EA0238002418 +B1702214548600N00634167EA0238602424 +B1702234548601N00634150EA0239102429 +B1702254548592N00634140EA0239602434 +B1702274548579N00634144EA0240102440 +B1702294548570N00634156EA0240702445 +B1702314548564N00634172EA0241402452 +B1702334548562N00634189EA0242002458 +B1702354548566N00634202EA0242602465 +B1702374548574N00634204EA0243002469 +B1702394548582N00634198EA0243502473 +B1702414548586N00634190EA0244102479 +B1702434548583N00634178EA0244502484 +B1702454548574N00634167EA0245002489 +B1702474548563N00634163EA0245402494 +B1702494548551N00634167EA0245802498 +B1702514548539N00634176EA0246402504 +B1702534548533N00634190EA0246902508 +B1702554548535N00634205EA0247402513 +B1702574548540N00634216EA0248002519 +B1702594548545N00634222EA0248602525 +B1703014548552N00634219EA0249102531 +B1703034548556N00634207EA0249702537 +B1703054548552N00634192EA0250302543 +B1703074548538N00634187EA0250802548 +B1703094548524N00634193EA0251402555 +B1703114548515N00634209EA0251902561 +B1703134548512N00634226EA0252702568 +B1703154548512N00634238EA0253402575 +B1703174548519N00634242EA0253802580 +B1703194548526N00634235EA0254402585 +B1703214548527N00634221EA0255202591 +B1703234548519N00634208EA0255702597 +B1703254548508N00634202EA0256402603 +B1703274548494N00634205EA0256902610 +B1703294548483N00634216EA0257302614 +B1703314548477N00634234EA0257902619 +B1703334548476N00634251EA0258402625 +B1703354548478N00634266EA0258702629 +B1703374548480N00634281EA0258902633 +B1703394548483N00634297EA0259102635 +B1703414548485N00634313EA0259402638 +B1703434548487N00634329EA0259502639 +B1703454548489N00634345EA0259602640 +B1703474548490N00634362EA0259702641 +B1703494548490N00634378EA0259602641 +B1703514548491N00634394EA0259302640 +B1703534548491N00634414EA0259502639 +B1703554548489N00634434EA0259902639 +B1703574548488N00634452EA0260202642 +B1703594548486N00634468EA0260602644 +B1704014548483N00634487EA0261002647 +B1704034548477N00634503EA0261402651 +B1704054548473N00634518EA0261502654 +B1704074548471N00634535EA0261702655 +B1704094548472N00634551EA0261902658 +B1704114548473N00634567EA0262002660 +B1704134548474N00634583EA0262002661 +B1704154548476N00634601EA0262202663 +B1704174548476N00634617EA0262402665 +B1704194548477N00634632EA0262402665 +B1704214548476N00634650EA0262302664 +B1704234548476N00634669EA0262402665 +B1704254548476N00634687EA0262402666 +B1704274548477N00634704EA0262402666 +B1704294548478N00634723EA0262402666 +B1704314548479N00634741EA0262202665 +B1704334548481N00634758EA0261902663 +B1704354548483N00634778EA0261802662 +B1704374548486N00634796EA0261602660 +B1704394548490N00634812EA0261202657 +B1704414548492N00634831EA0261002653 +B1704434548494N00634852EA0261002652 +B1704454548495N00634870EA0260802650 +B1704474548496N00634888EA0260402647 +B1704494548500N00634908EA0260102643 +B1704514548505N00634927EA0260102641 +B1704534548510N00634945EA0260202640 +B1704554548516N00634962EA0260702641 +B1704574548523N00634977EA0261202644 +B1704594548529N00634992EA0261502648 +B1705014548536N00635007EA0261802650 +B1705034548545N00635025EA0262002654 +B1705054548553N00635042EA0262402658 +B1705074548561N00635058EA0262902662 +B1705094548570N00635072EA0263202666 +B1705114548577N00635086EA0263602671 +B1705134548584N00635101EA0264102675 +B1705154548592N00635116EA0264702681 +B1705174548600N00635131EA0265302687 +B1705194548607N00635147EA0265902694 +B1705214548614N00635163EA0266402699 +B1705234548622N00635180EA0266802704 +B1705254548631N00635197EA0267502710 +B1705274548641N00635212EA0268102717 +B1705294548650N00635226EA0268602723 +B1705314548658N00635239EA0268802729 +B1705334548668N00635251EA0268802733 +B1705354548679N00635265EA0268902735 +B1705374548691N00635278EA0269102737 +B1705394548701N00635289EA0269002738 +B1705414548712N00635303EA0269002738 +B1705434548722N00635317EA0269202739 +B1705454548729N00635331EA0269102740 +B1705474548733N00635346EA0268802739 +B1705494548737N00635364EA0268502736 +B1705514548740N00635384EA0268502734 +B1705534548740N00635403EA0268602733 +B1705554548740N00635420EA0268302731 +B1705574548741N00635437EA0268102729 +B1705594548741N00635455EA0268002727 +B1706014548741N00635472EA0268102726 +B1706034548742N00635486EA0268102726 +B1706054548745N00635499EA0267802725 +B1706074548748N00635514EA0267602722 +B1706094548751N00635530EA0267502721 +B1706114548757N00635542EA0267102718 +B1706134548765N00635554EA0266702713 +B1706154548773N00635566EA0266402709 +B1706174548780N00635579EA0266102706 +B1706194548788N00635592EA0265902703 +B1706214548796N00635605EA0265602700 +B1706234548801N00635620EA0265302696 +B1706254548805N00635636EA0265002693 +B1706274548809N00635652EA0264702690 +B1706294548812N00635668EA0264402687 +B1706314548814N00635685EA0264102684 +B1706334548816N00635701EA0263702680 +B1706354548819N00635718EA0263402677 +B1706374548821N00635735EA0263202674 +B1706394548824N00635751EA0263002672 +B1706414548826N00635767EA0262802669 +B1706434548828N00635783EA0262602667 +B1706454548830N00635800EA0262402665 +B1706474548831N00635817EA0262102663 +B1706494548833N00635834EA0261902661 +B1706514548836N00635850EA0261802659 +B1706534548838N00635866EA0261602657 +B1706554548841N00635881EA0261402655 +B1706574548845N00635896EA0261102652 +B1706594548847N00635912EA0261002650 +B1707014548849N00635927EA0260802648 +B1707034548850N00635942EA0260402645 +B1707054548850N00635959EA0260102641 +B1707074548851N00635975EA0259902639 +B1707094548854N00635991EA0259702637 +B1707114548857N00636006EA0259602636 +B1707134548862N00636021EA0259302633 +B1707154548867N00636035EA0259002631 +B1707174548872N00636050EA0258802628 +B1707194548877N00636065EA0258702627 +B1707214548882N00636080EA0258502625 +B1707234548888N00636095EA0258402623 +B1707254548893N00636111EA0258302622 +B1707274548898N00636126EA0258202621 +B1707294548903N00636141EA0257902619 +B1707314548908N00636156EA0257702616 +B1707334548914N00636172EA0257602615 +B1707354548919N00636188EA0257502614 +B1707374548924N00636203EA0257402613 +B1707394548929N00636218EA0257202611 +B1707414548934N00636234EA0257002609 +B1707434548939N00636249EA0256802607 +B1707454548944N00636264EA0256602605 +B1707474548949N00636280EA0256402603 +B1707494548954N00636296EA0256202601 +B1707514548960N00636311EA0256002599 +B1707534548965N00636326EA0255702597 +B1707554548969N00636342EA0255502594 +B1707574548973N00636359EA0255302592 +B1707594548977N00636374EA0255202591 +B1708014548980N00636390EA0255002589 +B1708034548983N00636406EA0254802587 +B1708054548986N00636422EA0254602585 +B1708074548989N00636438EA0254502583 +B1708094548993N00636454EA0254302582 +B1708114548996N00636470EA0254202580 +B1708134549000N00636486EA0254102579 +B1708154549003N00636503EA0253902577 +B1708174549006N00636519EA0253702575 +B1708194549009N00636536EA0253502573 +B1708214549012N00636553EA0253402572 +B1708234549015N00636570EA0253202570 +B1708254549019N00636586EA0253102569 +B1708274549023N00636602EA0252902567 +B1708294549027N00636618EA0252802566 +B1708314549031N00636635EA0252602564 +B1708334549035N00636651EA0252402562 +B1708354549039N00636667EA0252302561 +B1708374549043N00636683EA0252102559 +B1708394549046N00636698EA0251802557 +B1708414549049N00636715EA0251602554 +B1708434549053N00636733EA0251602552 +B1708454549055N00636750EA0251402551 +B1708474549057N00636766EA0251102549 +B1708494549058N00636783EA0250902547 +B1708514549058N00636801EA0250802545 +B1708534549058N00636817EA0250602543 +B1708554549058N00636833EA0250302540 +B1708574549059N00636849EA0250102537 +B1708594549062N00636866EA0249902535 +B1709014549064N00636882EA0249802533 +B1709034549068N00636898EA0249602531 +B1709054549071N00636914EA0249402530 +B1709074549075N00636930EA0249302528 +B1709094549078N00636946EA0249002526 +B1709114549081N00636962EA0248802523 +B1709134549084N00636979EA0248602522 +B1709154549087N00636995EA0248502520 +B1709174549090N00637012EA0248202518 +B1709194549092N00637029EA0248002516 +B1709214549094N00637046EA0247902514 +B1709234549097N00637062EA0247702513 +B1709254549100N00637079EA0247502511 +B1709274549103N00637096EA0247302508 +B1709294549106N00637113EA0247102506 +B1709314549110N00637129EA0246802504 +B1709334549114N00637145EA0246602502 +B1709354549119N00637162EA0246402499 +B1709374549123N00637179EA0246202497 +B1709394549127N00637195EA0245902495 +B1709414549131N00637213EA0245702493 +B1709434549134N00637230EA0245502490 +B1709454549136N00637248EA0245202488 +B1709474549138N00637265EA0244902485 +B1709494549139N00637283EA0244602483 +B1709514549138N00637301EA0244402480 +B1709534549139N00637318EA0244202478 +B1709554549140N00637336EA0243902475 +B1709574549142N00637353EA0243702473 +B1709594549146N00637370EA0243502470 +B1710014549150N00637387EA0243202468 +B1710034549154N00637404EA0243002466 +B1710054549158N00637420EA0242802463 +B1710074549162N00637437EA0242602462 +B1710094549167N00637453EA0242402459 +B1710114549171N00637470EA0242102456 +B1710134549176N00637487EA0241802454 +B1710154549181N00637503EA0241602451 +B1710174549186N00637520EA0241402449 +B1710194549192N00637536EA0241102447 +B1710214549196N00637552EA0240902444 +B1710234549202N00637568EA0240602441 +B1710254549207N00637585EA0240302438 +B1710274549211N00637602EA0240002436 +B1710294549215N00637619EA0239802433 +B1710314549219N00637635EA0239502430 +B1710334549224N00637652EA0239302428 +B1710354549228N00637669EA0239002425 +B1710374549232N00637686EA0238802423 +B1710394549236N00637702EA0238602421 +B1710414549240N00637719EA0238402419 +B1710434549244N00637735EA0238202417 +B1710454549247N00637751EA0237902414 +B1710474549251N00637767EA0237602411 +B1710494549255N00637783EA0237402409 +B1710514549258N00637799EA0237102407 +B1710534549262N00637815EA0236802403 +B1710554549266N00637832EA0236602401 +B1710574549271N00637847EA0236402399 +B1710594549275N00637862EA0236002396 +B1711014549279N00637879EA0235602392 +B1711034549284N00637895EA0235302389 +B1711054549288N00637911EA0235002385 +B1711074549294N00637927EA0234702382 +B1711094549299N00637943EA0234502379 +B1711114549303N00637959EA0234202376 +B1711134549307N00637975EA0233802373 +B1711154549310N00637992EA0233502370 +B1711174549314N00638008EA0233202366 +B1711194549318N00638025EA0232802363 +B1711214549321N00638041EA0232502360 +B1711234549325N00638058EA0232302357 +B1711254549328N00638074EA0232002355 +B1711274549330N00638090EA0231602351 +B1711294549335N00638107EA0231302348 +B1711314549339N00638125EA0230902344 +B1711334549342N00638142EA0230702342 +B1711354549346N00638159EA0230402339 +B1711374549349N00638177EA0230102335 +B1711394549353N00638194EA0229902333 +B1711414549356N00638211EA0229702331 +B1711434549358N00638229EA0229402328 +B1711454549361N00638247EA0229102325 +B1711474549364N00638264EA0229002323 +B1711494549367N00638282EA0228802321 +B1711514549369N00638299EA0228502319 +B1711534549372N00638317EA0228202316 +B1711554549375N00638335EA0228002314 +B1711574549378N00638353EA0227802312 +B1711594549380N00638371EA0227602310 +B1712014549382N00638389EA0227402308 +B1712034549382N00638408EA0227302306 +B1712054549383N00638427EA0227202305 +B1712074549384N00638444EA0227002303 +B1712094549385N00638463EA0226702301 +B1712114549386N00638482EA0226502298 +B1712134549388N00638501EA0226402297 +B1712154549389N00638519EA0226202295 +B1712174549392N00638537EA0225902292 +B1712194549395N00638555EA0225602290 +B1712214549399N00638573EA0225402288 +B1712234549401N00638591EA0225202285 +B1712254549404N00638609EA0224902283 +B1712274549406N00638626EA0224602280 +B1712294549408N00638644EA0224202277 +B1712314549410N00638662EA0224002274 +B1712334549411N00638681EA0223802271 +B1712354549412N00638699EA0223602269 +B1712374549413N00638717EA0223402267 +B1712394549415N00638735EA0223202265 +B1712414549416N00638752EA0223002263 +B1712434549418N00638770EA0222802261 +B1712454549420N00638788EA0222602259 +B1712474549423N00638807EA0222402258 +B1712494549425N00638824EA0222302256 +B1712514549428N00638842EA0222102254 +B1712534549431N00638860EA0222002252 +B1712554549432N00638878EA0221802251 +B1712574549434N00638896EA0221602249 +B1712594549436N00638914EA0221402247 +B1713014549439N00638933EA0221202245 +B1713034549442N00638951EA0221102244 +B1713054549444N00638969EA0220802242 +B1713074549447N00638987EA0220502239 +B1713094549450N00639005EA0220302236 +B1713114549452N00639025EA0220302235 +B1713134549455N00639041EA0220202234 +B1713154549458N00639057EA0220102232 +B1713174549461N00639073EA0220002232 +B1713194549464N00639089EA0219902231 +B1713214549467N00639104EA0219702229 +B1713234549470N00639120EA0219502227 +B1713254549473N00639136EA0219302226 +B1713274549476N00639151EA0219002223 +B1713294549479N00639168EA0218802221 +B1713314549482N00639185EA0218802220 +B1713334549484N00639202EA0218802219 +B1713354549486N00639219EA0218602218 +B1713374549488N00639237EA0218402216 +B1713394549490N00639255EA0218302214 +B1713414549491N00639272EA0218202213 +B1713434549493N00639289EA0218002212 +B1713454549495N00639305EA0217702209 +B1713474549498N00639322EA0217502207 +B1713494549501N00639338EA0217402206 +B1713514549504N00639354EA0217202204 +B1713534549507N00639369EA0217102203 +B1713554549511N00639385EA0217002202 +B1713574549513N00639401EA0216802200 +B1713594549516N00639417EA0216602198 +B1714014549519N00639434EA0216502197 +B1714034549522N00639451EA0216502197 +B1714054549526N00639467EA0216402196 +B1714074549529N00639483EA0216202194 +B1714094549533N00639500EA0216102193 +B1714114549537N00639515EA0215902192 +B1714134549541N00639530EA0215702190 +B1714154549545N00639547EA0215702189 +B1714174549549N00639564EA0215702188 +B1714194549552N00639580EA0215502187 +B1714214549555N00639597EA0215302185 +B1714234549559N00639616EA0215302184 +B1714254549562N00639634EA0215202184 +B1714274549564N00639650EA0215002182 +B1714294549567N00639668EA0214702180 +B1714314549571N00639685EA0214602178 +B1714334549575N00639702EA0214402177 +B1714354549579N00639718EA0214202174 +B1714374549583N00639735EA0214002172 +B1714394549588N00639751EA0213802170 +B1714414549594N00639767EA0213602169 +B1714434549599N00639782EA0213302166 +B1714454549604N00639798EA0213002163 +B1714474549610N00639814EA0212802160 +B1714494549615N00639830EA0212502158 +B1714514549620N00639845EA0212202155 +B1714534549625N00639861EA0212002152 +B1714554549630N00639876EA0211802150 +B1714574549634N00639891EA0211402147 +B1714594549638N00639907EA0211002143 +B1715014549643N00639923EA0210802140 +B1715034549648N00639938EA0210602138 +B1715054549652N00639953EA0210402135 +B1715074549657N00639968EA0210202133 +B1715094549661N00639984EA0210102131 +B1715114549667N00639999EA0209902130 +B1715134549672N00640013EA0209602128 +B1715154549678N00640027EA0209202124 +B1715174549685N00640043EA0209002122 +B1715194549691N00640057EA0208902120 +B1715214549697N00640071EA0208602117 +B1715234549703N00640086EA0208402114 +B1715254549710N00640101EA0208302113 +B1715274549716N00640115EA0208102112 +B1715294549723N00640130EA0207902110 +B1715314549728N00640145EA0207802108 +B1715334549734N00640160EA0207602106 +B1715354549739N00640176EA0207402104 +B1715374549744N00640192EA0207302102 +B1715394549748N00640209EA0207202101 +B1715414549752N00640225EA0207002100 +B1715434549755N00640242EA0206902099 +B1715454549759N00640259EA0206802098 +B1715474549762N00640277EA0206702097 +B1715494549764N00640295EA0206702096 +B1715514549766N00640313EA0206602095 +B1715534549767N00640331EA0206402095 +B1715554549767N00640349EA0206302093 +B1715574549768N00640367EA0206202091 +B1715594549769N00640386EA0206102091 +B1716014549769N00640403EA0205902090 +B1716034549770N00640421EA0205702088 +B1716054549771N00640440EA0205602087 +B1716074549772N00640458EA0205602086 +B1716094549774N00640476EA0205302084 +B1716114549775N00640494EA0205002082 +B1716134549778N00640512EA0204902080 +B1716154549781N00640529EA0204702078 +B1716174549783N00640547EA0204502076 +B1716194549787N00640564EA0204302074 +B1716214549793N00640580EA0204202073 +B1716234549799N00640595EA0204002071 +B1716254549806N00640610EA0203802069 +B1716274549814N00640625EA0203602067 +B1716294549821N00640639EA0203402065 +B1716314549827N00640654EA0203102062 +B1716334549833N00640670EA0202902060 +B1716354549839N00640687EA0202702058 +B1716374549845N00640703EA0202502056 +B1716394549851N00640719EA0202202053 +B1716414549858N00640735EA0201902051 +B1716434549865N00640750EA0201802048 +B1716454549872N00640765EA0201502046 +B1716474549880N00640780EA0201202043 +B1716494549888N00640794EA0200902040 +B1716514549897N00640808EA0200702038 +B1716534549906N00640821EA0200402035 +B1716554549916N00640833EA0200102032 +B1716574549926N00640845EA0200002030 +B1716594549936N00640857EA0199802029 +B1717014549946N00640868EA0199402026 +B1717034549956N00640879EA0199102023 +B1717054549965N00640893EA0199002020 +B1717074549973N00640906EA0198802019 +B1717094549982N00640919EA0198502017 +B1717114549991N00640932EA0198302014 +B1717134550000N00640944EA0198202012 +B1717154550010N00640956EA0198302011 +B1717174550019N00640969EA0198402012 +B1717194550027N00640982EA0198402013 +B1717214550033N00640993EA0198302013 +B1717234550040N00641003EA0198102012 +B1717254550048N00641015EA0197902010 +B1717274550055N00641026EA0197702008 +B1717294550063N00641037EA0197502006 +B1717314550071N00641048EA0197302004 +B1717334550079N00641060EA0197202003 +B1717354550085N00641071EA0197002001 +B1717374550093N00641081EA0196801999 +B1717394550102N00641092EA0196801998 +B1717414550110N00641102EA0196601997 +B1717434550118N00641112EA0196501996 +B1717454550127N00641120EA0196601995 +B1717474550135N00641128EA0196501995 +B1717494550143N00641135EA0196401994 +B1717514550152N00641139EA0196201992 +B1717534550159N00641131EA0195901990 +B1717554550161N00641116EA0195601988 +B1717574550154N00641102EA0195501986 +B1717594550144N00641095EA0195401984 +B1718014550134N00641090EA0195301983 +B1718034550126N00641082EA0195201981 +B1718054550117N00641073EA0195101981 +B1718074550108N00641067EA0194901980 +B1718094550098N00641059EA0194701978 +B1718114550089N00641049EA0194601977 +B1718134550081N00641039EA0194601977 +B1718154550074N00641029EA0194401975 +B1718174550066N00641019EA0194101972 +B1718194550061N00641005EA0194001970 +B1718214550059N00640990EA0193801968 +B1718234550058N00640975EA0193501965 +B1718254550060N00640959EA0193201962 +B1718274550061N00640943EA0193101959 +B1718294550065N00640928EA0193001958 +B1718314550070N00640915EA0193001958 +B1718334550073N00640902EA0192901957 +B1718354550074N00640889EA0192901957 +B1718374550075N00640877EA0192901957 +B1718394550073N00640864EA0192801956 +B1718414550069N00640851EA0192501954 +B1718434550067N00640837EA0192301952 +B1718454550065N00640823EA0192101949 +B1718474550062N00640809EA0191801946 +B1718494550060N00640793EA0191501943 +B1718514550058N00640777EA0191501941 +B1718534550055N00640760EA0191601941 +B1718554550053N00640743EA0191601941 +B1718574550050N00640729EA0191501941 +B1718594550046N00640715EA0191201940 +B1719014550042N00640702EA0190801937 +B1719034550038N00640688EA0190401934 +B1719054550034N00640672EA0190101930 +B1719074550031N00640656EA0189701926 +B1719094550027N00640641EA0189501923 +B1719114550024N00640626EA0189201919 +B1719134550021N00640610EA0189001917 +B1719154550020N00640593EA0189001915 +B1719174550020N00640578EA0189101915 +B1719194550021N00640564EA0189101915 +B1719214550023N00640549EA0189001915 +B1719234550025N00640534EA0189001915 +B1719254550026N00640519EA0188901914 +B1719274550028N00640504EA0188701912 +B1719294550030N00640487EA0188501911 +B1719314550031N00640472EA0188301909 +B1719334550032N00640456EA0188001907 +B1719354550033N00640440EA0187901905 +B1719374550033N00640424EA0187701903 +B1719394550034N00640408EA0187401900 +B1719414550035N00640391EA0187301898 +B1719434550036N00640376EA0187101897 +B1719454550038N00640362EA0186601895 +B1719474550039N00640346EA0186101891 +B1719494550040N00640328EA0185801887 +B1719514550040N00640311EA0185501884 +B1719534550040N00640295EA0185101880 +B1719554550041N00640278EA0184801876 +B1719574550041N00640261EA0184301873 +B1719594550042N00640245EA0184001869 +B1720014550041N00640229EA0183601865 +B1720034550040N00640213EA0183101861 +B1720054550039N00640198EA0182601856 +B1720074550036N00640181EA0182301852 +B1720094550034N00640165EA0181901848 +B1720114550033N00640151EA0181401843 +B1720134550033N00640134EA0181001839 +B1720154550032N00640117EA0180701835 +B1720174550032N00640102EA0180301832 +B1720194550034N00640087EA0179801827 +B1720214550036N00640070EA0179401823 +B1720234550038N00640054EA0179101819 +B1720254550040N00640039EA0178601815 +B1720274550043N00640022EA0178101809 +B1720294550045N00640005EA0177901806 +B1720314550046N00639989EA0177501802 +B1720334550046N00639973EA0177101798 +B1720354550047N00639956EA0177001794 +B1720374550049N00639939EA0176901792 +B1720394550051N00639923EA0176801791 +B1720414550054N00639907EA0176701790 +B1720434550057N00639892EA0176501789 +B1720454550060N00639876EA0176301788 +B1720474550062N00639859EA0176001785 +B1720494550066N00639843EA0175701783 +B1720514550069N00639827EA0175301779 +B1720534550072N00639810EA0175101776 +B1720554550075N00639793EA0174901775 +B1720574550078N00639778EA0174601772 +B1720594550081N00639762EA0174401769 +B1721014550084N00639744EA0174301767 +B1721034550088N00639728EA0174201766 +B1721054550091N00639712EA0174201766 +B1721074550095N00639697EA0174201766 +B1721094550100N00639682EA0174301767 +B1721114550105N00639668EA0174201767 +B1721134550110N00639654EA0174101766 +B1721154550116N00639639EA0174101765 +B1721174550121N00639626EA0174101766 +B1721194550126N00639612EA0173901765 +B1721214550131N00639597EA0173601764 +B1721234550136N00639582EA0173501762 +B1721254550143N00639568EA0173401761 +B1721274550151N00639555EA0173401760 +B1721294550158N00639543EA0173301760 +B1721314550166N00639531EA0173301759 +B1721334550175N00639521EA0173401759 +B1721354550183N00639511EA0173601761 +B1721374550190N00639503EA0173501761 +B1721394550197N00639495EA0173301761 +B1721414550204N00639484EA0172901759 +B1721434550211N00639471EA0172601756 +B1721454550218N00639457EA0172401753 +B1721474550225N00639444EA0172301752 +B1721494550231N00639431EA0172201751 +B1721514550238N00639418EA0172101749 +B1721534550244N00639405EA0171901747 +B1721554550250N00639393EA0171801746 +B1721574550255N00639380EA0171601744 +B1721594550260N00639366EA0171501742 +B1722014550263N00639351EA0171401740 +B1722034550267N00639336EA0171201738 +B1722054550270N00639320EA0171001737 +B1722074550273N00639305EA0170901735 +B1722094550276N00639289EA0170601733 +B1722114550280N00639274EA0170301730 +B1722134550286N00639259EA0170101728 +B1722154550293N00639246EA0170101726 +B1722174550301N00639236EA0169901725 +B1722194550309N00639228EA0169701723 +B1722214550319N00639221EA0169401719 +B1722234550330N00639215EA0169301718 +B1722254550339N00639210EA0169101717 +B1722274550349N00639205EA0169001715 +B1722294550360N00639200EA0169101714 +B1722314550370N00639197EA0169101715 +B1722334550379N00639196EA0169001714 +B1722354550389N00639192EA0168901713 +B1722374550399N00639187EA0168901712 +B1722394550411N00639188EA0168901712 +B1722414550421N00639190EA0169201713 +B1722434550429N00639191EA0169301714 +B1722454550435N00639198EA0169101715 +B1722474550439N00639211EA0169101715 +B1722494550444N00639224EA0169201715 +B1722514550449N00639236EA0169101715 +B1722534550454N00639251EA0169101714 +B1722554550457N00639267EA0169101714 +B1722574550460N00639283EA0169201715 +B1722594550464N00639295EA0169201715 +B1723014550468N00639304EA0169001715 +B1723034550475N00639311EA0169001714 +B1723054550482N00639318EA0169201715 +B1723074550488N00639325EA0169101715 +B1723094550494N00639333EA0169001714 +B1723114550500N00639341EA0168801713 +B1723134550507N00639350EA0168801712 +B1723154550514N00639360EA0168901712 +B1723174550519N00639369EA0168801712 +B1723194550524N00639376EA0168701711 +B1723214550531N00639382EA0168501710 +B1723234550538N00639388EA0168401709 +B1723254550544N00639393EA0168301708 +B1723274550551N00639396EA0168201707 +B1723294550559N00639399EA0168201706 +B1723314550566N00639400EA0168101705 +B1723334550573N00639398EA0167901703 +B1723354550581N00639394EA0167801702 +B1723374550589N00639390EA0167801702 +B1723394550596N00639385EA0167601702 +B1723414550603N00639380EA0167401700 +B1723434550611N00639373EA0167201699 +B1723454550618N00639366EA0167201699 +B1723474550624N00639359EA0167001698 +B1723494550634N00639346EA0166801697 +B1723524550641N00639337EA0166901697 +B1723544550648N00639330EA0166701696 +B1723564550655N00639323EA0166601694 +B1723584550664N00639316EA0166501694 +B1724004550671N00639310EA0166501694 +B1724024550677N00639302EA0166401693 +B1724044550684N00639294EA0166301692 +B1724064550691N00639289EA0166201691 +B1724084550697N00639282EA0166101690 +B1724104550703N00639274EA0166001689 +B1724124550709N00639266EA0165901688 +B1724144550716N00639259EA0165701687 +B1724164550722N00639252EA0165501685 +B1724184550729N00639243EA0165401683 +B1724204550736N00639233EA0165401682 +B1724224550742N00639225EA0165401683 +B1724244550748N00639218EA0165401683 +B1724264550754N00639210EA0165201681 +B1724284550762N00639203EA0165101680 +B1724304550768N00639196EA0164901678 +B1724324550774N00639188EA0164601676 +B1724344550780N00639182EA0164301672 +B1724364550787N00639175EA0163901669 +B1724384550793N00639168EA0163601666 +B1724404550800N00639160EA0163401663 +B1724424550806N00639151EA0163201661 +B1724444550812N00639144EA0162901658 +B1724464550817N00639135EA0162501654 +B1724484550823N00639125EA0162201651 +B1724504550829N00639116EA0162001649 +B1724524550833N00639108EA0161701645 +B1724544550839N00639098EA0161401642 +B1724564550846N00639090EA0161101640 +B1724584550851N00639081EA0160801638 +B1725004550855N00639071EA0160401635 +B1725024550861N00639061EA0160101632 +B1725044550865N00639051EA0159801628 +B1725064550870N00639040EA0159501625 +B1725084550874N00639028EA0159101622 +B1725104550877N00639017EA0158801618 +B1725124550881N00639005EA0158201614 +B1725144550885N00638992EA0157601610 +B1725164550888N00638977EA0157101605 +B1725184550889N00638961EA0156501599 +B1725204550890N00638944EA0156101594 +B1725224550892N00638929EA0155701589 +B1725244550893N00638913EA0155401585 +B1725264550894N00638898EA0155101580 +B1725284550895N00638882EA0154701575 +B1725304550895N00638865EA0154401572 +B1725324550893N00638848EA0154101568 +B1725344550892N00638833EA0153801565 +B1725364550892N00638818EA0153501561 +B1725384550893N00638803EA0153201558 +B1725404550892N00638787EA0152901555 +B1725424550892N00638771EA0152601552 +B1725444550892N00638755EA0152501550 +B1725464550892N00638739EA0152201547 +B1725484550892N00638723EA0151901544 +B1725504550893N00638706EA0151601541 +B1725524550894N00638690EA0151601539 +B1725544550895N00638674EA0151301537 +B1725564550898N00638659EA0151101535 +B1725584550902N00638645EA0151001533 +B1726004550906N00638633EA0150901532 +B1726024550911N00638621EA0150601530 +B1726044550916N00638609EA0150301527 +B1726064550921N00638598EA0150001524 +B1726084550926N00638586EA0149601521 +B1726104550931N00638572EA0149401519 +B1726124550935N00638559EA0149101518 +B1726144550939N00638546EA0148901517 +B1726164550942N00638533EA0148601514 +B1726184550945N00638518EA0148401512 +B1726204550949N00638505EA0148201510 +B1726224550952N00638494EA0148001507 +B1726244550956N00638482EA0147501504 +B1726264550961N00638469EA0147201500 +B1726284550966N00638455EA0147101497 +B1726304550970N00638443EA0147001495 +B1726324550973N00638430EA0146701493 +B1726344550978N00638417EA0146501490 +B1726364550983N00638404EA0146401488 +B1726384550987N00638393EA0146201486 +B1726404550992N00638381EA0146001483 +B1726424550998N00638370EA0145801480 +B1726444551004N00638361EA0145601478 +B1726464551010N00638351EA0145301476 +B1726484551016N00638340EA0145001473 +B1726504551022N00638330EA0144801471 +B1726524551028N00638320EA0144601468 +B1726544551034N00638311EA0144301466 +B1726564551040N00638300EA0143901462 +B1726584551046N00638288EA0143901461 +B1727004551052N00638277EA0143701460 +B1727024551058N00638266EA0143501457 +B1727044551065N00638254EA0143301457 +B1727064551071N00638243EA0143101455 +B1727084551076N00638232EA0142901453 +B1727104551081N00638220EA0142601450 +B1727124551087N00638208EA0142301448 +B1727144551093N00638197EA0142001445 +B1727164551099N00638185EA0141701442 +B1727184551105N00638174EA0141501438 +B1727204551112N00638163EA0141201436 +B1727224551118N00638151EA0141001434 +B1727244551124N00638140EA0140601431 +B1727264551130N00638127EA0140301428 +B1727284551136N00638115EA0140101426 +B1727304551142N00638102EA0139901425 +B1727324551147N00638090EA0139601424 +B1727344551153N00638077EA0139301422 +B1727364551159N00638064EA0139001422 +B1727384551164N00638050EA0138701421 +B1727404551169N00638037EA0138301419 +B1727424551176N00638025EA0138001417 +B1727444551181N00638012EA0137701415 +B1727464551188N00638000EA0137301411 +B1727484551194N00637990EA0137001406 +B1727504551200N00637979EA0136501401 +B1727524551207N00637967EA0136201396 +B1727544551215N00637955EA0136001393 +B1727564551222N00637945EA0135801391 +B1727584551229N00637935EA0135401388 +B1728004551237N00637924EA0135201385 +B1728024551245N00637914EA0135101383 +B1728044551251N00637905EA0134801380 +B1728064551259N00637896EA0134601378 +B1728084551267N00637886EA0134401376 +B1728104551274N00637876EA0134001373 +B1728124551282N00637866EA0133701369 +B1728144551290N00637856EA0133501366 +B1728164551298N00637847EA0133301363 +B1728184551306N00637837EA0132901359 +B1728204551315N00637826EA0132701356 +B1728224551323N00637816EA0132501353 +B1728244551331N00637807EA0132101349 +B1728264551339N00637796EA0131901346 +B1728284551347N00637784EA0131801344 +B1728304551353N00637773EA0131601342 +B1728324551361N00637763EA0131301339 +B1728344551369N00637753EA0131001337 +B1728364551377N00637745EA0130901335 +B1728384551385N00637737EA0130601333 +B1728404551393N00637727EA0130401330 +B1728424551400N00637717EA0130101327 +B1728444551408N00637706EA0129801324 +B1728464551417N00637696EA0129701321 +B1728484551425N00637689EA0129501319 +B1728504551433N00637681EA0129201317 +B1728524551442N00637672EA0128901313 +B1728544551450N00637662EA0128701311 +B1728564551458N00637651EA0128401309 +B1728584551466N00637639EA0128201307 +B1729004551473N00637628EA0128001306 +B1729024551481N00637617EA0127701304 +B1729044551490N00637609EA0127401300 +B1729064551499N00637603EA0127201297 +B1729084551508N00637599EA0127001294 +B1729104551517N00637594EA0126701291 +B1729124551526N00637587EA0126401287 +B1729144551534N00637579EA0126101285 +B1729164551542N00637570EA0125801282 +B1729184551551N00637561EA0125401278 +B1729204551560N00637551EA0125201275 +B1729224551569N00637542EA0125101273 +B1729244551577N00637536EA0124801270 +B1729264551587N00637529EA0124701267 +B1729284551596N00637525EA0124501266 +B1729304551605N00637520EA0124101264 +B1729324551616N00637516EA0124001261 +B1729344551626N00637511EA0124101261 +B1729364551634N00637506EA0124101260 +B1729384551643N00637500EA0124001258 +B1729404551653N00637497EA0123901257 +B1729424551662N00637496EA0123801255 +B1729444551671N00637497EA0123701254 +B1729464551680N00637499EA0123701253 +B1729484551688N00637499EA0123501252 +B1729504551697N00637499EA0123301250 +B1729524551707N00637500EA0123101248 +B1729544551716N00637502EA0123001246 +B1729564551724N00637505EA0122701244 +B1729584551732N00637498EA0122001241 +B1730004551733N00637477EA0121501237 +B1730024551727N00637458EA0121901234 +B1730044551723N00637448EA0121401232 +B1730064551715N00637431EA0120601226 +B1730084551703N00637413EA0120701223 +B1730104551695N00637401EA0120801221 +B1730124551690N00637388EA0120301217 +B1730144551683N00637371EA0119801213 +B1730164551674N00637354EA0119901212 +B1730184551667N00637340EA0119701210 +B1730204551664N00637325EA0119201208 +B1730224551672N00637314EA0118601204 +B1730244551685N00637317EA0117801198 +B1730264551675N00637333EA0116901191 +B1730284551659N00637320EA0116501184 +B1730304551659N00637301EA0116801181 +B1730324551660N00637287EA0116601180 +B1730344551653N00637272EA0116001175 +B1730364551642N00637257EA0115801173 +B1730384551632N00637247EA0115901173 +B1730404551623N00637238EA0115401170 +B1730424551612N00637226EA0115201167 +B1730444551602N00637213EA0115301166 +B1730464551600N00637199EA0114801163 +B1730484551605N00637178EA0114401161 +B1730504551614N00637165EA0114401161 +B1730524551620N00637156EA0114101159 +B1730544551626N00637144EA0113501157 +B1730564551634N00637131EA0113501155 +B1730584551642N00637122EA0113501154 +B1731004551648N00637114EA0113201151 +B1731024551657N00637112EA0113001148 +B1731044551667N00637124EA0112301143 +B1731064551657N00637145EA0111801137 +B1731084551640N00637149EA0111901133 +B1731104551631N00637154EA0111401130 +B1731124551633N00637169EA0110701124 +B1731144551644N00637176EA0110501119 +B1731164551653N00637178EA0110501117 +B1731184551661N00637185EA0110001114 +B1731204551667N00637196EA0110101112 +B1731224551672N00637205EA0109701111 +B1731244551675N00637214EA0108701108 +B1731264551680N00637224EA0108701104 +B1731284551687N00637234EA0109001102 +B1731304551692N00637241EA0109001101 +B1731324551693N00637243EA0109001100 +B1731344551694N00637244EA0109001100 +B1731364551694N00637244EA0109101100 +B1731384551694N00637244EA0109001100 +B1731404551694N00637244EA0109001100 +B1731424551694N00637244EA0109001100 +B1731444551694N00637244EA0109101100 +B1731464551694N00637244EA0109001100 +B1731484551694N00637244EA0109001100 +B1731504551694N00637244EA0109001100 +B1731524551694N00637244EA0109001100 +B1731544551694N00637244EA0109001100 +B1731564551694N00637244EA0109001100 +B1731584551694N00637244EA0109001100 +B1732004551694N00637244EA0109001100 +B1732024551694N00637244EA0109001100 +B1732044551694N00637244EA0109001100 +B1732064551694N00637244EA0109001100 +B1732084551694N00637244EA0109001100 +B1732104551694N00637244EA0109001100 +B1732124551694N00637244EA0109001100 +B1732144551694N00637244EA0109001100 +B1732164551694N00637244EA0109001100 +B1732184551694N00637244EA0109001100 +B1732204551694N00637244EA0109001100 +B1732224551694N00637244EA0109001100 +B1732244551694N00637244EA0109001100 +B1732264551694N00637244EA0109001100 +B1732284551694N00637244EA0109001100 +B1732304551694N00637244EA0109001100 +B1732324551694N00637244EA0109001100 +B1732344551694N00637244EA0109001100 +B1732364551694N00637244EA0109001098 +B1732384551694N00637244EA0109001098 +B1732404551694N00637244EA0109001099 +B1732424551694N00637244EA0109001100 +B1732444551694N00637244EA0109001100 +B1732464551694N00637244EA0109001101 +B1732484551694N00637244EA0109001101 +B1732504551694N00637244EA0109001101 +B1732524551694N00637244EA0109001101 +B1732544551694N00637244EA0109001101 +B1732564551694N00637244EA0109001101 +B1732584551694N00637244EA0109001101 +B1733004551694N00637244EA0109001101 +B1733024551694N00637244EA0109001101 +B1733044551694N00637244EA0109001101 +B1733064551694N00637244EA0109001101 +B1733084551694N00637245EA0109001101 diff --git a/examples/data/igc/Damien-de-Baenst.igc b/examples/data/igc/Damien-de-Baenst.igc new file mode 100644 index 0000000000..dcd39f63b8 --- /dev/null +++ b/examples/data/igc/Damien-de-Baenst.igc @@ -0,0 +1,3319 @@ +ABRA00326 +HFDTE190411 +HFFXA100 +HFPLTPILOT:Damien de Baesnt +HFGTYGLIDERTYPE:Ozone R10.2 +HFGIDGLIDERID:1111 +HFDTM100GPSDATUM:WGS84 +HFGPSGPS:FURUNO GH-80 +HFRFWFIRMWAREVERSION:2.27 +HFRHWHARDWAREVERSION:1.00 +HFFTYFRTYPE:BRAUNIGER,COMPEO +I013638TAS +B0844164556194N00651071EA0203502037000 +B0844264556194N00651071EA0203502038000 +B0844364556194N00651071EA0203502039000 +B0844464556194N00651070EA0203602040000 +B0844564556193N00651071EA0203502040000 +B0845064556193N00651071EA0203602041000 +B0845164556193N00651071EA0203502042000 +B0845264556193N00651070EA0203602042000 +B0845364556193N00651071EA0203502041000 +B0845464556194N00651071EA0203502041000 +B0845564556194N00651071EA0203602040000 +B0846064556195N00651071EA0203602039000 +B0846164556195N00651072EA0203602039000 +B0846264556195N00651072EA0203602039000 +B0846364556195N00651072EA0203602040000 +B0846464556195N00651072EA0203502040001 +B0846564556195N00651071EA0203502040001 +B0847064556195N00651071EA0203502039000 +B0847164556194N00651071EA0203502038000 +B0847264556193N00651071EA0203502036000 +B0847364556193N00651071EA0203502033000 +B0847464556193N00651071EA0203502033000 +B0847564556194N00651070EA0203502033000 +B0848064556194N00651070EA0203502033000 +B0848164556194N00651070EA0203502034000 +B0848264556194N00651070EA0203502035000 +B0848364556194N00651070EA0203502036000 +B0848464556184N00651068EA0202802036003 +B0848564556147N00651045EA0203302035000 +B0849064556120N00651002EA0203902037000 +B0849174556106N00650925EA0204402041000 +B0849274556084N00650863EA0203502042000 +B0849374556056N00650807EA0203502042000 +B0849474556028N00650751EA0205202043000 +B0849574555997N00650710EA0206902048000 +B0850074555959N00650698EA0206402056000 +B0850174555995N00650719EA0206502061000 +B0850274556007N00650753EA0207002065000 +B0850374555968N00650704EA0208202071000 +B0850474555923N00650661EA0206802074000 +B0850574555877N00650603EA0207802076000 +B0851074555827N00650572EA0209402080000 +B0851174555840N00650598EA0209502086000 +B0851274555894N00650558EA0210402091000 +B0851374555916N00650579EA0210202098000 +B0851484555864N00650522EA0210902103000 +B0851584555808N00650494EA0211802108000 +B0852084555781N00650531EA0213102115000 +B0852184555750N00650535EA0212702121000 +B0852284555774N00650500EA0213302126000 +B0852384555725N00650478EA0213902130000 +B0852484555694N00650496EA0215702137000 +B0852584555702N00650445EA0215902144000 +B0853084555664N00650396EA0217802153000 +B0853184555661N00650439EA0221002165000 +B0853284555615N00650432EA0223102184000 +B0853384555639N00650429EA0225202204000 +B0853484555599N00650406EA0226002222000 +B0853584555629N00650372EA0227502237000 +B0854084555661N00650403EA0227202252000 +B0854184555696N00650447EA0225602257000 +B0854284555733N00650486EA0224502258000 +B0854384555779N00650521EA0223602255000 +B0854484555811N00650573EA0222902249000 +B0854584555839N00650630EA0222502243000 +B0855084555858N00650693EA0221502237000 +B0855184555884N00650741EA0220602230000 +B0855284555906N00650786EA0219702223047 +B0855384555924N00650838EA0219002214041 +B0855484555949N00650883EA0217602205042 +B0855584555968N00650908EA0217202199038 +B0856084555985N00650944EA0216602192042 +B0856184555995N00650972EA0218202188027 +B0856284555993N00650995EA0217802187041 +B0856384556001N00651028EA0217602185041 +B0856484556012N00651058EA0216302183041 +B0856584556025N00651094EA0214802177046 +B0857084556041N00651125EA0214702170045 +B0857184556066N00651153EA0214002163041 +B0857284556092N00651182EA0214202157041 +B0857384556133N00651191EA0215702155038 +B0857484556139N00651216EA0217502161045 +B0857584556148N00651179EA0220102172045 +B0858084556123N00651139EA0222202185044 +B0858184556119N00651134EA0224702203045 +B0858284556145N00651090EA0228202224042 +B0858384556123N00651077EA0230102247038 +B0858484556136N00651065EA0232702271048 +B0858584556123N00651015EA0236202298042 +B0859084556107N00651035EA0239002326030 +B0859184556099N00650985EA0242602354052 +B0859294556053N00650995EA0245402386038 +B0859394556068N00650969EA0248602415032 +B0859494556014N00650971EA0250302444040 +B0859594556014N00650890EA0250202467046 +B0900094556012N00650932EA0253002488045 +B0900194556004N00650877EA0252802504042 +B0900294556038N00650897EA0257102520043 +B0900394556007N00650870EA0259602544042 +B0900494556015N00650893EA0263102571046 +B0900594555992N00650859EA0266002597048 +B0901094555972N00650895EA0268102623046 +B0901194555977N00650853EA0270702646038 +B0901294555973N00650904EA0272702673044 +B0901394555923N00650867EA0273402695042 +B0901494555899N00650786EA0274602712044 +B0901594555871N00650704EA0275402727041 +B0902094555840N00650618EA0275502738047 +B0902194555809N00650533EA0274202743044 +B0902294555784N00650449EA0272402742045 +B0902394555764N00650371EA0272002739044 +B0902494555747N00650293EA0272302734038 +B0902594555729N00650215EA0273302733036 +B0903094555714N00650135EA0274302737045 +B0903194555681N00650062EA0274102742045 +B0903294555637N00649978EA0272802743044 +B0903394555599N00649881EA0272702738044 +B0903494555576N00649799EA0275402742038 +B0903594555585N00649806EA0279202752047 +B0904094555601N00649797EA0282102771040 +B0904194555583N00649764EA0284802794044 +B0904294555575N00649796EA0287502820038 +B0904394555571N00649728EA0289802844051 +B0904494555569N00649759EA0292402869042 +B0904594555554N00649715EA0294802893051 +B0905094555502N00649727EA0296002916035 +B0905194555428N00649711EA0295902932044 +B0905294555362N00649670EA0295302942047 +B0905394555322N00649577EA0293902947042 +B0905494555297N00649476EA0291402943046 +B0905594555267N00649374EA0289102931048 +B0906094555242N00649277EA0286402915043 +B0906194555213N00649195EA0283302894038 +B0906294555187N00649115EA0281002872040 +B0906394555149N00649030EA0280202850044 +B0906494555115N00648943EA0279402834048 +B0906594555080N00648866EA0278102820044 +B0907094555041N00648772EA0277902806042 +B0907204555008N00648670EA0278102798044 +B0907304554951N00648603EA0280302797037 +B0907404554910N00648557EA0281002803042 +B0907504554876N00648454EA0278902802061 +B0908004554827N00648342EA0276102793065 +B0908104554778N00648226EA0274202779061 +B0908204554725N00648116EA0272702765058 +B0908304554658N00648001EA0270002747061 +B0908404554595N00647879EA0267402726062 +B0908504554535N00647774EA0265702705057 +B0909004554480N00647669EA0263502684058 +B0909104554424N00647568EA0261102663057 +B0909204554371N00647442EA0259202641060 +B0909304554316N00647324EA0256702620061 +B0909404554268N00647221EA0255602601057 +B0909504554220N00647115EA0254502585057 +B0910004554173N00647009EA0253202570055 +B0910104554120N00646906EA0251202554056 +B0910204554071N00646799EA0249702537058 +B0910304554018N00646700EA0248402522056 +B0910404553972N00646589EA0246902506058 +B0910504553924N00646479EA0245202491061 +B0911004553875N00646370EA0244002476060 +B0911104553827N00646265EA0242002461059 +B0911204553777N00646154EA0240002443060 +B0911304553730N00646048EA0237102424066 +B0911404553677N00645931EA0234602402066 +B0911504553626N00645814EA0232702379067 +B0912004553572N00645703EA0230402358067 +B0912104553517N00645593EA0228102336067 +B0912204553460N00645486EA0226302314065 +B0912304553406N00645393EA0224702294060 +B0912404553349N00645304EA0223002275057 +B0912504553299N00645239EA0222902261044 +B0913004553251N00645165EA0221602248042 +B0913104553216N00645081EA0222102238039 +B0913204553182N00645000EA0223102234037 +B0913304553142N00645006EA0224302236036 +B0913404553177N00645023EA0225402242040 +B0913504553172N00645035EA0227202250051 +B0914004553178N00645007EA0229702260036 +B0914104553137N00644991EA0231402277040 +B0914204553176N00644962EA0233402292036 +B0914304553178N00644893EA0235102311048 +B0914414553153N00644941EA0237402333043 +B0914514553184N00644943EA0239402354040 +B0915014553219N00644878EA0242702378039 +B0915114553188N00644839EA0243702401042 +B0915214553163N00644895EA0245802420036 +B0915314553188N00644920EA0246202438041 +B0915414553223N00644863EA0249302454043 +B0915514553184N00644863EA0251602475041 +B0916014553222N00644851EA0254002496037 +B0916114553214N00644772EA0256302519035 +B0916214553166N00644726EA0256802539042 +B0916314553100N00644689EA0256202552058 +B0916414553035N00644646EA0254402555058 +B0916514552959N00644604EA0255402554047 +B0917014552887N00644569EA0256302556034 +B0917114552878N00644488EA0257402563042 +B0917214552863N00644504EA0258402571040 +B0917314552857N00644430EA0258602579048 +B0917414552819N00644439EA0258602585050 +B0917514552732N00644399EA0257402585055 +B0918014552651N00644360EA0254602577052 +B0918114552575N00644352EA0252502562054 +B0918214552524N00644375EA0255302555038 +B0918314552504N00644332EA0256302558047 +B0918414552509N00644358EA0257902564035 +B0918514552447N00644356EA0259702574039 +B0919014552451N00644356EA0261702586044 +B0919114552426N00644259EA0263302603042 +B0919214552377N00644220EA0265402621039 +B0919314552380N00644262EA0266502636042 +B0919414552403N00644193EA0267402650041 +B0919514552346N00644122EA0268202662044 +B0920014552282N00644059EA0267202670047 +B0920114552210N00643999EA0262702666064 +B0920214552131N00643912EA0259502649062 +B0920314552057N00643833EA0257402628061 +B0920414551982N00643763EA0255002607059 +B0920514551906N00643697EA0252702584059 +B0921014551832N00643622EA0251302562058 +B0921114551759N00643536EA0250002543059 +B0921214551684N00643456EA0248902526060 +B0921314551608N00643379EA0247402512060 +B0921414551529N00643303EA0245802496058 +B0921514551447N00643238EA0243502480062 +B0922014551366N00643175EA0241402461060 +B0922114551283N00643119EA0239502441060 +B0922214551203N00643060EA0237402422058 +B0922324551119N00642981EA0235402399058 +B0922424551041N00642907EA0233302379060 +B0922524550959N00642858EA0231002358060 +B0923024550879N00642814EA0228802337060 +B0923124550805N00642760EA0225902315058 +B0923224550729N00642706EA0224202291055 +B0923324550677N00642660EA0224102275041 +B0923424550637N00642614EA0224202264038 +B0923524550633N00642546EA0224402258044 +B0924024550666N00642504EA0223902255042 +B0924124550651N00642567EA0224002251042 +B0924224550602N00642526EA0224102249039 +B0924324550566N00642458EA0223302247040 +B0924424550541N00642378EA0224402246043 +B0924524550537N00642406EA0224602248043 +B0925024550477N00642362EA0225902251041 +B0925124550467N00642374EA0227002257055 +B0925224550431N00642320EA0228202264037 +B0925324550420N00642371EA0228602270032 +B0925424550353N00642348EA0229402279037 +B0925524550311N00642259EA0230502289043 +B0926024550279N00642168EA0231602299047 +B0926124550288N00642118EA0232802311048 +B0926224550254N00642175EA0234102322046 +B0926324550202N00642129EA0235402333037 +B0926424550184N00642044EA0236102343034 +B0926524550163N00641960EA0235902350041 +B0927024550152N00641871EA0236802356042 +B0927124550135N00641805EA0238802365037 +B0927224550154N00641779EA0239702377039 +B0927324550110N00641802EA0240902387044 +B0927424550121N00641771EA0243102401044 +B0927524550074N00641787EA0245102415042 +B0928024550083N00641766EA0247602433041 +B0928124550040N00641746EA0250002453046 +B0928224550036N00641772EA0252502473037 +B0928324549996N00641728EA0253502493039 +B0928424550019N00641715EA0255902514048 +B0928524550003N00641683EA0258302535048 +B0929024549978N00641715EA0260802557044 +B0929124549989N00641690EA0263102579044 +B0929224549952N00641675EA0265002601046 +B0929324549964N00641695EA0266802622043 +B0929424549903N00641708EA0267202640042 +B0929524549840N00641685EA0267702654042 +B0930024549776N00641655EA0267802665042 +B0930134549713N00641613EA0267602671040 +B0930234549648N00641578EA0266102671045 +B0930334549586N00641551EA0265102667042 +B0930434549523N00641520EA0264902662044 +B0930534549465N00641496EA0265902659038 +B0931034549398N00641467EA0266902662043 +B0931134549329N00641429EA0269902672043 +B0931234549253N00641403EA0271402685043 +B0931334549184N00641372EA0271702698044 +B0931434549115N00641338EA0271402706049 +B0931534549047N00641292EA0270102707044 +B0932034548989N00641228EA0269202704043 +B0932134548931N00641152EA0269502701043 +B0932234548860N00641102EA0268802699043 +B0932334548802N00641031EA0268502696043 +B0932434548746N00640961EA0268702693046 +B0932534548687N00640908EA0269202693039 +B0933034548617N00640840EA0268302691053 +B0933134548546N00640765EA0266902685054 +B0933234548488N00640679EA0266202679050 +B0933334548441N00640602EA0265702672042 +B0933434548392N00640537EA0265602667045 +B0933534548334N00640469EA0263902661055 +B0934034548266N00640403EA0262902650061 +B0934134548209N00640378EA0265302645038 +B0934234548151N00640360EA0264602647051 +B0934334548083N00640321EA0263002645056 +B0934434548032N00640232EA0261502638057 +B0934534547992N00640133EA0260302628059 +B0935034547953N00640047EA0258102616057 +B0935134547920N00639950EA0257002602058 +B0935234547887N00639852EA0255702589057 +B0935334547863N00639744EA0254002575056 +B0935434547845N00639628EA0252302560060 +B0935534547844N00639522EA0254102550043 +B0936034547832N00639443EA0256802552045 +B0936134547809N00639369EA0257102559042 +B0936234547791N00639287EA0257202564046 +B0936334547767N00639201EA0256002565048 +B0936434547735N00639111EA0252302558057 +B0936534547713N00638988EA0249502543061 +B0937034547695N00638872EA0247002524057 +B0937134547682N00638757EA0244602502059 +B0937234547673N00638650EA0242102480058 +B0937334547668N00638544EA0240502458046 +B0937434547665N00638440EA0239002438056 +B0937534547665N00638335EA0239102423049 +B0938034547661N00638257EA0240402416040 +B0938144547652N00638167EA0239402411039 +B0938244547631N00638089EA0238302405045 +B0938344547618N00638012EA0238702399044 +B0938444547603N00637933EA0238602396047 +B0938544547584N00637862EA0238602394044 +B0939044547569N00637804EA0238502393038 +B0939144547554N00637738EA0239102391043 +B0939244547536N00637672EA0240802395039 +B0939344547519N00637616EA0241102402043 +B0939444547502N00637552EA0239402403045 +B0939544547472N00637479EA0236002395060 +B0940044547431N00637404EA0234102379059 +B0940144547394N00637342EA0233702365053 +B0940244547352N00637289EA0232802355042 +B0940344547318N00637236EA0231102344052 +B0940444547300N00637170EA0232102335040 +B0940544547258N00637146EA0234602334034 +B0941044547236N00637114EA0238202346042 +B0941144547264N00637148EA0240302363039 +B0941244547223N00637134EA0243802384035 +B0941344547206N00637070EA0247602409041 +B0941444547186N00637000EA0251002439039 +B0941544547154N00636909EA0251102464050 +B0942044547124N00636805EA0250602481054 +B0942144547080N00636719EA0250602492055 +B0942244547030N00636627EA0248502495056 +B0942344546971N00636542EA0246702490058 +B0942444546920N00636449EA0245002480057 +B0942544546873N00636354EA0245002470044 +B0943044546833N00636264EA0246202466049 +B0943144546795N00636202EA0249902472040 +B0943244546748N00636155EA0251302485041 +B0943344546706N00636089EA0251702495036 +B0943444546671N00636024EA0250902502044 +B0943544546641N00635946EA0249102503038 +B0944044546610N00635869EA0247102497046 +B0944144546584N00635786EA0247402490047 +B0944244546564N00635703EA0249802488043 +B0944344546541N00635627EA0250802494047 +B0944444546518N00635543EA0253002503040 +B0944544546490N00635463EA0253402513046 +B0945044546466N00635381EA0253302521048 +B0945144546441N00635301EA0252802526045 +B0945244546422N00635225EA0253002529042 +B0945344546400N00635146EA0254002530038 +B0945444546383N00635073EA0256202537044 +B0945544546361N00634998EA0256702547044 +B0946054546337N00634908EA0255702554045 +B0946154546318N00634818EA0256002556043 +B0946254546295N00634735EA0255602558045 +B0946354546281N00634647EA0256402559045 +B0946454546259N00634566EA0257102562042 +B0946554546232N00634487EA0256702564039 +B0947054546207N00634421EA0259202570043 +B0947154546176N00634349EA0259702578048 +B0947254546133N00634273EA0260902587044 +B0947354546096N00634197EA0261302596043 +B0947454546059N00634129EA0260202600041 +B0947554546031N00634044EA0259802601045 +B0948054546006N00633951EA0261702604048 +B0948154545974N00633884EA0262702611038 +B0948254545938N00633807EA0263002618048 +B0948354545898N00633726EA0265302625048 +B0948454545849N00633687EA0264102634050 +B0948554545806N00633610EA0262302633050 +B0949054545781N00633514EA0261502629058 +B0949154545756N00633416EA0262702627052 +B0949254545729N00633334EA0263002629053 +B0949354545704N00633240EA0261402629057 +B0949454545675N00633143EA0259102621055 +B0949554545641N00633047EA0257502609063 +B0950054545602N00632965EA0255502596058 +B0950154545566N00632890EA0253402580054 +B0950254545542N00632801EA0251102563056 +B0950354545519N00632702EA0248702543059 +B0950454545492N00632603EA0246402523056 +B0950554545448N00632506EA0243802500061 +B0951054545410N00632407EA0242002478057 +B0951154545383N00632302EA0240302457058 +B0951254545354N00632197EA0238302437060 +B0951354545326N00632094EA0236302417060 +B0951454545297N00631992EA0234502397057 +B0951554545270N00631892EA0231702376058 +B0952054545241N00631796EA0229502355055 +B0952154545219N00631698EA0227102332059 +B0952254545187N00631613EA0225202310057 +B0952354545154N00631522EA0222902288056 +B0952454545108N00631438EA0219602264059 +B0952554545067N00631341EA0217502238057 +B0953054545055N00631252EA0218802218040 +B0953154545034N00631207EA0220702212036 +B0953254545021N00631265EA0222902214039 +B0953354545017N00631245EA0225802223042 +B0953454545015N00631268EA0228102239047 +B0953554545035N00631269EA0230502256043 +B0954064544999N00631240EA0232502276037 +B0954164545039N00631260EA0233502294044 +B0954264545011N00631258EA0235202313047 +B0954364545039N00631286EA0237502330046 +B0954464545045N00631255EA0239402349047 +B0954564545044N00631311EA0241802369043 +B0955064545064N00631294EA0244202390048 +B0955164545041N00631293EA0246802412043 +B0955264545073N00631274EA0248702434049 +B0955364545055N00631275EA0251402457044 +B0955464545075N00631313EA0253802480046 +B0955564545060N00631253EA0255602504041 +B0956064545060N00631170EA0256602524046 +B0956164545059N00631097EA0257902542043 +B0956264545052N00631020EA0257702557046 +B0956364545044N00630941EA0258002566046 +B0956464545035N00630852EA0259002574047 +B0956564545027N00630778EA0260802584037 +B0957064545019N00630698EA0258902591046 +B0957164545006N00630610EA0257302590048 +B0957264544996N00630516EA0257102585042 +B0957364544989N00630423EA0255402579040 +B0957464544979N00630347EA0255202571046 +B0957564544966N00630268EA0256702568046 +B0958064544937N00630218EA0256602568040 +B0958164544889N00630234EA0258802571040 +B0958264544851N00630215EA0261002581038 +B0958364544820N00630159EA0260402591044 +B0958464544790N00630103EA0260002597040 +B0958564544757N00630040EA0258102596041 +B0959064544727N00629965EA0255802589043 +B0959164544699N00629887EA0254202578044 +B0959264544671N00629820EA0253902567038 +B0959364544649N00629750EA0255102559036 +B0959464544636N00629693EA0257402560038 +B0959564544629N00629625EA0256602563046 +B1000064544661N00629540EA0259102567047 +B1000164544700N00629439EA0261502579045 +B1000264544722N00629325EA0261802592047 +B1000364544732N00629214EA0262502602030 +B1000464544731N00629111EA0261702608044 +B1000564544708N00629022EA0259802610044 +B1001064544670N00628946EA0256902603058 +B1001164544631N00628853EA0254202590059 +B1001264544582N00628767EA0252102574060 +B1001364544541N00628679EA0251602557048 +B1001474544501N00628592EA0250702542051 +B1001574544467N00628505EA0249502529052 +B1002074544435N00628409EA0248302516055 +B1002174544406N00628307EA0246802503055 +B1002274544379N00628202EA0244302488056 +B1002374544359N00628082EA0242002470056 +B1002474544345N00627960EA0240102452056 +B1002574544335N00627837EA0238102433057 +B1003074544326N00627709EA0236702415056 +B1003174544313N00627585EA0235302398059 +B1003274544290N00627465EA0233902381059 +B1003374544269N00627346EA0232602365051 +B1003474544247N00627240EA0231602352049 +B1003574544226N00627136EA0230502339048 +B1004074544208N00627031EA0229402328047 +B1004174544195N00626925EA0228202316047 +B1004274544176N00626822EA0227102305048 +B1004374544152N00626721EA0226102293047 +B1004474544130N00626617EA0224802281048 +B1004574544110N00626510EA0223702270047 +B1005074544092N00626401EA0222302258047 +B1005174544080N00626290EA0220502245048 +B1005274544069N00626180EA0218602230047 +B1005374544061N00626069EA0217102215047 +B1005474544051N00625960EA0215702199047 +B1005574544044N00625850EA0214202184049 +B1006074544036N00625744EA0212702169047 +B1006174544028N00625641EA0211102154047 +B1006274544019N00625537EA0209602138047 +B1006374544007N00625433EA0208202123047 +B1006474543995N00625329EA0207002109047 +B1006574543984N00625225EA0205902095049 +B1007074543974N00625121EA0204702083046 +B1007174543955N00625023EA0203402070047 +B1007274543938N00624923EA0202202057047 +B1007374543922N00624824EA0201202045047 +B1007474543911N00624725EA0200302034049 +B1007574543894N00624628EA0199202024047 +B1008074543871N00624533EA0198102013048 +B1008174543848N00624440EA0196802001047 +B1008274543827N00624348EA0195501989048 +B1008374543810N00624256EA0194301977046 +B1008474543794N00624162EA0193201965046 +B1008574543779N00624066EA0192101953047 +B1009074543760N00623970EA0191101942046 +B1009174543739N00623874EA0190101931047 +B1009274543716N00623782EA0189101920045 +B1009384543687N00623682EA0188001908047 +B1009484543664N00623590EA0186901897047 +B1009584543641N00623498EA0185601887048 +B1010084543601N00623399EA0184201875057 +B1010184543561N00623310EA0183301863043 +B1010284543541N00623220EA0182001851048 +B1010384543526N00623127EA0180801839048 +B1010484543511N00623025EA0179401827052 +B1010584543490N00622923EA0178101814053 +B1011084543470N00622820EA0176701801053 +B1011184543453N00622717EA0175201787053 +B1011284543430N00622614EA0173801773053 +B1011384543409N00622510EA0172201758053 +B1011484543389N00622406EA0170701744053 +B1011584543370N00622302EA0169101729053 +B1012084543348N00622201EA0167801714053 +B1012184543326N00622100EA0166501699053 +B1012284543301N00622002EA0164901685053 +B1012384543280N00621912EA0165001672035 +B1012484543279N00621841EA0165401666036 +B1012584543297N00621860EA0165001661043 +B1013084543262N00621827EA0165401658037 +B1013184543292N00621823EA0164801656037 +B1013284543255N00621815EA0164101652039 +B1013384543232N00621736EA0163201649039 +B1013484543186N00621678EA0161401642040 +B1013584543156N00621609EA0160701632032 +B1014084543127N00621576EA0162801627041 +B1014184543159N00621585EA0164501628040 +B1014284543132N00621566EA0165401633039 +B1014384543140N00621629EA0165401640037 +B1014484543160N00621584EA0165901644035 +B1014584543132N00621522EA0167001649042 +B1015084543120N00621556EA0168701657032 +B1015184543154N00621528EA0170301666040 +B1015284543119N00621527EA0171201678036 +B1015384543142N00621581EA0172501689037 +B1015484543169N00621541EA0173301701041 +B1015584543126N00621524EA0174201711042 +B1016084543121N00621593EA0175401722037 +B1016184543153N00621569EA0175201731042 +B1016284543155N00621497EA0175301738039 +B1016384543155N00621420EA0175701744035 +B1016484543183N00621445EA0176301750035 +B1016584543165N00621426EA0176601756043 +B1017084543208N00621466EA0177101760037 +B1017184543184N00621524EA0177901765039 +B1017294543189N00621478EA0178501771038 +B1017394543238N00621506EA0179501778041 +B1017494543226N00621547EA0179901786043 +B1017594543245N00621502EA0181301793039 +B1018094543255N00621535EA0182801802043 +B1018194543220N00621493EA0183601811039 +B1018294543191N00621428EA0184001819045 +B1018394543159N00621362EA0183601824041 +B1018494543125N00621299EA0181601825045 +B1018594543096N00621231EA0180201821043 +B1019094543052N00621148EA0177701811053 +B1019194543007N00621060EA0176001797058 +B1019294542959N00620976EA0174101783056 +B1019394542903N00620899EA0172201767047 +B1019494542857N00620842EA0171201750036 +B1019594542830N00620787EA0173101739033 +B1020094542816N00620810EA0173301735033 +B1020194542871N00620802EA0174101736038 +B1020294542855N00620741EA0174801739041 +B1020394542817N00620716EA0174701742041 +B1020494542782N00620681EA0174601745026 +B1020594542738N00620638EA0174801745040 +B1021094542704N00620585EA0178101749036 +B1021194542687N00620624EA0179701761036 +B1021294542732N00620634EA0181101774038 +B1021394542715N00620657EA0182601789034 +B1021494542720N00620595EA0184501804038 +B1021594542723N00620627EA0186701821040 +B1022094542699N00620575EA0188301839044 +B1022194542708N00620610EA0190601856044 +B1022294542714N00620590EA0192201874048 +B1022394542693N00620567EA0193601890045 +B1022494542701N00620601EA0194601906037 +B1022594542651N00620579EA0195401920044 +B1023094542681N00620541EA0196001932039 +B1023194542670N00620580EA0196501942041 +B1023294542610N00620558EA0196701951039 +B1023394542552N00620521EA0194701955045 +B1023494542494N00620482EA0193201952041 +B1023594542437N00620444EA0192201945044 +B1024094542384N00620394EA0192901938041 +B1024194542334N00620340EA0193601936048 +B1024294542285N00620294EA0193301935050 +B1024394542230N00620253EA0193201933043 +B1024494542188N00620203EA0194501933034 +B1024594542148N00620171EA0195201937047 +B1025094542101N00620135EA0194901941044 +B1025204542051N00620090EA0193901941048 +B1025304542009N00620057EA0193201939043 +B1025404541959N00620029EA0191701934042 +B1025504541907N00620007EA0190101925049 +B1026004541861N00619979EA0190401917036 +B1026104541813N00619954EA0191001913040 +B1026204541765N00619928EA0190501910038 +B1026304541715N00619887EA0190201907038 +B1026404541669N00619851EA0191301905031 +B1026504541627N00619806EA0191101907038 +B1027004541589N00619757EA0191901908042 +B1027104541578N00619700EA0195401915041 +B1027204541578N00619720EA0198901932047 +B1027304541585N00619726EA0201901953051 +B1027404541597N00619719EA0205401978046 +B1027504541578N00619683EA0208402005040 +B1028004541609N00619704EA0210902033040 +B1028104541587N00619680EA0213502061044 +B1028204541596N00619718EA0216402087035 +B1028304541549N00619700EA0218402114037 +B1028404541576N00619671EA0219602138041 +B1028504541618N00619666EA0222202161037 +B1029004541585N00619609EA0223202183045 +B1029104541547N00619546EA0222202199042 +B1029204541515N00619471EA0219702203051 +B1029304541480N00619388EA0217602198062 +B1029404541444N00619290EA0216102188058 +B1029504541420N00619186EA0214902176057 +B1030004541395N00619084EA0212502163056 +B1030104541363N00618972EA0210302146058 +B1030204541333N00618890EA0209402130045 +B1030304541306N00618814EA0208002117046 +B1030404541279N00618723EA0205502103051 +B1030504541271N00618634EA0203902087041 +B1031004541239N00618560EA0202502071051 +B1031104541208N00618485EA0201302056049 +B1031204541182N00618406EA0200002041046 +B1031304541159N00618325EA0199102026042 +B1031404541138N00618245EA0197902013047 +B1031504541105N00618176EA0196802000044 +B1032004541070N00618108EA0195001987056 +B1032104541033N00618019EA0193501972056 +B1032204540994N00617933EA0191701956058 +B1032304540946N00617850EA0189901938055 +B1032404540902N00617765EA0187901920056 +B1032504540857N00617678EA0186201902055 +B1033004540812N00617589EA0184301884056 +B1033114540758N00617500EA0181701863057 +B1033214540709N00617432EA0180201844053 +B1033314540670N00617376EA0179801828042 +B1033414540625N00617311EA0180401817038 +B1033514540581N00617238EA0181201814043 +B1034014540552N00617158EA0180401811043 +B1034114540533N00617082EA0182001811039 +B1034214540493N00617088EA0183301816037 +B1034314540506N00617129EA0184701823035 +B1034414540518N00617073EA0186601835039 +B1034514540482N00617086EA0188301849030 +B1035014540505N00617136EA0190101863039 +B1035114540516N00617085EA0192801880038 +B1035214540486N00617110EA0195401901041 +B1035314540518N00617152EA0198601926034 +B1035414540551N00617094EA0199201950037 +B1035514540513N00617033EA0201001968037 +B1036014540505N00617064EA0204201987042 +B1036114540491N00617029EA0207202011048 +B1036214540520N00617033EA0210302037041 +B1036314540489N00617024EA0213002064041 +B1036414540530N00617038EA0215402090044 +B1036514540535N00616968EA0216402117036 +B1037014540477N00616977EA0217402135039 +B1037114540459N00616936EA0218402151042 +B1037214540457N00616964EA0219602166045 +B1037314540416N00616897EA0218702176045 +B1037414540372N00616831EA0216402177054 +B1037514540317N00616745EA0214302169060 +B1038014540263N00616658EA0212302157057 +B1038114540203N00616580EA0210102142057 +B1038214540150N00616495EA0207302123065 +B1038314540089N00616404EA0205002102065 +B1038414540022N00616322EA0202502079064 +B1038514539954N00616242EA0200302056063 +B1039014539890N00616162EA0198002033061 +B1039114539830N00616097EA0196402011055 +B1039214539771N00616037EA0194401990055 +B1039314539711N00615981EA0192801970051 +B1039414539666N00615942EA0191701954042 +B1039514539621N00615900EA0190501938043 +B1040014539573N00615876EA0189901924040 +B1040114539526N00615848EA0191301916032 +B1040214539501N00615864EA0190601914036 +B1040314539546N00615838EA0191801913032 +B1040424539562N00615861EA0191601915040 +B1040524539550N00615815EA0192401919048 +B1041024539546N00615859EA0192901923038 +B1041124539526N00615823EA0192901927039 +B1041224539556N00615848EA0193801931042 +B1041324539547N00615813EA0193501934043 +B1041424539557N00615851EA0193801936039 +B1041524539511N00615868EA0192901937040 +B1042024539458N00615844EA0193101935038 +B1042124539421N00615797EA0193701936042 +B1042224539433N00615816EA0194001937044 +B1042324539388N00615829EA0195201941041 +B1042424539392N00615862EA0195301946037 +B1042524539403N00615788EA0195601949034 +B1043024539357N00615746EA0195401952041 +B1043124539301N00615740EA0192801949045 +B1043224539236N00615751EA0190501938052 +B1043324539173N00615758EA0189501924048 +B1043424539124N00615764EA0190501916037 +B1043524539077N00615773EA0189001911042 +B1044024539019N00615778EA0188601903040 +B1044124538962N00615772EA0187801896039 +B1044224538918N00615741EA0188901893041 +B1044324538904N00615659EA0189901893035 +B1044424538868N00615630EA0190101896041 +B1044524538852N00615675EA0189901898038 +B1045024538894N00615711EA0189901899044 +B1045124538878N00615745EA0189701901039 +B1045224538874N00615675EA0190101902045 +B1045324538877N00615705EA0190801904037 +B1045424538831N00615724EA0190901907041 +B1045524538794N00615668EA0191001908038 +B1046024538843N00615666EA0190101907039 +B1046124538865N00615722EA0189401905042 +B1046224538877N00615784EA0188601900036 +B1046324538850N00615787EA0188301896043 +B1046424538895N00615772EA0188401891041 +B1046524538935N00615800EA0189201891043 +B1047024538914N00615741EA0191101895040 +B1047124538901N00615791EA0191501902039 +B1047224538935N00615760EA0191801905042 +B1047324538907N00615700EA0193301912032 +B1047424538882N00615734EA0192601918040 +B1047524538920N00615762EA0192801923036 +B1048024538938N00615688EA0193901927035 +B1048124538913N00615674EA0194901933043 +B1048224538949N00615662EA0196201942041 +B1048334538918N00615623EA0197001952042 +B1048434538942N00615649EA0197701960036 +B1048534538952N00615573EA0198201967037 +B1049034538905N00615535EA0196701971042 +B1049134538836N00615492EA0193501964058 +B1049234538763N00615447EA0190601949054 +B1049334538691N00615412EA0188901932057 +B1049434538619N00615382EA0187901915056 +B1049534538542N00615355EA0186401900061 +B1050034538469N00615336EA0184501883055 +B1050134538392N00615329EA0183501867053 +B1050234538315N00615324EA0182201853056 +B1050334538238N00615323EA0181901839046 +B1050434538183N00615317EA0183001834036 +B1050534538126N00615314EA0182301831044 +B1051034538070N00615306EA0183601829039 +B1051134538013N00615305EA0181801826042 +B1051234537950N00615315EA0181401821041 +B1051334537893N00615309EA0181301817043 +B1051434537845N00615286EA0183401817031 +B1051534537800N00615254EA0183001821040 +B1052034537748N00615218EA0183301824041 +B1052134537703N00615166EA0184601827037 +B1052234537669N00615103EA0187401834039 +B1052334537642N00615039EA0187901844037 +B1052434537620N00614968EA0188101853037 +B1052534537591N00614898EA0186801859040 +B1053034537555N00614827EA0185501860044 +B1053134537522N00614755EA0187101860035 +B1053234537489N00614693EA0187101863039 +B1053334537450N00614632EA0185701864043 +B1053434537409N00614575EA0183701859037 +B1053534537365N00614512EA0184601851029 +B1054034537332N00614485EA0185201850040 +B1054134537355N00614537EA0188201853046 +B1054234537353N00614516EA0190401863039 +B1054334537347N00614536EA0192701880043 +B1054434537379N00614500EA0194601898043 +B1054534537353N00614526EA0196201917041 +B1055034537378N00614523EA0198001936041 +B1055134537380N00614481EA0199801953039 +B1055234537399N00614505EA0200601973045 +B1055334537365N00614458EA0201401985041 +B1055434537324N00614405EA0201601997039 +B1055534537273N00614338EA0200702003042 +B1056034537225N00614287EA0199002003045 +B1056144537171N00614228EA0197401995042 +B1056244537126N00614168EA0196801986045 +B1056344537095N00614108EA0198601981040 +B1056444537058N00614046EA0199601984042 +B1056544537024N00613980EA0199601987038 +B1057044536995N00613922EA0198901989043 +B1057144536963N00613860EA0198401987042 +B1057244536930N00613802EA0199401986039 +B1057344536898N00613745EA0199501988043 +B1057444536870N00613687EA0200501989034 +B1057544536846N00613623EA0200501991038 +B1058044536823N00613553EA0202101997044 +B1058144536794N00613487EA0203102004038 +B1058244536764N00613423EA0201702010043 +B1058344536727N00613357EA0201802011041 +B1058444536699N00613296EA0202602013038 +B1058544536672N00613243EA0204902019034 +B1059044536642N00613221EA0206802031043 +B1059144536670N00613252EA0209002045042 +B1059244536656N00613199EA0210802064044 +B1059344536646N00613249EA0212102081040 +B1059444536686N00613251EA0213502098040 +B1059544536681N00613177EA0216002114040 +B1100044536661N00613116EA0219202134037 +B1100144536632N00613049EA0221802158040 +B1100244536604N00612961EA0219802174045 +B1100344536575N00612887EA0217902180036 +B1100444536541N00612814EA0215902176044 +B1100544536510N00612736EA0214602168043 +B1101044536480N00612656EA0215302160036 +B1101144536457N00612598EA0219102162034 +B1101244536450N00612631EA0221702174041 +B1101344536480N00612572EA0225802193039 +B1101444536448N00612562EA0229702220037 +B1101544536478N00612606EA0231302249035 +B1102044536514N00612547EA0233802272028 +B1102144536534N00612498EA0236902299052 +B1102244536516N00612499EA0242002327034 +B1102344536550N00612492EA0244202359043 +B1102444536552N00612469EA0246702391055 +B1102544536531N00612459EA0250202423043 +B1103044536545N00612466EA0253502453039 +B1103144536561N00612397EA0255702483045 +B1103244536558N00612417EA0258702511034 +B1103344536532N00612337EA0260602539042 +B1103454536502N00612239EA0259202561041 +B1103554536476N00612143EA0258502570043 +B1104054536449N00612051EA0258702574053 +B1104154536425N00611960EA0259102579039 +B1104254536383N00611881EA0257602581056 +B1104354536324N00611801EA0256402576057 +B1104454536272N00611719EA0254702569057 +B1104554536228N00611627EA0254802561045 +B1105054536190N00611525EA0253402554054 +B1105154536152N00611420EA0252402545053 +B1105254536111N00611321EA0252102536048 +B1105354536074N00611228EA0251802530049 +B1105454536038N00611122EA0250202523056 +B1105554536002N00611015EA0248602512057 +B1106054535965N00610906EA0247402499053 +B1106154535938N00610799EA0246402488056 +B1106254535907N00610690EA0245402476054 +B1106354535882N00610610EA0247002469041 +B1106454535922N00610596EA0247102468048 +B1106554535881N00610577EA0248002469041 +B1107054535860N00610495EA0247202470042 +B1107154535851N00610407EA0247802470043 +B1107254535835N00610306EA0248002473042 +B1107354535852N00610220EA0249402476048 +B1107454535836N00610222EA0250402481043 +B1107554535793N00610140EA0251202490044 +B1108054535771N00610043EA0251802498041 +B1108154535752N00609942EA0251602504042 +B1108254535736N00609853EA0249802507036 +B1108354535718N00609754EA0248002503044 +B1108454535702N00609660EA0245702494043 +B1108554535700N00609560EA0242602479046 +B1109054535695N00609447EA0239802459057 +B1109154535682N00609314EA0236702437063 +B1109254535640N00609200EA0234202412059 +B1109354535619N00609071EA0231802388058 +B1109454535614N00608929EA0229702363057 +B1109554535626N00608794EA0227502339058 +B1110054535637N00608657EA0225502315054 +B1110154535648N00608522EA0223502292057 +B1110254535661N00608389EA0221602269059 +B1110354535672N00608259EA0219702248058 +B1110454535667N00608125EA0217302227054 +B1110554535670N00607998EA0215502206059 +B1111054535664N00607874EA0213802187054 +B1111154535667N00607748EA0211302166058 +B1111264535671N00607611EA0209202143060 +B1111364535684N00607486EA0206502121060 +B1111464535691N00607360EA0205002098059 +B1111564535683N00607266EA0204302080043 +B1112064535684N00607178EA0202402063043 +B1112164535690N00607090EA0199102044053 +B1112264535700N00606994EA0196902022047 +B1112364535726N00606957EA0198102005037 +B1112464535755N00607008EA0199701999043 +B1112564535715N00606994EA0199101996028 +B1113064535689N00606935EA0200901992031 +B1113164535698N00606942EA0203301998048 +B1113264535665N00606926EA0205302010037 +B1113364535679N00606978EA0205902023048 +B1113464535631N00606982EA0205702034042 +B1113564535638N00606925EA0205302041037 +B1114064535658N00606871EA0205802044034 +B1114164535680N00606833EA0207102051036 +B1114264535668N00606858EA0209602060046 +B1114364535694N00606841EA0212102073043 +B1114464535658N00606852EA0214002090041 +B1114564535687N00606824EA0216402109036 +B1115064535668N00606867EA0218002129042 +B1115164535664N00606819EA0219302145038 +B1115264535696N00606859EA0220602164039 +B1115364535730N00606910EA0222902182035 +B1115464535700N00606932EA0223802199040 +B1115564535724N00606892EA0226102213035 +B1116064535709N00606926EA0227702231039 +B1116164535731N00606882EA0229902249034 +B1116264535718N00606929EA0231702268038 +B1116364535723N00606872EA0232502285042 +B1116464535727N00606920EA0233702300044 +B1116564535723N00606872EA0234002312042 +B1117064535749N00606906EA0236502324046 +B1117164535707N00606904EA0236902338040 +B1117264535747N00606863EA0237602348039 +B1117364535743N00606907EA0238802358047 +B1117464535734N00606854EA0240402370039 +B1117564535740N00606896EA0241502382046 +B1118064535696N00606846EA0240802393047 +B1118164535668N00606749EA0239502397044 +B1118264535640N00606654EA0238702396043 +B1118364535610N00606552EA0236402391044 +B1118464535551N00606475EA0234902382045 +B1118574535484N00606385EA0233002367056 +B1119074535415N00606310EA0231502352059 +B1119174535346N00606227EA0230502338060 +B1119274535277N00606139EA0229302325058 +B1119374535213N00606051EA0227702310058 +B1119474535143N00605977EA0226102296058 +B1119574535077N00605889EA0224802281058 +B1120074535017N00605795EA0223302266058 +B1120174534958N00605699EA0221702251058 +B1120274534899N00605605EA0220002236059 +B1120374534838N00605509EA0218402220058 +B1120474534772N00605421EA0217002204058 +B1120574534710N00605326EA0215802189058 +B1121074534646N00605234EA0214902175058 +B1121174534583N00605140EA0214002162058 +B1121274534523N00605043EA0212802150058 +B1121374534459N00604954EA0211402137057 +B1121474534396N00604861EA0210002124058 +B1121574534334N00604767EA0208502111057 +B1122074534280N00604691EA0207802098045 +B1122174534235N00604618EA0207202087044 +B1122274534192N00604537EA0206002077043 +B1122374534146N00604457EA0204502066044 +B1122474534098N00604385EA0203502054044 +B1122574534044N00604327EA0202802044045 +B1123074533989N00604267EA0202702035042 +B1123174533944N00604202EA0203302030034 +B1123274533969N00604164EA0205002030040 +B1123374533940N00604186EA0206202036037 +B1123474533955N00604135EA0206702043040 +B1123574533983N00604176EA0208902052035 +B1124074533936N00604161EA0210402063045 +B1124174533953N00604160EA0212302076036 +B1124274533916N00604131EA0212602089040 +B1124374533959N00604100EA0214202101042 +B1124474533937N00604104EA0215502113045 +B1124574533954N00604098EA0216802127040 +B1125074533919N00604039EA0217202139039 +B1125174533891N00603953EA0216402149042 +B1125274533862N00603958EA0213202150048 +B1125374533902N00604017EA0212402142050 +B1125474533929N00604082EA0212002134048 +B1125574533949N00604148EA0213802130037 +B1126074533982N00604169EA0213402132042 +B1126174533973N00604087EA0213302131041 +B1126274533918N00604058EA0213202130048 +B1126374533951N00604042EA0213402130039 +B1126484533912N00604085EA0213602131040 +B1126584533848N00604084EA0212602131042 +B1127084533778N00604050EA0211102126044 +B1127184533719N00603990EA0209102117046 +B1127284533662N00603930EA0207602105043 +B1127384533608N00603873EA0205902091045 +B1127484533551N00603827EA0204402076042 +B1127584533491N00603793EA0202602061045 +B1128084533430N00603750EA0202202046040 +B1128184533376N00603707EA0201602035043 +B1128284533324N00603658EA0201002025044 +B1128384533276N00603621EA0201702017033 +B1128484533244N00603628EA0202402016037 +B1128584533287N00603645EA0203802019040 +B1129084533284N00603565EA0204402023035 +B1129184533241N00603517EA0203702027042 +B1129284533189N00603502EA0202802027033 +B1129384533136N00603499EA0202702025040 +B1129484533083N00603520EA0203702024037 +B1129584533083N00603576EA0202702025046 +B1130084533134N00603610EA0204302027044 +B1130184533170N00603567EA0205302032039 +B1130284533145N00603511EA0206802038037 +B1130384533099N00603522EA0208702048034 +B1130484533114N00603564EA0210102060038 +B1130584533138N00603507EA0211002073043 +B1131084533095N00603455EA0212402085039 +B1131184533077N00603497EA0212802096039 +B1131284533111N00603510EA0213402106029 +B1131384533143N00603435EA0213102113039 +B1131484533107N00603361EA0213002118041 +B1131584533063N00603296EA0209802117045 +B1132084533021N00603192EA0206702105056 +B1132184532968N00603086EA0203702087062 +B1132284532922N00602971EA0201302066060 +B1132384532876N00602857EA0198902043059 +B1132484532814N00602764EA0196402019058 +B1132584532746N00602684EA0193801995057 +B1133084532683N00602603EA0190601970056 +B1133184532630N00602511EA0189501944046 +B1133284532588N00602446EA0188301923041 +B1133384532542N00602385EA0187901906043 +B1133484532492N00602325EA0187301893044 +B1133584532447N00602260EA0186601882043 +B1134084532405N00602189EA0185801872042 +B1134184532363N00602117EA0184901862042 +B1134294532312N00602051EA0184101852043 +B1134394532261N00602001EA0182901843045 +B1134494532211N00601941EA0182001833043 +B1134594532161N00601886EA0180701824042 +B1135094532112N00601857EA0179901814043 +B1135194532078N00601826EA0179701806040 +B1135294532054N00601786EA0179201799041 +B1135394532036N00601718EA0178701794045 +B1135494532064N00601677EA0177001788039 +B1135594532027N00601698EA0175101776037 +B1136094531982N00601669EA0173301763045 +B1136194531931N00601620EA0171101748042 +B1136294531867N00601565EA0167801729056 +B1136394531796N00601520EA0164901707056 +B1136494531729N00601454EA0162701682058 +B1136594531666N00601381EA0160901660057 +B1137094531607N00601321EA0159901640047 +B1137194531559N00601265EA0159201624043 +B1137294531516N00601199EA0158401610043 +B1137394531469N00601142EA0157101598042 +B1137494531425N00601077EA0155701584044 +B1137594531385N00600999EA0154901571047 +B1138094531338N00600930EA0153901559045 +B1138194531289N00600860EA0152501546046 +B1138294531247N00600787EA0150901533046 +B1138394531203N00600713EA0149601519048 +B1138494531158N00600641EA0148201506042 +B1138594531110N00600583EA0146701495046 +B1139094531063N00600521EA0145301482047 +B1139194531014N00600450EA0143001466059 +B1139294530957N00600368EA0140901447059 +B1139394530897N00600298EA0138901428058 +B1139494530838N00600225EA0137001408057 +B1139594530785N00600155EA0135401389057 +B1140094530729N00600080EA0133701371058 +B1140194530669N00600014EA0132001353058 +B1140294530609N00559952EA0130301339056 +B1140394530548N00559889EA0128801321057 +B1140494530492N00559822EA0127601303053 +B1140594530445N00559754EA0126301286052 +B1141094530397N00559688EA0124901271051 +B1141194530345N00559628EA0123201255053 +B1141294530293N00559569EA0121601239051 +B1141394530240N00559508EA0120301224052 +B1141494530179N00559458EA0118501209053 +B1141594530118N00559406EA0117001193054 +B1142094530063N00559344EA0115401177050 +B1142204530002N00559281EA0114301161053 +B1142304529945N00559229EA0113301148051 +B1142404529886N00559179EA0112001135052 +B1142504529825N00559129EA0110701122052 +B1143004529768N00559076EA0109401109050 +B1143104529714N00559019EA0108101096052 +B1143204529658N00558962EA0106801083051 +B1143304529602N00558904EA0105101069049 +B1143404529535N00558863EA0103801054052 +B1143504529477N00558814EA0102001039051 +B1144004529421N00558765EA0099701022052 +B1144104529367N00558729EA0097501004040 +B1144204529314N00558680EA0094400982046 +B1144304529258N00558634EA0091600959050 +B1144404529200N00558584EA0088800933045 +B1144504529141N00558540EA0085900906046 +B1145004529081N00558486EA0084600881048 +B1145104529024N00558440EA0084300863034 +B1145204528974N00558406EA0082900850040 +B1145304528923N00558360EA0081600835040 +B1145404528868N00558318EA0079900820038 +B1145504528815N00558267EA0078500804038 +B1146004528763N00558210EA0077900791038 +B1146104528711N00558155EA0077200780040 +B1146204528676N00558096EA0077600773033 +B1146304528678N00558124EA0077500769038 +B1146404528617N00558125EA0078100766035 +B1146504528619N00558086EA0078300766035 +B1147004528618N00558136EA0078600767037 +B1147104528564N00558120EA0078900768031 +B1147204528570N00558088EA0079300770035 +B1147304528564N00558145EA0080500775037 +B1147404528519N00558117EA0080800781031 +B1147504528533N00558108EA0081700785036 +B1148004528488N00558144EA0082600794035 +B1148104528468N00558089EA0083200800037 +B1148204528486N00558101EA0083900805031 +B1148304528444N00558148EA0084400813037 +B1148404528417N00558096EA0085800819034 +B1148504528405N00558134EA0086600826040 +B1149004528370N00558088EA0087700834036 +B1149104528384N00558078EA0088700841039 +B1149204528335N00558089EA0089800853035 +B1149304528336N00558042EA0090300862037 +B1149404528327N00558092EA0091900873041 +B1149504528281N00558062EA0091800883037 +B1150014528308N00558033EA0092500889041 +B1150114528317N00558001EA0094900898037 +B1150214528268N00558002EA0096400911036 +B1150314528278N00558043EA0098000926042 +B1150414528291N00557997EA0098700941036 +B1150514528273N00557930EA0099300953039 +B1151014528286N00557938EA0101100966037 +B1151114528243N00557923EA0102800979034 +B1151214528262N00557933EA0104800995040 +B1151314528218N00557926EA0107101011031 +B1151414528245N00557895EA0107501027039 +B1151514528244N00557951EA0108701041032 +B1152014528201N00557933EA0110801055035 +B1152114528226N00557905EA0111001068038 +B1152214528225N00557963EA0112301079037 +B1152314528192N00557941EA0113901091036 +B1152414528221N00557977EA0114501101045 +B1152514528186N00557993EA0116101114042 +B1153014528217N00557981EA0116401125044 +B1153114528202N00558050EA0117201135047 +B1153214528178N00558007EA0118301143038 +B1153314528211N00558036EA0118401152046 +B1153414528175N00558063EA0119001159042 +B1153514528151N00558011EA0119701165039 +B1154014528173N00558029EA0120401172043 +B1154114528136N00558017EA0120901178043 +B1154214528111N00557964EA0120201183038 +B1154314528075N00557915EA0118901183040 +B1154414528039N00557868EA0116801179042 +B1154514527990N00557836EA0113201167054 +B1155014527920N00557822EA0110101147055 +B1155114527846N00557802EA0109601125044 +B1155214527816N00557753EA0110501110033 +B1155314527837N00557747EA0110001102042 +B1155414527797N00557785EA0109701096035 +B1155514527743N00557757EA0111001091035 +B1156014527734N00557719EA0111501092043 +B1156114527723N00557778EA0112701096036 +B1156214527684N00557744EA0113301102039 +B1156314527676N00557679EA0113501109039 +B1156414527677N00557603EA0115201115032 +B1156514527679N00557636EA0115401123042 +B1157014527662N00557573EA0117101130039 +B1157114527665N00557610EA0117401137033 +B1157214527630N00557553EA0119701146034 +B1157314527593N00557523EA0120501159037 +B1157424527625N00557529EA0122001173037 +B1157524527619N00557463EA0124001189040 +B1158024527631N00557490EA0125701205037 +B1158124527664N00557437EA0126901222040 +B1158224527628N00557397EA0126501233038 +B1158324527574N00557397EA0128101242041 +B1158424527570N00557331EA0129101252043 +B1158524527586N00557345EA0128801262042 +B1159024527544N00557305EA0129601268035 +B1159124527542N00557215EA0129501274044 +B1159224527548N00557118EA0126201274056 +B1159324527553N00557000EA0125001263053 +B1159424527567N00556915EA0126401258037 +B1159524527570N00556933EA0127901257035 +B1200024527574N00556858EA0129301261038 +B1200124527613N00556867EA0131001270037 +B1200224527587N00556855EA0132301282045 +B1200324527622N00556845EA0134501295045 +B1200424527624N00556811EA0136601308038 +B1200524527655N00556835EA0138201324042 +B1201024527625N00556811EA0140001340038 +B1201124527660N00556804EA0142001356039 +B1201224527623N00556798EA0144301373041 +B1201324527652N00556765EA0146501392039 +B1201424527634N00556778EA0148501414047 +B1201524527661N00556787EA0150801435037 +B1202024527641N00556762EA0152801457036 +B1202124527662N00556783EA0154601479041 +B1202224527629N00556754EA0156001500039 +B1202324527656N00556754EA0157401518045 +B1202424527620N00556708EA0158801535041 +B1202524527597N00556622EA0160501551037 +B1203024527558N00556567EA0160801566045 +B1203124527518N00556517EA0159301575043 +B1203224527479N00556466EA0158901578033 +B1203324527436N00556414EA0159401580038 +B1203424527391N00556383EA0160201584040 +B1203524527419N00556423EA0159401587043 +B1204024527469N00556456EA0159201588041 +B1204124527512N00556502EA0157601587040 +B1204224527553N00556546EA0157101582039 +B1204324527597N00556589EA0157901576038 +B1204424527640N00556621EA0160701575040 +B1204524527624N00556599EA0163501583036 +B1205034527629N00556608EA0165701600046 +B1205134527647N00556575EA0168401618046 +B1205234527624N00556565EA0171301640040 +B1205334527655N00556571EA0174601665043 +B1205434527659N00556547EA0178401694050 +B1205534527638N00556548EA0182301727050 +B1206034527644N00556556EA0185501760051 +B1206134527663N00556534EA0189201793047 +B1206234527643N00556508EA0192301827040 +B1206334527672N00556486EA0195401858044 +B1206434527634N00556465EA0198101890044 +B1206534527656N00556457EA0201801922042 +B1207034527634N00556420EA0203501952042 +B1207134527631N00556458EA0205301980037 +B1207234527575N00556443EA0203802001042 +B1207334527517N00556435EA0202602011042 +B1207434527453N00556430EA0200502011053 +B1207534527382N00556415EA0198602005056 +B1208034527311N00556406EA0196401994059 +B1208134527240N00556395EA0194101980056 +B1208234527169N00556398EA0192301963057 +B1208334527103N00556404EA0190801946059 +B1208434527036N00556407EA0189601931055 +B1208534526967N00556413EA0188201916056 +B1209034526901N00556426EA0187101902057 +B1209134526834N00556445EA0186101889048 +B1209234526768N00556449EA0184301875047 +B1209334526706N00556451EA0185501863044 +B1209434526652N00556448EA0188001861045 +B1209534526634N00556488EA0188801866040 +B1210034526682N00556473EA0191001873039 +B1210134526660N00556433EA0192901888039 +B1210234526607N00556422EA0194601904045 +B1210334526556N00556406EA0195101919041 +B1210434526497N00556398EA0195401931044 +B1210534526431N00556390EA0196301938045 +B1211034526372N00556374EA0197901948050 +B1211134526305N00556353EA0198901960052 +B1211234526234N00556335EA0199701969046 +B1211334526169N00556313EA0200001978052 +B1211434526103N00556282EA0200901986057 +B1211534526035N00556252EA0200601994055 +B1212034525963N00556220EA0200901997044 +B1212134525899N00556181EA0201002000060 +B1212234525844N00556141EA0203102006050 +B1212334525801N00556111EA0204502015037 +B1212434525756N00556086EA0207302027031 +B1212544525709N00556058EA0207002044045 +B1213044525643N00556019EA0205702051057 +B1213144525573N00555984EA0203902049044 +B1213244525506N00555970EA0203702045050 +B1213344525447N00555935EA0202402040057 +B1213444525384N00555906EA0202902035038 +B1213544525334N00555873EA0202002031043 +B1214044525280N00555840EA0200802024047 +B1214144525226N00555824EA0200802017039 +B1214244525174N00555795EA0199802012044 +B1214344525122N00555755EA0198902005047 +B1214444525061N00555723EA0198201998041 +B1214544525004N00555698EA0199201993041 +B1215044524948N00555654EA0201801996044 +B1215144524897N00555620EA0203702005044 +B1215244524846N00555583EA0205202018042 +B1215344524787N00555536EA0205502029045 +B1215444524741N00555489EA0206102038040 +B1215544524687N00555459EA0207802048051 +B1216044524638N00555411EA0209702061040 +B1216144524586N00555364EA0209102072042 +B1216244524519N00555315EA0208302075052 +B1216344524455N00555267EA0208102075046 +B1216444524396N00555228EA0212502083036 +B1216544524356N00555176EA0213502099041 +B1217044524307N00555125EA0214102112046 +B1217144524259N00555081EA0214002122051 +B1217244524198N00555029EA0215202129045 +B1217344524132N00554977EA0215602136040 +B1217444524071N00554924EA0215202140053 +B1217544524012N00554874EA0216402145050 +B1218044523950N00554815EA0217002150051 +B1218144523888N00554770EA0217802157047 +B1218244523829N00554731EA0218602163047 +B1218344523772N00554696EA0218402170046 +B1218444523700N00554653EA0216502169056 +B1218544523626N00554599EA0217402167058 +B1219044523551N00554560EA0218302169057 +B1219144523478N00554530EA0220302175051 +B1219244523420N00554505EA0221302185047 +B1219344523359N00554498EA0220402192050 +B1219444523300N00554503EA0220202195041 +B1219544523237N00554479EA0220302196051 +B1220044523167N00554449EA0220802198050 +B1220144523095N00554424EA0219602198055 +B1220244523010N00554392EA0219002195057 +B1220344522929N00554354EA0218102191055 +B1220454522842N00554321EA0217302184060 +B1220554522762N00554298EA0216202176057 +B1221054522681N00554272EA0216102170057 +B1221154522598N00554249EA0215302163055 +B1221254522518N00554218EA0215102157055 +B1221354522444N00554194EA0214002151052 +B1221454522369N00554181EA0213002144057 +B1221554522292N00554153EA0212002136057 +B1222054522216N00554124EA0211202128054 +B1222154522138N00554109EA0211202120061 +B1222254522073N00554103EA0212702117048 +B1222354522021N00554093EA0214402121030 +B1222454521976N00554048EA0215402128045 +B1222554521929N00554012EA0217802139043 +B1223054521880N00553981EA0219102153040 +B1223154521827N00553944EA0219802167039 +B1223254521771N00553912EA0219302175040 +B1223354521717N00553878EA0218802179042 +B1223454521664N00553827EA0219502181045 +B1223554521615N00553773EA0220802186033 +B1224054521571N00553742EA0221802193043 +B1224154521536N00553706EA0225002204040 +B1224254521494N00553676EA0228802225044 +B1224354521443N00553645EA0230902249038 +B1224454521400N00553598EA0232402269038 +B1224554521354N00553554EA0235302290037 +B1225054521305N00553507EA0237102313045 +B1225154521248N00553446EA0237602332052 +B1225254521192N00553398EA0235602343051 +B1225354521131N00553345EA0233502343053 +B1225454521071N00553299EA0230302335059 +B1225554521013N00553254EA0228402321055 +B1226054520966N00553200EA0229202308052 +B1226154520921N00553164EA0227602300046 +B1226254520882N00553121EA0227802290037 +B1226354520843N00553081EA0228702286048 +B1226454520795N00553045EA0228602285045 +B1226554520750N00553018EA0228702285042 +B1227054520707N00552985EA0227402282047 +B1227154520655N00552947EA0227302277046 +B1227254520606N00552910EA0228802276042 +B1227354520560N00552864EA0229002279048 +B1227454520512N00552817EA0229502283047 +B1227554520462N00552780EA0229802285040 +B1228054520411N00552735EA0229502287044 +B1228164520363N00552690EA0231602290044 +B1228264520322N00552656EA0233602300036 +B1228364520270N00552618EA0235602313048 +B1228464520218N00552587EA0238902332044 +B1228564520184N00552541EA0240902353032 +B1229064520140N00552508EA0240802370041 +B1229164520081N00552484EA0240502381046 +B1229264520030N00552439EA0241902388041 +B1229364519980N00552394EA0242502398044 +B1229464519923N00552350EA0244102408048 +B1229564519874N00552310EA0246302420047 +B1230064519818N00552274EA0246602434042 +B1230164519762N00552239EA0245102441046 +B1230264519706N00552208EA0244102441045 +B1230364519651N00552167EA0241502436043 +B1230464519598N00552116EA0240502426046 +B1230564519546N00552063EA0239102416043 +B1231064519484N00552023EA0236202402054 +B1231164519419N00551987EA0235702386049 +B1231264519358N00551956EA0235802376047 +B1231364519306N00551923EA0234302365048 +B1231464519260N00551892EA0234302356050 +B1231564519214N00551853EA0234302350038 +B1232064519168N00551821EA0232802345046 +B1232164519106N00551782EA0231302336052 +B1232264519044N00551748EA0231102326052 +B1232364518983N00551719EA0231002321055 +B1232464518920N00551684EA0230502316055 +B1232564518867N00551644EA0231602312036 +B1233064518818N00551601EA0232202314034 +B1233164518762N00551567EA0232202315045 +B1233264518708N00551535EA0231702316042 +B1233364518654N00551503EA0231702316038 +B1233464518621N00551457EA0232102316040 +B1233564518603N00551408EA0233902319040 +B1234064518591N00551350EA0235502326034 +B1234164518576N00551278EA0236302335048 +B1234264518555N00551211EA0237102345043 +B1234364518537N00551135EA0235402351046 +B1234464518515N00551055EA0234202350044 +B1234564518488N00550976EA0233302346044 +B1235064518465N00550903EA0232502340044 +B1235164518442N00550818EA0231102332055 +B1235264518419N00550732EA0230002324052 +B1235364518401N00550649EA0227602313050 +B1235464518379N00550561EA0224902296057 +B1235564518362N00550474EA0222602277055 +B1236064518345N00550384EA0220602257051 +B1236174518322N00550286EA0218602234048 +B1236274518302N00550193EA0218102216056 +B1236374518290N00550128EA0218002204038 +B1236474518277N00550057EA0216702193042 +B1236574518255N00549997EA0215002181045 +B1237074518234N00549943EA0214802170040 +B1237174518217N00549886EA0213302161041 +B1237274518201N00549822EA0212302149040 +B1237374518237N00549762EA0212502139046 +B1237474518284N00549716EA0212302134040 +B1237574518323N00549757EA0211202128044 +B1238074518284N00549832EA0209702120038 +B1238174518222N00549828EA0209302111044 +B1238274518170N00549833EA0208502104040 +B1238374518118N00549820EA0208102097040 +B1238474518069N00549800EA0207202089043 +B1238574518042N00549799EA0207002083041 +B1239074518017N00549787EA0209102081039 +B1239174518060N00549789EA0210802085042 +B1239274518047N00549814EA0212902093034 +B1239374518094N00549809EA0214602108038 +B1239474518088N00549869EA0216502122029 +B1239574518097N00549841EA0218602140042 +B1240074518106N00549890EA0221402158035 +B1240174518146N00549867EA0222802179040 +B1240274518150N00549940EA0223102197041 +B1240374518121N00549929EA0224202208032 +B1240474518160N00549900EA0224302221044 +B1240574518167N00549969EA0226002232041 +B1241074518166N00549933EA0226602244037 +B1241174518223N00549975EA0225202249042 +B1241274518209N00550061EA0226102252042 +B1241374518174N00550110EA0227302258037 +B1241474518136N00550110EA0228102264039 +B1241574518097N00550076EA0228602271043 +B1242074518066N00550021EA0230402278039 +B1242174518042N00550052EA0232402288044 +B1242274518072N00550030EA0234402303043 +B1242374518039N00550009EA0234102317039 +B1242474518013N00549975EA0236602329039 +B1242574518030N00550007EA0238802346044 +B1243074517991N00550006EA0240102362039 +B1243174517966N00549964EA0242402379041 +B1243274517943N00549911EA0245102399045 +B1243374517918N00549866EA0246902420041 +B1243474517897N00549811EA0245102436050 +B1243584517883N00549726EA0242502439058 +B1244084517882N00549650EA0240902435053 +B1244184517877N00549565EA0238602425058 +B1244284517880N00549485EA0239902414046 +B1244384517892N00549428EA0241202410039 +B1244484517882N00549385EA0242602412043 +B1244584517865N00549321EA0242802416042 +B1245084517843N00549245EA0240302417049 +B1245184517826N00549167EA0238602411056 +B1245284517810N00549076EA0237202400055 +B1245384517791N00548986EA0235802389061 +B1245484517773N00548897EA0235102377056 +B1245584517756N00548804EA0234002367058 +B1246084517742N00548708EA0232302356059 +B1246184517727N00548615EA0230602342062 +B1246284517714N00548517EA0230002329059 +B1246384517700N00548422EA0230202319058 +B1246484517699N00548343EA0232702317033 +B1246584517673N00548360EA0233302320042 +B1247084517726N00548394EA0233702325044 +B1247184517742N00548328EA0234502332040 +B1247284517731N00548247EA0233602335052 +B1247384517718N00548155EA0233002334048 +B1247484517699N00548070EA0232202331054 +B1247584517680N00547982EA0233002329051 +B1248084517657N00547896EA0233102330054 +B1248184517631N00547808EA0233002330050 +B1248284517608N00547739EA0235302332035 +B1248384517603N00547677EA0238402344036 +B1248484517580N00547637EA0239902359037 +B1248584517604N00547668EA0242702377038 +B1249084517634N00547594EA0244702397040 +B1249184517622N00547520EA0248602420036 +B1249284517594N00547474EA0252302450039 +B1249384517616N00547494EA0255602479042 +B1249484517582N00547480EA0258202509038 +B1249584517552N00547511EA0261102538041 +B1250084517588N00547511EA0264302568043 +B1250184517561N00547468EA0265702596045 +B1250284517519N00547423EA0268002617040 +B1250384517489N00547384EA0270302640039 +B1250484517460N00547335EA0271102662048 +B1250584517428N00547264EA0272902680058 +B1251084517407N00547189EA0274602699045 +B1251184517383N00547120EA0275002715046 +B1251284517361N00547051EA0275302727048 +B1251384517338N00546978EA0276602738045 +B1251494517307N00546886EA0276202749045 +B1251594517267N00546786EA0274502750054 +B1252094517225N00546690EA0272602745054 +B1252194517178N00546600EA0270402735057 +B1252294517127N00546515EA0268302721061 +B1252394517076N00546434EA0266202705060 +B1252494517027N00546357EA0264202688059 +B1252594516983N00546272EA0262002669056 +B1253094516939N00546187EA0260402649057 +B1253194516891N00546105EA0259102631058 +B1253294516839N00546033EA0257802615058 +B1253394516787N00545957EA0256202599059 +B1253494516735N00545886EA0254602583059 +B1253594516680N00545819EA0252702566060 +B1254094516626N00545747EA0250802549059 +B1254194516568N00545684EA0248702531056 +B1254294516510N00545620EA0245902511057 +B1254394516450N00545563EA0243102488058 +B1254494516393N00545511EA0240202463056 +B1254594516338N00545466EA0237002437056 +B1255094516283N00545423EA0234402409055 +B1255194516235N00545392EA0231602382057 +B1255294516186N00545372EA0229702356056 +B1255394516134N00545353EA0227902332056 +B1255494516075N00545343EA0226302310058 +B1255594516024N00545337EA0222302287054 +B1256094515966N00545334EA0218702259050 +B1256194515911N00545333EA0215202228051 +B1256294515861N00545346EA0211102195054 +B1256394515807N00545365EA0206902160056 +B1256494515745N00545362EA0205302125050 +B1256594515684N00545364EA0204502098052 +B1257094515635N00545362EA0204702079046 +B1257194515595N00545369EA0204502067041 +B1257294515558N00545376EA0204702059049 +B1257394515525N00545386EA0202602051039 +B1257494515554N00545332EA0200002040039 +B1257594515589N00545410EA0197602023041 +B1258094515613N00545495EA0196402005039 +B1258194515633N00545562EA0196101991037 +B1258294515612N00545529EA0196801980041 +B1258394515655N00545546EA0195801975038 +B1258494515682N00545605EA0196301968035 +B1258594515680N00545658EA0197801968044 +B1259094515691N00545636EA0199101972046 +B1259194515677N00545615EA0200701979040 +B1259304515714N00545642EA0202101989043 +B1259404515699N00545615EA0203702001048 +B1259504515704N00545652EA0206102015041 +B1300004515722N00545607EA0207802032042 +B1300104515720N00545639EA0210102050038 +B1300204515726N00545586EA0211702069045 +B1300304515726N00545613EA0213602088039 +B1300404515742N00545565EA0214902105042 +B1300504515762N00545626EA0215302119044 +B1301004515725N00545628EA0216602133040 +B1301104515754N00545584EA0217202143042 +B1301204515792N00545615EA0216402152043 +B1301304515834N00545651EA0215702155039 +B1301404515871N00545685EA0214802155042 +B1301504515915N00545737EA0215002153048 +B1302004515969N00545787EA0215102152043 +B1302104516021N00545843EA0215002151042 +B1302204516073N00545901EA0216202151043 +B1302304516119N00545966EA0218002155044 +B1302404516102N00545994EA0217902161044 +B1302504516140N00545951EA0219502169042 +B1303004516196N00545999EA0219202177041 +B1303104516240N00546060EA0217402179044 +B1303204516286N00546119EA0215102175042 +B1303304516333N00546196EA0213102165049 +B1303404516384N00546272EA0210802150050 +B1303504516448N00546324EA0211202136036 +B1304004516503N00546373EA0213402130036 +B1304104516528N00546432EA0215702135049 +B1304204516548N00546408EA0218302146041 +B1304304516538N00546425EA0220202161046 +B1304404516599N00546429EA0222302178043 +B1304504516659N00546462EA0222902195041 +B1305004516716N00546510EA0220302204045 +B1305104516777N00546562EA0218402203041 +B1305204516840N00546601EA0216202195042 +B1305304516905N00546649EA0214102183045 +B1305404516979N00546686EA0212102167041 +B1305504517056N00546725EA0210202150045 +B1306004517145N00546762EA0210202134036 +B1306104517224N00546788EA0211102124039 +B1306204517283N00546829EA0210002119041 +B1306304517263N00546845EA0210002113042 +B1306404517273N00546785EA0210402108044 +B1306504517307N00546713EA0210902108039 +B1307004517289N00546716EA0211102108038 +B1307114517343N00546788EA0211902111038 +B1307214517361N00546758EA0212902114033 +B1307314517364N00546812EA0214402120036 +B1307414517422N00546786EA0215302130040 +B1307514517406N00546758EA0216602140036 +B1308014517416N00546836EA0217902150035 +B1308114517484N00546846EA0219302163037 +B1308214517461N00546833EA0221002176037 +B1308314517453N00546829EA0222502189043 +B1308414517472N00546891EA0224702205043 +B1308514517492N00546886EA0226702221044 +B1309014517471N00546924EA0228402239041 +B1309114517493N00546883EA0230202256041 +B1309214517490N00546934EA0231502272043 +B1309314517444N00546938EA0232902288042 +B1309414517392N00546950EA0233302301043 +B1309514517350N00546963EA0233802312037 +B1310014517311N00546961EA0232702319041 +B1310114517274N00546953EA0232302321042 +B1310214517236N00546966EA0233602322043 +B1310314517210N00546967EA0235702329042 +B1310414517256N00547008EA0238202340038 +B1310514517273N00547001EA0240002353043 +B1311014517286N00547075EA0243102372046 +B1311114517324N00547067EA0244702392040 +B1311214517327N00547095EA0247302412039 +B1311314517381N00547120EA0249402435045 +B1311414517383N00547113EA0251902455041 +B1311514517445N00547150EA0253602478039 +B1312014517475N00547251EA0256602501045 +B1312114517502N00547234EA0258102520037 +B1312214517503N00547204EA0260802540043 +B1312314517534N00547277EA0263402566044 +B1312414517538N00547379EA0266002592043 +B1312514517547N00547483EA0269502620037 +B1313014517557N00547583EA0270502646054 +B1313114517571N00547694EA0270202665052 +B1313214517587N00547806EA0270002680054 +B1313314517592N00547925EA0267902684054 +B1313414517591N00548048EA0264802678057 +B1313514517601N00548175EA0261602664058 +B1314014517617N00548274EA0260402648058 +B1314114517628N00548379EA0260102633051 +B1314214517642N00548472EA0258602620040 +B1314314517659N00548558EA0257202607045 +B1314414517673N00548651EA0256302596045 +B1314514517689N00548739EA0255002584045 +B1315024517706N00548845EA0253602571047 +B1315124517720N00548942EA0252402559048 +B1315224517722N00549031EA0251102548043 +B1315324517721N00549114EA0249302534044 +B1315424517724N00549196EA0247402518040 +B1315524517747N00549279EA0247402503046 +B1316024517762N00549352EA0248902495042 +B1316124517772N00549422EA0249902494039 +B1316224517783N00549491EA0250502497040 +B1316324517791N00549570EA0251602501057 +B1316424517805N00549650EA0253902509045 +B1316524517830N00549707EA0254402519047 +B1317024517841N00549787EA0253802526043 +B1317124517850N00549876EA0253202530049 +B1317224517864N00549979EA0252902531054 +B1317324517892N00550087EA0253202531057 +B1317424517920N00550197EA0252002530056 +B1317524517962N00550313EA0250502522055 +B1318024518002N00550430EA0249402513057 +B1318124518037N00550555EA0247502502055 +B1318224518082N00550672EA0246402490054 +B1318324518128N00550786EA0245002477053 +B1318424518182N00550891EA0242802463059 +B1318524518235N00550984EA0240402445057 +B1319024518288N00551085EA0238302425059 +B1319124518357N00551157EA0237402407055 +B1319224518420N00551233EA0237402393050 +B1319324518472N00551295EA0240002389039 +B1319424518522N00551361EA0242402396052 +B1319524518570N00551426EA0245102409049 +B1320024518617N00551498EA0246702425048 +B1320124518671N00551559EA0247502441046 +B1320224518738N00551598EA0247702450055 +B1320324518811N00551641EA0247702458060 +B1320424518889N00551682EA0248702464057 +B1320524518958N00551719EA0249502472052 +B1321024519020N00551751EA0251202482042 +B1321124519070N00551759EA0250602491047 +B1321224519118N00551774EA0249002493040 +B1321324519163N00551819EA0247802488044 +B1321434519210N00551882EA0245802482056 +B1321534519277N00551936EA0244702470059 +B1322034519338N00552000EA0243102459053 +B1322134519398N00552058EA0241502445053 +B1322234519451N00552122EA0239902431055 +B1322334519507N00552181EA0238402417051 +B1322434519553N00552223EA0236102401041 +B1322534519599N00552270EA0233702382046 +B1323034519657N00552326EA0231502361054 +B1323134519711N00552367EA0229402339049 +B1323234519781N00552410EA0229702323053 +B1323334519840N00552450EA0229202313045 +B1323434519891N00552500EA0231402307055 +B1323534519942N00552560EA0232802310050 +B1324034519985N00552609EA0235302320041 +B1324134520031N00552653EA0238302335040 +B1324234520092N00552706EA0240802355048 +B1324334520153N00552763EA0243502377044 +B1324434520206N00552810EA0244902398044 +B1324544520265N00552870EA0246802419046 +B1325044520321N00552921EA0245602433055 +B1325144520377N00552995EA0243702435057 +B1325244520436N00553060EA0243002432057 +B1325344520497N00553121EA0241502427055 +B1325444520554N00553175EA0240302420047 +B1325544520613N00553224EA0238502408042 +B1326044520671N00553276EA0236202395049 +B1326144520736N00553336EA0234202377056 +B1326244520808N00553406EA0232502360059 +B1326344520876N00553476EA0230602343055 +B1326444520940N00553547EA0228902325053 +B1326544521006N00553586EA0226902307054 +B1327044521064N00553628EA0224202286053 +B1327144521115N00553664EA0223402266041 +B1327244521160N00553682EA0223202252045 +B1327344521211N00553695EA0223602244041 +B1327444521262N00553727EA0224802242033 +B1327544521307N00553781EA0225302243044 +B1328044521354N00553831EA0227702248036 +B1328144521393N00553870EA0226902255038 +B1328244521443N00553928EA0226502257047 +B1328344521476N00553991EA0227002259042 +B1328444521469N00554034EA0225902261040 +B1328544521486N00553977EA0225602259040 +B1329044521548N00553955EA0225502259045 +B1329144521612N00553965EA0224502256044 +B1329244521674N00553984EA0224002250037 +B1329344521729N00554021EA0225102247048 +B1329444521782N00554048EA0224902248041 +B1329544521836N00554059EA0224002245043 +B1330044521891N00554060EA0223802242045 +B1330144521951N00554094EA0221802235057 +B1330244522022N00554129EA0220402225056 +B1330344522094N00554164EA0219402214057 +B1330444522158N00554224EA0217502202058 +B1330544522228N00554264EA0215802187058 +B1331044522301N00554291EA0214202172055 +B1331144522374N00554315EA0212802156057 +B1331244522449N00554344EA0211502142057 +B1331344522525N00554365EA0210202127060 +B1331444522596N00554387EA0208802114056 +B1331544522665N00554403EA0207302100055 +B1332044522734N00554420EA0205602085057 +B1332144522801N00554441EA0204202071054 +B1332244522856N00554452EA0205002061047 +B1332344522905N00554461EA0205502058043 +B1332444522953N00554473EA0204902055043 +B1332554523006N00554481EA0203902050041 +B1333054523062N00554493EA0203502044042 +B1333154523115N00554494EA0203302040043 +B1333254523166N00554497EA0204402038037 +B1333354523177N00554527EA0205802043041 +B1333454523177N00554471EA0207602050043 +B1333554523164N00554475EA0209602061042 +B1334054523199N00554419EA0211202076038 +B1334154523217N00554462EA0213302091039 +B1334254523196N00554414EA0214802107039 +B1334354523244N00554415EA0217102125040 +B1334454523226N00554424EA0219802145045 +B1334554523245N00554420EA0222702166046 +B1335054523223N00554366EA0225102190042 +B1335154523222N00554383EA0226802212043 +B1335254523234N00554318EA0228302233040 +B1335354523272N00554355EA0229102251040 +B1335454523276N00554420EA0230002265037 +B1335554523251N00554380EA0231402279044 +B1336054523267N00554414EA0232402292044 +B1336154523244N00554472EA0233402305039 +B1336254523222N00554438EA0233602316043 +B1336354523275N00554404EA0234502324040 +B1336454523327N00554411EA0236002334043 +B1336554523306N00554397EA0237602347049 +B1337054523364N00554349EA0239202360043 +B1337154523427N00554333EA0237902371041 +B1337254523490N00554336EA0235202371053 +B1337354523564N00554343EA0233402362054 +B1337454523635N00554351EA0231502350056 +B1337554523704N00554354EA0230002337056 +B1338054523774N00554357EA0228802323053 +B1338154523842N00554360EA0227602310053 +B1338254523916N00554356EA0226002296055 +B1338354523992N00554342EA0224202281054 +B1338454524063N00554339EA0222802266053 +B1338554524136N00554340EA0221602251056 +B1339054524213N00554322EA0220502237057 +B1339154524286N00554307EA0220102225056 +B1339254524343N00554303EA0219902216047 +B1339354524395N00554291EA0219802209042 +B1339454524447N00554289EA0219202203043 +B1339554524504N00554282EA0218402197042 +B1340054524563N00554280EA0217702190044 +B1340154524620N00554267EA0216302183044 +B1340254524678N00554252EA0214502172051 +B1340354524738N00554268EA0214902162035 +B1340464524795N00554239EA0216102155038 +B1340564524839N00554263EA0218902161037 +B1341064524810N00554289EA0222202174042 +B1341164524837N00554319EA0224602193050 +B1341264524808N00554314EA0227402216042 +B1341364524833N00554324EA0230502242043 +B1341464524784N00554334EA0232902266041 +B1341564524805N00554282EA0235002291042 +B1342064524826N00554317EA0236102314044 +B1342164524772N00554327EA0239002334040 +B1342264524794N00554289EA0241002354041 +B1342364524766N00554332EA0242902374030 +B1342464524749N00554273EA0242602391035 +B1342564524789N00554238EA0243302404041 +B1343064524841N00554238EA0245502417043 +B1343164524903N00554240EA0247702433042 +B1343264524960N00554241EA0249002450042 +B1343364525016N00554242EA0249202464050 +B1343464525090N00554255EA0252002476050 +B1343564525164N00554262EA0253802493058 +B1344064525235N00554280EA0256402512057 +B1344164525310N00554296EA0258202531055 +B1344264525391N00554328EA0259902550051 +B1344364525461N00554376EA0260202565057 +B1344464525523N00554427EA0260402577055 +B1344564525573N00554489EA0261502587053 +B1345064525587N00554516EA0258602594080 +B1345174525578N00554517EV0251002593103 +B1345264525520N00554541EA0247402585078 +B1345364525580N00554517EA0246702561047 +B1345464525652N00554526EA0245002529054 +B1345564525719N00554564EA0243802501055 +B1346064525788N00554621EA0245802482058 +B1346164525857N00554692EA0247002474051 +B1346264525925N00554744EA0246602470056 +B1346364525990N00554789EA0245502466052 +B1346464526061N00554821EA0244302458056 +B1346564526132N00554844EA0242802450058 +B1347064526199N00554866EA0240502439057 +B1347164526268N00554898EA0238502423060 +B1347264526337N00554903EA0236602407063 +B1347364526395N00554919EA0234002387054 +B1347464526461N00554936EA0232602367053 +B1347564526532N00554948EA0231702349050 +B1348064526588N00554941EA0231002336038 +B1348164526644N00554951EA0227802321043 +B1348274526726N00554964EA0224002296056 +B1348374526807N00554988EA0221602271054 +B1348474526879N00555041EA0218402246056 +B1348574526952N00555083EA0216702221052 +B1349074527024N00555119EA0216402201051 +B1349174527094N00555155EA0216202186052 +B1349274527163N00555193EA0214902175055 +B1349374527237N00555231EA0213202162057 +B1349474527306N00555266EA0211802148053 +B1349574527376N00555297EA0210702134056 +B1350074527442N00555323EA0209402122052 +B1350174527514N00555343EA0206902106055 +B1350274527589N00555371EA0205702089056 +B1350374527659N00555393EA0204302074057 +B1350474527728N00555404EA0203202059054 +B1350574527797N00555418EA0202402047051 +B1351074527865N00555432EA0201902035046 +B1351174527927N00555451EA0202002027050 +B1351274527985N00555464EA0203102024037 +B1351374528010N00555427EA0202202023041 +B1351474528062N00555438EA0201902020036 +B1351574528098N00555517EA0200802017044 +B1352074528105N00555623EA0199202010041 +B1352174528132N00555705EA0197502000045 +B1352274528184N00555744EA0196701989040 +B1352374528207N00555712EA0195401978044 +B1352474528186N00555637EA0193801965055 +B1352574528160N00555555EA0192101952054 +B1353074528122N00555479EA0190701937055 +B1353174528071N00555420EA0190101923046 +B1353274528013N00555415EA0189601913039 +B1353374527948N00555420EA0190301906034 +B1353474527944N00555396EA0190901903037 +B1353574527979N00555441EA0191501905034 +B1354074527957N00555419EA0191401905038 +B1354174527896N00555433EA0192701907035 +B1354274527873N00555398EA0194001914042 +B1354374527856N00555437EA0195201923038 +B1354474527844N00555386EA0196001932039 +B1354574527872N00555410EA0197901942044 +B1355074527844N00555384EA0199501954041 +B1355174527874N00555390EA0200201967044 +B1355274527842N00555398EA0202001979042 +B1355374527874N00555408EA0202701991043 +B1355474527833N00555439EA0204502004040 +B1355574527846N00555399EA0205102016039 +B1356074527880N00555455EA0206802028043 +B1356184527847N00555456EA0208502044043 +B1356284527880N00555494EA0210502059043 +B1356384527841N00555494EA0212702075040 +B1356484527870N00555509EA0214102092046 +B1356584527829N00555507EA0216002110038 +B1357084527861N00555521EA0217502127039 +B1357184527827N00555529EA0219002144042 +B1357284527865N00555501EA0220202159036 +B1357384527846N00555462EA0219002170042 +B1357484527791N00555499EA0220102177039 +B1357584527745N00555483EA0219502183041 +B1358084527792N00555463EA0218402183041 +B1358184527844N00555514EA0218102181045 +B1358284527877N00555605EA0218402181040 +B1358384527916N00555681EA0217902180042 +B1358484527962N00555746EA0216602177043 +B1358584528007N00555816EA0214902169042 +B1359084528054N00555899EA0211402156062 +B1359184528113N00555992EA0209102137058 +B1359284528176N00556079EA0206102115059 +B1359384528239N00556172EA0203602090059 +B1359484528296N00556261EA0201402067056 +B1359584528356N00556336EA0198802043056 +B1400084528417N00556414EA0196702018059 +B1400184528483N00556489EA0195101996057 +B1400284528543N00556559EA0194201976039 +B1400384528597N00556612EA0192501960045 +B1400484528654N00556666EA0191501947048 +B1400584528714N00556706EA0190201935044 +B1401084528777N00556740EA0189001922048 +B1401184528839N00556758EA0187501910047 +B1401284528897N00556783EA0186001896046 +B1401384528955N00556812EA0184501882046 +B1401484529011N00556853EA0182401866043 +B1401584529064N00556905EA0181001849044 +B1402084529113N00556974EA0179101831046 +B1402184529160N00557055EA0177001813046 +B1402284529214N00557133EA0175601801046 +B1402384529265N00557210EA0174601784046 +B1402484529314N00557289EA0173501769047 +B1402584529361N00557368EA0172101755046 +B1403084529405N00557445EA0170801741044 +B1403184529447N00557515EA0169301729047 +B1403284529496N00557583EA0168401714046 +B1403384529548N00557645EA0166601701047 +B1403484529599N00557715EA0164801685047 +B1403594529653N00557794EA0164101667045 +B1404094529703N00557856EA0163101654046 +B1404194529752N00557915EA0161901642045 +B1404294529797N00557981EA0160501629047 +B1404394529844N00558041EA0159201617046 +B1404494529893N00558102EA0157601604046 +B1404594529959N00558148EA0155701591055 +B1405094530021N00558214EA0154101575054 +B1405194530078N00558288EA0152301558056 +B1405294530128N00558377EA0150201540057 +B1405394530175N00558467EA0148401522058 +B1405494530228N00558546EA0146301503057 +B1405594530282N00558620EA0144501483054 +B1406094530334N00558687EA0142701464051 +B1406194530385N00558755EA0140801444053 +B1406294530432N00558825EA0138801428054 +B1406394530468N00558916EA0137201410054 +B1406494530501N00559002EA0135301391053 +B1406594530548N00559069EA0133701371055 +B1407094530595N00559136EA0132501352055 +B1407194530634N00559211EA0130701335052 +B1407294530676N00559283EA0129101318052 +B1407394530717N00559360EA0127401301052 +B1407494530759N00559438EA0125601284055 +B1407594530804N00559510EA0124101267054 +B1408094530849N00559580EA0122401250054 +B1408194530894N00559651EA0121101233055 +B1408294530935N00559723EA0119501217054 +B1408394530977N00559796EA0117901201052 +B1408494531019N00559871EA0115901184053 +B1408594531067N00559937EA0115001168053 +B1409094531108N00600013EA0113101153056 +B1409194531147N00600088EA0111901137049 +B1409294531181N00600159EA0109901121052 +B1409394531216N00600220EA0108101103050 +B1409494531257N00600276EA0106101086056 +B1409594531305N00600341EA0103601067057 +B1410094531349N00600407EA0102101047054 +B1410194531388N00600471EA0100201028057 +B1410294531428N00600537EA0098001009055 +B1410394531468N00600608EA0095600989054 +B1410494531516N00600678EA0094000967054 +B1410594531550N00600726EA0092200948048 +B1411094531592N00600774EA0090000929054 +B1411194531634N00600839EA0088100909051 +B1411294531679N00600899EA0086900889046 +B1411394531718N00600961EA0085000873050 +B1411494531754N00601023EA0083800856049 +B1412004531794N00601077EA0083600841038 +B1412104531832N00601099EA0083300831035 +B1412204531875N00601103EA0083300824037 +B1412304531921N00601088EA0083300818040 +B1412404531953N00601074EA0085200817034 +B1412504531984N00601061EA0086600821038 +B1413004532013N00601060EA0088000828034 +B1413104531989N00601054EA0088700837035 +B1413204531934N00601080EA0089600847036 +B1413304531932N00601074EA0092500857029 +B1413404531929N00601067EA0095300872039 +B1413504531909N00601137EA0098100895038 +B1414004531926N00601143EA0101200914038 +B1414104531885N00601193EA0104300946039 +B1414204531907N00601225EA0107400973038 +B1414304531865N00601251EA0110201004040 +B1414404531888N00601298EA0112601033037 +B1414504531866N00601275EA0113601057038 +B1415004531814N00601298EA0115301081037 +B1415104531843N00601295EA0116501100040 +B1415204531888N00601331EA0116201116039 +B1415304531925N00601353EA0115601125041 +B1415404531951N00601343EA0116201129038 +B1415504531983N00601328EA0117901135034 +B1416004531992N00601325EA0118501142038 +B1416104531932N00601358EA0120101153038 +B1416204531944N00601357EA0121601165044 +B1416304531917N00601404EA0123101179042 +B1416404531936N00601415EA0123501192042 +B1416504531890N00601473EA0125601206041 +B1417004531886N00601518EA0127101219049 +B1417104531882N00601508EA0128501229042 +B1417204531876N00601578EA0130401247044 +B1417304531871N00601559EA0132101259038 +B1417404531907N00601547EA0133001277041 +B1417504531924N00601538EA0135601289041 +B1418004531901N00601605EA0138101312040 +B1418104531930N00601607EA0141401329034 +B1418204531907N00601599EA0143301355033 +B1418304531908N00601674EA0145101380043 +B1418404531940N00601665EA0146001399036 +B1418504531954N00601628EA0146401413042 +B1419004531991N00601609EA0147801429040 +B1419104532024N00601596EA0149601443041 +B1419204532059N00601579EA0150601458040 +B1419314532104N00601576EA0150201470044 +B1419414532139N00601571EA0150301477044 +B1419514532176N00601563EA0150101481041 +B1420014532214N00601559EA0150101483041 +B1420114532256N00601554EA0150301484039 +B1420214532296N00601550EA0150601486043 +B1420314532338N00601539EA0151701489038 +B1420414532384N00601528EA0152501495041 +B1420514532430N00601524EA0153501502039 +B1421014532474N00601516EA0155101510038 +B1421114532503N00601486EA0156401521032 +B1421214532492N00601429EA0156501531035 +B1421314532438N00601467EA0155901536039 +B1421414532391N00601510EA0155701539044 +B1421514532358N00601457EA0155501540036 +B1422014532338N00601400EA0152601536038 +B1422114532369N00601386EA0149901524044 +B1422214532434N00601396EA0148201508043 +B1422314532499N00601410EA0147401493040 +B1422414532548N00601406EA0145401479038 +B1422514532514N00601451EA0144001464042 +B1423014532460N00601458EA0143601451036 +B1423114532409N00601467EA0140401437041 +B1423214532363N00601443EA0137801416039 +B1423314532315N00601410EA0136501396044 +B1423414532276N00601373EA0135501380040 +B1423514532242N00601327EA0134201365039 +B1424014532191N00601292EA0134001352037 +B1424114532159N00601261EA0135801346039 +B1424214532162N00601312EA0134501344038 +B1424314532097N00601386EA0136201342035 +B1424414532079N00601392EA0137701345049 +B1424514532036N00601423EA0139701353036 +B1425014532006N00601464EA0141301365048 +B1425114531978N00601525EA0143501379035 +B1425214531943N00601512EA0144801393036 +B1425314531919N00601536EA0146201410051 +B1425414531897N00601579EA0148701426042 +B1425514531892N00601558EA0150401440037 +B1426014531855N00601594EA0151801461043 +B1426114531851N00601626EA0152601476045 +B1426214531799N00601629EA0153601492040 +B1426314531820N00601611EA0155801501043 +B1426414531802N00601654EA0157601519042 +B1426514531792N00601620EA0159601536045 +B1427024531776N00601670EA0161101558040 +B1427124531782N00601666EA0163501573042 +B1427224531742N00601700EA0165301591034 +B1427324531753N00601730EA0167101609046 +B1427424531724N00601728EA0168901627039 +B1427524531725N00601770EA0170601647047 +B1428024531704N00601738EA0172601665039 +B1428124531721N00601783EA0173401685042 +B1428224531688N00601772EA0174401700040 +B1428324531721N00601765EA0173601713042 +B1428424531766N00601790EA0173001715040 +B1428524531817N00601836EA0172701715053 +B1429024531869N00601894EA0171801713058 +B1429124531920N00601967EA0170801709062 +B1429224531968N00602043EA0169801702055 +B1429324532021N00602113EA0168201693057 +B1429424532072N00602185EA0166701681058 +B1429524532131N00602243EA0164201666060 +B1430024532183N00602311EA0161701649060 +B1430124532230N00602381EA0159301629060 +B1430224532280N00602449EA0157601609059 +B1430324532329N00602521EA0156001589058 +B1430424532377N00602601EA0153801570059 +B1430524532426N00602667EA0150601548056 +B1431024532473N00602726EA0147001522057 +B1431124532521N00602783EA0143301492059 +B1431224532573N00602829EA0140101460060 +B1431324532630N00602885EA0137501430059 +B1431424532686N00602942EA0135301402056 +B1431524532733N00602996EA0135301379052 +B1432024532769N00603042EA0135901365040 +B1432124532796N00603105EA0136601357040 +B1432224532824N00603161EA0136801356041 +B1432324532858N00603206EA0137201357038 +B1432424532900N00603237EA0137901359042 +B1432524532945N00603248EA0138001361038 +B1433024532989N00603239EA0138201363039 +B1433124533028N00603234EA0139701365038 +B1433224532984N00603234EA0139801369037 +B1433324532982N00603213EA0140201374034 +B1433424533024N00603227EA0141801380038 +B1433524533038N00603217EA0144601389044 +B1434024533043N00603281EA0147201405038 +B1434124533062N00603272EA0149201421042 +B1434224533010N00603314EA0152001442044 +B1434324533005N00603285EA0154201459047 +B1434424532982N00603340EA0156301486044 +B1434534532985N00603365EA0157701509046 +B1435034532958N00603370EA0159701527038 +B1435134532994N00603393EA0160801551036 +B1435234533034N00603405EA0160901568040 +B1435334533075N00603401EA0163001580035 +B1435434533098N00603404EA0165501593037 +B1435534533059N00603393EA0166801615042 +B1436034533058N00603471EA0169301634036 +B1436134533081N00603492EA0172801653039 +B1436234533042N00603484EA0176601684044 +B1436334533056N00603498EA0180101709044 +B1436434533019N00603468EA0183101743045 +B1436534533011N00603521EA0186301777042 +B1437034533000N00603494EA0189001802034 +B1437134532984N00603557EA0192001837047 +B1437234532977N00603568EA0195401866042 +B1437334532938N00603579EA0198501898040 +B1437434532951N00603618EA0201701929048 +B1437534532910N00603618EA0205301963029 +B1438034532930N00603650EA0208001995030 +B1438134532896N00603716EA0210502030036 +B1438234532893N00603675EA0213902058036 +B1438334532908N00603732EA0216402092043 +B1438434532862N00603736EA0218902122036 +B1438534532881N00603705EA0221402150036 +B1439034532859N00603741EA0223902176047 +B1439134532869N00603706EA0224602199046 +B1439234532825N00603731EA0227302218039 +B1439334532836N00603678EA0227302237040 +B1439434532867N00603711EA0226402247039 +B1439534532892N00603773EA0225702249041 +B1440034532928N00603825EA0224602248041 +B1440134532961N00603877EA0223202244036 +B1440234532989N00603934EA0220202234053 +B1440334533015N00604030EA0217602216062 +B1440434533041N00604119EA0216002196058 +B1440534533064N00604210EA0214202178059 +B1441034533095N00604303EA0212302160057 +B1441134533126N00604394EA0209702139054 +B1441234533156N00604482EA0207202117057 +B1441334533186N00604569EA0204602094057 +B1441434533202N00604660EA0201602070052 +B1441534533208N00604749EA0198102041052 +B1442034533216N00604841EA0195002011054 +B1442134533226N00604936EA0192601982052 +B1442244533241N00605048EA0191001952049 +B1442344533253N00605146EA0189501930049 +B1442444533278N00605231EA0189101913042 +B1442544533311N00605294EA0189501903039 +B1443044533345N00605348EA0188401895042 +B1443144533385N00605403EA0188301887038 +B1443244533430N00605443EA0186901879044 +B1443344533475N00605480EA0187101872034 +B1443444533507N00605519EA0188101870038 +B1443544533543N00605538EA0189701873037 +B1444044533584N00605557EA0191001879040 +B1444144533614N00605596EA0192501889040 +B1444244533573N00605610EA0194401901041 +B1444344533578N00605556EA0195701917041 +B1444444533602N00605598EA0196601931041 +B1444544533557N00605657EA0198001943038 +B1445044533536N00605606EA0199401957040 +B1445144533568N00605587EA0200701970044 +B1445244533584N00605605EA0200901980038 +B1445344533530N00605610EA0201601990040 +B1445444533542N00605572EA0202201998039 +B1445544533574N00605572EA0204202006039 +B1446044533536N00605540EA0206002019040 +B1446144533518N00605619EA0208202035036 +B1446244533553N00605655EA0209502052041 +B1446344533587N00605643EA0211402068040 +B1446444533565N00605689EA0212902085039 +B1446544533563N00605650EA0215202102037 +B1447044533533N00605688EA0216902120042 +B1447144533548N00605658EA0219102138040 +B1447244533522N00605707EA0220502158046 +B1447344533530N00605658EA0222902176045 +B1447444533513N00605716EA0225002195040 +B1447544533520N00605686EA0226902215042 +B1448044533523N00605747EA0229102235039 +B1448144533489N00605718EA0230802255041 +B1448244533520N00605686EA0232702274036 +B1448344533506N00605738EA0233802292047 +B1448444533514N00605692EA0235402308037 +B1448544533538N00605737EA0237702325040 +B1449044533496N00605729EA0238102342045 +B1449144533534N00605704EA0240502357046 +B1449244533528N00605776EA0243302377041 +B1449344533489N00605736EA0245202398042 +B1449444533520N00605675EA0247902420036 +B1449554533523N00605713EA0250302445043 +B1450054533540N00605688EA0252902470040 +B1450154533517N00605699EA0254402491047 +B1450254533558N00605691EA0256702512035 +B1450354533547N00605732EA0258402532039 +B1450454533551N00605674EA0259802552044 +B1450554533602N00605680EA0262302571044 +B1451054533651N00605717EA0263302591043 +B1451154533695N00605761EA0264102607036 +B1451254533737N00605797EA0263002616046 +B1451354533788N00605831EA0262502620040 +B1451454533834N00605879EA0260202616043 +B1451554533879N00605927EA0258802607047 +B1452054533916N00605983EA0257702597047 +B1452154533947N00606035EA0257002587039 +B1452254533977N00606095EA0256902578046 +B1452354534004N00606150EA0257002573046 +B1452454534025N00606206EA0257002570040 +B1452554534047N00606259EA0256302566045 +B1453054534069N00606312EA0256102563041 +B1453154534098N00606361EA0251902553045 +B1453254534139N00606433EA0248302532051 +B1453354534181N00606515EA0245402507054 +B1453454534230N00606607EA0244402484051 +B1453554534278N00606699EA0244002466061 +B1454054534311N00606789EA0246702459035 +B1454154534338N00606828EA0247802464038 +B1454254534366N00606794EA0248302468037 +B1454354534348N00606753EA0247902470042 +B1454454534385N00606774EA0247702471043 +B1454554534427N00606807EA0247702472044 +B1455054534466N00606856EA0244602466046 +B1455154534509N00606888EA0242102452042 +B1455254534550N00606917EA0240902436042 +B1455354534592N00606951EA0239302421042 +B1455454534634N00606980EA0236802403043 +B1455554534681N00607010EA0234202384041 +B1456054534731N00607038EA0232702363041 +B1456154534778N00607066EA0230902344047 +B1456254534813N00607111EA0229502326041 +B1456354534843N00607182EA0228802311057 +B1456454534874N00607271EA0227302298051 +B1456554534901N00607361EA0225402284055 +B1457054534933N00607461EA0223502266051 +B1457154534969N00607559EA0221602247054 +B1457254534997N00607656EA0220102230056 +B1457354535019N00607753EA0218302213055 +B1457464535049N00607859EA0216702194055 +B1457564535079N00607958EA0214702177057 +B1458064535109N00608055EA0212702158056 +B1458164535139N00608151EA0210402139057 +B1458264535162N00608250EA0208202118058 +B1458364535189N00608346EA0206302098058 +B1458464535213N00608443EA0204502078059 +B1458564535231N00608547EA0203202059055 +B1459064535256N00608642EA0202602045056 +B1459164535280N00608728EA0201702034059 +B1459264535297N00608828EA0202002024050 +B1459364535317N00608932EA0202802021055 +B1459464535335N00609021EA0204802025039 +B1459564535363N00609087EA0205202032036 +B1500064535400N00609139EA0204502035040 +B1500164535404N00609223EA0203602034039 +B1500264535406N00609313EA0202302029041 +B1500364535405N00609401EA0201202022038 +B1500464535403N00609486EA0200002013042 +B1500564535416N00609570EA0199502004039 +B1501064535446N00609648EA0198701996041 +B1501164535476N00609727EA0197901988040 +B1501264535488N00609806EA0196901979038 +B1501364535494N00609896EA0196001970040 +B1501464535494N00609992EA0194601960045 +B1501564535487N00610091EA0193801950040 +B1502064535480N00610189EA0191901938040 +B1502164535483N00610286EA0191201925044 +B1502264535490N00610379EA0193601923037 +B1502364535448N00610402EA0194101925039 +B1502464535475N00610400EA0197501932040 +B1502564535439N00610435EA0198801945046 +B1503064535451N00610409EA0201701962039 +B1503164535428N00610448EA0204201982036 +B1503264535418N00610418EA0205302001042 +B1503364535430N00610477EA0206602019038 +B1503464535401N00610454EA0207602034038 +B1503564535431N00610460EA0208002046047 +B1504064535426N00610536EA0209802058045 +B1504164535429N00610497EA0211702070039 +B1504264535442N00610536EA0215402087042 +B1504364535411N00610505EA0218302112044 +B1504464535425N00610546EA0222202140047 +B1504564535405N00610519EA0225502171046 +B1505064535384N00610584EA0229202204034 +B1505164535369N00610541EA0231902235045 +B1505264535360N00610605EA0234602266041 +B1505374535343N00610572EA0237302296044 +B1505474535321N00610628EA0239902327047 +B1505574535330N00610608EA0243102354040 +B1506074535300N00610669EA0244102383040 +B1506174535266N00610608EA0245902404038 +B1506274535273N00610641EA0247902424043 +B1506374535216N00610622EA0248902444043 +B1506474535230N00610600EA0249402458044 +B1506574535206N00610697EA0250702471040 +B1507074535178N00610783EA0247902476039 +B1507174535147N00610878EA0245102471041 +B1507274535119N00610978EA0243302459048 +B1507374535088N00611073EA0241202444042 +B1507474535058N00611161EA0238102425043 +B1507574535025N00611256EA0235502403045 +B1508074534998N00611349EA0233202380038 +B1508174534966N00611446EA0230802356040 +B1508274534937N00611542EA0229102334045 +B1508374534923N00611638EA0227302313041 +B1508474534926N00611733EA0225402294041 +B1508574534932N00611827EA0223502274042 +B1509074534944N00611918EA0221802254045 +B1509174534969N00611999EA0220602238044 +B1509274535023N00612049EA0218502221055 +B1509374535084N00612097EA0216702202055 +B1509474535144N00612143EA0214902184057 +B1509574535206N00612186EA0213102166057 +B1510074535266N00612228EA0211302147058 +B1510174535297N00612313EA0209402129053 +B1510274535291N00612431EA0207102109051 +B1510374535250N00612554EA0204402087058 +B1510474535203N00612677EA0202002064059 +B1510574535160N00612804EA0199602041059 +B1511074535104N00612925EA0197402016056 +B1511174535049N00613044EA0195301993055 +B1511274535006N00613156EA0192901971057 +B1511374534967N00613281EA0191601948056 +B1511474534924N00613390EA0191501931053 +B1511574534891N00613480EA0191601921045 +B1512074534863N00613575EA0190501912043 +B1512174534835N00613665EA0189501903042 +B1512274534805N00613756EA0188101893040 +B1512374534768N00613847EA0187401883044 +B1512474534736N00613935EA0186301874042 +B1512584534704N00614037EA0184801862048 +B1513084534674N00614132EA0183801851042 +B1513184534646N00614229EA0183001840046 +B1513284534620N00614328EA0182001830040 +B1513384534594N00614423EA0180301819045 +B1513484534567N00614522EA0178601807044 +B1513584534546N00614618EA0176801794043 +B1514084534514N00614712EA0175101779044 +B1514184534493N00614808EA0173401763042 +B1514284534481N00614901EA0172101747043 +B1514384534476N00614993EA0170901732043 +B1514484534462N00615086EA0170001718045 +B1514584534448N00615181EA0169201706045 +B1515084534431N00615273EA0168001694043 +B1515184534411N00615363EA0166601682043 +B1515284534385N00615452EA0165701670044 +B1515384534357N00615538EA0164401658044 +B1515484534334N00615638EA0162801645053 +B1515584534314N00615747EA0161601632055 +B1516084534290N00615849EA0160401619053 +B1516184534267N00615957EA0158701605054 +B1516284534241N00616067EA0157401591056 +B1516384534221N00616186EA0156501578053 +B1516484534207N00616298EA0155001566055 +B1516584534190N00616407EA0153401552054 +B1517084534178N00616512EA0151601537053 +B1517184534170N00616620EA0149701520053 +B1517284534171N00616727EA0148001503056 +B1517384534177N00616837EA0146401486055 +B1517484534169N00616949EA0144901469055 +B1517584534160N00617061EA0143401453053 +B1518084534149N00617170EA0141801437054 +B1518184534145N00617281EA0140201421053 +B1518284534145N00617394EA0138901405051 +B1518384534146N00617502EA0137401389042 +B1518484534143N00617616EA0137701376038 +B1518584534139N00617728EA0138101369041 +B1519084534160N00617815EA0139001367034 +B1519184534189N00617821EA0139801369040 +B1519284534136N00617830EA0140801375036 +B1519384534105N00617927EA0141401382037 +B1519484534119N00618029EA0141801389038 +B1519584534161N00618087EA0141501393041 +B1520084534210N00618082EA0141901397038 +B1520184534246N00618124EA0142501400038 +B1520284534232N00618222EA0142301403045 +B1520384534209N00618314EA0141401404039 +B1520484534198N00618400EA0139701399037 +B1520594534200N00618498EA0138701390039 +B1521094534192N00618588EA0137701380042 +B1521194534173N00618676EA0137001371042 +B1521294534137N00618762EA0137601364042 +B1521394534106N00618755EA0138301363044 +B1521494534133N00618766EA0140001366035 +B1521594534113N00618824EA0141301373043 +B1522094534136N00618817EA0142801383041 +B1522194534102N00618864EA0144001394040 +B1522294534127N00618843EA0144901405038 +B1522394534118N00618901EA0146101418044 +B1522494534129N00618871EA0147901430038 +B1522594534114N00618930EA0149101444038 +B1523094534122N00618898EA0150301456040 +B1523194534112N00618973EA0151301467031 +B1523294534079N00618975EA0152201479046 +B1523394534108N00619018EA0153901491036 +B1523494534069N00619092EA0154301502041 +B1523594534069N00619062EA0155001511040 +B1524094534108N00619120EA0155601520036 +B1524194534093N00619219EA0155401526042 +B1524294534050N00619299EA0154701528045 +B1524394534007N00619371EA0155101529040 +B1524494533962N00619412EA0155601531041 +B1524594533993N00619411EA0156401534040 +B1525094533999N00619490EA0157201540039 +B1525194533946N00619517EA0157601546041 +B1525294533897N00619554EA0157001550033 +B1525394533923N00619612EA0155301548043 +B1525494533964N00619588EA0155801544033 +B1525594534008N00619578EA0156001544042 +B1526094534058N00619577EA0157001545037 +B1526194534114N00619587EA0157501549038 +B1526294534170N00619582EA0158301554037 +B1526394534225N00619574EA0158601559039 +B1526494534273N00619554EA0159801565038 +B1526594534312N00619547EA0162201575050 +B1527094534290N00619550EA0164901589039 +B1527194534293N00619579EA0167801608049 +B1527294534298N00619600EA0170701632046 +B1527394534306N00619593EA0174201658049 +B1527494534287N00619588EA0178301688046 +B1527594534291N00619634EA0181901721043 +B1528094534293N00619616EA0185801756037 +B1528194534265N00619661EA0189501792052 +B1528294534286N00619648EA0193401829043 +B1528404534258N00619655EA0197901871041 +B1528504534271N00619687EA0201801910042 +B1529004534277N00619665EA0206001950040 +B1529104534248N00619696EA0209801991048 +B1529204534280N00619697EA0213902030041 +B1529304534245N00619700EA0217902071044 +B1529404534277N00619712EA0222102111037 +B1529504534240N00619714EA0225602151048 +B1530004534281N00619716EA0229402190045 +B1530104534253N00619785EA0232702227046 +B1530204534262N00619745EA0235702263042 +B1530304534263N00619806EA0238402297041 +B1530404534258N00619763EA0240602328040 +B1530504534275N00619822EA0242602356043 +B1531004534254N00619805EA0243302379046 +B1531104534288N00619851EA0244402397045 +B1531204534266N00619922EA0245802413039 +B1531304534264N00619886EA0245302425046 +B1531404534302N00619948EA0245802433039 +B1531504534321N00620028EA0244702437042 +B1532004534339N00620112EA0243302435044 +B1532104534353N00620199EA0241702429046 +B1532204534375N00620282EA0240602421044 +B1532304534402N00620359EA0239502412044 +B1532404534426N00620437EA0238602403043 +B1532504534449N00620517EA0237502393045 +B1533004534473N00620598EA0236502383044 +B1533104534492N00620691EA0233902370056 +B1533204534518N00620801EA0233002354058 +B1533304534543N00620897EA0235002345035 +B1533404534520N00620929EA0235902345046 +B1533504534557N00620931EA0238602349045 +B1534004534525N00620935EA0240402362048 +B1534104534558N00620958EA0243402378043 +B1534204534525N00620985EA0245502398043 +B1534304534562N00621017EA0247702418040 +B1534404534533N00621037EA0249002437044 +B1534504534576N00621059EA0250002454041 +B1535004534611N00621126EA0249002468043 +B1535104534642N00621196EA0247202471046 +B1535204534672N00621274EA0246402468043 +B1535304534702N00621350EA0245002462043 +B1535404534726N00621432EA0243802453046 +B1535504534752N00621506EA0242402444047 +B1536004534771N00621590EA0240802433044 +B1536104534793N00621667EA0238902419043 +B1536214534816N00621754EA0237502404043 +B1536314534844N00621843EA0235002387057 +B1536414534878N00621945EA0233702369053 +B1536514534917N00622043EA0233402354047 +B1537014534958N00622130EA0233102343046 +B1537114534990N00622219EA0233102336045 +B1537214535021N00622298EA0235102335039 +B1537314534993N00622308EA0237102341045 +B1537414535022N00622336EA0238702351043 +B1537514534992N00622341EA0240702363043 +B1538014535001N00622390EA0242502378045 +B1538114534982N00622362EA0244102394044 +B1538214535022N00622406EA0244802408040 +B1538314535058N00622472EA0244202418045 +B1538414535097N00622533EA0243402422044 +B1538514535137N00622583EA0243302423041 +B1539014535179N00622626EA0241402421037 +B1539114535221N00622674EA0238002411046 +B1539214535270N00622727EA0235602395045 +B1539314535319N00622783EA0234502378042 +B1539414535366N00622845EA0233002362044 +B1539514535408N00622906EA0231102347046 +B1540014535458N00622954EA0230602331036 +B1540114535504N00622996EA0230902321044 +B1540214535547N00623034EA0231702316037 +B1540314535601N00623068EA0231402313040 +B1540414535656N00623086EA0231702311038 +B1540514535699N00623086EA0231302311044 +B1541014535748N00623089EA0232202310046 +B1541114535788N00623093EA0233202313040 +B1541214535776N00623056EA0234402319040 +B1541314535748N00623138EA0235202326040 +B1541414535791N00623186EA0235702334042 +B1541514535838N00623183EA0235402340044 +B1542014535883N00623177EA0236202345041 +B1542114535933N00623184EA0236202350046 +B1542214535980N00623200EA0235302352043 +B1542314536029N00623215EA0234902349041 +B1542414536077N00623202EA0235102347047 +B1542514536123N00623172EA0236802348040 +B1543014536142N00623125EA0236702353036 +B1543114536094N00623147EA0235202354040 +B1543214536128N00623205EA0234602350045 +B1543314536177N00623201EA0233702346042 +B1543414536234N00623201EA0232402340044 +B1543514536296N00623220EA0231702332047 +B1544014536361N00623250EA0231302325042 +B1544124536431N00623284EA0228902315058 +B1544224536505N00623298EA0227402301055 +B1544324536580N00623326EA0226402288057 +B1544424536653N00623360EA0225402276058 +B1544524536719N00623378EA0224302263047 +B1545024536770N00623411EA0223202253056 +B1545124536845N00623449EA0221602241052 +B1545224536922N00623485EA0219202227057 +B1545324536999N00623528EA0217102209058 +B1545424537076N00623574EA0214302189058 +B1545524537147N00623613EA0210702165054 +B1546024537213N00623641EA0210102140038 +B1546124537262N00623646EA0211102127035 +B1546224537225N00623663EA0211802119039 +B1546324537252N00623736EA0212502118036 +B1546424537246N00623700EA0212602117039 +B1546524537258N00623671EA0212502118039 +B1547024537222N00623730EA0213502117041 +B1547124537233N00623732EA0213802121039 +B1547224537187N00623774EA0214302123040 +B1547324537209N00623833EA0215902130046 +B1547424537179N00623891EA0217502139036 +B1547524537202N00623908EA0218802151047 +B1548024537189N00623979EA0220202163043 +B1548124537173N00623969EA0220102174041 +B1548224537185N00624054EA0221802185034 +B1548324537238N00624064EA0219002191048 +B1548424537314N00624089EA0216302186061 +B1548524537385N00624112EA0213502173045 +B1549024537452N00624120EA0210202153056 +B1549124537525N00624151EA0207302129055 +B1549224537596N00624188EA0204402104055 +B1549324537665N00624239EA0200702076056 +B1549424537731N00624278EA0196402044054 +B1549524537793N00624290EA0195602011051 +B1550024537851N00624301EA0195501989050 +B1550124537907N00624316EA0194501972048 +B1550224537969N00624342EA0193801958052 +B1550324538033N00624375EA0191601946048 +B1550424538097N00624392EA0187701926054 +B1550524538169N00624417EA0184301900060 +B1551024538246N00624445EA0181001871063 +B1551124538324N00624474EA0178101842060 +B1551224538399N00624504EA0174801813061 +B1551324538482N00624550EA0171901783061 +B1551424538567N00624594EA0168801753062 +B1551524538650N00624635EA0165901723060 +B1552034538728N00624671EA0164201692052 +B1552134538797N00624709EA0162301668055 +B1552234538872N00624743EA0159801644060 +B1552334538943N00624781EA0157801620058 +B1552434539011N00624794EA0155901598055 +B1552534539076N00624809EA0154501578055 +B1553034539140N00624851EA0153401559056 +B1553134539204N00624894EA0152201543058 +B1553234539270N00624943EA0150901528057 +B1553334539335N00624983EA0149701513055 +B1553434539399N00625016EA0148301500054 +B1553534539463N00625053EA0147301488054 +B1554034539526N00625101EA0146201475054 +B1554134539594N00625141EA0145001463055 +B1554234539663N00625169EA0143801451055 +B1554334539731N00625203EA0142401438054 +B1554434539796N00625250EA0141201426055 +B1554534539861N00625290EA0139801412054 +B1555034539929N00625323EA0138601399055 +B1555134539996N00625354EA0137201386055 +B1555234540063N00625388EA0135701373055 +B1555334540131N00625421EA0133801358054 +B1555434540198N00625462EA0132001342056 +B1555534540263N00625495EA0130401326056 +B1556034540333N00625537EA0129701310051 +B1556134540402N00625582EA0128101296046 +B1556234540461N00625615EA0127501284041 +B1556334540520N00625652EA0127101274040 +B1556434540577N00625715EA0127501267039 +B1556534540615N00625802EA0127201263038 +B1557034540621N00625912EA0126801259040 +B1557134540611N00626010EA0127601257039 +B1557234540581N00626081EA0127601256040 +B1557334540548N00626150EA0127901257041 +B1557434540506N00626206EA0128601260036 +B1557534540467N00626262EA0130001264034 +B1558034540449N00626261EA0130501270039 +B1558134540497N00626264EA0131401279040 +B1558234540479N00626247EA0133301287030 +B1558334540449N00626311EA0134601299045 +B1558434540454N00626282EA0137201311047 +B1558534540441N00626300EA0139801329036 +B1559034540453N00626334EA0142001349043 +B1559134540448N00626298EA0143301369041 +B1559234540469N00626374EA0144001386038 +B1559334540432N00626395EA0145701398040 +B1559434540462N00626424EA0146001412038 +B1559534540440N00626440EA0146801424039 +B1600044540481N00626425EA0147601435038 +B1600144540525N00626407EA0147501443044 +B1600244540578N00626404EA0148201450041 +B1600344540635N00626406EA0149201457042 +B1600444540687N00626393EA0148901463042 +B1600544540739N00626369EA0150201468034 +B1601044540730N00626365EA0151201474039 +B1601144540696N00626407EA0151701483039 +B1601244540734N00626389EA0151901490040 +B1601344540796N00626398EA0153701499036 +B1601444540770N00626413EA0155301509039 +B1601544540772N00626399EA0156701521041 +B1602044540773N00626461EA0158301534036 +B1602144540760N00626436EA0159501546040 +B1602244540784N00626493EA0160401560041 +B1602344540745N00626500EA0161801573044 +B1602444540760N00626479EA0163801586044 +B1602544540759N00626556EA0165201601034 +B1603044540721N00626553EA0166601615040 +B1603144540753N00626549EA0169001631043 +B1603244540728N00626602EA0170201648040 +B1603344540705N00626583EA0172601662039 +B1603444540737N00626626EA0174401683037 +B1603544540701N00626636EA0176401700040 +B1604044540728N00626655EA0178301721047 +B1604144540716N00626645EA0180501737041 +B1604244540729N00626693EA0181601758041 +B1604344540717N00626668EA0182901775043 +B1604444540732N00626726EA0183801791042 +B1604544540689N00626783EA0185101805036 +B1605044540664N00626874EA0187001819037 +B1605144540659N00626870EA0188901835032 +B1605244540665N00626942EA0190701852038 +B1605344540669N00626921EA0192001868039 +B1605444540660N00626993EA0193401885042 +B1605544540643N00626986EA0195401901044 +B1606044540640N00627058EA0197401920036 +B1606144540663N00627058EA0198801938042 +B1606244540636N00627121EA0199901956039 +B1606344540658N00627103EA0201001969034 +B1606444540656N00627177EA0201501981041 +B1606544540632N00627161EA0202901991040 +B1607044540666N00627184EA0203302003041 +B1607144540637N00627206EA0204702011036 +B1607244540646N00627177EA0205802020046 +B1607354540644N00627233EA0207302034044 +B1607454540686N00627237EA0208402047037 +B1607554540733N00627258EA0209902060038 +B1608054540774N00627261EA0211402074042 +B1608154540744N00627282EA0213002090035 +B1608254540781N00627350EA0214102104036 +B1608354540827N00627380EA0215502117038 +B1608454540868N00627422EA0217702132038 +B1608554540906N00627455EA0219102149035 +B1609054540883N00627526EA0218802162045 +B1609154540890N00627497EA0219902169041 +B1609254540928N00627520EA0219202178042 +B1609354540968N00627569EA0219002181041 +B1609454540980N00627654EA0219702183044 +B1609554540956N00627710EA0224002193040 +B1610054540947N00627683EA0226702210047 +B1610154540910N00627724EA0229802236043 +B1610254540907N00627703EA0230002254042 +B1610354540936N00627752EA0233402274040 +B1610454540894N00627795EA0238302301037 +B1610554540885N00627780EA0240202323042 +B1611054540889N00627850EA0244502361036 +B1611154540856N00627848EA0247902391034 +B1611254540860N00627903EA0250402427041 +B1611354540829N00627884EA0253502452035 +B1611454540840N00627911EA0255702480031 +B1611554540795N00627953EA0257402510034 +B1612054540782N00627903EA0258602532040 +B1612154540770N00627845EA0260302551037 +B1612254540756N00627794EA0260202568037 +B1612354540785N00627761EA0259902577040 +B1612454540830N00627793EA0260002584041 +B1612554540856N00627848EA0262102592041 +B1613054540827N00627885EA0264102605047 +B1613154540839N00627867EA0267602620042 +B1613254540859N00627916EA0269202643037 +B1613354540903N00627934EA0271102664044 +B1613454540951N00627961EA0272202683041 +B1613554541001N00627985EA0274702699036 +B1614054541051N00628010EA0278202721040 +B1614154541105N00628038EA0280802748044 +B1614254541166N00628076EA0284002772032 +B1614354541215N00628084EA0285002797041 +B1614454541266N00628113EA0284302814042 +B1614554541317N00628144EA0284002822041 +B1615054541364N00628172EA0282402826045 +B1615164541422N00628209EA0280202821044 +B1615264541481N00628245EA0277802810044 +B1615364541538N00628284EA0275702795046 +B1615464541594N00628327EA0274202779044 +B1615564541654N00628357EA0273402766044 +B1616064541717N00628388EA0271702752054 +B1616164541794N00628440EA0270402737061 +B1616264541872N00628491EA0269402724058 +B1616364541952N00628538EA0268502711055 +B1616464542032N00628583EA0266402698054 +B1616564542117N00628623EA0263402680061 +B1617064542194N00628617EA0262202661045 +B1617164542263N00628641EA0260702645055 +B1617264542337N00628695EA0258502627061 +B1617364542413N00628746EA0256602608054 +B1617464542493N00628796EA0254802589055 +B1617564542568N00628851EA0253402572055 +B1618064542645N00628904EA0252102556055 +B1618164542715N00628962EA0250302540059 +B1618264542787N00629023EA0248602523057 +B1618364542857N00629082EA0247202507056 +B1618464542926N00629144EA0245802492057 +B1618564542999N00629205EA0244402477058 +B1619064543070N00629269EA0243202463057 +B1619164543135N00629342EA0242102449056 +B1619264543202N00629415EA0240802436057 +B1619364543266N00629490EA0239602423057 +B1619464543334N00629561EA0238302410057 +B1619564543401N00629629EA0236802396055 +B1620064543468N00629697EA0235202382056 +B1620164543533N00629764EA0233102366057 +B1620264543589N00629828EA0233202350045 +B1620364543615N00629886EA0232002341044 +B1620464543653N00629948EA0231002331042 +B1620564543692N00630015EA0230902321038 +B1621064543731N00630061EA0229402314047 +B1621164543770N00630107EA0228102304044 +B1621264543815N00630122EA0225802292053 +B1621364543868N00630138EA0223502275056 +B1621464543915N00630213EA0221602258054 +B1621564543951N00630307EA0218902239056 +B1622064543983N00630421EA0216602219055 +B1622164544013N00630539EA0213602198058 +B1622264544038N00630667EA0210302174057 +B1622364544055N00630795EA0208102148058 +B1622464544071N00630923EA0205302123058 +B1622564544097N00631040EA0203302097058 +B1623064544124N00631149EA0200802073056 +B1623164544142N00631272EA0198302048054 +B1623274544162N00631402EA0196202021054 +B1623374544186N00631513EA0193901998052 +B1623474544212N00631639EA0191601974056 +B1623574544235N00631766EA0189001951057 +B1624074544260N00631887EA0186101926057 +B1624174544286N00632017EA0183101900055 +B1624274544300N00632157EA0180501872055 +B1624374544320N00632261EA0181701850036 +B1624474544359N00632318EA0182001836036 +B1624574544411N00632345EA0184001830034 +B1625074544434N00632324EA0185001832040 +B1625174544398N00632376EA0186101836032 +B1625274544434N00632444EA0187301843037 +B1625374544485N00632453EA0188401853032 +B1625474544500N00632405EA0188501861039 +B1625574544537N00632391EA0189701869038 +B1626074544530N00632467EA0190501877038 +B1626174544539N00632437EA0191501885036 +B1626274544576N00632510EA0192401893039 +B1626374544541N00632540EA0192801902039 +B1626474544533N00632487EA0193501911039 +B1626574544554N00632446EA0194501918038 +B1627074544575N00632494EA0195701927038 +B1627174544550N00632467EA0197301936035 +B1627274544577N00632492EA0198201948039 +B1627374544546N00632510EA0200101958037 +B1627474544573N00632519EA0200501971038 +B1627574544556N00632590EA0202101981036 +B1628074544541N00632546EA0203201993035 +B1628174544569N00632561EA0204102004040 +B1628274544546N00632618EA0205302016038 +B1628374544540N00632565EA0206302028040 +B1628474544536N00632508EA0206702039042 +B1628574544492N00632566EA0206202045036 +B1629074544523N00632629EA0206902048035 +B1629174544552N00632679EA0208302055042 +B1629274544522N00632663EA0209802064038 +B1629374544553N00632678EA0211602076043 +B1629474544518N00632676EA0212902088039 +B1629574544543N00632664EA0214302100040 +B1630074544524N00632711EA0216102115039 +B1630174544532N00632669EA0217402131043 +B1630274544549N00632727EA0218502144039 +B1630374544500N00632733EA0220502158036 +B1630474544529N00632711EA0221402172040 +B1630574544527N00632779EA0222202184039 +B1631084544477N00632849EA0225002199035 +B1631184544503N00632886EA0227302217034 +B1631284544478N00632847EA0228702236041 +B1631384544430N00632907EA0230402253037 +B1631484544455N00632965EA0232602271036 +B1631584544448N00632937EA0234002291039 +B1632084544411N00633008EA0236102309035 +B1632184544447N00633049EA0237602328040 +B1632284544459N00633007EA0239402346038 +B1632384544403N00633038EA0240302363040 +B1632484544404N00633127EA0241202377042 +B1632584544441N00633121EA0242302390037 +B1633084544459N00633088EA0243602401040 +B1633184544451N00633149EA0244502414040 +B1633284544438N00633109EA0245602425038 +B1633384544474N00633139EA0246702437045 +B1633484544438N00633140EA0247602448038 +B1633584544460N00633097EA0248202457039 +B1634084544498N00633153EA0248802465039 +B1634184544472N00633202EA0249602472039 +B1634284544478N00633149EA0250702481037 +B1634384544513N00633188EA0251302489037 +B1634484544546N00633242EA0251602497038 +B1634584544590N00633208EA0252102504038 +B1635084544603N00633139EA0252602509041 +B1635184544597N00633070EA0253002515037 +B1635284544552N00633073EA0252102518038 +B1635384544553N00633149EA0251502517042 +B1635484544599N00633201EA0251602516043 +B1635584544651N00633252EA0252202516046 +B1636084544706N00633302EA0253002519044 +B1636184544759N00633360EA0253202522047 +B1636284544813N00633416EA0253402525043 +B1636384544867N00633476EA0251502525044 +B1636484544927N00633525EA0249402517042 +B1636584544989N00633559EA0247902506044 +B1637084545051N00633596EA0246702494045 +B1637184545103N00633636EA0245502482044 +B1637284545152N00633691EA0244402469045 +B1637384545198N00633746EA0244102458042 +B1637484545241N00633805EA0243602450043 +B1637584545290N00633850EA0243102443044 +B1638084545337N00633907EA0242602437041 +B1638184545384N00633952EA0241802430044 +B1638284545433N00633997EA0241602424043 +B1638394545489N00634054EA0241702419042 +B1638494545538N00634106EA0241202416043 +B1638594545590N00634143EA0242402415046 +B1639094545644N00634179EA0243202418043 +B1639194545699N00634217EA0243502421043 +B1639294545755N00634261EA0242402424045 +B1639394545805N00634322EA0241802422041 +B1639494545858N00634370EA0240302417045 +B1639594545907N00634420EA0239602409043 +B1640094545954N00634471EA0239102402041 +B1640194546001N00634510EA0238202395045 +B1640294546050N00634553EA0237502388043 +B1640394546100N00634595EA0236802381044 +B1640494546151N00634642EA0236002374043 +B1640594546202N00634682EA0234702366045 +B1641094546258N00634704EA0233302356044 +B1641194546314N00634727EA0232002344046 +B1641294546371N00634748EA0230702332043 +B1641394546430N00634765EA0229102319044 +B1641494546493N00634778EA0227402305053 +B1641594546565N00634791EA0226302291053 +B1642094546634N00634802EA0226102278043 +B1642194546692N00634817EA0225802270041 +B1642294546747N00634838EA0225002262044 +B1642394546806N00634874EA0224202255047 +B1642494546862N00634902EA0223102246044 +B1642594546914N00634915EA0221902237042 +B1643094546968N00634926EA0221202228045 +B1643194547022N00634923EA0220502219042 +B1643294547080N00634935EA0220102211044 +B1643394547135N00634958EA0220302204040 +B1643494547185N00634970EA0221902203036 +B1643594547205N00634940EA0222402206036 +B1644094547159N00634967EA0222902209041 +B1644194547171N00635054EA0223902214036 +B1644294547216N00635060EA0224702222038 +B1644394547224N00635014EA0225202229040 +B1644494547179N00635001EA0226402236038 +B1644594547193N00634972EA0226802244038 +B1645094547218N00635038EA0226702251042 +B1645194547175N00635051EA0227502255043 +B1645294547191N00635013EA0228502261040 +B1645394547200N00635085EA0228502267040 +B1645494547165N00635073EA0229202271042 +B1645594547184N00635034EA0229602276040 +B1646094547210N00635081EA0230202281040 +B1646194547160N00635119EA0230402286036 +B1646304547143N00635069EA0231202290038 +B1646404547162N00635113EA0231302295040 +B1646504547122N00635095EA0231602298037 +B1647004547146N00635046EA0232702302041 +B1647104547155N00635105EA0232902309042 +B1647204547124N00635066EA0234102314035 +B1647304547153N00635087EA0234702321046 +B1647404547116N00635088EA0235902329039 +B1647504547145N00635048EA0236102336037 +B1648004547198N00635084EA0236202341037 +B1648104547243N00635090EA0236902347037 +B1648204547235N00635038EA0236602351043 +B1648304547180N00635044EA0236402354039 +B1648404547167N00635119EA0235402353040 +B1648504547226N00635129EA0235202352041 +B1649004547282N00635120EA0235002351044 +B1649104547336N00635105EA0234902349044 +B1649204547389N00635098EA0235402349044 +B1649304547436N00635098EA0235002349042 +B1649404547490N00635102EA0235002347041 +B1649504547540N00635090EA0235402347042 +B1650004547592N00635071EA0235102347043 +B1650104547638N00635041EA0235202347042 +B1650204547686N00635022EA0234502346043 +B1650304547736N00634996EA0233702342044 +B1650404547784N00634974EA0232602337043 +B1650504547835N00634950EA0232002330042 +B1651004547885N00634923EA0231502323046 +B1651104547927N00634890EA0232602320039 +B1651204547971N00634849EA0232002319042 +B1651304548021N00634818EA0232002317047 +B1651404548075N00634801EA0232302316036 +B1651504548129N00634807EA0231802316041 +B1652004548184N00634795EA0230502313043 +B1652104548237N00634772EA0229502306044 +B1652204548282N00634735EA0229102299038 +B1652304548325N00634699EA0229002291041 +B1652404548361N00634675EA0230202290034 +B1652504548368N00634629EA0230602292038 +B1653004548337N00634582EA0230802295037 +B1653104548286N00634627EA0231202297036 +B1653204548279N00634711EA0232602302033 +B1653304548320N00634764EA0233102309037 +B1653404548331N00634729EA0232802314040 +B1653504548279N00634744EA0233102318038 +B1654004548248N00634820EA0233102321037 +B1654114548217N00634799EA0232202322040 +B1654214548261N00634762EA0231702320044 +B1654314548307N00634732EA0231902319044 +B1654414548348N00634702EA0231502317040 +B1654514548386N00634667EA0231202315040 +B1655014548423N00634626EA0231202312045 +B1655114548453N00634594EA0233002313036 +B1655214548441N00634557EA0234702318040 +B1655314548416N00634639EA0235402327038 +B1655414548453N00634689EA0237602337038 +B1655514548456N00634624EA0237302348039 +B1656014548399N00634611EA0239602359040 +B1656114548391N00634701EA0240702371039 +B1656214548423N00634733EA0242402385036 +B1656314548422N00634673EA0241002394038 +B1656414548365N00634650EA0242202399032 +B1656514548331N00634647EA0242702406043 +B1657014548358N00634680EA0244802416036 +B1657114548317N00634709EA0245302425041 +B1657214548341N00634688EA0246602434034 +B1657314548304N00634737EA0246802443045 +B1657414548288N00634691EA0246902449037 +B1657514548312N00634651EA0246102453046 +B1658014548332N00634687EA0246702456037 +B1658114548294N00634718EA0246202457043 +B1658214548320N00634691EA0245702457034 +B1658314548367N00634716EA0244602453040 +B1658414548400N00634769EA0245902450039 +B1658514548356N00634791EA0246202451043 +B1659014548386N00634778EA0247602454041 +B1659114548400N00634830EA0246702458038 +B1659214548347N00634862EA0247202458043 +B1659314548367N00634840EA0246802461044 +B1659414548403N00634893EA0246702461035 +B1659514548406N00634972EA0248002463042 +B1700014548397N00634955EA0249502469037 +B1700114548382N00635035EA0251002477035 +B1700214548364N00635009EA0253002488035 +B1700314548357N00635064EA0254202501042 +B1700414548364N00635038EA0255802514039 +B1700514548346N00635092EA0257602529044 +B1701014548357N00635062EA0259402545042 +B1701114548333N00635108EA0261302561040 +B1701214548357N00635092EA0263302579043 +B1701314548328N00635131EA0265202597039 +B1701424548372N00635130EA0267402618040 +B1701524548417N00635200EA0269002638043 +B1702024548457N00635281EA0270302658045 +B1702124548497N00635353EA0270302673045 +B1702224548534N00635449EA0269602681054 +B1702324548564N00635560EA0268502683058 +B1702424548588N00635671EA0267402681056 +B1702524548610N00635781EA0266002675058 +B1703024548635N00635885EA0265002667055 +B1703124548661N00635992EA0264502659055 +B1703224548694N00636084EA0263602651045 +B1703324548717N00636173EA0261302640056 +B1703424548738N00636272EA0259602627062 +B1703524548766N00636372EA0257902613057 +B1704024548787N00636475EA0256502598057 +B1704124548808N00636574EA0254902583058 +B1704224548830N00636671EA0253402568057 +B1704324548862N00636767EA0252002552056 +B1704424548882N00636864EA0250902538055 +B1704524548907N00636961EA0249702525057 +B1705024548928N00637062EA0248602512057 +B1705124548951N00637161EA0247402500055 +B1705224548973N00637262EA0246102489057 +B1705324548994N00637364EA0245002477057 +B1705424549018N00637464EA0243902465057 +B1705524549042N00637565EA0242602453057 +B1706024549069N00637667EA0241102441056 +B1706124549091N00637770EA0239802428057 +B1706224549113N00637872EA0238302414056 +B1706324549136N00637974EA0236902399056 +B1706424549160N00638075EA0235702385055 +B1706524549185N00638175EA0234702372055 +B1707024549206N00638273EA0233702360055 +B1707124549228N00638373EA0232502348056 +B1707224549250N00638471EA0231702338056 +B1707324549270N00638568EA0230902327054 +B1707424549293N00638665EA0230102317049 +B1707524549313N00638750EA0229302308046 +B1708024549328N00638838EA0228602300046 +B1708124549340N00638926EA0227702292047 +B1708224549353N00639014EA0226602284048 +B1708324549361N00639114EA0225202274054 +B1708424549374N00639217EA0224002263054 +B1708524549393N00639317EA0222702252053 +B1709024549409N00639422EA0221602240053 +B1709124549423N00639528EA0220702229051 +B1709224549439N00639633EA0219502218052 +B1709324549461N00639737EA0218602207052 +B1709424549482N00639845EA0217202194052 +B1709534549506N00639950EA0215802183055 +B1710034549532N00640057EA0214902171052 +B1710134549549N00640163EA0213702160055 +B1710234549563N00640270EA0212402148055 +B1710334549580N00640367EA0211802137049 +B1710434549598N00640461EA0211202128048 +B1710534549621N00640555EA0210802119046 +B1711034549645N00640647EA0210102112047 +B1711134549674N00640730EA0210002105042 +B1711234549697N00640804EA0209902101040 +B1711334549713N00640877EA0209402098038 +B1711434549741N00640943EA0208402093044 +B1711534549779N00641000EA0207902088042 +B1712034549823N00641046EA0207002081043 +B1712134549874N00641073EA0206002074040 +B1712234549929N00641088EA0205502067045 +B1712334549984N00641103EA0205502061043 +B1712434550039N00641126EA0204802056042 +B1712534550088N00641170EA0204802052040 +B1713034550128N00641233EA0204302049043 +B1713134550178N00641283EA0203202043041 +B1713234550231N00641319EA0202202036041 +B1713334550293N00641338EA0201202028044 +B1713434550351N00641353EA0200802020042 +B1713534550406N00641381EA0200602013039 +B1714034550452N00641447EA0200502008042 +B1714134550466N00641542EA0199902004041 +B1714234550465N00641647EA0199402000044 +B1714334550467N00641756EA0199201996043 +B1714434550478N00641859EA0199301993042 +B1714534550504N00641948EA0199001990042 +B1715034550542N00642020EA0198401987045 +B1715134550584N00642086EA0197101983043 +B1715234550628N00642145EA0195001974043 +B1715334550681N00642202EA0192801959050 +B1715434550740N00642251EA0192701945036 +B1715534550793N00642288EA0191501935044 +B1716034550840N00642329EA0191001923037 +B1716134550842N00642321EA0190301915042 +B1716234550829N00642399EA0189201907043 +B1716334550861N00642482EA0187801897042 +B1716434550884N00642575EA0186201886042 +B1716534550893N00642680EA0183401872053 +B1717034550908N00642805EA0180601853056 +B1717134550924N00642930EA0177701830063 +B1717234550940N00643065EA0174801805062 +B1717334550945N00643204EA0171601777061 +B1717434550948N00643343EA0168401748060 +B1717544550948N00643492EA0165701716059 +B1718044550949N00643629EA0163201687061 +B1718144550957N00643750EA0162401662040 +B1718244550965N00643841EA0161501643041 +B1718344550985N00643923EA0160601628044 +B1718444551009N00643998EA0159501615050 +B1718544551038N00644083EA0158901603050 +B1719044551075N00644164EA0157501592053 +B1719144551118N00644235EA0156501579050 +B1719244551164N00644299EA0155001567046 +B1719344551207N00644352EA0155101556035 +B1719444551234N00644401EA0155301551036 +B1719544551269N00644455EA0155001546039 +B1720044551303N00644510EA0154501542040 +B1720144551349N00644548EA0153801536041 +B1720244551393N00644576EA0154101531038 +B1720344551437N00644610EA0154101529036 +B1720444551479N00644604EA0154301527032 +B1720544551472N00644544EA0154201528037 +B1721044551496N00644545EA0153101526039 +B1721144551447N00644576EA0152501523039 +B1721244551401N00644546EA0150801518042 +B1721344551438N00644516EA0149501510042 +B1721444551482N00644489EA0149101500043 +B1721544551512N00644455EA0149201494044 +B1722044551483N00644488EA0150601491030 +B1722144551515N00644488EA0150301492039 +B1722244551485N00644435EA0150501492035 +B1722344551454N00644491EA0151801493029 +B1722444551476N00644507EA0152601499036 +B1722544551434N00644500EA0153401505037 +B1723044551442N00644558EA0154501512037 +B1723144551438N00644515EA0154701519039 +B1723244551389N00644542EA0155301526036 +B1723344551412N00644603EA0156101533033 +B1723444551432N00644580EA0155501538041 +B1723544551386N00644604EA0155801541032 +B1724044551402N00644661EA0155401544038 +B1724144551444N00644662EA0155201544040 +B1724244551475N00644668EA0155001543033 +B1724344551495N00644730EA0154401541036 +B1724444551516N00644689EA0155101539035 +B1724544551536N00644676EA0155801541040 +B1725044551499N00644701EA0156601543035 +B1725144551496N00644659EA0156801547034 +B1725244551498N00644713EA0156701549038 +B1725354551463N00644676EA0157201551035 +B1725454551470N00644629EA0157201554039 +B1725554551488N00644673EA0156201554037 +B1726054551436N00644668EA0155601551038 +B1726154551424N00644613EA0154601546039 +B1726254551457N00644573EA0154101540040 +B1726354551488N00644528EA0153801535041 +B1726454551505N00644467EA0153501531040 +B1726554551533N00644421EA0151901526041 +B1727054551566N00644373EA0149801515042 +B1727154551615N00644322EA0148001501055 +B1727254551663N00644275EA0146401486052 +B1727354551727N00644255EA0144601470051 +B1727454551790N00644239EA0143501453051 +B1727554551830N00644228EA0142601439039 +B1728054551869N00644211EA0141201428045 +B1728154551912N00644200EA0139801416052 +B1728254551963N00644178EA0138501403050 +B1728354552012N00644146EA0137101389048 +B1728454552054N00644095EA0136601377045 +B1728554552101N00644068EA0136301367045 +B1729054552141N00644053EA0136301360040 +B1729154552180N00644021EA0136701356037 +B1729254552174N00643997EA0137201355041 +B1729354552129N00644032EA0137201355041 +B1729454552153N00644007EA0137401356036 +B1729554552200N00644014EA0137501359041 +B1730054552241N00643985EA0138701363041 +B1730154552280N00643975EA0138401366038 +B1730254552325N00643966EA0138101367037 +B1730354552376N00643955EA0138401368040 +B1730454552425N00643934EA0139001369038 +B1730554552471N00643907EA0138801370037 +B1731054552518N00643879EA0138801370040 +B1731154552558N00643846EA0138801370038 +B1731254552590N00643808EA0138701370033 +B1731354552624N00643774EA0139101370033 +B1731454552639N00643734EA0139901374040 +B1731554552586N00643762EA0139401376043 +B1732054552605N00643737EA0139101376041 +B1732154552650N00643728EA0139201375040 +B1732254552688N00643710EA0139501375038 +B1732354552728N00643689EA0139601376039 +B1732454552763N00643662EA0139801377042 +B1732554552803N00643642EA0139801378037 +B1733064552854N00643617EA0140301379037 +B1733164552902N00643599EA0140401381039 +B1733264552960N00643590EA0140501382037 +B1733364553015N00643580EA0140201383038 +B1733464553071N00643568EA0139201380043 +B1733564553131N00643574EA0139401377038 +B1734064553181N00643584EA0138901374044 +B1734164553235N00643593EA0138301371039 +B1734264553293N00643591EA0137801367048 +B1734364553353N00643601EA0137601363039 +B1734464553408N00643610EA0137801361037 +B1734564553465N00643611EA0137301358044 +B1735064553518N00643608EA0136801355038 +B1735164553575N00643615EA0136301352045 +B1735264553634N00643603EA0136501349038 +B1735364553702N00643632EA0136201347040 +B1735464553774N00643674EA0134801342045 +B1735564553833N00643701EA0134401336040 +B1736064553891N00643719EA0134101331037 +B1736164553951N00643738EA0133301326043 +B1736264554013N00643764EA0133301322036 +B1736364554075N00643782EA0132501317043 +B1736464554139N00643786EA0131701311037 +B1736564554201N00643814EA0130001303035 +B1737064554268N00643844EA0128001291042 +B1737164554340N00643859EA0126201276046 +B1737264554411N00643870EA0124201261041 +B1737364554482N00643882EA0122301244037 +B1737464554550N00643910EA0120301226045 +B1737564554619N00643915EA0118001207044 +B1738064554675N00643854EA0116701189043 +B1738164554706N00643785EA0115101171042 +B1738264554704N00643719EA0114001155042 +B1738364554716N00643648EA0112701139037 +B1738464554720N00643586EA0111901126044 +B1738564554698N00643549EA0111201115043 +B1739064554675N00643515EA0111001106037 +B1739164554646N00643487EA0110401099044 +B1739264554613N00643454EA0110001092034 +B1739364554593N00643430EA0110101088037 +B1739464554573N00643413EA0109701085039 +B1739564554543N00643400EA0110101081038 +B1740064554513N00643385EA0110601080035 +B1740164554485N00643369EA0111001081034 +B1740264554513N00643366EA0110901083036 +B1740364554510N00643428EA0110801084038 +B1740464554478N00643400EA0109901083040 +B1740574554439N00643367EA0109101079038 +B1741074554418N00643315EA0107301072038 +B1741174554423N00643257EA0106601061033 +B1741274554472N00643275EA0106301054036 +B1741374554458N00643328EA0105301048033 +B1741474554429N00643287EA0103801039042 +B1741574554416N00643236EA0102501029037 +B1742074554411N00643190EA0100601018038 +B1742174554466N00643227EA0099601003036 +B1742274554500N00643298EA0098500990035 +B1742374554505N00643363EA0098200980035 +B1742474554491N00643316EA0096200969036 +B1742574554504N00643244EA0094700956040 +B1743074554534N00643189EA0093400943038 +B1743174554557N00643137EA0092100929036 +B1743274554581N00643084EA0091200916044 +B1743374554606N00643034EA0090200904034 +B1743474554633N00642986EA0090900894038 +B1743574554619N00642995EA0091500891041 +B1744074554657N00643053EA0092000891030 +B1744174554678N00643029EA0092400892036 +B1744274554647N00643070EA0093100896033 +B1744374554678N00643125EA0094000901031 +B1744474554703N00643105EA0094100905038 +B1744574554672N00643129EA0094500909033 +B1745074554680N00643128EA0094400912033 +B1745174554713N00643204EA0094200914041 +B1745274554685N00643212EA0093700914044 +B1745374554692N00643163EA0094000913036 +B1745474554739N00643165EA0093500912037 +B1745574554733N00643235EA0092900909038 +B1746074554710N00643256EA0092100905036 +B1746174554735N00643214EA0091700900037 +B1746274554793N00643257EA0091000894038 +B1746374554787N00643263EA0090300889037 +B1746474554825N00643213EA0088700881036 +B1746574554862N00643161EA0087200870035 +B1747074554912N00643115EA0086900859036 +B1747174554934N00643073EA0087200853038 +B1747274554932N00643033EA0087000849040 +B1747374554937N00642991EA0087700847034 +B1747474554922N00643052EA0087500846040 +B1747574554986N00643097EA0087600847038 +B1748074555037N00643065EA0087300847037 +B1748174555021N00643025EA0087000846038 +B1748274555017N00642975EA0086600844038 +B1748374555026N00642931EA0086500842037 +B1748484555038N00642887EA0087200841035 +B1748584555024N00642947EA0087300841039 +B1749084555076N00642986EA0087900842034 +B1749184555124N00642954EA0087100843031 +B1749284555136N00642891EA0087400843037 +B1749384555112N00642903EA0086700841038 +B1749484555147N00642965EA0087000841032 +B1749584555137N00643003EA0086600840039 +B1750084555128N00642971EA0087200840032 +B1750184555167N00643005EA0087000841033 +B1750284555147N00643051EA0086300840036 +B1750384555128N00643016EA0085200836036 +B1750484555110N00642958EA0084900830041 +B1750584555096N00642907EA0084900826040 +B1751084555088N00642868EA0084800824038 +B1751184555092N00642816EA0084500821040 +B1751284555077N00642772EA0084100818038 +B1751384555063N00642722EA0083100814037 +B1751484555053N00642675EA0081900808039 +B1751584555041N00642624EA0081600800036 +B1752084555023N00642582EA0080500793042 +B1752184555027N00642525EA0080000785037 +B1752284555028N00642471EA0079300777040 +B1752384555039N00642410EA0078800771041 +B1752484555046N00642346EA0078700765038 +B1752584555028N00642289EA0077800760043 +B1753084554983N00642269EA0076800753043 +B1753184554936N00642304EA0076000745037 +B1753284554914N00642384EA0074800737040 +B1753384554927N00642482EA0073600728041 +B1753484554964N00642576EA0072000718005 +B1753584555033N00642625EA0071800707002 +B1754084555093N00642588EA0070400697000 +B1754184555113N00642503EA0069400686001 +B1754284555110N00642430EA0068500676000 +B1754384555080N00642396EA0067600665000 +B1754484555043N00642363EA0066800656000 +B1754584555012N00642323EA0065800646000 +B1755084554984N00642342EA0064300636000 +B1755184555015N00642412EA0063300625000 +B1755284554990N00642377EA0062000615002 +B1755384554962N00642364EA0061600606000 +B1755484554962N00642363EA0061600601000 +B1755584554963N00642364EA0061600596000 +B1756084554963N00642365EA0061600591000 +B1756184554964N00642366EA0061600587000 +B1756294554965N00642366EA0061600584000 diff --git a/examples/data/igc/Sylvain-Dhonneur.igc b/examples/data/igc/Sylvain-Dhonneur.igc new file mode 100644 index 0000000000..c24d53be88 --- /dev/null +++ b/examples/data/igc/Sylvain-Dhonneur.igc @@ -0,0 +1,16374 @@ +AXGD111 6030, SN07178, SW3.29 +HFDTE190411 +HOPLTPILOT: Sylvain Dhonneur +HOGTYGLIDERTYPE: R10 +HOGTYGLIDERID: None +HOCIDCOMPETITIONID: +HODTM100GPSDATUM: WGS-84 +HOCCLCOMPETITION CLASS: None +HOSITSite: None +B0851014556248N00651105EA0000002045 +B0851034556248N00651105EA0000002045 +B0851054556248N00651105EA0000002045 +B0851074556248N00651105EA0000002045 +B0851094556248N00651105EA0000002045 +B0851114556248N00651105EA0000002045 +B0851134556248N00651105EA0000002045 +B0851154556248N00651105EA0000002045 +B0851174556248N00651105EA0000002045 +B0851194556248N00651105EA0000002045 +B0851214556248N00651105EA0000002045 +B0851234556248N00651105EA0000002045 +B0851254556248N00651105EA0000002045 +B0851274556248N00651105EA0000002045 +B0851294556248N00651105EA0000002045 +B0851314556248N00651105EA0000002045 +B0851334556248N00651105EA0000002045 +B0851354556251N00651107EA0000002045 +B0851374556254N00651109EA0000002045 +B0851394556258N00651111EA0000002045 +B0851414556265N00651116EA0000002045 +B0851434556275N00651124EA0000002044 +B0851454556282N00651135EA0000002041 +B0851474556289N00651146EA0000002039 +B0851494556295N00651156EA0000002036 +B0851514556299N00651169EA0000002032 +B0851534556302N00651185EA0000002028 +B0851554556305N00651199EA0000002025 +B0851574556307N00651211EA0000002023 +B0851594556306N00651224EA0000002021 +B0852024556305N00651235EA0000002020 +B0852044556306N00651241EA0000002021 +B0852064556310N00651247EA0000002022 +B0852084556311N00651254EA0000002024 +B0852104556307N00651258EA0000002027 +B0852124556304N00651261EA0000002031 +B0852144556303N00651267EA0000002035 +B0852164556300N00651274EA0000002037 +B0852184556296N00651281EA0000002039 +B0852204556290N00651286EA0000002040 +B0852224556282N00651290EA0000002041 +B0852244556274N00651291EA0000002043 +B0852264556270N00651293EA0000002045 +B0852284556264N00651297EA0000002046 +B0852304556256N00651300EA0000002049 +B0852324556250N00651301EA0000002052 +B0852344556243N00651301EA0000002057 +B0852364556234N00651303EA0000002061 +B0852384556224N00651305EA0000002067 +B0852404556214N00651303EA0000002072 +B0852424556204N00651298EA0000002077 +B0852444556192N00651294EA0000002081 +B0852464556179N00651294EA0000002084 +B0852484556171N00651300EA0000002086 +B0852504556170N00651308EA0000002089 +B0852524556173N00651313EA0000002091 +B0852544556181N00651312EA0000002092 +B0852564556189N00651302EA0000002094 +B0852584556192N00651284EA0000002094 +B0853004556193N00651265EA0000002095 +B0853024556193N00651243EA0000002095 +B0853044556184N00651214EA0000002096 +B0853064556175N00651201EA0000002099 +B0853084556165N00651190EA0000002102 +B0853104556157N00651178EA0000002106 +B0853124556149N00651163EA0000002111 +B0853144556144N00651150EA0000002117 +B0853164556136N00651140EA0000002122 +B0853184556125N00651133EA0000002128 +B0853204556115N00651140EA0000002137 +B0853224556111N00651149EA0000002144 +B0853254556108N00651158EA0000002151 +B0853274556111N00651165EA0000002157 +B0853294556118N00651164EA0000002162 +B0853314556126N00651154EA0000002165 +B0853334556128N00651132EA0000002167 +B0853354556124N00651110EA0000002172 +B0853374556122N00651094EA0000002179 +B0853394556121N00651083EA0000002186 +B0853414556118N00651070EA0000002192 +B0853434556110N00651056EA0000002197 +B0853454556098N00651058EA0000002204 +B0853474556088N00651067EA0000002213 +B0853494556085N00651076EA0000002220 +B0853514556086N00651085EA0000002227 +B0853534556086N00651085EA0000002235 +B0853554556099N00651084EA0000002241 +B0853574556103N00651068EA0000002246 +B0853594556104N00651049EA0000002254 +B0854014556099N00651031EA0000002261 +B0854034556088N00651018EA0000002270 +B0854054556076N00651010EA0000002278 +B0854074556065N00651011EA0000002284 +B0854094556056N00651016EA0000002291 +B0854114556049N00651024EA0000002299 +B0854134556047N00651031EA0000002306 +B0854154556050N00651035EA0000002311 +B0854174556057N00651032EA0000002315 +B0854194556065N00651019EA0000002319 +B0854214556070N00650999EA0000002324 +B0854234556070N00650978EA0000002330 +B0854254556066N00650962EA0000002337 +B0854274556060N00650946EA0000002344 +B0854294556052N00650928EA0000002350 +B0854314556038N00650920EA0000002356 +B0854334556026N00650914EA0000002360 +B0854354556014N00650910EA0000002363 +B0854374556003N00650911EA0000002365 +B0854394555996N00650918EA0000002368 +B0854414555995N00650926EA0000002372 +B0854434555999N00650931EA0000002377 +B0854454556008N00650931EA0000002385 +B0854474556013N00650929EA0000002390 +B0854494556019N00650927EA0000002394 +B0854514556026N00650921EA0000002397 +B0854534556034N00650915EA0000002401 +B0854554556040N00650914EA0000002406 +B0854574556046N00650917EA0000002411 +B0854594556052N00650920EA0000002416 +B0855014556058N00650920EA0000002420 +B0855034556064N00650923EA0000002424 +B0855064556069N00650931EA0000002427 +B0855084556074N00650938EA0000002430 +B0855104556079N00650943EA0000002435 +B0855124556085N00650947EA0000002441 +B0855144556092N00650947EA0000002446 +B0855164556100N00650941EA0000002450 +B0855184556104N00650930EA0000002453 +B0855204556107N00650917EA0000002456 +B0855224556108N00650901EA0000002457 +B0855244556102N00650887EA0000002458 +B0855264556089N00650881EA0000002459 +B0855284556078N00650885EA0000002460 +B0855304556071N00650893EA0000002460 +B0855324556065N00650903EA0000002459 +B0855344556060N00650915EA0000002459 +B0855364556055N00650927EA0000002459 +B0855384556053N00650938EA0000002461 +B0855404556050N00650950EA0000002465 +B0855424556046N00650962EA0000002469 +B0855444556040N00650971EA0000002474 +B0855464556032N00650980EA0000002479 +B0855484556023N00650991EA0000002483 +B0855504556015N00651002EA0000002488 +B0855524556011N00651015EA0000002492 +B0855544556013N00651027EA0000002496 +B0855564556019N00651029EA0000002500 +B0855584556026N00651024EA0000002504 +B0856004556032N00651016EA0000002508 +B0856024556035N00651003EA0000002512 +B0856044556034N00650987EA0000002515 +B0856064556030N00650971EA0000002519 +B0856084556023N00650959EA0000002523 +B0856104556014N00650947EA0000002527 +B0856124556003N00650936EA0000002530 +B0856144555991N00650929EA0000002533 +B0856164555979N00650924EA0000002536 +B0856184555967N00650920EA0000002539 +B0856204555956N00650922EA0000002541 +B0856224555946N00650928EA0000002542 +B0856244555941N00650939EA0000002543 +B0856264555943N00650955EA0000002543 +B0856284555948N00650961EA0000002544 +B0856304555954N00650962EA0000002545 +B0856324555962N00650959EA0000002546 +B0856344555967N00650953EA0000002548 +B0856364555971N00650943EA0000002550 +B0856384555976N00650932EA0000002551 +B0856404555978N00650923EA0000002553 +B0856424555980N00650915EA0000002555 +B0856454555983N00650906EA0000002556 +B0856474555986N00650895EA0000002557 +B0856494555985N00650882EA0000002557 +B0856514555984N00650868EA0000002558 +B0856534555983N00650853EA0000002560 +B0856554555981N00650839EA0000002562 +B0856574555981N00650827EA0000002565 +B0856594555983N00650815EA0000002568 +B0857014555983N00650800EA0000002569 +B0857034555979N00650786EA0000002568 +B0857054555968N00650778EA0000002566 +B0857074555959N00650774EA0000002564 +B0857094555949N00650770EA0000002562 +B0857114555938N00650765EA0000002560 +B0857134555927N00650758EA0000002557 +B0857154555917N00650751EA0000002554 +B0857174555907N00650743EA0000002551 +B0857194555897N00650733EA0000002547 +B0857214555887N00650721EA0000002543 +B0857234555876N00650709EA0000002539 +B0857254555867N00650697EA0000002537 +B0857274555860N00650688EA0000002536 +B0857294555852N00650681EA0000002536 +B0857314555844N00650676EA0000002536 +B0857334555835N00650669EA0000002535 +B0857354555824N00650658EA0000002530 +B0857374555814N00650646EA0000002529 +B0857394555805N00650635EA0000002525 +B0857414555796N00650623EA0000002520 +B0857434555785N00650610EA0000002517 +B0857454555775N00650599EA0000002514 +B0857474555766N00650588EA0000002509 +B0857494555756N00650575EA0000002504 +B0857514555746N00650561EA0000002500 +B0857534555737N00650546EA0000002497 +B0857554555728N00650531EA0000002493 +B0857574555718N00650516EA0000002490 +B0857594555708N00650501EA0000002486 +B0858014555699N00650485EA0000002483 +B0858034555684N00650461EA0000002478 +B0858054555675N00650445EA0000002476 +B0858074555666N00650430EA0000002473 +B0858094555656N00650416EA0000002469 +B0858114555645N00650400EA0000002464 +B0858134555634N00650385EA0000002459 +B0858154555622N00650372EA0000002455 +B0858174555609N00650359EA0000002450 +B0858194555596N00650346EA0000002447 +B0858214555585N00650333EA0000002444 +B0858244555574N00650319EA0000002440 +B0858264555563N00650304EA0000002436 +B0858284555554N00650289EA0000002433 +B0858304555545N00650273EA0000002429 +B0858324555537N00650256EA0000002425 +B0858344555531N00650236EA0000002421 +B0858364555524N00650216EA0000002419 +B0858384555517N00650196EA0000002418 +B0858404555511N00650178EA0000002419 +B0858424555507N00650160EA0000002419 +B0858444555502N00650142EA0000002419 +B0858464555498N00650124EA0000002420 +B0858484555492N00650107EA0000002420 +B0858504555487N00650089EA0000002419 +B0858524555483N00650070EA0000002418 +B0858544555479N00650050EA0000002418 +B0858564555475N00650031EA0000002419 +B0858584555471N00650012EA0000002421 +B0859004555466N00649995EA0000002424 +B0859024555462N00649982EA0000002426 +B0859044555458N00649968EA0000002427 +B0859064555453N00649950EA0000002425 +B0859084555448N00649930EA0000002426 +B0859104555442N00649911EA0000002427 +B0859124555437N00649895EA0000002428 +B0859144555434N00649881EA0000002427 +B0859164555431N00649862EA0000002424 +B0859184555427N00649842EA0000002424 +B0859204555423N00649825EA0000002425 +B0859224555419N00649812EA0000002429 +B0859244555416N00649799EA0000002430 +B0859264555413N00649784EA0000002430 +B0859284555412N00649765EA0000002430 +B0859304555420N00649750EA0000002429 +B0859324555431N00649745EA0000002427 +B0859344555440N00649752EA0000002424 +B0859364555438N00649764EA0000002424 +B0859384555423N00649765EA0000002425 +B0859404555411N00649757EA0000002428 +B0859424555403N00649745EA0000002431 +B0859444555397N00649734EA0000002432 +B0859464555390N00649719EA0000002432 +B0859484555382N00649704EA0000002433 +B0859504555377N00649689EA0000002435 +B0859524555373N00649676EA0000002436 +B0859544555365N00649660EA0000002437 +B0859564555360N00649644EA0000002440 +B0859594555355N00649633EA0000002441 +B0900014555348N00649621EA0000002442 +B0900034555341N00649606EA0000002443 +B0900054555334N00649593EA0000002446 +B0900074555327N00649583EA0000002448 +B0900094555319N00649573EA0000002449 +B0900114555310N00649561EA0000002449 +B0900134555303N00649549EA0000002451 +B0900154555296N00649538EA0000002451 +B0900174555289N00649526EA0000002449 +B0900194555281N00649512EA0000002446 +B0900214555273N00649497EA0000002443 +B0900234555266N00649483EA0000002439 +B0900254555259N00649467EA0000002436 +B0900274555254N00649451EA0000002434 +B0900294555249N00649436EA0000002433 +B0900314555245N00649421EA0000002431 +B0900334555240N00649404EA0000002430 +B0900354555235N00649389EA0000002429 +B0900374555232N00649374EA0000002428 +B0900394555227N00649358EA0000002425 +B0900414555222N00649341EA0000002423 +B0900434555217N00649324EA0000002420 +B0900454555212N00649309EA0000002416 +B0900474555208N00649296EA0000002412 +B0900494555202N00649281EA0000002408 +B0900514555194N00649265EA0000002406 +B0900534555190N00649252EA0000002405 +B0900554555187N00649237EA0000002405 +B0900574555182N00649219EA0000002406 +B0900594555179N00649203EA0000002410 +B0901014555176N00649188EA0000002414 +B0901034555171N00649170EA0000002420 +B0901054555167N00649152EA0000002426 +B0901074555165N00649134EA0000002433 +B0901094555165N00649121EA0000002440 +B0901114555163N00649111EA0000002445 +B0901134555161N00649102EA0000002448 +B0901154555153N00649083EA0000002449 +B0901174555146N00649071EA0000002453 +B0901194555136N00649060EA0000002455 +B0901214555126N00649051EA0000002458 +B0901234555118N00649048EA0000002461 +B0901254555112N00649054EA0000002464 +B0901274555111N00649061EA0000002466 +B0901294555115N00649068EA0000002468 +B0901324555121N00649073EA0000002470 +B0901344555127N00649078EA0000002470 +B0901364555134N00649084EA0000002470 +B0901384555141N00649091EA0000002470 +B0901404555147N00649098EA0000002471 +B0901424555152N00649107EA0000002471 +B0901444555157N00649115EA0000002472 +B0901464555161N00649122EA0000002474 +B0901484555166N00649128EA0000002475 +B0901504555170N00649136EA0000002477 +B0901524555173N00649145EA0000002479 +B0901544555176N00649153EA0000002480 +B0901564555177N00649161EA0000002483 +B0901584555177N00649161EA0000002484 +B0902004555175N00649182EA0000002485 +B0902024555171N00649192EA0000002487 +B0902044555164N00649200EA0000002488 +B0902064555155N00649201EA0000002489 +B0902084555144N00649192EA0000002489 +B0902104555136N00649174EA0000002488 +B0902124555133N00649155EA0000002489 +B0902144555134N00649136EA0000002490 +B0902164555135N00649115EA0000002491 +B0902184555136N00649094EA0000002491 +B0902204555137N00649074EA0000002491 +B0902224555139N00649054EA0000002490 +B0902244555140N00649034EA0000002489 +B0902264555140N00649019EA0000002490 +B0902284555141N00649001EA0000002489 +B0902304555142N00648981EA0000002489 +B0902324555142N00648961EA0000002490 +B0902344555144N00648941EA0000002492 +B0902364555146N00648921EA0000002495 +B0902384555147N00648901EA0000002498 +B0902404555149N00648881EA0000002500 +B0902424555156N00648862EA0000002501 +B0902444555168N00648850EA0000002502 +B0902464555182N00648850EA0000002504 +B0902484555191N00648857EA0000002506 +B0902504555185N00648863EA0000002511 +B0902524555178N00648857EA0000002516 +B0902544555176N00648839EA0000002522 +B0902564555182N00648818EA0000002526 +B0902584555196N00648817EA0000002532 +B0903004555207N00648827EA0000002537 +B0903024555210N00648836EA0000002543 +B0903044555204N00648840EA0000002550 +B0903064555196N00648837EA0000002557 +B0903084555191N00648825EA0000002563 +B0903114555191N00648808EA0000002571 +B0903134555197N00648794EA0000002578 +B0903154555207N00648782EA0000002586 +B0903174555219N00648776EA0000002594 +B0903194555232N00648779EA0000002602 +B0903214555242N00648788EA0000002610 +B0903234555247N00648799EA0000002618 +B0903254555244N00648807EA0000002625 +B0903274555237N00648812EA0000002632 +B0903294555231N00648813EA0000002640 +B0903314555227N00648810EA0000002649 +B0903334555223N00648802EA0000002656 +B0903354555222N00648785EA0000002662 +B0903374555228N00648767EA0000002669 +B0903394555240N00648758EA0000002677 +B0903414555255N00648763EA0000002687 +B0903434555264N00648774EA0000002698 +B0903454555267N00648785EA0000002708 +B0903474555259N00648787EA0000002718 +B0903494555253N00648780EA0000002728 +B0903514555252N00648769EA0000002739 +B0903534555252N00648755EA0000002748 +B0903554555250N00648743EA0000002759 +B0903574555248N00648731EA0000002770 +B0903594555245N00648719EA0000002780 +B0904014555240N00648707EA0000002789 +B0904034555235N00648695EA0000002797 +B0904054555229N00648684EA0000002804 +B0904074555222N00648673EA0000002810 +B0904094555215N00648661EA0000002814 +B0904114555207N00648648EA0000002816 +B0904134555199N00648635EA0000002819 +B0904154555193N00648625EA0000002823 +B0904174555187N00648616EA0000002826 +B0904194555179N00648605EA0000002828 +B0904214555173N00648593EA0000002830 +B0904234555167N00648583EA0000002832 +B0904254555161N00648572EA0000002832 +B0904274555152N00648552EA0000002830 +B0904294555146N00648543EA0000002829 +B0904314555139N00648538EA0000002827 +B0904334555130N00648531EA0000002824 +B0904354555124N00648518EA0000002816 +B0904374555119N00648505EA0000002815 +B0904394555114N00648494EA0000002815 +B0904414555109N00648484EA0000002812 +B0904434555103N00648471EA0000002811 +B0904454555098N00648457EA0000002810 +B0904474555092N00648443EA0000002807 +B0904504555085N00648427EA0000002804 +B0904524555079N00648411EA0000002802 +B0904544555074N00648394EA0000002800 +B0904564555068N00648380EA0000002797 +B0904584555061N00648366EA0000002794 +B0905004555055N00648351EA0000002791 +B0905024555050N00648335EA0000002790 +B0905044555045N00648321EA0000002790 +B0905064555039N00648309EA0000002789 +B0905084555034N00648295EA0000002788 +B0905104555028N00648280EA0000002787 +B0905124555021N00648267EA0000002786 +B0905144555014N00648255EA0000002783 +B0905164555005N00648241EA0000002779 +B0905184554996N00648227EA0000002773 +B0905204554987N00648212EA0000002766 +B0905224554978N00648197EA0000002760 +B0905244554968N00648181EA0000002754 +B0905264554958N00648166EA0000002749 +B0905284554948N00648150EA0000002743 +B0905304554939N00648133EA0000002736 +B0905324554928N00648116EA0000002730 +B0905344554918N00648100EA0000002723 +B0905364554907N00648083EA0000002715 +B0905384554895N00648063EA0000002707 +B0905404554884N00648044EA0000002701 +B0905424554873N00648030EA0000002695 +B0905444554859N00648018EA0000002688 +B0905464554845N00648004EA0000002683 +B0905484554832N00647991EA0000002678 +B0905504554819N00647978EA0000002671 +B0905524554804N00647964EA0000002665 +B0905544554790N00647950EA0000002661 +B0905564554777N00647936EA0000002658 +B0905584554765N00647923EA0000002655 +B0906004554752N00647910EA0000002653 +B0906024554740N00647896EA0000002651 +B0906044554729N00647881EA0000002648 +B0906064554718N00647867EA0000002645 +B0906084554700N00647848EA0000002638 +B0906104554688N00647834EA0000002634 +B0906124554678N00647818EA0000002630 +B0906144554667N00647804EA0000002626 +B0906164554655N00647792EA0000002622 +B0906184554643N00647778EA0000002617 +B0906204554631N00647761EA0000002614 +B0906224554619N00647745EA0000002610 +B0906244554608N00647729EA0000002607 +B0906264554596N00647713EA0000002604 +B0906284554585N00647699EA0000002602 +B0906314554572N00647686EA0000002600 +B0906334554560N00647674EA0000002597 +B0906354554549N00647659EA0000002593 +B0906374554537N00647644EA0000002590 +B0906394554525N00647627EA0000002587 +B0906414554514N00647608EA0000002584 +B0906434554504N00647590EA0000002582 +B0906454554495N00647570EA0000002579 +B0906474554486N00647550EA0000002577 +B0906494554479N00647532EA0000002573 +B0906514554471N00647512EA0000002568 +B0906534554464N00647489EA0000002564 +B0906554554457N00647467EA0000002561 +B0906574554449N00647446EA0000002557 +B0906594554442N00647423EA0000002554 +B0907014554435N00647401EA0000002552 +B0907034554428N00647380EA0000002548 +B0907054554421N00647356EA0000002546 +B0907074554414N00647335EA0000002544 +B0907094554408N00647315EA0000002541 +B0907114554403N00647295EA0000002538 +B0907134554398N00647274EA0000002536 +B0907154554392N00647255EA0000002534 +B0907174554385N00647238EA0000002532 +B0907194554378N00647221EA0000002530 +B0907214554371N00647205EA0000002528 +B0907234554366N00647190EA0000002526 +B0907254554360N00647173EA0000002522 +B0907274554355N00647156EA0000002519 +B0907294554347N00647139EA0000002515 +B0907314554339N00647121EA0000002511 +B0907334554331N00647103EA0000002508 +B0907354554322N00647087EA0000002506 +B0907374554312N00647072EA0000002504 +B0907394554303N00647057EA0000002501 +B0907414554295N00647042EA0000002499 +B0907434554288N00647025EA0000002496 +B0907454554281N00647008EA0000002492 +B0907474554273N00646992EA0000002489 +B0907494554261N00646968EA0000002482 +B0907514554252N00646951EA0000002478 +B0907534554242N00646933EA0000002474 +B0907554554233N00646914EA0000002471 +B0907574554223N00646895EA0000002467 +B0907594554213N00646877EA0000002465 +B0908014554201N00646860EA0000002463 +B0908034554190N00646844EA0000002462 +B0908054554181N00646830EA0000002462 +B0908074554172N00646815EA0000002460 +B0908104554161N00646799EA0000002458 +B0908124554152N00646782EA0000002458 +B0908144554144N00646766EA0000002459 +B0908164554135N00646749EA0000002458 +B0908184554127N00646731EA0000002458 +B0908204554120N00646713EA0000002457 +B0908224554114N00646695EA0000002456 +B0908244554107N00646677EA0000002453 +B0908264554099N00646659EA0000002452 +B0908284554092N00646642EA0000002451 +B0908304554084N00646626EA0000002449 +B0908324554076N00646610EA0000002447 +B0908344554069N00646594EA0000002445 +B0908364554062N00646577EA0000002443 +B0908384554062N00646577EA0000002441 +B0908404554048N00646543EA0000002439 +B0908424554040N00646527EA0000002437 +B0908444554032N00646511EA0000002434 +B0908464554023N00646496EA0000002431 +B0908484554015N00646480EA0000002429 +B0908504554007N00646464EA0000002427 +B0908524553999N00646448EA0000002424 +B0908544553991N00646432EA0000002420 +B0908564553982N00646415EA0000002417 +B0908584553973N00646398EA0000002414 +B0909004553964N00646383EA0000002411 +B0909024553954N00646368EA0000002408 +B0909044553945N00646351EA0000002404 +B0909064553936N00646333EA0000002402 +B0909084553928N00646319EA0000002401 +B0909104553920N00646304EA0000002397 +B0909124553911N00646288EA0000002394 +B0909144553902N00646272EA0000002393 +B0909164553894N00646257EA0000002391 +B0909184553886N00646241EA0000002387 +B0909204553877N00646225EA0000002385 +B0909224553868N00646209EA0000002382 +B0909244553859N00646195EA0000002379 +B0909264553849N00646180EA0000002376 +B0909284553838N00646165EA0000002373 +B0909304553824N00646143EA0000002369 +B0909324553814N00646128EA0000002366 +B0909344553805N00646114EA0000002364 +B0909364553796N00646100EA0000002361 +B0909384553787N00646085EA0000002357 +B0909404553778N00646068EA0000002355 +B0909424553770N00646053EA0000002353 +B0909444553762N00646039EA0000002350 +B0909464553753N00646023EA0000002346 +B0909484553744N00646008EA0000002344 +B0909514553735N00645995EA0000002342 +B0909534553727N00645980EA0000002339 +B0909554553717N00645965EA0000002337 +B0909574553708N00645951EA0000002336 +B0909594553699N00645938EA0000002334 +B0910014553689N00645924EA0000002332 +B0910034553680N00645910EA0000002331 +B0910054553671N00645897EA0000002329 +B0910074553662N00645883EA0000002327 +B0910094553653N00645869EA0000002325 +B0910114553643N00645856EA0000002323 +B0910134553633N00645844EA0000002320 +B0910154553622N00645831EA0000002318 +B0910174553612N00645819EA0000002315 +B0910194553602N00645806EA0000002313 +B0910214553592N00645792EA0000002311 +B0910234553583N00645777EA0000002308 +B0910254553575N00645762EA0000002306 +B0910274553567N00645747EA0000002303 +B0910294553559N00645731EA0000002301 +B0910314553550N00645715EA0000002298 +B0910334553542N00645699EA0000002296 +B0910354553534N00645683EA0000002294 +B0910374553526N00645668EA0000002292 +B0910394553518N00645653EA0000002289 +B0910414553510N00645637EA0000002286 +B0910434553504N00645619EA0000002283 +B0910454553500N00645601EA0000002281 +B0910474553496N00645583EA0000002278 +B0910494553490N00645565EA0000002275 +B0910514553484N00645548EA0000002274 +B0910534553478N00645531EA0000002272 +B0910554553472N00645514EA0000002269 +B0910574553468N00645495EA0000002266 +B0910594553465N00645477EA0000002265 +B0911014553463N00645459EA0000002263 +B0911034553459N00645441EA0000002260 +B0911054553454N00645423EA0000002258 +B0911074553447N00645406EA0000002257 +B0911094553440N00645391EA0000002256 +B0911114553430N00645367EA0000002253 +B0911134553422N00645352EA0000002251 +B0911154553413N00645339EA0000002248 +B0911174553405N00645324EA0000002245 +B0911194553396N00645307EA0000002242 +B0911214553386N00645294EA0000002240 +B0911234553378N00645285EA0000002239 +B0911254553370N00645274EA0000002235 +B0911274553357N00645261EA0000002230 +B0911294553343N00645248EA0000002228 +B0911324553331N00645239EA0000002225 +B0911344553319N00645228EA0000002219 +B0911364553304N00645214EA0000002216 +B0911384553294N00645205EA0000002215 +B0911404553286N00645197EA0000002215 +B0911424553276N00645187EA0000002215 +B0911444553264N00645177EA0000002216 +B0911464553253N00645167EA0000002219 +B0911484553243N00645156EA0000002223 +B0911504553233N00645144EA0000002228 +B0911524553224N00645131EA0000002234 +B0911544553218N00645118EA0000002240 +B0911564553212N00645106EA0000002245 +B0911584553204N00645094EA0000002249 +B0912004553194N00645086EA0000002252 +B0912024553188N00645087EA0000002255 +B0912044553176N00645102EA0000002258 +B0912064553176N00645118EA0000002260 +B0912084553179N00645129EA0000002263 +B0912104553186N00645135EA0000002264 +B0912124553195N00645136EA0000002265 +B0912144553201N00645125EA0000002267 +B0912164553204N00645113EA0000002270 +B0912184553205N00645100EA0000002274 +B0912204553204N00645084EA0000002278 +B0912224553198N00645069EA0000002282 +B0912244553191N00645058EA0000002286 +B0912264553180N00645057EA0000002289 +B0912284553171N00645065EA0000002291 +B0912304553169N00645080EA0000002292 +B0912324553174N00645095EA0000002292 +B0912344553184N00645102EA0000002296 +B0912364553193N00645097EA0000002298 +B0912384553201N00645090EA0000002301 +B0912404553206N00645079EA0000002306 +B0912424553206N00645064EA0000002308 +B0912444553204N00645048EA0000002312 +B0912464553198N00645033EA0000002316 +B0912484553187N00645025EA0000002319 +B0912504553177N00645028EA0000002322 +B0912524553167N00645042EA0000002325 +B0912544553166N00645055EA0000002326 +B0912564553173N00645066EA0000002326 +B0912584553184N00645070EA0000002327 +B0913004553193N00645071EA0000002329 +B0913024553201N00645068EA0000002331 +B0913044553209N00645060EA0000002332 +B0913064553215N00645049EA0000002333 +B0913084553218N00645033EA0000002334 +B0913104553216N00645015EA0000002336 +B0913134553212N00645000EA0000002338 +B0913154553205N00644987EA0000002341 +B0913174553198N00644976EA0000002345 +B0913194553189N00644969EA0000002349 +B0913214553180N00644971EA0000002352 +B0913234553173N00644980EA0000002354 +B0913254553174N00644991EA0000002356 +B0913274553179N00644998EA0000002358 +B0913294553186N00645001EA0000002361 +B0913314553194N00644998EA0000002364 +B0913334553201N00644989EA0000002367 +B0913354553207N00644976EA0000002370 +B0913374553209N00644961EA0000002374 +B0913394553206N00644944EA0000002376 +B0913414553197N00644932EA0000002380 +B0913434553186N00644934EA0000002385 +B0913454553180N00644945EA0000002389 +B0913474553182N00644956EA0000002393 +B0913494553190N00644960EA0000002396 +B0913514553199N00644954EA0000002399 +B0913534553206N00644942EA0000002402 +B0913554553209N00644924EA0000002405 +B0913574553205N00644906EA0000002408 +B0913594553196N00644897EA0000002412 +B0914014553188N00644899EA0000002417 +B0914034553180N00644905EA0000002421 +B0914054553172N00644913EA0000002427 +B0914074553167N00644922EA0000002431 +B0914094553170N00644933EA0000002434 +B0914114553180N00644937EA0000002436 +B0914134553191N00644930EA0000002437 +B0914154553200N00644919EA0000002441 +B0914174553207N00644905EA0000002445 +B0914194553210N00644889EA0000002450 +B0914214553212N00644872EA0000002454 +B0914234553208N00644856EA0000002458 +B0914254553198N00644848EA0000002461 +B0914274553189N00644853EA0000002464 +B0914294553185N00644864EA0000002468 +B0914314553187N00644874EA0000002472 +B0914334553200N00644878EA0000002477 +B0914354553209N00644868EA0000002480 +B0914374553214N00644850EA0000002484 +B0914394553214N00644833EA0000002486 +B0914414553206N00644822EA0000002490 +B0914434553195N00644817EA0000002492 +B0914454553186N00644818EA0000002495 +B0914474553178N00644821EA0000002496 +B0914504553172N00644830EA0000002496 +B0914524553170N00644844EA0000002498 +B0914544553175N00644854EA0000002502 +B0914564553184N00644858EA0000002504 +B0914584553194N00644860EA0000002505 +B0915004553205N00644858EA0000002507 +B0915024553215N00644852EA0000002509 +B0915044553225N00644840EA0000002511 +B0915064553230N00644824EA0000002513 +B0915084553231N00644805EA0000002514 +B0915104553226N00644787EA0000002516 +B0915124553216N00644777EA0000002517 +B0915144553204N00644780EA0000002518 +B0915164553195N00644788EA0000002521 +B0915184553188N00644796EA0000002525 +B0915204553183N00644801EA0000002530 +B0915224553179N00644807EA0000002534 +B0915244553179N00644816EA0000002537 +B0915264553183N00644826EA0000002538 +B0915284553189N00644832EA0000002539 +B0915304553199N00644829EA0000002540 +B0915324553206N00644818EA0000002543 +B0915344553211N00644802EA0000002543 +B0915364553215N00644780EA0000002542 +B0915384553214N00644760EA0000002544 +B0915404553210N00644744EA0000002546 +B0915424553202N00644734EA0000002546 +B0915444553192N00644730EA0000002547 +B0915464553185N00644733EA0000002547 +B0915484553179N00644741EA0000002546 +B0915504553176N00644755EA0000002546 +B0915524553175N00644769EA0000002547 +B0915544553176N00644781EA0000002548 +B0915564553178N00644794EA0000002549 +B0915584553179N00644808EA0000002551 +B0916004553177N00644818EA0000002553 +B0916024553175N00644828EA0000002557 +B0916044553172N00644836EA0000002562 +B0916064553170N00644842EA0000002566 +B0916084553172N00644850EA0000002569 +B0916104553180N00644856EA0000002572 +B0916124553194N00644850EA0000002577 +B0916144553202N00644842EA0000002582 +B0916164553206N00644827EA0000002586 +B0916184553207N00644810EA0000002590 +B0916204553203N00644796EA0000002593 +B0916224553194N00644786EA0000002597 +B0916244553184N00644781EA0000002601 +B0916264553174N00644779EA0000002605 +B0916284553165N00644778EA0000002608 +B0916314553154N00644771EA0000002611 +B0916334553143N00644762EA0000002612 +B0916354553130N00644753EA0000002615 +B0916374553119N00644749EA0000002619 +B0916394553110N00644747EA0000002621 +B0916414553100N00644747EA0000002621 +B0916434553086N00644746EA0000002622 +B0916454553073N00644743EA0000002626 +B0916474553061N00644738EA0000002627 +B0916494553049N00644734EA0000002627 +B0916514553036N00644728EA0000002625 +B0916534553023N00644722EA0000002625 +B0916554553010N00644716EA0000002624 +B0916574552997N00644707EA0000002624 +B0916594552986N00644696EA0000002626 +B0917014552975N00644688EA0000002628 +B0917034552962N00644681EA0000002631 +B0917054552950N00644675EA0000002635 +B0917074552940N00644676EA0000002639 +B0917094552930N00644680EA0000002641 +B0917114552918N00644683EA0000002640 +B0917134552905N00644677EA0000002639 +B0917154552894N00644660EA0000002636 +B0917174552888N00644641EA0000002633 +B0917194552881N00644622EA0000002630 +B0917214552871N00644605EA0000002628 +B0917234552860N00644591EA0000002627 +B0917254552846N00644580EA0000002627 +B0917274552832N00644568EA0000002627 +B0917294552820N00644555EA0000002626 +B0917314552805N00644544EA0000002623 +B0917334552789N00644533EA0000002621 +B0917354552775N00644522EA0000002621 +B0917374552762N00644511EA0000002618 +B0917394552755N00644506EA0000002614 +B0917414552732N00644491EA0000002611 +B0917434552714N00644481EA0000002607 +B0917454552696N00644471EA0000002602 +B0917474552679N00644459EA0000002598 +B0917494552665N00644447EA0000002595 +B0917514552646N00644436EA0000002590 +B0917534552632N00644427EA0000002588 +B0917554552623N00644420EA0000002587 +B0917574552613N00644415EA0000002583 +B0917594552600N00644405EA0000002580 +B0918014552588N00644395EA0000002580 +B0918034552581N00644390EA0000002583 +B0918054552573N00644386EA0000002584 +B0918074552561N00644382EA0000002585 +B0918104552549N00644377EA0000002588 +B0918124552539N00644368EA0000002593 +B0918144552530N00644358EA0000002599 +B0918164552524N00644341EA0000002603 +B0918184552525N00644323EA0000002608 +B0918204552533N00644320EA0000002611 +B0918224552539N00644333EA0000002614 +B0918244552533N00644345EA0000002617 +B0918264552521N00644345EA0000002621 +B0918284552511N00644333EA0000002624 +B0918304552508N00644314EA0000002626 +B0918324552516N00644302EA0000002628 +B0918344552526N00644311EA0000002631 +B0918364552528N00644325EA0000002634 +B0918384552520N00644333EA0000002637 +B0918404552509N00644333EA0000002640 +B0918424552497N00644325EA0000002641 +B0918444552487N00644311EA0000002643 +B0918464552479N00644300EA0000002645 +B0918484552471N00644290EA0000002647 +B0918504552462N00644276EA0000002648 +B0918524552452N00644261EA0000002648 +B0918544552442N00644245EA0000002651 +B0918564552435N00644231EA0000002655 +B0918584552426N00644220EA0000002657 +B0919004552415N00644212EA0000002658 +B0919024552404N00644209EA0000002660 +B0919044552395N00644212EA0000002660 +B0919064552386N00644218EA0000002661 +B0919084552376N00644223EA0000002664 +B0919104552368N00644229EA0000002666 +B0919124552361N00644234EA0000002667 +B0919144552352N00644239EA0000002669 +B0919164552343N00644244EA0000002673 +B0919184552337N00644250EA0000002674 +B0919204552331N00644256EA0000002674 +B0919224552325N00644262EA0000002674 +B0919244552316N00644266EA0000002672 +B0919264552303N00644264EA0000002670 +B0919284552293N00644255EA0000002670 +B0919304552278N00644243EA0000002667 +B0919324552265N00644234EA0000002662 +B0919344552252N00644223EA0000002656 +B0919364552240N00644212EA0000002648 +B0919384552225N00644199EA0000002639 +B0919404552209N00644184EA0000002633 +B0919424552195N00644171EA0000002628 +B0919444552181N00644157EA0000002621 +B0919464552167N00644143EA0000002616 +B0919484552153N00644128EA0000002609 +B0919514552138N00644112EA0000002603 +B0919534552123N00644097EA0000002598 +B0919554552109N00644083EA0000002592 +B0919574552096N00644068EA0000002586 +B0919594552082N00644054EA0000002579 +B0920014552068N00644040EA0000002573 +B0920034552055N00644026EA0000002567 +B0920054552042N00644012EA0000002561 +B0920074552029N00643997EA0000002556 +B0920094552017N00643980EA0000002552 +B0920114552004N00643965EA0000002547 +B0920134551991N00643950EA0000002541 +B0920154551978N00643934EA0000002535 +B0920174551964N00643917EA0000002528 +B0920194551950N00643900EA0000002521 +B0920214551935N00643881EA0000002514 +B0920234551919N00643863EA0000002508 +B0920254551904N00643846EA0000002503 +B0920274551888N00643829EA0000002497 +B0920294551872N00643812EA0000002492 +B0920314551856N00643795EA0000002487 +B0920334551839N00643779EA0000002482 +B0920354551823N00643763EA0000002479 +B0920374551807N00643747EA0000002475 +B0920394551790N00643731EA0000002472 +B0920414551773N00643715EA0000002469 +B0920434551757N00643700EA0000002465 +B0920454551739N00643685EA0000002461 +B0920474551722N00643670EA0000002458 +B0920494551704N00643655EA0000002454 +B0920514551687N00643640EA0000002451 +B0920534551671N00643624EA0000002446 +B0920554551653N00643608EA0000002442 +B0920574551635N00643593EA0000002439 +B0920594551619N00643577EA0000002438 +B0921014551602N00643562EA0000002437 +B0921034551586N00643547EA0000002434 +B0921054551571N00643530EA0000002430 +B0921074551554N00643514EA0000002426 +B0921094551536N00643500EA0000002422 +B0921114551509N00643482EA0000002419 +B0921134551493N00643469EA0000002416 +B0921154551476N00643458EA0000002413 +B0921174551459N00643445EA0000002409 +B0921194551442N00643432EA0000002405 +B0921214551426N00643419EA0000002402 +B0921234551410N00643406EA0000002399 +B0921254551394N00643392EA0000002395 +B0921274551379N00643378EA0000002392 +B0921294551364N00643363EA0000002388 +B0921324551349N00643349EA0000002385 +B0921344551335N00643335EA0000002384 +B0921364551323N00643322EA0000002382 +B0921384551311N00643310EA0000002378 +B0921404551296N00643298EA0000002375 +B0921424551283N00643286EA0000002374 +B0921444551271N00643273EA0000002371 +B0921464551257N00643261EA0000002368 +B0921484551244N00643248EA0000002365 +B0921504551231N00643235EA0000002363 +B0921524551218N00643223EA0000002360 +B0921544551205N00643210EA0000002357 +B0921564551192N00643197EA0000002355 +B0921584551179N00643184EA0000002352 +B0922004551165N00643173EA0000002349 +B0922024551151N00643163EA0000002346 +B0922044551137N00643151EA0000002344 +B0922064551123N00643140EA0000002341 +B0922084551110N00643127EA0000002338 +B0922104551097N00643113EA0000002336 +B0922124551084N00643099EA0000002333 +B0922144551072N00643086EA0000002330 +B0922164551060N00643071EA0000002327 +B0922184551047N00643058EA0000002324 +B0922204551034N00643045EA0000002322 +B0922224551022N00643032EA0000002319 +B0922244551009N00643020EA0000002316 +B0922264550996N00643009EA0000002314 +B0922284550982N00642999EA0000002312 +B0922304550970N00642989EA0000002309 +B0922324550957N00642978EA0000002305 +B0922344550943N00642966EA0000002301 +B0922364550931N00642952EA0000002299 +B0922384550919N00642938EA0000002295 +B0922404550908N00642923EA0000002292 +B0922424550896N00642908EA0000002289 +B0922444550886N00642894EA0000002286 +B0922464550876N00642878EA0000002281 +B0922484550865N00642862EA0000002277 +B0922504550853N00642846EA0000002273 +B0922524550838N00642824EA0000002267 +B0922544550828N00642808EA0000002262 +B0922564550818N00642791EA0000002258 +B0922584550808N00642777EA0000002254 +B0923004550797N00642765EA0000002248 +B0923024550784N00642752EA0000002242 +B0923044550773N00642740EA0000002239 +B0923064550764N00642732EA0000002237 +B0923084550754N00642723EA0000002233 +B0923114550742N00642713EA0000002231 +B0923134550729N00642704EA0000002231 +B0923154550718N00642695EA0000002230 +B0923174550707N00642683EA0000002231 +B0923194550698N00642675EA0000002233 +B0923214550690N00642668EA0000002233 +B0923234550682N00642661EA0000002231 +B0923254550673N00642650EA0000002229 +B0923274550663N00642639EA0000002230 +B0923294550653N00642631EA0000002232 +B0923314550645N00642623EA0000002233 +B0923334550638N00642613EA0000002233 +B0923354550631N00642603EA0000002234 +B0923374550623N00642594EA0000002234 +B0923394550616N00642584EA0000002234 +B0923414550609N00642575EA0000002232 +B0923434550601N00642565EA0000002229 +B0923454550593N00642552EA0000002225 +B0923474550587N00642537EA0000002221 +B0923494550580N00642522EA0000002219 +B0923514550575N00642508EA0000002217 +B0923534550570N00642493EA0000002216 +B0923554550564N00642478EA0000002217 +B0923574550558N00642464EA0000002217 +B0923594550553N00642451EA0000002217 +B0924014550549N00642437EA0000002215 +B0924034550543N00642420EA0000002213 +B0924054550537N00642403EA0000002212 +B0924074550531N00642388EA0000002214 +B0924094550526N00642374EA0000002218 +B0924114550520N00642360EA0000002221 +B0924134550514N00642346EA0000002224 +B0924154550508N00642333EA0000002227 +B0924174550505N00642320EA0000002232 +B0924194550507N00642311EA0000002235 +B0924214550516N00642311EA0000002238 +B0924234550520N00642324EA0000002240 +B0924254550512N00642340EA0000002241 +B0924274550496N00642341EA0000002242 +B0924294550483N00642327EA0000002244 +B0924314550475N00642313EA0000002248 +B0924334550463N00642296EA0000002251 +B0924354550456N00642282EA0000002251 +B0924374550447N00642268EA0000002251 +B0924394550434N00642257EA0000002251 +B0924414550422N00642246EA0000002250 +B0924434550410N00642231EA0000002251 +B0924454550398N00642219EA0000002252 +B0924474550388N00642209EA0000002256 +B0924504550379N00642200EA0000002259 +B0924524550370N00642188EA0000002262 +B0924544550362N00642178EA0000002266 +B0924564550354N00642169EA0000002271 +B0924584550346N00642158EA0000002276 +B0925004550342N00642145EA0000002280 +B0925024550343N00642132EA0000002284 +B0925044550352N00642127EA0000002287 +B0925064550360N00642133EA0000002291 +B0925084550362N00642145EA0000002295 +B0925104550356N00642157EA0000002299 +B0925124550344N00642161EA0000002304 +B0925144550333N00642156EA0000002310 +B0925164550326N00642146EA0000002315 +B0925184550322N00642133EA0000002319 +B0925204550324N00642119EA0000002322 +B0925224550332N00642114EA0000002325 +B0925244550340N00642120EA0000002328 +B0925264550342N00642135EA0000002331 +B0925284550337N00642147EA0000002334 +B0925304550325N00642153EA0000002337 +B0925324550313N00642148EA0000002341 +B0925344550305N00642138EA0000002346 +B0925364550299N00642128EA0000002350 +B0925384550295N00642115EA0000002353 +B0925404550296N00642101EA0000002356 +B0925424550302N00642091EA0000002358 +B0925444550310N00642091EA0000002361 +B0925464550315N00642101EA0000002364 +B0925484550314N00642115EA0000002366 +B0925504550306N00642126EA0000002369 +B0925524550293N00642128EA0000002372 +B0925544550283N00642119EA0000002375 +B0925564550277N00642107EA0000002379 +B0925584550272N00642097EA0000002383 +B0926004550268N00642087EA0000002385 +B0926024550266N00642073EA0000002387 +B0926044550270N00642061EA0000002389 +B0926064550279N00642059EA0000002391 +B0926084550285N00642075EA0000002393 +B0926104550280N00642087EA0000002394 +B0926124550268N00642089EA0000002396 +B0926144550259N00642078EA0000002399 +B0926164550252N00642068EA0000002402 +B0926184550243N00642058EA0000002405 +B0926204550237N00642047EA0000002408 +B0926224550231N00642036EA0000002410 +B0926244550225N00642025EA0000002412 +B0926264550217N00642013EA0000002414 +B0926294550209N00642001EA0000002416 +B0926314550203N00641990EA0000002419 +B0926334550195N00641982EA0000002422 +B0926354550186N00641973EA0000002422 +B0926374550179N00641963EA0000002421 +B0926394550177N00641953EA0000002420 +B0926414550180N00641944EA0000002418 +B0926434550189N00641945EA0000002416 +B0926454550196N00641957EA0000002415 +B0926474550197N00641975EA0000002414 +B0926494550191N00641992EA0000002414 +B0926514550179N00642006EA0000002413 +B0926534550166N00642007EA0000002412 +B0926554550157N00641997EA0000002410 +B0926574550149N00641986EA0000002410 +B0926594550141N00641974EA0000002410 +B0927014550135N00641961EA0000002410 +B0927034550127N00641948EA0000002411 +B0927054550120N00641935EA0000002412 +B0927074550114N00641921EA0000002414 +B0927094550110N00641907EA0000002415 +B0927114550106N00641893EA0000002417 +B0927134550103N00641880EA0000002419 +B0927154550099N00641865EA0000002422 +B0927174550099N00641850EA0000002425 +B0927194550097N00641834EA0000002429 +B0927214550096N00641818EA0000002433 +B0927234550096N00641804EA0000002439 +B0927254550097N00641794EA0000002446 +B0927274550102N00641787EA0000002452 +B0927294550110N00641797EA0000002458 +B0927314550114N00641814EA0000002464 +B0927334550108N00641827EA0000002472 +B0927354550096N00641829EA0000002479 +B0927374550083N00641821EA0000002485 +B0927394550075N00641807EA0000002492 +B0927414550070N00641793EA0000002501 +B0927434550066N00641774EA0000002511 +B0927454550068N00641762EA0000002517 +B0927474550073N00641758EA0000002522 +B0927494550079N00641764EA0000002527 +B0927514550082N00641777EA0000002531 +B0927534550077N00641792EA0000002535 +B0927554550064N00641801EA0000002539 +B0927574550054N00641799EA0000002546 +B0928004550043N00641797EA0000002551 +B0928024550031N00641792EA0000002555 +B0928044550023N00641777EA0000002558 +B0928064550022N00641757EA0000002561 +B0928084550029N00641744EA0000002564 +B0928104550038N00641746EA0000002569 +B0928124550041N00641759EA0000002574 +B0928144550037N00641772EA0000002579 +B0928164550027N00641784EA0000002584 +B0928184550014N00641788EA0000002589 +B0928204550002N00641781EA0000002593 +B0928224549993N00641767EA0000002597 +B0928244549990N00641748EA0000002601 +B0928264549994N00641733EA0000002606 +B0928284550002N00641727EA0000002610 +B0928304550009N00641732EA0000002613 +B0928324550012N00641747EA0000002617 +B0928344550006N00641760EA0000002621 +B0928364549995N00641768EA0000002627 +B0928384549983N00641769EA0000002631 +B0928404549971N00641763EA0000002634 +B0928424549961N00641753EA0000002637 +B0928444549955N00641735EA0000002640 +B0928464549955N00641718EA0000002643 +B0928484549959N00641708EA0000002647 +B0928504549965N00641704EA0000002650 +B0928524549972N00641706EA0000002653 +B0928544549975N00641717EA0000002655 +B0928564549971N00641731EA0000002657 +B0928584549960N00641738EA0000002659 +B0929004549947N00641738EA0000002662 +B0929024549934N00641735EA0000002664 +B0929044549922N00641731EA0000002666 +B0929064549908N00641727EA0000002668 +B0929084549895N00641724EA0000002671 +B0929104549883N00641719EA0000002673 +B0929124549872N00641716EA0000002676 +B0929144549860N00641714EA0000002677 +B0929164549848N00641712EA0000002676 +B0929184549831N00641707EA0000002675 +B0929204549819N00641702EA0000002674 +B0929224549805N00641696EA0000002673 +B0929244549793N00641691EA0000002672 +B0929264549780N00641687EA0000002671 +B0929284549767N00641684EA0000002669 +B0929304549753N00641681EA0000002666 +B0929324549740N00641674EA0000002663 +B0929344549728N00641666EA0000002661 +B0929374549716N00641662EA0000002660 +B0929394549702N00641658EA0000002657 +B0929414549687N00641652EA0000002654 +B0929434549674N00641647EA0000002652 +B0929454549661N00641644EA0000002650 +B0929474549648N00641639EA0000002647 +B0929494549636N00641635EA0000002645 +B0929514549623N00641631EA0000002641 +B0929534549610N00641628EA0000002639 +B0929554549598N00641624EA0000002637 +B0929574549587N00641618EA0000002635 +B0929594549576N00641614EA0000002633 +B0930014549564N00641610EA0000002632 +B0930034549551N00641604EA0000002632 +B0930054549540N00641600EA0000002633 +B0930074549528N00641596EA0000002632 +B0930094549514N00641588EA0000002630 +B0930114549500N00641579EA0000002631 +B0930134549486N00641573EA0000002630 +B0930154549471N00641565EA0000002628 +B0930174549454N00641556EA0000002627 +B0930194549438N00641547EA0000002628 +B0930214549422N00641537EA0000002629 +B0930234549407N00641525EA0000002630 +B0930254549394N00641513EA0000002633 +B0930274549385N00641505EA0000002638 +B0930294549376N00641498EA0000002642 +B0930314549365N00641493EA0000002646 +B0930334549353N00641486EA0000002651 +B0930354549342N00641477EA0000002656 +B0930374549330N00641467EA0000002659 +B0930394549319N00641458EA0000002662 +B0930414549307N00641448EA0000002664 +B0930434549295N00641435EA0000002667 +B0930454549283N00641424EA0000002671 +B0930474549271N00641415EA0000002676 +B0930494549258N00641407EA0000002680 +B0930514549244N00641400EA0000002683 +B0930534549231N00641387EA0000002685 +B0930554549221N00641375EA0000002687 +B0930574549210N00641365EA0000002687 +B0930594549192N00641345EA0000002690 +B0931014549180N00641335EA0000002693 +B0931034549170N00641327EA0000002697 +B0931054549159N00641319EA0000002699 +B0931074549149N00641311EA0000002700 +B0931094549137N00641301EA0000002700 +B0931114549125N00641290EA0000002697 +B0931134549113N00641275EA0000002697 +B0931154549104N00641261EA0000002697 +B0931184549094N00641249EA0000002696 +B0931204549083N00641238EA0000002696 +B0931224549074N00641227EA0000002697 +B0931244549066N00641218EA0000002700 +B0931264549056N00641208EA0000002701 +B0931284549046N00641196EA0000002705 +B0931304549037N00641183EA0000002710 +B0931324549030N00641171EA0000002716 +B0931344549019N00641163EA0000002720 +B0931364549007N00641159EA0000002725 +B0931384548996N00641156EA0000002728 +B0931404548984N00641151EA0000002731 +B0931424548972N00641141EA0000002733 +B0931444548961N00641131EA0000002734 +B0931464548949N00641122EA0000002734 +B0931484548936N00641112EA0000002734 +B0931504548925N00641102EA0000002735 +B0931524548913N00641093EA0000002735 +B0931544548900N00641082EA0000002734 +B0931564548886N00641069EA0000002735 +B0931584548872N00641056EA0000002737 +B0932004548862N00641047EA0000002741 +B0932024548853N00641042EA0000002742 +B0932044548843N00641035EA0000002742 +B0932064548828N00641021EA0000002743 +B0932084548816N00641008EA0000002745 +B0932104548809N00641003EA0000002749 +B0932124548800N00640997EA0000002751 +B0932144548786N00640988EA0000002754 +B0932164548775N00640977EA0000002759 +B0932184548766N00640967EA0000002761 +B0932204548755N00640958EA0000002762 +B0932224548744N00640947EA0000002764 +B0932244548735N00640936EA0000002765 +B0932264548725N00640925EA0000002764 +B0932284548712N00640912EA0000002762 +B0932304548700N00640896EA0000002763 +B0932324548690N00640883EA0000002763 +B0932344548680N00640870EA0000002762 +B0932364548665N00640848EA0000002761 +B0932384548655N00640833EA0000002760 +B0932404548646N00640820EA0000002760 +B0932424548637N00640807EA0000002758 +B0932444548629N00640793EA0000002756 +B0932464548620N00640778EA0000002753 +B0932484548610N00640764EA0000002751 +B0932504548601N00640749EA0000002748 +B0932524548592N00640733EA0000002746 +B0932544548584N00640719EA0000002745 +B0932574548575N00640707EA0000002743 +B0932594548565N00640692EA0000002742 +B0933014548556N00640676EA0000002741 +B0933034548547N00640661EA0000002740 +B0933054548536N00640647EA0000002738 +B0933074548525N00640631EA0000002737 +B0933094548514N00640617EA0000002738 +B0933114548503N00640605EA0000002740 +B0933134548493N00640592EA0000002741 +B0933154548482N00640579EA0000002740 +B0933174548471N00640564EA0000002740 +B0933194548462N00640549EA0000002740 +B0933214548454N00640534EA0000002738 +B0933234548445N00640518EA0000002737 +B0933254548437N00640501EA0000002736 +B0933274548428N00640487EA0000002735 +B0933294548418N00640473EA0000002733 +B0933314548409N00640458EA0000002733 +B0933334548402N00640447EA0000002734 +B0933354548394N00640438EA0000002732 +B0933374548385N00640426EA0000002729 +B0933394548376N00640410EA0000002728 +B0933414548367N00640398EA0000002727 +B0933434548359N00640386EA0000002726 +B0933454548351N00640373EA0000002725 +B0933474548344N00640361EA0000002723 +B0933494548335N00640348EA0000002722 +B0933514548326N00640335EA0000002722 +B0933534548317N00640324EA0000002724 +B0933554548311N00640318EA0000002727 +B0933574548302N00640314EA0000002730 +B0933594548293N00640307EA0000002734 +B0934014548285N00640301EA0000002738 +B0934034548277N00640295EA0000002740 +B0934054548269N00640289EA0000002742 +B0934074548260N00640283EA0000002745 +B0934094548252N00640279EA0000002747 +B0934114548243N00640274EA0000002747 +B0934134548235N00640267EA0000002748 +B0934154548226N00640260EA0000002749 +B0934174548213N00640248EA0000002751 +B0934194548203N00640242EA0000002754 +B0934214548196N00640240EA0000002756 +B0934234548188N00640237EA0000002757 +B0934254548179N00640233EA0000002757 +B0934274548168N00640227EA0000002753 +B0934294548158N00640218EA0000002750 +B0934314548150N00640205EA0000002745 +B0934334548140N00640191EA0000002740 +B0934354548130N00640174EA0000002733 +B0934384548119N00640154EA0000002728 +B0934404548111N00640136EA0000002724 +B0934424548103N00640124EA0000002721 +B0934444548094N00640114EA0000002715 +B0934464548083N00640101EA0000002711 +B0934484548074N00640087EA0000002709 +B0934504548067N00640072EA0000002705 +B0934524548059N00640055EA0000002701 +B0934544548051N00640036EA0000002699 +B0934564548044N00640022EA0000002698 +B0934584548034N00640011EA0000002694 +B0935004548023N00639998EA0000002690 +B0935024548017N00639989EA0000002685 +B0935044547999N00639962EA0000002683 +B0935064547995N00639954EA0000002684 +B0935084547984N00639943EA0000002682 +B0935104547974N00639932EA0000002680 +B0935124547966N00639919EA0000002681 +B0935144547960N00639905EA0000002682 +B0935164547956N00639890EA0000002681 +B0935184547953N00639870EA0000002679 +B0935204547948N00639848EA0000002677 +B0935224547945N00639827EA0000002677 +B0935244547942N00639808EA0000002676 +B0935264547939N00639787EA0000002672 +B0935284547936N00639765EA0000002669 +B0935304547934N00639743EA0000002667 +B0935324547933N00639723EA0000002664 +B0935344547932N00639701EA0000002660 +B0935364547933N00639678EA0000002656 +B0935384547933N00639656EA0000002654 +B0935404547934N00639635EA0000002650 +B0935424547935N00639613EA0000002647 +B0935444547937N00639590EA0000002645 +B0935464547936N00639570EA0000002643 +B0935484547936N00639551EA0000002642 +B0935504547936N00639533EA0000002641 +B0935524547932N00639519EA0000002640 +B0935544547926N00639502EA0000002639 +B0935564547923N00639483EA0000002637 +B0935584547916N00639449EA0000002633 +B0936004547914N00639424EA0000002633 +B0936024547913N00639398EA0000002634 +B0936044547912N00639377EA0000002638 +B0936064547908N00639365EA0000002643 +B0936084547899N00639352EA0000002646 +B0936104547891N00639333EA0000002649 +B0936124547883N00639314EA0000002651 +B0936144547873N00639295EA0000002651 +B0936164547864N00639275EA0000002652 +B0936194547856N00639253EA0000002652 +B0936214547849N00639232EA0000002652 +B0936234547842N00639211EA0000002652 +B0936254547837N00639188EA0000002650 +B0936274547832N00639165EA0000002650 +B0936294547827N00639143EA0000002650 +B0936314547822N00639121EA0000002648 +B0936334547818N00639097EA0000002646 +B0936354547816N00639073EA0000002645 +B0936374547816N00639051EA0000002645 +B0936394547816N00639041EA0000002642 +B0936414547814N00639010EA0000002639 +B0936434547814N00638988EA0000002636 +B0936454547811N00638971EA0000002635 +B0936474547805N00638960EA0000002633 +B0936494547801N00638944EA0000002628 +B0936514547799N00638921EA0000002622 +B0936534547798N00638896EA0000002618 +B0936554547796N00638876EA0000002615 +B0936574547793N00638857EA0000002611 +B0936594547790N00638839EA0000002609 +B0937014547789N00638822EA0000002605 +B0937034547788N00638803EA0000002600 +B0937054547789N00638781EA0000002597 +B0937074547793N00638763EA0000002595 +B0937094547795N00638748EA0000002590 +B0937114547797N00638731EA0000002585 +B0937134547801N00638711EA0000002580 +B0937154547804N00638691EA0000002577 +B0937174547805N00638672EA0000002574 +B0937194547805N00638654EA0000002570 +B0937214547806N00638636EA0000002568 +B0937234547806N00638618EA0000002567 +B0937254547804N00638602EA0000002566 +B0937274547801N00638584EA0000002563 +B0937294547799N00638564EA0000002562 +B0937314547798N00638543EA0000002560 +B0937334547796N00638524EA0000002558 +B0937354547794N00638506EA0000002556 +B0937374547794N00638488EA0000002555 +B0937394547791N00638462EA0000002555 +B0937414547791N00638449EA0000002556 +B0937434547790N00638432EA0000002556 +B0937454547789N00638412EA0000002558 +B0937474547792N00638394EA0000002561 +B0937494547793N00638378EA0000002563 +B0937514547791N00638360EA0000002563 +B0937534547790N00638341EA0000002565 +B0937554547790N00638323EA0000002567 +B0937584547789N00638306EA0000002568 +B0938004547789N00638287EA0000002568 +B0938024547788N00638266EA0000002569 +B0938044547785N00638250EA0000002572 +B0938064547781N00638235EA0000002573 +B0938084547776N00638220EA0000002575 +B0938104547771N00638205EA0000002578 +B0938124547766N00638190EA0000002579 +B0938144547761N00638174EA0000002579 +B0938164547757N00638166EA0000002580 +B0938184547748N00638141EA0000002581 +B0938204547745N00638126EA0000002582 +B0938224547741N00638110EA0000002581 +B0938244547734N00638095EA0000002580 +B0938264547729N00638080EA0000002578 +B0938284547724N00638065EA0000002576 +B0938304547720N00638048EA0000002573 +B0938324547717N00638031EA0000002572 +B0938344547712N00638014EA0000002572 +B0938364547708N00637997EA0000002574 +B0938384547703N00637981EA0000002576 +B0938404547697N00637965EA0000002577 +B0938424547689N00637950EA0000002578 +B0938444547682N00637937EA0000002578 +B0938464547675N00637923EA0000002576 +B0938484547667N00637904EA0000002574 +B0938504547660N00637884EA0000002574 +B0938524547655N00637864EA0000002576 +B0938544547650N00637846EA0000002577 +B0938564547645N00637828EA0000002578 +B0938584547639N00637810EA0000002577 +B0939004547632N00637790EA0000002577 +B0939024547626N00637777EA0000002580 +B0939044547623N00637772EA0000002583 +B0939064547619N00637764EA0000002584 +B0939084547614N00637750EA0000002587 +B0939104547610N00637738EA0000002592 +B0939124547608N00637730EA0000002598 +B0939144547607N00637720EA0000002603 +B0939164547607N00637706EA0000002607 +B0939184547605N00637692EA0000002611 +B0939204547602N00637671EA0000002616 +B0939224547599N00637657EA0000002618 +B0939244547596N00637641EA0000002619 +B0939264547593N00637625EA0000002618 +B0939284547590N00637608EA0000002616 +B0939304547586N00637591EA0000002613 +B0939324547582N00637572EA0000002611 +B0939344547580N00637554EA0000002609 +B0939364547576N00637540EA0000002607 +B0939394547570N00637526EA0000002603 +B0939414547564N00637509EA0000002599 +B0939434547561N00637491EA0000002598 +B0939454547556N00637476EA0000002596 +B0939474547550N00637461EA0000002592 +B0939494547544N00637445EA0000002588 +B0939514547539N00637428EA0000002584 +B0939534547534N00637412EA0000002582 +B0939554547528N00637396EA0000002578 +B0939574547523N00637381EA0000002573 +B0939594547519N00637362EA0000002568 +B0940014547516N00637343EA0000002565 +B0940034547512N00637327EA0000002562 +B0940054547508N00637310EA0000002558 +B0940074547505N00637294EA0000002555 +B0940094547502N00637281EA0000002552 +B0940114547496N00637266EA0000002547 +B0940134547491N00637250EA0000002545 +B0940154547484N00637234EA0000002542 +B0940174547475N00637219EA0000002539 +B0940194547467N00637203EA0000002537 +B0940214547460N00637188EA0000002536 +B0940234547454N00637174EA0000002533 +B0940254547445N00637160EA0000002529 +B0940274547436N00637145EA0000002526 +B0940294547426N00637131EA0000002525 +B0940314547417N00637118EA0000002522 +B0940334547407N00637104EA0000002518 +B0940354547397N00637088EA0000002516 +B0940374547386N00637074EA0000002514 +B0940394547377N00637061EA0000002512 +B0940414547369N00637047EA0000002509 +B0940434547359N00637034EA0000002504 +B0940454547348N00637022EA0000002500 +B0940474547337N00637011EA0000002495 +B0940494547326N00637000EA0000002491 +B0940514547314N00636990EA0000002488 +B0940534547304N00636980EA0000002486 +B0940554547294N00636971EA0000002485 +B0940574547283N00636962EA0000002485 +B0940594547275N00636953EA0000002487 +B0941014547260N00636941EA0000002486 +B0941034547250N00636932EA0000002486 +B0941054547242N00636923EA0000002485 +B0941074547235N00636913EA0000002483 +B0941094547225N00636900EA0000002482 +B0941114547215N00636889EA0000002483 +B0941134547206N00636879EA0000002482 +B0941154547197N00636868EA0000002483 +B0941174547186N00636859EA0000002485 +B0941204547178N00636849EA0000002485 +B0941224547170N00636836EA0000002486 +B0941244547162N00636824EA0000002488 +B0941264547155N00636812EA0000002489 +B0941284547147N00636799EA0000002490 +B0941304547140N00636785EA0000002490 +B0941324547133N00636770EA0000002491 +B0941344547126N00636755EA0000002491 +B0941364547117N00636743EA0000002491 +B0941384547107N00636731EA0000002491 +B0941404547099N00636719EA0000002489 +B0941424547090N00636707EA0000002486 +B0941444547080N00636692EA0000002482 +B0941464547070N00636673EA0000002479 +B0941484547062N00636657EA0000002477 +B0941504547058N00636649EA0000002473 +B0941524547045N00636623EA0000002467 +B0941544547036N00636605EA0000002464 +B0941564547026N00636590EA0000002460 +B0941584547016N00636574EA0000002456 +B0942004547008N00636555EA0000002452 +B0942024547000N00636536EA0000002450 +B0942044546992N00636518EA0000002446 +B0942064546985N00636499EA0000002442 +B0942084546977N00636479EA0000002439 +B0942104546968N00636461EA0000002437 +B0942124546959N00636444EA0000002436 +B0942144546949N00636427EA0000002434 +B0942164546939N00636410EA0000002433 +B0942184546928N00636393EA0000002433 +B0942204546918N00636377EA0000002433 +B0942224546907N00636361EA0000002432 +B0942244546897N00636346EA0000002433 +B0942264546887N00636333EA0000002436 +B0942284546879N00636321EA0000002440 +B0942304546873N00636311EA0000002446 +B0942324546865N00636305EA0000002450 +B0942344546858N00636295EA0000002455 +B0942364546853N00636281EA0000002461 +B0942384546846N00636271EA0000002469 +B0942404546838N00636264EA0000002475 +B0942424546826N00636252EA0000002483 +B0942444546816N00636242EA0000002487 +B0942464546808N00636232EA0000002490 +B0942484546799N00636219EA0000002492 +B0942504546791N00636203EA0000002496 +B0942524546784N00636188EA0000002501 +B0942544546778N00636176EA0000002507 +B0942564546772N00636164EA0000002510 +B0942584546766N00636150EA0000002513 +B0943014546759N00636136EA0000002517 +B0943034546751N00636125EA0000002519 +B0943054546743N00636111EA0000002520 +B0943074546734N00636096EA0000002523 +B0943094546726N00636088EA0000002526 +B0943114546719N00636083EA0000002528 +B0943134546713N00636075EA0000002527 +B0943154546704N00636062EA0000002526 +B0943174546696N00636049EA0000002526 +B0943194546689N00636037EA0000002525 +B0943214546683N00636024EA0000002523 +B0943234546676N00636009EA0000002520 +B0943254546668N00635993EA0000002517 +B0943274546660N00635978EA0000002515 +B0943294546654N00635965EA0000002513 +B0943314546648N00635950EA0000002509 +B0943334546642N00635935EA0000002507 +B0943354546636N00635921EA0000002506 +B0943374546631N00635906EA0000002502 +B0943394546624N00635889EA0000002497 +B0943414546618N00635873EA0000002495 +B0943434546615N00635860EA0000002494 +B0943454546610N00635848EA0000002492 +B0943474546605N00635834EA0000002490 +B0943494546599N00635820EA0000002490 +B0943514546594N00635808EA0000002487 +B0943534546587N00635792EA0000002484 +B0943554546578N00635774EA0000002483 +B0943574546570N00635757EA0000002483 +B0943594546564N00635738EA0000002482 +B0944014546556N00635718EA0000002483 +B0944034546548N00635700EA0000002485 +B0944054546542N00635687EA0000002490 +B0944074546536N00635678EA0000002494 +B0944094546530N00635667EA0000002496 +B0944114546523N00635654EA0000002498 +B0944134546517N00635641EA0000002500 +B0944154546511N00635629EA0000002502 +B0944174546503N00635615EA0000002503 +B0944194546498N00635599EA0000002506 +B0944214546492N00635588EA0000002509 +B0944234546483N00635569EA0000002509 +B0944254546477N00635554EA0000002510 +B0944274546470N00635541EA0000002510 +B0944294546464N00635527EA0000002509 +B0944314546459N00635509EA0000002508 +B0944334546453N00635491EA0000002508 +B0944354546448N00635472EA0000002509 +B0944374546444N00635455EA0000002511 +B0944404546440N00635441EA0000002511 +B0944424546435N00635427EA0000002510 +B0944444546430N00635411EA0000002508 +B0944464546422N00635392EA0000002506 +B0944484546413N00635373EA0000002507 +B0944504546406N00635357EA0000002505 +B0944524546398N00635339EA0000002503 +B0944544546391N00635320EA0000002500 +B0944564546384N00635303EA0000002499 +B0944584546378N00635287EA0000002496 +B0945004546371N00635269EA0000002492 +B0945024546363N00635251EA0000002490 +B0945044546354N00635235EA0000002490 +B0945064546347N00635222EA0000002491 +B0945084546340N00635208EA0000002491 +B0945104546332N00635192EA0000002493 +B0945124546324N00635177EA0000002495 +B0945144546317N00635164EA0000002496 +B0945164546309N00635149EA0000002495 +B0945184546301N00635134EA0000002495 +B0945204546294N00635121EA0000002494 +B0945224546287N00635108EA0000002493 +B0945244546282N00635094EA0000002490 +B0945264546275N00635080EA0000002488 +B0945284546268N00635065EA0000002485 +B0945304546259N00635048EA0000002482 +B0945324546251N00635031EA0000002480 +B0945344546244N00635015EA0000002478 +B0945364546236N00634999EA0000002475 +B0945384546227N00634982EA0000002472 +B0945404546219N00634965EA0000002468 +B0945424546210N00634949EA0000002464 +B0945444546200N00634933EA0000002461 +B0945464546191N00634917EA0000002459 +B0945484546182N00634903EA0000002456 +B0945504546173N00634888EA0000002453 +B0945524546165N00634872EA0000002450 +B0945544546156N00634856EA0000002447 +B0945564546148N00634839EA0000002445 +B0945584546141N00634823EA0000002442 +B0946004546129N00634799EA0000002439 +B0946024546121N00634783EA0000002437 +B0946044546112N00634768EA0000002434 +B0946064546103N00634754EA0000002433 +B0946084546093N00634739EA0000002431 +B0946104546083N00634726EA0000002430 +B0946124546073N00634713EA0000002428 +B0946144546064N00634701EA0000002428 +B0946164546055N00634690EA0000002426 +B0946194546045N00634678EA0000002423 +B0946214546034N00634662EA0000002421 +B0946234546025N00634647EA0000002421 +B0946254546015N00634633EA0000002419 +B0946274546005N00634617EA0000002418 +B0946294545995N00634601EA0000002418 +B0946314545985N00634585EA0000002420 +B0946334545976N00634572EA0000002424 +B0946354545969N00634561EA0000002432 +B0946374545963N00634551EA0000002438 +B0946394545957N00634538EA0000002445 +B0946414545955N00634521EA0000002450 +B0946434545960N00634505EA0000002456 +B0946454545970N00634499EA0000002461 +B0946474545980N00634510EA0000002466 +B0946494545983N00634525EA0000002471 +B0946514545974N00634533EA0000002477 +B0946534545961N00634523EA0000002485 +B0946554545954N00634510EA0000002492 +B0946574545949N00634496EA0000002498 +B0946594545946N00634480EA0000002503 +B0947014545941N00634464EA0000002508 +B0947034545937N00634451EA0000002515 +B0947054545933N00634440EA0000002519 +B0947074545927N00634428EA0000002522 +B0947094545920N00634415EA0000002523 +B0947114545914N00634403EA0000002523 +B0947134545909N00634391EA0000002523 +B0947154545903N00634375EA0000002520 +B0947174545897N00634357EA0000002514 +B0947194545889N00634338EA0000002506 +B0947214545882N00634316EA0000002501 +B0947234545874N00634296EA0000002498 +B0947254545867N00634276EA0000002495 +B0947274545860N00634256EA0000002491 +B0947294545853N00634237EA0000002489 +B0947314545845N00634219EA0000002487 +B0947334545840N00634200EA0000002484 +B0947354545835N00634180EA0000002482 +B0947374545830N00634161EA0000002480 +B0947394545825N00634142EA0000002479 +B0947414545818N00634112EA0000002477 +B0947434545812N00634089EA0000002478 +B0947454545808N00634078EA0000002482 +B0947474545804N00634073EA0000002489 +B0947494545797N00634065EA0000002496 +B0947514545790N00634052EA0000002503 +B0947534545787N00634042EA0000002511 +B0947554545784N00634033EA0000002517 +B0947574545778N00634022EA0000002522 +B0948004545769N00634013EA0000002530 +B0948024545764N00634008EA0000002538 +B0948044545759N00634000EA0000002543 +B0948064545753N00633988EA0000002549 +B0948084545748N00633975EA0000002557 +B0948104545746N00633962EA0000002562 +B0948124545744N00633949EA0000002566 +B0948144545741N00633936EA0000002568 +B0948164545738N00633923EA0000002568 +B0948184545736N00633909EA0000002567 +B0948204545734N00633894EA0000002563 +B0948224545731N00633877EA0000002560 +B0948244545728N00633859EA0000002557 +B0948264545725N00633840EA0000002552 +B0948284545721N00633819EA0000002550 +B0948304545719N00633809EA0000002548 +B0948324545714N00633782EA0000002545 +B0948344545711N00633762EA0000002543 +B0948364545708N00633742EA0000002542 +B0948384545706N00633722EA0000002540 +B0948404545703N00633701EA0000002538 +B0948424545700N00633679EA0000002537 +B0948444545697N00633658EA0000002537 +B0948464545695N00633636EA0000002535 +B0948484545692N00633614EA0000002533 +B0948504545688N00633592EA0000002532 +B0948524545682N00633570EA0000002532 +B0948544545677N00633552EA0000002533 +B0948564545671N00633544EA0000002538 +B0948584545664N00633535EA0000002539 +B0949004545655N00633523EA0000002541 +B0949024545648N00633509EA0000002545 +B0949044545641N00633498EA0000002550 +B0949064545634N00633489EA0000002554 +B0949084545626N00633482EA0000002558 +B0949104545620N00633476EA0000002561 +B0949124545613N00633470EA0000002562 +B0949144545604N00633461EA0000002561 +B0949164545596N00633448EA0000002560 +B0949184545589N00633437EA0000002562 +B0949204545582N00633429EA0000002562 +B0949224545571N00633413EA0000002559 +B0949244545562N00633399EA0000002558 +B0949264545554N00633383EA0000002556 +B0949284545549N00633363EA0000002555 +B0949304545546N00633344EA0000002556 +B0949324545543N00633323EA0000002559 +B0949344545542N00633305EA0000002564 +B0949364545538N00633295EA0000002570 +B0949384545530N00633283EA0000002574 +B0949414545522N00633268EA0000002579 +B0949434545515N00633254EA0000002585 +B0949454545509N00633242EA0000002590 +B0949474545501N00633230EA0000002593 +B0949494545493N00633217EA0000002596 +B0949514545485N00633200EA0000002596 +B0949534545479N00633184EA0000002598 +B0949554545472N00633170EA0000002598 +B0949574545464N00633157EA0000002597 +B0949594545456N00633142EA0000002595 +B0950014545447N00633125EA0000002594 +B0950034545440N00633110EA0000002594 +B0950054545433N00633095EA0000002591 +B0950074545429N00633088EA0000002587 +B0950094545416N00633063EA0000002583 +B0950114545413N00633054EA0000002580 +B0950134545403N00633029EA0000002576 +B0950154545397N00633011EA0000002571 +B0950174545390N00632993EA0000002567 +B0950194545384N00632974EA0000002564 +B0950214545380N00632956EA0000002563 +B0950234545376N00632941EA0000002561 +B0950254545371N00632925EA0000002558 +B0950274545366N00632906EA0000002556 +B0950294545362N00632890EA0000002553 +B0950314545359N00632873EA0000002549 +B0950334545355N00632854EA0000002544 +B0950354545351N00632835EA0000002541 +B0950374545347N00632818EA0000002536 +B0950394545342N00632801EA0000002531 +B0950414545337N00632783EA0000002525 +B0950434545330N00632766EA0000002520 +B0950454545324N00632749EA0000002515 +B0950474545319N00632731EA0000002511 +B0950494545314N00632714EA0000002507 +B0950514545309N00632696EA0000002501 +B0950534545304N00632677EA0000002497 +B0950554545299N00632660EA0000002493 +B0950574545294N00632643EA0000002488 +B0950594545290N00632625EA0000002484 +B0951014545285N00632608EA0000002481 +B0951034545278N00632583EA0000002474 +B0951054545272N00632566EA0000002469 +B0951074545267N00632547EA0000002465 +B0951094545263N00632529EA0000002461 +B0951114545259N00632511EA0000002457 +B0951134545255N00632493EA0000002453 +B0951154545250N00632475EA0000002449 +B0951174545245N00632457EA0000002445 +B0951194545239N00632440EA0000002442 +B0951224545233N00632424EA0000002439 +B0951244545228N00632406EA0000002435 +B0951264545222N00632384EA0000002429 +B0951284545217N00632362EA0000002425 +B0951304545212N00632341EA0000002422 +B0951324545207N00632323EA0000002416 +B0951344545201N00632302EA0000002411 +B0951364545195N00632281EA0000002407 +B0951384545191N00632262EA0000002405 +B0951404545188N00632250EA0000002405 +B0951424545186N00632237EA0000002402 +B0951444545184N00632230EA0000002401 +B0951464545178N00632208EA0000002402 +B0951484545173N00632195EA0000002400 +B0951504545167N00632179EA0000002397 +B0951524545167N00632179EA0000002396 +B0951544545156N00632149EA0000002394 +B0951564545151N00632133EA0000002391 +B0951584545145N00632117EA0000002390 +B0952004545140N00632102EA0000002390 +B0952024545137N00632086EA0000002389 +B0952044545133N00632070EA0000002387 +B0952064545126N00632054EA0000002387 +B0952084545120N00632038EA0000002387 +B0952104545115N00632021EA0000002387 +B0952124545112N00632003EA0000002388 +B0952144545107N00631985EA0000002389 +B0952164545102N00631969EA0000002389 +B0952184545099N00631951EA0000002390 +B0952204545095N00631935EA0000002393 +B0952224545088N00631921EA0000002396 +B0952244545081N00631910EA0000002397 +B0952264545073N00631897EA0000002398 +B0952284545066N00631882EA0000002401 +B0952304545060N00631868EA0000002403 +B0952324545054N00631855EA0000002404 +B0952344545047N00631839EA0000002405 +B0952364545039N00631823EA0000002408 +B0952384545030N00631807EA0000002410 +B0952404545022N00631789EA0000002412 +B0952424545015N00631769EA0000002415 +B0952444545007N00631740EA0000002420 +B0952464545000N00631723EA0000002422 +B0952484544993N00631704EA0000002425 +B0952504544988N00631684EA0000002428 +B0952524544985N00631665EA0000002432 +B0952544544980N00631645EA0000002435 +B0952564544975N00631626EA0000002440 +B0952584544972N00631609EA0000002447 +B0953014544969N00631594EA0000002452 +B0953034544965N00631578EA0000002457 +B0953054544962N00631561EA0000002464 +B0953074544961N00631548EA0000002470 +B0953094544958N00631538EA0000002475 +B0953114544953N00631530EA0000002478 +B0953134544946N00631524EA0000002480 +B0953154544939N00631518EA0000002481 +B0953174544933N00631510EA0000002483 +B0953194544927N00631503EA0000002485 +B0953214544924N00631500EA0000002486 +B0953234544916N00631486EA0000002486 +B0953254544912N00631475EA0000002486 +B0953274544908N00631464EA0000002485 +B0953294544904N00631451EA0000002483 +B0953314544899N00631438EA0000002480 +B0953334544896N00631421EA0000002478 +B0953354544894N00631405EA0000002478 +B0953374544890N00631392EA0000002476 +B0953394544886N00631376EA0000002474 +B0953414544882N00631360EA0000002472 +B0953434544878N00631345EA0000002470 +B0953454544876N00631332EA0000002468 +B0953474544872N00631317EA0000002463 +B0953494544868N00631302EA0000002460 +B0953514544864N00631287EA0000002456 +B0953534544860N00631271EA0000002452 +B0953554544856N00631255EA0000002448 +B0953574544853N00631240EA0000002443 +B0953594544850N00631225EA0000002439 +B0954014544847N00631210EA0000002435 +B0954034544845N00631196EA0000002432 +B0954054544842N00631181EA0000002430 +B0954074544841N00631166EA0000002429 +B0954094544840N00631151EA0000002426 +B0954114544838N00631134EA0000002424 +B0954134544837N00631117EA0000002423 +B0954154544837N00631102EA0000002425 +B0954174544835N00631088EA0000002425 +B0954194544834N00631073EA0000002424 +B0954214544834N00631058EA0000002423 +B0954234544834N00631038EA0000002418 +B0954254544833N00631022EA0000002414 +B0954274544832N00631006EA0000002413 +B0954294544832N00630992EA0000002412 +B0954314544831N00630980EA0000002413 +B0954334544830N00630968EA0000002414 +B0954354544828N00630956EA0000002416 +B0954374544825N00630943EA0000002417 +B0954394544822N00630929EA0000002418 +B0954424544819N00630914EA0000002419 +B0954444544818N00630898EA0000002419 +B0954464544818N00630884EA0000002419 +B0954484544817N00630870EA0000002417 +B0954504544815N00630854EA0000002413 +B0954524544812N00630837EA0000002409 +B0954544544809N00630819EA0000002406 +B0954564544807N00630803EA0000002402 +B0954584544806N00630795EA0000002398 +B0955004544803N00630768EA0000002395 +B0955024544801N00630751EA0000002392 +B0955044544800N00630737EA0000002388 +B0955064544798N00630719EA0000002383 +B0955084544798N00630699EA0000002380 +B0955104544797N00630681EA0000002380 +B0955124544796N00630666EA0000002382 +B0955144544794N00630644EA0000002385 +B0955174544791N00630630EA0000002388 +B0955194544789N00630616EA0000002391 +B0955214544787N00630604EA0000002393 +B0955234544784N00630593EA0000002393 +B0955254544781N00630579EA0000002392 +B0955274544777N00630563EA0000002388 +B0955294544772N00630548EA0000002385 +B0955314544771N00630540EA0000002382 +B0955334544772N00630516EA0000002378 +B0955354544772N00630498EA0000002375 +B0955374544772N00630481EA0000002371 +B0955394544773N00630462EA0000002367 +B0955414544772N00630443EA0000002365 +B0955434544771N00630424EA0000002362 +B0955454544771N00630405EA0000002360 +B0955474544772N00630385EA0000002359 +B0955494544773N00630370EA0000002361 +B0955514544774N00630359EA0000002363 +B0955534544774N00630346EA0000002361 +B0955554544776N00630333EA0000002362 +B0955574544781N00630323EA0000002362 +B0955594544789N00630315EA0000002363 +B0956014544795N00630306EA0000002363 +B0956034544802N00630296EA0000002364 +B0956054544808N00630285EA0000002365 +B0956074544815N00630276EA0000002365 +B0956094544825N00630266EA0000002367 +B0956114544835N00630257EA0000002370 +B0956134544844N00630248EA0000002375 +B0956154544850N00630240EA0000002380 +B0956174544858N00630230EA0000002385 +B0956194544872N00630229EA0000002390 +B0956214544884N00630239EA0000002397 +B0956234544891N00630254EA0000002403 +B0956254544889N00630275EA0000002414 +B0956274544879N00630278EA0000002422 +B0956294544872N00630273EA0000002431 +B0956314544870N00630265EA0000002438 +B0956334544870N00630252EA0000002443 +B0956354544876N00630240EA0000002448 +B0956374544887N00630233EA0000002454 +B0956394544898N00630237EA0000002460 +B0956424544908N00630250EA0000002465 +B0956444544910N00630266EA0000002469 +B0956464544904N00630273EA0000002475 +B0956484544897N00630270EA0000002481 +B0956504544892N00630264EA0000002488 +B0956524544889N00630257EA0000002494 +B0956544544884N00630247EA0000002498 +B0956564544884N00630234EA0000002503 +B0956584544892N00630225EA0000002507 +B0957004544905N00630221EA0000002512 +B0957024544916N00630226EA0000002517 +B0957044544922N00630239EA0000002521 +B0957064544919N00630253EA0000002526 +B0957084544913N00630250EA0000002530 +B0957104544908N00630241EA0000002536 +B0957124544907N00630231EA0000002542 +B0957144544910N00630218EA0000002547 +B0957164544919N00630208EA0000002552 +B0957184544930N00630209EA0000002556 +B0957204544937N00630221EA0000002560 +B0957224544939N00630236EA0000002563 +B0957244544935N00630248EA0000002566 +B0957264544927N00630252EA0000002570 +B0957284544921N00630252EA0000002574 +B0957304544915N00630248EA0000002578 +B0957324544911N00630238EA0000002580 +B0957344544911N00630223EA0000002582 +B0957364544917N00630211EA0000002584 +B0957384544929N00630204EA0000002584 +B0957404544941N00630207EA0000002585 +B0957424544949N00630219EA0000002585 +B0957444544949N00630236EA0000002581 +B0957464544944N00630246EA0000002583 +B0957484544934N00630243EA0000002585 +B0957504544927N00630236EA0000002587 +B0957524544919N00630233EA0000002588 +B0957544544911N00630230EA0000002589 +B0957564544903N00630225EA0000002592 +B0957584544896N00630224EA0000002596 +B0958004544882N00630221EA0000002603 +B0958024544873N00630218EA0000002609 +B0958044544865N00630216EA0000002616 +B0958064544858N00630216EA0000002622 +B0958084544849N00630214EA0000002627 +B0958104544840N00630209EA0000002631 +B0958124544833N00630200EA0000002633 +B0958144544826N00630188EA0000002633 +B0958164544818N00630175EA0000002631 +B0958194544813N00630165EA0000002630 +B0958214544809N00630153EA0000002627 +B0958234544804N00630142EA0000002625 +B0958254544799N00630133EA0000002626 +B0958274544794N00630123EA0000002627 +B0958294544789N00630113EA0000002629 +B0958314544784N00630107EA0000002629 +B0958334544779N00630101EA0000002628 +B0958354544774N00630092EA0000002625 +B0958374544768N00630080EA0000002621 +B0958394544762N00630067EA0000002617 +B0958414544756N00630054EA0000002615 +B0958434544751N00630041EA0000002612 +B0958454544748N00630034EA0000002606 +B0958474544742N00630010EA0000002600 +B0958494544742N00630010EA0000002596 +B0958514544734N00629981EA0000002593 +B0958534544730N00629966EA0000002587 +B0958554544724N00629950EA0000002582 +B0958574544718N00629934EA0000002578 +B0958594544713N00629919EA0000002576 +B0959014544707N00629906EA0000002572 +B0959034544702N00629892EA0000002569 +B0959054544697N00629877EA0000002567 +B0959074544691N00629863EA0000002565 +B0959094544686N00629850EA0000002563 +B0959114544680N00629837EA0000002561 +B0959134544673N00629823EA0000002560 +B0959154544667N00629811EA0000002558 +B0959174544660N00629798EA0000002556 +B0959194544653N00629785EA0000002554 +B0959214544645N00629771EA0000002553 +B0959234544639N00629761EA0000002556 +B0959254544633N00629754EA0000002560 +B0959274544626N00629747EA0000002566 +B0959294544619N00629740EA0000002573 +B0959314544613N00629731EA0000002576 +B0959334544607N00629722EA0000002581 +B0959354544604N00629715EA0000002585 +B0959374544601N00629712EA0000002588 +B0959394544596N00629703EA0000002587 +B0959414544593N00629681EA0000002583 +B0959434544591N00629668EA0000002579 +B0959454544588N00629653EA0000002578 +B0959474544584N00629638EA0000002578 +B0959494544583N00629626EA0000002582 +B0959514544584N00629614EA0000002589 +B0959534544583N00629599EA0000002597 +B0959564544582N00629579EA0000002603 +B0959584544583N00629558EA0000002610 +B1000004544582N00629538EA0000002616 +B1000024544580N00629522EA0000002620 +B1000044544578N00629504EA0000002624 +B1000064544575N00629484EA0000002626 +B1000084544568N00629468EA0000002629 +B1000104544562N00629454EA0000002632 +B1000124544556N00629438EA0000002633 +B1000144544553N00629416EA0000002633 +B1000164544549N00629400EA0000002635 +B1000184544546N00629385EA0000002635 +B1000204544542N00629366EA0000002636 +B1000224544539N00629357EA0000002638 +B1000244544539N00629357EA0000002639 +B1000264544524N00629312EA0000002639 +B1000284544519N00629291EA0000002639 +B1000304544516N00629273EA0000002639 +B1000324544513N00629256EA0000002638 +B1000344544511N00629238EA0000002635 +B1000364544507N00629219EA0000002632 +B1000384544503N00629199EA0000002630 +B1000404544500N00629180EA0000002629 +B1000424544496N00629163EA0000002629 +B1000444544493N00629147EA0000002628 +B1000464544490N00629130EA0000002626 +B1000484544486N00629114EA0000002625 +B1000504544482N00629098EA0000002623 +B1000524544478N00629082EA0000002621 +B1000544544474N00629065EA0000002617 +B1000564544470N00629049EA0000002613 +B1000584544464N00629031EA0000002607 +B1001004544456N00629015EA0000002601 +B1001024544447N00628998EA0000002594 +B1001044544440N00628978EA0000002587 +B1001064544434N00628958EA0000002580 +B1001084544430N00628938EA0000002575 +B1001104544429N00628922EA0000002571 +B1001124544426N00628904EA0000002566 +B1001144544419N00628875EA0000002560 +B1001164544415N00628858EA0000002556 +B1001184544413N00628841EA0000002551 +B1001204544409N00628821EA0000002544 +B1001224544403N00628801EA0000002538 +B1001244544398N00628780EA0000002533 +B1001264544393N00628759EA0000002529 +B1001284544390N00628740EA0000002527 +B1001304544387N00628720EA0000002524 +B1001334544385N00628699EA0000002521 +B1001354544381N00628678EA0000002518 +B1001374544377N00628658EA0000002515 +B1001394544372N00628637EA0000002510 +B1001414544369N00628616EA0000002507 +B1001434544366N00628595EA0000002504 +B1001454544363N00628573EA0000002500 +B1001474544361N00628551EA0000002497 +B1001494544359N00628529EA0000002495 +B1001514544356N00628509EA0000002491 +B1001534544355N00628487EA0000002487 +B1001554544354N00628466EA0000002484 +B1001574544352N00628445EA0000002481 +B1001594544351N00628434EA0000002478 +B1002014544347N00628402EA0000002474 +B1002034544344N00628380EA0000002471 +B1002054544340N00628358EA0000002468 +B1002074544336N00628337EA0000002465 +B1002094544331N00628316EA0000002461 +B1002114544327N00628295EA0000002458 +B1002134544322N00628274EA0000002454 +B1002154544318N00628253EA0000002451 +B1002174544314N00628232EA0000002447 +B1002194544310N00628210EA0000002443 +B1002214544306N00628189EA0000002439 +B1002234544302N00628166EA0000002436 +B1002254544299N00628144EA0000002433 +B1002274544296N00628121EA0000002429 +B1002294544293N00628099EA0000002425 +B1002314544290N00628077EA0000002421 +B1002334544286N00628055EA0000002417 +B1002354544284N00628033EA0000002413 +B1002374544280N00628010EA0000002410 +B1002394544277N00627988EA0000002407 +B1002414544275N00627965EA0000002403 +B1002434544273N00627943EA0000002400 +B1002454544271N00627920EA0000002397 +B1002474544269N00627897EA0000002393 +B1002494544266N00627874EA0000002390 +B1002514544264N00627852EA0000002388 +B1002534544261N00627829EA0000002385 +B1002554544256N00627795EA0000002382 +B1002574544253N00627773EA0000002380 +B1002594544250N00627750EA0000002378 +B1003014544247N00627728EA0000002375 +B1003034544244N00627705EA0000002372 +B1003054544242N00627682EA0000002370 +B1003074544240N00627660EA0000002367 +B1003094544236N00627636EA0000002364 +B1003114544234N00627613EA0000002362 +B1003144544232N00627591EA0000002360 +B1003164544230N00627570EA0000002357 +B1003184544229N00627547EA0000002354 +B1003204544228N00627524EA0000002352 +B1003224544226N00627502EA0000002350 +B1003244544224N00627480EA0000002348 +B1003264544223N00627457EA0000002345 +B1003284544221N00627434EA0000002343 +B1003304544218N00627412EA0000002341 +B1003324544216N00627390EA0000002339 +B1003344544213N00627367EA0000002337 +B1003364544211N00627356EA0000002335 +B1003384544206N00627321EA0000002333 +B1003404544204N00627298EA0000002332 +B1003424544200N00627276EA0000002329 +B1003444544197N00627254EA0000002327 +B1003464544194N00627231EA0000002325 +B1003484544191N00627208EA0000002323 +B1003504544189N00627185EA0000002320 +B1003524544186N00627162EA0000002318 +B1003544544183N00627139EA0000002316 +B1003564544180N00627116EA0000002313 +B1003584544178N00627093EA0000002311 +B1004004544175N00627070EA0000002308 +B1004024544172N00627048EA0000002305 +B1004044544170N00627025EA0000002302 +B1004064544167N00627002EA0000002300 +B1004084544164N00626979EA0000002297 +B1004104544161N00626956EA0000002294 +B1004124544157N00626934EA0000002292 +B1004144544154N00626912EA0000002289 +B1004164544150N00626889EA0000002287 +B1004184544145N00626868EA0000002284 +B1004204544141N00626846EA0000002281 +B1004224544136N00626824EA0000002279 +B1004244544132N00626802EA0000002276 +B1004264544128N00626780EA0000002273 +B1004284544123N00626758EA0000002270 +B1004304544120N00626735EA0000002267 +B1004324544116N00626712EA0000002264 +B1004344544114N00626688EA0000002261 +B1004364544110N00626652EA0000002256 +B1004384544108N00626628EA0000002254 +B1004404544106N00626604EA0000002252 +B1004424544104N00626580EA0000002249 +B1004444544102N00626557EA0000002246 +B1004464544100N00626533EA0000002244 +B1004484544098N00626509EA0000002241 +B1004504544095N00626485EA0000002238 +B1004524544093N00626461EA0000002235 +B1004554544092N00626437EA0000002233 +B1004574544089N00626413EA0000002230 +B1004594544088N00626390EA0000002226 +B1005014544086N00626366EA0000002223 +B1005034544083N00626342EA0000002220 +B1005054544081N00626319EA0000002217 +B1005074544079N00626295EA0000002214 +B1005094544076N00626272EA0000002211 +B1005114544074N00626248EA0000002208 +B1005134544073N00626236EA0000002204 +B1005154544070N00626201EA0000002201 +B1005174544069N00626177EA0000002198 +B1005194544067N00626154EA0000002195 +B1005214544065N00626130EA0000002191 +B1005234544063N00626107EA0000002188 +B1005254544061N00626083EA0000002185 +B1005274544059N00626060EA0000002182 +B1005294544058N00626037EA0000002179 +B1005314544056N00626013EA0000002176 +B1005334544054N00625990EA0000002173 +B1005354544053N00625966EA0000002170 +B1005374544051N00625943EA0000002167 +B1005394544049N00625920EA0000002164 +B1005414544048N00625896EA0000002161 +B1005434544047N00625873EA0000002158 +B1005454544045N00625850EA0000002156 +B1005474544043N00625827EA0000002153 +B1005494544041N00625805EA0000002150 +B1005514544039N00625783EA0000002146 +B1005534544037N00625760EA0000002143 +B1005554544036N00625738EA0000002140 +B1005574544034N00625716EA0000002137 +B1005594544032N00625694EA0000002133 +B1006014544031N00625672EA0000002130 +B1006034544029N00625650EA0000002127 +B1006054544027N00625628EA0000002124 +B1006074544025N00625606EA0000002120 +B1006094544024N00625584EA0000002117 +B1006114544021N00625562EA0000002114 +B1006134544020N00625540EA0000002111 +B1006154544018N00625517EA0000002108 +B1006174544016N00625484EA0000002104 +B1006194544014N00625462EA0000002101 +B1006214544012N00625440EA0000002098 +B1006234544010N00625417EA0000002095 +B1006254544009N00625394EA0000002092 +B1006274544008N00625372EA0000002089 +B1006294544006N00625350EA0000002086 +B1006314544005N00625327EA0000002083 +B1006334544003N00625305EA0000002081 +B1006364544002N00625282EA0000002078 +B1006384544000N00625260EA0000002075 +B1006404543999N00625237EA0000002072 +B1006424543997N00625215EA0000002069 +B1006444543996N00625193EA0000002066 +B1006464543995N00625171EA0000002063 +B1006484543994N00625148EA0000002060 +B1006504543993N00625126EA0000002057 +B1006524543992N00625104EA0000002054 +B1006544543992N00625081EA0000002051 +B1006564543991N00625059EA0000002049 +B1006584543990N00625037EA0000002046 +B1007004543989N00625014EA0000002043 +B1007024543988N00624992EA0000002041 +B1007044543987N00624970EA0000002038 +B1007064543986N00624959EA0000002036 +B1007084543984N00624927EA0000002034 +B1007104543983N00624906EA0000002031 +B1007124543981N00624885EA0000002027 +B1007144543979N00624863EA0000002025 +B1007164543976N00624842EA0000002023 +B1007184543972N00624822EA0000002020 +B1007204543969N00624801EA0000002016 +B1007224543965N00624779EA0000002013 +B1007244543961N00624759EA0000002011 +B1007264543957N00624738EA0000002007 +B1007284543954N00624717EA0000002004 +B1007304543949N00624695EA0000002001 +B1007324543945N00624675EA0000001998 +B1007344543941N00624654EA0000001995 +B1007364543937N00624633EA0000001992 +B1007384543934N00624612EA0000001989 +B1007404543931N00624590EA0000001986 +B1007424543928N00624570EA0000001983 +B1007444543926N00624550EA0000001980 +B1007464543924N00624529EA0000001977 +B1007484543922N00624509EA0000001974 +B1007504543920N00624489EA0000001971 +B1007524543918N00624468EA0000001968 +B1007544543916N00624448EA0000001966 +B1007564543914N00624428EA0000001962 +B1007584543910N00624397EA0000001958 +B1008004543908N00624377EA0000001955 +B1008024543905N00624357EA0000001952 +B1008044543902N00624337EA0000001949 +B1008064543900N00624317EA0000001946 +B1008084543897N00624296EA0000001943 +B1008104543894N00624276EA0000001940 +B1008124543891N00624256EA0000001937 +B1008154543888N00624235EA0000001933 +B1008174543885N00624214EA0000001930 +B1008194543882N00624194EA0000001928 +B1008214543879N00624173EA0000001925 +B1008234543877N00624152EA0000001922 +B1008254543874N00624132EA0000001920 +B1008274543872N00624111EA0000001917 +B1008294543869N00624091EA0000001914 +B1008314543867N00624070EA0000001912 +B1008334543865N00624049EA0000001910 +B1008354543862N00624028EA0000001908 +B1008374543859N00624008EA0000001905 +B1008394543857N00623987EA0000001903 +B1008414543854N00623966EA0000001900 +B1008434543851N00623945EA0000001897 +B1008454543848N00623924EA0000001894 +B1008474543845N00623903EA0000001891 +B1008494543842N00623882EA0000001888 +B1008514543839N00623862EA0000001885 +B1008534543836N00623841EA0000001883 +B1008554543833N00623820EA0000001880 +B1008574543829N00623799EA0000001877 +B1008594543826N00623779EA0000001874 +B1009014543822N00623758EA0000001871 +B1009034543819N00623737EA0000001869 +B1009054543815N00623717EA0000001867 +B1009074543810N00623697EA0000001864 +B1009094543805N00623677EA0000001861 +B1009114543800N00623656EA0000001858 +B1009134543794N00623637EA0000001856 +B1009154543789N00623617EA0000001853 +B1009174543783N00623597EA0000001850 +B1009194543777N00623577EA0000001847 +B1009214543771N00623557EA0000001844 +B1009234543765N00623537EA0000001842 +B1009254543759N00623518EA0000001840 +B1009274543753N00623498EA0000001836 +B1009294543748N00623478EA0000001833 +B1009314543743N00623458EA0000001830 +B1009334543737N00623438EA0000001828 +B1009354543729N00623409EA0000001824 +B1009374543724N00623389EA0000001821 +B1009394543719N00623370EA0000001818 +B1009414543712N00623351EA0000001815 +B1009434543706N00623332EA0000001812 +B1009454543698N00623313EA0000001810 +B1009474543691N00623294EA0000001807 +B1009494543683N00623276EA0000001805 +B1009514543676N00623258EA0000001802 +B1009534543668N00623239EA0000001800 +B1009564543661N00623221EA0000001797 +B1009584543653N00623203EA0000001794 +B1010004543646N00623185EA0000001792 +B1010024543638N00623167EA0000001789 +B1010044543630N00623150EA0000001786 +B1010064543623N00623131EA0000001783 +B1010084543616N00623113EA0000001781 +B1010104543608N00623094EA0000001778 +B1010124543601N00623076EA0000001776 +B1010144543594N00623058EA0000001773 +B1010164543586N00623040EA0000001770 +B1010184543579N00623021EA0000001767 +B1010204543576N00623012EA0000001765 +B1010224543566N00622984EA0000001762 +B1010244543560N00622965EA0000001759 +B1010264543554N00622946EA0000001756 +B1010284543547N00622927EA0000001753 +B1010304543540N00622909EA0000001751 +B1010324543533N00622891EA0000001748 +B1010344543526N00622873EA0000001745 +B1010364543518N00622855EA0000001743 +B1010384543511N00622837EA0000001740 +B1010404543504N00622820EA0000001737 +B1010424543497N00622802EA0000001734 +B1010444543489N00622784EA0000001732 +B1010464543481N00622766EA0000001729 +B1010484543473N00622749EA0000001727 +B1010504543465N00622731EA0000001724 +B1010524543458N00622712EA0000001721 +B1010544543450N00622694EA0000001718 +B1010564543442N00622675EA0000001715 +B1010584543436N00622656EA0000001712 +B1011004543428N00622638EA0000001709 +B1011024543421N00622619EA0000001706 +B1011044543414N00622601EA0000001703 +B1011064543407N00622582EA0000001700 +B1011084543400N00622563EA0000001696 +B1011104543393N00622544EA0000001693 +B1011124543383N00622516EA0000001688 +B1011144543377N00622497EA0000001685 +B1011164543371N00622478EA0000001682 +B1011184543365N00622459EA0000001679 +B1011204543359N00622440EA0000001676 +B1011224543354N00622421EA0000001672 +B1011244543348N00622402EA0000001669 +B1011264543342N00622382EA0000001666 +B1011284543336N00622364EA0000001663 +B1011304543330N00622344EA0000001660 +B1011324543325N00622325EA0000001657 +B1011344543319N00622307EA0000001654 +B1011374543313N00622288EA0000001651 +B1011394543307N00622269EA0000001648 +B1011414543301N00622250EA0000001645 +B1011434543295N00622231EA0000001642 +B1011454543289N00622213EA0000001639 +B1011474543282N00622194EA0000001636 +B1011494543277N00622176EA0000001633 +B1011514543271N00622158EA0000001630 +B1011534543264N00622141EA0000001626 +B1011554543258N00622123EA0000001623 +B1011574543251N00622106EA0000001620 +B1011594543244N00622089EA0000001617 +B1012014543240N00622081EA0000001615 +B1012034543231N00622055EA0000001613 +B1012054543227N00622038EA0000001610 +B1012074543223N00622020EA0000001607 +B1012094543220N00622001EA0000001604 +B1012114543219N00621981EA0000001601 +B1012134543218N00621961EA0000001599 +B1012154543216N00621938EA0000001597 +B1012174543213N00621919EA0000001596 +B1012194543208N00621907EA0000001594 +B1012214543203N00621893EA0000001590 +B1012234543200N00621875EA0000001586 +B1012254543196N00621860EA0000001582 +B1012274543190N00621846EA0000001579 +B1012294543186N00621831EA0000001576 +B1012314543182N00621816EA0000001573 +B1012334543176N00621800EA0000001571 +B1012354543171N00621789EA0000001569 +B1012374543164N00621776EA0000001566 +B1012394543159N00621761EA0000001564 +B1012414543153N00621749EA0000001563 +B1012434543146N00621735EA0000001559 +B1012454543138N00621720EA0000001557 +B1012474543129N00621707EA0000001556 +B1012494543121N00621694EA0000001555 +B1012514543114N00621681EA0000001555 +B1012534543105N00621665EA0000001553 +B1012554543100N00621648EA0000001551 +B1012574543098N00621630EA0000001550 +B1012594543098N00621614EA0000001547 +B1013014543096N00621601EA0000001543 +B1013034543095N00621585EA0000001539 +B1013054543096N00621567EA0000001536 +B1013074543098N00621549EA0000001534 +B1013094543097N00621536EA0000001535 +B1013114543097N00621521EA0000001534 +B1013134543100N00621504EA0000001534 +B1013154543107N00621490EA0000001535 +B1013184543114N00621476EA0000001536 +B1013204543120N00621461EA0000001536 +B1013224543125N00621445EA0000001537 +B1013244543128N00621431EA0000001538 +B1013264543130N00621418EA0000001539 +B1013284543130N00621405EA0000001539 +B1013304543128N00621392EA0000001539 +B1013324543124N00621380EA0000001540 +B1013344543122N00621369EA0000001540 +B1013364543120N00621357EA0000001539 +B1013384543118N00621344EA0000001539 +B1013404543117N00621332EA0000001538 +B1013424543113N00621320EA0000001536 +B1013444543110N00621307EA0000001535 +B1013464543110N00621295EA0000001534 +B1013484543111N00621282EA0000001532 +B1013504543111N00621267EA0000001529 +B1013524543111N00621251EA0000001527 +B1013544543110N00621236EA0000001524 +B1013564543106N00621222EA0000001521 +B1013584543099N00621209EA0000001519 +B1014004543092N00621197EA0000001518 +B1014024543085N00621185EA0000001517 +B1014044543077N00621175EA0000001517 +B1014064543068N00621165EA0000001518 +B1014084543061N00621157EA0000001519 +B1014104543054N00621150EA0000001518 +B1014124543046N00621141EA0000001515 +B1014144543038N00621130EA0000001514 +B1014164543030N00621119EA0000001513 +B1014184543021N00621110EA0000001512 +B1014204543013N00621099EA0000001511 +B1014224543004N00621084EA0000001511 +B1014244542997N00621069EA0000001512 +B1014264542990N00621058EA0000001515 +B1014284542984N00621051EA0000001518 +B1014304542979N00621044EA0000001522 +B1014324542971N00621033EA0000001525 +B1014344542964N00621029EA0000001526 +B1014364542955N00621030EA0000001527 +B1014384542947N00621037EA0000001527 +B1014404542946N00621052EA0000001526 +B1014424542954N00621062EA0000001525 +B1014444542968N00621061EA0000001524 +B1014464542977N00621051EA0000001525 +B1014484542981N00621038EA0000001526 +B1014504542981N00621024EA0000001526 +B1014524542979N00621011EA0000001529 +B1014544542975N00621001EA0000001531 +B1014564542971N00620993EA0000001531 +B1014594542965N00620983EA0000001530 +B1015014542959N00620973EA0000001528 +B1015034542951N00620964EA0000001525 +B1015054542943N00620954EA0000001522 +B1015074542935N00620944EA0000001520 +B1015094542927N00620935EA0000001518 +B1015114542917N00620927EA0000001517 +B1015134542908N00620921EA0000001516 +B1015154542899N00620915EA0000001515 +B1015174542888N00620910EA0000001514 +B1015194542878N00620904EA0000001515 +B1015214542868N00620898EA0000001516 +B1015234542858N00620893EA0000001515 +B1015254542849N00620890EA0000001513 +B1015274542838N00620886EA0000001512 +B1015294542827N00620882EA0000001513 +B1015314542822N00620881EA0000001514 +B1015334542816N00620880EA0000001514 +B1015354542807N00620877EA0000001514 +B1015374542800N00620872EA0000001516 +B1015394542795N00620870EA0000001520 +B1015414542790N00620875EA0000001523 +B1015434542789N00620884EA0000001525 +B1015454542792N00620895EA0000001526 +B1015474542800N00620901EA0000001528 +B1015494542811N00620897EA0000001529 +B1015514542821N00620886EA0000001529 +B1015534542824N00620869EA0000001530 +B1015554542820N00620852EA0000001530 +B1015574542813N00620843EA0000001531 +B1015594542806N00620838EA0000001533 +B1016014542800N00620836EA0000001536 +B1016034542793N00620836EA0000001537 +B1016054542784N00620835EA0000001537 +B1016074542774N00620832EA0000001537 +B1016094542767N00620829EA0000001536 +B1016114542758N00620827EA0000001534 +B1016134542741N00620825EA0000001531 +B1016154542731N00620823EA0000001529 +B1016174542720N00620821EA0000001526 +B1016194542709N00620817EA0000001524 +B1016214542699N00620812EA0000001523 +B1016234542689N00620805EA0000001522 +B1016254542681N00620798EA0000001523 +B1016274542677N00620795EA0000001526 +B1016294542670N00620795EA0000001527 +B1016314542665N00620801EA0000001529 +B1016334542667N00620812EA0000001531 +B1016354542678N00620815EA0000001533 +B1016384542689N00620810EA0000001536 +B1016404542693N00620794EA0000001539 +B1016424542693N00620775EA0000001544 +B1016444542689N00620760EA0000001548 +B1016464542682N00620754EA0000001552 +B1016484542676N00620760EA0000001556 +B1016504542677N00620771EA0000001559 +B1016524542685N00620775EA0000001563 +B1016544542696N00620766EA0000001567 +B1016564542703N00620750EA0000001572 +B1016584542701N00620733EA0000001576 +B1017004542696N00620720EA0000001580 +B1017024542689N00620713EA0000001584 +B1017044542684N00620720EA0000001588 +B1017064542681N00620737EA0000001596 +B1017084542686N00620744EA0000001598 +B1017104542694N00620750EA0000001600 +B1017124542705N00620748EA0000001602 +B1017144542717N00620738EA0000001606 +B1017164542724N00620722EA0000001609 +B1017184542718N00620704EA0000001611 +B1017204542708N00620692EA0000001614 +B1017224542700N00620689EA0000001620 +B1017244542692N00620685EA0000001623 +B1017264542683N00620682EA0000001627 +B1017284542676N00620686EA0000001632 +B1017304542674N00620694EA0000001636 +B1017324542673N00620704EA0000001637 +B1017344542674N00620717EA0000001639 +B1017364542684N00620725EA0000001640 +B1017384542696N00620723EA0000001641 +B1017404542703N00620710EA0000001642 +B1017424542703N00620691EA0000001644 +B1017444542698N00620679EA0000001646 +B1017464542691N00620671EA0000001649 +B1017484542684N00620663EA0000001652 +B1017504542676N00620657EA0000001656 +B1017524542669N00620653EA0000001661 +B1017544542661N00620657EA0000001666 +B1017564542658N00620667EA0000001668 +B1017584542661N00620679EA0000001672 +B1018004542669N00620684EA0000001676 +B1018024542679N00620683EA0000001677 +B1018044542689N00620677EA0000001678 +B1018064542696N00620659EA0000001679 +B1018084542692N00620641EA0000001680 +B1018104542684N00620631EA0000001685 +B1018124542677N00620626EA0000001688 +B1018144542671N00620618EA0000001690 +B1018164542663N00620615EA0000001691 +B1018194542656N00620620EA0000001691 +B1018214542653N00620631EA0000001691 +B1018234542656N00620643EA0000001691 +B1018254542665N00620644EA0000001692 +B1018274542675N00620633EA0000001694 +B1018294542678N00620618EA0000001698 +B1018314542675N00620605EA0000001703 +B1018334542668N00620597EA0000001706 +B1018354542661N00620593EA0000001709 +B1018374542653N00620597EA0000001711 +B1018394542648N00620607EA0000001712 +B1018414542647N00620618EA0000001713 +B1018434542652N00620630EA0000001714 +B1018454542662N00620635EA0000001714 +B1018474542672N00620629EA0000001715 +B1018494542678N00620615EA0000001716 +B1018514542675N00620601EA0000001717 +B1018534542668N00620591EA0000001719 +B1018554542662N00620583EA0000001721 +B1018574542656N00620575EA0000001723 +B1018594542648N00620567EA0000001725 +B1019014542640N00620564EA0000001729 +B1019034542634N00620570EA0000001733 +B1019054542629N00620582EA0000001737 +B1019074542629N00620597EA0000001739 +B1019094542635N00620606EA0000001741 +B1019114542644N00620609EA0000001741 +B1019134542653N00620606EA0000001740 +B1019154542659N00620592EA0000001739 +B1019174542658N00620575EA0000001738 +B1019194542651N00620561EA0000001737 +B1019214542642N00620551EA0000001737 +B1019234542635N00620543EA0000001739 +B1019254542629N00620537EA0000001742 +B1019274542623N00620531EA0000001745 +B1019294542619N00620525EA0000001748 +B1019314542608N00620519EA0000001750 +B1019334542599N00620523EA0000001749 +B1019354542595N00620532EA0000001748 +B1019374542596N00620544EA0000001746 +B1019394542605N00620553EA0000001744 +B1019414542616N00620553EA0000001742 +B1019434542628N00620549EA0000001739 +B1019454542640N00620549EA0000001736 +B1019474542651N00620552EA0000001734 +B1019494542662N00620557EA0000001732 +B1019514542673N00620564EA0000001732 +B1019534542680N00620570EA0000001733 +B1019564542684N00620576EA0000001735 +B1019584542689N00620583EA0000001736 +B1020004542696N00620589EA0000001739 +B1020024542700N00620598EA0000001743 +B1020044542699N00620608EA0000001746 +B1020064542693N00620616EA0000001749 +B1020084542684N00620610EA0000001751 +B1020104542678N00620594EA0000001753 +B1020124542681N00620588EA0000001755 +B1020144542688N00620595EA0000001757 +B1020164542688N00620606EA0000001760 +B1020184542681N00620611EA0000001763 +B1020204542676N00620610EA0000001767 +B1020224542667N00620593EA0000001769 +B1020244542670N00620577EA0000001772 +B1020264542679N00620569EA0000001774 +B1020284542688N00620572EA0000001777 +B1020304542693N00620580EA0000001781 +B1020324542696N00620589EA0000001785 +B1020344542693N00620601EA0000001788 +B1020364542684N00620606EA0000001791 +B1020384542673N00620598EA0000001795 +B1020404542667N00620584EA0000001798 +B1020424542670N00620572EA0000001801 +B1020444542679N00620562EA0000001804 +B1020464542690N00620562EA0000001805 +B1020484542699N00620567EA0000001807 +B1020504542707N00620572EA0000001811 +B1020524542714N00620573EA0000001816 +B1020544542720N00620575EA0000001820 +B1020564542724N00620582EA0000001824 +B1020584542723N00620592EA0000001827 +B1021004542714N00620593EA0000001830 +B1021024542704N00620583EA0000001832 +B1021044542700N00620568EA0000001835 +B1021064542706N00620558EA0000001837 +B1021084542717N00620562EA0000001840 +B1021104542722N00620569EA0000001842 +B1021124542709N00620567EA0000001847 +B1021144542700N00620557EA0000001850 +B1021164542696N00620543EA0000001852 +B1021184542701N00620531EA0000001855 +B1021204542714N00620531EA0000001856 +B1021224542725N00620538EA0000001859 +B1021244542733N00620546EA0000001863 +B1021264542738N00620550EA0000001869 +B1021284542742N00620557EA0000001873 +B1021304542746N00620568EA0000001878 +B1021324542747N00620578EA0000001883 +B1021344542741N00620585EA0000001888 +B1021374542731N00620583EA0000001893 +B1021394542725N00620571EA0000001898 +B1021414542726N00620555EA0000001903 +B1021434542736N00620549EA0000001909 +B1021454542746N00620550EA0000001915 +B1021474542754N00620556EA0000001921 +B1021494542756N00620567EA0000001925 +B1021514542750N00620579EA0000001927 +B1021534542739N00620578EA0000001929 +B1021554542731N00620564EA0000001932 +B1021574542730N00620555EA0000001934 +B1021594542737N00620535EA0000001937 +B1022014542747N00620535EA0000001940 +B1022034542753N00620543EA0000001942 +B1022054542754N00620554EA0000001943 +B1022074542748N00620565EA0000001943 +B1022094542742N00620573EA0000001944 +B1022114542737N00620577EA0000001946 +B1022134542729N00620581EA0000001946 +B1022154542720N00620577EA0000001947 +B1022174542714N00620562EA0000001948 +B1022194542716N00620545EA0000001949 +B1022214542725N00620544EA0000001952 +B1022234542735N00620552EA0000001954 +B1022254542735N00620560EA0000001958 +B1022274542728N00620566EA0000001961 +B1022294542718N00620566EA0000001962 +B1022314542707N00620557EA0000001964 +B1022334542702N00620542EA0000001967 +B1022354542707N00620535EA0000001969 +B1022374542716N00620539EA0000001972 +B1022394542722N00620549EA0000001976 +B1022414542721N00620558EA0000001980 +B1022434542716N00620569EA0000001982 +B1022454542708N00620576EA0000001983 +B1022474542697N00620573EA0000001985 +B1022494542691N00620561EA0000001988 +B1022514542690N00620547EA0000001991 +B1022534542703N00620535EA0000001995 +B1022554542713N00620539EA0000001997 +B1022574542716N00620551EA0000002001 +B1022594542713N00620564EA0000002004 +B1023014542706N00620574EA0000002006 +B1023034542695N00620576EA0000002008 +B1023054542686N00620569EA0000002011 +B1023074542679N00620556EA0000002014 +B1023094542679N00620541EA0000002017 +B1023114542683N00620530EA0000002021 +B1023134542691N00620523EA0000002025 +B1023164542701N00620521EA0000002029 +B1023184542708N00620529EA0000002032 +B1023204542709N00620544EA0000002035 +B1023224542703N00620556EA0000002039 +B1023244542693N00620558EA0000002042 +B1023264542684N00620548EA0000002044 +B1023284542682N00620532EA0000002046 +B1023304542689N00620525EA0000002049 +B1023324542698N00620530EA0000002052 +B1023344542701N00620536EA0000002055 +B1023364542699N00620557EA0000002057 +B1023384542689N00620565EA0000002060 +B1023404542679N00620562EA0000002062 +B1023424542673N00620551EA0000002063 +B1023444542673N00620536EA0000002064 +B1023464542682N00620529EA0000002065 +B1023484542692N00620535EA0000002066 +B1023504542696N00620548EA0000002067 +B1023524542691N00620559EA0000002069 +B1023544542682N00620565EA0000002070 +B1023564542671N00620563EA0000002070 +B1023584542662N00620554EA0000002070 +B1024004542653N00620547EA0000002071 +B1024024542647N00620546EA0000002074 +B1024044542640N00620551EA0000002078 +B1024064542632N00620558EA0000002082 +B1024084542629N00620569EA0000002087 +B1024104542629N00620584EA0000002090 +B1024124542634N00620596EA0000002094 +B1024144542642N00620599EA0000002096 +B1024164542649N00620591EA0000002098 +B1024184542648N00620580EA0000002100 +B1024204542643N00620568EA0000002101 +B1024224542636N00620560EA0000002104 +B1024244542629N00620554EA0000002107 +B1024264542620N00620549EA0000002112 +B1024284542607N00620543EA0000002119 +B1024304542599N00620536EA0000002122 +B1024324542590N00620529EA0000002124 +B1024344542580N00620522EA0000002124 +B1024364542568N00620513EA0000002123 +B1024384542557N00620503EA0000002120 +B1024404542546N00620494EA0000002117 +B1024424542536N00620486EA0000002114 +B1024444542525N00620476EA0000002110 +B1024464542514N00620466EA0000002106 +B1024484542504N00620457EA0000002103 +B1024504542494N00620447EA0000002099 +B1024534542483N00620439EA0000002095 +B1024554542471N00620430EA0000002091 +B1024574542460N00620421EA0000002087 +B1024594542449N00620410EA0000002084 +B1025014542440N00620401EA0000002082 +B1025034542430N00620391EA0000002080 +B1025054542419N00620380EA0000002077 +B1025074542408N00620372EA0000002076 +B1025094542396N00620366EA0000002075 +B1025114542391N00620363EA0000002076 +B1025134542377N00620351EA0000002077 +B1025154542366N00620340EA0000002078 +B1025174542355N00620329EA0000002080 +B1025194542345N00620319EA0000002081 +B1025214542335N00620308EA0000002081 +B1025234542323N00620297EA0000002082 +B1025254542312N00620289EA0000002083 +B1025274542302N00620281EA0000002083 +B1025294542292N00620274EA0000002081 +B1025314542282N00620265EA0000002079 +B1025334542272N00620254EA0000002079 +B1025354542263N00620245EA0000002079 +B1025374542254N00620237EA0000002079 +B1025394542246N00620228EA0000002079 +B1025414542237N00620218EA0000002080 +B1025434542227N00620209EA0000002083 +B1025454542219N00620200EA0000002084 +B1025474542211N00620191EA0000002085 +B1025494542201N00620181EA0000002088 +B1025514542192N00620174EA0000002092 +B1025534542184N00620171EA0000002097 +B1025554542178N00620168EA0000002100 +B1025574542171N00620164EA0000002102 +B1025594542164N00620157EA0000002102 +B1026014542161N00620148EA0000002102 +B1026034542164N00620133EA0000002103 +B1026054542168N00620119EA0000002105 +B1026074542174N00620110EA0000002105 +B1026094542194N00620107EA0000002105 +B1026114542204N00620121EA0000002107 +B1026134542202N00620135EA0000002110 +B1026154542189N00620144EA0000002114 +B1026174542180N00620140EA0000002120 +B1026194542175N00620129EA0000002125 +B1026214542175N00620117EA0000002128 +B1026234542182N00620106EA0000002129 +B1026254542195N00620103EA0000002130 +B1026274542206N00620114EA0000002131 +B1026294542204N00620128EA0000002132 +B1026324542195N00620133EA0000002134 +B1026344542186N00620130EA0000002136 +B1026364542179N00620126EA0000002140 +B1026384542173N00620122EA0000002141 +B1026404542165N00620116EA0000002143 +B1026424542158N00620109EA0000002145 +B1026444542152N00620104EA0000002147 +B1026464542145N00620100EA0000002148 +B1026484542140N00620098EA0000002149 +B1026504542125N00620090EA0000002150 +B1026524542117N00620085EA0000002150 +B1026544542107N00620078EA0000002149 +B1026564542096N00620070EA0000002148 +B1026584542086N00620064EA0000002147 +B1027004542076N00620058EA0000002145 +B1027024542064N00620049EA0000002141 +B1027044542051N00620040EA0000002138 +B1027064542040N00620030EA0000002130 +B1027084542029N00620022EA0000002126 +B1027104542018N00620015EA0000002121 +B1027124542006N00620007EA0000002117 +B1027144541994N00620000EA0000002113 +B1027164541981N00619993EA0000002108 +B1027184541968N00619990EA0000002102 +B1027204541954N00619985EA0000002097 +B1027224541941N00619975EA0000002091 +B1027244541929N00619965EA0000002086 +B1027264541916N00619957EA0000002082 +B1027284541904N00619948EA0000002079 +B1027304541891N00619940EA0000002075 +B1027324541878N00619933EA0000002071 +B1027344541865N00619925EA0000002069 +B1027364541853N00619916EA0000002067 +B1027384541839N00619907EA0000002064 +B1027404541825N00619896EA0000002061 +B1027424541813N00619885EA0000002060 +B1027444541800N00619876EA0000002058 +B1027464541786N00619867EA0000002055 +B1027484541765N00619853EA0000002052 +B1027504541751N00619844EA0000002050 +B1027524541738N00619833EA0000002047 +B1027544541724N00619822EA0000002045 +B1027564541711N00619812EA0000002044 +B1027584541697N00619800EA0000002043 +B1028004541684N00619788EA0000002043 +B1028024541674N00619779EA0000002045 +B1028044541666N00619773EA0000002047 +B1028064541657N00619766EA0000002049 +B1028084541648N00619758EA0000002052 +B1028104541641N00619751EA0000002058 +B1028134541633N00619746EA0000002066 +B1028154541626N00619742EA0000002071 +B1028174541618N00619738EA0000002076 +B1028194541610N00619735EA0000002082 +B1028214541604N00619729EA0000002089 +B1028234541598N00619720EA0000002096 +B1028254541595N00619716EA0000002105 +B1028274541585N00619710EA0000002113 +B1028294541576N00619711EA0000002119 +B1028314541568N00619720EA0000002126 +B1028334541566N00619734EA0000002134 +B1028354541570N00619745EA0000002143 +B1028374541577N00619753EA0000002152 +B1028394541586N00619759EA0000002161 +B1028414541595N00619758EA0000002168 +B1028434541602N00619749EA0000002174 +B1028454541608N00619738EA0000002177 +B1028474541614N00619727EA0000002180 +B1028494541617N00619712EA0000002184 +B1028514541618N00619696EA0000002188 +B1028534541615N00619682EA0000002192 +B1028554541608N00619671EA0000002195 +B1028574541598N00619664EA0000002198 +B1028594541590N00619660EA0000002200 +B1029014541581N00619657EA0000002200 +B1029034541572N00619653EA0000002202 +B1029054541564N00619648EA0000002204 +B1029074541556N00619644EA0000002204 +B1029094541547N00619640EA0000002203 +B1029114541537N00619633EA0000002203 +B1029134541528N00619627EA0000002204 +B1029154541520N00619623EA0000002203 +B1029174541511N00619618EA0000002200 +B1029194541501N00619611EA0000002195 +B1029214541490N00619604EA0000002190 +B1029234541479N00619593EA0000002184 +B1029254541467N00619579EA0000002179 +B1029274541457N00619568EA0000002176 +B1029294541441N00619554EA0000002167 +B1029314541429N00619543EA0000002163 +B1029334541418N00619532EA0000002160 +B1029354541408N00619523EA0000002157 +B1029374541396N00619513EA0000002153 +B1029394541382N00619505EA0000002151 +B1029414541371N00619498EA0000002149 +B1029434541358N00619491EA0000002146 +B1029454541345N00619483EA0000002141 +B1029474541333N00619474EA0000002138 +B1029494541323N00619463EA0000002136 +B1029514541312N00619451EA0000002132 +B1029544541301N00619438EA0000002130 +B1029564541289N00619427EA0000002128 +B1029584541278N00619415EA0000002125 +B1030004541267N00619400EA0000002123 +B1030024541257N00619386EA0000002123 +B1030044541249N00619374EA0000002122 +B1030064541240N00619362EA0000002120 +B1030084541231N00619347EA0000002117 +B1030104541221N00619333EA0000002117 +B1030124541213N00619320EA0000002117 +B1030144541205N00619306EA0000002114 +B1030164541197N00619288EA0000002110 +B1030184541188N00619269EA0000002106 +B1030204541183N00619260EA0000002103 +B1030224541169N00619236EA0000002097 +B1030244541158N00619222EA0000002091 +B1030264541146N00619206EA0000002086 +B1030284541135N00619190EA0000002082 +B1030304541127N00619176EA0000002077 +B1030324541118N00619159EA0000002070 +B1030344541109N00619139EA0000002066 +B1030364541100N00619121EA0000002063 +B1030384541092N00619103EA0000002060 +B1030404541084N00619084EA0000002059 +B1030424541077N00619067EA0000002057 +B1030444541069N00619049EA0000002053 +B1030464541061N00619030EA0000002050 +B1030484541053N00619012EA0000002048 +B1030504541046N00618993EA0000002044 +B1030524541038N00618975EA0000002039 +B1030544541029N00618958EA0000002033 +B1030564541019N00618940EA0000002028 +B1030584541010N00618923EA0000002024 +B1031004541002N00618907EA0000002020 +B1031024540993N00618889EA0000002016 +B1031044540984N00618870EA0000002013 +B1031064540976N00618852EA0000002011 +B1031084540969N00618833EA0000002008 +B1031104540958N00618805EA0000002004 +B1031124540949N00618788EA0000002002 +B1031144540941N00618771EA0000001998 +B1031164540933N00618752EA0000001993 +B1031184540924N00618734EA0000001989 +B1031204540915N00618717EA0000001986 +B1031224540908N00618699EA0000001983 +B1031244540900N00618681EA0000001979 +B1031264540892N00618663EA0000001977 +B1031284540885N00618644EA0000001974 +B1031304540877N00618627EA0000001971 +B1031334540869N00618609EA0000001968 +B1031354540861N00618590EA0000001965 +B1031374540853N00618573EA0000001962 +B1031394540844N00618556EA0000001959 +B1031414540835N00618538EA0000001956 +B1031434540829N00618519EA0000001954 +B1031454540821N00618501EA0000001951 +B1031474540814N00618483EA0000001948 +B1031494540808N00618465EA0000001946 +B1031514540801N00618446EA0000001944 +B1031534540795N00618428EA0000001942 +B1031554540787N00618410EA0000001940 +B1031574540780N00618392EA0000001937 +B1031594540774N00618373EA0000001934 +B1032014540768N00618354EA0000001931 +B1032034540762N00618334EA0000001929 +B1032054540757N00618315EA0000001925 +B1032074540751N00618295EA0000001922 +B1032094540745N00618276EA0000001919 +B1032114540739N00618256EA0000001916 +B1032134540734N00618237EA0000001913 +B1032154540728N00618218EA0000001909 +B1032174540721N00618200EA0000001905 +B1032194540715N00618179EA0000001900 +B1032214540709N00618156EA0000001895 +B1032234540703N00618134EA0000001891 +B1032254540698N00618112EA0000001887 +B1032274540694N00618089EA0000001882 +B1032294540690N00618066EA0000001877 +B1032314540686N00618043EA0000001872 +B1032334540683N00618020EA0000001868 +B1032354540679N00617997EA0000001865 +B1032374540675N00617974EA0000001862 +B1032394540672N00617952EA0000001858 +B1032414540668N00617930EA0000001855 +B1032434540664N00617908EA0000001851 +B1032454540660N00617886EA0000001847 +B1032474540657N00617862EA0000001843 +B1032494540653N00617840EA0000001840 +B1032514540649N00617817EA0000001836 +B1032534540644N00617783EA0000001831 +B1032554540641N00617760EA0000001828 +B1032574540638N00617739EA0000001825 +B1032594540636N00617717EA0000001824 +B1033014540635N00617701EA0000001823 +B1033034540634N00617689EA0000001821 +B1033054540630N00617675EA0000001817 +B1033074540627N00617660EA0000001817 +B1033094540624N00617647EA0000001817 +B1033114540620N00617633EA0000001815 +B1033144540616N00617615EA0000001813 +B1033164540613N00617596EA0000001812 +B1033184540609N00617576EA0000001810 +B1033204540606N00617556EA0000001807 +B1033224540603N00617536EA0000001805 +B1033244540599N00617514EA0000001802 +B1033264540598N00617494EA0000001800 +B1033284540600N00617479EA0000001800 +B1033304540600N00617462EA0000001798 +B1033324540600N00617441EA0000001798 +B1033344540600N00617421EA0000001800 +B1033364540598N00617407EA0000001801 +B1033384540596N00617392EA0000001800 +B1033404540594N00617375EA0000001798 +B1033424540592N00617355EA0000001797 +B1033444540593N00617335EA0000001798 +B1033464540594N00617318EA0000001799 +B1033484540596N00617302EA0000001798 +B1033504540598N00617282EA0000001799 +B1033524540597N00617261EA0000001800 +B1033544540594N00617243EA0000001802 +B1033564540592N00617227EA0000001803 +B1033584540590N00617209EA0000001802 +B1034004540589N00617193EA0000001801 +B1034024540587N00617178EA0000001799 +B1034044540585N00617162EA0000001796 +B1034064540584N00617147EA0000001795 +B1034084540581N00617134EA0000001793 +B1034104540576N00617120EA0000001793 +B1034124540571N00617107EA0000001794 +B1034144540569N00617094EA0000001795 +B1034164540564N00617080EA0000001797 +B1034184540558N00617066EA0000001800 +B1034204540554N00617054EA0000001803 +B1034224540551N00617042EA0000001804 +B1034244540544N00617031EA0000001805 +B1034264540533N00617032EA0000001804 +B1034284540525N00617038EA0000001801 +B1034304540520N00617047EA0000001799 +B1034324540516N00617059EA0000001797 +B1034344540512N00617070EA0000001797 +B1034364540505N00617083EA0000001801 +B1034384540501N00617090EA0000001805 +B1034404540496N00617096EA0000001809 +B1034424540491N00617103EA0000001812 +B1034444540488N00617111EA0000001815 +B1034464540488N00617122EA0000001817 +B1034484540494N00617130EA0000001819 +B1034504540505N00617132EA0000001822 +B1034524540514N00617121EA0000001826 +B1034554540516N00617104EA0000001831 +B1034574540513N00617089EA0000001836 +B1034594540507N00617075EA0000001841 +B1035014540499N00617067EA0000001845 +B1035034540490N00617063EA0000001849 +B1035054540483N00617061EA0000001851 +B1035074540477N00617066EA0000001853 +B1035094540473N00617075EA0000001855 +B1035114540472N00617086EA0000001858 +B1035134540476N00617097EA0000001863 +B1035154540483N00617104EA0000001868 +B1035174540489N00617109EA0000001875 +B1035194540494N00617115EA0000001882 +B1035214540499N00617122EA0000001886 +B1035234540503N00617133EA0000001893 +B1035254540503N00617145EA0000001900 +B1035274540499N00617156EA0000001907 +B1035294540493N00617164EA0000001913 +B1035314540486N00617164EA0000001917 +B1035334540477N00617155EA0000001920 +B1035354540476N00617136EA0000001921 +B1035374540485N00617121EA0000001924 +B1035394540496N00617118EA0000001927 +B1035414540507N00617118EA0000001932 +B1035434540517N00617120EA0000001936 +B1035454540527N00617124EA0000001942 +B1035474540536N00617123EA0000001950 +B1035494540543N00617116EA0000001956 +B1035514540551N00617107EA0000001960 +B1035534540560N00617099EA0000001962 +B1035554540566N00617088EA0000001962 +B1035574540569N00617072EA0000001964 +B1035594540567N00617056EA0000001965 +B1036014540559N00617045EA0000001966 +B1036034540547N00617044EA0000001967 +B1036054540538N00617048EA0000001969 +B1036074540532N00617051EA0000001973 +B1036094540525N00617056EA0000001976 +B1036114540517N00617062EA0000001980 +B1036134540508N00617069EA0000001985 +B1036154540504N00617074EA0000001992 +B1036174540494N00617076EA0000002000 +B1036194540485N00617070EA0000002004 +B1036214540480N00617057EA0000002006 +B1036234540482N00617040EA0000002008 +B1036254540491N00617028EA0000002009 +B1036274540502N00617021EA0000002010 +B1036294540510N00617019EA0000002013 +B1036314540517N00617020EA0000002017 +B1036344540521N00617025EA0000002020 +B1036364540523N00617034EA0000002024 +B1036384540524N00617044EA0000002027 +B1036404540522N00617056EA0000002030 +B1036424540518N00617066EA0000002035 +B1036444540509N00617070EA0000002040 +B1036464540498N00617065EA0000002045 +B1036484540490N00617053EA0000002051 +B1036504540489N00617037EA0000002056 +B1036524540495N00617025EA0000002060 +B1036544540506N00617023EA0000002063 +B1036564540516N00617026EA0000002067 +B1036584540525N00617029EA0000002070 +B1037004540537N00617034EA0000002070 +B1037024540543N00617040EA0000002074 +B1037044540548N00617044EA0000002079 +B1037064540552N00617052EA0000002083 +B1037084540555N00617065EA0000002085 +B1037104540549N00617076EA0000002088 +B1037124540539N00617076EA0000002091 +B1037144540530N00617070EA0000002094 +B1037164540526N00617053EA0000002097 +B1037184540529N00617035EA0000002100 +B1037204540538N00617023EA0000002104 +B1037224540549N00617017EA0000002109 +B1037244540558N00617025EA0000002113 +B1037264540557N00617038EA0000002116 +B1037284540548N00617045EA0000002120 +B1037304540538N00617042EA0000002123 +B1037324540531N00617034EA0000002126 +B1037344540525N00617020EA0000002130 +B1037364540526N00617003EA0000002134 +B1037384540534N00616991EA0000002138 +B1037404540546N00616986EA0000002141 +B1037424540554N00616995EA0000002145 +B1037444540551N00617010EA0000002149 +B1037464540540N00617014EA0000002154 +B1037484540530N00617004EA0000002158 +B1037504540523N00616984EA0000002165 +B1037524540527N00616969EA0000002169 +B1037544540536N00616956EA0000002173 +B1037564540547N00616951EA0000002178 +B1037584540554N00616958EA0000002182 +B1038004540555N00616969EA0000002185 +B1038024540548N00616980EA0000002187 +B1038044540537N00616984EA0000002191 +B1038064540529N00616983EA0000002195 +B1038094540519N00616983EA0000002199 +B1038114540509N00616983EA0000002204 +B1038134540501N00616983EA0000002209 +B1038154540493N00616982EA0000002212 +B1038174540483N00616983EA0000002213 +B1038194540472N00616980EA0000002215 +B1038214540463N00616973EA0000002218 +B1038234540455N00616963EA0000002219 +B1038254540445N00616952EA0000002220 +B1038274540436N00616940EA0000002220 +B1038294540428N00616928EA0000002220 +B1038314540419N00616917EA0000002220 +B1038334540411N00616905EA0000002219 +B1038354540403N00616893EA0000002216 +B1038374540393N00616879EA0000002213 +B1038394540383N00616865EA0000002211 +B1038414540375N00616853EA0000002208 +B1038434540366N00616843EA0000002204 +B1038454540357N00616830EA0000002199 +B1038474540348N00616816EA0000002196 +B1038494540339N00616805EA0000002190 +B1038514540328N00616792EA0000002184 +B1038534540319N00616773EA0000002180 +B1038554540310N00616756EA0000002177 +B1038574540301N00616741EA0000002172 +B1038594540292N00616724EA0000002167 +B1039014540283N00616707EA0000002163 +B1039034540272N00616693EA0000002160 +B1039054540262N00616679EA0000002155 +B1039074540251N00616665EA0000002151 +B1039094540239N00616652EA0000002147 +B1039114540228N00616639EA0000002143 +B1039134540217N00616627EA0000002139 +B1039154540205N00616614EA0000002134 +B1039174540194N00616600EA0000002130 +B1039194540183N00616586EA0000002127 +B1039214540173N00616572EA0000002123 +B1039234540158N00616550EA0000002117 +B1039254540147N00616536EA0000002113 +B1039274540136N00616521EA0000002109 +B1039294540126N00616508EA0000002106 +B1039314540115N00616494EA0000002101 +B1039334540103N00616478EA0000002094 +B1039354540089N00616462EA0000002089 +B1039374540076N00616447EA0000002085 +B1039394540064N00616431EA0000002081 +B1039414540052N00616416EA0000002075 +B1039434540039N00616400EA0000002070 +B1039454540026N00616384EA0000002065 +B1039484540013N00616369EA0000002060 +B1039504540000N00616353EA0000002055 +B1039524539988N00616337EA0000002050 +B1039544539975N00616322EA0000002045 +B1039564539963N00616306EA0000002040 +B1039584539950N00616290EA0000002035 +B1040004539937N00616274EA0000002031 +B1040024539925N00616259EA0000002026 +B1040044539912N00616244EA0000002022 +B1040064539899N00616230EA0000002017 +B1040084539885N00616216EA0000002012 +B1040104539871N00616202EA0000002007 +B1040124539858N00616188EA0000002003 +B1040144539845N00616175EA0000001998 +B1040164539831N00616161EA0000001993 +B1040184539817N00616148EA0000001988 +B1040204539804N00616135EA0000001983 +B1040224539790N00616122EA0000001978 +B1040244539776N00616109EA0000001973 +B1040264539763N00616097EA0000001968 +B1040284539749N00616084EA0000001963 +B1040304539735N00616071EA0000001959 +B1040324539722N00616058EA0000001954 +B1040344539709N00616045EA0000001949 +B1040364539696N00616031EA0000001944 +B1040384539682N00616018EA0000001939 +B1040404539669N00616004EA0000001934 +B1040424539656N00615991EA0000001929 +B1040444539643N00615977EA0000001925 +B1040464539631N00615964EA0000001921 +B1040484539621N00615950EA0000001919 +B1040504539614N00615937EA0000001916 +B1040524539605N00615925EA0000001914 +B1040544539596N00615915EA0000001914 +B1040564539589N00615907EA0000001913 +B1040584539580N00615899EA0000001912 +B1041004539571N00615892EA0000001913 +B1041024539566N00615889EA0000001915 +B1041044539548N00615880EA0000001918 +B1041064539540N00615876EA0000001920 +B1041084539533N00615872EA0000001921 +B1041104539526N00615868EA0000001921 +B1041124539520N00615861EA0000001920 +B1041144539513N00615856EA0000001919 +B1041164539504N00615853EA0000001917 +B1041184539494N00615852EA0000001914 +B1041204539484N00615849EA0000001911 +B1041224539475N00615846EA0000001910 +B1041244539465N00615844EA0000001908 +B1041264539455N00615839EA0000001907 +B1041294539444N00615835EA0000001906 +B1041314539433N00615833EA0000001906 +B1041334539422N00615831EA0000001906 +B1041354539410N00615826EA0000001908 +B1041374539399N00615822EA0000001910 +B1041394539389N00615818EA0000001911 +B1041414539380N00615811EA0000001911 +B1041434539371N00615803EA0000001911 +B1041454539361N00615801EA0000001911 +B1041474539352N00615799EA0000001910 +B1041494539343N00615796EA0000001909 +B1041514539333N00615793EA0000001909 +B1041534539324N00615791EA0000001907 +B1041554539313N00615788EA0000001905 +B1041574539303N00615785EA0000001902 +B1041594539294N00615783EA0000001898 +B1042014539283N00615783EA0000001893 +B1042034539272N00615783EA0000001889 +B1042054539261N00615785EA0000001885 +B1042074539250N00615786EA0000001881 +B1042094539239N00615789EA0000001876 +B1042114539228N00615791EA0000001871 +B1042134539217N00615793EA0000001867 +B1042154539206N00615796EA0000001863 +B1042174539196N00615797EA0000001859 +B1042194539188N00615798EA0000001856 +B1042214539178N00615797EA0000001852 +B1042234539169N00615796EA0000001849 +B1042254539163N00615800EA0000001847 +B1042274539159N00615804EA0000001848 +B1042294539153N00615804EA0000001850 +B1042314539148N00615806EA0000001851 +B1042334539141N00615807EA0000001852 +B1042354539132N00615803EA0000001854 +B1042374539126N00615793EA0000001856 +B1042394539124N00615779EA0000001859 +B1042414539134N00615758EA0000001862 +B1042434539148N00615755EA0000001863 +B1042454539157N00615762EA0000001865 +B1042474539160N00615772EA0000001868 +B1042494539158N00615781EA0000001870 +B1042514539152N00615785EA0000001871 +B1042534539146N00615787EA0000001873 +B1042554539141N00615790EA0000001875 +B1042574539134N00615793EA0000001877 +B1042594539125N00615794EA0000001877 +B1043014539115N00615796EA0000001875 +B1043034539107N00615800EA0000001873 +B1043064539098N00615803EA0000001870 +B1043084539087N00615804EA0000001866 +B1043104539076N00615804EA0000001864 +B1043124539065N00615802EA0000001862 +B1043144539054N00615801EA0000001859 +B1043164539043N00615801EA0000001857 +B1043184539031N00615800EA0000001854 +B1043204539020N00615797EA0000001851 +B1043224539008N00615792EA0000001850 +B1043244538997N00615787EA0000001848 +B1043264538986N00615781EA0000001847 +B1043284538975N00615774EA0000001847 +B1043304538965N00615767EA0000001848 +B1043324538956N00615760EA0000001847 +B1043344538947N00615751EA0000001847 +B1043364538939N00615743EA0000001848 +B1043384538934N00615735EA0000001850 +B1043404538928N00615724EA0000001852 +B1043424538921N00615718EA0000001854 +B1043444538915N00615717EA0000001857 +B1043464538908N00615719EA0000001859 +B1043484538902N00615723EA0000001863 +B1043504538897N00615733EA0000001867 +B1043524538895N00615746EA0000001870 +B1043544538902N00615761EA0000001873 +B1043564538913N00615765EA0000001875 +B1043584538923N00615759EA0000001877 +B1044004538929N00615744EA0000001878 +B1044024538928N00615727EA0000001881 +B1044044538924N00615716EA0000001884 +B1044064538919N00615706EA0000001887 +B1044084538914N00615695EA0000001890 +B1044104538910N00615685EA0000001892 +B1044124538905N00615678EA0000001896 +B1044144538900N00615671EA0000001900 +B1044164538894N00615669EA0000001904 +B1044184538887N00615672EA0000001905 +B1044204538880N00615690EA0000001907 +B1044224538882N00615704EA0000001909 +B1044244538889N00615714EA0000001910 +B1044264538899N00615718EA0000001910 +B1044284538908N00615712EA0000001910 +B1044304538916N00615698EA0000001910 +B1044324538917N00615681EA0000001911 +B1044344538914N00615667EA0000001913 +B1044364538909N00615655EA0000001915 +B1044384538903N00615647EA0000001916 +B1044404538895N00615642EA0000001917 +B1044424538887N00615636EA0000001919 +B1044454538880N00615639EA0000001920 +B1044474538872N00615645EA0000001920 +B1044494538864N00615649EA0000001922 +B1044514538859N00615654EA0000001922 +B1044534538856N00615661EA0000001920 +B1044554538855N00615670EA0000001918 +B1044574538859N00615679EA0000001917 +B1044594538864N00615685EA0000001916 +B1045014538867N00615692EA0000001914 +B1045034538866N00615703EA0000001913 +B1045054538862N00615712EA0000001912 +B1045074538858N00615718EA0000001913 +B1045094538853N00615725EA0000001914 +B1045114538847N00615732EA0000001915 +B1045134538842N00615740EA0000001916 +B1045154538836N00615746EA0000001918 +B1045174538827N00615747EA0000001919 +B1045194538817N00615737EA0000001920 +B1045214538813N00615720EA0000001920 +B1045234538818N00615704EA0000001920 +B1045254538828N00615699EA0000001920 +B1045274538834N00615705EA0000001921 +B1045294538829N00615714EA0000001922 +B1045314538820N00615717EA0000001925 +B1045334538811N00615712EA0000001927 +B1045354538804N00615698EA0000001928 +B1045374538804N00615682EA0000001929 +B1045394538813N00615672EA0000001931 +B1045414538824N00615675EA0000001932 +B1045434538828N00615685EA0000001934 +B1045454538826N00615694EA0000001936 +B1045474538818N00615700EA0000001937 +B1045494538809N00615700EA0000001939 +B1045514538801N00615691EA0000001940 +B1045534538796N00615676EA0000001941 +B1045554538796N00615660EA0000001942 +B1045574538804N00615648EA0000001941 +B1045594538816N00615645EA0000001940 +B1046014538827N00615657EA0000001939 +B1046034538831N00615666EA0000001940 +B1046054538835N00615675EA0000001941 +B1046074538839N00615682EA0000001943 +B1046094538842N00615688EA0000001944 +B1046114538841N00615699EA0000001944 +B1046134538834N00615708EA0000001943 +B1046154538822N00615707EA0000001940 +B1046174538811N00615700EA0000001938 +B1046194538799N00615694EA0000001936 +B1046214538788N00615690EA0000001936 +B1046234538777N00615684EA0000001936 +B1046264538766N00615676EA0000001935 +B1046284538753N00615667EA0000001935 +B1046304538742N00615660EA0000001936 +B1046324538733N00615654EA0000001935 +B1046344538723N00615650EA0000001934 +B1046364538711N00615645EA0000001927 +B1046384538698N00615639EA0000001924 +B1046404538686N00615634EA0000001921 +B1046424538675N00615629EA0000001916 +B1046444538662N00615621EA0000001910 +B1046464538649N00615614EA0000001904 +B1046484538635N00615605EA0000001900 +B1046504538622N00615598EA0000001896 +B1046524538609N00615591EA0000001891 +B1046544538595N00615582EA0000001888 +B1046564538582N00615574EA0000001886 +B1046584538570N00615567EA0000001883 +B1047004538557N00615559EA0000001880 +B1047024538544N00615551EA0000001876 +B1047044538532N00615543EA0000001873 +B1047064538519N00615535EA0000001870 +B1047084538507N00615526EA0000001866 +B1047104538494N00615517EA0000001863 +B1047124538482N00615507EA0000001860 +B1047144538469N00615497EA0000001857 +B1047164538457N00615487EA0000001853 +B1047184538444N00615478EA0000001850 +B1047204538432N00615468EA0000001847 +B1047224538419N00615459EA0000001844 +B1047244538407N00615449EA0000001841 +B1047264538394N00615439EA0000001838 +B1047284538381N00615428EA0000001837 +B1047304538370N00615417EA0000001837 +B1047324538361N00615406EA0000001839 +B1047344538351N00615396EA0000001842 +B1047364538342N00615385EA0000001845 +B1047384538333N00615375EA0000001848 +B1047404538325N00615365EA0000001850 +B1047424538316N00615354EA0000001850 +B1047444538303N00615338EA0000001851 +B1047464538293N00615328EA0000001852 +B1047484538282N00615319EA0000001854 +B1047504538273N00615308EA0000001857 +B1047524538266N00615300EA0000001861 +B1047544538258N00615294EA0000001862 +B1047564538248N00615288EA0000001865 +B1047584538239N00615283EA0000001867 +B1048004538228N00615284EA0000001869 +B1048024538216N00615285EA0000001873 +B1048054538206N00615283EA0000001878 +B1048074538199N00615282EA0000001880 +B1048094538190N00615281EA0000001882 +B1048114538180N00615278EA0000001884 +B1048134538173N00615274EA0000001885 +B1048154538165N00615272EA0000001885 +B1048174538155N00615268EA0000001883 +B1048194538144N00615265EA0000001881 +B1048214538132N00615263EA0000001878 +B1048234538120N00615261EA0000001876 +B1048254538108N00615258EA0000001875 +B1048274538108N00615258EA0000001875 +B1048294538088N00615254EA0000001876 +B1048314538079N00615254EA0000001878 +B1048334538069N00615252EA0000001882 +B1048354538061N00615250EA0000001885 +B1048374538051N00615249EA0000001886 +B1048394538040N00615247EA0000001887 +B1048414538029N00615248EA0000001887 +B1048434538017N00615249EA0000001884 +B1048454538007N00615252EA0000001879 +B1048474537997N00615255EA0000001874 +B1048494537986N00615258EA0000001869 +B1048514537976N00615264EA0000001863 +B1048534537965N00615269EA0000001858 +B1048554537953N00615274EA0000001854 +B1048574537942N00615279EA0000001850 +B1048594537930N00615284EA0000001848 +B1049014537918N00615286EA0000001845 +B1049034537905N00615286EA0000001844 +B1049054537892N00615285EA0000001843 +B1049074537880N00615282EA0000001842 +B1049094537868N00615276EA0000001842 +B1049114537857N00615268EA0000001843 +B1049134537850N00615261EA0000001845 +B1049154537844N00615258EA0000001848 +B1049174537836N00615251EA0000001849 +B1049194537824N00615239EA0000001855 +B1049214537815N00615240EA0000001859 +B1049234537808N00615244EA0000001862 +B1049254537803N00615252EA0000001864 +B1049274537803N00615262EA0000001866 +B1049294537810N00615271EA0000001866 +B1049314537820N00615267EA0000001868 +B1049334537827N00615255EA0000001870 +B1049354537830N00615242EA0000001873 +B1049374537828N00615230EA0000001874 +B1049394537822N00615219EA0000001874 +B1049424537813N00615208EA0000001874 +B1049444537804N00615198EA0000001875 +B1049464537796N00615192EA0000001874 +B1049484537786N00615189EA0000001872 +B1049504537776N00615185EA0000001870 +B1049524537767N00615182EA0000001870 +B1049544537758N00615182EA0000001868 +B1049564537748N00615182EA0000001866 +B1049584537738N00615178EA0000001864 +B1050004537728N00615173EA0000001864 +B1050024537720N00615169EA0000001865 +B1050044537711N00615165EA0000001863 +B1050064537701N00615156EA0000001862 +B1050084537701N00615156EA0000001862 +B1050104537687N00615137EA0000001862 +B1050124537681N00615126EA0000001862 +B1050144537674N00615113EA0000001864 +B1050164537668N00615102EA0000001867 +B1050184537662N00615092EA0000001873 +B1050204537657N00615086EA0000001878 +B1050224537651N00615082EA0000001881 +B1050244537643N00615079EA0000001885 +B1050264537636N00615081EA0000001888 +B1050284537631N00615092EA0000001889 +B1050304537630N00615104EA0000001890 +B1050324537633N00615116EA0000001888 +B1050344537642N00615128EA0000001889 +B1050364537650N00615128EA0000001892 +B1050384537657N00615122EA0000001894 +B1050404537665N00615113EA0000001898 +B1050424537669N00615097EA0000001900 +B1050444537667N00615080EA0000001903 +B1050464537659N00615069EA0000001907 +B1050484537651N00615063EA0000001911 +B1050504537643N00615065EA0000001915 +B1050524537636N00615074EA0000001918 +B1050544537632N00615086EA0000001921 +B1050564537634N00615097EA0000001924 +B1050584537641N00615102EA0000001925 +B1051004537655N00615093EA0000001926 +B1051024537661N00615079EA0000001928 +B1051044537661N00615061EA0000001931 +B1051064537657N00615050EA0000001934 +B1051084537654N00615040EA0000001937 +B1051104537650N00615028EA0000001939 +B1051124537647N00615017EA0000001943 +B1051144537644N00615005EA0000001945 +B1051164537642N00614994EA0000001946 +B1051184537638N00614980EA0000001945 +B1051204537633N00614966EA0000001943 +B1051234537629N00614950EA0000001940 +B1051254537625N00614934EA0000001937 +B1051274537619N00614918EA0000001934 +B1051294537613N00614903EA0000001931 +B1051314537606N00614889EA0000001928 +B1051334537599N00614875EA0000001925 +B1051354537592N00614861EA0000001923 +B1051374537584N00614846EA0000001922 +B1051394537576N00614832EA0000001923 +B1051414537571N00614819EA0000001924 +B1051434537564N00614806EA0000001924 +B1051454537557N00614793EA0000001926 +B1051474537551N00614781EA0000001928 +B1051494537545N00614767EA0000001929 +B1051514537540N00614753EA0000001931 +B1051534537534N00614741EA0000001934 +B1051554537530N00614729EA0000001935 +B1051574537525N00614715EA0000001935 +B1051594537520N00614701EA0000001935 +B1052014537513N00614688EA0000001936 +B1052034537507N00614677EA0000001935 +B1052054537500N00614665EA0000001933 +B1052074537491N00614653EA0000001929 +B1052094537481N00614641EA0000001926 +B1052114537472N00614628EA0000001923 +B1052134537464N00614617EA0000001921 +B1052154537456N00614605EA0000001918 +B1052174537448N00614593EA0000001917 +B1052194537439N00614579EA0000001916 +B1052214537432N00614569EA0000001917 +B1052234537425N00614559EA0000001915 +B1052254537416N00614549EA0000001916 +B1052274537409N00614539EA0000001919 +B1052294537404N00614528EA0000001921 +B1052314537397N00614515EA0000001924 +B1052334537393N00614508EA0000001928 +B1052354537389N00614505EA0000001937 +B1052374537379N00614497EA0000001949 +B1052394537375N00614504EA0000001956 +B1052414537374N00614519EA0000001963 +B1052434537379N00614531EA0000001969 +B1052454537390N00614535EA0000001973 +B1052474537402N00614531EA0000001977 +B1052494537409N00614521EA0000001982 +B1052514537411N00614505EA0000001989 +B1052534537410N00614492EA0000001997 +B1052554537405N00614487EA0000002004 +B1052584537398N00614490EA0000002009 +B1053004537395N00614503EA0000002015 +B1053024537399N00614514EA0000002020 +B1053044537410N00614519EA0000002024 +B1053064537424N00614516EA0000002028 +B1053084537433N00614501EA0000002032 +B1053104537434N00614485EA0000002036 +B1053124537431N00614472EA0000002042 +B1053144537425N00614465EA0000002047 +B1053164537418N00614464EA0000002053 +B1053184537413N00614473EA0000002056 +B1053204537413N00614485EA0000002059 +B1053224537418N00614498EA0000002062 +B1053244537430N00614501EA0000002065 +B1053264537442N00614494EA0000002068 +B1053284537448N00614481EA0000002072 +B1053304537451N00614465EA0000002076 +B1053324537450N00614452EA0000002081 +B1053344537446N00614439EA0000002086 +B1053364537437N00614432EA0000002090 +B1053384537430N00614436EA0000002092 +B1053404537427N00614447EA0000002094 +B1053424537432N00614459EA0000002096 +B1053444537441N00614468EA0000002098 +B1053464537454N00614468EA0000002099 +B1053484537467N00614456EA0000002100 +B1053504537469N00614438EA0000002102 +B1053524537462N00614424EA0000002107 +B1053544537458N00614414EA0000002113 +B1053564537457N00614402EA0000002116 +B1053584537461N00614384EA0000002120 +B1054004537472N00614370EA0000002126 +B1054024537484N00614368EA0000002132 +B1054044537494N00614373EA0000002138 +B1054064537497N00614384EA0000002142 +B1054084537495N00614394EA0000002148 +B1054104537490N00614399EA0000002153 +B1054124537479N00614395EA0000002156 +B1054144537471N00614383EA0000002161 +B1054164537476N00614358EA0000002165 +B1054184537489N00614349EA0000002168 +B1054204537500N00614356EA0000002172 +B1054224537499N00614367EA0000002176 +B1054244537488N00614373EA0000002179 +B1054264537479N00614360EA0000002184 +B1054284537480N00614340EA0000002186 +B1054304537492N00614327EA0000002188 +B1054324537505N00614331EA0000002190 +B1054354537507N00614343EA0000002191 +B1054374537499N00614350EA0000002193 +B1054394537490N00614345EA0000002195 +B1054414537484N00614332EA0000002197 +B1054434537484N00614312EA0000002191 +B1054454537497N00614301EA0000002189 +B1054474537510N00614312EA0000002188 +B1054494537507N00614327EA0000002187 +B1054514537495N00614329EA0000002187 +B1054534537486N00614326EA0000002189 +B1054554537478N00614325EA0000002188 +B1054574537468N00614320EA0000002186 +B1054594537457N00614313EA0000002186 +B1055014537449N00614307EA0000002186 +B1055034537439N00614300EA0000002185 +B1055054537428N00614293EA0000002183 +B1055074537416N00614286EA0000002181 +B1055094537403N00614277EA0000002178 +B1055114537389N00614268EA0000002176 +B1055134537377N00614262EA0000002175 +B1055154537364N00614257EA0000002172 +B1055174537351N00614247EA0000002170 +B1055194537341N00614242EA0000002169 +B1055214537332N00614237EA0000002166 +B1055234537321N00614228EA0000002162 +B1055254537307N00614215EA0000002158 +B1055274537297N00614201EA0000002154 +B1055294537288N00614188EA0000002149 +B1055314537276N00614176EA0000002144 +B1055334537264N00614161EA0000002139 +B1055354537253N00614148EA0000002135 +B1055374537242N00614136EA0000002130 +B1055394537230N00614122EA0000002126 +B1055414537218N00614109EA0000002122 +B1055434537207N00614097EA0000002120 +B1055454537199N00614086EA0000002120 +B1055474537190N00614077EA0000002119 +B1055494537178N00614067EA0000002118 +B1055514537167N00614056EA0000002118 +B1055534537159N00614045EA0000002120 +B1055554537147N00614030EA0000002124 +B1055574537138N00614019EA0000002126 +B1055594537128N00614009EA0000002127 +B1056014537117N00613997EA0000002126 +B1056034537107N00613983EA0000002125 +B1056054537097N00613969EA0000002125 +B1056074537088N00613954EA0000002124 +B1056094537079N00613939EA0000002123 +B1056114537067N00613925EA0000002121 +B1056144537056N00613910EA0000002120 +B1056164537046N00613897EA0000002120 +B1056184537038N00613886EA0000002120 +B1056204537031N00613872EA0000002122 +B1056224537024N00613860EA0000002128 +B1056244537016N00613849EA0000002133 +B1056264537009N00613838EA0000002137 +B1056284537005N00613825EA0000002141 +B1056304537002N00613811EA0000002143 +B1056324536997N00613798EA0000002144 +B1056344536989N00613785EA0000002145 +B1056364536982N00613773EA0000002145 +B1056384536977N00613760EA0000002145 +B1056404536971N00613746EA0000002144 +B1056424536965N00613731EA0000002144 +B1056444536959N00613715EA0000002144 +B1056464536953N00613701EA0000002145 +B1056484536947N00613687EA0000002144 +B1056504536940N00613674EA0000002142 +B1056524536933N00613661EA0000002139 +B1056544536925N00613647EA0000002136 +B1056564536917N00613635EA0000002134 +B1056584536908N00613625EA0000002132 +B1057004536900N00613615EA0000002131 +B1057024536892N00613607EA0000002132 +B1057044536884N00613601EA0000002135 +B1057064536878N00613592EA0000002137 +B1057084536870N00613582EA0000002141 +B1057104536864N00613574EA0000002146 +B1057124536858N00613565EA0000002149 +B1057144536852N00613557EA0000002152 +B1057164536845N00613546EA0000002156 +B1057184536839N00613535EA0000002161 +B1057204536837N00613524EA0000002165 +B1057224536836N00613510EA0000002167 +B1057244536835N00613495EA0000002168 +B1057264536831N00613482EA0000002168 +B1057284536825N00613470EA0000002166 +B1057304536817N00613457EA0000002163 +B1057324536810N00613442EA0000002161 +B1057344536799N00613423EA0000002159 +B1057364536792N00613412EA0000002156 +B1057384536785N00613400EA0000002153 +B1057404536779N00613388EA0000002151 +B1057424536771N00613374EA0000002149 +B1057444536763N00613361EA0000002147 +B1057464536756N00613346EA0000002145 +B1057484536749N00613332EA0000002145 +B1057504536743N00613319EA0000002145 +B1057524536738N00613306EA0000002147 +B1057554536732N00613293EA0000002148 +B1057574536727N00613280EA0000002147 +B1057594536720N00613266EA0000002146 +B1058014536712N00613250EA0000002145 +B1058034536705N00613235EA0000002144 +B1058054536698N00613221EA0000002144 +B1058074536692N00613210EA0000002145 +B1058094536685N00613200EA0000002144 +B1058114536678N00613186EA0000002145 +B1058134536669N00613173EA0000002147 +B1058154536662N00613162EA0000002149 +B1058174536656N00613148EA0000002149 +B1058194536648N00613131EA0000002151 +B1058214536640N00613115EA0000002155 +B1058234536636N00613104EA0000002162 +B1058254536631N00613094EA0000002169 +B1058274536624N00613083EA0000002175 +B1058294536617N00613083EA0000002183 +B1058314536610N00613088EA0000002190 +B1058334536605N00613094EA0000002197 +B1058354536603N00613106EA0000002202 +B1058374536607N00613117EA0000002206 +B1058394536614N00613127EA0000002208 +B1058414536625N00613131EA0000002211 +B1058434536637N00613126EA0000002214 +B1058454536645N00613115EA0000002215 +B1058474536649N00613099EA0000002215 +B1058494536649N00613077EA0000002217 +B1058514536647N00613058EA0000002221 +B1058534536645N00613049EA0000002227 +B1058554536644N00613040EA0000002232 +B1058574536640N00613024EA0000002238 +B1058594536635N00613008EA0000002247 +B1059014536629N00613002EA0000002254 +B1059034536622N00613000EA0000002259 +B1059054536611N00612999EA0000002266 +B1059074536604N00613010EA0000002273 +B1059094536605N00613021EA0000002279 +B1059114536616N00613030EA0000002288 +B1059134536621N00613028EA0000002292 +B1059154536629N00613021EA0000002300 +B1059174536638N00613002EA0000002310 +B1059194536641N00612985EA0000002316 +B1059214536643N00612965EA0000002323 +B1059234536642N00612947EA0000002330 +B1059254536639N00612932EA0000002335 +B1059274536635N00612918EA0000002339 +B1059294536628N00612906EA0000002341 +B1059314536618N00612901EA0000002341 +B1059344536610N00612905EA0000002337 +B1059364536603N00612910EA0000002333 +B1059384536595N00612913EA0000002327 +B1059404536585N00612911EA0000002322 +B1059424536577N00612897EA0000002317 +B1059444536579N00612879EA0000002312 +B1059464536590N00612866EA0000002305 +B1059484536604N00612866EA0000002299 +B1059504536614N00612875EA0000002295 +B1059524536624N00612883EA0000002293 +B1059544536634N00612889EA0000002293 +B1059564536645N00612896EA0000002294 +B1059584536656N00612900EA0000002296 +B1100004536666N00612903EA0000002300 +B1100024536675N00612906EA0000002304 +B1100044536684N00612909EA0000002307 +B1100064536696N00612909EA0000002311 +B1100084536706N00612904EA0000002315 +B1100104536716N00612894EA0000002319 +B1100124536723N00612882EA0000002323 +B1100144536723N00612869EA0000002327 +B1100164536720N00612856EA0000002328 +B1100184536716N00612839EA0000002331 +B1100204536711N00612825EA0000002335 +B1100224536707N00612816EA0000002339 +B1100244536703N00612806EA0000002341 +B1100264536697N00612795EA0000002344 +B1100284536693N00612784EA0000002346 +B1100304536688N00612773EA0000002346 +B1100324536683N00612764EA0000002346 +B1100344536678N00612754EA0000002344 +B1100364536672N00612743EA0000002342 +B1100384536666N00612730EA0000002338 +B1100404536660N00612717EA0000002333 +B1100424536653N00612705EA0000002329 +B1100444536647N00612694EA0000002325 +B1100464536641N00612681EA0000002320 +B1100484536634N00612670EA0000002315 +B1100504536626N00612658EA0000002308 +B1100524536617N00612645EA0000002302 +B1100544536607N00612632EA0000002295 +B1100564536596N00612617EA0000002289 +B1100584536580N00612595EA0000002282 +B1101004536571N00612583EA0000002278 +B1101024536561N00612570EA0000002276 +B1101044536555N00612560EA0000002276 +B1101064536548N00612550EA0000002278 +B1101084536540N00612539EA0000002283 +B1101104536535N00612532EA0000002292 +B1101124536529N00612523EA0000002299 +B1101154536524N00612512EA0000002307 +B1101174536520N00612503EA0000002315 +B1101194536517N00612495EA0000002320 +B1101214536512N00612488EA0000002324 +B1101234536506N00612480EA0000002326 +B1101254536500N00612471EA0000002329 +B1101274536494N00612463EA0000002330 +B1101294536487N00612454EA0000002330 +B1101314536480N00612442EA0000002329 +B1101334536474N00612430EA0000002331 +B1101354536468N00612420EA0000002334 +B1101374536465N00612411EA0000002335 +B1101394536462N00612400EA0000002335 +B1101414536456N00612389EA0000002334 +B1101434536450N00612378EA0000002334 +B1101454536443N00612366EA0000002334 +B1101474536435N00612355EA0000002333 +B1101494536428N00612343EA0000002332 +B1101514536420N00612331EA0000002330 +B1101534536412N00612319EA0000002328 +B1101554536404N00612306EA0000002325 +B1101574536395N00612293EA0000002322 +B1101594536385N00612280EA0000002317 +B1102014536374N00612264EA0000002315 +B1102034536364N00612250EA0000002315 +B1102054536357N00612239EA0000002318 +B1102074536352N00612228EA0000002324 +B1102094536346N00612218EA0000002330 +B1102114536339N00612207EA0000002335 +B1102134536332N00612196EA0000002340 +B1102154536328N00612184EA0000002345 +B1102174536326N00612170EA0000002348 +B1102194536322N00612158EA0000002350 +B1102214536315N00612147EA0000002351 +B1102234536308N00612136EA0000002351 +B1102254536301N00612124EA0000002349 +B1102274536293N00612112EA0000002349 +B1102294536286N00612100EA0000002349 +B1102314536276N00612080EA0000002347 +B1102334536268N00612070EA0000002347 +B1102354536261N00612060EA0000002346 +B1102374536257N00612054EA0000002345 +B1102394536245N00612037EA0000002344 +B1102414536236N00612027EA0000002343 +B1102434536227N00612015EA0000002343 +B1102454536219N00612003EA0000002345 +B1102474536212N00611993EA0000002345 +B1102494536204N00611985EA0000002344 +B1102514536194N00611974EA0000002340 +B1102534536184N00611960EA0000002336 +B1102564536174N00611945EA0000002333 +B1102584536164N00611930EA0000002330 +B1103004536156N00611913EA0000002327 +B1103024536147N00611896EA0000002325 +B1103044536140N00611884EA0000002325 +B1103064536135N00611874EA0000002322 +B1103084536127N00611862EA0000002319 +B1103104536117N00611848EA0000002318 +B1103124536109N00611836EA0000002316 +B1103144536100N00611821EA0000002313 +B1103164536092N00611804EA0000002312 +B1103184536084N00611788EA0000002310 +B1103204536075N00611771EA0000002305 +B1103224536065N00611751EA0000002303 +B1103244536055N00611733EA0000002300 +B1103264536045N00611715EA0000002296 +B1103284536036N00611696EA0000002292 +B1103304536026N00611675EA0000002290 +B1103324536018N00611656EA0000002288 +B1103344536011N00611634EA0000002285 +B1103364536003N00611611EA0000002282 +B1103384535996N00611587EA0000002281 +B1103404535989N00611565EA0000002281 +B1103424535982N00611545EA0000002282 +B1103444535977N00611525EA0000002284 +B1103464535971N00611509EA0000002284 +B1103484535963N00611493EA0000002283 +B1103504535953N00611474EA0000002279 +B1103524535945N00611451EA0000002278 +B1103544535937N00611430EA0000002277 +B1103564535930N00611411EA0000002274 +B1103584535921N00611388EA0000002269 +B1104004535911N00611365EA0000002267 +B1104024535903N00611345EA0000002265 +B1104044535893N00611328EA0000002263 +B1104064535883N00611312EA0000002263 +B1104084535876N00611299EA0000002261 +B1104104535867N00611284EA0000002259 +B1104124535857N00611269EA0000002258 +B1104144535843N00611245EA0000002254 +B1104164535833N00611227EA0000002253 +B1104184535825N00611210EA0000002253 +B1104204535819N00611192EA0000002251 +B1104224535813N00611173EA0000002248 +B1104244535806N00611153EA0000002247 +B1104264535801N00611134EA0000002244 +B1104284535796N00611115EA0000002241 +B1104304535789N00611095EA0000002239 +B1104324535783N00611076EA0000002237 +B1104344535778N00611057EA0000002235 +B1104374535772N00611038EA0000002233 +B1104394535768N00611018EA0000002230 +B1104414535763N00610998EA0000002226 +B1104434535759N00610976EA0000002223 +B1104454535754N00610955EA0000002220 +B1104474535750N00610935EA0000002216 +B1104494535744N00610913EA0000002212 +B1104514535738N00610893EA0000002209 +B1104534535734N00610874EA0000002207 +B1104554535731N00610855EA0000002203 +B1104574535726N00610833EA0000002200 +B1104594535721N00610812EA0000002199 +B1105014535721N00610812EA0000002200 +B1105034535717N00610778EA0000002203 +B1105054535715N00610765EA0000002208 +B1105074535712N00610749EA0000002214 +B1105094535708N00610734EA0000002218 +B1105114535705N00610719EA0000002221 +B1105134535702N00610701EA0000002222 +B1105154535698N00610682EA0000002224 +B1105174535695N00610664EA0000002227 +B1105194535691N00610647EA0000002228 +B1105214535687N00610629EA0000002232 +B1105234535682N00610611EA0000002235 +B1105254535678N00610596EA0000002238 +B1105274535674N00610580EA0000002238 +B1105294535669N00610562EA0000002238 +B1105314535663N00610544EA0000002239 +B1105334535656N00610526EA0000002240 +B1105354535651N00610508EA0000002240 +B1105374535646N00610489EA0000002241 +B1105394535641N00610471EA0000002242 +B1105414535636N00610453EA0000002243 +B1105434535631N00610434EA0000002243 +B1105454535627N00610413EA0000002244 +B1105474535624N00610391EA0000002246 +B1105494535620N00610371EA0000002249 +B1105514535617N00610347EA0000002251 +B1105534535615N00610329EA0000002250 +B1105554535613N00610311EA0000002251 +B1105574535611N00610297EA0000002251 +B1105594535608N00610282EA0000002249 +B1106014535604N00610263EA0000002246 +B1106034535602N00610246EA0000002246 +B1106054535600N00610231EA0000002243 +B1106074535597N00610215EA0000002240 +B1106094535593N00610197EA0000002235 +B1106124535590N00610178EA0000002232 +B1106144535586N00610162EA0000002228 +B1106164535581N00610148EA0000002223 +B1106184535576N00610131EA0000002218 +B1106204535571N00610115EA0000002214 +B1106224535568N00610099EA0000002209 +B1106244535568N00610083EA0000002204 +B1106264535567N00610066EA0000002198 +B1106284535563N00610049EA0000002194 +B1106304535558N00610031EA0000002190 +B1106324535555N00610023EA0000002188 +B1106344535549N00610000EA0000002185 +B1106364535545N00609984EA0000002180 +B1106384535540N00609966EA0000002177 +B1106404535537N00609949EA0000002175 +B1106424535532N00609934EA0000002172 +B1106444535527N00609917EA0000002167 +B1106464535519N00609899EA0000002165 +B1106484535513N00609882EA0000002163 +B1106504535508N00609865EA0000002160 +B1106524535503N00609845EA0000002158 +B1106544535499N00609825EA0000002158 +B1106564535495N00609808EA0000002156 +B1106584535491N00609790EA0000002155 +B1107004535487N00609770EA0000002154 +B1107024535486N00609752EA0000002154 +B1107044535484N00609735EA0000002153 +B1107064535482N00609715EA0000002150 +B1107084535480N00609692EA0000002149 +B1107104535478N00609672EA0000002149 +B1107124535477N00609653EA0000002147 +B1107144535475N00609632EA0000002144 +B1107164535473N00609608EA0000002143 +B1107184535473N00609588EA0000002142 +B1107204535473N00609568EA0000002138 +B1107224535472N00609545EA0000002135 +B1107244535471N00609513EA0000002130 +B1107264535471N00609492EA0000002125 +B1107284535470N00609470EA0000002121 +B1107304535470N00609447EA0000002118 +B1107324535471N00609425EA0000002115 +B1107344535471N00609404EA0000002113 +B1107364535471N00609382EA0000002110 +B1107384535470N00609360EA0000002107 +B1107404535471N00609339EA0000002104 +B1107424535471N00609317EA0000002101 +B1107444535470N00609295EA0000002099 +B1107464535469N00609273EA0000002098 +B1107494535467N00609253EA0000002096 +B1107514535466N00609231EA0000002095 +B1107534535465N00609209EA0000002094 +B1107554535464N00609188EA0000002093 +B1107574535462N00609167EA0000002091 +B1107594535461N00609146EA0000002088 +B1108014535461N00609125EA0000002086 +B1108034535459N00609104EA0000002084 +B1108054535459N00609084EA0000002084 +B1108074535459N00609065EA0000002084 +B1108094535459N00609048EA0000002082 +B1108114535459N00609031EA0000002078 +B1108134535460N00609022EA0000002076 +B1108154535462N00608991EA0000002071 +B1108174535463N00608972EA0000002069 +B1108194535463N00608955EA0000002066 +B1108214535464N00608936EA0000002062 +B1108234535466N00608917EA0000002060 +B1108254535468N00608898EA0000002057 +B1108274535469N00608880EA0000002055 +B1108294535470N00608863EA0000002053 +B1108314535471N00608845EA0000002051 +B1108334535470N00608827EA0000002048 +B1108354535469N00608808EA0000002046 +B1108374535468N00608789EA0000002044 +B1108394535467N00608771EA0000002042 +B1108414535466N00608753EA0000002040 +B1108434535464N00608734EA0000002038 +B1108454535463N00608716EA0000002035 +B1108474535461N00608697EA0000002032 +B1108494535460N00608679EA0000002030 +B1108514535457N00608661EA0000002029 +B1108534535454N00608644EA0000002026 +B1108554535451N00608625EA0000002023 +B1108574535449N00608606EA0000002022 +B1108594535447N00608589EA0000002020 +B1109014535444N00608571EA0000002018 +B1109034535442N00608552EA0000002016 +B1109054535439N00608525EA0000002014 +B1109074535436N00608506EA0000002012 +B1109094535433N00608489EA0000002010 +B1109114535431N00608471EA0000002007 +B1109134535429N00608452EA0000002006 +B1109154535428N00608434EA0000002005 +B1109174535427N00608416EA0000002003 +B1109194535426N00608399EA0000002001 +B1109214535425N00608380EA0000002000 +B1109234535426N00608362EA0000001999 +B1109254535426N00608345EA0000001997 +B1109284535425N00608327EA0000001996 +B1109304535425N00608309EA0000001994 +B1109324535425N00608291EA0000001993 +B1109344535424N00608274EA0000001992 +B1109364535424N00608256EA0000001990 +B1109384535424N00608238EA0000001988 +B1109404535423N00608219EA0000001985 +B1109424535423N00608197EA0000001982 +B1109444535423N00608176EA0000001980 +B1109464535422N00608156EA0000001977 +B1109484535423N00608135EA0000001973 +B1109504535424N00608113EA0000001970 +B1109524535425N00608091EA0000001968 +B1109544535426N00608070EA0000001965 +B1109564535428N00608048EA0000001962 +B1109584535431N00608026EA0000001960 +B1110004535434N00608004EA0000001957 +B1110024535436N00607984EA0000001954 +B1110044535439N00607962EA0000001949 +B1110064535442N00607940EA0000001946 +B1110084535446N00607919EA0000001943 +B1110104535448N00607899EA0000001940 +B1110124535450N00607879EA0000001936 +B1110144535453N00607857EA0000001932 +B1110164535455N00607835EA0000001929 +B1110184535456N00607814EA0000001925 +B1110204535457N00607792EA0000001920 +B1110224535458N00607768EA0000001917 +B1110244535458N00607746EA0000001915 +B1110264535458N00607724EA0000001913 +B1110284535460N00607702EA0000001909 +B1110304535463N00607680EA0000001906 +B1110324535467N00607658EA0000001905 +B1110344535469N00607639EA0000001903 +B1110364535471N00607619EA0000001899 +B1110384535474N00607598EA0000001895 +B1110404535479N00607567EA0000001891 +B1110424535482N00607549EA0000001887 +B1110444535485N00607529EA0000001882 +B1110464535488N00607509EA0000001879 +B1110484535491N00607490EA0000001875 +B1110504535494N00607472EA0000001871 +B1110524535497N00607454EA0000001866 +B1110544535500N00607435EA0000001862 +B1110564535504N00607418EA0000001857 +B1110584535509N00607399EA0000001852 +B1111004535513N00607379EA0000001849 +B1111024535518N00607363EA0000001847 +B1111044535522N00607346EA0000001844 +B1111074535527N00607326EA0000001841 +B1111094535532N00607306EA0000001840 +B1111114535535N00607289EA0000001839 +B1111134535539N00607271EA0000001836 +B1111154535544N00607251EA0000001834 +B1111174535549N00607232EA0000001834 +B1111194535554N00607215EA0000001832 +B1111214535559N00607200EA0000001828 +B1111234535563N00607182EA0000001827 +B1111254535566N00607167EA0000001826 +B1111274535568N00607153EA0000001823 +B1111294535571N00607136EA0000001820 +B1111314535574N00607120EA0000001819 +B1111334535576N00607107EA0000001816 +B1111354535579N00607091EA0000001812 +B1111374535582N00607074EA0000001810 +B1111394535585N00607060EA0000001808 +B1111414535588N00607048EA0000001804 +B1111434535591N00607033EA0000001799 +B1111454535593N00607015EA0000001794 +B1111474535596N00606994EA0000001790 +B1111494535599N00606978EA0000001788 +B1111514535601N00606962EA0000001785 +B1111534535604N00606943EA0000001782 +B1111554535609N00606925EA0000001780 +B1111574535615N00606909EA0000001778 +B1111594535621N00606893EA0000001775 +B1112014535626N00606876EA0000001773 +B1112034535632N00606859EA0000001771 +B1112054535639N00606844EA0000001771 +B1112074535643N00606829EA0000001770 +B1112094535648N00606814EA0000001767 +B1112114535654N00606798EA0000001766 +B1112134535659N00606784EA0000001765 +B1112154535666N00606773EA0000001765 +B1112174535673N00606763EA0000001765 +B1112194535679N00606752EA0000001767 +B1112214535683N00606741EA0000001771 +B1112234535685N00606733EA0000001771 +B1112254535689N00606721EA0000001773 +B1112274535696N00606718EA0000001777 +B1112294535702N00606720EA0000001779 +B1112314535710N00606724EA0000001779 +B1112334535717N00606734EA0000001780 +B1112354535720N00606749EA0000001781 +B1112374535719N00606762EA0000001783 +B1112394535715N00606773EA0000001788 +B1112414535710N00606784EA0000001794 +B1112434535702N00606792EA0000001800 +B1112464535693N00606791EA0000001805 +B1112484535686N00606783EA0000001808 +B1112504535685N00606770EA0000001812 +B1112524535690N00606760EA0000001816 +B1112544535696N00606758EA0000001819 +B1112564535704N00606761EA0000001821 +B1112584535712N00606770EA0000001824 +B1113004535715N00606785EA0000001827 +B1113024535713N00606799EA0000001832 +B1113044535710N00606809EA0000001840 +B1113064535704N00606817EA0000001846 +B1113084535695N00606822EA0000001852 +B1113104535687N00606820EA0000001856 +B1113124535681N00606815EA0000001859 +B1113144535678N00606807EA0000001861 +B1113164535679N00606796EA0000001862 +B1113184535690N00606788EA0000001863 +B1113204535699N00606791EA0000001864 +B1113224535706N00606799EA0000001865 +B1113244535714N00606806EA0000001866 +B1113264535723N00606813EA0000001869 +B1113284535729N00606819EA0000001875 +B1113304535733N00606823EA0000001880 +B1113324535739N00606833EA0000001885 +B1113344535738N00606848EA0000001890 +B1113364535727N00606862EA0000001895 +B1113384535715N00606862EA0000001901 +B1113404535707N00606852EA0000001907 +B1113424535706N00606836EA0000001913 +B1113444535714N00606829EA0000001919 +B1113464535722N00606829EA0000001925 +B1113484535728N00606840EA0000001932 +B1113504535727N00606855EA0000001936 +B1113524535719N00606869EA0000001941 +B1113544535705N00606873EA0000001946 +B1113564535693N00606866EA0000001952 +B1113584535686N00606854EA0000001957 +B1114004535689N00606839EA0000001962 +B1114024535695N00606832EA0000001964 +B1114044535704N00606835EA0000001967 +B1114064535707N00606851EA0000001969 +B1114084535698N00606866EA0000001973 +B1114104535686N00606868EA0000001978 +B1114124535677N00606862EA0000001980 +B1114144535670N00606855EA0000001981 +B1114164535666N00606844EA0000001981 +B1114184535666N00606831EA0000001980 +B1114204535675N00606820EA0000001980 +B1114224535687N00606821EA0000001979 +B1114254535694N00606828EA0000001980 +B1114274535699N00606835EA0000001982 +B1114294535703N00606842EA0000001981 +B1114314535710N00606853EA0000001982 +B1114334535720N00606864EA0000001984 +B1114354535728N00606872EA0000001988 +B1114374535735N00606881EA0000001995 +B1114394535739N00606893EA0000002003 +B1114414535736N00606908EA0000002008 +B1114434535730N00606924EA0000002014 +B1114454535720N00606933EA0000002021 +B1114474535708N00606934EA0000002027 +B1114494535700N00606927EA0000002034 +B1114514535699N00606916EA0000002040 +B1114534535702N00606907EA0000002046 +B1114554535707N00606901EA0000002055 +B1114574535711N00606898EA0000002062 +B1114594535718N00606898EA0000002069 +B1115014535726N00606906EA0000002074 +B1115034535730N00606923EA0000002079 +B1115054535727N00606939EA0000002085 +B1115074535721N00606951EA0000002093 +B1115094535712N00606956EA0000002101 +B1115114535702N00606958EA0000002108 +B1115134535693N00606957EA0000002114 +B1115154535685N00606950EA0000002120 +B1115174535683N00606939EA0000002125 +B1115194535685N00606929EA0000002131 +B1115214535692N00606924EA0000002135 +B1115234535698N00606920EA0000002140 +B1115254535707N00606917EA0000002144 +B1115274535717N00606915EA0000002150 +B1115294535726N00606917EA0000002156 +B1115314535731N00606927EA0000002162 +B1115334535732N00606941EA0000002169 +B1115354535732N00606956EA0000002176 +B1115374535728N00606972EA0000002182 +B1115394535720N00606982EA0000002187 +B1115414535708N00606984EA0000002189 +B1115434535703N00606975EA0000002189 +B1115454535702N00606964EA0000002192 +B1115474535703N00606954EA0000002195 +B1115494535704N00606944EA0000002199 +B1115514535707N00606933EA0000002203 +B1115534535712N00606923EA0000002207 +B1115554535718N00606914EA0000002213 +B1115574535724N00606912EA0000002217 +B1115594535732N00606911EA0000002220 +B1116014535743N00606913EA0000002226 +B1116034535747N00606923EA0000002232 +B1116064535749N00606937EA0000002238 +B1116084535747N00606948EA0000002243 +B1116104535740N00606956EA0000002248 +B1116124535731N00606960EA0000002251 +B1116144535720N00606961EA0000002252 +B1116164535711N00606952EA0000002253 +B1116184535707N00606938EA0000002256 +B1116204535707N00606925EA0000002258 +B1116224535708N00606912EA0000002260 +B1116244535712N00606900EA0000002261 +B1116264535718N00606891EA0000002261 +B1116284535727N00606886EA0000002261 +B1116304535732N00606885EA0000002262 +B1116324535747N00606889EA0000002265 +B1116344535755N00606893EA0000002269 +B1116364535763N00606894EA0000002276 +B1116384535771N00606894EA0000002283 +B1116404535777N00606892EA0000002290 +B1116424535783N00606893EA0000002295 +B1116444535789N00606900EA0000002298 +B1116464535793N00606913EA0000002300 +B1116484535788N00606929EA0000002301 +B1116504535776N00606941EA0000002304 +B1116524535765N00606940EA0000002308 +B1116544535756N00606935EA0000002313 +B1116564535748N00606929EA0000002317 +B1116584535741N00606920EA0000002321 +B1117004535736N00606910EA0000002325 +B1117024535733N00606898EA0000002329 +B1117044535733N00606886EA0000002334 +B1117064535736N00606876EA0000002338 +B1117084535744N00606870EA0000002341 +B1117104535753N00606876EA0000002345 +B1117124535758N00606889EA0000002349 +B1117144535758N00606903EA0000002353 +B1117164535751N00606914EA0000002357 +B1117184535740N00606918EA0000002362 +B1117204535730N00606914EA0000002367 +B1117224535721N00606900EA0000002371 +B1117244535720N00606886EA0000002373 +B1117264535725N00606873EA0000002376 +B1117284535731N00606865EA0000002378 +B1117304535737N00606858EA0000002380 +B1117324535744N00606849EA0000002382 +B1117344535751N00606844EA0000002383 +B1117364535760N00606846EA0000002384 +B1117384535768N00606852EA0000002386 +B1117404535770N00606864EA0000002388 +B1117424535765N00606878EA0000002390 +B1117444535753N00606884EA0000002394 +B1117474535742N00606882EA0000002398 +B1117494535734N00606874EA0000002400 +B1117514535730N00606862EA0000002402 +B1117534535732N00606847EA0000002403 +B1117554535736N00606835EA0000002404 +B1117574535742N00606822EA0000002406 +B1117594535747N00606810EA0000002409 +B1118014535752N00606797EA0000002412 +B1118034535757N00606785EA0000002415 +B1118054535761N00606775EA0000002418 +B1118074535766N00606765EA0000002421 +B1118094535770N00606754EA0000002423 +B1118114535775N00606745EA0000002425 +B1118134535782N00606739EA0000002426 +B1118154535792N00606742EA0000002428 +B1118174535798N00606751EA0000002432 +B1118194535800N00606762EA0000002435 +B1118214535797N00606774EA0000002438 +B1118234535792N00606784EA0000002442 +B1118254535784N00606788EA0000002444 +B1118274535774N00606790EA0000002446 +B1118294535762N00606786EA0000002448 +B1118314535754N00606774EA0000002449 +B1118334535751N00606759EA0000002450 +B1118354535754N00606745EA0000002452 +B1118374535758N00606732EA0000002452 +B1118394535763N00606721EA0000002453 +B1118414535767N00606709EA0000002453 +B1118434535770N00606697EA0000002453 +B1118454535774N00606683EA0000002452 +B1118474535775N00606668EA0000002451 +B1118494535774N00606653EA0000002451 +B1118514535773N00606638EA0000002450 +B1118534535774N00606621EA0000002449 +B1118554535775N00606605EA0000002448 +B1118574535775N00606590EA0000002447 +B1118594535774N00606575EA0000002444 +B1119014535777N00606548EA0000002441 +B1119034535779N00606531EA0000002441 +B1119054535780N00606516EA0000002438 +B1119074535781N00606500EA0000002436 +B1119094535780N00606484EA0000002435 +B1119114535780N00606468EA0000002434 +B1119134535780N00606453EA0000002434 +B1119154535779N00606439EA0000002435 +B1119174535776N00606426EA0000002434 +B1119194535772N00606413EA0000002433 +B1119214535768N00606399EA0000002433 +B1119234535763N00606386EA0000002431 +B1119254535759N00606372EA0000002429 +B1119284535756N00606353EA0000002426 +B1119304535752N00606335EA0000002425 +B1119324535747N00606320EA0000002422 +B1119344535742N00606303EA0000002419 +B1119364535736N00606286EA0000002417 +B1119384535731N00606270EA0000002414 +B1119404535726N00606253EA0000002412 +B1119424535721N00606235EA0000002409 +B1119444535714N00606219EA0000002408 +B1119464535710N00606202EA0000002407 +B1119484535704N00606185EA0000002404 +B1119504535697N00606166EA0000002401 +B1119524535688N00606145EA0000002399 +B1119544535681N00606123EA0000002398 +B1119564535675N00606102EA0000002395 +B1119584535667N00606083EA0000002393 +B1120004535659N00606066EA0000002391 +B1120024535651N00606047EA0000002387 +B1120044535643N00606027EA0000002381 +B1120064535633N00606006EA0000002378 +B1120084535623N00605989EA0000002375 +B1120104535612N00605974EA0000002372 +B1120124535600N00605958EA0000002367 +B1120144535586N00605943EA0000002365 +B1120164535573N00605932EA0000002364 +B1120184535562N00605918EA0000002362 +B1120204535552N00605901EA0000002358 +B1120224535539N00605886EA0000002354 +B1120244535525N00605873EA0000002352 +B1120264535514N00605857EA0000002348 +B1120284535504N00605841EA0000002343 +B1120304535491N00605827EA0000002339 +B1120324535478N00605812EA0000002336 +B1120344535467N00605797EA0000002332 +B1120364535454N00605784EA0000002328 +B1120384535441N00605770EA0000002325 +B1120404535428N00605756EA0000002322 +B1120424535409N00605736EA0000002316 +B1120444535396N00605723EA0000002312 +B1120464535384N00605709EA0000002308 +B1120484535371N00605697EA0000002304 +B1120504535358N00605685EA0000002300 +B1120524535346N00605671EA0000002296 +B1120544535335N00605656EA0000002292 +B1120564535324N00605642EA0000002288 +B1120584535313N00605626EA0000002283 +B1121004535301N00605609EA0000002279 +B1121024535289N00605593EA0000002277 +B1121044535279N00605577EA0000002274 +B1121074535267N00605561EA0000002271 +B1121094535255N00605545EA0000002269 +B1121114535243N00605530EA0000002267 +B1121134535232N00605514EA0000002265 +B1121154535220N00605499EA0000002264 +B1121174535208N00605483EA0000002264 +B1121194535197N00605467EA0000002262 +B1121214535187N00605449EA0000002260 +B1121234535176N00605431EA0000002259 +B1121254535164N00605414EA0000002259 +B1121274535152N00605398EA0000002258 +B1121294535141N00605381EA0000002257 +B1121314535128N00605364EA0000002258 +B1121334535115N00605349EA0000002258 +B1121354535103N00605333EA0000002257 +B1121374535090N00605317EA0000002256 +B1121394535075N00605302EA0000002256 +B1121414535062N00605287EA0000002256 +B1121434535050N00605271EA0000002255 +B1121454535036N00605255EA0000002252 +B1121474535022N00605240EA0000002252 +B1121494535009N00605224EA0000002251 +B1121514534996N00605209EA0000002248 +B1121534534982N00605194EA0000002245 +B1121554534969N00605179EA0000002242 +B1121574534955N00605164EA0000002240 +B1121594534942N00605151EA0000002238 +B1122014534929N00605137EA0000002235 +B1122034534915N00605123EA0000002231 +B1122054534901N00605108EA0000002228 +B1122074534888N00605093EA0000002226 +B1122094534874N00605079EA0000002223 +B1122114534861N00605065EA0000002220 +B1122134534847N00605050EA0000002217 +B1122154534834N00605033EA0000002214 +B1122174534821N00605019EA0000002212 +B1122194534807N00605005EA0000002208 +B1122214534793N00604990EA0000002205 +B1122234534779N00604976EA0000002203 +B1122254534759N00604956EA0000002198 +B1122274534745N00604942EA0000002196 +B1122294534731N00604928EA0000002193 +B1122314534718N00604914EA0000002190 +B1122334534704N00604901EA0000002187 +B1122354534691N00604887EA0000002184 +B1122374534677N00604873EA0000002182 +B1122394534664N00604859EA0000002179 +B1122414534651N00604845EA0000002177 +B1122434534637N00604831EA0000002174 +B1122454534624N00604818EA0000002172 +B1122484534611N00604805EA0000002169 +B1122504534598N00604792EA0000002166 +B1122524534584N00604778EA0000002164 +B1122544534571N00604764EA0000002161 +B1122564534558N00604750EA0000002158 +B1122584534545N00604736EA0000002155 +B1123004534531N00604723EA0000002152 +B1123024534518N00604709EA0000002149 +B1123044534505N00604696EA0000002146 +B1123064534492N00604683EA0000002143 +B1123084534478N00604671EA0000002140 +B1123104534465N00604658EA0000002136 +B1123124534452N00604645EA0000002133 +B1123144534445N00604638EA0000002131 +B1123164534426N00604619EA0000002128 +B1123184534413N00604607EA0000002125 +B1123204534400N00604594EA0000002123 +B1123224534386N00604582EA0000002120 +B1123244534373N00604570EA0000002118 +B1123264534359N00604558EA0000002115 +B1123284534346N00604545EA0000002113 +B1123304534333N00604532EA0000002110 +B1123324534320N00604519EA0000002108 +B1123344534307N00604507EA0000002105 +B1123364534294N00604495EA0000002102 +B1123384534280N00604483EA0000002099 +B1123404534266N00604471EA0000002096 +B1123424534252N00604460EA0000002093 +B1123444534239N00604448EA0000002091 +B1123464534226N00604437EA0000002089 +B1123484534213N00604426EA0000002086 +B1123504534200N00604414EA0000002083 +B1123524534187N00604402EA0000002079 +B1123544534174N00604388EA0000002076 +B1123564534162N00604376EA0000002072 +B1123584534149N00604363EA0000002070 +B1124004534137N00604350EA0000002067 +B1124024534125N00604337EA0000002065 +B1124044534113N00604326EA0000002063 +B1124064534094N00604309EA0000002060 +B1124084534080N00604299EA0000002059 +B1124104534067N00604288EA0000002057 +B1124124534052N00604277EA0000002055 +B1124144534039N00604267EA0000002054 +B1124164534025N00604256EA0000002052 +B1124184534012N00604246EA0000002050 +B1124204533997N00604238EA0000002048 +B1124224533986N00604233EA0000002048 +B1124244533979N00604228EA0000002049 +B1124264533970N00604221EA0000002050 +B1124294533959N00604212EA0000002051 +B1124314533949N00604204EA0000002053 +B1124334533939N00604197EA0000002059 +B1124354533930N00604187EA0000002061 +B1124374533924N00604171EA0000002064 +B1124394533918N00604158EA0000002066 +B1124414533912N00604146EA0000002066 +B1124434533908N00604129EA0000002067 +B1124454533911N00604111EA0000002069 +B1124474533921N00604101EA0000002070 +B1124494533932N00604100EA0000002071 +B1124514533942N00604104EA0000002072 +B1124534533951N00604109EA0000002074 +B1124554533958N00604112EA0000002075 +B1124574533966N00604116EA0000002077 +B1124594533972N00604122EA0000002081 +B1125014533975N00604130EA0000002086 +B1125034533978N00604136EA0000002090 +B1125054533979N00604145EA0000002092 +B1125074533974N00604156EA0000002097 +B1125094533962N00604158EA0000002101 +B1125114533953N00604148EA0000002105 +B1125134533952N00604128EA0000002109 +B1125154533961N00604114EA0000002111 +B1125174533973N00604116EA0000002114 +B1125194533979N00604122EA0000002118 +B1125214533977N00604133EA0000002124 +B1125234533973N00604138EA0000002128 +B1125254533967N00604141EA0000002131 +B1125274533955N00604139EA0000002133 +B1125294533944N00604126EA0000002136 +B1125314533943N00604107EA0000002140 +B1125334533952N00604093EA0000002143 +B1125354533964N00604091EA0000002147 +B1125374533970N00604099EA0000002151 +B1125394533970N00604107EA0000002154 +B1125414533963N00604113EA0000002157 +B1125434533950N00604109EA0000002159 +B1125454533936N00604089EA0000002162 +B1125474533937N00604069EA0000002164 +B1125494533944N00604053EA0000002167 +B1125514533954N00604050EA0000002168 +B1125534533962N00604058EA0000002170 +B1125554533962N00604068EA0000002173 +B1125574533958N00604075EA0000002177 +B1125594533955N00604082EA0000002180 +B1126014533955N00604089EA0000002183 +B1126034533953N00604095EA0000002184 +B1126054533947N00604100EA0000002184 +B1126074533937N00604104EA0000002184 +B1126104533926N00604097EA0000002185 +B1126124533916N00604082EA0000002185 +B1126144533914N00604063EA0000002183 +B1126164533921N00604051EA0000002181 +B1126184533932N00604052EA0000002179 +B1126204533936N00604058EA0000002177 +B1126224533938N00604065EA0000002176 +B1126244533938N00604072EA0000002177 +B1126264533937N00604079EA0000002178 +B1126284533936N00604088EA0000002180 +B1126304533929N00604092EA0000002181 +B1126324533920N00604092EA0000002182 +B1126344533908N00604083EA0000002181 +B1126364533901N00604067EA0000002180 +B1126384533903N00604049EA0000002178 +B1126404533913N00604038EA0000002175 +B1126424533923N00604033EA0000002173 +B1126444533931N00604033EA0000002172 +B1126464533936N00604034EA0000002171 +B1126484533941N00604038EA0000002170 +B1126504533945N00604045EA0000002169 +B1126524533944N00604053EA0000002169 +B1126544533938N00604059EA0000002168 +B1126564533929N00604059EA0000002167 +B1126584533919N00604056EA0000002165 +B1127004533907N00604051EA0000002163 +B1127024533894N00604046EA0000002161 +B1127044533883N00604041EA0000002161 +B1127064533873N00604035EA0000002160 +B1127084533861N00604027EA0000002158 +B1127104533850N00604020EA0000002153 +B1127124533837N00604013EA0000002149 +B1127144533825N00604002EA0000002144 +B1127164533812N00603992EA0000002139 +B1127184533799N00603984EA0000002135 +B1127204533786N00603975EA0000002133 +B1127224533773N00603968EA0000002130 +B1127244533762N00603961EA0000002127 +B1127264533743N00603947EA0000002121 +B1127284533730N00603939EA0000002118 +B1127304533717N00603929EA0000002115 +B1127324533706N00603920EA0000002112 +B1127344533694N00603913EA0000002108 +B1127364533681N00603905EA0000002104 +B1127384533668N00603896EA0000002102 +B1127404533657N00603888EA0000002100 +B1127424533646N00603881EA0000002096 +B1127444533634N00603872EA0000002093 +B1127474533622N00603862EA0000002091 +B1127494533612N00603853EA0000002087 +B1127514533601N00603844EA0000002082 +B1127534533588N00603834EA0000002079 +B1127554533577N00603825EA0000002076 +B1127574533566N00603816EA0000002073 +B1127594533555N00603807EA0000002069 +B1128014533544N00603799EA0000002066 +B1128034533534N00603792EA0000002062 +B1128054533523N00603785EA0000002057 +B1128074533510N00603779EA0000002054 +B1128094533498N00603771EA0000002051 +B1128114533488N00603764EA0000002048 +B1128134533476N00603759EA0000002046 +B1128154533465N00603752EA0000002044 +B1128174533454N00603745EA0000002043 +B1128194533441N00603739EA0000002042 +B1128214533429N00603733EA0000002042 +B1128234533418N00603727EA0000002041 +B1128254533407N00603720EA0000002040 +B1128274533395N00603711EA0000002041 +B1128294533384N00603702EA0000002040 +B1128314533374N00603694EA0000002038 +B1128334533362N00603685EA0000002037 +B1128354533351N00603676EA0000002037 +B1128374533341N00603669EA0000002035 +B1128394533331N00603661EA0000002032 +B1128414533321N00603653EA0000002032 +B1128434533312N00603646EA0000002032 +B1128454533305N00603640EA0000002031 +B1128474533296N00603633EA0000002031 +B1128494533287N00603623EA0000002033 +B1128514533278N00603613EA0000002036 +B1128534533271N00603607EA0000002041 +B1128554533266N00603607EA0000002045 +B1128574533262N00603611EA0000002047 +B1128594533264N00603622EA0000002048 +B1129014533271N00603633EA0000002050 +B1129034533286N00603637EA0000002054 +B1129054533298N00603628EA0000002056 +B1129074533306N00603614EA0000002059 +B1129094533309N00603596EA0000002060 +B1129114533306N00603578EA0000002062 +B1129134533301N00603566EA0000002063 +B1129154533294N00603556EA0000002064 +B1129174533288N00603547EA0000002063 +B1129194533281N00603540EA0000002062 +B1129214533273N00603533EA0000002061 +B1129234533265N00603527EA0000002060 +B1129264533257N00603523EA0000002058 +B1129284533247N00603520EA0000002056 +B1129304533237N00603515EA0000002055 +B1129324533228N00603509EA0000002053 +B1129344533219N00603503EA0000002051 +B1129364533210N00603499EA0000002050 +B1129384533201N00603497EA0000002049 +B1129404533194N00603497EA0000002046 +B1129424533185N00603501EA0000002043 +B1129444533175N00603510EA0000002042 +B1129464533165N00603517EA0000002043 +B1129484533159N00603518EA0000002045 +B1129504533154N00603519EA0000002045 +B1129524533145N00603520EA0000002046 +B1129544533137N00603523EA0000002048 +B1129564533132N00603532EA0000002050 +B1129584533127N00603542EA0000002053 +B1130004533124N00603554EA0000002056 +B1130024533126N00603566EA0000002062 +B1130044533133N00603576EA0000002068 +B1130064533142N00603582EA0000002073 +B1130084533155N00603576EA0000002077 +B1130104533162N00603562EA0000002082 +B1130124533161N00603548EA0000002087 +B1130144533155N00603539EA0000002092 +B1130164533146N00603538EA0000002097 +B1130184533138N00603545EA0000002104 +B1130204533135N00603555EA0000002110 +B1130224533137N00603566EA0000002115 +B1130244533142N00603575EA0000002118 +B1130264533151N00603577EA0000002121 +B1130284533162N00603565EA0000002123 +B1130304533164N00603549EA0000002126 +B1130324533160N00603535EA0000002129 +B1130344533152N00603526EA0000002134 +B1130364533145N00603521EA0000002138 +B1130384533137N00603516EA0000002141 +B1130404533127N00603512EA0000002146 +B1130424533119N00603521EA0000002149 +B1130444533114N00603539EA0000002158 +B1130464533118N00603545EA0000002164 +B1130484533127N00603548EA0000002167 +B1130504533138N00603542EA0000002169 +B1130524533144N00603527EA0000002171 +B1130544533146N00603509EA0000002172 +B1130564533141N00603493EA0000002175 +B1130584533131N00603485EA0000002179 +B1131004533122N00603481EA0000002184 +B1131024533115N00603478EA0000002187 +B1131054533106N00603479EA0000002189 +B1131074533100N00603489EA0000002191 +B1131094533102N00603499EA0000002194 +B1131114533110N00603503EA0000002196 +B1131134533120N00603493EA0000002197 +B1131154533125N00603474EA0000002198 +B1131174533120N00603454EA0000002199 +B1131194533110N00603440EA0000002201 +B1131214533099N00603431EA0000002205 +B1131234533092N00603422EA0000002206 +B1131254533083N00603414EA0000002206 +B1131274533072N00603414EA0000002205 +B1131294533066N00603422EA0000002202 +B1131314533063N00603430EA0000002198 +B1131334533062N00603439EA0000002195 +B1131354533066N00603447EA0000002193 +B1131374533072N00603452EA0000002193 +B1131394533076N00603455EA0000002193 +B1131414533080N00603459EA0000002191 +B1131434533087N00603459EA0000002189 +B1131454533096N00603446EA0000002186 +B1131474533101N00603429EA0000002185 +B1131494533100N00603409EA0000002184 +B1131514533096N00603391EA0000002183 +B1131534533086N00603379EA0000002182 +B1131554533075N00603370EA0000002180 +B1131574533063N00603359EA0000002177 +B1131594533051N00603348EA0000002173 +B1132014533038N00603337EA0000002168 +B1132034533027N00603324EA0000002162 +B1132054533017N00603311EA0000002155 +B1132074533006N00603300EA0000002149 +B1132094532996N00603285EA0000002143 +B1132114532986N00603269EA0000002139 +B1132134532977N00603254EA0000002135 +B1132154532967N00603238EA0000002130 +B1132174532957N00603221EA0000002124 +B1132194532937N00603199EA0000002116 +B1132214532923N00603187EA0000002112 +B1132234532910N00603175EA0000002106 +B1132254532897N00603160EA0000002101 +B1132274532883N00603146EA0000002097 +B1132294532871N00603133EA0000002093 +B1132314532858N00603120EA0000002087 +B1132334532844N00603105EA0000002083 +B1132354532832N00603091EA0000002079 +B1132374532819N00603077EA0000002075 +B1132394532806N00603064EA0000002070 +B1132414532792N00603050EA0000002065 +B1132444532779N00603037EA0000002059 +B1132464532766N00603021EA0000002054 +B1132484532754N00603008EA0000002049 +B1132504532741N00602995EA0000002043 +B1132524532727N00602980EA0000002038 +B1132544532714N00602966EA0000002034 +B1132564532701N00602953EA0000002030 +B1132584532688N00602939EA0000002026 +B1133004532675N00602925EA0000002023 +B1133024532661N00602913EA0000002019 +B1133044532648N00602899EA0000002015 +B1133064532635N00602884EA0000002011 +B1133084532622N00602871EA0000002007 +B1133104532609N00602857EA0000002003 +B1133124532596N00602846EA0000001998 +B1133144532583N00602834EA0000001994 +B1133164532569N00602821EA0000001990 +B1133184532557N00602807EA0000001986 +B1133204532546N00602790EA0000001983 +B1133224532537N00602772EA0000001980 +B1133244532526N00602756EA0000001975 +B1133264532515N00602739EA0000001972 +B1133284532504N00602723EA0000001968 +B1133304532492N00602709EA0000001964 +B1133324532481N00602693EA0000001960 +B1133344532470N00602676EA0000001956 +B1133364532459N00602661EA0000001953 +B1133384532448N00602644EA0000001949 +B1133404532437N00602628EA0000001946 +B1133424532426N00602612EA0000001943 +B1133444532414N00602596EA0000001939 +B1133464532403N00602580EA0000001936 +B1133484532391N00602565EA0000001933 +B1133504532379N00602551EA0000001930 +B1133524532367N00602536EA0000001928 +B1133544532355N00602521EA0000001925 +B1133564532343N00602508EA0000001923 +B1133584532330N00602495EA0000001920 +B1134004532311N00602476EA0000001916 +B1134024532298N00602464EA0000001913 +B1134044532286N00602451EA0000001910 +B1134064532274N00602437EA0000001907 +B1134084532262N00602421EA0000001904 +B1134104532251N00602406EA0000001901 +B1134124532239N00602390EA0000001897 +B1134144532228N00602374EA0000001894 +B1134164532217N00602357EA0000001891 +B1134184532206N00602341EA0000001888 +B1134204532195N00602326EA0000001885 +B1134234532183N00602311EA0000001882 +B1134254532172N00602295EA0000001879 +B1134274532160N00602281EA0000001876 +B1134294532147N00602268EA0000001873 +B1134314532135N00602254EA0000001870 +B1134334532123N00602240EA0000001867 +B1134354532111N00602225EA0000001865 +B1134374532099N00602211EA0000001862 +B1134394532087N00602197EA0000001860 +B1134414532074N00602183EA0000001857 +B1134434532062N00602169EA0000001854 +B1134454532049N00602156EA0000001852 +B1134474532036N00602144EA0000001850 +B1134494532023N00602132EA0000001847 +B1134514532010N00602120EA0000001845 +B1134534531997N00602108EA0000001843 +B1134554531984N00602096EA0000001841 +B1134574531972N00602085EA0000001839 +B1134594531959N00602075EA0000001837 +B1135014531946N00602064EA0000001834 +B1135034531932N00602054EA0000001831 +B1135054531919N00602043EA0000001827 +B1135074531908N00602030EA0000001825 +B1135094531901N00602017EA0000001821 +B1135114531893N00602004EA0000001818 +B1135134531889N00601988EA0000001815 +B1135154531887N00601972EA0000001812 +B1135174531882N00601957EA0000001810 +B1135194531878N00601942EA0000001809 +B1135214531874N00601929EA0000001806 +B1135234531868N00601917EA0000001803 +B1135254531858N00601907EA0000001802 +B1135274531849N00601899EA0000001799 +B1135294531841N00601892EA0000001796 +B1135314531831N00601886EA0000001794 +B1135334531820N00601877EA0000001790 +B1135364531803N00601870EA0000001789 +B1135384531792N00601864EA0000001789 +B1135404531782N00601861EA0000001788 +B1135424531772N00601858EA0000001786 +B1135444531761N00601855EA0000001782 +B1135464531747N00601852EA0000001778 +B1135484531735N00601850EA0000001777 +B1135504531723N00601848EA0000001775 +B1135524531712N00601849EA0000001771 +B1135544531700N00601849EA0000001767 +B1135564531686N00601848EA0000001763 +B1135584531666N00601846EA0000001761 +B1136004531654N00601845EA0000001759 +B1136024531642N00601842EA0000001758 +B1136044531630N00601838EA0000001757 +B1136064531618N00601833EA0000001754 +B1136084531605N00601824EA0000001751 +B1136104531593N00601816EA0000001750 +B1136124531580N00601809EA0000001748 +B1136144531568N00601801EA0000001747 +B1136164531555N00601790EA0000001745 +B1136184531543N00601779EA0000001743 +B1136214531530N00601769EA0000001740 +B1136234531517N00601757EA0000001738 +B1136254531504N00601746EA0000001737 +B1136274531493N00601737EA0000001734 +B1136294531482N00601728EA0000001730 +B1136314531469N00601719EA0000001728 +B1136334531457N00601714EA0000001727 +B1136354531445N00601710EA0000001725 +B1136374531433N00601706EA0000001722 +B1136394531421N00601702EA0000001721 +B1136414531410N00601695EA0000001720 +B1136434531401N00601689EA0000001718 +B1136454531392N00601683EA0000001715 +B1136474531381N00601676EA0000001711 +B1136494531375N00601672EA0000001709 +B1136514531358N00601664EA0000001706 +B1136534531348N00601658EA0000001703 +B1136554531337N00601653EA0000001699 +B1136574531325N00601646EA0000001696 +B1136594531314N00601637EA0000001694 +B1137014531304N00601629EA0000001692 +B1137034531294N00601621EA0000001689 +B1137054531283N00601613EA0000001687 +B1137074531273N00601604EA0000001683 +B1137094531261N00601595EA0000001679 +B1137114531247N00601585EA0000001676 +B1137134531235N00601577EA0000001673 +B1137154531223N00601568EA0000001669 +B1137174531210N00601559EA0000001664 +B1137194531197N00601550EA0000001661 +B1137214531185N00601540EA0000001657 +B1137234531174N00601531EA0000001653 +B1137254531162N00601522EA0000001649 +B1137274531150N00601513EA0000001647 +B1137294531139N00601505EA0000001644 +B1137314531127N00601495EA0000001641 +B1137334531116N00601485EA0000001638 +B1137354531104N00601476EA0000001635 +B1137374531093N00601467EA0000001632 +B1137394531080N00601459EA0000001628 +B1137414531061N00601446EA0000001624 +B1137434531048N00601437EA0000001622 +B1137454531036N00601430EA0000001620 +B1137474531023N00601422EA0000001616 +B1137494531010N00601414EA0000001613 +B1137514530996N00601405EA0000001612 +B1137534530985N00601395EA0000001611 +B1137554530975N00601385EA0000001608 +B1137574530964N00601374EA0000001605 +B1137594530953N00601364EA0000001604 +B1138024530943N00601354EA0000001602 +B1138044530932N00601343EA0000001599 +B1138064530921N00601332EA0000001596 +B1138084530910N00601322EA0000001595 +B1138104530899N00601312EA0000001592 +B1138124530888N00601301EA0000001589 +B1138144530878N00601290EA0000001585 +B1138164530866N00601279EA0000001582 +B1138184530854N00601269EA0000001579 +B1138204530843N00601258EA0000001576 +B1138224530832N00601248EA0000001573 +B1138244530820N00601237EA0000001570 +B1138264530808N00601227EA0000001568 +B1138284530797N00601217EA0000001565 +B1138304530785N00601207EA0000001561 +B1138324530773N00601197EA0000001558 +B1138344530761N00601187EA0000001554 +B1138364530749N00601177EA0000001552 +B1138384530739N00601167EA0000001550 +B1138404530727N00601157EA0000001547 +B1138424530715N00601146EA0000001543 +B1138444530703N00601134EA0000001540 +B1138464530692N00601122EA0000001537 +B1138484530680N00601111EA0000001534 +B1138504530668N00601099EA0000001532 +B1138524530658N00601086EA0000001530 +B1138544530647N00601073EA0000001527 +B1138564530636N00601059EA0000001523 +B1138584530624N00601045EA0000001521 +B1139004530612N00601032EA0000001519 +B1139024530600N00601021EA0000001516 +B1139044530587N00601009EA0000001513 +B1139064530574N00600999EA0000001511 +B1139084530560N00600991EA0000001508 +B1139104530546N00600982EA0000001505 +B1139124530532N00600972EA0000001504 +B1139144530520N00600964EA0000001503 +B1139164530508N00600957EA0000001501 +B1139184530495N00600949EA0000001497 +B1139204530475N00600938EA0000001494 +B1139224530462N00600932EA0000001491 +B1139244530449N00600926EA0000001487 +B1139264530435N00600919EA0000001484 +B1139284530422N00600912EA0000001482 +B1139304530409N00600905EA0000001479 +B1139324530396N00600898EA0000001475 +B1139344530383N00600890EA0000001472 +B1139364530370N00600882EA0000001470 +B1139384530357N00600874EA0000001467 +B1139404530344N00600865EA0000001464 +B1139434530331N00600855EA0000001461 +B1139454530319N00600844EA0000001459 +B1139474530307N00600834EA0000001456 +B1139494530294N00600824EA0000001453 +B1139514530281N00600814EA0000001450 +B1139534530268N00600806EA0000001448 +B1139554530255N00600798EA0000001445 +B1139574530241N00600790EA0000001443 +B1139594530227N00600783EA0000001440 +B1140014530213N00600777EA0000001437 +B1140034530199N00600770EA0000001435 +B1140054530185N00600762EA0000001431 +B1140074530172N00600753EA0000001428 +B1140094530158N00600745EA0000001426 +B1140114530144N00600737EA0000001423 +B1140134530131N00600729EA0000001420 +B1140154530117N00600721EA0000001416 +B1140174530103N00600713EA0000001414 +B1140194530089N00600705EA0000001411 +B1140214530075N00600698EA0000001408 +B1140234530061N00600690EA0000001405 +B1140254530047N00600683EA0000001403 +B1140274530033N00600676EA0000001401 +B1140294530019N00600670EA0000001398 +B1140314530005N00600662EA0000001396 +B1140334529991N00600654EA0000001394 +B1140354529977N00600646EA0000001392 +B1140374529963N00600637EA0000001389 +B1140394529949N00600630EA0000001387 +B1140414529935N00600622EA0000001385 +B1140434529922N00600614EA0000001383 +B1140454529909N00600605EA0000001380 +B1140474529895N00600596EA0000001378 +B1140494529883N00600586EA0000001375 +B1140514529871N00600575EA0000001373 +B1140534529860N00600564EA0000001371 +B1140554529849N00600553EA0000001368 +B1140574529838N00600543EA0000001365 +B1140594529826N00600533EA0000001363 +B1141014529809N00600519EA0000001358 +B1141034529798N00600509EA0000001355 +B1141054529786N00600500EA0000001352 +B1141074529774N00600491EA0000001349 +B1141094529763N00600483EA0000001346 +B1141114529751N00600473EA0000001343 +B1141134529741N00600463EA0000001341 +B1141154529730N00600454EA0000001337 +B1141174529719N00600444EA0000001334 +B1141194529708N00600434EA0000001331 +B1141224529697N00600425EA0000001328 +B1141244529685N00600416EA0000001325 +B1141264529674N00600407EA0000001321 +B1141284529661N00600399EA0000001318 +B1141304529650N00600390EA0000001315 +B1141324529639N00600380EA0000001312 +B1141344529628N00600371EA0000001308 +B1141364529616N00600362EA0000001305 +B1141384529605N00600353EA0000001303 +B1141404529595N00600345EA0000001300 +B1141424529583N00600336EA0000001297 +B1141444529573N00600327EA0000001294 +B1141464529562N00600318EA0000001292 +B1141484529551N00600310EA0000001290 +B1141504529540N00600301EA0000001287 +B1141524529530N00600293EA0000001285 +B1141544529519N00600285EA0000001282 +B1141564529508N00600275EA0000001279 +B1141584529497N00600264EA0000001276 +B1142004529487N00600256EA0000001274 +B1142024529477N00600247EA0000001271 +B1142044529466N00600238EA0000001268 +B1142064529456N00600229EA0000001265 +B1142084529446N00600221EA0000001263 +B1142104529436N00600212EA0000001260 +B1142124529426N00600204EA0000001257 +B1142144529415N00600196EA0000001255 +B1142164529405N00600188EA0000001252 +B1142184529395N00600180EA0000001249 +B1142204529384N00600172EA0000001246 +B1142224529373N00600164EA0000001244 +B1142244529363N00600156EA0000001242 +B1142264529353N00600148EA0000001239 +B1142284529342N00600139EA0000001236 +B1142304529332N00600131EA0000001234 +B1142324529321N00600122EA0000001231 +B1142344529311N00600113EA0000001228 +B1142364529301N00600102EA0000001226 +B1142384529290N00600092EA0000001224 +B1142404529274N00600078EA0000001221 +B1142424529263N00600070EA0000001219 +B1142444529252N00600061EA0000001217 +B1142464529241N00600053EA0000001215 +B1142484529230N00600045EA0000001212 +B1142504529218N00600037EA0000001210 +B1142524529208N00600028EA0000001209 +B1142544529197N00600019EA0000001207 +B1142564529186N00600011EA0000001205 +B1142584529175N00600001EA0000001204 +B1143014529164N00559993EA0000001202 +B1143034529153N00559985EA0000001201 +B1143054529143N00559976EA0000001199 +B1143074529132N00559967EA0000001197 +B1143094529122N00559960EA0000001195 +B1143114529110N00559953EA0000001193 +B1143134529099N00559946EA0000001191 +B1143154529087N00559939EA0000001188 +B1143174529075N00559932EA0000001187 +B1143194529064N00559926EA0000001184 +B1143214529052N00559921EA0000001182 +B1143234529040N00559915EA0000001179 +B1143254529028N00559909EA0000001177 +B1143274529016N00559902EA0000001174 +B1143294529005N00559896EA0000001172 +B1143314528993N00559888EA0000001170 +B1143334528982N00559881EA0000001167 +B1143354528971N00559872EA0000001165 +B1143374528961N00559864EA0000001162 +B1143394528950N00559856EA0000001160 +B1143414528939N00559848EA0000001158 +B1143434528927N00559841EA0000001156 +B1143454528916N00559834EA0000001153 +B1143474528905N00559827EA0000001150 +B1143494528893N00559821EA0000001148 +B1143514528883N00559813EA0000001146 +B1143534528872N00559806EA0000001143 +B1143554528860N00559800EA0000001141 +B1143574528848N00559795EA0000001140 +B1143594528837N00559790EA0000001138 +B1144014528825N00559784EA0000001136 +B1144034528813N00559777EA0000001135 +B1144054528802N00559771EA0000001134 +B1144074528791N00559764EA0000001132 +B1144094528780N00559757EA0000001130 +B1144114528769N00559749EA0000001129 +B1144134528758N00559742EA0000001128 +B1144154528746N00559735EA0000001126 +B1144174528734N00559728EA0000001125 +B1144194528723N00559722EA0000001124 +B1144214528712N00559716EA0000001121 +B1144234528696N00559707EA0000001117 +B1144254528687N00559700EA0000001113 +B1144274528676N00559694EA0000001108 +B1144294528665N00559688EA0000001103 +B1144314528653N00559682EA0000001100 +B1144334528642N00559676EA0000001097 +B1144354528631N00559670EA0000001094 +B1144374528621N00559663EA0000001091 +B1144404528611N00559654EA0000001088 +B1144424528601N00559644EA0000001086 +B1144444528591N00559635EA0000001083 +B1144464528580N00559627EA0000001080 +B1144484528568N00559618EA0000001078 +B1144504528556N00559610EA0000001077 +B1144524528544N00559603EA0000001075 +B1144544528531N00559595EA0000001073 +B1144564528518N00559586EA0000001072 +B1144584528506N00559578EA0000001071 +B1145004528495N00559568EA0000001069 +B1145024528482N00559560EA0000001067 +B1145044528469N00559552EA0000001067 +B1145064528458N00559542EA0000001065 +B1145084528447N00559531EA0000001064 +B1145104528436N00559521EA0000001063 +B1145124528425N00559510EA0000001063 +B1145144528416N00559498EA0000001061 +B1145164528406N00559486EA0000001060 +B1145184528395N00559475EA0000001059 +B1145204528384N00559464EA0000001059 +B1145224528373N00559453EA0000001058 +B1145244528362N00559442EA0000001057 +B1145264528350N00559431EA0000001056 +B1145284528338N00559421EA0000001056 +B1145304528326N00559412EA0000001057 +B1145324528316N00559404EA0000001058 +B1145344528305N00559398EA0000001057 +B1145364528295N00559389EA0000001058 +B1145384528284N00559382EA0000001060 +B1145404528273N00559376EA0000001061 +B1145424528262N00559371EA0000001063 +B1145444528253N00559364EA0000001064 +B1145464528247N00559356EA0000001065 +B1145484528244N00559348EA0000001065 +B1145504528250N00559343EA0000001062 +B1145524528258N00559349EA0000001061 +B1145544528262N00559365EA0000001060 +B1145564528259N00559384EA0000001059 +B1145584528247N00559402EA0000001059 +B1146004528226N00559411EA0000001061 +B1146024528213N00559410EA0000001062 +B1146044528202N00559406EA0000001062 +B1146064528192N00559399EA0000001061 +B1146084528181N00559390EA0000001060 +B1146104528172N00559381EA0000001059 +B1146124528163N00559371EA0000001057 +B1146144528157N00559361EA0000001056 +B1146164528149N00559352EA0000001054 +B1146184528142N00559342EA0000001052 +B1146214528134N00559332EA0000001050 +B1146234528127N00559322EA0000001048 +B1146254528119N00559312EA0000001047 +B1146274528111N00559302EA0000001046 +B1146294528104N00559293EA0000001045 +B1146314528097N00559284EA0000001042 +B1146334528090N00559273EA0000001039 +B1146354528083N00559263EA0000001038 +B1146374528077N00559254EA0000001037 +B1146394528071N00559245EA0000001036 +B1146414528065N00559236EA0000001036 +B1146434528058N00559228EA0000001035 +B1146454528052N00559219EA0000001034 +B1146474528045N00559209EA0000001033 +B1146494528036N00559200EA0000001033 +B1146514528028N00559191EA0000001032 +B1146534528021N00559182EA0000001031 +B1146554528014N00559172EA0000001030 +B1146574528006N00559162EA0000001030 +B1146594527999N00559153EA0000001028 +B1147014527990N00559142EA0000001028 +B1147034527981N00559131EA0000001028 +B1147054527973N00559121EA0000001030 +B1147074527964N00559110EA0000001031 +B1147094527956N00559099EA0000001032 +B1147114527947N00559089EA0000001035 +B1147134527939N00559079EA0000001036 +B1147154527933N00559069EA0000001037 +B1147174527928N00559058EA0000001038 +B1147194527923N00559046EA0000001039 +B1147214527920N00559036EA0000001041 +B1147234527922N00559026EA0000001042 +B1147254527928N00559022EA0000001043 +B1147274527936N00559026EA0000001043 +B1147294527940N00559040EA0000001043 +B1147314527936N00559061EA0000001045 +B1147334527922N00559071EA0000001047 +B1147354527910N00559071EA0000001049 +B1147374527899N00559066EA0000001050 +B1147394527892N00559056EA0000001051 +B1147414527888N00559038EA0000001055 +B1147434527894N00559029EA0000001056 +B1147454527901N00559028EA0000001056 +B1147474527908N00559034EA0000001056 +B1147494527911N00559049EA0000001056 +B1147514527906N00559067EA0000001057 +B1147534527895N00559077EA0000001058 +B1147554527883N00559079EA0000001059 +B1147574527871N00559076EA0000001061 +B1147594527861N00559070EA0000001062 +B1148024527853N00559060EA0000001062 +B1148044527846N00559049EA0000001063 +B1148064527843N00559038EA0000001064 +B1148084527840N00559026EA0000001065 +B1148104527841N00559015EA0000001065 +B1148124527847N00559010EA0000001065 +B1148144527855N00559012EA0000001064 +B1148164527860N00559022EA0000001063 +B1148184527857N00559037EA0000001062 +B1148204527847N00559048EA0000001062 +B1148224527834N00559048EA0000001062 +B1148244527823N00559041EA0000001061 +B1148264527814N00559030EA0000001061 +B1148284527805N00559018EA0000001060 +B1148304527797N00559005EA0000001059 +B1148324527790N00558991EA0000001058 +B1148344527782N00558977EA0000001057 +B1148364527774N00558963EA0000001057 +B1148384527769N00558951EA0000001058 +B1148404527763N00558938EA0000001058 +B1148424527757N00558924EA0000001057 +B1148444527753N00558910EA0000001057 +B1148464527748N00558897EA0000001057 +B1148484527743N00558885EA0000001057 +B1148504527739N00558871EA0000001056 +B1148524527735N00558855EA0000001056 +B1148544527730N00558841EA0000001057 +B1148564527726N00558826EA0000001057 +B1148584527720N00558810EA0000001057 +B1149004527714N00558796EA0000001058 +B1149024527709N00558782EA0000001059 +B1149044527704N00558767EA0000001059 +B1149064527698N00558751EA0000001058 +B1149084527692N00558735EA0000001058 +B1149104527686N00558720EA0000001059 +B1149124527681N00558703EA0000001059 +B1149144527676N00558687EA0000001059 +B1149164527671N00558671EA0000001058 +B1149184527667N00558654EA0000001058 +B1149204527660N00558633EA0000001059 +B1149224527656N00558619EA0000001059 +B1149244527652N00558605EA0000001060 +B1149264527647N00558590EA0000001060 +B1149284527643N00558574EA0000001059 +B1149304527638N00558557EA0000001058 +B1149324527632N00558542EA0000001057 +B1149344527627N00558529EA0000001057 +B1149364527621N00558514EA0000001057 +B1149394527617N00558496EA0000001055 +B1149414527615N00558480EA0000001054 +B1149434527613N00558464EA0000001053 +B1149454527610N00558446EA0000001052 +B1149474527609N00558427EA0000001052 +B1149494527607N00558412EA0000001052 +B1149514527604N00558396EA0000001050 +B1149534527600N00558380EA0000001050 +B1149554527594N00558365EA0000001049 +B1149574527589N00558348EA0000001049 +B1149594527583N00558332EA0000001048 +B1150014527577N00558315EA0000001047 +B1150034527573N00558297EA0000001046 +B1150054527569N00558280EA0000001046 +B1150074527565N00558264EA0000001046 +B1150094527561N00558248EA0000001047 +B1150114527560N00558233EA0000001047 +B1150134527558N00558218EA0000001046 +B1150154527555N00558201EA0000001047 +B1150174527553N00558186EA0000001046 +B1150194527549N00558169EA0000001044 +B1150214527545N00558151EA0000001041 +B1150234527542N00558135EA0000001039 +B1150254527540N00558119EA0000001036 +B1150274527537N00558103EA0000001034 +B1150294527533N00558085EA0000001031 +B1150314527532N00558068EA0000001031 +B1150334527531N00558053EA0000001031 +B1150354527531N00558039EA0000001029 +B1150374527531N00558024EA0000001027 +B1150394527532N00558011EA0000001024 +B1150414527534N00557998EA0000001021 +B1150434527536N00557984EA0000001018 +B1150454527535N00557970EA0000001015 +B1150474527534N00557957EA0000001011 +B1150494527533N00557942EA0000001007 +B1150514527535N00557927EA0000001004 +B1150534527537N00557914EA0000001001 +B1150554527535N00557901EA0000000998 +B1150574527533N00557895EA0000000993 +B1150594527517N00557882EA0000000992 +B1151014527508N00557882EA0000000993 +B1151034527499N00557882EA0000000996 +B1151054527487N00557879EA0000001000 +B1151074527479N00557871EA0000001007 +B1151094527476N00557860EA0000001011 +B1151114527473N00557848EA0000001013 +B1151134527473N00557835EA0000001014 +B1151154527482N00557829EA0000001013 +B1151184527492N00557829EA0000001016 +B1151204527497N00557834EA0000001021 +B1151224527496N00557844EA0000001027 +B1151244527492N00557853EA0000001033 +B1151264527486N00557861EA0000001037 +B1151284527477N00557866EA0000001043 +B1151304527469N00557862EA0000001047 +B1151324527464N00557849EA0000001052 +B1151344527467N00557831EA0000001054 +B1151364527476N00557822EA0000001056 +B1151384527484N00557820EA0000001059 +B1151404527490N00557825EA0000001064 +B1151424527491N00557836EA0000001068 +B1151444527483N00557846EA0000001072 +B1151464527470N00557843EA0000001076 +B1151484527463N00557831EA0000001081 +B1151504527461N00557815EA0000001085 +B1151524527465N00557799EA0000001088 +B1151544527473N00557787EA0000001092 +B1151564527482N00557790EA0000001096 +B1151584527484N00557800EA0000001100 +B1152004527472N00557812EA0000001106 +B1152024527460N00557809EA0000001112 +B1152044527453N00557797EA0000001114 +B1152064527448N00557782EA0000001117 +B1152084527450N00557767EA0000001122 +B1152104527457N00557769EA0000001125 +B1152124527462N00557782EA0000001128 +B1152144527451N00557797EA0000001132 +B1152164527438N00557794EA0000001136 +B1152184527429N00557780EA0000001138 +B1152204527426N00557766EA0000001139 +B1152224527434N00557754EA0000001138 +B1152244527444N00557751EA0000001139 +B1152264527451N00557756EA0000001142 +B1152284527455N00557762EA0000001143 +B1152304527460N00557769EA0000001145 +B1152324527466N00557776EA0000001149 +B1152344527473N00557781EA0000001154 +B1152364527480N00557786EA0000001158 +B1152384527489N00557800EA0000001161 +B1152404527491N00557815EA0000001162 +B1152424527480N00557828EA0000001162 +B1152444527466N00557828EA0000001162 +B1152464527459N00557820EA0000001164 +B1152484527460N00557810EA0000001169 +B1152504527465N00557798EA0000001174 +B1152524527474N00557787EA0000001177 +B1152544527484N00557779EA0000001181 +B1152574527494N00557779EA0000001186 +B1152594527502N00557784EA0000001189 +B1153014527508N00557794EA0000001191 +B1153034527514N00557810EA0000001190 +B1153054527516N00557828EA0000001188 +B1153074527508N00557843EA0000001183 +B1153094527494N00557850EA0000001178 +B1153114527480N00557845EA0000001173 +B1153134527471N00557833EA0000001169 +B1153154527469N00557818EA0000001167 +B1153174527470N00557805EA0000001167 +B1153194527474N00557795EA0000001168 +B1153214527481N00557788EA0000001166 +B1153234527488N00557782EA0000001163 +B1153254527491N00557773EA0000001161 +B1153274527490N00557766EA0000001158 +B1153294527485N00557761EA0000001157 +B1153314527481N00557752EA0000001156 +B1153334527477N00557740EA0000001155 +B1153354527473N00557729EA0000001155 +B1153374527470N00557716EA0000001156 +B1153394527467N00557704EA0000001157 +B1153414527465N00557693EA0000001158 +B1153434527461N00557678EA0000001158 +B1153454527456N00557665EA0000001160 +B1153474527452N00557656EA0000001162 +B1153494527448N00557643EA0000001163 +B1153514527448N00557627EA0000001164 +B1153534527456N00557617EA0000001165 +B1153554527465N00557618EA0000001167 +B1153574527468N00557627EA0000001169 +B1153594527461N00557633EA0000001171 +B1154014527452N00557630EA0000001174 +B1154034527436N00557625EA0000001179 +B1154054527434N00557606EA0000001180 +B1154074527441N00557591EA0000001181 +B1154094527451N00557591EA0000001183 +B1154114527456N00557601EA0000001186 +B1154134527455N00557614EA0000001190 +B1154154527453N00557631EA0000001195 +B1154174527453N00557640EA0000001196 +B1154194527452N00557652EA0000001198 +B1154214527448N00557661EA0000001200 +B1154234527441N00557664EA0000001201 +B1154254527430N00557661EA0000001202 +B1154274527421N00557653EA0000001203 +B1154294527413N00557643EA0000001203 +B1154314527409N00557628EA0000001203 +B1154334527411N00557611EA0000001204 +B1154364527419N00557605EA0000001203 +B1154384527428N00557610EA0000001203 +B1154404527431N00557620EA0000001202 +B1154424527429N00557634EA0000001204 +B1154444527425N00557646EA0000001206 +B1154464527422N00557657EA0000001207 +B1154484527419N00557668EA0000001207 +B1154504527416N00557679EA0000001207 +B1154524527416N00557691EA0000001207 +B1154544527416N00557703EA0000001206 +B1154564527413N00557717EA0000001208 +B1154584527410N00557730EA0000001210 +B1155004527408N00557740EA0000001213 +B1155024527407N00557750EA0000001214 +B1155044527406N00557761EA0000001216 +B1155064527407N00557771EA0000001217 +B1155084527410N00557782EA0000001217 +B1155104527412N00557798EA0000001216 +B1155124527403N00557811EA0000001215 +B1155144527393N00557811EA0000001217 +B1155164527383N00557808EA0000001218 +B1155184527372N00557805EA0000001219 +B1155204527362N00557797EA0000001219 +B1155224527358N00557784EA0000001220 +B1155244527360N00557772EA0000001220 +B1155264527369N00557769EA0000001221 +B1155284527376N00557776EA0000001221 +B1155304527370N00557787EA0000001220 +B1155324527357N00557790EA0000001221 +B1155344527346N00557784EA0000001222 +B1155364527339N00557776EA0000001222 +B1155384527334N00557766EA0000001221 +B1155404527330N00557755EA0000001219 +B1155424527319N00557750EA0000001213 +B1155444527311N00557743EA0000001213 +B1155464527301N00557728EA0000001213 +B1155484527295N00557717EA0000001214 +B1155504527292N00557713EA0000001214 +B1155524527280N00557697EA0000001213 +B1155544527274N00557684EA0000001213 +B1155564527269N00557670EA0000001213 +B1155584527261N00557658EA0000001214 +B1156004527254N00557647EA0000001215 +B1156024527246N00557637EA0000001216 +B1156044527238N00557627EA0000001216 +B1156064527230N00557615EA0000001215 +B1156084527223N00557602EA0000001213 +B1156104527215N00557591EA0000001210 +B1156124527205N00557579EA0000001207 +B1156154527196N00557566EA0000001205 +B1156174527188N00557554EA0000001201 +B1156194527180N00557539EA0000001197 +B1156214527170N00557525EA0000001193 +B1156234527159N00557513EA0000001191 +B1156254527149N00557502EA0000001188 +B1156274527140N00557490EA0000001183 +B1156294527130N00557477EA0000001179 +B1156314527120N00557464EA0000001176 +B1156334527113N00557451EA0000001173 +B1156354527107N00557436EA0000001168 +B1156374527109N00557417EA0000001163 +B1156394527119N00557408EA0000001158 +B1156414527130N00557410EA0000001153 +B1156434527138N00557418EA0000001149 +B1156454527146N00557426EA0000001145 +B1156474527153N00557436EA0000001141 +B1156494527160N00557447EA0000001136 +B1156514527169N00557459EA0000001131 +B1156534527178N00557472EA0000001127 +B1156554527184N00557486EA0000001124 +B1156574527190N00557498EA0000001119 +B1156594527198N00557511EA0000001114 +B1157014527207N00557526EA0000001108 +B1157034527213N00557541EA0000001104 +B1157054527219N00557553EA0000001101 +B1157074527223N00557562EA0000001099 +B1157094527226N00557570EA0000001098 +B1157114527234N00557579EA0000001097 +B1157134527240N00557589EA0000001097 +B1157154527245N00557598EA0000001098 +B1157174527248N00557607EA0000001098 +B1157194527248N00557619EA0000001097 +B1157214527248N00557633EA0000001097 +B1157234527250N00557639EA0000001098 +B1157254527257N00557640EA0000001099 +B1157274527264N00557646EA0000001102 +B1157294527266N00557655EA0000001102 +B1157314527265N00557665EA0000001101 +B1157334527263N00557670EA0000001101 +B1157354527248N00557678EA0000001100 +B1157374527234N00557674EA0000001100 +B1157394527222N00557663EA0000001101 +B1157414527215N00557648EA0000001101 +B1157434527216N00557628EA0000001100 +B1157454527224N00557613EA0000001101 +B1157474527231N00557602EA0000001102 +B1157494527237N00557592EA0000001103 +B1157514527243N00557583EA0000001104 +B1157544527246N00557571EA0000001104 +B1157564527245N00557552EA0000001104 +B1157584527242N00557536EA0000001105 +B1158004527234N00557529EA0000001105 +B1158024527224N00557526EA0000001102 +B1158044527214N00557531EA0000001099 +B1158064527205N00557538EA0000001097 +B1158084527195N00557542EA0000001096 +B1158104527186N00557549EA0000001094 +B1158124527178N00557555EA0000001093 +B1158144527172N00557560EA0000001091 +B1158164527165N00557568EA0000001088 +B1158184527157N00557577EA0000001086 +B1158204527147N00557585EA0000001085 +B1158224527140N00557592EA0000001084 +B1158244527135N00557599EA0000001081 +B1158264527127N00557607EA0000001079 +B1158284527118N00557613EA0000001077 +B1158304527111N00557623EA0000001073 +B1158324527101N00557635EA0000001070 +B1158344527090N00557646EA0000001069 +B1158364527081N00557656EA0000001069 +B1158384527073N00557665EA0000001071 +B1158404527068N00557671EA0000001071 +B1158424527064N00557678EA0000001071 +B1158444527059N00557684EA0000001071 +B1158464527055N00557690EA0000001073 +B1158484527053N00557695EA0000001074 +B1158504527053N00557702EA0000001075 +B1158524527058N00557708EA0000001075 +B1158544527067N00557710EA0000001074 +B1158564527077N00557706EA0000001073 +B1158584527085N00557688EA0000001073 +B1159004527087N00557670EA0000001073 +B1159024527081N00557659EA0000001073 +B1159044527073N00557657EA0000001072 +B1159064527064N00557660EA0000001072 +B1159084527057N00557660EA0000001073 +B1159104527049N00557658EA0000001072 +B1159124527036N00557660EA0000001071 +B1159144527034N00557663EA0000001070 +B1159164527029N00557672EA0000001069 +B1159184527019N00557686EA0000001069 +B1159204527014N00557695EA0000001070 +B1159224527010N00557703EA0000001069 +B1159244527004N00557714EA0000001068 +B1159264526997N00557722EA0000001068 +B1159284526991N00557730EA0000001068 +B1159304526985N00557740EA0000001067 +B1159324526978N00557749EA0000001068 +B1159354526975N00557756EA0000001069 +B1159374526970N00557763EA0000001069 +B1159394526964N00557770EA0000001068 +B1159414526956N00557774EA0000001068 +B1159434526949N00557780EA0000001067 +B1159454526942N00557789EA0000001067 +B1159474526935N00557796EA0000001067 +B1159494526928N00557803EA0000001066 +B1159514526920N00557810EA0000001063 +B1159534526911N00557814EA0000001061 +B1159554526903N00557820EA0000001059 +B1159574526896N00557827EA0000001056 +B1159594526888N00557834EA0000001053 +B1200014526882N00557840EA0000001051 +B1200034526875N00557847EA0000001048 +B1200054526865N00557855EA0000001046 +B1200074526855N00557859EA0000001045 +B1200094526846N00557861EA0000001045 +B1200114526835N00557863EA0000001044 +B1200134526823N00557865EA0000001044 +B1200154526812N00557866EA0000001044 +B1200174526803N00557866EA0000001044 +B1200194526792N00557867EA0000001042 +B1200214526778N00557866EA0000001040 +B1200234526768N00557867EA0000001038 +B1200254526757N00557869EA0000001036 +B1200274526744N00557868EA0000001033 +B1200294526733N00557868EA0000001031 +B1200314526723N00557870EA0000001029 +B1200334526712N00557869EA0000001027 +B1200354526700N00557870EA0000001025 +B1200374526689N00557871EA0000001023 +B1200394526678N00557872EA0000001021 +B1200414526666N00557872EA0000001018 +B1200434526655N00557869EA0000001017 +B1200454526645N00557863EA0000001016 +B1200474526635N00557858EA0000001016 +B1200494526625N00557856EA0000001018 +B1200514526611N00557852EA0000001024 +B1200534526603N00557841EA0000001027 +B1200554526600N00557826EA0000001031 +B1200574526605N00557815EA0000001035 +B1200594526614N00557814EA0000001039 +B1201014526622N00557815EA0000001045 +B1201034526630N00557820EA0000001049 +B1201054526635N00557830EA0000001053 +B1201074526633N00557837EA0000001056 +B1201094526627N00557844EA0000001058 +B1201124526620N00557849EA0000001060 +B1201144526610N00557847EA0000001063 +B1201164526601N00557836EA0000001065 +B1201184526596N00557822EA0000001070 +B1201204526592N00557811EA0000001075 +B1201224526588N00557802EA0000001080 +B1201244526586N00557791EA0000001084 +B1201264526592N00557782EA0000001087 +B1201284526602N00557782EA0000001090 +B1201304526607N00557795EA0000001090 +B1201324526596N00557807EA0000001093 +B1201344526582N00557802EA0000001095 +B1201364526576N00557794EA0000001098 +B1201384526569N00557787EA0000001101 +B1201404526563N00557776EA0000001103 +B1201424526561N00557769EA0000001105 +B1201444526568N00557753EA0000001107 +B1201464526577N00557755EA0000001109 +B1201484526584N00557762EA0000001112 +B1201504526589N00557767EA0000001114 +B1201524526594N00557769EA0000001116 +B1201544526602N00557766EA0000001116 +B1201564526607N00557757EA0000001114 +B1201584526602N00557743EA0000001114 +B1202004526593N00557729EA0000001111 +B1202024526583N00557718EA0000001108 +B1202044526572N00557716EA0000001104 +B1202064526560N00557722EA0000001101 +B1202084526550N00557729EA0000001102 +B1202104526542N00557734EA0000001101 +B1202124526533N00557738EA0000001099 +B1202144526523N00557740EA0000001100 +B1202164526516N00557742EA0000001102 +B1202184526509N00557739EA0000001101 +B1202204526501N00557732EA0000001101 +B1202224526495N00557718EA0000001102 +B1202244526502N00557700EA0000001101 +B1202264526513N00557694EA0000001102 +B1202284526522N00557706EA0000001105 +B1202304526520N00557711EA0000001106 +B1202324526500N00557714EA0000001110 +B1202344526490N00557703EA0000001112 +B1202364526483N00557691EA0000001115 +B1202384526476N00557681EA0000001115 +B1202404526469N00557673EA0000001115 +B1202424526460N00557672EA0000001114 +B1202444526451N00557676EA0000001113 +B1202464526442N00557678EA0000001111 +B1202484526434N00557682EA0000001108 +B1202504526425N00557688EA0000001104 +B1202534526415N00557693EA0000001101 +B1202554526406N00557699EA0000001097 +B1202574526398N00557704EA0000001092 +B1202594526388N00557709EA0000001088 +B1203014526378N00557715EA0000001085 +B1203034526368N00557719EA0000001081 +B1203054526357N00557724EA0000001076 +B1203074526346N00557729EA0000001073 +B1203094526336N00557733EA0000001069 +B1203114526325N00557736EA0000001063 +B1203134526313N00557740EA0000001056 +B1203154526301N00557746EA0000001049 +B1203174526290N00557752EA0000001041 +B1203194526279N00557760EA0000001033 +B1203214526268N00557769EA0000001026 +B1203234526257N00557778EA0000001020 +B1203254526245N00557786EA0000001015 +B1203274526235N00557793EA0000001010 +B1203294526223N00557799EA0000001005 +B1203314526211N00557805EA0000001002 +B1203334526200N00557811EA0000000999 +B1203354526190N00557816EA0000000998 +B1203374526181N00557818EA0000000999 +B1203394526172N00557819EA0000001000 +B1203414526159N00557819EA0000001001 +B1203434526146N00557818EA0000001001 +B1203454526133N00557818EA0000001002 +B1203474526122N00557819EA0000001002 +B1203494526110N00557819EA0000001002 +B1203514526097N00557818EA0000001000 +B1203534526084N00557815EA0000000998 +B1203554526071N00557815EA0000000997 +B1203574526059N00557814EA0000000995 +B1203594526047N00557812EA0000000993 +B1204014526034N00557811EA0000000992 +B1204034526022N00557813EA0000000991 +B1204054526010N00557815EA0000000990 +B1204074525990N00557819EA0000000987 +B1204094525978N00557823EA0000000986 +B1204114525972N00557824EA0000000985 +B1204134525960N00557827EA0000000982 +B1204154525943N00557834EA0000000978 +B1204174525932N00557840EA0000000976 +B1204194525923N00557847EA0000000973 +B1204214525913N00557854EA0000000969 +B1204234525903N00557863EA0000000966 +B1204254525894N00557872EA0000000964 +B1204274525886N00557881EA0000000962 +B1204294525879N00557890EA0000000961 +B1204324525871N00557900EA0000000959 +B1204344525861N00557909EA0000000958 +B1204364525855N00557918EA0000000959 +B1204384525851N00557925EA0000000962 +B1204404525845N00557931EA0000000965 +B1204424525838N00557933EA0000000967 +B1204444525830N00557935EA0000000968 +B1204464525821N00557938EA0000000968 +B1204484525814N00557945EA0000000967 +B1204504525810N00557948EA0000000965 +B1204524525794N00557947EA0000000963 +B1204544525782N00557946EA0000000960 +B1204564525771N00557945EA0000000958 +B1204584525760N00557943EA0000000956 +B1205004525748N00557942EA0000000956 +B1205024525737N00557940EA0000000957 +B1205044525726N00557938EA0000000958 +B1205064525715N00557935EA0000000958 +B1205084525704N00557932EA0000000958 +B1205104525692N00557929EA0000000958 +B1205124525682N00557927EA0000000957 +B1205144525671N00557925EA0000000955 +B1205164525658N00557923EA0000000953 +B1205184525647N00557920EA0000000952 +B1205204525635N00557919EA0000000950 +B1205224525622N00557917EA0000000947 +B1205244525610N00557916EA0000000946 +B1205264525599N00557914EA0000000944 +B1205284525586N00557912EA0000000942 +B1205304525573N00557908EA0000000939 +B1205324525560N00557905EA0000000937 +B1205344525546N00557903EA0000000936 +B1205364525531N00557903EA0000000936 +B1205384525518N00557904EA0000000937 +B1205404525507N00557903EA0000000936 +B1205424525494N00557904EA0000000935 +B1205444525475N00557908EA0000000935 +B1205464525469N00557908EA0000000936 +B1205484525458N00557905EA0000000937 +B1205504525443N00557899EA0000000938 +B1205524525432N00557893EA0000000937 +B1205544525419N00557889EA0000000935 +B1205564525408N00557886EA0000000934 +B1205584525398N00557880EA0000000933 +B1206004525385N00557875EA0000000930 +B1206024525370N00557870EA0000000928 +B1206044525357N00557864EA0000000927 +B1206074525345N00557858EA0000000927 +B1206094525333N00557850EA0000000928 +B1206114525321N00557843EA0000000930 +B1206134525312N00557837EA0000000933 +B1206154525306N00557829EA0000000937 +B1206174525299N00557823EA0000000940 +B1206194525291N00557820EA0000000944 +B1206214525285N00557825EA0000000948 +B1206234525284N00557833EA0000000951 +B1206254525291N00557840EA0000000954 +B1206274525300N00557834EA0000000957 +B1206294525308N00557820EA0000000960 +B1206314525308N00557801EA0000000964 +B1206334525303N00557790EA0000000967 +B1206354525297N00557793EA0000000971 +B1206374525298N00557802EA0000000974 +B1206394525304N00557805EA0000000976 +B1206414525312N00557797EA0000000978 +B1206434525316N00557783EA0000000982 +B1206454525313N00557769EA0000000986 +B1206474525308N00557767EA0000000990 +B1206494525307N00557776EA0000000994 +B1206514525314N00557780EA0000000997 +B1206534525322N00557772EA0000000999 +B1206554525326N00557756EA0000001002 +B1206574525322N00557739EA0000001005 +B1206594525315N00557737EA0000001008 +B1207014525309N00557744EA0000001011 +B1207034525304N00557751EA0000001015 +B1207054525298N00557756EA0000001018 +B1207074525294N00557762EA0000001021 +B1207094525295N00557771EA0000001023 +B1207114525302N00557778EA0000001026 +B1207134525311N00557775EA0000001028 +B1207154525318N00557762EA0000001030 +B1207174525315N00557745EA0000001033 +B1207194525304N00557733EA0000001037 +B1207214525298N00557739EA0000001040 +B1207234525297N00557749EA0000001042 +B1207254525302N00557757EA0000001043 +B1207274525312N00557758EA0000001045 +B1207294525322N00557749EA0000001046 +B1207314525328N00557735EA0000001047 +B1207334525327N00557716EA0000001049 +B1207354525323N00557702EA0000001052 +B1207374525316N00557698EA0000001055 +B1207394525311N00557704EA0000001058 +B1207414525311N00557714EA0000001060 +B1207434525316N00557722EA0000001062 +B1207464525325N00557723EA0000001064 +B1207484525335N00557703EA0000001064 +B1207504525333N00557681EA0000001070 +B1207524525327N00557669EA0000001075 +B1207544525320N00557666EA0000001079 +B1207564525312N00557669EA0000001081 +B1207584525307N00557683EA0000001084 +B1208004525313N00557694EA0000001088 +B1208024525320N00557698EA0000001092 +B1208044525329N00557697EA0000001094 +B1208064525338N00557690EA0000001096 +B1208084525347N00557669EA0000001098 +B1208104525345N00557651EA0000001100 +B1208124525338N00557646EA0000001103 +B1208144525330N00557649EA0000001110 +B1208164525326N00557656EA0000001113 +B1208184525325N00557665EA0000001116 +B1208204525330N00557675EA0000001119 +B1208224525338N00557680EA0000001122 +B1208244525348N00557675EA0000001124 +B1208264525357N00557661EA0000001126 +B1208284525362N00557645EA0000001128 +B1208304525363N00557627EA0000001129 +B1208324525357N00557610EA0000001130 +B1208344525349N00557602EA0000001131 +B1208364525340N00557602EA0000001132 +B1208384525333N00557603EA0000001135 +B1208404525327N00557608EA0000001138 +B1208424525324N00557618EA0000001140 +B1208444525325N00557628EA0000001143 +B1208464525331N00557632EA0000001146 +B1208484525342N00557632EA0000001148 +B1208504525352N00557622EA0000001149 +B1208524525357N00557607EA0000001151 +B1208544525354N00557589EA0000001153 +B1208564525347N00557573EA0000001155 +B1208584525341N00557567EA0000001159 +B1209004525332N00557565EA0000001162 +B1209024525323N00557568EA0000001165 +B1209044525319N00557584EA0000001171 +B1209064525325N00557594EA0000001174 +B1209084525334N00557596EA0000001177 +B1209104525342N00557589EA0000001179 +B1209124525349N00557573EA0000001181 +B1209144525352N00557555EA0000001183 +B1209164525351N00557539EA0000001187 +B1209184525347N00557528EA0000001192 +B1209204525343N00557516EA0000001197 +B1209234525335N00557506EA0000001201 +B1209254525326N00557504EA0000001205 +B1209274525319N00557508EA0000001209 +B1209294525314N00557516EA0000001212 +B1209314525314N00557525EA0000001216 +B1209334525318N00557533EA0000001219 +B1209354525325N00557534EA0000001222 +B1209374525333N00557528EA0000001224 +B1209394525338N00557516EA0000001227 +B1209414525342N00557503EA0000001230 +B1209434525344N00557488EA0000001234 +B1209454525344N00557474EA0000001239 +B1209474525341N00557464EA0000001243 +B1209494525337N00557455EA0000001246 +B1209514525329N00557453EA0000001248 +B1209534525324N00557461EA0000001251 +B1209554525322N00557471EA0000001255 +B1209574525323N00557480EA0000001259 +B1209594525328N00557485EA0000001264 +B1210014525336N00557483EA0000001268 +B1210034525344N00557473EA0000001273 +B1210054525347N00557460EA0000001277 +B1210074525344N00557447EA0000001281 +B1210094525341N00557433EA0000001284 +B1210114525337N00557421EA0000001286 +B1210134525329N00557416EA0000001289 +B1210154525319N00557418EA0000001292 +B1210174525312N00557423EA0000001296 +B1210194525305N00557429EA0000001299 +B1210214525300N00557439EA0000001302 +B1210234525300N00557449EA0000001304 +B1210254525309N00557451EA0000001306 +B1210274525317N00557442EA0000001308 +B1210294525320N00557426EA0000001311 +B1210314525320N00557410EA0000001314 +B1210334525316N00557397EA0000001318 +B1210354525306N00557381EA0000001322 +B1210374525303N00557377EA0000001323 +B1210394525290N00557376EA0000001326 +B1210414525285N00557382EA0000001328 +B1210434525283N00557391EA0000001324 +B1210454525287N00557399EA0000001325 +B1210474525296N00557399EA0000001326 +B1210494525304N00557388EA0000001326 +B1210514525308N00557371EA0000001327 +B1210534525307N00557355EA0000001331 +B1210554525302N00557344EA0000001334 +B1210584525293N00557334EA0000001336 +B1211004525283N00557331EA0000001337 +B1211024525275N00557338EA0000001339 +B1211044525275N00557345EA0000001340 +B1211064525282N00557346EA0000001342 +B1211084525289N00557335EA0000001344 +B1211104525294N00557318EA0000001345 +B1211124525296N00557301EA0000001346 +B1211144525294N00557285EA0000001347 +B1211164525289N00557272EA0000001348 +B1211184525280N00557264EA0000001347 +B1211204525270N00557265EA0000001345 +B1211224525263N00557272EA0000001343 +B1211244525262N00557283EA0000001341 +B1211264525269N00557288EA0000001339 +B1211284525277N00557285EA0000001337 +B1211304525283N00557274EA0000001335 +B1211324525286N00557257EA0000001333 +B1211344525280N00557240EA0000001332 +B1211364525274N00557226EA0000001331 +B1211384525267N00557210EA0000001328 +B1211404525260N00557194EA0000001326 +B1211424525255N00557176EA0000001323 +B1211444525249N00557157EA0000001320 +B1211464525241N00557142EA0000001319 +B1211484525233N00557128EA0000001317 +B1211504525223N00557115EA0000001315 +B1211524525212N00557107EA0000001312 +B1211544525201N00557101EA0000001307 +B1211564525187N00557097EA0000001301 +B1211584525174N00557095EA0000001296 +B1212004525161N00557093EA0000001292 +B1212024525147N00557092EA0000001286 +B1212044525131N00557090EA0000001282 +B1212064525116N00557086EA0000001276 +B1212084525099N00557082EA0000001272 +B1212104525082N00557079EA0000001268 +B1212124525058N00557073EA0000001263 +B1212144525042N00557068EA0000001259 +B1212164525025N00557064EA0000001255 +B1212184525010N00557058EA0000001251 +B1212204524994N00557051EA0000001246 +B1212224524978N00557045EA0000001241 +B1212244524963N00557038EA0000001237 +B1212264524948N00557034EA0000001231 +B1212284524933N00557032EA0000001226 +B1212304524918N00557029EA0000001221 +B1212324524904N00557028EA0000001215 +B1212344524888N00557027EA0000001211 +B1212374524873N00557025EA0000001207 +B1212394524862N00557024EA0000001205 +B1212414524850N00557021EA0000001202 +B1212434524836N00557019EA0000001201 +B1212454524825N00557019EA0000001201 +B1212474524819N00557021EA0000001204 +B1212494524812N00557020EA0000001205 +B1212514524803N00557021EA0000001208 +B1212534524796N00557022EA0000001213 +B1212554524791N00557027EA0000001216 +B1212574524786N00557035EA0000001220 +B1212594524785N00557046EA0000001224 +B1213014524785N00557046EA0000001228 +B1213034524796N00557062EA0000001231 +B1213054524805N00557058EA0000001235 +B1213074524813N00557049EA0000001239 +B1213094524814N00557036EA0000001242 +B1213114524808N00557024EA0000001245 +B1213134524801N00557016EA0000001249 +B1213154524794N00557009EA0000001252 +B1213174524788N00557003EA0000001255 +B1213194524779N00557003EA0000001257 +B1213214524771N00557009EA0000001259 +B1213234524768N00557021EA0000001261 +B1213254524770N00557031EA0000001264 +B1213274524776N00557037EA0000001266 +B1213294524783N00557038EA0000001267 +B1213314524792N00557035EA0000001269 +B1213334524800N00557030EA0000001273 +B1213354524807N00557024EA0000001276 +B1213374524812N00557014EA0000001278 +B1213394524812N00556999EA0000001278 +B1213414524805N00556985EA0000001281 +B1213434524796N00556983EA0000001282 +B1213454524790N00556991EA0000001284 +B1213474524788N00557002EA0000001288 +B1213494524792N00557011EA0000001291 +B1213514524799N00557014EA0000001293 +B1213534524811N00557007EA0000001295 +B1213554524816N00556995EA0000001296 +B1213574524816N00556980EA0000001296 +B1213594524812N00556966EA0000001299 +B1214014524805N00556957EA0000001300 +B1214034524796N00556953EA0000001302 +B1214054524787N00556952EA0000001306 +B1214074524779N00556950EA0000001310 +B1214094524772N00556951EA0000001312 +B1214114524765N00556956EA0000001314 +B1214134524762N00556967EA0000001316 +B1214154524766N00556978EA0000001317 +B1214184524776N00556981EA0000001318 +B1214204524786N00556976EA0000001319 +B1214224524792N00556964EA0000001321 +B1214244524795N00556951EA0000001321 +B1214264524794N00556934EA0000001322 +B1214284524789N00556918EA0000001325 +B1214304524782N00556908EA0000001328 +B1214324524774N00556902EA0000001330 +B1214344524766N00556902EA0000001330 +B1214364524757N00556908EA0000001331 +B1214384524753N00556917EA0000001334 +B1214404524752N00556921EA0000001334 +B1214424524753N00556935EA0000001334 +B1214444524757N00556946EA0000001334 +B1214464524766N00556950EA0000001333 +B1214484524776N00556944EA0000001332 +B1214504524782N00556927EA0000001331 +B1214524524778N00556910EA0000001331 +B1214544524770N00556899EA0000001334 +B1214564524761N00556891EA0000001333 +B1214584524751N00556884EA0000001334 +B1215004524740N00556880EA0000001335 +B1215024524729N00556877EA0000001336 +B1215044524719N00556871EA0000001336 +B1215064524708N00556867EA0000001334 +B1215084524696N00556861EA0000001331 +B1215104524685N00556853EA0000001329 +B1215124524674N00556847EA0000001326 +B1215144524662N00556842EA0000001323 +B1215164524649N00556838EA0000001319 +B1215184524635N00556834EA0000001317 +B1215204524622N00556829EA0000001315 +B1215224524610N00556823EA0000001312 +B1215244524596N00556817EA0000001309 +B1215264524582N00556810EA0000001306 +B1215284524570N00556803EA0000001303 +B1215304524551N00556795EA0000001298 +B1215324524538N00556791EA0000001293 +B1215344524525N00556785EA0000001289 +B1215364524512N00556780EA0000001284 +B1215384524499N00556775EA0000001278 +B1215404524486N00556770EA0000001272 +B1215424524473N00556767EA0000001267 +B1215444524461N00556762EA0000001260 +B1215464524448N00556756EA0000001253 +B1215484524435N00556752EA0000001247 +B1215504524422N00556748EA0000001241 +B1215524524408N00556741EA0000001235 +B1215554524395N00556735EA0000001230 +B1215574524382N00556728EA0000001224 +B1215594524367N00556718EA0000001217 +B1216014524351N00556710EA0000001210 +B1216034524337N00556706EA0000001205 +B1216054524324N00556701EA0000001200 +B1216074524310N00556694EA0000001195 +B1216094524297N00556687EA0000001191 +B1216114524284N00556680EA0000001187 +B1216134524270N00556673EA0000001182 +B1216154524255N00556666EA0000001178 +B1216174524242N00556658EA0000001175 +B1216194524229N00556651EA0000001172 +B1216214524214N00556645EA0000001168 +B1216234524199N00556639EA0000001164 +B1216254524184N00556634EA0000001160 +B1216274524169N00556628EA0000001156 +B1216294524155N00556624EA0000001153 +B1216314524142N00556619EA0000001152 +B1216334524130N00556616EA0000001151 +B1216354524120N00556616EA0000001151 +B1216374524112N00556614EA0000001152 +B1216394524105N00556612EA0000001154 +B1216414524099N00556611EA0000001155 +B1216434524092N00556608EA0000001156 +B1216454524082N00556602EA0000001155 +B1216474524075N00556598EA0000001156 +B1216494524068N00556598EA0000001158 +B1216514524061N00556599EA0000001160 +B1216534524055N00556600EA0000001164 +B1216554524050N00556600EA0000001168 +B1216574524043N00556597EA0000001171 +B1216594524038N00556586EA0000001173 +B1217014524039N00556571EA0000001175 +B1217034524050N00556564EA0000001177 +B1217054524065N00556566EA0000001180 +B1217074524074N00556575EA0000001184 +B1217094524069N00556588EA0000001190 +B1217114524061N00556585EA0000001194 +B1217134524057N00556574EA0000001199 +B1217154524059N00556560EA0000001203 +B1217174524068N00556549EA0000001207 +B1217194524079N00556548EA0000001211 +B1217214524088N00556554EA0000001215 +B1217234524088N00556563EA0000001219 +B1217254524081N00556565EA0000001222 +B1217274524076N00556553EA0000001226 +B1217294524078N00556540EA0000001231 +B1217314524085N00556533EA0000001235 +B1217344524094N00556531EA0000001241 +B1217364524103N00556537EA0000001246 +B1217384524106N00556550EA0000001251 +B1217404524100N00556559EA0000001255 +B1217424524094N00556557EA0000001260 +B1217444524089N00556545EA0000001264 +B1217464524087N00556532EA0000001269 +B1217484524091N00556521EA0000001274 +B1217504524101N00556515EA0000001278 +B1217524524111N00556517EA0000001282 +B1217544524118N00556528EA0000001286 +B1217564524118N00556541EA0000001289 +B1217584524110N00556546EA0000001292 +B1218004524101N00556540EA0000001296 +B1218024524097N00556526EA0000001299 +B1218044524099N00556513EA0000001302 +B1218064524107N00556505EA0000001306 +B1218084524117N00556507EA0000001310 +B1218104524126N00556517EA0000001313 +B1218124524125N00556529EA0000001317 +B1218144524118N00556533EA0000001321 +B1218164524109N00556528EA0000001323 +B1218184524105N00556515EA0000001326 +B1218204524108N00556502EA0000001327 +B1218224524116N00556495EA0000001330 +B1218244524125N00556493EA0000001334 +B1218264524134N00556490EA0000001338 +B1218284524144N00556492EA0000001341 +B1218304524149N00556501EA0000001344 +B1218324524147N00556507EA0000001347 +B1218344524140N00556502EA0000001349 +B1218364524135N00556490EA0000001351 +B1218384524134N00556477EA0000001354 +B1218404524136N00556463EA0000001356 +B1218424524139N00556449EA0000001354 +B1218444524151N00556444EA0000001355 +B1218464524161N00556451EA0000001355 +B1218484524161N00556465EA0000001356 +B1218504524147N00556468EA0000001355 +B1218524524138N00556460EA0000001357 +B1218544524134N00556446EA0000001360 +B1218564524134N00556433EA0000001362 +B1218584524134N00556420EA0000001364 +B1219004524131N00556408EA0000001365 +B1219024524130N00556395EA0000001367 +B1219044524137N00556382EA0000001368 +B1219064524148N00556379EA0000001369 +B1219084524157N00556383EA0000001370 +B1219104524158N00556392EA0000001370 +B1219124524148N00556394EA0000001369 +B1219154524139N00556385EA0000001369 +B1219174524136N00556372EA0000001371 +B1219194524133N00556361EA0000001374 +B1219214524131N00556348EA0000001377 +B1219234524132N00556334EA0000001378 +B1219254524140N00556326EA0000001379 +B1219274524150N00556328EA0000001380 +B1219294524155N00556338EA0000001381 +B1219314524152N00556346EA0000001381 +B1219334524143N00556344EA0000001382 +B1219354524136N00556331EA0000001382 +B1219374524135N00556315EA0000001383 +B1219394524137N00556300EA0000001385 +B1219414524139N00556283EA0000001386 +B1219434524140N00556266EA0000001388 +B1219454524140N00556249EA0000001389 +B1219474524142N00556233EA0000001389 +B1219494524146N00556219EA0000001389 +B1219514524151N00556205EA0000001387 +B1219534524155N00556188EA0000001384 +B1219554524161N00556170EA0000001381 +B1219574524169N00556154EA0000001379 +B1219594524176N00556139EA0000001379 +B1220014524183N00556125EA0000001380 +B1220034524189N00556110EA0000001381 +B1220054524196N00556096EA0000001383 +B1220074524202N00556084EA0000001384 +B1220094524210N00556076EA0000001385 +B1220114524223N00556076EA0000001383 +B1220134524235N00556089EA0000001382 +B1220154524235N00556104EA0000001380 +B1220174524225N00556108EA0000001378 +B1220194524218N00556096EA0000001376 +B1220214524218N00556080EA0000001376 +B1220234524224N00556069EA0000001376 +B1220254524231N00556059EA0000001373 +B1220274524236N00556046EA0000001372 +B1220294524243N00556024EA0000001369 +B1220314524248N00556008EA0000001366 +B1220334524255N00555991EA0000001362 +B1220354524261N00555974EA0000001359 +B1220374524266N00555957EA0000001356 +B1220394524273N00555939EA0000001352 +B1220414524280N00555921EA0000001351 +B1220434524285N00555905EA0000001349 +B1220454524289N00555888EA0000001346 +B1220474524293N00555870EA0000001344 +B1220494524295N00555850EA0000001343 +B1220514524296N00555832EA0000001343 +B1220544524295N00555816EA0000001341 +B1220564524291N00555802EA0000001338 +B1220584524285N00555788EA0000001338 +B1221004524280N00555778EA0000001337 +B1221024524273N00555770EA0000001334 +B1221044524265N00555759EA0000001330 +B1221064524257N00555748EA0000001328 +B1221084524249N00555737EA0000001326 +B1221104524241N00555728EA0000001323 +B1221124524233N00555719EA0000001320 +B1221144524224N00555710EA0000001318 +B1221164524213N00555700EA0000001317 +B1221184524203N00555691EA0000001318 +B1221204524196N00555682EA0000001321 +B1221224524190N00555672EA0000001323 +B1221244524183N00555666EA0000001325 +B1221264524178N00555666EA0000001325 +B1221284524171N00555670EA0000001324 +B1221304524166N00555676EA0000001324 +B1221324524162N00555684EA0000001323 +B1221344524154N00555688EA0000001322 +B1221364524143N00555683EA0000001322 +B1221384524133N00555675EA0000001324 +B1221404524126N00555667EA0000001327 +B1221424524120N00555657EA0000001328 +B1221444524117N00555643EA0000001328 +B1221464524124N00555629EA0000001329 +B1221484524135N00555628EA0000001329 +B1221504524140N00555643EA0000001330 +B1221524524135N00555653EA0000001331 +B1221544524124N00555649EA0000001332 +B1221564524117N00555636EA0000001332 +B1221584524115N00555618EA0000001333 +B1222004524112N00555602EA0000001332 +B1222024524109N00555585EA0000001330 +B1222044524107N00555565EA0000001329 +B1222064524105N00555547EA0000001328 +B1222084524102N00555530EA0000001328 +B1222104524099N00555502EA0000001328 +B1222124524097N00555486EA0000001329 +B1222144524092N00555471EA0000001329 +B1222164524087N00555455EA0000001329 +B1222184524084N00555439EA0000001331 +B1222204524081N00555425EA0000001333 +B1222224524077N00555414EA0000001338 +B1222244524071N00555409EA0000001339 +B1222264524064N00555413EA0000001340 +B1222284524064N00555425EA0000001341 +B1222314524073N00555434EA0000001342 +B1222334524084N00555435EA0000001344 +B1222354524094N00555430EA0000001346 +B1222374524103N00555417EA0000001346 +B1222394524108N00555398EA0000001348 +B1222414524106N00555382EA0000001351 +B1222434524101N00555373EA0000001355 +B1222454524095N00555364EA0000001357 +B1222474524089N00555363EA0000001358 +B1222494524085N00555370EA0000001359 +B1222514524087N00555381EA0000001360 +B1222534524098N00555383EA0000001361 +B1222554524110N00555376EA0000001362 +B1222574524119N00555361EA0000001362 +B1222594524121N00555342EA0000001362 +B1223014524115N00555328EA0000001362 +B1223034524108N00555320EA0000001363 +B1223054524099N00555315EA0000001362 +B1223074524088N00555314EA0000001362 +B1223094524080N00555311EA0000001362 +B1223114524074N00555304EA0000001364 +B1223134524068N00555299EA0000001366 +B1223154524061N00555298EA0000001367 +B1223174524056N00555303EA0000001368 +B1223194524058N00555312EA0000001369 +B1223214524065N00555318EA0000001370 +B1223234524076N00555318EA0000001370 +B1223254524086N00555319EA0000001370 +B1223274524095N00555325EA0000001370 +B1223294524100N00555336EA0000001371 +B1223314524097N00555346EA0000001371 +B1223334524090N00555347EA0000001372 +B1223354524083N00555339EA0000001374 +B1223374524079N00555328EA0000001376 +B1223394524079N00555315EA0000001378 +B1223414524079N00555302EA0000001379 +B1223434524075N00555292EA0000001379 +B1223454524066N00555287EA0000001379 +B1223474524062N00555294EA0000001380 +B1223494524061N00555304EA0000001380 +B1223514524062N00555315EA0000001379 +B1223534524057N00555324EA0000001380 +B1223554524048N00555326EA0000001382 +B1223574524042N00555315EA0000001383 +B1223594524044N00555298EA0000001384 +B1224014524057N00555288EA0000001384 +B1224034524071N00555292EA0000001384 +B1224054524077N00555305EA0000001383 +B1224074524072N00555316EA0000001385 +B1224104524065N00555320EA0000001390 +B1224124524060N00555326EA0000001392 +B1224144524055N00555334EA0000001397 +B1224164524049N00555339EA0000001402 +B1224184524045N00555338EA0000001405 +B1224204524040N00555331EA0000001407 +B1224224524040N00555321EA0000001409 +B1224244524047N00555310EA0000001411 +B1224264524057N00555310EA0000001413 +B1224284524062N00555320EA0000001414 +B1224304524059N00555328EA0000001416 +B1224324524054N00555330EA0000001419 +B1224344524051N00555325EA0000001422 +B1224364524051N00555315EA0000001424 +B1224384524057N00555305EA0000001427 +B1224404524067N00555300EA0000001428 +B1224424524079N00555310EA0000001430 +B1224444524083N00555325EA0000001431 +B1224464524080N00555334EA0000001432 +B1224484524073N00555333EA0000001433 +B1224504524068N00555331EA0000001436 +B1224524524063N00555329EA0000001438 +B1224544524058N00555325EA0000001440 +B1224564524055N00555316EA0000001442 +B1224584524056N00555306EA0000001443 +B1225004524062N00555295EA0000001444 +B1225024524071N00555289EA0000001445 +B1225044524081N00555296EA0000001446 +B1225064524086N00555307EA0000001447 +B1225084524082N00555316EA0000001447 +B1225104524074N00555315EA0000001448 +B1225124524066N00555313EA0000001448 +B1225144524058N00555308EA0000001447 +B1225164524050N00555299EA0000001446 +B1225184524042N00555290EA0000001446 +B1225204524034N00555285EA0000001447 +B1225224524025N00555283EA0000001448 +B1225244524010N00555282EA0000001447 +B1225264523999N00555276EA0000001445 +B1225284523989N00555270EA0000001442 +B1225304523978N00555263EA0000001438 +B1225324523967N00555254EA0000001434 +B1225344523957N00555245EA0000001431 +B1225364523948N00555237EA0000001428 +B1225384523939N00555227EA0000001425 +B1225404523928N00555217EA0000001421 +B1225424523918N00555207EA0000001418 +B1225454523909N00555197EA0000001417 +B1225474523901N00555186EA0000001415 +B1225494523891N00555173EA0000001412 +B1225514523884N00555161EA0000001411 +B1225534523877N00555150EA0000001410 +B1225554523868N00555141EA0000001410 +B1225574523858N00555133EA0000001411 +B1225594523849N00555127EA0000001413 +B1226014523840N00555122EA0000001416 +B1226034523834N00555117EA0000001419 +B1226054523827N00555112EA0000001421 +B1226074523819N00555112EA0000001422 +B1226094523814N00555120EA0000001423 +B1226114523816N00555131EA0000001423 +B1226134523823N00555138EA0000001424 +B1226154523833N00555133EA0000001424 +B1226174523841N00555118EA0000001424 +B1226194523842N00555102EA0000001426 +B1226214523839N00555089EA0000001427 +B1226234523832N00555079EA0000001429 +B1226254523825N00555071EA0000001431 +B1226274523817N00555066EA0000001432 +B1226294523810N00555064EA0000001435 +B1226314523803N00555068EA0000001437 +B1226334523799N00555076EA0000001440 +B1226354523801N00555085EA0000001442 +B1226374523808N00555091EA0000001443 +B1226394523820N00555084EA0000001445 +B1226414523823N00555067EA0000001445 +B1226434523820N00555049EA0000001446 +B1226454523814N00555038EA0000001448 +B1226474523805N00555034EA0000001449 +B1226494523796N00555032EA0000001452 +B1226514523788N00555030EA0000001456 +B1226534523780N00555029EA0000001459 +B1226554523773N00555028EA0000001461 +B1226574523767N00555032EA0000001463 +B1226594523767N00555045EA0000001465 +B1227014523775N00555053EA0000001466 +B1227034523788N00555045EA0000001469 +B1227054523794N00555029EA0000001471 +B1227074523792N00555013EA0000001473 +B1227094523784N00555007EA0000001475 +B1227114523778N00555009EA0000001477 +B1227134523775N00555018EA0000001479 +B1227154523779N00555027EA0000001480 +B1227174523787N00555032EA0000001482 +B1227194523797N00555027EA0000001484 +B1227214523802N00555012EA0000001485 +B1227244523801N00554994EA0000001486 +B1227264523794N00554983EA0000001487 +B1227284523785N00554980EA0000001489 +B1227304523776N00554978EA0000001492 +B1227324523767N00554979EA0000001495 +B1227344523760N00554987EA0000001499 +B1227364523760N00554999EA0000001502 +B1227384523766N00555012EA0000001505 +B1227404523778N00555018EA0000001508 +B1227424523789N00555010EA0000001511 +B1227444523797N00554994EA0000001514 +B1227464523795N00554979EA0000001517 +B1227484523788N00554970EA0000001519 +B1227504523780N00554964EA0000001522 +B1227524523771N00554961EA0000001525 +B1227544523764N00554956EA0000001529 +B1227564523758N00554953EA0000001533 +B1227584523751N00554959EA0000001536 +B1228004523747N00554971EA0000001538 +B1228024523750N00554984EA0000001540 +B1228044523759N00554996EA0000001540 +B1228064523771N00555000EA0000001541 +B1228084523783N00554992EA0000001541 +B1228104523790N00554977EA0000001543 +B1228124523789N00554963EA0000001544 +B1228144523783N00554956EA0000001547 +B1228164523777N00554959EA0000001549 +B1228184523772N00554967EA0000001550 +B1228204523773N00554978EA0000001550 +B1228224523779N00554990EA0000001551 +B1228244523789N00554993EA0000001551 +B1228264523797N00554985EA0000001551 +B1228284523796N00554973EA0000001552 +B1228304523791N00554963EA0000001555 +B1228324523784N00554958EA0000001557 +B1228344523778N00554958EA0000001558 +B1228364523774N00554965EA0000001560 +B1228384523776N00554976EA0000001562 +B1228404523788N00554982EA0000001565 +B1228424523798N00554980EA0000001568 +B1228444523807N00554972EA0000001570 +B1228464523812N00554958EA0000001573 +B1228484523810N00554943EA0000001575 +B1228504523803N00554935EA0000001576 +B1228524523794N00554941EA0000001579 +B1228544523791N00554953EA0000001582 +B1228564523794N00554965EA0000001585 +B1228584523804N00554972EA0000001588 +B1229004523817N00554971EA0000001591 +B1229034523827N00554962EA0000001594 +B1229054523829N00554946EA0000001596 +B1229074523826N00554938EA0000001598 +B1229094523821N00554941EA0000001601 +B1229114523820N00554952EA0000001603 +B1229134523826N00554964EA0000001606 +B1229154523834N00554971EA0000001609 +B1229174523844N00554967EA0000001611 +B1229194523849N00554955EA0000001613 +B1229214523846N00554939EA0000001616 +B1229234523838N00554938EA0000001619 +B1229254523831N00554946EA0000001623 +B1229274523825N00554959EA0000001626 +B1229294523826N00554974EA0000001629 +B1229314523832N00554982EA0000001632 +B1229334523841N00554981EA0000001634 +B1229354523846N00554969EA0000001637 +B1229374523842N00554955EA0000001639 +B1229394523835N00554948EA0000001642 +B1229414523826N00554948EA0000001645 +B1229434523820N00554954EA0000001647 +B1229454523821N00554966EA0000001650 +B1229474523829N00554975EA0000001652 +B1229494523840N00554973EA0000001655 +B1229514523849N00554960EA0000001657 +B1229534523848N00554940EA0000001659 +B1229554523842N00554929EA0000001661 +B1229574523836N00554936EA0000001665 +B1229594523834N00554946EA0000001670 +B1230014523837N00554957EA0000001673 +B1230034523845N00554967EA0000001677 +B1230054523855N00554965EA0000001679 +B1230074523864N00554952EA0000001682 +B1230094523864N00554936EA0000001684 +B1230114523858N00554927EA0000001686 +B1230134523850N00554932EA0000001689 +B1230154523848N00554937EA0000001694 +B1230174523854N00554961EA0000001698 +B1230194523865N00554966EA0000001700 +B1230214523877N00554959EA0000001702 +B1230234523883N00554946EA0000001703 +B1230254523881N00554933EA0000001704 +B1230274523874N00554926EA0000001707 +B1230294523867N00554920EA0000001711 +B1230314523860N00554915EA0000001716 +B1230334523851N00554915EA0000001720 +B1230354523843N00554921EA0000001724 +B1230374523841N00554931EA0000001729 +B1230394523843N00554942EA0000001732 +B1230424523850N00554952EA0000001734 +B1230444523861N00554954EA0000001734 +B1230464523871N00554944EA0000001735 +B1230484523876N00554929EA0000001735 +B1230504523871N00554913EA0000001736 +B1230524523864N00554906EA0000001738 +B1230544523856N00554900EA0000001739 +B1230564523847N00554893EA0000001741 +B1230584523837N00554890EA0000001744 +B1231004523830N00554888EA0000001749 +B1231024523823N00554883EA0000001753 +B1231044523816N00554881EA0000001757 +B1231064523810N00554887EA0000001759 +B1231084523806N00554899EA0000001762 +B1231104523809N00554911EA0000001763 +B1231124523818N00554920EA0000001764 +B1231144523828N00554920EA0000001765 +B1231164523832N00554907EA0000001766 +B1231184523830N00554893EA0000001769 +B1231204523823N00554888EA0000001772 +B1231224523815N00554891EA0000001775 +B1231244523809N00554900EA0000001776 +B1231264523806N00554912EA0000001777 +B1231284523809N00554924EA0000001776 +B1231304523817N00554932EA0000001774 +B1231324523827N00554930EA0000001773 +B1231344523834N00554922EA0000001771 +B1231364523834N00554908EA0000001769 +B1231384523831N00554896EA0000001768 +B1231404523824N00554889EA0000001769 +B1231424523817N00554881EA0000001771 +B1231444523811N00554870EA0000001773 +B1231464523806N00554860EA0000001777 +B1231484523799N00554856EA0000001782 +B1231504523791N00554851EA0000001787 +B1231524523785N00554839EA0000001791 +B1231544523786N00554823EA0000001795 +B1231564523793N00554811EA0000001801 +B1231584523799N00554821EA0000001805 +B1232004523801N00554835EA0000001810 +B1232024523803N00554846EA0000001814 +B1232044523802N00554857EA0000001817 +B1232064523793N00554863EA0000001819 +B1232084523787N00554856EA0000001820 +B1232104523785N00554844EA0000001821 +B1232124523794N00554841EA0000001822 +B1232144523803N00554849EA0000001824 +B1232164523808N00554862EA0000001827 +B1232194523805N00554874EA0000001829 +B1232214523796N00554876EA0000001831 +B1232234523791N00554864EA0000001833 +B1232254523793N00554850EA0000001835 +B1232274523800N00554846EA0000001838 +B1232294523811N00554851EA0000001840 +B1232314523818N00554860EA0000001844 +B1232334523819N00554872EA0000001846 +B1232354523812N00554879EA0000001848 +B1232374523804N00554875EA0000001850 +B1232394523802N00554863EA0000001851 +B1232414523802N00554863EA0000001854 +B1232434523819N00554859EA0000001856 +B1232454523823N00554870EA0000001858 +B1232474523819N00554883EA0000001860 +B1232494523812N00554887EA0000001862 +B1232514523805N00554878EA0000001863 +B1232534523806N00554864EA0000001864 +B1232554523811N00554857EA0000001866 +B1232574523817N00554864EA0000001868 +B1232594523815N00554876EA0000001870 +B1233014523806N00554881EA0000001871 +B1233034523799N00554874EA0000001872 +B1233054523800N00554863EA0000001872 +B1233074523809N00554856EA0000001875 +B1233094523816N00554850EA0000001879 +B1233114523823N00554844EA0000001882 +B1233134523832N00554843EA0000001884 +B1233154523841N00554850EA0000001886 +B1233174523842N00554863EA0000001888 +B1233194523836N00554873EA0000001889 +B1233214523827N00554869EA0000001891 +B1233234523820N00554860EA0000001894 +B1233254523815N00554847EA0000001896 +B1233274523816N00554834EA0000001898 +B1233294523822N00554826EA0000001900 +B1233314523829N00554828EA0000001902 +B1233334523830N00554848EA0000001905 +B1233354523821N00554858EA0000001907 +B1233374523812N00554855EA0000001909 +B1233394523805N00554846EA0000001913 +B1233414523796N00554832EA0000001915 +B1233434523802N00554821EA0000001919 +B1233454523814N00554822EA0000001922 +B1233474523821N00554839EA0000001925 +B1233494523817N00554859EA0000001929 +B1233514523804N00554864EA0000001931 +B1233534523794N00554851EA0000001933 +B1233564523794N00554837EA0000001936 +B1233584523806N00554833EA0000001941 +B1234004523817N00554839EA0000001946 +B1234024523823N00554854EA0000001951 +B1234044523816N00554867EA0000001954 +B1234064523803N00554868EA0000001957 +B1234084523796N00554857EA0000001959 +B1234104523800N00554842EA0000001961 +B1234124523809N00554837EA0000001966 +B1234144523818N00554845EA0000001970 +B1234164523823N00554863EA0000001974 +B1234184523818N00554877EA0000001977 +B1234204523807N00554881EA0000001979 +B1234224523807N00554881EA0000001981 +B1234244523798N00554856EA0000001983 +B1234264523807N00554849EA0000001986 +B1234284523816N00554859EA0000001988 +B1234304523819N00554881EA0000001993 +B1234324523813N00554892EA0000001996 +B1234344523804N00554892EA0000001997 +B1234364523795N00554888EA0000001996 +B1234384523788N00554880EA0000001999 +B1234404523785N00554868EA0000002001 +B1234424523786N00554855EA0000002004 +B1234444523787N00554844EA0000002009 +B1234464523784N00554836EA0000002015 +B1234484523778N00554829EA0000002019 +B1234504523770N00554827EA0000002023 +B1234524523761N00554833EA0000002029 +B1234544523756N00554845EA0000002033 +B1234564523753N00554862EA0000002038 +B1234584523754N00554879EA0000002043 +B1235004523761N00554892EA0000002046 +B1235024523771N00554896EA0000002051 +B1235044523779N00554889EA0000002056 +B1235064523782N00554877EA0000002060 +B1235084523780N00554866EA0000002065 +B1235104523776N00554858EA0000002073 +B1235124523765N00554850EA0000002079 +B1235144523756N00554848EA0000002085 +B1235164523749N00554857EA0000002090 +B1235184523745N00554870EA0000002095 +B1235204523741N00554885EA0000002099 +B1235224523743N00554902EA0000002102 +B1235244523752N00554915EA0000002106 +B1235264523764N00554914EA0000002109 +B1235284523771N00554906EA0000002113 +B1235304523775N00554894EA0000002120 +B1235324523777N00554884EA0000002127 +B1235354523776N00554875EA0000002133 +B1235374523773N00554866EA0000002138 +B1235394523766N00554858EA0000002142 +B1235414523757N00554853EA0000002147 +B1235434523748N00554857EA0000002152 +B1235454523741N00554867EA0000002157 +B1235474523739N00554882EA0000002161 +B1235494523742N00554898EA0000002164 +B1235514523750N00554909EA0000002168 +B1235534523759N00554910EA0000002172 +B1235554523766N00554904EA0000002176 +B1235574523767N00554894EA0000002182 +B1235594523765N00554884EA0000002186 +B1236014523762N00554875EA0000002191 +B1236034523758N00554866EA0000002196 +B1236054523749N00554860EA0000002201 +B1236074523740N00554863EA0000002206 +B1236094523732N00554873EA0000002212 +B1236114523727N00554886EA0000002218 +B1236134523727N00554901EA0000002223 +B1236154523732N00554916EA0000002228 +B1236174523741N00554925EA0000002232 +B1236194523751N00554926EA0000002237 +B1236214523757N00554920EA0000002241 +B1236234523759N00554911EA0000002244 +B1236254523759N00554901EA0000002246 +B1236274523754N00554891EA0000002250 +B1236294523747N00554884EA0000002254 +B1236314523739N00554882EA0000002258 +B1236334523729N00554884EA0000002263 +B1236354523720N00554884EA0000002268 +B1236374523711N00554880EA0000002271 +B1236394523703N00554877EA0000002274 +B1236414523695N00554874EA0000002277 +B1236434523687N00554871EA0000002278 +B1236454523678N00554865EA0000002278 +B1236474523666N00554859EA0000002279 +B1236494523655N00554854EA0000002281 +B1236514523638N00554848EA0000002281 +B1236534523626N00554843EA0000002283 +B1236554523615N00554838EA0000002286 +B1236574523606N00554834EA0000002288 +B1236594523596N00554830EA0000002288 +B1237014523585N00554825EA0000002290 +B1237034523574N00554820EA0000002292 +B1237054523563N00554817EA0000002295 +B1237074523552N00554812EA0000002296 +B1237094523541N00554807EA0000002298 +B1237114523530N00554803EA0000002300 +B1237144523518N00554802EA0000002300 +B1237164523504N00554800EA0000002301 +B1237184523492N00554797EA0000002302 +B1237204523482N00554792EA0000002302 +B1237224523471N00554789EA0000002300 +B1237244523458N00554784EA0000002298 +B1237264523446N00554779EA0000002298 +B1237284523434N00554775EA0000002297 +B1237304523423N00554769EA0000002296 +B1237324523410N00554762EA0000002293 +B1237344523396N00554756EA0000002291 +B1237364523383N00554748EA0000002290 +B1237384523371N00554740EA0000002289 +B1237404523357N00554732EA0000002288 +B1237424523343N00554724EA0000002288 +B1237444523331N00554716EA0000002288 +B1237464523318N00554710EA0000002287 +B1237484523305N00554702EA0000002285 +B1237504523294N00554695EA0000002285 +B1237524523285N00554690EA0000002286 +B1237544523275N00554684EA0000002285 +B1237564523265N00554677EA0000002286 +B1237584523255N00554671EA0000002287 +B1238004523245N00554668EA0000002287 +B1238024523234N00554662EA0000002286 +B1238044523222N00554656EA0000002285 +B1238064523210N00554651EA0000002284 +B1238084523198N00554644EA0000002282 +B1238104523184N00554636EA0000002281 +B1238124523170N00554630EA0000002278 +B1238144523156N00554623EA0000002274 +B1238164523140N00554614EA0000002271 +B1238184523125N00554611EA0000002269 +B1238204523111N00554605EA0000002265 +B1238224523096N00554596EA0000002263 +B1238244523082N00554589EA0000002260 +B1238264523069N00554582EA0000002256 +B1238284523055N00554574EA0000002251 +B1238304523035N00554564EA0000002245 +B1238324523022N00554559EA0000002243 +B1238344523008N00554553EA0000002239 +B1238364522992N00554544EA0000002234 +B1238384522977N00554534EA0000002231 +B1238404522963N00554527EA0000002227 +B1238424522948N00554521EA0000002222 +B1238444522932N00554513EA0000002215 +B1238464522915N00554506EA0000002210 +B1238484522899N00554498EA0000002206 +B1238504522884N00554489EA0000002204 +B1238534522868N00554480EA0000002203 +B1238554522853N00554471EA0000002203 +B1238574522838N00554463EA0000002205 +B1238594522827N00554457EA0000002208 +B1239014522819N00554451EA0000002210 +B1239034522811N00554446EA0000002210 +B1239054522801N00554440EA0000002210 +B1239074522790N00554434EA0000002211 +B1239094522778N00554429EA0000002213 +B1239114522765N00554425EA0000002216 +B1239134522752N00554420EA0000002219 +B1239154522741N00554415EA0000002223 +B1239174522731N00554409EA0000002226 +B1239194522731N00554409EA0000002228 +B1239214522707N00554396EA0000002229 +B1239234522695N00554390EA0000002231 +B1239254522683N00554385EA0000002233 +B1239274522670N00554380EA0000002234 +B1239294522657N00554376EA0000002234 +B1239314522643N00554371EA0000002233 +B1239334522630N00554368EA0000002232 +B1239354522618N00554362EA0000002231 +B1239374522606N00554357EA0000002229 +B1239394522592N00554349EA0000002226 +B1239414522580N00554342EA0000002225 +B1239434522569N00554335EA0000002224 +B1239454522556N00554330EA0000002223 +B1239474522542N00554326EA0000002221 +B1239494522527N00554322EA0000002221 +B1239514522514N00554320EA0000002221 +B1239534522500N00554318EA0000002220 +B1239554522485N00554315EA0000002219 +B1239574522470N00554310EA0000002219 +B1239594522457N00554306EA0000002220 +B1240014522444N00554302EA0000002220 +B1240034522429N00554295EA0000002219 +B1240054522416N00554288EA0000002220 +B1240074522404N00554281EA0000002221 +B1240094522389N00554274EA0000002222 +B1240114522370N00554263EA0000002226 +B1240134522357N00554258EA0000002228 +B1240154522344N00554255EA0000002228 +B1240174522332N00554251EA0000002227 +B1240194522319N00554247EA0000002226 +B1240214522306N00554244EA0000002226 +B1240234522293N00554239EA0000002227 +B1240254522282N00554235EA0000002231 +B1240274522269N00554231EA0000002234 +B1240294522258N00554227EA0000002239 +B1240314522249N00554223EA0000002243 +B1240344522240N00554218EA0000002246 +B1240364522231N00554212EA0000002247 +B1240384522222N00554206EA0000002249 +B1240404522214N00554199EA0000002251 +B1240424522204N00554193EA0000002253 +B1240444522194N00554186EA0000002255 +B1240464522185N00554182EA0000002256 +B1240484522176N00554177EA0000002256 +B1240504522165N00554171EA0000002254 +B1240524522152N00554164EA0000002251 +B1240544522139N00554156EA0000002250 +B1240564522133N00554153EA0000002247 +B1240584522115N00554148EA0000002243 +B1241004522115N00554148EA0000002237 +B1241024522090N00554137EA0000002231 +B1241044522076N00554133EA0000002227 +B1241064522063N00554128EA0000002223 +B1241084522051N00554123EA0000002219 +B1241104522037N00554118EA0000002214 +B1241124522023N00554108EA0000002210 +B1241144522011N00554102EA0000002208 +B1241164522005N00554105EA0000002207 +B1241184522002N00554104EA0000002209 +B1241204521995N00554100EA0000002210 +B1241224521986N00554095EA0000002213 +B1241244521979N00554089EA0000002218 +B1241264521972N00554084EA0000002220 +B1241284521963N00554078EA0000002222 +B1241304521953N00554072EA0000002225 +B1241324521945N00554069EA0000002228 +B1241344521935N00554063EA0000002230 +B1241364521927N00554056EA0000002231 +B1241384521917N00554050EA0000002231 +B1241404521905N00554041EA0000002230 +B1241424521895N00554033EA0000002231 +B1241444521887N00554028EA0000002232 +B1241464521876N00554022EA0000002232 +B1241484521864N00554012EA0000002233 +B1241504521851N00553999EA0000002241 +B1241524521845N00553992EA0000002249 +B1241544521838N00553983EA0000002258 +B1241564521833N00553975EA0000002265 +B1241584521829N00553966EA0000002271 +B1242004521823N00553957EA0000002278 +B1242024521818N00553949EA0000002284 +B1242044521812N00553940EA0000002291 +B1242064521808N00553934EA0000002297 +B1242084521802N00553928EA0000002301 +B1242104521796N00553919EA0000002304 +B1242124521789N00553911EA0000002306 +B1242154521782N00553900EA0000002308 +B1242174521775N00553887EA0000002310 +B1242194521767N00553875EA0000002314 +B1242214521761N00553865EA0000002319 +B1242234521754N00553856EA0000002322 +B1242254521745N00553844EA0000002327 +B1242274521738N00553836EA0000002334 +B1242294521732N00553832EA0000002339 +B1242314521723N00553828EA0000002342 +B1242334521718N00553825EA0000002345 +B1242354521704N00553819EA0000002348 +B1242374521695N00553814EA0000002349 +B1242394521685N00553806EA0000002350 +B1242414521672N00553796EA0000002348 +B1242434521658N00553785EA0000002348 +B1242454521645N00553775EA0000002350 +B1242474521635N00553768EA0000002352 +B1242494521624N00553760EA0000002352 +B1242514521612N00553750EA0000002354 +B1242534521601N00553741EA0000002357 +B1242554521591N00553731EA0000002360 +B1242574521582N00553719EA0000002365 +B1242594521573N00553709EA0000002370 +B1243014521563N00553699EA0000002377 +B1243034521552N00553687EA0000002384 +B1243054521544N00553682EA0000002393 +B1243074521538N00553686EA0000002403 +B1243094521532N00553689EA0000002409 +B1243114521524N00553684EA0000002414 +B1243134521517N00553675EA0000002419 +B1243154521510N00553667EA0000002422 +B1243174521501N00553662EA0000002424 +B1243194521489N00553654EA0000002424 +B1243214521477N00553643EA0000002426 +B1243234521466N00553632EA0000002425 +B1243254521454N00553620EA0000002423 +B1243274521441N00553606EA0000002423 +B1243294521428N00553595EA0000002425 +B1243314521410N00553581EA0000002426 +B1243334521397N00553573EA0000002424 +B1243354521381N00553564EA0000002424 +B1243374521368N00553558EA0000002426 +B1243394521359N00553553EA0000002428 +B1243414521349N00553546EA0000002427 +B1243434521336N00553537EA0000002425 +B1243454521326N00553531EA0000002424 +B1243474521318N00553526EA0000002421 +B1243494521309N00553522EA0000002418 +B1243514521298N00553515EA0000002411 +B1243544521287N00553507EA0000002403 +B1243564521274N00553501EA0000002397 +B1243584521262N00553493EA0000002393 +B1244004521251N00553484EA0000002389 +B1244024521239N00553476EA0000002385 +B1244044521228N00553466EA0000002381 +B1244064521216N00553456EA0000002377 +B1244084521204N00553447EA0000002374 +B1244104521193N00553439EA0000002371 +B1244124521183N00553428EA0000002366 +B1244144521170N00553418EA0000002360 +B1244164521157N00553407EA0000002356 +B1244184521144N00553399EA0000002353 +B1244204521132N00553393EA0000002349 +B1244224521121N00553386EA0000002344 +B1244244521108N00553379EA0000002338 +B1244264521095N00553372EA0000002333 +B1244284521084N00553365EA0000002328 +B1244304521072N00553357EA0000002321 +B1244324521060N00553348EA0000002316 +B1244344521048N00553340EA0000002311 +B1244364521036N00553331EA0000002307 +B1244384521025N00553322EA0000002301 +B1244404521013N00553314EA0000002296 +B1244424521001N00553305EA0000002292 +B1244444520989N00553297EA0000002288 +B1244464520978N00553289EA0000002284 +B1244484520965N00553282EA0000002280 +B1244504520952N00553274EA0000002277 +B1244524520940N00553266EA0000002273 +B1244544520928N00553258EA0000002271 +B1244564520915N00553250EA0000002269 +B1244584520904N00553242EA0000002268 +B1245004520894N00553233EA0000002266 +B1245024520882N00553221EA0000002264 +B1245044520870N00553208EA0000002264 +B1245064520859N00553195EA0000002264 +B1245084520848N00553184EA0000002263 +B1245104520831N00553169EA0000002260 +B1245124520819N00553160EA0000002257 +B1245144520807N00553153EA0000002255 +B1245164520794N00553149EA0000002253 +B1245184520783N00553144EA0000002250 +B1245204520772N00553138EA0000002247 +B1245224520762N00553130EA0000002242 +B1245244520751N00553122EA0000002237 +B1245264520741N00553116EA0000002233 +B1245284520730N00553107EA0000002228 +B1245304520720N00553096EA0000002223 +B1245324520709N00553086EA0000002219 +B1245354520699N00553075EA0000002215 +B1245374520688N00553063EA0000002211 +B1245394520677N00553054EA0000002208 +B1245414520666N00553045EA0000002205 +B1245434520656N00553034EA0000002201 +B1245454520643N00553025EA0000002195 +B1245474520630N00553018EA0000002192 +B1245494520620N00553010EA0000002189 +B1245514520612N00553001EA0000002186 +B1245534520602N00552993EA0000002182 +B1245554520591N00552985EA0000002180 +B1245574520581N00552978EA0000002178 +B1245594520581N00552978EA0000002175 +B1246014520560N00552961EA0000002173 +B1246034520548N00552953EA0000002173 +B1246054520536N00552945EA0000002173 +B1246074520525N00552938EA0000002175 +B1246094520512N00552932EA0000002177 +B1246114520503N00552926EA0000002181 +B1246134520499N00552919EA0000002184 +B1246154520492N00552913EA0000002187 +B1246174520484N00552905EA0000002191 +B1246194520478N00552897EA0000002197 +B1246214520472N00552890EA0000002204 +B1246234520464N00552882EA0000002208 +B1246254520452N00552872EA0000002212 +B1246274520440N00552864EA0000002218 +B1246294520430N00552859EA0000002223 +B1246314520419N00552851EA0000002225 +B1246334520405N00552842EA0000002225 +B1246354520394N00552831EA0000002223 +B1246374520386N00552819EA0000002222 +B1246394520377N00552811EA0000002220 +B1246414520367N00552803EA0000002217 +B1246434520357N00552792EA0000002215 +B1246454520345N00552784EA0000002214 +B1246474520333N00552777EA0000002214 +B1246494520326N00552774EA0000002216 +B1246514520300N00552760EA0000002222 +B1246534520288N00552755EA0000002228 +B1246554520277N00552752EA0000002235 +B1246574520269N00552744EA0000002245 +B1246594520260N00552735EA0000002256 +B1247014520251N00552726EA0000002267 +B1247034520242N00552718EA0000002279 +B1247054520236N00552712EA0000002291 +B1247074520228N00552706EA0000002301 +B1247094520219N00552699EA0000002309 +B1247114520210N00552689EA0000002316 +B1247144520201N00552681EA0000002322 +B1247164520192N00552673EA0000002327 +B1247184520181N00552666EA0000002330 +B1247204520169N00552659EA0000002330 +B1247224520158N00552653EA0000002331 +B1247244520151N00552648EA0000002333 +B1247264520146N00552641EA0000002334 +B1247284520137N00552636EA0000002333 +B1247304520128N00552628EA0000002332 +B1247324520120N00552620EA0000002333 +B1247344520111N00552614EA0000002332 +B1247364520101N00552608EA0000002330 +B1247384520090N00552600EA0000002326 +B1247404520079N00552592EA0000002321 +B1247424520067N00552583EA0000002315 +B1247444520055N00552573EA0000002309 +B1247464520047N00552565EA0000002305 +B1247484520040N00552558EA0000002301 +B1247504520029N00552549EA0000002297 +B1247524520018N00552538EA0000002294 +B1247544520009N00552528EA0000002293 +B1247564520001N00552516EA0000002295 +B1247584519993N00552504EA0000002299 +B1248004519986N00552492EA0000002306 +B1248024519980N00552478EA0000002310 +B1248044519973N00552466EA0000002316 +B1248064519964N00552455EA0000002321 +B1248084519955N00552445EA0000002327 +B1248104519945N00552433EA0000002331 +B1248124519934N00552422EA0000002337 +B1248144519923N00552411EA0000002345 +B1248164519915N00552405EA0000002353 +B1248184519907N00552398EA0000002359 +B1248204519897N00552390EA0000002364 +B1248224519886N00552382EA0000002372 +B1248244519879N00552373EA0000002381 +B1248264519873N00552365EA0000002389 +B1248284519866N00552358EA0000002396 +B1248304519851N00552349EA0000002407 +B1248324519843N00552343EA0000002414 +B1248344519832N00552336EA0000002420 +B1248364519819N00552332EA0000002424 +B1248384519807N00552328EA0000002429 +B1248404519798N00552324EA0000002433 +B1248424519787N00552321EA0000002436 +B1248444519776N00552317EA0000002436 +B1248464519765N00552309EA0000002433 +B1248484519756N00552299EA0000002429 +B1248504519748N00552294EA0000002424 +B1248524519738N00552291EA0000002417 +B1248554519726N00552285EA0000002411 +B1248574519716N00552279EA0000002407 +B1248594519707N00552275EA0000002402 +B1249014519696N00552268EA0000002395 +B1249034519682N00552262EA0000002391 +B1249054519671N00552257EA0000002388 +B1249074519664N00552255EA0000002385 +B1249094519653N00552251EA0000002380 +B1249114519641N00552243EA0000002377 +B1249134519629N00552236EA0000002375 +B1249154519618N00552229EA0000002370 +B1249174519605N00552220EA0000002367 +B1249194519594N00552212EA0000002365 +B1249214519583N00552205EA0000002364 +B1249234519571N00552197EA0000002360 +B1249254519558N00552189EA0000002357 +B1249274519545N00552181EA0000002355 +B1249294519534N00552174EA0000002354 +B1249314519523N00552166EA0000002351 +B1249334519512N00552158EA0000002349 +B1249354519500N00552150EA0000002348 +B1249374519489N00552142EA0000002345 +B1249394519478N00552134EA0000002342 +B1249414519466N00552125EA0000002337 +B1249434519455N00552116EA0000002334 +B1249454519444N00552105EA0000002331 +B1249474519433N00552095EA0000002328 +B1249494519421N00552085EA0000002324 +B1249514519408N00552076EA0000002322 +B1249534519396N00552069EA0000002319 +B1249554519383N00552063EA0000002317 +B1249574519369N00552056EA0000002314 +B1249594519356N00552051EA0000002312 +B1250014519343N00552046EA0000002308 +B1250034519330N00552040EA0000002305 +B1250054519316N00552033EA0000002302 +B1250074519303N00552026EA0000002300 +B1250094519291N00552017EA0000002297 +B1250114519273N00552004EA0000002292 +B1250134519260N00551996EA0000002288 +B1250154519248N00551988EA0000002283 +B1250174519234N00551980EA0000002279 +B1250194519221N00551970EA0000002275 +B1250214519208N00551962EA0000002274 +B1250234519196N00551954EA0000002272 +B1250254519183N00551944EA0000002270 +B1250274519171N00551934EA0000002267 +B1250294519158N00551923EA0000002263 +B1250314519143N00551911EA0000002260 +B1250334519130N00551899EA0000002258 +B1250364519118N00551890EA0000002258 +B1250384519105N00551879EA0000002258 +B1250404519093N00551867EA0000002259 +B1250424519082N00551854EA0000002261 +B1250444519070N00551843EA0000002261 +B1250464519056N00551832EA0000002261 +B1250484519042N00551823EA0000002262 +B1250504519029N00551813EA0000002263 +B1250524519015N00551802EA0000002263 +B1250544519002N00551791EA0000002265 +B1250564518990N00551779EA0000002268 +B1250584518980N00551766EA0000002271 +B1251004518971N00551754EA0000002277 +B1251024518962N00551742EA0000002281 +B1251044518953N00551731EA0000002287 +B1251064518945N00551722EA0000002293 +B1251084518937N00551715EA0000002299 +B1251104518928N00551708EA0000002304 +B1251124518919N00551700EA0000002310 +B1251144518911N00551693EA0000002317 +B1251164518904N00551684EA0000002323 +B1251184518897N00551675EA0000002328 +B1251204518889N00551667EA0000002334 +B1251224518882N00551659EA0000002339 +B1251244518874N00551649EA0000002342 +B1251264518864N00551639EA0000002346 +B1251284518854N00551629EA0000002350 +B1251304518845N00551618EA0000002353 +B1251324518835N00551608EA0000002356 +B1251344518825N00551598EA0000002361 +B1251364518816N00551592EA0000002367 +B1251384518811N00551590EA0000002371 +B1251404518802N00551586EA0000002373 +B1251424518793N00551580EA0000002374 +B1251444518783N00551573EA0000002374 +B1251464518771N00551566EA0000002371 +B1251484518761N00551561EA0000002371 +B1251504518752N00551558EA0000002368 +B1251524518739N00551551EA0000002363 +B1251544518730N00551546EA0000002362 +B1251564518723N00551539EA0000002360 +B1251584518716N00551533EA0000002356 +B1252004518706N00551525EA0000002353 +B1252024518696N00551518EA0000002351 +B1252044518688N00551513EA0000002348 +B1252064518679N00551507EA0000002344 +B1252084518667N00551499EA0000002338 +B1252104518655N00551489EA0000002335 +B1252124518644N00551479EA0000002334 +B1252144518634N00551470EA0000002334 +B1252174518623N00551465EA0000002335 +B1252194518614N00551462EA0000002334 +B1252214518603N00551461EA0000002331 +B1252234518591N00551459EA0000002329 +B1252254518580N00551457EA0000002329 +B1252274518569N00551455EA0000002330 +B1252294518558N00551451EA0000002332 +B1252314518550N00551448EA0000002337 +B1252334518544N00551448EA0000002340 +B1252354518535N00551446EA0000002345 +B1252374518528N00551444EA0000002351 +B1252394518528N00551444EA0000002356 +B1252414518515N00551451EA0000002362 +B1252434518509N00551452EA0000002369 +B1252454518506N00551444EA0000002374 +B1252474518510N00551434EA0000002380 +B1252494518522N00551432EA0000002386 +B1252514518534N00551441EA0000002391 +B1252534518537N00551460EA0000002397 +B1252554518531N00551476EA0000002402 +B1252574518522N00551480EA0000002407 +B1252594518515N00551469EA0000002412 +B1253014518515N00551454EA0000002418 +B1253034518525N00551447EA0000002423 +B1253054518536N00551456EA0000002429 +B1253074518542N00551472EA0000002435 +B1253094518538N00551489EA0000002439 +B1253114518528N00551497EA0000002443 +B1253134518520N00551491EA0000002447 +B1253154518518N00551480EA0000002451 +B1253174518528N00551473EA0000002457 +B1253194518539N00551479EA0000002461 +B1253214518544N00551494EA0000002466 +B1253234518540N00551510EA0000002469 +B1253254518532N00551516EA0000002473 +B1253274518523N00551509EA0000002476 +B1253294518513N00551499EA0000002477 +B1253314518497N00551479EA0000002477 +B1253334518488N00551462EA0000002476 +B1253354518476N00551443EA0000002467 +B1253374518465N00551433EA0000002464 +B1253394518456N00551421EA0000002460 +B1253414518447N00551410EA0000002456 +B1253434518436N00551401EA0000002451 +B1253454518426N00551389EA0000002448 +B1253474518418N00551378EA0000002446 +B1253494518410N00551367EA0000002443 +B1253514518402N00551356EA0000002441 +B1253544518393N00551343EA0000002439 +B1253564518385N00551332EA0000002438 +B1253584518377N00551321EA0000002439 +B1254004518369N00551308EA0000002438 +B1254024518360N00551295EA0000002438 +B1254044518351N00551281EA0000002439 +B1254064518344N00551267EA0000002439 +B1254084518336N00551253EA0000002438 +B1254104518325N00551239EA0000002438 +B1254124518315N00551225EA0000002438 +B1254144518306N00551212EA0000002437 +B1254164518295N00551198EA0000002436 +B1254184518285N00551184EA0000002436 +B1254204518275N00551171EA0000002435 +B1254224518266N00551158EA0000002433 +B1254244518256N00551143EA0000002431 +B1254264518246N00551129EA0000002429 +B1254284518236N00551115EA0000002429 +B1254304518229N00551101EA0000002427 +B1254324518221N00551087EA0000002425 +B1254344518212N00551074EA0000002424 +B1254364518205N00551060EA0000002423 +B1254384518198N00551046EA0000002422 +B1254404518191N00551033EA0000002421 +B1254424518183N00551020EA0000002420 +B1254444518177N00551006EA0000002419 +B1254464518169N00550993EA0000002417 +B1254484518161N00550978EA0000002413 +B1254504518151N00550962EA0000002410 +B1254524518142N00550948EA0000002408 +B1254544518133N00550935EA0000002404 +B1254564518123N00550920EA0000002399 +B1254584518112N00550905EA0000002395 +B1255004518102N00550890EA0000002392 +B1255024518091N00550877EA0000002388 +B1255044518081N00550864EA0000002384 +B1255064518071N00550850EA0000002379 +B1255084518059N00550835EA0000002372 +B1255104518043N00550813EA0000002365 +B1255124518035N00550797EA0000002362 +B1255144518029N00550783EA0000002360 +B1255164518027N00550771EA0000002358 +B1255184518023N00550758EA0000002354 +B1255204518017N00550743EA0000002351 +B1255224518011N00550729EA0000002350 +B1255244518005N00550716EA0000002348 +B1255264517999N00550702EA0000002344 +B1255284517992N00550687EA0000002342 +B1255304517986N00550673EA0000002340 +B1255324517981N00550660EA0000002337 +B1255354517975N00550647EA0000002333 +B1255374517968N00550632EA0000002328 +B1255394517961N00550616EA0000002322 +B1255414517953N00550599EA0000002318 +B1255434517946N00550583EA0000002314 +B1255454517939N00550567EA0000002309 +B1255474517932N00550549EA0000002303 +B1255494517924N00550531EA0000002298 +B1255514517917N00550514EA0000002295 +B1255534517910N00550497EA0000002290 +B1255554517904N00550481EA0000002285 +B1255574517895N00550467EA0000002282 +B1255594517889N00550456EA0000002280 +B1256014517884N00550448EA0000002275 +B1256034517877N00550437EA0000002270 +B1256054517870N00550422EA0000002267 +B1256074517866N00550412EA0000002264 +B1256094517862N00550402EA0000002258 +B1256114517856N00550386EA0000002253 +B1256134517852N00550369EA0000002250 +B1256154517850N00550358EA0000002248 +B1256174517847N00550349EA0000002243 +B1256194517841N00550335EA0000002238 +B1256214517832N00550322EA0000002236 +B1256234517824N00550312EA0000002232 +B1256254517815N00550302EA0000002227 +B1256274517806N00550290EA0000002223 +B1256294517798N00550279EA0000002220 +B1256314517790N00550270EA0000002218 +B1256334517780N00550260EA0000002216 +B1256354517769N00550249EA0000002213 +B1256374517759N00550237EA0000002210 +B1256394517750N00550226EA0000002209 +B1256414517741N00550215EA0000002206 +B1256434517729N00550203EA0000002203 +B1256454517720N00550191EA0000002199 +B1256474517711N00550179EA0000002197 +B1256494517702N00550167EA0000002193 +B1256514517685N00550148EA0000002185 +B1256534517673N00550135EA0000002181 +B1256554517662N00550123EA0000002177 +B1256574517650N00550111EA0000002172 +B1256594517638N00550097EA0000002167 +B1257014517627N00550083EA0000002164 +B1257034517616N00550070EA0000002161 +B1257054517604N00550059EA0000002157 +B1257074517592N00550047EA0000002153 +B1257094517580N00550033EA0000002148 +B1257114517567N00550020EA0000002144 +B1257134517556N00550006EA0000002141 +B1257164517544N00549992EA0000002137 +B1257184517531N00549978EA0000002133 +B1257204517520N00549966EA0000002130 +B1257224517508N00549953EA0000002127 +B1257244517496N00549941EA0000002123 +B1257264517485N00549928EA0000002118 +B1257284517474N00549913EA0000002113 +B1257304517463N00549899EA0000002108 +B1257324517452N00549886EA0000002102 +B1257344517440N00549872EA0000002096 +B1257364517428N00549858EA0000002091 +B1257384517422N00549851EA0000002085 +B1257404517404N00549831EA0000002080 +B1257424517392N00549817EA0000002075 +B1257444517380N00549803EA0000002068 +B1257464517367N00549789EA0000002062 +B1257484517354N00549774EA0000002057 +B1257504517342N00549759EA0000002053 +B1257524517330N00549745EA0000002050 +B1257544517318N00549731EA0000002047 +B1257564517306N00549716EA0000002044 +B1257584517295N00549701EA0000002042 +B1258004517283N00549687EA0000002041 +B1258024517271N00549675EA0000002039 +B1258044517257N00549664EA0000002036 +B1258064517246N00549651EA0000002032 +B1258084517235N00549636EA0000002027 +B1258104517222N00549623EA0000002022 +B1258124517209N00549609EA0000002019 +B1258144517198N00549595EA0000002016 +B1258164517185N00549582EA0000002012 +B1258184517172N00549570EA0000002008 +B1258204517160N00549556EA0000002004 +B1258224517149N00549544EA0000002001 +B1258244517139N00549538EA0000002000 +B1258264517131N00549532EA0000001996 +B1258284517122N00549524EA0000001993 +B1258304517112N00549517EA0000001992 +B1258324517096N00549510EA0000001987 +B1258344517086N00549503EA0000001983 +B1258364517076N00549495EA0000001980 +B1258384517066N00549487EA0000001977 +B1258404517057N00549479EA0000001973 +B1258424517047N00549469EA0000001969 +B1258444517038N00549460EA0000001966 +B1258464517029N00549452EA0000001962 +B1258484517020N00549441EA0000001957 +B1258504517010N00549429EA0000001950 +B1258524516998N00549415EA0000001945 +B1258544516989N00549399EA0000001942 +B1258574516980N00549384EA0000001937 +B1258594516972N00549369EA0000001933 +B1259014516965N00549356EA0000001931 +B1259034516958N00549346EA0000001927 +B1259054516949N00549339EA0000001923 +B1259074516939N00549332EA0000001919 +B1259094516927N00549325EA0000001914 +B1259114516915N00549319EA0000001912 +B1259134516904N00549312EA0000001908 +B1259154516898N00549307EA0000001902 +B1259174516877N00549291EA0000001898 +B1259194516864N00549279EA0000001895 +B1259214516858N00549273EA0000001892 +B1259234516840N00549252EA0000001887 +B1259254516826N00549239EA0000001883 +B1259274516814N00549227EA0000001880 +B1259294516807N00549215EA0000001879 +B1259314516799N00549202EA0000001875 +B1259334516788N00549189EA0000001871 +B1259354516775N00549179EA0000001868 +B1259374516762N00549172EA0000001863 +B1259394516750N00549162EA0000001858 +B1259414516738N00549153EA0000001853 +B1259434516729N00549147EA0000001850 +B1259454516725N00549148EA0000001847 +B1259474516719N00549147EA0000001843 +B1259494516710N00549145EA0000001841 +B1259514516703N00549140EA0000001839 +B1259534516699N00549131EA0000001836 +B1259554516692N00549124EA0000001832 +B1259574516684N00549118EA0000001830 +B1259594516678N00549112EA0000001831 +B1300014516672N00549106EA0000001829 +B1300034516664N00549098EA0000001828 +B1300054516655N00549090EA0000001827 +B1300074516646N00549083EA0000001828 +B1300094516639N00549075EA0000001830 +B1300114516631N00549068EA0000001830 +B1300134516618N00549059EA0000001831 +B1300154516612N00549053EA0000001830 +B1300174516603N00549046EA0000001828 +B1300194516593N00549039EA0000001827 +B1300214516584N00549032EA0000001827 +B1300234516577N00549021EA0000001826 +B1300254516570N00549009EA0000001827 +B1300274516563N00548999EA0000001829 +B1300294516556N00548992EA0000001832 +B1300314516550N00548989EA0000001835 +B1300334516543N00548982EA0000001839 +B1300354516537N00548975EA0000001845 +B1300384516534N00548971EA0000001853 +B1300404516531N00548964EA0000001860 +B1300424516531N00548953EA0000001867 +B1300444516540N00548939EA0000001873 +B1300464516554N00548936EA0000001881 +B1300484516565N00548945EA0000001887 +B1300504516569N00548965EA0000001896 +B1300524516564N00548978EA0000001905 +B1300544516556N00548975EA0000001913 +B1300564516552N00548968EA0000001922 +B1300584516551N00548960EA0000001928 +B1301004516552N00548949EA0000001935 +B1301024516560N00548936EA0000001941 +B1301044516576N00548935EA0000001946 +B1301064516585N00548943EA0000001951 +B1301084516583N00548957EA0000001956 +B1301104516576N00548962EA0000001961 +B1301124516573N00548959EA0000001968 +B1301144516569N00548961EA0000001972 +B1301164516567N00548950EA0000001976 +B1301184516563N00548940EA0000001982 +B1301204516559N00548934EA0000001990 +B1301224516554N00548928EA0000001995 +B1301244516547N00548922EA0000002000 +B1301264516538N00548915EA0000002007 +B1301284516535N00548911EA0000002016 +B1301304516535N00548908EA0000002022 +B1301324516532N00548902EA0000002027 +B1301344516525N00548891EA0000002030 +B1301364516522N00548882EA0000002033 +B1301384516518N00548873EA0000002034 +B1301404516511N00548864EA0000002039 +B1301424516506N00548856EA0000002044 +B1301444516502N00548849EA0000002048 +B1301464516496N00548842EA0000002050 +B1301484516489N00548831EA0000002049 +B1301504516480N00548822EA0000002048 +B1301524516471N00548814EA0000002046 +B1301544516459N00548799EA0000002041 +B1301564516450N00548787EA0000002039 +B1301584516442N00548775EA0000002039 +B1302004516434N00548763EA0000002041 +B1302024516422N00548753EA0000002044 +B1302044516412N00548746EA0000002048 +B1302064516408N00548739EA0000002052 +B1302084516403N00548730EA0000002055 +B1302104516395N00548717EA0000002059 +B1302124516388N00548703EA0000002065 +B1302144516383N00548693EA0000002070 +B1302174516376N00548680EA0000002074 +B1302194516367N00548664EA0000002080 +B1302214516359N00548650EA0000002087 +B1302234516351N00548638EA0000002091 +B1302254516341N00548624EA0000002094 +B1302274516331N00548610EA0000002096 +B1302294516320N00548597EA0000002096 +B1302314516310N00548585EA0000002095 +B1302334516301N00548575EA0000002093 +B1302354516291N00548565EA0000002090 +B1302374516281N00548555EA0000002086 +B1302394516272N00548544EA0000002084 +B1302414516264N00548534EA0000002082 +B1302434516258N00548525EA0000002079 +B1302454516250N00548516EA0000002074 +B1302474516242N00548506EA0000002071 +B1302494516234N00548498EA0000002067 +B1302514516224N00548489EA0000002063 +B1302534516215N00548478EA0000002059 +B1302554516207N00548469EA0000002055 +B1302574516199N00548458EA0000002050 +B1302594516188N00548445EA0000002044 +B1303014516178N00548431EA0000002040 +B1303034516169N00548417EA0000002038 +B1303054516161N00548405EA0000002034 +B1303074516151N00548395EA0000002029 +B1303094516141N00548383EA0000002026 +B1303114516133N00548372EA0000002025 +B1303134516126N00548364EA0000002022 +B1303154516118N00548355EA0000002018 +B1303174516109N00548344EA0000002013 +B1303194516099N00548335EA0000002008 +B1303214516089N00548328EA0000002002 +B1303234516078N00548320EA0000001997 +B1303254516068N00548311EA0000001991 +B1303274516058N00548300EA0000001985 +B1303294516049N00548290EA0000001980 +B1303314516038N00548281EA0000001973 +B1303334516022N00548261EA0000001963 +B1303354516012N00548247EA0000001958 +B1303374516002N00548232EA0000001954 +B1303394515993N00548217EA0000001951 +B1303414515986N00548201EA0000001947 +B1303434515982N00548187EA0000001944 +B1303454515979N00548171EA0000001940 +B1303474515974N00548158EA0000001938 +B1303494515967N00548148EA0000001935 +B1303514515960N00548137EA0000001932 +B1303534515951N00548125EA0000001929 +B1303554515941N00548117EA0000001928 +B1303584515932N00548110EA0000001927 +B1304004515924N00548102EA0000001924 +B1304024515914N00548094EA0000001919 +B1304044515904N00548086EA0000001915 +B1304064515895N00548078EA0000001911 +B1304084515884N00548071EA0000001905 +B1304104515873N00548058EA0000001898 +B1304124515861N00548041EA0000001893 +B1304144515851N00548027EA0000001889 +B1304164515840N00548014EA0000001882 +B1304184515828N00548000EA0000001877 +B1304204515817N00547985EA0000001872 +B1304224515811N00547972EA0000001870 +B1304244515804N00547960EA0000001867 +B1304264515795N00547946EA0000001864 +B1304284515785N00547929EA0000001862 +B1304304515777N00547913EA0000001862 +B1304324515772N00547900EA0000001865 +B1304344515765N00547888EA0000001870 +B1304364515759N00547877EA0000001879 +B1304384515753N00547869EA0000001886 +B1304404515746N00547863EA0000001889 +B1304424515738N00547856EA0000001892 +B1304444515730N00547851EA0000001895 +B1304464515724N00547846EA0000001897 +B1304484515717N00547840EA0000001897 +B1304504515710N00547835EA0000001895 +B1304524515702N00547829EA0000001893 +B1304544515694N00547824EA0000001892 +B1304564515686N00547819EA0000001889 +B1304584515676N00547811EA0000001885 +B1305004515665N00547803EA0000001882 +B1305024515653N00547795EA0000001879 +B1305044515643N00547785EA0000001875 +B1305064515634N00547778EA0000001870 +B1305084515623N00547772EA0000001865 +B1305104515613N00547764EA0000001861 +B1305124515603N00547758EA0000001856 +B1305144515589N00547745EA0000001850 +B1305164515583N00547734EA0000001848 +B1305184515578N00547724EA0000001849 +B1305204515574N00547716EA0000001852 +B1305224515571N00547707EA0000001857 +B1305244515565N00547698EA0000001863 +B1305264515558N00547690EA0000001870 +B1305284515551N00547683EA0000001874 +B1305304515540N00547676EA0000001879 +B1305324515532N00547669EA0000001886 +B1305344515528N00547669EA0000001892 +B1305364515522N00547669EA0000001897 +B1305394515513N00547665EA0000001899 +B1305414515505N00547660EA0000001900 +B1305434515498N00547654EA0000001900 +B1305454515491N00547649EA0000001899 +B1305474515483N00547644EA0000001897 +B1305494515474N00547639EA0000001895 +B1305514515464N00547633EA0000001895 +B1305534515456N00547626EA0000001893 +B1305554515447N00547620EA0000001890 +B1305574515437N00547615EA0000001885 +B1305594515427N00547607EA0000001879 +B1306014515417N00547599EA0000001872 +B1306034515406N00547591EA0000001865 +B1306054515395N00547581EA0000001858 +B1306074515385N00547571EA0000001853 +B1306094515374N00547564EA0000001847 +B1306114515362N00547557EA0000001842 +B1306134515351N00547551EA0000001838 +B1306154515339N00547548EA0000001835 +B1306174515327N00547547EA0000001833 +B1306194515316N00547546EA0000001833 +B1306214515308N00547543EA0000001833 +B1306234515299N00547539EA0000001831 +B1306254515288N00547533EA0000001829 +B1306274515277N00547525EA0000001829 +B1306294515268N00547519EA0000001830 +B1306314515258N00547513EA0000001829 +B1306334515245N00547506EA0000001828 +B1306354515232N00547498EA0000001830 +B1306374515221N00547489EA0000001830 +B1306394515209N00547480EA0000001830 +B1306414515198N00547472EA0000001829 +B1306434515187N00547464EA0000001828 +B1306454515176N00547458EA0000001829 +B1306474515167N00547452EA0000001828 +B1306494515159N00547445EA0000001827 +B1306514515149N00547436EA0000001824 +B1306534515139N00547427EA0000001823 +B1306554515127N00547411EA0000001819 +B1306574515117N00547400EA0000001816 +B1306594515105N00547389EA0000001815 +B1307014515096N00547378EA0000001814 +B1307034515087N00547368EA0000001812 +B1307054515076N00547359EA0000001808 +B1307074515065N00547350EA0000001804 +B1307094515053N00547340EA0000001802 +B1307114515044N00547330EA0000001802 +B1307134515044N00547327EA0000001804 +B1307154515044N00547325EA0000001803 +B1307184515038N00547316EA0000001801 +B1307204515031N00547304EA0000001803 +B1307224515024N00547295EA0000001802 +B1307244515014N00547283EA0000001802 +B1307264515004N00547270EA0000001804 +B1307284514996N00547260EA0000001807 +B1307304514990N00547252EA0000001813 +B1307324514983N00547241EA0000001816 +B1307344514975N00547230EA0000001822 +B1307364514968N00547220EA0000001828 +B1307384514961N00547210EA0000001832 +B1307404514957N00547204EA0000001835 +B1307424514943N00547188EA0000001838 +B1307444514936N00547180EA0000001838 +B1307464514929N00547172EA0000001838 +B1307484514921N00547161EA0000001836 +B1307504514914N00547151EA0000001836 +B1307524514907N00547143EA0000001836 +B1307544514899N00547133EA0000001834 +B1307564514890N00547122EA0000001833 +B1307584514881N00547110EA0000001832 +B1308004514873N00547098EA0000001832 +B1308024514865N00547086EA0000001833 +B1308044514857N00547072EA0000001834 +B1308064514850N00547060EA0000001835 +B1308084514843N00547048EA0000001835 +B1308104514834N00547036EA0000001833 +B1308124514824N00547023EA0000001831 +B1308144514816N00547011EA0000001829 +B1308164514809N00546998EA0000001826 +B1308184514800N00546986EA0000001823 +B1308204514793N00546976EA0000001820 +B1308224514785N00546966EA0000001815 +B1308244514778N00546953EA0000001809 +B1308264514768N00546940EA0000001802 +B1308284514758N00546924EA0000001797 +B1308304514745N00546904EA0000001793 +B1308324514737N00546891EA0000001788 +B1308344514729N00546875EA0000001783 +B1308364514722N00546858EA0000001780 +B1308384514714N00546846EA0000001778 +B1308404514705N00546839EA0000001777 +B1308424514696N00546831EA0000001777 +B1308444514686N00546823EA0000001777 +B1308464514678N00546814EA0000001778 +B1308484514672N00546809EA0000001780 +B1308504514663N00546803EA0000001782 +B1308524514655N00546794EA0000001786 +B1308554514648N00546785EA0000001792 +B1308574514641N00546777EA0000001796 +B1308594514635N00546768EA0000001800 +B1309014514628N00546757EA0000001805 +B1309034514621N00546745EA0000001810 +B1309054514614N00546736EA0000001815 +B1309074514607N00546726EA0000001818 +B1309094514599N00546714EA0000001821 +B1309114514592N00546701EA0000001824 +B1309134514585N00546690EA0000001826 +B1309154514577N00546681EA0000001827 +B1309174514568N00546671EA0000001826 +B1309194514558N00546658EA0000001825 +B1309214514553N00546652EA0000001827 +B1309234514545N00546635EA0000001828 +B1309254514540N00546628EA0000001827 +B1309274514534N00546619EA0000001825 +B1309294514528N00546606EA0000001826 +B1309314514521N00546595EA0000001826 +B1309334514514N00546586EA0000001825 +B1309354514507N00546575EA0000001826 +B1309374514501N00546564EA0000001828 +B1309394514494N00546553EA0000001830 +B1309414514487N00546541EA0000001830 +B1309434514478N00546527EA0000001831 +B1309454514469N00546510EA0000001833 +B1309474514464N00546496EA0000001836 +B1309494514460N00546483EA0000001839 +B1309514514453N00546466EA0000001841 +B1309534514446N00546450EA0000001843 +B1309554514439N00546436EA0000001845 +B1309574514431N00546425EA0000001846 +B1309594514425N00546412EA0000001847 +B1310014514420N00546399EA0000001850 +B1310034514415N00546385EA0000001852 +B1310054514411N00546370EA0000001853 +B1310074514404N00546356EA0000001855 +B1310094514398N00546343EA0000001856 +B1310114514387N00546321EA0000001859 +B1310134514381N00546308EA0000001862 +B1310154514376N00546297EA0000001865 +B1310174514372N00546286EA0000001866 +B1310194514366N00546272EA0000001867 +B1310214514359N00546260EA0000001868 +B1310234514353N00546250EA0000001867 +B1310254514346N00546238EA0000001865 +B1310274514337N00546224EA0000001863 +B1310294514329N00546212EA0000001862 +B1310314514322N00546201EA0000001858 +B1310334514313N00546188EA0000001854 +B1310364514304N00546173EA0000001852 +B1310384514295N00546158EA0000001851 +B1310404514287N00546146EA0000001849 +B1310424514279N00546134EA0000001847 +B1310444514273N00546120EA0000001847 +B1310464514266N00546109EA0000001845 +B1310484514256N00546099EA0000001843 +B1310504514249N00546086EA0000001843 +B1310524514243N00546074EA0000001842 +B1310544514236N00546064EA0000001839 +B1310564514229N00546051EA0000001838 +B1310584514222N00546037EA0000001837 +B1311004514215N00546025EA0000001836 +B1311024514208N00546010EA0000001834 +B1311044514202N00545994EA0000001832 +B1311064514196N00545980EA0000001830 +B1311084514190N00545964EA0000001827 +B1311104514184N00545949EA0000001823 +B1311124514178N00545934EA0000001820 +B1311144514172N00545921EA0000001816 +B1311164514165N00545908EA0000001811 +B1311184514158N00545893EA0000001806 +B1311204514150N00545880EA0000001802 +B1311224514142N00545867EA0000001798 +B1311244514135N00545854EA0000001794 +B1311264514126N00545842EA0000001788 +B1311284514117N00545829EA0000001784 +B1311304514108N00545816EA0000001780 +B1311324514103N00545807EA0000001779 +B1311344514098N00545800EA0000001775 +B1311364514091N00545790EA0000001772 +B1311384514084N00545780EA0000001771 +B1311404514078N00545770EA0000001768 +B1311424514070N00545763EA0000001766 +B1311444514061N00545767EA0000001763 +B1311464514054N00545781EA0000001760 +B1311484514052N00545795EA0000001758 +B1311504514056N00545810EA0000001754 +B1311524514064N00545832EA0000001748 +B1311544514070N00545849EA0000001744 +B1311564514076N00545867EA0000001740 +B1311584514084N00545885EA0000001736 +B1312004514091N00545902EA0000001734 +B1312024514099N00545916EA0000001730 +B1312044514108N00545932EA0000001726 +B1312064514117N00545947EA0000001724 +B1312084514126N00545962EA0000001721 +B1312104514136N00545978EA0000001716 +B1312124514146N00545995EA0000001713 +B1312144514156N00546013EA0000001710 +B1312174514165N00546028EA0000001707 +B1312194514174N00546045EA0000001703 +B1312214514184N00546061EA0000001700 +B1312234514193N00546076EA0000001699 +B1312254514202N00546089EA0000001696 +B1312274514211N00546103EA0000001692 +B1312294514221N00546118EA0000001691 +B1312314514230N00546132EA0000001690 +B1312334514238N00546145EA0000001689 +B1312354514246N00546159EA0000001688 +B1312374514253N00546171EA0000001687 +B1312394514262N00546184EA0000001683 +B1312414514272N00546198EA0000001682 +B1312434514279N00546213EA0000001682 +B1312454514288N00546225EA0000001683 +B1312474514297N00546232EA0000001684 +B1312494514309N00546244EA0000001685 +B1312514514320N00546259EA0000001687 +B1312534514329N00546273EA0000001691 +B1312554514337N00546285EA0000001692 +B1312574514345N00546295EA0000001692 +B1312594514351N00546306EA0000001691 +B1313014514358N00546318EA0000001688 +B1313034514366N00546329EA0000001685 +B1313054514374N00546339EA0000001683 +B1313074514382N00546351EA0000001680 +B1313094514389N00546364EA0000001678 +B1313114514397N00546376EA0000001676 +B1313134514405N00546387EA0000001675 +B1313154514412N00546396EA0000001675 +B1313174514417N00546401EA0000001676 +B1313194514424N00546406EA0000001675 +B1313214514432N00546417EA0000001675 +B1313234514441N00546429EA0000001675 +B1313254514449N00546440EA0000001676 +B1313274514457N00546453EA0000001677 +B1313294514466N00546467EA0000001678 +B1313314514473N00546480EA0000001681 +B1313334514482N00546496EA0000001684 +B1313354514492N00546507EA0000001685 +B1313374514502N00546517EA0000001688 +B1313394514510N00546522EA0000001691 +B1313414514516N00546528EA0000001693 +B1313434514523N00546539EA0000001694 +B1313454514529N00546550EA0000001695 +B1313474514535N00546559EA0000001696 +B1313494514541N00546568EA0000001696 +B1313514514550N00546579EA0000001695 +B1313534514559N00546590EA0000001695 +B1313554514567N00546600EA0000001697 +B1313584514573N00546609EA0000001698 +B1314004514583N00546621EA0000001698 +B1314024514592N00546634EA0000001699 +B1314044514600N00546641EA0000001702 +B1314064514604N00546640EA0000001710 +B1314084514612N00546648EA0000001716 +B1314104514621N00546657EA0000001723 +B1314124514627N00546664EA0000001733 +B1314144514628N00546671EA0000001740 +B1314164514626N00546680EA0000001746 +B1314184514619N00546686EA0000001753 +B1314204514614N00546683EA0000001759 +B1314224514608N00546653EA0000001766 +B1314244514619N00546642EA0000001774 +B1314264514632N00546643EA0000001783 +B1314284514639N00546649EA0000001792 +B1314304514644N00546659EA0000001798 +B1314324514646N00546672EA0000001804 +B1314344514643N00546685EA0000001812 +B1314364514635N00546687EA0000001817 +B1314384514627N00546673EA0000001823 +B1314404514627N00546656EA0000001828 +B1314424514638N00546648EA0000001833 +B1314444514650N00546651EA0000001839 +B1314464514656N00546658EA0000001846 +B1314484514662N00546666EA0000001851 +B1314504514664N00546678EA0000001854 +B1314524514665N00546689EA0000001858 +B1314544514670N00546700EA0000001861 +B1314564514680N00546708EA0000001864 +B1314584514687N00546716EA0000001867 +B1315004514694N00546724EA0000001868 +B1315024514705N00546735EA0000001869 +B1315044514714N00546745EA0000001871 +B1315064514720N00546752EA0000001875 +B1315084514728N00546758EA0000001877 +B1315104514737N00546767EA0000001881 +B1315124514751N00546783EA0000001889 +B1315144514759N00546791EA0000001896 +B1315164514766N00546798EA0000001901 +B1315184514774N00546806EA0000001907 +B1315204514777N00546817EA0000001915 +B1315224514773N00546826EA0000001922 +B1315244514759N00546826EA0000001929 +B1315264514750N00546814EA0000001935 +B1315284514750N00546797EA0000001942 +B1315304514762N00546786EA0000001949 +B1315324514774N00546788EA0000001956 +B1315344514783N00546797EA0000001966 +B1315374514787N00546806EA0000001975 +B1315394514787N00546818EA0000001982 +B1315414514784N00546831EA0000001988 +B1315434514774N00546837EA0000001993 +B1315454514764N00546829EA0000001998 +B1315474514763N00546810EA0000002004 +B1315494514773N00546798EA0000002011 +B1315514514785N00546799EA0000002018 +B1315534514799N00546814EA0000002030 +B1315554514806N00546819EA0000002036 +B1315574514811N00546829EA0000002041 +B1316004514808N00546847EA0000002045 +B1316024514799N00546851EA0000002047 +B1316044514790N00546838EA0000002047 +B1316064514791N00546820EA0000002049 +B1316084514804N00546817EA0000002051 +B1316104514815N00546827EA0000002056 +B1316124514823N00546836EA0000002060 +B1316144514831N00546841EA0000002062 +B1316164514837N00546849EA0000002062 +B1316184514844N00546862EA0000002060 +B1316204514850N00546870EA0000002061 +B1316224514856N00546873EA0000002062 +B1316244514859N00546876EA0000002062 +B1316264514867N00546884EA0000002062 +B1316284514877N00546895EA0000002062 +B1316304514886N00546904EA0000002064 +B1316324514893N00546913EA0000002066 +B1316344514901N00546924EA0000002067 +B1316364514910N00546932EA0000002071 +B1316384514916N00546940EA0000002075 +B1316404514922N00546947EA0000002079 +B1316424514928N00546953EA0000002084 +B1316444514936N00546959EA0000002091 +B1316464514943N00546962EA0000002099 +B1316484514949N00546963EA0000002105 +B1316504514956N00546967EA0000002111 +B1316524514963N00546972EA0000002118 +B1316544514969N00546974EA0000002127 +B1316564514974N00546977EA0000002133 +B1316584514979N00546979EA0000002138 +B1317004514985N00546986EA0000002142 +B1317024514990N00546995EA0000002146 +B1317044514994N00547000EA0000002149 +B1317064515000N00547004EA0000002151 +B1317084515007N00547012EA0000002150 +B1317104515015N00547019EA0000002148 +B1317124515025N00547026EA0000002143 +B1317144515035N00547036EA0000002138 +B1317164515053N00547050EA0000002134 +B1317184515067N00547060EA0000002133 +B1317204515080N00547071EA0000002135 +B1317224515091N00547082EA0000002138 +B1317244515100N00547093EA0000002142 +B1317264515109N00547103EA0000002144 +B1317284515117N00547115EA0000002144 +B1317304515126N00547128EA0000002144 +B1317324515135N00547139EA0000002142 +B1317344515143N00547151EA0000002139 +B1317364515149N00547163EA0000002135 +B1317394515155N00547175EA0000002130 +B1317414515163N00547189EA0000002128 +B1317434515173N00547196EA0000002126 +B1317454515183N00547200EA0000002124 +B1317474515193N00547207EA0000002123 +B1317494515203N00547214EA0000002123 +B1317514515212N00547222EA0000002121 +B1317534515221N00547232EA0000002119 +B1317554515231N00547243EA0000002118 +B1317574515241N00547256EA0000002117 +B1317594515250N00547269EA0000002118 +B1318014515258N00547281EA0000002117 +B1318034515266N00547295EA0000002115 +B1318054515276N00547310EA0000002115 +B1318074515284N00547320EA0000002115 +B1318094515292N00547331EA0000002113 +B1318114515300N00547345EA0000002110 +B1318134515309N00547358EA0000002107 +B1318154515317N00547371EA0000002105 +B1318174515324N00547384EA0000002105 +B1318194515328N00547394EA0000002105 +B1318214515334N00547406EA0000002103 +B1318234515341N00547420EA0000002101 +B1318254515347N00547434EA0000002100 +B1318274515354N00547447EA0000002097 +B1318294515363N00547461EA0000002094 +B1318314515372N00547475EA0000002092 +B1318334515381N00547489EA0000002088 +B1318354515389N00547504EA0000002085 +B1318374515399N00547518EA0000002081 +B1318394515408N00547532EA0000002077 +B1318414515417N00547546EA0000002073 +B1318434515428N00547560EA0000002068 +B1318454515437N00547575EA0000002062 +B1318474515447N00547590EA0000002056 +B1318494515458N00547603EA0000002050 +B1318514515468N00547617EA0000002043 +B1318534515479N00547631EA0000002036 +B1318554515497N00547647EA0000002027 +B1318574515508N00547656EA0000002020 +B1318594515521N00547668EA0000002015 +B1319014515533N00547682EA0000002010 +B1319034515545N00547693EA0000002008 +B1319054515555N00547704EA0000002005 +B1319074515566N00547716EA0000002002 +B1319094515577N00547729EA0000002001 +B1319114515585N00547742EA0000001999 +B1319134515594N00547756EA0000001997 +B1319154515606N00547770EA0000001995 +B1319174515619N00547784EA0000001994 +B1319204515630N00547798EA0000001993 +B1319224515643N00547813EA0000001993 +B1319244515657N00547829EA0000001994 +B1319264515669N00547843EA0000001995 +B1319284515680N00547857EA0000001995 +B1319304515693N00547873EA0000001996 +B1319324515704N00547888EA0000001999 +B1319344515714N00547901EA0000001999 +B1319364515722N00547915EA0000001997 +B1319384515732N00547927EA0000001998 +B1319404515741N00547939EA0000001997 +B1319424515750N00547952EA0000001994 +B1319444515755N00547959EA0000001991 +B1319464515771N00547981EA0000001990 +B1319484515780N00547996EA0000001986 +B1319504515789N00548012EA0000001982 +B1319524515800N00548026EA0000001980 +B1319544515809N00548041EA0000001979 +B1319564515817N00548056EA0000001975 +B1319584515826N00548072EA0000001970 +B1320004515837N00548088EA0000001968 +B1320024515847N00548103EA0000001964 +B1320044515858N00548117EA0000001959 +B1320064515869N00548133EA0000001955 +B1320084515877N00548147EA0000001953 +B1320104515884N00548155EA0000001952 +B1320124515891N00548163EA0000001948 +B1320144515901N00548175EA0000001945 +B1320164515912N00548188EA0000001943 +B1320184515922N00548204EA0000001942 +B1320204515932N00548217EA0000001944 +B1320224515941N00548228EA0000001943 +B1320244515950N00548242EA0000001941 +B1320264515960N00548257EA0000001938 +B1320284515970N00548271EA0000001935 +B1320304515981N00548285EA0000001931 +B1320324515992N00548300EA0000001928 +B1320344516004N00548315EA0000001927 +B1320364516020N00548336EA0000001923 +B1320384516031N00548350EA0000001920 +B1320404516042N00548364EA0000001918 +B1320424516052N00548376EA0000001915 +B1320444516062N00548387EA0000001911 +B1320464516075N00548398EA0000001907 +B1320484516086N00548408EA0000001904 +B1320504516096N00548418EA0000001900 +B1320524516108N00548428EA0000001895 +B1320544516120N00548439EA0000001892 +B1320564516131N00548451EA0000001891 +B1320584516138N00548457EA0000001890 +B1321014516146N00548466EA0000001887 +B1321034516155N00548474EA0000001887 +B1321054516163N00548481EA0000001888 +B1321074516171N00548490EA0000001887 +B1321094516182N00548502EA0000001886 +B1321114516194N00548513EA0000001887 +B1321134516203N00548522EA0000001888 +B1321154516213N00548529EA0000001887 +B1321174516224N00548538EA0000001885 +B1321194516235N00548549EA0000001883 +B1321214516241N00548554EA0000001880 +B1321234516257N00548569EA0000001877 +B1321254516257N00548569EA0000001874 +B1321274516279N00548591EA0000001871 +B1321294516291N00548602EA0000001868 +B1321314516302N00548611EA0000001866 +B1321334516315N00548620EA0000001862 +B1321354516329N00548633EA0000001859 +B1321374516342N00548647EA0000001857 +B1321394516352N00548655EA0000001856 +B1321414516359N00548660EA0000001858 +B1321434516367N00548668EA0000001863 +B1321454516376N00548673EA0000001869 +B1321474516382N00548676EA0000001876 +B1321494516387N00548679EA0000001882 +B1321514516397N00548683EA0000001889 +B1321534516404N00548689EA0000001898 +B1321554516407N00548697EA0000001907 +B1321574516408N00548703EA0000001915 +B1321594516409N00548711EA0000001923 +B1322014516417N00548719EA0000001930 +B1322034516431N00548714EA0000001934 +B1322054516445N00548706EA0000001939 +B1322074516455N00548698EA0000001943 +B1322094516464N00548688EA0000001946 +B1322114516475N00548681EA0000001948 +B1322134516484N00548681EA0000001950 +B1322154516492N00548684EA0000001951 +B1322174516506N00548693EA0000001949 +B1322194516517N00548698EA0000001946 +B1322214516527N00548704EA0000001942 +B1322234516539N00548711EA0000001938 +B1322254516550N00548718EA0000001936 +B1322274516562N00548724EA0000001936 +B1322294516575N00548729EA0000001934 +B1322314516589N00548735EA0000001933 +B1322334516603N00548742EA0000001932 +B1322354516616N00548751EA0000001932 +B1322374516626N00548757EA0000001933 +B1322394516636N00548766EA0000001934 +B1322424516648N00548774EA0000001936 +B1322444516657N00548780EA0000001939 +B1322464516666N00548786EA0000001941 +B1322484516675N00548795EA0000001944 +B1322504516685N00548806EA0000001947 +B1322524516693N00548814EA0000001952 +B1322544516701N00548820EA0000001958 +B1322564516707N00548829EA0000001964 +B1322584516709N00548835EA0000001971 +B1323004516704N00548854EA0000001978 +B1323024516704N00548854EA0000001985 +B1323044516689N00548844EA0000001993 +B1323064516685N00548829EA0000002002 +B1323084516687N00548817EA0000002011 +B1323104516694N00548811EA0000002018 +B1323124516702N00548814EA0000002025 +B1323144516706N00548825EA0000002031 +B1323164516703N00548838EA0000002037 +B1323184516695N00548841EA0000002045 +B1323204516684N00548838EA0000002050 +B1323224516673N00548837EA0000002055 +B1323244516663N00548829EA0000002061 +B1323264516659N00548820EA0000002065 +B1323284516661N00548812EA0000002069 +B1323304516670N00548814EA0000002072 +B1323324516680N00548822EA0000002074 +B1323344516691N00548830EA0000002075 +B1323364516703N00548841EA0000002077 +B1323384516715N00548853EA0000002080 +B1323404516725N00548863EA0000002084 +B1323424516735N00548872EA0000002090 +B1323444516744N00548879EA0000002098 +B1323464516750N00548889EA0000002106 +B1323484516751N00548903EA0000002113 +B1323504516748N00548918EA0000002120 +B1323524516739N00548923EA0000002126 +B1323544516726N00548907EA0000002136 +B1323564516726N00548895EA0000002142 +B1323584516734N00548887EA0000002148 +B1324004516744N00548884EA0000002155 +B1324024516754N00548885EA0000002163 +B1324044516764N00548885EA0000002171 +B1324064516772N00548887EA0000002179 +B1324084516781N00548895EA0000002186 +B1324104516787N00548910EA0000002192 +B1324124516786N00548925EA0000002198 +B1324144516779N00548931EA0000002202 +B1324174516772N00548923EA0000002206 +B1324194516772N00548910EA0000002211 +B1324214516781N00548908EA0000002217 +B1324234516791N00548911EA0000002224 +B1324254516802N00548916EA0000002230 +B1324274516814N00548921EA0000002237 +B1324294516826N00548923EA0000002245 +B1324314516839N00548927EA0000002252 +B1324334516854N00548927EA0000002256 +B1324354516861N00548930EA0000002262 +B1324374516882N00548940EA0000002268 +B1324394516896N00548949EA0000002272 +B1324414516907N00548959EA0000002275 +B1324434516920N00548967EA0000002277 +B1324454516935N00548975EA0000002279 +B1324474516947N00548986EA0000002280 +B1324494516959N00548998EA0000002280 +B1324514516971N00549008EA0000002279 +B1324534516984N00549018EA0000002277 +B1324554516998N00549028EA0000002277 +B1324574517011N00549039EA0000002277 +B1324594517024N00549051EA0000002275 +B1325014517040N00549061EA0000002273 +B1325034517055N00549071EA0000002273 +B1325054517066N00549081EA0000002275 +B1325074517076N00549091EA0000002274 +B1325094517087N00549102EA0000002273 +B1325114517101N00549115EA0000002271 +B1325134517115N00549128EA0000002271 +B1325154517127N00549137EA0000002272 +B1325174517139N00549146EA0000002270 +B1325194517154N00549158EA0000002266 +B1325214517168N00549171EA0000002265 +B1325234517182N00549186EA0000002264 +B1325254517195N00549200EA0000002265 +B1325274517207N00549213EA0000002264 +B1325294517223N00549234EA0000002265 +B1325314517231N00549244EA0000002266 +B1325334517240N00549253EA0000002266 +B1325354517249N00549263EA0000002264 +B1325374517259N00549275EA0000002258 +B1325394517269N00549289EA0000002251 +B1325414517279N00549304EA0000002244 +B1325434517288N00549319EA0000002237 +B1325454517298N00549336EA0000002229 +B1325474517308N00549353EA0000002222 +B1325494517314N00549369EA0000002217 +B1325514517319N00549383EA0000002210 +B1325544517327N00549398EA0000002202 +B1325564517337N00549411EA0000002196 +B1325584517345N00549423EA0000002190 +B1326004517353N00549436EA0000002183 +B1326024517364N00549445EA0000002177 +B1326044517375N00549448EA0000002173 +B1326064517379N00549455EA0000002172 +B1326084517384N00549462EA0000002172 +B1326104517394N00549470EA0000002171 +B1326124517400N00549475EA0000002171 +B1326144517412N00549487EA0000002172 +B1326164517416N00549495EA0000002170 +B1326184517421N00549506EA0000002167 +B1326204517429N00549517EA0000002163 +B1326224517439N00549524EA0000002160 +B1326244517449N00549528EA0000002155 +B1326264517460N00549532EA0000002149 +B1326284517472N00549534EA0000002141 +B1326304517486N00549537EA0000002134 +B1326324517500N00549543EA0000002128 +B1326344517513N00549550EA0000002123 +B1326364517527N00549558EA0000002119 +B1326384517540N00549568EA0000002117 +B1326404517552N00549579EA0000002115 +B1326424517564N00549592EA0000002113 +B1326444517575N00549609EA0000002109 +B1326464517584N00549627EA0000002107 +B1326484517591N00549643EA0000002105 +B1326504517598N00549656EA0000002102 +B1326524517607N00549674EA0000002098 +B1326544517616N00549696EA0000002094 +B1326564517625N00549717EA0000002091 +B1326584517635N00549735EA0000002088 +B1327004517644N00549754EA0000002086 +B1327024517654N00549775EA0000002083 +B1327044517664N00549795EA0000002081 +B1327064517675N00549813EA0000002079 +B1327084517686N00549831EA0000002077 +B1327104517702N00549858EA0000002072 +B1327124517714N00549877EA0000002068 +B1327144517727N00549896EA0000002063 +B1327164517738N00549916EA0000002060 +B1327184517750N00549936EA0000002057 +B1327204517763N00549956EA0000002054 +B1327224517778N00549971EA0000002053 +B1327244517791N00549981EA0000002053 +B1327264517800N00549992EA0000002052 +B1327284517810N00550010EA0000002051 +B1327304517817N00550028EA0000002050 +B1327324517823N00550043EA0000002051 +B1327354517830N00550058EA0000002051 +B1327374517839N00550077EA0000002050 +B1327394517849N00550096EA0000002051 +B1327414517858N00550115EA0000002052 +B1327434517868N00550133EA0000002054 +B1327454517877N00550149EA0000002055 +B1327474517887N00550165EA0000002056 +B1327494517895N00550185EA0000002056 +B1327514517904N00550206EA0000002055 +B1327534517912N00550225EA0000002054 +B1327554517919N00550244EA0000002052 +B1327574517927N00550264EA0000002048 +B1327594517935N00550285EA0000002043 +B1328014517943N00550306EA0000002032 +B1328034517952N00550326EA0000002029 +B1328054517959N00550341EA0000002026 +B1328074517965N00550354EA0000002023 +B1328094517970N00550367EA0000002018 +B1328114517980N00550383EA0000002013 +B1328134517991N00550397EA0000002009 +B1328154518001N00550412EA0000002004 +B1328174518010N00550429EA0000001997 +B1328194518020N00550450EA0000001989 +B1328214518031N00550473EA0000001983 +B1328234518041N00550493EA0000001977 +B1328254518052N00550512EA0000001970 +B1328274518063N00550531EA0000001962 +B1328294518072N00550551EA0000001954 +B1328314518083N00550570EA0000001948 +B1328334518091N00550584EA0000001942 +B1328354518100N00550598EA0000001935 +B1328374518112N00550613EA0000001927 +B1328394518125N00550628EA0000001922 +B1328414518136N00550643EA0000001916 +B1328434518147N00550657EA0000001909 +B1328454518160N00550674EA0000001903 +B1328474518171N00550690EA0000001899 +B1328494518180N00550704EA0000001895 +B1328514518193N00550726EA0000001885 +B1328534518202N00550742EA0000001880 +B1328554518209N00550758EA0000001876 +B1328574518217N00550773EA0000001870 +B1328594518224N00550791EA0000001865 +B1329014518230N00550810EA0000001861 +B1329034518235N00550826EA0000001857 +B1329054518241N00550843EA0000001852 +B1329074518247N00550861EA0000001847 +B1329094518253N00550879EA0000001844 +B1329114518260N00550894EA0000001841 +B1329134518265N00550909EA0000001839 +B1329164518269N00550924EA0000001837 +B1329184518274N00550940EA0000001833 +B1329204518279N00550957EA0000001830 +B1329224518284N00550975EA0000001829 +B1329244518289N00550992EA0000001829 +B1329264518293N00551008EA0000001830 +B1329284518298N00551023EA0000001833 +B1329304518303N00551039EA0000001836 +B1329324518308N00551054EA0000001839 +B1329344518311N00551068EA0000001843 +B1329364518313N00551079EA0000001846 +B1329384518315N00551091EA0000001847 +B1329404518317N00551105EA0000001849 +B1329424518319N00551118EA0000001853 +B1329444518321N00551126EA0000001858 +B1329464518321N00551136EA0000001862 +B1329484518320N00551146EA0000001868 +B1329504518314N00551150EA0000001872 +B1329524518307N00551143EA0000001876 +B1329544518304N00551125EA0000001881 +B1329564518314N00551112EA0000001884 +B1329584518329N00551116EA0000001888 +B1330004518333N00551132EA0000001891 +B1330024518332N00551144EA0000001899 +B1330044518330N00551155EA0000001905 +B1330064518328N00551168EA0000001910 +B1330084518328N00551177EA0000001915 +B1330104518328N00551182EA0000001919 +B1330124518322N00551188EA0000001920 +B1330144518314N00551192EA0000001924 +B1330164518305N00551184EA0000001925 +B1330184518302N00551165EA0000001927 +B1330204518309N00551152EA0000001929 +B1330224518321N00551154EA0000001931 +B1330244518326N00551167EA0000001934 +B1330264518325N00551177EA0000001938 +B1330284518326N00551187EA0000001940 +B1330304518319N00551199EA0000001941 +B1330324518308N00551196EA0000001939 +B1330344518301N00551177EA0000001937 +B1330364518303N00551159EA0000001934 +B1330384518310N00551150EA0000001934 +B1330404518318N00551158EA0000001933 +B1330424518320N00551168EA0000001935 +B1330444518324N00551176EA0000001935 +B1330464518330N00551189EA0000001935 +B1330484518336N00551200EA0000001936 +B1330504518342N00551209EA0000001937 +B1330524518347N00551220EA0000001936 +B1330554518352N00551231EA0000001937 +B1330574518357N00551239EA0000001939 +B1330594518362N00551247EA0000001939 +B1331014518368N00551256EA0000001940 +B1331034518374N00551264EA0000001941 +B1331054518380N00551272EA0000001942 +B1331074518386N00551279EA0000001945 +B1331094518393N00551286EA0000001946 +B1331114518399N00551295EA0000001947 +B1331134518406N00551303EA0000001947 +B1331154518414N00551311EA0000001946 +B1331174518421N00551320EA0000001945 +B1331194518429N00551329EA0000001945 +B1331214518436N00551338EA0000001944 +B1331234518443N00551349EA0000001943 +B1331254518450N00551360EA0000001941 +B1331274518458N00551371EA0000001940 +B1331294518466N00551382EA0000001938 +B1331314518475N00551391EA0000001938 +B1331334518482N00551398EA0000001938 +B1331354518490N00551406EA0000001938 +B1331374518498N00551412EA0000001939 +B1331394518505N00551419EA0000001941 +B1331414518511N00551425EA0000001943 +B1331434518518N00551432EA0000001946 +B1331454518525N00551440EA0000001949 +B1331474518531N00551449EA0000001953 +B1331494518533N00551460EA0000001957 +B1331514518532N00551473EA0000001961 +B1331534518524N00551481EA0000001965 +B1331554518513N00551476EA0000001969 +B1331574518507N00551462EA0000001973 +B1331594518510N00551451EA0000001976 +B1332014518522N00551450EA0000001980 +B1332034518532N00551459EA0000001983 +B1332054518539N00551466EA0000001987 +B1332074518548N00551472EA0000001991 +B1332094518564N00551486EA0000001996 +B1332114518575N00551493EA0000002000 +B1332134518584N00551502EA0000002004 +B1332154518595N00551509EA0000002007 +B1332174518607N00551514EA0000002012 +B1332194518618N00551517EA0000002017 +B1332214518629N00551521EA0000002024 +B1332234518639N00551524EA0000002030 +B1332254518649N00551526EA0000002037 +B1332274518656N00551527EA0000002042 +B1332294518663N00551529EA0000002046 +B1332314518668N00551537EA0000002050 +B1332344518664N00551550EA0000002053 +B1332364518654N00551555EA0000002056 +B1332384518646N00551547EA0000002060 +B1332404518648N00551530EA0000002063 +B1332424518658N00551522EA0000002068 +B1332444518669N00551524EA0000002073 +B1332464518675N00551531EA0000002078 +B1332484518677N00551540EA0000002080 +B1332504518676N00551553EA0000002083 +B1332524518663N00551561EA0000002086 +B1332544518652N00551555EA0000002088 +B1332564518649N00551537EA0000002091 +B1332584518654N00551527EA0000002094 +B1333004518663N00551528EA0000002096 +B1333024518673N00551532EA0000002099 +B1333044518684N00551538EA0000002103 +B1333064518694N00551545EA0000002108 +B1333084518701N00551552EA0000002113 +B1333104518705N00551562EA0000002118 +B1333124518702N00551578EA0000002123 +B1333144518692N00551588EA0000002128 +B1333164518682N00551584EA0000002132 +B1333184518677N00551569EA0000002137 +B1333204518680N00551557EA0000002142 +B1333224518687N00551556EA0000002147 +B1333244518689N00551570EA0000002152 +B1333264518686N00551586EA0000002156 +B1333284518679N00551600EA0000002160 +B1333304518675N00551603EA0000002166 +B1333324518670N00551584EA0000002169 +B1333344518677N00551571EA0000002171 +B1333364518685N00551570EA0000002175 +B1333384518694N00551590EA0000002180 +B1333404518698N00551601EA0000002185 +B1333424518705N00551613EA0000002190 +B1333444518707N00551631EA0000002196 +B1333464518699N00551646EA0000002200 +B1333484518687N00551646EA0000002203 +B1333504518682N00551622EA0000002205 +B1333524518690N00551615EA0000002209 +B1333544518700N00551621EA0000002214 +B1333564518707N00551627EA0000002222 +B1333584518714N00551630EA0000002229 +B1334004518721N00551634EA0000002235 +B1334024518729N00551635EA0000002241 +B1334044518734N00551629EA0000002245 +B1334064518733N00551617EA0000002249 +B1334084518724N00551609EA0000002253 +B1334104518713N00551605EA0000002257 +B1334124518702N00551608EA0000002260 +B1334154518693N00551619EA0000002265 +B1334174518689N00551634EA0000002270 +B1334194518689N00551648EA0000002275 +B1334214518692N00551662EA0000002279 +B1334234518698N00551672EA0000002282 +B1334254518706N00551671EA0000002285 +B1334274518714N00551660EA0000002287 +B1334294518717N00551647EA0000002290 +B1334314518712N00551636EA0000002294 +B1334334518705N00551631EA0000002300 +B1334354518696N00551631EA0000002305 +B1334374518685N00551636EA0000002309 +B1334394518678N00551649EA0000002313 +B1334414518677N00551664EA0000002317 +B1334434518681N00551677EA0000002320 +B1334454518688N00551689EA0000002322 +B1334474518697N00551698EA0000002323 +B1334494518706N00551700EA0000002323 +B1334514518715N00551699EA0000002320 +B1334534518725N00551696EA0000002322 +B1334554518733N00551700EA0000002326 +B1334574518741N00551706EA0000002328 +B1334594518750N00551712EA0000002332 +B1335014518759N00551715EA0000002337 +B1335034518765N00551717EA0000002339 +B1335054518772N00551721EA0000002341 +B1335074518780N00551724EA0000002341 +B1335094518790N00551729EA0000002338 +B1335114518799N00551735EA0000002336 +B1335134518809N00551741EA0000002334 +B1335154518820N00551746EA0000002333 +B1335174518830N00551750EA0000002332 +B1335194518839N00551756EA0000002332 +B1335214518848N00551761EA0000002331 +B1335234518859N00551767EA0000002329 +B1335254518872N00551775EA0000002327 +B1335274518885N00551782EA0000002326 +B1335294518896N00551788EA0000002324 +B1335314518913N00551797EA0000002319 +B1335334518927N00551804EA0000002316 +B1335354518939N00551811EA0000002314 +B1335374518951N00551817EA0000002312 +B1335394518963N00551823EA0000002309 +B1335414518976N00551830EA0000002305 +B1335434518988N00551837EA0000002303 +B1335454519001N00551844EA0000002302 +B1335474519013N00551851EA0000002299 +B1335494519024N00551857EA0000002295 +B1335514519035N00551864EA0000002290 +B1335534519049N00551870EA0000002284 +B1335564519063N00551874EA0000002280 +B1335584519075N00551881EA0000002275 +B1336004519087N00551887EA0000002269 +B1336024519100N00551893EA0000002263 +B1336044519114N00551904EA0000002258 +B1336064519126N00551914EA0000002256 +B1336084519137N00551920EA0000002254 +B1336104519150N00551926EA0000002251 +B1336124519162N00551933EA0000002249 +B1336144519175N00551938EA0000002247 +B1336164519188N00551946EA0000002244 +B1336184519200N00551954EA0000002243 +B1336204519213N00551960EA0000002240 +B1336224519226N00551965EA0000002236 +B1336244519240N00551971EA0000002234 +B1336264519253N00551978EA0000002232 +B1336284519264N00551985EA0000002229 +B1336304519275N00551992EA0000002225 +B1336324519289N00551998EA0000002221 +B1336344519302N00552005EA0000002219 +B1336364519314N00552013EA0000002217 +B1336384519326N00552019EA0000002213 +B1336404519339N00552027EA0000002210 +B1336424519351N00552036EA0000002207 +B1336444519363N00552043EA0000002206 +B1336464519375N00552049EA0000002203 +B1336484519387N00552057EA0000002200 +B1336504519401N00552064EA0000002198 +B1336524519412N00552072EA0000002197 +B1336544519424N00552080EA0000002194 +B1336564519436N00552089EA0000002190 +B1336584519449N00552098EA0000002187 +B1337004519461N00552108EA0000002185 +B1337024519473N00552117EA0000002182 +B1337044519484N00552127EA0000002178 +B1337064519495N00552136EA0000002172 +B1337084519508N00552146EA0000002167 +B1337104519527N00552163EA0000002161 +B1337124519537N00552172EA0000002158 +B1337144519549N00552181EA0000002155 +B1337164519561N00552190EA0000002152 +B1337184519574N00552199EA0000002150 +B1337204519586N00552208EA0000002150 +B1337224519597N00552217EA0000002151 +B1337244519608N00552227EA0000002152 +B1337264519620N00552238EA0000002153 +B1337284519632N00552248EA0000002155 +B1337304519643N00552258EA0000002156 +B1337324519654N00552267EA0000002157 +B1337354519667N00552278EA0000002155 +B1337374519680N00552290EA0000002155 +B1337394519691N00552300EA0000002154 +B1337414519701N00552309EA0000002152 +B1337434519711N00552317EA0000002151 +B1337454519721N00552322EA0000002151 +B1337474519728N00552326EA0000002153 +B1337494519734N00552331EA0000002152 +B1337514519741N00552340EA0000002153 +B1337534519745N00552351EA0000002156 +B1337554519750N00552358EA0000002158 +B1337574519757N00552362EA0000002159 +B1337594519764N00552369EA0000002162 +B1338014519772N00552375EA0000002164 +B1338034519782N00552380EA0000002166 +B1338054519792N00552387EA0000002168 +B1338074519800N00552395EA0000002169 +B1338094519811N00552401EA0000002170 +B1338114519823N00552409EA0000002169 +B1338134519835N00552417EA0000002171 +B1338154519846N00552421EA0000002172 +B1338174519857N00552426EA0000002175 +B1338194519864N00552432EA0000002179 +B1338214519869N00552437EA0000002180 +B1338234519877N00552443EA0000002183 +B1338254519884N00552449EA0000002188 +B1338274519891N00552454EA0000002191 +B1338294519899N00552460EA0000002193 +B1338314519907N00552468EA0000002196 +B1338334519912N00552483EA0000002198 +B1338354519914N00552503EA0000002201 +B1338374519905N00552519EA0000002204 +B1338394519896N00552521EA0000002207 +B1338414519891N00552508EA0000002209 +B1338434519895N00552495EA0000002210 +B1338454519908N00552494EA0000002217 +B1338474519918N00552503EA0000002223 +B1338494519932N00552517EA0000002229 +B1338514519941N00552524EA0000002232 +B1338534519952N00552533EA0000002235 +B1338554519962N00552541EA0000002240 +B1338574519967N00552545EA0000002245 +B1338594519971N00552549EA0000002249 +B1339014519975N00552560EA0000002252 +B1339034519974N00552575EA0000002255 +B1339054519961N00552579EA0000002248 +B1339074519953N00552561EA0000002248 +B1339094519957N00552547EA0000002249 +B1339124519964N00552540EA0000002252 +B1339144519970N00552535EA0000002255 +B1339164519978N00552534EA0000002255 +B1339184519989N00552537EA0000002258 +B1339204519998N00552542EA0000002259 +B1339224520007N00552546EA0000002260 +B1339244520017N00552554EA0000002261 +B1339264520026N00552561EA0000002262 +B1339284520037N00552568EA0000002263 +B1339304520050N00552579EA0000002262 +B1339324520061N00552588EA0000002263 +B1339344520069N00552595EA0000002264 +B1339364520079N00552603EA0000002265 +B1339384520088N00552611EA0000002267 +B1339404520096N00552616EA0000002269 +B1339424520107N00552623EA0000002271 +B1339444520119N00552630EA0000002275 +B1339464520130N00552636EA0000002279 +B1339484520139N00552642EA0000002284 +B1339504520146N00552651EA0000002290 +B1339524520147N00552663EA0000002295 +B1339544520141N00552672EA0000002299 +B1339564520132N00552671EA0000002303 +B1339584520123N00552659EA0000002307 +B1340004520123N00552644EA0000002312 +B1340024520131N00552637EA0000002318 +B1340044520140N00552635EA0000002323 +B1340064520149N00552639EA0000002328 +B1340084520157N00552651EA0000002332 +B1340104520158N00552666EA0000002336 +B1340124520153N00552677EA0000002340 +B1340144520145N00552677EA0000002342 +B1340164520141N00552664EA0000002343 +B1340184520148N00552652EA0000002345 +B1340204520158N00552651EA0000002348 +B1340224520168N00552651EA0000002350 +B1340244520180N00552647EA0000002350 +B1340264520193N00552650EA0000002350 +B1340284520210N00552657EA0000002350 +B1340304520223N00552663EA0000002350 +B1340324520236N00552670EA0000002351 +B1340344520247N00552675EA0000002352 +B1340364520257N00552681EA0000002353 +B1340384520269N00552689EA0000002352 +B1340404520281N00552698EA0000002350 +B1340424520296N00552706EA0000002348 +B1340444520311N00552714EA0000002346 +B1340464520325N00552722EA0000002344 +B1340484520339N00552731EA0000002343 +B1340504520355N00552741EA0000002340 +B1340534520371N00552750EA0000002339 +B1340554520384N00552761EA0000002339 +B1340574520394N00552774EA0000002339 +B1340594520407N00552785EA0000002337 +B1341014520420N00552797EA0000002335 +B1341034520433N00552808EA0000002335 +B1341054520445N00552818EA0000002334 +B1341074520456N00552828EA0000002333 +B1341094520468N00552840EA0000002330 +B1341114520480N00552855EA0000002326 +B1341134520492N00552869EA0000002324 +B1341154520504N00552883EA0000002321 +B1341174520516N00552898EA0000002318 +B1341194520529N00552912EA0000002315 +B1341214520542N00552924EA0000002313 +B1341234520555N00552939EA0000002311 +B1341254520567N00552954EA0000002309 +B1341274520580N00552969EA0000002306 +B1341294520593N00552982EA0000002305 +B1341314520606N00552994EA0000002303 +B1341334520621N00553007EA0000002301 +B1341354520635N00553020EA0000002301 +B1341374520647N00553030EA0000002300 +B1341394520662N00553039EA0000002299 +B1341414520677N00553050EA0000002298 +B1341434520690N00553061EA0000002298 +B1341454520703N00553073EA0000002297 +B1341474520716N00553088EA0000002295 +B1341494520726N00553103EA0000002295 +B1341514520737N00553116EA0000002294 +B1341534520750N00553127EA0000002293 +B1341554520762N00553140EA0000002290 +B1341574520775N00553151EA0000002288 +B1341594520788N00553162EA0000002287 +B1342014520800N00553176EA0000002286 +B1342034520811N00553187EA0000002285 +B1342054520824N00553197EA0000002283 +B1342074520845N00553216EA0000002279 +B1342094520857N00553227EA0000002277 +B1342114520870N00553238EA0000002275 +B1342134520883N00553249EA0000002272 +B1342154520896N00553261EA0000002270 +B1342174520910N00553272EA0000002268 +B1342194520923N00553279EA0000002266 +B1342214520936N00553286EA0000002263 +B1342234520947N00553297EA0000002260 +B1342254520959N00553308EA0000002257 +B1342274520970N00553318EA0000002254 +B1342294520979N00553331EA0000002249 +B1342324520990N00553342EA0000002244 +B1342344521002N00553352EA0000002241 +B1342364521013N00553364EA0000002239 +B1342384521024N00553374EA0000002236 +B1342404521036N00553383EA0000002234 +B1342424521047N00553393EA0000002230 +B1342444521058N00553402EA0000002226 +B1342464521072N00553411EA0000002223 +B1342484521084N00553422EA0000002222 +B1342504521095N00553431EA0000002219 +B1342524521108N00553440EA0000002215 +B1342544521114N00553445EA0000002214 +B1342564521130N00553458EA0000002212 +B1342584521140N00553464EA0000002209 +B1343004521154N00553474EA0000002206 +B1343024521168N00553483EA0000002204 +B1343044521180N00553491EA0000002203 +B1343064521190N00553501EA0000002200 +B1343084521201N00553512EA0000002195 +B1343104521213N00553521EA0000002192 +B1343124521225N00553529EA0000002188 +B1343144521237N00553537EA0000002183 +B1343164521250N00553545EA0000002180 +B1343184521261N00553553EA0000002179 +B1343204521273N00553560EA0000002176 +B1343224521285N00553569EA0000002173 +B1343244521297N00553581EA0000002170 +B1343264521310N00553593EA0000002169 +B1343284521322N00553604EA0000002168 +B1343304521334N00553612EA0000002170 +B1343324521344N00553620EA0000002174 +B1343344521354N00553626EA0000002180 +B1343364521363N00553634EA0000002183 +B1343384521367N00553647EA0000002186 +B1343404521361N00553659EA0000002188 +B1343424521352N00553660EA0000002191 +B1343444521346N00553644EA0000002197 +B1343464521346N00553629EA0000002203 +B1343484521354N00553612EA0000002209 +B1343504521368N00553611EA0000002213 +B1343524521379N00553623EA0000002216 +B1343544521383N00553637EA0000002219 +B1343564521380N00553651EA0000002223 +B1343584521375N00553661EA0000002229 +B1344004521367N00553665EA0000002234 +B1344024521359N00553660EA0000002240 +B1344044521354N00553648EA0000002245 +B1344064521354N00553630EA0000002250 +B1344084521365N00553621EA0000002255 +B1344104521378N00553628EA0000002260 +B1344134521383N00553644EA0000002265 +B1344154521381N00553658EA0000002270 +B1344174521378N00553668EA0000002277 +B1344194521373N00553678EA0000002283 +B1344214521366N00553683EA0000002289 +B1344234521360N00553679EA0000002294 +B1344254521356N00553666EA0000002298 +B1344274521362N00553645EA0000002297 +B1344294521373N00553641EA0000002301 +B1344314521378N00553643EA0000002305 +B1344334521393N00553656EA0000002309 +B1344354521393N00553656EA0000002313 +B1344374521412N00553673EA0000002317 +B1344394521423N00553678EA0000002322 +B1344414521432N00553684EA0000002326 +B1344434521441N00553689EA0000002331 +B1344454521451N00553694EA0000002336 +B1344474521461N00553697EA0000002341 +B1344494521471N00553701EA0000002346 +B1344514521484N00553706EA0000002352 +B1344534521497N00553711EA0000002359 +B1344554521508N00553716EA0000002368 +B1344574521518N00553722EA0000002379 +B1344594521528N00553725EA0000002387 +B1345014521540N00553730EA0000002393 +B1345034521551N00553738EA0000002402 +B1345054521557N00553747EA0000002410 +B1345074521562N00553753EA0000002416 +B1345094521569N00553758EA0000002420 +B1345114521576N00553761EA0000002422 +B1345134521585N00553763EA0000002423 +B1345154521594N00553767EA0000002426 +B1345174521604N00553769EA0000002428 +B1345194521613N00553773EA0000002429 +B1345214521623N00553778EA0000002430 +B1345234521634N00553784EA0000002430 +B1345254521645N00553792EA0000002431 +B1345274521661N00553806EA0000002432 +B1345294521671N00553812EA0000002432 +B1345314521682N00553819EA0000002431 +B1345334521693N00553827EA0000002430 +B1345354521704N00553836EA0000002428 +B1345374521715N00553844EA0000002426 +B1345394521728N00553854EA0000002422 +B1345414521743N00553863EA0000002420 +B1345434521758N00553872EA0000002420 +B1345454521771N00553881EA0000002418 +B1345474521784N00553888EA0000002418 +B1345504521796N00553893EA0000002417 +B1345524521809N00553899EA0000002415 +B1345544521824N00553905EA0000002413 +B1345564521839N00553912EA0000002413 +B1345584521853N00553918EA0000002413 +B1346004521866N00553922EA0000002411 +B1346024521881N00553929EA0000002409 +B1346044521895N00553936EA0000002408 +B1346064521909N00553944EA0000002407 +B1346084521916N00553949EA0000002404 +B1346104521938N00553963EA0000002400 +B1346124521953N00553972EA0000002398 +B1346144521969N00553977EA0000002394 +B1346164521969N00553977EA0000002391 +B1346184521999N00553993EA0000002387 +B1346204522014N00554001EA0000002382 +B1346224522030N00554009EA0000002378 +B1346244522046N00554017EA0000002375 +B1346264522060N00554024EA0000002372 +B1346284522075N00554031EA0000002368 +B1346304522090N00554039EA0000002365 +B1346324522105N00554047EA0000002363 +B1346344522119N00554053EA0000002361 +B1346364522135N00554058EA0000002357 +B1346384522151N00554062EA0000002356 +B1346404522165N00554067EA0000002354 +B1346424522180N00554071EA0000002351 +B1346444522196N00554075EA0000002347 +B1346464522211N00554080EA0000002345 +B1346484522226N00554083EA0000002342 +B1346504522242N00554085EA0000002338 +B1346524522258N00554084EA0000002335 +B1346544522272N00554084EA0000002333 +B1346564522286N00554085EA0000002331 +B1346584522300N00554085EA0000002328 +B1347004522316N00554084EA0000002325 +B1347024522331N00554083EA0000002324 +B1347044522344N00554082EA0000002322 +B1347064522365N00554082EA0000002317 +B1347084522381N00554081EA0000002315 +B1347104522396N00554080EA0000002314 +B1347124522410N00554080EA0000002312 +B1347144522425N00554080EA0000002309 +B1347164522441N00554081EA0000002307 +B1347184522457N00554082EA0000002306 +B1347204522472N00554083EA0000002304 +B1347224522488N00554086EA0000002301 +B1347244522503N00554092EA0000002300 +B1347264522517N00554098EA0000002299 +B1347284522530N00554103EA0000002297 +B1347314522543N00554109EA0000002294 +B1347334522558N00554114EA0000002292 +B1347354522571N00554118EA0000002289 +B1347374522585N00554121EA0000002287 +B1347394522598N00554125EA0000002285 +B1347414522612N00554128EA0000002282 +B1347434522627N00554132EA0000002279 +B1347454522641N00554136EA0000002277 +B1347474522654N00554140EA0000002274 +B1347494522669N00554144EA0000002271 +B1347514522683N00554148EA0000002270 +B1347534522695N00554152EA0000002268 +B1347554522709N00554156EA0000002264 +B1347574522723N00554162EA0000002260 +B1347594522737N00554169EA0000002257 +B1348014522751N00554176EA0000002254 +B1348034522765N00554183EA0000002251 +B1348054522779N00554190EA0000002248 +B1348074522793N00554196EA0000002246 +B1348094522806N00554201EA0000002244 +B1348114522819N00554206EA0000002240 +B1348134522833N00554212EA0000002236 +B1348154522847N00554216EA0000002234 +B1348174522860N00554219EA0000002231 +B1348194522873N00554224EA0000002227 +B1348214522887N00554229EA0000002224 +B1348234522901N00554235EA0000002222 +B1348254522914N00554240EA0000002220 +B1348274522925N00554244EA0000002219 +B1348294522937N00554247EA0000002215 +B1348314522951N00554251EA0000002212 +B1348334522965N00554255EA0000002210 +B1348354522976N00554256EA0000002210 +B1348374522987N00554259EA0000002207 +B1348394522998N00554261EA0000002204 +B1348414523011N00554264EA0000002202 +B1348434523022N00554267EA0000002202 +B1348454523031N00554269EA0000002199 +B1348474523049N00554273EA0000002191 +B1348494523061N00554279EA0000002188 +B1348514523073N00554283EA0000002185 +B1348534523084N00554287EA0000002179 +B1348554523096N00554290EA0000002173 +B1348574523111N00554291EA0000002169 +B1348594523124N00554294EA0000002167 +B1349014523137N00554297EA0000002163 +B1349034523152N00554300EA0000002161 +B1349054523166N00554301EA0000002160 +B1349074523179N00554303EA0000002161 +B1349094523191N00554305EA0000002163 +B1349124523201N00554306EA0000002165 +B1349144523211N00554309EA0000002166 +B1349164523222N00554312EA0000002169 +B1349184523232N00554314EA0000002172 +B1349204523242N00554318EA0000002174 +B1349224523252N00554321EA0000002175 +B1349244523264N00554322EA0000002175 +B1349264523275N00554322EA0000002175 +B1349284523286N00554321EA0000002175 +B1349304523298N00554321EA0000002176 +B1349324523310N00554322EA0000002179 +B1349344523319N00554323EA0000002181 +B1349364523329N00554324EA0000002181 +B1349384523341N00554325EA0000002179 +B1349404523356N00554325EA0000002178 +B1349424523369N00554327EA0000002179 +B1349444523381N00554331EA0000002177 +B1349464523395N00554333EA0000002174 +B1349484523409N00554338EA0000002173 +B1349504523421N00554342EA0000002171 +B1349524523432N00554343EA0000002168 +B1349544523444N00554347EA0000002163 +B1349564523459N00554353EA0000002157 +B1349584523475N00554356EA0000002153 +B1350004523488N00554361EA0000002150 +B1350024523500N00554365EA0000002145 +B1350044523514N00554365EA0000002139 +B1350064523528N00554367EA0000002135 +B1350084523541N00554370EA0000002132 +B1350104523554N00554373EA0000002127 +B1350124523568N00554376EA0000002122 +B1350144523582N00554377EA0000002117 +B1350164523596N00554376EA0000002112 +B1350184523610N00554374EA0000002109 +B1350204523623N00554372EA0000002106 +B1350224523634N00554369EA0000002103 +B1350244523647N00554366EA0000002098 +B1350264523661N00554363EA0000002092 +B1350284523682N00554360EA0000002088 +B1350304523695N00554358EA0000002085 +B1350324523708N00554357EA0000002080 +B1350344523722N00554355EA0000002076 +B1350364523735N00554353EA0000002073 +B1350384523748N00554351EA0000002068 +B1350404523761N00554347EA0000002064 +B1350424523774N00554344EA0000002060 +B1350444523787N00554339EA0000002056 +B1350464523800N00554335EA0000002052 +B1350484523813N00554330EA0000002050 +B1350504523824N00554326EA0000002047 +B1350534523837N00554322EA0000002042 +B1350554523851N00554319EA0000002039 +B1350574523864N00554316EA0000002036 +B1350594523877N00554313EA0000002035 +B1351014523889N00554310EA0000002032 +B1351034523902N00554306EA0000002028 +B1351054523915N00554303EA0000002025 +B1351074523929N00554299EA0000002023 +B1351094523942N00554296EA0000002021 +B1351114523948N00554294EA0000002019 +B1351134523968N00554292EA0000002016 +B1351154523981N00554289EA0000002013 +B1351174523981N00554289EA0000002011 +B1351194524007N00554283EA0000002009 +B1351214524021N00554279EA0000002007 +B1351234524034N00554276EA0000002005 +B1351254524048N00554274EA0000002003 +B1351274524062N00554271EA0000002001 +B1351294524076N00554268EA0000001998 +B1351314524090N00554265EA0000001996 +B1351334524103N00554262EA0000001994 +B1351354524117N00554259EA0000001992 +B1351374524131N00554257EA0000001990 +B1351394524144N00554253EA0000001988 +B1351414524158N00554250EA0000001986 +B1351434524171N00554247EA0000001983 +B1351454524184N00554243EA0000001979 +B1351474524198N00554240EA0000001975 +B1351494524212N00554238EA0000001972 +B1351514524226N00554236EA0000001970 +B1351534524241N00554235EA0000001967 +B1351554524255N00554233EA0000001965 +B1351574524269N00554229EA0000001965 +B1351594524281N00554227EA0000001963 +B1352014524295N00554224EA0000001960 +B1352034524308N00554220EA0000001958 +B1352054524321N00554217EA0000001956 +B1352074524334N00554214EA0000001952 +B1352094524355N00554209EA0000001947 +B1352114524369N00554206EA0000001943 +B1352134524381N00554198EA0000001940 +B1352154524393N00554190EA0000001936 +B1352174524405N00554184EA0000001932 +B1352194524417N00554179EA0000001929 +B1352214524429N00554176EA0000001927 +B1352234524440N00554174EA0000001926 +B1352254524451N00554171EA0000001923 +B1352274524461N00554167EA0000001919 +B1352294524474N00554164EA0000001916 +B1352314524486N00554160EA0000001915 +B1352344524497N00554156EA0000001913 +B1352364524507N00554151EA0000001909 +B1352384524519N00554147EA0000001906 +B1352404524531N00554144EA0000001904 +B1352424524542N00554142EA0000001901 +B1352444524554N00554139EA0000001898 +B1352464524567N00554136EA0000001894 +B1352484524581N00554135EA0000001892 +B1352504524593N00554136EA0000001891 +B1352524524602N00554136EA0000001894 +B1352544524613N00554137EA0000001899 +B1352564524624N00554139EA0000001905 +B1352584524624N00554139EA0000001914 +B1353004524639N00554143EA0000001919 +B1353024524647N00554142EA0000001925 +B1353044524656N00554140EA0000001932 +B1353064524663N00554137EA0000001938 +B1353084524671N00554134EA0000001943 +B1353104524681N00554132EA0000001949 +B1353124524689N00554130EA0000001955 +B1353144524694N00554124EA0000001960 +B1353164524701N00554117EA0000001966 +B1353184524709N00554112EA0000001971 +B1353204524717N00554108EA0000001976 +B1353224524727N00554104EA0000001981 +B1353244524738N00554101EA0000001986 +B1353264524748N00554098EA0000001989 +B1353284524758N00554095EA0000001993 +B1353304524767N00554091EA0000001997 +B1353324524777N00554089EA0000002000 +B1353344524786N00554088EA0000002002 +B1353364524798N00554085EA0000002002 +B1353384524810N00554084EA0000002003 +B1353404524818N00554076EA0000002002 +B1353424524822N00554063EA0000002001 +B1353444524822N00554050EA0000002000 +B1353464524814N00554041EA0000001999 +B1353484524802N00554043EA0000001997 +B1353504524794N00554067EA0000001995 +B1353524524793N00554080EA0000001995 +B1353544524790N00554090EA0000001995 +B1353564524786N00554101EA0000001994 +B1353584524779N00554112EA0000001994 +B1354004524773N00554122EA0000001995 +B1354024524766N00554133EA0000001997 +B1354044524759N00554145EA0000002001 +B1354064524753N00554156EA0000002006 +B1354084524747N00554162EA0000002013 +B1354104524738N00554163EA0000002020 +B1354134524732N00554152EA0000002028 +B1354154524736N00554137EA0000002034 +B1354174524751N00554141EA0000002043 +B1354194524755N00554163EA0000002051 +B1354214524750N00554179EA0000002063 +B1354234524743N00554187EA0000002073 +B1354254524735N00554186EA0000002081 +B1354274524731N00554172EA0000002088 +B1354294524737N00554160EA0000002095 +B1354314524751N00554165EA0000002101 +B1354334524757N00554182EA0000002107 +B1354354524749N00554202EA0000002116 +B1354374524736N00554210EA0000002125 +B1354394524732N00554209EA0000002131 +B1354414524726N00554195EA0000002138 +B1354434524730N00554184EA0000002145 +B1354454524740N00554178EA0000002151 +B1354474524753N00554184EA0000002156 +B1354494524760N00554202EA0000002161 +B1354514524761N00554220EA0000002166 +B1354534524755N00554234EA0000002171 +B1354554524745N00554238EA0000002175 +B1354574524738N00554228EA0000002179 +B1354594524740N00554216EA0000002183 +B1355014524754N00554214EA0000002188 +B1355034524765N00554226EA0000002192 +B1355054524768N00554247EA0000002196 +B1355074524764N00554265EA0000002202 +B1355094524756N00554276EA0000002205 +B1355114524745N00554274EA0000002207 +B1355134524743N00554260EA0000002209 +B1355154524752N00554253EA0000002213 +B1355174524762N00554255EA0000002219 +B1355194524770N00554259EA0000002226 +B1355214524779N00554265EA0000002231 +B1355234524787N00554278EA0000002233 +B1355254524787N00554301EA0000002236 +B1355274524777N00554314EA0000002239 +B1355294524764N00554299EA0000002242 +B1355314524769N00554286EA0000002244 +B1355334524779N00554285EA0000002247 +B1355354524788N00554293EA0000002248 +B1355374524794N00554305EA0000002251 +B1355394524797N00554319EA0000002253 +B1355414524793N00554332EA0000002255 +B1355434524784N00554336EA0000002256 +B1355454524775N00554329EA0000002257 +B1355474524774N00554315EA0000002257 +B1355494524781N00554305EA0000002257 +B1355524524790N00554300EA0000002258 +B1355544524798N00554297EA0000002259 +B1355564524809N00554297EA0000002261 +B1355584524820N00554297EA0000002263 +B1356004524830N00554299EA0000002268 +B1356024524840N00554299EA0000002272 +B1356044524850N00554301EA0000002277 +B1356064524860N00554309EA0000002281 +B1356084524870N00554319EA0000002286 +B1356104524882N00554323EA0000002290 +B1356124524895N00554320EA0000002293 +B1356144524906N00554316EA0000002297 +B1356164524914N00554309EA0000002299 +B1356184524922N00554298EA0000002301 +B1356204524926N00554286EA0000002302 +B1356224524924N00554274EA0000002304 +B1356244524917N00554265EA0000002304 +B1356264524909N00554260EA0000002305 +B1356284524901N00554256EA0000002305 +B1356304524894N00554247EA0000002304 +B1356324524890N00554232EA0000002303 +B1356344524893N00554221EA0000002303 +B1356364524899N00554215EA0000002304 +B1356384524908N00554210EA0000002306 +B1356404524917N00554207EA0000002308 +B1356424524927N00554203EA0000002311 +B1356444524936N00554199EA0000002315 +B1356464524946N00554196EA0000002318 +B1356484524957N00554195EA0000002323 +B1356504524968N00554192EA0000002328 +B1356524524979N00554190EA0000002334 +B1356544524991N00554192EA0000002338 +B1356564525003N00554192EA0000002341 +B1356584525014N00554191EA0000002345 +B1357004525026N00554193EA0000002349 +B1357024525037N00554194EA0000002353 +B1357044525046N00554189EA0000002358 +B1357064525052N00554178EA0000002361 +B1357084525050N00554162EA0000002365 +B1357104525044N00554157EA0000002366 +B1357124525036N00554156EA0000002368 +B1357144525028N00554162EA0000002369 +B1357164525024N00554175EA0000002369 +B1357184525023N00554191EA0000002369 +B1357204525027N00554207EA0000002372 +B1357224525037N00554218EA0000002374 +B1357244525050N00554221EA0000002377 +B1357264525062N00554221EA0000002380 +B1357294525075N00554222EA0000002383 +B1357314525089N00554222EA0000002387 +B1357334525101N00554221EA0000002392 +B1357354525114N00554220EA0000002395 +B1357374525127N00554222EA0000002399 +B1357394525141N00554223EA0000002405 +B1357414525153N00554222EA0000002411 +B1357434525164N00554221EA0000002416 +B1357454525178N00554220EA0000002420 +B1357474525185N00554219EA0000002426 +B1357494525206N00554216EA0000002432 +B1357514525218N00554217EA0000002437 +B1357534525218N00554217EA0000002442 +B1357554525239N00554220EA0000002445 +B1357574525252N00554220EA0000002446 +B1357594525266N00554224EA0000002446 +B1358014525278N00554226EA0000002445 +B1358034525290N00554229EA0000002443 +B1358054525303N00554235EA0000002441 +B1358074525316N00554240EA0000002441 +B1358094525328N00554243EA0000002441 +B1358114525338N00554247EA0000002438 +B1358134525350N00554253EA0000002435 +B1358154525364N00554258EA0000002431 +B1358174525377N00554262EA0000002428 +B1358194525390N00554266EA0000002424 +B1358214525404N00554271EA0000002421 +B1358234525417N00554277EA0000002418 +B1358254525429N00554282EA0000002416 +B1358274525442N00554288EA0000002412 +B1358294525455N00554294EA0000002410 +B1358314525467N00554300EA0000002408 +B1358334525479N00554306EA0000002405 +B1358354525491N00554313EA0000002401 +B1358374525505N00554318EA0000002399 +B1358394525517N00554320EA0000002397 +B1358414525530N00554325EA0000002394 +B1358434525542N00554328EA0000002391 +B1358454525559N00554332EA0000002385 +B1358474525572N00554336EA0000002379 +B1358494525586N00554342EA0000002375 +B1358514525600N00554346EA0000002373 +B1358534525614N00554352EA0000002371 +B1358554525627N00554361EA0000002370 +B1358574525640N00554367EA0000002370 +B1358594525650N00554370EA0000002371 +B1359014525657N00554375EA0000002371 +B1359034525667N00554380EA0000002368 +B1359054525680N00554386EA0000002365 +B1359074525694N00554392EA0000002364 +B1359104525706N00554398EA0000002364 +B1359124525716N00554404EA0000002363 +B1359144525729N00554409EA0000002360 +B1359164525742N00554412EA0000002359 +B1359184525754N00554416EA0000002359 +B1359204525765N00554423EA0000002358 +B1359224525778N00554431EA0000002358 +B1359244525791N00554439EA0000002360 +B1359264525802N00554447EA0000002363 +B1359284525814N00554454EA0000002364 +B1359304525827N00554459EA0000002366 +B1359324525840N00554465EA0000002368 +B1359344525840N00554465EA0000002368 +B1359364525866N00554480EA0000002368 +B1359384525881N00554488EA0000002368 +B1359404525894N00554495EA0000002369 +B1359424525907N00554502EA0000002369 +B1359444525921N00554506EA0000002371 +B1359464525933N00554512EA0000002374 +B1359484525943N00554521EA0000002374 +B1359504525955N00554527EA0000002373 +B1359524525967N00554533EA0000002374 +B1359544525978N00554542EA0000002376 +B1359564525991N00554549EA0000002379 +B1359584526004N00554557EA0000002384 +B1400004526014N00554565EA0000002390 +B1400024526021N00554570EA0000002395 +B1400044526028N00554575EA0000002398 +B1400064526033N00554589EA0000002401 +B1400084526031N00554608EA0000002403 +B1400104526019N00554617EA0000002405 +B1400124526010N00554610EA0000002408 +B1400144526007N00554601EA0000002413 +B1400164526008N00554593EA0000002415 +B1400184526013N00554587EA0000002417 +B1400204526021N00554584EA0000002419 +B1400224526032N00554592EA0000002421 +B1400244526037N00554608EA0000002422 +B1400264526027N00554630EA0000002425 +B1400284526017N00554627EA0000002426 +B1400304526016N00554612EA0000002428 +B1400324526025N00554604EA0000002429 +B1400344526036N00554607EA0000002430 +B1400364526047N00554611EA0000002433 +B1400384526057N00554612EA0000002434 +B1400404526068N00554616EA0000002433 +B1400424526080N00554624EA0000002431 +B1400454526093N00554630EA0000002427 +B1400474526106N00554634EA0000002422 +B1400494526121N00554640EA0000002418 +B1400514526135N00554648EA0000002415 +B1400534526147N00554654EA0000002413 +B1400554526160N00554656EA0000002410 +B1400574526175N00554660EA0000002407 +B1400594526190N00554664EA0000002404 +B1401014526204N00554666EA0000002402 +B1401034526217N00554669EA0000002401 +B1401054526230N00554670EA0000002401 +B1401074526243N00554670EA0000002401 +B1401094526257N00554671EA0000002400 +B1401114526272N00554672EA0000002399 +B1401134526285N00554672EA0000002400 +B1401154526298N00554674EA0000002400 +B1401174526313N00554676EA0000002401 +B1401194526327N00554676EA0000002402 +B1401214526341N00554675EA0000002404 +B1401234526354N00554674EA0000002408 +B1401254526367N00554672EA0000002411 +B1401274526382N00554672EA0000002414 +B1401294526396N00554673EA0000002419 +B1401314526404N00554673EA0000002424 +B1401334526412N00554672EA0000002428 +B1401354526422N00554672EA0000002430 +B1401374526433N00554672EA0000002431 +B1401394526445N00554674EA0000002431 +B1401414526459N00554674EA0000002430 +B1401434526475N00554674EA0000002429 +B1401454526491N00554677EA0000002429 +B1401474526505N00554681EA0000002430 +B1401494526519N00554684EA0000002430 +B1401514526534N00554684EA0000002430 +B1401534526549N00554685EA0000002429 +B1401554526565N00554689EA0000002429 +B1401574526579N00554692EA0000002429 +B1401594526594N00554695EA0000002427 +B1402014526619N00554706EA0000002425 +B1402034526633N00554713EA0000002425 +B1402054526646N00554717EA0000002425 +B1402074526658N00554721EA0000002425 +B1402094526670N00554723EA0000002424 +B1402114526682N00554725EA0000002422 +B1402134526696N00554727EA0000002418 +B1402154526709N00554733EA0000002414 +B1402174526722N00554737EA0000002410 +B1402194526737N00554740EA0000002406 +B1402214526753N00554749EA0000002401 +B1402234526768N00554756EA0000002397 +B1402264526784N00554759EA0000002392 +B1402284526800N00554764EA0000002386 +B1402304526816N00554773EA0000002380 +B1402324526834N00554778EA0000002375 +B1402344526849N00554784EA0000002370 +B1402364526864N00554791EA0000002364 +B1402384526880N00554797EA0000002359 +B1402404526896N00554805EA0000002354 +B1402424526908N00554816EA0000002350 +B1402444526921N00554825EA0000002344 +B1402464526936N00554833EA0000002338 +B1402484526951N00554843EA0000002333 +B1402504526951N00554843EA0000002328 +B1402524526978N00554861EA0000002322 +B1402544526992N00554871EA0000002317 +B1402564527005N00554880EA0000002314 +B1402584527018N00554886EA0000002311 +B1403004527031N00554893EA0000002307 +B1403024527045N00554900EA0000002302 +B1403044527061N00554908EA0000002296 +B1403064527078N00554915EA0000002291 +B1403084527095N00554921EA0000002288 +B1403104527111N00554928EA0000002285 +B1403124527127N00554936EA0000002280 +B1403144527144N00554944EA0000002276 +B1403164527161N00554953EA0000002273 +B1403184527178N00554962EA0000002269 +B1403204527195N00554970EA0000002266 +B1403224527212N00554979EA0000002263 +B1403244527229N00554988EA0000002260 +B1403264527246N00554996EA0000002258 +B1403284527262N00555006EA0000002256 +B1403304527278N00555017EA0000002253 +B1403324527294N00555027EA0000002249 +B1403344527310N00555036EA0000002245 +B1403364527326N00555049EA0000002241 +B1403384527341N00555060EA0000002237 +B1403404527358N00555073EA0000002234 +B1403424527381N00555094EA0000002229 +B1403444527396N00555107EA0000002225 +B1403464527412N00555121EA0000002221 +B1403484527428N00555135EA0000002217 +B1403504527443N00555148EA0000002215 +B1403524527458N00555159EA0000002212 +B1403544527474N00555172EA0000002207 +B1403564527490N00555185EA0000002203 +B1403584527507N00555197EA0000002201 +B1404004527523N00555209EA0000002198 +B1404024527538N00555219EA0000002195 +B1404044527554N00555230EA0000002190 +B1404074527571N00555241EA0000002186 +B1404094527587N00555251EA0000002184 +B1404114527603N00555263EA0000002181 +B1404134527617N00555276EA0000002177 +B1404154527632N00555289EA0000002174 +B1404174527648N00555300EA0000002171 +B1404194527664N00555309EA0000002167 +B1404214527680N00555318EA0000002164 +B1404234527696N00555327EA0000002160 +B1404254527713N00555333EA0000002157 +B1404274527730N00555338EA0000002153 +B1404294527746N00555343EA0000002148 +B1404314527746N00555343EA0000002144 +B1404334527781N00555350EA0000002140 +B1404354527798N00555354EA0000002136 +B1404374527814N00555362EA0000002132 +B1404394527831N00555370EA0000002127 +B1404414527848N00555377EA0000002122 +B1404434527864N00555387EA0000002118 +B1404454527881N00555396EA0000002114 +B1404474527898N00555402EA0000002110 +B1404494527915N00555407EA0000002105 +B1404514527931N00555411EA0000002101 +B1404534527948N00555412EA0000002096 +B1404554527959N00555413EA0000002092 +B1404574527965N00555412EA0000002088 +B1404594527973N00555409EA0000002084 +B1405014527986N00555404EA0000002079 +B1405034527995N00555400EA0000002075 +B1405054528002N00555398EA0000002073 +B1405074528011N00555395EA0000002070 +B1405094528023N00555392EA0000002069 +B1405114528034N00555394EA0000002068 +B1405134528044N00555398EA0000002067 +B1405154528055N00555403EA0000002064 +B1405174528066N00555412EA0000002064 +B1405194528075N00555422EA0000002064 +B1405214528084N00555433EA0000002063 +B1405234528099N00555450EA0000002061 +B1405254528108N00555459EA0000002060 +B1405274528118N00555469EA0000002059 +B1405294528128N00555480EA0000002058 +B1405314528138N00555491EA0000002057 +B1405334528146N00555503EA0000002056 +B1405354528155N00555515EA0000002053 +B1405374528167N00555528EA0000002049 +B1405394528180N00555541EA0000002048 +B1405414528191N00555553EA0000002046 +B1405434528202N00555566EA0000002043 +B1405454528214N00555578EA0000002040 +B1405484528226N00555589EA0000002037 +B1405504528237N00555599EA0000002034 +B1405524528249N00555610EA0000002029 +B1405544528262N00555621EA0000002026 +B1405564528274N00555631EA0000002023 +B1405584528285N00555642EA0000002020 +B1406004528296N00555652EA0000002016 +B1406024528308N00555664EA0000002010 +B1406044528320N00555677EA0000002006 +B1406064528330N00555690EA0000002003 +B1406084528340N00555702EA0000001999 +B1406104528351N00555714EA0000001993 +B1406124528362N00555726EA0000001988 +B1406144528373N00555740EA0000001985 +B1406164528383N00555754EA0000001983 +B1406184528393N00555767EA0000001981 +B1406204528405N00555779EA0000001980 +B1406224528416N00555791EA0000001979 +B1406244528426N00555801EA0000001978 +B1406264528437N00555813EA0000001976 +B1406284528449N00555824EA0000001975 +B1406304528459N00555835EA0000001973 +B1406324528471N00555847EA0000001970 +B1406344528482N00555859EA0000001968 +B1406364528494N00555869EA0000001966 +B1406384528505N00555881EA0000001963 +B1406404528516N00555894EA0000001962 +B1406424528527N00555907EA0000001961 +B1406444528538N00555921EA0000001961 +B1406464528549N00555934EA0000001961 +B1406484528558N00555947EA0000001961 +B1406504528566N00555961EA0000001961 +B1406524528575N00555973EA0000001961 +B1406544528584N00555984EA0000001961 +B1406564528592N00555996EA0000001960 +B1406584528600N00556007EA0000001958 +B1407004528609N00556019EA0000001956 +B1407024528622N00556036EA0000001953 +B1407044528631N00556046EA0000001951 +B1407064528641N00556057EA0000001950 +B1407084528651N00556067EA0000001949 +B1407104528661N00556078EA0000001948 +B1407124528670N00556088EA0000001947 +B1407144528679N00556100EA0000001945 +B1407164528687N00556114EA0000001943 +B1407184528694N00556129EA0000001940 +B1407204528700N00556145EA0000001938 +B1407224528705N00556163EA0000001934 +B1407244528710N00556181EA0000001930 +B1407274528718N00556196EA0000001926 +B1407294528726N00556211EA0000001922 +B1407314528735N00556225EA0000001917 +B1407334528744N00556240EA0000001913 +B1407354528753N00556255EA0000001910 +B1407374528762N00556269EA0000001907 +B1407394528772N00556282EA0000001903 +B1407414528781N00556296EA0000001900 +B1407434528791N00556310EA0000001897 +B1407454528799N00556324EA0000001894 +B1407474528809N00556338EA0000001890 +B1407494528818N00556353EA0000001887 +B1407514528826N00556367EA0000001884 +B1407534528835N00556381EA0000001880 +B1407554528844N00556396EA0000001877 +B1407574528852N00556410EA0000001874 +B1407594528860N00556424EA0000001870 +B1408014528869N00556438EA0000001865 +B1408034528878N00556451EA0000001861 +B1408054528886N00556467EA0000001857 +B1408074528895N00556482EA0000001855 +B1408094528904N00556494EA0000001852 +B1408114528914N00556507EA0000001849 +B1408134528924N00556520EA0000001847 +B1408154528934N00556532EA0000001845 +B1408174528944N00556543EA0000001843 +B1408194528954N00556552EA0000001841 +B1408214528965N00556559EA0000001840 +B1408234528975N00556567EA0000001838 +B1408254528987N00556573EA0000001835 +B1408274528998N00556578EA0000001834 +B1408294529010N00556582EA0000001832 +B1408314529021N00556586EA0000001830 +B1408334529033N00556589EA0000001829 +B1408354529045N00556592EA0000001828 +B1408374529056N00556597EA0000001826 +B1408394529068N00556603EA0000001823 +B1408414529082N00556620EA0000001818 +B1408434529092N00556632EA0000001815 +B1408454529103N00556643EA0000001812 +B1408474529114N00556652EA0000001809 +B1408494529124N00556661EA0000001807 +B1408514529135N00556669EA0000001805 +B1408534529146N00556679EA0000001802 +B1408554529156N00556689EA0000001799 +B1408574529167N00556699EA0000001796 +B1408594529177N00556708EA0000001794 +B1409014529187N00556717EA0000001792 +B1409044529198N00556726EA0000001789 +B1409064529208N00556735EA0000001787 +B1409084529219N00556743EA0000001784 +B1409104529230N00556750EA0000001780 +B1409124529241N00556757EA0000001777 +B1409144529252N00556765EA0000001774 +B1409164529263N00556772EA0000001771 +B1409184529274N00556779EA0000001768 +B1409204529285N00556786EA0000001766 +B1409224529295N00556795EA0000001763 +B1409244529306N00556803EA0000001760 +B1409264529316N00556812EA0000001758 +B1409284529326N00556823EA0000001755 +B1409304529337N00556833EA0000001752 +B1409324529348N00556843EA0000001750 +B1409344529358N00556853EA0000001747 +B1409364529370N00556863EA0000001745 +B1409384529381N00556872EA0000001742 +B1409404529391N00556883EA0000001740 +B1409424529402N00556894EA0000001737 +B1409444529413N00556904EA0000001734 +B1409464529423N00556915EA0000001730 +B1409484529433N00556929EA0000001727 +B1409504529442N00556942EA0000001724 +B1409524529452N00556955EA0000001721 +B1409544529461N00556969EA0000001718 +B1409564529470N00556983EA0000001716 +B1409584529480N00556996EA0000001713 +B1410004529490N00557008EA0000001711 +B1410024529500N00557021EA0000001708 +B1410044529510N00557034EA0000001706 +B1410064529520N00557047EA0000001704 +B1410084529529N00557061EA0000001701 +B1410104529537N00557075EA0000001700 +B1410124529545N00557089EA0000001699 +B1410144529554N00557102EA0000001697 +B1410164529563N00557116EA0000001695 +B1410184529570N00557130EA0000001694 +B1410204529582N00557150EA0000001692 +B1410224529590N00557163EA0000001691 +B1410244529599N00557174EA0000001690 +B1410264529607N00557186EA0000001688 +B1410284529616N00557198EA0000001685 +B1410304529625N00557210EA0000001682 +B1410324529634N00557222EA0000001680 +B1410344529642N00557234EA0000001677 +B1410364529651N00557246EA0000001674 +B1410384529660N00557258EA0000001671 +B1410404529668N00557269EA0000001669 +B1410424529676N00557281EA0000001666 +B1410454529684N00557293EA0000001664 +B1410474529693N00557304EA0000001662 +B1410494529701N00557316EA0000001660 +B1410514529709N00557328EA0000001658 +B1410534529717N00557341EA0000001655 +B1410554529724N00557354EA0000001653 +B1410574529732N00557366EA0000001650 +B1410594529741N00557378EA0000001647 +B1411014529750N00557390EA0000001644 +B1411034529758N00557404EA0000001641 +B1411054529768N00557419EA0000001636 +B1411074529777N00557434EA0000001633 +B1411094529785N00557448EA0000001630 +B1411114529794N00557462EA0000001626 +B1411134529804N00557476EA0000001621 +B1411154529814N00557489EA0000001618 +B1411174529823N00557502EA0000001614 +B1411194529834N00557514EA0000001610 +B1411214529845N00557526EA0000001606 +B1411234529856N00557537EA0000001603 +B1411254529866N00557549EA0000001600 +B1411274529876N00557562EA0000001597 +B1411294529885N00557575EA0000001594 +B1411314529895N00557590EA0000001591 +B1411334529904N00557605EA0000001589 +B1411354529913N00557619EA0000001586 +B1411374529922N00557633EA0000001583 +B1411394529932N00557646EA0000001580 +B1411414529941N00557660EA0000001577 +B1411434529951N00557672EA0000001573 +B1411454529961N00557685EA0000001570 +B1411474529971N00557699EA0000001567 +B1411494529980N00557713EA0000001564 +B1411514529989N00557726EA0000001561 +B1411534529998N00557739EA0000001557 +B1411554530008N00557753EA0000001554 +B1411574530022N00557772EA0000001550 +B1411594530032N00557784EA0000001547 +B1412014530041N00557796EA0000001544 +B1412034530051N00557808EA0000001542 +B1412054530061N00557818EA0000001539 +B1412074530071N00557829EA0000001536 +B1412094530082N00557841EA0000001533 +B1412114530092N00557853EA0000001531 +B1412134530102N00557864EA0000001528 +B1412154530113N00557874EA0000001525 +B1412174530123N00557886EA0000001522 +B1412194530133N00557898EA0000001521 +B1412224530143N00557909EA0000001518 +B1412244530153N00557919EA0000001515 +B1412264530163N00557931EA0000001512 +B1412284530173N00557942EA0000001510 +B1412304530183N00557952EA0000001507 +B1412324530192N00557963EA0000001504 +B1412344530202N00557974EA0000001502 +B1412364530212N00557985EA0000001499 +B1412384530222N00557996EA0000001497 +B1412404530232N00558007EA0000001494 +B1412424530242N00558018EA0000001491 +B1412444530251N00558030EA0000001489 +B1412464530261N00558042EA0000001486 +B1412484530271N00558054EA0000001484 +B1412504530280N00558067EA0000001481 +B1412524530289N00558080EA0000001478 +B1412544530298N00558092EA0000001475 +B1412564530307N00558105EA0000001473 +B1412584530317N00558118EA0000001470 +B1413004530326N00558131EA0000001467 +B1413024530335N00558143EA0000001465 +B1413044530345N00558155EA0000001462 +B1413064530354N00558168EA0000001459 +B1413084530363N00558180EA0000001457 +B1413104530373N00558192EA0000001455 +B1413124530383N00558204EA0000001452 +B1413144530392N00558216EA0000001449 +B1413164530402N00558228EA0000001447 +B1413184530412N00558240EA0000001444 +B1413204530421N00558252EA0000001441 +B1413224530431N00558264EA0000001439 +B1413244530441N00558277EA0000001436 +B1413264530450N00558290EA0000001434 +B1413284530460N00558302EA0000001431 +B1413304530469N00558316EA0000001429 +B1413324530477N00558329EA0000001426 +B1413344530485N00558343EA0000001424 +B1413364530498N00558365EA0000001419 +B1413384530506N00558378EA0000001416 +B1413404530514N00558391EA0000001413 +B1413424530523N00558405EA0000001410 +B1413444530531N00558419EA0000001407 +B1413464530539N00558433EA0000001404 +B1413484530547N00558447EA0000001401 +B1413504530555N00558461EA0000001399 +B1413524530564N00558474EA0000001396 +B1413544530572N00558488EA0000001393 +B1413564530581N00558502EA0000001390 +B1413584530589N00558515EA0000001388 +B1414004530597N00558528EA0000001385 +B1414034530605N00558541EA0000001382 +B1414054530614N00558554EA0000001379 +B1414074530622N00558567EA0000001377 +B1414094530630N00558581EA0000001374 +B1414114530638N00558595EA0000001372 +B1414134530646N00558608EA0000001370 +B1414154530653N00558621EA0000001368 +B1414174530661N00558634EA0000001365 +B1414194530669N00558647EA0000001363 +B1414214530676N00558660EA0000001360 +B1414234530683N00558674EA0000001357 +B1414254530689N00558688EA0000001354 +B1414274530696N00558702EA0000001351 +B1414294530703N00558716EA0000001348 +B1414314530710N00558729EA0000001345 +B1414334530717N00558743EA0000001340 +B1414354530725N00558757EA0000001337 +B1414374530732N00558770EA0000001334 +B1414394530740N00558783EA0000001331 +B1414414530748N00558795EA0000001328 +B1414434530757N00558806EA0000001325 +B1414454530766N00558819EA0000001322 +B1414474530774N00558831EA0000001319 +B1414494530782N00558844EA0000001316 +B1414514530790N00558858EA0000001312 +B1414534530800N00558873EA0000001309 +B1414554530809N00558888EA0000001307 +B1414574530817N00558903EA0000001305 +B1414594530826N00558917EA0000001301 +B1415014530835N00558932EA0000001298 +B1415034530844N00558947EA0000001296 +B1415054530852N00558961EA0000001294 +B1415074530860N00558976EA0000001292 +B1415094530868N00558990EA0000001290 +B1415114530876N00559003EA0000001287 +B1415134530883N00559018EA0000001284 +B1415154530895N00559040EA0000001281 +B1415174530902N00559054EA0000001279 +B1415194530909N00559069EA0000001277 +B1415214530916N00559083EA0000001275 +B1415234530923N00559097EA0000001272 +B1415254530930N00559111EA0000001270 +B1415274530938N00559123EA0000001267 +B1415294530946N00559136EA0000001264 +B1415314530955N00559150EA0000001261 +B1415334530963N00559163EA0000001259 +B1415354530971N00559177EA0000001256 +B1415374530980N00559191EA0000001253 +B1415404530989N00559205EA0000001252 +B1415424530996N00559219EA0000001251 +B1415444531002N00559232EA0000001248 +B1415464531012N00559242EA0000001245 +B1415484531022N00559252EA0000001243 +B1415504531030N00559263EA0000001240 +B1415524531037N00559275EA0000001236 +B1415544531045N00559289EA0000001232 +B1415564531052N00559304EA0000001229 +B1415584531058N00559317EA0000001226 +B1416004531064N00559330EA0000001221 +B1416024531071N00559346EA0000001217 +B1416044531077N00559362EA0000001212 +B1416064531084N00559378EA0000001209 +B1416084531090N00559392EA0000001205 +B1416104531096N00559407EA0000001201 +B1416124531103N00559422EA0000001197 +B1416144531109N00559438EA0000001193 +B1416164531114N00559455EA0000001187 +B1416184531119N00559472EA0000001183 +B1416204531125N00559488EA0000001179 +B1416224531131N00559503EA0000001175 +B1416244531138N00559519EA0000001171 +B1416264531143N00559536EA0000001167 +B1416284531149N00559553EA0000001164 +B1416304531154N00559570EA0000001160 +B1416324531160N00559586EA0000001158 +B1416344531166N00559600EA0000001154 +B1416364531172N00559615EA0000001151 +B1416384531179N00559633EA0000001149 +B1416404531186N00559651EA0000001147 +B1416424531194N00559670EA0000001146 +B1416444531201N00559687EA0000001147 +B1416464531207N00559700EA0000001145 +B1416484531215N00559713EA0000001142 +B1416504531223N00559729EA0000001141 +B1416524531229N00559744EA0000001141 +B1416544531235N00559758EA0000001138 +B1416564531246N00559782EA0000001133 +B1416584531253N00559799EA0000001130 +B1417004531259N00559815EA0000001126 +B1417024531267N00559831EA0000001123 +B1417044531273N00559846EA0000001119 +B1417064531280N00559863EA0000001115 +B1417084531287N00559880EA0000001110 +B1417104531294N00559898EA0000001107 +B1417124531301N00559915EA0000001104 +B1417144531308N00559930EA0000001101 +B1417164531315N00559946EA0000001098 +B1417184531322N00559963EA0000001095 +B1417214531329N00559979EA0000001093 +B1417234531334N00559995EA0000001090 +B1417254531341N00600011EA0000001085 +B1417274531349N00600028EA0000001081 +B1417294531355N00600044EA0000001078 +B1417314531361N00600059EA0000001074 +B1417334531367N00600078EA0000001068 +B1417354531374N00600097EA0000001064 +B1417374531381N00600114EA0000001062 +B1417394531387N00600131EA0000001059 +B1417414531394N00600148EA0000001054 +B1417434531403N00600165EA0000001050 +B1417454531407N00600174EA0000001048 +B1417474531417N00600199EA0000001045 +B1417494531424N00600214EA0000001041 +B1417514531431N00600232EA0000001038 +B1417534531438N00600250EA0000001035 +B1417554531445N00600268EA0000001033 +B1417574531451N00600283EA0000001033 +B1417594531456N00600299EA0000001030 +B1418014531463N00600316EA0000001027 +B1418034531470N00600335EA0000001026 +B1418054531476N00600350EA0000001025 +B1418074531483N00600364EA0000001023 +B1418094531489N00600380EA0000001022 +B1418114531495N00600394EA0000001021 +B1418134531502N00600407EA0000001021 +B1418154531508N00600420EA0000001019 +B1418174531514N00600433EA0000001017 +B1418194531522N00600446EA0000001014 +B1418214531529N00600461EA0000001011 +B1418234531535N00600475EA0000001008 +B1418254531542N00600491EA0000001004 +B1418274531550N00600507EA0000001001 +B1418294531556N00600524EA0000000999 +B1418314531563N00600539EA0000000997 +B1418334531570N00600554EA0000000995 +B1418354531579N00600575EA0000000989 +B1418374531587N00600588EA0000000984 +B1418394531594N00600601EA0000000980 +B1418414531601N00600614EA0000000975 +B1418434531608N00600626EA0000000970 +B1418454531616N00600641EA0000000965 +B1418474531622N00600656EA0000000962 +B1418494531628N00600671EA0000000957 +B1418514531635N00600687EA0000000953 +B1418534531643N00600702EA0000000949 +B1418554531650N00600716EA0000000946 +B1418574531657N00600730EA0000000943 +B1419004531666N00600745EA0000000940 +B1419024531673N00600760EA0000000939 +B1419044531680N00600774EA0000000938 +B1419064531687N00600788EA0000000937 +B1419084531694N00600803EA0000000936 +B1419104531701N00600819EA0000000936 +B1419124531707N00600832EA0000000937 +B1419144531714N00600845EA0000000936 +B1419164531721N00600858EA0000000934 +B1419184531731N00600870EA0000000933 +B1419204531741N00600885EA0000000933 +B1419224531747N00600899EA0000000934 +B1419244531753N00600913EA0000000934 +B1419264531760N00600929EA0000000932 +B1419284531767N00600946EA0000000932 +B1419304531772N00600962EA0000000931 +B1419324531780N00600974EA0000000929 +B1419344531787N00600987EA0000000928 +B1419364531795N00601002EA0000000926 +B1419384531802N00601015EA0000000925 +B1419404531809N00601030EA0000000922 +B1419424531815N00601046EA0000000921 +B1419444531821N00601062EA0000000919 +B1419464531828N00601078EA0000000917 +B1419484531834N00601094EA0000000916 +B1419504531841N00601108EA0000000914 +B1419524531848N00601121EA0000000914 +B1419544531853N00601130EA0000000914 +B1419564531859N00601139EA0000000913 +B1419584531866N00601148EA0000000912 +B1420004531872N00601154EA0000000912 +B1420024531878N00601160EA0000000913 +B1420044531885N00601164EA0000000913 +B1420064531891N00601169EA0000000914 +B1420084531897N00601172EA0000000914 +B1420104531904N00601173EA0000000914 +B1420124531912N00601172EA0000000914 +B1420144531921N00601170EA0000000914 +B1420164531928N00601168EA0000000915 +B1420184531934N00601165EA0000000915 +B1420204531938N00601163EA0000000917 +B1420224531943N00601160EA0000000917 +B1420244531949N00601154EA0000000918 +B1420264531954N00601148EA0000000919 +B1420284531959N00601145EA0000000920 +B1420304531965N00601141EA0000000922 +B1420324531972N00601137EA0000000924 +B1420344531978N00601133EA0000000927 +B1420364531983N00601132EA0000000930 +B1420384531991N00601131EA0000000933 +B1420414531998N00601131EA0000000937 +B1420434532002N00601128EA0000000940 +B1420454532008N00601125EA0000000944 +B1420474532016N00601123EA0000000949 +B1420494532022N00601121EA0000000954 +B1420514532029N00601119EA0000000959 +B1420534532037N00601120EA0000000963 +B1420554532045N00601118EA0000000968 +B1420574532051N00601114EA0000000974 +B1420594532057N00601111EA0000000978 +B1421014532064N00601109EA0000000984 +B1421034532069N00601106EA0000000990 +B1421054532075N00601104EA0000000996 +B1421074532081N00601102EA0000001001 +B1421094532089N00601098EA0000001005 +B1421114532097N00601095EA0000001010 +B1421134532101N00601091EA0000001014 +B1421154532105N00601086EA0000001017 +B1421174532112N00601083EA0000001019 +B1421194532119N00601080EA0000001022 +B1421214532125N00601078EA0000001026 +B1421234532131N00601075EA0000001030 +B1421254532136N00601071EA0000001034 +B1421274532142N00601067EA0000001037 +B1421294532150N00601064EA0000001040 +B1421314532156N00601060EA0000001044 +B1421334532160N00601056EA0000001046 +B1421354532167N00601051EA0000001048 +B1421374532176N00601048EA0000001050 +B1421394532182N00601046EA0000001054 +B1421414532188N00601042EA0000001058 +B1421434532195N00601040EA0000001063 +B1421454532202N00601039EA0000001068 +B1421474532209N00601037EA0000001074 +B1421494532214N00601036EA0000001079 +B1421514532220N00601034EA0000001083 +B1421534532228N00601034EA0000001087 +B1421554532236N00601034EA0000001091 +B1421574532248N00601037EA0000001094 +B1421594532258N00601040EA0000001098 +B1422014532267N00601039EA0000001104 +B1422034532272N00601035EA0000001111 +B1422054532276N00601034EA0000001117 +B1422074532280N00601034EA0000001122 +B1422094532283N00601030EA0000001126 +B1422114532283N00601023EA0000001129 +B1422134532280N00601014EA0000001131 +B1422154532268N00601007EA0000001132 +B1422174532252N00601012EA0000001134 +B1422204532242N00601032EA0000001135 +B1422224532242N00601052EA0000001135 +B1422244532244N00601066EA0000001138 +B1422264532250N00601078EA0000001143 +B1422284532257N00601088EA0000001148 +B1422304532262N00601099EA0000001155 +B1422324532268N00601109EA0000001162 +B1422344532274N00601115EA0000001169 +B1422364532278N00601116EA0000001175 +B1422384532283N00601114EA0000001182 +B1422404532284N00601110EA0000001188 +B1422424532280N00601102EA0000001194 +B1422444532271N00601098EA0000001198 +B1422464532259N00601102EA0000001203 +B1422484532250N00601114EA0000001209 +B1422504532247N00601133EA0000001214 +B1422524532250N00601149EA0000001220 +B1422544532256N00601157EA0000001225 +B1422564532262N00601164EA0000001224 +B1422584532265N00601159EA0000001227 +B1423004532260N00601152EA0000001229 +B1423024532251N00601149EA0000001234 +B1423044532241N00601153EA0000001239 +B1423064532233N00601166EA0000001244 +B1423084532228N00601186EA0000001250 +B1423104532227N00601206EA0000001255 +B1423124532229N00601222EA0000001257 +B1423144532232N00601232EA0000001258 +B1423164532237N00601235EA0000001255 +B1423184532241N00601231EA0000001252 +B1423204532238N00601222EA0000001248 +B1423224532227N00601220EA0000001248 +B1423244532214N00601231EA0000001249 +B1423264532203N00601246EA0000001253 +B1423284532194N00601258EA0000001254 +B1423304532185N00601273EA0000001255 +B1423324532180N00601292EA0000001256 +B1423344532182N00601306EA0000001254 +B1423364532191N00601314EA0000001252 +B1423384532194N00601309EA0000001249 +B1423404532198N00601302EA0000001245 +B1423424532203N00601298EA0000001242 +B1423444532208N00601293EA0000001241 +B1423464532210N00601288EA0000001241 +B1423484532209N00601283EA0000001242 +B1423504532211N00601278EA0000001242 +B1423524532214N00601275EA0000001244 +B1423544532215N00601272EA0000001244 +B1423564532217N00601267EA0000001245 +B1423584532218N00601264EA0000001243 +B1424014532222N00601263EA0000001242 +B1424034532228N00601265EA0000001240 +B1424054532235N00601268EA0000001240 +B1424074532241N00601268EA0000001240 +B1424094532247N00601269EA0000001240 +B1424114532254N00601269EA0000001240 +B1424134532259N00601268EA0000001239 +B1424154532265N00601265EA0000001238 +B1424174532270N00601260EA0000001237 +B1424194532275N00601255EA0000001237 +B1424214532279N00601249EA0000001235 +B1424234532283N00601243EA0000001234 +B1424254532287N00601236EA0000001233 +B1424274532291N00601229EA0000001233 +B1424294532296N00601224EA0000001231 +B1424314532301N00601219EA0000001231 +B1424334532305N00601215EA0000001230 +B1424354532310N00601212EA0000001228 +B1424374532314N00601207EA0000001225 +B1424394532318N00601201EA0000001224 +B1424414532321N00601195EA0000001222 +B1424434532326N00601187EA0000001221 +B1424454532331N00601181EA0000001220 +B1424474532335N00601176EA0000001220 +B1424494532339N00601171EA0000001219 +B1424514532345N00601167EA0000001217 +B1424534532351N00601163EA0000001216 +B1424554532356N00601158EA0000001217 +B1424574532360N00601152EA0000001216 +B1424594532364N00601147EA0000001216 +B1425014532368N00601142EA0000001215 +B1425034532371N00601136EA0000001213 +B1425054532375N00601131EA0000001212 +B1425074532380N00601127EA0000001212 +B1425094532384N00601127EA0000001213 +B1425114532388N00601128EA0000001214 +B1425134532393N00601126EA0000001216 +B1425154532396N00601122EA0000001219 +B1425174532401N00601121EA0000001222 +B1425194532407N00601123EA0000001225 +B1425214532414N00601132EA0000001227 +B1425234532418N00601151EA0000001229 +B1425254532411N00601172EA0000001232 +B1425274532399N00601179EA0000001232 +B1425294532389N00601169EA0000001233 +B1425314532391N00601159EA0000001234 +B1425334532400N00601160EA0000001235 +B1425354532409N00601168EA0000001239 +B1425374532414N00601178EA0000001243 +B1425394532416N00601193EA0000001245 +B1425424532413N00601212EA0000001248 +B1425444532402N00601221EA0000001250 +B1425464532391N00601219EA0000001251 +B1425484532386N00601207EA0000001250 +B1425504532389N00601194EA0000001252 +B1425524532398N00601194EA0000001254 +B1425544532405N00601206EA0000001257 +B1425564532404N00601223EA0000001260 +B1425584532396N00601234EA0000001262 +B1426004532385N00601235EA0000001264 +B1426024532380N00601224EA0000001266 +B1426044532386N00601218EA0000001268 +B1426064532394N00601228EA0000001270 +B1426084532397N00601245EA0000001273 +B1426104532397N00601260EA0000001277 +B1426124532394N00601275EA0000001279 +B1426144532386N00601287EA0000001281 +B1426164532375N00601291EA0000001283 +B1426184532366N00601284EA0000001283 +B1426204532365N00601274EA0000001284 +B1426224532372N00601274EA0000001284 +B1426244532381N00601284EA0000001286 +B1426264532388N00601293EA0000001287 +B1426284532396N00601299EA0000001289 +B1426304532402N00601311EA0000001288 +B1426324532406N00601328EA0000001288 +B1426344532403N00601344EA0000001289 +B1426364532396N00601357EA0000001290 +B1426384532387N00601368EA0000001291 +B1426404532377N00601377EA0000001291 +B1426424532368N00601383EA0000001292 +B1426444532358N00601386EA0000001291 +B1426464532348N00601380EA0000001290 +B1426484532345N00601369EA0000001290 +B1426504532347N00601359EA0000001289 +B1426524532349N00601351EA0000001290 +B1426544532350N00601339EA0000001293 +B1426564532351N00601331EA0000001295 +B1426584532352N00601324EA0000001298 +B1427004532354N00601317EA0000001302 +B1427024532356N00601311EA0000001306 +B1427044532358N00601307EA0000001309 +B1427064532360N00601302EA0000001311 +B1427084532367N00601299EA0000001312 +B1427104532374N00601304EA0000001313 +B1427124532378N00601318EA0000001313 +B1427144532377N00601335EA0000001313 +B1427164532368N00601350EA0000001312 +B1427194532358N00601360EA0000001312 +B1427214532346N00601367EA0000001312 +B1427234532332N00601376EA0000001313 +B1427254532320N00601384EA0000001314 +B1427274532309N00601391EA0000001317 +B1427294532300N00601398EA0000001321 +B1427314532290N00601398EA0000001324 +B1427334532280N00601390EA0000001327 +B1427354532278N00601382EA0000001329 +B1427374532284N00601382EA0000001332 +B1427394532290N00601399EA0000001334 +B1427414532290N00601417EA0000001337 +B1427434532285N00601429EA0000001340 +B1427454532276N00601438EA0000001343 +B1427474532264N00601443EA0000001346 +B1427494532254N00601437EA0000001349 +B1427514532251N00601427EA0000001353 +B1427534532256N00601420EA0000001357 +B1427554532264N00601420EA0000001361 +B1427574532272N00601432EA0000001363 +B1427594532275N00601452EA0000001367 +B1428014532269N00601469EA0000001373 +B1428034532259N00601478EA0000001377 +B1428054532247N00601482EA0000001379 +B1428074532237N00601478EA0000001381 +B1428094532232N00601466EA0000001384 +B1428114532237N00601461EA0000001389 +B1428134532244N00601463EA0000001393 +B1428154532252N00601472EA0000001394 +B1428174532256N00601488EA0000001396 +B1428194532256N00601504EA0000001399 +B1428214532246N00601516EA0000001401 +B1428234532236N00601523EA0000001403 +B1428254532221N00601526EA0000001400 +B1428274532211N00601517EA0000001402 +B1428294532208N00601506EA0000001404 +B1428314532211N00601499EA0000001408 +B1428334532219N00601497EA0000001414 +B1428354532224N00601497EA0000001415 +B1428374532231N00601505EA0000001416 +B1428394532234N00601526EA0000001415 +B1428414532225N00601548EA0000001414 +B1428434532210N00601556EA0000001413 +B1428454532198N00601557EA0000001414 +B1428474532186N00601558EA0000001416 +B1428494532175N00601558EA0000001420 +B1428514532165N00601558EA0000001423 +B1428534532155N00601556EA0000001425 +B1428554532148N00601546EA0000001426 +B1428584532151N00601537EA0000001426 +B1429004532160N00601542EA0000001424 +B1429024532165N00601560EA0000001422 +B1429044532157N00601580EA0000001420 +B1429064532141N00601589EA0000001418 +B1429084532125N00601592EA0000001418 +B1429104532114N00601595EA0000001420 +B1429124532104N00601596EA0000001420 +B1429144532093N00601596EA0000001422 +B1429164532082N00601598EA0000001424 +B1429184532072N00601596EA0000001427 +B1429204532065N00601588EA0000001429 +B1429224532065N00601578EA0000001434 +B1429244532074N00601577EA0000001437 +B1429264532080N00601586EA0000001439 +B1429284532080N00601606EA0000001440 +B1429304532068N00601622EA0000001441 +B1429324532054N00601623EA0000001443 +B1429344532048N00601613EA0000001445 +B1429364532052N00601604EA0000001450 +B1429384532059N00601600EA0000001454 +B1429404532064N00601597EA0000001458 +B1429424532070N00601599EA0000001462 +B1429444532077N00601611EA0000001466 +B1429464532074N00601629EA0000001468 +B1429484532062N00601639EA0000001471 +B1429504532049N00601636EA0000001473 +B1429524532042N00601626EA0000001474 +B1429544532041N00601614EA0000001476 +B1429564532048N00601607EA0000001479 +B1429584532057N00601605EA0000001482 +B1430004532064N00601613EA0000001487 +B1430024532067N00601627EA0000001490 +B1430044532064N00601644EA0000001493 +B1430064532053N00601655EA0000001495 +B1430084532034N00601650EA0000001498 +B1430104532032N00601638EA0000001501 +B1430124532035N00601631EA0000001505 +B1430144532040N00601630EA0000001508 +B1430164532047N00601635EA0000001511 +B1430184532051N00601651EA0000001515 +B1430204532042N00601669EA0000001518 +B1430224532029N00601676EA0000001521 +B1430244532018N00601671EA0000001524 +B1430264532012N00601660EA0000001527 +B1430284532014N00601651EA0000001529 +B1430304532020N00601647EA0000001533 +B1430334532027N00601648EA0000001538 +B1430354532033N00601661EA0000001544 +B1430374532033N00601681EA0000001552 +B1430394532026N00601699EA0000001563 +B1430414532012N00601707EA0000001569 +B1430434532000N00601702EA0000001573 +B1430454531994N00601688EA0000001577 +B1430474531999N00601681EA0000001582 +B1430494532007N00601684EA0000001588 +B1430514532012N00601692EA0000001598 +B1430534532015N00601699EA0000001606 +B1430554532020N00601705EA0000001614 +B1430574532024N00601720EA0000001619 +B1430594532021N00601741EA0000001625 +B1431014532009N00601753EA0000001632 +B1431034531997N00601748EA0000001638 +B1431054531994N00601736EA0000001645 +B1431074531996N00601730EA0000001654 +B1431094532002N00601729EA0000001664 +B1431114532007N00601731EA0000001673 +B1431134532011N00601737EA0000001680 +B1431154532017N00601751EA0000001686 +B1431174532015N00601773EA0000001691 +B1431194532004N00601784EA0000001695 +B1431214531992N00601785EA0000001700 +B1431234531984N00601776EA0000001705 +B1431254531984N00601766EA0000001712 +B1431274531991N00601761EA0000001718 +B1431294531998N00601764EA0000001723 +B1431314532002N00601777EA0000001727 +B1431334532000N00601795EA0000001729 +B1431354531990N00601805EA0000001731 +B1431374531978N00601799EA0000001732 +B1431394531971N00601787EA0000001735 +B1431414531971N00601779EA0000001739 +B1431434531974N00601773EA0000001741 +B1431454531980N00601768EA0000001743 +B1431474531991N00601778EA0000001745 +B1431494531992N00601794EA0000001746 +B1431514531984N00601810EA0000001746 +B1431534531973N00601816EA0000001746 +B1431554531965N00601811EA0000001747 +B1431574531961N00601800EA0000001749 +B1431594531957N00601790EA0000001755 +B1432014531955N00601778EA0000001760 +B1432034531956N00601765EA0000001766 +B1432054531960N00601757EA0000001771 +B1432074531965N00601759EA0000001776 +B1432094531967N00601771EA0000001779 +B1432124531962N00601785EA0000001782 +B1432144531950N00601791EA0000001784 +B1432164531939N00601787EA0000001786 +B1432184531930N00601781EA0000001790 +B1432204531923N00601776EA0000001793 +B1432224531918N00601769EA0000001795 +B1432244531918N00601761EA0000001797 +B1432264531923N00601759EA0000001798 +B1432284531929N00601764EA0000001799 +B1432304531935N00601767EA0000001801 +B1432324531939N00601763EA0000001802 +B1432344531943N00601759EA0000001803 +B1432364531947N00601758EA0000001803 +B1432384531953N00601756EA0000001802 +B1432404531958N00601752EA0000001802 +B1432424531963N00601748EA0000001801 +B1432444531969N00601744EA0000001799 +B1432464531976N00601738EA0000001798 +B1432484531982N00601733EA0000001797 +B1432504531988N00601728EA0000001796 +B1432524531995N00601725EA0000001794 +B1432544532002N00601721EA0000001793 +B1432564532009N00601720EA0000001793 +B1432584532016N00601719EA0000001792 +B1433004532024N00601718EA0000001791 +B1433024532032N00601718EA0000001792 +B1433044532039N00601719EA0000001793 +B1433064532047N00601721EA0000001793 +B1433084532055N00601723EA0000001795 +B1433104532063N00601722EA0000001796 +B1433124532070N00601722EA0000001796 +B1433144532079N00601723EA0000001795 +B1433164532088N00601723EA0000001795 +B1433184532096N00601724EA0000001794 +B1433204532105N00601727EA0000001793 +B1433224532113N00601730EA0000001792 +B1433244532122N00601733EA0000001791 +B1433264532135N00601736EA0000001790 +B1433284532144N00601738EA0000001788 +B1433304532153N00601741EA0000001786 +B1433324532162N00601744EA0000001785 +B1433344532170N00601748EA0000001783 +B1433364532178N00601754EA0000001782 +B1433384532186N00601759EA0000001781 +B1433404532194N00601766EA0000001779 +B1433424532203N00601775EA0000001776 +B1433444532214N00601786EA0000001773 +B1433464532224N00601796EA0000001771 +B1433484532233N00601806EA0000001768 +B1433514532242N00601816EA0000001764 +B1433534532252N00601828EA0000001761 +B1433554532262N00601839EA0000001760 +B1433574532271N00601850EA0000001757 +B1433594532280N00601860EA0000001753 +B1434014532290N00601872EA0000001750 +B1434034532300N00601883EA0000001747 +B1434054532309N00601894EA0000001744 +B1434074532319N00601906EA0000001740 +B1434094532329N00601919EA0000001736 +B1434114532340N00601934EA0000001731 +B1434134532352N00601949EA0000001726 +B1434154532358N00601956EA0000001723 +B1434174532374N00601978EA0000001718 +B1434194532385N00601993EA0000001713 +B1434214532396N00602008EA0000001708 +B1434234532407N00602023EA0000001704 +B1434254532418N00602038EA0000001699 +B1434274532428N00602053EA0000001694 +B1434294532439N00602069EA0000001688 +B1434314532448N00602085EA0000001683 +B1434334532459N00602101EA0000001678 +B1434354532469N00602117EA0000001672 +B1434374532479N00602133EA0000001666 +B1434394532490N00602148EA0000001660 +B1434414532499N00602163EA0000001653 +B1434434532508N00602180EA0000001647 +B1434454532517N00602196EA0000001640 +B1434474532526N00602214EA0000001633 +B1434494532535N00602231EA0000001626 +B1434514532544N00602248EA0000001619 +B1434534532552N00602266EA0000001613 +B1434554532559N00602284EA0000001609 +B1434574532562N00602299EA0000001606 +B1434594532566N00602314EA0000001602 +B1435014532572N00602332EA0000001599 +B1435034532578N00602347EA0000001597 +B1435054532583N00602361EA0000001599 +B1435074532593N00602384EA0000001596 +B1435094532599N00602400EA0000001595 +B1435114532605N00602416EA0000001595 +B1435134532611N00602431EA0000001593 +B1435154532616N00602447EA0000001591 +B1435174532622N00602462EA0000001589 +B1435194532628N00602478EA0000001588 +B1435214532633N00602494EA0000001585 +B1435234532639N00602509EA0000001583 +B1435254532644N00602525EA0000001580 +B1435274532649N00602541EA0000001578 +B1435304532654N00602555EA0000001576 +B1435324532660N00602568EA0000001573 +B1435344532667N00602580EA0000001569 +B1435364532674N00602592EA0000001567 +B1435384532679N00602605EA0000001564 +B1435404532685N00602618EA0000001561 +B1435424532691N00602632EA0000001557 +B1435444532695N00602648EA0000001554 +B1435464532701N00602663EA0000001551 +B1435484532706N00602678EA0000001548 +B1435504532711N00602694EA0000001544 +B1435524532717N00602712EA0000001542 +B1435544532722N00602729EA0000001541 +B1435564532727N00602743EA0000001538 +B1435584532731N00602759EA0000001535 +B1436004532737N00602777EA0000001532 +B1436024532742N00602793EA0000001531 +B1436044532747N00602806EA0000001529 +B1436064532752N00602821EA0000001525 +B1436084532758N00602839EA0000001523 +B1436104532763N00602855EA0000001521 +B1436124532770N00602867EA0000001518 +B1436144532778N00602879EA0000001513 +B1436164532784N00602893EA0000001508 +B1436184532792N00602905EA0000001503 +B1436204532801N00602916EA0000001497 +B1436224532809N00602928EA0000001493 +B1436244532815N00602945EA0000001488 +B1436264532820N00602961EA0000001483 +B1436284532825N00602979EA0000001478 +B1436304532827N00602999EA0000001474 +B1436324532829N00603018EA0000001471 +B1436344532832N00603036EA0000001467 +B1436364532834N00603055EA0000001463 +B1436384532837N00603074EA0000001460 +B1436404532839N00603093EA0000001456 +B1436424532842N00603112EA0000001452 +B1436444532844N00603131EA0000001447 +B1436464532847N00603160EA0000001441 +B1436484532846N00603181EA0000001437 +B1436504532845N00603203EA0000001435 +B1436524532843N00603223EA0000001434 +B1436544532843N00603242EA0000001434 +B1436564532843N00603257EA0000001439 +B1436584532845N00603268EA0000001443 +B1437004532847N00603277EA0000001445 +B1437024532850N00603284EA0000001447 +B1437044532852N00603294EA0000001449 +B1437064532855N00603305EA0000001452 +B1437094532860N00603315EA0000001456 +B1437114532864N00603323EA0000001461 +B1437134532869N00603329EA0000001466 +B1437154532875N00603332EA0000001469 +B1437174532880N00603336EA0000001472 +B1437194532885N00603336EA0000001473 +B1437214532890N00603330EA0000001473 +B1437234532887N00603316EA0000001472 +B1437254532876N00603311EA0000001472 +B1437274532863N00603319EA0000001474 +B1437294532854N00603327EA0000001478 +B1437314532843N00603332EA0000001480 +B1437334532831N00603333EA0000001482 +B1437354532822N00603327EA0000001484 +B1437374532818N00603317EA0000001489 +B1437394532822N00603311EA0000001492 +B1437414532829N00603316EA0000001494 +B1437434532834N00603324EA0000001498 +B1437454532838N00603330EA0000001501 +B1437474532844N00603336EA0000001502 +B1437494532851N00603340EA0000001502 +B1437514532858N00603342EA0000001502 +B1437534532866N00603342EA0000001504 +B1437554532873N00603342EA0000001505 +B1437574532878N00603343EA0000001505 +B1437594532886N00603346EA0000001505 +B1438014532896N00603353EA0000001506 +B1438034532906N00603359EA0000001507 +B1438054532913N00603362EA0000001510 +B1438074532922N00603365EA0000001511 +B1438094532932N00603369EA0000001514 +B1438114532940N00603371EA0000001515 +B1438134532948N00603371EA0000001517 +B1438154532953N00603371EA0000001520 +B1438174532959N00603372EA0000001521 +B1438194532967N00603370EA0000001521 +B1438214532975N00603368EA0000001521 +B1438234532986N00603366EA0000001519 +B1438254532996N00603362EA0000001517 +B1438274533009N00603355EA0000001515 +B1438294533019N00603350EA0000001513 +B1438314533020N00603348EA0000001514 +B1438334533020N00603345EA0000001514 +B1438354533022N00603336EA0000001513 +B1438374533028N00603327EA0000001513 +B1438394533034N00603325EA0000001513 +B1438414533042N00603319EA0000001512 +B1438434533050N00603314EA0000001510 +B1438454533057N00603314EA0000001508 +B1438484533064N00603311EA0000001505 +B1438504533073N00603307EA0000001504 +B1438524533079N00603302EA0000001503 +B1438544533082N00603295EA0000001502 +B1438564533088N00603287EA0000001501 +B1438584533098N00603281EA0000001500 +B1439004533106N00603279EA0000001501 +B1439024533114N00603276EA0000001503 +B1439044533123N00603272EA0000001506 +B1439064533132N00603270EA0000001510 +B1439084533139N00603270EA0000001514 +B1439104533146N00603275EA0000001519 +B1439124533150N00603278EA0000001530 +B1439144533152N00603282EA0000001534 +B1439164533153N00603292EA0000001534 +B1439184533144N00603312EA0000001533 +B1439204533131N00603307EA0000001530 +B1439224533129N00603290EA0000001529 +B1439244533140N00603284EA0000001530 +B1439264533148N00603286EA0000001531 +B1439284533153N00603291EA0000001529 +B1439304533158N00603303EA0000001528 +B1439324533161N00603316EA0000001528 +B1439344533167N00603326EA0000001526 +B1439364533173N00603336EA0000001524 +B1439384533179N00603346EA0000001521 +B1439404533187N00603354EA0000001517 +B1439424533195N00603362EA0000001514 +B1439444533204N00603371EA0000001511 +B1439464533213N00603380EA0000001510 +B1439484533221N00603388EA0000001507 +B1439504533230N00603397EA0000001505 +B1439524533238N00603407EA0000001503 +B1439544533245N00603415EA0000001500 +B1439564533253N00603424EA0000001497 +B1439584533262N00603432EA0000001494 +B1440004533269N00603439EA0000001491 +B1440024533277N00603448EA0000001487 +B1440044533289N00603462EA0000001483 +B1440064533297N00603471EA0000001480 +B1440084533306N00603481EA0000001476 +B1440104533314N00603490EA0000001474 +B1440124533322N00603497EA0000001471 +B1440144533332N00603505EA0000001468 +B1440164533341N00603513EA0000001465 +B1440184533350N00603522EA0000001463 +B1440204533357N00603533EA0000001463 +B1440224533363N00603545EA0000001462 +B1440244533370N00603558EA0000001460 +B1440264533379N00603571EA0000001457 +B1440294533388N00603583EA0000001455 +B1440314533397N00603596EA0000001452 +B1440334533406N00603609EA0000001451 +B1440354533415N00603624EA0000001449 +B1440374533423N00603639EA0000001447 +B1440394533432N00603653EA0000001446 +B1440414533440N00603667EA0000001445 +B1440434533448N00603682EA0000001443 +B1440454533457N00603696EA0000001441 +B1440474533466N00603710EA0000001439 +B1440494533476N00603725EA0000001437 +B1440514533486N00603740EA0000001435 +B1440534533496N00603754EA0000001434 +B1440554533507N00603767EA0000001434 +B1440574533519N00603780EA0000001434 +B1440594533530N00603792EA0000001435 +B1441014533541N00603803EA0000001437 +B1441034533552N00603814EA0000001440 +B1441054533561N00603824EA0000001445 +B1441074533569N00603832EA0000001451 +B1441094533578N00603840EA0000001457 +B1441114533586N00603843EA0000001463 +B1441134533590N00603842EA0000001469 +B1441154533594N00603840EA0000001474 +B1441174533595N00603831EA0000001479 +B1441194533593N00603824EA0000001481 +B1441214533585N00603818EA0000001481 +B1441234533572N00603827EA0000001483 +B1441254533565N00603836EA0000001489 +B1441274533562N00603837EA0000001494 +B1441294533558N00603830EA0000001499 +B1441314533561N00603822EA0000001503 +B1441334533568N00603817EA0000001507 +B1441354533579N00603819EA0000001509 +B1441374533591N00603834EA0000001512 +B1441394533593N00603854EA0000001514 +B1441414533579N00603870EA0000001517 +B1441434533568N00603873EA0000001521 +B1441454533563N00603862EA0000001530 +B1441474533568N00603854EA0000001534 +B1441494533578N00603858EA0000001539 +B1441514533583N00603873EA0000001542 +B1441534533577N00603893EA0000001546 +B1441554533567N00603903EA0000001549 +B1441574533557N00603900EA0000001551 +B1441594533552N00603894EA0000001557 +B1442014533550N00603888EA0000001560 +B1442034533550N00603878EA0000001564 +B1442064533559N00603873EA0000001567 +B1442084533570N00603886EA0000001570 +B1442104533573N00603907EA0000001572 +B1442124533562N00603922EA0000001573 +B1442144533548N00603925EA0000001576 +B1442164533542N00603919EA0000001581 +B1442184533541N00603913EA0000001587 +B1442204533543N00603908EA0000001591 +B1442224533547N00603905EA0000001593 +B1442244533558N00603912EA0000001595 +B1442264533566N00603932EA0000001596 +B1442284533564N00603954EA0000001597 +B1442304533559N00603962EA0000001599 +B1442324533545N00603969EA0000001600 +B1442344533539N00603965EA0000001604 +B1442364533536N00603959EA0000001606 +B1442384533539N00603954EA0000001608 +B1442404533549N00603960EA0000001610 +B1442424533560N00603972EA0000001611 +B1442444533570N00603980EA0000001612 +B1442464533579N00603981EA0000001613 +B1442484533588N00603982EA0000001614 +B1442504533597N00603982EA0000001616 +B1442524533605N00603981EA0000001617 +B1442544533612N00603977EA0000001617 +B1442564533620N00603976EA0000001617 +B1442584533627N00603975EA0000001618 +B1443004533635N00603973EA0000001618 +B1443024533643N00603971EA0000001620 +B1443044533650N00603970EA0000001621 +B1443064533656N00603969EA0000001622 +B1443084533663N00603965EA0000001622 +B1443104533672N00603962EA0000001621 +B1443124533679N00603959EA0000001620 +B1443144533686N00603954EA0000001618 +B1443164533695N00603949EA0000001616 +B1443184533705N00603946EA0000001615 +B1443204533717N00603942EA0000001614 +B1443224533727N00603939EA0000001612 +B1443244533736N00603935EA0000001610 +B1443264533745N00603932EA0000001608 +B1443284533756N00603927EA0000001606 +B1443304533768N00603922EA0000001605 +B1443324533776N00603917EA0000001605 +B1443344533783N00603910EA0000001605 +B1443364533793N00603901EA0000001603 +B1443384533805N00603892EA0000001602 +B1443404533815N00603886EA0000001602 +B1443424533822N00603879EA0000001602 +B1443454533831N00603871EA0000001602 +B1443474533840N00603866EA0000001604 +B1443494533851N00603863EA0000001605 +B1443514533861N00603860EA0000001608 +B1443534533869N00603858EA0000001612 +B1443554533875N00603856EA0000001617 +B1443574533881N00603856EA0000001623 +B1443594533886N00603856EA0000001628 +B1444014533889N00603852EA0000001633 +B1444034533890N00603843EA0000001636 +B1444054533886N00603836EA0000001639 +B1444074533879N00603834EA0000001642 +B1444094533871N00603840EA0000001645 +B1444114533863N00603854EA0000001646 +B1444134533862N00603872EA0000001648 +B1444154533868N00603885EA0000001650 +B1444174533879N00603891EA0000001652 +B1444194533886N00603890EA0000001656 +B1444214533892N00603887EA0000001659 +B1444234533898N00603884EA0000001660 +B1444254533902N00603879EA0000001661 +B1444274533900N00603872EA0000001660 +B1444294533894N00603866EA0000001659 +B1444314533884N00603872EA0000001657 +B1444334533876N00603890EA0000001656 +B1444354533876N00603910EA0000001655 +B1444374533884N00603922EA0000001655 +B1444394533892N00603920EA0000001655 +B1444414533897N00603913EA0000001655 +B1444434533905N00603910EA0000001657 +B1444454533913N00603910EA0000001659 +B1444474533921N00603912EA0000001660 +B1444494533931N00603917EA0000001661 +B1444514533942N00603925EA0000001664 +B1444534533951N00603935EA0000001667 +B1444554533960N00603945EA0000001671 +B1444574533967N00603952EA0000001677 +B1444594533974N00603957EA0000001687 +B1445014533980N00603952EA0000001692 +B1445034533980N00603943EA0000001698 +B1445054533973N00603934EA0000001703 +B1445074533965N00603932EA0000001710 +B1445094533956N00603938EA0000001716 +B1445114533949N00603951EA0000001723 +B1445134533946N00603967EA0000001730 +B1445154533949N00603978EA0000001735 +B1445174533956N00603986EA0000001742 +B1445194533962N00603991EA0000001747 +B1445214533969N00603991EA0000001753 +B1445244533974N00603987EA0000001758 +B1445264533974N00603980EA0000001762 +B1445284533972N00603973EA0000001767 +B1445304533965N00603967EA0000001773 +B1445324533954N00603970EA0000001779 +B1445344533946N00603982EA0000001786 +B1445364533943N00603999EA0000001794 +B1445384533945N00604015EA0000001800 +B1445404533950N00604029EA0000001806 +B1445424533956N00604039EA0000001812 +B1445444533963N00604039EA0000001817 +B1445464533966N00604035EA0000001821 +B1445484533966N00604029EA0000001825 +B1445504533963N00604019EA0000001829 +B1445524533958N00604014EA0000001834 +B1445544533951N00604014EA0000001841 +B1445564533941N00604021EA0000001848 +B1445584533931N00604035EA0000001854 +B1446004533926N00604054EA0000001860 +B1446024533925N00604073EA0000001867 +B1446044533929N00604088EA0000001874 +B1446064533936N00604097EA0000001879 +B1446084533942N00604098EA0000001884 +B1446104533944N00604091EA0000001889 +B1446124533943N00604084EA0000001894 +B1446144533938N00604078EA0000001900 +B1446164533930N00604076EA0000001906 +B1446184533921N00604079EA0000001912 +B1446204533910N00604087EA0000001917 +B1446224533901N00604104EA0000001922 +B1446244533895N00604125EA0000001927 +B1446264533894N00604146EA0000001932 +B1446284533898N00604163EA0000001936 +B1446304533906N00604170EA0000001939 +B1446324533912N00604169EA0000001943 +B1446344533915N00604169EA0000001946 +B1446364533920N00604164EA0000001950 +B1446384533918N00604157EA0000001954 +B1446404533915N00604150EA0000001958 +B1446424533911N00604146EA0000001964 +B1446444533906N00604142EA0000001969 +B1446464533898N00604141EA0000001974 +B1446484533888N00604145EA0000001980 +B1446504533876N00604154EA0000001986 +B1446524533867N00604176EA0000001991 +B1446544533864N00604198EA0000001997 +B1446564533866N00604215EA0000002003 +B1446584533870N00604226EA0000002006 +B1447014533875N00604233EA0000002009 +B1447034533880N00604235EA0000002012 +B1447054533884N00604235EA0000002014 +B1447074533889N00604232EA0000002015 +B1447094533896N00604228EA0000002017 +B1447114533899N00604222EA0000002021 +B1447134533898N00604215EA0000002026 +B1447154533896N00604212EA0000002032 +B1447174533891N00604209EA0000002036 +B1447194533883N00604206EA0000002042 +B1447214533873N00604207EA0000002049 +B1447234533867N00604214EA0000002056 +B1447254533853N00604240EA0000002061 +B1447274533846N00604259EA0000002067 +B1447294533844N00604278EA0000002072 +B1447314533851N00604293EA0000002077 +B1447334533858N00604300EA0000002081 +B1447354533865N00604304EA0000002084 +B1447374533871N00604305EA0000002086 +B1447394533875N00604301EA0000002089 +B1447414533878N00604295EA0000002093 +B1447434533879N00604287EA0000002096 +B1447454533875N00604278EA0000002097 +B1447474533866N00604271EA0000002100 +B1447494533854N00604272EA0000002104 +B1447514533845N00604281EA0000002107 +B1447534533836N00604295EA0000002108 +B1447554533827N00604310EA0000002112 +B1447574533822N00604327EA0000002115 +B1447594533827N00604342EA0000002118 +B1448014533833N00604351EA0000002121 +B1448034533839N00604356EA0000002122 +B1448054533847N00604358EA0000002125 +B1448074533854N00604358EA0000002128 +B1448094533859N00604355EA0000002132 +B1448114533861N00604348EA0000002137 +B1448134533860N00604337EA0000002140 +B1448154533850N00604324EA0000002145 +B1448174533842N00604320EA0000002148 +B1448194533831N00604318EA0000002149 +B1448214533815N00604334EA0000002147 +B1448234533806N00604357EA0000002149 +B1448254533803N00604375EA0000002152 +B1448274533801N00604390EA0000002154 +B1448294533802N00604405EA0000002155 +B1448314533811N00604409EA0000002156 +B1448334533818N00604408EA0000002159 +B1448354533822N00604405EA0000002163 +B1448374533824N00604400EA0000002167 +B1448404533825N00604392EA0000002170 +B1448424533824N00604381EA0000002172 +B1448444533821N00604369EA0000002174 +B1448464533815N00604362EA0000002175 +B1448484533807N00604356EA0000002176 +B1448504533796N00604352EA0000002175 +B1448524533784N00604351EA0000002174 +B1448544533770N00604350EA0000002171 +B1448564533755N00604350EA0000002169 +B1448584533739N00604352EA0000002168 +B1449004533723N00604350EA0000002168 +B1449024533709N00604348EA0000002167 +B1449044533694N00604348EA0000002168 +B1449064533680N00604349EA0000002169 +B1449084533666N00604351EA0000002171 +B1449104533654N00604359EA0000002172 +B1449124533644N00604373EA0000002173 +B1449144533639N00604387EA0000002173 +B1449164533639N00604400EA0000002172 +B1449184533644N00604411EA0000002170 +B1449204533649N00604418EA0000002166 +B1449224533657N00604418EA0000002161 +B1449244533664N00604410EA0000002157 +B1449264533669N00604403EA0000002156 +B1449284533669N00604393EA0000002153 +B1449304533667N00604379EA0000002151 +B1449324533663N00604365EA0000002150 +B1449344533654N00604354EA0000002152 +B1449364533642N00604347EA0000002152 +B1449384533629N00604341EA0000002154 +B1449404533615N00604343EA0000002155 +B1449424533604N00604352EA0000002155 +B1449444533596N00604365EA0000002156 +B1449464533594N00604380EA0000002156 +B1449484533594N00604395EA0000002156 +B1449504533592N00604409EA0000002154 +B1449524533588N00604425EA0000002151 +B1449544533588N00604443EA0000002147 +B1449564533586N00604470EA0000002143 +B1449584533583N00604485EA0000002141 +B1450004533582N00604498EA0000002137 +B1450024533580N00604513EA0000002133 +B1450044533577N00604528EA0000002131 +B1450064533576N00604541EA0000002128 +B1450084533575N00604554EA0000002125 +B1450104533573N00604568EA0000002123 +B1450124533572N00604580EA0000002121 +B1450144533570N00604593EA0000002119 +B1450164533569N00604607EA0000002118 +B1450184533568N00604619EA0000002117 +B1450214533568N00604631EA0000002115 +B1450234533567N00604643EA0000002113 +B1450254533566N00604657EA0000002111 +B1450274533566N00604669EA0000002110 +B1450294533564N00604681EA0000002109 +B1450314533563N00604696EA0000002107 +B1450334533563N00604710EA0000002107 +B1450354533562N00604723EA0000002106 +B1450374533561N00604736EA0000002105 +B1450394533561N00604749EA0000002103 +B1450414533562N00604763EA0000002103 +B1450434533564N00604775EA0000002102 +B1450454533566N00604786EA0000002100 +B1450474533568N00604799EA0000002100 +B1450494533570N00604812EA0000002100 +B1450514533571N00604824EA0000002098 +B1450534533572N00604837EA0000002095 +B1450554533573N00604851EA0000002093 +B1450574533574N00604865EA0000002092 +B1450594533576N00604876EA0000002090 +B1451014533577N00604889EA0000002087 +B1451034533577N00604903EA0000002085 +B1451054533575N00604918EA0000002083 +B1451074533573N00604933EA0000002081 +B1451094533573N00604948EA0000002079 +B1451114533573N00604963EA0000002078 +B1451134533572N00604978EA0000002076 +B1451154533572N00604993EA0000002074 +B1451174533573N00605007EA0000002072 +B1451194533573N00605021EA0000002069 +B1451214533574N00605034EA0000002066 +B1451234533575N00605048EA0000002062 +B1451254533576N00605062EA0000002058 +B1451274533578N00605074EA0000002054 +B1451294533581N00605086EA0000002048 +B1451314533585N00605101EA0000002043 +B1451334533595N00605124EA0000002035 +B1451354533601N00605137EA0000002032 +B1451374533607N00605151EA0000002028 +B1451394533612N00605166EA0000002025 +B1451414533618N00605181EA0000002023 +B1451434533624N00605193EA0000002022 +B1451454533628N00605206EA0000002019 +B1451474533634N00605219EA0000002016 +B1451494533639N00605232EA0000002015 +B1451514533644N00605245EA0000002013 +B1451534533649N00605258EA0000002010 +B1451554533656N00605272EA0000002007 +B1451584533662N00605284EA0000002006 +B1452004533670N00605297EA0000002004 +B1452024533678N00605308EA0000002002 +B1452044533687N00605319EA0000002000 +B1452064533695N00605330EA0000001998 +B1452084533702N00605341EA0000001996 +B1452104533711N00605352EA0000001994 +B1452124533719N00605361EA0000001993 +B1452144533727N00605369EA0000001991 +B1452164533735N00605378EA0000001988 +B1452184533744N00605387EA0000001986 +B1452204533752N00605397EA0000001984 +B1452224533759N00605409EA0000001981 +B1452244533768N00605419EA0000001978 +B1452264533777N00605429EA0000001975 +B1452284533786N00605441EA0000001972 +B1452304533794N00605450EA0000001969 +B1452324533803N00605459EA0000001965 +B1452344533812N00605467EA0000001962 +B1452364533821N00605476EA0000001961 +B1452384533830N00605482EA0000001959 +B1452404533839N00605490EA0000001958 +B1452424533846N00605499EA0000001957 +B1452444533855N00605506EA0000001954 +B1452464533864N00605513EA0000001952 +B1452484533873N00605523EA0000001950 +B1452504533883N00605529EA0000001949 +B1452524533895N00605531EA0000001947 +B1452544533906N00605536EA0000001946 +B1452564533917N00605543EA0000001945 +B1452584533926N00605551EA0000001945 +B1453004533934N00605561EA0000001944 +B1453024533942N00605572EA0000001944 +B1453044533951N00605580EA0000001943 +B1453064533959N00605589EA0000001942 +B1453084533967N00605598EA0000001939 +B1453104533976N00605606EA0000001936 +B1453124533985N00605616EA0000001931 +B1453144534000N00605631EA0000001924 +B1453164534010N00605639EA0000001920 +B1453184534019N00605648EA0000001918 +B1453204534028N00605656EA0000001916 +B1453224534038N00605663EA0000001913 +B1453244534048N00605671EA0000001910 +B1453264534058N00605681EA0000001908 +B1453284534068N00605691EA0000001906 +B1453304534078N00605701EA0000001903 +B1453324534088N00605711EA0000001901 +B1453344534099N00605720EA0000001900 +B1453364534109N00605729EA0000001899 +B1453394534119N00605737EA0000001896 +B1453414534130N00605747EA0000001893 +B1453434534141N00605756EA0000001891 +B1453454534151N00605764EA0000001890 +B1453474534160N00605772EA0000001888 +B1453494534171N00605782EA0000001885 +B1453514534181N00605790EA0000001883 +B1453534534190N00605796EA0000001881 +B1453554534200N00605805EA0000001878 +B1453574534211N00605815EA0000001874 +B1453594534223N00605822EA0000001870 +B1454014534234N00605830EA0000001865 +B1454034534244N00605839EA0000001860 +B1454054534255N00605846EA0000001855 +B1454074534264N00605855EA0000001850 +B1454094534273N00605865EA0000001845 +B1454114534283N00605876EA0000001840 +B1454134534293N00605888EA0000001836 +B1454154534303N00605899EA0000001832 +B1454174534314N00605910EA0000001828 +B1454194534326N00605920EA0000001823 +B1454214534339N00605929EA0000001819 +B1454234534350N00605937EA0000001817 +B1454254534360N00605945EA0000001814 +B1454274534372N00605954EA0000001810 +B1454294534384N00605964EA0000001805 +B1454314534396N00605975EA0000001802 +B1454334534407N00605985EA0000001798 +B1454354534419N00605994EA0000001795 +B1454374534432N00606002EA0000001791 +B1454394534444N00606009EA0000001788 +B1454414534456N00606016EA0000001786 +B1454434534470N00606024EA0000001783 +B1454454534483N00606034EA0000001781 +B1454474534495N00606043EA0000001780 +B1454494534507N00606052EA0000001780 +B1454514534520N00606062EA0000001779 +B1454534534536N00606077EA0000001781 +B1454554534545N00606084EA0000001782 +B1454574534555N00606093EA0000001783 +B1454594534565N00606101EA0000001784 +B1455014534576N00606107EA0000001785 +B1455034534586N00606113EA0000001791 +B1455054534596N00606121EA0000001793 +B1455074534606N00606129EA0000001796 +B1455094534616N00606135EA0000001799 +B1455114534625N00606137EA0000001803 +B1455134534632N00606141EA0000001806 +B1455154534640N00606144EA0000001809 +B1455184534647N00606147EA0000001813 +B1455204534655N00606150EA0000001817 +B1455224534664N00606153EA0000001821 +B1455244534673N00606158EA0000001827 +B1455264534679N00606161EA0000001832 +B1455284534686N00606163EA0000001837 +B1455304534695N00606167EA0000001842 +B1455324534702N00606172EA0000001849 +B1455344534709N00606179EA0000001855 +B1455364534716N00606185EA0000001861 +B1455384534723N00606185EA0000001865 +B1455404534730N00606180EA0000001868 +B1455424534733N00606171EA0000001871 +B1455444534732N00606159EA0000001873 +B1455464534727N00606148EA0000001876 +B1455484534718N00606141EA0000001879 +B1455504534707N00606139EA0000001881 +B1455524534697N00606144EA0000001883 +B1455544534691N00606156EA0000001885 +B1455564534689N00606170EA0000001889 +B1455584534690N00606184EA0000001895 +B1456004534691N00606197EA0000001902 +B1456024534696N00606208EA0000001908 +B1456044534703N00606216EA0000001914 +B1456064534710N00606220EA0000001919 +B1456084534719N00606219EA0000001922 +B1456104534726N00606211EA0000001925 +B1456124534725N00606193EA0000001928 +B1456154534714N00606182EA0000001932 +B1456174534704N00606185EA0000001934 +B1456194534695N00606187EA0000001935 +B1456214534685N00606191EA0000001936 +B1456234534674N00606199EA0000001938 +B1456254534662N00606205EA0000001942 +B1456274534652N00606211EA0000001948 +B1456294534647N00606215EA0000001956 +B1456314534635N00606230EA0000001964 +B1456334534630N00606242EA0000001971 +B1456354534628N00606257EA0000001978 +B1456374534628N00606273EA0000001986 +B1456394534635N00606285EA0000001993 +B1456414534645N00606292EA0000002002 +B1456434534656N00606287EA0000002009 +B1456454534660N00606273EA0000002016 +B1456474534655N00606259EA0000002022 +B1456494534642N00606257EA0000002029 +B1456514534632N00606264EA0000002037 +B1456534534624N00606274EA0000002045 +B1456554534620N00606288EA0000002054 +B1456574534618N00606302EA0000002063 +B1456594534620N00606314EA0000002072 +B1457014534625N00606326EA0000002080 +B1457034534631N00606335EA0000002087 +B1457054534639N00606341EA0000002094 +B1457074534648N00606343EA0000002102 +B1457094534655N00606335EA0000002110 +B1457114534655N00606324EA0000002117 +B1457134534650N00606312EA0000002123 +B1457154534641N00606302EA0000002130 +B1457174534632N00606299EA0000002136 +B1457194534622N00606300EA0000002142 +B1457214534606N00606309EA0000002153 +B1457234534598N00606319EA0000002162 +B1457254534593N00606330EA0000002172 +B1457274534589N00606345EA0000002181 +B1457294534590N00606364EA0000002190 +B1457314534600N00606373EA0000002200 +B1457334534609N00606373EA0000002211 +B1457354534614N00606365EA0000002220 +B1457374534614N00606352EA0000002228 +B1457394534611N00606343EA0000002235 +B1457414534603N00606333EA0000002242 +B1457434534592N00606328EA0000002251 +B1457464534581N00606328EA0000002261 +B1457484534569N00606328EA0000002272 +B1457504534560N00606334EA0000002282 +B1457524534553N00606346EA0000002291 +B1457544534549N00606360EA0000002299 +B1457564534547N00606374EA0000002306 +B1457584534552N00606388EA0000002313 +B1458004534561N00606396EA0000002323 +B1458024534570N00606397EA0000002334 +B1458044534576N00606397EA0000002344 +B1458064534582N00606392EA0000002353 +B1458084534584N00606383EA0000002359 +B1458104534584N00606377EA0000002366 +B1458124534572N00606363EA0000002372 +B1458144534559N00606362EA0000002380 +B1458164534546N00606364EA0000002390 +B1458184534536N00606366EA0000002400 +B1458204534528N00606369EA0000002407 +B1458224534518N00606378EA0000002415 +B1458244534513N00606395EA0000002424 +B1458264534516N00606407EA0000002435 +B1458284534519N00606418EA0000002446 +B1458304534524N00606427EA0000002456 +B1458324534530N00606433EA0000002466 +B1458344534536N00606434EA0000002474 +B1458364534543N00606431EA0000002482 +B1458384534548N00606423EA0000002489 +B1458404534549N00606412EA0000002496 +B1458424534546N00606399EA0000002502 +B1458444534536N00606389EA0000002508 +B1458464534523N00606384EA0000002516 +B1458484534507N00606387EA0000002524 +B1458504534496N00606400EA0000002534 +B1458524534488N00606413EA0000002544 +B1458544534483N00606426EA0000002553 +B1458564534482N00606440EA0000002561 +B1458584534484N00606452EA0000002570 +B1459004534497N00606454EA0000002583 +B1459024534504N00606450EA0000002593 +B1459044534508N00606443EA0000002601 +B1459064534511N00606431EA0000002607 +B1459084534508N00606415EA0000002614 +B1459104534497N00606406EA0000002620 +B1459124534482N00606409EA0000002627 +B1459144534472N00606424EA0000002634 +B1459164534469N00606439EA0000002641 +B1459184534469N00606452EA0000002649 +B1459204534470N00606465EA0000002656 +B1459224534473N00606480EA0000002664 +B1459254534474N00606494EA0000002671 +B1459274534474N00606505EA0000002678 +B1459294534476N00606518EA0000002682 +B1459314534477N00606536EA0000002686 +B1459334534479N00606553EA0000002692 +B1459354534480N00606566EA0000002698 +B1459374534482N00606580EA0000002702 +B1459394534484N00606598EA0000002707 +B1459414534484N00606614EA0000002714 +B1459434534484N00606629EA0000002718 +B1459454534485N00606646EA0000002721 +B1459474534488N00606664EA0000002727 +B1459494534489N00606683EA0000002734 +B1459514534490N00606700EA0000002740 +B1459534534492N00606717EA0000002746 +B1459554534494N00606732EA0000002752 +B1459574534497N00606746EA0000002758 +B1459594534499N00606757EA0000002763 +B1500014534502N00606771EA0000002766 +B1500034534505N00606787EA0000002768 +B1500054534507N00606801EA0000002767 +B1500074534510N00606821EA0000002764 +B1500094534513N00606841EA0000002764 +B1500114534515N00606854EA0000002763 +B1500134534519N00606865EA0000002760 +B1500154534524N00606878EA0000002754 +B1500174534527N00606894EA0000002750 +B1500194534529N00606909EA0000002748 +B1500214534532N00606922EA0000002744 +B1500234534535N00606936EA0000002739 +B1500254534539N00606953EA0000002734 +B1500274534544N00606969EA0000002732 +B1500294534550N00606985EA0000002728 +B1500314534555N00607001EA0000002725 +B1500334534562N00607017EA0000002724 +B1500354534568N00607029EA0000002723 +B1500374534575N00607043EA0000002720 +B1500394534585N00607067EA0000002719 +B1500414534591N00607080EA0000002720 +B1500434534599N00607089EA0000002718 +B1500454534611N00607094EA0000002717 +B1500474534624N00607095EA0000002716 +B1500494534636N00607094EA0000002714 +B1500514534650N00607092EA0000002712 +B1500534534663N00607089EA0000002712 +B1500554534676N00607083EA0000002711 +B1500574534687N00607076EA0000002708 +B1500594534700N00607068EA0000002706 +B1501014534714N00607061EA0000002704 +B1501044534727N00607052EA0000002701 +B1501064534743N00607044EA0000002697 +B1501084534759N00607037EA0000002696 +B1501104534774N00607030EA0000002695 +B1501124534788N00607023EA0000002692 +B1501144534804N00607017EA0000002688 +B1501164534819N00607011EA0000002686 +B1501184534833N00607004EA0000002685 +B1501204534848N00606998EA0000002682 +B1501224534864N00606994EA0000002680 +B1501244534878N00606988EA0000002678 +B1501264534892N00606980EA0000002676 +B1501284534907N00606973EA0000002673 +B1501304534921N00606967EA0000002670 +B1501324534935N00606959EA0000002668 +B1501344534949N00606951EA0000002664 +B1501364534963N00606944EA0000002661 +B1501384534977N00606934EA0000002658 +B1501404534990N00606925EA0000002655 +B1501424535003N00606917EA0000002653 +B1501444535017N00606908EA0000002649 +B1501464535034N00606900EA0000002644 +B1501484535050N00606894EA0000002641 +B1501504535063N00606888EA0000002640 +B1501524535075N00606882EA0000002637 +B1501544535088N00606874EA0000002633 +B1501564535100N00606866EA0000002628 +B1501584535112N00606859EA0000002623 +B1502004535126N00606855EA0000002617 +B1502024535140N00606853EA0000002613 +B1502044535152N00606849EA0000002610 +B1502064535164N00606843EA0000002608 +B1502084535178N00606840EA0000002605 +B1502104535191N00606835EA0000002603 +B1502124535202N00606828EA0000002600 +B1502144535215N00606823EA0000002595 +B1502164535229N00606815EA0000002591 +B1502184535241N00606806EA0000002588 +B1502204535258N00606792EA0000002584 +B1502224535270N00606778EA0000002582 +B1502244535281N00606767EA0000002582 +B1502264535291N00606757EA0000002583 +B1502284535301N00606747EA0000002582 +B1502304535312N00606737EA0000002583 +B1502324535323N00606730EA0000002583 +B1502344535333N00606724EA0000002582 +B1502364535344N00606715EA0000002579 +B1502384535357N00606706EA0000002577 +B1502404535367N00606697EA0000002576 +B1502424535377N00606686EA0000002574 +B1502454535388N00606675EA0000002572 +B1502474535399N00606665EA0000002571 +B1502494535410N00606655EA0000002569 +B1502514535420N00606646EA0000002567 +B1502534535432N00606637EA0000002563 +B1502554535445N00606629EA0000002560 +B1502574535457N00606621EA0000002558 +B1502594535468N00606611EA0000002557 +B1503014535480N00606602EA0000002554 +B1503034535493N00606593EA0000002550 +B1503054535505N00606582EA0000002547 +B1503074535517N00606573EA0000002545 +B1503094535530N00606563EA0000002541 +B1503114535542N00606553EA0000002538 +B1503134535554N00606544EA0000002535 +B1503154535566N00606536EA0000002531 +B1503174535578N00606529EA0000002527 +B1503194535591N00606521EA0000002523 +B1503214535604N00606515EA0000002519 +B1503234535617N00606507EA0000002516 +B1503254535629N00606499EA0000002512 +B1503274535641N00606492EA0000002509 +B1503294535653N00606486EA0000002504 +B1503314535666N00606478EA0000002499 +B1503334535679N00606472EA0000002496 +B1503354535691N00606467EA0000002492 +B1503374535704N00606458EA0000002488 +B1503394535718N00606450EA0000002486 +B1503414535731N00606442EA0000002485 +B1503434535742N00606434EA0000002482 +B1503454535755N00606423EA0000002478 +B1503474535768N00606413EA0000002476 +B1503494535781N00606405EA0000002474 +B1503514535794N00606397EA0000002470 +B1503534535806N00606390EA0000002467 +B1503554535819N00606384EA0000002464 +B1503574535832N00606377EA0000002460 +B1503594535847N00606373EA0000002458 +B1504014535868N00606366EA0000002458 +B1504034535880N00606359EA0000002459 +B1504054535892N00606353EA0000002461 +B1504074535904N00606345EA0000002463 +B1504094535916N00606337EA0000002466 +B1504114535929N00606333EA0000002467 +B1504134535942N00606328EA0000002468 +B1504154535954N00606322EA0000002468 +B1504174535967N00606316EA0000002469 +B1504194535980N00606311EA0000002470 +B1504214535994N00606305EA0000002470 +B1504234536008N00606301EA0000002470 +B1504264536022N00606297EA0000002471 +B1504284536034N00606292EA0000002472 +B1504304536046N00606288EA0000002470 +B1504324536059N00606284EA0000002467 +B1504344536070N00606277EA0000002463 +B1504364536081N00606270EA0000002457 +B1504384536093N00606262EA0000002451 +B1504404536104N00606251EA0000002446 +B1504424536116N00606240EA0000002442 +B1504444536128N00606232EA0000002438 +B1504464536140N00606223EA0000002435 +B1504484536152N00606214EA0000002433 +B1504504536164N00606206EA0000002430 +B1504524536176N00606200EA0000002427 +B1504544536188N00606193EA0000002423 +B1504564536200N00606188EA0000002421 +B1504584536212N00606183EA0000002418 +B1505004536224N00606177EA0000002414 +B1505024536237N00606173EA0000002410 +B1505044536251N00606170EA0000002406 +B1505064536263N00606168EA0000002403 +B1505084536274N00606164EA0000002401 +B1505104536284N00606158EA0000002398 +B1505124536295N00606153EA0000002395 +B1505144536305N00606149EA0000002391 +B1505164536315N00606143EA0000002386 +B1505184536326N00606137EA0000002381 +B1505204536336N00606131EA0000002376 +B1505224536347N00606123EA0000002372 +B1505244536357N00606117EA0000002369 +B1505264536368N00606110EA0000002366 +B1505284536381N00606103EA0000002363 +B1505304536394N00606101EA0000002361 +B1505324536403N00606099EA0000002360 +B1505344536412N00606094EA0000002359 +B1505364536425N00606091EA0000002357 +B1505384536438N00606089EA0000002357 +B1505404536453N00606085EA0000002359 +B1505424536464N00606081EA0000002359 +B1505444536475N00606077EA0000002360 +B1505464536484N00606073EA0000002366 +B1505484536495N00606073EA0000002366 +B1505504536506N00606071EA0000002366 +B1505524536518N00606069EA0000002366 +B1505544536528N00606068EA0000002367 +B1505564536539N00606066EA0000002366 +B1505584536550N00606065EA0000002366 +B1506004536562N00606064EA0000002366 +B1506024536573N00606062EA0000002366 +B1506054536585N00606062EA0000002367 +B1506074536597N00606064EA0000002369 +B1506094536608N00606065EA0000002369 +B1506114536619N00606065EA0000002369 +B1506134536631N00606063EA0000002369 +B1506154536642N00606062EA0000002371 +B1506174536652N00606062EA0000002371 +B1506194536663N00606061EA0000002371 +B1506214536675N00606059EA0000002371 +B1506234536686N00606059EA0000002371 +B1506254536697N00606059EA0000002370 +B1506274536708N00606058EA0000002368 +B1506294536719N00606056EA0000002367 +B1506314536730N00606055EA0000002368 +B1506334536741N00606053EA0000002369 +B1506354536752N00606051EA0000002371 +B1506374536763N00606052EA0000002373 +B1506394536775N00606055EA0000002377 +B1506414536784N00606058EA0000002381 +B1506434536791N00606059EA0000002387 +B1506454536798N00606058EA0000002392 +B1506474536804N00606055EA0000002397 +B1506494536811N00606053EA0000002404 +B1506514536818N00606051EA0000002411 +B1506534536824N00606050EA0000002418 +B1506554536831N00606048EA0000002423 +B1506574536840N00606047EA0000002428 +B1506594536847N00606051EA0000002434 +B1507014536851N00606060EA0000002439 +B1507034536852N00606075EA0000002443 +B1507054536847N00606092EA0000002447 +B1507074536832N00606103EA0000002451 +B1507094536818N00606098EA0000002455 +B1507114536812N00606085EA0000002459 +B1507134536817N00606074EA0000002464 +B1507154536825N00606073EA0000002470 +B1507174536834N00606077EA0000002479 +B1507194536841N00606083EA0000002488 +B1507214536854N00606089EA0000002496 +B1507234536864N00606092EA0000002503 +B1507254536872N00606095EA0000002508 +B1507274536882N00606098EA0000002513 +B1507294536892N00606101EA0000002518 +B1507314536901N00606104EA0000002525 +B1507334536908N00606106EA0000002532 +B1507354536915N00606107EA0000002538 +B1507374536925N00606106EA0000002545 +B1507394536933N00606104EA0000002553 +B1507414536939N00606104EA0000002558 +B1507444536949N00606102EA0000002561 +B1507464536962N00606104EA0000002563 +B1507484536975N00606106EA0000002567 +B1507504536985N00606104EA0000002572 +B1507524536995N00606101EA0000002578 +B1507544537003N00606103EA0000002586 +B1507564537008N00606104EA0000002592 +B1507584537015N00606102EA0000002598 +B1508004537022N00606104EA0000002602 +B1508024537028N00606106EA0000002606 +B1508044537036N00606105EA0000002608 +B1508064537044N00606104EA0000002610 +B1508084537052N00606104EA0000002613 +B1508104537061N00606102EA0000002616 +B1508124537069N00606100EA0000002621 +B1508144537076N00606097EA0000002627 +B1508164537085N00606094EA0000002633 +B1508184537093N00606091EA0000002639 +B1508204537098N00606083EA0000002646 +B1508224537103N00606071EA0000002651 +B1508244537112N00606062EA0000002657 +B1508264537120N00606054EA0000002663 +B1508284537125N00606043EA0000002667 +B1508304537131N00606033EA0000002670 +B1508324537141N00606026EA0000002671 +B1508344537149N00606017EA0000002671 +B1508364537158N00606006EA0000002670 +B1508384537172N00605997EA0000002668 +B1508404537185N00605991EA0000002669 +B1508424537196N00605987EA0000002670 +B1508444537207N00605981EA0000002670 +B1508464537220N00605976EA0000002668 +B1508484537233N00605975EA0000002665 +B1508504537246N00605975EA0000002662 +B1508524537259N00605975EA0000002659 +B1508544537272N00605976EA0000002657 +B1508564537285N00605980EA0000002654 +B1508584537307N00605980EA0000002647 +B1509004537321N00605977EA0000002644 +B1509024537335N00605977EA0000002641 +B1509044537350N00605978EA0000002637 +B1509064537365N00605979EA0000002635 +B1509084537378N00605981EA0000002633 +B1509104537391N00605984EA0000002631 +B1509124537404N00605986EA0000002628 +B1509144537418N00605991EA0000002626 +B1509164537431N00605996EA0000002623 +B1509184537445N00606000EA0000002621 +B1509204537459N00606004EA0000002618 +B1509234537472N00606009EA0000002616 +B1509254537485N00606014EA0000002615 +B1509274537498N00606020EA0000002615 +B1509294537511N00606027EA0000002616 +B1509314537524N00606034EA0000002616 +B1509334537536N00606038EA0000002615 +B1509354537549N00606039EA0000002613 +B1509374537562N00606043EA0000002610 +B1509394537576N00606048EA0000002607 +B1509414537589N00606050EA0000002605 +B1509434537601N00606054EA0000002603 +B1509454537613N00606059EA0000002600 +B1509474537626N00606062EA0000002597 +B1509494537639N00606067EA0000002594 +B1509514537652N00606071EA0000002591 +B1509534537665N00606074EA0000002589 +B1509554537677N00606078EA0000002587 +B1509574537689N00606082EA0000002584 +B1509594537702N00606087EA0000002580 +B1510014537715N00606094EA0000002576 +B1510034537728N00606100EA0000002573 +B1510054537740N00606105EA0000002569 +B1510074537753N00606112EA0000002564 +B1510094537767N00606121EA0000002559 +B1510114537779N00606128EA0000002554 +B1510134537793N00606136EA0000002549 +B1510154537806N00606143EA0000002544 +B1510174537820N00606149EA0000002540 +B1510194537831N00606155EA0000002537 +B1510214537842N00606163EA0000002534 +B1510234537854N00606169EA0000002530 +B1510254537865N00606175EA0000002527 +B1510274537875N00606183EA0000002523 +B1510294537886N00606192EA0000002517 +B1510314537897N00606201EA0000002511 +B1510334537910N00606211EA0000002505 +B1510354537921N00606221EA0000002499 +B1510374537939N00606232EA0000002491 +B1510394537951N00606241EA0000002485 +B1510414537964N00606249EA0000002480 +B1510434537975N00606255EA0000002475 +B1510454537986N00606265EA0000002469 +B1510474537999N00606276EA0000002463 +B1510494538012N00606285EA0000002458 +B1510514538023N00606294EA0000002455 +B1510534538033N00606305EA0000002450 +B1510554538045N00606315EA0000002446 +B1510574538056N00606327EA0000002443 +B1510594538066N00606338EA0000002440 +B1511014538077N00606351EA0000002438 +B1511044538087N00606364EA0000002435 +B1511064538098N00606377EA0000002434 +B1511084538108N00606389EA0000002433 +B1511104538119N00606400EA0000002431 +B1511124538129N00606414EA0000002429 +B1511144538138N00606428EA0000002428 +B1511164538148N00606440EA0000002426 +B1511184538158N00606453EA0000002425 +B1511204538169N00606465EA0000002424 +B1511224538180N00606477EA0000002423 +B1511244538190N00606489EA0000002422 +B1511264538201N00606502EA0000002421 +B1511284538212N00606516EA0000002419 +B1511304538223N00606531EA0000002417 +B1511324538233N00606545EA0000002417 +B1511344538243N00606556EA0000002416 +B1511364538253N00606567EA0000002415 +B1511384538263N00606580EA0000002414 +B1511404538273N00606593EA0000002414 +B1511424538280N00606604EA0000002414 +B1511444538288N00606614EA0000002413 +B1511464538298N00606623EA0000002412 +B1511484538307N00606632EA0000002411 +B1511504538314N00606643EA0000002412 +B1511524538322N00606652EA0000002414 +B1511544538331N00606661EA0000002417 +B1511564538339N00606670EA0000002421 +B1511584538347N00606677EA0000002423 +B1512004538357N00606684EA0000002425 +B1512024538367N00606692EA0000002426 +B1512044538377N00606701EA0000002426 +B1512064538387N00606710EA0000002426 +B1512084538397N00606719EA0000002426 +B1512104538407N00606728EA0000002425 +B1512124538418N00606736EA0000002423 +B1512144538428N00606743EA0000002423 +B1512164538439N00606748EA0000002421 +B1512184538457N00606757EA0000002418 +B1512204538468N00606764EA0000002417 +B1512224538481N00606770EA0000002418 +B1512244538494N00606775EA0000002420 +B1512264538506N00606780EA0000002421 +B1512284538518N00606785EA0000002422 +B1512304538528N00606788EA0000002422 +B1512324538541N00606795EA0000002419 +B1512344538554N00606805EA0000002418 +B1512364538563N00606812EA0000002416 +B1512384538573N00606816EA0000002412 +B1512404538584N00606821EA0000002408 +B1512424538597N00606824EA0000002406 +B1512454538608N00606827EA0000002402 +B1512474538619N00606832EA0000002398 +B1512494538631N00606838EA0000002394 +B1512514538644N00606844EA0000002392 +B1512534538655N00606852EA0000002391 +B1512554538668N00606857EA0000002390 +B1512574538680N00606863EA0000002390 +B1512594538691N00606870EA0000002390 +B1513014538703N00606876EA0000002388 +B1513034538715N00606882EA0000002387 +B1513054538728N00606891EA0000002388 +B1513074538739N00606899EA0000002389 +B1513094538751N00606906EA0000002389 +B1513114538762N00606913EA0000002389 +B1513134538772N00606923EA0000002390 +B1513154538778N00606927EA0000002393 +B1513174538784N00606931EA0000002393 +B1513194538792N00606939EA0000002395 +B1513214538799N00606941EA0000002399 +B1513234538805N00606941EA0000002400 +B1513254538814N00606942EA0000002402 +B1513274538823N00606943EA0000002406 +B1513294538831N00606943EA0000002411 +B1513314538837N00606943EA0000002416 +B1513334538844N00606944EA0000002419 +B1513354538852N00606948EA0000002422 +B1513374538860N00606951EA0000002426 +B1513394538867N00606951EA0000002430 +B1513414538872N00606952EA0000002433 +B1513434538878N00606955EA0000002434 +B1513454538885N00606959EA0000002435 +B1513474538892N00606961EA0000002437 +B1513494538898N00606963EA0000002438 +B1513514538904N00606963EA0000002438 +B1513534538910N00606965EA0000002436 +B1513554538918N00606970EA0000002434 +B1513574538927N00606976EA0000002432 +B1513594538941N00606984EA0000002430 +B1514014538950N00606991EA0000002428 +B1514034538960N00606998EA0000002424 +B1514054538971N00607005EA0000002421 +B1514074538982N00607012EA0000002420 +B1514094538993N00607019EA0000002418 +B1514114539004N00607026EA0000002414 +B1514134539015N00607033EA0000002410 +B1514154539027N00607042EA0000002407 +B1514174539038N00607052EA0000002406 +B1514194539047N00607063EA0000002404 +B1514214539057N00607073EA0000002403 +B1514244539066N00607082EA0000002401 +B1514264539076N00607092EA0000002399 +B1514284539086N00607102EA0000002397 +B1514304539097N00607111EA0000002396 +B1514324539109N00607118EA0000002396 +B1514344539119N00607124EA0000002398 +B1514364539130N00607131EA0000002398 +B1514384539141N00607138EA0000002399 +B1514404539151N00607144EA0000002400 +B1514424539161N00607148EA0000002399 +B1514444539170N00607155EA0000002400 +B1514464539176N00607164EA0000002400 +B1514484539179N00607167EA0000002399 +B1514504539191N00607175EA0000002396 +B1514524539201N00607185EA0000002396 +B1514544539211N00607193EA0000002398 +B1514564539221N00607201EA0000002400 +B1514584539229N00607211EA0000002403 +B1515004539234N00607219EA0000002406 +B1515024539240N00607226EA0000002409 +B1515044539247N00607234EA0000002413 +B1515064539254N00607238EA0000002419 +B1515084539259N00607240EA0000002425 +B1515104539265N00607243EA0000002430 +B1515124539271N00607247EA0000002435 +B1515144539278N00607253EA0000002438 +B1515164539285N00607260EA0000002441 +B1515184539292N00607266EA0000002443 +B1515204539297N00607269EA0000002443 +B1515224539305N00607276EA0000002442 +B1515244539314N00607286EA0000002441 +B1515264539322N00607293EA0000002439 +B1515284539332N00607300EA0000002436 +B1515304539343N00607309EA0000002432 +B1515324539355N00607317EA0000002430 +B1515344539366N00607326EA0000002428 +B1515364539377N00607337EA0000002426 +B1515384539389N00607346EA0000002424 +B1515404539405N00607359EA0000002418 +B1515424539416N00607368EA0000002414 +B1515444539426N00607376EA0000002409 +B1515464539437N00607384EA0000002404 +B1515484539447N00607390EA0000002400 +B1515504539458N00607396EA0000002396 +B1515524539468N00607402EA0000002392 +B1515544539479N00607407EA0000002387 +B1515564539490N00607411EA0000002381 +B1515584539502N00607416EA0000002376 +B1516004539513N00607422EA0000002371 +B1516024539524N00607428EA0000002366 +B1516054539537N00607434EA0000002362 +B1516074539549N00607439EA0000002357 +B1516094539561N00607443EA0000002352 +B1516114539574N00607448EA0000002347 +B1516134539587N00607453EA0000002343 +B1516154539599N00607459EA0000002339 +B1516174539611N00607465EA0000002335 +B1516194539624N00607471EA0000002331 +B1516214539636N00607477EA0000002326 +B1516234539649N00607482EA0000002323 +B1516254539661N00607489EA0000002319 +B1516274539673N00607495EA0000002315 +B1516294539679N00607498EA0000002310 +B1516314539699N00607509EA0000002303 +B1516334539715N00607518EA0000002298 +B1516354539731N00607526EA0000002293 +B1516374539745N00607533EA0000002289 +B1516394539760N00607541EA0000002283 +B1516414539775N00607548EA0000002277 +B1516434539791N00607554EA0000002273 +B1516454539805N00607562EA0000002268 +B1516474539819N00607569EA0000002262 +B1516494539835N00607576EA0000002256 +B1516514539851N00607584EA0000002250 +B1516534539865N00607593EA0000002246 +B1516554539879N00607602EA0000002242 +B1516574539893N00607610EA0000002237 +B1516594539908N00607618EA0000002233 +B1517014539921N00607628EA0000002228 +B1517034539935N00607636EA0000002224 +B1517054539949N00607645EA0000002220 +B1517074539962N00607655EA0000002217 +B1517094539975N00607665EA0000002213 +B1517114539989N00607676EA0000002208 +B1517134540002N00607686EA0000002204 +B1517154540016N00607696EA0000002199 +B1517174540029N00607706EA0000002195 +B1517194540043N00607715EA0000002190 +B1517214540063N00607729EA0000002184 +B1517234540077N00607739EA0000002179 +B1517254540090N00607749EA0000002174 +B1517274540104N00607758EA0000002170 +B1517294540118N00607767EA0000002165 +B1517314540131N00607778EA0000002160 +B1517334540145N00607788EA0000002155 +B1517354540158N00607798EA0000002150 +B1517374540172N00607809EA0000002145 +B1517394540185N00607819EA0000002140 +B1517414540199N00607829EA0000002136 +B1517434540212N00607838EA0000002132 +B1517464540225N00607848EA0000002128 +B1517484540238N00607858EA0000002123 +B1517504540252N00607868EA0000002119 +B1517524540265N00607877EA0000002115 +B1517544540278N00607887EA0000002112 +B1517564540290N00607897EA0000002108 +B1517584540303N00607906EA0000002103 +B1518004540315N00607916EA0000002099 +B1518024540327N00607927EA0000002094 +B1518044540340N00607939EA0000002089 +B1518064540351N00607950EA0000002084 +B1518084540364N00607962EA0000002079 +B1518104540375N00607977EA0000002075 +B1518124540385N00607993EA0000002071 +B1518144540394N00608010EA0000002067 +B1518164540404N00608027EA0000002062 +B1518184540415N00608043EA0000002058 +B1518204540426N00608058EA0000002053 +B1518224540437N00608073EA0000002047 +B1518244540448N00608087EA0000002042 +B1518264540460N00608102EA0000002037 +B1518284540472N00608117EA0000002032 +B1518304540484N00608132EA0000002027 +B1518324540495N00608147EA0000002021 +B1518344540507N00608163EA0000002016 +B1518364540517N00608181EA0000002011 +B1518384540528N00608198EA0000002006 +B1518404540539N00608216EA0000002001 +B1518424540550N00608232EA0000001996 +B1518444540562N00608248EA0000001991 +B1518464540574N00608263EA0000001985 +B1518484540585N00608278EA0000001980 +B1518504540597N00608293EA0000001975 +B1518524540608N00608308EA0000001970 +B1518544540620N00608323EA0000001964 +B1518564540632N00608338EA0000001958 +B1518584540643N00608354EA0000001952 +B1519004540661N00608378EA0000001946 +B1519024540672N00608394EA0000001942 +B1519044540684N00608410EA0000001938 +B1519064540695N00608426EA0000001934 +B1519084540706N00608441EA0000001930 +B1519104540717N00608457EA0000001926 +B1519124540729N00608473EA0000001922 +B1519144540740N00608488EA0000001918 +B1519164540751N00608503EA0000001915 +B1519184540762N00608517EA0000001912 +B1519204540773N00608531EA0000001909 +B1519224540785N00608544EA0000001906 +B1519244540796N00608558EA0000001902 +B1519274540807N00608572EA0000001899 +B1519294540817N00608586EA0000001895 +B1519314540828N00608600EA0000001892 +B1519334540839N00608614EA0000001888 +B1519354540848N00608630EA0000001884 +B1519374540858N00608645EA0000001879 +B1519394540869N00608658EA0000001874 +B1519414540879N00608672EA0000001869 +B1519434540890N00608685EA0000001864 +B1519454540901N00608697EA0000001860 +B1519474540911N00608709EA0000001855 +B1519494540922N00608722EA0000001850 +B1519514540933N00608735EA0000001845 +B1519534540944N00608750EA0000001841 +B1519554540954N00608763EA0000001838 +B1519574540962N00608774EA0000001835 +B1519594540972N00608785EA0000001831 +B1520014540982N00608798EA0000001827 +B1520034540993N00608811EA0000001822 +B1520054541002N00608824EA0000001819 +B1520074541012N00608836EA0000001816 +B1520094541022N00608847EA0000001813 +B1520114541033N00608859EA0000001810 +B1520134541043N00608872EA0000001808 +B1520154541052N00608886EA0000001806 +B1520174541062N00608898EA0000001802 +B1520194541071N00608909EA0000001798 +B1520214541079N00608921EA0000001793 +B1520234541089N00608933EA0000001787 +B1520254541099N00608946EA0000001782 +B1520274541110N00608958EA0000001777 +B1520294541122N00608970EA0000001772 +B1520314541133N00608983EA0000001767 +B1520334541145N00608994EA0000001764 +B1520354541155N00609004EA0000001759 +B1520374541165N00609015EA0000001753 +B1520394541175N00609025EA0000001746 +B1520414541192N00609040EA0000001739 +B1520434541203N00609052EA0000001734 +B1520454541213N00609064EA0000001729 +B1520474541225N00609076EA0000001725 +B1520494541236N00609088EA0000001721 +B1520514541247N00609100EA0000001718 +B1520534541258N00609111EA0000001717 +B1520554541269N00609122EA0000001716 +B1520574541276N00609134EA0000001717 +B1520594541281N00609143EA0000001715 +B1521014541289N00609157EA0000001712 +B1521034541297N00609170EA0000001713 +B1521064541305N00609177EA0000001712 +B1521084541314N00609187EA0000001710 +B1521104541323N00609199EA0000001709 +B1521124541333N00609208EA0000001708 +B1521144541342N00609215EA0000001708 +B1521164541351N00609224EA0000001706 +B1521184541362N00609233EA0000001704 +B1521204541373N00609239EA0000001704 +B1521224541383N00609246EA0000001704 +B1521244541394N00609253EA0000001702 +B1521264541405N00609259EA0000001701 +B1521284541414N00609265EA0000001701 +B1521304541423N00609272EA0000001700 +B1521324541437N00609285EA0000001700 +B1521344541447N00609290EA0000001699 +B1521364541456N00609293EA0000001699 +B1521384541464N00609299EA0000001698 +B1521404541473N00609304EA0000001696 +B1521424541483N00609308EA0000001693 +B1521444541492N00609315EA0000001690 +B1521464541500N00609322EA0000001686 +B1521484541509N00609327EA0000001681 +B1521504541519N00609332EA0000001677 +B1521524541527N00609337EA0000001673 +B1521544541537N00609342EA0000001669 +B1521574541548N00609349EA0000001666 +B1521594541558N00609357EA0000001663 +B1522014541569N00609362EA0000001662 +B1522034541579N00609369EA0000001662 +B1522054541591N00609375EA0000001662 +B1522074541602N00609381EA0000001662 +B1522094541613N00609388EA0000001663 +B1522114541624N00609394EA0000001663 +B1522134541636N00609401EA0000001663 +B1522154541649N00609408EA0000001664 +B1522174541660N00609414EA0000001666 +B1522194541672N00609421EA0000001668 +B1522214541678N00609424EA0000001670 +B1522234541695N00609434EA0000001673 +B1522254541704N00609439EA0000001677 +B1522274541712N00609444EA0000001682 +B1522294541718N00609449EA0000001688 +B1522314541726N00609453EA0000001695 +B1522334541732N00609458EA0000001703 +B1522354541735N00609460EA0000001712 +B1522374541738N00609460EA0000001720 +B1522394541743N00609459EA0000001727 +B1522414541747N00609459EA0000001736 +B1522434541750N00609458EA0000001744 +B1522454541754N00609458EA0000001751 +B1522474541758N00609457EA0000001757 +B1522494541760N00609451EA0000001764 +B1522514541759N00609442EA0000001769 +B1522534541758N00609436EA0000001774 +B1522554541755N00609427EA0000001777 +B1522574541750N00609416EA0000001780 +B1522594541747N00609404EA0000001781 +B1523014541750N00609403EA0000001782 +B1523034541752N00609413EA0000001783 +B1523054541755N00609423EA0000001786 +B1523074541756N00609429EA0000001790 +B1523094541760N00609432EA0000001792 +B1523114541765N00609437EA0000001795 +B1523134541766N00609445EA0000001800 +B1523154541766N00609450EA0000001803 +B1523174541771N00609453EA0000001806 +B1523194541772N00609454EA0000001810 +B1523214541771N00609454EA0000001813 +B1523234541776N00609455EA0000001816 +B1523254541780N00609459EA0000001820 +B1523274541781N00609463EA0000001826 +B1523294541784N00609465EA0000001831 +B1523314541789N00609468EA0000001836 +B1523334541792N00609472EA0000001840 +B1523354541796N00609475EA0000001842 +B1523384541803N00609474EA0000001846 +B1523404541808N00609473EA0000001850 +B1523424541810N00609472EA0000001854 +B1523444541813N00609467EA0000001858 +B1523464541815N00609461EA0000001863 +B1523484541815N00609456EA0000001867 +B1523504541818N00609452EA0000001870 +B1523524541821N00609448EA0000001873 +B1523544541825N00609446EA0000001877 +B1523564541828N00609445EA0000001880 +B1523584541832N00609441EA0000001885 +B1524004541837N00609439EA0000001889 +B1524024541839N00609439EA0000001893 +B1524044541846N00609438EA0000001895 +B1524064541851N00609439EA0000001896 +B1524084541857N00609440EA0000001897 +B1524104541864N00609441EA0000001899 +B1524124541871N00609440EA0000001902 +B1524144541876N00609439EA0000001906 +B1524164541881N00609438EA0000001910 +B1524184541886N00609439EA0000001913 +B1524204541890N00609441EA0000001917 +B1524224541893N00609441EA0000001921 +B1524244541896N00609442EA0000001925 +B1524264541899N00609441EA0000001929 +B1524284541901N00609442EA0000001934 +B1524304541902N00609443EA0000001937 +B1524324541904N00609446EA0000001939 +B1524344541908N00609449EA0000001942 +B1524364541911N00609452EA0000001945 +B1524384541914N00609454EA0000001947 +B1524404541918N00609459EA0000001948 +B1524424541921N00609461EA0000001950 +B1524444541924N00609462EA0000001950 +B1524464541928N00609465EA0000001950 +B1524484541933N00609467EA0000001952 +B1524504541938N00609468EA0000001952 +B1524524541944N00609469EA0000001952 +B1524544541955N00609471EA0000001951 +B1524564541962N00609472EA0000001952 +B1524584541965N00609468EA0000001952 +B1525004541965N00609458EA0000001951 +B1525024541961N00609444EA0000001951 +B1525044541947N00609435EA0000001951 +B1525064541930N00609434EA0000001951 +B1525084541915N00609438EA0000001952 +B1525104541900N00609443EA0000001954 +B1525124541887N00609448EA0000001956 +B1525144541875N00609452EA0000001957 +B1525174541863N00609455EA0000001956 +B1525194541849N00609458EA0000001957 +B1525214541836N00609462EA0000001958 +B1525234541822N00609464EA0000001959 +B1525254541808N00609466EA0000001961 +B1525274541794N00609466EA0000001962 +B1525294541780N00609466EA0000001962 +B1525314541766N00609467EA0000001961 +B1525334541753N00609466EA0000001961 +B1525354541739N00609464EA0000001959 +B1525374541725N00609470EA0000001956 +B1525394541714N00609485EA0000001954 +B1525414541713N00609496EA0000001954 +B1525434541718N00609497EA0000001955 +B1525454541723N00609497EA0000001957 +B1525474541727N00609495EA0000001957 +B1525494541730N00609494EA0000001956 +B1525514541736N00609492EA0000001957 +B1525534541741N00609488EA0000001959 +B1525554541743N00609485EA0000001962 +B1525574541746N00609481EA0000001965 +B1525594541750N00609478EA0000001968 +B1526014541753N00609477EA0000001970 +B1526034541757N00609477EA0000001972 +B1526054541762N00609477EA0000001972 +B1526074541765N00609475EA0000001972 +B1526094541769N00609476EA0000001972 +B1526114541774N00609477EA0000001971 +B1526134541779N00609480EA0000001972 +B1526154541785N00609482EA0000001974 +B1526174541791N00609483EA0000001977 +B1526194541796N00609483EA0000001980 +B1526214541801N00609481EA0000001982 +B1526234541805N00609478EA0000001983 +B1526254541811N00609476EA0000001983 +B1526274541817N00609475EA0000001981 +B1526294541827N00609476EA0000001977 +B1526314541835N00609476EA0000001973 +B1526334541844N00609477EA0000001969 +B1526354541851N00609480EA0000001966 +B1526374541858N00609483EA0000001963 +B1526394541868N00609483EA0000001960 +B1526414541874N00609484EA0000001957 +B1526434541878N00609487EA0000001955 +B1526454541886N00609488EA0000001952 +B1526474541898N00609486EA0000001949 +B1526494541909N00609484EA0000001948 +B1526514541918N00609484EA0000001948 +B1526534541927N00609486EA0000001947 +B1526564541936N00609486EA0000001947 +B1526584541946N00609487EA0000001946 +B1527004541955N00609489EA0000001945 +B1527024541963N00609491EA0000001944 +B1527044541971N00609492EA0000001943 +B1527064541978N00609494EA0000001943 +B1527084541984N00609495EA0000001944 +B1527104541989N00609495EA0000001947 +B1527124541996N00609496EA0000001945 +B1527144542004N00609498EA0000001945 +B1527164542008N00609502EA0000001946 +B1527184542011N00609505EA0000001945 +B1527204542016N00609506EA0000001945 +B1527224542023N00609504EA0000001946 +B1527244542026N00609502EA0000001947 +B1527264542029N00609502EA0000001946 +B1527284542034N00609503EA0000001946 +B1527304542042N00609505EA0000001947 +B1527324542046N00609507EA0000001947 +B1527344542050N00609508EA0000001947 +B1527364542059N00609510EA0000001946 +B1527384542068N00609511EA0000001948 +B1527404542074N00609512EA0000001951 +B1527424542078N00609513EA0000001952 +B1527444542083N00609513EA0000001953 +B1527464542089N00609513EA0000001955 +B1527484542095N00609516EA0000001956 +B1527504542101N00609517EA0000001955 +B1527524542108N00609517EA0000001956 +B1527544542114N00609519EA0000001957 +B1527564542120N00609523EA0000001955 +B1527584542128N00609524EA0000001954 +B1528004542135N00609525EA0000001954 +B1528024542140N00609527EA0000001954 +B1528044542144N00609529EA0000001952 +B1528064542151N00609528EA0000001949 +B1528084542159N00609530EA0000001948 +B1528104542168N00609535EA0000001943 +B1528124542176N00609537EA0000001940 +B1528144542183N00609539EA0000001937 +B1528164542189N00609540EA0000001934 +B1528184542196N00609539EA0000001930 +B1528204542205N00609539EA0000001924 +B1528224542213N00609538EA0000001919 +B1528244542221N00609539EA0000001914 +B1528264542230N00609539EA0000001908 +B1528284542242N00609539EA0000001901 +B1528304542254N00609540EA0000001895 +B1528324542262N00609541EA0000001890 +B1528354542271N00609542EA0000001885 +B1528374542284N00609544EA0000001879 +B1528394542296N00609545EA0000001874 +B1528414542305N00609545EA0000001871 +B1528434542313N00609547EA0000001868 +B1528454542324N00609548EA0000001864 +B1528474542335N00609550EA0000001861 +B1528494542344N00609555EA0000001860 +B1528514542353N00609559EA0000001859 +B1528534542363N00609562EA0000001858 +B1528554542372N00609567EA0000001858 +B1528574542382N00609570EA0000001857 +B1528594542392N00609572EA0000001857 +B1529014542402N00609574EA0000001855 +B1529034542413N00609577EA0000001853 +B1529054542423N00609581EA0000001851 +B1529074542432N00609585EA0000001849 +B1529094542442N00609589EA0000001846 +B1529114542452N00609595EA0000001842 +B1529134542462N00609600EA0000001839 +B1529154542471N00609605EA0000001836 +B1529174542480N00609612EA0000001831 +B1529194542491N00609618EA0000001826 +B1529214542502N00609623EA0000001821 +B1529234542512N00609626EA0000001817 +B1529254542520N00609629EA0000001814 +B1529274542529N00609631EA0000001812 +B1529294542542N00609634EA0000001811 +B1529314542553N00609636EA0000001811 +B1529334542559N00609640EA0000001813 +B1529354542564N00609644EA0000001818 +B1529374542568N00609647EA0000001824 +B1529394542571N00609647EA0000001830 +B1529414542575N00609649EA0000001835 +B1529434542579N00609652EA0000001839 +B1529454542581N00609651EA0000001843 +B1529474542582N00609645EA0000001846 +B1529494542580N00609637EA0000001849 +B1529514542568N00609627EA0000001854 +B1529534542557N00609625EA0000001855 +B1529554542543N00609631EA0000001856 +B1529574542533N00609645EA0000001857 +B1529594542531N00609661EA0000001857 +B1530014542536N00609672EA0000001859 +B1530034542543N00609684EA0000001865 +B1530054542553N00609689EA0000001868 +B1530074542562N00609694EA0000001869 +B1530094542572N00609697EA0000001872 +B1530114542581N00609699EA0000001877 +B1530134542589N00609701EA0000001882 +B1530164542596N00609702EA0000001886 +B1530184542605N00609704EA0000001887 +B1530204542616N00609708EA0000001889 +B1530224542624N00609710EA0000001890 +B1530244542631N00609711EA0000001890 +B1530264542639N00609715EA0000001888 +B1530284542648N00609720EA0000001886 +B1530304542656N00609724EA0000001882 +B1530324542664N00609731EA0000001878 +B1530344542675N00609738EA0000001874 +B1530364542686N00609745EA0000001871 +B1530384542696N00609751EA0000001868 +B1530404542706N00609758EA0000001863 +B1530424542718N00609765EA0000001859 +B1530444542729N00609773EA0000001856 +B1530464542738N00609780EA0000001852 +B1530484542748N00609787EA0000001848 +B1530504542759N00609795EA0000001844 +B1530524542770N00609801EA0000001842 +B1530544542780N00609806EA0000001839 +B1530564542790N00609813EA0000001836 +B1530584542800N00609818EA0000001834 +B1531004542810N00609823EA0000001831 +B1531024542820N00609828EA0000001829 +B1531044542830N00609834EA0000001825 +B1531064542840N00609839EA0000001821 +B1531084542850N00609843EA0000001817 +B1531104542860N00609848EA0000001813 +B1531124542870N00609854EA0000001809 +B1531144542880N00609860EA0000001804 +B1531164542891N00609865EA0000001801 +B1531184542901N00609870EA0000001798 +B1531204542911N00609875EA0000001794 +B1531224542921N00609882EA0000001791 +B1531244542931N00609889EA0000001788 +B1531264542941N00609895EA0000001786 +B1531284542950N00609901EA0000001785 +B1531304542960N00609908EA0000001782 +B1531324542976N00609918EA0000001779 +B1531344542986N00609924EA0000001777 +B1531364542997N00609931EA0000001774 +B1531384543008N00609935EA0000001772 +B1531404543018N00609940EA0000001770 +B1531424543028N00609945EA0000001769 +B1531444543037N00609948EA0000001770 +B1531464543044N00609951EA0000001771 +B1531484543050N00609957EA0000001771 +B1531504543059N00609960EA0000001771 +B1531524543069N00609963EA0000001770 +B1531544543078N00609969EA0000001767 +B1531574543088N00609975EA0000001764 +B1531594543099N00609981EA0000001762 +B1532014543110N00609984EA0000001759 +B1532034543121N00609988EA0000001756 +B1532054543133N00609994EA0000001752 +B1532074543144N00609999EA0000001748 +B1532094543154N00610003EA0000001745 +B1532114543165N00610009EA0000001741 +B1532134543176N00610014EA0000001738 +B1532154543187N00610019EA0000001735 +B1532174543198N00610025EA0000001733 +B1532194543209N00610031EA0000001730 +B1532214543220N00610038EA0000001727 +B1532234543231N00610043EA0000001725 +B1532254543241N00610048EA0000001722 +B1532274543252N00610054EA0000001720 +B1532294543263N00610060EA0000001717 +B1532314543274N00610066EA0000001714 +B1532334543284N00610072EA0000001712 +B1532354543295N00610080EA0000001709 +B1532374543305N00610088EA0000001706 +B1532394543316N00610095EA0000001704 +B1532414543327N00610101EA0000001702 +B1532434543337N00610106EA0000001699 +B1532454543349N00610112EA0000001697 +B1532474543360N00610117EA0000001697 +B1532494543370N00610123EA0000001695 +B1532514543380N00610128EA0000001693 +B1532534543392N00610133EA0000001691 +B1532554543403N00610139EA0000001689 +B1532574543414N00610144EA0000001687 +B1532594543425N00610150EA0000001685 +B1533014543437N00610157EA0000001683 +B1533034543448N00610164EA0000001682 +B1533054543459N00610170EA0000001680 +B1533074543470N00610175EA0000001678 +B1533094543482N00610182EA0000001675 +B1533114543499N00610189EA0000001671 +B1533134543511N00610195EA0000001669 +B1533154543523N00610200EA0000001667 +B1533174543536N00610205EA0000001666 +B1533194543548N00610209EA0000001665 +B1533214543559N00610214EA0000001663 +B1533234543571N00610219EA0000001663 +B1533254543582N00610225EA0000001661 +B1533274543592N00610232EA0000001658 +B1533294543603N00610237EA0000001653 +B1533314543615N00610241EA0000001651 +B1533334543627N00610246EA0000001649 +B1533364543639N00610251EA0000001645 +B1533384543652N00610253EA0000001641 +B1533404543665N00610256EA0000001638 +B1533424543676N00610260EA0000001634 +B1533444543689N00610262EA0000001630 +B1533464543701N00610262EA0000001627 +B1533484543712N00610263EA0000001626 +B1533504543722N00610265EA0000001624 +B1533524543733N00610267EA0000001622 +B1533544543745N00610270EA0000001620 +B1533564543757N00610274EA0000001620 +B1533584543768N00610279EA0000001622 +B1534004543785N00610287EA0000001623 +B1534024543796N00610292EA0000001626 +B1534044543804N00610299EA0000001629 +B1534064543810N00610305EA0000001631 +B1534084543817N00610311EA0000001634 +B1534104543823N00610316EA0000001638 +B1534124543829N00610322EA0000001640 +B1534144543835N00610327EA0000001643 +B1534164543840N00610327EA0000001646 +B1534184543844N00610324EA0000001649 +B1534204543846N00610320EA0000001651 +B1534234543845N00610314EA0000001655 +B1534254543844N00610309EA0000001659 +B1534274543845N00610304EA0000001661 +B1534294543850N00610301EA0000001663 +B1534314543856N00610305EA0000001667 +B1534334543862N00610315EA0000001669 +B1534354543864N00610332EA0000001671 +B1534374543858N00610352EA0000001673 +B1534394543845N00610360EA0000001676 +B1534414543836N00610354EA0000001678 +B1534434543836N00610344EA0000001681 +B1534454543846N00610345EA0000001685 +B1534474543854N00610359EA0000001690 +B1534494543853N00610379EA0000001693 +B1534514543845N00610396EA0000001698 +B1534534543833N00610399EA0000001701 +B1534554543825N00610387EA0000001704 +B1534574543830N00610380EA0000001708 +B1534594543839N00610384EA0000001712 +B1535014543846N00610398EA0000001716 +B1535034543848N00610416EA0000001719 +B1535054543844N00610434EA0000001723 +B1535074543831N00610443EA0000001726 +B1535094543820N00610438EA0000001728 +B1535114543821N00610427EA0000001731 +B1535134543830N00610426EA0000001734 +B1535154543838N00610436EA0000001738 +B1535174543843N00610453EA0000001742 +B1535194543843N00610472EA0000001746 +B1535214543836N00610489EA0000001750 +B1535234543826N00610494EA0000001755 +B1535254543819N00610489EA0000001758 +B1535274543818N00610479EA0000001762 +B1535294543825N00610474EA0000001765 +B1535314543834N00610481EA0000001769 +B1535334543840N00610496EA0000001774 +B1535354543839N00610524EA0000001782 +B1535374543831N00610536EA0000001788 +B1535394543822N00610536EA0000001793 +B1535414543816N00610528EA0000001798 +B1535434543817N00610518EA0000001802 +B1535454543824N00610516EA0000001807 +B1535474543833N00610524EA0000001813 +B1535494543840N00610538EA0000001819 +B1535514543843N00610558EA0000001824 +B1535534543839N00610578EA0000001830 +B1535554543830N00610583EA0000001835 +B1535574543822N00610577EA0000001840 +B1536004543820N00610567EA0000001846 +B1536024543827N00610563EA0000001852 +B1536044543837N00610569EA0000001860 +B1536064543846N00610582EA0000001866 +B1536084543851N00610600EA0000001873 +B1536104543848N00610620EA0000001880 +B1536124543841N00610631EA0000001889 +B1536144543831N00610628EA0000001897 +B1536164543828N00610618EA0000001904 +B1536184543832N00610609EA0000001911 +B1536204543844N00610609EA0000001918 +B1536224543855N00610620EA0000001926 +B1536244543860N00610639EA0000001934 +B1536264543857N00610658EA0000001942 +B1536284543847N00610664EA0000001950 +B1536304543838N00610658EA0000001958 +B1536324543836N00610647EA0000001966 +B1536344543842N00610639EA0000001973 +B1536364543853N00610641EA0000001980 +B1536384543863N00610654EA0000001986 +B1536404543865N00610675EA0000001992 +B1536424543860N00610693EA0000001999 +B1536444543852N00610695EA0000002006 +B1536464543846N00610685EA0000002014 +B1536484543847N00610675EA0000002022 +B1536504543854N00610669EA0000002029 +B1536524543863N00610672EA0000002037 +B1536544543871N00610685EA0000002044 +B1536564543873N00610702EA0000002051 +B1536584543869N00610722EA0000002058 +B1537004543859N00610734EA0000002064 +B1537024543849N00610731EA0000002070 +B1537044543845N00610719EA0000002078 +B1537064543847N00610711EA0000002086 +B1537084543850N00610704EA0000002094 +B1537104543857N00610702EA0000002102 +B1537124543865N00610709EA0000002110 +B1537144543868N00610735EA0000002122 +B1537164543861N00610754EA0000002129 +B1537184543851N00610766EA0000002137 +B1537204543842N00610768EA0000002145 +B1537224543834N00610764EA0000002152 +B1537244543830N00610755EA0000002160 +B1537264543834N00610749EA0000002166 +B1537284543843N00610754EA0000002173 +B1537304543848N00610768EA0000002180 +B1537324543848N00610789EA0000002187 +B1537344543841N00610807EA0000002194 +B1537374543832N00610817EA0000002202 +B1537394543821N00610817EA0000002209 +B1537414543812N00610816EA0000002216 +B1537434543805N00610809EA0000002221 +B1537454543806N00610796EA0000002228 +B1537474543815N00610791EA0000002234 +B1537494543824N00610800EA0000002243 +B1537514543829N00610816EA0000002251 +B1537534543828N00610835EA0000002259 +B1537554543820N00610850EA0000002266 +B1537574543806N00610851EA0000002271 +B1537594543798N00610846EA0000002277 +B1538014543795N00610841EA0000002281 +B1538034543793N00610825EA0000002286 +B1538054543800N00610817EA0000002292 +B1538074543811N00610821EA0000002299 +B1538094543817N00610835EA0000002306 +B1538114543817N00610854EA0000002313 +B1538134543812N00610873EA0000002321 +B1538154543802N00610886EA0000002328 +B1538174543792N00610887EA0000002334 +B1538194543784N00610879EA0000002339 +B1538214543783N00610868EA0000002343 +B1538234543789N00610862EA0000002348 +B1538254543799N00610868EA0000002355 +B1538274543810N00610882EA0000002365 +B1538294543813N00610897EA0000002374 +B1538314543814N00610913EA0000002382 +B1538334543810N00610931EA0000002389 +B1538354543801N00610946EA0000002396 +B1538374543789N00610946EA0000002401 +B1538394543783N00610935EA0000002406 +B1538414543785N00610924EA0000002412 +B1538434543791N00610918EA0000002418 +B1538454543800N00610919EA0000002427 +B1538474543807N00610925EA0000002435 +B1538494543814N00610938EA0000002443 +B1538514543815N00610965EA0000002456 +B1538534543807N00610979EA0000002465 +B1538554543796N00610980EA0000002472 +B1538574543790N00610973EA0000002478 +B1538594543788N00610963EA0000002483 +B1539014543792N00610954EA0000002489 +B1539034543801N00610951EA0000002497 +B1539054543810N00610955EA0000002505 +B1539074543817N00610965EA0000002513 +B1539094543822N00610982EA0000002520 +B1539114543821N00610999EA0000002528 +B1539134543814N00611012EA0000002535 +B1539154543803N00611014EA0000002542 +B1539184543796N00611005EA0000002548 +B1539204543796N00610993EA0000002555 +B1539224543802N00610985EA0000002560 +B1539244543813N00610981EA0000002567 +B1539264543824N00610986EA0000002574 +B1539284543831N00610997EA0000002579 +B1539304543837N00611013EA0000002584 +B1539324543840N00611031EA0000002588 +B1539344543843N00611044EA0000002592 +B1539364543849N00611051EA0000002593 +B1539384543858N00611056EA0000002593 +B1539404543867N00611057EA0000002591 +B1539424543877N00611058EA0000002590 +B1539444543887N00611064EA0000002588 +B1539464543898N00611071EA0000002587 +B1539484543907N00611072EA0000002587 +B1539504543914N00611073EA0000002589 +B1539524543920N00611075EA0000002589 +B1539544543927N00611078EA0000002588 +B1539564543934N00611079EA0000002588 +B1539584543940N00611081EA0000002587 +B1540004543948N00611083EA0000002585 +B1540024543955N00611085EA0000002583 +B1540044543964N00611087EA0000002580 +B1540064543972N00611088EA0000002578 +B1540084543978N00611083EA0000002576 +B1540104543984N00611076EA0000002574 +B1540124543992N00611071EA0000002572 +B1540144543999N00611065EA0000002571 +B1540164544005N00611057EA0000002570 +B1540184544012N00611049EA0000002568 +B1540204544020N00611041EA0000002567 +B1540224544026N00611032EA0000002566 +B1540244544034N00611026EA0000002566 +B1540264544043N00611021EA0000002566 +B1540284544050N00611015EA0000002567 +B1540304544058N00611009EA0000002567 +B1540324544071N00611001EA0000002565 +B1540344544078N00610995EA0000002563 +B1540364544086N00610990EA0000002561 +B1540384544097N00610986EA0000002561 +B1540404544105N00610981EA0000002560 +B1540424544113N00610977EA0000002559 +B1540444544123N00610975EA0000002557 +B1540464544132N00610972EA0000002555 +B1540484544140N00610967EA0000002552 +B1540504544151N00610962EA0000002547 +B1540524544163N00610956EA0000002543 +B1540544544175N00610949EA0000002541 +B1540564544187N00610945EA0000002537 +B1540594544200N00610941EA0000002534 +B1541014544214N00610935EA0000002532 +B1541034544228N00610929EA0000002531 +B1541054544239N00610927EA0000002529 +B1541074544251N00610921EA0000002526 +B1541094544264N00610913EA0000002523 +B1541114544278N00610907EA0000002522 +B1541134544290N00610903EA0000002520 +B1541154544304N00610899EA0000002517 +B1541174544318N00610893EA0000002515 +B1541194544331N00610887EA0000002515 +B1541214544342N00610880EA0000002513 +B1541234544354N00610873EA0000002511 +B1541254544369N00610867EA0000002510 +B1541274544381N00610860EA0000002510 +B1541294544394N00610852EA0000002509 +B1541314544407N00610846EA0000002509 +B1541334544418N00610839EA0000002509 +B1541354544429N00610830EA0000002509 +B1541374544442N00610826EA0000002510 +B1541394544454N00610823EA0000002511 +B1541414544465N00610818EA0000002513 +B1541434544477N00610811EA0000002514 +B1541454544488N00610804EA0000002515 +B1541474544499N00610798EA0000002516 +B1541494544510N00610794EA0000002517 +B1541514544522N00610789EA0000002518 +B1541534544533N00610784EA0000002520 +B1541554544544N00610783EA0000002520 +B1541574544556N00610780EA0000002519 +B1541594544568N00610777EA0000002519 +B1542014544580N00610774EA0000002519 +B1542034544591N00610771EA0000002518 +B1542054544603N00610766EA0000002516 +B1542074544616N00610763EA0000002514 +B1542094544628N00610760EA0000002511 +B1542114544640N00610756EA0000002510 +B1542134544655N00610741EA0000002507 +B1542154544666N00610733EA0000002503 +B1542174544678N00610725EA0000002499 +B1542194544687N00610713EA0000002496 +B1542214544696N00610703EA0000002492 +B1542234544706N00610697EA0000002487 +B1542254544717N00610693EA0000002481 +B1542274544727N00610687EA0000002476 +B1542294544737N00610681EA0000002471 +B1542314544747N00610676EA0000002466 +B1542334544757N00610671EA0000002460 +B1542354544767N00610667EA0000002456 +B1542374544775N00610666EA0000002451 +B1542404544784N00610665EA0000002444 +B1542424544793N00610662EA0000002437 +B1542444544801N00610659EA0000002433 +B1542464544807N00610654EA0000002426 +B1542484544813N00610645EA0000002418 +B1542504544821N00610634EA0000002413 +B1542524544828N00610623EA0000002408 +B1542544544836N00610613EA0000002405 +B1542564544845N00610605EA0000002403 +B1542584544854N00610597EA0000002401 +B1543004544861N00610589EA0000002399 +B1543024544870N00610582EA0000002395 +B1543044544880N00610574EA0000002393 +B1543064544890N00610565EA0000002392 +B1543084544900N00610558EA0000002390 +B1543104544911N00610551EA0000002388 +B1543124544922N00610544EA0000002388 +B1543144544931N00610535EA0000002388 +B1543164544940N00610528EA0000002387 +B1543184544950N00610520EA0000002385 +B1543204544960N00610513EA0000002385 +B1543224544970N00610507EA0000002385 +B1543244544979N00610499EA0000002383 +B1543264544990N00610491EA0000002381 +B1543284545001N00610483EA0000002381 +B1543304545012N00610477EA0000002382 +B1543324545022N00610470EA0000002384 +B1543344545029N00610465EA0000002384 +B1543364545038N00610462EA0000002383 +B1543384545047N00610458EA0000002382 +B1543404545056N00610455EA0000002381 +B1543424545064N00610454EA0000002379 +B1543444545075N00610451EA0000002379 +B1543464545085N00610448EA0000002379 +B1543484545094N00610446EA0000002378 +B1543504545103N00610445EA0000002375 +B1543524545115N00610444EA0000002372 +B1543544545133N00610446EA0000002371 +B1543564545142N00610449EA0000002370 +B1543584545152N00610451EA0000002369 +B1544004545164N00610447EA0000002369 +B1544024545174N00610447EA0000002370 +B1544044545182N00610451EA0000002372 +B1544064545189N00610452EA0000002371 +B1544084545195N00610450EA0000002369 +B1544104545204N00610447EA0000002369 +B1544124545213N00610442EA0000002370 +B1544144545221N00610438EA0000002372 +B1544164545230N00610437EA0000002375 +B1544194545238N00610435EA0000002377 +B1544214545245N00610429EA0000002377 +B1544234545255N00610421EA0000002379 +B1544254545262N00610413EA0000002380 +B1544274545270N00610405EA0000002380 +B1544294545277N00610396EA0000002378 +B1544314545286N00610390EA0000002375 +B1544334545297N00610386EA0000002372 +B1544354545307N00610381EA0000002369 +B1544374545316N00610376EA0000002365 +B1544394545326N00610372EA0000002362 +B1544414545336N00610367EA0000002359 +B1544434545344N00610361EA0000002357 +B1544454545354N00610357EA0000002354 +B1544474545364N00610353EA0000002352 +B1544494545373N00610348EA0000002348 +B1544514545384N00610343EA0000002345 +B1544534545395N00610340EA0000002343 +B1544554545405N00610336EA0000002340 +B1544574545414N00610333EA0000002336 +B1544594545425N00610331EA0000002332 +B1545014545436N00610329EA0000002328 +B1545034545446N00610328EA0000002324 +B1545054545456N00610328EA0000002319 +B1545074545467N00610327EA0000002315 +B1545094545476N00610327EA0000002312 +B1545114545485N00610328EA0000002308 +B1545134545495N00610328EA0000002302 +B1545154545507N00610327EA0000002297 +B1545174545519N00610328EA0000002293 +B1545194545533N00610330EA0000002291 +B1545214545545N00610331EA0000002292 +B1545234545555N00610329EA0000002294 +B1545254545559N00610328EA0000002299 +B1545274545559N00610329EA0000002305 +B1545294545561N00610326EA0000002310 +B1545314545561N00610318EA0000002316 +B1545334545551N00610307EA0000002327 +B1545354545541N00610299EA0000002333 +B1545374545524N00610298EA0000002339 +B1545394545508N00610307EA0000002347 +B1545414545497N00610323EA0000002355 +B1545434545491N00610339EA0000002363 +B1545454545492N00610352EA0000002369 +B1545474545497N00610359EA0000002374 +B1545494545501N00610362EA0000002381 +B1545514545503N00610358EA0000002386 +B1545534545502N00610349EA0000002392 +B1545554545496N00610339EA0000002399 +B1545584545486N00610332EA0000002407 +B1546004545475N00610328EA0000002413 +B1546024545460N00610332EA0000002417 +B1546044545445N00610342EA0000002423 +B1546064545435N00610357EA0000002428 +B1546084545431N00610374EA0000002431 +B1546104545433N00610389EA0000002434 +B1546124545439N00610395EA0000002437 +B1546144545444N00610396EA0000002441 +B1546164545447N00610396EA0000002445 +B1546184545449N00610395EA0000002450 +B1546204545452N00610394EA0000002454 +B1546224545455N00610391EA0000002460 +B1546244545456N00610382EA0000002463 +B1546264545453N00610372EA0000002465 +B1546284545452N00610362EA0000002468 +B1546304545454N00610356EA0000002473 +B1546334545456N00610353EA0000002476 +B1546354545460N00610352EA0000002478 +B1546374545465N00610349EA0000002482 +B1546394545470N00610347EA0000002486 +B1546414545475N00610347EA0000002487 +B1546434545481N00610347EA0000002488 +B1546454545487N00610344EA0000002487 +B1546474545494N00610339EA0000002484 +B1546494545502N00610336EA0000002483 +B1546514545509N00610335EA0000002483 +B1546534545517N00610335EA0000002483 +B1546554545525N00610334EA0000002482 +B1546574545534N00610332EA0000002481 +B1546594545545N00610331EA0000002479 +B1547014545556N00610329EA0000002478 +B1547034545568N00610327EA0000002476 +B1547054545579N00610326EA0000002474 +B1547074545591N00610326EA0000002472 +B1547094545603N00610326EA0000002469 +B1547114545615N00610327EA0000002466 +B1547134545626N00610327EA0000002465 +B1547154545637N00610328EA0000002463 +B1547174545649N00610331EA0000002461 +B1547194545662N00610334EA0000002460 +B1547214545674N00610337EA0000002459 +B1547234545686N00610338EA0000002459 +B1547254545698N00610340EA0000002458 +B1547274545711N00610345EA0000002455 +B1547294545723N00610348EA0000002452 +B1547314545736N00610349EA0000002449 +B1547334545748N00610352EA0000002446 +B1547354545760N00610354EA0000002442 +B1547374545773N00610354EA0000002439 +B1547394545786N00610356EA0000002435 +B1547414545798N00610360EA0000002432 +B1547434545811N00610364EA0000002428 +B1547454545825N00610367EA0000002424 +B1547474545845N00610369EA0000002419 +B1547494545852N00610369EA0000002418 +B1547514545872N00610370EA0000002413 +B1547534545886N00610371EA0000002411 +B1547554545898N00610374EA0000002409 +B1547574545910N00610378EA0000002407 +B1547594545923N00610381EA0000002404 +B1548014545936N00610383EA0000002402 +B1548034545948N00610388EA0000002399 +B1548054545960N00610393EA0000002396 +B1548074545973N00610397EA0000002394 +B1548094545985N00610402EA0000002392 +B1548114545996N00610406EA0000002391 +B1548144546008N00610412EA0000002389 +B1548164546020N00610418EA0000002388 +B1548184546031N00610426EA0000002386 +B1548204546042N00610434EA0000002385 +B1548224546053N00610442EA0000002384 +B1548244546064N00610452EA0000002384 +B1548264546074N00610462EA0000002383 +B1548284546085N00610471EA0000002382 +B1548304546096N00610482EA0000002381 +B1548324546106N00610493EA0000002379 +B1548344546118N00610504EA0000002377 +B1548364546129N00610515EA0000002376 +B1548384546140N00610525EA0000002375 +B1548404546151N00610535EA0000002374 +B1548424546162N00610546EA0000002373 +B1548444546173N00610557EA0000002371 +B1548464546184N00610569EA0000002369 +B1548484546195N00610581EA0000002368 +B1548504546205N00610594EA0000002367 +B1548524546215N00610605EA0000002365 +B1548544546226N00610617EA0000002363 +B1548564546237N00610629EA0000002361 +B1548584546246N00610641EA0000002359 +B1549004546256N00610654EA0000002357 +B1549024546265N00610668EA0000002354 +B1549044546273N00610682EA0000002351 +B1549064546282N00610697EA0000002348 +B1549084546292N00610713EA0000002345 +B1549104546300N00610729EA0000002343 +B1549124546309N00610745EA0000002340 +B1549144546319N00610757EA0000002336 +B1549164546330N00610771EA0000002334 +B1549184546339N00610785EA0000002331 +B1549204546349N00610797EA0000002327 +B1549224546359N00610809EA0000002324 +B1549244546369N00610821EA0000002320 +B1549264546379N00610832EA0000002316 +B1549284546395N00610849EA0000002309 +B1549304546405N00610863EA0000002304 +B1549324546416N00610877EA0000002299 +B1549344546425N00610891EA0000002296 +B1549364546434N00610905EA0000002291 +B1549384546442N00610919EA0000002285 +B1549404546451N00610933EA0000002280 +B1549424546460N00610948EA0000002275 +B1549444546468N00610962EA0000002270 +B1549464546476N00610976EA0000002263 +B1549484546485N00610991EA0000002257 +B1549504546493N00611006EA0000002251 +B1549524546502N00611019EA0000002247 +B1549554546509N00611031EA0000002242 +B1549574546515N00611045EA0000002236 +B1549594546522N00611059EA0000002228 +B1550014546529N00611077EA0000002221 +B1550034546538N00611093EA0000002215 +B1550054546547N00611107EA0000002211 +B1550074546555N00611123EA0000002207 +B1550094546561N00611138EA0000002203 +B1550114546568N00611151EA0000002198 +B1550134546575N00611164EA0000002194 +B1550154546582N00611180EA0000002190 +B1550174546589N00611197EA0000002186 +B1550194546598N00611212EA0000002181 +B1550214546607N00611228EA0000002177 +B1550234546614N00611245EA0000002173 +B1550254546622N00611260EA0000002168 +B1550274546632N00611276EA0000002163 +B1550294546639N00611295EA0000002159 +B1550314546648N00611310EA0000002155 +B1550334546658N00611326EA0000002151 +B1550354546666N00611345EA0000002149 +B1550374546674N00611364EA0000002147 +B1550394546682N00611383EA0000002146 +B1550414546689N00611402EA0000002146 +B1550434546696N00611420EA0000002144 +B1550454546705N00611438EA0000002142 +B1550474546716N00611456EA0000002141 +B1550494546726N00611473EA0000002142 +B1550514546736N00611490EA0000002141 +B1550534546746N00611504EA0000002142 +B1550554546755N00611516EA0000002141 +B1550574546765N00611528EA0000002139 +B1550594546776N00611539EA0000002138 +B1551014546787N00611548EA0000002138 +B1551034546797N00611559EA0000002137 +B1551054546807N00611571EA0000002137 +B1551074546817N00611583EA0000002137 +B1551094546832N00611600EA0000002136 +B1551114546842N00611614EA0000002135 +B1551134546853N00611627EA0000002134 +B1551154546865N00611637EA0000002133 +B1551174546876N00611647EA0000002131 +B1551194546889N00611657EA0000002128 +B1551214546902N00611667EA0000002126 +B1551234546914N00611677EA0000002125 +B1551254546925N00611688EA0000002122 +B1551274546937N00611698EA0000002118 +B1551294546949N00611709EA0000002115 +B1551314546962N00611719EA0000002113 +B1551344546973N00611728EA0000002109 +B1551364546985N00611738EA0000002105 +B1551384546997N00611748EA0000002101 +B1551404547008N00611759EA0000002097 +B1551424547019N00611771EA0000002095 +B1551444547029N00611781EA0000002091 +B1551464547040N00611792EA0000002087 +B1551484547050N00611804EA0000002082 +B1551504547060N00611816EA0000002078 +B1551524547071N00611827EA0000002074 +B1551544547081N00611839EA0000002069 +B1551564547091N00611851EA0000002065 +B1551584547100N00611862EA0000002060 +B1552004547110N00611873EA0000002055 +B1552024547120N00611884EA0000002051 +B1552044547130N00611895EA0000002047 +B1552064547141N00611904EA0000002044 +B1552084547151N00611913EA0000002040 +B1552104547161N00611923EA0000002036 +B1552124547172N00611933EA0000002032 +B1552144547182N00611943EA0000002028 +B1552164547193N00611953EA0000002024 +B1552184547203N00611964EA0000002020 +B1552204547213N00611975EA0000002017 +B1552224547223N00611986EA0000002014 +B1552244547233N00611997EA0000002011 +B1552264547243N00612008EA0000002009 +B1552284547254N00612019EA0000002006 +B1552304547264N00612031EA0000002005 +B1552324547274N00612044EA0000002003 +B1552344547284N00612056EA0000002000 +B1552364547294N00612068EA0000001997 +B1552384547304N00612081EA0000001993 +B1552404547315N00612094EA0000001990 +B1552424547325N00612108EA0000001987 +B1552444547336N00612118EA0000001984 +B1552464547346N00612129EA0000001982 +B1552484547356N00612141EA0000001979 +B1552504547371N00612163EA0000001974 +B1552524547381N00612177EA0000001972 +B1552544547390N00612189EA0000001971 +B1552564547400N00612201EA0000001968 +B1552584547411N00612214EA0000001966 +B1553004547421N00612227EA0000001965 +B1553024547430N00612239EA0000001962 +B1553044547440N00612252EA0000001960 +B1553064547450N00612266EA0000001958 +B1553084547459N00612280EA0000001957 +B1553104547468N00612294EA0000001956 +B1553124547477N00612309EA0000001955 +B1553154547484N00612323EA0000001954 +B1553174547493N00612336EA0000001952 +B1553194547502N00612351EA0000001951 +B1553214547511N00612364EA0000001950 +B1553234547520N00612375EA0000001949 +B1553254547529N00612387EA0000001947 +B1553274547539N00612398EA0000001945 +B1553294547549N00612407EA0000001942 +B1553314547559N00612417EA0000001940 +B1553334547569N00612427EA0000001938 +B1553354547579N00612436EA0000001935 +B1553374547589N00612446EA0000001933 +B1553394547594N00612451EA0000001930 +B1553414547610N00612465EA0000001928 +B1553434547620N00612476EA0000001926 +B1553454547629N00612486EA0000001926 +B1553474547637N00612498EA0000001923 +B1553494547647N00612510EA0000001921 +B1553514547657N00612521EA0000001920 +B1553534547665N00612532EA0000001917 +B1553554547673N00612542EA0000001914 +B1553574547683N00612555EA0000001910 +B1553594547693N00612568EA0000001907 +B1554014547702N00612581EA0000001904 +B1554034547711N00612595EA0000001900 +B1554054547720N00612608EA0000001897 +B1554074547729N00612620EA0000001894 +B1554094547737N00612634EA0000001891 +B1554114547746N00612648EA0000001888 +B1554134547755N00612661EA0000001885 +B1554154547763N00612674EA0000001881 +B1554174547771N00612688EA0000001877 +B1554194547779N00612701EA0000001874 +B1554214547786N00612715EA0000001870 +B1554234547794N00612731EA0000001866 +B1554254547801N00612746EA0000001864 +B1554274547808N00612761EA0000001861 +B1554294547816N00612775EA0000001857 +B1554314547827N00612797EA0000001851 +B1554334547835N00612810EA0000001848 +B1554354547842N00612823EA0000001844 +B1554374547850N00612837EA0000001841 +B1554394547857N00612850EA0000001838 +B1554414547864N00612864EA0000001836 +B1554434547871N00612876EA0000001834 +B1554454547878N00612888EA0000001832 +B1554474547885N00612901EA0000001829 +B1554494547891N00612914EA0000001825 +B1554514547898N00612928EA0000001822 +B1554534547905N00612941EA0000001819 +B1554564547911N00612954EA0000001816 +B1554584547918N00612966EA0000001813 +B1555004547926N00612978EA0000001810 +B1555024547933N00612989EA0000001807 +B1555044547941N00612998EA0000001803 +B1555064547950N00613006EA0000001800 +B1555084547958N00613015EA0000001796 +B1555104547967N00613023EA0000001793 +B1555124547975N00613032EA0000001788 +B1555144547984N00613042EA0000001784 +B1555164547992N00613054EA0000001782 +B1555184547999N00613065EA0000001779 +B1555204548006N00613077EA0000001775 +B1555224548013N00613090EA0000001771 +B1555244548020N00613103EA0000001768 +B1555264548027N00613117EA0000001765 +B1555284548034N00613130EA0000001762 +B1555304548040N00613143EA0000001758 +B1555324548047N00613157EA0000001755 +B1555344548054N00613170EA0000001752 +B1555364548061N00613183EA0000001748 +B1555384548068N00613196EA0000001745 +B1555404548075N00613210EA0000001742 +B1555424548081N00613223EA0000001739 +B1555444548088N00613237EA0000001736 +B1555464548094N00613252EA0000001734 +B1555484548101N00613265EA0000001732 +B1555504548108N00613278EA0000001730 +B1555524548115N00613292EA0000001727 +B1555544548121N00613306EA0000001723 +B1555564548128N00613320EA0000001720 +B1555584548135N00613335EA0000001717 +B1556004548141N00613350EA0000001714 +B1556024548148N00613365EA0000001710 +B1556044548154N00613380EA0000001707 +B1556064548161N00613394EA0000001704 +B1556084548167N00613409EA0000001701 +B1556104548177N00613432EA0000001695 +B1556124548184N00613448EA0000001692 +B1556144548191N00613465EA0000001690 +B1556164548197N00613480EA0000001687 +B1556184548204N00613494EA0000001682 +B1556204548212N00613509EA0000001677 +B1556224548220N00613524EA0000001673 +B1556244548228N00613538EA0000001668 +B1556264548236N00613551EA0000001663 +B1556284548244N00613568EA0000001658 +B1556304548251N00613584EA0000001655 +B1556324548259N00613600EA0000001652 +B1556344548265N00613617EA0000001648 +B1556374548273N00613634EA0000001644 +B1556394548280N00613652EA0000001640 +B1556414548288N00613669EA0000001637 +B1556434548296N00613685EA0000001633 +B1556454548303N00613700EA0000001629 +B1556474548311N00613715EA0000001625 +B1556494548319N00613732EA0000001621 +B1556514548326N00613749EA0000001617 +B1556534548334N00613766EA0000001613 +B1556554548341N00613782EA0000001610 +B1556574548349N00613798EA0000001606 +B1556594548356N00613815EA0000001602 +B1557014548364N00613832EA0000001598 +B1557034548372N00613848EA0000001594 +B1557054548380N00613865EA0000001590 +B1557074548387N00613881EA0000001587 +B1557094548395N00613898EA0000001582 +B1557114548403N00613914EA0000001577 +B1557134548412N00613930EA0000001572 +B1557154548420N00613945EA0000001568 +B1557174548429N00613959EA0000001562 +B1557194548438N00613975EA0000001556 +B1557214548448N00613993EA0000001552 +B1557234548455N00614012EA0000001549 +B1557254548457N00614027EA0000001545 +B1557274548462N00614045EA0000001541 +B1557294548467N00614063EA0000001539 +B1557314548471N00614079EA0000001538 +B1557334548476N00614093EA0000001534 +B1557354548483N00614109EA0000001530 +B1557374548489N00614127EA0000001529 +B1557394548495N00614142EA0000001527 +B1557414548502N00614157EA0000001525 +B1557434548509N00614172EA0000001523 +B1557454548517N00614186EA0000001521 +B1557474548524N00614202EA0000001520 +B1557494548531N00614218EA0000001518 +B1557514548542N00614240EA0000001516 +B1557534548549N00614255EA0000001515 +B1557554548557N00614269EA0000001513 +B1557574548564N00614284EA0000001510 +B1557594548572N00614299EA0000001508 +B1558014548581N00614315EA0000001506 +B1558034548588N00614330EA0000001504 +B1558054548596N00614345EA0000001502 +B1558074548603N00614360EA0000001501 +B1558094548610N00614376EA0000001500 +B1558114548617N00614392EA0000001498 +B1558134548623N00614409EA0000001495 +B1558154548630N00614426EA0000001494 +B1558184548636N00614442EA0000001494 +B1558204548641N00614456EA0000001491 +B1558224548648N00614472EA0000001489 +B1558244548655N00614487EA0000001487 +B1558264548662N00614500EA0000001485 +B1558284548668N00614514EA0000001482 +B1558304548676N00614528EA0000001480 +B1558324548683N00614543EA0000001478 +B1558344548691N00614558EA0000001476 +B1558364548698N00614571EA0000001475 +B1558384548706N00614584EA0000001473 +B1558404548714N00614597EA0000001472 +B1558424548721N00614609EA0000001471 +B1558444548728N00614622EA0000001469 +B1558464548735N00614636EA0000001468 +B1558484548741N00614650EA0000001466 +B1558504548748N00614663EA0000001465 +B1558524548754N00614674EA0000001462 +B1558544548762N00614685EA0000001458 +B1558564548770N00614694EA0000001455 +B1558584548778N00614703EA0000001451 +B1559004548785N00614712EA0000001448 +B1559024548793N00614722EA0000001445 +B1559044548801N00614734EA0000001444 +B1559064548808N00614746EA0000001442 +B1559084548817N00614756EA0000001443 +B1559104548822N00614764EA0000001445 +B1559124548826N00614775EA0000001445 +B1559144548830N00614787EA0000001444 +B1559164548835N00614795EA0000001444 +B1559184548839N00614803EA0000001445 +B1559204548844N00614810EA0000001446 +B1559224548851N00614816EA0000001448 +B1559244548856N00614823EA0000001452 +B1559264548860N00614828EA0000001454 +B1559284548865N00614831EA0000001455 +B1559304548875N00614837EA0000001456 +B1559324548881N00614844EA0000001456 +B1559344548890N00614851EA0000001456 +B1559364548899N00614859EA0000001457 +B1559384548906N00614868EA0000001459 +B1559404548914N00614877EA0000001463 +B1559424548922N00614884EA0000001467 +B1559444548928N00614889EA0000001473 +B1559464548933N00614894EA0000001477 +B1559484548938N00614899EA0000001481 +B1559504548944N00614906EA0000001483 +B1559524548952N00614912EA0000001486 +B1559544548959N00614917EA0000001489 +B1559574548965N00614921EA0000001493 +B1559594548970N00614927EA0000001496 +B1600014548976N00614933EA0000001498 +B1600034548983N00614939EA0000001499 +B1600054548990N00614947EA0000001498 +B1600074548998N00614954EA0000001497 +B1600094549006N00614962EA0000001495 +B1600114549015N00614970EA0000001494 +B1600134549025N00614978EA0000001494 +B1600154549033N00614987EA0000001496 +B1600174549039N00614995EA0000001499 +B1600194549047N00615004EA0000001502 +B1600214549051N00615009EA0000001506 +B1600234549059N00615018EA0000001509 +B1600254549065N00615025EA0000001512 +B1600274549075N00615033EA0000001515 +B1600294549084N00615038EA0000001519 +B1600314549090N00615042EA0000001527 +B1600334549096N00615048EA0000001533 +B1600354549102N00615056EA0000001538 +B1600374549108N00615067EA0000001542 +B1600394549114N00615073EA0000001546 +B1600414549117N00615074EA0000001549 +B1600434549121N00615076EA0000001551 +B1600454549127N00615081EA0000001553 +B1600474549135N00615085EA0000001557 +B1600494549142N00615089EA0000001561 +B1600514549151N00615093EA0000001565 +B1600534549161N00615099EA0000001570 +B1600554549168N00615101EA0000001574 +B1600574549176N00615105EA0000001579 +B1600594549185N00615109EA0000001584 +B1601014549193N00615111EA0000001589 +B1601034549199N00615113EA0000001593 +B1601054549208N00615116EA0000001596 +B1601074549218N00615118EA0000001601 +B1601094549226N00615122EA0000001606 +B1601114549233N00615125EA0000001609 +B1601134549247N00615128EA0000001613 +B1601154549255N00615132EA0000001615 +B1601174549264N00615136EA0000001616 +B1601194549273N00615141EA0000001619 +B1601214549282N00615147EA0000001622 +B1601234549289N00615152EA0000001625 +B1601254549297N00615156EA0000001629 +B1601274549305N00615161EA0000001632 +B1601294549312N00615166EA0000001636 +B1601314549319N00615170EA0000001638 +B1601334549327N00615175EA0000001641 +B1601364549336N00615181EA0000001645 +B1601384549344N00615187EA0000001649 +B1601404549352N00615193EA0000001653 +B1601424549360N00615200EA0000001657 +B1601444549368N00615207EA0000001659 +B1601464549377N00615215EA0000001661 +B1601484549386N00615224EA0000001663 +B1601504549395N00615233EA0000001665 +B1601524549405N00615243EA0000001668 +B1601544549414N00615253EA0000001672 +B1601564549422N00615262EA0000001675 +B1601584549427N00615267EA0000001677 +B1602004549442N00615282EA0000001681 +B1602024549451N00615291EA0000001683 +B1602044549460N00615300EA0000001683 +B1602064549469N00615308EA0000001683 +B1602084549480N00615317EA0000001684 +B1602104549490N00615324EA0000001686 +B1602124549499N00615331EA0000001689 +B1602144549508N00615339EA0000001691 +B1602164549517N00615349EA0000001692 +B1602184549527N00615358EA0000001691 +B1602204549538N00615366EA0000001693 +B1602224549548N00615375EA0000001695 +B1602244549559N00615384EA0000001698 +B1602264549570N00615392EA0000001703 +B1602284549579N00615402EA0000001707 +B1602304549586N00615412EA0000001710 +B1602324549594N00615421EA0000001712 +B1602344549602N00615429EA0000001712 +B1602364549612N00615435EA0000001709 +B1602384549624N00615444EA0000001707 +B1602404549634N00615453EA0000001706 +B1602424549646N00615462EA0000001704 +B1602444549657N00615473EA0000001704 +B1602464549667N00615485EA0000001705 +B1602484549676N00615497EA0000001704 +B1602504549690N00615514EA0000001701 +B1602524549700N00615522EA0000001698 +B1602544549711N00615531EA0000001695 +B1602564549721N00615543EA0000001693 +B1602584549730N00615555EA0000001691 +B1603004549741N00615567EA0000001687 +B1603024549751N00615580EA0000001685 +B1603044549761N00615594EA0000001684 +B1603064549769N00615608EA0000001683 +B1603084549779N00615622EA0000001682 +B1603104549788N00615638EA0000001682 +B1603124549796N00615655EA0000001682 +B1603144549805N00615673EA0000001682 +B1603174549814N00615690EA0000001684 +B1603194549823N00615708EA0000001684 +B1603214549831N00615725EA0000001685 +B1603234549841N00615743EA0000001684 +B1603254549850N00615763EA0000001686 +B1603274549858N00615781EA0000001689 +B1603294549864N00615798EA0000001692 +B1603314549869N00615816EA0000001695 +B1603334549875N00615835EA0000001700 +B1603354549878N00615844EA0000001705 +B1603374549885N00615869EA0000001710 +B1603394549890N00615888EA0000001713 +B1603414549896N00615905EA0000001716 +B1603434549903N00615915EA0000001717 +B1603454549911N00615922EA0000001717 +B1603474549918N00615934EA0000001716 +B1603494549925N00615955EA0000001714 +B1603514549930N00615975EA0000001714 +B1603534549933N00615994EA0000001713 +B1603554549936N00616013EA0000001710 +B1603574549940N00616034EA0000001709 +B1603594549943N00616054EA0000001709 +B1604014549945N00616072EA0000001710 +B1604034549946N00616090EA0000001710 +B1604054549949N00616108EA0000001711 +B1604074549951N00616126EA0000001712 +B1604094549954N00616145EA0000001712 +B1604114549956N00616164EA0000001712 +B1604134549959N00616182EA0000001712 +B1604154549963N00616199EA0000001712 +B1604174549968N00616217EA0000001712 +B1604194549973N00616232EA0000001712 +B1604214549979N00616245EA0000001712 +B1604234549987N00616256EA0000001711 +B1604254549995N00616268EA0000001710 +B1604274550003N00616278EA0000001709 +B1604294550017N00616288EA0000001706 +B1604314550027N00616293EA0000001705 +B1604334550038N00616298EA0000001704 +B1604354550048N00616299EA0000001704 +B1604374550060N00616299EA0000001703 +B1604394550071N00616301EA0000001705 +B1604414550083N00616303EA0000001706 +B1604434550094N00616304EA0000001708 +B1604454550104N00616307EA0000001709 +B1604474550114N00616308EA0000001709 +B1604494550127N00616309EA0000001708 +B1604514550139N00616311EA0000001708 +B1604534550151N00616314EA0000001708 +B1604564550161N00616314EA0000001709 +B1604584550173N00616314EA0000001709 +B1605004550184N00616315EA0000001709 +B1605024550196N00616315EA0000001708 +B1605044550208N00616315EA0000001707 +B1605064550219N00616311EA0000001705 +B1605084550224N00616303EA0000001704 +B1605104550221N00616293EA0000001702 +B1605124550217N00616291EA0000001701 +B1605144550203N00616295EA0000001702 +B1605164550194N00616297EA0000001702 +B1605184550185N00616299EA0000001703 +B1605204550176N00616303EA0000001703 +B1605224550166N00616305EA0000001704 +B1605244550157N00616307EA0000001704 +B1605264550147N00616309EA0000001703 +B1605284550136N00616309EA0000001701 +B1605304550125N00616311EA0000001700 +B1605324550116N00616312EA0000001699 +B1605344550106N00616310EA0000001697 +B1605364550093N00616309EA0000001695 +B1605384550082N00616308EA0000001695 +B1605404550074N00616308EA0000001694 +B1605424550063N00616306EA0000001692 +B1605444550052N00616303EA0000001692 +B1605464550042N00616301EA0000001694 +B1605484550032N00616299EA0000001695 +B1605504550022N00616296EA0000001696 +B1605524550012N00616294EA0000001697 +B1605544550002N00616291EA0000001697 +B1605564549991N00616287EA0000001697 +B1605584549980N00616283EA0000001697 +B1606004549969N00616278EA0000001698 +B1606024549957N00616275EA0000001700 +B1606044549948N00616271EA0000001702 +B1606064549941N00616265EA0000001703 +B1606084549935N00616255EA0000001703 +B1606104549932N00616236EA0000001703 +B1606124549933N00616225EA0000001705 +B1606144549933N00616217EA0000001706 +B1606164549933N00616208EA0000001708 +B1606184549934N00616199EA0000001711 +B1606204549936N00616192EA0000001714 +B1606224549941N00616187EA0000001716 +B1606244549949N00616186EA0000001718 +B1606264549956N00616201EA0000001720 +B1606284549954N00616225EA0000001721 +B1606304549943N00616234EA0000001722 +B1606324549930N00616222EA0000001723 +B1606354549927N00616208EA0000001726 +B1606374549928N00616201EA0000001731 +B1606394549926N00616198EA0000001735 +B1606414549927N00616192EA0000001739 +B1606434549933N00616190EA0000001743 +B1606454549942N00616202EA0000001747 +B1606474549946N00616225EA0000001750 +B1606494549945N00616237EA0000001754 +B1606514549935N00616249EA0000001758 +B1606534549928N00616241EA0000001762 +B1606554549934N00616241EA0000001765 +B1606574549939N00616255EA0000001768 +B1606594549940N00616278EA0000001771 +B1607014549936N00616296EA0000001773 +B1607034549931N00616299EA0000001776 +B1607054549930N00616292EA0000001780 +B1607074549929N00616288EA0000001784 +B1607094549929N00616282EA0000001788 +B1607114549932N00616279EA0000001791 +B1607134549934N00616298EA0000001793 +B1607154549929N00616321EA0000001796 +B1607174549919N00616330EA0000001799 +B1607194549903N00616301EA0000001806 +B1607214549908N00616296EA0000001809 +B1607234549916N00616306EA0000001813 +B1607254549920N00616328EA0000001817 +B1607274549911N00616346EA0000001823 +B1607294549900N00616347EA0000001826 +B1607314549895N00616332EA0000001831 +B1607334549902N00616331EA0000001834 +B1607354549911N00616343EA0000001839 +B1607374549913N00616364EA0000001842 +B1607394549903N00616386EA0000001846 +B1607414549891N00616391EA0000001849 +B1607434549884N00616391EA0000001853 +B1607454549885N00616384EA0000001857 +B1607474549890N00616385EA0000001861 +B1607494549894N00616404EA0000001865 +B1607514549887N00616432EA0000001872 +B1607534549876N00616426EA0000001876 +B1607554549872N00616414EA0000001880 +B1607574549871N00616406EA0000001885 +B1607594549873N00616420EA0000001889 +B1608014549872N00616441EA0000001894 +B1608034549865N00616454EA0000001899 +B1608054549858N00616454EA0000001904 +B1608074549857N00616444EA0000001909 +B1608094549861N00616441EA0000001915 +B1608114549868N00616448EA0000001921 +B1608134549872N00616466EA0000001926 +B1608164549870N00616488EA0000001931 +B1608184549863N00616504EA0000001936 +B1608204549857N00616504EA0000001940 +B1608224549857N00616494EA0000001945 +B1608244549863N00616492EA0000001951 +B1608264549867N00616496EA0000001956 +B1608284549871N00616522EA0000001960 +B1608304549867N00616540EA0000001964 +B1608324549857N00616539EA0000001969 +B1608344549853N00616527EA0000001974 +B1608364549854N00616519EA0000001980 +B1608384549859N00616520EA0000001987 +B1608404549866N00616531EA0000001992 +B1608424549870N00616553EA0000001996 +B1608444549866N00616576EA0000002001 +B1608464549860N00616586EA0000002005 +B1608484549858N00616582EA0000002011 +B1608504549863N00616577EA0000002017 +B1608524549870N00616579EA0000002024 +B1608544549877N00616584EA0000002029 +B1608564549884N00616597EA0000002034 +B1608584549883N00616614EA0000002039 +B1609004549875N00616620EA0000002045 +B1609024549869N00616611EA0000002052 +B1609044549868N00616599EA0000002059 +B1609064549874N00616595EA0000002065 +B1609084549880N00616611EA0000002071 +B1609104549881N00616633EA0000002076 +B1609124549877N00616648EA0000002081 +B1609144549870N00616653EA0000002088 +B1609164549862N00616653EA0000002095 +B1609184549856N00616645EA0000002102 +B1609204549856N00616633EA0000002108 +B1609224549866N00616631EA0000002114 +B1609244549875N00616647EA0000002117 +B1609264549876N00616671EA0000002121 +B1609284549867N00616689EA0000002127 +B1609304549861N00616680EA0000002131 +B1609324549858N00616672EA0000002136 +B1609344549858N00616666EA0000002140 +B1609364549864N00616663EA0000002143 +B1609384549872N00616675EA0000002144 +B1609404549874N00616701EA0000002146 +B1609424549871N00616722EA0000002148 +B1609444549860N00616730EA0000002151 +B1609464549850N00616738EA0000002155 +B1609484549841N00616745EA0000002161 +B1609504549832N00616744EA0000002167 +B1609524549828N00616733EA0000002173 +B1609554549832N00616727EA0000002179 +B1609574549838N00616736EA0000002184 +B1609594549842N00616760EA0000002188 +B1610014549839N00616782EA0000002192 +B1610034549831N00616785EA0000002196 +B1610054549825N00616777EA0000002202 +B1610074549821N00616768EA0000002208 +B1610094549823N00616757EA0000002212 +B1610114549829N00616755EA0000002215 +B1610134549836N00616770EA0000002219 +B1610154549834N00616792EA0000002222 +B1610174549826N00616805EA0000002224 +B1610194549815N00616804EA0000002226 +B1610214549807N00616799EA0000002229 +B1610234549804N00616794EA0000002233 +B1610254549806N00616788EA0000002236 +B1610274549813N00616785EA0000002238 +B1610294549821N00616797EA0000002240 +B1610314549823N00616820EA0000002242 +B1610334549818N00616837EA0000002244 +B1610354549806N00616844EA0000002247 +B1610374549797N00616844EA0000002252 +B1610394549791N00616838EA0000002256 +B1610414549790N00616831EA0000002260 +B1610434549796N00616828EA0000002264 +B1610454549805N00616834EA0000002267 +B1610474549810N00616855EA0000002269 +B1610494549809N00616879EA0000002271 +B1610514549801N00616895EA0000002274 +B1610534549791N00616904EA0000002278 +B1610554549781N00616909EA0000002282 +B1610574549772N00616908EA0000002284 +B1610594549770N00616900EA0000002286 +B1611014549775N00616896EA0000002288 +B1611034549783N00616902EA0000002290 +B1611054549789N00616922EA0000002292 +B1611074549787N00616945EA0000002294 +B1611094549775N00616969EA0000002298 +B1611114549765N00616977EA0000002301 +B1611134549756N00616979EA0000002303 +B1611154549752N00616972EA0000002303 +B1611174549754N00616965EA0000002303 +B1611194549761N00616964EA0000002303 +B1611214549771N00616979EA0000002303 +B1611234549775N00617003EA0000002303 +B1611254549771N00617025EA0000002302 +B1611274549762N00617037EA0000002303 +B1611294549754N00617040EA0000002304 +B1611314549747N00617046EA0000002305 +B1611334549739N00617047EA0000002305 +B1611364549734N00617038EA0000002304 +B1611384549733N00617028EA0000002304 +B1611404549731N00617021EA0000002305 +B1611424549729N00617015EA0000002307 +B1611444549726N00617007EA0000002309 +B1611464549722N00617001EA0000002313 +B1611484549719N00616996EA0000002318 +B1611504549717N00616990EA0000002323 +B1611524549714N00616985EA0000002328 +B1611544549711N00616977EA0000002332 +B1611564549710N00616973EA0000002337 +B1611584549705N00616969EA0000002342 +B1612004549699N00616969EA0000002347 +B1612024549690N00616972EA0000002350 +B1612044549683N00616983EA0000002354 +B1612064549676N00616996EA0000002357 +B1612084549672N00617012EA0000002361 +B1612104549675N00617030EA0000002365 +B1612124549684N00617044EA0000002369 +B1612144549694N00617047EA0000002375 +B1612164549701N00617043EA0000002381 +B1612184549704N00617039EA0000002387 +B1612204549704N00617035EA0000002392 +B1612224549700N00617032EA0000002397 +B1612244549692N00617031EA0000002399 +B1612264549682N00617034EA0000002402 +B1612284549674N00617043EA0000002406 +B1612304549671N00617059EA0000002409 +B1612324549673N00617078EA0000002411 +B1612344549682N00617091EA0000002414 +B1612364549692N00617095EA0000002418 +B1612384549701N00617093EA0000002423 +B1612404549706N00617088EA0000002427 +B1612424549708N00617083EA0000002431 +B1612444549706N00617078EA0000002434 +B1612464549698N00617077EA0000002435 +B1612484549684N00617096EA0000002436 +B1612504549680N00617116EA0000002437 +B1612524549683N00617132EA0000002439 +B1612544549691N00617146EA0000002441 +B1612564549701N00617159EA0000002443 +B1612584549711N00617164EA0000002445 +B1613004549718N00617164EA0000002448 +B1613024549724N00617163EA0000002449 +B1613044549728N00617159EA0000002450 +B1613064549727N00617153EA0000002450 +B1613084549724N00617147EA0000002450 +B1613104549722N00617140EA0000002449 +B1613124549720N00617132EA0000002448 +B1613154549718N00617124EA0000002446 +B1613174549715N00617116EA0000002445 +B1613194549713N00617108EA0000002443 +B1613214549710N00617099EA0000002440 +B1613234549707N00617090EA0000002438 +B1613254549703N00617082EA0000002437 +B1613274549701N00617074EA0000002437 +B1613294549698N00617066EA0000002436 +B1613314549695N00617057EA0000002436 +B1613334549693N00617049EA0000002435 +B1613354549691N00617041EA0000002433 +B1613374549690N00617036EA0000002430 +B1613394549686N00617022EA0000002430 +B1613414549685N00617015EA0000002430 +B1613434549683N00617005EA0000002431 +B1613454549682N00616996EA0000002433 +B1613474549682N00616990EA0000002438 +B1613494549682N00616984EA0000002444 +B1613514549683N00616976EA0000002450 +B1613534549683N00616969EA0000002454 +B1613554549683N00616961EA0000002458 +B1613574549679N00616952EA0000002460 +B1613594549671N00616948EA0000002461 +B1614014549661N00616951EA0000002460 +B1614034549651N00616961EA0000002460 +B1614054549647N00616979EA0000002460 +B1614074549649N00616996EA0000002462 +B1614094549654N00617009EA0000002465 +B1614114549661N00617021EA0000002466 +B1614134549668N00617032EA0000002469 +B1614154549675N00617044EA0000002474 +B1614174549681N00617047EA0000002477 +B1614194549688N00617044EA0000002479 +B1614214549693N00617039EA0000002481 +B1614234549691N00617030EA0000002482 +B1614254549682N00617018EA0000002485 +B1614274549670N00617019EA0000002486 +B1614294549654N00617037EA0000002487 +B1614314549650N00617053EA0000002487 +B1614334549650N00617073EA0000002489 +B1614354549653N00617088EA0000002491 +B1614374549660N00617100EA0000002494 +B1614394549667N00617115EA0000002498 +B1614414549673N00617129EA0000002502 +B1614434549680N00617140EA0000002504 +B1614454549688N00617149EA0000002507 +B1614474549694N00617152EA0000002510 +B1614494549698N00617146EA0000002512 +B1614524549696N00617138EA0000002513 +B1614544549687N00617132EA0000002514 +B1614564549674N00617136EA0000002515 +B1614584549662N00617151EA0000002516 +B1615004549659N00617173EA0000002517 +B1615024549663N00617192EA0000002520 +B1615044549671N00617208EA0000002523 +B1615064549677N00617220EA0000002525 +B1615084549685N00617231EA0000002525 +B1615104549694N00617242EA0000002526 +B1615124549702N00617253EA0000002529 +B1615144549709N00617262EA0000002529 +B1615164549713N00617265EA0000002528 +B1615184549727N00617278EA0000002526 +B1615204549734N00617290EA0000002524 +B1615224549739N00617303EA0000002520 +B1615244549745N00617317EA0000002515 +B1615264549750N00617333EA0000002508 +B1615284549753N00617350EA0000002503 +B1615304549757N00617365EA0000002498 +B1615324549761N00617379EA0000002493 +B1615344549767N00617393EA0000002487 +B1615364549774N00617409EA0000002480 +B1615384549782N00617426EA0000002473 +B1615404549788N00617445EA0000002465 +B1615424549793N00617465EA0000002459 +B1615444549797N00617485EA0000002453 +B1615464549801N00617505EA0000002447 +B1615484549806N00617526EA0000002441 +B1615504549811N00617547EA0000002436 +B1615524549815N00617570EA0000002430 +B1615544549819N00617594EA0000002426 +B1615564549823N00617617EA0000002422 +B1615584549827N00617639EA0000002420 +B1616004549831N00617660EA0000002415 +B1616024549837N00617682EA0000002410 +B1616044549846N00617716EA0000002402 +B1616064549848N00617737EA0000002399 +B1616084549851N00617756EA0000002395 +B1616104549854N00617775EA0000002389 +B1616124549855N00617798EA0000002383 +B1616144549856N00617819EA0000002379 +B1616164549858N00617836EA0000002376 +B1616184549858N00617852EA0000002371 +B1616204549859N00617872EA0000002366 +B1616224549860N00617892EA0000002360 +B1616244549862N00617911EA0000002353 +B1616264549865N00617933EA0000002346 +B1616284549868N00617955EA0000002341 +B1616314549871N00617972EA0000002338 +B1616334549874N00617988EA0000002336 +B1616354549877N00618006EA0000002332 +B1616374549881N00618024EA0000002329 +B1616394549884N00618043EA0000002327 +B1616414549887N00618061EA0000002324 +B1616434549892N00618077EA0000002321 +B1616454549895N00618095EA0000002318 +B1616474549898N00618110EA0000002316 +B1616494549901N00618125EA0000002312 +B1616514549902N00618142EA0000002308 +B1616534549904N00618160EA0000002304 +B1616554549907N00618177EA0000002300 +B1616574549909N00618195EA0000002297 +B1616594549911N00618213EA0000002294 +B1617014549914N00618231EA0000002291 +B1617034549916N00618249EA0000002288 +B1617054549919N00618266EA0000002285 +B1617074549921N00618283EA0000002281 +B1617094549922N00618303EA0000002278 +B1617114549924N00618321EA0000002275 +B1617134549926N00618339EA0000002272 +B1617154549929N00618358EA0000002270 +B1617174549932N00618377EA0000002267 +B1617194549936N00618396EA0000002265 +B1617214549938N00618415EA0000002262 +B1617234549940N00618434EA0000002259 +B1617254549943N00618453EA0000002256 +B1617274549946N00618471EA0000002253 +B1617294549948N00618488EA0000002249 +B1617314549951N00618507EA0000002244 +B1617334549953N00618529EA0000002240 +B1617354549954N00618548EA0000002238 +B1617374549954N00618563EA0000002237 +B1617394549956N00618577EA0000002235 +B1617414549959N00618590EA0000002231 +B1617434549962N00618606EA0000002225 +B1617454549967N00618630EA0000002219 +B1617474549969N00618646EA0000002216 +B1617494549971N00618663EA0000002211 +B1617514549972N00618681EA0000002207 +B1617534549974N00618699EA0000002204 +B1617554549977N00618715EA0000002201 +B1617574549979N00618732EA0000002197 +B1617594549982N00618750EA0000002195 +B1618014549986N00618767EA0000002194 +B1618034549989N00618783EA0000002193 +B1618054549992N00618798EA0000002191 +B1618074549995N00618815EA0000002189 +B1618094549997N00618832EA0000002187 +B1618124549998N00618847EA0000002184 +B1618144549999N00618863EA0000002180 +B1618164550001N00618881EA0000002175 +B1618184550002N00618902EA0000002171 +B1618204550002N00618923EA0000002167 +B1618224550003N00618943EA0000002163 +B1618244550004N00618965EA0000002159 +B1618264550005N00618988EA0000002157 +B1618284550005N00619009EA0000002154 +B1618304550005N00619031EA0000002151 +B1618324550006N00619053EA0000002148 +B1618344550006N00619074EA0000002146 +B1618364550006N00619096EA0000002143 +B1618384550006N00619118EA0000002140 +B1618404550008N00619139EA0000002137 +B1618424550009N00619161EA0000002134 +B1618444550010N00619183EA0000002131 +B1618464550012N00619204EA0000002128 +B1618484550014N00619224EA0000002126 +B1618504550017N00619244EA0000002122 +B1618524550022N00619265EA0000002119 +B1618544550027N00619285EA0000002117 +B1618564550030N00619306EA0000002115 +B1618584550031N00619325EA0000002114 +B1619004550035N00619343EA0000002115 +B1619024550036N00619358EA0000002118 +B1619044550038N00619371EA0000002121 +B1619064550040N00619382EA0000002122 +B1619084550042N00619394EA0000002124 +B1619104550044N00619406EA0000002124 +B1619124550044N00619419EA0000002125 +B1619144550045N00619434EA0000002126 +B1619164550045N00619449EA0000002127 +B1619184550046N00619463EA0000002127 +B1619204550046N00619477EA0000002127 +B1619224550046N00619492EA0000002128 +B1619244550047N00619505EA0000002128 +B1619264550051N00619526EA0000002127 +B1619284550053N00619542EA0000002128 +B1619304550054N00619556EA0000002129 +B1619324550057N00619570EA0000002129 +B1619344550059N00619585EA0000002128 +B1619364550061N00619600EA0000002127 +B1619384550062N00619614EA0000002126 +B1619404550064N00619629EA0000002124 +B1619424550067N00619644EA0000002122 +B1619444550069N00619659EA0000002121 +B1619464550072N00619673EA0000002119 +B1619484550074N00619687EA0000002117 +B1619504550076N00619702EA0000002114 +B1619534550078N00619719EA0000002110 +B1619554550082N00619737EA0000002107 +B1619574550085N00619756EA0000002105 +B1619594550088N00619773EA0000002101 +B1620014550090N00619791EA0000002097 +B1620034550093N00619811EA0000002093 +B1620054550096N00619829EA0000002091 +B1620074550098N00619846EA0000002087 +B1620094550101N00619864EA0000002083 +B1620114550105N00619882EA0000002079 +B1620134550109N00619901EA0000002076 +B1620154550111N00619921EA0000002074 +B1620174550114N00619940EA0000002073 +B1620194550117N00619959EA0000002072 +B1620214550120N00619978EA0000002070 +B1620234550123N00619998EA0000002069 +B1620254550126N00620017EA0000002068 +B1620274550128N00620036EA0000002068 +B1620294550130N00620055EA0000002067 +B1620314550131N00620073EA0000002065 +B1620334550133N00620094EA0000002062 +B1620354550134N00620115EA0000002060 +B1620374550134N00620135EA0000002059 +B1620394550134N00620154EA0000002056 +B1620414550136N00620172EA0000002053 +B1620434550138N00620193EA0000002048 +B1620454550139N00620214EA0000002045 +B1620474550140N00620233EA0000002042 +B1620494550141N00620253EA0000002037 +B1620514550142N00620273EA0000002033 +B1620534550143N00620293EA0000002030 +B1620554550145N00620311EA0000002027 +B1620574550145N00620331EA0000002023 +B1620594550145N00620352EA0000002020 +B1621014550146N00620372EA0000002018 +B1621034550146N00620392EA0000002016 +B1621054550146N00620412EA0000002013 +B1621074550149N00620442EA0000002009 +B1621094550149N00620462EA0000002006 +B1621114550148N00620481EA0000002004 +B1621134550149N00620501EA0000002000 +B1621154550149N00620521EA0000001997 +B1621174550149N00620540EA0000001993 +B1621194550150N00620559EA0000001989 +B1621214550150N00620579EA0000001985 +B1621234550150N00620598EA0000001982 +B1621254550150N00620618EA0000001979 +B1621274550150N00620637EA0000001976 +B1621294550150N00620657EA0000001972 +B1621324550151N00620676EA0000001968 +B1621344550151N00620696EA0000001965 +B1621364550152N00620714EA0000001962 +B1621384550153N00620732EA0000001958 +B1621404550153N00620752EA0000001954 +B1621424550153N00620771EA0000001950 +B1621444550154N00620789EA0000001946 +B1621464550154N00620808EA0000001941 +B1621484550155N00620827EA0000001937 +B1621504550156N00620846EA0000001933 +B1621524550156N00620864EA0000001929 +B1621544550156N00620874EA0000001925 +B1621564550156N00620874EA0000001921 +B1621584550156N00620925EA0000001918 +B1622004550155N00620946EA0000001915 +B1622024550156N00620967EA0000001911 +B1622044550156N00620988EA0000001908 +B1622064550155N00621008EA0000001905 +B1622084550155N00621030EA0000001901 +B1622104550155N00621052EA0000001898 +B1622124550155N00621074EA0000001894 +B1622144550156N00621095EA0000001889 +B1622164550157N00621117EA0000001884 +B1622184550157N00621140EA0000001879 +B1622204550158N00621163EA0000001875 +B1622224550159N00621185EA0000001872 +B1622244550159N00621207EA0000001868 +B1622264550160N00621229EA0000001863 +B1622284550160N00621251EA0000001860 +B1622304550159N00621273EA0000001856 +B1622324550160N00621293EA0000001852 +B1622344550160N00621313EA0000001848 +B1622364550160N00621335EA0000001842 +B1622384550162N00621359EA0000001837 +B1622404550162N00621383EA0000001833 +B1622424550163N00621406EA0000001831 +B1622444550163N00621427EA0000001830 +B1622464550162N00621454EA0000001832 +B1622484550162N00621473EA0000001834 +B1622504550161N00621489EA0000001837 +B1622524550160N00621504EA0000001840 +B1622544550159N00621519EA0000001843 +B1622564550156N00621535EA0000001845 +B1622584550149N00621549EA0000001846 +B1623004550138N00621559EA0000001847 +B1623024550125N00621561EA0000001849 +B1623044550116N00621550EA0000001851 +B1623064550116N00621538EA0000001852 +B1623084550121N00621536EA0000001855 +B1623104550127N00621544EA0000001857 +B1623134550131N00621558EA0000001858 +B1623154550131N00621575EA0000001860 +B1623174550128N00621592EA0000001862 +B1623194550122N00621608EA0000001866 +B1623214550115N00621623EA0000001869 +B1623234550109N00621639EA0000001873 +B1623254550105N00621655EA0000001876 +B1623274550104N00621670EA0000001878 +B1623294550105N00621683EA0000001879 +B1623314550107N00621689EA0000001879 +B1623334550117N00621700EA0000001880 +B1623354550123N00621699EA0000001881 +B1623374550127N00621694EA0000001883 +B1623394550127N00621686EA0000001886 +B1623414550124N00621677EA0000001889 +B1623434550116N00621670EA0000001893 +B1623454550103N00621669EA0000001896 +B1623474550091N00621673EA0000001900 +B1623494550081N00621684EA0000001904 +B1623514550074N00621699EA0000001906 +B1623534550070N00621715EA0000001909 +B1623554550071N00621730EA0000001910 +B1623574550076N00621741EA0000001910 +B1623594550082N00621748EA0000001910 +B1624014550089N00621749EA0000001911 +B1624034550093N00621745EA0000001913 +B1624054550095N00621737EA0000001915 +B1624074550094N00621728EA0000001919 +B1624094550089N00621721EA0000001922 +B1624114550081N00621713EA0000001924 +B1624134550069N00621711EA0000001928 +B1624154550056N00621715EA0000001931 +B1624174550046N00621726EA0000001934 +B1624194550039N00621741EA0000001937 +B1624214550036N00621758EA0000001939 +B1624234550039N00621771EA0000001940 +B1624254550044N00621782EA0000001940 +B1624274550054N00621787EA0000001940 +B1624294550060N00621780EA0000001940 +B1624314550060N00621770EA0000001942 +B1624334550054N00621760EA0000001945 +B1624354550042N00621756EA0000001948 +B1624374550028N00621758EA0000001952 +B1624394550017N00621764EA0000001955 +B1624414550007N00621774EA0000001958 +B1624434549998N00621789EA0000001960 +B1624454549994N00621805EA0000001962 +B1624474549993N00621820EA0000001962 +B1624494549994N00621834EA0000001962 +B1624514550001N00621845EA0000001963 +B1624544550010N00621846EA0000001963 +B1624564550015N00621840EA0000001964 +B1624584550016N00621830EA0000001965 +B1625004550012N00621820EA0000001965 +B1625024550002N00621814EA0000001965 +B1625044549989N00621814EA0000001965 +B1625064549978N00621824EA0000001965 +B1625084549970N00621840EA0000001967 +B1625104549966N00621849EA0000001970 +B1625124549959N00621873EA0000001974 +B1625144549956N00621886EA0000001975 +B1625164549953N00621900EA0000001975 +B1625184549955N00621918EA0000001976 +B1625204549960N00621930EA0000001979 +B1625224549966N00621935EA0000001981 +B1625244549973N00621936EA0000001983 +B1625264549978N00621932EA0000001985 +B1625284549978N00621922EA0000001987 +B1625304549974N00621913EA0000001990 +B1625324549964N00621906EA0000001994 +B1625344549951N00621904EA0000001998 +B1625364549939N00621914EA0000002001 +B1625384549930N00621929EA0000002006 +B1625404549927N00621946EA0000002009 +B1625424549928N00621961EA0000002010 +B1625444549934N00621973EA0000002011 +B1625464549942N00621976EA0000002012 +B1625484549947N00621969EA0000002014 +B1625504549947N00621958EA0000002018 +B1625524549944N00621947EA0000002024 +B1625544549937N00621939EA0000002028 +B1625564549926N00621936EA0000002032 +B1625584549914N00621941EA0000002036 +B1626004549906N00621956EA0000002039 +B1626024549903N00621973EA0000002042 +B1626044549905N00621986EA0000002045 +B1626064549915N00621993EA0000002049 +B1626084549921N00621989EA0000002053 +B1626104549924N00621980EA0000002058 +B1626124549921N00621971EA0000002062 +B1626144549915N00621961EA0000002066 +B1626164549902N00621957EA0000002069 +B1626184549889N00621966EA0000002073 +B1626204549880N00621981EA0000002077 +B1626224549879N00621997EA0000002080 +B1626244549881N00622011EA0000002084 +B1626264549887N00622019EA0000002086 +B1626284549894N00622021EA0000002090 +B1626314549900N00622017EA0000002094 +B1626334549902N00622008EA0000002099 +B1626354549902N00621999EA0000002102 +B1626374549897N00621989EA0000002104 +B1626394549883N00621983EA0000002106 +B1626414549870N00621989EA0000002109 +B1626434549859N00622006EA0000002110 +B1626454549856N00622021EA0000002113 +B1626474549856N00622035EA0000002115 +B1626494549859N00622047EA0000002118 +B1626514549866N00622054EA0000002120 +B1626534549874N00622057EA0000002123 +B1626554549881N00622056EA0000002127 +B1626574549886N00622049EA0000002130 +B1626594549887N00622038EA0000002134 +B1627014549883N00622028EA0000002136 +B1627034549873N00622021EA0000002138 +B1627054549862N00622017EA0000002139 +B1627074549847N00622024EA0000002139 +B1627094549835N00622039EA0000002140 +B1627114549829N00622057EA0000002142 +B1627134549828N00622072EA0000002145 +B1627154549829N00622086EA0000002147 +B1627174549831N00622099EA0000002148 +B1627194549834N00622112EA0000002150 +B1627214549840N00622121EA0000002152 +B1627234549848N00622122EA0000002156 +B1627254549854N00622119EA0000002161 +B1627274549857N00622112EA0000002165 +B1627294549858N00622101EA0000002169 +B1627314549852N00622091EA0000002173 +B1627334549842N00622086EA0000002176 +B1627354549830N00622084EA0000002179 +B1627374549817N00622088EA0000002181 +B1627394549805N00622098EA0000002183 +B1627414549798N00622114EA0000002184 +B1627434549797N00622139EA0000002185 +B1627454549801N00622151EA0000002186 +B1627474549807N00622159EA0000002189 +B1627494549814N00622161EA0000002193 +B1627514549819N00622160EA0000002197 +B1627534549823N00622160EA0000002199 +B1627554549829N00622156EA0000002200 +B1627574549830N00622142EA0000002203 +B1627594549824N00622130EA0000002206 +B1628014549815N00622124EA0000002210 +B1628034549803N00622124EA0000002212 +B1628054549790N00622129EA0000002215 +B1628074549781N00622143EA0000002216 +B1628104549776N00622160EA0000002218 +B1628124549778N00622175EA0000002220 +B1628144549782N00622185EA0000002222 +B1628164549788N00622193EA0000002224 +B1628184549796N00622197EA0000002228 +B1628204549803N00622195EA0000002232 +B1628224549809N00622189EA0000002234 +B1628244549811N00622184EA0000002237 +B1628264549812N00622168EA0000002241 +B1628284549805N00622158EA0000002244 +B1628304549794N00622152EA0000002246 +B1628324549781N00622156EA0000002247 +B1628344549769N00622167EA0000002249 +B1628364549762N00622182EA0000002251 +B1628384549760N00622197EA0000002252 +B1628404549763N00622212EA0000002254 +B1628424549770N00622221EA0000002257 +B1628444549777N00622225EA0000002262 +B1628464549784N00622225EA0000002265 +B1628484549791N00622223EA0000002269 +B1628504549797N00622216EA0000002272 +B1628524549798N00622204EA0000002275 +B1628544549793N00622192EA0000002278 +B1628564549783N00622185EA0000002280 +B1628584549771N00622184EA0000002282 +B1629004549758N00622190EA0000002283 +B1629024549749N00622203EA0000002284 +B1629044549745N00622220EA0000002284 +B1629064549747N00622235EA0000002285 +B1629084549753N00622243EA0000002287 +B1629104549761N00622244EA0000002290 +B1629124549767N00622243EA0000002292 +B1629144549774N00622243EA0000002295 +B1629164549780N00622242EA0000002298 +B1629184549787N00622240EA0000002301 +B1629204549793N00622240EA0000002305 +B1629224549801N00622238EA0000002309 +B1629244549807N00622232EA0000002311 +B1629264549808N00622222EA0000002314 +B1629284549804N00622212EA0000002316 +B1629304549795N00622204EA0000002317 +B1629324549784N00622202EA0000002319 +B1629344549772N00622208EA0000002320 +B1629364549764N00622221EA0000002321 +B1629384549761N00622235EA0000002323 +B1629404549764N00622248EA0000002325 +B1629424549767N00622258EA0000002329 +B1629444549772N00622266EA0000002331 +B1629464549778N00622271EA0000002334 +B1629494549784N00622272EA0000002337 +B1629514549790N00622268EA0000002340 +B1629534549794N00622260EA0000002343 +B1629554549796N00622251EA0000002345 +B1629574549794N00622239EA0000002346 +B1629594549788N00622228EA0000002345 +B1630014549778N00622220EA0000002345 +B1630034549766N00622218EA0000002346 +B1630054549754N00622225EA0000002346 +B1630074549747N00622238EA0000002346 +B1630094549744N00622253EA0000002346 +B1630114549746N00622267EA0000002347 +B1630134549752N00622276EA0000002350 +B1630154549759N00622281EA0000002355 +B1630174549766N00622281EA0000002360 +B1630194549773N00622279EA0000002363 +B1630214549778N00622274EA0000002365 +B1630234549781N00622266EA0000002365 +B1630254549780N00622254EA0000002364 +B1630274549773N00622243EA0000002364 +B1630294549762N00622238EA0000002364 +B1630314549750N00622241EA0000002364 +B1630334549740N00622253EA0000002363 +B1630354549735N00622270EA0000002363 +B1630374549735N00622284EA0000002364 +B1630394549739N00622296EA0000002367 +B1630414549744N00622303EA0000002369 +B1630434549752N00622306EA0000002371 +B1630454549760N00622308EA0000002373 +B1630474549766N00622311EA0000002374 +B1630494549773N00622313EA0000002373 +B1630514549780N00622317EA0000002372 +B1630534549786N00622328EA0000002370 +B1630554549789N00622343EA0000002368 +B1630574549791N00622359EA0000002367 +B1630594549794N00622374EA0000002365 +B1631014549796N00622391EA0000002363 +B1631034549799N00622419EA0000002361 +B1631054549800N00622436EA0000002360 +B1631074549801N00622452EA0000002358 +B1631094549802N00622469EA0000002358 +B1631114549804N00622484EA0000002358 +B1631134549805N00622498EA0000002357 +B1631154549807N00622512EA0000002356 +B1631174549809N00622528EA0000002353 +B1631194549810N00622544EA0000002349 +B1631214549813N00622559EA0000002345 +B1631234549819N00622573EA0000002340 +B1631254549825N00622587EA0000002336 +B1631274549829N00622602EA0000002332 +B1631304549833N00622616EA0000002327 +B1631324549838N00622632EA0000002322 +B1631344549841N00622649EA0000002318 +B1631364549843N00622665EA0000002315 +B1631384549847N00622682EA0000002312 +B1631404549850N00622699EA0000002309 +B1631424549854N00622715EA0000002306 +B1631444549858N00622733EA0000002301 +B1631464549863N00622753EA0000002298 +B1631484549866N00622773EA0000002295 +B1631504549870N00622793EA0000002292 +B1631524549873N00622814EA0000002288 +B1631544549877N00622834EA0000002285 +B1631564549881N00622854EA0000002282 +B1631584549884N00622874EA0000002278 +B1632004549887N00622894EA0000002275 +B1632024549891N00622914EA0000002272 +B1632044549894N00622934EA0000002269 +B1632064549897N00622955EA0000002266 +B1632084549900N00622975EA0000002263 +B1632104549904N00622994EA0000002260 +B1632124549907N00623014EA0000002256 +B1632144549910N00623034EA0000002252 +B1632164549914N00623054EA0000002248 +B1632184549917N00623074EA0000002245 +B1632204549921N00623094EA0000002242 +B1632224549925N00623113EA0000002238 +B1632244549929N00623134EA0000002235 +B1632264549933N00623153EA0000002233 +B1632284549936N00623172EA0000002229 +B1632304549939N00623192EA0000002225 +B1632324549941N00623213EA0000002221 +B1632344549943N00623233EA0000002217 +B1632364549944N00623253EA0000002213 +B1632384549946N00623274EA0000002208 +B1632404549948N00623294EA0000002204 +B1632424549950N00623315EA0000002200 +B1632444549952N00623344EA0000002194 +B1632464549954N00623365EA0000002190 +B1632484549954N00623386EA0000002187 +B1632504549955N00623408EA0000002184 +B1632524549956N00623429EA0000002181 +B1632544549958N00623449EA0000002179 +B1632564549959N00623469EA0000002175 +B1632584549961N00623489EA0000002172 +B1633004549964N00623509EA0000002169 +B1633024549965N00623530EA0000002166 +B1633044549966N00623550EA0000002162 +B1633064549968N00623571EA0000002159 +B1633084549969N00623590EA0000002156 +B1633114549969N00623610EA0000002152 +B1633134549970N00623629EA0000002148 +B1633154549970N00623648EA0000002144 +B1633174549970N00623668EA0000002140 +B1633194549971N00623688EA0000002136 +B1633214549971N00623708EA0000002132 +B1633234549971N00623728EA0000002130 +B1633254549972N00623748EA0000002127 +B1633274549972N00623767EA0000002124 +B1633294549973N00623787EA0000002121 +B1633314549973N00623807EA0000002119 +B1633334549973N00623807EA0000002117 +B1633354549972N00623848EA0000002114 +B1633374549972N00623868EA0000002111 +B1633394549973N00623888EA0000002108 +B1633414549974N00623909EA0000002105 +B1633434549975N00623930EA0000002102 +B1633454549977N00623950EA0000002100 +B1633474549978N00623971EA0000002097 +B1633494549979N00623992EA0000002095 +B1633514549980N00624013EA0000002092 +B1633534549980N00624034EA0000002090 +B1633554549980N00624055EA0000002087 +B1633574549981N00624076EA0000002085 +B1633594549981N00624097EA0000002082 +B1634014549981N00624118EA0000002080 +B1634034549982N00624139EA0000002077 +B1634054549982N00624161EA0000002075 +B1634074549982N00624182EA0000002072 +B1634094549982N00624204EA0000002069 +B1634114549981N00624225EA0000002067 +B1634134549982N00624246EA0000002064 +B1634154549983N00624267EA0000002062 +B1634174549983N00624289EA0000002059 +B1634194549983N00624310EA0000002057 +B1634214549983N00624331EA0000002054 +B1634234549983N00624353EA0000002052 +B1634254549983N00624384EA0000002048 +B1634274549984N00624406EA0000002045 +B1634294549983N00624427EA0000002042 +B1634314549983N00624448EA0000002040 +B1634334549982N00624469EA0000002038 +B1634354549982N00624490EA0000002036 +B1634374549981N00624511EA0000002033 +B1634394549981N00624532EA0000002030 +B1634414549980N00624554EA0000002028 +B1634434549980N00624574EA0000002026 +B1634454549979N00624594EA0000002024 +B1634474549978N00624615EA0000002021 +B1634494549978N00624636EA0000002019 +B1634524549978N00624655EA0000002017 +B1634544549977N00624675EA0000002014 +B1634564549976N00624695EA0000002011 +B1634584549975N00624716EA0000002008 +B1635004549973N00624737EA0000002005 +B1635024549972N00624757EA0000002002 +B1635044549971N00624779EA0000001999 +B1635064549970N00624800EA0000001997 +B1635084549969N00624820EA0000001994 +B1635104549968N00624840EA0000001992 +B1635124549968N00624861EA0000001989 +B1635144549968N00624861EA0000001987 +B1635164549966N00624897EA0000001986 +B1635184549965N00624914EA0000001984 +B1635204549964N00624932EA0000001982 +B1635224549962N00624949EA0000001980 +B1635244549961N00624966EA0000001978 +B1635264549960N00624983EA0000001977 +B1635284549959N00625001EA0000001975 +B1635304549959N00625017EA0000001974 +B1635324549959N00625034EA0000001972 +B1635344549957N00625052EA0000001970 +B1635364549955N00625069EA0000001968 +B1635384549953N00625086EA0000001966 +B1635404549949N00625104EA0000001964 +B1635424549947N00625121EA0000001962 +B1635444549944N00625138EA0000001960 +B1635464549940N00625156EA0000001958 +B1635484549937N00625173EA0000001956 +B1635504549934N00625190EA0000001955 +B1635524549931N00625208EA0000001954 +B1635544549928N00625225EA0000001953 +B1635564549925N00625242EA0000001952 +B1635584549922N00625260EA0000001951 +B1636004549919N00625277EA0000001950 +B1636024549915N00625295EA0000001949 +B1636044549911N00625321EA0000001947 +B1636064549909N00625338EA0000001946 +B1636084549907N00625355EA0000001944 +B1636104549906N00625372EA0000001942 +B1636124549904N00625390EA0000001940 +B1636144549902N00625407EA0000001938 +B1636164549900N00625425EA0000001936 +B1636184549897N00625443EA0000001934 +B1636204549894N00625461EA0000001932 +B1636224549892N00625478EA0000001931 +B1636244549889N00625495EA0000001930 +B1636264549887N00625513EA0000001929 +B1636284549884N00625530EA0000001929 +B1636314549881N00625548EA0000001928 +B1636334549875N00625573EA0000001928 +B1636354549871N00625590EA0000001928 +B1636374549868N00625606EA0000001928 +B1636394549866N00625623EA0000001928 +B1636414549864N00625639EA0000001929 +B1636434549862N00625656EA0000001929 +B1636454549862N00625672EA0000001930 +B1636474549862N00625688EA0000001931 +B1636494549862N00625704EA0000001933 +B1636524549862N00625718EA0000001935 +B1636544549861N00625732EA0000001937 +B1636564549860N00625745EA0000001939 +B1636584549859N00625757EA0000001940 +B1637004549862N00625769EA0000001941 +B1637024549865N00625774EA0000001941 +B1637044549879N00625771EA0000001941 +B1637064549883N00625761EA0000001941 +B1637084549868N00625742EA0000001942 +B1637104549858N00625737EA0000001944 +B1637124549850N00625731EA0000001945 +B1637144549841N00625724EA0000001946 +B1637164549831N00625717EA0000001947 +B1637184549821N00625709EA0000001950 +B1637204549814N00625697EA0000001952 +B1637224549812N00625686EA0000001952 +B1637244549820N00625682EA0000001951 +B1637264549829N00625687EA0000001950 +B1637284549835N00625699EA0000001952 +B1637304549839N00625708EA0000001954 +B1637324549843N00625718EA0000001957 +B1637344549848N00625729EA0000001959 +B1637364549852N00625740EA0000001962 +B1637384549857N00625746EA0000001964 +B1637404549864N00625744EA0000001964 +B1637424549868N00625733EA0000001964 +B1637444549863N00625718EA0000001963 +B1637464549848N00625716EA0000001964 +B1637484549835N00625723EA0000001968 +B1637504549826N00625726EA0000001969 +B1637524549814N00625726EA0000001969 +B1637544549802N00625717EA0000001969 +B1637564549800N00625700EA0000001968 +B1637584549807N00625695EA0000001967 +B1638004549814N00625699EA0000001967 +B1638024549820N00625706EA0000001970 +B1638044549829N00625714EA0000001972 +B1638064549833N00625724EA0000001973 +B1638084549838N00625734EA0000001975 +B1638104549842N00625743EA0000001977 +B1638124549844N00625755EA0000001978 +B1638144549845N00625768EA0000001980 +B1638164549843N00625782EA0000001982 +B1638184549838N00625795EA0000001983 +B1638204549833N00625808EA0000001986 +B1638224549831N00625821EA0000001987 +B1638244549832N00625835EA0000001989 +B1638264549836N00625846EA0000001989 +B1638284549844N00625848EA0000001990 +B1638314549850N00625842EA0000001989 +B1638334549850N00625829EA0000001989 +B1638354549846N00625817EA0000001989 +B1638374549843N00625806EA0000001991 +B1638394549843N00625800EA0000001993 +B1638414549839N00625782EA0000001996 +B1638434549834N00625772EA0000001999 +B1638454549828N00625762EA0000002002 +B1638474549823N00625749EA0000002004 +B1638494549823N00625736EA0000002005 +B1638514549828N00625731EA0000002005 +B1638534549835N00625740EA0000002004 +B1638554549837N00625755EA0000002003 +B1638574549835N00625769EA0000002003 +B1638594549831N00625784EA0000002003 +B1639014549825N00625799EA0000002003 +B1639034549817N00625812EA0000002005 +B1639054549810N00625823EA0000002007 +B1639074549806N00625836EA0000002009 +B1639094549806N00625848EA0000002011 +B1639114549811N00625858EA0000002013 +B1639134549818N00625859EA0000002014 +B1639154549824N00625852EA0000002015 +B1639174549822N00625840EA0000002016 +B1639194549818N00625829EA0000002019 +B1639214549816N00625819EA0000002020 +B1639234549816N00625807EA0000002021 +B1639254549817N00625797EA0000002023 +B1639274549817N00625787EA0000002023 +B1639294549817N00625776EA0000002023 +B1639314549822N00625768EA0000002022 +B1639334549829N00625770EA0000002021 +B1639354549831N00625784EA0000002020 +B1639374549826N00625799EA0000002019 +B1639394549817N00625811EA0000002020 +B1639414549810N00625824EA0000002020 +B1639434549802N00625838EA0000002020 +B1639454549792N00625860EA0000002022 +B1639474549787N00625876EA0000002023 +B1639494549783N00625890EA0000002025 +B1639514549779N00625904EA0000002026 +B1639534549777N00625918EA0000002027 +B1639554549775N00625933EA0000002029 +B1639574549774N00625946EA0000002032 +B1639594549774N00625958EA0000002035 +B1640014549776N00625970EA0000002037 +B1640034549781N00625978EA0000002039 +B1640054549788N00625981EA0000002040 +B1640074549793N00625975EA0000002040 +B1640094549790N00625963EA0000002039 +B1640124549779N00625957EA0000002038 +B1640144549766N00625960EA0000002036 +B1640164549758N00625973EA0000002035 +B1640184549759N00625987EA0000002036 +B1640204549762N00626001EA0000002036 +B1640224549766N00626016EA0000002035 +B1640244549771N00626031EA0000002035 +B1640264549775N00626047EA0000002036 +B1640284549778N00626063EA0000002038 +B1640304549781N00626080EA0000002039 +B1640324549781N00626080EA0000002041 +B1640344549787N00626113EA0000002043 +B1640364549791N00626128EA0000002046 +B1640384549794N00626143EA0000002048 +B1640404549799N00626157EA0000002050 +B1640424549804N00626171EA0000002053 +B1640444549809N00626185EA0000002056 +B1640464549813N00626199EA0000002059 +B1640484549819N00626212EA0000002062 +B1640504549825N00626224EA0000002066 +B1640524549832N00626236EA0000002069 +B1640544549839N00626247EA0000002073 +B1640564549845N00626259EA0000002077 +B1640584549852N00626271EA0000002080 +B1641004549859N00626281EA0000002084 +B1641024549866N00626290EA0000002088 +B1641044549873N00626300EA0000002092 +B1641064549879N00626310EA0000002096 +B1641084549887N00626316EA0000002100 +B1641104549893N00626316EA0000002103 +B1641124549897N00626309EA0000002106 +B1641144549895N00626299EA0000002108 +B1641164549883N00626297EA0000002112 +B1641184549870N00626300EA0000002115 +B1641204549859N00626299EA0000002118 +B1641224549848N00626293EA0000002121 +B1641244549833N00626286EA0000002128 +B1641264549824N00626281EA0000002132 +B1641284549817N00626274EA0000002135 +B1641304549816N00626265EA0000002137 +B1641324549822N00626263EA0000002139 +B1641344549829N00626270EA0000002140 +B1641364549833N00626284EA0000002143 +B1641384549839N00626294EA0000002146 +B1641404549844N00626308EA0000002148 +B1641424549848N00626322EA0000002151 +B1641444549855N00626333EA0000002154 +B1641474549862N00626346EA0000002158 +B1641494549869N00626359EA0000002163 +B1641514549876N00626369EA0000002167 +B1641534549882N00626380EA0000002172 +B1641554549885N00626387EA0000002178 +B1641574549896N00626401EA0000002184 +B1641594549902N00626403EA0000002191 +B1642014549906N00626399EA0000002198 +B1642034549909N00626395EA0000002205 +B1642054549910N00626386EA0000002210 +B1642074549905N00626375EA0000002213 +B1642094549891N00626372EA0000002216 +B1642114549876N00626376EA0000002219 +B1642134549863N00626376EA0000002221 +B1642154549851N00626370EA0000002221 +B1642174549844N00626358EA0000002214 +B1642194549850N00626353EA0000002213 +B1642214549858N00626359EA0000002213 +B1642234549864N00626371EA0000002214 +B1642254549869N00626381EA0000002216 +B1642274549875N00626392EA0000002217 +B1642294549881N00626405EA0000002219 +B1642314549886N00626417EA0000002221 +B1642334549891N00626426EA0000002223 +B1642354549896N00626438EA0000002224 +B1642374549900N00626453EA0000002225 +B1642394549901N00626470EA0000002226 +B1642414549903N00626487EA0000002227 +B1642434549905N00626503EA0000002229 +B1642454549908N00626516EA0000002232 +B1642474549911N00626531EA0000002234 +B1642494549913N00626547EA0000002236 +B1642514549916N00626564EA0000002237 +B1642534549920N00626580EA0000002239 +B1642554549923N00626595EA0000002241 +B1642574549927N00626608EA0000002243 +B1642594549935N00626626EA0000002245 +B1643014549940N00626638EA0000002247 +B1643034549947N00626650EA0000002250 +B1643054549955N00626661EA0000002253 +B1643074549963N00626671EA0000002257 +B1643094549970N00626680EA0000002260 +B1643114549977N00626688EA0000002263 +B1643134549983N00626693EA0000002266 +B1643154549990N00626700EA0000002269 +B1643174549996N00626708EA0000002271 +B1643194550003N00626713EA0000002272 +B1643214550008N00626710EA0000002273 +B1643234550009N00626701EA0000002274 +B1643254549998N00626696EA0000002274 +B1643284549983N00626699EA0000002274 +B1643304549970N00626701EA0000002276 +B1643324549959N00626698EA0000002277 +B1643344549949N00626692EA0000002278 +B1643364549940N00626684EA0000002278 +B1643384549932N00626676EA0000002280 +B1643404549925N00626668EA0000002281 +B1643424549918N00626658EA0000002283 +B1643444549912N00626649EA0000002285 +B1643464549907N00626641EA0000002287 +B1643484549904N00626637EA0000002288 +B1643504549894N00626624EA0000002289 +B1643524549889N00626616EA0000002291 +B1643544549884N00626608EA0000002293 +B1643564549882N00626600EA0000002294 +B1643584549884N00626594EA0000002294 +B1644004549891N00626594EA0000002296 +B1644024549897N00626610EA0000002297 +B1644044549896N00626631EA0000002299 +B1644064549897N00626647EA0000002300 +B1644084549904N00626657EA0000002301 +B1644104549912N00626666EA0000002303 +B1644124549918N00626674EA0000002304 +B1644144549926N00626681EA0000002304 +B1644164549934N00626685EA0000002306 +B1644184549941N00626690EA0000002307 +B1644204549947N00626694EA0000002307 +B1644224549954N00626696EA0000002307 +B1644244549958N00626690EA0000002306 +B1644264549953N00626678EA0000002305 +B1644284549942N00626668EA0000002306 +B1644304549932N00626662EA0000002308 +B1644324549923N00626656EA0000002309 +B1644344549915N00626651EA0000002309 +B1644364549907N00626646EA0000002309 +B1644384549899N00626638EA0000002307 +B1644404549889N00626623EA0000002305 +B1644424549884N00626614EA0000002305 +B1644444549879N00626605EA0000002305 +B1644464549876N00626595EA0000002307 +B1644484549873N00626586EA0000002309 +B1644504549871N00626580EA0000002311 +B1644524549874N00626574EA0000002310 +B1644544549882N00626582EA0000002310 +B1644564549887N00626601EA0000002309 +B1644584549889N00626620EA0000002311 +B1645004549893N00626634EA0000002311 +B1645024549899N00626647EA0000002313 +B1645044549904N00626658EA0000002314 +B1645074549910N00626667EA0000002314 +B1645094549918N00626677EA0000002313 +B1645114549926N00626687EA0000002312 +B1645134549934N00626696EA0000002312 +B1645154549942N00626705EA0000002311 +B1645174549951N00626714EA0000002309 +B1645194549960N00626723EA0000002307 +B1645214549969N00626731EA0000002306 +B1645234549978N00626739EA0000002305 +B1645254549987N00626748EA0000002304 +B1645274549996N00626758EA0000002302 +B1645294550001N00626763EA0000002301 +B1645314550014N00626780EA0000002300 +B1645334550022N00626793EA0000002299 +B1645354550029N00626807EA0000002297 +B1645374550034N00626826EA0000002296 +B1645394550036N00626847EA0000002294 +B1645414550038N00626868EA0000002291 +B1645434550041N00626889EA0000002289 +B1645454550042N00626910EA0000002286 +B1645474550043N00626929EA0000002283 +B1645494550043N00626950EA0000002279 +B1645514550043N00626973EA0000002274 +B1645534550043N00626995EA0000002269 +B1645554550043N00627018EA0000002262 +B1645574550043N00627044EA0000002255 +B1645594550042N00627071EA0000002247 +B1646014550040N00627095EA0000002241 +B1646034550037N00627119EA0000002233 +B1646054550035N00627145EA0000002224 +B1646074550032N00627169EA0000002216 +B1646094550029N00627192EA0000002208 +B1646114550025N00627216EA0000002194 +B1646134550023N00627242EA0000002184 +B1646154550020N00627269EA0000002176 +B1646174550019N00627293EA0000002169 +B1646194550021N00627315EA0000002163 +B1646214550023N00627341EA0000002156 +B1646234550024N00627359EA0000002149 +B1646254550025N00627377EA0000002145 +B1646274550026N00627393EA0000002140 +B1646294550026N00627410EA0000002133 +B1646314550026N00627430EA0000002125 +B1646334550024N00627453EA0000002119 +B1646354550021N00627474EA0000002114 +B1646374550021N00627494EA0000002108 +B1646394550021N00627516EA0000002102 +B1646414550021N00627538EA0000002097 +B1646434550023N00627559EA0000002094 +B1646454550027N00627577EA0000002090 +B1646484550030N00627597EA0000002085 +B1646504550034N00627618EA0000002079 +B1646524550038N00627639EA0000002075 +B1646544550039N00627659EA0000002073 +B1646564550040N00627679EA0000002068 +B1646584550041N00627701EA0000002064 +B1647004550040N00627723EA0000002062 +B1647024550038N00627742EA0000002059 +B1647044550038N00627761EA0000002055 +B1647064550039N00627782EA0000002051 +B1647084550042N00627803EA0000002048 +B1647104550046N00627823EA0000002044 +B1647124550050N00627844EA0000002039 +B1647144550053N00627865EA0000002035 +B1647164550058N00627884EA0000002032 +B1647184550060N00627904EA0000002027 +B1647204550063N00627925EA0000002022 +B1647224550067N00627945EA0000002019 +B1647244550070N00627964EA0000002016 +B1647264550073N00627982EA0000002013 +B1647284550076N00628002EA0000002008 +B1647304550078N00628023EA0000002006 +B1647324550080N00628042EA0000002003 +B1647344550080N00628062EA0000001998 +B1647364550081N00628084EA0000001994 +B1647384550083N00628106EA0000001991 +B1647404550086N00628126EA0000001988 +B1647424550089N00628146EA0000001984 +B1647444550093N00628167EA0000001980 +B1647464550096N00628188EA0000001977 +B1647484550099N00628209EA0000001975 +B1647504550102N00628230EA0000001972 +B1647524550105N00628252EA0000001969 +B1647544550108N00628273EA0000001967 +B1647564550111N00628295EA0000001965 +B1647584550114N00628316EA0000001963 +B1648004550116N00628339EA0000001960 +B1648024550121N00628371EA0000001958 +B1648044550123N00628393EA0000001958 +B1648064550125N00628412EA0000001958 +B1648084550128N00628431EA0000001957 +B1648104550130N00628451EA0000001956 +B1648124550132N00628471EA0000001957 +B1648144550134N00628490EA0000001956 +B1648164550136N00628507EA0000001956 +B1648184550138N00628524EA0000001954 +B1648204550142N00628542EA0000001951 +B1648224550145N00628563EA0000001950 +B1648244550148N00628581EA0000001949 +B1648264550151N00628598EA0000001948 +B1648294550154N00628617EA0000001948 +B1648314550157N00628636EA0000001948 +B1648334550161N00628653EA0000001949 +B1648354550165N00628670EA0000001950 +B1648374550166N00628686EA0000001950 +B1648394550169N00628701EA0000001949 +B1648414550172N00628716EA0000001948 +B1648434550177N00628730EA0000001946 +B1648454550181N00628745EA0000001943 +B1648474550186N00628760EA0000001940 +B1648494550191N00628776EA0000001937 +B1648514550197N00628791EA0000001935 +B1648534550201N00628807EA0000001933 +B1648554550204N00628824EA0000001931 +B1648574550207N00628840EA0000001930 +B1648594550209N00628856EA0000001929 +B1649014550210N00628872EA0000001929 +B1649034550210N00628887EA0000001929 +B1649054550209N00628903EA0000001931 +B1649074550208N00628917EA0000001932 +B1649094550206N00628930EA0000001933 +B1649114550204N00628942EA0000001933 +B1649134550202N00628955EA0000001933 +B1649154550199N00628970EA0000001933 +B1649174550197N00628983EA0000001934 +B1649194550195N00628996EA0000001933 +B1649214550191N00629010EA0000001934 +B1649234550187N00629022EA0000001935 +B1649254550184N00629034EA0000001935 +B1649274550181N00629047EA0000001935 +B1649294550177N00629060EA0000001936 +B1649314550172N00629072EA0000001934 +B1649334550168N00629086EA0000001932 +B1649354550164N00629101EA0000001931 +B1649374550161N00629112EA0000001929 +B1649394550159N00629123EA0000001927 +B1649414550153N00629142EA0000001926 +B1649434550151N00629150EA0000001927 +B1649454550148N00629160EA0000001927 +B1649474550143N00629171EA0000001927 +B1649494550134N00629173EA0000001929 +B1649514550128N00629166EA0000001929 +B1649534550127N00629152EA0000001929 +B1649554550135N00629142EA0000001928 +B1649574550149N00629147EA0000001928 +B1649594550156N00629158EA0000001931 +B1650014550160N00629170EA0000001933 +B1650034550163N00629185EA0000001935 +B1650054550163N00629198EA0000001938 +B1650074550160N00629208EA0000001939 +B1650104550157N00629217EA0000001940 +B1650124550153N00629226EA0000001940 +B1650144550148N00629236EA0000001939 +B1650164550141N00629242EA0000001939 +B1650184550136N00629247EA0000001939 +B1650204550131N00629253EA0000001939 +B1650224550125N00629262EA0000001938 +B1650244550120N00629271EA0000001939 +B1650264550117N00629278EA0000001938 +B1650284550114N00629286EA0000001937 +B1650304550111N00629296EA0000001935 +B1650324550107N00629307EA0000001935 +B1650344550104N00629317EA0000001935 +B1650364550101N00629327EA0000001933 +B1650384550098N00629337EA0000001933 +B1650404550093N00629346EA0000001933 +B1650424550088N00629355EA0000001933 +B1650444550085N00629366EA0000001934 +B1650464550081N00629378EA0000001935 +B1650484550078N00629388EA0000001936 +B1650504550075N00629398EA0000001938 +B1650524550072N00629408EA0000001940 +B1650544550069N00629418EA0000001943 +B1650564550066N00629426EA0000001946 +B1650584550061N00629431EA0000001948 +B1651004550056N00629434EA0000001950 +B1651024550051N00629428EA0000001951 +B1651044550050N00629414EA0000001953 +B1651064550055N00629401EA0000001955 +B1651084550066N00629395EA0000001956 +B1651104550079N00629398EA0000001957 +B1651124550088N00629409EA0000001958 +B1651144550092N00629424EA0000001960 +B1651164550090N00629436EA0000001961 +B1651184550087N00629446EA0000001963 +B1651204550086N00629456EA0000001963 +B1651224550081N00629472EA0000001964 +B1651244550079N00629482EA0000001966 +B1651264550079N00629493EA0000001966 +B1651284550076N00629504EA0000001967 +B1651304550072N00629513EA0000001968 +B1651324550070N00629523EA0000001968 +B1651344550067N00629536EA0000001966 +B1651364550064N00629549EA0000001967 +B1651384550063N00629563EA0000001966 +B1651404550063N00629578EA0000001965 +B1651424550063N00629593EA0000001965 +B1651444550060N00629605EA0000001964 +B1651464550057N00629619EA0000001963 +B1651484550054N00629634EA0000001960 +B1651514550051N00629650EA0000001957 +B1651534550049N00629667EA0000001955 +B1651554550049N00629683EA0000001952 +B1651574550050N00629699EA0000001948 +B1651594550051N00629717EA0000001946 +B1652014550051N00629734EA0000001945 +B1652034550051N00629749EA0000001943 +B1652054550051N00629764EA0000001941 +B1652074550050N00629780EA0000001940 +B1652094550050N00629787EA0000001938 +B1652114550049N00629802EA0000001937 +B1652134550047N00629825EA0000001935 +B1652154550047N00629841EA0000001934 +B1652174550046N00629856EA0000001934 +B1652194550045N00629871EA0000001934 +B1652214550043N00629886EA0000001932 +B1652234550040N00629901EA0000001930 +B1652254550038N00629916EA0000001928 +B1652274550036N00629930EA0000001926 +B1652294550033N00629944EA0000001923 +B1652314550031N00629960EA0000001920 +B1652334550028N00629975EA0000001917 +B1652354550024N00629991EA0000001913 +B1652374550021N00630009EA0000001908 +B1652394550017N00630028EA0000001904 +B1652414550013N00630047EA0000001900 +B1652434550010N00630067EA0000001898 +B1652454550006N00630085EA0000001895 +B1652474550002N00630103EA0000001892 +B1652494550000N00630122EA0000001890 +B1652514549998N00630141EA0000001888 +B1652534549996N00630160EA0000001885 +B1652554549993N00630179EA0000001882 +B1652574549991N00630199EA0000001880 +B1652594549989N00630218EA0000001878 +B1653014549987N00630238EA0000001876 +B1653034549984N00630268EA0000001873 +B1653054549983N00630287EA0000001871 +B1653074549980N00630307EA0000001868 +B1653094549978N00630327EA0000001867 +B1653114549975N00630345EA0000001866 +B1653134549973N00630364EA0000001864 +B1653154549970N00630385EA0000001862 +B1653174549967N00630404EA0000001862 +B1653194549963N00630422EA0000001861 +B1653214549960N00630441EA0000001859 +B1653234549957N00630461EA0000001857 +B1653254549954N00630481EA0000001857 +B1653274549952N00630501EA0000001857 +B1653304549949N00630520EA0000001858 +B1653324549947N00630536EA0000001859 +B1653344549944N00630551EA0000001859 +B1653364549942N00630567EA0000001859 +B1653384549941N00630584EA0000001860 +B1653404549940N00630599EA0000001860 +B1653424549939N00630615EA0000001859 +B1653444549937N00630632EA0000001860 +B1653464549936N00630639EA0000001859 +B1653484549934N00630663EA0000001857 +B1653504549932N00630681EA0000001857 +B1653524549931N00630698EA0000001859 +B1653544549930N00630713EA0000001862 +B1653564549931N00630728EA0000001865 +B1653584549931N00630743EA0000001867 +B1654004549930N00630756EA0000001871 +B1654024549930N00630767EA0000001873 +B1654044549929N00630779EA0000001875 +B1654064549928N00630792EA0000001877 +B1654084549922N00630801EA0000001879 +B1654104549912N00630803EA0000001880 +B1654124549903N00630791EA0000001880 +B1654144549901N00630775EA0000001881 +B1654164549908N00630765EA0000001883 +B1654184549918N00630765EA0000001885 +B1654204549926N00630772EA0000001887 +B1654224549932N00630781EA0000001887 +B1654244549936N00630794EA0000001889 +B1654264549938N00630806EA0000001892 +B1654284549939N00630818EA0000001893 +B1654304549940N00630832EA0000001895 +B1654324549942N00630843EA0000001898 +B1654344549943N00630855EA0000001900 +B1654364549944N00630869EA0000001901 +B1654384549945N00630882EA0000001903 +B1654404549944N00630894EA0000001906 +B1654424549940N00630905EA0000001907 +B1654444549928N00630913EA0000001908 +B1654464549920N00630906EA0000001908 +B1654484549917N00630891EA0000001907 +B1654504549921N00630879EA0000001907 +B1654524549929N00630878EA0000001907 +B1654544549937N00630882EA0000001908 +B1654564549942N00630892EA0000001909 +B1654584549945N00630904EA0000001909 +B1655004549947N00630917EA0000001911 +B1655024549948N00630930EA0000001914 +B1655044549949N00630942EA0000001918 +B1655064549951N00630954EA0000001924 +B1655084549953N00630967EA0000001929 +B1655114549954N00630981EA0000001934 +B1655134549953N00630994EA0000001939 +B1655154549946N00631006EA0000001944 +B1655174549936N00631011EA0000001949 +B1655194549928N00631005EA0000001953 +B1655214549925N00630991EA0000001957 +B1655234549925N00630985EA0000001961 +B1655254549935N00630975EA0000001963 +B1655274549945N00630980EA0000001966 +B1655294549949N00630992EA0000001971 +B1655314549953N00631004EA0000001974 +B1655334549955N00631019EA0000001976 +B1655354549951N00631034EA0000001979 +B1655374549941N00631045EA0000001981 +B1655394549930N00631043EA0000001984 +B1655414549924N00631032EA0000001987 +B1655434549925N00631019EA0000001991 +B1655454549931N00631013EA0000001994 +B1655474549940N00631017EA0000001998 +B1655494549945N00631032EA0000002002 +B1655514549944N00631048EA0000002005 +B1655534549936N00631061EA0000002007 +B1655554549923N00631066EA0000002010 +B1655574549911N00631060EA0000002014 +B1655594549905N00631046EA0000002018 +B1656014549906N00631034EA0000002021 +B1656034549914N00631030EA0000002024 +B1656054549921N00631036EA0000002026 +B1656074549925N00631048EA0000002029 +B1656094549926N00631061EA0000002032 +B1656114549928N00631074EA0000002035 +B1656134549928N00631089EA0000002039 +B1656154549926N00631103EA0000002044 +B1656174549923N00631113EA0000002048 +B1656194549920N00631125EA0000002051 +B1656214549913N00631137EA0000002055 +B1656234549898N00631136EA0000002063 +B1656254549892N00631126EA0000002068 +B1656274549890N00631113EA0000002073 +B1656294549895N00631103EA0000002076 +B1656314549903N00631099EA0000002080 +B1656334549910N00631104EA0000002083 +B1656354549914N00631114EA0000002087 +B1656374549919N00631126EA0000002092 +B1656394549922N00631137EA0000002098 +B1656414549922N00631151EA0000002102 +B1656434549916N00631165EA0000002105 +B1656454549904N00631172EA0000002109 +B1656474549891N00631162EA0000002114 +B1656504549887N00631149EA0000002118 +B1656524549890N00631135EA0000002122 +B1656544549900N00631128EA0000002127 +B1656564549910N00631132EA0000002132 +B1656584549916N00631140EA0000002139 +B1657004549917N00631144EA0000002144 +B1657024549922N00631160EA0000002149 +B1657044549924N00631173EA0000002154 +B1657064549921N00631188EA0000002158 +B1657084549912N00631200EA0000002162 +B1657104549898N00631204EA0000002166 +B1657124549887N00631196EA0000002172 +B1657144549884N00631181EA0000002177 +B1657164549888N00631168EA0000002182 +B1657184549898N00631164EA0000002188 +B1657204549906N00631168EA0000002195 +B1657224549911N00631177EA0000002202 +B1657244549913N00631188EA0000002207 +B1657264549912N00631202EA0000002211 +B1657284549907N00631215EA0000002214 +B1657304549899N00631228EA0000002217 +B1657324549888N00631239EA0000002218 +B1657344549876N00631236EA0000002221 +B1657364549868N00631222EA0000002225 +B1657384549869N00631209EA0000002228 +B1657404549875N00631200EA0000002232 +B1657424549884N00631201EA0000002236 +B1657444549892N00631211EA0000002241 +B1657464549894N00631227EA0000002246 +B1657484549892N00631243EA0000002248 +B1657504549886N00631257EA0000002249 +B1657524549876N00631268EA0000002250 +B1657544549864N00631275EA0000002253 +B1657564549852N00631273EA0000002256 +B1657584549842N00631265EA0000002260 +B1658004549835N00631247EA0000002267 +B1658024549834N00631234EA0000002271 +B1658044549838N00631222EA0000002273 +B1658064549845N00631212EA0000002274 +B1658084549856N00631208EA0000002277 +B1658104549863N00631216EA0000002280 +B1658124549867N00631225EA0000002285 +B1658144549868N00631235EA0000002289 +B1658164549867N00631249EA0000002290 +B1658184549861N00631265EA0000002293 +B1658204549846N00631272EA0000002294 +B1658224549833N00631265EA0000002297 +B1658244549827N00631251EA0000002299 +B1658264549826N00631238EA0000002300 +B1658294549830N00631225EA0000002301 +B1658314549839N00631218EA0000002302 +B1658334549848N00631219EA0000002305 +B1658354549853N00631222EA0000002307 +B1658374549855N00631223EA0000002309 +B1658394549862N00631227EA0000002308 +B1658414549868N00631232EA0000002309 +B1658434549872N00631242EA0000002310 +B1658454549876N00631251EA0000002312 +B1658474549882N00631258EA0000002313 +B1658494549890N00631265EA0000002316 +B1658514549897N00631271EA0000002320 +B1658534549905N00631275EA0000002323 +B1658554549913N00631281EA0000002325 +B1658574549921N00631281EA0000002328 +B1658594549929N00631274EA0000002331 +B1659014549933N00631265EA0000002334 +B1659034549935N00631254EA0000002337 +B1659054549934N00631241EA0000002338 +B1659074549927N00631230EA0000002337 +B1659094549912N00631225EA0000002336 +B1659114549900N00631230EA0000002335 +B1659134549891N00631242EA0000002335 +B1659154549885N00631258EA0000002334 +B1659174549882N00631275EA0000002336 +B1659194549884N00631290EA0000002337 +B1659214549891N00631301EA0000002340 +B1659234549899N00631308EA0000002344 +B1659254549907N00631315EA0000002346 +B1659274549915N00631320EA0000002348 +B1659294549923N00631325EA0000002349 +B1659314549930N00631327EA0000002349 +B1659334549939N00631328EA0000002348 +B1659354549949N00631330EA0000002348 +B1659374549957N00631331EA0000002348 +B1659394549970N00631331EA0000002349 +B1659414549979N00631329EA0000002350 +B1659434549987N00631327EA0000002351 +B1659454549994N00631327EA0000002352 +B1659474550003N00631326EA0000002352 +B1659494550011N00631326EA0000002352 +B1659514550017N00631327EA0000002352 +B1659534550024N00631330EA0000002351 +B1659554550029N00631337EA0000002349 +B1659574550032N00631347EA0000002347 +B1659594550031N00631360EA0000002345 +B1700014550026N00631372EA0000002343 +B1700034550022N00631386EA0000002340 +B1700064550015N00631399EA0000002338 +B1700084550005N00631409EA0000002335 +B1700104549995N00631423EA0000002332 +B1700124549985N00631436EA0000002330 +B1700144549981N00631441EA0000002330 +B1700164549968N00631458EA0000002329 +B1700184549960N00631471EA0000002329 +B1700204549953N00631483EA0000002329 +B1700224549947N00631496EA0000002329 +B1700244549941N00631510EA0000002328 +B1700264549936N00631526EA0000002328 +B1700284549931N00631541EA0000002328 +B1700304549927N00631555EA0000002329 +B1700324549924N00631571EA0000002327 +B1700344549920N00631588EA0000002327 +B1700364549916N00631603EA0000002326 +B1700384549913N00631618EA0000002325 +B1700404549910N00631635EA0000002324 +B1700424549907N00631651EA0000002323 +B1700444549905N00631667EA0000002322 +B1700464549902N00631683EA0000002321 +B1700484549901N00631699EA0000002320 +B1700504549899N00631716EA0000002320 +B1700524549896N00631733EA0000002319 +B1700544549892N00631750EA0000002318 +B1700564549887N00631767EA0000002317 +B1700584549883N00631786EA0000002315 +B1701004549878N00631806EA0000002314 +B1701024549873N00631826EA0000002313 +B1701044549869N00631845EA0000002312 +B1701064549866N00631865EA0000002310 +B1701084549861N00631885EA0000002310 +B1701104549858N00631905EA0000002310 +B1701124549855N00631924EA0000002309 +B1701144549851N00631944EA0000002307 +B1701164549848N00631966EA0000002307 +B1701184549843N00631991EA0000002309 +B1701204549840N00632006EA0000002308 +B1701224549837N00632022EA0000002307 +B1701244549833N00632037EA0000002307 +B1701264549830N00632054EA0000002305 +B1701284549827N00632073EA0000002303 +B1701304549822N00632091EA0000002302 +B1701324549818N00632109EA0000002299 +B1701344549812N00632129EA0000002297 +B1701364549807N00632149EA0000002296 +B1701384549802N00632170EA0000002296 +B1701404549798N00632190EA0000002295 +B1701424549793N00632210EA0000002293 +B1701454549789N00632231EA0000002292 +B1701474549784N00632252EA0000002290 +B1701494549779N00632273EA0000002288 +B1701514549773N00632294EA0000002286 +B1701534549767N00632313EA0000002285 +B1701554549760N00632333EA0000002282 +B1701574549753N00632353EA0000002279 +B1701594549747N00632373EA0000002277 +B1702014549742N00632394EA0000002275 +B1702034549736N00632414EA0000002273 +B1702054549729N00632434EA0000002270 +B1702074549726N00632445EA0000002268 +B1702094549716N00632476EA0000002267 +B1702114549708N00632496EA0000002265 +B1702134549701N00632516EA0000002263 +B1702154549694N00632537EA0000002260 +B1702174549687N00632558EA0000002260 +B1702194549682N00632578EA0000002258 +B1702214549677N00632598EA0000002255 +B1702234549671N00632619EA0000002252 +B1702254549666N00632640EA0000002252 +B1702274549660N00632659EA0000002250 +B1702294549652N00632679EA0000002248 +B1702314549645N00632698EA0000002247 +B1702334549639N00632717EA0000002245 +B1702354549633N00632737EA0000002244 +B1702374549627N00632756EA0000002243 +B1702394549621N00632774EA0000002242 +B1702414549615N00632793EA0000002240 +B1702434549608N00632813EA0000002237 +B1702454549600N00632833EA0000002235 +B1702474549592N00632851EA0000002234 +B1702494549583N00632870EA0000002232 +B1702514549575N00632889EA0000002230 +B1702534549567N00632908EA0000002229 +B1702554549560N00632927EA0000002227 +B1702574549554N00632947EA0000002225 +B1702594549543N00632975EA0000002224 +B1703014549536N00632993EA0000002222 +B1703034549529N00633012EA0000002220 +B1703054549522N00633032EA0000002219 +B1703074549516N00633051EA0000002218 +B1703094549510N00633070EA0000002214 +B1703114549504N00633090EA0000002211 +B1703134549498N00633110EA0000002208 +B1703154549492N00633128EA0000002205 +B1703174549486N00633146EA0000002200 +B1703194549480N00633165EA0000002195 +B1703214549474N00633185EA0000002192 +B1703234549468N00633202EA0000002190 +B1703264549461N00633219EA0000002186 +B1703284549455N00633237EA0000002182 +B1703304549449N00633255EA0000002179 +B1703324549443N00633271EA0000002175 +B1703344549437N00633289EA0000002171 +B1703364549431N00633308EA0000002166 +B1703384549425N00633328EA0000002161 +B1703404549418N00633347EA0000002158 +B1703424549411N00633367EA0000002156 +B1703444549404N00633385EA0000002155 +B1703464549396N00633403EA0000002154 +B1703484549388N00633422EA0000002154 +B1703504549381N00633441EA0000002154 +B1703524549373N00633458EA0000002155 +B1703544549365N00633475EA0000002156 +B1703564549359N00633491EA0000002158 +B1703584549353N00633503EA0000002160 +B1704004549346N00633515EA0000002160 +B1704024549339N00633528EA0000002162 +B1704044549332N00633541EA0000002165 +B1704064549325N00633553EA0000002169 +B1704084549319N00633563EA0000002175 +B1704104549314N00633570EA0000002178 +B1704124549304N00633577EA0000002181 +B1704144549293N00633575EA0000002185 +B1704164549287N00633562EA0000002187 +B1704184549285N00633547EA0000002190 +B1704204549292N00633539EA0000002193 +B1704224549303N00633544EA0000002197 +B1704244549307N00633558EA0000002200 +B1704264549305N00633574EA0000002204 +B1704284549301N00633587EA0000002208 +B1704304549294N00633600EA0000002212 +B1704324549288N00633613EA0000002218 +B1704344549284N00633625EA0000002225 +B1704364549278N00633635EA0000002232 +B1704384549269N00633651EA0000002241 +B1704404549260N00633659EA0000002245 +B1704424549250N00633660EA0000002250 +B1704444549241N00633649EA0000002254 +B1704464549238N00633634EA0000002259 +B1704484549243N00633622EA0000002264 +B1704504549255N00633625EA0000002268 +B1704524549262N00633639EA0000002273 +B1704544549260N00633653EA0000002279 +B1704564549254N00633665EA0000002285 +B1704584549248N00633676EA0000002290 +B1705004549241N00633688EA0000002295 +B1705024549232N00633697EA0000002301 +B1705044549221N00633701EA0000002307 +B1705074549211N00633697EA0000002312 +B1705094549205N00633687EA0000002317 +B1705114549204N00633673EA0000002321 +B1705134549208N00633662EA0000002325 +B1705154549216N00633659EA0000002329 +B1705174549222N00633667EA0000002333 +B1705194549224N00633680EA0000002338 +B1705214549222N00633694EA0000002344 +B1705234549216N00633706EA0000002349 +B1705254549207N00633713EA0000002354 +B1705274549198N00633714EA0000002359 +B1705294549189N00633707EA0000002363 +B1705314549184N00633695EA0000002366 +B1705334549185N00633681EA0000002369 +B1705354549191N00633672EA0000002372 +B1705374549199N00633672EA0000002375 +B1705394549206N00633681EA0000002378 +B1705414549208N00633695EA0000002382 +B1705434549204N00633708EA0000002386 +B1705454549199N00633719EA0000002390 +B1705474549192N00633728EA0000002394 +B1705494549182N00633731EA0000002397 +B1705514549172N00633726EA0000002400 +B1705534549165N00633716EA0000002403 +B1705554549162N00633702EA0000002404 +B1705574549165N00633689EA0000002406 +B1705594549170N00633678EA0000002407 +B1706014549171N00633668EA0000002410 +B1706034549169N00633655EA0000002412 +B1706054549164N00633644EA0000002414 +B1706074549153N00633638EA0000002416 +B1706094549142N00633638EA0000002417 +B1706114549132N00633641EA0000002419 +B1706134549122N00633646EA0000002421 +B1706154549112N00633650EA0000002422 +B1706174549103N00633656EA0000002423 +B1706194549091N00633670EA0000002421 +B1706214549083N00633680EA0000002420 +B1706234549075N00633689EA0000002419 +B1706254549067N00633700EA0000002417 +B1706274549059N00633712EA0000002415 +B1706294549051N00633726EA0000002413 +B1706314549042N00633740EA0000002411 +B1706334549035N00633754EA0000002411 +B1706354549027N00633768EA0000002410 +B1706374549020N00633782EA0000002410 +B1706394549013N00633797EA0000002410 +B1706414549007N00633814EA0000002410 +B1706434549000N00633832EA0000002409 +B1706454548993N00633849EA0000002409 +B1706484548986N00633863EA0000002411 +B1706504548980N00633878EA0000002413 +B1706524548972N00633891EA0000002416 +B1706544548962N00633898EA0000002419 +B1706564548950N00633898EA0000002421 +B1706584548940N00633886EA0000002423 +B1707004548940N00633870EA0000002423 +B1707024548950N00633866EA0000002423 +B1707044548957N00633877EA0000002425 +B1707064548957N00633894EA0000002426 +B1707084548951N00633910EA0000002429 +B1707104548945N00633926EA0000002430 +B1707124548939N00633944EA0000002432 +B1707144548932N00633961EA0000002434 +B1707164548926N00633977EA0000002437 +B1707184548919N00633993EA0000002440 +B1707204548912N00634009EA0000002443 +B1707224548906N00634026EA0000002447 +B1707244548901N00634042EA0000002453 +B1707264548896N00634057EA0000002457 +B1707284548889N00634072EA0000002461 +B1707304548880N00634081EA0000002465 +B1707324548869N00634084EA0000002468 +B1707344548859N00634078EA0000002470 +B1707364548854N00634064EA0000002472 +B1707384548858N00634048EA0000002475 +B1707404548869N00634044EA0000002477 +B1707424548878N00634054EA0000002480 +B1707444548879N00634072EA0000002483 +B1707464548874N00634089EA0000002486 +B1707484548868N00634104EA0000002489 +B1707504548862N00634120EA0000002492 +B1707524548856N00634135EA0000002496 +B1707544548850N00634149EA0000002499 +B1707564548844N00634163EA0000002502 +B1707584548829N00634176EA0000002506 +B1708004548816N00634171EA0000002508 +B1708024548809N00634158EA0000002511 +B1708044548811N00634144EA0000002512 +B1708064548821N00634138EA0000002514 +B1708084548830N00634146EA0000002515 +B1708104548833N00634161EA0000002517 +B1708124548829N00634177EA0000002520 +B1708144548822N00634188EA0000002524 +B1708164548817N00634199EA0000002528 +B1708184548810N00634212EA0000002532 +B1708204548802N00634224EA0000002536 +B1708224548792N00634229EA0000002540 +B1708254548783N00634224EA0000002543 +B1708274548778N00634214EA0000002545 +B1708294548781N00634200EA0000002548 +B1708314548792N00634195EA0000002551 +B1708334548801N00634206EA0000002554 +B1708354548802N00634222EA0000002559 +B1708374548797N00634238EA0000002564 +B1708394548787N00634249EA0000002569 +B1708414548775N00634254EA0000002575 +B1708434548764N00634248EA0000002581 +B1708454548758N00634236EA0000002586 +B1708474548758N00634222EA0000002591 +B1708494548767N00634216EA0000002595 +B1708514548777N00634222EA0000002599 +B1708534548781N00634237EA0000002604 +B1708554548779N00634252EA0000002610 +B1708574548774N00634266EA0000002616 +B1708594548766N00634277EA0000002622 +B1709014548755N00634284EA0000002628 +B1709034548743N00634285EA0000002634 +B1709054548734N00634276EA0000002639 +B1709074548730N00634263EA0000002644 +B1709094548734N00634252EA0000002648 +B1709114548743N00634247EA0000002652 +B1709134548751N00634255EA0000002656 +B1709154548754N00634270EA0000002660 +B1709174548752N00634284EA0000002666 +B1709194548748N00634296EA0000002672 +B1709214548743N00634308EA0000002678 +B1709234548738N00634322EA0000002682 +B1709254548735N00634337EA0000002687 +B1709274548733N00634352EA0000002689 +B1709294548728N00634368EA0000002692 +B1709314548726N00634384EA0000002694 +B1709334548724N00634399EA0000002697 +B1709354548723N00634419EA0000002698 +B1709374548723N00634442EA0000002698 +B1709394548725N00634472EA0000002701 +B1709414548725N00634491EA0000002702 +B1709434548727N00634513EA0000002703 +B1709454548730N00634532EA0000002704 +B1709474548733N00634549EA0000002706 +B1709494548738N00634566EA0000002706 +B1709514548745N00634586EA0000002706 +B1709534548751N00634606EA0000002707 +B1709554548756N00634624EA0000002709 +B1709574548762N00634641EA0000002709 +B1709594548769N00634660EA0000002709 +B1710014548778N00634680EA0000002708 +B1710034548787N00634696EA0000002708 +B1710064548795N00634713EA0000002707 +B1710084548802N00634733EA0000002705 +B1710104548810N00634753EA0000002703 +B1710124548816N00634772EA0000002701 +B1710144548824N00634790EA0000002700 +B1710164548832N00634808EA0000002697 +B1710184548841N00634827EA0000002694 +B1710204548849N00634845EA0000002691 +B1710224548856N00634862EA0000002688 +B1710244548865N00634879EA0000002684 +B1710264548873N00634897EA0000002680 +B1710284548873N00634897EA0000002673 +B1710304548890N00634932EA0000002670 +B1710324548898N00634948EA0000002666 +B1710344548906N00634966EA0000002663 +B1710364548915N00634981EA0000002661 +B1710384548924N00634996EA0000002659 +B1710404548934N00635010EA0000002657 +B1710424548944N00635023EA0000002654 +B1710444548953N00635037EA0000002652 +B1710464548962N00635052EA0000002650 +B1710484548971N00635067EA0000002647 +B1710504548981N00635081EA0000002645 +B1710524548990N00635094EA0000002642 +B1710544549001N00635106EA0000002639 +B1710564549011N00635119EA0000002637 +B1710584549021N00635133EA0000002634 +B1711004549031N00635145EA0000002630 +B1711024549042N00635159EA0000002627 +B1711044549051N00635174EA0000002624 +B1711064549060N00635187EA0000002622 +B1711084549070N00635200EA0000002619 +B1711104549080N00635214EA0000002615 +B1711124549090N00635229EA0000002613 +B1711144549099N00635243EA0000002611 +B1711164549107N00635258EA0000002607 +B1711184549118N00635285EA0000002604 +B1711204549127N00635300EA0000002601 +B1711224549135N00635315EA0000002598 +B1711244549144N00635329EA0000002595 +B1711264549154N00635343EA0000002591 +B1711284549163N00635357EA0000002588 +B1711304549171N00635373EA0000002584 +B1711324549180N00635388EA0000002580 +B1711344549189N00635405EA0000002577 +B1711364549196N00635421EA0000002574 +B1711384549205N00635436EA0000002571 +B1711404549213N00635451EA0000002568 +B1711424549220N00635469EA0000002564 +B1711444549224N00635488EA0000002561 +B1711474549228N00635507EA0000002558 +B1711494549231N00635527EA0000002555 +B1711514549233N00635547EA0000002552 +B1711534549234N00635567EA0000002549 +B1711554549236N00635587EA0000002546 +B1711574549238N00635608EA0000002543 +B1711594549240N00635628EA0000002540 +B1712014549241N00635649EA0000002537 +B1712034549243N00635669EA0000002534 +B1712054549244N00635679EA0000002532 +B1712074549248N00635708EA0000002530 +B1712094549252N00635726EA0000002527 +B1712114549255N00635744EA0000002524 +B1712134549258N00635763EA0000002521 +B1712154549262N00635782EA0000002518 +B1712174549266N00635800EA0000002515 +B1712194549269N00635819EA0000002512 +B1712214549273N00635838EA0000002508 +B1712234549277N00635857EA0000002506 +B1712254549283N00635874EA0000002503 +B1712274549290N00635890EA0000002500 +B1712294549297N00635907EA0000002497 +B1712314549304N00635923EA0000002495 +B1712334549311N00635939EA0000002491 +B1712354549318N00635955EA0000002487 +B1712374549325N00635972EA0000002484 +B1712394549333N00635986EA0000002481 +B1712414549343N00635999EA0000002478 +B1712434549352N00636012EA0000002475 +B1712454549363N00636024EA0000002471 +B1712474549373N00636036EA0000002468 +B1712494549383N00636051EA0000002465 +B1712514549392N00636066EA0000002463 +B1712534549402N00636080EA0000002461 +B1712554549412N00636094EA0000002458 +B1712574549423N00636106EA0000002454 +B1712594549440N00636126EA0000002451 +B1713014549448N00636140EA0000002448 +B1713034549456N00636154EA0000002445 +B1713054549466N00636168EA0000002442 +B1713074549476N00636181EA0000002440 +B1713094549485N00636195EA0000002437 +B1713114549493N00636210EA0000002434 +B1713134549502N00636225EA0000002431 +B1713154549510N00636241EA0000002428 +B1713174549518N00636257EA0000002425 +B1713194549527N00636271EA0000002421 +B1713214549537N00636285EA0000002418 +B1713234549546N00636299EA0000002414 +B1713254549556N00636313EA0000002411 +B1713284549565N00636326EA0000002407 +B1713304549575N00636339EA0000002404 +B1713324549584N00636355EA0000002401 +B1713344549591N00636372EA0000002397 +B1713364549598N00636389EA0000002394 +B1713384549604N00636408EA0000002390 +B1713404549609N00636427EA0000002387 +B1713424549612N00636436EA0000002384 +B1713444549622N00636462EA0000002381 +B1713464549628N00636481EA0000002378 +B1713484549635N00636499EA0000002375 +B1713504549641N00636518EA0000002373 +B1713524549645N00636538EA0000002370 +B1713544549651N00636557EA0000002368 +B1713564549657N00636575EA0000002365 +B1713584549663N00636594EA0000002362 +B1714004549669N00636613EA0000002360 +B1714024549675N00636631EA0000002357 +B1714044549680N00636651EA0000002354 +B1714064549686N00636670EA0000002351 +B1714084549693N00636688EA0000002348 +B1714104549700N00636707EA0000002346 +B1714124549706N00636726EA0000002343 +B1714144549713N00636745EA0000002341 +B1714164549719N00636763EA0000002339 +B1714184549726N00636782EA0000002337 +B1714204549733N00636801EA0000002334 +B1714224549739N00636820EA0000002332 +B1714244549746N00636839EA0000002329 +B1714264549753N00636858EA0000002327 +B1714284549760N00636876EA0000002325 +B1714304549767N00636895EA0000002323 +B1714324549774N00636913EA0000002321 +B1714344549781N00636931EA0000002319 +B1714364549789N00636948EA0000002317 +B1714384549796N00636967EA0000002314 +B1714404549807N00636994EA0000002311 +B1714424549815N00637012EA0000002308 +B1714444549823N00637029EA0000002305 +B1714464549831N00637047EA0000002303 +B1714484549840N00637065EA0000002300 +B1714504549849N00637081EA0000002299 +B1714524549857N00637098EA0000002296 +B1714544549865N00637115EA0000002294 +B1714564549873N00637132EA0000002292 +B1714584549881N00637148EA0000002289 +B1715004549888N00637165EA0000002287 +B1715024549896N00637181EA0000002284 +B1715044549903N00637199EA0000002281 +B1715064549910N00637216EA0000002278 +B1715094549917N00637233EA0000002274 +B1715114549925N00637250EA0000002271 +B1715134549933N00637267EA0000002268 +B1715154549940N00637284EA0000002265 +B1715174549949N00637300EA0000002262 +B1715194549953N00637308EA0000002258 +B1715214549966N00637332EA0000002255 +B1715234549974N00637348EA0000002253 +B1715254549983N00637365EA0000002250 +B1715274549990N00637382EA0000002248 +B1715294549999N00637397EA0000002246 +B1715314550008N00637412EA0000002243 +B1715334550016N00637428EA0000002241 +B1715354550025N00637444EA0000002239 +B1715374550033N00637460EA0000002237 +B1715394550041N00637476EA0000002234 +B1715414550048N00637494EA0000002232 +B1715434550055N00637512EA0000002230 +B1715454550062N00637529EA0000002229 +B1715474550069N00637546EA0000002227 +B1715494550075N00637563EA0000002225 +B1715514550082N00637581EA0000002222 +B1715534550087N00637599EA0000002220 +B1715554550093N00637618EA0000002217 +B1715574550098N00637637EA0000002215 +B1715594550103N00637655EA0000002213 +B1716014550109N00637673EA0000002211 +B1716034550115N00637691EA0000002208 +B1716054550122N00637710EA0000002206 +B1716074550128N00637727EA0000002204 +B1716094550134N00637746EA0000002200 +B1716114550139N00637765EA0000002197 +B1716134550146N00637783EA0000002194 +B1716154550152N00637802EA0000002191 +B1716174550158N00637820EA0000002188 +B1716194550164N00637837EA0000002185 +B1716214550172N00637864EA0000002180 +B1716234550178N00637883EA0000002177 +B1716254550183N00637902EA0000002175 +B1716274550189N00637921EA0000002174 +B1716294550194N00637939EA0000002172 +B1716314550200N00637957EA0000002170 +B1716334550206N00637975EA0000002168 +B1716354550212N00637993EA0000002165 +B1716374550219N00638012EA0000002163 +B1716394550227N00638029EA0000002162 +B1716414550234N00638046EA0000002160 +B1716434550240N00638064EA0000002157 +B1716454550246N00638083EA0000002156 +B1716484550253N00638099EA0000002154 +B1716504550260N00638115EA0000002152 +B1716524550267N00638133EA0000002150 +B1716544550275N00638150EA0000002148 +B1716564550280N00638158EA0000002146 +B1716584550292N00638182EA0000002142 +B1717004550300N00638201EA0000002138 +B1717024550306N00638220EA0000002136 +B1717044550312N00638238EA0000002132 +B1717064550319N00638257EA0000002128 +B1717084550327N00638275EA0000002126 +B1717104550334N00638290EA0000002123 +B1717124550341N00638307EA0000002119 +B1717144550348N00638324EA0000002114 +B1717164550354N00638343EA0000002111 +B1717184550359N00638362EA0000002109 +B1717204550365N00638381EA0000002106 +B1717224550369N00638400EA0000002102 +B1717244550374N00638419EA0000002099 +B1717264550379N00638437EA0000002096 +B1717284550386N00638456EA0000002093 +B1717304550392N00638473EA0000002091 +B1717324550397N00638491EA0000002088 +B1717344550402N00638508EA0000002085 +B1717364550407N00638527EA0000002081 +B1717384550413N00638545EA0000002078 +B1717404550419N00638564EA0000002074 +B1717424550424N00638582EA0000002072 +B1717444550430N00638600EA0000002069 +B1717464550435N00638619EA0000002066 +B1717484550439N00638639EA0000002063 +B1717504550441N00638659EA0000002061 +B1717524550444N00638679EA0000002059 +B1717544550446N00638698EA0000002056 +B1717564550449N00638718EA0000002053 +B1717584550452N00638739EA0000002049 +B1718004550456N00638760EA0000002047 +B1718024550460N00638790EA0000002043 +B1718044550463N00638810EA0000002040 +B1718064550464N00638832EA0000002037 +B1718084550467N00638852EA0000002036 +B1718104550469N00638872EA0000002034 +B1718124550471N00638893EA0000002031 +B1718144550473N00638916EA0000002030 +B1718164550476N00638937EA0000002028 +B1718184550478N00638959EA0000002025 +B1718204550480N00638980EA0000002022 +B1718224550482N00639002EA0000002019 +B1718244550486N00639024EA0000002017 +B1718264550490N00639045EA0000002015 +B1718294550494N00639065EA0000002012 +B1718314550498N00639087EA0000002009 +B1718334550502N00639109EA0000002007 +B1718354550505N00639131EA0000002006 +B1718374550506N00639152EA0000002005 +B1718394550508N00639170EA0000002004 +B1718414550510N00639189EA0000002003 +B1718434550513N00639208EA0000002002 +B1718454550516N00639226EA0000002003 +B1718474550518N00639241EA0000002004 +B1718494550520N00639256EA0000002004 +B1718514550521N00639270EA0000002004 +B1718534550521N00639284EA0000002003 +B1718554550520N00639299EA0000002002 +B1718574550520N00639315EA0000002001 +B1718594550519N00639330EA0000002000 +B1719014550519N00639346EA0000001998 +B1719034550518N00639364EA0000001996 +B1719054550517N00639381EA0000001995 +B1719074550516N00639398EA0000001993 +B1719094550515N00639416EA0000001990 +B1719114550514N00639435EA0000001989 +B1719134550515N00639453EA0000001987 +B1719154550516N00639471EA0000001985 +B1719174550517N00639489EA0000001984 +B1719194550518N00639506EA0000001983 +B1719214550519N00639523EA0000001981 +B1719234550520N00639542EA0000001981 +B1719254550520N00639560EA0000001982 +B1719274550520N00639575EA0000001983 +B1719294550519N00639592EA0000001982 +B1719314550518N00639611EA0000001983 +B1719334550518N00639627EA0000001983 +B1719354550518N00639643EA0000001981 +B1719374550518N00639662EA0000001981 +B1719394550519N00639680EA0000001981 +B1719414550521N00639704EA0000001981 +B1719434550522N00639722EA0000001980 +B1719454550523N00639740EA0000001981 +B1719474550525N00639755EA0000001982 +B1719494550527N00639770EA0000001982 +B1719514550529N00639787EA0000001983 +B1719534550530N00639802EA0000001985 +B1719554550531N00639815EA0000001987 +B1719574550536N00639821EA0000001987 +B1719594550542N00639820EA0000001988 +B1720014550545N00639813EA0000001989 +B1720034550544N00639801EA0000001989 +B1720054550538N00639788EA0000001989 +B1720074550523N00639781EA0000001990 +B1720104550510N00639788EA0000001990 +B1720124550501N00639801EA0000001991 +B1720144550498N00639817EA0000001992 +B1720164550498N00639832EA0000001994 +B1720184550499N00639847EA0000001994 +B1720204550501N00639861EA0000001995 +B1720224550504N00639874EA0000001996 +B1720244550509N00639886EA0000001997 +B1720264550514N00639897EA0000001997 +B1720284550518N00639910EA0000001998 +B1720304550522N00639923EA0000001998 +B1720324550526N00639936EA0000001997 +B1720344550531N00639949EA0000001996 +B1720364550537N00639960EA0000001996 +B1720384550542N00639973EA0000001996 +B1720404550547N00639985EA0000001995 +B1720424550552N00639998EA0000001995 +B1720444550558N00640010EA0000001995 +B1720464550564N00640019EA0000001994 +B1720484550571N00640029EA0000001993 +B1720504550577N00640043EA0000001992 +B1720524550582N00640056EA0000001992 +B1720544550588N00640067EA0000001992 +B1720564550594N00640079EA0000001991 +B1720584550600N00640089EA0000001991 +B1721004550607N00640100EA0000001990 +B1721024550614N00640110EA0000001988 +B1721044550622N00640121EA0000001987 +B1721064550631N00640131EA0000001987 +B1721084550638N00640142EA0000001986 +B1721104550646N00640153EA0000001984 +B1721124550656N00640163EA0000001983 +B1721144550665N00640173EA0000001982 +B1721164550673N00640184EA0000001980 +B1721184550683N00640193EA0000001977 +B1721204550697N00640207EA0000001976 +B1721224550706N00640217EA0000001974 +B1721244550715N00640227EA0000001972 +B1721264550724N00640238EA0000001970 +B1721284550732N00640252EA0000001969 +B1721304550740N00640264EA0000001968 +B1721324550748N00640276EA0000001966 +B1721344550756N00640290EA0000001964 +B1721364550765N00640301EA0000001963 +B1721384550774N00640308EA0000001962 +B1721404550783N00640316EA0000001960 +B1721424550792N00640327EA0000001958 +B1721444550800N00640338EA0000001958 +B1721464550809N00640349EA0000001957 +B1721494550817N00640361EA0000001956 +B1721514550826N00640373EA0000001956 +B1721534550833N00640386EA0000001956 +B1721554550841N00640398EA0000001955 +B1721574550850N00640409EA0000001955 +B1721594550858N00640422EA0000001955 +B1722014550866N00640436EA0000001956 +B1722034550874N00640450EA0000001957 +B1722054550881N00640464EA0000001957 +B1722074550888N00640479EA0000001957 +B1722094550888N00640479EA0000001956 +B1722114550904N00640509EA0000001956 +B1722134550910N00640525EA0000001957 +B1722154550916N00640545EA0000001957 +B1722174550922N00640563EA0000001958 +B1722194550927N00640580EA0000001958 +B1722214550932N00640599EA0000001957 +B1722234550939N00640619EA0000001956 +B1722254550946N00640637EA0000001955 +B1722274550952N00640653EA0000001954 +B1722294550958N00640669EA0000001953 +B1722314550967N00640684EA0000001952 +B1722334550977N00640698EA0000001949 +B1722354550985N00640712EA0000001946 +B1722374550994N00640728EA0000001942 +B1722394551003N00640743EA0000001938 +B1722414551012N00640759EA0000001935 +B1722434551020N00640774EA0000001932 +B1722454551028N00640788EA0000001928 +B1722474551037N00640802EA0000001925 +B1722494551045N00640813EA0000001921 +B1722514551055N00640825EA0000001917 +B1722534551064N00640838EA0000001913 +B1722554551072N00640851EA0000001909 +B1722574551080N00640865EA0000001906 +B1722594551087N00640881EA0000001902 +B1723014551099N00640903EA0000001897 +B1723034551108N00640917EA0000001894 +B1723054551116N00640932EA0000001891 +B1723074551124N00640945EA0000001888 +B1723094551133N00640959EA0000001884 +B1723114551142N00640974EA0000001880 +B1723134551150N00640988EA0000001877 +B1723154551158N00641002EA0000001874 +B1723174551167N00641016EA0000001870 +B1723194551175N00641030EA0000001866 +B1723214551184N00641043EA0000001863 +B1723234551192N00641056EA0000001860 +B1723254551202N00641069EA0000001856 +B1723284551210N00641083EA0000001854 +B1723304551219N00641098EA0000001851 +B1723324551227N00641111EA0000001849 +B1723344551236N00641124EA0000001847 +B1723364551245N00641137EA0000001845 +B1723384551254N00641150EA0000001843 +B1723404551263N00641162EA0000001841 +B1723424551273N00641175EA0000001839 +B1723444551282N00641187EA0000001837 +B1723464551291N00641200EA0000001834 +B1723484551300N00641214EA0000001831 +B1723504551309N00641227EA0000001828 +B1723524551318N00641240EA0000001826 +B1723544551327N00641253EA0000001823 +B1723564551336N00641266EA0000001819 +B1723584551346N00641280EA0000001817 +B1724004551355N00641294EA0000001814 +B1724024551364N00641307EA0000001812 +B1724044551373N00641320EA0000001809 +B1724064551383N00641332EA0000001807 +B1724084551392N00641344EA0000001805 +B1724104551401N00641357EA0000001803 +B1724124551410N00641371EA0000001801 +B1724144551418N00641386EA0000001799 +B1724164551426N00641403EA0000001796 +B1724184551435N00641421EA0000001793 +B1724204551443N00641438EA0000001791 +B1724224551450N00641455EA0000001789 +B1724244551458N00641474EA0000001787 +B1724264551466N00641493EA0000001786 +B1724284551473N00641511EA0000001785 +B1724304551480N00641530EA0000001784 +B1724324551487N00641547EA0000001782 +B1724344551494N00641565EA0000001781 +B1724364551502N00641581EA0000001780 +B1724384551509N00641596EA0000001778 +B1724404551517N00641612EA0000001776 +B1724424551530N00641641EA0000001773 +B1724444551537N00641657EA0000001772 +B1724464551545N00641673EA0000001771 +B1724484551551N00641687EA0000001771 +B1724504551558N00641700EA0000001770 +B1724524551566N00641713EA0000001769 +B1724544551574N00641729EA0000001766 +B1724564551583N00641744EA0000001764 +B1724584551592N00641758EA0000001762 +B1725004551600N00641772EA0000001760 +B1725024551609N00641787EA0000001757 +B1725044551619N00641802EA0000001755 +B1725064551628N00641818EA0000001753 +B1725094551637N00641832EA0000001751 +B1725114551647N00641846EA0000001749 +B1725134551657N00641861EA0000001746 +B1725154551667N00641876EA0000001746 +B1725174551676N00641888EA0000001746 +B1725194551685N00641898EA0000001745 +B1725214551696N00641911EA0000001742 +B1725234551705N00641926EA0000001741 +B1725254551714N00641940EA0000001739 +B1725274551724N00641953EA0000001736 +B1725294551735N00641967EA0000001735 +B1725314551745N00641982EA0000001734 +B1725334551755N00641995EA0000001733 +B1725354551765N00642009EA0000001732 +B1725374551776N00642023EA0000001731 +B1725394551786N00642036EA0000001731 +B1725414551797N00642047EA0000001730 +B1725434551807N00642058EA0000001728 +B1725454551818N00642069EA0000001726 +B1725474551830N00642079EA0000001723 +B1725494551841N00642090EA0000001722 +B1725514551851N00642101EA0000001721 +B1725534551860N00642114EA0000001719 +B1725554551871N00642126EA0000001718 +B1725574551881N00642138EA0000001717 +B1725594551890N00642149EA0000001716 +B1726014551900N00642161EA0000001713 +B1726034551911N00642174EA0000001710 +B1726054551922N00642187EA0000001709 +B1726074551933N00642199EA0000001706 +B1726094551944N00642211EA0000001703 +B1726114551955N00642224EA0000001700 +B1726134551966N00642235EA0000001699 +B1726154551976N00642248EA0000001697 +B1726174551986N00642262EA0000001695 +B1726194551997N00642273EA0000001693 +B1726214552007N00642285EA0000001692 +B1726234552021N00642307EA0000001689 +B1726254552031N00642319EA0000001687 +B1726274552041N00642331EA0000001685 +B1726294552052N00642343EA0000001683 +B1726314552063N00642354EA0000001681 +B1726334552075N00642363EA0000001679 +B1726354552086N00642373EA0000001678 +B1726374552098N00642382EA0000001676 +B1726394552110N00642391EA0000001675 +B1726414552121N00642401EA0000001673 +B1726434552133N00642412EA0000001670 +B1726454552145N00642422EA0000001669 +B1726474552156N00642432EA0000001668 +B1726504552167N00642444EA0000001666 +B1726524552179N00642456EA0000001664 +B1726544552190N00642467EA0000001662 +B1726564552202N00642476EA0000001661 +B1726584552214N00642485EA0000001660 +B1727004552225N00642492EA0000001658 +B1727024552237N00642500EA0000001656 +B1727044552249N00642510EA0000001654 +B1727064552260N00642521EA0000001653 +B1727084552271N00642532EA0000001653 +B1727104552282N00642543EA0000001651 +B1727124552282N00642543EA0000001649 +B1727144552303N00642568EA0000001648 +B1727164552313N00642581EA0000001647 +B1727184552323N00642594EA0000001646 +B1727204552333N00642609EA0000001644 +B1727224552343N00642625EA0000001642 +B1727244552354N00642639EA0000001641 +B1727264552364N00642650EA0000001640 +B1727284552375N00642661EA0000001637 +B1727304552387N00642672EA0000001636 +B1727324552399N00642682EA0000001635 +B1727344552409N00642693EA0000001633 +B1727364552420N00642704EA0000001632 +B1727384552431N00642717EA0000001631 +B1727404552440N00642730EA0000001631 +B1727424552450N00642742EA0000001632 +B1727444552459N00642754EA0000001633 +B1727464552466N00642766EA0000001635 +B1727484552473N00642777EA0000001635 +B1727504552481N00642788EA0000001634 +B1727524552489N00642800EA0000001635 +B1727544552496N00642813EA0000001635 +B1727564552504N00642825EA0000001636 +B1727584552512N00642837EA0000001636 +B1728004552519N00642848EA0000001636 +B1728024552533N00642866EA0000001635 +B1728044552542N00642877EA0000001635 +B1728064552551N00642888EA0000001635 +B1728084552560N00642899EA0000001636 +B1728104552569N00642910EA0000001636 +B1728124552577N00642923EA0000001637 +B1728144552583N00642935EA0000001638 +B1728164552589N00642948EA0000001638 +B1728184552596N00642962EA0000001637 +B1728204552603N00642977EA0000001636 +B1728224552610N00642992EA0000001634 +B1728244552619N00643005EA0000001633 +B1728264552628N00643019EA0000001632 +B1728284552638N00643030EA0000001631 +B1728314552647N00643043EA0000001630 +B1728334552657N00643056EA0000001629 +B1728354552667N00643069EA0000001629 +B1728374552676N00643082EA0000001629 +B1728394552685N00643096EA0000001628 +B1728414552694N00643109EA0000001628 +B1728434552704N00643121EA0000001627 +B1728454552714N00643132EA0000001627 +B1728474552724N00643144EA0000001626 +B1728494552733N00643155EA0000001626 +B1728514552744N00643165EA0000001626 +B1728534552754N00643178EA0000001627 +B1728554552764N00643189EA0000001629 +B1728574552772N00643199EA0000001629 +B1728594552782N00643209EA0000001628 +B1729014552793N00643220EA0000001628 +B1729034552803N00643229EA0000001630 +B1729054552813N00643239EA0000001631 +B1729074552823N00643252EA0000001633 +B1729094552833N00643265EA0000001634 +B1729114552841N00643278EA0000001637 +B1729134552846N00643290EA0000001640 +B1729154552853N00643301EA0000001642 +B1729174552858N00643310EA0000001644 +B1729194552864N00643318EA0000001646 +B1729214552870N00643328EA0000001647 +B1729234552875N00643338EA0000001650 +B1729254552880N00643346EA0000001652 +B1729274552885N00643356EA0000001653 +B1729294552890N00643367EA0000001654 +B1729314552896N00643376EA0000001657 +B1729334552901N00643386EA0000001660 +B1729354552906N00643397EA0000001661 +B1729374552911N00643410EA0000001663 +B1729394552918N00643422EA0000001665 +B1729414552924N00643434EA0000001667 +B1729434552934N00643453EA0000001670 +B1729454552941N00643466EA0000001673 +B1729474552947N00643478EA0000001677 +B1729494552953N00643489EA0000001680 +B1729514552958N00643502EA0000001681 +B1729534552964N00643516EA0000001682 +B1729554552970N00643527EA0000001684 +B1729574552975N00643532EA0000001684 +B1729594552980N00643532EA0000001685 +B1730014552982N00643529EA0000001685 +B1730034552981N00643522EA0000001685 +B1730054552974N00643516EA0000001685 +B1730084552963N00643515EA0000001686 +B1730104552951N00643521EA0000001686 +B1730124552941N00643537EA0000001686 +B1730144552936N00643555EA0000001687 +B1730164552934N00643574EA0000001687 +B1730184552933N00643593EA0000001688 +B1730204552932N00643612EA0000001690 +B1730224552932N00643631EA0000001692 +B1730244552932N00643650EA0000001695 +B1730264552932N00643669EA0000001698 +B1730284552934N00643686EA0000001699 +B1730304552940N00643700EA0000001701 +B1730324552947N00643708EA0000001703 +B1730344552951N00643706EA0000001706 +B1730364552950N00643700EA0000001709 +B1730384552946N00643695EA0000001712 +B1730404552936N00643693EA0000001714 +B1730424552923N00643700EA0000001714 +B1730444552913N00643718EA0000001716 +B1730464552909N00643739EA0000001717 +B1730484552911N00643758EA0000001719 +B1730504552917N00643773EA0000001722 +B1730524552922N00643785EA0000001725 +B1730544552928N00643793EA0000001728 +B1730564552934N00643799EA0000001731 +B1730584552940N00643793EA0000001733 +B1731004552936N00643782EA0000001736 +B1731024552928N00643779EA0000001739 +B1731044552917N00643782EA0000001740 +B1731064552904N00643794EA0000001741 +B1731084552896N00643817EA0000001743 +B1731104552896N00643839EA0000001745 +B1731124552901N00643855EA0000001748 +B1731144552907N00643866EA0000001751 +B1731164552915N00643875EA0000001754 +B1731184552922N00643879EA0000001755 +B1731204552933N00643871EA0000001757 +B1731224552935N00643864EA0000001759 +B1731244552932N00643856EA0000001760 +B1731264552922N00643851EA0000001761 +B1731284552911N00643861EA0000001761 +B1731304552903N00643881EA0000001761 +B1731324552899N00643902EA0000001762 +B1731344552901N00643920EA0000001765 +B1731364552906N00643932EA0000001766 +B1731384552911N00643940EA0000001766 +B1731404552919N00643943EA0000001764 +B1731424552929N00643944EA0000001763 +B1731444552938N00643951EA0000001762 +B1731474552948N00643960EA0000001763 +B1731494552957N00643966EA0000001766 +B1731514552965N00643970EA0000001769 +B1731534552973N00643973EA0000001771 +B1731554552979N00643971EA0000001772 +B1731574552982N00643966EA0000001773 +B1731594552984N00643962EA0000001772 +B1732014552990N00643962EA0000001771 +B1732034553002N00643970EA0000001770 +B1732054553011N00643982EA0000001772 +B1732074553019N00643992EA0000001771 +B1732094553028N00644004EA0000001771 +B1732114553037N00644017EA0000001773 +B1732134553045N00644028EA0000001774 +B1732154553055N00644038EA0000001773 +B1732174553065N00644049EA0000001774 +B1732194553074N00644057EA0000001775 +B1732214553083N00644063EA0000001776 +B1732234553093N00644070EA0000001776 +B1732254553102N00644075EA0000001776 +B1732274553110N00644079EA0000001776 +B1732294553120N00644085EA0000001774 +B1732314553131N00644093EA0000001773 +B1732334553141N00644099EA0000001772 +B1732354553152N00644103EA0000001769 +B1732374553164N00644109EA0000001767 +B1732394553175N00644115EA0000001765 +B1732414553186N00644120EA0000001762 +B1732434553198N00644126EA0000001759 +B1732454553210N00644136EA0000001757 +B1732474553221N00644145EA0000001756 +B1732494553231N00644153EA0000001756 +B1732514553241N00644162EA0000001755 +B1732534553252N00644168EA0000001753 +B1732554553262N00644172EA0000001751 +B1732574553273N00644175EA0000001749 +B1732594553285N00644175EA0000001746 +B1733014553303N00644175EA0000001744 +B1733034553314N00644177EA0000001743 +B1733054553325N00644177EA0000001743 +B1733074553335N00644177EA0000001742 +B1733094553346N00644177EA0000001741 +B1733114553356N00644178EA0000001739 +B1733134553368N00644180EA0000001737 +B1733154553380N00644185EA0000001735 +B1733174553391N00644190EA0000001734 +B1733194553403N00644193EA0000001734 +B1733214553414N00644198EA0000001733 +B1733234553424N00644201EA0000001732 +B1733254553437N00644203EA0000001729 +B1733284553448N00644209EA0000001728 +B1733304553458N00644215EA0000001726 +B1733324553469N00644222EA0000001723 +B1733344553480N00644229EA0000001720 +B1733364553491N00644235EA0000001717 +B1733384553502N00644239EA0000001715 +B1733404553514N00644240EA0000001713 +B1733424553526N00644240EA0000001711 +B1733444553539N00644242EA0000001709 +B1733464553551N00644246EA0000001706 +B1733484553563N00644247EA0000001704 +B1733504553577N00644245EA0000001700 +B1733524553590N00644246EA0000001697 +B1733544553602N00644247EA0000001695 +B1733564553615N00644246EA0000001692 +B1733584553628N00644249EA0000001689 +B1734004553641N00644251EA0000001687 +B1734024553654N00644251EA0000001683 +B1734044553668N00644251EA0000001680 +B1734064553683N00644254EA0000001677 +B1734084553693N00644256EA0000001675 +B1734104553705N00644257EA0000001673 +B1734124553719N00644261EA0000001670 +B1734144553732N00644266EA0000001669 +B1734164553743N00644268EA0000001668 +B1734184553755N00644272EA0000001667 +B1734204553767N00644276EA0000001666 +B1734224553779N00644279EA0000001666 +B1734244553791N00644280EA0000001667 +B1734264553804N00644283EA0000001667 +B1734284553816N00644284EA0000001668 +B1734304553828N00644283EA0000001668 +B1734324553842N00644284EA0000001669 +B1734344553854N00644284EA0000001671 +B1734364553867N00644283EA0000001672 +B1734384553880N00644283EA0000001673 +B1734404553899N00644289EA0000001675 +B1734424553910N00644298EA0000001677 +B1734444553920N00644305EA0000001678 +B1734464553930N00644307EA0000001678 +B1734484553942N00644306EA0000001676 +B1734504553955N00644309EA0000001675 +B1734524553968N00644312EA0000001673 +B1734544553981N00644312EA0000001671 +B1734564553994N00644312EA0000001669 +B1734584554008N00644312EA0000001667 +B1735004554021N00644311EA0000001666 +B1735024554035N00644309EA0000001665 +B1735044554049N00644309EA0000001664 +B1735074554062N00644308EA0000001663 +B1735094554075N00644306EA0000001662 +B1735114554088N00644305EA0000001661 +B1735134554101N00644304EA0000001660 +B1735154554113N00644302EA0000001659 +B1735174554125N00644301EA0000001658 +B1735194554139N00644300EA0000001659 +B1735214554152N00644297EA0000001660 +B1735234554166N00644296EA0000001660 +B1735254554180N00644296EA0000001659 +B1735274554194N00644295EA0000001657 +B1735294554208N00644294EA0000001657 +B1735314554223N00644294EA0000001657 +B1735334554236N00644293EA0000001659 +B1735354554249N00644291EA0000001659 +B1735374554263N00644290EA0000001659 +B1735394554276N00644291EA0000001660 +B1735414554289N00644291EA0000001661 +B1735434554302N00644291EA0000001660 +B1735454554316N00644291EA0000001660 +B1735474554330N00644291EA0000001659 +B1735494554343N00644291EA0000001658 +B1735514554357N00644291EA0000001657 +B1735534554371N00644292EA0000001654 +B1735554554386N00644293EA0000001651 +B1735574554400N00644294EA0000001649 +B1735594554415N00644295EA0000001647 +B1736014554429N00644296EA0000001645 +B1736034554444N00644297EA0000001643 +B1736054554458N00644297EA0000001641 +B1736074554473N00644297EA0000001639 +B1736094554488N00644297EA0000001638 +B1736114554502N00644296EA0000001636 +B1736134554516N00644295EA0000001633 +B1736154554532N00644294EA0000001631 +B1736174554546N00644295EA0000001628 +B1736194554569N00644297EA0000001624 +B1736214554584N00644298EA0000001621 +B1736234554599N00644299EA0000001617 +B1736254554614N00644302EA0000001614 +B1736274554629N00644305EA0000001612 +B1736294554644N00644306EA0000001608 +B1736314554658N00644305EA0000001603 +B1736334554674N00644307EA0000001599 +B1736354554690N00644308EA0000001595 +B1736374554705N00644308EA0000001591 +B1736394554720N00644307EA0000001586 +B1736414554736N00644308EA0000001581 +B1736434554751N00644309EA0000001578 +B1736454554765N00644310EA0000001575 +B1736484554779N00644310EA0000001570 +B1736504554795N00644312EA0000001566 +B1736524554809N00644315EA0000001564 +B1736544554823N00644317EA0000001560 +B1736564554837N00644320EA0000001556 +B1736584554852N00644323EA0000001552 +B1737004554866N00644327EA0000001548 +B1737024554881N00644332EA0000001543 +B1737044554895N00644337EA0000001539 +B1737064554909N00644342EA0000001535 +B1737084554923N00644347EA0000001531 +B1737104554938N00644351EA0000001527 +B1737124554953N00644353EA0000001524 +B1737144554968N00644356EA0000001521 +B1737164554982N00644362EA0000001518 +B1737184554995N00644370EA0000001517 +B1737204555008N00644376EA0000001517 +B1737224555021N00644379EA0000001517 +B1737244555034N00644384EA0000001517 +B1737264555046N00644389EA0000001515 +B1737284555059N00644391EA0000001512 +B1737304555073N00644390EA0000001511 +B1737324555084N00644389EA0000001511 +B1737344555094N00644389EA0000001511 +B1737364555104N00644392EA0000001512 +B1737384555114N00644396EA0000001514 +B1737404555123N00644398EA0000001514 +B1737424555133N00644401EA0000001513 +B1737444555143N00644407EA0000001511 +B1737464555153N00644414EA0000001510 +B1737484555164N00644422EA0000001510 +B1737504555174N00644430EA0000001511 +B1737524555184N00644435EA0000001512 +B1737544555194N00644440EA0000001513 +B1737564555199N00644444EA0000001512 +B1737584555212N00644459EA0000001512 +B1738004555227N00644476EA0000001511 +B1738024555235N00644490EA0000001509 +B1738044555243N00644503EA0000001507 +B1738064555253N00644513EA0000001504 +B1738084555263N00644521EA0000001501 +B1738104555273N00644529EA0000001498 +B1738124555282N00644541EA0000001493 +B1738144555291N00644552EA0000001489 +B1738164555300N00644561EA0000001486 +B1738184555308N00644571EA0000001482 +B1738204555316N00644581EA0000001478 +B1738224555325N00644592EA0000001476 +B1738244555333N00644603EA0000001474 +B1738264555341N00644613EA0000001471 +B1738294555349N00644623EA0000001470 +B1738314555356N00644633EA0000001469 +B1738334555363N00644642EA0000001466 +B1738354555370N00644653EA0000001463 +B1738374555378N00644664EA0000001462 +B1738394555384N00644675EA0000001459 +B1738414555391N00644687EA0000001456 +B1738434555399N00644699EA0000001454 +B1738454555407N00644712EA0000001452 +B1738474555415N00644724EA0000001448 +B1738494555424N00644737EA0000001443 +B1738514555433N00644752EA0000001438 +B1738534555441N00644768EA0000001434 +B1738554555449N00644783EA0000001430 +B1738574555457N00644800EA0000001426 +B1738594555463N00644818EA0000001423 +B1739014555470N00644834EA0000001420 +B1739034555476N00644851EA0000001417 +B1739054555482N00644867EA0000001412 +B1739074555490N00644883EA0000001408 +B1739094555498N00644899EA0000001405 +B1739114555506N00644915EA0000001402 +B1739134555513N00644929EA0000001398 +B1739154555522N00644944EA0000001393 +B1739174555531N00644960EA0000001390 +B1739194555536N00644975EA0000001387 +B1739214555542N00644990EA0000001383 +B1739234555549N00645006EA0000001378 +B1739254555555N00645024EA0000001374 +B1739274555560N00645042EA0000001370 +B1739294555565N00645059EA0000001365 +B1739314555569N00645077EA0000001361 +B1739334555573N00645094EA0000001358 +B1739354555578N00645108EA0000001353 +B1739374555583N00645125EA0000001347 +B1739394555587N00645143EA0000001344 +B1739414555595N00645163EA0000001337 +B1739434555600N00645178EA0000001332 +B1739454555607N00645194EA0000001328 +B1739474555613N00645208EA0000001324 +B1739494555618N00645222EA0000001319 +B1739514555624N00645237EA0000001314 +B1739534555631N00645252EA0000001311 +B1739554555634N00645265EA0000001308 +B1739574555638N00645277EA0000001303 +B1739594555643N00645290EA0000001298 +B1740014555647N00645303EA0000001295 +B1740034555651N00645315EA0000001290 +B1740054555656N00645326EA0000001284 +B1740084555661N00645343EA0000001279 +B1740104555662N00645362EA0000001275 +B1740124555665N00645378EA0000001272 +B1740144555670N00645394EA0000001270 +B1740164555673N00645409EA0000001268 +B1740184555678N00645423EA0000001267 +B1740204555683N00645438EA0000001266 +B1740224555687N00645454EA0000001266 +B1740244555691N00645468EA0000001264 +B1740264555697N00645484EA0000001264 +B1740284555702N00645497EA0000001266 +B1740304555707N00645508EA0000001268 +B1740324555710N00645517EA0000001270 +B1740344555713N00645527EA0000001272 +B1740364555716N00645536EA0000001275 +B1740384555717N00645543EA0000001277 +B1740404555719N00645552EA0000001278 +B1740424555721N00645561EA0000001278 +B1740444555725N00645564EA0000001279 +B1740464555730N00645559EA0000001279 +B1740484555733N00645550EA0000001278 +B1740504555730N00645537EA0000001278 +B1740524555721N00645523EA0000001279 +B1740544555706N00645515EA0000001279 +B1740564555691N00645522EA0000001280 +B1740584555682N00645535EA0000001281 +B1741004555680N00645548EA0000001282 +B1741024555680N00645558EA0000001281 +B1741044555682N00645570EA0000001280 +B1741064555684N00645583EA0000001279 +B1741084555687N00645595EA0000001280 +B1741104555689N00645607EA0000001280 +B1741124555690N00645620EA0000001280 +B1741144555693N00645634EA0000001281 +B1741164555695N00645647EA0000001282 +B1741184555697N00645661EA0000001281 +B1741204555701N00645683EA0000001281 +B1741224555703N00645697EA0000001281 +B1741244555704N00645711EA0000001280 +B1741264555706N00645724EA0000001279 +B1741284555709N00645739EA0000001277 +B1741304555713N00645753EA0000001276 +B1741324555716N00645766EA0000001275 +B1741344555719N00645779EA0000001273 +B1741364555724N00645792EA0000001271 +B1741384555727N00645806EA0000001270 +B1741404555729N00645820EA0000001268 +B1741424555729N00645835EA0000001267 +B1741444555731N00645849EA0000001266 +B1741464555732N00645864EA0000001266 +B1741494555733N00645880EA0000001267 +B1741514555736N00645895EA0000001268 +B1741534555738N00645910EA0000001268 +B1741554555739N00645926EA0000001269 +B1741574555742N00645940EA0000001270 +B1741594555745N00645954EA0000001272 +B1742014555748N00645967EA0000001275 +B1742034555751N00645977EA0000001277 +B1742054555752N00645988EA0000001279 +B1742074555748N00646000EA0000001279 +B1742094555737N00646007EA0000001279 +B1742114555724N00645998EA0000001278 +B1742134555719N00645981EA0000001278 +B1742154555725N00645970EA0000001279 +B1742174555736N00645968EA0000001282 +B1742194555743N00645974EA0000001283 +B1742214555746N00645987EA0000001284 +B1742234555749N00646000EA0000001287 +B1742254555752N00646009EA0000001289 +B1742274555755N00646020EA0000001291 +B1742294555758N00646029EA0000001294 +B1742314555763N00646033EA0000001297 +B1742334555769N00646033EA0000001299 +B1742354555773N00646029EA0000001301 +B1742374555777N00646021EA0000001302 +B1742394555776N00646008EA0000001303 +B1742414555771N00645997EA0000001304 +B1742434555762N00645990EA0000001304 +B1742454555751N00645990EA0000001304 +B1742474555742N00645998EA0000001303 +B1742494555738N00646011EA0000001304 +B1742514555738N00646023EA0000001307 +B1742534555739N00646034EA0000001310 +B1742554555738N00646046EA0000001313 +B1742574555738N00646057EA0000001316 +B1742594555741N00646063EA0000001317 +B1743014555749N00646060EA0000001321 +B1743034555750N00646047EA0000001324 +B1743054555746N00646034EA0000001327 +B1743074555739N00646023EA0000001329 +B1743094555727N00646017EA0000001330 +B1743114555714N00646017EA0000001331 +B1743134555703N00646023EA0000001333 +B1743154555696N00646034EA0000001335 +B1743174555693N00646045EA0000001336 +B1743194555692N00646057EA0000001336 +B1743214555694N00646068EA0000001335 +B1743234555700N00646076EA0000001334 +B1743254555706N00646084EA0000001333 +B1743284555711N00646093EA0000001333 +B1743304555715N00646103EA0000001331 +B1743324555720N00646113EA0000001330 +B1743344555725N00646122EA0000001329 +B1743364555729N00646132EA0000001328 +B1743384555734N00646143EA0000001326 +B1743404555740N00646154EA0000001324 +B1743424555745N00646165EA0000001322 +B1743444555752N00646177EA0000001322 +B1743464555757N00646185EA0000001322 +B1743484555761N00646195EA0000001321 +B1743504555766N00646205EA0000001321 +B1743524555771N00646215EA0000001321 +B1743544555773N00646226EA0000001322 +B1743564555772N00646238EA0000001322 +B1743584555771N00646251EA0000001321 +B1744004555772N00646264EA0000001320 +B1744024555774N00646278EA0000001318 +B1744044555779N00646291EA0000001317 +B1744064555786N00646300EA0000001316 +B1744084555792N00646309EA0000001317 +B1744104555794N00646320EA0000001318 +B1744124555791N00646333EA0000001318 +B1744144555786N00646346EA0000001318 +B1744164555780N00646358EA0000001317 +B1744184555773N00646370EA0000001317 +B1744204555767N00646382EA0000001317 +B1744224555762N00646394EA0000001317 +B1744244555757N00646407EA0000001316 +B1744264555751N00646420EA0000001315 +B1744284555744N00646432EA0000001315 +B1744304555738N00646443EA0000001313 +B1744324555731N00646455EA0000001311 +B1744344555724N00646467EA0000001310 +B1744364555718N00646480EA0000001310 +B1744384555711N00646490EA0000001308 +B1744404555700N00646505EA0000001306 +B1744424555695N00646518EA0000001304 +B1744444555690N00646532EA0000001302 +B1744464555687N00646548EA0000001300 +B1744484555685N00646563EA0000001297 +B1744504555683N00646578EA0000001294 +B1744524555681N00646592EA0000001290 +B1744544555681N00646606EA0000001287 +B1744564555680N00646621EA0000001285 +B1744584555679N00646635EA0000001283 +B1745004555676N00646648EA0000001281 +B1745024555672N00646661EA0000001280 +B1745044555667N00646672EA0000001278 +B1745074555662N00646683EA0000001277 +B1745094555656N00646693EA0000001274 +B1745114555649N00646704EA0000001271 +B1745134555642N00646714EA0000001270 +B1745154555635N00646723EA0000001267 +B1745174555627N00646731EA0000001265 +B1745194555617N00646737EA0000001262 +B1745214555608N00646740EA0000001260 +B1745234555600N00646741EA0000001257 +B1745254555592N00646740EA0000001254 +B1745274555583N00646738EA0000001251 +B1745294555575N00646736EA0000001249 +B1745314555567N00646734EA0000001248 +B1745334555560N00646730EA0000001247 +B1745354555552N00646727EA0000001246 +B1745374555546N00646722EA0000001245 +B1745394555540N00646717EA0000001244 +B1745414555533N00646713EA0000001243 +B1745434555526N00646710EA0000001242 +B1745454555520N00646707EA0000001241 +B1745474555512N00646704EA0000001239 +B1745494555505N00646700EA0000001237 +B1745514555498N00646695EA0000001235 +B1745534555491N00646691EA0000001232 +B1745554555484N00646688EA0000001230 +B1745574555477N00646684EA0000001227 +B1745594555469N00646680EA0000001225 +B1746014555464N00646677EA0000001224 +B1746034555458N00646672EA0000001222 +B1746054555450N00646668EA0000001221 +B1746074555444N00646665EA0000001220 +B1746094555438N00646662EA0000001219 +B1746114555431N00646659EA0000001218 +B1746134555424N00646658EA0000001218 +B1746154555414N00646658EA0000001216 +B1746174555407N00646655EA0000001215 +B1746194555401N00646653EA0000001216 +B1746214555395N00646651EA0000001215 +B1746234555389N00646649EA0000001213 +B1746254555383N00646648EA0000001212 +B1746274555375N00646648EA0000001211 +B1746294555368N00646645EA0000001211 +B1746314555363N00646643EA0000001212 +B1746334555358N00646642EA0000001211 +B1746354555351N00646641EA0000001211 +B1746374555345N00646639EA0000001210 +B1746394555340N00646636EA0000001211 +B1746414555335N00646636EA0000001212 +B1746444555330N00646636EA0000001212 +B1746464555325N00646636EA0000001213 +B1746484555320N00646636EA0000001213 +B1746504555313N00646636EA0000001214 +B1746524555308N00646636EA0000001214 +B1746544555302N00646637EA0000001215 +B1746564555296N00646639EA0000001215 +B1746584555291N00646641EA0000001216 +B1747004555285N00646640EA0000001216 +B1747024555279N00646637EA0000001215 +B1747044555273N00646635EA0000001216 +B1747064555268N00646635EA0000001217 +B1747084555261N00646634EA0000001218 +B1747104555255N00646634EA0000001219 +B1747124555249N00646635EA0000001220 +B1747144555242N00646635EA0000001221 +B1747164555234N00646635EA0000001221 +B1747184555228N00646636EA0000001222 +B1747204555223N00646638EA0000001223 +B1747224555216N00646638EA0000001224 +B1747244555208N00646639EA0000001226 +B1747264555202N00646638EA0000001227 +B1747284555194N00646637EA0000001228 +B1747304555186N00646639EA0000001230 +B1747324555179N00646642EA0000001232 +B1747344555172N00646646EA0000001234 +B1747364555165N00646645EA0000001236 +B1747384555162N00646637EA0000001238 +B1747404555166N00646627EA0000001240 +B1747424555176N00646622EA0000001242 +B1747444555188N00646625EA0000001243 +B1747464555199N00646637EA0000001244 +B1747484555196N00646656EA0000001244 +B1747504555193N00646663EA0000001245 +B1747524555181N00646672EA0000001245 +B1747544555174N00646671EA0000001246 +B1747564555166N00646676EA0000001250 +B1747584555161N00646678EA0000001253 +B1748004555156N00646676EA0000001256 +B1748024555154N00646668EA0000001258 +B1748044555161N00646660EA0000001260 +B1748064555173N00646662EA0000001261 +B1748084555178N00646677EA0000001263 +B1748104555172N00646693EA0000001265 +B1748124555164N00646701EA0000001267 +B1748144555159N00646705EA0000001271 +B1748164555155N00646709EA0000001274 +B1748184555149N00646710EA0000001276 +B1748204555146N00646705EA0000001277 +B1748224555148N00646696EA0000001277 +B1748254555159N00646689EA0000001277 +B1748274555172N00646693EA0000001277 +B1748294555180N00646708EA0000001278 +B1748314555179N00646725EA0000001279 +B1748334555173N00646735EA0000001280 +B1748354555166N00646739EA0000001283 +B1748374555160N00646739EA0000001284 +B1748394555154N00646737EA0000001286 +B1748414555148N00646738EA0000001290 +B1748434555143N00646742EA0000001293 +B1748454555138N00646740EA0000001296 +B1748474555135N00646731EA0000001298 +B1748494555140N00646722EA0000001300 +B1748514555151N00646720EA0000001301 +B1748534555156N00646731EA0000001303 +B1748554555153N00646746EA0000001304 +B1748574555145N00646754EA0000001307 +B1748594555139N00646759EA0000001310 +B1749014555133N00646762EA0000001313 +B1749034555125N00646765EA0000001314 +B1749054555120N00646762EA0000001316 +B1749074555121N00646753EA0000001317 +B1749094555131N00646747EA0000001318 +B1749114555145N00646750EA0000001319 +B1749134555156N00646761EA0000001321 +B1749154555166N00646768EA0000001323 +B1749174555176N00646766EA0000001325 +B1749194555183N00646758EA0000001327 +B1749214555182N00646749EA0000001328 +B1749234555176N00646744EA0000001329 +B1749254555168N00646748EA0000001330 +B1749274555160N00646753EA0000001331 +B1749294555151N00646758EA0000001331 +B1749314555141N00646763EA0000001332 +B1749334555133N00646769EA0000001334 +B1749354555124N00646775EA0000001339 +B1749374555116N00646779EA0000001341 +B1749394555109N00646778EA0000001342 +B1749414555104N00646771EA0000001343 +B1749434555107N00646761EA0000001343 +B1749454555118N00646756EA0000001342 +B1749474555128N00646764EA0000001341 +B1749494555128N00646783EA0000001341 +B1749514555121N00646796EA0000001342 +B1749534555115N00646798EA0000001343 +B1749554555112N00646794EA0000001343 +B1749574555111N00646787EA0000001342 +B1749594555115N00646776EA0000001340 +B1750024555125N00646769EA0000001339 +B1750044555135N00646773EA0000001337 +B1750064555133N00646790EA0000001335 +B1750084555124N00646800EA0000001334 +B1750104555119N00646805EA0000001335 +B1750124555114N00646808EA0000001336 +B1750144555106N00646808EA0000001336 +B1750164555097N00646808EA0000001337 +B1750184555087N00646808EA0000001338 +B1750204555078N00646808EA0000001339 +B1750224555068N00646808EA0000001341 +B1750244555059N00646808EA0000001344 +B1750264555050N00646809EA0000001347 +B1750284555043N00646811EA0000001351 +B1750304555036N00646808EA0000001354 +B1750324555033N00646798EA0000001356 +B1750344555037N00646787EA0000001358 +B1750364555046N00646784EA0000001359 +B1750384555050N00646796EA0000001360 +B1750404555044N00646812EA0000001361 +B1750424555034N00646820EA0000001362 +B1750444555027N00646823EA0000001363 +B1750464555019N00646824EA0000001364 +B1750484555009N00646823EA0000001364 +B1750504554999N00646823EA0000001364 +B1750524554989N00646823EA0000001365 +B1750544554978N00646824EA0000001366 +B1750564554968N00646825EA0000001368 +B1750584554958N00646828EA0000001369 +B1751004554948N00646829EA0000001371 +B1751024554942N00646822EA0000001372 +B1751044554943N00646811EA0000001372 +B1751064554951N00646807EA0000001373 +B1751084554962N00646816EA0000001374 +B1751104554977N00646828EA0000001376 +B1751124554986N00646836EA0000001376 +B1751144554995N00646841EA0000001376 +B1751164555005N00646843EA0000001376 +B1751184555014N00646846EA0000001376 +B1751204555024N00646848EA0000001376 +B1751224555033N00646848EA0000001376 +B1751244555040N00646842EA0000001376 +B1751264555041N00646832EA0000001376 +B1751284555037N00646823EA0000001375 +B1751304555028N00646819EA0000001374 +B1751324555017N00646817EA0000001374 +B1751344555008N00646819EA0000001375 +B1751374554999N00646819EA0000001376 +B1751394554989N00646819EA0000001376 +B1751414554979N00646819EA0000001376 +B1751434554968N00646820EA0000001376 +B1751454554956N00646821EA0000001375 +B1751474554945N00646823EA0000001376 +B1751494554936N00646825EA0000001378 +B1751514554927N00646826EA0000001379 +B1751534554917N00646828EA0000001380 +B1751554554906N00646829EA0000001379 +B1751574554894N00646830EA0000001379 +B1751594554883N00646830EA0000001380 +B1752014554873N00646830EA0000001380 +B1752034554862N00646831EA0000001380 +B1752054554851N00646833EA0000001380 +B1752074554840N00646833EA0000001380 +B1752094554830N00646834EA0000001380 +B1752114554818N00646835EA0000001380 +B1752134554807N00646836EA0000001380 +B1752154554796N00646836EA0000001380 +B1752174554784N00646837EA0000001379 +B1752194554773N00646838EA0000001379 +B1752214554761N00646839EA0000001378 +B1752234554749N00646841EA0000001376 +B1752254554737N00646843EA0000001375 +B1752274554727N00646845EA0000001374 +B1752294554715N00646845EA0000001373 +B1752314554701N00646845EA0000001371 +B1752334554689N00646847EA0000001370 +B1752354554678N00646849EA0000001370 +B1752374554666N00646851EA0000001369 +B1752394554653N00646856EA0000001368 +B1752414554643N00646858EA0000001368 +B1752434554632N00646859EA0000001368 +B1752454554621N00646862EA0000001367 +B1752474554605N00646866EA0000001367 +B1752494554595N00646869EA0000001366 +B1752514554584N00646872EA0000001365 +B1752534554573N00646875EA0000001365 +B1752554554563N00646877EA0000001365 +B1752574554554N00646878EA0000001366 +B1752594554544N00646881EA0000001366 +B1753014554534N00646886EA0000001366 +B1753034554524N00646889EA0000001366 +B1753054554513N00646893EA0000001365 +B1753074554502N00646897EA0000001365 +B1753094554491N00646901EA0000001365 +B1753114554481N00646905EA0000001365 +B1753134554471N00646909EA0000001364 +B1753154554460N00646912EA0000001364 +B1753184554449N00646917EA0000001363 +B1753204554438N00646922EA0000001362 +B1753224554428N00646926EA0000001361 +B1753244554418N00646931EA0000001359 +B1753264554406N00646937EA0000001357 +B1753284554395N00646943EA0000001357 +B1753304554385N00646949EA0000001357 +B1753324554375N00646955EA0000001356 +B1753344554365N00646961EA0000001354 +B1753364554354N00646969EA0000001352 +B1753384554343N00646977EA0000001350 +B1753404554331N00646984EA0000001349 +B1753424554319N00646991EA0000001349 +B1753444554310N00646997EA0000001349 +B1753464554302N00647002EA0000001348 +B1753484554293N00647008EA0000001346 +B1753504554281N00647014EA0000001344 +B1753524554272N00647020EA0000001344 +B1753544554263N00647026EA0000001342 +B1753564554253N00647032EA0000001340 +B1753584554242N00647039EA0000001338 +B1754004554231N00647046EA0000001336 +B1754024554221N00647051EA0000001334 +B1754044554209N00647055EA0000001332 +B1754064554199N00647062EA0000001330 +B1754084554189N00647071EA0000001327 +B1754104554180N00647081EA0000001326 +B1754124554171N00647091EA0000001324 +B1754144554163N00647102EA0000001322 +B1754164554154N00647112EA0000001320 +B1754184554144N00647121EA0000001319 +B1754204554135N00647131EA0000001319 +B1754224554127N00647140EA0000001319 +B1754244554119N00647150EA0000001319 +B1754264554111N00647161EA0000001320 +B1754284554103N00647173EA0000001323 +B1754304554098N00647181EA0000001324 +B1754324554094N00647192EA0000001326 +B1754344554088N00647200EA0000001326 +B1754364554082N00647206EA0000001326 +B1754384554075N00647214EA0000001325 +B1754404554069N00647225EA0000001323 +B1754424554062N00647237EA0000001321 +B1754444554056N00647250EA0000001319 +B1754464554050N00647263EA0000001318 +B1754484554044N00647276EA0000001316 +B1754504554038N00647290EA0000001314 +B1754524554030N00647303EA0000001312 +B1754554554023N00647316EA0000001311 +B1754574554015N00647329EA0000001310 +B1754594554009N00647343EA0000001309 +B1755014554003N00647358EA0000001308 +B1755034553996N00647373EA0000001307 +B1755054553990N00647389EA0000001305 +B1755074553983N00647404EA0000001304 +B1755094553976N00647417EA0000001303 +B1755114553969N00647429EA0000001303 +B1755134553962N00647441EA0000001303 +B1755154553956N00647453EA0000001303 +B1755174553951N00647464EA0000001302 +B1755194553944N00647475EA0000001301 +B1755214553936N00647485EA0000001299 +B1755234553930N00647493EA0000001299 +B1755254553926N00647500EA0000001300 +B1755274553921N00647507EA0000001302 +B1755294553915N00647514EA0000001304 +B1755314553911N00647522EA0000001306 +B1755334553906N00647527EA0000001308 +B1755354553901N00647531EA0000001311 +B1755374553897N00647528EA0000001313 +B1755394553894N00647519EA0000001315 +B1755414553896N00647508EA0000001316 +B1755434553905N00647496EA0000001316 +B1755454553920N00647492EA0000001316 +B1755474553937N00647499EA0000001317 +B1755494553945N00647513EA0000001318 +B1755514553946N00647530EA0000001320 +B1755534553946N00647546EA0000001323 +B1755554553944N00647558EA0000001325 +B1755574553938N00647564EA0000001326 +B1755594553933N00647563EA0000001327 +B1756014553932N00647554EA0000001328 +B1756034553939N00647543EA0000001329 +B1756054553953N00647540EA0000001329 +B1756074553975N00647554EA0000001330 +B1756094553978N00647572EA0000001331 +B1756114553977N00647589EA0000001332 +B1756134553976N00647605EA0000001333 +B1756154553971N00647618EA0000001333 +B1756174553964N00647628EA0000001334 +B1756194553959N00647639EA0000001335 +B1756214553956N00647650EA0000001336 +B1756234553951N00647661EA0000001337 +B1756254553947N00647676EA0000001337 +B1756274553945N00647692EA0000001338 +B1756294553945N00647706EA0000001339 +B1756314553944N00647723EA0000001340 +B1756334553942N00647742EA0000001339 +B1756364553939N00647758EA0000001339 +B1756384553937N00647774EA0000001339 +B1756404553935N00647791EA0000001337 +B1756424553932N00647809EA0000001336 +B1756444553930N00647823EA0000001334 +B1756464553926N00647838EA0000001331 +B1756484553921N00647853EA0000001328 +B1756504553916N00647867EA0000001326 +B1756524553911N00647881EA0000001323 +B1756544553907N00647898EA0000001319 +B1756564553903N00647915EA0000001317 +B1756584553899N00647930EA0000001314 +B1757004553896N00647947EA0000001311 +B1757024553893N00647965EA0000001307 +B1757044553888N00647981EA0000001305 +B1757064553885N00647998EA0000001301 +B1757084553880N00648015EA0000001298 +B1757104553874N00648029EA0000001294 +B1757124553869N00648045EA0000001290 +B1757144553865N00648060EA0000001286 +B1757164553860N00648077EA0000001282 +B1757184553856N00648095EA0000001278 +B1757204553852N00648111EA0000001274 +B1757224553845N00648127EA0000001269 +B1757244553839N00648142EA0000001266 +B1757264553833N00648155EA0000001262 +B1757284553827N00648169EA0000001258 +B1757304553822N00648187EA0000001255 +B1757324553819N00648204EA0000001252 +B1757344553817N00648221EA0000001250 +B1757364553815N00648242EA0000001247 +B1757384553814N00648264EA0000001244 +B1757404553814N00648284EA0000001241 +B1757424553814N00648304EA0000001237 +B1757444553812N00648328EA0000001233 +B1757464553812N00648349EA0000001230 +B1757484553810N00648381EA0000001224 +B1757504553808N00648403EA0000001219 +B1757524553806N00648423EA0000001216 +B1757544553803N00648441EA0000001212 +B1757564553799N00648462EA0000001208 +B1757584553796N00648482EA0000001204 +B1758004553795N00648501EA0000001201 +B1758024553793N00648522EA0000001196 +B1758044553792N00648546EA0000001192 +B1758064553792N00648568EA0000001190 +B1758084553791N00648589EA0000001188 +B1758104553791N00648609EA0000001187 +B1758124553791N00648630EA0000001186 +B1758144553789N00648651EA0000001184 +B1758174553789N00648672EA0000001183 +B1758194553789N00648692EA0000001181 +B1758214553790N00648710EA0000001179 +B1758234553791N00648731EA0000001177 +B1758254553791N00648752EA0000001175 +B1758274553793N00648772EA0000001173 +B1758294553794N00648792EA0000001171 +B1758314553795N00648812EA0000001169 +B1758334553796N00648832EA0000001167 +B1758354553797N00648852EA0000001165 +B1758374553797N00648852EA0000001163 +B1758394553794N00648890EA0000001161 +B1758414553793N00648910EA0000001158 +B1758434553790N00648928EA0000001156 +B1758454553787N00648947EA0000001154 +B1758474553783N00648966EA0000001151 +B1758494553777N00648983EA0000001148 +B1758514553773N00649000EA0000001145 +B1758534553767N00649018EA0000001143 +B1758554553762N00649034EA0000001141 +B1758574553756N00649050EA0000001139 +B1758594553750N00649063EA0000001136 +B1759014553742N00649074EA0000001134 +B1759034553736N00649088EA0000001132 +B1759054553732N00649105EA0000001131 +B1759074553728N00649121EA0000001130 +B1759094553722N00649133EA0000001129 +B1759114553716N00649145EA0000001129 +B1759134553712N00649159EA0000001128 +B1759154553705N00649170EA0000001124 +B1759174553697N00649176EA0000001123 +B1759194553692N00649185EA0000001121 +B1759214553687N00649195EA0000001119 +B1759234553675N00649195EA0000001116 +B1759254553673N00649183EA0000001112 +B1759274553682N00649178EA0000001105 +B1759294553703N00649194EA0000001103 +B1759314553711N00649204EA0000001099 +B1759334553723N00649207EA0000001095 +B1759354553734N00649204EA0000001092 +B1759374553742N00649199EA0000001090 +B1759394553752N00649196EA0000001088 +B1759414553762N00649192EA0000001085 +B1759434553767N00649185EA0000001083 +B1759454553765N00649177EA0000001081 +B1759474553759N00649174EA0000001078 +B1759494553752N00649177EA0000001076 +B1759514553744N00649184EA0000001074 +B1759534553736N00649187EA0000001072 +B1759554553727N00649186EA0000001069 +B1759584553718N00649184EA0000001066 +B1800004553711N00649183EA0000001064 +B1800024553704N00649180EA0000001063 +B1800044553697N00649174EA0000001061 +B1800064553690N00649169EA0000001059 +B1800084553684N00649167EA0000001057 +B1800104553680N00649160EA0000001055 +B1800124553682N00649150EA0000001053 +B1800144553685N00649142EA0000001051 +B1800164553687N00649133EA0000001049 +B1800184553687N00649122EA0000001045 +B1800204553689N00649108EA0000001042 +B1800224553691N00649095EA0000001039 +B1800244553690N00649081EA0000001035 +B1800264553689N00649067EA0000001031 +B1800284553689N00649054EA0000001029 +B1800304553689N00649048EA0000001027 +B1800324553688N00649046EA0000001026 +B1800344553689N00649046EA0000001025 +B1800364553689N00649046EA0000001025 +B1800384553689N00649046EA0000001025 +B1800404553689N00649046EA0000001025 +B1800424553689N00649046EA0000001025 +B1800444553689N00649046EA0000001025 +B1800464553689N00649046EA0000001025 +B1800484553689N00649046EA0000001025 +B1800504553689N00649046EA0000001025 +B1800524553689N00649046EA0000001025 +B1800544553689N00649046EA0000001025 +B1800564553689N00649046EA0000001025 +B1800584553689N00649046EA0000001025 +B1801004553689N00649046EA0000001025 +B1801024553689N00649046EA0000001025 +B1801044553689N00649046EA0000001025 +B1801064553689N00649046EA0000001025 +B1801084553689N00649046EA0000001025 +B1801104553689N00649046EA0000001025 +B1801124553689N00649046EA0000001025 +B1801144553689N00649046EA0000001025 +B1801164553689N00649046EA0000001025 +B1801184553689N00649046EA0000001025 +B1801204553689N00649046EA0000001025 +B1801224553689N00649046EA0000001025 +B1801244553689N00649046EA0000001025 +B1801264553689N00649046EA0000001025 +B1801284553689N00649046EA0000001025 +B1801304553689N00649046EA0000001025 +B1801324553689N00649046EA0000001025 +B1801344553689N00649051EA0000001028 +B1801374553689N00649050EA0000001027 +B1801394553689N00649049EA0000001027 +B1801414553689N00649048EA0000001026 +B1801434553689N00649047EA0000001026 +B1801454553689N00649046EA0000001025 +B1801474553689N00649045EA0000001025 +B1801494553689N00649044EA0000001025 +B1801514553689N00649042EA0000001025 +B1801534553689N00649041EA0000001025 +B1801554553689N00649041EA0000001025 +B1801574553689N00649041EA0000001025 +B1801594553689N00649041EA0000001025 +B1802014553689N00649041EA0000001025 +B1802034553689N00649041EA0000001025 +B1802054553689N00649041EA0000001025 +B1802074553689N00649041EA0000001025 diff --git a/examples/data/igc/Tom-Payne.igc b/examples/data/igc/Tom-Payne.igc new file mode 100644 index 0000000000..44fc51cb98 --- /dev/null +++ b/examples/data/igc/Tom-Payne.igc @@ -0,0 +1,9879 @@ +AFLY05094 +HFDTE190411 +HFFXA100 +HFPLTPILOT:Tom Payne +HFGTYGLIDERTYPE:Axis Mercury +HFGIDGLIDERID: +HFDTM100GPSDATUM:WGS84 +HFGPSGPS:FURUNO GH-80 +HFRFWFIRMWAREVERSION:1.22 +HFRHWHARDWAREVERSION:1.00 +HFFTYFRTYPE:FLYTEC,5020 +I013638TAS +B0848484556256N00651095EA0205102039000 +B0848514556256N00651095EA0205102039000 +B0848544556255N00651096EA0205102039000 +B0848574556255N00651096EA0205002039000 +B0849004556255N00651096EA0205002039000 +B0849034556254N00651097EA0205102039000 +B0849064556254N00651097EA0205002040000 +B0849094556254N00651097EA0205002040000 +B0849124556253N00651096EA0205002040000 +B0849154556254N00651096EA0205002040000 +B0849184556254N00651096EA0205002041000 +B0849214556254N00651097EA0205002041000 +B0849244556254N00651097EA0205002041000 +B0849274556254N00651097EA0205002042000 +B0849304556254N00651098EA0205002042000 +B0849334556253N00651098EA0205002042000 +B0849364556253N00651097EA0205002043000 +B0849394556253N00651097EA0205002043000 +B0849424556254N00651098EA0204902043000 +B0849454556254N00651097EA0204702043000 +B0849484556257N00651102EA0204702043000 +B0849514556263N00651112EA0204602043000 +B0849544556269N00651124EA0204702043000 +B0849574556275N00651136EA0204402043000 +B0850004556285N00651145EA0204302042000 +B0850034556295N00651154EA0204002042000 +B0850064556305N00651165EA0203402042000 +B0850094556318N00651177EA0203202041000 +B0850124556327N00651189EA0203102040000 +B0850154556332N00651208EA0202702039000 +B0850194556336N00651233EA0202402037000 +B0850224556336N00651249EA0202302036000 +B0850254556334N00651265EA0201902035000 +B0850284556327N00651279EA0201602033000 +B0850314556318N00651293EA0200502031000 +B0850344556308N00651313EA0201002028000 +B0850374556302N00651328EA0201702026000 +B0850404556295N00651338EA0201802024000 +B0850434556287N00651353EA0203102023000 +B0850464556281N00651362EA0203502023000 +B0850494556275N00651368EA0202902023000 +B0850534556259N00651373EA0203102024000 +B0850564556243N00651365EA0202502024000 +B0850594556226N00651359EA0202502023000 +B0851024556211N00651354EA0202302023000 +B0851054556194N00651345EA0203302023000 +B0851084556179N00651335EA0203002023000 +B0851114556163N00651329EA0202602023000 +B0851144556146N00651327EA0202702023000 +B0851174556129N00651326EA0203302023000 +B0851204556114N00651326EA0203302024000 +B0851234556099N00651335EA0203502024000 +B0851264556092N00651350EA0203502025000 +B0851294556093N00651366EA0204602026000 +B0851324556094N00651378EA0205202027000 +B0851354556099N00651389EA0205702029000 +B0851384556112N00651389EA0206002031000 +B0851414556124N00651373EA0206602034000 +B0851444556122N00651347EA0207202037000 +B0851474556108N00651329EA0207702040000 +B0851504556091N00651329EA0208202043000 +B0851534556082N00651343EA0208902047000 +B0851564556085N00651357EA0209302050000 +B0851594556094N00651364EA0209502054000 +B0852024556106N00651357EA0210002058000 +B0852054556114N00651341EA0210302062000 +B0852084556115N00651317EA0210702066000 +B0852114556104N00651295EA0211102070000 +B0852144556087N00651292EA0211702074000 +B0852174556074N00651301EA0211902078000 +B0852214556070N00651323EA0212402083000 +B0852244556080N00651325EA0212502087000 +B0852274556093N00651314EA0212602091000 +B0852304556095N00651291EA0212502095000 +B0852334556085N00651269EA0212702098000 +B0852364556066N00651256EA0213302102000 +B0852394556049N00651261EA0213602105000 +B0852424556044N00651276EA0213902109000 +B0852454556050N00651289EA0214502112000 +B0852484556057N00651297EA0214502115000 +B0852514556070N00651294EA0214302119000 +B0852544556079N00651277EA0214302121000 +B0852574556081N00651252EA0213702124000 +B0853004556078N00651225EA0213502125000 +B0853034556062N00651201EA0213002126000 +B0853064556040N00651195EA0213802126000 +B0853094556028N00651202EA0213502127000 +B0853124556025N00651216EA0213402128000 +B0853154556031N00651226EA0213802128000 +B0853184556040N00651228EA0213402129000 +B0853214556052N00651227EA0213402129000 +B0853244556065N00651223EA0213402129000 +B0853274556079N00651215EA0213502129000 +B0853304556094N00651206EA0213802130000 +B0853334556108N00651196EA0214102130000 +B0853364556122N00651184EA0214702131000 +B0853394556132N00651165EA0215402132000 +B0853424556139N00651143EA0216002134000 +B0853464556147N00651114EA0217002138000 +B0853494556149N00651092EA0217602141000 +B0853524556146N00651068EA0218602144000 +B0853554556132N00651059EA0219602149000 +B0853584556123N00651069EA0220702153000 +B0854014556125N00651082EA0221902157000 +B0854044556133N00651087EA0222702162000 +B0854074556146N00651081EA0224102169000 +B0854104556151N00651063EA0225102177000 +B0854134556145N00651037EA0226402186000 +B0854164556133N00651019EA0227502194000 +B0854194556118N00651012EA0229002204000 +B0854224556106N00651018EA0229902213000 +B0854254556106N00651031EA0231302221000 +B0854284556118N00651027EA0232802231000 +B0854314556124N00651003EA0234502242000 +B0854344556124N00650980EA0235902253000 +B0854374556116N00650959EA0236802265000 +B0854404556098N00650953EA0237402275000 +B0854434556085N00650969EA0238602286000 +B0854464556088N00650984EA0240002297000 +B0854494556099N00650990EA0241302307000 +B0854524556112N00650982EA0242602318000 +B0854554556116N00650967EA0243302330000 +B0854584556104N00650951EA0243702341000 +B0855014556084N00650951EA0244802351000 +B0855044556075N00650967EA0245802361000 +B0855074556078N00650986EA0247102372000 +B0855104556086N00651001EA0248602382000 +B0855134556097N00651003EA0249602394000 +B0855164556105N00650993EA0250302403000 +B0855194556101N00650977EA0250202414000 +B0855224556085N00650965EA0250802424000 +B0855254556066N00650970EA0252302433000 +B0855284556055N00650988EA0253302443000 +B0855314556056N00651009EA0254302453000 +B0855354556069N00651006EA0254802465000 +B0855384556070N00650986EA0255602474000 +B0855414556055N00650973EA0256002482000 +B0855444556037N00650974EA0257302491000 +B0855474556026N00650991EA0258102499000 +B0855504556030N00651009EA0259002507000 +B0855534556037N00651011EA0259302513000 +B0855564556042N00650997EA0259202521000 +B0855594556037N00650977EA0259702529000 +B0856024556026N00650960EA0260402536000 +B0856054556012N00650942EA0261102544000 +B0856094555998N00650917EA0261802553000 +B0856124555986N00650899EA0262002560000 +B0856154555969N00650897EA0261702566000 +B0856184555952N00650910EA0261802572000 +B0856214555944N00650934EA0262302577000 +B0856244555950N00650949EA0262802582000 +B0856274555962N00650952EA0263102586000 +B0856304555972N00650939EA0263702591000 +B0856334555974N00650917EA0264502597000 +B0856364555970N00650896EA0264502602000 +B0856394555959N00650878EA0264402607000 +B0856424555944N00650862EA0264402611000 +B0856454555928N00650847EA0264102614000 +B0856484555917N00650829EA0264002617000 +B0856514555908N00650807EA0263702619000 +B0856544555897N00650784EA0263702621000 +B0856574555885N00650766EA0263502622000 +B0857004555872N00650750EA0263202623000 +B0857034555859N00650733EA0263102624000 +B0857064555842N00650721EA0263102625000 +B0857094555829N00650709EA0262302625000 +B0857124555816N00650690EA0261202624000 +B0857154555804N00650668EA0260502623000 +B0857184555791N00650647EA0259402621000 +B0857214555778N00650620EA0258402617000 +B0857244555766N00650594EA0258002614000 +B0857274555752N00650572EA0256902610000 +B0857304555736N00650548EA0256202605000 +B0857334555720N00650521EA0255502601000 +B0857374555701N00650486EA0255002595000 +B0857404555687N00650459EA0254202590000 +B0857434555673N00650431EA0253802585000 +B0857464555659N00650403EA0253202579000 +B0857494555646N00650373EA0252802574000 +B0857524555634N00650344EA0252302569000 +B0857554555622N00650314EA0251602564000 +B0857584555610N00650284EA0251502558000 +B0858014555599N00650255EA0251302553000 +B0858044555586N00650224EA0251302549000 +B0858074555573N00650192EA0252202545000 +B0858104555563N00650165EA0252302543000 +B0858134555548N00650140EA0252502541000 +B0858164555536N00650114EA0252702539000 +B0858194555532N00650087EA0252502537000 +B0858224555527N00650056EA0251902536000 +B0858254555521N00650019EA0251902534000 +B0858284555515N00649983EA0251602532000 +B0858314555509N00649947EA0251702530000 +B0858344555505N00649913EA0251802528000 +B0858374555502N00649876EA0252702526000 +B0858404555501N00649842EA0253602526000 +B0858434555499N00649809EA0254202526000 +B0858464555491N00649782EA0254802527000 +B0858494555479N00649765EA0255202529000 +B0858524555465N00649768EA0256002531000 +B0858554555463N00649780EA0256502533000 +B0858584555473N00649788EA0256902537000 +B0859024555492N00649777EA0257202540000 +B0859054555503N00649752EA0258102544000 +B0859084555509N00649728EA0258702548000 +B0859114555511N00649700EA0259402553000 +B0859144555508N00649673EA0260202557000 +B0859174555507N00649645EA0260402562000 +B0859204555496N00649622EA0260602567000 +B0859234555482N00649607EA0261602572000 +B0859264555467N00649597EA0262002577000 +B0859294555453N00649601EA0262002581000 +B0859324555450N00649615EA0262602585000 +B0859354555461N00649621EA0262602590000 +B0859384555477N00649605EA0262602593000 +B0859414555479N00649577EA0263402597000 +B0859444555474N00649554EA0263802601000 +B0859474555466N00649529EA0264202606000 +B0859504555456N00649504EA0264302610000 +B0859534555444N00649480EA0264602613000 +B0859564555431N00649459EA0264802617000 +B0859594555420N00649439EA0264202620000 +B0900024555408N00649417EA0263502622000 +B0900054555394N00649395EA0262802623000 +B0900084555379N00649368EA0262302623000 +B0900114555366N00649339EA0262202623000 +B0900144555356N00649312EA0261502622000 +B0900174555345N00649283EA0260502621000 +B0900204555330N00649251EA0260502618000 +B0900234555316N00649222EA0260602617000 +B0900264555305N00649192EA0260502615000 +B0900304555291N00649151EA0260402613000 +B0900334555279N00649121EA0260102611000 +B0900364555267N00649090EA0259802609000 +B0900394555256N00649059EA0259602608000 +B0900424555246N00649026EA0259102605000 +B0900454555234N00648994EA0259002603000 +B0900484555224N00648967EA0260402601000 +B0900514555220N00648953EA0261202602000 +B0900544555215N00648930EA0262202602000 +B0900574555212N00648909EA0263302605000 +B0901004555208N00648889EA0263602607000 +B0901034555203N00648864EA0264702611000 +B0901064555198N00648841EA0265302615000 +B0901094555190N00648820EA0265602619000 +B0901124555185N00648802EA0265502623000 +B0901154555185N00648779EA0266102626000 +B0901184555184N00648759EA0266402630000 +B0901214555182N00648737EA0266602634000 +B0901244555184N00648711EA0267502637000 +B0901274555189N00648686EA0268302641000 +B0901304555198N00648661EA0269002646000 +B0901334555198N00648633EA0269402650000 +B0901364555186N00648618EA0270002655000 +B0901394555172N00648624EA0270502660000 +B0901424555169N00648641EA0270902664000 +B0901454555177N00648656EA0271102668000 +B0901484555193N00648658EA0271402672000 +B0901514555204N00648642EA0272102677000 +B0901544555206N00648619EA0272902682000 +B0901574555204N00648598EA0273202686000 +B0902004555198N00648577EA0274002691000 +B0902034555189N00648565EA0274002697000 +B0902074555174N00648573EA0274402703000 +B0902104555175N00648593EA0275102707000 +B0902134555184N00648605EA0275402712000 +B0902164555200N00648604EA0275802716000 +B0902194555214N00648592EA0276302720000 +B0902224555224N00648571EA0276502725000 +B0902254555226N00648545EA0277002729000 +B0902284555224N00648522EA0277402733000 +B0902314555220N00648500EA0277802737000 +B0902344555213N00648476EA0278302742000 +B0902374555207N00648454EA0278802747000 +B0902404555199N00648435EA0279002751000 +B0902434555190N00648416EA0279402756000 +B0902464555182N00648395EA0279702760000 +B0902494555175N00648374EA0279702764000 +B0902524555167N00648354EA0280002768000 +B0902554555159N00648337EA0279702771000 +B0902584555148N00648321EA0279402774000 +B0903014555135N00648304EA0279402776000 +B0903044555123N00648289EA0278902778000 +B0903074555108N00648271EA0278102779000 +B0903104555091N00648249EA0278002779000 +B0903134555078N00648227EA0277602778000 +B0903164555066N00648205EA0277002778000 +B0903194555053N00648184EA0276302776000 +B0903224555036N00648164EA0275402774000 +B0903254555021N00648137EA0275102771000 +B0903284555007N00648110EA0274302768000 +B0903314554988N00648084EA0272902764000 +B0903354554964N00648049EA0272402758000 +B0903384554949N00648022EA0271302752000 +B0903414554933N00647995EA0270902747000 +B0903444554918N00647971EA0270302741000 +B0903474554900N00647941EA0269002735000 +B0903504554877N00647910EA0268302729000 +B0903534554855N00647880EA0267802723000 +B0903564554834N00647849EA0267202716000 +B0903594554812N00647817EA0266302710000 +B0904024554792N00647782EA0265402703000 +B0904054554770N00647745EA0265102697000 +B0904084554748N00647712EA0265002691000 +B0904114554726N00647682EA0264002685000 +B0904144554702N00647650EA0263402679000 +B0904174554681N00647619EA0263302673000 +B0904204554666N00647585EA0262502667000 +B0904234554651N00647547EA0261802661000 +B0904264554635N00647509EA0261602655000 +B0904294554620N00647475EA0260902649000 +B0904324554605N00647439EA0260202643000 +B0904354554589N00647402EA0259702637000 +B0904384554573N00647365EA0259002631000 +B0904414554558N00647326EA0258402624000 +B0904444554543N00647289EA0257802618000 +B0904474554527N00647253EA0257302612000 +B0904504554513N00647218EA0256702606000 +B0904534554499N00647185EA0255702600000 +B0904574554480N00647137EA0255102592000 +B0905004554466N00647104EA0254502586000 +B0905034554452N00647072EA0253802579000 +B0905064554438N00647039EA0253302573000 +B0905094554425N00647005EA0253102567000 +B0905124554412N00646971EA0253002562000 +B0905154554397N00646941EA0253002557000 +B0905184554383N00646915EA0252302553000 +B0905214554368N00646884EA0251202548000 +B0905244554355N00646851EA0251002543000 +B0905274554342N00646821EA0250302538000 +B0905304554328N00646789EA0249702533000 +B0905334554314N00646757EA0249102528000 +B0905364554301N00646724EA0248402523000 +B0905394554287N00646692EA0247702518000 +B0905424554273N00646658EA0247002512000 +B0905454554260N00646623EA0246602506000 +B0905484554246N00646589EA0246302501000 +B0905514554235N00646556EA0246002496000 +B0905544554223N00646524EA0245302490000 +B0905574554208N00646490EA0244702485000 +B0906004554192N00646458EA0244202480000 +B0906034554178N00646425EA0243802474000 +B0906064554164N00646393EA0243202469000 +B0906094554150N00646359EA0242902464000 +B0906124554136N00646326EA0242102459000 +B0906164554117N00646283EA0241402451000 +B0906194554103N00646250EA0241002446000 +B0906224554091N00646216EA0240402440000 +B0906254554076N00646184EA0239902435000 +B0906284554061N00646152EA0239202429000 +B0906314554045N00646121EA0238602424000 +B0906344554031N00646089EA0238402419000 +B0906374554015N00646059EA0237702413000 +B0906404554000N00646028EA0237102408000 +B0906434553985N00645996EA0236702403000 +B0906464553971N00645963EA0236102397000 +B0906494553958N00645930EA0235602392000 +B0906524553943N00645899EA0235002387000 +B0906554553928N00645867EA0234502382000 +B0906584553912N00645835EA0234002377000 +B0907014553897N00645803EA0233402372000 +B0907044553883N00645770EA0233002367000 +B0907074553870N00645737EA0232302362000 +B0907104553856N00645703EA0231702356000 +B0907134553843N00645668EA0231402351000 +B0907164553832N00645635EA0231002346000 +B0907194553823N00645602EA0230502341000 +B0907224553812N00645568EA0230002336000 +B0907254553801N00645535EA0229502331000 +B0907284553790N00645503EA0229202325000 +B0907314553779N00645473EA0228602320000 +B0907354553762N00645431EA0228102313000 +B0907384553748N00645402EA0227602308000 +B0907414553733N00645373EA0227002303000 +B0907444553718N00645345EA0226502298000 +B0907474553705N00645314EA0225802292000 +B0907504553691N00645284EA0225102287000 +B0907534553675N00645257EA0224302281000 +B0907564553655N00645234EA0223402275000 +B0907594553633N00645213EA0222702268000 +B0908024553611N00645197EA0222102262000 +B0908054553587N00645182EA0221502256000 +B0908084553566N00645165EA0220902250000 +B0908114553543N00645148EA0220302244000 +B0908144553519N00645135EA0219902239000 +B0908174553495N00645125EA0219502233000 +B0908204553469N00645117EA0218902227000 +B0908234553444N00645109EA0218602221000 +B0908264553421N00645103EA0218102215000 +B0908294553396N00645098EA0217502209000 +B0908324553371N00645093EA0216702204000 +B0908354553348N00645087EA0216602199000 +B0908384553326N00645081EA0215802194000 +B0908414553301N00645075EA0215002188000 +B0908444553275N00645065EA0214702183000 +B0908474553250N00645053EA0214902177000 +B0908514553227N00645039EA0215402172000 +B0908544553213N00645033EA0215802169000 +B0908574553196N00645032EA0216202167000 +B0909004553178N00645030EA0216202166000 +B0909034553158N00645025EA0216802165000 +B0909064553140N00645015EA0217002164000 +B0909094553121N00645002EA0217102165000 +B0909124553104N00644984EA0217402165000 +B0909154553089N00644965EA0217102165000 +B0909184553075N00644950EA0216502165000 +B0909214553060N00644938EA0215802164000 +B0909244553045N00644936EA0215302162000 +B0909274553042N00644952EA0215502161000 +B0909304553044N00644966EA0215202160000 +B0909334553048N00644984EA0215002158000 +B0909364553051N00645001EA0215502157000 +B0909394553055N00645017EA0215602156000 +B0909424553058N00645032EA0216202156000 +B0909454553060N00645048EA0216302157000 +B0909484553062N00645066EA0216002157000 +B0909514553072N00645084EA0215802157000 +B0909544553081N00645098EA0215202156000 +B0909574553092N00645114EA0215602156000 +B0910004553096N00645125EA0215102155000 +B0910034553104N00645134EA0214502154000 +B0910064553114N00645146EA0214902153000 +B0910094553120N00645154EA0214802152000 +B0910134553131N00645163EA0214302151000 +B0910164553142N00645167EA0214402150000 +B0910194553153N00645173EA0213902149000 +B0910224553167N00645178EA0214302148000 +B0910254553178N00645179EA0214502147000 +B0910284553189N00645181EA0215002147000 +B0910314553200N00645182EA0215402147000 +B0910344553211N00645183EA0215702148000 +B0910374553223N00645183EA0216502149000 +B0910404553232N00645185EA0216702151000 +B0910434553240N00645201EA0216802153000 +B0910464553237N00645222EA0216802155000 +B0910494553226N00645235EA0215802155000 +B0910524553208N00645234EA0214702155000 +B0910554553198N00645214EA0213802153000 +B0910584553203N00645190EA0213602151000 +B0911014553215N00645174EA0214402149000 +B0911044553227N00645165EA0215202147000 +B0911074553239N00645156EA0215802147000 +B0911104553248N00645136EA0216502147000 +B0911134553240N00645110EA0217202148000 +B0911164553221N00645104EA0218302149000 +B0911194553210N00645118EA0218802151000 +B0911224553218N00645130EA0219502154000 +B0911254553228N00645119EA0220802158000 +B0911284553230N00645096EA0221302162000 +B0911314553215N00645075EA0222302166000 +B0911344553197N00645073EA0223102172000 +B0911384553186N00645096EA0223202179000 +B0911414553194N00645117EA0223602184000 +B0911444553209N00645115EA0224402189000 +B0911474553214N00645095EA0224902195000 +B0911504553205N00645072EA0225202200000 +B0911534553186N00645071EA0226302205000 +B0911564553175N00645090EA0227002211000 +B0911594553179N00645111EA0227102216000 +B0912024553194N00645117EA0227202221000 +B0912054553204N00645104EA0227902227000 +B0912084553203N00645080EA0228102232000 +B0912114553192N00645059EA0228502237000 +B0912144553175N00645057EA0228802242000 +B0912174553164N00645074EA0229002247000 +B0912204553166N00645098EA0229102251000 +B0912234553179N00645114EA0229602255000 +B0912264553193N00645110EA0230302259000 +B0912294553203N00645099EA0231002264000 +B0912324553210N00645089EA0231302270000 +B0912354553213N00645067EA0231302274000 +B0912384553204N00645040EA0232402279000 +B0912414553189N00645026EA0232902285000 +B0912444553174N00645031EA0233102290000 +B0912474553165N00645050EA0233202294000 +B0912504553172N00645067EA0233102298000 +B0912534553188N00645075EA0234002301000 +B0912564553199N00645071EA0234202305000 +B0912594553210N00645055EA0234402309000 +B0913024553214N00645030EA0235102312000 +B0913054553205N00645005EA0235702316000 +B0913084553190N00644991EA0236202321000 +B0913114553177N00644998EA0236702325000 +B0913144553176N00645021EA0237202330000 +B0913184553191N00645035EA0237502336000 +B0913214553207N00645027EA0238202340000 +B0913244553219N00645017EA0238702345000 +B0913274553227N00644995EA0238902349000 +B0913304553224N00644965EA0239902353000 +B0913334553212N00644947EA0241002358000 +B0913364553197N00644949EA0241702363000 +B0913394553192N00644966EA0242202368000 +B0913424553201N00644972EA0242802373000 +B0913454553213N00644960EA0243102378000 +B0913484553215N00644933EA0243702383000 +B0913514553204N00644916EA0244902388000 +B0913544553192N00644920EA0245602394000 +B0913574553194N00644933EA0246002399000 +B0914004553207N00644929EA0246302405000 +B0914034553213N00644904EA0246802410000 +B0914064553206N00644880EA0247602416000 +B0914094553193N00644876EA0247802422000 +B0914124553188N00644892EA0248902427000 +B0914154553197N00644899EA0249202433000 +B0914184553208N00644881EA0249502439000 +B0914214553203N00644854EA0250002443000 +B0914244553191N00644848EA0250102448000 +B0914274553180N00644859EA0250602452000 +B0914304553179N00644875EA0251302457000 +B0914334553190N00644877EA0251402462000 +B0914364553201N00644857EA0252002467000 +B0914394553198N00644829EA0252502472000 +B0914424553185N00644818EA0252602477000 +B0914454553173N00644823EA0252502481000 +B0914494553174N00644845EA0253102486000 +B0914524553184N00644853EA0253502490000 +B0914554553198N00644862EA0253702494000 +B0914584553212N00644864EA0254202498000 +B0915014553224N00644847EA0254502503000 +B0915044553227N00644821EA0254602507000 +B0915074553219N00644794EA0254902511000 +B0915104553205N00644777EA0255802515000 +B0915134553190N00644766EA0255602520000 +B0915164553174N00644761EA0255402524000 +B0915194553157N00644758EA0255102527000 +B0915224553139N00644756EA0254402529000 +B0915254553118N00644754EA0253702530000 +B0915284553097N00644752EA0253102530000 +B0915314553075N00644750EA0252602529000 +B0915344553055N00644746EA0252302528000 +B0915374553034N00644742EA0251602526000 +B0915404553008N00644736EA0252002524000 +B0915434552987N00644727EA0252002523000 +B0915464552965N00644717EA0251602521000 +B0915494552943N00644703EA0252302520000 +B0915524552924N00644692EA0253402519000 +B0915554552907N00644684EA0254002520000 +B0915584552889N00644687EA0254702522000 +B0916014552886N00644702EA0255102524000 +B0916044552897N00644699EA0255602526000 +B0916074552900N00644675EA0256402529000 +B0916104552889N00644650EA0257102532000 +B0916134552871N00644643EA0257702535000 +B0916174552857N00644657EA0258102541000 +B0916204552863N00644665EA0258302544000 +B0916234552873N00644650EA0258702548000 +B0916264552871N00644623EA0259202553000 +B0916294552858N00644600EA0259702557000 +B0916324552838N00644591EA0259802561000 +B0916354552820N00644592EA0260302566000 +B0916384552805N00644598EA0260202570000 +B0916414552788N00644603EA0260002573000 +B0916444552766N00644596EA0259502576000 +B0916474552741N00644583EA0259502578000 +B0916504552718N00644572EA0259602580000 +B0916534552700N00644558EA0259002581000 +B0916564552682N00644539EA0257902582000 +B0916594552659N00644519EA0256402581000 +B0917024552633N00644498EA0256202579000 +B0917054552611N00644478EA0255702576000 +B0917084552590N00644456EA0254902573000 +B0917114552566N00644434EA0254202570000 +B0917144552541N00644416EA0254902567000 +B0917174552521N00644402EA0256102564000 +B0917204552503N00644391EA0256502564000 +B0917234552484N00644389EA0257102563000 +B0917264552469N00644397EA0257502564000 +B0917294552471N00644410EA0257702565000 +B0917324552482N00644404EA0258302566000 +B0917354552490N00644382EA0259202568000 +B0917384552489N00644356EA0259502570000 +B0917414552475N00644334EA0259802572000 +B0917454552453N00644336EA0260002576000 +B0917484552452N00644348EA0260502577000 +B0917514552464N00644345EA0260802580000 +B0917544552474N00644323EA0261102583000 +B0917574552471N00644294EA0261702586000 +B0918004552457N00644272EA0261702589000 +B0918034552436N00644255EA0261902592000 +B0918064552414N00644238EA0261602594000 +B0918094552386N00644217EA0260802595000 +B0918124552358N00644195EA0261002596000 +B0918154552334N00644174EA0260302596000 +B0918184552308N00644150EA0259102595000 +B0918214552282N00644128EA0258602594000 +B0918244552259N00644107EA0257202591000 +B0918274552233N00644085EA0255902588000 +B0918304552207N00644062EA0255502583000 +B0918334552183N00644043EA0255002579000 +B0918364552160N00644024EA0253902574000 +B0918394552135N00644006EA0252902569000 +B0918424552109N00643988EA0252202564000 +B0918454552086N00643968EA0251402558000 +B0918484552063N00643947EA0250602552000 +B0918514552039N00643924EA0249802545000 +B0918544552014N00643901EA0249402539000 +B0918574551992N00643879EA0248402533000 +B0919004551968N00643857EA0247602526000 +B0919034551944N00643837EA0246702519000 +B0919074551911N00643811EA0246002510000 +B0919104551886N00643789EA0245402503000 +B0919134551861N00643767EA0244802496000 +B0919164551836N00643744EA0244402489000 +B0919194551811N00643722EA0244102483000 +B0919224551786N00643701EA0244202477000 +B0919254551763N00643682EA0243902472000 +B0919284551739N00643662EA0243202467000 +B0919314551714N00643639EA0242502462000 +B0919344551689N00643616EA0242502457000 +B0919374551665N00643596EA0242302452000 +B0919404551640N00643578EA0241902448000 +B0919434551616N00643560EA0241902444000 +B0919464551593N00643541EA0241702440000 +B0919494551571N00643523EA0241302436000 +B0919524551547N00643504EA0241002433000 +B0919554551524N00643487EA0240702429000 +B0919584551502N00643470EA0240302425000 +B0920014551479N00643452EA0240102422000 +B0920044551456N00643434EA0239702418000 +B0920074551433N00643415EA0239302415000 +B0920104551409N00643397EA0239102411000 +B0920134551385N00643380EA0238802408000 +B0920164551362N00643365EA0238302404000 +B0920194551338N00643349EA0238002401000 +B0920224551315N00643333EA0237902397000 +B0920264551287N00643308EA0237502393000 +B0920294551265N00643290EA0237202389000 +B0920324551242N00643273EA0236502386000 +B0920354551218N00643255EA0235802383000 +B0920384551194N00643234EA0235502380000 +B0920414551171N00643213EA0235202376000 +B0920444551148N00643192EA0234802373000 +B0920474551125N00643173EA0234302369000 +B0920504551102N00643154EA0233802365000 +B0920534551079N00643137EA0233502362000 +B0920564551057N00643120EA0233202358000 +B0920594551034N00643104EA0232702354000 +B0921024551011N00643086EA0232202350000 +B0921054550987N00643069EA0231702346000 +B0921084550964N00643050EA0231102342000 +B0921114550940N00643032EA0230702338000 +B0921144550917N00643015EA0230102333000 +B0921174550893N00642997EA0229602329000 +B0921204550870N00642980EA0229102325000 +B0921234550848N00642962EA0228502320000 +B0921264550825N00642946EA0227802315000 +B0921294550803N00642930EA0226902310000 +B0921324550781N00642914EA0226502305000 +B0921354550760N00642901EA0226002299000 +B0921384550736N00642890EA0225402294000 +B0921414550714N00642880EA0225002289000 +B0921444550692N00642869EA0224502283000 +B0921484550666N00642856EA0224002277000 +B0921514550647N00642846EA0223402271000 +B0921544550629N00642837EA0223202266000 +B0921574550609N00642827EA0222602261000 +B0922004550587N00642815EA0221802256000 +B0922034550564N00642799EA0221102250000 +B0922064550541N00642783EA0220402245000 +B0922094550517N00642769EA0219902239000 +B0922124550495N00642754EA0219302234000 +B0922154550471N00642738EA0218402228000 +B0922184550448N00642720EA0217702222000 +B0922214550424N00642705EA0216702216000 +B0922244550398N00642693EA0215902210000 +B0922274550373N00642683EA0215202203000 +B0922304550349N00642674EA0214202196000 +B0922334550323N00642663EA0213402189000 +B0922364550298N00642652EA0212402182000 +B0922394550272N00642639EA0211502175000 +B0922424550247N00642626EA0210802167000 +B0922454550222N00642614EA0210202160000 +B0922484550197N00642602EA0209302152000 +B0922514550171N00642590EA0208602145000 +B0922544550146N00642576EA0208102137000 +B0922574550121N00642563EA0207602130000 +B0923004550096N00642552EA0207102123000 +B0923034550072N00642541EA0206902116000 +B0923074550042N00642525EA0206802108000 +B0923104550019N00642515EA0206302102000 +B0923134549996N00642502EA0205902096000 +B0923164549973N00642488EA0205602091000 +B0923194549951N00642474EA0205202086000 +B0923224549927N00642460EA0204502081000 +B0923254549901N00642449EA0204202075000 +B0923284549876N00642438EA0203602070000 +B0923314549850N00642426EA0203302065000 +B0923344549826N00642415EA0203002060000 +B0923374549803N00642404EA0202702056000 +B0923404549780N00642391EA0202702051000 +B0923434549757N00642379EA0202602047000 +B0923464549734N00642367EA0202602044000 +B0923494549713N00642353EA0202602040000 +B0923524549693N00642342EA0202402037000 +B0923554549672N00642332EA0201902035000 +B0923584549649N00642319EA0202002032000 +B0924014549628N00642306EA0201602029000 +B0924044549606N00642293EA0201102026000 +B0924074549584N00642280EA0201202024000 +B0924104549565N00642268EA0201602021000 +B0924134549549N00642259EA0201502020000 +B0924164549532N00642250EA0201202018000 +B0924194549514N00642241EA0201002017000 +B0924234549491N00642227EA0201102015000 +B0924264549474N00642220EA0201102013000 +B0924294549457N00642212EA0201802012000 +B0924324549443N00642201EA0202202012000 +B0924354549426N00642191EA0202402011000 +B0924384549409N00642185EA0202902011000 +B0924414549393N00642183EA0203002011000 +B0924444549375N00642178EA0203502012000 +B0924474549360N00642168EA0204002013000 +B0924504549343N00642160EA0203602014000 +B0924534549325N00642150EA0203502015000 +B0924564549307N00642141EA0203202016000 +B0924594549288N00642130EA0203802017000 +B0925024549272N00642121EA0204102018000 +B0925054549255N00642111EA0204502020000 +B0925084549239N00642099EA0205102021000 +B0925114549224N00642088EA0205402023000 +B0925144549208N00642084EA0205702025000 +B0925174549196N00642088EA0206102027000 +B0925204549188N00642098EA0206202030000 +B0925234549185N00642109EA0206402031000 +B0925264549192N00642117EA0206402034000 +B0925294549203N00642117EA0206602036000 +B0925324549214N00642118EA0206902040000 +B0925354549225N00642117EA0206602043000 +B0925384549237N00642118EA0206902045000 +B0925414549251N00642122EA0207402048000 +B0925444549262N00642125EA0207702050000 +B0925474549272N00642133EA0208402053000 +B0925514549285N00642144EA0209202056000 +B0925544549296N00642141EA0209602060000 +B0925574549302N00642118EA0210302063000 +B0926004549294N00642094EA0210802067000 +B0926034549278N00642090EA0211402070000 +B0926064549268N00642101EA0212202074000 +B0926094549268N00642113EA0212602077000 +B0926124549278N00642111EA0213002081000 +B0926154549282N00642088EA0213502086000 +B0926184549273N00642065EA0214102092000 +B0926214549258N00642054EA0214402097000 +B0926244549245N00642061EA0214602102000 +B0926274549243N00642075EA0215102105000 +B0926304549251N00642078EA0215402109000 +B0926334549260N00642064EA0215702113000 +B0926364549258N00642038EA0216002117000 +B0926394549245N00642016EA0216502122000 +B0926424549230N00642002EA0216702126000 +B0926454549212N00641997EA0216802129000 +B0926484549195N00642005EA0217002133000 +B0926514549193N00642019EA0217102136000 +B0926544549202N00642027EA0217402139000 +B0926574549211N00642034EA0217902142000 +B0927004549220N00642039EA0218402145000 +B0927034549229N00642034EA0218602148000 +B0927064549237N00642014EA0218902152000 +B0927094549234N00641987EA0219102155000 +B0927124549221N00641963EA0219502158000 +B0927154549202N00641950EA0219802162000 +B0927194549184N00641956EA0220202166000 +B0927224549182N00641968EA0221102169000 +B0927254549184N00641979EA0221502171000 +B0927284549192N00641979EA0221502174000 +B0927314549202N00641963EA0222602179000 +B0927344549204N00641937EA0223002184000 +B0927374549195N00641907EA0223102188000 +B0927404549178N00641886EA0224002193000 +B0927434549161N00641875EA0225202198000 +B0927464549146N00641879EA0225702203000 +B0927494549139N00641892EA0226502209000 +B0927524549140N00641902EA0227002211000 +B0927554549147N00641906EA0227202216000 +B0927584549157N00641893EA0227702222000 +B0928014549163N00641868EA0228202227000 +B0928044549157N00641840EA0228102233000 +B0928074549144N00641811EA0229202238000 +B0928104549129N00641811EA0229902243000 +B0928134549123N00641817EA0230902247000 +B0928164549120N00641823EA0231102251000 +B0928194549125N00641832EA0231802255000 +B0928224549133N00641827EA0231702262000 +B0928254549137N00641804EA0231002268000 +B0928284549125N00641775EA0231102273000 +B0928314549106N00641763EA0232002277000 +B0928344549097N00641769EA0232602281000 +B0928374549093N00641776EA0232602283000 +B0928404549093N00641787EA0232402286000 +B0928434549099N00641796EA0232302288000 +B0928464549107N00641801EA0231902291000 +B0928494549115N00641806EA0231502295000 +B0928534549128N00641815EA0231402298000 +B0928564549136N00641817EA0231102299000 +B0928594549147N00641822EA0231002301000 +B0929024549157N00641825EA0231002302000 +B0929054549166N00641827EA0230602302000 +B0929084549174N00641831EA0230302303000 +B0929114549185N00641837EA0229902303000 +B0929144549200N00641848EA0230202303000 +B0929174549215N00641856EA0230202302000 +B0929204549227N00641863EA0230902302000 +B0929234549236N00641870EA0230702303000 +B0929264549246N00641876EA0230702303000 +B0929294549258N00641876EA0230902303000 +B0929324549269N00641876EA0231202303000 +B0929354549283N00641876EA0232202304000 +B0929384549294N00641876EA0233302306000 +B0929414549302N00641880EA0233502308000 +B0929444549306N00641894EA0233802311000 +B0929474549296N00641908EA0233802314000 +B0929504549279N00641903EA0234202316000 +B0929534549268N00641881EA0234602319000 +B0929564549270N00641855EA0234902321000 +B0929594549282N00641840EA0235802324000 +B0930024549293N00641832EA0236102327000 +B0930054549303N00641827EA0235702331000 +B0930084549314N00641824EA0235602333000 +B0930114549325N00641824EA0234702336000 +B0930144549340N00641830EA0234502337000 +B0930184549360N00641840EA0235202338000 +B0930214549374N00641845EA0234902339000 +B0930244549391N00641851EA0235702340000 +B0930274549403N00641854EA0236502341000 +B0930304549413N00641862EA0236802343000 +B0930334549412N00641878EA0236902345000 +B0930364549396N00641887EA0236802347000 +B0930394549381N00641868EA0236802348000 +B0930424549379N00641842EA0237102350000 +B0930454549389N00641822EA0237302351000 +B0930484549403N00641816EA0238102353000 +B0930514549410N00641822EA0238402355000 +B0930544549411N00641835EA0238102356000 +B0930574549415N00641847EA0237402358000 +B0931004549425N00641855EA0237002359000 +B0931034549436N00641860EA0237402360000 +B0931064549447N00641866EA0238202362000 +B0931094549454N00641871EA0238302363000 +B0931124549467N00641870EA0238902365000 +B0931154549477N00641849EA0239102368000 +B0931184549471N00641822EA0239402370000 +B0931214549453N00641810EA0240302373000 +B0931244549440N00641818EA0240802377000 +B0931274549438N00641830EA0241102379000 +B0931304549451N00641833EA0241602382000 +B0931334549462N00641814EA0241702386000 +B0931364549457N00641786EA0242002389000 +B0931394549443N00641763EA0242902394000 +B0931434549421N00641764EA0243702397000 +B0931464549414N00641775EA0244602401000 +B0931494549416N00641788EA0245302405000 +B0931524549422N00641796EA0245602408000 +B0931554549433N00641789EA0245602413000 +B0931584549434N00641763EA0245202418000 +B0932014549421N00641737EA0245602421000 +B0932044549404N00641721EA0246502425000 +B0932074549387N00641715EA0247002429000 +B0932104549373N00641720EA0247402434000 +B0932134549366N00641731EA0248102438000 +B0932164549364N00641744EA0248702441000 +B0932194549367N00641755EA0248902444000 +B0932224549376N00641759EA0248702449000 +B0932254549385N00641749EA0248602454000 +B0932284549389N00641723EA0249002458000 +B0932314549378N00641693EA0249102461000 +B0932344549360N00641681EA0248902465000 +B0932374549345N00641687EA0248702467000 +B0932404549341N00641701EA0248702469000 +B0932434549347N00641707EA0248102470000 +B0932464549360N00641708EA0249002471000 +B0932494549368N00641707EA0249402473000 +B0932524549379N00641705EA0249702475000 +B0932554549389N00641707EA0250202478000 +B0932584549398N00641708EA0250402479000 +B0933014549406N00641713EA0250002481000 +B0933044549416N00641719EA0250402483000 +B0933074549429N00641718EA0251902486000 +B0933114549440N00641710EA0252402489000 +B0933144549450N00641707EA0253402494000 +B0933174549456N00641690EA0254302498000 +B0933204549451N00641658EA0254902503000 +B0933234549434N00641639EA0256102509000 +B0933264549417N00641639EA0257502515000 +B0933294549407N00641644EA0258302522000 +B0933324549407N00641652EA0259202525000 +B0933354549416N00641645EA0260402532000 +B0933384549414N00641618EA0260902540000 +B0933414549399N00641597EA0262002547000 +B0933444549383N00641588EA0263002555000 +B0933474549370N00641592EA0263402563000 +B0933504549368N00641609EA0264202571000 +B0933534549375N00641618EA0265402578000 +B0933564549382N00641602EA0266002586000 +B0933594549379N00641571EA0266602593000 +B0934024549368N00641546EA0267602601000 +B0934054549352N00641538EA0267902609000 +B0934084549334N00641543EA0268102616000 +B0934114549328N00641561EA0268402623000 +B0934144549338N00641569EA0269102630000 +B0934174549346N00641552EA0269502636000 +B0934204549341N00641527EA0269902642000 +B0934234549325N00641511EA0270602649000 +B0934264549308N00641496EA0271402655000 +B0934294549288N00641479EA0272002661000 +B0934324549265N00641464EA0272302667000 +B0934354549243N00641452EA0272702673000 +B0934384549222N00641438EA0272402679000 +B0934414549202N00641422EA0272502684000 +B0934444549179N00641414EA0272102688000 +B0934474549159N00641395EA0272402691000 +B0934504549142N00641376EA0272102694000 +B0934544549118N00641350EA0272302697000 +B0934574549097N00641332EA0272302700000 +B0935004549079N00641314EA0272802702000 +B0935034549065N00641291EA0272802705000 +B0935064549051N00641265EA0272902708000 +B0935094549034N00641242EA0273002710000 +B0935124549016N00641218EA0273102712000 +B0935154549005N00641193EA0273802714000 +B0935184548992N00641174EA0273002716000 +B0935214548975N00641153EA0273202718000 +B0935244548963N00641133EA0273802719000 +B0935274548948N00641111EA0274302721000 +B0935304548934N00641087EA0274902723000 +B0935334548917N00641066EA0274202725000 +B0935364548895N00641042EA0273402726000 +B0935394548872N00641015EA0272902727000 +B0935424548848N00640987EA0272202726000 +B0935454548827N00640958EA0271902724000 +B0935484548807N00640929EA0271802723000 +B0935514548788N00640896EA0272302721000 +B0935544548771N00640865EA0273102721000 +B0935574548754N00640833EA0273302721000 +B0936004548736N00640802EA0273202722000 +B0936034548718N00640771EA0273002722000 +B0936064548698N00640743EA0272502722000 +B0936094548679N00640714EA0272702722000 +B0936134548662N00640679EA0272702722000 +B0936164548650N00640654EA0272102721000 +B0936194548635N00640624EA0272202721000 +B0936224548619N00640594EA0272802720000 +B0936254548603N00640567EA0273402721000 +B0936284548588N00640541EA0274102722000 +B0936314548573N00640515EA0275302724000 +B0936344548558N00640492EA0275702727000 +B0936374548541N00640467EA0275302730000 +B0936404548526N00640440EA0275302731000 +B0936434548509N00640437EA0274502732000 +B0936464548490N00640430EA0274902733000 +B0936494548481N00640416EA0274202733000 +B0936524548467N00640396EA0273902733000 +B0936554548451N00640376EA0274502733000 +B0936584548438N00640357EA0275202734000 +B0937014548428N00640340EA0276202736000 +B0937044548418N00640326EA0275802738000 +B0937074548405N00640308EA0275402739000 +B0937104548391N00640290EA0275502740000 +B0937134548377N00640270EA0274802741000 +B0937164548361N00640246EA0274602741000 +B0937194548346N00640220EA0275002741000 +B0937224548333N00640197EA0275102742000 +B0937254548319N00640174EA0275202742000 +B0937284548304N00640152EA0275402743000 +B0937314548290N00640129EA0275502743000 +B0937344548277N00640106EA0275702744000 +B0937374548264N00640085EA0276602745000 +B0937414548248N00640058EA0276402747000 +B0937444548235N00640037EA0276902748000 +B0937474548223N00640017EA0276902749000 +B0937504548211N00639995EA0277002751000 +B0937534548198N00639972EA0277402752000 +B0937564548187N00639951EA0277602754000 +B0937594548173N00639923EA0276602755000 +B0938024548158N00639893EA0277002756000 +B0938054548144N00639869EA0276402756000 +B0938084548129N00639843EA0275502756000 +B0938114548115N00639814EA0275702755000 +B0938144548103N00639788EA0275102754000 +B0938174548091N00639758EA0274802753000 +B0938204548079N00639729EA0274402751000 +B0938234548069N00639698EA0273602749000 +B0938264548058N00639666EA0273302747000 +B0938294548052N00639634EA0273302744000 +B0938324548043N00639605EA0273202742000 +B0938354548032N00639574EA0273502740000 +B0938384548023N00639541EA0274302739000 +B0938414548014N00639515EA0274602739000 +B0938444548005N00639493EA0273202738000 +B0938474547991N00639459EA0272402737000 +B0938504547978N00639423EA0274102735000 +B0938534547972N00639405EA0275102734000 +B0938564547969N00639385EA0275202735000 +B0938594547962N00639358EA0275702736000 +B0939034547948N00639322EA0276202738000 +B0939064547933N00639296EA0276502740000 +B0939094547917N00639269EA0276702742000 +B0939124547899N00639244EA0276902744000 +B0939154547884N00639219EA0276502746000 +B0939184547866N00639191EA0275902747000 +B0939214547849N00639163EA0275602747000 +B0939244547832N00639136EA0275302747000 +B0939274547816N00639109EA0275002746000 +B0939304547799N00639081EA0274702745000 +B0939334547783N00639052EA0274502744000 +B0939364547767N00639022EA0274102743000 +B0939394547753N00638991EA0273502741000 +B0939424547742N00638960EA0273102739000 +B0939454547737N00638935EA0273002738000 +B0939484547727N00638912EA0271202735000 +B0939514547713N00638880EA0270802732000 +B0939544547699N00638850EA0270502728000 +B0939574547688N00638821EA0269402725000 +B0940004547677N00638789EA0269002721000 +B0940034547667N00638760EA0268202717000 +B0940064547656N00638728EA0267502712000 +B0940094547645N00638695EA0266902708000 +B0940124547633N00638664EA0266202703000 +B0940154547621N00638632EA0265702697000 +B0940184547610N00638600EA0264802692000 +B0940214547600N00638569EA0264302686000 +B0940254547585N00638527EA0263402679000 +B0940284547573N00638496EA0263002673000 +B0940314547562N00638467EA0262502667000 +B0940344547550N00638436EA0261702661000 +B0940374547537N00638405EA0260902655000 +B0940404547525N00638375EA0260002648000 +B0940434547514N00638342EA0259202642000 +B0940464547505N00638312EA0258302635000 +B0940494547495N00638280EA0257102628000 +B0940524547486N00638247EA0256202620000 +B0940554547475N00638215EA0255302613000 +B0940584547465N00638182EA0254102605000 +B0941014547454N00638149EA0253402596000 +B0941044547444N00638118EA0252402588000 +B0941074547433N00638085EA0251602580000 +B0941104547424N00638052EA0251602572000 +B0941134547416N00638022EA0250902564000 +B0941164547409N00637988EA0250302557000 +B0941194547405N00637954EA0249502550000 +B0941224547399N00637920EA0248802543000 +B0941254547394N00637886EA0248702536000 +B0941284547392N00637856EA0248702530000 +B0941314547389N00637829EA0247602524000 +B0941344547383N00637797EA0247102517000 +B0941374547375N00637768EA0246902512000 +B0941404547369N00637741EA0246802506000 +B0941444547362N00637707EA0247102499000 +B0941474547358N00637681EA0247302495000 +B0941504547353N00637655EA0247502492000 +B0941534547348N00637630EA0247702489000 +B0941564547341N00637603EA0247802486000 +B0941594547334N00637580EA0248202484000 +B0942024547327N00637558EA0248602483000 +B0942054547320N00637537EA0248902482000 +B0942084547312N00637511EA0249102482000 +B0942114547306N00637486EA0249302482000 +B0942144547300N00637461EA0249602482000 +B0942174547292N00637438EA0249802482000 +B0942204547281N00637416EA0249902483000 +B0942234547271N00637392EA0249802484000 +B0942264547260N00637369EA0250402484000 +B0942294547247N00637347EA0251102485000 +B0942324547235N00637323EA0251802487000 +B0942354547225N00637301EA0252202489000 +B0942384547214N00637278EA0252702492000 +B0942414547205N00637253EA0252802495000 +B0942444547194N00637227EA0253002497000 +B0942474547181N00637203EA0252802500000 +B0942504547166N00637180EA0253102502000 +B0942534547152N00637155EA0253502504000 +B0942564547140N00637133EA0253802506000 +B0942594547129N00637109EA0253702508000 +B0943034547116N00637075EA0253602511000 +B0943064547110N00637049EA0253702512000 +B0943094547102N00637022EA0253002513000 +B0943124547094N00636993EA0253302514000 +B0943154547083N00636968EA0252802515000 +B0943184547072N00636939EA0252702515000 +B0943214547064N00636912EA0252802515000 +B0943244547054N00636885EA0252702515000 +B0943274547041N00636860EA0252602515000 +B0943304547028N00636835EA0252202515000 +B0943334547015N00636809EA0252002514000 +B0943364547003N00636782EA0252002514000 +B0943394546992N00636756EA0251602513000 +B0943424546980N00636733EA0251002512000 +B0943454546967N00636708EA0250302511000 +B0943484546957N00636687EA0249702509000 +B0943514546946N00636667EA0248202507000 +B0943544546931N00636638EA0247102503000 +B0943574546915N00636607EA0246802499000 +B0944004546901N00636578EA0246002495000 +B0944034546886N00636548EA0245502490000 +B0944064546872N00636519EA0244802486000 +B0944094546858N00636489EA0243902481000 +B0944124546844N00636458EA0244002476000 +B0944154546829N00636433EA0244902472000 +B0944184546817N00636417EA0244502468000 +B0944214546800N00636396EA0244802465000 +B0944254546780N00636364EA0246002462000 +B0944284546768N00636342EA0245902461000 +B0944314546754N00636312EA0246002460000 +B0944344546742N00636282EA0246702460000 +B0944374546734N00636253EA0247202460000 +B0944404546727N00636226EA0247602461000 +B0944434546720N00636196EA0248302462000 +B0944464546716N00636168EA0249102464000 +B0944494546707N00636144EA0249502466000 +B0944524546693N00636121EA0249702469000 +B0944554546679N00636101EA0250702471000 +B0944584546665N00636083EA0250302474000 +B0945014546649N00636059EA0249702476000 +B0945044546638N00636031EA0250402478000 +B0945074546631N00636006EA0249802480000 +B0945104546619N00635978EA0248802481000 +B0945134546608N00635947EA0248402481000 +B0945164546597N00635918EA0247802480000 +B0945194546587N00635886EA0246902479000 +B0945224546580N00635851EA0247002477000 +B0945254546575N00635819EA0247702476000 +B0945284546573N00635796EA0248002475000 +B0945314546572N00635776EA0248402475000 +B0945344546569N00635755EA0248702475000 +B0945374546563N00635730EA0249702475000 +B0945404546563N00635712EA0250902477000 +B0945434546561N00635697EA0250902479000 +B0945464546555N00635676EA0252402481000 +B0945494546550N00635662EA0253102485000 +B0945524546542N00635644EA0253702488000 +B0945554546530N00635621EA0254502492000 +B0945584546520N00635594EA0255702496000 +B0946014546509N00635566EA0256502502000 +B0946054546494N00635535EA0257602510000 +B0946084546488N00635514EA0258002516000 +B0946114546477N00635487EA0257902522000 +B0946144546467N00635466EA0259302528000 +B0946174546459N00635454EA0258902534000 +B0946204546447N00635434EA0258902539000 +B0946234546438N00635418EA0258802543000 +B0946264546428N00635399EA0257702547000 +B0946294546415N00635373EA0256402549000 +B0946324546401N00635344EA0255902550000 +B0946354546389N00635315EA0255202550000 +B0946384546377N00635285EA0254602549000 +B0946414546367N00635254EA0254102547000 +B0946444546359N00635226EA0254302546000 +B0946474546353N00635202EA0254302544000 +B0946504546347N00635176EA0254902543000 +B0946534546339N00635153EA0255502542000 +B0946564546330N00635130EA0255802543000 +B0946594546322N00635101EA0255902543000 +B0947024546314N00635069EA0256302544000 +B0947054546306N00635039EA0256002544000 +B0947084546294N00635011EA0256802545000 +B0947114546286N00634992EA0256602547000 +B0947144546274N00634968EA0256402547000 +B0947174546260N00634940EA0257002548000 +B0947204546246N00634912EA0256302550000 +B0947234546232N00634884EA0255602550000 +B0947264546218N00634856EA0255102551000 +B0947294546205N00634828EA0254702550000 +B0947334546192N00634790EA0254502549000 +B0947364546182N00634762EA0254002548000 +B0947394546172N00634735EA0253502546000 +B0947424546161N00634706EA0252902544000 +B0947454546149N00634676EA0252602542000 +B0947484546138N00634646EA0252502539000 +B0947514546129N00634616EA0251802537000 +B0947544546117N00634581EA0251702534000 +B0947574546106N00634548EA0252002532000 +B0948004546094N00634514EA0251902529000 +B0948034546083N00634479EA0253102528000 +B0948064546073N00634453EA0254902528000 +B0948094546067N00634438EA0255402529000 +B0948124546058N00634417EA0254902530000 +B0948154546045N00634388EA0255702531000 +B0948184546037N00634364EA0256302533000 +B0948214546025N00634337EA0256202535000 +B0948244546012N00634311EA0257002538000 +B0948274546002N00634286EA0256802540000 +B0948304545991N00634261EA0255902542000 +B0948334545977N00634233EA0255402542000 +B0948364545964N00634206EA0255402543000 +B0948394545953N00634185EA0255402543000 +B0948424545944N00634165EA0254802543000 +B0948454545933N00634139EA0255102543000 +B0948484545924N00634114EA0254802543000 +B0948514545913N00634085EA0255402543000 +B0948544545905N00634056EA0256202543000 +B0948574545898N00634026EA0257402544000 +B0949004545892N00633998EA0258302546000 +B0949034545885N00633976EA0258102549000 +B0949074545876N00633947EA0257602552000 +B0949104545867N00633925EA0257902553000 +B0949134545858N00633907EA0258102555000 +B0949164545846N00633890EA0257602557000 +B0949194545836N00633870EA0258502558000 +B0949224545833N00633851EA0258902560000 +B0949254545826N00633833EA0259102562000 +B0949284545818N00633812EA0259102564000 +B0949314545810N00633788EA0258502565000 +B0949344545798N00633762EA0258402566000 +B0949374545787N00633734EA0258402567000 +B0949404545777N00633706EA0258102568000 +B0949434545766N00633676EA0257902568000 +B0949464545754N00633646EA0257702568000 +B0949494545743N00633616EA0257702567000 +B0949524545732N00633586EA0257902567000 +B0949554545720N00633557EA0257802567000 +B0949584545708N00633527EA0257802567000 +B0950014545693N00633498EA0258202567000 +B0950044545679N00633469EA0258702567000 +B0950074545666N00633440EA0258302568000 +B0950104545654N00633410EA0258302568000 +B0950134545642N00633381EA0258002568000 +B0950164545628N00633351EA0258302568000 +B0950194545617N00633326EA0258302568000 +B0950234545604N00633284EA0257702568000 +B0950264545594N00633253EA0258202568000 +B0950294545585N00633226EA0258302568000 +B0950324545574N00633199EA0257902568000 +B0950354545563N00633172EA0258002568000 +B0950384545553N00633148EA0257702568000 +B0950414545542N00633125EA0257202568000 +B0950444545529N00633101EA0257302568000 +B0950474545517N00633080EA0257102568000 +B0950504545504N00633058EA0256802567000 +B0950534545493N00633033EA0255902566000 +B0950564545481N00633007EA0255002564000 +B0950594545470N00632977EA0254202562000 +B0951024545458N00632948EA0254002559000 +B0951054545448N00632923EA0253802556000 +B0951084545441N00632900EA0253802553000 +B0951114545437N00632880EA0253402550000 +B0951144545431N00632860EA0253002547000 +B0951174545424N00632842EA0252402545000 +B0951204545415N00632821EA0251302541000 +B0951234545403N00632800EA0251002537000 +B0951264545393N00632780EA0250002533000 +B0951294545382N00632758EA0249702529000 +B0951324545372N00632739EA0248902524000 +B0951354545362N00632717EA0248202519000 +B0951384545354N00632697EA0247502514000 +B0951414545344N00632673EA0245902509000 +B0951454545331N00632630EA0246002501000 +B0951484545323N00632603EA0245502495000 +B0951514545314N00632574EA0244302489000 +B0951544545305N00632544EA0243902483000 +B0951574545297N00632515EA0243102477000 +B0952004545287N00632485EA0242202471000 +B0952034545277N00632455EA0241802464000 +B0952064545269N00632426EA0241302458000 +B0952094545258N00632397EA0240802452000 +B0952124545247N00632371EA0240202446000 +B0952154545236N00632344EA0239402439000 +B0952184545227N00632315EA0239002433000 +B0952214545218N00632292EA0238202427000 +B0952244545208N00632265EA0237902421000 +B0952274545200N00632240EA0238102416000 +B0952304545192N00632221EA0237402411000 +B0952334545183N00632198EA0236902405000 +B0952364545175N00632173EA0237002400000 +B0952394545167N00632150EA0236802396000 +B0952424545161N00632126EA0236802392000 +B0952454545154N00632103EA0236602388000 +B0952484545148N00632082EA0236602385000 +B0952514545142N00632061EA0236302381000 +B0952544545132N00632040EA0236002378000 +B0952574545122N00632021EA0236202375000 +B0953004545113N00632001EA0236502373000 +B0953034545104N00631980EA0237102371000 +B0953064545097N00631962EA0237702370000 +B0953094545091N00631943EA0237802370000 +B0953134545084N00631918EA0238102370000 +B0953164545077N00631901EA0238402371000 +B0953194545071N00631884EA0238602371000 +B0953224545067N00631866EA0239302372000 +B0953254545063N00631852EA0239602374000 +B0953284545054N00631836EA0240302375000 +B0953314545047N00631821EA0241402378000 +B0953344545039N00631807EA0241802380000 +B0953374545032N00631789EA0242502384000 +B0953404545026N00631769EA0243702388000 +B0953434545022N00631753EA0244702392000 +B0953464545016N00631736EA0245302397000 +B0953494545009N00631717EA0246402403000 +B0953524545002N00631699EA0247202409000 +B0953554544994N00631677EA0248102415000 +B0953584544988N00631658EA0249002422000 +B0954014544981N00631640EA0249402429000 +B0954044544976N00631619EA0250402436000 +B0954074544972N00631601EA0250902442000 +B0954104544967N00631579EA0251402449000 +B0954134544961N00631554EA0253002456000 +B0954164544957N00631532EA0253702463000 +B0954194544950N00631512EA0254102470000 +B0954224544945N00631494EA0253802477000 +B0954254544938N00631474EA0253502483000 +B0954284544932N00631451EA0253102488000 +B0954314544925N00631423EA0253002492000 +B0954344544919N00631395EA0253202495000 +B0954374544913N00631368EA0253102498000 +B0954404544908N00631341EA0253002501000 +B0954444544902N00631305EA0252802504000 +B0954474544895N00631280EA0252302506000 +B0954504544887N00631257EA0252102507000 +B0954534544879N00631235EA0251002508000 +B0954564544872N00631210EA0250702507000 +B0954594544867N00631187EA0250502506000 +B0955024544862N00631163EA0250302505000 +B0955054544856N00631139EA0250302504000 +B0955084544851N00631115EA0249902503000 +B0955114544846N00631087EA0249602502000 +B0955144544844N00631059EA0248902500000 +B0955174544842N00631032EA0248602498000 +B0955204544837N00631007EA0248102495000 +B0955234544833N00630983EA0248002493000 +B0955264544830N00630958EA0248302491000 +B0955294544827N00630934EA0248402489000 +B0955324544825N00630908EA0248202487000 +B0955354544822N00630881EA0247802486000 +B0955384544819N00630853EA0247602484000 +B0955414544814N00630827EA0246802482000 +B0955444544809N00630798EA0246502480000 +B0955474544803N00630771EA0245902478000 +B0955504544797N00630743EA0245202475000 +B0955534544790N00630713EA0244302473000 +B0955564544785N00630678EA0243902469000 +B0955594544784N00630648EA0244402466000 +B0956024544782N00630622EA0244002463000 +B0956064544776N00630582EA0244002459000 +B0956094544770N00630555EA0243802456000 +B0956124544765N00630525EA0242902452000 +B0956154544761N00630493EA0242402449000 +B0956184544758N00630462EA0241302445000 +B0956214544759N00630425EA0240602441000 +B0956244544766N00630388EA0240602436000 +B0956274544775N00630358EA0241002432000 +B0956304544784N00630332EA0240502429000 +B0956334544796N00630304EA0241102425000 +B0956364544808N00630287EA0242402423000 +B0956394544817N00630273EA0242502422000 +B0956424544828N00630254EA0243502422000 +B0956454544838N00630238EA0243902422000 +B0956484544851N00630221EA0244202423000 +B0956514544864N00630203EA0244802424000 +B0956544544872N00630184EA0245702426000 +B0956574544876N00630163EA0246402428000 +B0957004544879N00630146EA0246602431000 +B0957034544889N00630129EA0246602434000 +B0957064544898N00630110EA0246802437000 +B0957094544906N00630092EA0246602439000 +B0957124544921N00630085EA0246302442000 +B0957154544934N00630100EA0246602443000 +B0957184544933N00630120EA0246202445000 +B0957214544926N00630144EA0246402446000 +B0957244544918N00630166EA0246502447000 +B0957274544909N00630188EA0246902449000 +B0957304544898N00630207EA0247802450000 +B0957334544886N00630221EA0248402452000 +B0957374544867N00630226EA0249502456000 +B0957404544858N00630216EA0251202460000 +B0957434544857N00630204EA0252002463000 +B0957464544866N00630188EA0253102469000 +B0957494544879N00630183EA0254302475000 +B0957524544890N00630196EA0255302482000 +B0957554544890N00630217EA0256202489000 +B0957584544879N00630230EA0257002496000 +B0958014544866N00630227EA0258202503000 +B0958044544864N00630213EA0259402510000 +B0958074544872N00630199EA0260602518000 +B0958104544885N00630197EA0261502526000 +B0958134544893N00630212EA0262002534000 +B0958164544887N00630230EA0262702542000 +B0958194544873N00630233EA0263802550000 +B0958224544861N00630225EA0264502558000 +B0958254544852N00630210EA0264902566000 +B0958284544845N00630193EA0264902574000 +B0958314544837N00630173EA0264602581000 +B0958344544830N00630153EA0264202586000 +B0958374544824N00630133EA0264102591000 +B0958404544818N00630112EA0264002596000 +B0958434544811N00630091EA0264702600000 +B0958464544804N00630075EA0264902604000 +B0958494544798N00630055EA0264702608000 +B0958524544792N00630032EA0265202612000 +B0958554544786N00630014EA0264902616000 +B0958584544778N00629994EA0264002619000 +B0959014544768N00629973EA0263302621000 +B0959044544757N00629950EA0262402622000 +B0959074544748N00629923EA0261602621000 +B0959104544739N00629895EA0261102620000 +B0959144544728N00629858EA0260802618000 +B0959174544719N00629830EA0260302616000 +B0959204544710N00629801EA0259802614000 +B0959234544702N00629773EA0259502611000 +B0959264544694N00629746EA0259402609000 +B0959294544687N00629718EA0259202606000 +B0959324544678N00629687EA0261302604000 +B0959354544676N00629670EA0262402604000 +B0959384544671N00629648EA0263102605000 +B0959414544666N00629627EA0264302607000 +B0959444544663N00629607EA0263702610000 +B0959474544658N00629580EA0264002612000 +B0959504544656N00629559EA0264002614000 +B0959534544656N00629535EA0263902616000 +B0959564544653N00629508EA0264402618000 +B0959594544650N00629484EA0265102620000 +B1000024544645N00629456EA0265902623000 +B1000054544640N00629427EA0266602626000 +B1000084544633N00629400EA0267202629000 +B1000114544627N00629374EA0268002633000 +B1000144544618N00629352EA0268902637000 +B1000174544610N00629331EA0269402641000 +B1000204544603N00629308EA0269802645000 +B1000234544593N00629289EA0270302650000 +B1000264544581N00629271EA0270602654000 +B1000294544568N00629252EA0270902658000 +B1000324544556N00629233EA0270602662000 +B1000354544543N00629216EA0270702666000 +B1000384544534N00629200EA0271202669000 +B1000414544527N00629183EA0271302672000 +B1000444544517N00629164EA0272202675000 +B1000484544502N00629148EA0272502680000 +B1000514544491N00629138EA0272902684000 +B1000544544481N00629128EA0273302689000 +B1000574544472N00629114EA0273702693000 +B1001004544464N00629100EA0274102697000 +B1001034544455N00629086EA0274202701000 +B1001064544446N00629072EA0274102704000 +B1001094544439N00629056EA0273802707000 +B1001124544432N00629038EA0273502709000 +B1001154544425N00629020EA0273402711000 +B1001184544418N00629002EA0272902713000 +B1001214544412N00628981EA0272302714000 +B1001244544408N00628955EA0271602714000 +B1001274544405N00628925EA0271302713000 +B1001304544398N00628893EA0272002713000 +B1001334544391N00628870EA0272002713000 +B1001364544383N00628850EA0271502712000 +B1001394544371N00628829EA0271402712000 +B1001424544360N00628807EA0271102711000 +B1001454544351N00628782EA0270502710000 +B1001484544342N00628754EA0270302708000 +B1001514544335N00628726EA0269702707000 +B1001544544329N00628697EA0269402704000 +B1001574544320N00628671EA0269202702000 +B1002004544311N00628645EA0268402699000 +B1002034544301N00628615EA0267802696000 +B1002074544291N00628573EA0267202691000 +B1002104544286N00628541EA0266702688000 +B1002134544281N00628509EA0266302684000 +B1002164544277N00628478EA0265902681000 +B1002194544273N00628447EA0265702677000 +B1002224544268N00628416EA0265202673000 +B1002254544261N00628385EA0264502669000 +B1002284544255N00628356EA0264402665000 +B1002314544248N00628325EA0263102661000 +B1002344544241N00628288EA0262902656000 +B1002374544234N00628253EA0262202652000 +B1002404544226N00628216EA0261702647000 +B1002434544219N00628179EA0261402643000 +B1002464544213N00628144EA0260802638000 +B1002494544205N00628108EA0260502634000 +B1002524544197N00628072EA0260202629000 +B1002554544189N00628037EA0259502625000 +B1002584544181N00628000EA0259502620000 +B1003014544175N00627964EA0259402616000 +B1003044544168N00627930EA0258802613000 +B1003074544159N00627896EA0258402609000 +B1003104544149N00627862EA0257702605000 +B1003134544140N00627827EA0257302601000 +B1003164544132N00627793EA0256702597000 +B1003194544123N00627759EA0256102592000 +B1003234544111N00627712EA0255702586000 +B1003264544102N00627677EA0255302582000 +B1003294544092N00627643EA0254902578000 +B1003324544083N00627609EA0254502573000 +B1003354544072N00627577EA0254002569000 +B1003384544062N00627543EA0253602565000 +B1003414544054N00627508EA0253302560000 +B1003444544049N00627472EA0253002556000 +B1003474544045N00627435EA0252602552000 +B1003504544043N00627397EA0252302549000 +B1003534544039N00627360EA0252102545000 +B1003564544036N00627324EA0251702542000 +B1003594544031N00627286EA0251202538000 +B1004024544026N00627250EA0250702535000 +B1004054544020N00627215EA0250102531000 +B1004084544015N00627179EA0249702527000 +B1004114544009N00627142EA0249402523000 +B1004144544004N00627106EA0249102519000 +B1004174543999N00627070EA0248602515000 +B1004204543994N00627032EA0248402511000 +B1004234543989N00626996EA0248002507000 +B1004264543985N00626960EA0247502503000 +B1004294543980N00626923EA0247202499000 +B1004324543974N00626888EA0246602495000 +B1004354543968N00626851EA0246202491000 +B1004394543959N00626802EA0245902485000 +B1004424543953N00626766EA0245502481000 +B1004454543947N00626729EA0245102477000 +B1004484543942N00626694EA0244802473000 +B1004514543938N00626660EA0244202469000 +B1004544543934N00626622EA0243802464000 +B1004574543930N00626585EA0243402460000 +B1005004543927N00626547EA0243102456000 +B1005034543923N00626508EA0242702452000 +B1005064543920N00626471EA0242202448000 +B1005094543918N00626430EA0241802443000 +B1005124543917N00626391EA0241502439000 +B1005154543914N00626353EA0240802434000 +B1005184543908N00626314EA0240302430000 +B1005214543901N00626276EA0239602425000 +B1005244543895N00626237EA0239102420000 +B1005274543890N00626199EA0238802416000 +B1005304543886N00626160EA0238202411000 +B1005334543881N00626121EA0237802405000 +B1005364543877N00626083EA0237302400000 +B1005394543872N00626043EA0236802395000 +B1005424543868N00626003EA0236502390000 +B1005454543864N00625964EA0236002385000 +B1005484543860N00625924EA0235602381000 +B1005514543856N00625883EA0235302376000 +B1005554543851N00625830EA0234902370000 +B1005584543846N00625791EA0234402365000 +B1006014543841N00625751EA0234002361000 +B1006044543835N00625712EA0233402357000 +B1006074543829N00625673EA0232902352000 +B1006104543824N00625633EA0232502348000 +B1006134543819N00625594EA0232002343000 +B1006164543814N00625553EA0231502339000 +B1006194543809N00625514EA0231102334000 +B1006224543805N00625474EA0230602330000 +B1006254543800N00625434EA0230202326000 +B1006284543796N00625394EA0229702322000 +B1006314543791N00625354EA0229302317000 +B1006344543786N00625314EA0228802313000 +B1006374543780N00625275EA0228402309000 +B1006404543775N00625236EA0227902305000 +B1006434543768N00625197EA0227502300000 +B1006464543762N00625158EA0227102296000 +B1006494543756N00625119EA0226602292000 +B1006524543749N00625081EA0226202288000 +B1006554543742N00625044EA0225702284000 +B1006584543736N00625006EA0225302279000 +B1007014543730N00624968EA0224902275000 +B1007044543725N00624929EA0224402271000 +B1007074543719N00624891EA0224002267000 +B1007114543711N00624841EA0223502262000 +B1007144543706N00624803EA0223202258000 +B1007174543700N00624765EA0222702254000 +B1007204543694N00624727EA0222302249000 +B1007234543688N00624689EA0221802245000 +B1007264543683N00624651EA0221502241000 +B1007294543678N00624613EA0221002237000 +B1007324543673N00624575EA0220702233000 +B1007354543667N00624537EA0220202229000 +B1007384543661N00624499EA0219802224000 +B1007414543653N00624461EA0219302220000 +B1007444543645N00624424EA0218902216000 +B1007474543637N00624387EA0218402212000 +B1007504543629N00624349EA0217902208000 +B1007534543621N00624311EA0217702204000 +B1007564543614N00624275EA0217202200000 +B1007594543607N00624237EA0216802195000 +B1008024543600N00624200EA0216302191000 +B1008054543594N00624163EA0215902187000 +B1008084543587N00624126EA0215402183000 +B1008114543581N00624089EA0215002178000 +B1008144543573N00624052EA0214502174000 +B1008174543566N00624016EA0214202170000 +B1008204543558N00623981EA0213802166000 +B1008244543548N00623933EA0213302160000 +B1008274543541N00623897EA0212902156000 +B1008304543534N00623861EA0212502152000 +B1008334543526N00623826EA0212002148000 +B1008364543519N00623790EA0211502144000 +B1008394543511N00623754EA0211102140000 +B1008424543503N00623719EA0210602135000 +B1008454543495N00623683EA0210202131000 +B1008484543486N00623648EA0209702126000 +B1008514543477N00623612EA0209302122000 +B1008544543468N00623577EA0208902117000 +B1008574543460N00623542EA0208402113000 +B1009004543451N00623507EA0208002108000 +B1009034543440N00623473EA0207502104000 +B1009064543429N00623439EA0207202099000 +B1009094543418N00623407EA0206702095000 +B1009124543406N00623374EA0206302090000 +B1009154543395N00623341EA0205802086000 +B1009184543384N00623308EA0205302082000 +B1009214543373N00623274EA0204902078000 +B1009244543362N00623241EA0204502073000 +B1009274543351N00623208EA0204002069000 +B1009304543340N00623175EA0203602065000 +B1009334543329N00623142EA0203002060000 +B1009364543318N00623110EA0202702055000 +B1009404543303N00623066EA0202202049000 +B1009434543292N00623034EA0201702044000 +B1009464543281N00623001EA0201202039000 +B1009494543270N00622968EA0200802034000 +B1009524543260N00622935EA0200402029000 +B1009554543250N00622903EA0200102025000 +B1009584543240N00622870EA0199702020000 +B1010014543230N00622836EA0199202015000 +B1010044543219N00622802EA0198902010000 +B1010074543207N00622770EA0198502006000 +B1010104543196N00622737EA0198002002000 +B1010134543185N00622704EA0197601997000 +B1010164543175N00622671EA0197101993000 +B1010194543164N00622638EA0196701989000 +B1010224543155N00622606EA0196201985000 +B1010254543147N00622572EA0195701980000 +B1010284543138N00622539EA0195301976000 +B1010314543131N00622505EA0194701972000 +B1010344543125N00622471EA0194401968000 +B1010374543119N00622437EA0194001963000 +B1010404543115N00622403EA0193501959000 +B1010434543111N00622369EA0193001955000 +B1010464543108N00622335EA0192501950000 +B1010494543106N00622302EA0192001946000 +B1010524543104N00622268EA0191501942000 +B1010554543102N00622235EA0190901937000 +B1010594543100N00622190EA0190401931000 +B1011024543098N00622157EA0189801926000 +B1011054543096N00622123EA0189201921000 +B1011084543095N00622090EA0188701917000 +B1011114543095N00622058EA0188301912000 +B1011144543098N00622026EA0187701907000 +B1011174543101N00621995EA0187101902000 +B1011204543105N00621964EA0186501897000 +B1011234543110N00621934EA0186001892000 +B1011264543113N00621904EA0185501887000 +B1011294543114N00621873EA0184901882000 +B1011324543116N00621842EA0184501877000 +B1011354543117N00621813EA0184001872000 +B1011384543118N00621785EA0183301867000 +B1011414543121N00621756EA0183101862000 +B1011444543123N00621731EA0182101857000 +B1011474543126N00621703EA0181401851000 +B1011504543129N00621676EA0180801846000 +B1011534543133N00621649EA0180201840000 +B1011564543140N00621620EA0180801835000 +B1011594543147N00621603EA0181001831000 +B1012024543154N00621583EA0181301827000 +B1012054543163N00621565EA0182001824000 +B1012084543169N00621545EA0182201823000 +B1012114543171N00621526EA0182501822000 +B1012144543177N00621508EA0182801821000 +B1012174543186N00621491EA0183501821000 +B1012214543198N00621465EA0184101822000 +B1012244543203N00621443EA0185001824000 +B1012274543206N00621423EA0185201826000 +B1012304543200N00621406EA0185001828000 +B1012334543186N00621404EA0184501830000 +B1012364543180N00621425EA0184101830000 +B1012394543188N00621445EA0184501831000 +B1012424543199N00621452EA0185101832000 +B1012454543213N00621453EA0185701833000 +B1012484543227N00621455EA0186701835000 +B1012514543240N00621455EA0187101837000 +B1012544543254N00621452EA0187001840000 +B1012574543270N00621450EA0186901843000 +B1013004543286N00621447EA0186701845000 +B1013034543300N00621442EA0186201847000 +B1013064543315N00621437EA0185701848000 +B1013094543331N00621435EA0185701849000 +B1013124543343N00621430EA0185201849000 +B1013154543355N00621416EA0184801849000 +B1013184543366N00621397EA0184601849000 +B1013214543372N00621371EA0184701848000 +B1013244543377N00621346EA0184801848000 +B1013274543376N00621322EA0184401847000 +B1013304543371N00621300EA0184601846000 +B1013334543364N00621280EA0184401845000 +B1013364543356N00621260EA0184101844000 +B1013394543347N00621239EA0183801843000 +B1013434543334N00621207EA0183701841000 +B1013464543323N00621189EA0183301840000 +B1013494543311N00621171EA0182801838000 +B1013524543299N00621152EA0182301836000 +B1013554543287N00621134EA0181801834000 +B1013584543275N00621116EA0181701831000 +B1014014543264N00621099EA0181001829000 +B1014044543251N00621083EA0180701826000 +B1014074543237N00621069EA0180601824000 +B1014104543224N00621055EA0180501822000 +B1014134543211N00621042EA0179801819000 +B1014164543198N00621028EA0179401815000 +B1014194543184N00621014EA0179401812000 +B1014224543170N00620999EA0179401809000 +B1014254543157N00620984EA0179601806000 +B1014284543145N00620971EA0179801804000 +B1014314543135N00620956EA0179901802000 +B1014344543125N00620942EA0179701801000 +B1014374543115N00620929EA0179501800000 +B1014404543101N00620916EA0180001798000 +B1014434543088N00620904EA0180601798000 +B1014464543076N00620897EA0180501798000 +B1014494543062N00620905EA0180701798000 +B1014524543059N00620922EA0180701798000 +B1014554543067N00620937EA0180901798000 +B1014594543084N00620928EA0180601798000 +B1015024543088N00620906EA0180801797000 +B1015054543079N00620885EA0181501798000 +B1015084543070N00620872EA0181501798000 +B1015114543056N00620862EA0181201798000 +B1015144543044N00620850EA0181301799000 +B1015174543031N00620837EA0181001799000 +B1015204543017N00620828EA0180701798000 +B1015234543003N00620824EA0180301798000 +B1015264542988N00620820EA0179901797000 +B1015294542972N00620811EA0179901797000 +B1015324542959N00620802EA0180101796000 +B1015354542947N00620794EA0179701795000 +B1015384542933N00620785EA0179101794000 +B1015414542918N00620776EA0178301793000 +B1015444542901N00620769EA0177601791000 +B1015474542883N00620759EA0177701788000 +B1015504542869N00620746EA0177501786000 +B1015534542853N00620733EA0178201784000 +B1015564542841N00620723EA0178701783000 +B1015594542827N00620713EA0178801782000 +B1016024542813N00620699EA0179401782000 +B1016054542801N00620686EA0179401783000 +B1016084542790N00620672EA0179101783000 +B1016114542778N00620659EA0178601783000 +B1016144542765N00620645EA0178401783000 +B1016184542750N00620628EA0178201782000 +B1016214542738N00620615EA0178101781000 +B1016244542723N00620600EA0178401781000 +B1016274542710N00620589EA0178801781000 +B1016304542697N00620579EA0179301781000 +B1016334542686N00620564EA0180201782000 +B1016364542675N00620549EA0181001784000 +B1016394542662N00620544EA0181501786000 +B1016424542652N00620559EA0182701789000 +B1016454542649N00620572EA0183801792000 +B1016484542651N00620587EA0183601795000 +B1016514542660N00620605EA0183501799000 +B1016544542675N00620600EA0182901803000 +B1016574542680N00620578EA0183001805000 +B1017004542675N00620555EA0184201808000 +B1017034542668N00620534EA0185601812000 +B1017064542654N00620522EA0186901817000 +B1017094542645N00620535EA0188001822000 +B1017124542658N00620544EA0188801827000 +B1017154542668N00620524EA0189801832000 +B1017184542662N00620503EA0191601838000 +B1017214542650N00620501EA0192701845000 +B1017244542641N00620516EA0193701852000 +B1017274542648N00620535EA0194101859000 +B1017304542665N00620526EA0195201866000 +B1017334542669N00620500EA0197101875000 +B1017364542664N00620484EA0198101884000 +B1017394542652N00620474EA0199101894000 +B1017424542641N00620486EA0200101903000 +B1017454542646N00620505EA0201501913000 +B1017484542662N00620510EA0202501923000 +B1017514542674N00620494EA0204301933000 +B1017554542674N00620468EA0205201947000 +B1017584542663N00620452EA0206601957000 +B1018014542650N00620457EA0207401967000 +B1018044542646N00620474EA0208801977000 +B1018074542657N00620486EA0210201988000 +B1018104542671N00620484EA0211302000000 +B1018134542681N00620465EA0212502011000 +B1018164542681N00620442EA0214002023000 +B1018194542668N00620426EA0215402035000 +B1018224542652N00620415EA0216502047000 +B1018254542636N00620405EA0217202059000 +B1018284542621N00620393EA0217602070000 +B1018314542606N00620382EA0217602081000 +B1018344542591N00620369EA0218002091000 +B1018374542578N00620360EA0218702100000 +B1018404542567N00620351EA0219102109000 +B1018434542553N00620344EA0220202117000 +B1018464542543N00620337EA0220602126000 +B1018494542532N00620327EA0219802133000 +B1018524542517N00620314EA0219302140000 +B1018554542498N00620298EA0218802145000 +B1018584542479N00620282EA0218702149000 +B1019014542461N00620268EA0218002153000 +B1019044542440N00620254EA0217702155000 +B1019074542420N00620240EA0217402157000 +B1019104542399N00620227EA0217402158000 +B1019134542379N00620216EA0217002159000 +B1019164542359N00620202EA0217102160000 +B1019194542340N00620184EA0217702160000 +B1019224542321N00620171EA0218102161000 +B1019254542301N00620162EA0217702163000 +B1019294542273N00620146EA0217602163000 +B1019324542255N00620133EA0217202164000 +B1019354542235N00620122EA0216802164000 +B1019384542219N00620114EA0216702163000 +B1019414542202N00620103EA0215802162000 +B1019444542186N00620090EA0216002161000 +B1019474542172N00620078EA0216302160000 +B1019504542160N00620072EA0216902160000 +B1019534542150N00620065EA0217002160000 +B1019564542136N00620056EA0217702161000 +B1019594542125N00620048EA0218202163000 +B1020024542111N00620038EA0218302164000 +B1020054542095N00620030EA0218902166000 +B1020084542080N00620023EA0218702168000 +B1020114542063N00620014EA0218902170000 +B1020144542048N00620003EA0218902171000 +B1020174542032N00619994EA0218802173000 +B1020204542015N00619985EA0219102173000 +B1020234542000N00619980EA0219002174000 +B1020264541984N00619973EA0218302175000 +B1020294541966N00619964EA0217602175000 +B1020324541949N00619955EA0216602174000 +B1020354541930N00619943EA0215602172000 +B1020384541911N00619930EA0215602170000 +B1020414541896N00619922EA0215102167000 +B1020444541878N00619912EA0214502165000 +B1020474541861N00619903EA0214002162000 +B1020514541837N00619889EA0213202157000 +B1020544541819N00619876EA0213002154000 +B1020574541802N00619862EA0212602150000 +B1021004541784N00619847EA0212702146000 +B1021034541770N00619834EA0212902143000 +B1021064541755N00619821EA0212602141000 +B1021094541739N00619808EA0212802138000 +B1021124541722N00619791EA0212802136000 +B1021154541704N00619777EA0213502135000 +B1021184541690N00619765EA0215002135000 +B1021214541679N00619754EA0215402136000 +B1021244541664N00619744EA0216102137000 +B1021274541650N00619751EA0216602139000 +B1021304541648N00619772EA0217402142000 +B1021334541660N00619785EA0218002145000 +B1021364541675N00619776EA0218602148000 +B1021394541681N00619752EA0219802151000 +B1021424541680N00619727EA0220202155000 +B1021454541673N00619704EA0220902159000 +B1021484541665N00619688EA0221702164000 +B1021514541653N00619683EA0221902169000 +B1021544541643N00619695EA0222202174000 +B1021574541646N00619716EA0222802179000 +B1022004541662N00619722EA0223202183000 +B1022034541677N00619707EA0223602188000 +B1022064541679N00619683EA0224202193000 +B1022094541670N00619665EA0225002197000 +B1022124541660N00619652EA0225602202000 +B1022154541647N00619651EA0225502207000 +B1022184541640N00619666EA0225702212000 +B1022214541648N00619682EA0226002216000 +B1022244541663N00619677EA0225802220000 +B1022274541666N00619651EA0226602223000 +B1022314541654N00619633EA0227302228000 +B1022344541642N00619623EA0226802232000 +B1022374541626N00619612EA0226602235000 +B1022404541608N00619595EA0225802237000 +B1022434541590N00619573EA0225502238000 +B1022464541573N00619552EA0225202239000 +B1022494541555N00619529EA0224302239000 +B1022524541537N00619503EA0224202239000 +B1022554541521N00619479EA0223902239000 +B1022584541504N00619453EA0223702238000 +B1023014541486N00619428EA0223402237000 +B1023044541469N00619404EA0223002236000 +B1023074541452N00619379EA0222502234000 +B1023104541435N00619355EA0221902233000 +B1023134541418N00619329EA0221302231000 +B1023164541402N00619302EA0220702229000 +B1023194541386N00619277EA0220002226000 +B1023224541369N00619251EA0219502223000 +B1023254541352N00619225EA0218902220000 +B1023284541335N00619200EA0218002216000 +B1023314541318N00619173EA0217402212000 +B1023344541302N00619144EA0216602208000 +B1023374541285N00619115EA0216102204000 +B1023404541269N00619085EA0215402199000 +B1023434541252N00619056EA0214702194000 +B1023464541235N00619028EA0214302189000 +B1023504541217N00618991EA0213702181000 +B1023534541203N00618961EA0213202176000 +B1023564541191N00618929EA0213002171000 +B1023594541180N00618898EA0212802166000 +B1024024541169N00618867EA0212502160000 +B1024054541157N00618836EA0211802155000 +B1024084541144N00618804EA0211302150000 +B1024114541132N00618775EA0210702145000 +B1024144541117N00618745EA0209902139000 +B1024174541105N00618713EA0209702134000 +B1024204541093N00618684EA0209002129000 +B1024234541081N00618652EA0208402124000 +B1024264541069N00618620EA0208002118000 +B1024294541058N00618590EA0207302113000 +B1024324541046N00618559EA0207002108000 +B1024354541034N00618528EA0206602103000 +B1024384541024N00618497EA0206002098000 +B1024414541013N00618465EA0205502093000 +B1024444541002N00618434EA0205302088000 +B1024474540991N00618404EA0204902083000 +B1024504540980N00618373EA0204502079000 +B1024534540968N00618343EA0204002074000 +B1024564540955N00618312EA0203602070000 +B1024594540942N00618283EA0203102066000 +B1025024540929N00618255EA0202602061000 +B1025064540912N00618215EA0202302055000 +B1025094540899N00618185EA0201702051000 +B1025124540886N00618157EA0201102046000 +B1025154540873N00618127EA0200602041000 +B1025184540861N00618098EA0200202037000 +B1025214540849N00618068EA0199702032000 +B1025244540837N00618038EA0199302027000 +B1025274540825N00618007EA0199102023000 +B1025304540815N00617976EA0198502018000 +B1025334540804N00617945EA0198202013000 +B1025364540794N00617913EA0197802009000 +B1025394540785N00617881EA0197302005000 +B1025424540776N00617849EA0196902000000 +B1025454540767N00617816EA0196501996000 +B1025484540758N00617784EA0196101991000 +B1025514540748N00617752EA0195801987000 +B1025544540739N00617721EA0195301982000 +B1025574540729N00617690EA0194901978000 +B1026004540720N00617658EA0194501973000 +B1026034540711N00617627EA0193901969000 +B1026064540702N00617595EA0193501964000 +B1026094540693N00617562EA0193001959000 +B1026124540684N00617531EA0192501954000 +B1026154540675N00617499EA0191901950000 +B1026184540666N00617466EA0191201945000 +B1026224540653N00617421EA0190701938000 +B1026254540644N00617386EA0190501933000 +B1026284540638N00617353EA0190801929000 +B1026314540634N00617320EA0190701925000 +B1026344540629N00617290EA0191301922000 +B1026374540623N00617268EA0191601920000 +B1026404540616N00617245EA0191901918000 +B1026434540611N00617223EA0192201917000 +B1026464540609N00617202EA0191801916000 +B1026494540604N00617177EA0191601915000 +B1026524540600N00617152EA0191901914000 +B1026554540596N00617129EA0191901913000 +B1026584540594N00617104EA0192501912000 +B1027014540593N00617077EA0193601912000 +B1027044540592N00617051EA0194701914000 +B1027074540585N00617028EA0195801916000 +B1027104540570N00617021EA0196701920000 +B1027134540561N00617033EA0197401924000 +B1027164540568N00617045EA0197801928000 +B1027194540582N00617036EA0198601933000 +B1027224540596N00617015EA0200201938000 +B1027254540598N00616995EA0201101944000 +B1027284540591N00616979EA0201401950000 +B1027314540577N00616974EA0202101956000 +B1027344540567N00616984EA0203101963000 +B1027374540569N00616996EA0204001966000 +B1027404540582N00617002EA0204901975000 +B1027434540595N00616989EA0206001982000 +B1027464540599N00616965EA0206801991000 +B1027494540594N00616950EA0206901999000 +B1027534540577N00616938EA0207502009000 +B1027564540567N00616940EA0208402015000 +B1027594540564N00616950EA0208702020000 +B1028024540572N00616963EA0209702028000 +B1028054540584N00616961EA0210302036000 +B1028084540596N00616947EA0210902043000 +B1028114540600N00616929EA0211202050000 +B1028144540597N00616909EA0211002057000 +B1028174540589N00616888EA0211402063000 +B1028204540580N00616870EA0211802068000 +B1028234540571N00616853EA0211602073000 +B1028264540558N00616835EA0211102078000 +B1028294540543N00616819EA0210502081000 +B1028324540525N00616806EA0209802084000 +B1028354540506N00616790EA0209002085000 +B1028384540486N00616771EA0208502086000 +B1028414540465N00616752EA0207902085000 +B1028444540445N00616732EA0207302084000 +B1028474540424N00616713EA0206502081000 +B1028504540403N00616692EA0206102079000 +B1028534540382N00616673EA0205602076000 +B1028564540361N00616653EA0204902072000 +B1028594540340N00616632EA0204502069000 +B1029024540320N00616612EA0203802065000 +B1029054540300N00616592EA0203202060000 +B1029084540280N00616574EA0202702056000 +B1029114540260N00616556EA0202102051000 +B1029154540233N00616533EA0201502044000 +B1029184540213N00616515EA0201002039000 +B1029214540193N00616498EA0200402035000 +B1029244540173N00616480EA0199902030000 +B1029274540153N00616463EA0199402025000 +B1029304540132N00616448EA0198802019000 +B1029334540112N00616433EA0198202014000 +B1029364540091N00616419EA0197702009000 +B1029394540072N00616406EA0197302004000 +B1029424540053N00616392EA0196501999000 +B1029454540033N00616379EA0196001993000 +B1029484540013N00616366EA0195601988000 +B1029514539994N00616353EA0195101983000 +B1029544539974N00616339EA0194601978000 +B1029574539955N00616325EA0194101973000 +B1030004539936N00616311EA0193601967000 +B1030034539916N00616297EA0193101962000 +B1030064539896N00616283EA0192601957000 +B1030094539877N00616269EA0192201952000 +B1030124539857N00616257EA0191801947000 +B1030154539837N00616245EA0191301942000 +B1030184539817N00616234EA0191001937000 +B1030214539797N00616224EA0190601933000 +B1030244539776N00616215EA0190201928000 +B1030274539755N00616205EA0189801923000 +B1030314539728N00616191EA0189601918000 +B1030344539707N00616180EA0189201913000 +B1030374539686N00616169EA0188801909000 +B1030404539666N00616159EA0188501905000 +B1030434539646N00616148EA0188101901000 +B1030464539626N00616139EA0187701897000 +B1030494539605N00616129EA0187401893000 +B1030524539585N00616119EA0187101889000 +B1030554539565N00616109EA0186801885000 +B1030584539544N00616099EA0186401882000 +B1031014539524N00616090EA0186001878000 +B1031044539504N00616081EA0185601874000 +B1031074539483N00616073EA0185001870000 +B1031104539462N00616065EA0184901866000 +B1031134539443N00616058EA0184301862000 +B1031164539425N00616052EA0184401859000 +B1031194539409N00616045EA0183701855000 +B1031224539390N00616036EA0183801852000 +B1031254539374N00616025EA0184201849000 +B1031284539362N00616015EA0184401847000 +B1031314539350N00616004EA0184701845000 +B1031344539339N00615993EA0184701844000 +B1031374539327N00615981EA0184601843000 +B1031404539314N00615972EA0184201842000 +B1031434539300N00615964EA0183601840000 +B1031474539280N00615953EA0183001838000 +B1031504539263N00615947EA0182501835000 +B1031534539247N00615939EA0182201832000 +B1031564539232N00615931EA0181801830000 +B1031594539216N00615924EA0181501827000 +B1032024539198N00615918EA0181301824000 +B1032054539183N00615911EA0181201821000 +B1032084539167N00615905EA0180601818000 +B1032114539151N00615900EA0180201815000 +B1032144539135N00615897EA0179901812000 +B1032174539119N00615892EA0180201809000 +B1032204539106N00615886EA0180501807000 +B1032234539093N00615880EA0181401806000 +B1032264539082N00615877EA0182001806000 +B1032294539071N00615878EA0182501806000 +B1032324539059N00615882EA0183101807000 +B1032354539056N00615896EA0183301808000 +B1032384539070N00615909EA0184201810000 +B1032414539087N00615903EA0184601812000 +B1032444539099N00615880EA0185101815000 +B1032474539097N00615856EA0185701818000 +B1032504539088N00615837EA0186601821000 +B1032534539079N00615825EA0186701825000 +B1032564539065N00615820EA0186901829000 +B1032594539052N00615821EA0186601832000 +B1033024539040N00615836EA0186401836000 +B1033054539030N00615848EA0186101838000 +B1033084539016N00615852EA0185801841000 +B1033124538998N00615845EA0185601843000 +B1033154538986N00615832EA0185701845000 +B1033184538972N00615822EA0185301845000 +B1033214538959N00615812EA0184801846000 +B1033244538944N00615799EA0184801846000 +B1033274538932N00615783EA0185201845000 +B1033304538922N00615767EA0186201846000 +B1033334538914N00615753EA0187001848000 +B1033364538903N00615747EA0187501850000 +B1033394538895N00615761EA0188001852000 +B1033424538901N00615776EA0189001855000 +B1033454538914N00615775EA0189601858000 +B1033484538927N00615762EA0190701862000 +B1033514538933N00615740EA0191101866000 +B1033544538929N00615718EA0192101871000 +B1033574538918N00615709EA0192901875000 +B1034004538908N00615717EA0193601880000 +B1034034538909N00615734EA0194101885000 +B1034064538921N00615744EA0195401891000 +B1034094538935N00615733EA0196401897000 +B1034124538944N00615711EA0197601904000 +B1034154538942N00615687EA0198201911000 +B1034184538930N00615678EA0199001919000 +B1034214538925N00615688EA0199601924000 +B1034244538932N00615704EA0200301932000 +B1034274538948N00615703EA0201701940000 +B1034304538958N00615681EA0202901949000 +B1034334538961N00615654EA0203801958000 +B1034364538954N00615633EA0204501967000 +B1034394538941N00615628EA0204901976000 +B1034424538934N00615642EA0205301984000 +B1034454538939N00615657EA0205901991000 +B1034484538954N00615665EA0207101998000 +B1034524538974N00615656EA0207802009000 +B1034554538987N00615637EA0209102017000 +B1034584538990N00615613EA0209702025000 +B1035014538981N00615594EA0210302033000 +B1035044538966N00615593EA0210802041000 +B1035074538961N00615608EA0211202048000 +B1035104538972N00615622EA0212202055000 +B1035134538988N00615618EA0213302062000 +B1035164538998N00615599EA0214202070000 +B1035194538998N00615574EA0214802077000 +B1035224538987N00615556EA0215402085000 +B1035254538972N00615553EA0216002092000 +B1035284538966N00615567EA0216202098000 +B1035314538973N00615584EA0216502105000 +B1035344538989N00615586EA0217102111000 +B1035374539004N00615576EA0218102118000 +B1035404539015N00615559EA0219002125000 +B1035434539024N00615538EA0219502132000 +B1035464539020N00615514EA0220002139000 +B1035494539004N00615506EA0220902146000 +B1035524538994N00615516EA0221402152000 +B1035554538996N00615535EA0222102159000 +B1035584539009N00615539EA0222702166000 +B1036014539019N00615518EA0223802173000 +B1036044539018N00615494EA0224302179000 +B1036074539010N00615476EA0224802185000 +B1036104538996N00615469EA0225302191000 +B1036134538984N00615478EA0225602197000 +B1036164538982N00615495EA0225702203000 +B1036194538990N00615509EA0225902208000 +B1036224539007N00615511EA0226502213000 +B1036264539025N00615488EA0227402221000 +B1036294539035N00615466EA0228102226000 +B1036324539041N00615442EA0228202232000 +B1036354539035N00615417EA0228602237000 +B1036384539023N00615403EA0228902242000 +B1036414539010N00615395EA0229002247000 +B1036444538994N00615388EA0229202251000 +B1036474538977N00615383EA0229202256000 +B1036504538960N00615379EA0228902259000 +B1036534538942N00615376EA0228102262000 +B1036564538922N00615372EA0227702263000 +B1036594538903N00615368EA0227202264000 +B1037024538883N00615365EA0226702264000 +B1037054538864N00615364EA0226302264000 +B1037084538845N00615363EA0225802263000 +B1037114538825N00615362EA0225402261000 +B1037144538806N00615360EA0224902259000 +B1037174538787N00615358EA0224302257000 +B1037204538768N00615356EA0224102255000 +B1037234538750N00615353EA0223502252000 +B1037264538731N00615351EA0223302250000 +B1037294538712N00615347EA0222802247000 +B1037324538693N00615344EA0222602244000 +B1037354538674N00615341EA0222302241000 +B1037384538656N00615338EA0221902238000 +B1037414538637N00615336EA0221502235000 +B1037444538618N00615333EA0221202232000 +B1037484538594N00615329EA0220802228000 +B1037514538575N00615326EA0220602225000 +B1037544538557N00615323EA0220202222000 +B1037574538538N00615319EA0219802218000 +B1038004538520N00615316EA0219502215000 +B1038034538502N00615312EA0219102212000 +B1038064538484N00615308EA0218802209000 +B1038094538466N00615304EA0218402205000 +B1038124538448N00615300EA0218202202000 +B1038154538432N00615298EA0218002199000 +B1038184538418N00615296EA0217802196000 +B1038214538402N00615292EA0217502193000 +B1038244538386N00615290EA0217602190000 +B1038274538371N00615286EA0217802188000 +B1038304538357N00615287EA0217602186000 +B1038334538342N00615287EA0217402184000 +B1038364538325N00615284EA0217402182000 +B1038394538307N00615279EA0217402180000 +B1038424538289N00615271EA0217102179000 +B1038454538269N00615266EA0216902177000 +B1038484538250N00615261EA0216602175000 +B1038514538231N00615255EA0216402173000 +B1038544538209N00615248EA0216802171000 +B1038574538188N00615242EA0217002170000 +B1039004538167N00615234EA0217402169000 +B1039044538141N00615224EA0216802169000 +B1039074538122N00615221EA0216602168000 +B1039104538106N00615221EA0217002167000 +B1039134538094N00615218EA0216102166000 +B1039164538077N00615210EA0215602164000 +B1039194538058N00615201EA0215202162000 +B1039224538040N00615195EA0214302160000 +B1039254538021N00615187EA0213502157000 +B1039284538005N00615177EA0213702154000 +B1039314537991N00615166EA0213502151000 +B1039344537974N00615153EA0214202148000 +B1039374537959N00615143EA0214102147000 +B1039404537943N00615132EA0213402145000 +B1039434537925N00615120EA0212802143000 +B1039464537909N00615104EA0213102140000 +B1039494537895N00615089EA0213002138000 +B1039524537879N00615074EA0212802136000 +B1039554537865N00615058EA0212302134000 +B1039584537849N00615041EA0211702132000 +B1040014537832N00615025EA0211802129000 +B1040044537817N00615009EA0211202127000 +B1040074537802N00614989EA0210902124000 +B1040104537787N00614968EA0210402121000 +B1040134537772N00614947EA0210602118000 +B1040164537758N00614928EA0210202115000 +B1040194537743N00614905EA0210602113000 +B1040224537729N00614885EA0211802111000 +B1040264537715N00614866EA0212202111000 +B1040294537704N00614852EA0212202111000 +B1040324537696N00614832EA0212502111000 +B1040354537688N00614815EA0212602112000 +B1040384537679N00614796EA0212602113000 +B1040414537672N00614777EA0212502114000 +B1040444537663N00614759EA0212302114000 +B1040474537655N00614741EA0211802114000 +B1040504537646N00614720EA0211402113000 +B1040534537638N00614699EA0212002113000 +B1040564537630N00614681EA0212102113000 +B1040594537620N00614659EA0212602113000 +B1041024537610N00614639EA0213402114000 +B1041054537602N00614622EA0213502115000 +B1041084537593N00614605EA0213702117000 +B1041114537584N00614587EA0213802118000 +B1041144537575N00614567EA0213802120000 +B1041174537566N00614548EA0213402121000 +B1041204537556N00614528EA0213202122000 +B1041234537545N00614512EA0212602122000 +B1041264537533N00614496EA0212302121000 +B1041294537521N00614479EA0212102121000 +B1041324537508N00614461EA0211602120000 +B1041354537493N00614444EA0211102118000 +B1041384537479N00614426EA0210702116000 +B1041414537464N00614408EA0210602114000 +B1041444537450N00614391EA0210902113000 +B1041474537435N00614374EA0210902111000 +B1041514537415N00614355EA0210902110000 +B1041544537401N00614341EA0210702108000 +B1041574537388N00614326EA0210302107000 +B1042004537376N00614311EA0209702105000 +B1042034537361N00614294EA0208402103000 +B1042064537345N00614274EA0208202100000 +B1042094537330N00614256EA0207602096000 +B1042124537313N00614238EA0207102092000 +B1042154537296N00614220EA0206602089000 +B1042184537278N00614202EA0206102085000 +B1042214537261N00614183EA0205702081000 +B1042244537244N00614164EA0205102077000 +B1042274537227N00614145EA0204702072000 +B1042304537213N00614127EA0204202068000 +B1042334537199N00614110EA0203802064000 +B1042364537182N00614092EA0204102060000 +B1042394537167N00614076EA0204702056000 +B1042424537157N00614060EA0205402054000 +B1042454537146N00614043EA0205902053000 +B1042484537136N00614029EA0205802052000 +B1042514537124N00614015EA0206002052000 +B1042544537114N00614001EA0206102052000 +B1042574537105N00613987EA0206302051000 +B1043004537096N00613970EA0206502051000 +B1043034537088N00613956EA0206402052000 +B1043064537078N00613939EA0206502052000 +B1043094537068N00613922EA0206802052000 +B1043134537056N00613901EA0206202053000 +B1043164537045N00613884EA0205102053000 +B1043194537031N00613866EA0204902051000 +B1043224537019N00613852EA0204902050000 +B1043254537009N00613834EA0204202049000 +B1043284536998N00613813EA0204602047000 +B1043314536990N00613799EA0204302047000 +B1043344536979N00613784EA0203602045000 +B1043374536967N00613766EA0203702043000 +B1043404536957N00613751EA0203202042000 +B1043434536945N00613737EA0202802039000 +B1043464536932N00613727EA0202402037000 +B1043494536918N00613715EA0203002035000 +B1043524536906N00613704EA0203402033000 +B1043554536894N00613689EA0203102032000 +B1043584536879N00613672EA0203102031000 +B1044014536865N00613657EA0203602030000 +B1044044536855N00613643EA0204302030000 +B1044074536847N00613628EA0204302030000 +B1044104536839N00613609EA0204702031000 +B1044134536833N00613590EA0205102032000 +B1044164536826N00613569EA0205402034000 +B1044194536820N00613549EA0205302036000 +B1044224536812N00613525EA0205102038000 +B1044254536804N00613502EA0204802039000 +B1044284536796N00613481EA0204302039000 +B1044314536787N00613462EA0203702039000 +B1044354536774N00613434EA0203302038000 +B1044384536764N00613414EA0203002037000 +B1044414536754N00613395EA0202602035000 +B1044444536745N00613376EA0202102034000 +B1044474536735N00613356EA0201602031000 +B1044504536725N00613335EA0201302029000 +B1044534536716N00613314EA0201802026000 +B1044564536707N00613296EA0202502025000 +B1044594536697N00613282EA0203002024000 +B1045024536686N00613267EA0203602024000 +B1045054536673N00613253EA0204602025000 +B1045084536659N00613246EA0205302027000 +B1045114536649N00613254EA0205802029000 +B1045144536647N00613270EA0206102032000 +B1045174536658N00613282EA0206002035000 +B1045204536674N00613276EA0206302037000 +B1045234536684N00613253EA0207102039000 +B1045264536688N00613228EA0208002042000 +B1045294536690N00613200EA0209102046000 +B1045324536687N00613176EA0209702050000 +B1045354536675N00613163EA0210202055000 +B1045384536666N00613172EA0210602059000 +B1045414536671N00613189EA0211002064000 +B1045444536688N00613188EA0211802068000 +B1045474536705N00613173EA0213202073000 +B1045504536718N00613154EA0214402080000 +B1045534536726N00613129EA0215102086000 +B1045564536720N00613107EA0215902093000 +B1045594536708N00613097EA0217102100000 +B1046024536700N00613102EA0217902105000 +B1046064536708N00613119EA0218702116000 +B1046094536726N00613120EA0220002124000 +B1046124536740N00613101EA0221002133000 +B1046154536741N00613074EA0221602142000 +B1046184536734N00613056EA0222002150000 +B1046214536723N00613055EA0222702157000 +B1046244536722N00613071EA0223402165000 +B1046274536730N00613084EA0224102172000 +B1046304536746N00613090EA0224802180000 +B1046334536766N00613080EA0225302187000 +B1046364536778N00613056EA0226002194000 +B1046394536776N00613032EA0225902201000 +B1046424536766N00613024EA0226002207000 +B1046454536757N00613031EA0226402211000 +B1046484536757N00613045EA0226502216000 +B1046514536770N00613055EA0227002222000 +B1046544536785N00613043EA0227102227000 +B1046574536789N00613019EA0227102232000 +B1047004536781N00613002EA0227202236000 +B1047034536768N00612988EA0226702239000 +B1047064536754N00612971EA0226702242000 +B1047094536745N00612954EA0226702244000 +B1047124536736N00612939EA0226502246000 +B1047154536726N00612922EA0226702247000 +B1047184536716N00612904EA0226702249000 +B1047214536706N00612882EA0227902251000 +B1047244536697N00612865EA0228502253000 +B1047274536687N00612848EA0229102256000 +B1047304536679N00612829EA0230002259000 +B1047334536673N00612810EA0230402263000 +B1047364536667N00612789EA0229902267000 +B1047394536659N00612768EA0229002270000 +B1047434536644N00612742EA0227602270000 +B1047464536631N00612720EA0227302270000 +B1047494536620N00612700EA0226202269000 +B1047524536607N00612675EA0225502267000 +B1047554536596N00612651EA0224902264000 +B1047584536584N00612627EA0224302261000 +B1048014536573N00612603EA0224902259000 +B1048044536564N00612581EA0225402257000 +B1048074536556N00612561EA0225902257000 +B1048104536547N00612540EA0226502256000 +B1048134536541N00612521EA0226902257000 +B1048164536532N00612502EA0227502258000 +B1048194536527N00612485EA0227902259000 +B1048224536519N00612463EA0228202261000 +B1048254536512N00612444EA0228402263000 +B1048284536504N00612426EA0228602265000 +B1048314536493N00612409EA0229602267000 +B1048344536485N00612402EA0230302269000 +B1048374536477N00612395EA0230002272000 +B1048404536470N00612380EA0229602274000 +B1048434536460N00612363EA0229402276000 +B1048464536450N00612345EA0229202278000 +B1048494536441N00612330EA0228202278000 +B1048524536430N00612312EA0227602278000 +B1048554536417N00612290EA0227102277000 +B1048584536403N00612270EA0227702276000 +B1049014536392N00612252EA0227802275000 +B1049044536380N00612236EA0228202274000 +B1049074536369N00612222EA0228602275000 +B1049104536360N00612210EA0228602275000 +B1049134536352N00612193EA0228502276000 +B1049174536337N00612168EA0228602276000 +B1049204536321N00612147EA0230002277000 +B1049234536311N00612129EA0230802280000 +B1049264536301N00612109EA0231802282000 +B1049294536291N00612095EA0233202287000 +B1049324536286N00612086EA0233002290000 +B1049354536275N00612073EA0233602294000 +B1049384536267N00612063EA0234002299000 +B1049414536258N00612049EA0233902303000 +B1049444536249N00612035EA0234202306000 +B1049474536240N00612020EA0233802310000 +B1049504536229N00612002EA0233802313000 +B1049534536220N00611985EA0233402315000 +B1049564536209N00611966EA0233002317000 +B1049594536199N00611948EA0233102318000 +B1050024536190N00611932EA0233202319000 +B1050054536181N00611917EA0233402319000 +B1050084536172N00611901EA0233402320000 +B1050114536162N00611885EA0233302321000 +B1050144536152N00611871EA0233602322000 +B1050174536143N00611854EA0234302323000 +B1050204536137N00611837EA0234902324000 +B1050234536132N00611821EA0235202326000 +B1050264536124N00611804EA0235902328000 +B1050294536117N00611787EA0236102331000 +B1050324536110N00611767EA0235902334000 +B1050354536100N00611747EA0235902336000 +B1050384536089N00611727EA0235802338000 +B1050414536080N00611704EA0235402339000 +B1050444536072N00611681EA0234902340000 +B1050474536063N00611658EA0234602341000 +B1050514536050N00611630EA0234102340000 +B1050544536039N00611608EA0234102340000 +B1050574536029N00611585EA0234002339000 +B1051004536018N00611562EA0233902339000 +B1051034536007N00611538EA0234102338000 +B1051064535998N00611515EA0234102338000 +B1051094535989N00611491EA0234302338000 +B1051124535979N00611467EA0235602338000 +B1051154535971N00611452EA0236102339000 +B1051184535963N00611434EA0236202341000 +B1051214535953N00611414EA0236802343000 +B1051244535945N00611389EA0236802345000 +B1051274535940N00611362EA0236602347000 +B1051304535934N00611336EA0236202348000 +B1051334535926N00611310EA0236202349000 +B1051364535919N00611285EA0235902349000 +B1051394535910N00611259EA0235702349000 +B1051424535902N00611233EA0235602349000 +B1051454535894N00611206EA0235702349000 +B1051484535888N00611180EA0236402350000 +B1051514535884N00611154EA0236602351000 +B1051544535880N00611128EA0236402352000 +B1051574535877N00611102EA0235902353000 +B1052004535872N00611073EA0235702353000 +B1052034535867N00611045EA0235402353000 +B1052074535865N00611005EA0235602353000 +B1052104535860N00610977EA0235602353000 +B1052134535856N00610949EA0235802353000 +B1052164535851N00610921EA0235202353000 +B1052194535845N00610891EA0235502352000 +B1052224535840N00610865EA0235502352000 +B1052254535835N00610835EA0235402352000 +B1052284535830N00610808EA0235702352000 +B1052314535825N00610782EA0235702352000 +B1052344535820N00610757EA0236202352000 +B1052374535815N00610734EA0236002352000 +B1052404535809N00610710EA0236402353000 +B1052434535805N00610691EA0235902353000 +B1052464535798N00610665EA0236302353000 +B1052494535792N00610642EA0236902354000 +B1052524535786N00610619EA0236902355000 +B1052554535778N00610597EA0237102356000 +B1052584535774N00610576EA0237002357000 +B1053014535769N00610551EA0237302358000 +B1053044535763N00610528EA0238002360000 +B1053074535756N00610508EA0238402362000 +B1053104535747N00610487EA0239102364000 +B1053134535735N00610467EA0240102366000 +B1053164535723N00610447EA0240902370000 +B1053194535713N00610423EA0242102374000 +B1053224535703N00610402EA0243002379000 +B1053254535688N00610384EA0243802385000 +B1053284535670N00610384EA0244802391000 +B1053314535664N00610395EA0245502396000 +B1053344535677N00610396EA0246402401000 +B1053374535686N00610373EA0247002408000 +B1053414535675N00610339EA0247702416000 +B1053444535660N00610320EA0248002422000 +B1053474535648N00610294EA0248302428000 +B1053504535644N00610265EA0248402433000 +B1053534535644N00610235EA0248302438000 +B1053564535647N00610204EA0248002442000 +B1053594535652N00610172EA0247902445000 +B1054024535657N00610143EA0247602447000 +B1054054535654N00610116EA0247902450000 +B1054084535651N00610095EA0248002453000 +B1054114535644N00610075EA0247502455000 +B1054144535637N00610054EA0246902456000 +B1054174535634N00610027EA0246102457000 +B1054204535630N00609998EA0245702457000 +B1054234535626N00609970EA0244902456000 +B1054264535622N00609939EA0244902454000 +B1054294535618N00609911EA0244602453000 +B1054324535611N00609879EA0244002451000 +B1054354535602N00609842EA0244802450000 +B1054384535594N00609814EA0244902449000 +B1054414535586N00609787EA0244702448000 +B1054444535579N00609758EA0244902447000 +B1054474535572N00609728EA0244702447000 +B1054504535567N00609696EA0244402446000 +B1054534535563N00609665EA0244102445000 +B1054564535557N00609633EA0243702444000 +B1054594535550N00609601EA0243402443000 +B1055024535542N00609569EA0243102441000 +B1055064535531N00609530EA0242902439000 +B1055094535522N00609502EA0242802437000 +B1055124535513N00609473EA0242602435000 +B1055154535504N00609446EA0242202434000 +B1055184535493N00609420EA0241602432000 +B1055214535483N00609392EA0241202430000 +B1055244535474N00609365EA0240902428000 +B1055274535465N00609338EA0240302425000 +B1055304535456N00609309EA0240002423000 +B1055334535448N00609280EA0239602420000 +B1055364535440N00609251EA0239202417000 +B1055394535432N00609222EA0238802414000 +B1055424535424N00609192EA0238402411000 +B1055454535417N00609163EA0238002408000 +B1055484535409N00609133EA0237602404000 +B1055514535401N00609104EA0237202400000 +B1055544535393N00609074EA0236802396000 +B1055574535385N00609045EA0236602393000 +B1056004535376N00609015EA0236302389000 +B1056034535365N00608987EA0236102387000 +B1056064535355N00608960EA0236002383000 +B1056094535344N00608932EA0235702380000 +B1056124535333N00608904EA0235302377000 +B1056154535322N00608877EA0235202374000 +B1056184535311N00608851EA0234902370000 +B1056214535299N00608826EA0234602367000 +B1056254535283N00608791EA0234502362000 +B1056284535272N00608764EA0234302359000 +B1056314535263N00608735EA0233902356000 +B1056344535253N00608706EA0233602354000 +B1056374535243N00608679EA0233302351000 +B1056404535232N00608652EA0233102347000 +B1056434535221N00608624EA0232602344000 +B1056464535211N00608597EA0232402342000 +B1056494535200N00608570EA0232002339000 +B1056524535190N00608543EA0231702336000 +B1056554535180N00608516EA0231302333000 +B1056584535170N00608489EA0231002330000 +B1057014535160N00608463EA0230502327000 +B1057044535151N00608436EA0229902324000 +B1057074535139N00608404EA0228802320000 +B1057104535123N00608367EA0228502316000 +B1057134535109N00608334EA0228402312000 +B1057164535098N00608301EA0227702308000 +B1057194535085N00608265EA0227302304000 +B1057224535071N00608230EA0227102300000 +B1057254535058N00608197EA0226202295000 +B1057284535044N00608162EA0225702291000 +B1057314535030N00608128EA0225302286000 +B1057344535018N00608093EA0224602281000 +B1057374535004N00608057EA0224202276000 +B1057404534990N00608023EA0223702272000 +B1057444534971N00607977EA0223002265000 +B1057474534957N00607942EA0222502259000 +B1057504534943N00607907EA0222002254000 +B1057534534928N00607873EA0221402249000 +B1057564534912N00607839EA0220902243000 +B1057594534896N00607807EA0220302238000 +B1058024534880N00607775EA0219702232000 +B1058054534863N00607744EA0219202227000 +B1058084534846N00607711EA0218702221000 +B1058114534829N00607678EA0218102215000 +B1058144534813N00607645EA0217502210000 +B1058174534797N00607611EA0217102204000 +B1058204534781N00607577EA0216402198000 +B1058234534765N00607543EA0215902193000 +B1058264534749N00607510EA0215402187000 +B1058294534732N00607477EA0214902182000 +B1058324534715N00607445EA0214502177000 +B1058354534698N00607412EA0213902171000 +B1058384534680N00607381EA0213502166000 +B1058414534662N00607350EA0213002161000 +B1058444534643N00607319EA0212502156000 +B1058474534625N00607289EA0211902151000 +B1058504534608N00607256EA0211602145000 +B1058534534592N00607222EA0211202140000 +B1058564534576N00607188EA0210602135000 +B1059004534554N00607143EA0210102129000 +B1059034534538N00607110EA0209802124000 +B1059064534521N00607077EA0209102119000 +B1059094534505N00607043EA0208702113000 +B1059124534488N00607011EA0208402109000 +B1059154534472N00606979EA0207702104000 +B1059184534455N00606948EA0207402099000 +B1059214534438N00606918EA0206902094000 +B1059244534422N00606888EA0206502089000 +B1059274534406N00606857EA0206102085000 +B1059304534391N00606826EA0205802080000 +B1059334534376N00606795EA0205202076000 +B1059364534360N00606765EA0204802071000 +B1059394534344N00606734EA0204302067000 +B1059424534328N00606704EA0203902062000 +B1059454534312N00606674EA0203402058000 +B1059484534295N00606645EA0203002053000 +B1059514534279N00606615EA0202702049000 +B1059544534262N00606586EA0202102045000 +B1059574534246N00606557EA0201602040000 +B1100004534229N00606528EA0201102036000 +B1100034534213N00606499EA0200702031000 +B1100064534196N00606470EA0200202027000 +B1100094534180N00606441EA0199902022000 +B1100124534165N00606411EA0199302018000 +B1100164534145N00606371EA0198902012000 +B1100194534130N00606340EA0198402008000 +B1100224534115N00606310EA0197902004000 +B1100254534101N00606279EA0197501999000 +B1100284534087N00606249EA0197001995000 +B1100314534073N00606218EA0196501990000 +B1100344534059N00606188EA0196001986000 +B1100374534045N00606158EA0195501981000 +B1100404534031N00606128EA0195001977000 +B1100434534016N00606099EA0194501972000 +B1100464534001N00606069EA0194001967000 +B1100494533986N00606041EA0193501962000 +B1100524533970N00606013EA0192801957000 +B1100554533954N00605985EA0192501952000 +B1100584533939N00605958EA0191801947000 +B1101014533922N00605930EA0191301942000 +B1101044533905N00605903EA0191201937000 +B1101074533888N00605878EA0190601932000 +B1101104533871N00605852EA0190101927000 +B1101134533854N00605825EA0189601922000 +B1101164533837N00605800EA0189201918000 +B1101194533821N00605772EA0188801913000 +B1101224533807N00605744EA0189101908000 +B1101254533792N00605714EA0190001904000 +B1101284533781N00605690EA0190901902000 +B1101314533775N00605673EA0191101901000 +B1101344533776N00605653EA0191801901000 +B1101384533790N00605641EA0192801903000 +B1101414533804N00605643EA0193901905000 +B1101444533816N00605656EA0195001908000 +B1101474533818N00605677EA0196301912000 +B1101504533809N00605691EA0197201916000 +B1101534533793N00605691EA0197801921000 +B1101564533785N00605673EA0198001926000 +B1101594533793N00605657EA0199401931000 +B1102024533805N00605657EA0200401937000 +B1102054533814N00605671EA0200701944000 +B1102084533806N00605687EA0201201950000 +B1102114533791N00605686EA0201801956000 +B1102144533783N00605669EA0202501962000 +B1102174533781N00605645EA0203901968000 +B1102204533785N00605628EA0204701975000 +B1102234533796N00605623EA0205201982000 +B1102264533800N00605638EA0205801988000 +B1102294533792N00605651EA0206001995000 +B1102324533775N00605654EA0206802001000 +B1102354533760N00605642EA0207502007000 +B1102384533755N00605621EA0208402013000 +B1102414533760N00605610EA0209002019000 +B1102444533766N00605620EA0209302025000 +B1102474533758N00605637EA0209602032000 +B1102504533739N00605640EA0210002038000 +B1102534533722N00605633EA0210302045000 +B1102564533712N00605614EA0210002050000 +B1102594533711N00605594EA0210202056000 +B1103024533717N00605581EA0209602060000 +B1103054533727N00605570EA0210102064000 +B1103084533732N00605579EA0209802066000 +B1103114533728N00605596EA0209502069000 +B1103144533709N00605601EA0209102071000 +B1103174533692N00605576EA0209202073000 +B1103214533682N00605552EA0208502074000 +B1103244533680N00605520EA0207502073000 +B1103274533680N00605480EA0206602072000 +B1103304533681N00605438EA0206802070000 +B1103334533686N00605405EA0207302069000 +B1103364533688N00605377EA0207002068000 +B1103394533686N00605349EA0207002067000 +B1103424533682N00605324EA0207402066000 +B1103454533675N00605299EA0208102066000 +B1103484533665N00605276EA0208902066000 +B1103514533656N00605260EA0209502068000 +B1103544533643N00605254EA0209802070000 +B1103574533633N00605262EA0210302071000 +B1104004533640N00605275EA0210602073000 +B1104034533653N00605274EA0210902076000 +B1104064533663N00605256EA0211502078000 +B1104094533666N00605233EA0212002081000 +B1104124533660N00605210EA0212402084000 +B1104154533646N00605202EA0212702088000 +B1104184533633N00605206EA0213102091000 +B1104214533631N00605220EA0213202094000 +B1104244533640N00605230EA0213202097000 +B1104274533653N00605221EA0213402099000 +B1104304533659N00605198EA0214002102000 +B1104334533657N00605172EA0214702105000 +B1104364533651N00605148EA0215302107000 +B1104394533643N00605125EA0215902111000 +B1104424533637N00605105EA0215802115000 +B1104454533639N00605079EA0216002118000 +B1104494533657N00605063EA0215602122000 +B1104524533670N00605071EA0215402125000 +B1104554533671N00605087EA0216002127000 +B1104584533665N00605095EA0216502128000 +B1105014533654N00605100EA0217002131000 +B1105044533640N00605091EA0217402134000 +B1105074533628N00605074EA0217802138000 +B1105104533618N00605053EA0217702141000 +B1105134533607N00605029EA0217602143000 +B1105164533594N00605008EA0217802146000 +B1105194533582N00604987EA0218102149000 +B1105224533572N00604969EA0218202151000 +B1105254533562N00604949EA0217802154000 +B1105284533549N00604928EA0217602155000 +B1105314533537N00604905EA0217302157000 +B1105344533526N00604881EA0216302158000 +B1105374533514N00604851EA0216102158000 +B1105404533503N00604824EA0215402157000 +B1105434533493N00604793EA0214802156000 +B1105464533484N00604761EA0214802154000 +B1105494533475N00604734EA0214302153000 +B1105524533463N00604705EA0214202151000 +B1105554533450N00604678EA0214002149000 +B1105584533437N00604654EA0213502147000 +B1106014533423N00604628EA0213102145000 +B1106044533412N00604601EA0212802142000 +B1106074533399N00604574EA0212502140000 +B1106114533381N00604540EA0212402137000 +B1106144533367N00604515EA0211902135000 +B1106174533354N00604488EA0211602132000 +B1106204533341N00604460EA0211002130000 +B1106234533326N00604431EA0210602127000 +B1106264533314N00604402EA0210402123000 +B1106294533302N00604372EA0210002120000 +B1106324533292N00604342EA0209802117000 +B1106354533282N00604313EA0209202114000 +B1106384533270N00604284EA0209002110000 +B1106414533260N00604256EA0208802107000 +B1106444533251N00604226EA0208202104000 +B1106474533241N00604194EA0208002100000 +B1106504533233N00604165EA0208002097000 +B1106534533224N00604138EA0207302094000 +B1106564533214N00604106EA0207102091000 +B1106594533205N00604076EA0206702087000 +B1107024533196N00604046EA0206102084000 +B1107054533186N00604015EA0206002080000 +B1107084533178N00603985EA0205402077000 +B1107114533167N00603953EA0205302073000 +B1107144533157N00603925EA0205002069000 +B1107174533148N00603899EA0204502066000 +B1107204533137N00603870EA0204402062000 +B1107234533125N00603842EA0204302059000 +B1107264533115N00603815EA0204202056000 +B1107294533105N00603789EA0203802053000 +B1107334533093N00603756EA0203402049000 +B1107364533085N00603731EA0203202046000 +B1107394533081N00603706EA0202902043000 +B1107424533076N00603682EA0202602040000 +B1107454533072N00603658EA0202502038000 +B1107484533071N00603635EA0202202035000 +B1107514533065N00603615EA0202102033000 +B1107544533059N00603594EA0202002030000 +B1107574533064N00603576EA0202002028000 +B1108004533072N00603559EA0202202027000 +B1108034533078N00603541EA0202102025000 +B1108064533086N00603522EA0201702023000 +B1108094533096N00603504EA0201202022000 +B1108124533109N00603488EA0200902020000 +B1108154533124N00603493EA0200702017000 +B1108184533136N00603504EA0200402015000 +B1108214533151N00603514EA0200202013000 +B1108244533168N00603524EA0200602011000 +B1108274533184N00603529EA0200902010000 +B1108304533199N00603531EA0201302009000 +B1108334533213N00603540EA0201402008000 +B1108364533220N00603558EA0201802008000 +B1108394533220N00603578EA0201902008000 +B1108424533215N00603596EA0201902008000 +B1108454533204N00603610EA0202002008000 +B1108494533183N00603618EA0202202009000 +B1108524533168N00603610EA0202002009000 +B1108554533157N00603593EA0202302009000 +B1108584533156N00603576EA0202102009000 +B1109014533165N00603561EA0201702009000 +B1109044533181N00603560EA0201802009000 +B1109074533196N00603564EA0202402009000 +B1109104533208N00603567EA0202402010000 +B1109134533217N00603581EA0202202011000 +B1109164533212N00603598EA0202202011000 +B1109194533199N00603606EA0202402012000 +B1109224533185N00603606EA0202302012000 +B1109254533170N00603602EA0202302012000 +B1109284533157N00603591EA0202002012000 +B1109314533151N00603574EA0201702012000 +B1109344533159N00603557EA0201202011000 +B1109374533176N00603552EA0201402010000 +B1109404533190N00603562EA0201402009000 +B1109434533200N00603579EA0201602009000 +B1109464533211N00603592EA0201602009000 +B1109494533224N00603597EA0201502009000 +B1109524533237N00603602EA0201502009000 +B1109554533248N00603611EA0201302008000 +B1109584533259N00603625EA0200802008000 +B1110014533271N00603643EA0201002007000 +B1110044533281N00603661EA0201402006000 +B1110084533293N00603683EA0201802006000 +B1110114533297N00603700EA0201802006000 +B1110144533292N00603716EA0201202006000 +B1110174533279N00603719EA0200602005000 +B1110204533265N00603708EA0200902003000 +B1110234533254N00603696EA0201002003000 +B1110264533246N00603681EA0200502002000 +B1110294533237N00603656EA0199602000000 +B1110324533229N00603630EA0199801999000 +B1110354533221N00603608EA0199601997000 +B1110384533212N00603583EA0199501996000 +B1110414533202N00603561EA0200401995000 +B1110444533197N00603545EA0200601995000 +B1110474533204N00603524EA0201001995000 +B1110504533218N00603521EA0201701995000 +B1110534533228N00603531EA0201801997000 +B1110564533229N00603547EA0201501998000 +B1110594533221N00603560EA0201801999000 +B1111024533211N00603558EA0202102000000 +B1111054533202N00603547EA0202302001000 +B1111084533202N00603525EA0202302002000 +B1111114533213N00603506EA0202702003000 +B1111144533228N00603501EA0202702004000 +B1111174533244N00603505EA0203102006000 +B1111204533250N00603519EA0203202007000 +B1111234533246N00603535EA0203802009000 +B1111264533237N00603542EA0203902010000 +B1111304533222N00603533EA0204102013000 +B1111334533216N00603514EA0204602014000 +B1111364533215N00603491EA0205102017000 +B1111394533220N00603469EA0205102019000 +B1111424533234N00603454EA0205302021000 +B1111454533249N00603453EA0205702023000 +B1111484533259N00603465EA0206102026000 +B1111514533261N00603480EA0206402029000 +B1111544533253N00603487EA0206702030000 +B1111574533242N00603482EA0207202033000 +B1112004533234N00603464EA0207202036000 +B1112034533236N00603439EA0207402039000 +B1112064533247N00603420EA0207702041000 +B1112094533263N00603414EA0207502044000 +B1112124533274N00603424EA0207702046000 +B1112154533276N00603440EA0207902048000 +B1112184533276N00603459EA0207902050000 +B1112214533276N00603478EA0208602053000 +B1112244533276N00603492EA0208602055000 +B1112274533267N00603499EA0208502057000 +B1112304533256N00603488EA0208602059000 +B1112334533252N00603465EA0209002060000 +B1112364533257N00603438EA0209602062000 +B1112394533270N00603422EA0210002065000 +B1112424533287N00603418EA0210102067000 +B1112454533300N00603428EA0210302070000 +B1112484533304N00603444EA0210202073000 +B1112514533300N00603457EA0210202075000 +B1112554533285N00603458EA0210202078000 +B1112584533273N00603449EA0210202080000 +B1113014533262N00603435EA0210402082000 +B1113044533256N00603412EA0210002083000 +B1113074533259N00603384EA0209902084000 +B1113104533270N00603359EA0210102085000 +B1113134533284N00603344EA0210302086000 +B1113164533298N00603334EA0210302087000 +B1113194533314N00603330EA0210202088000 +B1113224533326N00603335EA0209602088000 +B1113254533329N00603352EA0209102088000 +B1113284533324N00603367EA0209202087000 +B1113314533315N00603377EA0209002087000 +B1113344533304N00603382EA0209302086000 +B1113374533292N00603379EA0208702086000 +B1113404533278N00603370EA0208902085000 +B1113434533266N00603359EA0208302085000 +B1113464533253N00603341EA0208202084000 +B1113494533242N00603324EA0207902082000 +B1113524533231N00603305EA0207302081000 +B1113554533217N00603281EA0207602079000 +B1113584533206N00603259EA0207402077000 +B1114014533194N00603237EA0207302076000 +B1114044533181N00603217EA0207202074000 +B1114074533169N00603197EA0206702073000 +B1114114533152N00603169EA0206402070000 +B1114144533139N00603150EA0206002068000 +B1114174533125N00603135EA0205702066000 +B1114204533112N00603118EA0204902064000 +B1114234533096N00603098EA0204802061000 +B1114264533084N00603078EA0204902059000 +B1114294533070N00603060EA0204002056000 +B1114324533057N00603038EA0204202054000 +B1114354533047N00603020EA0203302051000 +B1114384533032N00602999EA0202802047000 +B1114414533019N00602980EA0202002044000 +B1114444533005N00602959EA0201202040000 +B1114474532991N00602939EA0200702036000 +B1114504532976N00602917EA0199502031000 +B1114534532960N00602891EA0199102026000 +B1114564532946N00602866EA0198502021000 +B1114594532931N00602839EA0197702015000 +B1115024532915N00602814EA0197002010000 +B1115054532901N00602788EA0196502004000 +B1115084532886N00602761EA0194801998000 +B1115114532865N00602730EA0194401992000 +B1115144532847N00602703EA0193701985000 +B1115174532829N00602677EA0192301979000 +B1115204532810N00602649EA0191701971000 +B1115234532792N00602621EA0190601964000 +B1115264532773N00602594EA0189401957000 +B1115294532754N00602566EA0188701949000 +B1115334532730N00602531EA0187601938000 +B1115364532712N00602504EA0186801930000 +B1115394532694N00602476EA0186201922000 +B1115424532676N00602447EA0185401914000 +B1115454532658N00602418EA0184901906000 +B1115484532640N00602391EA0184401898000 +B1115514532622N00602360EA0183801891000 +B1115544532604N00602330EA0183501884000 +B1115574532586N00602301EA0183201877000 +B1116004532569N00602272EA0182801870000 +B1116034532552N00602244EA0182401864000 +B1116064532535N00602216EA0182001858000 +B1116094532518N00602189EA0181601852000 +B1116124532501N00602162EA0181301846000 +B1116154532485N00602138EA0181401841000 +B1116184532472N00602118EA0181001836000 +B1116214532458N00602095EA0180301831000 +B1116244532443N00602070EA0180001826000 +B1116274532429N00602047EA0179701821000 +B1116304532417N00602026EA0179501817000 +B1116334532405N00602006EA0179101813000 +B1116364532393N00601983EA0178801809000 +B1116394532382N00601962EA0178301805000 +B1116424532369N00601940EA0178201801000 +B1116454532357N00601919EA0177701797000 +B1116484532344N00601899EA0177401793000 +B1116514532332N00601879EA0177001790000 +B1116554532315N00601854EA0176501785000 +B1116584532302N00601834EA0176101781000 +B1117014532289N00601813EA0175701777000 +B1117044532275N00601793EA0175401773000 +B1117074532262N00601774EA0174901769000 +B1117104532248N00601756EA0174701766000 +B1117134532234N00601738EA0174101762000 +B1117164532219N00601720EA0173701758000 +B1117194532204N00601704EA0173201754000 +B1117224532189N00601688EA0172901750000 +B1117254532173N00601672EA0172501746000 +B1117284532158N00601655EA0172301742000 +B1117314532144N00601639EA0172101739000 +B1117344532130N00601621EA0171701735000 +B1117374532116N00601602EA0171401731000 +B1117404532103N00601583EA0171201728000 +B1117434532089N00601564EA0171001725000 +B1117464532075N00601546EA0170601721000 +B1117494532060N00601529EA0170301718000 +B1117524532046N00601513EA0170101715000 +B1117554532031N00601498EA0169701712000 +B1117584532017N00601483EA0169301708000 +B1118014532001N00601469EA0169001705000 +B1118044531985N00601454EA0168701702000 +B1118074531970N00601439EA0168101698000 +B1118104531955N00601423EA0167801695000 +B1118144531936N00601401EA0167301690000 +B1118174531922N00601383EA0166901686000 +B1118204531907N00601366EA0166301683000 +B1118234531893N00601349EA0166001679000 +B1118264531878N00601334EA0165601675000 +B1118294531863N00601318EA0165201671000 +B1118324531849N00601302EA0164801667000 +B1118354531834N00601286EA0164501663000 +B1118384531820N00601269EA0164301660000 +B1118414531805N00601254EA0163801656000 +B1118444531791N00601237EA0163801653000 +B1118474531778N00601222EA0163601650000 +B1118504531765N00601207EA0163601647000 +B1118534531752N00601192EA0163501644000 +B1118564531739N00601177EA0163501642000 +B1118594531727N00601160EA0163401639000 +B1119024531715N00601143EA0163501637000 +B1119054531705N00601125EA0163501636000 +B1119084531694N00601106EA0163501634000 +B1119114531683N00601088EA0163601633000 +B1119144531672N00601069EA0163601631000 +B1119174531660N00601051EA0163701630000 +B1119204531649N00601033EA0163201629000 +B1119234531637N00601013EA0163201628000 +B1119274531620N00600988EA0163101626000 +B1119304531606N00600969EA0163201625000 +B1119334531593N00600952EA0163101624000 +B1119364531577N00600936EA0163101623000 +B1119394531562N00600919EA0163201622000 +B1119424531545N00600904EA0163301621000 +B1119454531533N00600887EA0163201620000 +B1119484531520N00600869EA0163201620000 +B1119514531508N00600851EA0162901619000 +B1119544531496N00600831EA0162701618000 +B1119574531484N00600809EA0162901617000 +B1120004531473N00600791EA0162601617000 +B1120034531462N00600771EA0162101616000 +B1120064531450N00600755EA0162101615000 +B1120094531439N00600742EA0161901614000 +B1120124531428N00600728EA0161601613000 +B1120154531415N00600715EA0161301612000 +B1120184531402N00600701EA0161101611000 +B1120214531391N00600686EA0160901609000 +B1120244531380N00600671EA0160401608000 +B1120274531367N00600655EA0160401606000 +B1120304531354N00600639EA0160001605000 +B1120334531340N00600623EA0159801603000 +B1120364531326N00600610EA0159601601000 +B1120394531312N00600596EA0159101599000 +B1120424531297N00600582EA0158701596000 +B1120464531278N00600562EA0158101593000 +B1120494531263N00600548EA0157601590000 +B1120524531247N00600534EA0157301587000 +B1120554531233N00600521EA0157201584000 +B1120584531220N00600504EA0156601581000 +B1121014531207N00600485EA0156401577000 +B1121044531194N00600467EA0156201574000 +B1121074531179N00600448EA0155701571000 +B1121104531165N00600430EA0155601568000 +B1121134531151N00600412EA0155001565000 +B1121164531136N00600392EA0155001562000 +B1121194531121N00600375EA0154801558000 +B1121224531106N00600357EA0154301555000 +B1121254531090N00600339EA0154201552000 +B1121284531073N00600323EA0154001549000 +B1121314531058N00600304EA0153901546000 +B1121344531043N00600286EA0153601543000 +B1121374531028N00600268EA0153801541000 +B1121404531014N00600253EA0153501538000 +B1121434530998N00600237EA0153501536000 +B1121464530983N00600224EA0153001534000 +B1121494530967N00600212EA0152901531000 +B1121524530952N00600201EA0152501529000 +B1121554530937N00600189EA0152301526000 +B1121584530922N00600177EA0152101524000 +B1122014530908N00600165EA0151601522000 +B1122054530890N00600147EA0151301518000 +B1122084530877N00600132EA0150801515000 +B1122114530864N00600116EA0150601513000 +B1122144530851N00600102EA0150101510000 +B1122174530836N00600087EA0149801507000 +B1122204530821N00600075EA0149401504000 +B1122234530806N00600063EA0149201501000 +B1122264530791N00600052EA0148901498000 +B1122294530776N00600041EA0148501495000 +B1122324530760N00600029EA0148301492000 +B1122354530745N00600018EA0147901489000 +B1122384530730N00600005EA0147601486000 +B1122414530716N00559990EA0147301483000 +B1122444530701N00559976EA0147001480000 +B1122474530687N00559963EA0146701477000 +B1122504530672N00559952EA0146401473000 +B1122534530657N00559939EA0146101470000 +B1122564530643N00559927EA0145801467000 +B1122594530628N00559916EA0145401464000 +B1123024530613N00559905EA0145101461000 +B1123054530598N00559893EA0144801458000 +B1123084530583N00559882EA0144501455000 +B1123114530568N00559871EA0144201452000 +B1123144530553N00559860EA0143901449000 +B1123174530538N00559849EA0143601446000 +B1123204530524N00559838EA0143401443000 +B1123244530504N00559823EA0143001439000 +B1123274530490N00559813EA0142701435000 +B1123304530475N00559801EA0142301432000 +B1123334530461N00559790EA0142101429000 +B1123364530447N00559779EA0141701426000 +B1123394530432N00559768EA0141401423000 +B1123424530419N00559757EA0141001420000 +B1123454530405N00559745EA0140701417000 +B1123484530392N00559734EA0140301413000 +B1123514530378N00559722EA0140001410000 +B1123544530365N00559711EA0139701407000 +B1123574530351N00559700EA0139301404000 +B1124004530337N00559688EA0139001400000 +B1124034530324N00559677EA0138701397000 +B1124064530310N00559667EA0138401394000 +B1124094530296N00559657EA0138201391000 +B1124124530282N00559647EA0137701388000 +B1124154530268N00559637EA0137501384000 +B1124184530253N00559628EA0137101381000 +B1124214530238N00559618EA0136801378000 +B1124244530223N00559608EA0136601375000 +B1124274530208N00559599EA0136201372000 +B1124304530193N00559589EA0136001369000 +B1124334530179N00559579EA0135501366000 +B1124364530164N00559568EA0135301362000 +B1124394530150N00559558EA0135001359000 +B1124434530132N00559544EA0134601355000 +B1124464530118N00559533EA0134301352000 +B1124494530105N00559523EA0133901349000 +B1124524530090N00559512EA0133801345000 +B1124554530076N00559502EA0133401342000 +B1124584530062N00559493EA0133101339000 +B1125014530046N00559485EA0132701336000 +B1125044530031N00559476EA0132501333000 +B1125074530016N00559468EA0132201329000 +B1125104530000N00559461EA0131801326000 +B1125134529984N00559454EA0131501323000 +B1125164529968N00559447EA0131001320000 +B1125194529952N00559440EA0130701317000 +B1125224529937N00559432EA0130401314000 +B1125254529921N00559424EA0130101310000 +B1125284529906N00559416EA0129701307000 +B1125314529890N00559409EA0129401304000 +B1125344529875N00559401EA0129101301000 +B1125374529860N00559394EA0128701298000 +B1125404529844N00559386EA0128401294000 +B1125434529829N00559377EA0128201291000 +B1125464529815N00559368EA0127701288000 +B1125494529800N00559359EA0127501285000 +B1125524529785N00559350EA0127201282000 +B1125554529771N00559341EA0126801279000 +B1125584529757N00559331EA0126601275000 +B1126024529741N00559317EA0125901271000 +B1126054529728N00559304EA0125601268000 +B1126084529717N00559294EA0125201264000 +B1126114529703N00559281EA0124901261000 +B1126144529690N00559269EA0124901257000 +B1126174529677N00559259EA0124601255000 +B1126204529664N00559248EA0124301252000 +B1126234529650N00559238EA0124101249000 +B1126264529636N00559230EA0123701246000 +B1126294529621N00559221EA0123401243000 +B1126324529607N00559212EA0122801241000 +B1126364529587N00559197EA0122601237000 +B1126394529573N00559188EA0122101234000 +B1126424529558N00559177EA0121801231000 +B1126454529544N00559167EA0121401227000 +B1126484529529N00559156EA0121101224000 +B1126514529515N00559145EA0120801221000 +B1126544529500N00559136EA0120501218000 +B1126574529485N00559128EA0120101214000 +B1127004529469N00559120EA0119901211000 +B1127034529452N00559113EA0119601208000 +B1127064529436N00559105EA0119701205000 +B1127094529420N00559097EA0119301202000 +B1127124529404N00559088EA0119101199000 +B1127154529388N00559080EA0118901196000 +B1127184529372N00559070EA0118601194000 +B1127214529356N00559062EA0118601191000 +B1127244529341N00559053EA0118301189000 +B1127274529325N00559043EA0118201186000 +B1127304529310N00559035EA0117801184000 +B1127334529294N00559025EA0117801181000 +B1127364529279N00559016EA0117401179000 +B1127394529263N00559007EA0117301177000 +B1127424529248N00558997EA0117201175000 +B1127454529234N00558987EA0116901172000 +B1127484529219N00558976EA0116701170000 +B1127524529201N00558962EA0116401167000 +B1127554529187N00558950EA0116401165000 +B1127584529174N00558939EA0116301163000 +B1128014529161N00558928EA0116001161000 +B1128044529147N00558916EA0115801158000 +B1128074529135N00558906EA0115901156000 +B1128104529123N00558894EA0115501154000 +B1128134529111N00558882EA0115501152000 +B1128164529099N00558872EA0115101151000 +B1128194529086N00558861EA0115001149000 +B1128224529073N00558851EA0114801148000 +B1128254529061N00558840EA0114501146000 +B1128284529049N00558830EA0114101144000 +B1128314529036N00558820EA0113601142000 +B1128344529022N00558811EA0113201140000 +B1128374529008N00558803EA0112901137000 +B1128404528993N00558796EA0112501134000 +B1128434528978N00558790EA0112001131000 +B1128464528963N00558785EA0111701129000 +B1128494528947N00558780EA0111201126000 +B1128524528930N00558776EA0110901122000 +B1128554528914N00558771EA0110401119000 +B1128584528898N00558764EA0110201116000 +B1129014528882N00558758EA0109701112000 +B1129044528866N00558751EA0109401109000 +B1129084528844N00558744EA0109001104000 +B1129114528828N00558738EA0108601101000 +B1129144528811N00558733EA0108201097000 +B1129174528794N00558727EA0108001094000 +B1129204528777N00558721EA0107701090000 +B1129234528760N00558714EA0107301087000 +B1129264528743N00558708EA0107001083000 +B1129294528726N00558701EA0106601080000 +B1129324528709N00558694EA0106301076000 +B1129354528693N00558688EA0106001073000 +B1129384528676N00558682EA0105801069000 +B1129414528659N00558676EA0105601066000 +B1129444528642N00558669EA0105501063000 +B1129474528625N00558662EA0105101060000 +B1129504528607N00558655EA0104901057000 +B1129534528589N00558648EA0104701054000 +B1129564528573N00558641EA0104801052000 +B1129594528558N00558633EA0104401049000 +B1130024528546N00558620EA0104301047000 +B1130054528533N00558609EA0104001045000 +B1130084528520N00558598EA0104001042000 +B1130114528505N00558590EA0104101041000 +B1130144528491N00558583EA0104001039000 +B1130174528477N00558575EA0104101037000 +B1130204528464N00558567EA0103901036000 +B1130244528447N00558554EA0104001034000 +B1130274528434N00558545EA0103901033000 +B1130304528420N00558535EA0104001032000 +B1130334528407N00558525EA0104001031000 +B1130364528392N00558515EA0104001030000 +B1130394528379N00558505EA0103701029000 +B1130424528364N00558496EA0103201028000 +B1130454528350N00558486EA0102701027000 +B1130484528334N00558477EA0102401025000 +B1130514528318N00558468EA0101901023000 +B1130544528301N00558461EA0101501021000 +B1130574528284N00558453EA0101201018000 +B1131004528266N00558446EA0100901016000 +B1131034528249N00558440EA0100501013000 +B1131064528230N00558434EA0100101010000 +B1131094528212N00558427EA0099601007000 +B1131124528194N00558418EA0099301004000 +B1131154528176N00558408EA0099101001000 +B1131184528160N00558395EA0099000998000 +B1131214528145N00558382EA0098800995000 +B1131244528128N00558371EA0098200992000 +B1131274528111N00558358EA0097800989000 +B1131304528092N00558346EA0097600985000 +B1131334528073N00558333EA0097900983000 +B1131364528058N00558318EA0098400980000 +B1131394528048N00558300EA0099000979000 +B1131424528040N00558282EA0099200978000 +B1131464528042N00558260EA0099500977000 +B1131494528049N00558253EA0099500977000 +B1131524528060N00558257EA0099700978000 +B1131554528067N00558270EA0099800978000 +B1131584528069N00558291EA0099500978000 +B1132014528064N00558315EA0099600978000 +B1132044528052N00558336EA0099800978000 +B1132074528038N00558351EA0100700979000 +B1132104528025N00558362EA0101100980000 +B1132134528009N00558366EA0101400981000 +B1132164527995N00558356EA0102100983000 +B1132194527990N00558339EA0102700985000 +B1132224527995N00558329EA0103200986000 +B1132254528004N00558331EA0103500988000 +B1132284528013N00558347EA0103700991000 +B1132314528014N00558371EA0103800994000 +B1132344528000N00558386EA0103700997000 +B1132374527986N00558375EA0104200999000 +B1132404527979N00558356EA0104801002000 +B1132434527974N00558336EA0105401005000 +B1132464527978N00558318EA0106101008000 +B1132494527986N00558309EA0106501012000 +B1132524527998N00558315EA0106501016000 +B1132554528001N00558335EA0106501020000 +B1132584527992N00558353EA0106301023000 +B1133014527976N00558350EA0106501025000 +B1133044527965N00558338EA0106501028000 +B1133074527956N00558323EA0106201030000 +B1133104527946N00558302EA0107101032000 +B1133134527939N00558284EA0107901034000 +B1133164527938N00558265EA0108401037000 +B1133204527950N00558257EA0109001042000 +B1133234527954N00558272EA0109101045000 +B1133264527946N00558293EA0108701048000 +B1133294527929N00558303EA0109201051000 +B1133324527911N00558297EA0109501054000 +B1133354527897N00558287EA0110701057000 +B1133384527891N00558270EA0110701060000 +B1133414527893N00558250EA0111801064000 +B1133444527903N00558243EA0112201068000 +B1133474527915N00558252EA0112301072000 +B1133504527913N00558273EA0112101076000 +B1133534527898N00558281EA0112301079000 +B1133564527880N00558276EA0113501083000 +B1133594527867N00558266EA0114401087000 +B1134024527858N00558247EA0114801091000 +B1134054527860N00558227EA0115701096000 +B1134084527870N00558221EA0116401100000 +B1134114527877N00558234EA0116501105000 +B1134144527869N00558254EA0117201110000 +B1134174527853N00558258EA0118401115000 +B1134204527837N00558251EA0119101120000 +B1134234527825N00558234EA0119401125000 +B1134264527825N00558214EA0119801131000 +B1134294527836N00558209EA0120601136000 +B1134324527842N00558224EA0121801142000 +B1134354527835N00558240EA0122801149000 +B1134384527820N00558250EA0123601155000 +B1134414527803N00558244EA0123801162000 +B1134444527791N00558224EA0124401168000 +B1134474527787N00558205EA0124801175000 +B1134504527789N00558185EA0125501181000 +B1134534527796N00558173EA0126401187000 +B1134564527807N00558172EA0127301194000 +B1134594527813N00558187EA0128001201000 +B1135034527800N00558207EA0128801210000 +B1135064527786N00558205EA0129401217000 +B1135094527776N00558188EA0130101223000 +B1135124527776N00558168EA0131001230000 +B1135154527784N00558158EA0131801237000 +B1135184527795N00558164EA0132801244000 +B1135214527799N00558182EA0133401252000 +B1135244527790N00558197EA0133901259000 +B1135274527777N00558200EA0134101266000 +B1135304527763N00558190EA0134701272000 +B1135334527756N00558171EA0135501279000 +B1135364527756N00558152EA0136301285000 +B1135394527762N00558139EA0136701292000 +B1135424527772N00558136EA0137401298000 +B1135454527782N00558134EA0138101304000 +B1135484527793N00558143EA0138801311000 +B1135514527793N00558164EA0139201317000 +B1135544527781N00558180EA0139801324000 +B1135574527765N00558181EA0140501330000 +B1136004527755N00558169EA0141001336000 +B1136034527752N00558157EA0140901342000 +B1136064527760N00558139EA0141401348000 +B1136094527772N00558132EA0142201353000 +B1136124527783N00558138EA0142601359000 +B1136154527789N00558157EA0143001364000 +B1136184527784N00558177EA0143401369000 +B1136214527769N00558186EA0143701374000 +B1136244527755N00558180EA0144101379000 +B1136274527750N00558165EA0144301384000 +B1136314527753N00558142EA0145001391000 +B1136344527762N00558136EA0145201396000 +B1136374527773N00558145EA0145601401000 +B1136404527775N00558165EA0146101406000 +B1136434527770N00558185EA0146301411000 +B1136464527755N00558202EA0146801415000 +B1136494527738N00558208EA0147101420000 +B1136524527720N00558205EA0147201424000 +B1136554527702N00558200EA0147601429000 +B1136584527686N00558195EA0147701433000 +B1137014527671N00558187EA0147401436000 +B1137044527654N00558177EA0147301439000 +B1137074527635N00558166EA0147601441000 +B1137104527614N00558159EA0148001444000 +B1137134527594N00558153EA0148401446000 +B1137164527577N00558152EA0147501449000 +B1137194527556N00558148EA0146901450000 +B1137224527536N00558142EA0146901451000 +B1137254527519N00558138EA0146201451000 +B1137284527500N00558135EA0145701451000 +B1137314527481N00558132EA0145201450000 +B1137344527463N00558129EA0144601449000 +B1137374527444N00558127EA0144301447000 +B1137404527426N00558128EA0143601445000 +B1137434527407N00558126EA0143101442000 +B1137464527389N00558125EA0142401439000 +B1137494527370N00558121EA0142101436000 +B1137534527344N00558111EA0141801431000 +B1137564527323N00558102EA0141601428000 +B1137594527302N00558091EA0141401425000 +B1138024527281N00558077EA0140901422000 +B1138054527259N00558068EA0140901418000 +B1138084527237N00558059EA0140601415000 +B1138114527216N00558053EA0140401412000 +B1138144527195N00558051EA0140201409000 +B1138174527174N00558050EA0139401406000 +B1138204527152N00558048EA0138901402000 +B1138234527130N00558043EA0138701400000 +B1138264527110N00558037EA0137901396000 +B1138294527089N00558030EA0136701393000 +B1138324527066N00558023EA0136301388000 +B1138354527044N00558020EA0135701384000 +B1138384527022N00558018EA0135201379000 +B1138414527000N00558013EA0135001374000 +B1138444526979N00558010EA0134301369000 +B1138474526958N00558008EA0134101364000 +B1138504526939N00558004EA0133401360000 +B1138534526918N00558000EA0133401355000 +B1138564526899N00557997EA0133101351000 +B1138594526880N00557994EA0132201347000 +B1139024526861N00557992EA0131701342000 +B1139054526843N00557989EA0131401338000 +B1139084526825N00557981EA0131601334000 +B1139124526804N00557973EA0131401329000 +B1139154526785N00557966EA0131501326000 +B1139184526766N00557962EA0131501323000 +B1139214526749N00557958EA0131601321000 +B1139244526732N00557953EA0131301318000 +B1139274526715N00557947EA0131401316000 +B1139304526699N00557941EA0131101313000 +B1139334526681N00557937EA0131201312000 +B1139364526665N00557934EA0130901310000 +B1139394526646N00557932EA0130801308000 +B1139424526629N00557929EA0130501306000 +B1139454526608N00557924EA0130501304000 +B1139484526588N00557922EA0130301302000 +B1139514526568N00557919EA0129501300000 +B1139544526547N00557915EA0129101298000 +B1139574526526N00557909EA0128401296000 +B1140004526502N00557900EA0128601293000 +B1140034526483N00557888EA0129101291000 +B1140064526465N00557875EA0129101289000 +B1140094526449N00557862EA0129101288000 +B1140124526432N00557852EA0129201287000 +B1140154526415N00557844EA0128801286000 +B1140184526400N00557841EA0127801284000 +B1140214526382N00557837EA0127201282000 +B1140244526363N00557832EA0125901279000 +B1140274526340N00557824EA0125501275000 +B1140304526320N00557816EA0124301272000 +B1140334526300N00557810EA0124201267000 +B1140374526277N00557800EA0124701261000 +B1140404526264N00557796EA0124801258000 +B1140434526250N00557795EA0124901255000 +B1140464526233N00557788EA0125001252000 +B1140494526219N00557780EA0125101250000 +B1140524526204N00557774EA0125201248000 +B1140554526187N00557768EA0126001247000 +B1140584526172N00557763EA0126401247000 +B1141014526155N00557757EA0127201247000 +B1141044526141N00557749EA0127801248000 +B1141074526128N00557750EA0127901249000 +B1141104526119N00557766EA0128501251000 +B1141134526125N00557782EA0128901253000 +B1141164526140N00557785EA0129201255000 +B1141194526153N00557772EA0129501257000 +B1141224526155N00557751EA0130001260000 +B1141254526146N00557735EA0130401263000 +B1141284526133N00557727EA0130901266000 +B1141314526120N00557723EA0131501269000 +B1141344526105N00557718EA0131701273000 +B1141374526089N00557724EA0131701276000 +B1141404526082N00557741EA0131801279000 +B1141434526089N00557755EA0131801282000 +B1141464526102N00557756EA0131901285000 +B1141494526110N00557735EA0132501287000 +B1141524526107N00557713EA0133201290000 +B1141554526094N00557696EA0133401293000 +B1141584526077N00557696EA0133801296000 +B1142014526065N00557707EA0133501299000 +B1142054526067N00557731EA0133401302000 +B1142084526079N00557731EA0133101304000 +B1142114526088N00557713EA0132701305000 +B1142144526082N00557687EA0132501305000 +B1142174526070N00557669EA0132701306000 +B1142204526053N00557664EA0132201307000 +B1142234526036N00557665EA0132001306000 +B1142264526019N00557670EA0131701306000 +B1142294526004N00557677EA0131001305000 +B1142324525984N00557684EA0130501304000 +B1142354525965N00557689EA0130401302000 +B1142384525947N00557691EA0129901300000 +B1142414525929N00557687EA0129801299000 +B1142444525913N00557683EA0129301297000 +B1142474525896N00557677EA0129301294000 +B1142504525881N00557671EA0128801292000 +B1142534525863N00557666EA0128401290000 +B1142564525844N00557660EA0128601287000 +B1142594525826N00557657EA0128301285000 +B1143024525808N00557650EA0128501283000 +B1143054525790N00557644EA0127801281000 +B1143084525768N00557637EA0128101279000 +B1143114525748N00557630EA0128201278000 +B1143144525731N00557625EA0127701276000 +B1143174525710N00557617EA0127901275000 +B1143204525691N00557612EA0128001273000 +B1143234525670N00557607EA0127801272000 +B1143274525643N00557601EA0128301271000 +B1143304525626N00557594EA0128001270000 +B1143334525609N00557589EA0127801269000 +B1143364525592N00557585EA0127701268000 +B1143394525576N00557578EA0127601267000 +B1143424525559N00557573EA0127701266000 +B1143454525542N00557572EA0127301265000 +B1143484525523N00557574EA0126201263000 +B1143514525501N00557576EA0125801261000 +B1143544525483N00557576EA0125001258000 +B1143574525462N00557575EA0124801255000 +B1144004525444N00557572EA0124401252000 +B1144034525426N00557568EA0123601249000 +B1144064525405N00557562EA0123801246000 +B1144094525386N00557555EA0124001243000 +B1144124525366N00557551EA0124301240000 +B1144154525345N00557549EA0124501238000 +B1144184525324N00557547EA0124601237000 +B1144214525301N00557544EA0124701236000 +B1144244525280N00557540EA0124501235000 +B1144274525259N00557537EA0123801234000 +B1144304525238N00557529EA0123601233000 +B1144334525219N00557523EA0122701231000 +B1144364525199N00557514EA0122001229000 +B1144394525177N00557508EA0121401227000 +B1144424525156N00557506EA0120801222000 +B1144464525130N00557503EA0120001219000 +B1144494525111N00557498EA0119401215000 +B1144524525092N00557496EA0118701211000 +B1144554525071N00557495EA0118801207000 +B1144584525052N00557494EA0118601203000 +B1145014525035N00557487EA0118801200000 +B1145044525023N00557481EA0118701197000 +B1145074525006N00557472EA0118101194000 +B1145104524986N00557466EA0118601191000 +B1145134524971N00557458EA0118601189000 +B1145164524956N00557454EA0118401187000 +B1145194524941N00557452EA0117601185000 +B1145224524924N00557448EA0117601183000 +B1145254524908N00557442EA0117101180000 +B1145284524889N00557434EA0116801178000 +B1145314524869N00557426EA0116701176000 +B1145344524851N00557422EA0116401173000 +B1145374524832N00557412EA0116901171000 +B1145404524816N00557397EA0117201169000 +B1145434524803N00557383EA0117601168000 +B1145464524793N00557368EA0117801167000 +B1145494524782N00557353EA0117901166000 +B1145524524768N00557340EA0117901166000 +B1145554524752N00557333EA0117701166000 +B1145584524735N00557328EA0117401165000 +B1146014524720N00557320EA0117301165000 +B1146044524706N00557311EA0117201164000 +B1146074524693N00557305EA0116801163000 +B1146114524674N00557298EA0116801162000 +B1146144524660N00557295EA0116801161000 +B1146174524647N00557290EA0116701160000 +B1146204524635N00557285EA0116601159000 +B1146234524622N00557280EA0116601158000 +B1146264524610N00557274EA0116401157000 +B1146294524598N00557266EA0116201156000 +B1146324524587N00557261EA0116101155000 +B1146354524576N00557260EA0115801154000 +B1146384524564N00557259EA0115501153000 +B1146414524548N00557258EA0115301151000 +B1146444524531N00557255EA0115201149000 +B1146474524513N00557251EA0115401148000 +B1146504524495N00557246EA0115301147000 +B1146534524477N00557240EA0115301146000 +B1146564524458N00557235EA0114901145000 +B1146594524440N00557231EA0114301143000 +B1147024524422N00557230EA0113701141000 +B1147054524400N00557227EA0113201139000 +B1147084524378N00557222EA0112901136000 +B1147114524357N00557218EA0112401133000 +B1147144524335N00557212EA0112501130000 +B1147174524315N00557206EA0112001128000 +B1147204524293N00557203EA0111601125000 +B1147234524270N00557198EA0111101122000 +B1147264524248N00557190EA0111001119000 +B1147304524222N00557174EA0111501115000 +B1147334524207N00557162EA0112501114000 +B1147364524194N00557153EA0113101113000 +B1147394524182N00557158EA0113901113000 +B1147424524182N00557171EA0114501115000 +B1147454524195N00557171EA0115301116000 +B1147484524205N00557151EA0115701119000 +B1147514524198N00557127EA0116301122000 +B1147544524182N00557114EA0117501125000 +B1147574524169N00557112EA0117901129000 +B1148004524162N00557123EA0118801133000 +B1148034524168N00557130EA0119601136000 +B1148064524179N00557121EA0120801142000 +B1148094524183N00557097EA0121701148000 +B1148124524175N00557075EA0122401155000 +B1148154524162N00557068EA0123001161000 +B1148184524154N00557080EA0123301167000 +B1148214524162N00557091EA0124501173000 +B1148244524172N00557088EA0125601180000 +B1148274524180N00557071EA0126001187000 +B1148304524181N00557044EA0127301194000 +B1148334524175N00557023EA0127701201000 +B1148364524162N00557013EA0128401208000 +B1148394524152N00557016EA0128801214000 +B1148424524152N00557030EA0129501220000 +B1148454524163N00557039EA0130501227000 +B1148484524176N00557031EA0131401234000 +B1148514524185N00557012EA0132201241000 +B1148544524183N00556989EA0133001248000 +B1148574524175N00556972EA0133601255000 +B1149014524159N00556968EA0134201265000 +B1149044524156N00556979EA0134801270000 +B1149074524166N00556988EA0135201277000 +B1149104524181N00556981EA0135901284000 +B1149134524190N00556962EA0136601291000 +B1149164524191N00556940EA0137101297000 +B1149194524182N00556923EA0137301302000 +B1149224524168N00556923EA0138201308000 +B1149254524159N00556932EA0138801315000 +B1149284524160N00556946EA0139201321000 +B1149314524173N00556950EA0139901327000 +B1149344524185N00556937EA0140201333000 +B1149374524188N00556915EA0140501339000 +B1149404524178N00556899EA0140601345000 +B1149434524164N00556892EA0140901350000 +B1149464524149N00556890EA0140801355000 +B1149494524130N00556883EA0141201359000 +B1149524524114N00556873EA0141601364000 +B1149554524099N00556865EA0141301368000 +B1149584524083N00556854EA0141201371000 +B1150014524065N00556847EA0140901374000 +B1150044524045N00556841EA0140701376000 +B1150074524025N00556835EA0140801378000 +B1150104524007N00556831EA0140701380000 +B1150134523990N00556827EA0140501382000 +B1150164523972N00556823EA0140501383000 +B1150194523953N00556816EA0140101384000 +B1150234523926N00556800EA0139901385000 +B1150264523908N00556785EA0139801385000 +B1150294523889N00556773EA0139301385000 +B1150324523869N00556759EA0138801384000 +B1150354523850N00556746EA0138401383000 +B1150384523831N00556734EA0137701381000 +B1150414523810N00556722EA0137701379000 +B1150444523791N00556714EA0137401377000 +B1150474523771N00556707EA0136601375000 +B1150504523751N00556701EA0135801372000 +B1150534523731N00556695EA0135301369000 +B1150564523710N00556693EA0134701366000 +B1150594523689N00556693EA0134601364000 +B1151024523668N00556691EA0134301361000 +B1151054523646N00556686EA0134201358000 +B1151084523627N00556678EA0133501355000 +B1151114523607N00556666EA0133301351000 +B1151144523588N00556657EA0132801348000 +B1151174523567N00556646EA0132301344000 +B1151204523545N00556636EA0131701339000 +B1151234523524N00556628EA0131501335000 +B1151264523502N00556620EA0131201331000 +B1151294523481N00556611EA0130701327000 +B1151324523460N00556605EA0130201323000 +B1151354523438N00556600EA0129501318000 +B1151394523408N00556594EA0128801312000 +B1151424523386N00556590EA0128201307000 +B1151454523363N00556584EA0127701302000 +B1151484523341N00556577EA0127201297000 +B1151514523319N00556571EA0126801293000 +B1151544523297N00556564EA0126201288000 +B1151574523276N00556556EA0125801283000 +B1152004523256N00556547EA0125401278000 +B1152034523238N00556537EA0124801274000 +B1152064523220N00556525EA0124501270000 +B1152094523203N00556514EA0124301265000 +B1152124523187N00556505EA0123201261000 +B1152154523167N00556495EA0122401257000 +B1152184523148N00556485EA0122101252000 +B1152214523130N00556474EA0121701247000 +B1152244523113N00556466EA0121501242000 +B1152274523099N00556458EA0120401237000 +B1152304523079N00556447EA0120301232000 +B1152334523061N00556437EA0120701227000 +B1152364523047N00556427EA0120201223000 +B1152394523030N00556413EA0120501219000 +B1152424523015N00556398EA0120801215000 +B1152454523000N00556383EA0120901213000 +B1152484522985N00556367EA0121201211000 +B1152514522971N00556351EA0121501209000 +B1152544522956N00556335EA0122101208000 +B1152574522944N00556319EA0122101208000 +B1153014522926N00556295EA0122201208000 +B1153044522914N00556278EA0122601208000 +B1153074522904N00556262EA0122601208000 +B1153104522891N00556246EA0122601209000 +B1153134522878N00556233EA0122501209000 +B1153164522864N00556224EA0122201209000 +B1153194522847N00556215EA0122301209000 +B1153224522830N00556204EA0122701209000 +B1153254522813N00556194EA0123101210000 +B1153284522800N00556186EA0123201211000 +B1153314522787N00556175EA0122701212000 +B1153344522773N00556163EA0122601212000 +B1153374522757N00556154EA0121601212000 +B1153404522733N00556143EA0121201211000 +B1153434522707N00556133EA0121001209000 +B1153464522682N00556124EA0120801208000 +B1153494522658N00556113EA0121001206000 +B1153524522636N00556105EA0120701205000 +B1153554522614N00556096EA0120401203000 +B1153584522592N00556088EA0119701201000 +B1154014522571N00556080EA0119201199000 +B1154044522549N00556075EA0118501196000 +B1154074522527N00556068EA0117901193000 +B1154104522505N00556061EA0117501189000 +B1154134522484N00556055EA0116901185000 +B1154174522456N00556048EA0116301180000 +B1154204522436N00556040EA0115901176000 +B1154234522415N00556032EA0115501172000 +B1154264522394N00556025EA0115101168000 +B1154294522373N00556019EA0114601163000 +B1154324522352N00556012EA0114301159000 +B1154354522331N00556005EA0113801155000 +B1154384522309N00555995EA0113401151000 +B1154414522288N00555987EA0113101146000 +B1154444522267N00555979EA0112301142000 +B1154474522244N00555972EA0111901137000 +B1154504522223N00555966EA0111201133000 +B1154534522202N00555959EA0110801128000 +B1154564522181N00555951EA0110501123000 +B1154594522162N00555940EA0109901119000 +B1155024522143N00555930EA0109101114000 +B1155054522125N00555920EA0108801108000 +B1155084522106N00555912EA0108401103000 +B1155114522086N00555904EA0108101098000 +B1155144522065N00555897EA0107801094000 +B1155174522045N00555890EA0107801089000 +B1155204522026N00555884EA0107301085000 +B1155234522007N00555875EA0108201082000 +B1155264521992N00555866EA0109001079000 +B1155294521977N00555857EA0110301078000 +B1155324521966N00555845EA0111301079000 +B1155364521950N00555833EA0112001081000 +B1155394521936N00555824EA0112801083000 +B1155424521923N00555811EA0113101086000 +B1155454521910N00555796EA0113401089000 +B1155484521897N00555783EA0114001092000 +B1155514521885N00555767EA0114401095000 +B1155544521872N00555753EA0115301099000 +B1155574521860N00555740EA0115501103000 +B1156004521846N00555724EA0115901107000 +B1156034521833N00555710EA0116301111000 +B1156064521820N00555698EA0115901114000 +B1156094521803N00555684EA0115301117000 +B1156124521786N00555668EA0115101119000 +B1156154521770N00555651EA0115201120000 +B1156184521755N00555636EA0114901122000 +B1156214521740N00555620EA0115001122000 +B1156244521725N00555605EA0115201123000 +B1156274521710N00555588EA0115601124000 +B1156304521697N00555574EA0116101126000 +B1156334521683N00555562EA0116001127000 +B1156364521667N00555550EA0116301129000 +B1156394521651N00555537EA0116801131000 +B1156424521638N00555526EA0116701132000 +B1156454521622N00555515EA0116201134000 +B1156484521607N00555506EA0116801135000 +B1156514521596N00555501EA0116201137000 +B1156544521579N00555495EA0116001137000 +B1156574521561N00555489EA0115701138000 +B1157004521543N00555479EA0115101138000 +B1157044521518N00555463EA0115001138000 +B1157074521501N00555452EA0116101138000 +B1157104521486N00555439EA0116901139000 +B1157134521470N00555428EA0117601141000 +B1157164521454N00555419EA0118801143000 +B1157194521442N00555414EA0118701146000 +B1157224521426N00555408EA0118401148000 +B1157254521410N00555402EA0118901150000 +B1157284521395N00555396EA0118601153000 +B1157314521378N00555387EA0118801155000 +B1157344521364N00555377EA0118801157000 +B1157374521347N00555367EA0118901159000 +B1157404521332N00555356EA0119101161000 +B1157434521318N00555346EA0118501162000 +B1157464521303N00555333EA0118601164000 +B1157494521289N00555323EA0118301164000 +B1157524521273N00555318EA0117901165000 +B1157554521256N00555317EA0117501165000 +B1157584521238N00555317EA0116901164000 +B1158014521219N00555315EA0116101163000 +B1158044521201N00555311EA0115101161000 +B1158074521182N00555307EA0114901158000 +B1158104521167N00555305EA0114001155000 +B1158134521149N00555301EA0114101152000 +B1158164521136N00555299EA0113801149000 +B1158194521121N00555295EA0114001146000 +B1158224521108N00555289EA0114101144000 +B1158254521093N00555289EA0115001142000 +B1158284521079N00555286EA0115401141000 +B1158324521056N00555281EA0115801140000 +B1158354521041N00555278EA0116201140000 +B1158384521026N00555275EA0116301140000 +B1158414521014N00555269EA0116201141000 +B1158444520999N00555264EA0116201141000 +B1158474520984N00555261EA0116601142000 +B1158504520971N00555256EA0116701142000 +B1158534520956N00555251EA0117001143000 +B1158564520941N00555248EA0117101144000 +B1158594520928N00555243EA0117201145000 +B1159024520913N00555239EA0117801146000 +B1159054520900N00555236EA0118701147000 +B1159084520885N00555231EA0119301150000 +B1159114520871N00555229EA0119801152000 +B1159144520857N00555226EA0120101155000 +B1159174520843N00555223EA0120101158000 +B1159204520827N00555221EA0120201161000 +B1159234520813N00555218EA0119801164000 +B1159264520799N00555217EA0119601167000 +B1159294520786N00555217EA0119201168000 +B1159324520772N00555212EA0119601170000 +B1159354520760N00555208EA0119701172000 +B1159384520747N00555205EA0119701173000 +B1159414520734N00555204EA0119801175000 +B1159444520721N00555202EA0119601176000 +B1159474520708N00555202EA0119201177000 +B1159504520693N00555200EA0118401178000 +B1159544520668N00555188EA0118701177000 +B1159574520652N00555179EA0118301176000 +B1200004520634N00555170EA0117801175000 +B1200034520616N00555162EA0117001174000 +B1200064520596N00555157EA0116101171000 +B1200094520576N00555151EA0115301168000 +B1200124520555N00555143EA0114701164000 +B1200154520538N00555132EA0114701161000 +B1200184520522N00555121EA0115101157000 +B1200214520508N00555116EA0115501155000 +B1200244520492N00555109EA0115201153000 +B1200274520476N00555097EA0114901151000 +B1200304520460N00555087EA0115001149000 +B1200334520444N00555080EA0114801147000 +B1200364520427N00555075EA0114401146000 +B1200394520407N00555070EA0114901144000 +B1200424520391N00555063EA0115501143000 +B1200454520376N00555057EA0116101143000 +B1200484520363N00555046EA0116901143000 +B1200514520351N00555032EA0117201144000 +B1200544520338N00555016EA0117701145000 +B1200574520325N00555009EA0117501147000 +B1201004520312N00555007EA0117501148000 +B1201034520297N00554996EA0117601149000 +B1201064520283N00554978EA0118301151000 +B1201094520271N00554964EA0118201153000 +B1201124520258N00554948EA0118101155000 +B1201164520241N00554932EA0118001157000 +B1201194520228N00554922EA0118001159000 +B1201224520217N00554912EA0116801159000 +B1201254520204N00554905EA0116401159000 +B1201284520192N00554895EA0115101159000 +B1201314520176N00554889EA0114001157000 +B1201344520157N00554886EA0112701154000 +B1201374520138N00554884EA0112201150000 +B1201404520122N00554877EA0111101146000 +B1201434520100N00554874EA0110301141000 +B1201464520080N00554874EA0109701136000 +B1201494520058N00554877EA0108701130000 +B1201524520034N00554881EA0108201124000 +B1201554520012N00554884EA0107701119000 +B1201584519989N00554884EA0107501114000 +B1202014519968N00554882EA0107301108000 +B1202044519947N00554878EA0107001103000 +B1202074519925N00554874EA0106601098000 +B1202104519904N00554872EA0106001093000 +B1202134519884N00554867EA0105301089000 +B1202164519864N00554862EA0104401084000 +B1202194519842N00554857EA0103801078000 +B1202224519819N00554853EA0103301073000 +B1202254519796N00554847EA0102801067000 +B1202284519776N00554842EA0102101062000 +B1202324519752N00554834EA0102201054000 +B1202354519741N00554826EA0102201049000 +B1202384519728N00554817EA0102801045000 +B1202414519714N00554811EA0103501041000 +B1202444519701N00554806EA0104001039000 +B1202474519687N00554800EA0103901036000 +B1202504519671N00554795EA0104201035000 +B1202534519658N00554790EA0104201034000 +B1202564519644N00554783EA0104001033000 +B1202594519630N00554776EA0103401033000 +B1203024519614N00554764EA0102501031000 +B1203054519598N00554750EA0102501029000 +B1203084519581N00554739EA0102401027000 +B1203114519565N00554729EA0103301026000 +B1203144519554N00554718EA0103701025000 +B1203174519542N00554703EA0103601025000 +B1203204519531N00554688EA0104501025000 +B1203234519522N00554675EA0104801025000 +B1203264519510N00554660EA0105501026000 +B1203294519499N00554647EA0105901028000 +B1203324519488N00554638EA0106201030000 +B1203354519477N00554630EA0106901032000 +B1203384519466N00554619EA0107001034000 +B1203414519453N00554609EA0107301037000 +B1203444519439N00554601EA0107901039000 +B1203474519425N00554596EA0107901042000 +B1203504519412N00554589EA0107601044000 +B1203534519396N00554581EA0107601046000 +B1203564519381N00554575EA0106901048000 +B1203594519363N00554566EA0106801049000 +B1204034519339N00554556EA0106201050000 +B1204064519323N00554546EA0106001050000 +B1204094519307N00554537EA0105101049000 +B1204124519286N00554532EA0104601048000 +B1204154519268N00554527EA0103901047000 +B1204184519248N00554524EA0103101045000 +B1204214519229N00554522EA0102301042000 +B1204244519208N00554517EA0101401039000 +B1204274519185N00554512EA0101001035000 +B1204304519164N00554508EA0101301032000 +B1204334519146N00554503EA0101701029000 +B1204364519131N00554496EA0102101027000 +B1204394519118N00554485EA0101701025000 +B1204424519104N00554472EA0101101022000 +B1204454519091N00554459EA0101201020000 +B1204484519079N00554445EA0101101018000 +B1204514519066N00554432EA0100701015000 +B1204544519053N00554419EA0100301013000 +B1204574519040N00554404EA0100301010000 +B1205004519025N00554389EA0101501008000 +B1205034519017N00554374EA0102101007000 +B1205064519007N00554356EA0103501007000 +B1205094518998N00554339EA0104601008000 +B1205124518988N00554320EA0105301009000 +B1205154518987N00554292EA0105301011000 +B1205184519001N00554276EA0105801014000 +B1205214519016N00554280EA0106001017000 +B1205244519023N00554295EA0107201020000 +B1205274519023N00554311EA0108201023000 +B1205314519007N00554324EA0109501029000 +B1205344518993N00554319EA0111001034000 +B1205374518983N00554302EA0111501040000 +B1205404518983N00554276EA0111501046000 +B1205434518998N00554258EA0111501051000 +B1205464519011N00554254EA0112001056000 +B1205494519019N00554268EA0112701061000 +B1205524519018N00554284EA0113801067000 +B1205554519007N00554290EA0114701073000 +B1205584518999N00554274EA0115501079000 +B1206014519004N00554249EA0115801085000 +B1206044519019N00554235EA0116301091000 +B1206074519032N00554237EA0116801097000 +B1206104519039N00554255EA0117701103000 +B1206134519033N00554272EA0119201109000 +B1206164519023N00554274EA0120101117000 +B1206194519016N00554257EA0120701124000 +B1206224519023N00554234EA0121101131000 +B1206254519039N00554223EA0122001138000 +B1206284519051N00554227EA0122401145000 +B1206314519062N00554242EA0123201152000 +B1206344519063N00554261EA0123601159000 +B1206374519051N00554271EA0123901165000 +B1206404519035N00554274EA0125201172000 +B1206434519022N00554268EA0126201179000 +B1206464519018N00554248EA0127001186000 +B1206494519029N00554232EA0128001193000 +B1206524519043N00554230EA0129001201000 +B1206554519053N00554242EA0129701209000 +B1206584519050N00554260EA0130201216000 +B1207014519036N00554264EA0131001224000 +B1207044519023N00554257EA0131801231000 +B1207074519020N00554239EA0132001239000 +B1207104519030N00554218EA0132701246000 +B1207134519047N00554215EA0133901253000 +B1207164519057N00554225EA0134001261000 +B1207194519062N00554247EA0134101268000 +B1207234519047N00554264EA0134701276000 +B1207264519035N00554264EA0135401283000 +B1207294519022N00554256EA0136001289000 +B1207324519013N00554248EA0136301295000 +B1207354519003N00554234EA0135801301000 +B1207384518992N00554218EA0135601307000 +B1207414518980N00554193EA0135101311000 +B1207444518966N00554163EA0135401315000 +B1207474518955N00554139EA0135401318000 +B1207504518944N00554112EA0134301320000 +B1207534518931N00554083EA0134201322000 +B1207564518919N00554057EA0133801323000 +B1207594518907N00554029EA0133601323000 +B1208024518896N00554002EA0133701323000 +B1208054518884N00553975EA0133401323000 +B1208084518874N00553945EA0133501323000 +B1208114518864N00553914EA0133901323000 +B1208144518855N00553884EA0135601324000 +B1208174518849N00553864EA0136901327000 +B1208204518841N00553848EA0137901331000 +B1208234518829N00553850EA0138701335000 +B1208264518828N00553866EA0139301339000 +B1208294518839N00553875EA0140001344000 +B1208324518848N00553865EA0141101349000 +B1208354518853N00553848EA0141901354000 +B1208384518848N00553828EA0143001360000 +B1208414518836N00553821EA0143701367000 +B1208444518827N00553828EA0144101374000 +B1208474518824N00553845EA0144501380000 +B1208504518834N00553856EA0144901386000 +B1208544518848N00553845EA0145701394000 +B1208574518849N00553827EA0146301401000 +B1209004518844N00553806EA0146701407000 +B1209034518833N00553795EA0146901413000 +B1209064518818N00553788EA0146701419000 +B1209094518804N00553772EA0146701424000 +B1209124518791N00553754EA0146201428000 +B1209154518777N00553731EA0145501431000 +B1209184518761N00553707EA0145301433000 +B1209214518745N00553684EA0144701434000 +B1209244518729N00553660EA0144201435000 +B1209274518713N00553637EA0144001435000 +B1209304518701N00553615EA0143901435000 +B1209334518689N00553593EA0143401434000 +B1209364518674N00553569EA0143001434000 +B1209394518658N00553546EA0142201432000 +B1209424518641N00553523EA0141801430000 +B1209454518625N00553501EA0141101428000 +B1209484518607N00553481EA0140301425000 +B1209514518588N00553462EA0139701421000 +B1209544518570N00553445EA0139201418000 +B1209574518552N00553428EA0138701414000 +B1210004518534N00553411EA0138501410000 +B1210034518517N00553395EA0138201406000 +B1210064518499N00553380EA0137701402000 +B1210094518480N00553364EA0137301398000 +B1210134518455N00553344EA0136901393000 +B1210164518439N00553330EA0136601390000 +B1210194518424N00553314EA0135901386000 +B1210224518407N00553299EA0135301382000 +B1210254518390N00553285EA0134801377000 +B1210284518375N00553272EA0134101373000 +B1210314518359N00553257EA0133301368000 +B1210344518343N00553242EA0132501363000 +B1210374518326N00553228EA0131701357000 +B1210404518310N00553214EA0130701352000 +B1210434518295N00553198EA0129801345000 +B1210464518280N00553180EA0129601339000 +B1210494518266N00553160EA0129101333000 +B1210524518251N00553136EA0129301327000 +B1210554518241N00553113EA0131001322000 +B1210584518236N00553100EA0131801320000 +B1211014518230N00553089EA0132901318000 +B1211044518223N00553083EA0133901318000 +B1211074518215N00553088EA0135301320000 +B1211104518215N00553105EA0136301322000 +B1211134518230N00553117EA0136601324000 +B1211164518246N00553105EA0137301327000 +B1211194518256N00553089EA0138201331000 +B1211224518259N00553068EA0139201335000 +B1211254518259N00553050EA0140501340000 +B1211284518255N00553045EA0140801343000 +B1211314518252N00553060EA0141401349000 +B1211344518265N00553077EA0142601355000 +B1211374518280N00553078EA0143201362000 +B1211404518293N00553064EA0144101369000 +B1211434518298N00553042EA0145101376000 +B1211464518300N00553022EA0145501383000 +B1211504518290N00553008EA0145401392000 +B1211534518284N00553020EA0145201397000 +B1211564518291N00553043EA0145301402000 +B1211594518310N00553051EA0146101407000 +B1212024518326N00553043EA0146901412000 +B1212054518336N00553020EA0147101418000 +B1212084518338N00553004EA0147501422000 +B1212114518333N00552991EA0147201426000 +B1212144518324N00552977EA0147301431000 +B1212174518312N00552965EA0147001435000 +B1212204518300N00552949EA0147401438000 +B1212234518289N00552931EA0147601442000 +B1212264518278N00552913EA0147601444000 +B1212294518268N00552896EA0147601447000 +B1212324518259N00552876EA0147401449000 +B1212354518248N00552855EA0147301451000 +B1212384518238N00552833EA0146601452000 +B1212414518229N00552808EA0146301453000 +B1212444518224N00552785EA0146301453000 +B1212474518220N00552763EA0145901453000 +B1212504518218N00552738EA0146201453000 +B1212534518215N00552716EA0145701453000 +B1212564518209N00552692EA0145101452000 +B1212594518202N00552670EA0145401452000 +B1213024518193N00552652EA0145101451000 +B1213054518183N00552633EA0145101450000 +B1213084518173N00552615EA0144901449000 +B1213114518161N00552596EA0144101448000 +B1213144518147N00552578EA0143701446000 +B1213184518128N00552558EA0142901443000 +B1213214518113N00552542EA0142201441000 +B1213244518098N00552527EA0141701437000 +B1213274518082N00552513EA0141001434000 +B1213304518066N00552497EA0140801430000 +B1213334518052N00552484EA0140401427000 +B1213364518039N00552469EA0139801423000 +B1213394518028N00552449EA0139401419000 +B1213424518019N00552430EA0138801415000 +B1213454518009N00552409EA0138201410000 +B1213484517999N00552387EA0137801406000 +B1213514517990N00552361EA0137901402000 +B1213544517979N00552339EA0137701398000 +B1213574517965N00552320EA0137001394000 +B1214004517950N00552300EA0136801391000 +B1214034517936N00552283EA0135801386000 +B1214064517921N00552264EA0135401382000 +B1214094517906N00552249EA0134601377000 +B1214124517889N00552235EA0134101373000 +B1214154517874N00552222EA0133601368000 +B1214184517859N00552208EA0132601362000 +B1214214517843N00552192EA0132501357000 +B1214244517827N00552181EA0131701352000 +B1214274517811N00552170EA0131001347000 +B1214304517793N00552158EA0130501341000 +B1214334517777N00552148EA0129801336000 +B1214364517762N00552135EA0129101330000 +B1214404517740N00552117EA0128901323000 +B1214434517723N00552104EA0128601317000 +B1214464517706N00552090EA0128401313000 +B1214494517690N00552078EA0128001308000 +B1214524517675N00552067EA0127101304000 +B1214554517657N00552054EA0126401298000 +B1214584517643N00552041EA0126301293000 +B1215014517627N00552027EA0125501288000 +B1215044517612N00552013EA0125401283000 +B1215074517599N00551999EA0124301278000 +B1215104517584N00551982EA0124401273000 +B1215134517570N00551969EA0123901268000 +B1215164517555N00551953EA0123801263000 +B1215194517542N00551937EA0123701259000 +B1215224517528N00551920EA0123301255000 +B1215254517514N00551903EA0123501251000 +B1215284517502N00551888EA0123401248000 +B1215314517487N00551872EA0123601245000 +B1215344517475N00551856EA0124001243000 +B1215374517466N00551841EA0124001241000 +B1215404517454N00551825EA0124301240000 +B1215434517444N00551811EA0124501239000 +B1215464517433N00551795EA0125301239000 +B1215494517424N00551781EA0126301239000 +B1215524517418N00551765EA0126501240000 +B1215554517407N00551752EA0127001242000 +B1215584517397N00551751EA0126601244000 +B1216024517379N00551749EA0126201246000 +B1216054517368N00551743EA0126301247000 +B1216084517355N00551733EA0126201247000 +B1216114517347N00551722EA0126601248000 +B1216144517338N00551711EA0127001249000 +B1216174517332N00551697EA0128101251000 +B1216204517328N00551681EA0128501253000 +B1216234517319N00551669EA0129101256000 +B1216264517309N00551666EA0129201259000 +B1216294517301N00551656EA0128901262000 +B1216324517293N00551642EA0128801264000 +B1216354517284N00551627EA0129501266000 +B1216384517276N00551616EA0129701268000 +B1216414517268N00551602EA0129801270000 +B1216444517260N00551588EA0130301273000 +B1216474517254N00551574EA0129901275000 +B1216504517244N00551553EA0130901277000 +B1216534517239N00551532EA0132301280000 +B1216564517235N00551514EA0133201284000 +B1216594517227N00551518EA0133601288000 +B1217024517233N00551538EA0134901292000 +B1217054517247N00551550EA0136401297000 +B1217084517261N00551551EA0137101304000 +B1217114517274N00551535EA0138201310000 +B1217144517278N00551512EA0139601317000 +B1217174517272N00551500EA0140201324000 +B1217204517267N00551514EA0141201330000 +B1217234517276N00551533EA0142601339000 +B1217264517290N00551536EA0143601347000 +B1217304517310N00551521EA0144901359000 +B1217334517317N00551503EA0145601368000 +B1217364517318N00551480EA0146801378000 +B1217394517310N00551476EA0147501384000 +B1217424517304N00551492EA0148101393000 +B1217454517312N00551513EA0149001402000 +B1217484517329N00551521EA0150101411000 +B1217514517344N00551514EA0151001421000 +B1217544517351N00551496EA0151501430000 +B1217574517348N00551480EA0152401438000 +B1218004517340N00551485EA0153401444000 +B1218034517339N00551503EA0153901454000 +B1218064517350N00551520EA0154801464000 +B1218094517366N00551514EA0155501472000 +B1218124517377N00551497EA0156101481000 +B1218154517381N00551479EA0156601489000 +B1218184517376N00551465EA0156701497000 +B1218214517363N00551470EA0157301504000 +B1218244517362N00551490EA0158101511000 +B1218274517373N00551507EA0158601517000 +B1218304517392N00551509EA0158901524000 +B1218334517408N00551495EA0159501530000 +B1218364517414N00551477EA0159801536000 +B1218394517412N00551459EA0160001542000 +B1218424517405N00551447EA0159201546000 +B1218454517394N00551425EA0158601550000 +B1218484517382N00551398EA0158501553000 +B1218514517371N00551371EA0158301556000 +B1218544517357N00551346EA0157801558000 +B1218574517341N00551320EA0157401559000 +B1219014517319N00551291EA0157101560000 +B1219044517304N00551268EA0157101560000 +B1219074517290N00551245EA0156701560000 +B1219104517273N00551220EA0156501560000 +B1219134517256N00551197EA0156801559000 +B1219164517240N00551177EA0156901559000 +B1219194517224N00551155EA0156601559000 +B1219224517209N00551132EA0156401559000 +B1219254517197N00551109EA0155701558000 +B1219284517184N00551084EA0154701556000 +B1219314517169N00551061EA0153901554000 +B1219344517153N00551039EA0152901550000 +B1219374517139N00551017EA0152001546000 +B1219404517124N00550999EA0151101542000 +B1219434517112N00550979EA0150301537000 +B1219464517102N00550959EA0149401531000 +B1219494517089N00550940EA0148901526000 +B1219524517077N00550921EA0147801520000 +B1219554517063N00550902EA0146401513000 +B1219584517048N00550881EA0145701506000 +B1220014517034N00550863EA0144801498000 +B1220044517021N00550843EA0143601491000 +B1220074517009N00550823EA0143301483000 +B1220104516998N00550801EA0143101476000 +B1220134516990N00550778EA0142501469000 +B1220164516978N00550756EA0142301462000 +B1220194516967N00550733EA0142401456000 +B1220224516958N00550709EA0142301451000 +B1220264516949N00550673EA0142201444000 +B1220294516939N00550647EA0142201440000 +B1220324516929N00550620EA0142401437000 +B1220354516923N00550594EA0143601434000 +B1220384516921N00550578EA0144201433000 +B1220414516918N00550562EA0144201432000 +B1220444516914N00550548EA0144401431000 +B1220474516906N00550535EA0144201431000 +B1220504516898N00550518EA0144301431000 +B1220534516890N00550503EA0143901431000 +B1220564516880N00550485EA0143601430000 +B1220594516871N00550462EA0143701429000 +B1221024516869N00550435EA0144401429000 +B1221054516871N00550412EA0144801429000 +B1221084516866N00550389EA0145901430000 +B1221114516861N00550368EA0147001433000 +B1221144516858N00550349EA0148001435000 +B1221174516856N00550331EA0148701439000 +B1221204516853N00550314EA0148501443000 +B1221234516850N00550291EA0148801446000 +B1221264516846N00550269EA0148801450000 +B1221294516840N00550248EA0149001453000 +B1221324516833N00550227EA0149301456000 +B1221354516827N00550208EA0149301459000 +B1221384516819N00550190EA0149801462000 +B1221414516812N00550175EA0149901465000 +B1221444516805N00550160EA0149901468000 +B1221484516795N00550137EA0149501471000 +B1221514516787N00550116EA0148601472000 +B1221544516777N00550090EA0147901472000 +B1221574516773N00550068EA0148201472000 +B1222004516771N00550050EA0147401472000 +B1222034516764N00550029EA0146801470000 +B1222064516756N00550004EA0146301469000 +B1222094516745N00549979EA0146201467000 +B1222124516733N00549956EA0145601465000 +B1222154516722N00549930EA0145301463000 +B1222184516711N00549908EA0145501460000 +B1222214516702N00549890EA0144901458000 +B1222244516694N00549867EA0143801455000 +B1222274516686N00549844EA0143501452000 +B1222304516679N00549825EA0142301448000 +B1222334516670N00549803EA0141401444000 +B1222364516660N00549779EA0140801439000 +B1222394516650N00549755EA0140201434000 +B1222424516639N00549730EA0139401429000 +B1222454516628N00549705EA0138901423000 +B1222484516618N00549680EA0138201417000 +B1222514516608N00549652EA0137801412000 +B1222544516598N00549624EA0137601406000 +B1222574516589N00549597EA0137901401000 +B1223004516579N00549575EA0137701397000 +B1223034516569N00549550EA0137101393000 +B1223064516558N00549523EA0136801389000 +B1223104516545N00549488EA0136601384000 +B1223134516536N00549460EA0136401380000 +B1223164516527N00549431EA0136501377000 +B1223194516519N00549405EA0136701374000 +B1223224516509N00549381EA0136201372000 +B1223254516496N00549353EA0135601369000 +B1223284516484N00549328EA0136001366000 +B1223314516474N00549306EA0135801364000 +B1223344516460N00549283EA0135701361000 +B1223374516450N00549261EA0135601359000 +B1223404516439N00549238EA0135401357000 +B1223434516430N00549215EA0136001355000 +B1223464516425N00549200EA0136301354000 +B1223494516418N00549189EA0135901353000 +B1223524516408N00549176EA0135401352000 +B1223554516393N00549162EA0136001351000 +B1223584516379N00549154EA0137301351000 +B1224014516368N00549145EA0138001352000 +B1224044516362N00549129EA0139101354000 +B1224074516358N00549112EA0140001357000 +B1224104516351N00549095EA0140201361000 +B1224134516341N00549077EA0140001364000 +B1224164516330N00549059EA0140201367000 +B1224194516320N00549044EA0139901370000 +B1224224516308N00549027EA0140301372000 +B1224254516298N00549014EA0140001375000 +B1224294516282N00548994EA0139801377000 +B1224324516271N00548979EA0139701378000 +B1224354516258N00548965EA0139401379000 +B1224384516245N00548951EA0138801379000 +B1224414516231N00548938EA0138501379000 +B1224444516220N00548926EA0138801378000 +B1224474516213N00548912EA0138901378000 +B1224504516208N00548896EA0139601379000 +B1224534516202N00548883EA0139801379000 +B1224564516193N00548866EA0140601380000 +B1224594516188N00548852EA0141801382000 +B1225024516181N00548837EA0142401385000 +B1225054516173N00548820EA0143301389000 +B1225084516165N00548803EA0143901393000 +B1225114516155N00548785EA0144501397000 +B1225144516145N00548770EA0144601402000 +B1225174516135N00548754EA0144101405000 +B1225204516125N00548734EA0144001408000 +B1225234516117N00548717EA0143201411000 +B1225264516104N00548696EA0142601412000 +B1225294516095N00548677EA0142101412000 +B1225324516084N00548660EA0141601412000 +B1225354516071N00548644EA0141201411000 +B1225384516059N00548626EA0141001410000 +B1225414516047N00548611EA0140501409000 +B1225444516035N00548595EA0139901407000 +B1225474516021N00548578EA0139401405000 +B1225504516007N00548557EA0139901402000 +B1225534516001N00548539EA0140801401000 +B1225564515997N00548530EA0140001400000 +B1226004515982N00548511EA0139601398000 +B1226034515969N00548496EA0139001396000 +B1226064515955N00548479EA0138501393000 +B1226094515942N00548461EA0138301391000 +B1226124515930N00548443EA0138101388000 +B1226154515918N00548426EA0138001386000 +B1226184515906N00548409EA0138001384000 +B1226214515895N00548395EA0138001383000 +B1226244515883N00548381EA0137801381000 +B1226274515870N00548367EA0137601379000 +B1226304515859N00548350EA0138101378000 +B1226334515849N00548334EA0138501377000 +B1226364515840N00548320EA0138901377000 +B1226394515829N00548304EA0139101377000 +B1226424515817N00548289EA0139801378000 +B1226454515804N00548274EA0140001379000 +B1226484515791N00548259EA0139901380000 +B1226514515776N00548242EA0139701381000 +B1226544515759N00548224EA0139801381000 +B1226574515744N00548208EA0139701382000 +B1227004515728N00548190EA0139401383000 +B1227034515712N00548174EA0139701383000 +B1227064515699N00548159EA0139701383000 +B1227094515685N00548146EA0139501383000 +B1227124515668N00548134EA0139001383000 +B1227154515653N00548121EA0139401383000 +B1227184515640N00548106EA0140101383000 +B1227224515627N00548091EA0139801384000 +B1227254515615N00548076EA0139001384000 +B1227284515605N00548059EA0138201383000 +B1227314515592N00548048EA0138601382000 +B1227344515584N00548041EA0138101381000 +B1227374515572N00548027EA0137201379000 +B1227404515560N00548012EA0137001377000 +B1227434515547N00547997EA0136501375000 +B1227464515534N00547979EA0136301373000 +B1227494515521N00547962EA0135901370000 +B1227524515507N00547943EA0135701368000 +B1227554515493N00547924EA0135201365000 +B1227584515478N00547905EA0135101362000 +B1228014515463N00547886EA0134901360000 +B1228044515448N00547866EA0135001357000 +B1228074515433N00547850EA0134701355000 +B1228104515417N00547831EA0135001353000 +B1228134515407N00547812EA0135901352000 +B1228164515400N00547799EA0136201351000 +B1228194515390N00547786EA0136001351000 +B1228224515379N00547771EA0135801350000 +B1228254515367N00547758EA0136101350000 +B1228284515358N00547746EA0135701350000 +B1228314515346N00547730EA0135101349000 +B1228344515335N00547716EA0134701348000 +B1228374515322N00547699EA0134701347000 +B1228414515306N00547681EA0134901346000 +B1228444515295N00547669EA0134501345000 +B1228474515283N00547656EA0134701343000 +B1228504515272N00547644EA0135001343000 +B1228534515261N00547633EA0135201342000 +B1228564515251N00547622EA0135101342000 +B1228594515240N00547610EA0136001342000 +B1229024515230N00547598EA0136201343000 +B1229054515218N00547586EA0137301344000 +B1229084515209N00547576EA0138201346000 +B1229114515198N00547569EA0138601349000 +B1229144515184N00547559EA0139701352000 +B1229174515172N00547551EA0140501356000 +B1229204515162N00547540EA0141501361000 +B1229234515151N00547528EA0141701365000 +B1229264515138N00547511EA0141901370000 +B1229294515127N00547494EA0142301374000 +B1229324515116N00547477EA0142401379000 +B1229354515107N00547460EA0142701383000 +B1229384515098N00547445EA0142801386000 +B1229414515087N00547426EA0143501390000 +B1229444515078N00547413EA0143701394000 +B1229474515068N00547401EA0143201397000 +B1229504515057N00547384EA0143301400000 +B1229534515048N00547368EA0144601403000 +B1229564515044N00547356EA0145301407000 +B1229594515036N00547342EA0146201411000 +B1230024515027N00547328EA0147001415000 +B1230054515018N00547315EA0148101421000 +B1230084515012N00547306EA0149101425000 +B1230114515004N00547298EA0149501429000 +B1230144514995N00547290EA0149501437000 +B1230184514978N00547274EA0149001444000 +B1230214514965N00547260EA0149201449000 +B1230244514957N00547249EA0148701453000 +B1230274514944N00547233EA0148201455000 +B1230304514933N00547219EA0147801458000 +B1230334514919N00547203EA0146801459000 +B1230364514904N00547185EA0146601459000 +B1230394514891N00547167EA0146601459000 +B1230424514880N00547150EA0146401458000 +B1230454514869N00547134EA0146901458000 +B1230484514861N00547122EA0146901459000 +B1230514514850N00547107EA0146701459000 +B1230544514838N00547093EA0146801459000 +B1230574514827N00547077EA0146701459000 +B1231004514814N00547058EA0147201459000 +B1231034514802N00547042EA0147201459000 +B1231064514789N00547023EA0147501460000 +B1231094514773N00547005EA0148201460000 +B1231124514759N00546990EA0149401462000 +B1231154514747N00546973EA0150401465000 +B1231184514738N00546957EA0151301468000 +B1231214514730N00546940EA0152401472000 +B1231244514724N00546927EA0153001477000 +B1231274514716N00546913EA0153501482000 +B1231304514709N00546900EA0154101487000 +B1231334514701N00546884EA0154501492000 +B1231364514689N00546871EA0154401497000 +B1231394514676N00546854EA0154601501000 +B1231424514663N00546842EA0153701505000 +B1231454514646N00546827EA0153001508000 +B1231484514632N00546807EA0152901509000 +B1231514514623N00546783EA0153501510000 +B1231554514610N00546756EA0154301513000 +B1231584514601N00546742EA0154201515000 +B1232014514588N00546724EA0153801517000 +B1232044514576N00546703EA0153901518000 +B1232074514567N00546687EA0154301519000 +B1232104514557N00546673EA0155401521000 +B1232134514548N00546657EA0156001524000 +B1232164514537N00546637EA0156501527000 +B1232194514524N00546619EA0156801530000 +B1232224514514N00546604EA0158001534000 +B1232254514506N00546595EA0157701537000 +B1232284514494N00546580EA0157601540000 +B1232314514481N00546563EA0158401544000 +B1232344514471N00546547EA0158801547000 +B1232374514461N00546529EA0159001551000 +B1232404514450N00546510EA0159501554000 +B1232434514440N00546495EA0159501558000 +B1232464514428N00546478EA0159001560000 +B1232494514414N00546460EA0159101562000 +B1232524514405N00546439EA0159501564000 +B1232554514396N00546420EA0159101566000 +B1232584514387N00546398EA0159001568000 +B1233014514380N00546382EA0159501569000 +B1233044514375N00546369EA0159001570000 +B1233074514366N00546351EA0158501571000 +B1233104514355N00546333EA0158601571000 +B1233134514346N00546315EA0158901572000 +B1233164514339N00546295EA0158801572000 +B1233194514330N00546272EA0159101573000 +B1233224514323N00546250EA0159701574000 +B1233264514315N00546221EA0160701576000 +B1233294514309N00546203EA0161801579000 +B1233324514300N00546182EA0162501582000 +B1233354514288N00546161EA0163201586000 +B1233384514275N00546135EA0164001590000 +B1233414514267N00546112EA0165101595000 +B1233444514256N00546087EA0165701601000 +B1233474514246N00546063EA0166801606000 +B1233504514238N00546040EA0167501612000 +B1233534514229N00546016EA0168701619000 +B1233564514222N00545995EA0169901626000 +B1233594514217N00545976EA0170501633000 +B1234024514211N00545955EA0170801640000 +B1234054514202N00545931EA0171801647000 +B1234084514195N00545908EA0172301654000 +B1234114514188N00545883EA0172801661000 +B1234144514181N00545858EA0173301668000 +B1234174514174N00545830EA0173901675000 +B1234204514166N00545802EA0174601681000 +B1234234514158N00545777EA0175601688000 +B1234264514148N00545762EA0175701694000 +B1234294514137N00545768EA0175201700000 +B1234324514137N00545790EA0175301705000 +B1234354514145N00545810EA0175701710000 +B1234384514151N00545825EA0175801715000 +B1234414514160N00545843EA0175801719000 +B1234444514171N00545860EA0176101723000 +B1234474514182N00545882EA0176701727000 +B1234504514192N00545902EA0177101731000 +B1234534514198N00545924EA0177701735000 +B1234564514206N00545946EA0178801739000 +B1234594514215N00545962EA0179301744000 +B1235024514225N00545983EA0180001748000 +B1235054514237N00546004EA0181301753000 +B1235084514245N00546015EA0181201759000 +B1235124514257N00546038EA0181701766000 +B1235154514267N00546052EA0182501772000 +B1235184514279N00546068EA0183201777000 +B1235214514290N00546087EA0184501784000 +B1235244514298N00546103EA0185301790000 +B1235274514303N00546120EA0186001797000 +B1235304514309N00546135EA0186501804000 +B1235334514317N00546149EA0186401810000 +B1235364514327N00546164EA0186301816000 +B1235394514338N00546180EA0186001821000 +B1235424514350N00546199EA0185601825000 +B1235454514364N00546220EA0185601828000 +B1235484514376N00546241EA0185801831000 +B1235514514388N00546263EA0185701833000 +B1235544514400N00546286EA0185401835000 +B1235574514413N00546312EA0185601837000 +B1236004514426N00546335EA0185201838000 +B1236034514438N00546357EA0184701839000 +B1236064514451N00546382EA0185201840000 +B1236094514462N00546405EA0185701841000 +B1236124514474N00546432EA0186001842000 +B1236154514488N00546457EA0187101844000 +B1236184514500N00546473EA0187001846000 +B1236214514510N00546491EA0186801848000 +B1236244514516N00546510EA0186501850000 +B1236274514525N00546531EA0186601852000 +B1236304514533N00546547EA0186101853000 +B1236334514543N00546567EA0185601854000 +B1236364514556N00546588EA0185801854000 +B1236404514571N00546609EA0184501853000 +B1236434514588N00546629EA0185001852000 +B1236464514598N00546649EA0185101852000 +B1236494514612N00546671EA0186001851000 +B1236524514624N00546691EA0187001852000 +B1236554514634N00546713EA0187801853000 +B1236584514646N00546736EA0188301856000 +B1237014514659N00546757EA0188501858000 +B1237044514668N00546778EA0188901860000 +B1237074514675N00546795EA0188301863000 +B1237104514684N00546812EA0187401864000 +B1237134514696N00546833EA0186201864000 +B1237164514712N00546856EA0185801863000 +B1237194514727N00546879EA0185001861000 +B1237224514743N00546904EA0184501859000 +B1237254514758N00546929EA0184101857000 +B1237284514774N00546954EA0183801854000 +B1237314514792N00546977EA0183701851000 +B1237344514809N00547002EA0185001849000 +B1237374514820N00547018EA0185301848000 +B1237404514831N00547033EA0184701847000 +B1237434514845N00547057EA0185201846000 +B1237464514857N00547080EA0185101846000 +B1237494514870N00547103EA0184301845000 +B1237524514885N00547129EA0184001844000 +B1237554514901N00547155EA0183601843000 +B1237584514919N00547182EA0183501841000 +B1238014514931N00547207EA0183301840000 +B1238054514946N00547238EA0182901838000 +B1238084514959N00547264EA0182801837000 +B1238114514972N00547281EA0183301835000 +B1238144514987N00547295EA0182901834000 +B1238174515002N00547307EA0183301833000 +B1238204515014N00547318EA0182701832000 +B1238234515028N00547329EA0182201831000 +B1238264515041N00547340EA0180801829000 +B1238294515059N00547354EA0180201826000 +B1238324515072N00547369EA0180001823000 +B1238354515090N00547388EA0180501820000 +B1238384515104N00547406EA0181501818000 +B1238414515115N00547423EA0181601816000 +B1238444515128N00547443EA0182201815000 +B1238474515142N00547459EA0182801815000 +B1238504515157N00547476EA0183301816000 +B1238534515175N00547492EA0184001817000 +B1238564515194N00547510EA0184301819000 +B1238594515211N00547528EA0184401820000 +B1239024515230N00547544EA0184401822000 +B1239054515248N00547560EA0184801824000 +B1239084515266N00547575EA0184801826000 +B1239114515283N00547592EA0185101828000 +B1239144515300N00547610EA0185301830000 +B1239174515317N00547628EA0185201832000 +B1239204515334N00547646EA0184801834000 +B1239234515353N00547663EA0184401835000 +B1239264515371N00547680EA0183601836000 +B1239304515395N00547702EA0183301837000 +B1239334515413N00547719EA0182601836000 +B1239364515431N00547738EA0182701835000 +B1239394515448N00547756EA0182301834000 +B1239424515464N00547776EA0182101832000 +B1239454515481N00547794EA0182001831000 +B1239484515498N00547814EA0182401829000 +B1239514515511N00547831EA0182301828000 +B1239544515526N00547852EA0181601827000 +B1239574515543N00547869EA0181301825000 +B1240004515559N00547886EA0180501823000 +B1240034515578N00547902EA0180501821000 +B1240064515594N00547919EA0179901818000 +B1240094515612N00547938EA0179701816000 +B1240124515628N00547955EA0179201813000 +B1240154515645N00547974EA0178901811000 +B1240184515662N00547993EA0179301808000 +B1240214515677N00548008EA0179301806000 +B1240244515693N00548024EA0179601805000 +B1240274515710N00548040EA0179501803000 +B1240304515727N00548057EA0180401802000 +B1240334515742N00548068EA0180401802000 +B1240364515760N00548078EA0180501802000 +B1240394515778N00548089EA0180601802000 +B1240424515794N00548102EA0180001801000 +B1240454515809N00548118EA0179201801000 +B1240484515826N00548136EA0178901799000 +B1240524515849N00548157EA0178901797000 +B1240554515865N00548168EA0179301796000 +B1240584515879N00548182EA0179001795000 +B1241014515895N00548199EA0178501794000 +B1241044515910N00548219EA0177601792000 +B1241074515928N00548239EA0177001790000 +B1241104515944N00548259EA0176301787000 +B1241134515960N00548280EA0175701783000 +B1241164515978N00548300EA0175401780000 +B1241194515995N00548320EA0174901776000 +B1241224516012N00548342EA0174701773000 +B1241254516027N00548362EA0174301769000 +B1241284516044N00548383EA0173701765000 +B1241314516060N00548404EA0173401762000 +B1241344516077N00548423EA0172701758000 +B1241374516095N00548441EA0172201754000 +B1241404516112N00548459EA0171901750000 +B1241434516127N00548474EA0172401746000 +B1241464516140N00548490EA0173101743000 +B1241494516151N00548506EA0173501742000 +B1241524516161N00548524EA0173601741000 +B1241554516172N00548541EA0173101739000 +B1241584516188N00548562EA0172801738000 +B1242014516203N00548581EA0172301736000 +B1242044516219N00548599EA0171801734000 +B1242074516235N00548616EA0171301732000 +B1242114516256N00548638EA0170701728000 +B1242144516272N00548653EA0170301725000 +B1242174516289N00548668EA0170401722000 +B1242204516307N00548681EA0171301720000 +B1242234516324N00548691EA0172701719000 +B1242264516339N00548701EA0173701719000 +B1242294516354N00548717EA0174801721000 +B1242324516367N00548736EA0175601724000 +B1242354516384N00548749EA0176301727000 +B1242384516397N00548749EA0175801730000 +B1242414516413N00548752EA0175801733000 +B1242444516428N00548759EA0175401735000 +B1242474516442N00548769EA0175001737000 +B1242504516457N00548781EA0175601738000 +B1242534516469N00548795EA0175701740000 +B1242564516481N00548810EA0176701742000 +B1242594516495N00548822EA0177601744000 +B1243024516508N00548836EA0178501748000 +B1243054516526N00548840EA0179401751000 +B1243084516534N00548827EA0180301756000 +B1243114516528N00548811EA0181401761000 +B1243144516519N00548812EA0181801765000 +B1243174516510N00548823EA0182501771000 +B1243204516506N00548842EA0183501777000 +B1243234516513N00548859EA0184201783000 +B1243264516529N00548865EA0185601789000 +B1243294516545N00548864EA0186901797000 +B1243324516556N00548857EA0187601804000 +B1243354516556N00548841EA0188901812000 +B1243384516548N00548839EA0189701816000 +B1243424516540N00548858EA0190701827000 +B1243454516542N00548883EA0191801837000 +B1243484516554N00548904EA0192701846000 +B1243514516573N00548909EA0193901856000 +B1243544516584N00548896EA0195401866000 +B1243574516579N00548888EA0196101871000 +B1244004516568N00548885EA0197301882000 +B1244034516559N00548903EA0198101894000 +B1244064516563N00548928EA0198801904000 +B1244094516578N00548947EA0199501914000 +B1244124516596N00548946EA0200501924000 +B1244154516605N00548931EA0201201933000 +B1244184516598N00548919EA0202201942000 +B1244214516586N00548926EA0203501952000 +B1244244516585N00548949EA0204001961000 +B1244274516599N00548972EA0204801970000 +B1244304516618N00548980EA0205201978000 +B1244334516631N00548968EA0205901987000 +B1244364516631N00548955EA0206101992000 +B1244394516618N00548951EA0206802000000 +B1244424516609N00548969EA0207602008000 +B1244454516615N00548995EA0208202015000 +B1244484516630N00549012EA0208402022000 +B1244514516648N00549019EA0208302029000 +B1244544516666N00549026EA0208302034000 +B1244574516683N00549034EA0208302040000 +B1245004516702N00549044EA0208102044000 +B1245034516721N00549050EA0208402048000 +B1245064516736N00549057EA0208202052000 +B1245094516754N00549062EA0207802055000 +B1245134516784N00549070EA0207302058000 +B1245164516807N00549079EA0207302060000 +B1245194516827N00549090EA0206902061000 +B1245224516848N00549101EA0205802061000 +B1245254516871N00549113EA0205602061000 +B1245284516891N00549127EA0205102060000 +B1245314516912N00549137EA0204602058000 +B1245344516935N00549146EA0203902056000 +B1245374516959N00549163EA0203002054000 +B1245404516983N00549184EA0201802050000 +B1245434517003N00549205EA0201602047000 +B1245464517022N00549218EA0200802043000 +B1245494517041N00549229EA0200502038000 +B1245524517054N00549243EA0199502034000 +B1245554517073N00549253EA0198202029000 +B1245584517093N00549262EA0198302024000 +B1246014517110N00549270EA0197502019000 +B1246044517131N00549279EA0197102014000 +B1246074517150N00549290EA0196802009000 +B1246104517169N00549301EA0196102004000 +B1246134517188N00549312EA0195701999000 +B1246164517207N00549322EA0195201994000 +B1246194517227N00549334EA0194901989000 +B1246224517246N00549344EA0194601984000 +B1246254517265N00549354EA0194301979000 +B1246284517284N00549366EA0194001975000 +B1246324517309N00549382EA0193801969000 +B1246354517329N00549392EA0193601965000 +B1246384517347N00549403EA0193201962000 +B1246414517366N00549414EA0192901958000 +B1246444517384N00549425EA0192601954000 +B1246474517403N00549435EA0192201951000 +B1246504517421N00549446EA0191801947000 +B1246534517440N00549458EA0191401943000 +B1246564517460N00549469EA0191001939000 +B1246594517480N00549482EA0190701936000 +B1247024517500N00549493EA0190601932000 +B1247054517519N00549504EA0190301929000 +B1247084517539N00549516EA0189901925000 +B1247114517559N00549527EA0189801922000 +B1247144517579N00549538EA0189501919000 +B1247174517599N00549552EA0189401916000 +B1247204517618N00549568EA0189001913000 +B1247234517637N00549586EA0188901910000 +B1247264517656N00549599EA0188301907000 +B1247294517674N00549605EA0188001903000 +B1247324517688N00549613EA0187301900000 +B1247354517705N00549623EA0187001896000 +B1247384517722N00549633EA0187001892000 +B1247414517738N00549643EA0186801889000 +B1247444517754N00549655EA0186701886000 +B1247474517770N00549667EA0186701883000 +B1247504517787N00549667EA0186501880000 +B1247544517809N00549677EA0186101877000 +B1247574517821N00549697EA0186001874000 +B1248004517832N00549718EA0185501871000 +B1248034517845N00549740EA0185101868000 +B1248064517857N00549762EA0184701866000 +B1248094517870N00549788EA0184301862000 +B1248124517883N00549814EA0184601860000 +B1248154517896N00549837EA0184501857000 +B1248184517909N00549865EA0184601855000 +B1248214517918N00549892EA0184801854000 +B1248244517926N00549918EA0184401852000 +B1248274517934N00549940EA0183901850000 +B1248304517944N00549963EA0183101848000 +B1248334517955N00549985EA0182301845000 +B1248364517966N00550009EA0181101842000 +B1248394517979N00550037EA0181101838000 +B1248424517992N00550059EA0181201834000 +B1248454518005N00550081EA0181301831000 +B1248484518019N00550104EA0182301828000 +B1248514518032N00550121EA0182601827000 +B1248544518043N00550140EA0183001827000 +B1248574518056N00550157EA0183801827000 +B1249004518070N00550169EA0184101828000 +B1249034518086N00550176EA0184401829000 +B1249064518102N00550172EA0184301831000 +B1249094518115N00550152EA0184401832000 +B1249124518114N00550131EA0184701833000 +B1249164518104N00550122EA0184401835000 +B1249194518096N00550129EA0184601835000 +B1249224518097N00550149EA0185001836000 +B1249254518103N00550168EA0185501838000 +B1249284518111N00550191EA0185901839000 +B1249314518118N00550209EA0186201841000 +B1249344518125N00550226EA0185701843000 +B1249374518133N00550248EA0185901845000 +B1249404518139N00550268EA0186401846000 +B1249434518145N00550287EA0186301848000 +B1249464518154N00550308EA0186601850000 +B1249494518163N00550324EA0186701852000 +B1249524518172N00550343EA0186601853000 +B1249554518182N00550361EA0186301854000 +B1249584518191N00550382EA0186301855000 +B1250014518199N00550406EA0186001855000 +B1250044518205N00550433EA0186001856000 +B1250074518212N00550456EA0185401856000 +B1250104518220N00550483EA0184301855000 +B1250134518225N00550512EA0183901853000 +B1250164518226N00550540EA0182901851000 +B1250194518225N00550567EA0182001848000 +B1250224518223N00550597EA0181701844000 +B1250254518220N00550622EA0180901841000 +B1250284518220N00550654EA0180401837000 +B1250324518223N00550699EA0180301832000 +B1250354518227N00550731EA0179601828000 +B1250384518230N00550765EA0179001824000 +B1250414518234N00550797EA0178801820000 +B1250444518238N00550829EA0178201816000 +B1250474518241N00550861EA0178201812000 +B1250504518244N00550885EA0178801809000 +B1250534518248N00550903EA0178701806000 +B1250564518250N00550924EA0178701803000 +B1250594518251N00550943EA0179001800000 +B1251024518252N00550961EA0179201799000 +B1251054518253N00550979EA0179501797000 +B1251084518254N00550996EA0179001797000 +B1251114518255N00551015EA0178701795000 +B1251144518259N00551035EA0179201794000 +B1251174518263N00551054EA0179301794000 +B1251204518263N00551073EA0179401793000 +B1251234518262N00551093EA0179501793000 +B1251264518264N00551113EA0180001793000 +B1251294518269N00551131EA0180301793000 +B1251324518272N00551151EA0180601794000 +B1251354518279N00551173EA0181201795000 +B1251384518286N00551193EA0181601796000 +B1251414518295N00551214EA0182401798000 +B1251444518304N00551233EA0183301800000 +B1251474518311N00551255EA0184201803000 +B1251504518315N00551275EA0184701807000 +B1251534518310N00551292EA0184801810000 +B1251564518296N00551297EA0185901814000 +B1252004518282N00551293EA0186401819000 +B1252034518270N00551292EA0187001823000 +B1252064518259N00551285EA0188301829000 +B1252094518248N00551277EA0189501834000 +B1252124518235N00551285EA0190201841000 +B1252154518235N00551303EA0190601847000 +B1252184518251N00551314EA0191701853000 +B1252214518265N00551308EA0193201860000 +B1252244518275N00551293EA0194501868000 +B1252274518279N00551273EA0196001876000 +B1252304518270N00551260EA0197201885000 +B1252334518258N00551272EA0198001894000 +B1252364518258N00551292EA0198801903000 +B1252394518269N00551306EA0199401911000 +B1252424518285N00551305EA0200701920000 +B1252454518297N00551294EA0202001929000 +B1252484518302N00551278EA0203101939000 +B1252514518294N00551262EA0204401949000 +B1252544518279N00551266EA0205801959000 +B1252574518272N00551287EA0207201969000 +B1253004518276N00551309EA0207701980000 +B1253034518290N00551314EA0208601990000 +B1253064518301N00551300EA0209902000000 +B1253094518303N00551282EA0210802011000 +B1253124518291N00551268EA0212102021000 +B1253154518274N00551273EA0213002032000 +B1253194518270N00551300EA0213602045000 +B1253224518283N00551310EA0214902055000 +B1253254518294N00551307EA0215702066000 +B1253284518300N00551291EA0216502075000 +B1253314518293N00551273EA0217502085000 +B1253344518277N00551269EA0218502095000 +B1253374518265N00551282EA0218902104000 +B1253404518268N00551299EA0219502114000 +B1253434518279N00551306EA0220202122000 +B1253464518291N00551308EA0220802131000 +B1253494518306N00551309EA0221702140000 +B1253524518319N00551315EA0222702148000 +B1253554518333N00551322EA0223702157000 +B1253584518345N00551326EA0224302166000 +B1254014518360N00551322EA0225102174000 +B1254044518371N00551313EA0225702183000 +B1254074518382N00551298EA0226502191000 +B1254104518391N00551281EA0227802199000 +B1254134518400N00551265EA0229102208000 +B1254164518401N00551245EA0229902217000 +B1254194518397N00551224EA0230902226000 +B1254224518387N00551205EA0232402235000 +B1254254518371N00551201EA0233702244000 +B1254284518362N00551218EA0234702254000 +B1254314518368N00551236EA0236002264000 +B1254344518382N00551247EA0237402275000 +B1254374518394N00551253EA0238502285000 +B1254414518407N00551255EA0239002299000 +B1254444518419N00551257EA0239302309000 +B1254474518431N00551265EA0239302319000 +B1254504518446N00551274EA0239302327000 +B1254534518461N00551284EA0239602334000 +B1254564518476N00551294EA0239302341000 +B1254594518492N00551302EA0239402347000 +B1255024518507N00551309EA0239002353000 +B1255054518526N00551316EA0238802357000 +B1255084518546N00551318EA0239702361000 +B1255114518563N00551326EA0240302365000 +B1255144518582N00551337EA0241002370000 +B1255174518602N00551346EA0241702375000 +B1255204518620N00551358EA0242802380000 +B1255234518636N00551371EA0242902385000 +B1255264518654N00551386EA0242702390000 +B1255294518673N00551401EA0243802394000 +B1255324518689N00551414EA0244202399000 +B1255354518706N00551432EA0244602404000 +B1255384518720N00551449EA0243702408000 +B1255414518739N00551472EA0243902412000 +B1255444518756N00551495EA0244202415000 +B1255474518772N00551517EA0244002418000 +B1255504518788N00551542EA0244002420000 +B1255534518803N00551564EA0244202422000 +B1255564518816N00551582EA0243402424000 +B1255594518832N00551603EA0243302425000 +B1256024518850N00551621EA0243102426000 +B1256054518870N00551638EA0243802427000 +B1256094518898N00551655EA0245102428000 +B1256124518916N00551666EA0245802430000 +B1256154518935N00551684EA0246702433000 +B1256184518951N00551700EA0247402436000 +B1256214518967N00551718EA0247902439000 +B1256244518981N00551736EA0248402443000 +B1256274518992N00551757EA0248402447000 +B1256304519004N00551782EA0248502450000 +B1256334519014N00551808EA0248902454000 +B1256364519022N00551828EA0248902457000 +B1256394519034N00551847EA0248102460000 +B1256424519048N00551870EA0247502461000 +B1256454519066N00551890EA0247402462000 +B1256484519084N00551910EA0247002463000 +B1256514519106N00551927EA0246802462000 +B1256544519128N00551941EA0246702462000 +B1256574519149N00551954EA0246102462000 +B1257004519168N00551970EA0245402461000 +B1257034519189N00551986EA0245102460000 +B1257064519209N00552001EA0244902459000 +B1257094519228N00552018EA0244502457000 +B1257124519248N00552035EA0244302455000 +B1257154519268N00552052EA0244002454000 +B1257184519286N00552069EA0243402452000 +B1257214519306N00552086EA0242802449000 +B1257244519328N00552101EA0242602447000 +B1257274519347N00552114EA0242202444000 +B1257304519367N00552129EA0241802441000 +B1257344519394N00552151EA0241802437000 +B1257374519413N00552167EA0241002434000 +B1257404519434N00552184EA0240102431000 +B1257434519457N00552201EA0239302427000 +B1257464519479N00552218EA0238402423000 +B1257494519500N00552233EA0237002418000 +B1257524519522N00552248EA0235702412000 +B1257554519545N00552265EA0234702405000 +B1257584519568N00552283EA0234202398000 +B1258014519590N00552301EA0233802391000 +B1258044519612N00552317EA0234002385000 +B1258074519630N00552333EA0233702380000 +B1258104519649N00552349EA0233002374000 +B1258134519670N00552367EA0232802369000 +B1258164519690N00552383EA0231902364000 +B1258194519713N00552400EA0231702358000 +B1258224519736N00552413EA0232002353000 +B1258254519761N00552424EA0232402349000 +B1258284519784N00552436EA0233202345000 +B1258314519802N00552449EA0233302343000 +B1258344519823N00552462EA0233502341000 +B1258374519844N00552476EA0233602340000 +B1258404519861N00552489EA0233602339000 +B1258434519878N00552500EA0233302338000 +B1258464519899N00552513EA0234402338000 +B1258494519912N00552526EA0235002338000 +B1258524519923N00552538EA0235302338000 +B1258564519942N00552553EA0236502340000 +B1258594519955N00552565EA0237302342000 +B1259024519968N00552581EA0237802345000 +B1259054519982N00552595EA0238602348000 +B1259084519994N00552607EA0239402352000 +B1259114520007N00552618EA0239602356000 +B1259144520023N00552627EA0240202361000 +B1259174520038N00552637EA0240702365000 +B1259204520055N00552648EA0242202370000 +B1259234520068N00552657EA0241902376000 +B1259264520084N00552668EA0242302380000 +B1259294520097N00552682EA0242102385000 +B1259324520112N00552694EA0241602389000 +B1259354520128N00552704EA0241402392000 +B1259384520143N00552716EA0240502394000 +B1259414520159N00552729EA0240402395000 +B1259444520173N00552744EA0240002396000 +B1259474520188N00552761EA0240402397000 +B1259504520202N00552779EA0240902398000 +B1259534520218N00552796EA0241202399000 +B1259564520235N00552809EA0242202400000 +B1259594520250N00552821EA0242702402000 +B1300024520267N00552829EA0242702405000 +B1300054520283N00552839EA0242602407000 +B1300084520302N00552848EA0242702410000 +B1300114520320N00552857EA0242402412000 +B1300144520339N00552870EA0242302413000 +B1300174520356N00552883EA0241902415000 +B1300204520371N00552895EA0240402415000 +B1300234520392N00552903EA0239802415000 +B1300274520419N00552916EA0239302413000 +B1300304520438N00552931EA0239302411000 +B1300334520454N00552944EA0238902409000 +B1300364520472N00552961EA0238702407000 +B1300394520489N00552976EA0238302405000 +B1300424520507N00552992EA0237802402000 +B1300454520526N00553007EA0237602400000 +B1300484520545N00553022EA0237202397000 +B1300514520565N00553037EA0237202395000 +B1300544520583N00553049EA0236702392000 +B1300574520603N00553061EA0236602389000 +B1301004520623N00553074EA0236602387000 +B1301034520641N00553087EA0236502384000 +B1301064520657N00553101EA0236602382000 +B1301094520674N00553121EA0235102380000 +B1301124520696N00553143EA0235002377000 +B1301154520715N00553162EA0234202374000 +B1301184520736N00553181EA0233402370000 +B1301214520759N00553197EA0233202367000 +B1301244520780N00553211EA0232702363000 +B1301274520801N00553228EA0232102359000 +B1301304520825N00553242EA0231802355000 +B1301334520846N00553257EA0231202351000 +B1301364520869N00553273EA0230902347000 +B1301394520889N00553291EA0230702343000 +B1301424520907N00553307EA0230202338000 +B1301464520934N00553326EA0229702333000 +B1301494520953N00553340EA0229202329000 +B1301524520972N00553355EA0228602324000 +B1301554520992N00553373EA0228102320000 +B1301584521011N00553386EA0228102315000 +B1302014521028N00553397EA0227802311000 +B1302044521044N00553409EA0226902307000 +B1302074521063N00553425EA0226102302000 +B1302104521083N00553440EA0225602297000 +B1302134521103N00553456EA0225002292000 +B1302164521123N00553472EA0224602287000 +B1302194521143N00553486EA0224402282000 +B1302224521161N00553502EA0223702278000 +B1302254521177N00553520EA0223502273000 +B1302284521193N00553537EA0223002269000 +B1302314521213N00553551EA0223202265000 +B1302344521230N00553562EA0222902262000 +B1302374521248N00553574EA0222902259000 +B1302404521265N00553585EA0223202256000 +B1302434521282N00553594EA0223102253000 +B1302464521301N00553600EA0223102251000 +B1302494521321N00553605EA0223002249000 +B1302524521342N00553608EA0223402247000 +B1302554521362N00553611EA0223202245000 +B1302584521383N00553622EA0224602244000 +B1303014521402N00553627EA0226002245000 +B1303044521419N00553631EA0227002246000 +B1303084521443N00553647EA0229202250000 +B1303114521460N00553645EA0230602254000 +B1303144521476N00553648EA0231402259000 +B1303174521488N00553654EA0231902265000 +B1303204521501N00553662EA0232502270000 +B1303234521516N00553668EA0233902277000 +B1303264521528N00553673EA0234802284000 +B1303294521541N00553678EA0235002290000 +B1303324521559N00553685EA0235302297000 +B1303354521578N00553689EA0236102303000 +B1303384521597N00553694EA0236602309000 +B1303414521615N00553700EA0237402316000 +B1303444521633N00553707EA0237802322000 +B1303474521653N00553713EA0238602328000 +B1303504521671N00553719EA0239702335000 +B1303534521689N00553723EA0240302342000 +B1303564521706N00553729EA0240702348000 +B1303594521725N00553737EA0241102355000 +B1304024521745N00553746EA0242302361000 +B1304054521762N00553755EA0242702368000 +B1304084521779N00553763EA0242702374000 +B1304114521798N00553768EA0243302380000 +B1304144521819N00553773EA0243302385000 +B1304174521842N00553779EA0243602390000 +B1304204521863N00553785EA0243802395000 +B1304234521881N00553792EA0243302400000 +B1304264521901N00553798EA0243002403000 +B1304294521920N00553802EA0243302406000 +B1304324521939N00553804EA0243102409000 +B1304354521958N00553811EA0243202411000 +B1304384521977N00553818EA0243102413000 +B1304414521998N00553828EA0243202414000 +B1304444522018N00553838EA0243002416000 +B1304484522045N00553852EA0242902417000 +B1304514522066N00553864EA0242902418000 +B1304544522087N00553876EA0242702419000 +B1304574522108N00553888EA0242402420000 +B1305004522129N00553900EA0242002420000 +B1305034522151N00553911EA0241602419000 +B1305064522172N00553924EA0241802419000 +B1305094522191N00553935EA0241102418000 +B1305124522212N00553945EA0240602417000 +B1305154522232N00553951EA0239702415000 +B1305184522252N00553959EA0239202412000 +B1305214522270N00553969EA0237702409000 +B1305244522296N00553984EA0236602405000 +B1305274522324N00553997EA0236402400000 +B1305304522349N00554011EA0235702396000 +B1305334522374N00554026EA0235202391000 +B1305364522399N00554040EA0234602386000 +B1305394522425N00554053EA0234202381000 +B1305424522450N00554066EA0233602376000 +B1305454522475N00554078EA0232802370000 +B1305484522499N00554090EA0232402365000 +B1305514522524N00554101EA0231802360000 +B1305544522547N00554110EA0231002354000 +B1305574522572N00554118EA0230602348000 +B1306004522597N00554126EA0230202343000 +B1306034522621N00554135EA0229702337000 +B1306064522646N00554145EA0229202332000 +B1306104522679N00554160EA0228502324000 +B1306134522705N00554170EA0228002319000 +B1306164522730N00554180EA0227602313000 +B1306194522755N00554190EA0227002308000 +B1306224522780N00554201EA0226702303000 +B1306254522804N00554213EA0226202298000 +B1306284522828N00554225EA0225702292000 +B1306314522851N00554234EA0225202287000 +B1306344522874N00554243EA0224302282000 +B1306374522898N00554252EA0224002277000 +B1306404522920N00554263EA0223502271000 +B1306434522942N00554276EA0222802266000 +B1306464522963N00554288EA0222502261000 +B1306494522981N00554298EA0221702256000 +B1306524523000N00554306EA0220802250000 +B1306554523020N00554312EA0220902245000 +B1306584523038N00554320EA0220402240000 +B1307014523058N00554332EA0220302235000 +B1307044523077N00554341EA0220102231000 +B1307074523095N00554349EA0219302226000 +B1307104523114N00554356EA0219202222000 +B1307134523130N00554362EA0218402218000 +B1307164523147N00554369EA0217402213000 +B1307194523168N00554376EA0217402208000 +B1307224523187N00554383EA0217002203000 +B1307254523209N00554391EA0217002198000 +B1307294523234N00554401EA0217002193000 +B1307324523250N00554409EA0217202190000 +B1307354523265N00554414EA0217202187000 +B1307384523280N00554422EA0217002184000 +B1307414523295N00554427EA0217202182000 +B1307444523310N00554431EA0217302180000 +B1307474523324N00554436EA0216802179000 +B1307504523340N00554439EA0216302177000 +B1307534523357N00554443EA0216302174000 +B1307564523374N00554447EA0216602172000 +B1307594523389N00554450EA0216702171000 +B1308024523406N00554454EA0217102169000 +B1308054523421N00554457EA0217402168000 +B1308084523436N00554462EA0217702168000 +B1308114523448N00554468EA0218102168000 +B1308144523459N00554471EA0217902169000 +B1308174523470N00554476EA0217502169000 +B1308204523483N00554481EA0217602169000 +B1308234523496N00554486EA0217102169000 +B1308264523514N00554498EA0216902168000 +B1308294523531N00554510EA0217702168000 +B1308324523545N00554516EA0217702168000 +B1308354523562N00554524EA0217602168000 +B1308384523583N00554533EA0218102168000 +B1308414523599N00554542EA0218502169000 +B1308444523614N00554548EA0218002170000 +B1308484523640N00554565EA0217702171000 +B1308514523659N00554579EA0217702171000 +B1308544523678N00554593EA0217602171000 +B1308574523697N00554606EA0217902171000 +B1309004523716N00554619EA0217802172000 +B1309034523734N00554634EA0217602172000 +B1309064523753N00554650EA0217502172000 +B1309094523771N00554664EA0217902172000 +B1309124523785N00554676EA0217802172000 +B1309154523801N00554686EA0217902173000 +B1309184523817N00554694EA0217902173000 +B1309214523832N00554704EA0217402173000 +B1309244523848N00554716EA0217302173000 +B1309274523866N00554731EA0217102173000 +B1309304523884N00554747EA0217302173000 +B1309334523903N00554763EA0217402172000 +B1309364523922N00554779EA0217402172000 +B1309394523940N00554797EA0217202171000 +B1309424523957N00554816EA0217302171000 +B1309454523971N00554830EA0217302171000 +B1309484523985N00554842EA0216802170000 +B1309514524000N00554854EA0216902170000 +B1309544524015N00554864EA0217102169000 +B1309574524028N00554875EA0217302169000 +B1310004524043N00554888EA0217202169000 +B1310034524059N00554904EA0217502169000 +B1310064524076N00554919EA0217602169000 +B1310104524099N00554941EA0218502170000 +B1310134524109N00554954EA0218802171000 +B1310164524121N00554965EA0218502172000 +B1310194524135N00554972EA0218502173000 +B1310224524147N00554979EA0217902174000 +B1310254524163N00554992EA0217902174000 +B1310284524179N00555005EA0218002174000 +B1310314524196N00555020EA0218002174000 +B1310344524214N00555036EA0219102175000 +B1310374524229N00555050EA0219302176000 +B1310404524246N00555065EA0219802177000 +B1310434524262N00555077EA0220502179000 +B1310464524277N00555086EA0220702181000 +B1310494524292N00555096EA0221302184000 +B1310524524307N00555103EA0221802187000 +B1310554524324N00555104EA0222702190000 +B1310584524337N00555091EA0223402194000 +B1311014524341N00555068EA0223702198000 +B1311044524331N00555053EA0223702202000 +B1311074524321N00555064EA0223702205000 +B1311104524329N00555082EA0225002209000 +B1311134524339N00555089EA0225502213000 +B1311164524352N00555095EA0225902217000 +B1311194524369N00555099EA0226402221000 +B1311224524388N00555102EA0227102226000 +B1311254524405N00555103EA0227402230000 +B1311284524425N00555106EA0228102235000 +B1311314524445N00555108EA0229502239000 +B1311344524461N00555107EA0229802245000 +B1311374524475N00555106EA0230602250000 +B1311404524490N00555110EA0231502256000 +B1311434524504N00555113EA0232202262000 +B1311464524519N00555111EA0232402268000 +B1311504524537N00555112EA0232802275000 +B1311534524550N00555118EA0232702280000 +B1311564524565N00555123EA0232502285000 +B1311594524582N00555130EA0232502289000 +B1312024524597N00555135EA0232302292000 +B1312054524612N00555139EA0232402295000 +B1312084524626N00555145EA0232702298000 +B1312114524639N00555150EA0232702300000 +B1312144524651N00555159EA0233102303000 +B1312174524663N00555166EA0233102305000 +B1312204524674N00555175EA0233002308000 +B1312234524687N00555185EA0233102310000 +B1312264524700N00555193EA0233002312000 +B1312294524713N00555204EA0232102313000 +B1312324524730N00555223EA0231402314000 +B1312354524747N00555243EA0231302314000 +B1312384524763N00555259EA0230702313000 +B1312414524780N00555272EA0230302312000 +B1312444524798N00555287EA0230302311000 +B1312474524816N00555302EA0230002309000 +B1312504524834N00555321EA0230102307000 +B1312534524853N00555338EA0230102306000 +B1312564524874N00555353EA0230802304000 +B1312594524893N00555362EA0231802304000 +B1313024524905N00555368EA0231702305000 +B1313054524918N00555375EA0231302305000 +B1313084524932N00555380EA0231002306000 +B1313114524947N00555389EA0230602305000 +B1313144524963N00555397EA0230602304000 +B1313184524983N00555409EA0230002303000 +B1313214525000N00555416EA0229802302000 +B1313244525016N00555422EA0229302300000 +B1313274525033N00555428EA0229302299000 +B1313304525047N00555436EA0228602297000 +B1313334525064N00555448EA0228302295000 +B1313364525080N00555457EA0227902292000 +B1313394525096N00555467EA0227602290000 +B1313424525111N00555477EA0227302287000 +B1313454525126N00555488EA0226502285000 +B1313484525144N00555505EA0225602281000 +B1313514525161N00555525EA0225302277000 +B1313544525177N00555542EA0224702273000 +B1313574525193N00555562EA0224602270000 +B1314004525207N00555582EA0224102266000 +B1314034525223N00555603EA0224002263000 +B1314064525238N00555622EA0223402259000 +B1314094525254N00555642EA0222902255000 +B1314124525273N00555661EA0222702252000 +B1314154525290N00555677EA0221802248000 +B1314184525309N00555696EA0221102244000 +B1314214525328N00555720EA0221102240000 +B1314244525344N00555742EA0220602236000 +B1314274525362N00555764EA0220102231000 +B1314304525381N00555784EA0219702227000 +B1314344525409N00555806EA0219102221000 +B1314374525431N00555821EA0219002216000 +B1314404525448N00555835EA0219202213000 +B1314434525463N00555847EA0219102209000 +B1314464525479N00555859EA0218702206000 +B1314494525496N00555869EA0218302203000 +B1314524525513N00555877EA0218402200000 +B1314554525530N00555886EA0218102197000 +B1314584525547N00555893EA0218102194000 +B1315014525563N00555900EA0217902192000 +B1315044525582N00555907EA0217702189000 +B1315074525599N00555912EA0217402187000 +B1315104525617N00555917EA0217102184000 +B1315134525634N00555921EA0217302181000 +B1315164525650N00555928EA0216902179000 +B1315194525667N00555935EA0217002177000 +B1315224525682N00555942EA0216702175000 +B1315254525698N00555949EA0216602172000 +B1315284525714N00555956EA0216302172000 +B1315314525730N00555962EA0215902169000 +B1315344525746N00555968EA0215702167000 +B1315374525762N00555976EA0215302164000 +B1315404525779N00555983EA0215002162000 +B1315434525796N00555990EA0214702160000 +B1315464525813N00555997EA0214402158000 +B1315494525829N00556004EA0214002155000 +B1315524525845N00556011EA0213802152000 +B1315564525864N00556013EA0213402148000 +B1315594525879N00556010EA0213102145000 +B1316024525892N00556003EA0212802142000 +B1316054525906N00555992EA0212402139000 +B1316084525919N00555981EA0212202136000 +B1316114525931N00555969EA0212002133000 +B1316144525943N00555956EA0211702130000 +B1316174525954N00555941EA0211602128000 +B1316204525961N00555926EA0211502125000 +B1316234525969N00555909EA0211002123000 +B1316264525980N00555894EA0211102120000 +B1316294525991N00555882EA0210602118000 +B1316324526005N00555869EA0210102115000 +B1316354526019N00555856EA0209802113000 +B1316384526034N00555843EA0209002110000 +B1316414526050N00555832EA0208602107000 +B1316444526065N00555821EA0208002103000 +B1316474526081N00555809EA0207402100000 +B1316504526096N00555796EA0206702096000 +B1316534526112N00555782EA0206302092000 +B1316564526127N00555770EA0205702087000 +B1316594526144N00555758EA0205402083000 +B1317024526158N00555746EA0204902079000 +B1317054526171N00555732EA0204702074000 +B1317084526184N00555718EA0204602070000 +B1317124526198N00555702EA0204502066000 +B1317154526210N00555691EA0204102064000 +B1317184526221N00555680EA0203702061000 +B1317214526232N00555668EA0203202057000 +B1317244526243N00555656EA0202702053000 +B1317274526255N00555642EA0202002049000 +B1317304526268N00555628EA0201702044000 +B1317334526280N00555617EA0201402040000 +B1317364526292N00555606EA0201302035000 +B1317394526303N00555594EA0201002031000 +B1317424526315N00555583EA0200602027000 +B1317454526325N00555571EA0199902023000 +B1317484526337N00555557EA0199302019000 +B1317514526347N00555542EA0198902014000 +B1317544526358N00555528EA0197602009000 +B1317574526373N00555511EA0198102004000 +B1318004526380N00555503EA0197802001000 +B1318034526389N00555493EA0197001997000 +B1318064526399N00555480EA0197001992000 +B1318094526407N00555469EA0195701988000 +B1318124526420N00555456EA0195701982000 +B1318154526431N00555443EA0195001978000 +B1318184526447N00555428EA0194501973000 +B1318214526465N00555415EA0195001968000 +B1318244526480N00555407EA0195401965000 +B1318274526493N00555398EA0195801962000 +B1318304526506N00555388EA0196101960000 +B1318334526519N00555381EA0196801959000 +B1318374526535N00555378EA0197201959000 +B1318404526544N00555372EA0197401959000 +B1318434526549N00555358EA0197701960000 +B1318464526546N00555342EA0198301961000 +B1318494526533N00555332EA0198301962000 +B1318524526516N00555339EA0198401963000 +B1318554526507N00555361EA0198401964000 +B1318584526513N00555382EA0198501965000 +B1319014526526N00555387EA0199201966000 +B1319044526538N00555387EA0199701968000 +B1319074526547N00555379EA0199901970000 +B1319104526551N00555364EA0200401972000 +B1319134526548N00555345EA0200501975000 +B1319164526537N00555334EA0200501977000 +B1319194526521N00555337EA0200501978000 +B1319224526510N00555358EA0200501980000 +B1319254526511N00555384EA0200801981000 +B1319284526521N00555401EA0201101983000 +B1319314526536N00555405EA0201801985000 +B1319344526547N00555399EA0202101987000 +B1319374526558N00555388EA0202101989000 +B1319404526572N00555374EA0202201991000 +B1319434526587N00555364EA0202401993000 +B1319464526605N00555355EA0202901996000 +B1319494526623N00555348EA0203601998000 +B1319524526639N00555344EA0204202001000 +B1319554526654N00555339EA0204002005000 +B1319594526675N00555319EA0203102008000 +B1320024526693N00555300EA0203502009000 +B1320054526708N00555283EA0203302011000 +B1320084526725N00555266EA0203702013000 +B1320114526741N00555254EA0204802015000 +B1320144526750N00555246EA0205102018000 +B1320174526758N00555235EA0205502020000 +B1320204526768N00555227EA0205902023000 +B1320234526778N00555219EA0206302026000 +B1320264526783N00555207EA0206702030000 +B1320294526775N00555195EA0207202033000 +B1320324526760N00555196EA0207702036000 +B1320354526751N00555216EA0208102040000 +B1320384526754N00555240EA0208402043000 +B1320414526767N00555251EA0208902046000 +B1320444526778N00555245EA0209102050000 +B1320474526782N00555230EA0209802053000 +B1320504526776N00555217EA0210202056000 +B1320534526764N00555212EA0210502059000 +B1320564526749N00555217EA0211002062000 +B1320594526738N00555235EA0211402066000 +B1321024526735N00555260EA0211802070000 +B1321054526744N00555281EA0212002073000 +B1321084526759N00555287EA0212502078000 +B1321114526773N00555277EA0212202081000 +B1321144526793N00555264EA0212702085000 +B1321174526814N00555255EA0213902089000 +B1321204526828N00555247EA0214802094000 +B1321234526837N00555236EA0215402099000 +B1321264526838N00555218EA0216402105000 +B1321294526826N00555207EA0217102111000 +B1321334526807N00555219EA0218202119000 +B1321364526804N00555243EA0218902125000 +B1321394526812N00555266EA0219702131000 +B1321424526826N00555271EA0220602137000 +B1321454526834N00555262EA0221502144000 +B1321484526834N00555247EA0222402150000 +B1321514526823N00555234EA0223302157000 +B1321544526807N00555236EA0223802163000 +B1321574526796N00555253EA0224602170000 +B1322004526799N00555276EA0225202177000 +B1322034526809N00555294EA0226102183000 +B1322064526821N00555298EA0226902191000 +B1322094526831N00555289EA0227602198000 +B1322124526829N00555272EA0228202205000 +B1322154526817N00555260EA0229202212000 +B1322184526801N00555261EA0229702219000 +B1322214526789N00555277EA0230102226000 +B1322244526795N00555301EA0230902233000 +B1322274526809N00555313EA0231902240000 +B1322304526821N00555308EA0232202247000 +B1322334526828N00555292EA0233102255000 +B1322364526828N00555275EA0233702262000 +B1322394526818N00555261EA0234302270000 +B1322424526802N00555259EA0234902277000 +B1322454526785N00555270EA0235402283000 +B1322484526774N00555292EA0236202290000 +B1322514526771N00555314EA0236802297000 +B1322544526771N00555339EA0238002304000 +B1322574526774N00555360EA0238702311000 +B1323004526785N00555377EA0239502318000 +B1323034526799N00555379EA0240302325000 +B1323064526809N00555370EA0241002333000 +B1323104526823N00555356EA0241702343000 +B1323134526835N00555349EA0241802350000 +B1323164526852N00555345EA0242602357000 +B1323194526867N00555344EA0243802364000 +B1323224526882N00555343EA0244502371000 +B1323254526897N00555340EA0245002378000 +B1323284526912N00555338EA0245702385000 +B1323314526928N00555336EA0246502392000 +B1323344526943N00555335EA0246902399000 +B1323374526960N00555331EA0247102406000 +B1323404526976N00555331EA0247202412000 +B1323434526993N00555333EA0247502418000 +B1323464527010N00555335EA0247402423000 +B1323494527028N00555335EA0247302428000 +B1323524527044N00555332EA0246802432000 +B1323554527066N00555330EA0245702435000 +B1323584527092N00555329EA0245502437000 +B1324014527115N00555330EA0245402438000 +B1324044527137N00555335EA0245102440000 +B1324074527159N00555340EA0244802440000 +B1324104527181N00555347EA0244802441000 +B1324134527202N00555354EA0245102441000 +B1324164527219N00555360EA0244902441000 +B1324194527238N00555362EA0244902441000 +B1324224527257N00555365EA0245102441000 +B1324254527274N00555367EA0245002441000 +B1324284527292N00555370EA0245002441000 +B1324324527317N00555376EA0244902441000 +B1324354527335N00555378EA0245302441000 +B1324384527353N00555380EA0245202441000 +B1324414527372N00555384EA0245602441000 +B1324444527389N00555386EA0245802442000 +B1324474527407N00555386EA0246202443000 +B1324504527425N00555388EA0246502444000 +B1324534527443N00555391EA0246802446000 +B1324564527461N00555393EA0246702447000 +B1324594527481N00555395EA0246702449000 +B1325024527501N00555394EA0246702450000 +B1325054527521N00555393EA0246702451000 +B1325084527541N00555392EA0246702452000 +B1325114527560N00555391EA0246702453000 +B1325144527579N00555389EA0246702454000 +B1325174527598N00555389EA0246502454000 +B1325204527617N00555392EA0246502455000 +B1325234527636N00555394EA0246702456000 +B1325264527654N00555399EA0246602456000 +B1325294527673N00555406EA0246602457000 +B1325324527692N00555414EA0246502457000 +B1325354527711N00555418EA0246402458000 +B1325384527730N00555420EA0246302458000 +B1325414527750N00555422EA0245702458000 +B1325444527770N00555424EA0245602457000 +B1325474527789N00555427EA0245102456000 +B1325504527809N00555431EA0245002455000 +B1325534527828N00555436EA0244502454000 +B1325564527847N00555442EA0244002453000 +B1325594527867N00555448EA0243602452000 +B1326024527887N00555454EA0243102450000 +B1326064527913N00555466EA0242802446000 +B1326094527932N00555475EA0242402444000 +B1326124527951N00555485EA0241902441000 +B1326154527970N00555495EA0241502437000 +B1326184527988N00555508EA0241102433000 +B1326214528006N00555523EA0240602430000 +B1326244528024N00555539EA0240102426000 +B1326274528043N00555554EA0239702421000 +B1326304528061N00555570EA0239102417000 +B1326334528081N00555585EA0238602413000 +B1326364528100N00555600EA0238202408000 +B1326394528119N00555616EA0237702404000 +B1326424528139N00555634EA0237502400000 +B1326454528157N00555652EA0236902395000 +B1326484528176N00555672EA0236502391000 +B1326514528195N00555690EA0236102387000 +B1326544528213N00555710EA0235502383000 +B1326574528233N00555728EA0234702379000 +B1327004528252N00555746EA0234002374000 +B1327034528271N00555765EA0234002370000 +B1327064528290N00555782EA0233502365000 +B1327094528309N00555800EA0233102360000 +B1327124528329N00555821EA0232502356000 +B1327154528350N00555842EA0232202351000 +B1327184528373N00555860EA0231602346000 +B1327224528403N00555887EA0230902340000 +B1327254528424N00555907EA0230502335000 +B1327284528445N00555925EA0230002330000 +B1327314528465N00555941EA0229402325000 +B1327344528486N00555957EA0228802320000 +B1327374528507N00555972EA0228202314000 +B1327404528527N00555988EA0227802309000 +B1327434528546N00556005EA0227302304000 +B1327464528565N00556021EA0226902298000 +B1327494528584N00556034EA0226302293000 +B1327524528603N00556048EA0225402288000 +B1327554528623N00556062EA0224902286000 +B1327584528642N00556078EA0224702282000 +B1328014528661N00556097EA0224302278000 +B1328044528679N00556117EA0224102273000 +B1328074528697N00556137EA0223702269000 +B1328104528714N00556158EA0223402264000 +B1328134528732N00556179EA0223102260000 +B1328164528749N00556200EA0222802255000 +B1328194528767N00556219EA0222502251000 +B1328224528784N00556239EA0222202247000 +B1328254528801N00556260EA0221802243000 +B1328284528818N00556281EA0221702239000 +B1328314528835N00556303EA0221702236000 +B1328344528852N00556323EA0221702232000 +B1328374528870N00556339EA0221402229000 +B1328404528888N00556356EA0220902226000 +B1328444528912N00556382EA0220702222000 +B1328474528928N00556404EA0220302220000 +B1328504528944N00556425EA0219902217000 +B1328534528961N00556446EA0219402214000 +B1328564528979N00556465EA0219302211000 +B1328594528996N00556483EA0218802208000 +B1329024529013N00556502EA0218402204000 +B1329054529028N00556522EA0218102201000 +B1329084529044N00556542EA0217902198000 +B1329114529060N00556560EA0217802195000 +B1329144529076N00556577EA0217602192000 +B1329174529093N00556593EA0217202188000 +B1329204529110N00556607EA0216702185000 +B1329234529129N00556621EA0216302182000 +B1329264529146N00556635EA0215802178000 +B1329294529163N00556651EA0215202174000 +B1329324529179N00556668EA0214802171000 +B1329354529194N00556687EA0214302167000 +B1329384529209N00556706EA0213702165000 +B1329414529223N00556727EA0213102161000 +B1329444529237N00556746EA0212702157000 +B1329474529251N00556764EA0212002155000 +B1329504529265N00556784EA0211602151000 +B1329534529282N00556802EA0210702147000 +B1329564529301N00556824EA0210602146000 +B1329594529315N00556845EA0210102142000 +B1330034529334N00556877EA0209302138000 +B1330064529349N00556900EA0209002134000 +B1330094529366N00556919EA0208402129000 +B1330124529383N00556938EA0208302124000 +B1330154529400N00556953EA0207602119000 +B1330184529419N00556971EA0207402114000 +B1330214529436N00556989EA0207002109000 +B1330244529453N00557007EA0206602104000 +B1330274529470N00557026EA0206402099000 +B1330304529486N00557046EA0205902094000 +B1330334529503N00557067EA0205502089000 +B1330364529520N00557088EA0205102084000 +B1330394529537N00557108EA0204702080000 +B1330424529554N00557130EA0204502075000 +B1330454529571N00557153EA0204102070000 +B1330484529587N00557176EA0204002066000 +B1330514529604N00557198EA0203902062000 +B1330544529620N00557220EA0203402058000 +B1330574529637N00557243EA0203302054000 +B1331004529654N00557264EA0203002051000 +B1331034529670N00557285EA0202802047000 +B1331064529686N00557306EA0202502044000 +B1331094529702N00557328EA0202102041000 +B1331124529718N00557350EA0201902038000 +B1331154529734N00557371EA0201602034000 +B1331194529755N00557400EA0201202030000 +B1331224529771N00557421EA0200902027000 +B1331254529787N00557442EA0200702024000 +B1331284529802N00557463EA0200502021000 +B1331314529817N00557484EA0200202018000 +B1331344529832N00557504EA0199902015000 +B1331374529847N00557523EA0199402012000 +B1331404529863N00557543EA0199202009000 +B1331434529877N00557563EA0198802006000 +B1331464529892N00557583EA0198302003000 +B1331494529908N00557603EA0197902000000 +B1331524529924N00557621EA0197401996000 +B1331554529940N00557641EA0197201993000 +B1331584529956N00557659EA0196701989000 +B1332014529973N00557679EA0196501986000 +B1332044529989N00557698EA0196201982000 +B1332074530004N00557718EA0195801979000 +B1332104530019N00557738EA0195501975000 +B1332134530034N00557757EA0195101972000 +B1332164530051N00557777EA0194801968000 +B1332194530067N00557795EA0194501965000 +B1332224530084N00557813EA0193901962000 +B1332254530100N00557833EA0193601958000 +B1332284530116N00557852EA0193001954000 +B1332314530131N00557873EA0192801950000 +B1332344530145N00557894EA0192501947000 +B1332384530166N00557923EA0192301942000 +B1332414530180N00557944EA0192001938000 +B1332444530194N00557964EA0191801935000 +B1332474530209N00557983EA0191501932000 +B1332504530224N00558002EA0191201928000 +B1332534530240N00558021EA0190901925000 +B1332564530255N00558040EA0190401922000 +B1332594530270N00558060EA0190001919000 +B1333024530285N00558080EA0189701915000 +B1333054530300N00558100EA0189101911000 +B1333084530315N00558121EA0188901908000 +B1333114530331N00558141EA0188701904000 +B1333144530345N00558161EA0188601901000 +B1333174530360N00558181EA0188301898000 +B1333204530374N00558201EA0188001895000 +B1333234530389N00558221EA0187701891000 +B1333264530404N00558240EA0187401888000 +B1333294530419N00558260EA0187101885000 +B1333324530434N00558280EA0186901883000 +B1333354530448N00558300EA0186501880000 +B1333384530463N00558320EA0186101877000 +B1333414530478N00558340EA0185801874000 +B1333444530492N00558361EA0185401871000 +B1333474530506N00558381EA0185001867000 +B1333504530520N00558402EA0184601864000 +B1333534530534N00558422EA0184301861000 +B1333574530553N00558450EA0183901856000 +B1334004530567N00558470EA0183601852000 +B1334034530582N00558490EA0183001848000 +B1334064530596N00558509EA0182601844000 +B1334094530611N00558529EA0182401840000 +B1334124530625N00558549EA0182001836000 +B1334154530639N00558569EA0181701833000 +B1334184530654N00558590EA0181301829000 +B1334214530668N00558610EA0181001825000 +B1334244530682N00558630EA0180501822000 +B1334274530697N00558650EA0180401818000 +B1334304530712N00558670EA0179901814000 +B1334334530726N00558690EA0179701811000 +B1334364530741N00558710EA0179301807000 +B1334394530755N00558730EA0179001804000 +B1334424530770N00558750EA0178701800000 +B1334454530785N00558768EA0178501797000 +B1334484530800N00558787EA0178201794000 +B1334514530815N00558805EA0177801791000 +B1334544530830N00558823EA0177501787000 +B1334574530845N00558841EA0177301784000 +B1335004530859N00558858EA0177001781000 +B1335034530874N00558876EA0176701778000 +B1335064530888N00558893EA0176401775000 +B1335094530902N00558911EA0176101771000 +B1335124530917N00558928EA0175601768000 +B1335164530936N00558951EA0175201763000 +B1335194530951N00558968EA0175001760000 +B1335224530965N00558985EA0174501757000 +B1335254530979N00559002EA0174001753000 +B1335284530993N00559019EA0173501749000 +B1335314531007N00559038EA0173301746000 +B1335344531021N00559057EA0173001742000 +B1335374531034N00559076EA0172701739000 +B1335404531048N00559096EA0172501735000 +B1335434531061N00559115EA0172301732000 +B1335464531074N00559135EA0171801728000 +B1335494531087N00559156EA0171601725000 +B1335524531100N00559176EA0171201722000 +B1335554531113N00559196EA0171101719000 +B1335584531127N00559216EA0170701716000 +B1336014531141N00559236EA0170501713000 +B1336044531155N00559255EA0170101710000 +B1336074531169N00559274EA0169701707000 +B1336104531183N00559293EA0169501704000 +B1336134531198N00559312EA0169101701000 +B1336164531212N00559330EA0168801698000 +B1336194531227N00559348EA0168401695000 +B1336224531242N00559366EA0167901692000 +B1336254531257N00559384EA0167601689000 +B1336284531272N00559402EA0167201685000 +B1336324531292N00559425EA0166801681000 +B1336354531306N00559443EA0166301677000 +B1336384531321N00559462EA0165801673000 +B1336414531335N00559479EA0165301669000 +B1336444531349N00559497EA0164801666000 +B1336474531364N00559515EA0164401662000 +B1336504531378N00559533EA0163801658000 +B1336534531393N00559551EA0163301653000 +B1336564531407N00559569EA0162801649000 +B1336594531421N00559587EA0162401645000 +B1337024531434N00559605EA0161901641000 +B1337054531448N00559624EA0161501637000 +B1337084531461N00559643EA0161101632000 +B1337114531474N00559662EA0160701628000 +B1337144531487N00559681EA0160301624000 +B1337174531500N00559700EA0159801620000 +B1337204531512N00559718EA0159201616000 +B1337234531526N00559737EA0158801612000 +B1337264531539N00559755EA0158401607000 +B1337294531552N00559774EA0158001603000 +B1337324531564N00559793EA0157601599000 +B1337354531576N00559811EA0157301595000 +B1337384531588N00559830EA0156901590000 +B1337414531600N00559849EA0156601586000 +B1337444531611N00559867EA0156301582000 +B1337484531627N00559893EA0156001577000 +B1337514531639N00559913EA0155801573000 +B1337544531651N00559933EA0155501569000 +B1337574531662N00559953EA0155301566000 +B1338004531674N00559973EA0155001562000 +B1338034531685N00559993EA0154701559000 +B1338064531696N00600014EA0154401555000 +B1338094531708N00600036EA0154101552000 +B1338124531719N00600058EA0153901549000 +B1338154531729N00600080EA0153601546000 +B1338184531739N00600104EA0153301543000 +B1338214531748N00600128EA0153001540000 +B1338244531757N00600152EA0152801537000 +B1338274531765N00600174EA0152701534000 +B1338304531774N00600197EA0152501531000 +B1338334531782N00600220EA0152401529000 +B1338364531790N00600243EA0152201526000 +B1338394531799N00600266EA0152101524000 +B1338424531807N00600290EA0151901521000 +B1338454531815N00600314EA0151701519000 +B1338484531823N00600339EA0151501517000 +B1338514531832N00600364EA0151301514000 +B1338544531841N00600389EA0150901512000 +B1338574531849N00600414EA0150501510000 +B1339004531858N00600439EA0150001507000 +B1339044531869N00600473EA0149601503000 +B1339074531876N00600496EA0149301500000 +B1339104531885N00600519EA0148801497000 +B1339134531893N00600542EA0148601494000 +B1339164531901N00600564EA0148201491000 +B1339194531909N00600588EA0148001488000 +B1339224531918N00600611EA0147601484000 +B1339254531927N00600634EA0147401481000 +B1339284531935N00600655EA0147201478000 +B1339314531941N00600677EA0146701475000 +B1339344531948N00600696EA0146101472000 +B1339374531955N00600718EA0145501468000 +B1339404531964N00600738EA0145101465000 +B1339434531975N00600756EA0144501461000 +B1339464531986N00600776EA0144101457000 +B1339494531995N00600797EA0143801453000 +B1339524532005N00600819EA0143401449000 +B1339554532015N00600839EA0143301446000 +B1339584532025N00600856EA0142701442000 +B1340014532035N00600873EA0142001438000 +B1340044532046N00600892EA0141401434000 +B1340074532055N00600912EA0141101430000 +B1340104532066N00600931EA0140701426000 +B1340134532076N00600951EA0140301422000 +B1340164532085N00600970EA0139701418000 +B1340194532096N00600991EA0139401413000 +B1340234532109N00601019EA0138901408000 +B1340264532120N00601041EA0139001404000 +B1340294532128N00601061EA0138801400000 +B1340324532138N00601081EA0138501396000 +B1340354532146N00601101EA0138401393000 +B1340384532153N00601127EA0138101390000 +B1340414532159N00601152EA0138301387000 +B1340444532162N00601175EA0137801385000 +B1340474532168N00601201EA0137401382000 +B1340504532175N00601223EA0137101380000 +B1340534532183N00601243EA0136601377000 +B1340564532190N00601265EA0136101374000 +B1340594532198N00601291EA0135801370000 +B1341024532206N00601314EA0135601367000 +B1341054532217N00601335EA0135801364000 +B1341084532229N00601353EA0136101362000 +B1341114532240N00601369EA0136601360000 +B1341144532251N00601385EA0137201359000 +B1341174532263N00601398EA0137401359000 +B1341204532274N00601405EA0136801359000 +B1341234532288N00601413EA0135801358000 +B1341264532302N00601428EA0135501356000 +B1341294532314N00601447EA0135401354000 +B1341324532325N00601465EA0135201353000 +B1341354532339N00601485EA0135401351000 +B1341384532352N00601504EA0135901350000 +B1341414532366N00601518EA0136401349000 +B1341444532379N00601525EA0136901349000 +B1341484532394N00601521EA0137401350000 +B1341514532398N00601511EA0137901350000 +B1341544532396N00601502EA0138401351000 +B1341574532387N00601497EA0139001352000 +B1342004532374N00601507EA0139501354000 +B1342034532367N00601534EA0139601356000 +B1342064532373N00601564EA0139901359000 +B1342094532387N00601578EA0140301361000 +B1342124532398N00601580EA0140601364000 +B1342154532409N00601575EA0140701367000 +B1342184532414N00601565EA0141101368000 +B1342214532415N00601555EA0141601370000 +B1342244532416N00601545EA0141601372000 +B1342274532409N00601536EA0142201375000 +B1342304532396N00601538EA0142501378000 +B1342334532384N00601553EA0142701382000 +B1342364532377N00601583EA0142701385000 +B1342394532383N00601613EA0142901387000 +B1342424532396N00601628EA0143101390000 +B1342454532407N00601628EA0143401393000 +B1342484532414N00601619EA0143601394000 +B1342514532419N00601607EA0144001396000 +B1342544532424N00601597EA0144101398000 +B1342574532426N00601586EA0144501399000 +B1343004532422N00601577EA0144901401000 +B1343034532409N00601578EA0145401405000 +B1343064532397N00601594EA0145801408000 +B1343104532395N00601635EA0145701413000 +B1343134532407N00601659EA0145901416000 +B1343164532421N00601663EA0146401420000 +B1343194532429N00601656EA0146501423000 +B1343224532435N00601646EA0146801425000 +B1343254532439N00601634EA0146601427000 +B1343284532440N00601621EA0147101430000 +B1343314532444N00601611EA0147401432000 +B1343344532445N00601597EA0147201435000 +B1343374532441N00601586EA0147201437000 +B1343404532432N00601583EA0146801438000 +B1343434532418N00601597EA0147001441000 +B1343464532413N00601626EA0147001443000 +B1343494532421N00601657EA0147201445000 +B1343524532436N00601671EA0147601447000 +B1343554532445N00601666EA0147601449000 +B1343584532442N00601655EA0147701451000 +B1344014532434N00601650EA0147901452000 +B1344044532428N00601644EA0147901453000 +B1344074532424N00601635EA0148601454000 +B1344104532427N00601626EA0148801456000 +B1344134532441N00601619EA0149201458000 +B1344164532456N00601629EA0149001460000 +B1344194532467N00601652EA0148501462000 +B1344224532464N00601680EA0147801463000 +B1344254532449N00601694EA0148101463000 +B1344284532436N00601704EA0148501464000 +B1344314532422N00601708EA0149201465000 +B1344344532413N00601707EA0149501465000 +B1344384532407N00601698EA0150001466000 +B1344414532409N00601687EA0150601467000 +B1344444532419N00601678EA0150301470000 +B1344474532435N00601678EA0150401472000 +B1344504532452N00601686EA0150401474000 +B1344534532467N00601703EA0150201476000 +B1344564532481N00601723EA0149601478000 +B1344594532494N00601750EA0149201478000 +B1345024532507N00601781EA0148801479000 +B1345054532520N00601812EA0149601479000 +B1345084532528N00601832EA0149501479000 +B1345114532538N00601852EA0148601479000 +B1345144532553N00601871EA0148801479000 +B1345174532565N00601884EA0148101478000 +B1345204532579N00601900EA0147401477000 +B1345234532596N00601924EA0147801475000 +B1345264532606N00601948EA0148701475000 +B1345294532610N00601965EA0147901474000 +B1345324532618N00601989EA0147601473000 +B1345354532627N00602020EA0147601472000 +B1345384532633N00602051EA0147801471000 +B1345414532646N00602076EA0146601469000 +B1345444532662N00602104EA0146801467000 +B1345474532673N00602128EA0146301466000 +B1345504532684N00602149EA0145301464000 +B1345534532695N00602172EA0144401461000 +B1345574532705N00602204EA0143401456000 +B1346004532717N00602232EA0141901451000 +B1346034532732N00602257EA0141501446000 +B1346064532744N00602280EA0140401440000 +B1346094532758N00602307EA0139501434000 +B1346124532770N00602333EA0138801428000 +B1346154532781N00602361EA0137701422000 +B1346184532792N00602392EA0136901416000 +B1346214532802N00602422EA0136301409000 +B1346244532810N00602452EA0135501402000 +B1346274532819N00602483EA0134901395000 +B1346304532827N00602512EA0135601389000 +B1346334532833N00602535EA0135401384000 +B1346364532843N00602560EA0134801379000 +B1346394532853N00602588EA0135101374000 +B1346424532860N00602615EA0135001369000 +B1346454532867N00602643EA0134401365000 +B1346484532873N00602670EA0134301360000 +B1346514532877N00602694EA0133301356000 +B1346544532884N00602723EA0132701351000 +B1346574532890N00602753EA0132501347000 +B1347004532894N00602782EA0132201342000 +B1347034532897N00602812EA0131601338000 +B1347064532902N00602842EA0131501333000 +B1347094532905N00602870EA0131401329000 +B1347124532905N00602897EA0131201325000 +B1347164532903N00602929EA0131101320000 +B1347194532901N00602953EA0130601316000 +B1347224532901N00602976EA0130501313000 +B1347254532903N00602998EA0130001310000 +B1347284532906N00603019EA0130101306000 +B1347314532911N00603038EA0129501303000 +B1347344532918N00603057EA0129601300000 +B1347374532927N00603071EA0129201297000 +B1347404532937N00603085EA0128901295000 +B1347434532949N00603095EA0128801292000 +B1347464532963N00603105EA0128701289000 +B1347494532976N00603114EA0129601287000 +B1347524532985N00603124EA0129301286000 +B1347554532995N00603134EA0129501284000 +B1347584533005N00603140EA0130301283000 +B1348014533015N00603141EA0130501283000 +B1348044533026N00603139EA0131101284000 +B1348074533035N00603135EA0131301284000 +B1348104533045N00603129EA0131701286000 +B1348134533054N00603129EA0131801287000 +B1348164533065N00603126EA0131401288000 +B1348194533077N00603124EA0131201289000 +B1348224533087N00603122EA0130601289000 +B1348254533100N00603122EA0131001289000 +B1348284533113N00603123EA0131501290000 +B1348314533124N00603120EA0131501291000 +B1348354533135N00603110EA0132001292000 +B1348384533140N00603106EA0132301293000 +B1348414533147N00603102EA0132401294000 +B1348444533155N00603100EA0133301295000 +B1348474533162N00603101EA0133401297000 +B1348504533172N00603097EA0134501299000 +B1348534533178N00603092EA0135201301000 +B1348564533184N00603083EA0135301303000 +B1348594533192N00603077EA0135901307000 +B1349024533201N00603079EA0136401311000 +B1349054533212N00603080EA0136901316000 +B1349084533220N00603072EA0137101320000 +B1349114533218N00603060EA0136901324000 +B1349144533203N00603060EA0137001328000 +B1349174533192N00603080EA0137001331000 +B1349204533196N00603105EA0137401333000 +B1349234533204N00603119EA0137601336000 +B1349264533214N00603126EA0137801339000 +B1349294533225N00603126EA0137701341000 +B1349324533237N00603124EA0137501343000 +B1349354533251N00603124EA0137401345000 +B1349384533265N00603120EA0137901347000 +B1349414533278N00603116EA0138501349000 +B1349444533288N00603106EA0139201352000 +B1349474533289N00603091EA0139701355000 +B1349504533277N00603080EA0140301358000 +B1349534533261N00603086EA0140901361000 +B1349564533254N00603109EA0141501365000 +B1349594533263N00603123EA0141901368000 +B1350024533274N00603114EA0142501372000 +B1350064533266N00603092EA0143501377000 +B1350094533250N00603090EA0144201382000 +B1350124533239N00603107EA0145201387000 +B1350154533239N00603129EA0145801392000 +B1350184533247N00603145EA0146201398000 +B1350214533260N00603144EA0146701403000 +B1350244533265N00603127EA0147401409000 +B1350274533253N00603112EA0148401415000 +B1350304533237N00603113EA0149101420000 +B1350334533222N00603130EA0150101426000 +B1350364533219N00603152EA0150501432000 +B1350394533231N00603167EA0151101438000 +B1350424533242N00603162EA0152101445000 +B1350454533245N00603148EA0152701451000 +B1350484533236N00603132EA0153801458000 +B1350514533221N00603125EA0154601465000 +B1350544533202N00603126EA0155501472000 +B1350574533188N00603142EA0156001480000 +B1351004533189N00603161EA0155901487000 +B1351034533200N00603174EA0157201494000 +B1351064533209N00603176EA0158201500000 +B1351094533214N00603164EA0159101508000 +B1351124533207N00603151EA0159501516000 +B1351154533189N00603149EA0160701525000 +B1351184533175N00603164EA0161401533000 +B1351214533170N00603185EA0161601541000 +B1351244533176N00603205EA0161701548000 +B1351274533189N00603212EA0162701555000 +B1351304533198N00603208EA0163801561000 +B1351334533205N00603200EA0164501566000 +B1351364533199N00603185EA0165101574000 +B1351404533177N00603195EA0165801584000 +B1351434533167N00603215EA0167101591000 +B1351464533167N00603230EA0167601599000 +B1351494533175N00603242EA0168401606000 +B1351524533184N00603243EA0169001612000 +B1351554533189N00603230EA0169901620000 +B1351584533183N00603216EA0170701628000 +B1352014533168N00603214EA0171001636000 +B1352044533152N00603229EA0171901643000 +B1352074533144N00603249EA0172901650000 +B1352104533145N00603267EA0173401658000 +B1352134533153N00603279EA0174201666000 +B1352164533165N00603281EA0175101674000 +B1352194533174N00603271EA0175701682000 +B1352224533170N00603254EA0176301689000 +B1352254533155N00603251EA0176701697000 +B1352284533142N00603269EA0177401703000 +B1352314533142N00603293EA0178501710000 +B1352344533149N00603313EA0180001717000 +B1352374533160N00603321EA0180801725000 +B1352404533168N00603309EA0181701733000 +B1352434533161N00603295EA0182201741000 +B1352464533146N00603292EA0182701749000 +B1352494533132N00603307EA0183401757000 +B1352524533126N00603330EA0184601764000 +B1352554533131N00603350EA0185201772000 +B1352584533144N00603350EA0186101780000 +B1353014533151N00603337EA0187101788000 +B1353044533147N00603321EA0187501796000 +B1353074533133N00603314EA0188001803000 +B1353104533119N00603326EA0188701810000 +B1353134533112N00603347EA0189401817000 +B1353164533112N00603369EA0190001824000 +B1353204533123N00603388EA0190201834000 +B1353234533134N00603388EA0190501840000 +B1353264533141N00603372EA0190901846000 +B1353294533140N00603353EA0191601853000 +B1353324533134N00603335EA0192101859000 +B1353354533119N00603326EA0192301865000 +B1353384533106N00603336EA0192501870000 +B1353414533098N00603358EA0193201875000 +B1353444533095N00603378EA0194001881000 +B1353474533101N00603390EA0193701886000 +B1353504533112N00603395EA0193701891000 +B1353534533122N00603383EA0193801895000 +B1353564533124N00603363EA0193601899000 +B1353594533120N00603342EA0193701902000 +B1354024533106N00603327EA0193901905000 +B1354054533090N00603323EA0193701908000 +B1354084533071N00603335EA0193701910000 +B1354114533065N00603359EA0193801911000 +B1354144533073N00603376EA0194201913000 +B1354174533082N00603387EA0193801915000 +B1354204533095N00603402EA0193701916000 +B1354234533105N00603418EA0194001918000 +B1354264533114N00603430EA0193601919000 +B1354294533127N00603439EA0193501920000 +B1354324533142N00603448EA0193001920000 +B1354354533158N00603459EA0192801920000 +B1354384533175N00603470EA0192301919000 +B1354414533191N00603483EA0192301918000 +B1354454533211N00603501EA0192201917000 +B1354484533228N00603516EA0192001916000 +B1354514533245N00603530EA0191801915000 +B1354544533262N00603542EA0191601914000 +B1354574533280N00603553EA0191201913000 +B1355004533298N00603564EA0191001912000 +B1355034533316N00603576EA0190501910000 +B1355064533336N00603588EA0190101908000 +B1355094533355N00603600EA0189901906000 +B1355124533372N00603612EA0189401904000 +B1355154533392N00603623EA0189101901000 +B1355184533412N00603635EA0188901899000 +B1355214533431N00603649EA0188901896000 +B1355244533447N00603663EA0189101894000 +B1355274533462N00603674EA0188601892000 +B1355304533480N00603682EA0187901890000 +B1355334533499N00603691EA0187301887000 +B1355364533517N00603701EA0186501884000 +B1355394533533N00603714EA0186501880000 +B1355424533548N00603729EA0186201877000 +B1355454533566N00603746EA0186401874000 +B1355484533585N00603759EA0186701871000 +B1355514533599N00603771EA0186301869000 +B1355544533617N00603780EA0185801866000 +B1355574533635N00603791EA0185801864000 +B1356004533654N00603801EA0185901862000 +B1356044533674N00603807EA0186401859000 +B1356074533680N00603806EA0186201859000 +B1356104533689N00603806EA0185501857000 +B1356134533701N00603813EA0185501856000 +B1356164533712N00603820EA0184101854000 +B1356194533731N00603833EA0183701851000 +B1356224533749N00603845EA0183601849000 +B1356254533768N00603858EA0182601846000 +B1356284533791N00603874EA0183001843000 +B1356314533807N00603888EA0183101840000 +B1356344533825N00603903EA0182201837000 +B1356374533842N00603920EA0182401835000 +B1356404533856N00603933EA0181601832000 +B1356434533874N00603949EA0181501829000 +B1356464533887N00603963EA0181001826000 +B1356494533903N00603976EA0180301823000 +B1356524533921N00603985EA0180501819000 +B1356554533936N00603993EA0180301816000 +B1356584533954N00604000EA0181301814000 +B1357014533968N00604001EA0182501813000 +B1357044533980N00603999EA0183001812000 +B1357074533993N00604012EA0183501813000 +B1357104533991N00604043EA0184401815000 +B1357144533977N00604058EA0184701817000 +B1357174533960N00604057EA0185201819000 +B1357204533955N00604041EA0186501822000 +B1357234533959N00604030EA0187201824000 +B1357264533972N00604026EA0188001829000 +B1357294533981N00604042EA0188801833000 +B1357324533971N00604059EA0189601838000 +B1357354533956N00604063EA0190701843000 +B1357384533944N00604057EA0191501849000 +B1357414533939N00604043EA0191901855000 +B1357444533944N00604030EA0191801861000 +B1357474533958N00604027EA0191901866000 +B1357504533975N00604034EA0192601871000 +B1357534533990N00604047EA0193701876000 +B1357564534003N00604064EA0194301882000 +B1357594534011N00604087EA0194501888000 +B1358024534005N00604110EA0194201893000 +B1358054533988N00604115EA0193901897000 +B1358084533978N00604102EA0194101900000 +B1358114533980N00604086EA0194701904000 +B1358154533987N00604063EA0195401908000 +B1358184533993N00604048EA0195801912000 +B1358214533999N00604037EA0195401916000 +B1358244534013N00604031EA0194901918000 +B1358274534028N00604037EA0195401921000 +B1358304534040N00604045EA0195101923000 +B1358334534055N00604056EA0195101925000 +B1358364534067N00604067EA0195801927000 +B1358394534078N00604075EA0195901930000 +B1358424534090N00604084EA0197101933000 +B1358454534100N00604089EA0197401936000 +B1358484534112N00604094EA0197501940000 +B1358514534124N00604098EA0197001943000 +B1358544534138N00604099EA0195901944000 +B1358574534154N00604102EA0194901945000 +B1359004534173N00604106EA0194401944000 +B1359034534190N00604115EA0193701943000 +B1359064534209N00604125EA0192101941000 +B1359094534233N00604140EA0191901937000 +B1359124534254N00604154EA0191201934000 +B1359154534278N00604169EA0190701930000 +B1359184534299N00604182EA0190501926000 +B1359214534319N00604196EA0189101922000 +B1359244534342N00604212EA0188101917000 +B1359274534363N00604228EA0187601912000 +B1359304534383N00604240EA0186701906000 +B1359344534414N00604254EA0185901898000 +B1359374534438N00604264EA0185101892000 +B1359404534461N00604277EA0184701885000 +B1359434534483N00604287EA0183801879000 +B1359464534505N00604297EA0183001873000 +B1359494534529N00604306EA0182501866000 +B1359524534551N00604315EA0182001860000 +B1359554534573N00604325EA0181401854000 +B1359584534595N00604335EA0180701848000 +B1400014534616N00604346EA0179801841000 +B1400044534638N00604357EA0179001834000 +B1400074534661N00604369EA0178201828000 +B1400104534684N00604381EA0177301821000 +B1400134534707N00604392EA0176701814000 +B1400164534730N00604403EA0175901807000 +B1400194534753N00604415EA0175301800000 +B1400224534777N00604426EA0174701793000 +B1400254534800N00604436EA0174201786000 +B1400284534824N00604446EA0173901780000 +B1400314534846N00604453EA0173101773000 +B1400344534869N00604461EA0172501767000 +B1400374534891N00604470EA0171801760000 +B1400404534913N00604479EA0171501754000 +B1400434534935N00604488EA0171101748000 +B1400464534957N00604492EA0170601742000 +B1400504534988N00604498EA0170101734000 +B1400534535011N00604504EA0170601729000 +B1400564535029N00604511EA0171301725000 +B1400594535044N00604519EA0171801723000 +B1401024535058N00604526EA0171801721000 +B1401054535073N00604527EA0171601719000 +B1401084535090N00604528EA0171601717000 +B1401114535105N00604529EA0171601716000 +B1401144535121N00604531EA0171701715000 +B1401174535139N00604532EA0171401714000 +B1401204535162N00604534EA0172001713000 +B1401234535181N00604543EA0172901713000 +B1401264535197N00604548EA0173301713000 +B1401294535214N00604551EA0173801714000 +B1401324535229N00604554EA0173801715000 +B1401354535244N00604551EA0173301716000 +B1401384535262N00604549EA0173101717000 +B1401414535282N00604556EA0173801717000 +B1401444535298N00604565EA0173801718000 +B1401474535316N00604576EA0173601718000 +B1401504535333N00604584EA0173701719000 +B1401534535350N00604591EA0173301719000 +B1401564535369N00604598EA0173401719000 +B1401594535387N00604603EA0173301720000 +B1402024535406N00604611EA0173601720000 +B1402054535422N00604618EA0173601721000 +B1402084535439N00604627EA0173701721000 +B1402124535462N00604634EA0173801722000 +B1402154535482N00604639EA0175001723000 +B1402184535498N00604642EA0176001725000 +B1402214535516N00604644EA0176701728000 +B1402244535535N00604650EA0178101732000 +B1402274535548N00604667EA0178901736000 +B1402304535549N00604693EA0179901741000 +B1402334535539N00604703EA0181201746000 +B1402364535532N00604700EA0182301749000 +B1402394535533N00604684EA0183401756000 +B1402424535547N00604676EA0184501764000 +B1402454535563N00604688EA0185301772000 +B1402484535567N00604713EA0186601780000 +B1402514535559N00604726EA0187501789000 +B1402544535552N00604719EA0188801795000 +B1402574535556N00604705EA0189601804000 +B1403004535572N00604701EA0190701814000 +B1403034535587N00604717EA0192201824000 +B1403064535595N00604737EA0193101834000 +B1403094535587N00604760EA0194101844000 +B1403124535576N00604760EA0195901853000 +B1403154535577N00604747EA0197101860000 +B1403184535588N00604738EA0198201872000 +B1403214535601N00604747EA0199401883000 +B1403244535602N00604772EA0200301894000 +B1403274535594N00604797EA0201401906000 +B1403304535579N00604803EA0202901917000 +B1403334535576N00604792EA0204201925000 +B1403364535584N00604779EA0205201938000 +B1403394535602N00604777EA0206501951000 +B1403424535614N00604796EA0207701964000 +B1403454535611N00604819EA0208401976000 +B1403484535597N00604835EA0209401991000 +B1403524535580N00604824EA0210902003000 +B1403554535585N00604808EA0212402015000 +B1403584535598N00604807EA0214002027000 +B1404014535611N00604821EA0215202039000 +B1404044535612N00604846EA0216102051000 +B1404074535599N00604862EA0217102062000 +B1404104535582N00604863EA0218402074000 +B1404134535575N00604850EA0219402086000 +B1404164535581N00604833EA0220402097000 +B1404194535595N00604824EA0221802109000 +B1404224535610N00604833EA0223102121000 +B1404254535617N00604853EA0223602132000 +B1404284535608N00604874EA0225002143000 +B1404314535595N00604873EA0226102154000 +B1404344535592N00604857EA0227402165000 +B1404374535603N00604842EA0228702177000 +B1404404535618N00604847EA0228902188000 +B1404434535626N00604872EA0229602198000 +B1404464535619N00604893EA0230802208000 +B1404494535607N00604901EA0231802219000 +B1404524535595N00604894EA0233002229000 +B1404554535595N00604875EA0234302240000 +B1404584535605N00604861EA0235002251000 +B1405014535619N00604860EA0235202261000 +B1405044535633N00604878EA0235902271000 +B1405074535632N00604902EA0236502280000 +B1405104535620N00604914EA0237202289000 +B1405134535604N00604914EA0238202298000 +B1405164535590N00604908EA0239202307000 +B1405194535578N00604897EA0240302316000 +B1405224535573N00604878EA0241302325000 +B1405264535583N00604855EA0241902337000 +B1405294535599N00604852EA0243202346000 +B1405324535611N00604866EA0243702354000 +B1405354535614N00604891EA0244402363000 +B1405384535606N00604905EA0244902371000 +B1405414535591N00604908EA0245102378000 +B1405444535578N00604898EA0245702386000 +B1405474535577N00604876EA0246402393000 +B1405504535587N00604860EA0247302400000 +B1405534535602N00604857EA0248102408000 +B1405564535618N00604858EA0248802415000 +B1405594535633N00604860EA0249102423000 +B1406024535647N00604861EA0249102430000 +B1406054535662N00604864EA0249302436000 +B1406084535678N00604871EA0249702442000 +B1406114535692N00604879EA0249802447000 +B1406144535707N00604890EA0250002452000 +B1406174535724N00604901EA0250302457000 +B1406204535742N00604909EA0250802461000 +B1406234535757N00604917EA0250902466000 +B1406264535777N00604922EA0251502470000 +B1406294535793N00604928EA0252102474000 +B1406324535810N00604937EA0252402479000 +B1406354535829N00604948EA0253502483000 +B1406384535848N00604958EA0254202488000 +B1406414535866N00604970EA0255102494000 +B1406444535882N00604979EA0255502499000 +B1406474535895N00604985EA0254902504000 +B1406504535912N00604995EA0254902509000 +B1406544535933N00605004EA0254602513000 +B1406574535951N00605013EA0254402516000 +B1407004535968N00605022EA0253202517000 +B1407034535992N00605036EA0252302517000 +B1407064536012N00605050EA0252302517000 +B1407094536031N00605061EA0251302516000 +B1407124536051N00605073EA0250502515000 +B1407154536070N00605086EA0249702512000 +B1407184536088N00605099EA0249102509000 +B1407214536106N00605114EA0248702506000 +B1407244536121N00605132EA0248302502000 +B1407274536138N00605148EA0247502499000 +B1407304536154N00605167EA0247302495000 +B1407334536168N00605185EA0246602491000 +B1407364536185N00605202EA0245402486000 +B1407394536204N00605215EA0244802481000 +B1407424536222N00605220EA0244502476000 +B1407454536239N00605225EA0244702472000 +B1407484536253N00605231EA0244902468000 +B1407514536265N00605240EA0245402465000 +B1407544536276N00605249EA0245602462000 +B1407574536288N00605259EA0245802460000 +B1408004536301N00605271EA0246102459000 +B1408034536314N00605284EA0246202458000 +B1408064536327N00605298EA0246502457000 +B1408094536342N00605306EA0246602456000 +B1408124536356N00605308EA0246202456000 +B1408154536368N00605312EA0245202456000 +B1408184536384N00605316EA0244002454000 +B1408224536411N00605320EA0243702450000 +B1408254536431N00605323EA0243302447000 +B1408284536451N00605329EA0243102444000 +B1408314536472N00605337EA0243002442000 +B1408344536491N00605348EA0242702439000 +B1408374536512N00605358EA0242302436000 +B1408404536537N00605368EA0241902433000 +B1408434536561N00605375EA0242002430000 +B1408464536584N00605380EA0241502428000 +B1408494536607N00605383EA0241202425000 +B1408524536630N00605386EA0240902422000 +B1408554536652N00605388EA0240202419000 +B1408584536675N00605392EA0239902416000 +B1409014536697N00605397EA0239202412000 +B1409044536721N00605401EA0238402408000 +B1409074536746N00605407EA0238102404000 +B1409104536770N00605415EA0237602400000 +B1409134536793N00605424EA0237002396000 +B1409164536817N00605433EA0236702392000 +B1409194536840N00605445EA0236402387000 +B1409224536862N00605457EA0235802383000 +B1409254536884N00605470EA0235002378000 +B1409284536907N00605485EA0234902374000 +B1409314536930N00605497EA0234202369000 +B1409344536955N00605509EA0233902365000 +B1409384536987N00605526EA0233702359000 +B1409414537009N00605541EA0233102355000 +B1409444537032N00605555EA0232802350000 +B1409474537055N00605569EA0232302346000 +B1409504537078N00605582EA0232002342000 +B1409534537100N00605595EA0231702338000 +B1409564537121N00605608EA0231002334000 +B1409594537145N00605621EA0230602329000 +B1410024537163N00605632EA0230302325000 +B1410054537179N00605642EA0229702320000 +B1410084537199N00605655EA0229302316000 +B1410114537221N00605671EA0229102312000 +B1410144537242N00605691EA0229202308000 +B1410174537262N00605713EA0229502304000 +B1410204537280N00605733EA0229702301000 +B1410234537299N00605752EA0230002299000 +B1410264537318N00605768EA0229902298000 +B1410294537337N00605785EA0229702296000 +B1410324537356N00605801EA0229502294000 +B1410354537374N00605820EA0229502293000 +B1410384537392N00605842EA0229802291000 +B1410414537409N00605865EA0229802290000 +B1410444537426N00605888EA0229902289000 +B1410474537442N00605911EA0230902289000 +B1410504537451N00605928EA0230802290000 +B1410534537463N00605944EA0231102290000 +B1410564537476N00605959EA0231702291000 +B1411004537489N00605980EA0231602292000 +B1411034537502N00605997EA0231702294000 +B1411064537515N00606014EA0231702295000 +B1411094537526N00606033EA0231802296000 +B1411124537532N00606051EA0231702297000 +B1411154537542N00606071EA0231402298000 +B1411184537553N00606087EA0231702298000 +B1411214537565N00606102EA0232402299000 +B1411244537574N00606116EA0232702301000 +B1411274537586N00606134EA0232702302000 +B1411304537599N00606148EA0233002304000 +B1411334537614N00606161EA0233102305000 +B1411364537630N00606174EA0233102307000 +B1411394537646N00606187EA0233002308000 +B1411424537663N00606200EA0233202309000 +B1411454537678N00606213EA0233002310000 +B1411484537693N00606221EA0233502311000 +B1411514537707N00606224EA0233402312000 +B1411544537723N00606223EA0233502313000 +B1411574537736N00606224EA0233202314000 +B1412004537749N00606226EA0232902314000 +B1412034537762N00606232EA0233002315000 +B1412064537775N00606238EA0233502315000 +B1412094537788N00606242EA0233802316000 +B1412124537799N00606245EA0233802318000 +B1412154537811N00606249EA0233402319000 +B1412184537826N00606253EA0233602320000 +B1412214537842N00606258EA0233702320000 +B1412254537861N00606263EA0233802322000 +B1412284537879N00606263EA0233602322000 +B1412314537897N00606264EA0233902323000 +B1412344537916N00606266EA0233902324000 +B1412374537937N00606269EA0234602325000 +B1412404537954N00606271EA0235602327000 +B1412434537969N00606269EA0236202329000 +B1412464537983N00606255EA0236902332000 +B1412494537986N00606230EA0237202335000 +B1412524537973N00606215EA0237402338000 +B1412554537958N00606226EA0238202341000 +B1412584537959N00606247EA0239102344000 +B1413014537970N00606261EA0240102348000 +B1413044537984N00606256EA0240502352000 +B1413074537996N00606237EA0241402357000 +B1413104538001N00606213EA0241502362000 +B1413134537991N00606192EA0241802367000 +B1413164537975N00606194EA0241902372000 +B1413194537967N00606212EA0242602376000 +B1413224537972N00606233EA0244002381000 +B1413254537979N00606245EA0244702387000 +B1413284537990N00606252EA0245002392000 +B1413314538003N00606247EA0245602398000 +B1413344538013N00606231EA0246202404000 +B1413374538012N00606210EA0246602409000 +B1413404538000N00606197EA0247502414000 +B1413434537987N00606201EA0248402420000 +B1413464537982N00606214EA0249102426000 +B1413494537985N00606227EA0249602432000 +B1413524537993N00606239EA0250102438000 +B1413564538009N00606238EA0250602446000 +B1413594538018N00606220EA0251402452000 +B1414024538013N00606201EA0251702458000 +B1414054537998N00606195EA0252802463000 +B1414084537990N00606206EA0253502469000 +B1414114537986N00606223EA0253902474000 +B1414144537991N00606238EA0254402480000 +B1414174538004N00606247EA0255102486000 +B1414204538018N00606248EA0255802492000 +B1414234538032N00606242EA0256402498000 +B1414264538042N00606225EA0256802504000 +B1414294538042N00606204EA0257002510000 +B1414324538029N00606192EA0256902515000 +B1414354538015N00606201EA0257002520000 +B1414384538015N00606222EA0257402524000 +B1414414538026N00606234EA0258302529000 +B1414444538041N00606239EA0258802534000 +B1414474538056N00606242EA0259102539000 +B1414504538071N00606242EA0259202544000 +B1414534538088N00606243EA0259202549000 +B1414564538105N00606243EA0259102553000 +B1414594538123N00606243EA0259102556000 +B1415024538141N00606240EA0258702559000 +B1415054538160N00606238EA0258502561000 +B1415084538177N00606234EA0258402563000 +B1415114538195N00606232EA0257702564000 +B1415144538214N00606234EA0257902565000 +B1415174538231N00606239EA0257602565000 +B1415214538255N00606247EA0257502565000 +B1415244538273N00606255EA0257102565000 +B1415274538292N00606261EA0257002564000 +B1415304538311N00606265EA0256702564000 +B1415334538331N00606271EA0256202563000 +B1415364538350N00606282EA0256502561000 +B1415394538366N00606290EA0256402561000 +B1415424538383N00606300EA0255802559000 +B1415454538399N00606309EA0255602558000 +B1415484538416N00606312EA0254402556000 +B1415514538437N00606313EA0253602553000 +B1415544538460N00606312EA0253202550000 +B1415574538483N00606313EA0252802547000 +B1416004538505N00606316EA0252202544000 +B1416034538525N00606324EA0251402540000 +B1416064538548N00606333EA0251002536000 +B1416094538572N00606340EA0250602533000 +B1416124538595N00606345EA0249902529000 +B1416154538617N00606353EA0249402524000 +B1416184538640N00606360EA0248602520000 +B1416214538665N00606372EA0248402515000 +B1416244538688N00606383EA0248002511000 +B1416274538711N00606394EA0247502506000 +B1416304538736N00606403EA0246802501000 +B1416334538761N00606413EA0246502497000 +B1416364538786N00606423EA0246302492000 +B1416394538810N00606436EA0246202488000 +B1416434538840N00606452EA0246002482000 +B1416464538862N00606464EA0245902479000 +B1416494538885N00606478EA0245602475000 +B1416524538907N00606491EA0245402471000 +B1416554538930N00606504EA0245002468000 +B1416584538953N00606517EA0244702465000 +B1417014538975N00606528EA0244602461000 +B1417044538996N00606539EA0243602458000 +B1417074539020N00606553EA0243102454000 +B1417104539043N00606567EA0242902450000 +B1417134539065N00606580EA0242002446000 +B1417164539089N00606595EA0241702442000 +B1417194539113N00606608EA0241302437000 +B1417224539137N00606620EA0240902433000 +B1417254539160N00606632EA0240202429000 +B1417284539184N00606648EA0240102424000 +B1417314539208N00606663EA0239802420000 +B1417344539232N00606679EA0239402416000 +B1417374539255N00606695EA0239202411000 +B1417404539278N00606712EA0238902408000 +B1417434539301N00606730EA0238802404000 +B1417464539324N00606746EA0238702401000 +B1417494539348N00606761EA0238502397000 +B1417524539371N00606775EA0238302394000 +B1417554539394N00606788EA0237602391000 +B1417584539417N00606801EA0236802388000 +B1418014539440N00606815EA0236402384000 +B1418054539471N00606833EA0235802379000 +B1418084539494N00606849EA0235102375000 +B1418114539515N00606865EA0234502370000 +B1418144539537N00606881EA0233702366000 +B1418174539560N00606897EA0233102361000 +B1418204539582N00606913EA0232502356000 +B1418234539605N00606930EA0231802351000 +B1418264539628N00606945EA0231102346000 +B1418294539652N00606960EA0230502340000 +B1418324539675N00606976EA0229802335000 +B1418354539698N00606991EA0229402329000 +B1418384539721N00607006EA0228802324000 +B1418414539743N00607021EA0228402318000 +B1418444539765N00607036EA0227802313000 +B1418474539788N00607052EA0227202308000 +B1418504539810N00607068EA0226702302000 +B1418534539831N00607083EA0226002297000 +B1418564539854N00607099EA0225402291000 +B1418594539877N00607115EA0224802285000 +B1419024539899N00607131EA0224202280000 +B1419054539921N00607148EA0223702274000 +B1419084539943N00607165EA0223302268000 +B1419114539964N00607181EA0222902263000 +B1419144539986N00607197EA0222502258000 +B1419174540008N00607212EA0222102252000 +B1419204540029N00607228EA0221802247000 +B1419244540060N00607250EA0221902241000 +B1419274540081N00607265EA0221602236000 +B1419304540102N00607280EA0221202232000 +B1419334540125N00607293EA0221002228000 +B1419364540147N00607306EA0220502224000 +B1419394540168N00607320EA0219902220000 +B1419424540190N00607336EA0219502216000 +B1419454540210N00607353EA0219002211000 +B1419484540231N00607371EA0218802207000 +B1419514540252N00607390EA0218402203000 +B1419544540274N00607407EA0218002199000 +B1419574540296N00607426EA0217902195000 +B1420004540317N00607444EA0217802192000 +B1420034540337N00607462EA0217502188000 +B1420064540357N00607481EA0217302185000 +B1420094540377N00607497EA0217002182000 +B1420124540396N00607515EA0216702179000 +B1420154540414N00607533EA0216502175000 +B1420184540430N00607552EA0216002172000 +B1420214540447N00607573EA0215602169000 +B1420244540464N00607593EA0215302165000 +B1420274540480N00607614EA0214702162000 +B1420304540498N00607633EA0213902158000 +B1420334540515N00607655EA0213302154000 +B1420364540532N00607676EA0212602149000 +B1420394540549N00607702EA0212202144000 +B1420434540571N00607733EA0212002138000 +B1420464540587N00607757EA0211602134000 +B1420494540603N00607778EA0211102130000 +B1420524540618N00607801EA0210702125000 +B1420554540633N00607822EA0210202121000 +B1420584540647N00607844EA0209502116000 +B1421014540661N00607865EA0208602111000 +B1421044540676N00607888EA0207802106000 +B1421074540692N00607911EA0207102100000 +B1421104540707N00607934EA0206102094000 +B1421134540723N00607959EA0205402088000 +B1421164540740N00607983EA0204802081000 +B1421194540756N00608005EA0203902075000 +B1421224540774N00608028EA0203302068000 +B1421254540790N00608051EA0202802062000 +B1421284540805N00608071EA0201802055000 +B1421314540822N00608093EA0201202048000 +B1421344540836N00608115EA0200502042000 +B1421374540851N00608137EA0199802035000 +B1421404540866N00608158EA0199502028000 +B1421434540881N00608177EA0198602022000 +B1421464540897N00608198EA0198102015000 +B1421494540910N00608220EA0197402009000 +B1421524540922N00608242EA0196302002000 +B1421554540936N00608268EA0195901996000 +B1421584540950N00608291EA0195201987000 +B1422024540970N00608321EA0194401980000 +B1422054540985N00608342EA0193701974000 +B1422084541001N00608365EA0193001967000 +B1422114541017N00608385EA0192801960000 +B1422144541031N00608408EA0192801955000 +B1422174541045N00608428EA0192701949000 +B1422204541061N00608448EA0192301944000 +B1422234541077N00608467EA0192101940000 +B1422264541092N00608485EA0191601935000 +B1422294541107N00608505EA0191101931000 +B1422324541122N00608526EA0190701927000 +B1422354541136N00608547EA0190101922000 +B1422384541149N00608567EA0189301918000 +B1422414541159N00608588EA0188801913000 +B1422444541168N00608608EA0188501908000 +B1422474541176N00608628EA0187701904000 +B1422504541188N00608654EA0187401899000 +B1422534541198N00608681EA0187601894000 +B1422564541208N00608704EA0187301890000 +B1422594541218N00608728EA0187201886000 +B1423024541229N00608752EA0186801883000 +B1423054541241N00608777EA0186601879000 +B1423084541254N00608803EA0186201876000 +B1423114541268N00608826EA0185801872000 +B1423144541281N00608851EA0185301868000 +B1423184541297N00608884EA0184601863000 +B1423214541309N00608909EA0184101859000 +B1423244541323N00608934EA0183501854000 +B1423274541336N00608960EA0182901850000 +B1423304541350N00608987EA0182201845000 +B1423334541364N00609015EA0181501840000 +B1423364541377N00609044EA0180601834000 +B1423394541391N00609071EA0180101829000 +B1423424541402N00609094EA0179201823000 +B1423454541414N00609117EA0178001817000 +B1423484541426N00609140EA0177501810000 +B1423514541434N00609160EA0177501803000 +B1423544541438N00609181EA0177301798000 +B1423574541446N00609198EA0177201792000 +B1424004541452N00609216EA0177301788000 +B1424034541458N00609235EA0176601784000 +B1424064541466N00609258EA0176301779000 +B1424094541474N00609284EA0176001775000 +B1424124541484N00609312EA0176301771000 +B1424154541497N00609335EA0177101768000 +B1424184541505N00609354EA0177901766000 +B1424214541512N00609374EA0179001766000 +B1424244541511N00609399EA0180301767000 +B1424274541502N00609424EA0181301769000 +B1424304541489N00609445EA0182201772000 +B1424334541469N00609455EA0183201776000 +B1424364541450N00609450EA0184401781000 +B1424394541441N00609436EA0185601786000 +B1424424541442N00609425EA0186801790000 +B1424464541450N00609434EA0188001797000 +B1424494541449N00609457EA0189401806000 +B1424524541437N00609477EA0190101815000 +B1424554541416N00609491EA0191301824000 +B1424584541396N00609495EA0192401834000 +B1425014541380N00609482EA0193801843000 +B1425044541373N00609467EA0194801853000 +B1425074541376N00609452EA0195901861000 +B1425104541382N00609450EA0196901867000 +B1425134541387N00609458EA0197901875000 +B1425164541387N00609479EA0199301887000 +B1425194541377N00609499EA0200301899000 +B1425224541358N00609511EA0201601910000 +B1425254541342N00609506EA0203201921000 +B1425284541333N00609493EA0204101933000 +B1425314541334N00609478EA0204901942000 +B1425344541340N00609473EA0206101948000 +B1425374541348N00609475EA0207401955000 +B1425404541351N00609488EA0208201967000 +B1425434541350N00609511EA0209401981000 +B1425464541335N00609532EA0210701994000 +B1425494541315N00609543EA0212102007000 +B1425524541295N00609537EA0213302020000 +B1425554541288N00609520EA0214502032000 +B1425584541291N00609507EA0216102043000 +B1426014541295N00609506EA0216802050000 +B1426044541300N00609519EA0218302062000 +B1426084541293N00609547EA0219402081000 +B1426114541276N00609566EA0220402094000 +B1426144541254N00609574EA0221802107000 +B1426174541234N00609566EA0223102120000 +B1426204541222N00609548EA0224602133000 +B1426234541218N00609532EA0225502146000 +B1426264541223N00609525EA0226402152000 +B1426294541227N00609530EA0227602159000 +B1426324541234N00609534EA0228602166000 +B1426354541240N00609536EA0230002174000 +B1426384541245N00609533EA0231202183000 +B1426414541250N00609529EA0232702192000 +B1426444541253N00609524EA0233602202000 +B1426474541250N00609508EA0234302218000 +B1426504541233N00609490EA0235202234000 +B1426534541211N00609482EA0236402249000 +B1426564541191N00609492EA0237702263000 +B1426594541180N00609511EA0238802275000 +B1427024541184N00609523EA0239902286000 +B1427054541188N00609524EA0241202292000 +B1427084541193N00609522EA0242002299000 +B1427114541198N00609523EA0243402307000 +B1427144541202N00609523EA0243602316000 +B1427174541209N00609521EA0244002324000 +B1427204541216N00609517EA0244502332000 +B1427234541222N00609513EA0244702340000 +B1427264541229N00609511EA0245102348000 +B1427294541235N00609514EA0244702355000 +B1427324541242N00609516EA0245102362000 +B1427354541250N00609516EA0244302371000 +B1427384541265N00609513EA0245302382000 +B1427424541281N00609516EA0246202394000 +B1427454541292N00609518EA0246502402000 +B1427484541307N00609523EA0246602410000 +B1427514541323N00609528EA0247302416000 +B1427544541335N00609534EA0248202423000 +B1427574541346N00609536EA0248102429000 +B1428004541360N00609537EA0248602434000 +B1428034541372N00609537EA0248902439000 +B1428064541385N00609539EA0249002444000 +B1428094541398N00609541EA0249602448000 +B1428124541409N00609547EA0249902453000 +B1428154541422N00609550EA0250602457000 +B1428184541433N00609547EA0251202462000 +B1428214541445N00609548EA0252202467000 +B1428244541455N00609547EA0253202473000 +B1428274541465N00609551EA0253802479000 +B1428304541478N00609556EA0254202484000 +B1428334541492N00609561EA0255502490000 +B1428364541502N00609566EA0256502497000 +B1428394541514N00609571EA0257802503000 +B1428424541526N00609572EA0258302510000 +B1428454541542N00609571EA0259802518000 +B1428484541555N00609569EA0260902526000 +B1428514541570N00609567EA0261502534000 +B1428544541586N00609572EA0262602542000 +B1428574541598N00609576EA0262502550000 +B1429004541614N00609580EA0263002557000 +B1429034541627N00609585EA0264302564000 +B1429064541639N00609588EA0264802572000 +B1429094541653N00609590EA0265402579000 +B1429124541667N00609589EA0265202586000 +B1429154541683N00609583EA0264402592000 +B1429184541704N00609578EA0264102596000 +B1429214541726N00609574EA0263602600000 +B1429254541757N00609565EA0263102604000 +B1429284541780N00609557EA0262902606000 +B1429314541803N00609552EA0262202607000 +B1429344541827N00609547EA0261602607000 +B1429374541850N00609541EA0261402607000 +B1429404541873N00609537EA0260902606000 +B1429434541894N00609536EA0260302605000 +B1429464541916N00609535EA0259202603000 +B1429494541940N00609534EA0258502600000 +B1429524541960N00609534EA0258002597000 +B1429554541979N00609535EA0256802594000 +B1429584541999N00609540EA0255802589000 +B1430014542020N00609540EA0255002584000 +B1430044542040N00609539EA0254602579000 +B1430074542058N00609536EA0254502574000 +B1430104542075N00609534EA0253902569000 +B1430134542094N00609534EA0253502564000 +B1430164542114N00609533EA0253002559000 +B1430194542134N00609532EA0252602555000 +B1430224542153N00609534EA0252302550000 +B1430254542173N00609536EA0252202546000 +B1430284542192N00609536EA0252002541000 +B1430314542212N00609538EA0251702537000 +B1430344542233N00609540EA0251202534000 +B1430374542255N00609543EA0250702530000 +B1430414542286N00609546EA0250302524000 +B1430444542309N00609549EA0249202520000 +B1430474542333N00609550EA0248502514000 +B1430504542355N00609552EA0247402509000 +B1430534542381N00609554EA0245702503000 +B1430564542406N00609554EA0244602497000 +B1430594542427N00609552EA0243102489000 +B1431024542450N00609547EA0241202480000 +B1431054542476N00609538EA0240902471000 +B1431084542494N00609527EA0240002462000 +B1431114542515N00609513EA0238402453000 +B1431144542537N00609495EA0237702443000 +B1431174542557N00609479EA0236802434000 +B1431204542578N00609463EA0235902425000 +B1431234542597N00609450EA0235902416000 +B1431264542613N00609438EA0235102408000 +B1431294542632N00609424EA0234602400000 +B1431324542650N00609410EA0234202392000 +B1431354542668N00609396EA0233502384000 +B1431384542687N00609384EA0232902377000 +B1431414542701N00609377EA0232802370000 +B1431444542712N00609369EA0231602364000 +B1431474542726N00609366EA0231402357000 +B1431504542738N00609363EA0230602350000 +B1431534542752N00609361EA0230002344000 +B1431564542765N00609361EA0229502337000 +B1431594542776N00609360EA0229002331000 +B1432034542795N00609353EA0227402322000 +B1432064542816N00609344EA0226602315000 +B1432094542834N00609337EA0226002307000 +B1432124542851N00609329EA0224702300000 +B1432154542871N00609320EA0223902292000 +B1432184542888N00609309EA0223002284000 +B1432214542905N00609295EA0221602275000 +B1432244542922N00609280EA0220802267000 +B1432274542939N00609267EA0219902258000 +B1432304542956N00609255EA0218902249000 +B1432334542974N00609242EA0218002240000 +B1432364542990N00609230EA0217702232000 +B1432394543005N00609220EA0216802223000 +B1432424543022N00609212EA0216102215000 +B1432454543037N00609203EA0215502207000 +B1432484543052N00609193EA0214402199000 +B1432514543068N00609184EA0213802191000 +B1432544543083N00609177EA0213002183000 +B1432574543099N00609171EA0212402175000 +B1433004543117N00609166EA0212002168000 +B1433034543135N00609161EA0211302160000 +B1433064543154N00609157EA0210702153000 +B1433094543171N00609152EA0210002146000 +B1433124543189N00609148EA0209302139000 +B1433154543208N00609142EA0208802132000 +B1433184543226N00609139EA0208202125000 +B1433214543245N00609136EA0207602119000 +B1433254543271N00609133EA0206902110000 +B1433284543289N00609130EA0206302103000 +B1433314543307N00609126EA0205602096000 +B1433344543325N00609123EA0204902089000 +B1433374543343N00609122EA0204302083000 +B1433404543362N00609122EA0203502076000 +B1433434543382N00609123EA0202902069000 +B1433464543402N00609126EA0202702063000 +B1433494543423N00609130EA0202702057000 +B1433524543443N00609136EA0203102052000 +B1433554543462N00609142EA0203302048000 +B1433584543479N00609145EA0203702045000 +B1434014543493N00609149EA0203602042000 +B1434044543512N00609150EA0203002039000 +B1434074543533N00609152EA0203502037000 +B1434104543550N00609152EA0203602035000 +B1434134543564N00609153EA0203302034000 +B1434164543579N00609155EA0202802032000 +B1434194543592N00609156EA0202302030000 +B1434224543611N00609153EA0201502027000 +B1434254543633N00609151EA0201902024000 +B1434284543649N00609153EA0201802022000 +B1434314543667N00609156EA0201502020000 +B1434344543688N00609157EA0201802018000 +B1434374543709N00609159EA0202002016000 +B1434404543731N00609164EA0202102015000 +B1434434543753N00609167EA0202202014000 +B1434474543782N00609169EA0201402013000 +B1434504543806N00609167EA0201302011000 +B1434534543826N00609165EA0201102009000 +B1434564543847N00609164EA0200202007000 +B1434594543868N00609166EA0200302005000 +B1435024543888N00609170EA0199702003000 +B1435054543912N00609174EA0199002000000 +B1435084543935N00609178EA0199201998000 +B1435114543955N00609181EA0198701995000 +B1435144543977N00609183EA0198501993000 +B1435174543995N00609185EA0197901990000 +B1435204544015N00609186EA0197401987000 +B1435234544035N00609187EA0197301984000 +B1435264544053N00609189EA0196801981000 +B1435294544074N00609194EA0196401978000 +B1435324544094N00609199EA0196501975000 +B1435354544113N00609204EA0195901972000 +B1435384544134N00609206EA0195601969000 +B1435414544154N00609209EA0195401965000 +B1435444544172N00609211EA0194901962000 +B1435474544191N00609215EA0194601959000 +B1435504544210N00609217EA0194201956000 +B1435534544229N00609221EA0193701952000 +B1435564544247N00609225EA0193401949000 +B1435594544265N00609229EA0192901945000 +B1436024544285N00609234EA0192501941000 +B1436054544303N00609239EA0192001937000 +B1436094544328N00609244EA0191801932000 +B1436124544345N00609248EA0191301928000 +B1436154544363N00609252EA0190801924000 +B1436184544382N00609256EA0190201920000 +B1436214544401N00609259EA0189701915000 +B1436244544419N00609260EA0189101911000 +B1436274544438N00609260EA0188601907000 +B1436304544457N00609262EA0188101902000 +B1436334544475N00609264EA0187501897000 +B1436364544494N00609266EA0186901893000 +B1436394544514N00609268EA0186501888000 +B1436424544532N00609272EA0186001883000 +B1436454544551N00609274EA0185401878000 +B1436484544570N00609276EA0185001873000 +B1436514544590N00609278EA0184601869000 +B1436544544609N00609282EA0184101864000 +B1436574544628N00609285EA0183401860000 +B1437004544647N00609289EA0182801856000 +B1437034544665N00609293EA0182101851000 +B1437064544684N00609298EA0181601847000 +B1437094544702N00609303EA0181201842000 +B1437124544720N00609309EA0180501837000 +B1437154544740N00609315EA0180101832000 +B1437184544760N00609322EA0179301827000 +B1437214544781N00609327EA0178401821000 +B1437244544802N00609333EA0177601815000 +B1437284544831N00609340EA0176601807000 +B1437314544853N00609344EA0175601800000 +B1437344544873N00609349EA0174901794000 +B1437374544891N00609356EA0174201787000 +B1437404544908N00609363EA0173801781000 +B1437434544923N00609370EA0173001775000 +B1437464544940N00609380EA0172701768000 +B1437494544956N00609392EA0172901763000 +B1437524544969N00609403EA0174001758000 +B1437554544976N00609414EA0174501754000 +B1437584544984N00609423EA0174701751000 +B1438014544994N00609434EA0175901750000 +B1438044544999N00609443EA0176301749000 +B1438074545006N00609450EA0176601750000 +B1438104545012N00609447EA0177101750000 +B1438134545013N00609436EA0177101750000 +B1438164545004N00609419EA0177501752000 +B1438194544986N00609410EA0178101753000 +B1438224544963N00609416EA0178901755000 +B1438254544947N00609437EA0179301758000 +B1438284544943N00609462EA0180101761000 +B1438314544948N00609474EA0180501763000 +B1438344544953N00609473EA0180501765000 +B1438374544952N00609458EA0180701768000 +B1438404544936N00609442EA0181301771000 +B1438434544914N00609443EA0182001774000 +B1438464544897N00609461EA0182501778000 +B1438494544893N00609485EA0182901781000 +B1438524544898N00609499EA0183201783000 +B1438564544907N00609505EA0183201785000 +B1438594544916N00609508EA0183301788000 +B1439024544929N00609512EA0182901791000 +B1439054544946N00609514EA0182901794000 +B1439084544962N00609520EA0183001796000 +B1439114544980N00609530EA0182801798000 +B1439144544998N00609541EA0182901799000 +B1439174545013N00609552EA0183501801000 +B1439204545025N00609563EA0183101803000 +B1439234545043N00609574EA0182801804000 +B1439264545060N00609587EA0183501806000 +B1439294545074N00609599EA0184401809000 +B1439324545085N00609607EA0185701812000 +B1439354545094N00609612EA0186701815000 +B1439384545100N00609603EA0187301818000 +B1439414545094N00609586EA0187701823000 +B1439444545075N00609577EA0188401828000 +B1439474545055N00609588EA0189301833000 +B1439504545046N00609611EA0190501839000 +B1439534545046N00609631EA0191601845000 +B1439564545053N00609645EA0192601851000 +B1439594545061N00609647EA0193301856000 +B1440024545068N00609637EA0194701860000 +B1440054545062N00609621EA0195201869000 +B1440084545045N00609612EA0195701877000 +B1440114545027N00609624EA0196401885000 +B1440144545019N00609647EA0197301893000 +B1440174545020N00609667EA0198301900000 +B1440204545028N00609679EA0199301908000 +B1440234545037N00609681EA0200501913000 +B1440264545044N00609677EA0201101918000 +B1440294545049N00609662EA0202101928000 +B1440334545041N00609634EA0203201941000 +B1440364545025N00609625EA0204001951000 +B1440394545008N00609636EA0204901961000 +B1440424545001N00609657EA0205801970000 +B1440454545006N00609673EA0207001979000 +B1440484545013N00609674EA0208101984000 +B1440514545021N00609665EA0208901994000 +B1440544545024N00609647EA0209902004000 +B1440574545017N00609627EA0210902015000 +B1441004545001N00609623EA0211502025000 +B1441034544992N00609640EA0212402034000 +B1441064544994N00609660EA0213902044000 +B1441094545001N00609671EA0214502054000 +B1441124545013N00609674EA0215102063000 +B1441154545023N00609663EA0215102072000 +B1441184545023N00609642EA0214902080000 +B1441214545015N00609624EA0214802087000 +B1441244544999N00609616EA0214502092000 +B1441274544979N00609615EA0215002098000 +B1441304544959N00609617EA0215702103000 +B1441334544939N00609623EA0217002108000 +B1441364544930N00609639EA0218102114000 +B1441394544930N00609658EA0219202120000 +B1441424544942N00609659EA0219802127000 +B1441454544945N00609638EA0220702134000 +B1441484544932N00609626EA0221502141000 +B1441514544917N00609632EA0222202148000 +B1441544544914N00609648EA0223202155000 +B1441574544923N00609655EA0224102162000 +B1442004544932N00609643EA0224602169000 +B1442044544929N00609616EA0224502179000 +B1442074544913N00609603EA0225002185000 +B1442104544897N00609607EA0225502191000 +B1442134544883N00609624EA0225802197000 +B1442164544870N00609643EA0226902203000 +B1442194544857N00609661EA0228102209000 +B1442224544854N00609681EA0229202216000 +B1442254544862N00609691EA0229902223000 +B1442284544872N00609682EA0230602230000 +B1442314544871N00609660EA0231402237000 +B1442344544863N00609645EA0232102244000 +B1442374544847N00609640EA0232502251000 +B1442404544834N00609654EA0233602258000 +B1442434544833N00609671EA0234402265000 +B1442464544838N00609685EA0235102273000 +B1442494544848N00609689EA0235202280000 +B1442524544858N00609677EA0234902287000 +B1442554544856N00609651EA0235102292000 +B1442584544847N00609628EA0235502298000 +B1443014544831N00609614EA0235902303000 +B1443044544814N00609613EA0236502308000 +B1443074544797N00609621EA0236802313000 +B1443104544783N00609637EA0237702319000 +B1443134544771N00609652EA0238302324000 +B1443164544764N00609672EA0239102330000 +B1443194544769N00609687EA0240002336000 +B1443224544779N00609686EA0240502342000 +B1443254544783N00609666EA0241102349000 +B1443284544776N00609642EA0241502355000 +B1443314544758N00609628EA0242102361000 +B1443344544740N00609630EA0242502367000 +B1443374544729N00609646EA0243102373000 +B1443404544728N00609662EA0243802378000 +B1443444544735N00609680EA0244602386000 +B1443474544744N00609688EA0245402392000 +B1443504544756N00609685EA0245802398000 +B1443534544765N00609668EA0246002404000 +B1443564544761N00609644EA0246402409000 +B1443594544745N00609629EA0246702415000 +B1444024544726N00609625EA0247202419000 +B1444054544710N00609633EA0247802424000 +B1444084544705N00609654EA0248602429000 +B1444114544710N00609670EA0249602434000 +B1444144544721N00609675EA0249902440000 +B1444174544734N00609672EA0249802446000 +B1444204544749N00609669EA0249002451000 +B1444234544770N00609663EA0248102454000 +B1444264544791N00609659EA0247902456000 +B1444294544810N00609657EA0247202458000 +B1444324544833N00609654EA0246202458000 +B1444354544855N00609651EA0245602458000 +B1444384544877N00609649EA0244502456000 +B1444414544899N00609649EA0244502454000 +B1444444544919N00609653EA0244202452000 +B1444474544939N00609658EA0243102449000 +B1444504544963N00609663EA0242902446000 +B1444534544985N00609668EA0242702443000 +B1444564545006N00609673EA0243502440000 +B1444594545021N00609681EA0244602439000 +B1445024545032N00609687EA0245002439000 +B1445054545046N00609694EA0245402439000 +B1445084545064N00609702EA0244902439000 +B1445124545095N00609713EA0245402439000 +B1445154545117N00609716EA0245202439000 +B1445184545139N00609718EA0245402439000 +B1445214545158N00609720EA0245602440000 +B1445244545178N00609725EA0244602440000 +B1445274545198N00609732EA0245002441000 +B1445304545214N00609734EA0244802441000 +B1445334545232N00609736EA0244102440000 +B1445364545252N00609736EA0243902440000 +B1445394545270N00609735EA0243202438000 +B1445424545290N00609733EA0242802437000 +B1445454545308N00609732EA0242402435000 +B1445484545328N00609732EA0241902432000 +B1445514545348N00609730EA0241402430000 +B1445544545366N00609729EA0240702427000 +B1445574545386N00609727EA0240002423000 +B1446004545406N00609723EA0239502419000 +B1446034545424N00609721EA0238802416000 +B1446064545444N00609720EA0237902411000 +B1446094545465N00609719EA0237402406000 +B1446124545486N00609718EA0236502401000 +B1446154545506N00609718EA0236102396000 +B1446184545525N00609717EA0235302391000 +B1446214545545N00609714EA0234402386000 +B1446244545566N00609712EA0234102380000 +B1446274545585N00609711EA0233902375000 +B1446314545609N00609711EA0233102367000 +B1446344545630N00609712EA0232702362000 +B1446374545649N00609713EA0232502356000 +B1446404545668N00609714EA0231902351000 +B1446434545688N00609717EA0231702346000 +B1446464545706N00609721EA0231702342000 +B1446494545725N00609725EA0231102337000 +B1446524545744N00609728EA0231102333000 +B1446554545762N00609728EA0231002329000 +B1446584545780N00609725EA0231302325000 +B1447014545795N00609723EA0232602323000 +B1447044545802N00609715EA0233502322000 +B1447074545811N00609714EA0234102323000 +B1447104545820N00609725EA0234802323000 +B1447134545818N00609749EA0235602325000 +B1447164545802N00609765EA0236302327000 +B1447194545784N00609760EA0236802329000 +B1447224545773N00609741EA0237302332000 +B1447254545777N00609724EA0238002335000 +B1447284545788N00609720EA0238902339000 +B1447314545799N00609729EA0239802344000 +B1447344545804N00609748EA0240702349000 +B1447374545796N00609766EA0241702354000 +B1447404545782N00609778EA0242102360000 +B1447434545765N00609772EA0242602365000 +B1447464545760N00609754EA0243502370000 +B1447494545767N00609745EA0244402375000 +B1447524545778N00609750EA0244902381000 +B1447554545784N00609766EA0245902388000 +B1447584545784N00609785EA0246402394000 +B1448014545772N00609801EA0247002401000 +B1448044545756N00609797EA0247502408000 +B1448084545750N00609770EA0248302416000 +B1448114545759N00609759EA0249002422000 +B1448144545771N00609760EA0249602428000 +B1448174545786N00609768EA0250102435000 +B1448204545804N00609778EA0250002441000 +B1448234545827N00609791EA0250602447000 +B1448264545846N00609806EA0251402452000 +B1448294545861N00609820EA0251002458000 +B1448324545880N00609838EA0250302463000 +B1448354545900N00609855EA0249802466000 +B1448384545919N00609873EA0249902469000 +B1448414545934N00609892EA0249202472000 +B1448444545951N00609913EA0247702473000 +B1448474545973N00609936EA0247702474000 +B1448504545993N00609957EA0247502474000 +B1448534546014N00609976EA0247802474000 +B1448564546034N00609989EA0247902473000 +B1448594546051N00609999EA0247102473000 +B1449024546070N00610014EA0247402472000 +B1449054546082N00610023EA0247602471000 +B1449084546095N00610030EA0246602471000 +B1449114546114N00610045EA0246402469000 +B1449144546133N00610058EA0245602467000 +B1449174546155N00610073EA0244702465000 +B1449204546178N00610091EA0245202462000 +B1449234546197N00610108EA0245602460000 +B1449264546214N00610126EA0245902458000 +B1449294546233N00610145EA0245702457000 +B1449324546252N00610167EA0245702456000 +B1449364546277N00610193EA0245202454000 +B1449394546296N00610213EA0244502453000 +B1449424546315N00610231EA0243302450000 +B1449454546335N00610252EA0242202447000 +B1449484546355N00610272EA0241602443000 +B1449514546376N00610293EA0240602439000 +B1449544546396N00610316EA0240202434000 +B1449574546415N00610339EA0239502430000 +B1450004546434N00610362EA0238902425000 +B1450034546453N00610385EA0238902420000 +B1450064546470N00610406EA0238402415000 +B1450094546488N00610429EA0238002410000 +B1450124546506N00610450EA0238002406000 +B1450154546523N00610472EA0237702401000 +B1450184546540N00610498EA0237602397000 +B1450214546553N00610526EA0237502393000 +B1450244546563N00610555EA0236802389000 +B1450274546575N00610588EA0236702385000 +B1450304546587N00610618EA0236602381000 +B1450334546599N00610647EA0236202378000 +B1450364546612N00610675EA0235802374000 +B1450394546624N00610704EA0235302370000 +B1450424546636N00610735EA0235002367000 +B1450454546649N00610762EA0235102363000 +B1450484546660N00610788EA0234602360000 +B1450514546672N00610812EA0233902357000 +B1450544546686N00610835EA0233502354000 +B1450574546697N00610857EA0232802351000 +B1451004546709N00610880EA0232102347000 +B1451044546724N00610911EA0230902342000 +B1451074546736N00610932EA0230202337000 +B1451104546746N00610958EA0229602332000 +B1451134546757N00610987EA0229102327000 +B1451164546771N00611014EA0229702322000 +B1451194546778N00611037EA0230302319000 +B1451224546783N00611057EA0230102316000 +B1451254546795N00611080EA0229702312000 +B1451284546806N00611105EA0230502310000 +B1451314546816N00611122EA0230202308000 +B1451344546828N00611139EA0229802306000 +B1451374546845N00611157EA0229502303000 +B1451404546861N00611177EA0229402301000 +B1451434546877N00611198EA0229102299000 +B1451464546892N00611219EA0228702297000 +B1451494546908N00611241EA0228402294000 +B1451524546924N00611262EA0227902292000 +B1451554546940N00611283EA0227402289000 +B1451584546957N00611307EA0227002287000 +B1452014546974N00611330EA0226702284000 +B1452044546993N00611352EA0226402281000 +B1452074547011N00611373EA0226302278000 +B1452104547027N00611395EA0226202275000 +B1452134547043N00611417EA0224902273000 +B1452164547063N00611440EA0224402269000 +B1452194547082N00611465EA0223902266000 +B1452234547109N00611496EA0223102261000 +B1452264547130N00611518EA0222702257000 +B1452294547150N00611536EA0222102253000 +B1452324547170N00611555EA0221402248000 +B1452354547191N00611575EA0220602244000 +B1452384547211N00611595EA0219702238000 +B1452414547231N00611615EA0219302233000 +B1452444547250N00611638EA0218602227000 +B1452474547269N00611660EA0218102222000 +B1452504547286N00611682EA0217102216000 +B1452534547305N00611704EA0216402210000 +B1452564547324N00611726EA0215702204000 +B1452594547343N00611748EA0215302198000 +B1453024547360N00611770EA0214902192000 +B1453054547379N00611787EA0214602186000 +B1453084547396N00611799EA0214302180000 +B1453114547415N00611813EA0213702175000 +B1453144547435N00611832EA0213702169000 +B1453174547452N00611849EA0213302164000 +B1453204547469N00611867EA0213002160000 +B1453234547485N00611886EA0212702155000 +B1453264547499N00611904EA0212102151000 +B1453294547515N00611925EA0211702146000 +B1453324547530N00611947EA0211302141000 +B1453354547544N00611967EA0210902137000 +B1453384547560N00611987EA0210402132000 +B1453414547575N00612007EA0209902128000 +B1453454547595N00612035EA0209602121000 +B1453484547609N00612056EA0209002117000 +B1453514547624N00612077EA0208402112000 +B1453544547639N00612099EA0207902107000 +B1453574547653N00612120EA0207402102000 +B1454004547668N00612141EA0206702097000 +B1454034547684N00612163EA0206302091000 +B1454064547700N00612184EA0205902086000 +B1454094547715N00612205EA0205402081000 +B1454124547730N00612229EA0205102076000 +B1454154547744N00612253EA0205002072000 +B1454184547758N00612276EA0204602067000 +B1454214547772N00612299EA0204202063000 +B1454244547786N00612322EA0204002058000 +B1454274547801N00612345EA0203702054000 +B1454304547814N00612367EA0203402050000 +B1454334547828N00612389EA0203102046000 +B1454364547841N00612410EA0202702042000 +B1454394547854N00612433EA0202302038000 +B1454424547867N00612455EA0201802035000 +B1454454547879N00612478EA0201202030000 +B1454484547892N00612503EA0200902026000 +B1454514547904N00612527EA0200402022000 +B1454544547916N00612552EA0200002017000 +B1454574547928N00612576EA0199602013000 +B1455004547940N00612599EA0198902008000 +B1455044547957N00612629EA0198602002000 +B1455074547969N00612650EA0197901997000 +B1455104547982N00612671EA0197401992000 +B1455134547995N00612692EA0196801987000 +B1455164548007N00612713EA0196201982000 +B1455194548019N00612736EA0195801977000 +B1455224548031N00612759EA0195401971000 +B1455254548041N00612783EA0194801966000 +B1455284548052N00612808EA0194101961000 +B1455314548063N00612833EA0193601956000 +B1455344548075N00612858EA0193101950000 +B1455374548087N00612882EA0192601945000 +B1455404548099N00612905EA0192101940000 +B1455434548113N00612928EA0191801934000 +B1455464548126N00612950EA0191401929000 +B1455494548138N00612972EA0190901924000 +B1455524548151N00612995EA0190401920000 +B1455554548163N00613020EA0190201915000 +B1455584548174N00613045EA0189701910000 +B1456014548185N00613069EA0189201906000 +B1456044548196N00613095EA0188901901000 +B1456074548207N00613120EA0188301897000 +B1456104548219N00613145EA0187901893000 +B1456134548231N00613169EA0187601888000 +B1456164548243N00613195EA0187001884000 +B1456204548258N00613229EA0186801878000 +B1456234548269N00613255EA0186301874000 +B1456264548280N00613281EA0185901870000 +B1456294548292N00613307EA0185401866000 +B1456324548304N00613333EA0185201862000 +B1456354548315N00613358EA0184801858000 +B1456384548326N00613384EA0184601854000 +B1456414548337N00613409EA0184001850000 +B1456444548348N00613434EA0183701846000 +B1456474548360N00613458EA0183201842000 +B1456504548372N00613480EA0182601838000 +B1456534548385N00613503EA0182201834000 +B1456564548398N00613525EA0181801830000 +B1456594548410N00613547EA0181301825000 +B1457024548421N00613572EA0180801821000 +B1457054548431N00613597EA0180301817000 +B1457084548441N00613623EA0179801812000 +B1457114548450N00613649EA0179101808000 +B1457144548460N00613674EA0178301803000 +B1457174548471N00613700EA0177801798000 +B1457204548483N00613724EA0177401793000 +B1457234548494N00613747EA0176901788000 +B1457264548505N00613770EA0176301783000 +B1457294548516N00613794EA0175801778000 +B1457324548526N00613817EA0175301773000 +B1457364548539N00613851EA0174801766000 +B1457394548548N00613877EA0174401761000 +B1457424548556N00613903EA0174001756000 +B1457454548564N00613930EA0173601751000 +B1457484548573N00613957EA0173301747000 +B1457514548582N00613982EA0172901742000 +B1457544548592N00614008EA0172501737000 +B1457574548603N00614031EA0172001733000 +B1458004548614N00614055EA0171701729000 +B1458034548624N00614078EA0171301724000 +B1458064548635N00614102EA0170901720000 +B1458094548648N00614124EA0170501716000 +B1458124548658N00614147EA0170101712000 +B1458154548670N00614170EA0170001707000 +B1458184548681N00614192EA0169601703000 +B1458214548692N00614216EA0169001699000 +B1458244548705N00614239EA0168801695000 +B1458274548717N00614262EA0168301691000 +B1458304548728N00614285EA0167701687000 +B1458334548739N00614310EA0167201682000 +B1458364548751N00614333EA0166801678000 +B1458394548762N00614356EA0166401674000 +B1458424548773N00614380EA0166101669000 +B1458454548785N00614403EA0165601665000 +B1458484548796N00614426EA0165301661000 +B1458514548808N00614450EA0164801657000 +B1458554548823N00614482EA0164301652000 +B1458584548836N00614507EA0164101647000 +B1459014548848N00614530EA0163601643000 +B1459044548860N00614555EA0163201639000 +B1459074548873N00614581EA0162801635000 +B1459104548885N00614606EA0162701631000 +B1459134548895N00614631EA0162201628000 +B1459164548907N00614656EA0161701624000 +B1459194548920N00614680EA0161401620000 +B1459224548932N00614703EA0160601616000 +B1459254548945N00614727EA0160501612000 +B1459284548955N00614750EA0160601609000 +B1459314548963N00614774EA0160601605000 +B1459344548974N00614797EA0161101603000 +B1459374548982N00614824EA0162601602000 +B1459404548987N00614847EA0163601602000 +B1459434548993N00614866EA0164501604000 +B1459464549000N00614876EA0165401606000 +B1459494549001N00614867EA0166201609000 +B1459524548984N00614862EA0167601613000 +B1459554548968N00614883EA0168601618000 +B1459584548963N00614910EA0169301622000 +B1500014548969N00614927EA0170301627000 +B1500044548973N00614925EA0171101630000 +B1500074548964N00614915EA0172001636000 +B1500104548942N00614924EA0172901643000 +B1500134548927N00614952EA0173901651000 +B1500174548929N00614988EA0175001661000 +B1500204548935N00614992EA0176101667000 +B1500234548930N00614983EA0177101674000 +B1500264548911N00614985EA0178201684000 +B1500294548893N00615010EA0179201694000 +B1500324548890N00615041EA0180201703000 +B1500354548894N00615058EA0181501713000 +B1500384548901N00615060EA0182701718000 +B1500414548901N00615050EA0183701724000 +B1500444548891N00615038EA0185301737000 +B1500474548873N00615039EA0186401749000 +B1500504548851N00615058EA0187301761000 +B1500534548839N00615091EA0188401772000 +B1500564548840N00615117EA0189401783000 +B1500594548844N00615128EA0190001792000 +B1501024548852N00615124EA0190401800000 +B1501054548861N00615112EA0191501811000 +B1501084548869N00615103EA0192901820000 +B1501114548869N00615086EA0194601831000 +B1501144548856N00615071EA0196101842000 +B1501174548833N00615072EA0197601853000 +B1501204548818N00615094EA0199101864000 +B1501234548813N00615117EA0200301876000 +B1501264548819N00615117EA0201101882000 +B1501294548814N00615098EA0202901895000 +B1501324548795N00615088EA0204201908000 +B1501354548776N00615104EA0205201921000 +B1501384548774N00615126EA0206501933000 +B1501414548777N00615126EA0207201940000 +B1501444548777N00615109EA0208801952000 +B1501474548767N00615088EA0209801966000 +B1501504548748N00615071EA0210501980000 +B1501534548726N00615076EA0210701993000 +B1501564548708N00615097EA0210902004000 +B1501594548706N00615120EA0211802014000 +B1502024548712N00615126EA0213102021000 +B1502064548715N00615125EA0213002029000 +B1502094548723N00615120EA0212802037000 +B1502124548734N00615122EA0214402048000 +B1502154548739N00615125EA0215102053000 +B1502184548750N00615125EA0215902063000 +B1502214548757N00615118EA0216702072000 +B1502244548755N00615101EA0216802082000 +B1502274548737N00615086EA0217002091000 +B1502304548713N00615088EA0216902100000 +B1502334548696N00615108EA0217402107000 +B1502364548693N00615125EA0217802113000 +B1502394548700N00615132EA0218402117000 +B1502424548707N00615133EA0219002120000 +B1502454548715N00615134EA0219002124000 +B1502484548727N00615135EA0219502131000 +B1502514548737N00615139EA0219902137000 +B1502544548744N00615142EA0220302140000 +B1502574548750N00615141EA0220402144000 +B1503004548756N00615137EA0219702147000 +B1503034548768N00615132EA0219002153000 +B1503064548783N00615131EA0218902158000 +B1503094548799N00615129EA0218302161000 +B1503124548816N00615134EA0218102163000 +B1503154548831N00615137EA0217602165000 +B1503184548846N00615143EA0216702166000 +B1503214548864N00615154EA0216502165000 +B1503244548881N00615168EA0216502165000 +B1503274548897N00615181EA0216102164000 +B1503304548914N00615195EA0215802163000 +B1503334548931N00615210EA0215302161000 +B1503374548955N00615227EA0215202159000 +B1503404548970N00615233EA0214802158000 +B1503434548985N00615238EA0214102155000 +B1503464549002N00615247EA0213702152000 +B1503494549019N00615256EA0213202149000 +B1503524549037N00615267EA0212902146000 +B1503554549055N00615277EA0212402142000 +B1503584549074N00615288EA0211902138000 +B1504014549094N00615297EA0211502134000 +B1504044549113N00615306EA0211102130000 +B1504074549132N00615315EA0210502127000 +B1504104549152N00615324EA0210202123000 +B1504134549171N00615333EA0209902119000 +B1504164549191N00615342EA0209602116000 +B1504194549211N00615348EA0209402112000 +B1504224549230N00615356EA0209202109000 +B1504254549248N00615363EA0208802106000 +B1504284549267N00615368EA0208602102000 +B1504314549286N00615374EA0208302099000 +B1504344549304N00615381EA0208102096000 +B1504374549321N00615388EA0207502093000 +B1504404549339N00615396EA0207002089000 +B1504434549357N00615405EA0206702086000 +B1504464549374N00615414EA0206002082000 +B1504494549391N00615424EA0205502078000 +B1504534549415N00615441EA0205102073000 +B1504564549432N00615455EA0204802069000 +B1504594549450N00615465EA0204302065000 +B1505024549467N00615473EA0203702060000 +B1505054549485N00615481EA0203302056000 +B1505084549503N00615487EA0202502052000 +B1505114549520N00615494EA0201902047000 +B1505144549538N00615498EA0201002042000 +B1505174549557N00615503EA0200102037000 +B1505204549575N00615507EA0199302031000 +B1505234549596N00615511EA0198802025000 +B1505264549618N00615517EA0199002020000 +B1505294549638N00615523EA0198902015000 +B1505324549659N00615529EA0198902011000 +B1505354549680N00615535EA0199102007000 +B1505384549700N00615543EA0199302004000 +B1505414549720N00615551EA0199202001000 +B1505444549741N00615559EA0199501998000 +B1505474549760N00615569EA0199701996000 +B1505504549777N00615580EA0199001995000 +B1505534549797N00615589EA0198801993000 +B1505564549814N00615596EA0198501991000 +B1505594549832N00615601EA0197301988000 +B1506024549851N00615602EA0196801985000 +B1506054549869N00615602EA0196101981000 +B1506084549891N00615603EA0196201978000 +B1506114549910N00615603EA0195901974000 +B1506154549935N00615604EA0195301969000 +B1506184549955N00615603EA0195601966000 +B1506214549975N00615607EA0196101963000 +B1506244549996N00615610EA0196401961000 +B1506274550015N00615615EA0196801959000 +B1506304550035N00615621EA0196701958000 +B1506334550056N00615628EA0196801957000 +B1506364550076N00615633EA0197101956000 +B1506394550095N00615645EA0197101956000 +B1506424550114N00615652EA0197201956000 +B1506454550132N00615653EA0197201956000 +B1506484550152N00615652EA0197001956000 +B1506514550171N00615653EA0196901956000 +B1506544550192N00615651EA0196301955000 +B1506574550212N00615646EA0196301955000 +B1507004550231N00615639EA0195601954000 +B1507034550250N00615629EA0195301952000 +B1507064550268N00615620EA0195001951000 +B1507094550287N00615616EA0194901949000 +B1507124550305N00615610EA0194801947000 +B1507154550324N00615606EA0195301946000 +B1507184550341N00615602EA0195901945000 +B1507214550354N00615604EA0196201945000 +B1507244550365N00615600EA0195901945000 +B1507274550375N00615590EA0196501946000 +B1507304550383N00615585EA0196801946000 +B1507344550396N00615580EA0196901947000 +B1507374550406N00615574EA0197201948000 +B1507404550417N00615566EA0197101949000 +B1507434550429N00615561EA0197801950000 +B1507464550435N00615557EA0198201951000 +B1507494550440N00615554EA0198301952000 +B1507524550448N00615545EA0198101954000 +B1507554550458N00615537EA0198501955000 +B1507584550467N00615533EA0199201957000 +B1508014550472N00615526EA0200201958000 +B1508044550475N00615521EA0200701960000 +B1508074550477N00615512EA0201001962000 +B1508104550479N00615505EA0201501965000 +B1508134550484N00615503EA0201201967000 +B1508164550492N00615497EA0201101970000 +B1508194550501N00615491EA0201801974000 +B1508224550510N00615486EA0202301978000 +B1508254550519N00615478EA0202901982000 +B1508284550529N00615472EA0203001986000 +B1508314550542N00615464EA0203601990000 +B1508344550554N00615456EA0204401994000 +B1508374550566N00615450EA0204901999000 +B1508404550577N00615446EA0205602003000 +B1508434550586N00615441EA0206502008000 +B1508464550596N00615439EA0207002013000 +B1508494550605N00615436EA0207302018000 +B1508524550615N00615430EA0207302023000 +B1508554550631N00615423EA0207402027000 +B1508584550647N00615415EA0207902031000 +B1509024550669N00615406EA0207902036000 +B1509054550686N00615396EA0208002040000 +B1509084550704N00615388EA0208402043000 +B1509114550722N00615385EA0209402046000 +B1509144550738N00615385EA0210102050000 +B1509174550754N00615384EA0210102054000 +B1509204550772N00615383EA0209702058000 +B1509234550793N00615382EA0210202061000 +B1509264550813N00615385EA0211102064000 +B1509294550830N00615390EA0211802068000 +B1509324550843N00615393EA0212502072000 +B1509354550856N00615393EA0213302076000 +B1509384550868N00615394EA0213802081000 +B1509414550882N00615399EA0214402085000 +B1509444550894N00615420EA0215002090000 +B1509474550904N00615446EA0215702095000 +B1509504550911N00615476EA0216202100000 +B1509534550906N00615504EA0216502105000 +B1509564550894N00615523EA0216702110000 +B1509594550881N00615525EA0216802114000 +B1510024550870N00615520EA0216802119000 +B1510054550857N00615508EA0217202123000 +B1510084550846N00615498EA0217902127000 +B1510114550839N00615493EA0218102130000 +B1510144550840N00615484EA0218802132000 +B1510174550848N00615479EA0219602135000 +B1510204550858N00615485EA0219902141000 +B1510234550869N00615504EA0220502147000 +B1510264550870N00615533EA0221102152000 +B1510294550863N00615558EA0221402157000 +B1510324550849N00615572EA0221302162000 +B1510354550832N00615575EA0220602167000 +B1510384550808N00615573EA0221902170000 +B1510414550792N00615574EA0221702175000 +B1510444550773N00615572EA0222102178000 +B1510484550751N00615572EA0222702183000 +B1510514550737N00615572EA0223102187000 +B1510544550726N00615573EA0224002191000 +B1510574550715N00615574EA0224302195000 +B1511004550703N00615573EA0225102199000 +B1511034550691N00615574EA0225902204000 +B1511064550680N00615572EA0226602209000 +B1511094550675N00615564EA0227602211000 +B1511124550679N00615554EA0229002215000 +B1511154550690N00615550EA0229902222000 +B1511184550703N00615563EA0230702230000 +B1511214550710N00615589EA0231902237000 +B1511244550707N00615618EA0232702245000 +B1511274550695N00615641EA0233002253000 +B1511304550680N00615649EA0233202260000 +B1511334550670N00615642EA0233602266000 +B1511364550668N00615629EA0234202272000 +B1511394550674N00615618EA0234802278000 +B1511424550686N00615614EA0235402285000 +B1511454550700N00615621EA0236102291000 +B1511484550711N00615634EA0236102297000 +B1511514550719N00615664EA0236702303000 +B1511544550714N00615693EA0237802309000 +B1511574550702N00615715EA0238202315000 +B1512004550691N00615737EA0238202320000 +B1512034550676N00615745EA0237902326000 +B1512064550667N00615739EA0238102329000 +B1512094550667N00615727EA0237502332000 +B1512124550671N00615710EA0237802336000 +B1512154550678N00615695EA0238302340000 +B1512194550691N00615672EA0238902344000 +B1512224550700N00615658EA0239502348000 +B1512254550711N00615644EA0239902352000 +B1512284550722N00615630EA0240702356000 +B1512314550734N00615617EA0241602360000 +B1512344550749N00615610EA0243202365000 +B1512374550764N00615614EA0244402371000 +B1512404550779N00615637EA0246202378000 +B1512434550785N00615665EA0247502385000 +B1512464550777N00615693EA0248402394000 +B1512494550763N00615704EA0249502402000 +B1512524550756N00615695EA0250702408000 +B1512554550756N00615683EA0251402415000 +B1512584550767N00615672EA0252902425000 +B1513014550784N00615675EA0254502436000 +B1513044550800N00615687EA0256302448000 +B1513074550816N00615702EA0257902460000 +B1513104550829N00615721EA0259402472000 +B1513134550833N00615745EA0260002485000 +B1513164550823N00615767EA0261002497000 +B1513194550809N00615772EA0262502509000 +B1513224550802N00615770EA0263202515000 +B1513254550800N00615757EA0263702524000 +B1513284550802N00615739EA0264802537000 +B1513314550811N00615720EA0266502550000 +B1513344550818N00615704EA0267302561000 +B1513374550829N00615699EA0267402573000 +B1513404550842N00615717EA0268102583000 +B1513434550853N00615736EA0268602593000 +B1513464550862N00615758EA0268502603000 +B1513494550869N00615788EA0268902611000 +B1513524550879N00615813EA0269202619000 +B1513554550888N00615832EA0268302626000 +B1513584550901N00615855EA0267902631000 +B1514014550914N00615875EA0267502636000 +B1514044550933N00615902EA0267002640000 +B1514084550947N00615922EA0266802642000 +B1514114550960N00615942EA0266202644000 +B1514144550974N00615965EA0265902645000 +B1514174550987N00615986EA0265302645000 +B1514204551004N00616008EA0264902645000 +B1514234551018N00616034EA0264902645000 +B1514264551029N00616059EA0264502644000 +B1514294551042N00616086EA0263602643000 +B1514324551056N00616121EA0262902641000 +B1514354551071N00616156EA0262602638000 +B1514384551084N00616192EA0262302636000 +B1514414551098N00616226EA0261602633000 +B1514444551112N00616261EA0260802629000 +B1514474551128N00616296EA0260102625000 +B1514504551144N00616330EA0259502621000 +B1514534551161N00616363EA0259102616000 +B1514564551176N00616395EA0258402612000 +B1514594551193N00616431EA0257602607000 +B1515024551209N00616467EA0257302601000 +B1515054551226N00616498EA0256702597000 +B1515084551241N00616530EA0256002591000 +B1515114551256N00616565EA0256002586000 +B1515144551270N00616594EA0255702581000 +B1515174551279N00616622EA0255002577000 +B1515204551292N00616655EA0254902572000 +B1515244551309N00616696EA0254802567000 +B1515274551324N00616726EA0254302562000 +B1515304551339N00616758EA0254302558000 +B1515334551352N00616792EA0254102555000 +B1515364551366N00616826EA0253902551000 +B1515394551379N00616858EA0253402548000 +B1515424551394N00616890EA0252902544000 +B1515454551409N00616920EA0252502541000 +B1515484551426N00616949EA0252002537000 +B1515514551443N00616978EA0251702533000 +B1515544551460N00617005EA0251202529000 +B1515574551478N00617031EA0250702525000 +B1516004551499N00617056EA0250402521000 +B1516034551520N00617079EA0250002517000 +B1516064551542N00617102EA0249702513000 +B1516094551565N00617124EA0249402509000 +B1516124551586N00617145EA0249302506000 +B1516154551607N00617165EA0249602502000 +B1516184551625N00617180EA0249802500000 +B1516214551641N00617196EA0249402497000 +B1516244551657N00617216EA0249502495000 +B1516274551674N00617235EA0249102493000 +B1516304551691N00617252EA0249002491000 +B1516334551707N00617268EA0248802489000 +B1516364551723N00617285EA0248502488000 +B1516404551743N00617309EA0248502485000 +B1516434551758N00617324EA0248402483000 +B1516464551772N00617340EA0248102482000 +B1516494551785N00617360EA0247902480000 +B1516524551795N00617384EA0247802478000 +B1516554551803N00617410EA0247802476000 +B1516584551811N00617436EA0248102475000 +B1517014551820N00617461EA0247202473000 +B1517044551832N00617495EA0247102471000 +B1517074551842N00617528EA0247102469000 +B1517104551851N00617562EA0246602467000 +B1517134551862N00617596EA0246502465000 +B1517164551871N00617629EA0246302463000 +B1517194551878N00617662EA0246002461000 +B1517224551882N00617697EA0245402459000 +B1517254551886N00617734EA0245402456000 +B1517284551890N00617769EA0245302454000 +B1517314551895N00617804EA0244602452000 +B1517344551902N00617840EA0244202449000 +B1517374551911N00617875EA0244102447000 +B1517404551921N00617910EA0243702444000 +B1517434551932N00617945EA0243502441000 +B1517464551941N00617977EA0243202439000 +B1517494551951N00618011EA0242502436000 +B1517524551960N00618047EA0242002434000 +B1517554551969N00618083EA0241602431000 +B1517584551977N00618120EA0241102427000 +B1518024551988N00618168EA0240602423000 +B1518054551997N00618205EA0239802419000 +B1518084552007N00618241EA0239402415000 +B1518114552016N00618278EA0238902410000 +B1518144552025N00618313EA0238302406000 +B1518174552034N00618349EA0238002402000 +B1518204552042N00618385EA0237502397000 +B1518234552051N00618419EA0236802392000 +B1518264552061N00618455EA0236202387000 +B1518294552071N00618492EA0235702382000 +B1518324552081N00618528EA0235002377000 +B1518354552091N00618563EA0234402372000 +B1518384552101N00618596EA0233502367000 +B1518414552111N00618631EA0233102361000 +B1518444552121N00618665EA0232702356000 +B1518474552129N00618697EA0232402351000 +B1518504552135N00618729EA0231302346000 +B1518534552144N00618764EA0231002340000 +B1518564552154N00618797EA0230702335000 +B1518594552164N00618831EA0230002330000 +B1519024552175N00618864EA0229602326000 +B1519054552184N00618899EA0228902321000 +B1519084552192N00618935EA0228402316000 +B1519114552203N00618971EA0228202311000 +B1519144552212N00619006EA0228002306000 +B1519174552222N00619038EA0227502302000 +B1519204552230N00619072EA0227102297000 +B1519244552241N00619117EA0226802291000 +B1519274552249N00619148EA0226002287000 +B1519304552258N00619181EA0225202282000 +B1519334552266N00619215EA0224902277000 +B1519364552274N00619248EA0224602272000 +B1519394552282N00619280EA0224102267000 +B1519424552290N00619313EA0223702263000 +B1519454552298N00619346EA0223202258000 +B1519484552307N00619378EA0222702253000 +B1519514552315N00619411EA0222302248000 +B1519544552324N00619445EA0222002243000 +B1519574552332N00619479EA0221702239000 +B1520004552341N00619512EA0221302234000 +B1520034552349N00619546EA0220902230000 +B1520064552358N00619578EA0220502225000 +B1520094552367N00619611EA0220002221000 +B1520124552375N00619644EA0219602216000 +B1520154552384N00619678EA0219302212000 +B1520184552392N00619711EA0219102208000 +B1520214552399N00619744EA0218702204000 +B1520244552406N00619778EA0218502200000 +B1520274552414N00619812EA0218202196000 +B1520304552423N00619846EA0217802192000 +B1520334552431N00619879EA0217502189000 +B1520364552439N00619912EA0217102185000 +B1520404552450N00619954EA0216702180000 +B1520434552458N00619987EA0216302177000 +B1520464552466N00620021EA0216102173000 +B1520494552474N00620056EA0215802170000 +B1520524552482N00620091EA0215302167000 +B1520554552488N00620127EA0215102163000 +B1520584552495N00620161EA0214702159000 +B1521014552503N00620195EA0214202156000 +B1521044552511N00620230EA0213802152000 +B1521074552519N00620264EA0213702149000 +B1521104552527N00620298EA0212902145000 +B1521134552536N00620333EA0212402142000 +B1521164552544N00620367EA0212102138000 +B1521194552553N00620402EA0211602134000 +B1521224552563N00620436EA0211302130000 +B1521254552573N00620468EA0210802127000 +B1521284552583N00620502EA0210202123000 +B1521314552594N00620535EA0209702119000 +B1521344552604N00620568EA0209102115000 +B1521374552614N00620602EA0208502110000 +B1521404552624N00620637EA0208402106000 +B1521434552633N00620671EA0208102102000 +B1521464552641N00620706EA0207602097000 +B1521494552648N00620741EA0207102093000 +B1521524552656N00620777EA0206602089000 +B1521564552667N00620823EA0206302083000 +B1521594552675N00620858EA0205802079000 +B1522024552682N00620893EA0205502074000 +B1522054552689N00620928EA0205002070000 +B1522084552696N00620964EA0204602066000 +B1522114552703N00621000EA0204202061000 +B1522144552711N00621034EA0203602057000 +B1522174552720N00621070EA0203102053000 +B1522204552728N00621106EA0202602049000 +B1522234552736N00621142EA0202102045000 +B1522264552745N00621178EA0201702041000 +B1522294552754N00621213EA0201202037000 +B1522324552762N00621247EA0200802033000 +B1522354552768N00621280EA0200502028000 +B1522384552774N00621312EA0199902024000 +B1522414552781N00621345EA0199502020000 +B1522444552788N00621378EA0199102015000 +B1522474552796N00621410EA0198202010000 +B1522504552804N00621445EA0197902006000 +B1522534552812N00621479EA0197402001000 +B1522564552820N00621512EA0197001996000 +B1522594552827N00621545EA0196401991000 +B1523024552834N00621579EA0195801986000 +B1523054552841N00621613EA0195301981000 +B1523084552847N00621647EA0194801976000 +B1523124552854N00621694EA0194301970000 +B1523154552860N00621729EA0193801965000 +B1523184552866N00621764EA0193401960000 +B1523214552872N00621800EA0192901955000 +B1523244552880N00621836EA0192501950000 +B1523274552887N00621871EA0192101945000 +B1523304552894N00621906EA0191801940000 +B1523334552902N00621940EA0191401936000 +B1523364552910N00621973EA0191301931000 +B1523394552917N00622004EA0190801927000 +B1523424552923N00622037EA0190401922000 +B1523454552931N00622069EA0189901918000 +B1523484552942N00622101EA0190101913000 +B1523514552950N00622129EA0189601909000 +B1523544552959N00622160EA0189001905000 +B1523574552967N00622191EA0188701901000 +B1524004552974N00622225EA0187901897000 +B1524034552981N00622258EA0187901893000 +B1524064552987N00622288EA0186801889000 +B1524094552994N00622323EA0186501884000 +B1524124553002N00622354EA0186101879000 +B1524154553009N00622384EA0185701875000 +B1524184553016N00622412EA0186101871000 +B1524214553023N00622438EA0186101867000 +B1524244553027N00622465EA0186401865000 +B1524274553031N00622491EA0186601862000 +B1524314553034N00622524EA0187301860000 +B1524344553032N00622549EA0187901860000 +B1524374553030N00622577EA0189201860000 +B1524404553026N00622602EA0190201862000 +B1524434553030N00622624EA0190601864000 +B1524464553042N00622635EA0191701867000 +B1524494553050N00622631EA0193101869000 +B1524524553054N00622620EA0194401872000 +B1524554553050N00622605EA0195501877000 +B1524584553035N00622600EA0196601884000 +B1525014553018N00622610EA0197801892000 +B1525044553007N00622626EA0198301900000 +B1525074553003N00622648EA0199201907000 +B1525104553007N00622664EA0200101916000 +B1525134553014N00622665EA0201101921000 +B1525164553016N00622652EA0202301929000 +B1525194553006N00622637EA0203301939000 +B1525224552991N00622630EA0204001948000 +B1525254552976N00622641EA0204501957000 +B1525284552967N00622660EA0205301965000 +B1525314552965N00622680EA0205901974000 +B1525344552972N00622694EA0206501982000 +B1525374552981N00622690EA0207901990000 +B1525404552984N00622681EA0208601995000 +B1525434552988N00622667EA0209502003000 +B1525464552989N00622653EA0210002012000 +B1525494552985N00622633EA0211002021000 +B1525524552972N00622622EA0211602029000 +B1525554552955N00622625EA0211702038000 +B1525584552943N00622643EA0211602045000 +B1526014552942N00622665EA0212102052000 +B1526044552951N00622677EA0212702058000 +B1526074552961N00622678EA0212902064000 +B1526114552971N00622661EA0213502072000 +B1526144552974N00622646EA0214102077000 +B1526174552974N00622628EA0214502082000 +B1526204552968N00622611EA0214702087000 +B1526234552954N00622602EA0214302091000 +B1526264552941N00622614EA0213702095000 +B1526294552939N00622637EA0214002098000 +B1526324552945N00622656EA0214202101000 +B1526354552954N00622670EA0214802105000 +B1526384552962N00622679EA0215302108000 +B1526414552967N00622692EA0215102111000 +B1526444552969N00622715EA0216102115000 +B1526474552966N00622734EA0217102119000 +B1526504552959N00622753EA0217902124000 +B1526534552945N00622771EA0218802129000 +B1526564552926N00622773EA0219702135000 +B1526594552910N00622767EA0220302141000 +B1527024552896N00622749EA0221002146000 +B1527054552887N00622732EA0221302152000 +B1527084552887N00622715EA0221202157000 +B1527114552894N00622712EA0221202160000 +B1527144552901N00622726EA0221602165000 +B1527174552905N00622743EA0222002169000 +B1527204552910N00622759EA0222602173000 +B1527234552918N00622762EA0223102176000 +B1527264552926N00622759EA0224002180000 +B1527294552934N00622759EA0224702183000 +B1527324552941N00622763EA0225202186000 +B1527354552943N00622776EA0225402191000 +B1527384552938N00622792EA0225602197000 +B1527414552926N00622807EA0226302203000 +B1527444552910N00622819EA0227302209000 +B1527484552892N00622810EA0227202216000 +B1527514552885N00622787EA0227302221000 +B1527544552888N00622765EA0227402226000 +B1527574552899N00622762EA0227902230000 +B1528004552907N00622768EA0227602234000 +B1528034552912N00622782EA0227902238000 +B1528064552913N00622800EA0228502241000 +B1528094552913N00622810EA0228802243000 +B1528124552911N00622825EA0229002247000 +B1528154552905N00622845EA0228802250000 +B1528184552897N00622869EA0229002253000 +B1528214552893N00622902EA0229702256000 +B1528244552893N00622931EA0230902260000 +B1528274552891N00622961EA0231902264000 +B1528304552879N00622993EA0234002269000 +B1528334552862N00623012EA0235702276000 +B1528364552844N00623018EA0236902284000 +B1528394552831N00623005EA0237602291000 +B1528424552830N00622985EA0238202299000 +B1528454552839N00622971EA0239102307000 +B1528484552853N00622974EA0240302315000 +B1528514552861N00622990EA0241602324000 +B1528544552865N00623013EA0242902333000 +B1528574552856N00623041EA0244902343000 +B1529004552839N00623061EA0246502354000 +B1529034552819N00623079EA0247802365000 +B1529064552803N00623080EA0248802377000 +B1529094552790N00623072EA0249302389000 +B1529124552783N00623051EA0250402400000 +B1529154552792N00623036EA0252002411000 +B1529184552802N00623041EA0253502422000 +B1529214552805N00623058EA0254402433000 +B1529254552810N00623087EA0256002448000 +B1529284552812N00623110EA0257002460000 +B1529314552820N00623129EA0257702471000 +B1529344552828N00623149EA0258302481000 +B1529374552833N00623172EA0258802491000 +B1529404552837N00623197EA0259602501000 +B1529434552844N00623221EA0260102510000 +B1529464552849N00623249EA0260802519000 +B1529494552853N00623276EA0261902528000 +B1529524552857N00623300EA0263102537000 +B1529554552860N00623322EA0263402546000 +B1529584552865N00623347EA0265002555000 +B1530014552869N00623367EA0265802565000 +B1530044552875N00623394EA0266702574000 +B1530074552889N00623419EA0267802583000 +B1530104552901N00623445EA0267902592000 +B1530134552909N00623479EA0268902601000 +B1530164552914N00623512EA0269302609000 +B1530194552919N00623545EA0269602618000 +B1530224552925N00623577EA0269702626000 +B1530254552929N00623607EA0268902633000 +B1530284552933N00623639EA0268102638000 +B1530314552940N00623673EA0267502642000 +B1530344552946N00623705EA0267202645000 +B1530374552954N00623736EA0266902647000 +B1530404552962N00623767EA0266202649000 +B1530434552969N00623800EA0265402649000 +B1530464552975N00623836EA0265402649000 +B1530494552981N00623869EA0264602648000 +B1530524552988N00623904EA0264202647000 +B1530554552997N00623939EA0264002645000 +B1530584553007N00623972EA0263602643000 +B1531024553020N00624017EA0263402640000 +B1531054553030N00624050EA0262902638000 +B1531084553041N00624082EA0262602635000 +B1531114553054N00624111EA0262002633000 +B1531144553065N00624141EA0261302630000 +B1531174553078N00624171EA0260902626000 +B1531204553089N00624201EA0260402623000 +B1531234553101N00624231EA0259802619000 +B1531264553113N00624265EA0259402615000 +B1531294553125N00624299EA0259402612000 +B1531324553134N00624331EA0259102608000 +B1531354553143N00624364EA0258902605000 +B1531384553151N00624398EA0258902602000 +B1531414553159N00624429EA0258502599000 +B1531444553168N00624462EA0257802596000 +B1531474553176N00624494EA0257502593000 +B1531504553185N00624523EA0256902589000 +B1531534553194N00624554EA0256502586000 +B1531564553205N00624582EA0256202582000 +B1531594553214N00624609EA0255602579000 +B1532024553223N00624638EA0255002575000 +B1532054553232N00624667EA0254502571000 +B1532084553241N00624697EA0254102566000 +B1532114553250N00624727EA0253702562000 +B1532144553258N00624757EA0253402558000 +B1532184553269N00624796EA0253102553000 +B1532214553276N00624826EA0252402549000 +B1532244553285N00624857EA0252002544000 +B1532274553294N00624888EA0251902540000 +B1532304553303N00624919EA0251302536000 +B1532334553312N00624953EA0250802531000 +B1532364553319N00624986EA0250302526000 +B1532394553327N00625019EA0249802522000 +B1532424553335N00625051EA0249502518000 +B1532454553344N00625082EA0249002513000 +B1532484553352N00625114EA0248602509000 +B1532514553361N00625147EA0248302504000 +B1532544553368N00625179EA0247902500000 +B1532574553375N00625212EA0247302496000 +B1533004553380N00625245EA0246902492000 +B1533034553386N00625278EA0246402488000 +B1533064553391N00625310EA0245902484000 +B1533094553395N00625342EA0245302480000 +B1533124553401N00625375EA0245002476000 +B1533154553408N00625406EA0244402471000 +B1533184553416N00625437EA0244002467000 +B1533214553426N00625468EA0243602462000 +B1533244553435N00625498EA0243002457000 +B1533274553444N00625529EA0242602453000 +B1533304553453N00625560EA0242202448000 +B1533344553464N00625602EA0241902442000 +B1533374553472N00625632EA0241602437000 +B1533404553480N00625661EA0241002433000 +B1533434553487N00625693EA0240702428000 +B1533464553492N00625725EA0240502424000 +B1533494553496N00625756EA0240002419000 +B1533524553500N00625788EA0239602415000 +B1533554553504N00625820EA0239202411000 +B1533584553508N00625853EA0238802406000 +B1534014553511N00625885EA0238202402000 +B1534044553514N00625917EA0237702397000 +B1534074553517N00625950EA0237202393000 +B1534104553518N00625983EA0236702388000 +B1534134553519N00626016EA0236202384000 +B1534164553521N00626050EA0235702379000 +B1534194553523N00626084EA0235202375000 +B1534224553525N00626117EA0234802371000 +B1534254553528N00626151EA0234402366000 +B1534284553531N00626184EA0233902362000 +B1534314553533N00626217EA0233302358000 +B1534344553537N00626249EA0232802353000 +B1534374553541N00626283EA0232302349000 +B1534404553545N00626316EA0232002344000 +B1534434553550N00626349EA0231602340000 +B1534464553556N00626381EA0231302335000 +B1534504553562N00626424EA0231002329000 +B1534534553566N00626455EA0230702325000 +B1534564553570N00626487EA0230302321000 +B1534594553575N00626516EA0230002316000 +B1535024553579N00626545EA0229302312000 +B1535054553583N00626576EA0228702307000 +B1535084553587N00626608EA0228202303000 +B1535114553591N00626639EA0227902298000 +B1535144553595N00626670EA0227402294000 +B1535174553598N00626702EA0227002289000 +B1535204553601N00626733EA0226702285000 +B1535234553603N00626764EA0225902280000 +B1535264553604N00626795EA0225302276000 +B1535294553605N00626828EA0224702272000 +B1535324553606N00626861EA0224402267000 +B1535354553608N00626894EA0224102263000 +B1535384553609N00626927EA0223802258000 +B1535414553609N00626960EA0223502254000 +B1535444553610N00626993EA0223202250000 +B1535474553611N00627025EA0222802246000 +B1535504553612N00627058EA0222502242000 +B1535534553614N00627091EA0222102238000 +B1535564553617N00627123EA0221502234000 +B1535594553619N00627156EA0221302230000 +B1536024553622N00627188EA0221002226000 +B1536064553625N00627229EA0220602221000 +B1536094553628N00627259EA0220202218000 +B1536124553630N00627290EA0219902214000 +B1536154553632N00627321EA0219602210000 +B1536184553635N00627352EA0219302206000 +B1536214553638N00627383EA0219002203000 +B1536244553641N00627414EA0218802199000 +B1536274553645N00627444EA0218502196000 +B1536304553648N00627475EA0218402193000 +B1536334553652N00627505EA0218102190000 +B1536364553656N00627535EA0217802187000 +B1536394553661N00627564EA0217502184000 +B1536424553666N00627594EA0217402181000 +B1536454553672N00627623EA0217102178000 +B1536484553678N00627652EA0216802175000 +B1536514553685N00627682EA0216502172000 +B1536544553692N00627711EA0216002169000 +B1536574553700N00627740EA0215702166000 +B1537004553708N00627769EA0215402163000 +B1537034553716N00627798EA0215002160000 +B1537064553724N00627827EA0214902157000 +B1537094553731N00627856EA0214202154000 +B1537124553738N00627885EA0214002151000 +B1537154553745N00627915EA0213702148000 +B1537184553752N00627945EA0213202145000 +B1537224553760N00627986EA0213102140000 +B1537254553766N00628016EA0212602137000 +B1537284553773N00628047EA0212002134000 +B1537314553779N00628079EA0211602130000 +B1537344553785N00628111EA0211102126000 +B1537374553791N00628143EA0210502122000 +B1537404553797N00628177EA0210102118000 +B1537434553802N00628210EA0209702114000 +B1537464553807N00628244EA0209302110000 +B1537494553813N00628278EA0209002106000 +B1537524553820N00628312EA0208702102000 +B1537554553827N00628346EA0208302098000 +B1537584553835N00628380EA0208002094000 +B1538014553842N00628415EA0207802090000 +B1538044553850N00628450EA0207402086000 +B1538074553858N00628484EA0207502083000 +B1538104553864N00628513EA0208102080000 +B1538134553869N00628536EA0208002078000 +B1538164553873N00628562EA0208102076000 +B1538194553879N00628585EA0207902074000 +B1538224553886N00628609EA0207602072000 +B1538254553894N00628631EA0207202070000 +B1538284553902N00628654EA0207102069000 +B1538314553907N00628676EA0206502067000 +B1538344553910N00628701EA0206302064000 +B1538384553916N00628732EA0206102062000 +B1538414553921N00628754EA0206002060000 +B1538444553927N00628775EA0206102058000 +B1538474553935N00628793EA0205802056000 +B1538504553945N00628810EA0205702054000 +B1538534553954N00628826EA0205602052000 +B1538564553964N00628843EA0205402051000 +B1538594553973N00628859EA0205202049000 +B1539024553983N00628878EA0205202048000 +B1539054553992N00628897EA0205002046000 +B1539084554002N00628916EA0205002045000 +B1539114554012N00628934EA0204702044000 +B1539144554024N00628952EA0204502042000 +B1539174554035N00628968EA0204302041000 +B1539204554048N00628984EA0203902039000 +B1539234554060N00629002EA0203702037000 +B1539264554073N00629020EA0203402035000 +B1539294554085N00629039EA0203402033000 +B1539324554096N00629059EA0203302031000 +B1539354554107N00629079EA0203202030000 +B1539384554120N00629098EA0203302028000 +B1539414554133N00629115EA0203802027000 +B1539444554144N00629131EA0203602026000 +B1539474554155N00629150EA0203502025000 +B1539504554167N00629165EA0203402025000 +B1539544554184N00629179EA0203302024000 +B1539574554197N00629187EA0203202023000 +B1540004554211N00629195EA0203102023000 +B1540034554226N00629198EA0202902022000 +B1540064554241N00629199EA0202902022000 +B1540094554255N00629200EA0202902021000 +B1540124554268N00629202EA0202902020000 +B1540154554281N00629203EA0202902020000 +B1540184554295N00629200EA0203202019000 +B1540214554307N00629199EA0203502019000 +B1540244554320N00629196EA0203702019000 +B1540274554332N00629198EA0204002020000 +B1540304554344N00629204EA0204302021000 +B1540334554357N00629214EA0204402022000 +B1540364554370N00629225EA0204802023000 +B1540394554382N00629234EA0205102024000 +B1540424554395N00629243EA0205302026000 +B1540454554408N00629250EA0205602028000 +B1540484554421N00629253EA0206002029000 +B1540514554433N00629255EA0206302031000 +B1540544554441N00629248EA0206702033000 +B1540574554442N00629234EA0207502035000 +B1541004554439N00629224EA0207302036000 +B1541034554429N00629210EA0207502039000 +B1541064554413N00629212EA0207602041000 +B1541094554404N00629232EA0208102044000 +B1541124554407N00629255EA0208302046000 +B1541154554417N00629274EA0208502049000 +B1541194554437N00629283EA0209402053000 +B1541224554447N00629281EA0210402056000 +B1541254554453N00629272EA0211102060000 +B1541284554445N00629261EA0211802064000 +B1541314554430N00629271EA0212402069000 +B1541344554427N00629296EA0212802074000 +B1541374554435N00629317EA0213902078000 +B1541404554447N00629330EA0214502083000 +B1541434554459N00629329EA0214802089000 +B1541464554462N00629311EA0215202094000 +B1541494554454N00629298EA0216102099000 +B1541524554439N00629307EA0216702104000 +B1541554554432N00629332EA0217102109000 +B1541584554441N00629356EA0218102115000 +B1542014554455N00629361EA0218602121000 +B1542044554461N00629347EA0218802127000 +B1542074554460N00629328EA0219502132000 +B1542104554447N00629321EA0219702138000 +B1542134554433N00629338EA0220202143000 +B1542164554435N00629365EA0220602148000 +B1542194554448N00629375EA0221202153000 +B1542224554454N00629363EA0221302158000 +B1542254554448N00629346EA0222102163000 +B1542284554434N00629350EA0222602168000 +B1542314554423N00629370EA0222802174000 +B1542344554423N00629397EA0223002179000 +B1542374554433N00629418EA0223602184000 +B1542404554445N00629422EA0223802189000 +B1542434554453N00629408EA0223702193000 +B1542464554455N00629389EA0224402198000 +B1542504554442N00629377EA0225002204000 +B1542534554427N00629387EA0226002208000 +B1542564554423N00629411EA0226602213000 +B1542594554434N00629425EA0226802217000 +B1543024554444N00629419EA0227302222000 +B1543054554447N00629406EA0228102225000 +B1543084554441N00629394EA0229102230000 +B1543114554429N00629389EA0229802235000 +B1543144554414N00629401EA0230502241000 +B1543174554408N00629424EA0231402247000 +B1543204554417N00629442EA0231602253000 +B1543234554431N00629443EA0232502259000 +B1543264554438N00629431EA0233202265000 +B1543294554436N00629416EA0234002271000 +B1543324554422N00629407EA0234602277000 +B1543354554407N00629407EA0235202283000 +B1543384554394N00629418EA0235702289000 +B1543414554387N00629438EA0235902295000 +B1543444554392N00629460EA0236302301000 +B1543474554405N00629469EA0237002307000 +B1543504554415N00629460EA0237502313000 +B1543534554411N00629444EA0238302319000 +B1543564554399N00629441EA0238602325000 +B1543594554388N00629455EA0238802330000 +B1544024554383N00629477EA0239202336000 +B1544054554387N00629498EA0239502341000 +B1544084554399N00629510EA0239902346000 +B1544114554409N00629504EA0240402351000 +B1544144554411N00629490EA0241002355000 +B1544184554397N00629476EA0241502362000 +B1544214554383N00629482EA0241602366000 +B1544244554371N00629498EA0241702371000 +B1544274554373N00629521EA0241702374000 +B1544304554384N00629530EA0242302378000 +B1544334554393N00629522EA0242302382000 +B1544364554400N00629506EA0242802385000 +B1544394554401N00629492EA0242702388000 +B1544424554395N00629474EA0243002391000 +B1544454554381N00629470EA0243002394000 +B1544484554366N00629480EA0242902396000 +B1544514554359N00629503EA0242802398000 +B1544544554364N00629526EA0242702400000 +B1544574554376N00629540EA0243102402000 +B1545004554388N00629547EA0243102404000 +B1545034554403N00629548EA0243202406000 +B1545064554415N00629539EA0243302408000 +B1545094554419N00629523EA0243502410000 +B1545124554418N00629506EA0243902412000 +B1545154554409N00629492EA0244402414000 +B1545184554395N00629488EA0244402416000 +B1545214554380N00629491EA0244102418000 +B1545244554367N00629506EA0244102420000 +B1545274554364N00629530EA0243902421000 +B1545304554373N00629550EA0243602422000 +B1545334554388N00629552EA0243602422000 +B1545364554398N00629538EA0243702423000 +B1545404554398N00629513EA0243902424000 +B1545434554393N00629497EA0244002424000 +B1545464554386N00629484EA0243902425000 +B1545494554375N00629473EA0243702426000 +B1545524554359N00629473EA0243402426000 +B1545554554344N00629485EA0243402426000 +B1545584554335N00629506EA0243102426000 +B1546014554335N00629532EA0242802425000 +B1546044554344N00629554EA0243002424000 +B1546074554358N00629571EA0243802424000 +B1546104554370N00629584EA0244402424000 +B1546134554382N00629596EA0244702425000 +B1546164554396N00629598EA0244902426000 +B1546194554406N00629587EA0245702428000 +B1546224554410N00629572EA0246002430000 +B1546254554406N00629558EA0245902432000 +B1546284554392N00629556EA0245902433000 +B1546314554379N00629571EA0246102435000 +B1546344554374N00629596EA0246902437000 +B1546374554378N00629618EA0247402439000 +B1546404554390N00629632EA0247802442000 +B1546434554404N00629631EA0248402445000 +B1546464554410N00629619EA0248802447000 +B1546494554405N00629607EA0248702449000 +B1546524554393N00629600EA0248702452000 +B1546554554378N00629607EA0248902455000 +B1546584554366N00629626EA0249502458000 +B1547024554366N00629662EA0250102462000 +B1547054554376N00629684EA0250602465000 +B1547084554388N00629694EA0250702469000 +B1547114554401N00629695EA0250702472000 +B1547144554409N00629683EA0250702474000 +B1547174554407N00629667EA0250902477000 +B1547204554397N00629659EA0250902479000 +B1547234554382N00629659EA0250802481000 +B1547264554366N00629668EA0251402483000 +B1547294554354N00629683EA0252202485000 +B1547324554343N00629695EA0252402488000 +B1547354554330N00629698EA0252702491000 +B1547384554319N00629689EA0253202493000 +B1547414554318N00629672EA0254302497000 +B1547444554322N00629658EA0255102501000 +B1547474554331N00629648EA0255302505000 +B1547504554348N00629651EA0255402509000 +B1547534554359N00629666EA0255202513000 +B1547564554364N00629693EA0255002516000 +B1547594554355N00629716EA0255202518000 +B1548024554340N00629721EA0255702521000 +B1548054554330N00629710EA0256602524000 +B1548084554324N00629699EA0257202527000 +B1548114554322N00629686EA0257302530000 +B1548144554322N00629670EA0257802534000 +B1548174554331N00629658EA0257302537000 +B1548204554346N00629655EA0257002540000 +B1548234554359N00629671EA0256702542000 +B1548274554357N00629705EA0256502544000 +B1548304554343N00629717EA0256702546000 +B1548334554328N00629715EA0257302547000 +B1548364554315N00629708EA0257602549000 +B1548394554305N00629696EA0257902551000 +B1548424554298N00629683EA0258502553000 +B1548454554295N00629670EA0259402555000 +B1548484554293N00629657EA0260302559000 +B1548514554293N00629643EA0260602562000 +B1548544554301N00629632EA0260802566000 +B1548574554314N00629637EA0260802570000 +B1549004554325N00629655EA0260902573000 +B1549034554327N00629679EA0260702576000 +B1549064554320N00629705EA0261302579000 +B1549094554308N00629720EA0262102582000 +B1549124554293N00629725EA0262502586000 +B1549154554278N00629718EA0263202590000 +B1549184554270N00629705EA0264102594000 +B1549214554266N00629687EA0264902599000 +B1549244554269N00629673EA0265702604000 +B1549274554279N00629667EA0265802609000 +B1549304554293N00629672EA0265902613000 +B1549334554300N00629691EA0266002618000 +B1549364554302N00629719EA0266802622000 +B1549394554295N00629741EA0267502626000 +B1549424554284N00629760EA0268002631000 +B1549454554269N00629771EA0268902636000 +B1549484554253N00629779EA0269602641000 +B1549514554238N00629777EA0270202646000 +B1549544554228N00629766EA0270502651000 +B1549574554226N00629750EA0271102656000 +B1550004554226N00629737EA0271502660000 +B1550034554232N00629727EA0272102665000 +B1550074554247N00629736EA0272802673000 +B1550104554256N00629757EA0273502678000 +B1550134554251N00629787EA0274102684000 +B1550164554241N00629809EA0274902689000 +B1550194554230N00629831EA0275002695000 +B1550224554218N00629855EA0275502700000 +B1550254554209N00629876EA0275702705000 +B1550284554201N00629898EA0276202710000 +B1550314554193N00629918EA0275802715000 +B1550344554183N00629941EA0275902719000 +B1550374554174N00629963EA0276202723000 +B1550404554165N00629985EA0276102726000 +B1550434554154N00630006EA0276502729000 +B1550464554144N00630025EA0276702732000 +B1550494554134N00630049EA0276902735000 +B1550524554126N00630073EA0276902738000 +B1550554554117N00630095EA0276802741000 +B1550584554108N00630117EA0276302743000 +B1551014554099N00630139EA0276302744000 +B1551044554090N00630159EA0276002745000 +B1551074554078N00630181EA0275602745000 +B1551104554067N00630202EA0276102746000 +B1551134554059N00630220EA0275402746000 +B1551164554052N00630244EA0274802745000 +B1551194554046N00630270EA0274202744000 +B1551224554039N00630295EA0273402743000 +B1551264554031N00630328EA0272902740000 +B1551294554024N00630352EA0271802737000 +B1551324554016N00630377EA0271202733000 +B1551354554006N00630404EA0270102729000 +B1551384553997N00630434EA0269602724000 +B1551414553989N00630462EA0269002720000 +B1551444553981N00630489EA0268502715000 +B1551474553975N00630517EA0268002710000 +B1551504553971N00630544EA0267502706000 +B1551534553965N00630572EA0267102701000 +B1551564553959N00630599EA0267202696000 +B1551594553953N00630621EA0267002692000 +B1552024553949N00630644EA0266502688000 +B1552054553943N00630668EA0266002684000 +B1552084553938N00630693EA0265502680000 +B1552114553934N00630718EA0265502676000 +B1552144553929N00630740EA0265002672000 +B1552174553923N00630765EA0265102668000 +B1552204553917N00630785EA0265402665000 +B1552234553912N00630805EA0265302662000 +B1552264553907N00630828EA0265402660000 +B1552294553901N00630850EA0265602658000 +B1552324553896N00630872EA0265802656000 +B1552354553892N00630895EA0265802655000 +B1552384553888N00630919EA0266202654000 +B1552414553883N00630941EA0266402654000 +B1552454553875N00630971EA0266502654000 +B1552484553870N00630995EA0266702654000 +B1552514553866N00631019EA0267002655000 +B1552544553861N00631042EA0267202656000 +B1552574553856N00631066EA0267602657000 +B1553004553848N00631089EA0268502658000 +B1553034553841N00631103EA0269102661000 +B1553064553835N00631118EA0269502663000 +B1553094553826N00631128EA0269802666000 +B1553124553815N00631128EA0270102668000 +B1553154553806N00631116EA0270502671000 +B1553184553805N00631098EA0270602674000 +B1553214553812N00631080EA0271102676000 +B1553244553824N00631068EA0271602679000 +B1553274553838N00631064EA0271902682000 +B1553304553851N00631072EA0272402685000 +B1553334553858N00631089EA0272902689000 +B1553364553859N00631106EA0273402692000 +B1553394553856N00631123EA0273702696000 +B1553424553848N00631134EA0273702699000 +B1553454553835N00631132EA0273902703000 +B1553484553825N00631122EA0274302706000 +B1553514553821N00631105EA0274902710000 +B1553544553822N00631087EA0275202714000 +B1553574553831N00631069EA0275602717000 +B1554004553845N00631063EA0276502721000 +B1554034553856N00631071EA0276802725000 +B1554064553864N00631089EA0277502729000 +B1554094553863N00631108EA0278002734000 +B1554134553852N00631122EA0278002740000 +B1554164553840N00631118EA0278302744000 +B1554194553834N00631103EA0278502747000 +B1554224553834N00631083EA0278702751000 +B1554254553842N00631066EA0278802754000 +B1554284553855N00631054EA0279302758000 +B1554314553869N00631057EA0279502761000 +B1554344553878N00631076EA0279902764000 +B1554374553879N00631095EA0280502768000 +B1554404553875N00631110EA0280202771000 +B1554434553869N00631130EA0280202773000 +B1554464553865N00631151EA0280402776000 +B1554494553861N00631173EA0280302778000 +B1554524553857N00631196EA0280502780000 +B1554554553853N00631216EA0280302781000 +B1554584553848N00631239EA0280302783000 +B1555014553844N00631261EA0280102784000 +B1555044553841N00631286EA0280302785000 +B1555074553839N00631312EA0280402786000 +B1555104553837N00631340EA0280502787000 +B1555134553837N00631366EA0280702789000 +B1555164553837N00631391EA0280902790000 +B1555194553836N00631414EA0281302791000 +B1555224553833N00631438EA0281602793000 +B1555254553833N00631460EA0281802795000 +B1555284553830N00631483EA0281902796000 +B1555314553827N00631507EA0282102798000 +B1555354553820N00631539EA0282202800000 +B1555384553817N00631564EA0282702802000 +B1555414553814N00631585EA0282502803000 +B1555444553811N00631609EA0282202805000 +B1555474553808N00631632EA0281702806000 +B1555504553805N00631657EA0281202806000 +B1555534553803N00631681EA0280702805000 +B1555564553801N00631705EA0280302804000 +B1555594553796N00631727EA0279502803000 +B1556024553792N00631751EA0279002801000 +B1556054553787N00631776EA0278602799000 +B1556084553781N00631798EA0278202796000 +B1556114553777N00631822EA0277702794000 +B1556144553773N00631845EA0277502791000 +B1556174553768N00631868EA0276902789000 +B1556204553764N00631892EA0276602786000 +B1556234553760N00631915EA0276102783000 +B1556264553756N00631938EA0275802780000 +B1556294553752N00631962EA0275802776000 +B1556324553747N00631985EA0275402773000 +B1556354553743N00632008EA0275402770000 +B1556384553739N00632031EA0275202767000 +B1556414553735N00632055EA0275002765000 +B1556444553731N00632076EA0274602762000 +B1556474553726N00632101EA0274502759000 +B1556504553722N00632126EA0274902757000 +B1556534553720N00632150EA0275102755000 +B1556574553717N00632186EA0275702753000 +B1557004553716N00632212EA0276402752000 +B1557034553713N00632235EA0277002753000 +B1557064553706N00632255EA0277502754000 +B1557094553696N00632272EA0277902755000 +B1557124553682N00632276EA0277902757000 +B1557154553669N00632266EA0278002758000 +B1557184553666N00632247EA0278102759000 +B1557214553673N00632228EA0278502761000 +B1557244553687N00632218EA0278502763000 +B1557274553703N00632217EA0278802765000 +B1557304553717N00632229EA0279202767000 +B1557334553725N00632249EA0279502769000 +B1557364553725N00632272EA0279902771000 +B1557394553717N00632288EA0280202774000 +B1557424553704N00632296EA0280702776000 +B1557454553691N00632296EA0280602779000 +B1557484553680N00632284EA0280602781000 +B1557514553678N00632263EA0280502782000 +B1557544553686N00632245EA0280402783000 +B1557574553702N00632245EA0280202784000 +B1558004553716N00632265EA0280702785000 +B1558034553720N00632287EA0281002786000 +B1558064553717N00632309EA0281302788000 +B1558094553711N00632326EA0281502789000 +B1558124553705N00632345EA0281802791000 +B1558154553699N00632366EA0282302792000 +B1558184553694N00632387EA0283102795000 +B1558224553690N00632416EA0283902799000 +B1558254553691N00632439EA0284702803000 +B1558284553701N00632459EA0285402807000 +B1558314553719N00632464EA0286302811000 +B1558344553734N00632454EA0287002816000 +B1558374553739N00632438EA0287702822000 +B1558404553731N00632427EA0288402827000 +B1558434553719N00632433EA0288902833000 +B1558464553710N00632448EA0289702839000 +B1558494553707N00632469EA0290502845000 +B1558524553706N00632492EA0291002851000 +B1558554553706N00632514EA0290902857000 +B1558584553706N00632537EA0290802862000 +B1559014553706N00632560EA0291002867000 +B1559044553705N00632583EA0290802871000 +B1559074553707N00632606EA0291002874000 +B1559104553710N00632627EA0291002877000 +B1559134553712N00632652EA0291202880000 +B1559164553717N00632678EA0291502883000 +B1559194553722N00632703EA0291002886000 +B1559224553726N00632733EA0290502888000 +B1559254553727N00632760EA0289902889000 +B1559284553725N00632786EA0288902889000 +B1559314553724N00632816EA0288402888000 +B1559344553721N00632844EA0287702886000 +B1559374553717N00632873EA0287102884000 +B1559404553712N00632902EA0286502881000 +B1559434553708N00632932EA0285902878000 +B1559464553704N00632964EA0285902875000 +B1559494553700N00632992EA0285602872000 +B1559534553692N00633029EA0284702868000 +B1559564553686N00633057EA0284202864000 +B1559594553679N00633085EA0283902861000 +B1600024553673N00633113EA0283602858000 +B1600054553668N00633141EA0283202854000 +B1600084553664N00633170EA0283002851000 +B1600114553660N00633201EA0282602847000 +B1600144553656N00633231EA0282502844000 +B1600174553652N00633260EA0282402841000 +B1600204553647N00633290EA0282202838000 +B1600234553643N00633319EA0282102836000 +B1600264553637N00633347EA0281502833000 +B1600294553631N00633376EA0281302830000 +B1600324553624N00633404EA0280702827000 +B1600354553618N00633433EA0280502824000 +B1600384553614N00633459EA0280302821000 +B1600414553612N00633484EA0279702818000 +B1600444553610N00633511EA0279502815000 +B1600474553609N00633539EA0279502812000 +B1600504553609N00633567EA0279902809000 +B1600534553608N00633591EA0279702807000 +B1600564553606N00633618EA0279202804000 +B1600594553605N00633646EA0278902802000 +B1601024553605N00633673EA0278402799000 +B1601054553604N00633700EA0278002796000 +B1601094553603N00633737EA0277602792000 +B1601124553602N00633765EA0277302789000 +B1601154553601N00633792EA0277102786000 +B1601184553601N00633821EA0276802783000 +B1601214553600N00633850EA0276802781000 +B1601244553599N00633880EA0276602778000 +B1601274553599N00633911EA0276502775000 +B1601304553599N00633940EA0276402773000 +B1601334553598N00633968EA0275802771000 +B1601364553598N00634000EA0275302768000 +B1601394553598N00634032EA0275302765000 +B1601424553599N00634061EA0274802762000 +B1601454553600N00634093EA0274502759000 +B1601484553602N00634122EA0274202756000 +B1601514553604N00634151EA0274002753000 +B1601544553607N00634180EA0273802750000 +B1601574553609N00634209EA0273502748000 +B1602004553611N00634238EA0273302745000 +B1602034553614N00634266EA0273202742000 +B1602064553617N00634294EA0273002739000 +B1602094553620N00634321EA0272802737000 +B1602124553624N00634348EA0272502734000 +B1602154553626N00634376EA0272302732000 +B1602184553628N00634403EA0272002729000 +B1602214553628N00634431EA0271802727000 +B1602244553629N00634457EA0271402723000 +B1602284553627N00634495EA0271402721000 +B1602314553625N00634521EA0271302719000 +B1602344553622N00634548EA0270802716000 +B1602374553618N00634575EA0270702714000 +B1602404553616N00634601EA0270402711000 +B1602434553614N00634629EA0270102709000 +B1602464553612N00634657EA0269802706000 +B1602494553611N00634685EA0269502704000 +B1602524553609N00634713EA0269202701000 +B1602554553608N00634742EA0269002698000 +B1602584553608N00634771EA0268802696000 +B1603014553608N00634800EA0268402693000 +B1603044553609N00634829EA0268002691000 +B1603074553609N00634858EA0267802688000 +B1603104553610N00634888EA0267402686000 +B1603134553610N00634915EA0267102683000 +B1603164553610N00634943EA0266602680000 +B1603194553610N00634972EA0266302677000 +B1603224553611N00635001EA0265902674000 +B1603254553611N00635030EA0265502671000 +B1603284553611N00635059EA0265102667000 +B1603314553610N00635088EA0264702664000 +B1603344553610N00635117EA0264202660000 +B1603374553610N00635146EA0263702657000 +B1603404553610N00635175EA0263302653000 +B1603444553607N00635213EA0263002648000 +B1603474553605N00635243EA0262602644000 +B1603504553602N00635270EA0262202640000 +B1603534553599N00635299EA0261802637000 +B1603564553597N00635327EA0261602633000 +B1603594553595N00635354EA0261202629000 +B1604024553593N00635382EA0260802625000 +B1604054553590N00635409EA0260302621000 +B1604084553588N00635437EA0260002618000 +B1604114553586N00635465EA0259702614000 +B1604144553584N00635494EA0259402610000 +B1604174553583N00635522EA0259102607000 +B1604204553583N00635550EA0258702603000 +B1604234553581N00635578EA0258402599000 +B1604264553579N00635607EA0258102596000 +B1604294553577N00635636EA0257702592000 +B1604324553576N00635665EA0257402589000 +B1604354553575N00635693EA0257202585000 +B1604384553574N00635722EA0257002582000 +B1604414553574N00635751EA0256702579000 +B1604444553573N00635779EA0256402576000 +B1604474553573N00635808EA0256102573000 +B1604504553573N00635837EA0256002570000 +B1604534553572N00635866EA0255702567000 +B1604564553570N00635894EA0255602564000 +B1605004553567N00635933EA0255502561000 +B1605034553565N00635962EA0255102558000 +B1605064553562N00635991EA0254902556000 +B1605094553560N00636019EA0254802553000 +B1605124553557N00636049EA0254502551000 +B1605154553554N00636078EA0254502549000 +B1605184553551N00636107EA0254402547000 +B1605214553548N00636136EA0254202545000 +B1605244553546N00636164EA0253802543000 +B1605274553545N00636194EA0253702541000 +B1605304553544N00636223EA0253502538000 +B1605334553545N00636251EA0253202536000 +B1605364553545N00636280EA0252802534000 +B1605394553546N00636309EA0252502532000 +B1605424553546N00636337EA0252302530000 +B1605454553545N00636365EA0252002528000 +B1605484553545N00636393EA0251702525000 +B1605514553545N00636422EA0251502523000 +B1605544553546N00636450EA0251302520000 +B1605574553546N00636479EA0251102518000 +B1606004553545N00636508EA0251002516000 +B1606034553543N00636537EA0250802513000 +B1606064553542N00636565EA0250702511000 +B1606094553541N00636593EA0250502509000 +B1606124553539N00636619EA0250202507000 +B1606154553538N00636647EA0250102505000 +B1606184553537N00636673EA0249802502000 +B1606214553536N00636701EA0249602500000 +B1606244553535N00636727EA0249302498000 +B1606284553533N00636763EA0249002495000 +B1606314553531N00636790EA0248802493000 +B1606344553528N00636817EA0248602491000 +B1606374553525N00636844EA0248502489000 +B1606404553522N00636870EA0248302486000 +B1606434553520N00636897EA0248202484000 +B1606464553518N00636923EA0248002483000 +B1606494553515N00636950EA0247802481000 +B1606524553513N00636977EA0247702479000 +B1606554553511N00637003EA0247502477000 +B1606584553510N00637030EA0247402475000 +B1607014553508N00637057EA0247202474000 +B1607044553507N00637084EA0247002472000 +B1607074553507N00637110EA0246802470000 +B1607104553507N00637137EA0246602469000 +B1607134553507N00637164EA0246402467000 +B1607164553507N00637191EA0246202465000 +B1607194553507N00637217EA0246002463000 +B1607224553507N00637244EA0245802462000 +B1607254553507N00637270EA0245602460000 +B1607284553507N00637297EA0245402459000 +B1607314553506N00637324EA0245302457000 +B1607344553505N00637351EA0245002455000 +B1607374553505N00637378EA0244902453000 +B1607404553505N00637404EA0244702452000 +B1607434553505N00637431EA0244402450000 +B1607474553505N00637467EA0244202447000 +B1607504553506N00637494EA0243902445000 +B1607534553507N00637521EA0243602443000 +B1607564553508N00637547EA0243302441000 +B1607594553508N00637574EA0242902439000 +B1608024553508N00637601EA0242602436000 +B1608054553507N00637628EA0242202433000 +B1608084553504N00637656EA0241902431000 +B1608114553500N00637682EA0241702428000 +B1608144553496N00637709EA0241302425000 +B1608174553492N00637735EA0241102422000 +B1608204553487N00637762EA0240702419000 +B1608234553483N00637788EA0240402417000 +B1608264553478N00637815EA0240002414000 +B1608294553473N00637842EA0239802411000 +B1608324553469N00637869EA0239502408000 +B1608354553464N00637896EA0239202405000 +B1608384553460N00637923EA0238902402000 +B1608414553456N00637950EA0238602399000 +B1608444553453N00637977EA0238202396000 +B1608474553450N00638004EA0237902393000 +B1608504553448N00638031EA0237602390000 +B1608534553445N00638058EA0237302387000 +B1608564553443N00638085EA0236802384000 +B1608594553441N00638112EA0236502381000 +B1609024553439N00638140EA0236102377000 +B1609064553436N00638176EA0235702373000 +B1609094553435N00638203EA0235202369000 +B1609124553433N00638231EA0234802366000 +B1609154553432N00638258EA0234402362000 +B1609184553431N00638286EA0234002358000 +B1609214553430N00638313EA0233702355000 +B1609244553429N00638341EA0233202351000 +B1609274553428N00638369EA0232902347000 +B1609304553427N00638396EA0232502344000 +B1609334553425N00638424EA0232202340000 +B1609364553424N00638451EA0231902336000 +B1609394553424N00638479EA0231502333000 +B1609424553424N00638507EA0231202330000 +B1609454553425N00638535EA0230902326000 +B1609484553426N00638563EA0230502323000 +B1609514553426N00638591EA0230302321000 +B1609544553427N00638619EA0230002318000 +B1609574553427N00638648EA0229802315000 +B1610004553427N00638676EA0229502313000 +B1610034553427N00638704EA0229202310000 +B1610064553427N00638732EA0229102307000 +B1610094553427N00638759EA0228902305000 +B1610124553427N00638787EA0228802303000 +B1610154553428N00638815EA0228502300000 +B1610184553428N00638843EA0228302298000 +B1610214553428N00638871EA0228202296000 +B1610244553428N00638899EA0228002293000 +B1610284553428N00638936EA0227802290000 +B1610314553428N00638964EA0227502288000 +B1610344553429N00638993EA0227302286000 +B1610374553428N00639021EA0227102284000 +B1610404553428N00639049EA0226902282000 +B1610434553427N00639077EA0226702280000 +B1610464553427N00639105EA0226302278000 +B1610494553427N00639133EA0226102275000 +B1610524553427N00639160EA0225702273000 +B1610554553427N00639189EA0225502271000 +B1610584553426N00639216EA0225202268000 +B1611014553425N00639243EA0225002266000 +B1611044553424N00639271EA0224702263000 +B1611074553424N00639298EA0224402261000 +B1611104553423N00639326EA0224202258000 +B1611134553422N00639353EA0223802256000 +B1611164553422N00639381EA0223602253000 +B1611194553421N00639409EA0223302251000 +B1611224553421N00639436EA0223102248000 +B1611254553420N00639464EA0222802245000 +B1611284553420N00639492EA0222602243000 +B1611314553420N00639519EA0222302240000 +B1611344553422N00639546EA0222002238000 +B1611374553423N00639573EA0221602235000 +B1611404553425N00639600EA0221202232000 +B1611434553426N00639627EA0220902229000 +B1611464553427N00639654EA0220602227000 +B1611504553426N00639690EA0220402223000 +B1611534553425N00639718EA0220102220000 +B1611564553424N00639745EA0219902217000 +B1611594553423N00639773EA0219902214000 +B1612024553423N00639800EA0219802211000 +B1612054553421N00639827EA0219702209000 +B1612084553419N00639854EA0219702206000 +B1612114553417N00639882EA0219702204000 +B1612144553415N00639910EA0219502202000 +B1612174553413N00639938EA0219502200000 +B1612204553412N00639964EA0219502198000 +B1612234553411N00639991EA0219102196000 +B1612264553409N00640019EA0218902194000 +B1612294553407N00640047EA0218702192000 +B1612324553405N00640075EA0218502190000 +B1612354553404N00640103EA0218402188000 +B1612384553403N00640132EA0218302186000 +B1612414553403N00640161EA0218102184000 +B1612444553404N00640190EA0218002182000 +B1612474553405N00640218EA0218102181000 +B1612504553405N00640246EA0218002179000 +B1612534553404N00640275EA0218102178000 +B1612564553403N00640303EA0217902177000 +B1612594553400N00640333EA0217802175000 +B1613024553398N00640362EA0217902174000 +B1613054553397N00640390EA0217602173000 +B1613084553397N00640420EA0217702172000 +B1613114553398N00640450EA0217602171000 +B1613144553398N00640480EA0217702169000 +B1613184553397N00640519EA0217702168000 +B1613214553397N00640548EA0217502167000 +B1613244553395N00640578EA0217202166000 +B1613274553393N00640607EA0217102164000 +B1613304553389N00640637EA0217002163000 +B1613334553385N00640669EA0217102162000 +B1613364553381N00640699EA0216902161000 +B1613394553380N00640730EA0216402159000 +B1613424553378N00640762EA0216102158000 +B1613454553379N00640794EA0215602156000 +B1613484553379N00640825EA0215002154000 +B1613514553378N00640856EA0214502151000 +B1613544553377N00640887EA0214502148000 +B1613574553377N00640914EA0214202146000 +B1614004553377N00640943EA0213802143000 +B1614034553377N00640975EA0213702140000 +B1614064553377N00641006EA0213702138000 +B1614094553376N00641036EA0213302136000 +B1614124553374N00641067EA0213102133000 +B1614154553373N00641098EA0212702130000 +B1614184553371N00641129EA0212402128000 +B1614214553371N00641158EA0212102125000 +B1614244553370N00641186EA0211702122000 +B1614274553371N00641215EA0211202119000 +B1614304553372N00641243EA0210502116000 +B1614334553375N00641272EA0209902113000 +B1614364553378N00641300EA0209602109000 +B1614394553381N00641327EA0209002105000 +B1614424553384N00641355EA0208802101000 +B1614454553387N00641382EA0208302097000 +B1614494553392N00641420EA0207902092000 +B1614524553397N00641446EA0207502088000 +B1614554553400N00641472EA0207002084000 +B1614584553402N00641499EA0206802080000 +B1615014553404N00641523EA0206202077000 +B1615044553405N00641550EA0205802073000 +B1615074553407N00641576EA0205302069000 +B1615104553408N00641602EA0205002065000 +B1615134553409N00641629EA0204702061000 +B1615164553409N00641657EA0204802057000 +B1615194553412N00641684EA0204802054000 +B1615224553416N00641711EA0204502051000 +B1615254553419N00641738EA0204202048000 +B1615284553422N00641766EA0204102045000 +B1615314553425N00641792EA0203902043000 +B1615344553429N00641821EA0204002040000 +B1615374553433N00641846EA0204002038000 +B1615404553437N00641872EA0204002036000 +B1615434553440N00641898EA0204102034000 +B1615464553444N00641924EA0204002033000 +B1615494553448N00641949EA0203802032000 +B1615524553453N00641975EA0203602031000 +B1615554553458N00642000EA0203502029000 +B1615584553462N00642025EA0203302028000 +B1616014553465N00642052EA0203302028000 +B1616044553469N00642077EA0203302027000 +B1616074553471N00642104EA0203202026000 +B1616104553473N00642131EA0203102025000 +B1616134553476N00642157EA0202802024000 +B1616164553481N00642185EA0202602024000 +B1616194553484N00642212EA0202402023000 +B1616234553488N00642247EA0202002021000 +B1616264553492N00642274EA0201802020000 +B1616294553497N00642300EA0201502018000 +B1616324553500N00642327EA0201402016000 +B1616354553503N00642355EA0201302015000 +B1616384553505N00642383EA0201402013000 +B1616414553505N00642411EA0201402011000 +B1616444553506N00642438EA0201702010000 +B1616474553507N00642465EA0202102009000 +B1616504553507N00642489EA0202102008000 +B1616534553507N00642514EA0202002008000 +B1616564553507N00642539EA0201902008000 +B1616594553506N00642564EA0201602007000 +B1617024553506N00642588EA0201602006000 +B1617054553505N00642614EA0201402006000 +B1617084553504N00642638EA0201202005000 +B1617114553503N00642664EA0201102004000 +B1617144553503N00642689EA0201102003000 +B1617174553502N00642713EA0200602002000 +B1617204553502N00642739EA0200602000000 +B1617234553502N00642764EA0200301999000 +B1617264553501N00642788EA0200301998000 +B1617294553500N00642813EA0200101996000 +B1617324553500N00642837EA0200001995000 +B1617364553499N00642868EA0199701993000 +B1617394553499N00642891EA0199501992000 +B1617424553498N00642914EA0199301990000 +B1617454553497N00642937EA0199001988000 +B1617484553495N00642960EA0198601986000 +B1617514553493N00642984EA0198301984000 +B1617544553490N00643008EA0198101982000 +B1617574553488N00643032EA0197701979000 +B1618004553484N00643057EA0197201977000 +B1618034553481N00643084EA0197301974000 +B1618064553476N00643109EA0197501972000 +B1618094553472N00643133EA0197401970000 +B1618124553469N00643158EA0197501968000 +B1618154553467N00643183EA0197201966000 +B1618184553464N00643209EA0197301964000 +B1618214553462N00643234EA0197301963000 +B1618244553459N00643260EA0197401961000 +B1618274553456N00643285EA0197501960000 +B1618304553452N00643311EA0197501959000 +B1618334553449N00643338EA0197801958000 +B1618364553445N00643363EA0197601958000 +B1618394553442N00643390EA0197901957000 +B1618424553437N00643414EA0197801957000 +B1618454553433N00643440EA0197901957000 +B1618484553428N00643465EA0197901958000 +B1618514553423N00643490EA0197801958000 +B1618554553416N00643522EA0197701959000 +B1618584553410N00643547EA0197801959000 +B1619014553403N00643571EA0197801960000 +B1619044553396N00643595EA0197901960000 +B1619074553388N00643619EA0198001961000 +B1619104553380N00643642EA0197501961000 +B1619134553373N00643666EA0197201961000 +B1619164553365N00643690EA0196701960000 +B1619194553358N00643715EA0196301959000 +B1619224553352N00643741EA0195801958000 +B1619254553344N00643768EA0195501956000 +B1619284553335N00643793EA0195001954000 +B1619314553326N00643818EA0194601951000 +B1619344553316N00643843EA0194201949000 +B1619374553305N00643868EA0193901947000 +B1619404553294N00643892EA0193601944000 +B1619434553284N00643917EA0193101942000 +B1619464553273N00643942EA0192801939000 +B1619494553262N00643968EA0192301936000 +B1619524553252N00643997EA0192301933000 +B1619554553243N00644028EA0192201930000 +B1619584553236N00644060EA0192201927000 +B1620014553232N00644092EA0192101924000 +B1620044553229N00644125EA0191801922000 +B1620074553229N00644157EA0191501919000 +B1620104553231N00644190EA0191501916000 +B1620144553238N00644230EA0191601913000 +B1620174553243N00644258EA0191601911000 +B1620204553250N00644285EA0191701909000 +B1620234553259N00644311EA0191901908000 +B1620264553269N00644336EA0192101907000 +B1620294553280N00644361EA0192401906000 +B1620324553291N00644383EA0192501906000 +B1620354553302N00644404EA0192401905000 +B1620384553314N00644422EA0192301905000 +B1620414553326N00644433EA0192001905000 +B1620444553339N00644437EA0191901905000 +B1620474553349N00644434EA0191701904000 +B1620504553353N00644422EA0191401904000 +B1620534553347N00644412EA0191301903000 +B1620564553333N00644408EA0191301902000 +B1620594553317N00644412EA0191401901000 +B1621024553300N00644417EA0191001901000 +B1621054553282N00644421EA0191201901000 +B1621084553263N00644425EA0191501901000 +B1621114553245N00644429EA0191701901000 +B1621144553228N00644436EA0191701901000 +B1621174553211N00644442EA0191701901000 +B1621204553196N00644444EA0191701901000 +B1621234553183N00644446EA0191401901000 +B1621264553167N00644446EA0191401901000 +B1621294553152N00644449EA0191401900000 +B1621334553131N00644450EA0191501900000 +B1621364553116N00644450EA0191801900000 +B1621394553103N00644449EA0191901900000 +B1621424553090N00644448EA0192001900000 +B1621454553077N00644448EA0192101900000 +B1621484553064N00644449EA0192101901000 +B1621514553051N00644451EA0191901901000 +B1621544553036N00644455EA0191601901000 +B1621574553021N00644458EA0191601901000 +B1622004553008N00644460EA0191201901000 +B1622034552994N00644461EA0191101900000 +B1622064552978N00644462EA0191101900000 +B1622094552964N00644464EA0191201899000 +B1622124552949N00644465EA0191001898000 +B1622154552936N00644462EA0190601898000 +B1622184552921N00644459EA0190201897000 +B1622214552904N00644459EA0190501895000 +B1622244552888N00644460EA0190801895000 +B1622274552873N00644459EA0191301894000 +B1622304552855N00644460EA0192101894000 +B1622334552839N00644464EA0192601895000 +B1622364552823N00644466EA0192701896000 +B1622394552813N00644460EA0192701897000 +B1622424552812N00644451EA0192601898000 +B1622454552817N00644447EA0192501898000 +B1622484552827N00644450EA0192301899000 +B1622514552841N00644460EA0192601900000 +B1622554552859N00644479EA0193501902000 +B1622584552870N00644492EA0193901904000 +B1623014552879N00644492EA0194501905000 +B1623044552874N00644483EA0195301907000 +B1623074552858N00644487EA0195701910000 +B1623104552841N00644509EA0195901913000 +B1623134552834N00644543EA0196401916000 +B1623164552843N00644571EA0196801920000 +B1623194552855N00644582EA0197501923000 +B1623224552862N00644579EA0198001925000 +B1623254552857N00644571EA0198901928000 +B1623284552844N00644575EA0199101933000 +B1623314552827N00644591EA0199401938000 +B1623344552809N00644607EA0199201942000 +B1623374552793N00644609EA0199401946000 +B1623404552781N00644606EA0199101950000 +B1623434552770N00644598EA0198901954000 +B1623464552760N00644590EA0197901956000 +B1623494552748N00644577EA0197901957000 +B1623524552736N00644568EA0197301958000 +B1623554552722N00644557EA0197101959000 +B1623584552708N00644549EA0197101959000 +B1624014552693N00644542EA0196601959000 +B1624044552679N00644530EA0197301958000 +B1624074552662N00644528EA0197801958000 +B1624104552644N00644528EA0198901959000 +B1624134552633N00644525EA0198701959000 +B1624164552630N00644519EA0199001960000 +B1624194552635N00644520EA0198701960000 +B1624234552644N00644541EA0198501961000 +B1624264552639N00644572EA0198101962000 +B1624294552622N00644598EA0198001962000 +B1624324552600N00644615EA0198001962000 +B1624354552581N00644621EA0198001962000 +B1624384552568N00644617EA0198101963000 +B1624414552566N00644610EA0198401963000 +B1624444552572N00644610EA0197901963000 +B1624474552580N00644609EA0197601963000 +B1624504552589N00644608EA0197501964000 +B1624534552597N00644605EA0197001964000 +B1624564552606N00644602EA0196401963000 +B1624594552617N00644596EA0196001962000 +B1625024552626N00644593EA0196701962000 +B1625054552626N00644586EA0196901961000 +B1625084552624N00644577EA0197301961000 +B1625114552624N00644570EA0196601961000 +B1625144552628N00644562EA0196301960000 +B1625174552634N00644556EA0196001960000 +B1625204552643N00644551EA0195501958000 +B1625234552652N00644551EA0195101956000 +B1625264552662N00644551EA0195001954000 +B1625294552672N00644550EA0195201952000 +B1625324552680N00644547EA0196001951000 +B1625354552685N00644545EA0196001951000 +B1625384552686N00644538EA0196001950000 +B1625424552687N00644529EA0196001950000 +B1625454552685N00644520EA0195701949000 +B1625484552681N00644511EA0195401949000 +B1625514552677N00644501EA0195001948000 +B1625544552676N00644492EA0195101947000 +B1625574552678N00644484EA0195301946000 +B1626004552682N00644478EA0195701946000 +B1626034552685N00644473EA0195601945000 +B1626064552691N00644472EA0195201944000 +B1626094552699N00644470EA0194701944000 +B1626124552709N00644469EA0194401942000 +B1626154552719N00644470EA0194401940000 +B1626184552730N00644470EA0194601939000 +B1626214552738N00644473EA0194301938000 +B1626244552749N00644475EA0194101936000 +B1626274552758N00644475EA0194101935000 +B1626304552767N00644474EA0193601934000 +B1626334552779N00644473EA0193901932000 +B1626364552788N00644477EA0194001931000 +B1626394552799N00644477EA0194301930000 +B1626424552808N00644473EA0194701929000 +B1626454552809N00644461EA0195201929000 +B1626484552795N00644458EA0195701929000 +B1626514552778N00644475EA0196201930000 +B1626544552773N00644507EA0196401931000 +B1626574552781N00644534EA0196801933000 +B1627014552796N00644544EA0197001935000 +B1627044552801N00644538EA0197501937000 +B1627074552800N00644532EA0197201938000 +B1627104552796N00644523EA0197001939000 +B1627134552797N00644516EA0196701940000 +B1627164552804N00644511EA0196401941000 +B1627194552812N00644510EA0196101942000 +B1627224552824N00644507EA0195401943000 +B1627254552837N00644503EA0195401943000 +B1627284552849N00644499EA0195301943000 +B1627314552861N00644494EA0195101943000 +B1627344552874N00644491EA0195301943000 +B1627374552887N00644489EA0195101942000 +B1627404552900N00644487EA0195301942000 +B1627434552912N00644485EA0195701942000 +B1627464552921N00644485EA0196501942000 +B1627494552928N00644485EA0196401942000 +B1627524552936N00644481EA0196701943000 +B1627564552947N00644478EA0196501943000 +B1627594552958N00644475EA0196601944000 +B1628024552969N00644474EA0196801945000 +B1628054552982N00644475EA0197101946000 +B1628084552994N00644477EA0197301947000 +B1628114553005N00644478EA0197401948000 +B1628144553014N00644479EA0197001949000 +B1628174553025N00644479EA0196701950000 +B1628204553036N00644479EA0196001950000 +B1628234553051N00644478EA0195801950000 +B1628264553064N00644475EA0195901950000 +B1628294553078N00644474EA0195501949000 +B1628324553094N00644474EA0195801949000 +B1628354553108N00644475EA0196001948000 +B1628384553123N00644474EA0196001948000 +B1628414553135N00644475EA0195601947000 +B1628444553151N00644475EA0195501947000 +B1628474553167N00644476EA0195001946000 +B1628514553188N00644477EA0194801944000 +B1628544553203N00644478EA0194701943000 +B1628574553220N00644480EA0194201942000 +B1629004553237N00644485EA0194201940000 +B1629034553253N00644492EA0194001938000 +B1629064553271N00644500EA0193801937000 +B1629094553289N00644509EA0193301935000 +B1629124553308N00644517EA0192901933000 +B1629154553326N00644528EA0192701930000 +B1629184553343N00644539EA0192001928000 +B1629214553362N00644553EA0192101925000 +B1629244553377N00644566EA0191601923000 +B1629274553395N00644579EA0191301920000 +B1629304553414N00644591EA0191701917000 +B1629334553430N00644603EA0191001915000 +B1629364553449N00644616EA0191001913000 +B1629394553464N00644632EA0190901910000 +B1629424553480N00644646EA0190601908000 +B1629454553496N00644658EA0190101906000 +B1629484553514N00644669EA0189901903000 +B1629514553532N00644681EA0189701901000 +B1629544553550N00644693EA0189601899000 +B1629574553570N00644707EA0190301896000 +B1630004553586N00644721EA0190901895000 +B1630034553601N00644731EA0191001894000 +B1630064553614N00644738EA0191401894000 +B1630104553628N00644743EA0191601894000 +B1630134553640N00644750EA0192001894000 +B1630164553651N00644757EA0192501895000 +B1630194553663N00644753EA0193001896000 +B1630224553665N00644742EA0193301897000 +B1630254553655N00644735EA0193601899000 +B1630284553639N00644748EA0193301901000 +B1630314553630N00644777EA0193701902000 +B1630344553634N00644804EA0194201904000 +B1630374553645N00644821EA0194801906000 +B1630404553658N00644829EA0195201909000 +B1630434553671N00644827EA0195501912000 +B1630464553681N00644822EA0195901915000 +B1630494553685N00644813EA0195801916000 +B1630524553679N00644802EA0195801918000 +B1630554553664N00644806EA0196001921000 +B1630584553654N00644831EA0195901923000 +B1631014553656N00644862EA0196501926000 +B1631044553667N00644879EA0196501928000 +B1631074553682N00644888EA0196901930000 +B1631104553697N00644895EA0197101932000 +B1631134553711N00644902EA0197101934000 +B1631164553724N00644909EA0197501936000 +B1631194553738N00644916EA0197801938000 +B1631224553749N00644913EA0198101940000 +B1631254553751N00644903EA0198301942000 +B1631284553742N00644900EA0198101944000 +B1631314553728N00644907EA0198201947000 +B1631354553709N00644913EA0198101950000 +B1631384553701N00644906EA0198201951000 +B1631414553708N00644899EA0197801953000 +B1631444553722N00644898EA0197701954000 +B1631474553738N00644903EA0197401955000 +B1631504553755N00644911EA0197401956000 +B1631534553771N00644924EA0197401957000 +B1631564553788N00644941EA0197501957000 +B1631594553805N00644957EA0197301958000 +B1632024553822N00644976EA0197301958000 +B1632054553836N00644998EA0197701959000 +B1632084553850N00645019EA0197801959000 +B1632114553865N00645035EA0197701960000 +B1632144553878N00645058EA0197701960000 +B1632174553884N00645090EA0197301960000 +B1632204553883N00645125EA0196901960000 +B1632234553880N00645162EA0196501960000 +B1632264553873N00645196EA0196101959000 +B1632294553864N00645230EA0196101958000 +B1632324553857N00645263EA0196201956000 +B1632354553853N00645294EA0195901955000 +B1632384553847N00645325EA0195801954000 +B1632414553841N00645354EA0195101952000 +B1632444553833N00645385EA0195001950000 +B1632474553825N00645411EA0195001948000 +B1632514553817N00645441EA0193801945000 +B1632544553811N00645469EA0193401943000 +B1632574553806N00645495EA0192301939000 +B1633004553798N00645525EA0191901935000 +B1633034553788N00645550EA0192401932000 +B1633064553778N00645575EA0193001929000 +B1633094553776N00645603EA0193301927000 +B1633124553787N00645622EA0193701925000 +B1633154553797N00645621EA0194201924000 +B1633184553799N00645607EA0194601924000 +B1633214553790N00645595EA0195001924000 +B1633244553775N00645602EA0195601925000 +B1633274553762N00645623EA0195701926000 +B1633304553761N00645653EA0195701928000 +B1633334553770N00645673EA0195901929000 +B1633364553782N00645675EA0196101931000 +B1633394553783N00645664EA0196301932000 +B1633424553771N00645660EA0196501934000 +B1633454553756N00645675EA0196401935000 +B1633484553747N00645702EA0196001937000 +B1633514553737N00645731EA0195601937000 +B1633544553724N00645759EA0195201938000 +B1633574553710N00645786EA0195001938000 +B1634004553697N00645811EA0193701937000 +B1634034553682N00645837EA0192501935000 +B1634064553665N00645863EA0191701933000 +B1634094553651N00645885EA0190201929000 +B1634134553629N00645916EA0189401923000 +B1634164553614N00645936EA0188401917000 +B1634194553595N00645959EA0186801911000 +B1634224553575N00645978EA0186201904000 +B1634254553556N00645999EA0184401897000 +B1634284553534N00646025EA0183601888000 +B1634314553514N00646047EA0182901880000 +B1634344553495N00646068EA0182401872000 +B1634374553478N00646090EA0182801865000 +B1634404553467N00646104EA0182501858000 +B1634434553451N00646117EA0182001852000 +B1634464553435N00646129EA0181801846000 +B1634494553420N00646142EA0181601841000 +B1634524553403N00646156EA0182201836000 +B1634554553389N00646168EA0182401832000 +B1634584553374N00646177EA0182701829000 +B1635014553359N00646182EA0183201827000 +B1635044553345N00646175EA0183701826000 +B1635074553338N00646158EA0183801825000 +B1635104553338N00646139EA0183401824000 +B1635134553348N00646129EA0182701823000 +B1635164553358N00646139EA0182301821000 +B1635194553359N00646163EA0182401819000 +B1635224553352N00646183EA0183001818000 +B1635254553340N00646199EA0183201817000 +B1635284553325N00646214EA0184101817000 +B1635314553311N00646232EA0184601818000 +B1635344553301N00646256EA0185501819000 +B1635374553301N00646277EA0185601821000 +B1635404553311N00646292EA0185901823000 +B1635444553326N00646292EA0185901826000 +B1635474553335N00646280EA0185801828000 +B1635504553334N00646262EA0185701830000 +B1635534553320N00646245EA0185601831000 +B1635564553301N00646238EA0186501832000 +B1635594553286N00646240EA0186801834000 +B1636024553273N00646249EA0187101835000 +B1636054553267N00646266EA0187101837000 +B1636084553268N00646288EA0187701839000 +B1636114553278N00646298EA0188101841000 +B1636144553287N00646288EA0188501843000 +B1636174553285N00646270EA0188801846000 +B1636204553271N00646264EA0189301849000 +B1636234553258N00646272EA0189401852000 +B1636264553252N00646293EA0190101854000 +B1636294553258N00646309EA0190401858000 +B1636324553270N00646313EA0190701861000 +B1636354553279N00646303EA0190901864000 +B1636384553277N00646285EA0191001867000 +B1636414553262N00646274EA0191201870000 +B1636444553246N00646283EA0191701873000 +B1636474553239N00646303EA0192201876000 +B1636504553242N00646323EA0192801880000 +B1636534553253N00646330EA0193001883000 +B1636564553262N00646321EA0193401887000 +B1636594553260N00646304EA0193301890000 +B1637024553248N00646291EA0193501893000 +B1637054553230N00646291EA0193701896000 +B1637084553215N00646301EA0193801899000 +B1637124553200N00646321EA0193401902000 +B1637154553201N00646343EA0192801904000 +B1637184553211N00646360EA0192601905000 +B1637214553227N00646359EA0192801905000 +B1637244553234N00646345EA0193201906000 +B1637274553231N00646328EA0193401907000 +B1637304553220N00646313EA0193401909000 +B1637334553202N00646313EA0193201909000 +B1637364553189N00646327EA0193101910000 +B1637394553179N00646342EA0192401910000 +B1637424553165N00646359EA0192101910000 +B1637454553152N00646377EA0191701909000 +B1637484553140N00646395EA0191001908000 +B1637514553128N00646416EA0190401906000 +B1637544553118N00646439EA0189801904000 +B1637574553107N00646463EA0189401901000 +B1638004553098N00646486EA0188601898000 +B1638034553088N00646513EA0187901894000 +B1638064553079N00646541EA0187301891000 +B1638094553071N00646571EA0187001886000 +B1638124553064N00646595EA0186101882000 +B1638154553053N00646624EA0184801877000 +B1638184553038N00646656EA0184301872000 +B1638214553023N00646685EA0183501866000 +B1638244553006N00646716EA0183101861000 +B1638274552991N00646746EA0182701855000 +B1638314552970N00646785EA0182001848000 +B1638344552953N00646816EA0181301842000 +B1638374552938N00646845EA0180901836000 +B1638404552922N00646874EA0180001830000 +B1638434552906N00646903EA0179001824000 +B1638464552890N00646934EA0178101818000 +B1638494552877N00646967EA0177901811000 +B1638524552866N00646997EA0177501805000 +B1638554552852N00647027EA0177001799000 +B1638584552839N00647057EA0176801793000 +B1639014552827N00647086EA0176301788000 +B1639044552814N00647115EA0176101782000 +B1639074552802N00647146EA0175501777000 +B1639104552788N00647179EA0175301772000 +B1639134552774N00647210EA0175701768000 +B1639164552762N00647236EA0176001764000 +B1639194552750N00647260EA0175801761000 +B1639224552738N00647282EA0175701758000 +B1639254552727N00647304EA0175301755000 +B1639284552713N00647327EA0175201752000 +B1639314552701N00647349EA0174701750000 +B1639344552688N00647373EA0174601747000 +B1639374552676N00647397EA0174301744000 +B1639404552664N00647422EA0174401742000 +B1639434552654N00647447EA0174401739000 +B1639464552645N00647474EA0174401737000 +B1639494552637N00647500EA0174101735000 +B1639534552626N00647537EA0174001733000 +B1639564552619N00647564EA0173701731000 +B1639594552612N00647593EA0173701729000 +B1640024552606N00647620EA0173501727000 +B1640054552603N00647649EA0173401726000 +B1640084552602N00647676EA0173401724000 +B1640114552603N00647702EA0173001723000 +B1640144552606N00647728EA0172801721000 +B1640174552613N00647752EA0172701720000 +B1640204552620N00647777EA0172301718000 +B1640234552625N00647803EA0172401716000 +B1640264552632N00647827EA0172501715000 +B1640294552640N00647847EA0172501714000 +B1640324552644N00647870EA0172701713000 +B1640354552645N00647895EA0172501712000 +B1640384552645N00647922EA0172601712000 +B1640414552645N00647948EA0172801711000 +B1640444552646N00647973EA0172601711000 +B1640474552647N00648001EA0172401711000 +B1640504552650N00648029EA0172201710000 +B1640534552655N00648057EA0172001709000 +B1640564552659N00648083EA0171601708000 +B1640594552667N00648109EA0171301707000 +B1641024552675N00648136EA0171301705000 +B1641054552682N00648161EA0171001704000 +B1641094552692N00648196EA0170901702000 +B1641124552698N00648221EA0170901701000 +B1641154552702N00648248EA0170701699000 +B1641184552703N00648276EA0170601698000 +B1641214552704N00648306EA0170601697000 +B1641244552705N00648336EA0170401695000 +B1641274552709N00648367EA0169901694000 +B1641304552713N00648398EA0169601692000 +B1641334552717N00648429EA0169501690000 +B1641364552722N00648459EA0169301688000 +B1641394552726N00648490EA0169201686000 +B1641424552729N00648520EA0169101684000 +B1641454552731N00648549EA0168901683000 +B1641484552734N00648577EA0169001681000 +B1641514552737N00648601EA0169401680000 +B1641544552743N00648622EA0169301679000 +B1641574552753N00648637EA0169401678000 +B1642004552765N00648639EA0169501678000 +B1642034552774N00648631EA0169901678000 +B1642064552776N00648616EA0170301678000 +B1642094552768N00648605EA0170401678000 +B1642124552755N00648604EA0170201678000 +B1642154552740N00648617EA0169901679000 +B1642184552728N00648639EA0169901679000 +B1642214552721N00648666EA0170401679000 +B1642244552721N00648687EA0170401679000 +B1642284552725N00648717EA0170301680000 +B1642314552725N00648740EA0170601681000 +B1642344552728N00648764EA0170801681000 +B1642374552733N00648784EA0171001682000 +B1642404552743N00648795EA0170801683000 +B1642434552755N00648791EA0170901683000 +B1642464552761N00648777EA0171001684000 +B1642494552756N00648760EA0171001684000 +B1642524552741N00648751EA0171101685000 +B1642554552726N00648759EA0171201686000 +B1642584552719N00648782EA0171201686000 +B1643014552721N00648804EA0171301687000 +B1643044552728N00648824EA0171001688000 +B1643074552735N00648846EA0170901689000 +B1643104552743N00648870EA0170901689000 +B1643134552749N00648894EA0171001690000 +B1643164552756N00648918EA0171001690000 +B1643194552764N00648940EA0171201691000 +B1643224552771N00648958EA0171101692000 +B1643254552778N00648979EA0171001692000 +B1643284552784N00649001EA0171201693000 +B1643314552790N00649025EA0171001693000 +B1643344552797N00649050EA0170901693000 +B1643374552803N00649074EA0170801694000 +B1643404552810N00649099EA0170601694000 +B1643434552815N00649126EA0170201693000 +B1643464552818N00649153EA0170301693000 +B1643504552819N00649189EA0169801692000 +B1643534552819N00649218EA0169701690000 +B1643564552822N00649247EA0169601689000 +B1643594552829N00649275EA0169601688000 +B1644024552835N00649302EA0169401687000 +B1644054552841N00649333EA0169201686000 +B1644084552848N00649359EA0169001684000 +B1644114552856N00649385EA0168401683000 +B1644144552864N00649411EA0168301681000 +B1644174552871N00649434EA0167901679000 +B1644204552881N00649458EA0167501677000 +B1644234552892N00649480EA0167201675000 +B1644264552903N00649503EA0167001672000 +B1644294552913N00649525EA0166901670000 +B1644324552924N00649545EA0166801667000 +B1644354552937N00649563EA0166801665000 +B1644384552950N00649581EA0166901664000 +B1644414552964N00649599EA0166801662000 +B1644444552977N00649617EA0166801660000 +B1644474552991N00649635EA0167001659000 +B1644504553005N00649655EA0167301658000 +B1644534553018N00649675EA0167301658000 +B1644564553029N00649694EA0167301657000 +B1644594553042N00649715EA0167101657000 +B1645024553054N00649738EA0167001656000 +B1645064553070N00649770EA0166801655000 +B1645094553081N00649798EA0166701654000 +B1645124553091N00649825EA0167101653000 +B1645154553101N00649848EA0167501653000 +B1645184553112N00649865EA0167601653000 +B1645214553125N00649863EA0167501653000 +B1645244553132N00649851EA0167701653000 +B1645274553131N00649840EA0167501653000 +B1645304553123N00649830EA0167301653000 +B1645334553114N00649825EA0167101653000 +B1645364553109N00649814EA0166801653000 +B1645394553114N00649802EA0166801652000 +B1645424553129N00649801EA0166601652000 +B1645454553145N00649819EA0166501651000 +B1645484553155N00649847EA0166201650000 +B1645514553161N00649878EA0165801649000 +B1645544553167N00649910EA0165601648000 +B1645574553173N00649940EA0165101646000 +B1646004553179N00649972EA0164601644000 +B1646034553187N00650003EA0164201642000 +B1646064553197N00650032EA0163801639000 +B1646094553207N00650061EA0163701636000 +B1646124553217N00650089EA0163201634000 +B1646154553227N00650119EA0162901631000 +B1646184553238N00650147EA0162501628000 +B1646214553247N00650176EA0162201625000 +B1646254553260N00650214EA0161701621000 +B1646284553268N00650242EA0161001618000 +B1646314553279N00650270EA0160501614000 +B1646344553289N00650296EA0160101610000 +B1646374553301N00650321EA0159801606000 +B1646404553314N00650345EA0159701603000 +B1646434553327N00650370EA0159501599000 +B1646464553340N00650394EA0159601596000 +B1646494553353N00650419EA0159601594000 +B1646524553367N00650441EA0159701591000 +B1646554553381N00650462EA0159501589000 +B1646584553394N00650485EA0159401587000 +B1647014553406N00650507EA0159501586000 +B1647044553418N00650531EA0159701584000 +B1647074553429N00650553EA0159601583000 +B1647104553439N00650577EA0159201582000 +B1647134553450N00650600EA0158901580000 +B1647164553463N00650622EA0158801578000 +B1647194553474N00650646EA0158701577000 +B1647224553487N00650668EA0158601575000 +B1647254553499N00650689EA0158601574000 +B1647284553511N00650711EA0158601573000 +B1647314553524N00650735EA0158401572000 +B1647344553535N00650763EA0158201570000 +B1647374553546N00650792EA0158001569000 +B1647414553563N00650831EA0157701567000 +B1647444553577N00650859EA0157301565000 +B1647474553589N00650888EA0157401564000 +B1647504553597N00650917EA0157101562000 +B1647534553605N00650949EA0156801560000 +B1647564553613N00650981EA0156601558000 +B1647594553625N00651010EA0156501556000 +B1648024553637N00651037EA0156501555000 +B1648054553651N00651060EA0156701553000 +B1648084553664N00651084EA0156301552000 +B1648114553677N00651111EA0156501550000 +B1648144553690N00651134EA0156301549000 +B1648174553703N00651160EA0155701548000 +B1648204553718N00651186EA0155801546000 +B1648234553731N00651210EA0155501545000 +B1648264553747N00651234EA0155101543000 +B1648294553761N00651257EA0155201541000 +B1648324553777N00651278EA0154601540000 +B1648354553792N00651301EA0154301538000 +B1648384553807N00651325EA0153701535000 +B1648414553822N00651351EA0153601533000 +B1648444553837N00651376EA0153201530000 +B1648474553852N00651402EA0152801528000 +B1648504553869N00651424EA0152401525000 +B1648534553886N00651447EA0152201522000 +B1648574553907N00651477EA0152001518000 +B1649004553923N00651498EA0151501516000 +B1649034553940N00651519EA0151201513000 +B1649064553958N00651540EA0150901510000 +B1649094553976N00651561EA0150401507000 +B1649124553994N00651583EA0150001504000 +B1649154554012N00651606EA0149701500000 +B1649184554030N00651629EA0149601497000 +B1649214554045N00651653EA0149501494000 +B1649244554058N00651676EA0149201491000 +B1649274554073N00651699EA0149001488000 +B1649304554090N00651716EA0148601486000 +B1649334554110N00651731EA0148301483000 +B1649364554130N00651746EA0148001480000 +B1649394554150N00651760EA0148101477000 +B1649424554169N00651771EA0147801474000 +B1649454554189N00651784EA0147701472000 +B1649484554206N00651800EA0147801470000 +B1649514554220N00651820EA0147601468000 +B1649544554234N00651841EA0147101466000 +B1649574554252N00651859EA0146801463000 +B1650004554272N00651871EA0147401461000 +B1650034554289N00651882EA0147501460000 +B1650064554304N00651896EA0147401458000 +B1650094554318N00651912EA0147101457000 +B1650124554334N00651930EA0147001456000 +B1650164554357N00651950EA0146501455000 +B1650194554374N00651960EA0146301453000 +B1650224554394N00651968EA0146301452000 +B1650254554414N00651977EA0146401451000 +B1650284554434N00651987EA0146601450000 +B1650314554453N00651998EA0146601449000 +B1650344554474N00652009EA0146901449000 +B1650374554495N00652019EA0147401449000 +B1650404554513N00652022EA0147201449000 +B1650434554533N00652025EA0146801449000 +B1650464554555N00652034EA0146501449000 +B1650494554578N00652044EA0146101448000 +B1650524554600N00652051EA0146201447000 +B1650554554621N00652058EA0145701446000 +B1650584554642N00652068EA0145701445000 +B1651014554663N00652079EA0145601444000 +B1651044554685N00652087EA0145701443000 +B1651074554706N00652094EA0145501442000 +B1651104554729N00652103EA0145301441000 +B1651134554751N00652115EA0145501440000 +B1651164554769N00652129EA0145401439000 +B1651194554786N00652141EA0144801438000 +B1651224554807N00652149EA0144701436000 +B1651254554825N00652154EA0144601435000 +B1651284554844N00652161EA0144201434000 +B1651324554869N00652166EA0144001432000 +B1651354554887N00652168EA0143601430000 +B1651384554906N00652167EA0143401429000 +B1651414554925N00652166EA0143201427000 +B1651444554945N00652164EA0143001425000 +B1651474554964N00652164EA0142401423000 +B1651504554985N00652164EA0142201420000 +B1651534555004N00652162EA0141901418000 +B1651564555021N00652158EA0141401415000 +B1651594555039N00652153EA0141001413000 +B1652024555058N00652149EA0140801410000 +B1652054555077N00652150EA0140601407000 +B1652084555098N00652157EA0140401404000 +B1652114555117N00652167EA0140301402000 +B1652144555136N00652178EA0140001399000 +B1652174555156N00652185EA0139801396000 +B1652204555175N00652194EA0139501394000 +B1652234555193N00652209EA0139101391000 +B1652264555212N00652222EA0138701388000 +B1652294555231N00652231EA0138201386000 +B1652324555253N00652239EA0138101383000 +B1652354555274N00652245EA0138101380000 +B1652384555294N00652251EA0137601377000 +B1652414555314N00652253EA0137101374000 +B1652444555334N00652254EA0136701371000 +B1652474555354N00652252EA0136201368000 +B1652514555379N00652245EA0135701363000 +B1652544555397N00652239EA0135301360000 +B1652574555415N00652230EA0134901356000 +B1653004555432N00652221EA0134501352000 +B1653034555449N00652215EA0133901348000 +B1653064555468N00652210EA0133401344000 +B1653094555487N00652205EA0133101340000 +B1653124555505N00652199EA0132701336000 +B1653154555524N00652192EA0132001332000 +B1653184555541N00652184EA0131501327000 +B1653214555559N00652173EA0130901323000 +B1653244555575N00652161EA0130801318000 +B1653274555591N00652149EA0130301314000 +B1653304555607N00652136EA0130301310000 +B1653334555621N00652122EA0130201306000 +B1653364555635N00652107EA0130101302000 +B1653394555646N00652092EA0130201298000 +B1653424555656N00652076EA0130101296000 +B1653454555664N00652059EA0130101293000 +B1653484555671N00652043EA0130101291000 +B1653514555680N00652026EA0130001289000 +B1653544555689N00652011EA0130201287000 +B1653574555697N00651999EA0130301286000 +B1654004555706N00651986EA0130301284000 +B1654034555713N00651972EA0130201283000 +B1654064555720N00651958EA0130301282000 +B1654104555725N00651935EA0130201281000 +B1654134555721N00651916EA0130201280000 +B1654164555710N00651905EA0129801279000 +B1654194555695N00651902EA0129601277000 +B1654224555680N00651908EA0129101276000 +B1654254555667N00651920EA0128901274000 +B1654284555656N00651939EA0128201272000 +B1654314555647N00651961EA0127901270000 +B1654344555638N00651981EA0127501268000 +B1654374555630N00652003EA0127501266000 +B1654404555626N00652025EA0127501263000 +B1654434555625N00652050EA0127501261000 +B1654464555627N00652074EA0127501259000 +B1654494555634N00652098EA0127401258000 +B1654524555646N00652121EA0127301256000 +B1654554555660N00652143EA0127201254000 +B1654584555674N00652165EA0127401253000 +B1655014555688N00652185EA0127201252000 +B1655044555703N00652207EA0127301251000 +B1655074555718N00652225EA0127201250000 +B1655104555733N00652244EA0127101249000 +B1655134555747N00652263EA0127001248000 +B1655164555762N00652281EA0126901247000 +B1655194555777N00652300EA0127001246000 +B1655224555792N00652318EA0126901245000 +B1655254555808N00652333EA0126901244000 +B1655284555827N00652340EA0126901244000 +B1655324555851N00652340EA0127101244000 +B1655354555866N00652330EA0127101244000 +B1655384555871N00652311EA0127401244000 +B1655414555871N00652294EA0127401244000 +B1655444555865N00652278EA0127501245000 +B1655474555856N00652270EA0127401245000 +B1655504555844N00652272EA0127601245000 +B1655534555836N00652284EA0127601246000 +B1655564555833N00652303EA0127601246000 +B1655594555837N00652324EA0127601247000 +B1656024555848N00652343EA0127901247000 +B1656054555864N00652352EA0127901248000 +B1656084555879N00652352EA0128001249000 +B1656114555893N00652344EA0127901250000 +B1656144555905N00652331EA0127901250000 +B1656174555916N00652316EA0128001250000 +B1656204555923N00652300EA0128201251000 +B1656234555926N00652283EA0128201251000 +B1656264555926N00652265EA0128001251000 +B1656294555922N00652249EA0127801251000 +B1656324555913N00652240EA0127401251000 +B1656354555902N00652234EA0127501250000 +B1656384555890N00652234EA0127001249000 +B1656414555876N00652237EA0126801248000 +B1656444555862N00652240EA0126601247000 +B1656484555843N00652235EA0126701245000 +B1656514555828N00652237EA0126701244000 +B1656544555815N00652243EA0126901244000 +B1656574555805N00652255EA0127001243000 +B1657004555802N00652275EA0127001243000 +B1657034555807N00652298EA0127001243000 +B1657064555819N00652318EA0127001243000 +B1657094555835N00652329EA0127001243000 +B1657124555853N00652326EA0127101244000 +B1657154555867N00652311EA0127301244000 +B1657184555875N00652292EA0127301244000 +B1657214555879N00652271EA0127301244000 +B1657244555876N00652252EA0127201244000 +B1657274555869N00652237EA0126901244000 +B1657304555857N00652225EA0126801244000 +B1657334555846N00652218EA0126901244000 +B1657364555833N00652217EA0126801243000 +B1657394555820N00652224EA0126901243000 +B1657424555808N00652232EA0126701242000 +B1657454555795N00652242EA0126801242000 +B1657484555783N00652254EA0127101242000 +B1657514555774N00652266EA0127001242000 +B1657544555765N00652279EA0127101242000 +B1657574555754N00652289EA0127201242000 +B1658004555742N00652296EA0127501242000 +B1658034555730N00652301EA0127901243000 +B1658074555716N00652305EA0127601243000 +B1658104555705N00652301EA0127701244000 +B1658134555696N00652295EA0127501244000 +B1658164555690N00652283EA0127601245000 +B1658194555689N00652268EA0127401245000 +B1658224555697N00652252EA0127401245000 +B1658254555711N00652242EA0127701246000 +B1658284555727N00652240EA0127901246000 +B1658314555742N00652249EA0128101247000 +B1658344555751N00652265EA0128101248000 +B1658374555752N00652283EA0128501249000 +B1658404555749N00652300EA0128501250000 +B1658434555742N00652318EA0128701251000 +B1658464555737N00652335EA0128701252000 +B1658494555733N00652356EA0128801252000 +B1658524555730N00652378EA0128901253000 +B1658554555739N00652400EA0129101254000 +B1658584555754N00652415EA0129301255000 +B1659014555771N00652414EA0129501256000 +B1659044555776N00652400EA0129801257000 +B1659074555771N00652383EA0130501259000 +B1659104555763N00652373EA0130501261000 +B1659134555751N00652372EA0130901262000 +B1659164555742N00652385EA0130801264000 +B1659194555741N00652408EA0130801266000 +B1659224555750N00652432EA0131101268000 +B1659264555771N00652449EA0131001270000 +B1659294555787N00652445EA0131401272000 +B1659324555797N00652432EA0132001274000 +B1659354555801N00652414EA0132401276000 +B1659384555793N00652397EA0132801278000 +B1659414555782N00652401EA0133201280000 +B1659444555776N00652416EA0133601283000 +B1659474555783N00652437EA0133801285000 +B1659504555796N00652451EA0134201288000 +B1659534555810N00652451EA0134901291000 +B1659564555819N00652438EA0135301295000 +B1659594555821N00652417EA0135601298000 +B1700024555813N00652403EA0136001302000 +B1700054555803N00652404EA0136301305000 +B1700084555798N00652418EA0136401309000 +B1700114555806N00652438EA0136901312000 +B1700144555822N00652449EA0137301315000 +B1700174555837N00652448EA0138001319000 +B1700204555848N00652436EA0138101322000 +B1700234555854N00652418EA0138501326000 +B1700264555851N00652400EA0138501329000 +B1700294555841N00652389EA0138601332000 +B1700324555830N00652388EA0138901335000 +B1700354555822N00652399EA0138501337000 +B1700384555819N00652418EA0138101339000 +B1700414555828N00652440EA0138101341000 +B1700444555844N00652451EA0138401343000 +B1700474555859N00652446EA0138501344000 +B1700514555874N00652427EA0138601347000 +B1700544555875N00652408EA0138501348000 +B1700574555873N00652393EA0138601349000 +B1701004555866N00652380EA0138401350000 +B1701034555855N00652377EA0138201351000 +B1701064555846N00652388EA0137901352000 +B1701094555847N00652408EA0137401352000 +B1701124555859N00652426EA0137001351000 +B1701154555878N00652427EA0136401351000 +B1701184555894N00652411EA0136201350000 +B1701214555902N00652390EA0136001348000 +B1701244555904N00652367EA0136301347000 +B1701274555903N00652348EA0136201346000 +B1701304555899N00652327EA0136301345000 +B1701334555892N00652309EA0136201344000 +B1701364555883N00652288EA0136201343000 +B1701394555874N00652271EA0136301342000 +B1701424555867N00652256EA0135901341000 +B1701454555858N00652239EA0135801341000 +B1701484555854N00652220EA0135601340000 +B1701514555850N00652200EA0135301339000 +B1701544555849N00652177EA0135101338000 +B1701574555847N00652155EA0134901337000 +B1702004555841N00652135EA0134401336000 +B1702034555840N00652114EA0134001334000 +B1702064555838N00652093EA0133701332000 +B1702104555835N00652065EA0133401330000 +B1702134555837N00652046EA0133001328000 +B1702164555836N00652026EA0132501325000 +B1702194555834N00652008EA0132101322000 +B1702224555832N00651989EA0131601320000 +B1702254555828N00651974EA0131101316000 +B1702284555818N00651960EA0130401313000 +B1702314555804N00651950EA0130001309000 +B1702344555790N00651942EA0129401306000 +B1702374555773N00651937EA0129001302000 +B1702404555757N00651936EA0128801298000 +B1702434555740N00651935EA0128401294000 +B1702464555724N00651934EA0128401290000 +B1702494555708N00651928EA0128101286000 +B1702524555693N00651923EA0128101283000 +B1702554555678N00651919EA0128001280000 +B1702584555662N00651917EA0127601276000 +B1703014555646N00651915EA0127501273000 +B1703044555630N00651912EA0127301271000 +B1703074555614N00651911EA0127201268000 +B1703104555600N00651911EA0127001265000 +B1703134555585N00651913EA0126801262000 +B1703164555569N00651915EA0126601260000 +B1703194555553N00651921EA0126301257000 +B1703224555537N00651927EA0126101256000 +B1703254555521N00651937EA0125701256000 +B1703294555504N00651960EA0125401253000 +B1703324555494N00651981EA0125301250000 +B1703354555487N00652002EA0125001248000 +B1703384555482N00652024EA0124701246000 +B1703414555481N00652049EA0124401243000 +B1703444555484N00652074EA0124201240000 +B1703474555488N00652097EA0124101238000 +B1703504555495N00652120EA0123801236000 +B1703534555505N00652140EA0123401233000 +B1703564555516N00652160EA0123101230000 +B1703594555528N00652176EA0123101228000 +B1704024555541N00652190EA0122801226000 +B1704054555555N00652203EA0122701223000 +B1704084555571N00652215EA0122601221000 +B1704114555587N00652225EA0122801219000 +B1704144555602N00652233EA0122801217000 +B1704174555617N00652237EA0123301215000 +B1704204555629N00652236EA0123201214000 +B1704234555644N00652230EA0123501213000 +B1704264555657N00652225EA0123001212000 +B1704294555673N00652220EA0123001211000 +B1704324555687N00652217EA0122501210000 +B1704354555702N00652218EA0122501209000 +B1704384555716N00652219EA0122401208000 +B1704414555728N00652219EA0122201207000 +B1704454555742N00652214EA0122201205000 +B1704484555752N00652208EA0121701204000 +B1704514555761N00652203EA0121601203000 +B1704544555769N00652195EA0121201202000 +B1704574555777N00652186EA0120901200000 +B1705004555782N00652172EA0120501198000 +B1705034555782N00652156EA0120101196000 +B1705064555777N00652140EA0119701194000 +B1705094555764N00652130EA0119201191000 +B1705124555747N00652133EA0118601188000 +B1705154555730N00652144EA0118401185000 +B1705184555719N00652161EA0117901182000 +B1705214555718N00652184EA0117601178000 +B1705244555728N00652196EA0117101175000 +B1705274555737N00652189EA0117001171000 +B1705304555742N00652178EA0116501169000 +B1705334555739N00652162EA0116001165000 +B1705364555726N00652152EA0115701161000 +B1705394555711N00652144EA0115301157000 +B1705424555695N00652139EA0115001154000 +B1705454555679N00652137EA0114601150000 +B1705484555663N00652143EA0114101146000 +B1705514555653N00652164EA0114001142000 +B1705544555657N00652184EA0113801139000 +B1705574555669N00652193EA0114001135000 +B1706014555682N00652194EA0113601132000 +B1706044555693N00652189EA0113401129000 +B1706074555702N00652182EA0113001126000 +B1706104555710N00652172EA0112801124000 +B1706134555715N00652159EA0112501121000 +B1706164555709N00652142EA0112001118000 +B1706194555693N00652141EA0111401116000 +B1706224555677N00652153EA0111401113000 +B1706254555662N00652151EA0110801110000 +B1706284555653N00652133EA0110701106000 +B1706314555649N00652115EA0110201103000 +B1706344555643N00652093EA0109901100000 +B1706374555638N00652074EA0109501097000 +B1706404555629N00652057EA0109401094000 +B1706434555619N00652044EA0108801091000 +B1706464555606N00652034EA0108601087000 +B1706494555596N00652023EA0108301084000 +B1706524555590N00652013EA0108401081000 +B1706554555587N00652011EA0108601080000 +B1706584555586N00652010EA0108601078000 +B1707014555587N00652011EA0108401077000 +B1707044555587N00652011EA0108401076000 +B1707074555587N00652010EA0108501076000 +B1707104555588N00652008EA0108501076000 +B1707144555588N00652006EA0108501075000 +B1707174555588N00652006EA0108401074000 +B1707204555588N00652006EA0108401072000 +B1707234555589N00652005EA0108401072000 +B1707264555589N00652004EA0108401072000 +B1707294555589N00652004EA0108401071000 +B1707324555589N00652005EA0108501069000 +B1707354555588N00652005EA0108401067000 +B1707384555588N00652005EA0108401065000 +B1707414555588N00652006EA0108401063000 +B1707444555588N00652006EA0108501062000 +B1707474555588N00652007EA0108401060000 +B1707504555588N00652007EA0108401059000 +B1707534555588N00652007EA0108401058000 +GAB890A77AFE5CE63979AF6B1BED7F07D +G62BB282E44D63A1149EF2F5E8AF6F2F1 +GEC14381987B15F81003EDE1E01A47843 +G60189641B00B00800019000000000000 diff --git a/examples/data/igc/Ulrich-Prinz.igc b/examples/data/igc/Ulrich-Prinz.igc new file mode 100644 index 0000000000..6162364113 --- /dev/null +++ b/examples/data/igc/Ulrich-Prinz.igc @@ -0,0 +1,4611 @@ +ABRA02676 +HFDTE190411 +HFFXA100 +HFPLTPILOT:Ulrich Prinz +HFGTYGLIDERTYPE:Boomerang 8 +HFGIDGLIDERID:www.up0.de +HFDTM100GPSDATUM:WGS84 +HFGPSGPS:FURUNO GH-80 +HFRFWFIRMWAREVERSION:2.26 +HFRHWHARDWAREVERSION:1.00 +HFFTYFRTYPE:BRAUNIGER,COMPEO +HOCIDCOMPETITIONID: DHV-XC-2011 +HOCCLCOMPETITION CLASS: Paraglider open +HOSITSite: Planpraz (Chamonix) +I013638TAS +B0851384556194N00651066EA0206702042000 +B0851454556194N00651066EA0206702043000 +B0851524556194N00651065EA0206702044000 +B0851594556194N00651065EA0206702044000 +B0852064556194N00651065EA0206702045000 +B0852134556195N00651065EA0206702045000 +B0852204556195N00651065EA0206702046000 +B0852274556195N00651065EA0206702046000 +B0852344556195N00651065EA0206702046000 +B0852414556194N00651064EA0206702046000 +B0852484556194N00651064EA0206802045000 +B0852554556194N00651063EA0206802045000 +B0853024556194N00651063EA0206802044000 +B0853094556194N00651063EA0206802044000 +B0853164556195N00651063EA0206702043000 +B0853234556195N00651064EA0206802043000 +B0853304556195N00651065EA0206802043000 +B0853374556195N00651064EA0206802043000 +B0853444556195N00651064EA0206702043000 +B0853514556195N00651064EA0206802043000 +B0853584556195N00651064EA0206802043000 +B0854054556195N00651064EA0206802042000 +B0854124556195N00651064EA0206702042000 +B0854194556195N00651065EA0206802042000 +B0854264556196N00651065EA0206802041000 +B0854334556192N00651063EA0206502040000 +B0854404556177N00651065EA0205802040000 +B0854474556147N00651059EA0206202038000 +B0854544556137N00651026EA0207902037000 +B0855014556141N00650975EA0210202040000 +B0855094556148N00650921EA0212502047000 +B0855164556167N00650965EA0214502059000 +B0855234556155N00650950EA0216302074000 +B0855304556187N00650964EA0217702091000 +B0855374556159N00650953EA0219702099000 +B0855444556194N00650925EA0221302115000 +B0855514556189N00650967EA0222302132000 +B0855584556178N00650918EA0224302148000 +B0856054556207N00650939EA0225202165000 +B0856124556171N00650924EA0227102179000 +B0856194556196N00650883EA0228402192000 +B0856264556187N00650918EA0229902207000 +B0856334556169N00650867EA0231402223000 +B0856404556200N00650870EA0232702239000 +B0856474556176N00650877EA0234302255000 +B0856544556189N00650826EA0235602271000 +B0857014556205N00650854EA0237202286000 +B0857084556187N00650820EA0238802301000 +B0857154556220N00650799EA0239702317000 +B0857234556212N00650841EA0241802334000 +B0857304556193N00650803EA0242902348000 +B0857374556226N00650802EA0244602363000 +B0857444556201N00650822EA0245802379000 +B0857514556205N00650771EA0246302393000 +B0857584556231N00650801EA0247702407000 +B0858054556204N00650821EA0249102420000 +B0858124556210N00650786EA0249502429000 +B0858194556209N00650819EA0250402440000 +B0858264556177N00650791EA0251202447000 +B0858334556140N00650759EA0251802456000 +B0858404556101N00650730EA0252702462000 +B0858474556060N00650708EA0253102470000 +B0858544556026N00650675EA0251002477000 +B0859014555989N00650630EA0249602480000 +B0859084555948N00650579EA0249602480000 +B0859154555913N00650531EA0249002479000 +B0859224555879N00650478EA0249202478000 +B0859294555841N00650422EA0248902476000 +B0859364555800N00650371EA0249202474000 +B0859434555761N00650325EA0248202473000 +B0859504555723N00650273EA0247302469000 +B0859574555683N00650221EA0246002465000 +B0900044555642N00650168EA0245302459000 +B0900114555598N00650116EA0245702451000 +B0900184555571N00650057EA0247902449000 +B0900254555558N00650063EA0249102449000 +B0900324555570N00650009EA0251002452000 +B0900394555546N00649966EV0252202456000 +B0900464555549N00649970EA0255402461000 +B0900534555558N00649905EA0257602469000 +B0901004555525N00649880EA0259502482000 +B0901074555544N00649876EA0262002498000 +B0901144555518N00649858EA0264002503000 +B0901214555527N00649829EA0266602507000 +B0901284555512N00649846EA0268802525000 +B0901354555530N00649806EA0271002547000 +B0901424555512N00649818EA0272902571000 +B0901494555536N00649782EA0275102599000 +B0901564555502N00649758EA0277102624000 +B0902034555520N00649767EA0279002635000 +B0902104555494N00649736EA0280702649000 +B0902174555511N00649735EA0282202662000 +B0902244555495N00649662EA0283802689000 +B0902314555467N00649588EA0285902717000 +B0902384555448N00649519EA0285302743000 +B0902454555419N00649449EA0285402763000 +B0902524555393N00649396EA0284002779000 +B0902594555374N00649335EA0282102787000 +B0903064555350N00649281EA0279902787000 +B0903144555314N00649214EA0278202784000 +B0903214555289N00649151EA0276302778000 +B0903284555265N00649074EA0273402768000 +B0903354555256N00648995EA0272302755000 +B0903424555242N00648924EA0271902743000 +B0903494555237N00648855EA0275202735000 +B0903564555269N00648839EA0278002735000 +B0904034555246N00648878EA0281102739000 +B0904104555229N00648824EA0284402748000 +B0904174555235N00648758EA0285702763000 +B0904244555220N00648697EA0287302780000 +B0904314555205N00648643EA0288202796000 +B0904384555183N00648584EA0289302811000 +B0904454555160N00648521EA0289902825000 +B0904524555140N00648462EA0289202836000 +B0904594555115N00648405EA0288702844000 +B0905064555089N00648347EA0288102849000 +B0905134555064N00648289EA0287502851000 +B0905204555028N00648242EA0285502850000 +B0905274554993N00648179EA0283002844000 +B0905344554956N00648123EA0281002837000 +B0905414554915N00648067EA0278602825000 +B0905484554879N00648006EA0276802809000 +B0905554554835N00647959EA0275202793000 +B0906024554788N00647911EA0273702776000 +B0906094554747N00647852EA0272402760000 +B0906164554706N00647789EA0271202745000 +B0906234554671N00647736EA0270102731000 +B0906304554631N00647692EA0269002716000 +B0906374554593N00647649EA0267902708000 +B0906444554556N00647591EA0266602694000 +B0906514554523N00647528EA0266102681000 +B0906584554491N00647463EA0265502669000 +B0907054554470N00647397EA0264302661000 +B0907124554450N00647331EA0263402652000 +B0907194554431N00647268EA0262802643000 +B0907264554404N00647208EA0262402637000 +B0907334554371N00647163EA0261702628000 +B0907404554336N00647118EA0260102618000 +B0907474554308N00647057EA0259202608000 +B0907544554285N00646996EA0258702599000 +B0908014554256N00646942EA0257302589000 +B0908084554225N00646890EA0256402579000 +B0908154554195N00646832EA0256102569000 +B0908224554159N00646779EA0255902562000 +B0908294554127N00646719EA0255602555000 +B0908364554102N00646652EA0254902549000 +B0908434554071N00646587EA0254002543000 +B0908504554039N00646524EA0253202537000 +B0908574554006N00646462EA0252202530000 +B0909044553970N00646408EA0251302522000 +B0909124553930N00646348EA0250102513000 +B0909194553897N00646291EA0249202504000 +B0909264553867N00646230EA0248302495000 +B0909334553835N00646172EA0247202486000 +B0909404553802N00646115EA0245902475000 +B0909474553772N00646055EA0245002465000 +B0909544553739N00646000EA0244202455000 +B0910014553707N00645947EA0243202446000 +B0910084553680N00645888EA0242202437000 +B0910154553660N00645821EA0241502429000 +B0910224553640N00645754EA0240502421000 +B0910294553625N00645687EA0239802413000 +B0910364553607N00645622EA0239002404000 +B0910434553591N00645556EA0238302396000 +B0910504553573N00645496EA0237702387000 +B0910574553541N00645447EA0237102378000 +B0911044553513N00645393EA0236402370000 +B0911114553503N00645333EA0235702363000 +B0911184553486N00645282EA0235102357000 +B0911254553446N00645254EA0234502350000 +B0911324553407N00645221EA0234102345000 +B0911394553361N00645196EA0233402340000 +B0911464553313N00645166EA0234002337000 +B0911534553278N00645129EA0235002334000 +B0912004553246N00645101EA0236102334000 +B0912074553212N00645061EA0236702335000 +B0912144553180N00645081EA0236802337000 +B0912214553189N00645056EA0237202337000 +B0912284553150N00645045EA0237402339000 +B0912354553154N00645096EA0238102341000 +B0912424553186N00645075EA0239002345000 +B0912494553176N00645032EA0239102349000 +B0912564553185N00645042EA0240002352000 +B0913034553210N00645034EA0239702356000 +B0913104553191N00644995EA0240602359000 +B0913174553211N00645013EA0241602361000 +B0913244553202N00644962EA0242702363000 +B0913314553199N00644954EA0244002367000 +B0913384553203N00644908EA0245202373000 +B0913454553195N00644920EA0246302376000 +B0913524553198N00644874EA0248502382000 +B0913594553180N00644891EA0248802394000 +B0914064553208N00644864EA0250402401000 +B0914134553181N00644860EA0251202413000 +B0914204553197N00644880EA0251802424000 +B0914274553195N00644824EA0251902435000 +B0914344553171N00644855EA0253002449000 +B0914414553191N00644880EA0253302461000 +B0914484553227N00644849EA0254402473000 +B0914554553207N00644827EA0255702477000 +B0915024553221N00644849EA0255702488000 +B0915094553212N00644800EA0256502496000 +B0915164553203N00644829EA0256802504000 +B0915244553224N00644774EA0257502510000 +B0915314553190N00644770EA0258302518000 +B0915384553214N00644773EA0258302526000 +B0915454553201N00644715EA0258902534000 +B0915524553182N00644753EA0258502540000 +B0915594553190N00644792EA0259402545000 +B0916064553191N00644836EA0260802551000 +B0916134553203N00644799EA0262002555000 +B0916204553203N00644815EA0263202560000 +B0916274553182N00644758EA0264502566000 +B0916344553135N00644731EA0264802573000 +B0916414553087N00644714EA0265002584000 +B0916484553039N00644696EA0264002592000 +B0916554552992N00644676EA0263702596000 +B0917024552944N00644652EA0264802600000 +B0917094552901N00644622EA0264202604000 +B0917164552862N00644569EA0264602607000 +B0917234552806N00644531EA0263202610000 +B0917304552749N00644504EA0262702610000 +B0917374552692N00644464EA0260502607000 +B0917444552629N00644424EA0260002601000 +B0917514552587N00644401EA0258302593000 +B0917584552549N00644376EA0260102588000 +B0918054552552N00644332EA0259302586000 +B0918124552553N00644373EA0260102585000 +B0918194552520N00644372EA0261102585000 +B0918264552534N00644364EA0262002586000 +B0918334552516N00644371EA0262802588000 +B0918404552483N00644319EA0263802595000 +B0918474552444N00644267EA0264602601000 +B0918544552405N00644219EA0265102607000 +B0919014552360N00644177EA0265202611000 +B0919084552301N00644133EA0262702615000 +B0919154552235N00644082EA0260402613000 +B0919224552170N00644030EA0258202607000 +B0919294552109N00643982EA0255602597000 +B0919364552051N00643931EA0253702584000 +B0919434551992N00643881EA0251302568000 +B0919504551933N00643832EA0249002551000 +B0919574551882N00643781EA0247702533000 +B0920044551829N00643720EA0247002515000 +B0920114551773N00643664EA0246202499000 +B0920184551717N00643607EA0245702485000 +B0920254551656N00643563EA0244702473000 +B0920324551593N00643526EA0243702461000 +B0920394551531N00643486EA0242702450000 +B0920464551471N00643444EA0241502439000 +B0920534551414N00643401EA0240802428000 +B0921004551357N00643364EA0239802417000 +B0921074551298N00643325EA0238802406000 +B0921154551233N00643277EA0237602394000 +B0921224551177N00643235EA0236702384000 +B0921294551121N00643190EA0235602374000 +B0921364551068N00643149EA0234802364000 +B0921434551012N00643109EA0233602353000 +B0921504550957N00643067EA0232402343000 +B0921574550898N00643031EA0230802332000 +B0922044550840N00643005EA0229402321000 +B0922114550786N00642967EA0227702309000 +B0922184550731N00642931EA0225902296000 +B0922254550677N00642905EA0224602282000 +B0922324550627N00642887EA0223102267000 +B0922394550576N00642860EA0221302252000 +B0922464550522N00642816EA0219602236000 +B0922534550467N00642769EA0217902221000 +B0923004550411N00642725EA0216002205000 +B0923074550352N00642682EA0213602188000 +B0923144550293N00642636EA0211402169000 +B0923214550238N00642595EA0209702150000 +B0923284550182N00642550EA0208102133000 +B0923354550124N00642506EA0206802116000 +B0923424550064N00642466EA0205902100000 +B0923494550009N00642416EA0205002085000 +B0923564549951N00642374EA0204302072000 +B0924034549888N00642349EA0203802060000 +B0924104549826N00642319EA0202602048000 +B0924174549776N00642290EA0202602037000 +B0924244549727N00642248EA0204302030000 +B0924314549739N00642203EA0205702028000 +B0924384549729N00642228EA0207102029000 +B0924454549716N00642165EA0208802032000 +B0924524549739N00642176EA0210502039000 +B0924594549704N00642173EA0211702046000 +B0925064549721N00642118EA0213902056000 +B0925134549735N00642152EA0215502069000 +B0925204549699N00642149EA0216902085000 +B0925274549704N00642094EA0218702100000 +B0925344549692N00642122EA0220402115000 +B0925414549675N00642064EA0222002122000 +B0925484549693N00642070EA0223002133000 +B0925554549652N00642086EA0224702150000 +B0926024549647N00642030EA0226102158000 +B0926094549659N00642052EA0227002176000 +B0926164549614N00642057EA0228602193000 +B0926234549614N00642006EA0229202205000 +B0926304549595N00642039EA0229902221000 +B0926374549543N00642016EA0231602236000 +B0926444549545N00641956EA0232102250000 +B0926514549549N00641981EA0232802263000 +B0926584549501N00641965EA0234502275000 +B0927054549498N00641903EA0235202287000 +B0927124549524N00641908EA0236102299000 +B0927194549549N00641921EA0235902310000 +B0927264549569N00641949EA0235702318000 +B0927344549598N00641970EA0236602325000 +B0927414549627N00641975EA0238502334000 +B0927484549611N00642008EA0240602344000 +B0927554549591N00641955EA0242502347000 +B0928024549621N00641923EA0244602362000 +B0928094549619N00641962EA0246102376000 +B0928164549587N00641917EA0248702393000 +B0928234549613N00641920EA0249702410000 +B0928304549586N00641965EA0250802421000 +B0928374549565N00641915EA0253302438000 +B0928444549594N00641900EA0253802456000 +B0928514549586N00641953EA0253702470000 +B0928584549545N00641942EA0255102482000 +B0929054549528N00641904EA0256402492000 +B0929124549531N00641928EA0257002494000 +B0929194549531N00641904EA0257502501000 +B0929264549517N00641866EA0259002514000 +B0929334549524N00641827EA0259002528000 +B0929404549534N00641778EA0258402539000 +B0929474549549N00641792EA0258102544000 +B0929544549517N00641834EA0257302547000 +B0930014549516N00641887EA0256202548000 +B0930084549537N00641877EA0255002547000 +B0930154549528N00641822EA0254202544000 +B0930224549472N00641796EA0253402538000 +B0930294549425N00641774EA0253702533000 +B0930364549383N00641734EA0254802530000 +B0930434549384N00641684EA0254502529000 +B0930504549400N00641695EA0255902529000 +B0930574549405N00641721EA0256502530000 +B0931044549399N00641749EA0256802532000 +B0931114549416N00641755EA0254202533000 +B0931184549442N00641760EA0253302530000 +B0931254549468N00641769EA0252902526000 +B0931324549498N00641767EA0253302522000 +B0931394549524N00641774EA0254602522000 +B0931464549550N00641777EA0255602523000 +B0931534549578N00641772EA0255802526000 +B0932004549608N00641754EA0255602529000 +B0932074549641N00641736EA0255302530000 +B0932144549670N00641702EA0255302531000 +B0932214549697N00641667EA0255002532000 +B0932284549729N00641642EA0255302532000 +B0932354549765N00641640EA0255502533000 +B0932424549804N00641653EA0256002534000 +B0932494549835N00641681EA0255302535000 +B0932564549832N00641733EA0255402536000 +B0933034549798N00641766EA0254902535000 +B0933104549753N00641751EA0253702533000 +B0933174549706N00641735EA0252902529000 +B0933244549660N00641717EA0251902522000 +B0933324549604N00641709EA0251002515000 +B0933394549552N00641713EA0250102508000 +B0933464549499N00641708EA0249902501000 +B0933534549443N00641676EA0250602497000 +B0934004549396N00641666EA0251302494000 +B0934074549401N00641649EA0251402493000 +B0934144549410N00641595EA0251302492000 +B0934214549409N00641624EA0253002493000 +B0934284549357N00641626EA0252202493000 +B0934354549303N00641586EA0253502494000 +B0934424549258N00641546EA0252502495000 +B0934494549227N00641486EA0252802497000 +B0934564549198N00641444EA0252402501000 +B0935034549164N00641406EA0253202503000 +B0935104549136N00641365EA0251902504000 +B0935174549101N00641317EA0252102502000 +B0935244549067N00641274EA0253402503000 +B0935314549032N00641239EA0254202507000 +B0935384548995N00641211EA0255502511000 +B0935454548974N00641155EA0256902517000 +B0935524548994N00641156EA0258202524000 +B0935594548982N00641195EA0259402534000 +B0936064548951N00641135EA0259602544000 +B0936134548920N00641067EA0261702553000 +B0936204548905N00641078EA0261002562000 +B0936274548901N00641005EA0262102570000 +B0936344548870N00640944EA0263102578000 +B0936414548848N00640877EA0264602587000 +B0936484548826N00640814EA0265302597000 +B0936554548798N00640770EA0265102605000 +B0937024548761N00640741EA0265702610000 +B0937094548727N00640714EA0266302615000 +B0937164548694N00640678EA0266502619000 +B0937234548660N00640642EA0266202624000 +B0937304548623N00640601EA0267002629000 +B0937374548592N00640571EA0268502635000 +B0937444548603N00640513EA0268602642000 +B0937514548618N00640545EA0271002650000 +B0937584548598N00640562EA0272002661000 +B0938054548611N00640510EA0273602671000 +B0938124548605N00640526EA0274802682000 +B0938194548579N00640473EA0275402694000 +B0938264548603N00640465EA0276802703000 +B0938334548572N00640485EA0277702713000 +B0938404548532N00640452EA0277302721000 +B0938474548495N00640391EA0276402728000 +B0938544548461N00640341EA0276002732000 +B0939014548428N00640290EA0275802735000 +B0939084548403N00640237EA0276102737000 +B0939154548378N00640185EA0275602738000 +B0939224548350N00640140EA0275402738000 +B0939294548325N00640084EA0275502738000 +B0939374548289N00640017EA0275902738000 +B0939444548271N00639973EA0277102740000 +B0939514548248N00639915EA0279102744000 +B0939584548227N00639861EA0280402752000 +B0940054548209N00639800EA0281202762000 +B0940124548191N00639739EA0280402768000 +B0940194548167N00639661EA0279202771000 +B0940264548138N00639587EA0277602770000 +B0940334548112N00639512EA0277102767000 +B0940404548091N00639434EA0278502764000 +B0940474548086N00639389EA0278902765000 +B0940544548071N00639329EA0279202767000 +B0941014548057N00639267EA0280002769000 +B0941084548038N00639208EA0280002773000 +B0941154548018N00639133EA0278702774000 +B0941224547991N00639057EA0277702772000 +B0941294547968N00638979EA0276902769000 +B0941364547945N00638903EA0275502763000 +B0941434547925N00638822EA0273902756000 +B0941504547904N00638740EA0272502747000 +B0941574547885N00638664EA0272502738000 +B0942044547860N00638600EA0271702729000 +B0942114547841N00638538EA0270702722000 +B0942184547827N00638453EA0269702714000 +B0942254547813N00638378EA0268102705000 +B0942324547792N00638308EA0267202695000 +B0942394547766N00638239EA0266202685000 +B0942464547741N00638166EA0265302675000 +B0942534547708N00638098EA0265002665000 +B0943004547676N00638035EA0264702656000 +B0943074547649N00637981EA0265102650000 +B0943144547628N00637918EA0264302644000 +B0943214547612N00637866EA0265102640000 +B0943284547591N00637811EA0264802637000 +B0943354547569N00637750EA0264102633000 +B0943424547549N00637690EA0265302631000 +B0943494547527N00637652EA0264602631000 +B0943564547496N00637603EA0264202629000 +B0944034547467N00637563EA0264002628000 +B0944104547444N00637514EA0264302628000 +B0944174547419N00637465EA0263302627000 +B0944244547398N00637421EA0262802624000 +B0944314547374N00637369EA0263302621000 +B0944384547350N00637314EA0263202619000 +B0944454547324N00637247EA0263702618000 +B0944524547295N00637187EA0264602618000 +B0944594547268N00637133EA0263602619000 +B0945064547238N00637064EA0264802618000 +B0945134547216N00637013EA0264602620000 +B0945204547193N00636954EA0264702621000 +B0945284547172N00636877EA0267302626000 +B0945354547146N00636828EA0270302636000 +B0945424547101N00636785EA0272702649000 +B0945494547060N00636749EA0274502665000 +B0945564547022N00636705EA0274902679000 +B0946034546987N00636652EA0272202689000 +B0946104546950N00636581EA0270002691000 +B0946174546907N00636515EA0268502688000 +B0946244546870N00636447EA0267802682000 +B0946314546840N00636377EA0267802677000 +B0946384546811N00636311EA0268102673000 +B0946454546788N00636258EA0269202672000 +B0946524546760N00636206EA0270702673000 +B0946594546733N00636167EA0271002676000 +B0947064546700N00636102EA0271302680000 +B0947134546672N00636037EA0272602684000 +B0947204546645N00635981EA0272202688000 +B0947274546617N00635902EA0271302691000 +B0947344546586N00635823EA0270002691000 +B0947414546555N00635755EA0269402689000 +B0947484546533N00635692EA0272102688000 +B0947554546517N00635641EA0273802692000 +B0948024546498N00635589EA0275702700000 +B0948094546485N00635545EA0276802711000 +B0948164546477N00635491EA0277002722000 +B0948234546460N00635429EA0277002729000 +B0948304546433N00635381EA0275502733000 +B0948374546393N00635320EA0273602733000 +B0948444546353N00635261EA0272302730000 +B0948514546313N00635200EA0270902724000 +B0948584546276N00635136EA0270402716000 +B0949054546250N00635080EA0268902709000 +B0949124546216N00635008EA0267302700000 +B0949194546188N00634945EA0266702690000 +B0949264546157N00634873EA0265102679000 +B0949334546130N00634802EA0263602667000 +B0949404546095N00634727EA0261902654000 +B0949474546062N00634645EA0260102641000 +B0949544546032N00634567EA0260002627000 +B0950014546004N00634485EA0259502615000 +B0950084545988N00634423EA0259702606000 +B0950154545965N00634351EA0259402598000 +B0950224545944N00634306EA0260502594000 +B0950294545925N00634247EA0261202592000 +B0950364545903N00634189EA0260302591000 +B0950434545880N00634120EA0259602589000 +B0950504545867N00634064EA0262002588000 +B0950574545849N00634018EA0263202592000 +B0951044545826N00633961EA0262902597000 +B0951114545804N00633892EA0262902601000 +B0951194545776N00633807EA0261702603000 +B0951264545749N00633741EA0260902601000 +B0951334545727N00633677EA0261502599000 +B0951404545706N00633619EA0260702598000 +B0951474545688N00633549EA0261702597000 +B0951544545669N00633480EA0260702597000 +B0952014545643N00633407EA0260502594000 +B0952084545612N00633339EA0260802592000 +B0952154545581N00633270EA0261302592000 +B0952224545564N00633216EA0261202593000 +B0952294545539N00633166EA0261502594000 +B0952364545517N00633116EA0259002593000 +B0952434545492N00633044EA0257602587000 +B0952504545464N00632972EA0256602579000 +B0952574545437N00632910EA0255102570000 +B0953044545407N00632849EA0253602559000 +B0953114545374N00632790EA0252302548000 +B0953184545341N00632728EA0251002536000 +B0953254545315N00632658EA0249402523000 +B0953324545286N00632589EA0247002510000 +B0953394545261N00632504EA0245002495000 +B0953464545241N00632427EA0243602479000 +B0953534545210N00632360EA0241802463000 +B0954004545179N00632299EA0240102446000 +B0954074545155N00632239EA0239302430000 +B0954144545133N00632180EA0238602416000 +B0954214545110N00632114EA0238602403000 +B0954284545089N00632065EA0239402395000 +B0954354545066N00632020EA0239802389000 +B0954424545048N00631983EA0239702386000 +B0954494545035N00631939EA0240202384000 +B0954564545018N00631893EA0241702386000 +B0955034545000N00631851EA0243302390000 +B0955104544987N00631816EA0244702397000 +B0955174544973N00631776EA0247002406000 +B0955244544966N00631723EA0250202418000 +B0955314544990N00631697EA0251902433000 +B0955384544972N00631726EA0254202442000 +B0955454544959N00631682EA0255202458000 +B0955524544958N00631620EA0255302474000 +B0955594544953N00631555EA0256402488000 +B0956064544961N00631502EA0256602502000 +B0956134544973N00631451EA0256402513000 +B0956204544987N00631401EA0256102521000 +B0956274544998N00631345EA0256002526000 +B0956344545002N00631277EA0256302530000 +B0956414545003N00631205EA0256202532000 +B0956484544995N00631136EA0256602534000 +B0956554544994N00631080EA0258002538000 +B0957024544997N00631026EA0258802544000 +B0957104544994N00630962EA0261002553000 +B0957174544991N00630911EA0263002565000 +B0957244544980N00630854EA0263702577000 +B0957314544965N00630789EA0263802588000 +B0957384544954N00630730EA0263902597000 +B0957454544943N00630668EA0262302601000 +B0957524544936N00630585EA0260502601000 +B0957594544920N00630501EA0258802596000 +B0958064544905N00630423EA0257102589000 +B0958134544892N00630357EA0259402584000 +B0958204544877N00630313EA0260902583000 +B0958274544864N00630270EA0262602585000 +B0958344544842N00630277EA0263402591000 +B0958414544866N00630252EA0264702594000 +B0958484544865N00630196EA0265602601000 +B0958554544856N00630140EA0266402610000 +B0959024544842N00630091EA0267202619000 +B0959094544827N00630045EA0268402629000 +B0959164544808N00629996EA0268202637000 +B0959234544786N00629943EA0266702642000 +B0959304544757N00629892EA0264302643000 +B0959374544726N00629819EA0262902638000 +B0959444544702N00629744EA0263202632000 +B0959514544690N00629687EA0265402630000 +B0959584544684N00629625EA0268202634000 +B1000054544689N00629569EA0267802640000 +B1000124544699N00629504EA0267702644000 +B1000194544702N00629443EA0267802648000 +B1000264544707N00629369EA0268502650000 +B1000334544711N00629290EA0269102654000 +B1000404544709N00629220EA0270302658000 +B1000474544696N00629153EA0270702664000 +B1000544544693N00629089EA0270702669000 +B1001014544688N00629025EA0269402673000 +B1001084544683N00628971EA0268302674000 +B1001154544664N00628922EA0266202671000 +B1001224544635N00628875EA0264602664000 +B1001294544606N00628830EA0263302656000 +B1001364544577N00628780EA0262202647000 +B1001434544553N00628726EA0262102639000 +B1001504544531N00628673EA0261702630000 +B1001574544506N00628623EA0261202623000 +B1002044544484N00628570EA0260602616000 +B1002114544463N00628514EA0260302609000 +B1002184544444N00628454EA0259702603000 +B1002254544426N00628393EA0258902596000 +B1002324544403N00628332EA0258202591000 +B1002394544380N00628270EA0257302584000 +B1002464544364N00628207EA0256302575000 +B1002534544348N00628141EA0255202566000 +B1003014544328N00628065EA0254302556000 +B1003084544313N00627998EA0253402550000 +B1003154544306N00627926EA0252602547000 +B1003224544301N00627856EA0251602545000 +B1003294544293N00627787EA0250402536000 +B1003364544283N00627716EA0249902526000 +B1003434544274N00627644EA0249102516000 +B1003504544261N00627574EA0248202506000 +B1003574544252N00627501EA0247302495000 +B1004044544240N00627428EA0246702484000 +B1004114544231N00627356EA0246102474000 +B1004184544221N00627286EA0245302465000 +B1004254544208N00627217EA0244602457000 +B1004324544195N00627148EA0244102450000 +B1004394544185N00627079EA0243402443000 +B1004464544170N00627013EA0242602436000 +B1004534544163N00626941EA0241602428000 +B1005004544156N00626868EA0240702419000 +B1005074544150N00626797EA0240002410000 +B1005144544140N00626729EA0239002402000 +B1005214544125N00626659EA0237702392000 +B1005284544111N00626588EA0236302382000 +B1005354544099N00626513EA0235402372000 +B1005424544095N00626434EA0234502362000 +B1005494544094N00626354EA0233202352000 +B1005564544088N00626273EA0231802344000 +B1006034544078N00626184EA0230602334000 +B1006104544066N00626091EA0229602323000 +B1006174544050N00626003EA0228502316000 +B1006244544034N00625913EA0227502305000 +B1006314544019N00625823EA0226302294000 +B1006384544000N00625734EA0225002282000 +B1006454543983N00625646EA0224002271000 +B1006524543970N00625557EA0222602258000 +B1006594543954N00625471EA0221702245000 +B1007064543940N00625384EA0220502237000 +B1007134543929N00625299EA0219202226000 +B1007204543917N00625213EA0218102214000 +B1007274543904N00625123EA0217002201000 +B1007344543888N00625035EA0215702187000 +B1007414543873N00624946EA0214702174000 +B1007484543858N00624858EA0213702161000 +B1007554543841N00624770EA0212702149000 +B1008024543824N00624682EA0211702137000 +B1008094543806N00624596EA0210602125000 +B1008164543787N00624511EA0209302113000 +B1008234543767N00624428EA0208302102000 +B1008304543750N00624344EA0207302092000 +B1008384543731N00624248EA0206302081000 +B1008454543716N00624166EA0205302072000 +B1008524543701N00624084EA0204302062000 +B1008594543688N00624001EA0203302051000 +B1009064543676N00623917EA0202202041000 +B1009134543661N00623834EA0201302031000 +B1009204543646N00623750EA0200402020000 +B1009274543630N00623668EA0199402010000 +B1009344543617N00623584EA0198402000000 +B1009414543605N00623502EA0197501991000 +B1009484543591N00623420EA0196601981000 +B1009554543578N00623338EA0195701973000 +B1010024543565N00623257EA0194701963000 +B1010094543552N00623176EA0193601953000 +B1010164543539N00623097EA0192501943000 +B1010234543518N00623020EA0191501933000 +B1010304543492N00622945EA0190501922000 +B1010374543465N00622871EA0189601913000 +B1010444543441N00622795EA0188501904000 +B1010514543418N00622720EA0187401894000 +B1010584543396N00622644EA0186301884000 +B1011054543377N00622567EA0185101873000 +B1011124543362N00622487EA0184201862000 +B1011194543346N00622409EA0182701852000 +B1011264543329N00622330EA0181401841000 +B1011334543312N00622251EA0180301830000 +B1011404543293N00622172EA0179201818000 +B1011474543275N00622092EA0178001806000 +B1011544543261N00622012EA0176901794000 +B1012014543246N00621933EA0175701782000 +B1012084543225N00621858EA0174201770000 +B1012154543202N00621784EA0172701757000 +B1012224543181N00621711EA0171501743000 +B1012294543166N00621647EA0170701730000 +B1012364543164N00621580EA0170301719000 +B1012434543159N00621524EA0171301712000 +B1012504543165N00621464EA0171301709000 +B1012574543191N00621416EA0170301705000 +B1013044543226N00621380EA0169301700000 +B1013114543265N00621345EA0168301693000 +B1013184543289N00621292EA0167601686000 +B1013254543295N00621230EA0166701678000 +B1013324543278N00621177EA0165701670000 +B1013394543244N00621146EA0164901662000 +B1013464543209N00621119EA0165401655000 +B1013534543175N00621095EA0165801651000 +B1014004543146N00621066EA0165401649000 +B1014074543108N00621038EA0165501646000 +B1014144543085N00620998EA0166501644000 +B1014214543066N00620954EA0167401644000 +B1014284543054N00620905EA0168901647000 +B1014354543042N00620863EA0168301650000 +B1014424543011N00620839EA0167801653000 +B1014504542970N00620813EA0166801656000 +B1014574542934N00620794EA0167501657000 +B1015044542902N00620772EA0167201658000 +B1015114542865N00620760EA0166801658000 +B1015184542837N00620747EA0167801658000 +B1015254542812N00620731EA0168401660000 +B1015324542789N00620707EA0168501662000 +B1015394542763N00620677EA0169301664000 +B1015464542743N00620642EA0169701666000 +B1015534542714N00620608EA0170901669000 +B1016004542689N00620571EA0172301675000 +B1016074542679N00620586EA0173601683000 +B1016144542714N00620588EA0174201691000 +B1016214542699N00620578EA0175001697000 +B1016284542682N00620532EA0176401705000 +B1016354542655N00620508EA0177101714000 +B1016424542624N00620486EA0177101721000 +B1016494542584N00620475EA0176001725000 +B1016564542545N00620473EA0175701728000 +B1017034542563N00620500EA0175601729000 +B1017104542603N00620498EA0176001731000 +B1017174542646N00620500EA0177801734000 +B1017244542664N00620532EA0177301738000 +B1017314542642N00620499EA0178201743000 +B1017384542618N00620497EA0178701748000 +B1017454542647N00620522EA0179001753000 +B1017524542683N00620520EA0180401759000 +B1017594542712N00620538EA0182401767000 +B1018064542695N00620563EA0184701777000 +B1018134542687N00620519EA0186401789000 +B1018204542711N00620534EA0188701802000 +B1018274542683N00620522EA0191001813000 +B1018344542705N00620497EA0193601830000 +B1018414542688N00620511EA0195901845000 +B1018484542705N00620468EA0198601864000 +B1018554542700N00620501EA0201401884000 +B1019024542711N00620462EA0203701902000 +B1019094542695N00620478EA0206501919000 +B1019164542707N00620432EA0208501935000 +B1019234542700N00620469EA0211701955000 +B1019304542658N00620460EA0214701982000 +B1019374542622N00620447EA0215602011000 +B1019444542581N00620419EA0216102038000 +B1019514542533N00620378EA0216102058000 +B1019584542499N00620348EA0218002076000 +B1020054542463N00620323EA0217102094000 +B1020124542418N00620293EA0217602108000 +B1020194542376N00620261EA0218502119000 +B1020264542333N00620235EA0218202128000 +B1020344542286N00620199EA0217702136000 +B1020414542242N00620168EA0216702140000 +B1020484542189N00620128EA0214902139000 +B1020554542148N00620094EA0215102136000 +B1021024542109N00620080EA0216302135000 +B1021094542072N00620072EA0215902136000 +B1021164542030N00620055EA0214902136000 +B1021234541989N00620034EA0213502133000 +B1021304541941N00619998EA0211602128000 +B1021374541890N00619963EA0210302119000 +B1021444541843N00619928EA0209302110000 +B1021514541796N00619891EA0207902100000 +B1021584541752N00619854EA0207602089000 +B1022054541710N00619832EA0208102080000 +B1022124541671N00619816EA0209402076000 +B1022194541671N00619770EA0210102075000 +B1022264541700N00619792EA0211402077000 +B1022334541690N00619838EA0212602082000 +B1022404541651N00619825EA0214802089000 +B1022474541671N00619796EA0215602098000 +B1022544541674N00619838EA0216802107000 +B1023014541639N00619821EA0218202116000 +B1023084541656N00619781EA0218802125000 +B1023154541677N00619814EA0220202130000 +B1023224541656N00619846EA0220702139000 +B1023294541615N00619832EA0222002150000 +B1023364541583N00619806EA0222302161000 +B1023434541562N00619754EA0223502171000 +B1023504541536N00619705EA0225002181000 +B1023574541535N00619662EA0225202193000 +B1024044541558N00619698EA0226902203000 +B1024114541551N00619736EA0228302211000 +B1024184541543N00619694EA0230002217000 +B1024254541545N00619718EA0231502226000 +B1024324541523N00619666EA0232702237000 +B1024394541502N00619606EA0233402250000 +B1024464541483N00619547EA0232502262000 +B1024534541459N00619491EA0230802270000 +B1025004541432N00619412EA0228302272000 +B1025074541405N00619330EA0227002269000 +B1025144541385N00619246EA0225602263000 +B1025214541360N00619164EA0224402255000 +B1025284541329N00619087EA0222902247000 +B1025354541295N00619005EA0220802236000 +B1025424541262N00618921EA0219502224000 +B1025494541231N00618845EA0218102210000 +B1025564541199N00618765EA0216902198000 +B1026034541164N00618688EA0215702186000 +B1026104541132N00618609EA0214502174000 +B1026184541097N00618518EA0212902159000 +B1026254541067N00618435EA0211502145000 +B1026324541040N00618357EA0210502131000 +B1026394541020N00618275EA0209402118000 +B1026464541004N00618192EA0208102105000 +B1026534540983N00618112EA0206702092000 +B1027004540950N00618041EA0205802079000 +B1027074540921N00617967EA0204702067000 +B1027144540895N00617892EA0203502055000 +B1027214540871N00617816EA0202502044000 +B1027284540846N00617741EA0201402034000 +B1027354540821N00617665EA0200402023000 +B1027424540797N00617589EA0199502013000 +B1027494540773N00617512EA0198602003000 +B1027564540754N00617432EA0197501992000 +B1028034540736N00617367EA0196301982000 +B1028104540716N00617291EA0194401971000 +B1028174540702N00617206EA0194501960000 +B1028244540689N00617142EA0194501951000 +B1028314540673N00617082EA0195401944000 +B1028384540658N00617024EA0196401941000 +B1028454540647N00616976EA0197901942000 +B1028524540682N00616967EA0199101946000 +B1028594540667N00616983EA0200301950000 +B1029064540635N00616964EA0202101957000 +B1029134540604N00616945EA0202201965000 +B1029204540597N00616897EA0202401972000 +B1029274540631N00616903EA0203501978000 +B1029344540616N00616923EA0203301984000 +B1029414540595N00616876EA0203801990000 +B1029484540579N00616828EA0203001996000 +B1029554540546N00616785EA0201601998000 +B1030024540504N00616738EA0199901997000 +B1030094540470N00616693EA0201201993000 +B1030164540469N00616651EA0201601991000 +B1030234540504N00616653EA0202501993000 +B1030304540488N00616679EA0203201996000 +B1030374540453N00616659EA0204302000000 +B1030444540419N00616622EA0204602005000 +B1030514540380N00616586EA0204202011000 +B1030584540340N00616550EA0202602014000 +B1031054540292N00616507EA0200602011000 +B1031124540243N00616463EA0198902006000 +B1031194540194N00616418EA0197301998000 +B1031264540144N00616375EA0195901988000 +B1031334540094N00616335EA0194301976000 +B1031404540043N00616293EA0193001963000 +B1031474539992N00616251EA0191501949000 +B1031544539941N00616213EA0190001935000 +B1032014539892N00616177EA0188701921000 +B1032094539837N00616129EA0187601906000 +B1032164539790N00616096EA0186701892000 +B1032234539751N00616064EA0187201880000 +B1032304539715N00616036EA0185901870000 +B1032374539667N00616008EA0184201860000 +B1032444539612N00615985EA0182901849000 +B1032514539555N00615970EA0181701837000 +B1032584539497N00615954EA0181901826000 +B1033054539457N00615936EA0182101818000 +B1033124539414N00615927EA0181001812000 +B1033194539378N00615918EA0182401807000 +B1033264539385N00615936EA0183201806000 +B1033334539380N00615887EA0184201805000 +B1033404539349N00615890EA0184601806000 +B1033474539313N00615895EA0183801808000 +B1033544539271N00615891EA0182501808000 +B1034014539228N00615889EA0181601805000 +B1034084539180N00615883EA0181001802000 +B1034154539134N00615881EA0180801797000 +B1034224539098N00615871EA0181801794000 +B1034294539071N00615862EA0182101793000 +B1034364539039N00615847EA0182101794000 +B1034434539003N00615853EA0181801795000 +B1034504538969N00615851EA0180901795000 +B1034574538930N00615850EA0180401793000 +B1035044538899N00615822EA0181201791000 +B1035114538899N00615770EA0181901791000 +B1035184538904N00615711EA0183301793000 +B1035254538888N00615695EA0182801796000 +B1035324538914N00615731EA0184101798000 +B1035394538904N00615754EA0184701802000 +B1035464538937N00615731EA0185901808000 +B1035534538950N00615768EA0187301815000 +B1036004538942N00615730EA0188801823000 +B1036074538972N00615738EA0190501833000 +B1036144538953N00615764EA0190901843000 +B1036214538931N00615719EA0192201854000 +B1036284538956N00615689EA0192901865000 +B1036354538947N00615723EA0195001874000 +B1036424538931N00615681EA0195501884000 +B1036494538956N00615692EA0197001894000 +B1036564538936N00615699EA0198301905000 +B1037034538954N00615650EA0198701915000 +B1037104538940N00615684EA0200001923000 +B1037174538900N00615661EA0199201933000 +B1037244538860N00615619EA0198801942000 +B1037314538821N00615580EA0198001948000 +B1037384538781N00615546EA0196401950000 +B1037454538733N00615513EA0194501947000 +B1037524538679N00615478EA0193101941000 +B1038004538618N00615442EA0191601932000 +B1038074538564N00615414EA0190101922000 +B1038144538508N00615388EA0188901909000 +B1038214538453N00615363EA0187401896000 +B1038284538398N00615339EA0186601882000 +B1038354538352N00615320EA0186601872000 +B1038424538314N00615300EA0187801865000 +B1038494538273N00615278EA0189601863000 +B1038564538279N00615221EA0190801866000 +B1039034538287N00615251EA0191501869000 +B1039104538248N00615247EA0193401874000 +B1039174538263N00615208EA0194801882000 +B1039244538249N00615233EA0196401889000 +B1039314538249N00615199EA0196701897000 +B1039384538243N00615226EA0197901908000 +B1039454538207N00615234EA0198701919000 +B1039524538166N00615229EA0198901930000 +B1039594538127N00615214EA0200401940000 +B1040064538116N00615167EA0200901950000 +B1040134538138N00615176EA0202301959000 +B1040204538110N00615191EA0202901968000 +B1040274538070N00615179EA0203901978000 +B1040344538030N00615177EA0202001986000 +B1040414537984N00615165EA0201701989000 +B1040484537945N00615146EA0201501990000 +B1040554537909N00615127EA0201401989000 +B1041024537876N00615103EA0203401991000 +B1041094537880N00615060EA0204701997000 +B1041164537886N00615092EA0206702004000 +B1041234537862N00615069EA0208402013000 +B1041304537886N00615070EA0209702018000 +B1041374537855N00615061EA0211602027000 +B1041444537824N00615020EA0211202040000 +B1041514537789N00614989EA0211402051000 +B1041584537756N00614946EA0211502061000 +B1042054537728N00614900EA0213402070000 +B1042124537705N00614848EA0214402080000 +B1042194537695N00614790EA0216602092000 +B1042264537725N00614766EA0218502105000 +B1042334537706N00614771EA0220902115000 +B1042404537722N00614732EA0222502129000 +B1042474537720N00614767EA0225002145000 +B1042544537689N00614756EA0225802161000 +B1043014537663N00614700EA0226902177000 +B1043084537638N00614649EA0226802192000 +B1043154537608N00614599EA0226302203000 +B1043224537581N00614555EA0226002211000 +B1043294537547N00614510EA0224302216000 +B1043364537514N00614458EA0225102219000 +B1043434537483N00614412EA0225502220000 +B1043514537453N00614368EA0223602221000 +B1043584537409N00614311EA0221402217000 +B1044054537360N00614246EA0219802211000 +B1044124537310N00614186EA0218102202000 +B1044194537262N00614120EA0216502191000 +B1044264537215N00614054EA0214402178000 +B1044334537169N00613983EA0214102164000 +B1044404537146N00613918EA0215402154000 +B1044474537123N00613877EA0214902147000 +B1044544537093N00613841EA0213402140000 +B1045014537063N00613797EA0215102134000 +B1045084537041N00613759EA0215102132000 +B1045154537011N00613728EA0214202131000 +B1045224536981N00613681EA0212502128000 +B1045294536947N00613626EA0212802123000 +B1045364536919N00613586EA0213802120000 +B1045434536903N00613568EA0214902120000 +B1045504536880N00613539EA0215402121000 +B1045574536859N00613488EA0215402124000 +B1046044536841N00613438EA0215502126000 +B1046114536820N00613387EA0214602127000 +B1046184536786N00613337EA0213102126000 +B1046254536757N00613288EA0213002122000 +B1046324536738N00613242EA0214302120000 +B1046394536716N00613204EA0215502121000 +B1046464536717N00613146EA0218102126000 +B1046534536744N00613163EA0219002134000 +B1047004536727N00613172EA0220602141000 +B1047074536733N00613120EA0222902152000 +B1047144536734N00613134EA0225002160000 +B1047214536734N00613087EA0227002173000 +B1047284536749N00613113EA0228502186000 +B1047354536726N00613080EA0230802201000 +B1047424536713N00613034EA0232802220000 +B1047494536692N00612996EA0235302240000 +B1047564536679N00613013EA0236402261000 +B1048034536689N00612978EA0239102278000 +B1048104536663N00612943EA0240302296000 +B1048174536637N00612891EA0241602313000 +B1048244536612N00612836EA0240702329000 +B1048314536591N00612772EA0237802339000 +B1048384536565N00612691EA0235902342000 +B1048454536538N00612612EA0234702341000 +B1048524536512N00612553EA0236802340000 +B1048594536489N00612514EA0238302341000 +B1049064536466N00612467EA0238402345000 +B1049134536442N00612415EA0237302348000 +B1049204536409N00612353EA0235202347000 +B1049284536370N00612272EA0234902341000 +B1049354536352N00612221EA0234702337000 +B1049424536326N00612172EA0235002332000 +B1049494536305N00612129EA0236702331000 +B1049564536306N00612085EA0238902336000 +B1050034536322N00612111EA0241302343000 +B1050104536313N00612083EA0243102352000 +B1050174536351N00612090EA0245002364000 +B1050244536333N00612102EA0247002377000 +B1050314536311N00612062EA0249402394000 +B1050384536286N00612008EA0248502410000 +B1050454536261N00611952EA0247002421000 +B1050524536229N00611902EA0246702427000 +B1050594536208N00611853EA0247102432000 +B1051064536187N00611804EA0248302437000 +B1051134536172N00611757EA0248502443000 +B1051204536146N00611701EA0248202447000 +B1051274536116N00611644EA0247902451000 +B1051344536089N00611588EA0246402452000 +B1051414536061N00611519EA0245102449000 +B1051484536031N00611441EA0245802443000 +B1051554536013N00611380EA0245702439000 +B1052024535996N00611319EA0246202438000 +B1052094535978N00611258EA0245902438000 +B1052164535960N00611191EA0245102439000 +B1052234535940N00611118EA0243902436000 +B1052304535917N00611026EA0243102431000 +B1052374535893N00610938EA0242202425000 +B1052444535868N00610850EA0241602420000 +B1052514535847N00610762EA0241202413000 +B1052584535829N00610683EA0241402407000 +B1053054535810N00610605EA0241002402000 +B1053124535791N00610535EA0242302398000 +B1053194535765N00610480EA0243602398000 +B1053264535741N00610437EA0247002405000 +B1053334535715N00610414EA0249002416000 +B1053404535736N00610431EA0251802430000 +B1053474535727N00610386EA0253602446000 +B1053544535684N00610371EA0255202463000 +B1054014535641N00610355EA0255102479000 +B1054084535599N00610306EA0255502492000 +B1054154535577N00610234EA0255202502000 +B1054224535560N00610149EA0253602508000 +B1054294535540N00610052EA0251702508000 +B1054364535520N00609951EA0250502505000 +B1054434535496N00609852EA0249202499000 +B1054504535470N00609753EA0248202491000 +B1054584535441N00609638EA0247402481000 +B1055054535420N00609542EA0246202475000 +B1055124535394N00609460EA0245002475000 +B1055194535367N00609371EA0243502471000 +B1055264535345N00609270EA0242202457000 +B1055334535326N00609166EA0240802445000 +B1055404535304N00609065EA0239902429000 +B1055474535273N00608971EA0238702414000 +B1055544535241N00608878EA0237602398000 +B1056014535208N00608788EA0236202385000 +B1056084535178N00608697EA0234802371000 +B1056154535149N00608607EA0233702357000 +B1056224535119N00608521EA0232502343000 +B1056294535092N00608431EA0231402330000 +B1056364535062N00608343EA0230202318000 +B1056434535026N00608264EA0229102305000 +B1056504534989N00608185EA0227902293000 +B1056574534954N00608103EA0226702280000 +B1057044534918N00608022EA0225302268000 +B1057114534882N00607941EA0224102254000 +B1057184534848N00607858EA0222702245000 +B1057254534817N00607772EA0221302235000 +B1057324534789N00607684EA0220102223000 +B1057394534759N00607596EA0218902210000 +B1057464534727N00607510EA0217702197000 +B1057534534693N00607427EA0216302184000 +B1058004534656N00607347EA0215002171000 +B1058074534618N00607266EA0213902159000 +B1058144534582N00607183EA0212802147000 +B1058214534545N00607102EA0211602134000 +B1058284534508N00607023EA0210602121000 +B1058354534473N00606946EA0209602109000 +B1058424534437N00606870EA0208602098000 +B1058494534401N00606796EA0207702087000 +B1058564534364N00606723EA0206602076000 +B1059034534328N00606649EA0205702066000 +B1059104534302N00606588EA0205002056000 +B1059174534275N00606525EA0204102055000 +B1059244534248N00606466EA0203202046000 +B1059314534220N00606409EA0202502036000 +B1059384534187N00606361EA0201802026000 +B1059454534153N00606313EA0201002016000 +B1059524534125N00606257EA0200202007000 +B1059594534098N00606201EA0199301999000 +B1100064534071N00606147EA0198301991000 +B1100134534044N00606093EA0197301981000 +B1100204534013N00606040EA0196501972000 +B1100274533985N00605988EA0195401961000 +B1100354533948N00605931EA0194601950000 +B1100424533917N00605883EA0193901940000 +B1100494533883N00605838EA0193201931000 +B1100564533849N00605793EA0192501924000 +B1101034533815N00605745EA0191901917000 +B1101104533792N00605706EA0192801913000 +B1101174533808N00605655EA0194301911000 +B1101244533843N00605666EA0195901913000 +B1101314533821N00605694EA0197101918000 +B1101384533808N00605665EA0198001924000 +B1101454533841N00605673EA0199701932000 +B1101524533821N00605709EA0200001939000 +B1101594533786N00605690EA0201001948000 +B1102064533798N00605642EA0203301958000 +B1102134533807N00605669EA0204201970000 +B1102204533776N00605653EA0206301982000 +B1102274533779N00605607EA0208801996000 +B1102344533782N00605641EA0209902009000 +B1102414533745N00605619EA0210502023000 +B1102484533758N00605591EA0211702034000 +B1102554533739N00605632EA0211802047000 +B1103024533699N00605612EA0211902056000 +B1103094533706N00605560EA0211102064000 +B1103164533713N00605507EA0209802067000 +B1103234533698N00605444EA0210202069000 +B1103304533683N00605385EA0210002069000 +B1103374533671N00605334EA0210702070000 +B1103444533648N00605322EA0210402071000 +B1103514533674N00605307EA0210202070000 +B1103584533671N00605241EA0211502069000 +B1104054533661N00605182EA0211402070000 +B1104124533645N00605124EA0210702072000 +B1104194533625N00605066EA0209102070000 +B1104264533607N00605001EA0208102066000 +B1104334533588N00604938EA0207502062000 +B1104404533566N00604872EA0207002058000 +B1104474533546N00604808EA0205802052000 +B1104544533527N00604743EA0204602045000 +B1105014533505N00604679EA0204202037000 +B1105084533483N00604617EA0203302030000 +B1105154533463N00604556EA0202502022000 +B1105224533444N00604496EA0201602015000 +B1105294533421N00604439EA0200902007000 +B1105364533400N00604376EA0200201999000 +B1105434533378N00604312EA0199601992000 +B1105504533356N00604252EA0199001986000 +B1105574533336N00604188EA0198501979000 +B1106044533316N00604125EA0198201974000 +B1106114533295N00604063EA0197801968000 +B1106184533271N00604003EA0197101963000 +B1106254533247N00603940EA0196401958000 +B1106334533216N00603871EA0196301952000 +B1106404533188N00603820EA0195501948000 +B1106474533171N00603768EA0195101944000 +B1106544533160N00603712EA0194001937000 +B1107014533145N00603661EA0194201932000 +B1107084533134N00603617EA0193601926000 +B1107154533116N00603581EA0193401921000 +B1107224533117N00603533EA0193701916000 +B1107294533139N00603487EA0194201914000 +B1107364533178N00603471EA0194401912000 +B1107434533195N00603508EA0194801912000 +B1107504533165N00603511EA0195501912000 +B1107574533170N00603468EA0195901914000 +B1108044533197N00603496EA0196001916000 +B1108114533187N00603550EA0197301918000 +B1108184533169N00603544EA0197701922000 +B1108254533205N00603542EA0198601927000 +B1108324533220N00603591EA0199301934000 +B1108394533190N00603584EA0199901940000 +B1108464533213N00603579EA0200301946000 +B1108534533192N00603616EA0200501951000 +B1109004533172N00603583EA0201201955000 +B1109074533199N00603562EA0201101960000 +B1109144533183N00603592EA0200901964000 +B1109214533150N00603588EA0201201967000 +B1109284533168N00603547EA0200601969000 +B1109354533180N00603587EA0200701969000 +B1109424533152N00603624EA0200401969000 +B1109494533126N00603594EA0199101969000 +B1109564533155N00603554EA0198201967000 +B1110034533199N00603556EA0199701964000 +B1110104533208N00603589EA0200301964000 +B1110174533191N00603553EA0201901967000 +B1110244533222N00603534EA0202401972000 +B1110314533209N00603570EA0202801976000 +B1110384533208N00603533EA0203701979000 +B1110454533219N00603562EA0203701982000 +B1110524533202N00603531EA0203901986000 +B1110594533234N00603524EA0204501990000 +B1111064533221N00603554EA0204701993000 +B1111134533211N00603512EA0204501996000 +B1111204533248N00603493EA0205001999000 +B1111274533264N00603529EA0205202004000 +B1111344533241N00603559EA0205802009000 +B1111414533218N00603526EA0206002013000 +B1111484533221N00603467EA0206602017000 +B1111554533258N00603473EA0207102021000 +B1112024533235N00603484EA0208702027000 +B1112094533253N00603447EA0208902034000 +B1112164533270N00603489EA0210002040000 +B1112244533255N00603465EA0210602048000 +B1112314533288N00603470EA0211002055000 +B1112384533267N00603474EA0210602061000 +B1112454533264N00603413EA0211502066000 +B1112524533299N00603405EA0211902071000 +B1112594533277N00603399EA0212202075000 +B1113064533303N00603362EA0212202080000 +B1113134533304N00603394EA0212502083000 +B1113204533293N00603351EA0212402086000 +B1113274533326N00603345EA0211802088000 +B1113344533316N00603381EA0211802090000 +B1113414533283N00603379EA0211402090000 +B1113484533247N00603344EA0210802089000 +B1113554533212N00603305EA0210302086000 +B1114024533184N00603267EA0210002083000 +B1114094533144N00603223EA0209602079000 +B1114164533116N00603189EA0208502075000 +B1114234533080N00603140EA0207102069000 +B1114304533046N00603101EA0206402063000 +B1114374533014N00603056EA0205102056000 +B1114444532976N00603016EA0203602047000 +B1114514532938N00602968EA0202102037000 +B1114584532894N00602928EA0200702026000 +B1115054532851N00602883EA0199202013000 +B1115124532817N00602821EA0197401999000 +B1115194532785N00602754EA0195101984000 +B1115264532749N00602675EA0192901968000 +B1115334532713N00602595EA0190801950000 +B1115404532673N00602526EA0188701932000 +B1115474532631N00602460EA0187201916000 +B1115544532589N00602388EA0185901899000 +B1116014532550N00602321EA0184801882000 +B1116084532512N00602257EA0184001865000 +B1116154532474N00602195EA0183101851000 +B1116224532437N00602134EA0182001837000 +B1116294532400N00602072EA0180901824000 +B1116364532363N00602013EA0179901811000 +B1116434532325N00601960EA0178901799000 +B1116504532287N00601914EA0177801788000 +B1116574532250N00601868EA0176801776000 +B1117044532207N00601835EA0175801767000 +B1117114532164N00601811EA0174801758000 +B1117184532123N00601777EA0173801748000 +B1117254532082N00601739EA0172801738000 +B1117324532041N00601695EA0171701727000 +B1117394532002N00601657EA0170901716000 +B1117464531963N00601621EA0169901705000 +B1117534531929N00601577EA0167801694000 +B1118014531883N00601536EA0167201679000 +B1118084531842N00601500EA0165601668000 +B1118154531805N00601460EA0164301656000 +B1118224531770N00601419EA0163201644000 +B1118294531733N00601379EA0161601632000 +B1118364531697N00601332EA0160001619000 +B1118434531666N00601285EA0158701606000 +B1118504531636N00601242EA0157301593000 +B1118574531603N00601198EA0155701579000 +B1119044531565N00601153EA0154901565000 +B1119114531527N00601121EA0154101553000 +B1119184531488N00601081EA0154101542000 +B1119254531461N00601045EA0153801534000 +B1119324531428N00601009EA0153901526000 +B1119394531393N00600974EA0153601520000 +B1119464531357N00600927EA0153201515000 +B1119534531320N00600883EA0153101511000 +B1120004531287N00600842EA0152901507000 +B1120074531254N00600805EA0152301502000 +B1120144531221N00600766EA0151401498000 +B1120214531188N00600726EA0150401494000 +B1120284531156N00600681EA0149801488000 +B1120354531125N00600635EA0149101482000 +B1120424531096N00600587EA0148401476000 +B1120494531063N00600535EA0147001469000 +B1120564531030N00600486EA0146201462000 +B1121034530997N00600444EA0145501454000 +B1121104530964N00600405EA0144701448000 +B1121174530927N00600372EA0144001441000 +B1121244530889N00600340EA0143301434000 +B1121314530852N00600308EA0142601427000 +B1121384530816N00600275EA0142001420000 +B1121454530783N00600241EA0141401414000 +B1121524530749N00600207EA0140601407000 +B1121594530715N00600172EA0139801399000 +B1122064530686N00600131EA0138901393000 +B1122134530653N00600094EA0137901386000 +B1122204530616N00600061EA0136901378000 +B1122274530577N00600029EA0135901371000 +B1122344530541N00559996EA0135201363000 +B1122414530505N00559965EA0134401357000 +B1122484530469N00559932EA0133501351000 +B1122554530434N00559899EA0132601339000 +B1123024530399N00559866EA0131701326000 +B1123094530365N00559831EA0130701313000 +B1123164530329N00559799EA0129801303000 +B1123234530290N00559772EA0128801294000 +B1123304530251N00559745EA0127801289000 +B1123374530212N00559717EA0126801277000 +B1123444530174N00559685EA0125901265000 +B1123514530139N00559650EA0125001255000 +B1123584530103N00559618EA0124001244000 +B1124054530067N00559582EA0122901235000 +B1124134530024N00559541EA0122101223000 +B1124204529987N00559507EA0121001211000 +B1124274529949N00559475EA0120201201000 +B1124344529916N00559439EA0119401191000 +B1124414529885N00559400EA0118501181000 +B1124484529853N00559364EA0117101172000 +B1124554529824N00559324EA0116001162000 +B1125024529795N00559291EA0114701150000 +B1125094529765N00559256EA0113501138000 +B1125164529738N00559219EA0112801126000 +B1125234529709N00559183EA0112001115000 +B1125304529679N00559148EA0111201106000 +B1125374529649N00559111EA0110301097000 +B1125444529623N00559072EA0109501088000 +B1125514529592N00559036EA0108701078000 +B1125584529564N00558998EA0108201070000 +B1126054529543N00558956EA0107601063000 +B1126124529523N00558911EA0106801056000 +B1126194529499N00558870EA0106101049000 +B1126264529468N00558831EA0105201043000 +B1126334529433N00558799EA0104401036000 +B1126404529407N00558759EA0103601027000 +B1126474529384N00558719EA0102301019000 +B1126544529360N00558684EA0101901009000 +B1127014529332N00558657EA0100701001000 +B1127084529302N00558626EA0099700991000 +B1127154529276N00558589EA0098600985000 +B1127224529250N00558554EA0097900975000 +B1127294529214N00558527EA0096900962000 +B1127364529183N00558493EA0095900950000 +B1127434529154N00558459EA0095100938000 +B1127504529115N00558435EA0094300927000 +B1127574529073N00558420EA0093800918000 +B1128044529034N00558393EA0092800911000 +B1128114528991N00558378EA0091700903000 +B1128184528949N00558359EA0090900895000 +B1128254528902N00558347EA0089900888000 +B1128324528862N00558319EA0088500880000 +B1128394528820N00558281EA0087500870000 +B1128464528771N00558268EA0086800859000 +B1128534528720N00558271EA0085800849000 +B1129004528669N00558279EA0084700839000 +B1129074528616N00558294EA0083500829000 +B1129144528562N00558306EA0082400819000 +B1129214528512N00558320EA0082800810000 +B1129284528494N00558354EA0082500802000 +B1129354528497N00558316EA0082500795000 +B1129424528468N00558280EA0082400789000 +B1129494528425N00558289EA0082000784000 +B1129564528384N00558311EA0081100779000 +B1130034528339N00558335EA0080000773000 +B1130104528288N00558354EA0079300767000 +B1130184528230N00558374EA0078500759000 +B1130254528177N00558369EA0077300753000 +B1130324528126N00558354EA0077600746000 +B1130394528114N00558303EA0079000742000 +B1130464528132N00558322EA0078500741000 +B1130534528090N00558348EA0079800740000 +B1131004528057N00558318EA0080600742000 +B1131074528076N00558317EA0082200746000 +B1131144528045N00558321EA0083600752000 +B1131214528066N00558305EA0085200761000 +B1131284528046N00558334EA0087100772000 +B1131354528048N00558294EA0088800784000 +B1131424528058N00558330EA0089300797000 +B1131494528015N00558328EA0091700806000 +B1131564528002N00558289EA0092900818000 +B1132034528018N00558319EA0095400829000 +B1132104527992N00558342EA0097100847000 +B1132174527997N00558296EA0098900862000 +B1132244527989N00558330EA0100900879000 +B1132314527978N00558295EA0102500891000 +B1132384528001N00558304EA0103200906000 +B1132454527981N00558344EA0103900921000 +B1132524527955N00558318EA0106100931000 +B1132594527976N00558306EA0107000950000 +B1133064527959N00558354EA0107700966000 +B1133134527916N00558353EA0109100981000 +B1133204527908N00558303EA0109600994000 +B1133274527933N00558266EA0110701008000 +B1133344527919N00558309EA0110601019000 +B1133414527876N00558319EA0111601029000 +B1133484527856N00558270EA0112201035000 +B1133554527869N00558216EA0114101044000 +B1134024527870N00558242EA0116001053000 +B1134094527859N00558210EA0117501065000 +B1134164527862N00558236EA0119001076000 +B1134234527837N00558200EA0120801091000 +B1134304527858N00558199EA0122601109000 +B1134374527826N00558215EA0124501127000 +B1134444527823N00558177EA0126501144000 +B1134514527827N00558218EA0127801160000 +B1134584527799N00558196EA0129201175000 +B1135054527812N00558156EA0131601192000 +B1135124527810N00558190EA0133201209000 +B1135194527787N00558157EA0134901228000 +B1135264527801N00558175EA0136501245000 +B1135334527773N00558173EA0137701260000 +B1135404527786N00558144EA0139301276000 +B1135474527790N00558181EA0140601295000 +B1135544527763N00558163EA0141801313000 +B1136024527794N00558167EA0143301331000 +B1136094527779N00558213EA0143601345000 +B1136164527763N00558175EA0144101357000 +B1136234527773N00558131EA0145101368000 +B1136304527799N00558121EA0145701377000 +B1136374527780N00558160EA0146001386000 +B1136444527755N00558125EA0147101394000 +B1136514527744N00558074EA0147101403000 +B1136584527735N00558014EA0145701408000 +B1137054527725N00557938EA0143601408000 +B1137124527725N00557865EA0142401404000 +B1137194527714N00557812EA0142501400000 +B1137264527710N00557753EA0142401396000 +B1137334527702N00557697EA0141501391000 +B1137404527699N00557641EA0140701386000 +B1137474527695N00557589EA0139801380000 +B1137544527684N00557535EA0137901373000 +B1138014527677N00557477EA0135801364000 +B1138084527667N00557423EA0136601353000 +B1138154527654N00557372EA0136801347000 +B1138224527653N00557312EA0135801340000 +B1138294527650N00557248EA0135701334000 +B1138364527649N00557189EA0134501328000 +B1138434527650N00557132EA0134801322000 +B1138504527642N00557075EA0135201319000 +B1138574527640N00557020EA0134801317000 +B1139044527637N00556962EA0133701312000 +B1139114527635N00556903EA0134501308000 +B1139184527632N00556848EA0134901305000 +B1139254527629N00556792EA0136301305000 +B1139324527614N00556735EA0137501306000 +B1139394527594N00556684EA0138901308000 +B1139464527573N00556647EV0139601310000 +B1139534527546N00556608EA0140701317000 +B1140004527530N00556569EA0140901320000 +B1140074527509N00556529EA0140701320000 +B1140144527486N00556492EA0140701324000 +B1140214527466N00556510EA0139301327000 +B1140284527503N00556537EA0139601331000 +B1140354527521N00556558EV0139401333000 +B1140424527547N00556603EA0140201334000 +B1140494527583N00556640EA0140401338000 +B1140564527617N00556671EA0141901342000 +B1141034527652N00556692EA0144101347000 +B1141104527636N00556727EA0146101350000 +B1141174527615N00556706EA0147701356000 +B1141244527618N00556713EA0150301360000 +B1141314527650N00556706EA0152201371000 +B1141384527652N00556750EA0155001386000 +B1141464527623N00556715EA0157301414000 +B1141534527657N00556709EA0158701439000 +B1142004527657N00556763EA0159501461000 +B1142074527620N00556742EA0160301479000 +B1142144527607N00556678EA0162201500000 +B1142214527636N00556659EA0164301521000 +B1142284527617N00556673EA0165601539000 +B1142354527617N00556627EA0167301559000 +B1142424527650N00556604EA0168801574000 +B1142494527637N00556640EA0171201584000 +B1142564527635N00556593EA0172901600000 +B1143034527666N00556599EA0173901619000 +B1143104527644N00556635EA0176301639000 +B1143174527632N00556598EA0178701660000 +B1143244527660N00556618EA0180401682000 +B1143314527632N00556645EA0182401704000 +B1143384527615N00556593EA0184501725000 +B1143454527609N00556560EV0186801740000 +B1143524527612N00556552EA0187901751000 +B1143594527630N00556519EA0190201770000 +B1144064527619N00556470EA0191201784000 +B1144134527580N00556453EA0190401801000 +B1144204527533N00556444EA0190801807000 +B1144274527491N00556440EA0190601821000 +B1144344527453N00556436EA0189701830000 +B1144414527412N00556435EA0188901839000 +B1144484527369N00556433EA0188101843000 +B1144554527329N00556433EA0187001844000 +B1145024527288N00556439EA0186101842000 +B1145094527247N00556440EA0185301838000 +B1145164527207N00556435EA0184301833000 +B1145234527166N00556435EA0183301827000 +B1145304527126N00556442EA0182001819000 +B1145374527084N00556448EA0180901810000 +B1145444527042N00556455EA0179501801000 +B1145514527001N00556457EA0178501790000 +B1145584526961N00556466EA0177801779000 +B1146054526925N00556470EA0176701770000 +B1146124526886N00556470EA0175001760000 +B1146194526845N00556474EA0173601749000 +B1146264526801N00556492EA0172401736000 +B1146334526752N00556511EA0171801724000 +B1146404526703N00556522EA0170701713000 +B1146474526652N00556528EA0169701703000 +B1146544526600N00556526EA0168401692000 +B1147014526545N00556518EA0167901681000 +B1147084526492N00556513EA0168501676000 +B1147154526447N00556510EA0169501671000 +B1147224526404N00556494EA0171501668000 +B1147294526364N00556473EA0172801670000 +B1147374526313N00556462EA0173701675000 +B1147444526270N00556459EA0174801682000 +B1147514526229N00556453EA0175501688000 +B1147584526190N00556447EA0176201696000 +B1148054526151N00556436EA0177001704000 +B1148124526111N00556418EA0177401714000 +B1148194526064N00556408EA0177401722000 +B1148264526017N00556391EA0176801727000 +B1148334525979N00556380EA0177101728000 +B1148404525942N00556370EA0177401730000 +B1148474525898N00556350EA0177301731000 +B1148544525851N00556329EA0177301730000 +B1149014525806N00556302EA0177501730000 +B1149084525773N00556274EA0178001732000 +B1149154525743N00556241EA0179001735000 +B1149224525705N00556211EA0180501737000 +B1149294525671N00556178EA0180601744000 +B1149364525631N00556162EA0181201749000 +B1149434525607N00556138EA0183501757000 +B1149504525612N00556156EA0184501767000 +B1149574525605N00556123EA0186901778000 +B1150044525611N00556146EA0188201791000 +B1150114525615N00556091EA0190901803000 +B1150184525593N00556095EA0192901815000 +B1150254525611N00556069EA0195501831000 +B1150324525591N00556037EA0197401851000 +B1150394525605N00556065EA0199701866000 +B1150464525609N00556026EA0201901884000 +B1150534525592N00556046EA0203801905000 +B1151004525622N00556039EA0206801925000 +B1151074525602N00556001EA0208201947000 +B1151144525567N00555978EA0210101970000 +B1151214525536N00555953EA0213001993000 +B1151284525554N00555922EA0214502017000 +B1151354525542N00555965EA0215902035000 +B1151424525505N00555960EA0218002056000 +B1151494525465N00555934EA0219202078000 +B1151564525422N00555911EA0220402097000 +B1152034525383N00555886EA0221502115000 +B1152104525346N00555860EA0221102129000 +B1152174525301N00555847EA0220302139000 +B1152244525262N00555834EA0219502146000 +B1152314525221N00555818EA0218802149000 +B1152384525182N00555802EA0219302151000 +B1152454525145N00555788EA0219902154000 +B1152524525105N00555783EA0220602157000 +B1152594525069N00555774EA0221402162000 +B1153064525035N00555768EA0221202167000 +B1153134524998N00555759EA0221502170000 +B1153214524952N00555744EA0220802173000 +B1153284524914N00555724EA0220302174000 +B1153354524875N00555697EA0219302172000 +B1153424524841N00555665EA0219102169000 +B1153494524803N00555632EA0219202167000 +B1153564524764N00555604EA0219602165000 +B1154034524736N00555585EA0221002166000 +B1154104524713N00555574EA0222802170000 +B1154174524684N00555565EA0224302177000 +B1154244524649N00555553EA0226402187000 +B1154314524619N00555526EA0228402199000 +B1154384524594N00555509EA0229302212000 +B1154454524563N00555499EA0229502224000 +B1154524524532N00555484EA0230402235000 +B1154594524501N00555471EA0231002244000 +B1155064524463N00555449EA0230202251000 +B1155134524428N00555422EA0228802254000 +B1155204524390N00555390EA0227302253000 +B1155274524354N00555374EA0226002250000 +B1155344524318N00555347EA0224102244000 +B1155414524281N00555310EA0221502234000 +B1155484524246N00555264EA0221002221000 +B1155554524215N00555222EA0220102210000 +B1156024524182N00555185EA0220202199000 +B1156094524150N00555156EA0219402191000 +B1156164524114N00555124EA0220302183000 +B1156234524084N00555103EA0220302180000 +B1156304524051N00555090EA0219602178000 +B1156374524015N00555081EA0218402174000 +B1156444523980N00555065EA0218602169000 +B1156514523954N00555046EA0219002165000 +B1156584523929N00555022EA0219702164000 +B1157054523897N00554991EA0219902164000 +B1157124523864N00554952EA0218702164000 +B1157194523830N00554917EA0218902163000 +B1157264523792N00554910EA0218902162000 +B1157334523757N00554891EA0219902162000 +B1157404523720N00554872EA0221302163000 +B1157474523688N00554849EA0221802164000 +B1157544523647N00554837EA0221802168000 +B1158014523611N00554828EV0222802171000 +B1158084523568N00554798EA0224102172000 +B1158154523530N00554786EA0224302176000 +B1158224523489N00554771EA0224202178000 +B1158304523455N00554750EV0225002180000 +B1158364523411N00554732EA0225402181000 +B1158434523368N00554733EA0225902182000 +B1158504523327N00554722EA0226902189000 +B1158574523284N00554707EA0225902197000 +B1159044523241N00554696EA0226202204000 +B1159124523203N00554698EV0226102208000 +B1159194523145N00554687EA0226502211000 +B1159264523104N00554678EA0226302215000 +B1159334523076N00554667EV0226802217000 +B1159404523028N00554639EA0226302219000 +B1159474522987N00554607EA0224902223000 +B1159544522943N00554581EA0223502223000 +B1200014522889N00554553EA0221302218000 +B1200084522822N00554530EA0219902211000 +B1200154522799N00554518EV0220302210000 +B1200224522726N00554479EA0221102201000 +B1200294522700N00554465EA0222402193000 +B1200364522668N00554446EA0223402191000 +B1200434522634N00554430EA0223902191000 +B1200504522591N00554411EA0223902193000 +B1200574522553N00554383EA0225402195000 +B1201044522520N00554362EA0226802200000 +B1201114522487N00554336EA0227902207000 +B1201184522445N00554318EA0228302209000 +B1201254522407N00554301EA0227702216000 +B1201324522367N00554278EA0227102222000 +B1201394522325N00554248EA0226702225000 +B1201464522282N00554227EA0226002225000 +B1201534522244N00554208EA0226402226000 +B1202004522216N00554193EV0228002227000 +B1202074522185N00554163EA0229602230000 +B1202144522158N00554135EA0231402237000 +B1202214522128N00554113EA0233002242000 +B1202284522095N00554088EA0234602251000 +B1202354522069N00554061EA0234502264000 +B1202424522034N00554039EA0235502274000 +B1202494521998N00554013EA0235402283000 +B1202564521965N00553993EA0235402291000 +B1203034521928N00553972EA0235502297000 +B1203104521898N00553945EA0236102303000 +B1203174521867N00553930EA0236202308000 +B1203244521829N00553917EA0236402312000 +B1203314521787N00553907EA0237402315000 +B1203384521746N00553898EA0239502320000 +B1203454521712N00553889EA0240602328000 +B1203524521683N00553893EA0239802331000 +B1203594521647N00553884EA0240002338000 +B1204064521609N00553880EA0240902344000 +B1204134521577N00553866EA0241502350000 +B1204214521545N00553851EV0243502350000 +B1204274521511N00553829EA0244902356000 +B1204344521483N00553803EA0245902367000 +B1204424521455N00553796EV0246902376000 +B1204484521409N00553783EA0245602381000 +B1204554521382N00553761EA0244902391000 +B1205034521358N00553740EA0244502399000 +B1205104521331N00553710EA0244602403000 +B1205174521303N00553670EA0243302404000 +B1205244521273N00553626EA0241302402000 +B1205314521244N00553579EA0239702397000 +B1205384521217N00553531EA0239002391000 +B1205454521194N00553494EA0238102386000 +B1205524521169N00553458EA0236702379000 +B1205594521139N00553432EA0235302372000 +B1206064521108N00553406EA0233102362000 +B1206134521070N00553367EA0231202348000 +B1206204521031N00553325EA0229702333000 +B1206274520991N00553281EA0227802321000 +B1206344520944N00553245EA0227102309000 +B1206414520913N00553216EA0226502300000 +B1206484520885N00553189EA0226702289000 +B1206554520863N00553165EA0225902278000 +B1207024520833N00553150EA0224802267000 +B1207094520800N00553125EA0223202256000 +B1207164520766N00553098EA0223402244000 +B1207234520730N00553075EA0223102234000 +B1207304520694N00553053EA0224102227000 +B1207374520667N00553022EA0224802223000 +B1207444520634N00552999EA0225302221000 +B1207514520604N00552976EA0224502220000 +B1207584520570N00552953EA0225302219000 +B1208054520536N00552930EA0225502219000 +B1208124520507N00552913EA0224202219000 +B1208194520476N00552890EA0223802219000 +B1208264520440N00552865EA0224002217000 +B1208334520407N00552834EA0225702214000 +B1208404520392N00552796EA0227002215000 +B1208474520414N00552779EA0228802217000 +B1208544520408N00552810EA0230302221000 +B1209014520380N00552792EA0231902230000 +B1209084520355N00552769EA0233002241000 +B1209154520329N00552739EA0233502254000 +B1209224520294N00552714EA0234602265000 +B1209294520259N00552697EA0236102277000 +B1209364520226N00552677EA0238202290000 +B1209434520200N00552649EA0239502305000 +B1209504520173N00552620EA0239602318000 +B1209574520141N00552598EA0239702328000 +B1210044520111N00552575EA0240702336000 +B1210114520079N00552565EA0240302342000 +B1210184520043N00552545EA0240602348000 +B1210254520018N00552526EA0240002354000 +B1210324519993N00552501EA0240402357000 +B1210394519968N00552469EA0241102360000 +B1210464519941N00552436EA0242102363000 +B1210534519910N00552411EA0243802368000 +B1211014519875N00552380EA0245302374000 +B1211084519850N00552355EA0246202383000 +B1211154519818N00552332EA0244702391000 +B1211224519774N00552304EA0243402395000 +B1211294519738N00552277EA0243002398000 +B1211364519702N00552259EA0243002399000 +B1211434519671N00552248EA0244402400000 +B1211504519639N00552225EA0244002402000 +B1211574519606N00552200EA0243802403000 +B1212044519578N00552174EA0242002403000 +B1212114519539N00552156EA0240702399000 +B1212184519500N00552138EA0241102394000 +B1212254519464N00552127EA0241202392000 +B1212324519430N00552112EA0239702390000 +B1212394519395N00552086EA0238202384000 +B1212464519360N00552057EA0236402376000 +B1212534519316N00552027EA0235802367000 +B1213004519278N00552001EA0234902358000 +B1213074519247N00551971EA0233002349000 +B1213144519211N00551952EA0231602340000 +B1213214519173N00551942EA0231702329000 +B1213284519135N00551933EA0232302319000 +B1213354519100N00551917EA0234102313000 +B1213424519071N00551895EA0235502311000 +B1213494519037N00551876EA0238002313000 +B1213564519046N00551890EA0239902316000 +B1214034519048N00551845EA0241902322000 +B1214104519021N00551832EA0243802333000 +B1214174519049N00551853EA0245802343000 +B1214244519071N00551796EA0247702360000 +B1214314519077N00551727EA0249102377000 +B1214384519081N00551665EA0250702396000 +B1214454519085N00551616EA0252102415000 +B1214524519081N00551569EA0252002432000 +B1214594519070N00551521EA0250802444000 +B1215064519052N00551467EA0249702451000 +B1215134519027N00551413EA0249602454000 +B1215204519001N00551375EA0249302456000 +B1215274518971N00551327EA0248802458000 +B1215344518945N00551276EA0248702459000 +B1215414518921N00551227EA0249002459000 +B1215484518892N00551190EA0248402458000 +B1215554518862N00551154EA0250002457000 +B1216024518838N00551119EA0250102459000 +B1216094518818N00551073EA0251202462000 +B1216164518795N00551024EA0253302468000 +B1216234518802N00550967EA0254702477000 +B1216304518832N00550993EA0256002486000 +B1216374518811N00551006EA0258102498000 +B1216444518798N00550963EA0259502512000 +B1216514518782N00550916EA0258802526000 +B1216584518756N00550866EA0258002535000 +B1217064518721N00550819EA0257202542000 +B1217134518684N00550778EA0255702543000 +B1217204518639N00550725EA0254202540000 +B1217274518596N00550671EA0253302535000 +B1217344518562N00550622EA0252802529000 +B1217414518532N00550570EA0251402522000 +B1217484518503N00550526EA0250202514000 +B1217554518477N00550488EA0249502506000 +B1218024518446N00550445EA0247302497000 +B1218094518409N00550401EA0245902485000 +B1218164518373N00550362EA0245002474000 +B1218234518337N00550329EA0244102464000 +B1218304518307N00550291EA0243402454000 +B1218374518274N00550254EA0243002444000 +B1218444518239N00550219EA0242202434000 +B1218514518200N00550190EA0241602425000 +B1218584518158N00550167EA0240802416000 +B1219054518113N00550148EA0240102414000 +B1219124518072N00550117EA0239502406000 +B1219194518035N00550082EA0238902397000 +B1219264517997N00550046EA0238302389000 +B1219334517963N00550009EA0237302380000 +B1219404517932N00549962EA0236902375000 +B1219474517898N00549928EA0237102367000 +B1219544517876N00549901EA0237102361000 +B1220024517864N00549877EV0236202358000 +B1220084517842N00549847EA0236202353000 +B1220154517823N00549819EA0234702348000 +B1220224517805N00549791EA0234102341000 +B1220304517775N00549773EA0233402332000 +B1220374517746N00549749EA0232402323000 +B1220444517720N00549722EA0230802317000 +B1220514517685N00549694EA0228402307000 +B1220584517648N00549669EA0226602295000 +B1221054517606N00549643EA0225902282000 +B1221124517563N00549615EA0225102269000 +B1221194517521N00549594EA0224402256000 +B1221264517484N00549585EA0223402245000 +B1221334517444N00549564EA0222202234000 +B1221404517406N00549537EA0221102222000 +B1221474517369N00549509EA0220202211000 +B1221544517333N00549484EA0219502201000 +B1222014517296N00549465EA0218302192000 +B1222084517264N00549430EA0217502182000 +B1222154517230N00549400EA0216202173000 +B1222224517200N00549370EA0214902164000 +B1222294517164N00549346EA0213502154000 +B1222364517132N00549325EA0211502142000 +B1222434517099N00549303EA0209202127000 +B1222504517066N00549276EA0207302110000 +B1222574517032N00549245EA0205802093000 +B1223044516999N00549224EA0203502077000 +B1223114516969N00549201EA0202102060000 +B1223184516949N00549180EA0200002042000 +B1223254516921N00549162EA0198602027000 +B1223324516895N00549135EA0196002009000 +B1223394516869N00549096EA0194101989000 +B1223464516846N00549054EA0193201970000 +B1223534516821N00549012EA0192701953000 +B1224004516795N00548973EA0193201939000 +B1224074516772N00548941EA0193501930000 +B1224144516743N00548917EA0195401926000 +B1224214516730N00548887EA0197501926000 +B1224284516743N00548914EA0199401929000 +B1224354516714N00548938EA0201401933000 +B1224424516688N00548919EA0202601941000 +B1224494516666N00548888EA0204201952000 +B1224564516647N00548841EA0205301961000 +B1225034516618N00548817EA0207101976000 +B1225104516587N00548798EA0208301990000 +B1225174516578N00548765EA0209602005000 +B1225244516609N00548792EA0210502013000 +B1225314516592N00548834EA0212002025000 +B1225384516564N00548822EA0215002040000 +B1225454516565N00548774EA0217802060000 +B1225524516579N00548806EA0220702081000 +B1225594516555N00548814EA0221602104000 +B1226064516531N00548783EA0220802124000 +B1226134516502N00548744EA0220202138000 +B1226204516471N00548694EA0219102147000 +B1226284516430N00548632EA0217902150000 +B1226354516398N00548595EV0216702150000 +B1226424516355N00548550EA0215202149000 +B1226494516328N00548509EA0213802143000 +B1226564516297N00548469EA0212302136000 +B1227034516266N00548432EA0210002123000 +B1227104516240N00548405EA0209302112000 +B1227174516221N00548386EV0208702103000 +B1227244516182N00548360EA0207102095000 +B1227314516152N00548333EA0205702081000 +B1227384516123N00548304EA0205102071000 +B1227454516088N00548279EA0204502059000 +B1227524516058N00548243EA0203002047000 +B1227594516026N00548206EA0201602034000 +B1228064515993N00548172EA0200002021000 +B1228134515957N00548135EA0198802006000 +B1228204515925N00548102EA0197801992000 +B1228274515900N00548076EA0197601983000 +B1228344515877N00548045EA0197001972000 +B1228414515853N00548006EA0196901963000 +B1228484515831N00547975EA0197301956000 +B1228554515803N00547942EA0196701951000 +B1229024515773N00547908EA0195801946000 +B1229094515743N00547874EA0196301941000 +B1229164515717N00547843EA0196101937000 +B1229234515687N00547818EA0195101933000 +B1229304515657N00547791EA0193901929000 +B1229374515630N00547754EA0192701923000 +B1229444515606N00547715EA0192701916000 +B1229514515590N00547683EA0194701912000 +B1229584515593N00547633EA0196701912000 +B1230054515624N00547648EA0198001917000 +B1230124515601N00547686EA0199601924000 +B1230194515572N00547668EA0200201934000 +B1230264515539N00547629EA0198901942000 +B1230334515499N00547579EA0199101947000 +B1230404515472N00547543EA0198401951000 +B1230474515438N00547517EA0196801953000 +B1230544515399N00547481EA0196101951000 +B1231014515371N00547443EA0196501948000 +B1231084515344N00547414EA0196701946000 +B1231154515321N00547382EA0198601946000 +B1231224515304N00547355EA0200001949000 +B1231294515280N00547322EA0201601955000 +B1231364515254N00547286EA0202401962000 +B1231434515227N00547245EA0204801971000 +B1231504515215N00547208EA0207501984000 +B1231574515205N00547168EA0206901997000 +B1232044515187N00547137EA0207502007000 +B1232114515163N00547109EA0206502016000 +B1232194515128N00547069EA0204702020000 +B1232264515096N00547029EA0203402018000 +B1232334515060N00546986EA0201302013000 +B1232404515031N00546942EA0200002005000 +B1232474514999N00546900EA0197801994000 +B1232544514965N00546852EA0196401981000 +B1233014514933N00546804EA0195901968000 +B1233084514907N00546766EA0194701957000 +B1233154514876N00546723EA0193601946000 +B1233224514849N00546676EA0192701936000 +B1233294514820N00546635EA0192101926000 +B1233364514789N00546591EA0190501916000 +B1233434514753N00546553EA0189301904000 +B1233504514712N00546505EA0188401892000 +B1233574514685N00546467EA0188701882000 +B1234044514652N00546433EA0189901876000 +B1234114514625N00546391EA0188801872000 +B1234184514594N00546352EA0187201866000 +B1234254514554N00546303EA0184901857000 +B1234324514513N00546242EA0182901845000 +B1234394514476N00546183EA0182501832000 +B1234464514447N00546134EA0182101821000 +B1234534514414N00546094EA0181601812000 +B1235004514375N00546066EA0181201804000 +B1235074514341N00546036EA0182001797000 +B1235144514310N00546011EA0182001794000 +B1235214514272N00545981EA0182801793000 +B1235284514241N00545939EA0183601793000 +B1235354514217N00545902EA0184701796000 +B1235424514197N00545869EA0186001802000 +B1235494514171N00545832EA0185301808000 +B1235564514146N00545798EA0184301811000 +B1236034514117N00545762EA0183301810000 +B1236104514090N00545723EA0180901805000 +B1236174514079N00545769EA0179001797000 +B1236244514091N00545824EA0177601786000 +B1236314514117N00545873EA0176601774000 +B1236384514151N00545910EA0177101767000 +B1236454514188N00545939EA0178901764000 +B1236524514214N00545973EA0179401760000 +B1236594514236N00546022EA0180401759000 +B1237064514259N00546074EA0181301760000 +B1237134514284N00546122EA0182401762000 +B1237204514313N00546161EA0183001766000 +B1237274514351N00546192EA0184201773000 +B1237344514384N00546234EA0185401783000 +B1237414514414N00546273EA0185401793000 +B1237484514442N00546307EA0184001796000 +B1237554514465N00546351EA0184401802000 +B1238024514492N00546399EA0186101806000 +B1238094514511N00546437EA0185101809000 +B1238174514541N00546495EA0186601811000 +B1238244514569N00546536EA0185401814000 +B1238314514604N00546589EA0185001815000 +B1238384514634N00546631EA0184501815000 +B1238454514670N00546691EA0185501815000 +B1238524514703N00546743EA0186601815000 +B1238594514728N00546784EA0187801819000 +B1239064514751N00546812EA0189201826000 +B1239134514773N00546836EA0189301834000 +B1239204514801N00546870EA0190001839000 +B1239274514827N00546912EA0189301846000 +B1239344514855N00546952EA0189201850000 +B1239414514890N00546986EA0188501852000 +B1239484514933N00547027EA0188801853000 +B1239554514968N00547067EA0191101854000 +B1240024514992N00547101EA0192801860000 +B1240094515021N00547134EA0193201867000 +B1240164515046N00547163EA0193801871000 +B1240234515071N00547187EA0193901878000 +B1240304515097N00547215EA0192801880000 +B1240374515124N00547237EA0191101880000 +B1240444515150N00547275EA0191301881000 +B1240514515190N00547321EA0192801881000 +B1240584515219N00547357EA0194301885000 +B1241054515254N00547394EA0195601892000 +B1241124515281N00547428EA0197301901000 +B1241194515307N00547462EA0198301911000 +B1241264515335N00547500EA0200501923000 +B1241334515360N00547534EA0200001934000 +B1241404515393N00547581EA0199101942000 +B1241474515421N00547641EA0198701947000 +B1241544515455N00547700EA0197401949000 +B1242014515496N00547756EA0194801945000 +B1242084515539N00547800EA0193001939000 +B1242154515575N00547837EA0193701931000 +B1242224515600N00547877EA0193201924000 +B1242294515632N00547919EA0191801917000 +B1242364515668N00547965EA0191601910000 +B1242434515700N00547997EA0191401904000 +B1242504515733N00548029EA0192201900000 +B1242574515768N00548071EA0194101900000 +B1243044515800N00548113EA0194001900000 +B1243114515839N00548158EA0193701900000 +B1243184515880N00548203EA0192801900000 +B1243254515919N00548252EA0191701900000 +B1243324515954N00548302EA0189501900000 +B1243394515994N00548350EA0186901900000 +B1243464516033N00548401EA0186001900000 +B1243534516072N00548452EA0183801894000 +B1244004516117N00548515EA0182001883000 +B1244084516173N00548589EA0180501861000 +B1244154516223N00548647EA0179101840000 +B1244224516270N00548698EA0177601820000 +B1244294516322N00548750EA0175801801000 +B1244364516366N00548783EA0176301783000 +B1244434516407N00548808EA0178701773000 +B1244504516444N00548835EA0180701769000 +B1244574516473N00548862EA0182601772000 +B1245044516508N00548887EA0184401778000 +B1245114516547N00548912EA0184901786000 +B1245184516588N00548931EA0186501794000 +B1245254516618N00548948EA0187301805000 +B1245324516648N00548967EA0187501815000 +B1245394516679N00548990EA0188501823000 +B1245464516718N00549005EA0188701830000 +B1245534516760N00549024EA0188601836000 +B1246004516802N00549045EA0187601839000 +B1246074516848N00549070EA0186001838000 +B1246144516899N00549093EA0184401834000 +B1246214516946N00549119EA0182701826000 +B1246284516992N00549139EA0181401817000 +B1246354517037N00549169EA0180401807000 +B1246424517080N00549195EA0180301798000 +B1246494517127N00549218EA0179801790000 +B1246564517172N00549248EA0178501782000 +B1247034517215N00549280EA0176301772000 +B1247104517265N00549314EA0175201761000 +B1247174517308N00549341EA0174501751000 +B1247244517353N00549374EA0173701741000 +B1247314517399N00549404EA0173001733000 +B1247384517445N00549438EA0172101724000 +B1247454517494N00549459EA0171401716000 +B1247524517541N00549458EA0170801709000 +B1247594517584N00549475EA0171401704000 +B1248064517626N00549492EA0172401700000 +B1248134517659N00549512EA0174101700000 +B1248204517687N00549541EA0174701703000 +B1248274517713N00549577EA0176201707000 +B1248344517732N00549613EA0177701714000 +B1248414517753N00549655EA0177701723000 +B1248484517771N00549707EA0176401728000 +B1248554517794N00549765EA0175401730000 +B1249024517817N00549826EA0174601731000 +B1249094517850N00549874EA0175901731000 +B1249164517888N00549919EA0175901732000 +B1249234517924N00549975EA0175001731000 +B1249304517952N00550032EA0174301727000 +B1249374517973N00550088EA0174301723000 +B1249444517991N00550142EA0173801721000 +B1249514518004N00550192EA0173701719000 +B1249594518026N00550256EA0172701716000 +B1250064518041N00550309EA0171701711000 +B1250134518064N00550357EA0172301705000 +B1250204518081N00550405EA0173201702000 +B1250274518087N00550444EA0172601701000 +B1250344518102N00550494EA0171901698000 +B1250414518114N00550548EA0171201694000 +B1250484518123N00550602EA0170201689000 +B1250554518139N00550652EA0168901684000 +B1251024518164N00550709EA0167301678000 +B1251094518181N00550779EA0166401670000 +B1251164518198N00550852EA0166201661000 +B1251234518214N00550903EA0167401655000 +B1251304518229N00550955EA0168301651000 +B1251374518236N00551013EA0167801649000 +B1251444518231N00551070EA0168001646000 +B1251514518228N00551119EA0169501646000 +B1251584518232N00551164EA0170701649000 +B1252054518242N00551210EA0172401654000 +B1252124518247N00551258EA0172901662000 +B1252194518272N00551308EA0175301670000 +B1252264518255N00551320EA0176701677000 +B1252334518284N00551284EA0178801685000 +B1252404518297N00551311EA0180401697000 +B1252474518290N00551274EA0181701713000 +B1252544518322N00551292EA0183101729000 +B1253014518306N00551306EA0184701742000 +B1253084518331N00551280EA0186101758000 +B1253154518350N00551318EA0187201772000 +B1253224518339N00551289EA0189701783000 +B1253294518365N00551302EA0191401785000 +B1253364518350N00551293EA0193501788000 +B1253434518380N00551303EA0196201804000 +B1253504518360N00551304EA0198101817000 +B1253574518394N00551291EA0200801843000 +B1254044518385N00551328EA0203501871000 +B1254114518389N00551287EA0206101900000 +B1254184518422N00551297EA0209001933000 +B1254254518396N00551321EA0211801956000 +B1254324518421N00551300EA0215701981000 +B1254394518430N00551336EA0217602013000 +B1254464518420N00551300EA0221502041000 +B1254534518444N00551309EA0224402073000 +B1255004518421N00551325EA0227502104000 +B1255074518442N00551293EA0231002137000 +B1255144518459N00551325EA0233202169000 +B1255214518428N00551331EA0236402201000 +B1255284518453N00551315EA0239302205000 +B1255354518494N00551347EA0241202218000 +B1255434518534N00551351EA0242702255000 +B1255504518578N00551359EA0244702288000 +B1255574518623N00551382EA0245502318000 +B1256044518664N00551409EA0247602346000 +B1256114518697N00551435EA0249502372000 +B1256184518737N00551463EA0250002396000 +B1256254518773N00551496EA0249702416000 +B1256324518814N00551527EA0250402430000 +B1256394518848N00551560EA0250502443000 +B1256464518883N00551596EA0249802451000 +B1256534518926N00551625EA0250102457000 +B1257004518972N00551644EA0252202463000 +B1257074519011N00551662EA0252602471000 +B1257144519050N00551678EA0253802480000 +B1257214519092N00551699EA0254502488000 +B1257284519137N00551724EA0253902495000 +B1257354519187N00551761EA0253602500000 +B1257424519233N00551793EA0252802503000 +B1257494519283N00551827EA0252002504000 +B1257564519330N00551866EA0250302503000 +B1258034519383N00551903EA0249002499000 +B1258104519433N00551941EA0247602494000 +B1258174519478N00551990EA0246602486000 +B1258244519521N00552038EA0245602477000 +B1258314519570N00552085EA0244302467000 +B1258384519618N00552133EA0241602454000 +B1258454519663N00552183EA0240002440000 +B1258524519703N00552215EA0239902427000 +B1258594519744N00552255EA0239102415000 +B1259064519781N00552299EA0238302403000 +B1259134519822N00552345EA0238302391000 +B1259204519863N00552393EA0238902382000 +B1259274519905N00552433EA0240102378000 +B1259344519950N00552464EA0241502376000 +B1259414519990N00552499EA0242902379000 +B1259484520023N00552532EA0243402385000 +B1259554520058N00552578EA0245002390000 +B1300024520096N00552610EA0246702397000 +B1300094520137N00552644EA0247702408000 +B1300164520173N00552681EA0247502420000 +B1300234520209N00552712EA0247902428000 +B1300304520246N00552736EA0249002436000 +B1300374520288N00552755EA0250302443000 +B1300444520331N00552770EA0251102451000 +B1300514520373N00552784EA0252302460000 +B1300584520412N00552802EA0253302469000 +B1301054520455N00552831EA0254202478000 +B1301124520491N00552866EA0253202486000 +B1301194520535N00552917EA0251202490000 +B1301274520592N00552976EA0249802491000 +B1301344520645N00553027EA0249102489000 +B1301414520694N00553070EA0249002488000 +B1301484520741N00553123EA0247702486000 +B1301554520795N00553181EA0246402481000 +B1302024520850N00553231EA0244902473000 +B1302094520904N00553277EA0243102462000 +B1302164520958N00553327EA0241802451000 +B1302234521013N00553375EA0240402438000 +B1302304521060N00553424EA0239302425000 +B1302374521104N00553471EA0237002411000 +B1302444521153N00553510EA0236302397000 +B1302514521198N00553548EA0234902383000 +B1302584521245N00553573EA0233902368000 +B1303054521294N00553588EA0233502355000 +B1303124521338N00553599EA0233302345000 +B1303194521380N00553612EA0235602338000 +B1303264521430N00553624EA0238102335000 +B1303334521473N00553626EA0240502339000 +B1303404521508N00553635EA0241002346000 +B1303474521544N00553628EA0243702356000 +B1303544521587N00553633EA0246002368000 +B1304014521629N00553647EA0247602382000 +B1304084521670N00553663EA0249202397000 +B1304154521711N00553682EA0250602413000 +B1304224521752N00553701EA0252502430000 +B1304294521793N00553714EA0253202445000 +B1304364521834N00553735EA0254702461000 +B1304434521881N00553761EA0255002474000 +B1304504521927N00553770EA0254802486000 +B1304574521976N00553788EA0254602495000 +B1305044522033N00553806EA0254302501000 +B1305114522081N00553847EA0253602504000 +B1305184522134N00553884EA0252502506000 +B1305254522192N00553922EA0250802504000 +B1305324522251N00553956EA0248802498000 +B1305394522308N00553990EA0246502488000 +B1305464522368N00554021EA0244902476000 +B1305534522434N00554057EA0243402462000 +B1306004522498N00554087EA0241802447000 +B1306074522562N00554113EA0240102432000 +B1306144522627N00554136EA0238402417000 +B1306214522692N00554162EA0236702402000 +B1306284522756N00554188EA0235202386000 +B1306354522821N00554211EA0233802370000 +B1306424522883N00554238EA0232602355000 +B1306494522939N00554263EA0232502341000 +B1306564522981N00554287EA0230202329000 +B1307034523035N00554314EA0229202316000 +B1307114523092N00554337EA0228202302000 +B1307184523140N00554360EA0226902290000 +B1307254523181N00554373EA0225602279000 +B1307324523221N00554374EA0225002269000 +B1307394523264N00554385EA0224802258000 +B1307464523305N00554395EA0225102248000 +B1307534523349N00554397EA0225002239000 +B1308004523393N00554406EA0224602233000 +B1308074523436N00554416EA0225302229000 +B1308144523475N00554424EA0225202228000 +B1308214523515N00554442EA0224402227000 +B1308284523557N00554461EA0223502224000 +B1308354523602N00554487EA0222702219000 +B1308424523647N00554512EA0221002213000 +B1308494523694N00554547EA0219402205000 +B1308564523739N00554575EA0217602196000 +B1309034523780N00554608EA0216702185000 +B1309104523818N00554646EA0215102173000 +B1309174523858N00554675EA0214502161000 +B1309244523897N00554703EA0214202150000 +B1309314523933N00554732EA0213802140000 +B1309384523969N00554765EA0213302131000 +B1309454524012N00554803EA0211902122000 +B1309524524048N00554839EA0212902116000 +B1309594524087N00554871EA0213302112000 +B1310064524123N00554905EA0214002111000 +B1310134524159N00554934EA0213702111000 +B1310204524195N00554975EA0213502110000 +B1310274524235N00555024EA0214102110000 +B1310344524272N00555065EA0215502110000 +B1310414524303N00555093EA0216802114000 +B1310484524337N00555108EA0218302120000 +B1310554524356N00555074EA0219202128000 +B1311024524343N00555103EA0220502134000 +B1311094524383N00555114EA0221502143000 +B1311164524431N00555113EA0223402154000 +B1311234524473N00555113EA0224202165000 +B1311304524511N00555110EA0225402177000 +B1311374524544N00555113EA0225302189000 +B1311444524582N00555125EA0225402198000 +B1311514524619N00555132EA0225002205000 +B1311584524659N00555135EA0225302210000 +B1312054524699N00555129EA0224402214000 +B1312124524737N00555129EA0223302215000 +B1312194524775N00555146EA0222402214000 +B1312264524816N00555171EA0220802211000 +B1312334524864N00555206EA0219102205000 +B1312404524908N00555238EA0219502199000 +B1312474524951N00555271EA0218402192000 +B1312544524985N00555315EA0218202183000 +B1313014525012N00555362EA0217102176000 +B1313094525038N00555420EA0217002167000 +B1313164525068N00555461EA0216502160000 +B1313234525110N00555504EA0215102155000 +B1313304525153N00555551EA0214102149000 +B1313374525193N00555598EA0214102141000 +B1313444525231N00555628EA0214102135000 +B1313514525267N00555651EA0213502130000 +B1313584525301N00555677EA0212602125000 +B1314054525341N00555707EA0211702118000 +B1314124525381N00555739EA0210102110000 +B1314194525424N00555764EA0208702102000 +B1314264525467N00555786EA0207802092000 +B1314334525504N00555823EA0206602084000 +B1314404525552N00555873EA0205302074000 +B1314474525603N00555920EA0204502063000 +B1314544525654N00555963EA0203602052000 +B1315014525705N00556003EA0202602040000 +B1315084525751N00556043EA0201702030000 +B1315154525786N00556067EA0201702021000 +B1315224525827N00556089EA0201302014000 +B1315294525867N00556114EA0200402007000 +B1315364525906N00556144EA0199702000000 +B1315434525946N00556173EA0198701992000 +B1315504525982N00556177EA0197901983000 +B1315574526018N00556157EA0197101975000 +B1316044526058N00556149EA0197001968000 +B1316114526087N00556129EA0195901962000 +B1316184526115N00556072EA0194201954000 +B1316254526150N00556010EA0192501945000 +B1316324526182N00555945EA0190701933000 +B1316394526212N00555876EA0189401921000 +B1316464526241N00555810EA0187801908000 +B1316534526268N00555747EA0185901894000 +B1317004526297N00555682EA0184001879000 +B1317074526324N00555620EA0182901864000 +B1317144526355N00555561EA0181701849000 +B1317214526384N00555500EA0181001835000 +B1317284526413N00555443EA0179901824000 +B1317354526450N00555387EA0179201813000 +B1317424526489N00555331EA0178701801000 +B1317494526515N00555285EA0179201791000 +B1317564526535N00555254EA0180201783000 +B1318034526555N00555228EA0180801780000 +B1318104526583N00555210EA0182001781000 +B1318174526617N00555207EA0183201785000 +B1318244526647N00555223EA0184001791000 +B1318314526619N00555245EA0184801795000 +B1318384526640N00555213EA0185701802000 +B1318454526677N00555213EA0186101809000 +B1318534526716N00555195EA0186801815000 +B1319004526742N00555171EA0187401821000 +B1319074526769N00555152EA0188801828000 +B1319144526797N00555135EA0190001836000 +B1319214526822N00555120EA0191401846000 +B1319284526848N00555107EA0193801857000 +B1319354526839N00555086EA0195101867000 +B1319424526847N00555126EA0197201875000 +B1319494526853N00555100EA0198501885000 +B1319564526848N00555139EA0199701892000 +B1320034526871N00555132EA0201301906000 +B1320104526849N00555140EA0202301922000 +B1320174526877N00555154EA0204401937000 +B1320244526855N00555142EA0205601955000 +B1320314526871N00555176EA0207401972000 +B1320384526877N00555159EA0208801990000 +B1320454526869N00555199EA0210302006000 +B1320524526878N00555177EA0212002022000 +B1320594526844N00555153EA0213902039000 +B1321064526847N00555192EA0216102057000 +B1321134526834N00555172EA0217702074000 +B1321204526847N00555209EA0220002091000 +B1321274526837N00555185EA0221502110000 +B1321344526818N00555237EA0223702128000 +B1321414526824N00555227EA0225102141000 +B1321484526802N00555268EA0227202156000 +B1321554526820N00555255EA0229202176000 +B1322024526792N00555273EA0230402196000 +B1322094526820N00555307EA0232602215000 +B1322164526803N00555276EA0234402230000 +B1322234526776N00555311EA0236002243000 +B1322304526800N00555312EA0237502262000 +B1322374526775N00555298EA0238402280000 +B1322444526781N00555354EA0240802297000 +B1322514526788N00555330EA0241602314000 +B1322584526762N00555366EA0243902332000 +B1323054526782N00555408EA0245402350000 +B1323124526814N00555387EA0246902367000 +B1323194526848N00555388EA0247902384000 +B1323264526886N00555384EA0250002402000 +B1323334526921N00555381EA0250502418000 +B1323404526958N00555377EA0251002432000 +B1323474526997N00555371EA0251502444000 +B1323544527036N00555375EA0251602455000 +B1324014527077N00555372EA0250902463000 +B1324084527120N00555368EA0249502466000 +B1324154527173N00555374EA0249102467000 +B1324234527226N00555379EA0248302464000 +B1324304527271N00555376EA0248502462000 +B1324374527315N00555381EA0248402460000 +B1324444527359N00555387EA0248702458000 +B1324514527399N00555387EA0249402458000 +B1324584527440N00555390EA0250102460000 +B1325054527483N00555385EA0249702462000 +B1325124527530N00555382EA0249602463000 +B1325194527579N00555375EA0249402464000 +B1325264527627N00555377EA0249302465000 +B1325334527674N00555397EA0249002465000 +B1325404527722N00555409EA0248502465000 +B1325474527773N00555413EA0247602463000 +B1325544527824N00555423EA0246802460000 +B1326014527875N00555435EA0245402455000 +B1326084527927N00555455EA0244502448000 +B1326154527976N00555480EA0243402440000 +B1326224528019N00555517EA0242602433000 +B1326294528062N00555554EA0241102427000 +B1326364528112N00555595EA0240102419000 +B1326434528159N00555643EA0238902410000 +B1326504528206N00555692EA0237502407000 +B1326574528254N00555744EA0236602395000 +B1327044528303N00555798EA0235602381000 +B1327114528354N00555854EA0234402372000 +B1327184528410N00555910EA0233102363000 +B1327254528463N00555960EA0231602350000 +B1327324528508N00556013EA0230502335000 +B1327394528552N00556052EA0229102322000 +B1327464528602N00556095EA0227902307000 +B1327534528652N00556140EA0227202293000 +B1328004528700N00556185EA0226502279000 +B1328074528748N00556229EA0225702267000 +B1328144528794N00556273EA0225002257000 +B1328214528837N00556327EA0224202246000 +B1328284528880N00556382EA0223602237000 +B1328354528925N00556432EA0222602229000 +B1328424528973N00556485EA0221702225000 +B1328494529015N00556531EA0221102218000 +B1328564529058N00556576EA0220402210000 +B1329034529099N00556624EA0219202201000 +B1329104529137N00556675EA0218202192000 +B1329174529171N00556732EA0216902182000 +B1329244529205N00556791EA0215602171000 +B1329314529239N00556844EA0214202160000 +B1329384529273N00556898EA0212902148000 +B1329454529307N00556951EA0211902136000 +B1329524529344N00556991EA0210702124000 +B1329594529384N00557030EA0209602114000 +B1330064529423N00557076EA0208802104000 +B1330134529463N00557126EA0207602093000 +B1330204529504N00557175EA0207002081000 +B1330284529550N00557226EA0206302070000 +B1330354529588N00557276EA0205602060000 +B1330424529626N00557327EA0204902052000 +B1330494529664N00557378EA0204102045000 +B1330564529701N00557425EA0203702036000 +B1331034529735N00557473EA0203002028000 +B1331104529771N00557521EA0202302020000 +B1331174529807N00557570EA0201502012000 +B1331244529839N00557622EA0200502003000 +B1331314529869N00557676EA0199601995000 +B1331384529899N00557726EA0198701986000 +B1331454529932N00557774EA0197801977000 +B1331524529966N00557822EA0196801968000 +B1331594530000N00557872EA0195901958000 +B1332064530032N00557924EA0195101948000 +B1332134530063N00557979EA0194101939000 +B1332204530095N00558033EA0193301930000 +B1332274530124N00558084EA0192601922000 +B1332344530156N00558129EA0191901915000 +B1332414530191N00558168EA0191001907000 +B1332484530226N00558213EA0190101900000 +B1332554530262N00558257EA0189601895000 +B1333024530296N00558302EA0189101887000 +B1333094530329N00558348EA0188501882000 +B1333164530361N00558393EA0187601875000 +B1333234530393N00558439EA0186801867000 +B1333304530425N00558486EA0185901859000 +B1333374530459N00558529EA0184901851000 +B1333444530493N00558571EA0183801843000 +B1333514530529N00558614EA0183001837000 +B1333584530565N00558657EA0182101828000 +B1334054530602N00558702EA0181201819000 +B1334124530637N00558744EA0180401809000 +B1334194530672N00558787EA0179701800000 +B1334264530705N00558832EA0179001790000 +B1334334530739N00558875EA0178101783000 +B1334404530773N00558918EA0177501776000 +B1334474530806N00558959EA0176701769000 +B1334544530839N00559000EA0175901763000 +B1335014530871N00559039EA0175101758000 +B1335084530902N00559082EA0174201750000 +B1335154530933N00559123EA0173101742000 +B1335224530963N00559169EA0172501733000 +B1335294530992N00559215EA0171901727000 +B1335364531017N00559261EA0171201724000 +B1335434531042N00559316EA0170501715000 +B1335504531066N00559371EA0170001706000 +B1335574531092N00559426EA0169201696000 +B1336044531118N00559478EA0168501688000 +B1336124531145N00559533EA0167801684000 +B1336194531174N00559583EA0167001677000 +B1336264531205N00559628EA0166001671000 +B1336334531239N00559671EA0164901666000 +B1336404531271N00559716EA0163601659000 +B1336474531304N00559762EA0162401655000 +B1336544531337N00559805EA0161101646000 +B1337014531369N00559844EA0160101633000 +B1337084531403N00559885EA0159001631000 +B1337154531435N00559920EA0157801616000 +B1337224531465N00559964EA0156601611000 +B1337294531492N00600011EA0155501600000 +B1337364531519N00600058EA0154601586000 +B1337434531547N00600106EA0153801570000 +B1337504531573N00600156EA0153201558000 +B1337574531600N00600207EA0152101549000 +B1338044531629N00600266EA0151201539000 +B1338114531656N00600324EA0150401526000 +B1338184531682N00600379EA0149601513000 +B1338254531702N00600432EA0148401500000 +B1338324531722N00600489EA0147101487000 +B1338394531744N00600547EA0145801473000 +B1338464531760N00600595EA0144301460000 +B1338534531779N00600645EA0143001447000 +B1339004531808N00600697EA0141901433000 +B1339074531833N00600746EA0140501419000 +B1339144531855N00600786EA0138801406000 +B1339214531871N00600837EA0138101393000 +B1339284531887N00600886EA0136301381000 +B1339354531912N00600927EA0134901368000 +B1339424531939N00600971EA0133401354000 +B1339494531961N00601019EA0132201340000 +B1339564531983N00601065EA0130601327000 +B1340034532006N00601116EA0129001313000 +B1340104532026N00601173EA0127901299000 +B1340174532040N00601239EA0128201287000 +B1340244532057N00601301EA0128701277000 +B1340314532067N00601374EA0129701271000 +B1340384532043N00601456EA0130701269000 +B1340454532007N00601499EA0130701268000 +B1340524531974N00601529EA0131201267000 +B1340594531965N00601506EA0130601268000 +B1341064531997N00601497EA0132301268000 +B1341134532014N00601488EA0132901270000 +B1341204531990N00601507EA0132801273000 +B1341274531987N00601528EA0134701273000 +B1341344531987N00601522EA0135501276000 +B1341414531997N00601577EA0135601283000 +B1341484532022N00601576EA0137701287000 +B1341554532041N00601569EA0139401291000 +B1342024532051N00601568EA0141001299000 +B1342104532064N00601571EA0142201310000 +B1342174532075N00601559EA0143401321000 +B1342244532093N00601555EA0143901337000 +B1342314532112N00601555EA0144601352000 +B1342384532133N00601555EA0143901364000 +B1342454532161N00601559EA0143501375000 +B1342524532189N00601556EA0143101379000 +B1342594532218N00601551EA0142701381000 +B1343064532248N00601547EA0142801383000 +B1343134532281N00601551EA0142201383000 +B1343204532315N00601556EA0142001383000 +B1343274532344N00601558EA0141601382000 +B1343344532377N00601562EA0141901380000 +B1343414532411N00601566EA0142401379000 +B1343484532443N00601584EA0143301380000 +B1343554532431N00601639EA0144301384000 +B1344024532422N00601618EA0145401390000 +B1344094532447N00601646EA0146301396000 +B1344164532425N00601698EA0146901404000 +B1344234532414N00601679EA0148501410000 +B1344304532445N00601710EA0148901422000 +B1344374532421N00601768EA0150401432000 +B1344444532404N00601755EA0151401439000 +B1344514532412N00601735EA0152401448000 +B1344584532443N00601765EA0152901459000 +B1345054532418N00601801EA0153201467000 +B1345124532441N00601805EA0154301474000 +B1345194532478N00601843EA0153301481000 +B1345264532519N00601887EA0153801486000 +B1345334532557N00601921EA0152201488000 +B1345404532590N00601969EA0152501489000 +B1345474532613N00602015EA0150901488000 +B1345544532639N00602061EA0149801484000 +B1346014532667N00602115EA0148501478000 +B1346084532697N00602166EA0146801469000 +B1346154532722N00602213EA0144601457000 +B1346224532749N00602274EA0142401443000 +B1346294532774N00602344EA0140101429000 +B1346364532799N00602417EA0138401413000 +B1346434532825N00602489EA0136801396000 +B1346504532842N00602556EA0137201382000 +B1346574532860N00602608EA0137001370000 +B1347044532872N00602659EA0136201359000 +B1347114532881N00602716EA0135201348000 +B1347184532885N00602780EA0134401338000 +B1347254532885N00602845EA0134101330000 +B1347324532890N00602906EA0133701323000 +B1347394532903N00602965EA0133401317000 +B1347474532930N00603017EA0133101310000 +B1347544532955N00603053EA0133301304000 +B1348014532978N00603085EA0132401300000 +B1348084533008N00603116EA0131801294000 +B1348154533034N00603133EA0133401290000 +B1348224533055N00603133EA0133401289000 +B1348294533084N00603124EA0132201287000 +B1348364533112N00603119EA0133801287000 +B1348434533133N00603110EA0134101288000 +B1348504533157N00603102EA0135201291000 +B1348574533176N00603101EA0136101295000 +B1349044533192N00603092EA0136801300000 +B1349114533212N00603087EA0137301307000 +B1349184533227N00603074EA0137201311000 +B1349254533201N00603089EA0137101314000 +B1349324533170N00603137EA0137601316000 +B1349394533143N00603131EA0137901320000 +B1349464533167N00603130EA0138201327000 +B1349534533191N00603125EA0138501333000 +B1350004533214N00603110EA0138101336000 +B1350074533242N00603098EA0138601338000 +B1350144533273N00603109EA0139701340000 +B1350214533290N00603092EA0140401342000 +B1350284533269N00603101EA0141301342000 +B1350354533280N00603123EA0141601346000 +B1350424533250N00603111EA0142301350000 +B1350494533263N00603144EA0142801354000 +B1350564533266N00603116EA0143201360000 +B1351034533239N00603134EA0143401365000 +B1351104533259N00603174EA0143801371000 +B1351174533269N00603152EA0144101376000 +B1351244533243N00603143EA0143801380000 +B1351314533243N00603197EA0144001382000 +B1351384533264N00603239EA0144001383000 +B1351454533287N00603284EA0145301385000 +B1351524533272N00603325EA0145901389000 +B1351594533265N00603313EA0146601392000 +B1352064533269N00603352EA0147301398000 +B1352134533244N00603332EA0148501405000 +B1352204533263N00603346EA0149801413000 +B1352274533247N00603391EA0150401423000 +B1352344533231N00603349EA0152201433000 +B1352414533237N00603326EA0152401443000 +B1352484533254N00603376EA0152101451000 +B1352554533283N00603428EA0153201458000 +B1353024533302N00603480EA0153401466000 +B1353094533320N00603534EA0153601472000 +B1353164533339N00603588EA0154301477000 +B1353234533359N00603645EA0155001483000 +B1353314533384N00603696EV0154701486000 +B1353384533405N00603735EV0155501486000 +B1353454533437N00603789EA0155101486000 +B1353524533481N00603813EA0155201489000 +B1353594533511N00603831EV0155701489000 +B1354064533554N00603846EA0155001490000 +B1354134533597N00603857EA0154401493000 +B1354204533644N00603862EA0154001495000 +B1354274533689N00603862EA0153501496000 +B1354344533735N00603860EA0153501496000 +B1354414533777N00603855EA0153801496000 +B1354484533819N00603848EA0155101497000 +B1354554533857N00603846EA0156301500000 +B1355024533892N00603837EA0157801505000 +B1355094533916N00603824EA0158801512000 +B1355164533897N00603822EA0161201515000 +B1355234533878N00603849EA0163301516000 +B1355304533869N00603843EA0165801521000 +B1355374533892N00603894EA0168001530000 +B1355444533866N00603912EA0170201551000 +B1355514533873N00603888EA0171901554000 +B1355584533887N00603939EA0173601557000 +B1356054533861N00603951EA0175401570000 +B1356124533895N00603963EA0175901579000 +B1356194533893N00603998EA0177101591000 +B1356264533877N00603974EA0177901613000 +B1356334533893N00603947EA0176601620000 +B1356404533926N00603941EA0175701641000 +B1356474533965N00603958EA0177201659000 +B1356544534006N00603966EA0178801666000 +B1357014534026N00603979EV0179301666000 +B1357084534048N00603978EA0180401679000 +B1357154534072N00603994EA0181301695000 +B1357224534108N00604019EA0181801712000 +B1357294534137N00604045EA0182401728000 +B1357364534162N00604063EA0183501738000 +B1357434534176N00604063EV0182801738000 +B1357504534228N00604082EA0181701747000 +B1357574534265N00604104EA0181401755000 +B1358044534301N00604125EA0180301760000 +B1358114534344N00604150EA0179601760000 +B1358184534385N00604170EA0178401759000 +B1358254534428N00604186EA0177001754000 +B1358324534472N00604207EA0175901752000 +B1358394534515N00604220EA0175701750000 +B1358464534559N00604238EA0175601744000 +B1358534534600N00604260EA0174301741000 +B1359004534637N00604291EA0173101737000 +B1359074534680N00604318EA0171901730000 +B1359144534724N00604349EA0170701719000 +B1359214534770N00604376EA0170101707000 +B1359284534815N00604397EA0168801695000 +B1359364534866N00604418EA0167901681000 +B1359434534909N00604437EA0167301669000 +B1359504534954N00604459EA0167401660000 +B1359574534998N00604477EA0167501653000 +B1400044535042N00604488EA0167201648000 +B1400114535082N00604501EA0166801643000 +B1400184535123N00604509EA0166401639000 +B1400254535160N00604506EA0166801635000 +B1400324535205N00604524EA0168101634000 +B1400394535246N00604555EA0170601637000 +B1400464535264N00604551EA0171701645000 +B1400534535241N00604548EA0173101651000 +B1401004535259N00604536EA0173001659000 +B1401074535292N00604564EA0174001666000 +B1401144535330N00604584EA0174901673000 +B1401214535364N00604596EA0175801682000 +B1401284535404N00604605EA0176301690000 +B1401354535445N00604620EA0176501697000 +B1401424535487N00604656EA0177101703000 +B1401494535481N00604711EA0177401710000 +B1401564535475N00604684EA0177401714000 +B1402034535506N00604658EA0178001720000 +B1402104535537N00604636EA0180001727000 +B1402174535559N00604665EA0181501736000 +B1402244535534N00604683EA0183201746000 +B1402314535540N00604654EA0185201757000 +B1402384535557N00604692EA0187201770000 +B1402454535547N00604684EA0189301784000 +B1402524535585N00604705EA0191801799000 +B1402594535565N00604742EA0194301818000 +B1403064535583N00604714EA0197001836000 +B1403134535607N00604749EA0198601855000 +B1403204535578N00604766EA0201401877000 +B1403274535594N00604733EA0203701893000 +B1403344535608N00604779EA0206601917000 +B1403414535591N00604770EA0209401943000 +B1403484535624N00604784EA0212501968000 +B1403554535595N00604827EA0214601995000 +B1404024535578N00604794EA0217302021000 +B1404094535610N00604800EA0220202047000 +B1404164535591N00604845EA0223202073000 +B1404234535595N00604806EA0225802101000 +B1404304535627N00604833EA0226702126000 +B1404374535614N00604894EA0229002152000 +B1404444535588N00604891EA0231502177000 +B1404514535618N00604884EA0233102200000 +B1404584535593N00604911EA0235502222000 +B1405054535583N00604872EA0237902245000 +B1405124535612N00604877EA0238702262000 +B1405194535596N00604932EA0240602282000 +B1405264535564N00604911EA0242302302000 +B1405344535552N00604852EA0243402325000 +B1405414535586N00604818EA0244102344000 +B1405484535624N00604804EA0246002362000 +B1405554535662N00604796EA0246002379000 +B1406024535704N00604815EA0244402389000 +B1406094535744N00604829EA0243602395000 +B1406164535787N00604850EA0241602394000 +B1406234535831N00604865EA0241302391000 +B1406304535869N00604886EA0241002388000 +B1406374535907N00604910EA0239602384000 +B1406444535943N00604938EA0238002378000 +B1406514535984N00604969EA0236102369000 +B1406584536027N00604995EA0233602357000 +B1407054536076N00605025EA0230702343000 +B1407124536127N00605060EA0228402326000 +B1407194536180N00605099EA0227202308000 +B1407264536217N00605127EA0227902294000 +B1407334536259N00605155EA0227902283000 +B1407404536311N00605183EA0227902274000 +B1407474536359N00605207EA0228502268000 +B1407544536400N00605231EA0229202264000 +B1408014536439N00605258EA0230302262000 +B1408084536471N00605280EA0231802264000 +B1408154536508N00605311EA0232402269000 +B1408224536552N00605338EA0232002274000 +B1408294536607N00605365EA0230602277000 +B1408364536661N00605395EA0228702277000 +B1408434536711N00605422EA0227502273000 +B1408504536766N00605452EA0225802265000 +B1408574536816N00605495EA0224102255000 +B1409044536861N00605540EA0223402244000 +B1409114536905N00605583EA0221702233000 +B1409184536959N00605634EA0220202219000 +B1409254537018N00605675EA0219102205000 +B1409324537067N00605708EA0217802193000 +B1409394537125N00605752EA0217202182000 +B1409464537177N00605801EA0216102170000 +B1409534537224N00605844EA0216102160000 +B1410004537262N00605874EA0215702152000 +B1410074537300N00605899EA0215602146000 +B1410144537339N00605920EA0215902141000 +B1410214537374N00605935EA0217202138000 +B1410284537402N00605946EA0217902138000 +B1410354537436N00605967EA0218902140000 +B1410424537475N00605979EA0218402142000 +B1410494537514N00605983EA0218202145000 +B1410564537551N00606010EA0217802146000 +B1411034537581N00606040EA0218102145000 +B1411104537610N00606064EA0218602146000 +B1411174537636N00606090EA0219302148000 +B1411254537666N00606118EA0219402152000 +B1411324537699N00606150EA0219302154000 +B1411394537735N00606176EA0219002154000 +B1411464537768N00606194EA0218402154000 +B1411534537807N00606215EA0217702152000 +B1412004537844N00606244EA0216602148000 +B1412074537879N00606278EA0215902142000 +B1412144537915N00606284EA0216602138000 +B1412214537947N00606269EA0216502136000 +B1412284537988N00606261EA0215402132000 +B1412354538029N00606263EA0213802127000 +B1412424538069N00606272EA0212502120000 +B1412494538107N00606282EA0211102112000 +B1412564538149N00606297EA0209602102000 +B1413034538192N00606306EA0208202092000 +B1413104538237N00606321EA0206702080000 +B1413174538279N00606338EA0205702072000 +B1413244538322N00606356EA0204802062000 +B1413314538363N00606384EA0204202052000 +B1413384538406N00606406EA0203102042000 +B1413454538446N00606431EA0202502032000 +B1413524538485N00606450EA0201302022000 +B1413594538526N00606465EA0200202011000 +B1414064538563N00606489EA0198902000000 +B1414134538601N00606517EA0197501988000 +B1414204538638N00606543EA0196301975000 +B1414274538673N00606571EA0194701962000 +B1414344538712N00606596EA0193401949000 +B1414414538748N00606621EA0192401936000 +B1414484538778N00606657EA0191601924000 +B1414554538808N00606687EA0192101913000 +B1415024538834N00606720EA0192301906000 +B1415094538857N00606755EA0191601901000 +B1415164538894N00606754EA0191401897000 +B1415234538929N00606758EA0191301893000 +B1415304538963N00606764EA0190701889000 +B1415374538999N00606779EA0190201886000 +B1415444539040N00606787EA0189701882000 +B1415514539080N00606791EA0188901877000 +B1415584539114N00606795EV0188101872000 +B1416054539150N00606796EV0187001866000 +B1416124539186N00606785EA0185801855000 +B1416194539219N00606784EA0184501845000 +B1416264539249N00606777EA0183201836000 +B1416334539280N00606762EA0181501825000 +B1416404539314N00606750EA0180101814000 +B1416474539344N00606744EA0178801802000 +B1416544539375N00606758EA0177701790000 +B1417014539408N00606781EA0177101778000 +B1417084539438N00606809EA0177101768000 +B1417154539467N00606829EA0176301759000 +B1417234539503N00606826EA0176001750000 +B1417304539529N00606845EA0174901743000 +B1417374539547N00606893EA0174701736000 +B1417444539561N00606939EA0174901730000 +B1417514539574N00606991EA0173801724000 +B1417584539587N00607049EA0173701718000 +B1418054539601N00607096EA0173401712000 +B1418124539624N00607138EA0173401708000 +B1418194539642N00607188EA0173001705000 +B1418264539664N00607237EA0172901704000 +B1418334539685N00607285EA0173101702000 +B1418404539706N00607332EA0173201701000 +B1418474539734N00607374EA0173601700000 +B1418544539763N00607419EA0173201700000 +B1419014539791N00607462EA0171201699000 +B1419084539828N00607530EA0169001692000 +B1419154539868N00607599EA0167101681000 +B1419224539904N00607668EA0165601669000 +B1419294539942N00607732EA0164101656000 +B1419364539980N00607792EA0162601643000 +B1419434540018N00607849EA0160801629000 +B1419504540053N00607903EA0159401613000 +B1419574540084N00607964EA0157801598000 +B1420044540118N00608026EA0156001582000 +B1420114540152N00608096EA0155201567000 +B1420184540185N00608154EA0153801553000 +B1420254540219N00608214EA0152701539000 +B1420324540255N00608279EA0152401526000 +B1420394540290N00608338EA0151701515000 +B1420464540321N00608396EA0152801507000 +B1420534540338N00608442EA0153601503000 +B1421004540306N00608489EA0153501501000 +B1421074540316N00608468EA0154201500000 +B1421144540341N00608499EA0154601500000 +B1421214540361N00608522EA0155001502000 +B1421284540387N00608551EA0155201503000 +B1421354540414N00608584EA0155801506000 +B1421424540442N00608613EA0155001508000 +B1421494540469N00608653EA0153901508000 +B1421564540494N00608694EA0152901505000 +B1422034540521N00608729EA0152101500000 +B1422104540550N00608770EA0150301494000 +B1422174540583N00608817EA0148401484000 +B1422244540613N00608861EA0147001475000 +B1422314540644N00608910EA0146101464000 +B1422384540673N00608959EA0145301453000 +B1422454540702N00609006EA0144501441000 +B1422524540726N00609046EA0144501431000 +B1422594540751N00609072EA0143401422000 +B1423064540783N00609106EA0142901413000 +B1423134540812N00609137EA0141801405000 +B1423214540845N00609170EA0141501397000 +B1423284540877N00609196EA0141601391000 +B1423354540905N00609214EA0141201386000 +B1423424540934N00609232EA0142901383000 +B1423494540957N00609241EA0143901382000 +B1423564540975N00609265EA0145501385000 +B1424034540997N00609276EA0144901389000 +B1424104541027N00609285EA0143801391000 +B1424174541057N00609291EA0143301391000 +B1424244541087N00609303EA0142601390000 +B1424314541110N00609309EA0143801390000 +B1424384541132N00609320EA0143801391000 +B1424454541154N00609322EA0143201392000 +B1424524541179N00609327EA0143001392000 +B1424594541210N00609334EA0142901389000 +B1425064541232N00609337EA0144501389000 +B1425134541249N00609353EA0145101391000 +B1425204541274N00609363EA0145101394000 +B1425274541302N00609380EA0145201398000 +B1425344541332N00609399EA0146401402000 +B1425414541364N00609412EA0146701406000 +B1425484541395N00609413EA0147901411000 +B1425554541410N00609455EA0148801419000 +B1426024541380N00609511EA0149001423000 +B1426094541392N00609482EA0150501430000 +B1426164541402N00609465EA0151001435000 +B1426234541385N00609469EA0152301437000 +B1426304541404N00609473EA0151701442000 +B1426374541438N00609467EA0152001449000 +B1426444541472N00609466EA0152601456000 +B1426514541512N00609473EA0153201461000 +B1426584541548N00609478EA0154101468000 +B1427054541583N00609487EA0156101473000 +B1427124541588N00609533EA0157701483000 +B1427194541578N00609523EA0160001486000 +B1427264541599N00609564EA0162101491000 +B1427334541590N00609549EA0164701502000 +B1427404541623N00609549EA0167401523000 +B1427474541602N00609585EA0169901547000 +B1427544541591N00609560EA0173501567000 +B1428014541611N00609589EA0176101597000 +B1428084541583N00609597EA0179001622000 +B1428154541572N00609580EA0182401644000 +B1428224541572N00609625EA0185801666000 +B1428294541558N00609602EA0189101693000 +B1428364541573N00609628EA0191901725000 +B1428434541540N00609673EA0194801749000 +B1428504541518N00609640EA0198101779000 +B1428584541529N00609654EV0201001808000 +B1429054541496N00609675EA0204101835000 +B1429124541499N00609648EA0207201862000 +B1429194541505N00609684EA0210501896000 +B1429264541466N00609675EA0214001919000 +B1429334541468N00609653EA0216801936000 +B1429404541454N00609706EA0220301975000 +B1429474541414N00609688EA0223402018000 +B1429544541425N00609658EA0225802052000 +B1430014541431N00609696EA0229102095000 +B1430084541393N00609725EA0232502136000 +B1430154541368N00609689EA0234702169000 +B1430224541386N00609690EA0236502191000 +B1430294541395N00609723EA0239802219000 +B1430364541363N00609760EA0242802256000 +B1430434541340N00609725EA0244902289000 +B1430504541353N00609740EA0247802317000 +B1430574541321N00609768EA0250702352000 +B1431044541315N00609720EA0253402373000 +B1431114541333N00609694EA0256202404000 +B1431184541351N00609670EA0259502434000 +B1431254541372N00609662EA0262702462000 +B1431324541390N00609655EA0265902481000 +B1431394541409N00609638EA0268102516000 +B1431464541431N00609617EA0269702553000 +B1431534541459N00609606EA0271102582000 +B1432004541484N00609591EA0272302607000 +B1432074541513N00609570EA0272502628000 +B1432144541540N00609538EA0272002644000 +B1432214541564N00609500EA0270902655000 +B1432284541591N00609482EA0269602661000 +B1432354541628N00609476EA0268402662000 +B1432424541673N00609467EA0266202660000 +B1432494541725N00609457EA0264802653000 +B1432564541781N00609445EA0262802644000 +B1433034541833N00609430EA0261702633000 +B1433104541885N00609423EA0260602622000 +B1433174541930N00609420EA0260202612000 +B1433244541979N00609414EA0259502602000 +B1433314542030N00609409EA0259102593000 +B1433384542065N00609409EA0258002586000 +B1433454542115N00609409EA0256702577000 +B1433524542164N00609396EA0257302569000 +B1433594542205N00609388EA0257702563000 +B1434064542247N00609386EA0257202559000 +B1434134542287N00609390EA0257602556000 +B1434204542318N00609389EA0256302554000 +B1434274542361N00609389EA0255302550000 +B1434344542411N00609396EA0253702546000 +B1434414542465N00609406EA0252902543000 +B1434484542514N00609405EA0251002533000 +B1434564542576N00609400EA0250102520000 +B1435034542631N00609391EA0249502508000 +B1435104542678N00609384EA0248302497000 +B1435174542730N00609388EA0247102485000 +B1435244542774N00609387EA0246002473000 +B1435314542819N00609383EA0244402460000 +B1435384542863N00609390EA0242702446000 +B1435454542913N00609392EA0240802431000 +B1435524542966N00609402EA0239202416000 +B1435594543018N00609412EA0237702402000 +B1436064543066N00609421EA0236602389000 +B1436134543115N00609422EA0235202377000 +B1436204543157N00609424EA0234102365000 +B1436274543201N00609423EA0232002352000 +B1436344543248N00609424EA0230502338000 +B1436414543296N00609427EA0229302324000 +B1436484543340N00609435EA0227302309000 +B1436554543390N00609445EA0227402294000 +B1437024543440N00609451EA0227602282000 +B1437094543491N00609458EA0227002272000 +B1437164543534N00609464EA0226302264000 +B1437234543579N00609475EA0227502257000 +B1437304543616N00609488EA0226502254000 +B1437374543656N00609494EA0226802251000 +B1437444543696N00609500EA0225802247000 +B1437514543745N00609511EA0224802242000 +B1437584543796N00609523EA0223402235000 +B1438054543848N00609534EA0222202226000 +B1438124543903N00609547EA0220402216000 +B1438194543953N00609557EA0220002207000 +B1438264544001N00609565EA0219802198000 +B1438334544048N00609581EA0219802191000 +B1438404544086N00609589EA0221702188000 +B1438474544114N00609583EA0221802188000 +B1438544544146N00609579EA0222102189000 +B1439014544176N00609579EA0222002191000 +B1439084544210N00609580EA0221302192000 +B1439154544252N00609574EA0221902190000 +B1439224544282N00609572EA0221502189000 +B1439294544316N00609568EA0221702190000 +B1439364544353N00609565EA0221102190000 +B1439434544390N00609564EA0220602190000 +B1439504544428N00609570EA0219902187000 +B1439574544473N00609584EA0218502183000 +B1440044544528N00609597EA0217802176000 +B1440114544579N00609614EA0217502170000 +B1440184544633N00609628EA0217702164000 +B1440254544660N00609639EA0218602161000 +B1440324544692N00609650EA0218902161000 +B1440394544726N00609660EA0220102163000 +B1440464544756N00609662EA0221402167000 +B1440544544785N00609657EA0220702172000 +B1441014544820N00609643EA0219902174000 +B1441084544863N00609638EA0219002173000 +B1441154544893N00609638EA0221702174000 +B1441224544907N00609632EA0221702176000 +B1441294544929N00609628EA0223102181000 +B1441364544951N00609603EA0224702188000 +B1441434544925N00609560EA0224102196000 +B1441504544903N00609607EA0225102200000 +B1441574544903N00609656EA0227402207000 +B1442044544923N00609640EA0228002216000 +B1442114544880N00609654EA0230202223000 +B1442184544868N00609689EA0231902232000 +B1442254544865N00609655EA0233702245000 +B1442324544835N00609677EA0235602258000 +B1442394544847N00609676EA0237402263000 +B1442464544847N00609676EV0239202263000 +B1442534544865N00609614EA0240402279000 +B1443004544822N00609612EA0242102301000 +B1443074544808N00609648EV0243402316000 +B1443144544812N00609658EV0244702324000 +B1443214544773N00609640EA0246002339000 +B1443284544773N00609679EA0247702358000 +B1443354544778N00609668EV0248602364000 +B1443424544778N00609649EA0250402371000 +B1443494544789N00609660EA0251802388000 +B1443564544755N00609664EA0253002405000 +B1444034544767N00609691EA0253502426000 +B1444104544797N00609695EA0252302444000 +B1444174544836N00609688EA0250302454000 +B1444244544889N00609682EA0248402456000 +B1444314544932N00609680EA0247202455000 +B1444384544982N00609690EA0246202450000 +B1444454545028N00609702EA0247102446000 +B1444524545061N00609708EA0247502444000 +B1444594545101N00609719EA0247502444000 +B1445064545137N00609729EA0248502445000 +B1445134545176N00609733EA0248402449000 +B1445204545212N00609737EA0248402451000 +B1445274545243N00609734EA0247702452000 +B1445344545288N00609726EA0246402450000 +B1445414545332N00609719EA0245402446000 +B1445484545380N00609718EA0243902439000 +B1445554545421N00609711EA0242702432000 +B1446024545467N00609706EA0241402422000 +B1446094545507N00609706EA0240402412000 +B1446164545546N00609704EA0238202401000 +B1446234545596N00609702EA0237102388000 +B1446304545642N00609699EA0235702375000 +B1446374545692N00609707EA0235102363000 +B1446444545739N00609717EA0234602353000 +B1446524545790N00609724EA0235102342000 +B1446594545814N00609718EA0236602339000 +B1447064545824N00609743EA0237802340000 +B1447134545787N00609738EA0239102344000 +B1447204545799N00609729EA0240102348000 +B1447274545767N00609755EA0241302355000 +B1447344545775N00609721EA0242602362000 +B1447414545794N00609751EA0244202372000 +B1447484545761N00609772EA0245202382000 +B1447554545755N00609734EA0247002391000 +B1448024545777N00609766EA0248802403000 +B1448094545752N00609798EA0249802418000 +B1448164545751N00609756EA0251202431000 +B1448234545790N00609771EA0252502445000 +B1448304545831N00609792EA0253202460000 +B1448374545868N00609820EA0253402472000 +B1448444545904N00609855EA0252902481000 +B1448514545944N00609900EA0251002486000 +B1448584545997N00609953EA0250702484000 +B1449054546037N00609980EA0250502484000 +B1449124546078N00609999EA0249702482000 +B1449194546117N00610027EA0248502479000 +B1449264546168N00610060EA0247802473000 +B1449334546204N00610096EA0248402468000 +B1449404546240N00610139EA0249102466000 +B1449474546275N00610182EA0248302466000 +B1449544546321N00610229EA0246202461000 +B1450014546366N00610272EA0243302453000 +B1450084546415N00610325EA0242302440000 +B1450154546451N00610376EA0241502429000 +B1450224546486N00610440EA0240302418000 +B1450294546516N00610517EA0239602408000 +B1450364546545N00610594EA0238502397000 +B1450434546581N00610663EA0237702387000 +B1450504546617N00610725EA0236502379000 +B1450574546651N00610789EA0236002370000 +B1451044546679N00610843EA0234202361000 +B1451114546706N00610899EA0231902351000 +B1451184546728N00610954EA0231002339000 +B1451254546750N00611009EA0231002327000 +B1451324546770N00611054EA0231102317000 +B1451394546793N00611097EA0231502311000 +B1451464546821N00611137EA0231802306000 +B1451534546852N00611180EA0231102303000 +B1452004546889N00611230EA0230402299000 +B1452074546928N00611279EA0229002294000 +B1452144546973N00611323EA0227502288000 +B1452214547021N00611372EA0227902280000 +B1452284547057N00611405EA0226502272000 +B1452354547097N00611444EA0225302265000 +B1452424547140N00611487EA0223402257000 +B1452504547195N00611543EA0221302244000 +B1452574547243N00611600EA0219502231000 +B1453044547287N00611652EA0218302218000 +B1453114547330N00611694EA0216702203000 +B1453184547377N00611733EA0215602186000 +B1453254547416N00611773EA0215802172000 +B1453324547449N00611806EA0215002160000 +B1453394547476N00611848EA0214002150000 +B1453464547501N00611880EV0213402143000 +B1453534547531N00611923EA0212902143000 +B1454004547550N00611975EA0211802136000 +B1454074547575N00612022EA0211102128000 +B1454144547597N00612050EV0209702125000 +B1454214547631N00612094EA0208702114000 +B1454284547662N00612133EA0207702106000 +B1454354547694N00612174EA0206902094000 +B1454424547725N00612219EA0206302083000 +B1454494547754N00612266EA0206002072000 +B1454564547783N00612308EA0205502063000 +B1455034547809N00612350EA0204902055000 +B1455104547836N00612388EA0204102049000 +B1455174547865N00612415EA0203402046000 +B1455244547893N00612457EA0202502041000 +B1455314547916N00612513EA0200802033000 +B1455384547946N00612569EA0199402024000 +B1455454547976N00612617EA0198202021000 +B1455524548005N00612673EA0196802010000 +B1455594548028N00612723EA0195402010000 +B1456064548055N00612778EA0193602010000 +B1456134548087N00612834EA0192402001000 +B1456204548096N00612849EV0191402001000 +B1456274548141N00612931EA0190401995000 +B1456344548163N00612981EA0189501982000 +B1456414548180N00613042EA0188801967000 +B1456484548199N00613102EA0187401945000 +B1456554548226N00613174EA0186301922000 +B1457024548256N00613241EA0185401900000 +B1457094548284N00613308EA0184201880000 +B1457164548313N00613378EA0182901862000 +B1457234548343N00613451EA0181601845000 +B1457304548375N00613517EA0179901828000 +B1457374548406N00613584EA0178101811000 +B1457444548437N00613650EA0177001795000 +B1457514548464N00613716EA0174801778000 +B1457584548491N00613783EA0173501762000 +B1458054548514N00613845EA0172201747000 +B1458124548534N00613915EA0171001731000 +B1458194548560N00613977EA0169901717000 +B1458264548589N00614037EA0168801702000 +B1458334548616N00614097EA0167701689000 +B1458414548651N00614168EA0166301674000 +B1458484548681N00614232EA0165101661000 +B1458554548713N00614296EA0163301648000 +B1459024548746N00614362EA0162301634000 +B1459094548775N00614430EA0161101621000 +B1459164548801N00614499EA0160201609000 +B1459234548831N00614561EA0159201598000 +B1459304548863N00614623EA0158401587000 +B1459374548897N00614688EA0157301577000 +B1459444548928N00614757EA0155901565000 +B1459514548948N00614817EA0157401556000 +B1459584548963N00614877EA0159601552000 +B1500054548978N00614932EA0162601555000 +B1500124548974N00614923EA0165601564000 +B1500194548953N00614985EA0169101577000 +B1500264548941N00614973EA0172301595000 +B1500334548919N00615034EA0175701616000 +B1500404548931N00615039EA0178901635000 +B1500474548905N00615077EA0182701663000 +B1500544548915N00615069EA0186001686000 +B1501014548875N00615091EA0189701719000 +B1501084548886N00615089EA0192701745000 +B1501154548858N00615129EA0195901778000 +B1501224548849N00615098EA0199501808000 +B1501294548819N00615136EA0202001840000 +B1501364548814N00615097EA0204701869000 +B1501434548771N00615104EA0205801902000 +B1501504548772N00615142EA0208001926000 +B1501574548787N00615153EA0209901946000 +B1502044548804N00615154EA0212001969000 +B1502114548823N00615160EA0213601997000 +B1502184548838N00615168EA0213902018000 +B1502254548862N00615163EA0214602046000 +B1502324548893N00615153EA0214402065000 +B1502394548919N00615159EA0213202077000 +B1502464548951N00615169EA0213002084000 +B1502534548982N00615180EA0212002088000 +B1503004549019N00615197EA0210902088000 +B1503074549060N00615219EA0210102085000 +B1503144549095N00615239EA0209102082000 +B1503214549143N00615263EA0207902076000 +B1503284549191N00615287EA0207302070000 +B1503354549243N00615307EA0206702064000 +B1503424549292N00615319EA0205902057000 +B1503494549338N00615337EA0205102049000 +B1503564549380N00615353EA0204502042000 +B1504034549429N00615362EA0203702034000 +B1504104549472N00615372EA0202902026000 +B1504174549514N00615384EA0201402018000 +B1504244549558N00615398EA0200402010000 +B1504314549602N00615408EA0198902000000 +B1504384549648N00615418EA0197001989000 +B1504464549702N00615438EA0197201976000 +B1504534549746N00615453EA0197401967000 +B1505004549783N00615466EA0198101962000 +B1505074549819N00615475EA0199201960000 +B1505144549851N00615485EA0198701959000 +B1505214549890N00615492EA0197301956000 +B1505284549932N00615497EA0196501951000 +B1505354549974N00615498EA0196301947000 +B1505424550020N00615500EA0196501944000 +B1505494550069N00615497EA0196601941000 +B1505564550113N00615495EA0197501940000 +B1506034550151N00615492EA0197001941000 +B1506104550189N00615491EA0196801941000 +B1506174550230N00615483EA0196001940000 +B1506244550268N00615480EA0194401937000 +B1506314550304N00615476EA0194201933000 +B1506384550337N00615475EA0195001929000 +B1506454550359N00615478EA0195601928000 +B1506524550380N00615480EA0196901927000 +B1506594550404N00615475EA0197401929000 +B1507064550428N00615468EA0198601933000 +B1507134550450N00615465EA0199501939000 +B1507204550472N00615457EA0200601945000 +B1507274550491N00615447EA0201201950000 +B1507344550512N00615447EA0202301956000 +B1507414550532N00615443EA0203201963000 +B1507484550548N00615437EV0204501969000 +B1507554550564N00615427EA0204701973000 +B1508024550586N00615424EA0205401981000 +B1508094550605N00615412EA0206701988000 +B1508164550627N00615408EA0207801997000 +B1508234550649N00615401EA0208602006000 +B1508304550672N00615389EA0209202015000 +B1508374550697N00615384EA0209902025000 +B1508444550724N00615376EA0210302035000 +B1508514550744N00615361EA0211802044000 +B1508584550768N00615366EA0212002053000 +B1509054550802N00615378EA0212002062000 +B1509124550833N00615372EA0213202069000 +B1509194550863N00615364EA0214402078000 +B1509264550877N00615420EA0215102086000 +B1509334550847N00615443EA0215602094000 +B1509404550843N00615412EA0217002102000 +B1509474550834N00615380EA0218002112000 +B1509544550867N00615410EA0219202121000 +B1510014550844N00615465EA0220502131000 +B1510084550836N00615445EA0221402140000 +B1510154550868N00615475EA0222202151000 +B1510224550849N00615536EA0223102161000 +B1510294550812N00615538EA0224102172000 +B1510374550765N00615551EA0224802182000 +B1510444550725N00615557EA0225802191000 +B1510514550691N00615557EA0227002201000 +B1510584550673N00615536EA0229302213000 +B1511054550702N00615536EA0231602225000 +B1511124550687N00615591EA0233302240000 +B1511194550664N00615577EA0235402253000 +B1511264550696N00615586EA0237302269000 +B1511334550686N00615647EA0239002287000 +B1511404550660N00615637EA0240302302000 +B1511474550692N00615637EA0241902319000 +B1511544550697N00615705EA0242602335000 +B1512014550672N00615706EA0243102349000 +B1512084550677N00615680EA0243702357000 +B1512154550694N00615651EA0244302370000 +B1512224550718N00615619EA0246002383000 +B1512294550755N00615652EA0248502394000 +B1512364550729N00615666EA0250602407000 +B1512434550759N00615642EA0253802425000 +B1512504550792N00615680EA0257102447000 +B1512574550769N00615693EA0259602470000 +B1513044550793N00615660EA0262702495000 +B1513114550829N00615679EA0265702522000 +B1513184550819N00615728EA0268402549000 +B1513254550821N00615700EA0270902576000 +B1513324550859N00615704EA0272602603000 +B1513394550893N00615719EA0273402627000 +B1513464550932N00615736EA0273102646000 +B1513534550973N00615754EA0272502660000 +B1514004551006N00615798EA0270702669000 +B1514074551026N00615846EA0269202672000 +B1514144551047N00615904EA0268302671000 +B1514214551063N00615964EA0267802668000 +B1514284551080N00616027EA0267002665000 +B1514354551101N00616099EA0265302659000 +B1514424551130N00616173EA0264002651000 +B1514494551158N00616246EA0262402641000 +B1514564551184N00616332EA0260702628000 +B1515034551214N00616419EA0259302614000 +B1515104551245N00616500EA0258102601000 +B1515174551276N00616575EA0257502588000 +B1515244551300N00616635EA0256902577000 +B1515314551330N00616695EA0257102568000 +B1515384551359N00616763EA0256602561000 +B1515454551389N00616830EA0256202556000 +B1515524551420N00616888EA0254702549000 +B1515594551457N00616959EA0254002541000 +B1516064551496N00617023EA0253202533000 +B1516134551545N00617076EA0252602526000 +B1516214551604N00617139EA0252002517000 +B1516284551656N00617195EA0251602510000 +B1516354551705N00617247EA0250702503000 +B1516424551751N00617299EA0250502497000 +B1516494551790N00617349EA0249902492000 +B1516564551819N00617413EA0249702487000 +B1517034551841N00617478EA0249602484000 +B1517104551859N00617545EA0249302481000 +B1517174551880N00617626EA0248202476000 +B1517244551897N00617708EA0247502471000 +B1517314551915N00617787EA0247202466000 +B1517384551927N00617872EA0246302460000 +B1517454551941N00617946EA0245602453000 +B1517524551959N00618026EA0244402445000 +B1517594551981N00618112EA0243102436000 +B1518064552000N00618201EA0241602426000 +B1518134552022N00618285EA0240302415000 +B1518204552041N00618370EA0239302404000 +B1518274552062N00618448EA0238402393000 +B1518344552084N00618520EA0237302383000 +B1518414552113N00618576EA0235702372000 +B1518484552136N00618636EA0235002361000 +B1518554552147N00618705EA0234602350000 +B1519024552160N00618772EA0233802341000 +B1519094552176N00618840EA0232702332000 +B1519164552193N00618913EA0230802322000 +B1519234552214N00619002EA0230002311000 +B1519304552234N00619086EA0228602299000 +B1519374552251N00619168EA0226902288000 +B1519444552271N00619254EA0225802274000 +B1519514552289N00619334EA0224402261000 +B1519584552309N00619417EA0223102247000 +B1520054552330N00619500EA0222302234000 +B1520124552348N00619584EA0221002221000 +B1520194552361N00619669EA0220102212000 +B1520264552375N00619756EA0219502200000 +B1520334552392N00619839EA0218602190000 +B1520404552411N00619919EA0217702180000 +B1520474552426N00620000EA0216602170000 +B1520544552441N00620085EA0215802159000 +B1521014552459N00620171EA0214802149000 +B1521084552481N00620253EA0213602139000 +B1521154552503N00620336EA0212702129000 +B1521224552525N00620418EA0211502118000 +B1521294552545N00620503EA0210302108000 +B1521364552570N00620583EA0208902096000 +B1521434552597N00620667EA0208002085000 +B1521504552620N00620749EA0207202078000 +B1521574552639N00620835EA0206102068000 +B1522054552663N00620929EA0205002059000 +B1522124552678N00621014EA0203802050000 +B1522194552685N00621106EA0202402040000 +B1522264552699N00621197EA0201202028000 +B1522334552715N00621285EA0199802017000 +B1522404552731N00621369EA0199002005000 +B1522474552748N00621451EA0197901993000 +B1522544552765N00621524EA0196901980000 +B1523014552782N00621594EA0195801967000 +B1523084552798N00621659EA0194601955000 +B1523154552814N00621722EA0193701943000 +B1523224552833N00621788EA0192601932000 +B1523294552853N00621859EA0191901921000 +B1523364552871N00621933EA0191001911000 +B1523434552891N00622004EA0190501902000 +B1523504552910N00622068EA0189801893000 +B1523574552930N00622126EA0189701886000 +B1524044552949N00622188EA0188801879000 +B1524114552966N00622252EA0187901872000 +B1524184552983N00622314EA0187001864000 +B1524254553005N00622377EA0186201856000 +B1524324553025N00622445EA0186301848000 +B1524394553035N00622508EA0186301842000 +B1524464553041N00622580EA0188101839000 +B1524534553028N00622634EA0189601841000 +B1525004552988N00622602EA0191501842000 +B1525074552985N00622589EV0193401843000 +B1525144552988N00622610EA0194501843000 +B1525214552977N00622603EA0196701846000 +B1525284553002N00622595EA0198401848000 +B1525354553014N00622642EA0199601856000 +B1525424552975N00622615EA0202301861000 +B1525494552999N00622621EA0201401875000 +B1525564552995N00622686EA0203601896000 +B1526034552947N00622702EA0206001910000 +B1526104552948N00622663EA0207801924000 +B1526174552953N00622689EA0209001943000 +B1526244552919N00622680EA0210401968000 +B1526314552932N00622645EA0211001993000 +B1526384552947N00622683EA0211402013000 +B1526454552945N00622746EA0212202031000 +B1526524552955N00622789EA0214902046000 +B1526594552932N00622820EA0217102062000 +B1527064552912N00622810EV0218702063000 +B1527134552934N00622816EV0220602066000 +B1527204552939N00622839EV0222302066000 +B1527274552942N00622837EA0223602067000 +B1527344552950N00622855EA0224502078000 +B1527414552919N00622860EA0225802083000 +B1527494552939N00622819EA0226402089000 +B1527564552946N00622834EA0228002090000 +B1528034552907N00622845EA0227902096000 +B1528104552914N00622805EA0227602098000 +B1528174552907N00622879EA0228502116000 +B1528244552894N00622947EA0231502144000 +B1528314552862N00622970EV0233602144000 +B1528384552848N00622974EA0235502155000 +B1528454552842N00623042EA0239202186000 +B1528524552807N00623049EA0241702218000 +B1528594552824N00623030EA0245102255000 +B1529064552824N00623088EV0248502277000 +B1529134552784N00623096EA0250202315000 +B1529204552771N00623052EA0252002350000 +B1529274552793N00623050EA0254502384000 +B1529344552802N00623099EA0257402416000 +B1529414552814N00623135EA0259102448000 +B1529484552829N00623186EA0259902475000 +B1529554552840N00623242EA0261602500000 +B1530024552860N00623301EA0263302518000 +B1530094552870N00623358EA0265402539000 +B1530164552888N00623412EA0267902561000 +B1530234552907N00623472EA0269602582000 +B1530304552917N00623536EA0270902599000 +B1530374552920N00623596EA0270602617000 +B1530444552927N00623657EA0268902629000 +B1530514552942N00623731EA0267402635000 +B1530584552957N00623793EA0266602638000 +B1531054552977N00623866EA0265302637000 +B1531124553002N00623945EA0264202633000 +B1531194553029N00624019EA0262902627000 +B1531264553051N00624093EA0261902621000 +B1531334553078N00624171EA0260402612000 +B1531404553104N00624257EA0259202602000 +B1531474553129N00624340EA0258702594000 +B1531544553150N00624421EA0258102587000 +B1532014553174N00624494EA0256602578000 +B1532084553199N00624567EA0255502568000 +B1532154553221N00624640EA0254202558000 +B1532224553242N00624715EA0252802547000 +B1532294553263N00624791EA0251802535000 +B1532364553282N00624867EA0250702524000 +B1532434553300N00624946EA0249502512000 +B1532504553319N00625026EA0248302500000 +B1532574553338N00625104EA0247302488000 +B1533044553358N00625182EA0246202476000 +B1533114553375N00625262EA0245302465000 +B1533184553392N00625337EA0243902454000 +B1533254553412N00625412EA0242802442000 +B1533324553435N00625484EA0241402430000 +B1533404553457N00625568EA0240302418000 +B1533474553475N00625644EA0239402407000 +B1533544553484N00625720EA0238302396000 +B1534014553492N00625797EA0237302385000 +B1534084553502N00625873EA0236502375000 +B1534154553508N00625953EA0235502364000 +B1534224553511N00626033EA0234502354000 +B1534294553521N00626112EA0233302343000 +B1534364553528N00626191EA0232202333000 +B1534434553536N00626271EA0231002322000 +B1534504553547N00626350EA0230102312000 +B1534574553559N00626427EA0229302301000 +B1535044553567N00626503EA0228202291000 +B1535114553575N00626576EA0227102280000 +B1535184553584N00626649EA0225902269000 +B1535254553590N00626724EA0224802258000 +B1535324553597N00626799EA0223602248000 +B1535394553602N00626874EA0222702238000 +B1535464553602N00626951EA0221802228000 +B1535534553606N00627023EA0221002219000 +B1536004553612N00627099EA0220302209000 +B1536074553618N00627175EA0219302199000 +B1536144553622N00627248EA0218402189000 +B1536214553627N00627319EA0217802181000 +B1536284553633N00627391EA0217302174000 +B1536354553643N00627461EA0216602167000 +B1536424553656N00627532EA0216002162000 +B1536494553670N00627599EA0215402158000 +B1536564553680N00627666EA0214802154000 +B1537034553694N00627734EA0214302151000 +B1537104553709N00627802EA0213702146000 +B1537174553724N00627869EA0212902139000 +B1537244553741N00627938EA0212002133000 +B1537314553752N00628009EA0211302128000 +B1537384553766N00628081EA0210402121000 +B1537454553782N00628153EA0209402115000 +B1537524553795N00628231EA0208502106000 +B1537594553809N00628310EA0207702096000 +B1538064553826N00628391EA0207202087000 +B1538134553844N00628466EA0207102079000 +B1538204553855N00628530EA0207402074000 +B1538274553870N00628592EA0206902068000 +B1538344553889N00628653EA0206102062000 +B1538414553908N00628711EA0205102054000 +B1538484553927N00628766EA0204702047000 +B1538554553951N00628813EA0204302041000 +B1539024553980N00628862EA0204202037000 +B1539094554008N00628912EA0204002031000 +B1539164554038N00628960EA0203402025000 +B1539234554068N00629012EA0202602019000 +B1539304554101N00629062EA0202202013000 +B1539374554138N00629109EA0203202008000 +B1539454554174N00629145EA0202402006000 +B1539524554209N00629163EA0202302005000 +B1539594554241N00629177EV0202102005000 +B1540064554283N00629187EA0202602004000 +B1540134554317N00629193EA0203002004000 +B1540204554346N00629194EA0203802004000 +B1540274554374N00629198EA0204302006000 +B1540344554380N00629186EV0204302008000 +B1540414554363N00629170EA0204802009000 +B1540484554344N00629165EA0204702010000 +B1540554554368N00629178EA0205102011000 +B1541024554400N00629210EA0206002013000 +B1541094554431N00629236EA0207002016000 +B1541164554440N00629214EA0207502018000 +B1541234554422N00629255EA0207702021000 +B1541304554451N00629285EA0209302025000 +B1541374554463N00629269EA0209802032000 +B1541444554431N00629293EA0210502039000 +B1541514554404N00629284EA0211202046000 +B1541584554410N00629278EA0212302048000 +B1542054554434N00629297EA0212502049000 +B1542124554420N00629280EA0213502055000 +B1542194554391N00629316EA0213802059000 +B1542264554382N00629322EV0213602059000 +B1542334554373N00629360EA0214802062000 +B1542404554396N00629330EA0215002067000 +B1542474554396N00629368EV0215502076000 +B1542544554415N00629364EV0216402080000 +B1543014554428N00629323EA0214702082000 +B1543084554457N00629304EA0216502091000 +B1543154554460N00629311EA0217002095000 +B1543224554488N00629318EA0216802105000 +B1543294554455N00629310EA0218202112000 +B1543364554435N00629351EA0218102117000 +B1543434554455N00629346EA0219202124000 +B1543504554439N00629333EA0219602130000 +B1543574554443N00629382EA0220402137000 +B1544044554427N00629363EA0221702143000 +B1544114554441N00629332EA0221802148000 +B1544184554469N00629357EA0223202150000 +B1544254554447N00629391EA0224402150000 +B1544324554450N00629383EA0224802157000 +B1544394554459N00629424EA0225602165000 +B1544464554427N00629412EA0227002178000 +B1544534554450N00629407EA0227902192000 +B1545004554455N00629459EA0228702194000 +B1545074554419N00629450EA0229002205000 +B1545144554427N00629421EA0229602218000 +B1545214554422N00629477EA0230602228000 +B1545284554385N00629481EA0231402240000 +B1545354554396N00629453EA0231602250000 +B1545434554394N00629512EA0232102260000 +B1545504554361N00629513EA0233102269000 +B1545574554371N00629478EA0232702275000 +B1546044554393N00629489EV0232702278000 +B1546114554405N00629522EA0232402279000 +B1546184554390N00629486EA0232102281000 +B1546254554410N00629468EA0232302284000 +B1546324554437N00629463EA0234202288000 +B1546394554416N00629436EA0234802289000 +B1546464554426N00629443EA0236702293000 +B1546534554416N00629414EA0237702297000 +B1547004554384N00629439EA0238002304000 +B1547074554406N00629425EA0238402311000 +B1547144554434N00629451EV0239302311000 +B1547214554408N00629480EA0240002312000 +B1547284554390N00629453EA0240002314000 +B1547354554397N00629446EV0241302315000 +B1547424554441N00629428EA0241502318000 +B1547494554416N00629415EA0242302330000 +B1547564554433N00629444EA0243402343000 +B1548034554400N00629499EA0244002347000 +B1548104554395N00629478EA0244902354000 +B1548174554419N00629512EA0245902366000 +B1548244554383N00629549EA0246602381000 +B1548314554376N00629520EA0247602390000 +B1548384554404N00629538EA0248802397000 +B1548454554373N00629555EA0249502407000 +B1548524554351N00629511EA0249702420000 +B1548594554380N00629533EA0250802432000 +B1549064554357N00629563EA0251302442000 +B1549134554368N00629558EA0251902449000 +B1549204554357N00629605EA0252502457000 +B1549274554322N00629590EA0254302467000 +B1549344554346N00629602EA0255402477000 +B1549414554316N00629641EA0256202487000 +B1549484554291N00629611EA0258102499000 +B1549554554313N00629634EA0260002512000 +B1550024554281N00629652EA0261102527000 +B1550094554281N00629616EA0261802541000 +B1550164554304N00629646EA0264002555000 +B1550234554274N00629652EA0265202567000 +B1550304554304N00629647EA0267202581000 +B1550374554297N00629694EA0268302595000 +B1550444554272N00629667EA0268902610000 +B1550514554297N00629671EA0270602624000 +B1550584554289N00629724EA0271802639000 +B1551054554255N00629741EA0271902652000 +B1551124554228N00629710EA0272502659000 +B1551194554255N00629700EA0272902669000 +B1551264554251N00629754EA0273502678000 +B1551334554232N00629814EA0274602685000 +B1551414554214N00629876EA0275402694000 +B1551484554205N00629903EV0276202695000 +B1551554554179N00629995EA0277202697000 +B1552024554177N00630061EA0277402706000 +B1552094554175N00630120EA0276702715000 +B1552164554169N00630183EA0275802719000 +B1552234554165N00630210EV0274902721000 +B1552304554150N00630301EV0273702722000 +B1552374554141N00630368EA0272202722000 +B1552444554130N00630430EA0271102721000 +B1552514554117N00630492EA0270202718000 +B1552584554097N00630558EA0269602712000 +B1553054554074N00630616EA0269002704000 +B1553124554047N00630671EA0268302696000 +B1553194554018N00630727EA0267902689000 +B1553264553991N00630782EA0267102681000 +B1553334553964N00630837EA0266702673000 +B1553404553940N00630892EA0266702665000 +B1553474553923N00630951EA0266702660000 +B1553544553909N00631015EA0266802655000 +B1554014553889N00631066EA0267802653000 +B1554084553853N00631072EA0268302653000 +B1554154553864N00631023EA0269302655000 +B1554224553899N00631032EA0269602658000 +B1554294553897N00631087EA0270302662000 +B1554364553863N00631107EA0270302667000 +B1554434553852N00631055EA0270802670000 +B1554504553886N00631049EA0271502675000 +B1554574553887N00631107EA0272602679000 +B1555044553884N00631157EA0272302685000 +B1555114553877N00631223EA0272502688000 +B1555184553873N00631286EA0272402691000 +B1555254553872N00631349EA0272202694000 +B1555324553874N00631413EA0272502695000 +B1555394553872N00631474EA0273102698000 +B1555464553875N00631527EA0272602701000 +B1555534553874N00631584EA0272002702000 +B1556004553872N00631641EA0271402703000 +B1556074553866N00631699EA0270402703000 +B1556144553857N00631758EA0269002700000 +B1556214553850N00631819EA0267902697000 +B1556284553849N00631877EA0267202696000 +B1556354553840N00631940EA0266002689000 +B1556424553824N00632003EA0265202684000 +B1556494553812N00632063EA0264302682000 +B1556564553802N00632119EA0263302678000 +B1557034553790N00632183EA0263402670000 +B1557104553778N00632248EA0264002660000 +B1557174553774N00632304EA0264702654000 +B1557254553748N00632315EA0265302647000 +B1557324553761N00632274EA0265402643000 +B1557394553784N00632323EA0265002640000 +B1557464553773N00632387EA0265702638000 +B1557534553755N00632443EA0266702637000 +B1558004553737N00632483EA0267102639000 +B1558074553719N00632441EA0267202642000 +B1558144553749N00632402EA0268102645000 +B1558214553774N00632431EA0268602649000 +B1558284553747N00632435EA0268902654000 +B1558354553766N00632406EA0269002657000 +B1558424553776N00632458EA0269502660000 +B1558494553770N00632508EA0269702663000 +B1558564553765N00632563EA0268402665000 +B1559034553762N00632625EA0267602664000 +B1559104553759N00632686EA0266702660000 +B1559174553758N00632745EA0266202656000 +B1559244553755N00632806EA0264802650000 +B1559314553752N00632867EA0263402641000 +B1559384553750N00632931EA0262502632000 +B1559454553749N00632990EA0261102624000 +B1559524553759N00633052EA0260102615000 +B1559594553761N00633115EA0259802606000 +B1600064553759N00633180EA0259302598000 +B1600134553757N00633249EA0259202592000 +B1600204553750N00633315EA0258502585000 +B1600274553746N00633387EA0257902578000 +B1600344553749N00633452EA0258302572000 +B1600414553754N00633514EA0257702569000 +B1600484553744N00633581EA0257102565000 +B1600554553736N00633648EA0257002560000 +B1601024553735N00633707EA0256302557000 +B1601094553732N00633779EA0256202552000 +B1601164553734N00633850EA0255702549000 +B1601234553736N00633918EA0255402545000 +B1601304553728N00633982EA0254802540000 +B1601374553715N00634044EA0254602536000 +B1601444553701N00634105EA0254202533000 +B1601514553691N00634169EA0254102531000 +B1601584553685N00634235EA0253802529000 +B1602054553681N00634300EA0253202526000 +B1602124553676N00634364EA0252802523000 +B1602194553676N00634432EA0252202519000 +B1602264553680N00634501EA0251502514000 +B1602334553687N00634570EA0250802509000 +B1602404553693N00634641EA0250002502000 +B1602474553694N00634711EA0249502496000 +B1602544553682N00634779EA0248902490000 +B1603024553672N00634856EA0248102483000 +B1603094553668N00634923EA0247302478000 +B1603164553661N00634992EA0246602471000 +B1603234553652N00635061EA0246002465000 +B1603304553645N00635133EA0245302458000 +B1603374553644N00635207EA0244702452000 +B1603444553643N00635277EA0243902445000 +B1603514553642N00635350EA0242902438000 +B1603584553643N00635423EA0242102430000 +B1604054553647N00635495EA0241102421000 +B1604124553648N00635567EA0240302413000 +B1604194553646N00635640EA0239502404000 +B1604264553641N00635712EA0238702396000 +B1604334553637N00635784EA0237902387000 +B1604404553630N00635853EA0237202378000 +B1604474553620N00635923EA0236502370000 +B1604544553609N00635992EA0235702361000 +B1605014553602N00636063EA0235002353000 +B1605084553597N00636131EA0234402345000 +B1605154553593N00636197EA0233702338000 +B1605224553590N00636263EA0232902331000 +B1605294553585N00636329EA0232102323000 +B1605364553577N00636395EA0231402316000 +B1605434553568N00636461EA0230602308000 +B1605504553560N00636526EA0229902300000 +B1605574553551N00636591EA0229102293000 +B1606044553543N00636657EA0228402285000 +B1606114553537N00636724EA0227602279000 +B1606184553534N00636790EA0226802272000 +B1606254553526N00636856EA0226102265000 +B1606324553518N00636922EA0225602259000 +B1606394553511N00636990EA0225002253000 +B1606464553505N00637056EA0224302250000 +B1606534553499N00637122EA0223502242000 +B1607004553496N00637190EA0222802233000 +B1607074553495N00637257EA0222102225000 +B1607144553494N00637325EA0221402216000 +B1607214553492N00637392EA0220602207000 +B1607284553487N00637459EA0219802200000 +B1607354553484N00637528EA0218802192000 +B1607424553479N00637596EA0218002184000 +B1607494553472N00637664EA0217102174000 +B1607564553468N00637733EA0216102165000 +B1608034553463N00637801EA0215302156000 +B1608104553459N00637871EA0214302147000 +B1608174553459N00637941EA0213202137000 +B1608244553459N00638012EA0212202127000 +B1608314553455N00638082EA0211302117000 +B1608384553446N00638147EA0210202108000 +B1608454553444N00638216EA0209502100000 +B1608524553444N00638287EA0208602091000 +B1609004553447N00638367EA0207602080000 +B1609074553449N00638436EA0206802072000 +B1609144553451N00638507EA0206102064000 +B1609214553449N00638579EA0205402056000 +B1609284553446N00638649EA0204802050000 +B1609354553443N00638720EA0204202042000 +B1609424553440N00638790EA0203502034000 +B1609494553436N00638861EA0202602028000 +B1609564553434N00638931EA0201702022000 +B1610034553431N00639003EA0200702014000 +B1610104553427N00639070EA0199502005000 +B1610174553423N00639142EA0198401995000 +B1610244553417N00639212EA0197701984000 +B1610314553410N00639281EA0196901974000 +B1610384553406N00639355EA0196301965000 +B1610454553407N00639423EA0195001956000 +B1610524553408N00639488EA0193501946000 +B1610594553409N00639554EA0192501935000 +B1611064553403N00639621EA0191301925000 +B1611134553396N00639692EA0190201914000 +B1611204553385N00639766EA0190401904000 +B1611274553376N00639836EA0189801895000 +B1611344553362N00639907EA0189401888000 +B1611414553353N00639978EA0188901882000 +B1611484553348N00640049EA0188101876000 +B1611554553348N00640119EA0187701870000 +B1612024553349N00640191EA0187301864000 +B1612094553351N00640264EA0186801858000 +B1612164553351N00640339EA0186401852000 +B1612234553349N00640415EA0185701846000 +B1612304553344N00640492EA0185001840000 +B1612374553340N00640569EA0184501833000 +B1612444553338N00640647EA0184201827000 +B1612514553340N00640725EA0183801822000 +B1612584553339N00640800EA0184201818000 +B1613054553339N00640864EA0182901814000 +B1613124553337N00640939EA0182401810000 +B1613194553335N00641016EA0181701806000 +B1613264553335N00641093EA0181101801000 +B1613334553336N00641171EA0180301795000 +B1613404553339N00641248EA0179701789000 +B1613474553341N00641327EA0179101782000 +B1613544553341N00641408EA0178701776000 +B1614014553343N00641484EA0177901769000 +B1614084553352N00641558EA0177001763000 +B1614154553360N00641634EA0176101756000 +B1614224553373N00641706EA0175301749000 +B1614294553384N00641780EA0174301742000 +B1614364553390N00641857EA0173101732000 +B1614444553397N00641948EA0172201721000 +B1614514553400N00642027EA0171601712000 +B1614584553404N00642103EA0170901703000 +B1615054553411N00642181EA0170401695000 +B1615124553416N00642258EA0169901688000 +B1615194553422N00642335EA0169101681000 +B1615264553429N00642412EA0168101672000 +B1615334553435N00642489EA0167001664000 +B1615404553441N00642568EA0166301655000 +B1615474553445N00642642EA0165401646000 +B1615544553448N00642709EA0164401637000 +B1616014553452N00642775EA0163401628000 +B1616084553463N00642846EA0162801620000 +B1616154553467N00642920EA0162101613000 +B1616224553470N00642995EA0160901605000 +B1616294553472N00643076EA0161101598000 +B1616364553477N00643152EA0160601591000 +B1616434553481N00643230EA0160901586000 +B1616504553483N00643308EA0161401583000 +B1616574553479N00643385EA0161901582000 +B1617044553475N00643461EA0162001582000 +B1617114553442N00643506EA0161601582000 +B1617184553432N00643476EA0161801581000 +B1617254553454N00643460EA0162201582000 +B1617324553483N00643472EA0162701582000 +B1617394553476N00643539EA0162701583000 +B1617464553438N00643542EA0163201584000 +B1617534553444N00643517EA0163501585000 +B1618004553465N00643573EA0164201586000 +B1618074553435N00643620EA0164401586000 +B1618144553436N00643596EA0164701587000 +B1618214553463N00643645EA0165001589000 +B1618284553455N00643724EA0165501594000 +B1618354553418N00643756EA0165901599000 +B1618424553418N00643734EA0166101601000 +B1618494553443N00643777EA0166001606000 +B1618564553419N00643840EA0166301608000 +B1619034553376N00643854EA0166601611000 +B1619104553348N00643912EA0166801614000 +B1619174553365N00643970EA0167001618000 +B1619244553391N00643977EA0167101621000 +B1619314553379N00643960EA0167301624000 +B1619384553338N00643964EA0167501626000 +B1619454553292N00643983EA0167501628000 +B1619524553248N00644003EA0167401629000 +B1619594553204N00644021EA0167501630000 +B1620064553163N00644040EA0167501631000 +B1620134553117N00644050EA0167501632000 +B1620204553073N00644065EA0168301634000 +B1620274553063N00644044EA0169001636000 +B1620344553084N00644073EA0168501639000 +B1620424553054N00644114EA0169201642000 +B1620494553013N00644141EA0169701646000 +B1620564552973N00644169EA0170401650000 +B1621034552955N00644149EA0171501654000 +B1621104552983N00644168EA0173101660000 +B1621174553010N00644198EA0174001668000 +B1621244553037N00644214EA0174801677000 +B1621314553038N00644199EV0175001682000 +B1621384553004N00644154EA0175901682000 +B1621454553004N00644140EA0176501684000 +B1621524553009N00644184EV0176701687000 +B1621594552974N00644200EA0178101691000 +B1622064552989N00644207EA0178501692000 +B1622134552962N00644251EA0179601700000 +B1622204552940N00644268EV0180301707000 +B1622274552892N00644291EA0181201711000 +B1622344552892N00644291EV0181701711000 +B1622414552892N00644291EV0182301711000 +B1622484552779N00644345EA0182801711000 +B1622554552734N00644366EA0183301724000 +B1623024552695N00644378EA0184601741000 +B1623094552698N00644353EA0186201753000 +B1623164552721N00644394EA0187701770000 +B1623234552679N00644424EA0189001785000 +B1623304552657N00644398EA0191401801000 +B1623374552667N00644449EA0192701811000 +B1623444552647N00644453EA0194701821000 +B1623514552646N00644510EA0196001837000 +B1623584552627N00644500EA0197701853000 +B1624054552638N00644490EA0198601866000 +B1624124552651N00644508EA0197601884000 +B1624194552619N00644576EA0198501903000 +B1624264552587N00644581EA0198501917000 +B1624334552598N00644573EA0198201923000 +B1624404552608N00644559EA0197601928000 +B1624474552615N00644539EA0197101931000 +B1624544552623N00644522EA0197301933000 +B1625014552641N00644530EA0196601935000 +B1625084552664N00644544EA0195901934000 +B1625154552665N00644519EA0194301932000 +B1625224552653N00644490EA0195101928000 +B1625294552629N00644468EA0195101925000 +B1625364552601N00644448EA0195001923000 +B1625434552600N00644427EA0194801921000 +B1625504552616N00644412EA0194901920000 +B1625574552634N00644402EA0195001920000 +B1626044552659N00644411EA0194901919000 +B1626114552684N00644428EA0194801918000 +B1626184552677N00644418EA0194101917000 +B1626254552632N00644424EA0193701917000 +B1626334552600N00644406EA0193901915000 +B1626404552609N00644385EA0193901913000 +B1626474552630N00644435EA0194201912000 +B1626544552595N00644484EA0194401911000 +B1627014552553N00644490EA0195501911000 +B1627084552539N00644483EA0195701912000 +B1627154552567N00644513EA0196801914000 +B1627224552557N00644575EA0196501914000 +B1627294552537N00644554EA0197301919000 +B1627364552552N00644541EA0196501923000 +B1627434552569N00644529EA0196301925000 +B1627504552594N00644529EA0195601925000 +B1627574552620N00644528EA0195501923000 +B1628044552646N00644529EA0195401923000 +B1628114552670N00644525EA0194901921000 +B1628184552695N00644523EA0194601919000 +B1628254552719N00644519EA0194001916000 +B1628324552745N00644513EA0194101912000 +B1628394552767N00644512EA0194401910000 +B1628464552786N00644503EA0195601910000 +B1628534552798N00644563EA0195701911000 +B1629004552761N00644607EA0196701911000 +B1629074552751N00644587EA0197401912000 +B1629144552771N00644604EA0197301916000 +B1629214552744N00644652EA0197601921000 +B1629284552715N00644639EA0197401925000 +B1629354552722N00644613EA0197201927000 +B1629424552747N00644601EA0197501930000 +B1629494552775N00644601EA0197101932000 +B1629564552804N00644601EA0197301933000 +B1630034552832N00644598EA0196601934000 +B1630104552857N00644598EA0196101934000 +B1630174552881N00644596EA0196101934000 +B1630244552904N00644594EA0195601934000 +B1630314552929N00644585EA0196201931000 +B1630384552957N00644583EA0197201930000 +B1630454552987N00644582EA0197901932000 +B1630524553014N00644583EA0198301936000 +B1630594553048N00644595EA0198801939000 +B1631064553079N00644602EA0197601943000 +B1631134553112N00644607EA0196601942000 +B1631204553148N00644625EA0195601940000 +B1631274553183N00644638EA0195101935000 +B1631344553217N00644651EA0194201931000 +B1631414553254N00644667EA0194101926000 +B1631484553294N00644684EA0193601921000 +B1631554553335N00644702EA0193101918000 +B1632024553375N00644715EA0192201913000 +B1632094553416N00644726EA0191301907000 +B1632164553460N00644736EA0190901900000 +B1632234553495N00644733EA0192601895000 +B1632314553525N00644740EA0193701895000 +B1632384553535N00644785EA0195301896000 +B1632454553517N00644786EA0196501901000 +B1632524553549N00644804EA0197801909000 +B1632594553539N00644874EA0199301916000 +B1633064553528N00644857EA0200801926000 +B1633134553555N00644912EA0202101937000 +B1633204553527N00644938EA0203601949000 +B1633274553547N00644931EA0205201959000 +B1633344553547N00645001EA0206101973000 +B1633414553532N00644987EA0208501983000 +B1633484553556N00644997EA0209001996000 +B1633554553561N00645079EA0210302012000 +B1634024553543N00645080EA0212402024000 +B1634094553554N00645144EA0213702035000 +B1634164553531N00645148EA0215202052000 +B1634234553553N00645180EA0216502069000 +B1634304553540N00645229EA0217802078000 +B1634374553546N00645221EA0219202087000 +B1634444553548N00645291EA0220002101000 +B1634514553517N00645294EA0220902114000 +B1634584553537N00645280EA0221902128000 +B1635054553545N00645338EV0222002138000 +B1635124553510N00645377EA0223302144000 +B1635194553501N00645351EV0224402151000 +B1635264553521N00645391EA0224602158000 +B1635334553495N00645442EA0225602161000 +B1635404553476N00645422EA0226302170000 +B1635474553499N00645432EA0226002179000 +B1635544553482N00645499EA0226902186000 +B1636014553452N00645489EA0227202195000 +B1636084553478N00645496EA0226902196000 +B1636154553481N00645577EA0227402203000 +B1636224553453N00645636EA0227302211000 +B1636294553419N00645694EA0226402217000 +B1636364553391N00645766EA0224702219000 +B1636434553364N00645838EA0223302219000 +B1636504553337N00645908EA0222402214000 +B1636574553309N00645969EA0221202208000 +B1637044553282N00646032EA0220302200000 +B1637114553256N00646093EA0219502192000 +B1637184553233N00646154EA0218602184000 +B1637254553209N00646215EA0217702176000 +B1637324553176N00646266EA0218102169000 +B1637394553155N00646315EA0218002165000 +B1637464553134N00646373EA0217202161000 +B1637534553105N00646429EA0216502157000 +B1638004553077N00646481EA0216002152000 +B1638074553057N00646538EA0214602147000 +B1638144553036N00646600EA0213602140000 +B1638224553005N00646667EA0213002131000 +B1638294552978N00646721EA0212502123000 +B1638364552953N00646781EA0211602115000 +B1638434552929N00646847EA0210802107000 +B1638504552902N00646909EA0210102098000 +B1638574552876N00646969EA0209102090000 +B1639044552851N00647025EA0208302081000 +B1639114552823N00647080EA0207602073000 +B1639184552793N00647137EA0206302065000 +B1639254552762N00647195EA0205102056000 +B1639324552731N00647248EA0205102049000 +B1639394552699N00647306EA0204602042000 +B1639464552665N00647358EA0203802035000 +B1639534552635N00647420EA0203602028000 +B1640004552607N00647487EA0203702022000 +B1640074552578N00647553EA0203402018000 +B1640144552549N00647619EA0202602013000 +B1640214552527N00647691EA0202102008000 +B1640284552505N00647764EA0202002004000 +B1640354552483N00647838EA0201902000000 +B1640424552464N00647914EA0202001997000 +B1640494552441N00647991EA0201601994000 +B1640564552420N00648058EA0202301992000 +B1641034552394N00648116EA0202201991000 +B1641104552366N00648171EA0202901991000 +B1641174552338N00648219EA0203501993000 +B1641244552318N00648272EA0203301995000 +B1641314552310N00648332EA0202801996000 +B1641384552308N00648398EA0202601995000 +B1641454552306N00648463EA0202901995000 +B1641524552304N00648525EA0202901996000 +B1641594552304N00648585EA0203701997000 +B1642064552311N00648640EA0203401998000 +B1642134552318N00648697EA0203401999000 +B1642204552323N00648749EA0203602000000 +B1642274552324N00648799EA0203802002000 +B1642344552332N00648850EA0203302003000 +B1642414552334N00648903EA0203102003000 +B1642484552346N00648955EA0203102001000 +B1642554552362N00648999EA0202902001000 +B1643024552390N00649033EA0203402000000 +B1643094552414N00649062EA0204402001000 +B1643164552440N00649086EA0205702004000 +B1643234552455N00649077EA0205002009000 +B1643304552412N00649061EA0205902012000 +B1643374552368N00649050EA0206902013000 +B1643444552340N00649027EA0206302014000 +B1643514552365N00649018EA0207702015000 +B1643584552380N00649060EA0208102021000 +B1644054552402N00649096EA0209102027000 +B1644124552409N00649072EA0209202035000 +B1644194552365N00649056EA0210502041000 +B1644274552325N00649041EA0210702047000 +B1644344552345N00649017EA0210502051000 +B1644414552366N00649056EA0211402057000 +B1644484552384N00649093EA0212002064000 +B1644554552407N00649121EA0212402070000 +B1645024552400N00649093EA0211902074000 +B1645094552359N00649071EA0212102077000 +B1645164552327N00649040EA0212702081000 +B1645234552339N00649005EA0212302083000 +B1645304552351N00649058EA0213102087000 +B1645374552373N00649095EA0213502091000 +B1645444552370N00649068EA0212902094000 +B1645514552326N00649058EA0213202095000 +B1645584552289N00649034EA0213602095000 +B1646054552269N00648998EA0213202096000 +B1646124552292N00649023EA0214202098000 +B1646194552313N00649060EA0214602100000 +B1646264552338N00649093EA0214402103000 +B1646334552371N00649108EA0214202105000 +B1646404552400N00649106EA0214002106000 +B1646474552367N00649089EA0213402107000 +B1646544552331N00649065EA0213002106000 +B1647014552350N00649042EA0212502104000 +B1647084552375N00649082EA0211902102000 +B1647154552406N00649122EA0211602098000 +B1647224552435N00649160EA0211502094000 +B1647294552461N00649202EA0211802091000 +B1647364552475N00649256EA0212202090000 +B1647434552453N00649258EA0210802088000 +B1647504552485N00649284EA0211202087000 +B1647574552504N00649339EA0211202086000 +B1648044552522N00649389EA0210502085000 +B1648114552547N00649442EA0209302082000 +B1648184552576N00649497EA0209102077000 +B1648254552603N00649557EA0208502072000 +B1648324552629N00649612EA0208402067000 +B1648394552663N00649655EA0208302064000 +B1648464552697N00649701EA0207102060000 +B1648534552730N00649756EA0205902054000 +B1649004552764N00649811EA0205202047000 +B1649074552800N00649862EA0205102041000 +B1649144552828N00649911EA0205802037000 +B1649214552827N00649938EV0206102036000 +B1649284552786N00650011EA0206802035000 +B1649354552743N00650025EA0207602035000 +B1649424552701N00650022EA0208002036000 +B1649494552695N00649989EA0207902036000 +B1649564552729N00650006EA0208202038000 +B1650034552767N00650013EA0209002041000 +B1650104552803N00650015EA0209302045000 +B1650174552819N00649986EA0209902048000 +B1650244552786N00650002EA0210902050000 +B1650314552759N00650048EA0211202056000 +B1650394552719N00650064EA0211802062000 +B1650464552711N00650033EA0211402066000 +B1650534552747N00650027EA0211402069000 +B1651004552785N00650029EA0212002072000 +B1651074552824N00650034EA0212302076000 +B1651144552862N00650084EA0212402079000 +B1651214552895N00650139EA0212802082000 +B1651284552919N00650193EA0212802085000 +B1651354552942N00650251EA0212602087000 +B1651424552968N00650305EA0212402088000 +B1651494552990N00650362EA0212102088000 +B1651564553012N00650426EA0211602088000 +B1652034553040N00650490EA0211302086000 +B1652104553071N00650556EA0210802084000 +B1652174553102N00650626EA0209702081000 +B1652244553129N00650699EA0208502076000 +B1652314553155N00650769EA0207802071000 +B1652384553180N00650837EA0207302065000 +B1652454553208N00650903EA0207202060000 +B1652524553233N00650967EA0207102056000 +B1652594553259N00651041EA0207102052000 +B1653064553285N00651116EA0207102049000 +B1653134553309N00651194EA0208102048000 +B1653204553317N00651248EA0208202049000 +B1653274553301N00651268EV0208102049000 +B1653344553327N00651265EA0208102050000 +B1653414553360N00651314EA0208202050000 +B1653484553381N00651364EA0207902050000 +B1653554553403N00651415EA0207102050000 +B1654024553433N00651473EA0206002047000 +B1654094553468N00651533EA0205002041000 +B1654164553502N00651599EA0203502034000 +B1654234553540N00651652EA0202302025000 +B1654304553576N00651714EA0201202016000 +B1654374553611N00651777EA0200202005000 +B1654444553655N00651831EA0200101997000 +B1654514553696N00651886EA0199901989000 +B1654584553734N00651942EA0199501983000 +B1655054553769N00652002EA0199601978000 +B1655124553804N00652060EA0199201975000 +B1655194553844N00652114EA0198901972000 +B1655264553882N00652166EA0199001968000 +B1655334553924N00652214EA0198801965000 +B1655404553964N00652253EA0199801963000 +B1655474553969N00652307EV0199901963000 +B1655544553952N00652321EA0200201963000 +B1656014553981N00652296EA0201301963000 +B1656084554018N00652319EA0202101966000 +B1656154554008N00652378EA0202601970000 +B1656224553986N00652359EA0203601974000 +B1656294554018N00652347EA0204101982000 +B1656364554035N00652406EA0205201991000 +B1656434554010N00652420EA0206102000000 +B1656504554028N00652401EA0207302009000 +B1656584554031N00652465EA0208402019000 +B1657054554009N00652453EA0209302027000 +B1657124554037N00652442EA0210202035000 +B1657194554038N00652497EA0211602044000 +B1657264554017N00652488EA0212602054000 +B1657334554047N00652479EA0213202063000 +B1657404554054N00652544EA0214502073000 +B1657474554027N00652563EA0215502084000 +B1657544554051N00652545EA0216402095000 +B1658014554065N00652600EA0217502107000 +B1658084554035N00652616EA0218302118000 +B1658154554041N00652586EA0218702128000 +B1658224554082N00652601EA0219602139000 +B1658294554074N00652652EA0220702149000 +B1658364554087N00652634EA0221702158000 +B1658434554093N00652689EA0222802167000 +B1658504554085N00652674EA0223502176000 +B1658574554121N00652689EA0224802186000 +B1659044554118N00652748EA0226202196000 +B1659114554100N00652754EV0226702202000 +B1659184554120N00652737EA0227502208000 +B1659254554161N00652759EA0228602217000 +B1659324554156N00652803EA0229302226000 +B1659394554141N00652769EA0230002234000 +B1659464554175N00652751EA0230702242000 +B1659534554180N00652806EA0232302249000 +B1700004554173N00652778EA0232902257000 +B1700074554214N00652804EA0233802265000 +B1700144554230N00652861EA0234802275000 +B1700214554207N00652872EA0235702286000 +B1700284554220N00652840EA0236202298000 +B1700354554255N00652882EA0237302309000 +B1700424554241N00652937EA0238102319000 +B1700494554222N00652927EA0238502327000 +B1700564554260N00652920EA0238602335000 +B1701034554299N00652968EA0239002343000 +B1701104554344N00653003EA0239802348000 +B1701174554387N00653047EA0239102353000 +B1701244554433N00653089EA0238702355000 +B1701314554476N00653139EA0238402356000 +B1701384554523N00653185EA0236502355000 +B1701454554571N00653234EA0235402351000 +B1701524554619N00653286EA0234502345000 +B1701594554665N00653341EA0234002338000 +B1702064554708N00653399EA0233402331000 +B1702134554754N00653461EA0232802325000 +B1702204554796N00653527EA0233302319000 +B1702274554837N00653589EA0233502315000 +B1702344554878N00653636EA0232402312000 +B1702424554922N00653698EA0230902307000 +B1702494554963N00653752EA0229502300000 +B1702564555006N00653812EA0228002291000 +B1703034555046N00653862EA0227802283000 +B1703104555085N00653911EA0227502275000 +B1703174555125N00653955EA0226702268000 +B1703244555162N00654002EA0225302260000 +B1703314555207N00654047EA0224402251000 +B1703384555252N00654092EA0224702244000 +B1703454555298N00654138EA0224502238000 +B1703524555345N00654170EA0223602232000 +B1703594555396N00654190EA0222802226000 +B1704064555446N00654222EA0223002220000 +B1704134555491N00654263EA0223202216000 +B1704204555528N00654300EA0223602214000 +B1704274555571N00654344EA0224002213000 +B1704344555616N00654388EA0224102212000 +B1704414555660N00654417EA0225602214000 +B1704484555662N00654405EA0227002217000 +B1704554555675N00654456EA0227702223000 +B1705024555712N00654451EA0228602229000 +B1705094555707N00654434EA0228702234000 +B1705164555726N00654495EA0229602240000 +B1705234555765N00654529EA0230102248000 +B1705304555813N00654561EA0229102254000 +B1705374555859N00654612EA0228302256000 +B1705444555905N00654661EA0227502255000 +B1705514555941N00654719EA0226602252000 +B1705584555974N00654774EA0225702248000 +B1706054556008N00654828EA0224802243000 +B1706124556039N00654886EA0224202236000 +B1706194556067N00654948EA0223902230000 +B1706264556096N00655006EA0223502224000 +B1706334556125N00655065EA0223002219000 +B1706404556158N00655115EA0222202213000 +B1706474556198N00655152EA0221502207000 +B1706544556239N00655189EA0220402201000 +B1707014556280N00655222EA0219602195000 +B1707084556321N00655258EA0218702188000 +B1707154556361N00655298EA0218202180000 +B1707224556396N00655345EA0217702173000 +B1707294556428N00655400EA0217402166000 +B1707364556460N00655455EA0217102160000 +B1707434556492N00655511EA0217202155000 +B1707504556525N00655561EA0216902151000 +B1707574556560N00655596EA0218102149000 +B1708044556592N00655621EA0218402149000 +B1708114556625N00655645EA0218402149000 +B1708184556663N00655646EA0218502150000 +B1708254556700N00655635EA0219902151000 +B1708324556740N00655636EA0221302155000 +B1708394556776N00655629EA0223202162000 +B1708474556788N00655603EA0224702171000 +B1708544556766N00655635EA0225702179000 +B1709014556797N00655658EA0227502188000 +B1709084556832N00655649EA0228902200000 +B1709154556824N00655644EA0230302213000 +B1709224556801N00655701EA0232102223000 +B1709294556775N00655759EA0234102231000 +B1709364556765N00655753EA0235202240000 +B1709434556802N00655743EA0236802256000 +B1709504556839N00655738EA0238902275000 +B1709574556860N00655713EA0240302293000 +B1710044556834N00655740EA0241902310000 +B1710114556805N00655783EA0243502329000 +B1710184556775N00655829EA0245502347000 +B1710254556749N00655845EA0248102363000 +B1710324556762N00655871EA0250502375000 +B1710394556757N00655860EA0252502389000 +B1710464556786N00655851EA0254402414000 +B1710534556802N00655819EA0255302437000 +B1711004556775N00655842EA0256402458000 +B1711074556760N00655908EA0257602476000 +B1711144556740N00655980EA0259502493000 +B1711214556727N00655976EA0260702507000 +B1711284556754N00656023EA0261202525000 +B1711354556748N00656065EA0262102535000 +B1711424556761N00656031EA0263502545000 +B1711494556771N00656002EA0264902556000 +B1711564556774N00655969EA0265902568000 +B1712034556796N00655941EA0267102588000 +B1712104556800N00655907EA0268102603000 +B1712174556781N00655947EA0269002615000 +B1712244556787N00656018EA0270602628000 +B1712314556764N00656070EA0270702640000 +B1712384556758N00656042EA0271002649000 +B1712454556767N00656006EA0271302657000 +B1712524556794N00655983EA0271902665000 +B1712594556821N00655954EA0273202674000 +B1713064556845N00655923EA0274602682000 +B1713134556872N00655902EA0275802692000 +B1713204556881N00655958EA0277402703000 +B1713274556850N00655961EA0278902715000 +B1713344556865N00655925EA0280202727000 +B1713414556899N00655948EA0281702740000 +B1713484556876N00655976EA0283302753000 +B1713554556881N00655940EA0284702768000 +B1714024556912N00655972EA0286102782000 +B1714094556894N00656026EA0288002797000 +B1714174556872N00656000EA0289102814000 +B1714244556903N00655989EA0290802829000 +B1714314556912N00656050EA0292402844000 +B1714384556880N00656073EA0293702858000 +B1714454556878N00656042EA0295102873000 +B1714524556912N00656052EA0296002889000 +B1714594556918N00656109EA0297102902000 +B1715064556887N00656129EA0298502915000 +B1715134556867N00656107EA0299202928000 +B1715204556882N00656075EA0300902941000 +B1715274556903N00656056EA0302102952000 +B1715344556933N00656072EA0304202966000 +B1715414556947N00656116EA0306502983000 +B1715484556916N00656129EA0308002999000 +B1715554556934N00656094EA0310303015000 +B1716024556962N00656128EA0312903033000 +B1716094556990N00656157EA0314503053000 +B1716164557021N00656185EA0315003071000 +B1716234557057N00656213EA0315803086000 +B1716304557093N00656246EA0316603100000 +B1716374557132N00656277EA0316503111000 +B1716444557165N00656308EA0315203119000 +B1716514557199N00656350EA0314003121000 +B1716584557236N00656388EA0313203121000 +B1717054557275N00656417EA0312303118000 +B1717124557313N00656448EA0311303114000 +B1717194557352N00656479EA0310303108000 +B1717264557392N00656502EA0309503101000 +B1717334557433N00656529EA0308903094000 +B1717404557471N00656561EA0308303089000 +B1717474557509N00656594EA0308003084000 +B1717544557544N00656630EA0307603079000 +B1718014557580N00656666EA0306903073000 +B1718084557615N00656705EA0306203067000 +B1718154557652N00656742EA0305703062000 +B1718224557690N00656777EA0305303057000 +B1718294557728N00656812EA0304703052000 +B1718364557766N00656847EA0304103046000 +B1718434557803N00656881EA0303603040000 +B1718504557839N00656917EA0303003034000 +B1718574557872N00656957EA0302203029000 +B1719044557909N00656992EA0301503023000 +B1719114557950N00657019EA0300903023000 +B1719184557989N00657048EA0300303020000 +B1719254558027N00657077EA0299603013000 +B1719324558064N00657104EA0298403006000 +B1719394558100N00657134EA0297802999000 +B1719464558136N00657166EA0297002989000 +B1719544558174N00657210EA0296202979000 +B1720014558207N00657250EA0295602970000 +B1720084558241N00657288EA0294602961000 +B1720154558276N00657322EA0293702952000 +B1720224558312N00657361EA0293002943000 +B1720294558345N00657392EA0292002934000 +B1720364558381N00657424EA0290402924000 +B1720434558417N00657455EA0289602913000 +B1720504558454N00657484EA0288402902000 +B1720574558492N00657510EA0287602892000 +B1721044558530N00657531EA0286802881000 +B1721114558568N00657554EA0285902871000 +B1721184558606N00657576EA0284902861000 +B1721254558645N00657587EA0284202852000 +B1721324558684N00657612EA0283202843000 +B1721394558724N00657635EA0281602834000 +B1721464558768N00657652EA0280702825000 +B1721534558810N00657666EA0280002815000 +B1722004558852N00657685EA0279302805000 +B1722074558893N00657707EA0278402796000 +B1722144558936N00657728EA0277402786000 +B1722214558980N00657748EA0276502776000 +B1722284559023N00657770EA0276102768000 +B1722354559066N00657789EA0276302761000 +B1722424559104N00657795EA0276902756000 +B1722494559136N00657785EA0277302755000 +B1722564559167N00657767EA0277302754000 +B1723034559205N00657785EA0277502753000 +B1723104559242N00657807EA0276602752000 +B1723174559285N00657828EA0276302749000 +B1723244559323N00657852EA0276002746000 +B1723314559359N00657882EA0274702741000 +B1723384559398N00657915EA0274002736000 +B1723454559436N00657948EA0273502731000 +B1723524559474N00657985EA0273002725000 +B1723594559510N00658023EA0272402720000 +B1724064559547N00658057EA0271802715000 +B1724134559584N00658091EA0270802709000 +B1724204559624N00658121EA0270102703000 +B1724274559664N00658155EA0269302696000 +B1724344559702N00658193EA0268502688000 +B1724414559743N00658219EA0267402681000 +B1724484559786N00658241EA0266302672000 +B1724554559830N00658253EA0265002663000 +B1725024559872N00658278EA0263902653000 +B1725094559915N00658302EA0262902643000 +B1725164559959N00658326EA0261902633000 +B1725234559982N00658287EA0260602623000 +B1725314559963N00658219EA0259602611000 +B1725384559940N00658163EA0258702600000 +B1725454559912N00658105EA0258002590000 +B1725524559897N00658055EA0257402582000 +B1725594559932N00658050EA0256402573000 +B1726064559962N00658094EA0255502567000 +B1726134559932N00658108EA0254602559000 +B1726204559899N00658065EA0253802550000 +B1726274559869N00658019EA0252902542000 +B1726344559837N00657972EA0251902532000 +B1726414559803N00657925EA0251202523000 +B1726484559767N00657878EA0250702514000 +B1726554559729N00657834EA0250702508000 +B1727024559697N00657793EA0249702500000 +B1727094559663N00657753EA0249102492000 +B1727164559631N00657707EA0248502485000 +B1727234559599N00657660EA0248102479000 +B1727304559566N00657614EA0247602473000 +B1727374559533N00657572EA0247002467000 +B1727444559496N00657531EA0246702461000 +B1727514559463N00657487EA0246002456000 +B1727584559426N00657447EA0245002450000 +B1728054559391N00657402EA0244202443000 +B1728124559356N00657359EA0242902435000 +B1728194559316N00657324EA0242002426000 +B1728264559275N00657292EA0241202418000 +B1728334559233N00657257EA0240402409000 +B1728404559191N00657219EA0239402401000 +B1728474559148N00657187EA0239302393000 +B1728544559103N00657161EA0239902387000 +B1729014559067N00657126EA0239602384000 +B1729084559033N00657080EA0238802379000 +B1729154558997N00657038EA0238402375000 +B1729224558957N00657008EA0237102370000 +B1729294558909N00656969EA0235402363000 +B1729364558862N00656918EA0234002354000 +B1729434558812N00656872EA0232802345000 +B1729504558763N00656824EA0231802336000 +B1729574558719N00656771EA0229902326000 +B1730044558677N00656711EA0228402315000 +B1730114558637N00656647EA0227202303000 +B1730184558596N00656589EA0226102290000 +B1730254558554N00656535EA0224902278000 +B1730324558512N00656477EA0223802265000 +B1730394558473N00656421EA0222302253000 +B1730464558433N00656366EA0220502240000 +B1730534558393N00656310EA0219402226000 +B1731014558344N00656243EA0218402211000 +B1731084558305N00656177EA0217302197000 +B1731154558260N00656113EA0216602184000 +B1731224558211N00656057EA0215302172000 +B1731294558161N00656002EA0215002161000 +B1731364558106N00655951EA0213802150000 +B1731434558051N00655901EA0213202140000 +B1731504557998N00655844EA0212202130000 +B1731574557948N00655786EA0210702121000 +B1732044557896N00655730EA0209002110000 +B1732114557847N00655670EA0207602098000 +B1732184557800N00655615EA0206302086000 +B1732254557753N00655569EA0205902073000 +B1732324557715N00655536EA0205602063000 +B1732394557677N00655509EA0205802056000 +B1732464557639N00655481EA0205502049000 +B1732534557604N00655464EA0205302044000 +B1733004557569N00655448EA0205802040000 +B1733074557535N00655432EA0205502037000 +B1733144557499N00655412EA0205102034000 +B1733214557466N00655392EA0204302030000 +B1733284557435N00655375EA0203302025000 +B1733354557409N00655351EA0201602018000 +B1733424557394N00655297EA0200102009000 +B1733494557384N00655240EA0197901998000 +B1733564557369N00655184EA0195801985000 +B1734034557359N00655134EA0195401971000 +B1734104557349N00655106EA0194901960000 +B1734174557335N00655083EA0193701951000 +B1734244557314N00655041EA0192501939000 +B1734314557296N00654989EA0191301927000 +B1734384557274N00654940EA0190201915000 +B1734454557258N00654880EA0189101903000 +B1734524557245N00654816EA0187201890000 +B1734594557226N00654757EA0186601877000 +B1735064557215N00654696EA0186001865000 +B1735134557203N00654633EA0184901854000 +B1735204557195N00654565EA0183201844000 +B1735274557192N00654491EA0182001833000 +B1735344557186N00654423EA0180801822000 +B1735414557175N00654357EA0179601810000 +B1735484557169N00654287EA0178201800000 +B1735554557169N00654218EA0177001787000 +B1736024557170N00654159EA0176501775000 +B1736094557164N00654107EA0176001764000 +B1736164557155N00654057EA0175201753000 +B1736234557142N00654007EA0174701743000 +B1736304557129N00653958EA0173801734000 +B1736374557116N00653903EA0173501725000 +B1736454557100N00653843EA0173001717000 +B1736524557085N00653794EA0172801711000 +B1736594557061N00653750EA0172001704000 +B1737064557031N00653704EA0170601697000 +B1737134557004N00653655EA0170101688000 +B1737204556985N00653606EA0170701682000 +B1737274556972N00653547EA0171401679000 +B1737344556959N00653493EA0172001679000 +B1737414556940N00653427EA0172801681000 +B1737484556926N00653364EA0173901684000 +B1737554556946N00653314EA0174401688000 +B1738024556970N00653347EA0174901693000 +B1738094556952N00653377EA0175701699000 +B1738164556927N00653333EA0175601706000 +B1738234556905N00653268EA0176101711000 +B1738304556886N00653206EA0175901714000 +B1738374556857N00653157EA0175601717000 +B1738444556830N00653105EA0175101717000 +B1738514556803N00653053EA0174201717000 +B1738584556773N00653004EA0173901714000 +B1739054556749N00652949EA0173301711000 +B1739124556732N00652894EA0172401707000 +B1739194556699N00652827EA0171901702000 +B1739264556673N00652764EA0171001696000 +B1739334556643N00652698EA0169701689000 +B1739404556611N00652622EA0168701681000 +B1739474556583N00652551EA0168301673000 +B1739544556561N00652472EA0167701665000 +B1740014556541N00652404EA0168201659000 +B1740084556518N00652353EA0168101654000 +B1740154556501N00652305EA0168201651000 +B1740224556482N00652263EA0167701648000 +B1740294556462N00652222EA0167401646000 +B1740364556439N00652179EA0166901643000 +B1740434556416N00652133EA0166701639000 +B1740504556391N00652095EA0166401636000 +B1740574556367N00652057EA0166001633000 +B1741044556340N00652026EA0165101629000 +B1741114556315N00651993EA0163701625000 +B1741184556280N00651966EA0162701618000 +B1741254556243N00651941EA0162001611000 +B1741324556209N00651912EA0161801604000 +B1741394556177N00651887EA0160801597000 +B1741464556140N00651873EA0159601589000 +B1741534556100N00651864EA0158301580000 +B1742004556061N00651838EA0157301572000 +B1742074556023N00651833EA0156801564000 +B1742154555977N00651838EA0156101555000 +B1742224555943N00651825EA0155401546000 +B1742294555909N00651798EA0154501538000 +B1742364555878N00651760EA0153901529000 +B1742434555852N00651718EA0152801521000 +B1742504555828N00651670EA0152101513000 +B1742574555805N00651618EA0151301504000 +B1743044555780N00651565EA0150501495000 +B1743114555748N00651521EA0149601486000 +B1743184555720N00651469EA0148801479000 +B1743254555689N00651423EA0147601470000 +B1743324555653N00651390EA0146101462000 +B1743394555606N00651393EA0144401451000 +B1743464555562N00651423EA0142901439000 +B1743534555532N00651473EA0141901427000 +B1744004555523N00651540EA0141201414000 +B1744074555534N00651602EA0140301402000 +B1744144555541N00651668EA0139701390000 +B1744214555539N00651738EA0139401380000 +B1744284555543N00651808EA0138401371000 +B1744354555591N00651824EA0137701363000 +B1744424555637N00651826EA0137601354000 +B1744494555681N00651821EA0137101347000 +B1744564555721N00651821EA0136401341000 +B1745034555759N00651838EA0135401335000 +B1745104555797N00651865EA0134901328000 +B1745174555831N00651894EA0133801322000 +B1745244555864N00651928EA0133001314000 +B1745314555893N00651969EA0132201305000 +B1745384555929N00651998EA0131301297000 +B1745454555939N00652035EA0129801288000 +B1745524555903N00652030EA0128801279000 +B1745594555927N00652070EA0127001269000 +B1746064555915N00652118EA0126801261000 +B1746134555896N00652167EA0126101251000 +B1746204555906N00652207EA0124301242000 +B1746274555893N00652203EA0123201235000 +B1746344555892N00652262EA0122201224000 +B1746414555885N00652322EA0121401213000 +B1746484555878N00652380EA0120401202000 +B1746554555867N00652446EA0119401191000 +B1747024555850N00652505EA0118801181000 +B1747094555826N00652535EA0117501171000 +B1747164555851N00652543EA0116501160000 +B1747234555846N00652529EA0115201152000 +B1747304555862N00652573EA0114501142000 +B1747374555854N00652623EA0114201133000 +B1747444555837N00652650EA0113001124000 +B1747514555845N00652604EA0112601115000 +B1747594555826N00652578EA0111701105000 +B1748064555800N00652585EA0110401096000 +B1748134555771N00652577EA0109401086000 +B1748204555754N00652589EA0109601080000 +B1748274555754N00652590EA0109601075000 +B1748344555755N00652590EA0109501073000 +B1748414555754N00652590EA0109601070000 +B1748484555755N00652589EA0109501068000 +B1748554555755N00652589EA0109601064000 +B1749024555755N00652591EA0109601063000 +B1749094555755N00652592EA0109601061000 +B1749164555753N00652594EA0109601056000 diff --git a/examples/igc.html b/examples/igc.html new file mode 100644 index 0000000000..1ea8a82cd0 --- /dev/null +++ b/examples/igc.html @@ -0,0 +1,56 @@ + + + + + + + + + + + IGC example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

IGC example

+

Example of tracks recorded from multiple paraglider flights on the same day, read from an IGC file. The five tracks contain a total of 49,707 unique coordinates. Zoom in to see more detail. The background layer is from OpenCycleMap.

+
+

See the igc.js source to see how this is done.

+
+
complex-geometry, closest-feature, igc, opencyclemap
+
+
+
+   +
+
+ +
+ +
+ + + + + + + diff --git a/examples/igc.js b/examples/igc.js new file mode 100644 index 0000000000..a0c5f6fad4 --- /dev/null +++ b/examples/igc.js @@ -0,0 +1,149 @@ +goog.require('ol.Attribution'); +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.format.IGC'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.Point'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.proj'); +goog.require('ol.shape'); +goog.require('ol.source.OSM'); +goog.require('ol.source.Vector'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); + + +var tracklogs = [ + 'data/igc/Clement-Latour.igc', + 'data/igc/Damien-de-Baenst.igc', + 'data/igc/Sylvain-Dhonneur.igc', + 'data/igc/Tom-Payne.igc', + 'data/igc/Ulrich-Prinz.igc' +]; + +var colors = { + 'Clement Latour': 'rgba(0, 0, 255, 0.7)', + 'Damien de Baesnt': 'rgba(0, 215, 255, 0.7)', + 'Sylvain Dhonneur': 'rgba(0, 165, 255, 0.7)', + 'Tom Payne': 'rgba(0, 255, 255, 0.7)', + 'Ulrich Prinz': 'rgba(0, 215, 255, 0.7)' +}; + +var styleCache = {}; +var styleFunction = function(feature, resolution) { + var color = colors[feature.get('PLT')]; + var styleArray = styleCache[color]; + if (!styleArray) { + styleArray = [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: color, + lineCap: 'round', + lineJoin: 'round', + width: 3 + }) + })]; + styleCache[color] = styleArray; + } + return styleArray; +}; + +var vectorSource = new ol.source.Vector(); + +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + source: new ol.source.OSM({ + attributions: [ + new ol.Attribution({ + html: 'All maps © ' + + 'OpenCycleMap' + }), + ol.source.OSM.DATA_ATTRIBUTION + ], + url: 'http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png' + }) + }), + new ol.layer.Vector({ + source: vectorSource, + styleFunction: styleFunction + }) + ], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [703365.7089403362, 5714629.865071137], + zoom: 9 + }) +}); + + +var transform = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); +var i, ii; +for (i = 0, ii = tracklogs.length; i < ii; ++i) { + $.get(tracklogs[i], function(data) { + var format = new ol.format.IGC(); + var feature = format.readFeature(data); + feature.getGeometry().transform(transform); + vectorSource.addFeature(feature); + }); +} + + +var point = null; +var line = null; +var displaySnap = function(coordinate) { + var closestFeature = vectorSource.getClosestFeatureToCoordinate(coordinate); + var info = document.getElementById('info'); + if (closestFeature === null) { + point = null; + line = null; + info.innerHTML = ' '; + } else { + info.innerHTML = closestFeature.get('PLT'); + var geometry = closestFeature.getGeometry(); + var closestPoint = geometry.getClosestPoint(coordinate); + if (point === null) { + point = new ol.geom.Point(closestPoint); + } else { + point.setCoordinates(closestPoint); + } + if (line === null) { + line = new ol.geom.LineString([coordinate, closestPoint]); + } else { + line.setCoordinates([coordinate, closestPoint]); + } + } + map.requestRenderFrame(); +}; + +$(map.getViewport()).on('mousemove', function(evt) { + var coordinate = map.getEventCoordinate(evt.originalEvent); + displaySnap(coordinate); +}); + +map.on('singleclick', function(evt) { + var coordinate = evt.getCoordinate(); + displaySnap(coordinate); +}); + +var imageStyle = ol.shape.renderCircle(5, null, new ol.style.Stroke({ + color: 'rgba(255,0,0,0.9)', + width: 1 +})); +var strokeStyle = new ol.style.Stroke({ + color: 'rgba(255,0,0,0.9)', + width: 1 +}); +map.on('postcompose', function(evt) { + var render = evt.getRender(); + if (point !== null) { + render.setImageStyle(imageStyle); + render.drawPointGeometry(point); + } + if (line !== null) { + render.setFillStrokeStyle(null, strokeStyle); + render.drawLineStringGeometry(line); + } +}); From 45ea10ede2c4be19439d2567b2cb7375d11c17e2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 16 Dec 2013 20:27:16 +0100 Subject: [PATCH 608/919] Remove complex-geometry example --- examples/complex-geometry.html | 53 ------------- examples/complex-geometry.js | 135 --------------------------------- examples/data/mtbland.geojson | 19 ----- 3 files changed, 207 deletions(-) delete mode 100644 examples/complex-geometry.html delete mode 100644 examples/complex-geometry.js delete mode 100644 examples/data/mtbland.geojson diff --git a/examples/complex-geometry.html b/examples/complex-geometry.html deleted file mode 100644 index 0ddcb6297d..0000000000 --- a/examples/complex-geometry.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - Complex geometry example - - - - - -
- -
-
-
-
-
- -
- -
-

Complex geometry example

-

Example of rendering a complex geometry. Zoom into the purple lines to see more detail.

-
-

See the complex-geometry.js source to see how this is done.

-
-
vector, simplification
-
- -
- -
- - - - - - - - - diff --git a/examples/complex-geometry.js b/examples/complex-geometry.js deleted file mode 100644 index 6f5f4fdee0..0000000000 --- a/examples/complex-geometry.js +++ /dev/null @@ -1,135 +0,0 @@ -goog.require('ol.Attribution'); -goog.require('ol.Map'); -goog.require('ol.RendererHint'); -goog.require('ol.View2D'); -goog.require('ol.control'); -goog.require('ol.control.ScaleLine'); -goog.require('ol.control.ScaleLineUnits'); -goog.require('ol.geom.LineString'); -goog.require('ol.geom.Point'); -goog.require('ol.layer.Tile'); -goog.require('ol.layer.Vector'); -goog.require('ol.proj'); -goog.require('ol.shape'); -goog.require('ol.source.GeoJSON'); -goog.require('ol.source.TileWMS'); -goog.require('ol.style.Stroke'); -goog.require('ol.style.Style'); - - -var projection = ol.proj.configureProj4jsProjection({ - code: 'EPSG:21781', - extent: [485869.5728, 76443.1884, 837076.5648, 299941.7864] -}); - -var vectorSource = new ol.source.GeoJSON({ - defaultProjection: projection, - url: 'data/mtbland.geojson' -}); - -var styleArray = [new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'rgba(128,0,128,0.8)', - lineCap: 'round', - lineJoin: 'round', - width: 3 - }) -})]; - -var extent = [420000, 30000, 900000, 350000]; -var layers = [ - new ol.layer.Tile({ - source: new ol.source.TileWMS({ - url: 'http://wms.geo.admin.ch/', - crossOrigin: 'anonymous', - attributions: [new ol.Attribution({ - html: '© ' + - '' + - 'Pixelmap 1:1000000 / geo.admin.ch' - })], - params: { - 'LAYERS': 'ch.swisstopo.pixelkarte-farbe-pk1000.noscale', - 'FORMAT': 'image/jpeg' - }, - extent: extent - }) - }), - new ol.layer.Vector({ - source: vectorSource, - styleFunction: function(feature, resolution) { - return styleArray; - } - }) -]; - -var map = new ol.Map({ - controls: ol.control.defaults().extend([ - new ol.control.ScaleLine({ - units: ol.control.ScaleLineUnits.METRIC - }) - ]), - layers: layers, - renderer: ol.RendererHint.CANVAS, - target: 'map', - view: new ol.View2D({ - projection: projection, - center: [660000, 190000], - extent: extent, - zoom: 2 - }) -}); - -var point = null; -var line = null; -var displaySnap = function(coordinate) { - var closestFeature = vectorSource.getClosestFeatureToCoordinate(coordinate); - if (closestFeature === null) { - point = null; - line = null; - } else { - var geometry = closestFeature.getGeometry(); - var closestPoint = geometry.getClosestPoint(coordinate); - if (point === null) { - point = new ol.geom.Point(closestPoint); - } else { - point.setCoordinates(closestPoint); - } - if (line === null) { - line = new ol.geom.LineString([coordinate, closestPoint]); - } else { - line.setCoordinates([coordinate, closestPoint]); - } - } - map.requestRenderFrame(); -}; - -$(map.getViewport()).on('mousemove', function(evt) { - var coordinate = map.getEventCoordinate(evt.originalEvent); - displaySnap(coordinate); -}); - -map.on('singleclick', function(evt) { - var coordinate = evt.getCoordinate(); - displaySnap(coordinate); -}); - -var imageStyle = ol.shape.renderCircle(5, null, new ol.style.Stroke({ - color: 'rgba(255,0,0,0.9)', - width: 1 -})); -var strokeStyle = new ol.style.Stroke({ - color: 'rgba(255,0,0,0.9)', - width: 1 -}); -map.on('postcompose', function(evt) { - var render = evt.getRender(); - if (point !== null) { - render.setImageStyle(imageStyle); - render.drawPointGeometry(point); - } - if (line !== null) { - render.setFillStrokeStyle(null, strokeStyle); - render.drawLineStringGeometry(line); - } -}); diff --git a/examples/data/mtbland.geojson b/examples/data/mtbland.geojson deleted file mode 100644 index f7a6c2d125..0000000000 --- a/examples/data/mtbland.geojson +++ /dev/null @@ -1,19 +0,0 @@ -{ -"type": "FeatureCollection", -"features": [ -{ "type": "Feature", "properties": { "FID": 0.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 666149.5, 211466.2 ], [ 666161.716, 211403.978 ] ], [ [ 666149.5, 211466.2 ], [ 666298.943, 211486.839 ], [ 666307.6, 211418.9 ], [ 666161.716, 211403.978 ] ], [ [ 626235.5, 198906.1 ], [ 626320.4, 198886.3 ], [ 626314.714, 198767.031 ] ], [ [ 626235.5, 198906.1 ], [ 626260.9, 198965.6 ], [ 626324.0, 199057.1 ], [ 626463.4, 199067.2 ], [ 626651.2, 199149.0 ], [ 626690.0, 199155.6 ], [ 626733.2, 199153.6 ], [ 626938.1, 199113.9 ], [ 627019.8, 199108.7 ], [ 627081.0, 199127.4 ], [ 627198.2, 199119.6 ], [ 627225.5, 199127.9 ], [ 627233.2, 199146.4 ], [ 627219.6, 199160.5 ], [ 627108.0, 199212.6 ], [ 627065.5, 199246.8 ], [ 627002.6, 199273.5 ], [ 626965.6, 199301.6 ], [ 626892.4, 199310.6 ], [ 626880.0, 199322.5 ], [ 626884.6, 199343.4 ], [ 626903.4, 199350.8 ], [ 626949.4, 199346.3 ], [ 626979.2, 199358.0 ], [ 627044.6, 199350.3 ], [ 627086.6, 199352.0 ], [ 627182.5, 199367.1 ], [ 627221.1, 199385.5 ], [ 627371.2, 199578.1 ], [ 627406.6, 199617.2 ], [ 627501.4, 199691.8 ], [ 627512.0, 199711.1 ], [ 627566.9, 199988.3 ], [ 627568.3, 200042.3 ], [ 627563.5, 200059.3 ], [ 627534.3, 200101.1 ], [ 627498.4, 200121.1 ], [ 627439.9, 200138.6 ], [ 627422.0, 200155.7 ], [ 627413.9, 200276.8 ], [ 627434.4, 200348.2 ], [ 627431.8, 200416.8 ], [ 627416.5, 200511.4 ], [ 627367.8, 200608.0 ], [ 627319.2, 200658.8 ], [ 627280.9, 200687.3 ], [ 627260.3, 200726.0 ], [ 627259.9, 200742.7 ], [ 627270.1, 200769.0 ], [ 627306.0, 200829.3 ], [ 627384.9, 200901.6 ], [ 627416.1, 201006.1 ], [ 627415.1, 201023.6 ], [ 627403.3, 201035.0 ], [ 627329.4, 201051.9 ], [ 627315.7, 201076.5 ], [ 627325.9, 201144.1 ], [ 627375.1, 201216.9 ], [ 627384.8, 201245.5 ], [ 627370.4, 201378.3 ], [ 627379.2, 201502.1 ], [ 627408.4, 201579.4 ], [ 627447.3, 201655.7 ], [ 627491.3, 201674.1 ], [ 627561.1, 201728.8 ], [ 627662.9, 201754.9 ], [ 627686.5, 201769.1 ], [ 627707.3, 201832.9 ], [ 627711.8, 201872.9 ], [ 627698.3, 201957.0 ], [ 627712.6, 201998.6 ], [ 627780.1, 202055.6 ], [ 627950.9, 202171.8 ], [ 628009.4, 202273.4 ], [ 628025.9, 202289.1 ], [ 628043.6, 202300.0 ], [ 628124.4, 202321.5 ], [ 628146.9, 202335.0 ], [ 628145.4, 202355.5 ], [ 628069.6, 202439.1 ], [ 628062.1, 202455.7 ], [ 628063.3, 202484.9 ], [ 628078.7, 202514.8 ], [ 628146.7, 202598.7 ], [ 628194.9, 202673.6 ], [ 628207.5, 202706.6 ], [ 628199.9, 202812.1 ], [ 628211.7, 202923.2 ], [ 628260.3, 203055.2 ], [ 628289.1, 203087.5 ], [ 628329.5, 203114.7 ], [ 628358.7, 203124.5 ], [ 628421.3, 203126.5 ], [ 628487.7, 203185.7 ], [ 628517.8, 203195.0 ], [ 628565.4, 203197.8 ], [ 628588.6, 203239.6 ], [ 628587.9, 203284.9 ], [ 628605.9, 203326.8 ], [ 628608.3, 203350.5 ], [ 628552.9, 203472.4 ], [ 628550.6, 203526.4 ], [ 628573.1, 203617.6 ], [ 628602.0, 203805.0 ], [ 628636.7, 203896.4 ], [ 628670.5, 203926.5 ], [ 628707.0, 203936.9 ], [ 628825.9, 203950.0 ], [ 628827.1, 203964.8 ], [ 628793.8, 204032.2 ], [ 628771.5, 204112.2 ], [ 628779.3, 204134.1 ], [ 628852.6, 204241.3 ], [ 628834.8, 204305.7 ], [ 628846.4, 204353.7 ], [ 628839.2, 204369.1 ], [ 628782.0, 204412.6 ], [ 628750.3, 204460.0 ], [ 628692.7, 204505.6 ], [ 628674.3, 204537.1 ], [ 628662.9, 204596.1 ], [ 628632.3, 204668.2 ], [ 628605.8, 204843.5 ], [ 628620.8, 204901.4 ], [ 628649.1, 204954.2 ], [ 628623.7, 205048.1 ], [ 628638.6, 205146.2 ], [ 628685.8, 205224.7 ], [ 628713.2, 205251.5 ], [ 628714.1, 205278.0 ], [ 628720.6, 205289.0 ], [ 628759.4, 205284.3 ], [ 628824.0, 205331.8 ], [ 628867.2, 205346.8 ], [ 628908.6, 205337.1 ], [ 628970.4, 205304.6 ], [ 628984.4, 205305.5 ], [ 628983.4, 205348.2 ], [ 628989.2, 205367.8 ], [ 629032.2, 205412.8 ], [ 629041.6, 205434.8 ], [ 629064.3, 205453.6 ], [ 629068.5, 205478.1 ], [ 629100.4, 205539.1 ], [ 629120.0, 205556.4 ], [ 629190.5, 205582.2 ], [ 629199.9, 205594.1 ], [ 629226.7, 205677.2 ], [ 629310.3, 205742.0 ], [ 629377.5, 205756.2 ], [ 629388.7, 205767.5 ], [ 629397.8, 205799.2 ], [ 629460.1, 205782.0 ], [ 629564.8, 205786.4 ], [ 629598.4, 205798.5 ], [ 629644.4, 205847.0 ], [ 629662.9, 205853.3 ], [ 629790.7, 205785.9 ], [ 629834.5, 205778.4 ], [ 629919.6, 205779.8 ], [ 629968.2, 205794.0 ], [ 629984.9, 205805.0 ], [ 629994.9, 205816.8 ], [ 630005.2, 205853.3 ], [ 629976.2, 205971.5 ], [ 629957.4, 206009.8 ], [ 629963.1, 206131.5 ], [ 629972.6, 206144.8 ], [ 630091.6, 206182.0 ], [ 630113.1, 206196.8 ], [ 630127.6, 206216.8 ], [ 630132.4, 206342.5 ], [ 630155.1, 206492.8 ], [ 630111.1, 206535.3 ], [ 630016.1, 206598.3 ], [ 629959.9, 206644.3 ], [ 629955.9, 206653.6 ], [ 629963.2, 206675.9 ], [ 630026.9, 206701.3 ], [ 629933.5, 206900.2 ], [ 629935.9, 206910.0 ], [ 629963.5, 206908.4 ], [ 629971.2, 206914.4 ], [ 629962.4, 206932.1 ], [ 629916.1, 206976.0 ], [ 629872.891, 206992.627 ], [ 629869.3, 207053.7 ], [ 629858.5, 207060.7 ], [ 629840.0, 207055.5 ], [ 629830.8, 207009.7 ], [ 629813.0, 207006.0 ], [ 629782.5, 207011.5 ], [ 629732.5, 206965.7 ], [ 629720.8, 206970.5 ], [ 629758.6, 207057.2 ], [ 629757.4, 207112.2 ], [ 629775.1, 207173.2 ], [ 629793.6, 207206.7 ], [ 629792.1, 207223.5 ], [ 629762.2, 207243.3 ], [ 629763.7, 207277.0 ], [ 629791.2, 207262.6 ], [ 629909.5, 207223.6 ], [ 630126.2, 207127.6 ], [ 630149.0, 207112.3 ], [ 630207.0, 207048.1 ], [ 630240.2, 207030.3 ], [ 630383.1, 207022.1 ], [ 630407.1, 207011.3 ], [ 630462.0, 206957.4 ], [ 630554.5, 206954.8 ], [ 630601.0, 206968.8 ], [ 630629.4, 206997.1 ], [ 630635.9, 207013.0 ], [ 630635.7, 207058.8 ], [ 630701.3, 207284.4 ], [ 630727.8, 207411.2 ], [ 630744.6, 207438.6 ], [ 630776.1, 207470.5 ], [ 630800.5, 207523.5 ], [ 630831.0, 207568.0 ], [ 630904.1, 207611.2 ], [ 630915.6, 207623.8 ], [ 630996.8, 207656.2 ], [ 631046.1, 207672.6 ], [ 631158.1, 207677.0 ], [ 631198.1, 207695.7 ], [ 631238.3, 207729.5 ], [ 631257.6, 207729.2 ], [ 631266.3, 207715.2 ], [ 631261.3, 207693.5 ], [ 631220.6, 207638.5 ], [ 631216.6, 207590.2 ], [ 631177.6, 207578.7 ], [ 631146.1, 207546.2 ], [ 631102.8, 207526.0 ], [ 631069.6, 207500.0 ], [ 631022.8, 207432.7 ], [ 631019.8, 207412.2 ], [ 631033.8, 207404.0 ], [ 631070.1, 207450.0 ], [ 631097.8, 207469.0 ], [ 631199.6, 207502.2 ], [ 631224.1, 207519.2 ], [ 631267.6, 207536.5 ], [ 631285.3, 207561.2 ], [ 631297.8, 207600.5 ], [ 631344.8, 207632.6 ], [ 631345.3, 207677.2 ], [ 631358.1, 207708.2 ], [ 631413.4, 207719.8 ], [ 631419.1, 207742.4 ], [ 631395.1, 207785.5 ], [ 631387.9, 207873.5 ], [ 631373.4, 207890.0 ], [ 631332.1, 207863.0 ], [ 631285.6, 207864.3 ], [ 631254.4, 207881.3 ], [ 631191.6, 207932.5 ], [ 631124.9, 207878.0 ], [ 631045.3, 207900.6 ], [ 631041.1, 207912.4 ], [ 631049.1, 207923.8 ], [ 631062.8, 207929.0 ], [ 631100.7, 207922.6 ], [ 631119.4, 207927.8 ], [ 631160.0, 207984.6 ], [ 631184.0, 207999.3 ], [ 631237.5, 207995.1 ], [ 631288.5, 207974.6 ], [ 631308.7, 207984.3 ], [ 631322.9, 208010.2 ], [ 631346.4, 208029.0 ], [ 631405.8, 208030.0 ], [ 631463.6, 207986.4 ], [ 631590.6, 207864.0 ], [ 631636.4, 207829.3 ], [ 631753.9, 207808.8 ], [ 631812.1, 207822.5 ], [ 631857.4, 207849.8 ], [ 631922.4, 207870.0 ], [ 631947.1, 207883.8 ], [ 631988.1, 207952.3 ], [ 632029.076, 207992.475 ], [ 632064.2, 207974.6 ], [ 632134.6, 207958.8 ], [ 632170.1, 207938.5 ], [ 632209.0, 207905.5 ], [ 632276.1, 207889.3 ], [ 632299.9, 207871.0 ], [ 632326.4, 207822.5 ], [ 632343.9, 207803.8 ], [ 632384.4, 207809.3 ], [ 632460.1, 207772.8 ], [ 632516.6, 207769.5 ], [ 632545.9, 207751.0 ], [ 632588.1, 207689.5 ], [ 632636.1, 207700.0 ], [ 632661.9, 207689.7 ], [ 632722.4, 207638.5 ], [ 632801.9, 207538.2 ], [ 632901.4, 207484.5 ], [ 632916.1, 207474.0 ], [ 632921.9, 207458.7 ], [ 632910.6, 207431.7 ], [ 632859.1, 207363.2 ], [ 632835.4, 207275.0 ], [ 632775.9, 207206.7 ], [ 632736.9, 207122.2 ], [ 632742.4, 207075.9 ], [ 632774.6, 207014.4 ], [ 632746.6, 206898.4 ], [ 632745.4, 206846.7 ], [ 632757.7, 206803.2 ], [ 632802.4, 206765.4 ], [ 632838.4, 206750.7 ], [ 632903.6, 206739.7 ], [ 632950.6, 206723.4 ], [ 633027.4, 206675.7 ], [ 633057.1, 206668.7 ], [ 633136.1, 206670.7 ], [ 633150.4, 206663.9 ], [ 633219.9, 206609.2 ], [ 633237.4, 206553.2 ], [ 633253.9, 206533.9 ], [ 633272.9, 206528.1 ], [ 633326.1, 206541.7 ], [ 633378.6, 206526.6 ], [ 633398.76, 206511.172 ], [ 633433.9, 206433.3 ], [ 633444.68, 206374.66 ], [ 633458.1, 206358.7 ], [ 633550.5, 206324.6 ], [ 633609.5, 206332.1 ], [ 633614.1, 206324.3 ], [ 633604.8, 206317.3 ], [ 633509.83, 206302.682 ], [ 633516.3, 206292.5 ], [ 633580.8, 206286.3 ], [ 633590.8, 206266.5 ], [ 633584.6, 206211.7 ], [ 633622.5, 206046.5 ], [ 633618.0, 206008.5 ], [ 633625.8, 205991.1 ], [ 633663.9, 205960.1 ], [ 633730.3, 205942.4 ], [ 633759.7, 205937.6 ], [ 633869.89, 205951.488 ], [ 634144.789, 206053.932 ], [ 634196.5, 205995.9 ], [ 634260.7, 205975.4 ], [ 634321.3, 205924.4 ], [ 634348.6, 205916.8 ], [ 634392.8, 205920.3 ], [ 634427.8, 205952.3 ], [ 634453.3, 205963.6 ], [ 634510.8, 205973.9 ], [ 634591.6, 205998.6 ], [ 634632.6, 205998.3 ], [ 634710.6, 205984.5 ], [ 634825.3, 205946.1 ], [ 634883.6, 205944.6 ], [ 634930.6, 205963.4 ], [ 634984.1, 206004.4 ], [ 635005.5, 206025.0 ], [ 634994.3, 206037.8 ], [ 635108.8, 206123.0 ], [ 635113.8, 206110.0 ], [ 635134.5, 206149.5 ], [ 635165.0, 206175.8 ], [ 635232.4, 206183.1 ], [ 635272.8, 206174.1 ], [ 635305.1, 206155.2 ], [ 635346.3, 206195.6 ], [ 635390.9, 206216.2 ], [ 635491.4, 206279.5 ], [ 635540.1, 206288.2 ], [ 635605.8, 206266.8 ], [ 635671.6, 206290.6 ], [ 635761.3, 206336.2 ], [ 635835.8, 206356.4 ], [ 635892.8, 206392.7 ], [ 636007.8, 206422.9 ], [ 636095.1, 206468.2 ], [ 636122.3, 206495.9 ], [ 636129.1, 206472.7 ], [ 636155.8, 206486.9 ], [ 636168.1, 206508.7 ], [ 636173.3, 206504.4 ], [ 636178.3, 206492.2 ], [ 636160.0, 206458.8 ], [ 636217.8, 206490.2 ], [ 636229.3, 206515.2 ], [ 636264.8, 206508.9 ], [ 636307.6, 206490.5 ], [ 636336.8, 206498.3 ], [ 636389.6, 206456.8 ], [ 636432.0, 206436.7 ], [ 636457.3, 206453.8 ], [ 636500.2, 206524.4 ], [ 636522.4, 206535.4 ], [ 636546.7, 206524.5 ], [ 636565.4, 206504.1 ], [ 636596.9, 206485.4 ], [ 636630.3, 206491.6 ], [ 636651.2, 206542.4 ], [ 636672.7, 206539.8 ], [ 636726.7, 206553.8 ], [ 636726.3, 206538.5 ], [ 636714.2, 206516.9 ], [ 636706.9, 206415.9 ], [ 636737.5, 206364.6 ], [ 636725.5, 206357.1 ], [ 636655.2, 206360.1 ], [ 636639.3, 206347.6 ], [ 636572.2, 206283.4 ], [ 636541.6, 206209.3 ], [ 636562.3, 206075.3 ], [ 636560.0, 206052.1 ], [ 636539.3, 205964.6 ], [ 636534.1, 205866.2 ], [ 636486.7, 205779.1 ], [ 636470.3, 205730.3 ], [ 636497.1, 205597.4 ], [ 636467.4, 205485.5 ], [ 636465.2, 205402.8 ], [ 636447.2, 205294.0 ], [ 636438.9, 205124.1 ], [ 636429.3, 205093.5 ], [ 636408.1, 205063.6 ], [ 636390.0, 205019.5 ], [ 636373.2, 204930.7 ], [ 636375.8, 204796.1 ], [ 636340.8, 204721.0 ], [ 636336.4, 204691.4 ], [ 636345.4, 204562.0 ], [ 636328.9, 204434.0 ], [ 636307.9, 204375.9 ], [ 636273.8, 204313.4 ], [ 636213.8, 204106.9 ], [ 636176.2, 204047.4 ], [ 636153.0, 203966.0 ], [ 636159.2, 203907.0 ], [ 636198.8, 203771.8 ], [ 636196.8, 203730.6 ], [ 636148.3, 203462.8 ], [ 636204.6, 203316.1 ], [ 636199.9, 203271.5 ], [ 636093.1, 203079.2 ], [ 636082.8, 203006.8 ], [ 636072.4, 202837.8 ], [ 636065.1, 202817.6 ], [ 636045.9, 202793.7 ], [ 635955.5, 202727.3 ], [ 635898.6, 202657.6 ], [ 635869.5, 202579.7 ], [ 635846.9, 202448.2 ], [ 635826.4, 202369.5 ], [ 635791.5, 202296.7 ], [ 635705.7, 202199.3 ], [ 635599.3, 201931.8 ], [ 635568.8, 201785.3 ], [ 635570.8, 201729.6 ], [ 635590.4, 201705.9 ], [ 635648.3, 201659.1 ], [ 635688.9, 201724.5 ], [ 635723.3, 201824.0 ], [ 635760.1, 201894.2 ], [ 635771.8, 201933.5 ], [ 635773.4, 201975.8 ], [ 635781.1, 201987.8 ], [ 635906.3, 202075.3 ], [ 636061.3, 202135.5 ], [ 636138.9, 202157.8 ], [ 636224.8, 202123.3 ], [ 636247.4, 202123.7 ], [ 636334.3, 202165.8 ], [ 636428.6, 202185.6 ], [ 636530.2, 202235.2 ], [ 636605.4, 202254.1 ], [ 636648.1, 202272.4 ], [ 636752.6, 202335.0 ], [ 636852.0, 202435.4 ], [ 636886.4, 202496.8 ], [ 636917.0, 202528.9 ], [ 636960.7, 202556.6 ], [ 637030.6, 202586.8 ], [ 637090.6, 202637.0 ], [ 637157.1, 202673.1 ], [ 637172.6, 202742.6 ], [ 637194.7, 202783.3 ], [ 637293.1, 202833.3 ], [ 637471.4, 202967.1 ], [ 637511.1, 203004.0 ], [ 637534.8, 203038.5 ], [ 637544.1, 203085.2 ], [ 637570.6, 203132.5 ], [ 637685.8, 203249.1 ], [ 637733.5, 203280.2 ], [ 637769.9, 203363.1 ], [ 637825.1, 203399.4 ], [ 637838.3, 203416.0 ], [ 637861.1, 203490.7 ], [ 637907.8, 203583.4 ], [ 637958.7, 203741.498 ], [ 637978.5, 203775.2 ], [ 638013.4, 203814.799 ], [ 638018.4, 203928.5 ], [ 638039.3, 203993.5 ], [ 638041.6, 204062.0 ], [ 638068.7, 204123.9 ], [ 638093.4, 204265.1 ], [ 638129.7, 204334.0 ], [ 638141.7, 204375.2 ], [ 638162.5, 204474.4 ], [ 638164.3, 204554.9 ], [ 638190.0, 204633.7 ], [ 638240.4, 204748.0 ], [ 638245.6, 204777.2 ], [ 638240.4, 204827.0 ], [ 638266.8, 204900.8 ], [ 638292.8, 204938.1 ], [ 638396.2, 205012.6 ], [ 638431.4, 205050.6 ], [ 638471.9, 205061.8 ], [ 638498.7, 205098.9 ], [ 638538.572, 205103.77 ], [ 638579.6, 205140.3 ], [ 638612.2, 205200.3 ], [ 638625.4, 205199.2 ], [ 638599.6, 205128.0 ], [ 638599.7, 205117.7 ], [ 638613.469, 205103.213 ], [ 638606.938, 205080.622 ], [ 638556.7, 205016.0 ], [ 638512.0, 204934.7 ], [ 638518.0, 204908.4 ], [ 638545.2, 204879.9 ], [ 638533.4, 204840.6 ], [ 638532.6, 204798.6 ], [ 638550.5, 204748.9 ], [ 638564.4, 204741.9 ], [ 638570.8, 204758.9 ], [ 638570.4, 204811.5 ], [ 638584.6, 204855.4 ], [ 638608.3, 204876.4 ], [ 638614.2, 204892.0 ], [ 638609.9, 204939.4 ], [ 638624.4, 204943.4 ], [ 638648.9, 204891.0 ], [ 638645.8, 204869.5 ], [ 638631.4, 204844.1 ], [ 638636.7, 204803.4 ], [ 638650.1, 204768.0 ], [ 638686.1, 204733.2 ], [ 638686.4, 204693.4 ], [ 638669.6, 204666.1 ], [ 638609.9, 204627.7 ], [ 638608.4, 204616.9 ], [ 638656.2, 204619.7 ], [ 638719.4, 204675.4 ], [ 638726.8, 204694.2 ], [ 638727.5, 204799.2 ], [ 638739.2, 204881.4 ], [ 638755.2, 204919.0 ], [ 638813.6, 204969.6 ], [ 638842.3, 205024.7 ], [ 638910.8, 205087.7 ], [ 638932.5, 205129.4 ], [ 638950.6, 205190.1 ], [ 639003.5, 205240.7 ], [ 639097.7, 205500.0 ], [ 639098.8, 205565.9 ], [ 639143.7, 205655.2 ], [ 639246.4, 205962.0 ], [ 639248.8, 206000.0 ], [ 639238.5, 206060.0 ], [ 639228.0, 206072.7 ], [ 639158.5, 206111.7 ], [ 639106.9, 206171.6 ], [ 639093.0, 206179.2 ], [ 639093.3, 206202.9 ], [ 639064.5, 206231.0 ], [ 639053.8, 206250.8 ], [ 639025.2, 206343.2 ], [ 639013.2, 206403.3 ], [ 639012.0, 206451.3 ], [ 639016.8, 206503.0 ], [ 639026.8, 206524.0 ], [ 639059.2, 206563.3 ], [ 639172.5, 206668.2 ], [ 639185.4, 206688.5 ], [ 639206.2, 206745.5 ], [ 639208.2, 206785.9 ], [ 639194.3, 206854.6 ], [ 639196.3, 206898.7 ], [ 639189.0, 206928.8 ], [ 639192.7, 206987.1 ], [ 639210.4, 207033.9 ], [ 639304.1, 207129.1 ], [ 639300.3, 207157.6 ], [ 639287.4, 207184.9 ], [ 639225.8, 207179.7 ], [ 639159.1, 207162.0 ], [ 639093.3, 207104.6 ], [ 639072.0, 207104.4 ], [ 639023.7, 207118.1 ], [ 638994.6, 207115.4 ], [ 638989.8, 207122.9 ], [ 639010.7, 207131.3 ], [ 639060.9, 207126.9 ], [ 639086.5, 207133.2 ], [ 639117.5, 207192.5 ], [ 639174.4, 207240.7 ], [ 639231.0, 207259.8 ], [ 639242.2, 207270.6 ], [ 639264.0, 207326.6 ], [ 639278.8, 207331.8 ], [ 639382.0, 207325.7 ], [ 639419.7, 207336.7 ], [ 639428.3, 207360.7 ], [ 639421.2, 207365.5 ], [ 639361.6, 207345.4 ], [ 639334.9, 207348.9 ], [ 639265.3, 207396.0 ], [ 639251.2, 207397.7 ], [ 639232.9, 207385.6 ], [ 639186.6, 207317.9 ], [ 639134.6, 207328.4 ], [ 639136.1, 207340.4 ], [ 639169.6, 207346.4 ], [ 639186.3, 207410.9 ], [ 639229.9, 207465.1 ], [ 639248.6, 207466.6 ], [ 639315.5, 207444.6 ], [ 639333.4, 207467.2 ], [ 639327.8, 207500.0 ], [ 639323.1, 207485.4 ], [ 639311.3, 207475.7 ], [ 639294.3, 207475.7 ], [ 639229.1, 207503.6 ], [ 639217.8, 207502.4 ], [ 639149.8, 207430.0 ], [ 639125.7, 207422.0 ], [ 639085.9, 207506.1 ], [ 639060.2, 207535.7 ], [ 639053.0, 207594.3 ], [ 638942.6, 207492.0 ], [ 638922.5, 207449.9 ], [ 638906.8, 207387.4 ], [ 638840.4, 207249.1 ], [ 638818.5, 207163.9 ], [ 638812.0, 207150.9 ], [ 638801.4, 207148.9 ], [ 638765.0, 207248.6 ], [ 638750.6, 207415.1 ], [ 638738.1, 207447.6 ], [ 638745.6, 207484.6 ], [ 638735.9, 207527.9 ], [ 638737.4, 207576.4 ], [ 638725.5, 207587.2 ], [ 638671.888, 207577.642 ], [ 638662.178, 207590.083 ], [ 638664.454, 207599.794 ], [ 638727.8, 207622.8 ], [ 638748.5, 207640.1 ], [ 638760.8, 207680.6 ], [ 638774.3, 207693.1 ], [ 638804.0, 207700.3 ], [ 638825.5, 207716.3 ], [ 638867.3, 207775.1 ], [ 639081.5, 207977.3 ], [ 639088.5, 207991.4 ], [ 639085.8, 208051.9 ], [ 639093.0, 208064.6 ], [ 639125.8, 208097.6 ], [ 639147.3, 208137.7 ], [ 639219.0, 208178.7 ], [ 639270.3, 208261.1 ], [ 639273.0, 208297.6 ], [ 639253.3, 208340.1 ], [ 639249.3, 208358.1 ], [ 639253.8, 208366.4 ], [ 639266.9, 208383.8 ], [ 639287.4, 208391.8 ], [ 639340.5, 208384.9 ], [ 639366.8, 208392.9 ], [ 639382.3, 208404.9 ], [ 639395.7, 208427.7 ], [ 639419.5, 208495.7 ], [ 639454.5, 208532.5 ], [ 639466.3, 208600.0 ], [ 639498.5, 208694.8 ], [ 639514.8, 208725.8 ], [ 639551.8, 208764.2 ], [ 639666.5, 208806.2 ], [ 639724.1, 208842.5 ], [ 639748.9, 208876.0 ], [ 639773.8, 208943.8 ], [ 639873.8, 209031.5 ], [ 639913.0, 209102.8 ], [ 639973.1, 209111.2 ], [ 640001.4, 209142.1 ], [ 640013.88, 209165.842 ], [ 640088.0, 209205.6 ], [ 640122.9, 209237.7 ], [ 640180.8, 209252.9 ], [ 640244.6, 209242.5 ], [ 640280.1, 209282.3 ], [ 640292.4, 209313.2 ], [ 640298.8, 209355.8 ], [ 640325.7, 209410.2 ], [ 640345.3, 209435.8 ], [ 640462.713, 209510.401 ], [ 640604.0, 209616.1 ], [ 640666.5, 209700.8 ], [ 640755.2, 209775.5 ], [ 640841.9, 209836.7 ], [ 640902.9, 209842.6 ], [ 640940.8, 209826.1 ], [ 640981.7, 209790.1 ], [ 641003.3, 209786.2 ], [ 641020.0, 209798.8 ], [ 641027.6, 209844.2 ], [ 641063.0, 209908.9 ], [ 641125.7, 209983.3 ], [ 641196.3, 210037.6 ], [ 641224.8, 210069.8 ], [ 641238.9, 210076.9 ], [ 641321.1, 210069.2 ], [ 641349.6, 210072.8 ], [ 641438.2, 210100.5 ], [ 641463.318, 210119.11 ], [ 641419.9, 210131.4 ], [ 641381.4, 210108.0 ], [ 641339.6, 210100.8 ], [ 641225.4, 210147.2 ], [ 641176.3, 210155.3 ], [ 641159.5, 210142.7 ], [ 641157.9, 210128.5 ], [ 641144.9, 210119.7 ], [ 641133.8, 210195.2 ], [ 641125.9, 210207.1 ], [ 641064.1, 210270.7 ], [ 641007.8, 210317.3 ], [ 640982.9, 210359.8 ], [ 640932.3, 210380.6 ], [ 640927.2, 210392.5 ], [ 640914.5, 210393.3 ], [ 640913.8, 210440.7 ], [ 640890.2, 210506.7 ], [ 640860.6, 210538.9 ], [ 640815.3, 210554.0 ], [ 640815.7, 210615.3 ], [ 640805.6, 210652.9 ], [ 640807.2, 210686.0 ], [ 640773.4, 210713.7 ], [ 640724.2, 210789.9 ], [ 640719.2, 210815.1 ], [ 640726.3, 210875.6 ], [ 640705.7, 210981.5 ], [ 640660.5, 211039.2 ], [ 640621.3, 211133.0 ], [ 640592.5, 211135.1 ], [ 640556.7, 211157.7 ], [ 640508.2, 211215.8 ], [ 640512.1, 211291.8 ], [ 640506.5, 211344.1 ], [ 640522.7, 211463.0 ], [ 640475.4, 211550.7 ], [ 640481.9, 211612.2 ], [ 640443.4, 211703.2 ], [ 640443.4, 211757.0 ], [ 640456.4, 211807.7 ], [ 640378.5, 211885.3 ], [ 640364.7, 211953.7 ], [ 640366.9, 212025.3 ], [ 640337.9, 212089.3 ], [ 640339.7, 212152.1 ], [ 640374.9, 212315.2 ], [ 640364.9, 212400.9 ], [ 640334.5, 212462.8 ], [ 640328.0, 212524.0 ], [ 640349.2, 212670.7 ], [ 640380.2, 212748.8 ], [ 640380.635, 212788.541 ], [ 640351.1, 212818.0 ], [ 640337.9, 212872.7 ], [ 640324.8, 212888.8 ], [ 640290.2, 212906.9 ], [ 640241.4, 212919.4 ], [ 640229.9, 212933.9 ], [ 640231.7, 212947.1 ], [ 640286.2, 213031.1 ], [ 640286.4, 213041.9 ], [ 640252.9, 213087.4 ], [ 640278.5, 213185.3 ], [ 640276.3, 213220.1 ], [ 640194.7, 213334.7 ], [ 640173.2, 213351.2 ], [ 640042.9, 213336.2 ], [ 639998.6, 213375.2 ], [ 639862.1, 213371.0 ], [ 639830.9, 213384.3 ], [ 639822.5, 213399.0 ], [ 639816.4, 213448.2 ], [ 639780.5, 213507.7 ], [ 639752.7, 213607.4 ], [ 639682.2, 213680.7 ], [ 639661.4, 213735.8 ], [ 639603.9, 213753.9 ], [ 639599.0, 213769.1 ], [ 639604.5, 213822.1 ], [ 639599.1, 213839.4 ], [ 639548.2, 213922.5 ], [ 639517.6, 213933.3 ], [ 639479.2, 213918.1 ], [ 639459.7, 213906.1 ], [ 639399.4, 213839.5 ], [ 639389.4, 213835.7 ], [ 639358.4, 213846.0 ], [ 639306.9, 213897.4 ], [ 639205.9, 214038.7 ], [ 639205.6, 214117.4 ], [ 639191.2, 214175.7 ], [ 639230.2, 214357.5 ], [ 639238.2, 214376.8 ], [ 639320.1, 214477.1 ], [ 639321.6, 214502.3 ], [ 639304.5, 214530.1 ], [ 639182.1, 214665.6 ], [ 639233.3, 214708.2 ], [ 639289.0, 214778.9 ], [ 639316.8, 214836.9 ], [ 639360.8, 214975.9 ], [ 639410.6, 215059.1 ], [ 639431.086, 215047.15 ], [ 639533.1, 215244.4 ], [ 639561.1, 215315.4 ], [ 639580.6, 215338.7 ], [ 639630.5, 215371.0 ], [ 639686.8, 215387.5 ], [ 639782.4, 215402.4 ], [ 639882.8, 215540.5 ], [ 639952.3, 215613.6 ], [ 639973.6, 215667.1 ], [ 639993.3, 215692.6 ], [ 640008.3, 215699.6 ], [ 640045.5, 215702.3 ], [ 640081.9, 215688.7 ], [ 640095.8, 215697.2 ], [ 640095.5, 215755.6 ], [ 640077.5, 215802.6 ], [ 640076.0, 215832.4 ], [ 640093.1, 215874.1 ], [ 640127.6, 215915.0 ], [ 640160.3, 215919.6 ], [ 640203.8, 215913.1 ], [ 640327.3, 215884.6 ], [ 640350.8, 215858.3 ], [ 640369.8, 215785.3 ], [ 640412.4, 215718.5 ], [ 640420.3, 215716.8 ], [ 640433.9, 215730.0 ], [ 640449.1, 215777.2 ], [ 640531.7, 215802.7 ], [ 640644.7, 215884.4 ], [ 640697.8, 215939.6 ], [ 640709.2, 215939.3 ], [ 640712.2, 216005.7 ], [ 640753.5, 216029.0 ], [ 640749.6, 216111.4 ], [ 640849.0, 216331.1 ], [ 640962.3, 216463.8 ], [ 640991.6, 216486.3 ], [ 640985.7, 216514.9 ], [ 640992.4, 216527.7 ], [ 641030.8, 216559.8 ], [ 641092.2, 216670.7 ], [ 641087.3, 216715.8 ], [ 641096.4, 216748.2 ], [ 641096.4, 216776.4 ], [ 641039.7, 216928.2 ], [ 640999.2, 217006.2 ], [ 641000.9, 217046.2 ], [ 641043.9, 217098.7 ], [ 641182.4, 217179.4 ], [ 641292.9, 217261.5 ], [ 641429.7, 217409.5 ], [ 641445.4, 217434.4 ], [ 641482.4, 217526.3 ], [ 641516.7, 217561.1 ], [ 641599.5, 217614.0 ], [ 641662.7, 217645.7 ], [ 641753.2, 217662.9 ], [ 641788.5, 217662.9 ], [ 641820.3, 217653.7 ], [ 641872.6, 217623.8 ], [ 641893.0, 217623.2 ], [ 641995.7, 217696.2 ], [ 641997.8, 217731.2 ], [ 641922.0, 217810.0 ], [ 641928.3, 217836.5 ], [ 641964.8, 217874.4 ], [ 641972.4, 217891.1 ], [ 641989.1, 218083.1 ], [ 641974.5, 218253.5 ], [ 641991.5, 218262.8 ], [ 642076.0, 218215.4 ], [ 642093.4, 218219.2 ], [ 642089.8, 218326.1 ], [ 642110.4, 218555.8 ], [ 642089.2, 218645.6 ], [ 642065.3, 218848.5 ], [ 642080.2, 218990.2 ], [ 642076.06, 219007.678 ], [ 642046.9, 219009.5 ], [ 642036.8, 219027.57 ], [ 642038.232, 219057.195 ], [ 642103.1, 219070.0 ], [ 642328.8, 219226.5 ], [ 642367.6, 219174.7 ], [ 642396.3, 219155.0 ], [ 642470.913, 219055.822 ], [ 642498.1, 219068.1 ], [ 642571.5, 219085.6 ], [ 642649.724, 219125.121 ], [ 642653.799, 219137.818 ], [ 642664.85, 219140.561 ], [ 642676.606, 219131.469 ], [ 642716.251, 219130.021 ], [ 642754.614, 219106.546 ], [ 642798.2, 219103.7 ], [ 642834.4, 219088.7 ], [ 642886.9, 219079.9 ], [ 642931.9, 219042.4 ], [ 643001.9, 219021.2 ], [ 643025.7, 218996.2 ], [ 643073.2, 218968.7 ], [ 643079.4, 218969.9 ], [ 643043.2, 219017.4 ], [ 643033.2, 219049.9 ], [ 643011.9, 219067.4 ], [ 642988.2, 219074.9 ], [ 642979.4, 219107.4 ], [ 643005.7, 219127.4 ], [ 643010.7, 219148.7 ], [ 642984.4, 219163.7 ], [ 642958.2, 219168.7 ], [ 642936.9, 219189.9 ], [ 642926.9, 219211.2 ], [ 642896.9, 219233.7 ], [ 642946.9, 219241.2 ], [ 642976.9, 219228.7 ], [ 643000.7, 219207.4 ], [ 643028.2, 219202.4 ], [ 643084.4, 219207.4 ], [ 643099.4, 219202.4 ], [ 643126.9, 219182.4 ], [ 643147.231, 219146.2 ], [ 643172.2, 219156.9 ], [ 643296.6, 219238.9 ], [ 643333.7, 219254.1 ], [ 643349.0, 219254.4 ], [ 643351.7, 219262.9 ], [ 643367.5, 219262.0 ], [ 643401.6, 219213.0 ], [ 643424.6, 219198.9 ], [ 643570.1, 219159.2 ], [ 643651.9, 219162.0 ], [ 643757.7, 219182.3 ], [ 643778.2, 219178.7 ], [ 643817.9, 219164.8 ], [ 643915.0, 219099.6 ], [ 643987.5, 219073.7 ], [ 644008.5, 219073.5 ], [ 644032.6, 219086.5 ], [ 644078.8, 219133.2 ], [ 644103.4, 219141.6 ], [ 644128.1, 219127.6 ], [ 644156.813, 219095.22 ], [ 644166.3, 219092.625 ], [ 644192.7, 219146.1 ], [ 644210.6, 219201.8 ], [ 644302.1, 219299.6 ], [ 644334.0, 219276.1 ], [ 644404.2, 219264.1 ], [ 644463.7, 219271.8 ], [ 644594.7, 219318.6 ], [ 644683.2, 219307.7 ], [ 644787.4, 219333.9 ], [ 644821.4, 219316.7 ], [ 644880.1, 219302.6 ], [ 644894.4, 219287.5 ], [ 644898.2, 219239.0 ], [ 644933.4, 219197.0 ], [ 644983.9, 219176.7 ], [ 645136.8, 219155.8 ], [ 645187.7, 219139.7 ], [ 645263.0, 219056.0 ], [ 645304.6, 219025.7 ], [ 645372.0, 219009.0 ], [ 645393.9, 218995.0 ], [ 645507.8, 218892.6 ], [ 645573.0, 218852.7 ], [ 645632.0, 218798.5 ], [ 645682.7, 218732.9 ], [ 645817.8, 218617.8 ], [ 645899.9, 218576.3 ], [ 645975.5, 218559.0 ], [ 645970.7, 218477.7 ], [ 645979.1, 218445.3 ], [ 646016.8, 218370.9 ], [ 646016.7, 218310.0 ], [ 646033.2, 218316.8 ], [ 646216.5, 218295.1 ], [ 646262.05, 218295.773 ], [ 646376.435, 218306.251 ], [ 646687.9, 218368.5 ], [ 646680.7, 218336.1 ], [ 646683.5, 218292.3 ], [ 646709.3, 218206.2 ], [ 646777.8, 218072.6 ], [ 646888.4, 217921.2 ], [ 647103.8, 217824.4 ], [ 647144.9, 217784.0 ], [ 647200.7, 217752.5 ], [ 647223.6, 217721.7 ], [ 647256.8, 217644.1 ], [ 647272.2, 217628.2 ], [ 647332.3, 217591.3 ], [ 647423.3, 217515.6 ], [ 647545.3, 217488.1 ], [ 647668.3, 217428.2 ], [ 647696.9, 217379.9 ], [ 647726.4, 217351.3 ], [ 647754.3, 217336.6 ], [ 647779.0, 217332.3 ], [ 647809.3, 217301.1 ], [ 647831.9, 217291.0 ], [ 647846.6, 217272.7 ], [ 647908.1, 217239.2 ], [ 648074.9, 217083.9 ], [ 648150.7, 216977.6 ], [ 648153.591, 216940.454 ], [ 648392.0, 216831.2 ], [ 648423.0, 216830.7 ], [ 648466.0, 216841.2 ], [ 648510.8, 216830.4 ], [ 648577.0, 216838.2 ], [ 648598.8, 216855.0 ], [ 648659.5, 216848.7 ], [ 648714.4, 216864.8 ], [ 648766.8, 216860.7 ], [ 648835.0, 216827.6 ], [ 648902.5, 216826.3 ], [ 648962.5, 216787.1 ], [ 649036.8, 216753.4 ], [ 649101.0, 216704.5 ], [ 649137.9, 216697.6 ], [ 649156.8, 216719.2 ], [ 649229.5, 216772.7 ], [ 649239.0, 216787.2 ], [ 649251.8, 216838.2 ], [ 649313.8, 216898.9 ], [ 649288.703, 216975.922 ], [ 649337.6, 216979.2 ], [ 649384.6, 217000.1 ], [ 649439.6, 217013.9 ], [ 649488.7, 217014.2 ], [ 649475.826, 217109.288 ], [ 649502.3, 217109.9 ], [ 649651.9, 217145.5 ], [ 649681.4, 217162.8 ], [ 649709.7, 217134.8 ], [ 649758.8, 217127.5 ], [ 649767.7, 217116.6 ], [ 649904.5, 217058.4 ], [ 650262.1, 216983.2 ], [ 650260.2, 216968.9 ], [ 650251.8, 216961.3 ], [ 650382.6, 216962.2 ], [ 650786.1, 217209.0 ], [ 650901.3, 217247.2 ], [ 650935.1, 217282.4 ], [ 650977.3, 217309.4 ], [ 651055.3, 217424.5 ], [ 651085.3, 217446.0 ], [ 651121.3, 217497.9 ], [ 651121.9, 217508.8 ], [ 651165.6, 217590.1 ], [ 651156.8, 217633.3 ], [ 651160.1, 217640.3 ], [ 651208.1, 217659.8 ], [ 651230.1, 217684.7 ], [ 651229.6, 217718.7 ], [ 651213.2, 217773.7 ], [ 651280.2, 217772.9 ], [ 651321.7, 217744.6 ], [ 651362.9, 217701.9 ], [ 651459.2, 217622.6 ], [ 651497.3, 217606.2 ], [ 651534.1, 217602.7 ], [ 651628.7, 217619.8 ], [ 651806.2, 217606.0 ], [ 651821.5, 217618.2 ], [ 651838.0, 217620.2 ], [ 652104.5, 217606.6 ], [ 652459.4, 217621.3 ], [ 652753.0, 217616.7 ], [ 652845.0, 217649.2 ], [ 652888.7, 217689.7 ], [ 653005.0, 217772.0 ], [ 653021.0, 217775.0 ], [ 653178.2, 217753.3 ], [ 653191.2, 217766.7 ], [ 653189.0, 217898.0 ], [ 653200.6, 218015.6 ], [ 653193.291, 218035.678 ], [ 653208.9, 218051.1 ], [ 653248.4, 218116.4 ], [ 653298.3, 218264.8 ], [ 653328.2, 218297.2 ], [ 653402.077, 218350.515 ], [ 653450.6, 218338.2 ], [ 653635.2, 218258.3 ], [ 653657.7, 218245.4 ], [ 653704.0, 218200.926 ], [ 653735.8, 218161.9 ], [ 653740.9, 218139.8 ], [ 653735.5, 218119.9 ], [ 653691.5, 218068.2 ], [ 653695.4, 218041.5 ], [ 653781.3, 217964.0 ], [ 653841.1, 217921.0 ], [ 653920.255, 217836.206 ], [ 653945.8, 217855.2 ], [ 653942.2, 217873.2 ], [ 653947.5, 217875.5 ], [ 653984.4, 217858.8 ], [ 654006.11, 217817.882 ], [ 654065.6, 217875.5 ], [ 654080.7, 217882.8 ], [ 654145.1, 217879.7 ], [ 654413.5, 217706.0 ], [ 654445.8, 217676.5 ], [ 654461.2, 217622.3 ], [ 654470.4, 217530.8 ], [ 654480.7, 217490.0 ], [ 654503.1, 217461.6 ], [ 654539.2, 217430.9 ], [ 654572.2, 217339.3 ], [ 654655.6, 217224.2 ], [ 654751.0, 217108.5 ], [ 654769.853, 217057.292 ], [ 654813.6, 217000.4 ], [ 654827.4, 216922.4 ], [ 654855.2, 216880.7 ], [ 654843.5, 216788.7 ], [ 654860.7, 216713.4 ], [ 654954.8, 216574.0 ], [ 655052.8, 216408.6 ], [ 655188.1, 216237.2 ], [ 655202.8, 216210.9 ], [ 655239.1, 216088.3 ], [ 655290.9, 216069.4 ], [ 655587.1, 216067.2 ], [ 655634.0, 216041.0 ], [ 655769.0, 215925.2 ], [ 655889.0, 215789.7 ], [ 655920.3, 215789.4 ], [ 655969.7, 215537.8 ], [ 655972.3, 215351.9 ], [ 655983.3, 215315.4 ], [ 656084.3, 215134.6 ], [ 656094.8, 215128.2 ], [ 656136.2, 215124.0 ], [ 656178.0, 215107.5 ], [ 656242.0, 215077.9 ], [ 656253.3, 215066.5 ], [ 656383.8, 214563.3 ], [ 656397.8, 214536.8 ], [ 656546.9, 214457.0 ], [ 656569.8, 214430.8 ], [ 656601.6, 214449.8 ], [ 656638.3, 214510.3 ], [ 656680.0, 214545.3 ], [ 656700.0, 214552.8 ], [ 656735.5, 214553.5 ], [ 656787.0, 214546.8 ], [ 656811.0, 214533.0 ], [ 656823.8, 214492.5 ], [ 656827.2, 214110.0 ], [ 656801.3, 214062.0 ], [ 656626.2, 213836.0 ], [ 656616.2, 213781.7 ], [ 656630.3, 213759.8 ], [ 656779.2, 213736.7 ], [ 656797.7, 213724.4 ], [ 656843.8, 213661.8 ], [ 657047.769, 213578.885 ], [ 657144.2, 213546.2 ], [ 657169.9, 213549.4 ], [ 657261.4, 213609.7 ], [ 657316.7, 213638.5 ], [ 657402.662, 213649.431 ], [ 657478.7, 213623.5 ], [ 657547.907, 213542.646 ], [ 657628.4, 213558.2 ], [ 657731.0, 213555.0 ], [ 657862.9, 213583.1 ], [ 657901.1, 213596.3 ], [ 657988.1, 213644.7 ], [ 658024.1, 213645.3 ], [ 658099.7, 213628.3 ], [ 658181.3, 213641.8 ], [ 658374.957, 213659.669 ], [ 658552.698, 213640.687 ], [ 658612.2, 213650.6 ], [ 658660.3, 213648.5 ], [ 658735.6, 213612.8 ], [ 658810.3, 213613.8 ], [ 658930.4, 213583.8 ], [ 658999.216, 213580.208 ], [ 659066.0, 213543.2 ], [ 659118.2, 213505.7 ], [ 659149.4, 213491.8 ], [ 659237.28, 213472.762 ], [ 659256.7, 213455.6 ], [ 659256.5, 213434.0 ], [ 659112.754, 213256.208 ], [ 659140.0, 213238.4 ], [ 659219.7, 213212.4 ], [ 659272.5, 213187.8 ], [ 659314.6, 213157.0 ], [ 659444.2, 212944.5 ], [ 659499.4, 212867.3 ], [ 659771.3, 213010.2 ], [ 659888.3, 213091.2 ], [ 659907.3, 213118.5 ], [ 659954.0, 213231.0 ], [ 659977.5, 213265.8 ], [ 660043.6, 213328.1 ], [ 660058.5, 213317.5 ], [ 660097.8, 213314.3 ], [ 660179.0, 213342.5 ], [ 660254.5, 213322.3 ], [ 660342.7, 213287.3 ], [ 660458.3, 213125.7 ], [ 660648.7, 212995.4 ], [ 660682.1, 212940.7 ], [ 660741.5, 212800.2 ], [ 660905.4, 212554.7 ], [ 661029.951, 212350.8 ], [ 661320.2, 212582.9 ], [ 661496.8, 212779.5 ], [ 661618.0, 212837.2 ], [ 661625.5, 212850.0 ], [ 661624.5, 212949.5 ], [ 661650.8, 213020.0 ], [ 661655.8, 213057.2 ], [ 661650.5, 213106.7 ], [ 661655.3, 213130.0 ], [ 661736.8, 213299.3 ], [ 661751.3, 213324.5 ], [ 661818.3, 213379.8 ], [ 661837.5, 213404.3 ], [ 661961.057, 213593.282 ], [ 662108.5, 213745.3 ], [ 662508.7, 213957.9 ], [ 662568.3, 214008.1 ], [ 662580.3, 213999.1 ], [ 662626.2, 213998.1 ], [ 662692.6, 213959.7 ], [ 662750.0, 213973.1 ], [ 662794.5, 213997.6 ], [ 662812.0, 214039.6 ], [ 663140.2, 214317.9 ], [ 663168.5, 214322.4 ], [ 663232.2, 214296.9 ], [ 663331.5, 214275.0 ], [ 663408.2, 214242.6 ], [ 663421.3, 214245.1 ], [ 663474.5, 214280.1 ], [ 663489.5, 214282.0 ], [ 663503.5, 214272.9 ], [ 663560.839, 214356.497 ], [ 663571.919, 214353.96 ], [ 663584.688, 214360.613 ], [ 663587.594, 214375.543 ], [ 663617.4, 214420.2 ], [ 663632.8, 214480.7 ], [ 663635.2, 214550.5 ], [ 663699.7, 214543.0 ], [ 663736.4, 214530.0 ], [ 663720.0, 214506.6 ], [ 663700.0, 214454.1 ], [ 663684.0, 214371.1 ], [ 663681.4, 214312.6 ], [ 663699.4, 214089.1 ], [ 663717.547, 214045.941 ], [ 663813.8, 213951.9 ], [ 663831.1, 213944.9 ], [ 663885.6, 213900.1 ], [ 664115.0, 213673.1 ], [ 664168.712, 213633.107 ], [ 664213.597, 213586.591 ], [ 664235.2, 213498.7 ], [ 664275.2, 213385.5 ], [ 664426.232, 213288.64 ], [ 664439.0, 213290.5 ], [ 664416.6, 213272.6 ], [ 664329.226, 213261.982 ], [ 664320.228, 213255.665 ], [ 664302.066, 213272.799 ], [ 664292.732, 213271.399 ], [ 664288.8, 213190.1 ], [ 664262.53, 213158.596 ], [ 664258.2, 213131.1 ], [ 664253.2, 213008.9 ], [ 664273.742, 212905.222 ], [ 664359.6, 212731.8 ], [ 664394.8, 212619.4 ], [ 664410.9, 212389.8 ], [ 664418.441, 212354.86 ], [ 664429.972, 212347.788 ], [ 664438.825, 212221.4 ], [ 664446.9, 212184.4 ], [ 664442.645, 212138.462 ], [ 664459.7, 212107.4 ], [ 664461.1, 212077.2 ], [ 664480.7, 212037.7 ], [ 664530.9, 211975.2 ], [ 664580.8, 211928.4 ], [ 664630.0, 211902.3 ], [ 664716.9, 211875.5 ], [ 664816.109, 211862.235 ], [ 664827.6, 211876.7 ], [ 664833.257, 211899.39 ], [ 664845.089, 212020.614 ], [ 665063.6, 211939.9 ], [ 665237.3, 211898.0 ], [ 665409.5, 211801.2 ], [ 665375.8, 211743.9 ], [ 665411.503, 211707.774 ], [ 665612.6, 211598.8 ], [ 665643.838, 211594.064 ], [ 665649.468, 211580.231 ], [ 665660.487, 211572.579 ], [ 665735.61, 211581.428 ], [ 665743.875, 211565.437 ], [ 665738.4, 211532.0 ], [ 665742.4, 211412.2 ], [ 665736.022, 211400.502 ], [ 665822.2, 211441.0 ], [ 665849.0, 211445.3 ], [ 666146.691, 211481.466 ], [ 666149.5, 211466.2 ] ], [ [ 601918.2, 200909.6 ], [ 601965.8, 200878.5 ], [ 602018.8, 200827.5 ], [ 602206.673, 200597.034 ], [ 602218.925, 200595.917 ], [ 602416.8, 200791.8 ], [ 602661.9, 201010.2 ], [ 602944.1, 201277.7 ], [ 602930.2, 201301.7 ], [ 602897.2, 201309.9 ], [ 602888.7, 201337.6 ], [ 602791.2, 201437.9 ], [ 602766.0, 201476.4 ], [ 602791.7, 201532.4 ], [ 602872.0, 201780.6 ], [ 602867.2, 201804.2 ], [ 602758.2, 201840.0 ], [ 602689.7, 201845.0 ], [ 602652.7, 201854.6 ], [ 602570.2, 201894.6 ], [ 602527.0, 201940.6 ], [ 602480.6, 201958.6 ], [ 602465.013, 201954.927 ], [ 602480.4, 201990.6 ], [ 602502.1, 202085.8 ], [ 602529.0, 202254.4 ], [ 602589.201, 202369.685 ], [ 602509.4, 202399.4 ], [ 602498.2, 202428.6 ], [ 602424.8, 202455.7 ], [ 602403.57, 202486.875 ], [ 602147.981, 203154.932 ], [ 602212.356, 203175.815 ], [ 602287.4, 203179.7 ], [ 602459.9, 203213.4 ], [ 602552.045, 203214.4 ], [ 602561.102, 203219.412 ], [ 602778.6, 203218.5 ], [ 602898.6, 203202.7 ], [ 603136.762, 203150.388 ], [ 603157.0, 203161.3 ], [ 603146.4, 203273.2 ], [ 603314.0, 203197.5 ], [ 603403.2, 203146.0 ], [ 603420.0, 203145.7 ], [ 603426.7, 203153.2 ], [ 603441.1, 203192.3 ], [ 603498.0, 203134.3 ], [ 603527.5, 203120.3 ], [ 603600.0, 203096.6 ], [ 603760.2, 203059.6 ], [ 603820.5, 203025.2 ], [ 603923.2, 202932.2 ], [ 603997.7, 202888.2 ], [ 604157.7, 202806.2 ], [ 604201.7, 202793.2 ], [ 604286.7, 202784.7 ], [ 604409.3, 202726.0 ], [ 604338.1, 202670.0 ], [ 604331.1, 202661.1 ], [ 604334.3, 202633.7 ], [ 604387.7, 202627.5 ], [ 604436.2, 202652.3 ], [ 604467.4, 202683.0 ], [ 604550.1, 202667.9 ], [ 604641.1, 202687.5 ], [ 604673.1, 202682.5 ], [ 604700.6, 202670.0 ], [ 604787.4, 202592.0 ], [ 604813.3, 202594.3 ], [ 604885.0, 202472.2 ], [ 604925.0, 202353.1 ], [ 604944.7, 202314.3 ], [ 605012.9, 202237.3 ], [ 605139.5, 202141.2 ], [ 605206.1, 202031.9 ], [ 605242.7, 201931.4 ], [ 605269.7, 201894.5 ], [ 605366.1, 201790.6 ], [ 605455.5, 201669.4 ], [ 605551.5, 201573.4 ], [ 605622.5, 201514.1 ], [ 605665.6, 201506.6 ], [ 605681.6, 201487.0 ], [ 605730.1, 201330.2 ], [ 605745.9, 201295.5 ], [ 605796.1, 201220.5 ], [ 605816.7, 201162.0 ], [ 605827.8, 201147.7 ], [ 606044.4, 201012.2 ], [ 606076.4, 200985.7 ], [ 606084.4, 200951.5 ], [ 606082.6, 200860.9 ], [ 606180.5, 200882.2 ], [ 606280.2, 200861.9 ], [ 606443.2, 200860.7 ], [ 606506.6, 200837.4 ], [ 606482.5, 200804.4 ], [ 606475.5, 200769.6 ], [ 606477.1, 200449.5 ], [ 606566.9, 200401.7 ], [ 606622.2, 200348.6 ], [ 606723.4, 200296.0 ], [ 606725.2, 200289.2 ], [ 606870.6, 200239.8 ], [ 607194.6, 199963.5 ], [ 607367.9, 199780.9 ], [ 607409.3, 199749.3 ], [ 607505.0, 199699.2 ], [ 607536.1, 199783.0 ], [ 607723.9, 199896.5 ], [ 607792.5, 199863.1 ], [ 607907.7, 199908.2 ], [ 608033.5, 199971.9 ], [ 608065.5, 200038.1 ], [ 608076.8, 200087.1 ], [ 608078.0, 200155.6 ], [ 608062.1, 200223.5 ], [ 608126.5, 200287.2 ], [ 608221.2, 200346.9 ], [ 608250.0, 200352.9 ], [ 608339.7, 200348.2 ], [ 608379.247, 200357.572 ], [ 608454.0, 200506.7 ], [ 608501.2, 200531.2 ], [ 608624.4, 200517.3 ], [ 608645.0, 200511.8 ], [ 608668.2, 200468.2 ], [ 608682.5, 200459.2 ], [ 608710.5, 200454.0 ], [ 608718.0, 200459.7 ], [ 608718.2, 200470.7 ], [ 608699.0, 200507.0 ], [ 608699.9, 200536.7 ], [ 608718.1, 200593.8 ], [ 608838.7, 200726.6 ], [ 608905.1, 200816.0 ], [ 608946.8, 200837.5 ], [ 608974.5, 200839.5 ], [ 609063.7, 200796.2 ], [ 609194.8, 200762.6 ], [ 609288.4, 200774.5 ], [ 609373.2, 200760.2 ], [ 609506.5, 200792.0 ], [ 609540.3, 200805.5 ], [ 609526.0, 200883.0 ], [ 609526.2, 200938.2 ], [ 609568.5, 201056.5 ], [ 609585.2, 201079.7 ], [ 609594.4, 201084.7 ], [ 609638.2, 201079.0 ], [ 609753.0, 201122.4 ], [ 609812.5, 201156.7 ], [ 609849.7, 201170.5 ], [ 609913.0, 201212.7 ], [ 609930.5, 201215.2 ], [ 609994.2, 201165.2 ], [ 610003.5, 201141.5 ], [ 609996.0, 201099.0 ], [ 609961.2, 201048.2 ], [ 609965.7, 201015.2 ], [ 610017.2, 200956.5 ], [ 610092.9, 200815.4 ], [ 610205.5, 200801.0 ], [ 610304.2, 200769.7 ], [ 610478.3, 200663.7 ], [ 610493.4, 200648.5 ], [ 610506.0, 200606.3 ], [ 610509.2, 200517.6 ], [ 610496.1, 200453.2 ], [ 610476.1, 200397.3 ], [ 610476.3, 200354.1 ], [ 610489.9, 200290.2 ], [ 610484.2, 200200.2 ], [ 610490.0, 200177.2 ], [ 610552.5, 200115.4 ], [ 610652.8, 200035.8 ], [ 610732.7, 199988.7 ], [ 610796.7, 199964.0 ], [ 610997.7, 199907.0 ], [ 611199.7, 199882.1 ], [ 611211.7, 199931.5 ], [ 611208.2, 199971.7 ], [ 611215.5, 200019.7 ], [ 611256.2, 200120.7 ], [ 611218.2, 200239.2 ], [ 611203.8, 200268.0 ], [ 611169.2, 200298.5 ], [ 611155.0, 200350.9 ], [ 611159.2, 200396.6 ], [ 611180.7, 200440.4 ], [ 611228.3, 200496.3 ], [ 611283.9, 200587.3 ], [ 611344.5, 200638.8 ], [ 611382.7, 200693.1 ], [ 611389.0, 200708.6 ], [ 611387.2, 200868.6 ], [ 611396.3, 200963.5 ], [ 611451.6, 200958.0 ], [ 611587.6, 200924.0 ], [ 611768.1, 200932.5 ], [ 611883.2, 200915.7 ], [ 611915.2, 200898.2 ], [ 612031.9, 200781.2 ], [ 612166.3, 200689.8 ], [ 612172.2, 200700.2 ], [ 612192.0, 200711.7 ], [ 612226.7, 200699.0 ], [ 612311.1, 200604.7 ], [ 612378.5, 200552.9 ], [ 612404.1, 200550.3 ], [ 612421.6, 200559.6 ], [ 612465.5, 200601.2 ], [ 612500.5, 200652.0 ], [ 612495.5, 200600.0 ], [ 612453.8, 200479.6 ], [ 612438.2, 200376.2 ], [ 612436.4, 200332.5 ], [ 612455.2, 200287.0 ], [ 612551.3, 200283.0 ], [ 612625.0, 200272.2 ], [ 612891.4, 200351.2 ], [ 612905.9, 200352.5 ], [ 612926.9, 200344.2 ], [ 612942.1, 200322.5 ], [ 612947.2, 200301.8 ], [ 612912.0, 200175.2 ], [ 612885.9, 200120.6 ], [ 612795.4, 200008.2 ], [ 612767.5, 199958.1 ], [ 612773.1, 199925.9 ], [ 612828.6, 199869.7 ], [ 612841.9, 199838.7 ], [ 612835.6, 199777.7 ], [ 612810.9, 199719.2 ], [ 612761.4, 199620.0 ], [ 612716.4, 199562.5 ], [ 612624.9, 199504.7 ], [ 612554.2, 199477.5 ], [ 612493.5, 199443.9 ], [ 612422.5, 199431.0 ], [ 612396.9, 199385.3 ], [ 612330.4, 199343.0 ], [ 612306.1, 199254.5 ], [ 612327.6, 199195.7 ], [ 612343.4, 199172.0 ], [ 612470.7, 199149.7 ], [ 612637.9, 199137.6 ], [ 612991.0, 199318.8 ], [ 613038.8, 199325.3 ], [ 613206.9, 199498.3 ], [ 613275.5, 199590.7 ], [ 613381.1, 199633.6 ], [ 613560.7, 199773.0 ], [ 613610.7, 199782.0 ], [ 613647.5, 199767.7 ], [ 613791.9, 199679.6 ], [ 613758.1, 199656.9 ], [ 613732.4, 199597.9 ], [ 613732.2, 199568.2 ], [ 613698.6, 199450.9 ], [ 613697.1, 199412.1 ], [ 613711.5, 199394.9 ], [ 613724.0, 199422.4 ], [ 613768.5, 199481.6 ], [ 613809.3, 199475.2 ], [ 613880.9, 199500.9 ], [ 613900.8, 199501.4 ], [ 613946.9, 199473.1 ], [ 613991.4, 199480.9 ], [ 614021.4, 199478.1 ], [ 614076.8, 199424.6 ], [ 614157.3, 199445.5 ], [ 614171.3, 199466.2 ], [ 614151.2, 199526.4 ], [ 614159.4, 199547.6 ], [ 614181.1, 199565.9 ], [ 614188.6, 199561.6 ], [ 614190.4, 199524.1 ], [ 614244.9, 199448.1 ], [ 614289.1, 199432.4 ], [ 614302.6, 199419.6 ], [ 614298.1, 199396.4 ], [ 614265.6, 199356.6 ], [ 614265.9, 199313.1 ], [ 614280.2, 199298.0 ], [ 614306.8, 199302.7 ], [ 614337.6, 199344.3 ], [ 614428.9, 199379.6 ], [ 614446.6, 199378.6 ], [ 614486.4, 199354.558 ], [ 614482.5, 199329.1 ], [ 614435.6, 199239.1 ], [ 614331.9, 199059.5 ], [ 614324.7, 199025.1 ], [ 614335.5, 198902.0 ], [ 614375.7, 198805.6 ], [ 614446.9, 198726.9 ], [ 614451.9, 198757.1 ], [ 614467.9, 198767.4 ], [ 614558.3, 198751.6 ], [ 614587.6, 198757.6 ], [ 614810.9, 198906.4 ], [ 614873.6, 198962.6 ], [ 614901.1, 199002.6 ], [ 615180.9, 199130.5 ], [ 615256.9, 199198.9 ], [ 615380.3, 199285.2 ], [ 615390.1, 199299.4 ], [ 615392.6, 199331.1 ], [ 615361.9, 199422.4 ], [ 615363.4, 199468.4 ], [ 615386.4, 199543.6 ], [ 615401.7, 199629.3 ], [ 615442.4, 199735.2 ], [ 615461.9, 199810.0 ], [ 615495.9, 199875.4 ], [ 615581.4, 199848.1 ], [ 615657.9, 199761.0 ], [ 615734.7, 199743.6 ], [ 615890.2, 199671.6 ], [ 615901.415, 199672.902 ], [ 615922.0, 199645.0 ], [ 615939.5, 199588.2 ], [ 615953.1, 199579.8 ], [ 615973.2, 199622.1 ], [ 615989.7, 199631.9 ], [ 616115.805, 199634.717 ], [ 616153.6, 199611.0 ], [ 616256.0, 199575.5 ], [ 616402.6, 199468.8 ], [ 616424.3, 199463.2 ], [ 616538.0, 199461.3 ], [ 616674.3, 199423.8 ], [ 616769.0, 199388.1 ], [ 616887.8, 199292.1 ], [ 616999.2, 199253.4 ], [ 617125.4, 199260.9 ], [ 617206.2, 199279.4 ], [ 617267.7, 199281.9 ], [ 617353.5, 199275.1 ], [ 617427.0, 199286.6 ], [ 617473.5, 199282.7 ], [ 617561.0, 199237.0 ], [ 617662.5, 199232.0 ], [ 617781.5, 199255.0 ], [ 617854.7, 199281.7 ], [ 617903.2, 199314.2 ], [ 617967.1, 199315.8 ], [ 618039.0, 199306.2 ], [ 618105.5, 199285.2 ], [ 618140.4, 199254.0 ], [ 618159.9, 199217.6 ], [ 618184.7, 199196.7 ], [ 618264.2, 199164.7 ], [ 618321.7, 199156.2 ], [ 618393.7, 199156.4 ], [ 618480.0, 199123.7 ], [ 618557.7, 199105.0 ], [ 618737.7, 199110.4 ], [ 618782.5, 199088.7 ], [ 618821.9, 199080.7 ], [ 618910.7, 199124.7 ], [ 618979.7, 199121.0 ], [ 619143.7, 199134.6 ], [ 619234.1, 199116.8 ], [ 619275.5, 199091.3 ], [ 619354.0, 199097.0 ], [ 619464.9, 199084.7 ], [ 619568.4, 199057.6 ], [ 619617.2, 199028.5 ], [ 619610.2, 199088.2 ], [ 619617.1, 199113.9 ], [ 619654.5, 199139.0 ], [ 619703.2, 199138.2 ], [ 619750.5, 199092.5 ], [ 619782.0, 199045.7 ], [ 619782.0, 199022.2 ], [ 619763.7, 198950.0 ], [ 619773.6, 198899.3 ], [ 619833.8, 198851.4 ], [ 619847.0, 198782.5 ], [ 619855.794, 198768.047 ], [ 619876.9, 198755.2 ], [ 619930.4, 198752.8 ], [ 620021.7, 198774.3 ], [ 620070.0, 198792.5 ], [ 620160.1, 198847.0 ], [ 620218.0, 198865.8 ], [ 620267.9, 198894.9 ], [ 620339.0, 198906.6 ], [ 620323.9, 198877.4 ], [ 620261.4, 198818.5 ], [ 620243.2, 198789.0 ], [ 620239.9, 198723.4 ], [ 620180.4, 198685.8 ], [ 620145.4, 198646.1 ], [ 620146.2, 198613.6 ], [ 620163.6, 198570.5 ], [ 620162.4, 198545.5 ], [ 620181.8, 198540.6 ], [ 620187.6, 198545.7 ], [ 620175.9, 198592.7 ], [ 620187.1, 198619.7 ], [ 620275.8, 198613.8 ], [ 620320.6, 198622.8 ], [ 620330.1, 198643.4 ], [ 620341.5, 198723.4 ], [ 620350.0, 198737.3 ], [ 620385.0, 198744.5 ], [ 620428.2, 198671.9 ], [ 620460.2, 198652.2 ], [ 620500.6, 198647.7 ], [ 620516.5, 198655.7 ], [ 620537.4, 198692.9 ], [ 620549.6, 198694.4 ], [ 620602.6, 198652.8 ], [ 620658.6, 198622.7 ], [ 620688.3, 198619.1 ], [ 620705.0, 198622.9 ], [ 620717.4, 198639.3 ], [ 620727.5, 198691.6 ], [ 620723.8, 198719.7 ], [ 620737.7, 198731.5 ], [ 620753.1, 198730.9 ], [ 620774.1, 198703.2 ], [ 620924.2, 198595.3 ], [ 620962.1, 198557.0 ], [ 620965.6, 198546.7 ], [ 620960.8, 198539.3 ], [ 620951.3, 198538.5 ], [ 620920.0, 198571.8 ], [ 620847.5, 198614.3 ], [ 620829.9, 198616.7 ], [ 620826.2, 198598.4 ], [ 620846.2, 198563.0 ], [ 620845.1, 198541.3 ], [ 620788.5, 198532.3 ], [ 620738.9, 198514.7 ], [ 620718.4, 198499.7 ], [ 620716.7, 198487.2 ], [ 620724.7, 198477.8 ], [ 620803.6, 198505.7 ], [ 620833.9, 198506.0 ], [ 620955.6, 198468.2 ], [ 621089.2, 198439.8 ], [ 621148.3, 198420.0 ], [ 621197.0, 198391.5 ], [ 621246.4, 198374.8 ], [ 621404.1, 198266.7 ], [ 621559.3, 198178.2 ], [ 621591.9, 198125.4 ], [ 621641.4, 198096.7 ], [ 621701.3, 198049.1 ], [ 621779.3, 197956.5 ], [ 621806.1, 197935.8 ], [ 621891.6, 197899.7 ], [ 621921.1, 197865.2 ], [ 621933.4, 197859.0 ], [ 621993.8, 197848.3 ], [ 622015.0, 197837.7 ], [ 622060.2, 197779.1 ], [ 622125.4, 197752.4 ], [ 622260.4, 197647.0 ], [ 622286.8, 197614.7 ], [ 622470.9, 197544.7 ], [ 622537.1, 197549.7 ], [ 622557.9, 197540.7 ], [ 622594.0, 197575.1 ], [ 622709.8, 197606.6 ], [ 622754.0, 197670.3 ], [ 622749.6, 197742.6 ], [ 622760.7, 197772.5 ], [ 622845.3, 197894.7 ], [ 623155.2, 197729.4 ], [ 623176.7, 197736.4 ], [ 623254.8, 197788.7 ], [ 623327.3, 197827.6 ], [ 623392.3, 197879.5 ], [ 623493.9, 197928.8 ], [ 623645.9, 198026.6 ], [ 623694.1, 198046.6 ], [ 623807.0, 198078.4 ], [ 623974.5, 198156.7 ], [ 624032.0, 198203.3 ], [ 624080.9, 198299.4 ], [ 624176.9, 198408.4 ], [ 624275.5, 198466.4 ], [ 624411.9, 198585.8 ], [ 624454.1, 198608.4 ], [ 624642.0, 198612.1 ], [ 624814.2, 198568.2 ], [ 624914.4, 198559.6 ], [ 625012.9, 198564.7 ], [ 625127.1, 198545.5 ], [ 625175.9, 198549.1 ], [ 625274.5, 198577.8 ], [ 625318.0, 198620.1 ], [ 625411.6, 198671.9 ], [ 625508.5, 198692.4 ], [ 625535.6, 198687.5 ], [ 625569.4, 198691.6 ], [ 625623.9, 198772.0 ], [ 625706.013, 198797.598 ], [ 625791.0, 198760.4 ], [ 625843.2, 198759.9 ], [ 625915.26, 198773.33 ], [ 625919.932, 198763.695 ], [ 625934.4, 198761.2 ], [ 625941.537, 198770.703 ], [ 625940.216, 198781.326 ], [ 625951.1, 198787.4 ], [ 626198.6, 198863.4 ], [ 626235.5, 198906.1 ] ] ] } } -, -{ "type": "Feature", "properties": { "FID": 1.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 611200.4, 265702.1 ], [ 611141.1, 265545.9 ], [ 611139.3, 265505.4 ], [ 611149.6, 265485.1 ], [ 611173.6, 265464.4 ], [ 611234.8, 265455.7 ] ], [ [ 611200.4, 265702.1 ], [ 611269.9, 265670.2 ], [ 611370.1, 265846.2 ], [ 611156.0, 265965.9 ] ], [ [ 611200.4, 265702.1 ], [ 611047.5, 265777.2 ], [ 611156.0, 265965.9 ] ], [ [ 611234.8, 265455.7 ], [ 611273.1, 265451.9 ], [ 611328.3, 265427.9 ], [ 611360.6, 265373.6 ], [ 611408.6, 265348.9 ], [ 611416.6, 265301.1 ], [ 611406.6, 265265.6 ], [ 611391.6, 265246.0 ], [ 611281.8, 265146.6 ], [ 611231.1, 265069.6 ], [ 611202.2, 265008.9 ] ], [ [ 553364.5, 217241.9 ], [ 553395.0, 217210.2 ], [ 553297.0, 217116.7 ], [ 553551.3, 216848.3 ], [ 553829.1, 217082.2 ], [ 553955.7, 217170.7 ] ], [ [ 553364.5, 217241.9 ], [ 553334.1, 217273.0 ], [ 553313.2, 217253.9 ], [ 553238.3, 217301.1 ], [ 553007.0, 217372.1 ], [ 552923.5, 217415.9 ], [ 552804.5, 217432.9 ], [ 552764.8, 217475.1 ], [ 552751.8, 217469.1 ], [ 552748.3, 217452.5 ], [ 552735.5, 217456.2 ], [ 552704.8, 217473.2 ], [ 552642.4, 217531.3 ], [ 552581.8, 217542.5 ], [ 552534.0, 217563.7 ], [ 552494.5, 217601.7 ], [ 552463.8, 217611.2 ], [ 552426.5, 217635.7 ], [ 552390.8, 217684.0 ], [ 552351.4, 217702.0 ], [ 552266.7, 217665.2 ], [ 552199.2, 217582.2 ], [ 552170.2, 217574.2 ], [ 552119.2, 217597.2 ], [ 552100.9, 217594.7 ], [ 552091.7, 217589.7 ], [ 552064.2, 217540.7 ], [ 552022.7, 217519.7 ], [ 552009.9, 217529.0 ], [ 551995.084, 217617.821 ], [ 551980.654, 217638.251 ], [ 551963.45, 217638.839 ], [ 551929.2, 217724.0 ], [ 551878.5, 217808.2 ], [ 551842.666, 217830.417 ], [ 551835.217, 217818.435 ], [ 551844.1, 217793.4 ], [ 551841.896, 217772.498 ], [ 551815.218, 217731.805 ], [ 551787.857, 217710.357 ], [ 551764.482, 217724.31 ], [ 551749.79, 217744.23 ], [ 551732.479, 217801.602 ], [ 551720.5, 217820.6 ], [ 551694.609, 217827.636 ], [ 551615.9, 217829.1 ], [ 551574.2, 217808.7 ], [ 551524.5, 217798.1 ], [ 551502.4, 217784.1 ], [ 551484.1, 217759.7 ], [ 551478.1, 217739.6 ], [ 551489.4, 217701.8 ], [ 551417.7, 217636.5 ], [ 551360.0, 217551.6 ], [ 551376.584, 217492.233 ], [ 551356.719, 217492.223 ], [ 551316.141, 217475.831 ], [ 551308.6, 217432.3 ], [ 551234.4, 217384.3 ], [ 551217.4, 217355.1 ], [ 551165.0, 217337.4 ], [ 551127.2, 217336.8 ], [ 551102.1, 217324.2 ], [ 551088.3, 217325.0 ], [ 551080.6, 217314.3 ], [ 551084.8, 217299.8 ], [ 551079.248, 217280.203 ], [ 551075.1, 217285.5 ], [ 551055.9, 217282.5 ], [ 550499.3, 217115.6 ], [ 550479.8, 217168.5 ], [ 550476.5, 217197.7 ], [ 550487.5, 217228.7 ], [ 550511.3, 217253.0 ], [ 550514.0, 217273.9 ], [ 550504.3, 217273.9 ], [ 550433.5, 217221.4 ], [ 550352.0, 217190.1 ], [ 550305.5, 217154.9 ], [ 550234.3, 217117.9 ], [ 550134.1, 217027.4 ], [ 550116.0, 217023.0 ], [ 550099.9, 217029.4 ], [ 550066.3, 217099.7 ], [ 550063.3, 217124.7 ], [ 550090.5, 217195.2 ], [ 550111.0, 217227.2 ], [ 550131.5, 217244.5 ], [ 550131.0, 217257.5 ], [ 550121.8, 217259.0 ], [ 550094.8, 217239.2 ], [ 549970.1, 217190.1 ], [ 549934.0, 217189.8 ], [ 549893.2, 217173.5 ], [ 549870.8, 217173.6 ], [ 549842.9, 217219.7 ], [ 549841.9, 217231.5 ], [ 549875.1, 217348.2 ], [ 549834.0, 217343.5 ], [ 549792.0, 217351.1 ], [ 549752.8, 217372.3 ], [ 549771.5, 217408.1 ], [ 549722.0, 217416.3 ], [ 549711.5, 217428.3 ], [ 549749.0, 217460.1 ], [ 549751.3, 217471.8 ], [ 549744.8, 217486.8 ], [ 549716.0, 217493.8 ], [ 549660.6, 217479.4 ], [ 549672.3, 217489.4 ], [ 549684.9, 217522.3 ], [ 549717.0, 217557.8 ], [ 549727.8, 217599.6 ], [ 549748.8, 217644.1 ], [ 549575.0, 217555.2 ], [ 549547.1, 217550.8 ], [ 549443.4, 217554.0 ], [ 549374.1, 217544.2 ], [ 549261.9, 217483.7 ], [ 549071.6, 217544.7 ], [ 549020.1, 217546.2 ], [ 548965.4, 217564.5 ], [ 548949.7, 217563.7 ], [ 548836.9, 217511.7 ], [ 548827.1, 217510.4 ], [ 548809.1, 217521.9 ], [ 548809.1, 217536.9 ], [ 548860.1, 217572.2 ], [ 548910.4, 217634.9 ], [ 549041.1, 217725.4 ], [ 549162.4, 217823.9 ], [ 549229.7, 217927.1 ], [ 549272.4, 217960.2 ], [ 549318.4, 217975.2 ], [ 549346.0, 218010.0 ], [ 549371.0, 218030.2 ], [ 549377.478, 218046.273 ], [ 549374.0, 218056.2 ], [ 549340.2, 218059.2 ], [ 549296.0, 218043.5 ], [ 549255.2, 218060.5 ], [ 549221.0, 218058.5 ], [ 548925.5, 217984.1 ], [ 548756.7, 217953.6 ], [ 548476.8, 217862.7 ], [ 548317.3, 217798.8 ], [ 548056.4, 217634.1 ], [ 547656.2, 217510.6 ], [ 547608.1, 217484.8 ], [ 547536.9, 217434.3 ], [ 547481.7, 217388.1 ], [ 547441.5, 217339.1 ], [ 547409.5, 217262.9 ], [ 547406.5, 217231.9 ], [ 547415.7, 217204.6 ], [ 547438.3, 217179.1 ], [ 547509.7, 217136.9 ], [ 547557.5, 217066.1 ], [ 547584.2, 217042.1 ], [ 547611.2, 217030.6 ], [ 547650.3, 216989.5 ], [ 547667.0, 216956.9 ], [ 547699.7, 216818.1 ], [ 547759.5, 216717.6 ], [ 547767.2, 216682.7 ], [ 547766.0, 216651.6 ], [ 547757.7, 216624.6 ], [ 547731.7, 216597.1 ], [ 547726.5, 216582.4 ], [ 547729.7, 216496.9 ], [ 547715.0, 216462.9 ], [ 547704.2, 216404.7 ], [ 547682.0, 216373.4 ], [ 547655.2, 216313.6 ], [ 547636.7, 216241.1 ], [ 547596.7, 216205.4 ], [ 547573.2, 216161.3 ], [ 547565.0, 216094.9 ], [ 547576.3, 216025.1 ], [ 547573.5, 215986.2 ], [ 547565.7, 215965.1 ], [ 547528.7, 215917.5 ], [ 547483.3, 215908.6 ], [ 547460.0, 215883.5 ], [ 547405.7, 215859.5 ], [ 547387.0, 215809.7 ], [ 547332.5, 215756.8 ], [ 547299.5, 215740.4 ], [ 547291.8, 215708.7 ], [ 547281.7, 215696.9 ], [ 547245.8, 215690.7 ], [ 547202.8, 215666.1 ], [ 547168.6, 215666.3 ], [ 547146.8, 215633.7 ], [ 547109.3, 215619.2 ], [ 547090.8, 215600.2 ], [ 547043.8, 215580.2 ], [ 546969.6, 215532.1 ], [ 546866.5, 215512.5 ], [ 546810.3, 215522.5 ], [ 546740.1, 215480.7 ], [ 546721.9, 215475.9 ], [ 546692.3, 215484.9 ], [ 546652.1, 215478.8 ], [ 546621.3, 215489.2 ], [ 546605.5, 215486.7 ], [ 546581.5, 215477.5 ], [ 546545.6, 215443.9 ], [ 546503.6, 215449.9 ], [ 546480.6, 215480.5 ], [ 546468.5, 215486.0 ], [ 546301.0, 215464.1 ], [ 546226.1, 215469.4 ], [ 546161.8, 215462.5 ], [ 546108.8, 215489.5 ], [ 546057.8, 215505.3 ], [ 546023.5, 215550.0 ], [ 545961.5, 215555.8 ], [ 545932.7, 215566.7 ], [ 545864.1, 215614.9 ], [ 545806.2, 215587.7 ], [ 545788.8, 215565.4 ], [ 545729.5, 215520.3 ], [ 545684.1, 215498.2 ], [ 545663.3, 215475.5 ], [ 545603.2, 215445.5 ], [ 545520.7, 215460.8 ], [ 545476.9, 215458.8 ], [ 545449.2, 215465.9 ], [ 545401.8, 215449.8 ], [ 545317.3, 215441.0 ], [ 545231.8, 215410.5 ], [ 545090.5, 215383.5 ], [ 545052.0, 215348.0 ], [ 544996.3, 215274.3 ], [ 544973.4, 215254.1 ], [ 544932.4, 215231.9 ], [ 544861.0, 215222.3 ], [ 544843.1, 215213.6 ], [ 544724.8, 215077.8 ], [ 544700.9, 215058.0 ], [ 544657.1, 215050.5 ], [ 544608.6, 215056.0 ], [ 544585.9, 215049.8 ], [ 544574.9, 215038.5 ], [ 544572.6, 215023.0 ], [ 544606.1, 214954.0 ], [ 544628.4, 214941.3 ], [ 544728.1, 214932.5 ], [ 544740.9, 214911.1 ], [ 544734.4, 214888.8 ], [ 544716.6, 214874.9 ], [ 544661.6, 214854.5 ], [ 544612.1, 214845.0 ], [ 544574.6, 214849.1 ], [ 544496.1, 214808.3 ], [ 544431.6, 214791.0 ], [ 544360.9, 214786.0 ], [ 544330.4, 214768.3 ], [ 544328.9, 214752.8 ], [ 544334.9, 214748.3 ], [ 544463.6, 214724.5 ], [ 544511.6, 214699.5 ], [ 544566.8, 214662.4 ], [ 544606.0, 214612.8 ], [ 544613.1, 214575.3 ], [ 544629.1, 214552.8 ], [ 544642.9, 214507.3 ], [ 544639.7, 214408.0 ], [ 544625.5, 214374.1 ], [ 544572.1, 214291.8 ], [ 544550.1, 214276.0 ], [ 544515.6, 214227.8 ], [ 544490.6, 214155.5 ], [ 544492.6, 214144.3 ], [ 544554.3, 214060.1 ], [ 544660.6, 214015.0 ], [ 544688.9, 213984.0 ], [ 544675.6, 213971.0 ], [ 544647.6, 213963.5 ], [ 544591.9, 213933.0 ], [ 544541.4, 213891.3 ], [ 544497.0, 213817.7 ], [ 544429.6, 213729.5 ], [ 544291.4, 213607.3 ], [ 544205.2, 213493.8 ], [ 544182.7, 213487.8 ], [ 544158.7, 213450.4 ], [ 544142.7, 213404.3 ], [ 544143.728, 213381.936 ], [ 544181.472, 213328.683 ], [ 544199.808, 213287.936 ], [ 544222.591, 213267.763 ], [ 544215.4, 213256.3 ], [ 544242.5, 213239.6 ], [ 544250.8, 213253.3 ], [ 544296.8, 213224.5 ], [ 544286.7, 213208.5 ], [ 544320.2, 213165.3 ], [ 544349.9, 213138.0 ], [ 544395.9, 213116.8 ], [ 544418.2, 213116.5 ], [ 544432.7, 213133.3 ], [ 544440.9, 213209.3 ], [ 544486.1, 213221.5 ], [ 544501.2, 213234.0 ], [ 544531.9, 213310.6 ], [ 544525.6, 213328.0 ], [ 544546.3, 213352.2 ], [ 544555.5, 213347.2 ], [ 544587.0, 213256.7 ], [ 544709.9, 213155.0 ], [ 544807.109, 213012.98 ], [ 544819.4, 213015.3 ], [ 544895.1, 213085.9 ], [ 544944.2, 213102.5 ], [ 544950.2, 213076.5 ], [ 544932.4, 213030.5 ], [ 544937.0, 212962.0 ], [ 544962.5, 212925.2 ], [ 544976.8, 212876.0 ], [ 545012.0, 212846.0 ], [ 545055.0, 212844.0 ], [ 545062.0, 212832.0 ], [ 545037.8, 212800.5 ], [ 545020.5, 212789.5 ], [ 544988.0, 212782.5 ], [ 544983.0, 212775.8 ], [ 544981.0, 212757.8 ], [ 544992.3, 212725.8 ], [ 544988.3, 212651.0 ], [ 545055.9, 212626.9 ], [ 545081.0, 212594.8 ], [ 545091.209, 212563.847 ], [ 545101.554, 212558.218 ], [ 545127.021, 212523.074 ], [ 545177.445, 212485.892 ], [ 545223.365, 212427.672 ], [ 545264.9, 212405.0 ], [ 545368.8, 212368.0 ], [ 545421.0, 212326.4 ], [ 545502.4, 212289.2 ], [ 545597.4, 212258.8 ], [ 545660.3, 212255.3 ], [ 545678.8, 212237.3 ], [ 545685.4, 212205.3 ], [ 545855.9, 212245.5 ], [ 546086.7, 212333.8 ], [ 546214.4, 212401.8 ], [ 546420.2, 212466.0 ], [ 546453.7, 212484.3 ], [ 546655.9, 212563.0 ], [ 546699.7, 212587.3 ], [ 546766.7, 212639.0 ], [ 546782.7, 212642.5 ], [ 546787.0, 212626.2 ], [ 546703.8, 212511.6 ], [ 546594.9, 212378.1 ], [ 546577.9, 212340.5 ], [ 546567.2, 212295.5 ], [ 546499.6, 212209.4 ], [ 546485.1, 212167.7 ], [ 546489.2, 212101.3 ], [ 546497.2, 212078.6 ], [ 546529.8, 212049.0 ], [ 546659.7, 212021.5 ], [ 546720.9, 211992.3 ], [ 546816.4, 211982.0 ], [ 546868.4, 212013.0 ], [ 546905.7, 212018.5 ], [ 546917.4, 212007.3 ], [ 546926.2, 211983.0 ], [ 546954.7, 211965.5 ], [ 547037.9, 211976.0 ], [ 547065.2, 211973.8 ], [ 547068.2, 211963.3 ], [ 547061.7, 211958.8 ], [ 546960.4, 211922.6 ], [ 546870.2, 211918.8 ], [ 546846.7, 211910.8 ], [ 546849.4, 211900.0 ], [ 546918.5, 211901.0 ], [ 546962.5, 211884.5 ], [ 546988.3, 211882.0 ], [ 547160.4, 211936.0 ], [ 547251.0, 211940.8 ], [ 547334.0, 211964.8 ], [ 547456.7, 212034.3 ], [ 547464.8, 212049.5 ], [ 547526.9, 211967.5 ], [ 547726.9, 212126.8 ], [ 547762.5, 212081.0 ], [ 547777.2, 212101.2 ], [ 547809.9, 212180.9 ], [ 547870.7, 212266.7 ], [ 547905.2, 212292.9 ], [ 547960.1, 212305.729 ], [ 548170.6, 212441.0 ], [ 548444.7, 212551.8 ], [ 548489.2, 212525.3 ], [ 548631.2, 212401.8 ], [ 548641.1, 212380.0 ], [ 548856.8, 212068.8 ], [ 548914.7, 211953.0 ], [ 548959.1, 211818.8 ], [ 548981.1, 211772.4 ], [ 549016.9, 211741.4 ], [ 549122.8, 211678.4 ], [ 549145.2, 211656.1 ], [ 549158.1, 211629.3 ], [ 549157.5, 211597.9 ], [ 549144.7, 211568.9 ], [ 549045.5, 211427.8 ], [ 549039.4, 211401.6 ], [ 549037.6, 211309.9 ], [ 549030.019, 211298.694 ], [ 548985.3, 211301.2 ], [ 548971.1, 211286.4 ], [ 548986.8, 211230.9 ], [ 548966.6, 211215.7 ], [ 548968.1, 211182.7 ], [ 548961.1, 211166.9 ], [ 548942.1, 211161.4 ], [ 548910.6, 211185.9 ], [ 548912.6, 211162.4 ], [ 548906.3, 211157.4 ], [ 548875.8, 211193.4 ], [ 548858.6, 211229.4 ], [ 548849.1, 211230.4 ], [ 548837.8, 211218.9 ], [ 548829.8, 211222.9 ], [ 548828.1, 211238.7 ], [ 548806.5, 211231.6 ], [ 548820.1, 211219.3 ], [ 548845.6, 211164.5 ], [ 548953.3, 211053.5 ], [ 549009.3, 211025.2 ], [ 549081.6, 211007.2 ], [ 549092.6, 210996.4 ], [ 549045.8, 211005.5 ], [ 548982.6, 210995.0 ], [ 548899.1, 210958.0 ], [ 548826.0, 210907.9 ], [ 548846.6, 210852.1 ], [ 548848.4, 210827.4 ], [ 548803.0, 210701.0 ], [ 548788.6, 210615.3 ], [ 548787.3, 210573.6 ], [ 548808.6, 210492.4 ], [ 548800.3, 210441.1 ], [ 548735.1, 210365.5 ], [ 548688.3, 210328.1 ], [ 548608.6, 210245.6 ], [ 548592.8, 210218.0 ], [ 548561.2, 210089.4 ], [ 548533.3, 210049.6 ], [ 548251.2, 209883.5 ], [ 548151.5, 209809.7 ], [ 548092.2, 209748.8 ], [ 548023.2, 209692.6 ], [ 548011.3, 209652.8 ], [ 547970.1, 209579.9 ], [ 547920.2, 209466.4 ], [ 547902.6, 209378.2 ], [ 547873.3, 209328.0 ], [ 547872.3, 209290.1 ], [ 547851.5, 209244.4 ], [ 547831.0, 209223.9 ], [ 547739.3, 209164.9 ], [ 547642.5, 209038.6 ], [ 547582.8, 209008.6 ], [ 547551.7, 208981.8 ], [ 547731.8, 208969.8 ], [ 547781.7, 208962.6 ], [ 547833.5, 208942.3 ], [ 547831.7, 208932.8 ], [ 547818.0, 208924.3 ], [ 547746.0, 208890.9 ], [ 547532.7, 208772.8 ], [ 547467.5, 208695.8 ], [ 547472.0, 208677.1 ], [ 547554.1, 208592.5 ], [ 547637.1, 208555.0 ], [ 547748.7, 208526.4 ], [ 547753.5, 208504.2 ], [ 547713.1, 208421.1 ], [ 547700.4, 208414.3 ], [ 547661.8, 208416.1 ], [ 547603.2, 208403.0 ], [ 547538.5, 208353.0 ], [ 547512.2, 208296.6 ], [ 547508.9, 208181.4 ], [ 547439.8, 208099.9 ], [ 547421.6, 208068.1 ], [ 547404.7, 208055.7 ], [ 547317.1, 208020.7 ], [ 547259.6, 208024.7 ], [ 547227.9, 208012.9 ], [ 547210.6, 208001.4 ], [ 547185.6, 207950.2 ], [ 547127.0, 207915.4 ], [ 547059.4, 207885.9 ], [ 547055.0, 207852.1 ], [ 547027.3, 207864.8 ], [ 547004.3, 207866.8 ], [ 546946.3, 207852.0 ], [ 546894.0, 207815.3 ], [ 546819.4, 207747.1 ], [ 546754.4, 207674.3 ], [ 546623.5, 207505.3 ], [ 546609.5, 207474.3 ], [ 546601.0, 207411.3 ], [ 546582.8, 207424.3 ], [ 546575.3, 207459.8 ], [ 546562.2, 207457.9 ], [ 546537.4, 207306.8 ], [ 546517.5, 207225.8 ], [ 546506.5, 207213.0 ], [ 546495.8, 207204.0 ], [ 546470.3, 207208.0 ], [ 546439.3, 207288.3 ], [ 546408.8, 207282.0 ], [ 546386.7, 207265.1 ], [ 546308.9, 207134.4 ], [ 546043.0, 206763.2 ], [ 545971.3, 206529.0 ], [ 545904.9, 206438.1 ], [ 545898.9, 206421.7 ], [ 545897.6, 206330.0 ], [ 545903.6, 206284.3 ], [ 545895.1, 206249.8 ], [ 545898.8, 206217.3 ], [ 545870.6, 206149.8 ], [ 545852.3, 206039.5 ], [ 545830.6, 206000.0 ], [ 545793.7, 205973.2 ], [ 545764.1, 205960.6 ], [ 545710.2, 205951.0 ], [ 545652.2, 205952.6 ], [ 545580.7, 205930.5 ], [ 545529.9, 205927.9 ], [ 545409.7, 205853.6 ], [ 545220.2, 205796.7 ], [ 545107.6, 205742.3 ], [ 544996.6, 205706.7 ], [ 544929.6, 205758.2 ], [ 544886.5, 205798.9 ], [ 544876.9, 205817.2 ], [ 544830.6, 205819.0 ], [ 544790.8, 205833.3 ], [ 544763.5, 205824.8 ], [ 544676.3, 205778.9 ], [ 544574.2, 205747.3 ], [ 544563.1, 205730.1 ], [ 544551.2, 205679.3 ], [ 544535.5, 205656.4 ], [ 544483.6, 205619.4 ], [ 544472.3, 205599.7 ], [ 544456.6, 205544.2 ], [ 544416.2, 205314.7 ], [ 544400.1, 205277.1 ], [ 544357.2, 205250.9 ], [ 544038.3, 205107.9 ], [ 543943.1, 205042.5 ], [ 543770.3, 204864.4 ], [ 543628.5, 204609.4 ], [ 543486.5, 204498.3 ], [ 543478.9, 204472.1 ], [ 543481.9, 204441.6 ], [ 543474.9, 204427.3 ], [ 543366.6, 204383.8 ], [ 543373.9, 204377.8 ], [ 543465.2, 204361.6 ], [ 543364.9, 204241.3 ], [ 543388.9, 204208.1 ], [ 543395.2, 204150.3 ], [ 543403.3, 204132.3 ], [ 543317.6, 204116.4 ], [ 543215.2, 204127.0 ], [ 543215.5, 204044.8 ], [ 543286.9, 204042.7 ], [ 543312.6, 204026.1 ], [ 543381.1, 203916.2 ], [ 543436.7, 203853.9 ], [ 543456.9, 203837.0 ], [ 543521.9, 203816.0 ], [ 543685.0, 203666.1 ], [ 543825.3, 203462.1 ], [ 543724.1, 203411.9 ], [ 543619.3, 203398.8 ], [ 543349.8, 203288.5 ], [ 543009.8, 203083.1 ], [ 542913.6, 203041.4 ], [ 542822.5, 202956.9 ], [ 542675.2, 202789.5 ], [ 542531.9, 202651.1 ], [ 542356.5, 202542.7 ], [ 542258.5, 202503.5 ], [ 542172.8, 202451.6 ], [ 542120.8, 202434.1 ], [ 542111.5, 202416.9 ], [ 542003.1, 202365.5 ], [ 541852.7, 202305.8 ], [ 541623.2, 202226.2 ], [ 541520.8, 202204.6 ], [ 541417.5, 202193.1 ], [ 541291.9, 202148.0 ], [ 541191.1, 202131.9 ], [ 541128.9, 202102.6 ], [ 541061.1, 202098.1 ], [ 541039.4, 202085.0 ], [ 541010.3, 202039.8 ], [ 540957.1, 202032.3 ], [ 540883.7, 201992.7 ], [ 540871.5, 201958.9 ], [ 540861.1, 201953.0 ], [ 540812.6, 201951.2 ], [ 540778.2, 201960.7 ], [ 540736.8, 202014.4 ], [ 540724.0, 202018.3 ], [ 540680.4, 202004.3 ], [ 540636.2, 201978.8 ], [ 540568.4, 201987.7 ], [ 540454.5, 202028.5 ], [ 540488.3, 201987.2 ], [ 540399.3, 201821.9 ], [ 540389.7, 201808.7 ], [ 540322.0, 201760.7 ], [ 540300.2, 201725.3 ], [ 540298.7, 201702.0 ], [ 540306.8, 201686.9 ], [ 540331.0, 201670.5 ], [ 540330.8, 201654.3 ], [ 540291.6, 201573.9 ], [ 540254.3, 201519.0 ], [ 540264.3, 201486.8 ], [ 540260.5, 201475.5 ], [ 540198.0, 201417.5 ], [ 540193.0, 201398.0 ], [ 540203.2, 201366.1 ], [ 540202.3, 201332.0 ], [ 540182.6, 201252.3 ], [ 540117.5, 201183.5 ], [ 540090.8, 201203.5 ], [ 540068.8, 201204.0 ], [ 540009.3, 201041.3 ], [ 539973.5, 200995.3 ], [ 539940.0, 200975.8 ], [ 539797.0, 200946.6 ], [ 539762.8, 200929.1 ], [ 539693.2, 200876.9 ], [ 539736.0, 200889.0 ], [ 539741.0, 200880.3 ], [ 539719.4, 200843.3 ], [ 539670.3, 200793.6 ], [ 539648.9, 200735.1 ], [ 539633.3, 200710.1 ], [ 539590.3, 200675.9 ], [ 539489.2, 200558.0 ], [ 539453.9, 200531.9 ], [ 539430.8, 200493.3 ], [ 539426.5, 200452.0 ], [ 539414.6, 200436.7 ], [ 539329.1, 200370.3 ], [ 539175.9, 200168.5 ], [ 539148.8, 200108.0 ], [ 539148.5, 200090.0 ], [ 539180.8, 200061.5 ], [ 539164.9, 199991.2 ], [ 539185.2, 199929.2 ], [ 539190.4, 199877.6 ], [ 539184.7, 199862.3 ], [ 539115.9, 199774.1 ], [ 539122.0, 199657.4 ], [ 539094.1, 199599.5 ], [ 539091.5, 199533.7 ], [ 539071.2, 199476.2 ], [ 539081.4, 199413.6 ], [ 539049.5, 199366.7 ], [ 538959.1, 199276.2 ], [ 538914.0, 199193.4 ], [ 538906.3, 199115.6 ], [ 538888.1, 199071.2 ], [ 538853.0, 198881.4 ], [ 538849.7, 198814.5 ], [ 538830.2, 198781.7 ], [ 538794.2, 198754.8 ], [ 538653.5, 198675.0 ], [ 538624.8, 198615.6 ], [ 538559.0, 198580.2 ], [ 538537.9, 198556.2 ], [ 538523.8, 198525.9 ], [ 538525.4, 198491.7 ], [ 538581.8, 198386.5 ], [ 538605.1, 198372.8 ], [ 538754.2, 198342.1 ], [ 538824.9, 198358.4 ], [ 538871.8, 198359.1 ], [ 538990.5, 198343.8 ], [ 539000.2, 198335.8 ], [ 538998.2, 198326.2 ], [ 538986.5, 198319.3 ], [ 538911.9, 198305.8 ], [ 538822.2, 198265.7 ], [ 538751.7, 198201.8 ], [ 538643.6, 198126.0 ], [ 538530.1, 198084.0 ], [ 538476.1, 198090.3 ], [ 538429.5, 198085.1 ], [ 538411.2, 198080.1 ], [ 538405.1, 198065.2 ], [ 538527.7, 197974.8 ], [ 538579.2, 197972.5 ], [ 538612.2, 197983.0 ], [ 538631.1, 197967.1 ], [ 538505.9, 197890.1 ], [ 538532.4, 197855.1 ], [ 538601.8, 197706.5 ], [ 538617.9, 197579.7 ], [ 538624.9, 197403.4 ], [ 538650.4, 197339.2 ], [ 538685.2, 197289.4 ], [ 538707.4, 197244.9 ], [ 538711.0, 197206.8 ], [ 538729.1, 197191.3 ], [ 538765.5, 197201.7 ], [ 538791.3, 197227.4 ], [ 538819.4, 197390.7 ], [ 538844.7, 197449.9 ], [ 538885.9, 197499.1 ], [ 539178.9, 197737.6 ], [ 539230.98, 197802.977 ], [ 539249.8, 197814.5 ], [ 539297.3, 197865.4 ], [ 539412.1, 197939.7 ], [ 539497.3, 198034.9 ], [ 539530.3, 198063.1 ], [ 539665.5, 198150.9 ], [ 539748.7, 198164.9 ], [ 539879.9, 198169.0 ], [ 539929.4, 198181.9 ], [ 539998.2, 198189.8 ], [ 540062.137, 198176.394 ], [ 540058.5, 198138.1 ], [ 540127.3, 198130.9 ], [ 540170.7, 198134.2 ], [ 540209.3, 198142.3 ], [ 540325.8, 198187.5 ], [ 540479.9, 198207.4 ], [ 540539.0, 198207.2 ], [ 540639.3, 198241.2 ], [ 540758.2, 198306.6 ], [ 540805.6, 198324.6 ], [ 540914.7, 198329.4 ], [ 541073.4, 198317.1 ], [ 541140.0, 198323.2 ], [ 541224.8, 198347.7 ], [ 541300.0, 198390.9 ], [ 541390.1, 198455.1 ], [ 541436.6, 198497.4 ], [ 541469.9, 198542.0 ], [ 541506.2, 198625.7 ], [ 541569.2, 198637.9 ], [ 541573.6, 198695.3 ], [ 541582.4, 198710.2 ], [ 541684.3, 198785.8 ], [ 541692.4, 198800.7 ], [ 541707.9, 198791.9 ], [ 541763.4, 198808.2 ], [ 541813.4, 198805.9 ], [ 541886.4, 198781.9 ], [ 541986.2, 198735.1 ], [ 541965.2, 198647.8 ], [ 542002.5, 198554.7 ], [ 542018.4, 198490.1 ], [ 542021.6, 198452.3 ], [ 542010.7, 198334.7 ], [ 542016.9, 198296.0 ], [ 542050.5, 198262.1 ], [ 542083.5, 198249.3 ], [ 542158.2, 198260.3 ], [ 542230.5, 198248.8 ], [ 542275.8, 198264.3 ], [ 542365.5, 198328.4 ], [ 542432.4, 198344.5 ], [ 542500.6, 198387.5 ], [ 542551.6, 198380.8 ], [ 542606.2, 198414.3 ], [ 542679.6, 198403.6 ], [ 542730.5, 198417.4 ], [ 542750.7, 198413.4 ], [ 542773.9, 198388.8 ], [ 542839.9, 198384.3 ], [ 542869.0, 198386.8 ], [ 543019.1, 198432.8 ], [ 543065.4, 198428.1 ], [ 543168.0, 198503.9 ], [ 543201.8, 198502.8 ], [ 543330.7, 198550.9 ], [ 543384.1, 198560.1 ], [ 543566.4, 198617.4 ], [ 543691.2, 198669.6 ], [ 543754.4, 198711.5 ], [ 543810.9, 198722.6 ], [ 543863.0, 198747.9 ], [ 543957.0, 198758.4 ], [ 544097.4, 198854.4 ], [ 544118.1, 198874.4 ], [ 544133.9, 198876.4 ], [ 544144.9, 198863.4 ], [ 544143.4, 198851.6 ], [ 544096.3, 198834.5 ], [ 544065.1, 198786.9 ], [ 544011.9, 198726.8 ], [ 543973.6, 198703.2 ], [ 543962.0, 198687.5 ], [ 543843.2, 198596.5 ], [ 543788.5, 198560.9 ], [ 543736.1, 198540.3 ], [ 543676.8, 198504.2 ], [ 543655.0, 198479.5 ], [ 543480.0, 198357.3 ], [ 543444.7, 198311.9 ], [ 543305.2, 198199.5 ], [ 543047.8, 198036.5 ], [ 542986.6, 197988.7 ], [ 542942.5, 197966.9 ], [ 542889.5, 197916.5 ], [ 542746.9, 197852.8 ], [ 542486.7, 197669.3 ], [ 542397.6, 197622.8 ], [ 542306.8, 197550.6 ], [ 542152.1, 197450.2 ], [ 542065.2, 197363.5 ], [ 542007.9, 197322.3 ], [ 541890.6, 197267.4 ], [ 541872.9, 197248.0 ], [ 541858.3, 197173.8 ], [ 541880.1, 197156.7 ], [ 541942.3, 197160.6 ], [ 542100.2, 197209.7 ], [ 542206.4, 197271.4 ], [ 542265.6, 197285.4 ], [ 542296.3, 197300.9 ], [ 542380.6, 197362.3 ], [ 542414.0, 197374.4 ], [ 542460.3, 197407.6 ], [ 542534.3, 197445.5 ], [ 542614.5, 197437.1 ], [ 542673.5, 197406.8 ], [ 542749.6, 197429.4 ], [ 542790.6, 197469.6 ], [ 542840.574, 197491.363 ], [ 542941.0, 197491.6 ], [ 542737.6, 197321.8 ], [ 542711.9, 197290.8 ], [ 542704.3, 197266.0 ], [ 542701.8, 197246.9 ], [ 542728.0, 197018.7 ], [ 542740.1, 196996.4 ], [ 542804.1, 196957.4 ], [ 542902.0, 196950.2 ], [ 543065.0, 196970.9 ], [ 543120.5, 196936.6 ], [ 543198.6, 197019.8 ], [ 543249.4, 197048.6 ], [ 543292.4, 197047.6 ], [ 543362.5, 197013.5 ], [ 543415.1, 197007.3 ], [ 543447.6, 197015.1 ], [ 543526.2, 197085.8 ], [ 543575.8, 197104.6 ], [ 543633.0, 197098.3 ], [ 543653.5, 197079.3 ], [ 543665.2, 197085.3 ], [ 543850.7, 197074.3 ], [ 543880.0, 197081.3 ], [ 543908.1, 197096.6 ], [ 543953.7, 197134.8 ], [ 544118.2, 197394.3 ], [ 544175.7, 197456.8 ], [ 544207.5, 197472.7 ], [ 544233.6, 197497.9 ], [ 544244.9, 197523.9 ], [ 544229.6, 197590.4 ], [ 544231.1, 197636.0 ], [ 544279.7, 197712.1 ], [ 544301.2, 197760.6 ], [ 544333.8, 197795.3 ], [ 544356.9, 197804.1 ], [ 544414.4, 197806.1 ], [ 544479.289, 197833.765 ], [ 544551.795, 197809.892 ], [ 544592.516, 197810.13 ], [ 544634.1, 197822.7 ], [ 544682.768, 197847.993 ], [ 544698.7, 197785.7 ], [ 544716.0, 197766.2 ], [ 544776.3, 197711.9 ], [ 544827.0, 197698.6 ], [ 544861.3, 197683.4 ], [ 544878.9, 197666.9 ], [ 544944.9, 197561.7 ], [ 545010.0, 197485.2 ], [ 545036.4, 197435.6 ], [ 545064.0, 197362.0 ], [ 545106.7, 197314.7 ], [ 545118.7, 197280.5 ], [ 545153.2, 197223.3 ], [ 545166.5, 197220.4 ], [ 545203.8, 197233.5 ], [ 545284.6, 197229.7 ], [ 545326.6, 197243.9 ], [ 545434.882, 197302.236 ], [ 545466.497, 197240.805 ], [ 545375.3, 197158.5 ], [ 545230.2, 196995.3 ], [ 545176.3, 196943.9 ], [ 545130.5, 196832.7 ], [ 545126.3, 196685.5 ], [ 545113.4, 196610.4 ], [ 545077.9, 196528.5 ], [ 545055.5, 196442.2 ], [ 544998.8, 196375.3 ], [ 544982.0, 196335.5 ], [ 544978.6, 196308.0 ], [ 544983.8, 196267.1 ], [ 544959.9, 196286.8 ], [ 544918.8, 196293.5 ], [ 544851.3, 196294.8 ], [ 544723.8, 196285.6 ], [ 544699.2, 196272.5 ], [ 544602.2, 196140.9 ], [ 544539.3, 196096.9 ], [ 544504.4, 196012.9 ], [ 544467.9, 195969.2 ], [ 544462.9, 195949.6 ], [ 544467.1, 195917.4 ], [ 544453.6, 195874.6 ], [ 544435.7, 195855.5 ], [ 544363.9, 195823.2 ], [ 544337.3, 195803.0 ], [ 544310.7, 195758.5 ], [ 544221.2, 195678.4 ], [ 544151.1, 195595.2 ], [ 544137.1, 195590.4 ], [ 544126.5, 195562.5 ], [ 543999.7, 195353.5 ], [ 543945.3, 195300.3 ], [ 543847.4, 195181.6 ], [ 543810.4, 195151.3 ], [ 543715.7, 195114.1 ], [ 543677.995, 195084.653 ], [ 543638.0, 195035.6 ], [ 543595.8, 194959.1 ], [ 543572.7, 194878.2 ], [ 543518.2, 194799.1 ], [ 543468.5, 194679.6 ], [ 543435.1, 194622.2 ], [ 543382.477, 194560.997 ], [ 543185.9, 194400.1 ], [ 543163.4, 194374.8 ], [ 543153.6, 194345.1 ], [ 543160.4, 194235.2 ], [ 543106.9, 194276.6 ], [ 543081.6, 194285.9 ], [ 543051.4, 194286.3 ], [ 543007.4, 194302.8 ], [ 542893.6, 194295.8 ], [ 542814.4, 194265.3 ], [ 542736.866, 194173.763 ], [ 542734.894, 194157.843 ], [ 542705.8, 194105.8 ], [ 542701.4, 194024.1 ], [ 542689.507, 193986.831 ], [ 542646.2, 193936.4 ], [ 542597.1, 193896.1 ], [ 542549.3, 193872.8 ], [ 542428.2, 193855.5 ], [ 542336.6, 193825.1 ], [ 542292.904, 193803.114 ], [ 542220.2, 193741.8 ], [ 542189.9, 193706.7 ], [ 542172.0, 193681.5 ], [ 542163.8, 193634.3 ], [ 542137.0, 193605.1 ], [ 542134.978, 193593.096 ], [ 542050.1, 193573.8 ], [ 541960.25, 193538.915 ], [ 541818.668, 193538.252 ], [ 541661.0, 193446.3 ], [ 541652.3, 193429.9 ], [ 541597.399, 193400.443 ], [ 541580.227, 193407.324 ], [ 541547.9, 193438.7 ], [ 541402.7, 193448.9 ], [ 541343.2, 193469.2 ], [ 541228.0, 193453.4 ], [ 541199.5, 193436.4 ], [ 541188.8, 193437.0 ], [ 541057.8, 193342.4 ], [ 541036.9, 193321.5 ], [ 540997.2, 193261.7 ], [ 540874.3, 193155.0 ], [ 540821.8, 193120.9 ], [ 540757.9, 193095.7 ], [ 540721.0, 193004.1 ], [ 540639.0, 192941.5 ], [ 540632.5, 192771.9 ], [ 540659.7, 192720.1 ], [ 540709.8, 192659.0 ], [ 540717.0, 192605.7 ], [ 540655.0, 192557.9 ], [ 540616.5, 192519.5 ], [ 540590.6, 192520.5 ], [ 540520.1, 192502.0 ], [ 540427.1, 192456.8 ], [ 540226.1, 192379.0 ], [ 540182.8, 192348.5 ], [ 540103.0, 192329.4 ], [ 540048.2, 192340.2 ], [ 539954.0, 192306.3 ], [ 539872.1, 192302.4 ], [ 539829.5, 192324.1 ], [ 539478.7, 192403.2 ], [ 539435.1, 192409.6 ], [ 539305.2, 192408.1 ], [ 539212.1, 192514.3 ], [ 539182.1, 192520.0 ], [ 539233.6, 192386.8 ], [ 539228.1, 192283.4 ], [ 539212.8, 192242.9 ], [ 539191.6, 192209.0 ], [ 539041.1, 192046.7 ], [ 538923.9, 191965.5 ], [ 538896.9, 191930.5 ], [ 538824.4, 191765.2 ], [ 538803.1, 191743.2 ], [ 538318.6, 191427.2 ], [ 538110.2, 191353.4 ], [ 538056.0, 191328.8 ], [ 537280.8, 190874.6 ], [ 537219.1, 190845.9 ], [ 536463.3, 190556.5 ], [ 536461.096, 190584.789 ], [ 536448.0, 190592.7 ], [ 536417.2, 190602.0 ], [ 536306.1, 190610.6 ], [ 535867.9, 190612.6 ], [ 535816.4, 190604.6 ], [ 535717.1, 190604.9 ], [ 535525.4, 190562.0 ], [ 535466.7, 190526.2 ], [ 535430.7, 190487.8 ], [ 535392.8, 190460.7 ], [ 535301.002, 190430.137 ], [ 535240.5, 190369.4 ], [ 535154.284, 190247.625 ], [ 535022.8, 190168.6 ], [ 534862.6, 190115.7 ], [ 534791.396, 190059.308 ], [ 534711.9, 190033.42 ], [ 534602.8, 189956.6 ], [ 534522.7, 189932.6 ], [ 534483.3, 189901.2 ], [ 534399.207, 189875.979 ], [ 534366.0, 189898.3 ], [ 534338.3, 189907.8 ], [ 534257.0, 189874.2 ], [ 534194.3, 189817.5 ], [ 534066.8, 189723.6 ], [ 534034.9, 189680.9 ], [ 534006.1, 189655.3 ], [ 533894.1, 189570.7 ], [ 533791.4, 189428.6 ], [ 533725.6, 189363.1 ], [ 533645.6, 189329.5 ], [ 533475.8, 189300.0 ], [ 533460.5, 189292.1 ], [ 533435.9, 189237.1 ], [ 533398.8, 189192.3 ], [ 533416.7, 189130.1 ], [ 533416.8, 189107.1 ], [ 533384.3, 189032.6 ], [ 533353.6, 188985.7 ], [ 533321.0, 188951.3 ], [ 533301.5, 188913.8 ], [ 533267.5, 188885.8 ], [ 533204.8, 188805.6 ], [ 533190.5, 188796.0 ], [ 533158.5, 188687.4 ], [ 533164.0, 188580.3 ], [ 533117.0, 188486.6 ], [ 533118.6, 188458.7 ], [ 533095.4, 188441.2 ], [ 532949.1, 188275.5 ], [ 532937.9, 188186.1 ], [ 532926.9, 188160.3 ], [ 532922.6, 188124.5 ], [ 532889.4, 188025.0 ], [ 532834.9, 187804.1 ], [ 532782.691, 187671.334 ], [ 532784.8, 187653.1 ], [ 532771.029, 187602.258 ], [ 532762.6, 187608.8 ], [ 532689.9, 187617.3 ], [ 532657.972, 187588.512 ], [ 532625.215, 187544.603 ], [ 532558.2, 187423.2 ], [ 532531.7, 187389.7 ], [ 532507.2, 187382.1 ], [ 532436.1, 187338.9 ], [ 532364.932, 187344.463 ], [ 532348.5, 187338.4 ], [ 532268.4, 187248.0 ], [ 532204.292, 187147.675 ], [ 532148.7, 187122.8 ], [ 532110.2, 187076.3 ], [ 532029.6, 187058.5 ], [ 532004.0, 187059.0 ], [ 531710.9, 186932.0 ], [ 531672.1, 186974.3 ], [ 531650.927, 186986.0 ], [ 531615.302, 186994.302 ], [ 531648.7, 187030.0 ], [ 531678.7, 187078.8 ], [ 531737.9, 187226.2 ], [ 531815.1, 187321.8 ], [ 531835.4, 187398.3 ], [ 531883.3, 187463.6 ], [ 531885.911, 187477.664 ], [ 531874.476, 187482.515 ], [ 531824.0, 187449.5 ], [ 531648.5, 187395.0 ], [ 531497.396, 187364.073 ], [ 531483.323, 187371.727 ], [ 531481.356, 187383.865 ], [ 531446.9, 187384.0 ], [ 531408.8, 187366.6 ], [ 531339.5, 187310.0 ], [ 531275.238, 187241.304 ], [ 531258.6, 187230.7 ], [ 531231.1, 187226.7 ], [ 531195.6, 187244.0 ], [ 531178.5, 187241.8 ], [ 531118.144, 187214.736 ], [ 531074.9, 187160.3 ], [ 530951.3, 187074.2 ], [ 530894.4, 187058.2 ], [ 530841.0, 187055.4 ], [ 530733.0, 187008.9 ], [ 530650.6, 186946.5 ], [ 530582.1, 186911.6 ], [ 530371.4, 186750.6 ], [ 530323.3, 186692.7 ], [ 530205.3, 186524.9 ], [ 530158.6, 186493.9 ], [ 530121.2, 186477.8 ], [ 530019.9, 186461.1 ], [ 529959.9, 186440.6 ], [ 529848.3, 186362.6 ], [ 529782.3, 186390.9 ], [ 529671.6, 186379.1 ], [ 529396.7, 186297.8 ], [ 529359.6, 186291.8 ], [ 529329.3, 186295.3 ], [ 529306.1, 186316.3 ], [ 529304.8, 186370.3 ], [ 529360.6, 186512.9 ], [ 529384.7, 186596.7 ], [ 529382.8, 186617.8 ], [ 529370.3, 186633.2 ], [ 529352.9, 186640.5 ], [ 529271.4, 186621.2 ], [ 529062.8, 186533.3 ], [ 528966.3, 186424.6 ], [ 528772.4, 186322.0 ], [ 528679.429, 186237.615 ] ], [ [ 528619.7, 186175.2 ], [ 528576.713, 186210.54 ], [ 528587.948, 186362.542 ], [ 528610.336, 186267.785 ], [ 528655.508, 186240.143 ], [ 528679.429, 186237.615 ] ], [ [ 611389.5, 266370.0 ], [ 611407.6, 266352.4 ], [ 611419.8, 266327.9 ], [ 611543.1, 266261.7 ], [ 611549.923, 266245.014 ], [ 611650.65, 266193.974 ], [ 611592.7, 266093.4 ], [ 611529.8, 266120.3 ], [ 611496.9, 266071.7 ], [ 611391.4, 266127.1 ], [ 611286.362, 266146.335 ], [ 611247.774, 266073.151 ], [ 611223.9, 266087.0 ], [ 611156.0, 265965.9 ] ], [ [ 528586.9, 186083.0 ], [ 528660.5, 186118.6 ], [ 528638.755, 186125.669 ], [ 528678.9, 186155.9 ], [ 528707.4, 186185.5 ], [ 528709.1, 186196.3 ], [ 528646.4, 186169.5 ], [ 528619.7, 186175.2 ] ], [ [ 528586.9, 186083.0 ], [ 528563.8, 186090.1 ], [ 528542.5, 186060.3 ], [ 528515.923, 185867.558 ], [ 528521.846, 185842.095 ] ], [ [ 553955.7, 217170.7 ], [ 554001.9, 217098.0 ], [ 553939.6, 217052.4 ], [ 553928.3, 217055.6 ], [ 553809.9, 217034.7 ], [ 553731.4, 216974.8 ], [ 553489.7, 216769.0 ], [ 553192.2, 217077.2 ], [ 553364.5, 217241.9 ] ], [ [ 553955.7, 217170.7 ], [ 553887.1, 217293.7 ], [ 553838.8, 217443.2 ], [ 553841.8, 217457.9 ], [ 553878.3, 217519.7 ], [ 553889.1, 217623.2 ], [ 553950.3, 217764.2 ], [ 554085.6, 217964.4 ], [ 554139.0, 218026.0 ], [ 554226.804, 218105.251 ], [ 554276.872, 218111.111 ], [ 554322.286, 218142.1 ], [ 554761.4, 218329.4 ], [ 554834.6, 218370.9 ], [ 554921.6, 218432.4 ], [ 554953.8, 218531.0 ], [ 555031.7, 218647.8 ], [ 555041.5, 218671.5 ], [ 555036.6, 218703.7 ], [ 555015.9, 218755.1 ], [ 554950.4, 218886.4 ], [ 555058.6, 218959.4 ], [ 555210.9, 219037.9 ], [ 555265.9, 219093.6 ], [ 555297.1, 219175.4 ], [ 555256.9, 219253.4 ], [ 555277.7, 219323.6 ], [ 555274.4, 219374.8 ], [ 555261.4, 219430.4 ], [ 555264.9, 219450.6 ], [ 555291.1, 219503.1 ], [ 555307.4, 219511.9 ], [ 555531.9, 219732.3 ], [ 555541.6, 219777.1 ], [ 555539.1, 219861.8 ], [ 555544.6, 219887.6 ], [ 555579.9, 219968.1 ], [ 555621.9, 220100.6 ], [ 555613.9, 220143.1 ], [ 555585.1, 220173.8 ], [ 555578.9, 220194.3 ], [ 555803.6, 220449.5 ], [ 555834.6, 220477.6 ], [ 555904.1, 220523.6 ], [ 556051.4, 220647.3 ], [ 556069.6, 220657.6 ], [ 556130.4, 220665.3 ], [ 556181.6, 220685.6 ], [ 556258.6, 220747.1 ], [ 556367.6, 220777.0 ], [ 556536.8, 220883.6 ], [ 556665.329, 220920.007 ], [ 556754.0, 220921.1 ], [ 556940.492, 221024.539 ], [ 557033.1, 221021.5 ], [ 557075.8, 221035.8 ], [ 557100.1, 221017.2 ], [ 557129.1, 221012.2 ], [ 557226.1, 221003.0 ], [ 557380.6, 221006.2 ], [ 557396.1, 220998.5 ], [ 557392.1, 220960.5 ], [ 557401.4, 220955.0 ], [ 557447.093, 220987.397 ], [ 557472.1, 220986.7 ], [ 557487.4, 220962.5 ], [ 557465.1, 220930.5 ], [ 557461.6, 220895.5 ], [ 557474.4, 220880.7 ], [ 557489.4, 220879.5 ], [ 557483.9, 220912.2 ], [ 557499.4, 220928.7 ], [ 557542.9, 220958.0 ], [ 557559.1, 220980.0 ], [ 557609.1, 220987.7 ], [ 557643.4, 221025.5 ], [ 557658.4, 221055.2 ], [ 557684.4, 221140.0 ], [ 557712.1, 221185.7 ], [ 557756.8, 221240.5 ], [ 557773.2, 221346.2 ], [ 557809.4, 221421.4 ], [ 557808.6, 221311.4 ], [ 557832.4, 221252.9 ], [ 557825.9, 221214.1 ], [ 557919.3, 221271.5 ], [ 557944.5, 221317.2 ], [ 558013.2, 221365.1 ], [ 558046.4, 221386.4 ], [ 558107.9, 221400.9 ], [ 558122.9, 221399.1 ], [ 558266.9, 221307.1 ], [ 558278.4, 221289.6 ], [ 558303.6, 221196.6 ], [ 558312.9, 221192.9 ], [ 558328.9, 221288.4 ], [ 558337.4, 221298.4 ], [ 558418.4, 221308.9 ], [ 558466.6, 221339.9 ], [ 558421.5, 221414.0 ], [ 558366.4, 221435.6 ], [ 558361.2, 221442.4 ], [ 558368.4, 221451.6 ], [ 558462.1, 221476.6 ], [ 558478.9, 221469.8 ], [ 558512.1, 221440.2 ], [ 558599.9, 221488.6 ], [ 558615.0, 221462.9 ], [ 558664.0, 221488.0 ], [ 558789.0, 221483.5 ], [ 558948.5, 221554.0 ], [ 558991.7, 221587.7 ], [ 558997.0, 221602.5 ], [ 558993.5, 221611.7 ], [ 558945.5, 221655.7 ], [ 558944.5, 221665.2 ], [ 558953.7, 221671.0 ], [ 559004.7, 221661.7 ], [ 559038.0, 221662.7 ], [ 559159.0, 221803.0 ], [ 559177.2, 221839.2 ], [ 559194.5, 221903.2 ], [ 559241.0, 221905.2 ], [ 559280.2, 221951.7 ], [ 559376.7, 221964.0 ], [ 559469.5, 221945.0 ], [ 559598.7, 221949.0 ], [ 559645.5, 221957.0 ], [ 559689.2, 221998.7 ], [ 559827.0, 221986.5 ], [ 559892.7, 221986.7 ], [ 560018.4, 222046.5 ], [ 560048.5, 222071.0 ], [ 560058.2, 222098.9 ], [ 560067.4, 222165.4 ], [ 560098.0, 222146.9 ], [ 560118.5, 222124.9 ], [ 560241.9, 221923.0 ], [ 560270.6, 221882.8 ], [ 560353.9, 221792.9 ], [ 560334.9, 221712.7 ], [ 560332.6, 221684.7 ], [ 560338.1, 221664.7 ], [ 560365.3, 221617.0 ], [ 560394.3, 221600.1 ], [ 560429.2, 221568.0 ], [ 560442.4, 221520.2 ], [ 560442.4, 221450.2 ], [ 560421.6, 221375.3 ], [ 560428.0, 221357.5 ], [ 560446.2, 221339.3 ], [ 560496.4, 221311.9 ], [ 560507.3, 221293.3 ], [ 560548.5, 221257.0 ], [ 560628.9, 221319.9 ], [ 560693.9, 221354.6 ], [ 560837.1, 221421.4 ], [ 561011.9, 221459.1 ], [ 561107.6, 221508.9 ], [ 561182.4, 221558.4 ], [ 561410.1, 221872.6 ], [ 561449.9, 221895.2 ], [ 561634.9, 221942.6 ], [ 561656.2, 221955.3 ], [ 561797.9, 222072.9 ], [ 561953.6, 222157.9 ], [ 562095.1, 222339.1 ], [ 562151.6, 222372.1 ], [ 562402.6, 222452.6 ], [ 562432.6, 222461.1 ], [ 562455.9, 222460.4 ], [ 562563.6, 222345.9 ], [ 562578.6, 222297.4 ], [ 562727.4, 222097.1 ], [ 562806.6, 222052.6 ], [ 562902.1, 222047.3 ], [ 562945.1, 222133.9 ], [ 562992.4, 222254.4 ], [ 563071.6, 222413.6 ], [ 563094.6, 222438.9 ], [ 563333.6, 222609.9 ], [ 563393.1, 222644.4 ], [ 563320.4, 222693.4 ], [ 563479.9, 222758.7 ], [ 563504.6, 222761.2 ], [ 563580.1, 222741.9 ], [ 563622.9, 222743.4 ], [ 563875.1, 222801.7 ], [ 563924.8, 222796.6 ], [ 563940.3, 222786.9 ], [ 563966.3, 222724.6 ], [ 564072.0, 222712.3 ], [ 564097.6, 222701.9 ], [ 564110.1, 222684.9 ], [ 564132.6, 222643.5 ], [ 564204.0, 222468.5 ], [ 564214.9, 222437.2 ], [ 564223.5, 222360.0 ], [ 564389.9, 222427.7 ], [ 564423.9, 222434.0 ], [ 564450.6, 222423.5 ], [ 564611.6, 222325.5 ], [ 564721.6, 222321.2 ], [ 564760.4, 222328.5 ], [ 564866.1, 222415.2 ], [ 564882.4, 222445.2 ], [ 564904.283, 222453.957 ], [ 564958.26, 222459.295 ], [ 564953.894, 222493.03 ], [ 564930.479, 222547.799 ], [ 564935.9, 222604.1 ], [ 564991.4, 222792.9 ], [ 565000.9, 222816.1 ], [ 565044.969, 222873.421 ], [ 565064.832, 222892.633 ], [ 565194.7, 222977.6 ], [ 565300.7, 223071.9 ], [ 565393.1, 223138.3 ], [ 565613.7, 223373.3 ], [ 565633.4, 223404.5 ], [ 565663.7, 223427.3 ], [ 565741.8, 223454.1 ], [ 565744.1, 223479.0 ], [ 565795.9, 223559.7 ], [ 565911.0, 223713.2 ], [ 565919.6, 223730.6 ], [ 565915.5, 223772.4 ], [ 565922.7, 223786.7 ], [ 565961.1, 223801.2 ], [ 566046.077, 223817.744 ], [ 565978.16, 223893.782 ], [ 565943.764, 223875.261 ], [ 565938.473, 223899.073 ], [ 565901.431, 223925.532 ], [ 565988.744, 224018.136 ], [ 566070.765, 224076.345 ], [ 566102.515, 224113.386 ], [ 566128.973, 224163.657 ], [ 566234.688, 224260.402 ], [ 566196.774, 224247.248 ], [ 566167.074, 224244.548 ], [ 566155.274, 224252.548 ], [ 566161.174, 224341.948 ], [ 566172.774, 224367.648 ], [ 566332.8, 224487.5 ], [ 566414.6, 224524.3 ], [ 566523.7, 224596.3 ], [ 566615.6, 224682.9 ], [ 566840.2, 224869.1 ], [ 566942.0, 224932.9 ], [ 566977.0, 224941.4 ], [ 567001.3, 224940.0 ], [ 567110.0, 224915.2 ], [ 567161.7, 224886.2 ], [ 567176.7, 224887.0 ], [ 567277.0, 224935.4 ], [ 567267.6, 224990.2 ], [ 567265.6, 225142.2 ], [ 567278.4, 225265.8 ], [ 567302.5, 225339.1 ], [ 567374.3, 225427.8 ], [ 567347.8, 225476.0 ], [ 567340.5, 225504.7 ], [ 567337.9, 225538.8 ], [ 567347.4, 225605.5 ], [ 567339.1, 225668.7 ], [ 567350.2, 225723.2 ], [ 567323.4, 225785.2 ], [ 567303.5, 225797.2 ], [ 567217.8, 225806.8 ], [ 567034.7, 225853.3 ], [ 566899.6, 225780.6 ], [ 566864.5, 225750.5 ], [ 566839.0, 225709.0 ], [ 566825.8, 225698.1 ], [ 566805.9, 225694.7 ], [ 566752.9, 225708.2 ], [ 566615.1, 225759.0 ], [ 566610.7, 225769.7 ], [ 566624.1, 225815.7 ], [ 566661.7, 225891.1 ], [ 566655.6, 225899.9 ], [ 566645.3, 225899.7 ], [ 566546.9, 225786.4 ], [ 566518.1, 225738.5 ], [ 566517.8, 225723.3 ], [ 566575.3, 225687.7 ], [ 566603.1, 225655.0 ], [ 566642.0, 225633.7 ], [ 566686.26, 225586.054 ], [ 566618.9, 225625.8 ], [ 566516.4, 225674.4 ], [ 566488.9, 225681.9 ], [ 566414.1, 225677.3 ], [ 566401.1, 225683.0 ], [ 566396.2, 225693.2 ], [ 566398.2, 225774.1 ], [ 566384.4, 225790.7 ], [ 566363.8, 225795.4 ], [ 566350.7, 225807.8 ], [ 566344.7, 225827.7 ], [ 566303.2, 225868.7 ], [ 566251.3, 225882.1 ], [ 566208.2, 225913.8 ], [ 566218.1, 225942.6 ], [ 566429.0, 226179.7 ], [ 566581.0, 226308.2 ], [ 566726.8, 226457.8 ], [ 566790.9, 226495.9 ], [ 566836.6, 226498.7 ], [ 566939.3, 226522.0 ], [ 566992.7, 226521.6 ], [ 567019.4, 226528.4 ], [ 567082.9, 226562.6 ], [ 567211.6, 226615.9 ], [ 567314.307, 226645.102 ], [ 567450.4, 226783.0 ], [ 567561.2, 226878.1 ], [ 567575.1, 226898.3 ], [ 567609.4, 226991.5 ], [ 567618.9, 227003.5 ], [ 567664.4, 227032.0 ], [ 567703.5, 227089.2 ], [ 567739.5, 227113.4 ], [ 567803.5, 227134.8 ], [ 567853.9, 227161.5 ], [ 567862.8, 227178.8 ], [ 567860.6, 227208.7 ], [ 567801.4, 227330.2 ], [ 567776.9, 227361.2 ], [ 567752.6, 227380.2 ], [ 567673.7, 227415.4 ], [ 567646.3, 227465.0 ], [ 567628.6, 227523.2 ], [ 567624.6, 227583.9 ], [ 567634.0, 227643.0 ], [ 567645.9, 227687.9 ], [ 567698.4, 227794.1 ], [ 567707.6, 227831.2 ], [ 567665.031, 227974.406 ], [ 567753.8, 227962.7 ], [ 567757.542, 227956.284 ], [ 567828.8, 227961.1 ], [ 567883.1, 227948.3 ], [ 568040.8, 227965.3 ], [ 568172.1, 228021.8 ], [ 568184.6, 228029.9 ], [ 568198.9, 228053.6 ], [ 568309.8, 228119.1 ], [ 568332.8, 228089.0 ], [ 568428.6, 228125.9 ], [ 568517.4, 228148.6 ], [ 568652.4, 228158.4 ], [ 568717.9, 228182.6 ], [ 568743.6, 228202.1 ], [ 568750.8, 228215.9 ], [ 568741.9, 228273.4 ], [ 568751.1, 228294.4 ], [ 568716.9, 228359.2 ], [ 568709.2, 228391.7 ], [ 568719.0, 228436.2 ], [ 568738.4, 228473.5 ], [ 568777.6, 228502.3 ], [ 568781.3, 228529.2 ], [ 568632.4, 228770.3 ], [ 568828.846, 228730.177 ], [ 569188.6, 229074.7 ], [ 569217.9, 229093.3 ], [ 569249.771, 229094.479 ], [ 569290.6, 229114.0 ], [ 569269.1, 229154.9 ], [ 569115.9, 229358.6 ], [ 569344.5, 229621.1 ], [ 569491.4, 229823.1 ], [ 569538.3, 229864.3 ], [ 569612.1, 229897.2 ], [ 569665.8, 229931.1 ], [ 569769.6, 229938.7 ], [ 569799.5, 229954.7 ], [ 569923.2, 230046.5 ], [ 570103.7, 230123.6 ], [ 570169.2, 230159.5 ], [ 570243.8, 230186.3 ], [ 570327.3, 230234.8 ], [ 570456.0, 230275.8 ], [ 570516.8, 230319.0 ], [ 570669.7, 230395.7 ], [ 570838.65, 230538.145 ], [ 570896.2, 230555.2 ], [ 571012.5, 230645.0 ], [ 571068.7, 230677.9 ], [ 571106.9, 230713.2 ], [ 571269.2, 230832.1 ], [ 571357.5, 230888.3 ], [ 572006.4, 231232.4 ], [ 572029.3, 231209.8 ], [ 572511.7, 231671.5 ], [ 572570.3, 231749.1 ], [ 572661.7, 231836.7 ], [ 572608.1, 231934.3 ], [ 572560.1, 231995.8 ], [ 572514.1, 232075.3 ], [ 572468.8, 232306.2 ], [ 572466.4, 232351.9 ], [ 572485.4, 232505.8 ], [ 572510.7, 232628.5 ], [ 572534.1, 232678.8 ], [ 572587.9, 232745.5 ], [ 572593.5, 232788.3 ], [ 572555.4, 233031.0 ], [ 572508.7, 233163.0 ], [ 572471.5, 233233.8 ], [ 572357.3, 233343.0 ], [ 572256.9, 233332.6 ], [ 572135.2, 233284.0 ], [ 572027.2, 233249.5 ], [ 571699.2, 233174.3 ], [ 571634.5, 233078.0 ], [ 571628.7, 233095.5 ], [ 571605.5, 233126.3 ], [ 571532.6, 233212.4 ], [ 571498.6, 233235.4 ], [ 571340.1, 233314.7 ], [ 571321.4, 233320.4 ], [ 571243.4, 233321.2 ], [ 571151.4, 233340.2 ], [ 571046.1, 233414.9 ], [ 570976.4, 233448.7 ], [ 570938.9, 233456.9 ], [ 570801.6, 233462.4 ], [ 570746.6, 233469.9 ], [ 570701.4, 233484.0 ], [ 570649.3, 233436.1 ], [ 570615.0, 233388.5 ], [ 570567.8, 233344.8 ], [ 570549.9, 233316.4 ], [ 570546.3, 233278.7 ], [ 570565.6, 233181.2 ], [ 570557.6, 233143.4 ], [ 570544.6, 233128.7 ], [ 570330.9, 233077.4 ], [ 570177.4, 233003.9 ], [ 570133.4, 232999.4 ], [ 570062.4, 233006.6 ], [ 569999.9, 232989.9 ], [ 569589.1, 232827.1 ], [ 569507.9, 232744.6 ], [ 569334.6, 232675.9 ], [ 569231.3, 232658.8 ], [ 569063.6, 232609.1 ], [ 569015.1, 232600.4 ], [ 568959.9, 232597.6 ], [ 568884.3, 232618.0 ], [ 568885.387, 232613.831 ], [ 568855.841, 232613.39 ], [ 568586.9, 232921.7 ], [ 568544.2, 232978.2 ], [ 568459.2, 233113.4 ], [ 568455.0, 233135.6 ], [ 568465.1, 233163.8 ], [ 568503.8, 233216.7 ], [ 568491.5, 233240.1 ], [ 568458.8, 233256.3 ], [ 568360.4, 233252.9 ], [ 568270.9, 233269.1 ], [ 568135.6, 233270.4 ], [ 568090.4, 233293.9 ], [ 567732.667, 233552.355 ], [ 567728.6, 233549.6 ], [ 567714.1, 233589.6 ], [ 567714.6, 233628.6 ], [ 567726.6, 233671.4 ], [ 567717.5, 233690.0 ], [ 567700.6, 233690.4 ], [ 567658.8, 233664.9 ], [ 567628.1, 233656.1 ], [ 567553.8, 233658.1 ], [ 567485.4, 233670.6 ], [ 567449.1, 233666.5 ], [ 567407.9, 233654.5 ], [ 567248.2, 233573.8 ], [ 567163.4, 233557.2 ], [ 567086.0, 233603.9 ], [ 567061.993, 233607.06 ], [ 566813.9, 233755.7 ], [ 566787.5, 233783.8 ], [ 566746.3, 233861.3 ], [ 566705.2, 233901.6 ], [ 566614.0, 233946.3 ], [ 566529.8, 234013.1 ], [ 566468.1, 233999.5 ], [ 566367.3, 234015.4 ], [ 566285.2, 234061.4 ], [ 566263.5, 234086.2 ], [ 566247.3, 234122.1 ], [ 566242.8, 234193.1 ], [ 566260.858, 234260.694 ], [ 566399.4, 234321.8 ], [ 566404.4, 234334.0 ], [ 566393.9, 234349.0 ], [ 566360.1, 234361.0 ], [ 566265.1, 234364.8 ], [ 566255.0, 234372.1 ], [ 566153.7, 234391.6 ], [ 566031.661, 234457.51 ], [ 566013.2, 234459.4 ], [ 565948.7, 234488.6 ], [ 565787.2, 234508.2 ], [ 565735.3, 234603.3 ], [ 565682.6, 234735.7 ], [ 565687.6, 234789.7 ], [ 565681.8, 234818.8 ], [ 565748.0, 234834.4 ], [ 565836.7, 234886.0 ], [ 565961.4, 235004.8 ], [ 566076.2, 235079.6 ], [ 566193.3, 235172.8 ], [ 566264.0, 235238.9 ], [ 566303.6, 235289.6 ], [ 566323.4, 235305.5 ], [ 566544.3, 235430.5 ], [ 566587.7, 235497.5 ], [ 566714.8, 235623.9 ], [ 566766.0, 235649.6 ], [ 566775.2, 235668.4 ], [ 566767.4, 235686.9 ], [ 566754.6, 235691.2 ], [ 566730.9, 235693.5 ], [ 566664.4, 235683.6 ], [ 566612.4, 235698.7 ], [ 566585.2, 235698.5 ], [ 566495.4, 235670.8 ], [ 566466.0, 235671.9 ], [ 566441.8, 235688.7 ], [ 566409.5, 235729.0 ], [ 566367.9, 235753.3 ], [ 566346.2, 235749.3 ], [ 566289.0, 235710.5 ], [ 566273.3, 235687.2 ], [ 566250.5, 235670.9 ], [ 566168.3, 235712.6 ], [ 566147.2, 235738.5 ], [ 566101.3, 235773.2 ], [ 566056.8, 235784.9 ], [ 565922.4, 235760.2 ], [ 565856.9, 235726.7 ], [ 565811.1, 235719.7 ], [ 565763.1, 235725.7 ], [ 565836.7, 235766.9 ], [ 565918.2, 235798.9 ], [ 565944.7, 235821.4 ], [ 566010.5, 235901.0 ], [ 566041.2, 235907.9 ], [ 566098.5, 235891.5 ], [ 566109.794, 235895.165 ], [ 566118.7, 235922.4 ], [ 566093.4, 235956.9 ], [ 565972.0, 236004.3 ], [ 565965.5, 236019.3 ], [ 565979.2, 236037.5 ], [ 566019.7, 236032.9 ], [ 566049.7, 236038.3 ], [ 566168.0, 236065.8 ], [ 566237.2, 236089.3 ], [ 566273.2, 236120.5 ], [ 566293.1, 236162.6 ], [ 566413.5, 236280.5 ], [ 566587.2, 236406.8 ], [ 566658.7, 236439.7 ], [ 566767.0, 236466.1 ], [ 566857.4, 236480.3 ], [ 566944.5, 236505.1 ], [ 566969.4, 236515.1 ], [ 567065.5, 236579.2 ], [ 567121.8, 236656.8 ], [ 567150.3, 236719.7 ], [ 567152.2, 236822.3 ], [ 567172.7, 236884.7 ], [ 567204.9, 236934.8 ], [ 567235.1, 236953.7 ], [ 567291.1, 236969.1 ], [ 567381.7, 236975.1 ], [ 567434.4, 237002.9 ], [ 567506.6, 237023.7 ], [ 567677.7, 237132.9 ], [ 567758.4, 237172.9 ], [ 567827.2, 237216.9 ], [ 567843.2, 237223.4 ], [ 567931.3, 237226.9 ], [ 568042.3, 237270.9 ], [ 568155.0, 237328.4 ], [ 568285.0, 237385.1 ], [ 568410.5, 237426.6 ], [ 568588.9, 237539.4 ], [ 569272.2, 237827.1 ], [ 569428.9, 237844.1 ], [ 569497.87, 237857.707 ], [ 569592.6, 237758.8 ], [ 569651.5, 237708.1 ], [ 569750.7, 237641.6 ], [ 569853.7, 237551.1 ], [ 569934.9, 237516.4 ], [ 569983.7, 237509.1 ], [ 570072.4, 237512.9 ], [ 570242.8, 237550.1 ], [ 570291.0, 237567.4 ], [ 570474.5, 237662.6 ], [ 570520.3, 237768.9 ], [ 570544.7, 237862.2 ], [ 570579.8, 237879.4 ], [ 571048.3, 238013.1 ], [ 571212.0, 238085.6 ], [ 571420.4, 238226.0 ], [ 571570.9, 238249.8 ], [ 571606.9, 238243.0 ], [ 571627.4, 238245.5 ], [ 571670.7, 238271.3 ], [ 571790.4, 238298.0 ], [ 571953.8, 238373.8 ], [ 572010.7, 238411.7 ], [ 572132.7, 238451.3 ], [ 572164.6, 238467.1 ], [ 572249.3, 238535.6 ], [ 572393.5, 238636.4 ], [ 572436.2, 238654.5 ], [ 572471.4, 238697.5 ], [ 572590.1, 238746.5 ], [ 572644.9, 238754.0 ], [ 572720.066, 238794.484 ], [ 572688.7, 238835.7 ], [ 572782.5, 238863.6 ], [ 572986.8, 238872.1 ], [ 572956.3, 238968.0 ], [ 572940.5, 239086.3 ], [ 572943.8, 239104.3 ], [ 572965.0, 239129.0 ], [ 573026.3, 239156.3 ], [ 573157.5, 239198.3 ], [ 573210.3, 239227.3 ], [ 573317.8, 239271.3 ], [ 573456.8, 239313.3 ], [ 573463.5, 239322.3 ], [ 573332.0, 239406.3 ], [ 573276.0, 239419.3 ], [ 573128.0, 239413.0 ], [ 572815.8, 239363.0 ], [ 572799.8, 239367.8 ], [ 572802.5, 239379.5 ], [ 572916.3, 239432.3 ], [ 573395.3, 239601.5 ], [ 573396.5, 239617.3 ], [ 573403.8, 239623.0 ], [ 573450.0, 239632.0 ], [ 573515.8, 239659.5 ], [ 573662.8, 239701.5 ], [ 573744.5, 239712.5 ], [ 573821.0, 239760.0 ], [ 573864.0, 239767.8 ], [ 573877.0, 239787.6 ], [ 573861.5, 239802.8 ], [ 573745.0, 239814.5 ], [ 573701.8, 239809.8 ], [ 573696.5, 239819.3 ], [ 573714.3, 239839.0 ], [ 573741.3, 239834.4 ], [ 573803.8, 239839.6 ], [ 573807.0, 239890.6 ], [ 573853.0, 239893.3 ], [ 573882.5, 239957.9 ], [ 573936.0, 240004.4 ], [ 573989.3, 240026.9 ], [ 574058.8, 240038.9 ], [ 574145.3, 240028.9 ], [ 574293.0, 239991.6 ], [ 574432.2, 239997.4 ], [ 574535.2, 240026.6 ], [ 574711.7, 240126.6 ], [ 574785.7, 240154.6 ], [ 574902.4, 240157.6 ], [ 574976.4, 240190.6 ], [ 575018.2, 240196.4 ], [ 575093.2, 240186.7 ], [ 575137.7, 240146.2 ], [ 575148.4, 240143.7 ], [ 575304.2, 240197.7 ], [ 575415.2, 240274.5 ], [ 575474.7, 240297.5 ], [ 575518.8, 240345.6 ], [ 575521.7, 240365.0 ], [ 575514.2, 240403.7 ], [ 575549.4, 240442.7 ], [ 575557.7, 240534.7 ], [ 575577.4, 240608.7 ], [ 575570.7, 240665.7 ], [ 575574.7, 240691.0 ], [ 575614.4, 240752.0 ], [ 575678.4, 240827.5 ], [ 575706.9, 240891.5 ], [ 575738.4, 240932.7 ], [ 575776.2, 241000.7 ], [ 575803.4, 241148.0 ], [ 575819.2, 241283.5 ], [ 575808.7, 241283.7 ], [ 575705.2, 241188.2 ], [ 575568.9, 241087.2 ], [ 575527.2, 241067.0 ], [ 575458.3, 241046.4 ], [ 575392.0, 241006.1 ], [ 575377.3, 241009.6 ], [ 575354.542, 241035.1 ], [ 575334.3, 241046.4 ], [ 575305.8, 241048.4 ], [ 575209.3, 241033.0 ], [ 575197.5, 241040.6 ], [ 575161.729, 241106.114 ], [ 575224.3, 241142.4 ], [ 575274.5, 241161.9 ], [ 575325.0, 241164.1 ], [ 575361.3, 241156.4 ], [ 575381.8, 241160.9 ], [ 575430.5, 241185.1 ], [ 575484.0, 241226.1 ], [ 575521.8, 241290.6 ], [ 575552.5, 241373.9 ], [ 575607.8, 241488.6 ], [ 575650.0, 241521.1 ], [ 575901.3, 241616.4 ], [ 575984.5, 241624.4 ], [ 576047.3, 241643.4 ], [ 576143.3, 241635.1 ], [ 576149.3, 241645.4 ], [ 576160.8, 241751.4 ], [ 576180.8, 241791.4 ], [ 576218.3, 241827.1 ], [ 576386.3, 241948.4 ], [ 576537.0, 241988.1 ], [ 576699.7, 242005.4 ], [ 576873.0, 242003.6 ], [ 576919.7, 242013.1 ], [ 576946.0, 242025.8 ], [ 577025.2, 242101.3 ], [ 577054.4, 242160.9 ], [ 577073.7, 242240.1 ], [ 577076.7, 242344.6 ], [ 577028.9, 242570.7 ], [ 577027.7, 242641.4 ], [ 577042.4, 242724.6 ], [ 577072.9, 242765.8 ], [ 577119.4, 242773.1 ], [ 577196.6, 242768.6 ], [ 577345.0, 242720.0 ], [ 577406.2, 242688.1 ], [ 577447.4, 242632.3 ], [ 577547.9, 242564.1 ], [ 577711.5, 242495.3 ], [ 577813.5, 242463.8 ], [ 577880.2, 242461.6 ], [ 578117.4, 242485.3 ], [ 578223.6, 242529.8 ], [ 578318.6, 242619.5 ], [ 578416.2, 242748.8 ], [ 578496.6, 242828.7 ], [ 578528.7, 242870.4 ], [ 578583.2, 243000.0 ], [ 578628.2, 243067.3 ], [ 578711.2, 243247.1 ], [ 578740.9, 243340.3 ], [ 578746.7, 243439.3 ], [ 578767.2, 243557.0 ], [ 578758.7, 243680.6 ], [ 578766.4, 243755.6 ], [ 578780.8, 243809.6 ], [ 578803.5, 243860.0 ], [ 578883.2, 243978.6 ], [ 578922.9, 244018.8 ], [ 579049.4, 244090.3 ], [ 579121.2, 244152.8 ], [ 579144.7, 244164.6 ], [ 579225.9, 244180.6 ], [ 579320.1, 244209.1 ], [ 579454.7, 244211.9 ], [ 579609.5, 244243.3 ], [ 579624.1, 244254.0 ], [ 579671.2, 244326.8 ], [ 579796.4, 244423.3 ], [ 579886.4, 244484.1 ], [ 579915.6, 244517.1 ], [ 579919.9, 244549.6 ], [ 579860.1, 244627.8 ], [ 579832.2, 244692.0 ], [ 579824.8, 244785.7 ], [ 579849.3, 244877.2 ], [ 579801.0, 244819.5 ], [ 579728.0, 244772.0 ], [ 579704.1, 244734.4 ], [ 579699.4, 244738.7 ], [ 579714.1, 244785.7 ], [ 579708.6, 244934.2 ], [ 579712.4, 244973.7 ], [ 579732.1, 245011.9 ], [ 579775.9, 245058.7 ], [ 579787.4, 245079.2 ], [ 579790.9, 245121.9 ], [ 579784.4, 245192.2 ], [ 579726.3, 245344.0 ], [ 579650.8, 245482.2 ], [ 579643.8, 245525.0 ], [ 579589.3, 245648.2 ], [ 579571.6, 245704.7 ], [ 579492.8, 245806.5 ], [ 579430.2, 245943.5 ], [ 579372.1, 246051.4 ], [ 579320.304, 246096.663 ], [ 579290.9, 246099.1 ], [ 579247.9, 246124.9 ], [ 579193.6, 246144.9 ], [ 579130.751, 246145.958 ], [ 578949.4, 246076.2 ], [ 578663.9, 245985.9 ], [ 578581.775, 245924.817 ] ], [ [ 579593.0, 246308.5 ], [ 579358.6, 246380.1 ], [ 579308.336, 246357.276 ], [ 579203.6, 246370.1 ], [ 579163.6, 246364.2 ], [ 579066.744, 246325.102 ], [ 579017.0, 246313.1 ], [ 578945.3, 246312.8 ], [ 578755.4, 246267.8 ], [ 578714.3, 246248.8 ], [ 578677.4, 246214.3 ], [ 578674.384, 246191.247 ], [ 578543.5, 246083.1 ], [ 578509.897, 246019.667 ], [ 578498.951, 246015.638 ], [ 578523.616, 245977.381 ], [ 578581.775, 245924.817 ] ], [ [ 519207.3, 174343.8 ], [ 519380.7, 174408.2 ], [ 519440.1, 174438.5 ], [ 519533.7, 174514.8 ], [ 519551.7, 174542.9 ], [ 519553.8, 174556.9 ], [ 519547.7, 174573.4 ], [ 519523.7, 174601.8 ], [ 519535.9, 174667.6 ], [ 519534.4, 174678.4 ], [ 519517.2, 174690.0 ], [ 519540.4, 174792.7 ], [ 519647.3, 174947.5 ], [ 519755.7, 175052.4 ], [ 519872.2, 175153.5 ], [ 519883.9, 175171.9 ], [ 519876.9, 175227.5 ], [ 519883.9, 175258.8 ], [ 519910.0, 175293.2 ], [ 519996.2, 175353.3 ], [ 520017.9, 175378.0 ], [ 520032.6, 175427.7 ], [ 520034.2, 175490.3 ], [ 520041.5, 175513.7 ], [ 520034.4, 175524.4 ], [ 520062.9, 175553.7 ], [ 520121.3, 175593.1 ], [ 520104.2, 175621.1 ], [ 520156.0, 175597.5 ], [ 520155.0, 175627.5 ], [ 520117.1, 175702.1 ], [ 520150.3, 175680.3 ], [ 520131.4, 175706.0 ], [ 520155.9, 175728.5 ], [ 520147.6, 175742.3 ], [ 520140.0, 175783.3 ], [ 520107.3, 175813.7 ], [ 520096.3, 175833.2 ], [ 520041.9, 175962.6 ], [ 520003.7, 176077.4 ], [ 519936.7, 176196.4 ], [ 519908.3, 176279.6 ], [ 519915.5, 176312.5 ], [ 519972.8, 176351.1 ], [ 519966.6, 176305.7 ], [ 519973.9, 176281.4 ], [ 520002.2, 176251.3 ], [ 520135.9, 176171.0 ], [ 520246.3, 176090.7 ], [ 520306.8, 176066.0 ], [ 520383.2, 176004.3 ], [ 520449.2, 175977.2 ], [ 520501.2, 175979.7 ], [ 520524.3, 176044.8 ], [ 520530.1, 176079.9 ], [ 520554.7, 176123.4 ], [ 520630.7, 176124.4 ], [ 520697.2, 176115.6 ], [ 520733.5, 176131.1 ], [ 520730.7, 176138.6 ], [ 520740.8, 176154.8 ], [ 520768.1, 176160.8 ], [ 520804.1, 176182.7 ], [ 520763.8, 176263.3 ], [ 520742.9, 176386.5 ], [ 520688.7, 176480.0 ], [ 520680.6, 176516.3 ], [ 520661.9, 176553.7 ], [ 520674.6, 176586.6 ], [ 520680.2, 176630.5 ], [ 520776.8, 176730.1 ], [ 520740.7, 176817.8 ], [ 520731.8, 176873.0 ], [ 520731.3, 176918.8 ], [ 520760.7, 176978.5 ], [ 520762.0, 177003.7 ], [ 520744.4, 177067.4 ], [ 520723.2, 177105.1 ], [ 520685.6, 177138.9 ], [ 520665.8, 177147.9 ], [ 520565.9, 177165.0 ], [ 520532.9, 177166.7 ], [ 520428.2, 177151.0 ], [ 520342.6, 177148.7 ], [ 520280.7, 177164.9 ], [ 520256.8, 177176.0 ], [ 520171.2, 177239.1 ], [ 520111.2, 177267.5 ], [ 519881.6, 177342.4 ], [ 519860.4, 177362.1 ], [ 519854.8, 177379.1 ], [ 519857.5, 177411.1 ], [ 519867.1, 177427.3 ], [ 519969.3, 177444.2 ], [ 520114.4, 177433.4 ], [ 520233.9, 177466.9 ], [ 520384.7, 177489.7 ], [ 520483.7, 177512.5 ], [ 520625.4, 177565.4 ], [ 520655.6, 177583.4 ], [ 520719.4, 177660.3 ], [ 520726.7, 177681.1 ], [ 520686.5, 177830.8 ], [ 520689.8, 177875.4 ], [ 520725.0, 177909.3 ], [ 520762.2, 177921.0 ], [ 520830.7, 177925.7 ], [ 520969.4, 177920.0 ], [ 520995.1, 177927.9 ], [ 521040.1, 177964.9 ], [ 521122.1, 178009.7 ], [ 521273.5, 178048.3 ], [ 521339.9, 178045.5 ], [ 521389.8, 178036.2 ], [ 521494.1, 177996.0 ], [ 521578.2, 177981.3 ], [ 521621.0, 177977.9 ], [ 521690.6, 177986.7 ], [ 521728.3, 177984.6 ], [ 521782.0, 177964.2 ], [ 521870.6, 177960.3 ], [ 521903.3, 177964.5 ], [ 521922.1, 177977.9 ], [ 521900.6, 177994.5 ], [ 521893.6, 178023.9 ], [ 521909.2, 178055.6 ], [ 521930.0, 178193.6 ], [ 521940.6, 178204.5 ], [ 521992.6, 178225.7 ], [ 521998.3, 178233.3 ], [ 522000.4, 178270.5 ], [ 521986.9, 178318.6 ], [ 521964.6, 178349.4 ], [ 521981.4, 178377.9 ], [ 522023.0, 178404.8 ], [ 522052.4, 178477.0 ], [ 522152.8, 178480.4 ], [ 522205.1, 178520.8 ], [ 522211.467, 178520.272 ], [ 522226.4, 178493.4 ], [ 522240.8, 178483.5 ], [ 522274.0, 178526.9 ], [ 522293.0, 178537.8 ], [ 522360.3, 178532.2 ], [ 522418.7, 178549.1 ], [ 522452.8, 178537.8 ], [ 522556.4, 178459.4 ], [ 522613.1, 178449.0 ], [ 522682.0, 178453.2 ], [ 522736.4, 178491.9 ], [ 522805.6, 178560.2 ], [ 522840.9, 178586.6 ], [ 522869.4, 178596.0 ], [ 522940.2, 178604.9 ], [ 522954.8, 178614.4 ], [ 522971.8, 178641.1 ], [ 523040.2, 178655.5 ], [ 523079.1, 178673.4 ], [ 523098.4, 178691.9 ], [ 523102.7, 178723.1 ], [ 523162.8, 178785.9 ], [ 523247.4, 178801.3 ], [ 523360.1, 178846.1 ], [ 523371.5, 178860.0 ], [ 523383.3, 178923.4 ], [ 523447.0, 178994.9 ], [ 523524.3, 178974.2 ], [ 523540.6, 178965.1 ], [ 523553.8, 178939.6 ], [ 523573.0, 178927.6 ], [ 523607.9, 178925.6 ], [ 523645.7, 178932.4 ], [ 523716.7, 178905.2 ], [ 523777.3, 178909.0 ], [ 523830.1, 178936.7 ], [ 523865.5, 178986.0 ], [ 523959.0, 179001.8 ], [ 523963.5, 179028.3 ], [ 523952.9, 179087.8 ], [ 523962.0, 179107.4 ], [ 523976.3, 179113.4 ], [ 524002.8, 179112.6 ], [ 524077.8, 179060.5 ], [ 524112.8, 179075.6 ], [ 524150.2, 179119.3 ], [ 524192.4, 179150.3 ], [ 524196.8, 179187.6 ], [ 524178.9, 179225.9 ], [ 524180.1, 179246.7 ], [ 524195.9, 179274.2 ], [ 524236.5, 179275.5 ], [ 524249.3, 179266.7 ], [ 524249.0, 179165.5 ], [ 524270.8, 179149.0 ], [ 524338.1, 179117.4 ], [ 524383.3, 179289.9 ], [ 524422.7, 179338.8 ], [ 524459.3, 179365.6 ], [ 524488.3, 179383.0 ], [ 524548.3, 179399.2 ], [ 524626.3, 179385.0 ], [ 524717.0, 179390.5 ], [ 524733.5, 179398.3 ], [ 524742.7, 179574.4 ], [ 524736.1, 179634.3 ], [ 524757.0, 179726.0 ], [ 524883.1, 179953.6 ], [ 524901.9, 180021.4 ], [ 525013.0, 180205.7 ], [ 525072.4, 180368.4 ], [ 525134.1, 180447.4 ], [ 525169.4, 180511.4 ], [ 525172.0, 180532.4 ], [ 525131.1, 180620.6 ], [ 525130.6, 180654.5 ], [ 525164.9, 180763.4 ], [ 525182.9, 180795.4 ], [ 525185.5, 180824.9 ], [ 525283.9, 180859.4 ], [ 525381.9, 180927.9 ], [ 525515.2, 181007.8 ], [ 525938.7, 181322.7 ], [ 526032.4, 181464.7 ], [ 526042.7, 181490.2 ], [ 526097.2, 181562.3 ], [ 526192.4, 181651.9 ], [ 526221.5, 181709.3 ], [ 526292.8, 181788.1 ], [ 526387.1, 181838.4 ], [ 526479.0, 181916.1 ], [ 526511.855, 181969.779 ], [ 526578.069, 182018.669 ], [ 526655.7, 182056.5 ], [ 526833.4, 182167.6 ], [ 526910.3, 182243.2 ], [ 526968.3, 182317.9 ], [ 526987.0, 182331.1 ], [ 527019.8, 182341.8 ], [ 527139.0, 182355.2 ], [ 527229.6, 182402.5 ], [ 527346.5, 182415.8 ], [ 527385.9, 182409.8 ], [ 527425.2, 182411.9 ], [ 527456.9, 182424.2 ], [ 527594.9, 182494.5 ], [ 527649.5, 182530.8 ], [ 527699.2, 182551.2 ], [ 527890.9, 182697.7 ], [ 527947.6, 182731.5 ], [ 528134.1, 182907.0 ], [ 528149.3, 182930.4 ], [ 528164.1, 182970.0 ], [ 528168.5, 183062.4 ], [ 528192.2, 183135.6 ], [ 528172.7, 183145.1 ], [ 528170.2, 183152.4 ], [ 528178.2, 183183.4 ], [ 528261.1, 183236.0 ], [ 528272.4, 183248.8 ], [ 528295.7, 183286.3 ], [ 528359.6, 183356.5 ], [ 528396.9, 183416.4 ], [ 528486.0, 183524.1 ], [ 528522.8, 183591.1 ], [ 528537.6, 183603.5 ], [ 528637.2, 183612.0 ], [ 528883.5, 183693.5 ], [ 528943.8, 183689.9 ], [ 528997.6, 183696.4 ], [ 529057.4, 183715.4 ], [ 529112.7, 183721.4 ], [ 529166.2, 183744.2 ], [ 529227.1, 183742.4 ], [ 529270.5, 183748.7 ], [ 529351.3, 183780.0 ], [ 529441.9, 183763.7 ], [ 529479.0, 183748.0 ], [ 529544.3, 183738.2 ], [ 529636.6, 183711.0 ], [ 529729.1, 183696.4 ], [ 529914.7, 183649.6 ], [ 530075.4, 183591.3 ], [ 530098.5, 183579.4 ], [ 530101.4, 183564.2 ], [ 530129.3, 183533.7 ], [ 530199.3, 183505.2 ], [ 530212.3, 183505.7 ], [ 530233.2, 183553.8 ], [ 530311.1, 183656.2 ], [ 530329.9, 183693.1 ], [ 530333.5, 183709.4 ], [ 530318.6, 183768.8 ], [ 530325.5, 183840.9 ], [ 530396.8, 183918.6 ], [ 530402.8, 183932.5 ], [ 530400.9, 183954.4 ], [ 530453.2, 184031.9 ], [ 530534.5, 184095.6 ], [ 530557.5, 184121.5 ], [ 530565.4, 184171.9 ], [ 530601.0, 184220.7 ], [ 530629.1, 184247.4 ], [ 530691.6, 184268.3 ], [ 530713.5, 184282.6 ], [ 530747.9, 184321.7 ], [ 530778.1, 184371.4 ], [ 530859.5, 184526.8 ], [ 530859.0, 184548.1 ], [ 530829.5, 184602.6 ], [ 530816.5, 184619.1 ], [ 530692.8, 184697.6 ], [ 530643.2, 184774.8 ], [ 530628.0, 184812.0 ], [ 530622.0, 184849.8 ], [ 530570.6, 184911.3 ], [ 530468.3, 184987.1 ], [ 530359.7, 185048.9 ], [ 530310.8, 185058.7 ], [ 530233.4, 185062.2 ], [ 530164.5, 185038.4 ], [ 530051.4, 185021.5 ], [ 529976.7, 184988.5 ], [ 529867.5, 184961.1 ], [ 529850.6, 184951.8 ], [ 529837.5, 184933.5 ], [ 529771.1, 184889.6 ], [ 529664.3, 184832.6 ], [ 529454.3, 184768.5 ], [ 529417.0, 184763.7 ], [ 529179.4, 184760.1 ], [ 529141.6, 184747.6 ], [ 529046.7, 184778.4 ], [ 528721.1, 184835.1 ], [ 528627.1, 184883.3 ], [ 528579.4, 184918.9 ], [ 528559.0, 184949.1 ], [ 528543.5, 184998.4 ], [ 528534.5, 185067.7 ], [ 528540.7, 185178.4 ], [ 528520.7, 185258.7 ], [ 528524.5, 185267.2 ], [ 528515.4, 185348.2 ], [ 528486.2, 185436.3 ], [ 528376.7, 185415.0 ], [ 528346.0, 185416.9 ], [ 528441.0, 185607.2 ], [ 528499.021, 185794.594 ], [ 528521.846, 185842.095 ] ], [ [ 519207.3, 174343.8 ], [ 519184.9, 174307.6 ], [ 519130.2, 174252.3 ], [ 519069.2, 174165.8 ], [ 519069.9, 174132.8 ], [ 519123.1, 174070.5 ], [ 519000.7, 174005.7 ], [ 518973.6, 173972.6 ], [ 519013.2, 173922.2 ], [ 519023.8, 173894.7 ], [ 519021.5, 173844.9 ], [ 519001.5, 173756.7 ], [ 518967.8, 173712.4 ], [ 518870.9, 173669.5 ], [ 518768.5, 173644.3 ], [ 518701.5, 173607.0 ], [ 518651.3, 173564.9 ], [ 518499.1, 173466.9 ], [ 518430.3, 173433.9 ], [ 518057.5, 173344.9 ], [ 518011.9, 173342.5 ], [ 517975.3, 173329.7 ], [ 517916.6, 173295.2 ], [ 517782.8, 173187.4 ], [ 517624.9, 173094.2 ], [ 517615.7, 173056.6 ], [ 517669.0, 172952.0 ], [ 517678.3, 172802.5 ], [ 517671.3, 172771.1 ], [ 517623.6, 172725.1 ], [ 517572.9, 172686.9 ], [ 517521.1, 172658.2 ], [ 517500.3, 172630.2 ], [ 517476.5, 172616.2 ], [ 517417.8, 172589.6 ], [ 517384.8, 172618.4 ], [ 517374.0, 172614.2 ], [ 517328.0, 172559.2 ], [ 517257.6, 172451.2 ], [ 517192.5, 172385.3 ], [ 517151.0, 172307.7 ], [ 517142.4, 172229.4 ], [ 517109.4, 172179.8 ], [ 517105.5, 172144.3 ], [ 517116.6, 172137.3 ], [ 517136.6, 172038.0 ], [ 517135.0, 171995.1 ], [ 517125.4, 171975.8 ], [ 517033.7, 171896.9 ], [ 517010.5, 171887.2 ], [ 516957.0, 171890.3 ], [ 516854.0, 171825.3 ], [ 516817.2, 171818.1 ], [ 516699.9, 171677.1 ], [ 516665.3, 171655.2 ], [ 516641.9, 171630.0 ], [ 516561.8, 171584.9 ], [ 516509.9, 171546.6 ], [ 516449.4, 171529.7 ], [ 516364.9, 171529.4 ], [ 516289.4, 171454.8 ], [ 516202.0, 171403.3 ], [ 516170.3, 171366.1 ], [ 516140.2, 171283.1 ], [ 516124.6, 171162.4 ], [ 516059.9, 171016.0 ], [ 516049.1, 170977.0 ], [ 516041.7, 170817.9 ], [ 516017.3, 170726.1 ], [ 516012.1, 170645.0 ], [ 515998.4, 170566.5 ], [ 515918.1, 170407.8 ], [ 515914.4, 170339.5 ], [ 515896.9, 170261.9 ], [ 515903.4, 170202.3 ], [ 515898.5, 170179.4 ], [ 515860.1, 170090.1 ], [ 515834.6, 170000.0 ], [ 515812.3, 169951.4 ], [ 515787.1, 169821.4 ], [ 515746.2, 169733.6 ], [ 515747.3, 169708.8 ], [ 515764.0, 169675.0 ], [ 515792.6, 169477.9 ], [ 515789.8, 169418.9 ], [ 515740.4, 169306.6 ], [ 515722.3, 169163.6 ], [ 515678.0, 169070.6 ], [ 515660.3, 168931.7 ], [ 515646.2, 168891.3 ], [ 515620.3, 168846.1 ], [ 515592.5, 168835.1 ], [ 515475.1, 168861.3 ], [ 515452.8, 168892.1 ], [ 515447.3, 168921.1 ], [ 515432.6, 168949.3 ], [ 515415.9, 168960.1 ], [ 515374.9, 168957.6 ], [ 515305.0, 168907.8 ], [ 515305.3, 168898.6 ], [ 515232.9, 168881.2 ], [ 515202.6, 168931.6 ], [ 515137.3, 169009.6 ], [ 515052.5, 169075.3 ], [ 515000.0, 169103.0 ], [ 514931.9, 169126.2 ], [ 514853.0, 169143.8 ], [ 514819.2, 169140.1 ], [ 514712.4, 169041.3 ], [ 514706.7, 169022.6 ], [ 514708.6, 168964.4 ], [ 514666.1, 168883.8 ], [ 514628.0, 168857.6 ], [ 514434.9, 168783.2 ], [ 514374.9, 168783.2 ], [ 514337.4, 168792.4 ], [ 514293.6, 168787.2 ], [ 514267.4, 168776.0 ], [ 514261.1, 168764.7 ], [ 514263.0, 168734.3 ], [ 514226.3, 168708.6 ], [ 514183.9, 168702.8 ], [ 514174.6, 168687.5 ], [ 514187.5, 168681.7 ], [ 514199.3, 168664.8 ], [ 514200.4, 168650.9 ], [ 514145.8, 168607.8 ], [ 514107.8, 168550.7 ], [ 514066.0, 168503.1 ], [ 514040.2, 168440.5 ], [ 514027.4, 168426.5 ], [ 513935.6, 168356.7 ], [ 513889.4, 168335.5 ], [ 513850.6, 168268.5 ], [ 513659.4, 168129.0 ], [ 513579.9, 168061.5 ], [ 513552.0, 168021.8 ], [ 513447.9, 167962.7 ], [ 513329.9, 167877.9 ], [ 513283.6, 167809.6 ], [ 513252.1, 167791.1 ], [ 513211.1, 167787.9 ], [ 513184.9, 167771.6 ], [ 512956.9, 167582.1 ], [ 512877.1, 167547.9 ], [ 512829.1, 167511.9 ], [ 512677.1, 167423.1 ], [ 512577.6, 167354.9 ], [ 512461.1, 167297.4 ], [ 512275.9, 167175.9 ], [ 512081.9, 167065.6 ], [ 512035.6, 166988.6 ], [ 511951.6, 166912.6 ], [ 511920.6, 166891.1 ], [ 511898.1, 166883.4 ], [ 511820.9, 166884.9 ], [ 511799.9, 166878.4 ], [ 511689.1, 166800.6 ], [ 511607.1, 166734.1 ], [ 511558.4, 166671.4 ], [ 511476.1, 166600.1 ], [ 511458.1, 166610.4 ], [ 511438.4, 166635.6 ], [ 511440.4, 166647.9 ], [ 511488.4, 166700.9 ], [ 511521.1, 166763.6 ], [ 511615.9, 166851.6 ], [ 511615.9, 166867.4 ], [ 511590.474, 166891.651 ], [ 511573.9, 166893.2 ], [ 511501.1, 166845.4 ], [ 511427.9, 166806.9 ], [ 511391.6, 166802.9 ], [ 511360.1, 166829.3 ], [ 511319.0, 166800.4 ], [ 511256.9, 166739.7 ], [ 511223.2, 166667.2 ], [ 511149.7, 166580.5 ], [ 511113.1, 166491.4 ], [ 511080.8, 166435.7 ], [ 511010.6, 166343.6 ], [ 510767.5, 166175.8 ], [ 510596.2, 166038.5 ], [ 510430.2, 165923.0 ], [ 510283.7, 165773.0 ], [ 510275.7, 165742.5 ], [ 510272.0, 165681.2 ], [ 510260.0, 165657.0 ], [ 510169.0, 165591.7 ], [ 510067.0, 165495.0 ], [ 510011.2, 165424.7 ], [ 509977.0, 165368.5 ], [ 509865.5, 165245.0 ], [ 509845.5, 165182.0 ], [ 509826.0, 165160.0 ], [ 509687.5, 165023.7 ], [ 509564.0, 164928.7 ], [ 509463.2, 164829.5 ], [ 509376.0, 164760.5 ], [ 509327.9, 164733.4 ], [ 509315.1, 164714.2 ], [ 509300.1, 164668.9 ], [ 509259.9, 164614.9 ], [ 509222.9, 164545.2 ], [ 509206.4, 164468.7 ], [ 509186.6, 164424.7 ], [ 509129.6, 164319.2 ], [ 509074.8, 164241.0 ], [ 509039.4, 164206.9 ], [ 509004.1, 164186.9 ], [ 508956.9, 164174.2 ], [ 508838.1, 164158.4 ], [ 508807.4, 164143.7 ], [ 508750.6, 164068.4 ], [ 508692.4, 163975.7 ], [ 508619.0, 163808.2 ], [ 508470.4, 163693.4 ], [ 508349.4, 163630.2 ], [ 508296.1, 163582.4 ], [ 508261.4, 163535.2 ], [ 508208.4, 163421.4 ], [ 508159.4, 163346.2 ], [ 508087.1, 163284.4 ], [ 507987.4, 163229.4 ], [ 507991.1, 163185.1 ], [ 507973.6, 163154.5 ], [ 507900.5, 163075.7 ], [ 507817.4, 162972.6 ], [ 507628.6, 162703.9 ], [ 507536.1, 162607.0 ], [ 507447.9, 162483.4 ], [ 507196.2, 162174.2 ], [ 507138.1, 162126.7 ], [ 507160.6, 162109.9 ], [ 507159.9, 162070.9 ], [ 506894.282, 161759.591 ], [ 506781.134, 161637.976 ], [ 506744.92, 161613.135 ], [ 506673.278, 161677.714 ], [ 506515.0, 161536.1 ], [ 506392.2, 161345.9 ], [ 506335.5, 161239.9 ], [ 506197.9, 161078.7 ], [ 506172.4, 161029.0 ], [ 506154.7, 160966.2 ], [ 506143.5, 160894.4 ], [ 506119.7, 160666.9 ], [ 506127.2, 160628.1 ], [ 506181.0, 160484.4 ], [ 506184.1, 160448.7 ], [ 506028.5, 159811.6 ], [ 505973.6, 159707.4 ], [ 505954.354, 159685.885 ], [ 505971.474, 159651.55 ], [ 505985.666, 159600.457 ], [ 506071.7, 159523.0 ], [ 506094.2, 159524.0 ], [ 506201.1, 159573.5 ], [ 506364.0, 159666.4 ], [ 506425.0, 159714.6 ], [ 506514.0, 159750.1 ], [ 506565.0, 159819.1 ], [ 506625.2, 159875.4 ], [ 506698.7, 159961.4 ], [ 506805.0, 160048.4 ], [ 507061.5, 160300.6 ], [ 507176.5, 160379.9 ], [ 507294.5, 160483.9 ], [ 507339.2, 160516.1 ], [ 507381.9, 160578.1 ], [ 507438.2, 160575.6 ], [ 507475.7, 160558.1 ], [ 507505.7, 160555.6 ], [ 507526.9, 160561.9 ], [ 507566.9, 160558.1 ], [ 507601.9, 160563.1 ], [ 507651.9, 160588.1 ], [ 507674.4, 160620.6 ], [ 507765.7, 160690.6 ], [ 507824.676, 160715.708 ], [ 507665.0, 160468.7 ], [ 507650.0, 160435.5 ], [ 507619.7, 160417.0 ], [ 507557.5, 160344.7 ], [ 507537.0, 160260.0 ], [ 507541.5, 160201.7 ], [ 507513.5, 160172.2 ], [ 507505.7, 160155.2 ], [ 507494.7, 160090.0 ], [ 507498.7, 160077.2 ], [ 507509.0, 160074.0 ], [ 507652.5, 160132.0 ], [ 507757.2, 160144.7 ], [ 507773.5, 160141.5 ], [ 507838.5, 160101.7 ], [ 507863.0, 160094.7 ], [ 507897.5, 160093.2 ], [ 507976.0, 160108.2 ], [ 508083.2, 160034.5 ], [ 508119.2, 160033.5 ], [ 508199.5, 159997.5 ], [ 508223.5, 159924.5 ], [ 508225.6, 159881.2 ], [ 508247.9, 159853.9 ], [ 508268.4, 159836.3 ], [ 508330.0, 159826.0 ], [ 508350.7, 159813.2 ], [ 508389.5, 159779.5 ], [ 508424.2, 159732.5 ], [ 508479.0, 159729.2 ], [ 508527.7, 159743.2 ], [ 508592.7, 159742.2 ], [ 508633.0, 159748.5 ], [ 508667.2, 159762.0 ], [ 508704.7, 159792.2 ], [ 508778.5, 159772.5 ], [ 508860.2, 159814.5 ], [ 508913.7, 159854.7 ], [ 509034.5, 159831.2 ], [ 509063.0, 159836.0 ], [ 509100.2, 159856.5 ], [ 509190.7, 159956.2 ], [ 509206.5, 160055.5 ], [ 509259.5, 160106.7 ], [ 509347.8, 160169.8 ], [ 509411.5, 160235.7 ], [ 509434.5, 160242.7 ], [ 509529.0, 160209.2 ], [ 509587.0, 160200.2 ], [ 509651.4, 160164.3 ], [ 509622.5, 160114.6 ], [ 509616.0, 160038.9 ], [ 509600.0, 159995.4 ], [ 509603.5, 159909.4 ], [ 509615.0, 159850.1 ], [ 509640.2, 159796.4 ], [ 509675.2, 159766.6 ], [ 509690.2, 159731.4 ], [ 509729.5, 159674.9 ], [ 509785.0, 159634.4 ], [ 509844.7, 159610.1 ], [ 509841.0, 159557.6 ], [ 509857.7, 159496.9 ], [ 509853.5, 159432.4 ], [ 509892.0, 159380.9 ], [ 509895.7, 159336.6 ], [ 509915.3, 159309.7 ], [ 509905.0, 159285.6 ], [ 509871.7, 159250.9 ], [ 509839.7, 159173.1 ], [ 509836.0, 159125.6 ], [ 509844.5, 159099.6 ], [ 509854.7, 158991.5 ], [ 509817.2, 158936.7 ], [ 509809.7, 158887.2 ], [ 509833.5, 158813.0 ], [ 509834.7, 158614.7 ], [ 509802.5, 158473.5 ], [ 509771.2, 158409.0 ], [ 509781.2, 158389.2 ], [ 509823.5, 158390.0 ], [ 509841.7, 158379.2 ], [ 509876.7, 158344.5 ], [ 509882.2, 158318.7 ], [ 509870.0, 158135.5 ], [ 509881.2, 158113.2 ], [ 509874.2, 158068.5 ], [ 509891.4, 157989.7 ], [ 509835.6, 157829.0 ], [ 509826.4, 157813.7 ], [ 509781.4, 157781.0 ], [ 509592.1, 157711.5 ], [ 509490.4, 157660.2 ], [ 509369.1, 157586.2 ], [ 509325.9, 157521.7 ], [ 509283.6, 157478.0 ], [ 509274.6, 157450.0 ], [ 509278.9, 157414.5 ], [ 509273.4, 157394.7 ], [ 509227.6, 157362.7 ], [ 509173.9, 157338.2 ], [ 509115.4, 157292.7 ], [ 509091.4, 157217.7 ], [ 509050.9, 157174.2 ], [ 509011.1, 157118.7 ], [ 509000.9, 157098.2 ], [ 509036.4, 157095.6 ], [ 509071.9, 157103.6 ], [ 509193.9, 157171.9 ], [ 509234.1, 157207.4 ], [ 509250.6, 157209.4 ], [ 509264.4, 157196.4 ], [ 509262.4, 157181.9 ], [ 509211.4, 157124.1 ], [ 509156.4, 157028.6 ], [ 509080.9, 156922.6 ], [ 509058.6, 156874.4 ], [ 509049.9, 156819.6 ], [ 509012.6, 156722.3 ], [ 508979.6, 156669.6 ], [ 508909.6, 156585.6 ], [ 508876.1, 156518.1 ], [ 508865.4, 156473.8 ], [ 508865.1, 156438.6 ], [ 508873.6, 156399.6 ], [ 508904.4, 156378.3 ], [ 508958.5, 156367.7 ], [ 508957.0, 156360.2 ], [ 508911.3, 156316.7 ], [ 508890.3, 156263.2 ], [ 508836.8, 156203.0 ], [ 508828.5, 156169.0 ], [ 508759.5, 156081.0 ], [ 508748.0, 156047.5 ], [ 508721.3, 156044.2 ], [ 508702.5, 156021.2 ], [ 508593.8, 155995.2 ], [ 508561.0, 155971.5 ], [ 508542.0, 155949.0 ], [ 508525.0, 155895.7 ], [ 508501.8, 155858.7 ], [ 508428.3, 155820.7 ], [ 508388.5, 155810.5 ], [ 508350.8, 155781.5 ], [ 508329.5, 155756.0 ], [ 508326.4, 155735.6 ], [ 508338.3, 155687.0 ], [ 508367.3, 155673.2 ], [ 508379.8, 155650.7 ], [ 508377.5, 155632.0 ], [ 508364.0, 155606.2 ], [ 508369.8, 155575.5 ], [ 508353.869, 155548.002 ], [ 508354.191, 155533.408 ], [ 508369.0, 155503.1 ], [ 508418.4, 155460.6 ], [ 508425.3, 155403.9 ], [ 508448.2, 155401.4 ], [ 508477.7, 155407.9 ], [ 508502.2, 155420.7 ], [ 508543.5, 155461.7 ], [ 508571.3, 155472.7 ], [ 508585.5, 155468.2 ], [ 508597.8, 155453.5 ], [ 508601.0, 155390.0 ], [ 508615.8, 155382.5 ], [ 508654.0, 155383.0 ], [ 508569.8, 155298.8 ], [ 508492.9, 155253.2 ], [ 508470.4, 155232.6 ], [ 508415.2, 155157.0 ], [ 508375.6, 155087.0 ], [ 508226.4, 155026.6 ], [ 508175.8, 154944.2 ], [ 508122.4, 154885.2 ], [ 508091.2, 154830.1 ], [ 508050.4, 154776.4 ], [ 508049.6, 154760.1 ], [ 508068.1, 154693.3 ], [ 508065.9, 154672.7 ], [ 507999.1, 154506.1 ], [ 507992.1, 154467.4 ], [ 508009.8, 154444.4 ], [ 508013.6, 154358.9 ], [ 508029.6, 154324.4 ], [ 508090.1, 154284.9 ], [ 508165.1, 154258.4 ], [ 508209.1, 154233.9 ], [ 508228.1, 154218.4 ], [ 508244.6, 154188.9 ], [ 508224.4, 154127.9 ], [ 508233.9, 154076.7 ], [ 508222.4, 153987.2 ], [ 508192.9, 153946.2 ], [ 508174.1, 153895.2 ], [ 508170.1, 153859.7 ], [ 508183.9, 153789.7 ], [ 508207.4, 153746.2 ], [ 508201.6, 153666.4 ], [ 508213.6, 153616.4 ], [ 508234.6, 153564.9 ], [ 508284.4, 153491.9 ], [ 508327.4, 153457.9 ], [ 508358.9, 153417.4 ], [ 508375.4, 153406.9 ], [ 508398.6, 153407.4 ], [ 508465.6, 153444.9 ], [ 508530.4, 153469.2 ], [ 508631.9, 153483.4 ], [ 508685.6, 153484.7 ], [ 508747.4, 153470.9 ], [ 508765.6, 153459.7 ], [ 508777.9, 153433.7 ], [ 508788.1, 153374.9 ], [ 508787.6, 153343.9 ], [ 508757.9, 153241.2 ], [ 508715.4, 153172.9 ], [ 508665.6, 153054.4 ], [ 508596.4, 152917.1 ], [ 508551.1, 152843.6 ], [ 508488.1, 152709.1 ], [ 508482.4, 152677.9 ], [ 508481.9, 152589.1 ], [ 508457.4, 152535.4 ], [ 508419.6, 152386.6 ], [ 508397.4, 152330.4 ], [ 508340.1, 152260.4 ], [ 508319.1, 152183.6 ], [ 508320.4, 152163.1 ], [ 508328.2, 152150.7 ], [ 508285.0, 152102.7 ], [ 508266.2, 152071.7 ], [ 508253.2, 152026.2 ], [ 508253.7, 151987.2 ], [ 508240.1, 151955.1 ], [ 508213.4, 151924.9 ], [ 508161.6, 151917.6 ], [ 508055.6, 151954.4 ], [ 507927.6, 152021.1 ], [ 507864.9, 152046.1 ], [ 507843.1, 152051.4 ], [ 507702.6, 152049.6 ], [ 507666.2, 152061.3 ], [ 507650.2, 152054.8 ], [ 507620.5, 152011.4 ], [ 507609.1, 151981.5 ], [ 507614.7, 151906.9 ], [ 507609.2, 151857.1 ], [ 507556.0, 151741.9 ], [ 507542.4, 151721.2 ], [ 507427.4, 151604.2 ], [ 507418.5, 151587.9 ], [ 507360.8, 151364.6 ], [ 507360.6, 151308.7 ], [ 507371.4, 151233.2 ], [ 507368.4, 151202.5 ], [ 507349.1, 151173.2 ], [ 507329.8, 151161.8 ], [ 507324.0, 151178.1 ], [ 507282.0, 151197.7 ], [ 507219.4, 151253.1 ], [ 507184.6, 151269.7 ], [ 507143.3, 151278.8 ], [ 507002.0, 151284.6 ], [ 506924.2, 151275.4 ], [ 506911.2, 151260.1 ], [ 506890.0, 151203.6 ], [ 506833.7, 151160.1 ], [ 506820.7, 151083.7 ], [ 506803.5, 151054.7 ], [ 506786.4, 151043.9 ], [ 506782.9, 150983.7 ], [ 506764.1, 150874.9 ], [ 506740.6, 150779.9 ], [ 506661.9, 150726.6 ], [ 506582.9, 150661.1 ], [ 506508.9, 150620.6 ], [ 506417.2, 150603.4 ], [ 506383.7, 150586.3 ], [ 506346.6, 150578.6 ], [ 506197.0, 150565.0 ], [ 506160.1, 150551.5 ], [ 506144.1, 150525.5 ], [ 506138.0, 150499.4 ], [ 506136.3, 150393.3 ], [ 506126.2, 150316.8 ], [ 506080.698, 150252.88 ], [ 506014.552, 150252.88 ], [ 505980.9, 150237.7 ], [ 505953.1, 150164.2 ], [ 505917.4, 150096.5 ], [ 505760.6, 149887.5 ], [ 505742.7, 149875.0 ], [ 505732.2, 149856.8 ], [ 505682.7, 149822.8 ], [ 505598.0, 149794.3 ], [ 505567.2, 149739.8 ], [ 505453.5, 149656.6 ], [ 505438.5, 149641.6 ], [ 505436.9, 149628.9 ], [ 505391.2, 149633.8 ], [ 505355.7, 149617.3 ], [ 505145.5, 149423.9 ], [ 505105.3, 149342.9 ], [ 505069.5, 149300.5 ], [ 505058.2, 149278.1 ], [ 505048.2, 149209.6 ], [ 505024.7, 149162.1 ], [ 504802.5, 148814.3 ], [ 504770.4, 148782.3 ], [ 504688.2, 148745.7 ], [ 504655.8, 148712.4 ], [ 504601.2, 148544.6 ], [ 504605.0, 148477.8 ], [ 504594.049, 148457.888 ], [ 504557.7, 148438.6 ], [ 504553.7, 148429.4 ], [ 504574.5, 148387.0 ], [ 504575.2, 148371.4 ], [ 504583.17, 148362.45 ], [ 504610.4, 148353.5 ], [ 504721.4, 148393.8 ], [ 504765.1, 148403.3 ], [ 504781.9, 148413.8 ], [ 504830.4, 148467.1 ], [ 504814.6, 148532.1 ], [ 504826.2, 148579.5 ], [ 504878.6, 148627.3 ], [ 504957.4, 148756.1 ], [ 505078.1, 148820.1 ], [ 505162.6, 148901.3 ], [ 505296.4, 148963.6 ], [ 505366.6, 148979.6 ], [ 505416.4, 149005.8 ], [ 505440.9, 149026.1 ], [ 505459.1, 149052.8 ], [ 505463.9, 149121.8 ], [ 505475.9, 149143.3 ], [ 505500.6, 149143.1 ], [ 505564.4, 149116.6 ], [ 505592.9, 149118.8 ], [ 505635.9, 149133.8 ], [ 505684.9, 149122.1 ], [ 505746.4, 149124.3 ], [ 505753.4, 149103.6 ], [ 505736.9, 149081.8 ], [ 505698.6, 149075.6 ], [ 505672.1, 149063.6 ], [ 505604.6, 149023.3 ], [ 505593.4, 149007.8 ], [ 505590.6, 148898.6 ], [ 505558.9, 148764.6 ], [ 505551.6, 148683.8 ], [ 505552.4, 148636.6 ], [ 505560.4, 148603.3 ], [ 505717.9, 148263.8 ], [ 505725.4, 148223.8 ], [ 505720.9, 148108.3 ], [ 505731.1, 148078.3 ], [ 505871.1, 148020.3 ], [ 505953.6, 147944.8 ], [ 505977.4, 147935.8 ], [ 506009.6, 147940.3 ], [ 506067.4, 147966.8 ], [ 506153.9, 147976.0 ], [ 506215.4, 148012.3 ], [ 506240.4, 148008.5 ], [ 506244.1, 147991.3 ], [ 506237.4, 147975.0 ], [ 506184.9, 147920.3 ], [ 506133.9, 147832.0 ], [ 506090.4, 147798.8 ], [ 506074.1, 147770.0 ], [ 506074.4, 147715.0 ], [ 506099.6, 147666.0 ], [ 506142.1, 147607.8 ], [ 506198.4, 147570.5 ], [ 506256.6, 147552.0 ], [ 506516.9, 147445.3 ], [ 506542.4, 147448.0 ], [ 506583.4, 147466.8 ], [ 506638.7, 147472.1 ], [ 506834.6, 147474.3 ], [ 506894.9, 147457.0 ], [ 506965.0, 147400.5 ], [ 507016.4, 147334.3 ], [ 507049.6, 147250.0 ], [ 507067.1, 147159.0 ], [ 507081.9, 147120.0 ], [ 507176.9, 147025.0 ], [ 507232.1, 146949.3 ], [ 507269.6, 146910.3 ], [ 507281.5, 146888.1 ], [ 507277.4, 146840.3 ], [ 507286.4, 146791.0 ], [ 507273.1, 146681.0 ], [ 507279.2, 146570.9 ], [ 507271.5, 146559.9 ], [ 507256.7, 146575.9 ], [ 507229.0, 146631.9 ], [ 507180.1, 146783.5 ], [ 507169.1, 146789.8 ], [ 507107.6, 146796.5 ], [ 506993.9, 146801.8 ], [ 506964.1, 146810.5 ], [ 506950.6, 146821.5 ], [ 506922.1, 146871.5 ], [ 506895.4, 146886.0 ], [ 506835.1, 146894.3 ], [ 506791.6, 146949.5 ], [ 506689.9, 146940.5 ], [ 506555.1, 146970.8 ], [ 506513.9, 146968.0 ], [ 506489.1, 146958.8 ], [ 506429.9, 146915.3 ], [ 506383.4, 146876.0 ], [ 506371.1, 146857.0 ], [ 506372.6, 146821.8 ], [ 506389.6, 146806.0 ], [ 506407.6, 146804.0 ], [ 506477.6, 146823.0 ], [ 506557.4, 146780.5 ], [ 506596.9, 146774.8 ], [ 506618.9, 146764.8 ], [ 506671.6, 146717.0 ], [ 506678.9, 146687.0 ], [ 506731.9, 146627.0 ], [ 506729.9, 146560.8 ], [ 506751.1, 146526.3 ], [ 506757.1, 146497.3 ], [ 506779.4, 146468.3 ], [ 506780.6, 146453.3 ], [ 506752.6, 146413.3 ], [ 506748.1, 146337.5 ], [ 506738.4, 146306.3 ], [ 506663.8, 146158.4 ], [ 506779.1, 145895.9 ], [ 506636.1, 145764.4 ], [ 506519.9, 145684.6 ], [ 506499.1, 145663.4 ], [ 506451.4, 145577.4 ], [ 506381.1, 145534.6 ], [ 506347.3, 145502.8 ], [ 506393.4, 145446.4 ], [ 506401.1, 145388.6 ], [ 506395.9, 145362.4 ], [ 506327.9, 145210.1 ], [ 506332.1, 145030.4 ], [ 506324.6, 145014.9 ], [ 506311.5, 145006.9 ], [ 506293.5, 145057.9 ], [ 506276.0, 145080.9 ], [ 506266.9, 145075.6 ], [ 506250.8, 145053.5 ], [ 506218.1, 144975.9 ], [ 506199.6, 144905.6 ], [ 506201.6, 144867.1 ], [ 506214.1, 144828.6 ], [ 506290.1, 144717.1 ], [ 506308.6, 144672.1 ], [ 506311.4, 144619.1 ], [ 506295.6, 144566.3 ], [ 506271.6, 144532.8 ], [ 506203.9, 144495.1 ], [ 506190.6, 144469.8 ], [ 506174.9, 144385.8 ], [ 506160.1, 144366.1 ], [ 506122.4, 144348.3 ], [ 506103.4, 144327.8 ], [ 506071.1, 144235.6 ], [ 506002.9, 144197.8 ], [ 505981.9, 144179.3 ], [ 505943.4, 144094.3 ], [ 505905.4, 144051.1 ], [ 505846.1, 144023.8 ], [ 505749.1, 143990.8 ], [ 505725.1, 143972.3 ], [ 505702.6, 143918.8 ], [ 505694.6, 143869.6 ], [ 505709.1, 143805.3 ], [ 505748.1, 143751.6 ], [ 505757.4, 143725.8 ], [ 505857.1, 143658.6 ], [ 506015.6, 143484.8 ], [ 506082.4, 143425.1 ], [ 506138.3, 143404.8 ], [ 506190.0, 143362.4 ], [ 506251.9, 143455.2 ], [ 506272.4, 143472.4 ], [ 506295.6, 143469.2 ], [ 506381.3, 143413.0 ], [ 506395.9, 143409.4 ], [ 506430.4, 143412.2 ], [ 506536.6, 143440.4 ], [ 506555.9, 143435.9 ], [ 506597.4, 143409.2 ], [ 506663.9, 143396.9 ], [ 506745.4, 143431.2 ], [ 506763.9, 143430.7 ], [ 506785.1, 143419.7 ], [ 506873.4, 143313.7 ], [ 506884.9, 143283.9 ], [ 506874.7, 143180.7 ], [ 506817.0, 143039.8 ], [ 506810.362, 143017.454 ], [ 506813.7, 143000.7 ], [ 506983.9, 142718.4 ], [ 506994.8, 142691.5 ], [ 507013.4, 142620.2 ], [ 507022.2, 142487.9 ], [ 507038.2, 142441.2 ], [ 507059.2, 142423.9 ], [ 507132.9, 142395.4 ], [ 507337.4, 142358.2 ], [ 507414.7, 142323.7 ], [ 507525.9, 142313.7 ], [ 507543.2, 142296.9 ], [ 507541.7, 142239.4 ], [ 507561.1, 142174.6 ], [ 507534.6, 142162.7 ], [ 507541.2, 142097.0 ], [ 507549.2, 142075.8 ], [ 507571.5, 142066.7 ], [ 507550.0, 142042.0 ], [ 507476.5, 141994.3 ], [ 507398.5, 141899.0 ], [ 507390.0, 141879.8 ], [ 507399.7, 141850.2 ], [ 507473.5, 141766.8 ], [ 507495.5, 141708.5 ], [ 507496.3, 141675.3 ], [ 507444.0, 141351.5 ], [ 507399.3, 141226.8 ], [ 507333.8, 141155.0 ], [ 507325.0, 141133.8 ], [ 507326.5, 141089.3 ], [ 507399.3, 140984.0 ], [ 507415.5, 140950.0 ], [ 507426.8, 140832.0 ], [ 507407.5, 140784.5 ], [ 507380.5, 140749.0 ], [ 507199.9, 140556.7 ], [ 507284.5, 140465.4 ], [ 507278.2, 140452.9 ], [ 507281.5, 140413.4 ], [ 507272.6, 140386.6 ], [ 507266.9, 140306.9 ], [ 507256.1, 140289.1 ], [ 507236.1, 140277.6 ], [ 507176.9, 140293.6 ], [ 507131.4, 140272.9 ], [ 507108.6, 140245.9 ], [ 507067.4, 140161.9 ], [ 507024.9, 140130.6 ], [ 507009.9, 140124.6 ], [ 507000.1, 140129.1 ], [ 506981.6, 140170.1 ], [ 506968.9, 140179.4 ], [ 506876.6, 140131.9 ], [ 506826.6, 140096.9 ], [ 506712.6, 139954.4 ], [ 506550.9, 139779.1 ], [ 506549.9, 139763.1 ], [ 506568.6, 139696.9 ], [ 506514.5, 139652.0 ], [ 506636.9, 139500.7 ], [ 506588.5, 139382.4 ], [ 506595.0, 139300.9 ], [ 506588.0, 139262.4 ], [ 506570.5, 139217.1 ], [ 506596.5, 139157.2 ], [ 506920.7, 138879.4 ], [ 507068.2, 138766.1 ], [ 507105.7, 138722.3 ], [ 507170.4, 138372.1 ], [ 507252.7, 138113.7 ], [ 507308.5, 137998.2 ], [ 507381.5, 137883.2 ], [ 507423.2, 137797.2 ], [ 507418.5, 137750.4 ], [ 507331.9, 137606.9 ], [ 507392.4, 137580.5 ], [ 507412.0, 137587.2 ], [ 507550.7, 137746.2 ] ], [ [ 528521.846, 185842.095 ], [ 528595.8, 185921.5 ], [ 528661.4, 185972.7 ], [ 528676.5, 186009.5 ], [ 528574.7, 186047.7 ], [ 528586.9, 186083.0 ] ], [ [ 611202.2, 265008.9 ], [ 611151.7, 265055.3 ], [ 611148.6, 265144.1 ], [ 611134.8, 265200.1 ], [ 611122.8, 265224.6 ], [ 611078.8, 265270.4 ], [ 611067.3, 265295.1 ], [ 611066.6, 265316.6 ], [ 611080.1, 265373.1 ], [ 611099.8, 265412.4 ], [ 611124.3, 265423.1 ], [ 611224.8, 265424.6 ], [ 611232.8, 265436.4 ], [ 611234.8, 265455.7 ] ], [ [ 518302.4, 173976.4 ], [ 518412.0, 174045.4 ], [ 518530.8, 174141.0 ], [ 518575.8, 174163.6 ], [ 518722.8, 174201.5 ], [ 518932.5, 174277.9 ], [ 519107.9, 174352.7 ], [ 519174.4, 174354.1 ], [ 519207.3, 174343.8 ] ], [ [ 528679.429, 186237.615 ], [ 528655.6, 186200.8 ], [ 528619.7, 186175.2 ] ], [ [ 578581.775, 245924.817 ], [ 578466.3, 245760.5 ], [ 578270.186, 245537.183 ], [ 578256.092, 245540.524 ], [ 578249.373, 245526.321 ], [ 578058.1, 245439.1 ], [ 577965.7, 245419.9 ], [ 577938.389, 245421.883 ], [ 577923.236, 245429.516 ], [ 577903.4, 245410.9 ], [ 577828.6, 245384.3 ], [ 577742.3, 245333.7 ], [ 577665.3, 245310.8 ], [ 577567.9, 245291.9 ], [ 577493.0, 245295.8 ], [ 577302.4, 245355.8 ], [ 577221.0, 245373.2 ], [ 577158.8, 245377.7 ], [ 577111.8, 245373.0 ], [ 577073.0, 245361.5 ], [ 576902.8, 245277.5 ], [ 576778.0, 245240.3 ], [ 576661.0, 245238.3 ], [ 576539.7, 245251.6 ], [ 576480.8, 245269.0 ], [ 576412.2, 245335.0 ], [ 576340.1, 245390.9 ], [ 576270.8, 245425.0 ], [ 576224.5, 245461.7 ], [ 576192.0, 245472.2 ], [ 576111.8, 245483.5 ], [ 575967.4, 245410.2 ], [ 575829.9, 245352.1 ], [ 575767.0, 245335.1 ], [ 575698.5, 245301.5 ], [ 575655.1, 245291.2 ], [ 575525.7, 245283.7 ], [ 575253.0, 245221.1 ], [ 575194.3, 245203.9 ], [ 575057.8, 245133.5 ], [ 574884.2, 245094.1 ], [ 574809.5, 245065.8 ], [ 574751.9, 245024.9 ], [ 574672.2, 245006.2 ], [ 574587.4, 244994.4 ], [ 574506.7, 244999.1 ], [ 574446.2, 245023.1 ], [ 574372.4, 245029.9 ], [ 574266.1, 245054.1 ], [ 574166.5, 245098.5 ], [ 574124.6, 245093.8 ], [ 574040.9, 245044.3 ], [ 573979.0, 244996.4 ], [ 573914.5, 244931.7 ], [ 573905.2, 244914.6 ], [ 573913.1, 244604.0 ], [ 573897.9, 244523.9 ], [ 573846.1, 244470.1 ], [ 573794.6, 244404.2 ], [ 573763.8, 244337.1 ], [ 573643.1, 244287.8 ], [ 573606.7, 244260.7 ], [ 573405.3, 244159.3 ], [ 573268.8, 244122.6 ], [ 573169.3, 244107.2 ], [ 573088.4, 244107.2 ], [ 573006.4, 244120.6 ], [ 572892.4, 244158.5 ], [ 572795.2, 244215.8 ], [ 572695.0, 244314.9 ], [ 572551.7, 244440.7 ], [ 572569.7, 244451.9 ], [ 572662.2, 244552.6 ], [ 572729.4, 244615.7 ], [ 572780.2, 244533.4 ], [ 572834.1, 244482.2 ], [ 573096.6, 244392.2 ], [ 573302.7, 244371.3 ], [ 573382.6, 244386.3 ], [ 573439.2, 244404.2 ], [ 573596.8, 244484.8 ], [ 573719.7, 244587.6 ], [ 573767.1, 244651.7 ], [ 573788.8, 244712.8 ], [ 573840.4, 245021.6 ], [ 573822.4, 245057.3 ], [ 573763.2, 245086.1 ], [ 573745.7, 245101.3 ], [ 573748.7, 245121.8 ], [ 573783.2, 245135.3 ], [ 573848.4, 245145.9 ], [ 574075.3, 245255.5 ], [ 574180.4, 245294.7 ], [ 574351.3, 245311.4 ], [ 574468.2, 245297.6 ], [ 574541.9, 245296.6 ], [ 574652.9, 245313.2 ], [ 574693.8, 245326.1 ], [ 574766.3, 245365.0 ], [ 574809.4, 245408.6 ], [ 574837.4, 245463.3 ], [ 574842.7, 245480.1 ], [ 574837.2, 245575.1 ], [ 574880.9, 245691.6 ], [ 574893.0, 245754.5 ], [ 574960.7, 245888.3 ], [ 574957.9, 245901.0 ], [ 574913.9, 245930.5 ], [ 574893.5, 245936.6 ], [ 574889.0, 245948.1 ], [ 574893.8, 245958.0 ], [ 575066.9, 245991.6 ], [ 575438.0, 246083.7 ], [ 575452.5, 246094.5 ], [ 575464.6, 246115.5 ], [ 575473.4, 246169.7 ], [ 575466.8, 246207.8 ], [ 575451.5, 246245.4 ], [ 575412.774, 246280.911 ], [ 575434.099, 246299.266 ], [ 575444.8, 246300.6 ], [ 575476.1, 246281.1 ], [ 575513.0, 246253.9 ], [ 575573.6, 246192.6 ], [ 575605.2, 246174.8 ], [ 575654.9, 246178.6 ], [ 575691.5, 246188.9 ], [ 575762.8, 246230.5 ], [ 575778.7, 246225.8 ], [ 575795.586, 246204.032 ], [ 575821.8, 246185.8 ], [ 575857.8, 246187.5 ], [ 575972.5, 246326.0 ], [ 576033.1, 246374.3 ], [ 576247.6, 246516.4 ], [ 576295.5, 246562.0 ], [ 576340.8, 246570.0 ], [ 576398.6, 246595.8 ], [ 576486.6, 246620.8 ], [ 576534.4, 246646.0 ], [ 576573.8, 246679.8 ], [ 576642.7, 246762.8 ], [ 576727.0, 246835.8 ], [ 576837.2, 246907.9 ], [ 576946.5, 246943.3 ], [ 576989.9, 246939.4 ], [ 577004.9, 246908.6 ], [ 576996.2, 246829.8 ], [ 577015.7, 246812.8 ], [ 577055.0, 246797.8 ], [ 577109.0, 246793.0 ], [ 577194.4, 246797.3 ], [ 577305.7, 246820.8 ], [ 577363.7, 246849.3 ], [ 577475.7, 246926.5 ], [ 577504.2, 246934.0 ], [ 577550.1, 246933.3 ], [ 577643.543, 247184.789 ], [ 577687.513, 247166.117 ], [ 577679.683, 247141.422 ], [ 577686.308, 247117.931 ], [ 577711.004, 247098.657 ], [ 577787.499, 247103.475 ], [ 577836.288, 247114.92 ], [ 577861.585, 247128.773 ], [ 577904.953, 247172.743 ], [ 577966.2, 247210.3 ], [ 578078.9, 247271.7 ], [ 578132.7, 247288.9 ], [ 578231.8, 247333.8 ], [ 578357.7, 247428.1 ], [ 578377.7, 247432.4 ], [ 578403.6, 247428.3 ], [ 578463.0, 247387.9 ], [ 578518.7, 247373.3 ], [ 578654.5, 247319.4 ], [ 578683.2, 247322.6 ], [ 578713.3, 247337.5 ], [ 578818.3, 247403.7 ], [ 578909.2, 247426.2 ], [ 578981.7, 247462.9 ], [ 579034.7, 247481.6 ], [ 579064.7, 247472.6 ], [ 579118.0, 247441.6 ], [ 579242.118, 247435.797 ], [ 579297.8, 247465.2 ], [ 579439.7, 247592.5 ], [ 579515.7, 247640.6 ], [ 579627.4, 247724.4 ], [ 579646.0, 247726.1 ], [ 579664.7, 247715.9 ], [ 579695.2, 247714.8 ], [ 579808.9, 247762.5 ], [ 579817.1, 247774.8 ], [ 579817.5, 247802.6 ], [ 579834.7, 247829.1 ], [ 579896.4, 247871.7 ], [ 579910.3, 247874.3 ], [ 579918.9, 247868.1 ], [ 579931.0, 247818.2 ], [ 580006.4, 247817.9 ], [ 580053.2, 247789.4 ], [ 580074.5, 247786.4 ], [ 580209.9, 247810.6 ], [ 580289.1, 247898.4 ], [ 580330.2, 247925.9 ], [ 580336.4, 247942.0 ], [ 580326.2, 247986.1 ], [ 580331.6, 248026.2 ], [ 580346.7, 248050.7 ], [ 580365.9, 248056.4 ], [ 580383.6, 248047.8 ], [ 580428.7, 248009.0 ], [ 580503.8, 248010.0 ], [ 580579.0, 248042.0 ], [ 580621.9, 248040.4 ], [ 580797.3, 248095.8 ], [ 580828.1, 248094.1 ], [ 580897.3, 248117.2 ], [ 580932.8, 248107.8 ], [ 581021.2, 248137.1 ], [ 581161.9, 248232.3 ], [ 581227.0, 248283.9 ], [ 581268.1, 248331.0 ], [ 581271.3, 248352.5 ], [ 581263.9, 248377.3 ], [ 581268.6, 248400.4 ], [ 581313.3, 248444.4 ], [ 581331.9, 248472.5 ], [ 581466.8, 248542.6 ], [ 581526.1, 248563.2 ], [ 581568.1, 248561.2 ], [ 581591.6, 248545.6 ], [ 581605.5, 248526.7 ], [ 581662.8, 248494.9 ], [ 581847.3, 248487.3 ], [ 581949.9, 248456.0 ], [ 582029.5, 248414.6 ], [ 582031.27, 248404.556 ], [ 582082.0, 248372.2 ], [ 582113.4, 248364.0 ], [ 582144.701, 248364.18 ], [ 582160.0, 248329.8 ], [ 582226.9, 248302.7 ], [ 582594.7, 248209.6 ], [ 582661.0, 248204.3 ], [ 582732.1, 248173.5 ], [ 583111.7, 248180.4 ], [ 583227.8, 248198.9 ], [ 583456.464, 248254.97 ], [ 583570.3, 248267.7 ], [ 583650.7, 248253.1 ], [ 583771.7, 248214.6 ], [ 584131.5, 248159.4 ], [ 584187.5, 248155.6 ], [ 584481.0, 248161.4 ], [ 584736.7, 248224.6 ], [ 584831.0, 248237.7 ], [ 584909.5, 248275.1 ], [ 584997.8, 248294.7 ], [ 585075.263, 248326.052 ], [ 585216.0, 248343.2 ], [ 585375.1, 248288.9 ], [ 585497.5, 248259.7 ], [ 585520.5, 248251.7 ], [ 585537.2, 248233.0 ], [ 585560.5, 248223.5 ], [ 585585.7, 248223.2 ], [ 585680.5, 248259.5 ], [ 585706.5, 248259.0 ], [ 586042.7, 248170.1 ], [ 586188.3, 248122.9 ], [ 586262.0, 248106.4 ], [ 586377.5, 248042.7 ], [ 586470.1, 248001.6 ], [ 586516.4, 247988.1 ], [ 586586.9, 247981.2 ], [ 586819.3, 247977.4 ], [ 586858.6, 247965.3 ], [ 587038.894, 247976.748 ], [ 587064.4, 247967.8 ], [ 587092.7, 247929.8 ], [ 587232.4, 247895.5 ], [ 587254.3, 247877.7 ], [ 587271.5, 247846.3 ], [ 587312.2, 247814.7 ], [ 587375.9, 247744.1 ], [ 587417.7, 247717.3 ], [ 587438.0, 247723.1 ], [ 587582.0, 247692.7 ], [ 587925.089, 247673.117 ], [ 588209.8, 247638.3 ], [ 588661.0, 247618.7 ], [ 588841.0, 247598.9 ], [ 589314.0, 247709.6 ], [ 589382.8, 247717.3 ], [ 589539.8, 247765.5 ], [ 589640.9, 247782.7 ], [ 589748.7, 247835.1 ], [ 589881.896, 247866.709 ], [ 589927.2, 247857.8 ], [ 590004.2, 247858.1 ], [ 590076.5, 247865.3 ], [ 590197.7, 247891.6 ], [ 590275.8, 247897.6 ], [ 590368.0, 247894.0 ], [ 590530.5, 247859.0 ], [ 590567.5, 247834.2 ], [ 590602.0, 247783.1 ], [ 590615.5, 247777.6 ], [ 590789.6, 247882.9 ], [ 590851.3, 247890.6 ], [ 590844.2, 247878.7 ], [ 590797.7, 247862.5 ], [ 590785.0, 247846.7 ], [ 590776.7, 247821.8 ], [ 590777.1, 247789.5 ], [ 590783.4, 247770.6 ], [ 590862.6, 247695.8 ], [ 590865.3, 247680.0 ], [ 590854.9, 247673.3 ], [ 590727.4, 247656.2 ], [ 590645.5, 247635.2 ], [ 590382.1, 247512.9 ], [ 590271.7, 247471.2 ], [ 590186.7, 247388.2 ], [ 590109.5, 247343.7 ], [ 590095.2, 247341.7 ], [ 590074.1, 247352.8 ], [ 590072.4, 247386.6 ], [ 590091.3, 247441.2 ], [ 590153.2, 247546.1 ], [ 590181.7, 247624.7 ], [ 590190.762, 247683.468 ], [ 590122.4, 247634.0 ], [ 590090.0, 247597.5 ], [ 590044.0, 247576.7 ], [ 590009.4, 247533.5 ], [ 589956.1, 247504.4 ], [ 589876.3, 247437.2 ], [ 589722.7, 247366.0 ], [ 589631.6, 247316.5 ], [ 589537.9, 247298.7 ], [ 589394.4, 247261.0 ], [ 589330.7, 247256.5 ], [ 589257.9, 247229.5 ], [ 589142.6, 247216.7 ], [ 588983.7, 247169.4 ], [ 588921.9, 247136.5 ], [ 588892.2, 247085.3 ], [ 588907.8, 246914.6 ], [ 588923.8, 246893.7 ], [ 588951.5, 246879.2 ], [ 588967.5, 246858.4 ], [ 588987.2, 246755.1 ], [ 589053.1, 246703.0 ], [ 589057.3, 246640.8 ], [ 589109.2, 246579.3 ], [ 589125.6, 246461.6 ], [ 589143.0, 246420.3 ], [ 589169.7, 246382.9 ], [ 589219.7, 246349.3 ], [ 589296.9, 246316.8 ], [ 589342.9, 246305.3 ], [ 589392.267, 246313.767 ], [ 589456.5, 246412.9 ], [ 589502.8, 246446.6 ], [ 589587.693, 246585.148 ], [ 589627.215, 246602.29 ], [ 589712.4, 246617.0 ], [ 589740.1, 246615.9 ], [ 589758.2, 246626.6 ], [ 589793.2, 246680.9 ], [ 589842.7, 246722.0 ], [ 589847.7, 246788.1 ], [ 589857.2, 246797.9 ], [ 589934.2, 246829.4 ], [ 589987.8, 246888.9 ], [ 590021.9, 246915.6 ], [ 590530.4, 247113.0 ], [ 590543.4, 247116.5 ], [ 590697.9, 247099.9 ], [ 590873.7, 247167.2 ], [ 591031.2, 247249.5 ], [ 591140.7, 247273.5 ], [ 591830.6, 247360.0 ], [ 592147.4, 247366.5 ], [ 592200.6, 247270.2 ], [ 592347.6, 247186.0 ], [ 592471.0, 247093.8 ], [ 592492.3, 247070.3 ], [ 592529.8, 246979.4 ], [ 592539.111, 246899.685 ], [ 592581.2, 246769.1 ], [ 592591.1, 246754.6 ], [ 592635.3, 246728.5 ], [ 592632.2, 246662.1 ], [ 592653.5, 246593.8 ], [ 592779.3, 246245.3 ], [ 592788.0, 246238.7 ], [ 592864.1, 246070.1 ], [ 592903.0, 246096.3 ], [ 592941.0, 246099.7 ], [ 592941.1, 246094.0 ], [ 592966.1, 246126.5 ], [ 592998.4, 246153.0 ], [ 593117.4, 246209.2 ], [ 593175.5, 246180.6 ], [ 593198.0, 246158.1 ], [ 593210.2, 246122.3 ], [ 593297.5, 245709.6 ], [ 593806.4, 245849.4 ], [ 593836.1, 245868.6 ], [ 593893.236, 245952.131 ], [ 593907.394, 245947.31 ], [ 593917.887, 245953.835 ], [ 593991.5, 245913.4 ], [ 594027.4, 245888.7 ], [ 594047.5, 245865.6 ], [ 594068.565, 245813.593 ], [ 594080.64, 245813.469 ], [ 594089.147, 245804.652 ], [ 594088.065, 245791.659 ], [ 594077.952, 245784.386 ], [ 594097.984, 245719.953 ], [ 594115.265, 245720.291 ], [ 594123.527, 245710.016 ], [ 594296.5, 245691.3 ], [ 594404.2, 245692.6 ], [ 594531.3, 245704.4 ], [ 594676.5, 245687.6 ], [ 594862.7, 245718.1 ], [ 594909.2, 245718.7 ], [ 595023.1, 245703.8 ], [ 595162.0, 245665.4 ], [ 595159.4, 245705.7 ], [ 595120.7, 245794.4 ], [ 595163.0, 245819.7 ], [ 595198.5, 245878.4 ], [ 595200.165, 245917.719 ], [ 595180.5, 245971.4 ], [ 595197.2, 246105.1 ], [ 595187.5, 246128.9 ], [ 595138.108, 246199.076 ], [ 595133.667, 246217.196 ], [ 595126.2, 246381.9 ], [ 595112.8, 246500.4 ], [ 595061.0, 246641.9 ], [ 595002.7, 246701.1 ], [ 595030.4, 246728.1 ], [ 595101.0, 246766.9 ], [ 595186.5, 246844.2 ], [ 595273.7, 247033.5 ], [ 595329.1, 247203.7 ], [ 595353.9, 247211.8 ], [ 595415.7, 247215.9 ], [ 595483.6, 247205.4 ], [ 595581.9, 247213.6 ], [ 595620.2, 247202.0 ], [ 595705.2, 247197.9 ], [ 595774.5, 247163.9 ], [ 595845.8, 247148.2 ], [ 595896.4, 247123.6 ], [ 595933.738, 247115.535 ], [ 596005.1, 247162.7 ], [ 596154.9, 247161.6 ], [ 596205.3, 247142.4 ], [ 596317.8, 247164.1 ], [ 596396.5, 247143.7 ], [ 596439.0, 247143.3 ], [ 596517.8, 247119.1 ], [ 596744.4, 247104.9 ], [ 596796.0, 247107.8 ], [ 596946.368, 247091.872 ], [ 597065.2, 247052.9 ], [ 597105.7, 247033.4 ], [ 597211.8, 247019.0 ], [ 597261.7, 247005.9 ], [ 597307.7, 246978.9 ], [ 597339.1, 246943.4 ], [ 597393.0, 246968.7 ], [ 597471.9, 246938.2 ], [ 597535.3, 246941.6 ], [ 597598.4, 246915.7 ], [ 597707.6, 246902.5 ], [ 597794.5, 246860.5 ], [ 597908.2, 246815.9 ], [ 597910.314, 246804.479 ], [ 598011.9, 246831.0 ], [ 598086.2, 246841.9 ], [ 598361.6, 246767.2 ], [ 598494.5, 246723.4 ], [ 598526.5, 246725.9 ], [ 598582.4, 246785.5 ], [ 598624.5, 246811.1 ], [ 598641.0, 246801.7 ], [ 598653.7, 246750.9 ], [ 598681.2, 246696.3 ], [ 598681.8, 246683.9 ], [ 598645.4, 246592.7 ], [ 598640.0, 246566.1 ], [ 598643.0, 246539.7 ], [ 598661.0, 246485.8 ], [ 598697.7, 246459.8 ], [ 598713.0, 246434.8 ], [ 598715.7, 246376.1 ], [ 598743.5, 246293.2 ], [ 598769.2, 246255.5 ], [ 598812.0, 246224.7 ], [ 598907.5, 246203.0 ], [ 598936.3, 246203.1 ], [ 598993.2, 246179.9 ], [ 599034.5, 246179.7 ], [ 599107.7, 246194.4 ], [ 599206.8, 246229.6 ], [ 599283.8, 246284.8 ], [ 599389.8, 246344.4 ], [ 599417.0, 246395.5 ], [ 599467.0, 246415.4 ], [ 599579.2, 246546.5 ], [ 599657.4, 246599.5 ], [ 599677.8, 246636.7 ], [ 599696.5, 246694.1 ], [ 599747.1, 246738.1 ], [ 599758.5, 246739.4 ], [ 599768.6, 246729.1 ], [ 599780.2, 246680.6 ], [ 599793.0, 246669.3 ], [ 599819.0, 246666.8 ], [ 599829.8, 246659.1 ], [ 599832.7, 246647.3 ], [ 599821.0, 246575.7 ], [ 599832.7, 246533.2 ], [ 599854.0, 246504.9 ], [ 599827.2, 246438.2 ], [ 599828.3, 246396.3 ], [ 599836.4, 246355.2 ], [ 599897.6, 246187.4 ], [ 599931.3, 246026.3 ], [ 600003.7, 245817.7 ], [ 600004.7, 245797.7 ], [ 599993.0, 245780.5 ], [ 600065.3, 245725.7 ], [ 600126.6, 245706.0 ], [ 600192.4, 245708.9 ], [ 600332.0, 245766.6 ], [ 600395.3, 245779.5 ], [ 600406.7, 245788.3 ], [ 600406.8, 245801.5 ], [ 600431.6, 245817.4 ], [ 600450.6, 245848.9 ], [ 600464.5, 245858.1 ], [ 600504.2, 245843.0 ], [ 600559.5, 245849.2 ], [ 600588.4, 245859.3 ], [ 600620.4, 245892.7 ], [ 600704.5, 245892.5 ], [ 600864.0, 245922.0 ], [ 601066.0, 245968.5 ], [ 601117.6, 245983.7 ], [ 601158.5, 246006.0 ], [ 601279.0, 246008.5 ], [ 601392.0, 246001.4 ], [ 601423.2, 246005.6 ], [ 601489.0, 246030.5 ], [ 601513.5, 246009.8 ], [ 601723.2, 246019.8 ], [ 601932.8, 246033.9 ], [ 602039.7, 246059.8 ], [ 602056.2, 246057.3 ], [ 602101.5, 246033.1 ], [ 602149.4, 246023.6 ], [ 602183.4, 246029.1 ], [ 602228.5, 246046.5 ], [ 602251.2, 246045.8 ], [ 602285.2, 246001.3 ], [ 602313.373, 245980.959 ], [ 602309.0, 246060.7 ], [ 602324.7, 246115.4 ], [ 602348.1, 246131.3 ], [ 602384.3, 246144.4 ], [ 602503.7, 246160.7 ], [ 602598.3, 246162.9 ], [ 602787.7, 246197.1 ], [ 602860.3, 246193.8 ], [ 602991.4, 246169.5 ], [ 603020.0, 246174.7 ], [ 603055.9, 246191.8 ], [ 603130.3, 246199.6 ], [ 603171.2, 246212.0 ], [ 603270.3, 246201.0 ], [ 603329.948, 246167.161 ], [ 603485.0, 246196.1 ], [ 603524.5, 246214.4 ], [ 603564.2, 246251.1 ], [ 603642.8, 246210.4 ], [ 603653.3, 246221.9 ], [ 603662.0, 246253.4 ], [ 603674.3, 246260.9 ], [ 603838.0, 246230.1 ], [ 603912.8, 246231.9 ], [ 603974.7, 246243.0 ], [ 604098.7, 246086.6 ], [ 604187.2, 246045.4 ], [ 604264.4, 245990.5 ], [ 604271.8, 245967.1 ], [ 604271.5, 245922.1 ], [ 604255.834, 245850.901 ], [ 604395.2, 245837.7 ], [ 604430.808, 245822.868 ], [ 604545.3, 245816.1 ], [ 604731.0, 245791.6 ], [ 604763.0, 245797.4 ], [ 604853.0, 245831.1 ], [ 604921.0, 245842.4 ], [ 604961.8, 245862.5 ], [ 605011.7, 245838.5 ], [ 605024.4, 245823.2 ], [ 605138.7, 245854.0 ], [ 605181.9, 245803.5 ], [ 605187.7, 245778.0 ], [ 605187.4, 245710.5 ], [ 605223.4, 245635.9 ], [ 605247.461, 245551.536 ], [ 605276.1, 245554.7 ], [ 605344.4, 245538.9 ], [ 605380.9, 245543.8 ], [ 605469.7, 245536.5 ], [ 605540.7, 245540.4 ], [ 605677.7, 245619.1 ], [ 605736.7, 245629.9 ], [ 605842.2, 245663.4 ], [ 605934.9, 245715.6 ], [ 605994.9, 245791.9 ], [ 605998.7, 245813.4 ], [ 605960.7, 245935.9 ], [ 605952.3, 245981.5 ], [ 605950.3, 246004.7 ], [ 605963.0, 246043.0 ], [ 605949.8, 246156.5 ], [ 605969.5, 246213.7 ], [ 605957.5, 246285.7 ], [ 605944.3, 246308.5 ], [ 605934.5, 246312.5 ], [ 605881.8, 246304.5 ], [ 605711.3, 246303.2 ], [ 605582.0, 246316.2 ], [ 605402.9, 246352.0 ], [ 605074.3, 246437.2 ], [ 604866.0, 246521.9 ], [ 604763.6, 246616.8 ], [ 604772.7, 246630.1 ], [ 604786.7, 246631.9 ], [ 604839.7, 246570.6 ], [ 604873.9, 246557.6 ], [ 604908.4, 246553.9 ], [ 604989.7, 246557.1 ], [ 605216.3, 246589.5 ], [ 605296.0, 246585.2 ], [ 605551.3, 246590.5 ], [ 605730.5, 246573.5 ], [ 605872.0, 246578.2 ], [ 605959.0, 246584.7 ], [ 606179.7, 246616.1 ], [ 606278.2, 246642.9 ], [ 606297.7, 246642.4 ], [ 606313.9, 246626.4 ], [ 606349.4, 246556.1 ], [ 606359.7, 246532.1 ], [ 606359.4, 246515.6 ], [ 606346.9, 246466.4 ], [ 606297.4, 246362.4 ], [ 606262.9, 246225.4 ], [ 606219.9, 246152.4 ], [ 606228.4, 246130.6 ], [ 606267.9, 246102.5 ], [ 606393.3, 246213.4 ], [ 606525.4, 246312.8 ], [ 606582.8, 246489.1 ], [ 606596.5, 246515.1 ], [ 606633.5, 246556.4 ], [ 606674.5, 246664.4 ], [ 606703.3, 246715.1 ], [ 606726.2, 246774.9 ], [ 606724.2, 246785.9 ], [ 606690.9, 246822.9 ], [ 606644.2, 246906.9 ], [ 606637.2, 246923.9 ], [ 606642.028, 246942.74 ], [ 606609.6, 246987.0 ], [ 606574.5, 247053.4 ], [ 606572.0, 247073.6 ], [ 606578.2, 247099.3 ], [ 606566.3, 247130.1 ], [ 606571.5, 247191.1 ], [ 606564.8, 247214.9 ], [ 606546.0, 247251.4 ], [ 606461.0, 247358.6 ], [ 606411.8, 247393.9 ], [ 606398.8, 247462.6 ], [ 606363.3, 247576.0 ], [ 606306.5, 247617.9 ], [ 606226.5, 247715.1 ], [ 606217.5, 247740.6 ], [ 606118.3, 247764.1 ], [ 606095.0, 247761.6 ], [ 606079.0, 247747.1 ], [ 606040.5, 247664.6 ], [ 606027.3, 247657.4 ], [ 605961.2, 247665.6 ], [ 605787.2, 247650.6 ], [ 605678.4, 247656.9 ], [ 605628.9, 247663.1 ], [ 605567.2, 247695.4 ], [ 605515.4, 247703.1 ], [ 605490.6, 247689.6 ], [ 605430.7, 247598.9 ], [ 605403.4, 247590.1 ], [ 605374.4, 247600.9 ], [ 605325.6, 247657.6 ], [ 605283.6, 247677.1 ], [ 605057.0, 247708.5 ], [ 604973.9, 247713.7 ], [ 604914.0, 247774.5 ], [ 604846.6, 247824.4 ], [ 604804.2, 247835.2 ], [ 604775.3, 247856.8 ], [ 604776.5, 247899.1 ], [ 604810.754, 247920.674 ], [ 604808.4, 247974.5 ], [ 604885.8, 248243.8 ], [ 604889.8, 248275.3 ], [ 604885.3, 248290.1 ], [ 604860.3, 248305.6 ], [ 604817.6, 248320.1 ], [ 604720.3, 248337.8 ], [ 604626.6, 248345.8 ], [ 604512.8, 248371.1 ], [ 604410.1, 248406.3 ], [ 604370.6, 248412.3 ], [ 604324.3, 248455.3 ], [ 604274.6, 248513.8 ], [ 604232.1, 248587.2 ], [ 604283.0, 248562.5 ], [ 604363.2, 248543.7 ], [ 604424.7, 248547.7 ], [ 604507.2, 248574.2 ], [ 604534.7, 248598.2 ], [ 604575.2, 248667.5 ], [ 604633.5, 248833.7 ], [ 604637.7, 248872.5 ], [ 604629.7, 248919.2 ], [ 604615.0, 248949.2 ], [ 604595.9, 248969.7 ], [ 604553.4, 248990.5 ], [ 604424.1, 249017.2 ], [ 604324.4, 249054.0 ], [ 604276.1, 249121.7 ], [ 604252.1, 249170.7 ], [ 604256.8, 249194.6 ], [ 604343.9, 249268.2 ], [ 604424.9, 249388.4 ], [ 604426.4, 249411.6 ], [ 604370.6, 249470.4 ], [ 604367.8, 249493.7 ], [ 604339.9, 249530.7 ], [ 604170.1, 249647.0 ], [ 604100.9, 249702.1 ], [ 604126.6, 249759.6 ], [ 604185.1, 249856.1 ], [ 604216.4, 249890.6 ], [ 604282.2, 249945.0 ], [ 604296.7, 249970.0 ], [ 604304.7, 250002.0 ], [ 604304.5, 250040.0 ], [ 604286.2, 250074.0 ], [ 604246.5, 250119.2 ], [ 604166.7, 250174.2 ], [ 604154.7, 250194.0 ], [ 604155.2, 250210.5 ], [ 604277.5, 250320.0 ], [ 604316.5, 250367.5 ], [ 604350.5, 250397.0 ], [ 604398.7, 250423.2 ], [ 604455.7, 250418.0 ], [ 604468.7, 250424.0 ], [ 604499.2, 250643.0 ], [ 604503.0, 250735.7 ], [ 604523.0, 250783.5 ], [ 604531.0, 250840.5 ], [ 604543.5, 250857.5 ], [ 604590.7, 250894.2 ], [ 604624.5, 250957.0 ], [ 604682.0, 250988.9 ], [ 604708.2, 251013.9 ], [ 604730.0, 251048.1 ], [ 604761.4, 251120.8 ], [ 604783.7, 251300.6 ], [ 604782.2, 251383.9 ], [ 604776.2, 251411.7 ], [ 604850.9, 251479.6 ], [ 604881.7, 251551.4 ], [ 604876.4, 251609.7 ], [ 604863.2, 251634.7 ], [ 604859.9, 251730.2 ], [ 604842.4, 251761.4 ], [ 604839.3, 251780.9 ], [ 604843.8, 251880.8 ], [ 604838.513, 251898.058 ], [ 604776.6, 251912.4 ], [ 604771.5, 251920.2 ], [ 604817.9, 252101.6 ], [ 604827.625, 252105.028 ], [ 604829.312, 252117.257 ], [ 604813.1, 252121.7 ], [ 604801.6, 252143.8 ], [ 604769.3, 252169.0 ], [ 604667.5, 252178.6 ], [ 604652.0, 252173.1 ], [ 604645.7, 252180.9 ], [ 604648.0, 252190.6 ], [ 604588.5, 252287.8 ], [ 604505.2, 252289.6 ], [ 604349.5, 252309.9 ], [ 604291.7, 252345.4 ], [ 604246.5, 252355.1 ], [ 604192.0, 252356.9 ], [ 604077.7, 252404.6 ], [ 603994.5, 252430.4 ], [ 603918.2, 252440.6 ], [ 603748.2, 252435.9 ], [ 603578.5, 252453.9 ], [ 603473.9, 252440.9 ], [ 603352.7, 252446.6 ], [ 603253.5, 252458.9 ], [ 603099.7, 252498.9 ], [ 602979.2, 252550.9 ], [ 602816.2, 252662.1 ], [ 602760.5, 252715.9 ], [ 602709.7, 252752.6 ], [ 602594.8, 252805.5 ], [ 602561.5, 252829.1 ], [ 602560.189, 252857.578 ], [ 602626.6, 252928.2 ], [ 602638.8, 252970.5 ], [ 602641.0, 253010.8 ], [ 602629.2, 253070.1 ], [ 602597.9, 253143.6 ], [ 602533.2, 253245.1 ], [ 602500.0, 253323.6 ], [ 602451.0, 253469.5 ], [ 602353.3, 253634.9 ], [ 602303.8, 253688.2 ], [ 602305.2, 253704.2 ], [ 602247.9, 253777.4 ], [ 602222.7, 253831.4 ], [ 602188.7, 253938.9 ], [ 602171.2, 253958.4 ], [ 601972.5, 254061.3 ], [ 601857.5, 254137.5 ], [ 601777.3, 254214.8 ], [ 601716.0, 254300.5 ], [ 601720.4, 254331.9 ], [ 601728.4, 254338.9 ], [ 601838.2, 254272.0 ], [ 601865.8, 254264.8 ], [ 601929.5, 254267.5 ], [ 601987.811, 254287.203 ], [ 601979.4, 254311.7 ], [ 601926.2, 254356.7 ], [ 601905.4, 254433.2 ], [ 601911.4, 254453.9 ], [ 602076.1, 254487.7 ], [ 602149.5, 254533.5 ], [ 602298.4, 254649.9 ], [ 602575.8, 254759.4 ], [ 602614.0, 254807.7 ], [ 602623.9, 254838.3 ], [ 602622.6, 254856.2 ], [ 602606.1, 254870.4 ], [ 602584.1, 254870.4 ], [ 602403.4, 254823.7 ], [ 602350.9, 254817.4 ], [ 601990.3, 254820.4 ], [ 601865.1, 254828.6 ], [ 601841.9, 254836.3 ], [ 601809.0, 254861.4 ], [ 601748.7, 254924.6 ], [ 601692.1, 254952.6 ], [ 601659.5, 254948.2 ], [ 601589.0, 254899.2 ], [ 601562.8, 254888.7 ], [ 601538.3, 254890.0 ], [ 601533.8, 254907.0 ], [ 601564.3, 254937.5 ], [ 601622.3, 254974.5 ], [ 601655.4, 255016.4 ], [ 601668.1, 255061.8 ], [ 601653.5, 255113.9 ], [ 601720.5, 255180.4 ], [ 601863.8, 255300.4 ], [ 602014.1, 255462.9 ], [ 602059.7, 255475.2 ], [ 602064.0, 255481.3 ], [ 602061.7, 255528.7 ], [ 602086.2, 255527.9 ], [ 602152.1, 255556.0 ], [ 602252.6, 255582.4 ], [ 602306.4, 255627.7 ], [ 602462.5, 255681.2 ], [ 602582.7, 255679.3 ], [ 602647.5, 255705.1 ], [ 602697.7, 255711.7 ], [ 602705.1, 255721.1 ], [ 602775.1, 255725.3 ], [ 602952.5, 255773.0 ], [ 603011.8, 255781.1 ], [ 603085.1, 255778.3 ], [ 603102.8, 255765.1 ], [ 603125.9, 255731.5 ], [ 603144.3, 255731.6 ], [ 603174.8, 255749.1 ], [ 603409.5, 255932.6 ], [ 603499.0, 255957.6 ], [ 603578.6, 256009.6 ], [ 603612.7, 256041.5 ], [ 603848.0, 256166.7 ], [ 603921.6, 256192.1 ], [ 603969.3, 256189.9 ], [ 604037.8, 256164.2 ], [ 604071.5, 256173.9 ], [ 604090.8, 256169.3 ], [ 604086.0, 256149.9 ], [ 604033.1, 256077.8 ], [ 604052.8, 256097.2 ], [ 604176.4, 256165.0 ], [ 604206.5, 256179.0 ], [ 604266.5, 256190.9 ], [ 604295.4, 256229.8 ], [ 604317.5, 256284.2 ], [ 604381.8, 256314.5 ], [ 604403.0, 256315.2 ], [ 604563.0, 256276.7 ], [ 604660.8, 256220.2 ], [ 604689.5, 256039.2 ], [ 604745.2, 255861.9 ], [ 604816.7, 255786.5 ], [ 604846.7, 255783.9 ], [ 605059.1, 255814.8 ], [ 605073.5, 255832.9 ], [ 605117.8, 255859.5 ], [ 605183.9, 255919.7 ], [ 605293.2, 256001.5 ], [ 605556.7, 256166.6 ], [ 605872.8, 256307.8 ], [ 606016.9, 256383.9 ], [ 606095.3, 256416.5 ], [ 606648.8, 256423.2 ], [ 607094.2, 256488.5 ], [ 607243.7, 256525.0 ], [ 607413.2, 256578.2 ], [ 607546.1, 256630.3 ], [ 607773.6, 256731.7 ], [ 608071.1, 256834.4 ], [ 608249.4, 256880.7 ], [ 608328.0, 256888.1 ], [ 608405.7, 256887.1 ], [ 608650.4, 256863.8 ], [ 608686.7, 256851.8 ], [ 608698.2, 256828.1 ], [ 608691.2, 256799.8 ], [ 608675.0, 256778.8 ], [ 608636.7, 256750.3 ], [ 608542.6, 256712.3 ], [ 608454.0, 256694.0 ], [ 608380.0, 256690.8 ], [ 608369.0, 256684.7 ], [ 608499.1, 256662.1 ], [ 608589.1, 256658.5 ], [ 608748.3, 256666.3 ], [ 608888.4, 256755.2 ], [ 608969.4, 256831.1 ], [ 609034.3, 256907.4 ], [ 609078.9, 257005.1 ], [ 609086.8, 257034.8 ], [ 609089.7, 257090.7 ], [ 609080.3, 257156.8 ], [ 609072.5, 257191.6 ], [ 609045.6, 257255.3 ], [ 609030.1, 257271.3 ], [ 608977.1, 257289.6 ], [ 608904.2, 257384.5 ], [ 608822.9, 257450.8 ], [ 608799.1, 257502.8 ], [ 608792.9, 257565.6 ], [ 608781.9, 257592.3 ], [ 608703.0, 257606.8 ], [ 608510.4, 257684.4 ], [ 608372.1, 257780.6 ], [ 608315.4, 257840.2 ], [ 608389.6, 257824.8 ], [ 608488.2, 257791.8 ], [ 608542.9, 257801.5 ], [ 608609.4, 257797.8 ], [ 608720.9, 257783.8 ], [ 608759.1, 257773.0 ], [ 608798.2, 257751.6 ], [ 608816.6, 257760.9 ], [ 608904.958, 257697.772 ], [ 608933.4, 257711.0 ], [ 609052.9, 257823.0 ], [ 609060.4, 257848.0 ], [ 609065.1, 257922.8 ], [ 609056.9, 258055.0 ], [ 609079.4, 258188.3 ], [ 609201.5, 258153.0 ], [ 609217.8, 258263.8 ], [ 609344.2, 258242.6 ], [ 609364.0, 258308.1 ], [ 609303.5, 258319.4 ], [ 609311.4, 258388.4 ], [ 609289.8, 258394.4 ], [ 609321.4, 258509.8 ], [ 609009.4, 258602.1 ], [ 609080.8, 258906.6 ], [ 609161.3, 259415.8 ], [ 609197.5, 259418.6 ], [ 609263.9, 259563.8 ], [ 609265.9, 259628.0 ], [ 609250.1, 259722.0 ], [ 609258.9, 259776.3 ], [ 609323.7, 259889.3 ], [ 609495.2, 260057.9 ], [ 609507.8, 260040.0 ], [ 609615.7, 260035.2 ], [ 609754.2, 260042.2 ], [ 609860.5, 260055.9 ], [ 609880.2, 260065.9 ], [ 609886.5, 260080.4 ], [ 609891.2, 260150.7 ], [ 609867.4, 260276.3 ], [ 609999.69, 260482.371 ], [ 609943.711, 260496.735 ], [ 610009.7, 260638.1 ], [ 610034.2, 260656.8 ], [ 610123.3, 260701.2 ], [ 610140.4, 260716.3 ], [ 610188.9, 260795.1 ], [ 610245.6, 260855.0 ], [ 610310.4, 260900.1 ], [ 610357.718, 260914.277 ], [ 610362.4, 260932.5 ], [ 610340.6, 260963.5 ], [ 610403.6, 261006.9 ], [ 610424.1, 261018.6 ], [ 610498.4, 261032.2 ], [ 610510.2, 261047.3 ], [ 610506.697, 261068.118 ], [ 610709.9, 261117.2 ], [ 610799.1, 261149.0 ], [ 610777.6, 261170.6 ], [ 610778.4, 261192.6 ], [ 610865.2, 261371.4 ], [ 610835.1, 261375.2 ], [ 610786.9, 261365.5 ], [ 610619.1, 261360.7 ], [ 610537.9, 261343.2 ], [ 610560.1, 261391.5 ], [ 610591.0, 261437.2 ], [ 610588.4, 261542.7 ], [ 610608.6, 261645.2 ], [ 610662.6, 261754.2 ], [ 610722.9, 261826.0 ], [ 610779.9, 261844.7 ], [ 610895.7, 261845.0 ], [ 610892.5, 261876.0 ], [ 610880.5, 261908.8 ], [ 610900.9, 262080.9 ], [ 611139.0, 262129.5 ], [ 611189.9, 262133.9 ], [ 611321.9, 262575.3 ], [ 611378.4, 262846.3 ], [ 611391.6, 262974.3 ], [ 611432.1, 263188.6 ], [ 611432.9, 263217.1 ], [ 611395.9, 263384.1 ], [ 611386.9, 263454.6 ], [ 611361.8, 263533.6 ], [ 611353.1, 263616.1 ], [ 611372.332, 263738.333 ], [ 611375.7, 263836.7 ], [ 611399.8, 263899.5 ], [ 611400.0, 264033.1 ], [ 611369.6, 264149.2 ], [ 611336.8, 264154.1 ], [ 611316.1, 264164.1 ], [ 611287.6, 264194.9 ], [ 611301.8, 264469.6 ], [ 611291.8, 264537.4 ], [ 611264.8, 264580.9 ], [ 611202.3, 264625.9 ], [ 611186.1, 264659.1 ], [ 611187.919, 264795.453 ], [ 611215.3, 264897.6 ], [ 611202.2, 265008.9 ] ] ] } } -, -{ "type": "Feature", "properties": { "FID": 2.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 645424.9, 185831.1 ], [ 645468.999, 185782.827 ], [ 645426.0, 185734.6 ], [ 645464.6, 185672.1 ], [ 645521.5, 185625.8 ], [ 645548.6, 185570.0 ], [ 645600.1, 185550.3 ], [ 645629.2, 185507.7 ], [ 645667.7, 185469.6 ], [ 645742.1, 185445.0 ], [ 645791.1, 185445.2 ], [ 645905.6, 185362.5 ], [ 645900.5, 185327.3 ], [ 645970.9, 185296.1 ], [ 645982.7, 185261.7 ], [ 646061.7, 185184.0 ], [ 646089.7, 185130.5 ], [ 646127.3, 185082.4 ], [ 646143.3, 185047.5 ], [ 646200.5, 185017.8 ], [ 646282.0, 184990.5 ], [ 646300.1, 184976.1 ], [ 646361.5, 184874.1 ], [ 646366.3, 184856.1 ], [ 646388.3, 184825.5 ], [ 646432.5, 184784.7 ], [ 646435.1, 184751.9 ] ], [ [ 559342.104, 142940.163 ], [ 559302.015, 143023.834 ], [ 559311.005, 143028.045 ], [ 559314.085, 143039.132 ], [ 559349.617, 143056.25 ], [ 559360.931183, 143054.964848 ] ], [ [ 755687.4, 260651.8 ], [ 755687.2, 260665.4 ], [ 755697.6, 260679.7 ], [ 755620.1, 260641.9 ], [ 755536.396, 260628.133 ], [ 755286.4, 260604.4 ], [ 755255.9, 260593.4 ], [ 755139.1, 260637.4 ], [ 755020.9, 260671.1 ], [ 754823.834, 260699.148 ], [ 754712.4, 260757.1 ], [ 754729.417, 260727.76 ], [ 754731.8, 260702.8 ], [ 754710.4, 260619.6 ], [ 754710.6, 260576.1 ], [ 754676.7, 260479.6 ], [ 754654.9, 260387.1 ], [ 754679.8, 260381.2 ], [ 754651.2, 260320.4 ], [ 754583.0, 260295.6 ], [ 754520.2, 260256.7 ], [ 754458.5, 260056.2 ], [ 754450.2, 260005.1 ], [ 754502.8, 259989.1 ], [ 754636.8, 259985.3 ], [ 754659.7, 259979.0 ], [ 754761.8, 260017.8 ], [ 754774.9, 260014.9 ], [ 754760.1, 259971.7 ], [ 754770.1, 259793.6 ], [ 754963.9, 259705.2 ], [ 755097.2, 259603.2 ], [ 755123.0, 259563.5 ], [ 755108.1, 259470.5 ], [ 755111.9, 259383.8 ], [ 755131.5, 259376.6 ], [ 755200.2, 259416.3 ], [ 755222.7, 259418.3 ], [ 755238.2, 259412.6 ], [ 755246.5, 259402.1 ], [ 755246.7, 259382.6 ], [ 755209.0, 259316.8 ], [ 755209.0, 259299.6 ], [ 755222.5, 259291.1 ], [ 755335.0, 259266.0 ], [ 755344.7, 259250.5 ], [ 755283.7, 259239.5 ], [ 755259.5, 259227.3 ], [ 755147.4, 259118.1 ], [ 755095.1, 259133.3 ], [ 755077.6, 259119.8 ], [ 755051.1, 259081.1 ], [ 755033.8, 259073.7 ], [ 755006.6, 259068.7 ], [ 754953.1, 259091.1 ], [ 754892.2, 259076.8 ], [ 754852.6, 259058.1 ], [ 754814.9, 259025.8 ], [ 754737.4, 258932.0 ], [ 754712.6, 258896.1 ], [ 754697.3, 258848.0 ], [ 754644.9, 258798.8 ], [ 754635.0, 258777.4 ], [ 754631.4, 258737.5 ], [ 754547.0, 258661.6 ], [ 754536.1, 258637.1 ], [ 754561.4, 258638.8 ], [ 754594.9, 258651.6 ], [ 754644.0, 258648.6 ], [ 754772.1, 258608.7 ], [ 754818.4, 258629.3 ], [ 754839.4, 258631.6 ], [ 754849.5, 258624.1 ], [ 754863.6, 258589.9 ], [ 754886.5, 258572.1 ], [ 754913.3, 258569.1 ], [ 754974.4, 258592.0 ], [ 755005.4, 258591.3 ], [ 755038.5, 258573.0 ], [ 755063.5, 258539.5 ], [ 755100.3, 258557.6 ], [ 755182.1, 258574.9 ], [ 755232.2, 258602.8 ], [ 755261.5, 258599.5 ], [ 755287.1, 258584.1 ], [ 755304.9, 258580.8 ], [ 755435.1, 258611.7 ], [ 755461.5, 258629.9 ], [ 755499.3, 258621.3 ], [ 755598.1, 258692.2 ], [ 755637.0, 258683.5 ], [ 755673.8, 258705.7 ], [ 755737.2, 258709.4 ], [ 755756.1, 258693.0 ], [ 755692.9, 258649.1 ], [ 755645.0, 258605.2 ], [ 755536.6, 258487.2 ], [ 755465.4, 258462.8 ], [ 755390.1, 258394.1 ], [ 755131.8, 258106.4 ], [ 755103.9, 258051.5 ], [ 755074.9, 257966.8 ], [ 755075.5, 257942.7 ], [ 755085.7, 257919.0 ], [ 755108.6, 257893.2 ], [ 755095.6, 257865.5 ], [ 755109.6, 257863.2 ], [ 755123.6, 257878.5 ], [ 755107.8, 257926.3 ], [ 755118.1, 257958.3 ], [ 755207.2, 258029.1 ], [ 755339.2, 258079.4 ], [ 755355.6, 258080.7 ], [ 755357.9, 258071.7 ], [ 755292.4, 257984.9 ], [ 755261.9, 257927.4 ], [ 755257.4, 257904.2 ], [ 755278.1, 257865.1 ], [ 755453.9, 257689.3 ], [ 755508.3, 257648.5 ], [ 755522.3, 257644.2 ], [ 755586.8, 257650.6 ], [ 755703.8, 257682.7 ], [ 755740.0, 257674.9 ], [ 755570.7, 257537.9 ], [ 755592.8, 257518.0 ], [ 755597.3, 257497.8 ], [ 755569.9, 257450.9 ], [ 755539.5, 257373.1 ], [ 755535.8, 257349.4 ], [ 755547.2, 257306.6 ], [ 755535.6, 257245.5 ], [ 755541.5, 257217.4 ], [ 755538.7, 257192.2 ], [ 755493.2, 257093.4 ], [ 755461.2, 257042.6 ], [ 755408.0, 256998.3 ], [ 755398.6, 256976.1 ], [ 755392.1, 256925.9 ], [ 755366.8, 256898.8 ], [ 755325.2, 256834.5 ], [ 755323.2, 256809.7 ], [ 755294.7, 256787.2 ], [ 755292.5, 256754.5 ], [ 755307.9, 256725.9 ], [ 755408.5, 256786.5 ], [ 755621.0, 256813.0 ], [ 755727.8, 256848.5 ], [ 755801.8, 256889.0 ], [ 755816.6, 256880.7 ], [ 755864.1, 256894.2 ], [ 755935.1, 256888.2 ], [ 756042.5, 256921.5 ], [ 756132.2, 256923.3 ], [ 756162.5, 256917.3 ], [ 756192.6, 256902.7 ], [ 756252.4, 256840.2 ], [ 756315.1, 256700.2 ], [ 756325.6, 256685.7 ], [ 756337.9, 256680.5 ], [ 756349.9, 256688.0 ], [ 756356.6, 256712.7 ], [ 756374.1, 256736.7 ], [ 756423.4, 256760.5 ], [ 756601.1, 256804.0 ], [ 756717.5, 256841.0 ], [ 756944.0, 256884.2 ], [ 756972.1, 256879.7 ], [ 757022.6, 256850.5 ], [ 757038.6, 256835.2 ], [ 757092.7, 256743.9 ], [ 757127.1, 256725.7 ], [ 757150.9, 256722.5 ], [ 757171.1, 256738.0 ], [ 757201.4, 256810.7 ], [ 757220.9, 256822.2 ], [ 757250.0, 256816.6 ], [ 757332.9, 256766.0 ], [ 757371.4, 256766.5 ], [ 757391.9, 256774.0 ], [ 757432.3, 256837.9 ], [ 757457.9, 256900.0 ], [ 757490.9, 256957.5 ], [ 757520.0, 256982.1 ], [ 757588.4, 257000.0 ], [ 757762.7, 257208.2 ], [ 758071.8, 257012.3 ] ], [ [ 662054.350617, 193534.006904 ], [ 662048.6, 193524.2 ] ], [ [ 662054.350617, 193534.006904 ], [ 662081.6, 193509.9 ], [ 662084.1, 193495.2 ], [ 662070.1, 193489.7 ], [ 662049.1, 193496.2 ], [ 662044.8, 193512.0 ], [ 662048.6, 193524.2 ] ], [ [ 662054.350617, 193534.006904 ], [ 661952.9, 193610.5 ], [ 661896.6, 193533.4 ], [ 661800.8, 193713.1 ], [ 661630.6, 193800.6 ], [ 661622.6, 193825.9 ], [ 661624.5, 193904.6 ], [ 661611.7, 193966.9 ], [ 661618.9, 194000.0 ], [ 661619.7, 194052.0 ], [ 661476.401, 194066.944 ], [ 661496.2, 194152.9 ], [ 661498.5, 194200.6 ], [ 661467.0, 194206.5 ], [ 661436.4, 194229.5 ], [ 661327.5, 194189.5 ], [ 661230.0, 194139.5 ], [ 661201.0, 194135.2 ], [ 661162.3, 194117.5 ], [ 661036.7, 194007.7 ], [ 660944.7, 193873.2 ], [ 660915.5, 193779.0 ], [ 660867.5, 193708.7 ], [ 660828.5, 193683.7 ], [ 660753.0, 193658.9 ], [ 660646.5, 193581.2 ], [ 660622.5, 193554.0 ], [ 660596.1, 193497.1 ], [ 660576.8, 193420.3 ], [ 660489.0, 193305.5 ], [ 660425.8, 193175.8 ], [ 660221.4, 192925.6 ], [ 660178.4, 192856.0 ], [ 660067.7, 192742.5 ], [ 660000.0, 192626.2 ], [ 659929.5, 192549.5 ], [ 659853.2, 192439.5 ], [ 659771.5, 192384.2 ], [ 659750.5, 192323.2 ], [ 659600.5, 192114.0 ], [ 659439.9, 191990.5 ], [ 659384.7, 191981.0 ], [ 659203.9, 191814.8 ], [ 659114.3, 191777.7 ], [ 659095.2, 191750.6 ], [ 659076.0, 191668.8 ], [ 659019.3, 191615.9 ], [ 658961.7, 191583.5 ], [ 658865.7, 191509.0 ], [ 658847.7, 191502.4 ], [ 658773.0, 191504.1 ], [ 658760.9, 191496.4 ], [ 658689.3, 191399.1 ], [ 658350.7, 191174.6 ], [ 658245.1, 191139.6 ], [ 658126.0, 191057.9 ], [ 657952.7, 190962.5 ], [ 657816.4, 190896.0 ], [ 657699.9, 190822.9 ], [ 657662.3, 190790.8 ], [ 657409.7, 190506.0 ], [ 657376.2, 190481.7 ], [ 657336.2, 190437.2 ], [ 657268.9, 190406.7 ], [ 657215.2, 190402.0 ], [ 657089.7, 190314.5 ], [ 656999.2, 190209.7 ], [ 656902.2, 190211.0 ], [ 656858.2, 190198.0 ], [ 656663.2, 190045.5 ], [ 656566.7, 189911.0 ], [ 656512.2, 189858.0 ], [ 656389.7, 189783.5 ], [ 656156.1, 189659.8 ], [ 656129.3, 189629.6 ], [ 656103.4, 189580.6 ], [ 656083.6, 189559.0 ], [ 656002.1, 189557.0 ], [ 655980.4, 189546.2 ], [ 655913.6, 189454.8 ], [ 655838.8, 189307.2 ], [ 655816.1, 189249.9 ], [ 655809.2, 189212.2 ], [ 655806.0, 189119.8 ], [ 655575.5, 189098.8 ], [ 655359.8, 189057.2 ], [ 655228.3, 189050.7 ], [ 655155.9, 189030.8 ], [ 655132.4, 189018.0 ], [ 655099.8, 188846.6 ], [ 655043.4, 188772.4 ], [ 654977.0, 188655.9 ], [ 654887.0, 188621.1 ], [ 654775.4, 188567.0 ], [ 654779.7, 188469.1 ], [ 654714.4, 188357.8 ], [ 654605.4, 188276.4 ], [ 654567.1, 188260.7 ], [ 654510.4, 188250.0 ], [ 654491.4, 188234.3 ], [ 654435.2, 188206.8 ], [ 654334.6, 188126.6 ], [ 654345.1, 188093.8 ], [ 654342.1, 188087.1 ], [ 654310.0, 188025.6 ], [ 654282.0, 188009.8 ], [ 654280.8, 187997.5 ], [ 654294.3, 187967.4 ], [ 654345.7, 187911.1 ], [ 654354.2, 187854.3 ], [ 654346.0, 187828.5 ], [ 654344.6, 187759.9 ], [ 654369.2, 187730.8 ], [ 654440.8, 187688.8 ], [ 654450.8, 187674.5 ], [ 654453.8, 187652.8 ], [ 654443.2, 187608.1 ], [ 654460.8, 187405.7 ], [ 654471.9, 187369.7 ], [ 654577.9, 187242.8 ], [ 654648.5, 187115.8 ], [ 654688.1, 186937.9 ], [ 654665.8, 186921.8 ], [ 654637.7, 186883.9 ], [ 654589.9, 186846.9 ], [ 654533.1, 186922.7 ], [ 654501.7, 186953.7 ], [ 654385.1, 187026.9 ], [ 654338.4, 187045.2 ], [ 654148.6, 187093.7 ], [ 654086.6, 187101.3 ], [ 654061.5, 187114.3 ], [ 654052.0, 187128.1 ], [ 654050.3, 187157.4 ], [ 654056.9, 187174.5 ], [ 654095.5, 187217.9 ], [ 654137.2, 187338.2 ], [ 654140.1, 187354.4 ], [ 654129.4, 187428.3 ], [ 654116.5, 187496.4 ], [ 654083.6, 187541.8 ], [ 654083.2, 187667.9 ], [ 654055.7, 187758.4 ], [ 653984.8, 187890.8 ], [ 653966.5, 187909.6 ], [ 653903.0, 187944.8 ], [ 653898.7, 187933.4 ], [ 653929.5, 187858.3 ], [ 653932.9, 187831.6 ], [ 653907.2, 187728.0 ], [ 653913.2, 187706.5 ], [ 653933.6, 187675.7 ], [ 653933.4, 187662.1 ], [ 653814.1, 187529.4 ], [ 653731.4, 187506.0 ], [ 653720.4, 187494.0 ], [ 653703.5, 187449.6 ], [ 653620.7, 187355.9 ], [ 653609.4, 187357.7 ], [ 653606.2, 187369.6 ], [ 653648.2, 187418.2 ], [ 653663.9, 187455.0 ], [ 653666.3, 187481.7 ], [ 653651.1, 187616.0 ], [ 653639.9, 187654.4 ], [ 653624.5, 187680.3 ], [ 653597.0, 187705.6 ], [ 653573.0, 187721.6 ], [ 653558.7, 187725.9 ], [ 653550.5, 187720.9 ], [ 653552.8, 187635.8 ], [ 653546.1, 187596.3 ], [ 653532.5, 187563.7 ], [ 653509.5, 187529.1 ], [ 653493.9, 187517.3 ], [ 653466.0, 187519.6 ], [ 653427.0, 187510.6 ], [ 653418.7, 187519.7 ], [ 653427.8, 187541.3 ], [ 653470.5, 187554.6 ], [ 653466.2, 187590.6 ], [ 653452.0, 187618.2 ], [ 653439.5, 187616.6 ], [ 653416.4, 187587.7 ], [ 653349.7, 187576.9 ], [ 653341.3, 187568.8 ], [ 653332.1, 187537.0 ], [ 653304.2, 187502.6 ], [ 653303.0, 187487.6 ], [ 653329.7, 187434.1 ], [ 653337.0, 187355.6 ], [ 653345.2, 187339.7 ], [ 653389.1, 187296.4 ], [ 653393.4, 187264.7 ], [ 653384.5, 187248.3 ], [ 653344.0, 187218.6 ], [ 653273.4, 187219.7 ], [ 653235.1, 187205.5 ], [ 653213.4, 187155.6 ], [ 653181.7, 187131.9 ], [ 653142.2, 187125.6 ], [ 653097.9, 187128.5 ], [ 653086.8, 187119.2 ], [ 653046.7, 187027.6 ], [ 653048.0, 187012.1 ], [ 653075.5, 186971.1 ], [ 653066.5, 186931.2 ], [ 653046.5, 186905.3 ], [ 653001.0, 186865.6 ], [ 652981.6, 186831.1 ], [ 652971.5, 186779.0 ], [ 652956.6, 186762.8 ], [ 652916.4, 186734.1 ], [ 652872.7, 186723.1 ], [ 652859.7, 186707.9 ], [ 652867.2, 186679.4 ], [ 652910.9, 186628.8 ], [ 652917.0, 186616.4 ], [ 652913.5, 186599.6 ], [ 652898.2, 186600.1 ], [ 652871.5, 186638.1 ], [ 652822.7, 186651.1 ], [ 652805.1, 186677.5 ], [ 652777.3, 186701.9 ], [ 652772.8, 186714.9 ], [ 652777.1, 186730.2 ], [ 652838.6, 186811.3 ], [ 652851.1, 186901.2 ], [ 652845.1, 186922.4 ], [ 652796.4, 186898.7 ], [ 652764.3, 186899.2 ], [ 652720.4, 186943.4 ], [ 652679.2, 186954.3 ], [ 652611.4, 186952.1 ], [ 652544.6, 186913.6 ], [ 652518.5, 186937.5 ], [ 652505.7, 186840.5 ], [ 652509.5, 186753.9 ], [ 652499.9, 186742.0 ], [ 652480.9, 186749.0 ], [ 652438.0, 186805.9 ], [ 652421.0, 186819.0 ], [ 652336.5, 186785.5 ], [ 652321.5, 186797.0 ], [ 652305.1, 186859.5 ], [ 652288.334, 186855.44 ], [ 652287.101, 186863.662 ], [ 652270.4, 186872.7 ], [ 652257.4, 186918.4 ], [ 652230.6, 186943.7 ], [ 652221.9, 187012.8 ], [ 652208.0, 187055.8 ], [ 652158.8, 187107.3 ], [ 652166.8, 187148.5 ], [ 652151.7, 187208.9 ], [ 652135.9, 187212.9 ], [ 652105.4, 187179.2 ], [ 652094.7, 187180.1 ], [ 652073.7, 187195.3 ], [ 652059.9, 187219.9 ], [ 652049.5, 187274.6 ], [ 652033.1, 187312.8 ], [ 652034.9, 187391.8 ], [ 652015.6, 187395.3 ], [ 651995.9, 187366.4 ], [ 651946.1, 187248.6 ], [ 651936.2, 187197.5 ], [ 651940.0, 187169.5 ], [ 651932.2, 187165.3 ], [ 651906.3, 187169.4 ], [ 651880.5, 187153.5 ], [ 651872.1, 187155.6 ], [ 651869.4, 187165.1 ], [ 651877.2, 187188.7 ], [ 651872.8, 187194.7 ], [ 651805.4, 187216.9 ], [ 651769.0, 187213.5 ], [ 651748.3, 187197.3 ], [ 651676.6, 187112.6 ], [ 651626.6, 186986.5 ], [ 651524.6, 186873.0 ], [ 651500.7, 186824.2 ], [ 651484.6, 186759.5 ], [ 651430.5, 186689.8 ], [ 651357.8, 186646.4 ], [ 651352.6, 186608.1 ], [ 651334.9, 186578.0 ], [ 651334.8, 186552.8 ], [ 651315.9, 186493.2 ], [ 651254.9, 186398.7 ], [ 651254.9, 186225.0 ], [ 651309.9, 186233.1 ], [ 651395.1, 186233.4 ], [ 651473.9, 186274.3 ], [ 651508.742, 186284.432 ], [ 651488.2, 186219.6 ], [ 651476.5, 186200.3 ], [ 651391.2, 186162.3 ], [ 651304.2, 186088.8 ], [ 651209.7, 186057.2 ], [ 651049.4, 185974.4 ], [ 650972.0, 185948.8 ], [ 650911.2, 185920.7 ], [ 650780.0, 185913.0 ], [ 650687.0, 185930.5 ], [ 650640.9, 185927.5 ], [ 650603.4, 185933.7 ], [ 650578.4, 185959.6 ], [ 650571.8, 185980.2 ], [ 650574.2, 186018.7 ], [ 650544.2, 186068.6 ], [ 650575.1, 186129.2 ], [ 650570.1, 186275.8 ], [ 650552.2, 186420.0 ], [ 650541.2, 186440.2 ], [ 650517.0, 186445.8 ], [ 650478.4, 186423.6 ], [ 650457.3, 186398.3 ], [ 650443.4, 186318.2 ], [ 650450.6, 186268.7 ], [ 650407.5, 186147.2 ], [ 650287.9, 186005.7 ], [ 650229.1, 185907.6 ], [ 650177.7, 185865.7 ], [ 650080.7, 185742.4 ], [ 650082.8, 185669.6 ], [ 650072.7, 185653.0 ], [ 650037.1, 185630.4 ], [ 649994.7, 185621.5 ], [ 649974.0, 185603.5 ], [ 649970.5, 185529.0 ], [ 649956.5, 185506.2 ], [ 649816.0, 185486.1 ], [ 649793.8, 185465.0 ], [ 649773.7, 185455.7 ], [ 649720.4, 185404.4 ], [ 649585.2, 185407.7 ], [ 649509.3, 185444.4 ], [ 649443.9, 185431.6 ], [ 649389.7, 185450.7 ], [ 649265.6, 185422.3 ], [ 649200.7, 185455.7 ], [ 649169.9, 185458.9 ], [ 649152.1, 185453.7 ], [ 649099.4, 185400.7 ], [ 649013.0, 185366.7 ], [ 648907.4, 185253.4 ], [ 648876.0, 185233.6 ], [ 648846.4, 185227.6 ], [ 648773.2, 185249.5 ], [ 648679.8, 185252.1 ], [ 648591.8, 185245.9 ], [ 648495.4, 185208.3 ], [ 648407.7, 185191.3 ], [ 648391.7, 185181.7 ], [ 648387.1, 185138.1 ], [ 648380.9, 185122.0 ], [ 648366.2, 185112.5 ], [ 648306.7, 185104.9 ], [ 648281.9, 185116.7 ], [ 648263.4, 185116.4 ], [ 648212.2, 185082.3 ], [ 648175.5, 185021.5 ], [ 648172.7, 185006.7 ], [ 648183.2, 185004.2 ], [ 648207.1, 185028.7 ], [ 648240.1, 185046.9 ], [ 648258.2, 185048.6 ], [ 648276.3, 185041.7 ], [ 648316.6, 184996.4 ], [ 648360.9, 184926.1 ], [ 648422.3, 184864.3 ], [ 648482.2, 184761.1 ], [ 648545.1, 184692.0 ], [ 648569.5, 184675.2 ], [ 648629.5, 184650.4 ], [ 648690.4, 184600.5 ], [ 648746.6, 184588.9 ], [ 648854.7, 184589.1 ], [ 648860.2, 184582.9 ], [ 648853.2, 184575.1 ], [ 648497.6, 184532.8 ], [ 648458.4, 184506.8 ], [ 648366.9, 184411.2 ], [ 648327.7, 184392.2 ], [ 648262.5, 184382.4 ], [ 648212.2, 184358.3 ], [ 648132.0, 184333.5 ], [ 648120.5, 184339.7 ], [ 648093.2, 184376.2 ], [ 648049.9, 184403.2 ], [ 647979.5, 184406.1 ], [ 647940.0, 184419.1 ], [ 647847.5, 184398.1 ], [ 647799.7, 184401.1 ], [ 647714.2, 184432.3 ], [ 647651.9, 184445.0 ], [ 647597.0, 184485.3 ], [ 647561.6, 184491.2 ], [ 647519.8, 184480.6 ], [ 647456.9, 184446.7 ], [ 647412.8, 184413.2 ], [ 647341.8, 184338.7 ], [ 647320.0, 184329.2 ], [ 647288.3, 184331.9 ], [ 647264.7, 184343.7 ], [ 647248.6, 184361.8 ], [ 647240.8, 184430.9 ], [ 647064.8, 184332.8 ], [ 647009.1, 184321.3 ], [ 646958.7, 184330.5 ], [ 646821.5, 184400.7 ], [ 646740.7, 184422.8 ], [ 646703.0, 184439.5 ], [ 646602.5, 184553.1 ], [ 646570.1, 184606.8 ], [ 646527.9, 184652.8 ], [ 646476.2, 184680.6 ], [ 646435.1, 184751.9 ] ], [ [ 723167.4, 221684.3 ], [ 722968.2, 221848.3 ] ], [ [ 723167.4, 221684.3 ], [ 723120.2, 221628.6 ], [ 723099.2, 221592.0 ], [ 723052.2, 221471.9 ], [ 723007.8, 221418.3 ], [ 722909.3, 221327.3 ], [ 722729.8, 220969.0 ], [ 722711.6, 220947.9 ], [ 722613.0, 220785.5 ], [ 722594.6, 220768.7 ], [ 722523.4, 220725.5 ], [ 722519.0, 220731.6 ], [ 722460.7, 220738.2 ], [ 722190.9, 220727.9 ], [ 722146.9, 220709.1 ], [ 722068.3, 220636.1 ], [ 722046.3, 220623.3 ], [ 721865.6, 220562.0 ], [ 721866.177, 220570.141 ], [ 721903.043, 220581.991 ], [ 721952.637, 220624.124 ], [ 721958.343, 220650.018 ], [ 721994.331, 220687.763 ], [ 721996.087, 220701.368 ], [ 721989.065, 220702.685 ], [ 721814.388, 220614.029 ], [ 721785.422, 220619.735 ], [ 721774.449, 220615.346 ], [ 721741.094, 220595.157 ], [ 721721.742, 220572.036 ], [ 721714.286, 220572.334 ], [ 721711.303, 220585.755 ], [ 721761.408, 220663.745 ], [ 721824.336, 220705.797 ], [ 721849.091, 220746.955 ], [ 721999.106, 220830.015 ], [ 722003.281, 220859.541 ], [ 722014.316, 220882.058 ], [ 722005.965, 220930.969 ], [ 721977.036, 220951.25 ], [ 721966.597, 220972.723 ], [ 721960.334, 220974.513 ], [ 721950.492, 220960.793 ], [ 721967.194, 220936.636 ], [ 721962.422, 220919.934 ], [ 721866.388, 220888.47 ], [ 721838.652, 220862.225 ], [ 721807.3, 220858.7 ], [ 721783.9, 220842.8 ], [ 721753.2, 220834.7 ], [ 721662.9, 220774.6 ], [ 721567.4, 220738.2 ], [ 721521.2, 220734.2 ], [ 721483.7, 220762.5 ], [ 721473.6, 220756.6 ], [ 721464.3, 220728.1 ], [ 721389.6, 220708.3 ], [ 721319.9, 220734.0 ], [ 721283.8, 220738.3 ], [ 721197.9, 220697.2 ], [ 721100.0, 220675.7 ], [ 721085.3, 220678.9 ], [ 721079.1, 220692.0 ], [ 721066.0, 220697.8 ], [ 720988.6, 220685.7 ], [ 720891.6, 220653.2 ], [ 720877.3, 220645.6 ], [ 720854.4, 220618.8 ], [ 720844.8, 220619.7 ], [ 720843.1, 220629.0 ], [ 720854.5, 220638.8 ], [ 720865.0, 220662.3 ], [ 720943.2, 220728.8 ], [ 721083.6, 220789.3 ], [ 721200.7, 220822.1 ], [ 721262.3, 220852.7 ], [ 721264.9, 220858.2 ], [ 721258.7, 220862.6 ], [ 721202.8, 220846.0 ], [ 721128.0, 220847.1 ], [ 721017.1, 220832.8 ], [ 720976.6, 220811.3 ], [ 720941.0, 220797.8 ], [ 720931.4, 220800.2 ], [ 720929.1, 220808.6 ], [ 720937.1, 220814.4 ], [ 720973.9, 220826.3 ], [ 721001.0, 220853.1 ], [ 721050.2, 220877.8 ], [ 721134.1, 220903.0 ], [ 721201.7, 220934.0 ], [ 721211.9, 220945.5 ], [ 721217.2, 220967.8 ], [ 721207.2, 220968.2 ], [ 721194.2, 220945.2 ], [ 721176.3, 220935.7 ], [ 721059.3, 220938.6 ], [ 720982.6, 220921.6 ], [ 720932.3, 220901.2 ], [ 720855.5, 220886.3 ], [ 720803.1, 220861.1 ], [ 720740.4, 220842.8 ], [ 720667.7, 220838.2 ], [ 720612.1, 220821.7 ], [ 720587.3, 220826.6 ], [ 720511.1, 220925.9 ], [ 720460.1, 220939.8 ], [ 720422.5, 220965.8 ], [ 720406.4, 220964.3 ], [ 720370.0, 220923.1 ], [ 720340.6, 220929.5 ], [ 720298.9, 220920.6 ], [ 720269.3, 220901.8 ], [ 720207.1, 220904.2 ], [ 720188.9, 220894.8 ], [ 720175.6, 220860.9 ], [ 720155.5, 220844.5 ], [ 720130.6, 220840.2 ], [ 720076.7, 220785.7 ], [ 719974.4, 220751.9 ], [ 719974.5, 220722.6 ], [ 719948.9, 220679.5 ], [ 719920.8, 220654.6 ], [ 719918.1, 220643.6 ], [ 719928.3, 220629.7 ], [ 719986.1, 220586.9 ], [ 720009.4, 220551.7 ], [ 720032.3, 220542.3 ], [ 720057.8, 220545.4 ], [ 720082.5, 220524.3 ], [ 720157.8, 220503.4 ], [ 720171.1, 220496.0 ], [ 720173.3, 220489.0 ], [ 720165.1, 220483.7 ], [ 720098.3, 220501.0 ], [ 720036.2, 220492.7 ], [ 719987.8, 220494.7 ], [ 719935.3, 220516.8 ], [ 719899.5, 220518.0 ], [ 719847.9, 220509.9 ], [ 719797.8, 220530.0 ], [ 719663.9, 220543.2 ], [ 719623.6, 220537.2 ], [ 719496.5, 220537.0 ], [ 719441.3, 220551.2 ], [ 719340.0, 220564.5 ], [ 719302.8, 220554.0 ], [ 719260.1, 220557.3 ], [ 719156.6, 220543.0 ], [ 719128.8, 220529.1 ], [ 719010.8, 220510.1 ], [ 718924.3, 220520.9 ], [ 718873.4, 220502.7 ], [ 718810.0, 220503.4 ], [ 718770.2, 220495.6 ], [ 718669.5, 220509.7 ], [ 718626.4, 220467.9 ], [ 718526.1, 220433.9 ], [ 718408.9, 220437.6 ], [ 718341.2, 220428.3 ], [ 718271.5, 220430.0 ], [ 718174.2, 220441.7 ], [ 718123.8, 220470.9 ], [ 718045.3, 220468.0 ], [ 718022.3, 220478.0 ], [ 717961.434, 220458.49 ], [ 717948.633, 220446.737 ], [ 717925.4, 220438.7 ], [ 717793.8, 220431.8 ], [ 717694.3, 220411.8 ], [ 717598.2, 220431.6 ], [ 717579.6, 220456.5 ], [ 717542.3, 220459.3 ], [ 717498.7, 220426.7 ], [ 717395.8, 220399.3 ], [ 717369.0, 220393.6 ], [ 717319.8, 220403.8 ], [ 717284.8, 220393.1 ], [ 717257.0, 220396.6 ], [ 717241.3, 220389.9 ], [ 717201.5, 220397.9 ], [ 717158.0, 220430.9 ], [ 717089.5, 220427.6 ], [ 717055.5, 220442.1 ], [ 717035.8, 220441.6 ], [ 716995.3, 220454.6 ], [ 716934.6, 220448.1 ], [ 716831.4, 220470.4 ], [ 716764.7, 220473.5 ], [ 716731.0, 220485.8 ], [ 716688.707, 220521.317 ], [ 716698.4, 220572.8 ], [ 716714.8, 220601.8 ], [ 716710.8, 220637.3 ], [ 716715.8, 220649.4 ], [ 716820.9, 220716.5 ], [ 716847.3, 220745.4 ], [ 716850.7, 220763.4 ], [ 716702.6, 220794.5 ], [ 716619.6, 220846.9 ], [ 716495.7, 220889.3 ], [ 716476.8, 220905.3 ], [ 716465.3, 220905.6 ], [ 716444.3, 220890.3 ], [ 716436.5, 220849.5 ], [ 716430.0, 220843.5 ], [ 716387.5, 220842.3 ], [ 716346.6, 220830.9 ], [ 716343.5, 220809.1 ], [ 716330.0, 220787.8 ], [ 716284.3, 220769.8 ], [ 716237.5, 220724.9 ], [ 716170.5, 220689.8 ], [ 716128.1, 220649.6 ], [ 716033.3, 220591.7 ], [ 715966.0, 220514.6 ], [ 715923.3, 220493.6 ], [ 715894.5, 220515.8 ], [ 715917.3, 220529.8 ], [ 715876.9, 220563.5 ], [ 715865.4, 220557.2 ], [ 715810.5, 220553.4 ], [ 715774.3, 220565.0 ], [ 715744.5, 220566.5 ], [ 715728.3, 220578.8 ], [ 715695.4, 220586.6 ], [ 715648.8, 220580.6 ], [ 715636.9, 220584.4 ], [ 715613.1, 220573.0 ], [ 715602.8, 220557.6 ], [ 715531.3, 220568.7 ], [ 715483.1, 220604.7 ], [ 715474.5, 220625.9 ], [ 715434.5, 220666.2 ], [ 715437.612, 220711.17 ], [ 715461.9, 220723.8 ], [ 715480.7, 220748.9 ], [ 715508.8, 220807.5 ], [ 715478.5, 220920.5 ], [ 715473.2, 220994.3 ], [ 715486.0, 221054.0 ], [ 715448.0, 221258.4 ], [ 715468.8, 221349.2 ], [ 715469.2, 221393.0 ], [ 715457.0, 221447.9 ], [ 715436.9, 221484.9 ], [ 715430.9, 221531.9 ], [ 715377.9, 221571.1 ], [ 715333.7, 221615.3 ], [ 715314.7, 221650.5 ], [ 715307.4, 221682.2 ], [ 715293.2, 221687.2 ], [ 715207.461, 221687.537 ], [ 715165.968, 221703.496 ], [ 715070.2, 221711.3 ], [ 715046.9, 221735.6 ], [ 715038.2, 221735.6 ], [ 714999.2, 221696.4 ], [ 714923.2, 221710.9 ], [ 714877.4, 221704.7 ], [ 714804.6, 221748.7 ], [ 714744.0, 221748.4 ], [ 714625.5, 221779.7 ], [ 714553.2, 221791.6 ], [ 714543.7, 221797.1 ], [ 714515.7, 221848.4 ], [ 714462.8, 221852.4 ], [ 714450.8, 221902.9 ], [ 714435.6, 221914.7 ], [ 714410.7, 221921.5 ], [ 714363.0, 221904.5 ], [ 714332.5, 221911.5 ], [ 714258.0, 221944.0 ], [ 714164.3, 221967.0 ], [ 714141.8, 221961.5 ], [ 714102.9, 221932.8 ], [ 714012.4, 221947.7 ], [ 713954.0, 221990.2 ], [ 713892.2, 222069.6 ], [ 713817.1, 222120.6 ], [ 713808.0, 222134.1 ], [ 713809.0, 222144.2 ], [ 713824.3, 222168.6 ], [ 713802.8, 222209.6 ], [ 713776.3, 222224.7 ], [ 713745.3, 222257.4 ], [ 713693.3, 222263.8 ], [ 713652.5, 222315.3 ], [ 713609.7, 222326.8 ], [ 713599.4, 222335.0 ], [ 713596.9, 222346.5 ], [ 713615.2, 222369.7 ], [ 713668.7, 222397.5 ], [ 713684.4, 222415.2 ], [ 713682.5, 222441.7 ], [ 713665.3, 222450.4 ], [ 713604.2, 222452.1 ], [ 713546.2, 222476.3 ], [ 713527.2, 222487.2 ], [ 713492.9, 222529.6 ], [ 713431.1, 222582.1 ], [ 713355.5, 222594.9 ], [ 713341.7, 222636.6 ], [ 713328.7, 222643.3 ], [ 713193.0, 222649.4 ], [ 713168.2, 222645.6 ], [ 713103.0, 222606.6 ], [ 713033.2, 222584.0 ], [ 713009.4, 222528.2 ], [ 712958.1, 222520.5 ], [ 712896.2, 222462.2 ], [ 712817.7, 222437.2 ], [ 712718.071, 222389.443 ], [ 712689.2, 222391.5 ], [ 712674.7, 222396.5 ], [ 712653.4, 222419.2 ], [ 712643.1, 222464.8 ], [ 712636.3, 222472.5 ], [ 712591.5, 222497.0 ], [ 712438.4, 222545.0 ], [ 712403.9, 222542.7 ], [ 712358.4, 222505.7 ], [ 712176.2, 222556.2 ], [ 712125.9, 222614.5 ], [ 712076.2, 222627.5 ], [ 712014.9, 222657.0 ], [ 711961.4, 222701.3 ], [ 711897.3, 222726.4 ], [ 711829.6, 222769.3 ], [ 711876.5, 222624.0 ], [ 711875.4, 222545.3 ], [ 711862.9, 222522.0 ], [ 711839.4, 222515.5 ], [ 711781.3, 222519.2 ], [ 711738.1, 222510.9 ], [ 711536.1, 222515.2 ], [ 711485.313, 222523.132 ], [ 711410.0, 222514.4 ], [ 711390.5, 222515.9 ], [ 711245.4, 222578.1 ], [ 711173.3, 222590.3 ], [ 711127.2, 222590.0 ], [ 711069.5, 222579.2 ], [ 711020.4, 222558.8 ], [ 710976.9, 222563.7 ], [ 710961.103, 222559.567 ], [ 710950.1, 222570.7 ], [ 710928.2, 222559.7 ], [ 710910.6, 222535.1 ], [ 710869.6, 222511.8 ], [ 710854.4, 222452.2 ], [ 710869.9, 222440.3 ], [ 710917.6, 222438.3 ], [ 710914.4, 222422.3 ], [ 710888.2, 222380.2 ], [ 710903.7, 222339.9 ], [ 710896.4, 222323.8 ], [ 710888.6, 222323.3 ], [ 710845.4, 222353.6 ], [ 710804.3, 222349.7 ], [ 710746.4, 222354.6 ], [ 710730.4, 222363.3 ], [ 710689.7, 222413.1 ], [ 710609.2, 222454.9 ], [ 710580.782, 222463.173 ], [ 710567.7, 222609.4 ], [ 710567.5, 222665.9 ], [ 710575.2, 222687.7 ], [ 710535.2, 222651.4 ], [ 710525.4, 222634.9 ], [ 710524.2, 222577.8 ], [ 710533.2, 222548.6 ], [ 710528.8, 222507.1 ], [ 710502.1, 222495.3 ], [ 710459.8, 222494.8 ], [ 710443.6, 222487.4 ], [ 710427.0, 222469.1 ], [ 710354.5, 222326.2 ], [ 710316.9, 222285.0 ], [ 710288.7, 222224.0 ], [ 710246.7, 222169.9 ], [ 710138.6, 222097.3 ], [ 710061.4, 222023.6 ], [ 710002.9, 221988.6 ], [ 709980.5, 221959.6 ], [ 709926.8, 221944.3 ], [ 709919.0, 221922.3 ], [ 709918.4, 221876.6 ], [ 709896.9, 221841.7 ], [ 709895.7, 221804.7 ], [ 709887.7, 221791.0 ], [ 709830.1, 221739.0 ], [ 709841.8, 221779.2 ], [ 709871.0, 221813.2 ], [ 709871.5, 221830.7 ], [ 709803.2, 221940.6 ], [ 709787.3, 221934.4 ], [ 709791.3, 221903.9 ], [ 709786.7, 221885.8 ], [ 709733.5, 221852.2 ], [ 709709.8, 221845.6 ], [ 709654.2, 221885.1 ], [ 709623.3, 221895.9 ], [ 709573.0, 221981.9 ], [ 709539.0, 222003.7 ], [ 709539.3, 222028.5 ], [ 709563.5, 222061.5 ], [ 709562.4, 222105.4 ], [ 709588.6, 222126.3 ], [ 709611.9, 222172.6 ], [ 709631.9, 222184.7 ], [ 709643.7, 222183.6 ], [ 709666.0, 222160.5 ], [ 709678.0, 222158.1 ], [ 709700.9, 222171.3 ], [ 709700.2, 222185.6 ], [ 709677.1, 222212.5 ], [ 709666.2, 222246.8 ], [ 709644.6, 222283.7 ], [ 709674.2, 222335.0 ], [ 709664.8, 222471.4 ], [ 709671.2, 222500.1 ], [ 709660.7, 222504.3 ], [ 709641.5, 222474.0 ], [ 709615.9, 222460.9 ], [ 709585.8, 222459.0 ], [ 709502.9, 222470.7 ], [ 709486.7, 222467.7 ], [ 709449.9, 222441.1 ], [ 709431.9, 222438.5 ], [ 709384.8, 222453.3 ], [ 709382.3, 222401.3 ], [ 709368.1, 222387.9 ], [ 709279.9, 222341.3 ], [ 709249.8, 222308.8 ], [ 709238.1, 222304.5 ], [ 709178.8, 222312.5 ], [ 709167.094, 222315.752 ], [ 709154.202, 222330.791 ], [ 709136.8, 222327.8 ], [ 709123.3, 222334.2 ], [ 709126.7, 222346.0 ], [ 709149.4, 222358.7 ], [ 709141.6, 222379.8 ], [ 709167.046, 222398.805 ], [ 709185.2, 222446.7 ], [ 709211.5, 222465.2 ], [ 709226.6, 222491.0 ], [ 709202.668, 222467.446 ], [ 709144.694, 222433.74 ], [ 709084.922, 222431.492 ], [ 709007.173, 222413.966 ], [ 708945.154, 222408.123 ], [ 708900.213, 222383.855 ], [ 708857.519, 222377.114 ], [ 708775.6, 222324.1 ], [ 708744.0, 222312.5 ], [ 708658.3, 222311.5 ], [ 708608.2, 222329.3 ], [ 708542.4, 222310.2 ], [ 708511.9, 222310.4 ], [ 708442.1, 222339.3 ], [ 708371.9, 222326.3 ], [ 708306.7, 222302.4 ], [ 708248.4, 222272.1 ], [ 708243.6, 222259.5 ], [ 708250.3, 222240.7 ], [ 708300.6, 222214.3 ], [ 708312.4, 222195.3 ], [ 708300.4, 222180.9 ], [ 708249.2, 222162.4 ], [ 708157.2, 222164.7 ], [ 708127.0, 222148.4 ], [ 708099.6, 222147.0 ], [ 708030.1, 222128.4 ], [ 707933.1, 222133.6 ], [ 707878.5, 222148.4 ], [ 707766.1, 222147.1 ], [ 707663.7, 222123.3 ], [ 707529.5, 222135.1 ], [ 707470.6, 222100.9 ], [ 707418.7, 222092.2 ], [ 707334.7, 222059.9 ], [ 707233.8, 222037.9 ], [ 707228.9, 222029.2 ], [ 707233.9, 222007.7 ], [ 707230.3, 221965.6 ], [ 707248.3, 221954.0 ], [ 707274.8, 221947.8 ], [ 707286.5, 221935.1 ], [ 707291.5, 221922.4 ], [ 707271.2, 221903.2 ], [ 707270.2, 221892.2 ], [ 707296.2, 221820.3 ], [ 707313.1, 221798.0 ], [ 707372.2, 221797.6 ], [ 707428.8, 221806.8 ], [ 707471.6, 221792.5 ], [ 707522.9, 221821.4 ], [ 707594.5, 221840.7 ], [ 707632.4, 221838.3 ], [ 707684.5, 221798.6 ], [ 707698.1, 221779.7 ], [ 707691.6, 221721.9 ], [ 707698.4, 221695.5 ], [ 707672.5, 221649.8 ], [ 707676.5, 221590.3 ], [ 707672.7, 221579.7 ], [ 707650.0, 221562.7 ], [ 707652.0, 221543.7 ], [ 707674.2, 221535.5 ], [ 707771.1, 221537.4 ], [ 707841.6, 221506.3 ], [ 707897.9, 221510.8 ], [ 708002.2, 221488.3 ], [ 708021.2, 221475.2 ], [ 708033.4, 221451.5 ], [ 708010.3, 221410.2 ], [ 708008.8, 221396.1 ], [ 708014.9, 221386.1 ], [ 708047.8, 221363.6 ], [ 708133.7, 221327.7 ], [ 708264.7, 221295.4 ], [ 708285.8, 221276.3 ], [ 708296.6, 221252.0 ], [ 708296.0, 221231.6 ], [ 708203.9, 221140.1 ], [ 708122.2, 221123.1 ], [ 708059.1, 221096.8 ], [ 708020.4, 221088.2 ], [ 707999.4, 221058.7 ], [ 707962.1, 221054.5 ], [ 707909.6, 221012.5 ], [ 707843.3, 221022.0 ], [ 707823.1, 221005.6 ], [ 707785.1, 220996.8 ], [ 707753.9, 220962.4 ], [ 707659.8, 220908.5 ], [ 707648.4, 220896.1 ], [ 707642.9, 220807.6 ], [ 707623.7, 220780.3 ], [ 707604.3, 220769.3 ], [ 707567.1, 220778.8 ], [ 707553.882, 220763.904 ], [ 707348.6, 220779.3 ], [ 707315.0, 220797.8 ], [ 707274.1, 220842.1 ], [ 707243.0, 220863.1 ], [ 707214.2, 220876.4 ], [ 707199.2, 220876.1 ], [ 707156.6, 220861.0 ], [ 707118.3, 220780.0 ], [ 707080.1, 220740.7 ], [ 707033.6, 220659.7 ], [ 706880.7, 220552.6 ], [ 706820.5, 220552.8 ], [ 706594.2, 220620.8 ], [ 706559.3, 220613.1 ], [ 706540.3, 220595.6 ], [ 706532.031, 220573.96 ], [ 706592.0, 220566.3 ], [ 706611.1, 220559.5 ], [ 706622.2, 220544.4 ], [ 706624.6, 220530.2 ], [ 706598.8, 220469.3 ], [ 706609.1, 220445.5 ], [ 706621.2, 220432.0 ], [ 706670.0, 220429.8 ], [ 706712.3, 220405.6 ], [ 706745.7, 220305.8 ], [ 706663.8, 220221.6 ], [ 706652.4, 220172.4 ], [ 706612.8, 220140.7 ], [ 706602.1, 220102.8 ], [ 706564.8, 220070.0 ], [ 706540.2, 220059.8 ], [ 706501.3, 220057.1 ], [ 706491.1, 220063.8 ], [ 706481.5, 220124.4 ], [ 706468.2, 220131.8 ], [ 706436.6, 220117.3 ], [ 706362.3, 220128.9 ], [ 706322.9, 220128.6 ], [ 706307.4, 220122.5 ], [ 706293.1, 220107.0 ], [ 706284.8, 220068.4 ], [ 706255.0, 220032.9 ], [ 706212.3, 220019.0 ], [ 706194.0, 220019.6 ], [ 706169.8, 220005.7 ], [ 706125.8, 220010.0 ], [ 706077.9, 220036.1 ], [ 706027.2, 220052.5 ], [ 705938.9, 220036.6 ], [ 705837.3, 220002.9 ], [ 705802.9, 220022.8 ], [ 705763.0, 220023.9 ], [ 705731.1, 220039.5 ], [ 705715.7, 220039.4 ], [ 705692.1, 220016.7 ], [ 705637.4, 220016.0 ], [ 705590.6, 220046.3 ], [ 705564.7, 220046.5 ], [ 705529.1, 220069.0 ], [ 705488.482, 220083.501 ], [ 705452.7, 220012.6 ], [ 705439.3, 219997.5 ], [ 705431.3, 219997.6 ], [ 705412.4, 220009.6 ], [ 705377.7, 220014.8 ], [ 705339.4, 220053.1 ], [ 705235.5, 220088.9 ], [ 705123.6, 220146.2 ], [ 705116.0, 220161.2 ], [ 705118.6, 220199.9 ], [ 705107.4, 220210.7 ], [ 705050.5, 220187.9 ], [ 705011.3, 220210.1 ], [ 705000.1, 220209.0 ], [ 704967.9, 220187.9 ], [ 704949.1, 220183.6 ], [ 704874.7, 220202.5 ], [ 704757.0, 220245.0 ], [ 704746.5, 220252.1 ], [ 704710.5, 220316.9 ], [ 704689.9, 220377.0 ], [ 704673.2, 220398.1 ], [ 704669.1, 220433.7 ], [ 704661.7, 220444.5 ], [ 704641.3, 220453.1 ], [ 704619.2, 220447.1 ], [ 704523.6, 220358.0 ], [ 704481.3, 220354.3 ], [ 704393.4, 220289.3 ], [ 704377.3, 220291.4 ], [ 704362.6, 220282.9 ], [ 704361.1, 220274.8 ], [ 704390.7, 220234.4 ], [ 704385.8, 220148.3 ], [ 704378.8, 220132.1 ], [ 704349.2, 220121.5 ], [ 704289.0, 220072.2 ], [ 704276.5, 220059.3 ], [ 704274.3, 220046.1 ], [ 704278.8, 220034.9 ], [ 704330.6, 220017.3 ], [ 704360.8, 220018.5 ], [ 704361.8, 219999.3 ], [ 704330.0, 219999.1 ], [ 704253.8, 219966.9 ], [ 704096.0, 219931.1 ], [ 704051.9, 219914.2 ], [ 704011.0, 219931.8 ], [ 703911.0, 219994.9 ], [ 703876.3, 220000.6 ], [ 703844.0, 219997.1 ], [ 703814.7, 219963.1 ], [ 703805.3, 219963.7 ], [ 703740.9, 220002.4 ], [ 703724.19, 220029.092 ], [ 703729.4, 220182.6 ], [ 703714.2, 220194.0 ], [ 703606.9, 220165.6 ], [ 703589.4, 220174.0 ], [ 703572.8, 220249.1 ], [ 703524.9, 220367.0 ], [ 703522.7, 220418.7 ], [ 703513.7, 220441.4 ], [ 703450.3, 220512.9 ], [ 703352.5, 220529.9 ], [ 703320.7, 220546.0 ], [ 703307.9, 220560.3 ], [ 703294.2, 220592.3 ], [ 703284.1, 220671.2 ], [ 703261.2, 220708.3 ], [ 703241.4, 220726.3 ], [ 703228.9, 220729.3 ], [ 703203.9, 220720.8 ], [ 703106.6, 220640.7 ], [ 703096.2, 220627.0 ], [ 703064.0, 220527.0 ], [ 703052.0, 220514.8 ], [ 703018.2, 220500.3 ], [ 702902.563, 220471.127 ], [ 702789.2, 220799.6 ], [ 702653.5, 221073.7 ], [ 702646.4, 221082.8 ], [ 702613.5, 221088.7 ], [ 702598.0, 221089.2 ], [ 702510.9, 221046.5 ], [ 702348.5, 221072.6 ], [ 702269.5, 221059.5 ], [ 701177.5, 220571.1 ], [ 701147.0, 220574.6 ], [ 701103.9, 220596.0 ], [ 701065.8, 220587.1 ], [ 701053.9, 220567.2 ], [ 701022.1, 220468.3 ], [ 700992.1, 220475.3 ], [ 700976.4, 220488.0 ], [ 700808.6, 220686.6 ], [ 700801.9, 220703.7 ], [ 700803.6, 220793.9 ], [ 700793.2, 220814.4 ], [ 700672.9, 220854.8 ], [ 700634.4, 220875.0 ], [ 700620.947, 220889.154 ], [ 700513.2, 220827.8 ], [ 700474.0, 220814.0 ], [ 700200.9, 220786.1 ], [ 700146.8, 220772.2 ], [ 699997.4, 220659.5 ], [ 699664.9, 220532.0 ], [ 699638.3, 220526.6 ], [ 699576.222, 220457.779 ], [ 699528.5, 220352.8 ], [ 699517.9, 220345.7 ], [ 699489.1, 220347.8 ], [ 699420.3, 220384.9 ], [ 699399.4, 220389.3 ], [ 699337.0, 220390.4 ], [ 699242.9, 220402.2 ], [ 699174.4, 220427.6 ], [ 699093.2, 220419.8 ], [ 699060.5, 220440.5 ], [ 699053.0, 220459.5 ], [ 699032.1, 220464.2 ], [ 698991.524, 220489.924 ], [ 698983.8, 220485.123 ], [ 698981.6, 220464.9 ], [ 698964.4, 220443.0 ], [ 698636.1, 220112.3 ], [ 698498.0, 219935.1 ], [ 698441.7, 219852.8 ], [ 698418.2, 219795.6 ], [ 698403.0, 219734.5 ], [ 698393.3, 219567.2 ], [ 698364.5, 219470.9 ], [ 698327.2, 219418.8 ], [ 698276.6, 219373.4 ], [ 698198.4, 219237.1 ], [ 698081.3, 219125.2 ], [ 698047.4, 219069.4 ], [ 697992.6, 218945.6 ], [ 697873.6, 218733.7 ], [ 697815.9, 218551.7 ], [ 697760.9, 218201.0 ], [ 697734.5, 218158.6 ], [ 697692.5, 218141.2 ], [ 697658.7, 218084.2 ], [ 697627.9, 218049.8 ], [ 697552.0, 217909.6 ], [ 697629.6, 217761.3 ], [ 697630.3, 217733.4 ], [ 697602.2, 217699.0 ], [ 697515.9, 217621.6 ], [ 697479.7, 217574.5 ], [ 697401.7, 217398.5 ], [ 697392.745, 217337.975 ], [ 697492.6, 217214.8 ], [ 697551.2, 217160.6 ], [ 697618.4, 217123.1 ], [ 697646.841, 217118.905 ], [ 697572.1, 217005.9 ], [ 697482.0, 216850.1 ], [ 697386.2, 216656.0 ], [ 697349.9, 216556.3 ], [ 697357.5, 216505.5 ], [ 697427.8, 216268.2 ], [ 697476.8, 216076.7 ], [ 697588.0, 216234.0 ], [ 697625.8, 216209.6 ], [ 697536.2, 216072.8 ], [ 697521.7, 216046.2 ], [ 697511.3, 216005.1 ], [ 697515.9, 215959.1 ], [ 697546.698, 215857.394 ], [ 697545.4, 215838.7 ], [ 697565.0, 215761.8 ], [ 697592.8, 215377.2 ], [ 697604.2, 215098.5 ], [ 697600.9, 215038.5 ], [ 697571.9, 214857.5 ], [ 697510.9, 214859.4 ], [ 697511.8, 214837.5 ], [ 697500.2, 214791.2 ], [ 697445.9, 214641.6 ], [ 697382.9, 214541.9 ], [ 697336.7, 214496.0 ], [ 697219.9, 214435.9 ], [ 697141.5, 214336.8 ], [ 697105.5, 214265.6 ], [ 697047.0, 214194.9 ], [ 697013.9, 214139.7 ], [ 696962.6, 214028.6 ], [ 696913.3, 213892.8 ], [ 696909.2, 213829.3 ], [ 696922.1, 213716.8 ], [ 696881.0, 213408.4 ], [ 696807.123, 213188.496 ], [ 696749.9, 213069.7 ], [ 696712.8, 212954.9 ], [ 696696.2, 212865.5 ], [ 696654.6, 212447.5 ], [ 696642.5, 212422.8 ], [ 696535.3, 212332.9 ], [ 696500.8, 212294.4 ], [ 696474.5, 212248.9 ], [ 696419.5, 212030.7 ], [ 696426.0, 211944.6 ], [ 696394.9, 211873.7 ], [ 696397.4, 211848.1 ], [ 696423.3, 211741.6 ], [ 696424.6, 211686.1 ], [ 696471.0, 211625.7 ], [ 696477.4, 211597.6 ], [ 696427.5, 211552.3 ], [ 696380.5, 211473.4 ], [ 696365.1, 211438.7 ], [ 696335.357, 211332.531 ], [ 696297.6, 211352.8 ], [ 696257.026, 211384.606 ], [ 696262.4, 211402.8 ], [ 696299.7, 211426.3 ], [ 696293.6, 211469.5 ], [ 696315.2, 211542.7 ], [ 696314.737, 211560.771 ], [ 696270.7, 211610.2 ], [ 696279.1, 211667.6 ], [ 696266.1, 211689.6 ], [ 696250.3, 211691.5 ], [ 696234.3, 211676.1 ], [ 696223.9, 211646.6 ], [ 696217.2, 211572.8 ], [ 696195.7, 211549.2 ], [ 696116.305, 211537.701 ], [ 696076.2, 211565.1 ], [ 696028.8, 211577.2 ], [ 696016.9, 211590.6 ], [ 696023.4, 211607.8 ], [ 696065.0, 211650.6 ], [ 696075.0, 211678.6 ], [ 696069.1, 211703.2 ], [ 696000.8, 211827.1 ], [ 695991.1, 211910.8 ], [ 695979.7, 211925.8 ], [ 695964.3, 211922.8 ], [ 695940.9, 211899.6 ], [ 695900.0, 211811.4 ], [ 695875.6, 211776.7 ], [ 695848.4, 211753.8 ], [ 695843.8, 211697.8 ], [ 695829.0, 211691.4 ], [ 695810.7, 211699.5 ], [ 695770.9, 211820.2 ], [ 695780.0, 211850.4 ], [ 695809.5, 211876.4 ], [ 695842.8, 211929.2 ], [ 695850.6, 211985.6 ], [ 695886.0, 212021.4 ], [ 695879.9, 212060.4 ], [ 695906.1, 212118.8 ], [ 695905.747, 212141.841 ], [ 695895.1, 212161.8 ], [ 695878.0, 212174.3 ], [ 695753.8, 212212.5 ], [ 695667.4, 212310.0 ], [ 695555.2, 212357.2 ], [ 695529.7, 212378.1 ], [ 695518.3, 212395.1 ], [ 695507.5, 212576.7 ], [ 695504.6, 212583.6 ], [ 695470.2, 212599.0 ], [ 695465.7, 212608.6 ], [ 695475.0, 212646.1 ], [ 695471.2, 212672.4 ], [ 695482.7, 212696.7 ], [ 695483.5, 212719.9 ], [ 695517.4, 212750.7 ], [ 695513.3, 212774.6 ], [ 695445.0, 212754.7 ], [ 695414.3, 212709.1 ], [ 695403.4, 212660.6 ], [ 695383.7, 212634.9 ], [ 695356.3, 212621.3 ], [ 695362.9, 212573.9 ], [ 695329.5, 212494.2 ], [ 695311.6, 212472.0 ], [ 695281.1, 212461.2 ], [ 695262.7, 212414.1 ], [ 695219.2, 212395.6 ], [ 695184.4, 212367.9 ], [ 695094.6, 212256.0 ], [ 695030.5, 212217.7 ], [ 695012.1, 212189.7 ], [ 695006.2, 212167.5 ], [ 694966.5, 212110.8 ], [ 694962.3, 212064.6 ], [ 694948.7, 212061.1 ], [ 694901.3, 212067.9 ], [ 694893.1, 212054.1 ], [ 694891.07, 212032.685 ], [ 694877.8, 212011.6 ], [ 694876.2, 211964.4 ], [ 694860.6, 211956.3 ], [ 694717.7, 211945.4 ], [ 694646.1, 211914.3 ], [ 694593.807, 211942.474 ], [ 694611.995, 211899.7 ], [ 694573.7, 211889.1 ], [ 694491.6, 211851.2 ], [ 694476.6, 211791.2 ], [ 694462.6, 211763.3 ], [ 694402.7, 211670.0 ], [ 694383.0, 211622.1 ], [ 694359.6, 211600.9 ], [ 694343.0, 211533.9 ], [ 694262.2, 211471.2 ], [ 694243.753, 211445.05 ], [ 694220.9, 211441.8 ], [ 694206.7, 211432.8 ], [ 694196.7, 211414.9 ], [ 694203.9, 211411.7 ], [ 694212.7, 211376.7 ], [ 694202.5, 211219.4 ], [ 694217.2, 211187.0 ], [ 694215.5, 211142.7 ], [ 694181.9, 211093.0 ], [ 694150.6, 211003.8 ], [ 694100.3, 210934.7 ], [ 694069.4, 210833.1 ], [ 694018.8, 210768.2 ], [ 693990.7, 210703.3 ], [ 693979.2, 210697.2 ], [ 693967.0, 210702.4 ], [ 693961.2, 210717.4 ], [ 693979.7, 210816.5 ], [ 693982.0, 210925.1 ], [ 693979.0, 210967.7 ], [ 693969.4, 210997.0 ], [ 693955.5, 211011.2 ], [ 693945.1, 211012.1 ], [ 693930.2, 210996.0 ], [ 693940.2, 210958.1 ], [ 693937.0, 210941.5 ], [ 693888.0, 210870.5 ], [ 693840.9, 210824.0 ], [ 693757.6, 210664.0 ], [ 693709.6, 210628.4 ], [ 693708.3, 210580.8 ], [ 693698.3, 210566.2 ], [ 693687.5, 210565.0 ], [ 693676.6, 210575.0 ], [ 693674.1, 210641.1 ], [ 693704.4, 210688.9 ], [ 693694.3, 210760.9 ], [ 693699.5, 210841.3 ], [ 693688.6, 210883.9 ], [ 693703.5, 210970.3 ], [ 693699.6, 210975.5 ], [ 693688.9, 210974.2 ], [ 693667.1, 210920.6 ], [ 693646.4, 210889.9 ], [ 693638.5, 210843.2 ], [ 693622.7, 210827.5 ], [ 693571.7, 210797.9 ], [ 693550.2, 210776.5 ], [ 693514.8, 210733.7 ], [ 693505.2, 210708.9 ], [ 693495.7, 210708.9 ], [ 693491.3, 210726.0 ], [ 693528.0, 210790.2 ], [ 693536.9, 210812.0 ], [ 693533.2, 210824.0 ], [ 693519.2, 210823.3 ], [ 693495.1, 210806.8 ], [ 693422.4, 210739.3 ], [ 693374.8, 210678.2 ], [ 693352.2, 210622.8 ], [ 693354.5, 210471.2 ], [ 693336.6, 210462.2 ], [ 693308.5, 210485.1 ], [ 693280.9, 210525.5 ], [ 693269.1, 210523.2 ], [ 693279.5, 210470.0 ], [ 693217.1, 210330.7 ], [ 693201.3, 210302.2 ], [ 693156.2, 210248.6 ], [ 693144.6, 210214.8 ], [ 693109.7, 210156.9 ], [ 693101.5, 210115.0 ], [ 693088.2, 210088.2 ], [ 693036.7, 210060.9 ], [ 693026.2, 210048.4 ], [ 693017.763, 210024.528 ], [ 693023.3, 210012.8 ], [ 693021.4, 209988.9 ], [ 693026.6, 209956.9 ], [ 693039.8, 209933.4 ], [ 693047.9, 209899.8 ], [ 693104.4, 209863.3 ], [ 693161.8, 209854.5 ], [ 693207.1, 209833.4 ], [ 693229.7, 209806.7 ], [ 693251.27, 209647.87 ], [ 693272.9, 209559.9 ], [ 693299.5, 209498.0 ], [ 693314.59, 209484.567 ], [ 693385.2, 209450.1 ], [ 693393.9, 209419.9 ], [ 693493.1, 209336.5 ], [ 693496.0, 209308.2 ], [ 693555.0, 209232.8 ], [ 693561.1, 209193.9 ], [ 693576.5, 209162.0 ], [ 693579.7, 209143.9 ], [ 693562.6, 209077.4 ], [ 693564.2, 209062.4 ], [ 693586.5, 209020.2 ], [ 693582.0, 209004.9 ], [ 693565.0, 209006.7 ], [ 693541.2, 209045.3 ], [ 693526.4, 209054.1 ], [ 693500.3, 209055.0 ], [ 693460.8, 209070.9 ], [ 693422.4, 209069.9 ], [ 693425.8, 209008.6 ], [ 693431.0, 208989.8 ], [ 693453.3, 208956.0 ], [ 693468.7, 208910.7 ], [ 693492.7, 208886.9 ], [ 693524.2, 208889.0 ], [ 693576.0, 208917.1 ], [ 693589.6, 208918.1 ], [ 693613.7, 208894.9 ], [ 693620.9, 208873.4 ], [ 693615.8, 208841.2 ], [ 693600.7, 208798.9 ], [ 693566.7, 208744.3 ], [ 693543.9, 208624.3 ], [ 693541.7, 208579.2 ], [ 693548.6, 208566.4 ], [ 693593.2, 208533.6 ], [ 693621.9, 208492.4 ], [ 693673.6, 208444.5 ], [ 693682.2, 208416.2 ], [ 693707.9, 208392.0 ], [ 693715.1, 208293.4 ], [ 693732.9, 208268.8 ], [ 693759.0, 208249.9 ], [ 693768.0, 208227.8 ], [ 693762.3, 208214.2 ], [ 693750.7, 208207.4 ], [ 693664.5, 208224.0 ], [ 693648.8, 208217.7 ], [ 693646.8, 208189.7 ], [ 693655.5, 208157.6 ], [ 693684.4, 208125.2 ], [ 693689.4, 208100.2 ], [ 693656.2, 208061.1 ], [ 693613.2, 208034.7 ], [ 693579.9, 207989.7 ], [ 693561.047, 207984.18 ], [ 693500.4, 208004.4 ], [ 693446.6, 207957.9 ], [ 693439.1, 207923.7 ], [ 693386.218, 207891.305 ], [ 693325.8, 207962.1 ], [ 693301.2, 208018.2 ], [ 693093.8, 208242.6 ], [ 693022.7, 208414.9 ], [ 692959.5, 208527.2 ], [ 692914.3, 208563.9 ], [ 692824.9, 208598.7 ], [ 692807.2, 208599.6 ], [ 692741.3, 208584.9 ], [ 692592.8, 208587.4 ], [ 692463.8, 208553.3 ], [ 692396.5, 208567.2 ], [ 692377.8, 208489.5 ], [ 692317.5, 208462.3 ], [ 692263.6, 208472.3 ], [ 691965.1, 208562.2 ], [ 691956.2, 208499.6 ], [ 691949.6, 208490.1 ], [ 691927.5, 208383.1 ], [ 691885.0, 208375.9 ], [ 691855.5, 208374.9 ], [ 691791.2, 208392.7 ], [ 691704.4, 208403.0 ], [ 691442.4, 208407.1 ], [ 691277.0, 208428.5 ], [ 691223.5, 208419.2 ], [ 690964.8, 208276.5 ], [ 690875.003, 208200.103 ], [ 690825.794, 208176.045 ], [ 690655.287, 207977.516 ], [ 690481.4, 208116.6 ], [ 690444.6, 208174.7 ], [ 690433.66, 208208.814 ], [ 690430.0, 208284.4 ], [ 690492.9, 208463.9 ], [ 690494.4, 208559.6 ], [ 690502.0, 208592.0 ], [ 690558.0, 208783.5 ], [ 690604.0, 208888.1 ], [ 690603.6, 208928.9 ], [ 690582.471, 209073.897 ], [ 690460.719, 209223.038 ], [ 690448.6, 209199.4 ], [ 690442.0, 209166.9 ], [ 690487.111, 209077.927 ], [ 690483.5, 209058.8 ], [ 690489.8, 208986.4 ], [ 690465.4, 208895.2 ], [ 690412.6, 208777.5 ], [ 690409.6, 208750.6 ], [ 690245.3, 208567.2 ], [ 690210.765, 208500.866 ], [ 690099.5, 208334.2 ], [ 690086.7, 208328.3 ], [ 690059.4, 208354.5 ], [ 690047.11, 208357.45 ], [ 690008.0, 208314.7 ], [ 689879.0, 208228.5 ], [ 689750.0, 208090.9 ], [ 689677.7, 208061.9 ], [ 689637.17, 208053.63 ], [ 689640.8, 208071.2 ], [ 689698.8, 208151.6 ], [ 689758.2, 208285.9 ], [ 689805.1, 208418.5 ], [ 689802.6, 208427.5 ], [ 689785.6, 208427.5 ], [ 689565.2, 208224.3 ], [ 689248.6, 208041.2 ], [ 689207.4, 208038.1 ], [ 689164.2, 208019.3 ], [ 689118.2, 208011.8 ], [ 689067.8, 208022.2 ], [ 689020.8, 208021.7 ], [ 688992.4, 208031.2 ], [ 688927.1, 208008.7 ], [ 688765.3, 207973.3 ], [ 688774.4, 207953.0 ], [ 688805.9, 207926.9 ], [ 688816.5, 207881.2 ], [ 688813.1, 207869.0 ], [ 688801.8, 207883.9 ], [ 688798.9, 207911.1 ], [ 688778.1, 207923.0 ], [ 688716.0, 207902.4 ], [ 688631.5, 207896.8 ], [ 688580.3, 207875.6 ], [ 688577.8, 207870.7 ], [ 688583.5, 207867.7 ], [ 688649.7, 207873.1 ], [ 688647.8, 207863.1 ], [ 688602.8, 207852.5 ], [ 688602.8, 207836.8 ], [ 688695.9, 207823.7 ], [ 688706.3, 207813.4 ], [ 688704.7, 207800.0 ], [ 688694.7, 207793.7 ], [ 688632.8, 207796.8 ], [ 688592.8, 207785.6 ], [ 688537.8, 207786.2 ], [ 688503.4, 207767.5 ], [ 688435.9, 207756.2 ], [ 688409.7, 207733.7 ], [ 688356.6, 207710.6 ], [ 688235.3, 207625.6 ], [ 688182.8, 207601.2 ], [ 688160.9, 207565.0 ], [ 688136.6, 207545.0 ], [ 688063.1, 207516.8 ], [ 688033.4, 207490.3 ], [ 688005.2, 207476.3 ], [ 687938.7, 207463.1 ], [ 687809.7, 207409.6 ], [ 687797.7, 207388.8 ], [ 687795.4, 207358.8 ], [ 687782.533, 207348.337 ], [ 687755.0, 207398.1 ], [ 687726.3, 207431.9 ], [ 687719.4, 207471.9 ], [ 687708.8, 207495.0 ], [ 687561.9, 207550.6 ], [ 687553.1, 207562.5 ], [ 687548.497, 207593.035 ], [ 687524.733, 207612.452 ], [ 687452.997, 207634.958 ], [ 687436.117, 207649.024 ], [ 687412.205, 207630.738 ], [ 687303.897, 207604.013 ], [ 687247.632, 207612.452 ], [ 687215.28, 207629.331 ], [ 687195.588, 207599.793 ], [ 687153.39, 207557.595 ], [ 687060.554, 207490.078 ], [ 687066.18, 207481.638 ], [ 687087.279, 207476.012 ], [ 687091.499, 207466.165 ], [ 687053.521, 207439.44 ], [ 686881.915, 207481.638 ], [ 686855.19, 207501.33 ], [ 686784.7, 207479.8 ], [ 686757.2, 207481.4 ], [ 686699.1, 207507.8 ], [ 686673.0, 207510.9 ], [ 686641.4, 207524.2 ], [ 686598.9, 207522.0 ], [ 686531.0, 207488.2 ], [ 686484.3, 207452.9 ], [ 686452.4, 207446.8 ], [ 686409.2, 207426.3 ], [ 686399.219, 207435.13 ], [ 686401.5, 207446.2 ], [ 686453.3, 207489.2 ], [ 686472.1, 207519.0 ], [ 686514.0, 207561.2 ], [ 686513.3, 207567.5 ], [ 686506.5, 207571.9 ], [ 686449.5, 207541.4 ], [ 686390.2, 207543.7 ], [ 686367.5, 207549.4 ], [ 686341.5, 207571.7 ], [ 686269.1, 207594.3 ], [ 686186.7, 207597.9 ], [ 686033.0, 207550.2 ], [ 685943.5, 207565.3 ], [ 685922.4, 207574.5 ], [ 685878.1, 207620.1 ], [ 685812.4, 207655.5 ], [ 685783.6, 207660.9 ], [ 685699.9, 207649.9 ], [ 685654.2, 207668.5 ], [ 685623.1, 207659.7 ], [ 685612.7, 207662.5 ], [ 685578.032, 207687.93 ], [ 685530.8, 207759.2 ], [ 685514.4, 207789.0 ], [ 685503.7, 207838.9 ], [ 685461.4, 207881.0 ], [ 685406.0, 207894.2 ], [ 685375.3, 207927.9 ], [ 685328.2, 207963.3 ], [ 685313.278, 207989.322 ], [ 685290.2, 207990.4 ], [ 685205.9, 208026.6 ], [ 685124.7, 208030.2 ], [ 685116.2, 208038.8 ], [ 684984.4, 208082.3 ], [ 684861.5, 208136.4 ], [ 684814.7, 208131.4 ], [ 684784.2, 208144.4 ], [ 684748.075, 208174.444 ], [ 684670.6, 208148.7 ], [ 684577.3, 208080.6 ], [ 684515.8, 208078.1 ], [ 684469.8, 208096.6 ], [ 684376.4, 208083.3 ], [ 684306.5, 208064.9 ], [ 684243.3, 208075.5 ], [ 684222.6, 208072.1 ], [ 684181.9, 208051.1 ], [ 684129.0, 208041.4 ], [ 684041.1, 208003.7 ], [ 683939.7, 207946.8 ], [ 683900.7, 207898.9 ], [ 683820.8, 207819.9 ], [ 683821.3, 207812.9 ], [ 683829.0, 207811.6 ], [ 683896.0, 207822.9 ], [ 683923.3, 207815.6 ], [ 683973.3, 207821.6 ], [ 683985.0, 207814.6 ], [ 683995.0, 207800.6 ], [ 683995.0, 207753.4 ], [ 684022.0, 207691.8 ], [ 684041.5, 207665.9 ], [ 684023.3, 207659.6 ], [ 683969.0, 207660.9 ], [ 683960.3, 207656.2 ], [ 683958.4, 207645.0 ], [ 683982.0, 207611.1 ], [ 683985.9, 207588.1 ], [ 684029.1, 207573.7 ], [ 684034.6, 207568.1 ], [ 684032.1, 207554.8 ], [ 684016.9, 207548.2 ], [ 683975.8, 207557.8 ], [ 683960.7, 207554.2 ], [ 683917.32, 207484.583 ], [ 683906.1, 207476.5 ], [ 683869.1, 207468.7 ], [ 683746.6, 207418.1 ], [ 683739.1, 207373.7 ], [ 683762.8, 207314.0 ], [ 683753.0, 207301.4 ], [ 683654.4, 207321.1 ], [ 683645.9, 207320.2 ], [ 683634.8, 207306.4 ], [ 683652.5, 207276.5 ], [ 683668.5, 207276.5 ], [ 683689.8, 207261.7 ], [ 683747.2, 207245.6 ], [ 683751.3, 207219.0 ], [ 683774.8, 207180.5 ], [ 683766.0, 207162.7 ], [ 683722.8, 207126.5 ], [ 683717.8, 207075.2 ], [ 683692.8, 207019.6 ], [ 683691.3, 206988.4 ], [ 683736.1, 206972.3 ], [ 683750.4, 206950.4 ], [ 683747.0, 206934.7 ], [ 683690.1, 206840.3 ], [ 683692.0, 206829.7 ], [ 683714.6, 206815.5 ], [ 683717.8, 206797.1 ], [ 683673.5, 206727.1 ], [ 683668.5, 206673.4 ], [ 683654.5, 206647.9 ], [ 683661.7, 206618.7 ], [ 683668.2, 206613.4 ], [ 683695.7, 206616.6 ], [ 683779.5, 206632.2 ], [ 683820.3, 206651.2 ], [ 683825.3, 206645.0 ], [ 683744.5, 206514.4 ], [ 683781.1, 206472.6 ], [ 683765.7, 206317.2 ], [ 683745.8, 206266.2 ], [ 683724.3, 206231.8 ], [ 683685.7, 206140.0 ], [ 683630.6, 206043.5 ], [ 683571.7, 205963.9 ], [ 683540.272, 205901.877 ], [ 683404.9, 205730.8 ], [ 683386.0, 205689.5 ], [ 683382.9, 205659.7 ], [ 683395.3, 205618.5 ], [ 683400.5, 205570.7 ], [ 683379.1, 205428.0 ], [ 683397.5, 205378.4 ], [ 683394.0, 205345.4 ], [ 683387.3, 205343.3 ], [ 683376.3, 205352.7 ], [ 683348.5, 205413.6 ], [ 683334.0, 205489.0 ], [ 683301.0, 205599.8 ], [ 683291.0, 205721.2 ], [ 683280.0, 205750.2 ], [ 683271.0, 205751.7 ], [ 683258.6, 205737.8 ], [ 683256.5, 205681.6 ], [ 683237.5, 205634.8 ], [ 683229.2, 205587.3 ], [ 683242.2, 205440.2 ], [ 683233.2, 205380.7 ], [ 683221.7, 205348.8 ], [ 683225.5, 205318.1 ], [ 683212.6, 205277.1 ], [ 683216.2, 205257.2 ], [ 683232.2, 205240.5 ], [ 683288.0, 205211.9 ], [ 683368.9, 205153.7 ], [ 683406.8, 205138.1 ], [ 683451.0, 205057.7 ], [ 683488.2, 205028.2 ], [ 683543.2, 204997.2 ], [ 683550.7, 204984.9 ], [ 683551.0, 204960.4 ], [ 683538.0, 204962.9 ], [ 683522.7, 204989.4 ], [ 683497.5, 205004.4 ], [ 683475.2, 205005.9 ], [ 683481.0, 204990.2 ], [ 683500.8, 204974.8 ], [ 683506.4, 204938.2 ], [ 683515.7, 204930.2 ], [ 683581.2, 204903.3 ], [ 683702.7, 204877.7 ], [ 683824.5, 204873.9 ], [ 683831.8, 204866.4 ], [ 683827.9, 204859.2 ], [ 683762.2, 204851.5 ], [ 683711.3, 204835.7 ], [ 683636.7, 204827.9 ], [ 683587.7, 204809.2 ], [ 683464.5, 204817.2 ], [ 683422.2, 204802.3 ], [ 683330.2, 204802.0 ], [ 683315.2, 204817.5 ], [ 683288.7, 204900.2 ], [ 683262.8, 204916.9 ], [ 683147.9, 204933.2 ], [ 683095.2, 204916.4 ], [ 683066.2, 204916.4 ], [ 683055.2, 204925.4 ], [ 683032.0, 204967.9 ], [ 683014.2, 204981.9 ], [ 683005.0, 204977.1 ], [ 682970.6, 204983.4 ], [ 682924.6, 204979.7 ], [ 682822.5, 204999.7 ], [ 682692.9, 204985.3 ], [ 682606.9, 204995.2 ], [ 682565.8, 205021.2 ], [ 682531.7, 205066.6 ], [ 682513.6, 205184.2 ], [ 682502.8, 205191.1 ], [ 682452.4, 205215.8 ], [ 682294.4, 205259.1 ], [ 682174.1, 205326.3 ], [ 682121.6, 205327.5 ], [ 682035.9, 205341.6 ], [ 681991.1, 205340.3 ], [ 681972.0, 205330.2 ], [ 681938.1, 205288.2 ], [ 681899.5, 205266.7 ], [ 681859.0, 205257.2 ], [ 681758.1, 205249.5 ], [ 681640.2, 205211.7 ], [ 681260.9, 205174.5 ], [ 680998.3, 205134.0 ], [ 680981.7, 205109.6 ], [ 680906.002, 205078.224 ], [ 680868.426, 205046.911 ], [ 677755.925, 202958.341 ], [ 677696.431, 202895.715 ], [ 677690.5, 202798.7 ], [ 677697.0, 202750.7 ], [ 677421.4, 202723.6 ], [ 677347.7, 202703.1 ], [ 677259.3, 202694.4 ], [ 677222.9, 202696.5 ], [ 677024.9, 202737.8 ], [ 676842.9, 202765.1 ], [ 676807.4, 202775.5 ], [ 676809.2, 202790.3 ], [ 676797.7, 202802.7 ], [ 676673.1, 202847.5 ], [ 676560.2, 202954.1 ], [ 676506.2, 202989.8 ], [ 676395.3, 203033.3 ], [ 676291.3, 203099.2 ], [ 676239.2, 203111.3 ], [ 676063.2, 203105.2 ], [ 675861.2, 203062.4 ], [ 675665.5, 203036.5 ], [ 675651.4, 203016.2 ], [ 675559.7, 203037.0 ], [ 675345.9, 203065.8 ], [ 675119.5, 203064.9 ], [ 675054.4, 203053.9 ], [ 674774.2, 202976.4 ], [ 674689.4, 202967.4 ], [ 674579.0, 202934.0 ], [ 674391.6, 202953.1 ], [ 674288.1, 202939.0 ], [ 673598.0, 202641.2 ], [ 673546.8, 202612.2 ], [ 673494.6, 202572.9 ], [ 673470.6, 202580.7 ], [ 673358.6, 202533.4 ], [ 673319.9, 202526.2 ], [ 673289.9, 202538.4 ], [ 673249.2, 202578.0 ], [ 673226.0, 202590.1 ], [ 673177.07, 202584.4 ], [ 672345.2, 202238.4 ], [ 672164.2, 202170.9 ], [ 672120.6, 202172.0 ], [ 672016.3, 202199.1 ], [ 671938.2, 202186.6 ], [ 671905.9, 202242.6 ], [ 671884.815, 202239.91 ], [ 671835.3, 202362.0 ], [ 671737.6, 202355.8 ], [ 671600.8, 202227.3 ], [ 671562.5, 202178.7 ], [ 671350.5, 202271.1 ], [ 671332.2, 202269.9 ], [ 671277.7, 202213.8 ], [ 671294.1, 202187.0 ], [ 671308.3, 202135.7 ], [ 671301.9, 202086.3 ], [ 671176.6, 201920.7 ], [ 671069.6, 201797.6 ], [ 670938.8, 201696.4 ], [ 670884.3, 201672.4 ], [ 670858.6, 201654.1 ], [ 670811.8, 201602.4 ], [ 670772.6, 201544.9 ], [ 670757.1, 201531.1 ], [ 670725.1, 201526.4 ], [ 670701.3, 201509.1 ], [ 670648.3, 201437.4 ], [ 670641.3, 201389.6 ], [ 670616.8, 201353.0 ], [ 670715.0, 201273.6 ], [ 670750.4, 201228.7 ], [ 670697.1, 201185.4 ] ], [ [ 670604.7, 201093.9 ], [ 670643.3, 201138.1 ], [ 670697.1, 201185.4 ] ], [ [ 670604.7, 201093.9 ], [ 670593.6, 201094.9 ], [ 670570.3, 201118.6 ], [ 670549.8, 201180.6 ], [ 670338.8, 201309.1 ], [ 670300.8, 201349.1 ], [ 670283.0, 201378.2 ], [ 670251.9, 201380.5 ], [ 670101.8, 201435.9 ], [ 669985.6, 201471.1 ], [ 669918.8, 201481.7 ], [ 669815.0, 201483.6 ], [ 669736.9, 201472.9 ], [ 669540.8, 201419.1 ], [ 669264.2, 201303.6 ], [ 669150.3, 201300.8 ], [ 668921.2, 201253.0 ], [ 668874.4, 201226.8 ], [ 668803.2, 201153.1 ], [ 668768.0, 201127.4 ], [ 668697.1, 201086.6 ], [ 668657.1, 201070.7 ], [ 668544.9, 201045.9 ], [ 668393.6, 201027.6 ], [ 668257.9, 200989.6 ], [ 668078.0, 200777.9 ], [ 667587.9, 199953.5 ], [ 667505.2, 199872.0 ], [ 667337.7, 199738.2 ], [ 667292.4, 199682.9 ], [ 667263.2, 199620.5 ], [ 667163.4, 199347.9 ], [ 667133.9, 199295.8 ], [ 666993.2, 199167.5 ], [ 666880.8, 199045.7 ], [ 666785.6, 198933.8 ], [ 666635.7, 198737.0 ], [ 666603.2, 198710.1 ], [ 666507.2, 198665.4 ], [ 666307.6, 198579.5 ], [ 666189.1, 198553.8 ], [ 666051.2, 198482.5 ], [ 665780.0, 198223.3 ], [ 665599.1, 198118.2 ], [ 665576.0, 198073.4 ], [ 665559.1, 197941.9 ], [ 665416.3, 197984.4 ], [ 665284.7, 197971.1 ], [ 665250.5, 197957.0 ], [ 665202.5, 197895.8 ], [ 665167.3, 197870.9 ], [ 665147.0, 197867.6 ], [ 665058.3, 197880.6 ], [ 664988.9, 197825.6 ], [ 664973.5, 197787.7 ], [ 664939.9, 197764.5 ], [ 664913.2, 197735.0 ], [ 664834.9, 197709.9 ], [ 664810.6, 197691.3 ], [ 664750.2, 197619.0 ], [ 664657.0, 197525.5 ], [ 664614.1, 197421.4 ], [ 664606.9, 197382.0 ], [ 664627.4, 197233.0 ], [ 664578.7, 197163.8 ], [ 664551.6, 197099.4 ], [ 664511.4, 197055.5 ], [ 664500.7, 197020.0 ], [ 664450.4, 196977.5 ], [ 664408.4, 196896.3 ], [ 664372.7, 196860.0 ], [ 664318.5, 196820.0 ], [ 664296.8, 196791.5 ], [ 664289.0, 196729.0 ], [ 664328.0, 196672.6 ], [ 664339.3, 196617.8 ], [ 664322.0, 196533.8 ], [ 664286.5, 196474.5 ], [ 664285.5, 196460.7 ], [ 664330.0, 196432.3 ], [ 664375.7, 196392.2 ], [ 664359.0, 196363.6 ], [ 664341.5, 196305.0 ], [ 664314.4, 196156.6 ], [ 664360.4, 196114.3 ], [ 664296.3, 195953.8 ], [ 664297.6, 195920.4 ], [ 664334.5, 195803.3 ], [ 664328.5, 195750.3 ], [ 664304.0, 195712.3 ], [ 664128.8, 195580.4 ], [ 663997.2, 195581.9 ], [ 663928.1, 195544.5 ], [ 663904.6, 195523.2 ], [ 663883.4, 195486.9 ], [ 663830.5, 195354.0 ], [ 663845.3, 195311.6 ], [ 663847.1, 195268.7 ], [ 663835.2, 195097.8 ], [ 663726.1, 194945.8 ], [ 663719.7, 194908.0 ], [ 663692.9, 194847.3 ], [ 663688.0, 194819.1 ], [ 663693.8, 194760.6 ], [ 663585.681, 194814.497 ], [ 663552.8, 194746.2 ], [ 663526.2, 194717.4 ], [ 663442.1, 194657.9 ], [ 663417.2, 194629.6 ], [ 663356.5, 194526.1 ], [ 663308.0, 194462.8 ], [ 663285.5, 194465.2 ], [ 663239.5, 194503.3 ], [ 663193.8, 194477.6 ], [ 663169.0, 194452.6 ], [ 663141.0, 194439.3 ], [ 663079.8, 194452.0 ], [ 663044.2, 194434.2 ], [ 662927.3, 194337.3 ], [ 662924.6, 194313.1 ], [ 662908.9, 194274.7 ], [ 662898.3, 194258.3 ], [ 662848.8, 194221.3 ], [ 662833.6, 194192.2 ], [ 662766.7, 194172.5 ], [ 662731.5, 194155.1 ], [ 662680.8, 194110.3 ], [ 662652.1, 194062.9 ], [ 662554.8, 193978.7 ], [ 662415.5, 193907.8 ], [ 662383.1, 193887.0 ], [ 662337.3, 193836.2 ], [ 662303.3, 193822.3 ], [ 662213.2, 193760.4 ], [ 662150.3, 193687.8 ], [ 662054.350617, 193534.006904 ] ], [ [ 559386.0, 143029.3 ], [ 559379.733, 143043.526 ], [ 559360.931183, 143054.964848 ] ], [ [ 559386.0, 143029.3 ], [ 559399.7, 143007.7 ], [ 559372.029, 143023.301 ], [ 559360.931183, 143054.964848 ] ], [ [ 758161.6, 256998.1 ], [ 758158.4, 256973.3 ], [ 758068.9, 256988.1 ], [ 758071.8, 257012.3 ] ], [ [ 758161.6, 256998.1 ], [ 758185.9, 257149.5 ], [ 758225.2, 257074.1 ], [ 758280.5, 256932.9 ], [ 758292.8, 256924.2 ], [ 758309.3, 256923.9 ], [ 758348.9, 256958.0 ], [ 758372.0, 256881.9 ], [ 758366.7, 256860.9 ], [ 758354.5, 256845.4 ], [ 758308.2, 256817.6 ], [ 758155.1, 256779.5 ], [ 758097.0, 256802.9 ], [ 758066.1, 256742.9 ], [ 758044.2, 256635.5 ], [ 758087.4, 256598.0 ], [ 758112.1, 256561.9 ], [ 758128.7, 256475.0 ], [ 758149.5, 256424.0 ], [ 758152.7, 256316.7 ], [ 758149.2, 256282.6 ], [ 758076.2, 256106.7 ], [ 758077.7, 256078.0 ], [ 758059.4, 256072.6 ], [ 758059.0, 256021.8 ], [ 758070.3, 256007.3 ], [ 758166.3, 255981.6 ], [ 758209.2, 255956.9 ], [ 758264.8, 255908.8 ], [ 758276.0, 255887.1 ], [ 758275.2, 255870.4 ], [ 758268.5, 255860.2 ], [ 758248.8, 255853.5 ], [ 758213.3, 255876.3 ], [ 758195.3, 255871.8 ], [ 758036.5, 255777.5 ], [ 758036.5, 255764.3 ], [ 758049.0, 255756.6 ], [ 758087.6, 255767.2 ], [ 758124.6, 255765.8 ], [ 758133.6, 255750.2 ], [ 758130.3, 255704.7 ], [ 758142.3, 255662.3 ], [ 758145.3, 255597.6 ], [ 758124.8, 255506.0 ], [ 758101.1, 255450.4 ], [ 758038.0, 255373.1 ], [ 758004.3, 255270.5 ], [ 757981.1, 255280.2 ], [ 757934.2, 255273.0 ], [ 757709.7, 255093.6 ], [ 757653.9, 255059.6 ], [ 757611.3, 254990.6 ], [ 757528.9, 254894.5 ], [ 757478.1, 254880.3 ], [ 757418.1, 254872.8 ], [ 757275.8, 254825.7 ], [ 757240.6, 254797.5 ], [ 757169.6, 254721.3 ], [ 757132.0, 254699.4 ], [ 757053.4, 254719.6 ], [ 756914.1, 254732.4 ], [ 756825.9, 254711.9 ], [ 756652.9, 254705.8 ], [ 756522.9, 254733.4 ], [ 756342.7, 254748.4 ], [ 756314.9, 254746.4 ], [ 756093.7, 254691.4 ], [ 756074.2, 254696.0 ], [ 755972.9, 254759.8 ], [ 755839.5, 254603.8 ], [ 755791.8, 254477.6 ], [ 755774.0, 254458.1 ], [ 755727.5, 254426.9 ], [ 755728.7, 254392.9 ], [ 755710.2, 254374.9 ], [ 755531.8, 254344.4 ], [ 755511.9, 254334.6 ], [ 755474.1, 254334.6 ], [ 755401.8, 254319.7 ], [ 755256.2, 254323.9 ], [ 755167.6, 254313.9 ], [ 755144.9, 254307.2 ], [ 755049.2, 254241.6 ], [ 754963.9, 254155.2 ], [ 754929.7, 254103.2 ], [ 754762.8, 254088.8 ], [ 754697.1, 254052.1 ], [ 754593.2, 254065.9 ], [ 754571.4, 254062.6 ], [ 754553.5, 254017.4 ], [ 754564.924, 253982.316 ], [ 754640.7, 253885.8 ], [ 754668.6, 253878.0 ], [ 754665.7, 253861.8 ], [ 754629.2, 253843.8 ], [ 754572.4, 253796.3 ], [ 754481.4, 253739.6 ], [ 754445.7, 253699.7 ], [ 754355.6, 253656.1 ], [ 754297.7, 253693.1 ], [ 754280.6, 253693.5 ], [ 754217.1, 253674.9 ], [ 754109.0, 253677.2 ], [ 754095.2, 253673.9 ], [ 754028.5, 253624.9 ], [ 754008.5, 253588.9 ], [ 753986.5, 253571.4 ], [ 753952.0, 253576.7 ], [ 753909.5, 253571.9 ], [ 753848.2, 253586.1 ], [ 753814.9, 253584.7 ], [ 753713.7, 253562.2 ], [ 753666.3, 253570.4 ], [ 753580.2, 253563.9 ], [ 753549.3, 253557.9 ], [ 753498.2, 253523.9 ], [ 753442.0, 253514.5 ], [ 753370.8, 253490.2 ], [ 753357.2, 253491.9 ], [ 753344.5, 253510.4 ], [ 753189.0, 253493.9 ], [ 753180.5, 253485.2 ], [ 753184.5, 253468.4 ], [ 753246.2, 253388.9 ], [ 753272.2, 253334.2 ], [ 753325.0, 253269.7 ], [ 753319.8, 253223.2 ], [ 753339.2, 253180.7 ], [ 753354.7, 253157.9 ], [ 753368.6, 253149.0 ], [ 753347.7, 253097.2 ], [ 753372.3, 253065.5 ], [ 753370.7, 252999.1 ], [ 753378.9, 252995.9 ], [ 753400.4, 253019.7 ], [ 753416.7, 253019.8 ], [ 753439.8, 253016.7 ], [ 753478.3, 252990.4 ], [ 753488.3, 252914.1 ], [ 753525.2, 252836.8 ], [ 753595.6, 252829.4 ], [ 753597.5, 252815.7 ], [ 753421.6, 252793.2 ], [ 753326.1, 252749.4 ], [ 753279.2, 252694.3 ], [ 753245.4, 252669.8 ], [ 753208.4, 252629.0 ], [ 753133.9, 252527.3 ], [ 753094.9, 252487.3 ], [ 753063.9, 252486.1 ], [ 753053.3, 252494.4 ], [ 753047.0, 252518.4 ], [ 753089.2, 252697.3 ], [ 753150.5, 252783.7 ], [ 753152.1, 252852.2 ], [ 753169.4, 252918.6 ], [ 753168.1, 252936.0 ], [ 753159.5, 252951.2 ], [ 753135.3, 252961.8 ], [ 752925.7, 252957.3 ], [ 752902.7, 252947.8 ], [ 752903.9, 252932.8 ], [ 752918.7, 252922.3 ], [ 753030.6, 252861.2 ], [ 753035.2, 252829.6 ], [ 753016.4, 252781.6 ], [ 752990.9, 252763.1 ], [ 752948.9, 252710.8 ], [ 752927.7, 252718.3 ], [ 752917.0, 252746.4 ], [ 752903.8, 252759.1 ], [ 752885.1, 252646.6 ], [ 752849.0, 252525.0 ], [ 752858.8, 252467.3 ], [ 752850.3, 252373.4 ], [ 752858.5, 252265.3 ], [ 752783.5, 252115.1 ], [ 752762.4, 251986.8 ], [ 752815.5, 251783.4 ], [ 752808.6, 251736.5 ], [ 752903.9, 251679.1 ], [ 752991.7, 251670.8 ], [ 753099.8, 251635.7 ], [ 753172.5, 251670.5 ], [ 753257.9, 251653.5 ], [ 753286.3, 251639.3 ], [ 753333.7, 251580.2 ], [ 753365.3, 251559.9 ], [ 753440.242, 251537.659 ], [ 753452.3, 251527.2 ], [ 753491.9, 251460.1 ], [ 753514.1, 251435.1 ], [ 753521.5, 251406.4 ], [ 753553.7, 251369.8 ], [ 753624.9, 251318.6 ], [ 753640.5, 251311.9 ], [ 753666.6, 251312.8 ], [ 753706.6, 251240.1 ], [ 753760.0, 251181.1 ], [ 753773.2, 251172.1 ], [ 753823.5, 251177.8 ], [ 753860.7, 251148.6 ], [ 753860.5, 251141.3 ], [ 753788.2, 251116.1 ], [ 753721.2, 251047.8 ], [ 753675.6, 250917.6 ], [ 753680.4, 250775.3 ], [ 753710.7, 250703.6 ], [ 753726.6, 250631.5 ], [ 753771.5, 250616.4 ], [ 753854.5, 250602.7 ], [ 753893.9, 250604.4 ], [ 753947.5, 250541.1 ], [ 753965.7, 250531.6 ], [ 753993.4, 250531.0 ], [ 754018.6, 250517.1 ], [ 754052.4, 250509.1 ], [ 754188.1, 250434.7 ], [ 754206.6, 250431.9 ], [ 754242.9, 250441.5 ], [ 754289.7, 250428.0 ], [ 754303.7, 250417.0 ], [ 754316.7, 250372.8 ], [ 754332.0, 250372.3 ], [ 754357.0, 250388.1 ], [ 754389.7, 250395.0 ], [ 754399.5, 250381.1 ], [ 754410.7, 250267.1 ], [ 754418.5, 250258.1 ], [ 754554.9, 250241.1 ], [ 754580.8, 250221.3 ], [ 754598.0, 250216.3 ], [ 754675.2, 250236.3 ], [ 754686.2, 250234.3 ], [ 754630.0, 250180.8 ], [ 754633.5, 250125.0 ], [ 754606.5, 250081.3 ], [ 754623.4, 250007.4 ], [ 754612.3, 249887.1 ], [ 754622.9, 249852.1 ], [ 754633.6, 249841.0 ], [ 754634.2, 249822.9 ], [ 754555.7, 249722.1 ], [ 754522.7, 249645.9 ], [ 754525.9, 249620.8 ], [ 754564.8, 249552.4 ], [ 754571.1, 249527.0 ], [ 754569.1, 249487.1 ], [ 754562.4, 249452.9 ], [ 754533.0, 249397.6 ], [ 754520.2, 249323.3 ], [ 754482.4, 249270.7 ], [ 754481.4, 249256.9 ], [ 754570.4, 249218.1 ], [ 754576.2, 249178.7 ], [ 754562.5, 249130.2 ], [ 754559.8, 249094.8 ], [ 754527.9, 249002.7 ], [ 754486.1, 248955.1 ], [ 754403.0, 248876.5 ], [ 754356.7, 248843.2 ], [ 754333.4, 248834.3 ], [ 754279.9, 248830.2 ], [ 754136.9, 248755.4 ], [ 753952.7, 248682.3 ], [ 753929.9, 248679.4 ], [ 753918.9, 248684.7 ], [ 753898.0, 248714.7 ], [ 753889.4, 248715.0 ], [ 753831.3, 248691.6 ], [ 753781.9, 248683.2 ], [ 753616.7, 248504.5 ], [ 753591.1, 248454.5 ], [ 753547.2, 248424.7 ], [ 753481.6, 248353.1 ], [ 753400.2, 248304.4 ], [ 753360.9, 248272.3 ], [ 753260.4, 248167.3 ], [ 753137.9, 248133.6 ], [ 752977.8, 248056.7 ], [ 752776.0, 247975.9 ], [ 752704.7, 247987.4 ], [ 752659.9, 247972.0 ], [ 752538.2, 247764.0 ], [ 752489.3, 247727.1 ], [ 752444.6, 247704.6 ], [ 752393.2, 247661.3 ], [ 752372.6, 247679.4 ], [ 752276.9, 247685.5 ], [ 752148.1, 247673.2 ], [ 752116.4, 247658.9 ], [ 752099.4, 247640.0 ], [ 752099.9, 247574.6 ], [ 752111.1, 247528.6 ], [ 752161.8, 247456.1 ], [ 752196.8, 247434.5 ], [ 752199.2, 247421.2 ], [ 752212.6, 247421.4 ], [ 752214.9, 247415.3 ], [ 752193.4, 247370.8 ], [ 752180.0, 247318.5 ], [ 752164.0, 247127.7 ], [ 752171.9, 247095.1 ], [ 752188.4, 247072.1 ], [ 752222.3, 247073.0 ], [ 752270.9, 247023.9 ], [ 752322.9, 246950.9 ], [ 752323.5, 246939.2 ], [ 752297.7, 246900.3 ], [ 752290.4, 246877.9 ], [ 752352.6, 246748.2 ], [ 752333.7, 246679.2 ], [ 752305.3, 246615.7 ], [ 752302.4, 246571.9 ], [ 752320.0, 246483.6 ], [ 752335.2, 246324.9 ], [ 752351.1, 246267.9 ], [ 752352.2, 246220.2 ], [ 752356.6, 246205.0 ], [ 752372.1, 246187.2 ], [ 752382.2, 246146.1 ], [ 752369.0, 246112.5 ], [ 752404.5, 246041.1 ], [ 752435.6, 245957.5 ], [ 752440.0, 245905.2 ], [ 752483.1, 245770.7 ], [ 752491.1, 245698.2 ], [ 752484.6, 245659.0 ], [ 752540.6, 245473.2 ], [ 752604.7, 245362.6 ], [ 752601.5, 245338.9 ], [ 752635.4, 245287.2 ], [ 752664.9, 245268.5 ], [ 752660.4, 245256.0 ], [ 752641.9, 245242.9 ], [ 752697.5, 245223.6 ], [ 752710.216, 245212.486 ], [ 752740.3, 245214.0 ], [ 752756.3, 245205.0 ], [ 752790.1, 245156.6 ], [ 752825.9, 245131.1 ], [ 752906.0, 245118.2 ], [ 753018.1, 245032.0 ], [ 753031.8, 245010.0 ], [ 753031.7, 244990.6 ], [ 752966.6, 244956.9 ], [ 752957.9, 244942.8 ], [ 752952.0, 244894.9 ], [ 752943.3, 244884.2 ], [ 752866.5, 244849.5 ], [ 752816.1, 244812.5 ], [ 752792.3, 244802.8 ], [ 752738.9, 244801.1 ], [ 752639.8, 244830.0 ], [ 752623.3, 244828.5 ], [ 752582.1, 244780.7 ], [ 752469.0, 244711.6 ], [ 752421.6, 244654.9 ], [ 752403.4, 244610.6 ], [ 752546.3, 244583.6 ], [ 752769.0, 244587.3 ], [ 752849.8, 244570.8 ], [ 752925.9, 244532.4 ], [ 753181.4, 244340.7 ], [ 753095.6, 244276.7 ], [ 752991.1, 244233.7 ], [ 752970.315, 244233.606 ], [ 752919.562, 244214.596 ], [ 752695.8, 244158.4 ], [ 752337.3, 244084.4 ], [ 752270.3, 244061.2 ], [ 751896.7, 243886.0 ], [ 751842.1, 243836.2 ], [ 751765.4, 243705.5 ], [ 751630.1, 243682.7 ], [ 751515.0, 243645.7 ], [ 751480.4, 243632.8 ], [ 751412.4, 243583.6 ], [ 751367.6, 243571.1 ], [ 751035.8, 243615.5 ], [ 750994.5, 243626.5 ], [ 750949.1, 243651.8 ], [ 750805.8, 243698.5 ], [ 750764.4, 243703.7 ], [ 750542.0, 243702.6 ], [ 750432.8, 243725.2 ], [ 750348.7, 243735.4 ], [ 750216.8, 243801.2 ], [ 750053.6, 243823.0 ], [ 749960.9, 243844.0 ], [ 749857.8, 243903.3 ], [ 749818.7, 243917.7 ], [ 749769.8, 243899.3 ], [ 749601.3, 243874.2 ], [ 749501.3, 243929.4 ], [ 749315.7, 243972.8 ], [ 749279.0, 243997.2 ], [ 749196.0, 244085.5 ], [ 749171.9, 244102.9 ], [ 749088.8, 244123.7 ], [ 749062.9, 244093.0 ], [ 749147.5, 243941.9 ], [ 749069.9, 243896.5 ], [ 749091.3, 243837.9 ], [ 749100.4, 243752.6 ], [ 749119.8, 243700.1 ], [ 749129.1, 243675.9 ], [ 749161.6, 243628.5 ], [ 749416.2, 243440.7 ], [ 749457.7, 243399.3 ], [ 749475.6, 243129.9 ], [ 749514.4, 242948.8 ], [ 749529.9, 242901.6 ], [ 749612.3, 242748.0 ], [ 749910.5, 242593.2 ], [ 750015.5, 242552.5 ], [ 750142.9, 242513.0 ], [ 750212.0, 242472.6 ], [ 750323.9, 242470.3 ], [ 750380.5, 242456.5 ], [ 750519.4, 242317.4 ], [ 750565.2, 242280.5 ], [ 750616.5, 242204.8 ], [ 750681.0, 242125.3 ], [ 750688.2, 242011.8 ], [ 750697.7, 241978.8 ], [ 750669.6, 241902.1 ], [ 750665.7, 241842.9 ], [ 750716.7, 241787.1 ], [ 750772.7, 241813.0 ], [ 750811.5, 241799.0 ], [ 750856.8, 241792.2 ], [ 750855.0, 241778.0 ], [ 750865.7, 241764.2 ], [ 750937.7, 241720.8 ], [ 750933.0, 241668.8 ], [ 750976.7, 241593.8 ], [ 750975.0, 241575.0 ], [ 750858.8, 241504.5 ], [ 750831.5, 241495.3 ], [ 750787.2, 241498.0 ], [ 750773.7, 241492.8 ], [ 750708.6, 241439.4 ], [ 750663.0, 241388.8 ], [ 750630.2, 241259.0 ], [ 750591.5, 241217.6 ], [ 750361.5, 241234.6 ], [ 750268.8, 241235.6 ], [ 750228.2, 241226.3 ], [ 750079.7, 241155.6 ], [ 749791.0, 240972.0 ], [ 749667.5, 240847.5 ], [ 749596.6, 240811.0 ], [ 749549.4, 240770.0 ], [ 749080.2, 240570.6 ], [ 748966.7, 240513.6 ], [ 748847.0, 240434.6 ], [ 748827.2, 240424.3 ], [ 748786.5, 240416.3 ], [ 748670.3, 240327.4 ], [ 748646.4, 240298.2 ], [ 748592.5, 240266.2 ], [ 748522.6, 240204.8 ], [ 748425.2, 240143.3 ], [ 748355.4, 240061.1 ], [ 748320.0, 240032.9 ], [ 748262.0, 240038.6 ], [ 747983.0, 239970.4 ], [ 747945.5, 239958.1 ], [ 747732.4, 239850.5 ], [ 747644.9, 239845.1 ], [ 747629.4, 239831.8 ], [ 747605.6, 239788.8 ], [ 747573.6, 239770.8 ], [ 747554.9, 239730.1 ], [ 747544.4, 239721.8 ], [ 747497.6, 239740.8 ], [ 747472.6, 239740.3 ], [ 747322.3, 239675.1 ], [ 747311.0, 239664.4 ], [ 747297.9, 239623.1 ], [ 747269.2, 239583.5 ], [ 747260.8, 239529.4 ], [ 747251.4, 239518.8 ], [ 747236.4, 239516.1 ], [ 747195.6, 239524.1 ], [ 747167.5, 239547.3 ], [ 747109.9, 239571.0 ], [ 747047.9, 239552.1 ], [ 746879.8, 239476.3 ], [ 746766.8, 239438.5 ], [ 746670.6, 239412.8 ], [ 746628.3, 239405.5 ], [ 746553.1, 239404.0 ], [ 746485.5, 239385.6 ], [ 746332.1, 239305.4 ], [ 746215.9, 239211.2 ], [ 746124.6, 239186.6 ], [ 746042.9, 239108.9 ], [ 745985.1, 239067.6 ], [ 745890.3, 239038.8 ], [ 745784.1, 239015.8 ], [ 745652.0, 238942.3 ], [ 745445.6, 238865.8 ], [ 745391.1, 238839.8 ], [ 745339.6, 238794.8 ], [ 745203.3, 238635.9 ], [ 745020.9, 238509.1 ], [ 744982.5, 238474.8 ], [ 744954.0, 238430.3 ], [ 744879.3, 238359.4 ], [ 744834.7, 238307.4 ], [ 744763.2, 238175.2 ], [ 744727.0, 238125.9 ], [ 744717.1, 238120.1 ], [ 744670.1, 238116.3 ], [ 744644.8, 238092.0 ], [ 744630.3, 238086.2 ], [ 744575.6, 238091.6 ], [ 744524.2, 238046.9 ], [ 744482.6, 238029.3 ], [ 744450.0, 238003.5 ], [ 744435.8, 237975.0 ], [ 744431.4, 237876.0 ], [ 744405.6, 237752.2 ], [ 744396.1, 237743.6 ], [ 744335.1, 237735.9 ], [ 744299.5, 237712.4 ], [ 744224.5, 237619.3 ], [ 744173.7, 237532.7 ], [ 744187.3, 237421.0 ], [ 744199.0, 237375.9 ], [ 744211.1, 237360.2 ], [ 744288.5, 237320.8 ], [ 744302.0, 237303.2 ], [ 744305.3, 237242.2 ], [ 744256.3, 237204.0 ], [ 744222.1, 237142.0 ], [ 744190.5, 237105.5 ], [ 744132.0, 237070.7 ], [ 744156.6, 237022.0 ], [ 744249.0, 236978.8 ], [ 744166.6, 236934.7 ], [ 744106.0, 236929.6 ], [ 744068.7, 236915.6 ], [ 743930.5, 236936.4 ], [ 743830.7, 236993.3 ], [ 743811.0, 236995.1 ], [ 743750.5, 236913.2 ], [ 743755.4, 236854.5 ], [ 743744.7, 236789.7 ], [ 743639.7, 236759.6 ], [ 743625.2, 236763.1 ], [ 743562.4, 236810.0 ], [ 743527.7, 236844.0 ], [ 743460.6, 236882.5 ], [ 743442.5, 236901.3 ], [ 743421.0, 236972.3 ], [ 743391.7, 237004.7 ], [ 743326.5, 237025.7 ], [ 743290.5, 237059.5 ], [ 743237.2, 237054.4 ], [ 743231.7, 237042.4 ], [ 743237.0, 237011.6 ], [ 743202.4, 236964.3 ], [ 743126.6, 236909.4 ], [ 743114.1, 236884.7 ], [ 743073.9, 236842.7 ], [ 743087.4, 236806.9 ], [ 743073.6, 236761.9 ], [ 743082.6, 236673.1 ], [ 743080.4, 236614.4 ], [ 743064.6, 236547.9 ], [ 743068.9, 236501.1 ], [ 743063.9, 236453.6 ], [ 743052.4, 236424.6 ], [ 743040.0, 236417.1 ], [ 743050.2, 236369.0 ], [ 743083.2, 236293.8 ], [ 743105.5, 236216.4 ], [ 743144.5, 236147.7 ], [ 743149.5, 236116.9 ], [ 743142.5, 236092.7 ], [ 743057.0, 235990.4 ], [ 743012.0, 235909.7 ], [ 742900.2, 235833.4 ], [ 742839.5, 235773.7 ], [ 742802.5, 235706.5 ], [ 742779.0, 235682.3 ], [ 742752.2, 235667.7 ], [ 742622.6, 235634.2 ], [ 742574.1, 235615.7 ], [ 742500.0, 235566.8 ], [ 742460.9, 235529.8 ], [ 742431.4, 235515.3 ], [ 742413.9, 235513.1 ], [ 742398.6, 235524.6 ], [ 742382.3, 235585.9 ], [ 742366.4, 235583.3 ], [ 742255.7, 235621.3 ], [ 741904.6, 235525.6 ], [ 741794.3, 235439.1 ], [ 741777.2, 235434.9 ], [ 741763.8, 235446.0 ], [ 741739.7, 235503.9 ], [ 741734.9, 235552.9 ], [ 741724.1, 235562.3 ], [ 741553.0, 235537.6 ], [ 741531.7, 235541.8 ], [ 741486.5, 235565.8 ], [ 741459.4, 235552.0 ], [ 741371.8, 235533.9 ], [ 741359.6, 235524.6 ], [ 741261.2, 235373.5 ], [ 741236.8, 235348.1 ], [ 741264.3, 235297.9 ], [ 741293.8, 235263.2 ], [ 741325.3, 235250.5 ], [ 741418.7, 235237.0 ], [ 741458.5, 235190.3 ], [ 741567.9, 235123.7 ], [ 741580.2, 235099.4 ], [ 741581.6, 235069.2 ], [ 741555.0, 234988.0 ], [ 741561.4, 234911.9 ], [ 741549.6, 234900.1 ], [ 741519.6, 234889.6 ], [ 741514.4, 234873.6 ], [ 741523.1, 234861.1 ], [ 741608.2, 234823.5 ], [ 741621.2, 234809.2 ], [ 741619.5, 234780.3 ], [ 741601.6, 234738.4 ], [ 741577.8, 234703.2 ], [ 741561.1, 234689.8 ], [ 741541.9, 234684.8 ], [ 741417.8, 234696.0 ], [ 741372.7, 234692.5 ], [ 741351.1, 234681.9 ], [ 741314.3, 234616.6 ], [ 741218.7, 234494.5 ], [ 741098.0, 234301.1 ], [ 741102.7, 234282.0 ], [ 741114.3, 234270.2 ], [ 741182.2, 234256.3 ], [ 741196.5, 234234.8 ], [ 741189.8, 234210.5 ], [ 741135.2, 234179.6 ], [ 741118.2, 234161.2 ], [ 741139.3, 234125.0 ], [ 741153.0, 234085.2 ], [ 741141.9, 233875.9 ], [ 741096.6, 233825.6 ], [ 741022.3, 233821.2 ], [ 740984.8, 233805.0 ], [ 740949.6, 233779.5 ], [ 740829.0, 233795.1 ], [ 740787.4, 233788.7 ], [ 740756.5, 233776.4 ], [ 740681.0, 233693.9 ], [ 740709.6, 233662.4 ], [ 740782.2, 233615.9 ], [ 740796.1, 233598.4 ], [ 740798.0, 233559.9 ], [ 740792.1, 233547.3 ], [ 740750.1, 233500.4 ], [ 740648.2, 233481.7 ], [ 740618.3, 233482.7 ], [ 740516.1, 233514.3 ], [ 740443.5, 233529.2 ], [ 740433.8, 233527.9 ], [ 740416.3, 233478.9 ], [ 740397.1, 233461.0 ], [ 740318.4, 233460.6 ], [ 740261.7, 233473.9 ], [ 740168.4, 233480.8 ], [ 740061.6, 233546.3 ], [ 739965.3, 233624.0 ], [ 739907.0, 233697.1 ], [ 739897.8, 233749.9 ], [ 739912.7, 233792.8 ], [ 739953.1, 233831.8 ], [ 740039.0, 233882.0 ], [ 740049.7, 233944.1 ], [ 740076.2, 233964.0 ], [ 740084.9, 233979.1 ], [ 740089.0, 234011.5 ], [ 740075.6, 234067.8 ], [ 740074.6, 234130.6 ], [ 740063.2, 234141.1 ], [ 740055.1, 234135.6 ], [ 740056.8, 234090.9 ], [ 740049.6, 234051.8 ], [ 740041.3, 234030.5 ], [ 740027.6, 234019.8 ], [ 739932.2, 234027.9 ], [ 739837.6, 234054.4 ], [ 739816.3, 234052.0 ], [ 739772.0, 234017.9 ], [ 739730.2, 234054.9 ], [ 739642.7, 234096.6 ], [ 739615.6, 234099.0 ], [ 739548.9, 234050.6 ], [ 739528.8, 234044.2 ], [ 739419.8, 234071.4 ], [ 739395.0, 234072.2 ], [ 739264.6, 234001.1 ], [ 739202.8, 233951.4 ], [ 739180.4, 233943.1 ], [ 739110.1, 233952.6 ], [ 739102.7, 233943.7 ], [ 739099.7, 233908.7 ], [ 739089.3, 233898.3 ], [ 738991.2, 233915.6 ], [ 738804.3, 233856.5 ], [ 738738.728, 233847.954 ], [ 738747.5, 233811.2 ], [ 738751.8, 233726.2 ], [ 738788.0, 233683.9 ], [ 738815.1, 233664.5 ], [ 738856.8, 233649.2 ], [ 738863.3, 233635.7 ], [ 738824.5, 233586.5 ], [ 738799.3, 233576.0 ], [ 738676.6, 233482.7 ], [ 738663.8, 233477.1 ], [ 738561.3, 233471.8 ], [ 738553.8, 233460.2 ], [ 738559.8, 233451.7 ], [ 738607.0, 233453.9 ], [ 738700.0, 233421.9 ], [ 738718.8, 233418.8 ], [ 738752.8, 233425.9 ], [ 738759.8, 233417.9 ], [ 738736.3, 233381.5 ], [ 738650.5, 233356.9 ], [ 738642.3, 233338.7 ], [ 738653.0, 233325.7 ], [ 738695.9, 233304.9 ], [ 738712.5, 233282.9 ], [ 738713.3, 233268.2 ], [ 738700.3, 233229.1 ], [ 738683.6, 233199.3 ], [ 738650.9, 233165.0 ], [ 738638.4, 233132.6 ], [ 738645.0, 233098.1 ], [ 738680.3, 233004.4 ], [ 738680.8, 232960.6 ], [ 738665.8, 232949.9 ], [ 738631.0, 232943.4 ], [ 738606.0, 232925.6 ], [ 738556.0, 232857.9 ], [ 738498.2, 232821.4 ], [ 738475.1, 232762.7 ], [ 738401.0, 232752.1 ], [ 738358.8, 232592.7 ], [ 738323.2, 232558.4 ], [ 738290.3, 232547.7 ], [ 738269.6, 232477.6 ], [ 738222.0, 232362.4 ], [ 738219.9, 232316.0 ], [ 738196.0, 232274.7 ], [ 738194.0, 232240.2 ], [ 738179.0, 232204.6 ], [ 738172.3, 232162.5 ], [ 738155.8, 232149.8 ], [ 738152.5, 232124.7 ], [ 738196.5, 232106.5 ], [ 738194.0, 232089.0 ], [ 738181.3, 232091.0 ], [ 738170.8, 232081.2 ], [ 738146.0, 232080.5 ], [ 738139.0, 232049.5 ], [ 738113.5, 232001.8 ], [ 738114.253, 231945.788 ], [ 738156.2, 231952.9 ], [ 738218.3, 231936.3 ], [ 738240.1, 231942.6 ], [ 738268.0, 231969.0 ], [ 738316.0, 231971.9 ], [ 738349.5, 231962.3 ], [ 738321.8, 231918.3 ], [ 738315.7, 231897.8 ], [ 738321.699, 231887.996 ], [ 738295.6, 231860.6 ], [ 738286.2, 231799.1 ], [ 738248.2, 231711.7 ], [ 738198.7, 231679.7 ], [ 738146.8, 231667.5 ], [ 738117.9, 231650.9 ], [ 738093.4, 231608.1 ], [ 738093.9, 231588.7 ], [ 738077.6, 231577.9 ], [ 738026.011, 231576.127 ], [ 738007.9, 231554.9 ], [ 737955.9, 231518.9 ], [ 737862.3, 231511.5 ], [ 737772.5, 231480.9 ], [ 737686.0, 231499.2 ], [ 737574.6, 231491.9 ], [ 737548.3, 231510.6 ], [ 737497.4, 231511.2 ], [ 737436.5, 231490.5 ], [ 737389.1, 231486.6 ], [ 737342.8, 231445.7 ], [ 737316.4, 231445.2 ], [ 737273.4, 231425.4 ], [ 737195.7, 231429.1 ], [ 737089.2, 231368.3 ], [ 737044.9, 231351.1 ], [ 737028.6, 231362.2 ], [ 736976.0, 231338.1 ], [ 736915.0, 231340.8 ], [ 736865.4, 231299.6 ], [ 736797.8, 231315.3 ], [ 736766.6, 231365.6 ], [ 736738.1, 231397.1 ], [ 736736.9, 231441.4 ], [ 736690.6, 231455.2 ], [ 736683.9, 231454.7 ], [ 736664.0, 231432.2 ], [ 736634.3, 231425.5 ], [ 736575.6, 231370.8 ], [ 736514.0, 231368.1 ], [ 736503.2, 231360.2 ], [ 736487.1, 231330.6 ], [ 736503.1, 231309.9 ], [ 736494.7, 231290.7 ], [ 736447.1, 231282.4 ], [ 736437.6, 231360.1 ], [ 736418.1, 231363.1 ], [ 736402.7, 231347.0 ], [ 736377.9, 231310.7 ], [ 736370.0, 231249.6 ], [ 736352.2, 231201.1 ], [ 736355.4, 231167.9 ], [ 736401.3, 231075.2 ], [ 736430.0, 231034.0 ], [ 736434.8, 231012.2 ], [ 736433.1, 230999.0 ], [ 736401.6, 230957.6 ], [ 736405.1, 230944.1 ], [ 736421.6, 230926.1 ], [ 736423.1, 230858.6 ], [ 736399.6, 230807.8 ], [ 736387.2, 230792.5 ], [ 736369.1, 230784.1 ], [ 736345.3, 230786.7 ], [ 736335.0, 230798.0 ], [ 736301.8, 230868.2 ], [ 736285.3, 230863.9 ], [ 736253.6, 230822.1 ], [ 736224.8, 230833.6 ], [ 736213.3, 230830.1 ], [ 736206.6, 230805.3 ], [ 736216.9, 230793.5 ], [ 736220.0, 230773.4 ], [ 736254.7, 230698.7 ], [ 736208.7, 230670.9 ], [ 736211.8, 230622.1 ], [ 736203.6, 230525.7 ], [ 736207.8, 230512.3 ], [ 736232.8, 230488.4 ], [ 736236.0, 230473.9 ], [ 736215.3, 230413.5 ], [ 736143.6, 230412.0 ], [ 736131.6, 230402.0 ], [ 736134.3, 230375.0 ], [ 736166.6, 230308.0 ], [ 736175.9, 230256.2 ], [ 736166.9, 230228.2 ], [ 736110.7, 230151.3 ], [ 736101.1, 230017.0 ], [ 736105.6, 230000.0 ], [ 736119.2, 229987.5 ], [ 736169.2, 229988.0 ], [ 736198.9, 229973.0 ], [ 736219.7, 229951.5 ], [ 736219.2, 229939.5 ], [ 736208.9, 229936.7 ], [ 736189.9, 229952.0 ], [ 736175.2, 229955.5 ], [ 736079.9, 229940.0 ], [ 736035.7, 229972.2 ], [ 735995.7, 229973.5 ], [ 735974.7, 229982.0 ], [ 735954.9, 230000.0 ], [ 735945.9, 230024.3 ], [ 735928.6, 230040.8 ], [ 735925.8, 230085.6 ], [ 735908.5, 230120.9 ], [ 735879.5, 230161.5 ], [ 735820.6, 230206.5 ], [ 735808.9, 230227.8 ], [ 735797.7, 230235.5 ], [ 735783.9, 230219.7 ], [ 735770.1, 230164.3 ], [ 735789.1, 230103.0 ], [ 735778.6, 230077.0 ], [ 735777.4, 230051.5 ], [ 735792.9, 230027.5 ], [ 735798.1, 230000.0 ], [ 735806.5, 229993.2 ], [ 735799.5, 229983.2 ], [ 735736.1, 230009.8 ], [ 735686.0, 230045.9 ], [ 735626.6, 230071.5 ], [ 735614.3, 230118.8 ], [ 735600.5, 230131.5 ], [ 735604.7, 230105.3 ], [ 735590.0, 230068.3 ], [ 735596.0, 230045.0 ], [ 735645.0, 230012.3 ], [ 735670.7, 229946.5 ], [ 735733.4, 229881.0 ], [ 735738.4, 229864.0 ], [ 735741.8, 229803.5 ], [ 735761.1, 229740.2 ], [ 735776.8, 229647.1 ], [ 735741.7, 229575.9 ], [ 735757.4, 229522.4 ], [ 735764.7, 229463.5 ], [ 735752.8, 229381.1 ], [ 735779.5, 229331.4 ], [ 735781.3, 229300.0 ], [ 735798.1, 229259.7 ], [ 735795.8, 229241.3 ], [ 735780.3, 229239.5 ], [ 735751.4, 229274.4 ], [ 735684.3, 229315.2 ], [ 735678.0, 229322.9 ], [ 735671.8, 229363.6 ], [ 735663.5, 229371.1 ], [ 735652.7, 229370.4 ], [ 735645.8, 229358.0 ], [ 735640.2, 229277.4 ], [ 735657.5, 229211.5 ], [ 735655.0, 229198.3 ], [ 735638.5, 229190.8 ], [ 735556.2, 229237.8 ], [ 735472.4, 229396.9 ], [ 735453.3, 229414.7 ], [ 735426.7, 229412.6 ], [ 735504.6, 229140.0 ], [ 735501.1, 229069.9 ], [ 735506.1, 229048.1 ], [ 735574.9, 228946.5 ], [ 735724.1, 228539.2 ], [ 735740.4, 228510.5 ], [ 735777.2, 228474.0 ], [ 735933.7, 228399.0 ], [ 735989.5, 228363.9 ], [ 736001.1, 228348.3 ], [ 736008.4, 228243.4 ], [ 736020.4, 228173.8 ], [ 736032.4, 228146.0 ], [ 736044.8, 228135.4 ], [ 736075.6, 228132.0 ], [ 736136.8, 228159.5 ], [ 736194.1, 228168.3 ], [ 736271.0, 228164.6 ], [ 736348.7, 228146.9 ], [ 736395.6, 228114.2 ], [ 736413.9, 228072.4 ], [ 736422.1, 228009.5 ], [ 736435.2, 227969.3 ], [ 736461.1, 227928.9 ], [ 736500.2, 227897.8 ], [ 736999.9, 227770.0 ], [ 737198.8, 227683.9 ], [ 737288.8, 227665.8 ], [ 737301.9, 227571.1 ], [ 737288.9, 227513.1 ], [ 737337.9, 227419.1 ], [ 737299.7, 227310.3 ], [ 737274.9, 227283.1 ], [ 737106.4, 227147.7 ], [ 737025.1, 227095.8 ], [ 736976.0, 227028.1 ], [ 736878.8, 226959.4 ], [ 736814.7, 226862.0 ], [ 736803.2, 226852.8 ], [ 736757.9, 226841.5 ], [ 736728.9, 226794.3 ], [ 736663.7, 226785.3 ], [ 736637.9, 226767.8 ], [ 736584.9, 226695.2 ], [ 736579.7, 226659.5 ], [ 736582.8, 226548.1 ], [ 736570.0, 226507.0 ], [ 736555.7, 226489.7 ], [ 736474.4, 226421.5 ], [ 736408.5, 226391.4 ], [ 736358.9, 226317.7 ], [ 736314.7, 226300.0 ], [ 736293.7, 226250.9 ], [ 736281.9, 226237.7 ], [ 736178.9, 226219.0 ], [ 736161.2, 226221.9 ], [ 736138.4, 226237.4 ], [ 736123.9, 226235.2 ], [ 736123.2, 226223.9 ], [ 736139.6, 226193.1 ], [ 736130.1, 226161.0 ], [ 736104.4, 226128.2 ], [ 736100.0, 226098.4 ], [ 736062.6, 226039.8 ], [ 736028.4, 226010.7 ], [ 736016.2, 225962.9 ], [ 736003.7, 225954.7 ], [ 735994.7, 225962.7 ], [ 735998.2, 226002.3 ], [ 735969.1, 226122.7 ], [ 735964.9, 226252.0 ], [ 735957.9, 226259.2 ], [ 735942.9, 226254.5 ], [ 735924.4, 226218.7 ], [ 735859.7, 226127.5 ], [ 735811.9, 226030.7 ], [ 735700.9, 225922.8 ], [ 735642.4, 225880.2 ], [ 735521.5, 225700.1 ], [ 735488.3, 225672.4 ], [ 735459.5, 225663.7 ], [ 735398.9, 225659.6 ], [ 735396.9, 225674.1 ], [ 735409.9, 225717.6 ], [ 735405.7, 225751.2 ], [ 735365.4, 225830.7 ], [ 735410.9, 225895.4 ], [ 735422.4, 225924.2 ], [ 735434.7, 225994.4 ], [ 735481.9, 226068.7 ], [ 735482.4, 226082.4 ], [ 735464.2, 226090.9 ], [ 735377.7, 226088.2 ], [ 735341.4, 226071.0 ], [ 735325.0, 226069.6 ], [ 735303.3, 226084.8 ], [ 735291.2, 226106.9 ], [ 735277.4, 226109.7 ], [ 735257.9, 226063.7 ], [ 735242.1, 226043.5 ], [ 735173.1, 225999.8 ], [ 735136.2, 225956.2 ], [ 735083.2, 225923.2 ], [ 734986.1, 225834.1 ], [ 734904.8, 225800.4 ], [ 734744.1, 225751.4 ], [ 734695.6, 225716.7 ], [ 734632.9, 225685.6 ], [ 734625.9, 225687.6 ], [ 734624.9, 225694.9 ], [ 734670.1, 225746.6 ], [ 734682.6, 225794.1 ], [ 734716.6, 225850.0 ], [ 734743.4, 225914.2 ], [ 734740.1, 225921.4 ], [ 734694.5, 225901.8 ], [ 734570.4, 225797.9 ], [ 734530.9, 225786.2 ], [ 734447.9, 225777.4 ], [ 734420.1, 225780.7 ], [ 734364.9, 225806.7 ], [ 734270.4, 225817.2 ], [ 734215.1, 225835.4 ], [ 734177.4, 225837.7 ], [ 734134.6, 225863.4 ], [ 734106.1, 225868.4 ], [ 734078.4, 225908.7 ], [ 734039.4, 225919.4 ], [ 734025.4, 225931.2 ], [ 734008.9, 225976.7 ], [ 733995.6, 225985.6 ], [ 733940.1, 225978.7 ], [ 733893.9, 225989.2 ], [ 733859.9, 225958.4 ], [ 733809.9, 225947.9 ], [ 733793.9, 225938.9 ], [ 733693.7, 225933.6 ], [ 733667.4, 225919.6 ], [ 733640.0, 225892.3 ], [ 733576.9, 225861.2 ], [ 733570.6, 225849.4 ], [ 733567.9, 225798.3 ], [ 733557.6, 225785.1 ], [ 733523.5, 225766.3 ], [ 733456.4, 225749.1 ], [ 733278.6, 225654.6 ], [ 733226.2, 225644.8 ], [ 733201.9, 225623.0 ], [ 733165.0, 225561.6 ], [ 733145.6, 225540.9 ], [ 732987.4, 225413.2 ], [ 732901.3, 225362.5 ], [ 732769.1, 225203.6 ], [ 732754.0, 225161.1 ], [ 732756.0, 225115.8 ], [ 732748.2, 225085.6 ], [ 732715.6, 225040.6 ], [ 732691.9, 224973.9 ], [ 732604.1, 224870.1 ], [ 732596.6, 224824.1 ], [ 732569.1, 224789.8 ], [ 732534.1, 224712.5 ], [ 732417.4, 224663.3 ], [ 732312.1, 224645.5 ], [ 732282.1, 224652.8 ], [ 732257.4, 224672.2 ], [ 732207.4, 224739.3 ], [ 732192.6, 224739.0 ], [ 732141.6, 224709.8 ], [ 732072.5, 224654.9 ], [ 732041.2, 224619.2 ], [ 731967.6, 224609.5 ], [ 731936.4, 224621.0 ], [ 731907.6, 224606.8 ], [ 731876.6, 224605.8 ], [ 731852.6, 224595.3 ], [ 731811.1, 224595.8 ], [ 731777.4, 224583.8 ], [ 731732.3, 224548.5 ], [ 731710.3, 224492.4 ], [ 731710.909, 224469.911 ], [ 731681.9, 224413.2 ], [ 731660.5, 224338.3 ], [ 731629.6, 224274.6 ], [ 731591.4, 224235.2 ], [ 731540.8, 224211.3 ], [ 731501.2, 224174.8 ], [ 731461.2, 224096.3 ], [ 731429.4, 224063.7 ], [ 731363.1, 224015.0 ], [ 731310.2, 223994.1 ], [ 731286.0, 223968.8 ], [ 731251.3, 223954.4 ], [ 731184.2, 223891.8 ], [ 731094.4, 223834.7 ], [ 731034.4, 223808.8 ], [ 730988.9, 223775.6 ], [ 730904.1, 223685.6 ], [ 730813.3, 223665.4 ], [ 730678.1, 223660.2 ], [ 730597.8, 223638.4 ], [ 730567.6, 223640.3 ], [ 730469.1, 223690.4 ], [ 730425.3, 223743.7 ], [ 730408.1, 223748.2 ], [ 730345.051, 223736.737 ], [ 730318.0, 223751.1 ], [ 730281.7, 223783.9 ], [ 730182.1, 223790.9 ], [ 730151.6, 223813.7 ], [ 730125.3, 223816.8 ], [ 730117.6, 223803.7 ], [ 730123.3, 223787.4 ], [ 730177.6, 223723.4 ], [ 730188.8, 223689.9 ], [ 730123.6, 223599.4 ], [ 730114.7, 223575.3 ], [ 730109.8, 223457.1 ], [ 730059.8, 223399.9 ], [ 730054.7, 223375.7 ], [ 730066.3, 223311.9 ], [ 730156.8, 223236.9 ], [ 730154.1, 223222.6 ], [ 730124.3, 223190.4 ], [ 730101.8, 223185.4 ], [ 730057.6, 223215.9 ], [ 729987.4, 223209.6 ], [ 729938.2, 223219.6 ], [ 729802.7, 223284.9 ], [ 729756.5, 223298.7 ], [ 729744.1, 223309.4 ], [ 729717.5, 223357.3 ], [ 729692.7, 223376.4 ], [ 729651.3, 223395.6 ], [ 729626.5, 223453.4 ], [ 729618.5, 223458.7 ], [ 729539.3, 223465.5 ], [ 729257.4, 223436.9 ], [ 729152.6, 223420.0 ], [ 729161.7, 223408.6 ], [ 729193.8, 223407.8 ], [ 729201.7, 223399.7 ], [ 729203.0, 223385.3 ], [ 729198.4, 223376.0 ], [ 729142.6, 223341.4 ], [ 729108.3, 223299.9 ], [ 729085.2, 223284.1 ], [ 729083.5, 223272.0 ], [ 729109.9, 223228.8 ], [ 729116.5, 223171.0 ], [ 729100.0, 223129.5 ], [ 729068.0, 223090.0 ], [ 729083.0, 223080.3 ], [ 729085.7, 223069.3 ], [ 729031.0, 223045.5 ], [ 729034.2, 223028.7 ], [ 729077.2, 222996.0 ], [ 729052.2, 222979.0 ], [ 729046.2, 222967.2 ], [ 729023.1, 222873.1 ], [ 728953.7, 222834.2 ], [ 728910.219, 222903.593 ], [ 728879.234, 222895.222 ], [ 728877.6, 222845.7 ], [ 728847.6, 222779.4 ], [ 728785.1, 222705.7 ], [ 728718.8, 222613.2 ], [ 728692.6, 222594.4 ], [ 728647.6, 222590.7 ], [ 728605.1, 222571.9 ], [ 728557.3, 222568.0 ], [ 728507.7, 222586.4 ], [ 728496.0, 222573.8 ], [ 728456.3, 222482.3 ], [ 728326.2, 222446.1 ], [ 728254.4, 222395.1 ], [ 728217.7, 222387.6 ], [ 728001.2, 222425.8 ], [ 727936.9, 222403.1 ], [ 727916.6, 222404.1 ], [ 727820.6, 222466.3 ], [ 727782.1, 222503.1 ], [ 727731.4, 222513.1 ], [ 727676.4, 222559.5 ], [ 727632.1, 222575.3 ], [ 727602.3, 222561.7 ], [ 727551.7, 222511.2 ], [ 727508.3, 222478.2 ], [ 727449.7, 222448.7 ], [ 727330.7, 222467.1 ], [ 727179.4, 222434.4 ], [ 726954.7, 222422.2 ], [ 726845.9, 222379.2 ], [ 726771.7, 222313.2 ], [ 726735.8, 222217.4 ], [ 726701.9, 222158.7 ], [ 726584.1, 222002.7 ], [ 726572.6, 221989.9 ], [ 726547.1, 221977.2 ], [ 726393.1, 221917.9 ], [ 726151.1, 221911.7 ], [ 726094.6, 221902.2 ], [ 726030.4, 221880.4 ], [ 725970.6, 221854.4 ], [ 725925.1, 221825.6 ], [ 725896.5, 221789.8 ], [ 725871.1, 221742.4 ], [ 725836.4, 221712.9 ], [ 725613.8, 221617.0 ], [ 725557.6, 221584.9 ], [ 725515.6, 221545.3 ], [ 725223.1, 221517.0 ], [ 724981.6, 221477.0 ], [ 724996.3, 221366.4 ], [ 724266.3, 221252.6 ], [ 723749.1, 221186.2 ], [ 723675.3, 221193.5 ], [ 723616.9, 221210.6 ], [ 723560.6, 221242.5 ], [ 723472.8, 221321.5 ], [ 723427.789, 221373.572 ], [ 723410.456, 221420.683 ], [ 723358.456, 221502.017 ], [ 723357.117, 221514.957 ], [ 723167.4, 221684.3 ] ], [ [ 758071.8, 257012.3 ], [ 758161.6, 256998.1 ] ], [ [ 614593.1, 178362.1 ], [ 614607.7, 178357.4 ], [ 614607.4, 178249.1 ], [ 614636.1, 178209.9 ] ], [ [ 614593.1, 178362.1 ], [ 614590.7, 178375.0 ], [ 614600.4, 178389.7 ], [ 614479.5, 178445.0 ], [ 614399.5, 178504.8 ], [ 614329.9, 178631.3 ], [ 614292.815, 178714.19 ], [ 614295.367, 178725.672 ], [ 614344.8, 178746.9 ], [ 614438.772, 178820.128 ], [ 614376.6, 178879.7 ], [ 614203.5, 178989.9 ], [ 614154.0, 179029.6 ], [ 614110.0, 179053.4 ], [ 614075.69, 179043.193 ], [ 614062.3, 179048.7 ], [ 613922.141, 179203.794 ], [ 613907.776, 179204.479 ], [ 613908.56, 179218.912 ], [ 613771.5, 179380.7 ], [ 613757.3, 179440.9 ], [ 613596.6, 179934.2 ], [ 613563.3, 180006.7 ], [ 613482.303, 180305.658 ], [ 613568.297, 180317.534 ], [ 613571.9, 180327.7 ], [ 613581.1, 180331.5 ], [ 613593.434, 180321.831 ], [ 614026.4, 180304.7 ], [ 614144.7, 180324.9 ], [ 614238.4, 180331.6 ], [ 614348.1, 180370.8 ], [ 614428.6, 180392.1 ], [ 614464.1, 180393.4 ], [ 614510.9, 180376.9 ], [ 614537.6, 180378.6 ], [ 614588.7, 180412.2 ], [ 614639.8, 180463.6 ], [ 614884.1, 180664.6 ], [ 614922.2, 180665.5 ], [ 614976.2, 180743.2 ], [ 615006.597, 180815.9 ], [ 615047.0, 180782.6 ], [ 615129.7, 180740.8 ], [ 615167.4, 180701.9 ], [ 615243.9, 180770.3 ], [ 615329.4, 180830.2 ], [ 615484.5, 180861.0 ], [ 615596.9, 180917.9 ], [ 615618.5, 180932.2 ], [ 615697.0, 181032.6 ], [ 615735.7, 181066.4 ], [ 615765.2, 181060.4 ], [ 615842.7, 180989.9 ], [ 615874.7, 180971.2 ], [ 615910.4, 180962.6 ], [ 615974.0, 180962.4 ], [ 616038.0, 180952.6 ], [ 616206.5, 180988.6 ], [ 616331.7, 181054.0 ], [ 616402.6, 181054.7 ], [ 616460.9, 181040.8 ], [ 616509.9, 181013.9 ], [ 616577.1, 181007.7 ], [ 616635.2, 181041.6 ], [ 616676.6, 181081.7 ], [ 616755.6, 181114.6 ], [ 616920.7, 181132.7 ], [ 616967.7, 181121.9 ], [ 617145.1, 181109.2 ], [ 617189.7, 181124.0 ], [ 617375.5, 181214.6 ], [ 617395.0, 181217.1 ], [ 617445.9, 181208.5 ], [ 617558.1, 181242.2 ], [ 617684.8, 181249.1 ], [ 617727.6, 181242.7 ], [ 617746.2, 181233.1 ], [ 617803.1, 181176.7 ], [ 617849.6, 181144.2 ], [ 617877.4, 181133.3 ], [ 617953.2, 181120.2 ], [ 618001.5, 181090.6 ], [ 618022.8, 181066.3 ], [ 618034.9, 181064.2 ], [ 618064.2, 181095.0 ], [ 618071.6, 181120.3 ], [ 618071.1, 181160.4 ], [ 618096.2, 181203.5 ], [ 618195.234, 181296.681 ], [ 618215.857, 181302.388 ], [ 618266.5, 181297.4 ], [ 618296.7, 181284.4 ], [ 618402.1, 181181.6 ], [ 618419.7, 181170.8 ], [ 618476.8, 181162.9 ], [ 618510.5, 181174.7 ], [ 618557.0, 181209.6 ], [ 618613.8, 181212.2 ], [ 618692.2, 181193.5 ], [ 618735.1, 181189.6 ], [ 618772.1, 181196.6 ], [ 618881.8, 181245.9 ], [ 618902.0, 181249.4 ], [ 618916.0, 181233.4 ], [ 618895.9, 181198.5 ], [ 618903.8, 181113.0 ], [ 618913.5, 181062.2 ], [ 618925.3, 181051.2 ], [ 618937.7, 181049.7 ], [ 619067.8, 181101.8 ], [ 619151.0, 181119.4 ], [ 619315.2, 181184.8 ], [ 619395.8, 181184.8 ], [ 619415.37, 181174.005 ], [ 619427.437, 181136.769 ], [ 619427.437, 181115.491 ], [ 619410.31, 181060.999 ], [ 619420.0, 181037.9 ], [ 619715.0, 181027.9 ], [ 619742.5, 181017.3 ], [ 619817.7, 180956.4 ], [ 619841.4, 180892.8 ], [ 620139.7, 180961.8 ], [ 620227.6, 180970.7 ], [ 620298.7, 180949.6 ], [ 620316.1, 180933.2 ], [ 620335.2, 180897.4 ], [ 620358.0, 180876.9 ], [ 620399.0, 180874.1 ], [ 620541.7, 180906.7 ], [ 620619.1, 180958.2 ], [ 620681.3, 180976.5 ], [ 620755.5, 180987.6 ], [ 620875.4, 181031.3 ], [ 621007.1, 181051.8 ], [ 621090.8, 181031.4 ], [ 621175.9, 181021.1 ], [ 621214.7, 181019.3 ], [ 621291.0, 181031.9 ], [ 621312.2, 181028.5 ], [ 621347.0, 181008.4 ], [ 621444.7, 180984.4 ], [ 621455.7, 180967.1 ], [ 621448.5, 180899.0 ], [ 621460.2, 180883.4 ], [ 621497.7, 180866.3 ], [ 621508.3, 180855.3 ], [ 621509.6, 180841.2 ], [ 621498.7, 180818.2 ], [ 621421.3, 180770.3 ], [ 621398.3, 180738.1 ], [ 621404.5, 180710.6 ], [ 621429.3, 180663.6 ], [ 621443.0, 180543.6 ], [ 621425.4, 180528.1 ], [ 621385.6, 180453.1 ], [ 621367.1, 180433.6 ], [ 621220.8, 180333.6 ], [ 621227.4, 180264.5 ], [ 621245.0, 180243.2 ], [ 621310.5, 180217.3 ], [ 621349.1, 180176.2 ], [ 621372.4, 180163.2 ], [ 621479.6, 180151.2 ], [ 621514.0, 180152.1 ], [ 621560.6, 180162.9 ], [ 621658.9, 180134.7 ], [ 621764.7, 180159.9 ], [ 621780.9, 180155.5 ], [ 621805.6, 180124.4 ], [ 621820.3, 180090.7 ], [ 621819.6, 180077.7 ], [ 621762.1, 180025.9 ], [ 621754.4, 180005.7 ], [ 621763.1, 179979.4 ], [ 621795.8, 179944.4 ], [ 621802.2, 179918.6 ], [ 621790.9, 179902.2 ], [ 621727.5, 179863.3 ], [ 621711.1, 179845.9 ], [ 621719.9, 179827.4 ], [ 621762.9, 179802.4 ], [ 621780.6, 179785.2 ], [ 621840.1, 179760.4 ], [ 621864.9, 179736.3 ], [ 621871.7, 179697.9 ], [ 621854.1, 179656.4 ], [ 621878.1, 179620.0 ], [ 621892.8, 179578.3 ], [ 621872.0, 179492.2 ], [ 621877.4, 179465.6 ], [ 621956.3, 179338.0 ], [ 622013.4, 179184.4 ], [ 622015.4, 179112.0 ], [ 622034.6, 179066.7 ], [ 622034.1, 179033.2 ], [ 622004.4, 178992.9 ], [ 622004.1, 178979.9 ], [ 622016.1, 178959.1 ], [ 622052.5, 178938.6 ], [ 622064.9, 178914.1 ], [ 622088.9, 178888.4 ], [ 622136.1, 178868.9 ], [ 622185.9, 178810.1 ], [ 622232.5, 178626.8 ], [ 622235.5, 178593.7 ], [ 622225.9, 178469.6 ], [ 622240.4, 178449.9 ], [ 622313.1, 178402.6 ], [ 622352.1, 178367.9 ], [ 622450.7, 178254.9 ], [ 622508.6, 178157.3 ], [ 622525.6, 178100.5 ], [ 622537.3, 178030.3 ], [ 622587.4, 177948.1 ], [ 622584.6, 177858.6 ], [ 622567.6, 177772.8 ], [ 622592.0, 177660.2 ], [ 622588.7, 177585.6 ], [ 622597.8, 177436.9 ], [ 622597.1, 177305.6 ], [ 622594.2, 177216.2 ], [ 622574.2, 177078.8 ], [ 622514.2, 176936.7 ], [ 622404.2, 176820.4 ], [ 622377.2, 176776.6 ], [ 622336.1, 176734.8 ], [ 622287.8, 176665.3 ], [ 622208.667, 176586.039 ], [ 622199.9, 176550.1 ], [ 622196.545, 176525.251 ], [ 622228.947, 176492.447 ], [ 622237.285, 176468.69 ], [ 622216.9, 176374.3 ], [ 622215.7, 176341.1 ], [ 622230.2, 176219.1 ], [ 622214.603, 176195.058 ], [ 622214.603, 176172.971 ], [ 622219.1, 176157.4 ], [ 622243.5, 176129.0 ], [ 622294.63, 176102.929 ], [ 622305.718, 176073.238 ], [ 622259.082, 175930.872 ], [ 622276.711, 175888.727 ], [ 622250.9, 175879.9 ], [ 622197.7, 175890.2 ], [ 622184.156, 175885.209 ], [ 622176.117, 175871.382 ], [ 622164.4, 175777.9 ], [ 622122.8, 175666.6 ], [ 622122.0, 175649.8 ], [ 622127.0, 175638.8 ], [ 622175.7, 175600.3 ], [ 622171.1, 175581.9 ], [ 622164.3, 175575.3 ], [ 622087.2, 175562.0 ], [ 621968.9, 175434.9 ], [ 621919.8, 175409.9 ], [ 621906.6, 175392.0 ], [ 621886.9, 175339.1 ], [ 621880.4, 175188.3 ], [ 621901.9, 174910.6 ], [ 621896.4, 174860.7 ], [ 621913.7, 174794.7 ], [ 621929.9, 174666.3 ], [ 621968.7, 174565.1 ], [ 622015.9, 174485.3 ], [ 621953.7, 174370.3 ], [ 621992.2, 174357.1 ], [ 622035.2, 174356.8 ], [ 622086.8, 174272.1 ], [ 622102.5, 174263.4 ], [ 622165.8, 174186.4 ], [ 622189.0, 174169.0 ], [ 622186.2, 174153.8 ], [ 622209.0, 174159.5 ], [ 622216.0, 174155.5 ], [ 622217.3, 174139.2 ], [ 622232.5, 174128.5 ], [ 622221.0, 174104.3 ], [ 622235.3, 174045.3 ], [ 622267.7, 174013.8 ], [ 622321.4, 173993.3 ], [ 622337.5, 173973.8 ], [ 622336.0, 173953.9 ], [ 622353.1, 173915.0 ], [ 622413.2, 173902.8 ], [ 622451.9, 173875.7 ], [ 622505.1, 173863.4 ], [ 622522.8, 173854.2 ], [ 622579.6, 173786.4 ], [ 622595.6, 173775.4 ], [ 622640.2, 173754.4 ], [ 622709.7, 173733.6 ], [ 622755.6, 173682.0 ], [ 622749.0, 173639.8 ], [ 622765.1, 173592.6 ], [ 622808.2, 173568.6 ], [ 622821.2, 173549.8 ], [ 622813.7, 173537.1 ], [ 622841.7, 173509.5 ], [ 622858.3, 173482.9 ], [ 622929.4, 173429.4 ], [ 622942.9, 173377.2 ], [ 622973.9, 173347.2 ], [ 622994.6, 173305.4 ], [ 623079.9, 173260.4 ], [ 623137.6, 173240.8 ], [ 623150.9, 173229.9 ], [ 623151.4, 173209.6 ], [ 623124.6, 173163.6 ], [ 623126.2, 173150.2 ], [ 623134.6, 173142.9 ], [ 623166.2, 173136.5 ], [ 623202.8, 173140.6 ], [ 623214.9, 173135.7 ], [ 623229.4, 173116.9 ], [ 623233.3, 173082.4 ], [ 623251.5, 173042.3 ], [ 623224.6, 172922.2 ], [ 623291.8, 172863.7 ], [ 623305.0, 172828.0 ], [ 623305.9, 172742.9 ], [ 623317.4, 172727.9 ], [ 623346.0, 172719.5 ], [ 623401.1, 172718.5 ], [ 623454.9, 172730.6 ], [ 623511.7, 172777.8 ], [ 623588.9, 172809.8 ], [ 623674.0, 172858.7 ], [ 623697.7, 172890.8 ], [ 623731.8, 172910.6 ], [ 623758.2, 172936.2 ], [ 623810.8, 172961.7 ], [ 623849.9, 172996.1 ], [ 623889.1, 173013.1 ], [ 623953.5, 173083.8 ], [ 624006.2, 173118.4 ], [ 624056.5, 173166.2 ], [ 624096.4, 173179.9 ], [ 624131.4, 173203.8 ], [ 624164.4, 173267.5 ], [ 624219.7, 173301.7 ], [ 624295.9, 173380.1 ], [ 624315.6, 173392.1 ], [ 624354.4, 173397.9 ], [ 624393.0, 173375.3 ], [ 624415.1, 173387.8 ], [ 624433.2, 173418.0 ], [ 624463.7, 173441.1 ], [ 624510.3, 173419.1 ], [ 624543.3, 173427.2 ], [ 624588.6, 173487.4 ], [ 624612.6, 173540.0 ], [ 624629.1, 173561.8 ], [ 624648.1, 173579.3 ], [ 624694.7, 173605.0 ], [ 624711.4, 173639.1 ], [ 624745.2, 173674.7 ], [ 624762.0, 173682.1 ], [ 624789.4, 173674.7 ], [ 624815.7, 173643.3 ], [ 624821.1, 173618.9 ], [ 624728.3, 173467.3 ], [ 624691.4, 173376.1 ], [ 624637.6, 173283.6 ], [ 624603.0, 173177.7 ], [ 624549.9, 173107.2 ], [ 624534.5, 173076.8 ], [ 624497.1, 172962.1 ], [ 624419.2, 172812.6 ], [ 624416.6, 172796.2 ], [ 624426.2, 172745.7 ], [ 624421.7, 172721.9 ], [ 624391.4, 172690.4 ], [ 624381.1, 172669.4 ], [ 624336.6, 172639.9 ], [ 624338.4, 172627.4 ], [ 624373.4, 172596.5 ], [ 624367.6, 172472.7 ], [ 624353.4, 172440.9 ], [ 624348.4, 172410.9 ], [ 624318.9, 172394.7 ], [ 624268.9, 172320.7 ], [ 624228.1, 172298.9 ], [ 624201.4, 172236.7 ], [ 624176.3, 172225.0 ], [ 624157.1, 172205.2 ], [ 624082.9, 172011.9 ], [ 624071.9, 171931.7 ], [ 624106.4, 171890.7 ], [ 623960.0, 171593.6 ], [ 623959.5, 171574.6 ], [ 624018.2, 171493.0 ], [ 624188.9, 171406.1 ], [ 624230.7, 171365.3 ], [ 624289.7, 171333.1 ], [ 624339.4, 171286.8 ], [ 624377.2, 171261.8 ], [ 624432.2, 171245.2 ], [ 624520.3, 171240.1 ], [ 624650.5, 171199.5 ], [ 624700.6, 171193.9 ], [ 624778.9, 171204.6 ], [ 624852.9, 171199.7 ], [ 624969.4, 171216.3 ], [ 625034.2, 171206.1 ], [ 625102.4, 171211.8 ], [ 625160.4, 171225.2 ], [ 625219.3, 171221.2 ], [ 625262.5, 171241.9 ], [ 625282.9, 171244.8 ], [ 625532.5, 171235.6 ], [ 625737.2, 171257.5 ], [ 625687.5, 171276.0 ], [ 625628.8, 171284.3 ], [ 625576.7, 171307.2 ], [ 625410.6, 171355.4 ], [ 625366.9, 171379.9 ], [ 625294.7, 171383.2 ], [ 625201.5, 171367.5 ], [ 625132.7, 171363.5 ], [ 625113.2, 171373.7 ], [ 624880.0, 171433.4 ], [ 624794.5, 171444.0 ], [ 624732.9, 171463.6 ], [ 624620.2, 171505.9 ], [ 624475.1, 171581.4 ], [ 624397.5, 171640.3 ], [ 624363.3, 171684.6 ], [ 624273.7, 171757.1 ], [ 624278.0, 171763.6 ], [ 624289.0, 171762.3 ], [ 624320.5, 171739.3 ], [ 624368.2, 171728.6 ], [ 624535.4, 171662.5 ], [ 624587.7, 171647.5 ], [ 624643.9, 171640.5 ], [ 624725.9, 171643.8 ], [ 624806.1, 171662.4 ], [ 624992.0, 171672.2 ], [ 625081.5, 171751.8 ], [ 625151.2, 171759.6 ], [ 625246.4, 171752.7 ], [ 625312.0, 171763.8 ], [ 625368.7, 171732.0 ], [ 625422.2, 171717.5 ], [ 625521.1, 171726.5 ], [ 625621.9, 171714.5 ], [ 625669.5, 171733.8 ], [ 625716.9, 171793.8 ], [ 625773.2, 171839.3 ], [ 625784.7, 171830.0 ], [ 625795.7, 171791.8 ], [ 625907.8, 171733.1 ], [ 626134.7, 171703.3 ], [ 626227.7, 171699.3 ], [ 626300.8, 171708.0 ], [ 626385.1, 171733.2 ], [ 626435.2, 171757.1 ], [ 626445.8, 171769.3 ], [ 626475.6, 171813.6 ], [ 626485.2, 171850.3 ], [ 626522.9, 171878.9 ], [ 626546.1, 171906.1 ], [ 626561.4, 171931.7 ], [ 626571.0, 171979.8 ], [ 626599.1, 172015.2 ], [ 626610.5, 172040.8 ], [ 626619.1, 172051.2 ], [ 626680.9, 172082.8 ], [ 626724.9, 172150.1 ], [ 626779.6, 172192.0 ], [ 626828.0, 172204.8 ], [ 626864.2, 172228.3 ], [ 626964.0, 172272.3 ], [ 626975.0, 172284.1 ], [ 626990.4, 172319.5 ], [ 626986.307, 172375.018 ], [ 627004.3, 172443.1 ], [ 627003.0, 172480.1 ], [ 627013.7, 172494.1 ], [ 627066.0, 172504.1 ], [ 627094.7, 172527.6 ], [ 627134.8, 172519.4 ], [ 627231.5, 172553.8 ], [ 627296.1, 172563.9 ], [ 627353.5, 172546.4 ], [ 627414.0, 172548.4 ], [ 627438.3, 172555.0 ], [ 627574.7, 172556.2 ], [ 627602.6, 172565.2 ], [ 627632.6, 172584.9 ], [ 627640.5, 172599.7 ], [ 627641.6, 172654.6 ], [ 627655.7, 172665.0 ], [ 627734.0, 172679.6 ], [ 627755.3, 172690.4 ], [ 627772.5, 172710.2 ], [ 627787.0, 172708.3 ], [ 627822.2, 172683.1 ], [ 627846.8, 172694.8 ], [ 627880.4, 172722.9 ], [ 627957.4, 172755.2 ], [ 628148.1, 172907.1 ], [ 628213.4, 172975.6 ], [ 628270.0, 173010.6 ], [ 628376.7, 173060.4 ], [ 628439.611, 173113.483 ], [ 628493.115, 173196.223 ], [ 628542.2, 173255.5 ], [ 628567.9, 173320.4 ], [ 628611.5, 173399.9 ], [ 628623.2, 173409.3 ], [ 628636.5, 173405.6 ], [ 628647.7, 173333.9 ], [ 628676.9, 173263.0 ], [ 628679.5, 173243.0 ], [ 628632.9, 172988.4 ], [ 628632.7, 172924.4 ], [ 628638.9, 172896.3 ], [ 628635.1, 172807.1 ], [ 628614.7, 172725.1 ], [ 628590.2, 172664.6 ], [ 628591.9, 172653.9 ], [ 628604.0, 172653.3 ], [ 628647.9, 172619.6 ], [ 628692.9, 172596.3 ], [ 628719.1, 172589.9 ], [ 628810.7, 172606.6 ], [ 628831.6, 172630.5 ], [ 628845.5, 172634.1 ], [ 628887.6, 172630.7 ], [ 628903.3, 172617.9 ], [ 628914.0, 172595.5 ], [ 628920.2, 172518.1 ], [ 628941.4, 172497.9 ], [ 628946.7, 172500.1 ], [ 628944.0, 172521.6 ], [ 628951.0, 172533.8 ], [ 628983.5, 172539.8 ], [ 629015.0, 172579.1 ], [ 629052.5, 172601.8 ], [ 629068.7, 172626.3 ], [ 629074.3, 172664.3 ], [ 629118.3, 172698.2 ], [ 629133.5, 172717.6 ], [ 629129.9, 172790.9 ], [ 629302.9, 172794.5 ], [ 629367.7, 172817.8 ], [ 629432.5, 172803.4 ], [ 629530.2, 172847.6 ], [ 629579.7, 172886.2 ], [ 629603.0, 172924.9 ], [ 629676.0, 172993.3 ], [ 629677.0, 173040.3 ], [ 629689.0, 173066.1 ], [ 629727.6, 173098.7 ], [ 629782.8, 173124.1 ], [ 629810.0, 173144.3 ], [ 629877.2, 173211.1 ], [ 629902.6, 173240.5 ], [ 629972.7, 173367.5 ], [ 629995.208, 173396.672 ], [ 630008.5, 173400.2 ], [ 630077.345, 173450.934 ], [ 630153.5, 173526.1 ], [ 630171.8, 173533.1 ], [ 630201.7, 173529.7 ], [ 630248.5, 173565.1 ], [ 630295.0, 173625.0 ], [ 630302.7, 173642.9 ], [ 630298.7, 173676.9 ], [ 630371.1, 173744.2 ], [ 630406.5, 173788.5 ], [ 630427.1, 173850.1 ], [ 630422.5, 173907.6 ], [ 630432.4, 173965.2 ], [ 630494.7, 174065.1 ], [ 630479.3, 174143.8 ], [ 630480.7, 174196.4 ], [ 630404.4, 174251.1 ], [ 630367.0, 174371.6 ], [ 630362.0, 174461.6 ], [ 630338.9, 174500.7 ], [ 630287.2, 174549.9 ], [ 630312.5, 174580.9 ], [ 630330.0, 174579.4 ], [ 630359.7, 174551.7 ], [ 630405.7, 174540.9 ], [ 630420.0, 174526.9 ], [ 630515.2, 174408.1 ], [ 630572.4, 174299.6 ], [ 630661.9, 174283.4 ], [ 630685.7, 174268.4 ], [ 630716.3, 174259.3 ], [ 630759.5, 174231.6 ], [ 630796.1, 174218.3 ], [ 630829.6, 174311.8 ], [ 630867.1, 174360.2 ], [ 630900.0, 174427.4 ], [ 630927.928, 174453.614 ], [ 630922.2, 174542.2 ], [ 630905.3, 174573.6 ], [ 630904.0, 174651.4 ], [ 630915.2, 174707.0 ], [ 630946.1, 174782.7 ], [ 630957.6, 174827.6 ], [ 630966.5, 174836.4 ], [ 631062.4, 174830.9 ], [ 631112.1, 174858.4 ], [ 631174.9, 174878.2 ], [ 631211.6, 174908.0 ], [ 631235.8, 174949.4 ], [ 631257.5, 174964.0 ], [ 631332.6, 174981.0 ], [ 631344.5, 174988.6 ], [ 631377.3, 175031.5 ], [ 631446.293, 175084.32 ], [ 631462.6, 175151.7 ], [ 631517.8, 175140.3 ], [ 631551.089, 175118.612 ], [ 631587.5, 175132.2 ], [ 631609.4, 175132.7 ], [ 631617.5, 175128.2 ], [ 631607.7, 175091.7 ], [ 631609.7, 175074.4 ], [ 631659.5, 175047.8 ], [ 631674.0, 175051.3 ], [ 631715.7, 175123.1 ], [ 631734.2, 175122.4 ], [ 631763.0, 175109.7 ], [ 631873.2, 175143.1 ], [ 631896.9, 175141.5 ], [ 631901.4, 175131.8 ], [ 631945.4, 175120.9 ], [ 631991.4, 175096.3 ], [ 632060.7, 175088.5 ], [ 632104.4, 175093.5 ], [ 632146.9, 175128.0 ], [ 632156.1, 175116.5 ], [ 632135.9, 175065.5 ], [ 632152.1, 175054.0 ], [ 632194.6, 175078.5 ], [ 632272.7, 175140.7 ], [ 632432.9, 175218.3 ], [ 632444.1, 175234.0 ], [ 632454.6, 175271.0 ], [ 632463.6, 175272.8 ], [ 632470.6, 175269.0 ], [ 632464.4, 175230.7 ], [ 632482.4, 175177.0 ], [ 632468.4, 175131.8 ], [ 632478.4, 175126.0 ], [ 632497.0, 175141.8 ], [ 632516.3, 175181.3 ], [ 632527.4, 175190.8 ], [ 632542.1, 175201.5 ], [ 632558.4, 175203.8 ], [ 632573.1, 175201.5 ], [ 632583.3, 175190.5 ], [ 632679.0, 175276.1 ], [ 632703.8, 175308.3 ], [ 632741.5, 175374.1 ], [ 632728.5, 175398.1 ], [ 632723.0, 175437.2 ], [ 632694.2, 175466.6 ], [ 632682.2, 175499.4 ], [ 632679.2, 175531.6 ], [ 632713.2, 175593.5 ], [ 632775.2, 175616.6 ], [ 632810.2, 175639.1 ], [ 632883.2, 175755.4 ], [ 632882.5, 175768.6 ], [ 632906.5, 175778.9 ], [ 632943.0, 175786.4 ], [ 632953.5, 175777.4 ], [ 632951.7, 175765.2 ], [ 632924.7, 175739.2 ], [ 632917.4, 175722.3 ], [ 632912.7, 175656.2 ], [ 632897.7, 175625.9 ], [ 632902.0, 175597.9 ], [ 632957.0, 175548.9 ], [ 632975.7, 175478.8 ], [ 632986.2, 175459.7 ], [ 633036.4, 175400.1 ], [ 633092.5, 175312.4 ], [ 633127.0, 175290.7 ], [ 633164.5, 175231.9 ], [ 633203.5, 175235.2 ], [ 633249.0, 175211.4 ], [ 633268.9, 175192.5 ], [ 633283.4, 175159.7 ], [ 633303.2, 175063.2 ], [ 633316.0, 175050.2 ], [ 633344.5, 175044.9 ], [ 633375.5, 175061.5 ], [ 633500.3, 175154.3 ], [ 633570.8, 175174.2 ], [ 633644.0, 175213.7 ], [ 633656.5, 175218.2 ], [ 633672.2, 175212.9 ], [ 633682.5, 175186.4 ], [ 633702.5, 175176.4 ], [ 633730.7, 175199.7 ], [ 633765.5, 175210.8 ], [ 633774.7, 175224.4 ], [ 633776.2, 175247.9 ], [ 633757.5, 175284.3 ], [ 633760.5, 175300.8 ], [ 633799.8, 175316.3 ], [ 633832.9, 175357.6 ], [ 633948.3, 175379.2 ], [ 633964.3, 175389.5 ], [ 633983.1, 175417.6 ], [ 634046.1, 175445.6 ], [ 634051.9, 175470.1 ], [ 634025.8, 175546.9 ], [ 634033.5, 175571.2 ], [ 634062.3, 175602.8 ], [ 634106.1, 175625.5 ], [ 634193.4, 175691.1 ], [ 634272.0, 175687.7 ], [ 634282.0, 175692.2 ], [ 634299.2, 175721.2 ], [ 634312.2, 175722.7 ], [ 634325.7, 175698.9 ], [ 634329.2, 175648.2 ], [ 634345.7, 175639.5 ], [ 634366.9, 175664.2 ], [ 634381.2, 175706.8 ], [ 634407.2, 175727.7 ], [ 634422.5, 175779.7 ], [ 634431.2, 175781.9 ], [ 634466.6, 175764.0 ], [ 634487.1, 175767.6 ], [ 634529.9, 175804.9 ], [ 634602.7, 175787.0 ], [ 634609.0, 175795.3 ], [ 634600.9, 175808.6 ], [ 634568.0, 175836.7 ], [ 634572.7, 175849.4 ], [ 634671.0, 175846.2 ], [ 634806.3, 175859.0 ], [ 634837.2, 175838.1 ], [ 634852.7, 175838.2 ], [ 634861.2, 175854.4 ], [ 634860.1, 175920.7 ], [ 634870.4, 175956.4 ], [ 634910.2, 175996.9 ], [ 634928.3, 176059.9 ], [ 634963.4, 176106.3 ], [ 634991.0, 176108.9 ], [ 635031.2, 176090.4 ], [ 635085.4, 176097.2 ], [ 635118.4, 176085.7 ], [ 635133.7, 176089.4 ], [ 635132.0, 176104.4 ], [ 635108.9, 176118.6 ], [ 635102.2, 176167.9 ], [ 635090.0, 176185.2 ], [ 635095.0, 176240.7 ], [ 635088.7, 176271.4 ], [ 635103.5, 176274.2 ], [ 635131.0, 176254.7 ], [ 635150.5, 176252.2 ], [ 635190.4, 176276.4 ], [ 635293.5, 176314.7 ], [ 635319.0, 176307.9 ], [ 635333.7, 176315.4 ], [ 635333.5, 176349.4 ], [ 635371.5, 176383.2 ], [ 635450.3, 176495.2 ], [ 635454.3, 176515.1 ], [ 635441.6, 176565.1 ], [ 635441.6, 176599.2 ], [ 635448.8, 176624.8 ], [ 635482.2, 176652.4 ], [ 635507.8, 176691.3 ], [ 635593.9, 176770.2 ], [ 635622.6, 176819.5 ], [ 635647.5, 176917.8 ], [ 635670.3, 176948.0 ], [ 635674.8, 176967.0 ], [ 635668.7, 177025.4 ], [ 635654.2, 177057.4 ], [ 635671.7, 177149.3 ], [ 635688.2, 177154.7 ], [ 635715.2, 177130.7 ], [ 635752.0, 177120.7 ], [ 635774.2, 177102.1 ], [ 635787.4, 177079.9 ], [ 635805.0, 177076.4 ], [ 635829.6, 177103.5 ], [ 635839.6, 177127.6 ], [ 635831.0, 177190.5 ], [ 635835.1, 177217.2 ], [ 635866.4, 177266.9 ], [ 635911.7, 177319.8 ], [ 635923.5, 177348.9 ], [ 635924.0, 177368.7 ], [ 635894.0, 177489.8 ], [ 635873.3, 177513.1 ], [ 635826.7, 177532.9 ], [ 635814.2, 177548.9 ], [ 635816.2, 177599.5 ], [ 635831.8, 177686.5 ], [ 635854.2, 177750.7 ], [ 635854.5, 177765.2 ], [ 635837.1, 177805.0 ], [ 635680.6, 177851.4 ], [ 635635.9, 177844.2 ], [ 635563.7, 177816.1 ], [ 635511.2, 177811.5 ], [ 635423.8, 177823.1 ], [ 635337.4, 177850.8 ], [ 635314.2, 177852.5 ], [ 635303.2, 177864.0 ], [ 635311.6, 177911.2 ], [ 635298.5, 177936.0 ], [ 635139.3, 178016.4 ], [ 635079.3, 178040.4 ], [ 635056.5, 178067.5 ], [ 635044.1, 178114.0 ], [ 635060.7, 178220.0 ], [ 635043.9, 178247.9 ], [ 635019.8, 178260.0 ], [ 634988.2, 178265.2 ], [ 634934.3, 178263.0 ], [ 634898.7, 178253.8 ], [ 634870.4, 178263.7 ], [ 634859.2, 178279.2 ], [ 634854.4, 178304.4 ], [ 634947.4, 178407.6 ], [ 634953.8, 178431.2 ], [ 634935.5, 178447.2 ], [ 634902.7, 178456.2 ], [ 634749.4, 178468.0 ], [ 634708.3, 178497.9 ], [ 634695.9, 178522.4 ], [ 634693.0, 178560.0 ], [ 634707.1, 178592.6 ], [ 634754.4, 178652.5 ], [ 634782.7, 178740.5 ], [ 634759.2, 178759.5 ], [ 634700.5, 178784.9 ], [ 634695.7, 178798.0 ], [ 634702.2, 178811.0 ], [ 634796.1, 178896.7 ], [ 634819.6, 178903.0 ], [ 634914.7, 178904.9 ], [ 634947.9, 178920.7 ], [ 634979.7, 178975.7 ], [ 634999.0, 178996.2 ], [ 635110.2, 179042.6 ], [ 635165.9, 179073.3 ], [ 635261.0, 179127.0 ], [ 635346.7, 179191.5 ], [ 635400.5, 179179.5 ], [ 635595.9, 179178.6 ], [ 635627.2, 179169.7 ], [ 635718.8, 179117.4 ], [ 635760.6, 179113.1 ], [ 635784.6, 179118.6 ], [ 635871.6, 179173.0 ], [ 635905.1, 179221.8 ], [ 635937.1, 179285.5 ], [ 635966.9, 179308.8 ], [ 636002.1, 179318.8 ], [ 636105.2, 179317.0 ], [ 636146.1, 179324.1 ], [ 636169.9, 179335.0 ], [ 636219.2, 179378.6 ], [ 636293.6, 179483.3 ], [ 636334.9, 179506.5 ], [ 636463.4, 179556.0 ], [ 636464.1, 179565.8 ], [ 636454.1, 179578.5 ], [ 636382.4, 179629.2 ], [ 636361.1, 179657.1 ], [ 636351.1, 179717.9 ], [ 636325.1, 179767.8 ], [ 636323.7, 179791.0 ], [ 636334.8, 179836.3 ], [ 636321.8, 179871.6 ], [ 636304.3, 179880.4 ], [ 636237.6, 179879.5 ], [ 636231.3, 179894.5 ], [ 636251.9, 179912.8 ], [ 636326.3, 179955.4 ], [ 636394.2, 179982.7 ], [ 636488.3, 180032.0 ], [ 636500.8, 180040.4 ], [ 636505.6, 180061.9 ], [ 636498.1, 180069.3 ], [ 636467.6, 180073.8 ], [ 636336.3, 180072.4 ], [ 636256.4, 180091.0 ], [ 636176.7, 180082.7 ], [ 636122.1, 180067.3 ], [ 636110.6, 180076.1 ], [ 636114.6, 180089.6 ], [ 636178.1, 180135.7 ], [ 636284.8, 180246.9 ], [ 636352.9, 180276.1 ], [ 636377.2, 180293.3 ], [ 636385.0, 180316.7 ], [ 636369.3, 180367.4 ], [ 636377.9, 180383.3 ], [ 636506.1, 180428.0 ], [ 636525.7, 180468.8 ], [ 636551.4, 180487.1 ], [ 636621.9, 180512.6 ], [ 636662.6, 180513.7 ], [ 636706.9, 180528.8 ], [ 636786.1, 180569.4 ], [ 636802.346, 180601.078 ], [ 636826.9, 180599.0 ], [ 636864.4, 180612.3 ], [ 637010.5, 180688.8 ], [ 637119.1, 180726.4 ], [ 637267.1, 180803.3 ], [ 637372.1, 180877.1 ], [ 637489.4, 180974.6 ], [ 637570.0, 181073.5 ], [ 637636.6, 181178.2 ], [ 637723.2, 181281.9 ], [ 637767.1, 181347.0 ], [ 637864.3, 181432.0 ], [ 637923.7, 181521.6 ], [ 637927.0, 181541.8 ], [ 637914.6, 181572.1 ], [ 637915.6, 181585.3 ], [ 637922.3, 181594.6 ], [ 637946.8, 181603.5 ], [ 637988.8, 181648.1 ], [ 638091.1, 181674.2 ], [ 638360.9, 181851.2 ], [ 638449.1, 181923.5 ], [ 638523.6, 181938.2 ], [ 638584.2, 181966.7 ], [ 638669.3, 182029.2 ], [ 638712.2, 182039.0 ], [ 638759.1, 182073.8 ], [ 638887.5, 182142.7 ], [ 639011.2, 182232.0 ], [ 639056.7, 182239.4 ], [ 639082.6, 182256.7 ], [ 639194.2, 182446.2 ], [ 639176.6, 182537.2 ], [ 639178.4, 182618.3 ], [ 639191.4, 182691.8 ], [ 639209.2, 182706.0 ], [ 639261.4, 182721.0 ], [ 639277.5, 182731.6 ], [ 639285.4, 182749.6 ], [ 639286.1, 182797.0 ], [ 639268.0, 182895.2 ], [ 639282.7, 182873.0 ], [ 639294.5, 182868.2 ], [ 639335.2, 182897.0 ], [ 639366.5, 182900.0 ], [ 639384.4, 182872.0 ], [ 639383.4, 182848.1 ], [ 639399.7, 182756.5 ], [ 639395.2, 182742.7 ], [ 639372.6, 182719.6 ], [ 639338.5, 182645.2 ], [ 639357.2, 182646.5 ], [ 639414.2, 182679.9 ], [ 639484.3, 182697.5 ], [ 639513.9, 182718.2 ], [ 639527.9, 182743.8 ], [ 639608.9, 182987.2 ], [ 639629.0, 183008.9 ], [ 639671.6, 183027.5 ], [ 639705.4, 183058.3 ], [ 639734.9, 183074.8 ], [ 639735.5, 183089.1 ], [ 639724.3, 183107.3 ], [ 639641.9, 183095.8 ], [ 639534.5, 183070.1 ], [ 639517.6, 183079.9 ], [ 639501.4, 183103.4 ], [ 639499.7, 183142.5 ], [ 639460.9, 183162.3 ], [ 639435.4, 183190.7 ], [ 639424.0, 183225.6 ], [ 639425.4, 183275.3 ], [ 639438.6, 183324.5 ], [ 639428.7, 183368.0 ], [ 639463.7, 183447.8 ], [ 639471.9, 183464.3 ], [ 639519.0, 183507.7 ], [ 639552.4, 183550.0 ], [ 639595.6, 183583.2 ], [ 639745.6, 183645.4 ], [ 639835.9, 183670.5 ], [ 639872.9, 183674.9 ], [ 639968.2, 183714.7 ], [ 640006.9, 183720.7 ], [ 640037.9, 183733.0 ], [ 640091.7, 183731.8 ], [ 640118.2, 183739.9 ], [ 640141.4, 183710.0 ], [ 640180.2, 183694.8 ], [ 640341.5, 183690.2 ], [ 640398.8, 183662.2 ], [ 640431.1, 183632.3 ], [ 640493.8, 183662.6 ], [ 640558.4, 183684.4 ], [ 640619.4, 183726.2 ], [ 640669.2, 183738.3 ], [ 640692.5, 183757.1 ], [ 640716.6, 183809.4 ], [ 640753.9, 183849.7 ], [ 640809.6, 183882.7 ], [ 640804.9, 183895.2 ], [ 640792.1, 183896.7 ], [ 640753.1, 183880.2 ], [ 640697.5, 183875.3 ], [ 640595.4, 183849.8 ], [ 640541.1, 183845.9 ], [ 640502.6, 183827.9 ], [ 640482.8, 183828.6 ], [ 640479.9, 183845.2 ], [ 640545.6, 183875.8 ], [ 640616.1, 183898.9 ], [ 640742.4, 184008.7 ], [ 640763.9, 184032.1 ], [ 640763.4, 184072.1 ], [ 640780.8, 184095.9 ], [ 640793.4, 184137.9 ], [ 640852.8, 184191.7 ], [ 640873.7, 184228.1 ], [ 640959.9, 184286.9 ], [ 641001.9, 184335.9 ], [ 641060.1, 184376.2 ], [ 641087.0, 184408.6 ], [ 641362.1, 184522.1 ], [ 641387.1, 184540.9 ], [ 641409.1, 184573.2 ], [ 641450.6, 184560.4 ], [ 641471.9, 184562.7 ], [ 641727.7, 184660.7 ], [ 641920.4, 184807.4 ], [ 641987.1, 184822.7 ], [ 642038.1, 184875.6 ], [ 642116.8, 184925.3 ], [ 642198.9, 184995.3 ], [ 642280.7, 185037.5 ], [ 642347.8, 185134.4 ], [ 642399.8, 185197.5 ], [ 642464.8, 185246.3 ], [ 642476.4, 185247.3 ], [ 642502.5, 185225.8 ], [ 642516.5, 185221.6 ], [ 642532.7, 185229.1 ], [ 642591.1, 185295.3 ], [ 642613.026, 185331.933 ], [ 642597.9, 185273.8 ], [ 642571.6, 185242.8 ], [ 642579.7, 185209.5 ], [ 642580.5, 185163.2 ], [ 642566.9, 185025.2 ], [ 642547.3, 184941.6 ], [ 642509.1, 184873.6 ], [ 642524.0, 184856.7 ], [ 642539.9, 184858.9 ], [ 642589.3, 184880.7 ], [ 642698.7, 184912.7 ], [ 642729.9, 184936.2 ], [ 642774.1, 184985.6 ], [ 642817.9, 184977.6 ], [ 642873.5, 184723.6 ], [ 642877.2, 184672.0 ], [ 642889.5, 184667.4 ], [ 642948.8, 184666.1 ], [ 642968.0, 184684.3 ], [ 643003.3, 184739.8 ], [ 643032.6, 184765.6 ], [ 643087.4, 184787.0 ], [ 643129.6, 184841.5 ], [ 643175.1, 184870.5 ], [ 643244.5, 184935.7 ], [ 643290.1, 184970.3 ], [ 643399.4, 185032.5 ], [ 643446.8, 185034.6 ], [ 643466.0, 185027.6 ], [ 643478.7, 184999.4 ], [ 643477.9, 184972.4 ], [ 643490.2, 184963.9 ], [ 643499.9, 184964.1 ], [ 643569.9, 185028.6 ], [ 643599.2, 185030.9 ], [ 643619.5, 185017.1 ], [ 643665.5, 184957.6 ], [ 643711.849, 184923.851 ], [ 643719.2, 184838.3 ], [ 643740.1, 184773.9 ], [ 643737.6, 184728.5 ], [ 643711.1, 184664.0 ], [ 643705.0, 184632.5 ], [ 643669.4, 184587.4 ], [ 643661.9, 184523.7 ], [ 643587.8, 184425.3 ], [ 643575.9, 184400.2 ], [ 643571.5, 184354.8 ], [ 643616.0, 184288.3 ], [ 643675.2, 184287.7 ], [ 643687.2, 184279.9 ], [ 643672.7, 184162.2 ], [ 643672.5, 184073.5 ], [ 643676.4, 184046.0 ], [ 643701.2, 183996.0 ], [ 643768.1, 183620.4 ], [ 643776.7, 183560.7 ], [ 643774.1, 183513.1 ], [ 643841.7, 183387.2 ], [ 643832.1, 183340.5 ], [ 643834.4, 183320.1 ], [ 643861.9, 183269.1 ], [ 643864.3, 183183.2 ], [ 643843.5, 183114.4 ], [ 643859.2, 183093.7 ], [ 643912.7, 183074.3 ], [ 643944.7, 183052.5 ], [ 644021.4, 183029.0 ], [ 644028.4, 183016.0 ], [ 644022.7, 182947.0 ], [ 644035.2, 182941.0 ], [ 644071.7, 182973.3 ], [ 644053.1, 182926.0 ], [ 644056.8, 182901.7 ], [ 644078.4, 182869.5 ], [ 644098.4, 182855.3 ], [ 644110.7, 182861.0 ], [ 644115.9, 182887.0 ], [ 644142.8, 182926.6 ], [ 644197.9, 182934.3 ], [ 644304.7, 183000.8 ], [ 644324.7, 182997.0 ], [ 644371.2, 182966.7 ], [ 644455.2, 182952.8 ], [ 644509.2, 183028.6 ], [ 644830.8, 183268.4 ], [ 644902.4, 183278.8 ], [ 644929.2, 183290.0 ], [ 645089.3, 183322.0 ], [ 645139.2, 183353.4 ], [ 645173.1, 183384.8 ], [ 645498.9, 183601.0 ], [ 645507.5, 183601.7 ], [ 645566.0, 183564.9 ], [ 645579.9, 183562.9 ], [ 645585.3, 183572.5 ], [ 645576.2, 183641.2 ], [ 645579.978, 183653.995 ], [ 645663.0, 183773.3 ], [ 645654.0, 183985.7 ], [ 645665.5, 184009.8 ], [ 645747.6, 184087.8 ], [ 645757.4, 184104.9 ], [ 645763.6, 184149.4 ], [ 645773.8, 184144.0 ], [ 645813.9, 184092.2 ], [ 645852.2, 184068.4 ], [ 645915.0, 184045.5 ], [ 645934.2, 184054.0 ], [ 645957.7, 184095.0 ], [ 645973.0, 184109.4 ], [ 646073.2, 184154.5 ], [ 646104.2, 184160.2 ], [ 646148.5, 184154.4 ], [ 646256.0, 184154.2 ], [ 646265.5, 184143.7 ], [ 646276.0, 184106.5 ], [ 646297.5, 184093.5 ], [ 646315.7, 184098.7 ], [ 646316.0, 184116.5 ], [ 646297.5, 184147.2 ], [ 646300.3, 184240.8 ], [ 646279.7, 184273.0 ], [ 646265.0, 184279.7 ], [ 646237.2, 184279.9 ], [ 646182.2, 184366.0 ], [ 646194.8, 184439.6 ], [ 646188.8, 184456.1 ], [ 646152.7, 184497.6 ], [ 646192.0, 184491.7 ], [ 646264.2, 184507.0 ], [ 646297.0, 184491.2 ], [ 646311.7, 184492.5 ], [ 646346.1, 184512.9 ], [ 646349.7, 184549.2 ], [ 646360.0, 184557.2 ], [ 646382.4, 184540.5 ], [ 646405.2, 184499.7 ], [ 646437.5, 184483.5 ], [ 646453.5, 184462.7 ], [ 646469.7, 184460.5 ], [ 646507.5, 184475.7 ], [ 646505.0, 184494.2 ], [ 646474.2, 184491.2 ], [ 646461.0, 184515.9 ], [ 646454.5, 184545.9 ], [ 646448.7, 184691.7 ], [ 646434.5, 184733.7 ], [ 646435.1, 184751.9 ] ], [ [ 559360.931183, 143054.964848 ], [ 559364.091, 143080.214 ], [ 559354.373, 143097.944 ], [ 559405.0, 143124.9 ], [ 559365.5, 143179.0 ], [ 559313.2, 143286.9 ], [ 559287.5, 143325.9 ], [ 559304.5, 143340.7 ], [ 559331.0, 143328.3 ], [ 559346.6, 143297.1 ], [ 559368.6, 143272.9 ], [ 559460.7, 143234.2 ], [ 559478.6, 143219.2 ], [ 559526.2, 143161.3 ], [ 559533.5, 143107.7 ], [ 559550.6, 143076.6 ], [ 559630.6, 143013.6 ], [ 559741.6, 142871.0 ], [ 559762.8, 142864.3 ], [ 559770.4, 142870.3 ], [ 559769.0, 142944.4 ], [ 559742.6, 143007.4 ], [ 559712.5, 143110.4 ], [ 559720.8, 143137.9 ], [ 559753.3, 143174.4 ], [ 559753.6, 143184.9 ], [ 559734.8, 143208.4 ], [ 559733.6, 143228.9 ], [ 559788.19, 143302.246 ], [ 559795.537, 143322.711 ], [ 559795.1, 143351.2 ], [ 559749.0, 143415.8 ], [ 559725.1, 143482.0 ], [ 559648.3, 143591.5 ], [ 559625.9, 143613.2 ], [ 559525.6, 143681.1 ], [ 559521.8, 143700.8 ], [ 559601.9, 143667.0 ], [ 559663.6, 143667.7 ], [ 559685.5, 143661.4 ], [ 559708.2, 143650.7 ], [ 559761.1, 143597.9 ], [ 559777.4, 143591.3 ], [ 559823.8, 143589.6 ], [ 559841.2, 143579.5 ], [ 559895.7, 143503.8 ], [ 559928.6, 143488.0 ], [ 560043.6, 143462.7 ], [ 560171.6, 143342.0 ], [ 560268.5, 143120.0 ], [ 560302.793, 143088.091 ], [ 560379.471, 143111.946 ], [ 560441.192, 143151.828 ], [ 560490.6, 143139.5 ], [ 560512.4, 143141.2 ], [ 560558.4, 143156.5 ], [ 560574.8, 143168.5 ], [ 560597.5, 143200.0 ], [ 560600.7, 143230.1 ], [ 560663.4, 143349.4 ], [ 560679.8, 143402.0 ], [ 560734.5, 143500.1 ], [ 560771.3, 143533.9 ], [ 560791.2, 143542.7 ], [ 560854.9, 143539.9 ], [ 560880.0, 143545.5 ], [ 560927.9, 143583.4 ], [ 561003.2, 143615.2 ], [ 561056.3, 143578.0 ], [ 561118.5, 143599.5 ], [ 561186.4, 143636.5 ], [ 561213.0, 143690.2 ], [ 561256.7, 143727.8 ], [ 561287.4, 143697.3 ], [ 561303.2, 143694.8 ], [ 561378.4, 143710.8 ], [ 561421.9, 143704.0 ], [ 561423.9, 143692.5 ], [ 561399.0, 143656.6 ], [ 561371.7, 143588.2 ], [ 561387.9, 143473.5 ], [ 561385.9, 143398.2 ], [ 561412.4, 143362.5 ], [ 561404.9, 143324.7 ], [ 561382.5, 143312.8 ], [ 561210.5, 143323.0 ], [ 561172.5, 143315.9 ], [ 561162.7, 143302.8 ], [ 561170.3, 143275.0 ], [ 561166.1, 143260.5 ], [ 561119.0, 143226.1 ], [ 561084.6, 143217.2 ], [ 561072.6, 143206.7 ], [ 561046.7, 143160.8 ], [ 561029.0, 143070.9 ], [ 561052.3, 143015.3 ], [ 561046.5, 142995.0 ], [ 561029.5, 142989.2 ], [ 561005.7, 142994.6 ], [ 560953.5, 142991.3 ], [ 560932.8, 142982.2 ], [ 560872.8, 142938.5 ], [ 560863.2, 142904.0 ], [ 560837.8, 142872.2 ], [ 560794.3, 142866.0 ], [ 560756.5, 142832.7 ], [ 560708.8, 142818.7 ], [ 560592.6, 142656.1 ], [ 560559.3, 142629.0 ], [ 560548.8, 142592.3 ], [ 560563.7, 142514.1 ], [ 560550.7, 142468.4 ], [ 560607.2, 142456.0 ], [ 560620.7, 142461.7 ], [ 560632.2, 142476.7 ], [ 560682.5, 142546.7 ], [ 560703.2, 142598.0 ], [ 560712.1, 142601.4 ], [ 560717.0, 142585.2 ], [ 560698.4, 142505.6 ], [ 560700.8, 142456.9 ], [ 560713.9, 142425.3 ], [ 560807.3, 142326.7 ], [ 560824.1, 142318.4 ], [ 560828.2, 142328.5 ], [ 560794.2, 142374.0 ], [ 560787.2, 142399.2 ], [ 560790.7, 142442.4 ], [ 560875.5, 142554.1 ], [ 560913.4, 142610.5 ], [ 560925.5, 142646.8 ], [ 560939.0, 142656.2 ], [ 560944.7, 142650.5 ], [ 560942.5, 142633.7 ], [ 560911.4, 142488.2 ], [ 560915.3, 142472.0 ], [ 560996.1, 142357.1 ], [ 561079.4, 142271.6 ], [ 561183.3, 142145.1 ], [ 561196.1, 142146.3 ], [ 561198.1, 142155.6 ], [ 561158.2, 142261.3 ], [ 561161.5, 142276.5 ], [ 561174.0, 142272.5 ], [ 561345.5, 142106.6 ], [ 561356.8, 142105.3 ], [ 561360.7, 142118.7 ], [ 561332.3, 142145.0 ], [ 561309.6, 142180.3 ], [ 561253.5, 142287.0 ], [ 561230.7, 142365.2 ], [ 561221.5, 142377.0 ], [ 561156.7, 142416.5 ], [ 561128.5, 142445.5 ], [ 561132.2, 142455.7 ], [ 561144.7, 142455.2 ], [ 561175.7, 142425.2 ], [ 561259.0, 142408.0 ], [ 561295.7, 142383.5 ], [ 561326.5, 142300.7 ], [ 561345.6, 142274.9 ], [ 561428.5, 142210.7 ], [ 561431.0, 142229.7 ], [ 561392.0, 142279.9 ], [ 561357.555, 142366.548 ], [ 561370.031, 142429.187 ], [ 561336.066, 142455.313 ], [ 561324.145, 142479.3 ], [ 561331.6, 142538.2 ], [ 561387.3, 142626.1 ], [ 561395.9, 142630.2 ], [ 561403.7, 142616.7 ], [ 561374.8, 142544.3 ], [ 561379.0, 142519.1 ], [ 561392.2, 142497.5 ], [ 561412.5, 142480.6 ], [ 561432.8, 142476.9 ], [ 561525.1, 142488.5 ], [ 561536.9, 142515.4 ], [ 561525.4, 142599.7 ], [ 561536.0, 142614.7 ], [ 561562.4, 142611.9 ], [ 561576.7, 142584.2 ], [ 561590.2, 142575.6 ], [ 561610.7, 142610.5 ], [ 561621.8, 142611.9 ], [ 561621.9, 142628.9 ], [ 561702.1, 142647.7 ], [ 561819.5, 142659.7 ], [ 561898.4, 142685.4 ], [ 561944.8, 142690.7 ], [ 561996.4, 142713.2 ], [ 562128.1, 142734.0 ], [ 562164.6, 142755.7 ], [ 562199.3, 142789.1 ], [ 562241.7, 142868.7 ], [ 562253.4, 142870.5 ], [ 562263.7, 142883.8 ], [ 562278.6, 142890.1 ], [ 562338.2, 142896.4 ], [ 562398.9, 142914.0 ], [ 562462.9, 142900.1 ], [ 562477.9, 142905.4 ], [ 562515.9, 142943.3 ], [ 562595.0, 142919.7 ], [ 562641.9, 142927.9 ], [ 562681.9, 142914.4 ], [ 562722.0, 142930.5 ], [ 562757.8, 142930.1 ], [ 562787.0, 142943.4 ], [ 562803.6, 142972.1 ], [ 562852.8, 142981.4 ], [ 562868.2, 143024.1 ], [ 562918.2, 143102.4 ], [ 562920.2, 143127.3 ], [ 562938.3, 143145.7 ], [ 562942.6, 143162.4 ], [ 562933.5, 143172.5 ], [ 562898.7, 143182.7 ], [ 562882.2, 143201.4 ], [ 562841.4, 143206.7 ], [ 562742.1, 143282.7 ], [ 562719.4, 143375.3 ], [ 562700.3, 143417.9 ], [ 562690.4, 143485.7 ], [ 562618.7, 143642.9 ], [ 562619.0, 143671.3 ], [ 562626.2, 143686.7 ], [ 562663.3, 143713.9 ], [ 562752.5, 143726.3 ], [ 562805.2, 143737.6 ], [ 562812.7, 143744.3 ], [ 562841.2, 143852.5 ], [ 562857.0, 143887.1 ], [ 562913.1, 143962.5 ], [ 562939.7, 143977.0 ], [ 563002.2, 143968.0 ], [ 563056.9, 143982.1 ], [ 563076.6, 143977.4 ], [ 563104.5, 143964.0 ], [ 563170.7, 143911.8 ], [ 563196.3, 143898.5 ], [ 563266.2, 143897.4 ], [ 563340.0, 143881.2 ], [ 563418.0, 143876.3 ], [ 563466.2, 143892.6 ], [ 563482.2, 143889.0 ], [ 563501.7, 143875.7 ], [ 563544.8, 143806.7 ], [ 563561.2, 143793.9 ], [ 563584.2, 143790.3 ], [ 563599.6, 143812.8 ], [ 563608.6, 143857.2 ], [ 563603.3, 143939.6 ], [ 563669.8, 143974.1 ], [ 563683.2, 144011.4 ], [ 563690.7, 144094.6 ], [ 563716.1, 144124.8 ], [ 563695.2, 144181.0 ], [ 563689.7, 144265.2 ], [ 563695.1, 144331.8 ], [ 563724.2, 144363.5 ], [ 563749.3, 144374.6 ], [ 563769.8, 144369.6 ], [ 563795.2, 144349.5 ], [ 563812.3, 144344.0 ], [ 563844.5, 144351.2 ], [ 563866.9, 144366.1 ], [ 563881.8, 144386.0 ], [ 563876.6, 144422.1 ], [ 563882.2, 144444.9 ], [ 563909.4, 144463.1 ], [ 563948.3, 144506.5 ], [ 563936.6, 144582.5 ], [ 563906.7, 144648.0 ], [ 563895.4, 144694.9 ], [ 563908.4, 144720.0 ], [ 563953.3, 144721.8 ], [ 563963.6, 144735.5 ], [ 563933.6, 144853.9 ], [ 563934.0, 144871.7 ], [ 563942.7, 144889.0 ], [ 563991.0, 144921.3 ], [ 564019.6, 144953.0 ], [ 564055.1, 145019.3 ], [ 564063.3, 145027.3 ], [ 564095.8, 145032.5 ], [ 564114.8, 145050.1 ], [ 564122.9, 145118.0 ], [ 564107.8, 145149.8 ], [ 564142.8, 145189.7 ], [ 564144.5, 145203.4 ], [ 564140.1, 145238.8 ], [ 564117.3, 145263.6 ], [ 564121.8, 145276.6 ], [ 564129.7, 145279.9 ], [ 564154.8, 145249.5 ], [ 564173.1, 145212.6 ], [ 564173.1, 145191.8 ], [ 564158.8, 145155.6 ], [ 564178.1, 145120.8 ], [ 564178.8, 145069.9 ], [ 564195.3, 145063.4 ], [ 564200.8, 145052.8 ], [ 564198.5, 145029.3 ], [ 564173.6, 145008.9 ], [ 564133.6, 144907.8 ], [ 564081.2, 144833.1 ], [ 564103.2, 144754.4 ], [ 564125.3, 144731.7 ], [ 564130.1, 144700.4 ], [ 564158.3, 144658.9 ], [ 564155.8, 144642.0 ], [ 564128.6, 144626.9 ], [ 564126.3, 144619.9 ], [ 564152.6, 144553.1 ], [ 564163.1, 144557.1 ], [ 564150.8, 144609.6 ], [ 564156.1, 144616.9 ], [ 564200.3, 144620.7 ], [ 564215.6, 144643.1 ], [ 564192.7, 144803.0 ], [ 564208.9, 144824.3 ], [ 564288.0, 144879.1 ], [ 564326.6, 144923.9 ], [ 564358.1, 144941.6 ], [ 564383.5, 144971.9 ], [ 564397.5, 144999.9 ], [ 564403.3, 145020.0 ], [ 564394.3, 145041.6 ], [ 564403.9, 145071.5 ], [ 564394.2, 145117.0 ], [ 564412.8, 145173.5 ], [ 564437.7, 145195.8 ], [ 564440.3, 145222.8 ], [ 564450.9, 145243.7 ], [ 564436.9, 145266.3 ], [ 564422.9, 145323.8 ], [ 564437.2, 145343.5 ], [ 564427.9, 145414.5 ], [ 564436.8, 145433.4 ], [ 564424.8, 145467.5 ], [ 564438.5, 145490.6 ], [ 564425.4, 145526.8 ], [ 564424.7, 145573.3 ], [ 564431.4, 145598.9 ], [ 564423.3, 145640.4 ], [ 564401.5, 145659.1 ], [ 564383.6, 145686.9 ], [ 564383.1, 145699.0 ], [ 564354.8, 145749.4 ], [ 564318.349, 145932.965 ], [ 564313.7, 146051.1 ], [ 564274.2, 146197.3 ], [ 564276.5, 146221.8 ], [ 564253.8, 146259.4 ], [ 564275.5, 146370.9 ], [ 564265.6, 146384.5 ], [ 564231.8, 146389.8 ], [ 564223.8, 146407.8 ], [ 564226.3, 146433.0 ], [ 564205.4, 146447.4 ], [ 564197.9, 146461.4 ], [ 564196.0, 146546.3 ], [ 564211.2, 146584.6 ], [ 564224.2, 146663.8 ], [ 564221.5, 146687.9 ], [ 564182.3, 146718.7 ], [ 564152.5, 146754.4 ], [ 564160.4, 146799.2 ], [ 564152.5, 146827.4 ], [ 564118.9, 146879.0 ], [ 564089.1, 146904.4 ], [ 564077.0, 146910.3 ], [ 564044.3, 146893.6 ], [ 564035.7, 146895.5 ], [ 563964.9, 146941.9 ], [ 563941.6, 146947.1 ], [ 563906.2, 146931.9 ], [ 563888.4, 146911.0 ], [ 563861.7, 146857.9 ], [ 563845.9, 146843.9 ], [ 563810.8, 146870.1 ], [ 563797.9, 146896.2 ], [ 563812.4, 146927.6 ], [ 563865.1, 146982.6 ], [ 563871.0, 147014.5 ], [ 563817.1, 147215.2 ], [ 563800.3, 147307.1 ], [ 563798.955, 147350.904 ], [ 563792.8, 147359.6 ], [ 563816.1, 147367.8 ], [ 563863.8, 147339.8 ], [ 563887.3, 147360.8 ], [ 563911.041, 147423.063 ], [ 563952.391, 147482.26 ], [ 563970.8, 147489.3 ], [ 564022.3, 147585.5 ], [ 564025.1, 147642.172 ], [ 564039.7, 147668.0 ], [ 564047.7, 147711.4 ], [ 564038.0, 147735.4 ], [ 564059.0, 147753.1 ], [ 564068.6, 147778.2 ], [ 564061.6, 147794.8 ], [ 563985.3, 147812.0 ], [ 563952.6, 147804.9 ], [ 563926.1, 147786.9 ], [ 563920.1, 147804.4 ], [ 563928.0, 147860.9 ], [ 563938.7, 147886.9 ], [ 563957.8, 147916.5 ], [ 563998.2, 147953.0 ], [ 564045.7, 148091.3 ], [ 564027.8, 148246.3 ], [ 564039.9, 148347.9 ], [ 564010.5, 148402.0 ], [ 564012.5, 148436.6 ], [ 563999.9, 148511.4 ], [ 563976.2, 148603.5 ], [ 563983.7, 148636.3 ], [ 563981.7, 148797.3 ], [ 563997.7, 148807.0 ], [ 564011.2, 148805.8 ], [ 564039.0, 148734.6 ], [ 564075.7, 148682.4 ], [ 564118.0, 148705.4 ], [ 564169.0, 148698.9 ], [ 564203.2, 148762.6 ], [ 564188.7, 148833.9 ], [ 564129.2, 148888.5 ], [ 564117.2, 148940.6 ], [ 564103.7, 148949.3 ], [ 564029.0, 148947.9 ], [ 563923.4, 149008.8 ], [ 563902.2, 149036.5 ], [ 563935.1, 149029.9 ], [ 563971.8, 148997.2 ], [ 564001.3, 149000.2 ], [ 564019.1, 149017.9 ], [ 564024.6, 149051.4 ], [ 564017.1, 149080.9 ], [ 563986.6, 149115.7 ], [ 563990.3, 149131.5 ], [ 564019.8, 149157.2 ], [ 564124.4, 149196.0 ], [ 564129.8, 149220.7 ], [ 564110.6, 149250.2 ], [ 564035.1, 149310.4 ], [ 563964.8, 149342.2 ], [ 563854.1, 149424.9 ], [ 563760.3, 149536.7 ], [ 563755.3, 149596.5 ], [ 563740.2, 149614.6 ], [ 563671.5, 149680.0 ], [ 563643.3, 149693.8 ], [ 563613.4, 149720.6 ], [ 563451.9, 149874.0 ], [ 563254.2, 149986.5 ], [ 563231.3, 149988.0 ], [ 563184.9, 150004.5 ], [ 563129.6, 150071.8 ], [ 563115.6, 150118.1 ], [ 563104.1, 150118.8 ], [ 563066.1, 150099.9 ], [ 563033.8, 150103.2 ], [ 562971.9, 150125.3 ], [ 562932.0, 150176.5 ], [ 562879.2, 150279.8 ], [ 562860.0, 150290.3 ], [ 562830.4, 150338.3 ], [ 562806.0, 150348.4 ], [ 562811.2, 150411.7 ], [ 562807.8, 150450.3 ], [ 562822.5, 150488.7 ], [ 562825.7, 150529.8 ], [ 562779.6, 150582.6 ], [ 562776.9, 150621.2 ], [ 562745.4, 150684.2 ], [ 562727.4, 150696.5 ], [ 562675.8, 150776.1 ], [ 562656.7, 150778.6 ], [ 562578.1, 150754.9 ], [ 562557.1, 150771.4 ], [ 562517.6, 150874.0 ], [ 562472.6, 150923.2 ], [ 562459.8, 150946.0 ], [ 562479.6, 151080.7 ], [ 562493.1, 151117.7 ], [ 562536.2, 151176.6 ], [ 562554.4, 151220.4 ], [ 562558.7, 151281.9 ], [ 562544.1, 151354.7 ], [ 562559.519, 151389.62 ], [ 562700.775, 151510.989 ], [ 562791.459, 151554.461 ], [ 562795.201, 151587.242 ], [ 562778.8, 151799.1 ], [ 562760.994, 151835.777 ], [ 562709.683, 151877.11 ], [ 562676.723, 151916.484 ], [ 562633.0, 151952.4 ], [ 562615.3, 151991.5 ], [ 562582.7, 152026.3 ], [ 562553.0, 152084.3 ], [ 562549.338, 152105.334 ], [ 562557.932, 152138.554 ], [ 562550.187, 152179.599 ], [ 562499.849, 152250.072 ], [ 562344.962, 152421.222 ], [ 562320.449, 152460.878 ], [ 562441.0, 152418.6 ], [ 562612.1, 152334.8 ], [ 562638.7, 152314.8 ], [ 562702.8, 152241.5 ], [ 562823.8, 152171.3 ], [ 562918.6, 152130.6 ], [ 562979.2, 152094.5 ], [ 562994.7, 152090.3 ], [ 563055.0, 152104.0 ], [ 563083.9, 152094.0 ], [ 563108.0, 152070.6 ], [ 563123.8, 152064.0 ], [ 563202.4, 152061.8 ], [ 563295.2, 152047.1 ], [ 563407.7, 152055.9 ], [ 563426.1, 152047.5 ], [ 563455.3, 152008.0 ], [ 563502.1, 152005.7 ], [ 563507.7, 151996.9 ], [ 563557.2, 151982.6 ], [ 563605.7, 151990.9 ], [ 563672.9, 151976.9 ], [ 563736.7, 151997.7 ], [ 563834.7, 151981.9 ], [ 563875.4, 151999.9 ], [ 563902.7, 151998.4 ], [ 563920.3, 151988.7 ], [ 563938.2, 151958.1 ], [ 563930.5, 151877.5 ], [ 564019.4, 151799.6 ], [ 564035.9, 151801.1 ], [ 564143.2, 151897.1 ], [ 564158.4, 151894.9 ], [ 564220.2, 151831.1 ], [ 564233.7, 151829.1 ], [ 564259.1, 151843.5 ], [ 564344.6, 151927.5 ], [ 564360.1, 151934.4 ], [ 564388.1, 151921.6 ], [ 564437.1, 151843.1 ], [ 564479.0, 151818.0 ], [ 564513.5, 151809.9 ], [ 564542.6, 151809.7 ], [ 564644.6, 151844.4 ], [ 564686.8, 151844.9 ], [ 564703.1, 151841.9 ], [ 564731.8, 151813.1 ], [ 564764.2, 151816.1 ], [ 564798.5, 151828.6 ], [ 564865.5, 151801.4 ], [ 564897.5, 151801.4 ], [ 564972.8, 151815.9 ], [ 565087.2, 151792.6 ], [ 565159.7, 151810.9 ], [ 565185.7, 151810.9 ], [ 565256.2, 151794.6 ], [ 565328.8, 151797.9 ], [ 565382.7, 151774.1 ], [ 565420.0, 151772.5 ], [ 565476.5, 151755.9 ], [ 565517.7, 151723.7 ], [ 565561.7, 151673.3 ], [ 565633.4, 151552.8 ], [ 565658.2, 151482.2 ], [ 565668.5, 151368.6 ], [ 565660.0, 151361.8 ], [ 565632.5, 151373.3 ], [ 565606.0, 151373.1 ], [ 565571.5, 151342.3 ], [ 565517.9, 151310.8 ], [ 565479.7, 151271.6 ], [ 565439.7, 151260.6 ], [ 565393.7, 151261.8 ], [ 565327.5, 151288.6 ], [ 565276.0, 151349.8 ], [ 565236.5, 151350.1 ], [ 565227.2, 151340.3 ], [ 565228.2, 151324.6 ], [ 565271.5, 151269.7 ], [ 565403.6, 151177.9 ], [ 565433.5, 151167.1 ], [ 565519.5, 151172.6 ], [ 565544.4, 151158.4 ], [ 565548.5, 151136.1 ], [ 565464.2, 150980.8 ], [ 565469.7, 150960.8 ], [ 565481.7, 150961.3 ], [ 565514.7, 150981.8 ], [ 565550.2, 150973.4 ], [ 565610.8, 150980.7 ], [ 565661.0, 151012.9 ], [ 565756.2, 151051.6 ], [ 565851.5, 151113.2 ], [ 565904.0, 151202.3 ], [ 565912.7, 151254.6 ], [ 565921.4, 151270.6 ], [ 565966.5, 151283.6 ], [ 565998.5, 151301.5 ], [ 566119.6, 151400.6 ], [ 566124.3, 151423.3 ], [ 566143.8, 151461.3 ], [ 566140.3, 151501.6 ], [ 566146.7, 151559.6 ], [ 566124.2, 151640.4 ], [ 566093.2, 151672.1 ], [ 566094.7, 151686.1 ], [ 566133.0, 151722.6 ], [ 566134.2, 151732.4 ], [ 566089.7, 151899.9 ], [ 566262.9, 152035.2 ], [ 566303.4, 152098.5 ], [ 566312.5, 152148.7 ], [ 566272.4, 152202.8 ], [ 566217.4, 152207.8 ], [ 566186.7, 152201.7 ], [ 566155.1, 152184.8 ], [ 566129.1, 152185.0 ], [ 566068.7, 152207.7 ], [ 566037.2, 152231.4 ], [ 566026.7, 152247.9 ], [ 566026.7, 152265.4 ], [ 566079.7, 152380.3 ], [ 566110.5, 152509.9 ], [ 566108.7, 152556.5 ], [ 566094.7, 152586.0 ], [ 566057.5, 152631.0 ], [ 566037.7, 152711.2 ], [ 566043.0, 152765.9 ], [ 566071.4, 152888.3 ], [ 566110.7, 152968.2 ], [ 566108.9, 152987.4 ], [ 566125.3, 153048.6 ], [ 566116.3, 153065.4 ], [ 566103.4, 153068.5 ], [ 566078.1, 153059.1 ], [ 566015.2, 153062.7 ], [ 565919.1, 153088.7 ], [ 565849.3, 153097.1 ], [ 565682.8, 153167.1 ], [ 565657.5, 153191.9 ], [ 565615.2, 153192.9 ], [ 565543.479, 153218.688 ], [ 565512.6, 153208.7 ], [ 565504.5, 153224.0 ], [ 565518.9, 153262.8 ], [ 565492.3, 153377.4 ], [ 565492.1, 153425.7 ], [ 565483.6, 153436.9 ], [ 565503.3, 153555.3 ], [ 565498.9, 153733.9 ], [ 565531.6, 153883.7 ], [ 565527.8, 153932.3 ], [ 565535.4, 153962.4 ], [ 565517.4, 154046.9 ], [ 565537.1, 154100.0 ], [ 565540.6, 154159.7 ], [ 565536.1, 154165.2 ], [ 565527.1, 154161.5 ], [ 565505.3, 154111.7 ], [ 565497.1, 154118.2 ], [ 565490.2, 154165.8 ], [ 565498.8, 154186.0 ], [ 565547.8, 154206.8 ], [ 565571.1, 154271.5 ], [ 565568.0, 154287.6 ], [ 565632.7, 154345.8 ], [ 565674.4, 154436.2 ], [ 565675.7, 154491.4 ], [ 565683.4, 154507.3 ], [ 565714.7, 154523.3 ], [ 565756.2, 154519.5 ], [ 565742.7, 154593.3 ], [ 565784.5, 154604.4 ], [ 565807.2, 154617.3 ], [ 565830.7, 154603.8 ], [ 565884.2, 154639.5 ], [ 565902.6, 154677.4 ], [ 565969.4, 154712.4 ], [ 566005.8, 154764.5 ], [ 566041.5, 154883.1 ], [ 566086.1, 154866.9 ], [ 566098.8, 154872.7 ], [ 566147.2, 154903.1 ], [ 566271.9, 155019.9 ], [ 566314.8, 155149.7 ], [ 566437.8, 155346.5 ], [ 566483.5, 155461.5 ], [ 566511.6, 155559.3 ], [ 566503.1, 155592.5 ], [ 566516.2, 155622.0 ], [ 566523.0, 155661.3 ], [ 566524.4, 155698.8 ], [ 566499.6, 155742.0 ], [ 566500.9, 155762.0 ], [ 566520.9, 155776.5 ], [ 566559.1, 155754.5 ], [ 566568.9, 155783.8 ], [ 566586.2, 155807.3 ], [ 566594.2, 155844.5 ], [ 566612.4, 155855.3 ], [ 566662.7, 155862.9 ], [ 566688.8, 155880.4 ], [ 566699.2, 155896.4 ], [ 566741.5, 155921.3 ], [ 566751.7, 155940.6 ], [ 566804.1, 155961.4 ], [ 566837.4, 155983.1 ], [ 566969.263, 156015.759 ], [ 567006.083, 156019.441 ], [ 567039.956, 155998.086 ], [ 567102.1, 155996.2 ], [ 567137.5, 156023.0 ], [ 567246.8, 156073.8 ], [ 567312.7, 156096.3 ], [ 567345.5, 156077.8 ], [ 567379.2, 156043.8 ], [ 567420.2, 156020.5 ], [ 567452.5, 156024.3 ], [ 567467.6, 156010.3 ], [ 567551.6, 156007.8 ], [ 567632.6, 156034.4 ], [ 567734.4, 156053.6 ], [ 567799.3, 156080.6 ], [ 567828.8, 156108.9 ], [ 567897.4, 156148.8 ], [ 567900.9, 156213.2 ], [ 567940.8, 156337.2 ], [ 567940.9, 156391.3 ], [ 567962.4, 156525.1 ], [ 568020.2, 156691.5 ], [ 568052.5, 156720.1 ], [ 568102.8, 156784.4 ], [ 568097.2, 156831.5 ], [ 568050.8, 156938.8 ], [ 568053.7, 157033.7 ], [ 568063.4, 157099.4 ], [ 568090.2, 157190.3 ], [ 568135.1, 157267.1 ], [ 568152.6, 157360.2 ], [ 568183.4, 157472.8 ], [ 568217.6, 157507.1 ], [ 568226.9, 157525.5 ], [ 568207.2, 157557.9 ], [ 568192.8, 157637.7 ], [ 568174.7, 157750.9 ], [ 568172.8, 157854.2 ], [ 568195.6, 157930.6 ], [ 568199.1, 157976.9 ], [ 568256.9, 158022.2 ], [ 568235.929, 158081.34 ], [ 568257.4, 158078.2 ], [ 568303.3, 158095.1 ], [ 568366.7, 158099.6 ], [ 568385.8, 158078.9 ], [ 568396.1, 158040.8 ], [ 568414.3, 158012.5 ], [ 568490.0, 157945.5 ], [ 568538.9, 157937.6 ], [ 568594.4, 157900.2 ], [ 568591.3, 157865.5 ], [ 568565.4, 157841.2 ], [ 568570.6, 157813.9 ], [ 568553.8, 157739.3 ], [ 568578.7, 157670.4 ], [ 568572.5, 157627.5 ], [ 568605.3, 157552.5 ], [ 568687.8, 157544.0 ], [ 568744.8, 157592.3 ], [ 568759.1, 157595.2 ], [ 568791.9, 157580.9 ], [ 568833.9, 157626.2 ], [ 568890.7, 157634.4 ], [ 568919.1, 157666.6 ], [ 569000.5, 157677.5 ], [ 569096.9, 157671.3 ], [ 569236.2, 157629.7 ], [ 569368.0, 157637.5 ], [ 569409.0, 157647.0 ], [ 569421.3, 157641.1 ], [ 569419.4, 157628.3 ], [ 569388.7, 157582.2 ], [ 569369.8, 157533.4 ], [ 569337.9, 157410.1 ], [ 569296.2, 157157.6 ], [ 569214.8, 157014.4 ], [ 569207.1, 156977.4 ], [ 569215.0, 156791.7 ], [ 569239.3, 156765.9 ], [ 569303.7, 156733.1 ], [ 569355.1, 156655.5 ], [ 569375.0, 156589.7 ], [ 569390.3, 156470.7 ], [ 569404.5, 156454.7 ], [ 569415.8, 156452.2 ], [ 569443.0, 156467.0 ], [ 569469.0, 156505.2 ], [ 569505.3, 156598.0 ], [ 569498.2, 156637.7 ], [ 569543.4, 156702.2 ], [ 569588.3, 156720.8 ], [ 569680.9, 156714.7 ], [ 569751.6, 156722.0 ], [ 569739.1, 156824.7 ], [ 569746.762, 156860.981 ], [ 569767.1, 156884.7 ], [ 569802.6, 156870.5 ], [ 569832.1, 156871.5 ], [ 569863.9, 156899.5 ], [ 569890.6, 156941.5 ], [ 569928.4, 157042.5 ], [ 569972.1, 157032.2 ], [ 570037.4, 157034.1 ], [ 570081.3, 157024.3 ], [ 570107.4, 157045.9 ], [ 570109.0, 157099.1 ], [ 570125.5, 157143.3 ], [ 570141.9, 157218.6 ], [ 570157.0, 157250.4 ], [ 570287.7, 157249.5 ], [ 570381.1, 157239.6 ], [ 570409.1, 157223.1 ], [ 570498.5, 157237.8 ], [ 570545.0, 157212.6 ], [ 570591.8, 157213.0 ], [ 570602.5, 157206.2 ], [ 570625.5, 157163.5 ], [ 570636.5, 157161.7 ], [ 570644.4, 157167.5 ], [ 570640.8, 157214.3 ], [ 570642.0, 157243.5 ], [ 570646.7, 157246.8 ], [ 570657.5, 157241.1 ], [ 570697.1, 157192.0 ], [ 570725.5, 157141.0 ], [ 570746.2, 157127.2 ], [ 570760.2, 157102.3 ], [ 570767.5, 157069.6 ], [ 570761.3, 157015.7 ], [ 570750.1, 156984.2 ], [ 570757.6, 156972.1 ], [ 570765.9, 156972.5 ], [ 570780.0, 156999.1 ], [ 570818.1, 157189.9 ], [ 570829.4, 157210.6 ], [ 570860.1, 157237.1 ], [ 570857.0, 157255.7 ], [ 570826.9, 157275.2 ], [ 570820.9, 157297.7 ], [ 570827.2, 157315.5 ], [ 570858.3, 157356.0 ], [ 570864.2, 157398.7 ], [ 570871.8, 157413.1 ], [ 570900.8, 157445.4 ], [ 570906.3, 157511.9 ], [ 570933.7, 157552.9 ], [ 570942.9, 157584.4 ], [ 570946.7, 157614.9 ], [ 570939.9, 157687.0 ], [ 570897.1, 157720.5 ], [ 570881.6, 157741.8 ], [ 570881.6, 157754.1 ], [ 570889.2, 157755.3 ], [ 570920.3, 157735.4 ], [ 570955.0, 157757.1 ], [ 570972.0, 157756.9 ], [ 570986.6, 157750.3 ], [ 571016.8, 157715.3 ], [ 571068.4, 157710.9 ], [ 571108.6, 157724.5 ], [ 571133.7, 157716.3 ], [ 571149.7, 157644.9 ], [ 571133.7, 157613.5 ], [ 571141.3, 157600.2 ], [ 571157.3, 157613.6 ], [ 571164.9, 157632.7 ], [ 571183.3, 157730.9 ], [ 571256.4, 157796.9 ], [ 571277.5, 157807.7 ], [ 571277.4, 157792.5 ], [ 571256.6, 157763.4 ], [ 571256.2, 157722.0 ], [ 571263.9, 157698.6 ], [ 571273.3, 157690.8 ], [ 571309.7, 157681.5 ], [ 571295.7, 157648.3 ], [ 571304.4, 157641.7 ], [ 571359.9, 157696.3 ], [ 571368.2, 157732.8 ], [ 571401.2, 157772.5 ], [ 571483.1, 157843.7 ], [ 571641.5, 157939.2 ], [ 571649.6, 157953.7 ], [ 571644.3, 157994.9 ], [ 571650.8, 158000.8 ], [ 571692.742, 157963.639 ], [ 571757.4, 157975.1 ], [ 571778.9, 157991.6 ], [ 571776.9, 158007.0 ], [ 571713.9, 158087.3 ], [ 571706.3, 158101.0 ], [ 571708.2, 158121.3 ], [ 571702.1, 158136.2 ], [ 571654.182, 158214.249 ], [ 571675.2, 158255.3 ], [ 571702.1, 158278.4 ], [ 571742.1, 158304.1 ], [ 571783.1, 158317.2 ], [ 571869.3, 158294.4 ], [ 571930.6, 158296.9 ], [ 571967.7, 158275.3 ], [ 572012.7, 158286.6 ], [ 572055.6, 158282.3 ], [ 572114.2, 158325.2 ], [ 572135.8, 158329.8 ], [ 572183.3, 158326.8 ], [ 572236.1, 158358.2 ], [ 572331.8, 158400.3 ], [ 572393.4, 158437.5 ], [ 572449.1, 158499.1 ], [ 572416.1, 158543.3 ], [ 572417.6, 158587.0 ], [ 572407.6, 158608.8 ], [ 572170.4, 158714.5 ], [ 572101.9, 158794.5 ], [ 572025.3, 158827.9 ], [ 571920.8, 158926.0 ], [ 571920.5, 158966.1 ], [ 571848.7, 159118.2 ], [ 571830.7, 159192.2 ], [ 571824.5, 159324.1 ], [ 571848.5, 159404.8 ], [ 571851.1, 159434.4 ], [ 572067.2, 159846.2 ], [ 572096.2, 159945.7 ], [ 572131.2, 160000.7 ], [ 572163.7, 160070.9 ], [ 572185.5, 160107.7 ], [ 572206.2, 160126.7 ], [ 572224.7, 160132.9 ], [ 572260.7, 160222.3 ], [ 572297.7, 160279.5 ], [ 572372.0, 160356.8 ], [ 572525.3, 160448.4 ], [ 572587.0, 160513.6 ], [ 572632.1, 160586.9 ], [ 572723.0, 160614.0 ], [ 572841.7, 160700.8 ], [ 572864.0, 160707.8 ], [ 572883.7, 160705.5 ], [ 572913.2, 160689.0 ], [ 573007.2, 160613.4 ], [ 573035.9, 160599.5 ], [ 573026.8, 160578.5 ], [ 573066.3, 160584.5 ], [ 573065.8, 160596.7 ], [ 573478.1, 160953.7 ], [ 573549.09, 161008.631 ], [ 573697.0, 161048.4 ], [ 573687.7, 161090.6 ], [ 573780.345, 161145.4 ], [ 573771.7, 161167.9 ], [ 573765.9, 161257.5 ], [ 573731.248, 161281.356 ], [ 573672.2, 161295.2 ], [ 573653.0, 161312.4 ], [ 573622.0, 161391.4 ], [ 573578.4, 161365.0 ], [ 573492.028, 161288.337 ], [ 573467.4, 161314.3 ], [ 573449.1, 161356.1 ], [ 573430.4, 161374.6 ], [ 573405.9, 161384.9 ], [ 573420.9, 161409.6 ], [ 573495.3, 161475.7 ], [ 573490.7, 161522.0 ], [ 573500.5, 161618.9 ], [ 573511.9, 161670.3 ], [ 573581.5, 161766.9 ], [ 573650.6, 161816.3 ], [ 573650.9, 161826.3 ], [ 573612.9, 161904.6 ], [ 573611.648, 161960.347 ], [ 573588.1, 161966.2 ], [ 573527.4, 162022.0 ], [ 573468.0, 162180.1 ], [ 573467.5, 162199.1 ], [ 573480.4, 162236.9 ], [ 573547.3, 162323.8 ], [ 573578.5, 162341.1 ], [ 573582.9, 162363.3 ], [ 573608.5, 162406.1 ], [ 573623.5, 162456.8 ], [ 573623.0, 162476.1 ], [ 573598.8, 162557.1 ], [ 573600.3, 162573.8 ], [ 573625.0, 162598.3 ], [ 573641.3, 162602.3 ], [ 573697.4, 162598.0 ], [ 573780.2, 162527.0 ], [ 573885.9, 162423.8 ], [ 573970.7, 162368.3 ], [ 574061.8, 162325.9 ], [ 574198.8, 162078.8 ], [ 574243.4, 162073.5 ], [ 574396.4, 162027.2 ], [ 574489.8, 161968.0 ], [ 574566.9, 162076.7 ], [ 574610.1, 162099.0 ], [ 574635.2, 162103.0 ], [ 574631.2, 162121.5 ], [ 574598.576, 162157.908 ], [ 574662.3, 162136.7 ], [ 574674.4, 162152.0 ], [ 574736.9, 162158.7 ], [ 574744.0, 162151.7 ], [ 574793.798, 162155.1 ], [ 574803.6, 162177.0 ], [ 574796.6, 162214.0 ], [ 574824.6, 162284.7 ], [ 574837.1, 162306.7 ], [ 574875.6, 162336.5 ], [ 574890.6, 162397.7 ], [ 574892.7, 162544.0 ], [ 574873.7, 162575.5 ], [ 574877.0, 162611.2 ], [ 574884.0, 162641.6 ], [ 574933.7, 162685.0 ], [ 574937.2, 162696.0 ], [ 574933.2, 162772.0 ], [ 574955.7, 162837.2 ], [ 574953.7, 162872.2 ], [ 575000.8, 162902.7 ], [ 574991.7, 162977.5 ], [ 575037.2, 163290.9 ], [ 575061.5, 163281.7 ], [ 575080.7, 163221.9 ], [ 575064.5, 163143.9 ], [ 575066.0, 163121.2 ], [ 575078.7, 163110.2 ], [ 575109.2, 163105.9 ], [ 575122.0, 163095.4 ], [ 575137.4, 163037.5 ], [ 575162.7, 163002.9 ], [ 575195.0, 162978.7 ], [ 575215.7, 162913.7 ], [ 575251.5, 162865.2 ], [ 575262.0, 162804.2 ], [ 575261.5, 162667.4 ], [ 575278.5, 162643.4 ], [ 575287.2, 162609.2 ], [ 575316.7, 162567.2 ], [ 575315.5, 162455.7 ], [ 575289.0, 162411.1 ], [ 575291.5, 162398.1 ], [ 575354.0, 162299.1 ], [ 575392.0, 162280.1 ], [ 575423.7, 162276.6 ], [ 575558.2, 162314.6 ], [ 575630.4, 162325.5 ], [ 575663.5, 162340.6 ], [ 575738.7, 162401.4 ], [ 575771.4, 162444.9 ], [ 575905.4, 162483.4 ], [ 576128.2, 162519.5 ], [ 576226.2, 162585.6 ], [ 576265.0, 162624.8 ], [ 576381.7, 162720.8 ], [ 576453.8, 162808.6 ], [ 576495.5, 162817.2 ], [ 576548.7, 162810.9 ], [ 576577.5, 162818.9 ], [ 576621.0, 162839.7 ], [ 576685.7, 162892.9 ], [ 576712.0, 162939.4 ], [ 576750.5, 162961.4 ], [ 576771.7, 162992.0 ], [ 576764.2, 163014.2 ], [ 576716.0, 163051.5 ], [ 576699.2, 163056.0 ], [ 576704.5, 163077.7 ], [ 576750.2, 163066.2 ], [ 576781.0, 163067.0 ], [ 576818.7, 163088.7 ], [ 576833.5, 163088.7 ], [ 576882.7, 163062.5 ], [ 576936.2, 163053.5 ], [ 576986.5, 163059.5 ], [ 577074.8, 163098.4 ], [ 577131.7, 163097.4 ], [ 577156.6, 163078.7 ], [ 577179.7, 163079.4 ], [ 577185.1, 163062.0 ], [ 577240.477, 163039.487 ], [ 577229.2, 163017.6 ], [ 577118.0, 162958.6 ], [ 577089.2, 162960.1 ], [ 577053.7, 162992.6 ], [ 577035.7, 162995.4 ], [ 576961.2, 162964.4 ], [ 576910.5, 162963.6 ], [ 576899.2, 162954.6 ], [ 576898.7, 162936.9 ], [ 577010.4, 162946.8 ], [ 577047.9, 162931.8 ], [ 577114.8, 162891.4 ], [ 577135.2, 162887.8 ], [ 577219.4, 162902.0 ], [ 577438.4, 163018.0 ], [ 577469.4, 163047.0 ], [ 577494.0, 163086.6 ], [ 577524.9, 163118.9 ], [ 577589.4, 163164.5 ], [ 577656.5, 163180.7 ], [ 577681.7, 163210.5 ], [ 577698.5, 163257.9 ], [ 577726.8, 163288.0 ], [ 577804.4, 163353.0 ], [ 577968.5, 163465.894 ], [ 577968.899, 163485.567 ], [ 577979.5, 163493.1 ], [ 578012.5, 163509.1 ], [ 578053.7, 163515.9 ], [ 578093.5, 163532.4 ], [ 578121.5, 163563.1 ], [ 578127.2, 163584.9 ], [ 578168.0, 163583.6 ], [ 578229.5, 163559.6 ], [ 578303.5, 163576.9 ], [ 578390.7, 163612.4 ], [ 578428.2, 163605.4 ], [ 578450.205, 163594.49 ], [ 578446.3, 163652.1 ], [ 578454.2, 163671.4 ], [ 578522.5, 163718.0 ], [ 578524.1, 163727.1 ], [ 578498.8, 163783.0 ], [ 578513.2, 163799.2 ], [ 578554.597, 163809.15 ], [ 578636.4, 163808.9 ], [ 578674.6, 163826.2 ], [ 578753.1, 163883.4 ], [ 578772.6, 163886.7 ], [ 578800.1, 163864.9 ], [ 578832.6, 163822.7 ], [ 578864.9, 163753.2 ], [ 578882.6, 163729.2 ], [ 578908.1, 163711.7 ], [ 578967.3, 163697.9 ], [ 579018.6, 163813.9 ], [ 579065.8, 163887.2 ], [ 579128.5, 164034.0 ], [ 579155.6, 164081.6 ], [ 579198.3, 164136.8 ], [ 579196.1, 164186.3 ], [ 579270.1, 164179.8 ], [ 579322.8, 164194.4 ], [ 579384.6, 164276.3 ], [ 579449.7, 164345.2 ], [ 579506.9, 164447.6 ], [ 579532.5, 164482.0 ], [ 579594.7, 164544.0 ], [ 579750.4, 164662.7 ], [ 579773.303, 164706.039 ], [ 579824.6, 164708.6 ], [ 579853.9, 164725.3 ], [ 580007.6, 164883.3 ], [ 580109.1, 164961.3 ], [ 580203.9, 165058.8 ], [ 580296.8, 165134.1 ], [ 580305.7, 165173.3 ], [ 580376.1, 165252.4 ], [ 580393.7, 165291.0 ], [ 580413.5, 165295.2 ], [ 580422.2, 165314.2 ], [ 580497.9, 165379.4 ], [ 580585.7, 165415.5 ], [ 580642.8, 165475.1 ], [ 580656.7, 165479.9 ], [ 580684.8, 165504.4 ], [ 580829.9, 165578.8 ], [ 580910.6, 165650.8 ], [ 580944.6, 165696.3 ], [ 581030.9, 165754.6 ], [ 581080.1, 165813.3 ], [ 581109.9, 165902.8 ], [ 581153.8, 165999.4 ], [ 581130.3, 165995.0 ], [ 581174.7, 166046.3 ], [ 581384.8, 166124.9 ], [ 581405.2, 166196.6 ], [ 581395.9, 166238.6 ], [ 581380.2, 166249.3 ], [ 581320.4, 166243.3 ], [ 581297.7, 166254.3 ], [ 581306.4, 166276.1 ], [ 581344.9, 166307.1 ], [ 581357.2, 166326.3 ], [ 581356.4, 166342.8 ], [ 581346.9, 166358.8 ], [ 581304.6, 166396.3 ], [ 581242.8, 166429.3 ], [ 581179.4, 166445.5 ], [ 581151.3, 166403.1 ], [ 581105.8, 166430.8 ], [ 581050.8, 166447.3 ], [ 581003.6, 166519.3 ], [ 580968.8, 166604.6 ], [ 580961.6, 166608.6 ], [ 580934.7, 166599.9 ], [ 580958.1, 166635.9 ], [ 581000.7, 166648.8 ], [ 581020.4, 166664.4 ], [ 581040.0, 166693.1 ], [ 581056.7, 166757.3 ], [ 581075.2, 166788.3 ], [ 581231.5, 166859.6 ], [ 581280.5, 166900.1 ], [ 581348.7, 166977.3 ], [ 581489.0, 166988.6 ], [ 581565.0, 166980.1 ], [ 581626.7, 166991.8 ], [ 581643.7, 167007.3 ], [ 581657.0, 167047.3 ], [ 581680.0, 167081.1 ], [ 581733.5, 167119.3 ], [ 581808.5, 167116.3 ], [ 581852.5, 167123.1 ], [ 581879.2, 167117.8 ], [ 581898.2, 167101.6 ], [ 581930.2, 167054.8 ], [ 581953.8, 167043.7 ], [ 582099.5, 167054.3 ], [ 582146.0, 167051.1 ], [ 582197.2, 167026.3 ], [ 582272.9, 166965.4 ], [ 582314.7, 166942.1 ], [ 582381.0, 166922.3 ], [ 582422.0, 166925.1 ], [ 582461.5, 166904.8 ], [ 582507.7, 166907.1 ], [ 582588.0, 166924.8 ], [ 582641.0, 166922.3 ], [ 582788.5, 166831.3 ], [ 582844.0, 166803.8 ], [ 582870.5, 166796.3 ], [ 582908.2, 166799.6 ], [ 582948.2, 166770.8 ], [ 582979.0, 166767.6 ], [ 583003.7, 166768.3 ], [ 583052.5, 166796.6 ], [ 583108.7, 166940.3 ], [ 583131.2, 166964.3 ], [ 583216.2, 167026.1 ], [ 583243.2, 167090.3 ], [ 583257.5, 167100.8 ], [ 583306.0, 167057.6 ], [ 583349.7, 167038.3 ], [ 583349.0, 167014.6 ], [ 583358.2, 166989.8 ], [ 583420.2, 166907.3 ], [ 583444.7, 166857.8 ], [ 583478.7, 166859.1 ], [ 583501.0, 166869.8 ], [ 583549.2, 166878.8 ], [ 583562.7, 166814.3 ], [ 583608.7, 166773.1 ], [ 583685.4, 166744.5 ], [ 583711.9, 166680.7 ], [ 583725.1, 166668.2 ], [ 583746.6, 166674.5 ], [ 583757.5, 166662.3 ], [ 583752.2, 166643.1 ], [ 583760.0, 166624.1 ], [ 583807.3, 166567.4 ], [ 583814.5, 166568.8 ], [ 583816.9, 166630.0 ], [ 583850.1, 166639.2 ], [ 583880.6, 166635.8 ], [ 583905.0, 166610.5 ], [ 584057.9, 166596.5 ], [ 584077.4, 166586.2 ], [ 584079.6, 166576.6 ], [ 584253.7, 166597.3 ], [ 584309.2, 166592.8 ], [ 584326.7, 166610.8 ], [ 584391.5, 166600.8 ], [ 584429.7, 166603.1 ], [ 584498.0, 166628.6 ], [ 584522.5, 166625.1 ], [ 584569.2, 166648.3 ], [ 584622.7, 166655.3 ], [ 584638.5, 166678.8 ], [ 584678.2, 166703.6 ], [ 584749.7, 166773.6 ], [ 584820.2, 166796.8 ], [ 584932.2, 166882.6 ], [ 585000.0, 166949.8 ], [ 585046.9, 166969.0 ], [ 585157.4, 167036.5 ], [ 585257.6, 167051.9 ], [ 585376.7, 167083.3 ], [ 585433.4, 167152.9 ], [ 585497.7, 167174.0 ], [ 585575.0, 167166.8 ], [ 585591.4, 167172.3 ], [ 585624.6, 167201.2 ], [ 585672.5, 167209.2 ], [ 585721.6, 167242.4 ], [ 585783.3, 167250.8 ], [ 585912.7, 167289.6 ], [ 585963.7, 167326.3 ], [ 586017.3, 167354.5 ], [ 586150.9, 167423.7 ], [ 586208.3, 167441.4 ], [ 586248.8, 167469.7 ], [ 586304.4, 167495.6 ], [ 586367.0, 167512.7 ], [ 586399.7, 167513.4 ], [ 586491.9, 167461.3 ], [ 586522.4, 167409.1 ], [ 586524.6, 167378.4 ], [ 586499.4, 167307.5 ], [ 586522.4, 167330.7 ], [ 586557.1, 167384.2 ], [ 586593.6, 167453.2 ], [ 586638.6, 167498.0 ], [ 586639.4, 167510.0 ], [ 586614.9, 167535.2 ], [ 586613.9, 167552.7 ], [ 586693.6, 167546.4 ], [ 586709.0, 167536.4 ], [ 586715.8, 167545.1 ], [ 586709.9, 167557.6 ], [ 586673.6, 167591.7 ], [ 586630.6, 167614.0 ], [ 586610.9, 167650.7 ], [ 586702.1, 167652.5 ], [ 586734.8, 167683.6 ], [ 586793.1, 167711.3 ], [ 586844.0, 167756.3 ], [ 586857.4, 167763.2 ], [ 586893.3, 167764.9 ], [ 586931.8, 167829.9 ], [ 586994.3, 167882.8 ], [ 587027.7, 167897.8 ], [ 587063.9, 167928.5 ], [ 587114.9, 167947.2 ], [ 587181.6, 167955.0 ], [ 587244.6, 167952.2 ], [ 587272.1, 167944.5 ], [ 587286.5, 167996.3 ], [ 587448.9, 168268.7 ], [ 587467.5, 168352.5 ], [ 587491.3, 168388.5 ], [ 587510.0, 168407.3 ], [ 587546.0, 168428.0 ], [ 587854.0, 168568.8 ], [ 588087.5, 168806.8 ], [ 588121.3, 168829.3 ], [ 588162.5, 168845.5 ], [ 588216.0, 168849.5 ], [ 588364.5, 168816.1 ], [ 588404.8, 168814.5 ], [ 588659.5, 168865.0 ], [ 588681.7, 168880.6 ], [ 588886.7, 168688.9 ], [ 588900.6, 168660.9 ], [ 588916.2, 168646.2 ], [ 588927.8, 168612.7 ], [ 588950.0, 168584.6 ], [ 588992.3, 168547.8 ], [ 588996.5, 168537.0 ], [ 588971.9, 168514.0 ], [ 588932.8, 168440.5 ], [ 588984.1, 168435.7 ], [ 589014.1, 168399.8 ], [ 588954.6, 168362.5 ], [ 588949.8, 168352.3 ], [ 588935.9, 168300.7 ], [ 588957.6, 168259.7 ], [ 588965.9, 168227.7 ], [ 588960.9, 168216.5 ], [ 588907.9, 168166.7 ], [ 588911.6, 168151.7 ], [ 588944.9, 168129.4 ], [ 588977.2, 168116.9 ], [ 589105.1, 168094.0 ], [ 589161.4, 168094.7 ], [ 589188.6, 168087.5 ], [ 589212.1, 168071.2 ], [ 589247.6, 167967.6 ], [ 589247.4, 167947.7 ], [ 589270.8, 167870.7 ], [ 589271.3, 167835.1 ], [ 589285.4, 167808.2 ], [ 589301.6, 167795.2 ], [ 589345.9, 167802.0 ], [ 589359.2, 167796.4 ], [ 589345.3, 167738.3 ], [ 589349.8, 167672.0 ], [ 589337.8, 167624.5 ], [ 589343.9, 167611.3 ], [ 589367.5, 167645.7 ], [ 589380.5, 167647.5 ], [ 589432.2, 167614.7 ], [ 589735.2, 167584.2 ], [ 589754.2, 167592.7 ], [ 589793.5, 167635.5 ], [ 589810.6, 167660.0 ], [ 589824.8, 167705.0 ], [ 589858.2, 167747.4 ], [ 589881.5, 167758.5 ], [ 589920.2, 167761.5 ], [ 589939.0, 167772.0 ], [ 589945.0, 167884.0 ], [ 589964.2, 167968.9 ], [ 589936.5, 168024.2 ], [ 589942.5, 168027.0 ], [ 589966.1, 168011.5 ], [ 589998.8, 168025.1 ], [ 590014.2, 168044.1 ], [ 590024.3, 168043.2 ], [ 590072.4, 167958.0 ], [ 590074.6, 167917.2 ], [ 590092.9, 167936.2 ], [ 590111.4, 167937.7 ], [ 590168.1, 167905.5 ], [ 590194.9, 167931.5 ], [ 590207.4, 167935.5 ], [ 590313.4, 167943.5 ], [ 590457.5, 167968.9 ], [ 590545.2, 168006.1 ], [ 590584.0, 168009.8 ], [ 590596.5, 168000.5 ], [ 590638.3, 168044.8 ], [ 590722.1, 168098.6 ], [ 590809.6, 168133.6 ], [ 590832.9, 168134.0 ], [ 590822.2, 168090.8 ], [ 590824.2, 168076.5 ], [ 590873.2, 167982.3 ], [ 590829.4, 167949.8 ], [ 590808.5, 167856.3 ], [ 590815.0, 167835.4 ], [ 590896.5, 167902.5 ], [ 590975.2, 167904.0 ], [ 591085.5, 167968.8 ], [ 591116.2, 167994.8 ], [ 591146.3, 168036.4 ], [ 591177.5, 168178.0 ], [ 591208.3, 168248.2 ], [ 591261.0, 168273.5 ], [ 591310.0, 168337.8 ], [ 591339.5, 168363.3 ], [ 591368.0, 168367.5 ], [ 591398.7, 168362.0 ], [ 591412.5, 168371.0 ], [ 591428.0, 168401.5 ], [ 591439.0, 168402.8 ], [ 591470.2, 168359.8 ], [ 591508.2, 168351.8 ], [ 591539.7, 168372.0 ], [ 591588.5, 168418.8 ], [ 591593.7, 168435.0 ], [ 591579.1, 168472.6 ], [ 591541.1, 168484.0 ], [ 591514.6, 168509.3 ], [ 591492.4, 168508.4 ], [ 591493.6, 168536.6 ], [ 591533.6, 168590.1 ], [ 591567.2, 168613.2 ], [ 591609.6, 168670.6 ], [ 591637.0, 168776.0 ], [ 591663.9, 168815.4 ], [ 591721.9, 168853.6 ], [ 591738.6, 168891.4 ], [ 591811.9, 168930.4 ], [ 591835.6, 168954.4 ], [ 591865.4, 169015.9 ], [ 591879.1, 169075.1 ], [ 591892.5, 169105.6 ], [ 591908.6, 169110.5 ], [ 591927.7, 169105.4 ], [ 591945.5, 169090.9 ], [ 591962.7, 169062.6 ], [ 591969.7, 169061.4 ], [ 591974.2, 169067.9 ], [ 591962.2, 169103.4 ], [ 591965.7, 169126.6 ], [ 591976.5, 169135.6 ], [ 592022.2, 169143.4 ], [ 592039.0, 169164.2 ], [ 592045.0, 169190.4 ], [ 592058.0, 169208.6 ], [ 592068.2, 169204.1 ], [ 592063.7, 169169.6 ], [ 592083.7, 169150.4 ], [ 592086.0, 169102.6 ], [ 592096.0, 169063.9 ], [ 592093.2, 169018.9 ], [ 592108.7, 168950.6 ], [ 592118.0, 168953.1 ], [ 592137.7, 168988.4 ], [ 592170.2, 169018.9 ], [ 592190.5, 169053.1 ], [ 592231.2, 169075.1 ], [ 592264.2, 169071.1 ], [ 592319.2, 169089.6 ], [ 592341.9, 169113.8 ], [ 592362.1, 169079.7 ], [ 592366.6, 169060.2 ], [ 592365.1, 169012.5 ], [ 592342.6, 168990.2 ], [ 592341.6, 168979.0 ], [ 592462.6, 169009.7 ], [ 592483.4, 169025.7 ], [ 592522.6, 169074.3 ], [ 592530.6, 169098.5 ], [ 592536.9, 169094.5 ], [ 592535.6, 169053.0 ], [ 592544.9, 169016.0 ], [ 592545.6, 168980.0 ], [ 592558.7, 168973.5 ], [ 592561.7, 169000.3 ], [ 592579.2, 169032.8 ], [ 592578.5, 169071.0 ], [ 592611.2, 169128.0 ], [ 592760.7, 169328.3 ], [ 592803.5, 169353.5 ], [ 592862.0, 169422.3 ], [ 592913.7, 169501.8 ], [ 592956.2, 169522.5 ], [ 592985.5, 169549.8 ], [ 593050.5, 169563.0 ], [ 593158.1, 169631.0 ], [ 593210.5, 169667.7 ], [ 593322.8, 169777.3 ], [ 593352.6, 169831.0 ], [ 593380.3, 169865.4 ], [ 593413.2, 169947.0 ], [ 593458.032, 170005.245 ], [ 593442.6, 170063.1 ], [ 593444.9, 170087.9 ], [ 593451.6, 170107.6 ], [ 593499.9, 170173.4 ], [ 593516.9, 170211.6 ], [ 593508.6, 170239.1 ], [ 593471.4, 170273.9 ], [ 593462.9, 170295.9 ], [ 593467.9, 170399.6 ], [ 593460.1, 170441.9 ], [ 593444.6, 170450.5 ], [ 593361.0, 170449.6 ], [ 593296.5, 170477.7 ], [ 593252.4, 170511.5 ], [ 593194.5, 170588.0 ], [ 593189.4, 170648.4 ], [ 593171.4, 170690.1 ], [ 593168.3, 170714.7 ], [ 593166.7, 170774.5 ], [ 593178.6, 170834.9 ], [ 593175.9, 170848.9 ], [ 593107.6, 170964.9 ], [ 593083.7, 171130.5 ], [ 593054.9, 171223.4 ], [ 593052.8, 171356.3 ], [ 593085.9, 171440.8 ], [ 593092.0, 171474.4 ], [ 593089.9, 171513.2 ], [ 593081.8, 171550.1 ], [ 592968.7, 171862.1 ], [ 592963.8, 171966.9 ], [ 592957.4, 171986.4 ], [ 592972.1, 172043.6 ], [ 592968.4, 172098.7 ], [ 593026.1, 172295.1 ], [ 593039.1, 172317.4 ], [ 593070.5, 172341.6 ], [ 593101.6, 172379.4 ], [ 593132.0, 172441.4 ], [ 593147.9, 172552.6 ], [ 593171.3, 172585.0 ], [ 593189.2, 172596.8 ], [ 593224.6, 172650.6 ], [ 593216.0, 172703.1 ], [ 593224.4, 172791.1 ], [ 593246.4, 172846.4 ], [ 593254.6, 172941.9 ], [ 593289.9, 173046.8 ], [ 593295.5, 173205.0 ], [ 593326.3, 173297.9 ], [ 593361.451, 173352.302 ], [ 593378.1, 173396.5 ], [ 593381.6, 173471.4 ], [ 593358.5, 173473.7 ], [ 593373.0, 173530.4 ], [ 593396.0, 173580.7 ], [ 593396.5, 173639.1 ], [ 593386.3, 173668.1 ], [ 593300.3, 173790.7 ], [ 593260.5, 173834.0 ], [ 593199.4, 173886.0 ], [ 593181.1, 173913.6 ], [ 593146.8, 174052.4 ], [ 593157.0, 174098.1 ], [ 593155.0, 174127.6 ], [ 593117.35, 174162.451 ], [ 593096.3, 174172.9 ], [ 593070.8, 174171.4 ], [ 592992.8, 174092.9 ], [ 592957.7, 174071.7 ], [ 592882.2, 174048.3 ], [ 592798.1, 174046.5 ], [ 592748.5, 174076.1 ], [ 592660.0, 174062.1 ], [ 592606.3, 174076.4 ], [ 592538.8, 174082.9 ], [ 592508.5, 174108.1 ], [ 592490.8, 174132.3 ], [ 592485.8, 174201.3 ], [ 592424.5, 174252.4 ], [ 592420.4, 174310.1 ], [ 592399.5, 174354.9 ], [ 592378.0, 174373.6 ], [ 592335.3, 174389.1 ], [ 592322.0, 174388.9 ], [ 592277.0, 174360.6 ], [ 592240.0, 174356.4 ], [ 592191.3, 174358.6 ], [ 592118.8, 174383.4 ], [ 592052.3, 174444.1 ], [ 591978.3, 174528.6 ], [ 591970.8, 174555.6 ], [ 591970.5, 174626.1 ], [ 591962.3, 174647.6 ], [ 591946.5, 174664.1 ], [ 591923.3, 174668.4 ], [ 591873.1, 174626.4 ], [ 591816.3, 174627.9 ], [ 591770.3, 174617.1 ], [ 591672.5, 174562.4 ], [ 591655.5, 174560.1 ], [ 591630.5, 174579.1 ], [ 591558.1, 174672.0 ], [ 591531.7, 174717.1 ], [ 591520.5, 174728.9 ], [ 591496.9, 174738.4 ], [ 591508.1, 174754.9 ], [ 591523.9, 174757.6 ], [ 591656.9, 174729.5 ], [ 591704.6, 174727.5 ], [ 591745.4, 174738.0 ], [ 591798.6, 174762.6 ], [ 591833.1, 174801.1 ], [ 591855.1, 174810.9 ], [ 591943.9, 174819.4 ], [ 592001.1, 174801.4 ], [ 592028.9, 174816.1 ], [ 592044.6, 174817.1 ], [ 592075.6, 174801.6 ], [ 592088.1, 174784.6 ], [ 592089.1, 174690.6 ], [ 592102.1, 174650.2 ], [ 592132.9, 174629.2 ], [ 592167.4, 174626.0 ], [ 592201.1, 174652.7 ], [ 592209.4, 174684.2 ], [ 592190.6, 174783.7 ], [ 592194.9, 174837.4 ], [ 592259.4, 174900.1 ], [ 592290.9, 174966.6 ], [ 592301.1, 174974.9 ], [ 592325.6, 174978.9 ], [ 592367.4, 174950.1 ], [ 592384.1, 174947.9 ], [ 592494.0, 174990.0 ], [ 592515.1, 174995.8 ], [ 592536.6, 174993.6 ], [ 592548.9, 174983.6 ], [ 592572.1, 174942.9 ], [ 592620.8, 174936.3 ], [ 592634.1, 174927.1 ], [ 592641.4, 174869.9 ], [ 592650.1, 174857.4 ], [ 592676.1, 174853.6 ], [ 592717.4, 174868.9 ], [ 592743.1, 174891.6 ], [ 592778.0, 174943.2 ], [ 592835.9, 174982.3 ], [ 592860.4, 175014.4 ], [ 592869.6, 175053.4 ], [ 592837.1, 175136.4 ], [ 592850.9, 175161.1 ], [ 592903.7, 175202.0 ], [ 592958.4, 175303.6 ], [ 593044.4, 175376.0 ], [ 593078.8, 175432.4 ], [ 593108.9, 175441.1 ], [ 593167.4, 175442.4 ], [ 593213.4, 175469.4 ], [ 593232.1, 175468.9 ], [ 593274.2, 175453.8 ], [ 593305.0, 175438.1 ], [ 593348.2, 175394.2 ], [ 593394.9, 175388.4 ], [ 593441.1, 175359.9 ], [ 593460.5, 175358.0 ], [ 593481.7, 175366.4 ], [ 593532.3, 175398.0 ], [ 593592.9, 175394.5 ], [ 593644.8, 175402.9 ], [ 593705.5, 175394.8 ], [ 593736.2, 175360.0 ], [ 593780.9, 175286.7 ], [ 593847.5, 175216.9 ], [ 593891.5, 175182.4 ], [ 593929.9, 175157.3 ], [ 593950.9, 175151.9 ], [ 594016.6, 175164.9 ], [ 594080.9, 175208.1 ], [ 594114.4, 175220.6 ], [ 594139.1, 175240.6 ], [ 594191.1, 175334.6 ], [ 594195.522, 175384.801 ], [ 594238.6, 175430.5 ], [ 594265.6, 175489.1 ], [ 594293.6, 175518.6 ], [ 594352.1, 175522.6 ], [ 594399.4, 175554.6 ], [ 594438.1, 175567.6 ], [ 594510.1, 175561.4 ], [ 594567.1, 175538.1 ], [ 594624.9, 175536.9 ], [ 594695.3, 175526.4 ], [ 594750.6, 175570.2 ], [ 594783.2, 175627.8 ], [ 594785.463, 175644.742 ], [ 594777.788, 175667.788 ], [ 594594.307, 175807.681 ], [ 594593.9, 175840.4 ], [ 594616.9, 175949.1 ], [ 594655.3, 176050.2 ], [ 594672.7, 176053.2 ], [ 594693.5, 176090.2 ], [ 594777.2, 176157.7 ], [ 594819.5, 176197.2 ], [ 594840.5, 176226.2 ], [ 594864.2, 176238.7 ], [ 594892.2, 176268.0 ], [ 594945.2, 176290.5 ], [ 594968.0, 176311.7 ], [ 595029.4, 176337.6 ], [ 595104.4, 176353.6 ], [ 595120.6, 176383.4 ], [ 595132.1, 176391.1 ], [ 595165.6, 176390.9 ], [ 595221.9, 176404.6 ], [ 595251.1, 176429.6 ], [ 595286.9, 176420.1 ], [ 595326.6, 176434.0 ], [ 595349.0, 176426.7 ], [ 595374.0, 176439.6 ], [ 595407.0, 176444.5 ], [ 595412.6, 176458.6 ], [ 595466.9, 176489.4 ], [ 595497.1, 176496.2 ], [ 595577.9, 176476.0 ], [ 595654.1, 176431.7 ], [ 595679.9, 176403.0 ], [ 595693.6, 176347.5 ], [ 595749.4, 176321.2 ], [ 595866.6, 176294.2 ], [ 595979.9, 176309.7 ], [ 596029.6, 176303.5 ], [ 596073.1, 176305.7 ], [ 596141.1, 176280.7 ], [ 596202.6, 176217.2 ], [ 596257.9, 176229.5 ], [ 596296.9, 176225.7 ], [ 596336.6, 176170.0 ], [ 596366.6, 176101.5 ], [ 596443.6, 176109.7 ], [ 596455.4, 176102.7 ], [ 596492.6, 176054.5 ], [ 596497.9, 176027.5 ], [ 596489.9, 175960.2 ], [ 596588.1, 175884.7 ], [ 596614.5, 175814.0 ], [ 596635.2, 175795.2 ], [ 596663.0, 175687.5 ], [ 596703.7, 175658.0 ], [ 596795.6, 175620.5 ], [ 596750.5, 175693.2 ], [ 596747.2, 175712.0 ], [ 596747.5, 175731.0 ], [ 596770.3, 175784.6 ], [ 596780.0, 175828.0 ], [ 596781.0, 175895.2 ], [ 596788.3, 175905.9 ], [ 596768.0, 175956.0 ], [ 596783.625, 175959.104 ], [ 596842.4, 175888.9 ], [ 596876.0, 175883.5 ], [ 596950.2, 175885.5 ], [ 596962.4, 175838.6 ], [ 597017.3, 175779.5 ], [ 597157.7, 175649.7 ], [ 597380.7, 175579.5 ], [ 597496.7, 175574.7 ], [ 597575.5, 175591.5 ], [ 597662.7, 175639.0 ], [ 597716.5, 175690.2 ], [ 597841.7, 175744.5 ], [ 597864.2, 175749.0 ], [ 597904.7, 175751.0 ], [ 597979.2, 175721.0 ], [ 598039.7, 175682.2 ], [ 598067.7, 175685.5 ], [ 598153.5, 175730.2 ], [ 598343.3, 175850.6 ], [ 598431.2, 175891.8 ], [ 598484.4, 175909.7 ], [ 598526.4, 175912.7 ], [ 598618.9, 175901.9 ], [ 598712.4, 175859.0 ], [ 598861.7, 175807.2 ], [ 599031.2, 175795.7 ], [ 599109.7, 175746.9 ], [ 599179.3, 175717.0 ], [ 599201.2, 175713.2 ], [ 599342.5, 175725.2 ], [ 599477.5, 175716.5 ], [ 599550.5, 175686.7 ], [ 599609.5, 175635.8 ], [ 599623.1, 175602.6 ], [ 599611.665, 175591.448 ], [ 599619.7, 175527.1 ], [ 599708.6, 175378.4 ], [ 599769.7, 175352.4 ], [ 599799.4, 175315.0 ], [ 599872.6, 175250.5 ], [ 599942.8, 175213.5 ], [ 600025.8, 175154.6 ], [ 600101.3, 175090.1 ], [ 600183.5, 175004.7 ], [ 600222.9, 175001.3 ], [ 600206.0, 175028.0 ], [ 600207.2, 175054.0 ], [ 600247.5, 175105.5 ], [ 600283.2, 175206.8 ], [ 600297.0, 175225.8 ], [ 600355.4, 175271.8 ], [ 600378.7, 175316.5 ], [ 600449.2, 175347.0 ], [ 600503.8, 175384.8 ], [ 600518.8, 175406.4 ], [ 600552.5, 175485.7 ], [ 600677.7, 175578.7 ], [ 600707.5, 175660.5 ], [ 600751.7, 175686.7 ], [ 600839.4, 175724.7 ], [ 600905.2, 175747.0 ], [ 601015.716, 175770.217 ], [ 601067.089, 175789.239 ], [ 601076.042, 175798.492 ], [ 601079.5, 175784.6 ], [ 601040.5, 175766.0 ], [ 600859.146, 175627.852 ], [ 600875.337, 175568.571 ], [ 600871.942, 175549.768 ], [ 600856.8, 175533.8 ], [ 600816.0, 175514.8 ], [ 600792.7, 175482.1 ], [ 600758.2, 175399.4 ], [ 600725.2, 175347.6 ], [ 600707.2, 175278.7 ], [ 600677.5, 175245.6 ], [ 600627.5, 175221.9 ], [ 600578.7, 175165.4 ], [ 600576.2, 175113.0 ], [ 600591.0, 175061.4 ], [ 600568.7, 175024.1 ], [ 600568.7, 174993.6 ], [ 600581.2, 174976.4 ], [ 600610.5, 174956.1 ], [ 600686.2, 174940.4 ], [ 600716.7, 174941.4 ], [ 600785.0, 174966.4 ], [ 600878.9, 174944.9 ], [ 600894.6, 174955.1 ], [ 600960.1, 174954.1 ], [ 601052.4, 174994.6 ], [ 601112.6, 175000.6 ], [ 601169.9, 175027.9 ], [ 601194.4, 175044.1 ], [ 601268.2, 175121.3 ], [ 601294.4, 175138.1 ], [ 601367.9, 175166.6 ], [ 601460.1, 175243.1 ], [ 601486.1, 175250.6 ], [ 601523.4, 175239.4 ], [ 601539.6, 175224.9 ], [ 601541.4, 175207.4 ], [ 601523.4, 175133.1 ], [ 601517.6, 175053.1 ], [ 601509.4, 175032.1 ], [ 601487.6, 175010.9 ], [ 601473.6, 174984.1 ], [ 601476.1, 174972.9 ], [ 601501.9, 174961.1 ], [ 601498.1, 174928.4 ], [ 601431.6, 174867.7 ], [ 601379.4, 174851.8 ], [ 601348.6, 174824.9 ], [ 601312.2, 174805.8 ], [ 601298.1, 174784.9 ], [ 601301.9, 174751.1 ], [ 601344.9, 174701.2 ], [ 601347.4, 174664.9 ], [ 601361.6, 174634.1 ], [ 601358.4, 174592.4 ], [ 601378.1, 174589.4 ], [ 601413.1, 174605.1 ], [ 601455.9, 174628.6 ], [ 601515.9, 174677.4 ], [ 601544.4, 174684.1 ], [ 601553.6, 174668.9 ], [ 601561.9, 174614.4 ], [ 601585.6, 174576.9 ], [ 601586.6, 174529.4 ], [ 601574.1, 174503.3 ], [ 601575.1, 174491.1 ], [ 601597.6, 174488.6 ], [ 601652.7, 174518.0 ], [ 601700.1, 174507.9 ], [ 601727.3, 174468.9 ], [ 601772.1, 174428.7 ], [ 601780.6, 174411.4 ], [ 601779.7, 174397.7 ], [ 601815.7, 174354.9 ], [ 601900.2, 174323.9 ], [ 601961.7, 174354.9 ], [ 602000.9, 174362.4 ], [ 602008.4, 174384.9 ], [ 602009.7, 174430.4 ], [ 602051.7, 174447.9 ], [ 602085.7, 174492.4 ], [ 602104.9, 174486.9 ], [ 602125.9, 174440.4 ], [ 602143.2, 174436.7 ], [ 602160.7, 174452.9 ], [ 602175.9, 174505.2 ], [ 602200.9, 174532.2 ], [ 602199.2, 174596.4 ], [ 602222.9, 174660.2 ], [ 602213.7, 174703.7 ], [ 602182.2, 174760.2 ], [ 602173.3, 174788.3 ], [ 602183.9, 174844.2 ], [ 602204.7, 174885.4 ], [ 602221.2, 174961.9 ], [ 602273.0, 175029.4 ], [ 602313.7, 175060.4 ], [ 602347.5, 175107.0 ], [ 602453.5, 175159.4 ], [ 602533.4, 175169.1 ], [ 602589.2, 175213.0 ], [ 602624.3, 175213.7 ], [ 602623.8, 175225.1 ], [ 602586.0, 175241.6 ], [ 602566.5, 175245.1 ], [ 602500.0, 175236.6 ], [ 602483.5, 175248.1 ], [ 602482.7, 175279.6 ], [ 602514.3, 175312.2 ], [ 602554.3, 175341.4 ], [ 602605.4, 175352.0 ], [ 602658.0, 175343.5 ], [ 602723.4, 175354.7 ], [ 602784.2, 175388.0 ], [ 602830.9, 175434.8 ], [ 603000.0, 175536.0 ], [ 603097.5, 175541.7 ], [ 603143.4, 175535.3 ], [ 603208.3, 175509.1 ], [ 603247.1, 175503.6 ], [ 603311.5, 175512.5 ], [ 603472.4, 175657.7 ], [ 603487.2, 175652.8 ], [ 603525.2, 175622.7 ], [ 603592.8, 175630.4 ], [ 603660.2, 175624.8 ], [ 603688.4, 175634.2 ], [ 603767.9, 175690.6 ], [ 603822.2, 175690.5 ], [ 603835.4, 175699.4 ], [ 603851.2, 175750.5 ], [ 603860.2, 175758.3 ], [ 603874.4, 175757.1 ], [ 603893.0, 175743.0 ], [ 603910.8, 175711.8 ], [ 603945.3, 175681.7 ], [ 603953.4, 175642.6 ], [ 603968.9, 175637.3 ], [ 603994.3, 175703.6 ], [ 603993.9, 175734.5 ], [ 603983.9, 175765.7 ], [ 603987.0, 175785.4 ], [ 604021.9, 175803.8 ], [ 604092.9, 175791.1 ], [ 604127.3, 175793.3 ], [ 604143.5, 175805.8 ], [ 604142.7, 175843.8 ], [ 604170.4, 175866.6 ], [ 604218.2, 175922.4 ], [ 604221.6, 175937.4 ], [ 604209.7, 175983.8 ], [ 604222.7, 176001.1 ], [ 604236.4, 175996.8 ], [ 604251.4, 175966.7 ], [ 604247.3, 175917.0 ], [ 604259.3, 175892.3 ], [ 604284.2, 175865.8 ], [ 604323.8, 175841.8 ], [ 604412.5, 175817.4 ], [ 604493.2, 175763.9 ], [ 604514.2, 175758.8 ], [ 604553.9, 175765.8 ], [ 604569.2, 175762.6 ], [ 604590.4, 175730.6 ], [ 604623.2, 175720.3 ], [ 604625.7, 175676.1 ], [ 604662.4, 175693.1 ], [ 604672.2, 175715.2 ], [ 604655.8, 175737.3 ], [ 604653.4, 175754.1 ], [ 604663.3, 175822.2 ], [ 604678.4, 175853.9 ], [ 604677.7, 175863.6 ], [ 604635.7, 175915.8 ], [ 604634.4, 175931.8 ], [ 604650.4, 175972.4 ], [ 604631.4, 176000.3 ], [ 604580.2, 176041.1 ], [ 604567.2, 176120.1 ], [ 604570.9, 176164.8 ], [ 604505.4, 176248.9 ], [ 604471.5, 176273.8 ], [ 604448.3, 176353.997 ], [ 604455.027, 176372.731 ], [ 604483.135, 176381.4 ], [ 604495.5, 176371.9 ], [ 604517.283, 176325.357 ], [ 604532.335, 176315.148 ], [ 604553.1, 176312.0 ], [ 604634.7, 176337.7 ], [ 604704.0, 176335.8 ], [ 604718.9, 176340.2 ], [ 604723.4, 176349.0 ], [ 604722.6, 176357.8 ], [ 604709.9, 176366.8 ], [ 604667.4, 176378.4 ], [ 604632.8, 176434.3 ], [ 604630.0, 176460.6 ], [ 604655.4, 176546.9 ], [ 604647.2, 176564.7 ], [ 604581.0, 176610.4 ], [ 604556.7, 176643.1 ], [ 604553.0, 176669.4 ], [ 604567.0, 176711.1 ], [ 604552.212, 176740.418 ], [ 604553.955, 176758.196 ], [ 604575.464, 176771.529 ], [ 604776.706, 176817.806 ], [ 604892.7, 176809.3 ], [ 605006.7, 176786.6 ], [ 605103.5, 176837.4 ], [ 605219.3, 176882.1 ], [ 605290.8, 176887.6 ], [ 605365.7, 176883.3 ], [ 605417.7, 176889.6 ], [ 605472.9, 176885.6 ], [ 605605.4, 176844.3 ], [ 605682.8, 176799.6 ], [ 605774.1, 176791.1 ], [ 605825.3, 176773.5 ], [ 605870.4, 176746.6 ], [ 605800.9, 176678.4 ], [ 605628.2, 176447.9 ], [ 605612.8, 176417.1 ], [ 605558.5, 176253.7 ], [ 605530.0, 176143.4 ], [ 605542.9, 176057.0 ], [ 605647.2, 175838.6 ], [ 605678.8, 175726.4 ], [ 605742.4, 175641.0 ], [ 605925.9, 175529.0 ], [ 605991.8, 175501.7 ], [ 606042.7, 175472.1 ], [ 606120.9, 175529.8 ], [ 606207.4, 175575.5 ], [ 606206.0, 175533.0 ], [ 606223.5, 175506.7 ], [ 606233.7, 175454.0 ], [ 606440.1, 175237.4 ], [ 606480.2, 175174.7 ], [ 606513.2, 175142.7 ], [ 606582.2, 175109.8 ], [ 606666.5, 175055.7 ], [ 606737.0, 175023.5 ], [ 606798.0, 175003.7 ], [ 606824.2, 175013.2 ], [ 606848.7, 175008.7 ], [ 607299.0, 174819.0 ], [ 607597.3, 174714.8 ], [ 607645.0, 174691.7 ], [ 607737.35, 174625.7 ], [ 607747.636, 174626.312 ], [ 607775.6, 174647.2 ], [ 607801.9, 174697.2 ], [ 607808.0, 174690.4 ], [ 607817.1, 174700.0 ], [ 607849.0, 174781.4 ], [ 607868.6, 174800.0 ], [ 607902.4, 174796.0 ], [ 607977.9, 174750.1 ], [ 608019.4, 174739.8 ], [ 608115.262, 174741.3 ], [ 608163.5, 174755.1 ], [ 608212.9, 174758.9 ], [ 608267.552, 174780.463 ], [ 608285.1, 174799.7 ], [ 608294.3, 174838.7 ], [ 608291.2, 174873.0 ], [ 608257.4, 174975.2 ], [ 608641.898, 174966.57 ], [ 608746.1, 175001.8 ], [ 608810.9, 175012.8 ], [ 608887.6, 174981.4 ], [ 608960.3, 174967.9 ], [ 609000.6, 174953.8 ], [ 609116.598, 174907.086 ], [ 609141.845, 174886.622 ], [ 609163.6, 174908.4 ], [ 609242.4, 174936.6 ], [ 609325.6, 174981.1 ], [ 609364.841, 175014.729 ], [ 609397.757, 175005.969 ], [ 609503.104, 175009.625 ], [ 609601.494, 174978.43 ], [ 609720.669, 175200.649 ], [ 609736.1, 175204.39 ], [ 609846.917, 175176.335 ], [ 609922.331, 175342.2 ], [ 610018.755, 175390.722 ], [ 610094.8, 175381.5 ], [ 610141.1, 175389.0 ], [ 610178.543, 175387.734 ], [ 610207.211, 175381.716 ], [ 610260.8, 175350.8 ], [ 610337.0, 175419.7 ], [ 610405.45, 175376.593 ], [ 610458.406, 175328.867 ], [ 610490.44, 175312.85 ], [ 610524.531, 175306.688 ], [ 610556.761, 175289.327 ], [ 610668.8, 175202.1 ], [ 610770.4, 175170.2 ], [ 610796.7, 175124.4 ], [ 610869.2, 175159.0 ], [ 611056.5, 175196.5 ], [ 611090.2, 175210.5 ], [ 611128.946, 175244.312 ], [ 611146.1, 175274.4 ], [ 611142.5, 175565.0 ], [ 611106.7, 175666.2 ], [ 611109.0, 175697.2 ], [ 611214.3, 175620.6 ], [ 611304.7, 175572.0 ], [ 611318.0, 175584.2 ], [ 611314.0, 175602.3 ], [ 611282.0, 175620.5 ], [ 611260.1, 175641.4 ], [ 611189.2, 175726.0 ], [ 611184.1, 175743.5 ], [ 611205.5, 175741.3 ], [ 611221.2, 175722.1 ], [ 611290.5, 175673.7 ], [ 611306.8, 175652.0 ], [ 611327.0, 175648.5 ], [ 611330.2, 175664.8 ], [ 611290.2, 175699.3 ], [ 611248.8, 175759.7 ], [ 611212.1, 175836.5 ], [ 611189.4, 175931.5 ], [ 611197.5, 175944.5 ], [ 611261.7, 175996.6 ], [ 611356.0, 176143.4 ], [ 611385.3, 176200.0 ], [ 611958.5, 176899.5 ], [ 612008.7, 176947.7 ], [ 612105.0, 177012.2 ], [ 612242.1, 177077.6 ], [ 613169.589, 177449.052 ], [ 613179.599, 177446.398 ], [ 613258.5, 177501.8 ], [ 613326.8, 177537.2 ], [ 613553.3, 177602.9 ], [ 613601.3, 177623.8 ], [ 613765.6, 177724.5 ], [ 613848.4, 177797.4 ], [ 613877.0, 177814.7 ], [ 613976.5, 177849.3 ], [ 614064.4, 177896.7 ], [ 614134.5, 177965.5 ], [ 614274.3, 178084.9 ], [ 614293.8, 178110.6 ], [ 614316.277, 178180.018 ], [ 614419.419, 178225.066 ], [ 614465.144, 178230.698 ], [ 614593.1, 178362.1 ] ], [ [ 670697.1, 201185.4 ], [ 670705.3, 201170.9 ], [ 670694.9, 201059.0 ], [ 670645.9, 201061.6 ], [ 670604.7, 201093.9 ] ] ] } } -, -{ "type": "Feature", "properties": { "FID": 3.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 678782.2, 199305.2 ], [ 678793.2, 199277.2 ], [ 678820.0, 199249.5 ], [ 678880.2, 199229.6 ], [ 678930.4, 199201.1 ], [ 678975.3, 199210.4 ], [ 678984.3, 199206.2 ], [ 679008.2, 199125.9 ], [ 679046.7, 199089.7 ], [ 679052.0, 199049.4 ], [ 679044.5, 199017.9 ], [ 679046.7, 198927.4 ], [ 679037.1, 198875.4 ], [ 679025.9, 198856.1 ], [ 678974.0, 198816.2 ], [ 678919.7, 198752.8 ], [ 678895.2, 198676.7 ], [ 678857.7, 198606.0 ], [ 678813.4, 198559.6 ], [ 678779.0, 198543.5 ], [ 678776.0, 198531.7 ], [ 678806.8, 198505.3 ], [ 678841.6, 198399.9 ], [ 678854.2, 198330.6 ], [ 678886.4, 198282.7 ], [ 678917.4, 198256.7 ], [ 678923.4, 198244.7 ], [ 678927.6, 198192.8 ], [ 679008.2, 198138.5 ], [ 679010.4, 198076.6 ], [ 679051.8, 198039.4 ], [ 679119.9, 198013.3 ], [ 679153.2, 197965.7 ], [ 679183.2, 197942.3 ], [ 679239.0, 197938.5 ], [ 679268.3, 197944.7 ], [ 679292.1, 197958.1 ], [ 679320.1, 197985.3 ], [ 679349.3, 198050.7 ], [ 679405.4, 198101.7 ], [ 679442.2, 198167.4 ], [ 679481.0, 198192.2 ], [ 679549.0, 198263.7 ], [ 679604.6, 198365.3 ], [ 679619.2, 198429.5 ], [ 679678.1, 198510.4 ], [ 679722.7, 198526.8 ], [ 679781.8, 198531.1 ], [ 679801.5, 198543.8 ], [ 679811.0, 198560.9 ], [ 679875.593, 198628.187 ], [ 679943.4, 198678.0 ], [ 679969.6, 198704.4 ], [ 680018.5, 198730.5 ], [ 680064.9, 198783.9 ], [ 680092.9, 198852.4 ], [ 680104.9, 198900.4 ], [ 680137.5, 198940.7 ], [ 680151.1, 198942.1 ], [ 680186.9, 198930.2 ], [ 680217.2, 198912.6 ], [ 680272.3, 198856.3 ], [ 680263.8, 198904.0 ], [ 680297.8, 198996.8 ], [ 680309.5, 199052.0 ], [ 680315.6, 199052.0 ], [ 680324.4, 199014.5 ], [ 680330.9, 198943.1 ], [ 680339.9, 198942.0 ], [ 680358.9, 199008.0 ], [ 680396.1, 199057.0 ], [ 680427.7, 199164.5 ], [ 680439.6, 199168.5 ], [ 680442.2, 199161.2 ], [ 680435.3, 199100.6 ], [ 680439.3, 199079.6 ], [ 680461.0, 199048.6 ], [ 680477.3, 199045.7 ], [ 680480.4, 199085.9 ], [ 680493.6, 199103.1 ], [ 680510.0, 199112.7 ], [ 680556.7, 199121.2 ], [ 680566.5, 199134.8 ], [ 680536.1, 199200.8 ], [ 680540.4, 199216.2 ], [ 680556.8, 199228.1 ], [ 680580.6, 199232.6 ], [ 680618.1, 199290.1 ], [ 680662.0, 199287.0 ], [ 680669.4, 199316.4 ], [ 680725.4, 199380.2 ], [ 680762.8, 199443.6 ], [ 680774.4, 199455.3 ], [ 680804.1, 199462.0 ], [ 680815.2, 199473.7 ], [ 680821.3, 199523.8 ], [ 680830.4, 199535.1 ], [ 680858.3, 199542.4 ], [ 680879.1, 199540.2 ], [ 681016.1, 199600.1 ], [ 681106.8, 199668.3 ], [ 681144.8, 199707.7 ], [ 681153.6, 199729.2 ], [ 681161.8, 199795.8 ], [ 681173.6, 199821.8 ], [ 681188.1, 199832.6 ], [ 681222.1, 199829.3 ], [ 681260.3, 199836.3 ], [ 681276.3, 199846.8 ], [ 681292.3, 199868.9 ], [ 681295.4, 199900.0 ], [ 681269.4, 199960.0 ], [ 681269.6, 200027.5 ], [ 681258.8, 200068.2 ], [ 681262.8, 200084.0 ], [ 681278.6, 200104.5 ], [ 681282.3, 200125.2 ], [ 681224.6, 200178.0 ], [ 681210.1, 200181.4 ], [ 681191.6, 200172.6 ], [ 681147.3, 200131.0 ], [ 681126.6, 200126.2 ], [ 681110.1, 200138.7 ], [ 681107.9, 200181.3 ], [ 681075.8, 200201.8 ], [ 680948.6, 200221.1 ], [ 680885.1, 200218.3 ], [ 680803.7, 200199.6 ], [ 680780.2, 200201.6 ], [ 680687.6, 200262.0 ], [ 680606.5, 200296.2 ], [ 680493.0, 200316.3 ], [ 680435.7, 200356.5 ], [ 680391.3, 200367.4 ], [ 680216.9, 200325.4 ], [ 680004.7, 200341.5 ], [ 679920.3, 200364.1 ], [ 679876.6, 200360.0 ], [ 679838.1, 200343.4 ], [ 679812.1, 200341.8 ], [ 679680.2, 200379.9 ], [ 679673.7, 200388.8 ], [ 679677.6, 200401.4 ], [ 679688.3, 200406.7 ], [ 679764.3, 200401.7 ], [ 679807.5, 200406.1 ], [ 679838.4, 200428.8 ], [ 679887.7, 200506.6 ], [ 679902.1, 200516.4 ], [ 679971.1, 200515.2 ], [ 679994.8, 200524.2 ], [ 680081.8, 200599.9 ], [ 680174.2, 200646.3 ], [ 680228.7, 200692.6 ], [ 680301.1, 200689.1 ], [ 680371.6, 200728.0 ], [ 680425.6, 200724.0 ], [ 680464.6, 200764.3 ], [ 680534.7, 200759.7 ], [ 680646.0, 200807.9 ], [ 680673.3, 200813.4 ], [ 680822.1, 200812.7 ], [ 680917.6, 200789.5 ], [ 680953.2, 200792.0 ], [ 681014.3, 200826.2 ], [ 681032.8, 200824.7 ], [ 681066.6, 200801.7 ], [ 681074.6, 200806.0 ], [ 681074.1, 200824.7 ], [ 681065.5, 200834.1 ], [ 681040.1, 200846.8 ], [ 680965.2, 200862.4 ], [ 680951.4, 200870.8 ], [ 680892.6, 200947.1 ], [ 680844.1, 200992.2 ], [ 680783.6, 201026.5 ], [ 680742.3, 201031.5 ], [ 680738.6, 201044.0 ], [ 680747.5, 201054.0 ], [ 680774.0, 201053.3 ], [ 680865.4, 201031.2 ], [ 680943.8, 201028.9 ], [ 681117.2, 200968.7 ], [ 681218.0, 200987.3 ], [ 681364.2, 200994.0 ], [ 681418.5, 201014.7 ], [ 681468.827, 201051.129 ], [ 681504.7, 201067.4 ], [ 681612.1, 201093.4 ], [ 681745.5, 201137.5 ], [ 681784.5, 201160.7 ], [ 681801.5, 201191.2 ], [ 682187.4, 201108.2 ], [ 682221.1, 201109.1 ], [ 682294.4, 201143.9 ], [ 682423.2, 201163.5 ], [ 682443.5, 201173.6 ], [ 682495.4, 201220.2 ], [ 682540.9, 201294.3 ], [ 682584.2, 201345.9 ], [ 682667.6, 201407.6 ], [ 682722.4, 201412.1 ], [ 682798.2, 201379.9 ], [ 682870.2, 201482.6 ], [ 682873.3, 201498.3 ], [ 682855.6, 201546.5 ], [ 682861.5, 201571.0 ], [ 682875.7, 201577.3 ], [ 682911.3, 201577.5 ], [ 682941.4, 201568.5 ], [ 683021.0, 201522.8 ], [ 683039.8, 201525.8 ], [ 683058.3, 201562.9 ], [ 683134.0, 201641.3 ], [ 683134.7, 201665.8 ], [ 683120.4, 201722.6 ], [ 683084.5, 201778.5 ], [ 683082.7, 201794.0 ], [ 683093.1, 201798.9 ], [ 683154.4, 201770.0 ], [ 683183.1, 201765.3 ], [ 683235.0, 201848.0 ], [ 683256.5, 201854.5 ], [ 683456.0, 201830.3 ], [ 683463.7, 201836.3 ], [ 683463.2, 201854.8 ], [ 683422.0, 201924.0 ], [ 683436.3, 201942.3 ], [ 683621.8, 201951.9 ], [ 683653.3, 201948.3 ], [ 683696.4, 201928.3 ], [ 683722.7, 201930.7 ], [ 683763.0, 201951.7 ], [ 683772.0, 201966.5 ], [ 683778.5, 202045.0 ], [ 683792.0, 202063.5 ], [ 683864.0, 202058.5 ], [ 683896.3, 202103.6 ], [ 683906.1, 202104.6 ], [ 683918.1, 202104.6 ], [ 683967.6, 202081.5 ], [ 684035.4, 202086.1 ], [ 684245.9, 202075.9 ], [ 684276.0, 202068.1 ], [ 684344.5, 202086.2 ], [ 684369.3, 202077.9 ], [ 684393.2, 202048.1 ], [ 684420.4, 202040.5 ], [ 684458.2, 202050.7 ], [ 684560.9, 202045.3 ], [ 684661.3, 202056.8 ], [ 684711.7, 202071.8 ], [ 684763.5, 202108.5 ], [ 684868.5, 202115.8 ], [ 684972.1, 202094.8 ], [ 685028.7, 202124.1 ], [ 685055.3, 202125.0 ], [ 685137.4, 202102.8 ], [ 685151.6, 202111.1 ], [ 685161.1, 202136.1 ], [ 685203.4, 202146.3 ], [ 685244.9, 202166.8 ], [ 685257.9, 202197.6 ], [ 685318.5, 202238.3 ], [ 685369.1, 202294.3 ], [ 685383.3, 202293.8 ], [ 685384.0, 202276.7 ], [ 685369.7, 202212.0 ], [ 685300.5, 202192.0 ], [ 685246.7, 202084.7 ], [ 685243.5, 202076.2 ], [ 685249.7, 202061.7 ], [ 685344.7, 202059.0 ], [ 685352.7, 202053.5 ], [ 685391.0, 201994.0 ], [ 685394.5, 201961.7 ], [ 685386.0, 201944.0 ], [ 685430.2, 201896.7 ], [ 685455.7, 201879.7 ], [ 685482.1, 201828.5 ], [ 685534.3, 201769.4 ], [ 685617.1, 201759.3 ], [ 685730.1, 201716.5 ], [ 685753.8, 201713.6 ], [ 685780.4, 201699.7 ], [ 685821.7, 201663.2 ], [ 685852.8, 201654.3 ], [ 685943.7, 201677.2 ], [ 686046.5, 201776.3 ], [ 686091.1, 201838.5 ], [ 686136.1, 201867.3 ], [ 686229.7, 201950.7 ], [ 686257.0, 201967.5 ], [ 686294.2, 201964.0 ], [ 686301.1, 201958.4 ], [ 686414.1, 202002.8 ], [ 686493.2, 202043.4 ], [ 686610.7, 202066.9 ], [ 686693.9, 202097.5 ], [ 686783.1, 202145.9 ], [ 686814.7, 202182.6 ], [ 686836.4, 202239.3 ], [ 686858.4, 202262.1 ], [ 686967.3, 202289.9 ], [ 687023.9, 202319.4 ], [ 687123.0, 202348.0 ], [ 687139.6, 202362.3 ], [ 687173.9, 202418.7 ], [ 687272.4, 202536.7 ], [ 687304.4, 202586.9 ], [ 687326.1, 202741.0 ], [ 687343.4, 202789.5 ], [ 687375.5, 202845.8 ], [ 687422.9, 203027.9 ], [ 687410.4, 203091.6 ], [ 687359.4, 203176.3 ], [ 687336.4, 203195.5 ], [ 687280.6, 203222.8 ], [ 687265.0, 203235.5 ], [ 687256.6, 203253.2 ], [ 687253.9, 203296.8 ], [ 687274.9, 203349.6 ], [ 687383.4, 203521.2 ], [ 687372.9, 203572.2 ], [ 687355.7, 203601.9 ], [ 687304.6, 203657.1 ], [ 687299.2, 203670.3 ], [ 687371.5, 203762.8 ], [ 687397.2, 203776.5 ], [ 687430.7, 203779.1 ], [ 687466.6, 203774.1 ], [ 687511.8, 203756.8 ], [ 687523.8, 203734.6 ], [ 687526.1, 203648.5 ], [ 687535.1, 203643.3 ], [ 687554.1, 203682.7 ], [ 687563.3, 203741.6 ], [ 687549.1, 203799.6 ], [ 687502.8, 203869.7 ], [ 687508.6, 203876.5 ], [ 687566.5, 203871.1 ], [ 687603.4, 203901.3 ], [ 687643.3, 203973.7 ], [ 687660.2, 204017.6 ], [ 687663.0, 204046.6 ], [ 687641.1, 204076.8 ], [ 687621.2, 204084.7 ], [ 687429.5, 204041.4 ], [ 687372.3, 204038.1 ], [ 687245.5, 203965.9 ], [ 687222.0, 203944.9 ], [ 687198.2, 203935.9 ], [ 687130.4, 203928.4 ], [ 687081.9, 203939.4 ], [ 687013.6, 203930.1 ], [ 686990.1, 203937.7 ], [ 686981.0, 203949.6 ], [ 686979.5, 203965.9 ], [ 686996.2, 203995.6 ], [ 687013.5, 204006.9 ], [ 687113.8, 204041.7 ], [ 687202.7, 204135.5 ], [ 687296.2, 204181.4 ], [ 687294.5, 204187.6 ], [ 687272.5, 204188.1 ], [ 687151.8, 204181.0 ], [ 687098.6, 204163.9 ], [ 687091.5, 204173.9 ], [ 687176.4, 204211.9 ], [ 687307.8, 204291.3 ], [ 687376.0, 204340.7 ], [ 687422.0, 204357.6 ], [ 687441.5, 204373.9 ], [ 687437.5, 204380.9 ], [ 687346.9, 204355.5 ], [ 687102.1, 204302.5 ], [ 687070.0, 204275.7 ], [ 687025.2, 204270.4 ], [ 686934.6, 204239.3 ], [ 686787.0, 204210.0 ], [ 686684.5, 204172.1 ], [ 686529.5, 204152.1 ], [ 686538.2, 204164.9 ], [ 686624.2, 204214.7 ], [ 686761.2, 204321.1 ], [ 687159.1, 204599.3 ], [ 687249.6, 204649.6 ] ] } } -, -{ "type": "Feature", "properties": { "FID": 4.000000 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 680738.6, 201044.0 ], [ 680742.3, 201031.5 ], [ 680783.6, 201026.5 ], [ 680844.1, 200992.2 ], [ 680892.6, 200947.1 ], [ 680951.4, 200870.8 ], [ 680965.2, 200862.4 ], [ 681040.1, 200846.8 ], [ 681065.5, 200834.1 ], [ 681074.1, 200824.7 ], [ 681074.6, 200806.0 ], [ 681066.6, 200801.7 ], [ 681032.8, 200824.7 ], [ 681014.3, 200826.2 ], [ 680953.2, 200792.0 ], [ 680917.6, 200789.5 ], [ 680822.1, 200812.7 ], [ 680673.3, 200813.4 ], [ 680646.0, 200807.9 ], [ 680534.7, 200759.7 ], [ 680464.6, 200764.3 ], [ 680425.6, 200724.0 ], [ 680371.6, 200728.0 ], [ 680313.0, 200694.6 ] ], [ [ 680738.6, 201044.0 ], [ 680747.5, 201054.0 ], [ 680759.0, 201056.0 ], [ 680865.4, 201031.2 ], [ 680943.8, 201028.9 ], [ 681117.2, 200968.7 ], [ 681218.0, 200987.3 ], [ 681345.2, 200989.8 ], [ 681418.5, 201014.7 ], [ 681468.827, 201051.129 ], [ 681504.7, 201067.4 ], [ 681612.1, 201093.4 ], [ 681745.5, 201137.5 ], [ 681784.5, 201160.7 ], [ 681801.5, 201191.2 ] ], [ [ 680313.0, 200694.6 ], [ 680274.0, 200688.4 ], [ 680228.7, 200692.6 ], [ 680174.2, 200646.3 ], [ 680081.8, 200599.9 ], [ 679994.8, 200524.2 ], [ 679971.1, 200515.2 ], [ 679902.1, 200516.4 ], [ 679887.7, 200506.6 ], [ 679838.4, 200428.8 ], [ 679807.5, 200406.1 ], [ 679764.3, 200401.7 ], [ 679688.3, 200406.7 ], [ 679677.6, 200401.4 ], [ 679673.7, 200388.8 ], [ 679680.2, 200379.9 ], [ 679812.1, 200341.8 ], [ 679838.1, 200343.4 ], [ 679876.6, 200360.0 ], [ 679920.3, 200364.1 ], [ 680004.7, 200341.5 ], [ 680216.9, 200325.4 ], [ 680391.3, 200367.4 ], [ 680435.7, 200356.5 ], [ 680493.0, 200316.3 ], [ 680606.5, 200296.2 ], [ 680687.6, 200262.0 ], [ 680780.2, 200201.6 ], [ 680803.7, 200199.6 ], [ 680885.1, 200218.3 ], [ 680948.6, 200221.1 ], [ 681075.8, 200201.8 ], [ 681107.9, 200181.3 ], [ 681110.1, 200138.7 ], [ 681126.6, 200126.2 ], [ 681147.3, 200131.0 ], [ 681191.6, 200172.6 ], [ 681210.1, 200181.4 ], [ 681224.6, 200178.0 ], [ 681282.3, 200125.2 ], [ 681278.6, 200104.5 ], [ 681262.8, 200084.0 ], [ 681258.8, 200068.2 ], [ 681269.6, 200027.5 ], [ 681269.4, 199960.0 ], [ 681295.4, 199900.0 ], [ 681292.3, 199868.9 ], [ 681276.3, 199846.8 ], [ 681260.3, 199836.3 ], [ 681222.1, 199829.3 ], [ 681188.1, 199832.6 ], [ 681173.6, 199821.8 ], [ 681161.8, 199795.8 ], [ 681153.6, 199729.2 ], [ 681144.8, 199707.7 ], [ 681106.8, 199668.3 ], [ 681016.1, 199600.1 ], [ 680879.1, 199540.2 ], [ 680858.3, 199542.4 ], [ 680830.4, 199535.1 ], [ 680821.3, 199523.8 ], [ 680815.2, 199473.7 ], [ 680804.1, 199462.0 ], [ 680774.4, 199455.3 ], [ 680762.8, 199443.6 ], [ 680725.4, 199380.2 ], [ 680669.4, 199316.4 ], [ 680662.0, 199287.0 ], [ 680618.1, 199290.1 ], [ 680580.6, 199232.6 ], [ 680556.8, 199228.1 ], [ 680540.4, 199216.2 ], [ 680536.1, 199200.8 ], [ 680566.5, 199134.8 ], [ 680556.7, 199121.2 ], [ 680510.0, 199112.7 ], [ 680493.6, 199103.1 ], [ 680480.4, 199085.9 ], [ 680477.3, 199045.7 ], [ 680461.0, 199048.6 ], [ 680439.3, 199079.6 ], [ 680435.3, 199100.6 ], [ 680442.2, 199161.2 ], [ 680439.6, 199168.5 ], [ 680427.7, 199164.5 ], [ 680396.1, 199057.0 ], [ 680358.9, 199008.0 ], [ 680339.9, 198942.0 ], [ 680330.9, 198943.1 ], [ 680324.4, 199014.5 ], [ 680315.6, 199052.0 ], [ 680309.5, 199052.0 ], [ 680297.8, 198996.8 ], [ 680263.8, 198904.0 ], [ 680272.3, 198856.3 ], [ 680217.2, 198912.6 ], [ 680186.9, 198930.2 ], [ 680151.1, 198942.1 ], [ 680137.5, 198940.7 ], [ 680104.9, 198900.4 ], [ 680092.9, 198852.4 ], [ 680064.9, 198783.9 ], [ 680018.5, 198730.5 ], [ 679969.6, 198704.4 ], [ 679943.4, 198678.0 ], [ 679875.593, 198628.187 ], [ 679811.0, 198560.9 ], [ 679801.5, 198543.8 ], [ 679781.8, 198531.1 ], [ 679722.7, 198526.8 ], [ 679678.1, 198510.4 ], [ 679619.2, 198429.5 ], [ 679604.6, 198365.3 ], [ 679549.0, 198263.7 ], [ 679481.0, 198192.2 ], [ 679442.2, 198167.4 ], [ 679405.4, 198101.7 ], [ 679349.3, 198050.7 ], [ 679320.1, 197985.3 ], [ 679292.1, 197958.1 ], [ 679268.3, 197944.7 ], [ 679239.0, 197938.5 ], [ 679183.2, 197942.3 ], [ 679153.2, 197965.7 ], [ 679119.9, 198013.3 ], [ 679051.8, 198039.4 ], [ 679020.2, 198065.7 ], [ 678983.9, 198111.0 ], [ 678940.8, 198107.7 ], [ 678862.0, 198079.0 ], [ 678848.8, 198081.0 ], [ 678828.3, 198102.4 ], [ 678801.1, 198118.5 ], [ 678692.2, 198154.0 ], [ 678653.5, 198176.7 ], [ 678584.9, 198234.9 ], [ 678575.5, 198260.6 ], [ 678568.6, 198262.9 ], [ 678559.9, 198251.1 ], [ 678560.5, 198237.1 ], [ 678603.6, 198141.9 ], [ 678631.2, 198102.7 ], [ 678637.3, 198072.8 ], [ 678632.9, 198068.7 ], [ 678591.1, 198110.5 ], [ 678525.9, 198129.9 ], [ 678492.3, 198151.7 ], [ 678429.4, 198167.4 ], [ 678398.8, 198194.7 ], [ 678391.7, 198223.6 ], [ 678402.0, 198244.8 ], [ 678372.8, 198272.3 ], [ 678343.8, 198283.9 ], [ 678264.5, 198289.1 ], [ 678195.2, 198309.4 ], [ 678138.4, 198351.9 ], [ 678070.0, 198377.2 ], [ 677944.8, 198446.4 ], [ 677875.0, 198503.0 ], [ 677843.0, 198522.4 ], [ 677833.6, 198518.0 ], [ 677816.9, 198534.4 ], [ 677784.9, 198585.6 ], [ 677778.0, 198613.3 ], [ 677779.4, 198731.1 ], [ 677799.8, 198810.6 ], [ 677825.3, 198872.7 ], [ 677845.9, 198901.6 ], [ 677873.1, 198895.6 ], [ 677923.1, 198926.1 ], [ 677964.9, 198936.5 ], [ 677994.9, 198994.2 ], [ 678030.4, 199030.8 ], [ 678061.6, 199074.8 ], [ 678083.8, 199150.6 ], [ 678113.5, 199176.2 ], [ 678141.4, 199190.4 ], [ 678193.9, 199186.6 ], [ 678226.6, 199219.3 ], [ 678234.7, 199239.9 ], [ 678291.0, 199315.9 ], [ 678293.2, 199336.4 ], [ 678283.5, 199390.9 ], [ 678314.1, 199449.2 ], [ 678299.8, 199558.4 ], [ 678307.6, 199596.1 ], [ 678304.6, 199646.4 ], [ 678325.2, 199705.7 ], [ 678323.1, 199749.5 ], [ 678378.7, 199765.9 ], [ 678429.2, 199898.4 ], [ 678490.8, 199932.0 ], [ 678536.8, 199928.7 ], [ 678564.7, 199935.5 ], [ 678588.6, 199952.0 ], [ 678590.1, 199960.5 ], [ 678632.2, 199977.6 ], [ 678698.8, 200039.5 ], [ 678797.7, 200180.5 ], [ 678808.4, 200208.9 ], [ 678793.6, 200232.7 ], [ 678742.8, 200259.5 ], [ 678736.1, 200296.0 ], [ 678721.1, 200299.5 ], [ 678712.8, 200246.1 ], [ 678666.6, 200203.8 ], [ 678588.1, 200153.3 ], [ 678561.1, 200105.2 ], [ 678546.6, 200097.5 ], [ 678510.4, 200098.4 ], [ 678462.9, 200069.4 ], [ 678350.3, 200059.1 ], [ 678315.2, 200046.4 ], [ 678203.8, 199984.1 ], [ 678152.0, 199922.6 ], [ 678074.6, 199924.0 ], [ 678060.8, 199930.8 ], [ 678056.3, 199952.5 ], [ 678102.1, 199991.0 ], [ 678122.1, 200048.0 ], [ 678143.3, 200063.1 ], [ 678185.3, 200077.0 ], [ 678199.2, 200089.3 ], [ 678223.8, 200146.8 ], [ 678234.0, 200206.3 ], [ 678257.1, 200259.8 ], [ 678270.4, 200275.6 ], [ 678427.7, 200366.3 ], [ 678504.0, 200450.0 ], [ 678630.5, 200546.8 ], [ 678667.6, 200597.0 ], [ 678729.6, 200592.0 ], [ 678757.6, 200596.8 ], [ 678802.6, 200608.8 ], [ 678848.9, 200630.1 ], [ 678882.2, 200656.3 ], [ 678925.3, 200707.6 ], [ 678998.9, 200760.8 ], [ 679048.1, 200763.8 ], [ 679091.4, 200749.4 ], [ 679226.5, 200743.3 ], [ 679241.6, 200737.8 ], [ 679314.0, 200674.0 ], [ 679342.3, 200659.4 ], [ 679411.1, 200650.2 ], [ 679471.8, 200678.5 ], [ 679538.5, 200685.5 ], [ 679686.1, 200796.0 ], [ 679732.9, 200812.5 ], [ 679763.1, 200810.5 ], [ 679787.3, 200816.7 ], [ 679898.8, 200866.1 ], [ 679941.6, 200889.2 ], [ 679974.6, 200919.2 ], [ 680027.9, 200953.1 ], [ 680069.4, 200959.3 ], [ 680116.9, 200954.4 ], [ 680257.9, 200962.3 ], [ 680348.2, 200972.8 ], [ 680423.1, 200961.5 ], [ 680516.8, 200990.0 ], [ 680566.1, 200989.0 ], [ 680628.1, 201018.2 ], [ 680738.6, 201044.0 ] ] ] } } -, -{ "type": "Feature", "properties": { "FID": 5.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 561800.138, 205292.135 ], [ 561886.1, 205371.2 ], [ 561874.586, 205381.519 ], [ 561680.8, 205347.8 ], [ 561546.5, 205341.5 ], [ 561423.485, 205313.388 ], [ 561446.1, 205349.0 ], [ 561471.513, 205357.967 ], [ 561441.6, 205404.6 ], [ 561438.5, 205465.0 ], [ 561608.8, 205548.6 ], [ 561699.1, 205647.8 ], [ 561753.3, 205673.1 ], [ 561792.8, 205700.3 ], [ 561825.3, 205746.1 ], [ 561863.1, 205768.3 ], [ 561903.8, 205811.0 ], [ 561940.5, 205834.8 ], [ 561970.874, 205871.152 ], [ 562046.7, 205924.7 ], [ 562207.276, 206076.274 ], [ 562255.486, 206134.528 ], [ 562297.0, 206163.5 ], [ 562299.3, 206185.2 ], [ 562262.8, 206282.1 ], [ 562344.8, 206330.9 ], [ 562467.6, 206484.9 ], [ 562529.3, 206543.6 ], [ 562535.3, 206575.1 ], [ 562521.2, 206596.6 ], [ 562682.4, 206677.1 ], [ 562725.7, 206711.3 ], [ 562893.9, 206797.1 ], [ 562982.2, 206811.8 ], [ 563163.2, 206915.3 ], [ 563176.4, 206941.6 ], [ 563223.4, 206968.1 ], [ 563330.2, 207063.8 ], [ 563395.4, 207069.3 ], [ 563469.9, 207099.6 ], [ 563530.4, 207112.1 ], [ 563653.9, 207156.1 ], [ 563728.2, 207169.1 ], [ 563886.9, 207249.2 ], [ 563975.2, 207274.9 ], [ 564044.0, 207282.4 ], [ 564258.2, 207366.4 ], [ 564332.0, 207439.2 ], [ 564466.2, 207540.7 ], [ 564572.0, 207602.7 ], [ 564656.2, 207671.2 ], [ 564686.2, 207704.7 ], [ 564740.5, 207726.9 ], [ 564799.2, 207727.2 ], [ 564829.0, 207739.9 ], [ 564884.5, 207800.7 ], [ 564922.3, 207826.1 ], [ 565030.3, 207931.4 ], [ 565082.6, 207972.1 ], [ 565107.8, 207983.4 ], [ 565128.8, 207984.1 ], [ 565148.1, 207968.9 ], [ 565153.7, 207952.7 ], [ 565216.2, 208084.0 ], [ 565294.2, 208167.5 ], [ 565371.1, 208266.0 ], [ 565483.3, 208391.2 ], [ 565616.1, 208576.5 ], [ 565714.1, 208675.5 ], [ 565754.4, 208735.1 ], [ 565772.7, 208862.4 ], [ 565822.0, 209001.8 ], [ 565846.0, 209103.1 ], [ 565969.0, 209330.1 ], [ 566023.7, 209412.6 ], [ 566026.5, 209443.3 ], [ 566021.2, 209467.3 ], [ 565984.0, 209554.6 ], [ 565987.0, 209573.8 ], [ 566008.0, 209616.1 ], [ 566005.5, 209655.6 ], [ 566010.7, 209683.6 ], [ 566043.5, 209730.6 ], [ 566116.2, 209789.6 ], [ 566209.7, 209843.9 ], [ 566263.4, 209846.9 ], [ 566333.9, 209980.1 ], [ 566407.4, 210078.6 ], [ 566421.1, 210171.3 ], [ 566478.1, 210305.3 ], [ 566499.6, 210382.6 ], [ 566510.9, 210405.1 ], [ 566550.9, 210446.1 ], [ 566628.2, 210582.0 ], [ 566623.5, 210599.1 ], [ 566627.5, 210652.8 ], [ 566638.2, 210698.1 ], [ 566701.5, 210798.3 ], [ 566773.2, 210873.1 ], [ 566919.5, 210998.9 ], [ 566943.7, 211042.6 ], [ 566968.5, 211116.1 ], [ 567028.0, 211180.4 ], [ 567084.0, 211258.6 ], [ 567247.7, 211427.6 ], [ 567262.0, 211440.4 ], [ 567280.7, 211442.6 ], [ 567332.7, 211515.4 ], [ 567358.2, 211606.9 ], [ 567380.7, 211649.6 ], [ 567435.7, 211694.9 ], [ 567548.4, 211745.1 ], [ 567560.6, 211757.6 ], [ 567591.8, 211813.5 ], [ 567598.9, 211861.6 ], [ 567617.4, 211910.4 ], [ 567688.1, 212063.8 ], [ 567765.8, 212204.4 ], [ 567779.7, 212239.8 ], [ 567826.8, 212523.0 ], [ 567843.9, 212562.2 ], [ 567885.6, 212626.0 ], [ 567903.7, 212734.7 ], [ 567950.7, 212789.5 ], [ 568002.0, 212885.0 ], [ 568087.7, 212979.5 ], [ 568127.9, 213107.1 ], [ 568222.1, 213275.1 ], [ 568245.8, 213379.2 ], [ 568262.4, 213423.7 ], [ 568365.2, 213582.6 ], [ 568371.0, 213685.2 ], [ 568396.8, 213774.0 ], [ 568416.2, 213818.8 ], [ 568541.1, 213993.3 ], [ 568611.0, 214140.7 ], [ 568653.9, 214262.5 ], [ 568695.4, 214415.8 ], [ 568750.0, 214513.0 ], [ 568685.8, 214571.5 ], [ 568670.7, 214667.8 ], [ 568685.5, 214731.9 ], [ 568682.2, 214761.0 ], [ 568564.2, 215185.9 ], [ 568556.5, 215264.5 ], [ 568520.5, 215423.7 ], [ 568510.0, 215504.0 ], [ 568456.3, 215657.3 ], [ 568442.6, 215784.4 ], [ 568447.2, 215923.7 ], [ 568438.8, 216023.0 ], [ 568465.9, 216121.5 ], [ 568516.4, 216220.2 ], [ 568631.2, 216365.7 ], [ 568694.6, 216424.4 ], [ 568746.2, 216433.6 ], [ 568863.2, 216468.9 ], [ 569002.9, 216536.6 ], [ 569256.9, 216617.1 ], [ 569328.7, 216657.9 ], [ 569434.4, 216739.1 ], [ 569478.4, 216765.9 ], [ 569634.1, 216800.9 ], [ 569717.7, 216838.3 ], [ 569749.9, 216838.8 ], [ 569764.9, 216918.6 ], [ 569799.1, 216948.4 ], [ 569908.0, 216957.1 ], [ 570010.8, 216978.6 ], [ 570206.6, 217057.6 ], [ 570324.6, 217119.5 ], [ 570375.5, 217152.2 ], [ 570453.1, 217222.2 ], [ 570589.9, 217362.5 ], [ 570653.1, 217451.4 ], [ 570713.7, 217503.9 ], [ 570807.6, 217546.9 ], [ 570868.3, 217586.9 ], [ 570901.3, 217623.6 ], [ 570951.3, 217651.9 ], [ 571103.4, 217707.5 ], [ 571150.0, 217743.1 ], [ 571212.7, 217746.9 ], [ 571336.3, 217767.7 ], [ 571577.9, 217821.6 ], [ 571660.6, 217864.1 ], [ 571742.4, 217849.1 ], [ 571833.1, 217847.2 ], [ 571887.1, 217863.6 ], [ 571973.3, 217901.1 ], [ 572156.7, 217935.6 ], [ 572207.1, 217955.4 ], [ 572242.9, 217982.1 ], [ 572297.1, 217860.2 ], [ 572312.8, 217835.2 ], [ 572346.1, 217802.2 ], [ 572389.8, 217794.3 ], [ 572409.3, 217812.8 ], [ 572429.8, 217819.5 ], [ 572513.4, 217826.7 ], [ 572756.7, 217964.4 ], [ 572826.2, 218019.9 ], [ 572860.0, 218055.2 ], [ 572878.0, 218063.6 ], [ 572904.6, 218016.6 ], [ 572958.8, 218046.3 ], [ 573005.7, 218098.8 ], [ 573038.8, 218117.5 ], [ 573040.1, 218127.2 ], [ 573123.5, 218238.0 ], [ 573286.8, 218344.0 ], [ 573354.6, 218398.2 ], [ 573365.3, 218431.5 ], [ 573437.3, 218506.5 ], [ 573521.7, 218660.8 ], [ 573539.2, 218684.0 ], [ 573618.6, 218754.6 ], [ 573658.957, 218818.928 ], [ 573640.067, 218898.536 ], [ 573599.4, 218960.1 ], [ 573668.5, 218999.3 ], [ 573759.1, 219069.9 ], [ 573817.9, 219097.1 ], [ 573891.6, 219121.0 ], [ 573979.9, 219207.9 ], [ 574203.7, 219399.2 ], [ 574412.1, 219493.2 ], [ 574488.9, 219542.5 ], [ 574555.2, 219602.5 ], [ 574601.4, 219659.4 ], [ 574722.1, 219779.7 ], [ 574917.1, 220028.5 ], [ 574973.9, 220135.3 ], [ 575034.5, 220213.9 ], [ 575025.4, 220295.5 ], [ 575001.6, 220416.0 ], [ 575000.6, 220484.7 ], [ 575086.5, 220599.7 ], [ 575171.4, 220742.5 ], [ 575199.9, 220837.2 ], [ 575218.8, 220887.3 ], [ 575233.6, 220908.6 ], [ 575304.7, 220984.0 ], [ 575418.7, 221025.7 ], [ 575460.9, 221047.6 ], [ 575620.4, 221179.9 ], [ 575702.4, 221230.4 ], [ 575751.7, 221289.4 ], [ 575858.7, 221384.4 ], [ 575985.2, 221534.6 ], [ 576004.9, 221590.4 ], [ 576007.2, 221659.6 ], [ 575961.2, 221710.9 ], [ 575967.4, 221774.9 ], [ 575965.4, 221806.9 ], [ 575954.695, 221832.52 ], [ 576001.515, 221848.329 ], [ 576011.852, 221816.102 ], [ 576336.552, 221819.142 ], [ 576362.699, 221828.263 ], [ 576623.4, 222010.5 ], [ 576671.0, 222037.1 ], [ 576765.1, 222065.0 ], [ 576863.2, 222121.7 ], [ 576894.4, 222124.2 ], [ 576808.2, 222170.0 ], [ 576799.4, 222177.2 ], [ 576799.2, 222189.5 ], [ 576878.8, 222223.5 ], [ 576938.0, 222262.9 ], [ 576948.1, 222405.8 ], [ 576954.5, 222428.5 ], [ 577091.6, 222682.1 ], [ 577162.2, 222843.7 ], [ 577232.8, 222863.0 ], [ 577324.5, 222922.3 ], [ 577399.2, 222961.6 ], [ 577482.3, 223043.3 ], [ 577536.0, 223080.9 ], [ 577636.8, 223175.9 ], [ 577719.0, 223221.4 ], [ 577766.8, 223261.4 ], [ 577982.3, 223408.0 ], [ 577986.7, 223427.2 ], [ 577981.7, 223435.3 ], [ 577879.9, 223464.1 ], [ 577769.9, 223533.6 ], [ 577766.4, 223550.9 ], [ 577870.4, 223713.4 ], [ 577914.6, 223769.7 ], [ 578146.7, 223971.5 ], [ 578151.7, 223992.7 ], [ 578140.81, 224009.24 ], [ 578092.7, 224014.5 ], [ 578031.2, 224005.7 ], [ 577876.7, 223963.9 ], [ 577774.9, 223944.2 ], [ 577551.1, 223837.4 ], [ 577353.0, 223760.0 ], [ 577276.5, 223757.3 ], [ 577195.6, 223771.7 ], [ 577159.6, 223788.3 ], [ 577125.4, 223824.1 ], [ 577122.3, 223876.3 ], [ 577098.5, 223940.1 ], [ 577079.9, 224016.6 ], [ 577004.9, 224149.1 ], [ 577003.4, 224227.1 ], [ 576960.0, 224342.5 ], [ 576966.6, 224372.1 ], [ 577039.6, 224417.6 ], [ 577074.0, 224455.2 ], [ 577107.9, 224479.8 ], [ 577131.7, 224546.4 ], [ 577168.0, 224540.5 ], [ 577312.0, 224541.3 ], [ 577399.5, 224514.5 ], [ 577479.9, 224535.4 ], [ 577550.7, 224567.0 ], [ 577634.9, 224615.9 ], [ 577713.7, 224682.5 ], [ 577796.2, 224719.6 ], [ 577890.2, 224750.4 ], [ 578092.4, 224843.9 ], [ 578338.1, 224932.7 ], [ 578522.7, 224978.3 ], [ 578625.7, 225012.8 ], [ 579041.0, 225210.5 ], [ 579066.5, 225227.5 ], [ 579097.7, 225265.3 ], [ 579114.8, 225302.4 ], [ 578991.4, 225358.5 ], [ 578955.4, 225372.4 ], [ 578879.0, 225374.3 ], [ 578775.3, 225390.6 ], [ 578751.8, 225418.6 ], [ 578736.3, 225425.6 ], [ 578615.0, 225429.8 ], [ 578410.5, 225364.3 ], [ 578374.3, 225368.8 ], [ 578323.8, 225399.5 ], [ 578342.3, 225393.3 ], [ 578381.3, 225392.8 ], [ 578404.8, 225402.8 ], [ 578418.5, 225414.3 ], [ 578466.5, 225495.6 ], [ 578532.8, 225551.1 ], [ 578621.3, 225584.1 ], [ 578684.3, 225593.8 ], [ 578906.3, 225656.3 ], [ 578979.8, 225664.6 ], [ 579030.8, 225651.6 ], [ 579106.8, 225666.1 ], [ 579156.3, 225667.1 ], [ 579223.8, 225685.1 ], [ 579346.3, 225693.6 ], [ 579367.0, 225708.6 ], [ 579390.5, 225746.3 ], [ 579478.8, 225769.6 ], [ 579607.9, 225869.5 ], [ 579730.0, 225918.6 ], [ 579805.5, 225909.6 ], [ 579826.3, 225915.6 ], [ 579832.8, 225930.9 ], [ 579828.8, 225941.6 ], [ 579743.3, 225956.6 ], [ 579728.8, 225980.6 ], [ 579719.0, 226016.1 ], [ 579707.5, 226027.1 ], [ 579557.0, 226058.6 ], [ 579487.3, 226052.1 ], [ 579432.5, 226085.9 ], [ 579408.0, 226091.4 ], [ 579369.8, 226087.1 ], [ 579357.0, 226096.2 ], [ 579358.0, 226111.1 ], [ 579371.3, 226124.1 ], [ 579444.8, 226124.9 ], [ 579475.0, 226131.4 ], [ 579580.2, 226200.0 ], [ 579606.7, 226292.8 ], [ 579631.4, 226348.6 ], [ 579649.1, 226375.5 ], [ 579730.2, 226446.3 ], [ 579742.5, 226470.7 ], [ 579756.0, 226561.9 ], [ 579766.4, 226729.2 ], [ 579730.3, 226743.0 ], [ 579546.2, 226769.9 ], [ 579505.0, 226763.8 ], [ 579371.9, 226714.2 ], [ 579352.1, 226715.7 ], [ 579333.0, 226727.4 ], [ 579302.9, 226762.0 ], [ 579282.6, 226799.5 ], [ 579259.3, 226899.9 ], [ 579263.2, 226932.5 ], [ 579284.1, 226997.7 ], [ 579281.6, 227063.4 ], [ 579226.7, 227141.2 ], [ 579247.2, 227134.8 ], [ 579299.7, 227138.5 ], [ 579605.4, 227191.0 ], [ 579776.5, 227196.4 ], [ 579857.7, 227179.9 ], [ 580013.2, 227119.9 ], [ 580125.7, 227049.4 ], [ 580132.2, 227047.7 ], [ 580175.0, 227077.0 ], [ 580255.5, 227204.4 ], [ 580467.6, 227320.1 ], [ 580542.0, 227353.2 ], [ 580604.9, 227407.3 ], [ 580665.578, 227470.364 ], [ 580662.659, 227485.213 ], [ 580685.4, 227497.2 ], [ 580695.4, 227548.9 ], [ 580689.2, 227576.8 ], [ 580671.677, 227596.021 ], [ 580697.4, 227608.3 ], [ 580721.6, 227608.7 ], [ 580868.4, 227744.8 ], [ 581044.1, 227865.6 ], [ 581209.9, 227947.0 ], [ 581231.6, 227966.9 ], [ 581261.5, 228010.8 ], [ 581262.4, 228040.9 ], [ 581279.5, 228040.8 ], [ 581282.9, 228059.3 ], [ 581287.077, 228109.396 ], [ 581275.5, 228158.5 ], [ 581272.6, 228236.3 ], [ 581249.1, 228357.2 ], [ 581258.7, 228434.1 ], [ 581276.131, 228433.788 ], [ 581301.947, 228488.519 ], [ 581289.6, 228503.3 ], [ 581309.4, 228507.8 ], [ 581321.3, 228522.8 ], [ 581353.2, 228585.9 ], [ 581421.7, 228682.0 ], [ 581440.4, 228639.3 ], [ 581453.5, 228625.6 ], [ 581492.2, 228623.7 ], [ 581566.6, 228656.8 ], [ 581602.9, 228691.2 ], [ 581639.1, 228739.3 ], [ 581676.6, 228807.5 ], [ 581706.6, 228885.6 ], [ 581732.9, 228913.1 ], [ 581764.7, 228923.7 ], [ 581868.5, 228928.7 ], [ 581879.7, 228924.3 ], [ 581887.2, 228910.6 ], [ 581886.6, 228894.3 ], [ 581840.4, 228831.2 ], [ 581809.7, 228738.7 ], [ 581810.4, 228700.0 ], [ 581822.9, 228643.1 ], [ 581827.9, 228629.3 ], [ 581849.4, 228623.7 ], [ 581921.6, 228656.2 ], [ 582000.4, 228707.5 ], [ 582021.629, 228704.305 ], [ 582074.2, 228776.1 ], [ 582108.4, 228804.9 ], [ 582161.7, 228831.6 ], [ 582256.8, 228874.1 ], [ 582324.6, 228874.8 ], [ 582338.3, 228867.9 ], [ 582323.5, 228841.2 ], [ 582297.5, 228819.9 ], [ 582279.1, 228792.6 ], [ 582247.4, 228676.6 ], [ 582241.6, 228435.0 ], [ 582210.4, 228246.8 ], [ 582212.9, 228216.2 ], [ 582270.4, 228094.9 ], [ 582273.5, 228074.9 ], [ 582265.4, 227949.9 ], [ 582239.1, 227861.8 ], [ 582245.0, 227828.7 ], [ 582307.2, 227852.4 ], [ 582344.1, 227874.3 ], [ 582395.4, 227918.7 ], [ 582462.9, 228015.6 ], [ 582526.6, 228069.9 ], [ 582567.9, 228126.2 ], [ 582612.9, 228190.6 ], [ 582675.4, 228306.2 ], [ 582728.5, 228339.3 ], [ 582797.2, 228401.8 ], [ 582826.0, 228416.2 ], [ 582989.1, 228538.1 ], [ 583053.5, 228550.6 ], [ 583118.0, 228543.1 ], [ 583221.2, 228574.1 ], [ 583232.2, 228568.3 ], [ 583236.1, 228527.8 ], [ 583254.9, 228499.7 ], [ 583298.716, 228447.146 ], [ 583319.9, 228441.0 ], [ 583484.9, 228525.3 ], [ 583538.0, 228545.3 ], [ 583553.0, 228534.7 ], [ 583554.2, 228511.6 ], [ 583578.0, 228474.1 ], [ 583598.0, 228459.1 ], [ 583650.5, 228437.8 ], [ 583739.9, 228452.2 ], [ 583799.9, 228449.7 ], [ 583853.9, 228435.0 ], [ 583898.1, 228395.1 ], [ 583941.6, 228396.3 ], [ 583994.6, 228421.6 ], [ 584079.7, 228486.1 ], [ 584368.5, 228578.6 ], [ 584423.5, 228601.7 ], [ 584467.2, 228645.5 ], [ 584491.0, 228679.2 ], [ 584588.5, 228753.6 ], [ 584640.4, 228776.1 ], [ 584673.5, 228816.7 ], [ 584701.0, 228838.6 ], [ 584732.2, 228883.0 ], [ 584784.1, 228925.5 ], [ 584801.6, 228951.7 ], [ 584857.2, 228978.9 ], [ 584843.5, 229055.0 ], [ 584872.6, 229103.9 ], [ 584934.1, 229178.6 ], [ 584989.4, 229199.0 ], [ 585021.7, 229218.6 ], [ 585088.7, 229233.4 ], [ 585131.6, 229231.3 ], [ 585284.9, 229260.0 ], [ 585441.5, 229264.9 ], [ 585537.2, 229327.0 ], [ 585610.2, 229355.9 ], [ 586068.0, 229458.4 ], [ 586178.7, 229465.4 ], [ 586227.0, 229493.7 ], [ 586281.0, 229507.9 ], [ 586313.9, 229459.9 ], [ 586380.9, 229399.3 ], [ 586437.7, 229369.3 ], [ 586493.7, 229352.6 ], [ 586550.2, 229350.6 ], [ 586725.7, 229389.2 ], [ 586811.1, 229388.9 ], [ 586910.8, 229411.2 ], [ 587046.9, 229424.7 ], [ 587097.7, 229437.6 ], [ 587208.2, 229452.4 ], [ 587337.2, 229491.2 ], [ 587391.4, 229463.4 ], [ 587441.2, 229453.1 ], [ 587570.4, 229406.9 ], [ 587612.4, 229378.4 ], [ 587674.7, 229323.1 ], [ 587698.4, 229320.3 ], [ 587805.4, 229399.7 ], [ 587886.2, 229449.8 ], [ 587981.9, 229532.9 ], [ 588050.2, 229567.9 ], [ 588109.4, 229614.0 ], [ 588402.9, 229702.5 ], [ 588642.4, 229706.7 ], [ 588755.7, 229734.6 ], [ 588771.4, 229725.6 ], [ 588772.8, 229705.6 ], [ 588922.6, 229771.9 ], [ 589000.9, 229794.7 ], [ 589057.9, 229801.7 ], [ 589189.1, 229782.2 ], [ 589231.4, 229782.7 ], [ 589313.6, 229816.9 ], [ 589389.4, 229808.4 ], [ 589409.6, 229811.9 ], [ 589602.9, 229867.2 ], [ 589674.9, 229875.7 ], [ 589762.9, 229904.4 ], [ 589779.4, 229901.9 ], [ 589789.4, 229891.2 ], [ 589779.6, 229867.4 ], [ 589783.6, 229859.9 ], [ 589943.1, 229826.2 ], [ 590012.4, 229831.4 ], [ 590104.1, 229814.6 ], [ 590238.9, 229768.4 ], [ 590310.9, 229766.8 ], [ 590465.4, 229796.5 ], [ 590609.4, 229836.8 ], [ 590765.9, 229852.0 ], [ 590883.1, 229904.3 ], [ 591004.8, 229940.8 ], [ 591018.6, 229836.0 ], [ 591030.6, 229824.5 ], [ 591082.9, 229812.0 ], [ 591073.3, 229600.8 ], [ 591222.6, 229632.8 ], [ 591329.6, 229681.3 ], [ 591421.0, 229679.8 ], [ 591530.5, 229715.0 ], [ 591547.5, 229708.0 ], [ 591556.5, 229694.3 ], [ 591593.7, 229586.0 ], [ 591628.2, 229507.3 ], [ 591682.2, 229510.3 ], [ 591803.7, 229540.0 ], [ 591874.5, 229504.5 ], [ 591923.0, 229513.8 ], [ 592030.7, 229508.8 ], [ 592069.7, 229485.0 ], [ 592080.0, 229472.3 ], [ 592084.3, 229452.4 ], [ 592157.2, 229554.8 ], [ 592179.0, 229630.5 ], [ 592195.7, 229789.3 ], [ 592182.7, 229845.0 ], [ 592157.5, 229887.0 ], [ 592229.5, 229930.5 ], [ 592604.7, 229968.5 ], [ 592721.7, 229968.3 ], [ 593089.4, 230035.3 ], [ 593262.2, 230103.9 ], [ 593312.9, 230111.4 ], [ 593355.7, 230109.4 ], [ 593559.5, 230142.2 ], [ 593602.2, 230172.7 ], [ 593659.4, 230230.1 ], [ 593695.2, 230284.6 ], [ 593748.3, 230320.7 ], [ 593850.0, 230342.2 ], [ 594024.6, 230417.2 ], [ 594049.0, 230375.4 ], [ 594122.9, 230319.0 ], [ 594328.5, 230230.9 ], [ 594384.0, 230192.8 ], [ 594414.5, 230205.6 ], [ 594440.8, 230228.2 ], [ 594467.5, 230274.7 ], [ 594502.7, 230290.6 ], [ 594676.2, 230297.0 ], [ 594835.3, 230292.3 ], [ 594886.3, 230300.3 ], [ 594949.9, 230334.7 ], [ 595288.5, 230626.6 ], [ 595474.0, 230690.3 ], [ 595671.5, 230780.6 ], [ 595826.9, 230812.4 ], [ 595859.5, 230824.5 ], [ 596184.0, 230994.1 ], [ 596225.5, 231011.6 ], [ 596278.4, 231024.3 ], [ 596406.8, 231081.3 ], [ 596511.7, 231157.0 ], [ 596568.2, 231186.7 ], [ 596713.2, 231238.1 ], [ 596765.3, 231246.6 ], [ 596807.1, 231244.4 ], [ 596813.3, 231260.0 ], [ 596826.8, 231271.5 ], [ 596915.5, 231316.8 ], [ 596959.5, 231346.5 ], [ 596993.3, 231377.5 ], [ 597026.2, 231427.1 ], [ 597122.2, 231477.0 ], [ 597232.7, 231513.6 ], [ 597307.4, 231558.9 ], [ 597349.1, 231598.1 ], [ 597413.1, 231688.1 ], [ 597422.2, 231709.7 ], [ 597455.7, 231734.0 ], [ 597465.6, 231727.1 ], [ 597479.8, 231733.8 ], [ 597522.3, 231736.4 ], [ 597557.7, 231772.3 ], [ 597616.6, 231787.0 ], [ 597673.1, 231832.9 ], [ 597743.9, 231876.1 ], [ 597807.0, 231897.3 ], [ 597771.8, 231826.3 ], [ 597775.5, 231809.3 ], [ 597784.8, 231801.6 ], [ 597810.6, 231797.6 ], [ 597904.3, 231820.7 ], [ 597954.7, 231821.0 ], [ 597994.5, 231829.1 ], [ 598013.2, 231835.5 ], [ 598058.5, 231867.8 ], [ 598098.3, 231877.8 ], [ 598113.0, 231877.8 ], [ 598117.4, 231868.3 ], [ 598134.2, 231859.8 ], [ 598264.4, 231868.5 ], [ 598431.4, 231956.3 ], [ 598617.7, 231959.8 ], [ 598718.2, 231998.3 ], [ 598779.2, 231990.0 ], [ 598851.1, 232019.9 ], [ 598906.2, 232057.5 ], [ 598930.4, 232067.3 ], [ 598995.4, 232061.0 ], [ 599008.7, 232082.0 ], [ 599019.2, 232117.8 ], [ 599100.5, 232180.0 ], [ 599106.3, 232190.8 ], [ 599099.6, 232213.8 ], [ 599068.7, 232249.3 ], [ 599020.2, 232281.8 ], [ 599020.7, 232290.8 ], [ 599100.2, 232282.1 ], [ 599306.0, 232229.8 ], [ 599458.9, 232252.3 ], [ 599486.2, 232240.0 ], [ 599502.4, 232239.5 ], [ 599591.8, 232275.2 ], [ 599757.0, 232357.9 ], [ 600065.6, 232535.2 ], [ 600125.2, 232555.5 ], [ 600146.7, 232549.5 ], [ 600176.3, 232492.5 ], [ 600218.7, 232459.6 ], [ 600426.3, 232403.5 ], [ 600487.9, 232402.5 ], [ 600586.4, 232363.4 ], [ 600737.5, 232531.7 ], [ 600899.4, 232650.8 ], [ 600944.9, 232669.5 ], [ 600995.2, 232679.5 ], [ 601098.5, 232671.6 ], [ 601189.1, 232622.7 ], [ 601204.2, 232610.6 ], [ 601223.9, 232554.5 ], [ 601265.9, 232536.5 ], [ 601338.4, 232467.0 ], [ 601338.5, 232483.9 ], [ 601313.5, 232551.4 ], [ 601314.0, 232565.7 ], [ 601322.0, 232569.9 ], [ 601336.5, 232564.9 ], [ 601363.1, 232536.2 ], [ 601455.9, 232484.3 ], [ 601486.0, 232483.6 ], [ 601519.0, 232471.3 ], [ 601526.0, 232474.9 ], [ 601523.8, 232486.4 ], [ 601488.8, 232508.9 ], [ 601468.2, 232560.5 ], [ 601607.8, 232522.3 ], [ 601662.9, 232517.9 ], [ 601737.8, 232537.3 ], [ 601781.8, 232564.8 ], [ 601840.8, 232628.4 ], [ 601871.2, 232639.9 ], [ 601938.2, 232643.2 ], [ 601996.9, 232638.4 ], [ 602198.3, 232703.9 ], [ 602241.3, 232709.7 ], [ 602284.5, 232703.7 ], [ 602325.0, 232711.7 ], [ 602353.0, 232720.9 ], [ 602393.8, 232754.2 ], [ 602461.047, 232777.599 ], [ 602540.428, 232788.169 ], [ 602587.5, 232787.2 ], [ 602639.1, 232803.2 ], [ 602702.3, 232788.4 ], [ 602748.3, 232792.2 ], [ 602768.8, 232803.2 ], [ 602807.8, 232860.4 ], [ 602903.8, 232895.2 ], [ 603043.8, 232895.7 ], [ 603285.1, 232955.9 ], [ 603380.8, 232967.7 ], [ 603433.777, 232982.088 ], [ 603499.226, 233029.852 ], [ 603636.502, 233084.535 ], [ 603645.046, 233093.079 ], [ 603630.237, 233235.481 ], [ 603634.907, 233245.406 ], [ 603712.3, 233208.4 ], [ 603798.1, 233193.6 ], [ 603847.3, 233195.4 ], [ 603909.8, 233251.9 ], [ 604023.3, 233276.9 ], [ 604297.6, 233356.4 ], [ 604375.3, 233406.9 ], [ 604478.6, 233461.6 ], [ 604865.8, 233581.6 ], [ 605157.812, 233689.595 ], [ 605254.1, 233742.3 ], [ 605565.1, 233871.4 ], [ 605783.1, 233970.4 ], [ 605938.3, 234002.3 ], [ 605976.1, 233991.3 ], [ 606049.6, 233998.8 ], [ 606109.2, 233973.9 ], [ 606155.5, 233990.2 ], [ 606190.2, 234010.2 ], [ 606234.7, 234050.3 ], [ 606277.7, 234109.1 ], [ 606277.0, 234140.8 ], [ 606299.0, 234153.2 ], [ 606346.2, 234214.4 ], [ 606426.0, 234265.8 ], [ 606480.7, 234330.3 ], [ 606585.0, 234424.2 ], [ 606650.7, 234461.5 ], [ 606683.0, 234472.3 ], [ 606696.5, 234492.8 ], [ 606736.6, 234520.5 ], [ 606829.3, 234560.5 ], [ 606894.8, 234598.7 ], [ 606971.1, 234659.1 ], [ 607067.2, 234707.6 ], [ 607134.2, 234751.7 ], [ 607202.2, 234832.7 ], [ 607249.5, 234866.3 ], [ 607635.4, 235032.1 ], [ 607666.3, 235012.6 ], [ 607690.8, 234981.4 ], [ 607712.1, 234908.6 ], [ 607712.3, 234877.4 ], [ 607701.1, 234826.1 ], [ 607708.6, 234794.9 ], [ 607698.1, 234784.1 ], [ 607650.3, 234775.1 ], [ 607628.0, 234756.9 ], [ 607620.8, 234735.1 ], [ 607628.8, 234688.6 ], [ 607602.8, 234638.9 ], [ 607607.6, 234626.1 ], [ 607621.6, 234625.1 ], [ 607673.3, 234683.9 ], [ 607692.6, 234690.1 ], [ 607702.8, 234682.4 ], [ 607702.1, 234654.6 ], [ 607662.6, 234576.6 ], [ 607663.8, 234559.9 ], [ 607674.1, 234550.9 ], [ 607772.6, 234592.0 ], [ 607811.8, 234630.6 ], [ 607966.1, 234601.1 ], [ 607994.8, 234584.6 ], [ 608016.3, 234582.4 ], [ 608076.6, 234591.4 ], [ 608160.8, 234624.6 ], [ 608223.1, 234679.9 ], [ 608286.1, 234668.9 ], [ 608406.6, 234687.1 ], [ 608498.8, 234672.9 ], [ 608508.1, 234683.4 ], [ 608494.8, 234727.6 ], [ 608525.8, 234752.1 ], [ 608596.1, 234778.6 ], [ 608614.3, 234775.6 ], [ 608650.8, 234735.4 ], [ 608754.1, 234701.9 ], [ 608760.3, 234684.9 ], [ 608749.8, 234657.4 ], [ 608753.3, 234646.1 ], [ 608818.8, 234622.6 ], [ 608835.3, 234563.9 ], [ 608882.1, 234517.4 ], [ 608956.8, 234499.6 ], [ 608996.6, 234478.4 ], [ 609010.1, 234459.9 ], [ 609019.3, 234413.9 ], [ 609058.8, 234379.1 ], [ 609071.8, 234380.9 ], [ 609093.6, 234400.1 ], [ 609171.3, 234434.6 ], [ 609208.1, 234533.6 ], [ 609288.1, 234589.9 ], [ 609332.1, 234599.6 ], [ 609409.3, 234587.9 ], [ 609429.4, 234601.6 ], [ 609442.2, 234572.6 ], [ 609412.5, 234548.6 ], [ 609349.5, 234529.4 ], [ 609314.2, 234502.1 ], [ 609297.7, 234475.1 ], [ 609270.7, 234383.1 ], [ 609201.5, 234325.1 ], [ 609195.2, 234303.9 ], [ 609204.2, 234294.4 ], [ 609243.2, 234319.9 ], [ 609292.5, 234330.6 ], [ 609357.2, 234359.9 ], [ 609366.9, 234355.2 ], [ 609363.0, 234339.6 ], [ 609275.2, 234268.9 ], [ 609218.0, 234187.9 ], [ 609137.0, 234140.1 ], [ 609128.2, 234126.9 ], [ 609075.6, 234101.9 ], [ 609053.5, 234037.5 ], [ 609032.0, 233995.7 ], [ 608990.7, 233963.4 ], [ 608964.0, 233929.9 ], [ 608929.6, 233911.0 ], [ 608875.2, 233825.6 ], [ 608872.0, 233783.1 ], [ 608911.0, 233725.6 ], [ 608932.0, 233681.9 ], [ 608996.5, 233586.9 ], [ 609031.9, 233557.2 ], [ 609047.5, 233552.4 ], [ 609063.3, 233515.4 ], [ 609072.6, 233393.1 ], [ 609103.7, 233294.1 ], [ 609096.5, 233229.1 ], [ 609080.2, 233183.1 ], [ 609038.5, 233155.4 ], [ 608936.2, 233128.4 ], [ 608906.7, 233113.4 ], [ 608880.5, 233042.9 ], [ 608781.2, 232957.9 ], [ 608738.2, 232907.6 ], [ 608727.0, 232879.1 ], [ 608718.0, 232822.4 ], [ 608693.0, 232804.4 ], [ 608638.5, 232796.1 ], [ 608607.5, 232780.4 ], [ 608535.0, 232699.4 ], [ 608487.7, 232635.4 ], [ 608429.5, 232530.9 ], [ 608404.0, 232500.1 ], [ 608364.7, 232464.4 ], [ 608252.5, 232393.1 ], [ 608099.7, 232258.6 ], [ 608016.7, 232214.6 ], [ 607867.0, 232102.4 ], [ 607803.7, 232023.1 ], [ 607737.2, 231960.6 ], [ 607671.5, 231872.5 ], [ 607717.2, 231784.4 ], [ 607722.5, 231637.1 ], [ 607731.0, 231587.9 ], [ 607781.0, 231489.9 ], [ 607809.0, 231376.6 ], [ 607842.2, 231286.9 ], [ 607885.5, 231230.9 ], [ 607942.302, 231206.919 ], [ 607958.2, 231191.1 ], [ 608074.6, 231055.4 ], [ 608119.1, 230965.9 ], [ 608122.9, 230930.1 ], [ 608118.6, 230892.4 ], [ 608068.4, 230704.1 ], [ 608043.395, 230680.014 ], [ 607993.614, 230647.848 ], [ 607984.5, 230631.6 ], [ 607977.1, 230581.4 ], [ 607938.9, 230525.6 ], [ 607943.068, 230440.303 ], [ 607938.6, 230426.6 ], [ 607864.4, 230322.1 ], [ 607869.9, 230302.9 ], [ 607915.2, 230277.3 ], [ 607949.961, 230248.075 ], [ 607938.473, 230141.621 ], [ 607947.0, 230134.4 ], [ 607921.991, 230028.056 ], [ 607917.3, 229965.6 ], [ 607940.0, 229893.1 ], [ 607944.3, 229859.6 ], [ 607895.5, 229614.9 ], [ 607890.3, 229409.9 ], [ 607827.0, 229254.2 ], [ 607908.1, 229212.1 ], [ 607936.6, 229186.6 ], [ 608041.9, 229033.6 ], [ 608172.2, 228875.8 ], [ 608272.0, 228741.6 ], [ 608284.0, 228734.5 ], [ 608380.9, 228623.5 ], [ 608363.5, 228587.0 ], [ 608343.5, 228566.0 ], [ 608300.2, 228538.8 ], [ 608250.1, 228518.9 ], [ 607956.4, 228517.9 ], [ 607604.5, 228465.7 ], [ 607642.6, 228334.5 ], [ 607812.2, 228187.2 ], [ 607853.0, 228176.8 ] ] } } -, -{ "type": "Feature", "properties": { "FID": 6.000000 }, "geometry": { "type": "LineString", "coordinates": [ [ 699053.0, 220459.5 ], [ 699032.1, 220464.2 ], [ 698991.524, 220489.924 ], [ 698983.8, 220485.123 ], [ 698974.5, 220488.7 ], [ 698973.576, 220501.43 ], [ 698844.5, 220595.3 ], [ 698618.0, 220775.9 ], [ 698504.5, 220819.5 ], [ 698375.4, 220825.8 ], [ 698237.7, 220862.9 ], [ 697985.1, 221015.5 ], [ 697960.8, 221079.0 ], [ 697879.4, 221230.7 ], [ 697846.4, 221312.8 ], [ 697845.6, 221335.6 ], [ 697820.6, 221378.7 ], [ 697816.1, 221405.7 ], [ 697826.6, 221409.0 ], [ 697853.2, 221381.6 ], [ 697878.4, 221372.5 ], [ 697935.7, 221380.9 ], [ 697939.4, 221388.9 ], [ 697890.1, 221398.8 ], [ 697860.9, 221425.4 ], [ 697850.4, 221456.7 ], [ 697842.1, 221522.7 ], [ 697834.0, 221530.1 ], [ 697815.9, 221533.8 ], [ 697782.6, 221499.9 ], [ 697772.9, 221498.4 ], [ 697765.6, 221501.4 ], [ 697753.4, 221533.2 ], [ 697735.6, 221554.7 ], [ 697727.9, 221552.2 ], [ 697705.4, 221521.4 ], [ 697665.6, 221519.9 ], [ 697657.0, 221512.2 ], [ 697651.0, 221471.5 ], [ 697635.0, 221430.4 ], [ 697631.4, 221380.2 ], [ 697587.8, 221382.4 ], [ 697511.4, 221410.1 ], [ 697299.1, 221396.1 ], [ 697223.4, 221403.3 ], [ 697207.2, 221395.4 ], [ 697155.6, 221336.4 ], [ 697003.0, 221328.8 ], [ 696911.6, 221298.9 ], [ 696829.1, 221294.1 ], [ 696771.1, 221259.2 ], [ 696719.5, 221210.6 ], [ 696698.5, 221198.2 ], [ 696660.8, 221199.7 ], [ 696516.1, 221233.3 ], [ 696400.5, 221197.7 ], [ 696229.1, 221115.3 ], [ 696206.9, 221095.6 ], [ 696124.6, 220951.5 ], [ 696094.9, 220918.2 ], [ 696021.4, 220914.1 ], [ 695930.6, 221026.1 ], [ 695907.3, 221041.1 ], [ 695892.1, 221039.6 ], [ 695562.1, 220872.0 ], [ 695520.9, 220880.2 ], [ 695488.3, 220846.2 ], [ 695410.6, 220799.4 ], [ 695387.0, 220845.9 ], [ 695414.5, 220867.2 ], [ 695424.5, 220883.4 ], [ 695425.8, 220913.4 ], [ 695345.2, 221090.5 ], [ 695233.7, 221136.3 ], [ 694999.4, 221215.9 ], [ 694898.3, 221244.6 ], [ 694865.0, 221244.8 ], [ 694714.2, 221310.8 ], [ 694696.4, 221312.0 ], [ 694603.9, 221286.9 ], [ 694546.7, 221285.4 ], [ 694343.3, 221115.6 ], [ 694321.8, 221093.0 ], [ 694304.9, 221045.9 ], [ 694271.2, 221018.9 ], [ 694202.6, 220968.6 ], [ 693984.7, 220847.8 ], [ 693948.5, 220805.3 ], [ 693880.3, 220760.7 ], [ 693823.6, 220696.4 ], [ 693738.7, 220569.9 ], [ 693696.4, 220525.6 ], [ 693653.3, 220489.1 ], [ 693557.2, 220439.0 ], [ 693513.0, 220404.1 ], [ 693440.7, 220342.2 ], [ 693331.3, 220221.5 ], [ 693311.9, 220182.9 ], [ 693303.9, 220090.2 ], [ 693287.2, 220032.8 ], [ 693243.4, 219926.2 ], [ 693182.7, 219879.3 ], [ 693200.9, 219777.1 ], [ 693160.2, 219715.8 ], [ 693070.0, 219548.7 ], [ 693031.9, 219533.5 ], [ 692947.4, 219524.0 ], [ 692879.1, 219493.3 ], [ 692814.9, 219487.9 ], [ 692798.9, 219481.5 ], [ 692768.7, 219454.7 ], [ 692722.6, 219373.4 ], [ 692694.4, 219345.0 ], [ 692604.2, 219316.1 ], [ 692527.7, 219280.0 ], [ 692482.7, 219245.5 ], [ 692430.9, 219242.4 ], [ 692421.8, 219343.3 ], [ 692424.4, 219421.4 ], [ 692446.4, 219452.5 ], [ 692456.2, 219515.7 ], [ 692440.3, 219591.3 ], [ 692442.4, 219673.5 ], [ 692415.2, 219745.3 ], [ 692416.2, 219762.6 ], [ 692403.4, 219781.6 ], [ 692377.1, 219925.2 ], [ 692366.5, 219943.3 ], [ 692339.9, 219955.8 ], [ 692311.9, 219957.1 ], [ 692208.7, 219952.9 ], [ 692063.4, 219928.9 ], [ 692044.4, 219936.1 ], [ 692012.1, 219936.6 ], [ 691924.3, 219895.5 ], [ 691879.2, 219888.1 ], [ 691854.9, 219892.6 ], [ 691783.5, 219922.7 ], [ 691660.0, 219942.1 ], [ 691559.6, 219980.0 ], [ 691536.2, 219995.8 ], [ 691506.4, 220031.1 ], [ 691486.4, 220076.6 ], [ 691483.7, 220096.1 ], [ 691494.4, 220114.1 ], [ 691553.3, 220125.7 ], [ 691576.0, 220137.3 ], [ 691613.5, 220169.6 ], [ 691648.0, 220182.1 ], [ 691698.2, 220214.6 ], [ 691787.2, 220463.4 ], [ 691785.4, 220559.8 ], [ 691798.9, 220577.2 ], [ 691858.5, 220586.7 ], [ 691858.0, 220595.4 ], [ 691834.3, 220614.5 ], [ 691732.5, 220655.8 ], [ 691713.3, 220672.9 ], [ 691677.4, 220727.6 ], [ 691674.7, 220771.2 ], [ 691723.4, 220992.4 ], [ 691724.0, 221042.9 ], [ 691712.6, 221124.0 ], [ 691534.4, 221090.2 ], [ 691457.0, 221087.2 ], [ 691429.7, 221274.1 ], [ 691385.2, 221353.4 ], [ 691310.7, 221449.0 ], [ 691259.7, 221489.0 ], [ 691139.1, 221538.1 ], [ 691044.3, 221617.3 ], [ 690972.3, 221687.4 ], [ 690954.3, 221721.5 ], [ 690952.8, 221735.3 ], [ 690960.0, 221751.5 ], [ 690972.3, 221762.0 ], [ 691035.8, 221788.7 ], [ 691042.2, 221798.1 ], [ 691036.0, 221814.8 ], [ 691020.8, 221820.8 ], [ 690943.4, 221801.2 ], [ 690819.3, 221820.8 ], [ 690755.8, 221864.6 ], [ 690730.0, 221899.3 ], [ 690694.2, 221971.5 ], [ 690667.0, 222007.5 ], [ 690639.8, 222028.5 ], [ 690570.0, 222056.5 ], [ 690530.4, 222062.0 ], [ 690367.9, 222039.0 ], [ 690304.9, 222049.5 ], [ 690299.9, 222067.0 ], [ 690310.9, 222101.5 ], [ 690308.5, 222121.9 ], [ 690274.5, 222170.6 ], [ 690271.6, 222193.1 ], [ 690287.9, 222250.8 ], [ 690328.3, 222342.5 ], [ 690352.2, 222416.7 ], [ 690388.1, 222447.8 ], [ 690415.6, 222460.8 ], [ 690422.7, 222472.5 ], [ 690401.4, 222505.6 ], [ 690382.6, 222505.1 ], [ 690333.7, 222474.1 ], [ 690277.2, 222453.0 ], [ 690211.6, 222460.8 ], [ 690182.7, 222503.0 ], [ 690168.6, 222509.1 ], [ 690161.4, 222504.6 ], [ 690148.2, 222461.0 ], [ 690137.5, 222445.3 ], [ 690083.9, 222413.7 ], [ 690057.6, 222421.6 ], [ 690040.9, 222417.6 ], [ 690019.9, 222358.6 ], [ 689834.6, 222258.7 ], [ 689791.3, 222227.7 ], [ 689732.4, 222171.3 ], [ 689395.1, 222152.1 ], [ 689379.1, 222156.6 ], [ 689333.6, 222202.1 ], [ 689316.1, 222210.1 ], [ 689286.5, 222206.7 ], [ 689211.9, 222182.8 ], [ 689178.6, 222211.3 ], [ 689165.1, 222212.1 ], [ 689029.3, 222167.8 ], [ 688858.9, 222145.7 ], [ 688796.6, 222090.1 ], [ 688777.9, 222098.6 ], [ 688740.6, 222132.1 ], [ 688727.6, 222133.8 ], [ 688714.5, 222060.8 ], [ 688686.4, 222009.9 ], [ 688702.9, 222097.4 ], [ 688702.4, 222108.4 ], [ 688696.2, 222111.3 ], [ 688620.9, 222089.8 ], [ 688576.4, 222060.7 ], [ 688508.8, 222062.8 ], [ 688396.5, 222040.4 ], [ 688193.1, 222064.2 ], [ 688116.6, 222092.4 ], [ 688098.0, 222110.1 ], [ 688093.3, 222145.4 ], [ 688125.6, 222218.8 ], [ 688129.4, 222245.4 ], [ 688072.4, 222343.1 ], [ 688076.8, 222371.6 ], [ 688071.2, 222383.6 ], [ 688020.9, 222455.1 ], [ 687936.0, 222531.8 ], [ 687900.6, 222555.0 ], [ 687869.8, 222566.1 ], [ 687779.0, 222568.6 ], [ 687716.2, 222556.2 ], [ 687682.0, 222544.2 ], [ 687710.4, 222470.5 ], [ 687780.5, 222416.8 ], [ 687832.0, 222333.0 ], [ 687891.7, 222284.1 ], [ 687902.5, 222260.6 ], [ 687897.7, 222223.3 ], [ 687863.2, 222200.1 ], [ 687840.5, 222166.1 ], [ 687806.7, 222133.1 ], [ 687805.1, 222124.3 ], [ 687814.7, 222070.5 ], [ 687797.4, 222032.1 ], [ 687795.8, 221961.9 ], [ 687796.8, 221936.4 ], [ 687828.2, 221812.8 ], [ 687818.0, 221793.8 ], [ 687778.7, 221766.0 ], [ 687756.2, 221761.5 ], [ 687623.7, 221754.3 ], [ 687514.7, 221763.5 ], [ 687411.164, 221743.0 ], [ 687380.1, 221744.9 ], [ 687329.9, 221771.1 ], [ 687247.6, 221761.8 ], [ 687211.0, 221771.6 ], [ 687184.3, 221761.8 ], [ 687116.3, 221757.9 ], [ 687014.7, 221805.9 ], [ 686969.6, 221815.8 ], [ 686948.7, 221863.9 ], [ 686941.0, 221866.5 ], [ 686922.3, 221859.6 ], [ 686912.8, 221827.3 ], [ 686904.9, 221820.0 ], [ 686841.4, 221799.5 ], [ 686787.2, 221727.6 ], [ 686758.7, 221713.6 ], [ 686715.2, 221707.5 ], [ 686638.9, 221726.8 ], [ 686570.5, 221730.1 ], [ 686431.1, 221719.0 ], [ 686340.0, 221735.2 ], [ 686333.4, 221725.6 ], [ 686376.1, 221693.0 ], [ 686644.8, 221586.7 ], [ 686655.0, 221575.4 ], [ 686657.3, 221552.4 ], [ 686647.135, 221459.556 ], [ 686555.1, 221480.6 ], [ 686479.2, 221515.5 ], [ 686364.9, 221546.1 ], [ 686134.3, 221640.8 ], [ 685990.1, 221785.7 ], [ 685903.1, 221856.7 ], [ 685844.9, 221948.7 ], [ 685771.4, 221986.0 ], [ 685746.9, 222025.7 ], [ 685693.6, 222057.5 ], [ 685638.9, 222121.0 ], [ 685615.9, 222165.3 ], [ 685616.4, 222181.0 ], [ 685646.2, 222247.6 ], [ 685647.4, 222281.0 ], [ 685562.0, 222445.1 ], [ 685523.7, 222473.7 ], [ 685490.8, 222486.4 ], [ 685385.4, 222512.8 ], [ 685360.1, 222537.5 ], [ 685350.1, 222576.1 ], [ 685360.4, 222654.6 ], [ 685356.7, 222689.4 ], [ 685317.7, 222868.2 ], [ 685257.9, 223043.0 ], [ 685228.3, 223111.1 ], [ 685099.6, 223212.9 ], [ 685082.4, 223242.1 ], [ 685076.4, 223267.1 ], [ 685080.4, 223289.6 ], [ 685107.4, 223330.4 ], [ 685094.5, 223532.3 ], [ 685082.1, 223538.3 ], [ 685080.3, 223662.5 ], [ 685094.6, 223724.1 ], [ 685157.8, 223825.9 ], [ 685161.8, 223852.3 ], [ 685152.6, 223907.3 ], [ 685115.8, 223998.4 ], [ 685111.5, 224098.5 ], [ 685030.6, 224189.7 ], [ 685022.2, 224225.7 ], [ 685023.5, 224257.7 ], [ 685050.8, 224348.9 ], [ 685049.1, 224377.2 ], [ 685032.9, 224414.1 ], [ 684984.6, 224473.7 ], [ 684971.0, 224604.2 ], [ 684991.3, 224723.2 ], [ 685038.0, 224776.0 ], [ 685047.8, 224803.0 ], [ 685055.3, 224881.0 ], [ 685090.877, 224975.5 ], [ 685074.642, 225084.94 ], [ 685058.2, 225128.5 ], [ 685058.7, 225183.6 ], [ 685025.9, 225272.6 ], [ 685032.0, 225291.0 ], [ 685078.1, 225344.0 ], [ 685077.4, 225389.4 ], [ 685026.9, 225509.0 ], [ 685021.1, 225534.7 ], [ 685023.5, 225577.2 ], [ 685012.2, 225610.8 ], [ 684973.0, 225656.8 ], [ 684946.9, 225702.5 ], [ 684932.0, 225743.6 ], [ 684921.3, 225833.6 ], [ 684911.8, 225858.8 ], [ 684885.0, 225886.4 ], [ 684834.9, 225906.8 ], [ 684721.3, 225920.8 ], [ 684707.5, 225943.8 ], [ 684692.8, 226005.6 ], [ 684643.1, 226000.7 ], [ 684604.1, 226062.9 ], [ 684580.9, 226117.4 ], [ 684585.284, 226133.412 ], [ 684616.8, 226157.1 ], [ 684618.2, 226166.9 ], [ 684594.2, 226236.9 ], [ 684631.219, 226299.739 ], [ 684644.6, 226369.6 ], [ 684685.1, 226411.7 ], [ 684691.3, 226443.7 ], [ 684723.7, 226477.6 ], [ 684741.3, 226512.4 ], [ 684744.4, 226569.7 ], [ 684759.9, 226603.9 ], [ 684768.7, 226703.4 ], [ 684805.6, 226763.8 ], [ 684805.2, 226797.2 ], [ 684787.1, 226853.4 ], [ 684792.9, 226905.9 ], [ 684803.8, 226960.7 ], [ 684843.6, 227027.6 ], [ 684810.8, 227068.3 ], [ 684843.8, 227391.1 ], [ 684847.6, 227549.6 ], [ 684823.9, 227605.2 ], [ 684783.4, 227643.9 ], [ 684772.0, 227664.7 ], [ 684779.2, 227748.4 ], [ 684817.5, 227831.2 ], [ 684818.3, 227853.2 ], [ 684789.1, 227886.9 ], [ 684696.5, 227927.3 ], [ 684540.8, 227960.3 ], [ 684366.8, 227959.7 ], [ 684329.3, 227945.7 ], [ 684304.8, 227926.3 ], [ 684242.3, 227815.0 ], [ 684185.4, 227749.3 ], [ 684127.7, 227604.7 ], [ 684074.4, 227567.1 ], [ 684032.1, 227527.0 ], [ 683981.9, 227514.9 ], [ 683939.1, 227494.8 ], [ 683827.8, 227505.6 ], [ 683774.0, 227535.4 ], [ 683641.3, 227567.4 ], [ 683547.2, 227602.9 ], [ 683517.0, 227621.0 ], [ 683456.5, 227701.0 ], [ 683361.7, 227892.7 ], [ 683344.5, 227916.5 ], [ 683344.1, 227934.7 ], [ 683240.1, 228226.1 ], [ 683232.6, 228431.3 ], [ 683185.9, 228518.7 ], [ 683157.4, 228547.3 ], [ 683136.523, 228558.787 ], [ 683159.4, 228604.7 ], [ 683191.9, 228646.2 ], [ 683223.4, 228663.0 ], [ 683293.7, 228670.3 ], [ 683324.4, 228696.6 ], [ 683342.1, 228735.4 ], [ 683360.4, 228754.3 ], [ 683431.6, 228774.4 ], [ 683465.3, 228790.9 ], [ 683565.7, 228879.5 ], [ 683637.2, 228969.9 ], [ 683661.2, 228979.9 ], [ 683718.0, 228984.1 ], [ 683763.2, 229008.4 ], [ 683825.2, 229013.7 ], [ 683867.4, 229036.2 ], [ 683933.9, 229137.0 ], [ 683985.7, 229169.4 ], [ 684007.0, 229175.4 ], [ 684033.0, 229223.8 ], [ 684074.3, 229273.8 ], [ 684140.3, 229344.4 ], [ 684262.2, 229456.7 ], [ 684290.5, 229473.2 ], [ 684352.2, 229483.4 ], [ 684546.8, 229473.3 ], [ 684612.0, 229491.6 ], [ 684649.3, 229522.6 ], [ 684662.7, 229516.9 ], [ 684681.8, 229519.9 ], [ 684776.8, 229561.9 ], [ 684808.0, 229567.2 ], [ 684797.5, 229608.2 ], [ 684818.5, 229611.7 ], [ 684833.8, 229625.9 ], [ 684825.7, 229627.5 ], [ 684775.2, 229691.1 ], [ 684701.5, 229726.8 ], [ 684678.7, 229764.8 ], [ 684650.4, 229833.6 ], [ 684628.9, 229982.9 ], [ 684630.9, 230026.8 ], [ 684637.9, 230049.3 ], [ 684681.1, 230119.3 ], [ 684683.5, 230148.7 ], [ 684700.2, 230182.4 ], [ 684696.1, 230210.8 ], [ 684554.6, 230294.8 ], [ 684490.6, 230284.3 ], [ 684233.1, 230365.5 ], [ 684200.2, 230364.0 ], [ 684152.9, 230342.6 ], [ 684033.9, 230316.9 ], [ 683994.6, 230288.6 ], [ 683786.3, 230265.0 ], [ 683717.7, 230281.8 ], [ 683661.3, 230280.9 ], [ 683574.058, 230262.257 ], [ 683462.765, 230251.413 ], [ 683393.706, 230266.538 ], [ 683353.755, 230268.25 ], [ 683340.913, 230263.684 ], [ 683270.2, 230201.8 ], [ 683254.2, 230197.1 ], [ 683197.8, 230210.3 ], [ 683177.1, 230222.5 ], [ 683166.1, 230249.6 ], [ 683140.141, 230374.053 ], [ 683134.181, 230444.433 ], [ 683100.995, 230561.619 ], [ 682906.2, 230660.366 ], [ 682804.2, 230741.7 ], [ 682736.5, 230829.7 ], [ 682687.5, 230862.5 ], [ 682633.3, 230990.4 ], [ 682572.9, 231060.9 ], [ 682462.1, 231215.2 ], [ 682455.2, 231267.9 ], [ 682494.3, 231255.5 ], [ 682525.8, 231269.6 ], [ 682483.0, 231340.8 ], [ 682452.2, 231363.5 ], [ 682413.1, 231374.4 ], [ 682407.576, 231310.711 ], [ 682393.2, 231311.0 ], [ 682242.7, 231398.9 ], [ 682235.5, 231425.9 ], [ 682185.1, 231528.1 ], [ 682110.0, 231632.9 ], [ 682083.5, 231659.4 ], [ 682058.2, 231675.9 ], [ 682033.8, 231682.5 ], [ 681825.4, 231683.4 ], [ 681826.1, 231705.9 ], [ 681835.1, 231725.4 ], [ 681871.1, 231747.6 ], [ 681844.9, 231771.7 ], [ 681758.5, 231799.2 ], [ 681615.1, 231811.1 ], [ 681593.4, 231819.2 ], [ 681474.5, 231915.5 ], [ 681405.8, 231944.0 ], [ 681366.2, 231967.9 ], [ 681356.8, 231983.2 ], [ 681362.1, 232076.0 ], [ 681310.5, 232131.3 ], [ 681285.6, 232140.6 ], [ 681308.6, 232154.8 ], [ 681347.012, 232161.247 ], [ 681344.14, 232175.125 ], [ 681273.701, 232259.261 ], [ 681157.741, 232354.737 ], [ 681108.1, 232346.8 ], [ 681085.4, 232350.4 ], [ 681027.211, 232383.992 ], [ 681001.6, 232410.2 ], [ 680936.0, 232298.4 ], [ 680908.8, 232281.8 ], [ 680886.4, 232279.9 ], [ 680536.3, 232381.9 ], [ 680476.9, 232410.1 ], [ 680351.4, 232523.4 ], [ 680318.5, 232574.6 ], [ 680289.5, 232641.6 ], [ 680152.3, 232754.7 ], [ 680146.5, 232742.7 ], [ 680086.03, 232698.986 ], [ 680043.987, 232760.287 ], [ 680013.7, 232733.0 ], [ 679935.2, 232845.6 ], [ 679920.2, 232889.8 ], [ 679902.424, 232893.608 ], [ 679840.6, 232981.5 ], [ 679802.4, 233097.2 ], [ 679780.9, 233124.3 ], [ 679711.3, 233255.5 ], [ 679715.9, 233314.4 ], [ 679706.2, 233366.0 ], [ 679694.4, 233381.4 ], [ 679638.2, 233418.9 ], [ 679595.1, 233468.1 ], [ 679564.544, 233547.148 ], [ 679556.218, 233543.58 ], [ 679544.659, 233588.101 ], [ 679600.801, 233765.985 ], [ 679587.455, 233886.563 ], [ 679591.899, 234015.38 ], [ 679585.659, 234123.578 ], [ 679683.181, 234235.871 ], [ 679685.022, 234346.324 ], [ 679726.681, 234404.279 ], [ 679694.3, 234451.5 ], [ 679733.9, 234476.3 ], [ 679792.3, 234461.9 ], [ 679861.045, 234485.682 ], [ 679871.286, 234492.85 ], [ 679875.894, 234508.723 ], [ 679821.1, 234633.3 ], [ 679728.8, 234650.7 ], [ 679671.0, 234679.0 ], [ 679627.5, 234759.7 ], [ 679575.5, 234805.4 ], [ 679531.3, 234860.5 ], [ 679508.3, 234869.7 ], [ 679425.8, 234867.5 ], [ 679405.2, 234880.1 ], [ 679353.1, 234946.8 ], [ 679343.9, 234995.3 ], [ 679284.3, 235087.3 ], [ 679248.9, 235187.4 ], [ 679259.6, 235212.1 ], [ 679304.5, 235264.2 ], [ 679311.1, 235281.2 ], [ 679311.4, 235318.5 ], [ 679289.0, 235370.2 ], [ 679237.1, 235422.6 ], [ 679234.1, 235433.8 ], [ 679239.0, 235440.6 ], [ 679277.3, 235422.0 ], [ 679344.2, 235409.4 ], [ 679481.3, 235416.2 ], [ 679528.4, 235427.8 ], [ 679589.5, 235457.0 ], [ 679650.2, 235508.3 ], [ 679676.0, 235544.6 ], [ 679698.8, 235535.1 ], [ 679776.1, 235532.8 ], [ 679788.8, 235526.5 ], [ 679798.5, 235514.8 ], [ 679803.3, 235476.8 ], [ 679876.5, 235574.4 ], [ 679913.9, 235610.7 ], [ 680027.6, 235677.8 ], [ 680090.814, 235794.74 ], [ 680041.1, 235882.3 ], [ 679996.8, 235927.9 ], [ 679939.1, 236074.8 ], [ 679923.1, 236134.3 ], [ 679921.4, 236239.3 ], [ 680008.0, 236363.2 ], [ 680046.1, 236384.3 ], [ 680059.6, 236419.0 ], [ 680064.0, 236461.0 ], [ 680079.1, 236497.0 ], [ 680080.0, 236544.2 ], [ 680067.9, 236563.3 ], [ 680200.9, 236691.8 ], [ 680241.0, 236809.5 ], [ 680472.1, 236938.2 ], [ 680434.1, 236968.1 ], [ 680408.2, 236999.1 ], [ 680317.4, 237153.6 ], [ 680258.5, 237215.3 ], [ 680193.5, 237265.5 ], [ 680137.4, 237296.3 ], [ 680002.5, 237353.4 ], [ 679891.7, 237412.4 ], [ 679856.5, 237424.6 ], [ 679691.8, 237438.5 ], [ 679554.0, 237464.9 ], [ 679460.0, 237498.7 ], [ 679406.6, 237506.6 ], [ 679375.6, 237520.7 ], [ 679316.9, 237562.1 ], [ 679183.7, 237733.5 ], [ 679106.7, 237934.8 ], [ 679079.4, 238021.7 ], [ 679072.1, 238066.1 ], [ 679077.3, 238120.0 ], [ 679177.5, 238470.8 ], [ 679182.6, 238572.0 ], [ 679177.0, 238674.3 ], [ 679184.1, 238721.3 ], [ 679213.5, 238792.0 ], [ 679308.3, 238933.8 ], [ 679332.3, 238996.4 ], [ 679331.4, 239086.1 ], [ 679317.3, 239189.6 ], [ 679373.3, 239208.0 ], [ 679403.3, 239211.2 ], [ 679547.2, 239187.5 ], [ 679568.9, 239192.8 ], [ 679611.6, 239237.1 ], [ 679615.3, 239276.4 ], [ 679568.7, 239356.4 ], [ 679557.2, 239397.7 ], [ 679492.8, 239549.5 ], [ 679492.4, 239565.8 ], [ 679507.3, 239565.2 ], [ 679578.1, 239497.6 ], [ 679616.2, 239450.2 ], [ 679697.4, 239378.3 ], [ 679712.3, 239375.2 ], [ 679780.3, 239414.1 ], [ 679819.6, 239427.4 ], [ 680061.0, 239456.1 ], [ 680087.2, 239471.3 ], [ 680159.6, 239540.1 ], [ 680206.1, 239551.0 ], [ 680236.0, 239541.7 ], [ 680314.4, 239481.7 ], [ 680328.8, 239461.4 ], [ 680350.4, 239422.7 ], [ 680372.9, 239322.3 ], [ 680385.2, 239294.0 ], [ 680408.8, 239275.5 ], [ 680450.8, 239256.1 ], [ 680455.5, 239268.0 ], [ 680452.5, 239289.0 ], [ 680410.1, 239431.7 ], [ 680388.6, 239552.8 ], [ 680396.4, 239625.5 ], [ 680415.161, 239697.479 ], [ 680404.1, 239717.6 ], [ 680328.471, 239805.132 ], [ 680330.088, 239821.132 ], [ 680422.3, 239942.1 ], [ 680493.3, 240012.9 ], [ 680546.3, 240053.6 ], [ 680731.0, 240167.4 ], [ 680795.4, 240225.9 ], [ 680838.8, 240254.4 ], [ 680857.045, 240276.961 ], [ 680852.738, 240294.649 ], [ 680839.984, 240305.562 ], [ 680738.6, 240363.2 ], [ 680700.1, 240399.2 ], [ 680683.3, 240424.1 ], [ 680669.8, 240468.5 ], [ 680674.4, 240548.8 ], [ 680670.449, 240570.537 ], [ 680655.41, 240583.177 ], [ 680626.771, 240591.336 ], [ 680617.6, 240612.8 ], [ 680619.2, 240647.3 ], [ 680690.9, 240755.7 ], [ 680697.0, 240802.2 ], [ 680694.5, 240862.2 ], [ 680655.4, 240928.7 ], [ 680628.3, 240956.1 ], [ 680606.6, 241009.7 ], [ 680591.9, 241073.9 ], [ 680588.7, 241134.8 ], [ 680559.4, 241223.3 ], [ 680545.8, 241242.8 ], [ 680438.8, 241307.4 ], [ 680373.9, 241379.9 ], [ 680274.0, 241441.6 ], [ 680258.6, 241475.6 ], [ 680249.1, 241616.5 ], [ 680269.8, 241723.2 ], [ 680271.5, 241776.6 ], [ 680263.1, 241796.4 ], [ 680205.4, 241871.1 ], [ 680196.9, 241894.5 ], [ 680190.717, 241989.951 ], [ 680196.32, 242010.324 ], [ 680213.637, 242036.3 ], [ 680268.849, 242082.609 ], [ 680290.601, 242116.814 ], [ 680300.025, 242148.431 ], [ 680306.9, 242230.5 ], [ 680300.2, 242262.8 ], [ 680256.7, 242351.5 ], [ 680271.1, 242508.4 ], [ 680286.9, 242555.7 ], [ 680280.8, 242627.7 ], [ 680256.8, 242705.3 ], [ 680244.3, 242770.3 ], [ 680242.3, 242841.5 ], [ 680245.2, 242867.0 ], [ 680259.8, 242902.2 ], [ 680328.4, 243014.7 ], [ 680348.4, 243123.7 ], [ 680347.6, 243139.4 ], [ 680335.5, 243154.6 ], [ 680283.4, 243205.0 ], [ 680280.5, 243224.0 ], [ 680320.6, 243281.0 ], [ 680369.3, 243398.7 ], [ 680367.0, 243426.6 ], [ 680348.1, 243464.7 ], [ 680257.4, 243569.2 ], [ 680274.2, 243658.4 ], [ 680289.1, 243691.2 ], [ 680289.1, 243722.7 ], [ 680295.3, 243735.7 ], [ 680321.7, 243743.6 ], [ 680347.4, 243707.0 ], [ 680364.4, 243646.1 ], [ 680388.883, 243635.581 ], [ 680458.0, 243581.9 ], [ 680504.2, 243570.7 ], [ 680550.798, 243516.575 ], [ 680544.183, 243577.469 ], [ 680510.853, 243629.224 ], [ 680507.548, 243655.124 ], [ 680513.146, 243671.752 ], [ 680548.7, 243629.0 ], [ 680559.4, 243628.3 ], [ 680548.7, 243668.3 ], [ 680550.8, 243721.9 ], [ 680576.0, 243793.9 ], [ 680591.681, 243814.021 ], [ 680578.006, 243842.787 ], [ 680588.929, 243854.481 ], [ 680598.277, 243853.632 ], [ 680614.8, 243839.1 ], [ 680618.3, 243827.5 ], [ 680615.1, 243782.4 ], [ 680632.3, 243761.9 ], [ 680650.4, 243671.8 ], [ 680685.9, 243639.1 ], [ 680712.1, 243639.6 ], [ 680712.3, 243648.1 ], [ 680692.4, 243661.3 ], [ 680683.1, 243675.7 ], [ 680678.7, 243696.9 ], [ 680697.2, 243737.6 ], [ 680700.5, 243829.0 ], [ 680728.8, 243860.6 ], [ 680680.5, 243893.5 ], [ 680670.9, 243941.5 ], [ 680678.8, 243986.5 ], [ 680683.8, 243994.0 ], [ 680700.5, 243953.1 ], [ 680720.9, 243918.1 ], [ 680726.3, 243919.0 ], [ 680722.6, 243981.9 ], [ 680733.4, 244012.3 ], [ 680799.7, 244067.3 ], [ 680805.5, 244089.4 ], [ 680793.4, 244121.0 ], [ 680801.8, 244124.4 ], [ 680829.7, 244085.6 ], [ 680821.3, 244064.0 ], [ 680804.3, 244044.4 ], [ 680800.9, 244021.5 ], [ 680828.0, 243974.8 ], [ 680840.9, 243973.1 ], [ 680837.2, 244023.1 ], [ 680847.2, 244042.3 ], [ 680873.4, 244067.3 ], [ 680882.2, 244087.3 ], [ 680888.0, 244134.4 ], [ 680880.5, 244152.7 ], [ 680885.9, 244154.0 ], [ 680897.6, 244141.0 ], [ 680908.4, 244116.5 ], [ 680913.0, 244074.0 ], [ 680919.7, 244065.6 ], [ 680951.435, 244054.998 ], [ 680966.0, 244054.3 ], [ 681009.9, 244090.7 ], [ 681069.5, 244124.3 ], [ 681050.3, 244174.7 ], [ 681008.9, 244222.3 ], [ 681007.9, 244242.4 ], [ 681013.1, 244253.0 ], [ 681039.0, 244266.9 ], [ 681117.0, 244274.8 ], [ 681152.6, 244298.2 ], [ 681179.0, 244361.4 ], [ 681200.9, 244385.2 ], [ 681215.4, 244415.6 ], [ 681230.4, 244462.9 ], [ 681270.792, 244546.513 ], [ 681322.683, 244600.072 ], [ 681323.1, 244617.578 ], [ 681312.471, 244633.416 ], [ 681327.685, 244652.797 ], [ 681333.103, 244671.137 ], [ 681334.145, 244735.949 ], [ 681352.4, 244794.2 ], [ 681361.0, 244802.8 ], [ 681387.7, 244804.8 ], [ 681502.8, 244798.3 ], [ 681533.0, 244887.3 ], [ 681602.2, 244962.6 ], [ 682003.1, 245167.3 ], [ 682060.7, 245228.8 ], [ 682071.4, 245217.0 ], [ 682095.8, 245327.6 ], [ 682070.0, 245486.7 ], [ 682057.0, 245691.1 ], [ 681980.9, 246006.0 ], [ 681973.9, 246062.5 ], [ 681961.9, 246057.9 ], [ 681932.1, 246217.8 ], [ 681923.1, 246281.0 ], [ 681918.6, 246403.8 ], [ 681930.8, 246504.3 ], [ 681968.5, 246611.6 ], [ 682025.3, 246709.8 ], [ 682152.3, 246847.9 ], [ 682333.25, 247023.243 ], [ 682427.052, 247124.844 ], [ 682478.478, 247194.144 ], [ 682539.766, 247329.287 ], [ 682573.655, 247371.905 ], [ 682594.707, 247376.013 ], [ 682622.425, 247423.042 ], [ 682638.868, 247410.467 ], [ 682682.706, 247478.673 ], [ 682683.338, 247583.54 ], [ 682798.2, 247763.4 ], [ 682850.5, 247827.8 ], [ 682780.1, 247877.5 ], [ 682890.9, 248027.5 ], [ 682904.518, 248058.909 ] ] } } - -] -} From 461a0d06151cec40ea3acd4289b59be1b90e20a7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:25:13 +0100 Subject: [PATCH 609/919] Move back ol.parser.polyline --- .../parser/polylineparser.js => src/ol/format/polylineformat.js | 0 .../spec/ol/format/polylineformat.test.js | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename old/src/ol/parser/polylineparser.js => src/ol/format/polylineformat.js (100%) rename old/test/spec/ol/parser/polyline.test.js => test/spec/ol/format/polylineformat.test.js (100%) diff --git a/old/src/ol/parser/polylineparser.js b/src/ol/format/polylineformat.js similarity index 100% rename from old/src/ol/parser/polylineparser.js rename to src/ol/format/polylineformat.js diff --git a/old/test/spec/ol/parser/polyline.test.js b/test/spec/ol/format/polylineformat.test.js similarity index 100% rename from old/test/spec/ol/parser/polyline.test.js rename to test/spec/ol/format/polylineformat.test.js From 3cf87ced1e9ad0633cf4915544ecc2b896760934 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 4 Dec 2013 17:27:40 +0100 Subject: [PATCH 610/919] Port ol.parser.polyline to ol.format.Format --- src/ol/format/polylineformat.js | 140 ++++++++++++++++----- test/spec/ol/format/polylineformat.test.js | 121 +++++++++++++++--- 2 files changed, 212 insertions(+), 49 deletions(-) diff --git a/src/ol/format/polylineformat.js b/src/ol/format/polylineformat.js index c0793d0ccc..157aeedb1e 100644 --- a/src/ol/format/polylineformat.js +++ b/src/ol/format/polylineformat.js @@ -1,4 +1,21 @@ -goog.provide('ol.parser.polyline'); +goog.provide('ol.format.Polyline'); + +goog.require('goog.asserts'); +goog.require('ol.Feature'); +goog.require('ol.format.Text'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.flat'); + + + +/** + * @constructor + * @extends {ol.format.Text} + */ +ol.format.Polyline = function() { + goog.base(this); +}; +goog.inherits(ol.format.Polyline, ol.format.Text); /** @@ -10,10 +27,10 @@ goog.provide('ol.parser.polyline'); * @param {number=} opt_dimension The dimension of the coordinates in the array. * @return {string} The encoded string. */ -ol.parser.polyline.encodeFlatCoordinates = +ol.format.Polyline.encodeFlatCoordinates = function(flatPoints, opt_dimension) { var dimension = opt_dimension || 2; - return ol.parser.polyline.encodeDeltas(flatPoints, dimension); + return ol.format.Polyline.encodeDeltas(flatPoints, dimension); }; @@ -25,9 +42,9 @@ ol.parser.polyline.encodeFlatCoordinates = * encoded string. * @return {Array.} A flat array of coordinates. */ -ol.parser.polyline.decodeFlatCoordinates = function(encoded, opt_dimension) { +ol.format.Polyline.decodeFlatCoordinates = function(encoded, opt_dimension) { var dimension = opt_dimension || 2; - return ol.parser.polyline.decodeDeltas(encoded, dimension); + return ol.format.Polyline.decodeDeltas(encoded, dimension); }; @@ -42,7 +59,7 @@ ol.parser.polyline.decodeFlatCoordinates = function(encoded, opt_dimension) { * multiplied. The remaining decimal places will get rounded away. * @return {string} The encoded string. */ -ol.parser.polyline.encodeDeltas = function(numbers, dimension, opt_factor) { +ol.format.Polyline.encodeDeltas = function(numbers, dimension, opt_factor) { var factor = opt_factor || 1e5; var d; @@ -62,7 +79,7 @@ ol.parser.polyline.encodeDeltas = function(numbers, dimension, opt_factor) { } } - return ol.parser.polyline.encodeFloats(numbers, factor); + return ol.format.Polyline.encodeFloats(numbers, factor); }; @@ -75,7 +92,7 @@ ol.parser.polyline.encodeDeltas = function(numbers, dimension, opt_factor) { * be divided. * @return {Array.} A list of n-dimensional points. */ -ol.parser.polyline.decodeDeltas = function(encoded, dimension, opt_factor) { +ol.format.Polyline.decodeDeltas = function(encoded, dimension, opt_factor) { var factor = opt_factor || 1e5; var d; @@ -84,7 +101,7 @@ ol.parser.polyline.decodeDeltas = function(encoded, dimension, opt_factor) { lastNumbers[d] = 0; } - var numbers = ol.parser.polyline.decodeFloats(encoded, factor); + var numbers = ol.format.Polyline.decodeFloats(encoded, factor); var numbersLength = numbers.length; for (var i = 0; i < numbersLength;) { @@ -109,7 +126,7 @@ ol.parser.polyline.decodeDeltas = function(encoded, dimension, opt_factor) { * multiplied. The remaining decimal places will get rounded away. * @return {string} The encoded string. */ -ol.parser.polyline.encodeFloats = function(numbers, opt_factor) { +ol.format.Polyline.encodeFloats = function(numbers, opt_factor) { var factor = opt_factor || 1e5; var numbersLength = numbers.length; @@ -117,7 +134,7 @@ ol.parser.polyline.encodeFloats = function(numbers, opt_factor) { numbers[i] = Math.round(numbers[i] * factor); } - return ol.parser.polyline.encodeSignedIntegers(numbers); + return ol.format.Polyline.encodeSignedIntegers(numbers); }; @@ -128,10 +145,10 @@ ol.parser.polyline.encodeFloats = function(numbers, opt_factor) { * @param {number=} opt_factor The factor by which the result will be divided. * @return {Array.} A list of floating point numbers. */ -ol.parser.polyline.decodeFloats = function(encoded, opt_factor) { +ol.format.Polyline.decodeFloats = function(encoded, opt_factor) { var factor = opt_factor || 1e5; - var numbers = ol.parser.polyline.decodeSignedIntegers(encoded); + var numbers = ol.format.Polyline.decodeSignedIntegers(encoded); var numbersLength = numbers.length; for (var i = 0; i < numbersLength; ++i) { @@ -150,7 +167,7 @@ ol.parser.polyline.decodeFloats = function(encoded, opt_factor) { * @param {Array.} numbers A list of signed integers. * @return {string} The encoded string. */ -ol.parser.polyline.encodeSignedIntegers = function(numbers) { +ol.format.Polyline.encodeSignedIntegers = function(numbers) { var numbersLength = numbers.length; for (var i = 0; i < numbersLength; ++i) { var num = numbers[i]; @@ -163,7 +180,7 @@ ol.parser.polyline.encodeSignedIntegers = function(numbers) { numbers[i] = signedNum; } - return ol.parser.polyline.encodeUnsignedIntegers(numbers); + return ol.format.Polyline.encodeUnsignedIntegers(numbers); }; @@ -173,8 +190,8 @@ ol.parser.polyline.encodeSignedIntegers = function(numbers) { * @param {string} encoded An encoded string. * @return {Array.} A list of signed integers. */ -ol.parser.polyline.decodeSignedIntegers = function(encoded) { - var numbers = ol.parser.polyline.decodeUnsignedIntegers(encoded); +ol.format.Polyline.decodeSignedIntegers = function(encoded) { + var numbers = ol.format.Polyline.decodeUnsignedIntegers(encoded); var numbersLength = numbers.length; for (var i = 0; i < numbersLength; ++i) { @@ -192,12 +209,12 @@ ol.parser.polyline.decodeSignedIntegers = function(encoded) { * @param {Array.} numbers A list of unsigned integers. * @return {string} The encoded string. */ -ol.parser.polyline.encodeUnsignedIntegers = function(numbers) { +ol.format.Polyline.encodeUnsignedIntegers = function(numbers) { var encoded = ''; var numbersLength = numbers.length; for (var i = 0; i < numbersLength; ++i) { - encoded += ol.parser.polyline.encodeUnsignedInteger(numbers[i]); + encoded += ol.format.Polyline.encodeUnsignedInteger(numbers[i]); } return encoded; @@ -210,7 +227,7 @@ ol.parser.polyline.encodeUnsignedIntegers = function(numbers) { * @param {string} encoded An encoded string. * @return {Array.} A list of unsigned integers. */ -ol.parser.polyline.decodeUnsignedIntegers = function(encoded) { +ol.format.Polyline.decodeUnsignedIntegers = function(encoded) { var numbers = []; var current = 0; @@ -243,9 +260,9 @@ ol.parser.polyline.decodeUnsignedIntegers = function(encoded) { * The remaining decimal places will get rounded away. * @return {string} The encoded string. */ -ol.parser.polyline.encodeFloat = function(num, opt_factor) { +ol.format.Polyline.encodeFloat = function(num, opt_factor) { num = Math.round(num * (opt_factor || 1e5)); - return ol.parser.polyline.encodeSignedInteger(num); + return ol.format.Polyline.encodeSignedInteger(num); }; @@ -256,8 +273,8 @@ ol.parser.polyline.encodeFloat = function(num, opt_factor) { * @param {number=} opt_factor The factor by which the result will be divided. * @return {number} The decoded floating point number. */ -ol.parser.polyline.decodeFloat = function(encoded, opt_factor) { - var result = ol.parser.polyline.decodeSignedInteger(encoded); +ol.format.Polyline.decodeFloat = function(encoded, opt_factor) { + var result = ol.format.Polyline.decodeSignedInteger(encoded); return result / (opt_factor || 1e5); }; @@ -268,13 +285,13 @@ ol.parser.polyline.decodeFloat = function(encoded, opt_factor) { * @param {number} num Signed integer that should be encoded. * @return {string} The encoded string. */ -ol.parser.polyline.encodeSignedInteger = function(num) { +ol.format.Polyline.encodeSignedInteger = function(num) { var signedNum = num << 1; if (num < 0) { signedNum = ~(signedNum); } - return ol.parser.polyline.encodeUnsignedInteger(signedNum); + return ol.format.Polyline.encodeUnsignedInteger(signedNum); }; @@ -284,8 +301,8 @@ ol.parser.polyline.encodeSignedInteger = function(num) { * @param {string} encoded An encoded string. * @return {number} The decoded signed integer. */ -ol.parser.polyline.decodeSignedInteger = function(encoded) { - var result = ol.parser.polyline.decodeUnsignedInteger(encoded); +ol.format.Polyline.decodeSignedInteger = function(encoded) { + var result = ol.format.Polyline.decodeUnsignedInteger(encoded); return ((result & 1) ? ~(result >> 1) : (result >> 1)); }; @@ -296,7 +313,7 @@ ol.parser.polyline.decodeSignedInteger = function(encoded) { * @param {number} num Unsigned integer that should be encoded. * @return {string} The encoded string. */ -ol.parser.polyline.encodeUnsignedInteger = function(num) { +ol.format.Polyline.encodeUnsignedInteger = function(num) { var value, encoded = ''; while (num >= 0x20) { value = (0x20 | (num & 0x1f)) + 63; @@ -315,7 +332,7 @@ ol.parser.polyline.encodeUnsignedInteger = function(num) { * @param {string} encoded An encoded string. * @return {number} The decoded unsigned integer. */ -ol.parser.polyline.decodeUnsignedInteger = function(encoded) { +ol.format.Polyline.decodeUnsignedInteger = function(encoded) { var result = 0; var shift = 0; @@ -333,3 +350,66 @@ ol.parser.polyline.decodeUnsignedInteger = function(encoded) { return result; }; + + +/** + * @inheritDoc + */ +ol.format.Polyline.prototype.readFeatureFromText = function(text) { + var geometry = this.readGeometryFromText(text); + return new ol.Feature(geometry); +}; + + +/** + * @inheritDoc + */ +ol.format.Polyline.prototype.readFeaturesFromText = function(text) { + var feature = this.readFeatureFromText(text); + return [feature]; +}; + + +/** + * @inheritDoc + */ +ol.format.Polyline.prototype.readGeometryFromText = function(text) { + var flatCoordinates = ol.format.Polyline.decodeFlatCoordinates(text, 2); + var coordinates = ol.geom.flat.inflateCoordinates( + flatCoordinates, 0, flatCoordinates.length, 2); + return new ol.geom.LineString(coordinates); +}; + + +/** + * @inheritDoc + */ +ol.format.Polyline.prototype.writeFeatureText = function(feature) { + var geometry = feature.getGeometry(); + if (goog.isDefAndNotNull(geometry)) { + return this.writeGeometryText(geometry); + } else { + goog.asserts.fail(); + return ''; + } +}; + + +/** + * @inheritDoc + */ +ol.format.Polyline.prototype.writeFeaturesText = function(features) { + goog.asserts.assert(features.length == 1); + return this.writeFeatureText(features[0]); +}; + + +/** + * @inheritDoc + */ +ol.format.Polyline.prototype.writeGeometryText = function(geometry) { + goog.asserts.assert(geometry.getType() == ol.geom.GeometryType.LINE_STRING); + var flatCoordinates = geometry.getFlatCoordinates(); + var stride = geometry.getStride(); + return ol.format.Polyline.encodeFlatCoordinates(flatCoordinates, stride); +}; diff --git a/test/spec/ol/format/polylineformat.test.js b/test/spec/ol/format/polylineformat.test.js index 537ed78619..ac137aa19f 100644 --- a/test/spec/ol/format/polylineformat.test.js +++ b/test/spec/ol/format/polylineformat.test.js @@ -1,13 +1,19 @@ -goog.provide('ol.test.parser.polyline'); +goog.provide('ol.test.format.Polyline'); -describe('ol.parser.polyline', function() { +describe('ol.format.Polyline', function() { + var format; + var points; var flatPoints, encodedFlatPoints; var floats, smallFloats, encodedFloats; var signedIntegers, encodedSignedIntegers; var unsignedIntegers, encodedUnsignedIntegers; function resetTestingData() { + format = new ol.format.Polyline(); + points = [[38.50000, -120.20000], + [40.70000, -120.95000], + [43.25200, -126.45300]]; flatPoints = [38.50000, -120.20000, 40.70000, -120.95000, 43.25200, -126.45300]; @@ -31,7 +37,7 @@ describe('ol.parser.polyline', function() { describe('encodeFlatCoordinates', function() { it('returns expected value', function() { - var encodeFlatCoordinates = ol.parser.polyline.encodeFlatCoordinates; + var encodeFlatCoordinates = ol.format.Polyline.encodeFlatCoordinates; // from the "Encoded Polyline Algorithm Format" page at Google expect(encodeFlatCoordinates(flatPoints)).to.eql(encodedFlatPoints); @@ -40,7 +46,7 @@ describe('ol.parser.polyline', function() { describe('decodeFlatCoordinates', function() { it('returns expected value', function() { - var decodeFlatCoordinates = ol.parser.polyline.decodeFlatCoordinates; + var decodeFlatCoordinates = ol.format.Polyline.decodeFlatCoordinates; // from the "Encoded Polyline Algorithm Format" page at Google expect(decodeFlatCoordinates(encodedFlatPoints)).to.eql(flatPoints); @@ -51,7 +57,7 @@ describe('ol.parser.polyline', function() { describe('encodeDeltas', function() { it('returns expected value', function() { - var encodeDeltas = ol.parser.polyline.encodeDeltas; + var encodeDeltas = ol.format.Polyline.encodeDeltas; expect(encodeDeltas(flatPoints, 2)).to.eql(encodedFlatPoints); }); @@ -59,7 +65,7 @@ describe('ol.parser.polyline', function() { describe('decodeDeltas', function() { it('returns expected value', function() { - var decodeDeltas = ol.parser.polyline.decodeDeltas; + var decodeDeltas = ol.format.Polyline.decodeDeltas; expect(decodeDeltas(encodedFlatPoints, 2)).to.eql(flatPoints); }); @@ -69,7 +75,7 @@ describe('ol.parser.polyline', function() { describe('encodeFloats', function() { it('returns expected value', function() { - var encodeFloats = ol.parser.polyline.encodeFloats; + var encodeFloats = ol.format.Polyline.encodeFloats; expect(encodeFloats(smallFloats)).to.eql(encodedFloats); @@ -82,7 +88,7 @@ describe('ol.parser.polyline', function() { describe('decodeFloats', function() { it('returns expected value', function() { - var decodeFloats = ol.parser.polyline.decodeFloats; + var decodeFloats = ol.format.Polyline.decodeFloats; expect(decodeFloats(encodedFloats)).to.eql(smallFloats); expect(decodeFloats(encodedFloats, 1e5)).to.eql(smallFloats); @@ -94,7 +100,7 @@ describe('ol.parser.polyline', function() { describe('encodeSignedIntegers', function() { it('returns expected value', function() { - var encodeSignedIntegers = ol.parser.polyline.encodeSignedIntegers; + var encodeSignedIntegers = ol.format.Polyline.encodeSignedIntegers; expect(encodeSignedIntegers( signedIntegers)).to.eql(encodedSignedIntegers); @@ -103,7 +109,7 @@ describe('ol.parser.polyline', function() { describe('decodeSignedIntegers', function() { it('returns expected value', function() { - var decodeSignedIntegers = ol.parser.polyline.decodeSignedIntegers; + var decodeSignedIntegers = ol.format.Polyline.decodeSignedIntegers; expect(decodeSignedIntegers( encodedSignedIntegers)).to.eql(signedIntegers); @@ -114,7 +120,7 @@ describe('ol.parser.polyline', function() { describe('encodeUnsignedIntegers', function() { it('returns expected value', function() { - var encodeUnsignedIntegers = ol.parser.polyline.encodeUnsignedIntegers; + var encodeUnsignedIntegers = ol.format.Polyline.encodeUnsignedIntegers; expect(encodeUnsignedIntegers( unsignedIntegers)).to.eql(encodedUnsignedIntegers); @@ -123,7 +129,7 @@ describe('ol.parser.polyline', function() { describe('decodeUnsignedIntegers', function() { it('returns expected value', function() { - var decodeUnsignedIntegers = ol.parser.polyline.decodeUnsignedIntegers; + var decodeUnsignedIntegers = ol.format.Polyline.decodeUnsignedIntegers; expect(decodeUnsignedIntegers( encodedUnsignedIntegers)).to.eql(unsignedIntegers); @@ -134,7 +140,7 @@ describe('ol.parser.polyline', function() { describe('encodeFloat', function() { it('returns expected value', function() { - var encodeFloat = ol.parser.polyline.encodeFloat; + var encodeFloat = ol.format.Polyline.encodeFloat; expect(encodeFloat(0.00000)).to.eql('?'); expect(encodeFloat(-0.00001)).to.eql('@'); @@ -157,7 +163,7 @@ describe('ol.parser.polyline', function() { describe('decodeFloat', function() { it('returns expected value', function() { - var decodeFloat = ol.parser.polyline.decodeFloat; + var decodeFloat = ol.format.Polyline.decodeFloat; expect(decodeFloat('?')).to.eql(0.00000); expect(decodeFloat('@')).to.eql(-0.00001); @@ -182,7 +188,7 @@ describe('ol.parser.polyline', function() { describe('encodeSignedInteger', function() { it('returns expected value', function() { - var encodeSignedInteger = ol.parser.polyline.encodeSignedInteger; + var encodeSignedInteger = ol.format.Polyline.encodeSignedInteger; expect(encodeSignedInteger(0)).to.eql('?'); expect(encodeSignedInteger(-1)).to.eql('@'); @@ -200,7 +206,7 @@ describe('ol.parser.polyline', function() { describe('decodeSignedInteger', function() { it('returns expected value', function() { - var decodeSignedInteger = ol.parser.polyline.decodeSignedInteger; + var decodeSignedInteger = ol.format.Polyline.decodeSignedInteger; expect(decodeSignedInteger('?')).to.eql(0); expect(decodeSignedInteger('@')).to.eql(-1); @@ -220,7 +226,7 @@ describe('ol.parser.polyline', function() { describe('encodeUnsignedInteger', function() { it('returns expected value', function() { - var encodeUnsignedInteger = ol.parser.polyline.encodeUnsignedInteger; + var encodeUnsignedInteger = ol.format.Polyline.encodeUnsignedInteger; expect(encodeUnsignedInteger(0)).to.eql('?'); expect(encodeUnsignedInteger(1)).to.eql('@'); @@ -240,7 +246,7 @@ describe('ol.parser.polyline', function() { describe('decodeUnsignedInteger', function() { it('returns expected value', function() { - var decodeUnsignedInteger = ol.parser.polyline.decodeUnsignedInteger; + var decodeUnsignedInteger = ol.format.Polyline.decodeUnsignedInteger; expect(decodeUnsignedInteger('?')).to.eql(0); expect(decodeUnsignedInteger('@')).to.eql(1); @@ -257,6 +263,83 @@ describe('ol.parser.polyline', function() { expect(decodeUnsignedInteger('mD')).to.eql(174); }); }); + + describe('#readFeature', function() { + + it('returns the expected feature', function() { + var feature = format.readFeature(encodedFlatPoints); + expect(feature).to.be.an(ol.Feature); + var geometry = feature.getGeometry(); + expect(geometry).to.be.an(ol.geom.LineString); + expect(geometry.getFlatCoordinates()).to.eql(flatPoints); + }); + + }); + + describe('#readFeatures', function() { + + it('returns the expected feature', function() { + var features = format.readFeatures(encodedFlatPoints); + expect(features).to.be.an(Array); + expect(features).to.have.length(1); + var feature = features[0]; + expect(feature).to.be.an(ol.Feature); + var geometry = feature.getGeometry(); + expect(geometry).to.be.an(ol.geom.LineString); + expect(geometry.getFlatCoordinates()).to.eql(flatPoints); + }); + + }); + + describe('#readGeometry', function() { + + it('returns the expected geometry', function() { + var geometry = format.readGeometry(encodedFlatPoints); + expect(geometry).to.be.an(ol.geom.LineString); + expect(geometry.getFlatCoordinates()).to.eql(flatPoints); + }); + + }); + + describe('#readProjection', function() { + + it('returns the expected projection', function() { + var projection = format.readProjection(encodedFlatPoints); + expect(projection).to.be(ol.proj.get('EPSG:4326')); + }); + + }); + + describe('#writeFeature', function() { + + it('returns the expected text', function() { + var feature = new ol.Feature(new ol.geom.LineString(points)); + expect(format.writeFeature(feature)).to.be(encodedFlatPoints); + }); + + }); + + describe('#writeFeature', function() { + + it('returns the expected text', function() { + var features = [new ol.Feature(new ol.geom.LineString(points))]; + expect(format.writeFeatures(features)).to.be(encodedFlatPoints); + }); + + }); + + describe('#writeGeometry', function() { + + it('returns the expected text', function() { + var geometry = new ol.geom.LineString(points); + expect(format.writeGeometry(geometry)).to.be(encodedFlatPoints); + }); + + }); + }); -goog.require('ol.parser.polyline'); +goog.require('ol.Feature'); +goog.require('ol.format.Polyline'); +goog.require('ol.geom.LineString'); +goog.require('ol.proj'); From d1878498388350cd1e14ac6d423e7be28e427706 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 11 Dec 2013 19:14:54 +0100 Subject: [PATCH 611/919] Making coding style closer to ol3's in ol.format.Polyline --- src/ol/format/polylineformat.js | 61 +++++++++++++++++---------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/src/ol/format/polylineformat.js b/src/ol/format/polylineformat.js index 157aeedb1e..98377cd684 100644 --- a/src/ol/format/polylineformat.js +++ b/src/ol/format/polylineformat.js @@ -29,7 +29,7 @@ goog.inherits(ol.format.Polyline, ol.format.Text); */ ol.format.Polyline.encodeFlatCoordinates = function(flatPoints, opt_dimension) { - var dimension = opt_dimension || 2; + var dimension = goog.isDef(opt_dimension) ? opt_dimension : 2; return ol.format.Polyline.encodeDeltas(flatPoints, dimension); }; @@ -43,7 +43,7 @@ ol.format.Polyline.encodeFlatCoordinates = * @return {Array.} A flat array of coordinates. */ ol.format.Polyline.decodeFlatCoordinates = function(encoded, opt_dimension) { - var dimension = opt_dimension || 2; + var dimension = goog.isDef(opt_dimension) ? opt_dimension : 2; return ol.format.Polyline.decodeDeltas(encoded, dimension); }; @@ -60,7 +60,7 @@ ol.format.Polyline.decodeFlatCoordinates = function(encoded, opt_dimension) { * @return {string} The encoded string. */ ol.format.Polyline.encodeDeltas = function(numbers, dimension, opt_factor) { - var factor = opt_factor || 1e5; + var factor = goog.isDef(opt_factor) ? opt_factor : 1e5; var d; var lastNumbers = new Array(dimension); @@ -68,8 +68,8 @@ ol.format.Polyline.encodeDeltas = function(numbers, dimension, opt_factor) { lastNumbers[d] = 0; } - var numbersLength = numbers.length; - for (var i = 0; i < numbersLength;) { + var i, ii; + for (i = 0, ii = numbers.length; i < ii;) { for (d = 0; d < dimension; ++d, ++i) { var num = numbers[i]; var delta = num - lastNumbers[d]; @@ -93,7 +93,7 @@ ol.format.Polyline.encodeDeltas = function(numbers, dimension, opt_factor) { * @return {Array.} A list of n-dimensional points. */ ol.format.Polyline.decodeDeltas = function(encoded, dimension, opt_factor) { - var factor = opt_factor || 1e5; + var factor = goog.isDef(opt_factor) ? opt_factor : 1e5; var d; var lastNumbers = new Array(dimension); @@ -103,8 +103,8 @@ ol.format.Polyline.decodeDeltas = function(encoded, dimension, opt_factor) { var numbers = ol.format.Polyline.decodeFloats(encoded, factor); - var numbersLength = numbers.length; - for (var i = 0; i < numbersLength;) { + var i, ii; + for (i = 0, ii = numbers.length; i < ii;) { for (d = 0; d < dimension; ++d, ++i) { lastNumbers[d] += numbers[i]; @@ -127,10 +127,10 @@ ol.format.Polyline.decodeDeltas = function(encoded, dimension, opt_factor) { * @return {string} The encoded string. */ ol.format.Polyline.encodeFloats = function(numbers, opt_factor) { - var factor = opt_factor || 1e5; + var factor = goog.isDef(opt_factor) ? opt_factor : 1e5; - var numbersLength = numbers.length; - for (var i = 0; i < numbersLength; ++i) { + var i, ii; + for (i = 0, ii = numbers.length; i < ii; ++i) { numbers[i] = Math.round(numbers[i] * factor); } @@ -146,12 +146,12 @@ ol.format.Polyline.encodeFloats = function(numbers, opt_factor) { * @return {Array.} A list of floating point numbers. */ ol.format.Polyline.decodeFloats = function(encoded, opt_factor) { - var factor = opt_factor || 1e5; + var factor = goog.isDef(opt_factor) ? opt_factor : 1e5; var numbers = ol.format.Polyline.decodeSignedIntegers(encoded); - var numbersLength = numbers.length; - for (var i = 0; i < numbersLength; ++i) { + var i, ii; + for (i = 0, ii = numbers.length; i < ii; ++i) { numbers[i] /= factor; } @@ -168,8 +168,8 @@ ol.format.Polyline.decodeFloats = function(encoded, opt_factor) { * @return {string} The encoded string. */ ol.format.Polyline.encodeSignedIntegers = function(numbers) { - var numbersLength = numbers.length; - for (var i = 0; i < numbersLength; ++i) { + var i, ii; + for (i = 0, ii = numbers.length; i < ii; ++i) { var num = numbers[i]; var signedNum = num << 1; @@ -193,8 +193,8 @@ ol.format.Polyline.encodeSignedIntegers = function(numbers) { ol.format.Polyline.decodeSignedIntegers = function(encoded) { var numbers = ol.format.Polyline.decodeUnsignedIntegers(encoded); - var numbersLength = numbers.length; - for (var i = 0; i < numbersLength; ++i) { + var i, ii; + for (i = 0, ii = numbers.length; i < ii; ++i) { var num = numbers[i]; numbers[i] = (num & 1) ? ~(num >> 1) : (num >> 1); } @@ -212,8 +212,8 @@ ol.format.Polyline.decodeSignedIntegers = function(encoded) { ol.format.Polyline.encodeUnsignedIntegers = function(numbers) { var encoded = ''; - var numbersLength = numbers.length; - for (var i = 0; i < numbersLength; ++i) { + var i, ii; + for (i = 0, ii = numbers.length; i < ii; ++i) { encoded += ol.format.Polyline.encodeUnsignedInteger(numbers[i]); } @@ -233,8 +233,8 @@ ol.format.Polyline.decodeUnsignedIntegers = function(encoded) { var current = 0; var shift = 0; - var encodedLength = encoded.length; - for (var i = 0; i < encodedLength; ++i) { + var i, ii; + for (i = 0, ii = encoded.length; i < ii; ++i) { var b = encoded.charCodeAt(i) - 63; current |= (b & 0x1f) << shift; @@ -261,7 +261,8 @@ ol.format.Polyline.decodeUnsignedIntegers = function(encoded) { * @return {string} The encoded string. */ ol.format.Polyline.encodeFloat = function(num, opt_factor) { - num = Math.round(num * (opt_factor || 1e5)); + var factor = goog.isDef(opt_factor) ? opt_factor : 1e5; + num = Math.round(num * factor); return ol.format.Polyline.encodeSignedInteger(num); }; @@ -274,8 +275,9 @@ ol.format.Polyline.encodeFloat = function(num, opt_factor) { * @return {number} The decoded floating point number. */ ol.format.Polyline.decodeFloat = function(encoded, opt_factor) { + var factor = goog.isDef(opt_factor) ? opt_factor : 1e5; var result = ol.format.Polyline.decodeSignedInteger(encoded); - return result / (opt_factor || 1e5); + return result / factor; }; @@ -317,11 +319,11 @@ ol.format.Polyline.encodeUnsignedInteger = function(num) { var value, encoded = ''; while (num >= 0x20) { value = (0x20 | (num & 0x1f)) + 63; - encoded += (String.fromCharCode(value)); + encoded += String.fromCharCode(value); num >>= 5; } value = num + 63; - encoded += (String.fromCharCode(value)); + encoded += String.fromCharCode(value); return encoded; }; @@ -336,14 +338,15 @@ ol.format.Polyline.decodeUnsignedInteger = function(encoded) { var result = 0; var shift = 0; - var encodedLength = encoded.length; - for (var i = 0; i < encodedLength; ++i) { + var i, ii; + for (i = 0, ii = encoded.length; i < ii; ++i) { var b = encoded.charCodeAt(i) - 63; result |= (b & 0x1f) << shift; - if (b < 0x20) + if (b < 0x20) { break; + } shift += 5; } From 36a5a53ba248544869b34346e3a27312349cd45a Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Tue, 17 Dec 2013 01:14:43 +0100 Subject: [PATCH 612/919] Optimize encode --- src/ol/format/polylineformat.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/ol/format/polylineformat.js b/src/ol/format/polylineformat.js index 98377cd684..a661f145c1 100644 --- a/src/ol/format/polylineformat.js +++ b/src/ol/format/polylineformat.js @@ -171,15 +171,8 @@ ol.format.Polyline.encodeSignedIntegers = function(numbers) { var i, ii; for (i = 0, ii = numbers.length; i < ii; ++i) { var num = numbers[i]; - - var signedNum = num << 1; - if (num < 0) { - signedNum = ~(signedNum); - } - - numbers[i] = signedNum; + numbers[i] = (num < 0) ? ~(num << 1) : (num << 1); } - return ol.format.Polyline.encodeUnsignedIntegers(numbers); }; From 1864f204f7ce45f103b44a64fd6837e584a2b602 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 17 Dec 2013 01:15:54 +0100 Subject: [PATCH 613/919] Add ol.format.Polyline#readProjectionFromText --- src/ol/format/polylineformat.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ol/format/polylineformat.js b/src/ol/format/polylineformat.js index a661f145c1..b2689ed524 100644 --- a/src/ol/format/polylineformat.js +++ b/src/ol/format/polylineformat.js @@ -5,6 +5,7 @@ goog.require('ol.Feature'); goog.require('ol.format.Text'); goog.require('ol.geom.LineString'); goog.require('ol.geom.flat'); +goog.require('ol.proj'); @@ -377,6 +378,14 @@ ol.format.Polyline.prototype.readGeometryFromText = function(text) { }; +/** + * @inheritDoc + */ +ol.format.Polyline.prototype.readProjectionFromText = function(text) { + return ol.proj.get('EPSG:4326'); +}; + + /** * @inheritDoc */ From ed332dba19e8731a8140824816681a3fb8bccb1c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 17 Dec 2013 01:16:16 +0100 Subject: [PATCH 614/919] Remove whitespace --- src/ol/format/polylineformat.js | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/ol/format/polylineformat.js b/src/ol/format/polylineformat.js index b2689ed524..2d5ef64eb3 100644 --- a/src/ol/format/polylineformat.js +++ b/src/ol/format/polylineformat.js @@ -148,14 +148,11 @@ ol.format.Polyline.encodeFloats = function(numbers, opt_factor) { */ ol.format.Polyline.decodeFloats = function(encoded, opt_factor) { var factor = goog.isDef(opt_factor) ? opt_factor : 1e5; - var numbers = ol.format.Polyline.decodeSignedIntegers(encoded); - var i, ii; for (i = 0, ii = numbers.length; i < ii; ++i) { numbers[i] /= factor; } - return numbers; }; @@ -186,13 +183,11 @@ ol.format.Polyline.encodeSignedIntegers = function(numbers) { */ ol.format.Polyline.decodeSignedIntegers = function(encoded) { var numbers = ol.format.Polyline.decodeUnsignedIntegers(encoded); - var i, ii; for (i = 0, ii = numbers.length; i < ii; ++i) { var num = numbers[i]; numbers[i] = (num & 1) ? ~(num >> 1) : (num >> 1); } - return numbers; }; @@ -205,12 +200,10 @@ ol.format.Polyline.decodeSignedIntegers = function(encoded) { */ ol.format.Polyline.encodeUnsignedIntegers = function(numbers) { var encoded = ''; - var i, ii; for (i = 0, ii = numbers.length; i < ii; ++i) { encoded += ol.format.Polyline.encodeUnsignedInteger(numbers[i]); } - return encoded; }; @@ -223,16 +216,12 @@ ol.format.Polyline.encodeUnsignedIntegers = function(numbers) { */ ol.format.Polyline.decodeUnsignedIntegers = function(encoded) { var numbers = []; - var current = 0; var shift = 0; - var i, ii; for (i = 0, ii = encoded.length; i < ii; ++i) { var b = encoded.charCodeAt(i) - 63; - current |= (b & 0x1f) << shift; - if (b < 0x20) { numbers.push(current); current = 0; @@ -241,7 +230,6 @@ ol.format.Polyline.decodeUnsignedIntegers = function(encoded) { shift += 5; } } - return numbers; }; @@ -286,7 +274,6 @@ ol.format.Polyline.encodeSignedInteger = function(num) { if (num < 0) { signedNum = ~(signedNum); } - return ol.format.Polyline.encodeUnsignedInteger(signedNum); }; @@ -331,20 +318,15 @@ ol.format.Polyline.encodeUnsignedInteger = function(num) { ol.format.Polyline.decodeUnsignedInteger = function(encoded) { var result = 0; var shift = 0; - var i, ii; for (i = 0, ii = encoded.length; i < ii; ++i) { var b = encoded.charCodeAt(i) - 63; - result |= (b & 0x1f) << shift; - if (b < 0x20) { break; } - shift += 5; } - return result; }; From 1d1dbb08c9b0fa84da63cd2d381c50bf1869fb5a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 17 Dec 2013 01:16:41 +0100 Subject: [PATCH 615/919] Use stronger instanceof assertion --- src/ol/format/polylineformat.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/format/polylineformat.js b/src/ol/format/polylineformat.js index 2d5ef64eb3..af36338564 100644 --- a/src/ol/format/polylineformat.js +++ b/src/ol/format/polylineformat.js @@ -395,7 +395,7 @@ ol.format.Polyline.prototype.writeFeaturesText = function(features) { * @inheritDoc */ ol.format.Polyline.prototype.writeGeometryText = function(geometry) { - goog.asserts.assert(geometry.getType() == ol.geom.GeometryType.LINE_STRING); + goog.asserts.assertInstanceof(geometry, ol.geom.LineString); var flatCoordinates = geometry.getFlatCoordinates(); var stride = geometry.getStride(); return ol.format.Polyline.encodeFlatCoordinates(flatCoordinates, stride); From ca0b77d0e30ae79a826d510ad8e0032d499c5325 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 12 Dec 2013 15:16:59 +0100 Subject: [PATCH 616/919] Add pixelRatio to ol.source.Image#getImage --- src/ol/renderer/canvas/canvasimagelayerrenderer.js | 4 ++-- src/ol/renderer/dom/domimagelayerrenderer.js | 4 ++-- src/ol/renderer/webgl/webglimagelayerrenderer.js | 4 ++-- src/ol/source/imagesource.js | 1 + src/ol/source/imagestaticsource.js | 2 +- src/ol/source/imagewmssource.js | 2 +- src/ol/source/mapguidesource.js | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index dc6a94d298..4b7e4eb534 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -78,8 +78,8 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame = var hints = frameState.viewHints; if (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.INTERACTING]) { - image = imageSource.getImage( - frameState.extent, viewResolution, view2DState.projection); + image = imageSource.getImage(frameState.extent, viewResolution, + frameState.devicePixelRatio, view2DState.projection); if (!goog.isNull(image)) { var imageState = image.getState(); if (imageState == ol.ImageState.IDLE) { diff --git a/src/ol/renderer/dom/domimagelayerrenderer.js b/src/ol/renderer/dom/domimagelayerrenderer.js index 47d7845b7a..3e82b6bac3 100644 --- a/src/ol/renderer/dom/domimagelayerrenderer.js +++ b/src/ol/renderer/dom/domimagelayerrenderer.js @@ -66,8 +66,8 @@ ol.renderer.dom.ImageLayer.prototype.prepareFrame = var hints = frameState.viewHints; if (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.INTERACTING]) { - var image_ = imageSource.getImage( - frameState.extent, viewResolution, view2DState.projection); + var image_ = imageSource.getImage(frameState.extent, viewResolution, + frameState.devicePixelRatio, view2DState.projection); if (!goog.isNull(image_)) { var imageState = image_.getState(); if (imageState == ol.ImageState.IDLE) { diff --git a/src/ol/renderer/webgl/webglimagelayerrenderer.js b/src/ol/renderer/webgl/webglimagelayerrenderer.js index 9915739da3..7a3485febc 100644 --- a/src/ol/renderer/webgl/webglimagelayerrenderer.js +++ b/src/ol/renderer/webgl/webglimagelayerrenderer.js @@ -95,8 +95,8 @@ ol.renderer.webgl.ImageLayer.prototype.prepareFrame = var hints = frameState.viewHints; if (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.INTERACTING]) { - var image_ = imageSource.getImage( - frameState.extent, viewResolution, view2DState.projection); + var image_ = imageSource.getImage(frameState.extent, viewResolution, + frameState.devicePixelRatio, view2DState.projection); if (!goog.isNull(image_)) { var imageState = image_.getState(); if (imageState == ol.ImageState.IDLE) { diff --git a/src/ol/source/imagesource.js b/src/ol/source/imagesource.js index 31b9c1d384..04c111af63 100644 --- a/src/ol/source/imagesource.js +++ b/src/ol/source/imagesource.js @@ -113,6 +113,7 @@ ol.source.Image.prototype.findNearestResolution = /** * @param {ol.Extent} extent Extent. * @param {number} resolution Resolution. + * @param {number} pixelRatio Pixel ratio. * @param {ol.proj.Projection} projection Projection. * @return {ol.Image} Single image. */ diff --git a/src/ol/source/imagestaticsource.js b/src/ol/source/imagestaticsource.js index 43ce4f62bd..fd51f361be 100644 --- a/src/ol/source/imagestaticsource.js +++ b/src/ol/source/imagestaticsource.js @@ -48,7 +48,7 @@ goog.inherits(ol.source.ImageStatic, ol.source.Image); * @inheritDoc */ ol.source.ImageStatic.prototype.getImage = - function(extent, resolution, projection) { + function(extent, resolution, pixelRatio, projection) { if (ol.extent.intersects(extent, this.image_.getExtent())) { return this.image_; } diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 3a123f93b8..7f6e25ba99 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -69,7 +69,7 @@ ol.source.ImageWMS.prototype.getParams = function() { * @inheritDoc */ ol.source.ImageWMS.prototype.getImage = - function(extent, resolution, projection) { + function(extent, resolution, pixelRatio, projection) { resolution = this.findNearestResolution(resolution); var image = this.image_; diff --git a/src/ol/source/mapguidesource.js b/src/ol/source/mapguidesource.js index 8389f17f10..52913f93cf 100644 --- a/src/ol/source/mapguidesource.js +++ b/src/ol/source/mapguidesource.js @@ -72,7 +72,7 @@ goog.inherits(ol.source.MapGuide, ol.source.Image); * @inheritDoc */ ol.source.MapGuide.prototype.getImage = - function(extent, resolution, projection) { + function(extent, resolution, pixelRatio, projection) { resolution = this.findNearestResolution(resolution); var image = this.image_; From 78ec21fb8531cfc4c25140a5a8a5e9328a893ae8 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 16 Dec 2013 12:08:11 +0100 Subject: [PATCH 617/919] Add pixelRatio to ol.source.Image#createImage --- src/ol/source/imagesource.js | 3 ++- src/ol/source/imagestaticsource.js | 2 +- src/ol/source/imagewmssource.js | 3 ++- src/ol/source/mapguidesource.js | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ol/source/imagesource.js b/src/ol/source/imagesource.js index 04c111af63..66fd16e24f 100644 --- a/src/ol/source/imagesource.js +++ b/src/ol/source/imagesource.js @@ -78,12 +78,13 @@ goog.inherits(ol.source.Image, ol.source.Source); * @protected * @param {ol.Extent} extent Extent. * @param {number} resolution Resolution. + * @param {number} pixelRatio Pixel ratio. * @param {ol.Size} size Size. * @param {ol.proj.Projection} projection Projection. * @return {ol.Image} Single image. */ ol.source.Image.prototype.createImage = - function(extent, resolution, size, projection) { + function(extent, resolution, pixelRatio, size, projection) { var image = null; var imageUrl = this.imageUrlFunction(extent, size, projection); if (goog.isDef(imageUrl)) { diff --git a/src/ol/source/imagestaticsource.js b/src/ol/source/imagestaticsource.js index fd51f361be..38e534035c 100644 --- a/src/ol/source/imagestaticsource.js +++ b/src/ol/source/imagestaticsource.js @@ -38,7 +38,7 @@ ol.source.ImageStatic = function(options) { * @type {ol.Image} */ this.image_ = this.createImage( - imageExtent, imageResolution, imageSize, projection); + imageExtent, imageResolution, 1, imageSize, projection); }; goog.inherits(ol.source.ImageStatic, ol.source.Image); diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 7f6e25ba99..84431b58fa 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -85,7 +85,8 @@ ol.source.ImageWMS.prototype.getImage = var height = (extent[3] - extent[1]) / resolution; var size = [width, height]; - this.image_ = this.createImage(extent, resolution, size, projection); + this.image_ = this.createImage( + extent, resolution, pixelRatio, size, projection); return this.image_; }; diff --git a/src/ol/source/mapguidesource.js b/src/ol/source/mapguidesource.js index 52913f93cf..c07cbeb18c 100644 --- a/src/ol/source/mapguidesource.js +++ b/src/ol/source/mapguidesource.js @@ -90,7 +90,8 @@ ol.source.MapGuide.prototype.getImage = var height = (extent[3] - extent[1]) / resolution; var size = [width, height]; - this.image_ = this.createImage(extent, resolution, size, projection); + this.image_ = this.createImage( + extent, resolution, pixelRatio, size, projection); return this.image_; }; From db322f9ade6bbf725e625b92ae14b1166891743d Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 16 Dec 2013 12:48:58 +0100 Subject: [PATCH 618/919] Add pixelRatio param to ol.Image constructor --- src/ol/image.js | 18 +++++++++++++++++- src/ol/source/imagesource.js | 2 +- src/ol/source/imagewmssource.js | 1 + src/ol/source/mapguidesource.js | 1 + 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/ol/image.js b/src/ol/image.js index adea4b9d16..ba5d6dcc52 100644 --- a/src/ol/image.js +++ b/src/ol/image.js @@ -28,11 +28,13 @@ ol.ImageState = { * @extends {goog.events.EventTarget} * @param {ol.Extent} extent Extent. * @param {number} resolution Resolution. + * @param {number} pixelRatio Pixel ratio. * @param {string} src Image source URI. * @param {?string} crossOrigin Cross origin. * @param {Array.} attributions Attributions. */ -ol.Image = function(extent, resolution, src, crossOrigin, attributions) { +ol.Image = + function(extent, resolution, pixelRatio, src, crossOrigin, attributions) { goog.base(this); @@ -54,6 +56,12 @@ ol.Image = function(extent, resolution, src, crossOrigin, attributions) { */ this.src_ = src; + /** + * @private + * @type {number} + */ + this.pixelRatio_ = pixelRatio; + /** * @private * @type {number} @@ -137,6 +145,14 @@ ol.Image.prototype.getImageElement = function(opt_context) { }; +/** + * @return {number} PixelRatio. + */ +ol.Image.prototype.getPixelRatio = function() { + return this.pixelRatio_; +}; + + /** * @return {number} Resolution. */ diff --git a/src/ol/source/imagesource.js b/src/ol/source/imagesource.js index 66fd16e24f..2fbcb87bb1 100644 --- a/src/ol/source/imagesource.js +++ b/src/ol/source/imagesource.js @@ -89,7 +89,7 @@ ol.source.Image.prototype.createImage = var imageUrl = this.imageUrlFunction(extent, size, projection); if (goog.isDef(imageUrl)) { image = new ol.Image( - extent, resolution, imageUrl, this.crossOrigin_, + extent, resolution, pixelRatio, imageUrl, this.crossOrigin_, this.getAttributions()); } return image; diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 84431b58fa..21c3deeed7 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -75,6 +75,7 @@ ol.source.ImageWMS.prototype.getImage = var image = this.image_; if (!goog.isNull(image) && image.getResolution() == resolution && + image.getPixelRatio() == pixelRatio && ol.extent.containsExtent(image.getExtent(), extent)) { return image; } diff --git a/src/ol/source/mapguidesource.js b/src/ol/source/mapguidesource.js index c07cbeb18c..4d7d8001ca 100644 --- a/src/ol/source/mapguidesource.js +++ b/src/ol/source/mapguidesource.js @@ -78,6 +78,7 @@ ol.source.MapGuide.prototype.getImage = var image = this.image_; if (!goog.isNull(image) && image.getResolution() == resolution && + image.getPixelRatio() == pixelRatio && ol.extent.containsExtent(image.getExtent(), extent)) { return image; } From c84782bfc6bf56d96d994dd0afce10586e3d6300 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 16 Dec 2013 17:07:37 +0100 Subject: [PATCH 619/919] Use the image pixelRatio in ol.renderer.canvas.ImageLayer --- src/ol/renderer/canvas/canvasimagelayerrenderer.js | 2 +- src/ol/source/imagewmssource.js | 2 +- src/ol/source/mapguidesource.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index 4b7e4eb534..69a41c6eb5 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -95,7 +95,7 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame = if (!goog.isNull(this.image_)) { image = this.image_; var imageExtent = image.getExtent(); - var imageResolution = image.getResolution(); + var imageResolution = image.getResolution() / image.getPixelRatio(); var devicePixelRatio = frameState.devicePixelRatio; ol.vec.Mat4.makeTransform2D(this.imageTransform_, devicePixelRatio * frameState.size[0] / 2, diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 21c3deeed7..752351fb2a 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -84,7 +84,7 @@ ol.source.ImageWMS.prototype.getImage = ol.extent.scaleFromCenter(extent, this.ratio_); var width = (extent[2] - extent[0]) / resolution; var height = (extent[3] - extent[1]) / resolution; - var size = [width, height]; + var size = [width * pixelRatio, height * pixelRatio]; this.image_ = this.createImage( extent, resolution, pixelRatio, size, projection); diff --git a/src/ol/source/mapguidesource.js b/src/ol/source/mapguidesource.js index 4d7d8001ca..2e9ba8aa44 100644 --- a/src/ol/source/mapguidesource.js +++ b/src/ol/source/mapguidesource.js @@ -89,7 +89,7 @@ ol.source.MapGuide.prototype.getImage = } var width = (extent[2] - extent[0]) / resolution; var height = (extent[3] - extent[1]) / resolution; - var size = [width, height]; + var size = [width * pixelRatio, height * pixelRatio]; this.image_ = this.createImage( extent, resolution, pixelRatio, size, projection); From 8e6b686f3dafcb5d5eb68272e5ca465d9d384874 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 17 Dec 2013 09:43:21 +0100 Subject: [PATCH 620/919] Add hidpi option to ol.source.ImageWMS and ol.source.MapGuide --- src/objectliterals.jsdoc | 4 ++++ src/ol/source/imagewmssource.js | 10 ++++++++-- src/ol/source/mapguidesource.js | 7 +++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index df4e7c4e28..375d0ea464 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -514,6 +514,8 @@ * @property {number|undefined} displayDpi The display resolution. Default is `96`. * @property {number|undefined} metersPerUnit The meters-per-unit value. Default is `1`. * @property {ol.Extent|undefined} extent Extent. + * @property {boolean|undefined} hidpi Use the `ol.Map#devicePixelRatio` value when + * requesting the image from the remote server. Default is `true`. * @property {boolean|undefined} useOverlay If `true`, will use * `GETDYNAMICMAPOVERLAYIMAGE`. * @property {ol.proj.ProjectionLike} projection Projection. @@ -560,6 +562,8 @@ * @property {null|string|undefined} crossOrigin crossOrigin setting for image * requests. * @property {ol.Extent|undefined} extent Extent. + * @property {boolean|undefined} hidpi Use the `ol.Map#devicePixelRatio` value when + * requesting the image from the remote server. Default is `true`. * @property {Object.} params WMS request parameters. At least a * `LAYERS` param is required. `STYLES` is `` by default. `VERSION` is * `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX` and `CRS` (`SRS` for WMS diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 752351fb2a..a52a8b698f 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -38,6 +38,12 @@ ol.source.ImageWMS = function(options) { imageUrlFunction: imageUrlFunction }); + /** + * @private + * @type {boolean} + */ + this.hidpi_ = goog.isDef(options.hidpi) ? options.hidpi : true; + /** * @private * @type {ol.Image} @@ -48,8 +54,7 @@ ol.source.ImageWMS = function(options) { * @private * @type {number} */ - this.ratio_ = goog.isDef(options.ratio) ? - options.ratio : 1.5; + this.ratio_ = goog.isDef(options.ratio) ? options.ratio : 1.5; }; goog.inherits(ol.source.ImageWMS, ol.source.Image); @@ -71,6 +76,7 @@ ol.source.ImageWMS.prototype.getParams = function() { ol.source.ImageWMS.prototype.getImage = function(extent, resolution, pixelRatio, projection) { resolution = this.findNearestResolution(resolution); + pixelRatio = this.hidpi_ ? pixelRatio : 1; var image = this.image_; if (!goog.isNull(image) && diff --git a/src/ol/source/mapguidesource.js b/src/ol/source/mapguidesource.js index 2e9ba8aa44..cd831e629d 100644 --- a/src/ol/source/mapguidesource.js +++ b/src/ol/source/mapguidesource.js @@ -31,6 +31,12 @@ ol.source.MapGuide = function(options) { imageUrlFunction: imageUrlFunction }); + /** + * @private + * @type {boolean} + */ + this.hidpi_ = goog.isDef(options.hidpi) ? options.hidpi : true; + /** * @private * @type {number} @@ -74,6 +80,7 @@ goog.inherits(ol.source.MapGuide, ol.source.Image); ol.source.MapGuide.prototype.getImage = function(extent, resolution, pixelRatio, projection) { resolution = this.findNearestResolution(resolution); + pixelRatio = this.hidpi_ ? pixelRatio : 1; var image = this.image_; if (!goog.isNull(image) && From 76bddcf042466d24b735980151964e26a6bc3b08 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 17 Dec 2013 17:46:01 +0100 Subject: [PATCH 621/919] Pass tolerance to ol.render.canvas.ReplayGroup constructor --- src/ol/render/canvas/canvasreplay.js | 9 ++++++++- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 14763abc57..42eebc6f86 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1063,9 +1063,10 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { * @constructor * @implements {ol.render.IReplayGroup} * @param {number} pixelRatio Pixel ratio. + * @param {number} tolerance Tolerance. * @struct */ -ol.render.canvas.ReplayGroup = function(pixelRatio) { +ol.render.canvas.ReplayGroup = function(pixelRatio, tolerance) { /** * @private @@ -1073,6 +1074,12 @@ ol.render.canvas.ReplayGroup = function(pixelRatio) { */ this.pixelRatio_ = pixelRatio; + /** + * @private + * @type {number} + */ + this.tolerance_ = tolerance; + /** * @private * @type {Object. Date: Tue, 17 Dec 2013 17:46:28 +0100 Subject: [PATCH 622/919] Pass tolerance to ol.render.canvas.Replay constructors --- src/ol/render/canvas/canvasreplay.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 42eebc6f86..58c62adf41 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -42,10 +42,11 @@ ol.render.canvas.Instruction = { * @constructor * @implements {ol.render.IRender} * @param {number} pixelRatio Pixel ratio. + * @param {number} tolerance Tolerance. * @protected * @struct */ -ol.render.canvas.Replay = function(pixelRatio) { +ol.render.canvas.Replay = function(pixelRatio, tolerance) { /** * @protected @@ -53,6 +54,12 @@ ol.render.canvas.Replay = function(pixelRatio) { */ this.pixelRatio = pixelRatio; + /** + * @protected + * @type {number} + */ + this.tolerance = tolerance; + /** * @private * @type {Array.<*>} @@ -438,12 +445,13 @@ ol.render.canvas.Replay.prototype.setTextStyle = goog.abstractMethod; * @constructor * @extends {ol.render.canvas.Replay} * @param {number} pixelRatio Pixel ratio. + * @param {number} tolerance Tolerance. * @protected * @struct */ -ol.render.canvas.ImageReplay = function(pixelRatio) { +ol.render.canvas.ImageReplay = function(pixelRatio, tolerance) { - goog.base(this, pixelRatio); + goog.base(this, pixelRatio, tolerance); /** * @private @@ -597,12 +605,13 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { * @constructor * @extends {ol.render.canvas.Replay} * @param {number} pixelRatio Pixel ratio. + * @param {number} tolerance Tolerance. * @protected * @struct */ -ol.render.canvas.LineStringReplay = function(pixelRatio) { +ol.render.canvas.LineStringReplay = function(pixelRatio, tolerance) { - goog.base(this, pixelRatio); + goog.base(this, pixelRatio, tolerance); /** * @private @@ -800,12 +809,13 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = * @constructor * @extends {ol.render.canvas.Replay} * @param {number} pixelRatio Pixel ratio. + * @param {number} tolerance Tolerance. * @protected * @struct */ -ol.render.canvas.PolygonReplay = function(pixelRatio) { +ol.render.canvas.PolygonReplay = function(pixelRatio, tolerance) { - goog.base(this, pixelRatio); + goog.base(this, pixelRatio, tolerance); /** * @private @@ -1272,7 +1282,7 @@ ol.render.canvas.ReplayGroup.prototype.getReplay = if (!goog.isDef(replay)) { var constructor = ol.render.canvas.BATCH_CONSTRUCTORS_[replayType]; goog.asserts.assert(goog.isDef(constructor)); - replay = new constructor(this.pixelRatio_); + replay = new constructor(this.pixelRatio_, this.tolerance_); replayes[replayType] = replay; } return replay; @@ -1291,7 +1301,7 @@ ol.render.canvas.ReplayGroup.prototype.isEmpty = function() { * @const * @private * @type {Object.} + * function(new: ol.render.canvas.Replay, number, number)>} */ ol.render.canvas.BATCH_CONSTRUCTORS_ = { 'Image': ol.render.canvas.ImageReplay, From 9bc92b2166ea87cf3f8e3edca702d61d50a78f70 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 17 Dec 2013 17:46:43 +0100 Subject: [PATCH 623/919] Always quantize all polygons --- src/ol/render/canvas/canvasreplay.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 58c62adf41..6ab1f12fcc 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -14,6 +14,7 @@ goog.require('ol.array'); goog.require('ol.color'); goog.require('ol.extent'); goog.require('ol.geom.flat'); +goog.require('ol.geom.simplify'); goog.require('ol.render.IRender'); goog.require('ol.render.IReplayGroup'); goog.require('ol.render.canvas'); @@ -984,6 +985,18 @@ ol.render.canvas.PolygonReplay.prototype.finish = function() { goog.asserts.assert(!goog.isNull(this.state_)); this.reverseHitDetectionInstructions_(); this.state_ = null; + // We want to preserve topology when drawing polygons. Polygons are + // simplified using quantization and point elimination. However, we might + // have received a mix of quantized and non-quantized geometries, so ensure + // that all are quantized by quantizing all coordinates in the batch. + var tolerance = this.tolerance; + if (tolerance !== 0) { + var coordinates = this.coordinates; + var i, ii; + for (i = 0, ii = coordinates.length; i < ii; ++i) { + coordinates[i] = ol.geom.simplify.snap(coordinates[i], tolerance); + } + } }; From 3e83809880ad19b393f707ec891be3f757ce4659 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 17 Dec 2013 17:51:37 +0100 Subject: [PATCH 624/919] Add serverType option to ol.source.ImageWMS constructor --- examples/wms-image-custom-proj.js | 2 ++ examples/wms-image.js | 1 + examples/wms-no-proj.js | 1 + src/objectliterals.jsdoc | 3 +++ src/ol/source/imagewmssource.js | 11 ++++++++++ src/ol/source/wmssource.js | 34 +++++++++++++++++++++++++++++-- 6 files changed, 50 insertions(+), 2 deletions(-) diff --git a/examples/wms-image-custom-proj.js b/examples/wms-image-custom-proj.js index 80262a7c03..4548247b84 100644 --- a/examples/wms-image-custom-proj.js +++ b/examples/wms-image-custom-proj.js @@ -28,6 +28,7 @@ var layers = [ 'LAYERS': 'ch.swisstopo.pixelkarte-farbe-pk1000.noscale', 'FORMAT': 'image/jpeg' }, + serverType: 'mapserver', extent: extent }) }), @@ -42,6 +43,7 @@ var layers = [ 'National parks / geo.admin.ch' })], params: {'LAYERS': 'ch.bafu.schutzgebiete-paerke_nationaler_bedeutung'}, + serverType: 'mapserver', extent: extent }) }) diff --git a/examples/wms-image.js b/examples/wms-image.js index f6c753779e..dd495aac46 100644 --- a/examples/wms-image.js +++ b/examples/wms-image.js @@ -15,6 +15,7 @@ var layers = [ source: new ol.source.ImageWMS({ url: 'http://demo.opengeo.org/geoserver/wms', params: {'LAYERS': 'topp:states'}, + serverType: 'geoserver', extent: [-13884991, 2870341, -7455066, 6338219] }) }) diff --git a/examples/wms-no-proj.js b/examples/wms-no-proj.js index 09e7da57a8..260961b6b6 100644 --- a/examples/wms-no-proj.js +++ b/examples/wms-no-proj.js @@ -37,6 +37,7 @@ var layers = [ })], crossOrigin: 'anonymous', params: {'LAYERS': 'ch.bafu.schutzgebiete-paerke_nationaler_bedeutung'}, + serverType: 'mapserver', url: 'http://wms.geo.admin.ch/' }) }) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 375d0ea464..3fb309839e 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -516,6 +516,9 @@ * @property {ol.Extent|undefined} extent Extent. * @property {boolean|undefined} hidpi Use the `ol.Map#devicePixelRatio` value when * requesting the image from the remote server. Default is `true`. + * @property {ol.source.wms.ServerType|undefined} serverType The type of the remote WMS + * server: `mapserver`, `geoserver` or `qgis`. Only needed if `hidpi` is `true`. + * Default is `undefined`. * @property {boolean|undefined} useOverlay If `true`, will use * `GETDYNAMICMAPOVERLAYIMAGE`. * @property {ol.proj.ProjectionLike} projection Projection. diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index a52a8b698f..89b228408c 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -38,6 +38,12 @@ ol.source.ImageWMS = function(options) { imageUrlFunction: imageUrlFunction }); + /** + * @private + * @type {ol.source.wms.ServerType|undefined} + */ + this.serverType_ = options.serverType; + /** * @private * @type {boolean} @@ -92,6 +98,11 @@ ol.source.ImageWMS.prototype.getImage = var height = (extent[3] - extent[1]) / resolution; var size = [width * pixelRatio, height * pixelRatio]; + if (goog.isDef(this.serverType_) && pixelRatio > 1) { + var param = ol.source.wms.getDpiParam(this.serverType_, pixelRatio); + goog.object.extend(this.params_, param); + } + this.image_ = this.createImage( extent, resolution, pixelRatio, size, projection); return this.image_; diff --git a/src/ol/source/wmssource.js b/src/ol/source/wmssource.js index 9fdd7a80ad..47e8968d1e 100644 --- a/src/ol/source/wmssource.js +++ b/src/ol/source/wmssource.js @@ -1,9 +1,20 @@ goog.provide('ol.source.wms'); +goog.require('goog.asserts'); goog.require('goog.object'); goog.require('goog.uri.utils'); +/** + * @enum {string} + */ +ol.source.wms.ServerType = { + MAPSERVER: 'mapserver', + GEOSERVER: 'geoserver', + QGIS: 'qgis' +}; + + /** * @param {string} baseUrl WMS base URL. * @param {Object.} params Request parameters. @@ -12,8 +23,7 @@ goog.require('goog.uri.utils'); * @param {ol.proj.Projection} projection Projection. * @return {string} WMS GetMap request URL. */ -ol.source.wms.getUrl = - function(baseUrl, params, extent, size, projection) { +ol.source.wms.getUrl = function(baseUrl, params, extent, size, projection) { var baseParams = { 'SERVICE': 'WMS', 'VERSION': '1.3.0', @@ -40,3 +50,23 @@ ol.source.wms.getUrl = return goog.uri.utils.appendParamsFromMap(baseUrl, baseParams); }; + + +/** + * @param {ol.source.wms.ServerType} serverType Server name. + * @param {number} pixelRatio Pixel ratio. + * @return {Object.} + */ +ol.source.wms.getDpiParam = function(serverType, pixelRatio) { + var param = {}; + if (serverType == ol.source.wms.ServerType.MAPSERVER) { + param['MAP_RESOLUTION'] = 90 * pixelRatio; + } else if (serverType == ol.source.wms.ServerType.GEOSERVER) { + param['FORMAT_OPTION'] = 'dpi:' + 90 * pixelRatio; + } else if (serverType == ol.source.wms.ServerType.QGIS) { + param['DPI'] = 90 * pixelRatio; + } else { + goog.asserts.fail(); + } + return param; +}; From 4fc6c367242a6c4ac04ebe764699293070c23268 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Wed, 11 Dec 2013 16:59:42 +0100 Subject: [PATCH 625/919] Add support for features with multiples geometries --- src/ol/feature.exports | 2 + src/ol/feature.js | 27 ++++- test/spec/ol/feature.test.js | 198 +++++++++++++++++++++++++++++++++++ 3 files changed, 225 insertions(+), 2 deletions(-) create mode 100644 test/spec/ol/feature.test.js diff --git a/src/ol/feature.exports b/src/ol/feature.exports index 69f6322038..772e6d087e 100644 --- a/src/ol/feature.exports +++ b/src/ol/feature.exports @@ -1,4 +1,6 @@ @exportSymbol ol.Feature @exportProperty ol.Feature.prototype.getGeometry +@exportProperty ol.Feature.prototype.getGeometryName +@exportProperty ol.Feature.prototype.setGeometryName @exportProperty ol.Feature.prototype.getId @exportProperty ol.Feature.prototype.setId diff --git a/src/ol/feature.js b/src/ol/feature.js index 63127bb16b..90c5555407 100644 --- a/src/ol/feature.js +++ b/src/ol/feature.js @@ -40,6 +40,12 @@ ol.Feature = function(opt_geometryOrValues) { */ this.id_ = undefined; + /** + * @type {string} + * @private + */ + this.geometryName_ = ol.FeatureProperty.GEOMETRY; + /** * @private * @type {number} @@ -89,7 +95,7 @@ ol.Feature.prototype.dispatchChangeEvent = function() { */ ol.Feature.prototype.getGeometry = function() { return /** @type {ol.geom.Geometry|undefined} */ ( - this.get(ol.FeatureProperty.GEOMETRY)); + this.get(this.geometryName_)); }; goog.exportProperty( ol.Feature.prototype, @@ -105,6 +111,14 @@ ol.Feature.prototype.getId = function() { }; +/** + * @return {string} Geometry property name. + */ +ol.Feature.prototype.getGeometryName = function() { + return this.geometryName_; +}; + + /** * @return {number} Revision. */ @@ -163,7 +177,7 @@ ol.Feature.prototype.handleStyleFunctionChange_ = function() { * @param {ol.geom.Geometry|undefined} geometry Geometry. */ ol.Feature.prototype.setGeometry = function(geometry) { - this.set(ol.FeatureProperty.GEOMETRY, geometry); + this.set(this.geometryName_, geometry); }; goog.exportProperty( ol.Feature.prototype, @@ -189,3 +203,12 @@ goog.exportProperty( ol.Feature.prototype.setId = function(id) { this.id_ = id; }; + + +/** + * @param {string} name Geometry property name. + */ +ol.Feature.prototype.setGeometryName = function(name) { + this.geometryName_ = name; + this.handleGeometryChanged_(); +}; diff --git a/test/spec/ol/feature.test.js b/test/spec/ol/feature.test.js new file mode 100644 index 0000000000..7f89004ecd --- /dev/null +++ b/test/spec/ol/feature.test.js @@ -0,0 +1,198 @@ +goog.provide('ol.test.Feature'); + +describe('ol.Feature', function() { + + describe('constructor', function() { + + it('creates a new feature', function() { + var feature = new ol.Feature(); + expect(feature).to.be.a(ol.Feature); + }); + + it('takes attribute values', function() { + var feature = new ol.Feature({ + foo: 'bar' + }); + expect(feature.get('foo')).to.be('bar'); + }); + + it('can store the feature\'s commonly used id', function() { + var feature = new ol.Feature(); + feature.setId('foo'); + expect(feature.getId()).to.be('foo'); + }); + + it('will set the default geometry', function() { + var feature = new ol.Feature({ + geometry: new ol.geom.Point([10, 20]), + foo: 'bar' + }); + var geometry = feature.getGeometry(); + expect(geometry).to.be.a(ol.geom.Point); + expect(feature.get('geometry')).to.be(geometry); + }); + + }); + + describe('#get()', function() { + + it('returns values set at construction', function() { + var feature = new ol.Feature({ + a: 'first', + b: 'second' + }); + expect(feature.get('a')).to.be('first'); + expect(feature.get('b')).to.be('second'); + }); + + it('returns undefined for unset attributes', function() { + var feature = new ol.Feature(); + expect(feature.get('a')).to.be(undefined); + }); + + it('returns values set by set', function() { + var feature = new ol.Feature(); + feature.set('a', 'b'); + expect(feature.get('a')).to.be('b'); + }); + + }); + + describe('#getAttributes()', function() { + + it('returns an object with all attributes', function() { + var point = new ol.geom.Point([15, 30]); + var feature = new ol.Feature({ + foo: 'bar', + ten: 10, + geometry: point + }); + + var attributes = feature.getProperties(); + + var keys = goog.object.getKeys(attributes); + expect(keys.sort()).to.eql(['foo', 'geometry', 'ten']); + + expect(attributes.foo).to.be('bar'); + expect(attributes.geometry).to.be(point); + expect(attributes.ten).to.be(10); + }); + + }); + + + describe('#getGeometry()', function() { + + var point = new ol.geom.Point([15, 30]); + + it('returns null for no geometry', function() { + var feature = new ol.Feature(); + expect(feature.getGeometry()).to.be(null); + }); + + it('gets the geometry set at construction', function() { + var feature = new ol.Feature({ + geometry: point + }); + expect(feature.getGeometry()).to.be(point); + }); + + it('gets any geometry set by setGeometry', function() { + var feature = new ol.Feature(); + feature.setGeometry(point); + expect(feature.getGeometry()).to.be(point); + + var point2 = new ol.geom.Point([1, 2]); + feature.setGeometry(point2); + expect(feature.getGeometry()).to.be(point2); + }); + + }); + + describe('#set()', function() { + + it('sets values', function() { + var feature = new ol.Feature({ + a: 'first', + b: 'second' + }); + feature.set('a', 'new'); + expect(feature.get('a')).to.be('new'); + }); + + it('can be used to set the geometry', function() { + var point = new ol.geom.Point([3, 4]); + var feature = new ol.Feature({ + geometry: new ol.geom.Point([1, 2]) + }); + feature.set('geometry', point); + expect(feature.get('geometry')).to.be(point); + expect(feature.getGeometry()).to.be(point); + }); + + it('can be used to set attributes with arbitrary names', function() { + + var feature = new ol.Feature(); + + feature.set('toString', 'string'); + expect(feature.get('toString')).to.be('string'); + expect(typeof feature.toString).to.be('function'); + + feature.set('getGeometry', 'x'); + expect(feature.get('getGeometry')).to.be('x'); + + feature.set('geometry', new ol.geom.Point([1, 2])); + expect(feature.getGeometry()).to.be.a(ol.geom.Point); + + }); + + }); + + describe('#setGeometry()', function() { + + var point = new ol.geom.Point([15, 30]); + + it('sets the default geometry', function() { + var feature = new ol.Feature(); + feature.setGeometry(point); + expect(feature.get(ol.FeatureProperty.GEOMETRY)).to.be(point); + }); + + it('replaces previous default geometry', function() { + var feature = new ol.Feature({ + geometry: point + }); + expect(feature.getGeometry()).to.be(point); + + var point2 = new ol.geom.Point([1, 2]); + feature.setGeometry(point2); + expect(feature.getGeometry()).to.be(point2); + }); + + }); + + describe('#setGeometryName()', function() { + + var point = new ol.geom.Point([15, 30]); + + it('sets property where to to look at geometry', function() { + var feature = new ol.Feature(); + feature.setGeometry(point); + expect(feature.getGeometry()).to.be(point); + + var point2 = new ol.geom.Point([1, 2]); + feature.set('altGeometry', point2); + expect(feature.getGeometry()).to.be(point); + feature.setGeometryName('altGeometry'); + expect(feature.getGeometry()).to.be(point2); + }); + + }); + +}); + + +goog.require('goog.events'); +goog.require('goog.object'); +goog.require('ol.Feature'); +goog.require('ol.geom.Point'); From 97ed71dfe2e0291623ce19ef8422860ef3a1d6c9 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Wed, 18 Dec 2013 11:13:32 +0100 Subject: [PATCH 626/919] Remove useless export (already defined in code) --- src/ol/feature.exports | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ol/feature.exports b/src/ol/feature.exports index 772e6d087e..08e79a2c8c 100644 --- a/src/ol/feature.exports +++ b/src/ol/feature.exports @@ -1,5 +1,4 @@ @exportSymbol ol.Feature -@exportProperty ol.Feature.prototype.getGeometry @exportProperty ol.Feature.prototype.getGeometryName @exportProperty ol.Feature.prototype.setGeometryName @exportProperty ol.Feature.prototype.getId From 59df68fe68e0380537cbfddf0540bebc74192927 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Wed, 18 Dec 2013 13:59:57 +0100 Subject: [PATCH 627/919] Update property change listener --- src/ol/feature.js | 6 ++++++ test/spec/ol/feature.test.js | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/ol/feature.js b/src/ol/feature.js index 90c5555407..0193470d28 100644 --- a/src/ol/feature.js +++ b/src/ol/feature.js @@ -209,6 +209,12 @@ ol.Feature.prototype.setId = function(id) { * @param {string} name Geometry property name. */ ol.Feature.prototype.setGeometryName = function(name) { + goog.events.unlisten( + this, ol.Object.getChangeEventType(this.geometryName_), + this.handleGeometryChanged_, false, this); this.geometryName_ = name; + goog.events.listen( + this, ol.Object.getChangeEventType(this.geometryName_), + this.handleGeometryChanged_, false, this); this.handleGeometryChanged_(); }; diff --git a/test/spec/ol/feature.test.js b/test/spec/ol/feature.test.js index 7f89004ecd..d8df678645 100644 --- a/test/spec/ol/feature.test.js +++ b/test/spec/ol/feature.test.js @@ -185,6 +185,24 @@ describe('ol.Feature', function() { expect(feature.getGeometry()).to.be(point); feature.setGeometryName('altGeometry'); expect(feature.getGeometry()).to.be(point2); + + feature.on('change', function() { + expect.fail(); + }); + point.setCoordinates([0, 2]); + }); + + it('changes property listener', function(done) { + var feature = new ol.Feature(); + feature.setGeometry(point); + var point2 = new ol.geom.Point([1, 2]); + feature.set('altGeometry', point2); + feature.setGeometryName('altGeometry'); + + feature.on('change', function() { + done(); + }); + point2.setCoordinates([0, 2]); }); }); From add3cf2233928cda6d9360e38694e0e480b459a9 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Wed, 18 Dec 2013 14:02:48 +0100 Subject: [PATCH 628/919] Remove useless "geometry" FeatureProperty --- src/ol/feature.js | 5 ++--- test/spec/ol/feature.test.js | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ol/feature.js b/src/ol/feature.js index 0193470d28..f930fff6f8 100644 --- a/src/ol/feature.js +++ b/src/ol/feature.js @@ -12,7 +12,6 @@ goog.require('ol.style.Style'); * @enum {string} */ ol.FeatureProperty = { - GEOMETRY: 'geometry', STYLE_FUNCTION: 'styleFunction' }; @@ -44,7 +43,7 @@ ol.Feature = function(opt_geometryOrValues) { * @type {string} * @private */ - this.geometryName_ = ol.FeatureProperty.GEOMETRY; + this.geometryName_ = 'geometry'; /** * @private @@ -59,7 +58,7 @@ ol.Feature = function(opt_geometryOrValues) { this.geometryChangeKey_ = null; goog.events.listen( - this, ol.Object.getChangeEventType(ol.FeatureProperty.GEOMETRY), + this, ol.Object.getChangeEventType(this.geometryName_), this.handleGeometryChanged_, false, this); goog.events.listen( this, ol.Object.getChangeEventType(ol.FeatureProperty.STYLE_FUNCTION), diff --git a/test/spec/ol/feature.test.js b/test/spec/ol/feature.test.js index d8df678645..afbf896ed9 100644 --- a/test/spec/ol/feature.test.js +++ b/test/spec/ol/feature.test.js @@ -155,7 +155,7 @@ describe('ol.Feature', function() { it('sets the default geometry', function() { var feature = new ol.Feature(); feature.setGeometry(point); - expect(feature.get(ol.FeatureProperty.GEOMETRY)).to.be(point); + expect(feature.get('geometry')).to.be(point); }); it('replaces previous default geometry', function() { From 009f9328a8713b5d0b3dbb267ab8d19d818ebc29 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 17:40:18 +0100 Subject: [PATCH 629/919] Use ol.BrowserFeature.HAS_WEBGL in layer-clipping-webgl example --- examples/layer-clipping-webgl.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/layer-clipping-webgl.js b/examples/layer-clipping-webgl.js index a93091b506..d493bfb644 100644 --- a/examples/layer-clipping-webgl.js +++ b/examples/layer-clipping-webgl.js @@ -1,10 +1,11 @@ +goog.require('ol.BrowserFeature'); goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.layer.Tile'); goog.require('ol.source.OSM'); -if (!ol.webgl.SUPPORTED) { +if (!ol.BrowserFeature.HAS_WEBGL) { var info = document.getElementById('no-webgl'); /** * display error message From fead554a39dfe70a00c402176f40e6f196c80575 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 23:29:26 +0100 Subject: [PATCH 630/919] Add missing goog.provide's (for @enum's) --- src/ol/format/igcformat.js | 1 + src/ol/source/wmssource.js | 1 + 2 files changed, 2 insertions(+) diff --git a/src/ol/format/igcformat.js b/src/ol/format/igcformat.js index 826c62c1c3..62904aa705 100644 --- a/src/ol/format/igcformat.js +++ b/src/ol/format/igcformat.js @@ -1,4 +1,5 @@ goog.provide('ol.format.IGC'); +goog.provide('ol.format.IGCZ'); goog.require('goog.asserts'); goog.require('goog.string'); diff --git a/src/ol/source/wmssource.js b/src/ol/source/wmssource.js index 47e8968d1e..630a0026b5 100644 --- a/src/ol/source/wmssource.js +++ b/src/ol/source/wmssource.js @@ -1,4 +1,5 @@ goog.provide('ol.source.wms'); +goog.provide('ol.source.wms.ServerType'); goog.require('goog.asserts'); goog.require('goog.object'); From 61f5871e9078d6808398271775d9415a3d096584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:05:12 +0100 Subject: [PATCH 631/919] Add ol.style.Icon --- src/ol/style/iconstyle.js | 147 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 src/ol/style/iconstyle.js diff --git a/src/ol/style/iconstyle.js b/src/ol/style/iconstyle.js new file mode 100644 index 0000000000..ad1583252a --- /dev/null +++ b/src/ol/style/iconstyle.js @@ -0,0 +1,147 @@ +// FIXME decide default value for snapToPixel + +goog.provide('ol.style.Icon'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.events'); +goog.require('goog.events.EventType'); +goog.require('ol.style.Image'); +goog.require('ol.style.ImageState'); + + + +/** + * @constructor + * @param {olx.style.IconOptions=} opt_options Options. + * @extends {ol.style.Image} + */ +ol.style.Icon = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + /** + * @private + * @type {Image} + */ + this.image_ = new Image(); + + /** + * @type {?string} + */ + var crossOrigin = + goog.isDef(options.crossOrigin) ? options.crossOrigin : null; + if (!goog.isNull(crossOrigin)) { + this.image_.crossOrigin = crossOrigin; + } + + /** + * @private + * @type {Array.} + */ + this.imageListenerKeys_ = null; + + /** + * @private + * @type {string|undefined} + */ + this.src_ = options.src; + + /** + * @type {ol.Size} + */ + var size = goog.isDef(options.size) ? options.size : null; + + /** + * @type {ol.Pixel} + */ + var anchor; + if (goog.isDef(options.anchor)) { + anchor = options.anchor; + } else if (!goog.isNull(size)) { + anchor = [size[0] / 2, size[1] / 2]; + } else { + anchor = null; + } + + /** + * @type {number} + */ + var rotation = goog.isDef(options.rotation) ? options.rotation : 0; + + goog.base(this, { + anchor: anchor, + imageState: ol.style.ImageState.IDLE, + rotation: rotation, + size: size, + snapToPixel: undefined, + subtractViewRotation: false + }); + +}; +goog.inherits(ol.style.Icon, ol.style.Image); + + +/** + * @private + */ +ol.style.Icon.prototype.handleImageError_ = function() { + this.imageState = ol.style.ImageState.ERROR; + this.unlistenImage_(); + this.dispatchChangeEvent(); +}; + + +/** + * @private + */ +ol.style.Icon.prototype.handleImageLoad_ = function() { + this.imageState = ol.style.ImageState.LOADED; + if (goog.isNull(this.size)) { + this.size = [this.image_.width, this.image_.height]; + } + if (goog.isNull(this.anchor)) { + this.anchor = [this.size[0] / 2, this.size[1] / 2]; + } + this.unlistenImage_(); + this.dispatchChangeEvent(); +}; + + +/** + * @inheritDoc + */ +ol.style.Icon.prototype.getImage = function(pixelRatio) { + return this.image_; +}; + + +/** + * Load not yet loaded URI. + */ +ol.style.Icon.prototype.load = function() { + if (this.imageState == ol.style.ImageState.IDLE) { + goog.asserts.assert(goog.isDef(this.src_)); + goog.asserts.assert(goog.isNull(this.imageListenerKeys_)); + this.imageState = ol.style.ImageState.LOADING; + this.imageListenerKeys_ = [ + goog.events.listenOnce(this.image_, goog.events.EventType.ERROR, + this.handleImageError_, false, this), + goog.events.listenOnce(this.image_, goog.events.EventType.LOAD, + this.handleImageLoad_, false, this) + ]; + this.image_.src = this.src_; + } +}; + + +/** + * Discards event handlers which listen for load completion or errors. + * + * @private + */ +ol.style.Icon.prototype.unlistenImage_ = function() { + goog.asserts.assert(!goog.isNull(this.imageListenerKeys_)); + goog.array.forEach(this.imageListenerKeys_, goog.events.unlistenByKey); + this.imageListenerKeys_ = null; +}; From 8e1107070bd70f74bdd29ef5ae9d782319f04d62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 23:02:31 +0100 Subject: [PATCH 632/919] Export ol.style.Icon --- src/ol/style/iconstyle.exports | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/ol/style/iconstyle.exports diff --git a/src/ol/style/iconstyle.exports b/src/ol/style/iconstyle.exports new file mode 100644 index 0000000000..860fe1e04f --- /dev/null +++ b/src/ol/style/iconstyle.exports @@ -0,0 +1 @@ +@exportSymbol ol.style.Icon From 65a75399c2533d21c11563140e901a8b62262916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:05:30 +0100 Subject: [PATCH 633/919] Add ol.style.Circle --- src/ol/style/circlestyle.js | 108 ++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 src/ol/style/circlestyle.js diff --git a/src/ol/style/circlestyle.js b/src/ol/style/circlestyle.js new file mode 100644 index 0000000000..32dc8c2fc2 --- /dev/null +++ b/src/ol/style/circlestyle.js @@ -0,0 +1,108 @@ +// FIXME decide default value for snapToPixel + +goog.provide('ol.style.Circle'); + +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); +goog.require('ol.color'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Image'); +goog.require('ol.style.ImageState'); +goog.require('ol.style.Stroke'); + + + +/** + * @constructor + * @param {olx.style.CircleOptions=} opt_options Options. + * @extends {ol.style.Image} + */ +ol.style.Circle = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + /** + * @private + * @type {HTMLCanvasElement} + */ + this.canvas_ = /** @type {HTMLCanvasElement} */ + (goog.dom.createElement(goog.dom.TagName.CANVAS)); + + /** + * @private + * @type {ol.style.Fill} + */ + this.fill_ = goog.isDef(options.fill) ? options.fill : null; + + /** + * @private + * @type {number} + */ + this.radius_ = options.radius; + + /** + * @private + * @type {ol.style.Stroke} + */ + this.stroke_ = goog.isDef(options.stroke) ? options.stroke : null; + + var size = this.render_(); + + goog.base(this, { + anchor: [size / 2, size / 2], + imageState: ol.style.ImageState.LOADED, + rotation: 0, + size: [size, size], + snapToPixel: undefined, + subtractViewRotation: false + }); + +}; +goog.inherits(ol.style.Circle, ol.style.Image); + + +/** + * @inheritDoc + */ +ol.style.Circle.prototype.getImage = function(pixelRatio) { + return this.canvas_; +}; + + +/** + * @inheritDoc + */ +ol.style.Circle.prototype.load = goog.nullFunction; + + +/** + * @private + * @return {number} Size. + */ +ol.style.Circle.prototype.render_ = function() { + var canvas = this.canvas_; + var size = 2 * this.radius_ + 1; + + if (!goog.isNull(this.stroke_) && goog.isDef(this.stroke_.width)) { + size += this.stroke_.width; + } + + canvas.height = size; + canvas.width = size; + + var context = /** @type {CanvasRenderingContext2D} */ + (canvas.getContext('2d')); + context.arc(size / 2, size / 2, this.radius_, 0, 2 * Math.PI, true); + + if (!goog.isNull(this.fill_)) { + context.fillStyle = ol.color.asString(this.fill_.color); + context.fill(); + } + if (!goog.isNull(this.stroke_)) { + context.strokeStyle = ol.color.asString(this.stroke_.color); + context.lineWidth = goog.isDef(this.stroke_.width) ? this.stroke_.width : 1; + context.stroke(); + } + + return size; +}; From c786b91f3c84a88f407a6ae4c593d5d4cd3877aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 23:02:42 +0100 Subject: [PATCH 634/919] Export ol.style.Circle --- src/ol/style/circlestyle.exports | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/ol/style/circlestyle.exports diff --git a/src/ol/style/circlestyle.exports b/src/ol/style/circlestyle.exports new file mode 100644 index 0000000000..e70297f950 --- /dev/null +++ b/src/ol/style/circlestyle.exports @@ -0,0 +1 @@ +@exportSymbol ol.style.Circle From e44aa1e14a236bfdc1636c68fa0e49f73ff3df8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:06:05 +0100 Subject: [PATCH 635/919] Make ol.style.Image a base class for Icon and Circle --- src/ol/style/imagestyle.js | 104 +++++++------------------------------ 1 file changed, 20 insertions(+), 84 deletions(-) diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 98087746b9..3c36309c3a 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -1,10 +1,7 @@ -// FIXME decide default value for snapToPixel - goog.provide('ol.style.Image'); goog.provide('ol.style.ImageState'); goog.require('goog.array'); -goog.require('goog.asserts'); goog.require('goog.events'); goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); @@ -21,15 +18,24 @@ ol.style.ImageState = { }; +/** + * @typedef {{anchor: ol.Pixel, + * imageState: ol.style.ImageState, + * rotation: number, + * size: ol.Size, + * snapToPixel: (boolean|undefined), + * subtractViewRotation: boolean}} + */ +ol.style.ImageOptions; + + /** * @constructor - * @param {olx.style.ImageOptions=} opt_options Options. + * @param {ol.style.ImageOptions} options Options. * @extends {goog.events.EventTarget} */ -ol.style.Image = function(opt_options) { - - var options = goog.isDef(opt_options) ? opt_options : {}; +ol.style.Image = function(options) { goog.base(this); @@ -38,20 +44,10 @@ ol.style.Image = function(opt_options) { */ this.anchor = options.anchor; - /** - * @type {HTMLCanvasElement|HTMLVideoElement|Image} - */ - this.image = goog.isDefAndNotNull(options.image) ? - options.image : new Image(); - if (!goog.isNull(options.crossOrigin)) { - this.image.crossOrigin = options.crossOrigin; - } - /** * @type {ol.style.ImageState} */ - this.imageState = goog.isDef(options.imageState) ? - options.imageState : ol.style.ImageState.IDLE; + this.imageState = options.imageState; /** * @type {number|undefined} @@ -73,86 +69,26 @@ ol.style.Image = function(opt_options) { */ this.subtractViewRotation = options.subtractViewRotation; - /** - * @private - * @type {Array.} - */ - this.imageListenerKeys_ = null; - - /** - * @private - * @type {string|undefined} - */ - this.src_ = options.src; - }; goog.inherits(ol.style.Image, goog.events.EventTarget); /** - * @private + * @protected */ -ol.style.Image.prototype.dispatchChangeEvent_ = function() { +ol.style.Image.prototype.dispatchChangeEvent = function() { this.dispatchEvent(goog.events.EventType.CHANGE); }; /** - * Tracks loading or read errors. - * - * @private + * @param {number} pixelRatio Pixel ratio. + * @return {HTMLCanvasElement|HTMLVideoElement|Image} Image element. */ -ol.style.Image.prototype.handleImageError_ = function() { - this.imageState = ol.style.ImageState.ERROR; - this.unlistenImage_(); - this.dispatchChangeEvent_(); -}; - - -/** - * Tracks successful image load. - * - * @private - */ -ol.style.Image.prototype.handleImageLoad_ = function() { - this.imageState = ol.style.ImageState.LOADED; - if (goog.isNull(this.size)) { - this.size = [this.image.width, this.image.height]; - } - if (goog.isNull(this.anchor)) { - this.anchor = [this.size[0] / 2, this.size[1] / 2]; - } - this.unlistenImage_(); - this.dispatchChangeEvent_(); -}; +ol.style.Image.prototype.getImage = goog.abstractMethod; /** * Load not yet loaded URI. */ -ol.style.Image.prototype.load = function() { - if (this.imageState == ol.style.ImageState.IDLE) { - goog.asserts.assert(goog.isDef(this.src_)); - goog.asserts.assert(goog.isNull(this.imageListenerKeys_)); - this.imageState = ol.style.ImageState.LOADING; - this.imageListenerKeys_ = [ - goog.events.listenOnce(this.image, goog.events.EventType.ERROR, - this.handleImageError_, false, this), - goog.events.listenOnce(this.image, goog.events.EventType.LOAD, - this.handleImageLoad_, false, this) - ]; - this.image.src = this.src_; - } -}; - - -/** - * Discards event handlers which listen for load completion or errors. - * - * @private - */ -ol.style.Image.prototype.unlistenImage_ = function() { - goog.asserts.assert(!goog.isNull(this.imageListenerKeys_)); - goog.array.forEach(this.imageListenerKeys_, goog.events.unlistenByKey); - this.imageListenerKeys_ = null; -}; +ol.style.Image.prototype.load = goog.abstractMethod; From 4b9de0a93c526dbee7bab11fe5e9452b69893106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:06:32 +0100 Subject: [PATCH 636/919] Remove ol.icon.renderIcon --- src/ol/icon.exports | 1 - src/ol/icon.js | 31 ------------------------------- 2 files changed, 32 deletions(-) delete mode 100644 src/ol/icon.exports delete mode 100644 src/ol/icon.js diff --git a/src/ol/icon.exports b/src/ol/icon.exports deleted file mode 100644 index f7eeba7034..0000000000 --- a/src/ol/icon.exports +++ /dev/null @@ -1 +0,0 @@ -@exportSymbol ol.icon.renderIcon diff --git a/src/ol/icon.js b/src/ol/icon.js deleted file mode 100644 index 6f2cdd9f93..0000000000 --- a/src/ol/icon.js +++ /dev/null @@ -1,31 +0,0 @@ -goog.provide('ol.icon'); - -goog.require('ol.style.Image'); - - -/** - * @param {string} src Image source URI. - * @param {ol.Size=} opt_size Image size. - * @return {ol.style.Image} Image. - */ -ol.icon.renderIcon = function(src, opt_size) { - - /** - * @type {ol.Size} - */ - var size = goog.isDef(opt_size) ? opt_size : null; - - /** - * @type {ol.Pixel} - */ - var anchor = !goog.isNull(size) ? [size[0] / 2, size[1] / 2] : null; - - return new ol.style.Image({ - anchor: anchor, - size: size, - src: src, - rotation: 0, - snapToPixel: undefined, - subtractViewRotation: false - }); -}; From 1b22ea0677f567dd7c6a7a4fa7ee25a8ca3c1825 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:06:56 +0100 Subject: [PATCH 637/919] Remove ol.shape.renderCircle --- src/ol/shape.exports | 1 - src/ol/shape.js | 57 -------------------------------------------- 2 files changed, 58 deletions(-) delete mode 100644 src/ol/shape.exports delete mode 100644 src/ol/shape.js diff --git a/src/ol/shape.exports b/src/ol/shape.exports deleted file mode 100644 index a0b23dcfaa..0000000000 --- a/src/ol/shape.exports +++ /dev/null @@ -1 +0,0 @@ -@exportSymbol ol.shape.renderCircle diff --git a/src/ol/shape.js b/src/ol/shape.js deleted file mode 100644 index 7549a5ec00..0000000000 --- a/src/ol/shape.js +++ /dev/null @@ -1,57 +0,0 @@ -// FIXME check size when stroked -// FIXME move to ol.render? -// FIXME find a sensible caching strategy - -goog.provide('ol.shape'); - -goog.require('goog.dom'); -goog.require('goog.dom.TagName'); -goog.require('ol.color'); -goog.require('ol.style.Fill'); -goog.require('ol.style.Image'); -goog.require('ol.style.ImageState'); -goog.require('ol.style.Stroke'); - - -/** - * @param {number} radius Radius. - * @param {ol.style.Fill} fillStyle Fill style. - * @param {ol.style.Stroke} strokeStyle Stroke style. - * @return {ol.style.Image} Image. - */ -ol.shape.renderCircle = function(radius, fillStyle, strokeStyle) { - - var canvas = /** @type {HTMLCanvasElement} */ - (goog.dom.createElement(goog.dom.TagName.CANVAS)); - var size = 2 * radius + 1; - if (!goog.isNull(strokeStyle) && goog.isDef(strokeStyle.width)) { - size += strokeStyle.width; - } - canvas.height = size; - canvas.width = size; - - var context = /** @type {CanvasRenderingContext2D} */ - (canvas.getContext('2d')); - context.arc(size / 2, size / 2, radius, 0, 2 * Math.PI, true); - - if (goog.isDefAndNotNull(fillStyle)) { - context.fillStyle = ol.color.asString(fillStyle.color); - context.fill(); - } - if (goog.isDefAndNotNull(strokeStyle)) { - context.strokeStyle = ol.color.asString(strokeStyle.color); - context.lineWidth = goog.isDef(strokeStyle.width) ? strokeStyle.width : 1; - context.stroke(); - } - - return new ol.style.Image({ - anchor: [size / 2, size / 2], - size: [size, size], - image: canvas, - imageState: ol.style.ImageState.LOADED, - rotation: 0, - snapToPixel: undefined, - subtractViewRotation: false - }); - -}; From 6afd711c663239125b3eee27278754938f61c61d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:07:28 +0100 Subject: [PATCH 638/919] Add olx.style.CircleOptions --- src/objectliterals.jsdoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 3fb309839e..81188d6d0b 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -718,6 +718,13 @@ * @todo stability experimental */ +/** + * @typedef {Object} olx.style.CircleOptions + * @property {ol.style.Fill|undefined} fill Fill style. + * @property {number} radius Circle radius. + * @property {ol.style.Stroke|undefined} stroke Stroke style. + */ + /** * @typedef {Object} olx.style.FillOptions * @property {ol.Color|string|undefined} color Color. From d2d801d8a6c7edc0008322a54b9f4963a748a64b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:07:48 +0100 Subject: [PATCH 639/919] Add olx.style.IconOptions --- src/objectliterals.jsdoc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 81188d6d0b..b84951d774 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -731,10 +731,18 @@ * @todo stability experimental */ +/** + * @typedef {Object} olx.style.IconOptions + * @property {ol.Pixel|undefined} anchor Anchor. + * @property {null|string|undefined} crossOrigin crossOrigin setting for image. + * @property {number|undefined} rotation Rotation. + * @property {ol.Size|undefined} size Icon size in pixel. + * @property {string} src Image source URI. + */ + /** * @typedef {Object} olx.style.ImageOptions * @property {ol.Pixel} anchor Anchor. - * @property {null|string|undefined} crossOrigin crossOrigin setting for image. * @property {HTMLCanvasElement|HTMLVideoElement|Image|undefined} image Image. * @property {ol.style.ImageState|undefined} imageState Image state. * @property {number|undefined} rotation Rotation. From a97e3d036bd0f6bd43dd132695f6aa4842d01258 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:08:20 +0100 Subject: [PATCH 640/919] Remove olx.style.ImageOptions --- src/objectliterals.jsdoc | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index b84951d774..959f6a2349 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -740,20 +740,6 @@ * @property {string} src Image source URI. */ -/** - * @typedef {Object} olx.style.ImageOptions - * @property {ol.Pixel} anchor Anchor. - * @property {HTMLCanvasElement|HTMLVideoElement|Image|undefined} image Image. - * @property {ol.style.ImageState|undefined} imageState Image state. - * @property {number|undefined} rotation Rotation. - * @property {ol.Size} size Image size in pixel. - * @property {boolean|undefined} snapToPixel Whether the image should be - * snapped to the closed pixel at rendering time. - * @property {boolean|undefined} subtractViewRotation Whether the image should be - * rotated with the view or not. - * @property {string|undefined} src Image source URI. - */ - /** * @typedef {Object} olx.style.StrokeOptions * @property {ol.Color|string|undefined} color Color. From ee1ac6b23ca45529281a51c87901f2bcd03da029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:25:58 +0100 Subject: [PATCH 641/919] Canvas replay uses ol.style.Image#getImage --- src/ol/render/canvas/canvasreplay.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 6ab1f12fcc..69aacdab3d 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -591,10 +591,12 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { goog.asserts.assert(!goog.isNull(imageStyle)); goog.asserts.assert(!goog.isNull(imageStyle.anchor)); goog.asserts.assert(goog.isDef(imageStyle.size)); - goog.asserts.assert(!goog.isNull(imageStyle.image)); + // FIXME pixel ratio + var image = imageStyle.getImage(1); + goog.asserts.assert(!goog.isNull(image)); this.anchorX_ = imageStyle.anchor[0]; this.anchorY_ = imageStyle.anchor[1]; - this.image_ = imageStyle.image; + this.image_ = image; this.width_ = imageStyle.size[0]; this.height_ = imageStyle.size[1]; this.snapToPixel_ = imageStyle.snapToPixel; From faf6722c84efc5deb52839512a0db180562a5043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:34:15 +0100 Subject: [PATCH 642/919] Canvas immediate uses ol.style.Image#getImage --- src/ol/render/canvas/canvasimmediate.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 2e1729bc29..0bdd011586 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -456,11 +456,13 @@ ol.render.canvas.Immediate.prototype.setImageStyle = function(imageStyle) { if (!goog.isNull(imageStyle)) { goog.asserts.assert(!goog.isNull(imageStyle.anchor)); goog.asserts.assert(goog.isDef(imageStyle.size)); - goog.asserts.assert(!goog.isNull(imageStyle.image)); + // FIXME pixel ratio + var image = imageStyle.getImage(1); + goog.asserts.assert(!goog.isNull(image)); var state = this.state_; state.anchorX = imageStyle.anchor[0]; state.anchorY = imageStyle.anchor[1]; - state.image = imageStyle.image; + state.image = image; state.width = imageStyle.size[0]; state.height = imageStyle.size[1]; state.snapToPixel = imageStyle.snapToPixel; From 573b15182c3ec341f049be8ab16824114a4ff53a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:27:00 +0100 Subject: [PATCH 643/919] Example icon uses ol.style.Icon --- examples/icon.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/icon.js b/examples/icon.js index aa49a4872a..b21f5100e2 100644 --- a/examples/icon.js +++ b/examples/icon.js @@ -3,11 +3,11 @@ goog.require('ol.Overlay'); goog.require('ol.OverlayPositioning'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); -goog.require('ol.icon'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.source.GeoJSON'); goog.require('ol.source.TileJSON'); +goog.require('ol.style.Icon'); goog.require('ol.style.Style'); @@ -18,7 +18,9 @@ var raster = new ol.layer.Tile({ }); var styleArray = [new ol.style.Style({ - image: ol.icon.renderIcon('data/icon.png') + image: new ol.style.Icon({ + src: 'data/icon.png' + }) })]; var vector = new ol.layer.Vector({ From 864d4d95e58591ea61e49daa0ab0c4047462df36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:34:55 +0100 Subject: [PATCH 644/919] Example dynamic-data uses ol.style.Circle --- examples/dynamic-data.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/dynamic-data.js b/examples/dynamic-data.js index 01790d6dce..14be6dfaaa 100644 --- a/examples/dynamic-data.js +++ b/examples/dynamic-data.js @@ -3,8 +3,8 @@ goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.geom.MultiPoint'); goog.require('ol.layer.Tile'); -goog.require('ol.shape'); goog.require('ol.source.MapQuestOpenAerial'); +goog.require('ol.style.Circle'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); @@ -23,9 +23,11 @@ var map = new ol.Map({ }) }); -var imageStyle = ol.shape.renderCircle(5, - new ol.style.Fill({color: 'yellow'}), - new ol.style.Stroke({color: 'red', width: 1})); +var imageStyle = new ol.style.Circle({ + radius: 5, + fill: new ol.style.Fill({color: 'yellow'}), + stroke: new ol.style.Stroke({color: 'red', width: 1}) +}); var n = 200; var omegaTheta = 30000; // Rotation period in ms From 722bf3e0b2497591cc0e06d6a79269486f2418b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:38:27 +0100 Subject: [PATCH 645/919] Example geojson uses ol.style.Circle --- examples/geojson.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/examples/geojson.js b/examples/geojson.js index 1d8aca183a..19a9572977 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -4,16 +4,19 @@ goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); -goog.require('ol.shape'); goog.require('ol.source.GeoJSON'); goog.require('ol.source.OSM'); +goog.require('ol.style.Circle'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); -var image = ol.shape.renderCircle(5, null, - new ol.style.Stroke({color: 'red', width: 1})); +var image = new ol.style.Circle({ + radius: 5, + fill: null, + stroke: new ol.style.Stroke({color: 'red', width: 1}) +}); var styles = { 'Point': [new ol.style.Style({ @@ -61,9 +64,13 @@ var styles = { fill: new ol.style.Fill({ color: 'magenta' }), - image: ol.shape.renderCircle(10, null, new ol.style.Stroke({ - color: 'magenta' - })) + image: new ol.style.Circle({ + radius: 10, + fill: null, + stroke: new ol.style.Stroke({ + color: 'magenta' + }) + }) })] }; From 41ec0fd79bf363aa00bfe8f365c5ac1cde383c56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:40:22 +0100 Subject: [PATCH 646/919] Example igc uses ol.style.Circle --- examples/igc.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/examples/igc.js b/examples/igc.js index a0c5f6fad4..6275e3f808 100644 --- a/examples/igc.js +++ b/examples/igc.js @@ -8,9 +8,9 @@ goog.require('ol.geom.Point'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.proj'); -goog.require('ol.shape'); goog.require('ol.source.OSM'); goog.require('ol.source.Vector'); +goog.require('ol.style.Circle'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); @@ -128,10 +128,14 @@ map.on('singleclick', function(evt) { displaySnap(coordinate); }); -var imageStyle = ol.shape.renderCircle(5, null, new ol.style.Stroke({ - color: 'rgba(255,0,0,0.9)', - width: 1 -})); +var imageStyle = new ol.style.Circle({ + radius: 5, + fill: null, + stroke: new ol.style.Stroke({ + color: 'rgba(255,0,0,0.9)', + width: 1 + }) +}); var strokeStyle = new ol.style.Stroke({ color: 'rgba(255,0,0,0.9)', width: 1 From 57814aba04832817e5ae9f852a71ba7a110c577c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:44:30 +0100 Subject: [PATCH 647/919] Example synthetic-points uses ol.style.Circle --- examples/synthetic-points.js | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/examples/synthetic-points.js b/examples/synthetic-points.js index b1cdfdb882..2ed6010a1d 100644 --- a/examples/synthetic-points.js +++ b/examples/synthetic-points.js @@ -6,8 +6,8 @@ goog.require('ol.View2D'); goog.require('ol.geom.LineString'); goog.require('ol.geom.Point'); goog.require('ol.layer.Vector'); -goog.require('ol.shape'); goog.require('ol.source.Vector'); +goog.require('ol.style.Circle'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); @@ -27,14 +27,18 @@ for (var i = 0; i < count; ++i) { var styles = { '10': [new ol.style.Style({ - image: ol.shape.renderCircle(5, - new ol.style.Fill({color: '#666666'}), - new ol.style.Stroke({color: '#bada55', width: 1})) + image: new ol.style.Circle({ + radius: 5, + fill: new ol.style.Fill({color: '#666666'}), + stroke: new ol.style.Stroke({color: '#bada55', width: 1}) + }) })], '20': [new ol.style.Style({ - image: ol.shape.renderCircle(10, - new ol.style.Fill({color: '#666666'}), - new ol.style.Stroke({color: '#bada55', width: 1})) + image: new ol.style.Circle({ + radius: 10, + fill: new ol.style.Fill({color: '#666666'}), + stroke: new ol.style.Stroke({color: '#bada55', width: 1}) + }) })] }; @@ -97,10 +101,14 @@ map.on('singleclick', function(evt) { displaySnap(coordinate); }); -var imageStyle = ol.shape.renderCircle(10, null, new ol.style.Stroke({ - color: 'rgba(255,255,0,0.9)', - width: 3 -})); +var imageStyle = new ol.style.Circle({ + radius: 10, + fill: null, + stroke: new ol.style.Stroke({ + color: 'rgba(255,255,0,0.9)', + width: 3 + }) +}); var strokeStyle = new ol.style.Stroke({ color: 'rgba(255,255,0,0.9)', width: 3 From a5089a0e0cf6ea7fa5db72f05253c6b41afc222d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 18 Dec 2013 22:46:09 +0100 Subject: [PATCH 648/919] Example rtree uses ol.style.Circle --- examples/rtree.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/examples/rtree.js b/examples/rtree.js index 07fd1fa12d..eeb9296a41 100644 --- a/examples/rtree.js +++ b/examples/rtree.js @@ -8,8 +8,8 @@ goog.require('ol.extent'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); goog.require('ol.layer.Vector'); -goog.require('ol.shape'); goog.require('ol.source.Vector'); +goog.require('ol.style.Circle'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); @@ -30,8 +30,11 @@ var vectorSource = new ol.source.Vector({ }); var styleArray = [new ol.style.Style({ - image: ol.shape.renderCircle(3, null, - new ol.style.Stroke({color: 'red', width: 1})) + image: new ol.style.Circle({ + radius: 3, + fill: null, + stroke: new ol.style.Stroke({color: 'red', width: 1}) + }) })]; var colors = ['red', 'orange', 'yellow', 'blue', 'green', 'indigo', 'violet']; From ebcc6ab509344d1a7b9c46e391c4833c1bfdb82d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 09:08:04 +0100 Subject: [PATCH 649/919] Add ol.style.Image#getHitDetectionImage abstract method --- src/ol/style/imagestyle.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 3c36309c3a..9a566bcfe4 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -88,6 +88,13 @@ ol.style.Image.prototype.dispatchChangeEvent = function() { ol.style.Image.prototype.getImage = goog.abstractMethod; +/** + * @param {number} pixelRatio Pixel ratio. + * @return {HTMLCanvasElement|HTMLVideoElement|Image} Image element. + */ +ol.style.Image.prototype.getHitDetectionImage = goog.abstractMethod; + + /** * Load not yet loaded URI. */ From 59910339cd370983bf27d92a389a2510a66533be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 09:08:30 +0100 Subject: [PATCH 650/919] Add ol.style.Circle#getHitDetectionImage --- src/ol/style/circlestyle.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ol/style/circlestyle.js b/src/ol/style/circlestyle.js index 32dc8c2fc2..9f5147a02b 100644 --- a/src/ol/style/circlestyle.js +++ b/src/ol/style/circlestyle.js @@ -69,6 +69,14 @@ ol.style.Circle.prototype.getImage = function(pixelRatio) { }; +/** + * @inheritDoc + */ +ol.style.Circle.prototype.getHitDetectionImage = function(pixelRatio) { + return this.canvas_; +}; + + /** * @inheritDoc */ From 2bd0f8ae3edde971e06d459053d1bdfe08fd8bb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 09:08:58 +0100 Subject: [PATCH 651/919] Add ol.style.Icon#getHitDetectionImage --- src/ol/style/iconstyle.js | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/ol/style/iconstyle.js b/src/ol/style/iconstyle.js index ad1583252a..2dfbb40c41 100644 --- a/src/ol/style/iconstyle.js +++ b/src/ol/style/iconstyle.js @@ -4,6 +4,8 @@ goog.provide('ol.style.Icon'); goog.require('goog.array'); goog.require('goog.asserts'); +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); goog.require('goog.events'); goog.require('goog.events.EventType'); goog.require('ol.style.Image'); @@ -20,6 +22,12 @@ ol.style.Icon = function(opt_options) { var options = goog.isDef(opt_options) ? opt_options : {}; + /** + * @private + * @type {Image|HTMLCanvasElement} + */ + this.hitDetectionImage_ = null; + /** * @private * @type {Image} @@ -47,6 +55,12 @@ ol.style.Icon = function(opt_options) { */ this.src_ = options.src; + /** + * @private + * @type {boolean} + */ + this.tainting_ = false; + /** * @type {ol.Size} */ @@ -82,6 +96,25 @@ ol.style.Icon = function(opt_options) { goog.inherits(ol.style.Icon, ol.style.Image); +/** + * @private + */ +ol.style.Icon.prototype.determineTainting_ = function() { + var canvas = /** @type {HTMLCanvasElement} */ + (goog.dom.createElement(goog.dom.TagName.CANVAS)); + canvas.width = 1; + canvas.height = 1; + var context = /** @type {CanvasRenderingContext2D} */ + (canvas.getContext('2d')); + context.drawImage(this.image_, 0, 0); + try { + context.getImageData(0, 0, 1, 1); + } catch (e) { + this.tainting_ = true; + } +}; + + /** * @private */ @@ -104,6 +137,7 @@ ol.style.Icon.prototype.handleImageLoad_ = function() { this.anchor = [this.size[0] / 2, this.size[1] / 2]; } this.unlistenImage_(); + this.determineTainting_(); this.dispatchChangeEvent(); }; @@ -116,6 +150,30 @@ ol.style.Icon.prototype.getImage = function(pixelRatio) { }; +/** + * @inheritDoc + */ +ol.style.Icon.prototype.getHitDetectionImage = function(pixelRatio) { + if (goog.isNull(this.hitDetectionImage_)) { + if (this.tainting_) { + var canvas = /** @type {HTMLCanvasElement} */ + (goog.dom.createElement(goog.dom.TagName.CANVAS)); + var width = this.size[0]; + var height = this.size[1]; + canvas.width = width; + canvas.height = height; + var context = /** @type {CanvasRenderingContext2D} */ + (canvas.getContext('2d')); + context.fillRect(0, 0, width, height); + this.hitDetectionImage_ = canvas; + } else { + this.hitDetectionImage_ = this.image_; + } + } + return this.hitDetectionImage_; +}; + + /** * Load not yet loaded URI. */ From fe7b614f22b779baad5195808609a49e1dfb6da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 09:10:09 +0100 Subject: [PATCH 652/919] Support hit detection on tainted canvas --- src/ol/render/canvas/canvasreplay.js | 32 +++++++++++++++++++++------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 69aacdab3d..4a1e46d8e2 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -466,6 +466,12 @@ ol.render.canvas.ImageReplay = function(pixelRatio, tolerance) { */ this.anchorY_ = undefined; + /** + * @private + * @type {HTMLCanvasElement|HTMLVideoElement|Image} + */ + this.hitDetectionImage_ = null; + /** * @private * @type {HTMLCanvasElement|HTMLVideoElement|Image} @@ -528,13 +534,16 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = var myBegin = this.coordinates.length; var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); - var drawImageInstruction = [ + this.instructions.push([ ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, this.anchorX_, this.anchorY_, this.width_, this.height_, this.image_, this.snapToPixel_ - ]; - this.instructions.push(drawImageInstruction); - this.hitDetectionInstructions.push(drawImageInstruction); + ]); + this.hitDetectionInstructions.push([ + ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, + this.anchorX_, this.anchorY_, this.width_, this.height_, + this.hitDetectionImage_, this.snapToPixel_ + ]); this.endGeometry(pointGeometry, data); }; @@ -558,13 +567,16 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = var myBegin = this.coordinates.length; var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); - var drawImageInstruction = [ + this.instructions.push([ ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, this.anchorX_, this.anchorY_, this.width_, this.height_, this.image_, this.snapToPixel_ - ]; - this.instructions.push(drawImageInstruction); - this.hitDetectionInstructions.push(drawImageInstruction); + ]); + this.hitDetectionInstructions.push([ + ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, + this.anchorX_, this.anchorY_, this.width_, this.height_, + this.hitDetectionImage_, this.snapToPixel_ + ]); this.endGeometry(multiPointGeometry, data); }; @@ -577,6 +589,7 @@ ol.render.canvas.ImageReplay.prototype.finish = function() { // FIXME this doesn't really protect us against further calls to draw*Geometry this.anchorX_ = undefined; this.anchorY_ = undefined; + this.hitDetectionImage_ = null; this.image_ = null; this.height_ = undefined; this.width_ = undefined; @@ -592,10 +605,13 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { goog.asserts.assert(!goog.isNull(imageStyle.anchor)); goog.asserts.assert(goog.isDef(imageStyle.size)); // FIXME pixel ratio + var hitDetectionImage = imageStyle.getHitDetectionImage(1); + goog.asserts.assert(!goog.isNull(hitDetectionImage)); var image = imageStyle.getImage(1); goog.asserts.assert(!goog.isNull(image)); this.anchorX_ = imageStyle.anchor[0]; this.anchorY_ = imageStyle.anchor[1]; + this.hitDetectionImage_ = hitDetectionImage; this.image_ = image; this.width_ = imageStyle.size[0]; this.height_ = imageStyle.size[1]; From 1e24ec28bea01c769b12261bc156c2d2828cd2ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 11:32:57 +0100 Subject: [PATCH 653/919] Add getters to ol.style.Style --- src/ol/render/canvas/canvasimmediate.js | 4 +- src/ol/render/dragbox.js | 2 +- src/ol/render/vector.js | 46 ++++++++++------ .../canvas/canvasvectorlayerrenderer.js | 2 +- src/ol/style/style.js | 55 +++++++++++++++++-- 5 files changed, 82 insertions(+), 27 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 0bdd011586..ef1c1e182a 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -218,8 +218,8 @@ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { if (!ol.extent.intersects(this.extent_, geometry.getExtent())) { return; } - this.setFillStrokeStyle(style.fill, style.stroke); - this.setImageStyle(style.image); + this.setFillStrokeStyle(style.getFill(), style.getStroke()); + this.setImageStyle(style.getImage()); var renderGeometry = ol.render.canvas.Immediate.GEOMETRY_RENDERES_[geometry.getType()]; goog.asserts.assert(goog.isDef(renderGeometry)); diff --git a/src/ol/render/dragbox.js b/src/ol/render/dragbox.js index 7142514672..80e938a0c8 100644 --- a/src/ol/render/dragbox.js +++ b/src/ol/render/dragbox.js @@ -96,7 +96,7 @@ ol.render.DragBox.prototype.handleMapPostCompose_ = function(event) { ]; var geometry = new ol.geom.Polygon(coordinates); var style = this.style_; - render.setFillStrokeStyle(style.fill, style.stroke); + render.setFillStrokeStyle(style.getFill(), style.getStroke()); render.drawPolygonGeometry(geometry, null); }; diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index 6143a6080f..d612492422 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -61,14 +61,15 @@ ol.renderer.vector.renderGeometryCollectionGeometry_ = */ ol.renderer.vector.renderLineStringGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.stroke)) { + var strokeStyle = style.getStroke(); + if (goog.isNull(strokeStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.LineString); var lineStringGeometry = /** @type {ol.geom.LineString} */ (geometry); var replay = replayGroup.getReplay( - style.zIndex, ol.render.ReplayType.LINE_STRING); - replay.setFillStrokeStyle(null, style.stroke); + style.getZIndex(), ol.render.ReplayType.LINE_STRING); + replay.setFillStrokeStyle(null, strokeStyle); replay.drawLineStringGeometry(lineStringGeometry, data); }; @@ -82,15 +83,16 @@ ol.renderer.vector.renderLineStringGeometry_ = */ ol.renderer.vector.renderMultiLineStringGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.stroke)) { + var strokeStyle = style.getStroke(); + if (goog.isNull(strokeStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.MultiLineString); var multiLineStringGeometry = /** @type {ol.geom.MultiLineString} */ (geometry); var replay = replayGroup.getReplay( - style.zIndex, ol.render.ReplayType.LINE_STRING); - replay.setFillStrokeStyle(null, style.stroke); + style.getZIndex(), ol.render.ReplayType.LINE_STRING); + replay.setFillStrokeStyle(null, strokeStyle); replay.drawMultiLineStringGeometry(multiLineStringGeometry, data); }; @@ -104,15 +106,17 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = */ ol.renderer.vector.renderMultiPolygonGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.stroke) && goog.isNull(style.fill)) { + var fillStyle = style.getFill(); + var strokeStyle = style.getStroke(); + if (goog.isNull(strokeStyle) && goog.isNull(fillStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.MultiPolygon); var multiPolygonGeometry = /** @type {ol.geom.MultiPolygon} */ (geometry); var replay = replayGroup.getReplay( - style.zIndex, ol.render.ReplayType.POLYGON); - replay.setFillStrokeStyle(style.fill, style.stroke); + style.getZIndex(), ol.render.ReplayType.POLYGON); + replay.setFillStrokeStyle(fillStyle, strokeStyle); replay.drawMultiPolygonGeometry(multiPolygonGeometry, data); }; @@ -126,13 +130,15 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = */ ol.renderer.vector.renderPointGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.image)) { + var imageStyle = style.getImage(); + if (goog.isNull(imageStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.Point); var pointGeometry = /** @type {ol.geom.Point} */ (geometry); - var replay = replayGroup.getReplay(style.zIndex, ol.render.ReplayType.IMAGE); - replay.setImageStyle(style.image); + var replay = replayGroup.getReplay( + style.getZIndex(), ol.render.ReplayType.IMAGE); + replay.setImageStyle(imageStyle); replay.drawPointGeometry(pointGeometry, data); }; @@ -146,13 +152,15 @@ ol.renderer.vector.renderPointGeometry_ = */ ol.renderer.vector.renderMultiPointGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.image)) { + var imageStyle = style.getImage(); + if (goog.isNull(imageStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.MultiPoint); var multiPointGeometry = /** @type {ol.geom.MultiPoint} */ (geometry); - var replay = replayGroup.getReplay(style.zIndex, ol.render.ReplayType.IMAGE); - replay.setImageStyle(style.image); + var replay = replayGroup.getReplay( + style.getZIndex(), ol.render.ReplayType.IMAGE); + replay.setImageStyle(imageStyle); replay.drawMultiPointGeometry(multiPointGeometry, data); }; @@ -166,14 +174,16 @@ ol.renderer.vector.renderMultiPointGeometry_ = */ ol.renderer.vector.renderPolygonGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.fill) && goog.isNull(style.stroke)) { + var fillStyle = style.getFill(); + var strokeStyle = style.getStroke(); + if (goog.isNull(fillStyle) && goog.isNull(strokeStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); var polygonGeometry = /** @type {ol.geom.Polygon} */ (geometry); var replay = replayGroup.getReplay( - style.zIndex, ol.render.ReplayType.POLYGON); - replay.setFillStrokeStyle(style.fill, style.stroke); + style.getZIndex(), ol.render.ReplayType.POLYGON); + replay.setFillStrokeStyle(fillStyle, strokeStyle); replay.drawPolygonGeometry(polygonGeometry, data); }; diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 7354c7c3c7..fbf000ad03 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -244,7 +244,7 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = var i, ii, style, imageStyle, imageState; for (i = 0, ii = styles.length; i < ii; ++i) { style = styles[i]; - imageStyle = style.image; + imageStyle = style.getImage(); if (!goog.isNull(imageStyle)) { if (imageStyle.imageState == ol.style.ImageState.IDLE) { goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE, diff --git a/src/ol/style/style.js b/src/ol/style/style.js index ebe3360482..efb8d8f340 100644 --- a/src/ol/style/style.js +++ b/src/ol/style/style.js @@ -16,33 +16,78 @@ ol.style.Style = function(opt_options) { var options = goog.isDef(opt_options) ? opt_options : {}; /** + * @private * @type {ol.style.Fill} */ - this.fill = goog.isDef(options.fill) ? options.fill : null; + this.fill_ = goog.isDef(options.fill) ? options.fill : null; /** + * @private * @type {ol.style.Image} */ - this.image = goog.isDef(options.image) ? options.image : null; + this.image_ = goog.isDef(options.image) ? options.image : null; /** + * @private * @type {ol.style.Stroke} */ - this.stroke = goog.isDef(options.stroke) ? options.stroke : null; + this.stroke_ = goog.isDef(options.stroke) ? options.stroke : null; /** + * @private * @type {ol.style.Text} */ - this.text = goog.isDef(options.text) ? options.text : null; + this.text_ = goog.isDef(options.text) ? options.text : null; /** + * @private * @type {number|undefined} */ - this.zIndex = options.zIndex; + this.zIndex_ = options.zIndex; }; +/** + * @return {ol.style.Fill} Fill style. + */ +ol.style.Style.prototype.getFill = function() { + return this.fill_; +}; + + +/** + * @return {ol.style.Image} Image style. + */ +ol.style.Style.prototype.getImage = function() { + return this.image_; +}; + + +/** + * @return {ol.style.Stroke} Stroke style. + */ +ol.style.Style.prototype.getStroke = function() { + return this.stroke_; +}; + + +/** + * @return {ol.style.Text} Text style. + */ +ol.style.Style.prototype.getText = function() { + return this.text_; +}; + + +/** + * @return {number|undefined} ZIndex. + */ +ol.style.Style.prototype.getZIndex = function() { + return this.zIndex_; +}; + + /** * @typedef {function(ol.Feature, number): Array.} */ From 8fdd178d0ad3775f42335189496a15077fab7678 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 11:36:31 +0100 Subject: [PATCH 654/919] Add getters to ol.style.Circle --- src/ol/style/circlestyle.js | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/src/ol/style/circlestyle.js b/src/ol/style/circlestyle.js index 9f5147a02b..1b1aae667d 100644 --- a/src/ol/style/circlestyle.js +++ b/src/ol/style/circlestyle.js @@ -62,10 +62,10 @@ goog.inherits(ol.style.Circle, ol.style.Image); /** - * @inheritDoc + * @return {ol.style.Fill} Fill style. */ -ol.style.Circle.prototype.getImage = function(pixelRatio) { - return this.canvas_; +ol.style.Circle.prototype.getFill = function() { + return this.fill_; }; @@ -77,6 +77,30 @@ ol.style.Circle.prototype.getHitDetectionImage = function(pixelRatio) { }; +/** + * @inheritDoc + */ +ol.style.Circle.prototype.getImage = function(pixelRatio) { + return this.canvas_; +}; + + +/** + * @return {number} Radius. + */ +ol.style.Circle.prototype.getRadius = function() { + return this.radius_; +}; + + +/** + * @return {ol.style.Stroke} Stroke style. + */ +ol.style.Circle.prototype.getStroke = function() { + return this.stroke_; +}; + + /** * @inheritDoc */ From 16047ff8528ee9d5a5b9db5b0fd9936ebdef9c10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 11:41:38 +0100 Subject: [PATCH 655/919] Add getters to ol.style.Fill --- src/ol/render/canvas/canvasimmediate.js | 5 +++-- src/ol/render/canvas/canvasreplay.js | 5 +++-- src/ol/style/circlestyle.js | 2 +- src/ol/style/fillstyle.js | 11 ++++++++++- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index ef1c1e182a..c4c345bb95 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -378,8 +378,9 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { var state = this.state_; if (!goog.isNull(fillStyle)) { - state.fillStyle = ol.color.asString(!goog.isNull(fillStyle.color) ? - fillStyle.color : ol.render.canvas.defaultFillStyle); + var fillStyleColor = fillStyle.getColor(); + state.fillStyle = ol.color.asString(!goog.isNull(fillStyleColor) ? + fillStyleColor : ol.render.canvas.defaultFillStyle); } else { state.fillStyle = undefined; } diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 4a1e46d8e2..d8e32d7e3d 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1027,8 +1027,9 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = goog.asserts.assert(!goog.isNull(fillStyle) || !goog.isNull(strokeStyle)); var state = this.state_; if (!goog.isNull(fillStyle)) { - state.fillStyle = ol.color.asString(!goog.isNull(fillStyle.color) ? - fillStyle.color : ol.render.canvas.defaultFillStyle); + var fillStyleColor = fillStyle.getColor(); + state.fillStyle = ol.color.asString(!goog.isNull(fillStyleColor) ? + fillStyleColor : ol.render.canvas.defaultFillStyle); } else { state.fillStyle = undefined; } diff --git a/src/ol/style/circlestyle.js b/src/ol/style/circlestyle.js index 1b1aae667d..1735057394 100644 --- a/src/ol/style/circlestyle.js +++ b/src/ol/style/circlestyle.js @@ -127,7 +127,7 @@ ol.style.Circle.prototype.render_ = function() { context.arc(size / 2, size / 2, this.radius_, 0, 2 * Math.PI, true); if (!goog.isNull(this.fill_)) { - context.fillStyle = ol.color.asString(this.fill_.color); + context.fillStyle = ol.color.asString(this.fill_.getColor()); context.fill(); } if (!goog.isNull(this.stroke_)) { diff --git a/src/ol/style/fillstyle.js b/src/ol/style/fillstyle.js index 78a4ddf59e..25f59b0be0 100644 --- a/src/ol/style/fillstyle.js +++ b/src/ol/style/fillstyle.js @@ -13,7 +13,16 @@ ol.style.Fill = function(opt_options) { var options = goog.isDef(opt_options) ? opt_options : {}; /** + * @private * @type {ol.Color|string} */ - this.color = goog.isDef(options.color) ? options.color : null; + this.color_ = goog.isDef(options.color) ? options.color : null; +}; + + +/** + * @return {ol.Color|string} Color. + */ +ol.style.Fill.prototype.getColor = function() { + return this.color_; }; From e4f2a7552e00c0de4a772471fd111f8704cb941e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 11:43:56 +0100 Subject: [PATCH 656/919] Add getters to ol.style.Icon --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 11 ++++++----- src/ol/style/iconstyle.js | 8 ++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index fbf000ad03..a6001644bd 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -151,7 +151,7 @@ ol.renderer.canvas.VectorLayer.prototype.getVectorLayer = function() { ol.renderer.canvas.VectorLayer.prototype.handleImageStyleChange_ = function(event) { var imageStyle = /** @type {ol.style.Image} */ (event.target); - if (imageStyle.imageState == ol.style.ImageState.LOADED) { + if (imageStyle.getImageState() == ol.style.ImageState.LOADED) { this.renderIfReadyAndVisible(); } }; @@ -246,16 +246,17 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = style = styles[i]; imageStyle = style.getImage(); if (!goog.isNull(imageStyle)) { - if (imageStyle.imageState == ol.style.ImageState.IDLE) { + if (imageStyle.getImageState() == ol.style.ImageState.IDLE) { goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE, this.handleImageStyleChange_, false, this); imageStyle.load(); - } else if (imageStyle.imageState == ol.style.ImageState.LOADED) { + } else if (imageStyle.getImageState() == ol.style.ImageState.LOADED) { ol.renderer.vector.renderFeature( replayGroup, feature, style, squaredTolerance, feature); } - goog.asserts.assert(imageStyle.imageState != ol.style.ImageState.IDLE); - loading = imageStyle.imageState == ol.style.ImageState.LOADING; + goog.asserts.assert( + imageStyle.getImageState() != ol.style.ImageState.IDLE); + loading = imageStyle.getImageState() == ol.style.ImageState.LOADING; } else { ol.renderer.vector.renderFeature( replayGroup, feature, style, squaredTolerance, feature); diff --git a/src/ol/style/iconstyle.js b/src/ol/style/iconstyle.js index 2dfbb40c41..96b312ee92 100644 --- a/src/ol/style/iconstyle.js +++ b/src/ol/style/iconstyle.js @@ -174,6 +174,14 @@ ol.style.Icon.prototype.getHitDetectionImage = function(pixelRatio) { }; +/** + * @return {string|undefined} Image src. + */ +ol.style.Icon.prototype.getSrc = function() { + return this.src_; +}; + + /** * Load not yet loaded URI. */ From 5cd3ab06fc4b1009b58bc2d3c792cf4e27c4c822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 13:02:10 +0100 Subject: [PATCH 657/919] Add getters to ol.style.Image --- src/ol/render/canvas/canvasimmediate.js | 16 ++++--- src/ol/render/canvas/canvasreplay.js | 16 ++++--- src/ol/style/imagestyle.js | 60 +++++++++++++++++++++++-- 3 files changed, 75 insertions(+), 17 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index c4c345bb95..a96da78abe 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -455,18 +455,20 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyles_ = function() { */ ol.render.canvas.Immediate.prototype.setImageStyle = function(imageStyle) { if (!goog.isNull(imageStyle)) { - goog.asserts.assert(!goog.isNull(imageStyle.anchor)); - goog.asserts.assert(goog.isDef(imageStyle.size)); + var anchor = imageStyle.getAnchor(); + goog.asserts.assert(!goog.isNull(anchor)); + var size = imageStyle.getSize(); + goog.asserts.assert(!goog.isNull(size)); // FIXME pixel ratio var image = imageStyle.getImage(1); goog.asserts.assert(!goog.isNull(image)); var state = this.state_; - state.anchorX = imageStyle.anchor[0]; - state.anchorY = imageStyle.anchor[1]; + state.anchorX = anchor[0]; + state.anchorY = anchor[1]; state.image = image; - state.width = imageStyle.size[0]; - state.height = imageStyle.size[1]; - state.snapToPixel = imageStyle.snapToPixel; + state.width = size[0]; + state.height = size[1]; + state.snapToPixel = imageStyle.getSnapToPixel(); } }; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index d8e32d7e3d..638bae82d0 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -602,20 +602,22 @@ ol.render.canvas.ImageReplay.prototype.finish = function() { */ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { goog.asserts.assert(!goog.isNull(imageStyle)); - goog.asserts.assert(!goog.isNull(imageStyle.anchor)); - goog.asserts.assert(goog.isDef(imageStyle.size)); + var anchor = imageStyle.getAnchor(); + goog.asserts.assert(!goog.isNull(anchor)); + var size = imageStyle.getSize(); + goog.asserts.assert(!goog.isNull(size)); // FIXME pixel ratio var hitDetectionImage = imageStyle.getHitDetectionImage(1); goog.asserts.assert(!goog.isNull(hitDetectionImage)); var image = imageStyle.getImage(1); goog.asserts.assert(!goog.isNull(image)); - this.anchorX_ = imageStyle.anchor[0]; - this.anchorY_ = imageStyle.anchor[1]; + this.anchorX_ = anchor[0]; + this.anchorY_ = anchor[1]; this.hitDetectionImage_ = hitDetectionImage; this.image_ = image; - this.width_ = imageStyle.size[0]; - this.height_ = imageStyle.size[1]; - this.snapToPixel_ = imageStyle.snapToPixel; + this.width_ = size[0]; + this.height_ = size[1]; + this.snapToPixel_ = imageStyle.getSnapToPixel(); }; diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 9a566bcfe4..ddb5089401 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -40,34 +40,40 @@ ol.style.Image = function(options) { goog.base(this); /** + * @protected * @type {ol.Pixel} */ this.anchor = options.anchor; /** + * @protected * @type {ol.style.ImageState} */ this.imageState = options.imageState; /** + * @private * @type {number|undefined} */ - this.rotation = options.rotation; + this.rotation_ = options.rotation; /** + * @protected * @type {ol.Size} */ this.size = options.size; /** + * @private * @type {boolean|undefined} */ - this.snapToPixel = options.snapToPixel; + this.snapToPixel_ = options.snapToPixel; /** + * @private * @type {boolean|undefined} */ - this.subtractViewRotation = options.subtractViewRotation; + this.subtractViewRotation_ = options.subtractViewRotation; }; goog.inherits(ol.style.Image, goog.events.EventTarget); @@ -81,6 +87,54 @@ ol.style.Image.prototype.dispatchChangeEvent = function() { }; +/** + * @return {ol.Pixel} Anchor. + */ +ol.style.Image.prototype.getAnchor = function() { + return this.anchor; +}; + + +/** + * @return {ol.style.ImageState} Image state. + */ +ol.style.Image.prototype.getImageState = function() { + return this.imageState; +}; + + +/** + * @return {number|undefined} Rotation. + */ +ol.style.Image.prototype.getRotation = function() { + return this.rotation_; +}; + + +/** + * @return {ol.Size} Size. + */ +ol.style.Image.prototype.getSize = function() { + return this.size; +}; + + +/** + * @return {boolean|undefined} Snap to pixel? + */ +ol.style.Image.prototype.getSnapToPixel = function() { + return this.snapToPixel_; +}; + + +/** + * @return {boolean|undefined} Subtract view rotation? + */ +ol.style.Image.prototype.getSubtractViewRotation = function() { + return this.subtractViewRotation_; +}; + + /** * @param {number} pixelRatio Pixel ratio. * @return {HTMLCanvasElement|HTMLVideoElement|Image} Image element. From d4d9cb6a3ac66c905a5a3d095a97c7701d9d41d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 13:19:51 +0100 Subject: [PATCH 658/919] Add getters to ol.style.Stroke --- src/ol/render/canvas/canvasimmediate.js | 30 ++++++----- src/ol/render/canvas/canvasreplay.js | 60 +++++++++++++--------- src/ol/style/circlestyle.js | 6 ++- src/ol/style/strokestyle.js | 66 ++++++++++++++++++++++--- 4 files changed, 118 insertions(+), 44 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index a96da78abe..c89230ad96 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -385,18 +385,24 @@ ol.render.canvas.Immediate.prototype.setFillStrokeStyle = state.fillStyle = undefined; } if (!goog.isNull(strokeStyle)) { - state.strokeStyle = ol.color.asString(!goog.isNull(strokeStyle.color) ? - strokeStyle.color : ol.render.canvas.defaultStrokeStyle); - state.lineCap = goog.isDef(strokeStyle.lineCap) ? - strokeStyle.lineCap : ol.render.canvas.defaultLineCap; - state.lineDash = !goog.isNull(strokeStyle.lineDash) ? - strokeStyle.lineDash : ol.render.canvas.defaultLineDash; - state.lineJoin = goog.isDef(strokeStyle.lineJoin) ? - strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; - state.lineWidth = this.pixelRatio_ * (goog.isDef(strokeStyle.width) ? - strokeStyle.width : ol.render.canvas.defaultLineWidth); - state.miterLimit = goog.isDef(strokeStyle.miterLimit) ? - strokeStyle.miterLimit : ol.render.canvas.defaultMiterLimit; + var strokeStyleColor = strokeStyle.getColor(); + state.strokeStyle = ol.color.asString(!goog.isNull(strokeStyleColor) ? + strokeStyleColor : ol.render.canvas.defaultStrokeStyle); + var strokeStyleLineCap = strokeStyle.getLineCap(); + state.lineCap = goog.isDef(strokeStyleLineCap) ? + strokeStyleLineCap : ol.render.canvas.defaultLineCap; + var strokeStyleLineDash = strokeStyle.getLineDash(); + state.lineDash = !goog.isNull(strokeStyleLineDash) ? + strokeStyleLineDash : ol.render.canvas.defaultLineDash; + var strokeStyleLineJoin = strokeStyle.getLineJoin(); + state.lineJoin = goog.isDef(strokeStyleLineJoin) ? + strokeStyleLineJoin : ol.render.canvas.defaultLineJoin; + var strokeStyleWidth = strokeStyle.getWidth(); + state.lineWidth = this.pixelRatio_ * (goog.isDef(strokeStyleWidth) ? + strokeStyleWidth : ol.render.canvas.defaultLineWidth); + var strokeStyleMiterLimit = strokeStyle.getMiterLimit(); + state.miterLimit = goog.isDef(strokeStyleMiterLimit) ? + strokeStyleMiterLimit : ol.render.canvas.defaultMiterLimit; } else { state.strokeStyle = undefined; state.lineCap = undefined; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 638bae82d0..8a72a97353 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -810,18 +810,24 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = goog.asserts.assert(!goog.isNull(this.state_)); goog.asserts.assert(goog.isNull(fillStyle)); goog.asserts.assert(!goog.isNull(strokeStyle)); - this.state_.strokeStyle = ol.color.asString(!goog.isNull(strokeStyle.color) ? - strokeStyle.color : ol.render.canvas.defaultStrokeStyle); - this.state_.lineCap = goog.isDef(strokeStyle.lineCap) ? - strokeStyle.lineCap : ol.render.canvas.defaultLineCap; - this.state_.lineDash = !goog.isNull(strokeStyle.lineDash) ? - strokeStyle.lineDash : ol.render.canvas.defaultLineDash; - this.state_.lineJoin = goog.isDef(strokeStyle.lineJoin) ? - strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; - this.state_.lineWidth = this.pixelRatio * (goog.isDef(strokeStyle.width) ? - strokeStyle.width : ol.render.canvas.defaultLineWidth); - this.state_.miterLimit = goog.isDef(strokeStyle.miterLimit) ? - strokeStyle.miterLimit : ol.render.canvas.defaultMiterLimit; + var strokeStyleColor = strokeStyle.getColor(); + this.state_.strokeStyle = ol.color.asString(!goog.isNull(strokeStyleColor) ? + strokeStyleColor : ol.render.canvas.defaultStrokeStyle); + var strokeStyleLineCap = strokeStyle.getLineCap(); + this.state_.lineCap = goog.isDef(strokeStyleLineCap) ? + strokeStyleLineCap : ol.render.canvas.defaultLineCap; + var strokeStyleLineDash = strokeStyle.getLineDash(); + this.state_.lineDash = !goog.isNull(strokeStyleLineDash) ? + strokeStyleLineDash : ol.render.canvas.defaultLineDash; + var strokeStyleLineJoin = strokeStyle.getLineJoin(); + this.state_.lineJoin = goog.isDef(strokeStyleLineJoin) ? + strokeStyleLineJoin : ol.render.canvas.defaultLineJoin; + var strokeStyleWidth = strokeStyle.getWidth(); + this.state_.lineWidth = this.pixelRatio * (goog.isDef(strokeStyleWidth) ? + strokeStyleWidth : ol.render.canvas.defaultLineWidth); + var strokeStyleMiterLimit = strokeStyle.getMiterLimit(); + this.state_.miterLimit = goog.isDef(strokeStyleMiterLimit) ? + strokeStyleMiterLimit : ol.render.canvas.defaultMiterLimit; }; @@ -1036,18 +1042,24 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = state.fillStyle = undefined; } if (!goog.isNull(strokeStyle)) { - state.strokeStyle = ol.color.asString(!goog.isNull(strokeStyle.color) ? - strokeStyle.color : ol.render.canvas.defaultStrokeStyle); - state.lineCap = goog.isDef(strokeStyle.lineCap) ? - strokeStyle.lineCap : ol.render.canvas.defaultLineCap; - state.lineDash = !goog.isNull(strokeStyle.lineDash) ? - strokeStyle.lineDash : ol.render.canvas.defaultLineDash; - state.lineJoin = goog.isDef(strokeStyle.lineJoin) ? - strokeStyle.lineJoin : ol.render.canvas.defaultLineJoin; - state.lineWidth = this.pixelRatio * (goog.isDef(strokeStyle.width) ? - strokeStyle.width : ol.render.canvas.defaultLineWidth); - state.miterLimit = goog.isDef(strokeStyle.miterLimit) ? - strokeStyle.miterLimit : ol.render.canvas.defaultMiterLimit; + var strokeStyleColor = strokeStyle.getColor(); + state.strokeStyle = ol.color.asString(!goog.isNull(strokeStyleColor) ? + strokeStyleColor : ol.render.canvas.defaultStrokeStyle); + var strokeStyleLineCap = strokeStyle.getLineCap(); + state.lineCap = goog.isDef(strokeStyleLineCap) ? + strokeStyleLineCap : ol.render.canvas.defaultLineCap; + var strokeStyleLineDash = strokeStyle.getLineDash(); + state.lineDash = !goog.isNull(strokeStyleLineDash) ? + strokeStyleLineDash : ol.render.canvas.defaultLineDash; + var strokeStyleLineJoin = strokeStyle.getLineJoin(); + state.lineJoin = goog.isDef(strokeStyleLineJoin) ? + strokeStyleLineJoin : ol.render.canvas.defaultLineJoin; + var strokeStyleWidth = strokeStyle.getWidth(); + state.lineWidth = this.pixelRatio * (goog.isDef(strokeStyleWidth) ? + strokeStyleWidth : ol.render.canvas.defaultLineWidth); + var strokeStyleMiterLimit = strokeStyle.getMiterLimit(); + state.miterLimit = goog.isDef(strokeStyleMiterLimit) ? + strokeStyleMiterLimit : ol.render.canvas.defaultMiterLimit; } else { state.strokeStyle = undefined; state.lineCap = undefined; diff --git a/src/ol/style/circlestyle.js b/src/ol/style/circlestyle.js index 1735057394..c698f46247 100644 --- a/src/ol/style/circlestyle.js +++ b/src/ol/style/circlestyle.js @@ -131,8 +131,10 @@ ol.style.Circle.prototype.render_ = function() { context.fill(); } if (!goog.isNull(this.stroke_)) { - context.strokeStyle = ol.color.asString(this.stroke_.color); - context.lineWidth = goog.isDef(this.stroke_.width) ? this.stroke_.width : 1; + var strokeColor = this.stroke_.getColor(); + context.strokeStyle = ol.color.asString(strokeColor); + var strokeWidth = this.stroke_.getWidth(); + context.lineWidth = goog.isDef(strokeWidth) ? strokeWidth : 1; context.stroke(); } diff --git a/src/ol/style/strokestyle.js b/src/ol/style/strokestyle.js index 7363fd3a2f..08bbeab522 100644 --- a/src/ol/style/strokestyle.js +++ b/src/ol/style/strokestyle.js @@ -13,32 +13,86 @@ ol.style.Stroke = function(opt_options) { var options = goog.isDef(opt_options) ? opt_options : {}; /** + * @private * @type {ol.Color|string} */ - this.color = goog.isDef(options.color) ? options.color : null; + this.color_ = goog.isDef(options.color) ? options.color : null; /** + * @private * @type {string|undefined} */ - this.lineCap = options.lineCap; + this.lineCap_ = options.lineCap; /** + * @private * @type {Array.} */ - this.lineDash = goog.isDef(options.lineDash) ? options.lineDash : null; + this.lineDash_ = goog.isDef(options.lineDash) ? options.lineDash : null; /** + * @private * @type {string|undefined} */ - this.lineJoin = options.lineJoin; + this.lineJoin_ = options.lineJoin; /** + * @private * @type {number|undefined} */ - this.miterLimit = options.miterLimit; + this.miterLimit_ = options.miterLimit; /** + * @private * @type {number|undefined} */ - this.width = options.width; + this.width_ = options.width; +}; + + +/** + * @return {ol.Color|string} Color. + */ +ol.style.Stroke.prototype.getColor = function() { + return this.color_; +}; + + +/** + * @return {string|undefined} Line cap. + */ +ol.style.Stroke.prototype.getLineCap = function() { + return this.lineCap_; +}; + + +/** + * @return {Array.} Line dash. + */ +ol.style.Stroke.prototype.getLineDash = function() { + return this.lineDash_; +}; + + +/** + * @return {string|undefined} Line join. + */ +ol.style.Stroke.prototype.getLineJoin = function() { + return this.lineJoin_; +}; + + +/** + * @return {number|undefined} Miter limit. + */ +ol.style.Stroke.prototype.getMiterLimit = function() { + return this.miterLimit_; +}; + + +/** + * @return {number|undefined} Width. + */ +ol.style.Stroke.prototype.getWidth = function() { + return this.width_; }; From 44d310bb6d9760924eb9f3798502b9f7591eff39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 13:34:07 +0100 Subject: [PATCH 659/919] Add getters to ol.style.Text --- src/ol/render/canvas/canvasimmediate.js | 15 +++-- src/ol/style/textstyle.js | 85 +++++++++++++++++++++---- 2 files changed, 83 insertions(+), 17 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index c89230ad96..85b3260a82 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -487,12 +487,15 @@ ol.render.canvas.Immediate.prototype.setTextStyle = function(textStyle) { var state = this.state_; if (!ol.style.Text.equals(state.textStyle, textStyle)) { if (goog.isDefAndNotNull(textStyle)) { - context.font = goog.isDef(textStyle.font) ? - textStyle.font : ol.render.canvas.defaultFont; - context.textAlign = goog.isDef(textStyle.textAlign) ? - textStyle.textAlign : ol.render.canvas.defaultTextAlign; - context.textBaseline = goog.isDef(textStyle.textBaseline) ? - textStyle.textBaseline : ol.render.canvas.defaultTextBaseline; + var textStyleFont = textStyle.getFont(); + context.font = goog.isDef(textStyleFont) ? + textStyleFont : ol.render.canvas.defaultFont; + var textStyleTextAlign = textStyle.getTextAlign(); + context.textAlign = goog.isDef(textStyleTextAlign) ? + textStyleTextAlign : ol.render.canvas.defaultTextAlign; + var textStyleTextBaseline = textStyle.getTextBaseline(); + context.textBaseline = goog.isDef(textStyleTextBaseline) ? + textStyleTextBaseline : ol.render.canvas.defaultTextBaseline; } state.textStyle = textStyle; } diff --git a/src/ol/style/textstyle.js b/src/ol/style/textstyle.js index a2a7851897..8ad1c50469 100644 --- a/src/ol/style/textstyle.js +++ b/src/ol/style/textstyle.js @@ -11,39 +11,46 @@ ol.style.Text = function(opt_options) { var options = goog.isDef(opt_options) ? opt_options : {}; /** + * @private * @type {string|undefined} */ - this.font = options.font; + this.font_ = options.font; /** + * @private * @type {number|undefined} */ - this.rotation = options.rotation; + this.rotation_ = options.rotation; /** + * @private * @type {string|undefined} */ - this.text = options.text; + this.text_ = options.text; /** + * @private * @type {string|undefined} */ - this.textAlign = options.textAlign; + this.textAlign_ = options.textAlign; /** + * @private * @type {string|undefined} */ - this.textBaseline = options.textBaseline; + this.textBaseline_ = options.textBaseline; /** + * @private * @type {ol.style.Fill} */ - this.fill = goog.isDef(options.fill) ? options.fill : null; + this.fill_ = goog.isDef(options.fill) ? options.fill : null; /** + * @private * @type {ol.style.Stroke} */ - this.stroke = goog.isDef(options.stroke) ? options.stroke : null; + this.stroke_ = goog.isDef(options.stroke) ? options.stroke : null; }; @@ -56,10 +63,10 @@ ol.style.Text.equals = function(textStyle1, textStyle2) { if (!goog.isNull(textStyle1)) { if (!goog.isNull(textStyle2)) { return textStyle1 === textStyle2 || ( - textStyle1.font == textStyle2.font && - textStyle1.text == textStyle2.text && - textStyle1.textAlign == textStyle2.textAlign && - textStyle1.textBaseline == textStyle2.textBaseline); + textStyle1.getFont() == textStyle2.getFont() && + textStyle1.getText() == textStyle2.getText() && + textStyle1.getTextAlign() == textStyle2.getTextAlign() && + textStyle1.getTextBaseline() == textStyle2.getTextBaseline()); } else { return false; } @@ -71,3 +78,59 @@ ol.style.Text.equals = function(textStyle1, textStyle2) { } } }; + + +/** + * @return {string|undefined} Font. + */ +ol.style.Text.prototype.getFont = function() { + return this.font_; +}; + + +/** + * @return {ol.style.Fill} Fill style. + */ +ol.style.Text.prototype.getFill = function() { + return this.fill_; +}; + + +/** + * @return {number|undefined} Rotation. + */ +ol.style.Text.prototype.getRotation = function() { + return this.rotation_; +}; + + +/** + * @return {ol.style.Stroke} Stroke style. + */ +ol.style.Text.prototype.getStroke = function() { + return this.stroke_; +}; + + +/** + * @return {string|undefined} Text. + */ +ol.style.Text.prototype.getText = function() { + return this.text_; +}; + + +/** + * @return {string|undefined} Text align. + */ +ol.style.Text.prototype.getTextAlign = function() { + return this.textAlign_; +}; + + +/** + * @return {string|undefined} Text baseline. + */ +ol.style.Text.prototype.getTextBaseline = function() { + return this.textBaseline_; +}; From 0dad9f49c7b635f24dcc85d4315926638753e5d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 13:56:35 +0100 Subject: [PATCH 660/919] Export ol.style.Circle getters --- src/ol/style/circlestyle.exports | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ol/style/circlestyle.exports b/src/ol/style/circlestyle.exports index e70297f950..f397b8a0bc 100644 --- a/src/ol/style/circlestyle.exports +++ b/src/ol/style/circlestyle.exports @@ -1 +1,5 @@ @exportSymbol ol.style.Circle +@exportProperty ol.style.Circle.prototype.getFill +@exportProperty ol.style.Circle.prototype.getImage +@exportProperty ol.style.Circle.prototype.getRadius +@exportProperty ol.style.Circle.prototype.getStroke From 47a1ec3a00bfeaeadcec2c6d4cc550358da29591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 13:56:50 +0100 Subject: [PATCH 661/919] Export ol.style.Fill getters --- src/ol/style/fillstyle.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/style/fillstyle.exports b/src/ol/style/fillstyle.exports index 4c10b8d9ca..81bb520fc8 100644 --- a/src/ol/style/fillstyle.exports +++ b/src/ol/style/fillstyle.exports @@ -1 +1,2 @@ @exportSymbol ol.style.Fill +@exportProperty ol.style.Fill.prototype.getColor From ad945e6331418af63c323ad0385f21909f3de46b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 13:57:06 +0100 Subject: [PATCH 662/919] Export ol.style.Icon getters --- src/ol/style/iconstyle.exports | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ol/style/iconstyle.exports b/src/ol/style/iconstyle.exports index 860fe1e04f..71c33637dd 100644 --- a/src/ol/style/iconstyle.exports +++ b/src/ol/style/iconstyle.exports @@ -1 +1,3 @@ @exportSymbol ol.style.Icon +@exportProperty ol.style.Icon.prototype.getImage +@exportProperty ol.style.Icon.prototype.getSrc From c9c8fad01a8d2cc0be8d677cfd153a1aec013470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 13:57:30 +0100 Subject: [PATCH 663/919] Export ol.style.Image getters --- src/ol/style/imagestyle.exports | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ol/style/imagestyle.exports b/src/ol/style/imagestyle.exports index 070870ecef..d41b6f4897 100644 --- a/src/ol/style/imagestyle.exports +++ b/src/ol/style/imagestyle.exports @@ -1 +1,4 @@ @exportSymbol ol.style.Image +@exportProperty ol.style.Image.prototype.getAnchor +@exportProperty ol.style.Image.prototype.getRotation +@exportProperty ol.style.Image.prototype.getSize From f22f1e1f0481e59e7341ab39c86d18ff29bd081a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 13:57:49 +0100 Subject: [PATCH 664/919] Export ol.style.Stroke getters --- src/ol/style/strokestyle.exports | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ol/style/strokestyle.exports b/src/ol/style/strokestyle.exports index 20bb65ff96..3e2060e9d8 100644 --- a/src/ol/style/strokestyle.exports +++ b/src/ol/style/strokestyle.exports @@ -1 +1,7 @@ @exportSymbol ol.style.Stroke +@exportProperty ol.style.Stroke.prototype.getColor +@exportProperty ol.style.Stroke.prototype.getLineCap +@exportProperty ol.style.Stroke.prototype.getLineDash +@exportProperty ol.style.Stroke.prototype.getLineJoin +@exportProperty ol.style.Stroke.prototype.getMiterLimit +@exportProperty ol.style.Stroke.prototype.getWidth From 84e98b4422746e51af3a3b5858e156dcebb7274e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 13:58:03 +0100 Subject: [PATCH 665/919] Export ol.style.Style getters --- src/ol/style/style.exports | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ol/style/style.exports b/src/ol/style/style.exports index c6eea6e449..94767397d0 100644 --- a/src/ol/style/style.exports +++ b/src/ol/style/style.exports @@ -1 +1,6 @@ @exportSymbol ol.style.Style +@exportProperty ol.style.Style.prototype.getFill +@exportProperty ol.style.Style.prototype.getImage +@exportProperty ol.style.Style.prototype.getStroke +@exportProperty ol.style.Style.prototype.getText +@exportProperty ol.style.Style.prototype.getZIndex From 387fcfbdb054c3955f5f1eb12cfd8fc6b420ce15 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 13:20:43 +0100 Subject: [PATCH 666/919] Factor out ol.source.Vector#addFeatureInternal --- src/ol/source/vectorsource.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 11079daf57..4de918438a 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -78,6 +78,17 @@ goog.inherits(ol.source.Vector, ol.source.Source); * @param {ol.Feature} feature Feature. */ ol.source.Vector.prototype.addFeature = function(feature) { + this.addFeatureInternal(feature); + this.dispatchChangeEvent(); +}; + + +/** + * Add a feature without firing a `change` event. + * @param {ol.Feature} feature Feature. + * @protected + */ +ol.source.Vector.prototype.addFeatureInternal = function(feature) { var featureKey = goog.getUid(feature) + ''; goog.asserts.assert(!(featureKey in this.featureChangeKeys_)); this.featureChangeKeys_[featureKey] = goog.events.listen(feature, From e6c66d36785eeb56e86e7b2433a115921556acd3 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 13:21:51 +0100 Subject: [PATCH 667/919] Add ol.source.Vector#addFeaturesInternal --- src/ol/source/vectorsource.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 4de918438a..2e4b3240b2 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -106,6 +106,20 @@ ol.source.Vector.prototype.addFeatureInternal = function(feature) { }; +/** + * Add features without firing a `change` event. + * @param {Array.} features Features. + * @protected + */ +ol.source.Vector.prototype.addFeaturesInternal = function(features) { + // FIXME use R-Bush bulk load when available + var i, ii; + for (i = 0, ii = features.length; i < ii; ++i) { + this.addFeatureInternal(features[i]); + } +}; + + /** * FIXME empty description for jsdoc */ From 0912c8f6eacb9c9dd83562609b380c6c2e29b9df Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 13:23:35 +0100 Subject: [PATCH 668/919] Add ol.source.Vector#addFeatures --- src/ol/source/vectorsource.exports | 1 + src/ol/source/vectorsource.js | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/ol/source/vectorsource.exports b/src/ol/source/vectorsource.exports index cc76d95621..1b55238538 100644 --- a/src/ol/source/vectorsource.exports +++ b/src/ol/source/vectorsource.exports @@ -1,5 +1,6 @@ @exportSymbol ol.source.Vector @exportProperty ol.source.Vector.prototype.addFeature +@exportProperty ol.source.Vector.prototype.addFeatures @exportProperty ol.source.Vector.prototype.getClosestFeatureToCoordinate @exportProperty ol.source.Vector.prototype.forEachFeature @exportProperty ol.source.Vector.prototype.getAllFeatures diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 2e4b3240b2..b5e9df9e1b 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -102,6 +102,14 @@ ol.source.Vector.prototype.addFeatureInternal = function(feature) { } this.dispatchEvent( new ol.source.VectorEvent(ol.source.VectorEventType.ADDFEATURE, feature)); +}; + + +/** + * @param {Array.} features Features. + */ +ol.source.Vector.prototype.addFeatures = function(features) { + this.addFeaturesInternal(features); this.dispatchChangeEvent(); }; From 3af6521ee341c9765b837b11da86e8348af4e2d4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 13:24:06 +0100 Subject: [PATCH 669/919] Use addFeaturesInternal in ol.source.Vector constructor --- src/ol/source/vectorsource.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index b5e9df9e1b..c90dbbc679 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -63,11 +63,7 @@ ol.source.Vector = function(opt_options) { this.featureChangeKeys_ = {}; if (goog.isDef(options.features)) { - var features = options.features; - var i, ii; - for (i = 0, ii = features.length; i < ii; ++i) { - this.addFeature(features[i]); - } + this.addFeaturesInternal(options.features); } }; From f1fac356dd8f128bbc970242fa651c38389c9944 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 13:25:48 +0100 Subject: [PATCH 670/919] Change ol.source.Vector#removeFeatureInternal from private to protected --- src/ol/source/vectorsource.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index c90dbbc679..9d6016973f 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -128,7 +128,7 @@ ol.source.Vector.prototype.addFeaturesInternal = function(features) { * FIXME empty description for jsdoc */ ol.source.Vector.prototype.clear = function() { - this.rBush_.forEach(this.removeFeatureInternal_, this); + this.rBush_.forEach(this.removeFeatureInternal, this); this.rBush_.clear(); this.dispatchChangeEvent(); }; @@ -297,16 +297,17 @@ ol.source.Vector.prototype.removeFeature = function(feature) { } else { this.rBush_.remove(feature); } - this.removeFeatureInternal_(feature); + this.removeFeatureInternal(feature); this.dispatchChangeEvent(); }; /** + * Remove feature without firing a `change` event. * @param {ol.Feature} feature Feature. - * @private + * @protected */ -ol.source.Vector.prototype.removeFeatureInternal_ = function(feature) { +ol.source.Vector.prototype.removeFeatureInternal = function(feature) { var featureKey = goog.getUid(feature) + ''; goog.asserts.assert(featureKey in this.featureChangeKeys_); goog.events.unlistenByKey(this.featureChangeKeys_[featureKey]); From b2c822c9caed0ca5057afe01a75c036855a102f9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 13:36:21 +0100 Subject: [PATCH 671/919] Clear null geometry features in ol.source.Vector#clear --- src/ol/source/vectorsource.js | 4 ++++ test/spec/ol/source/vectorsource.test.js | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 9d6016973f..a69c70ca6d 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -130,6 +130,10 @@ ol.source.Vector.prototype.addFeaturesInternal = function(features) { ol.source.Vector.prototype.clear = function() { this.rBush_.forEach(this.removeFeatureInternal, this); this.rBush_.clear(); + goog.object.forEach( + this.nullGeometryFeatures_, this.removeFeatureInternal, this); + goog.object.clear(this.nullGeometryFeatures_); + goog.asserts.assert(goog.object.isEmpty(this.featureChangeKeys_)); this.dispatchChangeEvent(); }; diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js index 7037c86bbc..975a793af6 100644 --- a/test/spec/ol/source/vectorsource.test.js +++ b/test/spec/ol/source/vectorsource.test.js @@ -66,7 +66,7 @@ describe('ol.source.Vector', function() { }); - describe('when populated with 10 random points', function() { + describe('when populated with 10 random points and a null', function() { var features; var vectorSource; @@ -77,6 +77,7 @@ describe('ol.source.Vector', function() { features[i] = new ol.Feature(new ol.geom.Point([Math.random(), Math.random()])); } + features.push(new ol.Feature(null)); vectorSource = new ol.source.Vector({ features: features }); @@ -95,7 +96,7 @@ describe('ol.source.Vector', function() { expect(changeSpy).to.be.called(); expect(changeSpy.callCount).to.be(1); expect(removeFeatureSpy).to.be.called(); - expect(removeFeatureSpy.callCount).to.be(10); + expect(removeFeatureSpy.callCount).to.be(features.length); }); }); From 1cb70592d768af0703305736edb7fa2099b92257 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 14:11:01 +0100 Subject: [PATCH 672/919] Use addFeatures in ol.source.VectorFile --- src/ol/source/vectorfilesource.js | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/ol/source/vectorfilesource.js b/src/ol/source/vectorfilesource.js index 8e82084814..865f647e55 100644 --- a/src/ol/source/vectorfilesource.js +++ b/src/ol/source/vectorfilesource.js @@ -106,20 +106,17 @@ ol.source.VectorFile.prototype.readFeatures_ = function(source) { var format = this.format; var features = format.readFeatures(source); var featureProjection = format.readProjection(source); - var transform; if (!ol.proj.equivalent(featureProjection, this.reprojectTo_)) { - transform = ol.proj.getTransform(featureProjection, this.reprojectTo_); - } else { - transform = null; - } - var i, ii; - for (i = 0, ii = features.length; i < ii; ++i) { - var feature = features[i]; - var geometry = feature.getGeometry(); - if (!goog.isNull(geometry) && !goog.isNull(transform)) { - geometry.transform(transform); + var transform = ol.proj.getTransform(featureProjection, this.reprojectTo_); + var i, ii; + for (i = 0, ii = features.length; i < ii; ++i) { + var feature = features[i]; + var geometry = feature.getGeometry(); + if (!goog.isNull(geometry)) { + geometry.transform(transform); + } } - this.addFeature(feature); } + this.addFeaturesInternal(features); this.setState(ol.source.State.READY); }; From 06ba19896c6c6efdef6e37d7b3065693e01a10b8 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 19 Dec 2013 15:40:31 +0100 Subject: [PATCH 673/919] Set default canvas lineJoin and lineCap to 'round' --- examples/igc.js | 2 -- src/objectliterals.jsdoc | 4 ++-- src/ol/render/canvas/canvas.js | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/igc.js b/examples/igc.js index 6275e3f808..0d78b7c4c5 100644 --- a/examples/igc.js +++ b/examples/igc.js @@ -39,8 +39,6 @@ var styleFunction = function(feature, resolution) { styleArray = [new ol.style.Style({ stroke: new ol.style.Stroke({ color: color, - lineCap: 'round', - lineJoin: 'round', width: 3 }) })]; diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 959f6a2349..65de88345b 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -743,8 +743,8 @@ /** * @typedef {Object} olx.style.StrokeOptions * @property {ol.Color|string|undefined} color Color. - * @property {string|undefined} lineCap Line cap style: `butt`, `round`, or `square`. Default is `butt`. - * @property {string|undefined} lineJoin Line join style: `bevel`, `round`, or `miter`. Default is `miter`. + * @property {string|undefined} lineCap Line cap style: `butt`, `round`, or `square`. Default is `round`. + * @property {string|undefined} lineJoin Line join style: `bevel`, `round`, or `miter`. Default is `round`. * @property {Array.|undefined} lineDash Line dash pattern. Default is `undefined` (no dash). * @property {number|undefined} miterLimit Miter limit. Default is `10`. * @property {number|undefined} width Width. diff --git a/src/ol/render/canvas/canvas.js b/src/ol/render/canvas/canvas.js index bf136ec0cd..c46bc7866a 100644 --- a/src/ol/render/canvas/canvas.js +++ b/src/ol/render/canvas/canvas.js @@ -18,7 +18,7 @@ ol.render.canvas.defaultFillStyle = ol.color.fromString('black'); /** * @const {string} */ -ol.render.canvas.defaultLineCap = 'butt'; +ol.render.canvas.defaultLineCap = 'round'; /** @@ -30,7 +30,7 @@ ol.render.canvas.defaultLineDash = []; /** * @const {string} */ -ol.render.canvas.defaultLineJoin = 'miter'; +ol.render.canvas.defaultLineJoin = 'round'; /** From fd902008a24f54ffd9466f3d4f2c88078f812494 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 19 Dec 2013 09:26:29 +0100 Subject: [PATCH 674/919] Fix GeoServer format option param key See http://docs.geoserver.org/latest/en/user/services/wms/vendor.html#format-options --- src/ol/source/wmssource.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/source/wmssource.js b/src/ol/source/wmssource.js index 630a0026b5..c9711b0946 100644 --- a/src/ol/source/wmssource.js +++ b/src/ol/source/wmssource.js @@ -63,7 +63,7 @@ ol.source.wms.getDpiParam = function(serverType, pixelRatio) { if (serverType == ol.source.wms.ServerType.MAPSERVER) { param['MAP_RESOLUTION'] = 90 * pixelRatio; } else if (serverType == ol.source.wms.ServerType.GEOSERVER) { - param['FORMAT_OPTION'] = 'dpi:' + 90 * pixelRatio; + param['FORMAT_OPTIONS'] = 'dpi:' + 90 * pixelRatio; } else if (serverType == ol.source.wms.ServerType.QGIS) { param['DPI'] = 90 * pixelRatio; } else { From 1277b0ffd32c4d5319c425b9eaa34150b92da626 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 19 Dec 2013 09:30:18 +0100 Subject: [PATCH 675/919] Move serverType option to olx.source.ImageWMSOptions --- src/objectliterals.jsdoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 65de88345b..848cf339ad 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -516,9 +516,6 @@ * @property {ol.Extent|undefined} extent Extent. * @property {boolean|undefined} hidpi Use the `ol.Map#devicePixelRatio` value when * requesting the image from the remote server. Default is `true`. - * @property {ol.source.wms.ServerType|undefined} serverType The type of the remote WMS - * server: `mapserver`, `geoserver` or `qgis`. Only needed if `hidpi` is `true`. - * Default is `undefined`. * @property {boolean|undefined} useOverlay If `true`, will use * `GETDYNAMICMAPOVERLAYIMAGE`. * @property {ol.proj.ProjectionLike} projection Projection. @@ -567,6 +564,9 @@ * @property {ol.Extent|undefined} extent Extent. * @property {boolean|undefined} hidpi Use the `ol.Map#devicePixelRatio` value when * requesting the image from the remote server. Default is `true`. + * @property {ol.source.wms.ServerType|undefined} serverType The type of the remote WMS + * server: `mapserver`, `geoserver` or `qgis`. Only needed if `hidpi` is `true`. + * Default is `undefined`. * @property {Object.} params WMS request parameters. At least a * `LAYERS` param is required. `STYLES` is `` by default. `VERSION` is * `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX` and `CRS` (`SRS` for WMS From 2a6979e15a5c1efd1f93d73ca214b5520c84fd6a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 16:25:57 +0100 Subject: [PATCH 676/919] ol.style.Image rotation is always defined --- src/ol/style/imagestyle.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index ddb5089401..9ed3d1b4b4 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -53,7 +53,7 @@ ol.style.Image = function(options) { /** * @private - * @type {number|undefined} + * @type {number} */ this.rotation_ = options.rotation; @@ -104,7 +104,7 @@ ol.style.Image.prototype.getImageState = function() { /** - * @return {number|undefined} Rotation. + * @return {number} Rotation. */ ol.style.Image.prototype.getRotation = function() { return this.rotation_; From 9524a46f41899e0f437541d2f1027f719974e074 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 15:28:15 +0100 Subject: [PATCH 677/919] Add scale to ol.style.Image --- src/ol/style/circlestyle.js | 1 + src/ol/style/imagestyle.js | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/ol/style/circlestyle.js b/src/ol/style/circlestyle.js index c698f46247..98b2c0a48b 100644 --- a/src/ol/style/circlestyle.js +++ b/src/ol/style/circlestyle.js @@ -52,6 +52,7 @@ ol.style.Circle = function(opt_options) { anchor: [size / 2, size / 2], imageState: ol.style.ImageState.LOADED, rotation: 0, + scale: 1, size: [size, size], snapToPixel: undefined, subtractViewRotation: false diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 9ed3d1b4b4..4491030da5 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -22,6 +22,7 @@ ol.style.ImageState = { * @typedef {{anchor: ol.Pixel, * imageState: ol.style.ImageState, * rotation: number, + * scale: number, * size: ol.Size, * snapToPixel: (boolean|undefined), * subtractViewRotation: boolean}} @@ -57,6 +58,12 @@ ol.style.Image = function(options) { */ this.rotation_ = options.rotation; + /** + * @private + * @type {number} + */ + this.scale_ = options.scale; + /** * @protected * @type {ol.Size} @@ -111,6 +118,14 @@ ol.style.Image.prototype.getRotation = function() { }; +/** + * @return {number} Scale. + */ +ol.style.Image.prototype.getScale = function() { + return this.scale_; +}; + + /** * @return {ol.Size} Size. */ From d82f1f8e02bbd14737a6a98e97edb2343d1fb3a0 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 15:28:44 +0100 Subject: [PATCH 678/919] Add scale to ol.style.IconStyle --- src/objectliterals.jsdoc | 1 + src/ol/style/iconstyle.js | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 959f6a2349..0c3e6aaa76 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -735,6 +735,7 @@ * @typedef {Object} olx.style.IconOptions * @property {ol.Pixel|undefined} anchor Anchor. * @property {null|string|undefined} crossOrigin crossOrigin setting for image. + * @property {number|undefined} scale Scale. * @property {number|undefined} rotation Rotation. * @property {ol.Size|undefined} size Icon size in pixel. * @property {string} src Image source URI. diff --git a/src/ol/style/iconstyle.js b/src/ol/style/iconstyle.js index 96b312ee92..c4df241a40 100644 --- a/src/ol/style/iconstyle.js +++ b/src/ol/style/iconstyle.js @@ -83,10 +83,16 @@ ol.style.Icon = function(opt_options) { */ var rotation = goog.isDef(options.rotation) ? options.rotation : 0; + /** + * @type {number} + */ + var scale = goog.isDef(options.scale) ? options.scale : 1; + goog.base(this, { anchor: anchor, imageState: ol.style.ImageState.IDLE, rotation: rotation, + scale: scale, size: size, snapToPixel: undefined, subtractViewRotation: false From c6b961782a4e2ae41536d71bba8d6028eeb2bea3 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 15:31:46 +0100 Subject: [PATCH 679/919] Sort miscellaneous properties and add rotation and scale --- src/ol/render/canvas/canvasreplay.js | 91 ++++++++++++++++++---------- 1 file changed, 60 insertions(+), 31 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 8a72a97353..44db0b2e01 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -202,13 +202,16 @@ ol.render.canvas.Replay.prototype.replay_ = d = /** @type {number} */ (instruction[1]); goog.asserts.assert(goog.isNumber(instruction[2])); dd = /** @type {number} */ (instruction[2]); - var anchorX = /** @type {number} */ (instruction[3]); - var anchorY = /** @type {number} */ (instruction[4]); - var width = /** @type {number} */ (instruction[5]); - var height = /** @type {number} */ (instruction[6]); var image = /** @type {HTMLCanvasElement|HTMLVideoElement|Image} */ - (instruction[7]); - var snapToPixel = /** @type {boolean|undefined} */ (instruction[8]); + (instruction[3]); + // Remaining arguments in DRAW_IMAGE are in alphabetical order + var anchorX = /** @type {number} */ (instruction[4]); + var anchorY = /** @type {number} */ (instruction[5]); + var height = /** @type {number} */ (instruction[6]); + var rotation = /** @type {number} */ (instruction[7]); + var scale = /** @type {number} */ (instruction[8]); + var snapToPixel = /** @type {boolean|undefined} */ (instruction[9]); + var width = /** @type {number} */ (instruction[10]); for (; d < dd; d += 2) { var x = pixelCoordinates[d] - anchorX; var y = pixelCoordinates[d + 1] - anchorY; @@ -454,18 +457,6 @@ ol.render.canvas.ImageReplay = function(pixelRatio, tolerance) { goog.base(this, pixelRatio, tolerance); - /** - * @private - * @type {number|undefined} - */ - this.anchorX_ = undefined; - - /** - * @private - * @type {number|undefined} - */ - this.anchorY_ = undefined; - /** * @private * @type {HTMLCanvasElement|HTMLVideoElement|Image} @@ -478,6 +469,18 @@ ol.render.canvas.ImageReplay = function(pixelRatio, tolerance) { */ this.image_ = null; + /** + * @private + * @type {number|undefined} + */ + this.anchorX_ = undefined; + + /** + * @private + * @type {number|undefined} + */ + this.anchorY_ = undefined; + /** * @private * @type {number|undefined} @@ -488,7 +491,13 @@ ol.render.canvas.ImageReplay = function(pixelRatio, tolerance) { * @private * @type {number|undefined} */ - this.width_ = undefined; + this.rotation_ = undefined; + + /** + * @private + * @type {number|undefined} + */ + this.scale_ = undefined; /** * @private @@ -496,6 +505,12 @@ ol.render.canvas.ImageReplay = function(pixelRatio, tolerance) { */ this.snapToPixel_ = undefined; + /** + * @private + * @type {number|undefined} + */ + this.width_ = undefined; + }; goog.inherits(ol.render.canvas.ImageReplay, ol.render.canvas.Replay); @@ -526,6 +541,8 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = goog.asserts.assert(goog.isDef(this.anchorX_)); goog.asserts.assert(goog.isDef(this.anchorY_)); goog.asserts.assert(goog.isDef(this.height_)); + goog.asserts.assert(goog.isDef(this.rotation_)); + goog.asserts.assert(goog.isDef(this.scale_)); goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, pointGeometry.getExtent()); this.beginGeometry(pointGeometry); @@ -535,14 +552,17 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry = var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); this.instructions.push([ - ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, - this.anchorX_, this.anchorY_, this.width_, this.height_, - this.image_, this.snapToPixel_ + ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, this.image_, + // Remaining arguments to DRAW_IMAGE are in alphabetical order + this.anchorX_, this.anchorY_, this.height_, this.rotation_, this.scale_, + this.snapToPixel_, this.width_ ]); this.hitDetectionInstructions.push([ ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, - this.anchorX_, this.anchorY_, this.width_, this.height_, - this.hitDetectionImage_, this.snapToPixel_ + this.hitDetectionImage_, + // Remaining arguments to DRAW_IMAGE are in alphabetical order + this.anchorX_, this.anchorY_, this.height_, this.rotation_, this.scale_, + this.snapToPixel_, this.width_ ]); this.endGeometry(pointGeometry, data); }; @@ -559,6 +579,8 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = goog.asserts.assert(goog.isDef(this.anchorX_)); goog.asserts.assert(goog.isDef(this.anchorY_)); goog.asserts.assert(goog.isDef(this.height_)); + goog.asserts.assert(goog.isDef(this.rotation_)); + goog.asserts.assert(goog.isDef(this.scale_)); goog.asserts.assert(goog.isDef(this.width_)); ol.extent.extend(this.extent_, multiPointGeometry.getExtent()); this.beginGeometry(multiPointGeometry); @@ -568,14 +590,17 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry = var myEnd = this.drawCoordinates_( flatCoordinates, 0, flatCoordinates.length, stride); this.instructions.push([ - ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, - this.anchorX_, this.anchorY_, this.width_, this.height_, - this.image_, this.snapToPixel_ + ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, this.image_, + // Remaining arguments to DRAW_IMAGE are in alphabetical order + this.anchorX_, this.anchorY_, this.height_, this.rotation_, this.scale_, + this.snapToPixel_, this.width_ ]); this.hitDetectionInstructions.push([ ol.render.canvas.Instruction.DRAW_IMAGE, myBegin, myEnd, - this.anchorX_, this.anchorY_, this.width_, this.height_, - this.hitDetectionImage_, this.snapToPixel_ + this.hitDetectionImage_, + // Remaining arguments to DRAW_IMAGE are in alphabetical order + this.anchorX_, this.anchorY_, this.height_, this.rotation_, this.scale_, + this.snapToPixel_, this.width_ ]); this.endGeometry(multiPointGeometry, data); }; @@ -592,8 +617,10 @@ ol.render.canvas.ImageReplay.prototype.finish = function() { this.hitDetectionImage_ = null; this.image_ = null; this.height_ = undefined; - this.width_ = undefined; + this.scale_ = undefined; + this.rotation_ = undefined; this.snapToPixel_ = undefined; + this.width_ = undefined; }; @@ -615,9 +642,11 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { this.anchorY_ = anchor[1]; this.hitDetectionImage_ = hitDetectionImage; this.image_ = image; - this.width_ = size[0]; this.height_ = size[1]; + this.rotation_ = imageStyle.getRotation(); + this.scale_ = imageStyle.getScale(); this.snapToPixel_ = imageStyle.getSnapToPixel(); + this.width_ = size[0]; }; From b3f77b4d68e6d4c9394cf128e8b56854d6daa72b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 15:32:08 +0100 Subject: [PATCH 680/919] Add image rotation and scaling to ol.render.canvas.Replay --- src/ol/render/canvas/canvasreplay.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 44db0b2e01..9a63c29df4 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -109,6 +109,12 @@ ol.render.canvas.Replay = function(pixelRatio, tolerance) { */ this.extent_ = ol.extent.createEmpty(); + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.tmpLocalTransform_ = goog.vec.Mat4.createNumber(); + }; @@ -180,6 +186,7 @@ ol.render.canvas.Replay.prototype.replay_ = var ii = instructions.length; // end of instructions var d; // data index var dd; // end of per-instruction data + var localTransform = this.tmpLocalTransform_; while (i < ii) { var instruction = instructions[i]; var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); @@ -219,7 +226,21 @@ ol.render.canvas.Replay.prototype.replay_ = x = (x + 0.5) | 0; y = (y + 0.5) | 0; } + if (scale != 1 || rotation !== 0) { + ol.vec.Mat4.makeTransform2D( + localTransform, x, y, scale, scale, rotation, -x, -y); + context.setTransform( + goog.vec.Mat4.getElement(localTransform, 0, 0), + goog.vec.Mat4.getElement(localTransform, 1, 0), + goog.vec.Mat4.getElement(localTransform, 0, 1), + goog.vec.Mat4.getElement(localTransform, 1, 1), + goog.vec.Mat4.getElement(localTransform, 0, 3), + goog.vec.Mat4.getElement(localTransform, 1, 3)); + } context.drawImage(image, x, y, width, height); + if (scale != 1 || rotation !== 0) { + context.setTransform(1, 0, 0, 1, 0, 0); + } } ++i; } else if (type == ol.render.canvas.Instruction.END_GEOMETRY) { From fe2f028777cc1ad01de33d740e0e03829ffa0d86 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 15:36:24 +0100 Subject: [PATCH 681/919] Sort miscellaneous properties and add rotation and scale --- src/ol/render/canvas/canvasimmediate.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 85b3260a82..17cb36bcea 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -60,11 +60,13 @@ ol.render.canvas.Immediate = function(context, pixelRatio, extent, transform) { * fillStyle: (string|undefined), * strokeStyle: (string|undefined), * lineWidth: (number|undefined), + * image: (HTMLCanvasElement|HTMLVideoElement|Image), * anchorX: (number|undefined), * anchorY: (number|undefined), - * image: (HTMLCanvasElement|HTMLVideoElement|Image), * height: (number|undefined), * width: (number|undefined), + * scale: number, + * rotation: number, * lineCap: (string|undefined), * lineDash: Array., * lineJoin: (string|undefined), @@ -83,10 +85,12 @@ ol.render.canvas.Immediate = function(context, pixelRatio, extent, transform) { fillStyle: undefined, strokeStyle: undefined, lineWidth: undefined, + image: null, anchorX: undefined, anchorY: undefined, - image: null, height: undefined, + rotation: 0, + scale: 1, width: undefined, lineCap: undefined, lineDash: null, @@ -469,12 +473,14 @@ ol.render.canvas.Immediate.prototype.setImageStyle = function(imageStyle) { var image = imageStyle.getImage(1); goog.asserts.assert(!goog.isNull(image)); var state = this.state_; + state.image = image; state.anchorX = anchor[0]; state.anchorY = anchor[1]; - state.image = image; - state.width = size[0]; state.height = size[1]; + state.rotation = imageStyle.getRotation(); + state.scale = imageStyle.getScale(); state.snapToPixel = imageStyle.getSnapToPixel(); + state.width = size[0]; } }; From bfba52aef4faa79719cd1958bce8d2fc771bac6c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 15:36:55 +0100 Subject: [PATCH 682/919] Add image rotation and scaling to ol.render.canvas.Immediate --- src/ol/render/canvas/canvasimmediate.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 17cb36bcea..9736439c03 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -5,11 +5,13 @@ goog.provide('ol.render.canvas.Immediate'); goog.require('goog.asserts'); +goog.require('goog.vec.Mat4'); goog.require('ol.color'); goog.require('ol.extent'); goog.require('ol.render.IRender'); goog.require('ol.render.canvas'); goog.require('ol.style.Text'); +goog.require('ol.vec.Mat4'); @@ -106,6 +108,12 @@ ol.render.canvas.Immediate = function(context, pixelRatio, extent, transform) { */ this.pixelCoordinates_ = []; + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.tmpLocalTransform_ = goog.vec.Mat4.createNumber(); + }; @@ -126,6 +134,7 @@ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { goog.asserts.assert(goog.isDef(state.width)); var pixelCoordinates = ol.geom.transformSimpleGeometry2D( geometry, this.transform_, this.pixelCoordinates_); + var localTransform = this.tmpLocalTransform_; var i, ii; for (i = 0, ii = pixelCoordinates.length; i < ii; i += 2) { var x = pixelCoordinates[i] - state.anchorX; @@ -134,8 +143,22 @@ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { x = (x + 0.5) | 0; y = (y + 0.5) | 0; } + if (state.scale != 1 || state.rotation !== 0) { + ol.vec.Mat4.makeTransform2D(localTransform, + x, y, state.scale, state.scale, state.rotation, -x, -y); + context.setTransform( + goog.vec.Mat4.getElement(localTransform, 0, 0), + goog.vec.Mat4.getElement(localTransform, 1, 0), + goog.vec.Mat4.getElement(localTransform, 0, 1), + goog.vec.Mat4.getElement(localTransform, 1, 1), + goog.vec.Mat4.getElement(localTransform, 0, 3), + goog.vec.Mat4.getElement(localTransform, 1, 3)); + } context.drawImage(state.image, x, y, state.width, state.height); } + if (state.scale != 1 || state.rotation !== 0) { + context.setTransform(1, 0, 0, 1, 0, 0); + } }; From 5f3d018476eb92869910fa33e4594ed43ad94b67 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 19 Dec 2013 16:30:28 +0100 Subject: [PATCH 683/919] Export ol.source.wms.ServerType.* --- src/ol/source/wmssource.exports | 4 ++++ src/ol/source/wmssource.js | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 src/ol/source/wmssource.exports diff --git a/src/ol/source/wmssource.exports b/src/ol/source/wmssource.exports new file mode 100644 index 0000000000..b5669e8ec7 --- /dev/null +++ b/src/ol/source/wmssource.exports @@ -0,0 +1,4 @@ +@exportSymbol ol.source.wms.ServerType +@exportProperty ol.source.wms.ServerType.GEOSERVER +@exportProperty ol.source.wms.ServerType.MAPSERVER +@exportProperty ol.source.wms.ServerType.QGIS diff --git a/src/ol/source/wmssource.js b/src/ol/source/wmssource.js index c9711b0946..6dde4c7663 100644 --- a/src/ol/source/wmssource.js +++ b/src/ol/source/wmssource.js @@ -10,8 +10,8 @@ goog.require('goog.uri.utils'); * @enum {string} */ ol.source.wms.ServerType = { - MAPSERVER: 'mapserver', GEOSERVER: 'geoserver', + MAPSERVER: 'mapserver', QGIS: 'qgis' }; From e4ea8a750ed7414bd8f5b7873cbf06d8096afc47 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 19 Dec 2013 16:31:08 +0100 Subject: [PATCH 684/919] Cast serverType option in examples --- examples/wms-image-custom-proj.js | 4 ++-- examples/wms-image.js | 2 +- examples/wms-no-proj.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/wms-image-custom-proj.js b/examples/wms-image-custom-proj.js index 4548247b84..c916a16df5 100644 --- a/examples/wms-image-custom-proj.js +++ b/examples/wms-image-custom-proj.js @@ -28,7 +28,7 @@ var layers = [ 'LAYERS': 'ch.swisstopo.pixelkarte-farbe-pk1000.noscale', 'FORMAT': 'image/jpeg' }, - serverType: 'mapserver', + serverType: /** @type {ol.source.wms.ServerType} */ ('mapserver'), extent: extent }) }), @@ -43,7 +43,7 @@ var layers = [ 'National parks / geo.admin.ch' })], params: {'LAYERS': 'ch.bafu.schutzgebiete-paerke_nationaler_bedeutung'}, - serverType: 'mapserver', + serverType: /** @type {ol.source.wms.ServerType} */ ('mapserver'), extent: extent }) }) diff --git a/examples/wms-image.js b/examples/wms-image.js index dd495aac46..1e25cb53e2 100644 --- a/examples/wms-image.js +++ b/examples/wms-image.js @@ -15,7 +15,7 @@ var layers = [ source: new ol.source.ImageWMS({ url: 'http://demo.opengeo.org/geoserver/wms', params: {'LAYERS': 'topp:states'}, - serverType: 'geoserver', + serverType: /** @type {ol.source.wms.ServerType} */ ('geoserver'), extent: [-13884991, 2870341, -7455066, 6338219] }) }) diff --git a/examples/wms-no-proj.js b/examples/wms-no-proj.js index 260961b6b6..545b16a464 100644 --- a/examples/wms-no-proj.js +++ b/examples/wms-no-proj.js @@ -37,7 +37,7 @@ var layers = [ })], crossOrigin: 'anonymous', params: {'LAYERS': 'ch.bafu.schutzgebiete-paerke_nationaler_bedeutung'}, - serverType: 'mapserver', + serverType: /** @type {ol.source.wms.ServerType} */ ('mapserver'), url: 'http://wms.geo.admin.ch/' }) }) From 986f6559b7c7c5f29899d6c2b640882f4c7be78c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:04:10 +0100 Subject: [PATCH 685/919] Refactor ol.format.XML --- src/ol/format/xmlformat.js | 142 +++++++++++++++++++++---------------- 1 file changed, 81 insertions(+), 61 deletions(-) diff --git a/src/ol/format/xmlformat.js b/src/ol/format/xmlformat.js index 2fd8ddbc54..e957102d82 100644 --- a/src/ol/format/xmlformat.js +++ b/src/ol/format/xmlformat.js @@ -1,6 +1,8 @@ goog.provide('ol.format.XML'); +goog.require('goog.array'); goog.require('goog.asserts'); +goog.require('goog.dom.NodeType'); goog.require('goog.dom.xml'); goog.require('ol.format.Format'); goog.require('ol.format.FormatType'); @@ -17,57 +19,6 @@ ol.format.XML = function() { goog.inherits(ol.format.XML, ol.format.Format); -/** - * @param {Document|Node|Object|string} source Source. - * @private - * @return {Document} Document. - */ -ol.format.XML.prototype.getDocument_ = function(source) { - if (source instanceof Document) { - return source; - } else if (goog.isString(source)) { - return goog.dom.xml.loadXml(source); - } else { - goog.asserts.fail(); - return null; - } -}; - - -/** - * @param {Document|Node|Object|string} source Source. - * @private - * @return {Document|Node} Document. - */ -ol.format.XML.prototype.getDocumentOrNode_ = function(source) { - if (source instanceof Document) { - return source; - } else if (source instanceof Node) { - return source; - } else if (goog.isString(source)) { - return goog.dom.xml.loadXml(source); - } else { - goog.asserts.fail(); - return null; - } -}; - - -/** - * @param {Document|Node|Object|string} source Source. - * @private - * @return {Node} Node. - */ -ol.format.XML.prototype.getNode_ = function(source) { - if (source instanceof Node) { - return source; - } else { - goog.asserts.fail(); - return null; - } -}; - - /** * @inheritDoc */ @@ -80,7 +31,31 @@ ol.format.XML.prototype.getType = function() { * @inheritDoc */ ol.format.XML.prototype.readFeature = function(source) { - return this.readFeatureFromNode(this.getNode_(source)); + if (source instanceof Document) { + return this.readFeatureFromDocument(source); + } else if (source instanceof Node) { + return this.readFeatureFromNode(source); + } else if (goog.isString(source)) { + var doc = goog.dom.xml.loadXml(source); + return this.readFeatureFromDocument(doc); + } else { + goog.asserts.fail(); + return null; + } +}; + + +/** + * @param {Document} doc Document. + * @return {ol.Feature} Feature. + */ +ol.format.XML.prototype.readFeatureFromDocument = function(doc) { + var features = this.readFeaturesFromDocument(doc); + if (features.length > 0) { + return features[0]; + } else { + return null; + } }; @@ -95,11 +70,13 @@ ol.format.XML.prototype.readFeatureFromNode = goog.abstractMethod; * @inheritDoc */ ol.format.XML.prototype.readFeatures = function(source) { - var documentOrNode = this.getDocumentOrNode_(source); - if (documentOrNode instanceof Document) { - return this.readFeaturesFromDocument(documentOrNode); - } else if (documentOrNode instanceof Node) { - return this.readFeaturesFromNode(documentOrNode); + if (source instanceof Document) { + return this.readFeaturesFromDocument(source); + } else if (source instanceof Node) { + return this.readFeaturesFromNode(source); + } else if (goog.isString(source)) { + var doc = goog.dom.xml.loadXml(source); + return this.readFeaturesFromDocument(doc); } else { goog.asserts.fail(); return null; @@ -113,8 +90,15 @@ ol.format.XML.prototype.readFeatures = function(source) { * @return {Array.} Features. */ ol.format.XML.prototype.readFeaturesFromDocument = function(doc) { - goog.asserts.assert(doc.childNodes.length == 1); - return this.readFeaturesFromNode(doc.firstChild); + /** @type {Array.} */ + var features = []; + var n; + for (n = doc.firstChild; !goog.isNull(n); n = n.nextSibling) { + if (n.nodeType == goog.dom.NodeType.ELEMENT) { + goog.array.extend(features, this.readFeaturesFromNode(n)); + } + } + return features; }; @@ -130,10 +114,28 @@ ol.format.XML.prototype.readFeaturesFromNode = goog.abstractMethod; * @inheritDoc */ ol.format.XML.prototype.readGeometry = function(source) { - return this.readGeometryFromNode(this.getNode_(source)); + if (source instanceof Document) { + return this.readGeometryFromDocument(source); + } else if (source instanceof Node) { + return this.readGeometryFromNode(source); + } else if (goog.isString(source)) { + var doc = goog.dom.xml.loadXml(source); + return this.readGeometryFromDocument(doc); + } else { + goog.asserts.fail(); + return null; + } }; +/** + * @param {Document} doc Document. + * @protected + * @return {ol.geom.Geometry} Geometry. + */ +ol.format.XML.prototype.readGeometryFromDocument = goog.abstractMethod; + + /** * @param {Node} node Node. * @protected @@ -146,10 +148,28 @@ ol.format.XML.prototype.readGeometryFromNode = goog.abstractMethod; * @inheritDoc */ ol.format.XML.prototype.readProjection = function(source) { - return this.readProjectionFromNode(this.getNode_(source)); + if (source instanceof Document) { + return this.readProjectionFromDocument(source); + } else if (source instanceof Node) { + return this.readProjectionFromNode(source); + } else if (goog.isString(source)) { + var doc = goog.dom.xml.loadXml(source); + return this.readProjectionFromDocument(doc); + } else { + goog.asserts.fail(); + return null; + } }; +/** + * @param {Document} doc Document. + * @protected + * @return {ol.proj.Projection} Projection. + */ +ol.format.XML.prototype.readProjectionFromDocument = goog.abstractMethod; + + /** * @param {Node} node Node. * @protected From befd1fc5f829462e44e3f3115bb495f244269788 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:04:31 +0100 Subject: [PATCH 686/919] Add ol.format.Format#getExtensions --- src/ol/format/format.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ol/format/format.js b/src/ol/format/format.js index b426dbaebc..a7b119da9d 100644 --- a/src/ol/format/format.js +++ b/src/ol/format/format.js @@ -23,6 +23,12 @@ ol.format.Format = function() { }; +/** + * @return {Array.} Extensions. + */ +ol.format.Format.prototype.getExtensions = goog.abstractMethod; + + /** * @return {ol.format.FormatType} Format. */ From 07c20c93fc79ea768e2c134e438b0ef92942d35e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:04:55 +0100 Subject: [PATCH 687/919] Add ol.format.GeoJSON#getExtensions --- src/ol/format/geojsonformat.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ol/format/geojsonformat.js b/src/ol/format/geojsonformat.js index 07fb1de43a..9c4acc76f9 100644 --- a/src/ol/format/geojsonformat.js +++ b/src/ol/format/geojsonformat.js @@ -41,6 +41,13 @@ ol.format.GeoJSON = function(opt_options) { goog.inherits(ol.format.GeoJSON, ol.format.JSON); +/** + * @const {Array.} + * @private + */ +ol.format.GeoJSON.EXTENSIONS_ = ['.geojson']; + + /** * @param {GeoJSONObject} object Object. * @private @@ -278,6 +285,14 @@ ol.format.GeoJSON.GEOMETRY_WRITERS_ = { }; +/** + * @inheritDoc + */ +ol.format.GeoJSON.prototype.getExtensions = function() { + return ol.format.GeoJSON.EXTENSIONS_; +}; + + /** * @inheritDoc */ From 578699970ed9155db1989bb3012cf65d3525ecd9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:05:08 +0100 Subject: [PATCH 688/919] Add ol.xml --- src/ol/xml.js | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 src/ol/xml.js diff --git a/src/ol/xml.js b/src/ol/xml.js new file mode 100644 index 0000000000..5d1a954e25 --- /dev/null +++ b/src/ol/xml.js @@ -0,0 +1,202 @@ +goog.provide('ol.xml'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.dom.NodeType'); +goog.require('goog.object'); + + +/** + * @typedef {function(Node, Array.<*>)} + */ +ol.xml.Parser; + + +/** + * @param {Node} node Node. + * @param {boolean} normalizeWhitespace Normalize whitespace. + * @return {string} All text content. + */ +ol.xml.getAllTextContent = function(node, normalizeWhitespace) { + return ol.xml.getAllTextContent_(node, normalizeWhitespace, []).join(''); +}; + + +/** + * @param {Node} node Node. + * @param {boolean} normalizeWhitespace Normalize whitespace. + * @param {Array.} accumulator Accumulator. + * @private + * @return {Array.} Accumulator. + */ +ol.xml.getAllTextContent_ = function(node, normalizeWhitespace, accumulator) { + if (node.nodeType == goog.dom.NodeType.CDATA_SECTION || + node.nodeType == goog.dom.NodeType.TEXT) { + if (normalizeWhitespace) { + // FIXME understand why goog.dom.getTextContent_ uses String here + accumulator.push(String(node.nodeValue).replace(/(\r\n|\r|\n)/g, '')); + } else { + accumulator.push(node.nodeValue); + } + } else { + var n; + for (n = node.firstChild; !goog.isNull(n); n = n.nextSibling) { + ol.xml.getAllTextContent_(n, normalizeWhitespace, accumulator); + } + } + return accumulator; +}; + + +/** + * @param {function(this: T, Node, Array.<*>): (Array.<*>|undefined)} + * valueReader Value reader. + * @param {T=} opt_obj Scope. + * @return {ol.xml.Parser} Parser. + * @template T + */ +ol.xml.makeArrayExtender = function(valueReader, opt_obj) { + return ( + /** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + */ + function(node, objectStack) { + var value = valueReader.call(opt_obj, node, objectStack); + if (goog.isDef(value)) { + goog.asserts.assert(goog.isArray(value)); + var array = /** @type {Array.<*>} */ + (objectStack[objectStack.length - 1]); + goog.asserts.assert(goog.isArray(array)); + goog.array.extend(array, value); + } + }); +}; + + +/** + * @param {function(this: T, Node, Array.<*>): *} valueReader Value reader. + * @param {T=} opt_obj Scope. + * @return {ol.xml.Parser} Parser. + * @template T + */ +ol.xml.makeArrayPusher = function(valueReader, opt_obj) { + return ( + /** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + */ + function(node, objectStack) { + var value = valueReader.call(opt_obj, node, objectStack); + if (goog.isDef(value)) { + var array = objectStack[objectStack.length - 1]; + goog.asserts.assert(goog.isArray(array)); + array.push(value); + } + }); +}; + + +/** + * @param {function(this: T, Node, Array.<*>): *} valueReader Value reader. + * @param {T=} opt_obj Scope. + * @return {ol.xml.Parser} Parser. + * @template T + */ +ol.xml.makeReplacer = function(valueReader, opt_obj) { + return ( + /** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + */ + function(node, objectStack) { + var value = valueReader.call(opt_obj, node, objectStack); + if (goog.isDef(value)) { + objectStack[objectStack.length - 1] = value; + } + }); +}; + + +/** + * @param {function(this: T, Node, Array.<*>): *} valueReader Value reader. + * @param {string=} opt_property Property. + * @param {T=} opt_obj Scope. + * @return {ol.xml.Parser} Parser. + * @template T + */ +ol.xml.makeObjectPropertySetter = function(valueReader, opt_property, opt_obj) { + goog.asserts.assert(goog.isDef(valueReader)); + return ( + /** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + */ + function(node, objectStack) { + var value = valueReader.call(opt_obj, node, objectStack); + if (goog.isDef(value)) { + var object = /** @type {Object} */ + (objectStack[objectStack.length - 1]); + var property = goog.isDef(opt_property) ? + opt_property : node.localName; + goog.asserts.assert(goog.isObject(object)); + goog.object.set(object, property, value); + } + }); +}; + + +/** + * @param {Array.} namespaceURIs Namespace URIs. + * @param {Object.} parsers Parsers. + * @return {Object.>} Parsers NS. + */ +ol.xml.makeParsersNS = function(namespaceURIs, parsers) { + /** @type {Object.>} */ + var parsersNS = {}; + var i, ii; + for (i = 0, ii = namespaceURIs.length; i < ii; ++i) { + parsersNS[namespaceURIs[i]] = parsers; + } + return parsersNS; +}; + + +/** + * @param {Object.>} parsersNS + * Parsers by namespace. + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @param {*=} opt_obj Scope. + */ +ol.xml.parse = function(parsersNS, node, objectStack, opt_obj) { + var n; + for (n = node.firstChild; !goog.isNull(n); n = n.nextSibling) { + if (n.nodeType == goog.dom.NodeType.ELEMENT) { + var parsers = parsersNS[n.namespaceURI]; + if (goog.isDef(parsers)) { + var parser = parsers[n.localName]; + if (goog.isDef(parser)) { + parser.call(opt_obj, n, objectStack); + } + } + } + } +}; + + +/** + * @param {T} object Object. + * @param {Object.>} parsersNS + * Parsers by namespace. + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @param {*=} opt_obj Scope. + * @return {T|undefined} Object. + * @template T + */ +ol.xml.pushAndParse = function(object, parsersNS, node, objectStack, opt_obj) { + objectStack.push(object); + ol.xml.parse(parsersNS, node, objectStack, opt_obj); + return objectStack.pop(); +}; From 1d8f81d63774ffddd1beea15238be4f9f9011af1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:05:51 +0100 Subject: [PATCH 689/919] Add ol.format.KML --- src/objectliterals.jsdoc | 6 + src/ol/format/kmlformat.exports | 1 + src/ol/format/kmlformat.js | 1359 +++++++ test/spec/ol/format/kml/states.kml | 4661 +++++++++++++++++++++++++ test/spec/ol/format/kmlformat.test.js | 1311 +++++++ 5 files changed, 7338 insertions(+) create mode 100644 src/ol/format/kmlformat.exports create mode 100644 src/ol/format/kmlformat.js create mode 100644 test/spec/ol/format/kml/states.kml create mode 100644 test/spec/ol/format/kmlformat.test.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index f98b9dfbe3..8b594a8868 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -260,6 +260,12 @@ * Possible values are `barometric`, `gps`, and `none`. Default is `none`. */ +/** + * @typedef {Object} olx.format.KMLOptions + * @property {boolean|undefined} extractAttributes Extract attributes. + * @property {boolean|undefined} extractStyles Extract styles. + */ + /** * @typedef {Object} olx.interaction.DoubleClickZoomOptions * @property {number|undefined} duration Animation duration in milliseconds. Default is `250`. diff --git a/src/ol/format/kmlformat.exports b/src/ol/format/kmlformat.exports new file mode 100644 index 0000000000..53faabc585 --- /dev/null +++ b/src/ol/format/kmlformat.exports @@ -0,0 +1 @@ +@exportSymbol ol.format.KML diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js new file mode 100644 index 0000000000..3a2a269e40 --- /dev/null +++ b/src/ol/format/kmlformat.js @@ -0,0 +1,1359 @@ +// FIXME add Styles with ids to sharedStyles_ +// FIXME refactor StyleMap handling +// FIXME handle highlighted keys in StyleMaps - use styleFunctions +// FIXME extractAttributes +// FIXME extractStyles +// FIXME gx:Track +// FIXME http://earth.google.com/kml/1.0 namespace? +// FIXME why does node.getAttribute return an unknown type? +// FIXME text + +goog.provide('ol.format.KML'); + +goog.require('goog.Uri'); +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.dom.NodeType'); +goog.require('goog.math'); +goog.require('goog.object'); +goog.require('goog.string'); +goog.require('ol.Feature'); +goog.require('ol.format.XML'); +goog.require('ol.geom.GeometryCollection'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.MultiLineString'); +goog.require('ol.geom.MultiPoint'); +goog.require('ol.geom.MultiPolygon'); +goog.require('ol.geom.Point'); +goog.require('ol.geom.Polygon'); +goog.require('ol.proj'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Icon'); +goog.require('ol.style.Image'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); +goog.require('ol.xml'); + + +/** + * @define {boolean} Respect visibility. + */ +ol.KML_RESPECT_VISIBILITY = false; + + +/** + * @typedef {{x: number, xunits: (string|null), + * y: number, yunits: (string|null)}} + */ +ol.format.KMLVec2_; + + + +/** + * @constructor + * @extends {ol.format.XML} + * @param {olx.format.KMLOptions=} opt_options Options. + */ +ol.format.KML = function(opt_options) { + + //var options = goog.isDef(opt_options) ? opt_options : {}; + + goog.base(this); + + /** @type {Object.>} */ + var sharedStyles = {}; + + /** + * @private + * @type {Object.>} + */ + this.sharedStyles_ = sharedStyles; + + /** + * @private + * @type {function(this: ol.Feature, number): Array.} + */ + this.sharedStyleFeatureStyleFunction_ = + /** + * @param {number} resolution Resolution. + * @return {Array.} Style. + * @this {ol.Feature} + */ + function(resolution) { + if (ol.KML_RESPECT_VISIBILITY) { + var visibility = this.get('visibility'); + if (goog.isDef(visibility) && !visibility) { + return null; + } + } + var styleUrl = /** @type {string|undefined} */ (this.get('styleUrl')); + goog.asserts.assert(goog.isDef(styleUrl)); + var style = sharedStyles[styleUrl]; + if (goog.isDef(style)) { + return style; + } else { + return null; + } + }; + +}; +goog.inherits(ol.format.KML, ol.format.XML); + + +/** + * @const {Array.} + * @private + */ +ol.format.KML.EXTENSIONS_ = ['.kml']; + + +/** + * @const {Array.} + * @private + */ +ol.format.KML.NAMESPACE_URIS_ = [ + null, + 'http://earth.google.com/kml/2.0', + 'http://earth.google.com/kml/2.1', + 'http://earth.google.com/kml/2.2', + 'http://www.opengis.net/kml/2.2' +]; + + +/** + * @const {ol.Color} + * @private + */ +ol.format.KML.DEFAULT_COLOR_ = [255, 255, 255, 1]; + + +/** + * @const {ol.style.Fill} + * @private + */ +ol.format.KML.DEFAULT_FILL_STYLE_ = new ol.style.Fill({ + color: ol.format.KML.DEFAULT_COLOR_ +}); + + +/** + * @const {ol.Size} + * @private + */ +ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_ = [2, 20]; // FIXME maybe [8, 32] ? + + +/** + * @const {ol.Size} + * @private + */ +ol.format.KML.DEFAULT_IMAGE_STYLE_SIZE_ = [32, 32]; + + +/** + * @const {string} + * @private + */ +ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_ = + 'https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png'; + + +/** + * @const {ol.style.Image} + * @private + */ +ol.format.KML.DEFAULT_IMAGE_STYLE_ = new ol.style.Icon({ + anchor: ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_, + crossOrigin: 'anonymous', + rotation: 0, + scale: 1, + size: ol.format.KML.DEFAULT_IMAGE_STYLE_SIZE_, + src: ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_ +}); + + +/** + * @const {ol.style.Stroke} + * @private + */ +ol.format.KML.DEFAULT_STROKE_STYLE_ = new ol.style.Stroke({ + color: ol.format.KML.DEFAULT_COLOR_, + width: 1 +}); + + +/** + * @const {ol.style.Style} + * @private + */ +ol.format.KML.DEFAULT_STYLE_ = new ol.style.Style({ + fill: ol.format.KML.DEFAULT_FILL_STYLE_, + image: ol.format.KML.DEFAULT_IMAGE_STYLE_, + text: null, // FIXME + stroke: ol.format.KML.DEFAULT_STROKE_STYLE_, + zIndex: 0 +}); + + +/** + * @const {Array.} + * @private + */ +ol.format.KML.DEFAULT_STYLE_ARRAY_ = [ol.format.KML.DEFAULT_STYLE_]; + + +/** + * @param {number} resolution Resolution. + * @private + * @return {Array.} + * @this {ol.Feature} + */ +ol.format.KML.defaultFeatureStyleFunction_ = function(resolution) { + if (ol.KML_RESPECT_VISIBILITY) { + var visibility = this.get('visibility'); + if (goog.isDef(visibility) && !visibility) { + return null; + } + } + return ol.format.KML.DEFAULT_STYLE_ARRAY_; +}; + + +/** + * @param {ol.style.Style} style Style. + * @private + * @return {function(this: ol.Feature, number): Array.} Feature + * style function. + */ +ol.format.KML.makeFeatureStyleFunction_ = function(style) { + // FIXME handle styleMap? + var styleArray = [style]; + return ( + /** + * @param {number} resolution Resolution. + * @return {Array.} Style. + * @this {ol.Feature} + */ + function(resolution) { + if (ol.KML_RESPECT_VISIBILITY) { + var visibility = this.get('visibility'); + if (goog.isDef(visibility) && !visibility) { + return null; + } + } + return styleArray; + }); +}; + + +/** + * @param {Node} node Node. + * @private + * @return {boolean|undefined} Boolean. + */ +ol.format.KML.readBoolean_ = function(node) { + var s = ol.xml.getAllTextContent(node, false); + var m = /^\s*(0|1)\s*$/.exec(s); + if (m) { + return m[1] == '1'; + } else { + return undefined; + } +}; + + +/** + * @param {Node} node Node. + * @private + * @return {ol.Color|undefined} Color. + */ +ol.format.KML.readColor_ = function(node) { + var s = ol.xml.getAllTextContent(node, false); + // The KML specification states that colors should not include a leading `#` + // but we tolerate them. + var m = /^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(s); + if (m) { + var hexColor = m[1]; + return [ + parseInt(hexColor.substr(6, 2), 16), + parseInt(hexColor.substr(4, 2), 16), + parseInt(hexColor.substr(2, 2), 16), + parseInt(hexColor.substr(0, 2), 16) / 255 + ]; + + } else { + return undefined; + } +}; + + +/** + * @param {Node} node Node. + * @private + * @return {Array.|undefined} Flat coordinates. + */ +ol.format.KML.readFlatCoordinates_ = function(node) { + var s = ol.xml.getAllTextContent(node, false); + var flatCoordinates = []; + // The KML specification states that coordinate tuples should not include + // spaces, but we tolerate them. + var re = + /^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*,\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)(?:\s*,\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?))?\s*/i; + var m; + while ((m = re.exec(s))) { + var x = parseFloat(m[1]); + var y = parseFloat(m[2]); + var z = m[3] ? parseFloat(m[3]) : 0; + flatCoordinates.push(x, y, z); + s = s.substr(m[0].length); + } + if (s !== '') { + return undefined; + } + return flatCoordinates; +}; + + +/** + * @param {Node} node Node. + * @private + * @return {number|undefined} + */ +ol.format.KML.readNumber_ = function(node) { + var s = ol.xml.getAllTextContent(node, false); + var m = /^\s*(\d+(?:\.\d*)?)\s*$/.exec(s); + if (m) { + return parseFloat(m[1]); + } else { + return undefined; + } +}; + + +/** + * @param {Node} node Node. + * @private + * @return {string} String. + */ +ol.format.KML.readString_ = function(node) { + var s = ol.xml.getAllTextContent(node, false); + return goog.string.trim(s); +}; + + +/** + * @param {Node} node Node. + * @private + * @return {string|undefined} Style URL. + */ +ol.format.KML.readStyleUrl_ = function(node) { + var s = goog.string.trim(ol.xml.getAllTextContent(node, false)); + if (goog.isNull(node.baseURI)) { + return s; + } else { + return goog.Uri.resolve(node.baseURI, s).toString(); + } + +}; + + +/** + * @param {Node} node Node. + * @private + * @return {string} URI. + */ +ol.format.KML.readURI_ = function(node) { + var s = ol.xml.getAllTextContent(node, false); + if (goog.isNull(node.baseURI)) { + return goog.string.trim(s); + } else { + return goog.Uri.resolve(node.baseURI, goog.string.trim(s)).toString(); + } +}; + + +/** + * @param {Node} node Node. + * @private + * @return {ol.format.KMLVec2_} Vec2. + */ +ol.format.KML.readVec2_ = function(node) { + return { + x: parseFloat(node.getAttribute('x')), + xunits: node.getAttribute('xunits'), + y: parseFloat(node.getAttribute('y')), + yunits: node.getAttribute('yunits') + }; +}; + + +/** + * @param {Node} node Node. + * @private + * @return {number|undefined} Scale. + */ +ol.format.KML.readscale_ = function(node) { + var number = ol.format.KML.readNumber_(node); + if (goog.isDef(number)) { + return Math.sqrt(number); + } else { + return undefined; + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.IconStyleParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'IconStyle'); + // FIXME gx:x + // FIXME gx:y + // FIXME gx:w + // FIXME gx:h + // FIXME refreshMode + // FIXME refreshInterval + // FIXME viewRefreshTime + // FIXME viewBoundScale + // FIXME viewFormat + // FIXME httpQuery + var object = ol.xml.pushAndParse( + {}, ol.format.KML.ICON_STYLE_PARSERS_, node, objectStack); + if (!goog.isDef(object)) { + return; + } + var styleObject = /** @type {Object} */ (objectStack[objectStack.length - 1]); + goog.asserts.assert(goog.isObject(styleObject)); + var IconObject = /** @type {Object} */ (goog.object.get(object, 'Icon', {})); + var src; + var href = /** @type {string|undefined} */ + (goog.object.get(IconObject, 'href')); + if (goog.isDef(href)) { + src = href; + } else { + src = ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_; + } + var anchor; + var hotSpot = /** @type {ol.format.KMLVec2_|undefined} */ + (goog.object.get(object, 'hotSpot')); + if (goog.isDef(hotSpot)) { + goog.asserts.assert(hotSpot.xunits == 'pixels'); + goog.asserts.assert(hotSpot.yunits == 'pixels'); + anchor = [hotSpot.x, hotSpot.y]; + } else if (src === ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_) { + anchor = ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_; + } else { + anchor = null; + } + var rotation; + var heading = /** @type {number|undefined} */ + (goog.object.get(object, 'heading')); + if (goog.isDef(heading)) { + rotation = goog.math.toRadians(heading); + } else { + rotation = 0; + } + var scale = /** @type {number|undefined} */ + (goog.object.get(object, 'scale')); + var size; + if (src == ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_) { + size = ol.format.KML.DEFAULT_IMAGE_STYLE_SIZE_; + } else { + size = null; + } + var imageStyle = new ol.style.Icon({ + anchor: anchor, + crossOrigin: 'anonymous', // FIXME should this be configurable? + rotation: rotation, + scale: scale, + size: size, + src: src + }); + goog.object.set(styleObject, 'imageStyle', imageStyle); +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.LineStyleParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'LineStyle'); + // FIXME colorMode + // FIXME gx:outerColor + // FIXME gx:outerWidth + // FIXME gx:physicalWidth + // FIXME gx:labelVisibility + var object = ol.xml.pushAndParse( + {}, ol.format.KML.LINE_STYLE_PARSERS_, node, objectStack); + if (!goog.isDef(object)) { + return; + } + var styleObject = objectStack[objectStack.length - 1]; + goog.asserts.assert(goog.isObject(styleObject)); + var strokeStyle = new ol.style.Stroke({ + color: /** @type {ol.Color} */ + (goog.object.get(object, 'color', ol.format.KML.DEFAULT_COLOR_)), + width: /** @type {number} */ (goog.object.get(object, 'width', 1)) + }); + goog.object.set(styleObject, 'strokeStyle', strokeStyle); +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.PolyStyleParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'PolyStyle'); + // FIXME colorMode + var object = ol.xml.pushAndParse( + {}, ol.format.KML.POLY_STYLE_PARSERS_, node, objectStack); + if (!goog.isDef(object)) { + return; + } + var styleObject = objectStack[objectStack.length - 1]; + goog.asserts.assert(goog.isObject(styleObject)); + var fillStyle = new ol.style.Fill({ + color: /** @type {ol.Color} */ + (goog.object.get(object, 'color', ol.format.KML.DEFAULT_COLOR_)) + }); + goog.object.set(styleObject, 'fillStyle', fillStyle); + var fill = /** @type {boolean|undefined} */ (goog.object.get(object, 'fill')); + if (goog.isDef(fill)) { + goog.object.set(styleObject, 'fill', fill); + } + var outline = + /** @type {boolean|undefined} */ (goog.object.get(object, 'outline')); + if (goog.isDef(outline)) { + goog.object.set(styleObject, 'outline', outline); + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {Array.} LinearRing flat coordinates. + */ +ol.format.KML.readFlatLinearRing_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'LinearRing'); + return /** @type {Array.} */ (ol.xml.pushAndParse( + null, ol.format.KML.FLAT_LINEAR_RING_PARSERS_, node, objectStack)); +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {Object} Icon object. + */ +ol.format.KML.readIcon_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'Icon'); + var iconObject = ol.xml.pushAndParse( + {}, ol.format.KML.ICON_PARSERS_, node, objectStack); + if (goog.isDef(iconObject)) { + return iconObject; + } else { + return null; + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {Array.} Flat coordinates. + */ +ol.format.KML.readFlatCoordinatesFromNode_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + return /** @type {Array.} */ (ol.xml.pushAndParse(null, + ol.format.KML.GEOMETRY_FLAT_COORDINATES_PARSERS_, node, objectStack)); +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {ol.geom.LineString|undefined} LineString. + */ +ol.format.KML.readLineString_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'LineString'); + var flatCoordinates = + ol.format.KML.readFlatCoordinatesFromNode_(node, objectStack); + if (goog.isDef(flatCoordinates)) { + var lineString = new ol.geom.LineString(null); + lineString.setFlatCoordinates(ol.geom.GeometryLayout.XYZ, flatCoordinates); + return lineString; + } else { + return undefined; + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {ol.geom.Geometry} Geometry. + */ +ol.format.KML.readMultiGeometry_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'MultiGeometry'); + var geometries = ol.xml.pushAndParse( + /** @type {Array.} */ ([]), + ol.format.KML.MULTI_GEOMETRY_PARSERS_, node, objectStack); + if (!goog.isDef(geometries)) { + return null; + } + if (geometries.length === 0) { + return new ol.geom.GeometryCollection(geometries); + } + var homogeneous = true; + var type = geometries[0].getType(); + var geometry, i, ii; + for (i = 1, ii = geometries.length; i < ii; ++i) { + geometry = geometries[i]; + if (geometry.getType() != type) { + homogeneous = false; + break; + } + } + if (homogeneous) { + /** @type {ol.geom.GeometryLayout} */ + var layout; + /** @type {Array.} */ + var flatCoordinates; + /** @type {Array.} */ + var ends; + /** @type {Array.>} */ + var endss; + if (type == ol.geom.GeometryType.POINT) { + var point = geometries[0]; + goog.asserts.assertInstanceof(point, ol.geom.Point); + layout = point.getLayout(); + flatCoordinates = point.getFlatCoordinates(); + for (i = 1, ii = geometries.length; i < ii; ++i) { + geometry = geometries[i]; + goog.asserts.assertInstanceof(geometry, ol.geom.Point); + goog.asserts.assert(geometry.getLayout() == layout); + goog.array.extend(flatCoordinates, geometry.getFlatCoordinates()); + } + var multiPoint = new ol.geom.MultiPoint(null); + multiPoint.setFlatCoordinates(layout, flatCoordinates); + return multiPoint; + } else if (type == ol.geom.GeometryType.LINE_STRING) { + var lineString = geometries[0]; + goog.asserts.assertInstanceof(lineString, ol.geom.LineString); + layout = lineString.getLayout(); + flatCoordinates = lineString.getFlatCoordinates(); + ends = [flatCoordinates.length]; + for (i = 1, ii = geometries.length; i < ii; ++i) { + geometry = geometries[i]; + goog.asserts.assertInstanceof(geometry, ol.geom.LineString); + goog.asserts.assert(geometry.getLayout() == layout); + goog.array.extend(flatCoordinates, geometry.getFlatCoordinates()); + ends.push(flatCoordinates.length); + } + var multiLineString = new ol.geom.MultiLineString(null); + multiLineString.setFlatCoordinates(layout, flatCoordinates, ends); + return multiLineString; + } else if (type == ol.geom.GeometryType.POLYGON) { + var polygon = geometries[0]; + goog.asserts.assertInstanceof(polygon, ol.geom.Polygon); + layout = polygon.getLayout(); + flatCoordinates = polygon.getFlatCoordinates(); + endss = [polygon.getEnds()]; + for (i = 1, ii = geometries.length; i < ii; ++i) { + geometry = geometries[i]; + goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); + goog.asserts.assert(geometry.getLayout() == layout); + var offset = flatCoordinates.length; + ends = geometry.getEnds(); + var j, jj; + for (j = 0, jj = ends.length; j < jj; ++j) { + ends[j] += offset; + } + goog.array.extend(flatCoordinates, geometry.getFlatCoordinates()); + endss.push(ends); + } + var multiPolygon = new ol.geom.MultiPolygon(null); + multiPolygon.setFlatCoordinates(layout, flatCoordinates, endss); + return multiPolygon; + } else if (type == ol.geom.GeometryType.GEOMETRY_COLLECTION) { + return new ol.geom.GeometryCollection(geometries); + } else { + goog.asserts.fail(); + return null; + } + } else { + return new ol.geom.GeometryCollection(geometries); + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {ol.geom.Point|undefined} Point. + */ +ol.format.KML.readPoint_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'Point'); + var flatCoordinates = + ol.format.KML.readFlatCoordinatesFromNode_(node, objectStack); + if (goog.isDefAndNotNull(flatCoordinates)) { + var point = new ol.geom.Point(null); + goog.asserts.assert(flatCoordinates.length == 3); + point.setFlatCoordinates(ol.geom.GeometryLayout.XYZ, flatCoordinates); + return point; + } else { + return undefined; + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {ol.geom.Polygon|undefined} Polygon. + */ +ol.format.KML.readPolygon_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'Polygon'); + var flatLinearRings = ol.xml.pushAndParse( + /** @type {Array.>} */ ([null]), + ol.format.KML.FLAT_LINEAR_RINGS_PARSERS_, node, objectStack); + if (goog.isDefAndNotNull(flatLinearRings) && + !goog.isNull(flatLinearRings[0])) { + var polygon = new ol.geom.Polygon(null); + var flatCoordinates = flatLinearRings[0]; + var ends = [flatCoordinates.length]; + var i, ii; + for (i = 1, ii = flatLinearRings.length; i < ii; ++i) { + goog.array.extend(flatCoordinates, flatLinearRings[i]); + ends.push(flatCoordinates.length); + } + polygon.setFlatCoordinates( + ol.geom.GeometryLayout.XYZ, flatCoordinates, ends); + return polygon; + } else { + return undefined; + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {ol.style.Style} Style. + */ +ol.format.KML.readStyle_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'Style'); + var styleObject = ol.xml.pushAndParse( + {}, ol.format.KML.STYLE_PARSERS_, node, objectStack); + if (!goog.isDef(styleObject)) { + return null; + } + var fillStyle = /** @type {ol.style.Fill} */ (goog.object.get( + styleObject, 'fillStyle', ol.format.KML.DEFAULT_FILL_STYLE_)); + var fill = /** @type {boolean|undefined} */ + (goog.object.get(styleObject, 'fill')); + if (goog.isDef(fill) && !fill) { + fillStyle = null; + } + var imageStyle = /** @type {ol.style.Image} */ (goog.object.get( + styleObject, 'imageStyle', ol.format.KML.DEFAULT_IMAGE_STYLE_)); + var strokeStyle = /** @type {ol.style.Stroke} */ (goog.object.get( + styleObject, 'strokeStyle', ol.format.KML.DEFAULT_STROKE_STYLE_)); + var outline = /** @type {boolean|undefined} */ + (goog.object.get(styleObject, 'outline')); + if (goog.isDef(outline) && !outline) { + strokeStyle = null; + } + var style = new ol.style.Style({ + fill: fillStyle, + image: imageStyle, + stroke: strokeStyle, + text: null, // FIXME + zIndex: undefined // FIXME + }); + return style; +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.DataParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'Data'); + var name = node.getAttribute('name'); + if (!goog.isNull(name)) { + var data = ol.xml.pushAndParse( + undefined, ol.format.KML.DATA_PARSERS_, node, objectStack); + if (goog.isDef(data)) { + var featureObject = + /** @type {Object} */ (objectStack[objectStack.length - 1]); + goog.asserts.assert(goog.isObject(featureObject)); + goog.object.set(featureObject, name, data); + } + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.ExtendedDataParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'ExtendedData'); + ol.xml.parse(ol.format.KML.EXTENDED_DATA_PARSERS_, node, objectStack); +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.PairDataParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'Pair'); + var pairObject = ol.xml.pushAndParse( + {}, ol.format.KML.PAIR_PARSERS_, node, objectStack); + if (!goog.isDef(pairObject)) { + return; + } + var key = /** @type {string|undefined} */ + (goog.object.get(pairObject, 'key')); + if (goog.isDef(key) && key == 'normal') { + var featureObject = /** @type {Object} */ + (objectStack[objectStack.length - 1]); + var Style = /** @type {ol.style.Style} */ + (goog.object.get(pairObject, 'Style', null)); + if (!goog.isNull(Style)) { + goog.object.set(featureObject, 'Style', Style); + } + var styleUrl = /** @type {string|undefined} */ + (goog.object.get(pairObject, 'styleUrl')); + if (goog.isDef(styleUrl)) { + goog.object.set(featureObject, 'styleUrl', styleUrl); + } + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.SchemaDataParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'SchemaData'); + ol.xml.parse(ol.format.KML.SCHEMA_DATA_PARSERS_, node, objectStack); +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.SimpleDataParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'SimpleData'); + var name = node.getAttribute('name'); + if (!goog.isNull(name)) { + var data = ol.format.KML.readString_(node); + var featureObject = + /** @type {Object} */ (objectStack[objectStack.length - 1]); + goog.object.set(featureObject, name, data); + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.StyleMapParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'StyleMap'); + ol.xml.parse(ol.format.KML.STYLE_MAP_PARSERS_, node, objectStack); +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.innerBoundaryIsParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'innerBoundaryIs'); + var flatLinearRing = ol.xml.pushAndParse( + /** @type {Array.|undefined} */ (undefined), + ol.format.KML.INNER_BOUNDARY_IS_PARSERS_, node, objectStack); + if (goog.isDef(flatLinearRing)) { + var flatLinearRings = /** @type {Array.>} */ + (objectStack[objectStack.length - 1]); + goog.asserts.assert(goog.isArray(flatLinearRings)); + goog.asserts.assert(flatLinearRings.length > 0); + flatLinearRings.push(flatLinearRing); + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.outerBoundaryIsParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'outerBoundaryIs'); + var flatLinearRing = ol.xml.pushAndParse( + /** @type {Array.|undefined} */ (undefined), + ol.format.KML.OUTER_BOUNDARY_IS_PARSERS_, node, objectStack); + if (goog.isDef(flatLinearRing)) { + var flatLinearRings = /** @type {Array.>} */ + (objectStack[objectStack.length - 1]); + goog.asserts.assert(goog.isArray(flatLinearRings)); + goog.asserts.assert(flatLinearRings.length > 0); + flatLinearRings[0] = flatLinearRing; + } +}; + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.DATA_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'value': ol.xml.makeReplacer(ol.format.KML.readString_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.EXTENDED_DATA_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'Data': ol.format.KML.DataParser_, + 'SchemaData': ol.format.KML.SchemaDataParser_ + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.FLAT_LINEAR_RING_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'coordinates': ol.xml.makeReplacer(ol.format.KML.readFlatCoordinates_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.FLAT_LINEAR_RINGS_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'innerBoundaryIs': ol.format.KML.innerBoundaryIsParser_, + 'outerBoundaryIs': ol.format.KML.outerBoundaryIsParser_ + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.GEOMETRY_FLAT_COORDINATES_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'coordinates': ol.xml.makeReplacer(ol.format.KML.readFlatCoordinates_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.ICON_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'href': ol.xml.makeObjectPropertySetter(ol.format.KML.readString_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.ICON_STYLE_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'Icon': ol.xml.makeObjectPropertySetter(ol.format.KML.readIcon_), + 'heading': ol.xml.makeObjectPropertySetter(ol.format.KML.readNumber_), + 'hotSpot': ol.xml.makeObjectPropertySetter(ol.format.KML.readVec2_), + 'scale': ol.xml.makeObjectPropertySetter(ol.format.KML.readscale_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.INNER_BOUNDARY_IS_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'LinearRing': ol.xml.makeReplacer(ol.format.KML.readFlatLinearRing_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.LINE_STYLE_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'color': ol.xml.makeObjectPropertySetter(ol.format.KML.readColor_), + 'width': ol.xml.makeObjectPropertySetter(ol.format.KML.readNumber_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.MULTI_GEOMETRY_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'LineString': ol.xml.makeArrayPusher(ol.format.KML.readLineString_), + 'MultiGeometry': ol.xml.makeArrayPusher(ol.format.KML.readMultiGeometry_), + 'Point': ol.xml.makeArrayPusher(ol.format.KML.readPoint_), + 'Polygon': ol.xml.makeArrayPusher(ol.format.KML.readPolygon_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.OUTER_BOUNDARY_IS_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'LinearRing': ol.xml.makeReplacer(ol.format.KML.readFlatLinearRing_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.PAIR_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'Style': ol.xml.makeObjectPropertySetter(ol.format.KML.readStyle_), + 'key': ol.xml.makeObjectPropertySetter(ol.format.KML.readString_), + 'styleUrl': ol.xml.makeObjectPropertySetter(ol.format.KML.readStyleUrl_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.PLACEMARK_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'ExtendedData': ol.format.KML.ExtendedDataParser_, + 'MultiGeometry': ol.xml.makeObjectPropertySetter( + ol.format.KML.readMultiGeometry_, 'geometry'), + 'LineString': ol.xml.makeObjectPropertySetter( + ol.format.KML.readLineString_, 'geometry'), + 'Point': ol.xml.makeObjectPropertySetter( + ol.format.KML.readPoint_, 'geometry'), + 'Polygon': ol.xml.makeObjectPropertySetter( + ol.format.KML.readPolygon_, 'geometry'), + 'Style': ol.xml.makeObjectPropertySetter(ol.format.KML.readStyle_), + 'StyleMap': ol.format.KML.StyleMapParser_, + 'address': ol.xml.makeObjectPropertySetter(ol.format.KML.readString_), + 'description': ol.xml.makeObjectPropertySetter(ol.format.KML.readString_), + 'name': ol.xml.makeObjectPropertySetter(ol.format.KML.readString_), + 'open': ol.xml.makeObjectPropertySetter(ol.format.KML.readBoolean_), + 'phoneNumber': ol.xml.makeObjectPropertySetter(ol.format.KML.readString_), + 'styleUrl': ol.xml.makeObjectPropertySetter(ol.format.KML.readURI_), + 'visibility': ol.xml.makeObjectPropertySetter(ol.format.KML.readBoolean_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.POLY_STYLE_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'color': ol.xml.makeObjectPropertySetter(ol.format.KML.readColor_), + 'fill': ol.xml.makeObjectPropertySetter(ol.format.KML.readBoolean_), + 'outline': ol.xml.makeObjectPropertySetter(ol.format.KML.readBoolean_) + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.SCHEMA_DATA_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'SimpleData': ol.format.KML.SimpleDataParser_ + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.STYLE_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'IconStyle': ol.format.KML.IconStyleParser_, + 'LineStyle': ol.format.KML.LineStyleParser_, + 'PolyStyle': ol.format.KML.PolyStyleParser_ + }); + + +/** + * @const {Object.>} + * @private + */ +ol.format.KML.STYLE_MAP_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'Pair': ol.format.KML.PairDataParser_ + }); + + +/** + * @inheritDoc + */ +ol.format.KML.prototype.getExtensions = function() { + return ol.format.KML.EXTENSIONS_; +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {Array.|undefined} Features. + */ +ol.format.KML.prototype.readDocumentOrFolder_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'Document' || + node.localName == 'Folder'); + // FIXME use scope somehow + var parsersNS = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'Folder': ol.xml.makeArrayExtender(this.readDocumentOrFolder_, this), + 'Placemark': ol.xml.makeArrayPusher(this.readPlacemark_, this), + 'Style': goog.bind(this.readSharedStyle_, this), + 'StyleMap': goog.bind(this.readSharedStyleMap_, this) + }); + var features = ol.xml.pushAndParse(/** @type {Array.} */ ([]), + parsersNS, node, objectStack, this); + if (goog.isDef(features)) { + return features; + } else { + return undefined; + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {ol.Feature|undefined} Feature. + */ +ol.format.KML.prototype.readPlacemark_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'Placemark'); + var object = ol.xml.pushAndParse({'geometry': null}, + ol.format.KML.PLACEMARK_PARSERS_, node, objectStack); + if (!goog.isDef(object)) { + return undefined; + } + var style = /** @type {ol.style.Style} */ + (goog.object.get(object, 'Style', null)); + goog.object.remove(object, 'Style'); + var feature = new ol.Feature(); + var id = node.getAttribute('id'); + if (!goog.isNull(id)) { + feature.setId(id); + } + feature.setValues(object); + var styleUrl = /** @type {string|undefined} */ + (goog.object.get(object, 'styleUrl')); + var featureStyleFunction; + if (goog.isDef(styleUrl)) { + featureStyleFunction = this.sharedStyleFeatureStyleFunction_; + } else if (goog.isNull(style)) { + featureStyleFunction = ol.format.KML.defaultFeatureStyleFunction_; + } else { + featureStyleFunction = ol.format.KML.makeFeatureStyleFunction_(style); + } + feature.setStyleFunction(featureStyleFunction); + return feature; +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.prototype.readSharedStyle_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'Style'); + var id = node.getAttribute('id'); + if (!goog.isNull(id)) { + var style = ol.format.KML.readStyle_(node, objectStack); + if (goog.isDef(style)) { + var baseURI = goog.isNull(node.baseURI) ? '' : node.baseURI; + this.sharedStyles_[baseURI + '#' + id] = [style]; + } + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.prototype.readSharedStyleMap_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'StyleMap'); + var id = node.getAttribute('id'); + if (!goog.isNull(id)) { + var styleObject = ol.xml.pushAndParse(/** @type {Object} */ ({}), + ol.format.KML.STYLE_MAP_PARSERS_, node, objectStack); + if (!goog.isDef(styleObject)) { + return; + } + var baseURI = goog.isNull(node.baseURI) ? '' : node.baseURI; + var style = /** @type {ol.style.Style} */ + (goog.object.get(styleObject, 'style', null)); + if (!goog.isNull(style)) { + this.sharedStyles_[baseURI + '#' + id] = [style]; + } + var styleUrl = /** @type {string|undefined} */ + (goog.object.get(styleObject, 'styleUrl')); + if (goog.isDef(styleUrl)) { + var styleUri; + if (goog.isNull(node.baseURI)) { + styleUri = '#' + goog.string.trim(styleUrl); + } else { + styleUri = goog.Uri.resolve(baseURI, styleUrl).toString(); + } + goog.asserts.assert(styleUri in this.sharedStyles_); + this.sharedStyles_[baseURI + '#' + id] = this.sharedStyles_[styleUri]; + } + } +}; + + +/** + * @inheritDoc + */ +ol.format.KML.prototype.readFeatureFromNode = function(node) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + if (goog.array.indexOf(ol.format.KML.NAMESPACE_URIS_, node.namespaceURI) == + -1) { + return null; + } + goog.asserts.assert(node.localName == 'Placemark'); + var feature = this.readPlacemark_(node, []); + if (goog.isDef(feature)) { + return feature; + } else { + return null; + } +}; + + +/** + * @inheritDoc + */ +ol.format.KML.prototype.readFeaturesFromNode = function(node) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + if (goog.array.indexOf(ol.format.KML.NAMESPACE_URIS_, node.namespaceURI) == + -1) { + return []; + } + var features; + if (node.localName == 'Document' || node.localName == 'Folder') { + features = this.readDocumentOrFolder_(node, []); + if (goog.isDef(features)) { + return features; + } else { + return []; + } + } else if (node.localName == 'Placemark') { + var feature = this.readPlacemark_(node, []); + if (goog.isDef(feature)) { + return [feature]; + } else { + return []; + } + } else if (node.localName == 'kml') { + features = []; + var n; + for (n = node.firstChild; !goog.isNull(n); n = n.nextSibling) { + if (n.nodeType == goog.dom.NodeType.ELEMENT) { + var fs = this.readFeaturesFromNode(n); + if (goog.isDef(fs)) { + goog.array.extend(features, fs); + } + } + } + return features; + } else { + return []; + } +}; + + +/** + * @inheritDoc + */ +ol.format.KML.prototype.readProjectionFromDocument = function(doc) { + return ol.proj.get('EPSG:4326'); +}; + + +/** + * @inheritDoc + */ +ol.format.KML.prototype.readProjectionFromNode = function(node) { + return ol.proj.get('EPSG:4326'); +}; diff --git a/test/spec/ol/format/kml/states.kml b/test/spec/ol/format/kml/states.kml new file mode 100644 index 0000000000..c4ca2a8c7f --- /dev/null +++ b/test/spec/ol/format/kml/states.kml @@ -0,0 +1,4661 @@ + + + + US States + 1 + + + Alabama + empty + + +states.AREA: + 51715.786 + + +states.STATE_NAME: +Alabama + + +states.STATE_FIPS: +01 + + +states.SUB_REGION: +E S Cen + + +states.STATE_ABBR: +AL + + +states.POP2000: + 4447100 + + +states.POP2001: + 4478538 + + +states.POP00_SQMI: + 86 + + +states.DEN_0_100: + 92 + + +USStates.ID: + 22 + + +USStates.State_Name: +Alabama + + +USStates.Date_Entered: +Dec. 14 1819 + + +USStates.Year_Entered: +1819 + + +USStates.Year_Settled: +1702 + +]]> + #Style_5 + + + -86.8263454497332,32.7948233460272,0 + + + + + + -85.0700671081992,31.9807030736301,0 -85.0567002477577,32.0173765203509,0 -85.0620107617352,32.0500102920991,0 -85.0566549357244,32.0696439454843,0 -85.046187259254,32.0908949913561,0 -85.0533136579289,32.1266376448382,0 -85.0243823514691,32.1662750781008,0 -85.0078260926386,32.1788785384061,0 -84.9603852752889,32.1919284376309,0 -84.9757438025875,32.2122487204353,0 -84.9283716437355,32.2179784387895,0 -84.9160041260552,32.2285563686775,0 -84.92367962799079,32.2473889995768,0 -84.9053609608961,32.2495557759674,0 -84.8940158788823,32.2591761298648,0 -84.8946035025639,32.2687353881118,0 -84.92107090555641,32.2931369847317,0 -85.0053324510846,32.3295925258289,0 -85.0020899980221,32.3470785227396,0 -84.97166353138461,32.3715031963467,0 -84.9844889642181,32.3870933241337,0 -84.970961884914,32.3968128124947,0 -84.9653850518902,32.4294501858587,0 -84.9898150430422,32.4548361836926,0 -84.9956522169706,32.518928479096,0 -85.0707744216369,32.5812538387594,0 -85.0841493949267,32.603004344931,0 -85.0863240406897,32.6284512647951,0 -85.10380371878141,32.6459103823229,0 -85.0904749305908,32.6761523261383,0 -85.10773330416841,32.6899723746491,0 -85.1138678519411,32.7343891188468,0 -85.1248851250497,32.7443832224212,0 -85.1333007048373,32.7563151798039,0 -85.1280898176054,32.7770703815279,0 -85.1623013377526,32.8074457725548,0 -85.1807197284529,32.8718130182966,0 -85.2335028922441,33.1201394011529,0 -85.2338462673976,33.129237260647,0 -85.2938249844532,33.425875708363,0 -85.3049800767665,33.4905940310641,0 -85.33528685109771,33.6549230949434,0 -85.38401093584911,33.9054097874599,0 -85.3957377905852,33.9598292697156,0 -85.4165672299404,34.0869203579979,0 -85.46028592417321,34.2901615301398,0 -85.5118559301513,34.5230148510197,0 -85.52583413117669,34.5846856151065,0 -85.5346925955902,34.6224884025546,0 -85.5830580356282,34.8623226551191,0 -85.6089602162505,34.9901641616199,0 -85.86956755804469,34.992384535053,0 -86.3035004132153,34.9954638721614,0 -86.31305264552989,34.9952731531874,0 -86.7823722148413,34.9970753222994,0 -86.8334221243196,34.9982460560253,0 -87.2075884780608,35.0079603909194,0 -87.2227639290321,35.0073462053491,0 -87.6078130632206,35.010546624408,0 -87.9860782705711,35.016033638512,0 -88.19496238143979,35.013543867744,0 -88.1939935775637,35.0044536440488,0 -88.1431049406294,34.9303124572945,0 -88.10888651427,34.8999364686021,0 -88.09046867570861,34.8956296636558,0 -88.13640162363011,34.5804972978314,0 -88.15125641336159,34.4652732358205,0 -88.1676133199948,34.3241474912554,0 -88.19934924265689,34.0904480664289,0 -88.20264467082561,34.0591222846376,0 -88.24819560524909,33.7427263969428,0 -88.2745866910838,33.5388014650338,0 -88.3048295831961,33.2888943469818,0 -88.33946633175739,32.9874972113755,0 -88.3480414662251,32.9247582205318,0 -88.3938325168417,32.5804702260594,0 -88.4257919971009,32.3092243032455,0 -88.4377242279507,32.2277556143888,0 -88.4729519210596,31.8888768167036,0 -88.465096841429,31.7022450293789,0 -88.4508031165511,31.4356176907354,0 -88.4345631161403,31.1208794693781,0 -88.4291990018716,31.0006950876596,0 -88.41724262810349,30.7364571156747,0 -88.40141515368251,30.3935517804008,0 -88.3203266415596,30.4042935926262,0 -88.1356811752465,30.3371585569903,0 -88.01978886193341,30.7441900319034,0 -87.9133851540991,30.6211844071927,0 -87.9034657641113,30.421296093483,0 -87.7575029474381,30.2994222307247,0 -87.77994170607489,30.2726382606338,0 -88.00256050399911,30.2336042721855,0 -87.7953306244775,30.23393165256,0 -87.59340480705509,30.2784153722344,0 -87.5875683536562,30.3192543333282,0 -87.46644036038791,30.3597214406638,0 -87.40525082190879,30.4403600660175,0 -87.4188166507341,30.4817007831404,0 -87.4453529644246,30.5313897036451,0 -87.4220673638826,30.5564936086287,0 -87.3932809670146,30.6200982640176,0 -87.3986449174521,30.6680153313996,0 -87.4188942719987,30.6928101858547,0 -87.4601404897836,30.7058026368688,0 -87.5266028694286,30.7484916966577,0 -87.54190013706391,30.7856953414756,0 -87.6159151545761,30.8482964233535,0 -87.62571159139399,30.8769019951762,0 -87.58986722899169,30.954361030582,0 -87.59858025629001,31.0026307736,0 -87.16311759320681,31.0031572312178,0 -86.7793617052065,30.9981918115755,0 -86.70185248868481,30.9980924099155,0 -86.38391974363719,30.9915383065212,0 -86.1814761680363,30.9952251256207,0 -86.0318217926755,30.993327601114,0 -85.4865971253016,31.0009980072958,0 -85.4850102049851,31.0010018399978,0 -85.00160719763341,31.0012534003007,0 -85.01699565076569,31.0801028338282,0 -85.038068227176,31.1267131739262,0 -85.06866250314511,31.1623640897378,0 -85.0933668734253,31.1722112527352,0 -85.1029571297253,31.1969220462589,0 -85.09360326113141,31.2270745000222,0 -85.1033613685017,31.2714361848353,0 -85.0812280506442,31.3030803697052,0 -85.0825631900095,31.33233449639,0 -85.0879419916334,31.3672341961667,0 -85.0614062661802,31.4406634414676,0 -85.0663120282063,31.4760895555663,0 -85.0426984349451,31.5196599288858,0 -85.04272135787051,31.5543898029988,0 -85.0592853056629,31.6212651525335,0 -85.1112049587349,31.6842421102739,0 -85.11867442354141,31.7085715963854,0 -85.11528693111811,31.731565957183,0 -85.1301648712312,31.778853672117,0 -85.1315611123421,31.7838145657199,0 -85.1355669344631,31.8548844137198,0 -85.11515025581549,31.9074247500776,0 -85.0700671081992,31.9807030736301,0 + + + + + + + + Alaska + empty + + +states.AREA: + 576594.104 + + +states.STATE_NAME: +Alaska + + +states.STATE_FIPS: +02 + + +states.SUB_REGION: +Pacific + + +states.STATE_ABBR: +AK + + +states.POP2000: + 626932 + + +states.POP2001: + 632783 + + +states.POP00_SQMI: + 1 + + +states.DEN_0_100: + 100 + + +USStates.ID: + 49 + + +USStates.State_Name: +Alaska + + +USStates.Date_Entered: +Jan. 3 1959 + + +USStates.Year_Entered: +1959 + + +USStates.Year_Settled: +1784 + +]]> + #Style_5 + + + -152.571308132839,64.31717179291989,0 + + + + + + + -161.333785152503,58.73324809322381,0 -161.265686026239,58.7746349508974,0 -161.29973001177,58.8092078992406,0 -160.898880078262,58.8847743885185,0 -160.835706338137,58.8360566348485,0 -160.328871281117,59.0589472427445,0 -160.255289421572,58.9814391788959,0 -160.322214368411,58.94977595668139,0 -160.251928933333,58.8947750733089,0 -160.018038770945,58.8847826021977,0 -159.921353250021,58.7703335410918,0 -159.764983266222,58.85339732881441,0 -159.770814017585,58.9336678800203,0 -159.629389451621,58.951728817063,0 -159.652767383695,58.8356144431094,0 -159.431907396554,58.78200378727071,0 -159.058839790045,58.4242303462786,0 -158.840482035485,58.40172569768509,0 -158.706325553629,58.4914573031936,0 -158.914412274631,58.768124706742,0 -158.847732874479,58.8147881781941,0 -158.804120274768,58.79007643944839,0 -158.886637897011,58.7328457311724,0 -158.781626705695,58.7703465789124,0 -158.764699341806,58.9173004051305,0 -158.825525121968,58.9703482280997,0 -158.746636639026,58.992299469629,0 -158.790794838837,58.9609108289104,0 -158.72911244469,58.87285089191919,0 -158.448018866607,59.0539656031184,0 -158.539151744527,59.17452613590309,0 -158.425528178316,59.0761984218428,0 -158.131606098439,59.0275871389339,0 -157.994937811845,58.904249899836,0 -158.025789747621,58.8700843445155,0 -158.181898629942,59.0086957979644,0 -158.494678300986,58.9986887872383,0 -158.422196166983,58.9711854751204,0 -158.496903135941,58.9484099616525,0 -158.566903585087,58.81174047286289,0 -158.368259112377,58.7472974611246,0 -158.335782570428,58.65867989733821,0 -158.201041727574,58.60619016044859,0 -157.15562321674,58.863481676262,0 -157.114088794183,58.8737057915319,0 -156.885486385519,59.0087124811514,0 -156.86715047004,59.1028830583024,0 -156.781337077422,59.1506598829204,0 -156.857424505391,58.9970702811005,0 -156.948271114567,58.898965473525,0 -157.073799361921,58.7634294950003,0 -156.940465365975,58.73509549838399,0 -157.227146003726,58.6403703663092,0 -157.26552143945,58.61099989520881,0 -157.551293782504,58.39230935566729,0 -157.567122696749,58.3028631268522,0 -157.467383404756,58.21147284622099,0 -157.337107162871,58.2384214399498,0 -157.140723498892,58.1617563507581,0 -157.395729459446,58.2059194349044,0 -157.612095158083,58.0889724688187,0 -157.708762826285,57.642579814095,0 -157.602372111932,57.62118856016901,0 -157.594584559286,57.4884098545335,0 -157.422370568788,57.49257944137811,0 -157.451242831187,57.5445286801005,0 -157.399057835422,57.5592475782682,0 -157.394324661818,57.4942511106634,0 -157.659313790987,57.4739582789334,0 -157.680712071643,57.56674949709691,0 -157.940146338779,57.4911808741641,0 -158.057084658874,57.3628493580549,0 -158.287372349061,57.3234001444386,0 -158.650976582544,57.052545680881,0 -158.702058683987,56.9764328167148,0 -158.642626518403,56.7603290977313,0 -158.798407929269,56.80097196103009,0 -158.948176855863,56.84004339569309,0 -159.027642308589,56.7942118101975,0 -158.864012311658,56.8925432463471,0 -159.2376011964,56.727251651604,0 -159.266255938373,56.6969773995724,0 -159.211232058542,56.6933620466209,0 -159.839280009922,56.54002916803709,0 -160.369545562978,56.2691753616262,0 -160.571495574202,55.92889738004299,0 -160.240612175007,55.8452847206279,0 -160.316754865376,55.821402903935,0 -160.251747074441,55.76972980426541,0 -160.466201133531,55.7927898869082,0 -160.503162720311,55.8663904588052,0 -160.789543128523,55.8791647494381,0 -160.760665773692,55.77583190214499,0 -160.661480434371,55.7308353579732,0 -160.798136884243,55.7099971367895,0 -160.948139923201,55.8230554861109,0 -160.930382830279,55.87527146206789,0 -161.027888121243,55.8958312292401,0 -160.863155388513,55.9319441282278,0 -160.87646436338,55.9897218164889,0 -161.246184916394,55.9416568129955,0 -161.370088134206,55.9505502490315,0 -161.198703521823,56.00582894445199,0 -161.783999074871,55.891092733739,0 -162.612011328844,55.4266227275852,0 -162.503704052287,55.44384484323831,0 -162.490058524205,55.37356947755129,0 -162.892307267167,55.2652303796606,0 -162.834778744668,55.226336390692,0 -162.880614120962,55.1855020887533,0 -163.075072766862,55.1727266321509,0 -163.018985653155,55.2432779859019,0 -163.325067791767,55.120781676687,0 -163.240312596218,54.9566141906158,0 -163.337815758332,54.9579995076703,0 -163.354198710481,54.9182724565595,0 -163.276713380764,54.9118844503472,0 -163.387823291606,54.85577077085231,0 -163.362248453471,54.81104837868569,0 -163.046468053829,54.9366094396024,0 -163.210901063576,55.01466386830321,0 -163.241178591562,55.0968868621753,0 -163.186461496505,55.1388346767614,0 -162.91951622862,55.0185578001535,0 -162.97670554716,54.9941114885713,0 -162.879777735911,54.93105442482131,0 -162.737537176281,54.9471652996602,0 -162.654501254855,55.0496709305591,0 -162.564497469772,54.95439441058279,0 -162.650351300767,55.06634162353811,0 -162.60698925691,55.1616203136746,0 -162.723662744298,55.2185644807848,0 -162.64813559177,55.2944031175309,0 -162.564241723022,55.29245926729391,0 -162.600342732401,55.2688454079785,0 -162.363397597136,55.1019064144312,0 -162.526723907637,55.1069029544622,0 -162.43792192466,55.0336527695807,0 -162.226160106285,55.023841561213,0 -162.225086063802,55.11022986289451,0 -162.102015333028,55.1652243665891,0 -162.14096098133,55.1124473313382,0 -162.089794404917,55.0780070068784,0 -161.969778363407,55.1010735983281,0 -162.04425843462,55.2318999694405,0 -161.908136327499,55.2096901239275,0 -161.701174942482,55.40469908465581,0 -161.713417473843,55.5133125057309,0 -161.564524528208,55.6219224278555,0 -161.140619787914,55.5322194472926,0 -161.375889759647,55.5719308099382,0 -161.487550344253,55.4802589363229,0 -161.505093667031,55.35859055447419,0 -161.245606142834,55.34803673372501,0 -160.901450202665,55.5180571296746,0 -160.812282930602,55.4508344758896,0 -160.673678646028,55.4611128174626,0 -160.65869461044,55.5025023768326,0 -160.762026681564,55.5436149376,0 -160.594244378424,55.6075070391802,0 -160.509799239654,55.47722062139179,0 -160.367289822086,55.6016730144438,0 -160.435921567478,55.6452826356233,0 -160.150100463074,55.65806440819991,0 -160.156196639475,55.73028669280341,0 -160.067023580057,55.69584118132489,0 -160.041480059015,55.78723691352259,0 -159.865655546791,55.7828003051536,0 -159.843160184257,55.8502987828938,0 -159.623997571039,55.8130754392236,0 -159.68182740582,55.7372354944145,0 -159.633763521754,55.69418181050791,0 -159.709595206964,55.6608466266932,0 -159.617099863445,55.6341826757826,0 -159.757958323373,55.6016786017979,0 -159.625702753951,55.5725134117704,0 -159.56444722997,55.6675696119233,0 -159.505743092783,55.7586358496787,0 -159.545629195873,55.8803024719076,0 -159.468402315572,55.8961424500525,0 -159.426523393594,55.7855851946283,0 -159.361718537439,55.8744682212367,0 -158.929489375146,55.913649286065,0 -158.856707899204,56.0100395520857,0 -158.672026415509,55.9542091455648,0 -158.649812533647,56.017816276671,0 -158.738127459087,56.036155798871,0 -158.66229565743,56.0597624975191,0 -158.698401408561,56.1444864288357,0 -158.6578731072,56.10893405662701,0 -158.565933519365,56.1603198605422,0 -158.63062848199,56.19921337359591,0 -158.475910642966,56.1839349326357,0 -158.604501408417,56.09337098777039,0 -158.597299257073,56.0353265622513,0 -158.510949590254,56.056713105801,0 -158.568435275547,56.0230969994927,0 -158.442033154921,55.9928266933291,0 -158.503440813723,56.09392968219971,0 -158.418133643957,56.06198819300339,0 -158.412582158765,56.17198902397929,0 -158.359506001416,56.1242151806531,0 -158.122575442007,56.23283281910391,0 -158.339520178038,56.1722731135264,0 -158.401781776975,56.2333830676346,0 -158.209248110013,56.2825589305505,0 -158.459802906216,56.3403232775806,0 -158.56230826884,56.2936594813065,0 -158.539815059838,56.24643375235849,0 -158.652025808424,56.263658716432,0 -158.425109648428,56.44309990175461,0 -158.142882552712,56.4586613057075,0 -158.137331109151,56.51199829491119,0 -157.878969772984,56.4667230394565,0 -157.850930570702,56.5564451637043,0 -158.125368944743,56.52505247965081,0 -158.112310036865,56.56728172314899,0 -157.789291610641,56.6775641184919,0 -157.687049228321,56.6083990265527,0 -157.483154811739,56.6150734109705,0 -157.481753538524,56.6686855455315,0 -157.602332905389,56.7181215981928,0 -157.398444314694,56.76452066637489,0 -157.45234430765,56.8486816726827,0 -157.218693133921,56.7706297462374,0 -157.149023983421,56.8181418198582,0 -157.190102649761,56.8473004074459,0 -157.089544356612,56.8228663550548,0 -156.946204230785,56.90730550252469,0 -156.957316996187,56.9781375977643,0 -156.815676111883,56.8970385623057,0 -156.781778579615,57.0442657888193,0 -156.550662398262,56.9767574935604,0 -156.647895951436,57.0523176397596,0 -156.509283408839,57.04815480310441,0 -156.475383840147,57.1206504256663,0 -156.370374663586,57.1412137444124,0 -156.345108649058,57.17899543635921,0 -156.382157694384,57.19522642686001,0 -156.448444338671,57.22426674886219,0 -156.337058323783,57.28371786195311,0 -156.560112290231,57.2706517564981,0 -156.547908383125,57.3151012445201,0 -156.204013805649,57.4767689054821,0 -156.031252083175,57.4387154200719,0 -156.105139656814,57.5256676083383,0 -156.017096225347,57.5278889954359,0 -156.036264823039,57.57289458496021,0 -155.738761208247,57.5484491430015,0 -155.772116905032,57.6428964424694,0 -155.589863307336,57.6684495062979,0 -155.637654619084,57.71900364639491,0 -155.605424772626,57.7901269537674,0 -155.313209888872,57.7337300300885,0 -155.329864010455,57.8351196866473,0 -155.082392625678,57.8817919802853,0 -155.122076480031,57.9498466148949,0 -155.036263615044,58.01901651886061,0 -154.784915463434,58.0015242707294,0 -154.6693745043,58.06874860389601,0 -154.577475297862,58.02152097435891,0 -154.542736181707,58.06318608427399,0 -154.602683197036,58.1237428043424,0 -154.464687576786,58.0912394264893,0 -154.493467970366,58.195408792331,0 -154.335544467235,58.076521074806,0 -154.338858209779,58.1551303092309,0 -154.226332467918,58.139025874853,0 -154.303822766377,58.18846581873181,0 -154.208806500557,58.1895815991094,0 -154.155733688479,58.2226352017764,0 -154.245420814585,58.2551439894471,0 -154.114293382021,58.2806980425376,0 -154.356521446324,58.2870875115718,0 -154.002646725717,58.3773658722835,0 -154.105387027067,58.48125560259759,0 -153.932061858385,58.5045959892085,0 -153.972890504162,58.5284831785518,0 -153.898185310175,58.61348358666779,0 -153.61068326709,58.6340492543883,0 -153.44985398374,58.7137727795236,0 -153.364832539309,58.8429417107663,0 -153.273557746057,58.8554624066591,0 -153.261534242756,58.85711048010789,0 -153.362056111899,58.8676613660462,0 -153.292631360869,58.8782135819054,0 -153.429022087772,58.9818267000574,0 -153.704883939862,59.0684898098592,0 -154.042661381181,59.0787554970255,0 -154.157370965954,59.0231941221256,0 -154.173498514142,59.1218045137184,0 -154.262948809218,59.1415330158652,0 -154.128492709467,59.2018092726682,0 -154.114066158873,59.3032000988927,0 -153.949637554903,59.3582157497182,0 -154.144651043452,59.3768103802015,0 -153.749350608612,59.43515850431751,0 -153.76715342528,59.5198853480745,0 -153.876835256794,59.54460710609381,0 -153.591094337494,59.5554610435647,0 -153.56529052404,59.60742170564599,0 -153.7077677386,59.63212213906429,0 -153.593590561736,59.6932442855167,0 -153.558099389461,59.6279782410784,0 -153.490537875191,59.6429817146384,0 -153.451034011489,59.788514869163,0 -153.325474023388,59.7201833609921,0 -153.427468957573,59.6507468501349,0 -153.228261155999,59.64324974738111,0 -153.046678397772,59.7063277032092,0 -153.01027369159,59.8293809376473,0 -153.274125155891,59.8332414104575,0 -153.220254584942,59.8674197160735,0 -152.709383935819,59.9216072262671,0 -152.582127278814,60.0810565939181,0 -152.92390161202,60.23334805462,0 -152.94003873109,60.283835571813,0 -153.105318627738,60.2888209744272,0 -152.914498420316,60.3074426802667,0 -152.888672743247,60.24994871215711,0 -152.623566405179,60.21938531787029,0 -152.424485688679,60.2913482476289,0 -152.244741438209,60.3932989208154,0 -152.33336982315,60.4299649111308,0 -152.324187650344,60.4982963133817,0 -152.060879059337,60.6702568219423,0 -151.869752276787,60.7527600317616,0 -151.712241218462,60.7227533678662,0 -151.8069672633,60.8333167797258,0 -151.745283678886,60.9158263142677,0 -151.170299447225,61.0494362619038,0 -150.971803022971,61.19443514678041,0 -150.952789955596,61.20832902923419,0 -150.589996572722,61.2838898032493,0 -150.572785589509,61.3644498997296,0 -150.501098165034,61.2522262842029,0 -149.998044706153,61.23972433979731,0 -149.88219241844,61.38194178181671,0 -149.69833315027,61.4716711128427,0 -149.244431173874,61.4922294375812,0 -149.244690583337,61.4921722234404,0 -149.688899347697,61.3938950506461,0 -150.066392163155,61.1538821236082,0 -149.35355602292,60.9274961555537,0 -149.164131930274,60.94414391284911,0 -149.030233992719,60.84719412510259,0 -149.031256391296,60.8473581579819,0 -149.817460656137,60.9738753404146,0 -150.055802984252,60.9049820972072,0 -150.441125056703,61.029716422926,0 -151.054174381277,60.7872102685368,0 -151.411145577038,60.7269253434777,0 -151.277527954686,60.538589425392,0 -151.30610807234,60.3849681995543,0 -151.393906354096,60.35968671163809,0 -151.434168395526,60.2060742580971,0 -151.721073010356,60.02133213170561,0 -151.87130095749,59.7432697182973,0 -151.411020611746,59.6024407095216,0 -151.473222538545,59.6335528029021,0 -151.429615432973,59.6593798124915,0 -150.994891148765,59.7766160796313,0 -151.194325829894,59.644665262138,0 -151.172373755852,59.5971640167154,0 -151.440432999921,59.5332703268026,0 -151.373191005141,59.4404885512437,0 -151.68518619413,59.4763225888683,0 -151.901267887832,59.4074275234718,0 -151.814594874271,59.35269704310421,0 -151.939328637694,59.3435208087696,0 -151.974035802241,59.2704359809586,0 -151.76075037891,59.2209870235803,0 -151.725442401128,59.16014497139561,0 -151.416827511337,59.2579726347623,0 -151.113463885909,59.2132702949236,0 -151.257942518028,59.31354129712781,0 -151.046535944978,59.2968882192378,0 -150.959468408548,59.2017798893775,0 -150.882900422449,59.2566178352259,0 -150.92345880736,59.3168976512654,0 -150.601818750295,59.4332904901038,0 -150.637372846165,59.4591302876502,0 -150.573198696892,59.48801818871599,0 -150.656820527631,59.5455181462851,0 -150.492372464406,59.5966342854004,0 -150.554892203734,59.5207951642239,0 -150.483751946228,59.46108167276329,0 -150.234610434769,59.7174743922216,0 -150.375967886488,59.46496858220271,0 -150.177957168347,59.5299760545595,0 -150.186568178919,59.5913620600161,0 -150.089068344022,59.5874737531167,0 -150.131279158927,59.6944203512125,0 -150.026572805093,59.6283085711905,0 -149.958795645119,59.6663736669455,0 -149.917964701058,59.7141495203082,0 -150.036312057431,59.7958151910466,0 -149.745725653872,59.6580445615074,0 -149.76687375455,59.7794301535473,0 -149.865749098572,59.8455311572584,0 -149.761044038397,59.835258968484,0 -149.725733852783,59.9624799470071,0 -149.649654701483,59.8997048950508,0 -149.632413768566,59.7430521316596,0 -149.527979014918,59.7161061893766,0 -149.630184937389,59.8241558519239,0 -149.392427191978,59.99692500620601,0 -149.419106339128,60.1177625682853,0 -149.297425849991,60.0149872235935,0 -149.27742488256,59.86693539618939,0 -149.109889568055,60.0505445840998,0 -149.039909034559,60.0480501444573,0 -149.118525530796,59.9844388664724,0 -149.072686356652,59.961110755894,0 -148.645732735282,59.9205553455863,0 -148.584838780207,59.9443183635439,0 -148.545431978257,59.9596933140987,0 -148.543775431703,60.02856277454679,0 -148.432069759509,59.9521654982814,0 -148.443751827642,60.0265934350966,0 -148.327872827252,60.1737736367389,0 -148.20473061572,60.1285935563073,0 -148.112311189492,60.2274263163939,0 -148.207873142985,60.14961256234051,0 -148.181753673558,60.1962918011757,0 -148.261756888472,60.2240371956002,0 -148.213149526906,60.2548997880003,0 -148.437875688356,60.1765645984425,0 -148.360649912604,60.2312630697471,0 -148.391233023641,60.2834972169101,0 -148.315658112001,60.251265128508,0 -148.215358388159,60.3379605640224,0 -148.252033968825,60.3771146586788,0 -148.13848080643,60.35329041049031,0 -148.182048393761,60.41382466439471,0 -148.086522057206,60.3894257803973,0 -147.939038435394,60.4616800092346,0 -148.096202802999,60.6007917073021,0 -148.16901726638,60.49827278078261,0 -148.182625054263,60.5568821805977,0 -148.236481371513,60.51464411648529,0 -148.248407357397,60.4440664370318,0 -148.453728463385,60.5404772618764,0 -148.662370737089,60.4572230831064,0 -148.686252636282,60.44770064102191,0 -148.655870348742,60.46750311616861,0 -148.489839167264,60.5757594787753,0 -148.334269745155,60.5338072453025,0 -148.199562326405,60.6254816107083,0 -148.232351327792,60.76689064543021,0 -148.423189909456,60.62464590669959,0 -148.373729433633,60.7741100557936,0 -148.656393799296,60.6732030138355,0 -148.670173154824,60.66828501340499,0 -148.643795450459,60.7263816501015,0 -148.633222448721,60.74967814460919,0 -148.44960635712,60.8035643503037,0 -148.70186875851,60.7891472536526,0 -148.342354826261,60.81328428583921,0 -148.39515893567,60.85412255705851,0 -148.314306930357,60.84078402297321,0 -148.276250313012,60.9180191103731,0 -148.333206253881,60.9638636687654,0 -148.24621788915,60.950524631916,0 -148.150694574815,61.0658189481316,0 -148.419891159865,60.982475096544,0 -148.35876601599,61.045265507278,0 -148.406292409212,61.0538727742567,0 -148.152073881692,61.1174925099543,0 -148.058728074477,61.0180288282359,0 -147.727589369721,61.2769501718819,0 -147.762033891342,61.2119502260391,0 -147.701464454691,61.20362336129689,0 -148.05427032011,60.9491353609803,0 -147.86733694704,60.8319667058086,0 -147.751499090674,60.8369802363913,0 -147.810973218779,60.873353881162,0 -147.716791759145,60.94891017392889,0 -147.731235092843,60.8869808213403,0 -147.600404620288,60.864474159109,0 -147.610959532568,61.0050354080108,0 -147.669575457536,61.0183582983929,0 -147.597071375163,61.0230848553715,0 -147.548721557266,61.15390437906311,0 -147.481227993569,61.0736399741854,0 -147.546232330737,60.9102973905737,0 -147.433746261722,61.01141449110691,0 -147.456509137478,60.9550268901559,0 -147.380674906894,60.983631907419,0 -147.452354453026,60.9019624271688,0 -147.364825833686,60.88391033304149,0 -147.253739447425,60.9308410661136,0 -147.274590726064,61.0013889229548,0 -147.202899879317,61.0136078504404,0 -147.159279204397,60.945279594455,0 -147.099832210281,61.0108324265117,0 -146.987303498882,61.0027809241622,0 -147.032896212862,60.9527767239131,0 -146.96480793758,60.9397266125377,0 -146.587025468714,61.1308545406382,0 -146.302870653031,61.1303006103218,0 -146.245607696804,61.0850266206628,0 -146.645096824727,61.0680740681633,0 -146.563700432409,61.0333532654964,0 -146.66258226107,61.0355783966212,0 -146.704238180203,60.9747326576475,0 -146.585322998139,60.9369525778928,0 -146.7562168937,60.949184341708,0 -146.618399066796,60.87583490026579,0 -146.62588869526,60.8191742022643,0 -146.365278513723,60.8199981043257,0 -146.233084037149,60.89223480194439,0 -146.091857444634,60.833693045447,0 -146.688635158716,60.7445853086664,0 -146.655375405815,60.6991705496384,0 -146.487809366452,60.6780530191874,0 -146.304472221854,60.7733383190817,0 -146.268413160245,60.72194984233029,0 -146.04283298469,60.79808589117061,0 -146.018662897232,60.7428002103088,0 -146.25562426106,60.6377755739876,0 -145.92504969477,60.705840050816,0 -145.990873322739,60.6286083262344,0 -145.849200623326,60.6961056188291,0 -145.873343048254,60.6497147445425,0 -145.806403418073,60.6572171447883,0 -145.874197219193,60.6205455692455,0 -145.627771366174,60.67138695048881,0 -145.942281314296,60.4674984661902,0 -145.65561811283,60.466944019527,0 -145.351399838659,60.3516582766124,0 -145.225314668621,60.3683449430158,0 -144.826036159745,60.5929111703319,0 -144.760308369237,60.6790815080476,0 -144.613385843632,60.7150275209425,0 -144.763678839838,60.6627982972541,0 -144.884181006322,60.4780630494153,0 -144.788382984825,60.493062458805,0 -144.796437648474,60.4516699301247,0 -144.938378311657,60.3011193475292,0 -144.700846219873,60.276921132217,0 -144.576127090857,60.18526840806369,0 -144.189751593955,60.202513503567,0 -144.252554271713,60.1450107532353,0 -144.003095619119,60.0425179326562,0 -144.148602290858,60.0316537314516,0 -143.888930954422,59.9900121498977,0 -142.719050852584,60.1094910039893,0 -141.717587599628,59.9520616401243,0 -141.386792900144,60.023759031075,0 -141.479017872918,60.1162520487878,0 -141.392656822796,60.13820036432251,0 -141.281518868868,60.0712681733343,0 -141.260950985684,59.9765422987742,0 -141.450329121867,59.8809698429882,0 -141.001709257282,59.8023163528928,0 -140.405055993657,59.69771114038931,0 -139.836132734893,59.82301987154829,0 -139.589471632915,59.9485724375873,0 -139.515348897886,60.0505251414152,0 -139.233071735342,59.8691286469081,0 -138.894496190512,59.8063403069422,0 -139.280313455814,59.8299667944861,0 -139.226120251616,59.6157996927196,0 -139.287244089715,59.5710816495799,0 -139.342230474863,59.6046948540387,0 -139.263927331067,59.6224601202984,0 -139.341134941066,59.72384997636281,0 -139.294474503019,59.85468855666269,0 -139.487815713058,59.9846913591901,0 -139.619467019731,59.8849653387388,0 -139.471418166652,59.7074669601951,0 -139.572510583172,59.6099758949173,0 -139.837482979524,59.5330346061365,0 -139.30031473563,59.3435971805834,0 -139.226984728521,59.3774866299124,0 -139.115023715578,59.306932608997,0 -139.198087518419,59.3144316200442,0 -138.627559421752,59.1391476018072,0 -138.445338735773,59.1913655645444,0 -138.500061358955,59.11941992797591,0 -138.605070145945,59.1169216985396,0 -138.29814747493,59.0763641655449,0 -137.966817544318,58.9043972139786,0 -137.928513867343,58.7966276745584,0 -137.66945254236,58.6221403538231,0 -137.442485485931,58.6593486025529,0 -137.628327290225,58.5985226331721,0 -137.094416411605,58.38184837053421,0 -136.951883908997,58.3957406555413,0 -136.89468891615,58.3404646811455,0 -136.866886134745,58.3812984446125,0 -136.844937966734,58.3171315305511,0 -136.679360288633,58.2982379511224,0 -136.716046479212,58.2518487488786,0 -136.656043454623,58.21489693173361,0 -136.561587965299,58.2557320307773,0 -136.655491495902,58.3387900196198,0 -136.603238898985,58.3568494581747,0 -136.363780310359,58.2982440101744,0 -136.410746371687,58.37434783255579,0 -136.483236094748,58.3335105766018,0 -136.557975974697,58.3735129010878,0 -136.494888770296,58.38435455110609,0 -136.507118846123,58.44129144693201,0 -136.318242970392,58.39907769897481,0 -136.278233993266,58.3090737928317,0 -136.08514299961,58.3379763670886,0 -136.031004489378,58.3829837409208,0 -136.082680065021,58.5113093137749,0 -136.2107255606,58.5129687825506,0 -136.120431815536,58.55380061969949,0 -136.29407268799,58.6621169742219,0 -136.333493995151,58.5943420072906,0 -136.525718697156,58.6110055800168,0 -136.339329003016,58.6834993232732,0 -136.497113187255,58.749883803814,0 -136.438229911546,58.6648894748485,0 -136.524357189501,58.699329244748,0 -136.63741457713,58.8218274483055,0 -136.482958192163,58.79238071316011,0 -136.575464362967,58.8382088268226,0 -136.990189990781,58.89458978618709,0 -137.12743032072,58.82153237612071,0 -137.031879326265,58.9126397725486,0 -136.905778407043,58.926812355003,0 -137.056011817366,59.0639419933536,0 -136.661318388864,58.89098638570339,0 -136.610202059726,58.90737638810539,0 -136.70854399634,59.0184893501142,0 -136.582706428563,58.9154339412163,0 -136.490763094364,58.96515754558769,0 -136.484612282788,58.8390423598058,0 -136.26714738786,58.8221080732546,0 -136.385180003962,58.804050032587,0 -136.223774352415,58.7490551480308,0 -136.097421550472,58.8559972664872,0 -136.111863342191,58.92904052508089,0 -136.226576550769,58.9243174424854,0 -136.137164285104,58.9501477784295,0 -136.164118346043,59.0332071986449,0 -136.036058980683,58.9159917107924,0 -136.044109918623,58.8540536632563,0 -135.965502899901,58.9159955148241,0 -135.771340291466,58.8998984467766,0 -136.070198300687,58.8173893403661,0 -135.822138819143,58.5993615155143,0 -135.890772635366,58.5765863516842,0 -135.845710273191,58.4688072573549,0 -135.948217732642,58.4574219642019,0 -135.874610269222,58.4602008134349,0 -135.917383717431,58.3827046058588,0 -135.636006152498,58.4218810052194,0 -135.474039904979,58.3718793195977,0 -135.482922268447,58.4763209989525,0 -135.482266105207,58.47529863497879,0 -135.345954522573,58.26466178943679,0 -135.087344560568,58.2327100623319,0 -135.093479471139,58.4363199785056,0 -135.223182566531,58.59216050625211,0 -135.164589259234,58.63632787603429,0 -135.391034925742,58.9588383273772,0 -135.378475725941,59.0907811532229,0 -135.552399810315,59.2285461698137,0 -135.414058965412,59.1968867345814,0 -135.306546396798,59.0832766696795,0 -135.357082067385,59.2049429105833,0 -135.554624990701,59.3180010587432,0 -135.400998972006,59.3049402002886,0 -135.383161843017,59.3585289384977,0 -135.346557009105,59.4685532642299,0 -135.360411007386,59.3436974793189,0 -135.368222902154,59.27327850648509,0 -135.163500430068,58.9927202255354,0 -135.161777868188,58.9745121701904,0 -135.149071419803,58.8407709473337,0 -135.031254630839,58.736614051915,0 -134.949036811615,58.8143887158517,0 -134.912621058313,58.6560578826969,0 -134.990691092216,58.6696692775995,0 -134.777641849428,58.490775534021,0 -134.763203482944,58.3818793937694,0 -134.511786337846,58.353556200747,0 -134.176469810883,58.1963268059925,0 -133.980913251872,58.4938387505342,0 -133.77091007828,58.5180117548619,0 -133.922590710653,58.4974560491895,0 -134.011765799984,58.39717028706351,0 -133.977853715933,58.3177321691036,0 -134.068158032297,58.2766153296601,0 -134.066201117339,58.085492514722,0 -133.900088363535,57.9760430283545,0 -133.672571190215,58.1471659171099,0 -133.768155453362,58.05576798228,0 -133.670892347204,58.0135539809575,0 -133.682854190577,57.9377083749998,0 -133.774534185107,57.99132643628581,0 -133.857575173935,57.9535439821041,0 -133.693105012499,57.78716267005141,0 -133.568958353096,57.9224356117366,0 -133.525942304262,57.91613784130279,0 -133.123080113048,57.8571686423433,0 -133.547015241979,57.9104879379811,0 -133.547011345063,57.76549624512461,0 -133.004774352576,57.50938403516341,0 -133.643418684621,57.70465696636439,0 -133.663955741524,57.6327098175619,0 -133.585339067243,57.5679869556373,0 -133.312833293853,57.5893738493547,0 -133.49698377267,57.5376995498935,0 -133.470866589226,57.4371423353252,0 -133.3367048496,57.43491848802081,0 -133.433945230402,57.3465912995632,0 -133.225868279786,57.3129816576288,0 -133.0453128552,57.3668719324843,0 -133.244213062915,57.2749262353772,0 -133.473650022802,57.2790896729504,0 -133.554796111527,57.17881921334719,0 -133.528137746568,57.170251028798,0 -133.298114295831,57.0963158766088,0 -133.244768478878,57.17270872708861,0 -133.158950021709,57.16409641561199,0 -133.116163961892,57.1441004284371,0 -133.160081643089,57.0796546192494,0 -132.886179757038,57.0168734472833,0 -132.793097026481,57.0877059207201,0 -132.769781207377,56.9621561828107,0 -132.925060074322,56.9765975021592,0 -132.77060165749,56.8435404168285,0 -132.504506657573,56.7502120617999,0 -132.363909724204,56.8199394689082,0 -132.526143458526,56.7143759920697,0 -132.456682008304,56.67159813085879,0 -132.549488281624,56.627429941292,0 -132.312511499064,56.6374344564457,0 -132.347785944665,56.5271493911447,0 -132.190860649546,56.460486259835,0 -132.15918463566,56.3768754871059,0 -131.971963857806,56.3568773710179,0 -131.908639483814,56.2285236212952,0 -131.49196109642,56.2204678107347,0 -131.961956594766,56.1651919004793,0 -131.945847095563,55.9682473279259,0 -132.06281616002,55.9368652538066,0 -132.049477778082,55.8054682220347,0 -132.175848740147,55.7996382519413,0 -132.175024615534,55.7187928571858,0 -132.225653768625,55.7389522101563,0 -132.267798804903,55.75573975353461,0 -132.177525196271,55.5899085257854,0 -131.964175227892,55.4982422809801,0 -131.929477941262,55.5915718596293,0 -132.00559059502,55.66184618144071,0 -131.881107426912,55.5982402209747,0 -131.81696127044,55.66907850019471,0 -131.864722435898,55.7249016673099,0 -131.754190046919,55.8074038123661,0 -131.917246144437,55.8579672442893,0 -131.411424423709,56.0051871828046,0 -131.324207044163,55.9646304343716,0 -131.011992434462,56.1060238799091,0 -131.202812661678,55.9735113533014,0 -131.00057503828,55.79852982115491,0 -130.917813018449,55.8113108695306,0 -130.95864420197,55.77659000836881,0 -130.887538437933,55.7049239048227,0 -130.865859720611,55.3082667153901,0 -130.65586893889,55.34549300042141,0 -130.61558486786,55.2957733803602,0 -130.945569927982,55.279656185401,0 -131.067513808675,55.191041008103,0 -131.057806417561,55.12243213845139,0 -130.930300099946,55.0871625863252,0 -130.818097932271,55.1424400006887,0 -130.755593228493,55.09243220066681,0 -130.463362816131,55.32744919212371,0 -130.720280373612,55.0766054154367,0 -130.84113305224,55.1027194775792,0 -131.010309645102,55.0038344595815,0 -130.93806720518,54.9629911841008,0 -130.927769495423,54.8090995257054,0 -130.849153266784,54.7671595142445,0 -130.741094710924,54.81854519831811,0 -130.743025470057,54.9660362133392,0 -130.687783687023,54.7616034528696,0 -130.577500820198,54.8574294814757,0 -130.588607500443,54.79354482071981,0 -130.361386873815,54.9077118520726,0 -130.103073100881,55.22747708596741,0 -129.992235346908,55.2813822850679,0 -130.145588531923,55.54108278046449,0 -130.176414642352,55.75409457662871,0 -130.176414642935,55.7541365380658,0 -130.016778867682,55.90888763330291,0 -130.090297948784,56.1177520762836,0 -130.415891262238,56.12855400436249,0 -130.4636519955,56.2349444356491,0 -130.628905377559,56.2582721135475,0 -130.776152935708,56.365766108773,0 -131.05670022424,56.39770273986309,0 -131.074613949113,56.404973833375,0 -131.559476014298,56.6018977381094,0 -131.825838856788,56.59660996812799,0 -131.863077410462,56.7993988358277,0 -132.104748626929,56.8663312886794,0 -132.029189648689,57.0360613881056,0 -132.338641933596,57.0879948891874,0 -132.228348190178,57.2043854032423,0 -132.363616524798,57.34275120064831,0 -133.138683114325,58.13550523558779,0 -133.171048403061,58.1564024746048,0 -133.36284284141,58.28022951617441,0 -133.431726284404,58.4588465909242,0 -133.828692257681,58.72578943348999,0 -134.247322305508,58.8566295232279,0 -134.334593994792,58.9656607746833,0 -134.463191460983,59.12634237687829,0 -134.568204634564,59.1302303298755,0 -134.689857898817,59.24300575590409,0 -134.953748774754,59.2796634610668,0 -134.977219328446,59.3489913196536,0 -134.990984023358,59.3896633545353,0 -135.093498782177,59.4266123149411,0 -135.022939901321,59.47077179961029,0 -135.016295777664,59.5671728987803,0 -135.475441013568,59.8016131035917,0 -135.724887415548,59.7445303048924,0 -136.345727332791,59.6024571115741,0 -136.235738083604,59.5255080235504,0 -136.465487356768,59.4693774502392,0 -136.464644290639,59.2890793693772,0 -136.48764146439,59.2651414114248,0 -136.585774848831,59.1629442147388,0 -136.810786536833,59.1648781936228,0 -137.467432086905,58.9057221041175,0 -137.59264851127,59.2382530122083,0 -138.617535247197,59.7738592247734,0 -138.691994847808,59.9066259646792,0 -139.190602985604,60.088577403015,0 -139.069786821278,60.3519106988025,0 -139.678416008967,60.340234263451,0 -139.981175300005,60.187447543304,0 -140.452638339038,60.3093672718473,0 -140.523190558165,60.2218651470663,0 -140.997156001225,60.30679108033339,0 -140.997384898733,60.3068292096332,0 -140.9989122007,61.89454136467249,0 -141.002434696908,65.8400896453574,0 -141.004723298928,68.4279151682059,0 -141.005660000708,69.6421178479071,0 -141.005660054685,69.6421941494167,0 -141.308508849567,69.69091524212401,0 -141.223482726229,69.67231295411629,0 -141.262940481944,69.6342572443014,0 -141.390999396873,69.6409265677094,0 -141.733781846539,69.775376516245,0 -142.271869100894,69.84843781902801,0 -142.59550303389,70.0040058794748,0 -143.28334909463,70.1181529041699,0 -143.297226611948,70.0417650546672,0 -143.351374419714,70.1087065079648,0 -143.777962651497,70.0997576111421,0 -144.067797268631,70.078983836275,0 -144.026684208822,70.0461921309344,0 -144.071935092264,69.9842381704767,0 -144.116960880923,70.0642423510304,0 -144.970585790948,69.9686710645029,0 -145.610610756659,70.06477802243209,0 -145.842334173811,70.1703248895754,0 -147.692718680802,70.2088996362636,0 -147.861627347452,70.3097296297568,0 -148.225819398389,70.35888695351581,0 -148.5080501403,70.3111025083206,0 -148.610273870989,70.3983395352289,0 -149.497860633081,70.5224866335161,0 -149.891211839655,70.5147096692296,0 -150.406769425655,70.4091151139595,0 -150.372026620749,70.4857944334787,0 -150.783174336724,70.501895326016,0 -151.200682373447,70.4343755922789,0 -151.175949595517,70.3752007889311,0 -151.223434155667,70.370759102962,0 -151.969284739825,70.4432335360395,0 -151.769616151248,70.49879835066341,0 -151.869017761123,70.51269675957811,0 -151.744024642706,70.5596379842346,0 -152.626007780726,70.552398020968,0 -152.075734774532,70.5801986512998,0 -152.497116638279,70.6435141514856,0 -152.510768227234,70.6935034074429,0 -152.218820221629,70.8107476401635,0 -152.43856610095,70.8696291630003,0 -152.743570744621,70.8815709360742,0 -152.665255121422,70.856852202534,0 -152.704675599734,70.8101726258035,0 -152.813581486565,70.8862998754055,0 -153.225833323108,70.92822411535801,0 -153.918350223885,70.88878057125589,0 -154.197785594756,70.7759936984677,0 -154.808937289101,70.8776399320848,0 -154.657816158098,70.9170891747174,0 -154.605861549042,71.01432209967661,0 -155.003416303882,71.1166302754546,0 -155.020061871138,71.0187557924905,0 -155.095626178,71.0162676012733,0 -155.043154972335,71.1309733291761,0 -155.104806867176,71.1484896874106,0 -155.098416547665,71.0840345419312,0 -155.290653808329,71.0851439877854,0 -155.196179617947,70.98902796042751,0 -155.390649819624,71.0031985705146,0 -155.538682998327,70.9353992810117,0 -155.586701416711,70.83929608756201,0 -155.897862446572,70.827357706288,0 -155.904779715577,70.7667935280225,0 -155.97698363289,70.7554086466204,0 -155.986163211433,70.89818973904271,0 -156.185905347499,70.9179013999896,0 -155.739227458931,70.9995911222166,0 -155.550403076765,71.11735082169091,0 -155.647916214362,71.1854052383941,0 -155.949285999619,71.21930586841791,0 -156.112887679407,71.17151117493481,0 -156.046516394757,71.20930936863719,0 -156.104842049165,71.2412459026805,0 -156.450429420198,71.26319772006229,0 -156.604859516191,71.3495767225857,0 -156.379581349744,71.3723459699897,0 -156.485694400001,71.4062353532712,0 -156.819884507406,71.2998439493377,0 -157.278741542101,71.0484374781428,0 -157.883886562967,70.85589649114201,0 -158.511804547629,70.8484055225624,0 -158.342330031307,70.817020707034,0 -158.684558004233,70.7850606362618,0 -159.080935755644,70.8131144628078,0 -159.002863057983,70.77173338606291,0 -159.28124324675,70.7561613759444,0 -159.22065153977,70.6872671403236,0 -159.448456253376,70.7792138080213,0 -159.151250301507,70.8195062260266,0 -159.372601948199,70.8433812641851,0 -159.165422422068,70.8803293300863,0 -159.671512028802,70.7975342513034,0 -160.121176350152,70.604459835988,0 -159.941735264203,70.63223879878581,0 -159.733354947947,70.4928046445493,0 -159.288948712844,70.5300483049591,0 -159.677474486079,70.4663385653533,0 -159.817552164174,70.49501504962841,0 -159.890038016111,70.3911425060827,0 -159.773067099661,70.19167406783259,0 -159.944720780534,70.36362867405241,0 -160.132216169229,70.3178005323508,0 -159.923659721887,70.48307943154801,0 -160.202017902804,70.47110955595581,0 -159.923124669538,70.53807409893339,0 -159.940900953165,70.59280878985111,0 -160.153715245688,70.6041812181133,0 -160.979187665469,70.32388374303331,0 -160.952509305412,70.289429020032,0 -161.616647732875,70.2549933462936,0 -161.703611199213,70.19247557272701,0 -162.124125734446,70.15497812132131,0 -162.008672104119,70.1924326557067,0 -161.786011341545,70.2214812719788,0 -161.898898001357,70.25581190497731,0 -161.713053075455,70.2702654509241,0 -161.955819123057,70.3030222649161,0 -162.965996220551,69.77771713088769,0 -163.029340432513,69.7279840400027,0 -162.944311598629,69.6921422055064,0 -163.14848731547,69.60186060984169,0 -163.068463274222,69.5674362017848,0 -163.123421742913,69.38409029468591,0 -163.273711383295,69.2932346877846,0 -163.187333330638,69.41823992217771,0 -163.563939763235,69.1443452503092,0 -164.32779116985,68.92987632865641,0 -166.235010188035,68.8742810818968,0 -166.201384380437,68.6959334731385,0 -166.228862705966,68.5717843322166,0 -166.369652054535,68.4384315371569,0 -166.314958875026,68.3987130638853,0 -166.830795430101,68.3500887639276,0 -166.290774089908,68.2914877128256,0 -165.922125938821,68.13009959492131,0 -165.364345329511,68.0384502500519,0 -165.287453127133,68.013679439299,0 -164.709865423311,67.8276306400944,0 -164.022903697848,67.5462514378527,0 -163.825364804985,67.3540229613532,0 -163.724744086595,67.1101264345733,0 -162.570866422574,67.0082179740804,0 -162.379205716413,67.162948038495,0 -162.33171920958,67.1490632816262,0 -162.455020849002,66.98821564805471,0 -162.299201905027,67.0026685070435,0 -162.300338359452,67.0682214691147,0 -162.237252423427,67.00656059689329,0 -161.87059056378,67.0512766368782,0 -161.519779273364,66.9865525982117,0 -161.803101442714,66.89907014715401,0 -161.900587916144,66.7276658508876,0 -161.509423316888,66.533223963712,0 -161.252175794063,66.5482244018648,0 -161.143058547956,66.646845617712,0 -160.841360014732,66.66212477606091,0 -160.544990511938,66.58629215016791,0 -160.243021527644,66.6435210713741,0 -160.324133827121,66.6024107500147,0 -160.212460528904,66.5237978147196,0 -160.233292042291,66.3990837318227,0 -160.825243848046,66.3776636662334,0 -161.188882504675,66.53794068690409,0 -161.575248550639,66.44654976984479,0 -162.078064891665,66.6573740140031,0 -162.017532983974,66.77627520968289,0 -162.326967822522,66.9565549707677,0 -162.483368243038,66.95543859566639,0 -162.634175502752,66.8620956907683,0 -162.50391768729,66.7373704214385,0 -162.226660792759,66.7098777879464,0 -161.908889249811,66.53460415958369,0 -161.875246406787,66.43682356722481,0 -161.964680770585,66.33209767334481,0 -161.912733198035,66.2737622600538,0 -161.859115274984,66.28127055439531,0 -161.912469642065,66.36571466792449,0 -161.724119114883,66.40377371027991,0 -161.12938575545,66.33905389843891,0 -161.004972397821,66.2510107806911,0 -161.067169548589,66.1320953929197,0 -161.178554771955,66.1168195592756,0 -161.110472747436,66.1340632209611,0 -161.089951455798,66.24099946752921,0 -161.533306771184,66.2671017911169,0 -161.784662174653,66.07793027450261,0 -161.725763139689,66.0798847355501,0 -161.841022369825,66.01237625837091,0 -161.819106958783,65.9743202145317,0 -162.154654855389,66.0768103047635,0 -162.667167184634,65.9967980821213,0 -162.760224888464,66.1065266000829,0 -163.659125509688,66.0698442485925,0 -163.833571407683,66.1115000863937,0 -163.924675827194,66.20734351040581,0 -164.190246195612,66.19038718515981,0 -163.857173915847,66.2762405458659,0 -163.896916647977,66.3918002644392,0 -163.75748704699,66.5173713450736,0 -163.940815454602,66.5801455403949,0 -163.627760207836,66.5665362934503,0 -163.936621240652,66.60772658673049,0 -164.356385629336,66.5940265602447,0 -164.399507625099,66.5886547571376,0 -164.720280120565,66.5487323991711,0 -165.036099581348,66.3934497068404,0 -165.163914831425,66.4426128043321,0 -165.769199906905,66.3170488599045,0 -165.879146743545,66.2217682512115,0 -165.503613034373,66.14427269394371,0 -165.809430693031,66.10231965425319,0 -166.269744905172,66.1784253346552,0 -166.717496665643,66.0614562164868,0 -166.796378730793,65.9803519034601,0 -166.967770183703,65.972567007919,0 -166.87553964833,65.9336722397271,0 -167.048880086976,65.8753330638621,0 -167.35638581219,65.8867416084715,0 -167.574432868243,65.79588269710401,0 -167.520558325044,65.729503911859,0 -167.820009598595,65.7172766919645,0 -168.044468397191,65.63393934428029,0 -168.034737884617,65.6883706248357,0 -167.84915959275,65.7606133668335,0 -168.124431940435,65.6736433077164,0 -168.067504530249,65.57949304435201,0 -167.459919804786,65.418078455472,0 -166.629617280485,65.3633803841433,0 -166.054064725808,65.25117483745891,0 -166.376548389171,65.2683811362611,0 -166.487111618295,65.2339383119977,0 -166.467666552838,65.18532305262571,0 -166.545727571163,65.13115063139971,0 -166.687118303051,65.11587233754921,0 -166.926288874932,65.14504322984931,0 -166.858525678542,65.2830956002842,0 -166.961299804006,65.2097568742482,0 -166.921831709077,65.13084459946551,0 -166.7004420196,64.9922584742082,0 -166.389879198323,64.8905961323627,0 -166.492626707689,64.73420457751681,0 -166.239555912154,64.59532018133039,0 -165.031230833568,64.4431039957143,0 -164.76985730063,64.4745127817353,0 -164.922898307521,64.45673254184889,0 -164.930956929916,64.53311916006609,0 -164.892627858084,64.48505397767531,0 -164.667902409601,64.5222905226501,0 -164.72621893355,64.48423363991429,0 -164.360088149756,64.5789666182623,0 -163.566205696598,64.5656390411616,0 -163.178409373869,64.4067532494104,0 -163.039813776722,64.5153662552039,0 -163.390642041058,64.5923137088889,0 -163.157027775966,64.6559144969642,0 -163.053148111811,64.55119385660301,0 -162.829792557313,64.4950871737036,0 -162.872303089195,64.4573044554495,0 -162.780647472204,64.3361938504371,0 -162.634219114342,64.3867663256485,0 -162.578957927831,64.52010491152809,0 -162.116745192736,64.7151129311906,0 -161.890367664551,64.7106765685019,0 -161.717861085005,64.7876176880861,0 -161.803708732124,64.821231576543,0 -161.550378624726,64.7448356215443,0 -161.377588763895,64.7873520304165,0 -161.197322318621,64.93430012455281,0 -160.992851544901,64.9379048745032,0 -161.158167193538,64.92262779752031,0 -160.784237176078,64.7157025586849,0 -160.82005359384,64.61485314137271,0 -161.085041870117,64.54957365399611,0 -161.004773522896,64.5215267284232,0 -161.402863614838,64.53401847446931,0 -161.540884660164,64.3856755455374,0 -161.196146256275,64.4148451063664,0 -161.253122387503,64.3920614493081,0 -160.963908335204,64.23705723654,0 -160.943322605701,64.06705330425601,0 -160.774996013091,63.8542813723546,0 -160.788870091555,63.7401106020972,0 -161.154124810184,63.5117640424884,0 -162.157183462979,63.425080499019,0 -162.016926528706,63.4809181406135,0 -162.314404291311,63.5403637706865,0 -162.275536472848,63.4886843315758,0 -162.618589626534,63.270582943221,0 -162.682750159309,63.22978735772389,0 -163.063844348813,63.0592267591378,0 -163.344118130336,63.0211689103926,0 -163.541358158858,63.10533542529459,0 -163.80551615622,62.98283178376531,0 -163.542732163212,63.1219983002693,0 -163.664405424513,63.1111696615313,0 -163.634103094497,63.1425580550469,0 -163.727736186373,63.2139459812552,0 -164.14721335406,63.2595048353859,0 -164.383022810676,63.2197671295211,0 -164.590232105296,63.1328248381903,0 -164.316630993268,63.0106029483316,0 -164.711072054192,63.0142131598764,0 -164.880213279511,62.8347568861368,0 -164.766624119603,62.7886461303061,0 -164.889943380609,62.7805875451643,0 -164.794929376261,62.6108725134766,0 -164.48158838506,62.74504087577081,0 -164.857394583844,62.56447720976451,0 -164.793520287693,62.5403158955948,0 -164.835721145313,62.4808670435066,0 -164.636049158562,62.51059436681111,0 -164.680204128676,62.4642069664149,0 -164.576015154411,62.4244823987194,0 -164.754354205867,62.371142501804,0 -164.610744322152,62.43087532939461,0 -164.853511922844,62.47058236424961,0 -164.869904389072,62.5344782474273,0 -165.08324973359,62.5289209698671,0 -165.705716462815,62.1128041493008,0 -165.758778373867,61.9919605151816,0 -165.591807823504,61.850299198507,0 -166.100962949819,61.8152870680091,0 -166.00207820638,61.7263975023978,0 -165.764863681812,61.6877873499975,0 -166.139583558096,61.63390258333181,0 -166.164858999094,61.71306605020099,0 -166.200126830561,61.5880649141168,0 -166.130110379656,61.4966733252918,0 -165.893180807874,61.5538942669146,0 -165.795402010725,61.5188993667325,0 -165.77983361165,61.4566828273615,0 -165.923994530034,61.4127872061197,0 -165.870920146754,61.3264012743009,0 -165.611214257849,61.28001818518799,0 -165.64984598049,61.23696549771101,0 -165.601745182151,61.11225119317889,0 -165.375369666424,61.0694763303264,0 -165.343697931293,61.1564124226045,0 -165.40983068472,61.20752779114689,0 -165.224257314548,61.27391186012021,0 -165.289840371332,61.3330759916334,0 -165.162901144922,61.4310980300113,0 -164.718443656801,61.6247573719369,0 -164.847615655754,61.4936433189985,0 -165.15290599402,61.41613685729461,0 -165.157055466112,61.358359866418,0 -165.259291727062,61.3275297756185,0 -165.202894312212,61.3230822474369,0 -165.210097154275,61.26281146318839,0 -165.37232516251,61.2000286586147,0 -165.153453777898,61.1553005565385,0 -165.085096336351,61.2130854087809,0 -165.140944081154,61.2558618009692,0 -165.06483272744,61.2105833219074,0 -165.187326936505,61.1228071785489,0 -165.048439437497,61.05689162083421,0 -164.995647599745,61.1119760267926,0 -164.767896969102,61.1103155125245,0 -165.192871886297,60.9597531730246,0 -165.110565059716,60.9225569496261,0 -165.07424859671,60.9061427127989,0 -164.990022768122,60.9348339588457,0 -164.938343200375,60.9524393274619,0 -164.870976580056,60.94695444386939,0 -164.639288416719,60.92808884666271,0 -164.559818808553,60.85004112677449,0 -163.960091115681,60.8547780661213,0 -163.679543441808,60.9911680892823,0 -163.758186260635,60.9331065650752,0 -163.560091826547,60.8878389749158,0 -163.931220897812,60.8514449018976,0 -163.410944450434,60.7497858290327,0 -163.471461733857,60.7506246110248,0 -163.453697030097,60.67783940319959,0 -163.801752052696,60.5806142387469,0 -163.806764049117,60.7439433073368,0 -163.947331988722,60.7800494837044,0 -164.431486477628,60.5525429587347,0 -164.220647905353,60.6881022253774,0 -164.271799002803,60.78309928468549,0 -164.658173653634,60.8192025899417,0 -164.69983094827,60.8466982886337,0 -164.645391085253,60.90975539016381,0 -164.841492573628,60.8661441668259,0 -164.939272561548,60.9266977060696,0 -164.872313502606,60.8425310236634,0 -165.033714451763,60.784759655869,0 -165.006763232977,60.7003109599568,0 -165.427583525104,60.5544745099766,0 -165.250887228003,60.49642462085681,0 -164.985912947372,60.5433696750612,0 -165.027871168689,60.46531341536729,0 -165.146457812405,60.4447516184619,0 -165.078405077892,60.3908727048524,0 -164.77731726895,60.2905990696946,0 -164.650650277534,60.32699099060361,0 -164.663977793575,60.2592109393254,0 -164.427008523946,60.09059993582769,0 -164.113954784651,60.0017211890513,0 -164.22088721234,59.9450478607126,0 -164.110318707835,59.8347714876634,0 -163.366445849479,59.8189419280352,0 -162.816730979116,59.9347749053035,0 -162.753957281201,60.00200647936831,0 -162.511461550551,59.999505071439,0 -162.451713306386,60.1867259781643,0 -162.702266889887,60.260341661936,0 -162.558680320138,60.2564512687932,0 -162.60754168599,60.32756567715741,0 -162.423123890546,60.37617448125431,0 -162.442290876367,60.4256212540744,0 -162.270359992283,60.6120116986623,0 -162.12671403156,60.6492369503414,0 -162.162027301326,60.734794119445,0 -162.085912055504,60.6578433423369,0 -161.881718318846,60.7014627008903,0 -162.224215651641,60.58090649195119,0 -162.226714982077,60.5056260984554,0 -162.474513570136,60.29701025698749,0 -162.335044056392,60.2086692928946,0 -162.352559135282,60.1400645901276,0 -162.271443303682,60.1661733845831,0 -162.287284487017,60.2381196130613,0 -162.153676990213,60.2447813425049,0 -162.253682896918,60.1970044098747,0 -162.199786446445,60.14367446192579,0 -162.238388964912,60.0597798671927,0 -161.707506703828,59.4958853579321,0 -161.960588954752,59.37921114630569,0 -161.988049768588,59.2430992003208,0 -162.001388499591,59.3064322123546,0 -162.051834723767,59.2715496909202,0 -161.994462599361,59.1433746207894,0 -161.867522698748,59.060323156935,0 -161.855021766726,59.1133762929031,0 -161.568055385322,59.10282725569901,0 -161.857245772622,59.0280973607437,0 -161.790573224394,58.9683720926518,0 -161.772791932609,58.78226412509401,0 -161.657795664346,58.7997592139068,0 -161.893609429912,58.6519811349219,0 -162.17360984368,58.64892445768451,0 -161.766586616578,58.5982743359903,0 -161.75108494486,58.6430943044085,0 -161.712753303332,58.6125383333076,0 -161.765272176137,58.5516995163179,0 -161.349468993896,58.6650323643257,0 -161.382490679071,58.7036527879563,0 -161.333785152503,58.73324809322381,0 + + + + + + + + + -172.282642546092,60.3017596593185,0 -172.211808221282,60.316204875602,0 -172.390441016854,60.3928679156909,0 -172.847101990595,60.4839652430026,0 -172.919346731,60.6028543719093,0 -173.04685088018,60.5370151919399,0 -173.051029558487,60.4933969080509,0 -172.601782006627,60.32397371434931,0 -172.282642546092,60.3017596593185,0 + + + + + + + + + -166.111439828761,60.4094701923102,0 -166.398665903988,60.3400243984304,0 -166.498123499017,60.37807097764811,0 -166.810311289524,60.27945769150159,0 -166.84143544507,60.20390387913589,0 -167.453133884145,60.2066788672344,0 -167.318112198797,60.0708487760817,0 -167.128929292756,59.9963962534805,0 -166.104757036993,59.75724250197069,0 -166.118919817195,59.8105716573949,0 -166.267815168744,59.84307908422521,0 -165.61446894417,59.9014123587901,0 -165.542848138141,59.9786315042928,0 -165.727850407447,60.065580817836,0 -165.675056652553,60.09668666622531,0 -165.732830243117,60.1650296963098,0 -165.683703756673,60.29392106600451,0 -166.066483978932,60.3275313579641,0 -166.111439828761,60.4094701923102,0 + + + + + + + + + -164.178091402927,54.603270997621,0 -163.601959088346,54.6099352379761,0 -163.43838539692,54.6574383835051,0 -163.370852896965,54.7535535436431,0 -163.050602984856,54.6674425084057,0 -163.147018537937,54.7652157933741,0 -163.36197296569,54.7754956428998,0 -163.531996342121,55.045514546807,0 -163.770614294094,55.0552237012459,0 -164.137822791485,54.9649533186511,0 -164.221436864885,54.8866229773527,0 -164.490015256965,54.9155065870599,0 -164.706139301228,54.6674315593203,0 -164.953642102217,54.5863095660578,0 -164.855307710372,54.4243657690961,0 -164.647263067171,54.3899305443965,0 -164.388378042911,54.44186867091009,0 -164.178091402927,54.603270997621,0 + + + + + + + + + -166.645219344046,53.5227419042544,0 -166.665820621025,53.5924680707072,0 -166.592700000167,53.5344165169026,0 -166.540213650459,53.6269111248818,0 -166.279117480897,53.67774993367021,0 -166.333594474453,53.7780194934209,0 -166.373841186087,53.7144229393544,0 -166.417176046642,53.7555359837067,0 -166.485803072549,53.6888628054882,0 -166.572714324989,53.70942188291101,0 -166.490200645502,53.7716311101511,0 -166.539118186291,53.7819062132675,0 -166.216945166038,53.9274617985556,0 -166.266407760674,53.90801483494799,0 -166.266410352278,53.9732868625415,0 -166.370790122255,53.9441198424631,0 -166.375514279585,54.0013433143627,0 -166.45804324334,53.8843995619921,0 -166.601616839153,53.8274713387543,0 -166.639401183119,53.91801033072401,0 -166.592988957257,53.9652332845629,0 -166.752505025875,54.0082995250664,0 -167.16275140807,53.85275148133551,0 -167.031908976724,53.7508013086076,0 -166.708269394922,53.7166312270129,0 -166.827438556642,53.6996858085774,0 -166.803267702595,53.6246880539486,0 -166.902450167445,53.7071921802858,0 -167.031906139022,53.70107786412571,0 -167.06553686635,53.6649653853783,0 -166.99796392085,53.61467889916051,0 -167.161883196575,53.5924583162256,0 -166.964120558706,53.5252292023674,0 -167.184096530186,53.5188386147913,0 -167.162732206163,53.46523104854949,0 -167.304952222225,53.469386166693,0 -167.326071744867,53.40465833799181,0 -167.478546905675,53.4346668217079,0 -167.485228139008,53.3716032751956,0 -167.693324181004,53.3838297493527,0 -167.844705227807,53.3032517050091,0 -167.666947527379,53.2365820132873,0 -167.50075883473,53.2557524931209,0 -167.14356568794,53.4157821216489,0 -166.887459704763,53.4766226296513,0 -166.754708870895,53.4455208405156,0 -166.79105953231,53.5627419533506,0 -166.667708117587,53.48107647241581,0 -166.711318988549,53.5463545080555,0 -166.645219344046,53.5227419042544,0 + + + + + + + + + -166.221353590988,53.7038670268488,0 -166.091950914115,53.83858209335401,0 -166.295237063513,53.7922020429164,0 -166.221353590988,53.7038670268488,0 + + + + + + + + + -167.797253013127,53.4946538567842,0 -168.007523477049,53.5627120027018,0 -168.353939273597,53.4746486015871,0 -168.430644994273,53.3321403605258,0 -168.360903481553,53.2587999987857,0 -168.623432287093,53.2712942239251,0 -168.795959122905,53.1465255981845,0 -168.770404081785,53.0668018455063,0 -168.882379232022,52.9373238815457,0 -169.109577418591,52.8181231444897,0 -168.472312004377,53.0459813460606,0 -168.287531521535,53.23518696940251,0 -167.850843433793,53.37991964170511,0 -167.797253013127,53.4946538567842,0 + + + + + + + + + -174.161329564352,52.4173465495761,0 -174.448532942333,52.3117757493222,0 -174.234619962323,52.2417876137923,0 -174.551313477007,52.17566515917311,0 -174.499368319093,52.1392730972652,0 -174.579630620407,52.0995416658609,0 -174.906888865781,52.1103733142569,0 -175.024350680111,52.0206351056977,0 -175.338269544757,52.0128409429971,0 -174.722148470263,52.00092135872171,0 -174.704053619483,52.0495316507539,0 -174.487641711105,52.0337075891309,0 -174.523535983743,52.0892664372186,0 -174.416045351001,52.03621340759939,0 -174.377077745685,52.0967649619891,0 -174.434361749071,52.1059411985406,0 -174.100971365385,52.1026192836313,0 -174.196532097681,52.2217757888947,0 -174.06545658121,52.22233613257221,0 -173.991825554761,52.32012612452709,0 -174.161329564352,52.4173465495761,0 + + + + + + + + + -176.941084144749,51.58303266917,0 -176.828880061621,51.7127571182365,0 -176.80054534901,51.6027616434207,0 -176.50913716743,51.75194463371049,0 -176.432198194148,51.7288916531697,0 -176.428853207589,51.8350038304907,0 -176.644714643839,51.8558373729491,0 -176.548588214125,51.9086069184368,0 -176.558365467237,51.9822217718073,0 -176.774177292602,51.9438835749084,0 -176.703036371825,51.8513940493333,0 -176.781649967396,51.8233284222627,0 -176.704950850264,51.7819488934334,0 -176.90775033863,51.8049815558199,0 -176.81802202772,51.7685915080144,0 -176.974723222411,51.65635992622221,0 -176.941084144749,51.58303266917,0 + + + + + + + + + -177.910314852892,51.59047529544791,0 -177.799758165034,51.7874482254509,0 -177.621987815149,51.85079803240011,0 -177.836720859072,51.830775770348,0 -177.948676873884,51.9177288521087,0 -178.217598362366,51.8752203024868,0 -177.957791024222,51.7632712434191,0 -178.103365061432,51.66325899768641,0 -177.910314852892,51.59047529544791,0 + + + + + + + + + -171.086945737084,63.43185606043301,0 -170.859425829076,63.4610308912222,0 -170.239896450231,63.2816032134783,0 -169.980209408864,63.1419868776933,0 -169.807940259649,63.1243792330727,0 -169.656273367952,62.9432742913594,0 -169.32793382688,63.1821787502079,0 -168.85259065308,63.1544119515347,0 -168.692896091647,63.3021915417681,0 -169.179314089792,63.2980215630981,0 -170.086003347132,63.484942545381,0 -170.034399159545,63.5357720440057,0 -170.068799574734,63.59466343990179,0 -170.302739504128,63.6932683461877,0 -170.654413587459,63.6768770732034,0 -170.91723822281,63.5704749460102,0 -171.328094629021,63.6329635223434,0 -171.491400520964,63.5957339193976,0 -171.547252137932,63.61379136182811,0 -171.511699513821,63.644074144151,0 -171.405583835479,63.6421242323055,0 -171.637259441321,63.6935021952506,0 -171.681458732656,63.79212811046511,0 -171.739231322516,63.7887922470365,0 -171.743067518046,63.6665666609663,0 -171.853626683584,63.50767023031001,0 -171.733920088359,63.3696018328806,0 -171.451643060199,63.3135104295428,0 -171.086945737084,63.43185606043301,0 + + + + + + + + + -146.098975435796,60.3922217464441,0 -146.582871711614,60.48194370056039,0 -146.72619700343,60.37415032487709,0 -146.488146622944,60.3669390883601,0 -146.679533099071,60.2872162096262,0 -146.604255056572,60.2374977564608,0 -146.098975435796,60.3922217464441,0 + + + + + + + + + -146.939832810504,60.2858229675231,0 -147.100356897737,60.2702597192698,0 -147.01098950104,60.3419328800713,0 -147.195544669344,60.3527127132998,0 -147.194998285425,60.2449363025279,0 -147.698932462331,59.998238098762,0 -147.669518563288,59.9696421838658,0 -147.802841413459,59.9207286473767,0 -147.74309966167,59.8932473711633,0 -147.912320410482,59.7901783714493,0 -147.471865010115,59.8679943519137,0 -147.482391033304,59.9457652379755,0 -147.354015157706,59.974650830779,0 -147.367591626069,60.0260343344061,0 -147.240862729524,60.1285426220118,0 -146.939832810504,60.2858229675231,0 + + + + + + + + + -152.09321930733,58.35956229239359,0 -152.349651908204,58.42067094368999,0 -152.401326751095,58.31511136769269,0 -152.528560208508,58.4128994516293,0 -152.499106717963,58.46206747514319,0 -152.660222888777,58.4765153273738,0 -152.694131998042,58.4217940259965,0 -152.886646268354,58.40679710194,0 -152.765246889149,58.3609633745851,0 -152.762196842929,58.2573461953387,0 -153.01497633051,58.3029033891128,0 -153.108024530252,58.2637421959406,0 -152.906919833977,58.1645579744275,0 -153.183316807584,58.2159594395233,0 -153.233588133808,58.168458272326,0 -152.789154474044,57.9917682947861,0 -152.774714666422,58.0715024038826,0 -152.628558681113,58.0778847599668,0 -152.561621560459,58.2070538088212,0 -152.544962572967,58.08454184222259,0 -152.276595530102,58.1270458940323,0 -152.369647245639,58.1962174010661,0 -152.301313966041,58.18677251900979,0 -152.321883041595,58.24011254350389,0 -152.249365374023,58.2667794628279,0 -152.193822971476,58.1737168446606,0 -152.082424400617,58.1556536633958,0 -151.964615099064,58.2803878924463,0 -151.997120091597,58.34677679987671,0 -152.148252357122,58.23177150573871,0 -152.09321930733,58.35956229239359,0 + + + + + + + + + -133.957575208106,57.2999306224556,0 -133.865044260443,57.3535430899502,0 -133.883659310324,57.4152037032697,0 -133.997003573255,57.4077030325642,0 -133.972832785889,57.4438132059959,0 -134.100063600429,57.463542418998,0 -134.043695992172,57.4749257045984,0 -134.081447329487,57.5010488811349,0 -133.842001299067,57.46020926928861,0 -133.938402776506,57.6207637999747,0 -134.076167554834,57.64493342002491,0 -134.045344599571,57.6832638054914,0 -134.238687661874,57.8585502171943,0 -134.287579179307,57.8268805599159,0 -134.320085300446,57.98799082518951,0 -134.225353387768,57.974655325656,0 -134.321765037636,58.0282670179866,0 -134.263442785345,58.0279929756026,0 -134.311482378999,58.0916001544724,0 -134.157877156027,57.9941038157857,0 -134.233686754406,58.02632246772971,0 -133.961997380694,57.6840954506611,0 -133.792284314077,57.5977071056083,0 -133.877550939366,57.6724301802958,0 -133.89370299145,57.79688143577161,0 -134.179548731905,58.0832706323707,0 -134.170914309207,58.15938399141051,0 -134.687603911476,58.1624308447263,0 -134.805685382384,58.32327545263111,0 -134.958465128962,58.40743493356641,0 -134.947080132696,58.28160068388051,0 -134.881769380662,58.25410422823561,0 -134.914301082702,58.2049317077546,0 -134.790697082353,58.1043764412874,0 -134.730117514791,58.1810463868189,0 -134.805405439918,58.04382140950121,0 -134.662594352631,57.6071637849037,0 -134.575094292963,57.505495352616,0 -134.357859751532,57.5460510439591,0 -134.574269688607,57.489382091108,0 -134.470349504382,57.393274254956,0 -134.306461608469,57.3885481901683,0 -134.342838724527,57.3279942587899,0 -134.55760262103,57.3913290945105,0 -134.45423266739,57.3121574803351,0 -134.583416871363,57.2704935569177,0 -134.513710948128,57.2185443306901,0 -134.635937658008,57.2154927423764,0 -134.580636527385,57.1488262554466,0 -134.614235652727,57.0091002773006,0 -134.361998589183,57.0799386200839,0 -134.083949258277,57.2541004899156,0 -134.176451166759,57.3840975295037,0 -133.957575208106,57.2999306224556,0 + + + + + + + + + -134.517615393878,58.3377167502683,0 -134.684859712071,58.3027160402146,0 -134.609812412179,58.237437904568,0 -134.261496532951,58.194662482636,0 -134.517615393878,58.3377167502683,0 + + + + + + + + + -135.887790019534,57.9876824539146,0 -135.889331207095,57.9882430923176,0 -135.236212858121,57.7796493127647,0 -135.012335588828,57.77660026735799,0 -134.932075089584,57.8066000013056,0 -135.206500034818,57.9418740205317,0 -134.919014995813,57.8393759635417,0 -134.971782736525,57.884930765569,0 -134.907636351669,57.9288225682191,0 -134.943165148215,58.0354884497242,0 -135.4009750495,58.13909549198129,0 -135.649597129609,57.94464407268,0 -135.794325162033,57.98158060065,0 -135.624033073476,58.0093735808823,0 -135.782393411932,58.04575466122969,0 -135.605691580464,58.0435393225676,0 -135.484289639407,58.1552080978682,0 -135.796830557982,58.27714750536251,0 -135.967636201305,58.1596378528532,0 -136.110984291937,58.2188002395108,0 -136.182119004846,58.1774107225691,0 -136.10347341886,58.0568425538623,0 -136.195972322399,58.0804538025948,0 -136.277403970115,58.21851559324281,0 -136.356820128045,58.2123990302342,0 -136.272389453395,58.1043396175859,0 -136.434066033051,58.1073845387818,0 -136.03307863316,57.8429310463068,0 -136.03268191772,57.84267169883249,0 -136.033109150469,57.8428890842789,0 -136.033200700432,57.84292722053191,0 -136.328220829736,57.99072088064611,0 -136.409571703536,57.8334729109361,0 -136.416300816942,57.8204538078362,0 -136.229612994502,57.78378952641571,0 -136.090418506153,57.6823979921437,0 -136.12041269733,57.6168392873428,0 -135.953475811742,57.61602290495031,0 -136.067643439514,57.5954556677553,0 -135.781246849774,57.435464274054,0 -136.012363357593,57.51157079074861,0 -135.841787219458,57.387967670077,0 -135.689838145018,57.36241620095001,0 -135.548754104396,57.45908431950561,0 -135.557639337521,57.53853639185691,0 -135.658474437208,57.55103174644039,0 -135.57235134096,57.58824961560939,0 -135.805428946777,57.6393615053637,0 -135.704866827443,57.67381154319519,0 -135.805980468833,57.76297352330549,0 -134.990080642635,57.4502057541453,0 -134.813441652987,57.4810400866218,0 -134.917057769523,57.7529884536511,0 -135.358714614183,57.7201980945745,0 -135.317878474532,57.7546539201374,0 -135.361765050058,57.7968742744678,0 -135.887790019534,57.9876824539146,0 + + + + + + + + + -153.392819106123,57.1578150625529,0 -153.391170767535,57.20643145913531,0 -152.958362818028,57.2530915629434,0 -153.175313931231,57.2994862801629,0 -153.164205488345,57.3478215097467,0 -152.882211445405,57.34642605123581,0 -152.840561469611,57.2680901886602,0 -152.636131502789,57.31697797220669,0 -152.605271069444,57.3791982816532,0 -152.806662878321,57.4678164159662,0 -153.045573136149,57.43060417565031,0 -152.912502640705,57.4831028238115,0 -152.958891001931,57.5200573093257,0 -152.347467689563,57.4233725014462,0 -152.153561812383,57.60366359353611,0 -152.437464170093,57.60394449275871,0 -152.400805617759,57.68506087717071,0 -152.490505713086,57.6478409937506,0 -152.448292455169,57.72173096290851,0 -152.553037029926,57.69784114934561,0 -152.328554767562,57.8134062911078,0 -152.621331654067,57.927871962996,0 -152.622462543378,57.8556448591787,0 -152.853869887682,57.8348096724795,0 -152.878595074408,57.7261858090174,0 -152.913904236528,57.8287000634449,0 -152.81916240733,57.9162077894716,0 -153.278079373008,58.0045596220204,0 -153.050572070951,57.8306516807021,0 -153.241955697199,57.8956661240209,0 -153.178085376612,57.70342007427299,0 -153.21528625835,57.7875988573807,0 -153.474187509253,57.84176827497921,0 -153.317541094234,57.7250855112453,0 -153.500326749315,57.7670427602638,0 -153.437007068276,57.69926213577829,0 -153.528411518411,57.7156570294804,0 -153.507884215038,57.62536334597479,0 -153.643955782997,57.8892778626483,0 -153.930628240722,57.81039103529171,0 -153.908972766982,57.70705144195041,0 -153.583414253509,57.6117656896339,0 -153.882578113507,57.6423280764322,0 -153.683969758275,57.5439876013445,0 -153.853680824701,57.5667719048222,0 -153.810354333225,57.3998115924684,0 -153.630341204806,57.2686845023703,0 -153.888450770344,57.4042583245669,0 -153.950638769381,57.5412125247074,0 -154.110069105169,57.5378795347469,0 -153.978684337287,57.5634302022874,0 -153.998396328922,57.6345471718585,0 -154.218708248182,57.6676118739352,0 -154.350634759544,57.6445602786002,0 -154.448969719914,57.5790065670673,0 -154.400933151543,57.5637231142094,0 -154.519284391994,57.57789414293061,0 -154.514835023176,57.514284345739,0 -154.550658594089,57.5437295848112,0 -154.730113883423,57.4215049203949,0 -154.707047934222,57.3348240788941,0 -154.809272715575,57.33899206357219,0 -154.755970360023,57.3000986106446,0 -154.803445837976,57.2853800893029,0 -154.609528562857,57.2598123939076,0 -154.529534664763,57.1470105342916,0 -154.532311757881,56.9897688397956,0 -154.32950219126,56.9264276977374,0 -154.30008016783,56.84808676436531,0 -154.238681036045,56.8817013332706,0 -154.294251443901,56.8619803181055,0 -154.297029874472,56.9069791491293,0 -154.163438203307,56.95613855306939,0 -154.103417429726,57.11559563450091,0 -154.268951525716,57.11616265938829,0 -154.386759559577,57.04476898169479,0 -154.465931144176,57.0644946605757,0 -154.468707260557,57.1261689271771,0 -153.967058894421,57.1158684043447,0 -154.111749493078,57.0433557293103,0 -154.098691977589,56.96251930086,0 -153.806771410885,57.1506098413568,0 -153.740073526689,57.1300487421621,0 -153.965662315076,56.9880731527465,0 -153.775662001517,56.9894807020229,0 -154.151738603834,56.745306297826,0 -153.982008831554,56.7378049963996,0 -153.696434400411,56.8658703808307,0 -153.776740001015,56.8894815558602,0 -153.683134178599,56.96836624630329,0 -153.611709562203,56.93336978070661,0 -153.555612176043,56.9775359323464,0 -153.673398711418,57.0089331435034,0 -153.600323689505,57.0472645321852,0 -153.758996313479,57.0453212757416,0 -153.502258936786,57.06309389275109,0 -153.547005002935,57.1706020458441,0 -153.463926171818,57.1105958833284,0 -153.392819106123,57.1578150625529,0 + + + + + + + + + -134.655390098823,56.16266193516189,0 -134.618144450901,56.72075296783309,0 -134.836198024378,57.2477098984344,0 -134.985066734427,57.2943739834285,0 -134.94786612865,57.3204912317811,0 -135.00090756226,57.3424242205839,0 -134.9076129914,57.3293810392095,0 -135.003993227617,57.39937824634809,0 -135.202063988419,57.4243667978265,0 -135.167614227587,57.4782546176544,0 -135.399577332086,57.43853182026469,0 -135.282362988664,57.50353572125369,0 -135.314560394456,57.5324206439867,0 -135.515980155977,57.50686692896049,0 -135.526763730078,57.4355063346253,0 -135.608993614038,57.3915869239882,0 -135.471227782637,57.35048074915841,0 -135.674301743083,57.3460283249175,0 -135.533996348433,57.2293590299236,0 -135.339528178816,57.24797514037449,0 -135.407892185235,57.149359849847,0 -135.265949930375,57.1635212027263,0 -135.368705279018,57.13768568696531,0 -135.366754331069,57.0799148721586,0 -135.166222094001,57.03435932771279,0 -135.353146706062,56.9657378769552,0 -135.290095163457,56.8915651144635,0 -135.37063531312,56.8326799981141,0 -135.267052599399,56.7829503719904,0 -135.121759003476,56.8271083988409,0 -135.190087704398,56.6746065599045,0 -134.993985703814,56.7559900047218,0 -135.124259832988,56.6643189364556,0 -135.117028453893,56.5982112952072,0 -134.982325180215,56.7165374337488,0 -134.938986731009,56.70959462499059,0 -134.967306048374,56.6243134079946,0 -134.849536248518,56.6851559009392,0 -135.04843148949,56.5279410141079,0 -134.655390098823,56.16266193516189,0 + + + + + + + + + -135.702071692228,57.31658350148879,0 -135.848737784871,57.3162950258433,0 -135.819830984012,57.1724005616461,0 -135.710673710214,57.16101811328251,0 -135.825941290601,57.08296744204201,0 -135.839567402382,56.98768513709851,0 -135.630940067482,57.0040823307003,0 -135.547885999691,57.1290749917056,0 -135.626468170496,57.2313048151095,0 -135.557617899884,57.2288021287352,0 -135.702071692228,57.31658350148879,0 + + + + + + + + + -133.053390351289,56.97714702524889,0 -133.295335943079,57.0035431619298,0 -133.263967207313,56.921597824843,0 -133.327012360802,56.99660004634231,0 -133.874777973322,57.0857684838486,0 -134.019794733821,57.0143800263991,0 -133.737848765029,56.8927133973155,0 -133.892286836687,56.89660507320559,0 -133.758142051845,56.8032670452989,0 -133.674524574542,56.8588218466323,0 -133.708694348619,56.6774253399436,0 -133.636774891098,56.5935236773375,0 -133.691770840668,56.5688039494711,0 -133.64678569721,56.5632491498276,0 -133.649284380709,56.44324265313329,0 -133.577317500634,56.4332418446354,0 -133.420628593758,56.4543573216183,0 -133.430916371492,56.5015848315803,0 -133.165638033928,56.4532574359425,0 -133.083664796878,56.5235347698413,0 -133.16869155086,56.6018765654634,0 -133.099228250559,56.6154861711796,0 -133.240900578007,56.6313190633306,0 -133.213402182837,56.7085454496965,0 -133.307307907679,56.7310369094801,0 -133.353662566436,56.8382616228604,0 -133.023660190709,56.60158768688681,0 -132.933113453353,56.62963672016491,0 -132.991442138356,56.8068656402117,0 -132.929514313144,56.85993278567031,0 -133.053390351289,56.97714702524889,0 + + + + + + + + + -133.965053500888,56.0812846387448,0 -133.949532594346,56.1993380950511,0 -133.889538107293,56.2229461297938,0 -133.985913933344,56.2685074429714,0 -133.975081289917,56.3557286565983,0 -133.855639708513,56.2787890098363,0 -133.911217854205,56.4249043104871,0 -133.827331752229,56.4354582647604,0 -133.919269867011,56.5007461483316,0 -133.84536471409,56.5715815218498,0 -133.922319509601,56.61380613150769,0 -133.740357493661,56.5601902175525,0 -133.693143667676,56.5993612801202,0 -133.777599003147,56.68408751817189,0 -133.71950858496,56.76632429300031,0 -133.870588709108,56.80798733009279,0 -133.863944657176,56.7232586211923,0 -134.026461131389,56.6468690221748,0 -133.924249122697,56.7146518323975,0 -133.927565910471,56.8015933528073,0 -133.995314810369,56.8740975598163,0 -134.265369544411,56.9365981258875,0 -134.108653970181,56.8427125267546,0 -134.323113030551,56.89354402635881,0 -134.275073004361,56.7952062642112,0 -134.401488715667,56.8524345106823,0 -134.39507837938,56.721027401109,0 -134.319237656557,56.6571429239125,0 -134.21922545052,56.68936574637091,0 -134.25313312881,56.61241667872861,0 -134.087853561236,56.6415889087553,0 -134.308129021304,56.55991421694611,0 -134.136176047703,56.4865748914152,0 -134.070057576607,56.5549111134315,0 -134.030355630414,56.4779613707181,0 -134.051178620872,56.3590608770302,0 -134.109756002829,56.404893993373,0 -134.162003776525,56.3668357027912,0 -134.181166136765,56.4362848660458,0 -134.282583452658,56.35572867521411,0 -134.282858184556,56.29100338056829,0 -134.161737695775,56.3071164027922,0 -134.266469746057,56.2557221446709,0 -134.19396891759,56.1554373413353,0 -134.222558799251,56.0662779394883,0 -134.10838665314,55.99877467092719,0 -134.098392346662,56.13405286884341,0 -134.187285962481,56.1762738974224,0 -134.100896606441,56.1743295187135,0 -134.054234375292,56.3121155888509,0 -134.037872866435,56.1051697427204,0 -133.965053500888,56.0812846387448,0 + + + + + + + + + -132.803653271279,56.7860406631428,0 -132.965623026439,56.7960384089399,0 -132.883371065593,56.63658603825431,0 -132.958107536577,56.5938039676218,0 -132.941722525003,56.5093749050577,0 -132.77478501171,56.4943701849766,0 -132.720307664077,56.51104060003691,0 -132.751711841031,56.5524291958232,0 -132.532549684115,56.5774334872854,0 -132.803653271279,56.7860406631428,0 + + + + + + + + + -132.337804742749,56.4796479168462,0 -132.351410271693,56.2779733052681,0 -132.303891788458,56.23185224300391,0 -132.057810279652,56.1110312765749,0 -131.923350207348,56.1968613620864,0 -132.005320495176,56.3363150729862,0 -132.162510728277,56.35271056708941,0 -132.337804742749,56.4796479168462,0 + + + + + + + + + -132.704770567567,56.4557558769931,0 -132.94199544313,56.4474232469974,0 -133.058116273752,56.34186597005931,0 -132.846704640205,56.2313025143395,0 -132.678911140644,56.265194266468,0 -132.615862536329,56.3960369708995,0 -132.704770567567,56.4557558769931,0 + + + + + + + + + -132.473629816734,55.4956310263753,0 -132.679719350735,55.45241862597041,0 -132.511407662042,55.54434856852371,0 -132.564164976718,55.56740551658349,0 -132.54167897639,55.62267443054111,0 -132.170838611909,55.4462957108967,0 -132.145846340898,55.48018516651531,0 -132.292514962732,55.5362972126054,0 -132.381658844606,55.6690745363953,0 -132.43750143704,55.62295141204839,0 -132.494455201912,55.8137888383967,0 -132.727249633493,55.9896261855393,0 -133.07977593669,56.0521307665152,0 -133.139777228451,56.1165798525176,0 -133.02560945371,56.17630236381051,0 -133.062263586948,56.2415816619357,0 -133.19004887376,56.3299235454034,0 -133.315357554346,56.268800793561,0 -133.325614659178,56.3260292056157,0 -133.61228727968,56.347965527419,0 -133.567024527926,56.2965818491482,0 -133.634501861361,56.2762929803267,0 -133.618961621055,56.2071307850696,0 -133.260081564169,56.1521335393027,0 -133.243074688433,55.9040773845479,0 -133.138127044496,55.8860245400076,0 -133.23754189305,55.7465804895886,0 -133.37615160236,55.7226835545753,0 -133.354775293627,55.6096422847126,0 -133.255343820772,55.5732672002313,0 -132.910012881953,55.62767934202989,0 -133.070291462572,55.57381871290261,0 -133.129162418082,55.48909814092829,0 -132.978863011846,55.4471413353351,0 -133.066673173097,55.42687676268089,0 -132.996925024154,55.37548237298839,0 -132.849146903782,55.3513096666384,0 -133.195557926044,55.3843846854707,0 -133.262237187007,55.338542897477,0 -133.224168561559,55.28270625695009,0 -132.902215409303,55.27936613145881,0 -133.00445539989,55.2027070068706,0 -132.805813469614,55.2676990584202,0 -132.780003734642,55.18214560133369,0 -132.668314485378,55.1376954523282,0 -132.6108193845,55.16770051950649,0 -132.643042098791,55.2499234651439,0 -132.561385789951,55.1651892675163,0 -132.616375834907,55.06102783419279,0 -132.558333985001,55.121579846662,0 -132.460284625051,55.0432598989252,0 -132.574447864736,55.03686586037011,0 -132.533892510768,55.0157557734575,0 -132.599167402473,54.9682495266191,0 -132.532244803687,54.9324231053301,0 -132.454455006163,54.9849207048602,0 -132.468890169137,54.9021439129136,0 -132.380539086856,55.0160426535456,0 -132.38972563036,54.9238205404531,0 -132.267215000166,54.8390908310718,0 -132.354993457072,54.7990961593044,0 -132.216372992666,54.7935437432705,0 -132.290567059779,54.7143740502258,0 -132.005588168986,54.6902065830742,0 -132.00808092862,54.77937406180979,0 -131.951107308284,54.7879884436014,0 -132.053591791598,54.88964696896679,0 -131.973584427767,54.8946508448921,0 -132.012494945198,54.9677027506031,0 -131.964713272955,55.0254793599214,0 -132.220242594699,54.9921503362437,0 -132.074439530657,55.0388147632961,0 -132.09666166884,55.1032539199795,0 -131.998898502072,55.1004760308858,0 -131.970272255287,55.2260267816124,0 -132.012233665231,55.27241195988161,0 -132.089163684845,55.2007477996744,0 -132.240833958891,55.1926907080504,0 -132.24111473813,55.254356826834,0 -132.086939465791,55.262141472882,0 -132.155026728468,55.36296879775981,0 -132.254761054598,55.4099105863851,0 -132.470277519184,55.38435982041161,0 -132.261689745631,55.44212929019011,0 -132.473629816734,55.4956310263753,0 + + + + + + + + + -132.391971869653,56.335755916154,0 -132.517527648792,56.33824914076529,0 -132.605023777277,56.2310204946758,0 -132.696154225093,56.22185739992919,0 -132.697527893107,56.1074122964528,0 -132.636704224386,56.0488018182385,0 -132.381659614072,56.0260228574646,0 -132.427256528788,55.9557383376468,0 -132.340003253304,55.91351910572829,0 -132.181674158052,55.9657578776832,0 -132.129461406089,55.9279855386802,0 -132.20165657928,56.0851990051386,0 -132.108892738952,56.1154780279142,0 -132.351103317239,56.2163019256758,0 -132.480018741747,56.1896282759591,0 -132.396698920251,56.2215729603744,0 -132.391971869653,56.335755916154,0 + + + + + + + + + -133.287273107465,56.1285193821479,0 -133.619502154891,56.1304525817666,0 -133.48671406159,56.0857359491733,0 -133.681447788994,56.0660107829683,0 -133.791729083627,55.9207261405941,0 -133.620043513236,55.919061854864,0 -133.478932635933,56.0223882122985,0 -133.319218200846,55.9935160016486,0 -133.287273107465,56.1285193821479,0 + + + + + + + + + -131.606390952927,55.3196460287417,0 -131.523626715678,55.2927065288402,0 -131.468332286741,55.3554813742488,0 -131.52170762436,55.4760277540251,0 -131.445019503467,55.528250482074,0 -131.463631605047,55.3277029912542,0 -131.334456177303,55.4196456731968,0 -131.350571344767,55.64464241181071,0 -131.271713839534,55.4371488045966,0 -131.460852754343,55.2810343109492,0 -131.294748784321,55.2735377996958,0 -131.2275245322,55.40575586235,0 -131.217511188806,55.3052092167966,0 -131.30835800415,55.23465101592841,0 -131.144480086509,55.1966008747307,0 -131.049755471481,55.2671577795751,0 -131.028368522801,55.40548407558649,0 -130.968096037624,55.39104255594939,0 -130.936975175112,55.6418758266987,0 -131.233359128882,55.9535154492386,0 -131.573925118381,55.9060133913691,0 -131.436689960392,55.8399076996699,0 -131.685586778521,55.8329621887154,0 -131.482526533927,55.7868537297797,0 -131.711127678552,55.731844891488,0 -131.514751885925,55.72601811835991,0 -131.693639807928,55.67629611216431,0 -131.705845849057,55.61935110632449,0 -131.616399342546,55.5971281281129,0 -131.645025074528,55.544914787606,0 -131.825290358462,55.4549105391298,0 -131.606390952927,55.3196460287417,0 + + + + + + + + + -131.821140484584,55.4124099903551,0 -131.866945741921,55.3679685469814,0 -131.824461228231,55.2113141461293,0 -131.726683471567,55.1343743438445,0 -131.761688966383,55.247423370327,0 -131.61832179154,55.28326142836379,0 -131.821140484584,55.4124099903551,0 + + + + + + + + + -131.468907428577,55.2354796515061,0 -131.585300708148,55.2515918113963,0 -131.518646304163,55.1282585208495,0 -131.594176648462,55.1063159605734,0 -131.59972753219,54.9949305405507,0 -131.521695860182,55.0327112599271,0 -131.537505218119,55.0907610434156,0 -131.476956765629,55.0004939338339,0 -131.356659978778,55.0352158428158,0 -131.375005668955,55.1965953318301,0 -131.468907428577,55.2354796515061,0 + + + + + + + + + -133.103853177495,55.24520299191451,0 -133.215824492689,55.1696372711329,0 -133.118282231733,55.1015854493073,0 -133.215270801953,55.09463634472111,0 -133.150270403124,54.94379737397,0 -132.90693534583,54.83630882934499,0 -132.955276675812,54.7918753410748,0 -132.841932044642,54.6890880966602,0 -132.670272461523,54.6638099069197,0 -132.758897152011,54.7393706689813,0 -132.716661409724,54.7646540373054,0 -132.756667768137,54.8218741407807,0 -133.081358213392,55.0854740462953,0 -132.957493060247,55.061865465254,0 -133.103853177495,55.24520299191451,0 + + + + + + + + + Arizona + empty + + +states.AREA: + 113712.679 + + +states.STATE_NAME: +Arizona + + +states.STATE_FIPS: +04 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +AZ + + +states.POP2000: + 5130632 + + +states.POP2001: + 5312024 + + +states.POP00_SQMI: + 45 + + +states.DEN_0_100: + 96 + + +USStates.ID: + 48 + + +USStates.State_Name: +Arizona + + +USStates.Date_Entered: +Feb. 14 1912 + + +USStates.Year_Entered: +1912 + + +USStates.Year_Settled: +1776 + +]]> + #Style_5 + + + -111.664591949232,34.2916834221835,0 + + + + + + -114.520627661734,33.0277074359678,0 -114.46838719789,32.9777894659032,0 -114.476443984447,32.9359088466692,0 -114.461436322021,32.8454225112401,0 -114.52621949202,32.8099123509472,0 -114.535077445153,32.7880470474354,0 -114.530095237266,32.7714115230303,0 -114.543187695964,32.7712322843312,0 -114.543004547133,32.7607497409074,0 -114.561582708233,32.7607536245719,0 -114.560751027253,32.7489359768297,0 -114.572210733513,32.7488292120028,0 -114.571958909536,32.7374388920444,0 -114.603522692176,32.7358864782619,0 -114.603942285241,32.7262851953269,0 -114.694040667724,32.7414255804573,0 -114.712695098447,32.7350133484495,0 -114.722048985451,32.7208574919907,0 -114.809393825306,32.6160446571158,0 -114.821761241294,32.4871692613767,0 -113.329111283827,32.0436210627154,0 -111.369520893713,31.4315316679729,0 -111.071964747137,31.335634013396,0 -110.45257840211,31.3376602308857,0 -109.045615049533,31.3434530504803,0 -109.049495308693,32.4420444958635,0 -109.051346155985,32.7795505537932,0 -109.050525833602,33.205164822801,0 -109.050349253456,33.7833019238717,0 -109.048652751175,34.5917805775226,0 -109.046640810431,34.9546462439613,0 -109.047846506598,35.9966639816639,0 -109.048480115363,36.9966409005893,0 -109.997076712711,36.9920675592929,0 -110.452235819472,36.9917463039985,0 -110.484088956249,37.0039260237973,0 -110.740062961138,37.002488042411,0 -111.356163994142,37.0017097524257,0 -112.2372578615,36.9954921751891,0 -112.542521578828,36.9979944864436,0 -112.899983474169,36.9962268765574,0 -114.043939384154,36.9965379371421,0 -114.043716435713,36.8418489458646,0 -114.037392074194,36.2160228969701,0 -114.045105557286,36.1939778840226,0 -114.107775185788,36.1210907070504,0 -114.12902308363,36.041730493896,0 -114.206768869568,36.0172554164833,0 -114.233472615347,36.0183310595898,0 -114.307587598189,36.0622330993642,0 -114.303857056018,36.0871084040611,0 -114.316095374696,36.1114380366653,0 -114.344233941709,36.1374802520567,0 -114.380803116644,36.1509912717764,0 -114.443945697733,36.1210532841896,0 -114.466613475422,36.1247112590538,0 -114.530573568745,36.1550902046726,0 -114.598935242024,36.1383354528833,0 -114.621610747198,36.1419666834504,0 -114.712761724737,36.1051810523675,0 -114.728150311069,36.0859627711603,0 -114.728966012834,36.0587530361082,0 -114.717673567756,36.0367580437019,0 -114.736212493583,35.9876483502758,0 -114.699275906446,35.9116119537411,0 -114.661600122152,35.8804735854241,0 -114.662462095522,35.870959907009,0 -114.689867343369,35.8474424944765,0 -114.682739704595,35.7647034175617,0 -114.688820027649,35.7325957399896,0 -114.665091345861,35.6930994107106,0 -114.668486064922,35.6563989882403,0 -114.654065925137,35.6465840800051,0 -114.6398667219,35.6113485698329,0 -114.653134321223,35.5848331056106,0 -114.649792053474,35.5466373866596,0 -114.672215155693,35.5157541647721,0 -114.645396168451,35.4507608261464,0 -114.589584275424,35.3583787306827,0 -114.587889840369,35.30476812919,0 -114.559583045727,35.2201828714608,0 -114.561039964055,35.1743461616312,0 -114.572255261053,35.1400677445931,0 -114.582616239058,35.1325604694084,0 -114.626440825485,35.1339067529871,0 -114.6359090842,35.1186557767895,0 -114.595631971944,35.0760579746697,0 -114.633779872695,35.0418633504303,0 -114.621068606189,34.9989144286133,0 -114.632276529502,34.9976517256292,0 -114.621007388662,34.9436098418844,0 -114.630475658748,34.9195012881626,0 -114.627263440015,34.8755338147028,0 -114.570216833129,34.8318604389449,0 -114.542040692552,34.7599586200401,0 -114.525553173554,34.7489115709666,0 -114.497804378448,34.744757644472,0 -114.465637688895,34.7098730189755,0 -114.422270356442,34.6108950917792,0 -114.434302240724,34.5989628909914,0 -114.409742349408,34.5837235617841,0 -114.376827822772,34.5365634767276,0 -114.38386203177,34.4770856153635,0 -114.376506947621,34.4596793685379,0 -114.332636412337,34.4548730796034,0 -114.302865366738,34.4357541377741,0 -114.283394304634,34.4120690064366,0 -114.257842521563,34.4054888215522,0 -114.182079822361,34.3652063649643,0 -114.153414997679,34.3364477645527,0 -114.134127057818,34.3145478754142,0 -114.125230507624,34.2726209662778,0 -114.149912368725,34.2669789901846,0 -114.235775821971,34.1862227475521,0 -114.285368523229,34.1712309584447,0 -114.322799430739,34.1412972664816,0 -114.410166357368,34.1026543641334,0 -114.424029195647,34.0783320579769,0 -114.428980324296,34.0298439872115,0 -114.518208552815,33.9650630904256,0 -114.525632127364,33.9524137553973,0 -114.49818809185,33.925036256846,0 -114.520962184241,33.8629263802443,0 -114.511722548733,33.84196501578,0 -114.521122162519,33.8260312846707,0 -114.504557871757,33.7717148133963,0 -114.510287510185,33.7432004976418,0 -114.49567644704,33.708369427689,0 -114.53643355935,33.6827352282095,0 -114.525263594507,33.6655047006994,0 -114.527170510583,33.6221365140121,0 -114.54024720611,33.5805077718081,0 -114.52942054662,33.5600729749772,0 -114.58706170624,33.5094455578288,0 -114.598086338819,33.4861269505736,0 -114.621089578986,33.4685989080523,0 -114.630573116436,33.4394249456214,0 -114.645092242143,33.4191160810556,0 -114.724936284952,33.4110596377436,0 -114.703603782165,33.3524180309387,0 -114.735426988668,33.3057084351637,0 -114.677693392037,33.2680165177413,0 -114.687711074888,33.2392582971895,0 -114.680050859029,33.2245949425206,0 -114.678120399612,33.1672499413879,0 -114.709463019649,33.122374935038,0 -114.711355133911,33.0953827798915,0 -114.663951695926,33.0389226888334,0 -114.645159759737,33.0444118730784,0 -114.633966945552,33.0335669165654,0 -114.609925720105,33.0270019226895,0 -114.559089057602,33.036782479158,0 -114.520627661734,33.0277074359678,0 + + + + + + + + Arkansas + empty + + +states.AREA: + 52913.232 + + +states.STATE_NAME: +Arkansas + + +states.STATE_FIPS: +05 + + +states.SUB_REGION: +W S Cen + + +states.STATE_ABBR: +AR + + +states.POP2000: + 2673400 + + +states.POP2001: + 2706444 + + +states.POP00_SQMI: + 51 + + +states.DEN_0_100: + 96 + + +USStates.ID: + 25 + + +USStates.State_Name: +Arkansas + + +USStates.Date_Entered: +June 15 1836 + + +USStates.Year_Entered: +1836 + + +USStates.Year_Settled: +1686 + +]]> + #Style_5 + + + -92.43380149123649,34.8979530772317,0 + + + + + + -94.4616914490383,34.1967651932869,0 -94.46858488730931,33.9393114556774,0 -94.4766912623089,33.6320818342933,0 -94.43611697644781,33.6365609097961,0 -94.43653636903311,33.6169611431123,0 -94.45175731380159,33.6044640316868,0 -94.4435324861232,33.5966212153736,0 -94.4286699913841,33.5972585244972,0 -94.4067726989127,33.573604181729,0 -94.39361925175989,33.5750768821217,0 -94.3793139265706,33.5934447272787,0 -94.3708297502542,33.5901604561683,0 -94.3725080674424,33.572780843886,0 -94.39546544841208,33.5604209193152,0 -94.37095896843239,33.5478024921997,0 -94.3289505742182,33.5732546607845,0 -94.3025824334982,33.5570543333588,0 -94.29901964868971,33.5799728047754,0 -94.2791827367037,33.5894525566594,0 -94.2722778801038,33.5847263352945,0 -94.2747420062796,33.5618574981634,0 -94.23743339566499,33.5925430254688,0 -94.22323450525521,33.5858408096426,0 -94.2355638087854,33.5616558979989,0 -94.21108015408862,33.5581084763103,0 -94.2055412868951,33.5852000838157,0 -94.15970992753351,33.5938939861439,0 -94.15536074810458,33.5672068241928,0 -94.0988935992895,33.5731199456262,0 -94.0868464522719,33.5840756635432,0 -94.06162268858441,33.5773354007315,0 -94.03611649002102,33.5560347014808,0 -94.0366915600887,33.2704528989066,0 -94.03893174127671,33.0234224077489,0 -93.80993110790152,33.0227288720053,0 -93.51191556362819,33.0212876651865,0 -93.47907035507552,33.0215281738969,0 -93.23254316119119,33.0193748877236,0 -92.9789895151482,33.018274750609,0 -92.7172364845049,33.0168395771589,0 -92.0634416757442,33.0101515495777,0 -91.45447032530612,33.0139992001305,0 -91.42764466910239,33.0135450807442,0 -91.25472755144671,33.0136011241739,0 -91.1622413295772,33.0131626211682,0 -91.16078409477549,33.0218332391698,0 -91.1567938514993,33.040555368368,0 -91.1240933135817,33.0473950555076,0 -91.1178981011678,33.0656937749518,0 -91.1468983565878,33.0907747749873,0 -91.19064668515279,33.1133457020205,0 -91.19561365046539,33.1405858277008,0 -91.1777374599034,33.1504085143774,0 -91.12143839042092,33.1311906845818,0 -91.09596309376539,33.1452056628518,0 -91.08642608991831,33.1617229779066,0 -91.09211028743471,33.2258161142148,0 -91.05464881790898,33.2459002185311,0 -91.0405340548071,33.2820400168761,0 -91.0539393519749,33.2936936328911,0 -91.07643152692042,33.2924766671242,0 -91.10301308177489,33.249329353099,0 -91.1226136683412,33.2686236274109,0 -91.1418557768241,33.3225012621225,0 -91.13053349445238,33.3595184071126,0 -91.107049532132,33.3935220665091,0 -91.0787969781513,33.4102951070005,0 -91.0616226774054,33.4319126666717,0 -91.0610886583117,33.4601256250454,0 -91.07386834518309,33.4663205040007,0 -91.08590793517429,33.4629711994008,0 -91.09923682479071,33.4150136902789,0 -91.13774359783101,33.3889939554845,0 -91.1850932093454,33.3919462343914,0 -91.2042742333541,33.414414252442,0 -91.19894113644132,33.4222266229444,0 -91.13062529226629,33.4432379167019,0 -91.11982172873771,33.4529461878788,0 -91.11906643910299,33.4697877493532,0 -91.12890876375178,33.4933048406628,0 -91.16508870848941,33.511893278083,0 -91.17429002799679,33.5044814214406,0 -91.1718407642763,33.4667586515282,0 -91.1818813238998,33.4475023901927,0 -91.23296184460889,33.4435578002255,0 -91.2272625589118,33.4595677906787,0 -91.20775358321031,33.4735103338542,0 -91.18051588058511,33.5121258753279,0 -91.1829574461633,33.5234628974492,0 -91.20421377208162,33.5386182116453,0 -91.21359825583821,33.539388695493,0 -91.2277437480702,33.5564627810534,0 -91.2268436629257,33.5905920919159,0 -91.18791706051998,33.5747923198036,0 -91.16813338054911,33.5773559141775,0 -91.15076092012042,33.6162728236941,0 -91.1545148512779,33.6371425699443,0 -91.20542010320271,33.670054473021,0 -91.21525485495199,33.690832533146,0 -91.2117911105934,33.7090740491267,0 -91.16341157255451,33.7184243604201,0 -91.1211582957132,33.6776390014341,0 -91.08387971624239,33.6626975706472,0 -91.03794174479148,33.6833276928149,0 -91.0389337685444,33.7056013490966,0 -91.0563218415079,33.7194673047115,0 -91.1046784705554,33.7083431494327,0 -91.129055226842,33.7125503367781,0 -91.1381116937944,33.7233341453239,0 -91.1430026284613,33.7719285490089,0 -91.1370973386382,33.7801949325541,0 -91.10552584181519,33.7765486562049,0 -91.06650027762299,33.7866351498749,0 -91.04351203531321,33.7696642449716,0 -91.01854016459431,33.7640838422967,0 -90.99548340691879,33.7716600260669,0 -90.9841458001964,33.7854500107548,0 -90.99047854078901,33.7990071442826,0 -91.0289626430975,33.8166950131436,0 -91.0549265134198,33.8436334807269,0 -91.06148054411389,33.8671886882777,0 -91.01857194440652,33.9364134475297,0 -91.075817398803,33.9747494464877,0 -91.08896340340431,33.9945738225001,0 -91.0698054890087,34.0062011888095,0 -91.03116883753491,33.9858050201095,0 -91.0096532951119,33.9906347187545,0 -91.0003678622968,33.9684795241317,0 -90.9869243510316,33.9609229307681,0 -90.96489758467079,33.9675683195034,0 -90.9612354430936,33.9789817484763,0 -90.9753809466784,33.9947130844006,0 -90.9734737113361,34.0111046201452,0 -90.95057738634012,34.0313950359426,0 -90.88645032093149,34.040818090639,0 -90.86643858092512,34.1010591014266,0 -90.90641792332421,34.1028552934255,0 -90.9423538254879,34.1260478667544,0 -90.9534553235284,34.1559087583442,0 -90.92902561447708,34.1857547898992,0 -90.84671660873281,34.1476512964452,0 -90.82897009057919,34.1487653755381,0 -90.80761499232,34.1662785963789,0 -90.8230272013098,34.1906501116551,0 -90.9215946009177,34.2049348828191,0 -90.93381765059741,34.2347805101336,0 -90.9285457793972,34.2502985218322,0 -90.86351805053698,34.2192670758548,0 -90.8314661258313,34.2296393889001,0 -90.82394433723711,34.277444457808,0 -90.80652652929172,34.2994512329978,0 -90.7926330280344,34.3000616903072,0 -90.75836020093259,34.2790815153021,0 -90.74786301501229,34.3178229839966,0 -90.7619638892818,34.364018026031,0 -90.75541794936311,34.3722691135712,0 -90.6875906711157,34.3779766258423,0 -90.6812424323426,34.3635040042302,0 -90.68948128142971,34.3202498232312,0 -90.6794406527353,34.3180794258637,0 -90.65791781402791,34.3301110369,0 -90.6573464859749,34.3660143325751,0 -90.60389412048508,34.4047029797656,0 -90.57922804447659,34.4331032095237,0 -90.57450570771368,34.4540494001334,0 -90.59015506208731,34.4966090201687,0 -90.5804501933474,34.5203246797393,0 -90.5657859528414,34.5326117672652,0 -90.53725095298539,34.5434303779675,0 -90.5307199720464,34.5557516818131,0 -90.5777188709607,34.6048453840045,0 -90.58809525009498,34.6279161438152,0 -90.57940507832259,34.6457114581828,0 -90.56116263432628,34.7003866360947,0 -90.53916630258439,34.6860476391663,0 -90.54765041882089,34.6519066940829,0 -90.5390670140484,34.6369954120314,0 -90.5089145701068,34.6381667803775,0 -90.4663261216033,34.6721400223716,0 -90.4700800044602,34.7043544473312,0 -90.5136680230595,34.702168426854,0 -90.53338308133611,34.7133527478315,0 -90.5478489155079,34.7904345448067,0 -90.5273632829947,34.8074211116658,0 -90.51614770215419,34.8057007952067,0 -90.5013843558158,34.7899313101001,0 -90.49883609775949,34.7658840525447,0 -90.5170709695817,34.7484702598375,0 -90.5045201438459,34.7299541802284,0 -90.48602595176961,34.7269330960027,0 -90.45153258063928,34.7412990973377,0 -90.4489690543041,34.7608489921917,0 -90.46680699538459,34.7997617150697,0 -90.45200553728539,34.8253158387959,0 -90.4748179857494,34.8578237977629,0 -90.47062930169579,34.8810204416072,0 -90.43818824405589,34.8862771531433,0 -90.4279417146019,34.8727391673229,0 -90.433648709805,34.83545134437,0 -90.4224103169264,34.8323653841601,0 -90.4040306027044,34.8411352642473,0 -90.34152127876421,34.8606740294564,0 -90.3229203349016,34.8503632334111,0 -90.30164901403768,34.851873932935,0 -90.2995432252211,34.8650572468814,0 -90.2963692858759,34.8827875862869,0 -90.2668045737091,34.8966081006537,0 -90.24293921036021,34.9208271417899,0 -90.24199312177619,34.9389999550718,0 -90.2482645856439,34.9498563938362,0 -90.2996040912406,34.9785763166455,0 -90.3054483329108,35.0007887668604,0 -90.2919059359036,35.0485515081083,0 -90.1958038569539,35.0409907485114,0 -90.16917671881551,35.077919742991,0 -90.17843898741448,35.1087380390639,0 -90.16456841965839,35.1297030327121,0 -90.1438236047204,35.1366264117644,0 -90.08301595591442,35.1251401960811,0 -90.0646285866633,35.1474746627476,0 -90.0625227286411,35.1670054991279,0 -90.07339477195561,35.1919226486873,0 -90.06905343928681,35.2128267350657,0 -90.09019489682149,35.2544862571621,0 -90.1060339420871,35.2639351079375,0 -90.15221595869851,35.2641450857902,0 -90.16984033490409,35.2826536313127,0 -90.15708359885721,35.3063308609086,0 -90.10643821193109,35.3147724206286,0 -90.0987932747814,35.3456783695846,0 -90.10571329777039,35.3660674829239,0 -90.08722669387278,35.3815928956868,0 -90.0755685711721,35.4066128988494,0 -90.0852505380296,35.4183657399664,0 -90.11233571142539,35.4177745418272,0 -90.1325618654474,35.4076849496077,0 -90.14026019209219,35.3831303299536,0 -90.16790994055501,35.3843396369312,0 -90.172769972754,35.423801771155,0 -90.1373684773254,35.4426077096675,0 -90.10205086268928,35.4736509299937,0 -90.0823206223606,35.4782894580097,0 -90.0749351519039,35.472426386111,0 -90.07402733802461,35.4265900144844,0 -90.06038559986169,35.4134944197412,0 -90.0468735226389,35.4171869306731,0 -89.9996536673638,35.4455370247156,0 -90.04190641166632,35.5125217072751,0 -90.0409909024943,35.5429279718505,0 -90.033140016861,35.5524950078149,0 -89.9896739843436,35.5617568588755,0 -89.96235991331029,35.5323728966608,0 -89.94763474177211,35.5269828473763,0 -89.9312615752134,35.5293135817598,0 -89.92174743757781,35.5461398658448,0 -89.95811786552559,35.5786747060615,0 -89.9571336550073,35.6031836149856,0 -89.8775260946092,35.6334146146124,0 -89.8639224643906,35.6298250835587,0 -89.84928118822251,35.6453010408611,0 -89.8573304296374,35.6711412777364,0 -89.8652652485346,35.6733842535304,0 -89.89348727560559,35.6560505384628,0 -89.92982722280721,35.6763442141411,0 -89.95212103232031,35.7125639320478,0 -89.9511215579288,35.7343453953471,0 -89.9098681003284,35.7549139790981,0 -89.8599549641379,35.7482691273072,0 -89.8271246329774,35.7583474945228,0 -89.7999860359764,35.7743003646228,0 -89.79046432453561,35.8056299093077,0 -89.7598771117723,35.817497369678,0 -89.7360192984694,35.807113985821,0 -89.70090799570041,35.8275908326828,0 -89.7015183934478,35.8421131136063,0 -89.757794357037,35.8714934051126,0 -89.7663548523295,35.8841769773396,0 -89.7629902111739,35.8968873309185,0 -89.7380566602412,35.9150869770193,0 -89.71476351078169,35.9115011809885,0 -89.6647286073305,35.8857218407663,0 -89.64941603650951,35.8943619363869,0 -89.6454792006079,35.9138737361357,0 -89.66427092678561,35.9378944702657,0 -89.71321482606381,35.9663974567816,0 -89.7218363447502,35.9999509241088,0 -89.9632916378976,35.9969088479974,0 -90.2835541915351,35.9912280026278,0 -90.3790621785177,35.9896564265848,0 -90.31533967165498,36.0917234028765,0 -90.284851770393,36.115972708427,0 -90.26380164514022,36.1188298079555,0 -90.2349388507527,36.1371551620637,0 -90.2323220265841,36.1612137930848,0 -90.219321206522,36.1726309521804,0 -90.16140488324341,36.1970066414864,0 -90.13131377418432,36.2121355814949,0 -90.1100122336982,36.2580597893355,0 -90.0661877402538,36.2723382893607,0 -90.04984511692381,36.3005360471466,0 -90.06772899503081,36.3253957469489,0 -90.05029531239092,36.3626684522717,0 -90.05215696164839,36.3826150505682,0 -90.08027223924928,36.397449931407,0 -90.1169251070973,36.4049759827803,0 -90.1239291860565,36.4226261953142,0 -90.1173219969686,36.4539556960145,0 -90.13737277191632,36.4574765175037,0 -90.15025942109908,36.4918729268599,0 -90.22447328203479,36.4928111285523,0 -90.5817321666723,36.4910222747631,0 -90.8044338516289,36.4892654684767,0 -91.13395636436511,36.4880156921504,0 -91.4117966736446,36.4911017707335,0 -91.4529890137038,36.4904380208107,0 -91.68856055219172,36.4910185604512,0 -92.1276422613294,36.4914354514783,0 -92.14631944771919,36.4916605516162,0 -92.52305071341618,36.4909213638459,0 -92.77763547121239,36.4899835156087,0 -92.8522757362601,36.4898845275616,0 -93.2973244136508,36.4906809019551,0 -93.32834621479771,36.4902614752819,0 -93.5964496696149,36.489958821283,0 -93.85751984136751,36.4897863700719,0 -94.08105216030801,36.4910242585195,0 -94.6172570958511,36.4894141614003,0 -94.60745283215459,36.4787903547,0 -94.55311361988042,36.1645252110653,0 -94.5424172738563,36.1068358038929,0 -94.48593482605899,35.7603104941298,0 -94.46848521103668,35.6410882624306,0 -94.4285520120899,35.4005462695086,0 -94.4393221493475,34.9291508772006,0 -94.44596107534362,34.7356081162875,0 -94.45262404592168,34.5084326818174,0 -94.4616914490383,34.1967651932869,0 + + + + + + + + California + empty + + +states.AREA: + 157776.31 + + +states.STATE_NAME: +California + + +states.STATE_FIPS: +06 + + +states.SUB_REGION: +Pacific + + +states.STATE_ABBR: +CA + + +states.POP2000: + 33871648 + + +states.POP2001: + 34516624 + + +states.POP00_SQMI: + 215 + + +states.DEN_0_100: + 81 + + +USStates.ID: + 31 + + +USStates.State_Name: +California + + +USStates.Date_Entered: +Sep. 9 1850 + + +USStates.Year_Entered: +1850 + + +USStates.Year_Settled: +1769 + +]]> + #Style_5 + + + -119.601147078817,37.2417411000423,0 + + + + + + + -121.66521992838,38.1692852818694,0 -121.659581042989,38.0964650614978,0 -121.554149383557,38.1373615489176,0 -121.57283385306,38.1137988310232,0 -121.54747307428,38.0634732081726,0 -121.56954517723,38.0636676710543,0 -121.576884968613,38.0941384853348,0 -121.657749868484,38.0861008670846,0 -121.69895609777,38.023495913425,0 -122.00062325051,38.0571514373297,0 -122.29552219684,38.0147955029917,0 -122.379683867535,37.9734454214081,0 -122.371497008527,37.9093451727425,0 -122.307553740948,37.8917635584725,0 -122.312413626844,37.7784626912758,0 -122.199732511343,37.7352008896292,0 -122.093023678359,37.4973135318613,0 -121.975337115714,37.4607202053584,0 -122.0893078249,37.4525414662326,0 -122.359671258087,37.6097867642997,0 -122.366331359286,37.7024501185469,0 -122.346471626615,37.725222881851,0 -122.400931117592,37.8086250993121,0 -122.498214530806,37.7829421062426,0 -122.498207824387,37.7002541028674,0 -122.505682180351,37.5229048519338,0 -122.441463098499,37.4794824747711,0 -122.389253147094,37.352412767888,0 -122.414637835197,37.2391263954339,0 -122.27463370965,37.1067818898449,0 -122.173442725658,37.000869414925,0 -122.061331831373,36.9475067701217,0 -121.883536569103,36.9620979743937,0 -121.791711902502,36.8503269997121,0 -121.761391229107,36.8189902052639,0 -121.808564715975,36.6482211428704,0 -121.867381727768,36.6077136052856,0 -121.911420522825,36.6404278449564,0 -121.955283154531,36.5827736715462,0 -121.882277424869,36.3069435009766,0 -121.689811557385,36.1811341987533,0 -121.445541577549,35.8798505213909,0 -121.329080662264,35.8010340350228,0 -121.270261538467,35.6635357486702,0 -121.146559303764,35.6293227396273,0 -120.991948024433,35.4565810726726,0 -120.875212388976,35.4277651422731,0 -120.849996140741,35.364537182949,0 -120.883597597517,35.259405384431,0 -120.861341970335,35.2092537379629,0 -120.638410219944,35.1400283496436,0 -120.61676526156,35.0748165782334,0 -120.644339564707,34.972636905425,0 -120.665946557296,34.9038095267432,0 -120.608158850435,34.8556158401941,0 -120.631673131148,34.7599067933633,0 -120.601627028389,34.7040225521134,0 -120.64129302919,34.5723378041175,0 -120.509405994936,34.5213738679268,0 -120.456202683517,34.4424994539303,0 -120.140162829175,34.4719023559641,0 -120.011495395442,34.4616616229627,0 -119.869433245661,34.4047962846548,0 -119.606293589682,34.4164349217076,0 -119.483009812349,34.3748618900045,0 -119.266767436277,34.2380982663749,0 -119.216334529765,34.1463406491736,0 -118.939360079521,34.0400813176585,0 -118.788115084851,34.0182570853964,0 -118.541854436649,34.0372517785732,0 -118.412110377564,33.8829675753282,0 -118.388175257182,33.8123248533334,0 -118.42895447882,33.7754482405051,0 -118.40508897256,33.7384507232421,0 -118.286892271712,33.7039074388935,0 -118.246616191662,33.7739249856028,0 -118.106717457478,33.7475645995891,0 -117.597331325999,33.3945339357493,0 -117.410144185265,33.2340894690021,0 -117.328439405751,33.1114819922089,0 -117.254867897998,32.8881728454755,0 -117.285325399413,32.8512204969457,0 -117.248206872978,32.6800939783651,0 -117.198774659986,32.7389343989236,0 -117.124529296561,32.6789314826057,0 -117.120606603881,32.6028724058295,0 -117.199812068273,32.7184424173816,0 -117.128098104758,32.5357813439163,0 -116.10697354631,32.6194706970554,0 -114.722048985451,32.7208574919907,0 -114.712695098447,32.7350133484495,0 -114.694040667724,32.7414255804573,0 -114.603942285241,32.7262851953269,0 -114.603522692176,32.7358864782619,0 -114.571958909536,32.7374388920444,0 -114.572210733513,32.7488292120028,0 -114.560751027253,32.7489359768297,0 -114.561582708233,32.7607536245719,0 -114.543004547133,32.7607497409074,0 -114.543187695964,32.7712322843312,0 -114.530095237266,32.7714115230303,0 -114.535077445153,32.7880470474354,0 -114.52621949202,32.8099123509472,0 -114.461436322021,32.8454225112401,0 -114.476443984447,32.9359088466692,0 -114.46838719789,32.9777894659032,0 -114.520627661734,33.0277074359678,0 -114.559089057602,33.036782479158,0 -114.609925720105,33.0270019226895,0 -114.633966945552,33.0335669165654,0 -114.645159759737,33.0444118730784,0 -114.663951695926,33.0389226888334,0 -114.711355133911,33.0953827798915,0 -114.709463019649,33.122374935038,0 -114.678120399612,33.1672499413879,0 -114.680050859029,33.2245949425206,0 -114.687711074888,33.2392582971895,0 -114.677693392037,33.2680165177413,0 -114.735426988668,33.3057084351637,0 -114.703603782165,33.3524180309387,0 -114.724936284952,33.4110596377436,0 -114.645092242143,33.4191160810556,0 -114.630573116436,33.4394249456214,0 -114.621089578986,33.4685989080523,0 -114.598086338819,33.4861269505736,0 -114.58706170624,33.5094455578288,0 -114.52942054662,33.5600729749772,0 -114.54024720611,33.5805077718081,0 -114.527170510583,33.6221365140121,0 -114.525263594507,33.6655047006994,0 -114.53643355935,33.6827352282095,0 -114.49567644704,33.708369427689,0 -114.510287510185,33.7432004976418,0 -114.504557871757,33.7717148133963,0 -114.521122162519,33.8260312846707,0 -114.511722548733,33.84196501578,0 -114.520962184241,33.8629263802443,0 -114.49818809185,33.925036256846,0 -114.525632127364,33.9524137553973,0 -114.518208552815,33.9650630904256,0 -114.428980324296,34.0298439872115,0 -114.424029195647,34.0783320579769,0 -114.410166357368,34.1026543641334,0 -114.322799430739,34.1412972664816,0 -114.285368523229,34.1712309584447,0 -114.235775821971,34.1862227475521,0 -114.149912368725,34.2669789901846,0 -114.125230507624,34.2726209662778,0 -114.134127057818,34.3145478754142,0 -114.153414997679,34.3364477645527,0 -114.182079822361,34.3652063649643,0 -114.257842521563,34.4054888215522,0 -114.283394304634,34.4120690064366,0 -114.302865366738,34.4357541377741,0 -114.332636412337,34.4548730796034,0 -114.376506947621,34.4596793685379,0 -114.38386203177,34.4770856153635,0 -114.376827822772,34.5365634767276,0 -114.409742349408,34.5837235617841,0 -114.434302240724,34.5989628909914,0 -114.422270356442,34.6108950917792,0 -114.465637688895,34.7098730189755,0 -114.497804378448,34.744757644472,0 -114.525553173554,34.7489115709666,0 -114.542040692552,34.7599586200401,0 -114.570216833129,34.8318604389449,0 -114.627263440015,34.8755338147028,0 -114.630475658748,34.9195012881626,0 -114.621007388662,34.9436098418844,0 -114.632276529502,34.9976517256292,0 -114.621068606189,34.9989144286133,0 -115.626197382816,35.7956983148418,0 -115.885769343921,36.0012259572722,0 -117.160423771838,36.9595941441766,0 -117.838686423167,37.4572982397149,0 -118.417419755966,37.886676748621,0 -119.152450421001,38.4118009590513,0 -119.318825070203,38.5271086243913,0 -119.575687062955,38.7029101298903,0 -119.8893416394,38.9222515603984,0 -119.995254694357,38.9941061536376,0 -119.995150114198,39.063491359469,0 -119.994541258334,39.1061318056706,0 -119.995527335641,39.1587132866354,0 -119.995304181493,39.3115454332125,0 -119.996011479298,39.443500976451,0 -119.996165311172,39.7206108077274,0 -119.996324660047,41.1775662656441,0 -119.993459369715,41.9892049531992,0 -120.871908519109,41.9876721779537,0 -121.441508911406,41.9943345308753,0 -122.284705082491,42.0007645525751,0 -123.222102653242,42.0021917751363,0 -123.513204633148,41.9978329178357,0 -123.819146438568,41.9929487728793,0 -124.206444444404,41.9976479131656,0 -124.207500961935,41.8483274144433,0 -124.243098913848,41.7767571816414,0 -124.144210356407,41.7271932569777,0 -124.057954769171,41.4581641678281,0 -124.071602469809,41.3138325813281,0 -124.149703258267,41.1288322470152,0 -124.109446186314,40.9782109511907,0 -124.39263784515,40.4352369107749,0 -124.336106834157,40.3275549107377,0 -124.34530627267,40.2524300107045,0 -124.094560484712,40.1003777878568,0 -124.007638557042,39.9985808401758,0 -123.83810841709,39.8263968822168,0 -123.783531916535,39.6871084901522,0 -123.754651576417,39.5518792569807,0 -123.813718039793,39.3478064499639,0 -123.68344758336,39.0418059048776,0 -123.721901388934,38.9247712251134,0 -123.523886601491,38.7576593190168,0 -123.297941065635,38.5473335471062,0 -123.121544682433,38.4335999361908,0 -123.048796644867,38.294141377341,0 -122.994649084682,38.2972271999883,0 -122.939271912039,38.1532649535683,0 -123.010730200117,37.9944662024876,0 -122.956597666482,37.9907574780998,0 -122.921180931798,38.0306229406578,0 -122.822193338167,38.0076725285282,0 -122.691723723162,37.894392667181,0 -122.666392804265,37.9069197438526,0 -122.515725410422,37.8221063020498,0 -122.45825944905,37.8342211915867,0 -122.490022339876,37.9317675511749,0 -122.441781116525,37.9829552338725,0 -122.506450380808,38.0186521772629,0 -122.474544986516,38.0854571240266,0 -122.528648754527,38.150671563432,0 -122.488935224967,38.1134142797201,0 -122.429202750633,38.1138071956154,0 -122.398463944831,38.1613370670847,0 -122.272771919253,38.0974845590887,0 -122.285354126349,38.1593115761927,0 -122.338907365688,38.1935818915881,0 -122.315759126632,38.2059335777619,0 -122.273001701246,38.1594183914711,0 -122.232243019261,38.0710797919834,0 -121.984548898952,38.1395004704755,0 -121.902765892076,38.0729095504444,0 -121.782362662585,38.066775850854,0 -121.66521992838,38.1692852818694,0 + + + + + + + + + -119.867823257171,34.0752286498425,0 -119.927690399321,34.0591802403193,0 -119.873986855978,34.0318755748591,0 -119.889061793831,34.004669718361,0 -119.847275401387,33.9684159348396,0 -119.712539718279,33.9652843614565,0 -119.539377455034,34.0064960649629,0 -119.523095554405,34.0345906142262,0 -119.572589325174,34.0557811654196,0 -119.667922334498,34.0213434372469,0 -119.867823257171,34.0752286498425,0 + + + + + + + + + -120.167386086026,33.9241621971016,0 -120.109179246126,33.8948139803303,0 -119.963385936243,33.9477631591643,0 -120.046801069367,34.0411052236375,0 -120.238548700773,34.0108852422559,0 -120.167386086026,33.9241621971016,0 + + + + + + + + + -118.594780502018,33.4808183566674,0 -118.556433880183,33.4344825457272,0 -118.481342626159,33.4195524387193,0 -118.455386785543,33.3247859794245,0 -118.304036434067,33.3074940443331,0 -118.294590834254,33.3344480915225,0 -118.362395805209,33.4110113285126,0 -118.594780502018,33.4808183566674,0 + + + + + + + + + -118.350958200555,32.8191952333517,0 -118.541585051028,32.9873842722853,0 -118.571485987943,33.0359715054548,0 -118.599517215117,33.0210219708047,0 -118.511676946737,32.8920762202556,0 -118.420105888582,32.8061145350339,0 -118.350958200555,32.8191952333517,0 + + + + + + + + + Colorado + empty + + +states.AREA: + 104101.231 + + +states.STATE_NAME: +Colorado + + +states.STATE_FIPS: +08 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +CO + + +states.POP2000: + 4301261 + + +states.POP2001: + 4432642 + + +states.POP00_SQMI: + 41 + + +states.DEN_0_100: + 96 + + +USStates.ID: + 38 + + +USStates.State_Name: +Colorado + + +USStates.Date_Entered: +Aug. 1 1876 + + +USStates.Year_Entered: +1876 + + +USStates.Year_Settled: +1858 + +]]> + #Style_5 + + + -105.547857280633,38.9972631547834,0 + + + + + + -102.044455910114,37.6414742210535,0 -102.04397657417,37.7343986213713,0 -102.046060904132,38.2538220806459,0 -102.045549640322,38.2633436193344,0 -102.047584160548,38.6154993640496,0 -102.047568440936,38.6925505149901,0 -102.048972538957,39.0370029188915,0 -102.047874719263,39.1267534832,0 -102.048801584447,39.5628035180916,0 -102.049442507662,39.5686933622379,0 -102.051535596434,39.9989182728278,0 -102.047544994516,40.3426445008284,0 -102.047620488242,40.4310777832961,0 -102.046031374616,40.6973192828138,0 -102.046992332576,40.7431303349332,0 -102.047739314394,40.9980708667063,0 -102.621257047371,41.00021481921,0 -102.652271070342,40.9981241668543,0 -103.382956653967,41.0003163565243,0 -103.572316302435,40.9996484311393,0 -104.05170553525,41.00321132686,0 -104.934492922627,40.9942891435778,0 -105.278797604523,40.9963491628159,0 -106.203471481278,41.0000850018961,0 -106.329125682765,41.001288969127,0 -106.865438763821,40.9984573861084,0 -107.304051053295,41.0001333468858,0 -107.918671336725,41.0033751160193,0 -109.048314704754,40.9984333935171,0 -109.046155726194,40.6652909436328,0 -109.051263150153,40.2105113710392,0 -109.052551712149,39.6573824204021,0 -109.053528662287,39.5181701484933,0 -109.051416838185,39.3609660838809,0 -109.053948502328,38.4946509132439,0 -109.055861120835,38.2449201643366,0 -109.043464000061,38.1529336954503,0 -109.043206408646,37.8874200608917,0 -109.045602480021,37.6308206068713,0 -109.048480115363,36.9966409005893,0 -108.372472924296,36.999471575633,0 -107.472460293817,36.9987767566937,0 -107.410820543541,36.9975257849804,0 -106.89037023567,36.9990837907051,0 -106.86124887722,36.9895015941857,0 -106.472176939021,36.9915042439681,0 -105.992000086492,36.992289650437,0 -105.713459997846,36.9945603614965,0 -105.213091465415,36.992604521715,0 -105.146172547082,36.9932073726899,0 -103.993635035945,36.9944690622369,0 -103.07786588474,36.9997601837273,0 -102.997709442614,36.9985238353847,0 -102.037207602599,36.9889939197762,0 -102.042010650289,37.3862794433515,0 -102.044455910114,37.6414742210535,0 + + + + + + + + Connecticut + empty + + +states.AREA: + 4976.566 + + +states.STATE_NAME: +Connecticut + + +states.STATE_FIPS: +09 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +CT + + +states.POP2000: + 3405565 + + +states.POP2001: + 3434012 + + +states.POP00_SQMI: + 684 + + +states.DEN_0_100: + 39 + + +USStates.ID: + 5 + + +USStates.State_Name: +Connecticut + + +USStates.Date_Entered: +Jan. 9 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1634 + +]]> + #Style_5 + + + -72.7247699791,41.6180326565837,0 + + + + + + -73.5303920707175,41.5227455563004,0 -73.5442932536742,41.3652984767995,0 -73.5502596731917,41.2936207043954,0 -73.47812075689539,41.2107548889389,0 -73.72523765669671,41.1003542249946,0 -73.65372377552561,41.0126172825253,0 -73.65315146089949,40.9983924455247,0 -73.1044185740856,41.1610394427248,0 -72.906734323612,41.2700631991856,0 -72.5272448622889,41.2637025875984,0 -72.378152966058,41.2781022275496,0 -72.3784123498461,41.3583482711136,0 -72.3263548978381,41.2896412329135,0 -72.28141590252091,41.2811454708603,0 -71.86667844289499,41.3227696452715,0 -71.8477722040922,41.3253484832964,0 -71.8368696812943,41.3419614666217,0 -71.8459956537022,41.4038545416488,0 -71.80274343080561,41.4158290540058,0 -71.7901942031214,41.6013068793249,0 -71.792605218292,41.6417579304637,0 -71.78824886219491,41.7216033953237,0 -71.7978316087619,42.0042748046851,0 -71.80234071658769,42.0179769339478,0 -72.0949717608141,42.0257995069483,0 -72.1363467150764,42.0264020644269,0 -72.5075717905207,42.0307660006011,0 -72.57122589242989,42.0301249737628,0 -72.58190737022019,42.0216068944432,0 -72.60782527309461,42.0228008077559,0 -72.6095266969696,42.030536850941,0 -72.75589381790709,42.0338475230699,0 -72.7675750314897,42.0021671817802,0 -72.817679571843,41.9971850435429,0 -72.8164509949267,42.033507731778,0 -73.0060955098662,42.0360092024926,0 -73.0456324711282,42.0363103821922,0 -73.4842302844536,42.0474280500728,0 -73.51714741333279,41.6656861632365,0 -73.5303920707175,41.5227455563004,0 + + + + + + + + Delaware + empty + + +states.AREA: + 2054.586 + + +states.STATE_NAME: +Delaware + + +states.STATE_FIPS: +10 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +DE + + +states.POP2000: + 783600 + + +states.POP2001: + 797556 + + +states.POP00_SQMI: + 381 + + +states.DEN_0_100: + 66 + + +USStates.ID: + 1 + + +USStates.State_Name: +Delaware + + +USStates.Date_Entered: +Dec. 7 1787 + + +USStates.Year_Entered: +1787 + + +USStates.Year_Settled: +1638 + +]]> + #Style_5 + + + -75.5005536711258,38.9951144260073,0 + + + + + + -75.70707355672541,38.5575913668919,0 -75.6988024422464,38.4631827108939,0 -75.3498423227975,38.4553227905156,0 -75.0927212334893,38.4505638472484,0 -75.0679246646819,38.4500753640855,0 -75.0456230125111,38.4496021608759,0 -75.0827624797042,38.7999244622257,0 -75.1905708548595,38.8087822508359,0 -75.3075352508581,38.946023931106,0 -75.32448866541441,39.0124989256203,0 -75.3973682707713,39.0731489592767,0 -75.4021224709428,39.2577500046037,0 -75.5152174265202,39.3670516712081,0 -75.5898358410183,39.4638799793316,0 -75.56264295943861,39.5668352599053,0 -75.6103745921791,39.6129053117614,0 -75.4892806606894,39.7148582186458,0 -75.4759742683691,39.7200843842213,0 -75.47476845721459,39.7418320932776,0 -75.46039411885541,39.7633620274566,0 -75.4276473042606,39.7782429030536,0 -75.4117545704202,39.7897707547806,0 -75.42046794786501,39.7989830990632,0 -75.4699861133481,39.8265474993808,0 -75.58344324964349,39.8401190417149,0 -75.6439943147472,39.8383065472094,0 -75.6947708516454,39.8204574523468,0 -75.7455920038355,39.7749293983367,0 -75.77492719598079,39.7245527846646,0 -75.7910945763195,39.7238660373362,0 -75.77235374667779,39.3831185391944,0 -75.7643192412212,39.2959598236098,0 -75.7613129328181,39.2478639325384,0 -75.7525764003551,39.1416603330929,0 -75.7245906263035,38.8302832999716,0 -75.7107127327496,38.6496658557662,0 -75.70707355672541,38.5575913668919,0 + + + + + + + + Florida + empty + + +states.AREA: + 55814.731 + + +states.STATE_NAME: +Florida + + +states.STATE_FIPS: +12 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +FL + + +states.POP2000: + 15982378 + + +states.POP2001: + 16349220 + + +states.POP00_SQMI: + 286 + + +states.DEN_0_100: + 75 + + +USStates.ID: + 27 + + +USStates.State_Name: +Florida + + +USStates.Date_Entered: +Mar. 3 1845 + + +USStates.Year_Entered: +1845 + + +USStates.Year_Settled: +1565 + +]]> + #Style_5 + + + -82.4955741421186,28.6586764601475,0 + + + + + + + -80.7856624086309,28.7851940403771,0 -81.0970545706768,29.3517993174429,0 -81.1098802954354,29.4302392603555,0 -81.2337658332761,29.6690238932245,0 -81.2437844731636,29.7379431267216,0 -81.3164898837488,29.829240288196,0 -81.30275787447,29.9130520156593,0 -81.4327676635006,30.2467817590837,0 -81.4432599879591,30.3571873716918,0 -81.4807983040684,30.3805404131581,0 -81.4575287462075,30.4547642552716,0 -81.51811745977921,30.556212852111,0 -81.4987842593679,30.5986053568678,0 -81.52859548779161,30.7214526527694,0 -81.5365912711366,30.706577299159,0 -81.6011698908184,30.7248871300769,0 -81.6047710156425,30.7163212810582,0 -81.6279809976449,30.7317742622409,0 -81.64247751744411,30.7290809870991,0 -81.7167688183456,30.7453688965497,0 -81.7366750235978,30.7638888413088,0 -81.7577101754202,30.7696316702207,0 -81.77670793959879,30.7615846557533,0 -81.803198160572,30.7880849801985,0 -81.8730017876477,30.7990844044587,0 -81.899141093328,30.8283082947867,0 -81.9075183587545,30.8134750654558,0 -81.9438049950591,30.8242494271993,0 -81.95302920945851,30.8204309615747,0 -81.96155137217021,30.7960077712109,0 -81.9814798819521,30.7783517328393,0 -82.015538717102,30.7913192479577,0 -82.0129673359901,30.7642564144355,0 -82.0318811960902,30.75753276526,0 -82.044911618847,30.6509107642683,0 -82.0136526868731,30.5986905381626,0 -82.00580162815341,30.5709905104499,0 -82.0225094921996,30.4777178378262,0 -82.0351206760364,30.442878325233,0 -82.0460994945739,30.4340681576703,0 -82.0383547553639,30.3789045785554,0 -82.0527668135565,30.3637944548298,0 -82.1646391875519,30.3612918341259,0 -82.1802341078135,30.3686309203557,0 -82.2055648250395,30.4238531552503,0 -82.1991871719511,30.4900145014502,0 -82.2193674835883,30.5029705380916,0 -82.2383961480861,30.53144474306101,0 -82.2210395703097,30.5670760290347,0 -82.41209267091981,30.5773075208331,0 -82.46313488325031,30.5826898377285,0 -82.5829575782702,30.5890537915584,0 -82.6963559598951,30.5957200992445,0 -83.13244038033891,30.6213413987424,0 -83.30131548232799,30.6332849379512,0 -83.31060073866981,30.6343032375269,0 -83.6090560569222,30.6507845923385,0 -83.7378439398488,30.6604911909877,0 -84.00073015189621,30.6755376606981,0 -84.07556221707689,30.6785776000623,0 -84.2816633081929,30.6904191353307,0 -84.3744481609224,30.6940918759687,0 -84.8630037111776,30.7126645389724,0 -84.86458306959619,30.7145032030319,0 -84.8882887897453,30.7438893824889,0 -84.915343413445,30.7540898084089,0 -84.9268948431928,30.7760887042882,0 -84.93256395069341,30.802625045985,0 -84.9269262387193,30.8469221763844,0 -84.9377761495732,30.8949576392884,0 -84.9690122705718,30.9270937759378,0 -84.97356770002369,30.9636643794248,0 -85.0001419997276,30.9793194525836,0 -85.00160719763341,31.0012534003007,0 -85.4850102049851,31.0010018399978,0 -85.4865971253016,31.0009980072958,0 -86.0318217926755,30.993327601114,0 -86.1814761680363,30.9952251256207,0 -86.38391974363719,30.9915383065212,0 -86.70185248868481,30.9980924099155,0 -86.7793617052065,30.9981918115755,0 -87.16311759320681,31.0031572312178,0 -87.59858025629001,31.0026307736,0 -87.58986722899169,30.954361030582,0 -87.62571159139399,30.8769019951762,0 -87.6159151545761,30.8482964233535,0 -87.54190013706391,30.7856953414756,0 -87.5266028694286,30.7484916966577,0 -87.4601404897836,30.7058026368688,0 -87.4188942719987,30.6928101858547,0 -87.3986449174521,30.6680153313996,0 -87.3932809670146,30.6200982640176,0 -87.4220673638826,30.5564936086287,0 -87.4453529644246,30.5313897036451,0 -87.4188166507341,30.4817007831404,0 -87.34739512261361,30.45716912626,0 -87.3468074422634,30.4314987377927,0 -87.4092561498961,30.4022388615449,0 -87.42408011873,30.3236714953673,0 -87.27389760268,30.3573846203564,0 -87.160102583227,30.4650331854788,0 -87.17155505856,30.5577356138947,0 -87.12453365402951,30.5646667812171,0 -87.0692718433498,30.4505645464724,0 -87.0195804520243,30.5874666647957,0 -86.98619315326791,30.5904306090507,0 -87.01439989501139,30.5144345448102,0 -86.9325107849378,30.4635649387036,0 -87.1933820815507,30.3552218088262,0 -86.79034761148481,30.417963340528,0 -86.6102358163719,30.423651606622,0 -86.4526391026542,30.501237135688,0 -86.3878791046355,30.4621676047067,0 -86.21960829589411,30.4878542196163,0 -86.1229339842843,30.4264616798505,0 -86.114640755008,30.3858018718917,0 -86.24156647826339,30.4285277915735,0 -86.2400330396019,30.3998877870994,0 -86.38810807865301,30.4060128314707,0 -86.5053138173483,30.4099729095893,0 -86.38745959195791,30.3876588649199,0 -85.9870132562786,30.274430447424,0 -85.7263932601573,30.1288421882721,0 -85.7579191757177,30.228945499057,0 -85.8299426331719,30.2328139986745,0 -85.8504205348322,30.2803593792308,0 -85.752708285065,30.296929416945,0 -85.7171312674037,30.2650619320408,0 -85.5694755083714,30.3110040681735,0 -85.6001764366836,30.2511510570462,0 -85.6660583999623,30.2516894275641,0 -85.7098294679232,30.1787734448826,0 -85.5297167444586,30.1316864955678,0 -85.46431580583911,30.05116354875871,0 -85.39567230794491,30.0585673680019,0 -85.38265623679381,30.0362861989575,0 -85.3826943968843,30.0242701944309,0 -85.4323859451426,30.0457542840855,0 -85.41501336574611,30.0315524246978,0 -85.4713579556514,30.021863583452,0 -85.5685286533251,30.0982936773355,0 -85.6284974801284,30.092591247597,0 -85.3847925794656,29.9238014777072,0 -85.3005241314803,29.809796482644,0 -85.30658944207769,29.7017103324635,0 -85.358043047591,29.6912547238295,0 -85.4025465872846,29.7943649380265,0 -85.39299438160241,29.875413459683,0 -85.4140519942968,29.8630676261595,0 -85.4096039187485,29.7767663594786,0 -85.3648790697375,29.6830190693874,0 -85.2147599731812,29.7015576599036,0 -84.9882831153426,29.7199215009452,0 -84.9285133165353,29.7779718956361,0 -84.858030735784,29.746860644003,0 -84.4645378551553,29.9296272731811,0 -84.346911138444,29.9101687274893,0 -84.33893870217069,29.94714151388211,0 -84.4331041474675,29.9595452292823,0 -84.43769009148851,29.9917915151398,0 -84.3604166513926,29.9773907329364,0 -84.353924908203,30.0696244196511,0 -84.2330713099055,30.1081116975018,0 -84.1478548013806,30.0817249598013,0 -84.0746250590684,30.0999482141697,0 -83.9717383295973,30.0774831103292,0 -83.65418272250091,29.9109618275118,0 -83.5504482416698,29.7373231552771,0 -83.40497386127331,29.6696026010291,0 -83.38003129986259,29.5198747697928,0 -83.2343277851478,29.4339375053078,0 -83.17463281391611,29.3436792113098,0 -83.1089950735291,29.3281828439052,0 -83.1422065121976,29.2996514317714,0 -83.0739287228003,29.2656522892705,0 -83.0367477674175,29.17938775268111,0 -82.80215694869619,29.1551323838437,0 -82.7553222386037,29.008660342598,0 -82.63661917692581,28.8847079412874,0 -82.6365190150036,28.8142779635276,0 -82.68138067327411,28.8083822083402,0 -82.6360757732282,28.6927489136677,0 -82.6734759424042,28.4285106282973,0 -82.77914408680709,28.1730274345577,0 -82.8442855871409,27.8506413239551,0 -82.7410033447869,27.6858682776039,0 -82.72816288633671,27.71777322138721,0 -82.7938385725946,27.82965394385201,0 -82.6783265396172,27.7055878183437,0 -82.6446191370261,27.7157250804914,0 -82.623653104071,27.8485270486841,0 -82.5642645135043,27.8784619377409,0 -82.72548499781411,27.9405627845552,0 -82.6447412328194,27.9665839458658,0 -82.700665998164,27.9753535590083,0 -82.67271887892071,28.0105143110528,0 -82.6983389996622,28.0461689270521,0 -82.65068467202021,28.0071632485504,0 -82.6455652432514,28.0288470743089,0 -82.53899536357871,27.9357280906989,0 -82.5105981113627,27.8312320397799,0 -82.483131719607,27.821947512228,0 -82.4609984469958,27.9401552300599,0 -82.3988177254479,27.9062193926186,0 -82.4043795621193,27.7916278689045,0 -82.55249982929941,27.6440140810863,0 -82.5400408116316,27.6081060565737,0 -82.6263767381809,27.5551940586101,0 -82.55426231189991,27.5822396263396,0 -82.5696053404662,27.552713123606,0 -82.6387670919584,27.5366381336648,0 -82.5755716572461,27.5123247874474,0 -82.4271770498958,27.5228592370009,0 -82.5141997040709,27.5119896299127,0 -82.4882670113381,27.4780670468665,0 -82.6817060967643,27.5244293448953,0 -82.6658290426217,27.4935869887545,0 -82.638889133273,27.5034592572515,0 -82.6859253554227,27.4738446601839,0 -82.5655623022342,27.3866814664875,0 -82.5327402803326,27.3318018750555,0 -82.5699574997893,27.2742801857922,0 -82.514483358897,27.2104536946126,0 -82.53113078368141,27.260277268799,0 -82.5069299595387,27.2369915434566,0 -82.3800366684968,26.9472958619466,0 -82.3436286898397,26.9036327303149,0 -82.3686686110515,26.9479386066161,0 -82.39817177118719,26.9985156064124,0 -82.3554313078568,26.9488960497624,0 -82.2898406078895,26.8498858964476,0 -82.1538287055014,26.790128827623,0 -82.1764953546999,26.91369327650421,0 -82.2575818018979,26.997907071209,0 -82.2821793222444,27.0245573864093,0 -82.2574596818821,27.0044089537616,0 -82.1532097767663,26.937064868502,0 -82.0126882415853,26.9765506094598,0 -81.992851089122,27.0316764188246,0 -81.9791941742815,27.0316801758383,0 -81.9914399870855,26.9630565804492,0 -82.09787264732439,26.9217855253756,0 -82.0517675266414,26.8667090832592,0 -82.06827088488571,26.7669703280974,0 -82.08366009168979,26.7157906803202,0 -82.0214729222177,26.5246799114177,0 -81.94445196681861,26.5507196658666,0 -81.8971019671985,26.6637671605295,0 -81.77391439025691,26.7102658283511,0 -81.8842767455881,26.6429874247486,0 -81.9287732333451,26.5349808410994,0 -81.9681192314758,26.5173825540891,0 -81.9420187660068,26.4675625679953,0 -81.86421232186081,26.4395539803577,0 -81.8493509562169,26.3321969602063,0 -81.81385858095371,26.2844671116379,0 -81.79471711672559,26.1111624155724,0 -81.7056956434448,26.0001719707702,0 -81.7182927746014,25.9235815788374,0 -81.5307421662118,25.9146583461055,0 -81.2562071495919,25.803102822616,0 -81.1999471683642,25.7104222944241,0 -81.2583748028608,25.6811000537785,0 -81.14332280632461,25.3968273443257,0 -80.9742816356419,25.3224599988499,0 -80.9152746101809,25.246725347404,0 -80.9510271592913,25.2025375364347,0 -81.0115606647601,25.2144297033838,0 -81.1405692249725,25.3207650388025,0 -81.1837838752698,25.2688795915602,0 -81.14822996444551,25.164690234975,0 -81.119016169228,25.1341887870379,0 -80.9758769814422,25.1305013595143,0 -80.8568011499702,25.1856310402452,0 -80.69382490846441,25.1522990222937,0 -80.5518761310218,25.2123186665598,0 -80.4208071164753,25.1922194488631,0 -80.4168167134392,25.2499027837277,0 -80.30197564745031,25.4012007632131,0 -80.32999121816469,25.4900151159125,0 -80.3014558505665,25.6137517419595,0 -80.1930988333682,25.7600323804277,0 -80.1277808584683,25.9775364329027,0 -80.0846956378327,26.3263775730799,0 -80.0509107788816,26.79719774157,0 -80.1146101161258,26.973837535418,0 -80.0903632019365,26.9740436760055,0 -80.1479671747375,27.1090693324142,0 -80.2212733035668,27.2028422831826,0 -80.290420512647,27.2128533886563,0 -80.3267908949388,27.2482620290407,0 -80.28963484694501,27.2413386496822,0 -80.22398953706519,27.215066036106,0 -80.19009080193339,27.1856845506766,0 -80.2396382000622,27.2646476309897,0 -80.35737788115679,27.5556622412549,0 -80.4013770985618,27.7035855422849,0 -80.4818532136496,27.8457216392462,0 -80.5093579467615,27.8257087100619,0 -80.49224458768531,27.8701785816315,0 -80.7471898616394,28.3989923702075,0 -80.8507049706525,28.7856998655849,0 -80.8321039389462,28.7861861164729,0 -80.76241522498,28.73633464414,0 -80.7856624086309,28.7851940403771,0 + + + + + + + + + -86.8338822668909,30.3997351946409,0 -86.92912289596769,30.381394411765,0 -87.0476413823616,30.36940104488521,0 -87.13934916731981,30.3517658849312,0 -87.20214070012931,30.3348345829613,0 -87.2860896885903,30.3397725845478,0 -87.2903241050636,30.3327193793144,0 -87.2670458244246,30.3214318797522,0 -87.2423486031622,30.3214318477782,0 -86.8345841638274,30.3870382775534,0 -86.7929645335572,30.3905649446145,0 -86.73864164395199,30.4025581695707,0 -86.53264296831961,30.3933887813638,0 -86.522770294314,30.4011477363605,0 -86.5347563674129,30.4067913935205,0 -86.6208256693825,30.4145518175759,0 -86.7915530723426,30.4039694647944,0 -86.8338822668909,30.3997351946409,0 + + + + + + + + + -80.73583342138031,28.7888443728242,0 -80.8624380297225,28.9916256739697,0 -80.8990978307606,29.0615113380843,0 -80.9162872259714,29.0718222697753,0 -80.891079384763,29.0133938389067,0 -80.8171798101218,28.895390595308,0 -80.76333034164141,28.8220678253514,0 -80.73583342138031,28.7888443728242,0 + + + + + + + + + -80.7258997483759,28.7843659964936,0 -80.64119767311181,28.6573460126368,0 -80.7540684017207,28.7368838886358,0 -80.7349947909981,28.7066171587924,0 -80.7859302565314,28.6877162616962,0 -80.7804452685255,28.6189606122974,0 -80.6918815595558,28.5883502247698,0 -80.6600431301066,28.6186511090254,0 -80.5991290711823,28.6039228263252,0 -80.5774466899765,28.54865343771141,0 -80.6216302365325,28.4126591437007,0 -80.5876558561293,28.4092601916422,0 -80.5259480649338,28.4634626289081,0 -80.579689196541,28.5901540601732,0 -80.7258997483759,28.7843659964936,0 + + + + + + + + + -80.68862382465591,28.5817643631259,0 -80.7210434793205,28.3854010160234,0 -80.605571665409,28.14494461734,0 -80.66711056958739,28.301841271446,0 -80.6627305489283,28.4274102077487,0 -80.60919283666981,28.5735665270911,0 -80.6537947563473,28.6008904599418,0 -80.68862382465591,28.5817643631259,0 + + + + + + + + + -82.1019415480461,26.586077179011,0 -82.1286518307944,26.6936913317227,0 -82.1833101452127,26.6834323648282,0 -82.13570958489,26.6426298555739,0 -82.0974560861241,26.4939425477023,0 -82.06695301795411,26.4975643713843,0 -82.1019415480461,26.586077179011,0 + + + + + + + + + -80.24945367787321,25.354937643044,0 -80.3616011380102,25.2964992519179,0 -80.3302969914516,25.2679815350763,0 -80.3530636815586,25.2115321598761,0 -80.5878197219821,24.9563763998019,0 -80.355665273095,25.1582335995928,0 -80.24945367787321,25.354937643044,0 + + + + + + + + + Georgia + empty + + +states.AREA: + 58629.222 + + +states.STATE_NAME: +Georgia + + +states.STATE_FIPS: +13 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +GA + + +states.POP2000: + 8186453 + + +states.POP2001: + 8423422 + + +states.POP00_SQMI: + 140 + + +states.DEN_0_100: + 88 + + +USStates.ID: + 4 + + +USStates.State_Name: +Georgia + + +USStates.Date_Entered: +Jan. 2 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1733 + +]]> + #Style_5 + + + -83.4542258116492,32.6550957052741,0 + + + + + + + -85.1301648712312,31.778853672117,0 -85.11528693111811,31.731565957183,0 -85.11867442354141,31.7085715963854,0 -85.1112049587349,31.6842421102739,0 -85.0592853056629,31.6212651525335,0 -85.04272135787051,31.5543898029988,0 -85.0426984349451,31.5196599288858,0 -85.0663120282063,31.4760895555663,0 -85.0614062661802,31.4406634414676,0 -85.0879419916334,31.3672341961667,0 -85.0825631900095,31.33233449639,0 -85.0812280506442,31.3030803697052,0 -85.1033613685017,31.2714361848353,0 -85.09360326113141,31.2270745000222,0 -85.1029571297253,31.1969220462589,0 -85.0933668734253,31.1722112527352,0 -85.06866250314511,31.1623640897378,0 -85.038068227176,31.1267131739262,0 -85.01699565076569,31.0801028338282,0 -85.00160719763341,31.0012534003007,0 -85.0001419997276,30.9793194525836,0 -84.97356770002369,30.9636643794248,0 -84.9690122705718,30.9270937759378,0 -84.9377761495732,30.8949576392884,0 -84.9269262387193,30.8469221763844,0 -84.93256395069341,30.802625045985,0 -84.9268948431928,30.7760887042882,0 -84.915343413445,30.7540898084089,0 -84.8882887897453,30.7438893824889,0 -84.86458306959619,30.7145032030319,0 -84.8630037111776,30.7126645389724,0 -84.3744481609224,30.6940918759687,0 -84.2816633081929,30.6904191353307,0 -84.07556221707689,30.6785776000623,0 -84.00073015189621,30.6755376606981,0 -83.7378439398488,30.6604911909877,0 -83.6090560569222,30.6507845923385,0 -83.31060073866981,30.6343032375269,0 -83.30131548232799,30.6332849379512,0 -83.13244038033891,30.6213413987424,0 -82.6963559598951,30.5957200992445,0 -82.5829575782702,30.5890537915584,0 -82.46313488325031,30.5826898377285,0 -82.41209267091981,30.5773075208331,0 -82.2210395703097,30.5670760290347,0 -82.2383961480861,30.53144474306101,0 -82.2193674835883,30.5029705380916,0 -82.1991871719511,30.4900145014502,0 -82.2055648250395,30.4238531552503,0 -82.1802341078135,30.3686309203557,0 -82.1646391875519,30.3612918341259,0 -82.0527668135565,30.3637944548298,0 -82.0383547553639,30.3789045785554,0 -82.0460994945739,30.4340681576703,0 -82.0351206760364,30.442878325233,0 -82.0225094921996,30.4777178378262,0 -82.00580162815341,30.5709905104499,0 -82.0136526868731,30.5986905381626,0 -82.044911618847,30.6509107642683,0 -82.0318811960902,30.75753276526,0 -82.0129673359901,30.7642564144355,0 -82.015538717102,30.7913192479577,0 -81.9814798819521,30.7783517328393,0 -81.96155137217021,30.7960077712109,0 -81.95302920945851,30.8204309615747,0 -81.9438049950591,30.8242494271993,0 -81.9075183587545,30.8134750654558,0 -81.899141093328,30.8283082947867,0 -81.8730017876477,30.7990844044587,0 -81.803198160572,30.7880849801985,0 -81.77670793959879,30.7615846557533,0 -81.7577101754202,30.7696316702207,0 -81.7366750235978,30.7638888413088,0 -81.7167688183456,30.7453688965497,0 -81.64247751744411,30.7290809870991,0 -81.6279809976449,30.7317742622409,0 -81.6047710156425,30.7163212810582,0 -81.6011698908184,30.7248871300769,0 -81.5365912711366,30.706577299159,0 -81.52859548779161,30.7214526527694,0 -81.49838215972861,30.7575148369311,0 -81.529269052571,30.8647786931871,0 -81.4848273848571,30.9449000982573,0 -81.5285609645024,30.9621190260309,0 -81.4908554850397,30.9858121631104,0 -81.5354294328489,31.0767563036925,0 -81.4753376980902,31.0438233173066,0 -81.52525924876009,31.0865485378616,0 -81.52838810570471,31.1311281139373,0 -81.3810060604754,31.1489458440312,0 -81.31024963168881,31.2426949085912,0 -81.30083493289349,31.2758189009071,0 -81.3888131895834,31.2971490597463,0 -81.3947715908228,31.2640900090948,0 -81.4103443748257,31.3114801993601,0 -81.36558128684681,31.3445548526356,0 -81.3130659410716,31.3375975453654,0 -81.2085717415423,31.466897315876,0 -81.1947704996618,31.5051521393949,0 -81.23914509534541,31.5568831089359,0 -81.2407192840183,31.6401735904022,0 -81.1871897446126,31.5998982648136,0 -81.1349370156985,31.64607010904041,0 -81.2897291147454,31.799665157239,0 -81.1751775864286,31.7358025222833,0 -81.19636638291649,31.7848438785274,0 -81.1740127367476,31.7998108690079,0 -81.13682407277911,31.7270738398996,0 -81.06104273006601,31.7775429698153,0 -81.0390109744209,31.8233600040029,0 -81.1414678053095,31.8535166905114,0 -81.1802499193908,31.89767267427,0 -81.2201057693034,31.8931398643438,0 -81.2064883559565,31.9206507082445,0 -81.244947183707,31.8946916725745,0 -81.2842943640751,31.9494280109591,0 -81.23968322486699,31.9034156747495,0 -81.2039099248023,31.9284324409696,0 -81.19730252637351,31.9198956907679,0 -81.20725811895009,31.900120837565,0 -81.1799984795161,31.9058911046943,0 -81.13985081872011,31.8643404881217,0 -80.97087558424499,31.8903139501193,0 -80.9735561398863,31.9479287150516,0 -80.8947535795152,32.0059939238177,0 -81.10487575967311,32.1054460026813,0 -81.11911230742351,32.1176140300944,0 -81.1147177986615,32.1905932444351,0 -81.1476925517913,32.2244467846609,0 -81.1481731109993,32.2577131389355,0 -81.1240481751459,32.2766445515914,0 -81.131890044888,32.3326183284591,0 -81.1418842567213,32.348467456337,0 -81.15747907871371,32.3387404019195,0 -81.1791229158612,32.3717812943982,0 -81.17825274918771,32.3868294350367,0 -81.19992690502011,32.4203165559094,0 -81.19515724784431,32.4645607584348,0 -81.23623978837119,32.520613973536,0 -81.26798547886391,32.5339298482675,0 -81.2743023822226,32.5548140176008,0 -81.298983534041,32.567287009571,0 -81.3404038613665,32.5713602924434,0 -81.3514893657912,32.5835283490035,0 -81.36670254638879,32.5819794584472,0 -81.3662676134818,32.5883649179497,0 -81.3849063649096,32.5958830263814,0 -81.41210528286091,32.6256090136088,0 -81.3994783141749,32.6508153349079,0 -81.4071915250438,32.6867019963945,0 -81.4205354721022,32.7015669413645,0 -81.4076260787666,32.7418061601564,0 -81.4230377099309,32.7498126483616,0 -81.41607199831719,32.7567284399427,0 -81.4302403174263,32.7861535714108,0 -81.4208333313248,32.8094947304519,0 -81.4303092863297,32.8203050210012,0 -81.4239616394502,32.831771535068,0 -81.4323312938326,32.8416816085137,0 -81.4553190013329,32.8445766582975,0 -81.4585388413489,32.8714003875851,0 -81.4832049987009,32.876092075685,0 -81.4650317117614,32.8977282069894,0 -81.47704813306041,32.8975717263241,0 -81.5102366685686,32.9472214740899,0 -81.509839970123,32.9554188973732,0 -81.4978997781492,32.9596759183359,0 -81.49273484682441,33.0048133137248,0 -81.50874915476361,33.0127933490709,0 -81.5296007135576,33.0439278437875,0 -81.54765985031411,33.0436837254085,0 -81.56003498198071,33.0608149350319,0 -81.59582519226061,33.07079003117,0 -81.610962223749,33.087875452303,0 -81.7042792512713,33.1229388681766,0 -81.740374666284,33.1446970762157,0 -81.76340826403511,33.1698348857377,0 -81.7595935205582,33.1953809754874,0 -81.7698781322982,33.2138814847346,0 -81.7798346609471,33.2173679140961,0 -81.8015635396811,33.2079267401357,0 -81.8107647427681,33.2264425091539,0 -81.85396307448509,33.2435008646337,0 -81.83679654832591,33.2606131041944,0 -81.8398406003094,33.2733079499958,0 -81.826572899138,33.2694248257545,0 -81.86071475702811,33.2970915898305,0 -81.8401072844714,33.3083447178855,0 -81.86554408069119,33.3156684726899,0 -81.87687401673379,33.3068376679828,0 -81.893483278419,33.3352369460829,0 -81.9120917492517,33.3321965848843,0 -81.9114125905005,33.3494956248163,0 -81.9367121514194,33.3504376050416,0 -81.9450663328463,33.3771470802287,0 -81.9258093500634,33.3765598081382,0 -81.9403358095376,33.408163308089,0 -81.91356363208369,33.4154417359506,0 -81.9272738095671,33.4361432282633,0 -81.9166380824955,33.451332910189,0 -81.93638328061149,33.4710196640405,0 -81.9809170141647,33.4907366765445,0 -81.99653471071351,33.5204905181363,0 -82.02014061005811,33.5387321304637,0 -82.0385431417392,33.5475058176817,0 -82.0656815446151,33.5738649217255,0 -82.1164029880357,33.5947766297079,0 -82.1389789104035,33.5939068648655,0 -82.1671320836866,33.6152152043502,0 -82.1921876394497,33.6238399454958,0 -82.21420671543,33.6807345454544,0 -82.2348981721706,33.6903395482787,0 -82.2662179171499,33.7615957491367,0 -82.3055105866775,33.7826480434626,0 -82.3111185523946,33.8039143524229,0 -82.3513115818956,33.8353919365428,0 -82.3657086388162,33.8360097346945,0 -82.390596547794,33.8541402272832,0 -82.424525414299,33.8602546364245,0 -82.4566308989782,33.8782248379062,0 -82.51753847434971,33.931029734258,0 -82.576614784124,33.9592878315125,0 -82.5736087006275,33.9689044112754,0 -82.5961385808407,34.0134202383713,0 -82.6029437979289,34.0346366848087,0 -82.66035530356881,34.1083560439036,0 -82.73578078298991,34.1697961502507,0 -82.74259356012441,34.2055536194311,0 -82.7580279876581,34.2333729594522,0 -82.76416996771751,34.2809601537556,0 -82.78287043804779,34.2905157146731,0 -82.80858305350149,34.3398998890232,0 -82.8364394858077,34.3710462423795,0 -82.844092601526,34.4126753526629,0 -82.8680428963264,34.4575429723072,0 -82.9050550411483,34.4779853553029,0 -82.9819628115439,34.4764970914664,0 -83.0079495911058,34.4708283883787,0 -83.0549948395099,34.4900615932447,0 -83.0790212167266,34.5189724434825,0 -83.1081211059023,34.5350165151609,0 -83.13736602628759,34.5678676740658,0 -83.1589505272632,34.5768318282397,0 -83.1648789222652,34.5989373632901,0 -83.23698727342099,34.6133215989917,0 -83.29889480454101,34.6629454181783,0 -83.3397900149061,34.6776926363039,0 -83.3506851506329,34.7096474786312,0 -83.3503341394554,34.72738151575,0 -83.3234241306547,34.752233551772,0 -83.32269057154549,34.787244331982,0 -83.3027537558249,34.8055316318054,0 -83.2701139291264,34.8150795057964,0 -83.26777101073991,34.8392299311095,0 -83.25042127245131,34.8397104674801,0 -83.25030657832789,34.8501663657462,0 -83.23568791389251,34.8623846921569,0 -83.243073026274,34.8780818464701,0 -83.2328036461865,34.8738209511595,0 -83.21942855420581,34.8891824860544,0 -83.203513267742,34.8841701297206,0 -83.1821802554349,34.9106474165588,0 -83.1583528037159,34.9176510672928,0 -83.1550259840766,34.9322800740411,0 -83.13756183146759,34.9304757693624,0 -83.1256365359246,34.940790436291,0 -83.1131011728063,34.9361251832685,0 -83.1273147785663,34.9543742120639,0 -83.12140170134001,34.9608933437966,0 -83.1155422841629,34.9546869901268,0 -83.1004503495987,34.9841622888642,0 -83.1061569738507,35.000366708131,0 -83.5128876420542,34.9921157535224,0 -83.5492972918908,34.9896284845873,0 -83.93789913149431,34.9894775119032,0 -83.9884542500545,34.9891518047362,0 -84.118152397807,34.9883069959845,0 -84.3237734916339,34.989090556154,0 -84.61868470932861,34.9887597674461,0 -84.7711343281899,34.9907572255424,0 -84.8004169251833,34.9928322796908,0 -84.96785715657791,34.9926829480827,0 -84.97279353781779,34.9926295267483,0 -85.2677172911793,34.9891498087636,0 -85.3599438878245,34.9899781417047,0 -85.4673839007084,34.9901237462044,0 -85.6089602162505,34.9901641616199,0 -85.5830580356282,34.8623226551191,0 -85.5346925955902,34.6224884025546,0 -85.52583413117669,34.5846856151065,0 -85.5118559301513,34.5230148510197,0 -85.46028592417321,34.2901615301398,0 -85.4165672299404,34.0869203579979,0 -85.3957377905852,33.9598292697156,0 -85.38401093584911,33.9054097874599,0 -85.33528685109771,33.6549230949434,0 -85.3049800767665,33.4905940310641,0 -85.2938249844532,33.425875708363,0 -85.2338462673976,33.129237260647,0 -85.2335028922441,33.1201394011529,0 -85.1807197284529,32.8718130182966,0 -85.1623013377526,32.8074457725548,0 -85.1280898176054,32.7770703815279,0 -85.1333007048373,32.7563151798039,0 -85.1248851250497,32.7443832224212,0 -85.1138678519411,32.7343891188468,0 -85.10773330416841,32.6899723746491,0 -85.0904749305908,32.6761523261383,0 -85.10380371878141,32.6459103823229,0 -85.0863240406897,32.6284512647951,0 -85.0841493949267,32.603004344931,0 -85.0707744216369,32.5812538387594,0 -84.9956522169706,32.518928479096,0 -84.9898150430422,32.4548361836926,0 -84.9653850518902,32.4294501858587,0 -84.970961884914,32.3968128124947,0 -84.9844889642181,32.3870933241337,0 -84.97166353138461,32.3715031963467,0 -85.0020899980221,32.3470785227396,0 -85.0053324510846,32.3295925258289,0 -84.92107090555641,32.2931369847317,0 -84.8946035025639,32.2687353881118,0 -84.8940158788823,32.2591761298648,0 -84.9053609608961,32.2495557759674,0 -84.92367962799079,32.2473889995768,0 -84.9160041260552,32.2285563686775,0 -84.9283716437355,32.2179784387895,0 -84.9757438025875,32.2122487204353,0 -84.9603852752889,32.1919284376309,0 -85.0078260926386,32.1788785384061,0 -85.0243823514691,32.1662750781008,0 -85.0533136579289,32.1266376448382,0 -85.046187259254,32.0908949913561,0 -85.0566549357244,32.0696439454843,0 -85.0620107617352,32.0500102920991,0 -85.0567002477577,32.0173765203509,0 -85.0700671081992,31.9807030736301,0 -85.11515025581549,31.9074247500776,0 -85.1355669344631,31.8548844137198,0 -85.1315611123421,31.7838145657199,0 -85.1301648712312,31.778853672117,0 + + + + + + + + + -81.48505559674619,30.9038830704629,0 -81.50330537724329,30.8817350483411,0 -81.4698871419111,30.8602588644255,0 -81.4794603415988,30.7368833934474,0 -81.45571660482371,30.7164274298842,0 -81.4030527080982,30.9388031406114,0 -81.41640510474601,30.970600047506,0 -81.48505559674619,30.9038830704629,0 + + + + + + + + + Hawaii + empty + + +states.AREA: + 6380.614 + + +states.STATE_NAME: +Hawaii + + +states.STATE_FIPS: +15 + + +states.SUB_REGION: +Pacific + + +states.STATE_ABBR: +HI + + +states.POP2000: + 1211537 + + +states.POP2001: + 1211960 + + +states.POP00_SQMI: + 190 + + +states.DEN_0_100: + 83 + + +USStates.ID: + 50 + + +USStates.State_Name: +Hawaii + + +USStates.Date_Entered: +Aug. 21 1959 + + +USStates.Year_Entered: +1959 + + +USStates.Year_Settled: +1820 + +]]> + #Style_5 + + + -156.326917860547,20.2401578536914,0 + + + + + + + -159.335174733889,21.9483433404175,0 -159.327130348878,22.0446395507162,0 -159.295025589769,22.1248124949548,0 -159.343195828355,22.1970166285359,0 -159.391366885913,22.2291198667724,0 -159.576012589057,22.2131796383001,0 -159.712505933171,22.1490592515515,0 -159.800814224332,22.0366665967853,0 -159.736592652746,21.9644203111023,0 -159.640246973766,21.9483657695954,0 -159.576021285803,21.8841361312636,0 -159.439545188912,21.8680716835921,0 -159.335174733889,21.9483433404175,0 + + + + + + + + + -160.073803556017,22.0041773078075,0 -160.121962433575,21.9639787234984,0 -160.22633646805,21.8915919620539,0 -160.242406159206,21.8032804408925,0 -160.202259673133,21.7953086498352,0 -160.170137686564,21.8675963686431,0 -160.089858388217,21.9158698594272,0 -160.04970969565,21.9881641068501,0 -160.073803556017,22.0041773078075,0 + + + + + + + + + -157.673329876454,21.2980271804006,0 -157.713472767801,21.3863351682207,0 -157.761642948927,21.4585875674916,0 -157.809815119729,21.4345051589313,0 -157.849959026307,21.5067588029631,0 -157.914179741199,21.6352084806278,0 -157.986428112199,21.6994328594403,0 -158.042626247904,21.6753505680564,0 -158.114894071646,21.5790166217416,0 -158.267431808754,21.5870425200507,0 -158.243342775004,21.5388789757719,0 -158.235318726083,21.4746525812457,0 -158.130951115411,21.3542322862678,0 -158.098833012334,21.2900079773187,0 -157.946306402713,21.3060610107082,0 -157.898134535461,21.3301442923012,0 -157.825871692713,21.249863668784,0 -157.721501646872,21.2819711706226,0 -157.681371117927,21.2739428101649,0 -157.673329876454,21.2980271804006,0 + + + + + + + + + -156.717872676999,21.1374197607644,0 -156.942682512532,21.1615268671346,0 -156.958733487556,21.2096935134305,0 -157.006903742467,21.1856106379825,0 -157.167471487889,21.1936404563437,0 -157.23169415835,21.2337763231398,0 -157.247747506123,21.1615304515084,0 -157.303948796958,21.1374484326638,0 -157.287897522787,21.0812505718402,0 -157.071131928318,21.1053309568586,0 -156.886484099806,21.049134117125,0 -156.766048197649,21.0651768177371,0 -156.717872676999,21.1374197607644,0 + + + + + + + + + -156.196045412482,20.6316494073652,0 -156.131808903973,20.6236229186799,0 -156.043511542555,20.6557325999668,0 -155.98731705257,20.7520616316876,0 -156.011392452548,20.8002253216075,0 -156.260263363072,20.9286712687479,0 -156.356603503292,20.9447263610079,0 -156.477022052544,20.8965651391117,0 -156.525191645863,20.9848701637724,0 -156.597439619788,21.0410647054158,0 -156.653636007318,21.0169850495629,0 -156.693782634023,20.9126240100612,0 -156.637586604165,20.8082609120439,0 -156.525193571704,20.7761496574975,0 -156.493074740185,20.7922042815103,0 -156.460971893198,20.7279810872564,0 -156.436879230878,20.6236212173367,0 -156.396734942946,20.567426981473,0 -156.276317407393,20.5834838609152,0 -156.196045412482,20.6316494073652,0 + + + + + + + + + -157.039050670938,20.928706972385,0 -157.055098211979,20.880538425907,0 -156.982826322974,20.8323776268078,0 -156.990863465776,20.7922371514621,0 -156.96676559866,20.7280207316388,0 -156.886487178396,20.7360494091678,0 -156.814225697816,20.7922527172797,0 -156.806205341549,20.8404186121726,0 -156.910585845163,20.9287186176943,0 -157.039050670938,20.928706972385,0 + + + + + + + + + -155.666192321268,18.921786345087,0 -155.537729780537,19.0422106324423,0 -155.521678713445,19.1224845466533,0 -155.304899038619,19.234878398743,0 -155.152372136648,19.2669919638143,0 -155.015881706841,19.3312115354762,0 -154.927581824535,19.4195186485267,0 -154.815187460665,19.4596764207728,0 -154.791096018678,19.5399604106849,0 -154.975762475196,19.6523353631656,0 -154.975763078096,19.7406434419399,0 -155.072105964772,19.7245855257612,0 -155.096185006144,19.8771146284228,0 -155.200550212445,19.9975288183811,0 -155.561825953369,20.134006968001,0 -155.73844208468,20.2062567699811,0 -155.858857946276,20.2704795241864,0 -155.8909788308,20.1741490505645,0 -155.834786659291,20.0617574252623,0 -155.826761720261,20.0055628964617,0 -155.882958698574,19.9333119780873,0 -155.979300942813,19.8209225278706,0 -156.043524655521,19.7807832517673,0 -155.971258610598,19.6282527113542,0 -155.947178326912,19.4837502062815,0 -155.874927042962,19.3713586083673,0 -155.907031019716,19.1305132974745,0 -155.858861500485,19.0101009103203,0 -155.778585834471,19.01009268801,0 -155.666192321268,18.921786345087,0 + + + + + + + + + Idaho + empty + + +states.AREA: + 83343.643 + + +states.STATE_NAME: +Idaho + + +states.STATE_FIPS: +16 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +ID + + +states.POP2000: + 1293953 + + +states.POP2001: + 1323472 + + +states.POP00_SQMI: + 16 + + +states.DEN_0_100: + 99 + + +USStates.ID: + 43 + + +USStates.State_Name: +Idaho + + +USStates.Date_Entered: +July 3 1890 + + +USStates.Year_Entered: +1890 + + +USStates.Year_Settled: +1842 + +]]> + #Style_5 + + + -114.661865415542,44.3858954726855,0 + + + + + + -117.026295220045,43.6790312226004,0 -117.018864363596,41.9947941808341,0 -116.992313337997,41.9947945094663,0 -115.947544658193,41.9945994628996,0 -115.024862911148,41.9965064559528,0 -114.269471632825,41.9959242345073,0 -114.039072662345,41.9953908974688,0 -112.989575449033,42.0011467864027,0 -112.147116504391,41.9990540573659,0 -112.100514491537,42.0023005848578,0 -111.494586313343,42.0001709690538,0 -111.04869741386,41.9962033494069,0 -111.046780328328,42.503251870505,0 -111.04921566545,43.0198830902658,0 -111.047498202203,43.2847346290475,0 -111.046771181184,43.5155282322774,0 -111.050405173289,43.9825533508377,0 -111.051560651262,44.4733232643312,0 -111.094630553034,44.4861244421476,0 -111.128918633835,44.5007569482957,0 -111.134358940584,44.5279024352059,0 -111.170241896337,44.5451861352417,0 -111.178764521847,44.5648509025126,0 -111.219507505818,44.5731699249139,0 -111.234233165171,44.6025621977815,0 -111.219797798385,44.6179816965382,0 -111.223971342305,44.6269081075219,0 -111.270665480153,44.6422120666433,0 -111.270207923466,44.6738019972086,0 -111.295668417103,44.6829380106443,0 -111.315475367488,44.7051930233212,0 -111.31922172667,44.7278640397875,0 -111.349977174405,44.7261775679182,0 -111.372309536392,44.7450870429474,0 -111.384959585063,44.7376939086963,0 -111.395084047622,44.7088695111883,0 -111.44363207933,44.7131796185895,0 -111.475425113078,44.7021622259545,0 -111.480804007084,44.6914159868954,0 -111.460691885141,44.6700230655225,0 -111.458265515114,44.6525553200246,0 -111.470167827235,44.6407103470055,0 -111.50769070953,44.6376885788042,0 -111.501747128314,44.6159712293443,0 -111.514526468783,44.5931969532598,0 -111.492903869929,44.5511890986189,0 -111.462827429646,44.5499420909707,0 -111.459325300921,44.5379218382476,0 -111.482573106114,44.536143833035,0 -111.490240946754,44.5286973145766,0 -111.56723085062,44.5528666934207,0 -111.605248563607,44.542989843785,0 -111.684862667357,44.5507519238675,0 -111.716997718561,44.5337606582907,0 -111.766918095449,44.5188253853155,0 -111.792608215621,44.5184627416638,0 -111.80783730012,44.5039818716956,0 -111.872502337514,44.5562658469912,0 -111.940385892152,44.5497266545093,0 -111.977818321591,44.5296761932588,0 -112.023613199364,44.5350432018407,0 -112.027077158683,44.5228438141025,0 -112.059366916596,44.5286115853182,0 -112.099896990645,44.5182317486371,0 -112.124190576071,44.5282529189526,0 -112.19965792462,44.5314495370004,0 -112.217763617989,44.538495263148,0 -112.230398525049,44.5594913548598,0 -112.256675563109,44.5599718966745,0 -112.282341327877,44.5417028629559,0 -112.342507416987,44.5251001904491,0 -112.34057705949,44.4971802630882,0 -112.367583641487,44.4492705303202,0 -112.420753287455,44.4492848652432,0 -112.458519702915,44.4688346426366,0 -112.501839547759,44.4629973763857,0 -112.539324359313,44.4774975037791,0 -112.653189032213,44.4808022867295,0 -112.714325884719,44.4969354760903,0 -112.733712266678,44.4843203521209,0 -112.779863145228,44.473921967913,0 -112.796227919073,44.4580108762872,0 -112.826691426867,44.4210844413589,0 -112.818709940506,44.3948197608762,0 -112.817396542611,44.3642025255851,0 -112.844275309657,44.353639685816,0 -112.870781128928,44.3699785388203,0 -112.887307562786,44.392852037925,0 -112.938281270743,44.407192303823,0 -112.985249652408,44.4355404997863,0 -113.012014532,44.4377151798982,0 -113.006658758598,44.4526157258091,0 -113.020309135991,44.4817760622967,0 -113.007713096479,44.5106119571576,0 -113.037821112649,44.5329591224566,0 -113.039660671342,44.5562941508867,0 -113.083036889648,44.5826813811508,0 -113.054289194175,44.6242889653874,0 -113.073143949778,44.6755255639002,0 -113.098955981719,44.6959159515966,0 -113.101703254015,44.7151730541415,0 -113.127431313459,44.7373793502759,0 -113.138273905949,44.7614392171565,0 -113.24033835154,44.8118408943235,0 -113.257154262582,44.810486836588,0 -113.318680101131,44.7802285072048,0 -113.340631071319,44.7790001716196,0 -113.350024223891,44.8075686572204,0 -113.42137886332,44.8336996325871,0 -113.445573357454,44.8512398138089,0 -113.496190944735,44.9306703825127,0 -113.487348245354,44.9395739483575,0 -113.463413760979,44.9407755008957,0 -113.448764850883,44.9495226314899,0 -113.44102942911,44.9981947865069,0 -113.458853128792,45.0274494937816,0 -113.455435394093,45.0433489576732,0 -113.486305515199,45.0583215917022,0 -113.490158803375,45.07121894252819,0 -113.520609069994,45.08206385133451,0 -113.510225662875,45.1078357229334,0 -113.552272678027,45.1075492325193,0 -113.574375982832,45.1177112498262,0 -113.571583860449,45.1345453195545,0 -113.594099232644,45.149742661863,0 -113.600928342409,45.1809921888967,0 -113.64559265708,45.2067902002949,0 -113.690120087671,45.262281529236,0 -113.68870893801,45.2777882479016,0 -113.739080720354,45.3215307727051,0 -113.741309985249,45.3823864841092,0 -113.775025938091,45.4101724087205,0 -113.785662417081,45.4456336800122,0 -113.769167956071,45.4777077122394,0 -113.772304324589,45.5070541264418,0 -113.780933520736,45.5168654883577,0 -113.833715005823,45.5149081483478,0 -113.803754486689,45.5837295106944,0 -113.822485335827,45.6006361604291,0 -113.852027200864,45.60956236649611,0 -113.903305686338,45.6134911520045,0 -113.902199681462,45.6372529821309,0 -113.923532205814,45.6551247458339,0 -113.926698671543,45.6712113532369,0 -113.964144746081,45.67937838995221,0 -113.971148905291,45.6973761439766,0 -114.009472169193,45.6863322994531,0 -114.019878777802,45.6723780179129,0 -114.010990085379,45.6525110636154,0 -114.018032071357,45.6407731495898,0 -114.05651557884,45.6251440063411,0 -114.082966989764,45.5863787056049,0 -114.118139289111,45.57112721879371,0 -114.132047849072,45.550382696738,0 -114.172667788196,45.54392407099141,0 -114.194808749935,45.5279173495385,0 -114.241997909503,45.5352908283129,0 -114.247880062291,45.5029457876717,0 -114.26223890106,45.4858597041806,0 -114.326434503356,45.4574246659907,0 -114.350246661543,45.4633830586196,0 -114.371457222895,45.485740801367,0 -114.419051016147,45.4990079989286,0 -114.433555120266,45.5276335826489,0 -114.462708066367,45.547847634842,0 -114.49659127146,45.5466496233752,0 -114.527392140633,45.5581929137358,0 -114.56092431692,45.5487399822622,0 -114.540957804767,45.59639733862921,0 -114.564678473634,45.624271464153,0 -114.501741735013,45.65239374591759,0 -114.510706655448,45.6740575393162,0 -114.497560885022,45.6944015040476,0 -114.534976768211,45.7229965521011,0 -114.541958001694,45.7459993063995,0 -114.563542382615,45.76239875426181,0 -114.517375770656,45.8100678088233,0 -114.499164076216,45.8426838388298,0 -114.473803267544,45.8394681128492,0 -114.443231585826,45.8526214179583,0 -114.407525017428,45.84645312785811,0 -114.392838283787,45.870886524333,0 -114.413530117056,45.9106511998636,0 -114.429460795441,45.9214773546562,0 -114.405290578501,45.9539789286456,0 -114.412447296507,45.971972990138,0 -114.484455408522,45.9898066653888,0 -114.474529639485,46.0097653411895,0 -114.494321056653,46.0234105503775,0 -114.465756583121,46.05081557880481,0 -114.456029627256,46.0822298311072,0 -114.477370071638,46.1073573510943,0 -114.506568594996,46.116142578097,0 -114.518944233429,46.13606300379761,0 -114.509613705042,46.1574178541686,0 -114.467017880608,46.1552626443821,0 -114.440879403543,46.1689689930953,0 -114.439553093386,46.2202541051873,0 -114.472833625773,46.2437832404928,0 -114.473795189375,46.25296144733741,0 -114.431795791851,46.2847113519319,0 -114.409796078984,46.3929118282104,0 -114.397016905685,46.39954564895069,0 -114.384024894777,46.4281789078305,0 -114.410714938833,46.4873716679663,0 -114.360467827582,46.5061249643996,0 -114.350115003954,46.51738981557321,0 -114.343319528083,46.58788169279891,0 -114.324712393283,46.6228397420843,0 -114.334685197666,46.6542270306183,0 -114.384017731174,46.6615966222723,0 -114.441535907613,46.64571558739091,0 -114.48471804306,46.6235748090716,0 -114.54039089668,46.63789093313041,0 -114.610825986771,46.6290480359896,0 -114.644740120825,46.6608240472296,0 -114.645038012873,46.6709214874172,0 -114.625926712927,46.6871072963735,0 -114.673887229565,46.73472166479179,0 -114.698431226356,46.73376015783131,0 -114.748105478154,46.695132417127,0 -114.782919473288,46.7030400738234,0 -114.777832199076,46.7557169515489,0 -114.794030033961,46.7665316733836,0 -114.840791891296,46.7755381340251,0 -114.866603242816,46.7970455479343,0 -114.902324956243,46.7994334872257,0 -114.948408839876,46.85244681299441,0 -114.940566557467,46.8908879547799,0 -114.92412521448,46.9071654671376,0 -114.964730239693,46.9252129542069,0 -115.001574268432,46.9588093410594,0 -115.037334581308,46.9630013040754,0 -115.055638385326,46.97335809520661,0 -115.081336055121,47.0265244081573,0 -115.135507084528,47.0635505060209,0 -115.148683842445,47.09174197245919,0 -115.172496072325,47.097570775052,0 -115.193073569516,47.1240264397241,0 -115.296234653795,47.179550129713,0 -115.325227834205,47.2451499352386,0 -115.343661098271,47.25502252875,0 -115.40820774964,47.2635936928256,0 -115.42664105155,47.2743741901806,0 -115.501930155564,47.2816443931147,0 -115.523064072441,47.2919825693658,0 -115.555520671095,47.3346132613456,0 -115.599535907233,47.3700033411226,0 -115.638782326482,47.3800438733229,0 -115.666477789603,47.3991675172781,0 -115.750326632884,47.4224758337817,0 -115.75010555794,47.4339660678209,0 -115.732481530032,47.4453037682126,0 -115.656087137581,47.449179888517,0 -115.643185737842,47.45779380748271,0 -115.64014181996,47.47523519828921,0 -115.692770525831,47.4895405775821,0 -115.701522643005,47.5208936310403,0 -115.742829391272,47.5336915052907,0 -115.69208790895,47.59072095328569,0 -115.698284137246,47.616080699199,0 -115.734067407585,47.6398797756934,0 -115.733665317341,47.6955544944202,0 -115.775727256626,47.7097326241589,0 -115.790537518206,47.74483840017609,0 -115.836742105247,47.75628147907741,0 -115.849323962062,47.8051824706779,0 -115.869809516855,47.82745247882439,0 -115.90392118837,47.841074097063,0 -115.937842286573,47.86712411466291,0 -115.998932367501,47.92514082913019,0 -116.025316086924,47.9649391580749,0 -116.053492448537,47.9761917715222,0 -116.055497508913,48.2084837718549,0 -116.05669220337,48.4986651887118,0 -116.063531289275,48.99995046269709,0 -117.032049523854,48.99993132673121,0 -117.029111695195,48.8380752730768,0 -117.038868452187,48.0461859667744,0 -117.037471831606,47.9710924196381,0 -117.04179475453,47.3614417250081,0 -117.042391922165,47.2585012691796,0 -117.040968412195,47.11931911025491,0 -117.04192619733,46.536601774571,0 -117.038558547134,46.4279805738524,0 -117.044470505763,46.3885739799344,0 -117.064184656311,46.3486979530599,0 -117.027973590879,46.3354269634861,0 -117.001642419838,46.3024487520609,0 -116.972724840347,46.24930935868821,0 -116.967490477604,46.1975539420731,0 -116.929426274379,46.165483265634,0 -116.961637658488,46.0972742225682,0 -116.987211805214,46.07850889735371,0 -116.957723390605,46.06568768466321,0 -116.919132428078,45.995175487463,0 -116.89819704847,45.98051594169479,0 -116.856471818728,45.9035973451801,0 -116.791262487748,45.84586710608541,0 -116.773707129394,45.8197636132853,0 -116.703180308495,45.8191692439007,0 -116.654397936737,45.7806301604239,0 -116.560631908125,45.7474245686917,0 -116.52827492994,45.7107280103095,0 -116.514915090692,45.6644908956717,0 -116.470418797949,45.6062572703347,0 -116.478551260109,45.566058496306,0 -116.554503319145,45.4936471953906,0 -116.565771964133,45.4598636753961,0 -116.672265496083,45.335410289815,0 -116.688813374421,45.2623508428019,0 -116.736585294563,45.1373070907968,0 -116.761268252635,45.1063007182859,0 -116.77809192451,45.0994801033861,0 -116.787210028569,45.075752513234,0 -116.807307341613,45.0497552840876,0 -116.854513190899,45.0169452945603,0 -116.848097045025,45.0000421568822,0 -116.855887624852,44.9799657227584,0 -116.848158998462,44.9717412377244,0 -116.831396506105,44.9726336704264,0 -116.847556799088,44.9548499437335,0 -116.835396183444,44.9201440913313,0 -116.867076347262,44.8686084474449,0 -116.897366859846,44.8485551014903,0 -116.909620757374,44.8289402518746,0 -116.951494105467,44.7760351265198,0 -117.039572246368,44.749115712801,0 -117.066513051783,44.6975569657362,0 -117.079353923671,44.6893364257274,0 -117.130503910469,44.5725238664124,0 -117.143939864097,44.5592869485007,0 -117.1451606624,44.5346556241885,0 -117.187391126196,44.5118056022903,0 -117.203962567437,44.4857855049483,0 -117.224409907123,44.4729870546087,0 -117.217221802736,44.4278552410788,0 -117.236920894466,44.3899826429371,0 -117.201602017039,44.3394380033709,0 -117.217455714498,44.3006651372011,0 -117.213571878683,44.2847196851647,0 -117.170722952687,44.2533327374994,0 -117.143278940324,44.2506322436234,0 -117.112691921322,44.2698052758843,0 -117.100560675447,44.2670779004604,0 -117.081386867577,44.2438466037113,0 -117.052027613364,44.2315559603412,0 -117.030352023293,44.2493365546444,0 -116.99270711064,44.2470633967105,0 -116.976127235356,44.225182362645,0 -116.981871729265,44.1978422986385,0 -116.913051097385,44.1773044506484,0 -116.902254132599,44.1463138321419,0 -116.946886686949,44.0930258111951,0 -116.963443200146,44.090298169114,0 -116.976817765704,44.0738948202899,0 -116.933593484224,44.0142025695716,0 -116.967956848099,43.9631956105834,0 -116.959715844454,43.9285769433414,0 -116.978141228786,43.9044410423274,0 -116.978148119756,43.8734692305504,0 -116.985769945695,43.8593508862889,0 -117.016220426787,43.8529724419634,0 -117.010505344258,43.8397697264411,0 -117.027626548295,43.8315678483138,0 -117.037117330473,43.800141963624,0 -117.023794477971,43.7537015926794,0 -117.026295220045,43.6790312226004,0 + + + + + + + + Illinois + empty + + +states.AREA: + 56299.387 + + +states.STATE_NAME: +Illinois + + +states.STATE_FIPS: +17 + + +states.SUB_REGION: +E N Cen + + +states.STATE_ABBR: +IL + + +states.POP2000: + 12419293 + + +states.POP2001: + 12520522 + + +states.POP00_SQMI: + 221 + + +states.DEN_0_100: + 80 + + +USStates.ID: + 21 + + +USStates.State_Name: +Illinois + + +USStates.Date_Entered: +Dec. 3 1818 + + +USStates.Year_Entered: +1818 + + +USStates.Year_Settled: +1720 + +]]> + #Style_5 + + + -89.20376782672931,40.0640001695085,0 + + + + + + -88.0715914713672,37.5110386032244,0 -88.134202057652,37.5836204217666,0 -88.15766418948979,37.628526559458,0 -88.159404386901,37.6607335395919,0 -88.1336703044624,37.7007907786447,0 -88.0725039638053,37.7354461998767,0 -88.0356073439534,37.8057279050194,0 -88.0860624224551,37.8176568675887,0 -88.0892974561442,37.8312944778462,0 -88.04216892231911,37.8275671956745,0 -88.03427224647881,37.8437911301456,0 -88.0757701619268,37.8678545841173,0 -88.101489939404,37.895351144247,0 -88.10011663858219,37.9062154284197,0 -88.04490053507431,37.8960489721139,0 -88.0266198217967,37.9058031174197,0 -88.0304728445231,37.9176363841544,0 -88.084033312787,37.9237058057134,0 -88.07897489688909,37.9440458253834,0 -88.0646539089454,37.9298283441586,0 -88.0418029841928,37.9345432471494,0 -88.0425431233507,37.9563100133668,0 -88.0217369738459,37.9751012485706,0 -88.0292447284786,38.0082816708523,0 -88.0217296742097,38.0335770457263,0 -88.04150591052481,38.0383492879413,0 -88.0431234631707,38.0451661890239,0 -88.03476137876019,38.0541307602029,0 -87.9753264381124,38.0733527756694,0 -87.96489699678421,38.0967941055912,0 -88.0123608797262,38.092392337746,0 -88.018579177984,38.1033482133547,0 -87.97353404593839,38.1318056958815,0 -87.9505995597833,38.1369591387537,0 -87.932021762155,38.1575737007801,0 -87.9323194769958,38.1711770029956,0 -87.9779598594692,38.2007606004592,0 -87.9860398723023,38.2348604423061,0 -87.98005073657551,38.241131787639,0 -87.92595000854421,38.3048183818949,0 -87.9136816882386,38.3023921025994,0 -87.91413936139951,38.2810944074491,0 -87.8884965521701,38.3007057736598,0 -87.8834763762205,38.3155984794844,0 -87.8740691509129,38.3168343756391,0 -87.8630366972759,38.2854084473723,0 -87.85011225303271,38.2861445830363,0 -87.834532977994,38.3525705303994,0 -87.78404833397759,38.3781708227389,0 -87.7484565770349,38.4180116772378,0 -87.7389806672907,38.4455273875839,0 -87.75868794190011,38.4571433599795,0 -87.7561244372712,38.4661728281435,0 -87.6928444866203,38.4815804420218,0 -87.6799352433336,38.504053007157,0 -87.65355967551621,38.5004900554631,0 -87.65141571258729,38.5154169292116,0 -87.6729692972829,38.547471787341,0 -87.6528804379318,38.5739189952751,0 -87.6406195798681,38.5932251150025,0 -87.61985172548459,38.5992561043613,0 -87.6286714982266,38.6229644058157,0 -87.6252152154989,38.642857998943,0 -87.588501337721,38.6722157708788,0 -87.5439137139998,38.6860210401793,0 -87.50833650081,38.7366800091112,0 -87.5080237439807,38.7697683547433,0 -87.5190486024822,38.7767453485141,0 -87.50790945748121,38.7956049059644,0 -87.5505288034456,38.8579361229776,0 -87.559081635284,38.869856862415,0 -87.5392219544495,38.9049057469745,0 -87.5302039208332,38.9319629772649,0 -87.533492428354,38.9637465338765,0 -87.5479276301993,38.9771206273788,0 -87.5918815898562,38.9941261861117,0 -87.581772429957,38.9957855730057,0 -87.58534329877401,39.062476908506,0 -87.6120316181093,39.0846475088299,0 -87.630891938142,39.0890152076407,0 -87.6316931128207,39.1039838431484,0 -87.66228775754109,39.1135088826113,0 -87.6594801644014,39.1306938293312,0 -87.6703524034648,39.1467190724917,0 -87.64428222970631,39.1685465310611,0 -87.60795025538761,39.196107453445,0 -87.5942322592859,39.1981674228522,0 -87.58861691821311,39.2085051229499,0 -87.5845886371286,39.2487915548446,0 -87.60692047638401,39.2582021441748,0 -87.6158242074897,39.2814561230773,0 -87.61064369979241,39.2976988710138,0 -87.62526201039,39.307441385019,0 -87.5976886138014,39.3383057314831,0 -87.540237703126,39.3505623907844,0 -87.5385896158313,39.4774828667869,0 -87.5355977432246,39.6093761467476,0 -87.5357932746107,39.8873391886275,0 -87.53535686974401,40.1662317074521,0 -87.5356953046261,40.4832822109023,0 -87.5371908503425,40.4946461888117,0 -87.5326961499881,40.7454479031807,0 -87.53205270695879,41.0099629234772,0 -87.5317652032273,41.1737899174832,0 -87.53248451078061,41.3013387221503,0 -87.5326861745456,41.4697503872218,0 -87.5299063108434,41.7236260875045,0 -87.6126760323676,41.8473653861124,0 -87.67060590164419,42.0598519291133,0 -87.7603024221355,42.1564820299593,0 -87.837014916084,42.3142352747747,0 -87.7973819562241,42.4891528495242,0 -88.1947902657089,42.4896315487889,0 -88.29798928423431,42.4919886619727,0 -88.7066230964608,42.4896714789996,0 -88.76505788322029,42.4909223638021,0 -88.93918704924511,42.4908797705788,0 -89.35955888342031,42.4979178413637,0 -89.4006131996787,42.4975019535639,0 -89.8347389483978,42.5034685663175,0 -89.92369141557219,42.5041158651446,0 -90.42010292616368,42.5083649645861,0 -90.6384560963599,42.5093636839918,0 -90.6518991107146,42.4947005718712,0 -90.64847377380832,42.475647019796,0 -90.60595537042839,42.4605645940667,0 -90.5637116510656,42.4218436822154,0 -90.4911711742602,42.3887914637005,0 -90.44172508028031,42.3600836299974,0 -90.4278091232618,42.340644954386,0 -90.4181124359413,42.2639391318113,0 -90.4073017721273,42.2426617515853,0 -90.3678582678001,42.2102266723886,0 -90.3237299895918,42.1973374145764,0 -90.23106311278499,42.1597414854526,0 -90.19170240605,42.1227099310285,0 -90.1762144636605,42.1205242372018,0 -90.1667767223318,42.1037669165116,0 -90.1682262959709,42.0610667627835,0 -90.1506630602384,42.0334532086115,0 -90.1427967503368,41.9839895278463,0 -90.15464484512322,41.9308021367651,0 -90.19596566516668,41.8061669912383,0 -90.2554387407709,41.7817690413387,0 -90.30501586217991,41.756497081381,0 -90.32615702333789,41.722767950897,0 -90.34126241056562,41.6491222689255,0 -90.3394762639213,41.6028314888971,0 -90.34849427679229,41.5868824103659,0 -90.42313526378251,41.5673054184025,0 -90.43509834614001,41.5436125873014,0 -90.45512615442569,41.5275795523085,0 -90.5409754772051,41.5260034668008,0 -90.6008378029169,41.5096188031289,0 -90.6589297375422,41.4623507046517,0 -90.708354613045,41.4500936593358,0 -90.78004268318989,41.44985255988,0 -90.84428378227449,41.4446525356188,0 -90.949800649924,41.4212638456605,0 -91.0008427707096,41.4311127421861,0 -91.02763777623071,41.4235364759013,0 -91.05593554169049,41.4014073054416,0 -91.07342897262021,41.3349253706845,0 -91.10249645615799,41.2678481882471,0 -91.10167201924359,41.2315519929841,0 -91.0564663602341,41.176290257977,0 -91.0184022505193,41.1658577458188,0 -90.9904854657331,41.1444046114074,0 -90.95792988917549,41.1043932523764,0 -90.95479391031741,41.0703973298849,0 -90.96085093423019,40.9505415875963,0 -90.98341896936651,40.9239649616112,0 -91.0493536735639,40.8796233416421,0 -91.08905026959479,40.8337674861069,0 -91.09289515262361,40.7615871092817,0 -91.12013244580791,40.7054430853053,0 -91.1293030749525,40.6821889727746,0 -91.16264440347912,40.6563523669938,0 -91.2150599786405,40.643859446667,0 -91.2622111209491,40.6395869370641,0 -91.3757627300253,40.6034802448646,0 -91.4112710901028,40.5730126128812,0 -91.41302597331141,40.5480345602038,0 -91.38225565222849,40.5285383313692,0 -91.37494647812029,40.5036976293474,0 -91.38555116553908,40.4472940413254,0 -91.3729083225561,40.4030325886378,0 -91.38590919839099,40.3924048874231,0 -91.41896859131511,40.3869192694689,0 -91.44874715640491,40.3719466182637,0 -91.486849457272,40.309668416,0 -91.4990871746939,40.2514224267414,0 -91.50670141476959,40.2005039120117,0 -91.51628405060909,40.1345898206457,0 -91.50416020997871,40.0667571230242,0 -91.4874432777371,40.0057984567776,0 -91.4473948316692,39.9461098791871,0 -91.43054077302692,39.9218827311204,0 -91.4342030257459,39.9018745899127,0 -91.4511409854999,39.885288198019,0 -91.4493403590742,39.8630942448561,0 -91.381863132745,39.8038177672296,0 -91.3735696173857,39.7613181753518,0 -91.3672369870804,39.7246854919977,0 -91.31781179944051,39.6859625802781,0 -91.2033893787345,39.6000674783423,0 -91.15632949744598,39.5526394130489,0 -91.09375072632439,39.5289731742514,0 -91.064521543479,39.4740300232192,0 -91.03647490820309,39.4444585084789,0 -90.94802423776449,39.4006319007784,0 -90.8506238710589,39.3504997276601,0 -90.77946911185738,39.2968502329079,0 -90.7382075249523,39.2478582113647,0 -90.73246246782379,39.2247947417977,0 -90.71831723958958,39.1959215056912,0 -90.7168599355041,39.1442594879132,0 -90.6905224771304,39.0937493584583,0 -90.7077119263589,39.0582272816598,0 -90.70619359871029,39.0378416951969,0 -90.66899973918559,38.9353034194491,0 -90.6273348623125,38.8808451829242,0 -90.57044835788962,38.8713768681923,0 -90.5305451069931,38.8916590934777,0 -90.4699576683671,38.9592275775329,0 -90.41318604000151,38.9623782480884,0 -90.31985371572098,38.9249561810614,0 -90.2790431101957,38.9247652789138,0 -90.2440385800512,38.9145571194291,0 -90.13292049439282,38.8530794199913,0 -90.1132283291809,38.8305155786969,0 -90.1218345138212,38.8005591450278,0 -90.13528557177762,38.7855333244896,0 -90.1635076675385,38.7731473780178,0 -90.19668164834522,38.7240148841336,0 -90.2023506849595,38.7004136293542,0 -90.1836888738229,38.6588222213685,0 -90.1838189833793,38.610322629253,0 -90.24105709170181,38.5628573013572,0 -90.2613445745186,38.532820806846,0 -90.2658995864079,38.5187409219187,0 -90.30195808265761,38.4274101853512,0 -90.3397250925035,38.3909000937545,0 -90.35880701471911,38.365383796682,0 -90.36946594646452,38.3236130942444,0 -90.36488893881901,38.2343531960061,0 -90.3368353674101,38.1887672607723,0 -90.2897533449443,38.1668707739162,0 -90.25417712909579,38.1222235068627,0 -90.20764422452261,38.0889589210515,0 -90.13482705649538,38.0540042508408,0 -90.1194535601973,38.0323252746278,0 -90.04203572235682,37.9932585919637,0 -90.01092211725509,37.9693709792311,0 -89.95833872049469,37.9636867798315,0 -89.97902314782711,37.9119372642027,0 -89.93798377619601,37.8780970980944,0 -89.900659718619,37.8759567792384,0 -89.8669213710244,37.8919285019704,0 -89.8611532194338,37.9055391707122,0 -89.8518221998746,37.9051156711928,0 -89.728551127852,37.8410437278203,0 -89.6911585166015,37.8048461895875,0 -89.6759604497414,37.784021807452,0 -89.6665610141995,37.7455048947008,0 -89.58153539397119,37.7061554249312,0 -89.5216197606815,37.6948481923868,0 -89.51347129814729,37.6798905957089,0 -89.51927739008779,37.6504256791403,0 -89.5134636137585,37.6159786570251,0 -89.52506805859341,37.5720063661821,0 -89.4948777729593,37.4917750136486,0 -89.4537142750772,37.4532354416246,0 -89.4276653438195,37.4110680347262,0 -89.43582789426451,37.3557666795513,0 -89.46883367402491,37.3394589952529,0 -89.5006722080316,37.329491318765,0 -89.5139774032488,37.3050126842203,0 -89.51397668384681,37.276452254325,0 -89.48968358551591,37.2560512507203,0 -89.46539822681051,37.2537814318187,0 -89.4683040002904,37.2243166291394,0 -89.44060600449021,37.165367829282,0 -89.42388077877629,37.1372534192951,0 -89.3800701656133,37.0991331193152,0 -89.3830287336186,37.0492635096727,0 -89.3110577890705,37.0097321155337,0 -89.28284342367,36.9992571418446,0 -89.26207602720631,37.0087367322465,0 -89.26431960659031,37.0277834462293,0 -89.3097775142834,37.0609596218128,0 -89.30336936544271,37.0854347008365,0 -89.28431079352841,37.0912941061444,0 -89.26413039669779,37.0871742876795,0 -89.2377536103058,37.0417835282019,0 -89.2101262118458,37.0290237051986,0 -89.1935842098097,36.9868222806571,0 -89.1299298602513,36.9881656914537,0 -89.1503164771803,36.9984916525611,0 -89.1744039557536,37.0257625307982,0 -89.16962098937491,37.0642870560925,0 -89.14641970199381,37.0932369170363,0 -89.1168931380891,37.1121885561653,0 -89.0651040416988,37.1859115907085,0 -88.99324011836519,37.2200879803029,0 -88.9325677662407,37.2184595035745,0 -88.8633498471503,37.2022475575954,0 -88.7465598581524,37.1521615318569,0 -88.73916655930481,37.1412363376799,0 -88.6884212086995,37.1354651044129,0 -88.6142679530367,37.1091025287746,0 -88.5593190002438,37.0728714131831,0 -88.5173176378463,37.0648267364289,0 -88.4907432667963,37.0682371308779,0 -88.4768417264925,37.0722004387704,0 -88.4505110390145,37.0987273102449,0 -88.42255499105021,37.1569654245737,0 -88.450738961298,37.205724438504,0 -88.50146891523821,37.2578364471264,0 -88.511365178177,37.2969057632051,0 -88.4676859561995,37.4008084371049,0 -88.419893554403,37.4203432412273,0 -88.3592141681292,37.4093610567464,0 -88.3117424820464,37.4429033025395,0 -88.0879105655745,37.4763216973515,0 -88.0715914713672,37.5110386032244,0 + + + + + + + + Indiana + empty + + +states.AREA: + 36400.304 + + +states.STATE_NAME: +Indiana + + +states.STATE_FIPS: +18 + + +states.SUB_REGION: +E N Cen + + +states.STATE_ABBR: +IN + + +states.POP2000: + 6080485 + + +states.POP2001: + 6138368 + + +states.POP00_SQMI: + 167 + + +states.DEN_0_100: + 85 + + +USStates.ID: + 19 + + +USStates.State_Name: +Indiana + + +USStates.Date_Entered: +Dec. 11 1816 + + +USStates.Year_Entered: +1816 + + +USStates.Year_Settled: +1733 + +]]> + #Style_5 + + + -86.27615732038611,39.9127401204667,0 + + + + + + -86.3416058899801,38.1772881494571,0 -86.29767433252459,38.1503040958879,0 -86.29144007500941,38.0784895277861,0 -86.277698957837,38.058172975235,0 -86.2521549356747,38.0407215021446,0 -86.1906216841403,38.0177584307759,0 -86.104986573394,38.0113361451773,0 -86.05271568926411,37.9667844806183,0 -86.0316198158307,37.9929506600364,0 -86.0066633201115,38.0017670737263,0 -85.9585820940509,38.0118406095775,0 -85.93087193559511,38.034048876233,0 -85.9147511151841,38.0648748591422,0 -85.9120745452086,38.1800014838715,0 -85.8523357521911,38.238561041348,0 -85.8399076966583,38.2762914813239,0 -85.8065513133062,38.2861792248908,0 -85.7862108031498,38.2823915940124,0 -85.7469260083932,38.2703150949771,0 -85.681388997794,38.3009537036963,0 -85.654228238662,38.3377528692459,0 -85.64359297482039,38.3836879378367,0 -85.6126402894388,38.446670375764,0 -85.50720002378741,38.471419551854,0 -85.4663821281019,38.5181753628103,0 -85.432369780701,38.5370160928693,0 -85.41746171924881,38.5614756142213,0 -85.4244045991195,38.5848401599215,0 -85.4536792483365,38.6946745390103,0 -85.4466906213012,38.7248406803013,0 -85.41818661626441,38.7384171670398,0 -85.33500919580089,38.7370064025018,0 -85.2713939330139,38.7443767592676,0 -85.2051618437764,38.6958170413595,0 -85.16093321350211,38.6951765052421,0 -85.1196570780868,38.7141393628001,0 -85.06845466106159,38.750424603378,0 -85.0250730726016,38.764291113864,0 -84.9756111877111,38.7806410183922,0 -84.8187802303235,38.7934099982582,0 -84.82442619105041,38.8344629497042,0 -84.78744612597821,38.8666434823042,0 -84.7886668678083,38.8843852980114,0 -84.8032240050715,38.8971908595052,0 -84.8597435114244,38.9020425223312,0 -84.8752543860379,38.9094313024092,0 -84.8758801493223,38.9276041700824,0 -84.846315847352,38.9546310780086,0 -84.83444439657789,38.98277550246,0 -84.8442256667783,39.0058310025456,0 -84.8762931465368,39.0328954474865,0 -84.8899961256038,39.0506485732317,0 -84.8867079668198,39.0650450015205,0 -84.8278613547987,39.1036877674048,0 -84.81148058301,39.1025855115064,0 -84.8120705333745,39.3030292262759,0 -84.8120249021854,39.3123331649208,0 -84.8111048340875,39.5131632038426,0 -84.8110367793544,39.5640506850582,0 -84.808696532672,39.7332992702085,0 -84.8061497587903,39.9171665438967,0 -84.8035641264148,40.013990635484,0 -84.79538778828569,40.3195005333353,0 -84.7945562939653,40.3530507566997,0 -84.7932521538178,40.5887382366961,0 -84.7930613218788,40.7288603729197,0 -84.79102327254211,40.9377084936207,0 -84.79052709599461,40.9883412320642,0 -84.79158626712351,41.2531325315222,0 -84.7909755666301,41.2838180261002,0 -84.7918972237936,41.4278994604409,0 -84.79136990395649,41.5304919381552,0 -84.79037747295131,41.6974947329852,0 -84.7884777858482,41.7609594561938,0 -84.8260080463026,41.7618751066694,0 -85.1931406144237,41.7628675471372,0 -85.29720963584781,41.7635810035748,0 -85.65945882918869,41.7626275140628,0 -85.79922697228621,41.7635349679273,0 -86.0683022053847,41.7646284325784,0 -86.2345652919433,41.7648642479853,0 -86.5251809764443,41.7655403363901,0 -86.8348296412819,41.7655047552312,0 -86.9424598927725,41.7165034838214,0 -87.2338545044322,41.6261887207928,0 -87.3947466651328,41.6341912134461,0 -87.4419740387024,41.6581129712715,0 -87.41930696191859,41.6763663513711,0 -87.46371089171021,41.671624547774,0 -87.5299063108434,41.7236260875045,0 -87.5326861745456,41.4697503872218,0 -87.53248451078061,41.3013387221503,0 -87.5317652032273,41.1737899174832,0 -87.53205270695879,41.0099629234772,0 -87.5326961499881,40.7454479031807,0 -87.5371908503425,40.4946461888117,0 -87.5356953046261,40.4832822109023,0 -87.53535686974401,40.1662317074521,0 -87.5357932746107,39.8873391886275,0 -87.5355977432246,39.6093761467476,0 -87.5385896158313,39.4774828667869,0 -87.540237703126,39.3505623907844,0 -87.5976886138014,39.3383057314831,0 -87.62526201039,39.307441385019,0 -87.61064369979241,39.2976988710138,0 -87.6158242074897,39.2814561230773,0 -87.60692047638401,39.2582021441748,0 -87.5845886371286,39.2487915548446,0 -87.58861691821311,39.2085051229499,0 -87.5942322592859,39.1981674228522,0 -87.60795025538761,39.196107453445,0 -87.64428222970631,39.1685465310611,0 -87.6703524034648,39.1467190724917,0 -87.6594801644014,39.1306938293312,0 -87.66228775754109,39.1135088826113,0 -87.6316931128207,39.1039838431484,0 -87.630891938142,39.0890152076407,0 -87.6120316181093,39.0846475088299,0 -87.58534329877401,39.062476908506,0 -87.581772429957,38.9957855730057,0 -87.5918815898562,38.9941261861117,0 -87.5479276301993,38.9771206273788,0 -87.533492428354,38.9637465338765,0 -87.5302039208332,38.9319629772649,0 -87.5392219544495,38.9049057469745,0 -87.559081635284,38.869856862415,0 -87.5505288034456,38.8579361229776,0 -87.50790945748121,38.7956049059644,0 -87.5190486024822,38.7767453485141,0 -87.5080237439807,38.7697683547433,0 -87.50833650081,38.7366800091112,0 -87.5439137139998,38.6860210401793,0 -87.588501337721,38.6722157708788,0 -87.6252152154989,38.642857998943,0 -87.6286714982266,38.6229644058157,0 -87.61985172548459,38.5992561043613,0 -87.6406195798681,38.5932251150025,0 -87.6528804379318,38.5739189952751,0 -87.6729692972829,38.547471787341,0 -87.65141571258729,38.5154169292116,0 -87.65355967551621,38.5004900554631,0 -87.6799352433336,38.504053007157,0 -87.6928444866203,38.4815804420218,0 -87.7561244372712,38.4661728281435,0 -87.75868794190011,38.4571433599795,0 -87.7389806672907,38.4455273875839,0 -87.7484565770349,38.4180116772378,0 -87.78404833397759,38.3781708227389,0 -87.834532977994,38.3525705303994,0 -87.85011225303271,38.2861445830363,0 -87.8630366972759,38.2854084473723,0 -87.8740691509129,38.3168343756391,0 -87.8834763762205,38.3155984794844,0 -87.8884965521701,38.3007057736598,0 -87.91413936139951,38.2810944074491,0 -87.9136816882386,38.3023921025994,0 -87.92595000854421,38.3048183818949,0 -87.98005073657551,38.241131787639,0 -87.9860398723023,38.2348604423061,0 -87.9779598594692,38.2007606004592,0 -87.9323194769958,38.1711770029956,0 -87.932021762155,38.1575737007801,0 -87.9505995597833,38.1369591387537,0 -87.97353404593839,38.1318056958815,0 -88.018579177984,38.1033482133547,0 -88.0123608797262,38.092392337746,0 -87.96489699678421,38.0967941055912,0 -87.9753264381124,38.0733527756694,0 -88.03476137876019,38.0541307602029,0 -88.0431234631707,38.0451661890239,0 -88.04150591052481,38.0383492879413,0 -88.0217296742097,38.0335770457263,0 -88.0292447284786,38.0082816708523,0 -88.0217369738459,37.9751012485706,0 -88.0425431233507,37.9563100133668,0 -88.0418029841928,37.9345432471494,0 -88.0646539089454,37.9298283441586,0 -88.07897489688909,37.9440458253834,0 -88.084033312787,37.9237058057134,0 -88.0304728445231,37.9176363841544,0 -88.0266198217967,37.9058031174197,0 -88.04490053507431,37.8960489721139,0 -88.10011663858219,37.9062154284197,0 -88.101489939404,37.895351144247,0 -88.0757701619268,37.8678545841173,0 -88.03427224647881,37.8437911301456,0 -88.04216892231911,37.8275671956745,0 -88.0892974561442,37.8312944778462,0 -88.0860624224551,37.8176568675887,0 -88.0356073439534,37.8057279050194,0 -88.0112228968478,37.8013522474257,0 -87.9587380494242,37.7762242517409,0 -87.9396104384072,37.7995510678409,0 -87.9201699786944,37.8097285459625,0 -87.9102286413016,37.8386134566058,0 -87.93684884849461,37.8752235361624,0 -87.9344837893137,37.904203896365,0 -87.92189490993729,37.9199089300241,0 -87.89903644654829,37.9245969463054,0 -87.85718741424731,37.8909469157228,0 -87.8236471993993,37.8782550216566,0 -87.7537824326935,37.8981288619025,0 -87.72820001539741,37.8945849893321,0 -87.7094081501652,37.8997539244585,0 -87.6797209569085,37.8970493378792,0 -87.68471741164321,37.8363728161595,0 -87.6516958656896,37.8281751349818,0 -87.60758877766089,37.8438192895582,0 -87.59363445095011,37.8649107154254,0 -87.5947183783029,37.8907666463449,0 -87.6271375737057,37.9234546658806,0 -87.6043257240091,37.9711573198373,0 -87.5048029485417,37.9156270031471,0 -87.4522884037149,37.9365207505541,0 -87.3875506289597,37.9349692155165,0 -87.3105589119421,37.8937184166169,0 -87.27274593889131,37.8708194103053,0 -87.22676182555399,37.8491183470039,0 -87.1757806882666,37.8386401947759,0 -87.1580798741816,37.826967486048,0 -87.13187941921321,37.7897363615659,0 -87.1064270674831,37.7842511762003,0 -87.0713083041007,37.8071361431403,0 -87.03648000837271,37.9080054345509,0 -87.0131563777109,37.9247639268183,0 -86.989031549046,37.9306161664831,0 -86.93157291368379,37.938040724569,0 -86.900077899892,37.9536969879516,0 -86.8632727013398,37.9869202326586,0 -86.8263071552482,37.9915597077091,0 -86.80281549728009,37.9787998846179,0 -86.7538255847893,37.8983593638332,0 -86.7288765680828,37.8946214413437,0 -86.6891259363411,37.9118535383339,0 -86.6686555016737,37.9131967871253,0 -86.66030864545441,37.9025728769351,0 -86.67066979692341,37.8606408643363,0 -86.66592415784319,37.8473808714035,0 -86.645568203442,37.8460003365155,0 -86.6147824607846,37.8579754898858,0 -86.59830982177959,37.9210720274265,0 -86.5817839150946,37.9256653787747,0 -86.5410872028347,37.9215158308346,0 -86.5227377872978,37.9278716585056,0 -86.516901010803,37.9422420486058,0 -86.5308478759636,37.9874773037153,0 -86.52783439059689,38.0186932030166,0 -86.51909122836111,38.0470479141293,0 -86.5031147440645,38.0516487974382,0 -86.4583673572556,38.0591608698586,0 -86.4424675823122,38.0759953511702,0 -86.4425211885206,38.0886981996705,0 -86.4743369239623,38.1117076402344,0 -86.46484600102311,38.1291561416585,0 -86.4525242238683,38.1297552896484,0 -86.40718125377769,38.1082185848164,0 -86.39367710683101,38.1232944153849,0 -86.3440391531709,38.1342701851064,0 -86.3354178455955,38.1440282528917,0 -86.34312388818169,38.1555598192453,0 -86.3871010468,38.1680214834694,0 -86.3883069100136,38.1948080328253,0 -86.3643499429474,38.1932902325194,0 -86.3416058899801,38.1772881494571,0 + + + + + + + + Iowa + empty + + +states.AREA: + 56257.965 + + +states.STATE_NAME: +Iowa + + +states.STATE_FIPS: +19 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +IA + + +states.POP2000: + 2926324 + + +states.POP2001: + 2941287 + + +states.POP00_SQMI: + 52 + + +states.DEN_0_100: + 95 + + +USStates.ID: + 29 + + +USStates.State_Name: +Iowa + + +USStates.Date_Entered: +Dec. 28 1846 + + +USStates.Year_Entered: +1846 + + +USStates.Year_Settled: +1788 + +]]> + #Style_5 + + + -93.5010908992209,42.0759891389773,0 + + + + + + -91.12013244580791,40.7054430853053,0 -91.09289515262361,40.7615871092817,0 -91.08905026959479,40.8337674861069,0 -91.0493536735639,40.8796233416421,0 -90.98341896936651,40.9239649616112,0 -90.96085093423019,40.9505415875963,0 -90.95479391031741,41.0703973298849,0 -90.95792988917549,41.1043932523764,0 -90.9904854657331,41.1444046114074,0 -91.0184022505193,41.1658577458188,0 -91.0564663602341,41.176290257977,0 -91.10167201924359,41.2315519929841,0 -91.10249645615799,41.2678481882471,0 -91.07342897262021,41.3349253706845,0 -91.05593554169049,41.4014073054416,0 -91.02763777623071,41.4235364759013,0 -91.0008427707096,41.4311127421861,0 -90.949800649924,41.4212638456605,0 -90.84428378227449,41.4446525356188,0 -90.78004268318989,41.44985255988,0 -90.708354613045,41.4500936593358,0 -90.6589297375422,41.4623507046517,0 -90.6008378029169,41.5096188031289,0 -90.5409754772051,41.5260034668008,0 -90.45512615442569,41.5275795523085,0 -90.43509834614001,41.5436125873014,0 -90.42313526378251,41.5673054184025,0 -90.34849427679229,41.5868824103659,0 -90.3394762639213,41.6028314888971,0 -90.34126241056562,41.6491222689255,0 -90.32615702333789,41.722767950897,0 -90.30501586217991,41.756497081381,0 -90.2554387407709,41.7817690413387,0 -90.19596566516668,41.8061669912383,0 -90.15464484512322,41.9308021367651,0 -90.1427967503368,41.9839895278463,0 -90.1506630602384,42.0334532086115,0 -90.1682262959709,42.0610667627835,0 -90.1667767223318,42.1037669165116,0 -90.1762144636605,42.1205242372018,0 -90.19170240605,42.1227099310285,0 -90.23106311278499,42.1597414854526,0 -90.3237299895918,42.1973374145764,0 -90.3678582678001,42.2102266723886,0 -90.4073017721273,42.2426617515853,0 -90.4181124359413,42.2639391318113,0 -90.4278091232618,42.340644954386,0 -90.44172508028031,42.3600836299974,0 -90.4911711742602,42.3887914637005,0 -90.5637116510656,42.4218436822154,0 -90.60595537042839,42.4605645940667,0 -90.64847377380832,42.475647019796,0 -90.6518991107146,42.4947005718712,0 -90.6384560963599,42.5093636839918,0 -90.62570743484611,42.5285622838299,0 -90.6392190290607,42.5557141169534,0 -90.66438062716411,42.5713918079808,0 -90.69479111313748,42.6379287671111,0 -90.74561006958859,42.6570014302673,0 -90.8925456651592,42.6782400547389,0 -90.9194089569959,42.6806774289755,0 -90.9991821130899,42.7070587627347,0 -91.06616869540581,42.7449138543659,0 -91.08203032553689,42.7833648801814,0 -91.09342868782861,42.8714402959622,0 -91.13912173775438,42.9258937074417,0 -91.15221381349258,43.0013164133112,0 -91.15975182052971,43.0811827642084,0 -91.16857153421861,43.0828878927565,0 -91.16135406498178,43.1475759290793,0 -91.06905228836891,43.2578982275476,0 -91.0664279003866,43.2806829026437,0 -91.0784980300101,43.3132978076873,0 -91.1770487337014,43.3539461618861,0 -91.1982436244129,43.3705129909022,0 -91.2109165788835,43.4240510516753,0 -91.2359034673886,43.4646842675378,0 -91.22356677965871,43.5008086595185,0 -91.61109897494811,43.5006261853338,0 -91.7303661652997,43.4995717605756,0 -92.07753252302631,43.499153513998,0 -92.4531691122113,43.4994619143947,0 -92.5580084257835,43.5002595022348,0 -93.0272108293768,43.5012788635835,0 -93.0543803044398,43.5014574340012,0 -93.5008302025135,43.5004884829356,0 -93.653699466766,43.5007626988541,0 -93.97394980408042,43.5002988511065,0 -94.2467873911458,43.4989484742926,0 -94.4552382894281,43.4981020923778,0 -94.859839276263,43.5000304051637,0 -94.9204646838526,43.4993712448179,0 -95.3965585901372,43.5003340364673,0 -95.46477535859469,43.4995410217166,0 -95.8669120002192,43.4989439769817,0 -96.0610395014389,43.498533697461,0 -96.4604547078315,43.4997184756898,0 -96.59831542821901,43.4998490975791,0 -96.5837958978062,43.4819205535996,0 -96.58911295055751,43.4355391262275,0 -96.55770871701321,43.4007272259127,0 -96.52505354128429,43.3842252910413,0 -96.52289387443082,43.3569663195107,0 -96.54056327347691,43.307659139748,0 -96.5791308298904,43.2900740306766,0 -96.5707224965755,43.2636122914599,0 -96.55956777208898,43.2532633182258,0 -96.5669911071477,43.2396337909954,0 -96.55860577021591,43.2254892270262,0 -96.48724516897552,43.2179092697119,0 -96.4731145701049,43.2090821295544,0 -96.45150508806921,43.1263087732519,0 -96.460804816306,43.0878728592997,0 -96.4620939419638,43.075582202376,0 -96.47957324789761,43.0618840567811,0 -96.52001038580228,43.051508664474,0 -96.4990199957611,43.0120501064927,0 -96.5171478195164,42.9864580906085,0 -96.51493505198688,42.9523820814978,0 -96.54426346173439,42.9138663406581,0 -96.53751108901589,42.8969064560324,0 -96.5562111991181,42.8466606609486,0 -96.57312614067021,42.8343473823113,0 -96.5876454371957,42.8353813945249,0 -96.60087506115062,42.7995586266164,0 -96.63298055975349,42.7768356021372,0 -96.640709192144,42.7486038180978,0 -96.6265407804251,42.70835472382,0 -96.56303923913002,42.6685130300247,0 -96.5411650971666,42.6624053661285,0 -96.5128440201087,42.6297550903686,0 -96.4884981845359,42.5804806539459,0 -96.50094203466421,42.5738851852149,0 -96.48933750112329,42.5640279717967,0 -96.48024324420059,42.5171303049452,0 -96.4393947509647,42.4892408377156,0 -96.39607423274411,42.4674012772387,0 -96.39789028299531,42.441793101272,0 -96.41762830756179,42.4147774592562,0 -96.41176144867778,42.3809179971184,0 -96.42417517629991,42.3492788847348,0 -96.3897808818021,42.3287896719748,0 -96.3687003210519,42.2980237265253,0 -96.34288156417431,42.2820816955037,0 -96.33265786107282,42.260307132502,0 -96.33770844290801,42.2295223162304,0 -96.3635118431292,42.2140424887771,0 -96.35216576154041,42.168185405895,0 -96.2851229976765,42.123452670924,0 -96.2654831160455,42.0488969554024,0 -96.2387254806183,42.0284381681892,0 -96.2360928599206,42.0012580980752,0 -96.2028425096417,41.9966156076483,0 -96.1852176902909,41.9806854764309,0 -96.14732844184438,41.9662545016057,0 -96.14587078481939,41.9249070891742,0 -96.15997022208892,41.9041513852191,0 -96.1356235834612,41.8626208316748,0 -96.07641711811041,41.7914690785526,0 -96.09932098309402,41.7529750937888,0 -96.09977118044269,41.7315636680423,0 -96.08555733965541,41.7049872846604,0 -96.1222023396997,41.6949130712865,0 -96.12026446185681,41.6840948569989,0 -96.09930606920538,41.654680377786,0 -96.11130763394991,41.5990063360194,0 -96.08083512543558,41.5760003085601,0 -96.0919362332193,41.5631451632737,0 -96.0858402888059,41.537522447069,0 -96.0501720028408,41.5243351452143,0 -96.0045927729456,41.536663666234,0 -95.99396487163098,41.5281036385833,0 -95.99668867363272,41.5115177407886,0 -96.01345100342439,41.492994088652,0 -96.0068973653038,41.4819545344805,0 -95.9531857305245,41.4723872072953,0 -95.93506577909901,41.4623813790665,0 -95.94005632056519,41.3948054356641,0 -95.9428952016611,41.3400771149559,0 -95.88910711764841,41.301389068661,0 -95.89759135908018,41.2868630350679,0 -95.91120231965681,41.308469075071,0 -95.93023057200192,41.3020567682491,0 -95.91098130119039,41.225245096276,0 -95.922249965015,41.2078539506329,0 -95.9161002851104,41.1940638351955,0 -95.85919843702339,41.1805368728058,0 -95.85980096123291,41.1668650456103,0 -95.8766852492484,41.1642024105376,0 -95.85827413141659,41.1091870222413,0 -95.87880474120411,41.0658712509288,0 -95.8595394801997,41.0350028595074,0 -95.86089704288879,41.0026505190073,0 -95.83760323158589,40.9742580400834,0 -95.8365411444113,40.9011080428442,0 -95.8343965593688,40.8703008088672,0 -95.84643563182461,40.8483322047714,0 -95.85179043528299,40.7926000253044,0 -95.87661608382331,40.7304362884448,0 -95.76799926230059,40.6431173260368,0 -95.7575462791966,40.6209044050126,0 -95.7674795852398,40.5890479952096,0 -95.382555095884,40.5843340093787,0 -95.21742841469741,40.5818925987708,0 -94.92061587223311,40.5772183148122,0 -94.639876320884,40.575744856122,0 -94.4852311155788,40.5742048680883,0 -94.23839179788078,40.5709661436833,0 -94.0180588623528,40.5740221097314,0 -93.78630370096001,40.5784484988924,0 -93.56291046102329,40.580813860252,0 -93.37027134829388,40.5804911252976,0 -93.10093859117031,40.5843472673901,0 -92.71781545755509,40.5896671790964,0 -92.6464324165599,40.5914619056485,0 -92.3615131092551,40.5995762450555,0 -92.1931744167433,40.6000887188336,0 -91.946370183648,40.6082666211982,0 -91.7417117785904,40.6097843674944,0 -91.71697640482071,40.5934354677793,0 -91.68995975604149,40.5812025311316,0 -91.6920809036743,40.5516776256622,0 -91.62253651310201,40.5329033163068,0 -91.61686016131831,40.5048738271577,0 -91.5860286246556,40.4845194169649,0 -91.5793830849706,40.4637602088021,0 -91.533208268896,40.4554411066996,0 -91.5388465218747,40.441288675833,0 -91.52960695321359,40.4350861780817,0 -91.5276917691468,40.4101689010293,0 -91.50037749543139,40.4051606084008,0 -91.49031385163261,40.3908061091367,0 -91.4770381934818,40.3910121558996,0 -91.44874715640491,40.3719466182637,0 -91.41896859131511,40.3869192694689,0 -91.38590919839099,40.3924048874231,0 -91.3729083225561,40.4030325886378,0 -91.38555116553908,40.4472940413254,0 -91.37494647812029,40.5036976293474,0 -91.38225565222849,40.5285383313692,0 -91.41302597331141,40.5480345602038,0 -91.4112710901028,40.5730126128812,0 -91.3757627300253,40.6034802448646,0 -91.2622111209491,40.6395869370641,0 -91.2150599786405,40.643859446667,0 -91.16264440347912,40.6563523669938,0 -91.1293030749525,40.6821889727746,0 -91.12013244580791,40.7054430853053,0 + + + + + + + + Kansas + empty + + +states.AREA: + 82196.955 + + +states.STATE_NAME: +Kansas + + +states.STATE_FIPS: +20 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +KS + + +states.POP2000: + 2688418 + + +states.POP2001: + 2709422 + + +states.POP00_SQMI: + 33 + + +states.DEN_0_100: + 97 + + +USStates.ID: + 34 + + +USStates.State_Name: +Kansas + + +USStates.Date_Entered: +Jan. 29 1861 + + +USStates.Year_Entered: +1861 + + +USStates.Year_Settled: +1727 + +]]> + #Style_5 + + + -98.38325723326818,38.4826574728393,0 + + + + + + -95.07193109811,37.0014780674299,0 -95.0327450815612,37.0007794392778,0 -94.6203796376912,36.9970468237132,0 -94.6206638676799,37.0601475533797,0 -94.6189775221893,37.3277322857884,0 -94.61876444142401,37.360766482215,0 -94.61899604293861,37.650374321953,0 -94.6192936785187,37.6798689280977,0 -94.6167353371693,38.0303877411189,0 -94.61733032638759,38.055784837357,0 -94.61905349915152,38.3920320272517,0 -94.6187177065389,38.4714737258641,0 -94.6131481947747,38.7372224308096,0 -94.6124696654656,38.8371089096843,0 -94.6092813424634,39.0446676651878,0 -94.60813678641638,39.1128009586178,0 -94.60122430937619,39.1412276647328,0 -94.6126534522095,39.1516492526966,0 -94.6464068497116,39.158427841948,0 -94.6755137983894,39.1749223276416,0 -94.7305309461746,39.171256416042,0 -94.7900492914923,39.1968829757069,0 -94.8208192842533,39.2110046505539,0 -94.8334765331867,39.2617660205541,0 -94.8811077732328,39.2860458708519,0 -94.9076813995049,39.3230284700345,0 -94.9113435368246,39.3401217508395,0 -94.8982816593786,39.3806406678593,0 -94.9257480001496,39.3812661376612,0 -94.9584938855715,39.4114472233923,0 -94.9862042598468,39.4394616215765,0 -95.04051146086052,39.4629407284024,0 -95.04759928388671,39.4853288064319,0 -95.1020369987408,39.5328485478957,0 -95.10898807297042,39.5606920176429,0 -95.0536130925577,39.5867761785005,0 -95.0560171833566,39.625689733093,0 -95.02829206736421,39.6619134718391,0 -94.978570591812,39.6849880529496,0 -94.96178638302391,39.7320382320422,0 -94.9531421136041,39.7365014323348,0 -94.9308558369552,39.727025905148,0 -94.90567811071121,39.726755181953,0 -94.87786073247868,39.7393055627822,0 -94.87118503155682,39.7541179695705,0 -94.87706755967508,39.7606792157561,0 -94.9217999904165,39.7578408910459,0 -94.93511392079802,39.7754266104547,0 -94.93326765322591,39.7827737328809,0 -94.8993236192415,39.7937754306095,0 -94.88850514062642,39.8173998679665,0 -94.89832461315601,39.8283327692328,0 -94.9238762802993,39.833131624215,0 -94.9365111558861,39.8493860544701,0 -94.9382437203224,39.8960818279774,0 -94.9650237551983,39.900823541003,0 -95.0217725502981,39.8969786850066,0 -95.03350651062659,39.8778442881217,0 -95.06324626966109,39.8665379740374,0 -95.1007225558306,39.8698649954976,0 -95.1505514013284,39.9080546761413,0 -95.19396340225789,39.9101800936863,0 -95.20759760966379,39.9381762630214,0 -95.2409615197206,39.9421058384133,0 -95.30869720973901,39.9994075748966,0 -95.3297013527267,39.9925950320474,0 -95.7807002239152,39.9934894834034,0 -96.0012537321721,39.995158941643,0 -96.2405985632704,39.9945031906408,0 -96.45403830193989,39.9941727522704,0 -96.8014203269346,39.9944759681187,0 -96.90828756776931,39.996154802955,0 -97.36191186281762,39.9973802328794,0 -97.8165893210891,39.9997291896237,0 -97.9295887050275,39.9984528583572,0 -98.264165776521,39.9984347815801,0 -98.5044791617254,39.9971296815045,0 -98.72063235128408,39.9984613082759,0 -99.06474699472069,39.9983379848291,0 -99.1782010360044,39.9995770488454,0 -99.6278593903364,40.0029878613976,0 -100.180910663243,40.0004787238625,0 -100.191111650703,40.0005855247365,0 -100.735049472397,39.9991723116564,0 -100.754855877507,40.000198282162,0 -101.32214863482,40.0018210447365,0 -101.407393337781,40.0010037120327,0 -102.051535596434,39.9989182728278,0 -102.049442507662,39.5686933622379,0 -102.048801584447,39.5628035180916,0 -102.047874719263,39.1267534832,0 -102.048972538957,39.0370029188915,0 -102.047568440936,38.6925505149901,0 -102.047584160548,38.6154993640496,0 -102.045549640322,38.2633436193344,0 -102.046060904132,38.2538220806459,0 -102.04397657417,37.7343986213713,0 -102.044455910114,37.6414742210535,0 -102.042010650289,37.3862794433515,0 -102.037207602599,36.9889939197762,0 -102.024519464501,36.9888757490654,0 -101.55367610944,36.9966930458734,0 -101.071604192395,36.9974667126978,0 -100.950586859868,36.996661689339,0 -100.634245618228,36.9978323335316,0 -100.088573981101,36.9976524956006,0 -99.99926174794319,36.9954175257409,0 -99.5446396923613,36.9954629108102,0 -99.43747360824931,36.9945583965996,0 -98.99951613987589,36.9980727934686,0 -98.54021961843299,36.9983759139801,0 -98.34714359763062,36.9990615091091,0 -98.1045290729196,36.998671345032,0 -97.8042499377042,36.9985676282825,0 -97.46540491812472,36.9964671394098,0 -97.137692826494,36.9998082437565,0 -96.74869619591919,37.0001660629802,0 -96.5191876912757,37.0005778020035,0 -96.00604971220072,36.9983338098062,0 -95.9579609448337,37.0000828949687,0 -95.78574861213642,36.9981139405669,0 -95.5260187862325,37.0010188368678,0 -95.40662244594169,37.0006155845495,0 -95.07193109811,37.0014780674299,0 + + + + + + + + Kentucky + empty + + +states.AREA: + 40319.791 + + +states.STATE_NAME: +Kentucky + + +states.STATE_FIPS: +21 + + +states.SUB_REGION: +E S Cen + + +states.STATE_ABBR: +KY + + +states.POP2000: + 4041769 + + +states.POP2001: + 4081550 + + +states.POP00_SQMI: + 100 + + +states.DEN_0_100: + 91 + + +USStates.ID: + 15 + + +USStates.State_Name: +Kentucky + + +USStates.Date_Entered: +June 1 1792 + + +USStates.Year_Entered: +1792 + + +USStates.Year_Settled: +1774 + +]]> + #Style_5 + + + -85.29036641996581,37.5265035728688,0 + + + + + + + -86.5106681729942,36.6550742141329,0 -86.4154436379233,36.6509321366908,0 -86.19899252719389,36.6432906639691,0 -85.9806106782448,36.633112657611,0 -85.78547638470199,36.62668526607,0 -85.43737461759029,36.6181989810276,0 -85.3000946381889,36.6261009236939,0 -85.27249827730731,36.6256168039722,0 -84.9984611962111,36.6209826428203,0 -84.7910568723549,36.6054383594152,0 -84.781870784101,36.6050761598833,0 -84.2567774582751,36.5954983253834,0 -84.2544885948187,36.5954525757939,0 -84.0067465715187,36.5920881162625,0 -83.93559984653869,36.5912908042263,0 -83.695608633552,36.5842494058307,0 -83.6751767779422,36.59870387507,0 -83.64680262239961,36.6169769718214,0 -83.5308949469604,36.6614809602143,0 -83.46022130755151,36.6618325651555,0 -83.4041505851927,36.6723273909237,0 -83.3858547999664,36.6882196347474,0 -83.32138369861531,36.7095329501122,0 -83.203656562889,36.7342606278109,0 -83.1385135640831,36.7400592608854,0 -83.124390864088,36.7511676478044,0 -83.1282206506728,36.7791526938786,0 -83.06795192812881,36.8509961538949,0 -83.0466341524314,36.8587935503694,0 -82.9508056915213,36.8640784586876,0 -82.87804287271091,36.893694238085,0 -82.8606320841382,36.9321623718302,0 -82.8665598432633,36.9745857651711,0 -82.81222270855579,37.0056007595079,0 -82.7235981560209,37.0339923682353,0 -82.7200576547545,37.0659298172553,0 -82.7091701311092,37.075482281352,0 -82.7213772601893,37.0931177496069,0 -82.7190958255562,37.1100172914789,0 -82.56802270094001,37.1939190518144,0 -82.5500399164933,37.1993783814184,0 -82.4058850037637,37.2507041975685,0 -82.35384234347519,37.260519600467,0 -82.288950934185,37.3048612192352,0 -81.95957525592971,37.5311726196289,0 -81.9765742755516,37.5432534483332,0 -82.0263511693733,37.5305195250327,0 -82.0491341809237,37.5514538202535,0 -82.05566534081019,37.5253425321624,0 -82.0843920504403,37.5483099090524,0 -82.1425091726566,37.5574524979734,0 -82.1465225053321,37.5659208983498,0 -82.13747341918131,37.5698959116523,0 -82.1317814946938,37.5905369780361,0 -82.15931021996209,37.5935690802839,0 -82.1855494012877,37.6406677677666,0 -82.20544059754749,37.6240165335496,0 -82.2383711562884,37.656775872237,0 -82.2956247745408,37.6690580326702,0 -82.3294012031438,37.7441714871732,0 -82.3194978866149,37.7584268520686,0 -82.33984657596631,37.7844003083255,0 -82.4058057432277,37.8117197137467,0 -82.4215083258885,37.8723565285176,0 -82.4376072765301,37.8948548600619,0 -82.50020946921541,37.9222618980716,0 -82.49339635192651,37.9425137288734,0 -82.480174161688,37.9543964226939,0 -82.4757796712415,37.9759070493071,0 -82.52467860529801,38.0156623478137,0 -82.5932086977126,38.1099625844435,0 -82.64612798319701,38.1463307005486,0 -82.6471582603252,38.1694356505033,0 -82.6137636388564,38.1780948680894,0 -82.6066454186315,38.1938262489827,0 -82.616228731902,38.2388116463152,0 -82.5891132321387,38.2453880857478,0 -82.574578950842,38.2559737163217,0 -82.5800496260145,38.2925104464826,0 -82.57229805473899,38.3078110430161,0 -82.59823915716601,38.3684639621207,0 -82.5866043088359,38.4125194224537,0 -82.6137433379651,38.4726688337026,0 -82.6697603574158,38.5021407722218,0 -82.6955793642933,38.5391428294601,0 -82.7419448162975,38.5530662073486,0 -82.8023639107609,38.5572886775579,0 -82.8269924854152,38.5716621183892,0 -82.85385666395931,38.6004587371503,0 -82.8600294858941,38.6523951466567,0 -82.880011744564,38.6833013226062,0 -82.8731911677823,38.7190064779649,0 -82.8903122480228,38.7427754690297,0 -82.9213038087217,38.7464144846546,0 -82.97248310332699,38.7196429959584,0 -83.0269434347116,38.7145119991138,0 -83.0608799170539,38.6857264630017,0 -83.11124311365749,38.6648333651597,0 -83.1431499750977,38.6193396966029,0 -83.1819390743195,38.6098410346599,0 -83.24501356062839,38.6241723630441,0 -83.2727548748104,38.6092569222626,0 -83.2900435785732,38.5966379602472,0 -83.3065312653877,38.5963174248036,0 -83.3203257653401,38.6065634765907,0 -83.33002325645781,38.6319880306114,0 -83.37142194898451,38.6549977034897,0 -83.45361629995431,38.6637746596862,0 -83.5000734679638,38.690137357128,0 -83.526555981969,38.696111041032,0 -83.6183785196076,38.6779722718334,0 -83.63324094665769,38.6649719664098,0 -83.64318975618861,38.6358624635654,0 -83.6557556666292,38.6238806809261,0 -83.6785301000227,38.6209281353376,0 -83.712825428618,38.6355534097723,0 -83.77022323291369,38.650819405338,0 -83.79046498152741,38.6938445378462,0 -83.8375322435588,38.7118799039528,0 -83.8575526890278,38.7449183938572,0 -83.9125395047095,38.7579603800755,0 -83.9621627892472,38.7776474056309,0 -84.05380160129811,38.7637349934305,0 -84.0888671071979,38.7655047394295,0 -84.17675226261351,38.7884985944901,0 -84.2287021102685,38.8126904458503,0 -84.2352944474892,38.8745556222277,0 -84.2615250982177,38.9174773125027,0 -84.29013610301691,38.9445378637403,0 -84.3133151278336,39.014074138235,0 -84.3457790116403,39.0378123176184,0 -84.39131227398291,39.0357444360707,0 -84.4197401104714,39.0473368904498,0 -84.425683749535,39.0847240819073,0 -84.444918075979,39.1118269376755,0 -84.4920536098813,39.1073635038858,0 -84.5153007968991,39.0941952341113,0 -84.5930686595367,39.070265611257,0 -84.6226484760206,39.0749345727981,0 -84.6674874871449,39.0896244882795,0 -84.7428755878621,39.1420637748434,0 -84.7899269988898,39.1070335912354,0 -84.81148058301,39.1025855115064,0 -84.8278613547987,39.1036877674048,0 -84.8867079668198,39.0650450015205,0 -84.8899961256038,39.0506485732317,0 -84.8762931465368,39.0328954474865,0 -84.8442256667783,39.0058310025456,0 -84.83444439657789,38.98277550246,0 -84.846315847352,38.9546310780086,0 -84.8758801493223,38.9276041700824,0 -84.8752543860379,38.9094313024092,0 -84.8597435114244,38.9020425223312,0 -84.8032240050715,38.8971908595052,0 -84.7886668678083,38.8843852980114,0 -84.78744612597821,38.8666434823042,0 -84.82442619105041,38.8344629497042,0 -84.8187802303235,38.7934099982582,0 -84.9756111877111,38.7806410183922,0 -85.0250730726016,38.764291113864,0 -85.06845466106159,38.750424603378,0 -85.1196570780868,38.7141393628001,0 -85.16093321350211,38.6951765052421,0 -85.2051618437764,38.6958170413595,0 -85.2713939330139,38.7443767592676,0 -85.33500919580089,38.7370064025018,0 -85.41818661626441,38.7384171670398,0 -85.4466906213012,38.7248406803013,0 -85.4536792483365,38.6946745390103,0 -85.4244045991195,38.5848401599215,0 -85.41746171924881,38.5614756142213,0 -85.432369780701,38.5370160928693,0 -85.4663821281019,38.5181753628103,0 -85.50720002378741,38.471419551854,0 -85.6126402894388,38.446670375764,0 -85.64359297482039,38.3836879378367,0 -85.654228238662,38.3377528692459,0 -85.681388997794,38.3009537036963,0 -85.7469260083932,38.2703150949771,0 -85.7862108031498,38.2823915940124,0 -85.8065513133062,38.2861792248908,0 -85.8399076966583,38.2762914813239,0 -85.8523357521911,38.238561041348,0 -85.9120745452086,38.1800014838715,0 -85.9147511151841,38.0648748591422,0 -85.93087193559511,38.034048876233,0 -85.9585820940509,38.0118406095775,0 -86.0066633201115,38.0017670737263,0 -86.0316198158307,37.9929506600364,0 -86.05271568926411,37.9667844806183,0 -86.104986573394,38.0113361451773,0 -86.1906216841403,38.0177584307759,0 -86.2521549356747,38.0407215021446,0 -86.277698957837,38.058172975235,0 -86.29144007500941,38.0784895277861,0 -86.29767433252459,38.1503040958879,0 -86.3416058899801,38.1772881494571,0 -86.3643499429474,38.1932902325194,0 -86.3883069100136,38.1948080328253,0 -86.3871010468,38.1680214834694,0 -86.34312388818169,38.1555598192453,0 -86.3354178455955,38.1440282528917,0 -86.3440391531709,38.1342701851064,0 -86.39367710683101,38.1232944153849,0 -86.40718125377769,38.1082185848164,0 -86.4525242238683,38.1297552896484,0 -86.46484600102311,38.1291561416585,0 -86.4743369239623,38.1117076402344,0 -86.4425211885206,38.0886981996705,0 -86.4424675823122,38.0759953511702,0 -86.4583673572556,38.0591608698586,0 -86.5031147440645,38.0516487974382,0 -86.51909122836111,38.0470479141293,0 -86.52783439059689,38.0186932030166,0 -86.5308478759636,37.9874773037153,0 -86.516901010803,37.9422420486058,0 -86.5227377872978,37.9278716585056,0 -86.5410872028347,37.9215158308346,0 -86.5817839150946,37.9256653787747,0 -86.59830982177959,37.9210720274265,0 -86.6147824607846,37.8579754898858,0 -86.645568203442,37.8460003365155,0 -86.66592415784319,37.8473808714035,0 -86.67066979692341,37.8606408643363,0 -86.66030864545441,37.9025728769351,0 -86.6686555016737,37.9131967871253,0 -86.6891259363411,37.9118535383339,0 -86.7288765680828,37.8946214413437,0 -86.7538255847893,37.8983593638332,0 -86.80281549728009,37.9787998846179,0 -86.8263071552482,37.9915597077091,0 -86.8632727013398,37.9869202326586,0 -86.900077899892,37.9536969879516,0 -86.93157291368379,37.938040724569,0 -86.989031549046,37.9306161664831,0 -87.0131563777109,37.9247639268183,0 -87.03648000837271,37.9080054345509,0 -87.0713083041007,37.8071361431403,0 -87.1064270674831,37.7842511762003,0 -87.13187941921321,37.7897363615659,0 -87.1580798741816,37.826967486048,0 -87.1757806882666,37.8386401947759,0 -87.22676182555399,37.8491183470039,0 -87.27274593889131,37.8708194103053,0 -87.3105589119421,37.8937184166169,0 -87.3875506289597,37.9349692155165,0 -87.4522884037149,37.9365207505541,0 -87.5048029485417,37.9156270031471,0 -87.6043257240091,37.9711573198373,0 -87.6271375737057,37.9234546658806,0 -87.5947183783029,37.8907666463449,0 -87.59363445095011,37.8649107154254,0 -87.60758877766089,37.8438192895582,0 -87.6516958656896,37.8281751349818,0 -87.68471741164321,37.8363728161595,0 -87.6797209569085,37.8970493378792,0 -87.7094081501652,37.8997539244585,0 -87.72820001539741,37.8945849893321,0 -87.7537824326935,37.8981288619025,0 -87.8236471993993,37.8782550216566,0 -87.85718741424731,37.8909469157228,0 -87.89903644654829,37.9245969463054,0 -87.92189490993729,37.9199089300241,0 -87.9344837893137,37.904203896365,0 -87.93684884849461,37.8752235361624,0 -87.9102286413016,37.8386134566058,0 -87.9201699786944,37.8097285459625,0 -87.9396104384072,37.7995510678409,0 -87.9587380494242,37.7762242517409,0 -88.0112228968478,37.8013522474257,0 -88.0356073439534,37.8057279050194,0 -88.0725039638053,37.7354461998767,0 -88.1336703044624,37.7007907786447,0 -88.159404386901,37.6607335395919,0 -88.15766418948979,37.628526559458,0 -88.134202057652,37.5836204217666,0 -88.0715914713672,37.5110386032244,0 -88.0879105655745,37.4763216973515,0 -88.3117424820464,37.4429033025395,0 -88.3592141681292,37.4093610567464,0 -88.419893554403,37.4203432412273,0 -88.4676859561995,37.4008084371049,0 -88.511365178177,37.2969057632051,0 -88.50146891523821,37.2578364471264,0 -88.450738961298,37.205724438504,0 -88.42255499105021,37.1569654245737,0 -88.4505110390145,37.0987273102449,0 -88.4768417264925,37.0722004387704,0 -88.4907432667963,37.0682371308779,0 -88.5173176378463,37.0648267364289,0 -88.5593190002438,37.0728714131831,0 -88.6142679530367,37.1091025287746,0 -88.6884212086995,37.1354651044129,0 -88.73916655930481,37.1412363376799,0 -88.7465598581524,37.1521615318569,0 -88.8633498471503,37.2022475575954,0 -88.9325677662407,37.2184595035745,0 -88.99324011836519,37.2200879803029,0 -89.0651040416988,37.1859115907085,0 -89.1168931380891,37.1121885561653,0 -89.14641970199381,37.0932369170363,0 -89.16962098937491,37.0642870560925,0 -89.1744039557536,37.0257625307982,0 -89.1503164771803,36.9984916525611,0 -89.1299298602513,36.9881656914537,0 -89.1072162055416,36.9775040571059,0 -89.1050338653654,36.9539220770253,0 -89.1296537695887,36.8664945361285,0 -89.166565665821,36.8434768543693,0 -89.1735313341446,36.8294390146117,0 -89.1644441219421,36.804476214643,0 -89.1259067613141,36.7924680183802,0 -89.12554025828931,36.7680887738915,0 -89.15143504916961,36.7590975830134,0 -89.1772689322554,36.7609818762401,0 -89.19636559962321,36.7274780703555,0 -89.19756338990609,36.7134250574374,0 -89.1678993468083,36.6716284847978,0 -89.1771616076676,36.6530627654874,0 -89.2001876332973,36.6313576237861,0 -89.2101287779705,36.5819546744135,0 -89.2416846800885,36.569328370687,0 -89.2834948717057,36.5753095893361,0 -89.3223449681677,36.6220764759103,0 -89.3423955613942,36.6289083710958,0 -89.3636210686995,36.6257612726571,0 -89.37395149637661,36.616247637228,0 -89.4182103731204,36.5106251110882,0 -89.41478465486919,36.5026793108435,0 -89.3466676017908,36.5026108089583,0 -88.83037252103129,36.4998546765866,0 -88.8263593294413,36.4999080492987,0 -88.81071857599009,36.4990458143214,0 -88.51268114387869,36.4995467004194,0 -88.4960256220043,36.4982076026975,0 -88.04276340428341,36.4965703400273,0 -88.0350796382961,36.5381999052039,0 -88.0410910767903,36.5827211925188,0 -88.0713410698433,36.6796832563404,0 -87.8707114200773,36.6694231918372,0 -87.8535374192374,36.6415224035434,0 -87.6935284355087,36.6444886692232,0 -87.6406553976253,36.6452169761114,0 -87.3466109435594,36.6492773804525,0 -87.11270271488,36.6513077660911,0 -87.06818400985961,36.6508112445931,0 -86.7705352136402,36.6521007800576,0 -86.5106681729942,36.6550742141329,0 + + + + + + + + + -89.53327228843381,36.4981701441748,0 -89.4758977248385,36.4986089858186,0 -89.4817572743346,36.5047581085309,0 -89.47144975338379,36.5256163547986,0 -89.4817497774818,36.5478363630808,0 -89.49320183399099,36.5591771346443,0 -89.5304419073772,36.5646166211264,0 -89.55621466216709,36.5578036567361,0 -89.5682312249958,36.5414695145559,0 -89.56706382630919,36.5187993771114,0 -89.53327228843381,36.4981701441748,0 + + + + + + + + + Louisiana + empty + + +states.AREA: + 45835.844 + + +states.STATE_NAME: +Louisiana + + +states.STATE_FIPS: +22 + + +states.SUB_REGION: +W S Cen + + +states.STATE_ABBR: +LA + + +states.POP2000: + 4468976 + + +states.POP2001: + 4484853 + + +states.POP00_SQMI: + 97 + + +states.DEN_0_100: + 91 + + +USStates.ID: + 18 + + +USStates.State_Name: +Louisiana + + +USStates.Date_Entered: +Apr. 30 1812 + + +USStates.Year_Entered: +1812 + + +USStates.Year_Settled: +1699 + +]]> + #Style_5 + + + -92.0291541159725,31.0957346447301,0 + + + + + + + -93.70752396935821,30.2395787754494,0 -93.71500869987879,30.2205134179473,0 -93.7045256592734,30.1810684459083,0 -93.6963314287414,30.1758843689492,0 -93.6998258674993,30.1510169781729,0 -93.6833076816481,30.1484401694217,0 -93.68612303875779,30.1414613621588,0 -93.69880351731489,30.1414346905316,0 -93.6970869015193,30.1181389021031,0 -93.70854664486501,30.1149499108334,0 -93.71602374974782,30.0958787991307,0 -93.71264390010309,30.0607310199356,0 -93.76036751582601,30.0061764030649,0 -93.7914543306868,29.8505201111635,0 -93.8999018634907,29.8099813696096,0 -93.80182075717751,29.7258651715405,0 -93.7219916871518,29.7587936044957,0 -93.2336572894734,29.7889934364029,0 -92.6074254936111,29.5886265164795,0 -92.29737403028059,29.5415715040527,0 -92.05975722161792,29.6070148319983,0 -92.19969864009239,29.7631205249394,0 -92.1301011969117,29.77352598548,0 -92.13715124533631,29.7307416030464,0 -91.9733277804057,29.8060573844959,0 -91.96708656404368,29.8418880532248,0 -91.82750348017601,29.83904163461,0 -91.8239331429008,29.7868920393355,0 -91.8466310090991,29.8083970322938,0 -91.8811779880636,29.7659557971969,0 -91.86325627234939,29.7258395444023,0 -91.61576780432881,29.7691380608199,0 -91.6435472720068,29.6439645252622,0 -91.548490473012,29.64212942148721,0 -91.54786531626041,29.5316859482091,0 -91.43302486062962,29.5525818802979,0 -91.26272515553339,29.4895876171466,0 -91.2137357284937,29.4059235875496,0 -91.1021904671519,29.3141341810657,0 -91.07838568592221,29.3600181552563,0 -90.93652761481459,29.34351696991,0 -90.89734933840761,29.267664524716,0 -90.81855013451751,29.2568023186879,0 -90.8142929990499,29.2210068232971,0 -90.9204134488967,29.1819095184181,0 -90.8826392886342,29.1374120250384,0 -90.83937946259708,29.1823403523227,0 -90.77268943028361,29.1606256340265,0 -90.7828982382631,29.126943134736,0 -90.67679427561049,29.1402773960277,0 -90.68385856633408,29.1819208280557,0 -90.63811998544371,29.1625715477047,0 -90.6500512905196,29.2542925609165,0 -90.6212655974503,29.2229656385145,0 -90.5831330588569,29.2609283902067,0 -90.6110951867158,29.3050359294473,0 -90.4764721853395,29.3039418023868,0 -90.4505160207755,29.352441970778,0 -90.40682895562621,29.3259917752097,0 -90.39642997502899,29.272347594428,0 -90.34764606577039,29.3129516272311,0 -90.2840991281077,29.245534761538,0 -90.27881935962628,29.2751587278655,0 -90.2429144207612,29.254741245923,0 -90.2639572212598,29.1846496769349,0 -90.22776265023229,29.0986741752039,0 -90.0778023855037,29.1764419417217,0 -90.0431106708545,29.2236763677282,0 -90.07787873037648,29.2145745251002,0 -90.11163968342949,29.3217254399766,0 -90.0330015414231,29.3088725943322,0 -90.05594370870118,29.3514313577963,0 -90.02994209083532,29.3742080212967,0 -90.05532571465039,29.4282829342296,0 -90.03608391703379,29.4471572638847,0 -90.17413347979719,29.4959418083355,0 -90.2081459533198,29.54473034288331,0 -90.1517936118825,29.5953076758409,0 -90.1372900800924,29.533810903071,0 -90.11308130873671,29.5538488149916,0 -90.0066947961478,29.4939367839004,0 -89.97192676202729,29.5035417528626,0 -89.9667386971404,29.472678264347,0 -89.8175270453019,29.4776253094833,0 -89.8217465705316,29.420912297011,0 -89.7537065743465,29.3742883056524,0 -89.7949446658458,29.3225401726376,0 -89.61071851100481,29.3317581333263,0 -89.61959210384499,29.2795749078674,0 -89.4931976224217,29.2349951688689,0 -89.45911683804491,29.2557362316092,0 -89.46707349611449,29.2163212037448,0 -89.3931341574949,29.1462653489502,0 -89.38866232003031,29.1003787711429,0 -89.3397347549283,29.1044955958688,0 -89.3190905090885,29.1801886436367,0 -89.2632880326299,29.1482125721001,0 -89.3948923970965,28.9396556719073,0 -89.2574966003837,29.0594633924233,0 -89.2411621878536,29.1211691198757,0 -89.1443950464412,29.0166783927302,0 -89.15402386274,29.0572176399904,0 -89.1114049392751,29.0830170799367,0 -89.126542405823,29.1353090259359,0 -89.057753441514,29.0852787510888,0 -89.02180295398399,29.1471183731581,0 -89.09827479284481,29.1634431581992,0 -89.03326302685041,29.2234135733299,0 -89.120225502644,29.2118843139178,0 -89.1299376964562,29.2908873400227,0 -89.19340037828211,29.3490477860047,0 -89.26255595190629,29.2978092984492,0 -89.2647756568613,29.3506636449461,0 -89.33705849744059,29.3408933300114,0 -89.3845219191646,29.3979385143756,0 -89.53707638096201,29.4014533166444,0 -89.5446296667905,29.4716853008017,0 -89.77177826661171,29.6102468453431,0 -89.7232081312626,29.6060275376081,0 -89.74854567342401,29.6373780616568,0 -89.7283193961219,29.6461761343614,0 -89.6352610582353,29.626531674004,0 -89.69532824384351,29.6940792569962,0 -89.6767042461412,29.7029612576638,0 -89.5979517797373,29.66515763608991,0 -89.4791891047166,29.6361710061209,0 -89.5119430643629,29.6646147842026,0 -89.6118373558959,29.6977477154707,0 -89.5928776464669,29.710863889814,0 -89.65058726846451,29.7669009624638,0 -89.5405000002626,29.7547308719091,0 -89.48223840044381,29.8309485334183,0 -89.4174250907105,29.7829370017962,0 -89.3640397237488,29.7967741977645,0 -89.4211550530889,29.8280985416313,0 -89.4022024925418,29.8459451898735,0 -89.43104835838651,29.9402776070809,0 -89.3777929103821,29.9512862860095,0 -89.4536236043748,29.9857329961405,0 -89.43585410143341,30.0444055970455,0 -89.5743783317747,30.0089600024186,0 -89.58586286631579,29.8981569870418,0 -89.62741431072681,29.8756795494176,0 -89.71220220875109,29.8975277712431,0 -89.7150166093631,29.9694037201455,0 -89.82084822206799,29.9512905424199,0 -89.8489633570991,30.0106855130634,0 -89.7168401832138,30.0552263064586,0 -89.6493943583523,30.1224267965133,0 -89.66920137542461,30.1633821794677,0 -89.7249282260786,30.1210949796266,0 -89.7400887426727,30.15892815372281,0 -89.79826483529951,30.1053714259199,0 -89.8912258795383,30.1560914176022,0 -89.9905483943748,30.05366400615,0 -90.11154650531552,30.0416103319555,0 -90.27598037046252,30.0620534035407,0 -90.39556746391192,30.0920800540751,0 -90.42453056069171,30.1858772168737,0 -90.30902717710622,30.30384607327681,0 -90.2397510159792,30.3809509083452,0 -90.07556112940209,30.3689787565007,0 -89.9435365430685,30.2698534912004,0 -89.75921705647311,30.2310929413416,0 -89.728560482135,30.1810129000889,0 -89.5738839850623,30.1949353118833,0 -89.6100033159566,30.2414198536792,0 -89.6063106026528,30.247828412852,0 -89.6216616714494,30.2569643699525,0 -89.6259425171347,30.2903558515233,0 -89.6391725011899,30.29582979652721,0 -89.6370822520275,30.3118436964481,0 -89.6185880809724,30.323760747644,0 -89.620198293058,30.343429054806,0 -89.633451292423,30.3553078019512,0 -89.64668882303469,30.3552905752797,0 -89.6546699231165,30.37906533290621,0 -89.67536970065041,30.4000744263161,0 -89.6754620986314,30.4453524057824,0 -89.6834507334724,30.4627185730285,0 -89.6945978512597,30.4681868413409,0 -89.695681461547,30.4782460714929,0 -89.7131840947211,30.48141599910741,0 -89.719059260721,30.4960375437604,0 -89.73231974937779,30.4978380271641,0 -89.75517865909291,30.5156218767139,0 -89.7727961225489,30.5512468627469,0 -89.7908478814126,30.5539438185454,0 -89.8203071285261,30.6242705431171,0 -89.8055366119584,30.6494567398327,0 -89.81935389911089,30.6512457789506,0 -89.8295245363783,30.6708739896173,0 -89.8454474865972,30.6662525153547,0 -89.8353918067202,30.675882597152,0 -89.8417854969649,30.6795198391887,0 -89.8413433452435,30.7005499465483,0 -89.83072296372239,30.7037809798175,0 -89.8440520689247,30.7124249093943,0 -89.83561400018191,30.7293619382654,0 -89.8233990376437,30.7330545562641,0 -89.8255660189393,30.74264836900471,0 -89.813351089932,30.7481682046961,0 -89.8246894189972,30.7897246849283,0 -89.8109335655279,30.8116989081619,0 -89.7965669822497,30.8126526475249,0 -89.79609421512551,30.8291051373468,0 -89.77479992387271,30.8305319403895,0 -89.7850241384817,30.8615791361643,0 -89.76585085732459,30.8620847088871,0 -89.76331078881169,30.9004713517936,0 -89.7468002599141,30.9027945578147,0 -89.7457551089107,30.910107202755,0 -89.75805428152501,30.9210436978628,0 -89.7404756300233,30.9261095623025,0 -89.7485405475115,30.9498480428011,0 -89.7395225295214,30.965400256862,0 -89.7198229059406,30.9754936822636,0 -89.726781296615,30.9846164008972,0 -89.7236228724726,31.0015247201013,0 -89.7327174808554,31.00744501459671,0 -89.83355873794839,31.0071848554001,0 -90.2593768226071,31.0073700245843,0 -90.3436602569889,31.0053899463824,0 -90.5426536021385,31.0023300433606,0 -90.56025489707021,31.0017063331187,0 -90.82971390290152,31.00154581229931,0 -91.05701216426981,31.0004181174657,0 -91.17920745434212,31.0004616671834,0 -91.6322974277285,31.00136500740931,0 -91.6277732104017,31.0119601110946,0 -91.57278761694658,31.032647877549,0 -91.552081308545,31.0581597906819,0 -91.56497527228081,31.0821350184803,0 -91.6201139178138,31.1276943834946,0 -91.5914883087676,31.1784818992551,0 -91.6009643646854,31.2139296737496,0 -91.636998739959,31.241104186479,0 -91.6436824254271,31.2711178839201,0 -91.634214237565,31.2776940549104,0 -91.55691947736142,31.2704690710127,0 -91.5170781714622,31.2830696578166,0 -91.5024753378186,31.2988580123244,0 -91.5057561590215,31.3234567034819,0 -91.54279004566349,31.3469862680809,0 -91.5444076356665,31.3688746277826,0 -91.53457323759901,31.3827500700431,0 -91.5593769120174,31.3882304242528,0 -91.56773147230381,31.4214064364688,0 -91.5524724466605,31.4330997709492,0 -91.53480241584072,31.434335247521,0 -91.53416902145848,31.4092388142744,0 -91.52301453224139,31.3920917852495,0 -91.49470875734109,31.37524960980541,0 -91.48083803831911,31.3777805832693,0 -91.46592215694071,31.4040690532825,0 -91.4732924895748,31.4203746865528,0 -91.50790071721922,31.4530834240658,0 -91.506481902402,31.5256872825259,0 -91.50295705582839,31.5348804964065,0 -91.46447302857931,31.5428664076677,0 -91.42357803613481,31.5627464662349,0 -91.40425216217201,31.5863534317346,0 -91.4153838994301,31.6025923876789,0 -91.49715101609371,31.6043585245596,0 -91.50887776268431,31.621946112804,0 -91.50780965753789,31.6438707722357,0 -91.4977690885564,31.6508953247071,0 -91.45737763016589,31.6269660621133,0 -91.4084028346628,31.6255298775261,0 -91.3891838304294,31.6546051479529,0 -91.38794806501321,31.716682847539,0 -91.3650745397498,31.7517413813867,0 -91.3704992222101,31.75347510581861,0 -91.3399120227254,31.7585428158009,0 -91.28262100699412,31.7498875713679,0 -91.2639894905689,31.7597635597382,0 -91.26268491650518,31.7739271210982,0 -91.3362574528706,31.7636219421964,0 -91.36713463540391,31.7708677200763,0 -91.3472366701502,31.7958323053943,0 -91.33484640167582,31.8434784170896,0 -91.30347348797039,31.863144546493,0 -91.2926470392426,31.8614928392569,0 -91.27680008896378,31.8275334941804,0 -91.25072958285951,31.8188210015347,0 -91.24138341450281,31.8353877405104,0 -91.26469211768119,31.8655859136312,0 -91.2444813396436,31.8786718608009,0 -91.20154214815391,31.914448862447,0 -91.16314291993849,31.9884481049272,0 -91.10811063502561,31.9919842773777,0 -91.07248812939382,32.0212135515791,0 -91.07324347350119,32.0321499472516,0 -91.08699202272901,32.0438110998955,0 -91.1431229851656,32.0662598368965,0 -91.1456941711085,32.085828620503,0 -91.125727524233,32.0883996668359,0 -91.08941061986668,32.0569980949997,0 -91.06511798689969,32.0587070505858,0 -91.0739225856783,32.0941482900527,0 -91.04119164865929,32.1078235881288,0 -91.0113905060031,32.1342128745109,0 -91.00393646145051,32.1694138145198,0 -91.0245210933432,32.1700508264511,0 -91.0545816942883,32.1846835164502,0 -91.04541852022901,32.1588244987585,0 -91.05415436554129,32.1345446969889,0 -91.0831163105895,32.148731083052,0 -91.10882038739021,32.1351435271569,0 -91.15665029978031,32.1449354980044,0 -91.1669578883395,32.1721410581455,0 -91.15737514242458,32.2060145228895,0 -91.1160609494648,32.225755012482,0 -91.1006796950342,32.2150360650047,0 -91.08802223200981,32.2325373651522,0 -91.06256993823,32.2328921503996,0 -91.0417564572334,32.249588584805,0 -90.97732476193758,32.2235541462358,0 -90.97112198627711,32.2692145344565,0 -90.98392428988359,32.2872802390738,0 -90.9808724634335,32.2978007782368,0 -90.9717628039961,32.3038468581634,0 -90.9293503055389,32.2975529103154,0 -90.9164792854551,32.3054643188479,0 -90.8754551600106,32.3797948696303,0 -90.8852590969197,32.3814999498488,0 -90.91502958658171,32.3460435683761,0 -90.98467186569272,32.3565410587047,0 -90.99896957955122,32.3663787517009,0 -91.0093152122207,32.3972270178482,0 -90.9700917310243,32.41916079336,0 -90.96559027073792,32.4401789961165,0 -90.987555664684,32.4531064313693,0 -91.027015703315,32.4425591367523,0 -91.0586173128584,32.4471403993983,0 -91.1177919517207,32.4987093128914,0 -91.11885237927079,32.524205893418,0 -91.08889104990392,32.5487755489391,0 -91.03730785093811,32.4970957768502,0 -91.01979041957442,32.4909543534273,0 -90.9921562021718,32.4954212340256,0 -90.9951774336628,32.511781889744,0 -91.0631947408495,32.5422984158072,0 -91.07337249217869,32.5617489074888,0 -91.05897546705708,32.5765265579993,0 -91.03243221757509,32.5828091644492,0 -90.99876283398881,32.6156030444933,0 -90.99623739617641,32.6261121948604,0 -91.0079868510271,32.6428085554835,0 -91.02757194109799,32.6416374743549,0 -91.0477369807394,32.6144891676735,0 -91.06391930560149,32.6065243385273,0 -91.1111005222843,32.5976630747531,0 -91.1463718367631,32.6449866188679,0 -91.1396654000576,32.663308001886,0 -91.05913512287872,32.7236507270734,0 -91.0978169539142,32.7495287526143,0 -91.1365751786759,32.751256737741,0 -91.1564502239537,32.7628111152121,0 -91.1422592525615,32.8413420630697,0 -91.0796355518755,32.8772908363965,0 -91.075698595519,32.9538382302101,0 -91.09278126642242,32.9877460881529,0 -91.1119239712728,32.9874752104853,0 -91.13246289263051,32.9753485871396,0 -91.13004429846551,32.9375917893587,0 -91.13728478778282,32.9179123119183,0 -91.16980976931431,32.9051486450656,0 -91.19842078694131,32.9142883501159,0 -91.20927012576061,32.935978073614,0 -91.16197425997009,33.0004180010727,0 -91.1622413295772,33.0131626211682,0 -91.25472755144671,33.0136011241739,0 -91.42764466910239,33.0135450807442,0 -91.45447032530612,33.0139992001305,0 -92.0634416757442,33.0101515495777,0 -92.7172364845049,33.0168395771589,0 -92.9789895151482,33.018274750609,0 -93.23254316119119,33.0193748877236,0 -93.47907035507552,33.0215281738969,0 -93.51191556362819,33.0212876651865,0 -93.80993110790152,33.0227288720053,0 -94.03893174127671,33.0234224077489,0 -94.0417854266628,32.88248532849,0 -94.04038263770489,32.6949577639329,0 -94.0354184994672,32.3893811626287,0 -94.034954991874,32.1996091989861,0 -94.0352556158215,31.9946792606335,0 -94.01007792557169,31.9893006514689,0 -94.00458470012971,31.9781086259495,0 -93.977400745224,31.9463271084149,0 -93.97017571506122,31.923332670499,0 -93.9359189554272,31.9096246079882,0 -93.9181114839259,31.9098704820605,0 -93.9236506911527,31.8927620881712,0 -93.8994496012559,31.8946233843507,0 -93.8927128271358,31.8702347315503,0 -93.88145152988172,31.8715888085537,0 -93.87759108418349,31.8502823749578,0 -93.8650100628645,31.8174424499476,0 -93.8345145984519,31.8021876362787,0 -93.82225394974822,31.7748083120293,0 -93.83134856148179,31.7534524078687,0 -93.8101762985126,31.7305247069651,0 -93.8151354745431,31.7125237592659,0 -93.8089554592767,31.7077383245665,0 -93.7924526022363,31.7115680299756,0 -93.81203005382371,31.6747403534088,0 -93.8066129278975,31.6539413361717,0 -93.814913937485,31.6481413307007,0 -93.81977388303059,31.6182675045639,0 -93.8357655763902,31.6153647157252,0 -93.83280517658469,31.5903601395257,0 -93.81650822499059,31.5772874839387,0 -93.81070199496421,31.5592406874184,0 -93.78031303899668,31.5339136421144,0 -93.7634896740234,31.5309019449363,0 -93.74772687918352,31.5378958623322,0 -93.7318419000288,31.5220556426776,0 -93.70597743151249,31.5207469124279,0 -93.71917654856812,31.4955823387378,0 -93.75061823711359,31.4907363154173,0 -93.7514269339373,31.4856800971189,0 -93.72696607966452,31.4596548516254,0 -93.6985991018577,31.4616380816002,0 -93.70210859382031,31.4464313212695,0 -93.6871849424459,31.4383118184741,0 -93.6963098944214,31.4279172119793,0 -93.6946236330265,31.41610345391331,0 -93.687672937394,31.4063113595588,0 -93.6641964541721,31.3985102835404,0 -93.6612511619287,31.3725768736666,0 -93.6350357193475,31.3740089507347,0 -93.6772195877398,31.3285702210106,0 -93.68176670818659,31.3128637606543,0 -93.65630632190602,31.2868557345123,0 -93.6457698113848,31.290447047048,0 -93.6310062786126,31.274088104753,0 -93.6166320369568,31.2759895241098,0 -93.61205418900251,31.2702180322556,0 -93.61117651049739,31.2423735819701,0 -93.590721311811,31.229873054352,0 -93.6030963428191,31.1992536873053,0 -93.59411608931301,31.1803867599593,0 -93.5771171728735,31.1723283005144,0 -93.55076452872321,31.19111664787181,0 -93.52909629329709,31.1859610191746,0 -93.5271048967346,31.1782631971006,0 -93.53719127433351,31.17652768282541,0 -93.52850100567309,31.16313081887,0 -93.5443630058743,31.1593545819132,0 -93.53767923010742,31.1326296405497,0 -93.52826420267931,31.1261142412602,0 -93.53526050690408,31.1162612988914,0 -93.5568523341309,31.1095326773987,0 -93.560155897223,31.1007267939647,0 -93.54329435054569,31.0949417830783,0 -93.5442784766347,31.0825635248279,0 -93.51717031814428,31.0748615453994,0 -93.52591374615082,31.0571716007113,0 -93.5073888583872,31.0390998146532,0 -93.54729164502071,31.0143343101026,0 -93.5651144950651,31.0182559489662,0 -93.5680671206996,31.0131177730676,0 -93.571019691156,30.9974647272144,0 -93.5611240812853,30.99188382509841,0 -93.57262960901809,30.9763719448991,0 -93.5488480918319,30.9703845889675,0 -93.53751052673201,30.95707912219491,0 -93.53236051643211,30.9609260649172,0 -93.5257915242765,30.9360147750055,0 -93.5301557030665,30.9271668885028,0 -93.5497943369345,30.9250805769799,0 -93.5466891601929,30.9055307409998,0 -93.56464927132871,30.9021283630613,0 -93.56867012587068,30.886431356764,0 -93.56101768200369,30.8720769365654,0 -93.55297612475269,30.8604804672822,0 -93.5666178980145,30.8453462320886,0 -93.55581440053979,30.8425404652408,0 -93.5508552163389,30.8285427515982,0 -93.5820450640059,30.8022395755774,0 -93.5853487574266,30.772384673359,0 -93.61862893538731,30.7459898029865,0 -93.6078251665993,30.7322109750573,0 -93.6179648833938,30.7327489593371,0 -93.61258556438951,30.7105301555471,0 -93.61778080972511,30.6870030300823,0 -93.6601628136184,30.6730608176726,0 -93.6781450325558,30.6398941531481,0 -93.6930532338358,30.6402433971316,0 -93.6847595364861,30.62362646596801,0 -93.69286961844639,30.6159971853325,0 -93.6717582009901,30.598033475394,0 -93.6935940747548,30.5990370562763,0 -93.7179855982276,30.5875818830799,0 -93.71805386498711,30.5683558276656,0 -93.73547935399731,30.5457197108965,0 -93.70563196785041,30.5230599502648,0 -93.71480998363299,30.5053160515853,0 -93.70744722226021,30.4964430039086,0 -93.7150231758618,30.4888310205347,0 -93.6981459876763,30.4702496513421,0 -93.70359329230058,30.4627158297037,0 -93.6967413311132,30.4428357517593,0 -93.7217050902489,30.4331831686188,0 -93.7427315855636,30.4090272375555,0 -93.7551137307405,30.3819930042287,0 -93.74800248894391,30.3676155313151,0 -93.75950766664521,30.3543502302936,0 -93.7593470787815,30.3410771727413,0 -93.72994140928799,30.3051219729382,0 -93.6993768807844,30.2975935292891,0 -93.70752396935821,30.2395787754494,0 + + + + + + + + + -92.01636774779772,29.5964783637641,0 -91.8490888327989,29.4870829559889,0 -91.7581129254523,29.4945134800923,0 -91.7649642707533,29.5342538256937,0 -91.7016159510209,29.5772668066965,0 -91.7698472437407,29.578615482821,0 -91.9025489396354,29.6509308946661,0 -92.01636774779772,29.5964783637641,0 + + + + + + + + + -91.34131892626149,29.3419108937759,0 -91.2761625423135,29.25402793048981,0 -91.1283068078309,29.2269993791403,0 -91.13469314485428,29.2599248605,0 -91.1636630060186,29.2452673853848,0 -91.15259233129218,29.2665337371954,0 -91.1950590671176,29.2736729306416,0 -91.20046067885291,29.3079853608587,0 -91.1880244437628,29.2847581611053,0 -91.17122390642319,29.2836766605259,0 -91.16156452373758,29.3237204954792,0 -91.18927563760259,29.2976114923275,0 -91.2265537135592,29.3813995046563,0 -91.30049299545411,29.3164578525778,0 -91.34131892626149,29.3419108937759,0 + + + + + + + + + -90.93457446121511,29.2590942309103,0 -90.99895334439211,29.3238000878402,0 -91.0073689638633,29.29754411189,0 -91.12751345160631,29.2935143884148,0 -91.1225616613936,29.2270851971627,0 -91.0555572747286,29.1909157285932,0 -91.06768935479481,29.2531193516372,0 -91.03310393919099,29.2756292528086,0 -91.04444877298839,29.2112586059428,0 -90.9945661692945,29.2248021337252,0 -91.00324045917338,29.1843167033403,0 -90.96202532966269,29.18579944909,0 -90.9449811331143,29.226391967718,0 -90.980382600158,29.219952293402,0 -90.9813824092254,29.2763485829958,0 -90.95362571609181,29.2730571631618,0 -90.97084581220372,29.2420957472829,0 -90.93457446121511,29.2590942309103,0 + + + + + + + + + Maine + empty + + +states.AREA: + 32161.925 + + +states.STATE_NAME: +Maine + + +states.STATE_FIPS: +23 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +ME + + +states.POP2000: + 1274923 + + +states.POP2001: + 1284576 + + +states.POP00_SQMI: + 40 + + +states.DEN_0_100: + 97 + + +USStates.ID: + 23 + + +USStates.State_Name: +Maine + + +USStates.Date_Entered: +Mar. 15 1820 + + +USStates.Year_Entered: +1820 + + +USStates.Year_Settled: +1624 + +]]> + #Style_5 + + + -69.2342803140978,45.3894093487898,0 + + + + + + + -69.7772762645906,44.0741483198713,0 -69.76675520614469,44.0477322592984,0 -69.8000128595467,44.0268667288672,0 -69.7776729844266,43.7912707228193,0 -69.7503594273371,43.7617041140593,0 -69.724671298031,43.7844771657636,0 -69.7485283916032,43.8933754295128,0 -69.7206355796789,43.9379795478678,0 -69.6129323231589,44.0336128548498,0 -69.65524480155101,43.980249889013,0 -69.6644528704785,43.8522244586918,0 -69.5893265387295,43.844862803005,0 -69.48323307140311,43.8871600746258,0 -69.3944884505371,44.0251280788842,0 -69.3464537674589,44.0159695598265,0 -69.2936504808219,43.942190755563,0 -69.21914072354279,43.946787577244,0 -69.0744584304863,44.0690660136479,0 -69.02148227181431,44.2440933416922,0 -68.98502777494591,44.2711126004819,0 -68.9591794578908,44.430331837978,0 -68.8116777653337,44.4945934426597,0 -68.80790287781549,44.5696542069791,0 -68.8606089070208,44.6109704067522,0 -68.8238128460999,44.6640894736035,0 -68.8235520702076,44.6089068403569,0 -68.7452790256047,44.5523206373911,0 -68.7413487051019,44.5072848958119,0 -68.81376776419771,44.4139901814304,0 -68.81285168429019,44.3274322783305,0 -68.7403098752916,44.3463301473607,0 -68.55942677798301,44.2598872456427,0 -68.5300756616285,44.289836101881,0 -68.55218617390599,44.3990492489601,0 -68.4285712497143,44.46530639124,0 -68.36376573615171,44.4313868490081,0 -68.2456142631336,44.4906479970509,0 -68.1362647391276,44.4752371654176,0 -68.07437917140879,44.3813743661084,0 -68.016392981954,44.3849566034442,0 -67.9865237153801,44.484812336461,0 -67.963436756976,44.5053274248743,0 -67.9683422249939,44.4712284165698,0 -67.9000417769437,44.4523993525841,0 -67.8585605178656,44.5360772002757,0 -67.8112189343998,44.5540098374308,0 -67.6188382504584,44.5402396193185,0 -67.5709936023128,44.5983332155118,0 -67.3885104425158,44.6914001984435,0 -67.30846816150439,44.6535210401791,0 -67.20036458721739,44.6537812351816,0 -67.00771875956821,44.7806250078979,0 -66.9692710360024,44.8286551272807,0 -67.1467066767694,44.9045811973885,0 -67.0653586269938,44.959295663853,0 -67.1506607784721,45.1219898963224,0 -67.1659056389324,45.1562643764959,0 -67.27409523064929,45.1827832977016,0 -67.3456056673913,45.1222522184808,0 -67.43943485449461,45.1895839538421,0 -67.4779500648077,45.2802804372187,0 -67.4185550809287,45.3758523506007,0 -67.5041066775521,45.4858160063971,0 -67.4160842487578,45.5035545265692,0 -67.4393007667661,45.59256143000579,0 -67.6151403322051,45.6051988982084,0 -67.7180345966414,45.6812994578214,0 -67.75295517982291,45.65928919420249,0 -67.80343280585819,45.6781136054575,0 -67.80305340237,45.7945081513461,0 -67.7593671369616,45.8277986058452,0 -67.794570844796,45.87847571695521,0 -67.7556150798964,45.91658019879411,0 -67.7802895888027,45.94706274217331,0 -67.7910107659324,47.0610036074639,0 -68.2308067781327,47.3521481908886,0 -68.33481376042521,47.3573741052975,0 -68.3912568256045,47.2850971351555,0 -68.5146730447092,47.2969643156636,0 -68.89487201197031,47.18225650927629,0 -69.036714506994,47.2573616071401,0 -69.04697642788111,47.4220306555512,0 -69.2302960300003,47.453334503029,0 -69.984977566148,46.6913656777797,0 -70.01414471134019,46.5705982633135,0 -70.0466075241071,46.42611554377889,0 -70.1910585034955,46.3348397522369,0 -70.2834966429549,46.1902492629794,0 -70.229325409987,46.1374343941084,0 -70.30484962968779,46.0666583336474,0 -70.2800225675015,46.0531540673207,0 -70.3102952668023,45.96878225759991,0 -70.2474646921772,45.9446197500614,0 -70.2539641026553,45.8990048630746,0 -70.4162139203836,45.7903089854213,0 -70.39638312280751,45.7220459930229,0 -70.5522701315346,45.660664152262,0 -70.7199105999252,45.51295436047651,0 -70.6349296434642,45.3919670337142,0 -70.7969669129234,45.42517217072471,0 -70.82913206776721,45.3907261617344,0 -70.8126658344856,45.3546780200798,0 -70.8428755371108,45.2781374154307,0 -70.87644406148471,45.2254453802794,0 -70.9593819235283,45.33886576902731,0 -71.0875092473499,45.3014692052699,0 -71.0287261250693,44.6685380945196,0 -71.008596512061,44.2821463668217,0 -70.9844425613652,43.7911635520181,0 -70.973874166771,43.5718298935058,0 -70.9565244088141,43.5641434705,0 -70.9496195233573,43.5489536133091,0 -70.9642682587516,43.5319898518146,0 -70.9592784003468,43.5163880057296,0 -70.97079121747591,43.4702114970827,0 -70.9614829099438,43.4381263706902,0 -70.97909946378989,43.3961839179203,0 -70.9696996092209,43.3663799823752,0 -70.9058011398795,43.3020692769929,0 -70.90108590067651,43.281020042684,0 -70.8132073721395,43.235222695474,0 -70.8305481365302,43.1591741298583,0 -70.8186681583247,43.1218710916248,0 -70.66567210512321,43.091050561352,0 -70.538941073876,43.3357181684913,0 -70.4569767880509,43.3494706682902,0 -70.365925612365,43.4303037212258,0 -70.3416106101908,43.5349087014933,0 -70.222239251928,43.5772404279461,0 -70.2357978254955,43.685796426524,0 -70.1566285119637,43.7898104908998,0 -70.0264027843525,43.8456010551567,0 -69.9873704560013,43.8457387629637,0 -69.9995001025524,43.7862077545854,0 -69.9729033991696,43.7688475582739,0 -69.90313220107561,43.7907323183889,0 -69.8867908767136,43.8767134346018,0 -69.8461556590995,43.8423439660335,0 -69.8517853541081,43.7443279848531,0 -69.8303921849006,43.7279862438606,0 -69.79152799355209,43.7560849940079,0 -69.859928458154,44.0000010562904,0 -69.7772762645906,44.0741483198713,0 + + + + + + + + + -68.3879209893914,44.3772530708835,0 -68.4028903244654,44.2708014569031,0 -68.3207117037137,44.2250794730622,0 -68.3047050923042,44.2900314435771,0 -68.1647687868107,44.3344957275365,0 -68.238709216076,44.4375633361586,0 -68.35544950530149,44.4288577749373,0 -68.3502537650533,44.3989509513447,0 -68.3879209893914,44.3772530708835,0 + + + + + + + + + Maryland + empty + + +states.AREA: + 9739.872 + + +states.STATE_NAME: +Maryland + + +states.STATE_FIPS: +24 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +MD + + +states.POP2000: + 5296486 + + +states.POP2001: + 5362491 + + +states.POP00_SQMI: + 544 + + +states.DEN_0_100: + 52 + + +USStates.ID: + 7 + + +USStates.State_Name: +Maryland + + +USStates.Date_Entered: +Apr. 28 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1634 + +]]> + #Style_5 + + + -76.8193852682105,39.0640555384767,0 + + + + + + + -75.7107127327496,38.6496658557662,0 -75.7245906263035,38.8302832999716,0 -75.7525764003551,39.1416603330929,0 -75.7613129328181,39.2478639325384,0 -75.7643192412212,39.2959598236098,0 -75.77235374667779,39.3831185391944,0 -75.7910945763195,39.7238660373362,0 -76.1392231665553,39.7222292808326,0 -76.23312186464131,39.7218535861041,0 -76.56983441657761,39.7202653698966,0 -76.79049160379709,39.7212561436081,0 -76.99681222135089,39.7208916577077,0 -77.2210508745187,39.7206793349451,0 -77.46443302065821,39.7200734721353,0 -77.4757933985606,39.7196232012639,0 -78.0959483136605,39.7254610687401,0 -78.3345500729087,39.7240962157241,0 -78.384783030143,39.7237485696748,0 -78.81775834663399,39.7231158128337,0 -78.9301730523848,39.7223369261357,0 -79.39661009295681,39.7193136035322,0 -79.480971113096,39.720274058077,0 -79.48986479564221,39.1973957510982,0 -79.4611919892215,39.2132646214775,0 -79.4492818447752,39.2120934820003,0 -79.3848476494521,39.2693006300669,0 -79.3461946154148,39.2920920071237,0 -79.29527324453819,39.3005409622397,0 -79.27982260452779,39.3252435708184,0 -79.2601680465127,39.3486416544713,0 -79.16301834698341,39.3934958538665,0 -79.1581275486525,39.4139606424208,0 -79.1314006491727,39.4170311916524,0 -79.1040784853939,39.4473068185213,0 -79.0967157288178,39.4646284760702,0 -79.104597173003,39.4708728556173,0 -79.0706297593098,39.4708498495391,0 -79.0644114910497,39.4858256028263,0 -79.04885455275689,39.4838153049718,0 -78.970436606663,39.438525300318,0 -78.9553908044919,39.4604587300207,0 -78.8708155126305,39.5257902221119,0 -78.8381145866481,39.5633182054468,0 -78.80655063800541,39.5668238139764,0 -78.8224126817224,39.5856984808976,0 -78.7984707782291,39.6154181040351,0 -78.7981503202116,39.6308329361782,0 -78.7727054582047,39.6442413593536,0 -78.7676164768578,39.6266140472135,0 -78.73238303982021,39.6269651904324,0 -78.73049853216,39.6215446407261,0 -78.73625116835829,39.608792329934,0 -78.7737430747891,39.6016168803692,0 -78.7614516806553,39.5817923449266,0 -78.73271861228101,39.5766427925479,0 -78.7163150181332,39.5595725682967,0 -78.6664251857124,39.5369295856868,0 -78.6491442196502,39.5379978698818,0 -78.6370818045276,39.5299491862748,0 -78.604366257192,39.5356829078104,0 -78.5641887564812,39.521073443727,0 -78.50878283764369,39.525159517656,0 -78.4812781842694,39.5199376222576,0 -78.4558109647124,39.5337352582767,0 -78.4458699009632,39.5483185504429,0 -78.4208220953532,39.5494097703543,0 -78.4618162122069,39.5808339965825,0 -78.4506314866027,39.592705125494,0 -78.4039995740291,39.5876131045842,0 -78.431893779582,39.6209523855928,0 -78.3846362229595,39.6144947493043,0 -78.37767072595661,39.6313171842384,0 -78.3567810297593,39.6323702224905,0 -78.3479232590728,39.6405907650805,0 -78.27301593703299,39.6184096414251,0 -78.2577267039254,39.6411676777696,0 -78.22923031045851,39.6585663745485,0 -78.2275978107419,39.6739888201001,0 -78.2043044442965,39.6759383682958,0 -78.1829721387067,39.6946416432551,0 -78.0943379340484,39.6756002259056,0 -78.02641818067529,39.6228676658044,0 -77.995205151108,39.5989693016707,0 -77.96423675783581,39.6113249804037,0 -77.94497955111849,39.5860111667727,0 -77.93545786949809,39.5919391289044,0 -77.9475432559036,39.6150137753716,0 -77.9386090344815,39.6182180888264,0 -77.903253436057,39.5961238764369,0 -77.8907409489792,39.6007014665387,0 -77.88843689880569,39.6165703160658,0 -77.855522813824,39.6021663910764,0 -77.8424075807765,39.6053745299037,0 -77.8398667728917,39.572740433055,0 -77.85295909355961,39.5654544565677,0 -77.885171166646,39.5644510981679,0 -77.8899167307584,39.5580921006877,0 -77.8695609560795,39.5459120760673,0 -77.86463209209241,39.5146512457229,0 -77.8438492144584,39.5319315749014,0 -77.83546428030221,39.5256107761519,0 -77.828925751391,39.5292537667709,0 -77.8252634740426,39.5120383875386,0 -77.84787748402169,39.5020058349846,0 -77.82518711275171,39.4939074430119,0 -77.771551216988,39.4981152221263,0 -77.79949832671841,39.4808271058573,0 -77.78510893810591,39.459102708835,0 -77.8041904928873,39.4631385518333,0 -77.7957979551353,39.4509164333512,0 -77.8046940179175,39.4400179505449,0 -77.8022754371077,39.4323161756799,0 -77.75698633951841,39.4251637984679,0 -77.74083452238931,39.4034394054792,0 -77.7372333565171,39.3961953951361,0 -77.7562233700037,39.3784762226869,0 -77.7454504163582,39.3603718912509,0 -77.7543007117046,39.3385939912988,0 -77.7500891970593,39.3268181439956,0 -77.72746748091871,39.3177965867944,0 -77.6793019175109,39.3187810010414,0 -77.616235785843,39.2998185774258,0 -77.5686729648781,39.298495090027,0 -77.5419007825367,39.2690420737433,0 -77.4937734776117,39.2500146595609,0 -77.4646672485749,39.2291606204918,0 -77.4617071219601,39.2187353607732,0 -77.4783476432128,39.1770378462932,0 -77.5163278483541,39.1575488653215,0 -77.51275784419811,39.1167594573458,0 -77.47895899133,39.1040646528751,0 -77.459404555923,39.0809444981026,0 -77.4327467353536,39.0668840135464,0 -77.3462265685837,39.0686200582469,0 -77.3243065775866,39.0626960558372,0 -77.2556927153402,39.0276818620407,0 -77.2434318664787,38.9759898010602,0 -77.15174771824201,38.9648893335594,0 -77.12232830291251,38.9321712762375,0 -77.0420882700669,38.9935411597528,0 -77.00793074386711,38.9666671332517,0 -76.9109046912897,38.8901000805306,0 -77.04514742259011,38.7882339432299,0 -77.0461695666273,38.7188957809267,0 -77.0568205142596,38.7121363148863,0 -77.08157873831389,38.7153939181929,0 -77.0928476424555,38.7040989116303,0 -77.12481562054811,38.6779155452061,0 -77.1296906932316,38.6482418914715,0 -77.2774587919105,38.4872207930521,0 -77.2555770674964,38.41371718721,0 -77.2206258675067,38.3907877017763,0 -77.00209178315311,38.4269772011524,0 -76.9727248648513,38.3311549876724,0 -76.9082699582989,38.2999784778825,0 -76.86387331328881,38.3914714190274,0 -76.7599276109587,38.2344093308613,0 -76.5769505272031,38.222764311271,0 -76.3298385406414,38.045830240005,0 -76.3434505132736,38.2131869285095,0 -76.6469375997288,38.4505479866903,0 -76.5197569015984,38.4102610484431,0 -76.471598574103,38.3357833947148,0 -76.421135969123,38.3206235821057,0 -76.4051288342195,38.3461435452093,0 -76.38548233996821,38.3914043684505,0 -76.50857122280399,38.522220870784,0 -76.52493097705791,38.7097512630869,0 -76.5488052362963,38.7590892616049,0 -76.47171855918209,38.9083512988567,0 -76.42361665438941,39.1184647232768,0 -76.5636056235403,39.1963744261278,0 -76.59482606965,39.1587962366193,0 -76.6070184386023,39.1810927544493,0 -76.5766676572233,39.1982282762434,0 -76.5648189147791,39.2315530428342,0 -76.6037153612334,39.2594608609242,0 -76.530981239764,39.2427262967213,0 -76.3987214377801,39.23125237193,0 -76.36371048044749,39.393387950291,0 -76.2263383547627,39.3749983931238,0 -76.1541997728595,39.4020462004049,0 -76.07817856597509,39.542475359461,0 -76.03108047888399,39.5700410038864,0 -75.9744299206522,39.5241368727679,0 -75.9523031535122,39.4712951808406,0 -75.9784646617012,39.3946638351226,0 -75.84939918573831,39.3792510141722,0 -76.03709097678841,39.3584799261141,0 -76.1120448111742,39.3214068908311,0 -76.2181125034375,39.2049624205434,0 -76.2385676859932,39.1309353125061,0 -76.22144635528851,39.0930291937215,0 -76.1109520010634,39.1187058442236,0 -76.199341894342,38.9734670026609,0 -76.1135363312758,38.9208289937164,0 -76.0951642657932,38.9482447165723,0 -76.10256436980529,38.8981319074412,0 -76.07553203210389,38.8896633042527,0 -76.11403931382679,38.8855703797452,0 -76.16552288981249,38.7887251297383,0 -76.19484328035701,38.7653724001326,0 -76.27208777077171,38.8341158634797,0 -76.35020456068629,38.6991431917132,0 -76.3372950814248,38.6794939962041,0 -76.2667911199833,38.7700039380465,0 -76.2229814834233,38.7629085069421,0 -76.17370840256589,38.7092130303982,0 -76.123703577538,38.7080947052705,0 -76.0756590311907,38.6109007702122,0 -76.0465823676188,38.5919759809806,0 -76.0277220313837,38.6221228840739,0 -76.0315976662875,38.5720404826446,0 -76.25072102933051,38.5952017233529,0 -76.1918807885951,38.5434629709824,0 -76.29165294584,38.4788511852767,0 -76.29394177820269,38.4370577153623,0 -76.0651198948853,38.259057093733,0 -76.0204640236521,38.3220175737297,0 -75.994942456991,38.2826466356901,0 -75.94958453518571,38.2821771251992,0 -75.8864815116298,38.3755815466837,0 -75.8720918837096,38.3573513417761,0 -75.89461301257011,38.2589952816564,0 -75.7938261188739,38.2637247654706,0 -75.86132498504991,38.2401659678014,0 -75.8377266864712,38.2317163388415,0 -75.89745125560199,38.1750572625645,0 -75.769206402107,38.0973712697568,0 -75.86538493141229,37.9797804654786,0 -75.64786661285071,37.9702549087239,0 -75.62608404746069,37.9965412351653,0 -75.37242058358361,38.0168338616125,0 -75.3730687313232,38.0690409029093,0 -75.2624990292677,38.2015335967299,0 -75.1506169090142,38.2738812082701,0 -75.1548735291952,38.3697395682799,0 -75.0927212334893,38.4505638472484,0 -75.3498423227975,38.4553227905156,0 -75.6988024422464,38.4631827108939,0 -75.70707355672541,38.5575913668919,0 -75.7107127327496,38.6496658557662,0 + + + + + + + + + -76.2928041305598,38.9078367280903,0 -76.27318950163161,38.9493434073476,0 -76.246408808548,38.9236940972491,0 -76.2478217695177,38.9790095805696,0 -76.2994902315763,39.0407073059323,0 -76.3564746271561,38.958299911005,0 -76.37524061903341,38.8542185416326,0 -76.32938725969851,38.8760038237182,0 -76.3422215756121,38.9241707280608,0 -76.3223079602806,38.9122005623908,0 -76.31412982025771,38.9420383665643,0 -76.3387433583291,38.9567741081102,0 -76.2941866944134,38.9676801350473,0 -76.2928041305598,38.9078367280903,0 + + + + + + + + + -75.0679246646819,38.4500753640855,0 -75.0873204261931,38.3230592800575,0 -75.0456230125111,38.4496021608759,0 -75.0679246646819,38.4500753640855,0 + + + + + + + + + -75.2703576848931,38.0277091732938,0 -75.2422192799713,38.0286475070447,0 -75.17281187763599,38.1243063358622,0 -75.0940269654088,38.3203165911443,0 -75.164373449629,38.2049624515,0 -75.2093886849695,38.0942969089551,0 -75.2440961931471,38.0380238346228,0 -75.2703576848931,38.0277091732938,0 + + + + + + + + + Massachusetts + empty + + +states.AREA: + 8172.561 + + +states.STATE_NAME: +Massachusetts + + +states.STATE_FIPS: +25 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +MA + + +states.POP2000: + 6349097 + + +states.POP2001: + 6406858 + + +states.POP00_SQMI: + 777 + + +states.DEN_0_100: + 31 + + +USStates.ID: + 6 + + +USStates.State_Name: +Massachusetts + + +USStates.Date_Entered: +Feb. 6 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1620 + +]]> + #Style_5 + + + -71.80258992883,42.2568345174596,0 + + + + + + + -71.31932779027051,41.7721958646078,0 -71.2666285816007,41.7497430522047,0 -71.22897615917781,41.7076939683673,0 -71.1988086806704,41.6785003452843,0 -71.1412126344661,41.6552730544524,0 -71.1171327154705,41.4930619563068,0 -71.0011847867691,41.5201241035125,0 -70.8921284437165,41.6339125917583,0 -70.8394306808208,41.6266919415081,0 -70.6197608834614,41.7356361919149,0 -70.6648878020878,41.5561271066309,0 -70.6371390963447,41.5398046803128,0 -70.43291891916461,41.569755900056,0 -70.3976166138351,41.6125715907981,0 -69.9544232643854,41.6714951143766,0 -69.9177797984556,41.7676537960301,0 -69.9641706778297,41.9040941730569,0 -70.0504709879468,42.0262987126367,0 -70.13509049703229,42.0724940905303,0 -70.2551481598432,42.0601192659912,0 -70.1004972494064,42.0021938707637,0 -70.00044794743459,41.8563504070949,0 -70.0192146776447,41.7815193451751,0 -70.2052596214815,41.7125732892697,0 -70.3411271976759,41.7118130863329,0 -70.2738341329655,41.721663017485,0 -70.42351172103081,41.7436223850015,0 -70.5377048060198,41.8057620061259,0 -70.5403385173567,41.9309515217422,0 -70.6187030078313,41.9681898123452,0 -70.686037251662,42.1531665960055,0 -70.77459547590971,42.2486399423215,0 -70.8246609058028,42.2605069326982,0 -70.8926710305429,42.2657668652407,0 -70.9232041375729,42.2345170134159,0 -71.03416194900311,42.2856288096679,0 -70.9606220141229,42.4323935235108,0 -70.8936039190112,42.4480681190628,0 -70.81312837940889,42.5464364349616,0 -70.6334520465019,42.5826421345195,0 -70.59319925007451,42.6463050999637,0 -70.7396954300213,42.6635235535106,0 -70.8138807202681,42.8670649720671,0 -70.84973977624399,42.8634293009967,0 -70.8981116667382,42.8868774762984,0 -70.9213361332524,42.885149233192,0 -71.02542615731881,42.8511713651458,0 -71.065564728038,42.8043197291356,0 -71.12060440995749,42.8182808692669,0 -71.18106084331041,42.807317168902,0 -71.1863474665185,42.7387606265609,0 -71.24047922287529,42.7435552404171,0 -71.2524115796458,42.7260689220942,0 -71.287194447592,42.6986034465098,0 -71.90094191420261,42.7053786149513,0 -71.9302165845551,42.7072094199587,0 -72.2799169173511,42.720467037784,0 -72.4557700038868,42.7258525290855,0 -72.92299742922531,42.7373644761782,0 -73.0196951738304,42.7403966786337,0 -73.2580598287651,42.7460586400616,0 -73.35082423703111,42.5047557597646,0 -73.49884000273219,42.0774606830635,0 -73.4842302844536,42.0474280500728,0 -73.0456324711282,42.0363103821922,0 -73.0060955098662,42.0360092024926,0 -72.8164509949267,42.033507731778,0 -72.817679571843,41.9971850435429,0 -72.7675750314897,42.0021671817802,0 -72.75589381790709,42.0338475230699,0 -72.6095266969696,42.030536850941,0 -72.60782527309461,42.0228008077559,0 -72.58190737022019,42.0216068944432,0 -72.57122589242989,42.0301249737628,0 -72.5075717905207,42.0307660006011,0 -72.1363467150764,42.0264020644269,0 -72.0949717608141,42.0257995069483,0 -71.80234071658769,42.0179769339478,0 -71.7978316087619,42.0042748046851,0 -71.4974303691298,42.0092535031422,0 -71.3786442228911,42.0137133195162,0 -71.3824052822434,41.9792630768653,0 -71.38395315470341,41.8884397544727,0 -71.333085950288,41.8960311596525,0 -71.34249312021549,41.8757828914979,0 -71.3345427095385,41.8579036075383,0 -71.34548316624701,41.8131613833437,0 -71.33979862314,41.7844255626959,0 -71.31932779027051,41.7721958646078,0 + + + + + + + + + -70.6043308335024,41.4296630739879,0 -70.60584217854981,41.4746632583726,0 -70.66748797346899,41.4549372973785,0 -70.7517695470512,41.3821690323835,0 -70.77092662880651,41.3249804137282,0 -70.78252415013171,41.352517678155,0 -70.8439198398732,41.3485988852067,0 -70.7697130665689,41.298163904796,0 -70.7386765301454,41.3341551752324,0 -70.486141190082,41.3415610204116,0 -70.5151571489217,41.3986601230011,0 -70.575857359437,41.4102856936161,0 -70.5528317397027,41.4173887728697,0 -70.5676946736082,41.4645667099463,0 -70.6043308335024,41.4296630739879,0 + + + + + + + + + -70.03171640756911,41.3119311871487,0 -70.09787203770659,41.2776309471401,0 -70.2070964296735,41.2940877852649,0 -70.21326869354419,41.270204935144,0 -70.10310570522719,41.2382796862047,0 -69.96844433867869,41.2518167689829,0 -69.96598006456441,41.2948911801898,0 -70.04926441844221,41.3919612498596,0 -70.0344859690813,41.3497184956242,0 -70.0876332277476,41.2968486962802,0 -70.0266199082301,41.3372104301762,0 -70.00650844928499,41.3247747653595,0 -70.03171640756911,41.3119311871487,0 + + + + + + + + + Michigan + empty + + +states.AREA: + 57899.398 + + +states.STATE_NAME: +Michigan + + +states.STATE_FIPS: +26 + + +states.SUB_REGION: +E N Cen + + +states.STATE_ABBR: +MI + + +states.POP2000: + 9938444 + + +states.POP2001: + 9997284 + + +states.POP00_SQMI: + 172 + + +states.DEN_0_100: + 85 + + +USStates.ID: + 26 + + +USStates.State_Name: +Michigan + + +USStates.Date_Entered: +Jan. 26 1837 + + +USStates.Year_Entered: +1837 + + +USStates.Year_Settled: +1668 + +]]> + #Style_5 + + + -85.4386025294334,44.3365484429102,0 + + + + + + + -88.4975275282269,48.1737953051637,0 -89.1560989935608,47.93922809600121,0 -89.20178730153791,47.883856943529,0 -89.19291626356561,47.8446133573585,0 -89.1398848301356,47.8240760135492,0 -89.0286226647864,47.8506552310947,0 -88.9015476276433,47.9602485109714,0 -88.62532706800501,48.0331676704744,0 -88.4975275282269,48.1737953051637,0 + + + + + + + + + -88.50068113271711,47.2901802187495,0 -88.5956323026243,47.243592963422,0 -88.59426204335659,47.1347650286244,0 -88.47066419275591,47.1114725925833,0 -88.4128433970392,46.9880945574411,0 -88.2222796851962,47.20075228444591,0 -87.9170421798346,47.35800703474979,0 -87.73751047538521,47.3930248530549,0 -87.70438353060609,47.4159502393094,0 -87.78812041255949,47.4707930407946,0 -88.2113917997532,47.4478349809783,0 -88.43790109187169,47.35589615672669,0 -88.50068113271711,47.2901802187495,0 + + + + + + + + + -85.8598446689146,45.9694694332197,0 -85.6553812556068,45.9728707038144,0 -85.5095462997763,46.10191144051079,0 -85.378242862305,46.1000474968113,0 -85.0616297207559,46.0247516443713,0 -84.8510998289,45.8906367080231,0 -84.7317322269644,45.85567967180521,0 -84.68902263973691,46.0359181647936,0 -84.6168451285152,46.0382300997572,0 -84.50163489117131,45.9783426043905,0 -84.35448508342451,45.99919002614029,0 -84.1132725571978,45.97853868939439,0 -83.9064607016374,45.9602396119094,0 -83.9019522904123,46.0059021950587,0 -83.9895017437976,46.0259857516108,0 -84.0619810068951,46.0944707342467,0 -84.0295784705683,46.1289437813081,0 -84.1197351080435,46.1761086144177,0 -84.24703149238211,46.171447449818,0 -84.27313420703641,46.2073090320522,0 -84.181646508334,46.2487208573892,0 -84.3116140465187,46.4886691648575,0 -84.41596703992489,46.4806585984594,0 -84.57266689802989,46.40792634821091,0 -84.6298147995395,46.4829429912477,0 -84.80365300490671,46.4440542272806,0 -84.931320645464,46.4878435249077,0 -85.0166397498537,46.4764442097209,0 -85.051655182818,46.5055768367989,0 -85.0189754555566,46.5490241006878,0 -85.02697150185961,46.6943397781429,0 -84.9547594637199,46.7709512828567,0 -85.2300947338335,46.7567853203433,0 -85.5038505878416,46.674174579044,0 -85.8575364791034,46.6948151482157,0 -86.0967391005232,46.6552685367715,0 -86.1481090958201,46.6730530979662,0 -86.46239202904469,46.5610855335273,0 -86.6382203191924,46.42226370889561,0 -86.7594957088175,46.4866315025199,0 -86.8713826815009,46.4443597313603,0 -87.00640197649859,46.53629363488701,0 -87.1106791249956,46.5014733756769,0 -87.3715388665667,46.5079912016724,0 -87.6637661990473,46.83685158256339,0 -87.9006541308096,46.9097618467136,0 -88.0366849184073,46.9118654572711,0 -88.1891883816124,46.9009581842231,0 -88.17782681696821,46.945890272928,0 -88.4466168624265,46.7993967669245,0 -88.4765228993159,46.8551516596417,0 -88.44596477585399,46.92830447098779,0 -88.4411640771673,46.9907346098996,0 -88.5129949819838,47.032589654359,0 -88.5112154949687,47.1065061773656,0 -88.6181043741835,47.13111439065281,0 -88.62950007120951,47.2258127771419,0 -88.8848320236261,47.1045548203599,0 -88.9296883362077,47.0309261610721,0 -88.9948757098838,46.9971033190838,0 -89.1251876986471,46.9966066327594,0 -89.2145920401578,46.9233784671178,0 -89.3867180852705,46.85020839272341,0 -89.7912444026547,46.8247129534584,0 -89.8862519694252,46.7689352365095,0 -90.01886460043491,46.6786337680856,0 -90.4081998571279,46.5686106643971,0 -90.38552505384241,46.5396577407228,0 -90.3137081584288,46.5515632659266,0 -90.3023935803059,46.544296405249,0 -90.300181077668,46.5250515829943,0 -90.2697849871137,46.5224805256097,0 -90.2584017374293,46.5087897865362,0 -90.2115257849797,46.5062949924702,0 -90.1613911037779,46.4423800673451,0 -90.1417974652462,46.39389931520821,0 -90.11517713167859,46.3651557309551,0 -90.1116593658125,46.3404289934283,0 -89.925136091667,46.30402570041401,0 -89.0998061353819,46.14564279170131,0 -88.9853010679315,46.1003912267907,0 -88.92519544224371,46.07360150800961,0 -88.80439717033499,46.0268046239007,0 -88.7938153525548,46.0363602068919,0 -88.7774806211023,46.0326143605406,0 -88.7730171354202,46.021147746959,0 -88.7264096386053,46.029581736083,0 -88.7036055788856,46.01892364058919,0 -88.6773838648913,46.0201441283944,0 -88.6436694832571,45.9933882928391,0 -88.61550234597981,45.9941205068572,0 -88.5975360335339,46.0155164912387,0 -88.575357692098,46.0089590630598,0 -88.5483579419945,46.0193002259831,0 -88.5156131830942,46.01860956196891,0 -88.49408327895949,46.0129599627087,0 -88.483813961278,45.99915098858521,0 -88.4543189656679,46.0007603460834,0 -88.40352211244171,45.9834220708464,0 -88.3699382062343,45.9945870784701,0 -88.32132305028109,45.9667127656587,0 -88.2991520587513,45.9619441469833,0 -88.25716803963969,45.9670551908873,0 -88.2149918189356,45.9479016364541,0 -88.1801939444304,45.9535166684228,0 -88.15043842419399,45.93629352156811,0 -88.1113904221148,45.9262876744074,0 -88.093850061765,45.9206153043833,0 -88.0957641221132,45.8918035055568,0 -88.0654210733109,45.8736421368008,0 -88.121786443611,45.8348779040675,0 -88.12994949370579,45.8194019526506,0 -88.0887340937991,45.79153251888161,0 -88.0516393398365,45.7861121476097,0 -87.99006981134831,45.7950463354111,0 -87.9691796312807,45.7664485705759,0 -87.873628831766,45.7506993690495,0 -87.8423627328109,45.7224184643369,0 -87.8015528795181,45.71139103613621,0 -87.8011558298595,45.70132435444889,0 -87.7774737292068,45.6841018123955,0 -87.7809448308433,45.67591566979451,0 -87.81705427025651,45.6653907719653,0 -87.8199378153198,45.6544505099681,0 -87.7760447968861,45.61320014924521,0 -87.77507546391441,45.6003869719677,0 -87.78631248967309,45.5685197968153,0 -87.8286019788526,45.5685917608724,0 -87.8051409550811,45.5445258364016,0 -87.78938490783349,45.49906763103741,0 -87.8136146858711,45.4664604760223,0 -87.8602674034623,45.445098404767,0 -87.8495317013046,45.4061175328758,0 -87.8836106233029,45.36585448274341,0 -87.8739746664525,45.36208580082749,0 -87.86853527657431,45.3720723766891,0 -87.86209606573161,45.3701651658513,0 -87.84128251380081,45.3461489152026,0 -87.8280078733776,45.3583213196226,0 -87.76003806908641,45.3528977344774,0 -87.6895980065264,45.3912693654604,0 -87.6436840378919,45.3618558882988,0 -87.645362038293,45.34816920676,0 -87.7044714190303,45.2722051755656,0 -87.7051420461443,45.2470862859939,0 -87.71966802928161,45.23677159669181,0 -87.72162823196,45.2116719436728,0 -87.7361999812867,45.1990723551736,0 -87.72966881168701,45.1766048406442,0 -87.6728141404664,45.1406726367061,0 -87.5925143132007,45.1085018074312,0 -87.58386416098671,45.1627331960046,0 -87.33222680525159,45.42394270187959,0 -87.2607070334237,45.5548024600535,0 -87.12375941810291,45.6962467505129,0 -86.9016241205329,45.714778151079,0 -86.7614692096392,45.826067773125,0 -86.584735685807,45.8138796968306,0 -86.696919405518,45.69251111172819,0 -86.68505337036631,45.65004804099411,0 -86.629784386179,45.62123355870779,0 -86.57612474228731,45.7101740346977,0 -86.52201061737431,45.7240941649958,0 -86.52938982637311,45.74896120959101,0 -86.4582753564091,45.7627474587696,0 -86.34379558304561,45.83439616514829,0 -86.31563861501689,45.9056825648406,0 -86.2593192707417,45.9469296652713,0 -86.067891449499,45.9642103933668,0 -85.9171044674119,45.9181924006148,0 -85.9149553497885,45.95797817970151,0 -85.8598446689146,45.9694694332197,0 + + + + + + + + + -83.8546801700959,46.0140316422695,0 -83.8858916672003,45.9708524498185,0 -83.8528104836337,45.9974492109717,0 -83.804881070028,45.936764510125,0 -83.629704837753,45.9535961546271,0 -83.57981373770861,45.9175013541361,0 -83.5161593405338,45.9257147658035,0 -83.4731894201386,45.987547805609,0 -83.5339910274221,46.0117900707978,0 -83.58949805959941,46.0885184421793,0 -83.6498875534141,46.1039714892754,0 -83.732448534534,46.08410814655849,0 -83.68031444287379,46.07179455246539,0 -83.6735921422512,46.0361921724046,0 -83.7564199993262,46.0273380165628,0 -83.8011052680607,45.98841247488381,0 -83.8546801700959,46.0140316422695,0 + + + + + + + + + -86.8348296412819,41.7655047552312,0 -86.5251809764443,41.7655403363901,0 -86.2345652919433,41.7648642479853,0 -86.0683022053847,41.7646284325784,0 -85.79922697228621,41.7635349679273,0 -85.65945882918869,41.7626275140628,0 -85.29720963584781,41.7635810035748,0 -85.1931406144237,41.7628675471372,0 -84.8260080463026,41.7618751066694,0 -84.7884777858482,41.7609594561938,0 -84.79037747295131,41.6974947329852,0 -84.38439324270421,41.7071503370832,0 -84.35920849224161,41.7080391705922,0 -83.868639675225,41.7159933856432,0 -83.76395412119879,41.7170422186577,0 -83.4826910020175,41.7251299269076,0 -83.19006624457531,42.0339796563901,0 -83.19387310674711,42.1157494340736,0 -83.107588485427,42.2927057543585,0 -82.92938905928671,42.3630404584644,0 -82.87490709168991,42.4580671820726,0 -82.88813814869479,42.4957559768438,0 -82.802361560496,42.6129258784123,0 -82.8204067747469,42.6357945388927,0 -82.7298058507281,42.68122680411,0 -82.63401479868659,42.6693828613479,0 -82.6458773357857,42.6317284970443,0 -82.5181795398622,42.6340520555246,0 -82.4732382545008,42.7628960899223,0 -82.4719527162131,42.8986819969275,0 -82.4198358589283,42.9724650786066,0 -82.5038206240279,43.1722534988665,0 -82.6057380465658,43.6945684044879,0 -82.61848776538859,43.7878661020809,0 -82.72790219887359,43.972506277548,0 -82.8059778732508,44.0335645723623,0 -82.9401540705878,44.0699595149276,0 -83.32602585310789,43.9404594218171,0 -83.36716318794871,43.844452153086,0 -83.4664083716859,43.7457407367818,0 -83.4942480190406,43.7028415322697,0 -83.53090972920811,43.7259433589107,0 -83.6546148101736,43.6074199226765,0 -83.6991646571783,43.5996422574816,0 -83.9381217654628,43.698283731803,0 -83.918376196547,43.9169976606375,0 -83.8736148499472,43.9628422046614,0 -83.7048019672777,43.9971652266508,0 -83.5984044651608,44.070493356617,0 -83.5682369426092,44.1701180526948,0 -83.5291504874037,44.2612741330213,0 -83.356962952145,44.335133682907,0 -83.32003621808229,44.5154601725864,0 -83.280812186475,44.7031838105345,0 -83.3197243749479,44.860646589634,0 -83.42935572956959,44.9262969077196,0 -83.4649030258911,44.9978831954067,0 -83.4339724672792,45.0111281816831,0 -83.4444410041901,45.05277359214701,0 -83.3127074580252,45.0986201471471,0 -83.3986957035617,45.2136414467938,0 -83.4207614501791,45.25718269852389,0 -83.3940196634256,45.2729072818439,0 -83.48959802510289,45.3289374401826,0 -83.49583213180431,45.36080192486221,0 -83.592363108339,45.3495018817337,0 -83.71231863656089,45.41239441936009,0 -83.782809495878,45.4094489102236,0 -83.92289215949469,45.491773583756,0 -84.1059075983171,45.49874951213231,0 -84.13522881914039,45.5713432584365,0 -84.2055603253076,45.6309054506234,0 -84.3214583512467,45.665607571299,0 -84.46527503674039,45.6536374615858,0 -84.7241858039318,45.7803045686693,0 -84.9720378240667,45.73774518871549,0 -84.98341250400669,45.6837137292165,0 -85.0780197003353,45.6301851677823,0 -85.12044693558239,45.5697793498832,0 -85.0818156898282,45.464650463889,0 -84.92167403324559,45.4098990503169,0 -84.9858934396436,45.37317811148381,0 -85.0928627445342,45.3702250037919,0 -85.30547495309349,45.3203837985815,0 -85.373252794881,45.2735409266072,0 -85.39024477400371,45.211593083379,0 -85.3848695133689,45.0106032425427,0 -85.4513511003899,44.8605403796015,0 -85.5260810367145,44.76316233761,0 -85.6380395377647,44.7784356967099,0 -85.6530062666143,44.9583622397271,0 -85.56551465635459,45.18056026557281,0 -85.6102150946457,45.1965277092277,0 -85.7957565629422,44.9859748602387,0 -86.0674543490246,44.8982569078434,0 -86.09796468725619,44.8506123089817,0 -86.08291833647959,44.7779289033047,0 -86.1084845600375,44.7344420211888,0 -86.25862694050851,44.7007309766977,0 -86.23803830888259,44.5222735987814,0 -86.271954369493,44.3512284893904,0 -86.3864232316096,44.1832041325685,0 -86.5186023282979,44.053619224709,0 -86.4381471318946,43.9455921234144,0 -86.4595481972781,43.9501848083598,0 -86.42881418089701,43.8201238403686,0 -86.4341008938508,43.78145827444,0 -86.4043451853738,43.7666424042588,0 -86.4478111642203,43.7726653117644,0 -86.5413012212606,43.6631870809765,0 -86.4632010649154,43.4751666759798,0 -86.2738368374562,43.1210450506522,0 -86.2178547734773,42.7748252127058,0 -86.28498077199561,42.4223247647982,0 -86.3742778338012,42.2494214217998,0 -86.4988334182755,42.1264467479204,0 -86.6175922510584,41.9074480787407,0 -86.8348296412819,41.7655047552312,0 + + + + + + + + + Minnesota + empty + + +states.AREA: + 84520.49 + + +states.STATE_NAME: +Minnesota + + +states.STATE_FIPS: +27 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +MN + + +states.POP2000: + 4919479 + + +states.POP2001: + 4992492 + + +states.POP00_SQMI: + 58 + + +states.DEN_0_100: + 95 + + +USStates.ID: + 32 + + +USStates.State_Name: +Minnesota + + +USStates.Date_Entered: +May 11 1858 + + +USStates.Year_Entered: +1858 + + +USStates.Year_Settled: +1805 + +]]> + #Style_5 + + + -94.3059456842785,46.315646568988,0 + + + + + + -91.7303661652997,43.4995717605756,0 -91.61109897494811,43.5006261853338,0 -91.22356677965871,43.5008086595185,0 -91.2405580213774,43.5487125887566,0 -91.23298990442041,43.5988900700786,0 -91.25838918935199,43.6773222933277,0 -91.2589159418758,43.722395792303,0 -91.25110489264939,43.7880757984421,0 -91.2919479787799,43.8471907610578,0 -91.37335730440661,43.9471911008781,0 -91.42590181819401,43.9856198570706,0 -91.5284201557391,44.0342152895652,0 -91.5691620630017,44.0349552968239,0 -91.60178627007811,44.0408222716716,0 -91.65223360680488,44.0668957468858,0 -91.75321932280971,44.137227713274,0 -91.8487439445729,44.1911872320563,0 -91.8886943206616,44.2574949606432,0 -91.92234937163771,44.2883410303644,0 -91.92275412337878,44.3175199116197,0 -91.93886834504872,44.339111391384,0 -91.9723859734527,44.3644872200889,0 -92.09133339981391,44.4155898138742,0 -92.20613743547611,44.438394406506,0 -92.24910036010419,44.4562167874695,0 -92.2966874837295,44.4921818837451,0 -92.32047800875431,44.5404910618561,0 -92.3408725165741,44.552835394321,0 -92.50921485952681,44.5751591745776,0 -92.60897363372321,44.6102923158697,0 -92.6303675936169,44.6426524073846,0 -92.7371456955245,44.7135944805029,0 -92.8055846707726,44.7461605361291,0 -92.76102806028632,44.8353710549111,0 -92.7642634372038,44.8622340952332,0 -92.77187081519131,44.8994959546817,0 -92.75392579385328,44.9150027795129,0 -92.74976784308311,44.9356555439475,0 -92.76712645766899,45.00100490501169,0 -92.76299156220411,45.0221192057595,0 -92.7967618135124,45.06561027085739,0 -92.745422213769,45.1130040157029,0 -92.74493484528919,45.15642269767639,0 -92.76258304535911,45.1866121435376,0 -92.7554192919425,45.21237648106559,0 -92.7465933709999,45.2976031328022,0 -92.70738439950389,45.3182016620431,0 -92.6848697682278,45.3630764817203,0 -92.6487510358123,45.3954659291152,0 -92.64497507097812,45.4394520895191,0 -92.65481774623471,45.4552217732121,0 -92.6854210050266,45.47005330592301,0 -92.72815467639281,45.5472423195578,0 -92.7621749006385,45.5642634927727,0 -92.8350370161896,45.5634021889124,0 -92.87683120537091,45.5788365687146,0 -92.88539736667759,45.6449553564473,0 -92.86001973034908,45.7105625427853,0 -92.8336362361192,45.7308902363902,0 -92.7791069996475,45.7633404333685,0 -92.7487619268784,45.8373020678585,0 -92.73409766347459,45.8449807095829,0 -92.7062407667141,45.8909581511523,0 -92.66620788226589,45.9157031282064,0 -92.5526720844383,45.951269177817,0 -92.523976865602,45.9825831928093,0 -92.46234575772182,45.9811975360765,0 -92.424999275654,46.02550410046081,0 -92.36496279806639,46.0162488119767,0 -92.34622483014461,46.02259611620039,0 -92.3273726656403,46.05687820515121,0 -92.28937040263681,46.0732311286316,0 -92.2889439643788,46.1566006735494,0 -92.28868526089251,46.4159840674228,0 -92.2872715563534,46.6587860038615,0 -92.3031480663,46.6665757766645,0 -92.2146242678823,46.6682038862087,0 -92.08849202307899,46.7918972785432,0 -91.8009688624982,46.927086623484,0 -91.4686571836076,47.1249355556153,0 -91.0214756530082,47.4610588390706,0 -90.50963345452878,47.70993799650971,0 -89.9996777736217,47.8245648226691,0 -89.6363736107452,47.9593906700956,0 -89.6256450556299,47.9925618003996,0 -89.53067313598361,48.0016559923925,0 -89.7493099330168,48.0264846412458,0 -89.9003891418888,47.99250512067161,0 -89.9870207360302,48.0235567657025,0 -90.0267005742131,48.0860790014952,0 -90.14527002079679,48.11277085020891,0 -90.5568351655885,48.0927504182125,0 -90.5674552658806,48.1216998440229,0 -90.74336558712381,48.08844371515371,0 -90.8644947891665,48.2541980952133,0 -91.02714843931439,48.1953389259894,0 -91.2394466747146,48.0812981350086,0 -91.5715618830894,48.0435715472354,0 -91.5687753292567,48.1044577516695,0 -91.70373106504471,48.1148349055472,0 -91.71193784619291,48.196775109185,0 -91.7888148497142,48.20614520447209,0 -91.9795339629396,48.2503981435702,0 -92.03518366304429,48.35550878694159,0 -92.12596210613212,48.3667559539545,0 -92.276130881027,48.3523196851575,0 -92.3002722840632,48.2983114429892,0 -92.27691795711418,48.24434086906501,0 -92.37011602275121,48.2207790471373,0 -92.4733222786803,48.357498964433,0 -92.45634491288702,48.40216907873939,0 -92.497529244791,48.44007277128479,0 -92.7066429969655,48.4603699594979,0 -92.698821186614,48.4947209620297,0 -92.62637994133861,48.5028239458538,0 -92.64181991541932,48.5403493271395,0 -92.7290006435522,48.5402115541602,0 -92.94692624020411,48.6283554983948,0 -93.0914423831067,48.6265848629951,0 -93.30423676330351,48.6371629986434,0 -93.45776948562218,48.5927099128974,0 -93.46533944532861,48.5495199345034,0 -93.5141391057052,48.5342709597703,0 -93.7811059808909,48.511590153422,0 -93.81268540339329,48.5254079471682,0 -93.84390378713221,48.6247369771822,0 -94.2308273869122,48.6519875523433,0 -94.2923368906057,48.707711135665,0 -94.4306344734039,48.7107852810122,0 -94.5703127368143,48.71367626358171,0 -94.69443202241369,48.7776155300333,0 -94.6812499456836,48.8771613109608,0 -94.8320392613248,49.3308059165427,0 -95.1518673347569,49.3717301437862,0 -95.15774988936289,48.9999959148723,0 -95.2766571152867,48.99999121224381,0 -96.4069151843986,48.9999820713408,0 -97.22943644383329,48.9999877567165,0 -97.21636909583231,48.9318299182446,0 -97.17572751730749,48.87375778734761,0 -97.17120441179901,48.8359804803914,0 -97.180421855856,48.8155374993874,0 -97.1647124057145,48.81036830295489,0 -97.17394470123411,48.8015144641308,0 -97.14751600300801,48.7811701058176,0 -97.13924598743699,48.7635421115078,0 -97.14789838866929,48.7556533929197,0 -97.1325018005064,48.74721879009559,0 -97.13480616135631,48.72623793064931,0 -97.11010128165211,48.70858304519639,0 -97.1167392665872,48.6952431183753,0 -97.0971692767445,48.67452891358581,0 -97.1076300563642,48.6299465820435,0 -97.12744434552491,48.6297943394125,0 -97.1229581756859,48.62076865965261,0 -97.14471807468772,48.614024636853,0 -97.1408119037381,48.58690580615401,0 -97.1581923011142,48.5836407260616,0 -97.15212680110921,48.5728564381998,0 -97.16794315057858,48.5622632793582,0 -97.14661837238491,48.549537028086,0 -97.16043569382291,48.5450778855401,0 -97.15553751110001,48.5383982428954,0 -97.13938559124,48.53464808973769,0 -97.14832765896941,48.5179512756552,0 -97.13459432660341,48.5173139662426,0 -97.1436129528287,48.4381095940115,0 -97.11963315137211,48.4371020760904,0 -97.1226011810987,48.4161098774117,0 -97.1516469812462,48.4196122946538,0 -97.14982354769968,48.4099916056847,0 -97.12912451530391,48.40788551888869,0 -97.15881888906552,48.3882060567347,0 -97.13520540024382,48.3844100102639,0 -97.1337863598383,48.37245473762349,0 -97.1503959422882,48.3632158504957,0 -97.1311236997639,48.3614912628834,0 -97.1371359526577,48.325991839938,0 -97.11259178050868,48.3199260418033,0 -97.1326346023646,48.3109694998778,0 -97.11475103859129,48.3036182701977,0 -97.11372110772452,48.2948826063907,0 -97.13051368584328,48.2930404066961,0 -97.1126835485646,48.2861469425287,0 -97.1117146532382,48.2778766724222,0 -97.1366555811411,48.26448372514071,0 -97.12378464072812,48.2591734472995,0 -97.12755405772062,48.2335233812974,0 -97.1092357553089,48.2280489212221,0 -97.13975391723049,48.2217551769127,0 -97.1108994630634,48.2076058326789,0 -97.13082783294991,48.203741885664,0 -97.13727498096822,48.19506350874159,0 -97.13629125790619,48.1752269254696,0 -97.13744349769659,48.1677691625112,0 -97.1160657786151,48.15922376009381,0 -97.1365131689498,48.1483979760568,0 -97.12091854672551,48.1427747596289,0 -97.1218728658484,48.1163692500537,0 -97.09903037740141,48.10097253646661,0 -97.09272143407961,48.0703439518727,0 -97.06707134786728,48.048164548667,0 -97.04805316836101,47.9549243203709,0 -97.0153310859442,47.9178900732528,0 -97.02056624465818,47.8755694579146,0 -97.0003404808151,47.8701978669666,0 -96.9772315863069,47.82802938021419,0 -96.98389283615319,47.8096615237026,0 -96.95783043536861,47.7944403501783,0 -96.9320126704945,47.76350633439991,0 -96.92365919198331,47.7140944463104,0 -96.88942557471509,47.6739252332857,0 -96.8733355306381,47.61525494214149,0 -96.8522168516036,47.6011515774988,0 -96.85866448748919,47.5629780191413,0 -96.84918872371689,47.5445680596933,0 -96.86068697531159,47.521355890617,0 -96.8516156149426,47.5006189556105,0 -96.86668409504289,47.46153767201731,0 -96.8558270224376,47.4367532150799,0 -96.8672485372544,47.4130870926383,0 -96.85000552427368,47.40893619134631,0 -96.83982751825211,47.3841173886799,0 -96.8506310274787,47.3609547965118,0 -96.83846171594141,47.3422432670699,0 -96.84674742491131,47.3146021392787,0 -96.8377139015022,47.2938841531782,0 -96.84962364144019,47.2568437171683,0 -96.83706533207652,47.24045886252299,0 -96.8264910530645,47.1700638561564,0 -96.83916391918299,47.15188672447119,0 -96.8191517739067,47.092603946145,0 -96.82696455551869,47.0788327499143,0 -96.8226082854226,47.0339323228784,0 -96.83529642490029,47.010231336615,0 -96.8245311005541,47.0034368148568,0 -96.81677225710112,46.9697793204954,0 -96.7934256963282,46.9696412657999,0 -96.80188711680511,46.9558437462552,0 -96.78971039131831,46.9482025284177,0 -96.78792529587892,46.9321845446505,0 -96.7630680116614,46.9362617243826,0 -96.75691111938932,46.92278040676061,0 -96.77806115639289,46.86734962234851,0 -96.7682498142506,46.8448617179934,0 -96.79719698567129,46.8120331273937,0 -96.78038206028749,46.76231192357041,0 -96.7815566712509,46.70704424821519,0 -96.7936950250642,46.6788040267861,0 -96.79024584630611,46.6297732310646,0 -96.7843175742934,46.6241120798968,0 -96.77104176601431,46.599983727298,0 -96.7512275405111,46.5886193856906,0 -96.7403159762507,46.48943263621611,0 -96.7148938591495,46.4687184679509,0 -96.70968261750701,46.4271682580565,0 -96.68822802670302,46.4122182590646,0 -96.652101616659,46.359433744956,0 -96.6148614718026,46.3508125122489,0 -96.60207424773671,46.3363242033822,0 -96.59818306918299,46.2386825873787,0 -96.586456172813,46.2154130412247,0 -96.58789029848551,46.1919183501241,0 -96.5711660882375,46.1771746587376,0 -96.5519309951806,46.0955288981098,0 -96.57621526476891,46.0212796299197,0 -96.56180218014301,45.947683082204,0 -96.56692152993792,45.9341104552974,0 -96.5879553105857,45.81785439182519,0 -96.6046107059596,45.80826424845279,0 -96.6573917688784,45.7389705623089,0 -96.83279582155808,45.6506868841235,0 -96.8549898493374,45.6091221067738,0 -96.8430871871886,45.5840902909474,0 -96.7692462014101,45.5174788689806,0 -96.73803233417799,45.45819529036351,0 -96.6931692082715,45.41063812193121,0 -96.605084508902,45.39652440242141,0 -96.53254890239431,45.375132161552,0 -96.47759206506849,45.32850936575391,0 -96.45760224516572,45.29885024157079,0 -96.45449660823299,45.2751954302209,0 -96.45607982498672,44.9719948297018,0 -96.45521726388,44.801347584114,0 -96.4567178119828,44.6288086832266,0 -96.4551061874746,44.5383431654349,0 -96.4573975061948,44.1990613946085,0 -96.45660233944199,43.8487418284865,0 -96.4604547078315,43.4997184756898,0 -96.0610395014389,43.498533697461,0 -95.8669120002192,43.4989439769817,0 -95.46477535859469,43.4995410217166,0 -95.3965585901372,43.5003340364673,0 -94.9204646838526,43.4993712448179,0 -94.859839276263,43.5000304051637,0 -94.4552382894281,43.4981020923778,0 -94.2467873911458,43.4989484742926,0 -93.97394980408042,43.5002988511065,0 -93.653699466766,43.5007626988541,0 -93.5008302025135,43.5004884829356,0 -93.0543803044398,43.5014574340012,0 -93.0272108293768,43.5012788635835,0 -92.5580084257835,43.5002595022348,0 -92.4531691122113,43.4994619143947,0 -92.07753252302631,43.499153513998,0 -91.7303661652997,43.4995717605756,0 + + + + + + + + Mississippi + empty + + +states.AREA: + 47618.965 + + +states.STATE_NAME: +Mississippi + + +states.STATE_FIPS: +28 + + +states.SUB_REGION: +E S Cen + + +states.STATE_ABBR: +MS + + +states.POP2000: + 2844658 + + +states.POP2001: + 2871527 + + +states.POP00_SQMI: + 60 + + +states.DEN_0_100: + 95 + + +USStates.ID: + 20 + + +USStates.State_Name: +Mississippi + + +USStates.Date_Entered: +Dec. 10 1817 + + +USStates.Year_Entered: +1817 + + +USStates.Year_Settled: +1699 + +]]> + #Style_5 + + + -89.6640053796168,32.7591641085257,0 + + + + + + -88.4508031165511,31.4356176907354,0 -88.465096841429,31.7022450293789,0 -88.4729519210596,31.8888768167036,0 -88.4377242279507,32.2277556143888,0 -88.4257919971009,32.3092243032455,0 -88.3938325168417,32.5804702260594,0 -88.3480414662251,32.9247582205318,0 -88.33946633175739,32.9874972113755,0 -88.3048295831961,33.2888943469818,0 -88.2745866910838,33.5388014650338,0 -88.24819560524909,33.7427263969428,0 -88.20264467082561,34.0591222846376,0 -88.19934924265689,34.0904480664289,0 -88.1676133199948,34.3241474912554,0 -88.15125641336159,34.4652732358205,0 -88.13640162363011,34.5804972978314,0 -88.09046867570861,34.8956296636558,0 -88.10888651427,34.8999364686021,0 -88.1431049406294,34.9303124572945,0 -88.1939935775637,35.0044536440488,0 -88.3517277419525,35.0038322749094,0 -88.3831462732763,35.0050415368605,0 -88.7850433913526,35.0031823096823,0 -88.8125482768171,35.0024385995065,0 -89.0061963915943,35.0002347214314,0 -89.1981347323638,35.0008837887335,0 -89.3423729736416,34.9998048697839,0 -89.64655874084551,35.0007332954087,0 -89.7172700655279,34.9992611903073,0 -90.3054483329108,35.0007887668604,0 -90.2996040912406,34.9785763166455,0 -90.2482645856439,34.9498563938362,0 -90.24199312177619,34.9389999550718,0 -90.24293921036021,34.9208271417899,0 -90.2668045737091,34.8966081006537,0 -90.2963692858759,34.8827875862869,0 -90.2995432252211,34.8650572468814,0 -90.30164901403768,34.851873932935,0 -90.3229203349016,34.8503632334111,0 -90.34152127876421,34.8606740294564,0 -90.4040306027044,34.8411352642473,0 -90.4224103169264,34.8323653841601,0 -90.433648709805,34.83545134437,0 -90.4279417146019,34.8727391673229,0 -90.43818824405589,34.8862771531433,0 -90.47062930169579,34.8810204416072,0 -90.4748179857494,34.8578237977629,0 -90.45200553728539,34.8253158387959,0 -90.46680699538459,34.7997617150697,0 -90.4489690543041,34.7608489921917,0 -90.45153258063928,34.7412990973377,0 -90.48602595176961,34.7269330960027,0 -90.5045201438459,34.7299541802284,0 -90.5170709695817,34.7484702598375,0 -90.49883609775949,34.7658840525447,0 -90.5013843558158,34.7899313101001,0 -90.51614770215419,34.8057007952067,0 -90.5273632829947,34.8074211116658,0 -90.5478489155079,34.7904345448067,0 -90.53338308133611,34.7133527478315,0 -90.5136680230595,34.702168426854,0 -90.4700800044602,34.7043544473312,0 -90.4663261216033,34.6721400223716,0 -90.5089145701068,34.6381667803775,0 -90.5390670140484,34.6369954120314,0 -90.54765041882089,34.6519066940829,0 -90.53916630258439,34.6860476391663,0 -90.56116263432628,34.7003866360947,0 -90.57940507832259,34.6457114581828,0 -90.58809525009498,34.6279161438152,0 -90.5777188709607,34.6048453840045,0 -90.5307199720464,34.5557516818131,0 -90.53725095298539,34.5434303779675,0 -90.5657859528414,34.5326117672652,0 -90.5804501933474,34.5203246797393,0 -90.59015506208731,34.4966090201687,0 -90.57450570771368,34.4540494001334,0 -90.57922804447659,34.4331032095237,0 -90.60389412048508,34.4047029797656,0 -90.6573464859749,34.3660143325751,0 -90.65791781402791,34.3301110369,0 -90.6794406527353,34.3180794258637,0 -90.68948128142971,34.3202498232312,0 -90.6812424323426,34.3635040042302,0 -90.6875906711157,34.3779766258423,0 -90.75541794936311,34.3722691135712,0 -90.7619638892818,34.364018026031,0 -90.74786301501229,34.3178229839966,0 -90.75836020093259,34.2790815153021,0 -90.7926330280344,34.3000616903072,0 -90.80652652929172,34.2994512329978,0 -90.82394433723711,34.277444457808,0 -90.8314661258313,34.2296393889001,0 -90.86351805053698,34.2192670758548,0 -90.9285457793972,34.2502985218322,0 -90.93381765059741,34.2347805101336,0 -90.9215946009177,34.2049348828191,0 -90.8230272013098,34.1906501116551,0 -90.80761499232,34.1662785963789,0 -90.82897009057919,34.1487653755381,0 -90.84671660873281,34.1476512964452,0 -90.92902561447708,34.1857547898992,0 -90.9534553235284,34.1559087583442,0 -90.9423538254879,34.1260478667544,0 -90.90641792332421,34.1028552934255,0 -90.86643858092512,34.1010591014266,0 -90.88645032093149,34.040818090639,0 -90.95057738634012,34.0313950359426,0 -90.9734737113361,34.0111046201452,0 -90.9753809466784,33.9947130844006,0 -90.9612354430936,33.9789817484763,0 -90.96489758467079,33.9675683195034,0 -90.9869243510316,33.9609229307681,0 -91.0003678622968,33.9684795241317,0 -91.0096532951119,33.9906347187545,0 -91.03116883753491,33.9858050201095,0 -91.0698054890087,34.0062011888095,0 -91.08896340340431,33.9945738225001,0 -91.075817398803,33.9747494464877,0 -91.01857194440652,33.9364134475297,0 -91.06148054411389,33.8671886882777,0 -91.0549265134198,33.8436334807269,0 -91.0289626430975,33.8166950131436,0 -90.99047854078901,33.7990071442826,0 -90.9841458001964,33.7854500107548,0 -90.99548340691879,33.7716600260669,0 -91.01854016459431,33.7640838422967,0 -91.04351203531321,33.7696642449716,0 -91.06650027762299,33.7866351498749,0 -91.10552584181519,33.7765486562049,0 -91.1370973386382,33.7801949325541,0 -91.1430026284613,33.7719285490089,0 -91.1381116937944,33.7233341453239,0 -91.129055226842,33.7125503367781,0 -91.1046784705554,33.7083431494327,0 -91.0563218415079,33.7194673047115,0 -91.0389337685444,33.7056013490966,0 -91.03794174479148,33.6833276928149,0 -91.08387971624239,33.6626975706472,0 -91.1211582957132,33.6776390014341,0 -91.16341157255451,33.7184243604201,0 -91.2117911105934,33.7090740491267,0 -91.21525485495199,33.690832533146,0 -91.20542010320271,33.670054473021,0 -91.1545148512779,33.6371425699443,0 -91.15076092012042,33.6162728236941,0 -91.16813338054911,33.5773559141775,0 -91.18791706051998,33.5747923198036,0 -91.2268436629257,33.5905920919159,0 -91.2277437480702,33.5564627810534,0 -91.21359825583821,33.539388695493,0 -91.20421377208162,33.5386182116453,0 -91.1829574461633,33.5234628974492,0 -91.18051588058511,33.5121258753279,0 -91.20775358321031,33.4735103338542,0 -91.2272625589118,33.4595677906787,0 -91.23296184460889,33.4435578002255,0 -91.1818813238998,33.4475023901927,0 -91.1718407642763,33.4667586515282,0 -91.17429002799679,33.5044814214406,0 -91.16508870848941,33.511893278083,0 -91.12890876375178,33.4933048406628,0 -91.11906643910299,33.4697877493532,0 -91.11982172873771,33.4529461878788,0 -91.13062529226629,33.4432379167019,0 -91.19894113644132,33.4222266229444,0 -91.2042742333541,33.414414252442,0 -91.1850932093454,33.3919462343914,0 -91.13774359783101,33.3889939554845,0 -91.09923682479071,33.4150136902789,0 -91.08590793517429,33.4629711994008,0 -91.07386834518309,33.4663205040007,0 -91.0610886583117,33.4601256250454,0 -91.0616226774054,33.4319126666717,0 -91.0787969781513,33.4102951070005,0 -91.107049532132,33.3935220665091,0 -91.13053349445238,33.3595184071126,0 -91.1418557768241,33.3225012621225,0 -91.1226136683412,33.2686236274109,0 -91.10301308177489,33.249329353099,0 -91.07643152692042,33.2924766671242,0 -91.0539393519749,33.2936936328911,0 -91.0405340548071,33.2820400168761,0 -91.05464881790898,33.2459002185311,0 -91.09211028743471,33.2258161142148,0 -91.08642608991831,33.1617229779066,0 -91.09596309376539,33.1452056628518,0 -91.12143839042092,33.1311906845818,0 -91.1777374599034,33.1504085143774,0 -91.19561365046539,33.1405858277008,0 -91.19064668515279,33.1133457020205,0 -91.1468983565878,33.0907747749873,0 -91.1178981011678,33.0656937749518,0 -91.1240933135817,33.0473950555076,0 -91.1567938514993,33.040555368368,0 -91.16078409477549,33.0218332391698,0 -91.1622413295772,33.0131626211682,0 -91.16197425997009,33.0004180010727,0 -91.20927012576061,32.935978073614,0 -91.19842078694131,32.9142883501159,0 -91.16980976931431,32.9051486450656,0 -91.13728478778282,32.9179123119183,0 -91.13004429846551,32.9375917893587,0 -91.13246289263051,32.9753485871396,0 -91.1119239712728,32.9874752104853,0 -91.09278126642242,32.9877460881529,0 -91.075698595519,32.9538382302101,0 -91.0796355518755,32.8772908363965,0 -91.1422592525615,32.8413420630697,0 -91.1564502239537,32.7628111152121,0 -91.1365751786759,32.751256737741,0 -91.0978169539142,32.7495287526143,0 -91.05913512287872,32.7236507270734,0 -91.1396654000576,32.663308001886,0 -91.1463718367631,32.6449866188679,0 -91.1111005222843,32.5976630747531,0 -91.06391930560149,32.6065243385273,0 -91.0477369807394,32.6144891676735,0 -91.02757194109799,32.6416374743549,0 -91.0079868510271,32.6428085554835,0 -90.99623739617641,32.6261121948604,0 -90.99876283398881,32.6156030444933,0 -91.03243221757509,32.5828091644492,0 -91.05897546705708,32.5765265579993,0 -91.07337249217869,32.5617489074888,0 -91.0631947408495,32.5422984158072,0 -90.9951774336628,32.511781889744,0 -90.9921562021718,32.4954212340256,0 -91.01979041957442,32.4909543534273,0 -91.03730785093811,32.4970957768502,0 -91.08889104990392,32.5487755489391,0 -91.11885237927079,32.524205893418,0 -91.1177919517207,32.4987093128914,0 -91.0586173128584,32.4471403993983,0 -91.027015703315,32.4425591367523,0 -90.987555664684,32.4531064313693,0 -90.96559027073792,32.4401789961165,0 -90.9700917310243,32.41916079336,0 -91.0093152122207,32.3972270178482,0 -90.99896957955122,32.3663787517009,0 -90.98467186569272,32.3565410587047,0 -90.91502958658171,32.3460435683761,0 -90.8852590969197,32.3814999498488,0 -90.8754551600106,32.3797948696303,0 -90.9164792854551,32.3054643188479,0 -90.9293503055389,32.2975529103154,0 -90.9717628039961,32.3038468581634,0 -90.9808724634335,32.2978007782368,0 -90.98392428988359,32.2872802390738,0 -90.97112198627711,32.2692145344565,0 -90.97732476193758,32.2235541462358,0 -91.0417564572334,32.249588584805,0 -91.06256993823,32.2328921503996,0 -91.08802223200981,32.2325373651522,0 -91.1006796950342,32.2150360650047,0 -91.1160609494648,32.225755012482,0 -91.15737514242458,32.2060145228895,0 -91.1669578883395,32.1721410581455,0 -91.15665029978031,32.1449354980044,0 -91.10882038739021,32.1351435271569,0 -91.0831163105895,32.148731083052,0 -91.05415436554129,32.1345446969889,0 -91.04541852022901,32.1588244987585,0 -91.0545816942883,32.1846835164502,0 -91.0245210933432,32.1700508264511,0 -91.00393646145051,32.1694138145198,0 -91.0113905060031,32.1342128745109,0 -91.04119164865929,32.1078235881288,0 -91.0739225856783,32.0941482900527,0 -91.06511798689969,32.0587070505858,0 -91.08941061986668,32.0569980949997,0 -91.125727524233,32.0883996668359,0 -91.1456941711085,32.085828620503,0 -91.1431229851656,32.0662598368965,0 -91.08699202272901,32.0438110998955,0 -91.07324347350119,32.0321499472516,0 -91.07248812939382,32.0212135515791,0 -91.10811063502561,31.9919842773777,0 -91.16314291993849,31.9884481049272,0 -91.20154214815391,31.914448862447,0 -91.2444813396436,31.8786718608009,0 -91.26469211768119,31.8655859136312,0 -91.24138341450281,31.8353877405104,0 -91.25072958285951,31.8188210015347,0 -91.27680008896378,31.8275334941804,0 -91.2926470392426,31.8614928392569,0 -91.30347348797039,31.863144546493,0 -91.33484640167582,31.8434784170896,0 -91.3472366701502,31.7958323053943,0 -91.36713463540391,31.7708677200763,0 -91.3362574528706,31.7636219421964,0 -91.26268491650518,31.7739271210982,0 -91.2639894905689,31.7597635597382,0 -91.28262100699412,31.7498875713679,0 -91.3399120227254,31.7585428158009,0 -91.3704992222101,31.75347510581861,0 -91.3650745397498,31.7517413813867,0 -91.38794806501321,31.716682847539,0 -91.3891838304294,31.6546051479529,0 -91.4084028346628,31.6255298775261,0 -91.45737763016589,31.6269660621133,0 -91.4977690885564,31.6508953247071,0 -91.50780965753789,31.6438707722357,0 -91.50887776268431,31.621946112804,0 -91.49715101609371,31.6043585245596,0 -91.4153838994301,31.6025923876789,0 -91.40425216217201,31.5863534317346,0 -91.42357803613481,31.5627464662349,0 -91.46447302857931,31.5428664076677,0 -91.50295705582839,31.5348804964065,0 -91.506481902402,31.5256872825259,0 -91.50790071721922,31.4530834240658,0 -91.4732924895748,31.4203746865528,0 -91.46592215694071,31.4040690532825,0 -91.48083803831911,31.3777805832693,0 -91.49470875734109,31.37524960980541,0 -91.52301453224139,31.3920917852495,0 -91.53416902145848,31.4092388142744,0 -91.53480241584072,31.434335247521,0 -91.5524724466605,31.4330997709492,0 -91.56773147230381,31.4214064364688,0 -91.5593769120174,31.3882304242528,0 -91.53457323759901,31.3827500700431,0 -91.5444076356665,31.3688746277826,0 -91.54279004566349,31.3469862680809,0 -91.5057561590215,31.3234567034819,0 -91.5024753378186,31.2988580123244,0 -91.5170781714622,31.2830696578166,0 -91.55691947736142,31.2704690710127,0 -91.634214237565,31.2776940549104,0 -91.6436824254271,31.2711178839201,0 -91.636998739959,31.241104186479,0 -91.6009643646854,31.2139296737496,0 -91.5914883087676,31.1784818992551,0 -91.6201139178138,31.1276943834946,0 -91.56497527228081,31.0821350184803,0 -91.552081308545,31.0581597906819,0 -91.57278761694658,31.032647877549,0 -91.6277732104017,31.0119601110946,0 -91.6322974277285,31.00136500740931,0 -91.17920745434212,31.0004616671834,0 -91.05701216426981,31.0004181174657,0 -90.82971390290152,31.00154581229931,0 -90.56025489707021,31.0017063331187,0 -90.5426536021385,31.0023300433606,0 -90.3436602569889,31.0053899463824,0 -90.2593768226071,31.0073700245843,0 -89.83355873794839,31.0071848554001,0 -89.7327174808554,31.00744501459671,0 -89.7236228724726,31.0015247201013,0 -89.726781296615,30.9846164008972,0 -89.7198229059406,30.9754936822636,0 -89.7395225295214,30.965400256862,0 -89.7485405475115,30.9498480428011,0 -89.7404756300233,30.9261095623025,0 -89.75805428152501,30.9210436978628,0 -89.7457551089107,30.910107202755,0 -89.7468002599141,30.9027945578147,0 -89.76331078881169,30.9004713517936,0 -89.76585085732459,30.8620847088871,0 -89.7850241384817,30.8615791361643,0 -89.77479992387271,30.8305319403895,0 -89.79609421512551,30.8291051373468,0 -89.7965669822497,30.8126526475249,0 -89.8109335655279,30.8116989081619,0 -89.8246894189972,30.7897246849283,0 -89.813351089932,30.7481682046961,0 -89.8255660189393,30.74264836900471,0 -89.8233990376437,30.7330545562641,0 -89.83561400018191,30.7293619382654,0 -89.8440520689247,30.7124249093943,0 -89.83072296372239,30.7037809798175,0 -89.8413433452435,30.7005499465483,0 -89.8417854969649,30.6795198391887,0 -89.8353918067202,30.675882597152,0 -89.8454474865972,30.6662525153547,0 -89.8295245363783,30.6708739896173,0 -89.81935389911089,30.6512457789506,0 -89.8055366119584,30.6494567398327,0 -89.8203071285261,30.6242705431171,0 -89.7908478814126,30.5539438185454,0 -89.7727961225489,30.5512468627469,0 -89.75517865909291,30.5156218767139,0 -89.73231974937779,30.4978380271641,0 -89.719059260721,30.4960375437604,0 -89.7131840947211,30.48141599910741,0 -89.695681461547,30.4782460714929,0 -89.6945978512597,30.4681868413409,0 -89.6834507334724,30.4627185730285,0 -89.6754620986314,30.4453524057824,0 -89.67536970065041,30.4000744263161,0 -89.6546699231165,30.37906533290621,0 -89.64668882303469,30.3552905752797,0 -89.633451292423,30.3553078019512,0 -89.620198293058,30.343429054806,0 -89.6185880809724,30.323760747644,0 -89.6370822520275,30.3118436964481,0 -89.6391725011899,30.29582979652721,0 -89.6259425171347,30.2903558515233,0 -89.6216616714494,30.2569643699525,0 -89.6063106026528,30.247828412852,0 -89.6100033159566,30.2414198536792,0 -89.5738839850623,30.1949353118833,0 -89.4381213198934,30.2009670531795,0 -89.4156141811479,30.2564852330285,0 -89.3185425339085,30.3188533708312,0 -89.3575310460273,30.3652847342137,0 -89.335046582448,30.3804232519676,0 -89.27352821831209,30.3723862703524,0 -89.2761213477847,30.3148407273573,0 -88.8857264645103,30.3982888782491,0 -88.93022291070869,30.4168011352414,0 -88.873786281284,30.4302766265056,0 -88.68326442818061,30.3423228324023,0 -88.57776076825159,30.3807498514342,0 -88.4642372948552,30.3260764687888,0 -88.3992249519191,30.3528859313249,0 -88.40141515368251,30.3935517804008,0 -88.41724262810349,30.7364571156747,0 -88.4291990018716,31.0006950876596,0 -88.4345631161403,31.1208794693781,0 -88.4508031165511,31.4356176907354,0 + + + + + + + + Missouri + empty + + +states.AREA: + 69832.746 + + +states.STATE_NAME: +Missouri + + +states.STATE_FIPS: +29 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +MO + + +states.POP2000: + 5595211 + + +states.POP2001: + 5646796 + + +states.POP00_SQMI: + 80 + + +states.DEN_0_100: + 93 + + +USStates.ID: + 24 + + +USStates.State_Name: +Missouri + + +USStates.Date_Entered: +Aug. 10 1821 + + +USStates.Year_Entered: +1821 + + +USStates.Year_Settled: +1735 + +]]> + #Style_5 + + + -92.4801886377418,38.3639901274756,0 + + + + + + -89.1050338653654,36.9539220770253,0 -89.1072162055416,36.9775040571059,0 -89.1299298602513,36.9881656914537,0 -89.1935842098097,36.9868222806571,0 -89.2101262118458,37.0290237051986,0 -89.2377536103058,37.0417835282019,0 -89.26413039669779,37.0871742876795,0 -89.28431079352841,37.0912941061444,0 -89.30336936544271,37.0854347008365,0 -89.3097775142834,37.0609596218128,0 -89.26431960659031,37.0277834462293,0 -89.26207602720631,37.0087367322465,0 -89.28284342367,36.9992571418446,0 -89.3110577890705,37.0097321155337,0 -89.3830287336186,37.0492635096727,0 -89.3800701656133,37.0991331193152,0 -89.42388077877629,37.1372534192951,0 -89.44060600449021,37.165367829282,0 -89.4683040002904,37.2243166291394,0 -89.46539822681051,37.2537814318187,0 -89.48968358551591,37.2560512507203,0 -89.51397668384681,37.276452254325,0 -89.5139774032488,37.3050126842203,0 -89.5006722080316,37.329491318765,0 -89.46883367402491,37.3394589952529,0 -89.43582789426451,37.3557666795513,0 -89.4276653438195,37.4110680347262,0 -89.4537142750772,37.4532354416246,0 -89.4948777729593,37.4917750136486,0 -89.52506805859341,37.5720063661821,0 -89.5134636137585,37.6159786570251,0 -89.51927739008779,37.6504256791403,0 -89.51347129814729,37.6798905957089,0 -89.5216197606815,37.6948481923868,0 -89.58153539397119,37.7061554249312,0 -89.6665610141995,37.7455048947008,0 -89.6759604497414,37.784021807452,0 -89.6911585166015,37.8048461895875,0 -89.728551127852,37.8410437278203,0 -89.8518221998746,37.9051156711928,0 -89.8611532194338,37.9055391707122,0 -89.8669213710244,37.8919285019704,0 -89.900659718619,37.8759567792384,0 -89.93798377619601,37.8780970980944,0 -89.97902314782711,37.9119372642027,0 -89.95833872049469,37.9636867798315,0 -90.01092211725509,37.9693709792311,0 -90.04203572235682,37.9932585919637,0 -90.1194535601973,38.0323252746278,0 -90.13482705649538,38.0540042508408,0 -90.20764422452261,38.0889589210515,0 -90.25417712909579,38.1222235068627,0 -90.2897533449443,38.1668707739162,0 -90.3368353674101,38.1887672607723,0 -90.36488893881901,38.2343531960061,0 -90.36946594646452,38.3236130942444,0 -90.35880701471911,38.365383796682,0 -90.3397250925035,38.3909000937545,0 -90.30195808265761,38.4274101853512,0 -90.2658995864079,38.5187409219187,0 -90.2613445745186,38.532820806846,0 -90.24105709170181,38.5628573013572,0 -90.1838189833793,38.610322629253,0 -90.1836888738229,38.6588222213685,0 -90.2023506849595,38.7004136293542,0 -90.19668164834522,38.7240148841336,0 -90.1635076675385,38.7731473780178,0 -90.13528557177762,38.7855333244896,0 -90.1218345138212,38.8005591450278,0 -90.1132283291809,38.8305155786969,0 -90.13292049439282,38.8530794199913,0 -90.2440385800512,38.9145571194291,0 -90.2790431101957,38.9247652789138,0 -90.31985371572098,38.9249561810614,0 -90.41318604000151,38.9623782480884,0 -90.4699576683671,38.9592275775329,0 -90.5305451069931,38.8916590934777,0 -90.57044835788962,38.8713768681923,0 -90.6273348623125,38.8808451829242,0 -90.66899973918559,38.9353034194491,0 -90.70619359871029,39.0378416951969,0 -90.7077119263589,39.0582272816598,0 -90.6905224771304,39.0937493584583,0 -90.7168599355041,39.1442594879132,0 -90.71831723958958,39.1959215056912,0 -90.73246246782379,39.2247947417977,0 -90.7382075249523,39.2478582113647,0 -90.77946911185738,39.2968502329079,0 -90.8506238710589,39.3504997276601,0 -90.94802423776449,39.4006319007784,0 -91.03647490820309,39.4444585084789,0 -91.064521543479,39.4740300232192,0 -91.09375072632439,39.5289731742514,0 -91.15632949744598,39.5526394130489,0 -91.2033893787345,39.6000674783423,0 -91.31781179944051,39.6859625802781,0 -91.3672369870804,39.7246854919977,0 -91.3735696173857,39.7613181753518,0 -91.381863132745,39.8038177672296,0 -91.4493403590742,39.8630942448561,0 -91.4511409854999,39.885288198019,0 -91.4342030257459,39.9018745899127,0 -91.43054077302692,39.9218827311204,0 -91.4473948316692,39.9461098791871,0 -91.4874432777371,40.0057984567776,0 -91.50416020997871,40.0667571230242,0 -91.51628405060909,40.1345898206457,0 -91.50670141476959,40.2005039120117,0 -91.4990871746939,40.2514224267414,0 -91.486849457272,40.309668416,0 -91.44874715640491,40.3719466182637,0 -91.4770381934818,40.3910121558996,0 -91.49031385163261,40.3908061091367,0 -91.50037749543139,40.4051606084008,0 -91.5276917691468,40.4101689010293,0 -91.52960695321359,40.4350861780817,0 -91.5388465218747,40.441288675833,0 -91.533208268896,40.4554411066996,0 -91.5793830849706,40.4637602088021,0 -91.5860286246556,40.4845194169649,0 -91.61686016131831,40.5048738271577,0 -91.62253651310201,40.5329033163068,0 -91.6920809036743,40.5516776256622,0 -91.68995975604149,40.5812025311316,0 -91.71697640482071,40.5934354677793,0 -91.7417117785904,40.6097843674944,0 -91.946370183648,40.6082666211982,0 -92.1931744167433,40.6000887188336,0 -92.3615131092551,40.5995762450555,0 -92.6464324165599,40.5914619056485,0 -92.71781545755509,40.5896671790964,0 -93.10093859117031,40.5843472673901,0 -93.37027134829388,40.5804911252976,0 -93.56291046102329,40.580813860252,0 -93.78630370096001,40.5784484988924,0 -94.0180588623528,40.5740221097314,0 -94.23839179788078,40.5709661436833,0 -94.4852311155788,40.5742048680883,0 -94.639876320884,40.575744856122,0 -94.92061587223311,40.5772183148122,0 -95.21742841469741,40.5818925987708,0 -95.382555095884,40.5843340093787,0 -95.7674795852398,40.5890479952096,0 -95.76341234307618,40.5497071705548,0 -95.7370361745627,40.5323733110738,0 -95.692066374489,40.5241298458689,0 -95.68741294533601,40.5611703423814,0 -95.67569378233461,40.5658356928502,0 -95.6629443739739,40.5587289616856,0 -95.658060770915,40.5303325450494,0 -95.6849704910359,40.5122051824756,0 -95.6953617583717,40.4853382791873,0 -95.63681771614181,40.3963904531026,0 -95.63418502298551,40.3588001619374,0 -95.616201682126,40.3464975474771,0 -95.6179334555131,40.3314179459398,0 -95.6455528317303,40.3223467703869,0 -95.64682682752211,40.309109703192,0 -95.59553245637079,40.3097767867205,0 -95.547136994341,40.2662157738894,0 -95.47682209293809,40.2268548930392,0 -95.46663660597849,40.2132555431774,0 -95.46095261349171,40.173995249929,0 -95.4224766940803,40.1317436114368,0 -95.3928129218653,40.1154163675868,0 -95.3845425063415,40.0953626542358,0 -95.40378433048491,40.0803791707436,0 -95.41376387852371,40.0481113899446,0 -95.39053184305099,40.0437507559076,0 -95.37124432588999,40.0287511817595,0 -95.3450672839917,40.0249741114216,0 -95.30869720973901,39.9994075748966,0 -95.2409615197206,39.9421058384133,0 -95.20759760966379,39.9381762630214,0 -95.19396340225789,39.9101800936863,0 -95.1505514013284,39.9080546761413,0 -95.1007225558306,39.8698649954976,0 -95.06324626966109,39.8665379740374,0 -95.03350651062659,39.8778442881217,0 -95.0217725502981,39.8969786850066,0 -94.9650237551983,39.900823541003,0 -94.9382437203224,39.8960818279774,0 -94.9365111558861,39.8493860544701,0 -94.9238762802993,39.833131624215,0 -94.89832461315601,39.8283327692328,0 -94.88850514062642,39.8173998679665,0 -94.8993236192415,39.7937754306095,0 -94.93326765322591,39.7827737328809,0 -94.93511392079802,39.7754266104547,0 -94.9217999904165,39.7578408910459,0 -94.87706755967508,39.7606792157561,0 -94.87118503155682,39.7541179695705,0 -94.87786073247868,39.7393055627822,0 -94.90567811071121,39.726755181953,0 -94.9308558369552,39.727025905148,0 -94.9531421136041,39.7365014323348,0 -94.96178638302391,39.7320382320422,0 -94.978570591812,39.6849880529496,0 -95.02829206736421,39.6619134718391,0 -95.0560171833566,39.625689733093,0 -95.0536130925577,39.5867761785005,0 -95.10898807297042,39.5606920176429,0 -95.1020369987408,39.5328485478957,0 -95.04759928388671,39.4853288064319,0 -95.04051146086052,39.4629407284024,0 -94.9862042598468,39.4394616215765,0 -94.9584938855715,39.4114472233923,0 -94.9257480001496,39.3812661376612,0 -94.8982816593786,39.3806406678593,0 -94.9113435368246,39.3401217508395,0 -94.9076813995049,39.3230284700345,0 -94.8811077732328,39.2860458708519,0 -94.8334765331867,39.2617660205541,0 -94.8208192842533,39.2110046505539,0 -94.7900492914923,39.1968829757069,0 -94.7305309461746,39.171256416042,0 -94.6755137983894,39.1749223276416,0 -94.6464068497116,39.158427841948,0 -94.6126534522095,39.1516492526966,0 -94.60122430937619,39.1412276647328,0 -94.60813678641638,39.1128009586178,0 -94.6092813424634,39.0446676651878,0 -94.6124696654656,38.8371089096843,0 -94.6131481947747,38.7372224308096,0 -94.6187177065389,38.4714737258641,0 -94.61905349915152,38.3920320272517,0 -94.61733032638759,38.055784837357,0 -94.6167353371693,38.0303877411189,0 -94.6192936785187,37.6798689280977,0 -94.61899604293861,37.650374321953,0 -94.61876444142401,37.360766482215,0 -94.6189775221893,37.3277322857884,0 -94.6206638676799,37.0601475533797,0 -94.6203796376912,36.9970468237132,0 -94.6216844155007,36.7636077108139,0 -94.6210734035526,36.670542870082,0 -94.6172570958511,36.4894141614003,0 -94.08105216030801,36.4910242585195,0 -93.85751984136751,36.4897863700719,0 -93.5964496696149,36.489958821283,0 -93.32834621479771,36.4902614752819,0 -93.2973244136508,36.4906809019551,0 -92.8522757362601,36.4898845275616,0 -92.77763547121239,36.4899835156087,0 -92.52305071341618,36.4909213638459,0 -92.14631944771919,36.4916605516162,0 -92.1276422613294,36.4914354514783,0 -91.68856055219172,36.4910185604512,0 -91.4529890137038,36.4904380208107,0 -91.4117966736446,36.4911017707335,0 -91.13395636436511,36.4880156921504,0 -90.8044338516289,36.4892654684767,0 -90.5817321666723,36.4910222747631,0 -90.22447328203479,36.4928111285523,0 -90.15025942109908,36.4918729268599,0 -90.13737277191632,36.4574765175037,0 -90.1173219969686,36.4539556960145,0 -90.1239291860565,36.4226261953142,0 -90.1169251070973,36.4049759827803,0 -90.08027223924928,36.397449931407,0 -90.05215696164839,36.3826150505682,0 -90.05029531239092,36.3626684522717,0 -90.06772899503081,36.3253957469489,0 -90.04984511692381,36.3005360471466,0 -90.0661877402538,36.2723382893607,0 -90.1100122336982,36.2580597893355,0 -90.13131377418432,36.2121355814949,0 -90.16140488324341,36.1970066414864,0 -90.219321206522,36.1726309521804,0 -90.2323220265841,36.1612137930848,0 -90.2349388507527,36.1371551620637,0 -90.26380164514022,36.1188298079555,0 -90.284851770393,36.115972708427,0 -90.31533967165498,36.0917234028765,0 -90.3790621785177,35.9896564265848,0 -90.2835541915351,35.9912280026278,0 -89.9632916378976,35.9969088479974,0 -89.7218363447502,35.9999509241088,0 -89.68892242543529,36.0258673598517,0 -89.6782489583147,36.0830408331631,0 -89.66746841817241,36.0993864640091,0 -89.5895015750109,36.1298614413181,0 -89.58953219289479,36.1520892518256,0 -89.6186393373327,36.1838116382208,0 -89.67686882352049,36.2209354567989,0 -89.695737012858,36.2408629894403,0 -89.6946231434343,36.252203841158,0 -89.6706661075896,36.2549618456545,0 -89.61815895506329,36.2409661142144,0 -89.5417253888929,36.2573462150993,0 -89.53545385006311,36.2646054281745,0 -89.5423129180961,36.2809319420685,0 -89.6068443100135,36.3081032648945,0 -89.6228741596169,36.3348474435652,0 -89.6057685745547,36.3548169544064,0 -89.54463245289639,36.3457879205654,0 -89.51940896703729,36.3559958746976,0 -89.52008048276861,36.4011227040991,0 -89.54525826945699,36.4410234483941,0 -89.51609800414001,36.4718722794559,0 -89.53327228843381,36.4981701441748,0 -89.56706382630919,36.5187993771114,0 -89.5682312249958,36.5414695145559,0 -89.55621466216709,36.5578036567361,0 -89.5304419073772,36.5646166211264,0 -89.49320183399099,36.5591771346443,0 -89.4817497774818,36.5478363630808,0 -89.47144975338379,36.5256163547986,0 -89.4817572743346,36.5047581085309,0 -89.4758977248385,36.4986089858186,0 -89.4920647554293,36.4655248350446,0 -89.4709078461365,36.4460169670384,0 -89.4485913110412,36.4564423473599,0 -89.41478465486919,36.5026793108435,0 -89.4182103731204,36.5106251110882,0 -89.37395149637661,36.616247637228,0 -89.3636210686995,36.6257612726571,0 -89.3423955613942,36.6289083710958,0 -89.3223449681677,36.6220764759103,0 -89.2834948717057,36.5753095893361,0 -89.2416846800885,36.569328370687,0 -89.2101287779705,36.5819546744135,0 -89.2001876332973,36.6313576237861,0 -89.1771616076676,36.6530627654874,0 -89.1678993468083,36.6716284847978,0 -89.19756338990609,36.7134250574374,0 -89.19636559962321,36.7274780703555,0 -89.1772689322554,36.7609818762401,0 -89.15143504916961,36.7590975830134,0 -89.12554025828931,36.7680887738915,0 -89.1259067613141,36.7924680183802,0 -89.1644441219421,36.804476214643,0 -89.1735313341446,36.8294390146117,0 -89.166565665821,36.8434768543693,0 -89.1296537695887,36.8664945361285,0 -89.1050338653654,36.9539220770253,0 + + + + + + + + Montana + empty + + +states.AREA: + 147244.653 + + +states.STATE_NAME: +Montana + + +states.STATE_FIPS: +30 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +MT + + +states.POP2000: + 902195 + + +states.POP2001: + 908325 + + +states.POP00_SQMI: + 6 + + +states.DEN_0_100: + 100 + + +USStates.ID: + 41 + + +USStates.State_Name: +Montana + + +USStates.Date_Entered: +Nov. 8 1889 + + +USStates.Year_Entered: +1889 + + +USStates.Year_Settled: +1809 + +]]> + #Style_5 + + + -109.652533686894,47.0322664572934,0 + + + + + + -111.475425113078,44.7021622259545,0 -111.44363207933,44.7131796185895,0 -111.395084047622,44.7088695111883,0 -111.384959585063,44.7376939086963,0 -111.372309536392,44.7450870429474,0 -111.349977174405,44.7261775679182,0 -111.31922172667,44.7278640397875,0 -111.315475367488,44.7051930233212,0 -111.295668417103,44.6829380106443,0 -111.270207923466,44.6738019972086,0 -111.270665480153,44.6422120666433,0 -111.223971342305,44.6269081075219,0 -111.219797798385,44.6179816965382,0 -111.234233165171,44.6025621977815,0 -111.219507505818,44.5731699249139,0 -111.178764521847,44.5648509025126,0 -111.170241896337,44.5451861352417,0 -111.134358940584,44.5279024352059,0 -111.128918633835,44.5007569482957,0 -111.094630553034,44.4861244421476,0 -111.051560651262,44.4733232643312,0 -111.051615814026,44.6644904630696,0 -111.053428630452,44.9956954937749,0 -110.429649489646,44.9922851168859,0 -110.392759905743,44.9986252880153,0 -109.99552921526,45.0027929256921,0 -109.799385375449,44.9995227676354,0 -108.625256221974,44.9975931654829,0 -108.259238500746,45.00011515017601,0 -107.894374357914,44.9997736986363,0 -106.259231717931,44.9961625110408,0 -106.021150701601,44.9972137020636,0 -105.08500310735,44.9998170469188,0 -105.041795987521,45.0010758746085,0 -104.059842395291,44.9973362616199,0 -104.043072277779,44.9978055394377,0 -104.043851417835,45.2128754685677,0 -104.049516843796,45.8830527625305,0 -104.048906344358,45.94299366714029,0 -104.04783642886,46.2808814764405,0 -104.046705569922,46.5425395197373,0 -104.047437491435,46.6429474765464,0 -104.045926505168,47.3338320293792,0 -104.047307659333,47.4000172886746,0 -104.048425167939,48.0000812793709,0 -104.052111483045,48.3910193593535,0 -104.052317635595,48.6458247340349,0 -104.062991101535,49.0000267486802,0 -105.063034487672,49.0000213453771,0 -106.125579640332,49.0000211878203,0 -107.188120870533,49.00001713961479,0 -108.250674874311,49.0000096254319,0 -109.500737045105,49.00000500413359,0 -110.750797309743,49.00000540611129,0 -111.282679441747,49.00001160223879,0 -112.188387420264,48.9999919367107,0 -114.063463510159,48.999977505695,0 -114.729325277653,48.9999701785569,0 -116.063531289275,48.99995046269709,0 -116.05669220337,48.4986651887118,0 -116.055497508913,48.2084837718549,0 -116.053492448537,47.9761917715222,0 -116.025316086924,47.9649391580749,0 -115.998932367501,47.92514082913019,0 -115.937842286573,47.86712411466291,0 -115.90392118837,47.841074097063,0 -115.869809516855,47.82745247882439,0 -115.849323962062,47.8051824706779,0 -115.836742105247,47.75628147907741,0 -115.790537518206,47.74483840017609,0 -115.775727256626,47.7097326241589,0 -115.733665317341,47.6955544944202,0 -115.734067407585,47.6398797756934,0 -115.698284137246,47.616080699199,0 -115.69208790895,47.59072095328569,0 -115.742829391272,47.5336915052907,0 -115.701522643005,47.5208936310403,0 -115.692770525831,47.4895405775821,0 -115.64014181996,47.47523519828921,0 -115.643185737842,47.45779380748271,0 -115.656087137581,47.449179888517,0 -115.732481530032,47.4453037682126,0 -115.75010555794,47.4339660678209,0 -115.750326632884,47.4224758337817,0 -115.666477789603,47.3991675172781,0 -115.638782326482,47.3800438733229,0 -115.599535907233,47.3700033411226,0 -115.555520671095,47.3346132613456,0 -115.523064072441,47.2919825693658,0 -115.501930155564,47.2816443931147,0 -115.42664105155,47.2743741901806,0 -115.40820774964,47.2635936928256,0 -115.343661098271,47.25502252875,0 -115.325227834205,47.2451499352386,0 -115.296234653795,47.179550129713,0 -115.193073569516,47.1240264397241,0 -115.172496072325,47.097570775052,0 -115.148683842445,47.09174197245919,0 -115.135507084528,47.0635505060209,0 -115.081336055121,47.0265244081573,0 -115.055638385326,46.97335809520661,0 -115.037334581308,46.9630013040754,0 -115.001574268432,46.9588093410594,0 -114.964730239693,46.9252129542069,0 -114.92412521448,46.9071654671376,0 -114.940566557467,46.8908879547799,0 -114.948408839876,46.85244681299441,0 -114.902324956243,46.7994334872257,0 -114.866603242816,46.7970455479343,0 -114.840791891296,46.7755381340251,0 -114.794030033961,46.7665316733836,0 -114.777832199076,46.7557169515489,0 -114.782919473288,46.7030400738234,0 -114.748105478154,46.695132417127,0 -114.698431226356,46.73376015783131,0 -114.673887229565,46.73472166479179,0 -114.625926712927,46.6871072963735,0 -114.645038012873,46.6709214874172,0 -114.644740120825,46.6608240472296,0 -114.610825986771,46.6290480359896,0 -114.54039089668,46.63789093313041,0 -114.48471804306,46.6235748090716,0 -114.441535907613,46.64571558739091,0 -114.384017731174,46.6615966222723,0 -114.334685197666,46.6542270306183,0 -114.324712393283,46.6228397420843,0 -114.343319528083,46.58788169279891,0 -114.350115003954,46.51738981557321,0 -114.360467827582,46.5061249643996,0 -114.410714938833,46.4873716679663,0 -114.384024894777,46.4281789078305,0 -114.397016905685,46.39954564895069,0 -114.409796078984,46.3929118282104,0 -114.431795791851,46.2847113519319,0 -114.473795189375,46.25296144733741,0 -114.472833625773,46.2437832404928,0 -114.439553093386,46.2202541051873,0 -114.440879403543,46.1689689930953,0 -114.467017880608,46.1552626443821,0 -114.509613705042,46.1574178541686,0 -114.518944233429,46.13606300379761,0 -114.506568594996,46.116142578097,0 -114.477370071638,46.1073573510943,0 -114.456029627256,46.0822298311072,0 -114.465756583121,46.05081557880481,0 -114.494321056653,46.0234105503775,0 -114.474529639485,46.0097653411895,0 -114.484455408522,45.9898066653888,0 -114.412447296507,45.971972990138,0 -114.405290578501,45.9539789286456,0 -114.429460795441,45.9214773546562,0 -114.413530117056,45.9106511998636,0 -114.392838283787,45.870886524333,0 -114.407525017428,45.84645312785811,0 -114.443231585826,45.8526214179583,0 -114.473803267544,45.8394681128492,0 -114.499164076216,45.8426838388298,0 -114.517375770656,45.8100678088233,0 -114.563542382615,45.76239875426181,0 -114.541958001694,45.7459993063995,0 -114.534976768211,45.7229965521011,0 -114.497560885022,45.6944015040476,0 -114.510706655448,45.6740575393162,0 -114.501741735013,45.65239374591759,0 -114.564678473634,45.624271464153,0 -114.540957804767,45.59639733862921,0 -114.56092431692,45.5487399822622,0 -114.527392140633,45.5581929137358,0 -114.49659127146,45.5466496233752,0 -114.462708066367,45.547847634842,0 -114.433555120266,45.5276335826489,0 -114.419051016147,45.4990079989286,0 -114.371457222895,45.485740801367,0 -114.350246661543,45.4633830586196,0 -114.326434503356,45.4574246659907,0 -114.26223890106,45.4858597041806,0 -114.247880062291,45.5029457876717,0 -114.241997909503,45.5352908283129,0 -114.194808749935,45.5279173495385,0 -114.172667788196,45.54392407099141,0 -114.132047849072,45.550382696738,0 -114.118139289111,45.57112721879371,0 -114.082966989764,45.5863787056049,0 -114.05651557884,45.6251440063411,0 -114.018032071357,45.6407731495898,0 -114.010990085379,45.6525110636154,0 -114.019878777802,45.6723780179129,0 -114.009472169193,45.6863322994531,0 -113.971148905291,45.6973761439766,0 -113.964144746081,45.67937838995221,0 -113.926698671543,45.6712113532369,0 -113.923532205814,45.6551247458339,0 -113.902199681462,45.6372529821309,0 -113.903305686338,45.6134911520045,0 -113.852027200864,45.60956236649611,0 -113.822485335827,45.6006361604291,0 -113.803754486689,45.5837295106944,0 -113.833715005823,45.5149081483478,0 -113.780933520736,45.5168654883577,0 -113.772304324589,45.5070541264418,0 -113.769167956071,45.4777077122394,0 -113.785662417081,45.4456336800122,0 -113.775025938091,45.4101724087205,0 -113.741309985249,45.3823864841092,0 -113.739080720354,45.3215307727051,0 -113.68870893801,45.2777882479016,0 -113.690120087671,45.262281529236,0 -113.64559265708,45.2067902002949,0 -113.600928342409,45.1809921888967,0 -113.594099232644,45.149742661863,0 -113.571583860449,45.1345453195545,0 -113.574375982832,45.1177112498262,0 -113.552272678027,45.1075492325193,0 -113.510225662875,45.1078357229334,0 -113.520609069994,45.08206385133451,0 -113.490158803375,45.07121894252819,0 -113.486305515199,45.0583215917022,0 -113.455435394093,45.0433489576732,0 -113.458853128792,45.0274494937816,0 -113.44102942911,44.9981947865069,0 -113.448764850883,44.9495226314899,0 -113.463413760979,44.9407755008957,0 -113.487348245354,44.9395739483575,0 -113.496190944735,44.9306703825127,0 -113.445573357454,44.8512398138089,0 -113.42137886332,44.8336996325871,0 -113.350024223891,44.8075686572204,0 -113.340631071319,44.7790001716196,0 -113.318680101131,44.7802285072048,0 -113.257154262582,44.810486836588,0 -113.24033835154,44.8118408943235,0 -113.138273905949,44.7614392171565,0 -113.127431313459,44.7373793502759,0 -113.101703254015,44.7151730541415,0 -113.098955981719,44.6959159515966,0 -113.073143949778,44.6755255639002,0 -113.054289194175,44.6242889653874,0 -113.083036889648,44.5826813811508,0 -113.039660671342,44.5562941508867,0 -113.037821112649,44.5329591224566,0 -113.007713096479,44.5106119571576,0 -113.020309135991,44.4817760622967,0 -113.006658758598,44.4526157258091,0 -113.012014532,44.4377151798982,0 -112.985249652408,44.4355404997863,0 -112.938281270743,44.407192303823,0 -112.887307562786,44.392852037925,0 -112.870781128928,44.3699785388203,0 -112.844275309657,44.353639685816,0 -112.817396542611,44.3642025255851,0 -112.818709940506,44.3948197608762,0 -112.826691426867,44.4210844413589,0 -112.796227919073,44.4580108762872,0 -112.779863145228,44.473921967913,0 -112.733712266678,44.4843203521209,0 -112.714325884719,44.4969354760903,0 -112.653189032213,44.4808022867295,0 -112.539324359313,44.4774975037791,0 -112.501839547759,44.4629973763857,0 -112.458519702915,44.4688346426366,0 -112.420753287455,44.4492848652432,0 -112.367583641487,44.4492705303202,0 -112.34057705949,44.4971802630882,0 -112.342507416987,44.5251001904491,0 -112.282341327877,44.5417028629559,0 -112.256675563109,44.5599718966745,0 -112.230398525049,44.5594913548598,0 -112.217763617989,44.538495263148,0 -112.19965792462,44.5314495370004,0 -112.124190576071,44.5282529189526,0 -112.099896990645,44.5182317486371,0 -112.059366916596,44.5286115853182,0 -112.027077158683,44.5228438141025,0 -112.023613199364,44.5350432018407,0 -111.977818321591,44.5296761932588,0 -111.940385892152,44.5497266545093,0 -111.872502337514,44.5562658469912,0 -111.80783730012,44.5039818716956,0 -111.792608215621,44.5184627416638,0 -111.766918095449,44.5188253853155,0 -111.716997718561,44.5337606582907,0 -111.684862667357,44.5507519238675,0 -111.605248563607,44.542989843785,0 -111.56723085062,44.5528666934207,0 -111.490240946754,44.5286973145766,0 -111.482573106114,44.536143833035,0 -111.459325300921,44.5379218382476,0 -111.462827429646,44.5499420909707,0 -111.492903869929,44.5511890986189,0 -111.514526468783,44.5931969532598,0 -111.501747128314,44.6159712293443,0 -111.50769070953,44.6376885788042,0 -111.470167827235,44.6407103470055,0 -111.458265515114,44.6525553200246,0 -111.460691885141,44.6700230655225,0 -111.480804007084,44.6914159868954,0 -111.475425113078,44.7021622259545,0 + + + + + + + + Nebraska + empty + + +states.AREA: + 77330.258 + + +states.STATE_NAME: +Nebraska + + +states.STATE_FIPS: +31 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +NE + + +states.POP2000: + 1711263 + + +states.POP2001: + 1722445 + + +states.POP00_SQMI: + 22 + + +states.DEN_0_100: + 98 + + +USStates.ID: + 37 + + +USStates.State_Name: +Nebraska + + +USStates.Date_Entered: +Mar. 1 1867 + + +USStates.Year_Entered: +1867 + + +USStates.Year_Settled: +1823 + +]]> + #Style_5 + + + -99.8078006001403,41.5231582790057,0 + + + + + + -101.407393337781,40.0010037120327,0 -101.32214863482,40.0018210447365,0 -100.754855877507,40.000198282162,0 -100.735049472397,39.9991723116564,0 -100.191111650703,40.0005855247365,0 -100.180910663243,40.0004787238625,0 -99.6278593903364,40.0029878613976,0 -99.1782010360044,39.9995770488454,0 -99.06474699472069,39.9983379848291,0 -98.72063235128408,39.9984613082759,0 -98.5044791617254,39.9971296815045,0 -98.264165776521,39.9984347815801,0 -97.9295887050275,39.9984528583572,0 -97.8165893210891,39.9997291896237,0 -97.36191186281762,39.9973802328794,0 -96.90828756776931,39.996154802955,0 -96.8014203269346,39.9944759681187,0 -96.45403830193989,39.9941727522704,0 -96.2405985632704,39.9945031906408,0 -96.0012537321721,39.995158941643,0 -95.7807002239152,39.9934894834034,0 -95.3297013527267,39.9925950320474,0 -95.30869720973901,39.9994075748966,0 -95.3450672839917,40.0249741114216,0 -95.37124432588999,40.0287511817595,0 -95.39053184305099,40.0437507559076,0 -95.41376387852371,40.0481113899446,0 -95.40378433048491,40.0803791707436,0 -95.3845425063415,40.0953626542358,0 -95.3928129218653,40.1154163675868,0 -95.4224766940803,40.1317436114368,0 -95.46095261349171,40.173995249929,0 -95.46663660597849,40.2132555431774,0 -95.47682209293809,40.2268548930392,0 -95.547136994341,40.2662157738894,0 -95.59553245637079,40.3097767867205,0 -95.64682682752211,40.309109703192,0 -95.6455528317303,40.3223467703869,0 -95.6179334555131,40.3314179459398,0 -95.616201682126,40.3464975474771,0 -95.63418502298551,40.3588001619374,0 -95.63681771614181,40.3963904531026,0 -95.6953617583717,40.4853382791873,0 -95.6849704910359,40.5122051824756,0 -95.658060770915,40.5303325450494,0 -95.6629443739739,40.5587289616856,0 -95.67569378233461,40.5658356928502,0 -95.68741294533601,40.5611703423814,0 -95.692066374489,40.5241298458689,0 -95.7370361745627,40.5323733110738,0 -95.76341234307618,40.5497071705548,0 -95.7674795852398,40.5890479952096,0 -95.7575462791966,40.6209044050126,0 -95.76799926230059,40.6431173260368,0 -95.87661608382331,40.7304362884448,0 -95.85179043528299,40.7926000253044,0 -95.84643563182461,40.8483322047714,0 -95.8343965593688,40.8703008088672,0 -95.8365411444113,40.9011080428442,0 -95.83760323158589,40.9742580400834,0 -95.86089704288879,41.0026505190073,0 -95.8595394801997,41.0350028595074,0 -95.87880474120411,41.0658712509288,0 -95.85827413141659,41.1091870222413,0 -95.8766852492484,41.1642024105376,0 -95.85980096123291,41.1668650456103,0 -95.85919843702339,41.1805368728058,0 -95.9161002851104,41.1940638351955,0 -95.922249965015,41.2078539506329,0 -95.91098130119039,41.225245096276,0 -95.93023057200192,41.3020567682491,0 -95.91120231965681,41.308469075071,0 -95.89759135908018,41.2868630350679,0 -95.88910711764841,41.301389068661,0 -95.9428952016611,41.3400771149559,0 -95.94005632056519,41.3948054356641,0 -95.93506577909901,41.4623813790665,0 -95.9531857305245,41.4723872072953,0 -96.0068973653038,41.4819545344805,0 -96.01345100342439,41.492994088652,0 -95.99668867363272,41.5115177407886,0 -95.99396487163098,41.5281036385833,0 -96.0045927729456,41.536663666234,0 -96.0501720028408,41.5243351452143,0 -96.0858402888059,41.537522447069,0 -96.0919362332193,41.5631451632737,0 -96.08083512543558,41.5760003085601,0 -96.11130763394991,41.5990063360194,0 -96.09930606920538,41.654680377786,0 -96.12026446185681,41.6840948569989,0 -96.1222023396997,41.6949130712865,0 -96.08555733965541,41.7049872846604,0 -96.09977118044269,41.7315636680423,0 -96.09932098309402,41.7529750937888,0 -96.07641711811041,41.7914690785526,0 -96.1356235834612,41.8626208316748,0 -96.15997022208892,41.9041513852191,0 -96.14587078481939,41.9249070891742,0 -96.14732844184438,41.9662545016057,0 -96.1852176902909,41.9806854764309,0 -96.2028425096417,41.9966156076483,0 -96.2360928599206,42.0012580980752,0 -96.2387254806183,42.0284381681892,0 -96.2654831160455,42.0488969554024,0 -96.2851229976765,42.123452670924,0 -96.35216576154041,42.168185405895,0 -96.3635118431292,42.2140424887771,0 -96.33770844290801,42.2295223162304,0 -96.33265786107282,42.260307132502,0 -96.34288156417431,42.2820816955037,0 -96.3687003210519,42.2980237265253,0 -96.3897808818021,42.3287896719748,0 -96.42417517629991,42.3492788847348,0 -96.41176144867778,42.3809179971184,0 -96.41762830756179,42.4147774592562,0 -96.39789028299531,42.441793101272,0 -96.39607423274411,42.4674012772387,0 -96.4393947509647,42.4892408377156,0 -96.49470151052741,42.4884592175071,0 -96.54721557271041,42.5204993234568,0 -96.58475304897098,42.5182872197448,0 -96.60546730406971,42.5072362916062,0 -96.6292944799537,42.5226936780003,0 -96.6366723762755,42.5507317592446,0 -96.714059707901,42.6123020324651,0 -96.7152728921436,42.6219074766425,0 -96.694596777315,42.641163786393,0 -96.69906022203101,42.6577158497403,0 -96.72265874758661,42.6685919557678,0 -96.79934397881981,42.6700191686323,0 -96.8104375000235,42.6813412142201,0 -96.81014011449622,42.704084462612,0 -96.9082338249473,42.7316989698022,0 -96.97077348180611,42.7211474962424,0 -96.9778689966012,42.727308194642,0 -96.97000293469461,42.752065431992,0 -96.97959336609789,42.7583137573091,0 -97.0151396700717,42.7595420464778,0 -97.13046924564861,42.7739233575094,0 -97.1614227617155,42.7986194059191,0 -97.21183172641902,42.81257352787,0 -97.2244435756681,42.8412025319938,0 -97.24318956492361,42.851826425825,0 -97.2714575353654,42.8500146366722,0 -97.31141433937481,42.8617716796293,0 -97.38930603349222,42.8674331659047,0 -97.45726378408931,42.8504431026505,0 -97.4831590291241,42.8571570898554,0 -97.5061318942665,42.8601364739438,0 -97.5706541404348,42.8479907365578,0 -97.63497050078551,42.8612849600302,0 -97.68575200130461,42.8368370186066,0 -97.72524981688051,42.8580083761152,0 -97.77218644667239,42.8461639819758,0 -97.79702832835281,42.8495971363047,0 -97.8186429929595,42.8665874779999,0 -97.88865941868959,42.8558072875283,0 -97.8899410388902,42.8312716359345,0 -97.9294772231674,42.7923243687957,0 -97.96355840050168,42.7736899920002,0 -97.9951447789843,42.766812278154,0 -98.03314038302951,42.7691923357945,0 -98.12181986030079,42.8083601338589,0 -98.12311692331768,42.8202235933653,0 -98.14486904619621,42.8357947189847,0 -98.16782662350252,42.839571032558,0 -98.31033957471961,42.881794760613,0 -98.39120469509791,42.9201358627386,0 -98.45744405402161,42.9371607787996,0 -98.49765138471959,42.9917787984063,0 -99.2539717111969,42.9923894733936,0 -99.5327903284941,42.9923349632849,0 -100.198142131775,42.9910950186342,0 -101.231737199277,42.986842959129,0 -102.086700926634,42.9898870255377,0 -102.788384569614,42.9953035756879,0 -103.005875236663,42.9993539301105,0 -103.501463853421,42.9986188303099,0 -104.056198856311,43.0030623563908,0 -104.056219380476,42.6146696865973,0 -104.053513414154,41.9998153422964,0 -104.053615199998,41.698218257724,0 -104.055500519791,41.5642223678205,0 -104.054012364451,41.3880858190034,0 -104.05170553525,41.00321132686,0 -103.572316302435,40.9996484311393,0 -103.382956653967,41.0003163565243,0 -102.652271070342,40.9981241668543,0 -102.621257047371,41.00021481921,0 -102.047739314394,40.9980708667063,0 -102.046992332576,40.7431303349332,0 -102.046031374616,40.6973192828138,0 -102.047620488242,40.4310777832961,0 -102.047544994516,40.3426445008284,0 -102.051535596434,39.9989182728278,0 -101.407393337781,40.0010037120327,0 + + + + + + + + Nevada + empty + + +states.AREA: + 110669.975 + + +states.STATE_NAME: +Nevada + + +states.STATE_FIPS: +32 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +NV + + +states.POP2000: + 1998257 + + +states.POP2001: + 2112980 + + +states.POP00_SQMI: + 18 + + +states.DEN_0_100: + 98 + + +USStates.ID: + 36 + + +USStates.State_Name: +Nevada + + +USStates.Date_Entered: +Oct. 31 1864 + + +USStates.Year_Entered: +1864 + + +USStates.Year_Settled: +1849 + +]]> + #Style_5 + + + -116.650735151808,39.3520158009473,0 + + + + + + -119.152450421001,38.4118009590513,0 -118.417419755966,37.886676748621,0 -117.838686423167,37.4572982397149,0 -117.160423771838,36.9595941441766,0 -115.885769343921,36.0012259572722,0 -115.626197382816,35.7956983148418,0 -114.621068606189,34.9989144286133,0 -114.633779872695,35.0418633504303,0 -114.595631971944,35.0760579746697,0 -114.6359090842,35.1186557767895,0 -114.626440825485,35.1339067529871,0 -114.582616239058,35.1325604694084,0 -114.572255261053,35.1400677445931,0 -114.561039964055,35.1743461616312,0 -114.559583045727,35.2201828714608,0 -114.587889840369,35.30476812919,0 -114.589584275424,35.3583787306827,0 -114.645396168451,35.4507608261464,0 -114.672215155693,35.5157541647721,0 -114.649792053474,35.5466373866596,0 -114.653134321223,35.5848331056106,0 -114.6398667219,35.6113485698329,0 -114.654065925137,35.6465840800051,0 -114.668486064922,35.6563989882403,0 -114.665091345861,35.6930994107106,0 -114.688820027649,35.7325957399896,0 -114.682739704595,35.7647034175617,0 -114.689867343369,35.8474424944765,0 -114.662462095522,35.870959907009,0 -114.661600122152,35.8804735854241,0 -114.699275906446,35.9116119537411,0 -114.736212493583,35.9876483502758,0 -114.717673567756,36.0367580437019,0 -114.728966012834,36.0587530361082,0 -114.728150311069,36.0859627711603,0 -114.712761724737,36.1051810523675,0 -114.621610747198,36.1419666834504,0 -114.598935242024,36.1383354528833,0 -114.530573568745,36.1550902046726,0 -114.466613475422,36.1247112590538,0 -114.443945697733,36.1210532841896,0 -114.380803116644,36.1509912717764,0 -114.344233941709,36.1374802520567,0 -114.316095374696,36.1114380366653,0 -114.303857056018,36.0871084040611,0 -114.307587598189,36.0622330993642,0 -114.233472615347,36.0183310595898,0 -114.206768869568,36.0172554164833,0 -114.12902308363,36.041730493896,0 -114.107775185788,36.1210907070504,0 -114.045105557286,36.1939778840226,0 -114.037392074194,36.2160228969701,0 -114.043716435713,36.8418489458646,0 -114.043939384154,36.9965379371421,0 -114.047260595159,37.5984784866001,0 -114.047272999176,38.1376524399918,0 -114.045090206154,38.5710950539538,0 -114.044267501155,38.678995881588,0 -114.040105338584,39.5386849268843,0 -114.039844684228,39.9087788600022,0 -114.038108189376,40.1110466529553,0 -114.038151248682,40.9976868405942,0 -114.039072662345,41.9953908974688,0 -114.269471632825,41.9959242345073,0 -115.024862911148,41.9965064559528,0 -115.947544658193,41.9945994628996,0 -116.992313337997,41.9947945094663,0 -117.018864363596,41.9947941808341,0 -118.185316829038,41.9966370981387,0 -119.3109421304,41.989135387281,0 -119.351692186077,41.9888529749781,0 -119.993459369715,41.9892049531992,0 -119.996324660047,41.1775662656441,0 -119.996165311172,39.7206108077274,0 -119.996011479298,39.443500976451,0 -119.995304181493,39.3115454332125,0 -119.995527335641,39.1587132866354,0 -119.994541258334,39.1061318056706,0 -119.995150114198,39.063491359469,0 -119.995254694357,38.9941061536376,0 -119.8893416394,38.9222515603984,0 -119.575687062955,38.7029101298903,0 -119.318825070203,38.5271086243913,0 -119.152450421001,38.4118009590513,0 + + + + + + + + New Hampshire + empty + + +states.AREA: + 9259.527 + + +states.STATE_NAME: +New Hampshire + + +states.STATE_FIPS: +33 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +NH + + +states.POP2000: + 1235786 + + +states.POP2001: + 1258315 + + +states.POP00_SQMI: + 133 + + +states.DEN_0_100: + 88 + + +USStates.ID: + 9 + + +USStates.State_Name: +New Hampshire + + +USStates.Date_Entered: +June 21 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1623 + +]]> + #Style_5 + + + -71.577769589032,43.6851910338169,0 + + + + + + -72.2799169173511,42.720467037784,0 -71.9302165845551,42.7072094199587,0 -71.90094191420261,42.7053786149513,0 -71.287194447592,42.6986034465098,0 -71.2524115796458,42.7260689220942,0 -71.24047922287529,42.7435552404171,0 -71.1863474665185,42.7387606265609,0 -71.18106084331041,42.807317168902,0 -71.12060440995749,42.8182808692669,0 -71.065564728038,42.8043197291356,0 -71.02542615731881,42.8511713651458,0 -70.9213361332524,42.885149233192,0 -70.8981116667382,42.8868774762984,0 -70.84973977624399,42.8634293009967,0 -70.8138807202681,42.8670649720671,0 -70.73413885860251,43.0587629299348,0 -70.8104276107829,43.0897406234761,0 -70.8864941746843,43.0588832353252,0 -70.9054160761297,43.0840213409417,0 -70.8746309579401,43.1015270060657,0 -70.88474831938861,43.1277066080614,0 -70.8186681583247,43.1218710916248,0 -70.8305481365302,43.1591741298583,0 -70.8132073721395,43.235222695474,0 -70.90108590067651,43.281020042684,0 -70.9058011398795,43.3020692769929,0 -70.9696996092209,43.3663799823752,0 -70.97909946378989,43.3961839179203,0 -70.9614829099438,43.4381263706902,0 -70.97079121747591,43.4702114970827,0 -70.9592784003468,43.5163880057296,0 -70.9642682587516,43.5319898518146,0 -70.9496195233573,43.5489536133091,0 -70.9565244088141,43.5641434705,0 -70.973874166771,43.5718298935058,0 -70.9844425613652,43.7911635520181,0 -71.008596512061,44.2821463668217,0 -71.0287261250693,44.6685380945196,0 -71.0875092473499,45.3014692052699,0 -71.15308937571361,45.2379692350016,0 -71.29723573798741,45.29349393594989,0 -71.38637797418291,45.2349303642414,0 -71.4465600756494,45.2360819406036,0 -71.4025225843513,45.202803185745,0 -71.43040988152841,45.1169922971266,0 -71.50299876376251,45.05989045439361,0 -71.50537230062881,45.01335171632249,0 -71.54092709673419,44.976563206227,0 -71.5169776077169,44.9436961331563,0 -71.50636496059011,44.8996711859758,0 -71.575100912366,44.816019797627,0 -71.58350120905909,44.7791969958657,0 -71.6311328527305,44.7417107606939,0 -71.6076787297884,44.6778622938609,0 -71.588749347522,44.6505994869908,0 -71.5680271516494,44.6374468081647,0 -71.5541026351831,44.5965889130359,0 -71.5367908177937,44.5789312630586,0 -71.59228841131031,44.5512031068487,0 -71.59144138862121,44.5388744007981,0 -71.5752435447921,44.525805689154,0 -71.58661898076009,44.4945375694188,0 -71.6142227691162,44.474507042735,0 -71.6365547217831,44.4767309013867,0 -71.64770916138809,44.4691741459763,0 -71.6563990024127,44.4401373612429,0 -71.67688436321281,44.4213427403398,0 -71.7665702593918,44.3982488046656,0 -71.7977291908463,44.384172813001,0 -71.8211973083551,44.3503600453545,0 -71.83481598035139,44.3441994129001,0 -71.928361752714,44.3361121851128,0 -71.93890565797921,44.3257860034123,0 -71.99443351087029,44.3275482023457,0 -72.03549537537759,44.2994343131496,0 -72.0595660047421,44.2614940911529,0 -72.0443903804218,44.2343798441303,0 -72.05928224606249,44.1821766291115,0 -72.0447245537617,44.1564355666157,0 -72.0349198523751,44.1207459288224,0 -72.0495148341974,44.1004520944909,0 -72.0324473746587,44.0960996192238,0 -72.0347283650036,44.0833740182688,0 -72.07691904412221,44.0320405986226,0 -72.0852043813774,44.008923986175,0 -72.109908766997,43.9892291134731,0 -72.1128078470404,43.9765149671875,0 -72.0917117306645,43.9579911279463,0 -72.1132040793555,43.9391659598857,0 -72.1216496397887,43.9092173247049,0 -72.1700895247441,43.8789176964689,0 -72.1848363730122,43.8016904606597,0 -72.2060918209679,43.7646350589211,0 -72.21912292133609,43.750692528435,0 -72.2600555952028,43.7353001230663,0 -72.3040399378543,43.6985301192071,0 -72.33308519415699,43.5973647921877,0 -72.3734983899537,43.5723746289271,0 -72.39499776821209,43.5175538931662,0 -72.3825156946813,43.4846296935804,0 -72.3962478080997,43.4101565518931,0 -72.4121395531363,43.3771255999362,0 -72.39762805437751,43.3510068532964,0 -72.4102315830492,43.3234041461301,0 -72.4024188454007,43.3073827061473,0 -72.4355986440693,43.2322535514022,0 -72.45239855285131,43.1560221784817,0 -72.43760490206709,43.1162700005073,0 -72.44346425788849,43.0790393128299,0 -72.4617520870041,43.0465044640798,0 -72.4571590376321,42.9996036974292,0 -72.47334119749689,42.9761435837691,0 -72.5042636319545,42.9655846501003,0 -72.5202170578448,42.9516725271887,0 -72.5248100213574,42.9126141761107,0 -72.5534284639708,42.8606431711067,0 -72.538916970841,42.8077338159119,0 -72.5130680088012,42.7892594013534,0 -72.50726952905301,42.7687326904009,0 -72.4793225257782,42.7615879021402,0 -72.4621713056893,42.7468405310802,0 -72.4557700038868,42.7258525290855,0 -72.2799169173511,42.720467037784,0 + + + + + + + + New Jersey + empty + + +states.AREA: + 7507.502 + + +states.STATE_NAME: +New Jersey + + +states.STATE_FIPS: +34 + + +states.SUB_REGION: +Mid Atl + + +states.STATE_ABBR: +NJ + + +states.POP2000: + 8414350 + + +states.POP2001: + 8504437 + + +states.POP00_SQMI: + 1121 + + +states.DEN_0_100: + 0 + + +USStates.ID: + 3 + + +USStates.State_Name: +New Jersey + + +USStates.Date_Entered: +Dec. 18 1787 + + +USStates.Year_Entered: +1787 + + +USStates.Year_Settled: +1660 + +]]> + #Style_5 + + + -74.6766277762304,40.1983130309155,0 + + + + + + -75.4892806606894,39.7148582186458,0 -75.5702341870436,39.6177349634268,0 -75.516688883565,39.5665684164947,0 -75.55276304016741,39.4905143065581,0 -75.4156722746602,39.3749718418896,0 -75.11995811220299,39.1846917807584,0 -75.0144070769606,39.1983638371173,0 -74.91665434173351,39.1706385416843,0 -74.8902020440427,39.1138602238713,0 -74.9681254179213,38.9717387716416,0 -74.87630095715041,38.956682397615,0 -74.8792536134529,38.9898436138584,0 -74.80229182967069,39.026373568453,0 -74.62458701838401,39.2508285381619,0 -74.6225269989005,39.281632454135,0 -74.6582341619692,39.2872514059591,0 -74.44750084319659,39.3810753138002,0 -74.4604179591324,39.4267565970433,0 -74.40111961067601,39.5026276432354,0 -74.4123886264147,39.5426212120384,0 -74.3288507438233,39.5236277328274,0 -74.3233420491384,39.572086212049,0 -74.2376755899413,39.6240467628644,0 -74.1714269184866,39.7182746749744,0 -74.1592285187117,39.8786054163902,0 -74.0773330835351,40.042272933577,0 -74.122180536689,40.0515614321764,0 -74.04979004684979,40.0568562355852,0 -74.0342945636626,40.091367053998,0 -74.0837730430801,40.088181749894,0 -74.0914259126674,40.1160856009488,0 -74.0392310981979,40.1018419664211,0 -73.97844056947299,40.3236160007761,0 -74.1218854792839,40.4514585866034,0 -74.2245034553239,40.4435848021689,0 -74.26891543553739,40.4637486117681,0 -74.2789103473592,40.5143036462751,0 -74.20825296046981,40.5911877065288,0 -74.1468580427043,40.6754795974611,0 -74.1155310062388,40.7056266447954,0 -74.1290580537768,40.6470721875068,0 -74.0061834375163,40.7040019887126,0 -74.00625978512571,40.7377308394608,0 -73.9770610560785,40.7974870925618,0 -73.92239451154271,40.8860400786778,0 -73.9089662304774,40.9273144200758,0 -73.8961483545214,40.9608717551544,0 -73.8966975351822,40.9985298010922,0 -74.21303867812691,41.1236116400331,0 -74.24235951786601,41.1376265983194,0 -74.37198081595101,41.1958499552554,0 -74.700062439729,41.3505731173044,0 -74.7916634911863,41.3119646486324,0 -74.7941432935133,41.2952145361236,0 -74.8251959144138,41.2827060427999,0 -74.8664114931874,41.2268173199683,0 -74.8628866488672,41.2067713675358,0 -74.91476830628049,41.1411056945383,0 -74.9499944822667,41.1118548355739,0 -74.9845949956578,41.0993808071368,0 -74.98888296567171,41.0817609886453,0 -74.9662915599138,41.0826765927628,0 -75.00115157189779,41.0624855771134,0 -75.03525634669791,41.0282029114312,0 -75.0699790173252,41.0107160473555,0 -75.1166191635571,41.0002479024639,0 -75.1393018121957,40.9775274861343,0 -75.1355249350063,40.9629365183948,0 -75.0797362757265,40.9033486382513,0 -75.0736857645488,40.884626384264,0 -75.0564884580085,40.8720458535526,0 -75.0546190233306,40.8556733594649,0 -75.0995419880564,40.8392851002474,0 -75.0892112792862,40.8213906687984,0 -75.1005408698709,40.7916591517333,0 -75.13031892785111,40.7727077092163,0 -75.1703132780782,40.7748092438347,0 -75.1936441590094,40.7480035802995,0 -75.18775390484051,40.7238570177578,0 -75.20535502856001,40.6860615374668,0 -75.1840607041906,40.6697922959704,0 -75.2089177365681,40.6507380422203,0 -75.1979386117749,40.6342055156311,0 -75.20038753873099,40.6147432578734,0 -75.1935130035322,40.5837685125831,0 -75.19757183103521,40.570684304811,0 -75.1822820039866,40.5567991566105,0 -75.1245260580076,40.5647988294484,0 -75.0797859423332,40.5453559585684,0 -75.0636796381505,40.5210034591816,0 -75.07011862395299,40.4562539259114,0 -75.0574533454579,40.4201714565405,0 -75.02126612533969,40.4013236035019,0 -75.00047552385639,40.4086211095812,0 -74.97284102604201,40.4044479567097,0 -74.95018846398411,40.3454738484253,0 -74.93250296210471,40.3337744130392,0 -74.9211500156386,40.3140337315445,0 -74.88065957300969,40.2995916131031,0 -74.8427630831946,40.2484527598366,0 -74.7388247265733,40.1777256441007,0 -74.72548046618491,40.1493066691812,0 -74.74629414856111,40.1243586916003,0 -74.82902245973639,40.1161609854809,0 -74.8719241363401,40.0780565429363,0 -74.9562015034126,40.0580144791932,0 -74.9834853663626,40.0340738445933,0 -75.0456754051916,40.0076347106729,0 -75.068045752986,39.9853915213067,0 -75.0845869855288,39.9757328153928,0 -75.1109630715591,39.9766903310886,0 -75.1398645870707,39.9559194804779,0 -75.1471586589936,39.9347404217525,0 -75.13580547674989,39.896887437334,0 -75.14290121504629,39.8816020366923,0 -75.18560547799029,39.8774058180612,0 -75.24699556467731,39.8504053640948,0 -75.2537404363575,39.8455377977782,0 -75.3459322944925,39.8485165819253,0 -75.42046794786501,39.7989830990632,0 -75.4117545704202,39.7897707547806,0 -75.4276473042606,39.7782429030536,0 -75.46039411885541,39.7633620274566,0 -75.47476845721459,39.7418320932776,0 -75.4759742683691,39.7200843842213,0 -75.4892806606894,39.7148582186458,0 + + + + + + + + New Mexico + empty + + +states.AREA: + 121757.343 + + +states.STATE_NAME: +New Mexico + + +states.STATE_FIPS: +35 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +NM + + +states.POP2000: + 1819046 + + +states.POP2001: + 1839139 + + +states.POP00_SQMI: + 15 + + +states.DEN_0_100: + 99 + + +USStates.ID: + 47 + + +USStates.State_Name: +New Mexico + + +USStates.Date_Entered: +Jan. 6 1912 + + +USStates.Year_Entered: +1912 + + +USStates.Year_Settled: +1610 + +]]> + #Style_5 + + + -106.102403151381,34.4234110071301,0 + + + + + + -109.049495308693,32.4420444958635,0 -109.045615049533,31.3434530504803,0 -108.210647795015,31.3438536159949,0 -108.203254915468,31.7869032382901,0 -107.283567177026,31.7850830856735,0 -106.539514775671,31.7863052774039,0 -106.614986549809,31.8178343839605,0 -106.61612370633,31.8447405331725,0 -106.64407909206,31.8952054369513,0 -106.633748923526,31.9141010099202,0 -106.632605287073,31.97221998842531,0 -106.650061890884,31.9803297275266,0 -106.623625658904,32.0010887853062,0 -106.378387283311,32.0007470652221,0 -106.00324037618,32.0016580242852,0 -104.922304814538,32.004382108736,0 -104.85106805229,32.0032650272727,0 -104.019296949948,32.0074034895819,0 -103.981377077849,32.0060152222294,0 -103.729444279739,32.0062289025373,0 -103.332549418381,32.0042814747499,0 -103.058413767661,32.0020227787787,0 -103.055640531826,32.0851168230641,0 -103.060018185604,32.5155455179839,0 -103.049330863501,32.9536389141087,0 -103.043100992793,33.3778314740626,0 -103.038736452727,33.5658431867775,0 -103.033258497866,33.8261815911813,0 -103.029645833697,34.3078204763021,0 -103.022657024631,34.7453327558501,0 -103.025251273923,34.9647798759331,0 -103.026151164684,35.1772655150643,0 -103.02229404801,35.6236480179456,0 -103.022612263713,35.742327299615,0 -103.024047954518,36.0560618512093,0 -103.027286789536,36.4915918464103,0 -102.997400999016,36.4923701848871,0 -102.997709442614,36.9985238353847,0 -103.07786588474,36.9997601837273,0 -103.993635035945,36.9944690622369,0 -105.146172547082,36.9932073726899,0 -105.213091465415,36.992604521715,0 -105.713459997846,36.9945603614965,0 -105.992000086492,36.992289650437,0 -106.472176939021,36.9915042439681,0 -106.86124887722,36.9895015941857,0 -106.89037023567,36.9990837907051,0 -107.410820543541,36.9975257849804,0 -107.472460293817,36.9987767566937,0 -108.372472924296,36.999471575633,0 -109.048480115363,36.9966409005893,0 -109.047846506598,35.9966639816639,0 -109.046640810431,34.9546462439613,0 -109.048652751175,34.5917805775226,0 -109.050349253456,33.7833019238717,0 -109.050525833602,33.205164822801,0 -109.051346155985,32.7795505537932,0 -109.049495308693,32.4420444958635,0 + + + + + + + + New York + empty + + +states.AREA: + 48561.751 + + +states.STATE_NAME: +New York + + +states.STATE_FIPS: +36 + + +states.SUB_REGION: +Mid Atl + + +states.STATE_ABBR: +NY + + +states.POP2000: + 18976457 + + +states.POP2001: + 19123358 + + +states.POP00_SQMI: + 391 + + +states.DEN_0_100: + 65 + + +USStates.ID: + 11 + + +USStates.State_Name: +New York + + +USStates.Date_Entered: +July 26 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1614 + +]]> + #Style_5 + + + -75.51225742270179,42.9466608265549,0 + + + + + + + -79.7632349654056,42.2673270883975,0 -79.76165964707261,42.0031057341519,0 -79.6123674903386,42.0005849142235,0 -79.0594888967335,42.0011576593905,0 -78.9185382675857,41.999846787447,0 -78.3050882311977,41.999420608423,0 -78.2042620524614,41.9982004349665,0 -77.745007937534,41.9973331826449,0 -77.6128475772834,41.9988295851283,0 -76.96857370314299,42.0029809748211,0 -76.92839533835389,42.0025345979743,0 -76.5639147893755,42.0030114109064,0 -76.1450203202792,42.0006545080767,0 -76.1048345309617,41.9994987458506,0 -75.47973225649039,41.9963677005791,0 -75.38281319593381,41.9983566083877,0 -75.3456570669365,41.9928449489974,0 -75.3240658004094,41.9612749921534,0 -75.2836900262962,41.9476038545852,0 -75.25451546272871,41.8688733616359,0 -75.1712837916533,41.8678398536526,0 -75.148280568261,41.8557893317759,0 -75.1247508265953,41.8491823474776,0 -75.11777744299,41.8369868194197,0 -75.07984301881911,41.8141483463494,0 -75.09682675506321,41.7972073179534,0 -75.0971549734922,41.7790417898653,0 -75.0613185051632,41.7702603750835,0 -75.0569699647963,41.7267080970937,0 -75.065400870215,41.7148368016377,0 -75.0513249551697,41.6373147729593,0 -75.0724517137798,41.6130800694112,0 -75.0698653499134,41.6044779552895,0 -75.0250873678455,41.565800906359,0 -75.0148868316079,41.5395558959306,0 -74.9717879994631,41.4836026231296,0 -74.9325644004893,41.484350685956,0 -74.8985597400598,41.4618942446762,0 -74.8952792585073,41.4446711797979,0 -74.8640666499364,41.4471548184687,0 -74.792799015071,41.4299171588691,0 -74.7548266211957,41.4301464096857,0 -74.7400406430903,41.4220594630718,0 -74.7404375695009,41.4016358612695,0 -74.7052732398395,41.3750593363948,0 -74.700062439729,41.3505731173044,0 -74.37198081595101,41.1958499552554,0 -74.24235951786601,41.1376265983194,0 -74.21303867812691,41.1236116400331,0 -73.8966975351822,40.9985298010922,0 -73.8961483545214,40.9608717551544,0 -73.9089662304774,40.9273144200758,0 -73.92239451154271,40.8860400786778,0 -73.9770610560785,40.7974870925618,0 -74.00625978512571,40.7377308394608,0 -74.0061834375163,40.7040019887126,0 -73.91986182481109,40.802804804545,0 -73.7963459186446,40.8323341007837,0 -73.7800412528382,40.8866887918692,0 -73.65315146089949,40.9983924455247,0 -73.65372377552561,41.0126172825253,0 -73.72523765669671,41.1003542249946,0 -73.47812075689539,41.2107548889389,0 -73.5502596731917,41.2936207043954,0 -73.5442932536742,41.3652984767995,0 -73.5303920707175,41.5227455563004,0 -73.51714741333279,41.6656861632365,0 -73.4842302844536,42.0474280500728,0 -73.49884000273219,42.0774606830635,0 -73.35082423703111,42.5047557597646,0 -73.2580598287651,42.7460586400616,0 -73.26927531690011,42.747481432998,0 -73.2961697572315,42.8035493647588,0 -73.27958319993191,42.83710332748,0 -73.27600528901171,42.9402941192889,0 -73.2500714436229,43.310853990742,0 -73.2383913589494,43.5128328494142,0 -73.25998379380719,43.5593823395157,0 -73.2914024969013,43.5750335705375,0 -73.28173626823219,43.5931872495766,0 -73.2941043006647,43.6196528756937,0 -73.303534516911,43.62471481285,0 -73.36368556156729,43.6149988679744,0 -73.3881142192301,43.5691436583008,0 -73.4183198417113,43.582479385998,0 -73.4229598542953,43.6321147289764,0 -73.3709893845574,43.7142811167277,0 -73.3566696765928,43.756558340599,0 -73.35899716813,43.7784275686932,0 -73.3847399017654,43.804507971731,0 -73.3751207851314,43.8859769501205,0 -73.4053345287369,43.9148075869022,0 -73.4174061301202,43.9881969457528,0 -73.4082513023357,44.0182219013784,0 -73.43600071127899,44.0456791904389,0 -73.4352152780239,44.0638978024282,0 -73.408756830709,44.1066103535606,0 -73.40786483046161,44.1362270392695,0 -73.38206233640641,44.1721076120788,0 -73.37733262552911,44.2012475171296,0 -73.3053256664729,44.2601422576285,0 -73.32978809302909,44.3673904680866,0 -73.2999951630005,44.4055331645407,0 -73.2933197444993,44.4328535783624,0 -73.3344524939975,44.544328246301,0 -73.34781198402661,44.5539715457199,0 -73.3712960298213,44.5791669569442,0 -73.3818251037206,44.619807725515,0 -73.3701366913554,44.6343490646182,0 -73.3730971364166,44.6612763562517,0 -73.3581509561494,44.680368564481,0 -73.373158575022,44.724236436747,0 -73.3267863194035,44.799293570954,0 -73.36905412807261,44.8191179021751,0 -73.3823067594393,44.8479336187606,0 -73.3364146788922,44.9326039308497,0 -73.3507583871195,44.9819729513451,0 -73.3447234868807,45.0061387945904,0 -74.0215389337819,44.9908473700023,0 -74.7361076285261,44.9929162059365,0 -74.96846961727719,44.9486251336596,0 -75.328862374301,44.8106292000334,0 -75.75865750281371,44.5175335377769,0 -75.8480298249662,44.3902626942885,0 -76.3628809771691,44.098354795451,0 -76.2968829355811,44.0420171276421,0 -76.2015425385076,44.065598108465,0 -76.13452232320979,44.0132289276425,0 -76.12906593405761,43.9322080498527,0 -76.1937184572916,43.9124903482975,0 -76.23999177645069,43.8351272651759,0 -76.2056663591305,43.682700033073,0 -76.1845704121246,43.6331973667822,0 -76.2227647111352,43.5541537826913,0 -76.45465571373001,43.5007209976012,0 -76.6196279680242,43.4141527458186,0 -76.7184716226022,43.3234424252336,0 -76.7368294931217,43.3427331717123,0 -76.9145275090108,43.27859600965,0 -77.37731588740429,43.2757129012853,0 -77.57571151646241,43.2415476718162,0 -77.7450074302451,43.3351700802958,0 -77.9920093179894,43.3655716261253,0 -78.464653717302,43.3719935588723,0 -79.06223899261261,43.2682161630262,0 -79.0393253199349,43.1447391584938,0 -79.0611147555518,43.0906050224616,0 -78.9255963639699,43.0666266953168,0 -78.8827932399727,43.0223576321954,0 -78.93655137597069,42.974231439434,0 -78.8591998233946,42.792745144536,0 -79.04375196053699,42.6992467780984,0 -79.1422333021515,42.5746167483925,0 -79.3548838534991,42.4934618207762,0 -79.44402037006211,42.4193614595174,0 -79.7632349654056,42.2673270883975,0 + + + + + + + + + -73.7522089773056,40.5945872168727,0 -73.4225260722185,40.6613251474997,0 -72.5211641762305,40.8150415787904,0 -71.9187022869602,41.0305740631358,0 -71.869986721423,41.0745076818864,0 -71.92370021338689,41.084871803273,0 -72.07701114487909,41.0005742896832,0 -72.20335052497531,41.0353739275596,0 -72.29308242777471,41.0240174407749,0 -72.4761091088628,40.9201483179884,0 -72.60481541607391,40.9053005940406,0 -72.5509712260717,40.9661799196018,0 -72.4163456562061,41.0260401128234,0 -72.3542793156581,41.1102027831546,0 -72.2811492371991,41.1425353132104,0 -72.3170314447005,41.1493333683696,0 -72.6315724125195,40.9812851867213,0 -73.02126964947119,40.9684330814817,0 -73.1409796858424,40.9513960080037,0 -73.2145230963623,40.9010417299256,0 -73.4306478224206,40.9225566298747,0 -73.4780896515487,40.879744720266,0 -73.5982719298698,40.9031443913556,0 -73.7494771719183,40.8449987554869,0 -73.7539177904555,40.7888512181378,0 -73.89901774530181,40.7971172294422,0 -73.95560677739191,40.7393826803867,0 -74.0277216950731,40.6393365084359,0 -74.00403933590199,40.5812590385622,0 -73.87981412654141,40.5902691191329,0 -73.91573433661991,40.63113138266,0 -73.8460607625491,40.6526001201263,0 -73.7649351380376,40.6369334656098,0 -73.7613950097786,40.6182379482267,0 -73.9275906880242,40.5576503077215,0 -73.7522089773056,40.5945872168727,0 + + + + + + + + + -73.2930589706138,40.6263822132856,0 -73.2490511730599,40.6254244342199,0 -73.03093394571719,40.6713410120228,0 -72.9563156920831,40.7000387409497,0 -72.7640253118572,40.7583922849051,0 -72.7573264947801,40.7679595170533,0 -72.7821991206641,40.7641333101321,0 -72.8769060551186,40.7373463357701,0 -73.05102282397201,40.6751671223298,0 -73.240437212291,40.6330765843302,0 -73.2911438669417,40.6330768861726,0 -73.2930589706138,40.6263822132856,0 + + + + + + + + + -74.23693964924441,40.5060032905632,0 -74.1936418338484,40.510561942058,0 -74.12299972778629,40.5447412254891,0 -74.0591936862929,40.6017089956228,0 -74.07286605953171,40.6495633368533,0 -74.1662980145054,40.6244971306027,0 -74.2369398627783,40.5379049676837,0 -74.23693964924441,40.5060032905632,0 + + + + + + + + + North Carolina + empty + + +states.AREA: + 49048.024 + + +states.STATE_NAME: +North Carolina + + +states.STATE_FIPS: +37 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +NC + + +states.POP2000: + 8049313 + + +states.POP2001: + 8225753 + + +states.POP00_SQMI: + 164 + + +states.DEN_0_100: + 85 + + +USStates.ID: + 12 + + +USStates.State_Name: +North Carolina + + +USStates.Date_Entered: +Nov. 21 1789 + + +USStates.Year_Entered: +1789 + + +USStates.Year_Settled: +1660 + +]]> + #Style_5 + + + -79.4013155346895,35.5472650672799,0 + + + + + + + -83.9884542500545,34.9891518047362,0 -83.93789913149431,34.9894775119032,0 -83.5492972918908,34.9896284845873,0 -83.5128876420542,34.9921157535224,0 -83.1061569738507,35.000366708131,0 -83.0071465788827,35.0242932065357,0 -82.8875562556649,35.055473206413,0 -82.7712011457841,35.0855376628965,0 -82.6972082635003,35.0913494747721,0 -82.6878846328013,35.0979182706584,0 -82.6859002249553,35.1215804311176,0 -82.65434412549401,35.1195740504075,0 -82.5698759075391,35.1496073738685,0 -82.524479651378,35.1546774490548,0 -82.4665859914405,35.1736172290209,0 -82.43776138231119,35.1696762171977,0 -82.38945068539501,35.2083565365976,0 -82.3712159851947,35.1828397610023,0 -82.3599623343986,35.1830646579415,0 -82.3507000333949,35.1927881586207,0 -82.3206088962679,35.1843038355905,0 -82.27816557714399,35.1951216082193,0 -82.2100104423684,35.1932410593964,0 -81.9712727030758,35.1884000260399,0 -81.87041657119239,35.1832378034331,0 -81.76518108877021,35.1825960728566,0 -81.36198018686321,35.1629867122026,0 -81.3226257414279,35.1638918108331,0 -81.04909901663881,35.1516727757939,0 -81.04883974027349,35.1321534001715,0 -81.02824058884551,35.1055509640026,0 -81.0653500212191,35.0666253067042,0 -81.0396852000525,35.0373453689435,0 -80.9275918870396,35.1013947091143,0 -80.8945103715547,35.0598808081622,0 -80.8399590540857,35.0021664433249,0 -80.785444630059,34.940788108541,0 -80.79985577870811,34.8162600736923,0 -80.5613348947421,34.815379673307,0 -80.3250654065352,34.8149167168925,0 -79.9197366317695,34.8080740704278,0 -79.685738680014,34.8054127206548,0 -79.6672823384891,34.8008202005653,0 -79.4557408419562,34.6342519700477,0 -79.4469133528043,34.6192221953644,0 -79.0742575899197,34.3047384944277,0 -78.6554531485329,33.9488449988485,0 -78.57945349610721,33.8821646134616,0 -78.0345179035716,33.9144655035987,0 -77.95823664379429,33.9927535951154,0 -77.9604422302876,34.1894138394024,0 -77.9264668205974,34.0622068781286,0 -77.89410931317229,34.0693517444618,0 -77.864094387908,34.1929080636859,0 -77.7502285952169,34.3052152556069,0 -77.6023097576188,34.4127961619157,0 -77.6094206317085,34.4352111182146,0 -77.58645506568941,34.4211044558942,0 -77.53832636635519,34.4571757451115,0 -77.1562743412922,34.6607994551356,0 -77.1290670525932,34.6850758053643,0 -77.1486300958301,34.7644928793749,0 -77.0501990668688,34.6990792872107,0 -76.6249630133433,34.7199152319966,0 -76.46954580418669,34.7852234003552,0 -76.3143487428846,34.9489790362954,0 -76.3290439177373,34.9761204263875,0 -76.3636527631416,34.9432753199548,0 -76.4236996410833,34.9464101060141,0 -76.4446746901305,35.016821613356,0 -76.5294259321625,34.9747977981923,0 -76.66971229425271,34.9701586610467,0 -76.6467009989299,34.9064952538138,0 -76.91277290524469,34.9366300082455,0 -77.0008586302893,35.0530463230032,0 -77.11026055452381,35.0661954508922,0 -77.1043475272177,35.0881454936049,0 -77.0475521473705,35.0923150966989,0 -76.94291003878649,35.0701945880484,0 -76.9411555433733,35.0275875339288,0 -76.8491252863471,34.982379921273,0 -76.6776621128775,35.0242480871668,0 -76.6238729550724,35.0645133662679,0 -76.60487483157399,35.1387263355658,0 -76.6397413585737,35.1726863005469,0 -76.5067751417852,35.2489330964746,0 -76.5406269919479,35.3038542452018,0 -76.5908594670962,35.3122475613847,0 -76.6141670362876,35.2730867333754,0 -76.6945524996528,35.3505941243399,0 -76.98285399044831,35.4366636706378,0 -77.1034438790242,35.5503488031328,0 -76.7050292785914,35.4121010752802,0 -76.6284211127021,35.4380631232604,0 -76.6378528390625,35.5205015679941,0 -76.4921880342737,35.541952401491,0 -76.5185953789444,35.5778101645251,0 -76.4461736845969,35.5510316355737,0 -76.458082231863,35.504591725145,0 -76.53340213378431,35.450365283595,0 -76.4984509695288,35.4163837561328,0 -76.18125223736131,35.3417018841534,0 -76.05260831544901,35.4147748843318,0 -75.89112185475111,35.6314373307933,0 -75.77867286687371,35.5788596630665,0 -75.72898900662339,35.665346355358,0 -75.7485844806443,35.8695079102707,0 -75.8176810806274,35.9236843388724,0 -75.9874915558738,35.8928678030293,0 -76.02084452400339,35.6692594940877,0 -76.1043820216892,35.6638050456577,0 -76.1669465551588,35.6970078077113,0 -76.0427040337583,35.684014363844,0 -76.07555189097479,35.7569647798523,0 -76.0256869103623,35.9205848840211,0 -76.0892822391223,35.9630733048323,0 -76.21341991434009,35.9770370290936,0 -76.371139191748,35.932505477407,0 -76.4091283531839,35.9776289262675,0 -76.6968862093037,35.9417048325409,0 -76.7407945732609,35.9367873881772,0 -76.693430938163,35.993130374768,0 -76.7603450631722,36.1447501886056,0 -76.7447362584297,36.2340736323403,0 -76.7071685217467,36.2662883637951,0 -76.74102237740409,36.3153219069784,0 -76.9237608844299,36.3925988375605,0 -76.7763179923306,36.3584847061625,0 -76.68840787204771,36.294673224779,0 -76.7261797744452,36.1569800114938,0 -76.6898230006157,36.0497700530899,0 -76.6328753964642,36.037277484565,0 -76.6486843529633,36.0658679998712,0 -76.59366647335681,36.0102930907247,0 -76.5226729428308,36.0073295870634,0 -76.4200856773769,36.0587660161274,0 -76.4801920625066,36.0799523645649,0 -76.2751614487396,36.1105304965543,0 -76.29858527945861,36.2143873673267,0 -76.2346329999873,36.1635194405906,0 -76.1415877116506,36.1478486946883,0 -76.1123584511714,36.1745780626302,0 -76.2185584113341,36.2967645788658,0 -76.1828209798244,36.3153954875583,0 -75.9809812344828,36.1698863401472,0 -75.9568257994211,36.1939309437328,0 -76.0086191458258,36.3197530400297,0 -75.9415760202413,36.2944972863716,0 -75.9571554546035,36.2596123902831,0 -75.9134059470765,36.2449609601768,0 -75.8547970349572,36.1058289194759,0 -75.7984798262459,36.0729822151271,0 -75.799686786926,36.1129789671118,0 -75.9242345411069,36.3511064253818,0 -75.92776837905591,36.4234009903646,0 -75.9509007725851,36.3656283397926,0 -76.00125787767401,36.4190705700709,0 -75.9694113211707,36.4152753792118,0 -75.97572143414359,36.436370152828,0 -76.0907173497589,36.503720365701,0 -76.0328614410073,36.5145275392771,0 -76.0456111690205,36.5571064340655,0 -76.1270505006232,36.5573157649444,0 -76.3299165778101,36.5562088358656,0 -76.4972285279305,36.555964754875,0 -76.5632556818254,36.5554041975692,0 -76.92131386587209,36.554309439951,0 -76.92381636627491,36.5542979883089,0 -77.1770420007847,36.5564375496145,0 -77.3197463656757,36.5540684074889,0 -77.7636386364742,36.5535891128352,0 -77.89856872882319,36.553092111532,0 -78.05138167562831,36.5526213891494,0 -78.320969632811,36.5456755672774,0 -78.45852951752001,36.5416234739225,0 -78.73711601969831,36.5462146723402,0 -78.7964284068279,36.5436739120265,0 -79.1440627705841,36.5461983712091,0 -79.21680327614961,36.5499213192211,0 -79.5100477812088,36.5477956232117,0 -79.7172016388076,36.5480278701673,0 -80.0238223180659,36.5451630012943,0 -80.04786338901999,36.5472724746821,0 -80.4350919823622,36.5511811239687,0 -80.61084107895191,36.557430438888,0 -80.8379531599861,36.5635684825855,0 -80.90324049840061,36.5653420877066,0 -81.3451210093901,36.5729883010435,0 -81.669835031007,36.5897678106349,0 -81.7026326964311,36.5194602645637,0 -81.6981148990988,36.4718999796584,0 -81.7409080103685,36.3919078496119,0 -81.7402131763359,36.36198253433,0 -81.70928987932049,36.3338502743492,0 -81.7303246226996,36.329467183951,0 -81.8304104053052,36.3347789811478,0 -81.9109940382706,36.2908752993263,0 -81.93295169915611,36.2634442248774,0 -82.02029495982831,36.1298343126582,0 -82.07760212353961,36.1002602555009,0 -82.1179256052358,36.0963748384003,0 -82.1539009606375,36.1397376377449,0 -82.2075845767752,36.1471275332235,0 -82.2621599370151,36.1204875660764,0 -82.31178368636429,36.1222605725301,0 -82.373713428402,36.0988071608409,0 -82.4082829106663,36.075426604695,0 -82.4750552128438,35.9932844245825,0 -82.50679391974769,35.9726503280575,0 -82.5540052334424,35.9562159294434,0 -82.59916490143139,35.9634057475641,0 -82.6056664709886,36.0036541966122,0 -82.59209423820271,36.0225560968714,0 -82.60426425649671,36.0430940692888,0 -82.627908811062,36.0544461489244,0 -82.6437553482122,36.0518290360149,0 -82.7630949285561,35.999650015691,0 -82.7734633268223,35.9876068957838,0 -82.776308441769,35.9566773412235,0 -82.808535161382,35.9209751642818,0 -82.85613712216021,35.9475285534576,0 -82.8958417812556,35.9484625785516,0 -82.91393874467821,35.9279697450405,0 -82.90668913774699,35.8723171942072,0 -82.9626197710807,35.7919519408503,0 -82.9868738379453,35.7740910698457,0 -83.0598287433232,35.7826768094939,0 -83.1180576454199,35.7639076045034,0 -83.14353299786571,35.762781885683,0 -83.1852205412256,35.7289833858793,0 -83.2437245319139,35.7183129960111,0 -83.25317743900131,35.7008036610277,0 -83.25899879194441,35.6911067450186,0 -83.2982915815667,35.6564233114235,0 -83.34290282423361,35.6533554944088,0 -83.38697214372481,35.625313192169,0 -83.4581731409302,35.5973733030352,0 -83.5056836752714,35.5596454175324,0 -83.56092262748621,35.5552687853695,0 -83.6137506282731,35.5718308753539,0 -83.6727662732265,35.5650623686071,0 -83.77577472166,35.5526929432439,0 -83.8300980940741,35.519149329024,0 -83.88112540362761,35.5106719867731,0 -83.9099126259032,35.4765642431448,0 -83.9546078411811,35.4555443092538,0 -84.01255674537021,35.4077068120234,0 -84.00621731838029,35.3729437031099,0 -84.02911525821651,35.3253739821258,0 -84.03077168910571,35.2926057594707,0 -84.0426897213918,35.2726584543483,0 -84.10156069006141,35.2456337418504,0 -84.1796426644509,35.2410694819878,0 -84.22586311709139,35.2616828718238,0 -84.2909595168732,35.210622280084,0 -84.3237734916339,34.989090556154,0 -84.118152397807,34.9883069959845,0 -83.9884542500545,34.9891518047362,0 + + + + + + + + + -76.0268192353758,36.5568700359695,0 -75.97593627376701,36.5180793801967,0 -75.9769275698946,36.4781707412753,0 -75.92445033891821,36.4741316082296,0 -75.9115647487463,36.5426843995728,0 -75.9983147031585,36.5568053577451,0 -76.0268192353758,36.5568700359695,0 + + + + + + + + + -75.90163103703659,36.5563523255124,0 -75.7828060806813,36.2253555177264,0 -75.7404920642807,36.0504887346377,0 -75.7023588136975,36.050028033628,0 -75.5445786711917,35.7885380495047,0 -75.77278830494819,36.2294182919327,0 -75.877811084643,36.5560283058652,0 -75.90163103703659,36.5563523255124,0 + + + + + + + + + -75.4908240267188,35.6706779442836,0 -75.4750201903482,35.5646750837636,0 -75.52108025462761,35.2815348139534,0 -75.6911717207235,35.2351648510944,0 -75.7488987595512,35.1900017864003,0 -75.52589357232451,35.2280944215419,0 -75.4565804266586,35.6175774238916,0 -75.5332327857941,35.7690344819007,0 -75.4908240267188,35.6706779442836,0 + + + + + + + + + -76.0166279556301,35.0696051226092,0 -76.0024976111832,35.0696053699945,0 -75.90356247916451,35.1326642006003,0 -75.811150308907,35.1641942791106,0 -75.76331155591871,35.1924582338,0 -75.85354935458651,35.1674551809437,0 -75.97531321026131,35.1163551414779,0 -76.0166279556301,35.0696051226092,0 + + + + + + + + + -76.5439188750827,34.5879943309158,0 -76.4689040756159,34.6934466158692,0 -76.2873389732944,34.8771752332838,0 -76.37431856243209,34.8130336904105,0 -76.43193837858991,34.7608479437727,0 -76.484125508936,34.697795135324,0 -76.53739566964271,34.6140864557391,0 -76.5547914497339,34.6108248279411,0 -76.5439188750827,34.5879943309158,0 + + + + + + + + + North Dakota + empty + + +states.AREA: + 70812.056 + + +states.STATE_NAME: +North Dakota + + +states.STATE_FIPS: +38 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +ND + + +states.POP2000: + 642200 + + +states.POP2001: + 639099 + + +states.POP00_SQMI: + 9 + + +states.DEN_0_100: + 99 + + +USStates.ID: + 39 + + +USStates.State_Name: +North Dakota + + +USStates.Date_Entered: +Nov. 2 1889 + + +USStates.Year_Entered: +1889 + + +USStates.Year_Settled: +1812 + +]]> + #Style_5 + + + -100.470755004497,47.44607757471681,0 + + + + + + -98.7304369014178,45.938271038568,0 -98.0147097100399,45.9314979679384,0 -97.97872180427929,45.9308221521123,0 -97.2333099148663,45.9365026737778,0 -96.56692152993792,45.9341104552974,0 -96.56180218014301,45.947683082204,0 -96.57621526476891,46.0212796299197,0 -96.5519309951806,46.0955288981098,0 -96.5711660882375,46.1771746587376,0 -96.58789029848551,46.1919183501241,0 -96.586456172813,46.2154130412247,0 -96.59818306918299,46.2386825873787,0 -96.60207424773671,46.3363242033822,0 -96.6148614718026,46.3508125122489,0 -96.652101616659,46.359433744956,0 -96.68822802670302,46.4122182590646,0 -96.70968261750701,46.4271682580565,0 -96.7148938591495,46.4687184679509,0 -96.7403159762507,46.48943263621611,0 -96.7512275405111,46.5886193856906,0 -96.77104176601431,46.599983727298,0 -96.7843175742934,46.6241120798968,0 -96.79024584630611,46.6297732310646,0 -96.7936950250642,46.6788040267861,0 -96.7815566712509,46.70704424821519,0 -96.78038206028749,46.76231192357041,0 -96.79719698567129,46.8120331273937,0 -96.7682498142506,46.8448617179934,0 -96.77806115639289,46.86734962234851,0 -96.75691111938932,46.92278040676061,0 -96.7630680116614,46.9362617243826,0 -96.78792529587892,46.9321845446505,0 -96.78971039131831,46.9482025284177,0 -96.80188711680511,46.9558437462552,0 -96.7934256963282,46.9696412657999,0 -96.81677225710112,46.9697793204954,0 -96.8245311005541,47.0034368148568,0 -96.83529642490029,47.010231336615,0 -96.8226082854226,47.0339323228784,0 -96.82696455551869,47.0788327499143,0 -96.8191517739067,47.092603946145,0 -96.83916391918299,47.15188672447119,0 -96.8264910530645,47.1700638561564,0 -96.83706533207652,47.24045886252299,0 -96.84962364144019,47.2568437171683,0 -96.8377139015022,47.2938841531782,0 -96.84674742491131,47.3146021392787,0 -96.83846171594141,47.3422432670699,0 -96.8506310274787,47.3609547965118,0 -96.83982751825211,47.3841173886799,0 -96.85000552427368,47.40893619134631,0 -96.8672485372544,47.4130870926383,0 -96.8558270224376,47.4367532150799,0 -96.86668409504289,47.46153767201731,0 -96.8516156149426,47.5006189556105,0 -96.86068697531159,47.521355890617,0 -96.84918872371689,47.5445680596933,0 -96.85866448748919,47.5629780191413,0 -96.8522168516036,47.6011515774988,0 -96.8733355306381,47.61525494214149,0 -96.88942557471509,47.6739252332857,0 -96.92365919198331,47.7140944463104,0 -96.9320126704945,47.76350633439991,0 -96.95783043536861,47.7944403501783,0 -96.98389283615319,47.8096615237026,0 -96.9772315863069,47.82802938021419,0 -97.0003404808151,47.8701978669666,0 -97.02056624465818,47.8755694579146,0 -97.0153310859442,47.9178900732528,0 -97.04805316836101,47.9549243203709,0 -97.06707134786728,48.048164548667,0 -97.09272143407961,48.0703439518727,0 -97.09903037740141,48.10097253646661,0 -97.1218728658484,48.1163692500537,0 -97.12091854672551,48.1427747596289,0 -97.1365131689498,48.1483979760568,0 -97.1160657786151,48.15922376009381,0 -97.13744349769659,48.1677691625112,0 -97.13629125790619,48.1752269254696,0 -97.13727498096822,48.19506350874159,0 -97.13082783294991,48.203741885664,0 -97.1108994630634,48.2076058326789,0 -97.13975391723049,48.2217551769127,0 -97.1092357553089,48.2280489212221,0 -97.12755405772062,48.2335233812974,0 -97.12378464072812,48.2591734472995,0 -97.1366555811411,48.26448372514071,0 -97.1117146532382,48.2778766724222,0 -97.1126835485646,48.2861469425287,0 -97.13051368584328,48.2930404066961,0 -97.11372110772452,48.2948826063907,0 -97.11475103859129,48.3036182701977,0 -97.1326346023646,48.3109694998778,0 -97.11259178050868,48.3199260418033,0 -97.1371359526577,48.325991839938,0 -97.1311236997639,48.3614912628834,0 -97.1503959422882,48.3632158504957,0 -97.1337863598383,48.37245473762349,0 -97.13520540024382,48.3844100102639,0 -97.15881888906552,48.3882060567347,0 -97.12912451530391,48.40788551888869,0 -97.14982354769968,48.4099916056847,0 -97.1516469812462,48.4196122946538,0 -97.1226011810987,48.4161098774117,0 -97.11963315137211,48.4371020760904,0 -97.1436129528287,48.4381095940115,0 -97.13459432660341,48.5173139662426,0 -97.14832765896941,48.5179512756552,0 -97.13938559124,48.53464808973769,0 -97.15553751110001,48.5383982428954,0 -97.16043569382291,48.5450778855401,0 -97.14661837238491,48.549537028086,0 -97.16794315057858,48.5622632793582,0 -97.15212680110921,48.5728564381998,0 -97.1581923011142,48.5836407260616,0 -97.1408119037381,48.58690580615401,0 -97.14471807468772,48.614024636853,0 -97.1229581756859,48.62076865965261,0 -97.12744434552491,48.6297943394125,0 -97.1076300563642,48.6299465820435,0 -97.0971692767445,48.67452891358581,0 -97.1167392665872,48.6952431183753,0 -97.11010128165211,48.70858304519639,0 -97.13480616135631,48.72623793064931,0 -97.1325018005064,48.74721879009559,0 -97.14789838866929,48.7556533929197,0 -97.13924598743699,48.7635421115078,0 -97.14751600300801,48.7811701058176,0 -97.17394470123411,48.8015144641308,0 -97.1647124057145,48.81036830295489,0 -97.180421855856,48.8155374993874,0 -97.17120441179901,48.8359804803914,0 -97.17572751730749,48.87375778734761,0 -97.21636909583231,48.9318299182446,0 -97.22943644383329,48.9999877567165,0 -97.93786778438729,48.9999918937478,0 -99.0004034005602,49.0000065174999,0 -99.5335659929558,49.000008633611,0 -100.18790828563,49.00000221473371,0 -101.50043742862,49.00002009555491,0 -102.022264422813,49.0000152771341,0 -102.937958808257,49.0000261991575,0 -104.062991101535,49.0000267486802,0 -104.052317635595,48.6458247340349,0 -104.052111483045,48.3910193593535,0 -104.048425167939,48.0000812793709,0 -104.047307659333,47.4000172886746,0 -104.045926505168,47.3338320293792,0 -104.047437491435,46.6429474765464,0 -104.046705569922,46.5425395197373,0 -104.04783642886,46.2808814764405,0 -104.048906344358,45.94299366714029,0 -102.994822935958,45.9411156292139,0 -102.94639700191,45.9416652376318,0 -102.002775042851,45.9425053768471,0 -100.514406747246,45.9403879984664,0 -99.8757832426344,45.9435473182577,0 -99.7173457378766,45.9427610350303,0 -99.0068328335466,45.939555550557,0 -98.7304369014178,45.938271038568,0 + + + + + + + + Ohio + empty + + +states.AREA: + 41193.957 + + +states.STATE_NAME: +Ohio + + +states.STATE_FIPS: +39 + + +states.SUB_REGION: +E N Cen + + +states.STATE_ABBR: +OH + + +states.POP2000: + 11353140 + + +states.POP2001: + 11381725 + + +states.POP00_SQMI: + 276 + + +states.DEN_0_100: + 75 + + +USStates.ID: + 17 + + +USStates.State_Name: +Ohio + + +USStates.Date_Entered: +Mar. 1 1803 + + +USStates.Year_Entered: +1803 + + +USStates.Year_Settled: +1788 + +]]> + #Style_5 + + + -82.78739067313241,40.2875354201742,0 + + + + + + -83.2727548748104,38.6092569222626,0 -83.24501356062839,38.6241723630441,0 -83.1819390743195,38.6098410346599,0 -83.1431499750977,38.6193396966029,0 -83.11124311365749,38.6648333651597,0 -83.0608799170539,38.6857264630017,0 -83.0269434347116,38.7145119991138,0 -82.97248310332699,38.7196429959584,0 -82.9213038087217,38.7464144846546,0 -82.8903122480228,38.7427754690297,0 -82.8731911677823,38.7190064779649,0 -82.880011744564,38.6833013226062,0 -82.8600294858941,38.6523951466567,0 -82.85385666395931,38.6004587371503,0 -82.8269924854152,38.5716621183892,0 -82.8023639107609,38.5572886775579,0 -82.7419448162975,38.5530662073486,0 -82.6955793642933,38.5391428294601,0 -82.6697603574158,38.5021407722218,0 -82.6137433379651,38.4726688337026,0 -82.5866043088359,38.4125194224537,0 -82.5754192239026,38.4039021444586,0 -82.5475481992093,38.4005109785092,0 -82.4949877236084,38.405832597411,0 -82.41489129697651,38.4303925893994,0 -82.39476414185761,38.4284703243087,0 -82.32917938871179,38.4419523430973,0 -82.3142406687043,38.4652295850629,0 -82.2899713540982,38.5800813546872,0 -82.2708972021513,38.5948900812008,0 -82.2136592450116,38.5848354166427,0 -82.1842468602663,38.5950322865397,0 -82.17365706195611,38.6321907721309,0 -82.18897770390291,38.6778937710105,0 -82.1839728099084,38.710302969121,0 -82.2167502305976,38.7789394330115,0 -82.1977219453354,38.8046196832205,0 -82.14609966838241,38.8387877142417,0 -82.13931709213161,38.8993984229593,0 -82.1012069170005,38.9520939616579,0 -82.0850167494239,38.9771981320238,0 -82.0585035436315,38.9890655972236,0 -82.0428855933127,39.0141392723836,0 -81.999678576611,39.0152610363642,0 -81.9751873204589,38.9930065533181,0 -81.9377333601398,38.9911756913507,0 -81.92783006842539,38.9842712717174,0 -81.89860847229041,38.9322247653254,0 -81.9318508422449,38.8947421272096,0 -81.91524871422909,38.884446578043,0 -81.8926954574516,38.8734530024849,0 -81.8668004270512,38.8857095354934,0 -81.8409130504285,38.9378897832025,0 -81.8237768593835,38.948467790736,0 -81.7832252461068,38.9235624308806,0 -81.7622971158526,38.9301808907728,0 -81.7817298618878,38.9685290255312,0 -81.7756796380037,39.0168297231883,0 -81.8134617903382,39.0441080346264,0 -81.824273103509,39.0664159845432,0 -81.8195656534392,39.077016873553,0 -81.78636140597079,39.0772573104027,0 -81.7535616017454,39.0947208175577,0 -81.74470368597029,39.1258749496768,0 -81.758910326595,39.1757512549241,0 -81.7230738622105,39.2132681698618,0 -81.6979035279936,39.220020030992,0 -81.6895262667326,39.2602262835757,0 -81.6675222725862,39.2704953128172,0 -81.5726851110575,39.2659175355733,0 -81.55738794827489,39.3326551943737,0 -81.54064851311919,39.3527089235402,0 -81.4650081513692,39.4068583282204,0 -81.4479558561434,39.4110278039673,0 -81.4339782748136,39.4060229813656,0 -81.3759162878324,39.3456902660112,0 -81.3388361554473,39.3536439576398,0 -81.2840170696265,39.387072038012,0 -81.2376212801085,39.388472233438,0 -81.2249486327778,39.4083582071948,0 -81.20030524610981,39.4158962250483,0 -81.180567643956,39.437800182641,0 -81.11708991317241,39.467783911079,0 -81.09824494329121,39.4964511389157,0 -81.03738319915119,39.5326641774228,0 -81.03256860915231,39.544142538686,0 -80.9836464085096,39.5818052379779,0 -80.9326107962525,39.6069409720762,0 -80.91259057006261,39.6073533140813,0 -80.8811098930273,39.6240811641343,0 -80.87274608454371,39.6624110188142,0 -80.8634141639951,39.6803515272318,0 -80.832787434305,39.7034002259532,0 -80.8322983936779,39.7188343443337,0 -80.8564533163278,39.7363355934909,0 -80.87072776135891,39.7599938351988,0 -80.8191038347973,39.8090013333355,0 -80.8259165835688,39.8396671142989,0 -80.7985253362877,39.8567227242363,0 -80.7908494426605,39.8723475673467,0 -80.8121358445091,39.9049014113291,0 -80.8078400413376,39.9159028725421,0 -80.7960214112815,39.9198397078312,0 -80.7681270403387,39.9133131812296,0 -80.7588871844105,39.9212667893345,0 -80.76306009947351,39.947015501453,0 -80.7388880114803,39.9834759440017,0 -80.73823885471551,40.0356640607266,0 -80.7020651116698,40.1540899859456,0 -80.7008900358822,40.1681812950244,0 -80.67855741943301,40.194151495489,0 -80.6501132136987,40.2456798126148,0 -80.6146878118885,40.2765021361522,0 -80.60451708240841,40.3062448322667,0 -80.6092470800706,40.3732754647517,0 -80.6292446110196,40.3886635709611,0 -80.6278482893771,40.3982268491052,0 -80.6018302001708,40.4805390518844,0 -80.6252533727438,40.5044642482608,0 -80.63343988239519,40.5392040647419,0 -80.6686204246359,40.5682789021601,0 -80.6677276496391,40.5821374643692,0 -80.63733821934061,40.613982302321,0 -80.6115497018059,40.6200630858018,0 -80.5744158355721,40.6159741619192,0 -80.52199952847749,40.6372031779131,0 -80.520306111211,40.8541688223624,0 -80.52092443011161,40.8972705158399,0 -80.5229326934644,41.1296278146841,0 -80.51999623496189,41.4892885705201,0 -80.52392556258459,41.4951021493305,0 -80.5226439573086,41.8507747576586,0 -80.5205925694563,41.9868721098151,0 -80.9997726749621,41.8502571698917,0 -81.3622646287273,41.7242834716563,0 -81.4782631842651,41.6317160085966,0 -81.7385026273233,41.4911547362108,0 -81.9619077841044,41.5019186194452,0 -82.01560565326599,41.5153101427099,0 -82.3413826182513,41.4315011278012,0 -82.5488376780322,41.3913376118913,0 -82.7169465507165,41.4505247784283,0 -82.9089321846262,41.4294685839921,0 -83.07039839197181,41.4561099314841,0 -82.7847067738454,41.5074172813269,0 -82.7958306404585,41.5376483368901,0 -83.0034334958447,41.5381937701371,0 -83.153746401703,41.6260898051711,0 -83.4826910020175,41.7251299269076,0 -83.76395412119879,41.7170422186577,0 -83.868639675225,41.7159933856432,0 -84.35920849224161,41.7080391705922,0 -84.38439324270421,41.7071503370832,0 -84.79037747295131,41.6974947329852,0 -84.79136990395649,41.5304919381552,0 -84.7918972237936,41.4278994604409,0 -84.7909755666301,41.2838180261002,0 -84.79158626712351,41.2531325315222,0 -84.79052709599461,40.9883412320642,0 -84.79102327254211,40.9377084936207,0 -84.7930613218788,40.7288603729197,0 -84.7932521538178,40.5887382366961,0 -84.7945562939653,40.3530507566997,0 -84.79538778828569,40.3195005333353,0 -84.8035641264148,40.013990635484,0 -84.8061497587903,39.9171665438967,0 -84.808696532672,39.7332992702085,0 -84.8110367793544,39.5640506850582,0 -84.8111048340875,39.5131632038426,0 -84.8120249021854,39.3123331649208,0 -84.8120705333745,39.3030292262759,0 -84.81148058301,39.1025855115064,0 -84.7899269988898,39.1070335912354,0 -84.7428755878621,39.1420637748434,0 -84.6674874871449,39.0896244882795,0 -84.6226484760206,39.0749345727981,0 -84.5930686595367,39.070265611257,0 -84.5153007968991,39.0941952341113,0 -84.4920536098813,39.1073635038858,0 -84.444918075979,39.1118269376755,0 -84.425683749535,39.0847240819073,0 -84.4197401104714,39.0473368904498,0 -84.39131227398291,39.0357444360707,0 -84.3457790116403,39.0378123176184,0 -84.3133151278336,39.014074138235,0 -84.29013610301691,38.9445378637403,0 -84.2615250982177,38.9174773125027,0 -84.2352944474892,38.8745556222277,0 -84.2287021102685,38.8126904458503,0 -84.17675226261351,38.7884985944901,0 -84.0888671071979,38.7655047394295,0 -84.05380160129811,38.7637349934305,0 -83.9621627892472,38.7776474056309,0 -83.9125395047095,38.7579603800755,0 -83.8575526890278,38.7449183938572,0 -83.8375322435588,38.7118799039528,0 -83.79046498152741,38.6938445378462,0 -83.77022323291369,38.650819405338,0 -83.712825428618,38.6355534097723,0 -83.6785301000227,38.6209281353376,0 -83.6557556666292,38.6238806809261,0 -83.64318975618861,38.6358624635654,0 -83.63324094665769,38.6649719664098,0 -83.6183785196076,38.6779722718334,0 -83.526555981969,38.696111041032,0 -83.5000734679638,38.690137357128,0 -83.45361629995431,38.6637746596862,0 -83.37142194898451,38.6549977034897,0 -83.33002325645781,38.6319880306114,0 -83.3203257653401,38.6065634765907,0 -83.3065312653877,38.5963174248036,0 -83.2900435785732,38.5966379602472,0 -83.2727548748104,38.6092569222626,0 + + + + + + + + Oklahoma + empty + + +states.AREA: + 70003.325 + + +states.STATE_NAME: +Oklahoma + + +states.STATE_FIPS: +40 + + +states.SUB_REGION: +W S Cen + + +states.STATE_ABBR: +OK + + +states.POP2000: + 3450654 + + +states.POP2001: + 3477711 + + +states.POP00_SQMI: + 49 + + +states.DEN_0_100: + 96 + + +USStates.ID: + 46 + + +USStates.State_Name: +Oklahoma + + +USStates.Date_Entered: +Nov. 16 1907 + + +USStates.Year_Entered: +1907 + + +USStates.Year_Settled: +1889 + +]]> + #Style_5 + + + -97.50945859429611,35.583978004302,0 + + + + + + -94.4393221493475,34.9291508772006,0 -94.4285520120899,35.4005462695086,0 -94.46848521103668,35.6410882624306,0 -94.48593482605899,35.7603104941298,0 -94.5424172738563,36.1068358038929,0 -94.55311361988042,36.1645252110653,0 -94.60745283215459,36.4787903547,0 -94.6172570958511,36.4894141614003,0 -94.6210734035526,36.670542870082,0 -94.6216844155007,36.7636077108139,0 -94.6203796376912,36.9970468237132,0 -95.0327450815612,37.0007794392778,0 -95.07193109811,37.0014780674299,0 -95.40662244594169,37.0006155845495,0 -95.5260187862325,37.0010188368678,0 -95.78574861213642,36.9981139405669,0 -95.9579609448337,37.0000828949687,0 -96.00604971220072,36.9983338098062,0 -96.5191876912757,37.0005778020035,0 -96.74869619591919,37.0001660629802,0 -97.137692826494,36.9998082437565,0 -97.46540491812472,36.9964671394098,0 -97.8042499377042,36.9985676282825,0 -98.1045290729196,36.998671345032,0 -98.34714359763062,36.9990615091091,0 -98.54021961843299,36.9983759139801,0 -98.99951613987589,36.9980727934686,0 -99.43747360824931,36.9945583965996,0 -99.5446396923613,36.9954629108102,0 -99.99926174794319,36.9954175257409,0 -100.088573981101,36.9976524956006,0 -100.634245618228,36.9978323335316,0 -100.950586859868,36.996661689339,0 -101.071604192395,36.9974667126978,0 -101.55367610944,36.9966930458734,0 -102.024519464501,36.9888757490654,0 -102.037207602599,36.9889939197762,0 -102.997709442614,36.9985238353847,0 -102.997400999016,36.4923701848871,0 -102.165673606983,36.4902341370994,0 -102.034658387679,36.4929809605896,0 -101.62075555527,36.4920314454728,0 -101.090102366885,36.4880502722289,0 -100.957341408628,36.4896376715563,0 -100.549839323196,36.4894790903428,0 -100.007272948555,36.493912716666,0 -100.001550693503,36.4925547831533,0 -99.99755361874209,36.0575913818302,0 -99.9981231250644,35.8838375261918,0 -100.000392481852,35.6188562203977,0 -99.99474342059961,35.4246221647218,0 -99.9975702180927,35.1822350834532,0 -99.99645505791619,35.0310510336069,0 -99.9992599692516,34.7472433686446,0 -99.9964752628992,34.5623839445524,0 -99.9724799649576,34.5619266989846,0 -99.9451200138402,34.5796346298626,0 -99.93228692511291,34.5791733267958,0 -99.88097732527548,34.5482418940255,0 -99.86094928508588,34.5186945590413,0 -99.83030837990161,34.501846255188,0 -99.77806025861618,34.4440642714861,0 -99.6852769049209,34.3775206620374,0 -99.601817403152,34.3686339710267,0 -99.58558947886991,34.3849338835776,0 -99.5782194991147,34.4089886853491,0 -99.5542323165501,34.4152563856433,0 -99.5025040549412,34.4041453149585,0 -99.4798058594252,34.3836002544386,0 -99.43874320793192,34.3647833428937,0 -99.4103230107381,34.3691856116386,0 -99.3945224149831,34.3968223241289,0 -99.3931570632619,34.429070725134,0 -99.3645692443735,34.4502723758117,0 -99.32365897051331,34.4127869472387,0 -99.26753552999141,34.3983645544,0 -99.25446563782602,34.3682943923503,0 -99.20584919432768,34.3320754835343,0 -99.19666281278209,34.3052057476053,0 -99.20495561666171,34.2557306955242,0 -99.19084035753009,34.2238215675651,0 -99.17651178434171,34.2128165213261,0 -99.12830013933699,34.2015562705675,0 -99.07878412614019,34.2084460436583,0 -99.03556990100751,34.1990091275048,0 -98.99654461650539,34.2095837062186,0 -98.9528568855168,34.1946535863845,0 -98.8916893852997,34.1609098971274,0 -98.8114099222656,34.146025924858,0 -98.77887692432012,34.1320532580559,0 -98.70563225966779,34.1308063642615,0 -98.68255276049912,34.1500893803379,0 -98.66205950085499,34.147129344828,0 -98.6263299881177,34.158527616426,0 -98.6075838723519,34.1514897431627,0 -98.5766684370536,34.1420220197199,0 -98.5579143286446,34.1054284628805,0 -98.4998521726901,34.066508171909,0 -98.4485195081449,34.0544693031052,0 -98.4216707502906,34.0659246412843,0 -98.4074643999688,34.0825487630451,0 -98.39128184930269,34.087324681805,0 -98.3845831608253,34.115873277508,0 -98.35073026318848,34.1422132177566,0 -98.3208141218597,34.1395124845584,0 -98.277324712945,34.1229647210219,0 -98.1731642842845,34.1154615363479,0 -98.137182702728,34.1385247073243,0 -98.11518632903911,34.1490797537232,0 -98.09444127427528,34.1346491348156,0 -98.11100543330518,34.0699152608686,0 -98.08652197109261,34.0054103575962,0 -98.0558736752466,33.9898964139123,0 -98.0238062114244,33.9870813155941,0 -97.982995159825,34.0013824361846,0 -97.9505389343141,33.9712584919282,0 -97.94806700069491,33.9598489691416,0 -97.9633110473011,33.9487483818417,0 -97.95099692709511,33.9326163854516,0 -97.9764418443808,33.9121508879515,0 -97.97669367876701,33.9026028951239,0 -97.95504853378348,33.8835794315438,0 -97.90937762069478,33.8741230741104,0 -97.8700622202223,33.8552140577552,0 -97.8528573913232,33.857170989043,0 -97.79051555721509,33.8905567127498,0 -97.75667040704261,33.932197269678,0 -97.72932581317978,33.9393918135487,0 -97.7045675638129,33.9716446286772,0 -97.6713709731313,33.9887114388077,0 -97.6004841716436,33.9695357487998,0 -97.5926564722634,33.9179850917189,0 -97.57597058455282,33.9026313915672,0 -97.55488993784371,33.9040048081949,0 -97.51850418970599,33.91687174991,0 -97.47783082980909,33.9078083743386,0 -97.4630599713817,33.9024831837152,0 -97.45736073930121,33.890532021605,0 -97.45303509112971,33.8363150195283,0 -97.41041616291049,33.8208124550832,0 -97.36361607593869,33.8311271478817,0 -97.3421004874611,33.8620178329205,0 -97.31525189418009,33.8704938884378,0 -97.3143820721958,33.8959411317283,0 -97.27257189808169,33.8726758421186,0 -97.26420222924099,33.8588326323233,0 -97.25098012527539,33.8730725605007,0 -97.24635658905748,33.8943389990746,0 -97.21162664947801,33.905790476719,0 -97.1880588051263,33.899305664185,0 -97.1644603868134,33.8632500271984,0 -97.16888553387221,33.8478962336794,0 -97.19530685545391,33.8362616577426,0 -97.2086128811281,33.8197520263932,0 -97.1894548414756,33.7528743688857,0 -97.1527639551762,33.7287737567957,0 -97.1158518152657,33.7260387447849,0 -97.09078850752719,33.7317759436109,0 -97.0837540270329,33.7425178691231,0 -97.087958150994,33.8076751203943,0 -97.0503136942646,33.8235515468502,0 -97.0785356759137,33.8379135029825,0 -97.08246496741261,33.8512035820318,0 -97.0711884256134,33.8568301349417,0 -97.0258837487447,33.8406638868468,0 -97.00613836455501,33.8506162080499,0 -96.9879951562104,33.876524993445,0 -96.9881480778014,33.9443028760324,0 -96.9684711058252,33.9374213261378,0 -96.9364875549014,33.9479496295896,0 -96.92984981386039,33.9618729385895,0 -96.8987359278797,33.9501277640988,0 -96.88313308270391,33.9246919643211,0 -96.8792188051043,33.8841045463944,0 -96.86129653634301,33.8617814536899,0 -96.84428994427481,33.8581346758361,0 -96.81439693387631,33.8718710579623,0 -96.7978710251696,33.8700514781673,0 -96.7491017928465,33.8318404880575,0 -96.7119531575884,33.8339726711759,0 -96.6936574485524,33.8480065285136,0 -96.67797914648511,33.9044245192975,0 -96.66651194068848,33.9136443690811,0 -96.58476047125609,33.8962455118061,0 -96.61443925387489,33.8630013562452,0 -96.6014686489895,33.8430585200471,0 -96.56240472874201,33.8255225751035,0 -96.5108435468467,33.8157874455655,0 -96.50101614488641,33.7881925349614,0 -96.48764129273351,33.7782325064272,0 -96.41973038217169,33.7884284828286,0 -96.3710832530533,33.7404975591171,0 -96.34785055840121,33.705631801563,0 -96.31653860767391,33.701904716619,0 -96.3010507089615,33.7141533419418,0 -96.28994278991731,33.7620342928024,0 -96.27833836590121,33.7734894901909,0 -96.21280716638501,33.7567925567755,0 -96.18728601066199,33.758684486151,0 -96.1690742422207,33.769456890815,0 -96.16157487608,33.7983297326873,0 -96.1416772177066,33.8204201506892,0 -96.15477738441462,33.824044081131,0 -96.1809848937133,33.8085339108482,0 -96.18338837503551,33.8158923202814,0 -96.16946454166531,33.8290832377136,0 -96.1492232448427,33.83569011079,0 -96.10970158601782,33.8293577291253,0 -96.09177990185232,33.8446772338064,0 -96.04822986488121,33.8413774764797,0 -96.0270045674164,33.8561209977346,0 -96.0143238316783,33.8443070387318,0 -96.0020480603943,33.8570784239774,0 -96.0028724620981,33.8734890044101,0 -95.99446458602881,33.8754764816195,0 -95.9776482488988,33.8580513457492,0 -95.959016632946,33.8651391176183,0 -95.94332288009811,33.8900718041244,0 -95.93332795033651,33.8906288422977,0 -95.8468057390447,33.8411382296162,0 -95.82622079304791,33.8431258316945,0 -95.7957252595447,33.8647743475285,0 -95.7687615327479,33.8515033166903,0 -95.7644970987573,33.8791063735621,0 -95.76094194954548,33.8935411571276,0 -95.7471094802783,33.9034976338912,0 -95.699950264818,33.8949267760162,0 -95.63373271524731,33.9202077191712,0 -95.6132241254837,33.9203415546903,0 -95.6150707735962,33.9367942616433,0 -95.60631201461909,33.944656465691,0 -95.5630133970639,33.9361771034426,0 -95.5465557208432,33.9041378125257,0 -95.51981372505441,33.9067474752702,0 -95.52697025126849,33.8979201785035,0 -95.54773054262731,33.8932621235845,0 -95.5442741981764,33.8858464269672,0 -95.5131223838212,33.8978402854978,0 -95.49909123242928,33.881822624598,0 -95.46835947773379,33.8865378582277,0 -95.4518412564926,33.8658586121364,0 -95.33027212314218,33.8710248450986,0 -95.3364600240519,33.8972201452204,0 -95.30218796775361,33.8867301071625,0 -95.2866618452793,33.8870087194903,0 -95.27758309673119,33.9180449387556,0 -95.26384964793752,33.8979074295118,0 -95.2512228467789,33.9051287029656,0 -95.2515208198696,33.9365500995153,0 -95.2342706406141,33.9649694417437,0 -95.14854400728719,33.9436534386509,0 -95.12819579812822,33.9409756193022,0 -95.12690617519908,33.9172521426231,0 -95.11945200414949,33.9123884529818,0 -95.09558666926452,33.9218451265293,0 -95.08249423367511,33.918560731634,0 -95.0899405612146,33.8970230129184,0 -95.0838291836962,33.8885696946472,0 -95.063702501233,33.9177558985992,0 -95.06336665131251,33.8968018383347,0 -95.04308708832051,33.884552938792,0 -95.0375860361542,33.8665590741676,0 -95.0129958687657,33.8700533810898,0 -94.9895041088505,33.8562900729299,0 -94.96892682868412,33.8663228494762,0 -94.9601296578001,33.8481840346416,0 -94.94010923140679,33.8409324203509,0 -94.94062024969412,33.8159156370392,0 -94.9184559016621,33.816304855563,0 -94.90876604933241,33.8035866991384,0 -94.9140991208061,33.7897049819208,0 -94.8818557435802,33.7750719362582,0 -94.8580964984281,33.7494296047539,0 -94.81937555938541,33.7495136716343,0 -94.80343699443648,33.7396910082834,0 -94.7837218171255,33.7533704682922,0 -94.76438804719702,33.7529509233106,0 -94.782241592951,33.742376603757,0 -94.7833707776319,33.7337745678945,0 -94.74998307234321,33.7368149801429,0 -94.762930719398,33.7169062835784,0 -94.74232301585609,33.719157166445,0 -94.7546906224197,33.7078808674656,0 -94.7418652471894,33.7013771094591,0 -94.69119732857141,33.6903997057713,0 -94.66866725489341,33.6966486225785,0 -94.65568935572141,33.6924032061402,0 -94.6445348646206,33.6777628005194,0 -94.6681636112439,33.671571088102,0 -94.6696360986615,33.6661733181553,0 -94.65874868980602,33.663850430669,0 -94.63897287047551,33.6702175285534,0 -94.63194611400361,33.6840114940994,0 -94.60115305801639,33.6657208732496,0 -94.5853141750945,33.6790954380738,0 -94.578714527779,33.6705850642858,0 -94.5609300134862,33.672027401142,0 -94.5654161185401,33.6631276811661,0 -94.58536744514042,33.6622460583057,0 -94.58859470157501,33.6555626943339,0 -94.57666964564912,33.6522708940353,0 -94.54562499154091,33.6617357579767,0 -94.54213813675099,33.6483615972293,0 -94.5624022483444,33.6429443355883,0 -94.56235640260989,33.6356506902792,0 -94.55040081551948,33.632809011294,0 -94.51819645594929,33.6431245606389,0 -94.5252611988716,33.6211366353993,0 -94.51076509594741,33.6309253877013,0 -94.50081601724669,33.6231627285535,0 -94.4766912623089,33.6320818342933,0 -94.46858488730931,33.9393114556774,0 -94.4616914490383,34.1967651932869,0 -94.45262404592168,34.5084326818174,0 -94.44596107534362,34.7356081162875,0 -94.4393221493475,34.9291508772006,0 + + + + + + + + Oregon + empty + + +states.AREA: + 97073.594 + + +states.STATE_NAME: +Oregon + + +states.STATE_FIPS: +41 + + +states.SUB_REGION: +Pacific + + +states.STATE_ABBR: +OR + + +states.POP2000: + 3421399 + + +states.POP2001: + 3470714 + + +states.POP00_SQMI: + 35 + + +states.DEN_0_100: + 97 + + +USStates.ID: + 33 + + +USStates.State_Name: +Oregon + + +USStates.Date_Entered: +Feb. 14 1859 + + +USStates.Year_Entered: +1859 + + +USStates.Year_Settled: +1811 + +]]> + #Style_5 + + + -120.55462738557,43.9315095486322,0 + + + + + + -121.441508911406,41.9943345308753,0 -120.871908519109,41.9876721779537,0 -119.993459369715,41.9892049531992,0 -119.351692186077,41.9888529749781,0 -119.3109421304,41.989135387281,0 -118.185316829038,41.9966370981387,0 -117.018864363596,41.9947941808341,0 -117.026295220045,43.6790312226004,0 -117.023794477971,43.7537015926794,0 -117.037117330473,43.800141963624,0 -117.027626548295,43.8315678483138,0 -117.010505344258,43.8397697264411,0 -117.016220426787,43.8529724419634,0 -116.985769945695,43.8593508862889,0 -116.978148119756,43.8734692305504,0 -116.978141228786,43.9044410423274,0 -116.959715844454,43.9285769433414,0 -116.967956848099,43.9631956105834,0 -116.933593484224,44.0142025695716,0 -116.976817765704,44.0738948202899,0 -116.963443200146,44.090298169114,0 -116.946886686949,44.0930258111951,0 -116.902254132599,44.1463138321419,0 -116.913051097385,44.1773044506484,0 -116.981871729265,44.1978422986385,0 -116.976127235356,44.225182362645,0 -116.99270711064,44.2470633967105,0 -117.030352023293,44.2493365546444,0 -117.052027613364,44.2315559603412,0 -117.081386867577,44.2438466037113,0 -117.100560675447,44.2670779004604,0 -117.112691921322,44.2698052758843,0 -117.143278940324,44.2506322436234,0 -117.170722952687,44.2533327374994,0 -117.213571878683,44.2847196851647,0 -117.217455714498,44.3006651372011,0 -117.201602017039,44.3394380033709,0 -117.236920894466,44.3899826429371,0 -117.217221802736,44.4278552410788,0 -117.224409907123,44.4729870546087,0 -117.203962567437,44.4857855049483,0 -117.187391126196,44.5118056022903,0 -117.1451606624,44.5346556241885,0 -117.143939864097,44.5592869485007,0 -117.130503910469,44.5725238664124,0 -117.079353923671,44.6893364257274,0 -117.066513051783,44.6975569657362,0 -117.039572246368,44.749115712801,0 -116.951494105467,44.7760351265198,0 -116.909620757374,44.8289402518746,0 -116.897366859846,44.8485551014903,0 -116.867076347262,44.8686084474449,0 -116.835396183444,44.9201440913313,0 -116.847556799088,44.9548499437335,0 -116.831396506105,44.9726336704264,0 -116.848158998462,44.9717412377244,0 -116.855887624852,44.9799657227584,0 -116.848097045025,45.0000421568822,0 -116.854513190899,45.0169452945603,0 -116.807307341613,45.0497552840876,0 -116.787210028569,45.075752513234,0 -116.77809192451,45.0994801033861,0 -116.761268252635,45.1063007182859,0 -116.736585294563,45.1373070907968,0 -116.688813374421,45.2623508428019,0 -116.672265496083,45.335410289815,0 -116.565771964133,45.4598636753961,0 -116.554503319145,45.4936471953906,0 -116.478551260109,45.566058496306,0 -116.470418797949,45.6062572703347,0 -116.514915090692,45.6644908956717,0 -116.52827492994,45.7107280103095,0 -116.560631908125,45.7474245686917,0 -116.654397936737,45.7806301604239,0 -116.703180308495,45.8191692439007,0 -116.773707129394,45.8197636132853,0 -116.791262487748,45.84586710608541,0 -116.856471818728,45.9035973451801,0 -116.89819704847,45.98051594169479,0 -116.919132428078,45.995175487463,0 -117.481663000967,45.9998347138602,0 -117.602826163512,46.00026815862021,0 -117.982677428834,45.9998805158959,0 -117.992527778446,46.0016389052483,0 -118.982132819163,45.9990583744824,0 -119.03222168131,45.9662745814382,0 -119.140250599579,45.9257086397924,0 -119.178742642589,45.922351608477,0 -119.302763509833,45.932662726596,0 -119.379441421397,45.9176100650698,0 -119.43886108987,45.9142685232279,0 -119.512220001301,45.8992005968695,0 -119.589294282545,45.9133149491969,0 -119.622116728299,45.8994103389685,0 -119.678445663881,45.8525390300795,0 -119.833555881044,45.8416093443199,0 -119.869735634541,45.8316985251524,0 -119.994320160406,45.8111403450749,0 -120.06864786541,45.780202445303,0 -120.155907860861,45.7612616683351,0 -120.207445390097,45.7197840646162,0 -120.283634874867,45.71658287339311,0 -120.443383762852,45.6892797229393,0 -120.499156501925,45.6956306780396,0 -120.570082462284,45.7409179414327,0 -120.623757205266,45.7436105722949,0 -120.658403368137,45.73261248754,0 -120.696993903513,45.7105098195153,0 -120.861419667766,45.6651862544925,0 -120.907937250867,45.63547710694449,0 -120.948572830946,45.650315967172,0 -120.968478511648,45.6451545411606,0 -121.03348258367,45.652844415437,0 -121.073529928592,45.6466107733405,0 -121.125204665552,45.6070590988379,0 -121.174316011579,45.6005161602332,0 -121.192054666449,45.6132419265196,0 -121.203308118047,45.65728693477031,0 -121.214271714275,45.6656449638228,0 -121.276390902266,45.67833997203109,0 -121.319977744287,45.6966428366174,0 -121.367814251197,45.6996865954037,0 -121.422029028765,45.69060318812019,0 -121.442552169491,45.6949670880414,0 -121.529054611543,45.7195676794317,0 -121.706416861345,45.6887931706508,0 -121.758694096887,45.6897160514309,0 -121.81104103467,45.70068308952361,0 -121.888283498804,45.6768563701943,0 -121.926820689078,45.64202837395181,0 -121.972659451544,45.63577608415601,0 -122.000011553714,45.6178242910982,0 -122.082037518263,45.59050401243609,0 -122.244922293538,45.5481128647605,0 -122.303150328761,45.54309283450319,0 -122.356457483648,45.56617124306739,0 -122.437154197887,45.5647789119432,0 -122.565429806458,45.5948187685695,0 -122.651209200341,45.6068304566963,0 -122.696323093542,45.6310455505125,0 -122.760541289247,45.6493974102277,0 -122.772551033013,45.7276855424654,0 -122.764288518601,45.7605680280893,0 -122.788009565757,45.80034359183911,0 -122.784515918404,45.85044951848901,0 -122.784073650236,45.867886451725,0 -122.80622291556,45.90407242954801,0 -122.807741767287,45.9438901212784,0 -122.875417724143,46.0271833271028,0 -122.899757285914,46.0793296870295,0 -122.974169260528,46.11048344369091,0 -123.050596211575,46.1557362282158,0 -123.118554158558,46.1793104942643,0 -123.176196406189,46.18358645541681,0 -123.212437026773,46.1700060595961,0 -123.2487994158,46.1440203375679,0 -123.304717085176,46.1447375703216,0 -123.363556869282,46.1441540217556,0 -123.517029327465,46.2360915816934,0 -123.670246414445,46.1744984869019,0 -123.717160979572,46.1698937903229,0 -123.761414136743,46.20993937364921,0 -123.820978312563,46.1936496044227,0 -123.777083420864,46.1444302589353,0 -123.79409646853,46.1114485870021,0 -123.977340685096,46.2027060092254,0 -123.921187205303,46.0123233522242,0 -123.99650569635,45.941921948877,0 -123.956273973105,45.8710413769648,0 -123.976629080128,45.77548238687779,0 -123.936075916583,45.7028352141538,0 -123.953415554061,45.56852871598869,0 -123.859507215328,45.4990826750735,0 -123.892107877309,45.47405016149519,0 -123.936674662283,45.5079659141045,0 -123.980559908989,45.4850845032037,0 -123.956606852952,45.2929657161069,0 -124.007572643304,45.0361029238999,0 -124.075568095063,44.8147385261456,0 -124.054404868681,44.6621389771171,0 -124.118319319116,44.269515003332,0 -124.158325577179,43.8571182351837,0 -124.226004804165,43.6050048583583,0 -124.273993988679,43.4591053966655,0 -124.406076259743,43.3001978559795,0 -124.386772400864,43.2615889154952,0 -124.48534658488,42.9554539412089,0 -124.55961690573,42.8324573979919,0 -124.401078665635,42.6226992449568,0 -124.391763163986,42.5530276648599,0 -124.43781879263,42.4296087430031,0 -124.41506199748,42.2458945392605,0 -124.352246780966,42.0986772615023,0 -124.206444444404,41.9976479131656,0 -123.819146438568,41.9929487728793,0 -123.513204633148,41.9978329178357,0 -123.222102653242,42.0021917751363,0 -122.284705082491,42.0007645525751,0 -121.441508911406,41.9943345308753,0 + + + + + + + + Pennsylvania + empty + + +states.AREA: + 45360.118 + + +states.STATE_NAME: +Pennsylvania + + +states.STATE_FIPS: +42 + + +states.SUB_REGION: +Mid Atl + + +states.STATE_ABBR: +PA + + +states.POP2000: + 12281054 + + +states.POP2001: + 12295580 + + +states.POP00_SQMI: + 271 + + +states.DEN_0_100: + 76 + + +USStates.ID: + 2 + + +USStates.State_Name: +Pennsylvania + + +USStates.Date_Entered: +Dec. 12 1787 + + +USStates.Year_Entered: +1787 + + +USStates.Year_Settled: +1682 + +]]> + #Style_5 + + + -77.80284541879691,40.8748890585198,0 + + + + + + -77.4757933985606,39.7196232012639,0 -77.46443302065821,39.7200734721353,0 -77.2210508745187,39.7206793349451,0 -76.99681222135089,39.7208916577077,0 -76.79049160379709,39.7212561436081,0 -76.56983441657761,39.7202653698966,0 -76.23312186464131,39.7218535861041,0 -76.1392231665553,39.7222292808326,0 -75.7910945763195,39.7238660373362,0 -75.77492719598079,39.7245527846646,0 -75.7455920038355,39.7749293983367,0 -75.6947708516454,39.8204574523468,0 -75.6439943147472,39.8383065472094,0 -75.58344324964349,39.8401190417149,0 -75.4699861133481,39.8265474993808,0 -75.42046794786501,39.7989830990632,0 -75.3459322944925,39.8485165819253,0 -75.2537404363575,39.8455377977782,0 -75.24699556467731,39.8504053640948,0 -75.18560547799029,39.8774058180612,0 -75.14290121504629,39.8816020366923,0 -75.13580547674989,39.896887437334,0 -75.1471586589936,39.9347404217525,0 -75.1398645870707,39.9559194804779,0 -75.1109630715591,39.9766903310886,0 -75.0845869855288,39.9757328153928,0 -75.068045752986,39.9853915213067,0 -75.0456754051916,40.0076347106729,0 -74.9834853663626,40.0340738445933,0 -74.9562015034126,40.0580144791932,0 -74.8719241363401,40.0780565429363,0 -74.82902245973639,40.1161609854809,0 -74.74629414856111,40.1243586916003,0 -74.72548046618491,40.1493066691812,0 -74.7388247265733,40.1777256441007,0 -74.8427630831946,40.2484527598366,0 -74.88065957300969,40.2995916131031,0 -74.9211500156386,40.3140337315445,0 -74.93250296210471,40.3337744130392,0 -74.95018846398411,40.3454738484253,0 -74.97284102604201,40.4044479567097,0 -75.00047552385639,40.4086211095812,0 -75.02126612533969,40.4013236035019,0 -75.0574533454579,40.4201714565405,0 -75.07011862395299,40.4562539259114,0 -75.0636796381505,40.5210034591816,0 -75.0797859423332,40.5453559585684,0 -75.1245260580076,40.5647988294484,0 -75.1822820039866,40.5567991566105,0 -75.19757183103521,40.570684304811,0 -75.1935130035322,40.5837685125831,0 -75.20038753873099,40.6147432578734,0 -75.1979386117749,40.6342055156311,0 -75.2089177365681,40.6507380422203,0 -75.1840607041906,40.6697922959704,0 -75.20535502856001,40.6860615374668,0 -75.18775390484051,40.7238570177578,0 -75.1936441590094,40.7480035802995,0 -75.1703132780782,40.7748092438347,0 -75.13031892785111,40.7727077092163,0 -75.1005408698709,40.7916591517333,0 -75.0892112792862,40.8213906687984,0 -75.0995419880564,40.8392851002474,0 -75.0546190233306,40.8556733594649,0 -75.0564884580085,40.8720458535526,0 -75.0736857645488,40.884626384264,0 -75.0797362757265,40.9033486382513,0 -75.1355249350063,40.9629365183948,0 -75.1393018121957,40.9775274861343,0 -75.1166191635571,41.0002479024639,0 -75.0699790173252,41.0107160473555,0 -75.03525634669791,41.0282029114312,0 -75.00115157189779,41.0624855771134,0 -74.9662915599138,41.0826765927628,0 -74.98888296567171,41.0817609886453,0 -74.9845949956578,41.0993808071368,0 -74.9499944822667,41.1118548355739,0 -74.91476830628049,41.1411056945383,0 -74.8628866488672,41.2067713675358,0 -74.8664114931874,41.2268173199683,0 -74.8251959144138,41.2827060427999,0 -74.7941432935133,41.2952145361236,0 -74.7916634911863,41.3119646486324,0 -74.700062439729,41.3505731173044,0 -74.7052732398395,41.3750593363948,0 -74.7404375695009,41.4016358612695,0 -74.7400406430903,41.4220594630718,0 -74.7548266211957,41.4301464096857,0 -74.792799015071,41.4299171588691,0 -74.8640666499364,41.4471548184687,0 -74.8952792585073,41.4446711797979,0 -74.8985597400598,41.4618942446762,0 -74.9325644004893,41.484350685956,0 -74.9717879994631,41.4836026231296,0 -75.0148868316079,41.5395558959306,0 -75.0250873678455,41.565800906359,0 -75.0698653499134,41.6044779552895,0 -75.0724517137798,41.6130800694112,0 -75.0513249551697,41.6373147729593,0 -75.065400870215,41.7148368016377,0 -75.0569699647963,41.7267080970937,0 -75.0613185051632,41.7702603750835,0 -75.0971549734922,41.7790417898653,0 -75.09682675506321,41.7972073179534,0 -75.07984301881911,41.8141483463494,0 -75.11777744299,41.8369868194197,0 -75.1247508265953,41.8491823474776,0 -75.148280568261,41.8557893317759,0 -75.1712837916533,41.8678398536526,0 -75.25451546272871,41.8688733616359,0 -75.2836900262962,41.9476038545852,0 -75.3240658004094,41.9612749921534,0 -75.3456570669365,41.9928449489974,0 -75.38281319593381,41.9983566083877,0 -75.47973225649039,41.9963677005791,0 -76.1048345309617,41.9994987458506,0 -76.1450203202792,42.0006545080767,0 -76.5639147893755,42.0030114109064,0 -76.92839533835389,42.0025345979743,0 -76.96857370314299,42.0029809748211,0 -77.6128475772834,41.9988295851283,0 -77.745007937534,41.9973331826449,0 -78.2042620524614,41.9982004349665,0 -78.3050882311977,41.999420608423,0 -78.9185382675857,41.999846787447,0 -79.0594888967335,42.0011576593905,0 -79.6123674903386,42.0005849142235,0 -79.76165964707261,42.0031057341519,0 -79.7632349654056,42.2673270883975,0 -80.5205925694563,41.9868721098151,0 -80.5226439573086,41.8507747576586,0 -80.52392556258459,41.4951021493305,0 -80.51999623496189,41.4892885705201,0 -80.5229326934644,41.1296278146841,0 -80.52092443011161,40.8972705158399,0 -80.520306111211,40.8541688223624,0 -80.52199952847749,40.6372031779131,0 -80.52435768303791,40.4787848369009,0 -80.5235645344163,40.403033850236,0 -80.52604519018939,40.1625211281631,0 -80.52496218534981,40.0228253262192,0 -80.5246506803543,39.9584195634812,0 -80.5242694740401,39.7212089909504,0 -80.4290823326108,39.7198426041628,0 -79.9182684921867,39.7216669674993,0 -79.7651323185042,39.7218070815944,0 -79.480971113096,39.720274058077,0 -79.39661009295681,39.7193136035322,0 -78.9301730523848,39.7223369261357,0 -78.81775834663399,39.7231158128337,0 -78.384783030143,39.7237485696748,0 -78.3345500729087,39.7240962157241,0 -78.0959483136605,39.7254610687401,0 -77.4757933985606,39.7196232012639,0 + + + + + + + + Rhode Island + empty + + +states.AREA: + 1044.881 + + +states.STATE_NAME: +Rhode Island + + +states.STATE_FIPS: +44 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +RI + + +states.POP2000: + 1048319 + + +states.POP2001: + 1060126 + + +states.POP00_SQMI: + 1003 + + +states.DEN_0_100: + 11 + + +USStates.ID: + 13 + + +USStates.State_Name: +Rhode Island + + +USStates.Date_Entered: +May 29 1790 + + +USStates.Year_Entered: +1790 + + +USStates.Year_Settled: +1636 + +]]> + #Style_5 + + + -71.5610444257682,41.6817724921721,0 + + + + + + + -71.7901942031214,41.6013068793249,0 -71.80274343080561,41.4158290540058,0 -71.8459956537022,41.4038545416488,0 -71.8368696812943,41.3419614666217,0 -71.8477722040922,41.3253484832964,0 -71.86667844289499,41.3227696452715,0 -71.7222643227053,41.3272643121839,0 -71.4898880400565,41.3920853196251,0 -71.427318519639,41.4866893796323,0 -71.4192468515383,41.652212232924,0 -71.3690125475302,41.703291101903,0 -71.39358059765451,41.7611558353253,0 -71.3673874451962,41.7413502009833,0 -71.28400165201541,41.6795489704362,0 -71.22897615917781,41.7076939683673,0 -71.2666285816007,41.7497430522047,0 -71.31932779027051,41.7721958646078,0 -71.33979862314,41.7844255626959,0 -71.34548316624701,41.8131613833437,0 -71.3345427095385,41.8579036075383,0 -71.34249312021549,41.8757828914979,0 -71.333085950288,41.8960311596525,0 -71.38395315470341,41.8884397544727,0 -71.3824052822434,41.9792630768653,0 -71.3786442228911,42.0137133195162,0 -71.4974303691298,42.0092535031422,0 -71.7978316087619,42.0042748046851,0 -71.78824886219491,41.7216033953237,0 -71.792605218292,41.6417579304637,0 -71.7901942031214,41.6013068793249,0 + + + + + + + + + -71.1988086806704,41.6785003452843,0 -71.19993716526071,41.4633184834306,0 -71.1171327154705,41.4930619563068,0 -71.1412126344661,41.6552730544524,0 -71.1988086806704,41.6785003452843,0 + + + + + + + + + -71.26916945491151,41.6212683171833,0 -71.34952503325521,41.4458577414548,0 -71.2880071528611,41.4836193369166,0 -71.23867323404551,41.4748497781272,0 -71.219446800556,41.635642312712,0 -71.26916945491151,41.6212683171833,0 + + + + + + + + + South Carolina + empty + + +states.AREA: + 30867.398 + + +states.STATE_NAME: +South Carolina + + +states.STATE_FIPS: +45 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +SC + + +states.POP2000: + 4012012 + + +states.POP2001: + 4077608 + + +states.POP00_SQMI: + 130 + + +states.DEN_0_100: + 88 + + +USStates.ID: + 8 + + +USStates.State_Name: +South Carolina + + +USStates.Date_Entered: +May 23 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1670 + +]]> + #Style_5 + + + -80.9010200865815,33.9187422703577,0 + + + + + + + -81.7595935205582,33.1953809754874,0 -81.76340826403511,33.1698348857377,0 -81.740374666284,33.1446970762157,0 -81.7042792512713,33.1229388681766,0 -81.610962223749,33.087875452303,0 -81.59582519226061,33.07079003117,0 -81.56003498198071,33.0608149350319,0 -81.54765985031411,33.0436837254085,0 -81.5296007135576,33.0439278437875,0 -81.50874915476361,33.0127933490709,0 -81.49273484682441,33.0048133137248,0 -81.4978997781492,32.9596759183359,0 -81.509839970123,32.9554188973732,0 -81.5102366685686,32.9472214740899,0 -81.47704813306041,32.8975717263241,0 -81.4650317117614,32.8977282069894,0 -81.4832049987009,32.876092075685,0 -81.4585388413489,32.8714003875851,0 -81.4553190013329,32.8445766582975,0 -81.4323312938326,32.8416816085137,0 -81.4239616394502,32.831771535068,0 -81.4303092863297,32.8203050210012,0 -81.4208333313248,32.8094947304519,0 -81.4302403174263,32.7861535714108,0 -81.41607199831719,32.7567284399427,0 -81.4230377099309,32.7498126483616,0 -81.4076260787666,32.7418061601564,0 -81.4205354721022,32.7015669413645,0 -81.4071915250438,32.6867019963945,0 -81.3994783141749,32.6508153349079,0 -81.41210528286091,32.6256090136088,0 -81.3849063649096,32.5958830263814,0 -81.3662676134818,32.5883649179497,0 -81.36670254638879,32.5819794584472,0 -81.3514893657912,32.5835283490035,0 -81.3404038613665,32.5713602924434,0 -81.298983534041,32.567287009571,0 -81.2743023822226,32.5548140176008,0 -81.26798547886391,32.5339298482675,0 -81.23623978837119,32.520613973536,0 -81.19515724784431,32.4645607584348,0 -81.19992690502011,32.4203165559094,0 -81.17825274918771,32.3868294350367,0 -81.1791229158612,32.3717812943982,0 -81.15747907871371,32.3387404019195,0 -81.1418842567213,32.348467456337,0 -81.131890044888,32.3326183284591,0 -81.1240481751459,32.2766445515914,0 -81.1481731109993,32.2577131389355,0 -81.1476925517913,32.2244467846609,0 -81.1147177986615,32.1905932444351,0 -81.11911230742351,32.1176140300944,0 -81.10487575967311,32.1054460026813,0 -80.8929144216763,32.0681738057597,0 -80.78056151062511,32.2481238083211,0 -80.8218663898145,32.4007102648342,0 -80.86717706748961,32.5326950263867,0 -80.8305175056732,32.5162815805464,0 -80.7847865192432,32.505052086999,0 -80.79938185606611,32.4733077955364,0 -80.7419633539854,32.3602127098571,0 -80.67801448594059,32.2856655575355,0 -80.6260281028646,32.2728215099914,0 -80.4603924051366,32.3186854171277,0 -80.4427976569234,32.3735076541569,0 -80.4860719548133,32.4310310010487,0 -80.643557949165,32.4984607119708,0 -80.646411318821,32.5188798556612,0 -80.5388820475867,32.509865961027,0 -80.55039472026679,32.5578414282125,0 -80.4807072022539,32.5104341662154,0 -80.3998030228987,32.5049598760522,0 -80.4159926698028,32.6691608173312,0 -80.3908685404661,32.6554016082511,0 -80.3471740900825,32.5119554753402,0 -80.2906540711458,32.5040705242083,0 -80.21080292321901,32.5616008756391,0 -79.996617577777,32.6057873204983,0 -79.8963932808549,32.6774213766553,0 -79.89165509300059,32.7340299637097,0 -79.9479839110447,32.8107992428057,0 -79.9621193329391,32.9044100579085,0 -79.9302501550122,32.9142211471988,0 -79.9071411647255,32.8593897322583,0 -79.7998597618185,32.9299559811019,0 -79.90748591880571,32.7907075188098,0 -79.75232055781299,32.7942355699465,0 -79.60681206777061,32.8992437057638,0 -79.58764581861649,32.9251067078811,0 -79.617233758083,32.9809680557659,0 -79.5823576143392,33.0160128900269,0 -79.41061869513879,33.013868133398,0 -79.28787746034691,33.1046981970444,0 -79.2978339955968,33.1389615091697,0 -79.34875511220361,33.1549947700894,0 -79.2295625305206,33.1415057897189,0 -79.20191167318011,33.1836884836365,0 -79.2708459617929,33.2970378799416,0 -79.1581153144963,33.3424334672148,0 -79.1501499541409,33.3172563456719,0 -79.1208659857076,33.4307786153619,0 -79.0006955038877,33.5726293077796,0 -78.8548808347264,33.7163622029531,0 -78.58593108880341,33.8535316857414,0 -78.62259189772951,33.865708046154,0 -78.57945349610721,33.8821646134616,0 -78.6554531485329,33.9488449988485,0 -79.0742575899197,34.3047384944277,0 -79.4469133528043,34.6192221953644,0 -79.4557408419562,34.6342519700477,0 -79.6672823384891,34.8008202005653,0 -79.685738680014,34.8054127206548,0 -79.9197366317695,34.8080740704278,0 -80.3250654065352,34.8149167168925,0 -80.5613348947421,34.815379673307,0 -80.79985577870811,34.8162600736923,0 -80.785444630059,34.940788108541,0 -80.8399590540857,35.0021664433249,0 -80.8945103715547,35.0598808081622,0 -80.9275918870396,35.1013947091143,0 -81.0396852000525,35.0373453689435,0 -81.0653500212191,35.0666253067042,0 -81.02824058884551,35.1055509640026,0 -81.04883974027349,35.1321534001715,0 -81.04909901663881,35.1516727757939,0 -81.3226257414279,35.1638918108331,0 -81.36198018686321,35.1629867122026,0 -81.76518108877021,35.1825960728566,0 -81.87041657119239,35.1832378034331,0 -81.9712727030758,35.1884000260399,0 -82.2100104423684,35.1932410593964,0 -82.27816557714399,35.1951216082193,0 -82.3206088962679,35.1843038355905,0 -82.3507000333949,35.1927881586207,0 -82.3599623343986,35.1830646579415,0 -82.3712159851947,35.1828397610023,0 -82.38945068539501,35.2083565365976,0 -82.43776138231119,35.1696762171977,0 -82.4665859914405,35.1736172290209,0 -82.524479651378,35.1546774490548,0 -82.5698759075391,35.1496073738685,0 -82.65434412549401,35.1195740504075,0 -82.6859002249553,35.1215804311176,0 -82.6878846328013,35.0979182706584,0 -82.6972082635003,35.0913494747721,0 -82.7712011457841,35.0855376628965,0 -82.8875562556649,35.055473206413,0 -83.0071465788827,35.0242932065357,0 -83.1061569738507,35.000366708131,0 -83.1004503495987,34.9841622888642,0 -83.1155422841629,34.9546869901268,0 -83.12140170134001,34.9608933437966,0 -83.1273147785663,34.9543742120639,0 -83.1131011728063,34.9361251832685,0 -83.1256365359246,34.940790436291,0 -83.13756183146759,34.9304757693624,0 -83.1550259840766,34.9322800740411,0 -83.1583528037159,34.9176510672928,0 -83.1821802554349,34.9106474165588,0 -83.203513267742,34.8841701297206,0 -83.21942855420581,34.8891824860544,0 -83.2328036461865,34.8738209511595,0 -83.243073026274,34.8780818464701,0 -83.23568791389251,34.8623846921569,0 -83.25030657832789,34.8501663657462,0 -83.25042127245131,34.8397104674801,0 -83.26777101073991,34.8392299311095,0 -83.2701139291264,34.8150795057964,0 -83.3027537558249,34.8055316318054,0 -83.32269057154549,34.787244331982,0 -83.3234241306547,34.752233551772,0 -83.3503341394554,34.72738151575,0 -83.3506851506329,34.7096474786312,0 -83.3397900149061,34.6776926363039,0 -83.29889480454101,34.6629454181783,0 -83.23698727342099,34.6133215989917,0 -83.1648789222652,34.5989373632901,0 -83.1589505272632,34.5768318282397,0 -83.13736602628759,34.5678676740658,0 -83.1081211059023,34.5350165151609,0 -83.0790212167266,34.5189724434825,0 -83.0549948395099,34.4900615932447,0 -83.0079495911058,34.4708283883787,0 -82.9819628115439,34.4764970914664,0 -82.9050550411483,34.4779853553029,0 -82.8680428963264,34.4575429723072,0 -82.844092601526,34.4126753526629,0 -82.8364394858077,34.3710462423795,0 -82.80858305350149,34.3398998890232,0 -82.78287043804779,34.2905157146731,0 -82.76416996771751,34.2809601537556,0 -82.7580279876581,34.2333729594522,0 -82.74259356012441,34.2055536194311,0 -82.73578078298991,34.1697961502507,0 -82.66035530356881,34.1083560439036,0 -82.6029437979289,34.0346366848087,0 -82.5961385808407,34.0134202383713,0 -82.5736087006275,33.9689044112754,0 -82.576614784124,33.9592878315125,0 -82.51753847434971,33.931029734258,0 -82.4566308989782,33.8782248379062,0 -82.424525414299,33.8602546364245,0 -82.390596547794,33.8541402272832,0 -82.3657086388162,33.8360097346945,0 -82.3513115818956,33.8353919365428,0 -82.3111185523946,33.8039143524229,0 -82.3055105866775,33.7826480434626,0 -82.2662179171499,33.7615957491367,0 -82.2348981721706,33.6903395482787,0 -82.21420671543,33.6807345454544,0 -82.1921876394497,33.6238399454958,0 -82.1671320836866,33.6152152043502,0 -82.1389789104035,33.5939068648655,0 -82.1164029880357,33.5947766297079,0 -82.0656815446151,33.5738649217255,0 -82.0385431417392,33.5475058176817,0 -82.02014061005811,33.5387321304637,0 -81.99653471071351,33.5204905181363,0 -81.9809170141647,33.4907366765445,0 -81.93638328061149,33.4710196640405,0 -81.9166380824955,33.451332910189,0 -81.9272738095671,33.4361432282633,0 -81.91356363208369,33.4154417359506,0 -81.9403358095376,33.408163308089,0 -81.9258093500634,33.3765598081382,0 -81.9450663328463,33.3771470802287,0 -81.9367121514194,33.3504376050416,0 -81.9114125905005,33.3494956248163,0 -81.9120917492517,33.3321965848843,0 -81.893483278419,33.3352369460829,0 -81.87687401673379,33.3068376679828,0 -81.86554408069119,33.3156684726899,0 -81.8401072844714,33.3083447178855,0 -81.86071475702811,33.2970915898305,0 -81.826572899138,33.2694248257545,0 -81.8398406003094,33.2733079499958,0 -81.83679654832591,33.2606131041944,0 -81.85396307448509,33.2435008646337,0 -81.8107647427681,33.2264425091539,0 -81.8015635396811,33.2079267401357,0 -81.7798346609471,33.2173679140961,0 -81.7698781322982,33.2138814847346,0 -81.7595935205582,33.1953809754874,0 + + + + + + + + + -80.76780496320789,32.2586481788875,0 -80.81926682117491,32.1046981906837,0 -80.6666165553831,32.2201132440769,0 -80.7190834927722,32.2722047351394,0 -80.76780496320789,32.2586481788875,0 + + + + + + + + + South Dakota + empty + + +states.AREA: + 77195.055 + + +states.STATE_NAME: +South Dakota + + +states.STATE_FIPS: +46 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +SD + + +states.POP2000: + 754844 + + +states.POP2001: + 761023 + + +states.POP00_SQMI: + 10 + + +states.DEN_0_100: + 99 + + +USStates.ID: + 40 + + +USStates.State_Name: +South Dakota + + +USStates.Date_Entered: +Nov. 2 1889 + + +USStates.Year_Entered: +1889 + + +USStates.Year_Settled: +1859 + +]]> + #Style_5 + + + -100.235288914651,44.4333181443813,0 + + + + + + -102.788384569614,42.9953035756879,0 -102.086700926634,42.9898870255377,0 -101.231737199277,42.986842959129,0 -100.198142131775,42.9910950186342,0 -99.5327903284941,42.9923349632849,0 -99.2539717111969,42.9923894733936,0 -98.49765138471959,42.9917787984063,0 -98.45744405402161,42.9371607787996,0 -98.39120469509791,42.9201358627386,0 -98.31033957471961,42.881794760613,0 -98.16782662350252,42.839571032558,0 -98.14486904619621,42.8357947189847,0 -98.12311692331768,42.8202235933653,0 -98.12181986030079,42.8083601338589,0 -98.03314038302951,42.7691923357945,0 -97.9951447789843,42.766812278154,0 -97.96355840050168,42.7736899920002,0 -97.9294772231674,42.7923243687957,0 -97.8899410388902,42.8312716359345,0 -97.88865941868959,42.8558072875283,0 -97.8186429929595,42.8665874779999,0 -97.79702832835281,42.8495971363047,0 -97.77218644667239,42.8461639819758,0 -97.72524981688051,42.8580083761152,0 -97.68575200130461,42.8368370186066,0 -97.63497050078551,42.8612849600302,0 -97.5706541404348,42.8479907365578,0 -97.5061318942665,42.8601364739438,0 -97.4831590291241,42.8571570898554,0 -97.45726378408931,42.8504431026505,0 -97.38930603349222,42.8674331659047,0 -97.31141433937481,42.8617716796293,0 -97.2714575353654,42.8500146366722,0 -97.24318956492361,42.851826425825,0 -97.2244435756681,42.8412025319938,0 -97.21183172641902,42.81257352787,0 -97.1614227617155,42.7986194059191,0 -97.13046924564861,42.7739233575094,0 -97.0151396700717,42.7595420464778,0 -96.97959336609789,42.7583137573091,0 -96.97000293469461,42.752065431992,0 -96.9778689966012,42.727308194642,0 -96.97077348180611,42.7211474962424,0 -96.9082338249473,42.7316989698022,0 -96.81014011449622,42.704084462612,0 -96.8104375000235,42.6813412142201,0 -96.79934397881981,42.6700191686323,0 -96.72265874758661,42.6685919557678,0 -96.69906022203101,42.6577158497403,0 -96.694596777315,42.641163786393,0 -96.7152728921436,42.6219074766425,0 -96.714059707901,42.6123020324651,0 -96.6366723762755,42.5507317592446,0 -96.6292944799537,42.5226936780003,0 -96.60546730406971,42.5072362916062,0 -96.58475304897098,42.5182872197448,0 -96.54721557271041,42.5204993234568,0 -96.49470151052741,42.4884592175071,0 -96.4393947509647,42.4892408377156,0 -96.48024324420059,42.5171303049452,0 -96.48933750112329,42.5640279717967,0 -96.50094203466421,42.5738851852149,0 -96.4884981845359,42.5804806539459,0 -96.5128440201087,42.6297550903686,0 -96.5411650971666,42.6624053661285,0 -96.56303923913002,42.6685130300247,0 -96.6265407804251,42.70835472382,0 -96.640709192144,42.7486038180978,0 -96.63298055975349,42.7768356021372,0 -96.60087506115062,42.7995586266164,0 -96.5876454371957,42.8353813945249,0 -96.57312614067021,42.8343473823113,0 -96.5562111991181,42.8466606609486,0 -96.53751108901589,42.8969064560324,0 -96.54426346173439,42.9138663406581,0 -96.51493505198688,42.9523820814978,0 -96.5171478195164,42.9864580906085,0 -96.4990199957611,43.0120501064927,0 -96.52001038580228,43.051508664474,0 -96.47957324789761,43.0618840567811,0 -96.4620939419638,43.075582202376,0 -96.460804816306,43.0878728592997,0 -96.45150508806921,43.1263087732519,0 -96.4731145701049,43.2090821295544,0 -96.48724516897552,43.2179092697119,0 -96.55860577021591,43.2254892270262,0 -96.5669911071477,43.2396337909954,0 -96.55956777208898,43.2532633182258,0 -96.5707224965755,43.2636122914599,0 -96.5791308298904,43.2900740306766,0 -96.54056327347691,43.307659139748,0 -96.52289387443082,43.3569663195107,0 -96.52505354128429,43.3842252910413,0 -96.55770871701321,43.4007272259127,0 -96.58911295055751,43.4355391262275,0 -96.5837958978062,43.4819205535996,0 -96.59831542821901,43.4998490975791,0 -96.4604547078315,43.4997184756898,0 -96.45660233944199,43.8487418284865,0 -96.4573975061948,44.1990613946085,0 -96.4551061874746,44.5383431654349,0 -96.4567178119828,44.6288086832266,0 -96.45521726388,44.801347584114,0 -96.45607982498672,44.9719948297018,0 -96.45449660823299,45.2751954302209,0 -96.45760224516572,45.29885024157079,0 -96.47759206506849,45.32850936575391,0 -96.53254890239431,45.375132161552,0 -96.605084508902,45.39652440242141,0 -96.6931692082715,45.41063812193121,0 -96.73803233417799,45.45819529036351,0 -96.7692462014101,45.5174788689806,0 -96.8430871871886,45.5840902909474,0 -96.8549898493374,45.6091221067738,0 -96.83279582155808,45.6506868841235,0 -96.6573917688784,45.7389705623089,0 -96.6046107059596,45.80826424845279,0 -96.5879553105857,45.81785439182519,0 -96.56692152993792,45.9341104552974,0 -97.2333099148663,45.9365026737778,0 -97.97872180427929,45.9308221521123,0 -98.0147097100399,45.9314979679384,0 -98.7304369014178,45.938271038568,0 -99.0068328335466,45.939555550557,0 -99.7173457378766,45.9427610350303,0 -99.8757832426344,45.9435473182577,0 -100.514406747246,45.9403879984664,0 -102.002775042851,45.9425053768471,0 -102.94639700191,45.9416652376318,0 -102.994822935958,45.9411156292139,0 -104.048906344358,45.94299366714029,0 -104.049516843796,45.8830527625305,0 -104.043851417835,45.2128754685677,0 -104.043072277779,44.9978055394377,0 -104.059842395291,44.9973362616199,0 -104.059465130268,44.5743526100096,0 -104.061036140765,44.1818252843501,0 -104.059731381692,44.1458254687842,0 -104.059479420181,43.8529065675403,0 -104.057913943497,43.5037122621461,0 -104.059157507468,43.4791339417582,0 -104.056198856311,43.0030623563908,0 -103.501463853421,42.9986188303099,0 -103.005875236663,42.9993539301105,0 -102.788384569614,42.9953035756879,0 + + + + + + + + Tennessee + empty + + +states.AREA: + 42091.813 + + +states.STATE_NAME: +Tennessee + + +states.STATE_FIPS: +47 + + +states.SUB_REGION: +E S Cen + + +states.STATE_ABBR: +TN + + +states.POP2000: + 5689283 + + +states.POP2001: + 5773929 + + +states.POP00_SQMI: + 135 + + +states.DEN_0_100: + 88 + + +USStates.ID: + 16 + + +USStates.State_Name: +Tennessee + + +USStates.Date_Entered: +June 1 1796 + + +USStates.Year_Entered: +1796 + + +USStates.Year_Settled: +1769 + +]]> + #Style_5 + + + -86.33406700652679,35.8467078879312,0 + + + + + + -83.9546078411811,35.4555443092538,0 -83.9099126259032,35.4765642431448,0 -83.88112540362761,35.5106719867731,0 -83.8300980940741,35.519149329024,0 -83.77577472166,35.5526929432439,0 -83.6727662732265,35.5650623686071,0 -83.6137506282731,35.5718308753539,0 -83.56092262748621,35.5552687853695,0 -83.5056836752714,35.5596454175324,0 -83.4581731409302,35.5973733030352,0 -83.38697214372481,35.625313192169,0 -83.34290282423361,35.6533554944088,0 -83.2982915815667,35.6564233114235,0 -83.25899879194441,35.6911067450186,0 -83.25317743900131,35.7008036610277,0 -83.2437245319139,35.7183129960111,0 -83.1852205412256,35.7289833858793,0 -83.14353299786571,35.762781885683,0 -83.1180576454199,35.7639076045034,0 -83.0598287433232,35.7826768094939,0 -82.9868738379453,35.7740910698457,0 -82.9626197710807,35.7919519408503,0 -82.90668913774699,35.8723171942072,0 -82.91393874467821,35.9279697450405,0 -82.8958417812556,35.9484625785516,0 -82.85613712216021,35.9475285534576,0 -82.808535161382,35.9209751642818,0 -82.776308441769,35.9566773412235,0 -82.7734633268223,35.9876068957838,0 -82.7630949285561,35.999650015691,0 -82.6437553482122,36.0518290360149,0 -82.627908811062,36.0544461489244,0 -82.60426425649671,36.0430940692888,0 -82.59209423820271,36.0225560968714,0 -82.6056664709886,36.0036541966122,0 -82.59916490143139,35.9634057475641,0 -82.5540052334424,35.9562159294434,0 -82.50679391974769,35.9726503280575,0 -82.4750552128438,35.9932844245825,0 -82.4082829106663,36.075426604695,0 -82.373713428402,36.0988071608409,0 -82.31178368636429,36.1222605725301,0 -82.2621599370151,36.1204875660764,0 -82.2075845767752,36.1471275332235,0 -82.1539009606375,36.1397376377449,0 -82.1179256052358,36.0963748384003,0 -82.07760212353961,36.1002602555009,0 -82.02029495982831,36.1298343126582,0 -81.93295169915611,36.2634442248774,0 -81.9109940382706,36.2908752993263,0 -81.8304104053052,36.3347789811478,0 -81.7303246226996,36.329467183951,0 -81.70928987932049,36.3338502743492,0 -81.7402131763359,36.36198253433,0 -81.7409080103685,36.3919078496119,0 -81.6981148990988,36.4718999796584,0 -81.7026326964311,36.5194602645637,0 -81.669835031007,36.5897678106349,0 -81.6522721813828,36.6076738087692,0 -81.82889791679381,36.6115963662572,0 -81.9182941426859,36.613608797075,0 -81.9293033061132,36.5959506538262,0 -82.1541813077551,36.5951503366296,0 -82.2166613034295,36.5940723596186,0 -82.2968580172995,36.591800946144,0 -82.610838912091,36.5915455448388,0 -82.8498226210789,36.5910413307673,0 -82.98669718999391,36.5912897002248,0 -83.21092650566941,36.5880896531906,0 -83.2483883995918,36.5899354199083,0 -83.2750314351304,36.6004674572198,0 -83.4642098601591,36.5988401279562,0 -83.6751767779422,36.59870387507,0 -83.695608633552,36.5842494058307,0 -83.93559984653869,36.5912908042263,0 -84.0067465715187,36.5920881162625,0 -84.2544885948187,36.5954525757939,0 -84.2567774582751,36.5954983253834,0 -84.781870784101,36.6050761598833,0 -84.7910568723549,36.6054383594152,0 -84.9984611962111,36.6209826428203,0 -85.27249827730731,36.6256168039722,0 -85.3000946381889,36.6261009236939,0 -85.43737461759029,36.6181989810276,0 -85.78547638470199,36.62668526607,0 -85.9806106782448,36.633112657611,0 -86.19899252719389,36.6432906639691,0 -86.4154436379233,36.6509321366908,0 -86.5106681729942,36.6550742141329,0 -86.7705352136402,36.6521007800576,0 -87.06818400985961,36.6508112445931,0 -87.11270271488,36.6513077660911,0 -87.3466109435594,36.6492773804525,0 -87.6406553976253,36.6452169761114,0 -87.6935284355087,36.6444886692232,0 -87.8535374192374,36.6415224035434,0 -87.8707114200773,36.6694231918372,0 -88.0713410698433,36.6796832563404,0 -88.0410910767903,36.5827211925188,0 -88.0350796382961,36.5381999052039,0 -88.04276340428341,36.4965703400273,0 -88.4960256220043,36.4982076026975,0 -88.51268114387869,36.4995467004194,0 -88.81071857599009,36.4990458143214,0 -88.8263593294413,36.4999080492987,0 -88.83037252103129,36.4998546765866,0 -89.3466676017908,36.5026108089583,0 -89.41478465486919,36.5026793108435,0 -89.4485913110412,36.4564423473599,0 -89.4709078461365,36.4460169670384,0 -89.4920647554293,36.4655248350446,0 -89.4758977248385,36.4986089858186,0 -89.53327228843381,36.4981701441748,0 -89.51609800414001,36.4718722794559,0 -89.54525826945699,36.4410234483941,0 -89.52008048276861,36.4011227040991,0 -89.51940896703729,36.3559958746976,0 -89.54463245289639,36.3457879205654,0 -89.6057685745547,36.3548169544064,0 -89.6228741596169,36.3348474435652,0 -89.6068443100135,36.3081032648945,0 -89.5423129180961,36.2809319420685,0 -89.53545385006311,36.2646054281745,0 -89.5417253888929,36.2573462150993,0 -89.61815895506329,36.2409661142144,0 -89.6706661075896,36.2549618456545,0 -89.6946231434343,36.252203841158,0 -89.695737012858,36.2408629894403,0 -89.67686882352049,36.2209354567989,0 -89.6186393373327,36.1838116382208,0 -89.58953219289479,36.1520892518256,0 -89.5895015750109,36.1298614413181,0 -89.66746841817241,36.0993864640091,0 -89.6782489583147,36.0830408331631,0 -89.68892242543529,36.0258673598517,0 -89.7218363447502,35.9999509241088,0 -89.71321482606381,35.9663974567816,0 -89.66427092678561,35.9378944702657,0 -89.6454792006079,35.9138737361357,0 -89.64941603650951,35.8943619363869,0 -89.6647286073305,35.8857218407663,0 -89.71476351078169,35.9115011809885,0 -89.7380566602412,35.9150869770193,0 -89.7629902111739,35.8968873309185,0 -89.7663548523295,35.8841769773396,0 -89.757794357037,35.8714934051126,0 -89.7015183934478,35.8421131136063,0 -89.70090799570041,35.8275908326828,0 -89.7360192984694,35.807113985821,0 -89.7598771117723,35.817497369678,0 -89.79046432453561,35.8056299093077,0 -89.7999860359764,35.7743003646228,0 -89.8271246329774,35.7583474945228,0 -89.8599549641379,35.7482691273072,0 -89.9098681003284,35.7549139790981,0 -89.9511215579288,35.7343453953471,0 -89.95212103232031,35.7125639320478,0 -89.92982722280721,35.6763442141411,0 -89.89348727560559,35.6560505384628,0 -89.8652652485346,35.6733842535304,0 -89.8573304296374,35.6711412777364,0 -89.84928118822251,35.6453010408611,0 -89.8639224643906,35.6298250835587,0 -89.8775260946092,35.6334146146124,0 -89.9571336550073,35.6031836149856,0 -89.95811786552559,35.5786747060615,0 -89.92174743757781,35.5461398658448,0 -89.9312615752134,35.5293135817598,0 -89.94763474177211,35.5269828473763,0 -89.96235991331029,35.5323728966608,0 -89.9896739843436,35.5617568588755,0 -90.033140016861,35.5524950078149,0 -90.0409909024943,35.5429279718505,0 -90.04190641166632,35.5125217072751,0 -89.9996536673638,35.4455370247156,0 -90.0468735226389,35.4171869306731,0 -90.06038559986169,35.4134944197412,0 -90.07402733802461,35.4265900144844,0 -90.0749351519039,35.472426386111,0 -90.0823206223606,35.4782894580097,0 -90.10205086268928,35.4736509299937,0 -90.1373684773254,35.4426077096675,0 -90.172769972754,35.423801771155,0 -90.16790994055501,35.3843396369312,0 -90.14026019209219,35.3831303299536,0 -90.1325618654474,35.4076849496077,0 -90.11233571142539,35.4177745418272,0 -90.0852505380296,35.4183657399664,0 -90.0755685711721,35.4066128988494,0 -90.08722669387278,35.3815928956868,0 -90.10571329777039,35.3660674829239,0 -90.0987932747814,35.3456783695846,0 -90.10643821193109,35.3147724206286,0 -90.15708359885721,35.3063308609086,0 -90.16984033490409,35.2826536313127,0 -90.15221595869851,35.2641450857902,0 -90.1060339420871,35.2639351079375,0 -90.09019489682149,35.2544862571621,0 -90.06905343928681,35.2128267350657,0 -90.07339477195561,35.1919226486873,0 -90.0625227286411,35.1670054991279,0 -90.0646285866633,35.1474746627476,0 -90.08301595591442,35.1251401960811,0 -90.1438236047204,35.1366264117644,0 -90.16456841965839,35.1297030327121,0 -90.17843898741448,35.1087380390639,0 -90.16917671881551,35.077919742991,0 -90.1958038569539,35.0409907485114,0 -90.2919059359036,35.0485515081083,0 -90.3054483329108,35.0007887668604,0 -89.7172700655279,34.9992611903073,0 -89.64655874084551,35.0007332954087,0 -89.3423729736416,34.9998048697839,0 -89.1981347323638,35.0008837887335,0 -89.0061963915943,35.0002347214314,0 -88.8125482768171,35.0024385995065,0 -88.7850433913526,35.0031823096823,0 -88.3831462732763,35.0050415368605,0 -88.3517277419525,35.0038322749094,0 -88.1939935775637,35.0044536440488,0 -88.19496238143979,35.013543867744,0 -87.9860782705711,35.016033638512,0 -87.6078130632206,35.010546624408,0 -87.2227639290321,35.0073462053491,0 -87.2075884780608,35.0079603909194,0 -86.8334221243196,34.9982460560253,0 -86.7823722148413,34.9970753222994,0 -86.31305264552989,34.9952731531874,0 -86.3035004132153,34.9954638721614,0 -85.86956755804469,34.992384535053,0 -85.6089602162505,34.9901641616199,0 -85.4673839007084,34.9901237462044,0 -85.3599438878245,34.9899781417047,0 -85.2677172911793,34.9891498087636,0 -84.97279353781779,34.9926295267483,0 -84.96785715657791,34.9926829480827,0 -84.8004169251833,34.9928322796908,0 -84.7711343281899,34.9907572255424,0 -84.61868470932861,34.9887597674461,0 -84.3237734916339,34.989090556154,0 -84.2909595168732,35.210622280084,0 -84.22586311709139,35.2616828718238,0 -84.1796426644509,35.2410694819878,0 -84.10156069006141,35.2456337418504,0 -84.0426897213918,35.2726584543483,0 -84.03077168910571,35.2926057594707,0 -84.02911525821651,35.3253739821258,0 -84.00621731838029,35.3729437031099,0 -84.01255674537021,35.4077068120234,0 -83.9546078411811,35.4555443092538,0 + + + + + + + + Texas + empty + + +states.AREA: + 264435.873 + + +states.STATE_NAME: +Texas + + +states.STATE_FIPS: +48 + + +states.SUB_REGION: +W S Cen + + +states.STATE_ABBR: +TX + + +states.POP2000: + 20851820 + + +states.POP2001: + 21355648 + + +states.POP00_SQMI: + 79 + + +states.DEN_0_100: + 93 + + +USStates.ID: + 28 + + +USStates.State_Name: +Texas + + +USStates.Date_Entered: +Dec. 29 1845 + + +USStates.Year_Entered: +1845 + + +USStates.Year_Settled: +1682 + +]]> + #Style_5 + + + -99.35209639268049,31.4911603586956,0 + + + + + + + -105.998886788462,31.3939400532755,0 -105.770249888887,31.1709088557221,0 -105.603733779011,31.0865586055778,0 -105.554896847903,30.9984186198314,0 -105.409575297759,30.9026451075813,0 -105.390821398517,30.8532172879141,0 -105.314288579451,30.8166446407658,0 -105.288103873955,30.8320861368967,0 -105.258691517007,30.7977908877393,0 -105.214844038146,30.8122235644227,0 -105.061059930982,30.6880108106866,0 -104.99803900743,30.6844748196833,0 -104.98742571177,30.6414670328309,0 -104.891169172066,30.57070041737,0 -104.8534855959,30.3924114324589,0 -104.806959955043,30.3765961237763,0 -104.814444569323,30.3506186956335,0 -104.703097368089,30.2386416361776,0 -104.675240765519,30.1491204273314,0 -104.696977256685,30.0574625424375,0 -104.674852032393,29.9094488587845,0 -104.578041188337,29.8081070626151,0 -104.535729710531,29.6796427818002,0 -104.378073901927,29.550794562609,0 -104.205212134968,29.484228655677,0 -104.164858917236,29.4009054696296,0 -104.046105172216,29.3283134853617,0 -103.787463066664,29.2674577249596,0 -103.768229005879,29.2814382191825,0 -103.782625402505,29.2299947219666,0 -103.740319535336,29.2305480722655,0 -103.720779184638,29.1908323650897,0 -103.526696559056,29.1468485175655,0 -103.474531520355,29.0723381982261,0 -103.375903493966,29.0323145912752,0 -103.335970609727,29.0505449586515,0 -103.280800498472,28.986582581697,0 -103.267037226116,29.0076621436612,0 -103.153911459774,28.9788916377662,0 -102.988539685125,29.1910675704443,0 -102.866609489705,29.2292413619301,0 -102.908763863716,29.2694066686299,0 -102.883448659687,29.3535723996355,0 -102.822639900114,29.4120451183749,0 -102.805160372829,29.5303438337622,0 -102.676790491312,29.7444187937638,0 -102.638039455764,29.7325326198343,0 -102.576926007302,29.7784417359023,0 -102.552373669738,29.7496948486705,0 -102.503521154951,29.7856497327394,0 -102.385215376362,29.7681417980141,0 -102.36798040149,29.84548330596,0 -102.32475091159,29.8803092257321,0 -102.06440276136,29.7847688600544,0 -101.973724344483,29.8189713656394,0 -101.924627338118,29.7887011469021,0 -101.819498685539,29.8143248505936,0 -101.805604731495,29.7801996565594,0 -101.759491213846,29.7873677525572,0 -101.640064539983,29.7571633637573,0 -101.581881251252,29.7653539748678,0 -101.54434416232,29.8103225598584,0 -101.538735789529,29.7632221477057,0 -101.470855805519,29.7888951834932,0 -101.44881372174,29.7607917300542,0 -101.401663348137,29.7701115332373,0 -101.416487229422,29.7456408609946,0 -101.368786706054,29.6573728602722,0 -101.306247295965,29.6526439704618,0 -101.309313731437,29.5811248028441,0 -101.254968894261,29.6289641670434,0 -101.261811592181,29.5266920080284,0 -101.067737701075,29.4737763187657,0 -101.009431431376,29.3734824994166,0 -100.797357397044,29.242736284625,0 -100.768974533432,29.166807434011,0 -100.669132304446,29.0803127270354,0 -100.647584957274,28.9225956252143,0 -100.590148889683,28.8944694499509,0 -100.498264037925,28.6612437055942,0 -100.403526636741,28.58999176333471,0 -100.419884477811,28.5444513151021,0 -100.346151756506,28.5010724482254,0 -100.377120196208,28.4789132908516,0 -100.351918855023,28.3944470556125,0 -100.293238864271,28.3206276118098,0 -100.298266448713,28.2806220934998,0 -100.223808569714,28.2417272280185,0 -100.214416160267,28.2022063344331,0 -100.097262502277,28.1545554784828,0 -99.9936434835125,28.0037396210839,0 -99.9421891234519,27.9871619266799,0 -99.87506302163409,27.7979720547546,0 -99.81605543330491,27.780394853251,0 -99.71481792474481,27.6618491136167,0 -99.5495069890073,27.6129196537058,0 -99.52706143498681,27.5045797789624,0 -99.49081318260561,27.4910514590438,0 -99.5439078647283,27.3189538622377,0 -99.4655901429547,27.2701865593849,0 -99.4374750068324,27.1995024660583,0 -99.45538138266301,27.02895816072,0 -99.39303262279272,26.9958615454895,0 -99.3908350467963,26.946943736737,0 -99.28583699475381,26.8576787339843,0 -99.166128451557,26.5802207110304,0 -99.1689892572283,26.546061522653,0 -99.1017807615211,26.4886767225061,0 -99.10703648935828,26.4198691472919,0 -98.93957665579281,26.395650906325,0 -98.9092032001293,26.3606715040819,0 -98.82013643841999,26.3754137550411,0 -98.6782190476933,26.2424046870249,0 -98.60026833967811,26.26080290009291,0 -98.4888153488358,26.20189486402211,0 -98.45368891498261,26.2212616175586,0 -98.3848156511224,26.1563832689147,0 -98.34748407648098,26.1590326088229,0 -98.3282265328466,26.1120007731281,0 -98.2925660443962,26.1331622891806,0 -98.27164562872692,26.1212494310257,0 -98.2922376888539,26.0984591491757,0 -98.2009795725821,26.0557321449947,0 -98.0834982466193,26.0661133226933,0 -98.076631552846,26.0349824709946,0 -98.0403525736578,26.05975051536,0 -97.86770787691731,26.060496076676,0 -97.64824031176831,26.0238010583669,0 -97.613189147238,25.9623589352769,0 -97.5752010185558,25.9545294009988,0 -97.59035311096469,25.93358905995,0 -97.43460696534029,25.8455574212196,0 -97.38589888751351,25.8457216612063,0 -97.381246025134,25.9173794523292,0 -97.3046898126925,25.9390222061254,0 -97.30739881105831,25.9654823876793,0 -97.1724747739236,25.9549273692482,0 -97.21334788232899,26.0094252639667,0 -97.27657531882151,26.0026333041195,0 -97.253373235331,26.0686720122691,0 -97.3536197117772,26.1828026418389,0 -97.36895489793881,26.3594093860221,0 -97.421446845874,26.3854076588257,0 -97.47496824481961,26.4771508314201,0 -97.4261157816407,26.5185697635011,0 -97.45195800721,26.6013268690884,0 -97.4958376530227,26.7941173175194,0 -97.5583173258959,26.8463868636367,0 -97.5688317865217,26.9781886133612,0 -97.47926025139741,26.9968380423725,0 -97.50376733150851,27.0818686103316,0 -97.4274812696915,27.2654551025798,0 -97.5484245684469,27.2305300181157,0 -97.785017752344,27.2880402911338,0 -97.680279172266,27.2946930806235,0 -97.7503494379711,27.41998295344001,0 -97.60038270114281,27.3004551454618,0 -97.52865055517302,27.3444204003037,0 -97.50780849161589,27.4395317363744,0 -97.50070316236901,27.31998796117,0 -97.4125283681046,27.3213449992806,0 -97.3317271301908,27.5626365036553,0 -97.2500614178358,27.6891429260905,0 -97.3094801183865,27.7081729278505,0 -97.34777231556089,27.631751940673,0 -97.3994852497549,27.6334982918403,0 -97.3536318222789,27.6411127473255,0 -97.32028341001322,27.6909444328169,0 -97.34977916611901,27.7156375087417,0 -97.31806332761479,27.7125347515202,0 -97.3968304284502,27.771146058486,0 -97.3888121386094,27.8317301437746,0 -97.48008361430421,27.8205851258607,0 -97.4998059418148,27.843544507544,0 -97.52196970271932,27.8639272343414,0 -97.49695266683359,27.875769577501,0 -97.4796260008364,27.8532640938896,0 -97.34588886647171,27.8734803945651,0 -97.36131551744769,27.8402577581927,0 -97.2837543356676,27.871447851614,0 -97.21360863775901,27.831414891185,0 -97.247292773262,27.8226243834861,0 -97.19573263835041,27.8125254347352,0 -97.11489131329812,27.9156868650475,0 -97.0240708445034,28.0205324937316,0 -97.0266730261927,28.1080412994183,0 -97.1233456677049,28.0545599929136,0 -97.2364829550522,28.0408144571822,0 -97.2705637411735,28.026227534241,0 -97.2415031844307,28.0489470441677,0 -97.26055404702331,28.0650176013673,0 -97.15732764553079,28.1166719542078,0 -97.1682608968738,28.1597494288829,0 -97.1356831071198,28.16209906940311,0 -97.13210471600911,28.1307169703604,0 -97.02383542777901,28.200083644241,0 -97.0338830492678,28.1376877357,0 -96.97537228865649,28.1153365454804,0 -96.94133722044512,28.1870591366451,0 -96.97557119097891,28.2110370456823,0 -96.9129859808147,28.2570826042713,0 -96.9511713661577,28.1146461634749,0 -96.80395175524539,28.2117340429668,0 -96.77819434955541,28.2296358081918,0 -96.79359828581748,28.2716569135883,0 -96.7865329456052,28.3131424085737,0 -96.78849341263761,28.3527529951086,0 -96.85375652074021,28.4052778154343,0 -96.7756219578977,28.3919115743004,0 -96.75936312199468,28.4111923622987,0 -96.7885994327517,28.4465344336046,0 -96.8241380852668,28.4499199129354,0 -96.78735554254018,28.4777853740781,0 -96.7410292653767,28.4037386946306,0 -96.70407154978371,28.3961667887133,0 -96.7026224627333,28.340479673374,0 -96.66156794524581,28.3065470479745,0 -96.39097558609291,28.4343391365105,0 -96.4767541355929,28.4997330365345,0 -96.51875543375361,28.461106535662,0 -96.56344956637381,28.4699067019672,0 -96.48683274231161,28.5065001250736,0 -96.5669583702508,28.5743745840578,0 -96.61059981859901,28.559217321823,0 -96.60696006493581,28.623908697185,0 -96.66026772909071,28.679347884998,0 -96.64677072215611,28.7144133763303,0 -96.59175364451042,28.7176308540699,0 -96.5767387632856,28.6909612420408,0 -96.5724654190595,28.8084420119664,0 -96.57081055481881,28.6921132334215,0 -96.57065069493361,28.6365406498669,0 -96.511986586175,28.6498153227204,0 -96.51214706660439,28.6084558879438,0 -96.48352091748379,28.5983299965887,0 -96.45463494593901,28.6562061770284,0 -96.4374077744685,28.5972653712369,0 -96.49145593618438,28.5572205009388,0 -96.3756462595652,28.6103621446828,0 -96.4190354461777,28.6389373387445,0 -96.40364595833511,28.7197637757365,0 -96.4325088576923,28.6975195233914,0 -96.44992679444501,28.7553045499191,0 -96.42733588908899,28.7122837074932,0 -96.3929797404207,28.7262979792536,0 -96.39202648343499,28.6705234915587,0 -96.3644078276204,28.6182543536492,0 -96.32640475868951,28.6343609440377,0 -96.2706241672889,28.7092493537704,0 -96.286219499452,28.6619950140313,0 -96.21241845685462,28.686989060082,0 -96.15130480526069,28.762937961925,0 -96.2407017376168,28.6351307032347,0 -96.1577155429507,28.6115026697808,0 -96.2392754088593,28.597389673791,0 -96.2378336984528,28.5715957691863,0 -95.9839904637619,28.6534017453567,0 -95.9918879041054,28.5966948669979,0 -96.20682817950151,28.4886634867042,0 -95.702384532802,28.7192477688994,0 -95.956387443742,28.6229421712341,0 -95.93754933918578,28.6907206174074,0 -95.78659263162341,28.7391325634167,0 -95.6715524880469,28.7529411275506,0 -95.68326432879918,28.7272140994852,0 -95.526807295461,28.8034966858832,0 -95.2486180989702,28.9786376443803,0 -95.1975516120674,29.1054653592137,0 -95.1649880473308,29.1177902182052,0 -95.1607301284392,29.200271435455,0 -95.0665723369123,29.1961168125456,0 -94.9513347743744,29.3261575810117,0 -94.89898762873821,29.3090112320655,0 -94.89167182115079,29.3940648612642,0 -94.8155505841499,29.3711662202519,0 -94.8913361818901,29.399557852187,0 -94.917193668702,29.448054371758,0 -94.9136455345915,29.4203453053088,0 -94.95270941314649,29.4244668140235,0 -94.94395872879551,29.4649127898122,0 -94.98301490427208,29.4607585716531,0 -94.9113576255404,29.500563943061,0 -95.014327744272,29.5594945471536,0 -94.9895394805847,29.6799286340995,0 -95.0406046189096,29.7118061561835,0 -95.0884725306271,29.8042054500491,0 -94.93279015255001,29.6824361137282,0 -94.88736314892159,29.6687658980771,0 -94.82961479354709,29.7600810982356,0 -94.7359230458939,29.7932076306622,0 -94.700475733541,29.7547908848552,0 -94.7066170212868,29.6587417934681,0 -94.78828370369661,29.5387865888792,0 -94.56463023087891,29.579227539862,0 -94.53389063357039,29.5542136466136,0 -94.51100191502849,29.54537730386861,0 -94.4699853511928,29.5570096005195,0 -94.5014725492762,29.5177541844844,0 -94.57288529817171,29.5332829576669,0 -94.6821097599082,29.4753428732052,0 -94.7854441234656,29.3834950378891,0 -94.76674368431119,29.3642276698397,0 -94.6827121202049,29.4331383341323,0 -94.3771944609298,29.5521986283419,0 -94.35718211256631,29.5601289522835,0 -94.0655815212201,29.6742968900915,0 -93.8351251032903,29.6747919644726,0 -93.9519366253128,29.8185790610628,0 -93.8565002359247,29.9648149949583,0 -93.85744694552959,29.9908668928178,0 -93.76036751582601,30.0061764030649,0 -93.71264390010309,30.0607310199356,0 -93.71602374974782,30.0958787991307,0 -93.70854664486501,30.1149499108334,0 -93.6970869015193,30.1181389021031,0 -93.69880351731489,30.1414346905316,0 -93.68612303875779,30.1414613621588,0 -93.6833076816481,30.1484401694217,0 -93.6998258674993,30.1510169781729,0 -93.6963314287414,30.1758843689492,0 -93.7045256592734,30.1810684459083,0 -93.71500869987879,30.2205134179473,0 -93.70752396935821,30.2395787754494,0 -93.6993768807844,30.2975935292891,0 -93.72994140928799,30.3051219729382,0 -93.7593470787815,30.3410771727413,0 -93.75950766664521,30.3543502302936,0 -93.74800248894391,30.3676155313151,0 -93.7551137307405,30.3819930042287,0 -93.7427315855636,30.4090272375555,0 -93.7217050902489,30.4331831686188,0 -93.6967413311132,30.4428357517593,0 -93.70359329230058,30.4627158297037,0 -93.6981459876763,30.4702496513421,0 -93.7150231758618,30.4888310205347,0 -93.70744722226021,30.4964430039086,0 -93.71480998363299,30.5053160515853,0 -93.70563196785041,30.5230599502648,0 -93.73547935399731,30.5457197108965,0 -93.71805386498711,30.5683558276656,0 -93.7179855982276,30.5875818830799,0 -93.6935940747548,30.5990370562763,0 -93.6717582009901,30.598033475394,0 -93.69286961844639,30.6159971853325,0 -93.6847595364861,30.62362646596801,0 -93.6930532338358,30.6402433971316,0 -93.6781450325558,30.6398941531481,0 -93.6601628136184,30.6730608176726,0 -93.61778080972511,30.6870030300823,0 -93.61258556438951,30.7105301555471,0 -93.6179648833938,30.7327489593371,0 -93.6078251665993,30.7322109750573,0 -93.61862893538731,30.7459898029865,0 -93.5853487574266,30.772384673359,0 -93.5820450640059,30.8022395755774,0 -93.5508552163389,30.8285427515982,0 -93.55581440053979,30.8425404652408,0 -93.5666178980145,30.8453462320886,0 -93.55297612475269,30.8604804672822,0 -93.56101768200369,30.8720769365654,0 -93.56867012587068,30.886431356764,0 -93.56464927132871,30.9021283630613,0 -93.5466891601929,30.9055307409998,0 -93.5497943369345,30.9250805769799,0 -93.5301557030665,30.9271668885028,0 -93.5257915242765,30.9360147750055,0 -93.53236051643211,30.9609260649172,0 -93.53751052673201,30.95707912219491,0 -93.5488480918319,30.9703845889675,0 -93.57262960901809,30.9763719448991,0 -93.5611240812853,30.99188382509841,0 -93.571019691156,30.9974647272144,0 -93.5680671206996,31.0131177730676,0 -93.5651144950651,31.0182559489662,0 -93.54729164502071,31.0143343101026,0 -93.5073888583872,31.0390998146532,0 -93.52591374615082,31.0571716007113,0 -93.51717031814428,31.0748615453994,0 -93.5442784766347,31.0825635248279,0 -93.54329435054569,31.0949417830783,0 -93.560155897223,31.1007267939647,0 -93.5568523341309,31.1095326773987,0 -93.53526050690408,31.1162612988914,0 -93.52826420267931,31.1261142412602,0 -93.53767923010742,31.1326296405497,0 -93.5443630058743,31.1593545819132,0 -93.52850100567309,31.16313081887,0 -93.53719127433351,31.17652768282541,0 -93.5271048967346,31.1782631971006,0 -93.52909629329709,31.1859610191746,0 -93.55076452872321,31.19111664787181,0 -93.5771171728735,31.1723283005144,0 -93.59411608931301,31.1803867599593,0 -93.6030963428191,31.1992536873053,0 -93.590721311811,31.229873054352,0 -93.61117651049739,31.2423735819701,0 -93.61205418900251,31.2702180322556,0 -93.6166320369568,31.2759895241098,0 -93.6310062786126,31.274088104753,0 -93.6457698113848,31.290447047048,0 -93.65630632190602,31.2868557345123,0 -93.68176670818659,31.3128637606543,0 -93.6772195877398,31.3285702210106,0 -93.6350357193475,31.3740089507347,0 -93.6612511619287,31.3725768736666,0 -93.6641964541721,31.3985102835404,0 -93.687672937394,31.4063113595588,0 -93.6946236330265,31.41610345391331,0 -93.6963098944214,31.4279172119793,0 -93.6871849424459,31.4383118184741,0 -93.70210859382031,31.4464313212695,0 -93.6985991018577,31.4616380816002,0 -93.72696607966452,31.4596548516254,0 -93.7514269339373,31.4856800971189,0 -93.75061823711359,31.4907363154173,0 -93.71917654856812,31.4955823387378,0 -93.70597743151249,31.5207469124279,0 -93.7318419000288,31.5220556426776,0 -93.74772687918352,31.5378958623322,0 -93.7634896740234,31.5309019449363,0 -93.78031303899668,31.5339136421144,0 -93.81070199496421,31.5592406874184,0 -93.81650822499059,31.5772874839387,0 -93.83280517658469,31.5903601395257,0 -93.8357655763902,31.6153647157252,0 -93.81977388303059,31.6182675045639,0 -93.814913937485,31.6481413307007,0 -93.8066129278975,31.6539413361717,0 -93.81203005382371,31.6747403534088,0 -93.7924526022363,31.7115680299756,0 -93.8089554592767,31.7077383245665,0 -93.8151354745431,31.7125237592659,0 -93.8101762985126,31.7305247069651,0 -93.83134856148179,31.7534524078687,0 -93.82225394974822,31.7748083120293,0 -93.8345145984519,31.8021876362787,0 -93.8650100628645,31.8174424499476,0 -93.87759108418349,31.8502823749578,0 -93.88145152988172,31.8715888085537,0 -93.8927128271358,31.8702347315503,0 -93.8994496012559,31.8946233843507,0 -93.9236506911527,31.8927620881712,0 -93.9181114839259,31.9098704820605,0 -93.9359189554272,31.9096246079882,0 -93.97017571506122,31.923332670499,0 -93.977400745224,31.9463271084149,0 -94.00458470012971,31.9781086259495,0 -94.01007792557169,31.9893006514689,0 -94.0352556158215,31.9946792606335,0 -94.034954991874,32.1996091989861,0 -94.0354184994672,32.3893811626287,0 -94.04038263770489,32.6949577639329,0 -94.0417854266628,32.88248532849,0 -94.03893174127671,33.0234224077489,0 -94.0366915600887,33.2704528989066,0 -94.03611649002102,33.5560347014808,0 -94.06162268858441,33.5773354007315,0 -94.0868464522719,33.5840756635432,0 -94.0988935992895,33.5731199456262,0 -94.15536074810458,33.5672068241928,0 -94.15970992753351,33.5938939861439,0 -94.2055412868951,33.5852000838157,0 -94.21108015408862,33.5581084763103,0 -94.2355638087854,33.5616558979989,0 -94.22323450525521,33.5858408096426,0 -94.23743339566499,33.5925430254688,0 -94.2747420062796,33.5618574981634,0 -94.2722778801038,33.5847263352945,0 -94.2791827367037,33.5894525566594,0 -94.29901964868971,33.5799728047754,0 -94.3025824334982,33.5570543333588,0 -94.3289505742182,33.5732546607845,0 -94.37095896843239,33.5478024921997,0 -94.39546544841208,33.5604209193152,0 -94.3725080674424,33.572780843886,0 -94.3708297502542,33.5901604561683,0 -94.3793139265706,33.5934447272787,0 -94.39361925175989,33.5750768821217,0 -94.4067726989127,33.573604181729,0 -94.4286699913841,33.5972585244972,0 -94.4435324861232,33.5966212153736,0 -94.45175731380159,33.6044640316868,0 -94.43653636903311,33.6169611431123,0 -94.43611697644781,33.6365609097961,0 -94.4766912623089,33.6320818342933,0 -94.50081601724669,33.6231627285535,0 -94.51076509594741,33.6309253877013,0 -94.5252611988716,33.6211366353993,0 -94.51819645594929,33.6431245606389,0 -94.55040081551948,33.632809011294,0 -94.56235640260989,33.6356506902792,0 -94.5624022483444,33.6429443355883,0 -94.54213813675099,33.6483615972293,0 -94.54562499154091,33.6617357579767,0 -94.57666964564912,33.6522708940353,0 -94.58859470157501,33.6555626943339,0 -94.58536744514042,33.6622460583057,0 -94.5654161185401,33.6631276811661,0 -94.5609300134862,33.672027401142,0 -94.578714527779,33.6705850642858,0 -94.5853141750945,33.6790954380738,0 -94.60115305801639,33.6657208732496,0 -94.63194611400361,33.6840114940994,0 -94.63897287047551,33.6702175285534,0 -94.65874868980602,33.663850430669,0 -94.6696360986615,33.6661733181553,0 -94.6681636112439,33.671571088102,0 -94.6445348646206,33.6777628005194,0 -94.65568935572141,33.6924032061402,0 -94.66866725489341,33.6966486225785,0 -94.69119732857141,33.6903997057713,0 -94.7418652471894,33.7013771094591,0 -94.7546906224197,33.7078808674656,0 -94.74232301585609,33.719157166445,0 -94.762930719398,33.7169062835784,0 -94.74998307234321,33.7368149801429,0 -94.7833707776319,33.7337745678945,0 -94.782241592951,33.742376603757,0 -94.76438804719702,33.7529509233106,0 -94.7837218171255,33.7533704682922,0 -94.80343699443648,33.7396910082834,0 -94.81937555938541,33.7495136716343,0 -94.8580964984281,33.7494296047539,0 -94.8818557435802,33.7750719362582,0 -94.9140991208061,33.7897049819208,0 -94.90876604933241,33.8035866991384,0 -94.9184559016621,33.816304855563,0 -94.94062024969412,33.8159156370392,0 -94.94010923140679,33.8409324203509,0 -94.9601296578001,33.8481840346416,0 -94.96892682868412,33.8663228494762,0 -94.9895041088505,33.8562900729299,0 -95.0129958687657,33.8700533810898,0 -95.0375860361542,33.8665590741676,0 -95.04308708832051,33.884552938792,0 -95.06336665131251,33.8968018383347,0 -95.063702501233,33.9177558985992,0 -95.0838291836962,33.8885696946472,0 -95.0899405612146,33.8970230129184,0 -95.08249423367511,33.918560731634,0 -95.09558666926452,33.9218451265293,0 -95.11945200414949,33.9123884529818,0 -95.12690617519908,33.9172521426231,0 -95.12819579812822,33.9409756193022,0 -95.14854400728719,33.9436534386509,0 -95.2342706406141,33.9649694417437,0 -95.2515208198696,33.9365500995153,0 -95.2512228467789,33.9051287029656,0 -95.26384964793752,33.8979074295118,0 -95.27758309673119,33.9180449387556,0 -95.2866618452793,33.8870087194903,0 -95.30218796775361,33.8867301071625,0 -95.3364600240519,33.8972201452204,0 -95.33027212314218,33.8710248450986,0 -95.4518412564926,33.8658586121364,0 -95.46835947773379,33.8865378582277,0 -95.49909123242928,33.881822624598,0 -95.5131223838212,33.8978402854978,0 -95.5442741981764,33.8858464269672,0 -95.54773054262731,33.8932621235845,0 -95.52697025126849,33.8979201785035,0 -95.51981372505441,33.9067474752702,0 -95.5465557208432,33.9041378125257,0 -95.5630133970639,33.9361771034426,0 -95.60631201461909,33.944656465691,0 -95.6150707735962,33.9367942616433,0 -95.6132241254837,33.9203415546903,0 -95.63373271524731,33.9202077191712,0 -95.699950264818,33.8949267760162,0 -95.7471094802783,33.9034976338912,0 -95.76094194954548,33.8935411571276,0 -95.7644970987573,33.8791063735621,0 -95.7687615327479,33.8515033166903,0 -95.7957252595447,33.8647743475285,0 -95.82622079304791,33.8431258316945,0 -95.8468057390447,33.8411382296162,0 -95.93332795033651,33.8906288422977,0 -95.94332288009811,33.8900718041244,0 -95.959016632946,33.8651391176183,0 -95.9776482488988,33.8580513457492,0 -95.99446458602881,33.8754764816195,0 -96.0028724620981,33.8734890044101,0 -96.0020480603943,33.8570784239774,0 -96.0143238316783,33.8443070387318,0 -96.0270045674164,33.8561209977346,0 -96.04822986488121,33.8413774764797,0 -96.09177990185232,33.8446772338064,0 -96.10970158601782,33.8293577291253,0 -96.1492232448427,33.83569011079,0 -96.16946454166531,33.8290832377136,0 -96.18338837503551,33.8158923202814,0 -96.1809848937133,33.8085339108482,0 -96.15477738441462,33.824044081131,0 -96.1416772177066,33.8204201506892,0 -96.16157487608,33.7983297326873,0 -96.1690742422207,33.769456890815,0 -96.18728601066199,33.758684486151,0 -96.21280716638501,33.7567925567755,0 -96.27833836590121,33.7734894901909,0 -96.28994278991731,33.7620342928024,0 -96.3010507089615,33.7141533419418,0 -96.31653860767391,33.701904716619,0 -96.34785055840121,33.705631801563,0 -96.3710832530533,33.7404975591171,0 -96.41973038217169,33.7884284828286,0 -96.48764129273351,33.7782325064272,0 -96.50101614488641,33.7881925349614,0 -96.5108435468467,33.8157874455655,0 -96.56240472874201,33.8255225751035,0 -96.6014686489895,33.8430585200471,0 -96.61443925387489,33.8630013562452,0 -96.58476047125609,33.8962455118061,0 -96.66651194068848,33.9136443690811,0 -96.67797914648511,33.9044245192975,0 -96.6936574485524,33.8480065285136,0 -96.7119531575884,33.8339726711759,0 -96.7491017928465,33.8318404880575,0 -96.7978710251696,33.8700514781673,0 -96.81439693387631,33.8718710579623,0 -96.84428994427481,33.8581346758361,0 -96.86129653634301,33.8617814536899,0 -96.8792188051043,33.8841045463944,0 -96.88313308270391,33.9246919643211,0 -96.8987359278797,33.9501277640988,0 -96.92984981386039,33.9618729385895,0 -96.9364875549014,33.9479496295896,0 -96.9684711058252,33.9374213261378,0 -96.9881480778014,33.9443028760324,0 -96.9879951562104,33.876524993445,0 -97.00613836455501,33.8506162080499,0 -97.0258837487447,33.8406638868468,0 -97.0711884256134,33.8568301349417,0 -97.08246496741261,33.8512035820318,0 -97.0785356759137,33.8379135029825,0 -97.0503136942646,33.8235515468502,0 -97.087958150994,33.8076751203943,0 -97.0837540270329,33.7425178691231,0 -97.09078850752719,33.7317759436109,0 -97.1158518152657,33.7260387447849,0 -97.1527639551762,33.7287737567957,0 -97.1894548414756,33.7528743688857,0 -97.2086128811281,33.8197520263932,0 -97.19530685545391,33.8362616577426,0 -97.16888553387221,33.8478962336794,0 -97.1644603868134,33.8632500271984,0 -97.1880588051263,33.899305664185,0 -97.21162664947801,33.905790476719,0 -97.24635658905748,33.8943389990746,0 -97.25098012527539,33.8730725605007,0 -97.26420222924099,33.8588326323233,0 -97.27257189808169,33.8726758421186,0 -97.3143820721958,33.8959411317283,0 -97.31525189418009,33.8704938884378,0 -97.3421004874611,33.8620178329205,0 -97.36361607593869,33.8311271478817,0 -97.41041616291049,33.8208124550832,0 -97.45303509112971,33.8363150195283,0 -97.45736073930121,33.890532021605,0 -97.4630599713817,33.9024831837152,0 -97.47783082980909,33.9078083743386,0 -97.51850418970599,33.91687174991,0 -97.55488993784371,33.9040048081949,0 -97.57597058455282,33.9026313915672,0 -97.5926564722634,33.9179850917189,0 -97.6004841716436,33.9695357487998,0 -97.6713709731313,33.9887114388077,0 -97.7045675638129,33.9716446286772,0 -97.72932581317978,33.9393918135487,0 -97.75667040704261,33.932197269678,0 -97.79051555721509,33.8905567127498,0 -97.8528573913232,33.857170989043,0 -97.8700622202223,33.8552140577552,0 -97.90937762069478,33.8741230741104,0 -97.95504853378348,33.8835794315438,0 -97.97669367876701,33.9026028951239,0 -97.9764418443808,33.9121508879515,0 -97.95099692709511,33.9326163854516,0 -97.9633110473011,33.9487483818417,0 -97.94806700069491,33.9598489691416,0 -97.9505389343141,33.9712584919282,0 -97.982995159825,34.0013824361846,0 -98.0238062114244,33.9870813155941,0 -98.0558736752466,33.9898964139123,0 -98.08652197109261,34.0054103575962,0 -98.11100543330518,34.0699152608686,0 -98.09444127427528,34.1346491348156,0 -98.11518632903911,34.1490797537232,0 -98.137182702728,34.1385247073243,0 -98.1731642842845,34.1154615363479,0 -98.277324712945,34.1229647210219,0 -98.3208141218597,34.1395124845584,0 -98.35073026318848,34.1422132177566,0 -98.3845831608253,34.115873277508,0 -98.39128184930269,34.087324681805,0 -98.4074643999688,34.0825487630451,0 -98.4216707502906,34.0659246412843,0 -98.4485195081449,34.0544693031052,0 -98.4998521726901,34.066508171909,0 -98.5579143286446,34.1054284628805,0 -98.5766684370536,34.1420220197199,0 -98.6075838723519,34.1514897431627,0 -98.6263299881177,34.158527616426,0 -98.66205950085499,34.147129344828,0 -98.68255276049912,34.1500893803379,0 -98.70563225966779,34.1308063642615,0 -98.77887692432012,34.1320532580559,0 -98.8114099222656,34.146025924858,0 -98.8916893852997,34.1609098971274,0 -98.9528568855168,34.1946535863845,0 -98.99654461650539,34.2095837062186,0 -99.03556990100751,34.1990091275048,0 -99.07878412614019,34.2084460436583,0 -99.12830013933699,34.2015562705675,0 -99.17651178434171,34.2128165213261,0 -99.19084035753009,34.2238215675651,0 -99.20495561666171,34.2557306955242,0 -99.19666281278209,34.3052057476053,0 -99.20584919432768,34.3320754835343,0 -99.25446563782602,34.3682943923503,0 -99.26753552999141,34.3983645544,0 -99.32365897051331,34.4127869472387,0 -99.3645692443735,34.4502723758117,0 -99.3931570632619,34.429070725134,0 -99.3945224149831,34.3968223241289,0 -99.4103230107381,34.3691856116386,0 -99.43874320793192,34.3647833428937,0 -99.4798058594252,34.3836002544386,0 -99.5025040549412,34.4041453149585,0 -99.5542323165501,34.4152563856433,0 -99.5782194991147,34.4089886853491,0 -99.58558947886991,34.3849338835776,0 -99.601817403152,34.3686339710267,0 -99.6852769049209,34.3775206620374,0 -99.77806025861618,34.4440642714861,0 -99.83030837990161,34.501846255188,0 -99.86094928508588,34.5186945590413,0 -99.88097732527548,34.5482418940255,0 -99.93228692511291,34.5791733267958,0 -99.9451200138402,34.5796346298626,0 -99.9724799649576,34.5619266989846,0 -99.9964752628992,34.5623839445524,0 -99.9992599692516,34.7472433686446,0 -99.99645505791619,35.0310510336069,0 -99.9975702180927,35.1822350834532,0 -99.99474342059961,35.4246221647218,0 -100.000392481852,35.6188562203977,0 -99.9981231250644,35.8838375261918,0 -99.99755361874209,36.0575913818302,0 -100.001550693503,36.4925547831533,0 -100.007272948555,36.493912716666,0 -100.549839323196,36.4894790903428,0 -100.957341408628,36.4896376715563,0 -101.090102366885,36.4880502722289,0 -101.62075555527,36.4920314454728,0 -102.034658387679,36.4929809605896,0 -102.165673606983,36.4902341370994,0 -102.997400999016,36.4923701848871,0 -103.027286789536,36.4915918464103,0 -103.024047954518,36.0560618512093,0 -103.022612263713,35.742327299615,0 -103.02229404801,35.6236480179456,0 -103.026151164684,35.1772655150643,0 -103.025251273923,34.9647798759331,0 -103.022657024631,34.7453327558501,0 -103.029645833697,34.3078204763021,0 -103.033258497866,33.8261815911813,0 -103.038736452727,33.5658431867775,0 -103.043100992793,33.3778314740626,0 -103.049330863501,32.9536389141087,0 -103.060018185604,32.5155455179839,0 -103.055640531826,32.0851168230641,0 -103.058413767661,32.0020227787787,0 -103.332549418381,32.0042814747499,0 -103.729444279739,32.0062289025373,0 -103.981377077849,32.0060152222294,0 -104.019296949948,32.0074034895819,0 -104.85106805229,32.0032650272727,0 -104.922304814538,32.004382108736,0 -106.00324037618,32.0016580242852,0 -106.378387283311,32.0007470652221,0 -106.623625658904,32.0010887853062,0 -106.650061890884,31.9803297275266,0 -106.632605287073,31.97221998842531,0 -106.633748923526,31.9141010099202,0 -106.64407909206,31.8952054369513,0 -106.61612370633,31.8447405331725,0 -106.614986549809,31.8178343839605,0 -106.539514775671,31.7863052774039,0 -106.383581210566,31.73387271848,0 -106.21328556164,31.4782464382134,0 -105.998886788462,31.3939400532755,0 + + + + + + + + + -94.9136282621775,29.2578100398598,0 -95.1056216301692,29.097200689859,0 -94.7486000214909,29.3197268614603,0 -94.76757511948669,29.3426867459739,0 -94.9136282621775,29.2578100398598,0 + + + + + + + + + -96.3981329846783,28.3461287087049,0 -96.4228065972943,28.3917207565152,0 -96.46330511935079,28.3261156347832,0 -96.5323911551759,28.3185285307139,0 -96.73916908683449,28.1838232573772,0 -96.80410430551582,28.1724500303063,0 -96.8348893723486,28.0666156829267,0 -96.3981329846783,28.3461287087049,0 + + + + + + + + + -96.9402302798725,28.0462270302125,0 -96.9732659036783,28.0011489857445,0 -96.9496523808798,27.984822817519,0 -97.0246956229941,27.9146817066477,0 -97.04987231164419,27.8412581171011,0 -96.85406998557561,28.0496963225627,0 -96.8376894806861,28.102132800665,0 -96.87268627929731,28.1316953484598,0 -96.9402302798725,28.0462270302125,0 + + + + + + + + + -97.35938018577079,27.2840405219699,0 -97.22398277664181,27.5743234820277,0 -97.0538319312447,27.8307777532106,0 -97.11330369706262,27.8195211793271,0 -97.07556056160431,27.8115793410343,0 -97.1704476930157,27.7077710590242,0 -97.20384878985288,27.6123791179091,0 -97.258949516966,27.6520617389151,0 -97.24893903086139,27.5814491265614,0 -97.3357694916682,27.4411382648402,0 -97.3763559674414,27.2849654048289,0 -97.37964318959401,27.2107771788891,0 -97.35938018577079,27.2840405219699,0 + + + + + + + + + -97.3013873602593,26.6013653134077,0 -97.278803221449,26.54030732592871,0 -97.26750343475641,26.4792510973309,0 -97.2515039997564,26.419651853089,0 -97.2265626157341,26.3489005354442,0 -97.2091667971749,26.2508939353731,0 -97.1795864974542,26.0722765736308,0 -97.17204837189529,26.0780766616552,0 -97.1952427262928,26.2595930779644,0 -97.2323612890346,26.4184902532441,0 -97.29609239794908,26.60101247555321,0 -97.35828321012912,26.8029999986179,0 -97.38159323348002,26.9493542503129,0 -97.38718744567349,27.0975717971982,0 -97.37879623372501,27.2047730330479,0 -97.38905033290529,27.2019749640613,0 -97.40117263721351,27.1115540764165,0 -97.3955703997656,26.9223202268071,0 -97.38159189969601,26.8207110644821,0 -97.35828230324178,26.7069850574477,0 -97.3013873602593,26.6013653134077,0 + + + + + + + + + Utah + empty + + +states.AREA: + 84871.909 + + +states.STATE_NAME: +Utah + + +states.STATE_FIPS: +49 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +UT + + +states.POP2000: + 2233169 + + +states.POP2001: + 2282755 + + +states.POP00_SQMI: + 26 + + +states.DEN_0_100: + 98 + + +USStates.ID: + 45 + + +USStates.State_Name: +Utah + + +USStates.Date_Entered: +Jan. 4 1896 + + +USStates.Year_Entered: +1896 + + +USStates.Year_Settled: +1847 + +]]> + #Style_5 + + + -111.676053595522,39.3225122931614,0 + + + + + + -114.047272999176,38.1376524399918,0 -114.047260595159,37.5984784866001,0 -114.043939384154,36.9965379371421,0 -112.899983474169,36.9962268765574,0 -112.542521578828,36.9979944864436,0 -112.2372578615,36.9954921751891,0 -111.356163994142,37.0017097524257,0 -110.740062961138,37.002488042411,0 -110.484088956249,37.0039260237973,0 -110.452235819472,36.9917463039985,0 -109.997076712711,36.9920675592929,0 -109.048480115363,36.9966409005893,0 -109.045602480021,37.6308206068713,0 -109.043206408646,37.8874200608917,0 -109.043464000061,38.1529336954503,0 -109.055861120835,38.2449201643366,0 -109.053948502328,38.4946509132439,0 -109.051416838185,39.3609660838809,0 -109.053528662287,39.5181701484933,0 -109.052551712149,39.6573824204021,0 -109.051263150153,40.2105113710392,0 -109.046155726194,40.6652909436328,0 -109.048314704754,40.9984333935171,0 -110.002165480573,40.9975995171866,0 -110.06318573561,40.9978919528284,0 -111.05102250907,40.9965835985974,0 -111.051651122482,41.2584254005779,0 -111.051068773655,41.578592411864,0 -111.04869741386,41.9962033494069,0 -111.494586313343,42.0001709690538,0 -112.100514491537,42.0023005848578,0 -112.147116504391,41.9990540573659,0 -112.989575449033,42.0011467864027,0 -114.039072662345,41.9953908974688,0 -114.038151248682,40.9976868405942,0 -114.038108189376,40.1110466529553,0 -114.039844684228,39.9087788600022,0 -114.040105338584,39.5386849268843,0 -114.044267501155,38.678995881588,0 -114.045090206154,38.5710950539538,0 -114.047272999176,38.1376524399918,0 + + + + + + + + Vermont + empty + + +states.AREA: + 9603.272 + + +states.STATE_NAME: +Vermont + + +states.STATE_FIPS: +50 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +VT + + +states.POP2000: + 608827 + + +states.POP2001: + 615035 + + +states.POP00_SQMI: + 63 + + +states.DEN_0_100: + 94 + + +USStates.ID: + 14 + + +USStates.State_Name: +Vermont + + +USStates.Date_Entered: +Mar. 4 1791 + + +USStates.Year_Entered: +1791 + + +USStates.Year_Settled: +1724 + +]]> + #Style_5 + + + -72.660656242184,44.072240587832,0 + + + + + + -73.2580598287651,42.7460586400616,0 -73.0196951738304,42.7403966786337,0 -72.92299742922531,42.7373644761782,0 -72.4557700038868,42.7258525290855,0 -72.4621713056893,42.7468405310802,0 -72.4793225257782,42.7615879021402,0 -72.50726952905301,42.7687326904009,0 -72.5130680088012,42.7892594013534,0 -72.538916970841,42.8077338159119,0 -72.5534284639708,42.8606431711067,0 -72.5248100213574,42.9126141761107,0 -72.5202170578448,42.9516725271887,0 -72.5042636319545,42.9655846501003,0 -72.47334119749689,42.9761435837691,0 -72.4571590376321,42.9996036974292,0 -72.4617520870041,43.0465044640798,0 -72.44346425788849,43.0790393128299,0 -72.43760490206709,43.1162700005073,0 -72.45239855285131,43.1560221784817,0 -72.4355986440693,43.2322535514022,0 -72.4024188454007,43.3073827061473,0 -72.4102315830492,43.3234041461301,0 -72.39762805437751,43.3510068532964,0 -72.4121395531363,43.3771255999362,0 -72.3962478080997,43.4101565518931,0 -72.3825156946813,43.4846296935804,0 -72.39499776821209,43.5175538931662,0 -72.3734983899537,43.5723746289271,0 -72.33308519415699,43.5973647921877,0 -72.3040399378543,43.6985301192071,0 -72.2600555952028,43.7353001230663,0 -72.21912292133609,43.750692528435,0 -72.2060918209679,43.7646350589211,0 -72.1848363730122,43.8016904606597,0 -72.1700895247441,43.8789176964689,0 -72.1216496397887,43.9092173247049,0 -72.1132040793555,43.9391659598857,0 -72.0917117306645,43.9579911279463,0 -72.1128078470404,43.9765149671875,0 -72.109908766997,43.9892291134731,0 -72.0852043813774,44.008923986175,0 -72.07691904412221,44.0320405986226,0 -72.0347283650036,44.0833740182688,0 -72.0324473746587,44.0960996192238,0 -72.0495148341974,44.1004520944909,0 -72.0349198523751,44.1207459288224,0 -72.0447245537617,44.1564355666157,0 -72.05928224606249,44.1821766291115,0 -72.0443903804218,44.2343798441303,0 -72.0595660047421,44.2614940911529,0 -72.03549537537759,44.2994343131496,0 -71.99443351087029,44.3275482023457,0 -71.93890565797921,44.3257860034123,0 -71.928361752714,44.3361121851128,0 -71.83481598035139,44.3441994129001,0 -71.8211973083551,44.3503600453545,0 -71.7977291908463,44.384172813001,0 -71.7665702593918,44.3982488046656,0 -71.67688436321281,44.4213427403398,0 -71.6563990024127,44.4401373612429,0 -71.64770916138809,44.4691741459763,0 -71.6365547217831,44.4767309013867,0 -71.6142227691162,44.474507042735,0 -71.58661898076009,44.4945375694188,0 -71.5752435447921,44.525805689154,0 -71.59144138862121,44.5388744007981,0 -71.59228841131031,44.5512031068487,0 -71.5367908177937,44.5789312630586,0 -71.5541026351831,44.5965889130359,0 -71.5680271516494,44.6374468081647,0 -71.588749347522,44.6505994869908,0 -71.6076787297884,44.6778622938609,0 -71.6311328527305,44.7417107606939,0 -71.58350120905909,44.7791969958657,0 -71.575100912366,44.816019797627,0 -71.50636496059011,44.8996711859758,0 -71.5169776077169,44.9436961331563,0 -71.54092709673419,44.976563206227,0 -71.50537230062881,45.01335171632249,0 -71.9018687560565,45.00733987375971,0 -72.547231170846,45.0053701041523,0 -73.1885457846919,45.0084861445144,0 -73.3447234868807,45.0061387945904,0 -73.3507583871195,44.9819729513451,0 -73.3364146788922,44.9326039308497,0 -73.3823067594393,44.8479336187606,0 -73.36905412807261,44.8191179021751,0 -73.3267863194035,44.799293570954,0 -73.373158575022,44.724236436747,0 -73.3581509561494,44.680368564481,0 -73.3730971364166,44.6612763562517,0 -73.3701366913554,44.6343490646182,0 -73.3818251037206,44.619807725515,0 -73.3712960298213,44.5791669569442,0 -73.34781198402661,44.5539715457199,0 -73.3344524939975,44.544328246301,0 -73.2933197444993,44.4328535783624,0 -73.2999951630005,44.4055331645407,0 -73.32978809302909,44.3673904680866,0 -73.3053256664729,44.2601422576285,0 -73.37733262552911,44.2012475171296,0 -73.38206233640641,44.1721076120788,0 -73.40786483046161,44.1362270392695,0 -73.408756830709,44.1066103535606,0 -73.4352152780239,44.0638978024282,0 -73.43600071127899,44.0456791904389,0 -73.4082513023357,44.0182219013784,0 -73.4174061301202,43.9881969457528,0 -73.4053345287369,43.9148075869022,0 -73.3751207851314,43.8859769501205,0 -73.3847399017654,43.804507971731,0 -73.35899716813,43.7784275686932,0 -73.3566696765928,43.756558340599,0 -73.3709893845574,43.7142811167277,0 -73.4229598542953,43.6321147289764,0 -73.4183198417113,43.582479385998,0 -73.3881142192301,43.5691436583008,0 -73.36368556156729,43.6149988679744,0 -73.303534516911,43.62471481285,0 -73.2941043006647,43.6196528756937,0 -73.28173626823219,43.5931872495766,0 -73.2914024969013,43.5750335705375,0 -73.25998379380719,43.5593823395157,0 -73.2383913589494,43.5128328494142,0 -73.2500714436229,43.310853990742,0 -73.27600528901171,42.9402941192889,0 -73.27958319993191,42.83710332748,0 -73.2961697572315,42.8035493647588,0 -73.26927531690011,42.747481432998,0 -73.2580598287651,42.7460586400616,0 + + + + + + + + Virginia + empty + + +states.AREA: + 39819.882 + + +states.STATE_NAME: +Virginia + + +states.STATE_FIPS: +51 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +VA + + +states.POP2000: + 7078515 + + +states.POP2001: + 7203904 + + +states.POP00_SQMI: + 178 + + +states.DEN_0_100: + 84 + + +USStates.ID: + 10 + + +USStates.State_Name: +Virginia + + +USStates.Date_Entered: +June 25 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1607 + +]]> + #Style_5 + + + -78.85159444011779,37.5186355576459,0 + + + + + + + -79.1440627705841,36.5461983712091,0 -78.7964284068279,36.5436739120265,0 -78.73711601969831,36.5462146723402,0 -78.45852951752001,36.5416234739225,0 -78.320969632811,36.5456755672774,0 -78.05138167562831,36.5526213891494,0 -77.89856872882319,36.553092111532,0 -77.7636386364742,36.5535891128352,0 -77.3197463656757,36.5540684074889,0 -77.1770420007847,36.5564375496145,0 -76.92381636627491,36.5542979883089,0 -76.92131386587209,36.554309439951,0 -76.5632556818254,36.5554041975692,0 -76.4972285279305,36.555964754875,0 -76.3299165778101,36.5562088358656,0 -76.1270505006232,36.5573157649444,0 -76.0456111690205,36.5571064340655,0 -76.0615119712046,36.6037440715536,0 -76.0268192353758,36.5568700359695,0 -75.9983147031585,36.5568053577451,0 -75.95044799302779,36.7217163055738,0 -75.8924987970746,36.5991754803558,0 -75.90163103703659,36.5563523255124,0 -75.877811084643,36.5560283058652,0 -75.9950139733037,36.9232809961133,0 -76.1180881453835,36.9317648123223,0 -76.1913251743424,36.9045892249893,0 -76.20199158108591,36.935217163218,0 -76.2838887925512,36.9628813743534,0 -76.3072813727656,36.9421487258181,0 -76.29236454702701,36.8284904672678,0 -76.31710011796309,36.8459922903136,0 -76.4008510377479,36.8262860262004,0 -76.3937555260047,36.8360744516116,0 -76.3415839123642,36.8603355643402,0 -76.3478101840232,36.9134892559702,0 -76.4104728537632,36.9015610356255,0 -76.5068660992915,36.8696211637204,0 -76.56152429279599,36.7957653750683,0 -76.5601896240839,36.841949682548,0 -76.4862891586355,36.8957172739011,0 -76.4818489715291,36.9192347267962,0 -76.5168462700177,36.9123341285658,0 -76.48918167769079,36.9618713816853,0 -76.55472096576371,37.0063431659281,0 -76.6130495959479,36.9949910493193,0 -76.5775030626028,37.0246421685746,0 -76.6653202221915,37.0542826183327,0 -76.6712176684662,37.1478600912415,0 -76.68564516136701,37.1981336635524,0 -76.72889009061009,37.1508170290717,0 -76.7970759024728,37.2074500591909,0 -76.9005488474757,37.201202170108,0 -76.9411772790768,37.2367588456444,0 -76.8781107307919,37.2595740295398,0 -76.8751735425528,37.3230918648515,0 -76.8568543846098,37.2440482634497,0 -76.7956110737283,37.2405346631412,0 -76.7457819523891,37.1935376737801,0 -76.6968300960669,37.2326679371395,0 -76.6477715853183,37.2259840464616,0 -76.6097074589246,37.1787238415066,0 -76.62459298866951,37.1324217211094,0 -76.5681184950179,37.0803207193791,0 -76.5641662731184,37.1179178590847,0 -76.51493987185231,37.088514152489,0 -76.5307942986433,37.0677893193211,0 -76.4257863680259,36.9654073083815,0 -76.3842198846788,36.9905610883342,0 -76.29300653598671,37.0206351268799,0 -76.2785939416313,37.0744893907584,0 -76.3953592865513,37.1078530847975,0 -76.2853385910049,37.1222404792061,0 -76.3369841802955,37.1771522953961,0 -76.363451729894,37.1465709966311,0 -76.3965418363444,37.173174579979,0 -76.412663469669,37.1525377346611,0 -76.4243369011667,37.2074417607397,0 -76.5947150535785,37.2914425548303,0 -76.6696613320707,37.371791537835,0 -76.7043613440258,37.4186361406359,0 -76.65316606911691,37.4123446475274,0 -76.4608069287775,37.2555753805253,0 -76.392406354854,37.2935674534887,0 -76.4552214637676,37.3776312056936,0 -76.4034234546658,37.3731670284824,0 -76.4167524203358,37.4122746360477,0 -76.4636063203256,37.4190312999933,0 -76.4465385536332,37.4581039398615,0 -76.3386854412128,37.3936844160004,0 -76.3006361353978,37.334709868146,0 -76.2748553487943,37.3304598673598,0 -76.25425523474939,37.3903257815922,0 -76.3553334504997,37.5158897727623,0 -76.4338503734437,37.5153384215489,0 -76.51252787654241,37.5527130415872,0 -76.348306615496,37.5252852030122,0 -76.314309077826,37.5513349088903,0 -76.5691713435974,37.6420468415128,0 -76.68141185641581,37.7748929688243,0 -76.7320343979588,37.7986197228433,0 -76.81818811699171,37.9196415616303,0 -76.77153220520729,37.9168107039808,0 -76.6314529213585,37.7964870429673,0 -76.5801358444963,37.7702542208492,0 -76.5067605515534,37.656522918715,0 -76.3445385066165,37.6230595013925,0 -76.3227258669536,37.6779484318836,0 -76.3566703951832,37.700265457817,0 -76.309610919197,37.7192458083256,0 -76.3242069148735,37.7989453158794,0 -76.2515877836626,37.8503067866281,0 -76.25886650737461,37.8901582041921,0 -76.3674146087621,37.9570799400083,0 -76.5242205629273,38.0128744660371,0 -76.5733697756541,38.0033002605649,0 -76.5577218576977,38.0254593389845,0 -76.5487117333011,38.0742408555528,0 -76.5952833745998,38.1203528497159,0 -76.9361551677171,38.2026030889371,0 -76.99905430235459,38.2804019549924,0 -77.054232080337,38.3754764029036,0 -77.240401498791,38.3314974517303,0 -77.3215266297094,38.3441089374341,0 -77.28918500851221,38.3627964278078,0 -77.3381896271496,38.4369487883222,0 -77.3033228724405,38.5020331248717,0 -77.227296542712,38.650839442127,0 -77.1944511107853,38.6608832985541,0 -77.1969608195312,38.622817575713,0 -77.1296906932316,38.6482418914715,0 -77.12481562054811,38.6779155452061,0 -77.0928476424555,38.7040989116303,0 -77.08157873831389,38.7153939181929,0 -77.0568205142596,38.7121363148863,0 -77.0461695666273,38.7188957809267,0 -77.04514742259011,38.7882339432299,0 -77.03494665070259,38.8140284925431,0 -77.0448880739541,38.8294777256462,0 -77.0401043199647,38.8385260372666,0 -77.03877681158821,38.8625429508758,0 -77.067586179778,38.8862126841237,0 -77.0786490583631,38.9157112061101,0 -77.12232830291251,38.9321712762375,0 -77.15174771824201,38.9648893335594,0 -77.2434318664787,38.9759898010602,0 -77.2556927153402,39.0276818620407,0 -77.3243065775866,39.0626960558372,0 -77.3462265685837,39.0686200582469,0 -77.4327467353536,39.0668840135464,0 -77.459404555923,39.0809444981026,0 -77.47895899133,39.1040646528751,0 -77.51275784419811,39.1167594573458,0 -77.5163278483541,39.1575488653215,0 -77.4783476432128,39.1770378462932,0 -77.4617071219601,39.2187353607732,0 -77.4646672485749,39.2291606204918,0 -77.4937734776117,39.2500146595609,0 -77.5419007825367,39.2690420737433,0 -77.5686729648781,39.298495090027,0 -77.616235785843,39.2998185774258,0 -77.6793019175109,39.3187810010414,0 -77.72746748091871,39.3177965867944,0 -77.7594582704378,39.2846433153217,0 -77.76823224563999,39.2465502522476,0 -77.8054492814302,39.1966059388555,0 -77.8200446831256,39.1417254469273,0 -77.83068022894911,39.1321813411354,0 -78.03332834358871,39.2656393181314,0 -78.2295086253954,39.39111326311,0 -78.2768810730911,39.4234646371798,0 -78.3475464813471,39.4569981748093,0 -78.350231122076,39.380828452912,0 -78.3654747496783,39.3616867684635,0 -78.3439287233565,39.3509564427898,0 -78.3408462579967,39.3414581302015,0 -78.4135473819813,39.257540835225,0 -78.3991273957871,39.2449527077307,0 -78.4230690017269,39.2121432300896,0 -78.4240684786694,39.1976286478836,0 -78.40236228262261,39.1705945616413,0 -78.4305689043273,39.1486261929033,0 -78.4479796847525,39.1190362574345,0 -78.4852503468901,39.111944844534,0 -78.5016006690667,39.0936843045982,0 -78.536651424857,39.0571328491656,0 -78.5641793194809,39.0351455339644,0 -78.5492023399753,39.0234880477595,0 -78.5532079497434,39.0139362816423,0 -78.59869613846099,38.967306737806,0 -78.6308475438714,38.9797118741506,0 -78.6469691460415,38.9505530737122,0 -78.6802270507461,38.9216841449691,0 -78.7189859527938,38.9049913858346,0 -78.72414346436901,38.9303242424267,0 -78.73773193671219,38.9292828544161,0 -78.7492528843455,38.9114914729758,0 -78.7930553345461,38.8802192733,0 -78.81586084106471,38.8337457622327,0 -78.86656063074361,38.7634041325478,0 -78.9874530865749,38.8467613817813,0 -79.03374251686721,38.7999596842489,0 -79.05480043932219,38.7906328948264,0 -79.0565552787527,38.7620536715536,0 -79.0872342316746,38.7072686901771,0 -79.088546586161,38.6592052271367,0 -79.1210641516119,38.6637673801701,0 -79.1274272802501,38.6582438834526,0 -79.2316628792895,38.4804961745132,0 -79.27235884061081,38.4373067075038,0 -79.3169995976733,38.4126332297745,0 -79.48634757115821,38.4621448879803,0 -79.5365137543052,38.5538055741145,0 -79.642406563286,38.5923552608138,0 -79.6694300335236,38.5501770266588,0 -79.6656146350943,38.5207779063414,0 -79.6926537316952,38.50035433771,0 -79.6840924127456,38.4302381558023,0 -79.7200352271452,38.3946858203824,0 -79.7328295907797,38.35184011756,0 -79.7640044528342,38.3539913109909,0 -79.80032894262899,38.3143267172637,0 -79.80277785836461,38.2988699252702,0 -79.786511146829,38.2851184419634,0 -79.79362179587,38.2686659933911,0 -79.8311519954685,38.2502792510352,0 -79.9161615169419,38.1792648616985,0 -79.9103399375918,38.1626063325108,0 -79.9353269126111,38.1213086373625,0 -79.9282922008952,38.1033111780769,0 -79.9575137202729,38.0673653777199,0 -79.9664936918756,38.0386218574803,0 -80.0004989600932,37.9898701188515,0 -80.0548072329966,37.955647953318,0 -80.10649074189941,37.9146585972358,0 -80.1185073346708,37.8912782976758,0 -80.16000537205031,37.8772283214768,0 -80.17222039082991,37.860184199113,0 -80.1715945425769,37.842968579238,0 -80.2237356887328,37.8023645289771,0 -80.2205461556516,37.7788585452909,0 -80.25468885608571,37.7572327793138,0 -80.2500331441419,37.7260519868,0 -80.3031097192157,37.6826718540633,0 -80.29570065300371,37.6715026681154,0 -80.30486267871009,37.6522463839109,0 -80.3009326903108,37.6405469490757,0 -80.2544222998619,37.6407036415196,0 -80.2189280037138,37.624266818855,0 -80.2463930602341,37.5968966073136,0 -80.3167216376968,37.5667185420532,0 -80.32590580737531,37.5334014957793,0 -80.3083037500729,37.5283701687601,0 -80.280730446809,37.5362590748033,0 -80.2879160750838,37.5111511482082,0 -80.3475109001899,37.49117712186,0 -80.35215686057209,37.4761016187768,0 -80.3883061551325,37.4657253807092,0 -80.4253779088728,37.4349064012949,0 -80.47476472988301,37.4228209443336,0 -80.48679721638899,37.4338604042898,0 -80.4878816034022,37.4605973242368,0 -80.5087647901173,37.4750470031664,0 -80.5427553820369,37.469210153305,0 -80.5974908951866,37.4460544156491,0 -80.7052070760613,37.388378738728,0 -80.72973711165071,37.3927194823309,0 -80.7463242442421,37.3877372428011,0 -80.7476897645342,37.3790816832203,0 -80.7629949670439,37.3714139772316,0 -80.7700223818732,37.3861958412097,0 -80.7992446500301,37.3917535437627,0 -80.7996113856773,37.4130624215657,0 -80.8505252286955,37.4234607507886,0 -80.8773584695865,37.3886971542785,0 -80.8484178042257,37.3509434223474,0 -80.8554293470925,37.3394115247051,0 -80.9341835390029,37.3013705325277,0 -80.96789191929319,37.2917914637641,0 -80.9785356077377,37.2964757957825,0 -80.98593670753679,37.3062413397341,0 -81.0249323590475,37.2860611989419,0 -81.1407375754125,37.2749250164035,0 -81.2229334626078,37.2402144799779,0 -81.31187279010121,37.2937070121271,0 -81.3587948024103,37.3389525257717,0 -81.3909459604383,37.3111547685878,0 -81.4033441778724,37.2826247386467,0 -81.4753603327483,37.2544223575295,0 -81.4955330784661,37.2528505720872,0 -81.5055358933554,37.2343721078399,0 -81.5566542800284,37.2063527636759,0 -81.66588576064321,37.2049100156006,0 -81.7017283392091,37.2354348394887,0 -81.7384563680184,37.2504910806821,0 -81.7518541120478,37.2722574759975,0 -81.7926591382367,37.2871534702189,0 -81.81538106528591,37.2795392280236,0 -81.83888889774509,37.2855052037829,0 -81.8586808412616,37.307031242764,0 -81.8638156687728,37.3254560597623,0 -81.8971581362481,37.3405886156486,0 -81.9268226400485,37.3717275503644,0 -81.9207334341144,37.4155161841344,0 -81.98820252937991,37.4665864944032,0 -81.9764218630945,37.4829057344135,0 -81.94799334305409,37.4930262563355,0 -81.9354500215799,37.5066446664438,0 -81.95957525592971,37.5311726196289,0 -82.288950934185,37.3048612192352,0 -82.35384234347519,37.260519600467,0 -82.4058850037637,37.2507041975685,0 -82.5500399164933,37.1993783814184,0 -82.56802270094001,37.1939190518144,0 -82.7190958255562,37.1100172914789,0 -82.7213772601893,37.0931177496069,0 -82.7091701311092,37.075482281352,0 -82.7200576547545,37.0659298172553,0 -82.7235981560209,37.0339923682353,0 -82.81222270855579,37.0056007595079,0 -82.8665598432633,36.9745857651711,0 -82.8606320841382,36.9321623718302,0 -82.87804287271091,36.893694238085,0 -82.9508056915213,36.8640784586876,0 -83.0466341524314,36.8587935503694,0 -83.06795192812881,36.8509961538949,0 -83.1282206506728,36.7791526938786,0 -83.124390864088,36.7511676478044,0 -83.1385135640831,36.7400592608854,0 -83.203656562889,36.7342606278109,0 -83.32138369861531,36.7095329501122,0 -83.3858547999664,36.6882196347474,0 -83.4041505851927,36.6723273909237,0 -83.46022130755151,36.6618325651555,0 -83.5308949469604,36.6614809602143,0 -83.64680262239961,36.6169769718214,0 -83.6751767779422,36.59870387507,0 -83.4642098601591,36.5988401279562,0 -83.2750314351304,36.6004674572198,0 -83.2483883995918,36.5899354199083,0 -83.21092650566941,36.5880896531906,0 -82.98669718999391,36.5912897002248,0 -82.8498226210789,36.5910413307673,0 -82.610838912091,36.5915455448388,0 -82.2968580172995,36.591800946144,0 -82.2166613034295,36.5940723596186,0 -82.1541813077551,36.5951503366296,0 -81.9293033061132,36.5959506538262,0 -81.9182941426859,36.613608797075,0 -81.82889791679381,36.6115963662572,0 -81.6522721813828,36.6076738087692,0 -81.669835031007,36.5897678106349,0 -81.3451210093901,36.5729883010435,0 -80.90324049840061,36.5653420877066,0 -80.8379531599861,36.5635684825855,0 -80.61084107895191,36.557430438888,0 -80.4350919823622,36.5511811239687,0 -80.04786338901999,36.5472724746821,0 -80.0238223180659,36.5451630012943,0 -79.7172016388076,36.5480278701673,0 -79.5100477812088,36.5477956232117,0 -79.21680327614961,36.5499213192211,0 -79.1440627705841,36.5461983712091,0 + + + + + + + + + -75.2703576848931,38.0277091732938,0 -75.346327896565,37.918920332121,0 -75.378212765399,37.9010985070504,0 -75.3444511672005,37.9020368659196,0 -75.385720705723,37.8757771334347,0 -75.33882056571559,37.8889069720989,0 -75.2984965865935,37.9629981027088,0 -75.2422192799713,38.0286475070447,0 -75.2703576848931,38.0277091732938,0 + + + + + + + + + -75.86702474819541,37.5523144055129,0 -75.9304116573134,37.5570210112286,0 -75.9543606031818,37.5219645287005,0 -75.9651025972256,37.4794849231046,0 -75.934103509734,37.4847761076545,0 -76.0181268821546,37.3089179962228,0 -75.9706381994593,37.126374539951,0 -75.9310399788387,37.1426441413889,0 -75.89676220343181,37.3675306353841,0 -75.8263260377899,37.4182847768698,0 -75.79042061875479,37.4082451150763,0 -75.8201385645026,37.4263412953845,0 -75.81267774258821,37.4691794212934,0 -75.7049180567879,37.493609154607,0 -75.7561507588602,37.5106752855114,0 -75.7271741932358,37.5583160220225,0 -75.6499176016541,37.5598879682547,0 -75.69914364059819,37.5896453879802,0 -75.5895543292298,37.6773235333573,0 -75.6175701346023,37.6972623777481,0 -75.37242058358361,38.0168338616125,0 -75.62608404746069,37.9965412351653,0 -75.64786661285071,37.9702549087239,0 -75.65809797640431,37.9413058795763,0 -75.7336306466578,37.9306942135493,0 -75.6863580737178,37.8582504730951,0 -75.6957348357321,37.8246437728104,0 -75.7822539886663,37.7899613984561,0 -75.79937456348389,37.7119219127267,0 -75.9056463246888,37.5923063660501,0 -75.8869307337319,37.5804774495128,0 -75.9292141475101,37.5860158544498,0 -75.9407574732188,37.5616861757273,0 -75.86702474819541,37.5523144055129,0 + + + + + + + + + Washington + empty + + +states.AREA: + 67290.061 + + +states.STATE_NAME: +Washington + + +states.STATE_FIPS: +53 + + +states.SUB_REGION: +Pacific + + +states.STATE_ABBR: +WA + + +states.POP2000: + 5894121 + + +states.POP2001: + 5984144 + + +states.POP00_SQMI: + 88 + + +states.DEN_0_100: + 92 + + +USStates.ID: + 42 + + +USStates.State_Name: +Washington + + +USStates.Date_Entered: +Nov. 11 1889 + + +USStates.Year_Entered: +1889 + + +USStates.Year_Settled: +1811 + +]]> + #Style_5 + + + -120.428027450366,47.3767619529735,0 + + + + + + + -122.402015585862,48.22521655119059,0 -122.368333031748,48.1281417374007,0 -122.216991980112,48.0074395523983,0 -122.230120864997,47.9691133009971,0 -122.302922293019,47.9502148146411,0 -122.394492319816,47.7741760704507,0 -122.414815251142,47.6641799154458,0 -122.382220450337,47.59540904242241,0 -122.392633724016,47.510242430349,0 -122.319738644767,47.3901148739843,0 -122.325376306437,47.34432342914171,0 -122.420837154063,47.3188444009071,0 -122.44160451791,47.30112502870991,0 -122.392843589784,47.27772237272379,0 -122.424093930825,47.2594726643245,0 -122.546588119889,47.3162759041886,0 -122.530763579572,47.2874561757674,0 -122.591806795064,47.18006043271391,0 -122.700078972928,47.0983257639744,0 -122.728186706349,47.0824411560979,0 -122.790048807191,47.12585976612701,0 -122.923149828379,47.0479638034112,0 -123.031348160183,47.10077406605479,0 -123.08119986877,47.0900584211916,0 -123.115436362362,47.2079808770198,0 -122.880373328755,47.29923301071809,0 -122.80218419102,47.36074081061499,0 -122.773334917144,47.3373608176988,0 -122.825108465453,47.23482629704449,0 -122.761238576791,47.16249609705,0 -122.719801685966,47.2231309613462,0 -122.769708287471,47.2661563733799,0 -122.741549305237,47.3414503076915,0 -122.63743668533,47.3985801503896,0 -122.628754107704,47.3985535711269,0 -122.699744809759,47.2920852599988,0 -122.606914471404,47.2705715630047,0 -122.611546281747,47.2933985199593,0 -122.580530737959,47.2513878417299,0 -122.553156448554,47.28333225295779,0 -122.588254069729,47.3339297206403,0 -122.544125105865,47.3739271979736,0 -122.558446593662,47.39836383670511,0 -122.504461251459,47.5072166170591,0 -122.542701892959,47.5227341115826,0 -122.555262191616,47.5835056437302,0 -122.58646032245,47.5711913307815,0 -122.621509737099,47.6969685926778,0 -122.473587970933,47.754980421427,0 -122.531888262165,47.9094610402373,0 -122.613217685631,47.9361891106489,0 -122.611161831324,47.8500088568397,0 -122.723062245298,47.756899497954,0 -122.752942725853,47.6606888662813,0 -122.916969634781,47.6146067598098,0 -123.026336409535,47.5159360344848,0 -123.112685319492,47.3715690549333,0 -123.036205853039,47.3560517908336,0 -122.833247627681,47.4384644854025,0 -123.010471142541,47.3530270312954,0 -123.154060208246,47.34854709581659,0 -123.113915354148,47.4562737478478,0 -122.982744610097,47.605474180815,0 -122.899363646417,47.6725174181428,0 -122.858803869367,47.8273283820717,0 -122.809517476022,47.8570752456124,0 -122.789801306075,47.80254870561371,0 -122.745869964426,47.8089881012059,0 -122.65358555422,47.8644314081443,0 -122.661560699934,47.91715724086411,0 -122.802931474221,48.0853214885644,0 -122.768882581909,48.14399396683261,0 -122.841111108511,48.1331364028468,0 -122.924844380244,48.0667963906842,0 -122.921594579239,48.0941790601655,0 -123.123222071728,48.14873346132511,0 -123.396857191675,48.1110305596467,0 -123.99121575548,48.1591616473782,0 -124.563547200382,48.3572788215719,0 -124.717175724384,48.3775576295928,0 -124.705209619396,48.2319958728397,0 -124.732769782406,48.14998906746659,0 -124.606685175962,47.8737351045468,0 -124.4840349709,47.80825508475839,0 -124.373605760641,47.6387635571163,0 -124.34908012,47.5269100987395,0 -124.319426936677,47.349238221659,0 -124.231425333655,47.2750705461574,0 -124.192733694907,47.1669824551465,0 -124.16203636006,46.9296126446967,0 -124.11236154808,47.0426750048332,0 -124.034394754879,47.0310336101115,0 -123.995864776759,46.9763856970925,0 -123.812655744537,46.9639649518924,0 -124.046929052757,46.8872532153114,0 -124.028808615981,46.82376724520079,0 -124.104738049925,46.87414536541461,0 -124.105760621107,46.9081486902197,0 -124.138827038961,46.8999849517573,0 -124.102067189448,46.7894689338948,0 -124.091049313876,46.729022769244,0 -124.043158405537,46.71585552661,0 -123.895541984289,46.74498612304211,0 -123.840966602211,46.7182880521381,0 -123.926470343453,46.6730606753881,0 -123.957711888544,46.6172253735281,0 -123.893566870933,46.5110798696875,0 -123.940693474701,46.4811152076399,0 -123.84145135609,46.4043430463786,0 -124.013002080972,46.3836800183619,0 -124.023042910864,46.5835411596631,0 -124.065510643968,46.6397453463799,0 -124.079107527965,46.2672592577036,0 -123.99332948614,46.31027473949201,0 -123.885770921618,46.24043841752359,0 -123.725458920321,46.28542385217391,0 -123.620076470538,46.2586654836991,0 -123.470772999092,46.2750238188183,0 -123.304717085176,46.1447375703216,0 -123.2487994158,46.1440203375679,0 -123.212437026773,46.1700060595961,0 -123.176196406189,46.18358645541681,0 -123.118554158558,46.1793104942643,0 -123.050596211575,46.1557362282158,0 -122.974169260528,46.11048344369091,0 -122.899757285914,46.0793296870295,0 -122.875417724143,46.0271833271028,0 -122.807741767287,45.9438901212784,0 -122.80622291556,45.90407242954801,0 -122.784073650236,45.867886451725,0 -122.784515918404,45.85044951848901,0 -122.788009565757,45.80034359183911,0 -122.764288518601,45.7605680280893,0 -122.772551033013,45.7276855424654,0 -122.760541289247,45.6493974102277,0 -122.696323093542,45.6310455505125,0 -122.651209200341,45.6068304566963,0 -122.565429806458,45.5948187685695,0 -122.437154197887,45.5647789119432,0 -122.356457483648,45.56617124306739,0 -122.303150328761,45.54309283450319,0 -122.244922293538,45.5481128647605,0 -122.082037518263,45.59050401243609,0 -122.000011553714,45.6178242910982,0 -121.972659451544,45.63577608415601,0 -121.926820689078,45.64202837395181,0 -121.888283498804,45.6768563701943,0 -121.81104103467,45.70068308952361,0 -121.758694096887,45.6897160514309,0 -121.706416861345,45.6887931706508,0 -121.529054611543,45.7195676794317,0 -121.442552169491,45.6949670880414,0 -121.422029028765,45.69060318812019,0 -121.367814251197,45.6996865954037,0 -121.319977744287,45.6966428366174,0 -121.276390902266,45.67833997203109,0 -121.214271714275,45.6656449638228,0 -121.203308118047,45.65728693477031,0 -121.192054666449,45.6132419265196,0 -121.174316011579,45.6005161602332,0 -121.125204665552,45.6070590988379,0 -121.073529928592,45.6466107733405,0 -121.03348258367,45.652844415437,0 -120.968478511648,45.6451545411606,0 -120.948572830946,45.650315967172,0 -120.907937250867,45.63547710694449,0 -120.861419667766,45.6651862544925,0 -120.696993903513,45.7105098195153,0 -120.658403368137,45.73261248754,0 -120.623757205266,45.7436105722949,0 -120.570082462284,45.7409179414327,0 -120.499156501925,45.6956306780396,0 -120.443383762852,45.6892797229393,0 -120.283634874867,45.71658287339311,0 -120.207445390097,45.7197840646162,0 -120.155907860861,45.7612616683351,0 -120.06864786541,45.780202445303,0 -119.994320160406,45.8111403450749,0 -119.869735634541,45.8316985251524,0 -119.833555881044,45.8416093443199,0 -119.678445663881,45.8525390300795,0 -119.622116728299,45.8994103389685,0 -119.589294282545,45.9133149491969,0 -119.512220001301,45.8992005968695,0 -119.43886108987,45.9142685232279,0 -119.379441421397,45.9176100650698,0 -119.302763509833,45.932662726596,0 -119.178742642589,45.922351608477,0 -119.140250599579,45.9257086397924,0 -119.03222168131,45.9662745814382,0 -118.982132819163,45.9990583744824,0 -117.992527778446,46.0016389052483,0 -117.982677428834,45.9998805158959,0 -117.602826163512,46.00026815862021,0 -117.481663000967,45.9998347138602,0 -116.919132428078,45.995175487463,0 -116.957723390605,46.06568768466321,0 -116.987211805214,46.07850889735371,0 -116.961637658488,46.0972742225682,0 -116.929426274379,46.165483265634,0 -116.967490477604,46.1975539420731,0 -116.972724840347,46.24930935868821,0 -117.001642419838,46.3024487520609,0 -117.027973590879,46.3354269634861,0 -117.064184656311,46.3486979530599,0 -117.044470505763,46.3885739799344,0 -117.038558547134,46.4279805738524,0 -117.04192619733,46.536601774571,0 -117.040968412195,47.11931911025491,0 -117.042391922165,47.2585012691796,0 -117.04179475453,47.3614417250081,0 -117.037471831606,47.9710924196381,0 -117.038868452187,48.0461859667744,0 -117.029111695195,48.8380752730768,0 -117.032049523854,48.99993132673121,0 -117.438580412623,48.99991850566829,0 -118.200354738532,48.9999088414174,0 -118.843602807356,48.9998984346033,0 -120.857059496563,48.9998306577208,0 -122.765118968837,48.99974623444891,0 -122.743940024614,48.95580806740179,0 -122.822421272766,48.9507251599099,0 -122.754241982126,48.9099886147134,0 -122.697404043551,48.8030150496753,0 -122.516853490647,48.757921319943,0 -122.526558319548,48.7117247063083,0 -122.487798210295,48.6385700564281,0 -122.429545051156,48.5993973238636,0 -122.505299782151,48.5594447659792,0 -122.473833244864,48.46219546816361,0 -122.523227847995,48.4584031117488,0 -122.608178294452,48.5188240727562,0 -122.699413806973,48.4943282053316,0 -122.667031965175,48.4128950743055,0 -122.564366308901,48.4142464891235,0 -122.378320027898,48.2897210809664,0 -122.404404795763,48.2465946390423,0 -122.509130728878,48.25379287826151,0 -122.542074086652,48.2104605027962,0 -122.514511175848,48.13397370495419,0 -122.361333117765,48.0600974008547,0 -122.454419044314,48.12849218337681,0 -122.462855148154,48.2283635421487,0 -122.402015585862,48.22521655119059,0 + + + + + + + + + -122.967978342058,48.44379450851021,0 -123.018882894721,48.489605170453,0 -123.022271121816,48.513359682583,0 -122.967980000613,48.52693332233629,0 -123.008698759605,48.5337193215567,0 -123.01209491531,48.5574777421133,0 -123.103721392859,48.6083771191688,0 -123.141053808089,48.6236471212389,0 -123.169899337157,48.5625647146223,0 -123.159719925101,48.52184222365381,0 -123.09523286813,48.479422815339,0 -122.967978342058,48.44379450851021,0 + + + + + + + + + -122.733187500894,48.27664717795621,0 -122.768778263979,48.218818397347,0 -122.695554282422,48.1811852523447,0 -122.608628397127,48.0314307595447,0 -122.544961263666,47.9675310410809,0 -122.471616565863,47.9875090940392,0 -122.442787963967,47.9180562701758,0 -122.386960910805,47.9045490614351,0 -122.355399949048,47.9638860565509,0 -122.379993925152,48.0321462908929,0 -122.49621274531,48.0940709834622,0 -122.546202729793,48.0768581941955,0 -122.610925345361,48.2063213486201,0 -122.732034133066,48.22541451834621,0 -122.623509745109,48.2963505236561,0 -122.528648438563,48.2835101194884,0 -122.525750015179,48.32104386187421,0 -122.604384066189,48.4047892820013,0 -122.665612560098,48.3967777389214,0 -122.733187500894,48.27664717795621,0 + + + + + + + + + West Virginia + empty + + +states.AREA: + 24228.552 + + +states.STATE_NAME: +West Virginia + + +states.STATE_FIPS: +54 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +WV + + +states.POP2000: + 1808344 + + +states.POP2001: + 1802611 + + +states.POP00_SQMI: + 75 + + +states.DEN_0_100: + 93 + + +USStates.ID: + 35 + + +USStates.State_Name: +West Virginia + + +USStates.Date_Entered: +June 20 1863 + + +USStates.Year_Entered: +1863 + + +USStates.Year_Settled: +1727 + +]]> + #Style_5 + + + -80.614059565661,38.6412110051568,0 + + + + + + -79.2316628792895,38.4804961745132,0 -79.1274272802501,38.6582438834526,0 -79.1210641516119,38.6637673801701,0 -79.088546586161,38.6592052271367,0 -79.0872342316746,38.7072686901771,0 -79.0565552787527,38.7620536715536,0 -79.05480043932219,38.7906328948264,0 -79.03374251686721,38.7999596842489,0 -78.9874530865749,38.8467613817813,0 -78.86656063074361,38.7634041325478,0 -78.81586084106471,38.8337457622327,0 -78.7930553345461,38.8802192733,0 -78.7492528843455,38.9114914729758,0 -78.73773193671219,38.9292828544161,0 -78.72414346436901,38.9303242424267,0 -78.7189859527938,38.9049913858346,0 -78.6802270507461,38.9216841449691,0 -78.6469691460415,38.9505530737122,0 -78.6308475438714,38.9797118741506,0 -78.59869613846099,38.967306737806,0 -78.5532079497434,39.0139362816423,0 -78.5492023399753,39.0234880477595,0 -78.5641793194809,39.0351455339644,0 -78.536651424857,39.0571328491656,0 -78.5016006690667,39.0936843045982,0 -78.4852503468901,39.111944844534,0 -78.4479796847525,39.1190362574345,0 -78.4305689043273,39.1486261929033,0 -78.40236228262261,39.1705945616413,0 -78.4240684786694,39.1976286478836,0 -78.4230690017269,39.2121432300896,0 -78.3991273957871,39.2449527077307,0 -78.4135473819813,39.257540835225,0 -78.3408462579967,39.3414581302015,0 -78.3439287233565,39.3509564427898,0 -78.3654747496783,39.3616867684635,0 -78.350231122076,39.380828452912,0 -78.3475464813471,39.4569981748093,0 -78.2768810730911,39.4234646371798,0 -78.2295086253954,39.39111326311,0 -78.03332834358871,39.2656393181314,0 -77.83068022894911,39.1321813411354,0 -77.8200446831256,39.1417254469273,0 -77.8054492814302,39.1966059388555,0 -77.76823224563999,39.2465502522476,0 -77.7594582704378,39.2846433153217,0 -77.72746748091871,39.3177965867944,0 -77.7500891970593,39.3268181439956,0 -77.7543007117046,39.3385939912988,0 -77.7454504163582,39.3603718912509,0 -77.7562233700037,39.3784762226869,0 -77.7372333565171,39.3961953951361,0 -77.74083452238931,39.4034394054792,0 -77.75698633951841,39.4251637984679,0 -77.8022754371077,39.4323161756799,0 -77.8046940179175,39.4400179505449,0 -77.7957979551353,39.4509164333512,0 -77.8041904928873,39.4631385518333,0 -77.78510893810591,39.459102708835,0 -77.79949832671841,39.4808271058573,0 -77.771551216988,39.4981152221263,0 -77.82518711275171,39.4939074430119,0 -77.84787748402169,39.5020058349846,0 -77.8252634740426,39.5120383875386,0 -77.828925751391,39.5292537667709,0 -77.83546428030221,39.5256107761519,0 -77.8438492144584,39.5319315749014,0 -77.86463209209241,39.5146512457229,0 -77.8695609560795,39.5459120760673,0 -77.8899167307584,39.5580921006877,0 -77.885171166646,39.5644510981679,0 -77.85295909355961,39.5654544565677,0 -77.8398667728917,39.572740433055,0 -77.8424075807765,39.6053745299037,0 -77.855522813824,39.6021663910764,0 -77.88843689880569,39.6165703160658,0 -77.8907409489792,39.6007014665387,0 -77.903253436057,39.5961238764369,0 -77.9386090344815,39.6182180888264,0 -77.9475432559036,39.6150137753716,0 -77.93545786949809,39.5919391289044,0 -77.94497955111849,39.5860111667727,0 -77.96423675783581,39.6113249804037,0 -77.995205151108,39.5989693016707,0 -78.02641818067529,39.6228676658044,0 -78.0943379340484,39.6756002259056,0 -78.1829721387067,39.6946416432551,0 -78.2043044442965,39.6759383682958,0 -78.2275978107419,39.6739888201001,0 -78.22923031045851,39.6585663745485,0 -78.2577267039254,39.6411676777696,0 -78.27301593703299,39.6184096414251,0 -78.3479232590728,39.6405907650805,0 -78.3567810297593,39.6323702224905,0 -78.37767072595661,39.6313171842384,0 -78.3846362229595,39.6144947493043,0 -78.431893779582,39.6209523855928,0 -78.4039995740291,39.5876131045842,0 -78.4506314866027,39.592705125494,0 -78.4618162122069,39.5808339965825,0 -78.4208220953532,39.5494097703543,0 -78.4458699009632,39.5483185504429,0 -78.4558109647124,39.5337352582767,0 -78.4812781842694,39.5199376222576,0 -78.50878283764369,39.525159517656,0 -78.5641887564812,39.521073443727,0 -78.604366257192,39.5356829078104,0 -78.6370818045276,39.5299491862748,0 -78.6491442196502,39.5379978698818,0 -78.6664251857124,39.5369295856868,0 -78.7163150181332,39.5595725682967,0 -78.73271861228101,39.5766427925479,0 -78.7614516806553,39.5817923449266,0 -78.7737430747891,39.6016168803692,0 -78.73625116835829,39.608792329934,0 -78.73049853216,39.6215446407261,0 -78.73238303982021,39.6269651904324,0 -78.7676164768578,39.6266140472135,0 -78.7727054582047,39.6442413593536,0 -78.7981503202116,39.6308329361782,0 -78.7984707782291,39.6154181040351,0 -78.8224126817224,39.5856984808976,0 -78.80655063800541,39.5668238139764,0 -78.8381145866481,39.5633182054468,0 -78.8708155126305,39.5257902221119,0 -78.9553908044919,39.4604587300207,0 -78.970436606663,39.438525300318,0 -79.04885455275689,39.4838153049718,0 -79.0644114910497,39.4858256028263,0 -79.0706297593098,39.4708498495391,0 -79.104597173003,39.4708728556173,0 -79.0967157288178,39.4646284760702,0 -79.1040784853939,39.4473068185213,0 -79.1314006491727,39.4170311916524,0 -79.1581275486525,39.4139606424208,0 -79.16301834698341,39.3934958538665,0 -79.2601680465127,39.3486416544713,0 -79.27982260452779,39.3252435708184,0 -79.29527324453819,39.3005409622397,0 -79.3461946154148,39.2920920071237,0 -79.3848476494521,39.2693006300669,0 -79.4492818447752,39.2120934820003,0 -79.4611919892215,39.2132646214775,0 -79.48986479564221,39.1973957510982,0 -79.480971113096,39.720274058077,0 -79.7651323185042,39.7218070815944,0 -79.9182684921867,39.7216669674993,0 -80.4290823326108,39.7198426041628,0 -80.5242694740401,39.7212089909504,0 -80.5246506803543,39.9584195634812,0 -80.52496218534981,40.0228253262192,0 -80.52604519018939,40.1625211281631,0 -80.5235645344163,40.403033850236,0 -80.52435768303791,40.4787848369009,0 -80.52199952847749,40.6372031779131,0 -80.5744158355721,40.6159741619192,0 -80.6115497018059,40.6200630858018,0 -80.63733821934061,40.613982302321,0 -80.6677276496391,40.5821374643692,0 -80.6686204246359,40.5682789021601,0 -80.63343988239519,40.5392040647419,0 -80.6252533727438,40.5044642482608,0 -80.6018302001708,40.4805390518844,0 -80.6278482893771,40.3982268491052,0 -80.6292446110196,40.3886635709611,0 -80.6092470800706,40.3732754647517,0 -80.60451708240841,40.3062448322667,0 -80.6146878118885,40.2765021361522,0 -80.6501132136987,40.2456798126148,0 -80.67855741943301,40.194151495489,0 -80.7008900358822,40.1681812950244,0 -80.7020651116698,40.1540899859456,0 -80.73823885471551,40.0356640607266,0 -80.7388880114803,39.9834759440017,0 -80.76306009947351,39.947015501453,0 -80.7588871844105,39.9212667893345,0 -80.7681270403387,39.9133131812296,0 -80.7960214112815,39.9198397078312,0 -80.8078400413376,39.9159028725421,0 -80.8121358445091,39.9049014113291,0 -80.7908494426605,39.8723475673467,0 -80.7985253362877,39.8567227242363,0 -80.8259165835688,39.8396671142989,0 -80.8191038347973,39.8090013333355,0 -80.87072776135891,39.7599938351988,0 -80.8564533163278,39.7363355934909,0 -80.8322983936779,39.7188343443337,0 -80.832787434305,39.7034002259532,0 -80.8634141639951,39.6803515272318,0 -80.87274608454371,39.6624110188142,0 -80.8811098930273,39.6240811641343,0 -80.91259057006261,39.6073533140813,0 -80.9326107962525,39.6069409720762,0 -80.9836464085096,39.5818052379779,0 -81.03256860915231,39.544142538686,0 -81.03738319915119,39.5326641774228,0 -81.09824494329121,39.4964511389157,0 -81.11708991317241,39.467783911079,0 -81.180567643956,39.437800182641,0 -81.20030524610981,39.4158962250483,0 -81.2249486327778,39.4083582071948,0 -81.2376212801085,39.388472233438,0 -81.2840170696265,39.387072038012,0 -81.3388361554473,39.3536439576398,0 -81.3759162878324,39.3456902660112,0 -81.4339782748136,39.4060229813656,0 -81.4479558561434,39.4110278039673,0 -81.4650081513692,39.4068583282204,0 -81.54064851311919,39.3527089235402,0 -81.55738794827489,39.3326551943737,0 -81.5726851110575,39.2659175355733,0 -81.6675222725862,39.2704953128172,0 -81.6895262667326,39.2602262835757,0 -81.6979035279936,39.220020030992,0 -81.7230738622105,39.2132681698618,0 -81.758910326595,39.1757512549241,0 -81.74470368597029,39.1258749496768,0 -81.7535616017454,39.0947208175577,0 -81.78636140597079,39.0772573104027,0 -81.8195656534392,39.077016873553,0 -81.824273103509,39.0664159845432,0 -81.8134617903382,39.0441080346264,0 -81.7756796380037,39.0168297231883,0 -81.7817298618878,38.9685290255312,0 -81.7622971158526,38.9301808907728,0 -81.7832252461068,38.9235624308806,0 -81.8237768593835,38.948467790736,0 -81.8409130504285,38.9378897832025,0 -81.8668004270512,38.8857095354934,0 -81.8926954574516,38.8734530024849,0 -81.91524871422909,38.884446578043,0 -81.9318508422449,38.8947421272096,0 -81.89860847229041,38.9322247653254,0 -81.92783006842539,38.9842712717174,0 -81.9377333601398,38.9911756913507,0 -81.9751873204589,38.9930065533181,0 -81.999678576611,39.0152610363642,0 -82.0428855933127,39.0141392723836,0 -82.0585035436315,38.9890655972236,0 -82.0850167494239,38.9771981320238,0 -82.1012069170005,38.9520939616579,0 -82.13931709213161,38.8993984229593,0 -82.14609966838241,38.8387877142417,0 -82.1977219453354,38.8046196832205,0 -82.2167502305976,38.7789394330115,0 -82.1839728099084,38.710302969121,0 -82.18897770390291,38.6778937710105,0 -82.17365706195611,38.6321907721309,0 -82.1842468602663,38.5950322865397,0 -82.2136592450116,38.5848354166427,0 -82.2708972021513,38.5948900812008,0 -82.2899713540982,38.5800813546872,0 -82.3142406687043,38.4652295850629,0 -82.32917938871179,38.4419523430973,0 -82.39476414185761,38.4284703243087,0 -82.41489129697651,38.4303925893994,0 -82.4949877236084,38.405832597411,0 -82.5475481992093,38.4005109785092,0 -82.5754192239026,38.4039021444586,0 -82.5866043088359,38.4125194224537,0 -82.59823915716601,38.3684639621207,0 -82.57229805473899,38.3078110430161,0 -82.5800496260145,38.2925104464826,0 -82.574578950842,38.2559737163217,0 -82.5891132321387,38.2453880857478,0 -82.616228731902,38.2388116463152,0 -82.6066454186315,38.1938262489827,0 -82.6137636388564,38.1780948680894,0 -82.6471582603252,38.1694356505033,0 -82.64612798319701,38.1463307005486,0 -82.5932086977126,38.1099625844435,0 -82.52467860529801,38.0156623478137,0 -82.4757796712415,37.9759070493071,0 -82.480174161688,37.9543964226939,0 -82.49339635192651,37.9425137288734,0 -82.50020946921541,37.9222618980716,0 -82.4376072765301,37.8948548600619,0 -82.4215083258885,37.8723565285176,0 -82.4058057432277,37.8117197137467,0 -82.33984657596631,37.7844003083255,0 -82.3194978866149,37.7584268520686,0 -82.3294012031438,37.7441714871732,0 -82.2956247745408,37.6690580326702,0 -82.2383711562884,37.656775872237,0 -82.20544059754749,37.6240165335496,0 -82.1855494012877,37.6406677677666,0 -82.15931021996209,37.5935690802839,0 -82.1317814946938,37.5905369780361,0 -82.13747341918131,37.5698959116523,0 -82.1465225053321,37.5659208983498,0 -82.1425091726566,37.5574524979734,0 -82.0843920504403,37.5483099090524,0 -82.05566534081019,37.5253425321624,0 -82.0491341809237,37.5514538202535,0 -82.0263511693733,37.5305195250327,0 -81.9765742755516,37.5432534483332,0 -81.95957525592971,37.5311726196289,0 -81.9354500215799,37.5066446664438,0 -81.94799334305409,37.4930262563355,0 -81.9764218630945,37.4829057344135,0 -81.98820252937991,37.4665864944032,0 -81.9207334341144,37.4155161841344,0 -81.9268226400485,37.3717275503644,0 -81.8971581362481,37.3405886156486,0 -81.8638156687728,37.3254560597623,0 -81.8586808412616,37.307031242764,0 -81.83888889774509,37.2855052037829,0 -81.81538106528591,37.2795392280236,0 -81.7926591382367,37.2871534702189,0 -81.7518541120478,37.2722574759975,0 -81.7384563680184,37.2504910806821,0 -81.7017283392091,37.2354348394887,0 -81.66588576064321,37.2049100156006,0 -81.5566542800284,37.2063527636759,0 -81.5055358933554,37.2343721078399,0 -81.4955330784661,37.2528505720872,0 -81.4753603327483,37.2544223575295,0 -81.4033441778724,37.2826247386467,0 -81.3909459604383,37.3111547685878,0 -81.3587948024103,37.3389525257717,0 -81.31187279010121,37.2937070121271,0 -81.2229334626078,37.2402144799779,0 -81.1407375754125,37.2749250164035,0 -81.0249323590475,37.2860611989419,0 -80.98593670753679,37.3062413397341,0 -80.9785356077377,37.2964757957825,0 -80.96789191929319,37.2917914637641,0 -80.9341835390029,37.3013705325277,0 -80.8554293470925,37.3394115247051,0 -80.8484178042257,37.3509434223474,0 -80.8773584695865,37.3886971542785,0 -80.8505252286955,37.4234607507886,0 -80.7996113856773,37.4130624215657,0 -80.7992446500301,37.3917535437627,0 -80.7700223818732,37.3861958412097,0 -80.7629949670439,37.3714139772316,0 -80.7476897645342,37.3790816832203,0 -80.7463242442421,37.3877372428011,0 -80.72973711165071,37.3927194823309,0 -80.7052070760613,37.388378738728,0 -80.5974908951866,37.4460544156491,0 -80.5427553820369,37.469210153305,0 -80.5087647901173,37.4750470031664,0 -80.4878816034022,37.4605973242368,0 -80.48679721638899,37.4338604042898,0 -80.47476472988301,37.4228209443336,0 -80.4253779088728,37.4349064012949,0 -80.3883061551325,37.4657253807092,0 -80.35215686057209,37.4761016187768,0 -80.3475109001899,37.49117712186,0 -80.2879160750838,37.5111511482082,0 -80.280730446809,37.5362590748033,0 -80.3083037500729,37.5283701687601,0 -80.32590580737531,37.5334014957793,0 -80.3167216376968,37.5667185420532,0 -80.2463930602341,37.5968966073136,0 -80.2189280037138,37.624266818855,0 -80.2544222998619,37.6407036415196,0 -80.3009326903108,37.6405469490757,0 -80.30486267871009,37.6522463839109,0 -80.29570065300371,37.6715026681154,0 -80.3031097192157,37.6826718540633,0 -80.2500331441419,37.7260519868,0 -80.25468885608571,37.7572327793138,0 -80.2205461556516,37.7788585452909,0 -80.2237356887328,37.8023645289771,0 -80.1715945425769,37.842968579238,0 -80.17222039082991,37.860184199113,0 -80.16000537205031,37.8772283214768,0 -80.1185073346708,37.8912782976758,0 -80.10649074189941,37.9146585972358,0 -80.0548072329966,37.955647953318,0 -80.0004989600932,37.9898701188515,0 -79.9664936918756,38.0386218574803,0 -79.9575137202729,38.0673653777199,0 -79.9282922008952,38.1033111780769,0 -79.9353269126111,38.1213086373625,0 -79.9103399375918,38.1626063325108,0 -79.9161615169419,38.1792648616985,0 -79.8311519954685,38.2502792510352,0 -79.79362179587,38.2686659933911,0 -79.786511146829,38.2851184419634,0 -79.80277785836461,38.2988699252702,0 -79.80032894262899,38.3143267172637,0 -79.7640044528342,38.3539913109909,0 -79.7328295907797,38.35184011756,0 -79.7200352271452,38.3946858203824,0 -79.6840924127456,38.4302381558023,0 -79.6926537316952,38.50035433771,0 -79.6656146350943,38.5207779063414,0 -79.6694300335236,38.5501770266588,0 -79.642406563286,38.5923552608138,0 -79.5365137543052,38.5538055741145,0 -79.48634757115821,38.4621448879803,0 -79.3169995976733,38.4126332297745,0 -79.27235884061081,38.4373067075038,0 -79.2316628792895,38.4804961745132,0 + + + + + + + + Wisconsin + empty + + +states.AREA: + 56088.178 + + +states.STATE_NAME: +Wisconsin + + +states.STATE_FIPS: +55 + + +states.SUB_REGION: +E N Cen + + +states.STATE_ABBR: +WI + + +states.POP2000: + 5363675 + + +states.POP2001: + 5408886 + + +states.POP00_SQMI: + 96 + + +states.DEN_0_100: + 92 + + +USStates.ID: + 30 + + +USStates.State_Name: +Wisconsin + + +USStates.Date_Entered: +May 29 1848 + + +USStates.Year_Entered: +1848 + + +USStates.Year_Settled: +1766 + +]]> + #Style_5 + + + -90.006191227598,44.6331178864174,0 + + + + + + + -87.74855485166989,44.9616167936432,0 -87.6203354938252,44.9919977731043,0 -87.6185214385406,45.0568068963915,0 -87.58127586164061,45.0946399102465,0 -87.6648864796573,45.1090540526029,0 -87.6728141404664,45.1406726367061,0 -87.72966881168701,45.1766048406442,0 -87.7361999812867,45.1990723551736,0 -87.72162823196,45.2116719436728,0 -87.71966802928161,45.23677159669181,0 -87.7051420461443,45.2470862859939,0 -87.7044714190303,45.2722051755656,0 -87.645362038293,45.34816920676,0 -87.6436840378919,45.3618558882988,0 -87.6895980065264,45.3912693654604,0 -87.76003806908641,45.3528977344774,0 -87.8280078733776,45.3583213196226,0 -87.84128251380081,45.3461489152026,0 -87.86209606573161,45.3701651658513,0 -87.86853527657431,45.3720723766891,0 -87.8739746664525,45.36208580082749,0 -87.8836106233029,45.36585448274341,0 -87.8495317013046,45.4061175328758,0 -87.8602674034623,45.445098404767,0 -87.8136146858711,45.4664604760223,0 -87.78938490783349,45.49906763103741,0 -87.8051409550811,45.5445258364016,0 -87.8286019788526,45.5685917608724,0 -87.78631248967309,45.5685197968153,0 -87.77507546391441,45.6003869719677,0 -87.7760447968861,45.61320014924521,0 -87.8199378153198,45.6544505099681,0 -87.81705427025651,45.6653907719653,0 -87.7809448308433,45.67591566979451,0 -87.7774737292068,45.6841018123955,0 -87.8011558298595,45.70132435444889,0 -87.8015528795181,45.71139103613621,0 -87.8423627328109,45.7224184643369,0 -87.873628831766,45.7506993690495,0 -87.9691796312807,45.7664485705759,0 -87.99006981134831,45.7950463354111,0 -88.0516393398365,45.7861121476097,0 -88.0887340937991,45.79153251888161,0 -88.12994949370579,45.8194019526506,0 -88.121786443611,45.8348779040675,0 -88.0654210733109,45.8736421368008,0 -88.0957641221132,45.8918035055568,0 -88.093850061765,45.9206153043833,0 -88.1113904221148,45.9262876744074,0 -88.15043842419399,45.93629352156811,0 -88.1801939444304,45.9535166684228,0 -88.2149918189356,45.9479016364541,0 -88.25716803963969,45.9670551908873,0 -88.2991520587513,45.9619441469833,0 -88.32132305028109,45.9667127656587,0 -88.3699382062343,45.9945870784701,0 -88.40352211244171,45.9834220708464,0 -88.4543189656679,46.0007603460834,0 -88.483813961278,45.99915098858521,0 -88.49408327895949,46.0129599627087,0 -88.5156131830942,46.01860956196891,0 -88.5483579419945,46.0193002259831,0 -88.575357692098,46.0089590630598,0 -88.5975360335339,46.0155164912387,0 -88.61550234597981,45.9941205068572,0 -88.6436694832571,45.9933882928391,0 -88.6773838648913,46.0201441283944,0 -88.7036055788856,46.01892364058919,0 -88.7264096386053,46.029581736083,0 -88.7730171354202,46.021147746959,0 -88.7774806211023,46.0326143605406,0 -88.7938153525548,46.0363602068919,0 -88.80439717033499,46.0268046239007,0 -88.92519544224371,46.07360150800961,0 -88.9853010679315,46.1003912267907,0 -89.0998061353819,46.14564279170131,0 -89.925136091667,46.30402570041401,0 -90.1116593658125,46.3404289934283,0 -90.11517713167859,46.3651557309551,0 -90.1417974652462,46.39389931520821,0 -90.1613911037779,46.4423800673451,0 -90.2115257849797,46.5062949924702,0 -90.2584017374293,46.5087897865362,0 -90.2697849871137,46.5224805256097,0 -90.300181077668,46.5250515829943,0 -90.3023935803059,46.544296405249,0 -90.3137081584288,46.5515632659266,0 -90.38552505384241,46.5396577407228,0 -90.4081998571279,46.5686106643971,0 -90.54087719523838,46.587526707927,0 -90.73071390600759,46.6456961932741,0 -90.92624380194491,46.5855029087847,0 -90.77744559539779,46.8831225522614,0 -90.77448622396531,46.920235051196,0 -90.86173042389699,46.95247952331161,0 -91.55577281851249,46.7568600006141,0 -91.9214609310238,46.68013425257289,0 -92.0041571605491,46.6838004124073,0 -92.0959698317733,46.742627480002,0 -92.20915417453909,46.6468720259673,0 -92.2872715563534,46.6587860038615,0 -92.28868526089251,46.4159840674228,0 -92.2889439643788,46.1566006735494,0 -92.28937040263681,46.0732311286316,0 -92.3273726656403,46.05687820515121,0 -92.34622483014461,46.02259611620039,0 -92.36496279806639,46.0162488119767,0 -92.424999275654,46.02550410046081,0 -92.46234575772182,45.9811975360765,0 -92.523976865602,45.9825831928093,0 -92.5526720844383,45.951269177817,0 -92.66620788226589,45.9157031282064,0 -92.7062407667141,45.8909581511523,0 -92.73409766347459,45.8449807095829,0 -92.7487619268784,45.8373020678585,0 -92.7791069996475,45.7633404333685,0 -92.8336362361192,45.7308902363902,0 -92.86001973034908,45.7105625427853,0 -92.88539736667759,45.6449553564473,0 -92.87683120537091,45.5788365687146,0 -92.8350370161896,45.5634021889124,0 -92.7621749006385,45.5642634927727,0 -92.72815467639281,45.5472423195578,0 -92.6854210050266,45.47005330592301,0 -92.65481774623471,45.4552217732121,0 -92.64497507097812,45.4394520895191,0 -92.6487510358123,45.3954659291152,0 -92.6848697682278,45.3630764817203,0 -92.70738439950389,45.3182016620431,0 -92.7465933709999,45.2976031328022,0 -92.7554192919425,45.21237648106559,0 -92.76258304535911,45.1866121435376,0 -92.74493484528919,45.15642269767639,0 -92.745422213769,45.1130040157029,0 -92.7967618135124,45.06561027085739,0 -92.76299156220411,45.0221192057595,0 -92.76712645766899,45.00100490501169,0 -92.74976784308311,44.9356555439475,0 -92.75392579385328,44.9150027795129,0 -92.77187081519131,44.8994959546817,0 -92.7642634372038,44.8622340952332,0 -92.76102806028632,44.8353710549111,0 -92.8055846707726,44.7461605361291,0 -92.7371456955245,44.7135944805029,0 -92.6303675936169,44.6426524073846,0 -92.60897363372321,44.6102923158697,0 -92.50921485952681,44.5751591745776,0 -92.3408725165741,44.552835394321,0 -92.32047800875431,44.5404910618561,0 -92.2966874837295,44.4921818837451,0 -92.24910036010419,44.4562167874695,0 -92.20613743547611,44.438394406506,0 -92.09133339981391,44.4155898138742,0 -91.9723859734527,44.3644872200889,0 -91.93886834504872,44.339111391384,0 -91.92275412337878,44.3175199116197,0 -91.92234937163771,44.2883410303644,0 -91.8886943206616,44.2574949606432,0 -91.8487439445729,44.1911872320563,0 -91.75321932280971,44.137227713274,0 -91.65223360680488,44.0668957468858,0 -91.60178627007811,44.0408222716716,0 -91.5691620630017,44.0349552968239,0 -91.5284201557391,44.0342152895652,0 -91.42590181819401,43.9856198570706,0 -91.37335730440661,43.9471911008781,0 -91.2919479787799,43.8471907610578,0 -91.25110489264939,43.7880757984421,0 -91.2589159418758,43.722395792303,0 -91.25838918935199,43.6773222933277,0 -91.23298990442041,43.5988900700786,0 -91.2405580213774,43.5487125887566,0 -91.22356677965871,43.5008086595185,0 -91.2359034673886,43.4646842675378,0 -91.2109165788835,43.4240510516753,0 -91.1982436244129,43.3705129909022,0 -91.1770487337014,43.3539461618861,0 -91.0784980300101,43.3132978076873,0 -91.0664279003866,43.2806829026437,0 -91.06905228836891,43.2578982275476,0 -91.16135406498178,43.1475759290793,0 -91.16857153421861,43.0828878927565,0 -91.15975182052971,43.0811827642084,0 -91.15221381349258,43.0013164133112,0 -91.13912173775438,42.9258937074417,0 -91.09342868782861,42.8714402959622,0 -91.08203032553689,42.7833648801814,0 -91.06616869540581,42.7449138543659,0 -90.9991821130899,42.7070587627347,0 -90.9194089569959,42.6806774289755,0 -90.8925456651592,42.6782400547389,0 -90.74561006958859,42.6570014302673,0 -90.69479111313748,42.6379287671111,0 -90.66438062716411,42.5713918079808,0 -90.6392190290607,42.5557141169534,0 -90.62570743484611,42.5285622838299,0 -90.6384560963599,42.5093636839918,0 -90.42010292616368,42.5083649645861,0 -89.92369141557219,42.5041158651446,0 -89.8347389483978,42.5034685663175,0 -89.4006131996787,42.4975019535639,0 -89.35955888342031,42.4979178413637,0 -88.93918704924511,42.4908797705788,0 -88.76505788322029,42.4909223638021,0 -88.7066230964608,42.4896714789996,0 -88.29798928423431,42.4919886619727,0 -88.1947902657089,42.4896315487889,0 -87.7973819562241,42.4891528495242,0 -87.7915093421034,42.6666421877559,0 -87.75680359819531,42.7775461743457,0 -87.8198490647725,42.8415630287346,0 -87.83643858345231,42.9645925117624,0 -87.8919832366482,43.025774767081,0 -87.8600693594594,43.0758754737799,0 -87.8898341046723,43.1972168501054,0 -87.875332265271,43.3585925444523,0 -87.8029594309868,43.4587140200272,0 -87.78604512144111,43.5462973726183,0 -87.70272990708931,43.673176184158,0 -87.72612185690799,43.8939039013687,0 -87.6443707723702,44.0978304833909,0 -87.517321870142,44.1757544438288,0 -87.5374888264266,44.327851040331,0 -87.47352841738911,44.533946428449,0 -87.3730698286243,44.6769179257202,0 -87.3144651480241,44.7947187667926,0 -87.3674596241917,44.8115671454801,0 -87.4337469078088,44.8910966193734,0 -87.55167267236649,44.823023674588,0 -87.552787538369,44.851335539726,0 -87.61446385443389,44.8330474436257,0 -87.723821711772,44.6892873054325,0 -87.76422675186269,44.6440484536295,0 -87.86878274845451,44.6169062804272,0 -87.9264086419018,44.5391395831433,0 -87.9662280659456,44.5354962244836,0 -88.0404176211491,44.5714491701447,0 -88.0130207863445,44.6222344891289,0 -87.9757579463198,44.5958140991105,0 -88.0132878703546,44.6391183587922,0 -87.9831820526739,44.6772654177868,0 -87.9857916005318,44.7204744571881,0 -87.8310199470414,44.8733464383329,0 -87.83999268056699,44.9273231952437,0 -87.74855485166989,44.9616167936432,0 + + + + + + + + + -87.0345243941477,45.29040569681539,0 -87.0660643522929,45.29646276758369,0 -87.17791321565861,45.1549729181694,0 -87.2309150393896,45.1750634565753,0 -87.28348460482739,45.05261932024141,0 -87.3421608618244,45.0152129710161,0 -87.4054197495813,44.9111998705663,0 -87.3787368982934,44.8377427071621,0 -87.3111236315354,44.7987737179537,0 -87.2056505657533,44.8732394343083,0 -87.168787947216,44.9333234999383,0 -87.1786927530738,44.9828064333324,0 -87.1125569146153,45.0647632237614,0 -87.08390064938131,45.0532855496328,0 -87.087678597292,45.0921787982349,0 -87.0449009447467,45.0955132700304,0 -87.0798757822438,45.14730698190781,0 -87.025448092593,45.1499741010013,0 -87.0451125513507,45.2490190549771,0 -86.9957342551258,45.2184117241819,0 -86.9677122639217,45.2402774692093,0 -86.9862536657799,45.29865699129501,0 -87.0345243941477,45.29040569681539,0 + + + + + + + + + Wyoming + empty + + +states.AREA: + 97803.199 + + +states.STATE_NAME: +Wyoming + + +states.STATE_FIPS: +56 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +WY + + +states.POP2000: + 493782 + + +states.POP2001: + 495345 + + +states.POP00_SQMI: + 5 + + +states.DEN_0_100: + 100 + + +USStates.ID: + 44 + + +USStates.State_Name: +Wyoming + + +USStates.Date_Entered: +July 10 1890 + + +USStates.Year_Entered: +1890 + + +USStates.Year_Settled: +1834 + +]]> + #Style_5 + + + -107.553081008537,42.9982837598069,0 + + + + + + -104.053615199998,41.698218257724,0 -104.053513414154,41.9998153422964,0 -104.056219380476,42.6146696865973,0 -104.056198856311,43.0030623563908,0 -104.059157507468,43.4791339417582,0 -104.057913943497,43.5037122621461,0 -104.059479420181,43.8529065675403,0 -104.059731381692,44.1458254687842,0 -104.061036140765,44.1818252843501,0 -104.059465130268,44.5743526100096,0 -104.059842395291,44.9973362616199,0 -105.041795987521,45.0010758746085,0 -105.08500310735,44.9998170469188,0 -106.021150701601,44.9972137020636,0 -106.259231717931,44.9961625110408,0 -107.894374357914,44.9997736986363,0 -108.259238500746,45.00011515017601,0 -108.625256221974,44.9975931654829,0 -109.799385375449,44.9995227676354,0 -109.99552921526,45.0027929256921,0 -110.392759905743,44.9986252880153,0 -110.429649489646,44.9922851168859,0 -111.053428630452,44.9956954937749,0 -111.051615814026,44.6644904630696,0 -111.051560651262,44.4733232643312,0 -111.050405173289,43.9825533508377,0 -111.046771181184,43.5155282322774,0 -111.047498202203,43.2847346290475,0 -111.04921566545,43.0198830902658,0 -111.046780328328,42.503251870505,0 -111.04869741386,41.9962033494069,0 -111.051068773655,41.578592411864,0 -111.051651122482,41.2584254005779,0 -111.05102250907,40.9965835985974,0 -110.06318573561,40.9978919528284,0 -110.002165480573,40.9975995171866,0 -109.048314704754,40.9984333935171,0 -107.918671336725,41.0033751160193,0 -107.304051053295,41.0001333468858,0 -106.865438763821,40.9984573861084,0 -106.329125682765,41.001288969127,0 -106.203471481278,41.0000850018961,0 -105.278797604523,40.9963491628159,0 -104.934492922627,40.9942891435778,0 -104.05170553525,41.00321132686,0 -104.054012364451,41.3880858190034,0 -104.055500519791,41.5642223678205,0 -104.053615199998,41.698218257724,0 + + + + + + + + diff --git a/test/spec/ol/format/kmlformat.test.js b/test/spec/ol/format/kmlformat.test.js new file mode 100644 index 0000000000..ff4375216d --- /dev/null +++ b/test/spec/ol/format/kmlformat.test.js @@ -0,0 +1,1311 @@ +goog.provide('ol.test.format.KML'); + + +describe('ol.format.KML', function() { + + var format; + beforeEach(function() { + format = new ol.format.KML(); + }); + + describe('#readFeatures', function() { + + describe('id', function() { + + it('can read a Feature\'s id', function() { + var text = + '' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.getId()).to.be('foo'); + }); + + it('treats a missing id as undefined', function() { + var text = + '' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.getId()).to.be(undefined); + }); + + }); + + describe('geometry', function() { + + it('treats a missing geometry as null', function() { + var text = + '' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be(null); + }); + + it('can read Point geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' 1,2,3' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.Point); + expect(g.getCoordinates()).to.eql([1, 2, 3]); + }); + + it('can read LineString geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' 1,2,3 4,5,6' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.LineString); + expect(g.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]); + }); + + it('can read Polygon geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' 0,0,1 0,5,1 5,5,2 5,0,3' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.Polygon); + expect(g.getCoordinates()).to.eql( + [[[0, 0, 1], [0, 5, 1], [5, 5, 2], [5, 0, 3]]]); + }); + + it('can read complex Polygon geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' 1,1,0 1,2,0 2,2,0 2,1,0' + + ' ' + + ' ' + + ' ' + + ' ' + + ' 3,3,0 3,4,0 4,4,0 4,3,0' + + ' ' + + ' ' + + ' ' + + ' ' + + ' 0,0,1 0,5,1 5,5,2 5,0,3' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.Polygon); + expect(g.getCoordinates()).to.eql( + [[[0, 0, 1], [0, 5, 1], [5, 5, 2], [5, 0, 3]], + [[1, 1, 0], [1, 2, 0], [2, 2, 0], [2, 1, 0]], + [[3, 3, 0], [3, 4, 0], [4, 4, 0], [4, 3, 0]]]); + }); + + it('can read MultiPoint geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' 1,2,3' + + ' ' + + ' ' + + ' 4,5,6' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.MultiPoint); + expect(g.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]); + }); + + it('can read MultiLineString geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' 1,2,3 4,5,6' + + ' ' + + ' ' + + ' 7,8,9 10,11,12' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.MultiLineString); + expect(g.getCoordinates()).to.eql( + [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]); + }); + + it('can read MultiPolygon geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' 0,0,0 0,1,0 1,1,0 1,0,0' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' 3,0,0 3,1,0 4,1,0 4,0,0' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.MultiPolygon); + expect(g.getCoordinates()).to.eql( + [[[[0, 0, 0], [0, 1, 0], [1, 1, 0], [1, 0, 0]]], + [[[3, 0, 0], [3, 1, 0], [4, 1, 0], [4, 0, 0]]]]); + }); + + it('can read empty GeometryCollection geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.GeometryCollection); + expect(g.getGeometries()).to.be.empty(); + }); + + it('can read heterogenous GeometryCollection geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' 1,2,3' + + ' ' + + ' ' + + ' 1,2,3 4,5,6' + + ' ' + + ' ' + + ' ' + + ' ' + + ' 0,0,0 0,1,0 1,1,0 1,0,0' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.GeometryCollection); + var gs = g.getGeometries(); + expect(gs).to.have.length(3); + expect(gs[0]).to.be.an(ol.geom.Point); + expect(gs[1]).to.be.an(ol.geom.LineString); + expect(gs[2]).to.be.an(ol.geom.Polygon); + }); + + it('can read nested GeometryCollection geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.GeometryCollection); + var gs = g.getGeometries(); + expect(gs).to.have.length(1); + expect(gs[0]).to.be.an(ol.geom.GeometryCollection); + }); + + }); + + describe('attributes', function() { + + it('can read boolean attributes', function() { + var text = + '' + + ' ' + + ' 1' + + ' 0' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.get('open')).to.be(true); + expect(f.get('visibility')).to.be(false); + }); + + it('can read string attributes', function() { + var text = + '' + + ' ' + + '
My address
' + + ' My description' + + ' My name' + + ' My phone number' + + '
' + + '
'; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.get('address')).to.be('My address'); + expect(f.get('description')).to.be('My description'); + expect(f.get('name')).to.be('My name'); + expect(f.get('phoneNumber')).to.be('My phone number'); + }); + + it('strips leading and trailing whitespace in strings', function() { + var text = + '' + + ' ' + + ' \n\nMy description\n\n' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.get('description')).to.be('My description'); + }); + + it('can read CDATA sections in strings', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.get('name')).to.be('My name in CDATA'); + }); + + it('strips leading and trailing whitespace around CDATA', function() { + var text = + '' + + ' ' + + ' \n\n\n\n' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.get('name')).to.be('My name in CDATA'); + }); + + }); + + describe('extended data', function() { + + it('can read ExtendedData', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' bar' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.get('foo')).to.be('bar'); + }); + + it('can read SchemaData', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' London' + + ' 60000000' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.get('capital')).to.be('London'); + expect(f.get('population')).to.be('60000000'); + }); + }); + + describe('styles', function() { + + it('applies the default style if no style is defined', function() { + var text = + '' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var style = styleArray[0]; + expect(style).to.be.an(ol.style.Style); + expect(style.getFill()).to.be(ol.format.KML.DEFAULT_FILL_STYLE_); + expect(style.getFill().getColor()).to.eql([255, 255, 255, 1]); + expect(style.getImage()).to.be(ol.format.KML.DEFAULT_IMAGE_STYLE_); + // FIXME check image style + expect(style.getStroke()).to.be(ol.format.KML.DEFAULT_STROKE_STYLE_); + expect(style.getStroke().getColor()).to.eql([255, 255, 255, 1]); + expect(style.getStroke().getWidth()).to.be(1); + }); + + it('can read a feature\'s LineStyle', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var style = styleArray[0]; + expect(style).to.be.an(ol.style.Style); + expect(style.getFill()).to.be(ol.format.KML.DEFAULT_FILL_STYLE_); + expect(style.getImage()).to.be(ol.format.KML.DEFAULT_IMAGE_STYLE_); + var strokeStyle = style.getStroke(); + expect(strokeStyle).to.be.an(ol.style.Stroke); + expect(strokeStyle.getColor()).to.eql([0x78, 0x56, 0x34, 0x12 / 255]); + expect(strokeStyle.getWidth()).to.be(9); + expect(style.getText()).to.be(null); + expect(style.getZIndex()).to.be(undefined); + }); + + it('can read a feature\'s PolyStyle', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var style = styleArray[0]; + expect(style).to.be.an(ol.style.Style); + var fillStyle = style.getFill(); + expect(fillStyle).to.be.an(ol.style.Fill); + expect(fillStyle.getColor()).to.eql([0x78, 0x56, 0x34, 0x12 / 255]); + expect(style.getImage()).to.be(ol.format.KML.DEFAULT_IMAGE_STYLE_); + expect(style.getStroke()).to.be(ol.format.KML.DEFAULT_STROKE_STYLE_); + expect(style.getText()).to.be(null); + expect(style.getZIndex()).to.be(undefined); + }); + + it('can read a feature\'s LineStyle and PolyStyle', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var style = styleArray[0]; + expect(style).to.be.an(ol.style.Style); + var fillStyle = style.getFill(); + expect(fillStyle).to.be.an(ol.style.Fill); + expect(fillStyle.getColor()).to.eql([0x78, 0x56, 0x34, 0x12 / 255]); + expect(style.getImage()).to.be(ol.format.KML.DEFAULT_IMAGE_STYLE_); + var strokeStyle = style.getStroke(); + expect(strokeStyle).to.be.an(ol.style.Stroke); + expect(strokeStyle.getColor()).to.eql([0x78, 0x56, 0x34, 0x12 / 255]); + expect(strokeStyle.getWidth()).to.be(9); + expect(style.getText()).to.be(null); + expect(style.getZIndex()).to.be(undefined); + }); + + it('disables the fill when fill is \'0\'', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var style = styleArray[0]; + expect(style).to.be.an(ol.style.Style); + expect(style.getFill()).to.be(null); + expect(style.getImage()).to.be(ol.format.KML.DEFAULT_IMAGE_STYLE_); + var strokeStyle = style.getStroke(); + expect(strokeStyle).to.be.an(ol.style.Stroke); + expect(strokeStyle.getColor()).to.eql([0x78, 0x56, 0x34, 0x12 / 255]); + expect(strokeStyle.getWidth()).to.be(9); + expect(style.getText()).to.be(null); + expect(style.getZIndex()).to.be(undefined); + }); + + it('disables the stroke when outline is \'0\'', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var style = styleArray[0]; + expect(style).to.be.an(ol.style.Style); + var fillStyle = style.getFill(); + expect(fillStyle).to.be.an(ol.style.Fill); + expect(fillStyle.getColor()).to.eql([0x78, 0x56, 0x34, 0x12 / 255]); + expect(style.getImage()).to.be(ol.format.KML.DEFAULT_IMAGE_STYLE_); + expect(style.getStroke()).to.be(null); + expect(style.getText()).to.be(null); + expect(style.getZIndex()).to.be(undefined); + }); + + it('disables both fill and stroke when fill and outline are \'0\'', + function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var style = styleArray[0]; + expect(style).to.be.an(ol.style.Style); + expect(style.getFill()).to.be(null); + expect(style.getImage()).to.be(ol.format.KML.DEFAULT_IMAGE_STYLE_); + expect(style.getStroke()).to.be(null); + expect(style.getText()).to.be(null); + expect(style.getZIndex()).to.be(undefined); + }); + + }); + + describe('style maps', function() { + + it('can read a normal style', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' normal' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var s = styleArray[0]; + expect(s).to.be.an(ol.style.Style); + expect(s.getFill()).not.to.be(null); + expect(s.getFill().getColor()).to.eql([0, 0, 0, 0]); + }); + + it('ignores highlight styles', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' highlighted' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var s = styleArray[0]; + expect(s).to.be.an(ol.style.Style); + expect(s).to.be(ol.format.KML.DEFAULT_STYLE_); + + }); + + it('uses normal styles instead of highlight styles', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' normal' + + ' ' + + ' ' + + ' ' + + ' highlighted' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var s = styleArray[0]; + expect(s).to.be.an(ol.style.Style); + expect(s.getFill()).not.to.be(null); + expect(s.getFill().getColor()).to.eql([0, 0, 0, 0]); + }); + + it('can read a normal styleUrls', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' normal' + + ' #foo' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var s = styleArray[0]; + expect(s).to.be.an(ol.style.Style); + expect(s.getFill()).not.to.be(null); + expect(s.getFill().getColor()).to.eql([0, 0, 0, 0]); + }); + + it('ignores highlighted styleUrls', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' highlighted' + + ' #foo' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var s = styleArray[0]; + expect(s).to.be.an(ol.style.Style); + expect(s).to.be(ol.format.KML.DEFAULT_STYLE_); + }); + + }); + + describe('shared styles', function() { + + it('can apply a shared style to a feature', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' #foo' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var style = styleArray[0]; + expect(style).to.be.an(ol.style.Style); + var fillStyle = style.getFill(); + expect(fillStyle).to.be.an(ol.style.Fill); + expect(fillStyle.getColor()).to.eql([0x78, 0x56, 0x34, 0x12 / 255]); + }); + + it('can read a shared style from a Folder', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' #foo' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var styleFunction = f.getStyleFunction(); + expect(styleFunction).not.to.be(undefined); + var styleArray = styleFunction.call(f, 0); + expect(styleArray).to.be.an(Array); + expect(styleArray).to.have.length(1); + var style = styleArray[0]; + expect(style).to.be.an(ol.style.Style); + var fillStyle = style.getFill(); + expect(fillStyle).to.be.an(ol.style.Fill); + expect(fillStyle.getColor()).to.eql([0x78, 0x56, 0x34, 0x12 / 255]); + }); + + it('can apply a shared style to multiple features', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' #foo' + + ' ' + + ' ' + + ' #foo' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(2); + var f1 = fs[0]; + expect(f1).to.be.an(ol.Feature); + var styleFunction1 = f1.getStyleFunction(); + expect(styleFunction1).not.to.be(undefined); + var styleArray1 = styleFunction1.call(f1, 0); + expect(styleArray1).to.be.an(Array); + var f2 = fs[1]; + expect(f2).to.be.an(ol.Feature); + var styleFunction2 = f2.getStyleFunction(); + expect(styleFunction2).not.to.be(undefined); + var styleArray2 = styleFunction2.call(f2, 0); + expect(styleArray2).to.be.an(Array); + expect(styleArray1).to.be(styleArray2); + }); + + }); + + describe('multiple features', function() { + + it('returns no features from an empty Document', function() { + var text = + '' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.be.empty(); + }); + + it('can read a single feature from a Document', function() { + var text = + '' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + expect(fs[0]).to.be.an(ol.Feature); + }); + + it('can read a multiple features from a Document', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(2); + expect(fs[0]).to.be.an(ol.Feature); + expect(fs[0].getId()).to.be('1'); + expect(fs[1]).to.be.an(ol.Feature); + expect(fs[1].getId()).to.be('2'); + }); + + it('returns no features from an empty Folder', function() { + var text = + '' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.be.empty(); + }); + + it('can read a single feature from a Folder', function() { + var text = + '' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + expect(fs[0]).to.be.an(ol.Feature); + }); + + it('can read a multiple features from a Folder', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(2); + expect(fs[0]).to.be.an(ol.Feature); + expect(fs[0].getId()).to.be('1'); + expect(fs[1]).to.be.an(ol.Feature); + expect(fs[1].getId()).to.be('2'); + }); + + it('can read features from Folders nested in Documents', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + expect(fs[0]).to.be.an(ol.Feature); + }); + + it('can read features from Folders nested in Folders', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + expect(fs[0]).to.be.an(ol.Feature); + }); + + it('can read a single feature', function() { + var text = + '' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + expect(fs[0]).to.be.an(ol.Feature); + }); + + it('can read features at multiple levels', function() { + var text = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(5); + expect(fs[0]).to.be.an(ol.Feature); + expect(fs[0].getId()).to.be('a'); + expect(fs[1]).to.be.an(ol.Feature); + expect(fs[1].getId()).to.be('b'); + expect(fs[2]).to.be.an(ol.Feature); + expect(fs[2].getId()).to.be('c'); + expect(fs[3]).to.be.an(ol.Feature); + expect(fs[3].getId()).to.be('d'); + expect(fs[4]).to.be.an(ol.Feature); + expect(fs[4].getId()).to.be('e'); + }); + + it('supports common namespaces', function() { + expect(format.readFeatures( + '' + + ' ' + + '')).to.have.length(1); + expect(format.readFeatures( + '' + + ' ' + + '')).to.have.length(1); + expect(format.readFeatures( + '' + + ' ' + + '')).to.have.length(1); + }); + + it('ignores unknown namespaces', function() { + expect(format.readFeatures( + '' + + ' ' + + '')).to.be.empty(); + }); + + }); + + describe('error handling', function() { + + it('should ignore invalid coordinates', function() { + var doc = goog.dom.xml.loadXml('INVALID'); + var node = doc.firstChild; + expect(ol.format.KML.readFlatCoordinates_(node)).to.be(undefined); + }); + + it('should ignore Points with invalid coordinates', function() { + var kml = + '' + + ' ' + + ' ' + + ' INVALID COORDINATES' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(kml); + expect(fs).to.be.an(Array); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.getGeometry()).to.be(null); + }); + + it('should ignore LineStrings with invalid coordinates', function() { + var kml = + '' + + ' ' + + ' ' + + ' INVALID COORDINATES' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(kml); + expect(fs).to.be.an(Array); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.getGeometry()).to.be(null); + }); + + it('should ignore Polygons with no rings', function() { + var kml = + '' + + ' ' + + ' ' + + ' INVALID COORDINATES' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(kml); + expect(fs).to.be.an(Array); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.getGeometry()).to.be(null); + }); + + it('should ignore Polygons with no outer ring', function() { + var kml = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' 1,2,3 4,5,6 7,8,9' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(kml); + expect(fs).to.be.an(Array); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.getGeometry()).to.be(null); + }); + + it('should ignore geometries with invalid coordinates', function() { + var kml = + '' + + ' ' + + ' ' + + ' ' + + ' INVALID COORDINATES' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(kml); + expect(fs).to.be.an(Array); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.GeometryCollection); + expect(g.getGeometries()).to.be.empty(); + }); + + it('should ignore invalid booleans', function() { + var kml = + '' + + ' ' + + ' foo' + + ' ' + + ''; + var fs = format.readFeatures(kml); + expect(fs).to.be.an(Array); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + expect(f.get('visibility')).to.be(undefined); + }); + + it('parse all valid features in a Folder, without error', function() { + var kml = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' foo' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(kml); + expect(fs).to.be.an(Array); + expect(fs).to.have.length(5); + expect(fs[0]).to.be.an(ol.Feature); + expect(fs[0].getId()).to.be('a'); + expect(fs[1]).to.be.an(ol.Feature); + expect(fs[1].getId()).to.be('b'); + expect(fs[2]).to.be.an(ol.Feature); + expect(fs[2].getId()).to.be('c'); + expect(fs[3]).to.be.an(ol.Feature); + expect(fs[3].getId()).to.be('d'); + expect(fs[4]).to.be.an(ol.Feature); + expect(fs[4].getId()).to.be('e'); + }); + + }); + + }); + + describe('when parsing states.kml', function() { + + var features; + before(function(done) { + afterLoadXml('spec/ol/format/kml/states.kml', function(xml) { + try { + features = format.readFeatures(xml); + } catch (e) { + done(e); + } + done(); + }); + }); + + it('creates 50 features', function() { + expect(features).to.have.length(50); + }); + + it('creates features with heterogenous geometry collections', function() { + // FIXME decide if we should instead create features with multiple geoms + var feature = features[0]; + expect(feature).to.be.an(ol.Feature); + var geometry = feature.getGeometry(); + expect(geometry).to.be.an(ol.geom.GeometryCollection); + }); + + it('creates a Point and a MultiPolygon for Alaska', function() { + var alaska = goog.array.find(features, function(feature) { + return feature.get('name') === 'Alaska'; + }); + expect(alaska).to.be.an(ol.Feature); + var geometry = alaska.getGeometry(); + expect(geometry).to.be.an(ol.geom.GeometryCollection); + var components = geometry.getGeometries(); + expect(components).to.have.length(2); + expect(components[0]).to.be.an(ol.geom.Point); + expect(components[1]).to.be.an(ol.geom.MultiPolygon); + }); + + }); + +}); + + +goog.require('goog.array'); +goog.require('goog.dom.xml'); +goog.require('ol.Feature'); +goog.require('ol.format.KML'); +goog.require('ol.geom.GeometryCollection'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.MultiLineString'); +goog.require('ol.geom.MultiPoint'); +goog.require('ol.geom.MultiPolygon'); +goog.require('ol.geom.Point'); +goog.require('ol.geom.Polygon'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); From 904578f694b5115efa6eda3c87f913de3936a7ff Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:06:28 +0100 Subject: [PATCH 690/919] Add ol.source.KML --- src/objectliterals.jsdoc | 13 +++++++++++++ src/ol/source/kmlsource.exports | 1 + src/ol/source/kmlsource.js | 31 +++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 src/ol/source/kmlsource.exports create mode 100644 src/ol/source/kmlsource.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 8b594a8868..8db688424c 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -536,6 +536,19 @@ * @property {Object|undefined} params Additional parameters. */ +/** + * @typedef {Object} olx.source.KMLOptions + * @property {Array.|undefined} attributions Attributions. + * @property {Document|undefined} doc Document. + * @property {ol.Extent|undefined} extent Extent. + * @property {string|undefined} logo Logo. + * @property {Node|undefined| node Node. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {ol.proj.ProjectionLike} reprojectTo Re-project to. + * @property {string|undefined} text Text. + * @property {string|undefined} url URL. + */ + /** * @typedef {Object} olx.source.MapQuestOptions * @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional diff --git a/src/ol/source/kmlsource.exports b/src/ol/source/kmlsource.exports new file mode 100644 index 0000000000..45c5580867 --- /dev/null +++ b/src/ol/source/kmlsource.exports @@ -0,0 +1 @@ +@exportSymbol ol.source.KML diff --git a/src/ol/source/kmlsource.js b/src/ol/source/kmlsource.js new file mode 100644 index 0000000000..ef951220ed --- /dev/null +++ b/src/ol/source/kmlsource.js @@ -0,0 +1,31 @@ +goog.provide('ol.source.KML'); + +goog.require('ol.format.KML'); +goog.require('ol.source.VectorFile'); + + + +/** + * @constructor + * @extends {ol.source.VectorFile} + * @param {olx.source.KMLOptions=} opt_options Options. + */ +ol.source.KML = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + goog.base(this, { + attributions: options.attributions, + doc: options.doc, + extent: options.extent, + format: new ol.format.KML(), + logo: options.logo, + node: options.node, + projection: options.projection, + reprojectTo: options.reprojectTo, + text: options.text, + url: options.url + }); + +}; +goog.inherits(ol.source.KML, ol.source.VectorFile); From cd8a5fbe4dc993e5ae486537d0b501b6762a4ed5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:07:15 +0100 Subject: [PATCH 691/919] Add kml-timezones example --- examples/kml-timezones.html | 63 ++++++++++++++++++++++ examples/kml-timezones.js | 102 ++++++++++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 examples/kml-timezones.html create mode 100644 examples/kml-timezones.js diff --git a/examples/kml-timezones.html b/examples/kml-timezones.html new file mode 100644 index 0000000000..e8c6c57446 --- /dev/null +++ b/examples/kml-timezones.html @@ -0,0 +1,63 @@ + + + + + + + + + + + Timezones in KML + + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Timezones in KML

+

Demonstrates rendering timezones from KML.

+
+

This example parses a KML file and renders the features as a vector layer. The layer is given a ol.style.Style that fills timezones yellow with an opacity calculated based on the current offset to local noon.

+

See the kml-timezones.js source to see how this is done.

+
+
KML, vector, style
+
+
+ +
+ + + + + + + + diff --git a/examples/kml-timezones.js b/examples/kml-timezones.js new file mode 100644 index 0000000000..b4f475512b --- /dev/null +++ b/examples/kml-timezones.js @@ -0,0 +1,102 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.source.KML'); +goog.require('ol.source.Stamen'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); + + +/* + * Compute the style of the feature. Here we want the opacity of polygons to + * be based on the offset from local noon. For example, a timezone where it is + * currently noon would have an opacity of 0.75. And a timezone where it is + * currently midnight would have an opacity of 0. This doesn't account for + * daylight savings, so don't use it to plan your vacation. + */ +var styleFunction = function(feature, resolution) { + var offset = 0; + var name = feature.get('name'); // e.g. GMT -08:30 + var match = name.match(/([\-+]\d{2}):(\d{2})$/); + if (match) { + var hours = parseInt(match[1], 10); + var minutes = parseInt(match[2], 10); + offset = 60 * hours + minutes; + } + var date = new Date(); + var local = new Date(date.getTime() + + (date.getTimezoneOffset() + offset) * 60000); + // offset from local noon (in hours) + var delta = Math.abs(12 - local.getHours() + (local.getMinutes() / 60)); + if (delta > 12) { + delta = 24 - delta; + } + var opacity = 0.75 * (1 - delta / 12); + return [new ol.style.Style({ + fill: new ol.style.Fill({ + color: [0xff, 0xff, 0x33, opacity] + }), + stroke: new ol.style.Stroke({ + color: '#ffffff' + }) + })]; +}; + +var vector = new ol.layer.Vector({ + source: new ol.source.KML({ + url: 'data/kml/timezones.kml' + }), + styleFunction: styleFunction +}); + +var raster = new ol.layer.Tile({ + source: new ol.source.Stamen({ + layer: 'toner' + }) +}); + +var map = new ol.Map({ + layers: [raster, vector], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); + +var info = $('#info'); +info.tooltip({ + animation: false, + trigger: 'manual' +}); + +var displayFeatureInfo = function(evt) { + var pixel = map.getEventPixel(evt.originalEvent); + info.css({ + left: pixel[0] + 'px', + top: (pixel[1] - 15) + 'px' + }); + var feature = map.forEachFeatureAtPixel(pixel, function(feature, layer) { + return feature; + }); + if (feature) { + info.tooltip('hide') + .attr('data-original-title', feature.get('name')) + .tooltip('fixTitle') + .tooltip('show'); + } else { + info.tooltip('hide'); + } +}; + +$(map.getViewport()).on('mousemove', function(evt) { + displayFeatureInfo(evt); +}); + +map.on('singleclick', function(evt) { + displayFeatureInfo(evt); +}); From 782616c1bbae8068f05a6296de0df6ea3a79e496 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:07:46 +0100 Subject: [PATCH 692/919] Ensure that features in example KML data are visible --- examples/data/kml/lines.kml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/data/kml/lines.kml b/examples/data/kml/lines.kml index cea9668e7a..53aa41a683 100644 --- a/examples/data/kml/lines.kml +++ b/examples/data/kml/lines.kml @@ -104,13 +104,13 @@ Paths - 0 + 1 Examples of paths. Note that the tessellate tag is by default set to 0. If you want to create tessellated lines, they must be authored (or edited) directly in KML. Tessellated - 0 + 1 tag has a value of 1, the line will contour to the underlying terrain]]> -112.0822680013139 @@ -128,7 +128,7 @@ Untessellated - 0 + 1 tag has a value of 0, the line follow a simple straight-line path from point to point]]> -112.0822680013139 @@ -146,7 +146,7 @@ Absolute - 0 + 1 Transparent purple line -112.2719329043177 @@ -175,7 +175,7 @@ Absolute Extruded - 0 + 1 Transparent green wall with yellow outlines -112.2643334742529 @@ -205,7 +205,7 @@ Relative - 0 + 1 Black line (10 pixels wide), height tracks terrain -112.2580438551384 @@ -234,7 +234,7 @@ Relative Extruded - 0 + 1 Opaque blue walls with red outline, height tracks terrain -112.2683594333433 From d81efbcd132644d845f4dac84977bf6e3eb4692c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:08:20 +0100 Subject: [PATCH 693/919] Correct styleUrls in example KML data --- examples/data/kml/lines.kml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/data/kml/lines.kml b/examples/data/kml/lines.kml index 53aa41a683..86c518b7df 100644 --- a/examples/data/kml/lines.kml +++ b/examples/data/kml/lines.kml @@ -265,7 +265,7 @@ Blue Icon Just another blue icon. - data/kml/styles.kml#blueIcons + styles.kml#blueIcons -112.292238941097,36.09520916122063,630 @@ -273,7 +273,7 @@ Sun Icon Just another sun icon. - data/kml/styles.kml#sunIconMap + styles.kml#sunIconMap -112.292238941097,36.15520916122063,630 From c859dd0e941f9d25722ab5522c427350feba2976 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:08:44 +0100 Subject: [PATCH 694/919] Add kml example --- examples/kml.html | 56 +++++++++++++++++++++++++++++++++++++++++ examples/kml.js | 64 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 examples/kml.html create mode 100644 examples/kml.js diff --git a/examples/kml.html b/examples/kml.html new file mode 100644 index 0000000000..ec852da5e2 --- /dev/null +++ b/examples/kml.html @@ -0,0 +1,56 @@ + + + + + + + + + + + KML example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

KML example

+

Example of using the KML source.

+
+

See the kml.js source to see how this is done.

+
+
KML
+
+
+
+   +
+
+ +
+ +
+ + + + + + + diff --git a/examples/kml.js b/examples/kml.js new file mode 100644 index 0000000000..29236850c7 --- /dev/null +++ b/examples/kml.js @@ -0,0 +1,64 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.source.KML'); +goog.require('ol.source.TileWMS'); + +var raster = new ol.layer.Tile({ + source: new ol.source.TileWMS({ + url: 'http://vmap0.tiles.osgeo.org/wms/vmap0', + crossOrigin: null, + params: { + 'LAYERS': 'basic', + 'VERSION': '1.1.1', + 'FORMAT': 'image/jpeg' + } + }) +}); + +var vector = new ol.layer.Vector({ + source: new ol.source.KML({ + reprojectTo: 'EPSG:4326', + url: 'data/kml/lines.kml' + }) +}); + +var map = new ol.Map({ + layers: [raster, vector], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + projection: 'EPSG:4326', + center: [-112.169, 36.099], + zoom: 11 + }) +}); + +var displayFeatureInfo = function(pixel) { + var features = []; + map.forEachFeatureAtPixel(pixel, function(feature, layer) { + features.push(feature); + }); + if (features.length > 0) { + var info = []; + var i, ii; + for (i = 0, ii = features.length; i < ii; ++i) { + info.push(features[i].get('name')); + } + document.getElementById('info').innerHTML = info.join(', ') || ' '; + } else { + document.getElementById('info').innerHTML = ' '; + } +}; + +$(map.getViewport()).on('mousemove', function(evt) { + var pixel = map.getEventPixel(evt.originalEvent); + displayFeatureInfo(pixel); +}); + +map.on('singleclick', function(evt) { + var pixel = evt.getPixel(); + displayFeatureInfo(pixel); +}); From 828c35d2390491dd4b381a822ab94445d0bfb00c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:12:33 +0100 Subject: [PATCH 695/919] Use more interesting data in KML example --- examples/data/kml/2012-02-10.kml | 9391 ++++++++++++++++++++++++++++++ examples/kml.js | 22 +- 2 files changed, 9399 insertions(+), 14 deletions(-) create mode 100644 examples/data/kml/2012-02-10.kml diff --git a/examples/data/kml/2012-02-10.kml b/examples/data/kml/2012-02-10.kml new file mode 100644 index 0000000000..6c1bc47196 --- /dev/null +++ b/examples/data/kml/2012-02-10.kml @@ -0,0 +1,9391 @@ + + + Skimap.org OpenSkiMap + Created from OpenStreetMap data. Renderer v0.5 + + + Copyright Notice + + OpenStreetMap Contributors. It is available under the Creative Commons Attribution-ShareAlike (CC-BY-SA) Version 2.0 License.]]> + + Copyright (c) OpenStreetMap Contributors. CC-BY-SA 2.0 License. + + OSMCopyright.png + + + + + + + POI + Points of Interest + + Parking + + + #style-Parking + + 7.5584046,46.4880564,0 + + + + Coop + #style-Parking + + 7.5609149,46.493261,0 + + + + #style-Parking + + 7.5865419,46.4861414,0 + + + + #style-Parking + + 7.4447639,46.4572778,0 + + + + #style-Parking + + 7.4450385,46.4601225,0 + + + + #style-Parking + + 7.4393367,46.45965,0 + + + + #style-Parking + + 7.4413296,46.4571887,0 + + + + #style-Parking + + 7.440856,46.4512387,0 + + + + #style-Parking + + 7.4379632,46.452765,0 + + + + #style-Parking + + 7.4439042,46.4554444,0 + + + + #style-Parking + + 7.4442161,46.4540646,0 + + + + #style-Parking + + 7.4701427,46.4536698,0 + + + + #style-Parking + + 7.5806365,46.5135164,0 + + + + #style-Parking + + 7.6038938,46.5174355,0 + + + + #style-Parking + + 7.6033249,46.5169628,0 + + + + #style-Parking + + 7.6062434,46.5290881,0 + + + + + Fuel + + + Garage Inniger + #style-Fuel + + 7.5660783,46.4900069,0 + + + + #style-Fuel + + 7.5926292,46.5284662,0 + + + + #style-Fuel + + 7.442845,46.458965,0 + + + + + Cinema + + + Ciné Rex + #style-Cinema + + 7.5630412,46.4929077,0 + + + + + Hotel + + + Hotel Crea + #style-Hotel + + 7.5676532,46.4982767,0 + + + + Hotel Hari + #style-Hotel + + 7.5650953,46.4963004,0 + + + + Bellevue + #style-Hotel + + 7.5563578,46.4921191,0 + + + + Kreuz + #style-Hotel + + 7.4409986,46.4570553,0 + + + + Krone + #style-Hotel + + 7.4426496,46.4567252,0 + + + + Wildstrubel + #style-Hotel + + 7.4430785,46.4574807,0 + + + + Hotel des Alpes + #style-Hotel + + 7.5387572,46.4794195,0 + + + + Viktoria Eden + #style-Hotel + + 7.5600327,46.4933357,0 + + + + Berghaus Bärtschi + #style-Hotel + + 7.5632096,46.4454517,0 + + + + Tenne + #style-Hotel + + 7.4461369,46.4589363,0 + + + + Parkhotel Bellevue + #style-Hotel + + 7.4398359,46.455012,0 + + + + Simmenhof + #style-Hotel + + 7.4346619,46.4729836,0 + + + + Iffigenalp + #style-Hotel + + 7.4415194,46.4002088,0 + + + + Reka Feriendorf + #style-Hotel + + 7.4317292,46.4681013,0 + + + + Bären + #style-Hotel + + 7.5583384,46.4923431,0 + + + + Spillgerten + #style-Hotel + + 7.4824764,46.5681752,0 + + + + Hotel Steinmattli + #style-Hotel + + 7.555973,46.4892051,0 + + + + Alpina + #style-Hotel + + 7.5670248,46.4845444,0 + + + + + Restaurant + + + Sillerenbühl + #style-Restaurant + + 7.5177184,46.4713607,0 + + + + Berghaus Stoss + #style-Restaurant + + 7.4294222,46.4403995,0 + + + + Geilsbrüggli + #style-Restaurant + + 7.5134309,46.4571755,0 + + + + #style-Restaurant + + 7.4954338,46.4528516,0 + + + + Standhütte + #style-Restaurant + + 7.4947421,46.443782,0 + + + + #style-Restaurant + + 7.56919,46.4384245,0 + + + + Wallegstübli + #style-Restaurant + + 7.4251977,46.4550003,0 + + + + Betelberghütte + #style-Restaurant + + 7.4209174,46.4353096,0 + + + + Chüejer Stuba + #style-Restaurant + + 7.5083945,46.4586075,0 + + + + Hotel des Alpes + #style-Restaurant + + 7.5387572,46.4794195,0 + + + + Berghaus Tschentenalp + #style-Restaurant + + 7.5457297,46.4987315,0 + + + + Stierenberg + #style-Restaurant + + 7.4394912,46.5665216,0 + + + + #style-Restaurant + + 7.4761515,46.4266593,0 + + + + Tenne + #style-Restaurant + + 7.4461369,46.4589363,0 + + + + Andy&apos;s Pub, Terrasse + #style-Restaurant + + 7.4436412,46.4558537,0 + + + + Pizzeria Roberto + #style-Restaurant + + 7.4426305,46.457097,0 + + + + Krone + #style-Restaurant + + 7.4427032,46.4566172,0 + + + + Anker + #style-Restaurant + + 7.442741,46.4572569,0 + + + + Pizzeria Antica Posta + #style-Restaurant + + 7.4418719,46.457229,0 + + + + Rohrbach + #style-Restaurant + + 7.6024672,46.5500964,0 + + + + Bunderalp Berghaus + #style-Restaurant + + 7.6011565,46.4904257,0 + + + + Hohliebestübli + #style-Restaurant + + 7.5737679,46.48547,0 + + + + Restaurant Siebenbrunnen + #style-Restaurant + + 7.4901423,46.4168265,0 + + + + Berghölzli + #style-Restaurant + + 7.4229564,46.4967046,0 + + + + Gasthaus Elsigbach + #style-Restaurant + + 7.606331,46.5289162,0 + + + + Wildstrubel + #style-Restaurant + + 7.5599318,46.4813358,0 + + + + Kuspo + #style-Restaurant + + 7.4527733,46.4494679,0 + + + + Bühlberg + #style-Restaurant + + 7.469499,46.4536402,0 + + + + #style-Restaurant + + 7.5124053,46.4727902,0 + + + + Berghaus Höchst + #style-Restaurant + + 7.6035985,46.516601,0 + + + + #style-Restaurant + + 7.5059586,46.4504356,0 + + + + + Hospital + + + + Toilet + + + + + Ski_Runs + + Ski_Run_Downhill + + Ski_Run_Downhill_Easy + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.429755,46.4386039,0 7.4293368,46.4393223,0 7.429232,46.4404117,0 7.4293996,46.441124,0 7.4300282,46.4415011,0 7.4296801,46.4435027,0 7.4304432,46.4436726,0 7.4309129,46.4436944,0 7.4311473,46.4436377,0 + + + + 25 + 25, Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4878089,46.443423,0 7.4877097,46.4433227,0 7.4862994,46.4433438,0 7.4839067,46.4431223,0 7.482119,46.4430627,0 7.4773624,46.442722,0 7.4739186,46.4425618,0 7.4726715,46.4431339,0 7.4712165,46.4431469,0 + + + + 21 + 21, Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4979152,46.4417323,0 7.4975394,46.4421891,0 7.4973136,46.4422123,0 7.4966307,46.4419276,0 7.4956492,46.4412029,0 7.4950704,46.4411561,0 7.4935875,46.4409666,0 7.4916014,46.4405342,0 7.4899677,46.4413831,0 7.4890906,46.4415271,0 7.4877254,46.4414311,0 7.4850666,46.4418636,0 7.482119,46.4430627,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4862994,46.4433438,0 7.4862235,46.4429825,0 7.486705,46.4424627,0 7.4890906,46.4415271,0 7.4895612,46.4412262,0 7.489583,46.4406462,0 7.4890687,46.4396996,0 7.4889051,46.4389092,0 7.488508,46.4385783,0 + + + + 29 + 29, Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4951921,46.4444865,0 7.4948475,46.4446679,0 7.4910249,46.4455562,0 7.490986,46.4460492,0 7.4907888,46.4463504,0 7.4907043,46.4468387,0 7.4909002,46.4469646,0 7.4931591,46.4473935,0 7.4934449,46.4474943,0 7.4935055,46.4476487,0 7.4918349,46.4503992,0 7.4914431,46.450472,0 7.4913811,46.4506976,0 + + + + 27 + 27, Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4753104,46.4467318,0 7.4742803,46.4466354,0 7.4734687,46.4464045,0 7.4728137,46.4460338,0 7.4722901,46.4454816,0 7.4719258,46.4449058,0 7.4712165,46.4431469,0 7.4702165,46.4426691,0 7.469432,46.4425057,0 7.4683009,46.4424017,0 7.4681436,46.4424662,0 7.4682319,46.4426424,0 + + + + 34 + 34, Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4914805,46.4507107,0 7.4913811,46.4506976,0 7.4891761,46.4507056,0 7.4885692,46.4500736,0 7.4861844,46.4492757,0 7.4861011,46.4492478,0 7.484473,46.448703,0 7.4838871,46.4485069,0 7.4832597,46.4477197,0 7.4815483,46.4467728,0 7.4810792,46.4465722,0 7.4804303,46.4464648,0 7.4794506,46.4464069,0 7.4786449,46.4466018,0 7.4778745,46.4467856,0 7.4773741,46.4467058,0 7.4766312,46.4464834,0 7.4753104,46.4467318,0 7.4751279,46.4473859,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5183847,46.4722004,0 7.517934,46.471763,0 7.517821,46.4717479,0 7.5175412,46.4714731,0 7.5159991,46.4705791,0 7.5149527,46.4698298,0 7.5145904,46.4695704,0 7.514402,46.4689378,0 7.5134881,46.4678641,0 7.5128847,46.4677487,0 7.5125031,46.4673228,0 7.5119884,46.4670388,0 7.5118409,46.4666988,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4977486,46.4514628,0 7.497407,46.4524101,0 7.4968324,46.4531477,0 7.4968557,46.453831,0 7.4979505,46.4552131,0 7.5010796,46.4572863,0 7.5044316,46.4577113,0 7.5048258,46.4577613,0 7.5065939,46.4574074,0 7.5087808,46.4574575,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.49497,46.4533356,0 7.494742,46.4530283,0 7.4942068,46.4527205,0 7.4938455,46.451717,0 7.4928553,46.4509811,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4981254,46.4509924,0 7.4981368,46.4511522,0 7.4977486,46.4514628,0 7.4950854,46.451349,0 7.4928553,46.4509811,0 7.4914805,46.4507107,0 7.4915714,46.4504852,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4981254,46.4509924,0 7.4981445,46.4508305,0 7.4953246,46.4501477,0 7.4939146,46.450458,0 7.4928553,46.4509811,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5065878,46.4609089,0 7.5067588,46.4608409,0 7.5083597,46.4611852,0 7.5098203,46.4621242,0 7.5110321,46.4621081,0 7.5117865,46.462373,0 7.5122119,46.4631514,0 7.5129021,46.4633842,0 7.5135922,46.4634885,0 7.5141059,46.4636811,0 7.5149084,46.4637212,0 7.5157912,46.4643071,0 7.5168907,46.4644435,0 7.5179821,46.4643312,0 7.5187686,46.4646121,0 7.5204138,46.4662252,0 7.5208392,46.4662332,0 7.521409,46.4661208,0 7.5222597,46.4662894,0 7.5230542,46.4669796,0 7.523608,46.4678463,0 7.5241429,46.4682155,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5326801,46.4684788,0 7.532755,46.468548,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5316173,46.4680148,0 7.5324807,46.4685101,0 7.5326801,46.4684788,0 7.5328962,46.4684417,0 7.5329356,46.4685522,0 7.5327143,46.4686321,0 7.532755,46.468548,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4931915,46.4549659,0 7.4929375,46.454661,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4925723,46.455196,0 7.492699,46.454997,0 7.4929375,46.454661,0 7.4942068,46.4527205,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.492699,46.454997,0 7.4910376,46.4540056,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5132264,46.4562522,0 7.5130985,46.4572035,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4851581,46.4533824,0 7.4845569,46.4536013,0 7.4839198,46.4538334,0 7.482829,46.4540915,0 7.4815336,46.4540876,0 7.4800837,46.4537836,0 7.4779806,46.4533427,0 7.4772153,46.4531822,0 7.4764495,46.4530216,0 7.4753254,46.4534852,0 7.474042,46.4536903,0 7.4726118,46.4532512,0 7.472292,46.4528248,0 7.4722433,46.4525611,0 7.4719968,46.4512258,0 7.4713736,46.45107,0 7.4709826,46.4512884,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4910376,46.4540056,0 7.490236,46.4537956,0 7.4895041,46.4536038,0 7.4851581,46.4533824,0 7.4822321,46.4520159,0 7.4770883,46.4509952,0 7.4722247,46.4508951,0 7.4717194,46.4509989,0 7.4713736,46.45107,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4951921,46.4444865,0 7.4952107,46.4438631,0 7.4956323,46.4435254,0 7.495863,46.4431325,0 7.4958466,46.442669,0 7.4956544,46.4421238,0 7.4950704,46.4411561,0 7.4949338,46.4409187,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5749906,46.4438887,0 7.5747715,46.4435867,0 7.5745699,46.4428739,0 7.5733777,46.441992,0 7.572843,46.4418712,0 7.5718612,46.4418531,0 7.5706985,46.4416291,0 7.5686003,46.4406872,0 7.568574,46.4409349,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5747715,46.4435867,0 7.574491,46.4435383,0 7.5730797,46.442439,0 7.5710547,46.4418652,0 7.5706985,46.4416291,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5687446,46.4376384,0 7.5689165,46.4376761,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5796203,46.43089,0 7.5799907,46.430675,0 7.5796593,46.4304735,0 7.578977,46.4304601,0 7.5783532,46.4302854,0 7.5755031,46.4292776,0 7.5748052,46.4286596,0 7.5743958,46.4286596,0 7.5737135,46.4284983,0 7.5734796,46.4281759,0 7.5725634,46.4274234,0 7.5717446,46.4273025,0 7.5712377,46.4269128,0 7.5701071,46.4264963,0 7.5693858,46.4272756,0 7.568684,46.4286999,0 7.5675338,46.4293717,0 7.5661994,46.4295295,0 7.5655793,46.4299569,0 7.5652203,46.4312391,0 7.5641106,46.4323413,0 7.5639801,46.433466,0 7.5648939,46.434973,0 7.5668522,46.4368849,0 7.5682133,46.437843,0 7.5685649,46.4378322,0 7.5687446,46.4376384,0 7.5688149,46.4375738,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5686003,46.4406872,0 7.5679939,46.4406328,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5065878,46.4609089,0 7.5056954,46.4603339,0 7.5058002,46.4601367,0 7.5057016,46.4599519,0 7.5066207,46.4591145,0 7.5076954,46.4577884,0 7.5087808,46.4574575,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5118409,46.4666988,0 7.5115891,46.4663378,0 7.5114205,46.4658587,0 7.510968,46.4655037,0 7.5107994,46.4648471,0 7.5087141,46.4627352,0 7.5081285,46.461697,0 7.5065878,46.4609089,0 + + + + Kuonisbergliweg + Kuonisbergliweg, Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5508319,46.4815667,0 7.550886,46.481604,0 7.551017,46.481662,0 7.5517182,46.4815741,0 7.551993,46.481463,0 7.552258,46.481249,0 7.552478,46.481152,0 7.5528719,46.4810715,0 7.552972,46.481051,0 7.553187,46.480938,0 7.553375,46.480816,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5087808,46.4574575,0 7.5087624,46.4574732,0 7.5107571,46.4570949,0 7.512456,46.4571319,0 7.5130985,46.4572035,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4845569,46.4536013,0 7.4839705,46.4533006,0 7.4836023,46.4532825,0 7.4830277,46.4536666,0 7.4828207,46.453771,0 7.4826873,46.4537037,0 7.4825462,46.4531781,0 7.4822413,46.4531495,0 7.4808929,46.4536839,0 7.4800837,46.4537836,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.471843,46.4529933,0 7.4722433,46.4525611,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4781023,46.4524789,0 7.4772153,46.4531822,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.553375,46.480816,0 7.5536347,46.4807515,0 7.5541829,46.4807074,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4726118,46.4532512,0 7.4711386,46.4537235,0 7.4702555,46.4537971,0 7.4698184,46.4537065,0 7.4705402,46.4532965,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4966949,46.4456829,0 7.4987868,46.4474642,0 7.4990254,46.4485493,0 7.4986786,46.4497374,0 7.4981254,46.4509924,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4851581,46.4533824,0 7.4819071,46.4527893,0 7.4795821,46.4527576,0 7.4781023,46.4524789,0 7.4750189,46.4518982,0 7.4730834,46.4513691,0 7.4719968,46.4512258,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4779806,46.4533427,0 7.4774841,46.453759,0 7.4769609,46.4539583,0 7.4764209,46.4537428,0 7.4760416,46.4536833,0 7.475667,46.4538882,0 7.4750873,46.4539986,0 7.474042,46.4536903,0 + + + + , Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.5541829,46.4807074,0 7.5541599,46.4812366,0 7.5544557,46.4816299,0 7.555156,46.4817335,0 7.5553097,46.4822055,0 7.5554386,46.4823711,0 7.5559054,46.4825407,0 7.5568671,46.4822132,0 7.5569895,46.4818235,0 + + + + 2 + 2, Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4314691,46.4551589,0 7.4322178,46.4554411,0 7.4328404,46.4555345,0 7.4337122,46.4559081,0 7.4347085,46.4560638,0 7.4353574,46.456162,0 7.4358604,46.4560015,0 7.4367179,46.4557467,0 7.4372508,46.4549744,0 7.4376135,46.4546647,0 7.4373964,46.4539233,0 7.4375265,46.4532365,0 7.4372187,46.4531533,0 + + + + 33 + 33, Downhill Run Difficulty: Easy + #style-Ski_Run_Downhill_Easy + + relativeToGround + 7.4861011,46.4492478,0 7.4844268,46.4491036,0 7.4832187,46.4488441,0 7.4823814,46.4481279,0 7.4814712,46.4478087,0 7.4801554,46.4478027,0 7.4781901,46.4484089,0 7.4742765,46.4489608,0 7.4741321,46.4490468,0 7.473553,46.4493747,0 7.4717194,46.4509989,0 + + + + + Ski_Run_Downhill_Intermediate + + + 10 + 10, Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4144876,46.4472294,0 7.4149494,46.4475565,0 7.4152025,46.4477358,0 7.4154562,46.4478744,0 7.4167849,46.4483173,0 7.4184458,46.4500257,0 7.4214671,46.4526673,0 7.4235868,46.4533633,0 7.4242828,46.4539644,0 7.4253268,46.4544231,0 7.4260386,46.4555146,0 7.4271775,46.4562739,0 7.4277562,46.456385,0 7.4290744,46.4572198,0 7.4301992,46.4575186,0 7.4306302,46.4578101,0 7.4308495,46.4581425,0 7.4308935,46.458415,0 7.4307004,46.4584832,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.409078,46.428856,0 7.4088684,46.4289664,0 7.4097542,46.4296455,0 7.410372,46.429866,0 7.411328,46.4299305,0 7.4122236,46.4299962,0 7.4128546,46.4302951,0 7.4136666,46.4313138,0 7.4162843,46.432802,0 7.4231145,46.4368711,0 7.4240783,46.4371015,0 7.424352,46.4373373,0 7.4244344,46.4376043,0 7.4240992,46.4384424,0 7.4241315,46.4385919,0 7.4242878,46.4386938,0 7.4245455,46.4386572,0 7.4257962,46.4380443,0 7.4269373,46.437921,0 7.4275298,46.4379127,0 7.4279308,46.4380355,0 7.4281223,46.438196,0 7.4281845,46.4387147,0 7.4285697,46.4391626,0 7.4287027,46.4394043,0 7.4286423,46.4398709,0 7.4286906,46.4401292,0 7.4289808,46.4403209,0 7.429232,46.4404117,0 7.429151,46.440554,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4948475,46.4446679,0 7.4937003,46.444504,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4877097,46.4433227,0 7.4872195,46.4435325,0 7.4865607,46.4435325,0 7.4841571,46.443395,0 7.4823979,46.4436194,0 7.4816834,46.4439676,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4841571,46.443395,0 7.4839067,46.4431223,0 + + + + 42 + 42, Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.507632,46.44102,0 7.5076886,46.4408745,0 7.5079708,46.4410277,0 7.5086923,46.4410277,0 7.5091432,46.4420156,0 7.5088441,46.4425016,0 7.5066391,46.4435205,0 7.5059548,46.4445545,0 7.5060916,46.4454973,0 7.5055594,46.4485083,0 7.5066087,46.4500898,0 7.5079037,46.4503452,0 7.508768,46.4505156,0 7.5108818,46.4516561,0 7.5119614,46.4529182,0 7.5130411,46.4538915,0 7.5136795,46.4546008,0 7.5135329,46.455249,0 7.5134633,46.4557785,0 7.5132264,46.4562522,0 7.5133239,46.456517,0 7.5135374,46.456532,0 7.5134775,46.4563718,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.494809,46.462495,0 7.4945658,46.4625743,0 7.4944643,46.4625499,0 7.4944832,46.4624806,0 7.4939029,46.4614558,0 7.491698,46.459654,0 7.4913687,46.4586774,0 7.4918389,46.45772,0 7.4931915,46.4549659,0 7.49497,46.4533356,0 + + + + 55 + 55, Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4944832,46.4624806,0 7.4946897,46.4623555,0 7.4948693,46.462373,0 7.4953055,46.4625448,0 7.4966403,46.4646571,0 7.4987475,46.4646495,0 7.5003928,46.4650414,0 7.5015139,46.4653964,0 7.5032905,46.4674926,0 7.5062062,46.4683885,0 7.5078412,46.4692527,0 7.5081555,46.4737303,0 7.5098447,46.4750362,0 7.5119216,46.4781195,0 7.511841,46.4787868,0 7.5153242,46.4822775,0 7.5197463,46.483668,0 7.5198736,46.4840895,0 7.5194921,46.4842678,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.6214035,46.5184624,0 7.6206061,46.5185013,0 7.6200227,46.5186374,0 7.619556,46.5189097,0 7.6191476,46.5193181,0 7.6182141,46.5193375,0 7.6178835,46.5192792,0 7.6178641,46.5181707,0 7.6177474,46.5177623,0 7.6176307,46.5175484,0 7.6168139,46.5171789,0 7.6164833,46.5166538,0 7.616036,46.5164399,0 7.6147525,46.5162065,0 7.6136877,46.5157618,0 7.6125232,46.5155388,0 7.6076942,46.5164486,0 7.6060633,46.5169747,0 7.605432,46.5170536,0 7.6044409,46.516792,0 7.6038575,46.516854,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.6222677,46.5125575,0 7.6219536,46.5125696,0 7.6204665,46.5130361,0 7.6200208,46.5128293,0 7.6186894,46.5128372,0 7.6177891,46.5125865,0 7.6155716,46.5135034,0 7.6147737,46.5140404,0 7.6139445,46.5144307,0 7.6130136,46.5146209,0 7.6108572,46.5152546,0 7.6087275,46.5157391,0 7.608396,46.5153693,0 7.6079624,46.5152801,0 7.6056234,46.515944,0 7.6038575,46.516854,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.6255371,46.5095259,0 7.6255618,46.5090433,0 7.6249926,46.5088453,0 7.6244357,46.5089072,0 7.6237799,46.5088329,0 7.6231982,46.5089814,0 7.622926,46.5089319,0 7.6216266,46.5090062,0 7.6211935,46.5088824,0 7.621144,46.5086349,0 7.6213173,46.5083751,0 7.6212554,46.5081771,0 7.6209552,46.5080301,0 7.6206413,46.5079572,0 7.6201032,46.5079796,0 7.619909,46.5078859,0 7.6192046,46.507952,0 7.6186945,46.5082071,0 7.618242,46.5086102,0 7.6170479,46.5090519,0 7.6134008,46.5099145,0 7.6119518,46.5104353,0 7.6115669,46.5107069,0 7.6102018,46.5110563,0 7.6098364,46.5112294,0 7.6103941,46.5118447,0 7.6116247,46.512287,0 7.6117594,46.5127485,0 7.6116055,46.5130946,0 7.6111248,46.5135561,0 7.6102983,46.513823,0 7.6087831,46.5148332,0 7.6079624,46.5152801,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.6223085,46.5128439,0 7.6220228,46.5131772,0 7.621511,46.5141056,0 7.6214266,46.5149416,0 7.6207744,46.5165722,0 7.620101,46.517142,0 7.6197686,46.517605,0 7.6197092,46.5182816,0 7.621015,46.5182816,0 7.621478,46.5181985,0 7.6224277,46.5178305,0 7.6240841,46.5179513,0 7.6247575,46.5179513,0 7.6255728,46.5178449,0 7.6264944,46.5187665,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4304432,46.4436726,0 7.4305366,46.443984,0 7.4310658,46.4445755,0 7.4306634,46.4459898,0 7.4299914,46.4465483,0 7.4303109,46.4472287,0 7.4299762,46.4484049,0 7.4302564,46.4493078,0 7.4315017,46.4511447,0 7.4317586,46.452333,0 7.4318155,46.4525963,0 7.4324157,46.4535271,0 7.432081,46.4536883,0 7.4310303,46.4533336,0 7.4311741,46.453932,0 7.4314691,46.4551589,0 + + + + Tschuggen + Tschuggen, Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4124787,46.433968,0 7.4140186,46.4327481,0 7.4162843,46.432802,0 7.4176098,46.434637,0 7.4180369,46.4362139,0 7.4170285,46.4381829,0 7.416902,46.4392336,0 7.4160927,46.4416618,0 7.4163856,46.4433081,0 7.4158679,46.4447115,0 7.4172976,46.4466046,0 7.4210461,46.449263,0 7.4230297,46.4499123,0 7.4246353,46.4516699,0 7.4266629,46.4522852,0 7.4293861,46.4546281,0 7.4314691,46.4551589,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5241429,46.4682155,0 7.5254618,46.4675494,0 7.5271632,46.4670117,0 7.5281584,46.4670197,0 7.5307345,46.4680148,0 7.5316173,46.4680148,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4913687,46.4586774,0 7.4912344,46.4582615,0 7.4921282,46.4561049,0 7.4910376,46.4540056,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4979152,46.4417323,0 7.4956492,46.4412029,0 7.4949338,46.4409187,0 7.4918344,46.4396017,0 7.488508,46.4385783,0 7.4862388,46.4377746,0 7.4860119,46.4374343,0 7.4861862,46.4374136,0 7.4864068,46.4375038,0 + + + + 26 + 26, Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4951921,46.4444865,0 7.494774,46.444374,0 7.4937003,46.444504,0 7.4906334,46.4443422,0 7.4888241,46.4444869,0 7.4871181,46.4440733,0 7.4863944,46.4442402,0 7.4830048,46.443886,0 7.4816834,46.4439676,0 7.4795401,46.4450123,0 7.4783043,46.4457271,0 7.4766312,46.4464834,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.488878,46.370053,0 7.4894455,46.3702172,0 7.4899918,46.3703752,0 7.4913225,46.3705818,0 7.4927658,46.3712292,0 7.4942814,46.3711794,0 7.4954185,46.370487,0 7.4959412,46.3696855,0 7.4968794,46.3691378,0 7.4980271,46.3691169,0 7.4985995,46.3690143,0 7.4991844,46.3686383,0 7.4992309,46.3684758,0 7.4987031,46.368402,0 7.4977817,46.3683076,0 7.4988279,46.3674945,0 7.4990444,46.3655523,0 7.4983227,46.3649547,0 7.4983115,46.3639782,0 7.4985155,46.3636965,0 7.4981554,46.3629178,0 7.4983227,46.3625145,0 7.4992609,46.3612196,0 7.5004156,46.3600741,0 7.5016225,46.3579494,0 7.5019726,46.3576574,0 7.5020488,46.357115,0 7.5018589,46.3561892,0 7.502039,46.3546121,0 7.5014259,46.3535992,0 7.5030858,46.3539977,0 7.5049621,46.353898,0 7.5024363,46.350461,0 7.5032301,46.3474473,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4899918,46.3703752,0 7.4900977,46.3710331,0 7.4897799,46.3720807,0 7.4893209,46.3741029,0 7.4888265,46.3742978,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5798737,46.4320992,0 7.5797957,46.4311319,0 7.5796203,46.43089,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5798737,46.4320992,0 7.5798711,46.4325194,0 7.5799962,46.432821,0 7.5804649,46.4331279,0 7.5815978,46.4342533,0 7.5818635,46.434668,0 7.5818869,46.4349533,0 7.5808556,46.4367572,0 7.5800508,46.4371395,0 7.5785547,46.437191,0 7.576949,46.4381409,0 7.576699,46.4385663,0 7.5763943,46.4385663,0 7.5759959,46.4382224,0 7.57373,46.4376025,0 7.5731128,46.4379471,0 7.570222,46.4383563,0 7.5696588,46.4383437,0 7.5691665,46.4381822,0 7.5685649,46.4378322,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5804649,46.4331279,0 7.5785664,46.434178,0 7.5767537,46.4348241,0 7.5762068,46.4355026,0 7.5753864,46.4358579,0 7.5743629,46.4359495,0 7.5725659,46.4366656,0 7.5696588,46.4383437,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5731128,46.4379471,0 7.5727761,46.4382333,0 7.5727077,46.438534,0 7.5728577,46.4387621,0 7.5731354,46.4393476,0 7.5730157,46.4396247,0 7.5726324,46.4399562,0 7.5721003,46.4402378,0 7.5709796,46.4402849,0 7.5686003,46.4406872,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4942814,46.3711794,0 7.4942998,46.3716666,0 7.4926402,46.3719589,0 7.4897799,46.3720807,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4899918,46.3703752,0 7.4932364,46.3691539,0 7.4938051,46.3683088,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.6164187,46.5309288,0 7.6157406,46.5308985,0 7.6152942,46.5307285,0 7.6147089,46.5306361,0 7.6141852,46.5303588,0 7.6140774,46.5301278,0 7.614447,46.5292652,0 7.61437,46.5288801,0 7.6138155,46.5281716,0 7.6140774,46.5273244,0 7.6145086,46.5267853,0 7.6148167,46.5264618,0 7.6143084,46.5259997,0 7.614062,46.526277,0 7.6136153,46.5263232,0 7.6133842,46.526508,0 7.613338,46.5267699,0 7.6129553,46.5269559,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.6230501,46.5217836,0 7.6227543,46.5219743,0 7.6224002,46.522133,0 7.6221374,46.5222917,0 7.6220837,46.5224246,0 7.6222393,46.5226387,0 7.6222768,46.52279,0 7.6224217,46.5229598,0 7.6226577,46.5230521,0 7.6229367,46.5232477,0 7.6229933,46.5233276,0 7.6229423,46.5234075,0 7.6228178,46.5233511,0 7.6226145,46.5232171,0 7.6225402,46.5232813,0 7.6226676,46.5234991,0 7.6227387,46.5237748,0 7.6227055,46.5240428,0 7.622677,46.5241963,0 7.6224463,46.5244646,0 7.6223114,46.5245824,0 7.6221921,46.5247769,0 7.6214839,46.5257434,0 7.6210848,46.5263482,0 7.6197054,46.5273804,0 7.6187807,46.5279121,0 7.617833,46.5283281,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4296801,46.4435027,0 7.4283947,46.4438683,0 7.4276134,46.4448795,0 7.4282822,46.4462702,0 7.4276225,46.4479365,0 7.4270854,46.4485039,0 7.4283468,46.4503228,0 7.4289924,46.4517144,0 7.4295822,46.4524001,0 7.4290117,46.4528401,0 7.429563,46.4533341,0 7.4311741,46.453932,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5465752,46.4729147,0 7.5468033,46.4729927,0 7.5471194,46.473351,0 7.5477099,46.4747335,0 7.5477488,46.4754147,0 7.5475016,46.4763233,0 7.5473399,46.4765628,0 7.5474617,46.4766434,0 7.5494984,46.4768773,0 7.5499886,46.4772338,0 7.550697,46.4782474,0 7.551339,46.4789507,0 7.5516645,46.4797119,0 7.5514629,46.4801692,0 7.547108,46.4815103,0 7.5470161,46.4816959,0 7.5469546,46.4819903,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5126782,46.4560798,0 7.5132264,46.4562522,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4871181,46.4440733,0 7.4865607,46.4435325,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5183847,46.4722004,0 7.5189475,46.4725535,0 7.519035,46.4731315,0 7.5188279,46.4738282,0 7.5187137,46.4739436,0 7.5188805,46.4742245,0 7.5191219,46.4746667,0 7.5187133,46.4762815,0 7.5185001,46.4767863,0 7.5178777,46.4770115,0 7.5180839,46.4781219,0 7.5180828,46.47883,0 7.5182874,46.480318,0 7.5183371,46.4806788,0 7.5191752,46.4813467,0 7.5196958,46.4814845,0 7.5213221,46.4813858,0 7.5216438,46.4815441,0 7.5206847,46.4840895,0 7.5202806,46.4840895,0 7.5198736,46.4840895,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4951921,46.4444865,0 7.4964088,46.4441724,0 7.4962012,46.4450654,0 7.4965848,46.4456381,0 7.4966949,46.4456829,0 7.4968375,46.445741,0 7.4994665,46.4454308,0 7.502031,46.4464909,0 7.5033031,46.4476891,0 7.5034979,46.4480839,0 7.5033917,46.4492225,0 7.5043972,46.4500412,0 7.5050304,46.4507279,0 7.5054974,46.4518283,0 7.5064786,46.4530981,0 7.5069655,46.4535058,0 7.5078037,46.4537953,0 7.5097169,46.4542769,0 7.5126782,46.4560798,0 7.5128506,46.4564315,0 7.5128984,46.4568706,0 7.5131163,46.4569628,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5185001,46.4767863,0 7.5187069,46.4771038,0 7.5180839,46.4781219,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5465752,46.4729147,0 7.5465588,46.4727969,0 7.5463224,46.4727762,0 7.5457549,46.4722521,0 7.5454878,46.4722027,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5180828,46.47883,0 7.5187473,46.4791376,0 7.5191845,46.4795753,0 7.5186215,46.4800315,0 7.5182874,46.480318,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.4918389,46.45772,0 7.4953567,46.4572878,0 7.4978347,46.4561065,0 7.4983647,46.4560378,0 7.4991114,46.4562022,0 7.4996241,46.4568782,0 + + + + , Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5189475,46.4725535,0 7.520193,46.4732475,0 7.5214428,46.4736263,0 7.5205581,46.4749161,0 7.5201512,46.4752867,0 7.519466,46.4755006,0 7.5187133,46.4762815,0 + + + + 38 + 38, Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.490236,46.4537956,0 7.4895639,46.4533929,0 7.4892057,46.4526215,0 7.4891761,46.4507056,0 + + + + 52 + 52, Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5003928,46.4650414,0 7.5023418,46.4647048,0 7.5008661,46.4641698,0 7.4994242,46.4632353,0 7.4992965,46.462876,0 7.4999102,46.4623177,0 7.5002146,46.4620329,0 7.5000366,46.4616093,0 7.5000901,46.4612612,0 7.4995804,46.4611479,0 7.4993116,46.4600075,0 7.4993116,46.4590555,0 7.4989271,46.4580207,0 7.4984584,46.4575571,0 7.4986987,46.4571762,0 7.4996241,46.4568782,0 7.5010796,46.4572863,0 + + + + 80 + 80, Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.5464542,46.4719979,0 7.5467662,46.4722875,0 7.5465752,46.4729147,0 + + + + 84 + 84, Downhill Run Difficulty: Intermediate + #style-Ski_Run_Downhill_Intermediate + + relativeToGround + 7.546737,46.4678791,0 7.5477148,46.4684613,0 7.547106,46.4704934,0 7.5464542,46.4719979,0 7.5454878,46.4722027,0 7.5453695,46.4722278,0 7.5448716,46.4723836,0 7.5446572,46.4723806,0 7.5443664,46.4725512,0 7.5440913,46.4725106,0 7.5440027,46.472332,0 + + + + + Ski_Run_Downhill_Advanced + + + 40 + 40, Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.5091432,46.4420156,0 7.5110414,46.4433129,0 7.5131315,46.4442903,0 7.5133879,46.4452478,0 7.5138387,46.4464089,0 7.5144526,46.4482402,0 7.5148288,46.449759,0 7.5147337,46.4509702,0 7.5151598,46.4521343,0 7.5147089,46.4532426,0 7.513803,46.4540077,0 7.5136795,46.4546008,0 + + + + , Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.5796203,46.43089,0 7.5790744,46.4310512,0 7.5786846,46.4309841,0 7.5786456,46.4308094,0 7.5786261,46.4306213,0 7.5783532,46.4302854,0 7.5779052,46.4304352,0 7.5774045,46.430602,0 7.5768107,46.4309467,0 7.5761544,46.4311244,0 7.5750606,46.4314798,0 7.5744512,46.4321798,0 7.5740527,46.4330468,0 7.5730292,46.4338276,0 7.5724197,46.4338222,0 7.5706227,46.4345814,0 7.5697555,46.4354376,0 7.5682133,46.437843,0 + + + + , Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.5761544,46.4311244,0 7.574334,46.4310113,0 7.5719744,46.4327452,0 7.5707477,46.4341668,0 7.5706227,46.4345814,0 + + + + , Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.5780116,46.4306132,0 7.5779052,46.4304352,0 + + + + 51 + 51, Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.4948693,46.462373,0 7.4995804,46.4611479,0 7.5044316,46.4577113,0 + + + + 30 + 30, Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.4907043,46.4468387,0 7.4893805,46.447632,0 7.4884723,46.4480082,0 7.4862639,46.4481923,0 7.484473,46.448703,0 + + + + 4 + 4, Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.4317586,46.452333,0 7.4337182,46.4524766,0 7.434805,46.4526768,0 7.4356699,46.4530141,0 7.436796,46.453005,0 + + + + 41 + 41, Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.5110414,46.4433129,0 7.5110529,46.4437445,0 7.5106546,46.4441126,0 7.5107095,46.4447933,0 7.5100632,46.445353,0 7.5079719,46.4459569,0 7.5066993,46.4469162,0 7.5061861,46.4474935,0 7.5071655,46.4486165,0 7.5105129,46.4501148,0 7.5108818,46.4516561,0 + + + + 54 + 54, Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.5079037,46.4503452,0 7.5092498,46.4524805,0 7.5097169,46.4542769,0 + + + + 57 + 57, Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.4966403,46.4646571,0 7.5032905,46.4674926,0 + + + + 80 + 80, Downhill Run Difficulty: Advanced + #style-Ski_Run_Downhill_Advanced + + relativeToGround + 7.5465752,46.4729147,0 7.5475189,46.4734417,0 7.5477398,46.4739818,0 7.5496151,46.4749576,0 7.5498033,46.4759118,0 7.5509021,46.476891,0 7.5509823,46.4774471,0 7.5541829,46.4807074,0 + + + + + Ski_Run_Downhill_Expert + + + + Ski_Run_Downhill_Generic + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5535228,46.4865284,0 7.5535075,46.4866379,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.6222148,46.5124924,0 7.6218631,46.5122645,0 7.6205305,46.5119903,0 7.620247,46.5118688,0 7.6199634,46.5115987,0 7.6199364,46.5109372,0 7.6197599,46.5108209,0 7.6194083,46.5108438,0 7.6191407,46.5109967,0 7.6180937,46.5111776,0 7.6178583,46.5110883,0 + + + + Oeystrasse + Oeystrasse, Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5535075,46.4866379,0 7.5541077,46.486711,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5541077,46.486711,0 7.5548912,46.486666,0 7.5549402,46.4863477,0 7.5553483,46.4864375,0 7.5563116,46.4862579,0 7.556932,46.4864783,0 7.5570137,46.4867477,0 7.557332,46.4869844,0 7.5583606,46.4869191,0 7.55863,46.4870334,0 7.5590626,46.4870252,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5466507,46.4822665,0 7.5467405,46.4820455,0 7.5469546,46.4819903,0 7.546887,46.4821013,0 + + + + 55 + 55, Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5202806,46.4840895,0 7.5206995,46.4843934,0 7.521236,46.4846116,0 7.5215509,46.4848385,0 7.5235622,46.4848575,0 7.5243291,46.4849987,0 7.5254277,46.4849455,0 7.5258912,46.484845,0 7.5262259,46.4849337,0 7.5263644,46.4850796,0 7.5270499,46.4847209,0 7.5281228,46.4845732,0 7.5287322,46.4845909,0 7.5299857,46.4847785,0 7.5301055,46.4847918,0 7.5322129,46.484865,0 7.5335432,46.4842858,0 7.5344616,46.4843804,0 7.5353629,46.4842622,0 7.5359808,46.4840021,0 7.5364272,46.4839903,0 7.5368933,46.4838149,0 7.5374056,46.4843272,0 7.5383498,46.4843331,0 7.5392338,46.4841794,0 7.5411564,46.483553,0 7.5426756,46.483618,0 7.5434451,46.4835786,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5590626,46.4870252,0 7.5600259,46.4871885,0 7.5608912,46.4871232,0 7.5611443,46.4873681,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5548912,46.486666,0 7.5561531,46.4869638,0 7.5573714,46.4873324,0 7.5584605,46.4875866,0 7.5585589,46.487845,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5434451,46.4835786,0 7.5437149,46.4835647,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5442346,46.4836269,0 7.5443418,46.4836053,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5437149,46.4835647,0 7.5439543,46.4836822,0 7.5442346,46.4836269,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5443418,46.4836053,0 7.5452866,46.4835281,0 7.5460156,46.4835284,0 7.5483036,46.4841284,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5483036,46.4841284,0 7.5486892,46.4843265,0 7.5502237,46.4845773,0 7.5505897,46.4845683,0 7.5510877,46.4853643,0 7.5523785,46.486287,0 7.5528849,46.4864761,0 7.5535228,46.4865284,0 + + + + , Downhill Run Difficulty: Unknown + #style-Ski_Run_Downhill_Generic + + relativeToGround + 7.5033917,46.4492225,0 7.503756,46.4493929,0 7.5041471,46.4492925,0 7.5047479,46.4492921,0 7.5054788,46.4495257,0 7.5060307,46.4500934,0 7.5059038,46.4503571,0 7.5047888,46.4499534,0 7.5044793,46.4499425,0 7.5043972,46.4500412,0 + + + + + Ski_Run_Downhill_Easy_Gladed + + + + Ski_Run_Downhill_Intermediate_Gladed + + + + Ski_Run_Downhill_Advanced_Gladed + + + + Ski_Run_Downhill_Expert_Gladed + + + + Ski_Run_Downhill_Generic_Gladed + + + + Ski_Run_Downhill_Easy_Lit + + + + Ski_Run_Downhill_Intermediate_Lit + + + + Ski_Run_Downhill_Advanced_Lit + + + + Ski_Run_Downhill_Expert_Lit + + + + Ski_Run_Downhill_Generic_Lit + + + + + Ski_Run_Nordic + + Ski_Run_Nordic_Easy + + + + Ski_Run_Nordic_Intermediate + + + + Ski_Run_Nordic_Advanced + + + + Ski_Run_Nordic_Expert + + + + Ski_Run_Nordic_Generic + + + + Ski_Run_Nordic_Easy_Gladed + + + + Ski_Run_Nordic_Intermediate_Gladed + + + + Ski_Run_Nordic_Advanced_Gladed + + + + Ski_Run_Nordic_Expert_Gladed + + + + Ski_Run_Nordic_Generic_Gladed + + + + Ski_Run_Nordic_Easy_Lit + + + + Ski_Run_Nordic_Intermediate_Lit + + + + Ski_Run_Nordic_Advanced_Lit + + + + Ski_Run_Nordic_Expert_Lit + + + + Ski_Run_Nordic_Generic_Lit + + + + + + Ski_Routes + + + + Ski_Lift + + Ski_Lift_Chairlift + + + Walleg + Walleg (Chairlift) Capacity: people + Chairlift + #style-Ski_Lift_Chairlift + + relativeToGround + 7.4307004,46.4584832,0 7.414217,46.447336,0 + + + + Metschberg + Metschberg (Chairlift) Capacity:4 people + Chairlift + #style-Ski_Lift_Chairlift + + relativeToGround + 7.4682319,46.4426424,0 7.4878089,46.443423,0 + + + + Luegli + Luegli (Chairlift) Capacity:4 people + Chairlift + #style-Ski_Lift_Chairlift + + relativeToGround + 7.5134775,46.4563718,0 7.507632,46.44102,0 + + + + Lavey + Lavey (Chairlift) Capacity:5 people + Chairlift + #style-Ski_Lift_Chairlift + + relativeToGround + 7.5137218,46.4574839,0 7.494809,46.462495,0 + + + + Aebi-Sillerenbühl + Aebi-Sillerenbühl (Chairlift) Capacity:6 people + Chairlift + #style-Ski_Lift_Chairlift + + relativeToGround + 7.5194921,46.4842678,0 7.5183847,46.4722004,0 + + + + Metschstand + Metschstand (Chairlift) Capacity:6 people + Chairlift + #style-Ski_Lift_Chairlift + + relativeToGround + 7.4751279,46.4473859,0 7.4951921,46.4444865,0 + + + + Bühlberg + Bühlberg (Chairlift) Capacity: people + Chairlift + #style-Ski_Lift_Chairlift + + relativeToGround + 7.4709826,46.4512884,0 7.4925723,46.455196,0 + + + + (Chairlift) Capacity:2 people + Chairlift + #style-Ski_Lift_Chairlift + + relativeToGround + 7.5437149,46.4835647,0 7.5466507,46.4822665,0 + + + + Boden-Chuenisbärgli + Boden-Chuenisbärgli (Chairlift) Capacity:4 people + Chairlift + #style-Ski_Lift_Chairlift + + relativeToGround + 7.5570355,46.4818791,0 7.5465752,46.4729147,0 + + + + + Ski_Lift_Gondola + + + Stoss-Leiterli + Stoss-Leiterli (Gondola) Capacity: people + Gondola + #style-Ski_Lift_Gondola + + relativeToGround + 7.429151,46.440554,0 7.4162843,46.432802,0 7.409078,46.428856,0 + + + + Lenk-Stoss + Lenk-Stoss (Gondola) Capacity: people + Gondola + #style-Ski_Lift_Gondola + + relativeToGround + 7.436796,46.453005,0 7.429151,46.440554,0 + + + + Funitel Violettes-Plaine morte + Funitel Violettes-Plaine morte (Gondola) Capacity: people + Gondola + #style-Ski_Lift_Gondola + + relativeToGround + 7.4988727,46.3427065,0 7.4929566,46.358426,0 7.488878,46.370053,0 + + + + + Ski_Lift_Cable_Car + + + Geils-Hahnenmoos + Geils-Hahnenmoos (Cable Car) Capacity:4 people + Cable Car + #style-Ski_Lift_Cable_Car + + relativeToGround + 7.512872,46.457057,0 7.495256,46.453167,0 + + + + Metschbahn + Metschbahn (Cable Car) Capacity: people + Cable Car + #style-Ski_Lift_Cable_Car + + relativeToGround + 7.456975,46.44131,0 7.467957,46.442374,0 + + + + Elsigbach-Elsigenalp + Elsigbach-Elsigenalp (Cable Car) Capacity: people + Cable Car + #style-Ski_Lift_Cable_Car + + relativeToGround + 7.606468,46.529129,0 7.622388,46.522452,0 + + + + Gemmibahn + Gemmibahn (Cable Car) Capacity: people + Cable Car + #style-Ski_Lift_Cable_Car + + relativeToGround + 7.625227,46.383782,0 7.616339,46.398008,0 + + + + Sillerenbahn + Sillerenbahn (Cable Car) Capacity: people + Cable Car + #style-Ski_Lift_Cable_Car + + relativeToGround + 7.560206,46.487728,0 7.546887,46.4821013,0 7.532755,46.468548,0 7.517934,46.471763,0 + + + + Engstligenalp + Engstligenalp (Cable Car) Capacity: people + Cable Car + #style-Ski_Lift_Cable_Car + + relativeToGround + 7.566433,46.459076,0 7.56516,46.449387,0 + + + + Tschentenbahn + Tschentenbahn (Cable Car) Capacity: people + Cable Car + #style-Ski_Lift_Cable_Car + + relativeToGround + 7.55769,46.492944,0 7.5458795,46.4988409,0 + + + + (Cable Car) Capacity: people + Cable Car + #style-Ski_Lift_Cable_Car + + relativeToGround + 7.616339,46.398008,0 7.6132768,46.4028233,0 + + + + Iffigenalp-Rawil-Weisshorn + Iffigenalp-Rawil-Weisshorn (Cable Car) Capacity: people + Cable Car + #style-Ski_Lift_Cable_Car + + relativeToGround + 7.4432715,46.4012898,0 7.4554936,46.3839921,0 + + + + Iffigenalp-Rawil-Weisshorn + Iffigenalp-Rawil-Weisshorn (Cable Car) Capacity: people + Cable Car + #style-Ski_Lift_Cable_Car + + relativeToGround + 7.4554936,46.3839921,0 7.4728668,46.3822403,0 + + + + + Ski_Lift_Mixed_Lift + + + + Ski_Lift_Drag_Lift + + + Balmen + Balmen (Drag Lift) + Drag Lift + #style-Ski_Lift_Drag_Lift + + relativeToGround + 7.4311473,46.4436377,0 7.429755,46.4386039,0 + + + + (Drag Lift) + Drag Lift + #style-Ski_Lift_Drag_Lift + + relativeToGround + 7.5655255,46.449212,0 7.5679939,46.4406328,0 7.568652,46.4383091,0 + + + + (Drag Lift) + Drag Lift + #style-Ski_Lift_Drag_Lift + + relativeToGround + 7.568574,46.4409349,0 7.5749906,46.4438887,0 + + + + (Drag Lift) + Drag Lift + #style-Ski_Lift_Drag_Lift + + relativeToGround + 7.5689165,46.4376761,0 7.5758497,46.4318298,0 7.5777092,46.4308174,0 7.5779358,46.4307636,0 7.5786456,46.4308094,0 7.5796203,46.43089,0 7.5801782,46.4310221,0 7.5779827,46.4329768,0 7.5690523,46.4378121,0 7.5689165,46.4376761,0 + + + + (Drag Lift) + Drag Lift + #style-Ski_Lift_Drag_Lift + + relativeToGround + 7.5688149,46.4375738,0 7.5758005,46.4317871,0 7.5780116,46.4306132,0 + + + + Erli + Erli (Drag Lift) + Drag Lift + #style-Ski_Lift_Drag_Lift + + relativeToGround + 7.62299,46.3828465,0 7.6192261,46.3858283,0 + + + + + Ski_Lift_TBar + + + Guetfläck + Guetfläck (T-Bar) + T-Bar + #style-Ski_Lift_TBar + + relativeToGround + 7.4864068,46.4375038,0 7.4979322,46.4414643,0 + + + + (T-Bar) + T-Bar + #style-Ski_Lift_TBar + + relativeToGround + 7.4915714,46.4504852,0 7.4981254,46.4509924,0 + + + + (T-Bar) + T-Bar + #style-Ski_Lift_TBar + + relativeToGround + 7.6039602,46.5170216,0 7.6223253,46.5126763,0 + + + + (T-Bar) + T-Bar + #style-Ski_Lift_TBar + + relativeToGround + 7.6178567,46.5109719,0 7.6255759,46.5097159,0 + + + + Lac + Lac (T-Bar) + T-Bar + #style-Ski_Lift_TBar + + relativeToGround + 7.4938051,46.3683088,0 7.4894455,46.3702172,0 + + + + (T-Bar) + T-Bar + #style-Ski_Lift_TBar + + relativeToGround + 7.5074665,46.4712735,0 7.5028327,46.4648778,0 + + + + (T-Bar) + T-Bar + #style-Ski_Lift_TBar + + relativeToGround + 7.5440027,46.472332,0 7.546737,46.4678791,0 + + + + + Ski_Lift_JBar + + + Glacier 2 + Glacier 2 (J-Bar) + J-Bar + #style-Ski_Lift_JBar + + relativeToGround + 7.4888265,46.3742978,0 7.4889324,46.3707894,0 + + + + + Ski_Lift_Platter + + + Aebi + Aebi (Platter) + Platter + #style-Ski_Lift_Platter + + relativeToGround + 7.5212812,46.4844127,0 7.5220797,46.4823123,0 + + + + + Ski_Lift_Rope_Tow + + + (Rope Tow) + Rope Tow + #style-Ski_Lift_Rope_Tow + + relativeToGround + 7.5484827,46.4812398,0 7.5508319,46.4815667,0 + + + + (Rope Tow) + Rope Tow + #style-Ski_Lift_Rope_Tow + + relativeToGround + 7.5469546,46.4819903,0 7.5473199,46.4814378,0 + + + + + Ski_Lift_Magic_Carpet + + + (Magic Carpet) + Magic Carpet + #style-Ski_Lift_Magic_Carpet + + relativeToGround + 7.4705402,46.4532965,0 7.471843,46.4529933,0 + + + + + + Ski_Boundary + + + + Paths + + Tracks + + + Hörnliweg + #style-Tracks + + relativeToGround + 7.565494,46.5008679,0 7.5656791,46.500969,0 7.5658624,46.5011096,0 7.5661445,46.5013261,0 7.5666733,46.5015614,0 7.5667884,46.5017876,0 7.566748,46.5018344,0 7.5665807,46.5016761,0 7.5664381,46.5016324,0 7.566207,46.5016563,0 7.566185,46.501694,0 7.566361,46.501751,0 7.5664099,46.5018833,0 7.5665353,46.5022409,0 7.5667755,46.5024593,0 7.567001,46.502815,0 7.5669076,46.5033531,0 7.567179,46.5039149,0 7.5672453,46.5041525,0 7.5672579,46.5041977,0 7.5678887,46.5054809,0 7.5681607,46.5064122,0 7.5688551,46.5069114,0 7.5691378,46.50727,0 7.569223,46.5076089,0 + + + + #style-Tracks + + relativeToGround + 7.55826,46.4885102,0 7.5584046,46.4880564,0 + + + + #style-Tracks + + relativeToGround + 7.4722325,46.5557203,0 7.4723727,46.5554306,0 7.4724179,46.5554155,0 7.4725118,46.5554491,0 7.4727424,46.5554155,0 7.4729023,46.5555256,0 7.4730437,46.555317,0 7.4733032,46.5553483,0 7.4740136,46.5550725,0 7.4739997,46.5552336,0 7.4742734,46.5551527,0 7.4745005,46.5549001,0 7.4749441,46.5543583,0 7.4751759,46.5539538,0 7.4755333,46.553592,0 7.4758117,46.5533618,0 7.4763245,46.5528235,0 7.4764189,46.5523924,0 7.4765056,46.5521307,0 7.4766873,46.5520046,0 7.4768397,46.551354,0 7.4770067,46.5513012,0 7.4770917,46.5510639,0 7.4770507,46.5509437,0 7.4770712,46.5508704,0 7.4771386,46.5508675,0 7.4775372,46.5504953,0 7.4774844,46.5504337,0 7.4774962,46.5501231,0 7.4774346,46.5499824,0 7.4776193,46.5494988,0 7.4775987,46.5492526,0 7.4777043,46.5491032,0 7.477672,46.5489039,0 7.4778918,46.5485492,0 7.4777218,46.548388,0 7.4778537,46.5476319,0 7.4779563,46.5475235,0 7.4782259,46.5460844,0 7.4783314,46.5459819,0 7.4785542,46.5459877,0 7.4787066,46.5462515,0 7.4787887,46.5462486,0 7.4788473,46.545554,0 7.4790231,46.5455334,0 7.4790817,46.54517,0 7.478568,46.5448331,0 7.4780354,46.5446806,0 7.4778625,46.5448301,0 7.4774258,46.5445428,0 7.477209,46.5447317,0 7.4774324,46.5448121,0 7.4774294,46.5450385,0 7.4772894,46.5450534,0 7.4773102,46.5454377,0 7.4768455,46.5459619,0 7.4764762,46.5460662,0 7.4762915,46.5451696,0 7.475651,46.54469,0 7.4754752,46.5447048,0 7.4752578,46.5449461,0 7.4748378,46.5449342,0 7.4744892,46.5447019,0 7.4737832,46.5448538,0 7.4734436,46.5442044,0 7.4738309,46.5439482,0 7.4740882,46.5440764,0 7.4743068,46.5439397,0 7.4742902,46.543847,0 + + + + #style-Tracks + + relativeToGround + 7.57743,46.513533,0 7.57697,46.513383,0 7.576639,46.513398,0 7.575972,46.513236,0 7.5754347,46.51317,0 7.5735754,46.5130497,0 7.573283,46.513028,0 7.5727554,46.5131053,0 7.5725651,46.51319,0 7.572003,46.513318,0 7.57147,46.5134376,0 7.57086,46.513632,0 7.5704027,46.5136993,0 7.5698483,46.5135546,0 7.569485,46.513179,0 7.568995,46.512935,0 7.5682886,46.5130065,0 7.5676272,46.512977,0 7.567304,46.512969,0 7.566875,46.512785,0 7.566209,46.512784,0 7.565811,46.512851,0 7.5654903,46.5129931,0 7.565151,46.513025,0 + + + + #style-Tracks + + relativeToGround + 7.5243291,46.4849987,0 7.5247153,46.4845022,0 7.525197,46.4841121,0 + + + + #style-Tracks + + relativeToGround + 7.5439138,46.4880345,0 7.5436907,46.4883773,0 7.5436564,46.4888146,0 7.5445919,46.4885664,0 7.5449953,46.4886255,0 7.5454416,46.4885664,0 7.5460167,46.4881409,0 7.5460596,46.4878868,0 7.546257,46.4878336,0 7.5465059,46.4880227,0 7.546566,46.4882709,0 7.5471926,46.4885959,0 7.5477419,46.4888205,0 7.5486174,46.488986,0 7.5491066,46.4891869,0 7.5493813,46.4894646,0 7.5494156,46.4900083,0 7.5491066,46.4903747,0 7.5488834,46.4907942,0 7.5489435,46.4908828,0 7.5492268,46.4907528,0 7.5491152,46.4909124,0 7.5492783,46.4912079,0 7.549201,46.4915033,0 7.549304,46.4916747,0 7.5492783,46.4918933,0 7.5495186,46.4920647,0 7.550437,46.4920765,0 7.550909,46.4922242,0 7.5519562,46.492886,0 7.5520592,46.4934237,0 7.5523596,46.4936542,0 7.5524712,46.4936955,0 7.5525656,46.4936365,0 + + + + #style-Tracks + + relativeToGround + 7.5525656,46.4936365,0 7.5523274,46.4934746,0 7.5523274,46.4930905,0 7.5524115,46.4926899,0 7.5523257,46.4923796,0 7.5520468,46.4919365,0 7.5518322,46.4917444,0 7.5515532,46.4916706,0 7.5516391,46.4915228,0 7.551918,46.4915672,0 7.5524974,46.4918774,0 7.5528622,46.492099,0 7.553263,46.4922691,0 7.5533831,46.4923341,0 7.553469,46.4925764,0 7.5535806,46.4925409,0 7.5536063,46.4923164,0 7.5535291,46.4920859,0 7.5527051,46.4912587,0 7.5523274,46.4909928,0 7.5524562,46.4906559,0 7.552336,46.4902305,0 7.5524133,46.4901418,0 + + + + Panoramaweg + #style-Tracks + + relativeToGround + 7.5487911,46.4869921,0 7.5491129,46.4871325,0 7.5495421,46.4872654,0 7.5500785,46.4874058,0 7.5505077,46.4875462,0 7.5511729,46.4879007,0 7.5515698,46.4881962,0 7.5519668,46.4885951,0 7.5521814,46.4889718,0 7.5523638,46.489415,0 7.5523852,46.4897843,0 7.5524133,46.4901418,0 + + + + #style-Tracks + + relativeToGround + 7.5662091,46.4580919,0 7.5662713,46.458293,0 7.5669387,46.4587127,0 7.5669473,46.4590261,0 7.5667928,46.4591384,0 + + + + #style-Tracks + + relativeToGround + 7.4445475,46.5790933,0 7.4458753,46.5773845,0 7.4458753,46.57704,0 7.4458753,46.5764872,0 7.4454415,46.5759023,0 7.4449725,46.5753015,0 7.4445622,46.5747407,0 7.4442338,46.5745324,0 7.4439055,46.5743321,0 7.4437531,46.5740276,0 7.4435655,46.5738594,0 7.4435772,46.5737072,0 7.4437179,46.5733947,0 7.4436593,46.5731144,0 7.4434131,46.572858,0 7.4434131,46.5725455,0 7.4432606,46.5724094,0 7.443073,46.5721289,0 7.4428151,46.5718886,0 7.4427096,46.5716242,0 7.4423461,46.5711435,0 7.4418908,46.5708556,0 7.4414336,46.5705832,0 7.4412694,46.5703749,0 7.4410584,46.5698701,0 7.4408942,46.5694536,0 7.4408042,46.5690943,0 7.4407082,46.5687701,0 7.4404839,46.5684761,0 7.4403197,46.5681076,0 7.4402211,46.5678374,0 7.4401859,46.5675851,0 7.4401068,46.5672666,0 7.4399319,46.5670379,0 7.4398305,46.566828,0 7.4394297,46.5665636,0 7.4392764,46.5663903,0 + + + + #style-Tracks + + relativeToGround + 7.582288,46.50904,0 7.5818959,46.50922,0 7.5814771,46.5092119,0 7.58117,46.509261,0 7.580918,46.509277,0 7.5809353,46.5092018,0 7.581108,46.50897,0 7.581143,46.5088664,0 7.5811,46.508754,0 7.5810428,46.5086824,0 7.5809629,46.5086397,0 7.5806824,46.5085984,0 + + + + #style-Tracks + + relativeToGround + 7.5811311,46.5115993,0 7.5812245,46.5113495,0 7.581362,46.511302,0 7.581983,46.511495,0 7.5817095,46.5110604,0 + + + + #style-Tracks + + relativeToGround + 7.5659698,46.4470345,0 7.5650031,46.4460937,0 7.563934,46.445205,0 + + + + #style-Tracks + + relativeToGround + 7.5707798,46.4401998,0 7.569089,46.4414773,0 7.5687886,46.4416607,0 7.5684624,46.4417139,0 + + + + #style-Tracks + + relativeToGround + 7.5684624,46.4417139,0 7.5669518,46.4423053,0 7.5657759,46.4423822,0 7.5653982,46.4425064,0 7.5652008,46.4427608,0 7.5642996,46.4433581,0 7.564128,46.4436183,0 7.5631237,46.4440856,0 7.5624986,46.444518,0 + + + + #style-Tracks + + relativeToGround + 7.5633834,46.4449349,0 7.5632267,46.4453985,0 + + + + #style-Tracks + + relativeToGround + 7.5578623,46.4428613,0 7.5580572,46.4430058,0 7.558304,46.443065,0 7.5586366,46.4431167,0 7.5589907,46.4430946,0 7.5594091,46.4431389,0 7.5597284,46.4432301,0 7.5599777,46.4432794,0 7.5603342,46.4434764,0 + + + + #style-Tracks + + relativeToGround + 7.5014286,46.4245354,0 7.5006562,46.4241982,0 + + + + #style-Tracks + + relativeToGround + 7.5000468,46.4239793,0 7.4995318,46.4237071,0 7.4992657,46.4238313,0 7.4993,46.4240858,0 7.4987765,46.4239438,0 7.4983301,46.4237012,0 7.4979697,46.4233462,0 7.4974804,46.4232456,0 7.4969912,46.4232634,0 7.4965191,46.4230385,0 7.4949055,46.4225356,0 7.4928284,46.422293,0 7.4925108,46.4221865,0 7.4922705,46.4213819,0 7.4910088,46.421583,0 7.4907513,46.4216955,0 7.4911204,46.4219025,0 7.4904766,46.422222,0 7.4900475,46.4225415,0 7.4898844,46.4229202,0 7.4899359,46.4234704,0 7.489584,46.4236657,0 7.4893952,46.4239615,0 7.4878846,46.4243757,0 7.4875584,46.4246478,0 7.487052,46.4247839,0 7.4866143,46.4247898,0 7.4864512,46.4250915,0 7.4869662,46.4252809,0 7.4869576,46.4255589,0 7.4862624,46.4258547,0 7.4859791,46.4260973,0 7.4859276,46.4263813,0 7.4843457,46.4265489,0 + + + + #style-Tracks + + relativeToGround + 7.5006562,46.4241982,0 7.5003643,46.424139,0 + + + + #style-Tracks + + relativeToGround + 7.5003643,46.424139,0 7.5000468,46.4239793,0 + + + + #style-Tracks + + relativeToGround + 7.4843457,46.4265489,0 7.4840821,46.4265818,0 + + + + #style-Tracks + + relativeToGround + 7.4840821,46.4265818,0 7.4831295,46.4267008,0 7.482194,46.4265943,0 7.4811898,46.4266712,0 7.4788895,46.4265588,0 7.478323,46.4266475,0 7.4783109,46.4266478,0 7.4770527,46.4266771,0 7.4761172,46.426896,0 + + + + #style-Tracks + + relativeToGround + 7.5659698,46.4470345,0 7.5655203,46.4480124,0 7.5655891,46.448399,0 7.5651457,46.4489852,0 7.5649628,46.449227,0 7.56516,46.449387,0 + + + + #style-Tracks + + relativeToGround + 7.5623083,46.444399,0 7.5621882,46.4442866,0 + + + + #style-Tracks + + relativeToGround + 7.5621882,46.4442866,0 7.5619659,46.4441994,0 7.5603342,46.4434764,0 + + + + #style-Tracks + + relativeToGround + 7.5638662,46.4451512,0 7.5633834,46.4449349,0 7.5624986,46.444518,0 7.5623083,46.444399,0 + + + + #style-Tracks + + relativeToGround + 7.563934,46.445205,0 7.5638662,46.4451512,0 + + + + #style-Tracks + + relativeToGround + 7.5650031,46.4460937,0 7.5644603,46.4461059,0 7.563467,46.446806,0 7.5631545,46.4467541,0 7.562727,46.446683,0 7.5621935,46.4470208,0 7.5616868,46.4474721,0 7.5615495,46.4474679,0 7.561039,46.447273,0 7.560624,46.447319,0 7.560726,46.447719,0 7.56098,46.448121,0 7.560985,46.448126,0 + + + + #style-Tracks + + relativeToGround + 7.5619659,46.4441994,0 7.5616754,46.4444958,0 7.5609186,46.4449775,0 7.56084,46.4452181,0 7.5609195,46.4455156,0 + + + + #style-Tracks + + relativeToGround + 7.6216319,46.5569936,0 7.621301,46.556518,0 7.621064,46.556056,0 7.620255,46.555568,0 7.61985,46.555023,0 7.619469,46.554934,0 7.61885,46.55517,0 7.618224,46.555101,0 7.616902,46.554591,0 7.616307,46.554441,0 7.6157588,46.5541889,0 7.615575,46.554088,0 7.615245,46.553345,0 7.615047,46.553178,0 7.614621,46.5530406,0 7.614502,46.552815,0 7.6145042,46.5525758,0 7.6144034,46.5523715,0 7.6143229,46.5523162,0 7.6137389,46.5522484,0 7.6133449,46.5520084,0 7.6131605,46.5518493,0 7.612778,46.551181,0 7.612155,46.550717,0 7.611452,46.550374,0 7.6106649,46.5501724,0 7.6104511,46.5495174,0 7.6104444,46.5492243,0 7.61033,46.549085,0 7.6099347,46.5488565,0 7.6099128,46.5485968,0 7.609773,46.5483856,0 7.6095989,46.5482497,0 7.6093448,46.5481847,0 7.609047,46.548181,0 7.6080786,46.5483557,0 7.6079368,46.5483324,0 7.607811,46.548242,0 7.6076426,46.5479874,0 7.6077006,46.5479132,0 7.607992,46.54754,0 7.6083158,46.5473431,0 7.6085167,46.5470549,0 7.6084328,46.5468316,0 7.6078638,46.54661,0 7.6078362,46.5465457,0 7.6079946,46.5463545,0 7.6082273,46.5462439,0 7.6085278,46.5461917,0 7.6087459,46.546067,0 7.6088015,46.5458812,0 7.608665,46.545726,0 7.6076322,46.5450348,0 7.6070738,46.5450152,0 7.6065814,46.5447507,0 7.606325,46.544763,0 + + + + #style-Tracks + + relativeToGround + 7.614076,46.555321,0 7.6141065,46.555273,0 7.6139027,46.555118,0 7.613895,46.554985,0 7.614333,46.554527,0 7.614442,46.554234,0 7.61451,46.554227,0 7.614586,46.55458,0 7.614753,46.554636,0 7.615356,46.554676,0 7.615528,46.554846,0 7.615611,46.554802,0 7.615595,46.554721,0 7.615483,46.554504,0 7.615205,46.5542,0 7.615198,46.554095,0 7.615281,46.554102,0 7.615478,46.55423,0 7.6157588,46.5541889,0 + + + + #style-Tracks + + relativeToGround + 7.562625,46.528737,0 7.56258,46.528984,0 7.5624755,46.5290639,0 7.5622926,46.5292237,0 7.5622248,46.5293516,0 7.5622072,46.5294627,0 7.5623111,46.5297611,0 7.5622992,46.5298085,0 7.5622281,46.5298254,0 7.5620681,46.5297868,0 7.5619444,46.5298217,0 7.5617042,46.5300155,0 7.5616171,46.5301839,0 7.5614941,46.5302822,0 7.5612441,46.5305146,0 7.5613218,46.5305287,0 7.5615238,46.5304796,0 7.5615986,46.5304887,0 7.5617029,46.5305871,0 7.5617754,46.5305914,0 7.5619127,46.5304947,0 7.5619779,46.5305096,0 7.5619084,46.5306169,0 7.5618508,46.5308156,0 7.5617721,46.5308511,0 7.5616366,46.5308149,0 7.5615781,46.5308304,0 7.5615803,46.5309603,0 7.5618485,46.5310641,0 7.562042,46.530987,0 7.562019,46.531133,0 7.5617081,46.5312275,0 7.5621951,46.5313441,0 7.5622535,46.5314364,0 7.561869,46.531579,0 7.5618187,46.5316877,0 7.5624312,46.5316881,0 7.5624457,46.5317378,0 7.5619692,46.5322001,0 7.561704,46.532197,0 7.5616572,46.5322558,0 + + + + #style-Tracks + + relativeToGround + 7.448503,46.459865,0 7.4481932,46.4599236,0 7.447857,46.459965,0 7.4477077,46.4598442,0 + + + + #style-Tracks + + relativeToGround + 7.422303,46.459911,0 7.422095,46.459751,0 7.421974,46.45922,0 7.42177,46.459237,0 7.421713,46.459428,0 7.421433,46.459584,0 7.421153,46.459927,0 7.421124,46.460335,0 7.421335,46.460904,0 7.421273,46.461004,0 7.421129,46.46101,0 7.420944,46.460704,0 7.420039,46.459998,0 7.419421,46.459828,0 7.419236,46.459693,0 7.419076,46.459556,0 7.418931,46.459118,0 7.418705,46.458838,0 7.417878,46.458255,0 7.417994,46.458118,0 7.4184,46.457984,0 7.418286,46.45737,0 7.418312,46.457205,0 7.418543,46.456938,0 7.418476,46.456862,0 7.417901,46.457018,0 7.417152,46.457407,0 7.41648,46.457492,0 7.416225,46.457234,0 7.416697,46.456572,0 7.416569,46.456405,0 7.416079,46.456122,0 7.415381,46.455862,0 7.415504,46.455627,0 7.415751,46.455464,0 7.416825,46.455187,0 7.416938,46.4549,0 7.416739,46.454633,0 7.415345,46.453554,0 7.414514,46.453405,0 7.413282,46.452981,0 7.411303,46.451664,0 7.410109,46.45107,0 7.40973,46.450997,0 7.409619,46.450662,0 7.409465,46.450521,0 7.408415,46.450157,0 7.408251,46.450016,0 7.408062,46.449662,0 7.407399,46.449145,0 7.4071281,46.4487423,0 + + + + #style-Tracks + + relativeToGround + 7.464328,46.457064,0 7.463382,46.457176,0 7.462897,46.457377,0 7.462649,46.457567,0 + + + + #style-Tracks + + relativeToGround + 7.469627,46.453826,0 7.469009,46.453963,0 + + + + #style-Tracks + + relativeToGround + 7.448482,46.460149,0 7.448486,46.460146,0 7.448833,46.459856,0 7.448785,46.459794,0 7.448503,46.459865,0 + + + + #style-Tracks + + relativeToGround + 7.5903867,46.5152344,0 7.5903489,46.5153277,0 7.590271,46.515499,0 7.590262,46.515674,0 7.590325,46.515841,0 7.590276,46.515941,0 7.590159,46.516075,0 + + + + #style-Tracks + + relativeToGround + 7.589031,46.518301,0 7.589029,46.518367,0 7.589031,46.51853,0 7.589068,46.51861,0 7.589181,46.518754,0 7.58928,46.518836,0 7.589371,46.518996,0 7.589441,46.519072,0 7.589449,46.519104,0 7.589424,46.519186,0 7.589486,46.519322,0 7.589476,46.519587,0 7.589486,46.519672,0 7.589452,46.51985,0 7.589515,46.519951,0 7.589558,46.520058,0 7.589665,46.520142,0 7.58973,46.520286,0 7.589863,46.520462,0 7.589887,46.520566,0 7.589898,46.520727,0 7.589946,46.520843,0 7.5900055,46.5210825,0 7.589943,46.521137,0 7.5898983,46.5211664,0 7.5898629,46.5212153,0 + + + + #style-Tracks + + relativeToGround + 7.6093448,46.5481847,0 7.6094427,46.5483293,0 7.6094101,46.548591,0 7.609356,46.548667,0 7.609166,46.548845,0 7.6089752,46.5489862,0 7.6088952,46.5490921,0 7.6086869,46.549561,0 7.608622,46.5497762,0 7.608591,46.54994,0 7.6086371,46.5501173,0 + + + + Lischenstrasse + #style-Tracks + + relativeToGround + 7.5802181,46.4985699,0 7.5801466,46.4985211,0 7.580027,46.4983298,0 7.5798853,46.498233,0 7.5797367,46.4978481,0 7.5796769,46.4977522,0 7.579526,46.497591,0 7.5792835,46.4974686,0 7.5791957,46.4973171,0 7.5790319,46.4971786,0 7.5788853,46.4971104,0 + + + + #style-Tracks + + relativeToGround + 7.578695,46.517886,0 7.578953,46.518042,0 7.579168,46.51811,0 7.579338,46.518213,0 7.579463,46.51835,0 7.579476,46.518507,0 7.579533,46.518679,0 7.579717,46.518822,0 7.579934,46.518941,0 7.580101,46.519058,0 7.580151,46.519196,0 7.580164,46.519362,0 7.580285,46.519495,0 7.5807866,46.5197277,0 7.581016,46.519826,0 7.581209,46.5199,0 7.581276,46.519904,0 7.5812961,46.5198713,0 7.581275,46.519829,0 7.581047,46.519686,0 7.58093,46.519564,0 7.580785,46.51945,0 7.580735,46.519297,0 7.580866,46.519152,0 7.580853,46.519022,0 7.580703,46.518801,0 7.580678,46.518635,0 7.580573,46.518538,0 + + + + #style-Tracks + + relativeToGround + 7.5807866,46.5197277,0 7.5808963,46.5198879,0 7.580874,46.519925,0 7.580826,46.519954,0 7.580638,46.520001,0 7.5803428,46.5199976,0 7.5801735,46.5200411,0 + + + + #style-Tracks + + relativeToGround + 7.6128563,46.5576717,0 7.612698,46.557657,0 7.612517,46.557642,0 7.612308,46.557685,0 7.612183,46.557782,0 7.61231,46.557889,0 + + + + #style-Tracks + + relativeToGround + 7.6045687,46.4880471,0 7.6045863,46.4881633,0 7.6045673,46.4882513,0 7.6044723,46.4884403,0 7.6043857,46.488565,0 + + + + #style-Tracks + + relativeToGround + 7.5897212,46.4818723,0 7.5895673,46.4819072,0 7.589368,46.482049,0 7.589186,46.482293,0 7.5889665,46.4825243,0 7.588688,46.482802,0 7.588667,46.482876,0 7.588272,46.483302,0 7.587817,46.483767,0 7.587592,46.484096,0 7.587544,46.484295,0 7.5873982,46.4845334,0 7.58722,46.484682,0 7.586952,46.484887,0 7.586723,46.484991,0 7.586202,46.485288,0 7.585801,46.485609,0 7.5853807,46.486011,0 7.585214,46.486292,0 7.5851904,46.4864815,0 + + + + #style-Tracks + + relativeToGround + 7.5773923,46.4947336,0 7.577378,46.494574,0 7.577124,46.494315,0 7.5770454,46.4942655,0 + + + + #style-Tracks + + relativeToGround + 7.4393406,46.4117801,0 7.4392719,46.411641,0 7.4393529,46.411519,0 7.4396951,46.4114482,0 + + + + #style-Tracks + + relativeToGround + 7.4864609,46.3705861,0 7.4871769,46.3704428,0 7.4885874,46.3703193,0 7.4891387,46.370344,0 + + + + #style-Tracks + + relativeToGround + 7.4891387,46.370344,0 7.4902628,46.3705021,0 7.4912509,46.3708331,0 7.4922462,46.3712679,0 7.4926614,46.3714013,0 7.4932557,46.3710307,0 7.4943369,46.3708875,0 7.4952462,46.370512,0 7.4956472,46.3701464,0 7.4958119,46.3696573,0 7.4961341,46.3693312,0 7.4969503,46.369099,0 7.4977594,46.3690793,0 7.4982964,46.3690496,0 7.4989479,46.368768,0 7.4992988,46.3682987,0 + + + + #style-Tracks + + relativeToGround + 7.4922705,46.4213819,0 7.4920912,46.4210829,0 7.492428,46.4207877,0 7.4926512,46.4205796,0 7.493215,46.420485,0 7.4936048,46.420432,0 7.4938281,46.4200158,0 7.4938848,46.4191076,0 7.4936426,46.4187141,0 7.4928631,46.4181881,0 7.4924317,46.4180405,0 7.4916144,46.4174502,0 7.4910922,46.4173707,0 7.4904754,46.4171777,0 7.4902029,46.4168183,0 7.4901878,46.4164474,0 + + + + #style-Tracks + + relativeToGround + 7.5640376,46.4659612,0 7.5641356,46.4658925,0 7.5644622,46.465664,0 7.5647672,46.4653051,0 7.5649746,46.4650798,0 7.5651461,46.4649462,0 7.5660472,46.4644537,0 7.5661701,46.464399,0 + + + + #style-Tracks + + relativeToGround + 7.5661701,46.464399,0 7.566232,46.46429,0 7.5662324,46.4640747,0 7.566153,46.463848,0 7.5658337,46.4636438,0 7.5656605,46.4634444,0 7.5655755,46.463216,0 7.5656183,46.4631362,0 7.5658357,46.4630618,0 7.5667984,46.4630235,0 7.5669353,46.4631081,0 7.5670907,46.4632844,0 7.5673083,46.4635677,0 7.5677701,46.4639593,0 7.5677916,46.4643203,0 7.5678558,46.4645145,0 7.5681316,46.4648778,0 7.5682555,46.4648917,0 7.5682601,46.4647927,0 7.5682358,46.4644346,0 7.5683003,46.4641251,0 7.5683716,46.464057,0 7.5684816,46.4640586,0 7.5687293,46.4644566,0 7.5687758,46.4647994,0 7.568836,46.4649425,0 7.5690456,46.4651543,0 7.5692344,46.4655112,0 7.5691868,46.465725,0 7.569286,46.4658155,0 7.569435,46.465632,0 7.569508,46.465472,0 7.5695098,46.4652372,0 7.5695761,46.4650048,0 7.5695761,46.4646523,0 7.5696509,46.4645017,0 + + + + #style-Tracks + + relativeToGround + 7.4248311,46.4957794,0 7.4245438,46.4955981,0 7.4236484,46.495249,0 7.4234662,46.4949758,0 7.423193,46.4947178,0 7.4228743,46.4944901,0 7.42196,46.4940534,0 + + + + #style-Tracks + + relativeToGround + 7.5735275,46.4691135,0 7.57336,46.469298,0 7.573238,46.469411,0 7.5731997,46.4695416,0 7.573284,46.4697528,0 7.5733001,46.4698644,0 7.573262,46.469952,0 7.5731973,46.4700178,0 7.573187,46.470135,0 7.5732019,46.4702022,0 7.573187,46.470352,0 7.5732409,46.4705046,0 7.573242,46.4705791,0 7.5732157,46.470724,0 7.5733061,46.4708862,0 7.5734015,46.4709989,0 7.5735742,46.4710778,0 + + + + Hohliebeweg + #style-Tracks + + relativeToGround + 7.5733697,46.4768436,0 7.573353,46.476752,0 7.5733911,46.4766038,0 7.573493,46.476286,0 7.5734351,46.4760864,0 7.5733474,46.4760144,0 7.5732267,46.4758689,0 7.573313,46.47557,0 7.573431,46.475316,0 7.573552,46.475106,0 7.573604,46.474837,0 7.57359,46.4746865,0 7.573548,46.474581,0 7.5732579,46.4742404,0 7.5731951,46.4737075,0 7.5731212,46.4734883,0 7.5730983,46.4732924,0 7.5731432,46.4730867,0 7.5732774,46.472861,0 7.5734388,46.472535,0 7.5736016,46.4723781,0 7.5738331,46.4722663,0 7.5739683,46.4721113,0 7.5740242,46.4719814,0 7.573929,46.471627,0 7.5735742,46.4710778,0 + + + + #style-Tracks + + relativeToGround + 7.5733911,46.4766038,0 7.5737293,46.4768559,0 7.5738944,46.4769527,0 7.5740528,46.4769137,0 7.5742429,46.476773,0 + + + + #style-Tracks + + relativeToGround + 7.5751232,46.4803012,0 7.574269,46.480065,0 7.574085,46.480036,0 7.573709,46.479919,0 7.573569,46.479818,0 7.573342,46.479577,0 7.573053,46.47915,0 7.5729777,46.4790803,0 7.5728374,46.4790077,0 7.5727664,46.4789417,0 7.5727002,46.4787992,0 7.5726607,46.4787749,0 7.5726211,46.4788179,0 7.572565,46.4789796,0 7.5725895,46.4791432,0 7.572533,46.479272,0 7.572535,46.479423,0 7.572453,46.480005,0 7.5724148,46.4801166,0 7.572435,46.480232,0 7.5724691,46.4803328,0 7.5725689,46.4804525,0 + + + + #style-Tracks + + relativeToGround + 7.5740293,46.4894136,0 7.574015,46.489153,0 7.5741006,46.4890715,0 + + + + #style-Tracks + + relativeToGround + 7.5741006,46.4890715,0 7.574056,46.488667,0 7.57397,46.488541,0 7.573774,46.488517,0 7.57331,46.488254,0 7.573174,46.488224,0 + + + + #style-Tracks + + relativeToGround + 7.592367,46.5149672,0 7.5922017,46.5152686,0 + + + + #style-Tracks + + relativeToGround + 7.5463905,46.4726263,0 7.546366,46.472721,0 7.5463738,46.472813,0 7.5464139,46.4728843,0 7.546528,46.472992,0 + + + + #style-Tracks + + relativeToGround + 7.5477933,46.4743096,0 7.54757,46.474233,0 7.547457,46.474213,0 7.547301,46.474235,0 7.547152,46.474314,0 7.547062,46.474311,0 7.546977,46.474161,0 7.546801,46.473923,0 7.546706,46.47382,0 7.54664,46.473763,0 7.546483,46.473653,0 7.546253,46.47342,0 7.546126,46.47332,0 7.546031,46.473211,0 7.545932,46.473064,0 7.545876,46.472971,0 7.545769,46.472472,0 7.545809,46.472383,0 7.545972,46.472179,0 7.5460217,46.4721319,0 7.546117,46.472286,0 7.546154,46.472453,0 7.546266,46.472588,0 7.5463905,46.4726263,0 7.5464571,46.47259,0 7.5465039,46.4724999,0 7.5465251,46.472387,0 + + + + #style-Tracks + + relativeToGround + 7.550773,46.4757458,0 7.5506962,46.4757786,0 7.5505663,46.4760656,0 7.550485,46.4762,0 7.5501625,46.4766475,0 7.549997,46.476819,0 7.549832,46.476925,0 7.549748,46.476959,0 7.5494582,46.4770455,0 + + + + #style-Tracks + + relativeToGround + 7.5494582,46.4770455,0 7.5493221,46.4771051,0 7.5491396,46.4772255,0 7.548826,46.4773225,0 7.5486479,46.4774293,0 7.548434,46.477516,0 7.548247,46.477632,0 7.5479858,46.4777277,0 7.5476525,46.4777526,0 + + + + #style-Tracks + + relativeToGround + 7.5788121,46.4963841,0 7.578966,46.4963599,0 7.5790202,46.4963178,0 7.579056,46.496135,0 7.5789867,46.4959231,0 7.5790707,46.495913,0 7.5793381,46.4961651,0 7.5795192,46.4962795,0 7.579574,46.496281,0 7.5795861,46.4962396,0 7.5795507,46.496092,0 7.5795179,46.4960341,0 7.5795848,46.495996,0 7.5797434,46.4960857,0 7.5799401,46.4961536,0 7.580077,46.496183,0 7.58027,46.496287,0 7.5803426,46.4962898,0 7.5803678,46.4962349,0 7.5802526,46.496084,0 7.5801532,46.4959733,0 7.580083,46.495718,0 7.579987,46.4956342,0 7.5798442,46.4954093,0 7.5797401,46.4953337,0 + + + + #style-Tracks + + relativeToGround + 7.551122,46.463773,0 7.5510751,46.4639061,0 7.551126,46.464136,0 7.551157,46.46429,0 7.551131,46.464488,0 7.551011,46.464817,0 7.5511177,46.4651568,0 7.551141,46.465532,0 7.551148,46.465689,0 7.551205,46.465825,0 7.551178,46.465985,0 7.551117,46.466111,0 7.55102,46.466282,0 7.5509148,46.4667058,0 7.5508464,46.4667767,0 7.55076,46.466756,0 7.550766,46.466644,0 7.550804,46.466472,0 7.550801,46.46641,0 7.550818,46.466297,0 7.550888,46.46611,0 7.5508992,46.4659542,0 7.5507243,46.4657912,0 7.550437,46.465633,0 7.550125,46.465271,0 7.550097,46.4651635,0 7.549923,46.46466,0 7.549876,46.464615,0 7.549742,46.46452,0 7.549705,46.464381,0 7.5496948,46.4642671,0 7.549453,46.463839,0 7.549126,46.463452,0 7.548957,46.463311,0 7.548793,46.463125,0 7.548655,46.462876,0 7.548514,46.462743,0 7.548238,46.462601,0 7.548131,46.462514,0 7.548045,46.462474,0 7.547837,46.462405,0 7.547614,46.462349,0 7.5474366,46.4622477,0 7.547348,46.462173,0 7.547249,46.462054,0 7.547227,46.461882,0 7.547246,46.461712,0 7.547194,46.461545,0 7.546998,46.461234,0 7.546996,46.460975,0 7.546968,46.460886,0 7.5467453,46.4607696,0 7.5466425,46.4607158,0 + + + + #style-Tracks + + relativeToGround + 7.5324614,46.4521053,0 7.5326827,46.452079,0 7.532898,46.452116,0 7.5330862,46.4521987,0 7.5332827,46.4523798,0 7.533559,46.452494,0 7.534264,46.452695,0 7.5346068,46.4526309,0 7.5347041,46.4526012,0 + + + + #style-Tracks + + relativeToGround + 7.5505555,46.461797,0 7.5503452,46.461619,0 7.550283,46.461427,0 7.550137,46.4612643,0 7.549677,46.4609514,0 7.5496432,46.4608955,0 + + + + #style-Tracks + + relativeToGround + 7.5525656,46.4936365,0 7.5528161,46.4936972,0 7.5529717,46.4937895,0 7.5532023,46.4938745,0 7.5533579,46.4938597,0 7.5536959,46.4937378,0 7.5540177,46.4937341,0 7.5542269,46.4937489,0 7.5543128,46.4938375,0 7.5542538,46.4939262,0 7.5540499,46.494133,0 7.5538943,46.4943583,0 7.5538032,46.494602,0 7.5537978,46.4948273,0 7.553771,46.4950525,0 7.5538192,46.4951855,0 7.5540445,46.4955289,0 7.554184,46.4957985,0 7.5543771,46.4960496,0 7.554581,46.4961826,0 7.5548278,46.4962638,0 7.5550262,46.4962564,0 7.5551872,46.4962786,0 7.5552623,46.4963451,0 7.5553696,46.4965592,0 7.5554768,46.4968325,0 7.5555734,46.4971981,0 7.5556592,46.497416,0 7.5556592,46.4975489,0 7.5555466,46.4976892,0 7.5553588,46.4978997,0 7.5553213,46.4980807,0 7.5553427,46.4981656,0 7.5554339,46.4981804,0 7.5557343,46.4981656,0 + + + + Dauberhorn - Gemmibahn + #style-Tracks + + relativeToGround + 7.6026829,46.3875479,0 7.602328,46.387297,0 7.6021778,46.3868011,0 7.6021457,46.3865273,0 7.6018452,46.3866235,0 7.6017809,46.3864903,0 7.6014697,46.3864385,0 7.6010835,46.3865347,0 7.60059,46.3866605,0 7.6001286,46.3867049,0 7.5997639,46.3868011,0 7.5994205,46.3868603,0 7.5989592,46.3867715,0 7.5984335,46.3867789,0 7.5978219,46.3869047,0 7.5970387,46.3870009,0 7.5962984,46.3870824,0 7.5958693,46.3873858,0 7.5956869,46.3876152,0 7.5957298,46.3879926,0 7.5956976,46.3883034,0 7.5950539,46.3883404,0 7.5943029,46.3885476,0 7.5939166,46.388666,0 7.5934124,46.3888807,0 7.5931978,46.3890657,0 7.5930369,46.3890805,0 7.5928438,46.3893247,0 7.5926292,46.3895171,0 7.5924468,46.3896281,0 7.5925433,46.3898279,0 7.5926506,46.3901091,0 7.5927043,46.3904791,0 7.5915885,46.3912709,0 7.591095,46.3912339,0 7.5907302,46.3909897,0 7.5902152,46.3909083,0 7.5895822,46.3908121,0 7.5890779,46.3908935,0 7.5887668,46.3911895,0 7.5887132,46.3913375,0 7.5882947,46.3914855,0 7.5875437,46.3916927,0 7.5872004,46.3918111,0 7.5868034,46.3919887,0 7.5864494,46.3920775,0 7.5863099,46.3922477,0 7.5848937,46.3921071,0 7.5844216,46.3922773,0 7.5837564,46.3924919,0 7.5830698,46.3926251,0 7.5825977,46.3927657,0 7.5824904,46.3930691,0 7.582587,46.3933725,0 7.5828123,46.3936093,0 7.5831878,46.3937499,0 7.5833809,46.3940088,0 7.5835955,46.394364,0 7.5840139,46.3947192,0 7.5842285,46.3949264,0 7.5844109,46.3950966,0 + + + + #style-Tracks + + relativeToGround + 7.4800756,46.5665507,0 7.4797926,46.5665166,0 7.4796178,46.5666915,0 7.4795866,46.567193,0 + + + + #style-Tracks + + relativeToGround + 7.4854834,46.5161258,0 7.4855385,46.5162773,0 7.4860047,46.516287,0 7.4862334,46.5162894,0 7.4863353,46.5163123,0 7.4863709,46.516376,0 7.4863073,46.5165008,0 7.4861876,46.516595,0 7.4859915,46.5169922,0 7.4858387,46.5171984,0 7.4857878,46.5173207,0 7.4856325,46.5174683,0 7.4855638,46.517476,0 7.485551,46.517504,0 7.4855638,46.5175778,0 7.4855638,46.517644,0 7.4854939,46.5177249,0 7.485479,46.5178293,0 7.4854094,46.5178741,0 7.48529,46.5179586,0 7.4852304,46.5180432,0 7.4851856,46.518073,0 7.4851508,46.5181625,0 7.4850513,46.518267,0 7.4849668,46.5183863,0 7.4849469,46.5185057,0 7.4849767,46.51863,0 7.4850463,46.5187444,0 7.4851309,46.5188389,0 7.4850762,46.5189035,0 7.4850165,46.5189334,0 7.4847927,46.5189682,0 7.4847032,46.5190129,0 7.4846684,46.5190676,0 7.4846187,46.5193412,0 7.4846734,46.5194357,0 7.4847032,46.5195848,0 7.4847281,46.5197092,0 7.4847032,46.5198982,0 7.4845988,46.5200026,0 7.4843849,46.5200722,0 7.4843799,46.5201369,0 7.4847529,46.5200871,0 7.4848822,46.5200374,0 7.4849668,46.5199429,0 7.4854691,46.5197042,0 7.485847,46.5197092,0 7.4863394,46.5197689,0 7.4866477,46.5197539,0 7.4868615,46.5196445,0 7.4869113,46.51956,0 7.4869361,46.5193412,0 7.4869859,46.5192467,0 7.4872097,46.5190577,0 7.4877169,46.5187991,0 7.4883535,46.5185405,0 7.4886569,46.5185355,0 7.4888409,46.5185057,0 7.4893133,46.5182371,0 7.4898007,46.518068,0 7.4903527,46.5178791,0 7.490661,46.5178293,0 7.4906511,46.5179039,0 7.4905417,46.5179735,0 7.4904273,46.5181774,0 7.4903079,46.5183664,0 7.4901438,46.5186549,0 7.4898255,46.5192914,0 7.4897708,46.5196296,0 7.4894476,46.5202562,0 7.4894128,46.5204949,0 7.4894526,46.5207834,0 7.4894277,46.5209176,0 7.4892984,46.5213304,0 7.4891591,46.5213951,0 7.4891392,46.5214547,0 7.4892089,46.5214846,0 7.4895669,46.5214199,0 7.4901388,46.5213056,0 7.490472,46.5212956,0 7.4908351,46.5212508,0 7.4912976,46.5212011,0 7.4914169,46.5212857,0 7.4918049,46.5213304,0 7.4919292,46.5213851,0 7.4920336,46.5215194,0 + + + + #style-Tracks + + relativeToGround + 7.4021735,46.5042278,0 7.4022338,46.5039567,0 7.4030306,46.5030461,0 7.4037515,46.5022493,0 7.4056866,46.5010162,0 7.4058004,46.5007506,0 7.4059332,46.4997451,0 7.4060281,46.4994985,0 7.406692,46.499195,0 7.4082666,46.4986638,0 7.4103534,46.4975065,0 7.4132181,46.495894,0 7.4147413,46.4949366,0 7.4158357,46.4942866,0 7.4175094,46.4931639,0 7.4190972,46.4920117,0 7.4198912,46.4915094,0 7.4200628,46.4913764,0 7.420213,46.4910662,0 7.4206636,46.4907264,0 7.4214576,46.4903571,0 7.4219511,46.4900912,0 7.4222944,46.4897809,0 7.4230025,46.4897514,0 7.4239037,46.4894116,0 7.4249123,46.4888355,0 7.4254272,46.4882593,0 7.4258779,46.4874467,0 7.426071,46.4870331,0 7.4261353,46.485925,0 7.4260066,46.4852306,0 7.4258564,46.4843146,0 7.4257277,46.483561,0 7.4256418,46.4830439,0 7.425556,46.4822756,0 7.4257277,46.4817141,0 7.4258993,46.4813891,0 7.4261139,46.4812709,0 7.4263714,46.4811675,0 7.4265645,46.4809458,0 7.4266932,46.480606,0 7.4266932,46.4802514,0 7.426543,46.4798229,0 7.4264787,46.4794387,0 7.426822,46.4788476,0 7.4272511,46.47836,0 7.4274872,46.4778576,0 7.4276803,46.4774587,0 7.4279378,46.4770301,0 7.4280236,46.4764982,0 7.4280486,46.4762655,0 7.4280665,46.4760992,0 7.4282269,46.4757891,0 + + + + #style-Tracks + + relativeToGround + 7.5590626,46.4870252,0 7.5596203,46.4873634,0 7.5598972,46.487543,0 + + + + #style-Tracks + + relativeToGround + 7.42196,46.4940534,0 7.4214143,46.4939178,0 7.4213342,46.4938979,0 7.4209566,46.4938507,0 7.4206648,46.4939098,0 7.4203558,46.494022,0 7.4195919,46.4942879,0 7.4191112,46.4943588,0 7.4184675,46.4944416,0 7.4180469,46.4945775,0 7.4175132,46.4950208,0 + + + + #style-Tracks + + relativeToGround + 7.4262468,46.4595065,0 7.4262361,46.4592922,0 7.4262361,46.4590705,0 7.4262468,46.4587453,0 7.4261824,46.4585088,0 7.4257425,46.4580062,0 + + + + #style-Tracks + + relativeToGround + 7.4528183,46.5206213,0 7.4518921,46.5203291,0 7.4515129,46.5200991,0 7.4509055,46.5198462,0 7.4505617,46.5197602,0 7.4499281,46.5196986,0 7.4496551,46.5195907,0 7.4494311,46.5194705,0 7.4490583,46.5193646,0 7.4486957,46.5192179,0 7.4482353,46.5189694,0 7.4478544,46.5188064,0 7.4475591,46.5187391,0 7.4471488,46.5186023,0 7.4469498,46.5184034,0 7.4465396,46.5182355,0 7.4459925,46.5180117,0 7.4456879,46.5179496,0 7.4451533,46.5175952,0 7.444426,46.5172906,0 7.4441524,46.5170979,0 7.4437608,46.5165882,0 7.443077,46.5160473,0 7.4429775,46.5158546,0 7.4426046,46.5155873,0 7.4424367,46.51532,0 7.4417405,46.5148414,0 7.4415602,46.5144995,0 7.4413488,46.5142321,0 7.4411126,46.513424,0 7.4407645,46.513051,0 7.4405096,46.5126905,0 7.440437,46.5125172,0 7.4399804,46.5119635,0 7.4394754,46.5115556,0 7.439116,46.5109922,0 7.4387663,46.5104289,0 7.4387469,46.5101957,0 7.4386789,46.5098266,0 7.4385332,46.5094964,0 7.4384361,46.5092438,0 7.4386206,46.5089039,0 7.4385138,46.5086416,0 7.4384069,46.5082725,0 7.438572,46.507952,0 7.4387954,46.5077286,0 7.438504,46.5076023,0 7.4381641,46.5073109,0 7.4378824,46.506835,0 7.4375813,46.5061259,0 7.4372316,46.5051255,0 7.4373967,46.5046204,0 7.4378533,46.504057,0 7.4381641,46.5035228,0 7.4382224,46.5033285,0 7.4385915,46.5029011,0 7.4395434,46.5021144,0 7.4396599,46.5018327,0 7.4397085,46.5013179,0 7.4400193,46.5009779,0 7.4410198,46.5002689,0 7.4410459,46.5001952,0 + + + + Hörnliweg + #style-Tracks + + relativeToGround + 7.5634771,46.498246,0 7.563543,46.498316,0 7.5638087,46.4985406,0 7.5638266,46.4989595,0 7.5643825,46.4994173,0 7.5647636,46.4997905,0 7.5650245,46.5000946,0 7.5652805,46.5002911,0 7.565369,46.500541,0 7.5654359,46.5006704,0 7.5654456,46.5007267,0 7.565494,46.5008679,0 + + + + #style-Tracks + + relativeToGround + 7.5704442,46.5055077,0 7.5702808,46.5053663,0 7.5701857,46.5052743,0 7.5700595,46.505126,0 7.5699587,46.5049793,0 7.5697775,46.5047638,0 7.5696764,46.5046204,0 7.5696176,46.5045153,0 7.569522,46.504287,0 7.5693937,46.504028,0 7.5693182,46.5038638,0 7.5692352,46.5036487,0 7.5691654,46.5034532,0 7.5690593,46.5033257,0 7.5688693,46.5031471,0 7.568744,46.5029817,0 7.5687151,46.5029089,0 7.5686907,46.5028223,0 + + + + #style-Tracks + + relativeToGround + 7.4293897,46.4761015,0 7.4294959,46.4760031,0 7.4295844,46.47592,0 7.4297078,46.4758018,0 7.429925,46.4756596,0 7.4300725,46.4755229,0 7.4302362,46.475316,0 7.4303756,46.4750833,0 7.4304722,46.4749115,0 7.4305178,46.4747323,0 7.4306707,46.4745217,0 7.4308584,46.4742853,0 7.4311427,46.4740562,0 7.431352,46.4738216,0 7.4314887,46.4735446,0 7.431588,46.4733063,0 7.431706,46.4730477,0 7.4317516,46.4728703,0 + + + + #style-Tracks + + relativeToGround + 7.4268244,46.4763947,0 7.4269585,46.4764612,0 7.4271248,46.4764871,0 7.4273876,46.4764354,0 7.4276022,46.4763578,0 7.4277363,46.4762802,0 7.4278812,46.4762507,0 7.4280486,46.4762655,0 + + + + #style-Tracks + + relativeToGround + 7.4340985,46.4707201,0 7.434238,46.4705945,0 7.4344365,46.4703802,0 7.4346457,46.4702213,0 7.4350534,46.4703728,0 7.4353769,46.4704585,0 + + + + #style-Tracks + + relativeToGround + 7.4353769,46.4704585,0 7.435482,46.4704761,0 7.4355162,46.4704903,0 7.4356185,46.4705018,0 7.4364604,46.4704052,0 7.4370811,46.4707552,0 + + + + #style-Tracks + + relativeToGround + 7.5318629,46.4633692,0 7.5317263,46.4629743,0 7.5313508,46.4623387,0 7.5311041,46.4613854,0 7.5310075,46.4608607,0 7.5306964,46.4603581,0 7.5305891,46.4600477,0 7.5305462,46.4596042,0 7.5303852,46.4589982,0 7.5299883,46.4585769,0 7.5287008,46.4575126,0 7.5283682,46.4569361,0 7.5281322,46.4561453,0 7.5281429,46.4557461,0 7.5282287,46.4554727,0 7.5285399,46.4551622,0 7.5292158,46.4544453,0 7.5298273,46.4542235,0 7.530396,46.4541053,0 7.530632,46.4540535,0 7.5307286,46.4539279,0 7.5307071,46.4537948,0 7.5306427,46.4537061,0 7.5304389,46.4537357,0 7.5303101,46.4538096,0 7.5301814,46.4537357,0 7.5301063,46.4535435,0 7.5301385,46.4533218,0 7.5303423,46.4529891,0 7.5306642,46.4528857,0 7.5310719,46.4528931,0 7.5316191,46.4528487,0 7.5320053,46.4529004,0 7.532413,46.4530113,0 7.5328314,46.4530852,0 7.5330996,46.4530409,0 7.5331318,46.4528931,0 7.5329602,46.4526639,0 7.5328207,46.4524274,0 7.5326383,46.4522352,0 7.5324614,46.4521053,0 7.5322521,46.4520652,0 7.532016,46.4518508,0 7.5318658,46.4516512,0 7.531544,46.4512817,0 7.531029,46.4509564,0 7.5306213,46.4507494,0 7.5297415,46.450269,0 7.5292051,46.4499881,0 7.5288319,46.4496296,0 7.5282717,46.4492858,0 7.5278318,46.4490788,0 7.5274455,46.4489384,0 7.5270724,46.4487277,0 7.526555,46.4485983,0 7.5261903,46.4484875,0 7.5257504,46.4481844,0 7.5251519,46.4476484,0 7.5248921,46.447423,0 7.5246775,46.4471938,0 7.5244844,46.4471568,0 7.5242483,46.4472677,0 7.5241303,46.4473343,0 7.5239265,46.4473416,0 7.5236046,46.4472899,0 7.5233042,46.4472382,0 7.5229716,46.4472455,0 7.5226712,46.4472899,0 7.5224674,46.447386,0 7.5219416,46.4476152,0 + + + + #style-Tracks + + relativeToGround + 7.5388594,46.4323326,0 7.5392281,46.4322406,0 7.5397646,46.4321519,0 7.540065,46.4321667,0 7.54058,46.4322406,0 7.5410091,46.4322998,0 7.5412666,46.4325068,0 7.5416314,46.4326695,0 7.5418889,46.432773,0 7.5421035,46.43298,0 7.5425326,46.4332462,0 7.5428974,46.4333645,0 7.5433695,46.4334385,0 7.5435626,46.4335568,0 7.5439917,46.4337934,0 7.5445067,46.434104,0 7.5450861,46.4343406,0 7.5456225,46.4346364,0 7.5460088,46.4347842,0 7.5463306,46.4348434,0 7.5465452,46.4349173,0 7.5468671,46.4350356,0 7.5471889,46.4350208,0 7.5475323,46.4350356,0 7.5481116,46.4351539,0 7.5486051,46.4353314,0 7.5489914,46.4354793,0 7.5493562,46.4356567,0 7.5496351,46.435775,0 7.5499784,46.4358342,0 7.5503003,46.4357455,0 7.5506222,46.4355532,0 7.5507938,46.435361,0 7.5510942,46.435287,0 7.5513732,46.4353314,0 7.5516521,46.4355384,0 7.5519955,46.4357011,0 7.5523817,46.435775,0 7.5533044,46.4360264,0 7.5539696,46.4361891,0 7.5545275,46.4362335,0 7.5549352,46.436337,0 7.5550639,46.4365144,0 7.5549827,46.4367111,0 + + + + Gemmistrasse + #style-Tracks + + relativeToGround + 7.6237311,46.3837753,0 7.6234774,46.3838704,0 7.622544,46.3843698,0 7.6219235,46.3846108,0 7.6214367,46.3853915,0 7.6206176,46.3859502,0 7.6201284,46.3864565,0 7.6198804,46.3866291,0 7.6195346,46.3874896,0 7.6197172,46.3877987,0 7.6196075,46.3879736,0 7.6189509,46.3878995,0 7.6184904,46.3879967,0 7.6186038,46.3882094,0 7.6188989,46.3883671,0 7.6192004,46.3885456,0 7.619828,46.3888194,0 7.6202518,46.3889822,0 7.6205629,46.3889933,0 7.6210833,46.3890969,0 7.6215929,46.3890747,0 7.6224029,46.3887047,0 7.6229286,46.3884716,0 7.6235295,46.3881904,0 7.6238352,46.3880831,0 7.6242107,46.3883125,0 7.62461,46.3883714,0 + + + + Bütscheggenweg + #style-Tracks + + relativeToGround + 7.5645004,46.5024523,0 7.5643032,46.5024079,0 7.5642002,46.5024009,0 7.5639082,46.5024017,0 7.563623,46.502347,0 7.5633927,46.5022879,0 7.5632576,46.5022067,0 7.563109,46.5020934,0 7.563005,46.50203,0 7.562912,46.501915,0 7.5628685,46.5017841,0 7.562789,46.5017139,0 7.5625977,46.5016474,0 + + + + Bütscheggenweg + #style-Tracks + + relativeToGround + 7.5658571,46.5029369,0 7.565378,46.502792,0 7.5652788,46.5027476,0 7.5650875,46.5026587,0 7.5648487,46.5025808,0 7.5645004,46.5024523,0 + + + + #style-Tracks + + relativeToGround + 7.5883223,46.5173041,0 7.5883922,46.5173254,0 7.588884,46.51737,0 7.589137,46.517445,0 7.589223,46.517428,0 7.5892426,46.5172029,0 7.589195,46.517181,0 7.589143,46.517165,0 7.588956,46.517047,0 7.588803,46.516895,0 7.588737,46.516809,0 7.588709,46.516743,0 7.5886797,46.5165501,0 + + + + #style-Tracks + + relativeToGround + 7.5879633,46.5171897,0 7.5882182,46.5172418,0 7.5883223,46.5173041,0 7.5884541,46.5174144,0 7.588621,46.517648,0 7.588713,46.51781,0 7.588762,46.517866,0 7.58888,46.517958,0 7.588934,46.518028,0 7.58896,46.518155,0 7.589031,46.518301,0 7.589079,46.518323,0 7.5892056,46.5183555,0 7.589288,46.518439,0 + + + + #style-Tracks + + relativeToGround + 7.5826523,46.4989336,0 7.5825898,46.4990355,0 7.5826343,46.4991879,0 7.5826984,46.499309,0 7.582719,46.499403,0 7.5828014,46.4995759,0 7.582807,46.499739,0 7.5828446,46.4998144,0 7.5829721,46.4999336,0 7.58306,46.5000875,0 7.583046,46.500152,0 7.582917,46.500426,0 7.5826608,46.5005706,0 7.5823436,46.5007509,0 7.5822184,46.50073,0 7.5820124,46.5005653,0 7.5818994,46.5004572,0 + + + + #style-Tracks + + relativeToGround + 7.578672,46.5205961,0 7.5787651,46.520547,0 7.5788446,46.5204993,0 7.578937,46.520553,0 7.5793743,46.5206724,0 7.579642,46.520806,0 7.579854,46.520889,0 7.580014,46.520939,0 7.580248,46.520982,0 7.580479,46.520835,0 7.580655,46.520778,0 7.581053,46.520755,0 7.581774,46.520671,0 7.581938,46.520619,0 7.582083,46.520557,0 7.582782,46.520178,0 7.5828672,46.5200806,0 7.582853,46.519966,0 7.582691,46.5197745,0 + + + + #style-Tracks + + relativeToGround + 7.5785017,46.5014825,0 7.5782187,46.5013039,0 7.5773506,46.5011965,0 + + + + #style-Tracks + + relativeToGround + 7.5543278,46.5106844,0 7.552418,46.510272,0 7.552234,46.510298,0 7.5518293,46.510394,0 7.551497,46.510395,0 7.5511102,46.5103357,0 7.5504234,46.5103985,0 7.5498621,46.5103121,0 7.5489084,46.5104103,0 7.547537,46.510344,0 7.547371,46.510243,0 7.5472993,46.5100845,0 7.547166,46.509991,0 7.5470386,46.5099552,0 + + + + #style-Tracks + + relativeToGround + 7.5665772,46.5111305,0 7.5661335,46.5110512,0 7.565676,46.511024,0 7.564624,46.510737,0 7.5637674,46.5108027,0 7.5627058,46.5109232,0 7.5620088,46.5104446,0 7.5618541,46.5104123,0 7.5611605,46.5106807,0 7.5608878,46.5107049,0 7.5601998,46.5106693,0 7.5595979,46.5109139,0 7.5590547,46.5110383,0 7.558377,46.511309,0 7.5576766,46.5114214,0 7.557316,46.511429,0 7.5558858,46.5107802,0 7.5548832,46.5106228,0 7.5543278,46.5106844,0 + + + + #style-Tracks + + relativeToGround + 7.5572602,46.5039626,0 7.5565998,46.5037653,0 7.556337,46.503737,0 7.5561181,46.5036637,0 7.555636,46.503467,0 7.5542456,46.5027933,0 7.553992,46.502666,0 7.55387,46.502572,0 7.553751,46.5024,0 7.553569,46.502294,0 7.552955,46.502105,0 7.552762,46.501995,0 7.552663,46.50191,0 7.552167,46.501397,0 7.551822,46.501019,0 7.551661,46.500913,0 7.551534,46.500853,0 7.551234,46.500736,0 7.550892,46.500652,0 7.550273,46.500621,0 7.549463,46.500519,0 7.548911,46.500354,0 7.548753,46.500326,0 7.548575,46.500277,0 7.548373,46.500246,0 7.547924,46.500091,0 7.547575,46.499861,0 7.5472465,46.4995287,0 7.546982,46.499337,0 7.5461074,46.4989712,0 7.5459336,46.498931,0 7.5457608,46.498928,0 7.545644,46.4989186,0 + + + + #style-Tracks + + relativeToGround + 7.5470386,46.5099552,0 7.546909,46.50992,0 7.546808,46.509814,0 7.546857,46.509759,0 7.547272,46.509792,0 7.547587,46.509838,0 7.547864,46.509808,0 7.5484138,46.5095411,0 7.548895,46.509268,0 7.5490654,46.5092289,0 7.549337,46.509187,0 7.549454,46.509095,0 7.549336,46.509014,0 7.548898,46.509065,0 7.5486376,46.5090759,0 7.5473181,46.5086821,0 7.5471077,46.5085813,0 7.546657,46.508168,0 7.546354,46.508088,0 7.5457686,46.5080083,0 7.545412,46.507947,0 7.5453714,46.5078755,0 7.545397,46.507821,0 7.545586,46.507789,0 7.545796,46.507852,0 7.5459958,46.5078633,0 7.5462241,46.5078289,0 7.5471737,46.5073725,0 7.547784,46.507391,0 7.5479861,46.5073411,0 7.5484178,46.5072077,0 7.5490615,46.507294,0 7.5496816,46.5071724,0 7.55049,46.507205,0 7.5510042,46.5071606,0 7.5518441,46.5068113,0 7.5523092,46.5067029,0 7.5526955,46.5066625,0 7.5531485,46.5066932,0 7.553226,46.506592,0 7.5530968,46.5065076,0 7.552063,46.506265,0 7.5516405,46.5060492,0 7.551345,46.505969,0 7.5511689,46.5059586,0 7.5508777,46.5059993,0 7.550618,46.5059837,0 7.5502813,46.5058175,0 7.5500701,46.5055161,0 7.550038,46.505387,0 7.550148,46.505321,0 7.550443,46.505316,0 7.5508943,46.5054926,0 7.551208,46.5055229,0 7.5522791,46.5054416,0 7.5525466,46.5054651,0 7.5526722,46.505418,0 7.5527,46.505346,0 7.552515,46.505299,0 7.552095,46.505311,0 7.5511044,46.5049005,0 7.5509361,46.5047297,0 7.5506706,46.5043701,0 7.5503646,46.5043215,0 7.549279,46.504364,0 7.5488652,46.504323,0 7.5486825,46.5042853,0 7.548669,46.5042092,0 7.5487161,46.5041464,0 7.5494069,46.5041857,0 7.550184,46.50395,0 7.5507692,46.5038245,0 7.5512873,46.5038139,0 7.5524549,46.5039821,0 7.5532009,46.5040121,0 7.5546574,46.5041122,0 7.5555299,46.5041995,0 7.5566327,46.5042191,0 7.557042,46.504217,0 7.5572457,46.5041657,0 7.557353,46.504123,0 7.5574117,46.5040674,0 7.557406,46.5040271,0 7.5572602,46.5039626,0 + + + + #style-Tracks + + relativeToGround + 7.6155446,46.4496036,0 7.6158266,46.4496374,0 7.6163109,46.4496955,0 7.6171772,46.4499824,0 7.61826,46.4503153,0 7.6194595,46.4502464,0 7.6204757,46.4507399,0 7.621342,46.4512335,0 7.6221583,46.4518188,0 7.6229818,46.4535272,0 7.6229158,46.4551282,0 7.6233595,46.4571271,0 7.6247231,46.458704,0 7.6254607,46.4588344,0 7.6255846,46.458493,0 7.6262756,46.458691,0 7.6262981,46.459034,0 7.627519,46.4599796,0 7.6276489,46.4609378,0 7.6285887,46.4615968,0 7.6286387,46.4621247,0 7.6291384,46.4623542,0 7.6290218,46.4626755,0 7.6293217,46.4633181,0 7.6295049,46.4646607,0 7.6298548,46.4655902,0 7.6306877,46.467013,0 7.6310876,46.4674031,0 7.6317373,46.4675179,0 7.6327368,46.4678736,0 7.6337197,46.4684702,0 7.6346693,46.4691128,0 7.6356855,46.4702257,0 7.6365351,46.4709715,0 7.6373014,46.4713042,0 7.6380844,46.4719926,0 7.6395504,46.4729908,0 + + + + #style-Tracks + + relativeToGround + 7.617833,46.5283281,0 7.6175991,46.528688,0 7.6175883,46.5289759,0 7.6181999,46.529559,0 7.6185325,46.5300831,0 7.6184037,46.5301495,0 7.6178136,46.5297366,0 7.617009,46.5297288,0 7.6164189,46.5295295,0 7.6158824,46.5295295,0 7.6157644,46.5297288,0 7.6158932,46.5301274,0 7.6163545,46.5303713,0 7.6167086,46.5307105,0 7.6170658,46.5311194,0 + + + + #style-Tracks + + relativeToGround + 7.6109659,46.5266158,0 7.6117361,46.526354,0 7.6118901,46.5263694,0 7.6118131,46.5265542,0 7.6112585,46.5273552,0 7.6113048,46.5275554,0 7.6121982,46.5271857,0 7.6127681,46.5270625,0 7.6129553,46.5269559,0 + + + + #style-Tracks + + relativeToGround + 7.5189956,46.4843231,0 7.5190332,46.4840125,0 7.518926,46.4835988,0 7.518132,46.4833772,0 7.5167158,46.482934,0 7.5166944,46.4827123,0 7.5173166,46.482343,0 7.5171235,46.4822395,0 7.5169079,46.4822839,0 7.5161794,46.4823282,0 7.5153211,46.4821213,0 7.5151279,46.4820031,0 7.5148061,46.4812791,0 7.5132611,46.4802153,0 7.5121453,46.4796981,0 7.5121882,46.4795356,0 7.5129178,46.4798459,0 7.513304,46.479905,0 7.5146559,46.4803335,0 7.5159648,46.4805551,0 7.5169304,46.4809541,0 7.5174883,46.4808802,0 7.5181964,46.4809393,0 7.5186041,46.4813235,0 7.5194839,46.481486,0 7.5195482,46.4816337,0 7.5202778,46.4815303,0 7.5212402,46.481257,0 7.5217584,46.4814417,0 7.5225738,46.4816485,0 7.5231102,46.4815155,0 7.5235179,46.4811905,0 7.5247624,46.4810279,0 7.5264791,46.4803187,0 7.5276163,46.4792548,0 7.5279596,46.4786638,0 7.5284746,46.478383,0 7.5281742,46.4782501,0 7.5278953,46.478383,0 7.5264361,46.4787524,0 7.5253418,46.4787377,0 7.5242904,46.4786786,0 7.5232604,46.4786786,0 7.5222734,46.4785308,0 7.5212852,46.4786933,0 7.5198573,46.4781924,0 7.5196984,46.4778806,0 7.5187543,46.4780727,0 7.517896,46.4772305,0 7.5171021,46.476669,0 7.516351,46.4764621,0 7.5160292,46.4753686,0 7.5151923,46.4750886,0 7.5149348,46.4745854,0 7.5143555,46.4742307,0 7.5140551,46.4737578,0 7.5129393,46.4733293,0 7.5126818,46.4727382,0 7.512832,46.4725165,0 7.5127247,46.4723096,0 7.5120166,46.4720141,0 7.5119522,46.4717037,0 7.5114158,46.471482,0 7.5114587,46.470551,0 7.5113085,46.470152,0 7.5127676,46.4702998,0 7.5131538,46.4700633,0 7.5143984,46.4702259,0 7.5149134,46.4701232,0 7.5149527,46.4698298,0 + + + + #style-Tracks + + relativeToGround + 7.580325,46.5027273,0 7.580134,46.5028204,0 7.5799106,46.5029702,0 7.5795711,46.5032229,0 7.579505,46.50336,0 7.5794962,46.5034404,0 + + + + #style-Tracks + + relativeToGround + 7.5887308,46.5121362,0 7.5878146,46.5121861,0 7.5875342,46.512005,0 + + + + #style-Tracks + + relativeToGround + 7.5486892,46.4843265,0 7.5482932,46.4846238,0 + + + + #style-Tracks + + relativeToGround + 7.5452866,46.4835281,0 7.5445192,46.4833872,0 + + + + #style-Tracks + + relativeToGround + 7.5439543,46.4836822,0 7.5442929,46.4838529,0 7.5444163,46.4839361,0 7.5444886,46.4839589,0 7.544905,46.4840167,0 7.5455029,46.4842106,0 + + + + #style-Tracks + + relativeToGround + 7.5482932,46.4846238,0 7.5469389,46.4843438,0 7.546616,46.484368,0 7.546398,46.4842227,0 7.5456648,46.4841873,0 7.5455029,46.4842106,0 7.5451848,46.4842565,0 7.5450642,46.484286,0 + + + + #style-Tracks + + relativeToGround + 7.57139,46.4855698,0 7.5712639,46.4854836,0 7.571188,46.4854049,0 7.571083,46.4852752,0 7.5710397,46.4852471,0 7.5708579,46.4851424,0 7.5702202,46.4846207,0 7.5699875,46.4843914,0 7.5697506,46.4843808,0 + + + + + Winter_Hiking + + + + Summer_Hiking + + + Haselweg + Haselweg, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5647157,46.4954991,0 7.5652338,46.4952461,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5654624,46.4590852,0 7.5657857,46.4590406,0 7.5660894,46.4588054,0 7.5661792,46.4586043,0 7.5661147,46.4582042,0 7.5662091,46.4580919,0 7.5662434,46.4579559,0 7.565883,46.4574237,0 7.5652732,46.457071,0 7.5649731,46.4568975,0 7.5644095,46.4567614,0 7.5638831,46.4564126,0 7.5632094,46.4558142,0 7.5631766,46.4555546,0 7.5628849,46.4551459,0 7.562303,46.4547165,0 7.5619564,46.454653,0 7.561394,46.4546978,0 7.5610892,46.4543912,0 7.5610362,46.4541518,0 7.5607503,46.4539705,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.569223,46.5076089,0 7.5689582,46.5076903,0 7.5679113,46.5074419,0 7.5678265,46.5072529,0 7.56764,46.5072284,0 7.5673403,46.507312,0 7.567078,46.50724,0 7.5666536,46.5072812,0 7.5655643,46.5070497,0 7.5654691,46.5069622,0 7.5645959,46.5067976,0 7.5646229,46.5066189,0 7.5643876,46.5063719,0 7.5638487,46.5060826,0 7.5636134,46.506044,0 7.5635323,46.5059295,0 7.5622206,46.5058099,0 7.5617203,46.5055797,0 7.5615608,46.5056736,0 7.5614142,46.5054717,0 7.561247,46.5055566,0 7.5606426,46.5053148,0 7.5602722,46.5052865,0 7.5589439,46.5043505,0 7.5585357,46.5043073,0 7.5582688,46.5040954,0 7.557406,46.5040271,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6155345,46.3998258,0 7.6153734,46.4003914,0 7.6157251,46.4016849,0 7.6155493,46.4025742,0 7.6149472,46.4029894,0 7.6144356,46.4033422,0 7.6127356,46.4038677,0 7.6115633,46.4035443,0 7.6120396,46.4045298,0 7.6123253,46.4051208,0 7.613146,46.4064546,0 7.613439,46.408031,0 7.61467,46.4095668,0 7.615139,46.4106177,0 7.6161251,46.4113811,0 7.6171756,46.4129423,0 7.6173782,46.4140618,0 7.6173696,46.4148133,0 7.6174554,46.4152985,0 7.6170005,46.415979,0 7.6168546,46.4165589,0 7.6165714,46.4166773,0 7.6161937,46.4166891,0 7.6160392,46.4169495,0 7.6164169,46.4174229,0 7.6171207,46.4176714,0 7.6173009,46.4179081,0 7.6173267,46.4184998,0 7.6176528,46.418908,0 7.6182752,46.418677,0 7.6185884,46.4183755,0 7.6188287,46.4183578,0 7.6193806,46.4173872,0 7.6199672,46.4174714,0 7.6210491,46.4180023,0 7.6225795,46.4190323,0 7.6229658,46.4189554,0 7.6232576,46.4190796,0 7.6234722,46.4190027,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5666254,46.4971783,0 7.5668656,46.497203,0 7.5672608,46.4970805,0 7.5678102,46.4970381,0 7.5683727,46.4970519,0 7.5693504,46.49736,0 7.5695856,46.4975015,0 7.5697801,46.497493,0 7.5698535,46.4975297,0 7.5697316,46.4975853,0 7.5698707,46.4976373,0 7.5701022,46.4975877,0 7.5701367,46.4975929,0 7.5707109,46.4976791,0 7.5708665,46.4976169,0 7.5711207,46.497742,0 7.5713865,46.4977649,0 7.5715411,46.4976389,0 7.5719446,46.4978024,0 7.5720307,46.4977428,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5654624,46.4590852,0 7.5649892,46.4595141,0 + + + + Ueschinengrat + Ueschinengrat, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.613129,46.4372863,0 7.6146783,46.4377111,0 7.6156779,46.4377915,0 7.6171439,46.4379063,0 7.6186432,46.438067,0 7.6196094,46.4384918,0 7.6204424,46.438951,0 7.6213586,46.4392265,0 7.6214919,46.4394561,0 7.6218251,46.4394906,0 7.6218584,46.4397317,0 7.6221416,46.4400531,0 7.6221583,46.4404205,0 7.6225248,46.4405812,0 7.6225914,46.4408797,0 7.6228746,46.4409371,0 7.6231078,46.4411207,0 7.6232245,46.4413044,0 7.622858,46.4414996,0 7.6230246,46.4420276,0 7.6232578,46.442372,0 7.6237242,46.442659,0 7.6240241,46.4432215,0 7.624274,46.443761,0 7.6243739,46.4443579,0 7.6243739,46.4447712,0 7.6240907,46.4450237,0 7.6241907,46.4454599,0 7.6245239,46.4457354,0 7.6250903,46.4460913,0 7.6252569,46.4464586,0 7.6249737,46.4467341,0 7.6252902,46.4469292,0 7.6251403,46.4471702,0 7.6259566,46.4474687,0 7.6266396,46.4476868,0 7.6276058,46.4479393,0 7.6279557,46.4485247,0 7.6283555,46.4490068,0 7.6292717,46.4496036,0 7.630038,46.4502694,0 7.6311875,46.4509006,0 7.6315374,46.451222,0 7.6317206,46.4517041,0 7.632237,46.4521517,0 7.6324869,46.4523353,0 7.6323703,46.4527256,0 7.63297,46.4532994,0 7.6333699,46.4535519,0 7.6342695,46.4543094,0 7.6345527,46.4547341,0 7.6349525,46.4553997,0 7.6355855,46.4559736,0 7.6366517,46.4571671,0 7.6377512,46.4582,0 7.638301,46.4591984,0 7.638884,46.4598181,0 7.6388674,46.4601624,0 7.638884,46.4603575,0 7.6391173,46.4604263,0 7.6394005,46.4605067,0 7.6398503,46.4611263,0 7.6401834,46.4615395,0 7.6410164,46.461746,0 7.6423158,46.462205,0 7.6431321,46.4625722,0 7.6439484,46.4633985,0 7.6445315,46.4637312,0 7.644948,46.4642017,0 7.6453644,46.4646722,0 7.6460475,46.4651541,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.613129,46.4372863,0 7.614645,46.4371601,0 7.6147949,46.436896,0 7.6150948,46.4367812,0 7.6165941,46.4367812,0 7.6169939,46.4366434,0 7.6178935,46.4359661,0 7.619193,46.4364368,0 7.6179269,46.4347261,0 7.6185766,46.4346802,0 7.6184933,46.4342439,0 7.6185932,46.4339224,0 7.6188098,46.4336469,0 7.619193,46.4339683,0 7.6194095,46.4337961,0 7.619876,46.434152,0 7.6199926,46.4339798,0 7.620559,46.4341865,0 7.6205257,46.4338191,0 7.620659,46.4335206,0 7.6207756,46.4333484,0 7.6211754,46.4332335,0 7.6210588,46.432958,0 7.6217751,46.4331417,0 7.6231578,46.4331761,0 7.6237242,46.4335435,0 7.6239741,46.4325446,0 7.6243047,46.4319653,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.613129,46.4372863,0 7.6114798,46.4367468,0 7.6103046,46.4371303,0 7.6100952,46.437372,0 7.6096793,46.4373191,0 7.609981,46.4374867,0 7.6092641,46.4375619,0 7.609614,46.4376767,0 7.6091475,46.4379407,0 7.6094474,46.4381244,0 7.6091142,46.4382048,0 7.6091308,46.4384114,0 7.6087977,46.4385492,0 7.6086644,46.4388706,0 7.6091808,46.4387214,0 7.6107634,46.4388132,0 7.6111799,46.4389166,0 7.6113632,46.4392265,0 7.6116963,46.4392839,0 7.6114131,46.4396628,0 7.6116797,46.4399268,0 7.6115797,46.4404319,0 7.6118796,46.441224,0 7.6118463,46.4416144,0 7.6116297,46.4417636,0 7.6115631,46.4420621,0 7.61093,46.4418669,0 7.61098,46.4420735,0 7.610147,46.4419587,0 7.6098305,46.4422802,0 7.6098139,46.4426016,0 7.6108634,46.444025,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6108634,46.444025,0 7.6112632,46.4445875,0 7.6115964,46.4452533,0 7.6121961,46.4457584,0 7.6125293,46.4463323,0 7.6131124,46.4478704,0 7.6135455,46.4484099,0 7.6141619,46.4488116,0 7.6144784,46.4491675,0 7.6150781,46.4493396,0 7.6155446,46.4496036,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4787161,46.5654517,0 7.4789409,46.56562,0 7.4788957,46.5659074,0 7.4785552,46.566147,0 7.4784732,46.566416,0 7.4785488,46.5665905,0 7.4795866,46.567193,0 7.4797515,46.5672887,0 7.4800482,46.5673099,0 7.4802419,46.5674885,0 7.4801802,46.5674932,0 7.4801654,46.5675985,0 7.4803315,46.5678527,0 7.4805001,46.5679469,0 7.4808497,46.568056,0 7.4811398,46.5680585,0 7.4815241,46.5681539,0 7.4816035,46.5684949,0 7.4818155,46.5686213,0 7.4821328,46.5687589,0 7.4821799,46.5687366,0 7.482268,46.5689251,0 7.4824725,46.569209,0 7.4825891,46.5692747,0 7.4827415,46.5698549,0 7.4827143,46.5698945,0 7.4827948,46.5699664,0 7.4828345,46.5699627,0 7.4831308,46.5704896,0 7.4831135,46.5707772,0 7.4833007,46.5711876,0 7.4832126,46.5711901,0 7.483256,46.5713463,0 7.4830366,46.571619,0 7.4831097,46.5718632,0 7.4832201,46.5720294,0 7.4832994,46.5726753,0 7.4834246,46.5730509,0 7.4833007,46.5733249,0 7.483473,46.5735716,0 7.4839689,46.5737985,0 7.4840594,46.5739559,0 7.4843152,46.5741399,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.569223,46.5076089,0 7.5694207,46.5076825,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4682319,46.4426424,0 7.468149,46.4425956,0 7.4681436,46.4424662,0 7.467957,46.442374,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4393848,46.4651486,0 7.4393956,46.4653186,0 7.4393366,46.4654848,0 7.4392534,46.465595,0 7.4387103,46.4661122,0 7.4372103,46.4679225,0 7.4370442,46.4681471,0 7.4360816,46.4694487,0 7.4353769,46.4704585,0 + + + + Simmendamm + Simmendamm, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4440412,46.4544542,0 7.4442289,46.4544062,0 7.4523989,46.4496459,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4677582,46.4299748,0 7.4671079,46.4296049,0 7.4655576,46.4299747,0 7.4594593,46.4346501,0 7.4575621,46.4367506,0 7.4565457,46.4372249,0 7.4560037,46.438038,0 7.454784,46.438309,0 7.4537676,46.4392576,0 7.4535952,46.4392812,0 7.4532036,46.4391925,0 7.4529461,46.4390077,0 7.4525438,46.4389005,0 7.4516104,46.4388968,0 7.4507038,46.4388413,0 7.4504133,46.4388159,0 7.4502317,46.4387637,0 7.450119,46.4387267,0 7.4499634,46.4388549,0 7.449765,46.4390631,0 7.4495343,46.439259,0 7.4490998,46.4394476,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6092641,46.4375619,0 7.6088204,46.4375169,0 7.607629,46.437716,0 7.6078456,46.4379897,0 7.6053183,46.4381887,0 7.6040186,46.4382136,0 7.6040186,46.4378901,0 7.6036864,46.4378485,0 7.6032243,46.4377906,0 7.6029354,46.437293,0 7.6032965,46.4360489,0 7.6032604,46.4355015,0 7.6030437,46.4349292,0 7.6026466,46.4345809,0 7.602105,46.4335109,0 7.6010219,46.4318935,0 7.5998305,46.430948,0 7.5993611,46.4304005,0 7.5989279,46.428783,0 7.5988557,46.428136,0 7.5986391,46.427713,0 7.5978087,46.4267175,0 7.5975198,46.4261203,0 7.5974476,46.4256226,0 7.5971588,46.4252741,0 7.5969061,46.4242538,0 7.5961118,46.4229597,0 7.5956063,46.4231588,0 7.5952092,46.4234325,0 7.5947398,46.4247764,0 7.5943427,46.4250004,0 7.594451,46.426394,0 7.5941261,46.4271406,0 7.5937289,46.4276881,0 7.5925014,46.4288577,0 7.5915627,46.430077,0 7.5914183,46.4305249,0 7.5915266,46.4314208,0 7.5912459,46.4320011,0 7.5912016,46.4320926,0 7.5911503,46.4321334,0 7.5910484,46.4321962,0 7.5908982,46.4322258,0 7.5908285,46.4322665,0 7.5907266,46.4322776,0 7.5906407,46.4323293,0 7.5905495,46.4323404,0 7.5905388,46.4323959,0 7.5905989,46.4324636,0 7.5906139,46.4325216,0 7.5905817,46.4326288,0 7.5906139,46.4327028,0 7.590571,46.4327471,0 7.590512,46.4327323,0 7.5905012,46.4326732,0 7.5904154,46.4326547,0 7.5903886,46.4325992,0 7.5903296,46.4325992,0 7.5903189,46.4326695,0 7.5902759,46.4327249,0 7.5902652,46.4328063,0 7.5901526,46.4329763,0 7.5900505,46.4331525,0 7.5900506,46.4332241,0 7.5899969,46.4332504,0 7.5899648,46.4333091,0 7.5899112,46.4333498,0 7.5898736,46.4333017,0 7.5897985,46.4332795,0 7.5897395,46.4332388,0 7.5897073,46.4331649,0 7.5896322,46.433176,0 7.5895858,46.4332561,0 7.5896161,46.4333609,0 7.5895893,46.4334459,0 7.5894628,46.4335199,0 7.5894069,46.433383,0 7.5893318,46.4333128,0 7.5892084,46.4332795,0 7.5891387,46.4332721,0 7.5891212,46.4333221,0 7.5890529,46.4333793,0 7.5890046,46.4333941,0 7.5889724,46.4333645,0 7.5888812,46.4332093,0 7.5887685,46.4331242,0 7.5886237,46.4330836,0 7.5885384,46.4330396,0 7.5884896,46.4329985,0 7.5883662,46.4329431,0 7.5881892,46.4329394,0 7.5880336,46.432932,0 7.5879102,46.432895,0 7.5878244,46.4328913,0 7.5877171,46.4329061,0 7.587642,46.4328654,0 7.5875347,46.4328765,0 7.5874489,46.4329394,0 7.5874543,46.4330614,0 7.5875455,46.4331908,0 7.5875347,46.4332869,0 7.5875783,46.4333968,0 7.587642,46.4334496,0 7.5876796,46.4335309,0 7.5877815,46.4335383,0 7.5878878,46.4335835,0 7.5879531,46.433627,0 7.58798,46.4337232,0 7.5879811,46.4338264,0 7.5880229,46.4339006,0 7.5880014,46.43403,0 7.5879707,46.4341598,0 7.5879853,46.4342408,0 7.5880551,46.4343221,0 7.5881758,46.4343754,0 7.5882053,46.4344478,0 7.5881731,46.4345254,0 7.5880898,46.4345803,0 7.5880551,46.4346585,0 7.5879531,46.4347251,0 7.5878304,46.4347381,0 7.5877547,46.4347214,0 7.5876527,46.4347325,0 7.5875562,46.4347694,0 7.5874543,46.4347879,0 7.5873416,46.4348693,0 7.5873187,46.4349658,0 7.5872152,46.4350689,0 7.5871002,46.4351835,0 7.5870787,46.4352501,0 7.5869822,46.4353018,0 7.586832,46.4352981,0 7.5866818,46.4352538,0 7.586655,46.4351687,0 7.5865477,46.4350911,0 7.5863103,46.4350611,0 7.5861507,46.4350837,0 7.5859415,46.4350874,0 7.5856894,46.4351465,0 7.5855445,46.4352501,0 7.5854855,46.4353536,0 7.5854508,46.4354567,0 7.5854372,46.4356013,0 7.5853997,46.4357565,0 7.5852945,46.4359217,0 7.585169,46.4360116,0 7.5850134,46.4361189,0 7.5848418,46.4361336,0 7.5846755,46.4361299,0 7.5845038,46.4361558,0 7.5842285,46.4362702,0 7.5841122,46.4364516,0 7.5840908,46.4365921,0 7.5840532,46.4367067,0 7.5839567,46.436751,0 7.5838816,46.4367584,0 7.5838185,46.4367223,0 7.5837796,46.4366549,0 7.5836616,46.4366105,0 7.5835704,46.4365588,0 7.5834417,46.4365588,0 7.5833265,46.4365998,0 7.5832164,46.4366697,0 7.5830258,46.4367223,0 7.582916,46.4366993,0 7.5828623,46.4366586,0 7.582755,46.4366771,0 7.5827336,46.4367251,0 7.5827228,46.4367954,0 7.5826531,46.4368508,0 7.5825741,46.4368657,0 7.5824707,46.4368545,0 7.5823098,46.4368804,0 7.582122,46.436947,0 7.5819504,46.436995,0 7.5818699,46.4370024,0 7.5818002,46.436995,0 7.5817519,46.4369543,0 7.5817358,46.43691,0 7.5816768,46.4368915,0 7.58165,46.4368435,0 7.5816392,46.4367806,0 7.581607,46.4367362,0 7.5815909,46.4366734,0 7.5815427,46.4366475,0 7.5814461,46.4366475,0 7.5813388,46.4366771,0 7.5811725,46.436751,0 7.5810062,46.4367621,0 7.5808556,46.4367572,0 7.5806522,46.4367954,0 7.5804912,46.4367769,0 7.5803472,46.4367976,0 7.5802171,46.4368459,0 7.5802016,46.4369137,0 7.5801211,46.4369359,0 7.580046,46.4369211,0 7.5799333,46.4369322,0 7.5799119,46.4369765,0 7.5798421,46.4370061,0 7.5797779,46.4370077,0 7.5797188,46.4370357,0 7.5796383,46.4370579,0 7.5795526,46.4370554,0 7.5794988,46.4370357,0 7.5794237,46.4370135,0 7.5793379,46.4369876,0 7.5792908,46.4369913,0 7.5792252,46.4370135,0 7.5791609,46.4370431,0 7.5791072,46.4370579,0 7.5790268,46.4370616,0 7.5789356,46.4370357,0 7.5788122,46.4370579,0 7.5787049,46.4371429,0 7.5785547,46.437191,0 7.5784206,46.437239,0 7.5783294,46.437239,0 7.5782436,46.4372131,0 7.578147,46.4371836,0 7.5780451,46.437154,0 7.5779217,46.4371688,0 7.5777876,46.4371614,0 7.5776899,46.4371324,0 7.5775891,46.4371577,0 7.5774908,46.4372214,0 7.5773692,46.437239,0 7.5772726,46.437202,0 7.5771278,46.437276,0 7.5771009,46.4373351,0 7.5770366,46.437398,0 7.5770526,46.4374867,0 7.5771009,46.4375385,0 7.5771438,46.4376087,0 7.5771009,46.4376605,0 7.5770312,46.4376645,0 7.57694,46.4376198,0 7.5768756,46.4376531,0 7.5768273,46.4377122,0 7.576763,46.43769,0 7.5767201,46.4376568,0 7.5766181,46.4376457,0 7.576543,46.43769,0 7.5764518,46.4377159,0 7.5763445,46.4377048,0 7.5762212,46.4377233,0 7.5761943,46.4377714,0 7.5760871,46.4378083,0 7.576012,46.4378342,0 7.5760495,46.4378934,0 7.5761085,46.4379673,0 7.5761675,46.4379932,0 7.576189,46.438056,0 7.5762335,46.4381256,0 7.5762051,46.4381743,0 7.5759959,46.4382224,0 7.5757276,46.4382076,0 7.5754594,46.4382076,0 7.5753682,46.4381706,0 7.5752341,46.4381078,0 7.5751161,46.4381109,0 7.5750571,46.4381706,0 7.5750036,46.4381659,0 7.5748908,46.438141,0 7.5747835,46.4381189,0 7.5747406,46.4380819,0 7.5746816,46.438056,0 7.5746011,46.4380856,0 7.5745099,46.4380967,0 7.5744621,46.4380832,0 7.574349,46.4380819,0 7.5742941,46.4380642,0 7.5742095,46.4380043,0 7.5741344,46.4379303,0 7.5740003,46.4378601,0 7.5739037,46.4378194,0 7.5737428,46.4378083,0 7.5736095,46.437843,0 7.5735448,46.4379215,0 7.5734209,46.4379562,0 7.5733458,46.4380412,0 7.5733201,46.4381126,0 7.5732493,46.4381891,0 7.5732117,46.4382741,0 7.5731259,46.438422,0 7.5731152,46.4385847,0 7.5730776,46.4386438,0 7.572965,46.4387067,0 7.5728577,46.4387621,0 7.5727826,46.4388397,0 7.5727075,46.438995,0 7.5727348,46.4391616,0 7.5727665,46.439361,0 7.5726216,46.4395532,0 7.5725251,46.4396567,0 7.5725251,46.4397824,0 7.5725734,46.4399044,0 7.5726324,46.4399562,0 7.5726914,46.4400708,0 7.5726753,46.4401706,0 7.5725895,46.4402704,0 7.5723588,46.4404035,0 7.5716278,46.4407909,0 7.5706985,46.4416291,0 7.5701108,46.4423354,0 7.5693728,46.4429852,0 7.5688535,46.4437668,0 7.5675552,46.4450099,0 7.5667762,46.4458951,0 7.5659698,46.4470345,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4742902,46.543847,0 7.4740706,46.5437738,0 7.474096,46.5437005,0 7.4741839,46.5437162,0 7.4741585,46.5436234,0 7.4739037,46.5435112,0 7.473769,46.543193,0 7.4735787,46.5432623,0 7.4733698,46.5429187,0 7.4728954,46.5428416,0 7.4729051,46.5427908,0 7.4733112,46.542578,0 7.4735425,46.5427068,0 7.4735435,46.5426288,0 7.4732848,46.5422881,0 7.4731111,46.5423086,0 7.4730184,46.5422354,0 7.4730584,46.5420968,0 7.4730262,46.5419884,0 7.4727734,46.5419123,0 7.4729002,46.5417844,0 7.4724395,46.5414984,0 7.472902,46.5410832,0 7.4728875,46.5409579,0 7.4731061,46.5409579,0 7.4732465,46.5406833,0 7.4733172,46.5406909,0 7.4732599,46.5407253,0 7.4732991,46.5407434,0 7.4734232,46.5405983,0 7.4734576,46.5406871,0 7.4735388,46.5406947,0 7.4736859,46.5409144,0 7.4738822,46.5409576,0 7.4737586,46.5410479,0 7.473906,46.5410955,0 7.4739511,46.5410218,0 7.4740866,46.5410242,0 7.4741531,46.5411691,0 7.4743005,46.5411953,0 7.4743741,46.5412571,0 7.4742957,46.5411097,0 7.4743694,46.5409933,0 7.47431,46.5408602,0 7.4745595,46.5406986,0 7.4743504,46.5404181,0 7.4742957,46.5401187,0 7.4739061,46.5395675,0 7.4739061,46.5391722,0 7.4728853,46.5387885,0 7.4727226,46.5388327,0 7.4726063,46.538735,0 7.4720691,46.5387211,0 7.4719273,46.5385443,0 7.4718017,46.5385002,0 7.4718668,46.5384583,0 7.4718622,46.538356,0 7.471925,46.5382746,0 7.4721784,46.5382374,0 7.4720691,46.5374375,0 7.4722691,46.5372631,0 7.4722249,46.5371584,0 7.4723249,46.5371515,0 7.4720552,46.5368073,0 7.4719436,46.5365911,0 7.4717622,46.5365515,0 7.4717715,46.5366236,0 7.4716668,46.5365515,0 7.4715087,46.5365422,0 7.4714273,46.5365957,0 7.4711902,46.5365911,0 7.4712785,46.5362539,0 7.4714273,46.5360818,0 7.4713041,46.5360283,0 7.4712739,46.5359469,0 7.4711948,46.5358795,0 7.471125,46.5358865,0 7.4710599,46.5357516,0 7.4708669,46.5357167,0 7.4710948,46.5356353,0 7.4708367,46.535161,0 7.4710785,46.5351354,0 7.4711413,46.5348796,0 7.4709762,46.5347843,0 7.4711413,46.5346843,0 7.4710437,46.5345936,0 7.4714436,46.534368,0 7.4714041,46.5342797,0 7.4711832,46.5341936,0 7.4712739,46.5341448,0 7.4714785,46.534175,0 7.4714901,46.5340588,0 7.4715901,46.5339774,0 7.4714483,46.5339169,0 7.4715855,46.5338913,0 7.4715134,46.5337518,0 7.4716529,46.5335844,0 7.4715599,46.5334518,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4715599,46.5334518,0 7.4716933,46.5334754,0 7.4717591,46.5334871,0 7.4723134,46.5334289,0 7.4724659,46.5335346,0 7.4725436,46.5334476,0 7.472668,46.5334811,0 7.4727831,46.5334182,0 7.4727617,46.5334784,0 7.4729946,46.5335748,0 7.473016,46.5334463,0 7.473285,46.5334463,0 7.473562,46.5335266,0 7.4734933,46.5336569,0 7.4737722,46.5335744,0 7.4740695,46.533687,0 7.4742803,46.533611,0 7.4743445,46.5334447,0 7.4746862,46.5332667,0 7.4746312,46.5333989,0 7.4749193,46.5334225,0 7.4757731,46.5331973,0 7.4759525,46.5333426,0 7.4764802,46.5331855,0 7.4767827,46.5331868,0 7.4768233,46.5333151,0 7.4773418,46.533209,0 7.4774374,46.5330375,0 7.4775343,46.533027,0 7.4776076,46.5331331,0 7.4782663,46.5329118,0 7.4782532,46.532735,0 7.478481,46.5327075,0 7.478663,46.5327926,0 7.4789262,46.5326447,0 7.4791488,46.5326538,0 7.4791645,46.5325674,0 7.4797027,46.5324338,0 7.4804792,46.5328542,0 7.4806337,46.532828,0 7.480728,46.5329026,0 7.4809244,46.5328372,0 7.4809991,46.5327481,0 7.4812112,46.5327403,0 7.4812845,46.5326591,0 7.4813998,46.5326735,0 7.4815255,46.5327795,0 7.4816237,46.5327678,0 7.481642,46.5328673,0 7.4817546,46.532807,0 7.4818319,46.532976,0 7.4823072,46.5327795,0 7.4826136,46.5327953,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4826136,46.5327953,0 7.4832671,46.5330604,0 7.483638,46.5331012,0 7.4836392,46.5332404,0 7.4837808,46.5331216,0 7.4844133,46.5333052,0 7.4846353,46.5331804,0 7.4847205,46.5333172,0 7.4850038,46.533196,0 7.485209,46.5334301,0 7.4854334,46.5332644,0 7.4856758,46.5334481,0 7.4858403,46.5332236,0 7.4860635,46.5335045,0 7.4864127,46.5332812,0 7.4865448,46.5334001,0 7.4867464,46.5333544,0 7.4866924,46.5331996,0 7.4861523,46.5329248,0 7.4859435,46.5324759,0 7.4860743,46.5324471,0 7.486058,46.5321473,0 7.4864378,46.5318491,0 7.486282,46.5312689,0 7.4864986,46.5312408,0 7.4864363,46.5309826,0 7.4866945,46.5306265,0 7.4874629,46.530166,0 7.4876105,46.5306214,0 7.4874752,46.5308091,0 7.4880044,46.5309844,0 7.4879828,46.5311506,0 7.4884043,46.5312983,0 7.4889058,46.5313136,0 7.4890597,46.5315536,0 7.4894966,46.5316213,0 7.4894966,46.5317628,0 7.4901334,46.5321536,0 7.4907426,46.5323505,0 7.4913734,46.5323105,0 7.4918656,46.5323874,0 7.4920133,46.5319413,0 7.4923364,46.5318582,0 7.4925056,46.5319905,0 7.4940365,46.5316302,0 7.4942096,46.531841,0 7.494616,46.5317695,0 7.4954627,46.5322662,0 7.4954213,46.5326011,0 7.4961739,46.5326726,0 7.4965389,46.5330865,0 7.4963094,46.5331091,0 7.4962191,46.5338617,0 7.4959858,46.5339068,0 7.496046,46.5344826,0 7.4957449,46.5346632,0 7.495775,46.5352728,0 7.4950262,46.5360781,0 7.4937806,46.5359652,0 7.4934006,46.5361985,0 7.4927044,46.5360856,0 7.4926442,46.5362286,0 7.4925012,46.5361496,0 7.4922228,46.5363114,0 7.4921437,46.5362361,0 7.4919029,46.5364506,0 7.4918126,46.536413,0 7.4911804,46.5366802,0 7.4903827,46.5375419,0 7.4906687,46.5376886,0 7.490759,46.5379107,0 7.4911127,46.5378956,0 7.4915755,46.5381251,0 7.491775,46.5383472,0 7.4939236,46.5380913,0 7.4945671,46.5382079,0 7.4950563,46.5380348,0 7.4952181,46.5376886,0 7.4955605,46.5376096,0 7.4956885,46.5379784,0 7.4964938,46.5377225,0 7.4968926,46.5378994,0 7.4970545,46.5376736,0 7.4982774,46.5377902,0 7.4983038,46.5377075,0 7.4981231,46.5376661,0 7.4985446,46.5375456,0 7.4988005,46.5376284,0 7.498867,46.5378034,0 7.4990317,46.5377973,0 7.4990378,46.5379102,0 7.4997,46.5380597,0 7.4996664,46.5385602,0 7.4992514,46.5388867,0 7.499343,46.5390179,0 7.4997183,46.5389294,0 7.4996664,46.539024,0 7.4998464,46.5390728,0 7.5001241,46.5388287,0 7.5001882,46.5385998,0 7.5000265,46.5384686,0 7.5003987,46.5381391,0 7.5006276,46.5381208,0 7.5007252,46.5379804,0 7.5006642,46.5379224,0 7.5008015,46.5379194,0 7.5009022,46.5381024,0 7.5012501,46.5379224,0 7.5012806,46.5377058,0 7.5019458,46.5372664,0 7.5023699,46.5375013,0 7.5021197,46.5386273,0 7.5025042,46.5385144,0 7.5024676,46.5388592,0 7.5028063,46.5393444,0 7.5028378,46.5395826,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4450569,46.4629393,0 7.4444602,46.463138,0 7.443613,46.463674,0 7.4426102,46.4637086,0 7.4421779,46.4636567,0 7.4419013,46.463795,0 7.4417802,46.4640717,0 7.4414823,46.4643468,0 7.4411283,46.4644539,0 7.4406961,46.4643705,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6229468,46.3732175,0 7.6226819,46.3729271,0 7.6224073,46.3727198,0 7.6219266,46.3722934,0 7.6215061,46.3719381,0 7.6212314,46.3716301,0 7.6210426,46.3715235,0 7.6209545,46.3713816,0 7.6209319,46.3712759,0 7.6208667,46.3711625,0 7.6206931,46.3710179,0 7.62051,46.3708845,0 7.620338,46.3707338,0 7.6202476,46.3705534,0 7.6201733,46.3702665,0 7.6200628,46.3699434,0 7.6199611,46.3697469,0 7.6197608,46.3695189,0 7.6195411,46.3693534,0 7.6193051,46.3691457,0 7.6190999,46.3688752,0 7.6188746,46.3687665,0 7.6186973,46.3685452,0 7.618483,46.3684123,0 7.6182273,46.368213,0 7.6181587,46.3680412,0 7.6181758,46.3679524,0 7.6181158,46.3678932,0 7.6178325,46.3677569,0 7.6177124,46.3676859,0 7.6172403,46.3675615,0 7.6170085,46.3673897,0 7.6165021,46.3669159,0 7.6163219,46.3668093,0 7.6162103,46.3666316,0 7.6155752,46.366294,0 7.6149829,46.3661993,0 7.6144079,46.3660512,0 7.6141847,46.3660157,0 7.6141847,46.365838,0 7.6141332,46.3658025,0 7.6140474,46.365761,0 7.6137985,46.3657492,0 7.6133779,46.3656781,0 7.6130517,46.3653879,0 7.612923,46.365299,0 7.6128372,46.3650503,0 7.6127084,46.3649259,0 7.6125024,46.3648489,0 7.6121591,46.3648074,0 7.611996,46.3646949,0 7.6117214,46.3646297,0 7.611627,46.3646179,0 7.6114553,46.3645054,0 7.611318,46.3644698,0 7.6111978,46.3644935,0 7.6111206,46.3643632,0 7.6110691,46.364304,0 7.6109489,46.3642803,0 7.6107686,46.3642566,0 7.6105627,46.3642033,0 7.6104511,46.3641263,0 7.6102279,46.3640434,0 7.6099361,46.3639841,0 7.6099018,46.3639486,0 7.6098588,46.3639841,0 7.6099189,46.3640848,0 7.6099618,46.3641796,0 7.6103223,46.3643336,0 7.6103824,46.3644402,0 7.6105627,46.3645409,0 7.6107772,46.3647956,0 7.6110176,46.3649377,0 7.6112493,46.3651569,0 7.6114038,46.3653049,0 7.6114381,46.3653642,0 7.6113437,46.365376,0 7.6111806,46.3652813,0 7.6108459,46.3652102,0 7.6106742,46.3651154,0 7.6103738,46.3650443,0 7.609876,46.3648903,0 7.609567,46.3647245,0 7.6094039,46.3646594,0 7.6093009,46.3645764,0 7.6091121,46.3645172,0 7.6088546,46.3644994,0 7.6085456,46.3644876,0 7.6083053,46.3644165,0 7.6081165,46.3643514,0 7.6080221,46.3642092,0 7.6078933,46.3640138,0 7.6077989,46.3639545,0 7.6076702,46.3638835,0 7.6074728,46.3638657,0 7.6073783,46.3638005,0 7.6072238,46.3636643,0 7.6069921,46.3634985,0 7.6068805,46.3633563,0 7.6067775,46.3632734,0 7.6066574,46.3631845,0 7.6066488,46.3630779,0 7.6066059,46.3630187,0 7.6064342,46.3628884,0 7.606357,46.3628114,0 7.606254,46.3627403,0 7.6061338,46.3627225,0 7.6059707,46.3626811,0 7.6057819,46.3626396,0 7.6056274,46.3626041,0 7.6055158,46.3625745,0 7.6053699,46.3624975,0 7.605224,46.3624382,0 7.6051639,46.3624027,0 7.6050094,46.3623731,0 7.6048807,46.3623908,0 7.6047691,46.3623198,0 7.6046747,46.3623375,0 7.6045717,46.362379,0 7.6044773,46.3624027,0 7.6042026,46.3623968,0 7.6039794,46.3623849,0 7.6038249,46.3624442,0 7.6036361,46.362456,0 7.6034645,46.3624264,0 7.603267,46.3623968,0 7.6031812,46.3624264,0 7.6031211,46.3625626,0 7.603001,46.3625863,0 7.6028465,46.3626159,0 7.6025547,46.3625448,0 7.6022199,46.3624086,0 7.6019624,46.3623257,0 7.6018079,46.3623198,0 7.6016792,46.362225,0 7.6016792,46.3621184,0 7.6017822,46.3620118,0 7.6018251,46.3619111,0 7.6018251,46.3618281,0 7.6021255,46.3617393,0 7.60228,46.361686,0 7.6024517,46.3616741,0 7.6026062,46.3616564,0 7.6027349,46.3616327,0 7.6029666,46.3615498,0 7.6031211,46.3615675,0 7.6032499,46.3614905,0 7.6032499,46.3614313,0 7.6031383,46.3612951,0 7.6030954,46.3612121,0 7.6029323,46.3613187,0 7.6029151,46.3614076,0 7.602795,46.3614668,0 7.6027521,46.3615142,0 7.602589,46.3614491,0 7.602486,46.3613602,0 7.6026147,46.3612536,0 7.6027521,46.3611351,0 7.6028207,46.3609515,0 7.6029838,46.3607501,0 7.6030267,46.3606968,0 7.6030096,46.3604895,0 7.6030611,46.3602585,0 7.6030954,46.3601282,0 7.6030696,46.3599149,0 7.6029924,46.3595714,0 7.6030525,46.359293,0 7.6031898,46.3591034,0 7.60331,46.3587954,0 7.6034387,46.3584637,0 7.6033958,46.3581853,0 7.6033443,46.3579187,0 7.6033529,46.3577588,0 7.60331,46.3576699,0 7.6030954,46.3576521,0 7.6028722,46.3576166,0 7.6026062,46.35751,0 7.6023487,46.3573263,0 7.601971,46.3572434,0 7.6016534,46.3570183,0 7.6014904,46.3568287,0 7.6013015,46.3565029,0 7.6011899,46.3563489,0 7.6010698,46.3562719,0 7.6008895,46.356266,0 7.6007865,46.3562008,0 7.6005805,46.3559402,0 7.6005548,46.3557328,0 7.6005119,46.355567,0 7.6004089,46.3553359,0 7.600263,46.3551286,0 7.6001857,46.3549272,0 7.6002286,46.3548146,0 7.6000999,46.3547376,0 7.6002716,46.3546547,0 7.6002029,46.3545066,0 7.6000484,46.3542637,0 7.5999111,46.3540564,0 7.5999282,46.3539142,0 7.5998853,46.353849,0 7.5999025,46.3533218,0 7.5998338,46.3531737,0 7.5998081,46.3530433,0 7.5996707,46.3528656,0 7.5997051,46.3526287,0 7.5996707,46.3523443,0 7.5995763,46.3521073,0 7.5994476,46.35174,0 7.5993789,46.3514734,0 7.5993017,46.3513668,0 7.5993017,46.3512246,0 7.5995162,46.3509639,0 7.5994218,46.3506677,0 7.599439,46.3505492,0 7.5993961,46.3504426,0 7.599336,46.3502293,0 7.5992416,46.3501286,0 7.5991214,46.3499272,0 7.599027,46.3497494,0 7.5989755,46.3497079,0 7.5988039,46.3492162,0 7.5989068,46.348997,0 7.5989841,46.3488015,0 7.598924,46.34876,0 7.5988468,46.3487126,0 7.5987695,46.3486534,0 7.5988039,46.3483097,0 7.5988897,46.3481202,0 7.5989154,46.3480313,0 7.5990699,46.3476995,0 7.5991386,46.3475929,0 7.5992244,46.3475158,0 7.5994132,46.3474862,0 7.599542,46.3474566,0 7.5997137,46.3473203,0 7.5996536,46.3472374,0 7.5995506,46.3471722,0 7.5996278,46.3467397,0 7.5996278,46.3464197,0 7.5997652,46.346319,0 7.5999969,46.346005,0 7.6000226,46.345845,0 7.6001085,46.345768,0 7.6001171,46.3456673,0 7.6000656,46.345531,0 7.6000141,46.3453355,0 7.6000656,46.3452881,0 7.6002372,46.3451992,0 7.6003831,46.3450866,0 7.6003917,46.3448615,0 7.6004775,46.3447074,0 7.600572,46.3446067,0 7.6005119,46.3444704,0 7.6003831,46.3442749,0 7.600529,46.3442808,0 7.6006664,46.3442749,0 7.6007694,46.3442334,0 7.6007694,46.3440972,0 7.6008724,46.3439194,0 7.6011556,46.343789,0 7.6014303,46.3437416,0 7.6015762,46.3436705,0 7.6016019,46.3439609,0 7.6017135,46.3440438,0 7.6018852,46.3437831,0 7.601971,46.343635,0 7.6021427,46.3435698,0 7.6022542,46.3435994,0 7.6024002,46.343558,0 7.6025289,46.3435461,0 7.6027521,46.3435165,0 7.602898,46.3434276,0 7.6030096,46.3434217,0 7.6030868,46.3433861,0 7.6031898,46.3433269,0 7.60337,46.3432973,0 7.60337,46.343238,0 7.6034215,46.3431906,0 7.6035589,46.3431906,0 7.6036533,46.3431432,0 7.6036705,46.3430958,0 7.6039022,46.3429417,0 7.6042112,46.3428825,0 7.6042713,46.3428232,0 7.6044086,46.3427521,0 7.6045116,46.3426573,0 7.6045631,46.342527,0 7.6045631,46.3424203,0 7.6045373,46.3423611,0 7.6045116,46.3422959,0 7.6044343,46.3422011,0 7.6043485,46.3421418,0 7.6043485,46.3420826,0 7.6044086,46.3419581,0 7.6044086,46.3418752,0 7.6044601,46.3416737,0 7.6044601,46.3416085,0 7.6044944,46.341496,0 7.6044858,46.3414012,0 7.6044944,46.3413123,0 7.6044429,46.341176,0 7.6044429,46.3410693,0 7.6044601,46.3409212,0 7.6044172,46.3408205,0 7.6043142,46.340619,0 7.6043142,46.340536,0 7.6042198,46.3403642,0 7.6041769,46.3402279,0 7.6041597,46.3400798,0 7.6041597,46.3399316,0 7.6041425,46.339825,0 7.6040567,46.3396946,0 7.6039623,46.3395643,0 7.6038764,46.3394457,0 7.603782,46.339345,0 7.6036705,46.3392087,0 7.6034988,46.3391554,0 7.6033786,46.3391198,0 7.60331,46.3391672,0 7.6031898,46.3391435,0 7.6030353,46.3391791,0 7.6029323,46.3391791,0 7.6029151,46.3391554,0 7.6027778,46.3392028,0 7.6027177,46.3392324,0 7.6027177,46.3392561,0 + + + + Gemmiweg + Gemmiweg, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6144451,46.3984215,0 7.6144629,46.3983312,0 7.6143611,46.398261,0 7.6140943,46.3980976,0 7.6139827,46.3980162,0 7.6139853,46.3978615,0 7.6139363,46.3976182,0 7.6133218,46.3975412,0 7.6124978,46.3971683,0 7.612206,46.3968545,0 7.6120139,46.3966832,0 7.6116052,46.3966355,0 7.611382,46.3964875,0 7.6117254,46.3962803,0 7.6120344,46.3962507,0 7.6122232,46.3963218,0 7.6123777,46.3963099,0 7.6124635,46.3962034,0 7.6121545,46.3961324,0 7.6121373,46.3960021,0 7.6123262,46.3959666,0 7.6123777,46.3957772,0 7.6128068,46.3951379,0 7.6131244,46.3949011,0 7.6132531,46.3945341,0 7.6134129,46.3943691,0 7.6134935,46.3947235,0 7.6136045,46.3948874,0 7.6136651,46.3945637,0 7.6138969,46.394463,0 7.6142193,46.3946836,0 7.6141604,46.3948245,0 7.6141127,46.3950487,0 7.6145638,46.394795,0 7.6151903,46.3940846,0 7.6153196,46.3934043,0 7.615535,46.3933165,0 7.6156972,46.3932504,0 7.6160405,46.3931675,0 7.6163495,46.3934161,0 7.6165875,46.3938373,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4393848,46.4651486,0 7.4391324,46.4649312,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4444111,46.4575848,0 7.4448112,46.457744,0 + + + + Schulstrasse + Schulstrasse, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4455274,46.4564945,0 7.4451624,46.4562853,0 + + + + Kronenplatz + Kronenplatz, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4425957,46.4564794,0 7.4428776,46.4565207,0 7.4429918,46.455969,0 7.4427674,46.4559269,0 7.4425496,46.4558861,0 7.4424659,46.4563108,0 7.442629,46.4563359,0 7.4425957,46.4564794,0 + + + + Kronenplatz + Kronenplatz, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4433217,46.4560368,0 7.4429918,46.455969,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.445441,46.4596274,0 7.4460723,46.4588277,0 7.4461285,46.4588623,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5597509,46.4884691,0 7.5600553,46.4879829,0 7.5605373,46.4880844,0 7.5607923,46.4876673,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4991265,46.3699083,0 7.4988246,46.3699358,0 7.498686,46.370369,0 7.4982529,46.370369,0 7.4976898,46.3704989,0 7.4968928,46.3705249,0 7.4968495,46.3707934,0 7.4958706,46.3712786,0 7.4948224,46.3714951,0 7.4936871,46.3716586,0 7.4926614,46.3714013,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5802311,46.4989017,0 7.5803456,46.4986969,0 7.5802886,46.4986171,0 7.5802181,46.4985699,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5659698,46.4470345,0 7.568545,46.4382212,0 + + + + Hängebrücke Hohstalden + Hängebrücke Hohstalden, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.61705,46.560728,0 7.6174601,46.5593795,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.579346,46.50235,0 7.579269,46.50252,0 7.579288,46.502698,0 7.57914,46.502895,0 7.579196,46.503146,0 7.5789389,46.5032379,0 7.5787664,46.5034171,0 7.5777661,46.503767,0 + + + + Bonderlenbach Walking Path + Bonderlenbach Walking Path, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5774594,46.4953694,0 7.5773913,46.4953126,0 7.577239,46.495303,0 7.5771044,46.495242,0 7.576939,46.4951141,0 7.577052,46.494997,0 7.5772593,46.4948772,0 7.5773923,46.4947336,0 7.577531,46.494696,0 7.5776088,46.4943938,0 7.57769,46.49426,0 7.5778693,46.4941249,0 7.577957,46.493648,0 + + + + Bonderlenbach Walking Path + Bonderlenbach Walking Path, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5788628,46.4927947,0 7.5789515,46.4926509,0 7.5791509,46.4925641,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.563427,46.498168,0 7.5642551,46.4979457,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5707894,46.5079608,0 7.5707636,46.5078013,0 7.5696221,46.5072814,0 7.5695448,46.5076713,0 7.5694207,46.5076825,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5655643,46.5070497,0 7.564925,46.5070055,0 7.564616,46.5070823,0 7.5642126,46.5070527,0 7.5633286,46.5066747,0 7.5635174,46.5065565,0 7.564041,46.506592,0 7.5636204,46.506397,0 7.5629681,46.5064088,0 7.5604532,46.5069996,0 7.5600241,46.5066688,0 7.5589855,46.5063202,0 7.5580242,46.5058299,0 7.5574663,46.5057413,0 7.5568998,46.5057531,0 7.5559986,46.5055995,0 7.5532009,46.5040121,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5676637,46.4896332,0 7.5676054,46.4894827,0 7.567476,46.489347,0 7.5669614,46.4890433,0 7.566749,46.488896,0 7.566351,46.488737,0 7.566058,46.48822,0 7.566112,46.488037,0 7.5659924,46.4879446,0 7.565645,46.487817,0 7.56517,46.487748,0 7.564918,46.4876,0 7.563815,46.486383,0 7.563781,46.48615,0 7.563258,46.485336,0 7.563173,46.485097,0 7.5635808,46.4847034,0 7.56399,46.484315,0 7.564052,46.484108,0 7.563941,46.483716,0 7.563332,46.48324,0 7.563376,46.482928,0 7.5637511,46.4825866,0 7.563831,46.482399,0 7.56378,46.482257,0 7.563003,46.481689,0 7.563023,46.481459,0 7.5633366,46.4810949,0 7.5634558,46.4809124,0 7.563457,46.48083,0 7.5633171,46.4806886,0 7.5630604,46.4805584,0 7.562948,46.480452,0 7.562808,46.479719,0 7.562709,46.479606,0 7.562005,46.479358,0 7.5618487,46.4792297,0 7.561782,46.47908,0 7.5617721,46.4788605,0 7.5618,46.47874,0 7.5624466,46.4780984,0 7.562288,46.477703,0 7.562083,46.477529,0 7.562101,46.477352,0 7.562461,46.476986,0 7.562711,46.47685,0 7.562794,46.476692,0 7.562781,46.476621,0 7.562696,46.476563,0 7.5622314,46.476513,0 7.5621583,46.4764818,0 7.561977,46.476351,0 7.5618962,46.4759014,0 7.561704,46.47567,0 7.561627,46.475207,0 7.561799,46.474588,0 7.561714,46.474406,0 7.5612418,46.474131,0 7.5611,46.473945,0 7.561488,46.47345,0 7.561538,46.47326,0 7.561166,46.472885,0 7.561107,46.472688,0 7.561294,46.472118,0 7.5612735,46.4718594,0 7.5611621,46.4717378,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5611621,46.4717378,0 7.5610469,46.4717054,0 7.5609132,46.4715494,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5621068,46.4705513,0 7.5622317,46.4705599,0 7.5627956,46.4700239,0 7.563029,46.469433,0 7.5632876,46.4691042,0 7.5635408,46.4688811,0 7.5635817,46.469008,0 7.5640286,46.4684621,0 7.564014,46.467933,0 7.5640877,46.4678364,0 7.5641633,46.4678644,0 7.564247,46.467826,0 7.564276,46.467683,0 7.564102,46.467479,0 7.5643394,46.4671283,0 7.564496,46.466775,0 7.5644585,46.4665703,0 7.5642804,46.4663023,0 7.5641749,46.4659848,0 7.5641356,46.4658925,0 7.5642694,46.4656671,0 7.5642626,46.4652282,0 7.563344,46.464121,0 7.56346,46.463889,0 7.5637092,46.4637241,0 7.563776,46.4636,0 7.563387,46.463496,0 7.563191,46.463134,0 7.5631304,46.4625612,0 7.563308,46.462064,0 7.563156,46.461487,0 7.563216,46.461386,0 7.563167,46.461144,0 7.5627558,46.4606653,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5627558,46.4606653,0 7.562395,46.460344,0 7.562311,46.459841,0 7.562104,46.459635,0 7.562128,46.459302,0 7.562277,46.459023,0 7.562066,46.458465,0 7.562088,46.458007,0 7.562559,46.457277,0 7.562258,46.456812,0 7.5625,46.456613,0 7.563527,46.456393,0 7.5638831,46.4564126,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5435227,46.4827013,0 7.5436247,46.4830653,0 7.5435592,46.4832093,0 7.5435643,46.4834307,0 7.5434451,46.4835786,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5436127,46.4825783,0 7.5435227,46.4827013,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5405449,46.4792038,0 7.5407348,46.4794281,0 7.5407722,46.4795516,0 7.5408429,46.4796713,0 7.5412903,46.480107,0 7.5414256,46.4803418,0 7.5418407,46.4804783,0 7.5427092,46.4811396,0 7.5431686,46.4820548,0 7.5434355,46.482271,0 7.5435897,46.4824673,0 7.5436127,46.4825783,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5392734,46.4802349,0 7.5395718,46.4800879,0 7.5395976,46.4799933,0 7.5400439,46.4798633,0 7.540207,46.4795973,0 7.5401555,46.4790949,0 7.54034,46.479224,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5287322,46.4845909,0 7.5294532,46.4849041,0 7.5297364,46.4848864,0 7.5299855,46.4847806,0 7.5301035,46.4847938,0 7.5299338,46.4850755,0 7.5309724,46.4849159,0 7.5322129,46.484865,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5564947,46.4921923,0 7.5561256,46.49234,0 7.5558595,46.4922159,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5289364,46.4906938,0 7.5297775,46.4904456,0 7.5303783,46.4905165,0 7.5325241,46.4899728,0 7.5333567,46.4895533,0 7.5343609,46.4893051,0 7.5350647,46.4892401,0 7.5353651,46.4892814,0 7.5353565,46.4891751,0 7.5358801,46.488986,0 7.5377512,46.4885191,0 7.5381632,46.4883359,0 7.539073,46.4883359,0 7.5392876,46.4882355,0 7.5399056,46.4881586,0 7.5406694,46.4881527,0 7.5425577,46.4885605,0 7.5426865,46.4886019,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5605804,46.4538416,0 7.5601817,46.4540178,0 7.5599834,46.4542594,0 7.5600283,46.4548461,0 7.560247,46.455188,0 7.560294,46.455557,0 7.5600484,46.4561044,0 7.5601535,46.4562692,0 7.560098,46.4567024,0 7.5602085,46.4572266,0 7.5611106,46.4583043,0 7.561229,46.4584659,0 7.5612212,46.4586588,0 7.5614828,46.4589198,0 7.5614623,46.4593025,0 7.5619777,46.4604155,0 7.5619267,46.4606423,0 7.5620549,46.4609595,0 7.5622266,46.4611132,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5607503,46.4539705,0 7.5605804,46.4538416,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5592176,46.4928554,0 7.5588805,46.4931539,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.58757,46.5206516,0 7.587624,46.520509,0 7.587569,46.520492,0 7.5873231,46.5205316,0 7.5872162,46.5205068,0 7.5870656,46.5205131,0 7.5870192,46.5204851,0 7.586853,46.520522,0 7.5867788,46.5204989,0 7.5867531,46.5204556,0 7.586698,46.520419,0 7.58654,46.520501,0 7.586356,46.520353,0 7.586116,46.520307,0 7.585928,46.520346,0 7.586103,46.520418,0 7.586086,46.520493,0 7.585796,46.520522,0 7.585176,46.5203633,0 7.5847859,46.5202177,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6265519,46.5699584,0 7.6262293,46.5697064,0 7.6258508,46.5695701,0 7.6252722,46.5695891,0 7.6245642,46.5694303,0 7.6239117,46.5688845,0 7.623715,46.5687,0 7.6236341,46.568349,0 7.62342,46.567928,0 7.6233636,46.567667,0 7.6230644,46.5674407,0 7.623046,46.567261,0 7.622904,46.567049,0 7.6228902,46.5669243,0 7.6225899,46.5663963,0 7.6221994,46.5658716,0 7.621795,46.565414,0 7.6214698,46.5652029,0 7.6213299,46.5649714,0 7.62114,46.564566,0 7.620754,46.564259,0 7.62047,46.563916,0 7.620153,46.563799,0 7.619982,46.563521,0 7.619814,46.563445,0 7.619689,46.563286,0 7.619159,46.562907,0 7.619115,46.562645,0 7.618927,46.562489,0 7.618964,46.562351,0 7.618862,46.56205,0 7.6183889,46.5610409,0 7.6180638,46.5608003,0 7.617347,46.560459,0 7.6172232,46.5604252,0 7.617017,46.560369,0 7.616846,46.5603423,0 7.6164317,46.5601639,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.618372,46.559119,0 7.618307,46.559387,0 7.618404,46.55956,0 7.618755,46.559665,0 7.618969,46.559649,0 7.619314,46.559828,0 7.619385,46.559913,0 7.619791,46.560116,0 7.619984,46.560295,0 7.6200836,46.5604261,0 7.620185,46.560498,0 7.6202482,46.5605223,0 7.6202935,46.5605318,0 7.6203308,46.5605679,0 7.6203162,46.5606165,0 7.620289,46.560703,0 7.620332,46.561026,0 7.620423,46.561139,0 7.620723,46.56129,0 7.620805,46.561706,0 7.6208667,46.5617554,0 7.6211,46.5618215,0 7.6212232,46.5618909,0 7.6212343,46.5621671,0 7.621288,46.5622445,0 7.6213723,46.5623164,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4499634,46.4388549,0 7.449004,46.4378119,0 7.4487208,46.4371258,0 7.4489182,46.4368774,0 7.4492358,46.4367177,0 7.4496821,46.4368892,0 7.4495619,46.4359014,0 7.4491671,46.4354518,0 7.4478625,46.4349549,0 7.4459484,46.4347183,0 7.4453047,46.434393,0 7.4449099,46.4337068,0 7.4447811,46.4330857,0 7.4444636,46.4330029,0 7.444043,46.4326302,0 7.4439314,46.4322634,0 7.4433821,46.4320268,0 7.4429959,46.4309502,0 7.4428843,46.4308082,0 7.4424895,46.4306544,0 7.4423521,46.4301752,0 7.4420946,46.430193,0 7.4416226,46.4297729,0 7.4408072,46.4295304,0 7.4405239,46.4290098,0 7.440481,46.4285247,0 7.4401892,46.4282999,0 7.4398373,46.4281756,0 7.439597,46.4278621,0 7.4393824,46.4273119,0 7.4392794,46.4266256,0 7.4386958,46.4261287,0 7.4388331,46.4257737,0 7.4388331,46.4254187,0 7.4386614,46.4251229,0 7.4386786,46.4236556,0 7.4386013,46.4233006,0 7.4382065,46.4226498,0 7.4386271,46.4224013,0 7.4388245,46.4221351,0 7.4388588,46.4218866,0 7.4398802,46.4208511,0 7.4397858,46.4204666,0 7.4394511,46.4201944,0 7.4392451,46.4198808,0 7.4397772,46.4188394,0 7.4395626,46.4185613,0 7.4395712,46.4181412,0 7.439185,46.4174962,0 7.4391678,46.4168808,0 7.4397257,46.4163187,0 7.4401034,46.4161767,0 7.4406613,46.4157625,0 7.4424637,46.4134132,0 7.4419144,46.413218,0 7.4419793,46.4126531,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4411642,46.3998745,0 7.4407992,46.3997408,0 7.4405978,46.3996171,0 7.440568,46.3996036,0 7.439607,46.3991398,0 7.4392012,46.3987612,0 7.4388588,46.3986409,0 7.4356488,46.3977589,0 7.4353398,46.3974985,0 7.4336403,46.3965928,0 7.4334086,46.3963205,0 7.432679,46.3958055,0 7.429941,46.3951426,0 7.4290913,46.3947104,0 7.4276236,46.3936508,0 7.4269198,46.3933371,0 7.4264391,46.3932246,0 7.4253662,46.3927096,0 7.4246882,46.392082,0 7.4240187,46.3917564,0 7.4232806,46.3916558,0 7.4219673,46.3907737,0 7.4212979,46.3905547,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4212979,46.3905547,0 7.4212979,46.3903416,0 7.4214094,46.3901462,0 7.4214094,46.3899982,0 7.4215296,46.3898028,0 7.4214867,46.3895838,0 7.421358,46.3895009,0 7.4211262,46.3895542,0 7.421049,46.3893411,0 7.4209288,46.3892049,0 7.4200018,46.3892641,0 7.4197358,46.3894654,0 7.4195813,46.3894772,0 7.4193152,46.3894654,0 7.4192208,46.3893055,0 7.4184483,46.3887786,0 7.4182337,46.3885951,0 7.4179419,46.3884412,0 7.417693,46.3884353,0 7.4176415,46.3887727,0 7.4177187,46.389051,0 7.4174355,46.3889622,0 7.4171952,46.3887727,0 7.4168175,46.3886129,0 7.4165171,46.3884708,0 7.4158905,46.388305,0 7.4157446,46.3881096,0 7.415633,46.3878787,0 7.4155644,46.387636,0 7.4154271,46.3874584,0 7.4151867,46.3876419,0 7.4148177,46.387488,0 7.4143628,46.3873696,0 7.4140967,46.3872038,0 7.4139851,46.3869492,0 7.4138306,46.3867479,0 7.4134358,46.3866532,0 7.413041,46.386671,0 7.4126719,46.386742,0 7.4119252,46.3866059,0 7.4115818,46.3866118,0 7.4112042,46.3866769,0 7.4108609,46.3868723,0 7.4105519,46.3869611,0 7.4103168,46.387076,0 7.4097279,46.3873637,0 7.4093932,46.3874406,0 7.4086121,46.3875117,0 7.4077366,46.3879202,0 7.4061402,46.3884116,0 7.4056166,46.3883524,0 7.4053334,46.3883524,0 7.4050673,46.3883879,0 7.4047583,46.3885537,0 7.404003,46.3885063,0 7.40287,46.388897,0 7.4025954,46.3889681,0 7.4022435,46.3890924,0 7.4017027,46.3891931,0 7.4012993,46.3891516,0 7.4006041,46.3888319,0 7.399411,46.3885833,0 7.3993252,46.3883761,0 7.3993338,46.3878965,0 7.3996256,46.3874466,0 7.399454,46.3872334,0 7.3994025,46.3869848,0 7.399557,46.3864638,0 7.3994883,46.3861796,0 7.3992308,46.3858007,0 7.3990334,46.3855461,0 7.3991879,46.3843086,0 7.3984326,46.383687,0 7.3977631,46.3834205,0 7.3966215,46.3832903,0 7.395892,46.3830297,0 7.3950852,46.3828758,0 7.394081,46.3824613,0 7.3934115,46.3821535,0 7.3931282,46.3819462,0 7.3927077,46.3816975,0 7.3925703,46.381591,0 7.3922528,46.381135,0 7.3916005,46.3808508,0 7.3911799,46.3807679,0 7.3904932,46.3805548,0 7.389592,46.3801521,0 7.3894886,46.3800737,0 7.3893345,46.3799567,0 7.3893345,46.3797791,0 7.3891371,46.379708,0 7.3889874,46.3795666,0 7.3889998,46.3793528,0 7.388974,46.3792521,0 7.3888281,46.3791929,0 7.3884676,46.3791929,0 7.3881758,46.3792284,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.3842169,46.3434602,0 7.3841439,46.3438004,0 7.3847101,46.3439064,0 7.3844032,46.3440306,0 7.3846307,46.3442059,0 7.384472,46.3446077,0 7.384091,46.3450132,0 7.3840434,46.3454953,0 7.3842868,46.3461382,0 7.3847683,46.34635,0 7.3851228,46.346803,0 7.3853715,46.3470586,0 7.3858901,46.3476723,0 7.3863028,46.3482859,0 7.387033,46.3486256,0 7.3874669,46.3491406,0 7.3872658,46.3495497,0 7.3875304,46.3498966,0 7.3881654,46.3499259,0 7.3878744,46.3501523,0 7.3882289,46.350145,0 7.3881178,46.3506308,0 7.3887263,46.3506271,0 7.3882359,46.3513098,0 7.3884405,46.3514744,0 7.3891496,46.3518433,0 7.3901285,46.3522524,0 7.3905994,46.3524715,0 7.3915043,46.3526687,0 7.3927689,46.3530376,0 7.3934092,46.3533919,0 7.3941976,46.3536694,0 7.3955522,46.3541442,0 7.3963459,46.3546299,0 7.3968221,46.3548052,0 7.3973618,46.3551668,0 7.3978287,46.3553046,0 7.3984467,46.3557607,0 7.3985926,46.3559384,0 7.398687,46.3560984,0 7.3988501,46.3563531,0 7.3991162,46.3565071,0 7.3995453,46.3570462,0 7.3996397,46.3574372,0 7.4000088,46.3576623,0 7.4003092,46.3577274,0 7.4005667,46.3579407,0 7.4003435,46.3582605,0 7.4003006,46.3586515,0 7.4005152,46.3586633,0 7.4005924,46.3588292,0 7.400807,46.3590069,0 7.4008585,46.3594452,0 7.4006525,46.3596526,0 7.4006354,46.3599665,0 7.4007384,46.3602034,0 7.4012877,46.3606773,0 7.4013735,46.3608965,0 7.4014851,46.361702,0 7.4016138,46.361939,0 7.4014851,46.3622647,0 7.400807,46.3625668,0 7.400807,46.3627327,0 7.4015881,46.3626557,0 7.4019057,46.362703,0 7.4023005,46.3630347,0 7.4025408,46.3632657,0 7.4027725,46.3633546,0 7.402867,46.3635797,0 7.4031588,46.3636152,0 7.4041544,46.3637159,0 7.4044462,46.3636803,0 7.4047638,46.3637218,0 7.4051844,46.3637218,0 7.405708,46.3635263,0 7.4062144,46.3634493,0 7.4067637,46.3632894,0 7.4070984,46.3636211,0 7.4073645,46.363787,0 7.408137,46.3639587,0 7.4091326,46.3640535,0 7.4095961,46.3640594,0 7.4099137,46.3642608,0 7.4103686,46.3645806,0 7.4104801,46.3648472,0 7.4109522,46.3652025,0 7.411141,46.365475,0 7.4114586,46.3656882,0 7.4116989,46.3658185,0 7.4121796,46.3660673,0 7.4128662,46.3660791,0 7.4131237,46.366239,0 7.4131409,46.3665055,0 7.4137589,46.3666773,0 7.413982,46.3668313,0 7.4143511,46.3669794,0 7.4148918,46.3672873,0 7.4155098,46.367542,0 7.4156128,46.3677315,0 7.4158617,46.36785,0 7.4164025,46.367927,0 7.4170204,46.3681106,0 7.4173981,46.3682231,0 7.4177672,46.3684304,0 7.4183165,46.368537,0 7.4186684,46.3686791,0 7.4189259,46.3685962,0 7.4191319,46.3687028,0 7.4194838,46.3687561,0 7.4198014,46.3686673,0 7.4200588,46.3687028,0 7.4202648,46.3689279,0 7.4202219,46.3692003,0 7.4205824,46.3693661,0 7.4211661,46.3695675,0 7.4221531,46.3697866,0 7.4224707,46.3701419,0 7.4230801,46.3700294,0 7.4233719,46.3700294,0 7.4235693,46.370444,0 7.4238783,46.370592,0 7.4241444,46.3708052,0 7.4243933,46.3709711,0 7.4246508,46.3710658,0 7.4257408,46.3708645,0 7.4260842,46.3708585,0 7.4263395,46.3709363,0 7.426376,46.3709474,0 7.4265734,46.3713382,0 7.4268652,46.3716284,0 7.4272343,46.3716521,0 7.4276377,46.3717409,0 7.4278179,46.3719482,0 7.4277664,46.3721969,0 7.4278351,46.3724338,0 7.4280926,46.3725582,0 7.4285733,46.3726648,0 7.4291397,46.3730083,0 7.4294316,46.3732984,0 7.4298865,46.3735649,0 7.4302813,46.3736597,0 7.4305216,46.3738433,0 7.4307791,46.3739735,0 7.4315087,46.3746072,0 7.431646,46.3748737,0 7.4324099,46.3751697,0 7.4329506,46.3755014,0 7.4332682,46.3756316,0 7.4339892,46.3755724,0 7.4346415,46.3757441,0 7.434899,46.3759277,0 7.4352938,46.3760165,0 7.43562,46.3761172,0 7.4360062,46.376135,0 7.4369589,46.3766798,0 7.4371821,46.3768929,0 7.4377743,46.3772186,0 7.4381777,46.37877,0 7.4383837,46.3789951,0 7.4382378,46.3794865,0 7.4385039,46.3796878,0 7.4392334,46.3799365,0 7.4395081,46.3801971,0 7.4395596,46.3809135,0 7.4407097,46.3815412,0 7.4406668,46.3818254,0 7.4408127,46.3820504,0 7.440787,46.3822991,0 7.44089,46.3825359,0 7.4416453,46.3827194,0 7.4417826,46.3829622,0 7.4422289,46.3833056,0 7.4428984,46.3833056,0 7.4436194,46.3831102,0 7.4444262,46.3831931,0 7.4447867,46.3831576,0 7.4451128,46.3830806,0 7.4454218,46.3831872,0 7.4457995,46.3831931,0 7.4468123,46.3828023,0 7.4474989,46.382151,0 7.448855,46.3817129,0 7.449207,46.3817425,0 7.4499108,46.3816004,0 7.4501425,46.3814227,0 7.4511811,46.3813695,0 7.4526402,46.381026,0 7.4528805,46.3811445,0 7.4531037,46.3812214,0 7.4537903,46.3812273,0 7.4545456,46.381026,0 7.4549834,46.3810142,0 7.4554039,46.3810912,0 7.4559189,46.3810675,0 7.4566742,46.3811563,0 7.4570347,46.3813043,0 7.4575669,46.3813635,0 7.4580389,46.381701,0 7.4583908,46.3817129,0 7.4590689,46.3818964,0 7.4594294,46.3818905,0 7.4598757,46.3819083,0 7.4603649,46.3819734,0 7.4605709,46.3820148,0 7.4609143,46.382151,0 7.4611073,46.3822106,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4681028,46.3828006,0 7.4685635,46.3827568,0 7.4690493,46.382662,0 7.469454,46.382552,0 7.4695566,46.3824441,0 7.4698788,46.3824318,0 7.4702351,46.3823567,0 7.4705841,46.3822218,0 7.4707965,46.3819506,0 7.4709561,46.3816876,0 7.4712107,46.3814354,0 7.4719174,46.3811665,0 7.4720289,46.3809119,0 7.4715655,46.3805211,0 7.4715578,46.3803844,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4773344,46.3802503,0 7.4784834,46.3804797,0 7.479522,46.3806514,0 7.481436,46.3807817,0 7.4856331,46.3808231,0 7.4888174,46.3808527,0 7.4920618,46.3819599,0 7.4971688,46.3817823,0 7.5060608,46.3832329,0 7.5186865,46.3873596,0 7.5244114,46.3897988,0 7.5249779,46.3906927,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5249779,46.3906927,0 7.5245058,46.3908348,0 7.5242569,46.3912137,0 7.5239479,46.3913499,0 7.5235617,46.3916636,0 7.5234329,46.3920425,0 7.5237677,46.3923503,0 7.5237248,46.3924806,0 7.5233729,46.3925398,0 7.5233128,46.3926522,0 7.5233214,46.3927825,0 7.522815,46.3936231,0 7.5228407,46.3938717,0 7.5227377,46.3940375,0 7.5228922,46.3945347,0 7.5232012,46.3946354,0 7.5235617,46.3946354,0 7.5238535,46.3947893,0 7.5238535,46.3952806,0 7.5239479,46.3954404,0 7.5242054,46.3954937,0 7.5242827,46.3960205,0 7.5242655,46.3965414,0 7.5241797,46.3968078,0 7.5242741,46.3970446,0 7.5246861,46.3970209,0 7.5250294,46.3969144,0 7.5254586,46.3969025,0 7.5259478,46.3968611,0 7.5260508,46.3976069,0 7.5264628,46.3978259,0 7.5265314,46.3979798,0 7.5264284,46.3982048,0 7.5266087,46.3985836,0 7.5269091,46.3987138,0 7.5269863,46.3989092,0 7.5269606,46.3991459,0 7.5271923,46.3992761,0 7.527158,46.3995366,0 7.5278961,46.3999036,0 7.5280936,46.4003061,0 7.5284329,46.4005085,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5284329,46.4005085,0 7.5284283,46.4009631,0 7.5287888,46.4013656,0 7.529072,46.401555,0 7.5293038,46.401774,0 7.5294411,46.4019811,0 7.5297501,46.4022001,0 7.5299475,46.4027328,0 7.5313036,46.4036384,0 7.5324194,46.4058933,0 7.5325138,46.4064674,0 7.5330717,46.4068048,0 7.5332262,46.4073492,0 7.5332691,46.4084382,0 7.5336468,46.4092075,0 7.533561,46.4094147,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.533561,46.4094147,0 7.5338185,46.4089767,0 7.5343077,46.408521,0 7.5394146,46.405408,0 7.5409853,46.4053429,0 7.5429079,46.4057513,0 7.5435517,46.4062484,0 7.5440838,46.4066509,0 7.5445301,46.4068166,0 7.5453541,46.4068225,0 7.5462296,46.4065858,0 7.5478604,46.4051417,0 7.5478432,46.4048043,0 7.548032,46.4044966,0 7.5486243,46.404177,0 7.5488045,46.4039166,0 7.5510447,46.4031175,0 7.5512764,46.402863,0 7.5519116,46.4027447,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5519116,46.4027447,0 7.5535424,46.4026973,0 7.5542977,46.4025789,0 7.5558941,46.4026204,0 7.5565464,46.4025197,0 7.5572932,46.4021232,0 7.5587351,46.401774,0 7.5594904,46.4015076,0 7.5599539,46.4011288,0 7.560941,46.4004718,0 7.5616619,46.399945,0 7.5617821,46.3993827,0 7.5619967,46.3991992,0 7.5620653,46.3988618,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5620653,46.3988618,0 7.5626404,46.3984415,0 7.5632241,46.3979147,0 7.563576,46.3978911,0 7.5648291,46.3976128,0 7.5652325,46.3976661,0 7.5661595,46.3980686,0 7.5670607,46.3982225,0 7.5689404,46.3990808,0 7.5700218,46.3994182,0 7.5704167,46.3994774,0 7.5709231,46.3998325,0 7.5716698,46.4000397,0 7.5719616,46.4003001,0 7.5723822,46.4003238,0 7.5727598,46.4002528,0 7.5731547,46.4002824,0 7.5734637,46.4000693,0 7.5739014,46.4000279,0 7.5741675,46.4001048,0 7.574279,46.4002114,0 7.5746567,46.4000811,0 + + + + Lämmernweg nord + Lämmernweg nord, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5746567,46.4000811,0 7.5745487,46.4005859,0 7.5747632,46.4010476,0 7.574892,46.4016217,0 7.575304,46.4014797,0 7.5758619,46.4012488,0 7.5763339,46.4004024,0 7.5762395,46.4000887,0 7.5764198,46.4000828,0 7.5762653,46.3998105,0 7.5760335,46.3995738,0 7.5760335,46.3991476,0 7.576703,46.3991535,0 7.5767803,46.3989819,0 7.577218,46.3991239,0 7.5771751,46.3988398,0 7.5767202,46.3983899,0 7.5771236,46.3984255,0 7.5772008,46.3983544,0 7.576909,46.3981887,0 7.5773607,46.3980323,0 7.5788917,46.397502,0 7.578866,46.3977743,0 7.5787458,46.3982064,0 7.5789775,46.3984136,0 7.5797243,46.3986326,0 7.5805225,46.39868,0 7.5812263,46.3988812,0 7.5831575,46.3990825,0 7.5835695,46.3991949,0 7.5845737,46.3996507,0 7.5849428,46.3997099,0 7.5857152,46.3996389,0 7.5857839,46.3994317,0 7.5853118,46.39897,0 7.5853204,46.3988635,0 7.5856723,46.3986445,0 7.5858268,46.3984669,0 7.5856122,46.3981946,0 7.5855693,46.3979282,0 7.5863418,46.3973777,0 7.5863075,46.3968687,0 7.5869941,46.396993,0 7.5880039,46.3968541,0 7.5881256,46.3965134,0 7.587925,46.3962126,0 7.5885906,46.3960459,0 7.5897493,46.3961228,0 7.5905303,46.3962767,0 7.5912256,46.3965431,0 7.5920152,46.3967325,0 7.5922813,46.396845,0 7.5926933,46.3969515,0 7.5933113,46.3969456,0 7.5947618,46.3974014,0 7.594985,46.3973718,0 7.595354,46.3974014,0 7.5972509,46.397875,0 7.597577,46.3980052,0 7.5983066,46.3981117,0 7.5987186,46.3980821,0 7.5994739,46.3979282,0 7.5999116,46.3979342,0 7.6005983,46.3979993,0 7.6023149,46.3979697,0 7.6037569,46.3976855,0 7.6041946,46.3976915,0 7.6045207,46.3978217,0 7.6046409,46.3979697,0 7.605422,46.3979697,0 7.6055936,46.3981768,0 7.6057052,46.3984195,0 7.6060056,46.3986267,0 7.6068811,46.3998224,0 7.6069841,46.4001006,0 7.6073961,46.4005563,0 7.6074905,46.4008108,0 7.6073875,46.4010831,0 7.6077308,46.4019354,0 7.6086578,46.40248,0 7.6087779,46.4026694,0 7.6097478,46.4032139,0 7.6101427,46.4035453,0 7.6102628,46.4037821,0 7.6120396,46.4045298,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6223005,46.4319807,0 7.6218319,46.4319245,0 7.6216002,46.4320073,0 7.6212483,46.4319067,0 7.6209393,46.4319067,0 7.6207762,46.4316878,0 7.6202698,46.4313152,0 7.6197205,46.430623,0 7.6196261,46.4300788,0 7.6191626,46.4296173,0 7.6190338,46.4291086,0 7.6188193,46.4290435,0 7.6188107,46.4287595,0 7.6186304,46.4285288,0 7.6188193,46.428097,0 7.6185618,46.4276,0 7.6169911,46.4264404,0 7.6170512,46.4261683,0 7.6174202,46.4257778,0 7.6176691,46.4257009,0 7.617446,46.4256003,0 7.6173258,46.4253223,0 7.6176262,46.4246182,0 7.6176262,46.4243342,0 7.6162014,46.4234113,0 7.6136437,46.4206423,0 7.6134892,46.4203819,0 7.6120301,46.4194826,0 7.6116696,46.4191039,0 7.6108971,46.4190388,0 7.6101933,46.418879,0 7.6100216,46.4187252,0 7.607687,46.4193583,0 7.6072665,46.4193997,0 7.6064167,46.4196778,0 7.6054211,46.4197784,0 7.6040049,46.4202695,0 7.6035757,46.4206245,0 7.6026831,46.4207547,0 7.6014643,46.4205239,0 7.6012669,46.420589,0 7.6007875,46.420399,0 7.6007789,46.4207135,0 7.6009446,46.420851,0 7.6012669,46.4208434,0 7.6013207,46.4211927,0 7.6010655,46.421439,0 7.6011759,46.4216698,0 7.6009562,46.4215633,0 7.6010091,46.4218257,0 7.6006785,46.4218724,0 7.6008396,46.4220273,0 7.6003657,46.4220445,0 7.6001339,46.4223759,0 7.5995094,46.4226935,0 7.5992772,46.4224137,0 7.5988342,46.4231467,0 7.5985281,46.4229856,0 7.5984798,46.4231628,0 7.5983912,46.423195,0 7.5983769,46.4233697,0 7.5971899,46.4232574,0 7.5961118,46.4229597,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5723588,46.4404035,0 7.572171,46.4403665,0 7.5717311,46.4401927,0 7.5716185,46.4400929,0 7.5714683,46.440019,0 7.5712591,46.4400116,0 7.5709855,46.4400375,0 7.5707798,46.4401998,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5603342,46.4434764,0 7.5606322,46.4434199,0 7.5607824,46.4433164,0 7.5610291,46.4433016,0 7.5612115,46.443309,0 7.5614261,46.4431907,0 7.5616943,46.4431759,0 7.5619779,46.4431581,0 7.5621449,46.443102,0 7.5622951,46.443028,0 7.5623917,46.4429171,0 7.5624561,46.4428062,0 7.562617,46.4427323,0 7.5628316,46.4427175,0 7.5631105,46.4426658,0 7.5633684,46.442614,0 7.5636792,46.4424809,0 7.5637328,46.4423479,0 7.5637757,46.4422074,0 7.563883,46.4421335,0 7.5640586,46.4420609,0 7.5642263,46.4419265,0 7.5643336,46.4417934,0 7.564516,46.4415864,0 7.5645482,46.4413572,0 7.5644447,46.4411958,0 7.5644624,46.4410245,0 7.5645027,46.440655,0 7.5644731,46.4404256,0 7.5644087,46.4401964,0 7.5644194,46.4401003,0 7.5645375,46.4399377,0 7.5645911,46.4398046,0 7.5645482,46.4396345,0 7.5644636,46.439478,0 7.5644553,46.4393461,0 7.5644516,46.4392871,0 7.5645298,46.4391761,0 7.5645267,46.4390209,0 7.5644927,46.4389173,0 7.5643867,46.438837,0 7.5642585,46.4387399,0 7.5641727,46.4385773,0 7.5640654,46.4384812,0 7.5640869,46.4383481,0 7.5640869,46.4381928,0 7.5640654,46.4380523,0 7.5638186,46.4379192,0 7.5635397,46.4377714,0 7.5633895,46.437727,0 7.5631964,46.4377344,0 7.5629818,46.437764,0 7.5627028,46.4377418,0 7.5625097,46.4377048,0 7.5622308,46.43769,0 7.5617587,46.4376679,0 7.5615015,46.4377341,0 7.5611472,46.437727,0 7.5608253,46.4376457,0 7.56039,46.4375687,0 7.5600421,46.4374534,0 7.5597417,46.4372982,0 7.5593769,46.4371133,0 7.5590597,46.4370482,0 7.5587593,46.4370482,0 7.5585293,46.4370246,0 7.5583577,46.4370616,0 7.558186,46.4371651,0 7.5580517,46.4372548,0 7.5579285,46.4372908,0 7.5577354,46.4372982,0 7.5575368,46.4372948,0 7.5573921,46.4372612,0 7.5573062,46.4371799,0 7.5571113,46.4371429,0 7.5569842,46.437187,0 7.5568771,46.4372242,0 7.5567376,46.4371799,0 7.5566089,46.4370985,0 7.5563643,46.4370678,0 7.5562333,46.4370172,0 7.5560724,46.4368398,0 7.5557827,46.436581,0 7.5555361,46.4364881,0 7.5553107,46.4364848,0 7.5551605,46.4366179,0 7.5549827,46.4367111,0 7.5553321,46.4370542,0 7.5555682,46.4373647,0 7.5557613,46.437483,0 7.5558256,46.4377566,0 7.5558839,46.4380538,0 7.5557827,46.4382076,0 7.5556969,46.438385,0 7.5556647,46.4385181,0 7.5556325,46.4386586,0 7.5555096,46.4386959,0 7.555418,46.4387917,0 7.5554659,46.4389223,0 7.5553965,46.4390283,0 7.5552034,46.43908,0 7.5550514,46.4391953,0 7.5549995,46.4393684,0 7.5550639,46.4395902,0 7.5551497,46.4397972,0 7.5553947,46.4399761,0 7.5555789,46.4400781,0 7.5556218,46.4403,0 7.5557981,46.4405675,0 7.5560402,46.4406696,0 7.556169,46.4407879,0 7.556253,46.4409697,0 7.5562763,46.4412685,0 7.5565981,46.4416233,0 7.5568881,46.4420225,0 7.5571238,46.442237,0 7.5574242,46.4423848,0 7.5576174,46.4424736,0 7.5577465,46.4425962,0 7.5578623,46.4428613,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5578623,46.4428613,0 7.5574675,46.4428376,0 7.5562401,46.4421989,0 7.5553904,46.4415956,0 7.5545922,46.4411993,0 7.5531674,46.4401583,0 7.5520945,46.4397857,0 7.5515452,46.4394486,0 7.5512276,46.4389458,0 7.5500603,46.4382479,0 7.5478888,46.4365917,0 7.5459061,46.435521,0 7.5430308,46.4344326,0 7.5427647,46.434196,0 7.5416146,46.4337878,0 7.5403786,46.4336045,0 7.5392456,46.4328177,0 7.5388594,46.4323326,0 7.5385161,46.4322143,0 7.538353,46.4320369,0 7.5376578,46.4320132,0 7.5371514,46.4324391,0 7.5367651,46.4324864,0 7.5366364,46.4326994,0 7.5354691,46.4325811,0 7.5352631,46.4330603,0 7.5350056,46.4329065,0 7.5343533,46.4329656,0 7.5341473,46.4326994,0 7.5336151,46.4325042,0 7.5332289,46.4325752,0 7.5329113,46.4324805,0 7.5324993,46.4327408,0 7.5314608,46.4328532,0 7.5309286,46.4325988,0 7.5305853,46.4326048,0 7.5302935,46.4323208,0 7.5299759,46.4321848,0 7.5298472,46.4319836,0 7.5296326,46.4310016,0 7.529727,46.4307473,0 7.5300188,46.4304278,0 7.5297613,46.4302385,0 7.5296583,46.4300374,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5099774,46.4268191,0 7.5097027,46.4267599,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.510046,46.4269729,0 7.5099774,46.4268191,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5097027,46.4267599,0 7.5091706,46.4267008,0 7.5088101,46.4268782,0 7.5086899,46.4270261,0 7.5082865,46.4270261,0 7.507514,46.4268901,0 7.507205,46.4267422,0 7.5070591,46.4265351,0 7.5070935,46.4263635,0 7.5055828,46.4258015,0 7.5046387,46.4252572,0 7.504201,46.4251566,0 7.5038748,46.4249614,0 7.5029049,46.4247543,0 7.50245,46.4245827,0 7.5018921,46.424636,0 7.5014286,46.4245354,0 + + + + Krummenbach + Krummenbach, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4421122,46.4525537,0 7.4426894,46.4528647,0 7.4433701,46.4534102,0 7.4441109,46.4543138,0 + + + + Krummenbach + Krummenbach, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4419716,46.4526353,0 7.4421122,46.4525537,0 + + + + Krummenbach + Krummenbach, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4408543,46.4522683,0 7.4415573,46.4524314,0 7.4419716,46.4526353,0 + + + + Krummenbach + Krummenbach, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4409061,46.4521561,0 7.4408543,46.4522683,0 + + + + Chäligang - Klettersteig + Chäligang - Klettersteig, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.560727,46.450533,0 7.5606144,46.4505986,0 7.5603311,46.4507338,0 7.5603426,46.4509315,0 7.5605864,46.4511387,0 7.5605865,46.4512611,0 7.560682,46.4513342,0 7.5607896,46.4513261,0 7.5611184,46.4513877,0 7.561297,46.4513409,0 7.5614312,46.4513311,0 7.5614866,46.4514444,0 7.5615925,46.4516057,0 7.5617415,46.4517005,0 7.5619471,46.4517731,0 7.561897,46.4519024,0 7.561663,46.4519071,0 7.5615552,46.4517685,0 7.561466,46.4516993,0 7.5612982,46.4516854,0 7.5611181,46.4516115,0 7.5608041,46.4515715,0 7.5606409,46.451533,0 7.5604993,46.4515084,0 7.5601961,46.451513,0 7.5603839,46.4516038,0 7.560233,46.4517454,0 7.5600529,46.4516916,0 7.5598755,46.4516727,0 + + + + Lischmattenstrasse + Lischmattenstrasse, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4394643,46.4538143,0 7.4390415,46.45383,0 7.4382168,46.4536333,0 7.437853,46.4534971,0 7.4376096,46.4533399,0 7.4375083,46.4531784,0 + + + + Kronenplatz + Kronenplatz, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4433518,46.4557718,0 7.442802,46.4557537,0 7.4423281,46.4556781,0 7.4422089,46.4564137,0 7.4423398,46.456437,0 7.4423078,46.4566492,0 7.4425442,46.4567004,0 + + + + Kronenplatz + Kronenplatz, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4427674,46.4559269,0 7.442802,46.4557537,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4382168,46.4536333,0 7.4375687,46.4542067,0 7.437657,46.4544786,0 7.4381129,46.4544954,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.60993,46.555202,0 7.6100086,46.5551481,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6100086,46.5551481,0 7.610275,46.555066,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6095758,46.5550283,0 7.609867,46.5551309,0 7.60993,46.555202,0 7.6099053,46.5554036,0 7.6099572,46.5557181,0 7.6101794,46.5559656,0 7.6108008,46.5563903,0 7.611201,46.5569152,0 7.6114692,46.5571666,0 7.6117685,46.5573938,0 7.612146,46.5574221,0 7.612332,46.5574959,0 7.6126626,46.5575627,0 7.6128563,46.5576717,0 7.613043,46.557777,0 7.613162,46.557793,0 7.613359,46.557997,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6093995,46.5548684,0 7.6095758,46.5550283,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5655203,46.4480124,0 7.5666754,46.448165,0 7.5673192,46.4478693,0 7.5689671,46.4480468,0 7.5695336,46.4481946,0 7.5695508,46.4500988,0 7.5691388,46.4506665,0 7.5698941,46.4505482,0 7.571027,46.4506665,0 7.5716794,46.4504891,0 7.571954,46.4505305,0 7.5729153,46.4498386,0 7.5735419,46.4491881,0 7.5738251,46.4491408,0 7.5767777,46.4471419,0 7.5782368,46.4464796,0 7.5799277,46.4461365,0 7.5812409,46.4461957,0 7.5844767,46.445971,0 7.5848286,46.4460833,0 7.5858243,46.4459355,0 7.5871375,46.4459355,0 7.5876954,46.4458113,0 7.5882103,46.4458349,0 7.5883391,46.4457344,0 7.5885708,46.4457699,0 7.5887854,46.4456575,0 7.5897639,46.4458704,0 7.5897553,46.4456989,0 7.5898583,46.4457521,0 7.5901244,46.4456871,0 7.5909655,46.4452672,0 7.5923474,46.4448946,0 7.592356,46.4448,0 7.592768,46.4446048,0 7.5932658,46.4445811,0 7.5939181,46.4442322,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5939181,46.4442322,0 7.5959351,46.4431026,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5959351,46.4431026,0 7.5961202,46.4418992,0 7.5961202,46.4410298,0 7.595837,46.440184,0 7.5952104,46.4388413,0 7.5955194,46.4386284,0 7.5955366,46.4382735,0 7.5956911,46.4379541,0 7.5960086,46.4378476,0 7.5962232,46.4374336,0 7.5963949,46.4374336,0 7.5964635,46.437197,0 7.596867,46.4373153,0 7.598163,46.4381493,0 7.5981802,46.4380251,0 7.5983862,46.4380251,0 7.5989269,46.4382794,0 7.5993475,46.4388118,0 7.5999225,46.4390306,0 7.6001886,46.4393323,0 7.6002916,46.4396103,0 7.6005491,46.4395748,0 7.6009868,46.439764,0 7.6019567,46.439486,0 7.6027034,46.4389951,0 7.6029008,46.4388768,0 7.60333,46.4383681,0 7.6034845,46.438309,0 7.6036864,46.4378485,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5612557,46.4542097,0 7.56213,46.454218,0 7.562429,46.454144,0 7.563113,46.454125,0 7.563817,46.454263,0 7.563935,46.454456,0 7.564016,46.454315,0 7.564211,46.454463,0 7.564278,46.454308,0 7.564431,46.454381,0 7.564714,46.454334,0 7.564919,46.454464,0 7.564952,46.454256,0 7.565156,46.454369,0 7.565617,46.454428,0 7.5655305,46.4542175,0 7.566296,46.4542338,0 7.5666072,46.454436,0 7.566648,46.454824,0 7.56674,46.454724,0 7.5668857,46.4548685,0 7.56691,46.454801,0 7.567052,46.45484,0 7.567039,46.4546492,0 7.566979,46.454446,0 7.566903,46.454271,0 7.56665,46.454115,0 7.566702,46.453914,0 7.566393,46.453903,0 7.566252,46.453641,0 7.5659897,46.4535926,0 7.5657596,46.4534666,0 7.565605,46.453159,0 7.5654002,46.4529654,0 7.5652784,46.453026,0 7.5651459,46.4530153,0 7.5649962,46.453114,0 7.5648026,46.4530815,0 7.5646282,46.4530737,0 7.5646996,46.4529048,0 7.5645424,46.4527662,0 7.5645097,46.4524439,0 7.5645156,46.4522983,0 7.5643691,46.4522325,0 7.5643648,46.4520902,0 7.5642225,46.4520855,0 7.564087,46.452081,0 7.563577,46.451855,0 7.563358,46.451667,0 7.562807,46.451031,0 7.562811,46.450662,0 7.562459,46.450526,0 7.562297,46.450575,0 7.562138,46.450756,0 7.56196,46.450604,0 7.561888,46.450871,0 7.561585,46.450997,0 7.561227,46.450721,0 7.561186,46.450498,0 7.560727,46.450533,0 7.56057,46.450445,0 7.56074,46.450354,0 7.560304,46.450156,0 7.560038,46.450138,0 7.560136,46.449986,0 7.5603797,46.4499063,0 7.5604193,46.4498809,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5603797,46.4499063,0 7.560335,46.449238,0 7.560977,46.449165,0 7.561242,46.449273,0 7.560913,46.448711,0 7.560942,46.448252,0 7.560985,46.448126,0 7.561464,46.447771,0 7.5615495,46.4474679,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.610275,46.555066,0 7.6105103,46.555047,0 7.6107934,46.5551847,0 7.6109108,46.5551734,0 7.6110474,46.5552324,0 7.6114422,46.5551757,0 7.6119279,46.5551549,0 7.6122496,46.5548187,0 7.6123306,46.5545839,0 7.612552,46.554217,0 7.612904,46.554303,0 7.61296,46.554373,0 7.6130079,46.5544692,0 7.6130907,46.5545095,0 7.6132761,46.5545054,0 7.6134222,46.5545429,0 7.6135505,46.5546015,0 7.613591,46.554708,0 7.6135566,46.5548319,0 7.6135434,46.5549507,0 7.613595,46.5551225,0 7.6136905,46.555167,0 7.613754,46.55517,0 7.6138063,46.5551517,0 7.613901,46.555171,0 7.6139027,46.555118,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.617521,46.559201,0 7.6174601,46.5593795,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4246182,46.4549791,0 7.411038,46.4488524,0 7.4096398,46.4473342,0 7.4094562,46.4479668,0 7.4081709,46.4475873,0 7.4071281,46.4487423,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5359591,46.4821973,0 7.5356587,46.4821315,0 7.5352401,46.4817035,0 7.5341426,46.4802405,0 7.5343946,46.47985,0 7.5341784,46.4798098,0 7.5334093,46.4782263,0 7.5320814,46.4778883,0 7.5322482,46.4776474,0 7.5324047,46.4775918,0 7.5324047,46.4774868,0 7.5322359,46.477493,0 7.5319641,46.4772829,0 7.5311872,46.4771753,0 7.5311809,46.4769707,0 7.5303944,46.4766186,0 7.5299839,46.4762294,0 7.5298295,46.47583,0 7.5293827,46.4753729,0 7.5295227,46.4751876,0 7.5292591,46.475342,0 7.5294671,46.4757332,0 7.5293889,46.4760874,0 7.5295206,46.4765218,0 7.5292797,46.4765918,0 7.527116,46.4756238,0 7.5268425,46.4756158,0 7.5267259,46.4754911,0 7.5259256,46.4754067,0 7.5254631,46.4754831,0 7.5253666,46.4753584,0 7.525447,46.4752619,0 7.5251052,46.4753504,0 7.5249725,46.4752498,0 7.5247593,46.47529,0 7.5245301,46.4750689,0 7.5222742,46.4741891,0 7.5200561,46.4732089,0 7.5179775,46.47215,0 7.517934,46.471763,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.469009,46.453963,0 7.468853,46.454502,0 7.468722,46.454633,0 7.468855,46.454838,0 7.468892,46.455254,0 7.468526,46.45547,0 7.468214,46.455827,0 7.467811,46.456011,0 7.467729,46.456012,0 7.467757,46.45589,0 7.4676573,46.4558604,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4563512,46.4596817,0 7.455519,46.460138,0 7.454885,46.460326,0 7.454269,46.460142,0 7.453772,46.460157,0 7.453588,46.460227,0 7.453646,46.46034,0 7.453343,46.460297,0 7.45308,46.460158,0 7.452336,46.460143,0 7.452167,46.460202,0 7.4516199,46.4601237,0 7.451444,46.460176,0 7.451314,46.459955,0 7.451083,46.460086,0 7.450785,46.459827,0 7.450364,46.460159,0 7.450148,46.460235,0 7.449941,46.460206,0 7.449216,46.460572,0 7.449004,46.460411,0 7.44851,46.460273,0 7.448482,46.460149,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.462649,46.457567,0 7.462344,46.457799,0 7.461469,46.458186,0 7.460724,46.458266,0 7.459338,46.45872,0 7.458959,46.458929,0 7.4592,46.459053,0 7.458746,46.459142,0 7.458955,46.45922,0 7.458388,46.459277,0 7.458083,46.459431,0 7.457836,46.45934,0 7.457735,46.459414,0 7.457338,46.459278,0 7.45734,46.459367,0 7.457047,46.459355,0 7.4569312,46.4594356,0 7.4568436,46.4593926,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5805282,46.4980101,0 7.580457,46.497915,0 7.580459,46.4978244,0 7.580511,46.497795,0 7.580503,46.497773,0 7.580458,46.497732,0 7.5804891,46.4976849,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5919258,46.5139835,0 7.59165,46.514158,0 7.591592,46.514182,0 7.591323,46.514218,0 7.5911034,46.5143796,0 7.590773,46.514376,0 7.590312,46.514486,0 7.590308,46.514779,0 7.59027,46.515012,0 7.590204,46.515141,0 7.590222,46.51527,0 7.590202,46.515354,0 7.5903489,46.5153277,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5892426,46.5172029,0 7.589245,46.51707,0 7.5896037,46.5169541,0 7.590129,46.516719,0 7.590166,46.516508,0 7.590272,46.516442,0 7.590262,46.516414,0 7.590288,46.516298,0 7.590159,46.516075,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6058722,46.5395795,0 7.605907,46.539608,0 7.606061,46.539669,0 7.606172,46.539786,0 7.606187,46.539933,0 7.606162,46.540082,0 7.606252,46.540169,0 7.606368,46.540183,0 7.606546,46.540228,0 7.606795,46.540172,0 7.6069728,46.5401954,0 7.6069839,46.540212,0 7.606977,46.54025,0 7.606945,46.540322,0 7.606899,46.540361,0 7.606783,46.540417,0 7.606721,46.540496,0 7.606687,46.54052,0 7.606704,46.540646,0 7.606769,46.540707,0 7.606912,46.540757,0 7.60689,46.540889,0 7.606769,46.541122,0 7.606776,46.541186,0 7.606741,46.541226,0 7.606698,46.541421,0 7.606723,46.541467,0 7.606758,46.541487,0 7.606836,46.541643,0 7.606804,46.541701,0 7.606704,46.541808,0 7.606563,46.541924,0 7.606524,46.54199,0 7.606496,46.54206,0 7.606482,46.542063,0 7.606335,46.542319,0 7.606275,46.542406,0 7.606165,46.542443,0 7.606051,46.542553,0 7.605977,46.542663,0 7.605846,46.542743,0 7.60584,46.542865,0 7.605849,46.542887,0 7.605854,46.543004,0 7.605862,46.543182,0 7.605813,46.543282,0 7.605779,46.543294,0 7.605665,46.543297,0 7.605658,46.543321,0 7.605681,46.54336,0 7.605737,46.543391,0 7.605848,46.543431,0 7.605892,46.543428,0 7.605933,46.54344,0 7.605991,46.543483,0 7.60606,46.543547,0 7.606112,46.543597,0 7.606128,46.54365,0 7.606131,46.543807,0 7.606054,46.543956,0 7.6060019,46.5440194,0 7.605943,46.544046,0 7.605853,46.544099,0 7.605849,46.544168,0 7.605627,46.544263,0 7.605574,46.544402,0 7.605544,46.544518,0 7.605557,46.544576,0 7.605547,46.544633,0 7.605483,46.544684,0 7.605391,46.54472,0 7.605297,46.544742,0 7.605232,46.544778,0 7.605228,46.5448,0 7.605172,46.544869,0 7.6050221,46.5448767,0 7.604923,46.544864,0 7.60484,46.544879,0 7.604813,46.544902,0 7.604666,46.544998,0 7.604385,46.545125,0 7.6043368,46.5451739,0 7.604278,46.545281,0 7.60427,46.54534,0 7.604196,46.545481,0 7.604145,46.545502,0 7.604087,46.545512,0 7.603974,46.54558,0 7.603963,46.545603,0 7.603971,46.545623,0 7.603991,46.545636,0 7.604007,46.545671,0 7.604075,46.545699,0 7.604147,46.545758,0 7.604227,46.545806,0 7.604331,46.545844,0 7.604501,46.545838,0 7.60457,46.545911,0 7.604731,46.545867,0 7.604802,46.545883,0 7.604924,46.545865,0 7.604943,46.545883,0 7.605024,46.545883,0 7.605061,46.545915,0 7.605529,46.545902,0 7.605706,46.545864,0 7.605893,46.545934,0 7.606173,46.545897,0 7.6063485,46.5458893,0 7.6064439,46.5457843,0 7.606512,46.545831,0 7.606506,46.545981,0 7.606369,46.546097,0 7.606301,46.546263,0 7.606217,46.546344,0 7.606064,46.546443,0 7.606008,46.546533,0 7.606166,46.546699,0 7.606052,46.546836,0 7.6061285,46.5469487,0 7.606261,46.546939,0 7.606655,46.546994,0 7.607231,46.547225,0 7.607152,46.547353,0 7.607194,46.54744,0 7.60725,46.547455,0 7.607299,46.547533,0 7.607272,46.54762,0 7.607157,46.547774,0 7.607063,46.547823,0 7.607008,46.54784,0 7.606921,46.547907,0 7.606908,46.547935,0 7.607034,46.547886,0 7.607103,46.547916,0 7.6077006,46.5479132,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5816826,46.510603,0 7.5816199,46.5104057,0 7.5815976,46.510255,0 7.5814942,46.5099865,0 7.5814306,46.5099385,0 7.5813666,46.5097595,0 7.5812168,46.5096608,0 7.581074,46.509605,0 7.580956,46.509462,0 7.58117,46.509261,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5817563,46.5106037,0 7.5816826,46.510603,0 7.581587,46.510645,0 7.5815173,46.5107508,0 7.581501,46.510818,0 7.581546,46.5109334,0 7.5817095,46.5110604,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5820585,46.510608,0 7.5817563,46.5106037,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5751846,46.4916084,0 7.575377,46.491636,0 7.575561,46.491752,0 7.5756106,46.4917412,0 7.575728,46.491716,0 7.575891,46.491602,0 7.576027,46.491461,0 7.576068,46.491431,0 7.5763871,46.4912304,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5785473,46.524736,0 7.5785046,46.5247628,0 7.5783963,46.5246919,0 7.578219,46.52477,0 7.578012,46.524791,0 7.577872,46.524792,0 7.577779,46.524725,0 7.5777363,46.5246185,0 7.577476,46.524428,0 7.577197,46.524302,0 7.577086,46.524206,0 7.5770596,46.5241235,0 7.5771338,46.5239975,0 7.5771004,46.523902,0 7.5770609,46.5237564,0 7.576847,46.5235427,0 7.576721,46.523295,0 7.576719,46.523211,0 7.5764009,46.5230245,0 7.5762273,46.5227649,0 7.576096,46.522687,0 7.5759724,46.5226336,0 7.5757443,46.5226509,0 7.5756484,46.522612,0 7.5758244,46.5224861,0 7.575548,46.522413,0 7.5752814,46.5223836,0 7.5750582,46.522382,0 7.5749471,46.5223416,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6212158,46.4102508,0 7.6212492,46.4100544,0 7.6211982,46.4097513,0 7.6210007,46.4091406,0 7.6207267,46.4087452,0 7.6204904,46.4083771,0 7.620217,46.4075677,0 7.620217,46.4073832,0 7.6198856,46.4070185,0 7.6198283,46.4067857,0 7.619621,46.4066037,0 7.619344,46.4063771,0 7.6189554,46.4061266,0 7.618675,46.4058191,0 7.6178658,46.4053226,0 7.6174956,46.405028,0 7.6149472,46.4029894,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.605321,46.550618,0 7.6061811,46.5507498,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6047518,46.55048,0 7.605321,46.550618,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.605639,46.551512,0 7.605518,46.551205,0 7.605264,46.550932,0 7.605187,46.550759,0 7.6052305,46.5506929,0 7.605321,46.550618,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6172232,46.5604252,0 7.617237,46.560489,0 7.6173791,46.5605246,0 7.6174549,46.560685,0 7.617571,46.560749,0 7.617485,46.560801,0 7.617071,46.560756,0 7.6169366,46.5607994,0 7.6169276,46.5608025,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.613359,46.557997,0 7.613697,46.558202,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.613697,46.558202,0 7.6138249,46.5582483,0 7.6139093,46.5582304,0 7.6140763,46.5582933,0 7.614314,46.558345,0 7.614538,46.558564,0 7.614538,46.558685,0 7.614618,46.558742,0 7.614736,46.559067,0 7.615214,46.559535,0 7.616327,46.560016,0 7.6164317,46.5601639,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6070675,46.5503877,0 7.6072145,46.5505602,0 7.6073825,46.5506985,0 7.6073485,46.5507163,0 7.6068988,46.5507717,0 7.6068687,46.550799,0 7.606966,46.5508537,0 7.6070453,46.5509456,0 7.6069006,46.5509478,0 7.6065934,46.5508793,0 7.6064744,46.5508128,0 7.6061811,46.5507498,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5453714,46.5078755,0 7.545088,46.507775,0 7.5449722,46.5077871,0 7.5448429,46.507819,0 7.5445859,46.5078239,0 7.5442708,46.507799,0 7.544171,46.5077577,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5596756,46.5135221,0 7.5598557,46.5136074,0 7.5600289,46.5136176,0 7.5602821,46.5135897,0 7.5605638,46.5135813,0 7.5607673,46.5135679,0 7.5610239,46.5134916,0 7.5612473,46.5134206,0 7.5614853,46.5133285,0 7.5616609,46.5132468,0 7.5621499,46.5130522,0 7.562457,46.512863,0 7.562552,46.512868,0 7.562705,46.51281,0 7.562819,46.512666,0 7.562913,46.512718,0 7.563163,46.512741,0 7.56333,46.51267,0 7.563476,46.512661,0 7.563577,46.512724,0 7.563753,46.512733,0 7.564089,46.512938,0 7.564319,46.512998,0 7.56442,46.513007,0 7.564595,46.513001,0 7.56478,46.513029,0 7.565151,46.513025,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6260233,46.4823623,0 7.6258492,46.4823721,0 7.6255624,46.482439,0 7.6255071,46.4823834,0 7.6254122,46.4823258,0 7.6253676,46.4823044,0 7.625279,46.4822506,0 7.6251996,46.4822146,0 7.6250474,46.4821868,0 7.6250248,46.4823099,0 7.6247359,46.4822272,0 7.6247046,46.4824268,0 7.6245089,46.4823389,0 7.6243517,46.4822979,0 7.6242366,46.4822368,0 7.6242534,46.4824095,0 7.6242673,46.4825683,0 7.624107,46.4827243,0 7.623839,46.4830581,0 7.6236473,46.4832026,0 7.6233765,46.4833475,0 7.6232286,46.4834129,0 7.6228172,46.483644,0 7.622597,46.4838189,0 7.6224068,46.4839382,0 7.6221757,46.4841363,0 7.6218884,46.4843664,0 7.6217534,46.4844727,0 7.6215819,46.4845375,0 7.6213635,46.484593,0 7.6209341,46.4846251,0 7.6207812,46.4845936,0 7.6207351,46.4845971,0 7.6204754,46.4847285,0 7.6203775,46.48474,0 7.6202873,46.4847746,0 7.6202196,46.4847767,0 7.6200436,46.4847224,0 7.6198617,46.4847643,0 7.6195668,46.4847474,0 7.6193562,46.4847566,0 7.6190013,46.4847732,0 7.6186967,46.484811,0 7.6181212,46.4848624,0 7.6179412,46.4849032,0 7.6176836,46.4849937,0 7.6174843,46.4850212,0 7.6171033,46.4850063,0 7.6167943,46.4849573,0 7.6166793,46.4849163,0 7.6164843,46.4849707,0 7.6162531,46.4850023,0 7.6161673,46.4850224,0 7.6160972,46.4850741,0 7.6159545,46.4851447,0 7.6157593,46.4852007,0 7.6155646,46.4852336,0 7.6153623,46.4851233,0 7.6151993,46.4850703,0 7.6148583,46.4850343,0 7.6146363,46.4850853,0 7.6144973,46.4851353,0 7.6143253,46.4850743,0 7.6142553,46.4850173,0 7.6141723,46.4850003,0 7.6141023,46.4850283,0 7.6140603,46.4849993,0 7.6139823,46.4850153,0 7.61393,46.4850566,0 7.6138763,46.4850313,0 7.6138204,46.485091,0 7.6138023,46.4850633,0 7.6137593,46.4850763,0 7.6137203,46.4851253,0 7.6136753,46.4850863,0 7.6136393,46.4851503,0 7.6135663,46.4851123,0 7.6134953,46.4851663,0 7.6134643,46.4851073,0 7.6133643,46.4850353,0 7.6131953,46.4851953,0 7.6131063,46.4852473,0 7.6130853,46.4852793,0 7.6130183,46.4852923,0 7.6129953,46.4852803,0 7.6129803,46.4852453,0 7.6129063,46.4852833,0 7.6128523,46.4852753,0 7.6127303,46.4853543,0 7.6126483,46.4853683,0 7.6125433,46.4852773,0 7.6125053,46.4852903,0 7.6124663,46.4854113,0 7.6123263,46.4853613,0 7.6122583,46.4854193,0 7.612167,46.4853973,0 7.6120713,46.4855123,0 7.6119925,46.4855088,0 7.6119353,46.4854393,0 7.6118633,46.4854613,0 7.6118213,46.4854213,0 7.6114833,46.4856083,0 7.6113663,46.4856453,0 7.6112993,46.4857083,0 7.6113003,46.4857633,0 7.6113783,46.4858083,0 7.6114313,46.4858753,0 7.6114213,46.4859843,0 7.6113973,46.4860683,0 7.6112723,46.4862103,0 7.6112803,46.4862563,0 7.6112453,46.4863273,0 7.6112083,46.4862903,0 7.6111353,46.4862603,0 7.6109813,46.4862273,0 7.6108473,46.4862523,0 7.6105723,46.4864223,0 7.6105023,46.4864773,0 7.6104753,46.4865503,0 7.6104843,46.4865943,0 7.6103863,46.4866243,0 7.6103183,46.4866933,0 7.6101963,46.4867383,0 7.6098853,46.4869373,0 7.6098613,46.4870003,0 7.6096883,46.4871263,0 7.6096513,46.4871703,0 7.6094163,46.4872503,0 7.6093613,46.4872833,0 7.6093253,46.4873503,0 7.6091903,46.4874413,0 7.6088393,46.4876083,0 7.6083365,46.4877988,0 7.6080993,46.4878713,0 7.6079583,46.4879443,0 7.6076133,46.4880403,0 7.6072793,46.4881793,0 7.6070183,46.4882273,0 7.6063493,46.4884033,0 7.6062343,46.4884653,0 7.6059453,46.4885003,0 7.6057283,46.4885073,0 7.6053583,46.4886603,0 7.6049373,46.4887813,0 7.6048723,46.4887823,0 7.6046523,46.4888563,0 7.6046073,46.4888983,0 7.6044753,46.4888563,0 7.6043778,46.4887387,0 7.6043431,46.4886956,0 7.6043857,46.488565,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6155646,46.4852336,0 7.615535,46.485289,0 7.615492,46.485321,0 7.615502,46.485336,0 7.615555,46.485348,0 7.61559,46.485422,0 7.615556,46.485471,0 7.615536,46.48548,0 7.615488,46.485564,0 7.615401,46.485584,0 7.615524,46.485579,0 7.61562,46.485595,0 7.615819,46.485559,0 7.615941,46.485561,0 7.616144,46.485543,0 7.616285,46.485512,0 7.616448,46.485431,0 7.616671,46.485489,0 7.616797,46.485459,0 7.6168,46.485484,0 7.616873,46.485518,0 7.616883,46.485555,0 7.616845,46.485562,0 7.616772,46.485599,0 7.616718,46.485614,0 7.616657,46.485688,0 7.616609,46.48571,0 7.61657,46.48576,0 7.61656,46.485821,0 7.616501,46.485897,0 7.616542,46.485957,0 7.616525,46.485996,0 7.616622,46.486006,0 7.616723,46.485977,0 7.616802,46.485984,0 7.616924,46.486036,0 7.616961,46.486095,0 7.617153,46.486238,0 7.61727,46.486222,0 7.617359,46.486187,0 7.617604,46.486188,0 7.61774,46.486219,0 7.617793,46.486254,0 7.617831,46.486349,0 7.617833,46.48642,0 7.617861,46.486485,0 7.618009,46.486485,0 7.618205,46.486437,0 7.618295,46.486464,0 7.618329,46.486456,0 7.618436,46.486472,0 7.618602,46.486572,0 7.618792,46.486605,0 7.618953,46.486676,0 7.6192585,46.4867677,0 7.619325,46.48681,0 7.619549,46.48683,0 7.6197,46.486865,0 7.6199131,46.4869774,0 7.620189,46.487069,0 7.620236,46.487135,0 7.620337,46.487182,0 7.620472,46.487222,0 7.620583,46.487237,0 7.620652,46.487236,0 7.62087,46.487189,0 7.620953,46.48718,0 7.621037,46.487226,0 7.621099,46.48729,0 7.621169,46.487408,0 7.621125,46.487441,0 7.621083,46.487496,0 7.621073,46.487531,0 7.621001,46.487586,0 7.620807,46.487651,0 7.620689,46.48773,0 7.6205198,46.4878324,0 7.620482,46.487876,0 7.620496,46.487948,0 7.620563,46.487987,0 7.620704,46.488001,0 7.620883,46.488074,0 7.621437,46.48835,0 7.621532,46.488359,0 7.621586,46.488383,0 7.62157,46.488455,0 7.621615,46.48847,0 7.621711,46.488469,0 7.621795,46.488546,0 7.6219173,46.4885762,0 7.622028,46.4885985,0 7.6222705,46.4887699,0 7.622325,46.48893,0 7.622321,46.489149,0 7.622263,46.48936,0 7.622314,46.489402,0 7.62232,46.48944,0 7.622254,46.489487,0 7.622105,46.489527,0 7.621746,46.489663,0 7.621668,46.489673,0 7.621407,46.490046,0 7.621412,46.490111,0 7.6214,46.49014,0 7.621378,46.490162,0 7.62133,46.490311,0 7.621239,46.490413,0 7.621209,46.490417,0 7.621155,46.490499,0 7.6210982,46.4905384,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6210982,46.4905384,0 7.620964,46.4905577,0 7.6209202,46.490512,0 7.6207783,46.4905281,0 7.6206561,46.4906049,0 7.6205331,46.4906336,0 7.6203543,46.4906494,0 7.6202419,46.4906959,0 7.6200854,46.490772,0 7.6200422,46.4908145,0 7.6199348,46.490882,0 7.6198603,46.4909638,0 7.6198001,46.4910073,0 7.6198169,46.4910749,0 7.61978,46.491125,0 7.619825,46.491157,0 7.6199204,46.491208,0 7.6199692,46.4912974,0 7.6199436,46.4913231,0 7.6200376,46.4914214,0 7.6200257,46.4914703,0 7.620043,46.4915465,0 7.6200862,46.4916029,0 7.6201401,46.491697,0 7.6202303,46.4919044,0 7.620279,46.49209,0 7.6202839,46.4921193,0 7.620283,46.492293,0 7.6202503,46.492356,0 7.6202655,46.4924072,0 7.6202963,46.492469,0 7.6203822,46.4924904,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.590707,46.478723,0 7.590711,46.478539,0 7.590772,46.478439,0 7.590744,46.478278,0 7.590758,46.478056,0 7.59075,46.477896,0 7.5907974,46.4776477,0 7.59091,46.477543,0 7.590919,46.47749,0 7.590799,46.477172,0 7.590746,46.477112,0 7.590719,46.4770114,0 7.590691,46.4769634,0 7.590748,46.476776,0 7.590759,46.476723,0 7.5907497,46.476653,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5907497,46.476653,0 7.59074,46.47658,0 7.590712,46.476443,0 7.590647,46.476366,0 7.590672,46.475923,0 7.590589,46.475456,0 7.5904172,46.4757219,0 7.590124,46.47586,0 7.59005,46.475799,0 7.58971,46.475946,0 7.589323,46.475984,0 7.589385,46.476094,0 7.589159,46.476482,0 7.5888497,46.4765801,0 7.588444,46.476598,0 7.588278,46.476609,0 7.587762,46.476493,0 7.587559,46.476305,0 7.587223,46.476143,0 7.586993,46.476253,0 7.586734,46.476292,0 7.586469,46.47637,0 7.586058,46.476531,0 7.5858106,46.4766097,0 7.585545,46.476709,0 7.585407,46.476925,0 7.585245,46.47706,0 7.5850914,46.4772674,0 7.585041,46.477479,0 7.5848927,46.4776871,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5897212,46.4818723,0 7.589943,46.481844,0 7.5900556,46.4818181,0 7.590092,46.481759,0 7.589998,46.481475,0 7.58998,46.481335,0 7.590041,46.481122,0 7.5900774,46.481021,0 7.590016,46.480837,0 7.5900969,46.4806249,0 7.590166,46.480569,0 7.590156,46.4804,0 7.590309,46.480142,0 7.590366,46.480088,0 7.590412,46.479927,0 7.590453,46.479764,0 7.590448,46.479591,0 7.590517,46.479423,0 7.590573,46.479359,0 7.590686,46.479229,0 7.5907469,46.4790091,0 7.590726,46.478903,0 7.590707,46.478723,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6011402,46.490361,0 7.6011243,46.4902803,0 7.6011843,46.4901643,0 7.6014333,46.4899023,0 7.6016833,46.4894923,0 7.6017903,46.4891893,0 7.6017893,46.4889183,0 7.6015133,46.4888943,0 7.6012443,46.4886913,0 7.6012193,46.4886393,0 7.6012223,46.4882563,0 7.6012023,46.4882303,0 7.6009833,46.4882253,0 7.6009323,46.4882113,0 7.6006563,46.4882393,0 7.6003743,46.4883773,0 7.6001003,46.4884293,0 7.5999913,46.4883763,0 7.5997933,46.4883763,0 7.5996383,46.4884183,0 7.5995314,46.4883839,0 7.5993911,46.4885099,0 7.5992613,46.4884893,0 7.5990153,46.4885893,0 7.5989113,46.4885563,0 7.5987673,46.4886813,0 7.5987023,46.4886663,0 7.5985929,46.4886894,0 7.5984759,46.4887644,0 7.5984259,46.4889354,0 7.5983769,46.4888704,0 7.5982989,46.4888604,0 7.5982569,46.4887774,0 7.5982034,46.4887503,0 7.5981799,46.4887724,0 7.5981329,46.4887394,0 7.5980599,46.4887434,0 7.5980329,46.4888104,0 7.5979589,46.4885316,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5979589,46.4885316,0 7.5978355,46.488491,0 7.5977604,46.4884577,0 7.5976853,46.488454,0 7.5975887,46.488491,0 7.5974899,46.4885634,0 7.5972776,46.4886018,0 7.5970898,46.4887237,0 7.5969075,46.488768,0 7.5967733,46.4888603,0 7.5966285,46.4888714,0 7.5965319,46.4887827,0 7.5964461,46.4887163,0 7.5963764,46.4887089,0 7.5963281,46.4886055,0 7.596404,46.4883944,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5922214,46.488268,0 7.5923677,46.4881323,0 7.5925617,46.4879943,0 7.5926257,46.4879633,0 7.5927327,46.4878773,0 7.5928177,46.4877743,0 7.5928317,46.4877043,0 7.5927997,46.4874863,0 7.5927757,46.4874453,0 7.5924828,46.4871774,0 7.5922205,46.4870198,0 7.592117,46.4869065,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4419793,46.4126531,0 7.4419058,46.4125374,0 7.4412531,46.4122448,0 7.4409621,46.4121367,0 7.4400956,46.4120547,0 7.4397671,46.4120185,0 7.4393406,46.4117801,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4396951,46.4114482,0 7.4412106,46.4111941,0 7.4415882,46.4111763,0 7.4425324,46.4115077,0 7.4430285,46.4114178,0 7.4434583,46.4112146,0 7.4437284,46.4109221,0 7.4441582,46.410684,0 7.4448156,46.4103702,0 7.4448583,46.4102856,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4448583,46.4102856,0 7.4453851,46.4101867,0 7.4457995,46.4099307,0 7.4460429,46.4095548,0 7.4466952,46.4082055,0 7.4468089,46.4080037,0 7.44678,46.4078413,0 7.4465215,46.407632,0 7.4462232,46.4075539,0 7.4462137,46.4073898,0 7.4464603,46.4072978,0 7.4464994,46.4071501,0 7.4465756,46.4070943,0 7.4464327,46.4070516,0 7.4463232,46.4069827,0 7.4462423,46.4067824,0 7.4464797,46.406528,0 7.4467295,46.4064004,0 7.447149,46.4061475,0 7.4472186,46.4059651,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4411642,46.3998745,0 7.4411731,46.3997126,0 7.4414034,46.3994827,0 7.4414034,46.3994032,0 7.4415671,46.3992862,0 7.4417733,46.3992444,0 7.44184,46.3991273,0 7.4417611,46.398935,0 7.4418824,46.3986925,0 7.4421067,46.3983329,0 7.4421916,46.398036,0 7.4423553,46.3976848,0 7.4425069,46.3974548,0 7.4427736,46.3970869,0 7.4427069,46.3969447,0 7.4427615,46.3967106,0 7.4428949,46.3964346,0 7.4429858,46.3962548,0 7.4429797,46.3961378,0 7.4427979,46.396121,0 7.4422643,46.3962047,0 7.4420582,46.3962716,0 7.4412337,46.3962966,0 7.440876,46.3962381,0 7.4410942,46.3961127,0 7.4412943,46.3958702,0 7.4414641,46.3957782,0 7.4416884,46.3955022,0 7.4417187,46.3953475,0 7.4417066,46.3951802,0 7.4415429,46.3953182,0 7.4413913,46.3953559,0 7.4411973,46.3953349,0 7.4411912,46.395289,0 7.4413307,46.395243,0 7.4413913,46.3951092,0 7.4413338,46.3950921,0 7.4412586,46.3951415,0 7.4411655,46.3951292,0 7.4412443,46.3950823,0 7.4411691,46.3950304,0 7.4413696,46.3950131,0 7.4412228,46.394902,0 7.4412908,46.3948699,0 7.4414841,46.3948576,0 7.441656,46.3948897,0 7.4415378,46.3947218,0 7.4413194,46.3945465,0 7.4413489,46.394489,0 7.4414744,46.3945078,0 7.4415672,46.3945642,0 7.4418946,46.394632,0 7.4421838,46.394647,0 7.4419055,46.3945228,0 7.4424075,46.3944927,0 7.4422547,46.394425,0 7.4420801,46.3943911,0 7.441911,46.3942293,0 7.441649,46.3941992,0 7.4414854,46.3940675,0 7.4417309,46.3941465,0 7.4418728,46.3941503,0 7.4419273,46.3941089,0 7.4420583,46.3941277,0 7.442151,46.3942105,0 7.4422656,46.394218,0 7.4426803,46.3941013,0 7.4427076,46.3939847,0 7.4428604,46.3939245,0 7.4429859,46.3939056,0 7.4431441,46.3938078,0 7.4433296,46.3937815,0 7.4435752,46.3938454,0 7.4438589,46.3940185,0 7.4440117,46.3941013,0 7.4443773,46.3942067,0 7.4445519,46.3942519,0 7.4447047,46.3942105,0 7.4450102,46.3942669,0 7.4452121,46.3942632,0 7.4454413,46.3941653,0 7.4455668,46.3941728,0 7.4456977,46.3940938,0 7.445796,46.3940938,0 7.4459433,46.394154,0 7.4463853,46.3942406,0 7.4464671,46.3943271,0 7.4466144,46.3943271,0 7.4467181,46.3943083,0 7.4468982,46.3943685,0 7.4469636,46.3944551,0 7.4468927,46.3945906,0 7.4470182,46.3946395,0 7.4472201,46.3946583,0 7.4473892,46.3945906,0 7.4477494,46.3945341,0 7.4478421,46.3945454,0 7.447924,46.3945793,0 7.4479785,46.394504,0 7.448104,46.3945078,0 7.4482241,46.3945341,0 7.4483114,46.3944438,0 7.448426,46.3945002,0 7.4484914,46.394425,0 7.4486333,46.3944739,0 7.4485951,46.3946056,0 7.4487315,46.3946169,0 7.4487534,46.3946771,0 7.4486933,46.3947373,0 7.4487861,46.3947975,0 7.4489552,46.3947938,0 7.4488734,46.394632,0 7.4491844,46.3947147,0 7.4496482,46.3947599,0 7.4497955,46.3947298,0 7.449921,46.3946696,0 7.4497628,46.3946508,0 7.4495991,46.3945943,0 7.4494845,46.3944965,0 7.4492172,46.3944099,0 7.4491748,46.3943592,0 7.4491922,46.3943312,0 7.4492415,46.3943032,0 7.4490414,46.3942392,0 7.4491081,46.3941812,0 7.4490733,46.3940272,0 7.4490211,46.3939532,0 7.4489346,46.3938937,0 7.4487649,46.3939565,0 7.4485469,46.3939165,0 7.448529,46.3938473,0 7.4486543,46.3938029,0 7.4486793,46.3937634,0 7.4486264,46.3937261,0 7.4485247,46.3937017,0 7.4487236,46.3936285,0 7.448896,46.3936072,0 7.4489755,46.3935584,0 7.4488253,46.3935432,0 7.4488739,46.3934791,0 7.4487148,46.3934852,0 7.448812,46.3933907,0 7.4489313,46.3934121,0 7.4490286,46.3933938,0 7.448896,46.3932993,0 7.4490639,46.3932627,0 7.4492495,46.3931621,0 7.4494042,46.3931652,0 7.449749,46.3932871,0 7.4498904,46.3932993,0 7.4500451,46.3934151,0 7.4501512,46.3934365,0 7.4502175,46.393409,0 7.4501865,46.3933603,0 7.4499921,46.3932962,0 7.4501512,46.393278,0 7.4500805,46.3932017,0 7.450213,46.3932078,0 7.4502219,46.3931194,0 7.4503898,46.3931713,0 7.4506285,46.3931682,0 7.450823,46.393092,0 7.4509556,46.3929579,0 7.4510837,46.3929122,0 7.4511677,46.3928969,0 7.4511147,46.392839,0 7.4511191,46.3927628,0 7.4510749,46.392714,0 7.45096,46.3926713,0 7.4511368,46.3926195,0 7.4511633,46.3925707,0 7.4511191,46.3925403,0 7.4508186,46.3923695,0 7.4505269,46.392269,0 7.450655,46.3922293,0 7.4507655,46.392208,0 7.4508672,46.3921104,0 7.4510395,46.3920556,0 7.4507876,46.3920129,0 7.4505887,46.3920281,0 7.4504429,46.3919794,0 7.4505931,46.3919123,0 7.4505003,46.3917934,0 7.4503766,46.3917751,0 7.4502793,46.3916715,0 7.4501114,46.3916562,0 7.4500672,46.3915831,0 7.4498727,46.3915373,0 7.4497357,46.3914367,0 7.4496341,46.3913209,0 7.449665,46.3911319,0 7.4493556,46.3912904,0 7.4492495,46.3910435,0 7.4491081,46.3908667,0 7.4491258,46.3908027,0 7.449223,46.3906929,0 7.4491877,46.3905893,0 7.4485866,46.3901869,0 7.4485291,46.3900558,0 7.4485159,46.389882,0 7.4485733,46.3897692,0 7.4487324,46.3896778,0 7.4488695,46.3895955,0 7.4490197,46.3895315,0 7.4491612,46.3892601,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4491612,46.3892601,0 7.4494042,46.3890803,0 7.4496031,46.3889065,0 7.4499788,46.3887297,0 7.4500893,46.3886626,0 7.4503014,46.3885803,0 7.4503766,46.3885895,0 7.450434,46.3886596,0 7.4505622,46.3886017,0 7.4507965,46.3884553,0 7.4509114,46.3884248,0 7.4508804,46.3886321,0 7.4508274,46.388809,0 7.4508274,46.3889614,0 7.4508672,46.3890224,0 7.4510793,46.3890772,0 7.4512075,46.3891626,0 7.4513887,46.3891687,0 7.4518086,46.3892357,0 7.4520296,46.3891748,0 7.4522726,46.3892297,0 7.4525997,46.3892205,0 7.4529533,46.3891626,0 7.4531168,46.3890528,0 7.4533334,46.388998,0 7.4536207,46.3889248,0 7.4537621,46.3889522,0 7.4538903,46.3889583,0 7.4539742,46.3889035,0 7.4542306,46.3887907,0 7.4543941,46.3887388,0 7.4544074,46.3886138,0 7.4546416,46.388687,0 7.4547786,46.3887968,0 7.4548493,46.3886687,0 7.4549598,46.3887236,0 7.4550571,46.3886626,0 7.4550482,46.388626,0 7.4553532,46.3885529,0 7.4557289,46.3884553,0 7.4559764,46.388437,0 7.4561664,46.3883456,0 7.4564095,46.3881962,0 7.4565333,46.3881931,0 7.4567366,46.3881078,0 7.4567763,46.3880102,0 7.4569576,46.3879828,0 7.4570813,46.3878883,0 7.457152,46.3876871,0 7.4571388,46.387617,0 7.4571918,46.3875407,0 7.4573553,46.3875255,0 7.4574747,46.3875529,0 7.4575542,46.3875011,0 7.4578327,46.3872633,0 7.4579432,46.3872176,0 7.4580713,46.3871901,0 7.4581332,46.3871383,0 7.4581465,46.3870591,0 7.458226,46.3870042,0 7.458447,46.386928,0 7.4584868,46.3868853,0 7.4584603,46.3868335,0 7.4583586,46.3867786,0 7.4583277,46.3867267,0 7.4583674,46.3866536,0 7.4585177,46.3865042,0 7.4585708,46.3864493,0 7.458584,46.3863944,0 7.4584912,46.3863579,0 7.4584426,46.3862908,0 7.4583763,46.3860316,0 7.4583807,46.3859646,0 7.4584912,46.3858579,0 7.4586768,46.3856719,0 7.4587917,46.3856231,0 7.4588801,46.3855225,0 7.4590304,46.3854554,0 7.4592072,46.3852908,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4592072,46.3852908,0 7.4593044,46.3851567,0 7.4594017,46.3851536,0 7.4594459,46.3851018,0 7.459437,46.3850256,0 7.4595475,46.3849311,0 7.4596492,46.3849158,0 7.4597508,46.384928,0 7.4598657,46.3848975,0 7.4601398,46.3846567,0 7.4602591,46.3846079,0 7.4603696,46.3846292,0 7.4606524,46.3845164,0 7.4608734,46.3842359,0 7.4608867,46.384117,0 7.4609,46.3840225,0 7.4610016,46.3839128,0 7.4610237,46.3837725,0 7.4612049,46.3834554,0 7.4612447,46.3833182,0 7.4613331,46.3832054,0 7.4612403,46.3830316,0 7.4612933,46.3830072,0 7.4612005,46.3829066,0 7.4612226,46.3827298,0 7.4611386,46.3825865,0 7.4611386,46.3824828,0 7.4610414,46.3823304,0 7.4611073,46.3822106,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4611073,46.3822106,0 7.4612404,46.3822517,0 7.4614568,46.3823456,0 7.4616159,46.382348,0 7.4615585,46.3822694,0 7.4616911,46.3822938,0 7.4617211,46.3821629,0 7.4618236,46.3820919,0 7.4619784,46.3822176,0 7.4622961,46.3823287,0 7.4629055,46.38253,0 7.463308,46.3826662,0 7.4634069,46.3828895,0 7.4636321,46.382777,0 7.4639005,46.38287,0 7.4639274,46.3829525,0 7.4640506,46.382901,0 7.4640671,46.3829953,0 7.4643743,46.3829246,0 7.4643871,46.3830368,0 7.4645354,46.3829903,0 7.4645177,46.3831343,0 7.4646506,46.3831618,0 7.4646264,46.3833123,0 7.4648386,46.3832036,0 7.4650285,46.3832415,0 7.4649901,46.3833249,0 7.4652644,46.3832425,0 7.4652205,46.3834252,0 7.4657122,46.3832997,0 7.4661585,46.3832997,0 7.4664332,46.3832642,0 7.4664675,46.3834418,0 7.4663216,46.3836313,0 7.4666563,46.383578,0 7.4669653,46.3834536,0 7.4672915,46.3833826,0 7.4674803,46.3831754,0 7.4675693,46.3829127,0 7.4676724,46.3828786,0 7.4678802,46.3828314,0 7.4681028,46.3828006,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4715578,46.3803844,0 7.4716905,46.3801436,0 7.4721055,46.3799782,0 7.4722339,46.3800409,0 7.472586,46.3799856,0 7.472571,46.3798732,0 7.4733791,46.3800682,0 7.4740397,46.3799886,0 7.4740981,46.3801672,0 7.4743717,46.3802091,0 7.4747225,46.3801399,0 7.4753201,46.3804002,0 7.4756569,46.3803819,0 7.4760285,46.3805054,0 7.4773344,46.3802503,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4773344,46.3802503,0 7.4775896,46.3800954,0 7.478055,46.3799769,0 7.4786994,46.3798188,0 7.4797233,46.3793595,0 7.4798307,46.3792508,0 7.4798737,46.3786976,0 7.4799238,46.3784851,0 7.4801171,46.3782629,0 7.480246,46.3778331,0 7.4804321,46.3776553,0 7.4803963,46.3775269,0 7.4810479,46.3771514,0 7.4812842,46.3769291,0 7.4815634,46.3765389,0 7.4815634,46.3763364,0 7.4819429,46.3760548,0 7.4822293,46.3759511,0 7.4822794,46.3758473,0 7.4826875,46.3756053,0 7.4829596,46.3755015,0 7.4832961,46.3752496,0 7.4832961,46.3750174,0 7.4834393,46.3747062,0 7.4836613,46.3745481,0 7.4833677,46.374311,0 7.4832031,46.3742665,0 7.48311,46.374143,0 7.4833677,46.3740541,0 7.4835038,46.3740936,0 7.4838618,46.3740195,0 7.4839763,46.3738466,0 7.4841697,46.3737923,0 7.4841553,46.3736886,0 7.4842771,46.3735947,0 7.4842484,46.3735058,0 7.4840121,46.3732489,0 7.4840837,46.3731847,0 7.4843415,46.3729821,0 7.4845635,46.3729179,0 7.4846279,46.3727944,0 7.4846422,46.3727154,0 7.4847711,46.3726857,0 7.4849215,46.3726709,0 7.4849429,46.3725424,0 7.4849501,46.3723448,0 7.4853009,46.371752,0 7.4861673,46.3711938,0 7.4864609,46.3705861,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.574892,46.4016217,0 7.5752629,46.4028429,0 7.5758871,46.4029302,0 7.5773776,46.4030385,0 7.5779149,46.4031005,0 7.5783777,46.4034398,0 7.58076,46.4045863,0 7.582163,46.4048456,0 7.582205,46.4049976,0 7.5843654,46.405166,0 7.5848908,46.406216,0 7.5892869,46.4093376,0 7.5906357,46.409781,0 7.5916796,46.4096886,0 7.5924095,46.4102984,0 7.5930562,46.4102984,0 7.5939153,46.4108249,0 7.5942811,46.4113213,0 7.5946519,46.4119154,0 7.5946557,46.4121992,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5946557,46.4121992,0 7.5947645,46.4125775,0 7.5944483,46.4128069,0 7.5945428,46.4130565,0 7.5944653,46.413244,0 7.5944498,46.4133897,0 7.5946916,46.4136176,0 7.5947536,46.4140872,0 7.5948451,46.414329,0 7.5947955,46.4146018,0 7.5947645,46.4149149,0 7.5946374,46.4151908,0 7.5945723,46.4153086,0 7.5944064,46.4153582,0 7.5941894,46.4154868,0 7.5940592,46.4157705,0 7.5939368,46.4158464,0 7.5936888,46.4159673,0 7.5935586,46.4162881,0 7.5934367,46.4165774,0 7.5933156,46.4167476,0 7.5932134,46.4168574,0 7.5932172,46.4169406,0 7.5931264,46.4170012,0 7.5929485,46.4170466,0 7.5928161,46.417285,0 7.5927139,46.4175423,0 7.5921387,46.4175991,0 7.5919533,46.4177126,0 7.5918322,46.4176974,0 7.5917225,46.4174855,0 7.5915598,46.4174099,0 7.5913985,46.4174799,0 7.5913628,46.4174184,0 7.5911734,46.4175225,0 7.5908727,46.4180783,0 7.5901597,46.4188029,0 7.590028,46.4190354,0 7.5902314,46.4192795,0 7.5904387,46.4202889,0 7.5907177,46.4209379,0 7.5915276,46.4219047,0 7.5920628,46.4226534,0 7.5930543,46.4233989,0 7.5938905,46.4242919,0 7.5943427,46.4250004,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5296583,46.4300374,0 7.5307656,46.4296824,0 7.531478,46.4296114,0 7.5326109,46.4289607,0 7.5328856,46.4290672,0 7.5332632,46.4290672,0 7.5335465,46.4288779,0 7.5331946,46.4285643,0 7.5331087,46.4283632,0 7.5331946,46.4279491,0 7.5328942,46.4278071,0 7.5325423,46.4278366,0 7.5318213,46.4276592,0 7.531435,46.4276296,0 7.531272,46.4277657,0 7.5310316,46.427742,0 7.5309029,46.4274699,0 7.5305682,46.4272214,0 7.5304909,46.4270025,0 7.5302506,46.4269019,0 7.5299588,46.4269137,0 7.5293322,46.4264937,0 7.5287056,46.426334,0 7.5284739,46.4261683,0 7.5281134,46.4261269,0 7.5278559,46.4259671,0 7.5274697,46.4258843,0 7.5272551,46.4257305,0 7.5266629,46.4255471,0 7.5250836,46.4254406,0 7.5240622,46.4256358,0 7.5224915,46.4262275,0 7.5212212,46.4263813,0 7.5209294,46.4265588,0 7.5206461,46.4265055,0 7.5199766,46.4265588,0 7.5191784,46.4264286,0 7.5184059,46.426399,0 7.5181485,46.4264878,0 7.5179253,46.4263754,0 7.5172987,46.4268546,0 7.5166378,46.4266889,0 7.5163632,46.4265469,0 7.5160456,46.4265706,0 7.5149899,46.4262275,0 7.5148096,46.4260796,0 7.5149212,46.4258133,0 7.5144492,46.4257778,0 7.5146122,46.4253637,0 7.5137625,46.4253578,0 7.5135222,46.425269,0 7.512827,46.425482,0 7.5115052,46.4264937,0 7.511076,46.4266475,0 7.5105353,46.4270143,0 7.5101834,46.4270912,0 7.510046,46.4269729,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4901878,46.4164474,0 7.4912908,46.4158099,0 7.4918247,46.4154004,0 7.4920565,46.4151024,0 7.4923119,46.4150314,0 7.4928417,46.4151449,0 7.4930356,46.4152159,0 7.4930734,46.4151024,0 7.4929174,46.4148895,0 7.4929174,46.4147902,0 7.4934093,46.4148611,0 7.4939864,46.4152443,0 7.4942844,46.4152679,0 7.4943175,46.4150693,0 7.4943175,46.415022,0 7.4945634,46.4150503,0 7.4947574,46.4150929,0 7.4947621,46.4149557,0 7.4947526,46.4148611,0 7.495202,46.4148375,0 7.4958737,46.4152253,0 7.4960031,46.4154518,0 7.4961514,46.4154639,0 7.4962301,46.4154094,0 7.4963966,46.4155093,0 7.4965601,46.4156365,0 7.4966479,46.4156244,0 7.496554,46.4154488,0 7.496324,46.4152399,0 7.4962543,46.4148888,0 7.4963542,46.4147949,0 7.496327,46.4144831,0 7.4964178,46.4142561,0 7.49633,46.414023,0 7.4955157,46.41336,0 7.4950404,46.4133025,0 7.4946469,46.4130603,0 7.4943684,46.4127152,0 7.4942654,46.4124034,0 7.494217,46.4122944,0 7.4942715,46.4122581,0 7.4943472,46.412246,0 7.4948194,46.412358,0 7.4949375,46.4123368,0 7.4948557,46.41214,0 7.4944592,46.4116193,0 7.4944228,46.4115406,0 7.4948467,46.411362,0 7.4946559,46.4111229,0 7.4947316,46.4110744,0 7.494662,46.4109321,0 7.4945197,46.4108776,0 7.4945924,46.4107656,0 7.4945288,46.4107081,0 7.4943714,46.4108655,0 7.4940687,46.4106839,0 7.493663,46.4105416,0 7.4935631,46.4104902,0 7.4938628,46.4104054,0 7.4938356,46.4103509,0 7.4937357,46.4102571,0 7.4936085,46.4102026,0 7.4938931,46.4099695,0 7.4941837,46.410024,0 7.4945046,46.4099331,0 7.4952069,46.4099543,0 7.495437,46.4098938,0 7.4955611,46.4097969,0 7.4960122,46.4098393,0 7.4967357,46.4101027,0 7.496993,46.4101662,0 7.4971806,46.4100626,0 7.4972836,46.4100058,0 7.4973169,46.4099271,0 7.497217,46.4099241,0 7.4971613,46.409743,0 7.4968063,46.4094717,0 7.49627,46.4092268,0 7.4959926,46.4091075,0 7.4958764,46.4088269,0 7.4956563,46.4085867,0 7.4954188,46.4080324,0 7.4954703,46.4075632,0 7.495328,46.4072756,0 7.4953704,46.4070486,0 7.4957276,46.4069396,0 7.4958638,46.4065884,0 7.4968083,46.4062312,0 7.4977044,46.405992,0 7.4979405,46.4060405,0 7.4981282,46.4057529,0 7.4980919,46.4054744,0 7.4983825,46.4051989,0 7.4987034,46.4048326,0 7.4986943,46.4040485,0 7.4994231,46.4034022,0 7.4994988,46.4029718,0 7.499688,46.4024609,0 7.500109,46.4020447,0 7.5001941,46.4017278,0 7.5000191,46.4013778,0 7.5000806,46.400952,0 7.4998678,46.400673,0 7.4998163,46.4004746,0 7.4995795,46.4003655,0 7.4992645,46.4003866,0 7.4988702,46.4002985,0 7.4986284,46.400275,0 7.498196,46.4003894,0 7.4980919,46.4004863,0 7.4978473,46.4004233,0 7.4971159,46.4005347,0 7.496772,46.400588,0 7.4961786,46.4005565,0 7.4961084,46.4006292,0 7.4957064,46.4005468,0 7.4952463,46.4004524,0 7.4947861,46.4003652,0 7.4933998,46.3997392,0 7.4932165,46.3997687,0 7.4931219,46.3994967,0 7.491218,46.3992425,0 7.4899173,46.3989114,0 7.4893556,46.3990769,0 7.4888885,46.3988759,0 7.4864525,46.3987104,0 7.4846692,46.3988084,0 7.4843689,46.3989585,0 7.4823134,46.3989123,0 7.481863,46.3985312,0 7.4809507,46.3978383,0 7.478745,46.3969722,0 7.4771745,46.3951246,0 7.4767934,46.3946857,0 7.4768165,46.3940852,0 7.4755347,46.3924454,0 7.471643,46.3901935,0 7.4706267,46.3891542,0 7.4701879,46.3881957,0 7.4692872,46.3876183,0 7.4675434,46.3874105,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4675434,46.3874105,0 7.4669887,46.3873872,0 7.465311,46.386759,0 7.464535,46.3867072,0 7.4624656,46.3860347,0 7.4615639,46.3857169,0 7.4609857,46.3855182,0 7.4604773,46.3854862,0 7.4600662,46.3855409,0 7.4598666,46.3854598,0 7.4597279,46.3853215,0 7.4592072,46.3852908,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4715578,46.3803844,0 7.4713128,46.3802364,0 7.4710557,46.3801046,0 7.4707899,46.3799475,0 7.4698841,46.3796959,0 7.4694796,46.3795216,0 7.4681501,46.3786158,0 7.4675495,46.378284,0 7.4674162,46.3781604,0 7.4666402,46.3783304,0 7.4661228,46.3783304,0 7.4655094,46.3783895,0 7.4651103,46.3781752,0 7.4646468,46.3781259,0 7.4641455,46.3780629,0 7.4636854,46.377983,0 7.463201,46.3777408,0 7.4629927,46.3777214,0 7.4624696,46.3775035,0 7.4618424,46.3773751,0 7.4614379,46.3773025,0 7.4612345,46.377024,0 7.4610577,46.3768084,0 7.4610577,46.3766437,0 7.4611473,46.3765372,0 7.4614089,46.3764863,0 7.4615938,46.3762582,0 7.4617497,46.3761721,0 7.4619008,46.376207,0 7.4618642,46.3764452,0 7.4619998,46.3764452,0 7.4621249,46.3763998,0 7.4621408,46.3764214,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5888202,46.5408269,0 7.5888528,46.5408766,0 7.588875,46.54106,0 7.588924,46.54119,0 7.588901,46.54133,0 7.588834,46.541485,0 7.588767,46.541914,0 7.588787,46.541944,0 7.588761,46.542065,0 7.588373,46.542474,0 7.588166,46.542546,0 7.587836,46.5425,0 7.587632,46.542542,0 7.587456,46.542619,0 7.587403,46.542651,0 7.58737,46.542709,0 7.58737,46.542829,0 7.587412,46.542915,0 7.586862,46.543252,0 7.586847,46.543396,0 7.586674,46.543453,0 7.5862511,46.5434681,0 7.586041,46.543592,0 7.58596,46.5437,0 7.58591,46.543846,0 7.58599,46.543953,0 7.585999,46.544003,0 7.585923,46.544054,0 7.58558,46.544154,0 7.585515,46.544354,0 7.585589,46.544496,0 7.585709,46.54456,0 7.585731,46.544603,0 7.585658,46.544812,0 7.585706,46.544917,0 7.585653,46.545091,0 7.585334,46.545331,0 7.585114,46.545657,0 7.5849503,46.5458153,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6020138,46.5498841,0 7.601882,46.549922,0 7.601685,46.54992,0 7.601626,46.54996,0 7.601722,46.550054,0 7.601309,46.550264,0 7.6011991,46.550366,0 7.601219,46.55041,0 7.601399,46.550388,0 7.6015586,46.550506,0 7.601421,46.550513,0 7.6013647,46.5506373,0 7.601262,46.550705,0 7.601287,46.550811,0 7.601333,46.550808,0 7.6017485,46.5512085,0 7.601757,46.5512704,0 7.601563,46.551184,0 7.601708,46.551289,0 7.6015783,46.5512632,0 7.6018501,46.5513874,0 7.6016629,46.5513788,0 7.601709,46.551462,0 7.601649,46.55154,0 7.6018448,46.5515183,0 7.601677,46.551598,0 7.601566,46.551819,0 7.60172,46.551885,0 7.601752,46.551971,0 7.601523,46.552262,0 7.6014463,46.5522722,0 7.601403,46.552354,0 7.601349,46.55238,0 7.601272,46.552371,0 7.601262,46.552236,0 7.601138,46.552184,0 7.600934,46.552206,0 7.600846,46.552289,0 7.600269,46.552471,0 7.6002,46.5525494,0 7.600149,46.55276,0 7.600296,46.552897,0 7.6009266,46.5531762,0 7.6009329,46.5533856,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6009266,46.5531762,0 7.600218,46.55332,0 7.6001175,46.5534133,0 7.599965,46.553401,0 7.599942,46.553433,0 7.599895,46.553426,0 7.59987,46.553456,0 7.599729,46.553497,0 7.599659,46.553448,0 7.599272,46.553485,0 7.598813,46.55346,0 7.598656,46.5534106,0 7.598414,46.553382,0 7.598358,46.553294,0 7.598138,46.553232,0 7.5979213,46.5532318,0 7.5977704,46.5533893,0 7.597562,46.55353,0 7.5971441,46.5537263,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.585006,46.545887,0 7.585308,46.545812,0 7.585676,46.545648,0 7.586004,46.545501,0 7.586149,46.54546,0 7.586274,46.545474,0 7.586592,46.545575,0 7.586746,46.545413,0 7.587392,46.545051,0 7.587454,46.545042,0 7.58755,46.545093,0 7.587657,46.545196,0 7.587685,46.545255,0 7.587735,46.545312,0 7.587937,46.545379,0 7.588127,46.545313,0 7.588555,46.545203,0 7.588655,46.545235,0 7.588914,46.54519,0 7.58927,46.544999,0 7.589602,46.544965,0 7.589747,46.544873,0 7.590138,46.544825,0 7.590246,46.544838,0 7.590336,46.544905,0 7.590498,46.54495,0 7.59092,46.544973,0 7.591352,46.544928,0 7.5915543,46.5450082,0 7.5919183,46.5450711,0 7.5920883,46.5451263,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5849503,46.5458153,0 7.585006,46.545887,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5800023,46.5344493,0 7.5798945,46.5343797,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5798945,46.5343797,0 7.5799446,46.5343023,0 7.580358,46.534014,0 7.580229,46.53383,0 7.580478,46.53353,0 7.58063,46.533409,0 7.580662,46.533282,0 7.580985,46.533044,0 7.581097,46.532718,0 7.581299,46.53254,0 7.581403,46.532292,0 7.581436,46.532046,0 7.581655,46.531986,0 7.581711,46.531738,0 7.582004,46.531552,0 7.582176,46.531554,0 7.582523,46.531376,0 7.582614,46.531184,0 7.582583,46.53111,0 7.582906,46.530769,0 7.582863,46.530726,0 7.5829341,46.5305863,0 7.583097,46.530457,0 7.583587,46.53036,0 7.583919,46.530348,0 7.5840885,46.5302561,0 7.5842076,46.5301916,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.574907,46.522174,0 7.575241,46.522126,0 7.575519,46.522007,0 7.575683,46.5219091,0 7.576177,46.5216802,0 7.5766449,46.5215308,0 7.5769984,46.5213232,0 7.5771978,46.5209949,0 7.5773429,46.5207243,0 7.5778537,46.5203175,0 7.5781433,46.5201358,0 7.5782994,46.5200566,0 7.5784074,46.5199962,0 7.5786242,46.5200434,0 7.5788573,46.5200418,0 7.5791451,46.5200439,0 7.5795373,46.5200993,0 7.5797431,46.5200959,0 7.5799979,46.5200668,0 7.5801735,46.5200411,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5749471,46.5223416,0 7.574907,46.522174,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6160369,46.3979777,0 7.6157131,46.3979155,0 7.6154834,46.3978111,0 7.6151754,46.3978003,0 7.6150423,46.3977139,0 7.6148727,46.3976239,0 7.6147448,46.3976527,0 7.6145725,46.3976563,0 7.6144133,46.3977751,0 7.6141693,46.3976716,0 7.6139253,46.3976149,0 7.6138913,46.3974511,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5867784,46.5343331,0 7.586636,46.5343169,0 7.5862536,46.534387,0 7.5858189,46.5340589,0 7.5855344,46.5338818,0 7.5852999,46.5338814,0 7.5852102,46.5338558,0 7.5849817,46.5337454,0 7.5844205,46.5337057,0 7.5841258,46.5338472,0 7.5837589,46.5338793,0 7.583468,46.534194,0 7.5831458,46.5339879,0 7.5829768,46.5340463,0 7.5827503,46.5340428,0 7.5824606,46.5341234,0 7.5822823,46.533987,0 7.582175,46.534088,0 7.582192,46.534143,0 7.582098,46.534248,0 7.582032,46.534242,0 7.5817344,46.5340341,0 7.581564,46.534071,0 7.581458,46.534159,0 7.5813587,46.5343647,0 7.581224,46.5343566,0 7.5811,46.534221,0 7.5809361,46.5341512,0 7.5807098,46.5341913,0 7.5805463,46.5342494,0 7.580228,46.534435,0 7.5800023,46.5344493,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5760918,46.4642406,0 7.5761528,46.4641344,0 7.5760963,46.4639355,0 7.575963,46.4637864,0 7.5761054,46.4635605,0 7.576007,46.463488,0 7.5760865,46.4634391,0 7.5762155,46.4634251,0 7.5762909,46.4634787,0 7.5763343,46.4633983,0 7.5761492,46.4633829,0 7.5759358,46.4633025,0 7.5756982,46.4632692,0 7.5753259,46.4633112,0 7.5752247,46.4634065,0 7.5750741,46.4633328,0 7.574982,46.4633792,0 7.5748702,46.4634855,0 7.5746599,46.4634921,0 7.5743257,46.463372,0 7.5741265,46.4632372,0 7.5739792,46.4632088,0 7.5737606,46.4632926,0 7.5735824,46.4628614,0 7.5733497,46.4628337,0 7.5731491,46.4627127,0 7.5728305,46.4626798,0 7.5725916,46.4625619,0 7.5724166,46.4626136,0 7.5722627,46.4626243,0 7.5721752,46.4626614,0 7.571934,46.462583,0 7.5718543,46.4625871,0 7.5714721,46.4625473,0 7.5712765,46.4625598,0 7.571208,46.462656,0 7.571101,46.462616,0 7.571067,46.462726,0 7.5707706,46.4627343,0 7.57068,46.462818,0 7.570409,46.462675,0 7.570349,46.462904,0 7.569704,46.462655,0 7.5695604,46.462966,0 7.5697132,46.4634117,0 7.569812,46.4637868,0 7.569815,46.46394,0 7.5697137,46.4643644,0 7.5696509,46.4645017,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5697137,46.4643644,0 7.5696709,46.4640308,0 7.569641,46.463862,0 7.569569,46.463753,0 7.5695632,46.4636037,0 7.569509,46.46342,0 7.5695177,46.4633725,0 7.5695743,46.4633062,0 7.569566,46.4631985,0 7.5694414,46.4631404,0 7.569341,46.4630756,0 7.569295,46.462921,0 7.569227,46.462647,0 7.569219,46.462572,0 7.5696607,46.4623892,0 7.5698225,46.462294,0 7.5698465,46.4622325,0 7.5698383,46.4621907,0 7.5697712,46.4621462,0 7.569602,46.462112,0 7.5692687,46.4619905,0 7.5691654,46.461936,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5696509,46.4645017,0 7.5698207,46.4647295,0 7.5699592,46.4650421,0 7.5699802,46.46521,0 7.5702017,46.4657804,0 7.5705419,46.466011,0 7.5707753,46.4661825,0 7.570989,46.4663287,0 7.5710874,46.4664496,0 7.5712645,46.4664834,0 7.5713153,46.4665155,0 7.5713181,46.4665988,0 7.5712129,46.4666974,0 7.5713008,46.4667194,0 7.5713972,46.4667082,0 7.5715031,46.4667483,0 7.5715626,46.4668221,0 7.5717327,46.4668831,0 7.5717584,46.467238,0 7.571919,46.4672926,0 7.5719463,46.4674066,0 7.5720619,46.4674788,0 7.5721567,46.4676028,0 7.5722702,46.4678185,0 7.5723853,46.4679969,0 7.5724291,46.468146,0 7.572494,46.468344,0 7.5724388,46.4686796,0 7.5724432,46.4687755,0 7.5724457,46.4688768,0 7.572539,46.4690708,0 7.5725353,46.4691595,0 7.5725692,46.4692211,0 7.5725419,46.469325,0 7.572579,46.4694265,0 7.572718,46.469569,0 7.5729752,46.4697186,0 7.5730414,46.4698077,0 7.573089,46.4698415,0 7.5731178,46.4699205,0 7.5730953,46.4699843,0 7.5730765,46.4700483,0 7.573187,46.470135,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5733474,46.4760144,0 7.573387,46.476093,0 7.573364,46.476147,0 7.573205,46.47634,0 7.5731633,46.4764965,0 7.573011,46.476853,0 7.573171,46.477301,0 7.573158,46.477392,0 7.573204,46.477643,0 7.573264,46.477724,0 7.57326,46.47782,0 7.573312,46.477974,0 7.573405,46.478005,0 7.573513,46.478382,0 7.573327,46.478605,0 7.573124,46.478741,0 7.5730652,46.4788205,0 7.572965,46.478971,0 7.5729777,46.4790803,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.572435,46.480232,0 7.5723796,46.4802457,0 7.572367,46.480409,0 7.5724103,46.4805829,0 7.5724509,46.4806753,0 7.572588,46.4807929,0 7.5728106,46.4809482,0 7.572871,46.481109,0 7.5730504,46.4810728,0 7.5731338,46.4810853,0 7.573273,46.481198,0 7.5733182,46.4812789,0 7.573379,46.481352,0 7.5734294,46.4814738,0 7.573584,46.481614,0 7.5736388,46.4817822,0 7.5735255,46.4818236,0 7.5735632,46.481887,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4991732,46.4109774,0 7.4971806,46.4100626,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5630315,46.4863658,0 7.5630346,46.4863294,0 7.5629344,46.4861077,0 7.5628594,46.4858963,0 7.5628286,46.4857459,0 7.5627536,46.4854418,0 7.5629093,46.4851483,0 7.5631453,46.4849427,0 7.5634035,46.4848222,0 7.5635808,46.4847034,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5609581,46.485938,0 7.5605165,46.4858118,0 7.5600333,46.4857315,0 7.5598958,46.4857688,0 7.559625,46.485895,0 7.5595375,46.4858721,0 7.5593626,46.4856971,0 7.5591709,46.4856971,0 7.5590842,46.4856691,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5583125,46.4854727,0 7.5582182,46.4854102,0 7.5579355,46.4853406,0 7.5577332,46.4852617,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4491612,46.3892601,0 7.4489159,46.389038,0 7.448525,46.3888934,0 7.4484874,46.3885331,0 7.4481152,46.3884317,0 7.4478024,46.3883001,0 7.4481997,46.3879463,0 7.4479682,46.3878061,0 7.448763,46.3874695,0 7.4490379,46.387263,0 7.4491418,46.3869723,0 7.448928,46.3867195,0 7.4480727,46.3866647,0 7.4475718,46.3865635,0 7.4472541,46.3866225,0 7.4469059,46.3864371,0 7.4462221,46.3860969,0 7.4456494,46.3858171,0 7.445017,46.3854714,0 7.4447187,46.385348,0 7.4441818,46.3852245,0 7.4437523,46.3850681,0 7.4433466,46.3848706,0 7.4431576,46.3845101,0 7.4427768,46.3840883,0 7.4424288,46.383557,0 7.4422289,46.3833056,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.54034,46.479224,0 7.5405449,46.4792038,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5405449,46.4792038,0 7.5405797,46.4790433,0 7.5405327,46.4789723,0 7.5404097,46.4788593,0 7.5402977,46.4788013,0 7.5402217,46.4787403,0 7.5401727,46.4786613,0 7.5401477,46.4785803,0 7.5401417,46.4784913,0 7.5401847,46.4783583,0 7.5401077,46.4781393,0 7.5398797,46.4779323,0 7.5397957,46.4778963,0 7.5396827,46.4778273,0 7.5395287,46.4776643,0 7.5392937,46.4774943,0 7.5392307,46.4773863,0 7.5392767,46.4772613,0 7.5393877,46.4770953,0 7.5393527,46.4769173,0 7.5392957,46.4768123,0 7.5390797,46.4766623,0 7.5386757,46.4762033,0 7.5386637,46.4761703,0 7.5386847,46.4760593,0 7.5384857,46.4757803,0 7.5384877,46.4757453,0 7.5385827,46.4756555,0 7.5387457,46.475635,0 7.5388027,46.4755263,0 7.5387747,46.4754113,0 7.5387965,46.475197,0 7.5387556,46.4750208,0 7.5387107,46.4748276,0 7.5386463,46.4746207,0 7.5387322,46.4744286,0 7.5384961,46.4739853,0 7.5383245,46.4736011,0 7.5382601,46.4728917,0 7.5378953,46.4726701,0 7.5375949,46.4724927,0 7.5373374,46.4721972,0 7.5371872,46.4718425,0 7.5370799,46.4714878,0 7.5368224,46.4710149,0 7.5366508,46.4708671,0 7.5363933,46.4707489,0 7.5361572,46.4705125,0 7.5359427,46.4703942,0 7.5354491,46.4701873,0 7.5351487,46.4700691,0 7.5347839,46.4699509,0 7.5345265,46.4698474,0 7.534269,46.469271,0 7.5341188,46.4688868,0 7.5337111,46.4687094,0 7.5332913,46.4687698,0 7.5313936,46.467867,0 7.5306426,46.4676454,0 7.5300418,46.4673793,0 7.5295697,46.467069,0 7.528926,46.4667142,0 7.5285183,46.4665073,0 7.5280033,46.4664926,0 7.5275956,46.46633,0 7.5271021,46.4661822,0 7.5267373,46.4661822,0 7.5254284,46.46599,0 7.5249778,46.4657092,0 7.5243126,46.4652806,0 7.5243555,46.4650737,0 7.5236474,46.4643051,0 7.5229393,46.4638469,0 7.5222956,46.4632853,0 7.522081,46.4630045,0 7.5218664,46.4628419,0 7.5213944,46.4623393,0 7.5208365,46.4623393,0 7.5206863,46.4622802,0 7.5207935,46.4619698,0 7.5201927,46.4617777,0 7.5201284,46.4615116,0 7.5199352,46.4612012,0 7.519785,46.460876,0 7.5191198,46.4602552,0 7.5182186,46.4598413,0 7.5172959,46.4598266,0 7.5165878,46.459664,0 7.5163518,46.4594275,0 7.5160299,46.458851,0 7.515472,46.4580971,0 7.5148069,46.4578606,0 7.5148593,46.4576658,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5405449,46.4792038,0 7.5406524,46.4792776,0 7.5407781,46.479334,0 7.5408591,46.4794291,0 7.5409698,46.4795263,0 7.5411333,46.4796215,0 7.5412319,46.4796548,0 7.5413719,46.4796758,0 7.5416056,46.4797181,0 7.5418305,46.4797854,0 7.54201,46.4798595,0 7.5421246,46.4798622,0 7.5422038,46.4797679,0 7.5422344,46.4798088,0 7.5422886,46.4799859,0 7.5423131,46.4800371,0 7.5426664,46.4798968,0 7.5429766,46.4798709,0 7.5432583,46.4799198,0 7.5434381,46.4799008,0 + + + + weltcuptrail + weltcuptrail, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.546366,46.472721,0 7.546582,46.472858,0 7.547273,46.473451,0 7.547355,46.4734738,0 7.547384,46.473463,0 7.547498,46.473357,0 7.547742,46.47342,0 7.547824,46.473408,0 7.547981,46.473591,0 7.547883,46.473721,0 7.547835,46.473855,0 7.5478299,46.473905,0 7.547809,46.473981,0 7.5477828,46.4740075,0 7.547779,46.474138,0 7.547809,46.474276,0 7.5477933,46.4743096,0 + + + + weltcuptrail + weltcuptrail, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5480239,46.4745659,0 7.548071,46.474601,0 7.548147,46.474528,0 7.548245,46.474637,0 7.5483324,46.4746403,0 7.548341,46.47449,0 7.548407,46.474385,0 7.548466,46.474353,0 7.54865,46.474336,0 7.54875,46.47437,0 7.548891,46.474445,0 7.549013,46.474522,0 7.54923,46.474725,0 7.549299,46.4748896,0 + + + + weltcuptrail + weltcuptrail, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5493338,46.4748532,0 7.549414,46.47493,0 7.549582,46.475164,0 7.549651,46.475295,0 7.549684,46.475505,0 7.54967,46.475541,0 7.549721,46.475697,0 7.549688,46.475774,0 7.5496779,46.4758944,0 7.549687,46.476009,0 7.549675,46.476086,0 7.549617,46.476191,0 7.549632,46.476283,0 7.549615,46.476398,0 7.549678,46.47656,0 7.549695,46.476669,0 7.5497552,46.4767867,0 7.549748,46.476959,0 + + + + Weltcuptrail + Weltcuptrail, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.549748,46.476959,0 7.549775,46.477008,0 7.549895,46.477112,0 7.550177,46.477211,0 7.55031,46.477289,0 7.55055,46.47749,0 7.55062,46.47756,0 7.550649,46.47761,0 7.5507845,46.4777077,0 7.55114,46.477912,0 7.551194,46.477987,0 7.551282,46.478149,0 7.551346,46.478194,0 7.551429,46.478302,0 7.551526,46.478356,0 7.551621,46.478457,0 7.551717,46.478663,0 7.551707,46.47887,0 7.551658,46.47893,0 7.551561,46.479008,0 7.551522,46.479094,0 7.551569,46.479147,0 7.551878,46.47925,0 7.5518842,46.4794254,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.551653,46.479461,0 7.5518381,46.4797245,0 7.5520744,46.4800436,0 + + + + weltcuptrail + weltcuptrail, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5520744,46.4800436,0 7.5523543,46.4803948,0 7.552633,46.480644,0 7.552654,46.480686,0 7.552661,46.480821,0 7.552597,46.480934,0 7.5528719,46.4810715,0 7.553538,46.481365,0 + + + + weltcuptrail + weltcuptrail, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.553538,46.481365,0 7.5536631,46.4813963,0 7.5538861,46.4814296,0 7.5539842,46.4814906,0 7.554022,46.481474,0 7.5540645,46.48153,0 7.5541435,46.48172,0 7.5543894,46.4818397,0 7.554494,46.4819297,0 7.5545233,46.4819795,0 7.5545342,46.4819645,0 7.5545621,46.4819692,0 7.5545859,46.4820172,0 7.554821,46.481838,0 7.554956,46.481708,0 7.555151,46.48159,0 7.555222,46.481636,0 7.55523,46.48166,0 7.5553253,46.4817137,0 7.55537,46.481745,0 7.555477,46.481777,0 7.5556084,46.4817019,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5545859,46.4820172,0 7.55461,46.482137,0 7.554617,46.482234,0 7.554605,46.482389,0 7.554629,46.482655,0 7.554708,46.482908,0 7.5547019,46.4829911,0 7.5548169,46.4831683,0 7.55481,46.483357,0 7.5548512,46.4833925,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5589672,46.4720202,0 7.5588162,46.471941,0 7.5582203,46.4719026,0 7.5581135,46.4719351,0 7.558022,46.471878,0 7.5578016,46.4719941,0 7.5576517,46.4720351,0 7.5576179,46.4720443,0 7.5575959,46.4718987,0 7.557722,46.471563,0 7.5579085,46.471328,0 7.557727,46.471356,0 7.5578843,46.4712066,0 7.558052,46.470647,0 7.5583051,46.4703056,0 7.5580457,46.4703479,0 7.5579895,46.470307,0 7.55807,46.470201,0 7.557818,46.469769,0 7.557864,46.469491,0 7.5576416,46.4695163,0 7.5576139,46.4694301,0 7.557456,46.469458,0 7.5575474,46.4693574,0 7.5575239,46.4692166,0 7.5573659,46.4692865,0 7.557391,46.469176,0 7.5574551,46.4689968,0 7.5573844,46.4690143,0 7.557431,46.468801,0 7.5573958,46.4687989,0 7.5574087,46.4686203,0 7.557343,46.468344,0 7.5569532,46.4683026,0 7.5566536,46.4684285,0 7.5563305,46.4683727,0 7.5557709,46.4686531,0 7.555443,46.468453,0 7.555369,46.46828,0 7.555448,46.468245,0 7.555318,46.468132,0 7.555263,46.468036,0 7.5552562,46.4679723,0 7.555104,46.467981,0 7.555108,46.467899,0 7.5552802,46.4677086,0 7.555261,46.4676825,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5534638,46.4774581,0 7.5534455,46.4773887,0 7.5536469,46.4769512,0 7.5541106,46.4766077,0 7.554105,46.476402,0 7.5542249,46.476267,0 7.554407,46.476171,0 7.554414,46.476057,0 7.554147,46.475643,0 7.55415,46.475587,0 7.554261,46.475443,0 7.554396,46.475107,0 7.554392,46.474963,0 7.55435,46.474903,0 7.5544589,46.4747756,0 7.554432,46.47466,0 7.554649,46.474518,0 7.554669,46.474458,0 7.554782,46.474308,0 7.5551416,46.4740944,0 7.555307,46.473841,0 7.555855,46.47362,0 7.5563039,46.4733363,0 7.5564953,46.4732154,0 7.5571264,46.4724475,0 7.5575742,46.4721367,0 7.5576179,46.4720443,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5467453,46.4607696,0 7.54649,46.46086,0 7.546379,46.460852,0 7.546278,46.460823,0 7.545332,46.460219,0 7.5452056,46.4601933,0 7.5450453,46.4602259,0 7.544678,46.460625,0 7.5446722,46.4605383,0 7.5445511,46.460897,0 7.544186,46.460965,0 7.5441541,46.4609626,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.543932,46.457905,0 7.5439224,46.4576498,0 7.5439863,46.457507,0 7.5443697,46.4571846,0 7.544414,46.457028,0 7.5444229,46.4568876,0 7.5443132,46.4567359,0 7.5441254,46.4565893,0 7.5437854,46.4563725,0 7.543601,46.456324,0 7.5433883,46.456225,0 7.543038,46.45609,0 7.5429552,46.4560635,0 7.5426803,46.4560349,0 7.5424803,46.4559119,0 7.5424073,46.4558342,0 7.5423486,46.4557438,0 7.5422303,46.4556441,0 7.542099,46.4555716,0 7.541851,46.455355,0 7.541218,46.4550142,0 7.5410982,46.454977,0 7.5409976,46.454893,0 7.540705,46.454773,0 7.540596,46.4546219,0 7.5405802,46.4545527,0 7.540341,46.454266,0 7.540211,46.454177,0 7.5399529,46.4540621,0 7.5398294,46.4540301,0 7.5397101,46.4539652,0 7.5395719,46.4538225,0 7.5396175,46.4537215,0 7.5392434,46.4536621,0 7.5390846,46.4536203,0 7.5389972,46.4535609,0 7.5386669,46.4535118,0 7.5385755,46.4534562,0 7.5383003,46.4533948,0 7.537794,46.453134,0 7.5376568,46.4530828,0 7.5373042,46.4529123,0 7.53703,46.452881,0 7.5369754,46.4528616,0 7.5368853,46.4528814,0 7.536805,46.4528509,0 7.5367046,46.452847,0 7.5366355,46.4527915,0 7.5365538,46.4526502,0 7.5364786,46.4525963,0 7.5363413,46.4525663,0 7.53618,46.452558,0 7.535878,46.452489,0 7.5356819,46.4524571,0 7.535526,46.452412,0 7.535344,46.452435,0 7.5352519,46.4524668,0 7.5347041,46.4526012,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5441541,46.4609626,0 7.5440914,46.4606083,0 7.5438826,46.4599873,0 7.5438935,46.459889,0 7.5437841,46.4595562,0 7.543707,46.459351,0 7.543697,46.458911,0 7.543855,46.4586,0 7.5438914,46.4582169,0 7.543963,46.457984,0 7.543932,46.457905,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5441541,46.4609626,0 7.5443022,46.4612074,0 7.544328,46.461298,0 7.544419,46.461445,0 7.544713,46.461762,0 7.545105,46.462076,0 7.545267,46.462233,0 7.545313,46.462295,0 7.545411,46.462463,0 7.545425,46.462521,0 7.545408,46.462596,0 7.545312,46.462754,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.545312,46.462754,0 7.545134,46.462514,0 7.5450942,46.4625956,0 7.545048,46.462549,0 7.545021,46.462594,0 7.544907,46.462658,0 7.5448176,46.4625996,0 7.544809,46.462548,0 7.544682,46.462664,0 7.5445887,46.462662,0 7.544541,46.462678,0 7.5445217,46.4627506,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5445217,46.4627506,0 7.544556,46.462863,0 7.544642,46.462973,0 7.544646,46.463071,0 7.544535,46.463181,0 7.5444536,46.4632176,0 7.544159,46.463337,0 7.544005,46.463444,0 7.543837,46.463533,0 7.543703,46.463733,0 7.543456,46.463916,0 7.54331,46.464225,0 7.543007,46.464459,0 7.542768,46.464717,0 7.542685,46.464932,0 7.54251,46.465228,0 7.542382,46.46565,0 7.542912,46.466323,0 7.543704,46.466981,0 7.543754,46.467237,0 7.543974,46.46768,0 7.543981,46.467838,0 7.543918,46.467971,0 7.544025,46.468221,0 7.544473,46.468587,0 7.544433,46.468807,0 7.5444844,46.4688834,0 7.544452,46.468936,0 7.5444486,46.4690083,0 7.544404,46.469095,0 7.544283,46.4691718,0 7.544292,46.469265,0 7.5442081,46.4693977,0 7.544297,46.4696186,0 7.544416,46.469775,0 7.5445187,46.4698185,0 7.544622,46.46995,0 7.544745,46.47001,0 7.54538,46.470662,0 7.546082,46.471594,0 7.5460595,46.4716439,0 7.546271,46.471879,0 7.546345,46.472015,0 7.546457,46.472109,0 7.5465251,46.472387,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5882589,46.4861244,0 7.5885014,46.4860791,0 7.5886623,46.4860126,0 7.5888769,46.4859609,0 7.5890164,46.4859609,0 7.5890486,46.4860644,0 7.589349,46.4861973,0 7.5894348,46.4862269,0 7.5895528,46.4862121,0 7.5898425,46.4860644,0 7.5902395,46.4860791,0 7.5903575,46.486057,0 7.5905292,46.486057,0 7.5905935,46.4861382,0 7.5905721,46.486286,0 7.5904004,46.4863746,0 7.5902609,46.4864928,0 7.5901966,46.4866258,0 7.5903146,46.4867735,0 7.5904862,46.4868695,0 7.590615,46.4868474,0 7.5907652,46.4867735,0 7.5909583,46.4866923,0 7.5911836,46.486611,0 7.5912587,46.4869139,0 7.5912821,46.4869728,0 7.5913231,46.4870764,0 7.5914948,46.4870173,0 7.5916986,46.4868991,0 7.5918939,46.4869026,0 7.592117,46.4869065,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.592399,46.488507,0 7.5926427,46.4885981,0 7.5928466,46.4886055,0 7.5930183,46.4886793,0 7.5933508,46.4886202,0 7.5935225,46.4886276,0 7.5935547,46.4886646,0 7.5936727,46.4886572,0 7.5939302,46.4887901,0 7.5941448,46.4887384,0 7.5943701,46.4887089,0 7.5945847,46.4889231,0 7.5949924,46.4890561,0 7.5952391,46.4890191,0 7.5954108,46.4889896,0 7.5956146,46.48896,0 7.5957005,46.4888345,0 7.5958292,46.488731,0 7.5959365,46.4885981,0 7.5960104,46.4885348,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.624132,46.520973,0 7.6238068,46.5208419,0 7.6234849,46.5205687,0 7.623163,46.5203989,0 7.6226695,46.5204358,0 7.62253,46.5204727,0 7.6223584,46.5204248,0 7.6221062,46.5202107,0 7.6217951,46.5200667,0 7.6214893,46.5199338,0 7.6211728,46.5198046,0 7.6209046,46.5197825,0 7.6205506,46.5197714,0 7.6202448,46.5197419,0 7.6199712,46.519753,0 7.6196923,46.5198268,0 7.6194026,46.5199744,0 7.6190968,46.5200556,0 7.6188232,46.520063,0 7.6186247,46.520004,0 7.6183672,46.5199855,0 7.618099,46.5200224,0 7.6179649,46.5200003,0 7.6177235,46.5198711,0 7.6174768,46.5197566,0 7.6172836,46.519716,0 7.6169779,46.5196717,0 7.6167794,46.5196127,0 7.6166345,46.5194909,0 7.6165219,46.5192731,0 7.6164522,46.5189815,0 7.6163931,46.518568,0 7.616377,46.5183429,0 7.6163019,46.5181103,0 7.6161088,46.5178002,0 7.6159479,46.5175234,0 7.6156797,46.5173277,0 7.6154919,46.5172022,0 7.6154651,46.5170878,0 7.6154651,46.517014,0 7.6153959,46.5168917,0 7.6151502,46.5168899,0 7.6148965,46.5169087,0 7.6146497,46.5168515,0 7.6145317,46.516774,0 7.6143708,46.5164713,0 7.6141455,46.5162314,0 7.613829,46.5159508,0 7.6133569,46.5157256,0 7.6131048,46.5156149,0 7.612917,46.5155115,0 7.6127453,46.5154524,0 7.6126273,46.5154487,0 7.6122518,46.5154487,0 7.6118602,46.5153823,0 7.6114311,46.5153528,0 7.6110234,46.5153269,0 7.6109214,46.5153454,0 7.6108034,46.5154783,0 7.6106586,46.5154894,0 7.6104869,46.5154377,0 7.6103206,46.515338,0 7.610267,46.5152236,0 7.6102992,46.5150907,0 7.6104601,46.5147547,0 7.6106103,46.5144003,0 7.6106693,46.5141862,0 7.610723,46.5140681,0 7.610841,46.5139352,0 7.6109429,46.5137063,0 7.6110638,46.5135387,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.609237,46.5005217,0 7.6090546,46.5002927,0 7.608883,46.500049,0 7.6087757,46.4998792,0 7.6086147,46.4998127,0 7.6079495,46.4996945,0 7.607574,46.4996059,0 7.6074453,46.4994951,0 7.6073487,46.4993326,0 7.6071127,46.4991628,0 7.6068552,46.499052,0 7.6067694,46.4989338,0 7.6067265,46.4985793,0 7.6067694,46.4982987,0 7.6067694,46.4981805,0 7.6066835,46.4980476,0 7.6064368,46.4979811,0 7.6060827,46.4979368,0 7.6058038,46.4979442,0 7.6054926,46.4978999,0 7.6052566,46.4978334,0 7.6050098,46.4978186,0 7.6047202,46.497826,0 7.6045778,46.4977876,0 7.6044734,46.4977595,0 7.604173,46.4976931,0 7.603937,46.497634,0 7.6037868,46.4975454,0 7.6036473,46.4974937,0 7.6035293,46.4973533,0 7.6033576,46.4972499,0 7.6031323,46.4971761,0 7.6028963,46.4971244,0 7.6027353,46.4970284,0 7.6027031,46.4969397,0 7.6025228,46.4967002,0 7.6022815,46.4966125,0 7.6021656,46.4965905,0 7.6020622,46.4965404,0 7.6017895,46.4965373,0 7.6015231,46.4965373,0 7.6013884,46.4965122,0 7.6012693,46.4965561,0 7.6008681,46.4964997,0 7.6004513,46.4963524,0 7.6001975,46.4962991,0 7.5998966,46.4962396,0 7.5995268,46.4961017,0 7.5993169,46.4960296,0 7.5989376,46.496086,0 7.5986368,46.4959669,0 7.5982795,46.4960264,0 7.5979599,46.4960452,0 7.5976026,46.4961361,0 7.5973174,46.4962333,0 7.5971733,46.496227,0 7.5971513,46.4960891,0 7.5970416,46.4959387,0 7.596816,46.4958509,0 7.5968442,46.4957225,0 7.5968849,46.4957005,0 7.5969696,46.4958353,0 7.5970573,46.4957131,0 7.5972328,46.4955407,0 7.5972516,46.4954247,0 7.5974898,46.4953652,0 7.5978314,46.4951615,0 7.5981354,46.4951239,0 7.5982607,46.495127,0 7.5983767,46.4950299,0 7.5988938,46.4949108,0 7.5991915,46.4947384,0 7.5994359,46.4947321,0 7.599624,46.4947321,0 7.5998684,46.4945378,0 7.5997681,46.4942244,0 7.5995237,46.4939424,0 7.599367,46.4938891,0 7.5991508,46.4939111,0 7.5990442,46.4937136,0 7.5990881,46.4935162,0 7.5990317,46.4933814,0 7.598853,46.4932811,0 7.5985396,46.4930116,0 7.5979849,46.4925979,0 7.5971767,46.4928758,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5557343,46.4981656,0 7.5557397,46.4982247,0 7.55567,46.4982801,0 7.555568,46.4983096,0 7.5554661,46.4983761,0 7.5554232,46.4984906,0 7.5553964,46.4986457,0 7.5553857,46.4988008,0 7.5554286,46.4989522,0 7.5554232,46.4990888,0 7.5554822,46.499159,0 7.5556753,46.499303,0 7.5558845,46.4995024,0 7.5559489,46.4995356,0 7.5560187,46.4997609,0 7.5559489,46.4997978,0 7.5560938,46.4999566,0 7.5562279,46.5000046,0 7.5562118,46.500108,0 7.5560669,46.500167,0 7.5556968,46.5001449,0 7.5555037,46.5000932,0 7.5552462,46.500108,0 7.5550048,46.5000304,0 7.554876,46.4999123,0 7.5546346,46.4999972,0 7.5545649,46.500156,0 7.5546829,46.5005068,0 7.5547473,46.5005622,0 7.5545005,46.5007431,0 7.5545381,46.5009462,0 7.5548868,46.5011013,0 7.5549941,46.5013228,0 + + + + Via Ferrata Dauberhorn + Via Ferrata Dauberhorn, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.615535,46.3933165,0 7.6153571,46.3931316,0 7.6148421,46.392954,0 7.6139623,46.39288,0 7.6134473,46.3929836,0 7.6128036,46.3930724,0 7.6122672,46.3931316,0 7.6120311,46.3928356,0 7.6117736,46.3925988,0 7.6112801,46.3924212,0 7.6111084,46.3922288,0 7.611087,46.3919624,0 7.6113016,46.391696,0 7.6112801,46.3913112,0 7.6113445,46.390956,0 7.6112586,46.39066,0 7.6112801,46.3902012,0 7.6111728,46.389846,0 7.6108295,46.38955,0 7.610572,46.3892244,0 7.610572,46.3888248,0 7.6105398,46.3886545,0 7.6103145,46.3883363,0 7.6101858,46.3880403,0 7.6097459,46.3876851,0 7.6094884,46.3875667,0 7.6091558,46.3875667,0 7.6088339,46.3874705,0 7.6088125,46.3873743,0 7.609188,46.3874261,0 7.6093382,46.3874557,0 7.6095742,46.3874335,0 7.6099497,46.3874853,0 7.6099605,46.3876185,0 7.6099712,46.3881735,0 7.6098854,46.3883659,0 7.6095528,46.3885953,0 7.6094777,46.3884399,0 7.6094884,46.3880847,0 7.6094884,46.3879071,0 7.6096279,46.3873151,0 7.6099712,46.3873077,0 7.6101428,46.3876925,0 7.6101321,46.3885065,0 7.6099175,46.3892762,0 7.6095742,46.3900384,0 7.6088125,46.3906748,0 7.6087481,46.3897424,0 7.6089198,46.3888692,0 7.6091129,46.3883511,0 7.609542,46.3869968,0 7.609424,46.3867526,0 7.6091021,46.38676,0 7.6085121,46.3868858,0 7.6081687,46.3872855,0 7.6079327,46.3880329,0 7.6077289,46.3895722,0 7.6074821,46.3904454,0 7.6072139,46.3912964,0 7.606538,46.390068,0 7.6069393,46.3852733,0 7.6064139,46.3847204,0 7.605748,46.3839582,0 7.6053188,46.3836037,0 7.6041132,46.383141,0 7.6048643,46.3836591,0 7.6043278,46.3840735,0 7.6056797,46.3849913,0 7.6043064,46.3843844,0 + + + + Via Ferrata Dauberhorn + Via Ferrata Dauberhorn, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6043064,46.3843844,0 7.6048126,46.3847763,0 7.6042547,46.3845839,0 7.6050486,46.3850872,0 7.6058425,46.3852944,0 7.6066794,46.3852944,0 7.6065292,46.3857976,0 7.6058425,46.3860789,0 7.6052846,46.3862713,0 7.6052632,46.3864785,0 7.6045551,46.3867005,0 7.6042976,46.3868781,0 7.6040186,46.3870409,0 7.6034393,46.3870853,0 7.6030959,46.3870705,0 7.6028384,46.3874554,0 7.6026829,46.3875479,0 7.6022051,46.3877699,0 7.6020231,46.3879142,0 + + + + Lämmernweg süd + Lämmernweg süd, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5773607,46.3980323,0 7.5767505,46.3977455,0 7.5767827,46.3975531,0 7.5771046,46.3971092,0 7.5777805,46.3966134,0 7.578671,46.3962953,0 7.5799799,46.3960807,0 7.5813317,46.3957403,0 7.5844109,46.3950966,0 7.5849366,46.394993,0 7.5874471,46.3949782,0 7.5887775,46.3952742,0 7.5891478,46.3953803,0 7.5896036,46.3955109,0 7.5912022,46.3955923,0 7.5928438,46.3956663,0 7.5953221,46.3960955,0 7.5978327,46.3964729,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4394297,46.5665636,0 7.4395718,46.5667101,0 7.4396474,46.5668294,0 7.4396594,46.5670283,0 7.43954,46.5671159,0 7.4394047,46.5671875,0 7.4392894,46.5672074,0 7.4391501,46.5671954,0 7.4389114,46.5673228,0 7.4388159,46.5673267,0 7.4387125,46.567275,0 7.4385454,46.5672352,0 7.4383464,46.5672551,0 7.4380719,46.5673307,0 7.4378372,46.5674421,0 7.4374911,46.5675217,0 7.4371967,46.5675575,0 7.4370017,46.5675336,0 7.4367789,46.5676848,0 7.4365203,46.5677087,0 7.4361185,46.5676768,0 7.4359076,46.567832,0 7.435649,46.5677922,0 7.4354302,46.5678758,0 7.4352074,46.5680031,0 7.4350443,46.5679633,0 7.4344435,46.5681304,0 7.4341173,46.5683413,0 7.4341213,46.5684407,0 7.4340775,46.5686038,0 7.433791,46.5688664,0 7.4334568,46.5690216,0 7.4333256,46.5691887,0 7.4332579,46.5693836,0 7.4332221,46.5695706,0 7.4329834,46.5699486,0 7.4325935,46.5701714,0 7.4324224,46.57043,0 7.4323389,46.5706607,0 7.432323,46.5708119,0 7.4320246,46.5709154,0 7.4319888,46.5710069,0 7.4320485,46.5712058,0 7.4320087,46.5712456,0 7.431384,46.5713013,0 7.4307395,46.5714246,0 7.4300552,46.5712933,0 7.4297688,46.5712615,0 7.4294624,46.5712973,0 7.4290526,46.5715161,0 7.4283604,46.5715877,0 7.4282728,46.5715479,0 7.4280023,46.5715798,0 7.4278113,46.5716554,0 7.4274175,46.5716713,0 7.4271111,46.5717349,0 7.4268724,46.5719498,0 7.4266138,46.5720055,0 7.4264746,46.5720055,0 7.4259096,46.5722163,0 7.4258221,46.5722044,0 7.4256749,46.5721049,0 7.425472,46.5719975,0 7.4253486,46.5719975,0 7.4250622,46.5720612,0 7.4247757,46.5721049,0 7.4246325,46.5721686,0 7.4244216,46.5722124,0 7.4240874,46.5722402,0 7.4239562,46.5722879,0 7.4238408,46.5724312,0 7.4236856,46.5724789,0 7.4235185,46.5724471,0 7.4231963,46.5723635,0 7.4231008,46.5724988,0 7.4231286,46.5728648,0 7.4230928,46.5729404,0 7.4230212,46.5729802,0 7.4229257,46.5729524,0 7.4227706,46.5728211,0 7.4226114,46.5727296,0 7.4224284,46.5726341,0 7.4222096,46.572471,0 7.4215889,46.5722482,0 7.4215452,46.5723277,0 7.4215929,46.5723834,0 7.4215571,46.5727773,0 7.4214815,46.5728728,0 7.4213343,46.5729484,0 7.4211274,46.5729325,0 7.4209086,46.5729245,0 7.420646,46.5727892,0 7.420467,46.5727057,0 7.4202283,46.5726261,0 7.4197151,46.5725465,0 7.419548,46.5725028,0 7.419353,46.5725426,0 7.4192615,46.5724908,0 7.4188477,46.5723596,0 7.4185573,46.5721845,0 7.4179088,46.5719179,0 7.4174234,46.5718185,0 7.4172126,46.571727,0 7.416954,46.5717111,0 7.4165123,46.5716076,0 7.4162418,46.5714405,0 7.4161264,46.5713928,0 7.4156689,46.5715042,0 7.4153228,46.5715559,0 7.4149886,46.571528,0 7.4146743,46.571544,0 7.4142366,46.5714684,0 7.4134688,46.5716116,0 7.4130749,46.5717031,0 7.4125378,46.5717707,0 7.4118853,46.5718145,0 7.4110339,46.5716872,0 7.4109225,46.5716315,0 7.4106321,46.5716713,0 7.4103218,46.5716753,0 7.4097767,46.5716156,0 7.4092555,46.5715241,0 7.408607,46.5713689,0 7.408249,46.5712655,0 7.4079745,46.5712177,0 7.4076681,46.5710307,0 7.4073777,46.5708955,0 7.4071628,46.5707363,0 7.4070594,46.5707562,0 7.4071589,46.5708517,0 7.407314,46.5709711,0 7.4075209,46.5712575,0 7.407688,46.5714286,0 7.4078829,46.5716434,0 7.4081057,46.5718543,0 7.4081654,46.5720254,0 7.4081376,46.5721049,0 7.4079585,46.5719935,0 7.407684,46.5718782,0 7.4070793,46.5717906,0 7.4064666,46.5714843,0 7.406021,46.5713172,0 7.4052651,46.5711382,0 7.404915,46.5710228,0 7.4045649,46.5709432,0 7.4043023,46.5708437,0 7.4040039,46.5706846,0 7.4038567,46.5706528,0 7.4035344,46.5704578,0 7.4032838,46.5704459,0 7.4031525,46.5702549,0 7.4031008,46.5701873,0 7.4028024,46.5699048,0 7.4027268,46.5698969,0 7.4023329,46.5696462,0 7.4020425,46.5695348,0 7.4018197,46.5694871,0 7.401569,46.5693279,0 7.4014815,46.56932,0 7.4013423,46.5692404,0 7.4011195,46.5689937,0 7.4010399,46.5689977,0 7.4007733,46.5687789,0 7.4006858,46.5686357,0 7.4006062,46.5684288,0 7.4004391,46.5683094,0 7.4001487,46.5681344,0 7.3999975,46.5679593,0 7.3998662,46.5678758,0 7.3997509,46.5677524,0 7.3995639,46.567641,0 7.3993451,46.5674302,0 7.3990148,46.5673029,0 7.3984857,46.5671079,0 7.3981833,46.5669528,0 7.3980083,46.5668851,0 7.3978571,46.5668016,0 7.3973797,46.5667817,0 7.3971051,46.5666544,0 7.3968147,46.5664793,0 7.3964208,46.566344,0 7.3961543,46.5663241,0 7.3961145,46.5662764,0 7.3956251,46.5661809,0 7.3953745,46.5661093,0 7.3949528,46.5660536,0 7.3946385,46.5659939,0 7.3942446,46.5658825,0 7.3938348,46.565787,0 7.3933614,46.5656876,0 7.3930789,46.5655921,0 7.3927089,46.5654767,0 7.3922474,46.5653932,0 7.3918774,46.5653454,0 7.3916745,46.565238,0 7.3916387,46.5650073,0 7.3913045,46.5648402,0 7.3911772,46.5648521,0 7.3907833,46.564681,0 7.3905883,46.5646651,0 7.3906082,46.5648123,0 7.3909146,46.565047,0 7.391022,46.5653733,0 7.3909544,46.5655563,0 7.3911175,46.5658229,0 7.3915392,46.5658865,0 7.3919211,46.5661133,0 7.3919092,46.5663043,0 7.3917182,46.5663281,0 7.3913244,46.5662167,0 7.3909026,46.5661929,0 7.3904849,46.5662525,0 7.3901452,46.5663573,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4920336,46.5215194,0 7.4920087,46.5216089,0 7.4916557,46.5219819,0 7.4912678,46.5220963,0 7.491044,46.5220913,0 7.4906312,46.522335,0 7.4903278,46.5224941,0 7.4898653,46.5229069,0 7.4892835,46.5233495,0 7.4883087,46.5239214,0 7.4876324,46.5242944,0 7.4875777,46.5244237,0 7.4875578,46.5246624,0 7.4874981,46.5247967,0 7.4872644,46.524931,0 7.4871052,46.524921,0 7.4868019,46.5248116,0 7.4862598,46.524747,0 7.4861802,46.5247768,0 7.4861454,46.524926,0 7.4861554,46.5253239,0 7.4860261,46.5256571,0 7.4859564,46.5257714,0 7.4858968,46.5258112,0 7.485668,46.525851,0 7.4854392,46.5258361,0 7.4852154,46.5258013,0 7.4850463,46.5258063,0 7.4848424,46.5258958,0 7.4844297,46.5260201,0 7.484191,46.5260002,0 7.4837782,46.5262041,0 7.483445,46.5262787,0 7.4831466,46.5262091,0 7.4827189,46.5262588,0 7.4817392,46.5265423,0 7.4814607,46.5266964,0 7.4812469,46.5268854,0 7.4807297,46.5270744,0 7.480302,46.5271788,0 7.4800981,46.5273479,0 7.479556,46.5275717,0 7.4792775,46.5276612,0 7.4791482,46.5277607,0 7.4786608,46.5278353,0 7.4783127,46.5279546,0 7.4781536,46.5281536,0 7.4776612,46.5283575,0 7.4771142,46.5283973,0 7.4767561,46.5285116,0 7.476224,46.528626,0 7.4753935,46.5286807,0 7.4750951,46.5287056,0 7.4749906,46.52882,0 7.4750454,46.5289642,0 7.4750006,46.5291482,0 7.4748713,46.529362,0 7.4747171,46.5294814,0 7.4744436,46.5296008,0 7.4740706,46.5297301,0 7.4737921,46.5298444,0 7.4731953,46.5298942,0 7.4731207,46.5298842,0 7.472882,46.5300334,0 7.4728025,46.5302025,0 7.472703,46.5303169,0 7.4719023,46.5305705,0 7.4717432,46.5306998,0 7.4716537,46.5310579,0 7.4713603,46.5315602,0 7.4712409,46.5316696,0 7.4711116,46.5316994,0 7.4711912,46.531784,0 7.4711812,46.5318834,0 7.4712359,46.5319481,0 7.4713652,46.531968,0 7.471589,46.5321122,0 7.471599,46.5321768,0 7.4715642,46.5323111,0 7.4716338,46.5325001,0 7.4716935,46.5325299,0 7.4716785,46.5326095,0 7.4715741,46.5327189,0 7.4715393,46.5328482,0 7.4715244,46.5329676,0 7.4715642,46.5331217,0 7.4716835,46.5332908,0 7.4716933,46.5334754,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4751759,46.5539538,0 7.475336,46.5540147,0 7.4755769,46.5537815,0 7.4758178,46.5538048,0 7.4759654,46.5540224,0 7.4758722,46.5540768,0 7.4759499,46.5545431,0 7.4757789,46.5555377,0 7.4757945,46.5557786,0 7.4757246,46.5560117,0 7.4758023,46.5561516,0 7.4757028,46.5567762,0 7.4756876,46.5570949,0 7.4758849,46.5573377,0 7.475976,46.5578234,0 7.4759608,46.5582331,0 7.4760974,46.5586126,0 7.4763554,46.5587491,0 7.4763554,46.5589464,0 7.4766134,46.5592803,0 7.4772205,46.559599,0 7.4774633,46.5598571,0 7.4778882,46.5599785,0 7.47804,46.5601606,0 7.4781007,46.5604489,0 7.4784498,46.5608132,0 7.4787685,46.5611167,0 7.4793452,46.5616479,0 7.4800282,46.5620425,0 7.4803621,46.5621639,0 7.4807111,46.562513,0 7.4810754,46.5630442,0 7.48147,46.5633477,0 7.4816369,46.5636816,0 7.4821226,46.5641673,0 7.4826386,46.5644556,0 7.483276,46.5651841,0 7.4837465,46.5655939,0 7.4843839,46.5659885,0 7.4848392,46.5666107,0 7.4854159,46.567066,0 7.4855981,46.5674303,0 7.4862658,46.5682195,0 7.4866453,46.56869,0 7.4867515,46.5689176,0 7.4869488,46.569206,0 7.4868881,46.5694792,0 7.4866453,46.5697675,0 7.4867667,46.5700407,0 7.4867375,46.5701979,0 7.4866159,46.5701456,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4528183,46.5206213,0 7.4533716,46.5207021,0 7.4542419,46.5206399,0 7.4545279,46.520584,0 7.4548014,46.5206151,0 7.4551371,46.5207394,0 7.4557836,46.5207891,0 7.4566787,46.5207829,0 7.4572817,46.5208202,0 7.4578536,46.5207954,0 7.4583945,46.5206897,0 7.4586369,46.5206772,0 7.4588296,46.5207145,0 7.4591964,46.5206959,0 7.4596502,46.5206586,0 7.4601413,46.5207394,0 7.4604024,46.5207208,0 7.4610924,46.5204721,0 7.4613908,46.5203105,0 7.4618881,46.5202421,0 7.4627025,46.5198069,0 7.4632174,46.5198895,0 7.4636909,46.5198059,0 7.4639455,46.5197423,0 7.4643274,46.5195314,0 7.4645502,46.5194877,0 7.4647293,46.5193643,0 7.4653181,46.519245,0 7.4656483,46.5191933,0 7.4657677,46.519249,0 7.4660143,46.5192211,0 7.4662252,46.5191535,0 7.4665793,46.5191336,0 7.4671243,46.5190222,0 7.4672715,46.5190659,0 7.4677728,46.5191376,0 7.4680951,46.519233,0 7.4684969,46.5192927,0 7.4687317,46.5193484,0 7.469046,46.5193962,0 7.4693443,46.5193484,0 7.4697104,46.5193604,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5644603,46.4461059,0 7.5645107,46.4465933,0 7.5642589,46.446939,0 7.5639358,46.4470668,0 7.5637291,46.4472922,0 7.56347,46.4474613,0 7.5637404,46.4476568,0 7.5639733,46.447871,0 7.5642364,46.44801,0 7.5643529,46.4480589,0 7.5643905,46.4482881,0 7.5643341,46.4484234,0 7.5645483,46.448709,0 7.5648114,46.4488029,0 7.5651457,46.4489852,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5614623,46.4593025,0 7.5611273,46.4593835,0 7.560775,46.4592943,0 7.5603616,46.4591768,0 7.5601173,46.4593272,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6045778,46.4977876,0 7.6046204,46.4977082,0 7.6049205,46.4975268,0 7.6050087,46.4974899,0 7.6051066,46.4975268,0 7.6050665,46.4973744,0 7.6049991,46.4971754,0 7.6049301,46.4970679,0 7.6047729,46.4969989,0 7.6044584,46.4969508,0 7.6042706,46.4969203,0 7.6042706,46.4967968,0 7.6044664,46.4966941,0 7.6044532,46.4966183,0 7.604413,46.4964618,0 7.6044291,46.4962673,0 7.6043749,46.4958962,0 7.6043509,46.4956034,0 7.6043288,46.4952464,0 7.6041383,46.4949355,0 7.6040039,46.4946908,0 7.6038595,46.4943719,0 7.603683,46.4940329,0 7.6035305,46.4937601,0 7.6033761,46.4934713,0 7.6033059,46.4931384,0 7.6030772,46.493014,0 7.6028792,46.4927175,0 7.602652,46.4923963,0 7.6025894,46.4922122,0 7.60237,46.4919497,0 7.6021075,46.4915932,0 7.6019273,46.4914444,0 7.6019195,46.4913464,0 7.6017354,46.4910056,0 7.6014985,46.4907235,0 7.6012378,46.4904267,0 7.6011402,46.490361,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.561897,46.4519024,0 7.562231,46.4519425,0 7.5622941,46.4520086,0 7.5625157,46.4520579,0 7.5627528,46.4519979,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.560335,46.449238,0 7.5600857,46.4492598,0 7.5598715,46.449117,0 7.5596084,46.4490493,0 7.5593942,46.4489366,0 7.5593266,46.4488765,0 7.5591725,46.4486059,0 7.5593792,46.4484631,0 7.5597023,46.4483128,0 7.5599917,46.4481512,0 7.5604201,46.4480836,0 7.5608598,46.4481813,0 7.560985,46.448126,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6042768,46.486003,0 7.6044596,46.4859007,0 7.6047448,46.4859446,0 7.6050206,46.4858788,0 7.6052901,46.4858161,0 7.6055001,46.485719,0 7.605633,46.4855823,0 7.6054326,46.4855797,0 7.6054207,46.4855607,0 7.6056389,46.4855403,0 7.6056593,46.4855377,0 7.6058197,46.4854916,0 7.6059853,46.4853622,0 7.6061485,46.4851949,0 7.6063972,46.4851147,0 7.6065223,46.4850104,0 7.6065753,46.4848692,0 7.606816,46.4848274,0 7.6069893,46.4848066,0 7.6069796,46.4846285,0 7.606771,46.4844584,0 7.6065801,46.4842642,0 7.6063843,46.484115,0 7.606256,46.4839337,0 7.6060855,46.4838297,0 7.6060184,46.4837626,0 7.6060141,46.4837445,0 7.6059921,46.4837075,0 7.6058481,46.4835616,0 7.6058982,46.4834733,0 7.6056119,46.4834351,0 7.6054002,46.4833029,0 7.6053025,46.4831814,0 7.6052052,46.4830648,0 7.6050153,46.4830218,0 7.6047188,46.4829161,0 7.6046228,46.4829174,0 7.6045128,46.4828032,0 7.6044513,46.4827961,0 7.6043955,46.4827634,0 7.6044703,46.4828142,0 7.6045465,46.482924,0 7.6044778,46.4829415,0 7.6043781,46.4828328,0 7.6043175,46.4827661,0 7.6042463,46.4827656,0 7.6041887,46.4826955,0 7.6040464,46.4825943,0 7.6040113,46.4825787,0 7.6039903,46.4825597,0 7.6038715,46.4825311,0 7.6038475,46.482703,0 7.6039627,46.4827992,0 7.6040605,46.4830684,0 7.6041515,46.4832651,0 7.6041476,46.4833395,0 7.6040977,46.483453,0 7.6039332,46.4834921,0 7.6039313,46.4834285,0 7.6040497,46.4833297,0 7.6040067,46.4832338,0 7.6039313,46.4831124,0 7.6039078,46.4830821,0 7.603763,46.4829225,0 7.6036245,46.4827777,0 7.6037187,46.4825648,0 7.6038679,46.4823875,0 7.6037994,46.4823287,0 7.6038178,46.4822847,0 7.6039364,46.4821673,0 7.6037835,46.4818871,0 7.6037431,46.4817036,0 7.603841,46.4815727,0 7.6038643,46.4815482,0 7.6039425,46.4814369,0 7.6038936,46.4812669,0 7.6039181,46.4811323,0 7.6038031,46.4809953,0 7.6036538,46.4807665,0 7.6036844,46.4806895,0 7.6037015,46.4804925,0 7.6038973,46.4803298,0 7.6039291,46.4800937,0 7.6038899,46.4799799,0 7.603956,46.479898,0 7.6040637,46.4797976,0 7.6042545,46.4797316,0 7.6041982,46.4795677,0 7.6042007,46.4795187,0 7.6041383,46.4792924,0 7.6042166,46.4790942,0 7.6045198,46.4787531,0 7.6047549,46.4784167,0 7.6049491,46.4781901,0 7.6050274,46.4781117,0 7.6049512,46.4779239,0 7.6049965,46.4777746,0 7.6050332,46.4775887,0 7.6050863,46.477561,0 7.60505,46.4773811,0 7.6049021,46.4772892,0 7.6047002,46.4773577,0 7.6047076,46.4775228,0 7.60471,46.4776452,0 7.6046109,46.4778287,0 7.6045338,46.4776733,0 7.6044727,46.4775265,0 7.6045718,46.477392,0 7.6046623,46.4773014,0 7.6049033,46.4771399,0 7.605214,46.4770372,0 7.6053486,46.4770335,0 7.6053364,46.4767656,0 7.6050538,46.4765845,0 7.6047027,46.4765907,0 7.6043295,46.4765246,0 7.6042133,46.4764573,0 7.6040066,46.4762726,0 7.6039821,46.4761698,0 7.6040629,46.4758762,0 7.6039234,46.4757062,0 7.6037375,46.475568,0 7.6034536,46.4754444,0 7.6030976,46.4754884,0 7.6028175,46.4755043,0 7.6026658,46.4754676,0 7.602393,46.4754187,0 7.6020468,46.4753686,0 7.601785,46.4753172,0 7.6017104,46.4752792,0 7.6017006,46.4750994,0 7.6018303,46.4748584,0 7.6018621,46.4746162,0 7.601703,46.4745061,0 7.60144,46.4744156,0 7.601248,46.4743128,0 7.6008565,46.47427,0 7.6007966,46.4742431,0 7.6007293,46.4742162,0 7.6006033,46.4741648,0 7.6005372,46.47427,0 7.6003415,46.4743948,0 7.5999989,46.474544,0 7.5998839,46.4746052,0 7.5997023,46.4745672,0 7.5996295,46.4745073,0 7.5995414,46.4745061,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6073503,46.5155013,0 7.6071538,46.515465,0 7.606817,46.5154259,0 7.6065284,46.5153838,0 7.6061659,46.5153941,0 7.60594,46.5155194,0 7.6059144,46.5154506,0 7.6057305,46.5154896,0 7.6054882,46.5154968,0 7.6052941,46.5154126,0 7.6049911,46.5153746,0 7.6047252,46.5152986,0 7.6044397,46.5153243,0 7.6041881,46.5153089,0 7.603904,46.5152803,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5109074,46.4975939,0 7.5106958,46.4976333,0 7.5103212,46.4976753,0 7.510222,46.4976293,0 7.5098982,46.4976558,0 7.5096505,46.4976143,0 7.5095384,46.4976181,0 7.5091324,46.4975663,0 7.5088809,46.497604,0 7.5085719,46.4976313,0 7.5082007,46.4977481,0 7.5079323,46.4977971,0 7.5077203,46.4979365,0 7.5074575,46.4980448,0 7.507172,46.4981654,0 7.5070421,46.498269,0 7.5068461,46.4983538,0 7.5066002,46.4983557,0 7.5064655,46.4984311,0 7.5062762,46.498416,0 7.5062112,46.4984424,0 7.5060416,46.4984716,0 7.5059521,46.4985469,0 7.5057421,46.4986138,0 7.5055384,46.4987028,0 7.5053641,46.4987009,0 7.505203,46.4987386,0 7.5050561,46.4986877,0 7.5049346,46.4985756,0 7.5048093,46.4985426,0 7.5046887,46.4987404,0 7.5046925,46.4988422,0 7.5046143,46.4989044,0 7.5045493,46.4988328,0 7.504423,46.4987762,0 7.5041934,46.4987215,0 7.504058,46.4986995,0 7.5040786,46.4985685,0 7.5039829,46.4985596,0 7.5037725,46.4985479,0 7.5036621,46.4985258,0 7.5035502,46.4985199,0 7.5034943,46.4985184,0 7.5031999,46.4985287,0 7.5030115,46.4984581,0 7.5028319,46.498355,0 7.5027097,46.4982844,0 7.5025891,46.4982505,0 7.5024065,46.4984066,0 7.5022402,46.4985802,0 7.5021254,46.4987245,0 7.5021195,46.4988496,0 7.5020165,46.4989394,0 7.5020224,46.4991616,0 7.5021328,46.4993324,0 7.5021211,46.4993741,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5415101,46.4829137,0 7.5411092,46.4830045,0 7.5405377,46.4830449,0 7.5399432,46.4831921,0 7.5395854,46.4833624,0 7.5389331,46.4834865,0 7.5383761,46.4836019,0 7.537822,46.4836856,0 7.5371957,46.4838472,0 7.5368933,46.4838149,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5605804,46.4538416,0 7.5606075,46.4535339,0 7.5606906,46.4534892,0 7.5606227,46.4533264,0 7.5607983,46.4530402,0 7.5605217,46.4530282,0 7.5602932,46.4529945,0 7.5601489,46.4529392,0 7.5598771,46.452997,0 7.5600647,46.4528719,0 7.5600527,46.4527228,0 7.559995,46.4525761,0 7.5599204,46.4524606,0 7.5598411,46.4522947,0 7.5597232,46.4521792,0 7.5596078,46.4520566,0 7.5597112,46.4519026,0 7.5597881,46.4518401,0 7.5598699,46.4518281,0 7.55993,46.4518088,0 7.5599325,46.4517247,0 7.5598755,46.4516727,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5952104,46.4388413,0 7.5950256,46.4384877,0 7.5948831,46.4383082,0 7.5947934,46.4380997,0 7.5943235,46.4378331,0 7.5942576,46.4376351,0 7.5943499,46.4373606,0 7.5942655,46.4370122,0 7.5942971,46.4366611,0 7.5941916,46.4363998,0 7.5938564,46.4360514,0 7.5936689,46.4358772,0 7.5934235,46.4354338,0 7.5932202,46.4351381,0 7.5930117,46.4349323,0 7.5925736,46.4346314,0 7.5923492,46.4345284,0 7.5919374,46.4340348,0 7.5918899,46.4339108,0 7.5919454,46.433726,0 7.5918477,46.4333697,0 7.5916233,46.4332747,0 7.5914307,46.4327969,0 7.5913409,46.4325145,0 7.5913013,46.4322426,0 7.5912459,46.4320011,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5296583,46.4300374,0 7.5292858,46.4300524,0 7.5290588,46.4300577,0 7.5289348,46.4300867,0 7.5287368,46.4300762,0 7.5285785,46.4301184,0 7.5285204,46.4302715,0 7.5283462,46.4303111,0 7.5282274,46.4304193,0 7.5280031,46.4305117,0 7.5277813,46.4306278,0 7.5275095,46.4308363,0 7.5272006,46.4309762,0 7.5269367,46.4311716,0 7.5266701,46.4313062,0 7.5262715,46.431813,0 7.5259997,46.4321112,0 7.525873,46.4322221,0 7.5256011,46.4324781,0 7.5255826,46.4325599,0 7.5254058,46.4326101,0 7.5254111,46.4327157,0 7.5252289,46.4327447,0 7.5251392,46.4328793,0 7.5251366,46.4329374,0 7.5250389,46.4329691,0 7.5250811,46.4330694,0 7.5249967,46.4331063,0 7.5249967,46.4331565,0 7.524928,46.4332568,0 7.5249175,46.4333096,0 7.524775,46.4332884,0 7.5247281,46.4333904,0 7.5245886,46.433383,0 7.524138,46.4334496,0 7.5238591,46.4335457,0 7.5237089,46.4336123,0 7.5234836,46.4336862,0 7.5233065,46.4337749,0 7.5231939,46.4338415,0 7.523033,46.4339043,0 7.5227218,46.4340411,0 7.5225931,46.4341409,0 7.5225394,46.4342075,0 7.5223624,46.4343221,0 7.5223088,46.4344441,0 7.5221961,46.4345291,0 7.5220942,46.4346327,0 7.5219815,46.4347362,0 7.5215148,46.4349654,0 7.5211608,46.4351613,0 7.5210267,46.4352648,0 7.5209087,46.4353055,0 7.5208228,46.4353277,0 7.5207477,46.4353758,0 7.5206619,46.4353721,0 7.520619,46.4353351,0 7.5206136,46.4353129,0 7.5205707,46.4352685,0 7.520501,46.4352981,0 7.5204634,46.4353203,0 7.5204205,46.4353129,0 7.520399,46.4352685,0 7.5203829,46.435239,0 7.5203883,46.4352094,0 7.5204312,46.4351428,0 7.5204527,46.4351022,0 7.5204473,46.4350763,0 7.5203937,46.4350652,0 7.5203025,46.4350874,0 7.5202542,46.4350837,0 7.5201791,46.4350837,0 7.5200879,46.4351133,0 7.5200503,46.4351281,0 7.5199538,46.4351281,0 7.519884,46.435165,0 7.5198411,46.4351872,0 7.5198036,46.4352242,0 7.5197446,46.4352205,0 7.5197124,46.4351576,0 7.5197285,46.435117,0 7.519766,46.4350615,0 7.5197177,46.435043,0 7.519648,46.4350615,0 7.5196051,46.43508,0 7.5195783,46.435043,0 7.5195944,46.4350024,0 7.5195783,46.4349765,0 7.51953,46.4349654,0 7.519471,46.4350024,0 7.5194173,46.4350098,0 7.5193959,46.4349876,0 7.5193637,46.4349617,0 7.5193047,46.4349728,0 7.5192457,46.434958,0 7.5192028,46.4349173,0 7.5192135,46.4348804,0 7.5191813,46.4348397,0 7.5191813,46.4347916,0 7.5191438,46.434751,0 7.519074,46.4347399,0 7.5189936,46.4347399,0 7.5189292,46.4347251,0 7.5188594,46.4347288,0 7.5188112,46.4347657,0 7.5187682,46.4348212,0 7.5187146,46.4348508,0 7.5186341,46.4348508,0 7.5185161,46.4348582,0 7.5184625,46.4348841,0 7.5184625,46.4349432,0 7.5185054,46.4350282,0 7.5185537,46.4350874,0 7.5185751,46.4351355,0 7.5185751,46.435202,0 7.5185215,46.4352427,0 7.5184464,46.4352575,0 7.5182586,46.4352612,0 7.5180441,46.4352722,0 7.517808,46.4353499,0 7.5176471,46.4354275,0 7.5175827,46.4354793,0 7.5175022,46.4355052,0 7.5174915,46.4354719,0 7.5175076,46.4354386,0 7.5174325,46.4354608,0 7.5173628,46.4354571,0 7.5173091,46.4354904,0 7.5172662,46.4354682,0 7.5173252,46.4354349,0 7.5172769,46.4354201,0 7.5172072,46.4354386,0 7.5171482,46.4354608,0 7.5171267,46.4355015,0 7.5171106,46.4356272,0 7.5170731,46.4357122,0 7.5169819,46.4357676,0 7.5168961,46.4357676,0 7.516778,46.435812,0 7.5166761,46.4358305,0 7.5165635,46.4358083,0 7.5164991,46.4357972,0 7.5164079,46.4358231,0 7.5162684,46.4358342,0 7.5162041,46.4358896,0 7.5161611,46.4359451,0 7.5161772,46.4360005,0 7.5161504,46.4360634,0 7.5161129,46.436141,0 7.5160646,46.4362335,0 7.5160914,46.4362815,0 7.5160109,46.4363555,0 7.515968,46.4364183,0 7.5159251,46.4364922,0 7.5158607,46.4365181,0 7.5157749,46.4364738,0 7.5157105,46.4363702,0 7.515614,46.436263,0 7.515555,46.4362409,0 7.5155174,46.4362889,0 7.5155174,46.4363629,0 7.5155442,46.4364331,0 7.515555,46.4365033,0 7.5155496,46.4365736,0 7.5155925,46.4366253,0 7.5156408,46.4367067,0 7.5156676,46.4367843,0 7.5156462,46.436825,0 7.5155657,46.4368952,0 7.5155389,46.4369618,0 7.5155764,46.4370283,0 7.5155657,46.4370837,0 7.5155281,46.4370468,0 7.5154691,46.4369913,0 7.5154584,46.4370431,0 7.5154048,46.4370505,0 7.5153511,46.436995,0 7.5153457,46.4370579,0 7.5153779,46.437117,0 7.5153726,46.4371688,0 7.5153511,46.4371947,0 7.5152814,46.4371836,0 7.5152277,46.4372353,0 7.5151848,46.4372575,0 7.5151526,46.4373093,0 7.5151044,46.437313,0 7.5151151,46.4372538,0 7.5150507,46.4372575,0 7.5150078,46.4372908,0 7.5149434,46.437276,0 7.5149434,46.4372131,0 7.514922,46.4371799,0 7.514863,46.4371836,0 7.5148254,46.4372316,0 7.5148147,46.4372871,0 7.5147878,46.4372575,0 7.5147718,46.4372316,0 7.5147449,46.4373203,0 7.5147449,46.4374202,0 7.514702,46.4375422,0 7.5146001,46.4376679,0 7.5144928,46.4377159,0 7.5144231,46.4377085,0 7.5142085,46.4377566,0 7.5141441,46.4377972,0 7.5141173,46.4378342,0 7.5140315,46.4378675,0 7.5139564,46.4379155,0 7.5138544,46.4379377,0 7.5137096,46.4379747,0 7.5135862,46.4380671,0 7.5134736,46.4380597,0 7.5132107,46.4380819,0 7.5131088,46.438141,0 7.5130337,46.4382113,0 7.5129639,46.4382298,0 7.5128084,46.438215,0 7.5125884,46.438263,0 7.5123631,46.4383185,0 7.5121915,46.4383148,0 7.51217,46.4383444,0 7.5120466,46.4383739,0 7.5119501,46.4383739,0 7.511757,46.4383776,0 7.5116952,46.4384008,0 7.5115799,46.4384442,0 7.5114083,46.4385662,0 7.5112956,46.438666,0 7.5110864,46.4387067,0 7.5109255,46.4387436,0 7.5108128,46.4388508,0 7.5107109,46.4389987,0 7.5106197,46.4390431,0 7.5105285,46.4392242,0 7.510389,46.4394017,0 7.510094,46.4396382,0 7.5098633,46.439812,0 7.5097077,46.4399155,0 7.5096434,46.4400523,0 7.5094395,46.4402223,0 7.5090587,46.4404256,0 7.5088387,46.4405365,0 7.5085919,46.4405809,0 7.5084096,46.4406068,0 7.508254,46.4406511,0 7.5080823,46.4406622,0 7.5078892,46.4406585,0 7.5077015,46.4406844,0 7.5075781,46.4407362,0 7.5075244,46.4408138,0 7.5075191,46.4409025,0 7.507503,46.440969,0 7.5074279,46.4410393,0 7.5072723,46.4411206,0 7.5071704,46.4411724,0 7.507047,46.4412093,0 7.5069343,46.4412943,0 7.5068217,46.4413276,0 7.5067037,46.4413128,0 7.5064676,46.4412907,0 7.506119,46.4413054,0 7.5058132,46.4413239,0 7.5056415,46.4413387,0 7.5054323,46.4412943,0 7.5052714,46.4412463,0 7.5051265,46.4412352,0 7.5049656,46.4412685,0 7.5048529,46.4413054,0 7.5047296,46.441372,0 7.5045901,46.4413979,0 7.5045204,46.4414311,0 7.5045311,46.4414829,0 7.5046062,46.4414829,0 7.504633,46.4415198,0 7.5047671,46.4415235,0 7.5048905,46.4415642,0 7.50503,46.4415901,0 7.505148,46.4415605,0 7.5052285,46.4415494,0 7.505325,46.4415605,0 7.5053357,46.4415975,0 7.5052928,46.4416492,0 7.505148,46.4417527,0 7.5050407,46.4417971,0 7.5049173,46.4419191,0 7.5047671,46.4420558,0 7.5046491,46.4421409,0 7.5045043,46.4421593,0 7.5043809,46.4421002,0 7.5043004,46.4420374,0 7.5042468,46.4420004,0 7.5040644,46.4419893,0 7.5037908,46.4419154,0 7.5037532,46.4418636,0 7.5036674,46.441834,0 7.503603,46.4418045,0 7.5034367,46.4417638,0 7.5033402,46.4417084,0 7.5031685,46.4416492,0 7.5030451,46.441579,0 7.5028413,46.4415346,0 7.5026535,46.4415161,0 7.5024765,46.4415161,0 7.5023746,46.4415346,0 7.502219,46.4415568,0 7.5017952,46.4415568,0 7.5013553,46.4415272,0 7.5009423,46.4414903,0 7.5006848,46.4414755,0 7.5004905,46.4414532,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5531803,46.3637433,0 7.5528114,46.3639866,0 7.5525992,46.3642187,0 7.5525078,46.3645431,0 7.5526612,46.3646039,0 7.5525567,46.3646918,0 7.5527167,46.3648923,0 7.5526579,46.3649621,0 7.5531019,46.3651356,0 7.5533435,46.3653158,0 7.5534937,46.365487,0 7.553399,46.3657461,0 7.5533859,46.3658632,0 7.5540813,46.3660367,0 7.554398,46.3662507,0 7.554558,46.3662935,0 7.5544894,46.3665075,0 7.5575791,46.3665852,0 7.5581286,46.3669084,0 7.5585494,46.3672031,0 7.5593082,46.3680655,0 7.5601499,46.3683251,0 7.5608066,46.3683911,0 7.5614315,46.3685451,0 7.5621392,46.3686595,0 7.5623815,46.3688178,0 7.5628725,46.3687255,0 7.5632742,46.3687123,0 7.5640022,46.368933,0 7.5641483,46.3691113,0 7.5642859,46.3690848,0 7.5646324,46.3693502,0 7.5652508,46.369491,0 7.5654485,46.3693986,0 7.5658555,46.3695314,0 7.5661611,46.3693956,0 7.5664049,46.3694558,0 7.5665516,46.3694074,0 7.5667742,46.3694346,0 7.5668756,46.369562,0 7.5671841,46.3695809,0 7.5675053,46.3697029,0 7.5678332,46.3697682,0 7.5682137,46.3697683,0 7.5685091,46.3698694,0 7.5691078,46.3696964,0 7.5691873,46.3698198,0 7.569288,46.3698413,0 7.569423,46.3697524,0 7.5694081,46.3698386,0 7.5695654,46.3698578,0 7.5697199,46.3699574,0 7.569829,46.3700234,0 7.5699239,46.3700186,0 7.5700752,46.3700821,0 7.5702149,46.3700415,0 7.5702412,46.3701205,0 7.5703156,46.3701287,0 7.5704896,46.3701844,0 7.5705317,46.3701552,0 7.5706147,46.3701703,0 7.5706274,46.3701162,0 7.570783,46.3701671,0 7.5708306,46.3701076,0 7.5710723,46.3701124,0 7.5711163,46.370016,0 7.571372,46.3699618,0 7.5719076,46.3701201,0 7.5721641,46.3701943,0 7.5722033,46.3702231,0 + + + + Geissweg + Geissweg, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6222616,46.3768109,0 7.6221674,46.3766908,0 7.6219495,46.3765308,0 7.6217027,46.3762199,0 7.6214667,46.3759238,0 7.6214023,46.3757166,0 7.6213272,46.3755685,0 7.6213057,46.3754279,0 7.621295,46.3752429,0 7.6212839,46.3751056,0 7.6212735,46.3748801,0 7.6212735,46.3747543,0 7.6212092,46.3745767,0 7.6211233,46.3744064,0 7.6211126,46.374251,0 7.6211155,46.3740319,0 7.6210626,46.373873,0 7.6209285,46.3736805,0 7.6208534,46.3735175,0 7.6206785,46.3733627,0 7.6205037,46.3732489,0 7.6203591,46.3730989,0 7.6200909,46.372825,0 7.6198387,46.3725622,0 7.6195705,46.3725807,0 7.6194257,46.3724548,0 7.6194096,46.3723919,0 7.6192379,46.3722365,0 7.6191682,46.3719663,0 7.618857,46.3719589,0 7.6187337,46.3718848,0 7.6185405,46.371622,0 7.6183474,46.3714777,0 7.6181597,46.3712889,0 7.6179612,46.3712408,0 7.6177681,46.3711816,0 7.6176018,46.3711779,0 7.6175052,46.3711927,0 7.6171994,46.3710594,0 7.616781,46.3707966,0 7.6166523,46.3707707,0 7.6165986,46.3705709,0 7.6164377,46.3703266,0 7.6164216,46.3702599,0 7.6163143,46.3702266,0 7.6162338,46.3702562,0 7.6162553,46.3704006,0 7.6161373,46.3702562,0 7.6160944,46.3703118,0 7.615853,46.3702969,0 7.6158476,46.3705153,0 7.6156974,46.370445,0 7.6155794,46.3706449,0 7.6154882,46.3706671,0 7.6154828,46.3707448,0 7.615338,46.3706227,0 7.6153058,46.370693,0 7.6152575,46.3706819,0 7.6151878,46.370693,0 7.6152361,46.3708188,0 7.6152146,46.3709447,0 7.6152361,46.3710927,0 7.6153434,46.3711964,0 7.6154721,46.3712778,0 7.6154828,46.3714333,0 7.6153863,46.3716998,0 7.6154077,46.3718034,0 7.6152897,46.3719367,0 7.6151395,46.3720921,0 7.6152253,46.3723068,0 7.6151502,46.3724326,0 7.615,46.3725659,0 7.6149035,46.3727139,0 7.6150644,46.3727879,0 7.6152897,46.3727657,0 7.6154721,46.3728472,0 7.6155579,46.3729582,0 7.6155579,46.3730544,0 7.6153434,46.3731433,0 7.6151717,46.3732913,0 7.6150429,46.373432,0 7.6150751,46.3734986,0 7.6154292,46.3735948,0 7.6157832,46.3738835,0 7.6161266,46.3740982,0 7.6162875,46.3744165,0 7.6162017,46.3745127,0 7.6160836,46.3746607,0 7.6162231,46.3748902,0 7.6163626,46.3751123,0 7.6163733,46.3752529,0 7.6162768,46.3752455,0 7.6162124,46.3755194,0 7.6162875,46.3757489,0 7.6164913,46.3759117,0 7.6166845,46.3761264,0 7.6169527,46.3762004,0 7.6169419,46.3763928,0 7.6168025,46.3765335,0 7.6168561,46.3766297,0 7.6166094,46.3770294,0 7.6167596,46.3773107,0 7.6167059,46.3774291,0 7.6167596,46.377555,0 7.6167596,46.3776586,0 7.6165772,46.3776882,0 7.6164591,46.377703,0 7.6163626,46.3778806,0 7.6163733,46.3780435,0 7.6164377,46.3782285,0 7.6163411,46.3782803,0 7.6165128,46.378384,0 7.6167274,46.3788059,0 7.6165986,46.3790057,0 7.6166201,46.3792722,0 7.6163948,46.3794054,0 7.6163304,46.3795164,0 7.6165879,46.3795904,0 7.6163197,46.3797385,0 7.6160085,46.3798569,0 7.6159442,46.3799605,0 7.6159549,46.3801233,0 7.6162124,46.3802862,0 7.6161802,46.3803602,0 7.6163089,46.380523,0 7.6161802,46.3806636,0 7.6163152,46.3807166,0 7.6163197,46.3807155,0 7.6163152,46.3807166,0 7.616545,46.3806562,0 7.6168883,46.3808265,0 7.6172102,46.3809005,0 7.6174891,46.3814926,0 7.6175428,46.3816406,0 7.6173926,46.3817442,0 7.6174247,46.3820551,0 7.6173282,46.3824474,0 7.6175535,46.38244,0 7.6176608,46.3827952,0 7.6175857,46.3829728,0 7.6175857,46.3830765,0 7.6174569,46.3833355,0 7.6175428,46.3836389,0 7.6173604,46.3840608,0 7.6173496,46.3848305,0 7.6175213,46.3850007,0 7.6175535,46.3852079,0 7.6176608,46.3852227,0 7.6177788,46.3851487,0 7.6188946,46.3855558,0 7.6192594,46.3857556,0 7.6197422,46.3858962,0 7.6201737,46.3860141,0 7.6204151,46.3860289,0 7.6206176,46.3859502,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5284879,46.4891875,0 7.5286313,46.4893803,0 7.5287117,46.4900478,0 7.5284951,46.4908182,0 7.5289364,46.4906938,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4345295,46.4574371,0 7.4347762,46.4573336,0 7.4350874,46.4572893,0 7.4353341,46.4572301,0 7.4354414,46.4570823,0 7.4356774,46.4567867,0 7.4357204,46.4564319,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4357204,46.4564319,0 7.4363534,46.4565058,0 7.4372546,46.4566093,0 7.4375872,46.4566536,0 7.4377803,46.4567202,0 7.4379949,46.456698,0 7.4382202,46.4566389,0 7.4384777,46.4566019,0 7.4387566,46.4566536,0 7.4390892,46.4567793,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4319089,46.4675275,0 7.4326197,46.4677909,0 7.4330703,46.46802,0 7.4340467,46.4683451,0 7.4347869,46.4685668,0 7.4351195,46.4686629,0 7.4354092,46.4689289,0 7.4357955,46.4693649,0 7.4360816,46.4694487,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4389752,46.4648103,0 7.4388936,46.4647475,0 7.4374799,46.4641657,0 7.4368575,46.4640778,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4391324,46.4649312,0 7.4389752,46.4648103,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4291628,46.5638818,0 7.4290955,46.5638078,0 7.4290258,46.5636455,0 7.4289346,46.5634796,0 7.4288327,46.5633357,0 7.4286825,46.5631919,0 7.4284893,46.5630997,0 7.428264,46.5630443,0 7.4280441,46.5630812,0 7.4278563,46.5631624,0 7.4276686,46.5632103,0 7.4275774,46.5631439,0 7.4275345,46.5630443,0 7.4274755,46.5629005,0 7.427336,46.5627677,0 7.4273413,46.5626239,0 7.4272716,46.562528,0 7.4272126,46.5623583,0 7.4271482,46.5621923,0 7.42688,46.5619415,0 7.4265689,46.5618346,0 7.4262899,46.5616354,0 7.4258769,46.561285,0 7.4255443,46.5609973,0 7.4252385,46.5606579,0 7.4249756,46.5603887,0 7.4247021,46.5602153,0 7.4244016,46.559994,0 7.4240261,46.5598133,0 7.4237311,46.5597542,0 7.4235039,46.559884,0 7.4232751,46.5600198,0 7.4232161,46.5599608,0 7.4231464,46.5598797,0 7.4230605,46.559651,0 7.422964,46.559496,0 7.4227119,46.5593891,0 7.4224436,46.5593411,0 7.4223363,46.5593411,0 7.4221754,46.559319,0 7.4221057,46.5592083,0 7.4219769,46.5590903,0 7.4218911,46.5590424,0 7.4217731,46.5591087,0 7.4214727,46.5591899,0 7.4213439,46.5592157,0 7.4212313,46.5591641,0 7.4210864,46.5591604,0 7.420888,46.5592415,0 7.4203944,46.5593264,0 7.4196273,46.5593338,0 7.4191231,46.5593522,0 7.4186188,46.5594592,0 7.4183184,46.5595219,0 7.417798,46.5595256,0 7.4172401,46.5595219,0 7.4168915,46.559496,0 7.4167895,46.5595071,0 7.4166286,46.5594887,0 7.4162853,46.5594592,0 7.4160546,46.559426,0 7.4158615,46.5594997,0 7.4158293,46.5594481,0 7.4158293,46.5593891,0 7.4158669,46.5593448,0 7.4157864,46.559319,0 7.4156308,46.5592342,0 7.4155074,46.5590903,0 7.4152339,46.5589686,0 7.4148208,46.5588063,0 7.4146813,46.5586403,0 7.4144507,46.5585038,0 7.4143273,46.5584632,0 7.4141985,46.5584817,0 7.4139893,46.5584743,0 7.4137801,46.5583858,0 7.4134636,46.5583858,0 7.4129701,46.5583673,0 7.4126643,46.5583304,0 7.4123317,46.5582714,0 7.4122512,46.558205,0 7.4122834,46.5581128,0 7.4122995,46.5580501,0 7.4122995,46.5578915,0 7.412144,46.5577624,0 7.4119937,46.5575706,0 7.411468,46.5573861,0 7.411055,46.5573087,0 7.4106795,46.5572644,0 7.4104917,46.557246,0 7.4103469,46.5573087,0 7.4103254,46.5574415,0 7.4102986,46.5574968,0 7.4100626,46.557482,0 7.409671,46.5574083,0 7.4090487,46.5572644,0 7.4087161,46.5570615,0 7.4086088,46.5569988,0 7.4079382,46.556855,0 7.4077559,46.5566927,0 7.4077237,46.5564603,0 7.4077183,46.5562057,0 7.4076593,46.5560914,0 7.4075252,46.5559586,0 7.4075198,46.5558147,0 7.4075037,46.5557004,0 7.4073321,46.5555749,0 7.4071926,46.5554717,0 7.4069727,46.5553425,0 7.4066132,46.555195,0 7.4061734,46.5550954,0 7.4059105,46.55497,0 7.4057496,46.5549073,0 7.4056047,46.5545457,0 7.4054921,46.5543834,0 7.4053419,46.5543318,0 7.4052292,46.5542506,0 7.4051917,46.5541473,0 7.4052185,46.5539481,0 7.4050683,46.5538043,0 7.404961,46.5537194,0 7.4048591,46.5536124,0 7.4048591,46.5535239,0 7.4049556,46.5533874,0 7.4049771,46.5533026,0 7.4048698,46.5532251,0 7.4047035,46.5531439,0 7.4044031,46.5529779,0 7.4042207,46.5528599,0 7.4039793,46.5526312,0 7.4035609,46.5523213,0 7.4033678,46.5522364,0 7.4032605,46.5521737,0 7.4031586,46.5521295,0 7.4030513,46.5520667,0 7.4028474,46.5520151,0 7.4026811,46.5519044,0 7.4026918,46.5518196,0 7.4027079,46.5516609,0 7.4024504,46.5514986,0 7.4022037,46.5513437,0 7.4018604,46.551174,0 7.4016351,46.551126,0 7.4013186,46.5510854,0 7.4008733,46.5509821,0 7.40053,46.5509526,0 7.3999882,46.5510153,0 7.3997414,46.5513179,0 7.39972,46.5515835,0 7.3998326,46.5516831,0 7.3998916,46.5517126,0 7.4000418,46.55172,0 7.4001384,46.551779,0 7.4001545,46.551838,0 7.400074,46.5518343,0 7.399956,46.5518417,0 7.3999131,46.5519081,0 7.3998863,46.5519671,0 7.3999453,46.5520225,0 7.3998702,46.5520631,0 7.3999399,46.552111,0 7.3998594,46.5521073,0 7.4000204,46.5523028,0 7.4002189,46.5525574,0 7.4003208,46.5527529,0 7.400412,46.5528894,0 7.4005568,46.5530148,0 7.4006963,46.5531513,0 7.400707,46.5532288,0 7.4006265,46.5532435,0 7.4005514,46.5532067,0 7.4004549,46.5531882,0 7.4004173,46.5532509,0 7.4004173,46.5533063,0 7.4003476,46.5533616,0 7.4001813,46.5533505,0 7.3999506,46.5533579,0 7.3998916,46.5534132,0 7.3997146,46.5536235,0 7.3995268,46.5539186,0 7.3994088,46.5541473,0 7.3991138,46.5545605,0 7.3989475,46.5547855,0 7.3990923,46.5552946,0 7.3991728,46.5554864,0 7.3991835,46.5555639,0 7.3991782,46.5556155,0 7.399087,46.5555971,0 7.3989207,46.555479,0 7.3987275,46.5554089,0 7.3984593,46.5553057,0 7.3982501,46.5551581,0 7.3980945,46.5550917,0 7.3979122,46.5550991,0 7.3978585,46.5551839,0 7.3978639,46.5552725,0 7.3978049,46.5552725,0 7.3974776,46.5552429,0 7.397188,46.5550843,0 7.3967695,46.5550069,0 7.3966676,46.5550622,0 7.3966622,46.5551507,0 7.3966944,46.5552466,0 7.3965818,46.5553462,0 7.3963994,46.5554385,0 7.3963457,46.5555417,0 7.396276,46.5556081,0 7.3960614,46.5556192,0 7.3958683,46.5555122,0 7.3958415,46.5553167,0 7.3956698,46.5551692,0 7.3954874,46.5550106,0 7.395305,46.5549146,0 7.395305,46.5550069,0 7.3953211,46.5551028,0 7.3954177,46.5552393,0 7.3954606,46.5553241,0 7.3953855,46.555468,0 7.3952943,46.5556303,0 7.3952514,46.5558,0 7.3952568,46.555977,0 7.3952621,46.5561615,0 7.3952621,46.5563459,0 7.3951602,46.5564603,0 7.3950261,46.5565562,0 7.3948813,46.5566189,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5658624,46.5011096,0 7.5659292,46.5011241,0 7.5660166,46.5011678,0 7.5662026,46.5012103,0 7.5666147,46.5013842,0 7.5667588,46.5014242,0 7.5669066,46.5014373,0 7.5670507,46.5015243,0 7.5671619,46.5016086,0 7.5673501,46.5017095,0 7.5675991,46.5017956,0 7.5677317,46.5018426,0 7.5678619,46.5020131,0 7.5678935,46.5020157,0 7.5679011,46.5019704,0 7.56788,46.50188,0 7.567992,46.5019974,0 7.5681955,46.5021296,0 7.5685303,46.5022514,0 7.5686352,46.5023384,0 7.5686706,46.5024219,0 7.56873,46.5027741,0 7.5687868,46.5028576,0 7.5688462,46.5028419,0 7.5689132,46.5026845,0 7.5688905,46.5024593,0 7.568898,46.5023853,0 7.5689612,46.5023949,0 7.5690244,46.502501,0 7.5692304,46.5026471,0 7.5693011,46.5026828,0 7.5693555,46.5026523,0 7.5693529,46.502541,0 7.5693529,46.5024984,0 7.5694047,46.5024845,0 7.5696158,46.5027419,0 7.5696714,46.5027524,0 7.569713,46.5026723,0 7.5697067,46.5025419,0 7.5696416,46.5023484,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5678619,46.5020131,0 7.5679328,46.5022479,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5686907,46.5028223,0 7.568699,46.5027941,0 7.56873,46.5027741,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5613391,46.4939717,0 7.5611723,46.4943217,0 7.5611146,46.4943645,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4099747,46.4812081,0 7.4100874,46.4812561,0 7.4102644,46.4813559,0 7.4104897,46.48133,0 7.4106882,46.4812598,0 7.4109618,46.4812266,0 7.4111978,46.4811564,0 7.4113319,46.4810382,0 7.4114124,46.4808756,0 7.4114982,46.4807759,0 7.4116806,46.4807759,0 7.4118791,46.4809089,0 7.4120293,46.4809532,0 7.4122624,46.480898,0 7.4124263,46.4807981,0 7.4125819,46.4807242,0 7.4128125,46.4807611,0 7.4130003,46.4807205,0 7.4131827,46.4806282,0 7.413349,46.4805727,0 7.4136172,46.4805395,0 7.4140088,46.4805469,0 7.4141,46.4804878,0 7.414159,46.4803991,0 7.4143146,46.4803954,0 7.4144111,46.4804361,0 7.4143628,46.4805395,0 7.4143682,46.4806355,0 7.4147705,46.4806429,0 7.4148027,46.4805617,0 7.4150441,46.4805063,0 7.4154089,46.4805063,0 7.4157147,46.4805173,0 7.4158702,46.4805026,0 7.4160634,46.4803917,0 7.4163477,46.4803696,0 7.4166213,46.4804102,0 7.4167554,46.4805432,0 7.4167071,46.4807501,0 7.416868,46.4809421,0 7.4169324,46.4812746,0 7.4170075,46.481511,0 7.4172006,46.4816107,0 7.4174849,46.4816107,0 7.4178014,46.4815886,0 7.4179087,46.4816957,0 7.4179516,46.481825,0 7.4180857,46.4820946,0 7.4181877,46.4822941,0 7.4182574,46.4822756,0 7.4184505,46.48215,0 7.4187402,46.4819838,0 7.4189709,46.481825,0 7.4192844,46.4816599,0 7.4194698,46.4816033,0 7.4198882,46.4815073,0 7.4202798,46.4814076,0 7.4206982,46.4813152,0 7.4210737,46.4811675,0 7.4215136,46.4809865,0 7.4218462,46.4807611,0 7.422152,46.4805358,0 7.4224148,46.4803954,0 7.4227152,46.4802588,0 7.4228976,46.4801147,0 7.4232302,46.4799669,0 7.4236647,46.4797712,0 7.4239383,46.479531,0 7.4243085,46.4793759,0 7.4244694,46.4791432,0 7.4246411,46.4789289,0 7.4249039,46.4787184,0 7.4251239,46.4784819,0 7.4253492,46.4783305,0 7.4255691,46.4781605,0 7.4257247,46.4779167,0 7.4258481,46.4775806,0 7.4260144,46.4773035,0 7.4261592,46.477056,0 7.42629,46.4769389,0 7.4263738,46.4768639,0 7.4265723,46.4767309,0 7.42676,46.4765794,0 7.4269585,46.4764612,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4317516,46.4728703,0 7.4318669,46.4725932,0 7.4320708,46.4722681,0 7.4322907,46.47198,0 7.4326233,46.4716548,0 7.4330793,46.4713851,0 7.4334119,46.4711893,0 7.4336855,46.4709972,0 7.4340985,46.4707201,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6164187,46.5309288,0 7.6170658,46.5311194,0 7.6182054,46.5313292,0 7.6193915,46.5318375,0 7.6194839,46.5322688,0 7.6204851,46.5333009,0 7.6213939,46.5338554,0 7.6221795,46.5344869,0 7.6231345,46.5348566,0 7.6244438,46.5351031,0 7.6247981,46.5355343,0 7.6250907,46.5362891,0 7.6253526,46.5364431,0 7.6258455,46.5370439,0 7.6256606,46.5375368,0 7.625445,46.5377524,0 7.6255066,46.5380297,0 7.6262306,46.5384302,0 7.6269853,46.5383069,0 7.6273704,46.5384764,0 7.6280328,46.5390925,0 7.6286181,46.5392927,0 7.6284332,46.5401091,0 7.6285565,46.5408331,0 7.628957,46.5414184,0 7.6298349,46.5422964,0 7.6298811,46.5428663,0 7.6310353,46.5445644,0 7.6319403,46.5448838,0 7.632792,46.5459218,0 7.6333243,46.5463211,0 7.6338034,46.5470664,0 7.6350278,46.547998,0 7.6350012,46.5489296,0 7.635294,46.5494087,0 7.6347084,46.5505,0 7.6342027,46.5509791,0 7.6342293,46.551538,0 7.6355868,46.5524164,0 7.6357731,46.5529221,0 7.6366515,46.5538537,0 7.6373435,46.5548119,0 7.6383816,46.5557169,0 7.6389139,46.5569945,0 7.6396858,46.5579527,0 7.6397656,46.5586713,0 7.6403512,46.5592569,0 7.6412562,46.5595497,0 7.642241,46.5606144,0 7.642478,46.5605806,0 7.6425216,46.5611584,0 7.6429032,46.560984,0 7.6436118,46.5608096,0 7.644037,46.5608096,0 7.644822,46.5612784,0 7.6449855,46.5615073,0 7.6445712,46.5615182,0 7.6442769,46.5616817,0 7.6440043,46.5625866,0 7.6435791,46.5629464,0 7.6435682,46.5633825,0 7.6431209,46.5636803,0 7.6432613,46.5638823,0 7.6430399,46.5644631,0 7.6434328,46.5645423,0 7.6431219,46.5647846,0 7.6428512,46.5649312,0 7.6431547,46.5649537,0 7.6435178,46.564926,0 7.6432531,46.5651398,0 7.6428116,46.5653032,0 7.6419408,46.565309,0 7.6411101,46.5652106,0 7.64133,46.5653611,0 7.6419408,46.5655515,0 7.6426597,46.5656959,0 7.6429907,46.5657714,0 7.6435639,46.5660093,0 7.6440848,46.5657547,0 7.6449761,46.5657894,0 7.6465965,46.5652454,0 7.6475457,46.5652454,0 7.6476846,46.5653958,0 7.6472447,46.5654769,0 7.6466197,46.5656852,0 7.6460409,46.5660324,0 7.6457516,46.5660324,0 7.6456937,46.5661482,0 7.6458673,46.5661945,0 7.6466742,46.5659811,0 7.6471656,46.5658899,0 7.6475915,46.5659523,0 7.6480022,46.5661775,0 7.6485642,46.5662755,0 7.6480434,46.5663565,0 7.6470364,46.5664028,0 7.6464576,46.5668195,0 7.6468628,46.5676992,0 7.6460583,46.5680271,0 7.6456236,46.5682188,0 7.6453857,46.5682752,0 7.6452455,46.5684742,0 7.6453161,46.5686246,0 7.6447213,46.5689462,0 7.6442816,46.569285,0 7.6432514,46.569366,0 7.6427884,46.5695165,0 7.6419435,46.5695049,0 7.6410406,46.5698637,0 7.6401725,46.5698405,0 7.6399295,46.5701183,0 7.6401378,46.5703151,0 7.6400452,46.5705813,0 7.639322,46.5710956,0 7.6388716,46.5713042,0 7.6387679,46.5715394,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.490681,46.4144632,0 7.4904801,46.4146018,0 7.4903907,46.4147865,0 7.4903163,46.4150995,0 7.4902866,46.4155664,0 7.4902493,46.4159204,0 7.4902493,46.4162641,0 7.4902047,46.4164591,0 7.4899517,46.4165925,0 7.4896093,46.4167823,0 7.489267,46.4169927,0 7.4890958,46.4170543,0 7.4889395,46.4170594,0 7.4886865,46.416967,0 7.4884707,46.4168593,0 7.4882102,46.4166284,0 7.4878679,46.4164488,0 7.4874883,46.4164027,0 7.4871386,46.4164796,0 7.4869302,46.4165925,0 7.4866251,46.4166848,0 7.4862306,46.4166541,0 7.4858809,46.4165822,0 7.4854492,46.4164694,0 7.4849208,46.4164488,0 7.4842734,46.4164437,0 7.4838641,46.416454,0 7.4834101,46.4165258,0 7.4830454,46.4165053,0 7.4822268,46.4164129,0 7.4818026,46.4163052,0 7.4815719,46.4161461,0 7.4811254,46.4160076,0 7.4806119,46.4158742,0 7.4802175,46.4156844,0 7.4797709,46.4153355,0 7.4793319,46.4150276,0 7.4786174,46.4147301,0 7.4782453,46.4145813,0 7.4780444,46.4144786,0 7.4777467,46.4144838,0 7.4773672,46.4145556,0 7.4770769,46.414571,0 7.4766676,46.4145813,0 7.4764518,46.4145813,0 7.4763327,46.4146787,0 7.4763104,46.4148224,0 7.4759309,46.4149148,0 7.4756927,46.4149507,0 7.4753727,46.414925,0 7.4750973,46.4148994,0 7.4746955,46.4147814,0 7.4745728,46.4147323,0 7.4743746,46.4147097,0 7.4742482,46.4146698,0 7.4741233,46.4146451,0 7.4740734,46.4146451,0 7.4740078,46.4146978,0 7.4734741,46.4147753,0 7.4733523,46.4147753,0 7.4732743,46.4146967,0 7.4731838,46.4145558,0 7.4731243,46.4144834,0 7.4730237,46.4143847,0 7.4729444,46.4144309,0 7.472917,46.4143426,0 7.4728865,46.4143973,0 7.4728286,46.4143321,0 7.4727219,46.4144246,0 7.4726975,46.4143973,0 7.4724902,46.4146411,0 7.4723348,46.4147987,0 7.4722464,46.4148638,0 7.4721945,46.4149689,0 7.4720939,46.4149626,0 7.4720817,46.4150193,0 7.4719842,46.4150299,0 7.4719781,46.4148954,0 7.471847,46.4149668,0 7.4718531,46.4147419,0 7.4718196,46.4146453,0 7.4717099,46.4145864,0 7.471594,46.414557,0 7.4714904,46.4145654,0 7.4714416,46.4146516,0 7.4713837,46.4147587,0 7.4713502,46.4148197,0 7.4713288,46.4148869,0 7.4712679,46.4148975,0 7.4712099,46.4148806,0 7.4711398,46.4148722,0 7.4710362,46.4149689,0 7.4708685,46.4151118,0 7.4706734,46.4152274,0 7.4704448,46.415261,0 7.4702497,46.4152904,0 7.4699998,46.4152316,0 7.4697132,46.4150677,0 7.4695029,46.4148911,0 7.4694023,46.4147566,0 7.4693383,46.4145339,0 7.4693261,46.4142943,0 7.4693657,46.4140463,0 7.4693993,46.4138656,0 7.4694511,46.4137122,0 7.469506,46.413565,0 7.4695304,46.4133864,0 7.4694816,46.4133381,0 7.4692621,46.4133171,0 7.4690762,46.4133759,0 7.4688262,46.4133948,0 7.4686799,46.413481,0 7.4685214,46.4135167,0 7.4684299,46.4135251,0 7.4682166,46.4135377,0 7.4680519,46.4135692,0 7.4680093,46.4137185,0 7.4677532,46.4137353,0 7.4673356,46.4138929,0 7.4670216,46.4139391,0 7.466921,46.4139139,0 7.4668022,46.4138298,0 7.466726,46.4136953,0 7.4664973,46.4136176,0 7.4662382,46.4135356,0 7.4658877,46.4132981,0 7.4657048,46.4132519,0 7.4655615,46.4134284,0 7.4651256,46.4138593,0 7.4649732,46.4139538,0 7.4647171,46.4139728,0 7.4641807,46.4139496,0 7.4637996,46.4139791,0 7.4636167,46.4139959,0 7.4632205,46.4139496,0 7.4626199,46.4137857,0 7.4621718,46.4136155,0 7.461928,46.4135692,0 7.4614189,46.4136281,0 7.460791,46.4136743,0 7.4600139,46.4138459,0 7.4597162,46.4138705,0 7.4593709,46.4138254,0 7.4589184,46.4137105,0 7.4587696,46.4136243,0 7.458198,46.4133451,0 7.4579063,46.4129716,0 7.4576741,46.4125242,0 7.4575431,46.4122656,0 7.4573883,46.4119495,0 7.4571919,46.4116991,0 7.4567572,46.4114077,0 7.4563405,46.4111408,0 7.4561083,46.4110013,0 7.4559178,46.4107262,0 7.4557273,46.4104061,0 7.4555129,46.41009,0 7.4553939,46.4099832,0 7.454995,46.4098888,0 7.4548104,46.4099463,0 7.4544056,46.4101064,0 7.4538757,46.4102419,0 7.4537864,46.4104676,0 7.4534232,46.4106154,0 7.453453,46.4107016,0 7.4538459,46.4106893,0 7.4540841,46.410796,0 7.4541615,46.4109808,0 7.4541376,46.4112927,0 7.4541138,46.4114364,0 7.4540305,46.4116704,0 7.4539293,46.4118715,0 7.4539114,46.4120234,0 7.4539531,46.4121589,0 7.4538578,46.4121794,0 7.4536971,46.412048,0 7.4536137,46.4119741,0 7.4534827,46.4120521,0 7.4534292,46.4122409,0 7.4534292,46.4124421,0 7.4534173,46.4126104,0 7.4533458,46.412869,0 7.4532922,46.4130496,0 7.4530243,46.4132877,0 7.452685,46.4135709,0 7.4524944,46.4138131,0 7.4521789,46.4141702,0 7.4520658,46.4142687,0 7.4520003,46.4142564,0 7.451911,46.4141209,0 7.4516431,46.4138705,0 7.451399,46.4136407,0 7.4511608,46.4134683,0 7.4510953,46.4133657,0 7.4510259,46.4133771,0 7.4508918,46.4134506,0 7.4508309,46.4134065,0 7.4506541,46.4131816,0 7.4505413,46.413003,0 7.4503736,46.4128307,0 7.450209,46.412568,0 7.4500566,46.4124334,0 7.4499834,46.4124145,0 7.4499438,46.412444,0 7.4499255,46.4125028,0 7.4499499,46.4127319,0 7.4498981,46.4129168,0 7.4499042,46.4129946,0 7.4498707,46.4130282,0 7.4498188,46.413024,0 7.4497836,46.4129741,0 7.449693,46.4128052,0 7.4496072,46.4126728,0 7.4494308,46.4124942,0 7.4493434,46.4123597,0 7.4492748,46.4122575,0 7.4492217,46.4121994,0 7.4491843,46.412208,0 7.4491655,46.4122855,0 7.4491983,46.412406,0 7.4491796,46.4124802,0 7.4491296,46.4125125,0 7.4490017,46.4124964,0 7.4489189,46.4124383,0 7.4488877,46.4123522,0 7.4488612,46.4121563,0 7.4488393,46.4120229,0 7.4487941,46.4118948,0 7.448688,46.4117485,0 7.4485553,46.4115462,0 7.4484585,46.4113568,0 7.4483992,46.4112363,0 7.4483618,46.4110899,0 7.4482213,46.4108758,0 7.4481183,46.4107015,0 7.4480699,46.4105659,0 7.4480012,46.4103238,0 7.4479279,46.4100666,0 7.4479263,46.4098385,0 7.4479263,46.4096394,0 7.4479294,46.4095479,0 7.4478935,46.4094048,0 7.4478561,46.4093069,0 7.4478514,46.40921,0 7.4478467,46.4091099,0 7.4478249,46.4090271,0 7.447789,46.4089873,0 7.4477437,46.4089862,0 7.4477016,46.4090432,0 7.4476033,46.4092423,0 7.4475049,46.4093617,0 7.4472693,46.4096361,0 7.4471335,46.4098008,0 7.447032,46.4100128,0 7.4469837,46.4102323,0 7.4469212,46.410426,0 7.4468775,46.4104572,0 7.4466871,46.4104637,0 7.4464717,46.4104734,0 7.4463079,46.4105099,0 7.4461674,46.4105078,0 7.4458443,46.4104873,0 7.4456352,46.410497,0 7.445373,46.4105239,0 7.4452466,46.4105293,0 7.445128,46.4104798,0 7.4450858,46.4104034,0 7.4450484,46.410355,0 7.4449266,46.4103119,0 7.4449051,46.4103026,0 7.4448583,46.4102856,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4884845,46.4446966,0 7.4884442,46.4451792,0 7.4886803,46.4457411,0 7.4893562,46.4462955,0 7.4899463,46.4468869,0 7.4900643,46.4470791,0 7.490311,46.4472344,0 7.4906651,46.4473083,0 7.4910513,46.4473083,0 7.4916307,46.4472935,0 7.49221,46.4474118,0 7.4926499,46.4474414,0 7.4929074,46.447397,0 7.4932186,46.4472639,0 7.4937872,46.4471457,0 7.4945382,46.4471678,0 7.4951283,46.4473083,0 7.4956969,46.4477223,0 7.495933,46.4479588,0 7.4961904,46.4480771,0 7.4965552,46.4481732,0 7.4967698,46.4482249,0 7.496802,46.4483654,0 7.4966089,46.4487424,0 7.4964158,46.4490603,0 7.4963621,46.4495186,0 7.4962334,46.449829,0 7.496051,46.4501469,0 7.4960295,46.4504278,0 7.496169,46.4506052,0 7.4961046,46.4507752,0 7.4959759,46.4513,0 7.4959222,46.4515883,0 7.4959222,46.4517583,0 7.4960295,46.4518544,0 7.4962977,46.4520023,0 7.496523,46.4521723,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4909655,46.4491638,0 7.4912123,46.4492377,0 7.4914912,46.4491933,0 7.491738,46.4490677,0 7.4919204,46.4490233,0 7.4921779,46.4489716,0 7.4924568,46.448905,0 7.4929933,46.4487868,0 7.4932293,46.4487424,0 7.493358,46.4486759,0 7.4935404,46.4486241,0 7.4937014,46.4485946,0 7.4938623,46.4485206,0 7.4939374,46.4484245,0 7.4940661,46.4483358,0 7.4941949,46.4482915,0 7.4943236,46.4482915,0 7.4944309,46.448321,0 7.4944846,46.4483802,0 7.4945918,46.4484393,0 7.4947099,46.4484541,0 7.4946562,46.4486611,0 7.4946133,46.4488089,0 7.4946884,46.4489568,0 7.4948279,46.4491194,0 7.4950961,46.4493855,0 7.4951605,46.4495851,0 7.4952249,46.4497256,0 7.4952249,46.4500212,0 7.4952892,46.4502578,0 7.4952356,46.4504426,0 7.4950961,46.4506422,0 7.4950639,46.4507235,0 7.4951176,46.4508935,0 7.495257,46.4510635,0 7.495418,46.4512705,0 7.495654,46.4515957,0 7.4959222,46.4517583,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4988512,46.4461551,0 7.4989692,46.4461403,0 7.4991301,46.4460516,0 7.4992696,46.4460959,0 7.4993233,46.4462142,0 7.499452,46.4463399,0 7.4995915,46.4464064,0 7.4997524,46.4464803,0 7.4999563,46.4465395,0 7.500085,46.4465469,0 7.5000314,46.4463842,0 7.499967,46.4462955,0 7.499967,46.4462068,0 7.5000314,46.4461551,0 7.5001708,46.4462142,0 7.5002674,46.446266,0 7.500321,46.4462364,0 7.5002245,46.4461255,0 7.5002352,46.446022,0 7.5002459,46.4459481,0 7.500203,46.4458668,0 7.5001601,46.4457928,0 7.5002889,46.4457707,0 7.5003961,46.4457337,0 7.5004713,46.4456967,0 7.5005571,46.4457411,0 7.5006536,46.4458076,0 7.5008146,46.4458815,0 7.5009111,46.4459481,0 7.500997,46.4460146,0 7.5010828,46.4461403,0 7.5011472,46.446192,0 7.5012437,46.4462512,0 7.5013403,46.4462881,0 7.501469,46.4463251,0 7.5015656,46.4462807,0 7.5016729,46.4461699,0 7.5017909,46.4461551,0 7.501866,46.4462068,0 7.501984,46.4461994,0 7.5020377,46.4461699,0 7.5022201,46.4461255,0 7.5023917,46.4461625,0 7.5028852,46.446266,0 7.5030784,46.4462216,0 7.5031856,46.4462216,0 7.5030891,46.4462955,0 7.5031427,46.4463842,0 7.5032286,46.446399,0 7.5033573,46.4464582,0 7.5034968,46.4465247,0 7.503647,46.4465469,0 7.5037757,46.4465543,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5010721,46.4422369,0 7.5011686,46.4424217,0 7.5013188,46.4426139,0 7.5015549,46.4427322,0 7.5017694,46.4428135,0 7.5019733,46.4428875,0 7.5021771,46.4429466,0 7.502381,46.4430797,0 7.5026063,46.4431536,0 7.5027887,46.4432275,0 7.5030033,46.4433015,0 7.5031749,46.4433976,0 7.503368,46.4434641,0 7.5036577,46.4434789,0 7.5040654,46.4434789,0 7.5044624,46.4433828,0 7.5046555,46.4433384,0 7.505031,46.4432497,0 7.5052563,46.443161,0 7.5054494,46.4430131,0 7.5057177,46.4429244,0 7.505943,46.4428209,0 7.5061683,46.4427248,0 7.5062863,46.4426361,0 7.5066511,46.442577,0 7.5066511,46.4424882,0 7.5067476,46.4423847,0 7.5069086,46.4422664,0 7.5070051,46.4421925,0 7.507166,46.4421038,0 7.5074665,46.4420668,0 7.5078098,46.4420594,0 7.5079493,46.4420373,0 7.5082497,46.4421777,0 7.5085501,46.4422221,0 7.5092367,46.442296,0 7.5094298,46.4423626,0 7.5095157,46.4423626,0 7.5097946,46.4422073,0 7.5100736,46.4420964,0 7.5102345,46.4420373,0 7.5105885,46.4419485,0 7.5107387,46.4418894,0 7.5111464,46.4418155,0 7.5112752,46.4418007,0 7.5115863,46.4418229,0 7.5119296,46.4418229,0 7.5121335,46.4418376,0 7.5122558,46.4418969,0 7.5123846,46.441956,0 7.5126314,46.441956,0 7.5127708,46.4419191,0 7.5127065,46.441823,0 7.5126206,46.441749,0 7.5125992,46.4415494,0 7.5125777,46.4413794,0 7.5125563,46.4412389,0 7.512685,46.4412241,0 7.5129318,46.4412019,0 7.5130712,46.4411576,0 7.5131356,46.4410615,0 7.5131142,46.4408618,0 7.5131249,46.4407509,0 7.5132965,46.4407509,0 7.5134467,46.4407953,0 7.5136399,46.4408766,0 7.5139725,46.4409062,0 7.5141227,46.4408914,0 7.5142514,46.4410171,0 7.5144445,46.4410171,0 7.5145304,46.4409284,0 7.5143909,46.4408397,0 7.5142836,46.4407953,0 7.5143158,46.4407362,0 7.5144231,46.4407214,0 7.5145196,46.44064,0 7.5144982,46.4405587,0 7.5145733,46.4404626,0 7.5146591,46.4404035,0 7.5147878,46.4403739,0 7.5150453,46.4404404,0 7.5154423,46.4404774,0 7.5164401,46.4404996,0 7.5171911,46.44064,0 7.5178778,46.4407953,0 7.5183606,46.4408101,0 7.5187575,46.4408692,0 7.5189292,46.4410615,0 7.5189936,46.4412389,0 7.5191545,46.4414015,0 7.5193369,46.4414607,0 7.5194871,46.4415051,0 7.5194978,46.4416603,0 7.5195836,46.4425105,0 7.5197017,46.4426732,0 7.5197553,46.4427915,0 7.5197124,46.4428876,0 7.5196587,46.4429911,0 7.5196802,46.4430798,0 7.519766,46.4431611,0 7.5198626,46.4432129,0 7.520045,46.4432202,0 7.5200772,46.4431685,0 7.5200772,46.443065,0 7.5201308,46.4429837,0 7.5202059,46.4429615,0 7.520281,46.443028,0 7.5203454,46.4431389,0 7.5204419,46.4432055,0 7.5206673,46.4432572,0 7.5207531,46.4432868,0 7.5210106,46.4436712,0 7.5212895,46.4438265,0 7.5215899,46.4439817,0 7.522062,46.4441665,0 7.5224375,46.4443735,0 7.5228774,46.4447875,0 7.5237679,46.4458003,0 7.52424,46.4464509,0 7.5244653,46.4468353,0 7.5245833,46.447094,0 7.5246775,46.4471938,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6100216,46.4187252,0 7.6103389,46.4186035,0 7.6105213,46.4185296,0 7.6110684,46.4183669,0 7.6114761,46.4183669,0 7.6117336,46.4184704,0 7.6120769,46.4184926,0 7.6127421,46.4184482,0 7.6133,46.4182855,0 7.6139974,46.4180266,0 7.6144587,46.4178121,0 7.6147591,46.4174201,0 7.6151239,46.4171465,0 7.6154672,46.4168728,0 7.6156711,46.4165769,0 7.6159179,46.4162663,0 7.6159822,46.4164512,0 7.61595,46.4166213,0 7.6161937,46.4166891,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5100736,46.4420964,0 7.5100993,46.4420041,0 7.5101369,46.4419339,0 7.5102764,46.4418525,0 7.5104158,46.4417195,0 7.5105124,46.4415457,0 7.510609,46.4413054,0 7.5107484,46.4410836,0 7.5108396,46.4409321,0 7.5108504,46.4408027,0 7.5108396,46.4406437,0 7.5109362,46.4405624,0 7.5110381,46.4404293,0 7.511081,46.4403406,0 7.511081,46.4402223,0 7.5110435,46.4400375,0 7.5111132,46.4398157,0 7.5112098,46.4396456,0 7.5112849,46.439483,0 7.5112795,46.4392907,0 7.5113332,46.4391281,0 7.5113654,46.4389802,0 7.5114136,46.4388952,0 7.5115102,46.4387695,0 7.5116175,46.4386438,0 7.5116765,46.4385477,0 7.5116938,46.4384565,0 7.5116952,46.4384008,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4169002,46.3606281,0 7.4166642,46.3605984,0 7.4164925,46.360554,0 7.4164604,46.3606577,0 7.4166857,46.3606503,0 7.4167822,46.3607836,0 7.4165784,46.3607539,0 7.4163316,46.3607317,0 7.4161063,46.3607391,0 7.4159132,46.3608206,0 7.4157093,46.3608798,0 7.4156879,46.3609687,0 7.4153875,46.3611167,0 7.4151622,46.361213,0 7.4150012,46.361213,0 7.4147867,46.36125,0 7.4149047,46.3613537,0 7.4150763,46.3613907,0 7.4152587,46.3614499,0 7.4150978,46.3614869,0 7.4149369,46.361524,0 7.4147974,46.3614795,0 7.414733,46.3615314,0 7.4148403,46.3615906,0 7.4149691,46.3616794,0 7.4150871,46.3616868,0 7.4153446,46.3615462,0 7.4155377,46.3614573,0 7.4157093,46.3613759,0 7.4159239,46.3613315,0 7.4161385,46.3613018,0 7.4161707,46.3613463,0 7.4160527,46.3614055,0 7.4161278,46.3614425,0 7.4163209,46.3614351,0 7.4164818,46.3613685,0 7.4166213,46.3613463,0 7.4165998,46.3614351,0 7.4164818,46.3615536,0 7.4163423,46.361672,0 7.4162458,46.3617535,0 7.4164282,46.3618942,0 7.416632,46.3621459,0 7.4167393,46.3623014,0 7.417029,46.3625901,0 7.4171255,46.3627012,0 7.4172221,46.3628197,0 7.4173401,46.3628863,0 7.4172865,46.3629825,0 7.4172221,46.3629603,0 7.4171363,46.3628863,0 7.4170183,46.3627974,0 7.416911,46.3627752,0 7.4168573,46.3628271,0 7.4169324,46.3629011,0 7.4170183,46.3629825,0 7.4171363,46.3631232,0 7.4172972,46.3632417,0 7.4173616,46.3634638,0 7.4175762,46.3635674,0 7.4176298,46.3636563,0 7.4178444,46.3639598,0 7.4180268,46.3641449,0 7.4182306,46.3643522,0 7.4183164,46.3644707,0 7.4183272,46.3645447,0 7.4182306,46.3645669,0 7.4181126,46.3645077,0 7.4181448,46.3645595,0 7.4181448,46.3646188,0 7.4181233,46.3646928,0 7.4182199,46.3647964,0 7.4183594,46.3649223,0 7.418531,46.3650186,0 7.418531,46.3651148,0 7.4184559,46.3652629,0 7.418413,46.3653295,0 7.4184237,46.3653739,0 7.4185096,46.3653369,0 7.418531,46.3652777,0 7.418649,46.3652184,0 7.4187885,46.3652333,0 7.4189709,46.3651962,0 7.4191426,46.3650926,0 7.4192284,46.3649815,0 7.4193142,46.3648705,0 7.4194752,46.3648853,0 7.4196468,46.3649741,0 7.4197327,46.3650778,0 7.4198829,46.365063,0 7.4199043,46.3650111,0 7.4201618,46.3650334,0 7.4202906,46.3651296,0 7.4204193,46.3652407,0 7.4204729,46.3653739,0 7.42043,46.3654776,0 7.4204837,46.3655294,0 7.4204944,46.3657145,0 7.4204837,46.3659366,0 7.4203657,46.3660772,0 7.4202369,46.3662179,0 7.4202047,46.3664326,0 7.4202798,46.3665585,0 7.4203657,46.3667436,0 7.420548,46.3668916,0 7.4206231,46.3670619,0 7.4206768,46.367284,0 7.4207304,46.3673802,0 7.4210845,46.3674617,0 7.4212883,46.3675801,0 7.4213313,46.3676542,0 7.4215244,46.3676393,0 7.4217711,46.3676023,0 7.4220715,46.3675431,0 7.4225222,46.3676023,0 7.4228977,46.3677652,0 7.4231552,46.3678837,0 7.4233391,46.3679547,0 7.4234234,46.3679873,0 7.4236701,46.3680095,0 7.4238203,46.3680317,0 7.4239276,46.3681206,0 7.4240564,46.3683204,0 7.4241744,46.3684759,0 7.4241637,46.3685721,0 7.4240778,46.3686832,0 7.4240993,46.368809,0 7.4239598,46.3689275,0 7.4237882,46.3690681,0 7.4236701,46.3692014,0 7.4236701,46.3693347,0 7.4238203,46.3695271,0 7.4239169,46.3695567,0 7.4241851,46.3695864,0 7.4244212,46.3695715,0 7.4245499,46.3696308,0 7.4245714,46.3697566,0 7.4245606,46.3698381,0 7.4246357,46.3699639,0 7.4247645,46.3700379,0 7.4248289,46.3700749,0 7.4249342,46.3700574,0 7.4250399,46.37001,0 7.4251498,46.3700325,0 7.4253692,46.3700204,0 7.4254505,46.3701257,0 7.4255205,46.3701847,0 7.4254798,46.3702635,0 7.4255506,46.3704363,0 7.4256657,46.3705709,0 7.4258266,46.3705561,0 7.4259017,46.3705783,0 7.4259125,46.370682,0 7.4259339,46.3707634,0 7.4260734,46.3707856,0 7.4262451,46.370793,0 7.4263845,46.3708448,0 7.426376,46.3709474,0 + + + + Lämmernweg süd + Lämmernweg süd, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.611382,46.3964875,0 7.6114292,46.3962389,0 7.6108557,46.3963143,0 7.6102376,46.3963577,0 7.6097209,46.3964049,0 7.6097625,46.3965224,0 7.6089079,46.3964609,0 7.607996,46.3964387,0 7.6073737,46.3964387,0 7.6069124,46.3964239,0 7.6068694,46.3963499,0 7.6065261,46.3963277,0 7.6062794,46.3964387,0 7.606054,46.3964387,0 7.6053889,46.3962907,0 7.6048417,46.3963721,0 7.6044233,46.3964979,0 7.6042623,46.3965866,0 7.603919,46.3966754,0 7.6035435,46.3966236,0 7.6030929,46.3966902,0 7.6027496,46.3967938,0 7.602299,46.396927,0 7.6021058,46.396964,0 7.6015479,46.3968752,0 7.6010115,46.3967198,0 7.6008398,46.3966162,0 7.6006789,46.396631,0 7.6003678,46.3965053,0 7.6000566,46.3964017,0 7.5991554,46.3964313,0 7.5987155,46.3963499,0 7.5981791,46.3964017,0 7.5978327,46.3964729,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5890918,46.3955507,0 7.5891478,46.3953803,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5890918,46.3955507,0 7.5889469,46.3955137,0 7.5887431,46.3955433,0 7.5885929,46.3955359,0 7.5882281,46.3956617,0 7.5881798,46.3956099,0 7.5879277,46.3957505,0 7.5879009,46.3958134,0 7.5877989,46.3958171,0 7.5878043,46.3958615,0 7.5876916,46.3958282,0 7.5877077,46.3959318,0 7.587925,46.3962126,0 + + + + Bunkertunnel + Bunkertunnel, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6097625,46.3965224,0 7.6108557,46.3963143,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.618857,46.3719589,0 7.6188592,46.3720632,0 7.6189053,46.3722772,0 7.6187819,46.3724918,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4673625,46.4564555,0 7.467345,46.456468,0 7.467191,46.456466,0 7.467011,46.456589,0 7.4668276,46.4566405,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6086644,46.4388706,0 7.6059896,46.4390346,0 7.6040186,46.4382136,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6188287,46.4183578,0 7.619399,46.41861,0 7.6196936,46.4187362,0 7.6200723,46.418852,0 7.6203984,46.4190413,0 7.6208718,46.4191045,0 7.6213242,46.4191045,0 7.6217029,46.4191045,0 7.6223026,46.4190203,0 7.6225795,46.4190323,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.545644,46.4989186,0 7.5453618,46.4983976,0 7.5448129,46.497796,0 7.5442378,46.4967916,0 7.5442063,46.4956444,0 + + + + Gemmiweg + Gemmiweg, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6165875,46.3938373,0 7.6168364,46.3943921,0 7.6173565,46.3951755,0 7.6172441,46.395445,0 7.6169051,46.3958102,0 7.616989,46.3961054,0 7.6171827,46.3958529,0 7.6174721,46.3954421,0 7.617529,46.3951648,0 7.6173761,46.3949876,0 7.6176494,46.3952003,0 7.6175373,46.3949445,0 7.6173232,46.3945064,0 7.6170816,46.3940832,0 7.6167553,46.3939985,0 7.6167307,46.3937498,0 + + + + Gemmiweg + Gemmiweg, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6167307,46.3937498,0 7.6172078,46.3936647,0 7.6176542,46.3933273,0 7.6179288,46.3933273,0 7.6176112,46.3937595,0 7.6179288,46.3941146,0 7.6181262,46.3942746,0 7.6181691,46.3937713,0 7.6181863,46.3935464,0 7.6189588,46.3927649,0 7.6184722,46.3925455,0 7.6182284,46.3927317,0 7.6178116,46.3929224,0 7.6166641,46.3926529,0 7.6163907,46.3927661,0 7.6159441,46.3927095,0 7.6158621,46.3925335,0 7.6153802,46.3923545,0 7.6151785,46.3920809,0 7.6151421,46.3918357,0 7.6153882,46.3920432,0 7.615616,46.3920683,0 7.6157618,46.3915529,0 7.6158803,46.3917729,0 7.6161628,46.3920935,0 7.6172656,46.3919866,0 7.6174935,46.3918483,0 7.6174265,46.391526,0 7.6177881,46.3912895,0 7.617637,46.3909179,0 7.6176299,46.3902353,0 7.6181192,46.3896255,0 7.6185741,46.3889151,0 7.618617,46.3885954,0 7.6186038,46.3882094,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4785053,46.4263539,0 7.4783109,46.4266478,0 + + + + Bonderlenbach Walking Path + Bonderlenbach Walking Path, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5792169,46.4925621,0 7.5791509,46.4925641,0 + + + + Bonderlenbach Walking Path + Bonderlenbach Walking Path, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5792169,46.4925621,0 7.5793125,46.4925286,0 7.5793674,46.4922433,0 7.579896,46.491972,0 7.580289,46.491577,0 7.580358,46.4913398,0 7.580717,46.4910715,0 7.5810337,46.4907202,0 7.5813065,46.4905421,0 7.5813831,46.4904028,0 7.5817008,46.4902111,0 7.582209,46.489783,0 7.582811,46.489678,0 7.583084,46.489476,0 7.583642,46.489351,0 7.584382,46.488724,0 7.584451,46.488496,0 7.584687,46.488298,0 7.584991,46.4884,0 7.585394,46.488367,0 7.586046,46.488033,0 7.586489,46.487635,0 7.586402,46.486841,0 7.586652,46.486558,0 7.587146,46.486256,0 7.5871827,46.4860238,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5835968,46.5163224,0 7.5835278,46.516243,0 7.5831875,46.5160665,0 7.582901,46.515494,0 7.5829329,46.5151783,0 7.583018,46.515011,0 7.582857,46.515017,0 7.582842,46.514962,0 7.582983,46.514806,0 7.583006,46.514618,0 7.5826838,46.5145655,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.583998,46.516732,0 7.5836354,46.5165224,0 7.583146,46.51642,0 7.583074,46.516172,0 7.582901,46.516045,0 7.5828838,46.5161271,0 7.582968,46.516266,0 7.58253,46.516101,0 7.582413,46.516123,0 7.582236,46.516301,0 7.581972,46.516325,0 7.5813369,46.5161948,0 7.5811935,46.5160699,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5758881,46.4885517,0 7.57579,46.488698,0 7.575762,46.488936,0 7.575673,46.48907,0 7.5754732,46.4891609,0 7.5754081,46.4892532,0 7.5751268,46.4894422,0 7.574963,46.489548,0 7.574921,46.489618,0 7.574974,46.489689,0 7.575061,46.489711,0 7.575154,46.489709,0 7.575232,46.489819,0 7.57509,46.489989,0 7.575101,46.490052,0 7.5751655,46.4901109,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.583616,46.5164476,0 7.5835968,46.5163224,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5836354,46.5165224,0 7.583616,46.5164476,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.577443,46.4885782,0 7.577979,46.488368,0 7.578077,46.488296,0 7.578219,46.488228,0 7.578307,46.48821,0 7.578387,46.488215,0 7.578434,46.488189,0 7.578734,46.488188,0 7.578873,46.488171,0 7.578928,46.488196,0 7.579113,46.488162,0 7.579226,46.488174,0 7.579338,46.488153,0 7.579673,46.488129,0 7.579867,46.488075,0 7.580044,46.488002,0 7.580178,46.487914,0 7.580318,46.487883,0 7.580371,46.487925,0 7.5806,46.488021,0 7.5807961,46.4880853,0 7.5815952,46.4884243,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5900055,46.5210825,0 7.590046,46.521112,0 7.590122,46.521211,0 7.590218,46.521275,0 7.590325,46.521253,0 7.590386,46.521219,0 7.590563,46.521275,0 7.590713,46.521298,0 7.590841,46.521428,0 7.590872,46.521404,0 7.590961,46.521528,0 7.590941,46.521642,0 7.590964,46.521732,0 7.591091,46.521789,0 7.591134,46.521776,0 7.5912266,46.5218003,0 7.591198,46.521758,0 7.591338,46.521783,0 7.591454,46.521725,0 7.591541,46.5217,0 7.591606,46.521663,0 7.5914358,46.5216049,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5788446,46.5204993,0 7.5787501,46.5204233,0 7.5786342,46.5202629,0 7.5782994,46.5200566,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5797057,46.509266,0 7.579856,46.508887,0 7.579984,46.509007,0 7.580344,46.509065,0 7.580417,46.509061,0 7.5806678,46.5089152,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5751655,46.4901109,0 7.575234,46.490227,0 7.575412,46.490443,0 7.575564,46.490731,0 7.575587,46.491121,0 7.575613,46.491252,0 7.5756106,46.4917412,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5718566,46.492604,0 7.5719484,46.4925554,0 7.5720948,46.4923908,0 7.5721505,46.4922987,0 7.5722725,46.4920071,0 7.5723428,46.4917874,0 7.5724562,46.4915977,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5299338,46.4850755,0 7.5298545,46.4853025,0 7.5296791,46.4856935,0 7.5292968,46.4861218,0 7.528969,46.4863518,0 7.5287592,46.4867026,0 7.5286528,46.4871826,0 7.5284947,46.4876225,0 7.5283193,46.4879071,0 7.5284171,46.4881687,0 7.5285206,46.4886632,0 7.5285629,46.4889495,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5611621,46.4717378,0 7.5611814,46.4715986,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5611814,46.4715986,0 7.5612549,46.47139,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5886158,46.521106,0 7.5882453,46.5211526,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5284782,46.4890732,0 7.5280137,46.4891138,0 7.527826,46.4891156,0 7.5277837,46.4891524,0 7.5275537,46.4892205,0 7.5273587,46.4891892,0 7.5272741,46.4893364,0 7.5271434,46.4897762,0 7.5270835,46.4902156,0 7.5269728,46.4906006,0 7.5266136,46.4908715,0 7.5262039,46.4908149,0 7.5263157,46.4908679,0 7.5264182,46.4909433,0 7.5267561,46.4910387,0 7.5270399,46.4912235,0 7.5267326,46.4911435,0 7.5260461,46.4911093,0 7.5256069,46.4911246,0 7.5252571,46.491094,0 7.5251971,46.4911317,0 7.525568,46.4912801,0 7.5258895,46.4914583,0 7.5259861,46.4915802,0 7.5258021,46.4915365,0 7.5253812,46.4915848,0 7.52505,46.4916009,0 7.5247787,46.4916952,0 7.5245414,46.4917116,0 7.524222,46.4917881,0 7.5237731,46.4918337,0 7.5236274,46.491791,0 7.5233992,46.491741,0 7.5236818,46.4918764,0 7.5238452,46.4919647,0 7.5240836,46.4920324,0 7.524353,46.4921531,0 7.5246857,46.4922017,0 7.5248211,46.4922959,0 7.5250536,46.4923989,0 7.5248755,46.4924784,0 7.5244443,46.4924814,0 7.524403,46.4925123,0 7.5242691,46.492577,0 7.5237893,46.4925329,0 7.5235891,46.4925049,0 7.5238614,46.4927345,0 7.5240395,46.4927875,0 7.5243118,46.4928302,0 7.5246018,46.4928626,0 7.5247121,46.492945,0 7.5246121,46.4931776,0 7.5243265,46.4931246,0 7.5238172,46.4931422,0 7.5234772,46.4932129,0 7.5231328,46.4933763,0 7.5232402,46.4933851,0 7.5236221,46.4934281,0 7.5239302,46.4936089,0 7.5240479,46.4936231,0 7.5240696,46.4936758,0 7.5238868,46.4936918,0 7.5236372,46.4936994,0 7.5236023,46.493836,0 7.5236598,46.4939707,0 7.5235581,46.4940658,0 7.523445,46.4942024,0 7.5233395,46.4941902,0 7.5232161,46.4941911,0 7.5231822,46.4942589,0 7.5232651,46.4943202,0 7.5232142,46.4943842,0 7.5230324,46.4944304,0 7.5229234,46.4944286,0 7.5227633,46.4945022,0 7.5226253,46.4946585,0 7.5224616,46.4946052,0 7.5223549,46.49455,0 7.5219556,46.4946733,0 7.5218802,46.4946641,0 7.5215729,46.4948205,0 7.5213668,46.4948996,0 7.5210725,46.4949952,0 7.5210246,46.4950946,0 7.5208793,46.4951572,0 7.5207707,46.495297,0 7.5205665,46.4954147,0 7.5203144,46.4955049,0 7.5201084,46.4955674,0 7.5197592,46.4957073,0 7.5195457,46.4957735,0 7.5193485,46.495959,0 7.5191233,46.4960591,0 7.5189143,46.4961753,0 7.5186096,46.4961488,0 7.5183255,46.4961327,0 7.5182475,46.4963063,0 7.5181504,46.4963063,0 7.5177485,46.4962975,0 7.517647,46.496402,0 7.5174233,46.4964462,0 7.5172996,46.4963299,0 7.517151,46.4963947,0 7.5170465,46.4963431,0 7.5167477,46.4963564,0 7.516443,46.496405,0 7.5161869,46.4963446,0 7.5158395,46.4965286,0 7.5156643,46.4966449,0 7.5156084,46.4966199,0 7.5156791,46.4965227,0 7.5154671,46.4964005,0 7.5152232,46.4962689,0 7.5150141,46.4961521,0 7.5148907,46.4961351,0 7.5147042,46.4961643,0 7.5146712,46.4961898,0 7.5145073,46.4963085,0 7.5143764,46.4964545,0 7.5141371,46.4964385,0 7.5139025,46.4963649,0 7.5138335,46.496289,0 7.5136509,46.4960829,0 7.5135387,46.4958989,0 7.5132461,46.4956174,0 7.5126905,46.4953966,0 7.5124256,46.495507,0 7.5121735,46.4952881,0 7.5119969,46.4951593,0 7.5116933,46.4950654,0 7.5115645,46.4947784,0 7.5112363,46.4945931,0 7.5108051,46.4944099,0 7.5108554,46.4945788,0 7.510841,46.4947764,0 7.510956,46.4949956,0 7.5109704,46.4950711,0 7.5110997,46.4952723,0 7.5109883,46.4954376,0 7.511053,46.4958078,0 7.5109272,46.4961563,0 7.5107547,46.4965696,0 7.5107691,46.4969756,0 7.5109488,46.4972955,0 7.5109074,46.4975939,0 7.5110763,46.4978024,0 7.511335,46.4978778,0 7.5117806,46.4980863,0 7.5121004,46.4982048,0 7.5128551,46.4984564,0 7.5132216,46.4986756,0 7.5136348,46.4988301,0 7.5138576,46.4990457,0 7.5140409,46.4990134,0 7.51435,46.4988589,0 7.5148602,46.498805,0 7.5153813,46.4989631,0 7.5159167,46.4989128,0 7.5160101,46.4990709,0 7.5162761,46.4990924,0 7.5165851,46.4990206,0 7.5168331,46.4990996,0 7.5168834,46.4992721,0 7.5167971,46.4995776,0 7.5168546,46.4998758,0 7.5168906,46.5000052,0 7.5167828,46.5001849,0 7.5167756,46.5003574,0 7.5168474,46.5005442,0 7.5171313,46.500882,0 7.5173218,46.5013815,0 7.5174044,46.5013959,0 7.5175446,46.5015612,0 7.5174763,46.501863,0 7.5175554,46.5020643,0 7.5176703,46.5023625,0 7.5179291,46.5025638,0 7.518177,46.5025242,0 7.5182489,46.5026213,0 7.5183819,46.5027219,0 7.5187161,46.5030812,0 7.5189101,46.5031818,0 7.5191617,46.5032896,0 7.5191329,46.5035232,0 7.5191509,46.5037173,0 7.5192156,46.5039437,0 7.5195857,46.5041341,0 7.5199414,46.5042383,0 7.520272,46.5041521,0 7.5204841,46.504224,0 7.5205775,46.504551,0 7.521095,46.5044432,0 7.521731,46.5046731,0 7.5218819,46.5047342,0 7.5222377,46.5048349,0 7.5229205,46.5051367,0 7.5223563,46.5051475,0 7.5217454,46.5051259,0 7.5216268,46.5053739,0 7.5219969,46.5054673,0 7.5225683,46.5055859,0 7.5230606,46.5055787,0 7.5233716,46.5055941,0 7.5236641,46.5057762,0 7.5238187,46.5057486,0 7.5240744,46.505561,0 7.5243154,46.5055941,0 7.5244645,46.505561,0 7.524794,46.505601,0 7.5248928,46.5054393,0 7.5251264,46.5055381,0 7.5252477,46.5053495,0 7.5253644,46.505345,0 7.5256025,46.5051384,0 7.5257732,46.505062,0 7.5259619,46.5051923,0 7.5262943,46.5051923,0 7.5263976,46.505071,0 7.5265009,46.5048464,0 7.526739,46.5049272,0 7.5269905,46.5048913,0 7.526986,46.5047745,0 7.5270219,46.5046577,0 7.5272555,46.5044601,0 7.5275116,46.5043253,0 7.5277047,46.5041142,0 7.5281359,46.5039884,0 7.5287378,46.5040693,0 7.5289535,46.5041412,0 7.5295239,46.5039345,0 7.5299327,46.5037818,0 7.5304987,46.5034225,0 7.5309434,46.5031035,0 7.5316388,46.5026561,0 7.5320087,46.5024271,0 7.532634,46.502154,0 7.5331537,46.501837,0 7.5337702,46.5015199,0 7.5343955,46.5011059,0 7.5349328,46.5007713,0 7.5353291,46.500463,0 7.535699,46.4998289,0 7.5358135,46.4996263,0 7.5366414,46.4992212,0 7.5413582,46.4976497,0 7.542458,46.4973265,0 7.5428044,46.497004,0 7.5429425,46.4974133,0 7.5430314,46.4972745,0 7.5432425,46.4975431,0 7.5432637,46.4974015,0 7.543431,46.4975358,0 7.5435531,46.4973951,0 7.5442586,46.4980313,0 7.5453618,46.4983976,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5284723,46.4889619,0 7.5284782,46.4890732,0 7.5284879,46.4891875,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.589224,46.5211243,0 7.5887088,46.5208145,0 7.5886158,46.521106,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5882453,46.5211526,0 7.587849,46.5206548,0 7.5876898,46.5205699,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5811876,46.5165553,0 7.581105,46.516431,0 7.581328,46.516318,0 7.5813369,46.5161948,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5572902,46.4904128,0 7.5569738,46.4903625,0 7.5567747,46.4902998,0 7.5565619,46.4901569,0 7.5564031,46.4900393,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5442063,46.4956444,0 7.5441027,46.4955627,0 7.543313,46.4953914,0 7.5417852,46.4952141,0 7.5384722,46.4958877,0 7.5378027,46.4959527,0 7.5386696,46.4954209,0 7.5404806,46.493666,0 7.5404463,46.4936187,0 7.5395536,46.4938492,0 7.539073,46.4940796,0 7.5377598,46.4944932,0 7.5374851,46.4946528,0 7.5371332,46.4947178,0 7.5368843,46.4946941,0 7.5364552,46.4944578,0 7.5350304,46.4942333,0 7.5356312,46.4942155,0 7.5346699,46.4938078,0 7.5345669,46.4938137,0 7.5337944,46.4945405,0 7.5335026,46.4946173,0 7.5330992,46.494895,0 7.5331593,46.4944755,0 7.5328331,46.4943219,0 7.5328674,46.4940678,0 7.532258,46.4942569,0 7.5322065,46.4943692,0 7.5320606,46.4942096,0 7.5315456,46.4943987,0 7.5310993,46.4946941,0 7.5309277,46.4945701,0 7.5308332,46.4942392,0 7.5310907,46.4939733,0 7.5310049,46.4938196,0 7.531065,46.4936187,0 7.5308332,46.4932701,0 7.5307217,46.4932228,0 7.53055,46.4932642,0 7.5301724,46.4934533,0 7.5301552,46.4931578,0 7.5298548,46.4931697,0 7.5296059,46.4933469,0 7.52952,46.4935656,0 7.5293484,46.4932997,0 7.5293655,46.4931342,0 7.5288248,46.4932347,0 7.528739,46.4930987,0 7.528945,46.492951,0 7.5286531,46.4929747,0 7.5289192,46.4927147,0 7.528945,46.4924074,0 7.5291853,46.4921119,0 7.5283613,46.4921651,0 7.528327,46.4920529,0 7.528945,46.4914915,0 7.5293655,46.4912729,0 7.5293055,46.4911842,0 7.5288506,46.491261,0 7.5283957,46.4911842,0 7.5286875,46.4910306,0 7.5289364,46.4906938,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5797311,46.5157548,0 7.5795577,46.5157983,0 7.5794887,46.5156381,0 7.5798922,46.5156733,0 7.5802352,46.5155193,0 7.5807117,46.5159997,0 7.5811935,46.5160699,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6240644,46.4319535,0 7.6229314,46.4322197,0 7.6225538,46.4321901,0 7.6223005,46.4319807,0 7.6220817,46.4317997,0 7.6217384,46.4311371,0 7.6211719,46.4303385,0 7.6206312,46.429321,0 7.6206397,46.428824,0 7.6206655,46.4282561,0 7.6202878,46.4277355,0 7.6201591,46.427138,0 7.6203136,46.4265109,0 7.6203994,46.4260021,0 7.6208887,46.4251619,0 7.621129,46.4249194,0 7.6213779,46.4249312,0 7.6214637,46.4246768,0 7.6217555,46.4245171,0 7.622056,46.424523,0 7.6221847,46.4243218,0 7.6222705,46.4235054,0 7.6223564,46.4232628,0 7.6228848,46.4228375,0 7.623146,46.4219611,0 7.6233162,46.4217127,0 7.6231975,46.4203281,0 7.6232747,46.4200559,0 7.6235705,46.4197968,0 7.6237812,46.4196122,0 7.6234722,46.4190027,0 7.6241075,46.4180133,0 7.6237558,46.4135276,0 7.622349,46.411426,0 7.622269,46.4103269,0 7.6222984,46.4100075,0 7.6223212,46.4098275,0 7.6221581,46.4095408,0 7.6220343,46.4092423,0 7.6220442,46.4087396,0 7.6219789,46.408495,0 7.622036,46.408225,0 7.6220138,46.4081401,0 7.6220272,46.4080307,0 7.6219912,46.4078595,0 7.6218334,46.4076621,0 7.621853,46.4075699,0 7.6218432,46.4075069,0 7.6218171,46.4073382,0 7.6216637,46.407201,0 7.6216116,46.4067555,0 7.6214745,46.4064181,0 7.6213817,46.4061354,0 7.6211026,46.4059412,0 7.6208351,46.4056105,0 7.6204991,46.4050999,0 7.6203001,46.4049064,0 7.6200956,46.4045367,0 7.6191214,46.4039463,0 7.6187152,46.4035454,0 7.6185974,46.4029784,0 7.6183611,46.4027152,0 7.618025,46.4024362,0 7.6177216,46.4020088,0 7.6173518,46.4015782,0 7.6171968,46.401491,0 7.6171248,46.4012666,0 7.6169562,46.4010242,0 7.616789,46.4008723,0 7.6166055,46.4005798,0 7.6163119,46.4004477,0 7.6162257,46.4002455,0 7.6159082,46.4001664,0 7.6158021,46.400068,0 7.615741,46.3999246,0 7.6155345,46.3998258,0 7.6155034,46.3995861,0 7.6153372,46.3993537,0 7.6151007,46.3993059,0 7.6147908,46.3988956,0 7.614583,46.39872,0 7.6144629,46.3985904,0 7.6144107,46.398504,0 7.6144451,46.3984215,0 7.6149668,46.3984892,0 7.6159224,46.3981975,0 7.6160369,46.3979777,0 7.6162827,46.3980041,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5939523,46.4441727,0 7.5941669,46.4450295,0 7.5934587,46.4457548,0 7.5933515,46.4466271,0 7.5945316,46.4482231,0 7.5945316,46.4490074,0 7.594943,46.450099,0 7.5953899,46.4508259,0 7.5959049,46.4512694,0 7.5969564,46.4515798,0 7.5982438,46.4518016,0 7.5986526,46.4521268,0 7.5989734,46.4519199,0 7.5995956,46.4519199,0 7.6003692,46.4512982,0 7.6023637,46.4513285,0 7.6027285,46.4516685,0 7.6031576,46.451639,0 7.6036941,46.4516537,0 7.6038443,46.4518311,0 7.6055823,46.4522155,0 7.606784,46.4522296,0 7.6084362,46.451313,0 7.6090166,46.4513573,0 7.609831,46.452407,0 7.6112472,46.4526147,0 7.6135442,46.4523486,0 7.6140581,46.4528652,0 7.6154314,46.4531321,0 7.6163122,46.4537966,0 7.6164828,46.4533383,0 7.6173626,46.4528956,0 7.6181136,46.4534869,0 7.6183078,46.4541078,0 7.6189075,46.4544034,0 7.6193582,46.4541373,0 7.6189075,46.4536938,0 7.6189505,46.4526295,0 7.6184999,46.451639,0 7.6174935,46.4511659,0 7.6163766,46.4503372,0 7.6160537,46.4500571,0 7.6155398,46.4499085,0 7.6158266,46.4496374,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.565617,46.454428,0 7.5666152,46.4552017,0 7.5666581,46.4555121,0 7.5668942,46.4560583,0 7.5663148,46.4560591,0 7.5659082,46.4558226,0 7.5657784,46.4563547,0 7.5656925,46.4567539,0 7.5652732,46.457071,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5631545,46.4467541,0 7.5632249,46.4472628,0 7.5633107,46.4479429,0 7.5632249,46.4485269,0 7.5631498,46.449,0 7.5635575,46.4492214,0 7.5643198,46.4494214,0 7.5645982,46.4497762,0 7.5646202,46.4501898,0 7.5648128,46.4507002,0 7.5644372,46.4508776,0 7.5647162,46.4511359,0 7.5650917,46.4512546,0 7.5650702,46.4513876,0 7.5658749,46.4517424,0 7.5653385,46.4518016,0 7.5646947,46.4515503,0 7.5639115,46.4515724,0 7.5640939,46.4518459,0 7.5642225,46.4520855,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5145904,46.4695704,0 7.5139015,46.469419,0 7.5126127,46.4689973,0 7.510378,46.4680514,0 7.5095656,46.4678181,0 7.5084436,46.4667202,0 7.5071567,46.4661894,0 7.505739,46.4654072,0 7.5052464,46.4648341,0 7.5041354,46.4642962,0 7.5039997,46.4641152,0 7.5025871,46.4638186,0 7.5017828,46.463507,0 7.5013203,46.4635723,0 7.5007337,46.4632858,0 7.5001289,46.4627517,0 7.5002388,46.4623825,0 7.5000975,46.462029,0 7.4998932,46.4618562,0 7.4996275,46.4618288,0 7.4998608,46.461322,0 7.4996878,46.4611049,0 7.4994787,46.4610968,0 7.4982335,46.4604124,0 7.4974418,46.4602679,0 7.4968574,46.4600731,0 7.4967003,46.4600542,0 7.4962353,46.4601925,0 7.4959148,46.4601799,0 7.4958959,46.4600102,0 7.4954686,46.4593819,0 7.4951482,46.4591054,0 7.4939668,46.4584896,0 7.4938194,46.4583292,0 7.4938408,46.4580558,0 7.4937617,46.457859,0 7.4935726,46.4576419,0 7.4935034,46.4572164,0 7.4935082,46.4569102,0 7.4938086,46.4566589,0 7.4937872,46.4564667,0 7.4935726,46.4563115,0 7.4935941,46.4561267,0 7.4937121,46.4559789,0 7.4936799,46.4558606,0 7.4935726,46.4557424,0 7.4935835,46.4556522,0 7.4936799,46.4554763,0 7.4939267,46.4554098,0 7.4940447,46.4552915,0 7.4940447,46.455055,0 7.494128,46.454872,0 7.4943129,46.4547002,0 7.4943987,46.4543306,0 7.4945216,46.4540381,0 7.4947635,46.4537097,0 7.49497,46.4533356,0 7.4952249,46.4530888,0 7.4955682,46.4528375,0 7.4957291,46.4526601,0 7.4961583,46.4523645,0 7.496523,46.4521723,0 7.4967269,46.4519653,0 7.4968664,46.4516844,0 7.4972955,46.4512261,0 7.497553,46.4510192,0 7.4976818,46.4508417,0 7.4979607,46.4505017,0 7.4983148,46.450036,0 7.498465,46.4495925,0 7.4987868,46.448979,0 7.4989048,46.4483802,0 7.4990336,46.4480401,0 7.4989048,46.4477666,0 7.4986366,46.4475153,0 7.4985508,46.4471974,0 7.4986581,46.44702,0 7.4987976,46.4468426,0 7.4988619,46.4466504,0 7.4989048,46.4463768,0 7.4988512,46.4461551,0 7.4986795,46.4456598,0 7.4985937,46.4454823,0 7.4984542,46.4452975,0 7.4983684,46.4451645,0 7.4984328,46.4450684,0 7.4986259,46.4449427,0 7.4988512,46.4447579,0 7.4990443,46.4444621,0 7.4992267,46.4443069,0 7.4994091,46.4442625,0 7.4995486,46.4441517,0 7.4995271,46.4439447,0 7.4995164,46.4437524,0 7.4996344,46.4434937,0 7.4999563,46.4431314,0 7.5002459,46.4427987,0 7.5003854,46.4426731,0 7.5006429,46.4424217,0 7.5009111,46.442296,0 7.5010721,46.4422369,0 7.5010506,46.442126,0 7.5009004,46.4420225,0 7.5007502,46.4419929,0 7.5006536,46.4419559,0 7.5006107,46.4419042,0 7.5006,46.4417711,0 7.5005678,46.441638,0 7.5004605,46.4415863,0 7.5004498,46.4415419,0 7.5004905,46.4414532,0 7.5005142,46.4414015,0 7.5005142,46.4412906,0 7.5004283,46.4413349,0 7.5002352,46.4413941,0 7.5001601,46.4413867,0 7.5000636,46.4412906,0 7.4999455,46.4411944,0 7.4997631,46.4411057,0 7.4996344,46.4411427,0 7.4993662,46.4411427,0 7.4991194,46.4410761,0 7.4987868,46.4409948,0 7.4984864,46.4408396,0 7.4982933,46.4406326,0 7.4977676,46.4403886,0 7.497435,46.4402481,0 7.4972097,46.4401963,0 7.4971668,46.4402851,0 7.4972526,46.4404255,0 7.4973492,46.4405438,0 7.4973062,46.4407139,0 7.4972848,46.4409209,0 7.4974135,46.4410909,0 7.4974886,46.441224,0 7.4975637,46.4414606,0 7.4976067,46.441638,0 7.4976603,46.4418303,0 7.4976603,46.4419485,0 7.4976388,46.4423404,0 7.4974564,46.4426879,0 7.4969522,46.442991,0 7.496566,46.4432497,0 7.4962226,46.443575,0 7.4961046,46.4437377,0 7.4959437,46.4437894,0 7.4956969,46.4437894,0 7.4954823,46.4438042,0 7.4951283,46.4438707,0 7.4948406,46.4440224,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4392764,46.5663903,0 7.4384143,46.5654398,0 7.4383285,46.5644956,0 7.4369552,46.5639645,0 7.4358394,46.5630793,0 7.4334362,46.5624892,0 7.4318054,46.561545,0 7.4313762,46.5601286,0 7.4301746,46.5598335,0 7.4283721,46.5600106,0 7.4268272,46.5598925,0 7.4253681,46.5597745,0 7.4243488,46.5597302,0 7.4237311,46.5597542,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6025506,46.5498156,0 7.6028653,46.5497501,0 7.6028389,46.54964,0 7.6031894,46.5495721,0 7.6035778,46.5494457,0 7.6037914,46.5494037,0 7.6040446,46.549479,0 7.6042355,46.5496465,0 7.6045554,46.5500853,0 7.604603,46.550328,0 7.6047518,46.55048,0 7.604832,46.550562,0 7.6048525,46.5506675,0 7.604877,46.550899,0 7.60495,46.550924,0 7.6051,46.551122,0 7.605191,46.551234,0 7.605464,46.551456,0 7.605639,46.551512,0 7.605784,46.551733,0 7.605943,46.551818,0 7.606095,46.552009,0 7.606435,46.552209,0 7.60649,46.552187,0 7.606543,46.552362,0 7.606685,46.552431,0 7.606803,46.552701,0 7.606729,46.552879,0 7.606867,46.553505,0 7.607232,46.553864,0 7.607482,46.553954,0 7.6077446,46.5542054,0 7.6081817,46.5543071,0 7.6082734,46.5543499,0 7.6085418,46.5544171,0 7.6087851,46.5544514,0 7.6090718,46.5545225,0 7.6093117,46.5546698,0 7.60936,46.5548103,0 7.6093995,46.5548684,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5849029,46.5115884,0 7.58481,46.5116222,0 7.5846421,46.5115122,0 7.5846131,46.5115867,0 7.5845005,46.5115558,0 7.5843126,46.5114523,0 7.584142,46.5112744,0 7.5839847,46.5111716,0 7.5834605,46.5109729,0 7.5833227,46.5109291,0 7.5831168,46.5109274,0 7.5827628,46.5107142,0 7.5825833,46.5106646,0 7.5823735,46.5106181,0 7.5820585,46.510608,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5620328,46.4912044,0 7.5624485,46.4911228,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5870469,46.5174702,0 7.5869142,46.5174469,0 7.5867683,46.5173533,0 7.5866814,46.5173433,0 7.5865673,46.5172963,0 7.5864711,46.5172304,0 7.5864401,46.5171526,0 7.5864303,46.5170445,0 7.5861962,46.5172065,0 7.5861315,46.5173462,0 7.5861156,46.5174414,0 7.5860537,46.5175235,0 7.5860095,46.5175323,0 7.5859337,46.5175202,0 7.5858968,46.5174461,0 7.5858323,46.5174205,0 7.5857805,46.5174263,0 7.5855589,46.517562,0 7.5853542,46.517598,0 7.5850387,46.5177229,0 7.5848903,46.5179375,0 7.5847829,46.5179983,0 7.5843919,46.5179006,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.6168363,46.5609385,0 7.6169212,46.5608065,0 7.6169276,46.5608025,0 7.61705,46.560728,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.580134,46.5028204,0 7.5796817,46.5029734,0 7.5793242,46.5029233,0 7.579196,46.503146,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.580325,46.5027273,0 7.5804032,46.5026495,0 7.5801302,46.5020994,0 7.58,46.501965,0 7.5796142,46.5018839,0 7.578915,46.5018479,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.489344,46.4970621,0 7.4894459,46.4970965,0 7.4895445,46.4970424,0 7.4896947,46.4970225,0 7.4897056,46.4969934,0 7.4898076,46.4969784,0 7.4899233,46.4970458,0 7.4901552,46.4970463,0 7.4902717,46.4970463,0 7.4903687,46.4970477,0 7.4904743,46.4971045,0 7.4906798,46.4971168,0 7.4907075,46.497224,0 7.4909032,46.4972302,0 7.4910534,46.4972581,0 7.4912316,46.4972956,0 7.4913717,46.4972872,0 7.4914988,46.4973022,0 7.4915715,46.4972667,0 7.4916332,46.4972247,0 7.4918452,46.4972365,0 7.4919829,46.4973915,0 7.4921941,46.4973733,0 7.4923721,46.4972622,0 7.4924976,46.4972333,0 7.492589,46.4971636,0 7.4927543,46.4971714,0 7.4929234,46.4971128,0 7.4930718,46.4971128,0 7.493159,46.4970928,0 7.4933313,46.4971206,0 7.4935232,46.4972342,0 7.4936332,46.4972942,0 7.4937682,46.4973207,0 7.4938968,46.497335,0 7.4940006,46.497385,0 7.4940255,46.497415,0 7.4942216,46.4974164,0 7.4942725,46.4973392,0 7.4944624,46.49736,0 7.4946274,46.4974493,0 7.4946928,46.4975107,0 7.4947986,46.4974885,0 7.4950799,46.4975193,0 7.495331,46.4974493,0 7.4954389,46.4975107,0 7.4958032,46.4975586,0 7.4961539,46.4975907,0 7.4963303,46.4975907,0 7.4966717,46.4976114,0 7.497279,46.4976768,0 7.4973942,46.4977876,0 7.4978249,46.497889,0 7.498132,46.4979726,0 7.4985585,46.4980312,0 7.4988159,46.4980747,0 7.4994832,46.4980947,0 7.5000228,46.4982469,0 7.5002407,46.4983733,0 7.5005136,46.4985698,0 7.5008405,46.4987991,0 7.5011591,46.4989948,0 7.5012587,46.499107,0 7.5016936,46.4992741,0 7.5021211,46.4993741,0 7.5019653,46.4996232,0 7.5019439,46.49983,0 7.5017293,46.4999925,0 7.5016005,46.5001254,0 7.5016864,46.5006276,0 7.5020297,46.5008491,0 7.5019009,46.5010855,0 7.5018795,46.5012627,0 7.5023086,46.50144,0 7.5024588,46.5017797,0 7.5025447,46.5019569,0 7.5025876,46.5021785,0 7.5025661,46.5024886,0 7.5030167,46.502592,0 7.503639,46.5028136,0 7.5043257,46.5030351,0 7.5048621,46.5028874,0 7.5052698,46.502784,0 7.5056775,46.5027692,0 7.5062354,46.5029908,0 7.5066646,46.5033453,0 7.5069864,46.5035963,0 7.5073512,46.5038179,0 7.5076731,46.5040247,0 7.5076516,46.5041871,0 7.5073297,46.5042314,0 7.5067718,46.5043496,0 7.5064714,46.5043939,0 7.5064929,46.504512,0 7.5067075,46.5046007,0 7.5070508,46.5047779,0 7.5070293,46.5050142,0 7.5067504,46.5051471,0 7.5064714,46.5053391,0 7.5061281,46.5055016,0 7.5052698,46.5057379,0 7.5047763,46.5060776,0 7.5041325,46.5065649,0 7.5035103,46.5070228,0 7.5029309,46.507392,0 7.5026091,46.5076578,0 7.5020726,46.5079089,0 7.5017507,46.5081156,0 7.5014933,46.5083076,0 7.5010641,46.5087211,0 7.5009783,46.5090903,0 7.5009139,46.5095777,0 7.500871,46.5099764,0 7.5004204,46.5104047,0 7.50012,46.5108477,0 7.4996479,46.5110987,0 7.4990042,46.5111578,0 7.4984248,46.511335,0 7.4983604,46.5116451,0 7.4982317,46.5120438,0 7.4977811,46.5122063,0 7.4976952,46.5123244,0 7.4978025,46.512413,0 7.4976952,46.5125607,0 7.4972876,46.5127674,0 7.4966224,46.5129889,0 7.4961288,46.5132843,0 7.4958284,46.5133286,0 7.4954422,46.5134467,0 7.4951847,46.5136239,0 7.4946268,46.5138011,0 7.4940904,46.513875,0 7.4938758,46.513934,0 7.4935539,46.5140965,0 7.4933608,46.5141408,0 7.492996,46.5139488,0 7.4925883,46.5139931,0 7.492245,46.5140965,0 7.491966,46.5142589,0 7.4917944,46.5144213,0 7.4914511,46.5144804,0 7.4911077,46.5143475,0 7.490743,46.5142294,0 7.4903996,46.5143179,0 7.4901636,46.5145247,0 7.4897774,46.5147314,0 7.4892838,46.5148643,0 7.4884255,46.5152482,0 7.487696,46.5154845,0 7.4874599,46.5156174,0 7.486945,46.515957,0 7.4861725,46.5160456,0 7.485636,46.5160751,0 7.4854834,46.5161258,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5810925,46.497901,0 7.580999,46.498044,0 7.580567,46.497948,0 7.5805282,46.4980101,0 7.580489,46.498073,0 7.5806637,46.4981927,0 7.580764,46.498291,0 7.580732,46.498332,0 7.5806387,46.4983733,0 7.5803456,46.4986969,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5868088,46.5114574,0 7.5867929,46.5114531,0 7.5867416,46.5114409,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5875342,46.512005,0 7.5873571,46.5120171,0 7.5869236,46.5118061,0 7.5868421,46.5116025,0 7.5868468,46.5114841,0 7.5868088,46.5114574,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5633366,46.4810949,0 7.563085,46.4812124,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5461028,46.4845429,0 7.5460141,46.4844262,0 7.5458652,46.4843459,0 7.5456547,46.4842848,0 7.5455029,46.4842106,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.4579366,46.4368633,0 7.4561507,46.438472,0 7.4554266,46.4407469,0 7.4562657,46.4407434,0 7.4565824,46.4408413,0 + + + + Margeliweg + Margeliweg, Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5702308,46.4974098,0 7.5701367,46.4975929,0 7.570127,46.497612,0 7.569897,46.497685,0 7.5695,46.497694,0 7.569391,46.497615,0 7.569158,46.49761,0 7.569122,46.497717,0 7.569308,46.49812,0 7.570074,46.498377,0 7.57033,46.498687,0 7.5705898,46.498823,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5685948,46.4864379,0 7.5688213,46.4863868,0 7.5691195,46.4862141,0 7.569185,46.4860615,0 7.5693007,46.4859109,0 7.5694777,46.4858092,0 7.5698205,46.4856595,0 7.5701528,46.485471,0 7.5704268,46.485429,0 7.5706475,46.4853774,0 7.5710397,46.4852471,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5677844,46.4896259,0 7.567876,46.4895408,0 7.567961,46.489547,0 7.5679627,46.4894969,0 7.5680063,46.4894105,0 7.5680732,46.4893894,0 7.5681704,46.489411,0 7.5682202,46.4893757,0 7.5682202,46.489292,0 7.5682275,46.4892296,0 7.5682582,46.4891723,0 7.5683261,46.4891145,0 7.5683411,46.4890816,0 7.5683272,46.4889471,0 7.5684098,46.4889418,0 7.5685373,46.4889605,0 7.5687317,46.4889811,0 7.5688378,46.4889221,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.571083,46.4852752,0 7.5712609,46.4852006,0 7.5714092,46.4851008,0 7.5715368,46.4849655,0 7.571555,46.4849207,0 7.5718393,46.4846598,0 7.5719243,46.4846003,0 7.5721098,46.484547,0 7.5721753,46.4845139,0 7.5722317,46.4845225,0 7.572362,46.4844702,0 7.5724345,46.4844726,0 7.5724951,46.4845446,0 7.5725829,46.484605,0 7.5727,46.484345,0 7.5728469,46.4841998,0 7.5728858,46.4841269,0 7.5730058,46.4840919,0 7.5730633,46.4841159,0 7.573079,46.4840679,0 7.5731306,46.484102,0 7.5731696,46.4840926,0 7.5732194,46.4840055,0 7.5732887,46.4839626,0 7.5732988,46.4839684,0 7.5733114,46.4840442,0 7.5733703,46.484136,0 7.5734232,46.4842003,0 7.5734601,46.484221,0 7.5735123,46.4842222,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5684612,46.487926,0 7.5684632,46.487807,0 7.5684908,46.4874257,0 7.5683489,46.4873599,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5756624,46.4951092,0 7.5750979,46.4947883,0 7.5743523,46.4946252,0 7.5737649,46.4942215,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.5728372,46.4890235,0 7.5727436,46.4888729,0 7.5722582,46.4884277,0 7.5718875,46.4882051,0 7.5717091,46.4881898,0 7.5714861,46.4882473,0 + + + + , Summer Walking Path + #style-Summer_Hiking + + relativeToGround + 7.563239,46.4912821,0 7.5633949,46.4913423,0 7.5634393,46.4913395,0 7.5642021,46.4916877,0 7.564343,46.4917357,0 7.5645316,46.4919494,0 + + + + + + Waterways + + Waterway_River + + + Rotten + #style-Waterway_River + + relativeToGround + 8.3809611,46.5793095,0 8.3810126,46.578759,0 8.3804404,46.5779554,0 8.3798931,46.577374,0 8.3796941,46.57669,0 8.3797688,46.5757666,0 8.3793707,46.5750997,0 8.3802912,46.574313,0 8.3811619,46.5730647,0 8.3808633,46.5722438,0 8.3797328,46.5712548,0 8.3789478,46.5704823,0 8.3785,46.5695246,0 8.3773308,46.56908,0 8.375067,46.567746,0 8.3744202,46.5672671,0 8.3728778,46.5667711,0 8.3720818,46.5664119,0 8.3707135,46.5663948,0 8.3695194,46.5661554,0 8.3686985,46.5654712,0 8.3682507,46.5648555,0 8.3669571,46.5647016,0 8.3665591,46.564445,0 8.3660615,46.5645305,0 8.3656712,46.5644753,0 8.365166,46.5642227,0 8.3640982,46.5636204,0 8.3627363,46.5625072,0 8.3622116,46.5620904,0 8.3619162,46.5618251,0 8.3606878,46.5611105,0 8.3597744,46.5608453,0 8.3579486,46.5604548,0 8.3561402,46.5595722,0 8.3557931,46.5593294,0 8.3554263,46.5590004,0 8.3552344,46.5583665,0 8.3556378,46.5571362,0 8.3570111,46.5547753,0 8.3588994,46.5528866,0 8.3602827,46.5506929,0 8.3616855,46.5491811,0 8.3616995,46.5475524,0 8.3620441,46.5469392,0 8.3620639,46.546586,0 8.362161,46.5448586,0 8.3623602,46.5438652,0 8.3624521,46.5433528,0 8.3625424,46.5424862,0 8.3606462,46.5408034,0 8.3602507,46.5403122,0 8.3602754,46.5392381,0 8.3593975,46.538297,0 8.3585929,46.5374926,0 8.3579406,46.5372691,0 8.3569815,46.5372579,0 8.3551793,46.5374009,0 8.3529555,46.5368053,0 8.3509396,46.5364303,0 8.3503448,46.5353437,0 8.3494472,46.5345604,0 8.3482431,46.533861,0 8.3473434,46.5334395,0 8.3468182,46.533018,0 8.3460346,46.532176,0 8.3451745,46.5312024,0 8.3442859,46.5302302,0 8.341962,46.5278764,0 8.3412361,46.52715,0 8.3410492,46.5268648,0 8.3408741,46.5264552,0 8.3406487,46.5261124,0 8.3378035,46.5236785,0 8.3365463,46.5225635,0 8.3358665,46.5218821,0 8.3354103,46.5214204,0 8.335185,46.5211382,0 8.3344354,46.5198694,0 8.3338271,46.5187553,0 8.3335681,46.5184011,0 8.3333216,46.5180749,0 8.3329861,46.517854,0 8.3326138,46.517648,0 8.331599,46.5171055,0 8.3313651,46.5169186,0 8.3311949,46.5166985,0 8.330977,46.5162522,0 8.3306718,46.5157189,0 8.3303871,46.5154024,0 8.3301024,46.515126,0 8.3292847,46.5145684,0 8.3284889,46.5140258,0 8.3281602,46.5137946,0 8.3279672,46.5136939,0 8.3277519,46.5135948,0 8.327292,46.5134114,0 8.3267698,46.5132161,0 8.3259503,46.5129785,0 8.3255706,46.5128494,0 8.3252801,46.512685,0 8.3249628,46.5124709,0 8.3240832,46.5118632,0 8.3235147,46.5113328,0 8.3226547,46.5104817,0 8.3223496,46.5100019,0 8.32186,46.5095222,0 8.3216898,46.5094171,0 8.3214928,46.509322,0 8.3212136,46.5091708,0 8.3209988,46.5090744,0 8.3207783,46.5090015,0 8.3196984,46.5086575,0 8.3193492,46.5085431,0 8.3189509,46.5084362,0 8.3187236,46.5083803,0 8.3184974,46.5083419,0 8.3182567,46.5083375,0 8.3180263,46.5083508,0 8.3174734,46.5084226,0 8.3167471,46.5083953,0 8.3160315,46.5083187,0 8.3151054,46.5082564,0 8.3142082,46.5081715,0 8.313588,46.5081275,0 8.3129989,46.5080681,0 8.3125857,46.5079476,0 8.3121468,46.5077548,0 8.312012,46.5076174,0 8.311863,46.5073672,0 8.3116228,46.5069618,0 8.3114915,46.5067409,0 8.3113505,46.506547,0 8.3111267,46.5063412,0 8.3108778,46.5061337,0 8.3105821,46.5059194,0 8.3100814,46.5054643,0 8.3092124,46.5044489,0 8.3079707,46.5038562,0 8.3065427,46.5031652,0 8.2992117,46.4999818,0 8.2974913,46.4992347,0 8.2888207,46.4950271,0 8.2821475,46.4911101,0 8.2816738,46.4907287,0 8.2810227,46.4902096,0 8.2799624,46.4894364,0 8.2791991,46.4889918,0 8.2784596,46.4887505,0 8.2783195,46.4885775,0 8.2775333,46.4876068,0 8.2768434,46.486656,0 8.2762437,46.4856638,0 8.2761271,46.4852222,0 8.2758522,46.4847634,0 8.2754024,46.4844021,0 8.2750442,46.4842223,0 8.2746478,46.484089,0 8.2739879,46.4839606,0 8.2732285,46.4837942,0 8.2716792,46.4835591,0 8.270788,46.483387,0 8.2700457,46.4831351,0 8.2696145,46.4827465,0 8.2691198,46.4819259,0 8.268956,46.4817412,0 8.267543,46.4809836,0 8.265199,46.4785089,0 8.2613049,46.477341,0 8.258764,46.4769837,0 8.2557309,46.476287,0 8.2537907,46.4748393,0 8.2530884,46.4737978,0 8.2517779,46.4731821,0 8.2505962,46.4713575,0 8.2481102,46.4712526,0 8.2469721,46.4709783,0 8.2455664,46.4702859,0 8.2448658,46.4695507,0 8.2446235,46.4688246,0 8.2441669,46.4677964,0 8.2439909,46.4672901,0 8.2435946,46.4660171,0 8.2434751,46.4638729,0 8.2429109,46.4634003,0 8.2421367,46.4631794,0 8.2413471,46.4629851,0 8.2399768,46.4624948,0 8.2378375,46.4619808,0 8.2348559,46.4604787,0 8.2336767,46.4595306,0 8.2327392,46.4591274,0 8.2316244,46.4587223,0 8.230689,46.4582662,0 8.2292937,46.4567381,0 8.2271256,46.4551003,0 8.2264984,46.4548479,0 8.2259419,46.4548318,0 8.225287,46.4549385,0 8.2239994,46.4551344,0 8.2224883,46.4551344,0 8.2210779,46.4548211,0 8.2203727,46.4543684,0 8.219938,46.4540652,0 8.2194884,46.4536547,0 8.2192128,46.4535068,0 8.2189054,46.4533624,0 8.2186017,46.4531836,0 8.2183672,46.452995,0 8.2182045,46.4527239,0 8.2179551,46.4523145,0 8.217401,46.4518968,0 8.2170484,46.4514442,0 8.2168973,46.4509916,0 8.2162425,46.4503998,0 8.2156884,46.4500168,0 8.2150997,46.4498423,0 8.2144511,46.4497048,0 8.2134722,46.4495038,0 8.2127661,46.4491725,0 8.2124011,46.4488254,0 8.2123137,46.4484501,0 8.2120618,46.447719,0 8.2114071,46.4472664,0 8.2103493,46.4471968,0 8.2096442,46.4469183,0 8.2092915,46.4462567,0 8.2087879,46.4456996,0 8.2086662,46.4452839,0 8.2086368,46.444864,0 8.2084997,46.444571,0 8.2082775,46.4443192,0 8.2078873,46.4441367,0 8.2073272,46.4440632,0 8.2067585,46.4441111,0 8.2061841,46.444211,0 8.2056855,46.4442129,0 8.2050092,46.4441668,0 8.2045474,46.4438673,0 8.2042113,46.4435089,0 8.2041606,46.4431742,0 8.2043508,46.4426956,0 8.2044744,46.4421839,0 8.2044079,46.4418335,0 8.2042177,46.4415221,0 8.2037372,46.441096,0 8.2031997,46.4406043,0 8.2027641,46.4402438,0 8.2021294,46.4399356,0 8.2015235,46.4396386,0 8.2012417,46.4394368,0 8.2009982,46.4392035,0 8.2009129,46.4389971,0 8.2008667,46.4387763,0 8.2008223,46.4379607,0 8.2007907,46.4375375,0 8.200318,46.4368117,0 8.1993607,46.4365031,0 8.1982153,46.4363582,0 8.1958192,46.4366253,0 8.19479,46.4362763,0 8.1937483,46.43594,0 8.1933564,46.4354758,0 8.1932964,46.4351213,0 8.1930565,46.4342674,0 8.1922574,46.4338651,0 8.1891176,46.4321459,0 8.1870285,46.4325305,0 8.185658,46.4320112,0 8.1828991,46.4302863,0 8.1811784,46.4296467,0 8.1796629,46.4281609,0 8.1798238,46.4272433,0 8.1800746,46.4265742,0 8.1795634,46.4262843,0 8.1781283,46.4262043,0 8.1769875,46.4258846,0 8.1759086,46.4250951,0 8.1750912,46.424305,0 8.1707123,46.4202363,0 8.1702435,46.4198007,0 8.1585706,46.4131733,0 8.1506741,46.408439,0 8.1496459,46.4076273,0 8.1427777,46.4020471,0 8.1389729,46.4009274,0 8.1377901,46.3991976,0 8.1365368,46.398807,0 8.1345567,46.3965826,0 8.1318753,46.3954356,0 8.1275903,46.3932613,0 8.1248034,46.391294,0 8.1242142,46.3901885,0 8.1225604,46.3877846,0 8.1195583,46.3845555,0 8.117387,46.3840506,0 8.1151622,46.3827137,0 8.1120501,46.3820872,0 8.111043,46.3814855,0 8.1104735,46.380476,0 8.1080893,46.3795991,0 8.10604,46.3781469,0 8.1047198,46.377719,0 8.1037526,46.3774629,0 8.1007618,46.3753388,0 8.0965176,46.3755291,0 8.095282,46.3772748,0 8.0940139,46.3781826,0 8.0918295,46.3781278,0 8.0902618,46.3764919,0 8.0874549,46.3743397,0 8.0857466,46.3734776,0 8.0831482,46.3733223,0 8.081071,46.3719922,0 8.0792466,46.3716062,0 8.0779375,46.3719812,0 8.0763592,46.372377,0 8.0750815,46.3715033,0 8.072929,46.3696281,0 8.0717659,46.3690859,0 8.0704667,46.369113,0 8.0693186,46.3692328,0 8.0686961,46.3687732,0 8.068403,46.3677228,0 8.0676044,46.3671998,0 8.0658763,46.3668823,0 8.0633385,46.3656446,0 8.0606123,46.364566,0 8.0591321,46.3636382,0 8.0549773,46.3620484,0 8.0540035,46.3613046,0 8.0539798,46.3607469,0 8.0539543,46.3601453,0 8.0534732,46.3596983,0 8.0520047,46.3595265,0 8.0510579,46.3591344,0 8.0501139,46.3572737,0 8.0464833,46.3546331,0 8.0454189,46.3536618,0 8.0445865,46.3533216,0 8.0420523,46.3531278,0 8.0408092,46.3522215,0 8.0398632,46.350791,0 8.0388604,46.3505724,0 8.0373407,46.3494294,0 8.0356058,46.3480367,0 8.0343953,46.3472799,0 8.0333291,46.346744,0 8.0317421,46.3458979,0 8.0302326,46.3456978,0 8.0292399,46.3455515,0 8.0261735,46.3432866,0 8.0259836,46.3420655,0 8.0264551,46.3407013,0 8.0259262,46.3396684,0 8.0234949,46.3386346,0 8.020266,46.3377702,0 8.0160216,46.3346158,0 8.0141883,46.3326938,0 8.0135499,46.3301236,0 8.0124921,46.3283112,0 8.0115358,46.3273088,0 8.0108655,46.3266859,0 8.0102607,46.3262723,0 8.0095941,46.3259423,0 8.0087365,46.3256467,0 8.0080757,46.3255279,0 8.0073478,46.3254215,0 8.0055289,46.325252,0 8.0039364,46.3250342,0 8.0015581,46.324548,0 7.9993741,46.32384,0 7.9970168,46.3230628,0 7.9925065,46.3215534,0 7.9914432,46.3212472,0 7.991121,46.3211723,0 7.9903034,46.3209823,0 7.9886569,46.3207586,0 7.9869448,46.3206321,0 7.9836789,46.3201161,0 7.9788194,46.3181719,0 7.9758813,46.3174055,0 7.9600679,46.3117323,0 7.9565029,46.3106402,0 7.955247,46.310234,0 7.9542164,46.3097427,0 7.9527726,46.3088982,0 7.9519207,46.3084392,0 7.9504972,46.3077111,0 7.9489508,46.3071536,0 7.9473017,46.3066644,0 7.9425696,46.3053036,0 7.9413469,46.304854,0 7.9398251,46.3040189,0 7.9379488,46.3028253,0 7.9364718,46.3019089,0 7.9345709,46.3007621,0 7.933172,46.3000077,0 7.9318451,46.2994313,0 7.928514,46.2984772,0 7.9229629,46.2979464,0 7.9127991,46.2970075,0 7.900068,46.2959571,0 7.8969337,46.2962684,0 7.8883662,46.2998642,0 7.8831882,46.3016904,0 7.879355,46.3023285,0 7.870157,46.3024357,0 7.8594632,46.3028369,0 7.8473388,46.3065427,0 7.837881,46.3074945,0 7.8282882,46.3085712,0 7.8254374,46.3083172,0 7.8119843,46.3070984,0 7.79907,46.3068076,0 7.7961276,46.3060891,0 7.7825327,46.3059889,0 7.7791226,46.3062115,0 7.7759134,46.3067902,0 7.7584525,46.3091078,0 7.7557324,46.3089797,0 7.7502818,46.3078243,0 7.7421452,46.3062882,0 7.734567,46.3067893,0 7.7211303,46.3088396,0 7.7149656,46.3096625,0 7.7102771,46.3102013,0 7.7074025,46.3103195,0 7.7044396,46.3102865,0 7.6996507,46.3100588,0 7.6974949,46.3101029,0 7.6966104,46.3100717,0 7.6957296,46.3099474,0 7.694161,46.3094777,0 7.6927706,46.3088802,0 7.691423,46.3085228,0 7.6899252,46.308143,0 7.6817564,46.3065984,0 7.6791486,46.3062246,0 7.676791,46.3060118,0 7.6743843,46.3058588,0 7.6709507,46.3060023,0 7.6685512,46.3061912,0 7.667216,46.3063457,0 7.6661641,46.3065173,0 7.6609949,46.3077651,0 7.6568983,46.3086912,0 7.6499748,46.3103429,0 7.6470405,46.3121565,0 7.6456254,46.3125409,0 7.6411929,46.3128287,0 7.6364073,46.3118884,0 7.6334386,46.3118577,0 7.6328038,46.3119827,0 7.6321042,46.3121204,0 7.6275072,46.3135204,0 7.6208014,46.3155027,0 7.6179549,46.315624,0 7.6148903,46.3151243,0 7.6081835,46.3136662,0 7.6010581,46.3127966,0 7.5993032,46.3121006,0 7.5967373,46.3098956,0 7.5961853,46.3096521,0 + + + + Engstlige + #style-Waterway_River + + relativeToGround + 7.6022785,46.5401947,0 7.6025091,46.540512,0 7.6031368,46.5413754,0 7.6026218,46.5429104,0 7.6027935,46.5440911,0 7.6017635,46.5453898,0 7.602103,46.5468677,0 7.6022785,46.5471607,0 7.6033085,46.5479872,0 7.6043384,46.5489316,0 7.6057117,46.54964,0 7.6057117,46.5507025,0 7.6077717,46.5521191,0 7.6090281,46.5540874,0 7.6097828,46.554791,0 7.6104014,46.5553546,0 7.6122349,46.5567229,0 7.6142948,46.556959,0 7.6150274,46.5575363,0 7.6158784,46.5582068,0 7.6165495,46.5597606,0 7.6176459,46.5602837,0 7.6196163,46.5615623,0 7.6206463,46.5632147,0 7.6208892,46.5635148,0 7.6216696,46.564479,0 7.6231862,46.5660439,0 7.6242334,46.5683426,0 7.6251095,46.5691157,0 7.6269613,46.569587,0 7.627585,46.5698201,0 7.6290577,46.5697058,0 7.6307743,46.5707679,0 7.6319759,46.5715939,0 7.6335209,46.573482,0 7.6348942,46.5744261,0 7.6358843,46.5774784,0 + + + + #style-Waterway_River + + relativeToGround + 7.4148104,46.4967759,0 7.4160013,46.4959967,0 7.4175624,46.4951252,0 7.4178913,46.4949773,0 7.4184173,46.4947409,0 7.4193487,46.4946931,0 7.4201105,46.4947596,0 7.4212638,46.4950993,0 7.4229066,46.4958041,0 7.4239943,46.496366,0 7.4253086,46.4972116,0 7.4259845,46.4977434,0 7.4264298,46.4983564,0 7.4267034,46.4990432,0 7.427154,46.4997744,0 7.4279211,46.5003061,0 7.4291656,46.5007825,0 7.4300186,46.5014102,0 + + + + Simme + #style-Waterway_River + + relativeToGround + 7.4148104,46.4967759,0 7.4140004,46.4972966,0 7.4128648,46.4984032,0 7.4120378,46.4988758,0 7.4116834,46.4993483,0 7.4114471,46.5002048,0 7.4109746,46.5010613,0 7.4102738,46.5016021,0 7.4094683,46.5017406,0 7.4089071,46.5017111,0 7.4082574,46.5019769,0 7.4079333,46.5023075,0 7.4067806,46.5030402,0 7.4056266,46.5035924,0 7.4046502,46.5039764,0 7.4037385,46.504192,0 7.4032394,46.5044749,0 7.402762,46.5046706,0 7.4023435,46.5047998,0 7.4018339,46.5048885,0 7.4011395,46.5049009,0 7.4002605,46.5049802,0 7.3995446,46.5052257,0 7.3988062,46.5054175,0 7.3977637,46.5056704,0 7.3967979,46.5057762,0 7.3956424,46.5059331,0 7.3945836,46.5062568,0 7.3941289,46.5065149,0 7.3937853,46.5067911,0 7.3931798,46.5074121,0 7.3928697,46.5082678,0 7.3927221,46.5088881,0 7.3928224,46.5093561,0 7.3926507,46.5097814,0 7.3921786,46.5102658,0 7.3915778,46.5107148,0 7.3910628,46.5110219,0 7.3904363,46.5111755,0 7.3892604,46.5112759,0 7.3888055,46.5114827,0 7.3888484,46.5121029,0 7.3889514,46.5125459,0 7.3891746,46.5130893,0 7.389679,46.5139383,0 7.3895618,46.5144406,0 7.3891188,46.5151494,0 7.388379,46.5162216,0 7.3879079,46.5172759,0 7.3877307,46.5179075,0 7.3877307,46.5188117,0 7.387583,46.5198455,0 7.387583,46.5213813,0 7.3877011,46.5231534,0 7.3879079,46.5251027,0 7.38841,46.5268157,0 7.3892074,46.5289422,0 7.3898764,46.5304745,0 7.3904774,46.5319547,0 7.3905365,46.5326931,0 7.3902707,46.533461,0 7.3898867,46.5341108,0 7.3891188,46.5346719,0 7.3882918,46.5349673,0 7.3872877,46.5350263,0 7.3863721,46.5353512,0 7.3858224,46.5362191,0 7.3856622,46.5375599,0 7.3854562,46.5381739,0 7.3851142,46.5385692,0 7.3840142,46.5395673,0 7.3835164,46.5400219,0 7.3830872,46.5405709,0 7.3826409,46.5408897,0 7.3817339,46.5417885,0 7.3808969,46.5424967,0 7.3809935,46.543044,0 7.3813476,46.5434625,0 7.3816696,46.5441064,0 7.3815086,46.5445893,0 7.3812189,46.5454263,0 7.3810901,46.5463599,0 7.3812832,46.5471969,0 7.3817017,46.5481305,0 7.3822168,46.5489031,0 7.382571,46.5494504,0 7.3826353,46.5499977,0 7.3822812,46.5506093,0 7.3817983,46.5515107,0 7.3817983,46.5521868,0 7.3821846,46.5528629,0 7.3823134,46.5532492,0 7.3819915,46.5538286,0 7.3816374,46.5546013,0 7.3812307,46.5561465,0 7.3812501,46.5566592,0 7.3812932,46.5571399,0 7.3812976,46.5574732,0 7.3812628,46.5576802,0 7.3812452,46.5577312,0 7.3811767,46.5578887,0 7.3810499,46.5581318,0 7.3808341,46.5585264,0 7.3803462,46.5593713,0 7.3798668,46.560396,0 7.3793147,46.5617983,0 7.3788502,46.5629464,0 7.3784991,46.563768,0 7.3774509,46.5660112,0 7.3772782,46.5665588,0 7.3772214,46.5669788,0 7.3772391,46.5675024,0 7.3774145,46.5680778,0 7.3776827,46.56869,0 7.3783264,46.5700693,0 7.378901,46.571245,0 7.379453,46.5718689,0 7.3800967,46.5723188,0 7.3807038,46.5727259,0 7.3817661,46.5733376,0 7.383086,46.5744643,0 7.3834248,46.5749918,0 7.3836909,46.5753722,0 7.3841028,46.575865,0 7.3844461,46.5762662,0 7.3846436,46.576573,0 7.3846779,46.5769447,0 7.3844204,46.5775346,0 7.3840518,46.5788425,0 7.3832792,46.5814502,0 7.3831651,46.5819281,0 7.3831866,46.5822231,0 7.3834226,46.5825623,0 7.3833583,46.5827835,0 7.3827789,46.5836905,0 7.382571,46.5845085,0 7.3826353,46.5855065,0 7.3826353,46.586404,0 7.3825429,46.5867432,0 7.3823475,46.5869475,0 7.3819313,46.5871488,0 7.3817704,46.5873257,0 7.381706,46.5877165,0 7.3810579,46.5885648,0 7.3810301,46.5887635,0 7.3811696,46.5893091,0 7.3810408,46.5894787,0 7.3807726,46.5895008,0 7.3803542,46.5895303,0 7.3799787,46.5896557,0 7.3793285,46.5898139,0 7.3785468,46.5897475,0 7.3778502,46.5896055,0 7.3772428,46.5896925,0 7.3770068,46.5898179,0 7.3768995,46.5900317,0 7.3769424,46.5904593,0 7.3767064,46.5907837,0 7.3759876,46.5914547,0 7.3754404,46.5922583,0 7.3753507,46.5926344,0 7.3754025,46.5932383,0 7.3754241,46.5934903,0 7.3756173,46.5940054,0 7.3758104,46.594778,0 7.3758506,46.5952003,0 7.3757515,46.595598,0 7.375655,46.5960772,0 7.3755906,46.5966375,0 7.3756764,46.5973821,0 7.3758373,46.5978907,0 7.3761163,46.5983552,0 7.3766098,46.5990923,0 7.3767171,46.5996305,0 7.3765991,46.6001023,0 7.3763255,46.600605,0 7.3758426,46.6010879,0 7.375231,46.6018605,0 7.3748768,46.6032448,0 7.3747644,46.6040594,0 7.374861,46.6045177,0 7.3750863,46.6048641,0 7.3759446,46.6058224,0 7.3766206,46.606729,0 7.3773179,46.6078198,0 7.3779724,46.609316,0 7.378579,46.6101663,0 7.378901,46.611132,0 7.378938,46.6123378,0 7.3790345,46.6126326,0 7.3792813,46.6131559,0 7.3794804,46.6138041,0 7.3795066,46.6141066,0 7.3793517,46.6146411,0 7.379174,46.6154331,0 7.3792229,46.6158,0 7.3793826,46.6161099,0 7.3796032,46.6163838,0 7.3802531,46.6170877,0 7.3813154,46.6182789,0 7.3825321,46.6192651,0 7.3836479,46.6203042,0 7.3841415,46.620621,0 7.3854504,46.6211663,0 7.3863409,46.6217116,0 7.3871955,46.622324,0 7.3884623,46.6235263,0 7.3891411,46.6241137,0 7.3909543,46.6254695,0 7.3924349,46.626221,0 7.3932288,46.6265821,0 7.3937867,46.626921,0 7.3943231,46.6273336,0 7.3949367,46.6279379,0 7.3955024,46.6286537,0 7.3958809,46.6289915,0 7.3968035,46.6296546,0 7.3984138,46.6307647,0 7.3990974,46.6311606,0 7.4000866,46.6314965,0 7.4013548,46.6318266,0 7.4028203,46.6322506,0 7.4036485,46.6326016,0 7.4044747,46.6331541,0 7.4053416,46.6338759,0 7.4065218,46.6346347,0 7.407584,46.6353641,0 7.4083585,46.6358357,0 7.4091954,46.6369775,0 7.4098176,46.6373827,0 7.4105901,46.6377584,0 7.4115879,46.6381562,0 7.4126608,46.6385318,0 7.4137337,46.6388044,0 7.4149031,46.6390622,0 7.4156401,46.6391335,0 7.4159545,46.6392243,0 7.4160189,46.6395852,0 7.4155585,46.6402065,0 7.4154717,46.6403955,0 7.4157075,46.6410153,0 7.4159223,46.6414931,0 7.4164159,46.6419645,0 7.4169931,46.6423048,0 7.417594,46.6426584,0 7.4178321,46.6429294,0 7.4177248,46.6435629,0 7.4177677,46.6437396,0 7.4180681,46.644211,0 7.4182612,46.6449402,0 7.4184865,46.6458167,0 7.4184543,46.6464281,0 7.4186163,46.6469861,0 7.4190122,46.6477833,0 7.4197203,46.6485345,0 7.4200422,46.6486671,0 7.4206645,46.648726,0 7.4216193,46.6487334,0 7.4220056,46.648807,0 7.4222845,46.6489175,0 7.4225528,46.6493005,0 7.4230731,46.6495547,0 7.4237007,46.6498602,0 7.4246771,46.6498896,0 7.4251484,46.6499459,0 7.4253315,46.6500443,0 7.4255354,46.6502947,0 7.4257357,46.6503853,0 7.4260182,46.6505967,0 7.4266793,46.6509836,0 7.4273938,46.6512898,0 7.4281961,46.6515467,0 7.4288057,46.6518341,0 7.4292046,46.651996,0 7.4295587,46.6520328,0 7.4304063,46.651996,0 7.4311573,46.6518634,0 7.4315614,46.6518511,0 7.4318761,46.6519076,0 7.43208,46.6520033,0 7.4321658,46.6522758,0 7.432075,46.6526151,0 7.4320207,46.6529228,0 7.4321229,46.653108,0 7.4324126,46.6532111,0 7.4327452,46.6532111,0 7.4334962,46.6530712,0 7.4344022,46.6528547,0 7.4347764,46.6526846,0 7.4352772,46.6526588,0 7.4357278,46.6528502,0 7.4359161,46.6531269,0 7.4360862,46.6535522,0 7.4362964,46.65422,0 7.4366183,46.6546692,0 7.4370898,46.65493,0 7.4379916,46.6552289,0 7.4383241,46.6552363,0 7.4390537,46.6550374,0 7.439912,46.6545956,0 7.4405665,46.6544483,0 7.4411887,46.6544925,0 7.4415144,46.6545737,0 7.4421865,46.6550301,0 7.4427015,46.6552142,0 7.443779,46.6555006,0 7.4441821,46.6557591,0 7.4444725,46.6561208,0 7.4447106,46.6568522,0 7.4448687,46.6572687,0 7.4451477,46.6575412,0 7.4455768,46.6576664,0 7.4461133,46.6577253,0 7.446639,46.6576885,0 7.4471003,46.6576148,0 7.4475617,46.6574455,0 7.4481947,46.6570846,0 7.4487204,46.6568269,0 7.4491174,46.6567754,0 7.4497182,46.6569153,0 7.450201,46.657092,0 7.4509535,46.6572605,0 7.451703,46.6574086,0 7.4520463,46.6575191,0 7.4523145,46.6577916,0 7.4524567,46.6580332,0 7.4525613,46.658712,0 7.4527222,46.6589035,0 7.4529583,46.6590066,0 7.4533016,46.6589698,0 7.4541814,46.6585353,0 7.4552232,46.6582471,0 7.4563289,46.658111,0 7.4575707,46.6578729,0 7.4586593,46.6577708,0 7.4589557,46.6578284,0 7.4594418,46.658094,0 7.4602924,46.6585193,0 7.460962,46.6587783,0 7.4616915,46.6588519,0 7.4625928,46.6588519,0 7.462979,46.6587415,0 7.4636435,46.6582471,0 7.4643409,46.658128,0 7.4651574,46.658128,0 7.466093,46.6581451,0 7.4670238,46.6580051,0 7.4677748,46.6578284,0 7.4683649,46.6574676,0 7.4688048,46.6571215,0 7.4691481,46.6570257,0 7.4698025,46.6570331,0 7.4706518,46.6573285,0 7.4711451,46.6577028,0 7.4717575,46.6579069,0 7.4720985,46.657902,0 7.472574,46.6577708,0 7.4738668,46.6574476,0 7.4742861,46.6574162,0 7.4747593,46.6574823,0 7.4753172,46.6577106,0 7.4755454,46.6578863,0 7.475755,46.6581621,0 7.4760038,46.6582187,0 7.4771518,46.6581671,0 7.4781603,46.6580419,0 7.4793298,46.658064,0 7.4802954,46.6583365,0 7.481379,46.6585574,0 7.4835247,46.6587709,0 7.4838788,46.6587488,0 7.4841577,46.6586163,0 7.4846935,46.6573897,0 7.4854345,46.6569374,0 7.4864537,46.6567754,0 7.4871403,46.6569815,0 7.4882347,46.6582187,0 7.4884493,46.6583733,0 7.4887926,46.6584248,0 7.4896509,46.6584101,0 7.4910671,46.6580861,0 7.4921614,46.6579609,0 7.4926013,46.6577474,0 7.4929333,46.6572719,0 7.4935179,46.6566448,0 7.494275,46.6558328,0 7.4947793,46.6555456,0 7.4952084,46.6556708,0 7.4961311,46.6568122,0 7.496292,46.6570625,0 7.496571,46.657092,0 7.4968815,46.6569184,0 7.4990861,46.6560537,0 7.4994249,46.656039,0 7.4998862,46.6561273,0 7.5016135,46.6567238,0 7.5019995,46.6567547,0 7.5024182,46.6566649,0 7.5027079,46.6565103,0 7.5034053,46.6551553,0 7.5038666,46.6549196,0 7.5043387,46.654927,0 7.5045854,46.6550522,0 7.5054759,46.6560463,0 7.5063557,46.656849,0 7.5068814,46.6570036,0 7.5079865,46.6569668,0 7.5084264,46.6567312,0 7.508877,46.655656,0 7.5091559,46.6554719,0 7.5100142,46.6554793,0 7.5118274,46.6558475,0 7.512396,46.655818,0 7.5129647,46.6555824,0 7.5148315,46.6543231,0 7.5151748,46.6541906,0 7.5160546,46.6543894,0 7.5170416,46.6549491,0 7.5182111,46.6553615,0 7.5187153,46.6553836,0 7.5191969,46.655285,0 7.5219876,46.6555677,0 7.5224275,46.6558622,0 7.5226313,46.6560242,0 7.5232,46.6566944,0 7.5233824,46.6567901,0 7.5238759,46.6568269,0 7.5243265,46.656768,0 7.5251412,46.656318,0 7.5255603,46.6561494,0 7.5259036,46.6561347,0 7.5261075,46.6562451,0 7.5263328,46.6565471,0 7.5264079,46.6568122,0 7.5264401,46.6573866,0 7.5265903,46.6577768,0 7.526998,46.6583144,0 7.5273306,46.6586237,0 7.5278563,46.658874,0 7.5285902,46.6589904,0 7.5291652,46.6590139,0 7.5300879,46.6589771,0 7.5313002,46.6588593,0 7.5321371,46.6586605,0 7.5332529,46.6583365,0 7.5339932,46.6582997,0 7.5349802,46.6583807,0 7.535675,46.6585294,0 7.5362033,46.6586016,0 7.5375236,46.6589473,0 7.5382789,46.6590238,0 7.5387461,46.6589845,0 7.5394863,46.6587341,0 7.5400127,46.6586291,0 7.5411714,46.6584995,0 7.5417379,46.6583405,0 7.5438579,46.6580047,0 7.5445396,46.6578873,0 7.545214,46.657716,0 7.5457977,46.6574274,0 7.5475283,46.6565588,0 7.5477583,46.6564513,0 7.547906,46.6564174,0 7.5481338,46.6564587,0 7.5483695,46.6565293,0 7.5486166,46.6567091,0 7.5495822,46.6572908,0 7.5505667,46.6577488,0 7.5511847,46.6579019,0 7.5522833,46.6581022,0 7.5537081,46.6582024,0 7.5552874,46.6582377,0 7.5565062,46.6583732,0 7.5580426,46.6587502,0 7.5598632,46.6591842,0 7.5612284,46.6593698,0 7.5628834,46.6595278,0 7.5646859,46.659734,0 7.565733,46.6600875,0 7.5669776,46.6607885,0 7.5672692,46.6609686,0 7.567561,46.6610981,0 7.5682734,46.6611099,0 7.5690632,46.6610594,0 7.570179,46.6608297,0 7.571621,46.6606471,0 7.573226,46.6605469,0 7.5741959,46.6603525,0 7.5747505,46.6602497,0 7.575552,46.6602524,0 7.5765393,46.6604319,0 7.5770308,46.6605957,0 7.5774575,46.6608356,0 7.5780154,46.6612951,0 7.579011,46.6621669,0 7.5799981,46.6625439,0 7.5809336,46.6626263,0 7.5824872,46.6625203,0 7.5834571,46.6623023,0 7.5850793,46.6618723,0 7.5859376,46.6618075,0 7.5869761,46.66189,0 7.5897999,46.6624202,0 7.5909189,46.6625818,0 7.5919832,46.6628881,0 7.5932191,46.6633947,0 7.595013,46.6643254,0 7.5968498,46.6652443,0 7.5988239,46.6661926,0 7.600283,46.6666284,0 7.6029438,46.6673411,0 7.6053384,46.6679242,0 7.6076301,46.6685309,0 7.6095527,46.6688784,0 7.6126083,46.6694556,0 7.6163934,46.6699916,0 7.6183847,46.6703273,0 7.6192687,46.6702802,0 7.6199627,46.6704663,0 7.6212429,46.6709928,0 7.6221355,46.6715464,0 7.6262226,46.6743988,0 7.6287174,46.6751778,0 7.6318073,46.6763556,0 7.6331806,46.6781223,0 7.6336956,46.6807133,0 7.6333277,46.6828388,0 7.6332934,46.6838751,0 7.6332076,46.6847583,0 7.6333792,46.6854944,0 7.6335595,46.6860596,0 7.6334222,46.6866484,0 7.6331818,46.6870075,0 7.6330359,46.6873549,0 7.6330874,46.6876846,0 7.6333449,46.6879202,0 7.6336196,46.6881027,0 7.6339972,46.6883735,0 7.634126,46.6885855,0 7.6341088,46.6888622,0 7.6339371,46.6890683,0 7.6334822,46.6894509,0 7.6331132,46.6898101,0 7.632993,46.6899867,0 7.6330188,46.6901869,0 7.6333277,46.6903694,0 7.633508,46.6905637,0 + + + + Simme + #style-Waterway_River + + relativeToGround + 7.4429173,46.4572666,0 7.4429683,46.4571225,0 + + + + Simme + #style-Waterway_River + + relativeToGround + 7.44395,46.4543877,0 7.443789,46.4545688,0 7.4436469,46.4548072,0 7.4435745,46.4550326,0 7.443494,46.4555186,0 7.443441,46.455818,0 7.443435,46.4561136,0 7.4433377,46.4564021,0 7.4429683,46.4571225,0 + + + + Simme + #style-Waterway_River + + relativeToGround + 7.4612723,46.4333085,0 7.45888,46.4355827,0 7.4579349,46.4367641,0 7.4560742,46.4384476,0 7.4554244,46.4400129,0 7.455212,46.4413715,0 7.4552472,46.4423757,0 7.4547003,46.4438428,0 7.4532036,46.4478792,0 7.4527959,46.449025,0 7.4522863,46.4494907,0 7.4515084,46.4499268,0 7.4496061,46.4508817,0 7.4446738,46.4539829,0 7.4442665,46.4542916,0 + + + + Simme + #style-Waterway_River + + relativeToGround + 7.4442665,46.4542916,0 7.4441377,46.4543619,0 7.44395,46.4543877,0 + + + + #style-Waterway_River + + relativeToGround + 7.5823262,46.3982278,0 7.5836565,46.3984054,0 7.5848002,46.398503,0 7.5847788,46.3978223,0 7.5848431,46.3973118,0 7.5854654,46.3969048,0 7.5862915,46.3966828,0 7.5870533,46.3968456,0 7.5876434,46.3967346,0 7.5876648,46.3963795,0 7.5874717,46.3958763,0 7.5879121,46.395537,0 7.5886701,46.3953454,0 7.5898039,46.395609,0 7.5912654,46.3960014,0 7.5926709,46.3963765,0 7.5938339,46.3967716,0 7.596617,46.3973843,0 7.5990921,46.3975722,0 7.6018644,46.3974561,0 7.6032688,46.3970143,0 7.6046692,46.3966843,0 7.604964,46.3966148,0 7.6054361,46.3970143,0 7.6058438,46.3969107,0 7.6060424,46.3968161,0 7.6062248,46.3969197,0 7.6063213,46.3968383,0 7.6065359,46.3968087,0 7.6066217,46.3971787,0 7.6065896,46.3975856,0 7.6067934,46.3979778,0 7.6070187,46.398111,0 7.6072118,46.3982368,0 7.6074801,46.3985697,0 7.6071796,46.3988657,0 7.6065896,46.3991838,0 7.6071475,46.3995834,0 7.607126,46.3998793,0 7.6074371,46.4002345,0 7.6079843,46.400634,0 7.6076624,46.4008856,0 7.6079628,46.4014997,0 7.6084349,46.4018252,0 7.6089177,46.4021877,0 7.6094542,46.4026908,0 7.6095722,46.4028758,0 7.6098404,46.4028166,0 7.6102588,46.4025872,0 7.6104841,46.4023653,0 7.6107416,46.4024763,0 7.6114228,46.4030059,0 7.6134008,46.4052111,0 + + + + Simme + #style-Waterway_River + + relativeToGround + 7.4145422,46.4951732,0 7.4142955,46.4947005,0 7.4144778,46.4943903,0 7.4168811,46.4925068,0 7.4176214,46.4915687,0 7.4179647,46.4914284,0 7.4194131,46.4914801,0 7.4201304,46.4912558,0 7.4213014,46.490638,0 7.4221978,46.4901039,0 7.4230395,46.4899437,0 7.4239108,46.4895723,0 7.4250036,46.4889521,0 7.4259192,46.4881251,0 7.4262736,46.4870323,0 7.4262441,46.4857623,0 7.4258601,46.4834291,0 7.4260078,46.4823658,0 7.4290744,46.4758704,0 7.4296701,46.4748344,0 7.4302313,46.4735644,0 7.4309696,46.4723831,0 7.4330075,46.4704042,0 7.4391299,46.4648035,0 7.4396745,46.4641251,0 7.4399642,46.4635893,0 7.4401198,46.4633971,0 7.4406526,46.4630362,0 7.4408064,46.4628318,0 7.4408874,46.4624093,0 7.4411605,46.4619376,0 7.4415682,46.4616087,0 7.4417291,46.461435,0 7.4419008,46.4611135,0 7.4420697,46.4603689,0 7.4420939,46.4601343,0 7.4419759,46.4596613,0 7.4420295,46.4592917,0 7.4422333,46.4591143,0 7.4428556,46.4588372,0 7.4429763,46.4587282,0 7.44303,46.4585914,0 7.4428717,46.4576509,0 7.4429173,46.4572666,0 + + + + #style-Waterway_River + + relativeToGround + 7.5848002,46.398503,0 7.5848152,46.3989973,0 7.5849719,46.3993465,0 7.5851104,46.3997361,0 + + + + #style-Waterway_River + + relativeToGround + 7.5926709,46.3963765,0 7.5940689,46.396307,0 7.5958359,46.3966059,0 7.5970139,46.3966103,0 7.5990503,46.3969699,0 7.6011746,46.3970535,0 7.6032688,46.3970143,0 + + + + #style-Waterway_River + + relativeToGround + 7.617414,46.3854152,0 7.6178217,46.3849933,0 + + + + #style-Waterway_River + + relativeToGround + 7.6190072,46.3886233,0 7.6193077,46.3883828,0 + + + + #style-Waterway_River + + relativeToGround + 7.6198816,46.3890377,0 7.620123,46.3887972,0 7.6201366,46.3881642,0 7.6199113,46.3874908,0 7.6200401,46.3867211,0 7.6205486,46.38637,0 + + + + #style-Waterway_River + + relativeToGround + 7.6181114,46.3727879,0 7.6185084,46.3726473,0 7.6190448,46.3726399,0 + + + + Engstlige + #style-Waterway_River + + relativeToGround + 7.5679163,46.4904384,0 7.5682865,46.490783,0 7.56887,46.4909814,0 7.5690784,46.4912436,0 7.5690856,46.4915223,0 7.569252,46.4918013,0 7.5692638,46.4922844,0 7.569386,46.4926358,0 7.5694157,46.4934985,0 7.5699636,46.4939489,0 7.5700405,46.4942176,0 7.5699498,46.4946884,0 7.5705973,46.4953414,0 7.5713722,46.4959515,0 7.5716743,46.4961181,0 7.5720713,46.4967711,0 7.5722066,46.4968701,0 7.5723745,46.4969336,0 7.572558,46.4968807,0 7.5730315,46.4969189,0 7.5734753,46.4969547,0 7.5740499,46.4971762,0 7.575296,46.4973752,0 7.5758975,46.4976559,0 7.5763149,46.4979143,0 7.5764972,46.4981977,0 7.5766154,46.4986548,0 7.5766651,46.4991564,0 7.5767911,46.4994885,0 7.5767477,46.499635,0 7.5768027,46.4998829,0 7.577038,46.5002692,0 7.5771766,46.5006686,0 7.5773397,46.5008466,0 7.5775215,46.500978,0 7.5784139,46.501225,0 7.5791897,46.5017317,0 7.580061,46.5017524,0 7.5802143,46.50181,0 7.5804344,46.5018927,0 7.58069,46.5022649,0 7.5808113,46.5028054,0 7.5807013,46.5029565,0 7.580053,46.5034856,0 7.5801763,46.5037025,0 7.5808618,46.504245,0 7.5813645,46.5047991,0 7.5821249,46.505979,0 7.5824844,46.5066477,0 7.582539,46.5071021,0 7.5824704,46.5074207,0 7.5824319,46.5083621,0 7.5825869,46.5090491,0 7.5825806,46.5095171,0 7.5820257,46.5098178,0 7.5819193,46.5106443,0 7.5818162,46.5109854,0 7.5821224,46.5116504,0 7.5829228,46.5126941,0 7.583598,46.5135612,0 7.5842966,46.5165233,0 7.5844909,46.5173472,0 7.5846293,46.517583,0 7.5848776,46.5177875,0 7.5856085,46.5179936,0 7.5860292,46.518225,0 7.5864387,46.5183726,0 7.5865335,46.5185698,0 7.5872008,46.5186978,0 7.5875705,46.5195246,0 7.5882623,46.5204856,0 7.5886196,46.5208262,0 7.5889364,46.5211571,0 7.5890967,46.5217219,0 7.5888244,46.5220523,0 7.5891101,46.5228483,0 7.5911672,46.5254435,0 7.593835,46.5287145,0 7.5952076,46.5310701,0 7.5969656,46.5334405,0 7.5980018,46.5343057,0 7.5984988,46.5361517,0 7.598946,46.5370064,0 7.5995921,46.5370064,0 7.6006357,46.5372799,0 7.6007848,46.5385447,0 7.6022785,46.5401947,0 + + + + + Waterway_Stream + + + #style-Waterway_Stream + + relativeToGround + 7.4482603,46.4605075,0 7.4479974,46.4601472,0 7.4477238,46.4599273,0 7.4475369,46.4598635,0 7.4465542,46.459732,0 7.4454239,46.4596948,0 7.4441592,46.4598904,0 7.4427902,46.4601787,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.4427902,46.4601787,0 7.4422655,46.4603116,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.4422655,46.4603116,0 7.4420697,46.4603689,0 + + + + Tschentbach + #style-Waterway_Stream + + relativeToGround + 7.5498993,46.5131535,0 7.5516111,46.512984,0 7.5534331,46.5128769,0 7.5551428,46.5130268,0 7.556419,46.5133488,0 7.5568307,46.5137849,0 7.5571667,46.5138959,0 7.5583266,46.514089,0 7.5589673,46.5141025,0 7.5609632,46.5138736,0 7.5615361,46.5137486,0 7.5622618,46.5133878,0 7.5633041,46.5130869,0 7.5638865,46.5131159,0 7.5649706,46.5131294,0 7.565441,46.5131179,0 7.5657838,46.5130325,0 7.5664322,46.5130568,0 7.5671807,46.5131231,0 7.5683759,46.5133121,0 7.569028,46.5133944,0 7.5696122,46.5135692,0 7.5704753,46.5137527,0 7.5714119,46.5135382,0 7.5726887,46.5133277,0 7.573583,46.513235,0 7.574029,46.513337,0 7.574712,46.51333,0 7.574925,46.513248,0 7.577474,46.513801,0 7.577839,46.514218,0 7.578268,46.514264,0 7.57838,46.514375,0 7.578653,46.514452,0 7.578728,46.51488,0 7.5793375,46.5154736,0 7.5796094,46.5155709,0 + + + + Tschentbach + #style-Waterway_Stream + + relativeToGround + 7.5796094,46.5155709,0 7.5798811,46.5155784,0 7.5804693,46.5157084,0 7.5808291,46.5159788,0 7.581439,46.5159571,0 7.5819875,46.5161131,0 7.5828673,46.5159575,0 7.5835048,46.5163951,0 7.5840989,46.5164935,0 7.5842966,46.5165233,0 + + + + Bonderlenbach + #style-Waterway_Stream + + relativeToGround + 7.5950493,46.4758228,0 7.5907678,46.4813085,0 7.5897696,46.4824297,0 7.5889451,46.4849235,0 7.588016,46.4856619,0 7.5871102,46.4859308,0 7.5866819,46.4864895,0 7.5847333,46.4880633,0 7.5834673,46.4887214,0 7.5817525,46.4898969,0 7.5814474,46.4901303,0 7.5810387,46.490633,0 7.5801554,46.4913069,0 7.5799536,46.4916604,0 7.5792927,46.4922356,0 7.5790885,46.4927514,0 7.5784129,46.4935776,0 7.5784782,46.494305,0 7.578291,46.4948469,0 7.5783849,46.4950906,0 7.5778436,46.4955583,0 7.5771013,46.4959518,0 7.576988,46.4961764,0 7.5767947,46.496307,0 7.5767531,46.496691,0 7.5765765,46.4969136,0 7.5759942,46.4969659,0 7.5759141,46.4970779,0 7.576244,46.4975421,0 7.5763149,46.4979143,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5864107,46.5038145,0 7.5849124,46.5043821,0 7.5842642,46.5051023,0 7.5834123,46.505664,0 7.582847,46.5058125,0 7.5826781,46.5057472,0 7.5823863,46.5057664,0 7.5821249,46.505979,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5901733,46.4963584,0 7.5878156,46.4992787,0 7.5872543,46.4997632,0 7.5868956,46.5001347,0 7.5862173,46.5005062,0 7.5854443,46.5007068,0 7.5845889,46.5007134,0 7.5841943,46.5006119,0 7.5836448,46.5004516,0 7.5831399,46.5005241,0 7.5821281,46.5010073,0 7.5802143,46.50181,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.6031924,46.5097266,0 7.5935129,46.513263,0 7.5907758,46.5139709,0 7.5894533,46.5145143,0 7.5885612,46.5149031,0 7.5883184,46.5153558,0 7.5880954,46.5157955,0 7.586282,46.5170016,0 7.5857963,46.5175161,0 7.5856085,46.5179936,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.627585,46.5698201,0 7.6274104,46.5701313,0 7.6247923,46.57119,0 7.6243015,46.5713244,0 7.6229993,46.5714951,0 7.6219771,46.5717669,0 7.6195533,46.5723564,0 7.618023,46.5727097,0 7.6164988,46.5733015,0 7.6160679,46.5736132,0 7.615965,46.573772,0 7.6158862,46.574073,0 7.6158473,46.5742219,0 7.6155516,46.5747077,0 7.6118253,46.5770347,0 7.6101343,46.5797527,0 7.6049675,46.5845394,0 7.6009691,46.5902559,0 + + + + Krummenbach + #style-Waterway_Stream + + relativeToGround + 7.4345353,46.4542156,0 7.4375443,46.4530688,0 7.4379198,46.4525218,0 7.4388861,46.4520338,0 + + + + Krummenbach + #style-Waterway_Stream + + relativeToGround + 7.4388861,46.4520338,0 7.4394596,46.4521561,0 + + + + Krummenbach + #style-Waterway_Stream + + relativeToGround + 7.4394596,46.4521561,0 7.440223,46.4521175,0 7.4411836,46.4522683,0 7.4419013,46.4524977,0 7.442767,46.4530941,0 7.4435144,46.4537976,0 7.4438251,46.4541901,0 7.44395,46.4543877,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.6043384,46.5489316,0 7.6036134,46.5492848,0 7.6020999,46.5497933,0 7.6016803,46.5498747,0 7.6010186,46.5501518,0 7.5938758,46.5534441,0 7.5928254,46.5539036,0 7.5921917,46.5543492,0 7.5913683,46.5548097,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.6097828,46.554791,0 7.6092077,46.5550334,0 7.6083698,46.555712,0 7.6069001,46.556455,0 7.6046978,46.5571409,0 7.6034027,46.5574888,0 7.6029575,46.5586298,0 7.6021076,46.559089,0 7.6011565,46.5596316,0 7.5990811,46.560389,0 7.5971888,46.5607735,0 7.5962684,46.5607439,0 7.5949954,46.5611342,0 7.5936106,46.5614773,0 7.592888,46.5622047,0 + + + + Engstlige + #style-Waterway_Stream + + relativeToGround + 7.5694288,46.4386699,0 7.5689025,46.4392606,0 7.568774,46.43946,0 7.568331,46.439699,0 7.567927,46.44015,0 7.567747,46.440192,0 7.567521,46.44046,0 7.5667949,46.4408454,0 7.5660904,46.4414907,0 7.565442,46.441646,0 7.5644443,46.4421245,0 7.5642466,46.4424135,0 7.56422,46.442644,0 7.5632839,46.443386,0 7.5615746,46.4449583,0 7.5621347,46.4456216,0 7.5626654,46.4466302,0 7.5627503,46.4485911,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5684827,46.4381903,0 7.568705,46.4386855,0 7.5687017,46.4389496,0 7.5689025,46.4392606,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5646506,46.4447386,0 7.5645313,46.4447993,0 7.5644484,46.4450193,0 7.5640955,46.4450566,0 7.5638276,46.4451873,0 + + + + Engstligfall + #style-Waterway_Stream + + relativeToGround + 7.5627503,46.4485911,0 7.5629257,46.4519973,0 7.5622285,46.4525302,0 7.5607905,46.4537849,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5620068,46.5282186,0 7.5616241,46.5285431,0 7.5612987,46.5290602,0 7.5610529,46.5299302,0 7.5611554,46.5308279,0 7.5614905,46.5326035,0 + + + + Otterbach + #style-Waterway_Stream + + relativeToGround + 7.5888244,46.5220523,0 7.5871462,46.521574,0 7.5861579,46.5215056,0 7.5848115,46.5211241,0 7.5830923,46.5211693,0 7.580815,46.522144,0 7.5765962,46.5222701,0 7.5744876,46.5222718,0 7.5650623,46.5253673,0 7.5641575,46.5257686,0 7.5630746,46.526248,0 7.562304,46.5273981,0 7.5621005,46.5277942,0 7.5620068,46.5282186,0 7.5620048,46.5291866,0 7.5623207,46.5299472,0 7.5624241,46.5306152,0 7.5627651,46.5313534,0 7.5628991,46.531972,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.6030484,46.5615227,0 7.6049878,46.5605166,0 7.6063117,46.5602212,0 7.6087389,46.5599177,0 7.6107247,46.5592709,0 7.6120968,46.5587128,0 7.6127925,46.5583692,0 7.6139269,46.5579905,0 7.6150274,46.5575363,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5897984,46.5505716,0 7.590784,46.549945,0 7.5924214,46.5492396,0 7.5962237,46.5481799,0 7.5984549,46.547619,0 7.5998111,46.5476291,0 7.602103,46.5468677,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.6025091,46.540512,0 7.6004436,46.5410848,0 7.5997811,46.5413145,0 7.5993888,46.5415236,0 7.5987378,46.5417055,0 7.5981278,46.5415615,0 7.5960941,46.5413591,0 7.5895257,46.5433921,0 7.5862162,46.545057,0 7.5845458,46.5461244,0 7.5839739,46.5467957,0 + + + + Bettbach + #style-Waterway_Stream + + relativeToGround + 7.5952076,46.5310701,0 7.5933564,46.5308251,0 7.5920313,46.5309442,0 7.5907951,46.5309688,0 7.5893698,46.5311437,0 7.5871115,46.5320641,0 7.5840636,46.5327994,0 7.5808357,46.5338491,0 7.5792828,46.5348533,0 7.5769635,46.5361725,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5632368,46.463919,0 7.5643968,46.463232,0 7.5657493,46.4626938,0 7.5683745,46.4623092,0 7.5707137,46.4620696,0 7.5751947,46.4618406,0 7.5771588,46.4618878,0 7.5796521,46.4627464,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.563575,46.4676896,0 7.564838,46.4677747,0 7.5668754,46.4675639,0 7.5702666,46.4666669,0 7.572771,46.4663288,0 7.5792436,46.4665687,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.563948,46.4668286,0 7.5654428,46.4666022,0 7.5697357,46.466088,0 7.5727472,46.4655845,0 7.5754053,46.4654321,0 + + + + Waleggbach + #style-Waterway_Stream + + relativeToGround + 7.4408874,46.4624093,0 7.4405704,46.4620447,0 7.4382377,46.4605186,0 7.4374644,46.459883,0 7.4365609,46.459575,0 7.4343172,46.4589405,0 7.4305385,46.4591194,0 7.4286491,46.4587615,0 7.4281059,46.4584361,0 7.4259568,46.4575088,0 7.4244689,46.4571508,0 7.4239493,46.457281,0 7.423477,46.4564838,0 7.4226976,46.4560282,0 7.4220836,46.4550682,0 7.4213514,46.4545313,0 7.420265,46.4548567,0 7.4199816,46.4538642,0 7.419155,46.4534249,0 7.4176945,46.4527747,0 7.4167971,46.4523029,0 7.4148841,46.4518961,0 7.4140103,46.4511639,0 7.413042,46.4502852,0 7.4125224,46.4500086,0 7.4107747,46.4495204,0 7.4101843,46.4483651,0 7.4091451,46.4472911,0 7.4072085,46.4462659,0 7.406193,46.4454523,0 7.4056498,46.4437435,0 7.4055789,46.4422301,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.455212,46.4413715,0 7.4541445,46.440869,0 7.4523968,46.4403156,0 7.4508381,46.4397623,0 7.4500823,46.4393554,0 7.4491849,46.4388834,0 7.4487125,46.4384277,0 7.4484055,46.4379557,0 7.4480512,46.4371582,0 7.4469176,46.436377,0 7.4457368,46.4358887,0 7.4445087,46.4352702,0 7.4440363,46.4346517,0 7.4439891,46.4340983,0 7.443871,46.4334961,0 7.4439419,46.433138,0 7.4434931,46.4326659,0 7.4430916,46.4320474,0 7.4427846,46.4316567,0 7.441651,46.4311359,0 7.4410369,46.4310056,0 7.4406354,46.4303057,0 7.4403284,46.4296709,0 7.4401867,46.4286616,0 7.4390295,46.4272779,0 7.4383682,46.4258942,0 7.4383446,46.4252919,0 7.4383588,46.4234132,0 7.4379809,46.4229704,0 7.4379809,46.4224234,0 7.4383965,46.4222671,0 7.4385477,46.4220197,0 7.4394546,46.4209517,0 7.439572,46.4205138,0 7.439024,46.419662,0 + + + + Gilsbach + #style-Waterway_Stream + + relativeToGround + 7.5444891,46.4838255,0 7.5441715,46.4835228,0 7.543632,46.4826983,0 7.5431692,46.482315,0 7.5427131,46.4818558,0 7.5424228,46.4811668,0 7.5418523,46.4805595,0 7.5414058,46.4804053,0 7.5410234,46.4801636,0 7.5404661,46.4792391,0 7.5401919,46.478841,0 7.5391844,46.4774431,0 7.5389666,46.4766853,0 7.5386024,46.4761968,0 7.5383865,46.4757296,0 7.5376236,46.4739031,0 7.537638,46.4735448,0 7.5382409,46.4729685,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5579549,46.4702079,0 7.5585842,46.4702669,0 7.5596437,46.4708957,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5610883,46.4713922,0 7.5596437,46.4708957,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.6113718,46.5266965,0 7.610492,46.5267482,0 7.6098322,46.5271948,0 7.6091348,46.5277705,0 7.6084374,46.5283758,0 7.6074933,46.5287818,0 7.6072465,46.5290438,0 7.606989,46.5291951,0 7.6063078,46.5294461,0 7.6059752,46.5295568,0 7.6051061,46.5297709,0 7.6038991,46.5300772,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.6011565,46.5596316,0 7.600767,46.5601643,0 7.6003628,46.5608149,0 7.6000703,46.5616961,0 7.5995972,46.5624472,0 7.5990811,46.5628907,0 7.5982726,46.5633757,0 7.5976963,46.5635176,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5622868,46.4987922,0 7.563293,46.498268,0 7.5640554,46.4980879,0 7.5649734,46.4979027,0 7.5661467,46.4975824,0 7.5672189,46.4974246,0 7.5679539,46.4973689,0 7.5684799,46.4974478,0 7.5689384,46.4976242,0 7.5694981,46.4977727,0 7.570604,46.4978563,0 7.5716963,46.4978702,0 7.5722763,46.4977959,0 7.5730315,46.4969189,0 + + + + Allebach + #style-Waterway_Stream + + relativeToGround + 7.5396772,46.4842367,0 7.5411265,46.4838022,0 7.5436247,46.4837589,0 7.5442613,46.4839194,0 7.5444006,46.4838783,0 7.5444891,46.4838255,0 7.5460021,46.483802,0 7.5486107,46.4844951,0 7.5496668,46.4846853,0 7.5502713,46.4849285,0 7.550623,46.485323,0 7.5523906,46.4863698,0 7.5529233,46.4865507,0 7.5537024,46.4865959,0 7.5547532,46.4867557,0 7.5592633,46.4879144,0 7.5604607,46.4882109,0 7.562318,46.4882312,0 7.5628498,46.4883362,0 7.5651569,46.489581,0 7.5658291,46.4897725,0 7.5665939,46.4899418,0 7.5669049,46.4901147,0 7.5679163,46.4904384,0 + + + + Engstlige + #style-Waterway_Stream + + relativeToGround + 7.5607905,46.4537849,0 7.5604924,46.4541209,0 7.560399,46.454507,0 7.5606654,46.4568691,0 7.5619095,46.4595042,0 7.5625295,46.4614662,0 7.5626063,46.4627988,0 7.5632368,46.463919,0 7.5637327,46.4648,0 7.5640365,46.4664917,0 7.563948,46.4668286,0 7.5639095,46.4669753,0 7.563575,46.4676896,0 7.5632036,46.4684826,0 7.562787,46.4697544,0 7.5623296,46.4703181,0 7.5619262,46.4705013,0 7.5613885,46.4709202,0 7.56112,46.4712946,0 7.5610883,46.4713922,0 7.5611153,46.4716139,0 7.5613631,46.4719076,0 7.5611917,46.4726986,0 7.5615884,46.4733249,0 7.5611864,46.473944,0 7.5617112,46.4743256,0 7.5618499,46.4745876,0 7.5617554,46.4755833,0 7.56195,46.4759029,0 7.5620659,46.4763197,0 7.5621603,46.4764219,0 7.5627234,46.4765325,0 7.5628681,46.4766962,0 7.5627775,46.4768782,0 7.5625288,46.4770123,0 7.5622246,46.4773669,0 7.5622322,46.4775806,0 7.5623728,46.4776887,0 7.5625066,46.4781258,0 7.5619567,46.4786796,0 7.5618736,46.4788606,0 7.5619391,46.4792018,0 7.5622445,46.4793954,0 7.5628111,46.4795891,0 7.5629037,46.4797214,0 7.563056,46.4804239,0 7.5635031,46.4807911,0 7.5635066,46.4809088,0 7.563095,46.4814951,0 7.563097,46.4816769,0 7.5636883,46.4820501,0 7.5639504,46.4823962,0 7.5638459,46.4826554,0 7.563501,46.4830543,0 7.5635042,46.4831882,0 7.5639195,46.4834569,0 7.5640923,46.4836871,0 7.5642456,46.4841074,0 7.5642177,46.4843665,0 7.5634591,46.4851604,0 7.5636818,46.4857398,0 7.5649601,46.4874304,0 7.5661911,46.4879853,0 7.5665395,46.4886838,0 7.5676235,46.489324,0 7.5679163,46.4904384,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5962122,46.5089224,0 7.5886622,46.5110814,0 7.5869149,46.5114364,0 7.5829228,46.5126941,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.5641575,46.5257686,0 7.5613671,46.5258087,0 7.5604396,46.5259298,0 7.5596879,46.5260952,0 7.5590727,46.5263174,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.4458894,46.38078,0 7.445546,46.3804839,0 7.4447092,46.3800546,0 7.4438509,46.379951,0 7.4439796,46.3802767,0 7.4442371,46.3809132,0 7.4443659,46.3813425,0 + + + + #style-Waterway_Stream + + relativeToGround + 7.4452456,46.3812536,0 7.4444517,46.3803803,0 7.4438509,46.379951,0 7.4431428,46.3797808,0 7.4419411,46.3796031,0 7.4409755,46.3796993,0 7.4399348,46.3796919,0 7.4392482,46.3795143,0 7.4387225,46.3794773,0 7.4384221,46.3795365,0 7.4379286,46.379766,0 7.4372848,46.3803581,0 7.4369522,46.3810612,0 + + + + Schmittenbach + #style-Waterway_Stream + + relativeToGround + 7.561025,46.4950847,0 7.5620763,46.4944701,0 7.562971,46.4940767,0 7.5634598,46.4938949,0 7.564526,46.4932355,0 7.5657085,46.4926575,0 7.5662682,46.492473,0 7.5667333,46.4923318,0 7.5674467,46.4921962,0 7.5692638,46.4922844,0 + + + + + Waterway_Canal + + + + Waterway_Drain + + + + + Railways + + Railway_Rail_Casing + + + + Railway_Rail_Core + + + + Railway_Lightrail + + + + Railway_Tram + + + + + Natural_Features + + Cliff + + + + + Roads + + Core + + Motorway + + + + Motorway_Link + + + + Trunk + + + + Trunk_Link + + + + Primary + + + + Primary_Link + + + + Secondary + + + Lenkstrasse + #style-Secondary + + relativeToGround + 7.4421289,46.4613278,1 7.4424372,46.4608567,1 7.4425659,46.4606405,1 7.4426223,46.4604964,1 7.4426893,46.4602414,1 + + + + Lenkstrasse + #style-Secondary + + relativeToGround + 7.4323137,46.4764918,1 7.4336701,46.4747049,1 7.4348985,46.4732419,1 7.4359588,46.472141,1 7.4370811,46.4707552,1 7.4377578,46.4699427,1 7.4380689,46.469466,1 7.4384373,46.46873,1 7.4387197,46.4681415,1 7.4387985,46.4679364,1 7.4388238,46.4677498,1 7.4388285,46.4674118,1 7.4388628,46.4671901,1 7.4389654,46.4669807,1 7.4390935,46.4668317,1 7.4398408,46.466209,1 7.4400461,46.4659856,1 7.4402163,46.4657472,1 7.4403488,46.4655089,1 7.4404453,46.465217,1 7.4406961,46.4643705,1 7.4409781,46.4635043,1 7.441073,46.463266,1 7.4411695,46.4631071,1 7.441316,46.4629389,1 7.4414914,46.4626895,1 7.4416374,46.4622146,1 7.4419152,46.461629,1 7.4421289,46.4613278,1 + + + + Lenkstrasse + #style-Secondary + + relativeToGround + 7.4245844,46.4920082,1 7.4262126,46.4909139,1 7.4265951,46.4906478,1 7.4269109,46.4904109,1 7.4271226,46.4901976,1 7.4272528,46.4900189,1 7.4272987,46.4897359,1 7.4273256,46.4892013,1 7.4274383,46.4887803,1 7.427669,46.4881746,1 7.427858,46.4877541,1 7.4279747,46.4875615,1 7.4281029,46.4874142,1 7.4283818,46.4871409,1 7.4290041,46.4866386,1 7.4293903,46.4862988,1 7.4296806,46.4859289,1 7.4299413,46.4854299,1 7.430212,46.4846591,1 7.4303388,46.4844164,1 7.4305926,46.4840341,1 7.4306993,46.4837871,1 7.4307522,46.4836178,1 7.4307733,46.4833785,1 7.4307207,46.4828415,1 7.4307529,46.4824647,1 7.4309246,46.4821397,1 7.4312142,46.4817777,1 7.4313475,46.481483,1 7.4313859,46.4806991,1 7.431493,46.4804403,1 7.431579,46.4802927,1 7.4316738,46.4801621,1 7.4318371,46.4798194,1 7.4318258,46.4795687,1 7.4317788,46.479296,1 7.4315224,46.4785956,1 7.4314932,46.4783644,1 7.4315213,46.4780594,1 7.4315726,46.477845,1 7.431653,46.4776233,1 7.4318747,46.4771523,1 7.4323137,46.4764918,1 + + + + Lenkstrasse + #style-Secondary + + relativeToGround + 7.4191059,46.4991161,1 7.4194662,46.4987815,1 7.4197451,46.4984344,1 7.4198288,46.4982833,1 7.4198964,46.4981614,1 7.4200241,46.4977476,1 7.4201298,46.4970122,1 7.4203128,46.4962737,1 7.4204663,46.4959279,1 7.4206823,46.4955804,1 7.4210493,46.4951362,1 + + + + Lenkstrasse + #style-Secondary + + relativeToGround + 7.421178,46.4949811,1 7.42196,46.4940534,1 7.4224211,46.4935642,1 7.4227418,46.4933061,1 7.4230877,46.4930497,1 7.4245844,46.4920082,1 + + + + Lenkstrasse + #style-Secondary + + relativeToGround + 7.4210493,46.4951362,1 7.421178,46.4949811,1 + + + + Lenkstrasse + #style-Secondary + + relativeToGround + 7.442705,46.4601691,1 7.4427198,46.4601214,1 7.4427644,46.4599513,1 7.4428057,46.4598036,1 7.442913,46.4596483,1 7.4430721,46.4594012,1 7.4431497,46.4591692,1 7.443156,46.4590737,1 7.4431495,46.4589587,1 7.442987,46.4576685,1 7.4429961,46.4574482,1 7.4430461,46.4572518,1 7.4430622,46.4571982,1 + + + + Lenkstrasse + #style-Secondary + + relativeToGround + 7.4426893,46.4602414,1 7.442705,46.4601691,1 + + + + Landstrasse (223.1) + #style-Secondary + + relativeToGround + 7.5690779,46.4942399,1 7.5692844,46.4945619,1 7.5698423,46.4953005,1 7.5709768,46.4961208,1 7.5713873,46.4963345,1 7.5716754,46.4967489,1 7.5721169,46.4972208,1 7.5741339,46.4978412,1 7.5749927,46.4993482,1 7.5753145,46.5003082,1 7.5763776,46.5014193,1 7.5765386,46.5015899,1 7.5769888,46.501843,1 7.5784191,46.501918,1 7.5789112,46.5019253,1 7.5796023,46.5019527,1 7.5798635,46.5020363,1 7.5800494,46.5021673,1 7.580325,46.5027273,1 7.5803532,46.5027703,1 + + + + Adelbodenstrasse (223.1) + #style-Secondary + + relativeToGround + 7.6122594,46.5585364,1 7.6122192,46.5585079,1 7.610827,46.5573928,1 7.6094322,46.5564928,1 7.6086383,46.5555632,1 7.6077585,46.5551205,1 7.6058702,46.5535859,1 7.6048832,46.5526563,1 7.6046901,46.5520365,1 7.6040249,46.5516086,1 7.6028571,46.5505041,1 7.6026829,46.5500915,1 7.6025506,46.5498156,1 7.6025022,46.5497569,1 + + + + Adelbodenstrasse + #style-Secondary + + relativeToGround + 7.6025022,46.5497569,1 7.6023929,46.5496256,1 + + + + Adelbodenstrasse + #style-Secondary + + relativeToGround + 7.612416,46.5586345,1 7.6122594,46.5585364,1 + + + + Adelbodenstrasse + #style-Secondary + + relativeToGround + 7.6001154,46.5474612,1 7.6002652,46.547606,1 + + + + Adelbodenstrasse (223.1) + #style-Secondary + + relativeToGround + 7.6246335,46.5705545,1 7.6246247,46.5705495,1 7.6242166,46.5702873,1 7.6233582,46.5694317,1 7.6227574,46.5683549,1 7.6224141,46.5680303,1 7.6221411,46.5675483,1 7.6218995,46.5671196,1 7.6216416,46.5666731,1 7.6211267,46.5661273,1 7.6204829,46.5648438,1 7.6191955,46.5639734,1 7.6182728,46.5626161,1 7.6179588,46.5615664,1 7.6178013,46.5612694,1 7.6174972,46.56112,1 7.6168363,46.5609385,1 7.6157193,46.560403,1 7.6145821,46.5600341,1 7.6137452,46.5592522,1 7.612416,46.5586345,1 + + + + Adelbodenstrasse (223.1) + #style-Secondary + + relativeToGround + 7.6023929,46.5496256,1 7.6020079,46.5491442,1 7.6007848,46.5481112,1 7.6002652,46.547606,1 + + + + Adelbodenstrasse (223.1) + #style-Secondary + + relativeToGround + 7.6001154,46.5474612,1 7.5998406,46.5471962,1 7.599669,46.5467387,1 7.5997977,46.5460599,1 7.6002483,46.5451891,1 + + + + Adelbodenstrasse + #style-Secondary + + relativeToGround + 7.5917717,46.5267057,1 7.5923442,46.5260517,1 + + + + Adelbodenstrasse + #style-Secondary + + relativeToGround + 7.592227,46.5309052,1 7.5922718,46.5309677,1 + + + + Adelbodenstrasse (223.1) + #style-Secondary + + relativeToGround + 7.5987934,46.5407011,1 7.5987112,46.5396482,1 7.5984459,46.5390659,1 7.5987605,46.5380854,1 7.5981669,46.5376949,1 7.5979738,46.5372669,1 7.5975232,46.5369126,1 7.5972013,46.5362041,1 7.5967401,46.5358949,1 7.5963645,46.5355251,1 7.596107,46.5352151,1 7.5959139,46.5346099,1 7.5954367,46.534118,1 7.5951966,46.5330623,1 7.5942831,46.5321152,1 7.5939398,46.5315985,1 7.5936058,46.5312116,1 7.5932888,46.5311187,1 7.5926021,46.5311329,1 7.5924089,46.5310813,1 7.5923789,46.5310671,1 7.5922718,46.5309677,1 + + + + Adelbodenstrasse + #style-Secondary + + relativeToGround + 7.5923442,46.5260517,1 7.5925689,46.5257627,1 7.5928454,46.5253974,1 7.5927869,46.5248461,1 + + + + Adelbodenstrasse (223.1) + #style-Secondary + + relativeToGround + 7.5987934,46.5407011,1 7.5990252,46.5417356,1 7.5997548,46.5427687,1 7.600656,46.5435067,1 7.6005487,46.5442594,1 7.6002483,46.5451891,1 + + + + Adelbodenstrasse (223.1) + #style-Secondary + + relativeToGround + 7.592227,46.5309052,1 7.5922401,46.5306523,1 7.5928025,46.5295318,1 7.5927596,46.5290299,1 7.5926159,46.5287063,1 7.5920786,46.5277859,1 7.5917134,46.5271711,1 7.5916653,46.5270074,1 7.5917717,46.5267057,1 + + + + Landstrasse (223.1) + #style-Secondary + + relativeToGround + 7.5597987,46.4888045,1 7.5599098,46.488794,1 7.5600095,46.4888091,1 7.5600873,46.4888392,1 7.5604036,46.4890905,1 7.5605568,46.4891692,1 7.5607125,46.4892161,1 7.5615168,46.4893029,1 7.5626755,46.4897461,1 7.5641775,46.4897756,1 7.5658886,46.4903417,1 7.5659944,46.4903674,1 7.5670612,46.490656,1 7.5674115,46.490768,1 7.5677132,46.4909027,1 7.5688982,46.4924052,1 7.568897,46.4933261,1 7.5688982,46.4937051,1 7.5690779,46.4942399,1 + + + + Landstrasse + #style-Secondary + + relativeToGround + 7.5807143,46.5031184,1 7.5803532,46.5027703,1 + + + + Landstrasse (223.1) + #style-Secondary + + relativeToGround + 7.5597987,46.4888045,1 7.5597424,46.4888794,1 7.5597289,46.4889654,1 7.5598431,46.4891256,1 7.5604219,46.4895759,1 7.5610442,46.4898123,1 7.5618596,46.4904771,1 7.5619481,46.4908394,1 7.5619716,46.4909369,1 7.5620328,46.4912044,1 7.5620419,46.4912371,1 7.5621386,46.4916589,1 7.5623751,46.4918667,1 7.5633831,46.4927964,1 7.5633791,46.492965,1 7.5633139,46.4930204,1 7.5632271,46.4930606,1 7.5631435,46.493056,1 7.5625349,46.4929938,1 7.5615826,46.4930937,1 7.5609767,46.4931868,1 7.5597217,46.4932641,1 + + + + Landstrasse (223.1) + #style-Secondary + + relativeToGround + 7.5927869,46.5248461,1 7.5922439,46.524217,1 7.5915151,46.5232566,1 7.5901418,46.5224298,1 7.5896053,46.5219869,1 7.589224,46.5211243,1 7.5890023,46.5205153,1 7.5882535,46.5188272,1 7.5879102,46.5182808,1 7.5872235,46.5177345,1 7.5870469,46.5174702,1 7.587009,46.517011,1 7.5876833,46.5164516,1 7.5880389,46.5161546,1 7.5880818,46.5159478,1 7.5878243,46.5158445,1 7.5868373,46.5160955,1 7.5864725,46.5160512,1 7.5863867,46.5158592,1 7.5868373,46.5151357,1 7.5868587,46.5144269,1 7.5861506,46.5135852,1 7.5858073,46.5129798,1 7.5856571,46.5122562,1 7.5853231,46.5118698,1 7.5849493,46.5116193,1 7.5849029,46.5115884,1 7.5845033,46.511303,1 7.5837259,46.5103807,1 7.5835972,46.5099525,1 7.5837819,46.5092432,1 7.5837688,46.5089696,1 7.5834684,46.5083132,1 7.5833721,46.5079092,1 7.5833611,46.5074862,1 7.5835114,46.5066296,1 7.5834554,46.5063745,1 7.5833344,46.5060923,1 7.5823956,46.5048989,1 7.5819422,46.5041172,1 7.5814943,46.503661,1 7.5808419,46.5032417,1 7.5807143,46.5031184,1 + + + + + Unclassified + + + Schlegelistrasse + #style-Unclassified + + relativeToGround + 7.5650662,46.4957333,1 7.5647157,46.4954991,1 7.5643603,46.4953787,1 7.5628576,46.4946658,1 7.5626535,46.4945986,1 7.5617886,46.4948002,1 7.561591,46.494845,1 7.5614673,46.4947425,1 7.5615188,46.494565,1 7.5617978,46.4943139,1 7.5617449,46.4941344,1 7.5613391,46.4939717,1 7.5598323,46.4933677,1 7.5597217,46.4932641,1 + + + + Ruheweg + #style-Unclassified + + relativeToGround + 7.5628576,46.4946658,1 7.5631584,46.4945553,1 7.5636005,46.4947211,1 + + + + Dorfstrasse + #style-Unclassified + + relativeToGround + 7.5597217,46.4932641,1 7.5595144,46.4930964,1 + + + + Sunneweg + #style-Unclassified + + relativeToGround + 7.5589173,46.4942818,1 7.5592854,46.4947564,1 + + + + Haltenstrasse + #style-Unclassified + + relativeToGround + 7.5580946,46.4928578,1 7.5580394,46.4929428,1 7.5580016,46.493001,1 7.5584826,46.4935359,1 7.5589806,46.4941802,1 7.5589173,46.4942818,1 7.5580289,46.4940058,1 7.557863,46.4940514,1 7.5585141,46.4945781,1 7.5584892,46.4949762,1 + + + + Bellevuegaessli + #style-Unclassified + + relativeToGround + 7.5581971,46.4920378,1 7.5579392,46.492211,1 7.5576315,46.4922586,1 7.5573333,46.4922537,1 7.5568548,46.4922385,1 + + + + Bellevuestrasse + #style-Unclassified + + relativeToGround + 7.5568451,46.4909915,1 7.5562427,46.4910686,1 7.5560919,46.4912908,1 7.5563797,46.4920739,1 + + + + Senggistrasse + #style-Unclassified + + relativeToGround + 7.556064,46.4904831,1 7.5558567,46.490661,1 7.555653,46.4908226,1 7.5555547,46.4908982,1 + + + + Untere Kurhausstrasse + #style-Unclassified + + relativeToGround + 7.5594245,46.493615,1 7.5603132,46.4940893,1 7.5611146,46.4943645,1 7.5612008,46.4943941,1 + + + + Obere Dorfstrasse + #style-Unclassified + + relativeToGround + 7.5576315,46.4922586,1 7.5580946,46.4928578,1 7.5584537,46.4927197,1 7.5588805,46.4931539,1 7.5590802,46.4933577,1 7.5594245,46.493615,1 + + + + #style-Unclassified + + relativeToGround + 7.5559303,46.4904006,1 7.5560779,46.4899713,1 7.5561408,46.4893354,1 + + + + #style-Unclassified + + relativeToGround + 7.599669,46.5467387,1 7.5994759,46.5465921,1 7.5994329,46.5460756,1 7.5998836,46.5456919,1 7.5998192,46.5452196,1 7.6005487,46.5449983,1 7.6007848,46.5444965,1 7.6010637,46.5442308,1 7.6011066,46.5438176,1 7.60145,46.5432715,1 7.6011281,46.5426074,1 7.6011066,46.5421794,1 7.6007068,46.54153,1 7.6001666,46.5412566,1 + + + + Alte Adelbodenstrasse + #style-Unclassified + + relativeToGround + 7.5982021,46.522924,1 7.5984662,46.5231705,1 7.5989692,46.523522,1 7.5991969,46.5235962,1 7.5997134,46.5240328,1 7.5999724,46.5242085,1 7.6002352,46.5243045,1 7.6008843,46.5244115,1 7.6011526,46.5245222,1 7.6012759,46.5246809,1 7.6017856,46.5255889,1 7.6019197,46.525803,1 7.6021074,46.5259285,1 7.6024799,46.5260617,1 7.6030516,46.5262828,1 7.6033037,46.5263123,1 7.6034753,46.5262754,1 7.6038103,46.5260773,1 7.604218,46.5260773,1 7.6046472,46.5258854,1 7.6049047,46.525974,1 7.6049261,46.5262841,1 7.6048111,46.5267257,1 7.6048403,46.5269189,1 7.6049935,46.5271612,1 7.6054441,46.5276262,1 7.6058059,46.5280704,1 7.6059609,46.5289507,1 7.6061361,46.5293018,1 7.6062112,46.5294716,1 7.6061897,46.5295602,1 7.6060932,46.5296155,1 7.6059035,46.5296615,1 7.6056342,46.5297829,1 7.6054173,46.5299514,1 7.60509,46.5303462,1 7.6049665,46.5305456,1 7.6049613,46.5306895,1 7.6050847,46.530922,1 7.6052788,46.5311467,1 7.6054977,46.5313944,1 7.6058679,46.5317228,1 7.6059001,46.5317745,1 7.6059376,46.5318926,1 7.6059913,46.5320586,1 7.6061305,46.5322292,1 7.6063638,46.5324253,1 7.6064526,46.5325901,1 7.6064848,46.5327635,1 7.6066135,46.5329037,1 7.6070674,46.5331968,1 7.6075738,46.5335237,1 7.6078014,46.5337372,1 7.6080673,46.5340035,1 7.6084911,46.5345533,1 7.6088129,46.5349371,1 7.6091724,46.5354021,1 7.6094674,46.5357084,1 7.6099073,46.5360479,1 7.6105403,46.5366752,1 7.6109557,46.5370289,1 7.6117258,46.5375645,1 7.6119684,46.5378839,1 7.6121573,46.5382392,1 7.6123535,46.5384464,1 7.6124421,46.5386678,1 7.61245,46.5388523,1 7.612367,46.5392618,1 7.6123505,46.5394348,1 7.6123964,46.5396051,1 7.6123763,46.5398221,1 7.6122861,46.5400548,1 7.6121496,46.5402582,1 7.6120152,46.5403909,1 7.6117741,46.5406899,1 7.6114898,46.5410958,1 7.6112776,46.5414422,1 7.6111894,46.5417378,1 7.6111376,46.5422652,1 7.6111518,46.5425828,1 7.6112269,46.5427045,1 7.611361,46.5428226,1 7.6116239,46.5430292,1 7.6122193,46.5434203,1 7.6129865,46.5439111,1 7.6135926,46.5443612,1 7.6146119,46.5451434,1 7.614784,46.5453074,1 7.6148962,46.5454644,1 7.6149659,46.5456968,1 7.6150679,46.5458444,1 7.6157974,46.546693,1 7.6160263,46.546901,1 7.6166128,46.5473312,1 7.6167278,46.5474471,1 7.6170688,46.5479732,1 7.6173072,46.548244,1 7.6177393,46.5486742,1 7.6180505,46.5488845,1 7.6184582,46.5491206,1 7.6196544,46.5497404,1 7.6199768,46.5500353,1 7.6204185,46.5506204,1 7.6207273,46.550873,1 7.6210438,46.5510574,1 7.6220678,46.5515417,1 + + + + Hörnliweg + #style-Unclassified + + relativeToGround + 7.5617886,46.4948002,1 7.5618606,46.4948615,1 7.5623632,46.494749,1 7.5625028,46.4947991,1 7.5625853,46.4950604,1 7.5626507,46.4952674,1 7.5627191,46.4953707,1 7.5631362,46.496001,1 7.5633343,46.4964952,1 7.5633664,46.4966989,1 7.5633291,46.4970595,1 7.5632368,46.4976696,1 7.563267,46.49787,1 7.5633854,46.4980113,1 7.563427,46.498168,1 + + + + #style-Unclassified + + relativeToGround + 7.559232,46.4796016,1 7.5585617,46.4808415,1 7.5583492,46.4819039,1 + + + + #style-Unclassified + + relativeToGround + 7.5609767,46.4931868,1 7.561166,46.4933554,1 7.5615163,46.4934914,1 + + + + #style-Unclassified + + relativeToGround + 7.5793256,46.4906279,1 7.580064,46.4905866,1 7.5805941,46.4903711,1 7.581293,46.4898469,1 7.5815091,46.4898495,1 + + + + #style-Unclassified + + relativeToGround + 7.5594245,46.493615,1 7.5598323,46.4933677,1 + + + + #style-Unclassified + + relativeToGround + 7.5587375,46.4925106,1 7.5584537,46.4927197,1 + + + + #style-Unclassified + + relativeToGround + 7.5535228,46.4865284,1 7.5535075,46.4866379,1 + + + + #style-Unclassified + + relativeToGround + 7.4450513,46.4614534,1 7.4452221,46.4614886,1 7.4456382,46.4613184,1 7.4461757,46.4609278,1 7.4463157,46.4610248,1 7.4464015,46.4610858,1 7.4466914,46.4607591,1 7.4468012,46.4607348,1 + + + + Bühlbergstrasse + #style-Unclassified + + relativeToGround + 7.4430622,46.4571982,1 7.4431212,46.4572001,1 7.4432434,46.4572082,1 7.4442759,46.457382,1 7.4444794,46.4574163,1 7.4448677,46.4575035,1 7.4464578,46.4579817,1 7.4465356,46.4580981,1 7.4476729,46.4597444,1 7.4477077,46.4598442,1 + + + + Gutenbrunnenstrasse + #style-Unclassified + + relativeToGround + 7.4448677,46.4575035,1 7.4448112,46.457744,1 7.4446903,46.4584104,1 7.4446715,46.4588889,1 7.4446685,46.4592476,1 7.4447089,46.4594931,1 7.4447493,46.4595984,1 7.444827,46.4597038,1 + + + + Wallenbachstrasse + #style-Unclassified + + relativeToGround + 7.4421289,46.4613278,1 7.4420439,46.4613149,1 7.4419537,46.4612981,1 7.4418739,46.4612798,1 + + + + Ägertenstrasse + #style-Unclassified + + relativeToGround + 7.441257,46.4569858,1 7.4409713,46.4574792,1 7.4407225,46.4578869,1 7.4398636,46.4589239,1 7.4396997,46.4590756,1 7.4393993,46.4592865,1 7.4389969,46.4594599,1 7.4386873,46.4595765,1 7.4384892,46.4596916,1 7.438253,46.4598534,1 7.438103,46.459935,1 7.4378459,46.4600208,1 7.4377581,46.4600511,1 + + + + Rütistrasse + #style-Unclassified + + relativeToGround + 7.4378459,46.4600208,1 7.4371477,46.4594844,1 7.4369002,46.4593711,1 7.4351732,46.4588118,1 7.4346689,46.4587157,1 7.4343168,46.4586884,1 7.433596,46.4585605,1 7.4332261,46.4585191,1 7.4327699,46.458627,1 7.432094,46.4586566,1 7.4318151,46.4585975,1 7.4316005,46.4585827,1 7.4312142,46.4585309,1 7.430828,46.4585679,1 7.4304096,46.4586862,1 + + + + #style-Unclassified + + relativeToGround + 7.4427198,46.4601214,1 7.4441314,46.4598231,1 7.444827,46.4597038,1 + + + + #style-Unclassified + + relativeToGround + 7.4403161,46.4578243,1 7.4407225,46.4578869,1 + + + + #style-Unclassified + + relativeToGround + 7.4407225,46.4578869,1 7.4409101,46.4579181,1 + + + + #style-Unclassified + + relativeToGround + 7.4404453,46.465217,1 7.4393848,46.4651486,1 + + + + Fuhrenstrasse + #style-Unclassified + + relativeToGround + 7.4296586,46.4726679,1 7.4298576,46.4724974,1 7.4299482,46.4723427,1 7.4302165,46.4718551,1 7.4304096,46.4715226,1 7.4309246,46.4709019,1 7.4314181,46.4703033,1 7.4340467,46.4683451,1 7.4344114,46.4681161,1 7.4347333,46.4678353,1 7.4351088,46.4673623,1 7.4359993,46.4657735,1 7.4367235,46.464426,1 7.4368575,46.4640778,1 7.4368843,46.4636223,1 7.4366858,46.462123,1 + + + + Schadaulistrasse + #style-Unclassified + + relativeToGround + 7.4318747,46.4771523,1 7.4308709,46.4767833,1 7.4304263,46.4765871,1 7.4295513,46.4761553,1 7.4293897,46.4761015,1 7.4292187,46.4760445,1 + + + + #style-Unclassified + + relativeToGround + 7.4523989,46.4496459,1 7.452694,46.4494094,1 7.4529944,46.4490804,1 7.4538849,46.446604,1 7.454593,46.4446597,1 7.4548183,46.4438761,1 + + + + Oberriedstrasse + #style-Unclassified + + relativeToGround + 7.4430622,46.4571982,1 7.4430863,46.457126,1 7.4433572,46.4566273,1 7.443502,46.4562947,1 7.4435554,46.4560527,1 7.4435718,46.4557441,1 7.4436426,46.455437,1 7.4437272,46.454981,1 7.4437756,46.4548719,1 7.4440412,46.4544542,1 7.444062,46.4544122,1 + + + + #style-Unclassified + + relativeToGround + 7.4490998,46.4394476,1 7.4493703,46.4398371,1 7.4496041,46.4400538,1 7.4498937,46.4404937,1 7.4501101,46.4406845,1 + + + + #style-Unclassified + + relativeToGround + 7.4501101,46.4406845,1 7.4518839,46.4414253,1 7.4527026,46.4418144,1 7.4535265,46.4432753,1 7.4540243,46.4437721,1 7.4545085,46.4440271,1 + + + + #style-Unclassified + + relativeToGround + 7.4518839,46.4414253,1 7.4463319,46.4499791,1 7.4459512,46.4506147,1 7.4453521,46.4516335,1 7.4453308,46.4518244,1 + + + + Pöschenriedstrasse + #style-Unclassified + + relativeToGround + 7.439194,46.451784,1 7.4391746,46.4521405,1 + + + + Wallenbachstrasse + #style-Unclassified + + relativeToGround + 7.441721,46.461265,1 7.4416647,46.4612502,1 7.4414716,46.4614165,1 7.4413107,46.4614646,1 7.4411444,46.461472,1 7.4407767,46.4613635,1 7.4398247,46.4608733,1 7.439138,46.4604323,1 7.4390154,46.4603058,1 7.438972,46.4601436,1 7.4389969,46.4594599,1 + + + + Pöschenriedstrasse + #style-Unclassified + + relativeToGround + 7.439194,46.451784,1 7.4393621,46.4512978,1 7.4397084,46.4508377,1 7.4397951,46.4507502,1 7.4408595,46.449676,1 7.441074,46.4493211,1 7.4412135,46.4489959,1 7.4412457,46.4486706,1 7.4412457,46.4482641,1 7.4413208,46.4480793,1 7.441589,46.4477022,1 7.4417178,46.4472513,1 7.4424473,46.4464677,1 7.442676,46.4460304,1 7.4430129,46.4450125,1 7.4431554,46.4447748,1 7.4432091,46.4444791,1 7.4432735,46.4442573,1 7.4433807,46.444176,1 7.4435095,46.4441242,1 7.4436275,46.4440133,1 7.443649,46.443762,1 7.4436919,46.4430449,1 7.4437348,46.4427639,1 7.4436919,46.4423351,1 7.4437348,46.4421207,1 7.4438839,46.4418249,1 7.4442712,46.4403685,1 7.4444429,46.4399619,1 7.4444751,46.4397401,1 7.4444429,46.4394961,1 7.4444107,46.4389564,1 7.4444536,46.4387272,1 7.4445287,46.4385128,1 7.444518,46.4381653,1 7.4444291,46.4378855,1 7.4443034,46.4374185,1 7.4440861,46.4371049,1 7.4436812,46.4366126,1 7.4434558,46.4364056,1 7.4431783,46.4362938,1 7.4428842,46.4360814,1 7.4424312,46.4355924,1 7.4421117,46.4349575,1 7.4418358,46.4339655,1 7.4412534,46.4325618,1 7.4411599,46.4323018,1 7.4409084,46.4319278,1 7.4400947,46.4304322,1 7.4399153,46.4300391,1 7.4398617,46.4296989,1 7.439851,46.4295214,1 7.4400012,46.4291665,1 7.4400211,46.4289007,1 7.4398188,46.4285453,1 7.4396378,46.4283387,1 7.4388103,46.4276505,1 7.4386922,46.4275026,1 7.4384669,46.4269258,1 7.4383275,46.4266152,1 7.4380485,46.4261049,1 7.4378983,46.4254615,1 7.4379305,46.4249956,1 7.4381451,46.4242413,1 7.4382309,46.4238049,1 7.4381635,46.4236286,1 7.4376515,46.4230654,1 7.4375228,46.4227696,1 7.4374799,46.4225699,1 7.4376086,46.4223924,1 7.437791,46.4222962,1 7.4380378,46.4222223,1 7.4381987,46.4221409,1 7.438424,46.4218007,1 7.4386171,46.4214975,1 7.4393222,46.4207591,1 7.4394433,46.4206174,1 7.4394111,46.4204694,1 7.4393252,46.4203659,1 7.4391107,46.4202697,1 7.438939,46.4200996,1 7.4387352,46.4197816,1 7.4383704,46.4195301,1 7.4381635,46.4193094,1 7.4381236,46.4191085,1 7.4381558,46.4187165,1 7.438167,46.4183333,1 7.4382845,46.417866,1 7.4385206,46.4174814,1 7.4387566,46.4170154,1 7.4387723,46.4169033,1 7.4387888,46.4167861,1 7.4386272,46.4164164,1 7.4384991,46.4161204,1 + + + + #style-Unclassified + + relativeToGround + 7.4384991,46.4161204,1 7.4388581,46.415908,1 7.4389068,46.4156322,1 7.4388317,46.4152994,1 7.4389927,46.4149221,1 7.4394325,46.4147224,1 7.4399797,46.4143378,1 7.4403767,46.4141307,1 7.4406985,46.413857,1 7.4409959,46.4135401,1 7.4413392,46.4130075,1 7.4419793,46.4126531,1 7.4419305,46.4125999,1 7.4415906,46.4124847,1 7.441101,46.4124355,1 7.4404666,46.4125933,1 7.4404194,46.4125372,1 7.4405193,46.4124716,1 7.4412531,46.4122448,1 7.4423692,46.4122678,1 7.4424048,46.4122319,1 7.4423429,46.412186,1 7.441468,46.4118535,1 7.4403289,46.4116246,1 7.4396951,46.4114482,1 7.4396417,46.4113803,1 7.4397084,46.4112026,1 7.4392793,46.4109067,1 7.438893,46.4108771,1 7.4396655,46.4107587,1 7.4407813,46.4110251,1 7.4421975,46.4110546,1 7.4425409,46.4113801,1 7.4430558,46.4113407,1 7.4434284,46.4111913,1 7.4436951,46.4108827,1 7.4441145,46.4106569,1 7.4448583,46.4102856,1 7.4461028,46.4086579,1 7.4461457,46.4082436,1 7.4459741,46.4078589,1 7.4456308,46.4079477,1 7.4454162,46.4082436,1 7.4452874,46.4079477,1 7.445502,46.4075926,1 7.4458453,46.4073263,1 7.4463174,46.4064089,1 7.4472186,46.4059651,1 + + + + Gutenbrunnenstrasse + #style-Unclassified + + relativeToGround + 7.4449449,46.4598479,1 7.4450899,46.4600345,1 7.4451328,46.4601213,1 7.4451487,46.4602746,1 7.4450926,46.4604484,1 7.4448382,46.4608729,1 7.4447171,46.4611856,1 7.4446607,46.4613556,1 7.444642,46.4615773,1 7.4446527,46.4617085,1 7.4446688,46.4618747,1 7.4447493,46.4621371,1 7.4450569,46.4629393,1 7.4451223,46.4632094,1 7.445055,46.4636188,1 7.4449424,46.4639884,1 7.4445079,46.4650156,1 7.4444084,46.4652649,1 7.4442226,46.465441,1 7.4440304,46.4655661,1 7.4435166,46.4657543,1 7.4432198,46.46584,1 7.4430595,46.4659171,1 7.4429683,46.4660723,1 7.4428743,46.4668792,1 7.4428824,46.4673286,1 7.4429361,46.4676205,1 7.4431238,46.468001,1 7.4433223,46.4681045,1 7.4434994,46.4680971,1 7.4436635,46.4680594,1 7.4438105,46.4679789,1 7.4440358,46.4679124,1 7.4442075,46.467905,1 7.4443308,46.4679567,1 7.4443149,46.4680648,1 7.4439285,46.4684851,1 7.4438212,46.4686883,1 7.4437958,46.4688583,1 7.4437622,46.4690319,1 7.4436496,46.4691908,1 7.4437193,46.4693016,1 7.4438761,46.4692998,1 7.4439929,46.4692129,1 7.4440902,46.4690344,1 7.4441645,46.46874,1 7.4442289,46.4686735,1 7.4444113,46.4685885,1 7.4448194,46.4685572,1 7.4464444,46.4684814,1 7.4468575,46.4684296,1 7.4472223,46.4683225,1 7.4479143,46.4683484,1 7.4481074,46.4683114,1 7.4482853,46.4680752,1 7.4484024,46.46782,1 7.4487458,46.4674912,1 7.4490163,46.4674327,1 7.4496041,46.4670958,1 7.4497596,46.4670589,1 7.4498401,46.4671106,1 7.4498508,46.4671882,1 7.4497566,46.4672727,1 7.4495987,46.4674284,1 7.4493307,46.4679198,1 7.4492876,46.4681784,1 7.4496416,46.4692868,1 7.4496563,46.4697213,1 7.4494699,46.470107,1 7.4492607,46.4702844,1 7.4489711,46.4704322,1 7.4478714,46.470713,1 7.4475441,46.4708275,1 7.4473456,46.4709642,1 7.447056,46.4711489,1 7.4463582,46.4714157,1 7.4459884,46.471607,1 7.4456988,46.4718509,1 7.4452286,46.4724169,1 7.445114,46.4726674,1 7.4450765,46.4731809,1 7.4449746,46.4733841,1 7.4447178,46.4736469,1 7.4446098,46.4738533,1 7.4445584,46.4740966,1 7.4449598,46.4755818,1 7.4449197,46.4763244,1 7.4445384,46.4777695,1 7.4449211,46.4786051,1 7.4448411,46.4792847,1 7.4442814,46.4802442,1 7.4437217,46.4809239,1 7.4432419,46.4819633,1 7.4429621,46.4833226,1 7.443082,46.4843221,1 7.4434418,46.4851617,1 7.4433219,46.4860013,1 7.4416827,46.4874405,1 7.4412829,46.4883201,1 7.441083,46.4898393,1 7.441163,46.4919582,1 7.4409631,46.4925579,1 7.4410031,46.4940371,1 7.4414828,46.4941171,1 7.443162,46.4933975,1 7.4438816,46.4935174,1 7.4453209,46.4933175,1 7.4477318,46.4928481,1 7.4476808,46.4927546,1 7.4472302,46.4928149,1 7.4455921,46.4926496,1 7.4451878,46.4926864,1 7.4452666,46.4925236,1 7.4456341,46.4924028,1 7.4470149,46.4921981,1 7.447288,46.4921193,1 7.4472985,46.4920563,1 7.4467734,46.4919776,1 7.4455659,46.4916048,1 7.4455134,46.4915365,1 7.4457444,46.4910168,1 7.4454188,46.490728,1 7.4453663,46.4905652,1 + + + + Gutenbrunnenstrasse + #style-Unclassified + + relativeToGround + 7.444827,46.4597038,1 7.4448524,46.4597347,1 + + + + Wallenbachstrasse + #style-Unclassified + + relativeToGround + 7.4418739,46.4612798,1 7.441721,46.461265,1 + + + + Schanzenstrasse + #style-Unclassified + + relativeToGround + 7.4448677,46.4575035,1 7.4448703,46.4570212,1 7.4451135,46.4568262,1 7.4455274,46.4564945,1 7.4460994,46.4560016,1 + + + + #style-Unclassified + + relativeToGround + 7.4432434,46.4572082,1 7.4433858,46.4575296,1 7.4438332,46.4578509,1 + + + + Oertlistrasse + #style-Unclassified + + relativeToGround + 7.4446688,46.4618747,1 7.4449263,46.4618784,1 7.4450513,46.4614534,1 7.4455535,46.4605947,1 + + + + #style-Unclassified + + relativeToGround + 7.4464015,46.4610858,1 7.4459878,46.4615401,1 + + + + #style-Unclassified + + relativeToGround + 7.4477077,46.4598442,1 7.4465974,46.459692,1 7.445441,46.4596274,1 7.444827,46.4597038,1 + + + + Untere Haltenstrasse + #style-Unclassified + + relativeToGround + 7.4464578,46.4579817,1 7.4474714,46.4583086,1 7.4475806,46.4582904,1 7.4478352,46.4579994,1 7.4480413,46.457563,1 7.4481747,46.4576539,1 7.448593,46.4576963,1 7.4486688,46.4577077,1 + + + + Untere Haltenstrasse + #style-Unclassified + + relativeToGround + 7.4478352,46.4579994,1 7.4483384,46.4580722,1 7.4486688,46.4577077,1 7.4487506,46.4576175,1 + + + + Oeystrasse + #style-Unclassified + + relativeToGround + 7.5535075,46.4866379,1 7.5541077,46.486711,1 + + + + #style-Unclassified + + relativeToGround + 7.5705898,46.498823,1 7.5706468,46.4988918,1 7.571328,46.499657,1 7.5715737,46.4997902,1 7.571972,46.499918,1 7.5724383,46.5003898,1 7.57264,46.500482,1 7.572698,46.50071,1 7.573314,46.500878,1 7.573326,46.500982,1 7.5736,46.501081,1 7.573867,46.501362,1 7.574116,46.501755,1 7.574486,46.502791,1 7.575551,46.504242,1 7.575842,46.505145,1 7.575844,46.5053877,1 7.5758952,46.5056591,1 7.5759918,46.5060425,1 7.57603,46.506199,1 7.57625,46.506853,1 7.5763751,46.5070038,1 7.5765527,46.5070657,1 + + + + #style-Unclassified + + relativeToGround + 7.570559,46.498933,1 7.5706468,46.4988918,1 + + + + #style-Unclassified + + relativeToGround + 7.580669,46.513662,1 7.5807275,46.5139652,1 7.5807645,46.5144849,1 7.5810451,46.5147994,1 7.5814548,46.5149276,1 7.5815259,46.5149997,1 7.5814644,46.5151169,1 7.581154,46.515336,1 7.5808687,46.5154174,1 7.5804932,46.5153665,1 7.5796209,46.5152968,1 7.5795576,46.5153762,1 + + + + #style-Unclassified + + relativeToGround + 7.5796209,46.5152968,1 7.5791481,46.514688,1 7.57917,46.514448,1 7.578968,46.514106,1 7.578725,46.513934,1 7.577749,46.513746,1 7.57743,46.513533,1 + + + + Mattenweg + #style-Unclassified + + relativeToGround + 7.5617403,46.4958305,1 7.5617231,46.4956946,1 7.561869,46.4956828,1 7.5631362,46.496001,1 + + + + Fichtenweg + #style-Unclassified + + relativeToGround + 7.5642551,46.4979457,1 7.5637573,46.4971953,1 7.5633291,46.4970595,1 + + + + Hörnliweg + #style-Unclassified + + relativeToGround + 7.563427,46.498168,1 7.5634771,46.498246,1 + + + + Obere Kurhausstrasse + #style-Unclassified + + relativeToGround + 7.5594245,46.493615,1 7.5594073,46.4937805,1 7.559845,46.4940345,1 7.5599738,46.4943241,1 7.5608149,46.494649,1 + + + + #style-Unclassified + + relativeToGround + 7.556064,46.4904831,1 7.5562058,46.4901582,1 7.5560779,46.4899713,1 + + + + Aebiweg + #style-Unclassified + + relativeToGround + 7.525197,46.4841121,1 7.5254535,46.4838699,1 7.5283631,46.4827706,1 7.5290927,46.4828534,1 7.5296334,46.4826879,1 7.5306977,46.4826465,1 7.5316762,46.4823628,1 7.5330409,46.4820851,1 7.5332297,46.4820851,1 7.5339335,46.482351,1 7.5343284,46.4823096,1 7.5346202,46.4821914,1 7.5349549,46.4818014,1 7.5351352,46.4817541,1 7.5352897,46.4818014,1 7.5355986,46.4821501,1 7.5359591,46.4821973,1 7.5371522,46.4817482,1 7.5372294,46.4812576,1 7.537032,46.4807671,1 7.5371007,46.4804361,1 7.5378217,46.4802115,1 7.5390599,46.4794675,1 + + + + #style-Unclassified + + relativeToGround + 7.5568548,46.4922385,1 7.5564947,46.4921923,1 7.5563797,46.4920739,1 + + + + Schwendliweg + #style-Unclassified + + relativeToGround + 7.5563573,46.493575,1 7.5559968,46.4931141,1 7.5558595,46.4922159,1 7.555705,46.4920327,1 7.5556793,46.492015,1 + + + + #style-Unclassified + + relativeToGround + 7.5426865,46.4886019,1 7.5426779,46.4886728,1 7.5428925,46.4887023,1 7.5430813,46.4884246,1 7.5433731,46.4882059,1 7.5439138,46.4880345,1 + + + + #style-Unclassified + + relativeToGround + 7.5621068,46.4705513,1 7.5621068,46.4703326,1 + + + + #style-Unclassified + + relativeToGround + 7.563823,46.4661917,1 7.5640376,46.4659612,1 + + + + #style-Unclassified + + relativeToGround + 7.5649892,46.4595141,1 7.5667928,46.4591384,1 + + + + #style-Unclassified + + relativeToGround + 7.5649892,46.4595141,1 7.5639522,46.4598625,1 7.5627558,46.4606653,1 7.5624583,46.460924,1 + + + + #style-Unclassified + + relativeToGround + 7.5573333,46.4922537,1 7.5572692,46.4923768,1 7.5575911,46.4927979,1 7.5576125,46.4928259,1 + + + + Holzachseggenweg + #style-Unclassified + + relativeToGround + 7.574161,46.5050942,1 7.5745177,46.5050132,1 7.5746686,46.5050133,1 7.5748119,46.5051096,1 7.5749181,46.5052865,1 7.5749613,46.5054369,1 7.5749935,46.5057891,1 7.5751992,46.5059527,1 7.5762188,46.5070028,1 7.5765527,46.5070657,1 7.5768093,46.5071724,1 7.5769754,46.5073393,1 7.5770131,46.5075288,1 7.5769805,46.5077763,1 7.5771975,46.508068,1 7.5774508,46.5082856,1 7.5776375,46.5085748,1 + + + + Holzachseggenweg + #style-Unclassified + + relativeToGround + 7.580641,46.513675,1 7.580404,46.513551,1 7.5802043,46.5134503,1 7.5797717,46.5127021,1 7.579667,46.512463,1 7.5796377,46.5123126,1 7.5796306,46.5118712,1 7.5795023,46.511653,1 7.579245,46.511192,1 7.578725,46.510501,1 7.57876,46.510111,1 7.5785213,46.5099119,1 7.5783897,46.5097234,1 7.5784323,46.509327,1 7.5782946,46.5090724,1 7.5779976,46.5089351,1 7.5777993,46.5087052,1 7.5776375,46.5085748,1 + + + + #style-Unclassified + + relativeToGround + 7.6170304,46.559005,1 7.617521,46.559201,1 7.61769,46.559157,1 7.618127,46.558916,1 7.618334,46.558972,1 7.618372,46.559119,1 7.6185053,46.5592427,1 + + + + Badstrasse + #style-Unclassified + + relativeToGround + 7.4360929,46.4545316,1 7.4354269,46.4543073,1 7.4353973,46.4541646,1 7.4355302,46.454095,1 7.4358702,46.4539509,1 7.4367144,46.4534407,1 7.4375083,46.4531784,1 7.4376245,46.45314,1 7.4379057,46.4527118,1 7.4380056,46.4525884,1 7.4382313,46.4524161,1 7.4385957,46.4522631,1 7.4391746,46.4521405,1 + + + + Oberriedstrasse + #style-Unclassified + + relativeToGround + 7.4677582,46.4299748,1 7.4681778,46.429499,1 7.4698944,46.4283987,1 7.4703192,46.4282113,1 7.4717398,46.4279136,1 7.4726925,46.4278012,1 7.4760571,46.4270912,1 + + + + #style-Unclassified + + relativeToGround + 7.4391746,46.4521405,1 7.4395197,46.4518404,1 7.4397686,46.4510539,1 7.4414767,46.4497766,1 7.4416701,46.4495646,1 7.4418257,46.4493133,1 7.4418875,46.4490852,1 7.4419222,46.4486812,1 7.4419812,46.448478,1 7.4421475,46.448271,1 7.442228,46.4480196,1 7.4422977,46.4478348,1 7.4425445,46.4476463,1 7.4426679,46.447273,1 7.4428288,46.4470808,1 7.4431238,46.4469588,1 7.4434028,46.4469071,1 7.4436335,46.4469108,1 7.4442576,46.447074,1 7.4454113,46.4464497,1 7.4456129,46.4462972,1 7.4457363,46.4460976,1 7.4463318,46.444693,1 7.4470935,46.4432588,1 7.4476943,46.4419132,1 7.4477681,46.4417216,1 7.4477912,46.4411924,1 7.4478338,46.4409595,1 7.4479572,46.440808,1 7.4493703,46.4398371,1 + + + + Schulstrasse + #style-Unclassified + + relativeToGround + 7.4451624,46.4562853,1 7.445156,46.4561345,1 7.4435718,46.4557441,1 + + + + Schanzenstrasse + #style-Unclassified + + relativeToGround + 7.4442759,46.457382,1 7.4444358,46.4572544,1 7.4448703,46.4570212,1 + + + + Rawilstrasse + #style-Unclassified + + relativeToGround + 7.4391746,46.4521405,1 7.4392237,46.4523389,1 7.4393814,46.4528307,1 7.4394509,46.45341,1 7.4394643,46.4538143,1 7.439476,46.4543009,1 7.4395189,46.4545023,1 7.4396638,46.4549532,1 7.4397362,46.4551084,1 7.4398844,46.4554098,1 7.4401167,46.4559428,1 7.4402861,46.4562004,1 7.4405596,46.4564869,1 7.4409145,46.4567899,1 + + + + Lischmattenstrasse + #style-Unclassified + + relativeToGround + 7.4441109,46.4543138,1 7.4439634,46.4542879,1 + + + + Schulstrasse + #style-Unclassified + + relativeToGround + 7.4435718,46.4557441,1 7.4435047,46.4557418,1 + + + + Schulstrasse + #style-Unclassified + + relativeToGround + 7.4434082,46.4557385,1 7.4433518,46.4557718,1 7.4433217,46.4560368,1 7.4432619,46.4563432,1 + + + + Rawilstrasse + #style-Unclassified + + relativeToGround + 7.4428556,46.4571631,1 7.4430005,46.457189,1 + + + + Hohliebestrasse + #style-Unclassified + + relativeToGround + 7.4409145,46.4567899,1 7.4403726,46.4567837,1 7.4398295,46.4567497,1 7.4395506,46.4568162,1 7.4390892,46.4567793,1 + + + + Badgässli + #style-Unclassified + + relativeToGround + 7.4396638,46.4549532,1 7.4383275,46.4545323,1 7.4381129,46.4544954,1 + + + + #style-Unclassified + + relativeToGround + 7.5815091,46.4898495,1 7.5817066,46.490105,1 + + + + Lischenstrasse + #style-Unclassified + + relativeToGround + 7.579127,46.5015699,1 7.5795483,46.5015782,1 7.579604,46.501575,1 7.5796209,46.5015556,1 7.5796354,46.5015389,1 7.5796387,46.5014767,1 7.579516,46.5011987,1 7.579582,46.5009187,1 7.579558,46.5007779,1 7.5793455,46.5005247,1 7.5789309,46.500105,1 7.5789603,46.4999343,1 7.5792023,46.4997735,1 7.5792682,46.499649,1 7.5793383,46.4996065,1 7.579615,46.499543,1 7.5798441,46.4995124,1 7.5798959,46.4994904,1 7.5800692,46.4992295,1 7.5802311,46.4989017,1 + + + + Lischenstrasse + #style-Unclassified + + relativeToGround + 7.5789513,46.5016989,1 7.579127,46.5015699,1 + + + + #style-Unclassified + + relativeToGround + 7.6045066,46.4846583,1 7.6045315,46.4850165,1 7.6044123,46.4855701,1 7.6042768,46.486003,1 7.6045886,46.4873469,1 7.6048256,46.487741,1 7.6047148,46.4879113,1 7.6045687,46.4880471,1 + + + + #style-Unclassified + + relativeToGround + 7.5966573,46.4922393,1 7.5971767,46.4928758,1 7.5974568,46.4931936,1 7.598244,46.493757,1 7.598438,46.494168,1 7.598278,46.494257,1 7.596752,46.494475,1 7.5956114,46.49432,1 7.595106,46.494366,1 7.594802,46.494659,1 7.593749,46.496477,1 7.593536,46.497015,1 7.593565,46.497162,1 7.593723,46.497259,1 7.594193,46.497251,1 7.594485,46.497334,1 7.595287,46.497681,1 7.595584,46.497731,1 7.596066,46.497622,1 7.596171,46.49767,1 7.5961782,46.4978242,1 7.596517,46.49794,1 7.597417,46.497891,1 7.597849,46.498019,1 7.59888,46.498738,1 7.600041,46.499325,1 7.600693,46.500122,1 7.600832,46.500508,1 7.601464,46.501098,1 7.601946,46.50242,1 7.602582,46.503422,1 7.6027655,46.503524,1 7.60291,46.503966,1 7.603441,46.504399,1 7.603526,46.504844,1 7.603912,46.505249,1 7.603992,46.50585,1 7.604118,46.506031,1 7.605462,46.506316,1 7.606866,46.506045,1 7.608604,46.50587,1 7.60891,46.506088,1 7.609026,46.506509,1 7.609263,46.506585,1 + + + + #style-Unclassified + + relativeToGround + 7.6027655,46.503524,1 7.6032706,46.5032719,1 7.6039262,46.5029587,1 7.6040764,46.5028406,1 7.6040979,46.5026559,1 7.6040979,46.5025304,1 7.6041623,46.5023901,1 7.6043768,46.5022645,1 7.6048275,46.5020873,1 7.6050098,46.5020873,1 7.6051601,46.502139,1 7.6053317,46.5021242,1 7.6058252,46.5019839,1 7.6061686,46.5018214,1 7.606351,46.5016442,1 7.6065548,46.501371,1 7.6067372,46.5012454,1 7.6071234,46.5011199,1 7.6080139,46.5007949,1 7.6083572,46.5007285,1 7.6087864,46.5006915,1 7.6091083,46.5006989,1 7.6092799,46.5006694,1 7.6093014,46.5006029,1 7.609237,46.5005217,1 + + + + #style-Unclassified + + relativeToGround + 7.609263,46.506585,1 7.609625,46.506622,1 7.609763,46.506742,1 7.608437,46.508551,1 7.608362,46.509014,1 7.608517,46.509398,1 7.608975,46.509513,1 7.609143,46.509667,1 7.608922,46.509968,1 7.608936,46.510136,1 7.6096937,46.5108052,1 + + + + #style-Unclassified + + relativeToGround + 7.6132752,46.5086326,1 7.6130864,46.508084,1 7.6134655,46.5075013,1 7.6137376,46.5073456,1 7.6137642,46.5068918,1 7.6136461,46.5067741,1 7.6132371,46.5067476,1 7.6123986,46.5065152,1 7.6121506,46.5065575,1 7.6117664,46.5069924,1 7.6118209,46.5074455,1 7.6111969,46.5077415,1 7.610704,46.508093,1 7.609919,46.508256,1 7.609829,46.508341,1 7.609937,46.509377,1 7.609669,46.509781,1 7.6097521,46.5101913,1 7.6096937,46.5108052,1 7.609751,46.511164,1 7.610325,46.511757,1 7.611032,46.512156,1 7.611504,46.512256,1 7.61164,46.512395,1 7.611676,46.512859,1 7.6110638,46.5135387,1 7.610088,46.513843,1 7.609616,46.514223,1 7.609231,46.514344,1 7.608915,46.51455,1 7.608729,46.51482,1 7.608422,46.515019,1 7.607633,46.515308,1 7.6073503,46.5155013,1 7.607241,46.515576,1 7.606768,46.51574,1 7.606403,46.515938,1 7.60625,46.516128,1 7.606479,46.51664,1 7.606585,46.517717,1 7.606807,46.518003,1 7.607364,46.518265,1 7.60721,46.51834,1 7.606852,46.51835,1 7.605442,46.51814,1 7.604229,46.517357,1 7.6033694,46.5171449,1 + + + + #style-Unclassified + + relativeToGround + 7.6109659,46.5266158,1 7.6107,46.526694,1 7.61007,46.527171,1 7.609988,46.527489,1 7.609498,46.527984,1 7.608709,46.529361,1 7.608698,46.530009,1 7.608567,46.530339,1 7.608337,46.530401,1 7.608207,46.530327,1 7.607761,46.529968,1 7.607315,46.529449,1 7.606862,46.52918,1 7.6065623,46.5291566,1 7.6061361,46.5293018,1 + + + + Rinderwaldstrasse + #style-Unclassified + + relativeToGround + 7.5881401,46.5275704,1 7.5879485,46.527459,1 7.587679,46.527221,1 7.587317,46.526255,1 7.587425,46.5259306,1 7.5872959,46.5256373,1 7.586076,46.524567,1 + + + + #style-Unclassified + + relativeToGround + 7.5826066,46.5259242,1 7.5829568,46.5262864,1 7.5833805,46.5268825,1 7.5836909,46.5270954,1 7.5838082,46.5273334,1 7.5840578,46.5276561,1 7.584423,46.5281035,1 7.584751,46.528836,1 7.5847782,46.5294052,1 7.5847345,46.5296666,1 7.5845956,46.5298968,1 7.5842076,46.5301916,1 + + + + Rinderwaldstrasse + #style-Unclassified + + relativeToGround + 7.5774574,46.5275452,1 7.5772166,46.5274306,1 7.5766573,46.5267791,1 7.576019,46.525654,1 7.575555,46.524558,1 7.5753315,46.5243657,1 7.5749549,46.5242103,1 7.57448,46.5241341,1 + + + + #style-Unclassified + + relativeToGround + 7.5745874,46.5254626,1 7.5721265,46.5258724,1 7.5710266,46.5262635,1 7.5703591,46.5265893,1 7.5704551,46.5266365,1 7.5708354,46.5265253,1 7.5721092,46.5264585,1 7.5735188,46.5265577,1 7.573599,46.526742,1 7.573578,46.527052,1 7.573646,46.5272475,1 7.5744837,46.5279216,1 + + + + #style-Unclassified + + relativeToGround + 7.5703591,46.5265893,1 7.568595,46.5263443,1 7.5673853,46.5264725,1 7.5663447,46.5266784,1 7.5654095,46.5267497,1 7.564572,46.5270254,1 7.5632688,46.5279901,1 7.562625,46.528737,1 + + + + #style-Unclassified + + relativeToGround + 7.5632688,46.5279901,1 7.563293,46.528047,1 7.5639,46.527924,1 7.565404,46.52747,1 7.565998,46.527405,1 7.5672493,46.5275054,1 7.568548,46.527754,1 7.5689,46.527947,1 + + + + #style-Unclassified + + relativeToGround + 7.4348713,46.4607347,1 7.433706,46.46137,1 7.4332548,46.4615372,1 7.432767,46.461688,1 7.4322834,46.461897,1 7.430689,46.462586,1 7.430159,46.462852,1 7.429281,46.463456,1 7.427987,46.464066,1 7.427716,46.464332,1 7.427499,46.464333,1 7.427753,46.463371,1 7.427638,46.462469,1 7.427267,46.461642,1 7.426829,46.461129,1 7.426752,46.460286,1 7.426453,46.460009,1 7.426347,46.45962,1 7.4262468,46.4595065,1 7.425969,46.459287,1 7.42578,46.459278,1 7.42571,46.459377,1 7.425777,46.459664,1 7.425669,46.459887,1 7.425157,46.460384,1 7.425126,46.460757,1 7.424398,46.461387,1 7.424154,46.461895,1 7.423971,46.461934,1 7.423801,46.461447,1 7.423465,46.460931,1 7.423449,46.460419,1 7.423278,46.460279,1 7.422565,46.460132,1 7.422303,46.459911,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.5426103,46.4830368,1 7.5424403,46.4825688,1 7.5421893,46.4825118,1 7.5419623,46.4825828,1 7.5416513,46.4828808,1 7.5415101,46.4829137,1 7.5411413,46.4827908,1 7.5402763,46.4830068,1 7.5400713,46.4829268,1 7.5403793,46.4826278,1 7.5407663,46.4824648,1 7.5407743,46.4822388,1 7.5405388,46.4820442,1 7.5403653,46.4819008,1 7.5396433,46.4815648,1 7.5392734,46.4802349,1 7.5390599,46.4794675,1 7.5381653,46.4784568,1 7.5376503,46.4775028,1 7.5369473,46.4771058,1 7.5367163,46.4767798,1 7.5365533,46.4764458,1 7.5365043,46.4756498,1 7.5361633,46.4746408,1 7.5353448,46.4737451,1 7.5352429,46.4735013,1 7.5351743,46.4725458,1 7.5350093,46.4718738,1 7.5351203,46.4712998,1 7.5350193,46.4709858,1 7.5346923,46.4703668,1 7.5339183,46.4698158,1 7.5332503,46.4690168,1 7.5332913,46.4687698,1 7.5345263,46.4679968,1 7.5346883,46.4676188,1 7.5346943,46.4673158,1 7.5334473,46.4653948,1 7.5333563,46.4649828,1 7.5340553,46.4636388,1 7.5345393,46.4632248,1 7.5344513,46.4619618,1 7.5347283,46.4613518,1 7.5346943,46.4610708,1 7.5348653,46.4608468,1 7.5348533,46.4606638,1 7.5345733,46.4604178,1 7.5338453,46.4601288,1 7.5336253,46.4601698,1 7.5335303,46.4606138,1 7.5330443,46.4611158,1 7.5328583,46.4620328,1 7.5324423,46.4625308,1 7.5322843,46.4630188,1 7.5318629,46.4633692,1 7.5310273,46.4640638,1 7.5303233,46.4642378,1 7.5296383,46.4642278,1 7.5291173,46.4643608,1 7.5287983,46.4643358,1 7.5274243,46.4636628,1 7.5262593,46.4635928,1 7.5256373,46.4634048,1 7.5241943,46.4624008,1 7.5232133,46.4614168,1 7.5214053,46.4606918,1 7.5210933,46.4601898,1 7.5200473,46.4595938,1 7.5191943,46.4593388,1 7.5174423,46.4592718,1 7.5170503,46.4591218,1 7.5160353,46.4580808,1 7.5156573,46.4578858,1 7.5148593,46.4576658,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.469627,46.453826,1 7.4703038,46.4532183,1 + + + + Alpenweg + #style-Unclassified + + relativeToGround + 7.55887,46.49044,1 7.55864,46.490402,1 7.55846,46.49025,1 7.5579974,46.4904534,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.543024,46.4839871,1 7.5426103,46.4830368,1 + + + + Dorfstrasse + #style-Unclassified + + relativeToGround + 7.5595144,46.4930964,1 7.5592176,46.4928554,1 7.5587375,46.4925106,1 7.5581971,46.4920378,1 7.5571221,46.4911702,1 7.5568451,46.4909915,1 7.556403,46.4906599,1 + + + + Dorfstrasse + #style-Unclassified + + relativeToGround + 7.556403,46.4906599,1 7.556064,46.4904831,1 7.5559303,46.4904006,1 7.5549954,46.4898085,1 + + + + Risetensträssli + #style-Unclassified + + relativeToGround + 7.5561408,46.4893354,1 7.5561531,46.4890823,1 7.5561565,46.4890135,1 7.556089,46.4888482,1 7.5559288,46.4884562,1 7.5555284,46.4878909,1 7.5553086,46.487412,1 7.5549867,46.4871765,1 7.5545078,46.4871844,1 7.5535075,46.4866379,1 + + + + #style-Unclassified + + relativeToGround + 7.5981221,46.5280116,1 7.598181,46.528212,1 7.598159,46.528341,1 7.598092,46.528455,1 7.59791,46.528842,1 7.597834,46.52896,1 7.597782,46.529368,1 7.597859,46.5296,1 7.598016,46.529719,1 7.59821,46.529793,1 7.598476,46.529826,1 7.59895,46.529716,1 7.599487,46.529729,1 7.5996702,46.5297785,1 7.599726,46.529845,1 7.599787,46.529949,1 7.599809,46.530111,1 7.599803,46.530257,1 7.599647,46.530568,1 7.599725,46.53097,1 7.599832,46.531108,1 7.599978,46.531232,1 7.599953,46.531488,1 7.600036,46.531632,1 7.60003,46.53168,1 7.599971,46.531811,1 7.600043,46.531956,1 7.600178,46.532082,1 7.600263,46.532197,1 7.600269,46.532322,1 7.600217,46.532436,1 7.600152,46.532503,1 7.600094,46.532638,1 7.600076,46.532737,1 7.600014,46.532905,1 7.59999,46.533077,1 7.59989,46.533416,1 7.599934,46.533522,1 7.6001086,46.5335279,1 7.600186,46.5335,1 7.60064,46.533445,1 7.600763,46.53347,1 7.600892,46.53355,1 7.600963,46.533707,1 7.600955,46.533781,1 7.600893,46.533879,1 7.600796,46.53395,1 7.600721,46.53409,1 7.600808,46.534403,1 7.600856,46.534454,1 7.60095,46.534503,1 7.601187,46.534596,1 7.60136,46.534735,1 7.601596,46.535069,1 7.601825,46.535338,1 7.601902,46.535416,1 7.602041,46.535499,1 7.602206,46.535578,1 7.602625,46.5357,1 7.60283,46.535772,1 7.603179,46.535845,1 7.603494,46.535859,1 7.60365,46.535898,1 7.603681,46.535918,1 7.603769,46.536014,1 7.603788,46.536143,1 7.603764,46.536199,1 7.603762,46.5362107,1 7.603755,46.536253,1 7.603784,46.536359,1 7.60391,46.536497,1 7.6040614,46.536598,1 7.604125,46.536642,1 7.604243,46.53682,1 7.604291,46.536947,1 7.604399,46.537031,1 7.604713,46.537069,1 7.604998,46.537061,1 7.605114,46.537042,1 7.605361,46.53706,1 7.605801,46.537134,1 7.606041,46.537151,1 7.606205,46.537248,1 7.606276,46.537331,1 7.6062753,46.5374013,1 7.606258,46.537464,1 7.606091,46.537705,1 7.605981,46.538053,1 7.606033,46.538161,1 7.60606,46.538286,1 7.606016,46.538455,1 7.605935,46.538601,1 7.605874,46.538805,1 7.605819,46.539136,1 7.605733,46.539318,1 7.605705,46.539412,1 7.6058389,46.539552,1 7.6058722,46.5395795,1 + + + + #style-Unclassified + + relativeToGround + 7.5744837,46.5279216,1 7.5746977,46.5280938,1 7.5771625,46.5297081,1 7.5773,46.529821,1 7.577183,46.530712,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.4568436,46.4593926,1 7.4568637,46.4594526,1 7.4569135,46.4595047,1 7.4570376,46.4595784,1 7.4576408,46.459836,1 7.4576957,46.4598904,1 7.4576821,46.4599445,1 7.4576328,46.4599825,1 7.4575461,46.4599848,1 7.4572033,46.4598226,1 7.4568717,46.459731,1 7.4564869,46.4597211,1 7.4563512,46.4596817,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.4563512,46.4596817,1 7.4562979,46.4595824,1 7.4562834,46.4593869,1 7.4562147,46.4592473,1 7.4559877,46.4590046,1 7.4559252,46.4587348,1 7.4558864,46.4581792,1 7.456013,46.4574831,1 7.4561972,46.456936,1 7.4560344,46.4563522,1 7.4560192,46.4561245,1 7.4563026,46.4555022,1 7.456367,46.4551475,1 7.4564528,46.4549996,1 7.4565816,46.4549331,1 7.4565816,46.454837,1 7.4565616,46.4547349,1 7.4564528,46.4547261,1 7.4563455,46.4548222,1 7.4562919,46.4549257,1 7.4562003,46.4550467,1 7.4560237,46.4551992,1 7.4556696,46.4553175,1 7.4554658,46.455384,1 7.45152,46.46002,1 7.4516199,46.4601237,1 7.45256,46.4611,1 7.4512878,46.4622786,1 + + + + Rawilstrasse + #style-Unclassified + + relativeToGround + 7.4409145,46.4567899,1 7.4410666,46.4568934,1 7.441257,46.4569858,1 7.4424533,46.457099,1 7.4428556,46.4571631,1 + + + + Egernschwandweg + #style-Unclassified + + relativeToGround + 7.5786446,46.518287,1 7.578694,46.518135,1 7.578724,46.517978,1 7.578695,46.517886,1 7.578512,46.517455,1 7.578309,46.5171813,1 7.577878,46.516652,1 7.577605,46.516534,1 7.577438,46.51649,1 7.577041,46.516159,1 7.576838,46.516078,1 7.576264,46.515795,1 7.575735,46.515618,1 7.575121,46.515397,1 7.574844,46.515369,1 7.574591,46.515424,1 7.574228,46.515451,1 7.573965,46.515492,1 7.57367,46.515483,1 7.57341,46.515411,1 7.573285,46.51521,1 7.573152,46.515082,1 7.572439,46.515021,1 7.572135,46.514946,1 7.57191,46.514848,1 7.571398,46.514879,1 7.571265,46.51496,1 7.57104,46.514972,1 7.570159,46.514819,1 7.569955,46.514753,1 7.569293,46.514586,1 7.568896,46.514458,1 7.568662,46.514359,1 7.5681,46.514075,1 7.567915,46.513952,1 7.567848,46.513922,1 7.5671835,46.5137512,1 7.566948,46.513674,1 7.566778,46.513566,1 7.566565,46.513493,1 7.566333,46.513447,1 7.566124,46.51337,1 7.565802,46.513217,1 7.565665,46.51313,1 + + + + #style-Unclassified + + relativeToGround + 7.5669006,46.5111824,1 7.566536,46.5113136,1 7.566172,46.511362,1 7.565683,46.511382,1 7.565051,46.511454,1 7.564704,46.511647,1 7.564224,46.51188,1 7.564123,46.512021,1 7.563941,46.51213,1 7.563809,46.512144,1 7.563635,46.512083,1 7.563415,46.512069,1 7.563285,46.512081,1 7.563183,46.512048,1 7.562725,46.511852,1 7.562645,46.511873,1 7.562606,46.511942,1 7.562637,46.512081,1 7.5625296,46.5121876,1 7.562224,46.512308,1 7.562061,46.512386,1 7.561732,46.512565,1 7.561621,46.51265,1 7.561383,46.512768,1 7.561246,46.512881,1 7.560984,46.513026,1 7.560705,46.513132,1 7.56041,46.513256,1 7.560199,46.513334,1 7.559963,46.513393,1 7.55977,46.513485,1 7.5596756,46.5135221,1 7.55961,46.513548,1 7.558865,46.513684,1 7.5581263,46.5137586,1 7.557572,46.513713,1 7.556972,46.513559,1 7.556817,46.5135283,1 + + + + #style-Unclassified + + relativeToGround + 7.556817,46.5135283,1 7.5564776,46.5135931,1 + + + + #style-Unclassified + + relativeToGround + 7.5564776,46.5135931,1 7.555653,46.5136131,1 + + + + Egerlenstrasse + #style-Unclassified + + relativeToGround + 7.555653,46.5136131,1 7.5547124,46.5135725,1 7.554273,46.513568,1 7.553829,46.513568,1 7.553433,46.513609,1 7.5530228,46.5136488,1 7.552596,46.513654,1 7.552093,46.513613,1 7.551338,46.513505,1 7.5509052,46.5134765,1 7.5505971,46.5134655,1 7.5499677,46.5136782,1 7.5495893,46.5137309,1 7.549533,46.513828,1 7.5496296,46.5138873,1 7.54985,46.513882,1 7.55001,46.513903,1 7.550029,46.51409,1 7.550048,46.514291,1 7.5501728,46.5144035,1 7.550758,46.514543,1 7.5511026,46.5145888,1 7.5516662,46.5146211,1 7.5520151,46.5146864,1 7.552829,46.51488,1 7.5532371,46.514966,1 7.5535135,46.5150716,1 7.553654,46.515094,1 7.5538209,46.5150318,1 7.5540833,46.5149891,1 7.5548384,46.5150455,1 7.5551189,46.5150839,1 7.5553614,46.5152012,1 7.555649,46.5153894,1 7.5558741,46.515512,1 7.5561416,46.5156,1 7.5566571,46.5157065,1 7.556798,46.515774,1 7.5568977,46.5159041,1 7.556998,46.516064,1 7.5571154,46.5161086,1 7.557837,46.516132,1 7.558461,46.516234,1 7.5586448,46.5162468,1 7.559683,46.516477,1 7.560001,46.516488,1 7.5602308,46.5165359,1 7.5607407,46.5165139,1 7.5612266,46.5166202,1 7.5616355,46.5167467,1 7.5620778,46.5167717,1 7.5627706,46.5169076,1 7.5627921,46.5169559,1 7.5626331,46.5169857,1 7.562377,46.5169559,1 7.5620266,46.5169932,1 7.5614422,46.5171315,1 7.561326,46.517138,1 7.561267,46.517166,1 7.561159,46.517176,1 7.5610746,46.5171656,1 7.560836,46.51723,1 7.5603559,46.5172698,1 7.5585206,46.517503,1 7.5572554,46.5177377,1 7.5568904,46.5178344,1 7.5564558,46.5178795,1 7.5558549,46.5178842,1 7.5554229,46.5178329,1 7.5548414,46.5178271,1 7.5543567,46.5178481,1 7.553933,46.5178613,1 7.5538109,46.5179008,1 7.553859,46.517973,1 7.5540552,46.5179693,1 7.554263,46.51801,1 7.5552842,46.5184778,1 + + + + Egernschwandweg + #style-Unclassified + + relativeToGround + 7.565665,46.51313,1 7.5655319,46.5130257,1 + + + + Egernschwandweg + #style-Unclassified + + relativeToGround + 7.5655319,46.5130257,1 7.5654903,46.5129931,1 7.56538,46.512798,1 7.565474,46.512629,1 7.565684,46.512455,1 7.565875,46.512336,1 7.566545,46.512105,1 7.566632,46.512061,1 7.566984,46.512021,1 7.567198,46.511978,1 7.567389,46.511901,1 7.567571,46.511851,1 7.568036,46.511904,1 7.568265,46.511945,1 7.568517,46.512006,1 7.568808,46.512056,1 7.569195,46.512073,1 7.569429,46.512012,1 7.569807,46.511803,1 7.570015,46.511579,1 7.570141,46.511395,1 7.570386,46.511321,1 7.570945,46.511298,1 7.571259,46.511326,1 7.571494,46.511316,1 7.5717288,46.5112797,1 + + + + #style-Unclassified + + relativeToGround + 7.4472186,46.4059651,1 7.4473377,46.4046987,1 7.447185,46.4043595,1 7.4464891,46.403864,1 7.4461202,46.4034297,1 + + + + Iffigenstrasse + #style-Unclassified + + relativeToGround + 7.4461202,46.4034297,1 7.44569,46.4028394,1 7.4452036,46.402289,1 7.4440926,46.4015624,1 7.4434951,46.4012667,1 7.4427384,46.4009962,1 7.4411642,46.3998745,1 + + + + Labrunnenstrasse + #style-Unclassified + + relativeToGround + 7.5848963,46.5385742,1 7.584971,46.538598,1 7.5850687,46.5385678,1 7.585274,46.538445,1 7.585513,46.538362,1 7.585815,46.538336,1 7.5861975,46.5384377,1 7.586687,46.538565,1 7.586868,46.53855,1 7.586922,46.5385852,1 7.586858,46.538634,1 7.5865846,46.5387579,1 7.5864754,46.5388895,1 7.5863858,46.5390299,1 7.5863538,46.53914,1 7.586145,46.539473,1 7.585906,46.539748,1 7.5859743,46.5397566,1 7.5862337,46.5397277,1 7.5864971,46.5397002,1 7.5866758,46.539656,1 7.5869357,46.5396259,1 7.5872481,46.5395086,1 7.5874748,46.5393658,1 7.587549,46.5393914,1 7.5875686,46.5394438,1 7.587519,46.539663,1 7.5874201,46.539882,1 7.5870777,46.5403479,1 7.586974,46.540457,1 7.5870076,46.5404872,1 7.5870655,46.5404979,1 7.588135,46.540364,1 7.5885285,46.5402242,1 7.5886063,46.5402073,1 7.5886288,46.5402472,1 7.588604,46.5402947,1 7.5885094,46.540414,1 7.5883955,46.5406535,1 7.5883744,46.5407232,1 7.5883676,46.5408147,1 7.588401,46.540845,1 7.5885722,46.5409102,1 7.588615,46.5409026,1 7.5888202,46.5408269,1 7.589194,46.540661,1 7.589281,46.540632,1 7.58999,46.540264,1 7.590328,46.540011,1 7.590683,46.539741,1 7.590905,46.539618,1 7.591382,46.539386,1 7.591737,46.539145,1 7.5920484,46.538841,1 + + + + #style-Unclassified + + relativeToGround + 7.6000148,46.5411065,1 7.5998328,46.5411104,1 7.599728,46.540985,1 7.599815,46.540729,1 7.599744,46.54068,1 7.599461,46.541161,1 7.5990539,46.5414724,1 7.5989053,46.5416069,1 + + + + Linterstrasse + #style-Unclassified + + relativeToGround + 7.5925397,46.5451903,1 7.592485,46.545252,1 7.592525,46.54534,1 7.592614,46.545474,1 7.592697,46.545941,1 7.592776,46.546324,1 7.592795,46.546568,1 7.592784,46.547071,1 7.592699,46.547674,1 7.592756,46.547908,1 7.592822,46.548097,1 7.592806,46.5481874,1 + + + + Linterstrasse + #style-Unclassified + + relativeToGround + 7.592806,46.5481874,1 7.592761,46.548238,1 7.592644,46.548376,1 7.592455,46.548557,1 7.592255,46.548698,1 7.592146,46.548812,1 7.591958,46.548924,1 7.591674,46.548987,1 7.591507,46.549084,1 7.591392,46.549196,1 7.591209,46.549305,1 7.591037,46.549435,1 7.590866,46.549519,1 7.590794,46.549642,1 7.590617,46.549749,1 7.590437,46.549933,1 7.5904257,46.5500262,1 + + + + Linterstrasse + #style-Unclassified + + relativeToGround + 7.5904257,46.5500262,1 7.5905254,46.5500717,1 + + + + Kratzernweg + #style-Unclassified + + relativeToGround + 7.5905254,46.5500717,1 7.590707,46.549997,1 7.59085,46.549908,1 7.591069,46.549881,1 7.591421,46.549938,1 7.591668,46.550065,1 7.592004,46.550226,1 7.592637,46.550442,1 7.593226,46.55058,1 7.593383,46.550702,1 7.593531,46.550877,1 7.593684,46.55115,1 7.593958,46.551669,1 7.594276,46.55222,1 7.594324,46.552364,1 7.5943061,46.5527315,1 7.594134,46.552894,1 7.594091,46.55297,1 7.59395,46.553062,1 7.593757,46.553112,1 7.593606,46.553197,1 7.59307,46.5535336,1 7.5929968,46.5537118,1 7.5925956,46.5539528,1 7.5923612,46.5541928,1 + + + + Kratzernweg + #style-Unclassified + + relativeToGround + 7.592429,46.554253,1 7.592863,46.5539574,1 7.593574,46.55385,1 7.59392,46.553942,1 7.594217,46.553964,1 7.594676,46.553977,1 7.594954,46.553786,1 7.595205,46.553817,1 7.595561,46.55408,1 7.595675,46.554108,1 7.59587,46.554013,1 7.596056,46.553807,1 7.596398,46.553526,1 7.59646,46.553509,1 7.5967647,46.5536546,1 7.596819,46.553667,1 7.5969261,46.5536743,1 7.5970949,46.5537103,1 7.5971441,46.5537263,1 7.5971816,46.5538848,1 + + + + Kratzernweg + #style-Unclassified + + relativeToGround + 7.5923612,46.5541928,1 7.592429,46.554253,1 + + + + #style-Unclassified + + relativeToGround + 7.598828,46.5418043,1 7.5986652,46.5418556,1 7.5984839,46.5418271,1 7.5981032,46.541696,1 7.5978471,46.5416201,1 7.5977275,46.5416254,1 7.5978138,46.5416964,1 7.5979877,46.5417862,1 7.5981191,46.5418557,1 7.5980869,46.5419247,1 7.597906,46.5419125,1 7.5977139,46.5418563,1 7.5974461,46.5417375,1 7.5971628,46.5416562,1 7.596846,46.5416131,1 7.5964607,46.5415809,1 7.5962965,46.5415976,1 7.5963199,46.5416784,1 7.5964588,46.541693,1 7.596682,46.5416906,1 7.597639,46.542105,1 7.5979774,46.542212,1 7.5983329,46.5423104,1 7.5987195,46.5423762,1 7.598925,46.5423612,1 7.5991482,46.5423019,1 7.5994659,46.5421858,1 7.5996704,46.5420792,1 7.5998137,46.5420664,1 7.5998714,46.542131,1 7.5998295,46.5422306,1 7.5994128,46.5425684,1 7.599269,46.542718,1 7.5992063,46.5428643,1 7.5992312,46.5430102,1 7.5993576,46.5432551,1 7.5993203,46.543322,1 7.5991709,46.543321,1 7.598775,46.5432615,1 7.5985495,46.5431872,1 7.598132,46.5430061,1 7.5978407,46.542964,1 7.597512,46.542934,1 7.597277,46.542875,1 7.5969961,46.542788,1 7.5968514,46.5427994,1 7.5965859,46.5429628,1 7.5963745,46.5430484,1 7.5961846,46.5430552,1 7.5959447,46.542993,1 7.595764,46.542913,1 7.5955707,46.5427996,1 7.595428,46.5427595,1 7.5953594,46.5428276,1 7.595518,46.542962,1 7.5957387,46.5432782,1 7.595972,46.543449,1 7.5959446,46.5435388,1 7.5957942,46.5435186,1 7.5956638,46.5434226,1 7.5952803,46.5432314,1 7.5950789,46.5431496,1 7.5947568,46.5431029,1 7.5942665,46.5430803,1 7.593782,46.543173,1 7.593057,46.543361,1 7.5926799,46.5434775,1 7.592416,46.54366,1 7.5922365,46.5437425,1 7.592001,46.5437709,1 7.591858,46.543718,1 7.591699,46.543739,1 7.5916485,46.5437996,1 7.5917,46.5438532,1 7.5919348,46.5438772,1 7.5923353,46.5438815,1 7.5925324,46.5438545,1 7.592877,46.543856,1 7.5930756,46.5438769,1 7.5935319,46.5440157,1 7.593698,46.544084,1 7.593821,46.544181,1 7.5939285,46.544299,1 7.594035,46.544772,1 7.594137,46.5451511,1 7.593934,46.545935,1 7.5937548,46.5466349,1 7.5937849,46.5467479,1 7.593708,46.546875,1 7.5936038,46.546858,1 7.5935586,46.5467893,1 7.593523,46.546572,1 7.5933226,46.546083,1 7.5931368,46.5457079,1 7.5929462,46.5455571,1 7.592638,46.545243,1 7.5925397,46.5451903,1 7.592354,46.545117,1 7.5922372,46.5451099,1 7.5920883,46.5451263,1 7.5916217,46.545168,1 + + + + #style-Unclassified + + relativeToGround + 7.5989053,46.5416069,1 7.598828,46.5418043,1 + + + + #style-Unclassified + + relativeToGround + 7.6001666,46.5412566,1 7.6000721,46.5411632,1 + + + + Fehrmelthal + #style-Unclassified + + relativeToGround + 7.4233856,46.4967518,1 7.4241495,46.4971123,1 7.4248619,46.4973545,1 7.4252291,46.4974725,1 7.4255929,46.4976732,1 7.4258661,46.4978981,1 7.426026,46.4981971,1 7.4261976,46.498398,1 7.4261976,46.4985752,1 7.4261376,46.498652,1 7.4256827,46.4984452,1 7.425305,46.4982798,1 7.4250743,46.4980211,1 7.4247643,46.4980198,1 7.4245669,46.4981203,1 7.4236742,46.4992133,1 7.4231077,46.4998042,1 7.4224039,46.5003654,1 7.4216744,46.5005013,1 7.4215885,46.5006195,1 7.4218718,46.5006904,1 7.4223009,46.500584,1 7.4228331,46.5004659,1 7.4235197,46.5004245,1 7.4238802,46.5002473,1 7.424481,46.5001468,1 7.4254509,46.5001468,1 7.4261603,46.5002229,1 7.4282833,46.5011512,1 7.4290987,46.5016239,1 7.4291416,46.502061,1 7.429442,46.5022974,1 7.4296137,46.5026105,1 7.429485,46.5028882,1 7.4299399,46.5036798,1 7.4301973,46.5044124,1 7.4305407,46.5051685,1 7.4310127,46.5059838,1 7.4316565,46.5063796,1 7.4327723,46.5072834,1 7.4335619,46.5078742,1 7.4340769,46.5087248,1 7.4358793,46.5105442,1 7.4364201,46.5108514,1 7.437081,46.5115957,1 7.437656,46.5123636,1 7.4381968,46.5130133,1 7.4389092,46.5135863,1 7.4395701,46.5139407,1 7.440128,46.5147263,1 7.4407288,46.5151811,1 7.4410721,46.515435,1 7.4415012,46.515565,1 7.4420162,46.5157304,1 7.4425312,46.516067,1 7.4427458,46.5165691,1 7.4430462,46.517266,1 7.4434754,46.5180338,1 7.4439045,46.5187544,1 7.4443508,46.5192387,1 7.4448057,46.5195517,1 7.4466793,46.5199766,1 7.4473145,46.5201656,1 7.4480526,46.5203724,1 7.4485333,46.5206204,1 7.4486363,46.5206972,1 7.4499581,46.5209039,1 7.451709,46.5212878,1 7.4525931,46.5215063,1 7.4536316,46.5215949,1 7.4544213,46.5217366,1 7.4552538,46.5219079,1 7.4557087,46.521961,1 7.456361,46.5219669,1 7.457082,46.5219374,1 7.458318,46.5218193,1 7.4592707,46.5217071,1 7.4599917,46.521648,1 7.4611504,46.5215831,1 7.4620774,46.521524,1 7.4627039,46.5213882,1 7.4638884,46.520898,1 7.4646523,46.5206145,1 7.4650814,46.5204373,1 7.4655106,46.5203783,1 7.4659998,46.5204491,1 7.4665406,46.5204964,1 7.4671414,46.5205259,1 7.4681713,46.5204668,1 7.4689009,46.5204373,1 7.4695875,46.5203664,1 7.4704888,46.5202011,1 7.4723341,46.5198349,1 7.4743769,46.5193034,1 7.4745657,46.5192856,1 7.474952,46.5192679,1 7.4759819,46.5190671,1 7.4768402,46.5188545,1 7.4780419,46.5183407,1 7.4798872,46.5176142,1 7.4822047,46.5170708,1 7.4829342,46.5167637,1 7.4837925,46.5161376,1 7.4845221,46.51586,1 7.4854834,46.5161258,1 + + + + #style-Unclassified + + relativeToGround + 7.4198288,46.4982833,1 7.4199867,46.4982171,1 7.4204588,46.4980104,1 7.4212742,46.4977031,1 7.4221153,46.4973486,1 7.4228878,46.497,1 7.4233856,46.4967518,1 7.4239729,46.4964435,1 + + + + #style-Unclassified + + relativeToGround + 7.4206823,46.4955804,1 7.4200296,46.495446,1 7.4196538,46.4953841,1 7.4194202,46.4953456,1 7.4187164,46.4951801,1 7.4180555,46.4951506,1 7.4177448,46.4951104,1 + + + + #style-Unclassified + + relativeToGround + 7.6045687,46.4880471,1 7.604255,46.4883112,1 7.6039469,46.4884404,1 7.6036512,46.4886227,1 7.603341,46.4887189,1 7.6032878,46.4889924,1 7.6021413,46.489726,1 7.6017531,46.4900467,1 7.6011402,46.490361,1 + + + + #style-Unclassified + + relativeToGround + 7.5922214,46.488268,1 7.5922897,46.4884803,1 7.592399,46.488507,1 + + + + #style-Unclassified + + relativeToGround + 7.596404,46.4883944,1 7.5967553,46.4880553,1 7.5966803,46.4878323,1 7.5963163,46.4876073,1 7.5963243,46.4872963,1 7.5964903,46.4875193,1 7.5966533,46.4875613,1 7.5969273,46.4874763,1 7.5971273,46.4876053,1 7.5975163,46.4876923,1 7.5975213,46.4878273,1 7.5977823,46.4880603,1 7.5979919,46.4884754,1 7.5979589,46.4885316,1 7.5978879,46.4887234,1 7.5972663,46.4893073,1 7.5965123,46.4896783,1 7.5951997,46.4905833,1 7.5944647,46.4907653,1 7.5942015,46.4909197,1 7.5938325,46.4911889,1 7.5935377,46.4913093,1 7.5929597,46.4912713,1 7.5924147,46.4913903,1 7.5922067,46.4915203,1 7.5921687,46.4916743,1 7.5922017,46.4919647,1 7.5922817,46.4920763,1 7.5923972,46.492067,1 7.5928397,46.4918383,1 7.5931657,46.4917383,1 7.5940527,46.4917123,1 7.5947097,46.4919123,1 7.5966573,46.4922393,1 + + + + #style-Unclassified + + relativeToGround + 7.6011402,46.490361,1 7.6010393,46.4904099,1 7.6003528,46.4908825,1 7.5998973,46.4910808,1 7.599409,46.491188,1 7.5966772,46.4913521,1 7.5964583,46.4914338,1 7.5961988,46.4916268,1 7.5961708,46.4917495,1 7.596319,46.491996,1 7.5966573,46.4922393,1 + + + + #style-Unclassified + + relativeToGround + 7.419988,46.5053819,1 7.4200223,46.5055355,1 7.4199966,46.5057068,1 7.4199193,46.5058604,1 7.4197734,46.5060258,1 7.4195073,46.5061144,1 7.4191898,46.5062503,1 7.4189323,46.5064157,1 7.4188121,46.5066638,1 7.4188722,46.5068706,1 7.4189666,46.5070951,1 7.4189923,46.5073491,1 7.4190782,46.5075618,1 7.4191297,46.5077803,1 7.4191039,46.5079989,1 7.4190267,46.5082057,1 7.4189494,46.508377,1 7.4189139,46.5084718,1 + + + + #style-Unclassified + + relativeToGround + 7.4230607,46.5136342,1 7.4228547,46.5134865,1 7.4226401,46.5132798,1 7.4222882,46.5131026,1 7.4218248,46.5129963,1 7.4211982,46.51289,1 7.4205545,46.5128014,1 7.4202283,46.5126596,1 7.4199365,46.5124765,1 7.4197476,46.5123761,1 7.4193185,46.5123465,1 7.4191211,46.512317,1 7.4190009,46.5121811,1 7.419061,46.5119862,1 7.4192327,46.5118444,1 7.4195932,46.5117086,1 7.4199966,46.5115314,1 7.4204085,46.5113483,1 7.4207175,46.511236,1 7.4210179,46.5111356,1 7.421387,46.5109879,1 7.4218162,46.5108107,1 7.4221595,46.5106512,1 7.4224599,46.5105331,1 7.4226058,46.5104445,1 7.4226144,46.5103795,1 7.4225286,46.5103145,1 7.4223998,46.5102791,1 7.4221423,46.5103086,1 7.4216788,46.510409,1 7.4212239,46.5104386,1 7.4208549,46.5104386,1 7.4205974,46.5105744,1 7.4202197,46.5107694,1 7.4198249,46.5109111,1 7.4193872,46.5109702,1 7.4189408,46.5109407,1 7.4185289,46.510917,1 7.4180997,46.5109407,1 7.4177478,46.5109466,1 7.4175418,46.5109879,1 7.4172929,46.5111238,1 7.4170869,46.511236,1 7.4167779,46.5113187,1 7.4164861,46.5114014,1 7.4162715,46.5114841,1 7.4162114,46.5115196,1 7.4161084,46.5115196,1 7.4161256,46.5114605,1 7.41622,46.5113896,1 7.4164775,46.5113187,1 7.4167436,46.5112301,1 7.4169496,46.5111179,1 7.417044,46.5109584,1 7.4170869,46.5107989,1 7.4171813,46.5106571,1 7.4175075,46.510474,1 7.4178079,46.5102791,1 7.4181855,46.5100133,1 7.4184859,46.5097829,1 7.4187778,46.5096411,1 7.4190438,46.509523,1 7.4193786,46.509393,1 7.4195331,46.5092985,1 7.4196017,46.5091567,1 7.4195588,46.5090268,1 7.4194472,46.5088791,1 7.4192584,46.5087078,1 7.4191125,46.5085542,1 7.4189139,46.5084718,1 + + + + #style-Unclassified + + relativeToGround + 7.4259103,46.506333,1 7.4256528,46.5063212,1 7.4254125,46.506268,1 7.4251121,46.5061794,1 7.4249576,46.5060613,1 7.4248288,46.5059254,1 7.4247859,46.5057541,1 7.4246915,46.5056359,1 7.4243224,46.5055296,1 7.4236358,46.5053819,1 7.4232152,46.5052224,1 7.422829,46.5050452,1 7.4223827,46.5049211,1 7.4220737,46.5048798,1 7.4218248,46.5049034,1 7.421593,46.5049034,1 7.4213527,46.5049211,1 7.4210952,46.5050452,1 7.4208892,46.5051397,1 7.4206317,46.5052224,1 7.4203742,46.5052578,1 7.4202026,46.5052992,1 7.420091,46.5053583,1 7.4200137,46.505376,1 7.419988,46.5053819,1 + + + + #style-Unclassified + + relativeToGround + 7.4305407,46.5051685,1 7.4303563,46.5050038,1 7.4298928,46.5045253,1 7.4297126,46.5043185,1 7.4294637,46.5041177,1 7.4290517,46.5038695,1 7.4288371,46.5036923,1 7.428468,46.5034324,1 7.4282106,46.5031192,1 7.4279016,46.5029479,1 7.4276012,46.5027766,1 7.4274982,46.5027411,1 7.4273866,46.5027589,1 7.4273351,46.5028179,1 7.4275153,46.5029302,1 7.427687,46.5030424,1 7.4278157,46.5031783,1 7.4279187,46.5032965,1 7.4279445,46.5033851,1 7.4279016,46.5034383,1 7.4277042,46.5034028,1 7.4274982,46.5032551,1 7.4272836,46.503137,1 7.4270433,46.5030424,1 7.4267085,46.5029834,1 7.4262193,46.5029538,1 7.4255841,46.5029774,1 7.4252494,46.5029834,1 7.4248117,46.5029006,1 7.4245113,46.5028947,1 7.4241336,46.5030306,1 7.4238933,46.503137,1 7.4237474,46.503196,1 7.4234212,46.5032256,1 7.4232925,46.5032551,1 7.4232324,46.5032906,1 7.4232238,46.5033378,1 7.423301,46.5033674,1 7.423404,46.5033851,1 7.4235757,46.5033733,1 7.4240649,46.503456,1 7.4244683,46.5035269,1 7.4247773,46.5036037,1 7.4250434,46.5037632,1 7.4254554,46.50397,1 7.4259103,46.5041354,1 7.4263223,46.5043126,1 7.4265369,46.5044485,1 7.4266828,46.5045253,1 7.4267858,46.504608,1 7.4269403,46.504673,1 7.4269832,46.5047084,1 7.426966,46.504738,1 7.4269231,46.5047439,1 7.4268544,46.5047202,1 7.42676,46.5046553,1 7.4266399,46.5045726,1 7.4264424,46.5044898,1 7.4261592,46.504413,1 7.4258502,46.5043422,1 7.4255326,46.5043008,1 7.4251207,46.5042949,1 7.4246228,46.5042949,1 7.4240649,46.5042949,1 7.4236014,46.5042831,1 7.4231551,46.5043008,1 7.4227775,46.5043126,1 7.4221166,46.5043599,1 7.4215243,46.504413,1 7.4211896,46.5045017,1 7.4209364,46.5046133,1 7.4207519,46.5048266,1 7.4206231,46.5049979,1 7.420357,46.5051338,1 7.4200738,46.5052401,1 7.419988,46.5053819,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.4668276,46.4566405,1 7.466626,46.456393,1 7.46638,46.456395,1 7.465978,46.457075,1 7.46552,46.45722,1 7.464934,46.457247,1 7.464328,46.457064,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.464328,46.457064,1 7.46402,46.45673,1 7.46447,46.45557,1 7.4642956,46.4543861,1 7.464124,46.45378,1 7.4641132,46.4532257,1 7.4642966,46.4529589,1 7.4642849,46.4527822,1 7.46408,46.45269,1 7.4638128,46.4527083,1 7.4636626,46.4529744,1 7.4634575,46.4537658,1 7.4603495,46.4557922,1 7.4588078,46.4570244,1 7.4581153,46.4575795,1 7.4574404,46.4583035,1 7.4570682,46.4587555,1 7.4569587,46.4589788,1 7.4568436,46.4593926,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.4703038,46.4532183,1 7.4710333,46.4527157,1 7.4713445,46.452553,1 7.4714196,46.4524422,1 7.4712908,46.4523978,1 7.4711192,46.4524274,1 7.4708774,46.4525547,1 7.4706364,46.4526048,1 7.4701321,46.4525826,1 7.4698401,46.452539,1 7.46948,46.4526,1 7.4683618,46.4533587,1 7.4678361,46.4538687,1 7.4676216,46.4543418,1 7.4674922,46.4547505,1 7.4675572,46.4549109,1 7.4675679,46.4551105,1 7.4675467,46.4553607,1 7.4675786,46.4555096,1 7.4676859,46.4556722,1 7.4676573,46.4558604,1 + + + + #style-Unclassified + + relativeToGround + 7.4418257,46.4493133,1 7.4429563,46.4496699,1 7.4449209,46.4532605,1 + + + + Eselmoosgassa + #style-Unclassified + + relativeToGround + 7.5352429,46.4735013,1 7.5361986,46.4737653,1 7.5368105,46.4739849,1 7.5370959,46.4740236,1 7.5375596,46.4740753,1 + + + + Eselmoosgassa + #style-Unclassified + + relativeToGround + 7.5375596,46.4740753,1 7.5377988,46.4741219,1 + + + + #style-Unclassified + + relativeToGround + 7.54748,46.480984,1 7.5484605,46.4809685,1 7.5488016,46.4810009,1 7.5501316,46.4812134,1 7.5504155,46.4813022,1 7.5507216,46.4814522,1 7.5509021,46.4815181,1 + + + + Kuonisbergliweg + #style-Unclassified + + relativeToGround + 7.5518939,46.4844236,1 7.5519996,46.4841301,1 7.5523714,46.4835666,1 7.5525084,46.4833243,1 7.5528638,46.4823913,1 7.5529761,46.4821915,1 7.553538,46.481365,1 7.553631,46.481207,1 7.553657,46.480986,1 7.553549,46.480827,1 7.553375,46.480816,1 + + + + #style-Unclassified + + relativeToGround + 7.4243085,46.4962111,1 7.4246201,46.4963695,1 7.4248078,46.4963991,1 7.4249741,46.4962993,1 7.4251565,46.4960408,1 7.4254194,46.4957565,1 7.4257949,46.4953466,1 7.4266078,46.4947785,1 7.4271663,46.49439,1 7.4277734,46.4936979,1 7.4282348,46.4930423,1 7.4286597,46.4925445,1 7.4289438,46.4921742,1 7.4290296,46.4920487,1 7.4291818,46.4920224,1 7.4292764,46.492141,1 7.4290968,46.4923259,1 7.4288097,46.4927134,1 7.4286112,46.4933701,1 7.4285262,46.4938679,1 7.4280041,46.4948028,1 7.4276399,46.4955677,1 7.4277006,46.495762,1 7.4281134,46.4963083,1 7.4286476,46.496709,1 7.4288783,46.4970125,1 7.4293882,46.4980203,1 7.4293761,46.4985181,1 7.4294611,46.4987609,1 7.4296918,46.4989795,1 7.4304297,46.4992462,1 7.4305531,46.4993902,1 7.4305052,46.4995865,1 7.4306388,46.4997079,1 7.4308643,46.4998038,1 7.4310681,46.4999256,1 7.4316421,46.5003946,1 7.431744,46.5004204,1 7.4318772,46.5004,1 7.4318942,46.5002986,1 7.4317977,46.5001841,1 7.4314523,46.4998658,1 7.4313417,46.4996339,1 7.4313794,46.4994165,1 7.431508,46.4991502,1 7.4317801,46.498943,1 7.4317073,46.4988095,1 7.4312944,46.4986395,1 7.4311609,46.4982752,1 7.4310896,46.4978651,1 7.4311808,46.4975955,1 7.4313256,46.4972706,1 + + + + #style-Unclassified + + relativeToGround + 7.603904,46.5152803,1 7.6038399,46.515509,1 7.6038519,46.5158038,1 7.6039341,46.5160746,1 7.6039201,46.5163173,1 7.6038358,46.5164998,1 7.6036794,46.5167405,1 7.6033694,46.5171449,1 + + + + #style-Unclassified + + relativeToGround + 7.4398617,46.4296989,1 7.4397759,46.4296619,1 7.4397115,46.4295362,1 7.4396686,46.4293809,1 7.4395291,46.429233,1 7.4391643,46.4289742,1 7.4389927,46.4289077,1 7.4388961,46.4289594,1 7.4388317,46.4293292,1 7.4387459,46.4294623,1 7.4386064,46.4294845,1 7.4384562,46.4293957,1 7.4383489,46.4292404,1 7.4382094,46.4290334,1 7.4381343,46.4289151,1 7.4374584,46.4288263,1 7.436922,46.4288337,1 7.4367181,46.4288263,1 7.4361388,46.428708,1 + + + + Glauistrasse + #style-Unclassified + + relativeToGround + 7.4444107,46.4389564,1 7.4442498,46.4390377,1 7.444121,46.43923,1 7.4434022,46.4402429,1 7.4433056,46.4402724,1 7.4432413,46.4402724,1 7.4431769,46.4401911,1 7.4431876,46.4401172,1 7.4432305,46.4398806,1 7.4432305,46.4396218,1 7.4432091,46.43923,1 7.4432091,46.4388751,1 7.4432413,46.4386237,1 7.4432413,46.4383945,1 7.4431769,46.4382096,1 7.4424903,46.4373076,1 7.44234,46.4372115,1 7.4415676,46.4367531,1 7.4414388,46.4366348,1 7.4413852,46.4364795,1 + + + + Glauistrasse + #style-Unclassified + + relativeToGround + 7.4424903,46.4373076,1 7.4423615,46.4369601,1 + + + + Glauistrasse + #style-Unclassified + + relativeToGround + 7.4433056,46.4402724,1 7.4431233,46.4408047,1 + + + + Seefluhstrasse + #style-Unclassified + + relativeToGround + 7.4434129,46.4428009,1 7.4433056,46.443311,1 + + + + Seefluhstrasse + #style-Unclassified + + relativeToGround + 7.4437348,46.4427639,1 7.4434129,46.4428009,1 + + + + #style-Unclassified + + relativeToGround + 7.4380056,46.4525884,1 7.4378983,46.4525958,1 + + + + #style-Unclassified + + relativeToGround + 7.4378983,46.4525958,1 7.4377374,46.4526105,1 + + + + #style-Unclassified + + relativeToGround + 7.4377374,46.4526105,1 7.4376301,46.452714,1 7.437437,46.453054,1 7.437319,46.4530762,1 7.4372117,46.4529875,1 7.4371366,46.4528249,1 7.4371151,46.4527066,1 7.4369756,46.4526253,1 + + + + Untere Bühlstrasse + #style-Unclassified + + relativeToGround + 7.433596,46.4585605,1 7.433639,46.4585162,1 7.4338965,46.4585383,1 7.4342612,46.4585088,1 7.4344544,46.4584496,1 7.4346367,46.4583166,1 7.4346904,46.4581244,1 7.4346689,46.4579249,1 7.4344865,46.4577032,1 7.4344651,46.4575406,1 7.4345295,46.4574371,1 + + + + Rütistrasse + #style-Unclassified + + relativeToGround + 7.4304096,46.4586862,1 7.4302379,46.4586344,1 7.4301962,46.4583535,1 7.4301362,46.4577031,1 7.430222,46.4569817,1 7.4301104,46.456284,1 7.4302821,46.4559884,1 7.4308571,46.4556691,1 7.4291826,46.4541298,1 7.427084,46.4535514,1 7.4274775,46.4522141,1 + + + + #style-Unclassified + + relativeToGround + 7.4353588,46.4606376,1 7.4352054,46.4610438,1 7.4349693,46.4614355,1 + + + + #style-Unclassified + + relativeToGround + 7.430159,46.462852,1 7.4301306,46.4627805,1 7.4301306,46.4625736,1 7.430195,46.4620637,1 7.4302272,46.4618346,1 7.4301521,46.4614724,1 7.4300233,46.4613172,1 7.4297015,46.4611029,1 + + + + Flöschstrasse + #style-Unclassified + + relativeToGround + 7.430159,46.462852,1 7.4302272,46.4629801,1 7.4302808,46.4631574,1 7.4303452,46.4642216,1 7.430313,46.4646429,1 7.4302379,46.4654336,1 7.4301199,46.4663278,1 7.4299697,46.4668007,1 7.4296908,46.4675249,1 7.4294547,46.4679831,1 7.4292187,46.468589,1 7.4291066,46.4688619,1 7.4290537,46.4691138,1 + + + + #style-Unclassified + + relativeToGround + 7.4290537,46.4691138,1 7.4286822,46.4691654,1 7.4284659,46.4692383,1 7.4281887,46.4695127,1 7.4278132,46.4699265,1 7.4276201,46.4700817,1 7.4271158,46.4705176,1 7.4268262,46.4707615,1 7.4268047,46.4708649,1 7.4269334,46.4710275,1 + + + + Obere Ägertenstrasse + #style-Unclassified + + relativeToGround + 7.4302379,46.4654336,1 7.430592,46.4651602,1 7.4308602,46.4648646,1 7.4309997,46.4646133,1 7.4313859,46.4639999,1 7.4317721,46.4632313,1 7.4320082,46.4627436,1 7.4321155,46.4624849,1 7.4322834,46.461897,1 7.4323193,46.461199,1 + + + + Sagistrasse + #style-Unclassified + + relativeToGround + 7.4351088,46.4673623,1 7.4358872,46.4676242,1 + + + + Oberriedstrasse + #style-Unclassified + + relativeToGround + 7.4545769,46.4439833,1 7.4547271,46.4439241,1 + + + + Oberriedstrasse + #style-Unclassified + + relativeToGround + 7.4547271,46.4439241,1 7.4548183,46.4438761,1 7.454876,46.443826,1 7.4550079,46.4436536,1 7.4551627,46.4430606,1 7.4553113,46.4426596,1 7.4554721,46.4423588,1 7.4560542,46.4417253,1 7.4562979,46.441431,1 7.45647,46.441134,1 7.4564938,46.441,1 7.4565824,46.4408413,1 7.4566176,46.4407782,1 7.4572602,46.4399218,1 7.4576464,46.4396497,1 7.4579549,46.4395665,1 7.4587721,46.4394172,1 7.4590882,46.439328,1 7.4594231,46.4391233,1 7.4597503,46.438854,1 7.4600197,46.4385501,1 7.4606355,46.4376757,1 7.4607449,46.4375203,1 7.4612856,46.4369761,1 7.4623242,46.4356452,1 7.463195,46.434967,1 7.4633488,46.4348497,1 7.4636343,46.4345773,1 7.4640337,46.4340246,1 7.4642365,46.4337625,1 7.4644614,46.4335157,1 7.4653563,46.432764,1 7.4661983,46.4321939,1 7.4667084,46.4318423,1 7.4669016,46.4316887,1 7.4670482,46.4314854,1 7.467344,46.4306214,1 7.4675058,46.4302754,1 7.4677582,46.4299748,1 + + + + Oberriedstrasse + #style-Unclassified + + relativeToGround + 7.4440966,46.4543426,1 7.4441109,46.4543138,1 7.4442933,46.4540773,1 7.444583,46.4537447,1 7.4447935,46.4534764,1 7.4449209,46.4532605,1 7.4449978,46.4530345,1 7.4450658,46.4527542,1 7.4451127,46.4523018,1 7.4451741,46.4520707,1 7.4453308,46.4518244,1 7.4460796,46.4511056,1 7.4469774,46.4504619,1 7.4478827,46.4500392,1 7.448556,46.4497567,1 7.4490141,46.4495254,1 7.4498329,46.4490688,1 7.4503311,46.4488049,1 7.450763,46.448663,1 7.451105,46.4485549,1 7.4513722,46.4483848,1 7.451504,46.4482133,1 7.4520636,46.4473548,1 7.4524759,46.4465754,1 7.4528298,46.4461337,1 7.4531239,46.4458511,1 7.4534257,46.4454192,1 7.4538049,46.4449126,1 7.4542979,46.4443603,1 7.4545085,46.4440271,1 7.4545769,46.4439833,1 + + + + Oberriedstrasse + #style-Unclassified + + relativeToGround + 7.444062,46.4544122,1 7.4440966,46.4543426,1 + + + + Lischmattenstrasse + #style-Unclassified + + relativeToGround + 7.4439634,46.4542879,1 7.4438105,46.4542602,1 + + + + Lischmattenstrasse + #style-Unclassified + + relativeToGround + 7.4438105,46.4542602,1 7.4433035,46.4541697,1 7.4407581,46.4538384,1 7.4394643,46.4538143,1 + + + + Rawilstrasse + #style-Unclassified + + relativeToGround + 7.4430005,46.457189,1 7.4430622,46.4571982,1 + + + + Schulstrasse + #style-Unclassified + + relativeToGround + 7.4435047,46.4557418,1 7.4434082,46.4557385,1 + + + + Gutenbrunnenstrasse + #style-Unclassified + + relativeToGround + 7.4448524,46.4597347,1 7.4449449,46.4598479,1 + + + + Bühlbergstrasse + #style-Unclassified + + relativeToGround + 7.4476773,46.4598777,1 7.4476229,46.4599377,1 + + + + Bühlbergstrasse + #style-Unclassified + + relativeToGround + 7.4476229,46.4599377,1 7.4475736,46.459992,1 7.4472866,46.4601065,1 7.4471632,46.4601564,1 7.4470908,46.4602063,1 7.4469806,46.460365,1 7.4468012,46.4607348,1 7.4466644,46.4609528,1 7.4465596,46.4612913,1 7.446482,46.4616641,1 7.4465494,46.4620495,1 7.4467601,46.4623722,1 7.4469595,46.462428,1 7.4470958,46.4624741,1 7.4471548,46.4625571,1 7.4471354,46.4626788,1 7.4470643,46.4628183,1 7.4470759,46.4629039,1 7.447149,46.4629496,1 7.4472496,46.4629448,1 7.4473107,46.4629016,1 7.4474659,46.4626716,1 7.4474787,46.462537,1 7.44739,46.4622619,1 7.44739,46.4621592,1 7.447435,46.4620685,1 7.4475389,46.4619867,1 7.4476454,46.4619468,1 7.4477672,46.4619562,1 7.4478306,46.4620086,1 7.4478473,46.4620985,1 7.4478115,46.4623099,1 7.447841,46.4624429,1 7.4481888,46.4626571,1 7.4488776,46.4629016,1 7.4494952,46.4630339,1 7.4499363,46.4629898,1 7.4504521,46.4631043,1 7.4507207,46.4630546,1 7.4509197,46.4629352,1 7.4508202,46.4626367,1 7.4509495,46.4623582,1 7.4512878,46.4622786,1 7.4516857,46.4623283,1 7.4536257,46.4631043,1 7.4547299,46.4630645,1 7.4552771,46.463363,1 + + + + Ägertenstrasse + #style-Unclassified + + relativeToGround + 7.4376101,46.4601022,1 7.4375109,46.4601364,1 7.4365881,46.4604558,1 7.4361085,46.4605709,1 7.4353588,46.4606376,1 7.4350766,46.4606669,1 7.4348713,46.4607347,1 + + + + Ägertenstrasse + #style-Unclassified + + relativeToGround + 7.4377581,46.4600511,1 7.4376101,46.4601022,1 + + + + Sagistrasse + #style-Unclassified + + relativeToGround + 7.4361018,46.4677055,1 7.4363271,46.4677904,1 7.4370442,46.4681471,1 7.4371615,46.468206,1 7.4384373,46.46873,1 + + + + Sagistrasse + #style-Unclassified + + relativeToGround + 7.4358872,46.4676242,1 7.4361018,46.4677055,1 + + + + Mittlere Ägertenstrasse + #style-Unclassified + + relativeToGround + 7.4290537,46.4691138,1 7.4305276,46.4683451,1 7.4316423,46.467711,1 7.4319089,46.4675275,1 7.4327807,46.4664017,1 7.4335209,46.4654705,1 7.435674,46.4631469,1 7.4366858,46.462123,1 7.4374483,46.4612465,1 7.4377862,46.4608179,1 7.4378453,46.4606479,1 7.4378131,46.4605149,1 7.4377148,46.4603861,1 7.4375109,46.4601364,1 + + + + Flöschstrasse + #style-Unclassified + + relativeToGround + 7.4296586,46.4726679,1 7.4295084,46.4724019,1 7.429171,46.4719433,1 7.4290276,46.4717095,1 7.4289541,46.4714632,1 7.4289403,46.4708977,1 7.4290537,46.4691138,1 + + + + Schadaulistrasse + #style-Unclassified + + relativeToGround + 7.4288706,46.4759627,1 7.4284414,46.475863,1 7.4282269,46.4757891,1 7.4280485,46.4756506,1 7.4279098,46.4754978,1 7.4278668,46.4752687,1 7.427899,46.4750249,1 7.4280814,46.4747663,1 7.4289342,46.4740116,1 7.4295727,46.4730964,1 7.4296586,46.4728821,1 7.4296586,46.4726679,1 + + + + Schadaulistrasse + #style-Unclassified + + relativeToGround + 7.4292187,46.4760445,1 7.4288706,46.4759627,1 + + + + #style-Unclassified + + relativeToGround + 7.4239729,46.4964435,1 7.4241194,46.4963413,1 + + + + #style-Unclassified + + relativeToGround + 7.4241194,46.4963413,1 7.4243085,46.4962111,1 7.4245872,46.4960192,1 7.4248311,46.4957794,1 7.4250679,46.4955465,1 7.425394,46.4950502,1 7.425394,46.494607,1 7.4253855,46.4943529,1 7.4252825,46.4941166,1 7.4252996,46.4939629,1 7.4255571,46.493443,1 7.4257889,46.4929289,1 7.4260378,46.4923971,1 7.4263553,46.4919657,1 7.4267244,46.4915698,1 7.427042,46.4912389,1 7.4274368,46.4908607,1 7.4277973,46.4903348,1 7.4277544,46.4901043,1 7.4276085,46.489927,1 7.4273767,46.4897616,1 7.4272987,46.4897359,1 + + + + #style-Unclassified + + relativeToGround + 7.4451135,46.4568262,1 7.4457293,46.4570504,1 7.4457346,46.4571022,1 7.4455791,46.4573572,1 + + + + #style-Unclassified + + relativeToGround + 7.4310896,46.4978651,1 7.4312559,46.4980313,1 7.4313202,46.4981679,1 7.4314812,46.4983193,1 7.4317494,46.4984966,1 7.43246,46.4986638,1 7.43263,46.4987973,1 7.4326179,46.498943,1 7.4327757,46.4992223,1 7.4332371,46.4995258,1 7.4335304,46.4996856,1 7.4339273,46.4998112,1 7.4342385,46.4998038,1 7.4345241,46.4997444,1 7.4352577,46.4996228,1 7.4360463,46.4995231,1 7.4366203,46.4994493,1 7.437087,46.4993717,1 7.4374357,46.4992757,1 7.4382029,46.4989309,1 7.4388787,46.4984079,1 7.439281,46.4981605,1 7.4399999,46.4976842,1 7.4411371,46.4971856,1 7.4421611,46.4969154,1 7.4432902,46.4966361,1 7.4441358,46.4965578,1 7.4445489,46.4965357,1 7.4447957,46.4966686,1 7.44486,46.4968385,1 7.4447259,46.4969936,1 7.4440503,46.4973064,1 7.4432926,46.4976366,1 7.4426516,46.4981223,1 7.4415831,46.4989576,1 7.4414107,46.4992129,1 7.4411693,46.4999145,1 7.4410996,46.5000438,1 7.4410272,46.5001361,1 7.4410459,46.5001952,1 7.4411103,46.5002007,1 7.4411774,46.5001767,1 7.4412176,46.5000863,1 7.4413919,46.4998112,1 7.4420705,46.4994308,1 7.4424139,46.4991428,1 7.4427464,46.4989434,1 7.4429503,46.4988843,1 7.4433902,46.498936,1 7.4439213,46.4988566,1 7.4442726,46.4988215,1 7.4446347,46.4987292,1 7.4450317,46.4984338,1 7.4455681,46.4981974,1 7.446244,46.4979943,1 7.4467966,46.4977876,1 7.4471775,46.4977137,1 7.4473438,46.4976251,1 7.4475047,46.4976066,1 7.4475905,46.4976472,1 7.4475852,46.4977174,1 7.4474403,46.4977949,1 7.447274,46.4978873,1 7.4471131,46.4979537,1 7.4467912,46.4982048,1 7.4464372,46.4985372,1 7.4460724,46.4990542,1 7.4455896,46.4994973,1 7.4449888,46.4998665,1 7.4444631,46.5002949,1 7.4442592,46.500738,1 7.4439052,46.5014617,1 7.4434867,46.5020008,1 7.4434224,46.5025916,1 7.4432078,46.5032267,1 7.4428215,46.5038618,1 7.4426928,46.504268,1 7.4424246,46.5045708,1 7.4419525,46.5049474,1 7.441577,46.5052686,1 7.4414268,46.5053978,1 7.4413785,46.5054643,1 7.4414322,46.5055455,1 7.4415502,46.5055566,1 7.4416467,46.5054938,1 7.441754,46.5053831,1 7.4418238,46.5053018,1 7.4423602,46.5049621,1 7.4430576,46.5046298,1 7.4436799,46.5041498,1 7.4444631,46.5038618,1 7.4456647,46.5034483,1 7.4466839,46.5029387,1 7.4477461,46.5024366,1 7.4483898,46.5019344,1 7.4490014,46.5017276,1 7.4500421,46.5016168,1 7.4508387,46.5015134,1 7.4512035,46.50153,1 7.4520323,46.5016076,1 7.4526867,46.5016759,1 7.453191,46.5016574,1 7.4535665,46.5016316,1 7.4538723,46.5015467,1 7.4540976,46.5013953,1 7.4543336,46.5013436,1 7.4544892,46.5013436,1 7.4546286,46.5013934,1 7.4548137,46.5014728,1 7.4549773,46.5014839,1 7.4551919,46.5014765,1 7.4554279,46.5015245,1 7.4557122,46.501639,1 7.4559831,46.5017073,1 7.4562701,46.5017756,1 7.4565491,46.5017959,1 7.4568227,46.5018845,1 7.4571794,46.5020212,1 7.4576032,46.5021172,1 7.4580458,46.502215,1 7.4582952,46.502311,1 7.458322,46.5023535,1 7.4583113,46.5023996,1 7.4582174,46.502407,1 7.4580833,46.5023922,1 7.4579278,46.5024144,1 7.4577132,46.5025326,1 7.4570051,46.5028427,1 7.4564043,46.5030643,1 7.4557391,46.5032563,1 7.4549451,46.5035074,1 7.4543443,46.5036698,1 7.4538723,46.5038471,1 7.4533787,46.5040391,1 7.4530354,46.5042458,1 7.4527565,46.5044083,1 + + + + #style-Unclassified + + relativeToGround + 7.592399,46.488507,1 7.59321,46.488437,1 7.59392,46.488552,1 7.594131,46.488536,1 7.5943718,46.4884212,1 7.5948158,46.4885033,1 7.5952399,46.4885619,1 7.5955708,46.4884936,1 7.5960104,46.4885348,1 + + + + #style-Unclassified + + relativeToGround + 7.5960104,46.4885348,1 7.5962371,46.488494,1 7.596404,46.4883944,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.5148593,46.4576658,1 7.5139753,46.4570098,1 7.5137473,46.4566738,1 7.5134953,46.4566158,1 7.5132313,46.4567988,1 7.5131163,46.4569628,1 7.5132733,46.4572948,1 + + + + Diemtigtalstrasse + #style-Unclassified + + relativeToGround + 7.5600746,46.6314618,1 7.5598156,46.6312398,1 7.559655,46.6309751,1 7.5593873,46.6307986,1 7.5590242,46.6307277,1 7.5582769,46.6304248,1 7.5576765,46.6305044,1 7.5572299,46.6304384,1 7.5555999,46.6298843,1 7.5555016,46.629737,1 7.5554714,46.6294791,1 7.5553783,46.6293059,1 7.5551891,46.629144,1 7.5549186,46.6289567,1 7.5544468,46.6288002,1 7.5541557,46.6287772,1 7.5537162,46.6287061,1 7.553227,46.6285376,1 7.5526808,46.6281825,1 7.5524817,46.6280484,1 7.5518999,46.6277116,1 7.5514352,46.6270945,1 7.5510642,46.6263117,1 7.5508466,46.626119,1 7.5508232,46.6259826,1 7.5506946,46.6258393,1 7.5504849,46.625715,1 7.5503553,46.6254358,1 7.550316,46.6251753,1 7.550244,46.6250835,1 7.5500438,46.6248793,1 7.5488614,46.6241043,1 7.5485721,46.6238921,1 7.548328,46.6237442,1 7.5480229,46.6235274,1 7.54797,46.6233309,1 7.5477086,46.6229447,1 7.547457,46.6226864,1 7.5470609,46.6224583,1 7.5457883,46.6215605,1 7.5455609,46.6214509,1 7.5453464,46.621419,1 7.5446782,46.6212488,1 7.5433859,46.62073,1 7.5429287,46.6205111,1 7.5421192,46.6198929,1 7.5418311,46.619571,1 7.5417298,46.6192503,1 7.5415818,46.6188457,1 7.541494,46.6184536,1 7.5414137,46.6182422,1 7.5413211,46.6181037,1 7.5411663,46.6178794,1 7.5410485,46.6177926,1 7.5406361,46.6174361,1 7.5401975,46.6169536,1 7.5396964,46.6164697,1 7.5391172,46.616091,1 7.5386223,46.615864,1 7.5380109,46.6151669,1 7.5378718,46.6149389,1 7.5376117,46.6147741,1 7.537236,46.6147098,1 7.5370075,46.6146143,1 7.5367774,46.6144043,1 7.5355882,46.6137959,1 7.5352713,46.6136639,1 7.5350754,46.6135533,1 7.5337253,46.6127512,1 7.5333154,46.6125519,1 7.5329988,46.6124922,1 7.5323089,46.612488,1 7.5318122,46.6125197,1 7.5315634,46.6124686,1 7.5314699,46.6123848,1 7.5314302,46.6121513,1 7.5313915,46.6119232,1 7.5312951,46.6117809,1 7.5309538,46.6115558,1 7.5305549,46.6113981,1 7.5300789,46.6112805,1 7.5296412,46.611198,1 7.5292201,46.6111837,1 7.5283316,46.611403,1 7.5276551,46.6115571,1 7.5272051,46.6115766,1 7.5261496,46.6114159,1 7.52564,46.6113005,1 7.5253453,46.6111977,1 7.5248067,46.6109049,1 7.5245846,46.6108356,1 7.5236745,46.6108032,1 7.5233471,46.6107245,1 7.5230431,46.6105063,1 7.5228115,46.6101505,1 7.5225994,46.609902,1 7.522408,46.6097115,1 7.5221107,46.6095417,1 7.5215979,46.6093977,1 7.5212467,46.6093381,1 7.5210101,46.6092757,1 7.5207618,46.6091481,1 7.5202006,46.6082884,1 7.519828,46.6078676,1 7.5194859,46.6075841,1 7.5190794,46.6074094,1 7.5184389,46.6073161,1 7.5169906,46.6071004,1 7.5157977,46.6070594,1 7.5153595,46.6069773,1 7.515053,46.6067635,1 7.5140954,46.6063115,1 7.513268,46.6063192,1 7.5117359,46.6057293,1 7.5105255,46.6048942,1 7.5097041,46.6044949,1 7.5096904,46.6044882,1 7.5089857,46.604289,1 7.5084647,46.6038754,1 7.5070322,46.6034157,1 7.506404,46.6027646,1 7.5055996,46.6024505,1 7.5043126,46.6011558,1 7.5026183,46.5984083,1 7.502045,46.5974786,1 7.5000149,46.5965747,1 7.499065,46.5959771,1 7.4991109,46.595709,1 7.4998387,46.5957243,1 7.5004286,46.5958162,1 7.5005435,46.5957779,1 7.50026,46.5955022,1 7.4972494,46.5926064,1 7.4965446,46.5914113,1 7.4957172,46.5887913,1 7.495564,46.5859032,1 7.4954261,46.5842868,1 7.4941238,46.5812531,1 7.4929747,46.5807399,1 7.4924614,46.5802955,1 7.4917949,46.5801576,1 7.4911437,46.579744,1 7.4901019,46.5793379,1 7.4888838,46.5783574,1 7.487773,46.5775147,1 7.4871372,46.5767026,1 7.4871895,46.5761873,1 7.4873108,46.5760875,1 7.4861474,46.5754004,1 7.4858975,46.5750647,1 7.485351,46.5746508,1 7.4846404,46.573667,1 7.4837035,46.5731439,1 7.4837425,46.5728862,1 7.4843437,46.5723709,1 7.4846795,46.5722147,1 7.4849293,46.5717619,1 7.4853822,46.5713403,1 7.4866393,46.5706453,1 7.4866159,46.5701456,1 7.4856945,46.5700051,1 7.4837269,46.5688339,1 7.483438,46.5685138,1 7.4831257,46.5683576,1 7.4819015,46.5676487,1 7.481459,46.567211,1 7.4803362,46.5667495,1 7.4800756,46.5665507,1 7.4797748,46.5663213,1 7.4794227,46.5658312,1 + + + + #style-Unclassified + + relativeToGround + 7.6072841,46.5284422,1 7.6065438,46.5287744,1 7.6059609,46.5289507,1 + + + + Rainweg + #style-Unclassified + + relativeToGround + 7.5725176,46.503522,1 7.571786,46.5036569,1 7.5716948,46.503694,1 7.5715584,46.5037674,1 7.5714301,46.5038062,1 7.5713036,46.5036465,1 7.5711946,46.5034698,1 + + + + Rainweg + #style-Unclassified + + relativeToGround + 7.5716948,46.503694,1 7.5714793,46.5034154,1 + + + + Trogweg + #style-Unclassified + + relativeToGround + 7.5717115,46.5024556,1 7.5720126,46.5023572,1 7.572155,46.5022396,1 7.5722022,46.5021698,1 7.5721933,46.5021194,1 7.572159,46.502032,1 7.5721677,46.5020008,1 7.572181,46.50198,1 7.572291,46.5019165,1 + + + + Laserweg + #style-Unclassified + + relativeToGround + 7.5717043,46.5024447,1 7.570935,46.502664,1 7.5706686,46.5027262,1 7.5703643,46.5027686,1 7.5702629,46.5027661,1 7.5701922,46.5027436,1 7.57008,46.502591,1 7.5699495,46.5024145,1 7.569842,46.502313,1 7.569743,46.5022761,1 7.5696887,46.5022836,1 7.5696452,46.5023073,1 7.5696416,46.5023484,1 + + + + Tannenweg + #style-Unclassified + + relativeToGround + 7.5625853,46.4950604,1 7.5629277,46.4952317,1 7.5632285,46.4954048,1 7.56365,46.495627,1 + + + + #style-Unclassified + + relativeToGround + 7.5627191,46.4953707,1 7.5625165,46.4953073,1 7.5621808,46.4951509,1 + + + + Aebiweg + #style-Unclassified + + relativeToGround + 7.5371522,46.4817482,1 7.5372839,46.4820083,1 7.537241,46.4823334,1 7.5370908,46.4827175,1 7.5371766,46.4828653,1 7.5376916,46.4829392,1 7.5382709,46.4830869,1 7.5387215,46.4830721,1 7.5390649,46.483013,1 7.5393653,46.482821,1 7.5395369,46.4827471,1 7.5397515,46.482688,1 7.5400614,46.4825351,1 7.5405388,46.4820442,1 + + + + Senggistrasse + #style-Unclassified + + relativeToGround + 7.5524133,46.4901418,1 7.552748,46.4907505,1 7.5531342,46.4908864,1 7.5536321,46.4912646,1 7.5545504,46.491625,1 7.5550053,46.4920091,1 7.5554688,46.4922455,1 7.5555976,46.4922278,1 7.5556793,46.492015,1 7.5554173,46.49169,1 7.5550311,46.4914773,1 7.5549109,46.4913118,1 7.5549882,46.4910991,1 7.5555547,46.4908982,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.4673625,46.4564555,1 7.4673641,46.4565592,1 7.4673418,46.45667,1 7.4673426,46.4568327,1 7.467407,46.4569435,1 7.4675943,46.457032,1 7.4676,46.45709,1 7.4675143,46.4571431,1 7.4673962,46.4571579,1 7.4672782,46.4571061,1 7.4671066,46.4569879,1 7.4669969,46.4568804,1 7.4668383,46.4568253,1 7.4668276,46.4566405,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.4676573,46.4558604,1 7.4673625,46.4564555,1 + + + + #style-Unclassified + + relativeToGround + 7.5555691,46.489152,1 7.5555719,46.4891333,1 7.5555852,46.489115,1 7.5555979,46.4891035,1 7.5556169,46.4890931,1 7.5556628,46.4890846,1 7.5557363,46.4890835,1 7.5559446,46.4890818,1 7.5561531,46.4890823,1 + + + + Gruebiweg + #style-Unclassified + + relativeToGround + 7.5552097,46.4887457,1 7.5553556,46.4888139,1 7.5555678,46.4888499,1 7.5558846,46.4888569,1 7.556089,46.4888482,1 + + + + Alte Strasse + #style-Unclassified + + relativeToGround + 7.5850973,46.5007372,1 7.5850387,46.5007685,1 7.5846542,46.5009922,1 7.5846239,46.5011334,1 7.5847252,46.501739,1 7.5847275,46.5020678,1 7.5849919,46.5028044,1 7.5855069,46.5035872,1 7.5855713,46.5038678,1 7.5857301,46.5039004,1 7.5859361,46.5039121,1 7.5860004,46.5040303,1 7.5858717,46.5045176,1 7.5860434,46.5048573,1 7.5863867,46.5051675,1 7.5868778,46.506548,1 7.5869798,46.5067495,1 7.587087,46.5069209,1 7.58715,46.5070534,1 7.5872426,46.5074858,1 7.587245,46.5076043,1 7.58713,46.5078698,1 7.5871139,46.5079584,1 7.5871729,46.5080876,1 7.587307,46.5081578,1 7.5875108,46.5082168,1 7.5876199,46.5082948,1 7.5876557,46.5084384,1 7.5875806,46.5087337,1 7.5876556,46.5089368,1 7.5878863,46.5094832,1 7.5880044,46.5096567,1 7.5882243,46.5098561,1 7.5884442,46.5100702,1 7.5886588,46.5103323,1 7.5888412,46.5105723,1 7.5889177,46.5107599,1 7.5889616,46.5109714,1 7.5888627,46.5113365,1 7.5887152,46.5114922,1 7.5886612,46.5116064,1 7.5886588,46.5118054,1 7.5887308,46.5121362,1 7.5887696,46.5124147,1 7.5888949,46.5126656,1 7.5893693,46.5131274,1 7.5896405,46.5132526,1 7.5902491,46.5134523,1 7.5909226,46.5134852,1 7.5913249,46.5134999,1 7.5915127,46.5134888,1 7.5918024,46.5134076,1 7.5924407,46.5133559,1 7.5926392,46.5133707,1 7.5927197,46.5134261,1 7.5927143,46.5135258,1 7.5925989,46.5135841,1 7.5923227,46.5136993,1 7.5921118,46.5138459,1 7.5919258,46.5139835,1 7.5916629,46.5142346,1 7.5916009,46.5143235,1 7.5915288,46.5144782,1 7.5914,46.5145816,1 7.5912498,46.5146813,1 7.5911503,46.5147665,1 7.5911372,46.5148289,1 7.5911936,46.5149035,1 7.5912767,46.5149618,1 7.5914698,46.5150504,1 7.5919204,46.5151575,1 7.5922017,46.5152686,1 7.5922526,46.5153912,1 7.5922798,46.5155377,1 7.5922583,46.5156337,1 7.5921779,46.5157961,1 7.5921457,46.5158884,1 7.5921588,46.5159774,1 7.5923174,46.5162059,1 7.5923388,46.5163203,1 7.5923948,46.5163908,1 7.5934463,46.5170848,1 7.5941445,46.5176762,1 7.5943827,46.5179335,1 7.5946831,46.5185647,1 7.594785,46.5188416,1 7.5949566,46.519063,1 7.5951605,46.5192513,1 7.5955789,46.5194949,1 7.5959139,46.5196688,1 7.5962656,46.5197533,1 7.5964503,46.5198164,1 7.5965552,46.519901,1 7.5966035,46.5200117,1 7.5966947,46.5201815,1 7.5968557,46.5203624,1 7.5973599,46.5207942,1 7.5975454,46.5208933,1 7.5977461,46.5209603,1 7.5978856,46.5210748,1 7.5979715,46.5212519,1 7.5979983,46.521455,1 7.5979661,46.5216912,1 7.5979607,46.5218167,1 7.5980412,46.5219939,1 7.5980948,46.5221415,1 7.5980753,46.5223333,1 7.59811,46.5226362,1 7.5982021,46.522924,1 + + + + Alte Strasse + #style-Unclassified + + relativeToGround + 7.5851089,46.5006757,1 7.5850973,46.5007372,1 + + + + Alte Strasse + #style-Unclassified + + relativeToGround + 7.5851089,46.5006757,1 7.5850643,46.5006438,1 7.5845945,46.5005489,1 7.5842102,46.5002567,1 7.5838483,46.4999466,1 7.5830537,46.4991232,1 7.5826523,46.4989336,1 7.582594,46.4989054,1 7.5810925,46.497901,1 7.5804891,46.4976849,1 7.5801849,46.4975458,1 7.5795841,46.4969549,1 7.5791121,46.4966595,1 7.5788121,46.4963841,1 7.5784683,46.4960686,1 7.5779508,46.4959746,1 7.5778518,46.4959324,1 7.577856,46.4958566,1 7.5780392,46.495596,1 7.5779939,46.49555,1 + + + + Bütscheggenweg + #style-Unclassified + + relativeToGround + 7.5753139,46.5088011,1 7.5752226,46.5089091,1 7.5750338,46.5093631,1 7.5749573,46.5094711,1 7.574882,46.5094983,1 7.5747902,46.5094904,1 7.5746294,46.5094263,1 7.5745088,46.5093055,1 7.574491,46.5092875,1 7.57442,46.509189,1 7.574359,46.509088,1 7.574338,46.508939,1 7.574222,46.508688,1 7.574139,46.508567,1 7.574031,46.508442,1 7.573789,46.508273,1 7.573645,46.508149,1 7.573516,46.507976,1 7.57336,46.507811,1 7.573107,46.50769,1 7.572656,46.507421,1 7.572422,46.507265,1 7.572219,46.507108,1 7.57199,46.50692,1 7.571725,46.506695,1 7.571557,46.506537,1 7.571456,46.506313,1 7.571314,46.506114,1 7.570996,46.505779,1 7.570623,46.505583,1 7.5704442,46.5055077,1 7.570293,46.505449,1 7.570076,46.505348,1 7.569794,46.505203,1 7.569594,46.505027,1 7.5695203,46.50499,1 7.5694718,46.5049861,1 7.5694441,46.5050305,1 7.5694427,46.505069,1 7.569616,46.505224,1 7.569758,46.50538,1 7.569953,46.505639,1 7.570025,46.505838,1 7.570039,46.506066,1 7.569997,46.506254,1 7.569945,46.506424,1 7.569946,46.506613,1 7.5698959,46.5066559,1 7.5697967,46.5066484,1 7.569597,46.506478,1 7.569278,46.5061,1 7.5691127,46.5059387,1 7.568755,46.505672,1 7.5684874,46.5053996,1 7.568432,46.50536,1 7.568207,46.505142,1 7.567728,46.504666,1 7.56754,46.504485,1 7.567329,46.504179,1 7.5672453,46.5041525,1 7.5670457,46.5040965,1 7.566915,46.504026,1 7.5668264,46.5039619,1 7.5667654,46.5039084,1 7.566586,46.503722,1 7.5665589,46.5036645,1 7.5662748,46.5034588,1 7.566168,46.503343,1 7.5660937,46.5031901,1 7.5660213,46.5030833,1 7.565959,46.5030093,1 7.5658571,46.5029369,1 + + + + Hohliebeweg + #style-Unclassified + + relativeToGround + 7.5748122,46.4926149,1 7.5748165,46.4925846,1 7.5748422,46.4925475,1 7.5752285,46.4925784,1 7.5753308,46.4925713,1 7.5753936,46.4925327,1 7.5753914,46.4924534,1 7.5752299,46.4923705,1 7.5750836,46.4923319,1 7.5747518,46.4923365,1 7.574514,46.4923496,1 7.5744161,46.4923149,1 7.5742703,46.4921827,1 7.5741195,46.4920273,1 7.5739786,46.4915334,1 7.5738497,46.4911149,1 7.5737082,46.4907245,1 7.5736295,46.490499,1 7.573569,46.490309,1 7.5735774,46.490168,1 7.5737097,46.4899012,1 7.573877,46.4897669,1 7.5740024,46.4896153,1 7.5739773,46.4894445,1 7.5739991,46.4894219,1 7.5740293,46.4894136,1 7.5740927,46.4894215,1 7.5741494,46.4894612,1 7.5742011,46.4895481,1 7.574245,46.4896146,1 7.5742987,46.4897163,1 7.5743469,46.4898096,1 7.5744159,46.4898903,1 7.57463,46.4900137,1 7.5750015,46.4901671,1 7.5751139,46.4901494,1 7.5751655,46.4901109,1 7.5752686,46.4900151,1 7.5753957,46.4898584,1 7.5756006,46.4897247,1 7.5760912,46.4895722,1 7.5766751,46.489079,1 7.5768604,46.4888862,1 7.5770611,46.4887403,1 7.5772841,46.4886847,1 7.5774307,46.4886108,1 7.577443,46.4885782,1 7.5774172,46.488546,1 7.5773527,46.4885144,1 7.5770322,46.488577,1 7.576403,46.4886185,1 7.5760685,46.4885897,1 7.5758881,46.4885517,1 7.5757861,46.4885253,1 7.5756417,46.488455,1 7.5754445,46.4882827,1 7.5752077,46.4878809,1 7.5749909,46.4874603,1 7.5747366,46.48733,1 7.5744824,46.4872079,1 7.5742341,46.4869365,1 7.5740212,46.4866488,1 7.5737818,46.4862913,1 7.573563,46.4859489,1 7.573498,46.4857182,1 7.5735256,46.4853043,1 7.5736283,46.4850564,1 7.5739892,46.4846275,1 7.5740561,46.4844231,1 7.5741244,46.4842225,1 7.5741746,46.4841227,1 7.5743418,46.4839567,1 7.5743683,46.483903,1 7.5743906,46.4837706,1 7.5742118,46.4830843,1 7.5741888,46.4829278,1 7.5739849,46.482695,1 7.5737651,46.482332,1 7.5736551,46.4820242,1 7.5735632,46.481887,1 7.5735731,46.4818453,1 7.5736473,46.4818219,1 7.5737583,46.4818693,1 7.573887,46.4820133,1 7.5744837,46.4821543,1 7.5746673,46.482228,1 7.5751903,46.4824967,1 7.5754308,46.4826309,1 7.5757703,46.4827575,1 7.5760306,46.4829216,1 7.5763564,46.4831348,1 7.5763735,46.4831899,1 7.5763394,46.4832512,1 7.5761156,46.4834307,1 7.5760319,46.4835878,1 7.5760578,46.4837445,1 7.5761335,46.4838993,1 7.5763194,46.484058,1 7.5765279,46.4841883,1 7.576996,46.4847005,1 7.5771557,46.484847,1 7.5774165,46.4849629,1 7.577649,46.485013,1 7.5778689,46.4850323,1 7.578133,46.48503,1 7.578373,46.4849835,1 7.5784787,46.4849298,1 7.5784966,46.4848874,1 7.5784279,46.4848328,1 7.5782986,46.4847952,1 7.5782212,46.4847547,1 7.5781483,46.4845932,1 7.578149,46.484371,1 7.5781647,46.4840848,1 7.5781932,46.4839283,1 7.5782963,46.4837267,1 7.5785167,46.4834123,1 7.5785346,46.4833762,1 7.5784025,46.4830335,1 7.5782586,46.4828248,1 7.5780223,46.4826498,1 7.5777744,46.482495,1 7.57752,46.4822396,1 7.5772621,46.4819819,1 7.5770082,46.4818722,1 7.5768561,46.4817701,1 7.5766102,46.4814291,1 7.5765466,46.4812489,1 7.5763526,46.4811718,1 7.576209,46.4811,1 7.5761374,46.4809328,1 7.575831,46.480722,1 7.575571,46.480581,1 7.5752753,46.480404,1 7.5751232,46.4803012,1 7.575108,46.480291,1 7.574856,46.480078,1 7.5746784,46.4799297,1 7.57458,46.479817,1 7.574411,46.4796044,1 7.5743116,46.4792862,1 7.5742532,46.4790813,1 7.574265,46.478525,1 7.574191,46.478269,1 7.5740445,46.4779657,1 7.573681,46.477433,1 7.573501,46.477152,1 7.5733697,46.4768436,1 + + + + #style-Unclassified + + relativeToGround + 7.5855548,46.5376895,1 7.5856085,46.5377307,1 7.585568,46.5378347,1 7.5853884,46.5379208,1 7.5851067,46.5380153,1 7.584983,46.538079,1 7.5849247,46.5381363,1 7.5848752,46.5382295,1 7.5848662,46.5384329,1 7.5848963,46.5385742,1 + + + + #style-Unclassified + + relativeToGround + 7.5817066,46.490105,1 7.5817008,46.4902111,1 7.5816733,46.4907526,1 7.5812232,46.4913729,1 7.5812639,46.4917049,1 7.5811183,46.492002,1 7.5811882,46.4921709,1 7.5809319,46.4930271,1 7.5812974,46.4941264,1 7.581237,46.494378,1 7.5814383,46.4945894,1 7.5819709,46.4947404,1 + + + + #style-Unclassified + + relativeToGround + 7.5776565,46.5036379,1 7.5777661,46.503767,1 7.5789243,46.5048037,1 7.580017,46.5059799,1 7.5800649,46.5062539,1 7.5801586,46.5064359,1 7.5804202,46.5068391,1 7.580475,46.506968,1 7.5806871,46.5075547,1 7.580774,46.507992,1 7.5807475,46.5081673,1 7.5806755,46.5083959,1 7.5806824,46.5085984,1 7.5806998,46.5088309,1 7.5806678,46.5089152,1 + + + + #style-Unclassified + + relativeToGround + 7.561354,46.5249937,1 7.5611075,46.5254464,1 7.5603269,46.5258299,1 7.5602224,46.5259294,1 7.5602179,46.5259521,1 7.5602395,46.5259798,1 7.5603954,46.5260321,1 7.5606287,46.5260943,1 7.5612083,46.5262005,1 7.5612555,46.5262337,1 7.5613375,46.5263696,1 7.561382,46.526515,1 7.5613927,46.5267583,1 7.5615433,46.5277193,1 7.5616651,46.5279657,1 7.5617554,46.5283091,1 7.561906,46.5284,1 7.5620182,46.5284211,1 7.5621819,46.5281266,1 7.562649,46.527644,1 7.564524,46.5268768,1 7.5650682,46.5267509,1 7.5654095,46.5267497,1 + + + + #style-Unclassified + + relativeToGround + 7.5914358,46.5216049,1 7.591663,46.52154,1 7.591774,46.521568,1 7.59211,46.521848,1 7.592208,46.521883,1 7.592531,46.521957,1 7.592895,46.522174,1 7.592974,46.522297,1 7.593075,46.522407,1 7.593585,46.522719,1 7.593747,46.52275,1 7.593935,46.522758,1 7.5944256,46.5230091,1 7.594503,46.523136,1 7.594599,46.52325,1 7.594762,46.523392,1 7.595077,46.523553,1 7.595237,46.523611,1 7.59534,46.523697,1 7.595377,46.523739,1 7.595485,46.524006,1 7.595641,46.524151,1 7.595763,46.524244,1 7.596368,46.524518,1 7.59669,46.524629,1 7.597151,46.524844,1 7.597305,46.524946,1 7.597364,46.52505,1 7.597337,46.5252,1 7.597339,46.525263,1 7.5974171,46.5254953,1 + + + + #style-Unclassified + + relativeToGround + 7.5656379,46.4915646,1 7.5660518,46.4919536,1 7.5663034,46.4920439,1 7.5662885,46.4923288,1 + + + + #style-Unclassified + + relativeToGround + 7.5855548,46.5376895,1 7.5855334,46.5376761,1 7.5854732,46.5376661,1 7.585217,46.537669,1 7.5845096,46.5376307,1 + + + + Bühlbergstrasse + #style-Unclassified + + relativeToGround + 7.4477077,46.4598442,1 7.4476773,46.4598777,1 + + + + Rütistrasse + #style-Unclassified + + relativeToGround + 7.4274775,46.4522141,1 7.4261397,46.4530454,1 7.4264807,46.4545093,1 7.4246182,46.4549791,1 + + + + Ausserschwandstrasse + #style-Unclassified + + relativeToGround + 7.5739397,46.5051162,1 7.5733159,46.5041805,1 7.5725176,46.503522,1 7.5722936,46.5033372,1 7.5717115,46.5024556,1 7.5717043,46.5024447,1 7.5714965,46.50213,1 7.5709593,46.5015986,1 7.5696299,46.5006507,1 7.566752,46.4977228,1 7.5665412,46.4976961,1 7.5663817,46.4976202,1 7.5663132,46.4975194,1 7.5663009,46.4973709,1 7.566314,46.4972084,1 7.5662826,46.497065,1 7.5662005,46.4969304,1 7.5656932,46.4963425,1 7.5650662,46.4957333,1 + + + + Birkenweg + #style-Unclassified + + relativeToGround + 7.5597583,46.4842011,1 7.560472,46.4841615,1 7.5610374,46.4841326,1 7.561747,46.4840627,1 + + + + Bütscheggenweg + #style-Unclassified + + relativeToGround + 7.5739397,46.5051162,1 7.5742401,46.5059307,1 7.5740276,46.5063991,1 7.5741474,46.5067344,1 7.5748979,46.5074196,1 7.5754552,46.508546,1 7.5753139,46.5088011,1 7.5752707,46.5092956,1 7.5756239,46.5103671,1 7.5758202,46.5105712,1 7.5757377,46.5108812,1 7.5750941,46.5111403,1 7.5726804,46.5114307,1 7.5719504,46.5112933,1 7.5717288,46.5112797,1 7.5712568,46.5112509,1 7.5709967,46.5111631,1 7.5695622,46.5107082,1 7.5693037,46.510755,1 7.5685318,46.5110658,1 7.5675927,46.5110709,1 7.5669006,46.5111824,1 7.5665772,46.5111305,1 + + + + Dählenweg + #style-Unclassified + + relativeToGround + 7.5619024,46.484733,1 7.5605313,46.4847046,1 + + + + Fliederweg + #style-Unclassified + + relativeToGround + 7.5573139,46.4905062,1 7.5575742,46.4906144,1 7.5580001,46.49089,1 + + + + Obere Bodenstrasse + #style-Unclassified + + relativeToGround + 7.5621068,46.4703326,1 7.5618747,46.4704067,1 7.5615007,46.4706892,1 7.5612123,46.4709431,1 7.5609132,46.4715494,1 7.5596006,46.476687,1 7.5595328,46.4773032,1 7.5598308,46.4782305,1 7.559232,46.4796016,1 + + + + #style-Unclassified + + relativeToGround + 7.5167801,46.4849324,1 7.5181617,46.4850001,1 7.5189956,46.4843231,1 7.5198652,46.4843966,1 7.5207213,46.4847725,1 7.5217773,46.484755,1 7.5222435,46.4846581,1 7.5224367,46.4843815,1 7.524081,46.4841142,1 7.5247031,46.4843208,1 7.525197,46.4841121,1 + + + + #style-Unclassified + + relativeToGround + 7.5622864,46.461042,1 7.5622266,46.4611132,1 7.5622539,46.462548,1 7.5636079,46.4648625,1 7.563823,46.4661917,1 7.5638651,46.4664717,1 7.5630107,46.4683629,1 7.5628846,46.468745,1 7.5628282,46.4694412,1 7.562485,46.4699422,1 7.5621068,46.4703326,1 + + + + #style-Unclassified + + relativeToGround + 7.5622314,46.476374,1 7.5622314,46.4762793,1 7.561865,46.4755649,1 7.5619871,46.4745086,1 7.5617307,46.4740812,1 7.5617185,46.4732508,1 7.5613338,46.472689,1 7.5614864,46.4719136,1 7.5612588,46.4715361,1 7.5612549,46.47139,1 7.5612834,46.4712484,1 7.5615722,46.4708814,1 7.5621068,46.4705513,1 + + + + #style-Unclassified + + relativeToGround + 7.5624583,46.460924,1 7.5622864,46.461042,1 + + + + #style-Unclassified + + relativeToGround + 7.5622313,46.4764657,1 7.5622314,46.476374,1 + + + + #style-Unclassified + + relativeToGround + 7.5796758,46.5157114,1 7.5797311,46.5157548,1 7.5799023,46.5158239,1 7.5801322,46.5158917,1 7.5802236,46.5159468,1 7.5802588,46.5160395,1 7.5802508,46.5162606,1 7.5803341,46.5164925,1 7.580727,46.516711,1 7.581195,46.5171189,1 7.581244,46.51722,1 7.5812692,46.5174308,1 7.5813528,46.517721,1 7.5813228,46.5178771,1 7.5814321,46.518047,1 7.5817535,46.5185832,1 7.5820489,46.5190792,1 7.5821911,46.5191199,1 7.5823268,46.5191792,1 7.582469,46.5193924,1 7.5826412,46.519449,1 7.583197,46.519706,1 7.5836784,46.5197251,1 7.5840532,46.5197587,1 7.584179,46.51977,1 7.5844902,46.5200212,1 7.5847859,46.5202177,1 + + + + #style-Unclassified + + relativeToGround + 7.5796758,46.5157114,1 7.579568,46.5155332,1 7.5795576,46.5153762,1 + + + + #style-Unclassified + + relativeToGround + 7.5167801,46.4849324,1 7.5166386,46.4850139,1 7.5163346,46.4854944,1 + + + + #style-Unclassified + + relativeToGround + 7.5496477,46.485998,1 7.5490011,46.4856419,1 7.5478033,46.4852982,1 7.5471908,46.4852248,1 7.5459925,46.4848673,1 7.5448208,46.4848031,1 7.5437823,46.4847023,1 7.5435293,46.4846839,1 7.5433828,46.4847756,1 7.5432896,46.4849131,1 7.5430633,46.4850506,1 7.5429168,46.4850231,1 7.542757,46.4849039,1 7.5424774,46.4848764,1 7.5421313,46.4849681,1 7.5410395,46.4851881,1 7.5404803,46.4853807,1 7.5390955,46.4861049,1 7.537125,46.487095,1 7.5352743,46.4871775,1 7.5339162,46.4874433,1 7.5334102,46.4877459,1 7.533104,46.4882409,1 7.5325048,46.4887359,1 7.5320655,46.4888551,1 7.5307606,46.4887817,1 7.5290263,46.488887,1 7.5285629,46.4889495,1 7.5284723,46.4889619,1 7.5273381,46.4891146,1 7.5267159,46.4892819,1 7.525773,46.4897013,1 7.5254036,46.4897035,1 7.5237372,46.4889167,1 7.5230777,46.4888539,1 7.522833,46.4886169,1 7.5223705,46.4886012,1 7.521205,46.4883099,1 7.51934,46.4872071,1 7.5165633,46.4857592,1 7.5163346,46.4854944,1 + + + + #style-Unclassified + + relativeToGround + 7.556403,46.4906599,1 7.5564895,46.4903578,1 7.5564031,46.4900393,1 7.5564249,46.4897068,1 7.5563499,46.4894643,1 7.5561408,46.4893354,1 + + + + Zelgstrasse + #style-Unclassified + + relativeToGround + 7.5571221,46.4911702,1 7.557339,46.490971,1 7.5573284,46.4908942,1 7.5572427,46.4907622,1 7.5573095,46.4906602,1 7.5573139,46.4905062,1 7.5572902,46.4904128,1 7.557545,46.490364,1 7.5577631,46.4903969,1 7.5579974,46.4904534,1 7.5592506,46.4915649,1 7.5598352,46.4920944,1 7.5599801,46.492216,1 7.5605367,46.492528,1 7.5615826,46.4930937,1 + + + + #style-Unclassified + + relativeToGround + 7.6221411,46.5675483,1 7.6217555,46.5670542,1 7.6214032,46.5667511,1 7.6212605,46.5665937,1 7.6211744,46.5664214,1 7.6211495,46.5663947,1 7.6211127,46.5663881,1 7.6210786,46.5663881,1 7.6210545,46.5663925,1 7.6210286,46.5664097,1 7.6210092,46.5666306,1 7.6210364,46.5667281,1 7.621389,46.567218,1 7.621477,46.567386,1 7.621554,46.567623,1 7.621569,46.567826,1 7.621649,46.568184,1 7.6217257,46.5683166,1 7.6218557,46.5683782,1 7.6219111,46.5684444,1 7.6219239,46.568476,1 7.6219211,46.5684997,1 7.6219016,46.5685194,1 7.6218707,46.5685301,1 7.6218457,46.5685301,1 7.6217421,46.5684822,1 7.621518,46.568279,1 7.621345,46.568087,1 7.621152,46.567792,1 7.620757,46.567417,1 7.6206225,46.5671884,1 7.6205955,46.5671633,1 7.6205627,46.5671482,1 7.6205261,46.5671487,1 7.6204933,46.567158,1 7.6204734,46.5671814,1 7.6204702,46.5672176,1 7.6205499,46.5673038,1 7.620818,46.567734,1 7.620884,46.567894,1 7.62097,46.568114,1 7.621003,46.568253,1 7.620997,46.568398,1 7.621007,46.568515,1 7.6210788,46.5686958,1 7.6211778,46.5687891,1 7.6213252,46.5688698,1 7.6213764,46.5689228,1 7.6213615,46.5689658,1 7.6212994,46.5689787,1 7.621143,46.568912,1 7.6209424,46.5688012,1 7.620798,46.56864,1 7.620768,46.568413,1 7.620644,46.568196,1 7.6205393,46.568144,1 7.6204996,46.5682166,1 7.620621,46.568325,1 7.620622,46.568522,1 7.6205702,46.5688341,1 7.6205875,46.5689279,1 7.6206182,46.5690024,1 7.6207232,46.5690962,1 7.6208673,46.5691844,1 7.6211219,46.569248,1 7.6212305,46.5693311,1 7.6213808,46.5694812,1 7.6214434,46.5696385,1 7.6214758,46.5699093,1 7.6215649,46.5701971,1 7.6215258,46.5702147,1 7.6214789,46.5701959,1 7.62133,46.570035,1 7.620979,46.569821,1 7.620628,46.569579,1 7.6203038,46.5692579,1 7.6201751,46.5691972,1 7.6189412,46.5688229,1 7.6186735,46.5687168,1 7.618385,46.568508,1 7.617659,46.567929,1 7.617399,46.567728,1 7.617231,46.567583,1 7.617111,46.567413,1 7.616913,46.567047,1 7.61675,46.566845,1 7.616575,46.566731,1 7.616185,46.566364,1 7.6154775,46.5657796,1 7.614885,46.565334,1 7.6146833,46.5651263,1 7.614526,46.564915,1 7.613981,46.564401,1 7.613375,46.563863,1 7.613015,46.563613,1 7.612686,46.563419,1 7.6124398,46.5632504,1 7.6121,46.562995,1 7.611927,46.562877,1 7.611741,46.562768,1 7.611586,46.562717,1 7.6108173,46.5625652,1 7.610664,46.562435,1 7.610636,46.562142,1 7.610607,46.562116,1 7.610379,46.562031,1 7.610198,46.561993,1 7.609934,46.561961,1 7.609264,46.561757,1 7.6086516,46.5616698,1 7.608165,46.561607,1 7.607721,46.561471,1 7.607153,46.561323,1 7.6067556,46.5612362,1 7.606619,46.561159,1 7.60639,46.56107,1 7.605845,46.56095,1 7.60538,46.56095,1 7.605156,46.560926,1 7.6046366,46.5609521,1 7.6043472,46.5608585,1 7.604221,46.56071,1 7.6044,46.560493,1 7.604458,46.560313,1 7.604451,46.56029,1 7.604328,46.560168,1 7.604223,46.560128,1 7.603285,46.559916,1 7.603037,46.559907,1 7.602788,46.55993,1 7.602538,46.559967,1 7.602492,46.55998,1 7.602347,46.560076,1 7.602262,46.560101,1 7.602154,46.560074,1 7.601967,46.559894,1 7.601779,46.559881,1 7.601623,46.559915,1 7.60157,46.559933,1 7.601479,46.560022,1 7.600828,46.560398,1 7.6007,46.560418,1 7.600504,46.560329,1 7.6004294,46.5600943,1 7.600394,46.560076,1 7.600191,46.560136,1 7.600046,46.560166,1 7.599891,46.560195,1 7.599868,46.560182,1 7.599826,46.56007,1 7.600174,46.559822,1 7.600349,46.55977,1 7.600482,46.559689,1 7.600531,46.559525,1 7.600488,46.559365,1 7.600479,46.559289,1 7.600507,46.559148,1 7.600627,46.559022,1 7.600735,46.558966,1 7.600695,46.55883,1 7.600642,46.558768,1 7.600627,46.558706,1 7.600642,46.558575,1 7.600765,46.558387,1 7.600618,46.557904,1 7.60047,46.557573,1 7.600087,46.557016,1 7.599944,46.556679,1 7.599778,46.556393,1 7.599694,46.556124,1 7.599694,46.556038,1 7.599393,46.555577,1 7.599123,46.555283,1 7.598703,46.554963,1 7.598536,46.554827,1 7.598348,46.554712,1 7.597928,46.554526,1 7.597716,46.554373,1 7.597273,46.554,1 7.5971816,46.5538848,1 + + + + Alte Strasse + #style-Unclassified + + relativeToGround + 7.5716754,46.4967489,1 7.5718925,46.4966978,1 + + + + Alte Strasse + #style-Unclassified + + relativeToGround + 7.5718925,46.4966978,1 7.5721073,46.4966416,1 + + + + Alte Strasse + #style-Unclassified + + relativeToGround + 7.5721073,46.4966416,1 7.572546,46.4965413,1 7.5738335,46.4964527,1 7.5761938,46.4961277,1 7.5775242,46.4954778,1 7.5778322,46.4954612,1 7.5778754,46.4954761,1 + + + + Hubelstrasse + #style-Unclassified + + relativeToGround + 7.5619481,46.4908394,1 7.5618004,46.4908374,1 7.5611634,46.4903397,1 7.5610885,46.4903465,1 7.5601168,46.4909892,1 7.5592506,46.4915649,1 + + + + Ladholzstrasse + #style-Unclassified + + relativeToGround + 7.5924089,46.5310813,1 7.5922889,46.5311342,1 7.5917636,46.5312026,1 7.5913287,46.5311455,1 7.590988,46.531039,1 7.590563,46.531075,1 7.590277,46.531153,1 7.589796,46.531169,1 7.589642,46.531198,1 7.5895858,46.5312368,1 7.5896155,46.5312723,1 7.589692,46.531289,1 7.589899,46.531281,1 7.59009,46.531248,1 7.590295,46.531242,1 7.590523,46.53127,1 7.59101,46.531411,1 7.591227,46.531491,1 7.591367,46.531568,1 7.591589,46.531763,1 7.591977,46.531849,1 7.592203,46.531863,1 7.592401,46.531958,1 7.592571,46.532083,1 7.592649,46.53219,1 7.592619,46.532245,1 7.592464,46.532225,1 7.5922679,46.5321729,1 7.592029,46.532173,1 7.591679,46.532128,1 7.591436,46.532064,1 7.59126,46.531985,1 7.591029,46.531952,1 7.590802,46.531942,1 7.590574,46.531889,1 7.59041,46.531811,1 7.590343,46.531799,1 7.590284,46.531807,1 7.590247,46.5318378,1 7.590272,46.531878,1 7.590439,46.531925,1 7.590867,46.532109,1 7.591051,46.532212,1 7.591078,46.532362,1 7.591136,46.532536,1 7.591266,46.532633,1 7.591414,46.532676,1 7.591683,46.532649,1 7.591889,46.532648,1 7.591964,46.532749,1 7.591866,46.532878,1 7.5918006,46.5330041,1 7.591615,46.533166,1 7.591448,46.533263,1 7.591294,46.533385,1 7.5913,46.533524,1 7.591405,46.533697,1 7.591559,46.533871,1 7.591716,46.53403,1 7.591931,46.534138,1 7.59214,46.534193,1 7.592314,46.534298,1 7.592383,46.534445,1 7.592398,46.534745,1 7.592615,46.535027,1 7.592633,46.535216,1 7.592563,46.535792,1 7.592536,46.536167,1 7.592524,46.536254,1 7.592457,46.536343,1 7.592252,46.536439,1 7.592169,46.536464,1 7.591936,46.536594,1 7.591871,46.536668,1 7.591796,46.53691,1 7.591882,46.537032,1 7.59199,46.537252,1 7.592385,46.53746,1 7.592711,46.537952,1 7.592876,46.538212,1 7.593007,46.53888,1 7.59305,46.539226,1 7.592988,46.539398,1 7.592884,46.539444,1 7.592731,46.539389,1 7.5924,46.539142,1 7.5920484,46.538841,1 7.591704,46.53838,1 7.591495,46.538035,1 7.590946,46.537616,1 7.590806,46.53741,1 7.590666,46.537254,1 7.590498,46.536913,1 7.590428,46.536669,1 7.590426,46.536518,1 7.590467,46.536344,1 7.5906402,46.5360987,1 7.590345,46.535752,1 7.589582,46.535183,1 7.589065,46.534861,1 7.588579,46.534642,1 7.588298,46.534535,1 7.587194,46.534279,1 7.587059,46.5342825,1 7.586884,46.534294,1 7.5867784,46.5343331,1 7.5866893,46.5343725,1 + + + + Lischenstrasse + #style-Unclassified + + relativeToGround + 7.5789112,46.5019253,1 7.578915,46.5018479,1 7.5789126,46.5017241,1 7.5789513,46.5016989,1 + + + + Neuweg + #style-Unclassified + + relativeToGround + 7.5763776,46.5014193,1 7.576294,46.5014686,1 7.5765898,46.5017882,1 7.5770648,46.5028188,1 7.5776565,46.5036379,1 7.5775725,46.5038386,1 7.577659,46.504053,1 7.577975,46.504743,1 7.578067,46.505214,1 7.5785206,46.505896,1 7.57858,46.506791,1 7.578819,46.507217,1 7.579365,46.507691,1 7.579607,46.508434,1 7.579732,46.508536,1 7.5797057,46.509266,1 7.579671,46.510226,1 7.5797453,46.5109917,1 7.580007,46.511906,1 7.5802506,46.512384,1 7.5805152,46.5129738,1 7.5806365,46.5135164,1 7.580669,46.513662,1 7.580641,46.513675,1 + + + + Oeystrasse + #style-Unclassified + + relativeToGround + 7.5597987,46.4888045,1 7.5596114,46.4887086,1 7.5590977,46.4887413,1 7.55826,46.4885102,1 7.557679,46.4883499,1 7.5562602,46.4872899,1 7.555135,46.486923,1 7.5541077,46.486711,1 + + + + Rinderwaldstrasse + #style-Unclassified + + relativeToGround + 7.5920786,46.5277859,1 7.592013,46.5278814,1 7.5921113,46.5283229,1 7.5922599,46.5285511,1 7.5922599,46.5286679,1 7.592178,46.5287971,1 7.5920264,46.5289161,1 7.5918009,46.5290055,1 7.5914879,46.5290493,1 7.5913605,46.5289891,1 7.5913074,46.5288595,1 7.5915011,46.528447,1 7.5913605,46.528071,1 7.5910448,46.5275052,1 7.5906628,46.5273391,1 7.5905726,46.5270945,1 7.5902867,46.5267791,1 7.5898693,46.5266264,1 7.589723,46.5261891,1 7.5898509,46.5259126,1 7.5892239,46.525386,1 7.5887596,46.525155,1 7.58866,46.52505,1 7.5886593,46.5249033,1 7.588554,46.524815,1 7.5884977,46.5249146,1 7.5885064,46.5251373,1 7.5886429,46.5253687,1 7.5888901,46.5255442,1 7.5889148,46.5258339,1 7.5886581,46.5260421,1 7.5885021,46.5262391,1 7.5884711,46.5270452,1 7.5888648,46.527704,1 7.5888321,46.5278146,1 7.5886168,46.5279372,1 7.5884353,46.5278681,1 7.5881401,46.5275704,1 7.5876889,46.5275737,1 7.587346,46.527544,1 7.5863738,46.5272679,1 7.585991,46.5271518,1 7.5856872,46.5270452,1 7.5854035,46.5268207,1 7.5850142,46.5265989,1 7.5832724,46.5254439,1 7.5825523,46.5243282,1 7.582418,46.5243637,1 7.5824194,46.5250364,1 7.5824344,46.5254608,1 7.5826066,46.5259242,1 7.5824417,46.5258955,1 7.5812345,46.5251598,1 7.5807647,46.5249892,1 7.580322,46.5249821,1 7.5795587,46.5251441,1 7.5793111,46.5251274,1 7.5789818,46.524955,1 7.578854,46.5249327,1 7.5788147,46.5249916,1 7.578865,46.525061,1 7.5790663,46.5253114,1 7.5793669,46.5255973,1 7.5805877,46.5262635,1 7.581576,46.526976,1 7.5822447,46.5277997,1 7.5825672,46.5283477,1 7.5825694,46.5284335,1 7.582459,46.5284262,1 7.5823034,46.528276,1 7.581222,46.5276355,1 7.580843,46.52746,1 7.5805204,46.5273828,1 7.5785565,46.5276402,1 7.5774574,46.5275452,1 7.5763023,46.5271631,1 7.5755453,46.5267797,1 7.574859,46.526213,1 7.5747776,46.5259892,1 7.5748202,46.5255898,1 7.5745874,46.5254626,1 + + + + Schmittengraben + #style-Unclassified + + relativeToGround + 7.5632271,46.4930606,1 7.5633842,46.4930788,1 7.5635249,46.4931345,1 7.5635872,46.49323,1 7.5633938,46.4935302,1 7.5633565,46.4937197,1 7.5633739,46.4938029,1 7.5633923,46.4938168,1 7.5634261,46.4938155,1 7.5635035,46.4937563,1 7.5636349,46.4936571,1 7.5641212,46.4931646,1 7.5643068,46.4930036,1 7.5644847,46.4928738,1 7.5648105,46.4927291,1 7.5649245,46.4926975,1 7.565606,46.4923128,1 7.5660014,46.4922682,1 7.5662885,46.4923288,1 7.5663814,46.4923822,1 + + + + Schmittengraben + #style-Unclassified + + relativeToGround + 7.568897,46.4933261,1 7.5687413,46.4932105,1 7.5686769,46.4927008,1 7.5684103,46.4924955,1 7.5675587,46.4923767,1 7.5671661,46.4924553,1 7.5665136,46.4924594,1 7.5664566,46.49243,1 + + + + Schulgässli + #style-Unclassified + + relativeToGround + 7.5658886,46.4903417,1 7.5656473,46.4907108,1 7.5661236,46.4911985,1 7.5660442,46.491516,1 7.5656379,46.4915646,1 7.5653456,46.4914022,1 7.5648195,46.4911815,1 7.5641047,46.49108,1 7.5635494,46.4910794,1 7.563239,46.4912821,1 7.5627963,46.4915881,1 7.5623751,46.4918667,1 7.5620712,46.4920622,1 7.5613774,46.4922729,1 7.5610408,46.4922866,1 7.5605367,46.492528,1 + + + + #style-Unclassified + + relativeToGround + 7.5876833,46.5164516,1 7.5875192,46.5167316,1 7.5874183,46.5169215,1 7.587425,46.5170785,1 7.5875775,46.5172966,1 7.5876717,46.5173423,1 7.5877738,46.517356,1 7.587872,46.517324,1 7.5879397,46.5171981,1 7.5879633,46.5171897,1 7.5879931,46.5171784,1 + + + + #style-Unclassified + + relativeToGround + 7.5658886,46.4903417,1 7.565932,46.4902542,1 7.5659587,46.4900282,1 7.5658668,46.4898255,1 + + + + #style-Unclassified + + relativeToGround + 7.5987112,46.5396482,1 7.5993066,46.5400455,1 7.5999067,46.5402763,1 7.6000501,46.5404757,1 7.6000148,46.5411065,1 7.6000721,46.5411632,1 + + + + #style-Unclassified + + relativeToGround + 7.5922439,46.524217,1 7.5926503,46.5241251,1 7.5930389,46.524197,1 7.592967,46.5247871,1 7.5930735,46.5248648,1 7.593788,46.5252748,1 7.5941389,46.5256564,1 7.5940752,46.5260536,1 7.594492,46.52675,1 7.5951405,46.526862,1 7.5954175,46.5271921,1 7.5955472,46.5272157,1 7.5958773,46.5270624,1 7.5961485,46.5270919,1 7.5966466,46.5275795,1 7.5966706,46.527934,1 7.5973676,46.5279039,1 7.5980285,46.5279941,1 7.5981221,46.5280116,1 7.5983157,46.5281985,1 7.5984235,46.5283926,1 7.5984019,46.5286838,1 7.59865,46.5289211,1 7.5992216,46.5289427,1 7.5992108,46.5288456,1 7.5990167,46.5288133,1 7.5988226,46.528673,1 7.5988226,46.5282524,1 7.5990383,46.5276485,1 7.598499,46.5274112,1 7.5984235,46.5269798,1 7.5980892,46.5266562,1 7.5978843,46.5258797,1 7.5977987,46.5257423,1 7.5975919,46.5256673,1 7.5973988,46.525623,1 7.5973501,46.5255351,1 7.5974171,46.5254953,1 7.5978141,46.5255821,1 7.5987892,46.5260127,1 7.5999416,46.5266965,1 7.6009293,46.5271017,1 7.6013472,46.5274056,1 7.6016059,46.5274883,1 7.6019608,46.5274238,1 7.6029933,46.5275421,1 7.6031654,46.5274883,1 7.6032407,46.5272254,1 7.6036473,46.5268482,1 7.6042256,46.5264533,1 7.6045099,46.5265219,1 7.6043789,46.5268992,1 7.6046504,46.5272335,1 7.6051322,46.5276465,1 7.6054138,46.5281732,1 7.6052241,46.5286118,1 7.604846,46.5290789,1 7.6048905,46.5294792,1 7.6053798,46.5295682,1 7.6061361,46.5293018,1 + + + + #style-Unclassified + + relativeToGround + 7.5784191,46.501918,1 7.5784483,46.5020248,1 7.5785677,46.5021453,1 7.5789152,46.5022869,1 7.579346,46.50235,1 7.57937,46.5023535,1 7.5795731,46.5024713,1 + + + + Bonderlenstrasse + #style-Unclassified + + relativeToGround + 7.5871283,46.4860133,1 7.5870001,46.4859898,1 + + + + Bonderlenstrasse + #style-Unclassified + + relativeToGround + 7.5870001,46.4859898,1 7.5865419,46.4861414,1 7.5861778,46.4863286,1 7.5851904,46.4864815,1 7.5844927,46.4870776,1 7.5840558,46.4872544,1 7.5834347,46.4869748,1 7.5831949,46.4870435,1 7.5833797,46.487296,1 7.5831716,46.4875457,1 7.5827035,46.4876497,1 7.5815952,46.4884243,1 7.5809932,46.489163,1 7.5795925,46.490413,1 7.5793256,46.4906279,1 7.5782826,46.4914569,1 7.5773048,46.4918834,1 7.5769663,46.4921038,1 7.5767396,46.4922837,1 7.5764568,46.4926086,1 7.5762001,46.4927026,1 7.5751353,46.4926314,1 7.5748122,46.4926149,1 7.5745794,46.4926012,1 7.5737472,46.49283,1 7.5733207,46.4921331,1 7.5729843,46.4919146,1 7.5724562,46.4915977,1 7.5716564,46.4911345,1 7.5705649,46.4909123,1 7.5696679,46.4904828,1 7.5678063,46.4896289,1 7.5677844,46.4896259,1 7.5676637,46.4896332,1 7.5675205,46.4896429,1 7.5670889,46.489664,1 7.5655667,46.489498,1 + + + + Bonderlenstrasse + #style-Unclassified + + relativeToGround + 7.5871283,46.4860133,1 7.5871827,46.4860238,1 7.5880126,46.4861803,1 7.588105,46.4862347,1 + + + + Hirzbodenportstrasse + #style-Unclassified + + relativeToGround + 7.587042,46.4886078,1 7.5865782,46.4891164,1 7.5860911,46.4895304,1 7.5853664,46.4900213,1 7.5849608,46.4901754,1 7.5842203,46.490802,1 7.5836122,46.4911889,1 7.5834458,46.4913556,1 7.5830459,46.4921806,1 7.5824807,46.4927062,1 7.5818375,46.4934555,1 7.5817816,46.4938726,1 7.5819709,46.4947404,1 7.5821341,46.4953662,1 7.5823615,46.4964461,1 7.5827043,46.4971018,1 7.5829548,46.4981568,1 7.5832431,46.4984279,1 7.5840128,46.4988362,1 7.5842205,46.4990653,1 7.583876,46.4996144,1 7.5838483,46.4999466,1 + + + + #style-Unclassified + + relativeToGround + 7.5821341,46.4953662,1 7.5837231,46.4970956,1 7.5857965,46.4987966,1 7.5860984,46.499632,1 7.586803,46.4998836,1 7.5870948,46.4997729,1 7.5872156,46.499632,1 7.5874027,46.4997231,1 7.5871018,46.5006672,1 7.5871059,46.5011125,1 7.5874893,46.5015618,1 7.5883262,46.5019288,1 7.5886041,46.5022256,1 7.5892868,46.5025669,1 7.5894274,46.5030495,1 + + + + #style-Unclassified + + relativeToGround + 7.587042,46.4886078,1 7.587899,46.48825,1 7.5882043,46.4882427,1 7.5886503,46.488306,1 7.588931,46.488327,1 7.589214,46.488259,1 7.589931,46.487709,1 7.590149,46.487378,1 7.5904105,46.4872809,1 7.590543,46.487167,1 7.590873,46.487027,1 7.5911572,46.4869727,1 7.5912821,46.4869728,1 7.591414,46.486973,1 7.5915741,46.4868982,1 7.591735,46.486781,1 7.5919641,46.4868266,1 7.5918939,46.4869026,1 7.591729,46.487148,1 7.591454,46.488028,1 7.5911193,46.4884027,1 7.591501,46.48837,1 7.592061,46.487936,1 7.592171,46.488034,1 7.5922214,46.488268,1 + + + + #style-Unclassified + + relativeToGround + 7.5850387,46.5007685,1 7.5850317,46.501067,1 7.5855276,46.5016065,1 7.5865636,46.5024871,1 7.5868966,46.5026795,1 7.5872814,46.5030569,1 7.5874664,46.5030643,1 7.5877032,46.5027091,1 7.5876292,46.5023613,1 7.587681,46.5021467,1 7.5879622,46.5022947,1 7.5889464,46.5026203,1 7.5894274,46.5030495,1 7.5895162,46.5032567,1 7.5898342,46.5032999,1 7.5898564,46.5037902,1 7.589797,46.5040501,1 7.5899159,46.5043324,1 7.5898936,46.5047335,1 7.5904433,46.5055655,1 7.5911267,46.5060261,1 7.5920352,46.5070536,1 7.5932521,46.5082243,1 7.5931905,46.5089944,1 7.5935293,46.5092409,1 7.5942071,46.5092563,1 7.5947924,46.5091177,1 7.5952083,46.5091793,1 7.5953623,46.5096568,1 7.5965638,46.5102575,1 7.5971029,46.5102575,1 7.597719,46.510427,1 7.5982736,46.5103807,1 7.5993672,46.5107966,1 7.6006765,46.5105656,1 7.6007535,46.5107196,1 7.6005378,46.5111201,1 7.6005378,46.5113357,1 7.6009075,46.5113049,1 7.6012926,46.5114436,1 7.6015391,46.5118441,1 7.6017547,46.5118903,1 7.60234,46.5124756,1 7.6035107,46.5129069,1 7.6037571,46.5130917,1 7.6032796,46.5132304,1 7.6031102,46.5134922,1 7.6032334,46.514247,1 7.6018317,46.5150942,1 7.601955,46.515433,1 7.6026943,46.5160184,1 7.6027251,46.516388,1 7.6033694,46.5171449,1 7.6040652,46.5178513,1 7.6041268,46.5186061,1 7.6044657,46.5195919,1 7.6045581,46.5203929,1 7.6050202,46.5205931,1 7.6061909,46.5203775,1 7.6073923,46.5208704,1 7.6077774,46.5208242,1 7.6081625,46.5215635,1 7.607916,46.5221951,1 7.6081009,46.522688,1 7.6085014,46.5229036,1 7.6085168,46.5234273,1 7.6089327,46.5240127,1 7.608717,46.5251679,1 7.6085168,46.5255376,1 7.6085014,46.5259227,1 7.6077774,46.5264156,1 7.6077004,46.5267391,1 7.6079776,46.5270471,1 7.6093331,46.526585,1 7.610704,46.5264464,1 7.6109659,46.5266158,1 + + + + #style-Unclassified + + relativeToGround + 7.587042,46.4886078,1 7.5874305,46.4882863,1 7.587553,46.4879879,1 7.5876084,46.4877632,1 7.588218,46.4872813,1 7.5886301,46.4867943,1 7.5885713,46.4864604,1 7.5883219,46.4862734,1 7.588105,46.4862347,1 + + + + Bodenstrasse + #style-Unclassified + + relativeToGround + 7.5655667,46.489498,1 7.5651387,46.4893362,1 7.564879,46.4889907,1 7.5647194,46.4885724,1 7.5641218,46.4881265,1 7.5639912,46.4878728,1 7.5639752,46.4876249,1 7.5637244,46.487204,1 7.5634686,46.4869531,1 7.5632835,46.4867532,1 7.5630315,46.4863658,1 7.5626687,46.4859012,1 7.5625647,46.4856405,1 7.5623769,46.4854461,1 7.5621275,46.4851632,1 7.5619548,46.4849002,1 7.5619024,46.484733,1 7.5618104,46.4844506,1 7.561747,46.4840627,1 7.5614957,46.4825944,1 7.5614079,46.4812731,1 7.561295,46.4811046,1 + + + + Eselmoosgassa + #style-Unclassified + + relativeToGround + 7.5561553,46.4856415,1 7.5557635,46.4856558,1 7.5549529,46.485598,1 7.5547141,46.4854509,1 7.5544736,46.4853845,1 7.5543692,46.4854041,1 7.5542189,46.4854749,1 7.5541303,46.4854825,1 7.5540353,46.4855054,1 7.553853,46.485527,1 7.553726,46.485561,1 7.553685,46.485587,1 7.553433,46.485684,1 7.5532166,46.4856797,1 7.553134,46.485678,1 7.5529402,46.4854934,1 7.5526494,46.4852944,1 7.552326,46.484918,1 7.552172,46.4848,1 7.5520961,46.4847183,1 7.552012,46.484569,1 7.5518939,46.4844236,1 7.5517747,46.4842799,1 7.55168,46.48411,1 7.5513096,46.4837762,1 7.55115,46.483671,1 7.55098,46.483665,1 7.550794,46.483474,1 7.550622,46.483174,1 7.550476,46.483083,1 7.550345,46.483044,1 7.5502534,46.4830306,1 7.549997,46.483104,1 7.549532,46.483097,1 7.549363,46.483085,1 7.549299,46.48311,1 7.5491923,46.4831022,1 7.5491528,46.4830816,1 7.549018,46.482956,1 7.54888,46.482834,1 7.548732,46.482717,1 7.54851,46.482471,1 7.548538,46.48237,1 7.548732,46.48222,1 7.548814,46.482059,1 7.548795,46.481923,1 7.548658,46.481681,1 7.548255,46.481181,1 7.547886,46.481067,1 7.547641,46.481037,1 7.54748,46.480984,1 7.547357,46.480933,1 7.5457456,46.4805227,1 7.545419,46.480471,1 7.5450014,46.4805367,1 7.544647,46.48049,1 7.544299,46.4804,1 7.543866,46.48021,1 7.543796,46.48016,1 7.5434426,46.4799043,1 7.5434381,46.4799008,1 7.542671,46.479313,1 7.542223,46.478988,1 7.541957,46.478758,1 7.54153,46.478338,1 7.54131,46.477934,1 7.541097,46.477749,1 7.540842,46.477564,1 7.54067,46.477405,1 7.54044,46.477109,1 7.540176,46.476572,1 7.5399152,46.4762596,1 7.5393273,46.4757074,1 7.539045,46.475276,1 7.538843,46.475093,1 7.5387556,46.4750208,1 7.5384505,46.4747687,1 7.5382302,46.4743164,1 7.5381288,46.4742361,1 7.5377988,46.4741219,1 + + + + Flecklistrasse + #style-Unclassified + + relativeToGround + 7.561295,46.4811046,1 7.5614161,46.48107,1 7.5619614,46.4809337,1 7.56233,46.4809424,1 7.563085,46.4812124,1 7.5638695,46.48163,1 7.5642386,46.4822449,1 7.5651023,46.4831244,1 7.5654245,46.4839163,1 7.5657444,46.4842614,1 7.5661292,46.484468,1 7.5666203,46.4846783,1 7.5668295,46.4847669,1 7.5671931,46.484926,1 7.5674652,46.4851221,1 + + + + Fuhrenstrasse + #style-Unclassified + + relativeToGround + 7.5561553,46.4856415,1 7.5568207,46.4854527,1 7.5575266,46.4853598,1 7.5577332,46.4852617,1 7.5579355,46.484896,1 7.5580374,46.4845238,1 7.5577925,46.4836498,1 7.557817,46.4830379,1 7.5583492,46.4819039,1 + + + + Gspennweg + #style-Unclassified + + relativeToGround + 7.5638695,46.48163,1 7.564176,46.4816392,1 7.5645116,46.4816762,1 7.5650441,46.4817209,1 7.5652433,46.4817563,1 7.5655296,46.4818457,1 7.5658943,46.4819458,1 7.5661964,46.4820121,1 7.5663732,46.4820583,1 7.5665937,46.4821825,1 7.5668676,46.4822782,1 7.5670657,46.4823033,1 7.5673032,46.4822205,1 7.5673958,46.4820244,1 7.567317,46.4817693,1 7.5673377,46.4816797,1 7.5674461,46.4816661,1 7.5675411,46.481702,1 7.5676495,46.4818092,1 7.5677125,46.481968,1 7.5680791,46.4824497,1 7.5684379,46.4828004,1 7.5684393,46.4829933,1 7.5685006,46.4830787,1 7.5686817,46.4831555,1 7.569189,46.4833128,1 7.5693702,46.4834807,1 7.5695485,46.4837657,1 7.5696154,46.4840795,1 7.5697506,46.4843808,1 + + + + Hahnenmoosstrasse + #style-Unclassified + + relativeToGround + 7.5549954,46.4898085,1 7.553959,46.4889851,1 7.553271,46.4880191,1 7.552624,46.4874431,1 7.551504,46.4870491,1 7.550608,46.4864261,1 7.5496477,46.485998,1 7.549065,46.4855751,1 7.5461028,46.4845429,1 7.545601,46.4843911,1 7.5450642,46.484286,1 7.544646,46.4842091,1 7.544096,46.4842611,1 7.54335,46.4841501,1 7.543024,46.4839871,1 + + + + Kreuzgasse + #style-Unclassified + + relativeToGround + 7.5583492,46.4819039,1 7.558488,46.4819183,1 7.5589982,46.4817042,1 7.5599043,46.4812412,1 7.560118,46.4811965,1 7.561295,46.4811046,1 + + + + Lismiweg + #style-Unclassified + + relativeToGround + 7.5671931,46.484926,1 7.5670729,46.4855393,1 7.5667849,46.4857561,1 7.566834,46.4858727,1 7.5671599,46.4862692,1 + + + + #style-Unclassified + + relativeToGround + 7.5658155,46.489718,1 7.5655667,46.489498,1 + + + + #style-Unclassified + + relativeToGround + 7.5658668,46.4898255,1 7.5658155,46.489718,1 + + + + #style-Unclassified + + relativeToGround + 7.566834,46.4858727,1 7.5665666,46.4859805,1 7.566584,46.4861788,1 7.5667501,46.4863846,1 + + + + #style-Unclassified + + relativeToGround + 7.561295,46.4811046,1 7.560827,46.4806023,1 7.5607781,46.4791491,1 7.5609247,46.4781599,1 7.5622314,46.476548,1 7.5622314,46.476513,1 7.5622313,46.4764657,1 + + + + Walezubestrasse + #style-Unclassified + + relativeToGround + 7.5674652,46.4851221,1 7.5677176,46.4855439,1 7.5679169,46.4859883,1 7.5686415,46.4865509,1 7.568748,46.486657,1 7.5688367,46.4867031,1 7.5696467,46.487175,1 7.570372,46.4879376,1 7.5704705,46.4881439,1 7.5707587,46.4883279,1 7.5708117,46.4883663,1 7.5709129,46.488434,1 7.5714324,46.4889418,1 7.5718473,46.4897383,1 7.5721035,46.4900381,1 7.5722968,46.4907052,1 7.5725212,46.4911091,1 7.5728347,46.4914564,1 7.5729843,46.4919146,1 + + + + Kuonisbergliweg + #style-Unclassified + + relativeToGround + 7.5508319,46.4815667,1 7.550886,46.481604,1 7.551017,46.481662,1 7.5517182,46.4815741,1 7.551993,46.481463,1 7.552258,46.481249,1 7.552478,46.481152,1 7.5528719,46.4810715,1 7.552972,46.481051,1 7.553187,46.480938,1 7.553375,46.480816,1 + + + + Kuonisbergliweg + #style-Unclassified + + relativeToGround + 7.5508319,46.4815667,1 7.5509021,46.4815181,1 7.551101,46.481458,1 7.551329,46.481362,1 7.5514522,46.4812387,1 7.551571,46.48097,1 7.551688,46.480578,1 7.551781,46.480405,1 7.551891,46.480258,1 7.5520744,46.4800436,1 7.5524006,46.4797169,1 7.5526215,46.4795293,1 7.5529788,46.4789449,1 7.553007,46.47881,1 7.552982,46.478716,1 7.5529262,46.4786992,1 7.5527854,46.4787285,1 7.5524896,46.4790539,1 7.5523318,46.4792022,1 7.5521392,46.479332,1 7.5518842,46.4794254,1 7.551653,46.479461,1 7.551379,46.479444,1 7.551097,46.479381,1 7.550863,46.479293,1 7.550652,46.479183,1 7.5503496,46.4791053,1 7.550073,46.479072,1 7.549843,46.479024,1 7.549589,46.478927,1 7.549422,46.478836,1 7.549175,46.478782,1 7.549041,46.478774,1 7.548782,46.478793,1 7.548526,46.478898,1 7.548479,46.478902,1 7.548408,46.478825,1 7.548488,46.478774,1 7.548709,46.478677,1 7.548824,46.478546,1 7.549044,46.478409,1 7.549316,46.478319,1 7.5496528,46.4782388,1 7.550112,46.478244,1 7.550378,46.478205,1 7.55059,46.47814,1 7.550712,46.478013,1 7.550768,46.477844,1 7.5507845,46.4777077,1 7.550831,46.477322,1 7.550837,46.476938,1 7.550793,46.476547,1 7.550741,46.47618,1 7.550773,46.4757458,1 7.550804,46.475324,1 7.550842,46.47512,1 7.550847,46.474665,1 7.550828,46.474547,1 7.550455,46.473916,1 7.550251,46.473663,1 7.550181,46.473515,1 7.550134,46.473398,1 7.550109,46.473304,1 7.550087,46.473272,1 7.550023,46.47325,1 7.549945,46.473281,1 7.549934,46.473323,1 7.5499512,46.4734529,1 7.549878,46.473637,1 7.549834,46.473902,1 7.549831,46.473957,1 7.549814,46.474073,1 7.549783,46.474197,1 7.5497672,46.4743214,1 7.549727,46.474393,1 7.549487,46.474707,1 7.5493338,46.4748532,1 7.5493182,46.4748681,1 7.549299,46.4748896,1 7.5492628,46.4749301,1 7.5491141,46.4751996,1 7.548961,46.47533,1 7.548566,46.475574,1 7.548254,46.475715,1 7.548062,46.475728,1 7.547878,46.475707,1 7.547709,46.475654,1 7.547616,46.475589,1 7.547543,46.475472,1 7.547525,46.475404,1 7.547521,46.475189,1 7.547554,46.475035,1 7.547616,46.474977,1 7.547708,46.474933,1 7.547938,46.474861,1 7.548019,46.474747,1 7.5480239,46.4745659,1 7.5479003,46.4743716,1 7.5477933,46.4743096,1 + + + + Köpflisbergstrasse + #style-Unclassified + + relativeToGround + 7.457797,46.4368213,1 7.4575621,46.4367506,1 + + + + Köpflisbergstrasse + #style-Unclassified + + relativeToGround + 7.4579366,46.4368633,1 7.457797,46.4368213,1 + + + + Köpflisbergstrasse + #style-Unclassified + + relativeToGround + 7.4606355,46.4376757,1 7.4579366,46.4368633,1 + + + + Alte Strasse + #style-Unclassified + + relativeToGround + 7.5778754,46.4954761,1 7.5779939,46.49555,1 + + + + Lischenstrasse + #style-Unclassified + + relativeToGround + 7.5778518,46.4959324,1 7.5777961,46.4960149,1 7.5778017,46.4962336,1 7.5779563,46.4963871,1 7.5783668,46.4966863,1 7.5788599,46.4970856,1 7.5788853,46.4971104,1 + + + + Margeliweg + #style-Unclassified + + relativeToGround + 7.5665136,46.4924594,1 7.5665266,46.4925761,1 7.5667785,46.4927724,1 7.5669022,46.4932502,1 7.566879,46.4935537,1 7.5670434,46.4938744,1 7.5672909,46.4940688,1 7.5678329,46.4948354,1 7.5681231,46.4949172,1 7.5682468,46.4954237,1 7.5687843,46.4960333,1 7.569229,46.4964059,1 7.5693856,46.4964512,1 7.5696317,46.496726,1 7.5697815,46.4969634,1 7.5699588,46.4971615,1 7.5702091,46.4972483,1 7.5702308,46.4974098,1 + + + + Schmittengraben + #style-Unclassified + + relativeToGround + 7.5663814,46.4923822,1 7.5664566,46.49243,1 + + + + #style-Unclassified + + relativeToGround + 7.5648105,46.4927291,1 7.5650265,46.4920778,1 7.5647011,46.4919159,1 7.5645316,46.4919494,1 7.5646492,46.4920872,1 + + + + #style-Unclassified + + relativeToGround + 7.5724996,46.4938582,1 7.5721087,46.4928193,1 7.5718566,46.492604,1 7.5717708,46.4916012,1 7.5715854,46.4913815,1 7.5705649,46.4909123,1 + + + + + Pedestrian + + + Schulgässli + #style-Pedestrian + + relativeToGround + 7.5605367,46.492528,1 7.5595144,46.4930964,1 + + + + Kronenplatz + #style-Pedestrian + + relativeToGround + 7.4425957,46.4564794,1 7.4425442,46.4567004,1 7.4424533,46.457099,1 + + + + #style-Pedestrian + + relativeToGround + 7.5598352,46.4920944,1 7.5587375,46.4925106,1 + + + + + Service + + + Gartenweg + #style-Service + + relativeToGround + 7.5643603,46.4953787,1 7.5650953,46.4963004,1 + + + + Fitzerweg + #style-Service + + relativeToGround + 7.5575266,46.4853598,1 7.5577103,46.485572,1 7.5583125,46.4854727,1 7.5585068,46.4854474,1 7.5590842,46.4856691,1 7.5593687,46.4856356,1 7.5591302,46.4852633,1 + + + + Walehältiweg + #style-Service + + relativeToGround + 7.559232,46.4796016,1 7.5586532,46.4793161,1 7.5582045,46.4789538,1 7.557758,46.4790122,1 7.5577696,46.4790842,1 + + + + #style-Service + + relativeToGround + 7.566314,46.4972084,1 7.5666254,46.4971783,1 + + + + #style-Service + + relativeToGround + 7.5676532,46.4982767,1 7.5669653,46.497796,1 7.566752,46.4977228,1 + + + + #style-Service + + relativeToGround + 7.5555284,46.4878909,1 7.5553714,46.4877889,1 + + + + #style-Service + + relativeToGround + 7.5609767,46.4931868,1 7.5609149,46.493261,1 + + + + #style-Service + + relativeToGround + 7.4794227,46.5658312,1 7.4790691,46.5656171,1 7.4789409,46.56562,1 + + + + #style-Service + + relativeToGround + 7.4562979,46.441431,1 7.456496,46.4414858,1 7.456975,46.44131,1 + + + + #style-Service + + relativeToGround + 7.5028378,46.5395826,1 7.503522,46.5419711,1 + + + + #style-Service + + relativeToGround + 7.574028,46.5050557,1 7.574161,46.5050942,1 7.5740709,46.5051857,1 7.5739397,46.5051162,1 7.574028,46.5050557,1 + + + + #style-Service + + relativeToGround + 7.4438332,46.4578509,1 7.4443253,46.4578916,1 7.444375,46.45771,1 7.4444111,46.4575848,1 7.4444794,46.4574163,1 + + + + #style-Service + + relativeToGround + 7.5798959,46.4994904,1 7.580177,46.499669,1 7.580039,46.499962,1 7.580111,46.50019,1 7.5802269,46.5002556,1 + + + + #style-Service + + relativeToGround + 7.5796209,46.5015556,1 7.5800453,46.5016055,1 + + + + #style-Service + + relativeToGround + 7.577957,46.493648,1 7.578012,46.493478,1 7.578502,46.492951,1 7.5788628,46.4927947,1 7.5789815,46.4928026,1 + + + + #style-Service + + relativeToGround + 7.5823413,46.514709,1 7.5826838,46.5145655,1 7.582687,46.5143769,1 7.582609,46.514204,1 7.581843,46.513665,1 7.5816472,46.5136336,1 7.5810861,46.5130171,1 7.5802506,46.512384,1 + + + + #style-Service + + relativeToGround + 7.581843,46.513665,1 7.5821177,46.5135156,1 7.582334,46.513319,1 7.582116,46.512569,1 7.581709,46.511981,1 7.5811311,46.5115993,1 7.5809768,46.5114974,1 + + + + #style-Service + + relativeToGround + 7.5840532,46.5197587,1 7.5841373,46.5198684,1 + + + + #style-Service + + relativeToGround + 7.4760571,46.4270912,1 7.4761172,46.426896,1 7.4759369,46.4265765,1 7.476203,46.426446,1 + + + + Krummenbach + #style-Service + + relativeToGround + 7.4391746,46.4521405,1 7.4397148,46.4520287,1 7.440477,46.4520745,1 7.4409061,46.4521561,1 + + + + Krummenbach + #style-Service + + relativeToGround + 7.440477,46.4520745,1 7.440551,46.4518706,1 + + + + Krummenbach + #style-Service + + relativeToGround + 7.4409061,46.4521561,1 7.4416534,46.4523294,1 + + + + #style-Service + + relativeToGround + 7.4355302,46.454095,1 7.436013,46.4543413,1 + + + + #style-Service + + relativeToGround + 7.4461285,46.4588623,1 7.4465356,46.4580981,1 + + + + #style-Service + + relativeToGround + 7.4358702,46.4539509,1 7.4359997,46.4540404,1 + + + + #style-Service + + relativeToGround + 7.5789815,46.4928026,1 7.5790734,46.4928471,1 + + + + #style-Service + + relativeToGround + 7.5919641,46.4868266,1 7.592117,46.4869065,1 + + + + #style-Service + + relativeToGround + 7.6059609,46.5289507,1 7.6056635,46.5289968,1 + + + + #style-Service + + relativeToGround + 7.592703,46.526096,1 7.593466,46.525483,1 7.5930735,46.5248648,1 + + + + #style-Service + + relativeToGround + 7.592178,46.5287971,1 7.5922406,46.5288691,1 7.5923247,46.529017,1 7.5923721,46.5291939,1 7.5923976,46.5293461,1 + + + + #style-Service + + relativeToGround + 7.578854,46.5249327,1 7.5785473,46.524736,1 + + + + #style-Service + + relativeToGround + 7.5615433,46.5277193,1 7.561374,46.5277584,1 + + + + #style-Service + + relativeToGround + 7.5771625,46.5297081,1 7.5757467,46.5295395,1 + + + + Hahnenmoosstrasse + #style-Service + + relativeToGround + 7.5132733,46.4572948,1 7.5133883,46.4573978,1 7.5132933,46.4574818,1 7.5130673,46.4573498,1 7.5126303,46.4572888,1 7.5118483,46.4574828,1 7.5101523,46.4576848,1 7.5095283,46.4576228,1 7.5085313,46.4572698,1 7.5080333,46.4572118,1 7.5069933,46.4572868,1 7.5061813,46.4572468,1 7.5057723,46.4574628,1 7.5058393,46.4578288,1 7.5087808,46.4574575,1 7.5031103,46.4577448,1 7.5030413,46.4578388,1 7.5034833,46.4581518,1 7.5034483,46.4582518,1 7.5024893,46.4581448,1 7.5003853,46.4569498,1 7.5003883,46.4567438,1 7.5005073,46.4565828,1 7.5007043,46.4565128,1 7.5007173,46.4564108,1 7.4998403,46.4561428,1 7.4992083,46.4558578,1 7.4989973,46.4558668,1 7.4982906,46.4562011,1 7.4978551,46.455962,1 7.4974551,46.455427,1 7.4968953,46.4543278,1 7.4966573,46.4542338,1 7.4961843,46.4543818,1 7.4960133,46.4543198,1 7.4959533,46.4541388,1 7.4965103,46.4536988,1 7.4964933,46.4536218,1 7.4953603,46.4533988,1 7.494721,46.453113,1 7.494109,46.453374,1 7.493658,46.453437,1 7.492815,46.453277,1 7.4922764,46.4533365,1 7.49174,46.4534252,1 7.4912679,46.453477,1 7.4910962,46.4533809,1 7.4906778,46.453307,1 7.489497,46.453256,1 7.488978,46.45327,1 7.487949,46.453519,1 7.486012,46.453411,1 7.483716,46.45287,1 7.482943,46.452812,1 7.482147,46.452909,1 7.4814,46.453269,1 7.481139,46.453269,1 7.480528,46.453029,1 7.479955,46.452984,1 7.4796057,46.4531296,1 7.479434,46.4531739,1 7.4792896,46.45308,1 7.4792194,46.4529744,1 7.4790478,46.4528931,1 7.478841,46.453033,1 7.47874,46.453293,1 7.477474,46.453309,1 7.476344,46.453107,1 7.475372,46.453488,1 7.474272,46.453536,1 7.473791,46.453454,1 7.472928,46.452962,1 7.472723,46.452998,1 7.472366,46.453213,1 7.4716234,46.4532996,1 7.4712372,46.453307,1 7.4709689,46.4532922,1 7.4707544,46.4533439,1 7.4705183,46.4533144,1 7.4703038,46.4532183,1 + + + + #style-Service + + relativeToGround + 7.5751846,46.4916084,1 7.5749365,46.491503,1 7.5747446,46.4914272,1 + + + + #style-Service + + relativeToGround + 7.5769663,46.4921038,1 7.576441,46.491776,1 7.576364,46.491621,1 7.576362,46.491427,1 7.5763871,46.4912304,1 7.5763182,46.4911237,1 + + + + #style-Service + + relativeToGround + 7.5795925,46.490413,1 7.5794074,46.4902555,1 + + + + #style-Service + + relativeToGround + 7.5734897,46.4935177,1 7.573538,46.4934839,1 7.5735483,46.493418,1 7.573556,46.4933099,1 7.5735755,46.4932551,1 7.573676,46.4931932,1 7.5738286,46.4931243,1 7.5739371,46.4931082,1 7.574012,46.493094,1 7.5741504,46.4930548,1 7.5742015,46.4930235,1 7.5742826,46.4928928,1 7.574376,46.492803,1 7.574421,46.492763,1 7.574598,46.492717,1 7.574774,46.492685,1 7.5749459,46.492669,1 7.5751353,46.4926314,1 + + + + #style-Service + + relativeToGround + 7.574376,46.492803,1 7.5746354,46.4929073,1 7.5748091,46.4930498,1 7.5749942,46.4932398,1 7.5752138,46.4933824,1 7.5754645,46.4934693,1 7.5757087,46.4935283,1 7.5761725,46.4935343,1 7.5763535,46.4935589,1 7.5764212,46.4936211,1 7.576495,46.493829,1 7.576602,46.494096,1 7.576795,46.494181,1 7.5770454,46.4942655,1 + + + + #style-Service + + relativeToGround + 7.5849078,46.5347552,1 7.5849885,46.5347378,1 7.585183,46.534753,1 7.5855229,46.5347513,1 7.5856717,46.5347707,1 7.585943,46.5348464,1 7.586016,46.5348314,1 7.58602,46.5347903,1 7.5858345,46.5346537,1 7.5856432,46.5344437,1 7.5856581,46.5344076,1 7.5857148,46.5344078,1 7.5859478,46.5345439,1 7.5861633,46.5345952,1 7.586366,46.5346123,1 7.586484,46.534542,1 7.5866893,46.5343725,1 + + + + #style-Service + + relativeToGround + 7.587059,46.5342825,1 7.587135,46.534398,1 7.5871929,46.5344569,1 7.5873657,46.5345937,1 7.587636,46.534746,1 7.5878421,46.5348345,1 + + + + Falkiweg + #style-Service + + relativeToGround + 7.561747,46.4840627,1 7.5623648,46.4840221,1 7.5624662,46.4841424,1 7.562591,46.4842295,1 7.5630513,46.4842235,1 7.5633106,46.4842166,1 7.5634827,46.4841367,1 + + + + #style-Service + + relativeToGround + 7.5623769,46.4854461,1 7.5622912,46.4855938,1 7.5622704,46.4860729,1 7.5621787,46.4861073,1 7.5619413,46.4860499,1 7.5615122,46.4859008,1 7.5611623,46.4859065,1 7.5609581,46.485938,1 7.5608373,46.4860184,1 + + + + #style-Service + + relativeToGround + 7.5622704,46.4860729,1 7.5623863,46.4862233,1 7.5624681,46.4863847,1 + + + + #style-Service + + relativeToGround + 7.5556026,46.4788917,1 7.5555477,46.479214,1 7.5556151,46.4795353,1 7.5556149,46.4801761,1 7.5556517,46.4804555,1 7.5557955,46.4808898,1 7.5558411,46.4812561,1 7.5558839,46.4816013,1 + + + + #style-Service + + relativeToGround + 7.5548512,46.4833925,1 7.5550889,46.4838028,1 7.5552822,46.4840196,1 7.5554987,46.4843666,1 7.5556369,46.4845961,1 + + + + #style-Service + + relativeToGround + 7.5601552,46.4830974,1 7.560116,46.4826468,1 7.5614957,46.4825944,1 + + + + Falkiweg + #style-Service + + relativeToGround + 7.5630513,46.4842235,1 7.5630409,46.4844811,1 7.5628733,46.4846662,1 + + + + Birkenweg + #style-Service + + relativeToGround + 7.560472,46.4841615,1 7.5604406,46.4845196,1 7.5602381,46.4846229,1 7.5596029,46.4846037,1 + + + + Birkenweg + #style-Service + + relativeToGround + 7.5610374,46.4841326,1 7.5611142,46.4843658,1 + + + + Brunniweg + #style-Service + + relativeToGround + 7.5567689,46.4813658,1 7.5568027,46.4816531,1 7.5569895,46.4818235,1 + + + + #style-Service + + relativeToGround + 7.5566823,46.4811255,1 7.5567689,46.4813658,1 + + + + Egghausweg + #style-Service + + relativeToGround + 7.562353,46.4820061,1 7.5622413,46.4825617,1 7.5614957,46.4825944,1 + + + + #style-Service + + relativeToGround + 7.5783668,46.4966863,1 7.5779866,46.4968608,1 + + + + #style-Service + + relativeToGround + 7.5788599,46.4970856,1 7.578559,46.497615,1 7.5784905,46.4976816,1 + + + + #style-Service + + relativeToGround + 7.5804891,46.4976849,1 7.5804732,46.4976377,1 7.580323,46.4974715,1 7.580186,46.4973576,1 7.580208,46.4972438,1 7.5802253,46.4971513,1 7.5802103,46.4970622,1 7.5801714,46.4970016,1 + + + + #style-Service + + relativeToGround + 7.580573,46.518538,1 7.580476,46.5182,1 7.580281,46.517923,1 7.580272,46.517884,1 7.5803133,46.5178587,1 7.580384,46.517862,1 7.580533,46.518081,1 7.580644,46.518193,1 7.580787,46.518268,1 7.580881,46.518395,1 7.581021,46.518517,1 7.581108,46.518651,1 7.581235,46.518762,1 7.581369,46.519014,1 7.5815,46.519189,1 7.581947,46.519404,1 7.582104,46.519512,1 7.582187,46.519603,1 7.582507,46.519782,1 7.58259,46.519851,1 7.582661,46.5198661,1 7.5827033,46.5198324,1 7.582691,46.5197745,1 7.582629,46.519707,1 7.582365,46.519429,1 7.5823268,46.5191792,1 + + + + #style-Service + + relativeToGround + 7.5532166,46.4856797,1 7.553475,46.485585,1 7.553817,46.485256,1 7.553812,46.485215,1 7.5536868,46.4849435,1 + + + + #style-Service + + relativeToGround + 7.5615007,46.4706892,1 7.5613997,46.470631,1 7.5607353,46.4711441,1 7.560183,46.471455,1 7.5601093,46.4714637,1 7.560081,46.4714134,1 7.5602488,46.4711103,1 7.5603802,46.4708687,1 7.5608448,46.4705818,1 7.5616215,46.4698555,1 7.5617283,46.4695452,1 7.5616912,46.4694069,1 7.5616128,46.4693072,1 7.5614945,46.469236,1 7.5613456,46.469107,1 7.5613033,46.4689269,1 7.5615058,46.4686482,1 7.5616043,46.468364,1 7.5615151,46.4679643,1 7.5616194,46.4674144,1 7.5614199,46.4671432,1 7.5613818,46.4669685,1 7.5615864,46.4665648,1 7.5615864,46.4661599,1 7.5616687,46.4659865,1 7.5616526,46.4658976,1 7.5615269,46.4658976,1 7.5615024,46.4659185,1 7.5614258,46.4660844,1 7.560844,46.466777,1 7.5606614,46.4668815,1 7.5604401,46.4670332,1 7.56013,46.4673879,1 7.559733,46.467773,1 7.55952,46.4679289,1 7.5594277,46.467948,1 7.5593446,46.4678938,1 7.559371,46.467807,1 7.5596978,46.4670772,1 7.5597256,46.4668715,1 7.559637,46.466644,1 7.5596008,46.4663719,1 7.5595604,46.4659766,1 7.5594765,46.4656802,1 7.5595737,46.465423,1 7.559713,46.465291,1 7.5598281,46.4651508,1 7.559757,46.464943,1 7.559711,46.464879,1 7.5595499,46.4645658,1 7.5594913,46.4644275,1 7.559382,46.464309,1 7.559302,46.4642619,1 7.559013,46.464152,1 7.5589202,46.4640915,1 7.5588007,46.4639848,1 7.558761,46.463881,1 7.5586757,46.4636012,1 7.558588,46.4634941,1 7.55817,46.463211,1 7.5578807,46.4630595,1 7.5575283,46.4628252,1 7.5573015,46.4626567,1 7.5571541,46.4625209,1 7.5570332,46.4624804,1 7.5569236,46.4625235,1 7.5568688,46.4626006,1 7.5569142,46.4628709,1 7.5567834,46.4630751,1 7.5567486,46.463256,1 7.5567563,46.4635207,1 7.5567409,46.4637356,1 7.556819,46.464071,1 7.556927,46.46428,1 7.5569515,46.464646,1 7.5569489,46.4648344,1 7.5570969,46.4651071,1 7.557132,46.465248,1 7.5571481,46.4654357,1 7.5571032,46.4656238,1 7.556845,46.4661,1 7.556808,46.466241,1 7.556705,46.466662,1 7.5566013,46.4668594,1 7.556422,46.4670092,1 7.556133,46.4671663,1 7.555967,46.467302,1 7.555582,46.46755,1 7.5553411,46.4676536,1 7.555261,46.4676825,1 7.555232,46.467693,1 7.55507,46.467698,1 7.555064,46.467579,1 7.555189,46.467454,1 7.555266,46.467329,1 7.555253,46.467204,1 7.555198,46.46708,1 7.555171,46.46692,1 7.5551885,46.4667743,1 7.555143,46.466618,1 7.555043,46.466467,1 7.554902,46.46618,1 7.5547665,46.4659837,1 7.5546718,46.4658163,1 7.554613,46.465756,1 7.554335,46.465537,1 7.553879,46.46527,1 7.55364,46.465173,1 7.553503,46.465092,1 7.553265,46.464872,1 7.553112,46.464693,1 7.553025,46.464559,1 7.552984,46.464428,1 7.552966,46.464301,1 7.553023,46.464129,1 7.553046,46.463964,1 7.55301,46.463811,1 7.552957,46.463687,1 7.552835,46.46356,1 7.552786,46.463439,1 7.552644,46.462916,1 7.552526,46.462782,1 7.552398,46.462681,1 7.552202,46.462578,1 7.552022,46.462506,1 7.551384,46.462183,1 7.551265,46.46208,1 7.550822,46.461898,1 7.550655,46.461816,1 7.5505555,46.461797,1 7.550536,46.461845,1 7.5506,46.461947,1 7.550775,46.462053,1 7.550877,46.462166,1 7.550961,46.462315,1 7.551074,46.462481,1 7.551251,46.462677,1 7.551333,46.462809,1 7.551424,46.463083,1 7.55148,46.463166,1 7.5514055,46.4633987,1 7.5513305,46.4635485,1 7.551122,46.463773,1 + + + + #style-Service + + relativeToGround + 7.5601093,46.4714637,1 7.5595884,46.4717158,1 7.559275,46.47182,1 7.5589672,46.4720202,1 7.5584806,46.4723453,1 7.5581622,46.4724206,1 7.55787,46.472668,1 7.5575608,46.4728455,1 7.55748,46.472929,1 7.557326,46.473397,1 7.557232,46.473534,1 7.557135,46.473651,1 7.556988,46.473764,1 7.5568899,46.4738759,1 7.556803,46.4740459,1 7.556738,46.474206,1 7.5567085,46.4744798,1 7.5567473,46.4745861,1 7.556734,46.474669,1 7.5566457,46.4748183,1 + + + + #style-Service + + relativeToGround + 7.552982,46.478716,1 7.553269,46.477763,1 7.5534638,46.4774581,1 7.5535454,46.4773304,1 + + + + #style-Service + + relativeToGround + 7.4714196,46.4524422,1 7.4714839,46.4523756,1 7.4714947,46.4522943,1 7.4714517,46.4522278,1 7.471441,46.4519617,1 7.4716556,46.4516365,1 7.4717951,46.4512964,1 7.4718916,46.4508529,1 7.472471,46.4500102,1 7.472825,46.449308,1 7.473222,46.4487684,1 7.4733722,46.4486501,1 7.4739087,46.4484061,1 7.4745953,46.4483027,1 7.4755072,46.4481696,1 7.4758828,46.4480291,1 7.4760008,46.447933,1 7.4758077,46.4478222,1 7.4754751,46.4477556,1 7.4751532,46.4476817,1 7.4750459,46.447593,1 7.4750996,46.4475412,1 7.4751425,46.4474895,1 7.4754429,46.4474969,1 7.4758291,46.4475486,1 7.4762046,46.4475043,1 7.4766016,46.4474082,1 7.4769986,46.4473638,1 7.477299,46.4472751,1 7.477535,46.4471864,1 7.4776208,46.4469942,1 7.4776208,46.4468611,1 7.4776745,46.4466763,1 7.4779105,46.4465507,1 7.4781358,46.4465285,1 7.4782967,46.4465359,1 7.4785113,46.4464989,1 7.4786079,46.4463954,1 7.4785972,46.446255,1 7.4785113,46.446011,1 7.4784791,46.4457966,1 7.4783718,46.4455748,1 7.4783397,46.4452274,1 7.4785972,46.4445473,1 7.4788546,46.444015,1 7.4792409,46.4433053,1 7.4794233,46.443187,1 7.4797773,46.4429578,1 7.4803352,46.4426547,1 7.4806893,46.4423663,1 7.4811077,46.4422259,1 7.481569,46.4420337,1 7.4818587,46.4419893,1 7.4825346,46.4418858,1 7.4835753,46.4416936,1 7.4840367,46.441627,1 7.4842401,46.44165,1 7.4841654,46.4418562,1 7.4838543,46.4422554,1 7.4837899,46.4425512,1 7.483629,46.4430021,1 7.4835861,46.44332,1 7.4836826,46.4435566,1 7.4838436,46.4436158,1 7.4840152,46.4435418,1 7.4840796,46.4434679,1 7.4843264,46.4433718,1 7.4845302,46.4433718,1 7.4863434,46.4436084,1 7.4868691,46.4436823,1 7.4872124,46.4436971,1 7.487427,46.4436453,1 7.4875128,46.4435566,1 7.487545,46.4434975,1 7.4877703,46.4432757,1 7.4879634,46.4432535,1 7.48806,46.4432831,1 7.488178,46.4437045,1 7.4881029,46.4441333,1 7.4880493,46.4444216,1 7.4881887,46.4446286,1 7.4883282,46.4447173,1 7.4884845,46.4446966,1 7.4886072,46.4446803,1 7.4886823,46.4446064,1 7.4891972,46.4443329,1 7.4898732,46.444148,1 7.4904954,46.4440593,1 7.4909568,46.4440889,1 7.4914288,46.4441111,1 7.4917722,46.4440741,1 7.4921048,46.4440889,1 7.4923622,46.4441702,1 7.4928021,46.4442072,1 7.4933922,46.444222,1 7.4938009,46.4443235,1 7.4940467,46.4443846,1 7.4945187,46.4444733,1 7.494787,46.4444585,1 + + + + #style-Service + + relativeToGround + 7.4938009,46.4443235,1 7.4948406,46.4440224,1 + + + + #style-Service + + relativeToGround + 7.5134953,46.4566158,1 7.5133908,46.4565887,1 7.513144,46.4564409,1 7.5130367,46.4562857,1 7.5130474,46.4560714,1 7.5129509,46.4559753,1 7.5124574,46.4556575,1 7.5121891,46.4554875,1 7.5120282,46.4554431,1 7.5115025,46.4553766,1 7.5107515,46.4552509,1 7.5101292,46.4549109,1 7.5096357,46.4545192,1 7.5092709,46.4540831,1 7.5091743,46.4537948,1 7.5093889,46.4534992,1 7.5097215,46.4531665,1 7.5098181,46.4527452,1 7.5101936,46.4521243,1 7.5107622,46.4518434,1 7.5111484,46.4515995,1 7.5112879,46.4512447,1 7.5114596,46.4508234,1 7.5114167,46.4506312,1 7.5113201,46.450439,1 7.5110626,46.4502394,1 7.5107837,46.4502837,1 7.5105369,46.4504981,1 7.510215,46.4506903,1 7.5098824,46.4507273,1 7.5095928,46.4506016,1 7.5090349,46.4503503,1 7.5086057,46.4502098,1 7.5082195,46.4501803,1 7.507962,46.450269,1 7.5075757,46.4503429,1 7.5073182,46.4503207,1 7.5068247,46.4503503,1 7.5066638,46.4502985,1 7.5064472,46.4502726,1 7.5063185,46.4501986,1 7.5061253,46.4500952,1 7.5059751,46.4499621,1 7.5058571,46.4498438,1 7.5055674,46.4495408,1 7.5053529,46.4493633,1 7.5051168,46.4493338,1 7.5049023,46.4492672,1 7.5047091,46.4492081,1 7.504398,46.4491785,1 7.5041727,46.4492155,1 7.5037543,46.4492599,1 7.5035075,46.4491416,1 7.5034002,46.4490233,1 7.5033466,46.448905,1 7.5032929,46.4487794,1 7.5032071,46.448395,1 7.50325,46.4480771,1 7.5034324,46.4477001,1 7.5035612,46.4474931,1 7.5036041,46.4473896,1 7.5035826,46.4472787,1 7.5035182,46.4472639,1 7.5034002,46.4472492,1 7.5033359,46.4471752,1 7.5033359,46.4470865,1 7.5033788,46.4470126,1 7.5034217,46.4469461,1 7.5035397,46.4469609,1 7.5037006,46.4470126,1 7.5037757,46.4469756,1 7.5038508,46.4468278,1 7.5038723,46.4466873,1 7.5037757,46.4465543,1 7.5037757,46.4464582,1 7.5037543,46.4463621,1 7.5037972,46.4462586,1 7.504001,46.4461994,1 7.5043122,46.4461477,1 7.5045804,46.4462068,1 7.5048915,46.4462881,1 7.5050847,46.4463177,1 7.50531,46.4462807,1 7.5054602,46.446229,1 7.5055996,46.4462881,1 7.5057069,46.4464434,1 7.5057713,46.4466504,1 7.5057713,46.4468869,1 7.5055996,46.4470717,1 + + + + #style-Service + + relativeToGround + 7.5346943,46.4673158,1 7.5349879,46.4672014,1 7.5352239,46.4672753,1 7.5352454,46.4675413,1 7.5350737,46.4678812,1 7.5349665,46.4680881,1 7.5350523,46.4683246,1 7.5352454,46.4685759,1 7.5356746,46.4688862,1 7.5363827,46.4692409,1 7.5369191,46.4694921,1 7.5374341,46.4696252,1 7.5378632,46.4696547,1 7.5380993,46.4696252,1 7.5383353,46.469433,1 7.5383782,46.4692261,1 7.5380564,46.468295,1 7.5380993,46.4679847,1 7.5384211,46.4675856,1 7.5388718,46.4671718,1 7.5389039,46.4670462,1 7.5388503,46.466928,1 7.5386786,46.4667506,1 7.5384641,46.4663146,1 7.5384426,46.4659156,1 7.5382066,46.4653983,1 7.5380134,46.465014,1 7.5379491,46.4646741,1 7.5378847,46.4643637,1 7.5380564,46.4639794,1 7.538228,46.4636099,1 7.5383782,46.4634769,1 7.5384962,46.4634695,1 7.5385713,46.4635064,1 7.5385713,46.4636986,1 7.5383568,46.4640089,1 7.5384211,46.4642306,1 7.5385606,46.4644154,1 7.5385713,46.4647627,1 7.5386357,46.4649697,1 7.5392365,46.4656052,1 7.54076,46.467157,1 7.540878,46.4673122,1 7.5409531,46.4675856,1 7.5410819,46.4682433,1 7.5411999,46.4683837,1 7.5414038,46.4685906,1 7.5417256,46.4687236,1 7.5422406,46.4689749,1 7.5425625,46.4693591,1 7.542777,46.4697729,1 7.5427341,46.4699355,1 7.54282,46.4700981,1 7.5428843,46.4701941,1 7.5430345,46.4702311,1 7.5431204,46.4701498,1 7.5431311,46.4700463,1 7.5430775,46.4699207,1 7.5430775,46.4697729,1 7.5430775,46.4695586,1 7.5430238,46.4692409,1 7.5428951,46.4688419,1 7.542541,46.4683394,1 7.5424337,46.4679551,1 7.5423694,46.4674083,1 7.5423694,46.4669354,1 7.5421548,46.4666102,1 7.5417685,46.4663442,1 7.5415325,46.4660042,1 7.5414467,46.4657382,1 7.5415754,46.4652948,1 7.5417471,46.4648958,1 7.5421762,46.4642306,1 7.5424123,46.4639942,1 7.5425625,46.4636986,1 7.5425196,46.4634473,1 7.5424981,46.463196,1 7.5426698,46.46293,1 7.5429702,46.4626787,1 + + + + #style-Service + + relativeToGround + 7.5090349,46.4503503,1 7.5091616,46.4501765,1 7.5092153,46.4499695,1 7.5092904,46.4498586,1 7.5095586,46.4497551,1 7.5096873,46.449659,1 7.5098268,46.4495186,1 7.5099234,46.4493855,1 7.5100414,46.4492746,1 7.5102881,46.4492599,1 7.510374,46.4491933,1 7.5104705,46.4490677,1 7.5107495,46.4489124,1 7.5110177,46.4488976,1 7.5112752,46.4488829,1 7.5115112,46.4488755,1 7.5117258,46.4488976,1 7.5119618,46.4489716,1 7.512273,46.448979,1 7.5126163,46.4491046,1 7.5127772,46.4492672,1 7.5129274,46.4493929,1 7.5131098,46.4494964,1 7.5130991,46.4496295,1 7.5130669,46.4497699,1 7.5131527,46.4499325,1 7.5134424,46.450036,1 7.5136033,46.4501543,1 7.5137321,46.4503243,1 7.5138608,46.4505091,1 + + + + #style-Service + + relativeToGround + 7.5675205,46.4896429,1 7.5675839,46.4901911,1 + + + + #style-Service + + relativeToGround + 7.5613927,46.5267583,1 7.5616121,46.5269084,1 + + + + #style-Service + + relativeToGround + 7.5789126,46.5017241,1 7.5785017,46.5014825,1 + + + + #style-Service + + relativeToGround + 7.5789309,46.500105,1 7.5788346,46.4997917,1 + + + + #style-Service + + relativeToGround + 7.5791699,46.4928879,1 7.5790734,46.4928471,1 + + + + #style-Service + + relativeToGround + 7.5789309,46.500105,1 7.5786124,46.5000666,1 + + + + #style-Service + + relativeToGround + 7.5844175,46.5180817,1 7.5843919,46.5179006,1 7.5842967,46.5176599,1 7.584072,46.5172756,1 7.583998,46.516732,1 + + + + #style-Service + + relativeToGround + 7.5747518,46.4923365,1 7.5747561,46.4922525,1 7.5748319,46.4921223,1 7.5748181,46.4918,1 7.574828,46.4916949,1 7.574893,46.4916664,1 7.5750862,46.4916562,1 7.5751846,46.4916084,1 7.5752826,46.491563,1 + + + + #style-Service + + relativeToGround + 7.5856684,46.5185937,1 7.585732,46.518904,1 7.585997,46.519247,1 7.5863,46.519441,1 7.5866689,46.5195382,1 7.586981,46.519691,1 7.587645,46.520291,1 7.587742,46.520478,1 7.5876898,46.5205699,1 7.58757,46.5206516,1 7.587464,46.5207519,1 7.587397,46.520905,1 + + + + #style-Service + + relativeToGround + 7.5871749,46.5189125,1 7.5864254,46.5189694,1 7.5859396,46.5188548,1 7.5856684,46.5185937,1 7.5852648,46.5183663,1 7.5851079,46.5182339,1 7.5848608,46.5181009,1 7.5844175,46.5180817,1 7.5841229,46.5179971,1 7.5839457,46.5179174,1 7.5837708,46.5177703,1 7.5837251,46.5176286,1 7.5836592,46.5174623,1 + + + + #style-Service + + relativeToGround + 7.5802588,46.5160395,1 7.5805381,46.5164442,1 7.5811876,46.5165553,1 7.5812782,46.5165868,1 7.5820222,46.5167732,1 7.5823119,46.5170409,1 7.5823387,46.5174783,1 7.5824085,46.5176703,1 7.5828028,46.5180929,1 7.5833177,46.5182535,1 7.5835431,46.5183753,1 7.5837979,46.5183661,1 7.5840124,46.5183144,1 7.5834867,46.5181206,1 7.5833553,46.5179767,1 7.583358,46.517626,1 7.5834867,46.5174323,1 7.5836592,46.5174623,1 + + + + #style-Service + + relativeToGround + 7.6025022,46.5497569,1 7.6020138,46.5498841,1 + + + + #style-Service + + relativeToGround + 7.6122192,46.5585079,1 7.6125202,46.5582846,1 7.6125382,46.5581503,1 7.6124765,46.5580017,1 7.61231,46.557889,1 + + + + #style-Service + + relativeToGround + 7.5875485,46.5190239,1 7.5871749,46.5189125,1 + + + + #style-Service + + relativeToGround + 7.5620419,46.4912371,1 7.5627963,46.4915881,1 + + + + #style-Service + + relativeToGround + 7.5853231,46.5118698,1 7.5867416,46.5114409,1 + + + + #style-Service + + relativeToGround + 7.5808419,46.5032417,1 7.5806755,46.503651,1 7.5807632,46.5038849,1 + + + + #style-Service + + relativeToGround + 7.5833344,46.5060923,1 7.5829935,46.505959,1 7.582733,46.50693,1 + + + + #style-Service + + relativeToGround + 7.5619716,46.4909369,1 7.562116,46.4908836,1 7.5624485,46.4911228,1 + + + + #style-Service + + relativeToGround + 7.5845033,46.511303,1 7.5847716,46.5113253,1 7.5849493,46.5116193,1 + + + + #style-Service + + relativeToGround + 7.5925689,46.5257627,1 7.592703,46.526096,1 7.5926549,46.5263226,1 + + + + #style-Service + + relativeToGround + 7.5823956,46.5048989,1 7.5822898,46.5036369,1 7.5815068,46.5029364,1 + + + + #style-Service + + relativeToGround + 7.5890023,46.5205153,1 7.5884929,46.5201995,1 7.5883311,46.5199786,1 7.5882242,46.5196358,1 7.5875485,46.5190239,1 + + + + #style-Service + + relativeToGround + 7.5709768,46.4961208,1 7.5710612,46.4963304,1 7.5713268,46.4965265,1 7.5716017,46.497285,1 7.5720307,46.4977428,1 + + + + #style-Service + + relativeToGround + 7.588105,46.4862347,1 7.5882589,46.4861244,1 + + + + Brunniweg + #style-Service + + relativeToGround + 7.5583492,46.4819039,1 7.55795,46.481785,1 7.5573748,46.4816562,1 7.5568027,46.4816531,1 + + + + Fuhrenstrasse + #style-Service + + relativeToGround + 7.5535228,46.4865284,1 7.5540973,46.4860504,1 7.5553724,46.4858594,1 7.5555516,46.4857964,1 7.555751,46.4857822,1 7.5561161,46.4856628,1 7.5561553,46.4856415,1 + + + + Rörliweg + #style-Service + + relativeToGround + 7.5666203,46.4846783,1 7.5665448,46.4847291,1 7.5656341,46.4848814,1 7.5658042,46.4853983,1 + + + + #style-Service + + relativeToGround + 7.5589982,46.4817042,1 7.5590716,46.4818306,1 + + + + #style-Service + + relativeToGround + 7.566311,46.4842938,1 7.5661292,46.484468,1 + + + + #style-Service + + relativeToGround + 7.5668295,46.4847669,1 7.5669459,46.4845543,1 7.566928,46.4842878,1 7.566311,46.4842938,1 7.5661779,46.4842949,1 + + + + #style-Service + + relativeToGround + 7.5616769,46.4873407,1 7.5618759,46.4873603,1 7.562336,46.4875068,1 7.5629211,46.4878619,1 7.5633173,46.488305,1 7.5638849,46.4885749,1 7.5651387,46.4893362,1 + + + + Strubelweg + #style-Service + + relativeToGround + 7.5561553,46.4856415,1 7.5560704,46.4854118,1 7.5559655,46.4852385,1 7.5558801,46.4850392,1 7.5558516,46.4849379,1 7.5556369,46.4845961,1 7.5557556,46.4835758,1 7.5556465,46.4832228,1 7.5556302,46.482438,1 7.5556902,46.4823253,1 7.5559629,46.481946,1 7.5559405,46.4817142,1 7.5558839,46.4816013,1 + + + + Lärcheweg + #style-Service + + relativeToGround + 7.5611634,46.4903397,1 7.5610451,46.4902373,1 + + + + #style-Service + + relativeToGround + 7.5737082,46.4907245,1 7.5735328,46.490616,1 7.5733673,46.4903853,1 7.5733062,46.4902442,1 7.5732825,46.4900712,1 7.5733348,46.4898921,1 7.5733339,46.4894668,1 7.5732422,46.4892976,1 7.5730973,46.4891714,1 7.5728372,46.4890235,1 7.5726529,46.489033,1 + + + + #style-Service + + relativeToGround + 7.5696679,46.4904828,1 7.5696337,46.4903928,1 7.5694953,46.4902536,1 7.5693484,46.4900982,1 7.5692716,46.489935,1 7.5692449,46.4897418,1 7.569231,46.4895346,1 7.5691648,46.4893786,1 7.5689467,46.4891493,1 7.5688378,46.4889221,1 7.5689846,46.4887416,1 7.5687855,46.4885286,1 7.5687156,46.4884763,1 7.5686163,46.4882459,1 7.5685316,46.4880573,1 7.5684612,46.487926,1 7.5683453,46.4878612,1 + + + + #style-Service + + relativeToGround + 7.5739091,46.4841923,1 7.5735123,46.4842222,1 + + + + #style-Service + + relativeToGround + 7.5707587,46.4883279,1 7.5714861,46.4882473,1 + + + + #style-Service + + relativeToGround + 7.5737649,46.4942215,1 7.5729909,46.4941247,1 7.5724996,46.4938582,1 + + + + #style-Service + + relativeToGround + 7.5686415,46.4865509,1 7.5685948,46.4864379,1 7.5685481,46.4863398,1 + + + + #style-Service + + relativeToGround + 7.5687156,46.4884763,1 7.5686259,46.4885828,1 7.5686407,46.4886975,1 7.5688378,46.4889221,1 + + + + #style-Service + + relativeToGround + 7.5601168,46.4909892,1 7.5595847,46.4906371,1 7.5594989,46.4906215,1 7.5593649,46.490633,1 + + + + #style-Service + + relativeToGround + 7.5708117,46.4883663,1 7.5710165,46.488705,1 7.5710179,46.4888509,1 7.5708758,46.4889223,1 7.5708124,46.4889286,1 7.5707761,46.4888902,1 + + + + #style-Service + + relativeToGround + 7.5740561,46.4844231,1 7.5739091,46.4841923,1 7.5738582,46.4838387,1 7.5738109,46.4836506,1 7.5736241,46.4835863,1 7.5733468,46.4835758,1 7.5730751,46.4834722,1 + + + + #style-Service + + relativeToGround + 7.5778322,46.4954612,1 7.5774594,46.4953694,1 7.57696,46.4953792,1 7.5765186,46.4953534,1 7.5761855,46.4952056,1 7.5756624,46.4951092,1 7.5748615,46.4951854,1 + + + + #style-Service + + relativeToGround + 7.568748,46.486657,1 7.5687618,46.4868008,1 7.5686633,46.4868728,1 7.5683637,46.4869243,1 7.5682553,46.4869895,1 7.5682593,46.4871482,1 7.5683489,46.4873599,1 7.5683539,46.4874461,1 + + + + + + Casings + + Motorway_Casing + + + + Motorway_Link_Casing + + + + Trunk_Casing + + + + Trunk_Link_Casing + + + + + + diff --git a/examples/kml.js b/examples/kml.js index 29236850c7..452e4d4853 100644 --- a/examples/kml.js +++ b/examples/kml.js @@ -3,25 +3,20 @@ goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); +goog.require('ol.source.BingMaps'); goog.require('ol.source.KML'); -goog.require('ol.source.TileWMS'); var raster = new ol.layer.Tile({ - source: new ol.source.TileWMS({ - url: 'http://vmap0.tiles.osgeo.org/wms/vmap0', - crossOrigin: null, - params: { - 'LAYERS': 'basic', - 'VERSION': '1.1.1', - 'FORMAT': 'image/jpeg' - } + source: new ol.source.BingMaps({ + imagerySet: 'Aerial', + key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3' }) }); var vector = new ol.layer.Vector({ source: new ol.source.KML({ - reprojectTo: 'EPSG:4326', - url: 'data/kml/lines.kml' + reprojectTo: 'EPSG:3857', + url: 'data/kml/2012-02-10.kml' }) }); @@ -30,9 +25,8 @@ var map = new ol.Map({ renderer: ol.RendererHint.CANVAS, target: 'map', view: new ol.View2D({ - projection: 'EPSG:4326', - center: [-112.169, 36.099], - zoom: 11 + center: [876970.8463461736, 5859807.853963373], + zoom: 10 }) }); From fd5924dd139f1c35360d07d786ec2ab70d0eb265 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:13:26 +0100 Subject: [PATCH 696/919] Add kml-earthquakes example --- examples/kml-earthquakes.html | 75 +++++++++++++++++++++++++++ examples/kml-earthquakes.js | 96 +++++++++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 examples/kml-earthquakes.html create mode 100644 examples/kml-earthquakes.js diff --git a/examples/kml-earthquakes.html b/examples/kml-earthquakes.html new file mode 100644 index 0000000000..754e2439f4 --- /dev/null +++ b/examples/kml-earthquakes.html @@ -0,0 +1,75 @@ + + + + + + + + + + + Earthquakes in KML + + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Earthquakes in KML

+

Demonstrates the use of a Shape symbolizer to render earthquake locations.

+
+

+ This example parses a KML file and renders the features as a vector layer. The layer is given a styleFunction that renders earthquake locations with a size relative to their magnitude. +

+

See the kml-earthquakes.js source to see how this is done.

+
+
KML, vector, style
+
+
+ +
+ + + + + + + + diff --git a/examples/kml-earthquakes.js b/examples/kml-earthquakes.js new file mode 100644 index 0000000000..5ace2b436c --- /dev/null +++ b/examples/kml-earthquakes.js @@ -0,0 +1,96 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.source.KML'); +goog.require('ol.source.Stamen'); +goog.require('ol.style.Circle'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); + + +var styleCache = {}; +var styleFunction = function(feature, resolution) { + // 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a + // standards-violating tag in each Placemark. We extract it from + // the Placemark's name instead. + var name = feature.get('name'); + var magnitude = parseFloat(name.substr(2)); + var radius = 5 + 20 * (magnitude - 5); + var style = styleCache[radius]; + if (!style) { + style = [new ol.style.Style({ + image: new ol.style.Circle({ + radius: radius, + fill: new ol.style.Fill({ + color: 'rgba(255, 153, 0, 0.4)' + }), + stroke: new ol.style.Stroke({ + color: 'rgba(255, 204, 0, 0.2)', + width: 1 + }) + }) + })]; + styleCache[radius] = style; + } + return style; +}; + +var vector = new ol.layer.Vector({ + source: new ol.source.KML({ + reprojectTo: 'EPSG:3857', + url: 'data/kml/2012_Earthquakes_Mag5.kml' + }), + styleFunction: styleFunction +}); + +var raster = new ol.layer.Tile({ + source: new ol.source.Stamen({ + layer: 'toner' + }) +}); + +var map = new ol.Map({ + layers: [raster, vector], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); + +var info = $('#info'); +info.tooltip({ + animation: false, + trigger: 'manual' +}); + +var displayFeatureInfo = function(evt) { + var pixel = map.getEventPixel(evt.originalEvent); + info.css({ + left: pixel[0] + 'px', + top: (pixel[1] - 15) + 'px' + }); + var feature = map.forEachFeatureAtPixel(pixel, function(feature, layer) { + return feature; + }); + if (feature) { + info.tooltip('hide') + .attr('data-original-title', feature.get('name')) + .tooltip('fixTitle') + .tooltip('show'); + } else { + info.tooltip('hide'); + } +}; + +$(map.getViewport()).on('mousemove', function(evt) { + displayFeatureInfo(evt); +}); + +map.on('singleclick', function(evt) { + displayFeatureInfo(evt); +}); From 33bf2b746f2e5c527e6f8f2923270984cf43aa63 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 19 Dec 2013 13:06:18 +0100 Subject: [PATCH 697/919] Add ol.format.KML#readName --- src/ol/format/kmlformat.js | 50 +++++++++++++++++++++++ test/spec/ol/format/kmlformat.test.js | 59 +++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index 3a2a269e40..2319cf4291 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -14,6 +14,7 @@ goog.require('goog.Uri'); goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.dom.NodeType'); +goog.require('goog.dom.xml'); goog.require('goog.math'); goog.require('goog.object'); goog.require('goog.string'); @@ -1343,6 +1344,55 @@ ol.format.KML.prototype.readFeaturesFromNode = function(node) { }; +/** + * @param {Document|Node|string} source Souce. + * @return {string|undefined} Name. + */ +ol.format.KML.prototype.readName = function(source) { + if (source instanceof Node) { + return this.readNameFromNode(source); + } else if (goog.isString(source)) { + var doc = goog.dom.xml.loadXml(source); + return this.readNameFromNode(doc); + } else { + goog.asserts.fail(); + return undefined; + } +}; + + +/** + * @param {Node} node Node. + * @return {string|undefined} Name. + */ +ol.format.KML.prototype.readNameFromNode = function(node) { + var n; + for (n = node.firstChild; !goog.isNull(n); n = n.nextSibling) { + if (n.nodeType == goog.dom.NodeType.ELEMENT && + goog.array.indexOf( + ol.format.KML.NAMESPACE_URIS_, n.namespaceURI) != -1 && + n.localName == 'name') { + return ol.format.KML.readString_(n); + } + } + for (n = node.firstChild; !goog.isNull(n); n = n.nextSibling) { + if (n.nodeType == goog.dom.NodeType.ELEMENT && + goog.array.indexOf( + ol.format.KML.NAMESPACE_URIS_, n.namespaceURI) != -1 && + (n.localName == 'Document' || + n.localName == 'Folder' || + n.localName == 'Placemark' || + n.localName == 'kml')) { + var name = this.readNameFromNode(n); + if (goog.isDef(name)) { + return name; + } + } + } + return undefined; +}; + + /** * @inheritDoc */ diff --git a/test/spec/ol/format/kmlformat.test.js b/test/spec/ol/format/kmlformat.test.js index ff4375216d..01a8bea472 100644 --- a/test/spec/ol/format/kmlformat.test.js +++ b/test/spec/ol/format/kmlformat.test.js @@ -1292,6 +1292,65 @@ describe('ol.format.KML', function() { }); + describe('#readName', function() { + + it('returns undefined if there is no name', function() { + var kml = + '' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ''; + expect(format.readName(kml)).to.be(undefined); + }); + + it('returns the name of the first Document', function() { + var kml = + '' + + ' ' + + ' Document name' + + ' ' + + ''; + expect(format.readName(kml)).to.be('Document name'); + }); + + it('returns the name of the first Folder', function() { + var kml = + '' + + ' ' + + ' Folder name' + + ' ' + + ''; + expect(format.readName(kml)).to.be('Folder name'); + }); + + it('returns the name of the first Placemark', function() { + var kml = + '' + + ' ' + + ' Placemark name' + + ' ' + + ''; + expect(format.readName(kml)).to.be('Placemark name'); + }); + + it('searches breadth-first', function() { + var kml = + '' + + ' ' + + ' ' + + ' Placemark name' + + ' ' + + ' Document name' + + ' ' + + ''; + expect(format.readName(kml)).to.be('Document name'); + }); + + }); + }); From 5c517cde190a276c67991044e13928eac68a3165 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:13:47 +0100 Subject: [PATCH 698/919] Add ol.interaction.DragAndDrop --- src/objectliterals.jsdoc | 13 ++ .../draganddropinteraction.exports | 1 + src/ol/interaction/draganddropinteraction.js | 202 ++++++++++++++++++ 3 files changed, 216 insertions(+) create mode 100644 src/ol/interaction/draganddropinteraction.exports create mode 100644 src/ol/interaction/draganddropinteraction.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 8db688424c..8c6ea96f23 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -274,6 +274,19 @@ * @todo stability experimental */ +/** + * @typedef {Object} olx.interaction.DragAndDropOptions + * @property {boolean|undefined} fitView Fit view. Default is `true`. + * @property {Array.|undefined} + * formatConstructors Format constructors. + * @property {ol.source.Vector|undefined} source Source. If this is defined + * then features will be added to this source. + * @property {ol.layer.Vector|undefined} layer Layer. If this is defined then + * features will be added to this layer's source. If neither `source` nor + * `layer` are defined then the dropped features will be added as a new + * layer. + */ + /** * @typedef {Object} olx.interaction.DragPanOptions * @property {ol.Kinetic|undefined} kinetic Kinetic inertia to apply to the pan. diff --git a/src/ol/interaction/draganddropinteraction.exports b/src/ol/interaction/draganddropinteraction.exports new file mode 100644 index 0000000000..50e9fef9e3 --- /dev/null +++ b/src/ol/interaction/draganddropinteraction.exports @@ -0,0 +1 @@ +@exportSymbol ol.interaction.DragAndDrop diff --git a/src/ol/interaction/draganddropinteraction.js b/src/ol/interaction/draganddropinteraction.js new file mode 100644 index 0000000000..917712b252 --- /dev/null +++ b/src/ol/interaction/draganddropinteraction.js @@ -0,0 +1,202 @@ +// FIXME should handle all geo-referenced data, not just vector data + +goog.provide('ol.interaction.DragAndDrop'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.events'); +goog.require('goog.events.FileDropHandler'); +goog.require('goog.events.FileDropHandler.EventType'); +goog.require('goog.fs.FileReader'); +goog.require('goog.functions'); +goog.require('ol.interaction.Interaction'); +goog.require('ol.layer.Vector'); +goog.require('ol.proj'); +goog.require('ol.source.Vector'); + + + +/** + * @constructor + * @extends {ol.interaction.Interaction} + * @param {olx.interaction.DragAndDropOptions=} opt_options Options. + */ +ol.interaction.DragAndDrop = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : {}; + + goog.base(this); + + /** + * @private + * @type {boolean} + */ + this.fitView_ = goog.isDef(options.fitView) ? options.fitView : true; + + /** + * @private + * @type {Array.} + */ + this.formatConstructors_ = goog.isDef(options.formatConstructors) ? + options.formatConstructors : []; + + /** + * @private + * @type {ol.source.Vector} + */ + this.source_ = goog.isDef(options.source) ? options.source : null; + + /** + * @private + * @type {ol.layer.Vector} + */ + this.layer_ = goog.isDef(options.layer) ? options.layer : null; + + /** + * @private + * @type {goog.events.FileDropHandler} + */ + this.fileDropHandler_ = null; + + /** + * @private + * @type {goog.events.Key|undefined} + */ + this.dropListenKey_ = undefined; + +}; +goog.inherits(ol.interaction.DragAndDrop, ol.interaction.Interaction); + + +/** + * @inheritDoc + */ +ol.interaction.DragAndDrop.prototype.disposeInternal = function() { + if (goog.isDef(this.dropListenKey_)) { + goog.events.unlistenByKey(this.dropListenKey_); + } + goog.base(this, 'disposeInternal'); +}; + + +/** + * @param {goog.events.BrowserEvent} event Event. + * @private + */ +ol.interaction.DragAndDrop.prototype.handleDrop_ = function(event) { + var files = event.getBrowserEvent().dataTransfer.files; + var i, ii; + for (i = 0, ii = files.length; i < ii; ++i) { + var reader = goog.fs.FileReader.readAsText(files[i]); + reader.addCallback(this.handleResult_, this); + } +}; + + +/** + * @param {string} result Result. + * @private + */ +ol.interaction.DragAndDrop.prototype.handleResult_ = function(result) { + var map = this.getMap(); + goog.asserts.assert(!goog.isNull(map)); + var view = map.getView(); + goog.asserts.assert(goog.isDef(view)); + var view2D = view.getView2D(); + var targetProjection; + if (!goog.isNull(this.source_)) { + targetProjection = this.source_.getProjection(); + } else if (!goog.isNull(this.layer_)) { + targetProjection = this.layer_.getSource().getProjection(); + } else { + targetProjection = view2D.getProjection(); + } + var formatConstructors = this.formatConstructors_; + var features = []; + var i, ii; + for (i = 0, ii = formatConstructors.length; i < ii; ++i) { + var formatConstructor = formatConstructors[i]; + var format = new formatConstructor(); + var readFeatures = this.tryReadFeatures_(format, result); + if (!goog.isNull(readFeatures)) { + var featureProjection = format.readProjection(result); + var transform = ol.proj.getTransform(featureProjection, targetProjection); + var j, jj; + for (j = 0, jj = readFeatures.length; j < jj; ++j) { + var feature = readFeatures[j]; + var geometry = feature.getGeometry(); + if (!goog.isNull(geometry)) { + geometry.transform(transform); + } + features.push(feature); + } + } + } + if (features.length > 0) { + var source; + if (!goog.isNull(this.source_)) { + source = this.source_; + } else if (!goog.isNull(this.layer_)) { + source = this.layer_.getSource(); + goog.asserts.assertInstanceof(source, ol.source.Vector); + } else { + source = new ol.source.Vector(); + } + for (i = 0, ii = features.length; i < ii; ++i) { + source.addFeature(features[i]); + } + if (goog.isNull(this.layer_)) { + map.getLayers().push(new ol.layer.Vector({ + source: source + })); + } + if (this.fitView_) { + view2D.fitExtent(source.getExtent(), map.getSize()); + } + } +}; + + +/** + * @inheritDoc + */ +ol.interaction.DragAndDrop.prototype.handleMapBrowserEvent = + goog.functions.TRUE; + + +/** + * @inheritDoc + */ +ol.interaction.DragAndDrop.prototype.setMap = function(map) { + if (goog.isDef(this.dropListenKey_)) { + goog.events.unlistenByKey(this.dropListenKey_); + this.dropListenKey_ = undefined; + } + if (!goog.isNull(this.fileDropHandler_)) { + goog.dispose(this.fileDropHandler_); + this.fileDropHandler_ = null; + } + goog.asserts.assert(!goog.isDef(this.dropListenKey_)); + goog.base(this, 'setMap', map); + if (!goog.isNull(map)) { + this.fileDropHandler_ = new goog.events.FileDropHandler(map.getViewport()); + this.dropListenKey_ = goog.events.listen( + this.fileDropHandler_, goog.events.FileDropHandler.EventType.DROP, + this.handleDrop_, false, this); + } +}; + + +/** + * @param {ol.format.Format} format Format. + * @param {string} text Text. + * @private + * @return {Array.} Features. + */ +ol.interaction.DragAndDrop.prototype.tryReadFeatures_ = function(format, text) { + try { + return format.readFeatures(text); + } catch (e) { + return null; + } +}; From 1a3218266c17905e79b8c9723673207647f5d082 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Dec 2013 20:14:00 +0100 Subject: [PATCH 699/919] Add drag-and-drop example --- examples/drag-and-drop.html | 56 ++++++++++++++++++++++++++++++++++ examples/drag-and-drop.js | 60 +++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 examples/drag-and-drop.html create mode 100644 examples/drag-and-drop.js diff --git a/examples/drag-and-drop.html b/examples/drag-and-drop.html new file mode 100644 index 0000000000..98a622eabe --- /dev/null +++ b/examples/drag-and-drop.html @@ -0,0 +1,56 @@ + + + + + + + + + + + Drag-and-Drop example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Drag-and-Drop example

+

Example of using the drag-and-drop interaction. Drag and drop KML files on to the map.

+
+

See the drag-and-drop.js source to see how this is done.

+
+
drag-and-drop, kml
+
+
+
+   +
+
+ +
+ +
+ + + + + + + diff --git a/examples/drag-and-drop.js b/examples/drag-and-drop.js new file mode 100644 index 0000000000..dc79f50a73 --- /dev/null +++ b/examples/drag-and-drop.js @@ -0,0 +1,60 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.format.KML'); +goog.require('ol.interaction'); +goog.require('ol.interaction.DragAndDrop'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.BingMaps'); + + +var map = new ol.Map({ + interactions: ol.interaction.defaults().extend([ + new ol.interaction.DragAndDrop({ + formatConstructors: [ + ol.format.KML + ] + }) + ]), + layers: [ + new ol.layer.Tile({ + source: new ol.source.BingMaps({ + imagerySet: 'Aerial', + key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3' + }) + }) + ], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); + +var displayFeatureInfo = function(pixel) { + var features = []; + map.forEachFeatureAtPixel(pixel, function(feature, layer) { + features.push(feature); + }); + if (features.length > 0) { + var info = []; + var i, ii; + for (i = 0, ii = features.length; i < ii; ++i) { + info.push(features[i].get('name')); + } + document.getElementById('info').innerHTML = info.join(', ') || ' '; + } else { + document.getElementById('info').innerHTML = ' '; + } +}; + +$(map.getViewport()).on('mousemove', function(evt) { + var pixel = map.getEventPixel(evt.originalEvent); + displayFeatureInfo(pixel); +}); + +map.on('singleclick', function(evt) { + var pixel = evt.getPixel(); + displayFeatureInfo(pixel); +}); From 432c6d8af36dfe5ed81f4d9e982b9e20aff72360 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 19 Dec 2013 18:14:10 +0100 Subject: [PATCH 700/919] Optimize encode --- src/ol/format/polylineformat.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ol/format/polylineformat.js b/src/ol/format/polylineformat.js index af36338564..a50cef525f 100644 --- a/src/ol/format/polylineformat.js +++ b/src/ol/format/polylineformat.js @@ -270,10 +270,7 @@ ol.format.Polyline.decodeFloat = function(encoded, opt_factor) { * @return {string} The encoded string. */ ol.format.Polyline.encodeSignedInteger = function(num) { - var signedNum = num << 1; - if (num < 0) { - signedNum = ~(signedNum); - } + var signedNum = (num < 0) ? ~(num << 1) : (num << 1); return ol.format.Polyline.encodeUnsignedInteger(signedNum); }; From eaf6d7caef0c24f93251924b9c12047e7e90070a Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Fri, 20 Dec 2013 09:08:08 +0100 Subject: [PATCH 701/919] Add ol.format.IGC#getExtensions --- src/ol/format/igcformat.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ol/format/igcformat.js b/src/ol/format/igcformat.js index 62904aa705..65884aa33a 100644 --- a/src/ol/format/igcformat.js +++ b/src/ol/format/igcformat.js @@ -43,6 +43,13 @@ ol.format.IGC = function(opt_options) { goog.inherits(ol.format.IGC, ol.format.Text); +/** + * @const {Array.} + * @private + */ +ol.format.IGC.EXTENSIONS_ = ['.igc']; + + /** * @const {RegExp} * @private @@ -65,6 +72,14 @@ ol.format.IGC.H_RECORD_RE_ = /^H.([A-Z]{3}).*?:(.*)/; ol.format.IGC.HFDTE_RECORD_RE_ = /^HFDTE(\d{2})(\d{2})(\d{2})/; +/** + * @inheritDoc + */ +ol.format.IGC.prototype.getExtensions = function() { + return ol.format.IGC.EXTENSIONS_; +}; + + /** * @inheritDoc */ From 0b6e1e91c0c6a7f0e84080c5bbcddc9d4ecf6b63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 5 Dec 2013 09:40:50 +0100 Subject: [PATCH 702/919] ol.render.DragBox renamed to ol.render.Box --- src/ol/render/{dragbox.js => box.js} | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename src/ol/render/{dragbox.js => box.js} (86%) diff --git a/src/ol/render/dragbox.js b/src/ol/render/box.js similarity index 86% rename from src/ol/render/dragbox.js rename to src/ol/render/box.js index 80e938a0c8..1dc131c591 100644 --- a/src/ol/render/dragbox.js +++ b/src/ol/render/box.js @@ -1,6 +1,6 @@ // FIXME add rotation -goog.provide('ol.render.DragBox'); +goog.provide('ol.render.Box'); goog.require('goog.Disposable'); goog.require('goog.events'); @@ -16,7 +16,7 @@ goog.require('ol.style.Style'); * @extends {goog.Disposable} * @param {ol.style.Style=} opt_style Style. */ -ol.render.DragBox = function(opt_style) { +ol.render.Box = function(opt_style) { /** * @private @@ -57,13 +57,13 @@ ol.render.DragBox = function(opt_style) { }); }; -goog.inherits(ol.render.DragBox, goog.Disposable); +goog.inherits(ol.render.Box, goog.Disposable); /** * @inheritDoc */ -ol.render.DragBox.prototype.disposeInternal = function() { +ol.render.Box.prototype.disposeInternal = function() { this.setMap(null); }; @@ -72,7 +72,7 @@ ol.render.DragBox.prototype.disposeInternal = function() { * @param {ol.render.Event} event Event. * @private */ -ol.render.DragBox.prototype.handleMapPostCompose_ = function(event) { +ol.render.Box.prototype.handleMapPostCompose_ = function(event) { var render = event.getRender(); var startCoordinate = this.startCoordinate_; var endCoordinate = this.endCoordinate_; @@ -104,7 +104,7 @@ ol.render.DragBox.prototype.handleMapPostCompose_ = function(event) { /** * @private */ -ol.render.DragBox.prototype.requestMapRenderFrame_ = function() { +ol.render.Box.prototype.requestMapRenderFrame_ = function() { if (!goog.isNull(this.map_) && !goog.isNull(this.startCoordinate_) && !goog.isNull(this.endCoordinate_)) { @@ -116,7 +116,7 @@ ol.render.DragBox.prototype.requestMapRenderFrame_ = function() { /** * @param {ol.Map} map Map. */ -ol.render.DragBox.prototype.setMap = function(map) { +ol.render.Box.prototype.setMap = function(map) { if (goog.isDef(this.postComposeListenKey_)) { goog.events.unlistenByKey(this.postComposeListenKey_); this.postComposeListenKey_ = undefined; @@ -137,7 +137,7 @@ ol.render.DragBox.prototype.setMap = function(map) { * @param {ol.Coordinate} startCoordinate Start coordinate. * @param {ol.Coordinate} endCoordinate End coordinate. */ -ol.render.DragBox.prototype.setCoordinates = +ol.render.Box.prototype.setCoordinates = function(startCoordinate, endCoordinate) { this.startCoordinate_ = startCoordinate; this.endCoordinate_ = endCoordinate; From 712f451179ff5e3705bf249990a74ba4a3394c0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 5 Dec 2013 09:43:17 +0100 Subject: [PATCH 703/919] Use better type --- src/ol/render/box.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/render/box.js b/src/ol/render/box.js index 1dc131c591..14c80516d9 100644 --- a/src/ol/render/box.js +++ b/src/ol/render/box.js @@ -26,9 +26,9 @@ ol.render.Box = function(opt_style) { /** * @private - * @type {goog.events.Key|undefined} + * @type {goog.events.Key} */ - this.postComposeListenKey_ = undefined; + this.postComposeListenKey_ = null; /** * @private @@ -117,9 +117,9 @@ ol.render.Box.prototype.requestMapRenderFrame_ = function() { * @param {ol.Map} map Map. */ ol.render.Box.prototype.setMap = function(map) { - if (goog.isDef(this.postComposeListenKey_)) { + if (!goog.isNull(this.postComposeListenKey_)) { goog.events.unlistenByKey(this.postComposeListenKey_); - this.postComposeListenKey_ = undefined; + this.postComposeListenKey_ = null; this.map_.requestRenderFrame(); this.map_ = null; } From 07243006854bcd602b7bc663de37722d65c8ad29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 5 Dec 2013 09:44:18 +0100 Subject: [PATCH 704/919] Rename a property --- src/ol/render/box.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ol/render/box.js b/src/ol/render/box.js index 14c80516d9..820641ed8c 100644 --- a/src/ol/render/box.js +++ b/src/ol/render/box.js @@ -28,7 +28,7 @@ ol.render.Box = function(opt_style) { * @private * @type {goog.events.Key} */ - this.postComposeListenKey_ = null; + this.postComposeListenerKey_ = null; /** * @private @@ -117,15 +117,15 @@ ol.render.Box.prototype.requestMapRenderFrame_ = function() { * @param {ol.Map} map Map. */ ol.render.Box.prototype.setMap = function(map) { - if (!goog.isNull(this.postComposeListenKey_)) { - goog.events.unlistenByKey(this.postComposeListenKey_); - this.postComposeListenKey_ = null; + if (!goog.isNull(this.postComposeListenerKey_)) { + goog.events.unlistenByKey(this.postComposeListenerKey_); + this.postComposeListenerKey_ = null; this.map_.requestRenderFrame(); this.map_ = null; } this.map_ = map; if (!goog.isNull(this.map_)) { - this.postComposeListenKey_ = goog.events.listen( + this.postComposeListenerKey_ = goog.events.listen( map, ol.render.EventType.POSTCOMPOSE, this.handleMapPostCompose_, false, this); this.requestMapRenderFrame_(); From 91a61f3152872407957b65ca5c5eafe9a59f377d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 5 Dec 2013 11:10:25 +0100 Subject: [PATCH 705/919] ol.render.Box refactoring --- src/ol/render/box.js | 56 ++++++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/src/ol/render/box.js b/src/ol/render/box.js index 820641ed8c..d5c60c9b1f 100644 --- a/src/ol/render/box.js +++ b/src/ol/render/box.js @@ -3,6 +3,7 @@ goog.provide('ol.render.Box'); goog.require('goog.Disposable'); +goog.require('goog.asserts'); goog.require('goog.events'); goog.require('ol.geom.Polygon'); goog.require('ol.render.EventType'); @@ -42,6 +43,12 @@ ol.render.Box = function(opt_style) { */ this.endCoordinate_ = null; + /** + * @private + * @type {ol.geom.Polygon} + */ + this.geometry_ = null; + /** * @private * @type {ol.style.Style} @@ -61,23 +68,15 @@ goog.inherits(ol.render.Box, goog.Disposable); /** - * @inheritDoc - */ -ol.render.Box.prototype.disposeInternal = function() { - this.setMap(null); -}; - - -/** - * @param {ol.render.Event} event Event. * @private + * @param {ol.Extent} extent Extent. + * @return {ol.geom.Polygon} Geometry. */ -ol.render.Box.prototype.handleMapPostCompose_ = function(event) { - var render = event.getRender(); +ol.render.Box.prototype.createGeometry_ = function(extent) { + goog.asserts.assert(!goog.isNull(this.startCoordinate_)); + goog.asserts.assert(!goog.isNull(this.endCoordinate_)); var startCoordinate = this.startCoordinate_; var endCoordinate = this.endCoordinate_; - - var extent = event.getFrameState().extent; var coordinates = [ // outer ring [ @@ -94,10 +93,37 @@ ol.render.Box.prototype.handleMapPostCompose_ = function(event) { [endCoordinate[0], startCoordinate[1]] ] ]; - var geometry = new ol.geom.Polygon(coordinates); + return new ol.geom.Polygon(coordinates); +}; + + +/** + * @inheritDoc + */ +ol.render.Box.prototype.disposeInternal = function() { + this.setMap(null); +}; + + +/** + * @param {ol.render.Event} event Event. + * @private + */ +ol.render.Box.prototype.handleMapPostCompose_ = function(event) { + var extent = event.getFrameState().extent; + this.geometry_ = this.createGeometry_(extent); var style = this.style_; + var render = event.getRender(); render.setFillStrokeStyle(style.getFill(), style.getStroke()); - render.drawPolygonGeometry(geometry, null); + render.drawPolygonGeometry(this.geometry_, null); +}; + + +/** + * @return {ol.geom.Polygon} Geometry. + */ +ol.render.Box.prototype.getGeometry = function() { + return this.geometry_; }; From 6b305cd146cad63307b359df25bd79e357a2c1b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 5 Dec 2013 11:11:23 +0100 Subject: [PATCH 706/919] Add ol.interaction.DragBox --- src/objectliterals.jsdoc | 9 ++ src/ol/interaction/dragboxinteraction.exports | 1 + src/ol/interaction/dragboxinteraction.js | 101 ++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 src/ol/interaction/dragboxinteraction.exports create mode 100644 src/ol/interaction/dragboxinteraction.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 8c6ea96f23..d6f41a4461 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -312,6 +312,15 @@ * @todo stability experimental */ +/** + * @typedef {Object} olx.interaction.DragBoxOptions + * @property {function(ol.Map, ol.geom.Polygon)} behavior Behavior function. + * @property {ol.events.ConditionType|undefined} condition A conditional + * modifier (i.e. Shift key) that determines if the interaction is active + * or not, default is always. + * @todo stability experimental + */ + /** * @typedef {Object} olx.interaction.DragZoomOptions * @property {ol.events.ConditionType|undefined} condition A conditional diff --git a/src/ol/interaction/dragboxinteraction.exports b/src/ol/interaction/dragboxinteraction.exports new file mode 100644 index 0000000000..13c1329169 --- /dev/null +++ b/src/ol/interaction/dragboxinteraction.exports @@ -0,0 +1 @@ +@exportSymbol ol.interaction.DragBox diff --git a/src/ol/interaction/dragboxinteraction.js b/src/ol/interaction/dragboxinteraction.js new file mode 100644 index 0000000000..933f07d303 --- /dev/null +++ b/src/ol/interaction/dragboxinteraction.js @@ -0,0 +1,101 @@ +// FIXME draw drag box +// FIXME works for View2D only + +goog.provide('ol.interaction.DragBox'); + +goog.require('goog.asserts'); +goog.require('ol.events.ConditionType'); +goog.require('ol.events.condition'); +goog.require('ol.interaction.Drag'); +goog.require('ol.render.Box'); + + +/** + * @define {number} Hysterisis pixels. + */ +ol.DRAG_BOX_HYSTERESIS_PIXELS = 8; + + +/** + * @const {number} + */ +ol.DRAG_BOX_HYSTERESIS_PIXELS_SQUARED = + ol.DRAG_BOX_HYSTERESIS_PIXELS * + ol.DRAG_BOX_HYSTERESIS_PIXELS; + + + +/** + * @constructor + * @extends {ol.interaction.Drag} + * @param {olx.interaction.DragBoxOptions=} opt_options Options. + * @todo stability experimental + */ +ol.interaction.DragBox = function(opt_options) { + + goog.base(this); + + var options = goog.isDef(opt_options) ? opt_options : {}; + + /** + * @private + * @type {function(ol.Map, ol.geom.Polygon)} + */ + this.behavior_ = goog.isDef(options.behavior) ? + options.behavior : goog.nullFunction; + + /** + * @type {ol.render.Box} + * @private + */ + this.box_ = new ol.render.Box(); + + /** + * @private + * @type {ol.events.ConditionType} + */ + this.condition_ = goog.isDef(options.condition) ? + options.condition : ol.events.condition.always; + +}; +goog.inherits(ol.interaction.DragBox, ol.interaction.Drag); + + +/** + * @inheritDoc + */ +ol.interaction.DragBox.prototype.handleDrag = function(mapBrowserEvent) { + this.box_.setCoordinates( + this.startCoordinate, mapBrowserEvent.getCoordinate()); +}; + + +/** + * @inheritDoc + */ +ol.interaction.DragBox.prototype.handleDragEnd = + function(mapBrowserEvent) { + this.box_.setMap(null); + if (this.deltaX * this.deltaX + this.deltaY * this.deltaY >= + ol.DRAG_BOX_HYSTERESIS_PIXELS_SQUARED) { + var map = mapBrowserEvent.map; + var geometry = this.box_.getGeometry(); + this.behavior_(map, geometry); + } +}; + + +/** + * @inheritDoc + */ +ol.interaction.DragBox.prototype.handleDragStart = + function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) { + this.box_.setCoordinates(this.startCoordinate, this.startCoordinate); + this.box_.setMap(mapBrowserEvent.map); + return true; + } else { + return false; + } +}; From 0960584cfcdbbfd8dadc30f109df56dfd6a93021 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 5 Dec 2013 11:12:52 +0100 Subject: [PATCH 707/919] Make DragZoom interaction inherit from DragBox --- src/ol/interaction/dragzoominteraction.js | 118 +++++++--------------- 1 file changed, 35 insertions(+), 83 deletions(-) diff --git a/src/ol/interaction/dragzoominteraction.js b/src/ol/interaction/dragzoominteraction.js index b7a6737613..084bcd1579 100644 --- a/src/ol/interaction/dragzoominteraction.js +++ b/src/ol/interaction/dragzoominteraction.js @@ -1,30 +1,10 @@ -// FIXME draw drag box -// FIXME works for View2D only - goog.provide('ol.interaction.DragZoom'); goog.require('goog.asserts'); goog.require('ol.Size'); goog.require('ol.View2D'); -goog.require('ol.events.ConditionType'); goog.require('ol.events.condition'); -goog.require('ol.extent'); -goog.require('ol.interaction.Drag'); -goog.require('ol.render.DragBox'); - - -/** - * @define {number} Hysterisis pixels. - */ -ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS = 8; - - -/** - * @const {number} - */ -ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS_SQUARED = - ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS * - ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS; +goog.require('ol.interaction.DragBox'); @@ -33,77 +13,49 @@ ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS_SQUARED = * normally combined with an {@link ol.events.condition} that limits * it to when the shift key is held down. * @constructor - * @extends {ol.interaction.Drag} + * @extends {ol.interaction.DragBox} * @param {olx.interaction.DragZoomOptions=} opt_options Options. * @todo stability experimental */ ol.interaction.DragZoom = function(opt_options) { - - goog.base(this); - var options = goog.isDef(opt_options) ? opt_options : {}; - /** - * @private - * @type {ol.events.ConditionType} - */ - this.condition_ = goog.isDef(options.condition) ? + var condition = goog.isDef(options.condition) ? options.condition : ol.events.condition.shiftKeyOnly; /** - * @type {ol.render.DragBox} - * @private + * @type {function(ol.Map, ol.geom.Polygon)} */ - this.dragBox_ = new ol.render.DragBox(); + var behavior = ( + /** + * @param {ol.Map} map Map. + * @param {ol.geom.Polygon} polygon Polugon. + */ + function(map, polygon) { + map.withFrozenRendering(function() { + // FIXME works for View2D only + var view = map.getView(); + goog.asserts.assertInstanceof(view, ol.View2D); + var linearRings = polygon.getLinearRings(); + goog.asserts.assert(linearRings.length == 2); + + var innerLinearRing = linearRings[1]; + var innerLinearRingExtent = innerLinearRing.getExtent(); + + var mapSize = /** @type {ol.Size} */ (map.getSize()); + + map.withFrozenRendering(function() { + view.fitExtent(innerLinearRingExtent, mapSize); + // FIXME we should preserve rotation + view.setRotation(0); + }); + }); + }); + + goog.base(this, { + behavior: behavior, + condition: condition + }); }; -goog.inherits(ol.interaction.DragZoom, ol.interaction.Drag); - - -/** - * @inheritDoc - */ -ol.interaction.DragZoom.prototype.handleDrag = function(mapBrowserEvent) { - this.dragBox_.setCoordinates( - this.startCoordinate, mapBrowserEvent.getCoordinate()); -}; - - -/** - * @inheritDoc - */ -ol.interaction.DragZoom.prototype.handleDragEnd = - function(mapBrowserEvent) { - this.dragBox_.setMap(null); - if (this.deltaX * this.deltaX + this.deltaY * this.deltaY >= - ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS_SQUARED) { - var map = mapBrowserEvent.map; - var extent = ol.extent.boundingExtent( - [this.startCoordinate, mapBrowserEvent.getCoordinate()]); - map.withFrozenRendering(function() { - // FIXME works for View2D only - var view = map.getView(); - goog.asserts.assertInstanceof(view, ol.View2D); - var mapSize = /** @type {ol.Size} */ (map.getSize()); - view.fitExtent(extent, mapSize); - // FIXME we should preserve rotation - view.setRotation(0); - }); - } -}; - - -/** - * @inheritDoc - */ -ol.interaction.DragZoom.prototype.handleDragStart = - function(mapBrowserEvent) { - var browserEvent = mapBrowserEvent.browserEvent; - if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) { - this.dragBox_.setCoordinates(this.startCoordinate, this.startCoordinate); - this.dragBox_.setMap(mapBrowserEvent.map); - return true; - } else { - return false; - } -}; +goog.inherits(ol.interaction.DragZoom, ol.interaction.DragBox); From de329b02d3a5c6373252b8099e2178db6f3a5bfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 5 Dec 2013 11:13:30 +0100 Subject: [PATCH 708/919] Rename drag zoom interaction exports file --- .../interaction/{dragzoom.exports => dragzoominteraction.exports} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/ol/interaction/{dragzoom.exports => dragzoominteraction.exports} (100%) diff --git a/src/ol/interaction/dragzoom.exports b/src/ol/interaction/dragzoominteraction.exports similarity index 100% rename from src/ol/interaction/dragzoom.exports rename to src/ol/interaction/dragzoominteraction.exports From 18f9eeab12f7935063a7824d2a2bf40d20e68712 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 5 Dec 2013 11:30:18 +0100 Subject: [PATCH 709/919] No default style in ol.render.Box --- src/ol/render/box.js | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/ol/render/box.js b/src/ol/render/box.js index d5c60c9b1f..4ea8e0cf6f 100644 --- a/src/ol/render/box.js +++ b/src/ol/render/box.js @@ -7,17 +7,15 @@ goog.require('goog.asserts'); goog.require('goog.events'); goog.require('ol.geom.Polygon'); goog.require('ol.render.EventType'); -goog.require('ol.style.Fill'); -goog.require('ol.style.Style'); /** * @constructor * @extends {goog.Disposable} - * @param {ol.style.Style=} opt_style Style. + * @param {ol.style.Style} style Style. */ -ol.render.Box = function(opt_style) { +ol.render.Box = function(style) { /** * @private @@ -53,15 +51,7 @@ ol.render.Box = function(opt_style) { * @private * @type {ol.style.Style} */ - this.style_ = goog.isDef(opt_style) ? opt_style : new ol.style.Style({ - fill: new ol.style.Fill({ - color: 'rgba(0,0,0,0.5)' - }), - image: null, - stroke: null, - text: null, - zIndex: 0 - }); + this.style_ = style; }; goog.inherits(ol.render.Box, goog.Disposable); @@ -113,6 +103,7 @@ ol.render.Box.prototype.handleMapPostCompose_ = function(event) { var extent = event.getFrameState().extent; this.geometry_ = this.createGeometry_(extent); var style = this.style_; + goog.asserts.assert(!goog.isNull(style)); var render = event.getRender(); render.setFillStrokeStyle(style.getFill(), style.getStroke()); render.drawPolygonGeometry(this.geometry_, null); From eb840777e898a4de1edada0a29fc633818297e2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 5 Dec 2013 11:30:46 +0100 Subject: [PATCH 710/919] Add style option to DragBox interaction --- src/objectliterals.jsdoc | 1 + src/ol/interaction/dragboxinteraction.js | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index d6f41a4461..2501eab27d 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -318,6 +318,7 @@ * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (i.e. Shift key) that determines if the interaction is active * or not, default is always. + * @property {ol.style.Style} style Style for the box. * @todo stability experimental */ diff --git a/src/ol/interaction/dragboxinteraction.js b/src/ol/interaction/dragboxinteraction.js index 933f07d303..81c03af21f 100644 --- a/src/ol/interaction/dragboxinteraction.js +++ b/src/ol/interaction/dragboxinteraction.js @@ -44,11 +44,18 @@ ol.interaction.DragBox = function(opt_options) { this.behavior_ = goog.isDef(options.behavior) ? options.behavior : goog.nullFunction; + + /** + * @private + * @type {ol.style.Style} + */ + var style = goog.isDef(options.style) ? options.style : null; + /** * @type {ol.render.Box} * @private */ - this.box_ = new ol.render.Box(); + this.box_ = new ol.render.Box(style); /** * @private From cf8adffdb272c28d99bb56c846fa4ce7e8d7f550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 5 Dec 2013 11:31:07 +0100 Subject: [PATCH 711/919] Add style option to DragZoom interaction --- src/objectliterals.jsdoc | 1 + src/ol/interaction/dragzoominteraction.js | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 2501eab27d..040dc6faba 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -327,6 +327,7 @@ * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (i.e. Shift key) that determines if the interaction is active * or not, default is shift key. + * @property {ol.style.Style} style Style for the box. * @todo stability experimental */ diff --git a/src/ol/interaction/dragzoominteraction.js b/src/ol/interaction/dragzoominteraction.js index 084bcd1579..35c96be4b8 100644 --- a/src/ol/interaction/dragzoominteraction.js +++ b/src/ol/interaction/dragzoominteraction.js @@ -5,6 +5,8 @@ goog.require('ol.Size'); goog.require('ol.View2D'); goog.require('ol.events.condition'); goog.require('ol.interaction.DragBox'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Style'); @@ -53,9 +55,26 @@ ol.interaction.DragZoom = function(opt_options) { }); }); + /** + * @private + * @type {ol.style.Style} + */ + var style = goog.isDef(options.style) ? + options.style : new ol.style.Style({ + fill: new ol.style.Fill({ + color: 'rgba(0,0,0,0.5)' + }), + image: null, + stroke: null, + text: null, + zIndex: 0 + }); + goog.base(this, { behavior: behavior, - condition: condition + condition: condition, + style: style }); + }; goog.inherits(ol.interaction.DragZoom, ol.interaction.DragBox); From 0eb00ba86b00d08253e89e20babfdd12f5a1d40e Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Thu, 19 Dec 2013 15:38:00 +0100 Subject: [PATCH 712/919] Remove dragbox.exports --- src/ol/render/dragbox.exports | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 src/ol/render/dragbox.exports diff --git a/src/ol/render/dragbox.exports b/src/ol/render/dragbox.exports deleted file mode 100644 index c98c668fb9..0000000000 --- a/src/ol/render/dragbox.exports +++ /dev/null @@ -1,3 +0,0 @@ -@exportSymbol ol.render.DragBox -@exportProperty ol.render.DragBox.prototype.setCoordinates -@exportProperty ol.render.DragBox.prototype.setMap From f0b14521a48919a76cd7f8c5912af63213f7dbae Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 14:40:30 +0100 Subject: [PATCH 713/919] Don't attempt to render features will null geometries in ol.render.canvas.Immediate --- src/ol/render/canvas/canvasimmediate.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 9736439c03..0f86efa3fa 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -242,7 +242,8 @@ ol.render.canvas.Immediate.prototype.drawRings_ = */ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { var geometry = feature.getGeometry(); - if (!ol.extent.intersects(this.extent_, geometry.getExtent())) { + if (goog.isNull(geometry) || + !ol.extent.intersects(this.extent_, geometry.getExtent())) { return; } this.setFillStrokeStyle(style.getFill(), style.getStroke()); From bc36c2a3664e8e3909606e7efaf7d0b2f38c732c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 14:41:37 +0100 Subject: [PATCH 714/919] Don't attempt to render features will null geometries in ol.renderer.vector.renderFeature --- src/ol/render/vector.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index d612492422..a8e037b495 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -21,11 +21,15 @@ goog.require('ol.style.Style'); */ ol.renderer.vector.renderFeature = function( replayGroup, feature, style, squaredTolerance, data) { - var geometry = feature.getGeometry().getSimplifiedGeometry(squaredTolerance); + var geometry = feature.getGeometry(); + if (goog.isNull(geometry)) { + return; + } + var simplifiedGeometry = geometry.getSimplifiedGeometry(squaredTolerance); var geometryRenderer = - ol.renderer.vector.GEOMETRY_RENDERERS_[geometry.getType()]; + ol.renderer.vector.GEOMETRY_RENDERERS_[simplifiedGeometry.getType()]; goog.asserts.assert(goog.isDef(geometryRenderer)); - geometryRenderer(replayGroup, geometry, style, data); + geometryRenderer(replayGroup, simplifiedGeometry, style, data); }; From 4b9451de8118f225280afceadce6db228f56f880 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 14:42:05 +0100 Subject: [PATCH 715/919] Add extra assertion that feature's geometry is not null --- src/ol/source/vectorsource.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index a69c70ca6d..d4c2eb5d82 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -160,7 +160,9 @@ ol.source.Vector.prototype.forEachFeatureAtCoordinate = function(coordinate, f, opt_obj) { var extent = [coordinate[0], coordinate[1], coordinate[0], coordinate[1]]; return this.forEachFeatureInExtent(extent, function(feature) { - if (feature.getGeometry().containsCoordinate(coordinate)) { + var geometry = feature.getGeometry(); + goog.asserts.assert(!goog.isNull(geometry)); + if (geometry.containsCoordinate(coordinate)) { return f.call(opt_obj, feature); } else { return undefined; From 8a7ae264e11df57236fc4923fea5b008a7e9b4b0 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 14:42:50 +0100 Subject: [PATCH 716/919] Handle feature's geometries changing to and from null in ol.source.Vector --- src/ol/source/vectorsource.js | 17 ++++++++- test/spec/ol/source/vectorsource.test.js | 48 ++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index d4c2eb5d82..818868ae6b 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -279,7 +279,22 @@ ol.source.Vector.prototype.getExtent = function() { */ ol.source.Vector.prototype.handleFeatureChange_ = function(event) { var feature = /** @type {ol.Feature} */ (event.target); - this.rBush_.update(feature.getGeometry().getExtent(), feature); + var featureKey = goog.getUid(feature).toString(); + var geometry = feature.getGeometry(); + if (goog.isNull(geometry)) { + if (!(featureKey in this.nullGeometryFeatures_)) { + this.rBush_.remove(feature); + this.nullGeometryFeatures_[featureKey] = feature; + } + } else { + var extent = geometry.getExtent(); + if (featureKey in this.nullGeometryFeatures_) { + delete this.nullGeometryFeatures_[featureKey]; + this.rBush_.insert(extent, feature); + } else { + this.rBush_.update(extent, feature); + } + } this.dispatchChangeEvent(); }; diff --git a/test/spec/ol/source/vectorsource.test.js b/test/spec/ol/source/vectorsource.test.js index 975a793af6..81611b0a4c 100644 --- a/test/spec/ol/source/vectorsource.test.js +++ b/test/spec/ol/source/vectorsource.test.js @@ -187,6 +187,54 @@ describe('ol.source.Vector', function() { }); + describe('tracking changes to features', function() { + + var vectorSource; + beforeEach(function() { + vectorSource = new ol.source.Vector(); + }); + + it('keeps its index up-to-date', function() { + var feature = new ol.Feature(new ol.geom.Point([1, 1])); + vectorSource.addFeature(feature); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 2, 2])). + to.eql([feature]); + feature.getGeometry().setCoordinates([3, 3]); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 2, 2])). + to.be.empty(); + expect(vectorSource.getAllFeaturesInExtent([2, 2, 4, 4])). + to.eql([feature]); + }); + + it('handles features with null geometries', function() { + var feature = new ol.Feature(null); + vectorSource.addFeature(feature); + expect(vectorSource.getAllFeatures()).to.eql([feature]); + }); + + it('handles features with geometries changing from null', function() { + var feature = new ol.Feature(null); + vectorSource.addFeature(feature); + expect(vectorSource.getAllFeatures()).to.eql([feature]); + feature.setGeometry(new ol.geom.Point([1, 1])); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 2, 2])). + to.eql([feature]); + expect(vectorSource.getAllFeatures()).to.eql([feature]); + }); + + it('handles features with geometries changing to null', function() { + var feature = new ol.Feature(new ol.geom.Point([1, 1])); + vectorSource.addFeature(feature); + expect(vectorSource.getAllFeatures()).to.eql([feature]); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 2, 2])). + to.eql([feature]); + feature.setGeometry(null); + expect(vectorSource.getAllFeaturesInExtent([0, 0, 2, 2])).to.be.empty(); + expect(vectorSource.getAllFeatures()).to.eql([feature]); + }); + + }); + }); From bd247fa5d7c02e6982b8c4206ccc89e839686721 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 15:07:09 +0100 Subject: [PATCH 717/919] Add optional parsersNS object to extend --- src/ol/xml.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ol/xml.js b/src/ol/xml.js index 5d1a954e25..e166ce94ca 100644 --- a/src/ol/xml.js +++ b/src/ol/xml.js @@ -149,11 +149,13 @@ ol.xml.makeObjectPropertySetter = function(valueReader, opt_property, opt_obj) { /** * @param {Array.} namespaceURIs Namespace URIs. * @param {Object.} parsers Parsers. + * @param {Object.>=} opt_parsersNS + * ParsersNS. * @return {Object.>} Parsers NS. */ -ol.xml.makeParsersNS = function(namespaceURIs, parsers) { +ol.xml.makeParsersNS = function(namespaceURIs, parsers, opt_parsersNS) { /** @type {Object.>} */ - var parsersNS = {}; + var parsersNS = goog.isDef(opt_parsersNS) ? opt_parsersNS : {}; var i, ii; for (i = 0, ii = namespaceURIs.length; i < ii; ++i) { parsersNS[namespaceURIs[i]] = parsers; From 43b8a72e62122117df731f24e721f0e6e008b9e9 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Thu, 19 Dec 2013 15:41:52 +0100 Subject: [PATCH 718/919] Add ol.DragBoxEvent --- src/ol/interaction/dragboxinteraction.exports | 3 ++ src/ol/interaction/dragboxinteraction.js | 43 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/ol/interaction/dragboxinteraction.exports b/src/ol/interaction/dragboxinteraction.exports index 13c1329169..8678205ef9 100644 --- a/src/ol/interaction/dragboxinteraction.exports +++ b/src/ol/interaction/dragboxinteraction.exports @@ -1 +1,4 @@ @exportSymbol ol.interaction.DragBox + +@exportSymbol ol.DragBoxEvent +@exportProperty ol.DragBoxEvent.prototype.getCoordinate diff --git a/src/ol/interaction/dragboxinteraction.js b/src/ol/interaction/dragboxinteraction.js index 81c03af21f..6eb31f6434 100644 --- a/src/ol/interaction/dragboxinteraction.js +++ b/src/ol/interaction/dragboxinteraction.js @@ -1,9 +1,11 @@ // FIXME draw drag box // FIXME works for View2D only +goog.provide('ol.DragBoxEvent'); goog.provide('ol.interaction.DragBox'); goog.require('goog.asserts'); +goog.require('goog.events.Event'); goog.require('ol.events.ConditionType'); goog.require('ol.events.condition'); goog.require('ol.interaction.Drag'); @@ -24,6 +26,47 @@ ol.DRAG_BOX_HYSTERESIS_PIXELS_SQUARED = ol.DRAG_BOX_HYSTERESIS_PIXELS; +/** + * @enum {string} + */ +ol.DragBoxEventType = { + BOXSTART: 'boxstart', + BOXEND: 'boxend' +}; + + + +/** + * Object representing a dragbox event. + * + * @param {string} type The event type. + * @param {ol.Coordinate} coordinate The event coordinate. + * @extends {goog.events.Event} + * @constructor + */ +ol.DragBoxEvent = function(type, coordinate) { + goog.base(this, type); + + /** + * The coordinate of the drag event. + * @type {ol.Coordinate} + * @private + */ + this.coordinate_ = coordinate; + +}; +goog.inherits(ol.DragBoxEvent, goog.events.Event); + + +/** + * Get the name of the property associated with this event. + * @return {ol.Coordinate} Event coordinate. + */ +ol.DragBoxEvent.prototype.getCoordinate = function() { + return this.coordinate_; +}; + + /** * @constructor From adfe20dd12fcfb50588517bb5bc49631af5b8e6e Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Thu, 19 Dec 2013 15:48:41 +0100 Subject: [PATCH 719/919] Make DragBox interaction dispatch events - boxstart/boxend events are dispatched, - behavior is removed, - geometry drawn by box render is a simple polygon instead of one with hole. --- src/objectliterals.jsdoc | 1 - src/ol/interaction/dragboxinteraction.exports | 1 + src/ol/interaction/dragboxinteraction.js | 32 ++++++---- src/ol/interaction/dragzoominteraction.js | 60 ++++++------------- src/ol/render/box.js | 14 +---- 5 files changed, 43 insertions(+), 65 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 040dc6faba..a463e2b778 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -314,7 +314,6 @@ /** * @typedef {Object} olx.interaction.DragBoxOptions - * @property {function(ol.Map, ol.geom.Polygon)} behavior Behavior function. * @property {ol.events.ConditionType|undefined} condition A conditional * modifier (i.e. Shift key) that determines if the interaction is active * or not, default is always. diff --git a/src/ol/interaction/dragboxinteraction.exports b/src/ol/interaction/dragboxinteraction.exports index 8678205ef9..bb21d81015 100644 --- a/src/ol/interaction/dragboxinteraction.exports +++ b/src/ol/interaction/dragboxinteraction.exports @@ -1,4 +1,5 @@ @exportSymbol ol.interaction.DragBox +@exportProperty ol.interaction.DragBox.prototype.getGeometry @exportSymbol ol.DragBoxEvent @exportProperty ol.DragBoxEvent.prototype.getCoordinate diff --git a/src/ol/interaction/dragboxinteraction.js b/src/ol/interaction/dragboxinteraction.js index 6eb31f6434..d50d887838 100644 --- a/src/ol/interaction/dragboxinteraction.js +++ b/src/ol/interaction/dragboxinteraction.js @@ -80,14 +80,6 @@ ol.interaction.DragBox = function(opt_options) { var options = goog.isDef(opt_options) ? opt_options : {}; - /** - * @private - * @type {function(ol.Map, ol.geom.Polygon)} - */ - this.behavior_ = goog.isDef(options.behavior) ? - options.behavior : goog.nullFunction; - - /** * @private * @type {ol.style.Style} @@ -120,6 +112,22 @@ ol.interaction.DragBox.prototype.handleDrag = function(mapBrowserEvent) { }; +/** + * Returns geometry of last drawn box. + * @return {ol.geom.Geometry} Geometry. + */ +ol.interaction.DragBox.prototype.getGeometry = function() { + return this.box_.getGeometry(); +}; + + +/** + * To be overriden by child classes. + * @protected + */ +ol.interaction.DragBox.prototype.onBoxEnd = goog.nullFunction; + + /** * @inheritDoc */ @@ -128,9 +136,9 @@ ol.interaction.DragBox.prototype.handleDragEnd = this.box_.setMap(null); if (this.deltaX * this.deltaX + this.deltaY * this.deltaY >= ol.DRAG_BOX_HYSTERESIS_PIXELS_SQUARED) { - var map = mapBrowserEvent.map; - var geometry = this.box_.getGeometry(); - this.behavior_(map, geometry); + this.onBoxEnd(mapBrowserEvent); + this.dispatchEvent(new ol.DragBoxEvent(ol.DragBoxEventType.BOXEND, + mapBrowserEvent.getCoordinate())); } }; @@ -144,6 +152,8 @@ ol.interaction.DragBox.prototype.handleDragStart = if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) { this.box_.setCoordinates(this.startCoordinate, this.startCoordinate); this.box_.setMap(mapBrowserEvent.map); + this.dispatchEvent(new ol.DragBoxEvent(ol.DragBoxEventType.BOXSTART, + mapBrowserEvent.getCoordinate())); return true; } else { return false; diff --git a/src/ol/interaction/dragzoominteraction.js b/src/ol/interaction/dragzoominteraction.js index 35c96be4b8..64c7e959ef 100644 --- a/src/ol/interaction/dragzoominteraction.js +++ b/src/ol/interaction/dragzoominteraction.js @@ -1,11 +1,9 @@ goog.provide('ol.interaction.DragZoom'); goog.require('goog.asserts'); -goog.require('ol.Size'); -goog.require('ol.View2D'); goog.require('ol.events.condition'); goog.require('ol.interaction.DragBox'); -goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); @@ -25,56 +23,36 @@ ol.interaction.DragZoom = function(opt_options) { var condition = goog.isDef(options.condition) ? options.condition : ol.events.condition.shiftKeyOnly; - /** - * @type {function(ol.Map, ol.geom.Polygon)} - */ - var behavior = ( - /** - * @param {ol.Map} map Map. - * @param {ol.geom.Polygon} polygon Polugon. - */ - function(map, polygon) { - map.withFrozenRendering(function() { - // FIXME works for View2D only - var view = map.getView(); - goog.asserts.assertInstanceof(view, ol.View2D); - - var linearRings = polygon.getLinearRings(); - goog.asserts.assert(linearRings.length == 2); - - var innerLinearRing = linearRings[1]; - var innerLinearRingExtent = innerLinearRing.getExtent(); - - var mapSize = /** @type {ol.Size} */ (map.getSize()); - - map.withFrozenRendering(function() { - view.fitExtent(innerLinearRingExtent, mapSize); - // FIXME we should preserve rotation - view.setRotation(0); - }); - }); - }); - /** * @private * @type {ol.style.Style} */ var style = goog.isDef(options.style) ? options.style : new ol.style.Style({ - fill: new ol.style.Fill({ - color: 'rgba(0,0,0,0.5)' - }), - image: null, - stroke: null, - text: null, - zIndex: 0 + stroke: new ol.style.Stroke({ + color: 'blue' + }) }); goog.base(this, { - behavior: behavior, condition: condition, style: style }); }; goog.inherits(ol.interaction.DragZoom, ol.interaction.DragBox); + + +/** + * @inheritDoc + */ +ol.interaction.DragZoom.prototype.onBoxEnd = function() { + this.getMap().withFrozenRendering(goog.bind(function() { + // FIXME works for View2D only + var view = this.getMap().getView().getView2D(); + + view.fitExtent(this.getGeometry().getExtent(), this.getMap().getSize()); + // FIXME we should preserve rotation + view.setRotation(0); + }, this)); +}; diff --git a/src/ol/render/box.js b/src/ol/render/box.js index 4ea8e0cf6f..5e728073e4 100644 --- a/src/ol/render/box.js +++ b/src/ol/render/box.js @@ -59,23 +59,14 @@ goog.inherits(ol.render.Box, goog.Disposable); /** * @private - * @param {ol.Extent} extent Extent. * @return {ol.geom.Polygon} Geometry. */ -ol.render.Box.prototype.createGeometry_ = function(extent) { +ol.render.Box.prototype.createGeometry_ = function() { goog.asserts.assert(!goog.isNull(this.startCoordinate_)); goog.asserts.assert(!goog.isNull(this.endCoordinate_)); var startCoordinate = this.startCoordinate_; var endCoordinate = this.endCoordinate_; var coordinates = [ - // outer ring - [ - [extent[0], extent[1]], - [extent[0], extent[3]], - [extent[2], extent[3]], - [extent[2], extent[1]] - ], - // inner ring [ startCoordinate, [startCoordinate[0], endCoordinate[1]], @@ -100,8 +91,7 @@ ol.render.Box.prototype.disposeInternal = function() { * @private */ ol.render.Box.prototype.handleMapPostCompose_ = function(event) { - var extent = event.getFrameState().extent; - this.geometry_ = this.createGeometry_(extent); + this.geometry_ = this.createGeometry_(); var style = this.style_; goog.asserts.assert(!goog.isNull(style)); var render = event.getRender(); From c2330b978644da6e5fb3d9447a5e5ce20e62ed93 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Thu, 19 Dec 2013 16:02:30 +0100 Subject: [PATCH 720/919] Remove DragZoom from default interactions As it only works with canvas renderer. --- src/objectliterals.jsdoc | 2 -- src/ol/interaction/interactiondefaults.js | 7 ------- 2 files changed, 9 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index a463e2b778..ea3509e0cb 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -342,8 +342,6 @@ * desired. Default is `true`. * @property {boolean|undefined} mouseWheelZoom Whether mousewheel zoom is * desired. Default is `true`. - * @property {boolean|undefined} shiftDragZoom Whether Shift-drag zoom is - * desired. Default is `true`. * @property {boolean|undefined} touchPan Whether touch pan is * desired. Default is `true`. * @property {boolean|undefined} touchRotate Whether touch rotate is desired. Default is `true`. diff --git a/src/ol/interaction/interactiondefaults.js b/src/ol/interaction/interactiondefaults.js index 32b4e5569c..b664e24edb 100644 --- a/src/ol/interaction/interactiondefaults.js +++ b/src/ol/interaction/interactiondefaults.js @@ -5,7 +5,6 @@ goog.require('ol.Kinetic'); goog.require('ol.interaction.DoubleClickZoom'); goog.require('ol.interaction.DragPan'); goog.require('ol.interaction.DragRotate'); -goog.require('ol.interaction.DragZoom'); goog.require('ol.interaction.KeyboardPan'); goog.require('ol.interaction.KeyboardZoom'); goog.require('ol.interaction.MouseWheelZoom'); @@ -99,12 +98,6 @@ ol.interaction.defaults = function(opt_options) { })); } - var shiftDragZoom = goog.isDef(options.shiftDragZoom) ? - options.shiftDragZoom : true; - if (shiftDragZoom) { - interactions.push(new ol.interaction.DragZoom()); - } - return interactions; }; From 8354400e52a0889c1d7ef8d840b74cfb4c936fa1 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Thu, 19 Dec 2013 16:52:15 +0100 Subject: [PATCH 721/919] Add dragzoom example, configured with canvas renderer --- examples/dragzoom.html | 51 ++++++++++++++++++++++++++++++++++++++++++ examples/dragzoom.js | 24 ++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 examples/dragzoom.html create mode 100644 examples/dragzoom.js diff --git a/examples/dragzoom.html b/examples/dragzoom.html new file mode 100644 index 0000000000..0cd64bb6c1 --- /dev/null +++ b/examples/dragzoom.html @@ -0,0 +1,51 @@ + + + + + + + + + + + DragZoom example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

DragZoom example

+

Example of dragzoom interaction

+
+

See the dragzoom.js source to see how this is done.

+

For the moment, only works with the canvas renderer.

+
+
dragzoom, openstreetmap
+
+ +
+ +
+ + + + + + diff --git a/examples/dragzoom.js b/examples/dragzoom.js new file mode 100644 index 0000000000..86d83114d4 --- /dev/null +++ b/examples/dragzoom.js @@ -0,0 +1,24 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.interaction.DragZoom'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.OSM'); + + +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + source: new ol.source.OSM() + }) + ], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); + +var dragzoom = new ol.interaction.DragZoom(); +map.addInteraction(dragzoom); From 72ea0a10fce8e9fe4226b85ef2f18967e4c9b6d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 20 Dec 2013 15:45:07 +0100 Subject: [PATCH 722/919] Use ol.interaction.defaults in dragzoom example --- examples/dragzoom.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/dragzoom.js b/examples/dragzoom.js index 86d83114d4..57130e0984 100644 --- a/examples/dragzoom.js +++ b/examples/dragzoom.js @@ -1,12 +1,16 @@ goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); +goog.require('ol.interaction'); goog.require('ol.interaction.DragZoom'); goog.require('ol.layer.Tile'); goog.require('ol.source.OSM'); var map = new ol.Map({ + interactions: ol.interaction.defaults().extend([ + new ol.interaction.DragZoom() + ]), layers: [ new ol.layer.Tile({ source: new ol.source.OSM() @@ -19,6 +23,3 @@ var map = new ol.Map({ zoom: 2 }) }); - -var dragzoom = new ol.interaction.DragZoom(); -map.addInteraction(dragzoom); From f3948c874197b904c446434bff22e82e48ab0e60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 20 Dec 2013 15:48:58 +0100 Subject: [PATCH 723/919] Show how to use a custom style for DragZoom --- examples/dragzoom.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/examples/dragzoom.js b/examples/dragzoom.js index 57130e0984..0b91dacbdb 100644 --- a/examples/dragzoom.js +++ b/examples/dragzoom.js @@ -5,11 +5,24 @@ goog.require('ol.interaction'); goog.require('ol.interaction.DragZoom'); goog.require('ol.layer.Tile'); goog.require('ol.source.OSM'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); var map = new ol.Map({ interactions: ol.interaction.defaults().extend([ - new ol.interaction.DragZoom() + new ol.interaction.DragZoom({ + style: new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'rgba(255,0,0,1)', + width: 2 + }), + fill: new ol.style.Fill({ + color: 'rgba(155,0,0,0.2)' + }) + }) + }) ]), layers: [ new ol.layer.Tile({ From 0c047f094f7ea1c13ff111a8c9d8c36a9f970ce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 20 Dec 2013 15:51:34 +0100 Subject: [PATCH 724/919] More description to dragzoom example --- examples/dragzoom.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/dragzoom.html b/examples/dragzoom.html index 0cd64bb6c1..18becc24fe 100644 --- a/examples/dragzoom.html +++ b/examples/dragzoom.html @@ -32,8 +32,9 @@

DragZoom example

-

Example of dragzoom interaction

+

Example of dragzoom interaction.

+

Press SHIFT and drag the map to trigger the interaction.

See the dragzoom.js source to see how this is done.

For the moment, only works with the canvas renderer.

From 0bf34a52ff05cf545c2e32888798d9139c580708 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 16:33:26 +0100 Subject: [PATCH 725/919] Add ol.geom.MultiLineString#setLineStrings --- src/ol/geom/multilinestring.js | 25 +++++++++++++++++++++++ test/spec/ol/geom/multilinestring.test.js | 17 +++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 18b00c2eb6..98cfb3402d 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -1,5 +1,7 @@ goog.provide('ol.geom.MultiLineString'); +goog.require('goog.array'); +goog.require('goog.asserts'); goog.require('ol.extent'); goog.require('ol.geom.LineString'); goog.require('ol.geom.SimpleGeometry'); @@ -163,3 +165,26 @@ ol.geom.MultiLineString.prototype.setFlatCoordinates = this.ends_ = ends; this.dispatchChangeEvent(); }; + + +/** + * @param {Array.} lineStrings LineStrings. + */ +ol.geom.MultiLineString.prototype.setLineStrings = function(lineStrings) { + var layout = ol.geom.GeometryLayout.XY; + var flatCoordinates = []; + var ends = []; + var i, ii; + for (i = 0, ii = lineStrings.length; i < ii; ++i) { + var lineString = lineStrings[i]; + if (i === 0) { + layout = lineString.getLayout(); + } else { + // FIXME better handle the case of non-matching layouts + goog.asserts.assert(lineString.getLayout() == layout); + } + goog.array.extend(flatCoordinates, lineString.getFlatCoordinates()); + ends.push(flatCoordinates.length); + } + this.setFlatCoordinates(layout, flatCoordinates, ends); +}; diff --git a/test/spec/ol/geom/multilinestring.test.js b/test/spec/ol/geom/multilinestring.test.js index 1b7e67a3f2..b92928eb14 100644 --- a/test/spec/ol/geom/multilinestring.test.js +++ b/test/spec/ol/geom/multilinestring.test.js @@ -168,8 +168,25 @@ describe('ol.geom.MultiLineString', function() { }); + describe('#setLineStrings', function() { + + it('sets the line strings', function() { + var multiLineString = new ol.geom.MultiLineString(null); + var lineString1 = new ol.geom.LineString([[1, 2], [3, 4]]); + var lineString2 = new ol.geom.LineString([[5, 6], [7, 8]]); + multiLineString.setLineStrings([lineString1, lineString2]); + expect(multiLineString.getFlatCoordinates()).to.eql( + [1, 2, 3, 4, 5, 6, 7, 8]); + expect(multiLineString.getEnds()).to.eql([4, 8]); + var coordinates = multiLineString.getCoordinates(); + expect(coordinates[0]).to.eql(lineString1.getCoordinates()); + expect(coordinates[1]).to.eql(lineString2.getCoordinates()); + }); + }); + }); goog.require('ol.extent'); +goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString'); From 2b51d6af00588066fb969b26ed9c580d696324d9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 16:34:38 +0100 Subject: [PATCH 726/919] Add support for gx:MultiTrack elements --- src/ol/format/kmlformat.js | 171 ++++++++++++++++++++++++++++++++++++- 1 file changed, 169 insertions(+), 2 deletions(-) diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index 2319cf4291..291482a23f 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -3,7 +3,6 @@ // FIXME handle highlighted keys in StyleMaps - use styleFunctions // FIXME extractAttributes // FIXME extractStyles -// FIXME gx:Track // FIXME http://earth.google.com/kml/1.0 namespace? // FIXME why does node.getAttribute return an unknown type? // FIXME text @@ -49,6 +48,13 @@ ol.KML_RESPECT_VISIBILITY = false; ol.format.KMLVec2_; +/** + * @typedef {{flatCoordinates: Array., + * whens: Array.}} + */ +ol.format.KMLGxTrackObject_; + + /** * @constructor @@ -108,6 +114,15 @@ goog.inherits(ol.format.KML, ol.format.XML); ol.format.KML.EXTENSIONS_ = ['.kml']; +/** + * @const {Array.} + * @private + */ +ol.format.KML.GX_NAMESPACE_URIS_ = [ + 'http://www.google.com/kml/ext/2.2' +]; + + /** * @const {Array.} * @private @@ -553,6 +568,91 @@ ol.format.KML.readFlatLinearRing_ = function(node, objectStack) { }; +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.gxCoordParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(goog.array.indexOf( + ol.format.KML.GX_NAMESPACE_URIS_, node.namespaceURI) != -1); + goog.asserts.assert(node.localName == 'coord'); + var gxTrackObject = /** @type {ol.format.KMLGxTrackObject_} */ + (objectStack[objectStack.length - 1]); + goog.asserts.assert(goog.isObject(gxTrackObject)); + var flatCoordinates = gxTrackObject.flatCoordinates; + var s = ol.xml.getAllTextContent(node, false); + var re = + /^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i; + var m = re.exec(s); + if (m) { + var x = parseFloat(m[1]); + var y = parseFloat(m[2]); + var z = parseFloat(m[3]); + flatCoordinates.push(x, y, z, 0); + } else { + flatCoordinates.push(0, 0, 0, 0); + } +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {ol.geom.MultiLineString|undefined} MultiLineString. + */ +ol.format.KML.readGxMultiTrack_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(goog.array.indexOf( + ol.format.KML.GX_NAMESPACE_URIS_, node.namespaceURI) != -1); + goog.asserts.assert(node.localName == 'MultiTrack'); + var lineStrings = ol.xml.pushAndParse( + /** @type {Array.} */ ([]), + ol.format.KML.GX_MULTITRACK_GEOMETRY_PARSERS_, node, objectStack); + if (!goog.isDef(lineStrings)) { + return undefined; + } + var multiLineString = new ol.geom.MultiLineString(null); + multiLineString.setLineStrings(lineStrings); + return multiLineString; +}; + + +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {ol.geom.LineString|undefined} LineString. + */ +ol.format.KML.readGxTrack_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(goog.array.indexOf( + ol.format.KML.GX_NAMESPACE_URIS_, node.namespaceURI) != -1); + goog.asserts.assert(node.localName == 'Track'); + var gxTrackObject = ol.xml.pushAndParse( + /** @type {ol.format.KMLGxTrackObject_} */ ({ + flatCoordinates: [], + whens: [] + }), ol.format.KML.GX_TRACK_PARSERS_, node, objectStack); + if (!goog.isDef(gxTrackObject)) { + return undefined; + } + var flatCoordinates = gxTrackObject.flatCoordinates; + var whens = gxTrackObject.whens; + goog.asserts.assert(flatCoordinates.length / 4 == whens.length); + var i, ii; + for (i = 0, ii = Math.min(flatCoordinates.length, whens.length); i < ii; + ++i) { + flatCoordinates[4 * i + 3] = whens[i]; + } + var lineString = new ol.geom.LineString(null); + lineString.setFlatCoordinates(ol.geom.GeometryLayout.XYZM, flatCoordinates); + return lineString; +}; + + /** * @param {Node} node Node. * @param {Array.<*>} objectStack Object stack. @@ -951,6 +1051,45 @@ ol.format.KML.outerBoundaryIsParser_ = function(node, objectStack) { }; +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + */ +ol.format.KML.whenParser_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'when'); + var gxTrackObject = /** @type {ol.format.KMLGxTrackObject_} */ + (objectStack[objectStack.length - 1]); + goog.asserts.assert(goog.isObject(gxTrackObject)); + var whens = gxTrackObject.whens; + var s = ol.xml.getAllTextContent(node, false); + var re = + /^\s*(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(Z|(?:([+\-])(\d{2})(?::(\d{2}))?))\s*$/; + var m = re.exec(s); + if (m) { + var year = parseInt(m[1], 10); + var month = parseInt(m[2], 10) - 1; + var day = parseInt(m[3], 10); + var hour = parseInt(m[4], 10); + var minute = parseInt(m[5], 10); + var second = parseInt(m[6], 10); + var date = new Date(year, month, day, hour, minute, second, 0); + var t = date.getTime() / 1000; + if (m[7] != 'Z') { + var sign = m[8] == '-' ? -1 : 1; + t += sign * 60 * parseInt(m[9], 10); + if (goog.isDef(m[10])) { + t += sign * 60 * 60 * parseInt(m[10], 10); + } + } + whens.push(t); + } else { + whens.push(0); + } +}; + + /** * @const {Object.>} * @private @@ -993,6 +1132,19 @@ ol.format.KML.FLAT_LINEAR_RINGS_PARSERS_ = ol.xml.makeParsersNS( }); +/** + * @const {Object.>} + * @private + */ +ol.format.KML.GX_TRACK_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.NAMESPACE_URIS_, { + 'when': ol.format.KML.whenParser_ + }, ol.xml.makeParsersNS( + ol.format.KML.GX_NAMESPACE_URIS_, { + 'coord': ol.format.KML.gxCoordParser_ + })); + + /** * @const {Object.>} * @private @@ -1060,6 +1212,16 @@ ol.format.KML.MULTI_GEOMETRY_PARSERS_ = ol.xml.makeParsersNS( }); +/** + * @const {Object.>} + * @private + */ +ol.format.KML.GX_MULTITRACK_GEOMETRY_PARSERS_ = ol.xml.makeParsersNS( + ol.format.KML.GX_NAMESPACE_URIS_, { + 'Track': ol.xml.makeArrayPusher(ol.format.KML.readGxTrack_) + }); + + /** * @const {Object.>} * @private @@ -1106,7 +1268,12 @@ ol.format.KML.PLACEMARK_PARSERS_ = ol.xml.makeParsersNS( 'phoneNumber': ol.xml.makeObjectPropertySetter(ol.format.KML.readString_), 'styleUrl': ol.xml.makeObjectPropertySetter(ol.format.KML.readURI_), 'visibility': ol.xml.makeObjectPropertySetter(ol.format.KML.readBoolean_) - }); + }, ol.xml.makeParsersNS( + ol.format.KML.GX_NAMESPACE_URIS_, { + 'MultiTrack': ol.xml.makeObjectPropertySetter( + ol.format.KML.readGxMultiTrack_, 'geometry') + } + )); /** From d68a88da2615039be52666fddcb3259b7f88b054 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 17:53:46 +0100 Subject: [PATCH 727/919] Always return an array of features, even if no features are read --- src/ol/format/geojsonformat.js | 2 +- src/ol/format/xmlformat.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/format/geojsonformat.js b/src/ol/format/geojsonformat.js index 9c4acc76f9..8d975f6a4c 100644 --- a/src/ol/format/geojsonformat.js +++ b/src/ol/format/geojsonformat.js @@ -331,7 +331,7 @@ ol.format.GeoJSON.prototype.readFeaturesFromObject = function(object) { return features; } else { goog.asserts.fail(); - return null; + return []; } }; diff --git a/src/ol/format/xmlformat.js b/src/ol/format/xmlformat.js index e957102d82..0025cbd452 100644 --- a/src/ol/format/xmlformat.js +++ b/src/ol/format/xmlformat.js @@ -79,7 +79,7 @@ ol.format.XML.prototype.readFeatures = function(source) { return this.readFeaturesFromDocument(doc); } else { goog.asserts.fail(); - return null; + return []; } }; From e183a2daf1b8079cabdcefef65c5a87abc53724a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 18:01:27 +0100 Subject: [PATCH 728/919] Don't rely on getResponseXml --- src/ol/source/vectorfilesource.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ol/source/vectorfilesource.js b/src/ol/source/vectorfilesource.js index 865f647e55..b43fcc68bf 100644 --- a/src/ol/source/vectorfilesource.js +++ b/src/ol/source/vectorfilesource.js @@ -3,6 +3,7 @@ goog.provide('ol.source.VectorFile'); goog.require('goog.asserts'); +goog.require('goog.dom.xml'); goog.require('goog.net.XhrIo'); goog.require('ol.format.FormatType'); goog.require('ol.proj'); @@ -83,6 +84,9 @@ ol.source.VectorFile.prototype.handleXhrIo_ = function(event) { source = xhrIo.getResponseText(); } else if (type == ol.format.FormatType.XML) { source = xhrIo.getResponseXml(); + if (goog.isNull(source)) { + source = goog.dom.xml.loadXml(xhrIo.getResponseText()); + } } else { goog.asserts.fail(); } From 422966668dcccc2bca8d55fdf406be8d748db763 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 18:30:00 +0100 Subject: [PATCH 729/919] Do not put property name on following line Currently, bin/generate-exports.py will ignore properties whose name is not on the same line as the @property directive. --- src/objectliterals.jsdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 8dc27ba5d6..3f5b0319f8 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -277,8 +277,8 @@ /** * @typedef {Object} olx.interaction.DragAndDropOptions * @property {boolean|undefined} fitView Fit view. Default is `true`. - * @property {Array.|undefined} - * formatConstructors Format constructors. + * @property {Array.|undefined} formatConstructors + * Format constructors. * @property {ol.source.Vector|undefined} source Source. If this is defined * then features will be added to this source. * @property {ol.layer.Vector|undefined} layer Layer. If this is defined then From 2407ee1db9c999b96fb7bc3ac6c61aeb7c9d19c6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 19:27:27 +0100 Subject: [PATCH 730/919] Add options object to ol.render.FeaturesOverlay constructor --- src/objectliterals.jsdoc | 7 +++++++ src/ol/render/featuresoverlay.js | 22 +++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 8dc27ba5d6..88c4cca834 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -503,6 +503,13 @@ * supported. */ +/** + * @typedef {Object} olx.render.FeaturesOverlayOptions + * @property {Array.|ol.Collection|undefined} features Features. + * @property {ol.Map|undefined} map Map. + * @property {ol.style.StyleFunction|undefined} styleFunction Style function. + */ + /** * @typedef {Object} olx.source.BingMapsOptions * @property {string|undefined} culture Culture code. Default is `en-us`. diff --git a/src/ol/render/featuresoverlay.js b/src/ol/render/featuresoverlay.js index 3b5352c784..914cad6dfc 100644 --- a/src/ol/render/featuresoverlay.js +++ b/src/ol/render/featuresoverlay.js @@ -15,8 +15,11 @@ goog.require('ol.style.StyleFunction'); /** * @constructor + * @param {olx.render.FeaturesOverlayOptions=} opt_options Options. */ -ol.render.FeaturesOverlay = function() { +ol.render.FeaturesOverlay = function(opt_options) { + + var options = goog.isDef(opt_options) ? opt_options : options; /** * @private @@ -54,6 +57,23 @@ ol.render.FeaturesOverlay = function() { */ this.styleFunction_ = undefined; + if (goog.isDef(options.features)) { + if (goog.isArray(options.features)) { + this.setFeatures(new ol.Collection(goog.array.clone(options.features))); + } else { + goog.asserts.assertInstanceof(options.features, ol.Collection); + this.setFeatures(options.features); + } + } + + if (goog.isDef(options.styleFunction)) { + this.setStyleFunction(options.styleFunction); + } + + if (goog.isDef(options.map)) { + this.setMap(options.map); + } + }; From 8d1f56a7cb9053e7dd9ad1ad1edf86f78f0c06df Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 19:27:40 +0100 Subject: [PATCH 731/919] Export ol.render.FeaturesOverlay --- src/ol/render/featuresoverlay.exports | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/ol/render/featuresoverlay.exports diff --git a/src/ol/render/featuresoverlay.exports b/src/ol/render/featuresoverlay.exports new file mode 100644 index 0000000000..38cf3f5d98 --- /dev/null +++ b/src/ol/render/featuresoverlay.exports @@ -0,0 +1,5 @@ +@exportSymbol ol.render.FeaturesOverlay +@exportProperty ol.render.FeaturesOverlay.prototype.getFeatures +@exportProperty ol.render.FeaturesOverlay.prototype.setFeatures +@exportProperty ol.render.FeaturesOverlay.prototype.setMap +@exportProperty ol.render.FeaturesOverlay.prototype.setStyleFunction From c599c649abc37900623289304b40c4a032671f33 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Fri, 20 Dec 2013 13:12:35 -0700 Subject: [PATCH 732/919] Translate to image anchor point, scale, rotate, translate back --- src/ol/render/canvas/canvasreplay.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 9a63c29df4..14108be165 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -227,8 +227,11 @@ ol.render.canvas.Replay.prototype.replay_ = y = (y + 0.5) | 0; } if (scale != 1 || rotation !== 0) { + var centerX = x + anchorX; + var centerY = y + anchorY; ol.vec.Mat4.makeTransform2D( - localTransform, x, y, scale, scale, rotation, -x, -y); + localTransform, centerX, centerY, scale, scale, + rotation, -centerX, -centerY); context.setTransform( goog.vec.Mat4.getElement(localTransform, 0, 0), goog.vec.Mat4.getElement(localTransform, 1, 0), From f5b9687479377f17f637661351ef5d57c5a89cb7 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Fri, 20 Dec 2013 13:16:04 -0700 Subject: [PATCH 733/919] Translate to image center before scale and rotation Same treatment here as with the canvas replay. --- src/ol/render/canvas/canvasimmediate.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 0f86efa3fa..d3c96591bf 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -144,8 +144,11 @@ ol.render.canvas.Immediate.prototype.drawImages_ = function(geometry) { y = (y + 0.5) | 0; } if (state.scale != 1 || state.rotation !== 0) { + var centerX = x + state.anchorX; + var centerY = y + state.anchorY; ol.vec.Mat4.makeTransform2D(localTransform, - x, y, state.scale, state.scale, state.rotation, -x, -y); + centerX, centerY, state.scale, state.scale, + state.rotation, -centerX, -centerY); context.setTransform( goog.vec.Mat4.getElement(localTransform, 0, 0), goog.vec.Mat4.getElement(localTransform, 1, 0), From 81ea704043bfcc15c41b0ba4921e595577ff051e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 20 Dec 2013 21:47:50 +0100 Subject: [PATCH 734/919] Change cursor when over a feature in KML example --- examples/kml.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/kml.js b/examples/kml.js index 452e4d4853..bc948611b6 100644 --- a/examples/kml.js +++ b/examples/kml.js @@ -23,7 +23,7 @@ var vector = new ol.layer.Vector({ var map = new ol.Map({ layers: [raster, vector], renderer: ol.RendererHint.CANVAS, - target: 'map', + target: document.getElementById('map'), view: new ol.View2D({ center: [876970.8463461736, 5859807.853963373], zoom: 10 @@ -41,9 +41,11 @@ var displayFeatureInfo = function(pixel) { for (i = 0, ii = features.length; i < ii; ++i) { info.push(features[i].get('name')); } - document.getElementById('info').innerHTML = info.join(', ') || ' '; + document.getElementById('info').innerHTML = info.join(', ') || '(unkown)'; + map.getTarget().style.cursor = 'pointer'; } else { document.getElementById('info').innerHTML = ' '; + map.getTarget().style.cursor = ''; } }; From 4a96eaff609c5d4caf10fdd4d95585d83ddfb36d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 20 Dec 2013 22:05:11 +0100 Subject: [PATCH 735/919] Fix linestring hit detection bug --- src/ol/render/canvas/canvasreplay.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 9a63c29df4..b526a6bed8 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -798,7 +798,11 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry = ol.extent.extend(this.extent_, lineStringGeometry.getExtent()); this.setStrokeStyle_(); this.beginGeometry(lineStringGeometry); - this.hitDetectionInstructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); + this.hitDetectionInstructions.push( + [ol.render.canvas.Instruction.SET_STROKE_STYLE, + state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin, + state.miterLimit, state.lineDash], + [ol.render.canvas.Instruction.BEGIN_PATH]); var flatCoordinates = lineStringGeometry.getFlatCoordinates(); var stride = lineStringGeometry.getStride(); this.drawFlatCoordinates_( @@ -822,8 +826,12 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry = } ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent()); this.setStrokeStyle_(); - this.hitDetectionInstructions.push([ol.render.canvas.Instruction.BEGIN_PATH]); this.beginGeometry(multiLineStringGeometry); + this.hitDetectionInstructions.push( + [ol.render.canvas.Instruction.SET_STROKE_STYLE, + state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin, + state.miterLimit, state.lineDash], + [ol.render.canvas.Instruction.BEGIN_PATH]); var ends = multiLineStringGeometry.getEnds(); var flatCoordinates = multiLineStringGeometry.getFlatCoordinates(); var stride = multiLineStringGeometry.getStride(); From 979083bb2199b658014b35e154235311a11ee585 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 19 Dec 2013 13:43:12 +0100 Subject: [PATCH 736/919] Fix ol.format.IGC HFDTE parsing (HFDTEDDMMYY not HFDTEYYMMDD) --- src/ol/format/igcformat.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/format/igcformat.js b/src/ol/format/igcformat.js index 65884aa33a..4ebefe6f43 100644 --- a/src/ol/format/igcformat.js +++ b/src/ol/format/igcformat.js @@ -132,9 +132,9 @@ ol.format.IGC.prototype.readFeatureFromText = function(text) { properties[m[1]] = goog.string.trim(m[2]); m = ol.format.IGC.HFDTE_RECORD_RE_.exec(line); if (m) { - year = 2000 + parseInt(m[1], 10); + day = parseInt(m[1], 10); month = parseInt(m[2], 10); - day = parseInt(m[3], 10); + year = 2000 + parseInt(m[3], 10); } } } From 1f0c70fec38b04f0e81f431ac2946dc46bbd2ce1 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 19 Dec 2013 13:45:23 +0100 Subject: [PATCH 737/919] Parse HFDTE record before the others H records ol.format.IGC.H_RECORD_RE_ don't match HFDTE records (because of the ':'). --- src/ol/format/igcformat.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ol/format/igcformat.js b/src/ol/format/igcformat.js index 4ebefe6f43..257d981770 100644 --- a/src/ol/format/igcformat.js +++ b/src/ol/format/igcformat.js @@ -127,14 +127,16 @@ ol.format.IGC.prototype.readFeatureFromText = function(text) { flatCoordinates.push(date.getTime() / 1000); } } else if (line.charAt(0) == 'H') { - m = ol.format.IGC.H_RECORD_RE_.exec(line); + m = ol.format.IGC.HFDTE_RECORD_RE_.exec(line); if (m) { - properties[m[1]] = goog.string.trim(m[2]); - m = ol.format.IGC.HFDTE_RECORD_RE_.exec(line); + day = parseInt(m[1], 10); + month = parseInt(m[2], 10); + year = 2000 + parseInt(m[3], 10); + } else { + m = ol.format.IGC.H_RECORD_RE_.exec(line); if (m) { - day = parseInt(m[1], 10); - month = parseInt(m[2], 10); - year = 2000 + parseInt(m[3], 10); + properties[m[1]] = goog.string.trim(m[2]); + m = ol.format.IGC.HFDTE_RECORD_RE_.exec(line); } } } From 50b41f93f3736716eb26fcb3184aa40fca8c7954 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 20 Dec 2013 23:34:28 +0100 Subject: [PATCH 738/919] Correct calculation of ol.style.Circle canvas size --- src/ol/style/circlestyle.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/ol/style/circlestyle.js b/src/ol/style/circlestyle.js index 98b2c0a48b..30448d8f39 100644 --- a/src/ol/style/circlestyle.js +++ b/src/ol/style/circlestyle.js @@ -5,6 +5,7 @@ goog.provide('ol.style.Circle'); goog.require('goog.dom'); goog.require('goog.dom.TagName'); goog.require('ol.color'); +goog.require('ol.render.canvas'); goog.require('ol.style.Fill'); goog.require('ol.style.Image'); goog.require('ol.style.ImageState'); @@ -114,12 +115,19 @@ ol.style.Circle.prototype.load = goog.nullFunction; */ ol.style.Circle.prototype.render_ = function() { var canvas = this.canvas_; - var size = 2 * this.radius_ + 1; - if (!goog.isNull(this.stroke_) && goog.isDef(this.stroke_.width)) { - size += this.stroke_.width; + var strokeWidth; + if (goog.isNull(this.stroke_)) { + strokeWidth = 0; + } else { + strokeWidth = this.stroke_.getWidth(); + if (!goog.isDef(strokeWidth)) { + strokeWidth = ol.render.canvas.defaultLineWidth; + } } + var size = 2 * (this.radius_ + strokeWidth) + 1; + canvas.height = size; canvas.width = size; @@ -134,8 +142,7 @@ ol.style.Circle.prototype.render_ = function() { if (!goog.isNull(this.stroke_)) { var strokeColor = this.stroke_.getColor(); context.strokeStyle = ol.color.asString(strokeColor); - var strokeWidth = this.stroke_.getWidth(); - context.lineWidth = goog.isDef(strokeWidth) ? strokeWidth : 1; + context.lineWidth = strokeWidth; context.stroke(); } From 752a2acd110a0ab55254a46588e89522eabe7505 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:12:34 +0100 Subject: [PATCH 739/919] Use toString() instead of + '' --- src/ol/source/vectorsource.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index 818868ae6b..4f0154ed09 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -85,7 +85,7 @@ ol.source.Vector.prototype.addFeature = function(feature) { * @protected */ ol.source.Vector.prototype.addFeatureInternal = function(feature) { - var featureKey = goog.getUid(feature) + ''; + var featureKey = goog.getUid(feature).toString(); goog.asserts.assert(!(featureKey in this.featureChangeKeys_)); this.featureChangeKeys_[featureKey] = goog.events.listen(feature, goog.events.EventType.CHANGE, this.handleFeatureChange_, false, this); @@ -329,7 +329,7 @@ ol.source.Vector.prototype.removeFeature = function(feature) { * @protected */ ol.source.Vector.prototype.removeFeatureInternal = function(feature) { - var featureKey = goog.getUid(feature) + ''; + var featureKey = goog.getUid(feature).toString(); goog.asserts.assert(featureKey in this.featureChangeKeys_); goog.events.unlistenByKey(this.featureChangeKeys_[featureKey]); delete this.featureChangeKeys_[featureKey]; From 310d0dc792131e657df16650613815957e1845d4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:13:37 +0100 Subject: [PATCH 740/919] Rename replayes to replays --- src/ol/render/canvas/canvasreplay.js | 44 ++++++++++++++-------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 9b69bb1c55..24ccbd2a48 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1202,7 +1202,7 @@ ol.render.canvas.ReplayGroup = function(pixelRatio, tolerance) { * @type {Object.>} */ - this.replayesByZIndex_ = {}; + this.replaysByZIndex_ = {}; /** * @type {HTMLCanvasElement} @@ -1240,7 +1240,7 @@ ol.render.canvas.ReplayGroup = function(pixelRatio, tolerance) { ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent, transform, renderGeometryFunction) { /** @type {Array.} */ - var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); + var zs = goog.array.map(goog.object.getKeys(this.replaysByZIndex_), Number); goog.array.sort(zs); return this.replay_( zs, context, extent, transform, renderGeometryFunction); @@ -1263,11 +1263,11 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent, ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function(zs, context, extent, transform, renderGeometryFunction, geometryCallback) { - var i, ii, replayes, replayType, replay, result; + var i, ii, replays, replayType, replay, result; for (i = 0, ii = zs.length; i < ii; ++i) { - replayes = this.replayesByZIndex_[zs[i].toString()]; - for (replayType in replayes) { - replay = replayes[replayType]; + replays = this.replaysByZIndex_[zs[i].toString()]; + for (replayType in replays) { + replay = replays[replayType]; if (ol.extent.intersects(extent, replay.getExtent())) { result = replay.replayHitDetection( context, transform, renderGeometryFunction, geometryCallback); @@ -1294,11 +1294,11 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = */ ol.render.canvas.ReplayGroup.prototype.replay_ = function(zs, context, extent, transform, renderGeometryFunction) { - var i, ii, replayes, replayType, replay, result; + var i, ii, replays, replayType, replay, result; for (i = 0, ii = zs.length; i < ii; ++i) { - replayes = this.replayesByZIndex_[zs[i].toString()]; - for (replayType in replayes) { - replay = replayes[replayType]; + replays = this.replaysByZIndex_[zs[i].toString()]; + for (replayType in replays) { + replay = replays[replayType]; if (ol.extent.intersects(extent, replay.getExtent())) { result = replay.replay( context, transform, renderGeometryFunction); @@ -1333,7 +1333,7 @@ ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtCoordinate = function( -coordinate[0], -coordinate[1]); /** @type {Array.} */ - var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); + var zs = goog.array.map(goog.object.getKeys(this.replaysByZIndex_), Number); goog.array.sort(zs, function(a, b) { return b - a; }); var context = this.hitDetectionContext_; @@ -1364,11 +1364,11 @@ ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtCoordinate = function( */ ol.render.canvas.ReplayGroup.prototype.finish = function() { var zKey; - for (zKey in this.replayesByZIndex_) { - var replayes = this.replayesByZIndex_[zKey]; + for (zKey in this.replaysByZIndex_) { + var replays = this.replaysByZIndex_[zKey]; var replayKey; - for (replayKey in replayes) { - replayes[replayKey].finish(); + for (replayKey in replays) { + replays[replayKey].finish(); } } }; @@ -1380,17 +1380,17 @@ ol.render.canvas.ReplayGroup.prototype.finish = function() { ol.render.canvas.ReplayGroup.prototype.getReplay = function(zIndex, replayType) { var zIndexKey = goog.isDef(zIndex) ? zIndex.toString() : '0'; - var replayes = this.replayesByZIndex_[zIndexKey]; - if (!goog.isDef(replayes)) { - replayes = {}; - this.replayesByZIndex_[zIndexKey] = replayes; + var replays = this.replaysByZIndex_[zIndexKey]; + if (!goog.isDef(replays)) { + replays = {}; + this.replaysByZIndex_[zIndexKey] = replays; } - var replay = replayes[replayType]; + var replay = replays[replayType]; if (!goog.isDef(replay)) { var constructor = ol.render.canvas.BATCH_CONSTRUCTORS_[replayType]; goog.asserts.assert(goog.isDef(constructor)); replay = new constructor(this.pixelRatio_, this.tolerance_); - replayes[replayType] = replay; + replays[replayType] = replay; } return replay; }; @@ -1400,7 +1400,7 @@ ol.render.canvas.ReplayGroup.prototype.getReplay = * @inheritDoc */ ol.render.canvas.ReplayGroup.prototype.isEmpty = function() { - return goog.object.isEmpty(this.replayesByZIndex_); + return goog.object.isEmpty(this.replaysByZIndex_); }; From 3769d220d9d0f4cc35ce4b092a81e8215ea75bc9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:39:46 +0100 Subject: [PATCH 741/919] Add urls option to ol.source.VectorFile --- src/objectliterals.jsdoc | 1 + src/ol/source/vectorfilesource.js | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index bc5d5bf4c4..075a24cdbb 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -710,6 +710,7 @@ * @property {ol.proj.ProjectionLike} projection Projection. * @property {string|undefined} text Text. * @property {string|undefined} url URL. + * @property {Array.|undefined} urls URLs. */ /** diff --git a/src/ol/source/vectorfilesource.js b/src/ol/source/vectorfilesource.js index b43fcc68bf..584e1b5a21 100644 --- a/src/ol/source/vectorfilesource.js +++ b/src/ol/source/vectorfilesource.js @@ -57,9 +57,19 @@ ol.source.VectorFile = function(opt_options) { this.readFeatures_(options.text); } - if (goog.isDef(options.url)) { + if (goog.isDef(options.url) || goog.isDef(options.urls)) { this.setState(ol.source.State.LOADING); - goog.net.XhrIo.send(options.url, goog.bind(this.handleXhrIo_, this)); + var handleXhrIo = goog.bind(this.handleXhrIo_, this); + if (goog.isDef(options.url)) { + goog.net.XhrIo.send(options.url, handleXhrIo); + } + if (goog.isDef(options.urls)) { + var urls = options.urls; + var i, ii; + for (i = 0, ii = urls.length; i < ii; ++i) { + goog.net.XhrIo.send(urls[i], handleXhrIo); + } + } } }; From 8c0e2d3c1a3d4d6b2814de269cf7bb580f1634dc Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:40:09 +0100 Subject: [PATCH 742/919] Add urls option to ol.source.GeoJSON --- src/objectliterals.jsdoc | 1 + src/ol/source/geojsonsource.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 075a24cdbb..f16be827a7 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -525,6 +525,7 @@ * @property {ol.proj.ProjectionLike} reprojectTo Re-project to. * @property {string|undefined} text Text. * @property {string|undefined} url URL. + * @property {Array.|undefined} urls URLs. */ /** diff --git a/src/ol/source/geojsonsource.js b/src/ol/source/geojsonsource.js index 94da078387..4d37429d25 100644 --- a/src/ol/source/geojsonsource.js +++ b/src/ol/source/geojsonsource.js @@ -25,7 +25,8 @@ ol.source.GeoJSON = function(opt_options) { projection: options.projection, reprojectTo: options.reprojectTo, text: options.text, - url: options.url + url: options.url, + urls: options.urls }); }; From c1ceb60f509a70ba88a5111494e17677abf4c790 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:40:29 +0100 Subject: [PATCH 743/919] Add urls option to ol.source.KML --- src/objectliterals.jsdoc | 1 + src/ol/source/igcsource.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index f16be827a7..f13a5d0a4d 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -534,6 +534,7 @@ * Possible values are `barometric`, `gps`, and `none`. Default is `none`. * @property {string|undefined} text Text. * @property {string|undefined} url URL. + * @property {Array.|undefined} urls URLs. */ /** diff --git a/src/ol/source/igcsource.js b/src/ol/source/igcsource.js index 2ca98e470e..a74e0e851f 100644 --- a/src/ol/source/igcsource.js +++ b/src/ol/source/igcsource.js @@ -19,7 +19,8 @@ ol.source.IGC = function(opt_options) { altitudeMode: options.altitudeMode }), text: options.text, - url: options.url + url: options.url, + urls: options.urls }); }; From 699cfb3e3180fee406e6a346af289d5a0ebb60d4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:40:44 +0100 Subject: [PATCH 744/919] Add urls option to ol.source.KML --- src/objectliterals.jsdoc | 1 + src/ol/source/kmlsource.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index f13a5d0a4d..aa84090a20 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -567,6 +567,7 @@ * @property {ol.proj.ProjectionLike} reprojectTo Re-project to. * @property {string|undefined} text Text. * @property {string|undefined} url URL. + * @property {Array.|undefined} urls URLs. */ /** diff --git a/src/ol/source/kmlsource.js b/src/ol/source/kmlsource.js index ef951220ed..a10a5be288 100644 --- a/src/ol/source/kmlsource.js +++ b/src/ol/source/kmlsource.js @@ -24,7 +24,8 @@ ol.source.KML = function(opt_options) { projection: options.projection, reprojectTo: options.reprojectTo, text: options.text, - url: options.url + url: options.url, + urls: options.urls }); }; From d25ee8df0a6d64caf2ff408d10f50f4733d9cd1e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:41:21 +0100 Subject: [PATCH 745/919] Use urls option in igc example --- examples/igc.js | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/examples/igc.js b/examples/igc.js index 0d78b7c4c5..0c7a65e076 100644 --- a/examples/igc.js +++ b/examples/igc.js @@ -2,27 +2,17 @@ goog.require('ol.Attribution'); goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); -goog.require('ol.format.IGC'); goog.require('ol.geom.LineString'); goog.require('ol.geom.Point'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); -goog.require('ol.proj'); +goog.require('ol.source.IGC'); goog.require('ol.source.OSM'); -goog.require('ol.source.Vector'); goog.require('ol.style.Circle'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); -var tracklogs = [ - 'data/igc/Clement-Latour.igc', - 'data/igc/Damien-de-Baenst.igc', - 'data/igc/Sylvain-Dhonneur.igc', - 'data/igc/Tom-Payne.igc', - 'data/igc/Ulrich-Prinz.igc' -]; - var colors = { 'Clement Latour': 'rgba(0, 0, 255, 0.7)', 'Damien de Baesnt': 'rgba(0, 215, 255, 0.7)', @@ -47,7 +37,15 @@ var styleFunction = function(feature, resolution) { return styleArray; }; -var vectorSource = new ol.source.Vector(); +var vectorSource = new ol.source.IGC({ + urls: [ + 'data/igc/Clement-Latour.igc', + 'data/igc/Damien-de-Baenst.igc', + 'data/igc/Sylvain-Dhonneur.igc', + 'data/igc/Tom-Payne.igc', + 'data/igc/Ulrich-Prinz.igc' + ] +}); var map = new ol.Map({ layers: [ @@ -77,18 +75,6 @@ var map = new ol.Map({ }); -var transform = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); -var i, ii; -for (i = 0, ii = tracklogs.length; i < ii; ++i) { - $.get(tracklogs[i], function(data) { - var format = new ol.format.IGC(); - var feature = format.readFeature(data); - feature.getGeometry().transform(transform); - vectorSource.addFeature(feature); - }); -} - - var point = null; var line = null; var displaySnap = function(coordinate) { From 1142d555654ccc1df1bd66d06532ba520ccade1c Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Thu, 2 Jan 2014 14:41:21 +0100 Subject: [PATCH 746/919] Add skeleton for webgl immediate renderer --- src/ol/render/box.js | 2 +- src/ol/render/webgl/webglimmediate.js | 109 ++++++++++++++++++++++ src/ol/renderer/webgl/webglmaprenderer.js | 7 +- 3 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 src/ol/render/webgl/webglimmediate.js diff --git a/src/ol/render/box.js b/src/ol/render/box.js index 5e728073e4..374b68f07f 100644 --- a/src/ol/render/box.js +++ b/src/ol/render/box.js @@ -91,7 +91,6 @@ ol.render.Box.prototype.disposeInternal = function() { * @private */ ol.render.Box.prototype.handleMapPostCompose_ = function(event) { - this.geometry_ = this.createGeometry_(); var style = this.style_; goog.asserts.assert(!goog.isNull(style)); var render = event.getRender(); @@ -148,5 +147,6 @@ ol.render.Box.prototype.setCoordinates = function(startCoordinate, endCoordinate) { this.startCoordinate_ = startCoordinate; this.endCoordinate_ = endCoordinate; + this.geometry_ = this.createGeometry_(); this.requestMapRenderFrame_(); }; diff --git a/src/ol/render/webgl/webglimmediate.js b/src/ol/render/webgl/webglimmediate.js new file mode 100644 index 0000000000..0f5ce82f09 --- /dev/null +++ b/src/ol/render/webgl/webglimmediate.js @@ -0,0 +1,109 @@ +goog.provide('ol.render.webgl.Immediate'); + + + +/** + * @constructor + * @implements {ol.render.IRender} + * @param {ol.webgl.Context} context Context. + * @param {number} pixelRatio Pixel ratio. + * @struct + */ +ol.render.webgl.Immediate = function(context, pixelRatio) { +}; + + +/** + * @param {ol.Feature} feature Feature. + * @param {ol.style.Style} style Style. + */ +ol.render.webgl.Immediate.prototype.drawFeature = function(feature, style) { +}; + + +/** + * @param {ol.geom.GeometryCollection} geometryCollectionGeometry Geometry + * collection. + * @param {Object} data Opaque data object. + */ +ol.render.webgl.Immediate.prototype.drawGeometryCollectionGeometry = + function(geometryCollectionGeometry, data) { +}; + + +/** + * @param {ol.geom.Point} pointGeometry Point geometry. + * @param {Object} data Opaque data object. + */ +ol.render.webgl.Immediate.prototype.drawPointGeometry = + function(pointGeometry, data) { +}; + + +/** + * @param {ol.geom.LineString} lineStringGeometry Line string geometry. + * @param {Object} data Opaque data object. + */ +ol.render.webgl.Immediate.prototype.drawLineStringGeometry = + function(lineStringGeometry, data) { +}; + + +/** + * @param {ol.geom.MultiLineString} multiLineStringGeometry + * MultiLineString geometry. + * @param {Object} data Opaque data object. + */ +ol.render.webgl.Immediate.prototype.drawMultiLineStringGeometry = + function(multiLineStringGeometry, data) { +}; + + +/** + * @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry. + * @param {Object} data Opaque data object. + */ +ol.render.webgl.Immediate.prototype.drawMultiPointGeometry = + function(multiPointGeometry, data) { +}; + + +/** + * @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry. + * @param {Object} data Opaque data object. + */ +ol.render.webgl.Immediate.prototype.drawMultiPolygonGeometry = + function(multiPolygonGeometry, data) { +}; + + +/** + * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. + * @param {Object} data Opaque data object. + */ +ol.render.webgl.Immediate.prototype.drawPolygonGeometry = + function(polygonGeometry, data) { +}; + + +/** + * @param {ol.style.Fill} fillStyle Fill style. + * @param {ol.style.Stroke} strokeStyle Stroke style. + */ +ol.render.webgl.Immediate.prototype.setFillStrokeStyle = + function(fillStyle, strokeStyle) { +}; + + +/** + * @param {ol.style.Image} imageStyle Image style. + */ +ol.render.webgl.Immediate.prototype.setImageStyle = function(imageStyle) { +}; + + +/** + * @param {ol.style.Text} textStyle Text style. + */ +ol.render.webgl.Immediate.prototype.setTextStyle = function(textStyle) { +}; diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index bf3e5ecacc..494551bbd6 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -20,6 +20,7 @@ goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); goog.require('ol.render.Event'); goog.require('ol.render.EventType'); +goog.require('ol.render.webgl.Immediate'); goog.require('ol.renderer.Map'); goog.require('ol.renderer.webgl.ImageLayer'); goog.require('ol.renderer.webgl.Layer'); @@ -282,10 +283,12 @@ ol.renderer.webgl.Map.prototype.createLayerRenderer = function(layer) { ol.renderer.webgl.Map.prototype.dispatchComposeEvent_ = function(type, frameState) { var map = this.getMap(); - var context = this.getContext(); if (map.hasListener(type)) { + var context = this.getContext(); + var render = new ol.render.webgl.Immediate(context, + frameState.devicePixelRatio); var composeEvent = new ol.render.Event( - type, map, null, frameState, null, context); + type, map, render, frameState, null, context); map.dispatchEvent(composeEvent); } }; From 39cf993b39ba5de360bcdbaf491bd52cfcc1a0b2 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Thu, 2 Jan 2014 14:43:01 +0100 Subject: [PATCH 747/919] Revert "Remove DragZoom from default interactions" This reverts commit c2330b978644da6e5fb3d9447a5e5ce20e62ed93. --- src/objectliterals.jsdoc | 2 ++ src/ol/interaction/interactiondefaults.js | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index bc5d5bf4c4..9765ed1fd1 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -342,6 +342,8 @@ * desired. Default is `true`. * @property {boolean|undefined} mouseWheelZoom Whether mousewheel zoom is * desired. Default is `true`. + * @property {boolean|undefined} shiftDragZoom Whether Shift-drag zoom is + * desired. Default is `true`. * @property {boolean|undefined} touchPan Whether touch pan is * desired. Default is `true`. * @property {boolean|undefined} touchRotate Whether touch rotate is desired. Default is `true`. diff --git a/src/ol/interaction/interactiondefaults.js b/src/ol/interaction/interactiondefaults.js index b664e24edb..32b4e5569c 100644 --- a/src/ol/interaction/interactiondefaults.js +++ b/src/ol/interaction/interactiondefaults.js @@ -5,6 +5,7 @@ goog.require('ol.Kinetic'); goog.require('ol.interaction.DoubleClickZoom'); goog.require('ol.interaction.DragPan'); goog.require('ol.interaction.DragRotate'); +goog.require('ol.interaction.DragZoom'); goog.require('ol.interaction.KeyboardPan'); goog.require('ol.interaction.KeyboardZoom'); goog.require('ol.interaction.MouseWheelZoom'); @@ -98,6 +99,12 @@ ol.interaction.defaults = function(opt_options) { })); } + var shiftDragZoom = goog.isDef(options.shiftDragZoom) ? + options.shiftDragZoom : true; + if (shiftDragZoom) { + interactions.push(new ol.interaction.DragZoom()); + } + return interactions; }; From 47d9fd354b7d3b81cc423ed21c86f8c5b1691638 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Thu, 2 Jan 2014 14:42:39 +0100 Subject: [PATCH 748/919] Remove dragzoom example Since it has been re-added to default controls --- examples/dragzoom.html | 52 ------------------------------------------ examples/dragzoom.js | 38 ------------------------------ 2 files changed, 90 deletions(-) delete mode 100644 examples/dragzoom.html delete mode 100644 examples/dragzoom.js diff --git a/examples/dragzoom.html b/examples/dragzoom.html deleted file mode 100644 index 18becc24fe..0000000000 --- a/examples/dragzoom.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - DragZoom example - - - - - -
- -
-
-
-
-
- -
- -
-

DragZoom example

-

Example of dragzoom interaction.

-
-

Press SHIFT and drag the map to trigger the interaction.

-

See the dragzoom.js source to see how this is done.

-

For the moment, only works with the canvas renderer.

-
-
dragzoom, openstreetmap
-
- -
- -
- - - - - - diff --git a/examples/dragzoom.js b/examples/dragzoom.js deleted file mode 100644 index 0b91dacbdb..0000000000 --- a/examples/dragzoom.js +++ /dev/null @@ -1,38 +0,0 @@ -goog.require('ol.Map'); -goog.require('ol.RendererHint'); -goog.require('ol.View2D'); -goog.require('ol.interaction'); -goog.require('ol.interaction.DragZoom'); -goog.require('ol.layer.Tile'); -goog.require('ol.source.OSM'); -goog.require('ol.style.Fill'); -goog.require('ol.style.Stroke'); -goog.require('ol.style.Style'); - - -var map = new ol.Map({ - interactions: ol.interaction.defaults().extend([ - new ol.interaction.DragZoom({ - style: new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'rgba(255,0,0,1)', - width: 2 - }), - fill: new ol.style.Fill({ - color: 'rgba(155,0,0,0.2)' - }) - }) - }) - ]), - layers: [ - new ol.layer.Tile({ - source: new ol.source.OSM() - }) - ], - renderer: ol.RendererHint.CANVAS, - target: 'map', - view: new ol.View2D({ - center: [0, 0], - zoom: 2 - }) -}); From 3461b026b689add34c429dc704eaf2966fbf3915 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Fri, 3 Jan 2014 11:51:45 +0100 Subject: [PATCH 749/919] Do not draw a rotated box, in dragbox/dragzoom Use pixels to draw a straight box, perserving rotation while zooming --- src/ol/interaction/dragboxinteraction.js | 12 ++++-- src/ol/interaction/dragzoominteraction.js | 2 - src/ol/render/box.js | 47 ++++++++++++----------- 3 files changed, 34 insertions(+), 27 deletions(-) diff --git a/src/ol/interaction/dragboxinteraction.js b/src/ol/interaction/dragboxinteraction.js index d50d887838..d04e8a4e29 100644 --- a/src/ol/interaction/dragboxinteraction.js +++ b/src/ol/interaction/dragboxinteraction.js @@ -92,6 +92,12 @@ ol.interaction.DragBox = function(opt_options) { */ this.box_ = new ol.render.Box(style); + /** + * @type {ol.Pixel} + * @private + */ + this.startPixel_ = null; + /** * @private * @type {ol.events.ConditionType} @@ -107,8 +113,7 @@ goog.inherits(ol.interaction.DragBox, ol.interaction.Drag); * @inheritDoc */ ol.interaction.DragBox.prototype.handleDrag = function(mapBrowserEvent) { - this.box_.setCoordinates( - this.startCoordinate, mapBrowserEvent.getCoordinate()); + this.box_.setPixels(this.startPixel_, mapBrowserEvent.getPixel()); }; @@ -150,8 +155,9 @@ ol.interaction.DragBox.prototype.handleDragStart = function(mapBrowserEvent) { var browserEvent = mapBrowserEvent.browserEvent; if (browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) { - this.box_.setCoordinates(this.startCoordinate, this.startCoordinate); + this.startPixel_ = mapBrowserEvent.getPixel(); this.box_.setMap(mapBrowserEvent.map); + this.box_.setPixels(this.startPixel_, this.startPixel_); this.dispatchEvent(new ol.DragBoxEvent(ol.DragBoxEventType.BOXSTART, mapBrowserEvent.getCoordinate())); return true; diff --git a/src/ol/interaction/dragzoominteraction.js b/src/ol/interaction/dragzoominteraction.js index 64c7e959ef..ccb909d10c 100644 --- a/src/ol/interaction/dragzoominteraction.js +++ b/src/ol/interaction/dragzoominteraction.js @@ -52,7 +52,5 @@ ol.interaction.DragZoom.prototype.onBoxEnd = function() { var view = this.getMap().getView().getView2D(); view.fitExtent(this.getGeometry().getExtent(), this.getMap().getSize()); - // FIXME we should preserve rotation - view.setRotation(0); }, this)); }; diff --git a/src/ol/render/box.js b/src/ol/render/box.js index 374b68f07f..456c613bc7 100644 --- a/src/ol/render/box.js +++ b/src/ol/render/box.js @@ -3,6 +3,7 @@ goog.provide('ol.render.Box'); goog.require('goog.Disposable'); +goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.events'); goog.require('ol.geom.Polygon'); @@ -31,15 +32,15 @@ ol.render.Box = function(style) { /** * @private - * @type {ol.Coordinate} + * @type {ol.Pixel} */ - this.startCoordinate_ = null; + this.startPixel_ = null; /** * @private - * @type {ol.Coordinate} + * @type {ol.Pixel} */ - this.endCoordinate_ = null; + this.endPixel_ = null; /** * @private @@ -62,19 +63,22 @@ goog.inherits(ol.render.Box, goog.Disposable); * @return {ol.geom.Polygon} Geometry. */ ol.render.Box.prototype.createGeometry_ = function() { - goog.asserts.assert(!goog.isNull(this.startCoordinate_)); - goog.asserts.assert(!goog.isNull(this.endCoordinate_)); - var startCoordinate = this.startCoordinate_; - var endCoordinate = this.endCoordinate_; - var coordinates = [ + goog.asserts.assert(!goog.isNull(this.startPixel_)); + goog.asserts.assert(!goog.isNull(this.endPixel_)); + goog.asserts.assert(!goog.isNull(this.map_)); + var startPixel = this.startPixel_; + var endPixel = this.endPixel_; + var pixels = [ [ - startCoordinate, - [startCoordinate[0], endCoordinate[1]], - endCoordinate, - [endCoordinate[0], startCoordinate[1]] + startPixel, + [startPixel[0], endPixel[1]], + endPixel, + [endPixel[0], startPixel[1]] ] ]; - return new ol.geom.Polygon(coordinates); + var coordinates = goog.array.map(pixels[0], + this.map_.getCoordinateFromPixel, this.map_); + return new ol.geom.Polygon([coordinates]); }; @@ -112,8 +116,8 @@ ol.render.Box.prototype.getGeometry = function() { */ ol.render.Box.prototype.requestMapRenderFrame_ = function() { if (!goog.isNull(this.map_) && - !goog.isNull(this.startCoordinate_) && - !goog.isNull(this.endCoordinate_)) { + !goog.isNull(this.startPixel_) && + !goog.isNull(this.endPixel_)) { this.map_.requestRenderFrame(); } }; @@ -140,13 +144,12 @@ ol.render.Box.prototype.setMap = function(map) { /** - * @param {ol.Coordinate} startCoordinate Start coordinate. - * @param {ol.Coordinate} endCoordinate End coordinate. + * @param {ol.Pixel} startPixel Start pixel. + * @param {ol.Pixel} endPixel End pixel. */ -ol.render.Box.prototype.setCoordinates = - function(startCoordinate, endCoordinate) { - this.startCoordinate_ = startCoordinate; - this.endCoordinate_ = endCoordinate; +ol.render.Box.prototype.setPixels = function(startPixel, endPixel) { + this.startPixel_ = startPixel; + this.endPixel_ = endPixel; this.geometry_ = this.createGeometry_(); this.requestMapRenderFrame_(); }; From 1e54947ebbffdc31e0768682bebebbf16f1fb0fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 3 Jan 2014 15:48:23 +0100 Subject: [PATCH 750/919] Only hit-detect visible features --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index a6001644bd..6af2cb06f0 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -30,6 +30,12 @@ ol.renderer.canvas.VectorLayer = function(mapRenderer, vectorLayer) { */ this.dirty_ = false; + /** + * @private + * @type {ol.Extent} + */ + this.frameStateExtent_ = ol.extent.createEmpty(); + /** * @private * @type {number} @@ -96,14 +102,14 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = if (goog.isNull(this.replayGroup_)) { return undefined; } else { - goog.asserts.assert(!ol.extent.isEmpty(this.renderedExtent_)); + goog.asserts.assert(!ol.extent.isEmpty(this.frameStateExtent_)); goog.asserts.assert(!isNaN(this.renderedResolution_)); goog.asserts.assert(!isNaN(this.renderedRotation_)); var coordinate = this.getMap().getCoordinateFromPixel(pixel); var layer = this.getLayer(); var renderGeometryFunction = this.getRenderGeometryFunction_(); goog.asserts.assert(goog.isFunction(renderGeometryFunction)); - return this.replayGroup_.forEachGeometryAtCoordinate(this.renderedExtent_, + return this.replayGroup_.forEachGeometryAtCoordinate(this.frameStateExtent_, this.renderedResolution_, this.renderedRotation_, coordinate, renderGeometryFunction, /** @@ -174,6 +180,8 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = var frameStateResolution = frameState.view2DState.resolution; var pixelRatio = frameState.devicePixelRatio; + this.frameStateExtent_ = frameStateExtent; + if (!this.dirty_ && this.renderedResolution_ == frameStateResolution && this.renderedRevision_ == vectorSource.getRevision() && From 6dd504dcb27b54c68a7a6fc1e78b96de83ab2b50 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Fri, 3 Jan 2014 14:23:22 +0100 Subject: [PATCH 751/919] Animate DragZoom --- src/ol/interaction/dragzoominteraction.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/ol/interaction/dragzoominteraction.js b/src/ol/interaction/dragzoominteraction.js index ccb909d10c..b6bd06b543 100644 --- a/src/ol/interaction/dragzoominteraction.js +++ b/src/ol/interaction/dragzoominteraction.js @@ -2,11 +2,19 @@ goog.provide('ol.interaction.DragZoom'); goog.require('goog.asserts'); goog.require('ol.events.condition'); +goog.require('ol.extent'); goog.require('ol.interaction.DragBox'); +goog.require('ol.interaction.Interaction'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); +/** + * @define {number} Timeout duration. + */ +ol.interaction.DRAGZOOM_ANIMATION_DURATION = 200; + + /** * Allows the user to zoom the map by clicking and dragging on the map, @@ -47,10 +55,12 @@ goog.inherits(ol.interaction.DragZoom, ol.interaction.DragBox); * @inheritDoc */ ol.interaction.DragZoom.prototype.onBoxEnd = function() { - this.getMap().withFrozenRendering(goog.bind(function() { - // FIXME works for View2D only - var view = this.getMap().getView().getView2D(); - - view.fitExtent(this.getGeometry().getExtent(), this.getMap().getSize()); - }, this)); + // FIXME works for View2D only + var map = this.getMap(); + var view = map.getView().getView2D(); + var extent = this.getGeometry().getExtent(); + var center = ol.extent.getCenter(extent); + ol.interaction.Interaction.zoom(map, view, + view.getResolutionForExtent(extent, map.getSize()), + center, ol.interaction.DRAGZOOM_ANIMATION_DURATION); }; From 2ebfba2235ace17be24655ee13f4bf9acafa8738 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Fri, 3 Jan 2014 14:36:51 +0100 Subject: [PATCH 752/919] add Immediate renderer to webgl layer postcompose event --- src/ol/renderer/webgl/webgllayerrenderer.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/webgl/webgllayerrenderer.js b/src/ol/renderer/webgl/webgllayerrenderer.js index 78897f8ffa..3c78897a3a 100644 --- a/src/ol/renderer/webgl/webgllayerrenderer.js +++ b/src/ol/renderer/webgl/webgllayerrenderer.js @@ -7,6 +7,7 @@ goog.require('ol.color.Matrix'); goog.require('ol.layer.Layer'); goog.require('ol.render.Event'); goog.require('ol.render.EventType'); +goog.require('ol.render.webgl.Immediate'); goog.require('ol.renderer.Layer'); goog.require('ol.renderer.webgl.map.shader.Color'); goog.require('ol.renderer.webgl.map.shader.Default'); @@ -237,8 +238,10 @@ ol.renderer.webgl.Layer.prototype.dispatchComposeEvent_ = function(type, context, frameState) { var layer = this.getLayer(); if (layer.hasListener(type)) { + var render = new ol.render.webgl.Immediate(context, + frameState.devicePixelRatio); var composeEvent = new ol.render.Event( - type, layer, null, frameState, null, context); + type, layer, render, frameState, null, context); layer.dispatchEvent(composeEvent); } }; From 061fed50b70d05a892cbadd278515913848fa264 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 3 Jan 2014 17:23:11 +0100 Subject: [PATCH 753/919] Move all styleFunction types into ol.feature --- src/objectliterals.jsdoc | 2 +- src/ol/feature.js | 49 +++++++++++++++---- src/ol/format/kmlformat.js | 6 +-- src/ol/layer/vectorlayer.js | 22 ++------- src/ol/render/featuresoverlay.js | 6 +-- .../canvas/canvasvectorlayerrenderer.js | 5 +- src/ol/style/style.js | 7 --- 7 files changed, 54 insertions(+), 43 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index bc5d5bf4c4..0f07cb6834 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -473,7 +473,7 @@ * @property {number|undefined} opacity Opacity. 0-1. Default is `1`. * @property {number|undefined} saturation Saturation. * @property {ol.source.Vector} source Source. - * @property {ol.style.StyleFunction|undefined} styleFunction Style function. + * @property {ol.feature.StyleFunction|undefined} styleFunction Style function. * @property {boolean|undefined} visible Visibility. Default is `true` (visible). * @todo stability experimental */ diff --git a/src/ol/feature.js b/src/ol/feature.js index f930fff6f8..1335ca733e 100644 --- a/src/ol/feature.js +++ b/src/ol/feature.js @@ -1,8 +1,10 @@ goog.provide('ol.Feature'); +goog.provide('ol.feature'); goog.require('goog.asserts'); goog.require('goog.events'); goog.require('goog.events.EventType'); +goog.require('goog.functions'); goog.require('ol.Object'); goog.require('ol.geom.Geometry'); goog.require('ol.style.Style'); @@ -16,12 +18,6 @@ ol.FeatureProperty = { }; -/** - * @typedef {function(this: ol.Feature, number): Array.} - */ -ol.FeatureStyleFunction; - - /** * @constructor @@ -127,10 +123,10 @@ ol.Feature.prototype.getRevision = function() { /** - * @return {ol.FeatureStyleFunction|undefined} Style function. + * @return {ol.feature.FeatureStyleFunction|undefined} Style function. */ ol.Feature.prototype.getStyleFunction = function() { - return /** @type {ol.FeatureStyleFunction|undefined} */ ( + return /** @type {ol.feature.FeatureStyleFunction|undefined} */ ( this.get(ol.FeatureProperty.STYLE_FUNCTION)); }; goog.exportProperty( @@ -185,7 +181,8 @@ goog.exportProperty( /** - * @param {ol.FeatureStyleFunction|undefined} styleFunction Style function. + * @param {ol.feature.FeatureStyleFunction|undefined} styleFunction Style + * function. */ ol.Feature.prototype.setStyleFunction = function(styleFunction) { this.set(ol.FeatureProperty.STYLE_FUNCTION, styleFunction); @@ -217,3 +214,37 @@ ol.Feature.prototype.setGeometryName = function(name) { this.handleGeometryChanged_, false, this); this.handleGeometryChanged_(); }; + + +/** + * @typedef {function(this: ol.Feature, number): Array.} + */ +ol.feature.FeatureStyleFunction; + + +/** + * @param {number} resolution Resolution. + * @return {Array.} Style. + * @this {ol.Feature} + */ +ol.feature.defaultFeatureStyleFunction = goog.functions.constant([]); + + +/** + * @typedef {function(ol.Feature, number): Array.} + */ +ol.feature.StyleFunction; + + +/** + * @param {ol.Feature} feature Feature. + * @param {number} resolution Resolution. + * @return {Array.} Style. + */ +ol.feature.defaultStyleFunction = function(feature, resolution) { + var featureStyleFunction = feature.getStyleFunction(); + if (!goog.isDef(featureStyleFunction)) { + featureStyleFunction = ol.feature.defaultFeatureStyleFunction; + } + return featureStyleFunction.call(feature, resolution); +}; diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index 291482a23f..46b85ecfc2 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -18,6 +18,7 @@ goog.require('goog.math'); goog.require('goog.object'); goog.require('goog.string'); goog.require('ol.Feature'); +goog.require('ol.feature'); goog.require('ol.format.XML'); goog.require('ol.geom.GeometryCollection'); goog.require('ol.geom.LineString'); @@ -78,7 +79,7 @@ ol.format.KML = function(opt_options) { /** * @private - * @type {function(this: ol.Feature, number): Array.} + * @type {ol.feature.FeatureStyleFunction} */ this.sharedStyleFeatureStyleFunction_ = /** @@ -238,8 +239,7 @@ ol.format.KML.defaultFeatureStyleFunction_ = function(resolution) { /** * @param {ol.style.Style} style Style. * @private - * @return {function(this: ol.Feature, number): Array.} Feature - * style function. + * @return {ol.feature.FeatureStyleFunction} Feature style function. */ ol.format.KML.makeFeatureStyleFunction_ = function(style) { // FIXME handle styleMap? diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js index 35e5cd535c..0856167791 100644 --- a/src/ol/layer/vectorlayer.js +++ b/src/ol/layer/vectorlayer.js @@ -1,5 +1,6 @@ goog.provide('ol.layer.Vector'); +goog.require('ol.feature'); goog.require('ol.layer.Layer'); goog.require('ol.source.Vector'); @@ -35,21 +36,6 @@ ol.layer.Vector = function(opt_options) { goog.inherits(ol.layer.Vector, ol.layer.Layer); -/** - * @param {ol.Feature} feature Feature. - * @param {number} resolution Resolution. - * @return {Array.} Styles. - */ -ol.layer.Vector.defaultStyleFunction = function(feature, resolution) { - var featureStyleFunction = feature.getStyleFunction(); - if (goog.isDef(featureStyleFunction)) { - return featureStyleFunction.call(feature, resolution); - } else { - return null; - } -}; - - /** * @return {function(ol.geom.Geometry): boolean|undefined} Render geometry * function. @@ -65,10 +51,10 @@ goog.exportProperty( /** - * @return {ol.style.StyleFunction|undefined} Style function. + * @return {ol.feature.StyleFunction|undefined} Style function. */ ol.layer.Vector.prototype.getStyleFunction = function() { - return /** @type {ol.style.StyleFunction|undefined} */ ( + return /** @type {ol.feature.StyleFunction|undefined} */ ( this.get(ol.layer.VectorProperty.STYLE_FUNCTION)); }; goog.exportProperty( @@ -101,7 +87,7 @@ goog.exportProperty( /** - * @param {ol.style.StyleFunction|undefined} styleFunction Style function. + * @param {ol.feature.StyleFunction|undefined} styleFunction Style function. */ ol.layer.Vector.prototype.setStyleFunction = function(styleFunction) { this.set(ol.layer.VectorProperty.STYLE_FUNCTION, styleFunction); diff --git a/src/ol/render/featuresoverlay.js b/src/ol/render/featuresoverlay.js index 3b5352c784..4885dcd872 100644 --- a/src/ol/render/featuresoverlay.js +++ b/src/ol/render/featuresoverlay.js @@ -8,8 +8,8 @@ goog.require('goog.object'); goog.require('ol.Collection'); goog.require('ol.CollectionEventType'); goog.require('ol.Feature'); +goog.require('ol.feature'); goog.require('ol.render.EventType'); -goog.require('ol.style.StyleFunction'); @@ -50,7 +50,7 @@ ol.render.FeaturesOverlay = function() { /** * @private - * @type {ol.style.StyleFunction|undefined} + * @type {ol.feature.StyleFunction|undefined} */ this.styleFunction_ = undefined; @@ -191,7 +191,7 @@ ol.render.FeaturesOverlay.prototype.setMap = function(map) { /** - * @param {ol.style.StyleFunction} styleFunction Style function. + * @param {ol.feature.StyleFunction} styleFunction Style function. */ ol.render.FeaturesOverlay.prototype.setStyleFunction = function(styleFunction) { this.styleFunction_ = styleFunction; diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index a6001644bd..fe7a300da7 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -6,6 +6,7 @@ goog.require('goog.events.EventType'); goog.require('goog.functions'); goog.require('ol.ViewHint'); goog.require('ol.extent'); +goog.require('ol.feature'); goog.require('ol.layer.Vector'); goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.renderer.canvas.Layer'); @@ -197,7 +198,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = var styleFunction = vectorLayer.getStyleFunction(); if (!goog.isDef(styleFunction)) { - styleFunction = ol.layer.Vector.defaultStyleFunction; + styleFunction = ol.feature.defaultStyleFunction; } var tolerance = frameStateResolution / (2 * pixelRatio); var replayGroup = new ol.render.canvas.ReplayGroup(pixelRatio, tolerance); @@ -226,7 +227,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = * @param {ol.Feature} feature Feature. * @param {number} resolution Resolution. * @param {number} pixelRatio Pixel ratio. - * @param {ol.style.StyleFunction} styleFunction Style function. + * @param {ol.feature.StyleFunction} styleFunction Style function. * @param {ol.render.canvas.ReplayGroup} replayGroup Replay group. * @return {boolean} `true` if an image is loading. */ diff --git a/src/ol/style/style.js b/src/ol/style/style.js index efb8d8f340..2016ee3f54 100644 --- a/src/ol/style/style.js +++ b/src/ol/style/style.js @@ -1,5 +1,4 @@ goog.provide('ol.style.Style'); -goog.provide('ol.style.StyleFunction'); goog.require('ol.style.Fill'); goog.require('ol.style.Image'); @@ -86,9 +85,3 @@ ol.style.Style.prototype.getText = function() { ol.style.Style.prototype.getZIndex = function() { return this.zIndex_; }; - - -/** - * @typedef {function(ol.Feature, number): Array.} - */ -ol.style.StyleFunction; From 2a47bf0775e01a8ae802c4a01a06146df2fd04d7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 15:58:07 +0100 Subject: [PATCH 754/919] Improve type checking in ol.geom.flat --- src/ol/geom/flatgeom.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 588858d624..fdc9f8f24b 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -488,6 +488,7 @@ ol.geom.flat.linearRingsContainsXY = ol.geom.flat.linearRingsGetInteriorPoint = function(flatCoordinates, offset, ends, stride, y, opt_point) { var i, ii, x, x1, x2, y1, y2; + /** @type {Array.} */ var intersections = []; // Calculate intersections with the horizontal line var end = ends[0]; From 58b4d73f3bad08b427a205ba5d3b332521e83090 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 15:58:29 +0100 Subject: [PATCH 755/919] Improve type checking in ol.geom.simplify --- src/ol/geom/simplifygeom.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/geom/simplifygeom.js b/src/ol/geom/simplifygeom.js index 427f8b22ce..0a917b636e 100644 --- a/src/ol/geom/simplifygeom.js +++ b/src/ol/geom/simplifygeom.js @@ -86,6 +86,7 @@ ol.geom.simplify.douglasPeucker = function(flatCoordinates, offset, end, var markers = new MarkerArray(n); markers[0] = 1; markers[n - 1] = 1; + /** @type {Array.} */ var stack = [offset, end - stride]; var index = 0; var i; From 8ed6d760f72ab7a1e96f048ad1df1d59aac699e2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 15:52:26 +0100 Subject: [PATCH 756/919] Improve type checking in ol.color.fromString --- src/ol/color/color.js | 94 ++++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 45 deletions(-) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index c4f3a4f476..55bfe3f30d 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -142,56 +142,60 @@ ol.color.equals = function(color1, color2) { * @param {ol.Color=} opt_color Color. * @return {ol.Color} Color. */ -ol.color.fromString = (function() { +ol.color.fromString = ( + /** + * @return {function(string, ol.Color=): ol.Color} + */ + function() { - // We maintain a small cache of parsed strings. To provide cheap LRU-like - // semantics, whenever the cache grows too large we simply delete an - // arbitrary 25% of the entries. + // We maintain a small cache of parsed strings. To provide cheap LRU-like + // semantics, whenever the cache grows too large we simply delete an + // arbitrary 25% of the entries. - /** - * @const - * @type {number} - */ - var MAX_CACHE_SIZE = 1024; - - /** - * @type {Object.} - */ - var cache = {}; - - /** - * @type {number} - */ - var cacheSize = 0; - - return ( /** - * @param {string} s String. - * @param {ol.Color=} opt_color Color. - * @return {ol.Color} Color. + * @const + * @type {number} */ - function(s, opt_color) { - var color; - if (cache.hasOwnProperty(s)) { - color = cache[s]; - } else { - if (cacheSize >= MAX_CACHE_SIZE) { - var i = 0; - var key; - for (key in cache) { - if (i++ & 3 === 0) { - delete cache[key]; - } - } - } - color = ol.color.fromStringInternal_(s); - cache[s] = color; - ++cacheSize; - } - return ol.color.returnOrUpdate(color, opt_color); - }); + var MAX_CACHE_SIZE = 1024; -})(); + /** + * @type {Object.} + */ + var cache = {}; + + /** + * @type {number} + */ + var cacheSize = 0; + + return ( + /** + * @param {string} s String. + * @param {ol.Color=} opt_color Color. + * @return {ol.Color} Color. + */ + function(s, opt_color) { + var color; + if (cache.hasOwnProperty(s)) { + color = cache[s]; + } else { + if (cacheSize >= MAX_CACHE_SIZE) { + var i = 0; + var key; + for (key in cache) { + if (i++ & 3 === 0) { + delete cache[key]; + } + } + } + color = ol.color.fromStringInternal_(s); + cache[s] = color; + ++cacheSize; + } + return ol.color.returnOrUpdate(color, opt_color); + }); + + })(); /** From 7ee274794826e36ace44fecbc1bff5272cae456b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 17:58:20 +0100 Subject: [PATCH 757/919] Always use goog.vec.Mat4.Number instead of goog.vec.Mat.AnyType --- src/ol/color/color.js | 2 +- src/ol/geom/flatgeom.js | 2 +- src/ol/geom/simplegeometry.js | 2 +- src/ol/render/canvas/canvasimmediate.js | 4 ++-- src/ol/render/canvas/canvasreplay.js | 12 ++++++------ src/ol/renderer/canvas/canvaslayerrenderer.js | 6 +++--- src/ol/vec/mat4.js | 4 ++-- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index 55bfe3f30d..765cc22614 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -318,7 +318,7 @@ ol.color.toString = function(color) { /** * @param {ol.Color} color Color. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @param {ol.Color=} opt_color Color. * @return {ol.Color} Transformed color. */ diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index fdc9f8f24b..14f129081f 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -736,7 +736,7 @@ ol.geom.flat.squaredDistance = function(x1, y1, x2, y2) { /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} stride Stride. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @param {Array.=} opt_dest Destination. * @return {Array.} Transformed coordinates. */ diff --git a/src/ol/geom/simplegeometry.js b/src/ol/geom/simplegeometry.js index 29a92f6b97..2f24d9d28f 100644 --- a/src/ol/geom/simplegeometry.js +++ b/src/ol/geom/simplegeometry.js @@ -230,7 +230,7 @@ ol.geom.SimpleGeometry.prototype.transform = function(transformFn) { /** * @param {ol.geom.SimpleGeometry} simpleGeometry Simple geometry. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @param {Array.=} opt_dest Destination. * @return {Array.} Transformed flat coordinates. */ diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index d3c96591bf..7576e1d6ca 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -21,7 +21,7 @@ goog.require('ol.vec.Mat4'); * @param {CanvasRenderingContext2D} context Context. * @param {number} pixelRatio Pixel ratio. * @param {ol.Extent} extent Extent. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @struct */ ol.render.canvas.Immediate = function(context, pixelRatio, extent, transform) { @@ -46,7 +46,7 @@ ol.render.canvas.Immediate = function(context, pixelRatio, extent, transform) { /** * @private - * @type {goog.vec.Mat4.AnyType} + * @type {goog.vec.Mat4.Number} */ this.transform_ = transform; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 9b69bb1c55..81fe9ede56 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -160,7 +160,7 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { /** * @private * @param {CanvasRenderingContext2D} context Context. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. * @param {Array.<*>} instructions Instructions array. @@ -305,7 +305,7 @@ ol.render.canvas.Replay.prototype.replay_ = /** * @param {CanvasRenderingContext2D} context Context. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. * @return {T|undefined} Callback result. @@ -321,7 +321,7 @@ ol.render.canvas.Replay.prototype.replay = /** * @param {CanvasRenderingContext2D} context Context. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. * @param {function(ol.geom.Geometry, Object): T=} opt_geometryCallback @@ -1231,7 +1231,7 @@ ol.render.canvas.ReplayGroup = function(pixelRatio, tolerance) { /** * @param {CanvasRenderingContext2D} context Context. * @param {ol.Extent} extent Extent. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. * @return {T|undefined} Callback result. @@ -1252,7 +1252,7 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent, * @param {Array.} zs Z-indices array. * @param {CanvasRenderingContext2D} context Context. * @param {ol.Extent} extent Extent. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. * @param {function(ol.geom.Geometry, Object): T} geometryCallback Geometry @@ -1286,7 +1286,7 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = * @param {Array.} zs Z-indices array. * @param {CanvasRenderingContext2D} context Context. * @param {ol.Extent} extent Extent. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. * @return {T|undefined} Callback result. diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index f3a0366338..e590979ff0 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -76,7 +76,7 @@ ol.renderer.canvas.Layer.prototype.composeFrame = * @param {ol.render.EventType} type Event type. * @param {CanvasRenderingContext2D} context Context. * @param {ol.FrameState} frameState Frame state. - * @param {goog.vec.Mat4.AnyType=} opt_transform Transform. + * @param {goog.vec.Mat4.Number=} opt_transform Transform. * @private */ ol.renderer.canvas.Layer.prototype.dispatchComposeEvent_ = @@ -97,7 +97,7 @@ ol.renderer.canvas.Layer.prototype.dispatchComposeEvent_ = /** * @param {CanvasRenderingContext2D} context Context. * @param {ol.FrameState} frameState Frame state. - * @param {goog.vec.Mat4.AnyType=} opt_transform Transform. + * @param {goog.vec.Mat4.Number=} opt_transform Transform. * @protected */ ol.renderer.canvas.Layer.prototype.dispatchPostComposeEvent = @@ -110,7 +110,7 @@ ol.renderer.canvas.Layer.prototype.dispatchPostComposeEvent = /** * @param {CanvasRenderingContext2D} context Context. * @param {ol.FrameState} frameState Frame state. - * @param {goog.vec.Mat4.AnyType=} opt_transform Transform. + * @param {goog.vec.Mat4.Number=} opt_transform Transform. * @protected */ ol.renderer.canvas.Layer.prototype.dispatchPreComposeEvent = diff --git a/src/ol/vec/mat4.js b/src/ol/vec/mat4.js index 0f024243c4..54e7df7e71 100644 --- a/src/ol/vec/mat4.js +++ b/src/ol/vec/mat4.js @@ -35,8 +35,8 @@ ol.vec.Mat4.makeTransform2D = function(mat, translateX1, translateY1, /** * Returns true if mat1 and mat2 represent the same 2D transformation. - * @param {goog.vec.Mat4.AnyType} mat1 Matrix 1. - * @param {goog.vec.Mat4.AnyType} mat2 Matrix 2. + * @param {goog.vec.Mat4.Number} mat1 Matrix 1. + * @param {goog.vec.Mat4.Number} mat2 Matrix 2. * @return {boolean} Equal 2D. */ ol.vec.Mat4.equals2D = function(mat1, mat2) { From c97588c1e2f49bdc8f279f5ae232f4d7aff27952 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 20:24:20 +0100 Subject: [PATCH 758/919] Use assertInstanceof instead of getVectorLayer --- .../renderer/canvas/canvasvectorlayerrenderer.js | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index dc31b669b0..fd39e7fe2e 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -133,7 +133,8 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = */ ol.renderer.canvas.VectorLayer.prototype.getRenderGeometryFunction_ = function() { - var vectorLayer = this.getVectorLayer(); + var vectorLayer = this.getLayer(); + goog.asserts.assertInstanceof(vectorLayer, ol.layer.Vector); var renderGeometryFunction = vectorLayer.getRenderGeometryFunction(); if (!goog.isDef(renderGeometryFunction)) { renderGeometryFunction = goog.functions.TRUE; @@ -142,14 +143,6 @@ ol.renderer.canvas.VectorLayer.prototype.getRenderGeometryFunction_ = }; -/** - * @return {ol.layer.Vector} Vector layer. - */ -ol.renderer.canvas.VectorLayer.prototype.getVectorLayer = function() { - return /** @type {ol.layer.Vector} */ (this.getLayer()); -}; - - /** * Handle changes in image style state. * @param {goog.events.Event} event Image style change event. @@ -175,7 +168,8 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = return; } - var vectorLayer = this.getVectorLayer(); + var vectorLayer = this.getLayer(); + goog.asserts.assertInstanceof(vectorLayer, ol.layer.Vector); var vectorSource = vectorLayer.getVectorSource(); var frameStateExtent = frameState.extent; var frameStateResolution = frameState.view2DState.resolution; From 1499af397d9852eded193a8b06ea9d8bad71a49f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 13 Dec 2013 20:29:45 +0100 Subject: [PATCH 759/919] Use assertInstanceof instead of getVectorSource --- src/ol/layer/vectorlayer.js | 9 --------- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 4 +++- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js index 0856167791..7c69c0c77c 100644 --- a/src/ol/layer/vectorlayer.js +++ b/src/ol/layer/vectorlayer.js @@ -2,7 +2,6 @@ goog.provide('ol.layer.Vector'); goog.require('ol.feature'); goog.require('ol.layer.Layer'); -goog.require('ol.source.Vector'); /** @@ -63,14 +62,6 @@ goog.exportProperty( ol.layer.Vector.prototype.getStyleFunction); -/** - * @return {ol.source.Source} Vector source. - */ -ol.layer.Vector.prototype.getVectorSource = function() { - return /** @type {ol.source.Vector} */ (this.getSource()); -}; - - /** * @param {function(ol.geom.Geometry): boolean|undefined} renderGeometryFunction * Render geometry function. diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index fd39e7fe2e..a4bbdfb362 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -11,6 +11,7 @@ goog.require('ol.layer.Vector'); goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.renderer.canvas.Layer'); goog.require('ol.renderer.vector'); +goog.require('ol.source.Vector'); goog.require('ol.style.ImageState'); @@ -170,7 +171,8 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = var vectorLayer = this.getLayer(); goog.asserts.assertInstanceof(vectorLayer, ol.layer.Vector); - var vectorSource = vectorLayer.getVectorSource(); + var vectorSource = vectorLayer.getSource(); + goog.asserts.assertInstanceof(vectorSource, ol.source.Vector); var frameStateExtent = frameState.extent; var frameStateResolution = frameState.view2DState.resolution; var pixelRatio = frameState.devicePixelRatio; From d894422b2d8482e3e3f6b19d5238187257535939 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 6 Jan 2014 10:13:43 +0100 Subject: [PATCH 760/919] Center the clipping region Use the real canvas size to center the heart. Only visible when devicePixelRatio is greater than 1.0. --- examples/layer-clipping.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/layer-clipping.js b/examples/layer-clipping.js index 8cf5e51577..237335be09 100644 --- a/examples/layer-clipping.js +++ b/examples/layer-clipping.js @@ -20,9 +20,8 @@ var map = new ol.Map({ osm.on('precompose', function(event) { var ctx = event.getContext(); - var size = event.getFrameState().size; ctx.save(); - ctx.translate(size[0] / 2, size[1] / 2); + ctx.translate(ctx.canvas.width / 2, ctx.canvas.height / 2); ctx.scale(3, 3); ctx.translate(-75, -80); ctx.beginPath(); From d20a8eac3f074297fb726a8ad84465ddbda41f01 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 6 Jan 2014 10:41:38 +0100 Subject: [PATCH 761/919] Read KML LinearRings as Polygons --- src/ol/format/kmlformat.js | 25 +++++++++++++++++++++++++ test/spec/ol/format/kmlformat.test.js | 24 +++++++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index 46b85ecfc2..95ab5c65d1 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -706,6 +706,28 @@ ol.format.KML.readLineString_ = function(node, objectStack) { }; +/** + * @param {Node} node Node. + * @param {Array.<*>} objectStack Object stack. + * @private + * @return {ol.geom.Polygon|undefined} Polygon. + */ +ol.format.KML.readLinearRing_ = function(node, objectStack) { + goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT); + goog.asserts.assert(node.localName == 'LinearRing'); + var flatCoordinates = + ol.format.KML.readFlatCoordinatesFromNode_(node, objectStack); + if (goog.isDef(flatCoordinates)) { + var polygon = new ol.geom.Polygon(null); + polygon.setFlatCoordinates(ol.geom.GeometryLayout.XYZ, flatCoordinates, + [flatCoordinates.length]); + return polygon; + } else { + return undefined; + } +}; + + /** * @param {Node} node Node. * @param {Array.<*>} objectStack Object stack. @@ -1206,6 +1228,7 @@ ol.format.KML.LINE_STYLE_PARSERS_ = ol.xml.makeParsersNS( ol.format.KML.MULTI_GEOMETRY_PARSERS_ = ol.xml.makeParsersNS( ol.format.KML.NAMESPACE_URIS_, { 'LineString': ol.xml.makeArrayPusher(ol.format.KML.readLineString_), + 'LinearRing': ol.xml.makeArrayPusher(ol.format.KML.readLinearRing_), 'MultiGeometry': ol.xml.makeArrayPusher(ol.format.KML.readMultiGeometry_), 'Point': ol.xml.makeArrayPusher(ol.format.KML.readPoint_), 'Polygon': ol.xml.makeArrayPusher(ol.format.KML.readPolygon_) @@ -1255,6 +1278,8 @@ ol.format.KML.PLACEMARK_PARSERS_ = ol.xml.makeParsersNS( ol.format.KML.readMultiGeometry_, 'geometry'), 'LineString': ol.xml.makeObjectPropertySetter( ol.format.KML.readLineString_, 'geometry'), + 'LinearRing': ol.xml.makeObjectPropertySetter( + ol.format.KML.readLinearRing_, 'geometry'), 'Point': ol.xml.makeObjectPropertySetter( ol.format.KML.readPoint_, 'geometry'), 'Polygon': ol.xml.makeObjectPropertySetter( diff --git a/test/spec/ol/format/kmlformat.test.js b/test/spec/ol/format/kmlformat.test.js index 01a8bea472..68ec2c5007 100644 --- a/test/spec/ol/format/kmlformat.test.js +++ b/test/spec/ol/format/kmlformat.test.js @@ -89,6 +89,24 @@ describe('ol.format.KML', function() { expect(g.getCoordinates()).to.eql([[1, 2, 3], [4, 5, 6]]); }); + it('can read LinearRing geometries', function() { + var text = + '' + + ' ' + + ' ' + + ' 1,2,3 4,5,6 7,8,9' + + ' ' + + ' ' + + ''; + var fs = format.readFeatures(text); + expect(fs).to.have.length(1); + var f = fs[0]; + expect(f).to.be.an(ol.Feature); + var g = f.getGeometry(); + expect(g).to.be.an(ol.geom.Polygon); + expect(g.getCoordinates()).to.eql([[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]); + }); + it('can read Polygon geometries', function() { var text = '' + @@ -255,6 +273,9 @@ describe('ol.format.KML', function() { ' ' + ' 1,2,3 4,5,6' + ' ' + + ' ' + + ' 1,2,3 4,5,6 7,8,9' + + ' ' + ' ' + ' ' + ' ' + @@ -272,10 +293,11 @@ describe('ol.format.KML', function() { var g = f.getGeometry(); expect(g).to.be.an(ol.geom.GeometryCollection); var gs = g.getGeometries(); - expect(gs).to.have.length(3); + expect(gs).to.have.length(4); expect(gs[0]).to.be.an(ol.geom.Point); expect(gs[1]).to.be.an(ol.geom.LineString); expect(gs[2]).to.be.an(ol.geom.Polygon); + expect(gs[3]).to.be.an(ol.geom.Polygon); }); it('can read nested GeometryCollection geometries', function() { From 7808ed9ce9fdd419d385d5c07c8317b0d6c04afd Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 6 Jan 2014 13:27:13 +0100 Subject: [PATCH 762/919] Use firstElementChild in ol.xml.parse --- src/ol/xml.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/ol/xml.js b/src/ol/xml.js index e166ce94ca..05d5e496e5 100644 --- a/src/ol/xml.js +++ b/src/ol/xml.js @@ -173,14 +173,12 @@ ol.xml.makeParsersNS = function(namespaceURIs, parsers, opt_parsersNS) { */ ol.xml.parse = function(parsersNS, node, objectStack, opt_obj) { var n; - for (n = node.firstChild; !goog.isNull(n); n = n.nextSibling) { - if (n.nodeType == goog.dom.NodeType.ELEMENT) { - var parsers = parsersNS[n.namespaceURI]; - if (goog.isDef(parsers)) { - var parser = parsers[n.localName]; - if (goog.isDef(parser)) { - parser.call(opt_obj, n, objectStack); - } + for (n = node.firstElementChild; !goog.isNull(n); n = n.nextElementSibling) { + var parsers = parsersNS[n.namespaceURI]; + if (goog.isDef(parsers)) { + var parser = parsers[n.localName]; + if (goog.isDef(parser)) { + parser.call(opt_obj, n, objectStack); } } } From 0b4e8bf6f18728b196956252f1aae6b2845d50f5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 6 Jan 2014 13:27:37 +0100 Subject: [PATCH 763/919] Use firstElementChild in ol.format.KML --- src/ol/format/kmlformat.js | 49 +++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index 95ab5c65d1..4f0445bbc2 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -1521,12 +1521,11 @@ ol.format.KML.prototype.readFeaturesFromNode = function(node) { } else if (node.localName == 'kml') { features = []; var n; - for (n = node.firstChild; !goog.isNull(n); n = n.nextSibling) { - if (n.nodeType == goog.dom.NodeType.ELEMENT) { - var fs = this.readFeaturesFromNode(n); - if (goog.isDef(fs)) { - goog.array.extend(features, fs); - } + for (n = node.firstElementChild; !goog.isNull(n); + n = n.nextElementSibling) { + var fs = this.readFeaturesFromNode(n); + if (goog.isDef(fs)) { + goog.array.extend(features, fs); } } return features; @@ -1541,11 +1540,13 @@ ol.format.KML.prototype.readFeaturesFromNode = function(node) { * @return {string|undefined} Name. */ ol.format.KML.prototype.readName = function(source) { - if (source instanceof Node) { + if (source instanceof Document) { + return this.readNameFromDocument(source); + } else if (source instanceof Node) { return this.readNameFromNode(source); } else if (goog.isString(source)) { var doc = goog.dom.xml.loadXml(source); - return this.readNameFromNode(doc); + return this.readNameFromDocument(doc); } else { goog.asserts.fail(); return undefined; @@ -1553,24 +1554,40 @@ ol.format.KML.prototype.readName = function(source) { }; +/** + * @param {Document} doc Document. + * @return {string|undefined} Name. + */ +ol.format.KML.prototype.readNameFromDocument = function(doc) { + var n; + for (n = doc.firstChild; !goog.isNull(n); n = n.nextSibling) { + if (n.nodeType == goog.dom.NodeType.ELEMENT) { + var name = this.readNameFromNode(n); + if (goog.isDef(name)) { + return name; + } + } + } + return undefined; +}; + + /** * @param {Node} node Node. * @return {string|undefined} Name. */ ol.format.KML.prototype.readNameFromNode = function(node) { var n; - for (n = node.firstChild; !goog.isNull(n); n = n.nextSibling) { - if (n.nodeType == goog.dom.NodeType.ELEMENT && - goog.array.indexOf( - ol.format.KML.NAMESPACE_URIS_, n.namespaceURI) != -1 && + for (n = node.firstElementChild; !goog.isNull(n); n = n.nextElementSibling) { + if (goog.array.indexOf(ol.format.KML.NAMESPACE_URIS_, + n.namespaceURI) != -1 && n.localName == 'name') { return ol.format.KML.readString_(n); } } - for (n = node.firstChild; !goog.isNull(n); n = n.nextSibling) { - if (n.nodeType == goog.dom.NodeType.ELEMENT && - goog.array.indexOf( - ol.format.KML.NAMESPACE_URIS_, n.namespaceURI) != -1 && + for (n = node.firstElementChild; !goog.isNull(n); n = n.nextElementSibling) { + if (goog.array.indexOf(ol.format.KML.NAMESPACE_URIS_, + n.namespaceURI) != -1 && (n.localName == 'Document' || n.localName == 'Folder' || n.localName == 'Placemark' || From 6b10ea887e0fa0f82cfdf6a4c5dd695c79cddd06 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 6 Jan 2014 11:36:00 +0100 Subject: [PATCH 764/919] Add comment about the rtree example not working when hosted --- examples/rtree.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/rtree.html b/examples/rtree.html index 79c8cc55b7..9c6ecf130a 100644 --- a/examples/rtree.html +++ b/examples/rtree.html @@ -32,7 +32,7 @@

R-Tree example

-

R-Tree example.

+

R-Tree example. Please note that this example only works locally, it does not work when the examples are hosted. This is because it accesses internals the R-Tree data structure, which are not exported in the API.

See the rtree.js source to see how this is done.

From 1a80273d6fe86d54b5010d9fd0b80030bced50da Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 6 Jan 2014 15:39:18 +0100 Subject: [PATCH 765/919] Fix rotation of WebGL tile layers --- .../renderer/webgl/webgltilelayerrenderer.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ol/renderer/webgl/webgltilelayerrenderer.js b/src/ol/renderer/webgl/webgltilelayerrenderer.js index 34efc3a18d..90a1188c62 100644 --- a/src/ol/renderer/webgl/webgltilelayerrenderer.js +++ b/src/ol/renderer/webgl/webgltilelayerrenderer.js @@ -6,6 +6,7 @@ goog.provide('ol.renderer.webgl.TileLayer'); goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.object'); +goog.require('goog.vec.Mat4'); goog.require('goog.vec.Vec4'); goog.require('goog.webgl'); goog.require('ol.Tile'); @@ -18,7 +19,6 @@ goog.require('ol.renderer.webgl.Layer'); goog.require('ol.renderer.webgl.tilelayer.shader'); goog.require('ol.source.Tile'); goog.require('ol.structs.Buffer'); -goog.require('ol.vec.Mat4'); @@ -298,16 +298,26 @@ ol.renderer.webgl.TileLayer.prototype.prepareFrame = this.scheduleExpireCache(frameState, tileSource); this.updateLogos(frameState, tileSource); - ol.vec.Mat4.makeTransform2D(this.texCoordMatrix, + var texCoordMatrix = this.texCoordMatrix; + goog.vec.Mat4.makeIdentity(texCoordMatrix); + goog.vec.Mat4.translate(texCoordMatrix, (center[0] - framebufferExtent[0]) / (framebufferExtent[2] - framebufferExtent[0]), (center[1] - framebufferExtent[1]) / (framebufferExtent[3] - framebufferExtent[1]), + 0); + if (view2DState.rotation !== 0) { + goog.vec.Mat4.rotateZ(texCoordMatrix, view2DState.rotation); + } + goog.vec.Mat4.scale(texCoordMatrix, frameState.size[0] * view2DState.resolution / (framebufferExtent[2] - framebufferExtent[0]), frameState.size[1] * view2DState.resolution / (framebufferExtent[3] - framebufferExtent[1]), - view2DState.rotation, - -0.5, -0.5); + 1); + goog.vec.Mat4.translate(texCoordMatrix, + -0.5, + -0.5, + 0); }; From bedfb828d81919b60b9bfb31975365053d371954 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 6 Jan 2014 16:19:56 +0100 Subject: [PATCH 766/919] Display attributions and logos for vector sources --- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index a4bbdfb362..dea0a45cec 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -164,15 +164,20 @@ ol.renderer.canvas.VectorLayer.prototype.handleImageStyleChange_ = ol.renderer.canvas.VectorLayer.prototype.prepareFrame = function(frameState, layerState) { + var vectorLayer = this.getLayer(); + goog.asserts.assertInstanceof(vectorLayer, ol.layer.Vector); + var vectorSource = vectorLayer.getSource(); + goog.asserts.assertInstanceof(vectorSource, ol.source.Vector); + + this.updateAttributions( + frameState.attributions, vectorSource.getAttributions()); + this.updateLogos(frameState, vectorSource); + if (!this.dirty_ && (frameState.viewHints[ol.ViewHint.ANIMATING] || frameState.viewHints[ol.ViewHint.INTERACTING])) { return; } - var vectorLayer = this.getLayer(); - goog.asserts.assertInstanceof(vectorLayer, ol.layer.Vector); - var vectorSource = vectorLayer.getSource(); - goog.asserts.assertInstanceof(vectorSource, ol.source.Vector); var frameStateExtent = frameState.extent; var frameStateResolution = frameState.view2DState.resolution; var pixelRatio = frameState.devicePixelRatio; From 2f7064f0e8cd931e3fff8539464246ef86d90011 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 6 Jan 2014 16:44:06 +0100 Subject: [PATCH 767/919] Fix 'singleclick' in kml-timezones and kml-earthquakes examples --- examples/kml-earthquakes.js | 7 +++---- examples/kml-timezones.js | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/examples/kml-earthquakes.js b/examples/kml-earthquakes.js index 5ace2b436c..4098cc6de5 100644 --- a/examples/kml-earthquakes.js +++ b/examples/kml-earthquakes.js @@ -68,8 +68,7 @@ info.tooltip({ trigger: 'manual' }); -var displayFeatureInfo = function(evt) { - var pixel = map.getEventPixel(evt.originalEvent); +var displayFeatureInfo = function(pixel) { info.css({ left: pixel[0] + 'px', top: (pixel[1] - 15) + 'px' @@ -88,9 +87,9 @@ var displayFeatureInfo = function(evt) { }; $(map.getViewport()).on('mousemove', function(evt) { - displayFeatureInfo(evt); + displayFeatureInfo(map.getEventPixel(evt.originalEvent)); }); map.on('singleclick', function(evt) { - displayFeatureInfo(evt); + displayFeatureInfo(evt.getPixel()); }); diff --git a/examples/kml-timezones.js b/examples/kml-timezones.js index b4f475512b..6ce3ad4228 100644 --- a/examples/kml-timezones.js +++ b/examples/kml-timezones.js @@ -74,8 +74,7 @@ info.tooltip({ trigger: 'manual' }); -var displayFeatureInfo = function(evt) { - var pixel = map.getEventPixel(evt.originalEvent); +var displayFeatureInfo = function(pixel) { info.css({ left: pixel[0] + 'px', top: (pixel[1] - 15) + 'px' @@ -94,9 +93,9 @@ var displayFeatureInfo = function(evt) { }; $(map.getViewport()).on('mousemove', function(evt) { - displayFeatureInfo(evt); + displayFeatureInfo(map.getEventPixel(evt.originalEvent)); }); map.on('singleclick', function(evt) { - displayFeatureInfo(evt); + displayFeatureInfo(evt.getPixel()); }); From e9110923a46b914a15f5ce00793dc42d8bc92660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 6 Jan 2014 17:04:24 +0100 Subject: [PATCH 768/919] Add ol.render.IRender#drawAsync --- src/ol/render/irender.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ol/render/irender.js b/src/ol/render/irender.js index bbefdd7af5..8536e8318e 100644 --- a/src/ol/render/irender.js +++ b/src/ol/render/irender.js @@ -11,6 +11,14 @@ ol.render.IRender = function() { }; +/** + * @param {number} zIndex Z index. + * @param {function(ol.render.canvas.Immediate)} callback Callback. + */ +ol.render.IRender.prototype.drawAsync = function(zIndex, callback) { +}; + + /** * @param {ol.Feature} feature Feature. * @param {ol.style.Style} style Style. From 84fc86f46969434e75f387c5448bd718f25d81a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 6 Jan 2014 16:31:51 +0100 Subject: [PATCH 769/919] Add ol.render.canvas.Immediate#drawAsync --- src/ol/render/canvas/canvasimmediate.exports | 1 + src/ol/render/canvas/canvasimmediate.js | 40 +++++++++++++++++++ src/ol/renderer/canvas/canvaslayerrenderer.js | 1 + src/ol/renderer/canvas/canvasmaprenderer.js | 1 + 4 files changed, 43 insertions(+) diff --git a/src/ol/render/canvas/canvasimmediate.exports b/src/ol/render/canvas/canvasimmediate.exports index d2bb4dd076..2de821ee80 100644 --- a/src/ol/render/canvas/canvasimmediate.exports +++ b/src/ol/render/canvas/canvasimmediate.exports @@ -1,3 +1,4 @@ +@exportProperty ol.render.canvas.Immediate.prototype.drawAsync @exportProperty ol.render.canvas.Immediate.prototype.drawFeature @exportProperty ol.render.canvas.Immediate.prototype.drawPointGeometry @exportProperty ol.render.canvas.Immediate.prototype.drawLineStringGeometry diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index d3c96591bf..e2416400c6 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -4,7 +4,9 @@ goog.provide('ol.render.canvas.Immediate'); +goog.require('goog.array'); goog.require('goog.asserts'); +goog.require('goog.object'); goog.require('goog.vec.Mat4'); goog.require('ol.color'); goog.require('ol.extent'); @@ -26,6 +28,13 @@ goog.require('ol.vec.Mat4'); */ ol.render.canvas.Immediate = function(context, pixelRatio, extent, transform) { + /** + * @private + * @type {Object.>} + */ + this.callbacksByZIndex_ = {}; + /** * @private * @type {CanvasRenderingContext2D} @@ -240,6 +249,20 @@ ol.render.canvas.Immediate.prototype.drawRings_ = }; +/** + * @inheritDoc + */ +ol.render.canvas.Immediate.prototype.drawAsync = function(zIndex, callback) { + var zIndexKey = zIndex.toString(); + var callbacks = this.callbacksByZIndex_[zIndexKey]; + if (goog.isDef(callbacks)) { + callbacks.push(callback); + } else { + this.callbacksByZIndex_[zIndexKey] = [callback]; + } +}; + + /** * @inheritDoc */ @@ -402,6 +425,23 @@ ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry = }; +/** + * FIXME: empty description for jsdoc + */ +ol.render.canvas.Immediate.prototype.flush = function() { + /** @type {Array.} */ + var zs = goog.array.map(goog.object.getKeys(this.callbacksByZIndex_), Number); + goog.array.sort(zs); + var i, ii, callbacks, j, jj; + for (i = 0, ii = zs.length; i < ii; ++i) { + callbacks = this.callbacksByZIndex_[zs[i].toString()]; + for (j = 0, jj = callbacks.length; j < jj; ++j) { + callbacks[j](this); + } + } +}; + + /** * @inheritDoc */ diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index f3a0366338..50a9451752 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -90,6 +90,7 @@ ol.renderer.canvas.Layer.prototype.dispatchComposeEvent_ = var composeEvent = new ol.render.Event(type, layer, render, frameState, context, null); layer.dispatchEvent(composeEvent); + render.flush(); } }; diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index a842aa6482..1b61817f00 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -109,6 +109,7 @@ ol.renderer.canvas.Map.prototype.dispatchComposeEvent_ = var composeEvent = new ol.render.Event(type, map, render, frameState, context, null); map.dispatchEvent(composeEvent); + render.flush(); } }; From 3f1d74a0f58ec4ec97745c0f271791233065162f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 6 Jan 2014 17:07:23 +0100 Subject: [PATCH 770/919] Add ol.render.webgl.Immediate#drawAsync --- src/ol/render/webgl/webglimmediate.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ol/render/webgl/webglimmediate.js b/src/ol/render/webgl/webglimmediate.js index 0f5ce82f09..2a8d8e4222 100644 --- a/src/ol/render/webgl/webglimmediate.js +++ b/src/ol/render/webgl/webglimmediate.js @@ -13,6 +13,13 @@ ol.render.webgl.Immediate = function(context, pixelRatio) { }; +/** + * @inheritDoc + */ +ol.render.webgl.Immediate.prototype.drawAsync = function(zIndex, callback) { +}; + + /** * @param {ol.Feature} feature Feature. * @param {ol.style.Style} style Style. From 6db8f0c29f7327f203266ca8bf9a927cadc611d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 6 Jan 2014 17:07:04 +0100 Subject: [PATCH 771/919] Add ol.render.canvas.Replay#drawAsync --- src/ol/render/canvas/canvasreplay.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 9b69bb1c55..1dc569a526 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -366,6 +366,12 @@ ol.render.canvas.Replay.prototype.reverseHitDetectionInstructions_ = }; +/** + * @inheritDoc + */ +ol.render.canvas.Replay.prototype.drawAsync = goog.abstractMethod; + + /** * @inheritDoc */ From 051c0a8b4653a5d56880b9016607bafccb298630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 6 Jan 2014 16:57:31 +0100 Subject: [PATCH 772/919] Use drawAsync in render box --- src/ol/render/box.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ol/render/box.js b/src/ol/render/box.js index 456c613bc7..d21f4953b3 100644 --- a/src/ol/render/box.js +++ b/src/ol/render/box.js @@ -95,11 +95,15 @@ ol.render.Box.prototype.disposeInternal = function() { * @private */ ol.render.Box.prototype.handleMapPostCompose_ = function(event) { + var geometry = this.geometry_; + goog.asserts.assert(!goog.isNull(geometry)); var style = this.style_; goog.asserts.assert(!goog.isNull(style)); - var render = event.getRender(); - render.setFillStrokeStyle(style.getFill(), style.getStroke()); - render.drawPolygonGeometry(this.geometry_, null); + // use drawAsync(Infinity) to draw above everything + event.getRender().drawAsync(Infinity, function(render) { + render.setFillStrokeStyle(style.getFill(), style.getStroke()); + render.drawPolygonGeometry(geometry, null); + }); }; From 12f1d97f826aa1a34acac23bb7634a171480ff55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 6 Jan 2014 16:58:33 +0100 Subject: [PATCH 773/919] Use drawAsync in canvas Immediate#drawFeature --- src/ol/render/canvas/canvasimmediate.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index e2416400c6..c97a172813 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -272,12 +272,18 @@ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { !ol.extent.intersects(this.extent_, geometry.getExtent())) { return; } - this.setFillStrokeStyle(style.getFill(), style.getStroke()); - this.setImageStyle(style.getImage()); - var renderGeometry = - ol.render.canvas.Immediate.GEOMETRY_RENDERES_[geometry.getType()]; - goog.asserts.assert(goog.isDef(renderGeometry)); - renderGeometry.call(this, geometry, null); + var zIndex = style.getZIndex(); + if (!goog.isDef(zIndex)) { + zIndex = 0; + } + this.drawAsync(zIndex, function(render) { + render.setFillStrokeStyle(style.getFill(), style.getStroke()); + render.setImageStyle(style.getImage()); + var renderGeometry = + ol.render.canvas.Immediate.GEOMETRY_RENDERES_[geometry.getType()]; + goog.asserts.assert(goog.isDef(renderGeometry)); + renderGeometry.call(render, geometry, null); + }); }; From ffb68c951a7f3a8954ff7c166216682cf527650a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 6 Jan 2014 18:19:08 +0100 Subject: [PATCH 774/919] Fix ol.geom.flat.linearRingContainsXY --- src/ol/geom/flatgeom.js | 6 +++--- test/spec/ol/geom/polygon.test.js | 8 +------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 14f129081f..d6ba281505 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -344,9 +344,9 @@ ol.geom.flat.linearRingContainsXY = function(flatCoordinates, offset, end, stride, x, y) { // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html var contains = false; - var x1 = flatCoordinates[offset]; - var y1 = flatCoordinates[offset + 1]; - for (offset += stride; offset < end; offset += stride) { + var x1 = flatCoordinates[end - stride]; + var y1 = flatCoordinates[end - stride + 1]; + for (; offset < end; offset += stride) { var x2 = flatCoordinates[offset]; var y2 = flatCoordinates[offset + 1]; var intersect = ((y1 > y) != (y2 > y)) && diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js index 1f6e57089d..b547565ec3 100644 --- a/test/spec/ol/geom/polygon.test.js +++ b/test/spec/ol/geom/polygon.test.js @@ -1,5 +1,3 @@ -// FIXME why do the skip tests below fail? I don't understand! - goog.provide('ol.test.geom.Polygon'); @@ -291,7 +289,7 @@ describe('ol.geom.Polygon', function() { expect(polygon.getFlatCoordinates()).to.eql(flatCoordinates); }); - it.skip('does not contain outside coordinates', function() { + it('does not contain outside coordinates', function() { expect(polygon.containsCoordinate(outsideOuter)).to.be(false); }); @@ -304,10 +302,6 @@ describe('ol.geom.Polygon', function() { expect(polygon.containsCoordinate(insideInner2)).to.be(false); }); - it.skip('fails in strange ways', function() { - expect(polygon.containsCoordinate([0, 0])).to.be(false); - }); - }); describe('with a simple polygon', function() { From a313331098984ff67410fc15cdd4bca4d02b340f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 7 Jan 2014 13:57:56 +0100 Subject: [PATCH 775/919] Fix StyleFunction type namespace --- src/objectliterals.jsdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 8c77219fe1..8d6611ca29 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -509,7 +509,7 @@ * @typedef {Object} olx.render.FeaturesOverlayOptions * @property {Array.|ol.Collection|undefined} features Features. * @property {ol.Map|undefined} map Map. - * @property {ol.style.StyleFunction|undefined} styleFunction Style function. + * @property {ol.feature.StyleFunction|undefined} styleFunction Style function. */ /** From f2dbf4c145c5d1c288ef0c34cadb4c2e3f0fdbc1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 7 Jan 2014 13:45:36 +0100 Subject: [PATCH 776/919] Add ol.render.REPLAY_ORDER --- src/ol/render/ireplay.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/ol/render/ireplay.js b/src/ol/render/ireplay.js index a30266ece5..d854d44e38 100644 --- a/src/ol/render/ireplay.js +++ b/src/ol/render/ireplay.js @@ -14,6 +14,16 @@ ol.render.ReplayType = { }; +/** + * @const {Array.} + */ +ol.render.REPLAY_ORDER = [ + ol.render.ReplayType.POLYGON, + ol.render.ReplayType.LINE_STRING, + ol.render.ReplayType.IMAGE +]; + + /** * @interface From c816d0105d4504c559e2dfd3a6e0732440645288 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 7 Jan 2014 13:45:56 +0100 Subject: [PATCH 777/919] Replay groups in defined order --- src/ol/render/canvas/canvasreplay.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 53b33610d1..1e94d2c537 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1300,12 +1300,13 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = */ ol.render.canvas.ReplayGroup.prototype.replay_ = function(zs, context, extent, transform, renderGeometryFunction) { - var i, ii, replays, replayType, replay, result; + var i, ii, j, jj, replays, replayType, replay, result; for (i = 0, ii = zs.length; i < ii; ++i) { replays = this.replaysByZIndex_[zs[i].toString()]; - for (replayType in replays) { - replay = replays[replayType]; - if (ol.extent.intersects(extent, replay.getExtent())) { + for (j = 0, jj = ol.render.REPLAY_ORDER.length; j < jj; ++j) { + replay = replays[ol.render.REPLAY_ORDER[j]]; + if (goog.isDef(replay) && + ol.extent.intersects(extent, replay.getExtent())) { result = replay.replay( context, transform, renderGeometryFunction); if (result) { From 0b4970ae4661e11292594fb536f8a1dde37dcd92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 7 Jan 2014 14:09:46 +0100 Subject: [PATCH 778/919] Add ol.FeaturesOverlay#addFeature --- src/ol/render/featuresoverlay.exports | 1 + src/ol/render/featuresoverlay.js | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/ol/render/featuresoverlay.exports b/src/ol/render/featuresoverlay.exports index 38cf3f5d98..27f4be1e71 100644 --- a/src/ol/render/featuresoverlay.exports +++ b/src/ol/render/featuresoverlay.exports @@ -1,4 +1,5 @@ @exportSymbol ol.render.FeaturesOverlay +@exportProperty ol.render.FeaturesOverlay.prototype.addFeature @exportProperty ol.render.FeaturesOverlay.prototype.getFeatures @exportProperty ol.render.FeaturesOverlay.prototype.setFeatures @exportProperty ol.render.FeaturesOverlay.prototype.setMap diff --git a/src/ol/render/featuresoverlay.js b/src/ol/render/featuresoverlay.js index 2166e25164..4c386dd4e7 100644 --- a/src/ol/render/featuresoverlay.js +++ b/src/ol/render/featuresoverlay.js @@ -77,6 +77,14 @@ ol.render.FeaturesOverlay = function(opt_options) { }; +/** + * @param {ol.Feature} feature Feature. + */ +ol.render.FeaturesOverlay.prototype.addFeature = function(feature) { + this.features_.push(feature); +}; + + /** * @return {ol.Collection} Features collection. */ From 8c0406b390d67261b3c8b78b82f924e95e5a86ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 7 Jan 2014 14:09:57 +0100 Subject: [PATCH 779/919] Add ol.FeaturesOverlay#removeFeature --- src/ol/render/featuresoverlay.exports | 1 + src/ol/render/featuresoverlay.js | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/ol/render/featuresoverlay.exports b/src/ol/render/featuresoverlay.exports index 27f4be1e71..b613b77c0b 100644 --- a/src/ol/render/featuresoverlay.exports +++ b/src/ol/render/featuresoverlay.exports @@ -4,3 +4,4 @@ @exportProperty ol.render.FeaturesOverlay.prototype.setFeatures @exportProperty ol.render.FeaturesOverlay.prototype.setMap @exportProperty ol.render.FeaturesOverlay.prototype.setStyleFunction +@exportProperty ol.render.FeaturesOverlay.prototype.removeFeature diff --git a/src/ol/render/featuresoverlay.js b/src/ol/render/featuresoverlay.js index 4c386dd4e7..a7dd07b67b 100644 --- a/src/ol/render/featuresoverlay.js +++ b/src/ol/render/featuresoverlay.js @@ -152,6 +152,14 @@ ol.render.FeaturesOverlay.prototype.handleMapPostCompose_ = function(event) { }; +/** + * @param {ol.Feature} feature Feature. + */ +ol.render.FeaturesOverlay.prototype.removeFeature = function(feature) { + this.features_.remove(feature); +}; + + /** * @private */ From 6556726541b5166406be23afc8ff1b49eb81114c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 7 Jan 2014 14:10:51 +0100 Subject: [PATCH 780/919] ol.FeaturesOverlay creates a features collection ol.FeaturesOverlay creates an empty collection of features if the features option is not specified. --- src/ol/render/featuresoverlay.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ol/render/featuresoverlay.js b/src/ol/render/featuresoverlay.js index a7dd07b67b..494444b9ec 100644 --- a/src/ol/render/featuresoverlay.js +++ b/src/ol/render/featuresoverlay.js @@ -64,6 +64,8 @@ ol.render.FeaturesOverlay = function(opt_options) { goog.asserts.assertInstanceof(options.features, ol.Collection); this.setFeatures(options.features); } + } else { + this.setFeatures(new ol.Collection()); } if (goog.isDef(options.styleFunction)) { From 643c981074b8b63fc8ddc13220b7af92a54d0168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 7 Jan 2014 14:11:54 +0100 Subject: [PATCH 781/919] Use FeaturesOverlay in vector-layer example This demonstrates how to use ol.FeaturesOverlay for feature highlighting. --- examples/vector-layer.html | 2 +- examples/vector-layer.js | 49 +++++++++++++++++++++----------------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/examples/vector-layer.html b/examples/vector-layer.html index 038a1b9eea..49608db4d4 100644 --- a/examples/vector-layer.html +++ b/examples/vector-layer.html @@ -36,7 +36,7 @@

See the vector-layer.js source to see how this is done.

-
vector, geojson, style
+
vector, geojson, style, features overlay
diff --git a/examples/vector-layer.js b/examples/vector-layer.js index adda211076..413837f406 100644 --- a/examples/vector-layer.js +++ b/examples/vector-layer.js @@ -3,6 +3,7 @@ goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); +goog.require('ol.render.FeaturesOverlay'); goog.require('ol.source.GeoJSON'); goog.require('ol.source.MapQuestOpenAerial'); goog.require('ol.style.Fill'); @@ -44,9 +45,25 @@ var map = new ol.Map({ }) }); +var highlightStyleArray = [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: '#f00', + width: 1 + }), + fill: new ol.style.Fill({ + color: 'rgba(255,0,0,0.1)' + }) +})]; + +var featuresOverlay = new ol.render.FeaturesOverlay({ + map: map, + styleFunction: function(feature, resolution) { + return highlightStyleArray; + } +}); + var highlight; var displayFeatureInfo = function(pixel) { - var oldHighlight = highlight; var feature = map.forEachFeatureAtPixel(pixel, function(feature, layer) { return feature; @@ -59,11 +76,16 @@ var displayFeatureInfo = function(pixel) { info.innerHTML = ' '; } - highlight = feature; - - if (highlight !== oldHighlight) { - map.requestRenderFrame(); + if (feature !== highlight) { + if (highlight) { + featuresOverlay.removeFeature(highlight); + } + if (feature) { + featuresOverlay.addFeature(feature); + } + highlight = feature; } + }; $(map.getViewport()).on('mousemove', function(evt) { @@ -75,20 +97,3 @@ map.on('singleclick', function(evt) { var pixel = evt.getPixel(); displayFeatureInfo(pixel); }); - -var highlightStyle = new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: '#f00', - width: 1 - }), - fill: new ol.style.Fill({ - color: 'rgba(255,0,0,0.1)' - }) -}); - -map.on('postcompose', function(evt) { - if (highlight) { - var render = evt.getRender(); - render.drawFeature(highlight, highlightStyle); - } -}); From a0a94414dd80cd61340478de6fb01d14515e9a7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 7 Jan 2014 17:40:50 +0100 Subject: [PATCH 782/919] Add anchorXUnits and anchorYUnits options to ol.style.Icon --- src/objectliterals.jsdoc | 11 ++++++++++- src/ol/style/iconstyle.js | 40 +++++++++++++++++++++++++++++---------- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 8d6611ca29..a7c0193eef 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -797,7 +797,16 @@ /** * @typedef {Object} olx.style.IconOptions - * @property {ol.Pixel|undefined} anchor Anchor. + * @property {ol.Pixel|undefined} anchor Anchor. Default value is [0.5, 0.5] + * (icon center). + * @property {ol.style.IconAnchorUnits|undefined} anchorXUnits Units in which the anchor x value is specified. + * A value of `'fraction'` indicates the x value is a fraction of the icon. + * A value of `'pixels'` indicates the x value in pixels. Default is + * `'fraction'`. + * @property {ol.style.IconAnchorUnits|undefined} anchorYUnits Units in which the anchor y value is specified. + * A value of `'fraction'` indicates the y value is a fraction of the icon. + * A value of `'pixels'` indicates the y value in pixels. Default is + * `'fraction'`. * @property {null|string|undefined} crossOrigin crossOrigin setting for image. * @property {number|undefined} scale Scale. * @property {number|undefined} rotation Rotation. diff --git a/src/ol/style/iconstyle.js b/src/ol/style/iconstyle.js index c4df241a40..7a4e74acdd 100644 --- a/src/ol/style/iconstyle.js +++ b/src/ol/style/iconstyle.js @@ -1,6 +1,7 @@ // FIXME decide default value for snapToPixel goog.provide('ol.style.Icon'); +goog.provide('ol.style.IconAnchorUnits'); goog.require('goog.array'); goog.require('goog.asserts'); @@ -12,6 +13,15 @@ goog.require('ol.style.Image'); goog.require('ol.style.ImageState'); +/** + * @enum {string} + */ +ol.style.IconAnchorUnits = { + FRACTION: 'fraction', + PIXELS: 'pixels' +}; + + /** * @constructor @@ -66,17 +76,24 @@ ol.style.Icon = function(opt_options) { */ var size = goog.isDef(options.size) ? options.size : null; + /** + * @private + * @type {ol.style.IconAnchorUnits} + */ + this.anchorXUnits_ = goog.isDef(options.anchorXUnits) ? + options.anchorXUnits : ol.style.IconAnchorUnits.FRACTION; + + /** + * @private + * @type {ol.style.IconAnchorUnits} + */ + this.anchorYUnits_ = goog.isDef(options.anchorYUnits) ? + options.anchorYUnits : ol.style.IconAnchorUnits.FRACTION; + /** * @type {ol.Pixel} */ - var anchor; - if (goog.isDef(options.anchor)) { - anchor = options.anchor; - } else if (!goog.isNull(size)) { - anchor = [size[0] / 2, size[1] / 2]; - } else { - anchor = null; - } + var anchor = goog.isDef(options.anchor) ? options.anchor : [0.5, 0.5]; /** * @type {number} @@ -139,8 +156,11 @@ ol.style.Icon.prototype.handleImageLoad_ = function() { if (goog.isNull(this.size)) { this.size = [this.image_.width, this.image_.height]; } - if (goog.isNull(this.anchor)) { - this.anchor = [this.size[0] / 2, this.size[1] / 2]; + if (this.anchorXUnits_ == ol.style.IconAnchorUnits.FRACTION) { + this.anchor[0] = this.size[0] * this.anchor[0]; + } + if (this.anchorYUnits_ == ol.style.IconAnchorUnits.FRACTION) { + this.anchor[1] = this.size[1] * this.anchor[1]; } this.unlistenImage_(); this.determineTainting_(); From 09e5574350e808e8f3bf230be10265d920e1600d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 7 Jan 2014 17:41:24 +0100 Subject: [PATCH 783/919] Use anchorXUnits and anchorYUnits in icon example --- examples/icon.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/icon.js b/examples/icon.js index b21f5100e2..c97aca9a3b 100644 --- a/examples/icon.js +++ b/examples/icon.js @@ -19,6 +19,9 @@ var raster = new ol.layer.Tile({ var styleArray = [new ol.style.Style({ image: new ol.style.Icon({ + anchor: [0.5, 46], + anchorXUnits: 'fraction', + anchorYUnits: 'pixels', src: 'data/icon.png' }) })]; From 7487f974362ea962ceb6515d50d707e14f883e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Tue, 7 Jan 2014 17:43:14 +0100 Subject: [PATCH 784/919] Support anchorXUnits and anchorYUnits in KML format --- src/ol/format/kmlformat.js | 51 ++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index 4f0445bbc2..996f212c67 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -30,6 +30,7 @@ goog.require('ol.geom.Polygon'); goog.require('ol.proj'); goog.require('ol.style.Fill'); goog.require('ol.style.Icon'); +goog.require('ol.style.IconAnchorUnits'); goog.require('ol.style.Image'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); @@ -43,8 +44,8 @@ ol.KML_RESPECT_VISIBILITY = false; /** - * @typedef {{x: number, xunits: (string|null), - * y: number, yunits: (string|null)}} + * @typedef {{x: number, xunits: (ol.style.IconAnchorUnits|undefined), + * y: number, yunits: (ol.style.IconAnchorUnits|undefined)}} */ ol.format.KMLVec2_; @@ -160,6 +161,22 @@ ol.format.KML.DEFAULT_FILL_STYLE_ = new ol.style.Fill({ ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_ = [2, 20]; // FIXME maybe [8, 32] ? +/** + * @const {ol.style.IconAnchorUnits} + * @private + */ +ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS_ = + ol.style.IconAnchorUnits.PIXELS; + + +/** + * @const {ol.style.IconAnchorUnits} + * @private + */ +ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS_ = + ol.style.IconAnchorUnits.PIXELS; + + /** * @const {ol.Size} * @private @@ -181,6 +198,8 @@ ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_ = */ ol.format.KML.DEFAULT_IMAGE_STYLE_ = new ol.style.Icon({ anchor: ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_, + anchorXUnits: ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS_, + anchorYUnits: ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS_, crossOrigin: 'anonymous', rotation: 0, scale: 1, @@ -219,6 +238,16 @@ ol.format.KML.DEFAULT_STYLE_ = new ol.style.Style({ ol.format.KML.DEFAULT_STYLE_ARRAY_ = [ol.format.KML.DEFAULT_STYLE_]; +/** + * @const {Object.} + * @private + */ +ol.format.KML.ICON_ANCHOR_UNITS_MAP_ = { + 'fraction': ol.style.IconAnchorUnits.FRACTION, + 'pixels': ol.style.IconAnchorUnits.PIXELS +}; + + /** * @param {number} resolution Resolution. * @private @@ -394,11 +423,15 @@ ol.format.KML.readURI_ = function(node) { * @return {ol.format.KMLVec2_} Vec2. */ ol.format.KML.readVec2_ = function(node) { + var xunits = node.getAttribute('xunits'); + var yunits = node.getAttribute('yunits'); return { x: parseFloat(node.getAttribute('x')), - xunits: node.getAttribute('xunits'), + xunits: goog.isNull(xunits) ? + undefined : ol.format.KML.ICON_ANCHOR_UNITS_MAP_[xunits], y: parseFloat(node.getAttribute('y')), - yunits: node.getAttribute('yunits') + yunits: goog.isNull(yunits) ? + undefined : ol.format.KML.ICON_ANCHOR_UNITS_MAP_[yunits] }; }; @@ -452,15 +485,17 @@ ol.format.KML.IconStyleParser_ = function(node, objectStack) { } else { src = ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_; } - var anchor; + var anchor, anchorXUnits, anchorYUnits; var hotSpot = /** @type {ol.format.KMLVec2_|undefined} */ (goog.object.get(object, 'hotSpot')); if (goog.isDef(hotSpot)) { - goog.asserts.assert(hotSpot.xunits == 'pixels'); - goog.asserts.assert(hotSpot.yunits == 'pixels'); anchor = [hotSpot.x, hotSpot.y]; + anchorXUnits = hotSpot.xunits; + anchorYUnits = hotSpot.yunits; } else if (src === ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_) { anchor = ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_; + anchorXUnits = ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS_; + anchorYUnits = ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS_; } else { anchor = null; } @@ -482,6 +517,8 @@ ol.format.KML.IconStyleParser_ = function(node, objectStack) { } var imageStyle = new ol.style.Icon({ anchor: anchor, + anchorXUnits: anchorXUnits, + anchorYUnits: anchorYUnits, crossOrigin: 'anonymous', // FIXME should this be configurable? rotation: rotation, scale: scale, From 1acdef835d7c47ea019deac4a30d9ce6da7b2682 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 7 Jan 2014 17:43:39 +0100 Subject: [PATCH 785/919] Change default anchor for KML icons from Google Maps --- src/ol/format/kmlformat.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index 996f212c67..65926e5361 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -496,6 +496,10 @@ ol.format.KML.IconStyleParser_ = function(node, objectStack) { anchor = ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_; anchorXUnits = ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS_; anchorYUnits = ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS_; + } else if (/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(src)) { + anchor = [0.5, 1]; + anchorXUnits = ol.style.IconAnchorUnits.FRACTION; + anchorYUnits = ol.style.IconAnchorUnits.FRACTION; } else { anchor = null; } From 5efc692b9d8bb8c98ed054960fbd1647d98b8738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 8 Jan 2014 00:44:00 +0100 Subject: [PATCH 786/919] Add typecast to icon example --- examples/icon.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/icon.js b/examples/icon.js index c97aca9a3b..35b4da967f 100644 --- a/examples/icon.js +++ b/examples/icon.js @@ -18,12 +18,12 @@ var raster = new ol.layer.Tile({ }); var styleArray = [new ol.style.Style({ - image: new ol.style.Icon({ + image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({ anchor: [0.5, 46], anchorXUnits: 'fraction', anchorYUnits: 'pixels', src: 'data/icon.png' - }) + })) })]; var vector = new ol.layer.Vector({ From 49120e4761b682a718071435d158aaf1cf5e37c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 8 Jan 2014 10:07:01 +0100 Subject: [PATCH 787/919] Icon anchors are Array. --- src/objectliterals.jsdoc | 2 +- src/ol/style/iconstyle.js | 2 +- src/ol/style/imagestyle.js | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index a7c0193eef..6b033629e6 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -797,7 +797,7 @@ /** * @typedef {Object} olx.style.IconOptions - * @property {ol.Pixel|undefined} anchor Anchor. Default value is [0.5, 0.5] + * @property {Array.|undefined} anchor Anchor. Default value is [0.5, 0.5] * (icon center). * @property {ol.style.IconAnchorUnits|undefined} anchorXUnits Units in which the anchor x value is specified. * A value of `'fraction'` indicates the x value is a fraction of the icon. diff --git a/src/ol/style/iconstyle.js b/src/ol/style/iconstyle.js index 7a4e74acdd..5cb250f9ef 100644 --- a/src/ol/style/iconstyle.js +++ b/src/ol/style/iconstyle.js @@ -91,7 +91,7 @@ ol.style.Icon = function(opt_options) { options.anchorYUnits : ol.style.IconAnchorUnits.FRACTION; /** - * @type {ol.Pixel} + * @type {Array.} */ var anchor = goog.isDef(options.anchor) ? options.anchor : [0.5, 0.5]; diff --git a/src/ol/style/imagestyle.js b/src/ol/style/imagestyle.js index 4491030da5..6592f81313 100644 --- a/src/ol/style/imagestyle.js +++ b/src/ol/style/imagestyle.js @@ -19,7 +19,7 @@ ol.style.ImageState = { /** - * @typedef {{anchor: ol.Pixel, + * @typedef {{anchor: Array., * imageState: ol.style.ImageState, * rotation: number, * scale: number, @@ -42,7 +42,7 @@ ol.style.Image = function(options) { /** * @protected - * @type {ol.Pixel} + * @type {Array.} */ this.anchor = options.anchor; @@ -95,7 +95,7 @@ ol.style.Image.prototype.dispatchChangeEvent = function() { /** - * @return {ol.Pixel} Anchor. + * @return {Array.} Anchor. */ ol.style.Image.prototype.getAnchor = function() { return this.anchor; From 47056f60125217d7db72a42235904d271cd265e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 8 Jan 2014 10:27:20 +0100 Subject: [PATCH 788/919] Remove useless code --- src/ol/format/kmlformat.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index 65926e5361..a9cb6483d3 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -427,11 +427,9 @@ ol.format.KML.readVec2_ = function(node) { var yunits = node.getAttribute('yunits'); return { x: parseFloat(node.getAttribute('x')), - xunits: goog.isNull(xunits) ? - undefined : ol.format.KML.ICON_ANCHOR_UNITS_MAP_[xunits], + xunits: ol.format.KML.ICON_ANCHOR_UNITS_MAP_[xunits], y: parseFloat(node.getAttribute('y')), - yunits: goog.isNull(yunits) ? - undefined : ol.format.KML.ICON_ANCHOR_UNITS_MAP_[yunits] + yunits: ol.format.KML.ICON_ANCHOR_UNITS_MAP_[yunits] }; }; From fd6756e46561839b59c23ce98849959d79e74578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 8 Jan 2014 11:35:09 +0100 Subject: [PATCH 789/919] Export ol.format.KML#readName --- src/ol/format/kmlformat.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/format/kmlformat.exports b/src/ol/format/kmlformat.exports index 53faabc585..a07f38bf74 100644 --- a/src/ol/format/kmlformat.exports +++ b/src/ol/format/kmlformat.exports @@ -1 +1,2 @@ @exportSymbol ol.format.KML +@exportProperty ol.format.KML.prototype.readName From 0fa748699a9e49d8a08830df77c2a25d89cefef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 8 Jan 2014 11:40:20 +0100 Subject: [PATCH 790/919] Export ol.source.Vector#forEachFeatureInExtent --- src/ol/source/vectorsource.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/source/vectorsource.exports b/src/ol/source/vectorsource.exports index 1b55238538..2934f113ae 100644 --- a/src/ol/source/vectorsource.exports +++ b/src/ol/source/vectorsource.exports @@ -3,6 +3,7 @@ @exportProperty ol.source.Vector.prototype.addFeatures @exportProperty ol.source.Vector.prototype.getClosestFeatureToCoordinate @exportProperty ol.source.Vector.prototype.forEachFeature +@exportProperty ol.source.Vector.prototype.forEachFeatureInExtent @exportProperty ol.source.Vector.prototype.getAllFeatures @exportProperty ol.source.Vector.prototype.getAllFeaturesAtCoordinate @exportProperty ol.source.Vector.prototype.removeFeature From 3f751a5903fb87d2e94877ecfb102e4463a123a6 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 6 Jan 2014 11:11:07 +0100 Subject: [PATCH 791/919] Scale the image size and anchor by pixelRatio --- src/ol/render/canvas/canvasreplay.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 1e94d2c537..f15dea14a7 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -663,20 +663,19 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { goog.asserts.assert(!goog.isNull(anchor)); var size = imageStyle.getSize(); goog.asserts.assert(!goog.isNull(size)); - // FIXME pixel ratio var hitDetectionImage = imageStyle.getHitDetectionImage(1); goog.asserts.assert(!goog.isNull(hitDetectionImage)); var image = imageStyle.getImage(1); goog.asserts.assert(!goog.isNull(image)); - this.anchorX_ = anchor[0]; - this.anchorY_ = anchor[1]; + this.anchorX_ = anchor[0] * this.pixelRatio; + this.anchorY_ = anchor[1] * this.pixelRatio; this.hitDetectionImage_ = hitDetectionImage; this.image_ = image; - this.height_ = size[1]; + this.height_ = size[1] * this.pixelRatio; this.rotation_ = imageStyle.getRotation(); this.scale_ = imageStyle.getScale(); this.snapToPixel_ = imageStyle.getSnapToPixel(); - this.width_ = size[0]; + this.width_ = size[0] * this.pixelRatio; }; From b508469d22c3ccb2dbd903a83a4821f95b13a03d Mon Sep 17 00:00:00 2001 From: oterral Date: Wed, 8 Jan 2014 16:38:19 +0100 Subject: [PATCH 792/919] Minor fix in FeatureOverlay --- src/ol/render/featuresoverlay.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ol/render/featuresoverlay.js b/src/ol/render/featuresoverlay.js index 494444b9ec..74e8fc058d 100644 --- a/src/ol/render/featuresoverlay.js +++ b/src/ol/render/featuresoverlay.js @@ -19,7 +19,7 @@ goog.require('ol.render.EventType'); */ ol.render.FeaturesOverlay = function(opt_options) { - var options = goog.isDef(opt_options) ? opt_options : options; + var options = goog.isDef(opt_options) ? opt_options : {}; /** * @private From 34260399e7434f59a069e5f4a213ad17eba3700b Mon Sep 17 00:00:00 2001 From: oterral Date: Fri, 22 Nov 2013 17:47:13 +0100 Subject: [PATCH 793/919] Add draw features interaction --- src/objectliterals.jsdoc | 11 + src/ol/interaction/drawinteraction.exports | 1 + src/ol/interaction/drawinteraction.js | 483 +++++++++++++++++++++ 3 files changed, 495 insertions(+) create mode 100644 src/ol/interaction/drawinteraction.exports create mode 100644 src/ol/interaction/drawinteraction.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 8d6611ca29..85ad5c0bb4 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -353,6 +353,17 @@ * @todo stability experimental */ +/** + * @typedef {Object} olx.interaction.DrawOptions + * @property {ol.layer.Vector|undefined} layer Destination layer for the features. + * @property {number|undefined} snapTolerance Pixel distance for snapping to the + * drawing finish (default is 12). + * @property {ol.geom.GeometryType} type Drawing type ('Point', 'LineString', + * 'Polygon', 'MultiPoint', 'MultiLineString', or 'MultiPolygon'). + * @property {ol.feature.StyleFunction|undefined} styleFunction Style function. + * @todo stability experimental + */ + /** * @typedef {Object} olx.interaction.KeyboardPanOptions * @property {ol.events.ConditionType|undefined} condition A conditional diff --git a/src/ol/interaction/drawinteraction.exports b/src/ol/interaction/drawinteraction.exports new file mode 100644 index 0000000000..890ae0f515 --- /dev/null +++ b/src/ol/interaction/drawinteraction.exports @@ -0,0 +1 @@ +@exportSymbol ol.interaction.Draw diff --git a/src/ol/interaction/drawinteraction.js b/src/ol/interaction/drawinteraction.js new file mode 100644 index 0000000000..24866d4fc2 --- /dev/null +++ b/src/ol/interaction/drawinteraction.js @@ -0,0 +1,483 @@ +goog.provide('ol.interaction.Draw'); + +goog.require('goog.asserts'); +goog.require('ol.Collection'); +goog.require('ol.Coordinate'); +goog.require('ol.Feature'); +goog.require('ol.Map'); +goog.require('ol.MapBrowserEvent'); +goog.require('ol.MapBrowserEvent.EventType'); +goog.require('ol.geom.LineString'); +goog.require('ol.geom.Point'); +goog.require('ol.geom.Polygon'); +goog.require('ol.interaction.Interaction'); +goog.require('ol.render.FeaturesOverlay'); +goog.require('ol.style.Circle'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); + + + +/** + * Interaction that allows drawing geometries + * @constructor + * @extends {ol.interaction.Interaction} + * @param {olx.interaction.DrawOptions=} opt_options Options. + */ +ol.interaction.Draw = function(opt_options) { + + goog.base(this); + + /** + * Target layer for drawn features. + * @type {ol.layer.Vector} + * @private + */ + this.layer_ = goog.isDef(opt_options.layer) ? opt_options.layer : null; + + /** + * Pixel distance for snapping. + * @type {number} + * @private + */ + this.snapTolerance_ = goog.isDef(opt_options.snapTolerance) ? + opt_options.snapTolerance : 12; + + /** + * Geometry type. + * @type {ol.geom.GeometryType} + * @private + */ + this.type_ = opt_options.type; + + /** + * Drawing mode (derived from geometry type. + * @type {ol.interaction.DrawMode} + * @private + */ + this.mode_ = ol.interaction.Draw.getMode_(this.type_); + + /** + * Finish coordinate for the feature (first point for polygons, last point for + * linestrings). + * @type {ol.Coordinate} + * @private + */ + this.finishCoordinate_ = null; + + /** + * Sketch feature. + * @type {ol.Feature} + * @private + */ + this.sketchFeature_ = null; + + /** + * Sketch point. + * @type {ol.Feature} + * @private + */ + this.sketchPoint_ = null; + + /** + * Sketch line. Used when drawing polygon. + * @type {ol.Feature} + * @private + */ + this.sketchLine_ = null; + + /** + * Sketch polygon. Used when drawing polygon. + * @type {ol.geom.RawPolygon} + * @private + */ + this.sketchRawPolygon_ = null; + + /** + * Squared tolerance for handling click events. If the squared distance + * between a down and click event is greater than this tolerance, click events + * will not be handled. + * @type {number} + * @private + */ + this.squaredClickTolerance_ = 4; + + /** + * Draw overlay where are sketch features are drawn. + * @type {ol.render.FeaturesOverlay} + * @private + */ + this.overlay_ = new ol.render.FeaturesOverlay(); + this.overlay_.setStyleFunction(goog.isDef(opt_options.styleFunction) ? + opt_options.styleFunction : ol.interaction.Draw.defaultStyleFunction + ); +}; +goog.inherits(ol.interaction.Draw, ol.interaction.Interaction); + + +/** + * @param {ol.Feature} feature Feature. + * @param {number} resolution Resolution. + * @return {Array.} Styles. + */ +ol.interaction.Draw.defaultStyleFunction = (function() { + /** @type {Object.>} */ + var styles = {}; + styles[ol.geom.GeometryType.POLYGON] = [ + new ol.style.Style({ + fill: new ol.style.Fill({ + color: 'rgba(255, 255, 255, 0.5)' + }) + }) + ]; + styles[ol.geom.GeometryType.MULTI_POLYGON] = + styles[ol.geom.GeometryType.POLYGON]; + + styles[ol.geom.GeometryType.LINE_STRING] = [ + new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'white', + width: 5 + }) + }), + new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: '#0099ff', + width: 3 + }) + }) + ]; + styles[ol.geom.GeometryType.MULTI_LINE_STRING] = + styles[ol.geom.GeometryType.LINE_STRING]; + + styles[ol.geom.GeometryType.POINT] = [ + new ol.style.Style({ + image: new ol.style.Circle({ + radius: 7, + fill: new ol.style.Fill({ + color: '#0099ff' + }), + stroke: new ol.style.Stroke({ + color: 'rgba(255, 255, 255, 0.75)', + width: 1.5 + }) + }), + zIndex: 100000 + }) + ]; + styles[ol.geom.GeometryType.MULTI_POINT] = + styles[ol.geom.GeometryType.POINT]; + + return function(feature, resolution) { + return styles[feature.getGeometry().getType()]; + }; +})(); + + +/** + * @inheritDoc + */ +ol.interaction.Draw.prototype.setMap = function(map) { + if (goog.isNull(map)) { + // removing from a map, clean up + this.abortDrawing_(); + } + this.overlay_.setMap(map); + goog.base(this, 'setMap', map); +}; + + +/** + * @inheritDoc + */ +ol.interaction.Draw.prototype.handleMapBrowserEvent = function(event) { + var map = event.map; + if (!map.isDef()) { + return true; + } + var pass = true; + if (event.type === ol.MapBrowserEvent.EventType.CLICK) { + pass = this.handleClick_(event); + } else if (event.type === ol.MapBrowserEvent.EventType.MOUSEMOVE) { + pass = this.handleMove_(event); + } else if (event.type === ol.MapBrowserEvent.EventType.DBLCLICK) { + pass = false; + } + return pass; +}; + + +/** + * Handle click events. + * @param {ol.MapBrowserEvent} event A click event. + * @return {boolean} Pass the event to other interactions. + * @private + */ +ol.interaction.Draw.prototype.handleClick_ = function(event) { + var downPx = event.map.getEventPixel(event.target.getDown()); + var clickPx = event.getPixel(); + var dx = downPx[0] - clickPx[0]; + var dy = downPx[1] - clickPx[1]; + var squaredDistance = dx * dx + dy * dy; + var pass = true; + if (squaredDistance <= this.squaredClickTolerance_) { + if (goog.isNull(this.finishCoordinate_)) { + this.startDrawing_(event); + } else if (this.mode_ === ol.interaction.DrawMode.POINT || + this.atFinish_(event)) { + this.finishDrawing_(event); + } else { + this.addToDrawing_(event); + } + pass = false; + } + return pass; +}; + + +/** + * Handle mousemove events. + * @param {ol.MapBrowserEvent} event A mousemove event. + * @return {boolean} Pass the event to other interactions. + * @private + */ +ol.interaction.Draw.prototype.handleMove_ = function(event) { + if (this.mode_ === ol.interaction.DrawMode.POINT && + goog.isNull(this.finishCoordinate_)) { + this.startDrawing_(event); + } else if (!goog.isNull(this.finishCoordinate_)) { + this.modifyDrawing_(event); + } + return true; +}; + + +/** + * Determine if an event is within the snapping tolerance of the start coord. + * @param {ol.MapBrowserEvent} event Event. + * @return {boolean} The event is within the snapping tolerance of the start. + * @private + */ +ol.interaction.Draw.prototype.atFinish_ = function(event) { + var at = false; + if (this.sketchFeature_) { + var geometry = this.sketchFeature_.getGeometry(); + var potentiallyDone = false; + if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) { + goog.asserts.assertInstanceof(geometry, ol.geom.LineString); + potentiallyDone = geometry.getCoordinates().length > 2; + } else if (this.mode_ === ol.interaction.DrawMode.POLYGON) { + goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); + potentiallyDone = geometry.getCoordinates()[0].length > 3; + } + if (potentiallyDone) { + var map = event.map; + var finishPixel = map.getPixelFromCoordinate(this.finishCoordinate_); + var pixel = event.getPixel(); + var dx = pixel[0] - finishPixel[0]; + var dy = pixel[1] - finishPixel[1]; + at = Math.sqrt(dx * dx + dy * dy) <= this.snapTolerance_; + } + } + return at; +}; + + +/** + * Start the drawing. + * @param {ol.MapBrowserEvent} event Event. + * @private + */ +ol.interaction.Draw.prototype.startDrawing_ = function(event) { + var start = event.getCoordinate(); + this.finishCoordinate_ = start; + var geometry; + if (this.mode_ === ol.interaction.DrawMode.POINT) { + geometry = new ol.geom.Point(start.slice()); + } else { + this.sketchPoint_ = new ol.Feature(new ol.geom.Point(start.slice())); + + if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) { + geometry = new ol.geom.LineString([start.slice(), start.slice()]); + } else if (this.mode_ === ol.interaction.DrawMode.POLYGON) { + this.sketchLine_ = new ol.Feature(new ol.geom.LineString([start.slice(), + start.slice()])); + this.sketchRawPolygon_ = [[start.slice(), start.slice()]]; + geometry = new ol.geom.Polygon(this.sketchRawPolygon_); + } + } + goog.asserts.assert(goog.isDef(geometry)); + this.sketchFeature_ = new ol.Feature(geometry); + this.updateSketchFeatures_(); +}; + + +/** + * Modify the drawing. + * @param {ol.MapBrowserEvent} event Event. + * @private + */ +ol.interaction.Draw.prototype.modifyDrawing_ = function(event) { + var coordinate = event.getCoordinate(); + var geometry = this.sketchFeature_.getGeometry(); + var coordinates, last; + if (this.mode_ === ol.interaction.DrawMode.POINT) { + goog.asserts.assertInstanceof(geometry, ol.geom.Point); + last = geometry.getCoordinates(); + last[0] = coordinate[0]; + last[1] = coordinate[1]; + geometry.setCoordinates(last); + } else { + if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) { + goog.asserts.assertInstanceof(geometry, ol.geom.LineString); + coordinates = geometry.getCoordinates(); + } else if (this.mode_ === ol.interaction.DrawMode.POLYGON) { + goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); + coordinates = this.sketchRawPolygon_[0]; + } + if (this.atFinish_(event)) { + // snap to finish + coordinate = this.finishCoordinate_.slice(); + } + var sketchPointGeom = this.sketchPoint_.getGeometry(); + goog.asserts.assertInstanceof(sketchPointGeom, ol.geom.Point); + sketchPointGeom.setCoordinates(coordinate); + last = coordinates[coordinates.length - 1]; + last[0] = coordinate[0]; + last[1] = coordinate[1]; + if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) { + goog.asserts.assertInstanceof(geometry, ol.geom.LineString); + geometry.setCoordinates(coordinates); + } else if (this.mode_ === ol.interaction.DrawMode.POLYGON) { + var sketchLineGeom = this.sketchLine_.getGeometry(); + goog.asserts.assertInstanceof(sketchLineGeom, ol.geom.LineString); + sketchLineGeom.setCoordinates(coordinates); + goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); + geometry.setCoordinates(this.sketchRawPolygon_); + } + } + this.updateSketchFeatures_(); +}; + + +/** + * Add a new coordinate to the drawing. + * @param {ol.MapBrowserEvent} event Event. + * @private + */ +ol.interaction.Draw.prototype.addToDrawing_ = function(event) { + var coordinate = event.getCoordinate(); + var geometry = this.sketchFeature_.getGeometry(); + var coordinates, last; + if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) { + this.finishCoordinate_ = coordinate.slice(); + goog.asserts.assertInstanceof(geometry, ol.geom.LineString); + coordinates = geometry.getCoordinates(); + coordinates.push(coordinate.slice()); + geometry.setCoordinates(coordinates); + } else if (this.mode_ === ol.interaction.DrawMode.POLYGON) { + this.sketchRawPolygon_[0].push(coordinate.slice()); + goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); + geometry.setCoordinates(this.sketchRawPolygon_); + } + this.updateSketchFeatures_(); +}; + + +/** + * Stop drawing and add the sketch feature to the target layer. + * @param {ol.MapBrowserEvent} event Event. + * @private + */ +ol.interaction.Draw.prototype.finishDrawing_ = function(event) { + var sketchFeature = this.abortDrawing_(); + goog.asserts.assert(!goog.isNull(sketchFeature)); + var coordinates; + var geometry = sketchFeature.getGeometry(); + if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) { + goog.asserts.assertInstanceof(geometry, ol.geom.LineString); + coordinates = geometry.getCoordinates(); + // remove the redundant last point + coordinates.pop(); + geometry.setCoordinates(coordinates); + } else if (this.mode_ === ol.interaction.DrawMode.POLYGON) { + goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); + coordinates = geometry.getCoordinates(); + // force clockwise order for exterior ring + sketchFeature.setGeometry(new ol.geom.Polygon(coordinates)); + } + if (this.layer_) { + this.layer_.getSource().addFeature(sketchFeature); + } +}; + + +/** + * Stop drawing without adding the sketch feature to the target layer. + * @return {ol.Feature} The sketch feature (or null if none). + * @private + */ +ol.interaction.Draw.prototype.abortDrawing_ = function() { + this.finishCoordinate_ = null; + var sketchFeature = this.sketchFeature_; + if (!goog.isNull(sketchFeature)) { + this.sketchFeature_ = null; + this.sketchPoint_ = null; + this.sketchLine_ = null; + this.overlay_.getFeatures().clear(); + } + return sketchFeature; +}; + + +/** + * Redraw the skecth features. + * @private + */ +ol.interaction.Draw.prototype.updateSketchFeatures_ = function() { + var sketchFeatures = [this.sketchFeature_]; + if (this.sketchLine_) { + sketchFeatures.push(this.sketchLine_); + } + if (this.sketchPoint_) { + sketchFeatures.push(this.sketchPoint_); + } + this.overlay_.setFeatures(new ol.Collection(sketchFeatures)); +}; + + +/** + * Get the drawing mode. The mode for mult-part geometries is the same as for + * their single-part cousins. + * @param {ol.geom.GeometryType} type Geometry type. + * @return {ol.interaction.DrawMode} Drawing mode. + * @private + */ +ol.interaction.Draw.getMode_ = function(type) { + var mode; + if (type === ol.geom.GeometryType.POINT || + type === ol.geom.GeometryType.MULTI_POINT) { + mode = ol.interaction.DrawMode.POINT; + } else if (type === ol.geom.GeometryType.LINE_STRING || + type === ol.geom.GeometryType.MULTI_LINE_STRING) { + mode = ol.interaction.DrawMode.LINE_STRING; + } else if (type === ol.geom.GeometryType.POLYGON || + type === ol.geom.GeometryType.MULTI_POLYGON) { + mode = ol.interaction.DrawMode.POLYGON; + } + goog.asserts.assert(goog.isDef(mode)); + return mode; +}; + + +/** + * Draw mode. This collapses multi-part geometry types with their single-part + * cousins. + * @enum {string} + */ +ol.interaction.DrawMode = { + POINT: 'Point', + LINE_STRING: 'LineString', + POLYGON: 'Polygon' +}; From e3810b5027db6be3f3f919fbbd91b3bd818c847c Mon Sep 17 00:00:00 2001 From: oterral Date: Wed, 8 Jan 2014 15:46:08 +0100 Subject: [PATCH 794/919] Add draw features example --- examples/draw-features.html | 59 +++++++++++++++++++++++++++++ examples/draw-features.js | 74 +++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 examples/draw-features.html create mode 100644 examples/draw-features.js diff --git a/examples/draw-features.html b/examples/draw-features.html new file mode 100644 index 0000000000..3cb90e6121 --- /dev/null +++ b/examples/draw-features.html @@ -0,0 +1,59 @@ + + + + + + + + + + + Draw features example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Draw features example

+

Example of using the Draw interaction.

+
+ + +
+ +
+

See the draw-features.js source to see how this is done.

+
+
draw, edit, vector
+
+ +
+ +
+ + + + + + diff --git a/examples/draw-features.js b/examples/draw-features.js new file mode 100644 index 0000000000..a61b246f94 --- /dev/null +++ b/examples/draw-features.js @@ -0,0 +1,74 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.interaction'); +goog.require('ol.interaction.Draw'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.source.MapQuestOpenAerial'); +goog.require('ol.source.Vector'); +goog.require('ol.style.Circle'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); + +var raster = new ol.layer.Tile({ + source: new ol.source.MapQuestOpenAerial() +}); + +var styleArray = [new ol.style.Style({ + fill: new ol.style.Fill({ + color: 'rgba(255, 255, 255, 0.2)' + }), + stroke: new ol.style.Stroke({ + color: '#ffcc33', + width: 2 + }), + image: new ol.style.Circle({ + radius: 7, + fill: new ol.style.Fill({ + color: '#ffcc33' + }) + }) +})]; + +var vector = new ol.layer.Vector({ + source: new ol.source.Vector(), + styleFunction: function(feature, resolution) { + return styleArray; + } +}); + +var map = new ol.Map({ + layers: [raster, vector], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: [-11000000, 4600000], + zoom: 4 + }) +}); + +var typeSelect = document.getElementById('type'); + +var draw; // global so we can remove it later +function addInteraction() { + draw = new ol.interaction.Draw({ + layer: vector, + type: /** @type {ol.geom.GeometryType} */ + (typeSelect.options[typeSelect.selectedIndex].value) + }); + map.addInteraction(draw); +} + + +/** + * Let user change the geometry type. + * @param {Event} e Change event. + */ +typeSelect.onchange = function(e) { + map.removeInteraction(draw); + addInteraction(); +}; + +addInteraction(); From 6b94baf291855d7a7d3d7687a6c03c5f1ad011d5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 7 Jan 2014 14:38:40 +0100 Subject: [PATCH 795/919] Add ol.format.KML defaultStyle option --- src/objectliterals.jsdoc | 2 ++ src/ol/format/kmlformat.js | 44 ++++++++++++++++++++++---------------- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index c787d828be..6751f8d610 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -262,6 +262,8 @@ /** * @typedef {Object} olx.format.KMLOptions + * @property {Array.|undefined} defaultStyle Default style. The default + * default style is the same as Google Earth. * @property {boolean|undefined} extractAttributes Extract attributes. * @property {boolean|undefined} extractStyles Extract styles. */ diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index a9cb6483d3..aff6e5c5ad 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -65,10 +65,33 @@ ol.format.KMLGxTrackObject_; */ ol.format.KML = function(opt_options) { - //var options = goog.isDef(opt_options) ? opt_options : {}; + var options = goog.isDef(opt_options) ? opt_options : {}; goog.base(this); + var defaultStyle = goog.isDef(options.defaultStyle) ? + options.defaultStyle : ol.format.KML.DEFAULT_STYLE_ARRAY_; + + /** + * @private + * @type {ol.feature.FeatureStyleFunction} + */ + this.defaultFeatureStyleFunction_ = + /** + * @param {number} resolution Resolution. + * @this {ol.Feature} + * @return {Array.} Style. + */ + function(resolution) { + if (ol.KML_RESPECT_VISIBILITY) { + var visibility = this.get('visibility'); + if (goog.isDef(visibility) && !visibility) { + return null; + } + } + return defaultStyle; + }; + /** @type {Object.>} */ var sharedStyles = {}; @@ -248,23 +271,6 @@ ol.format.KML.ICON_ANCHOR_UNITS_MAP_ = { }; -/** - * @param {number} resolution Resolution. - * @private - * @return {Array.} - * @this {ol.Feature} - */ -ol.format.KML.defaultFeatureStyleFunction_ = function(resolution) { - if (ol.KML_RESPECT_VISIBILITY) { - var visibility = this.get('visibility'); - if (goog.isDef(visibility) && !visibility) { - return null; - } - } - return ol.format.KML.DEFAULT_STYLE_ARRAY_; -}; - - /** * @param {ol.style.Style} style Style. * @private @@ -1449,7 +1455,7 @@ ol.format.KML.prototype.readPlacemark_ = function(node, objectStack) { if (goog.isDef(styleUrl)) { featureStyleFunction = this.sharedStyleFeatureStyleFunction_; } else if (goog.isNull(style)) { - featureStyleFunction = ol.format.KML.defaultFeatureStyleFunction_; + featureStyleFunction = this.defaultFeatureStyleFunction_; } else { featureStyleFunction = ol.format.KML.makeFeatureStyleFunction_(style); } From dcd2853d2dc3ff9d4b9ea0b6f158ff4dcc98368a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 7 Jan 2014 14:38:55 +0100 Subject: [PATCH 796/919] Add ol.source.KML defaultStyle option --- src/objectliterals.jsdoc | 1 + src/ol/source/kmlsource.js | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 6751f8d610..bc47d517be 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -581,6 +581,7 @@ /** * @typedef {Object} olx.source.KMLOptions * @property {Array.|undefined} attributions Attributions. + * @property {Array.|undefined} defaultStyle Default style. * @property {Document|undefined} doc Document. * @property {ol.Extent|undefined} extent Extent. * @property {string|undefined} logo Logo. diff --git a/src/ol/source/kmlsource.js b/src/ol/source/kmlsource.js index a10a5be288..9b645fb372 100644 --- a/src/ol/source/kmlsource.js +++ b/src/ol/source/kmlsource.js @@ -18,7 +18,9 @@ ol.source.KML = function(opt_options) { attributions: options.attributions, doc: options.doc, extent: options.extent, - format: new ol.format.KML(), + format: new ol.format.KML({ + defaultStyle: options.defaultStyle + }), logo: options.logo, node: options.node, projection: options.projection, From db85936de2b654b51460abb921fdb7c5d4fa0380 Mon Sep 17 00:00:00 2001 From: oterral Date: Thu, 9 Jan 2014 10:54:57 +0100 Subject: [PATCH 797/919] Export ol.style.Image#getScale --- src/ol/style/imagestyle.exports | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ol/style/imagestyle.exports b/src/ol/style/imagestyle.exports index d41b6f4897..b2e44df726 100644 --- a/src/ol/style/imagestyle.exports +++ b/src/ol/style/imagestyle.exports @@ -1,4 +1,5 @@ @exportSymbol ol.style.Image @exportProperty ol.style.Image.prototype.getAnchor @exportProperty ol.style.Image.prototype.getRotation +@exportProperty ol.style.Image.prototype.getScale @exportProperty ol.style.Image.prototype.getSize From b52a4b084ecb56899eff7bcb128f25dcb272aced Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 9 Jan 2014 00:17:46 +0100 Subject: [PATCH 798/919] Remove pointless test --- test/spec/ol/source/imagewmssource.test.js | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/test/spec/ol/source/imagewmssource.test.js b/test/spec/ol/source/imagewmssource.test.js index 33f8f4089b..06895b9684 100644 --- a/test/spec/ol/source/imagewmssource.test.js +++ b/test/spec/ol/source/imagewmssource.test.js @@ -1,26 +1,9 @@ goog.provide('ol.test.source.ImageWMS'); + describe('ol.source.ImageWMS', function() { - describe('constructor', function() { - - it('creates a source', function() { - var source = new ol.source.ImageWMS({ - url: 'http://demo.opengeo.org/geoserver/wms', - params: {'LAYERS': 'topp:states'}, - extent: [-13884991, 2870341, -7455066, 6338219] - }); - - expect(source).to.be.a(ol.source.ImageWMS); - expect(source).to.be.a(ol.source.Source); - }); - - }); - }); -goog.require('goog.Uri'); -goog.require('ol.Map'); goog.require('ol.source.ImageWMS'); -goog.require('ol.source.Source'); From 079cd585e60a4e11740e4a21626a2886e7388dbb Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 9 Jan 2014 01:27:54 +0100 Subject: [PATCH 799/919] Add ol.source.ImageWMS tests --- test/spec/ol/source/imagewmssource.test.js | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) diff --git a/test/spec/ol/source/imagewmssource.test.js b/test/spec/ol/source/imagewmssource.test.js index 06895b9684..18aa4848b8 100644 --- a/test/spec/ol/source/imagewmssource.test.js +++ b/test/spec/ol/source/imagewmssource.test.js @@ -3,7 +3,143 @@ goog.provide('ol.test.source.ImageWMS'); describe('ol.source.ImageWMS', function() { + describe('#getImage', function() { + + var extent, pixelRatio, options, projection, resolution; + beforeEach(function() { + extent = [10, 20, 30, 40]; + pixelRatio = 1; + projection = ol.proj.get('EPSG:4326'); + resolution = 0.1; + options = { + params: { + 'LAYERS': 'layer' + }, + ratio: 1, + url: 'http://example.com/wms' + }; + }); + + it('returns the expected image URL', function() { + var source = new ol.source.ImageWMS(options); + var image = source.getImage(extent, resolution, pixelRatio, projection); + var uri = new goog.Uri(image.src_); + expect(uri.getScheme()).to.be('http'); + expect(uri.getDomain()).to.be('example.com'); + expect(uri.getPath()).to.be('/wms'); + var queryData = uri.getQueryData(); + expect(queryData.get('BBOX')).to.be('20,10,40,30'); + expect(queryData.get('CRS')).to.be('EPSG:4326'); + expect(queryData.get('FORMAT')).to.be('image/png'); + expect(queryData.get('HEIGHT')).to.be('200'); + expect(queryData.get('LAYERS')).to.be('layer'); + expect(queryData.get('REQUEST')).to.be('GetMap'); + expect(queryData.get('SERVICE')).to.be('WMS'); + expect(queryData.get('SRS')).to.be(undefined); + expect(queryData.get('STYLES')).to.be(''); + expect(queryData.get('TRANSPARENT')).to.be('true'); + expect(queryData.get('VERSION')).to.be('1.3.0'); + expect(queryData.get('WIDTH')).to.be('200'); + expect(uri.getFragment()).to.be.empty(); + }); + + it('sets the SRS query value instead of CRS if version < 1.3', function() { + options.params.VERSION = '1.2'; + var source = new ol.source.ImageWMS(options); + var image = source.getImage(extent, resolution, pixelRatio, projection); + var uri = new goog.Uri(image.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('CRS')).to.be(undefined); + expect(queryData.get('SRS')).to.be('EPSG:4326'); + }); + + it('allows various parameters to be overridden', function() { + options.params.FORMAT = 'image/jpeg'; + options.params.TRANSPARENT = false; + var source = new ol.source.ImageWMS(options); + var image = source.getImage(extent, resolution, pixelRatio, projection); + var uri = new goog.Uri(image.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('FORMAT')).to.be('image/jpeg'); + expect(queryData.get('TRANSPARENT')).to.be('false'); + }); + + it('does not add a STYLES= option if one is specified', function() { + options.params.STYLES = 'foo'; + var source = new ol.source.ImageWMS(options); + var image = source.getImage(extent, resolution, pixelRatio, projection); + var uri = new goog.Uri(image.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('STYLES')).to.be('foo'); + }); + + it('changes the BBOX order for EN axis orientations', function() { + var source = new ol.source.ImageWMS(options); + projection = ol.proj.get('CRS:84'); + var image = source.getImage(extent, resolution, pixelRatio, projection); + var uri = new goog.Uri(image.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('BBOX')).to.be('10,20,30,40'); + }); + + it('uses EN BBOX order if version < 1.3', function() { + options.params.VERSION = '1.1.0'; + var source = new ol.source.ImageWMS(options); + var image = + source.getImage(extent, resolution, pixelRatio, projection); + var uri = new goog.Uri(image.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('BBOX')).to.be('10,20,30,40'); + }); + + it('sets MAP_RESOLUTION when the server is MapServer', function() { + options.serverType = ol.source.wms.ServerType.MAPSERVER; + var source = new ol.source.ImageWMS(options); + pixelRatio = 2; + var image = source.getImage(extent, resolution, pixelRatio, projection); + var uri = new goog.Uri(image.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('MAP_RESOLUTION')).to.be('180'); + }); + + it('sets FORMAT_OPTIONS when the server is GeoServer', function() { + options.serverType = ol.source.wms.ServerType.GEOSERVER; + var source = new ol.source.ImageWMS(options); + pixelRatio = 2; + var image = source.getImage(extent, resolution, pixelRatio, projection); + var uri = new goog.Uri(image.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('FORMAT_OPTIONS')).to.be('dpi:180'); + }); + + it('rounds FORMAT_OPTIONS to an integer when the server is GeoServer', + function() { + options.serverType = ol.source.wms.ServerType.GEOSERVER; + var source = new ol.source.ImageWMS(options); + pixelRatio = 1.325; + var image = + source.getImage(extent, resolution, pixelRatio, projection); + var uri = new goog.Uri(image.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('FORMAT_OPTIONS')).to.be('dpi:119'); + }); + + it('sets DPI when the server is QGIS', function() { + options.serverType = ol.source.wms.ServerType.QGIS; + var source = new ol.source.ImageWMS(options); + pixelRatio = 2; + var image = source.getImage(extent, resolution, pixelRatio, projection); + var uri = new goog.Uri(image.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('DPI')).to.be('180'); + }); + + }); + }); +goog.require('goog.Uri'); goog.require('ol.source.ImageWMS'); +goog.require('ol.proj'); +goog.require('ol.source.wms.ServerType'); From 8d18f25296a718e01e4d96e47591cb592ee4fa07 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 9 Jan 2014 10:50:51 +0100 Subject: [PATCH 800/919] Add ol.source.TileWMS tests --- test/spec/ol/source/tilewmssource.test.js | 113 ++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 test/spec/ol/source/tilewmssource.test.js diff --git a/test/spec/ol/source/tilewmssource.test.js b/test/spec/ol/source/tilewmssource.test.js new file mode 100644 index 0000000000..f27cee5b97 --- /dev/null +++ b/test/spec/ol/source/tilewmssource.test.js @@ -0,0 +1,113 @@ +goog.provide('ol.test.source.TileWMS'); + + +describe('ol.source.TileWMS', function() { + + var options; + beforeEach(function() { + options = { + params: { + 'LAYERS': 'layer' + }, + url: 'http://example.com/wms' + }; + }); + + describe('#getTile', function() { + + it('returns a tile with the expected URL', function() { + var source = new ol.source.TileWMS(options); + var tile = source.getTile(3, 2, 1, ol.proj.get('EPSG:3857')); + expect(tile).to.be.an(ol.ImageTile); + var uri = new goog.Uri(tile.src_); + expect(uri.getScheme()).to.be('http'); + expect(uri.getDomain()).to.be('example.com'); + expect(uri.getPath()).to.be('/wms'); + var queryData = uri.getQueryData(); + expect(queryData.get('BBOX')).to.be( + '-10018754.171394622,-15028131.257091932,' + + '-5009377.085697311,-10018754.17139462'); + expect(queryData.get('CRS')).to.be('EPSG:3857'); + expect(queryData.get('FORMAT')).to.be('image/png'); + expect(queryData.get('HEIGHT')).to.be('256'); + expect(queryData.get('LAYERS')).to.be('layer'); + expect(queryData.get('REQUEST')).to.be('GetMap'); + expect(queryData.get('SERVICE')).to.be('WMS'); + expect(queryData.get('SRS')).to.be(undefined); + expect(queryData.get('STYLES')).to.be(''); + expect(queryData.get('TRANSPARENT')).to.be('true'); + expect(queryData.get('VERSION')).to.be('1.3.0'); + expect(queryData.get('WIDTH')).to.be('256'); + expect(uri.getFragment()).to.be.empty(); + }); + + it('returns a larger tile when a gutter is specified', function() { + options.gutter = 16; + var source = new ol.source.TileWMS(options); + var tile = source.getTile(3, 2, 1, ol.proj.get('EPSG:3857')); + expect(tile).to.be.an(ol.ImageTile); + var uri = new goog.Uri(tile.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('BBOX')).to.be( + '-10331840.239250705,-15341217.324948015,' + + '-4696291.017841229,-9705668.103538537'); + expect(queryData.get('HEIGHT')).to.be('288'); + expect(queryData.get('WIDTH')).to.be('288'); + }); + + it('sets the SRS query value instead of CRS if version < 1.3', function() { + options.params.VERSION = '1.2'; + var source = new ol.source.TileWMS(options); + var tile = source.getTile(3, 2, 1, ol.proj.get('EPSG:4326')); + var uri = new goog.Uri(tile.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('CRS')).to.be(undefined); + expect(queryData.get('SRS')).to.be('EPSG:4326'); + }); + + it('allows various parameters to be overridden', function() { + options.params.FORMAT = 'image/jpeg'; + options.params.TRANSPARENT = false; + var source = new ol.source.TileWMS(options); + var tile = source.getTile(3, 2, 1, ol.proj.get('EPSG:4326')); + var uri = new goog.Uri(tile.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('FORMAT')).to.be('image/jpeg'); + expect(queryData.get('TRANSPARENT')).to.be('false'); + }); + + it('does not add a STYLES= option if one is specified', function() { + options.params.STYLES = 'foo'; + var source = new ol.source.TileWMS(options); + var tile = source.getTile(3, 2, 1, ol.proj.get('EPSG:4326')); + var uri = new goog.Uri(tile.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('STYLES')).to.be('foo'); + }); + + it('changes the BBOX order for EN axis orientations', function() { + var source = new ol.source.TileWMS(options); + var tile = source.getTile(3, 2, 1, ol.proj.get('EPSG:4326')); + var uri = new goog.Uri(tile.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('BBOX')).to.be('-45,-90,0,-45'); + }); + + it('uses EN BBOX order if version < 1.3', function() { + options.params.VERSION = '1.1.0'; + var source = new ol.source.TileWMS(options); + var tile = source.getTile(3, 2, 1, ol.proj.get('CRS:84')); + var uri = new goog.Uri(tile.src_); + var queryData = uri.getQueryData(); + expect(queryData.get('BBOX')).to.be('-90,-45,-45,0'); + }); + + }); + +}); + + +goog.require('goog.Uri'); +goog.require('ol.ImageTile'); +goog.require('ol.source.TileWMS'); +goog.require('ol.proj'); From 95f1871ac40fd1aa31cb1a9ce862c2389910d2e6 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 21:14:44 +0100 Subject: [PATCH 801/919] Make ol.source.ImageSource crossOrigin property protected --- src/ol/source/imagesource.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/source/imagesource.js b/src/ol/source/imagesource.js index 2fbcb87bb1..3bcf40e698 100644 --- a/src/ol/source/imagesource.js +++ b/src/ol/source/imagesource.js @@ -52,10 +52,10 @@ ol.source.Image = function(options) { ol.ImageUrlFunction.nullImageUrlFunction; /** - * @private + * @protected * @type {?string} */ - this.crossOrigin_ = + this.crossOrigin = goog.isDef(options.crossOrigin) ? options.crossOrigin : null; /** @@ -89,7 +89,7 @@ ol.source.Image.prototype.createImage = var imageUrl = this.imageUrlFunction(extent, size, projection); if (goog.isDef(imageUrl)) { image = new ol.Image( - extent, resolution, pixelRatio, imageUrl, this.crossOrigin_, + extent, resolution, pixelRatio, imageUrl, this.crossOrigin, this.getAttributions()); } return image; From e9d84017867d3016425291cad0fbe49022f9c4b3 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 21:19:52 +0100 Subject: [PATCH 802/919] Refactor ol.source.ImageWMS URL logic * Always request images of integer WIDTH and HEIGHT * Match BBOX to requested size * Handle integer-only DPIs in GeoServer --- src/ol/source/imagewmssource.js | 130 +++++++++++++++++++++++++------- 1 file changed, 103 insertions(+), 27 deletions(-) diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 89b228408c..72b591e09a 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -1,43 +1,48 @@ +// FIXME factor out v13 calculation + goog.provide('ol.source.ImageWMS'); goog.require('goog.asserts'); goog.require('goog.object'); +goog.require('goog.string'); +goog.require('goog.uri.utils'); goog.require('ol.Image'); -goog.require('ol.ImageUrlFunction'); goog.require('ol.extent'); goog.require('ol.source.Image'); -goog.require('ol.source.wms'); +goog.require('ol.source.wms.ServerType'); /** * @constructor * @extends {ol.source.Image} - * @param {olx.source.ImageWMSOptions} options Options. + * @param {olx.source.ImageWMSOptions=} opt_options Options. * @todo stability experimental */ -ol.source.ImageWMS = function(options) { +ol.source.ImageWMS = function(opt_options) { - /** - * @private - * @type {Object} - */ - this.params_ = options.params; - - var imageUrlFunction = goog.isDef(options.url) ? - ol.ImageUrlFunction.createFromParamsFunction( - options.url, this.params_, ol.source.wms.getUrl) : - ol.ImageUrlFunction.nullImageUrlFunction; + var options = goog.isDef(opt_options) ? opt_options : {}; goog.base(this, { attributions: options.attributions, crossOrigin: options.crossOrigin, extent: options.extent, projection: options.projection, - resolutions: options.resolutions, - imageUrlFunction: imageUrlFunction + resolutions: options.resolutions }); + /** + * @private + * @type {string|undefined} + */ + this.url_ = options.url; + + /** + * @private + * @type {Object} + */ + this.params_ = options.params; + /** * @private * @type {ol.source.wms.ServerType|undefined} @@ -81,8 +86,16 @@ ol.source.ImageWMS.prototype.getParams = function() { */ ol.source.ImageWMS.prototype.getImage = function(extent, resolution, pixelRatio, projection) { + + if (!goog.isDef(this.url_)) { + return null; + } + resolution = this.findNearestResolution(resolution); - pixelRatio = this.hidpi_ ? pixelRatio : 1; + + if (pixelRatio != 1 && (!this.hidpi_ || !goog.isDef(this.serverType_))) { + pixelRatio = 1; + } var image = this.image_; if (!goog.isNull(image) && @@ -92,20 +105,83 @@ ol.source.ImageWMS.prototype.getImage = return image; } - extent = extent.slice(); - ol.extent.scaleFromCenter(extent, this.ratio_); - var width = (extent[2] - extent[0]) / resolution; - var height = (extent[3] - extent[1]) / resolution; - var size = [width * pixelRatio, height * pixelRatio]; + var params = { + 'SERVICE': 'WMS', + 'VERSION': '1.3.0', + 'REQUEST': 'GetMap', + 'FORMAT': 'image/png', + 'TRANSPARENT': true + }; + goog.object.extend(params, this.params_); - if (goog.isDef(this.serverType_) && pixelRatio > 1) { - var param = ol.source.wms.getDpiParam(this.serverType_, pixelRatio); - goog.object.extend(this.params_, param); + var v13 = goog.string.compareVersions( + goog.object.get(params, 'VERSION'), '1.3') >= 0; + + params[v13 ? 'CRS' : 'SRS'] = projection.getCode(); + + if (!('STYLES' in this.params_)) { + goog.object.set(params, 'STYLES', new String('')); } - this.image_ = this.createImage( - extent, resolution, pixelRatio, size, projection); + if (pixelRatio != 1) { + switch (this.serverType_) { + case ol.source.wms.ServerType.GEOSERVER: + var dpi = (90 * pixelRatio + 0.5) | 0; + goog.object.set(params, 'FORMAT_OPTIONS', 'dpi:' + dpi); + break; + case ol.source.wms.ServerType.MAPSERVER: + goog.object.set(params, 'MAP_RESOLUTION', 90 * pixelRatio); + break; + case ol.source.wms.ServerType.QGIS: + goog.object.set(params, 'DPI', 90 * pixelRatio); + break; + default: + goog.asserts.fail(); + break; + } + } + + extent = extent.slice(); + var centerX = (extent[0] + extent[2]) / 2; + var centerY = (extent[1] + extent[3]) / 2; + if (this.ratio_ != 1) { + var halfWidth = this.ratio_ * (extent[2] - extent[0]) / 2; + var halfHeight = this.ratio_ * (extent[3] - extent[1]) / 2; + extent[0] = centerX - halfWidth; + extent[1] = centerY - halfHeight; + extent[2] = centerX + halfWidth; + extent[3] = centerY + halfHeight; + } + + var imageResolution = resolution / pixelRatio; + + // Compute an integer width and height. + var width = Math.ceil((extent[2] - extent[0]) / imageResolution); + goog.object.set(params, 'WIDTH', width); + var height = Math.ceil((extent[3] - extent[1]) / imageResolution); + goog.object.set(params, 'HEIGHT', height); + + // Modify the extent to match the integer width and height. + extent[0] = centerX - imageResolution * width / 2; + extent[2] = centerX + imageResolution * width / 2; + extent[1] = centerY - imageResolution * height / 2; + extent[3] = centerY + imageResolution * height / 2; + + var axisOrientation = projection.getAxisOrientation(); + var bbox; + if (v13 && axisOrientation.substr(0, 2) == 'ne') { + bbox = [extent[1], extent[0], extent[3], extent[2]]; + } else { + bbox = extent; + } + goog.object.set(params, 'BBOX', bbox.join(',')); + + var url = goog.uri.utils.appendParamsFromMap(this.url_, params); + + this.image_ = new ol.Image(extent, resolution, pixelRatio, url, + this.crossOrigin, this.getAttributions()); return this.image_; + }; From 1bf678bef2f279610b1f0edbcfc99dd7e539c64b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 21:22:18 +0100 Subject: [PATCH 803/919] Remove unused ol.source.wms.getDpiParam function --- src/ol/source/wmssource.js | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/src/ol/source/wmssource.js b/src/ol/source/wmssource.js index 6dde4c7663..8c13882557 100644 --- a/src/ol/source/wmssource.js +++ b/src/ol/source/wmssource.js @@ -51,23 +51,3 @@ ol.source.wms.getUrl = function(baseUrl, params, extent, size, projection) { return goog.uri.utils.appendParamsFromMap(baseUrl, baseParams); }; - - -/** - * @param {ol.source.wms.ServerType} serverType Server name. - * @param {number} pixelRatio Pixel ratio. - * @return {Object.} - */ -ol.source.wms.getDpiParam = function(serverType, pixelRatio) { - var param = {}; - if (serverType == ol.source.wms.ServerType.MAPSERVER) { - param['MAP_RESOLUTION'] = 90 * pixelRatio; - } else if (serverType == ol.source.wms.ServerType.GEOSERVER) { - param['FORMAT_OPTIONS'] = 'dpi:' + 90 * pixelRatio; - } else if (serverType == ol.source.wms.ServerType.QGIS) { - param['DPI'] = 90 * pixelRatio; - } else { - goog.asserts.fail(); - } - return param; -}; From 1d9d67f52485a4911cf2563646f22bb504b8fceb Mon Sep 17 00:00:00 2001 From: oterral Date: Thu, 9 Jan 2014 13:55:43 +0100 Subject: [PATCH 804/919] Add ol.color.asArray and ol.color.asString exports --- src/ol/color/color.exports | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/ol/color/color.exports diff --git a/src/ol/color/color.exports b/src/ol/color/color.exports new file mode 100644 index 0000000000..cc1d37a73a --- /dev/null +++ b/src/ol/color/color.exports @@ -0,0 +1,2 @@ +@exportSymbol ol.color.asArray +@exportSymbol ol.color.asString From bcf38b1b21fc388498680b296604a5a1128919e3 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 22:04:25 +0100 Subject: [PATCH 805/919] Add ol.source.ImageWMS#setUrl --- src/ol/source/imagewmssource.exports | 1 + src/ol/source/imagewmssource.js | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/ol/source/imagewmssource.exports b/src/ol/source/imagewmssource.exports index afd33970c9..acb2495587 100644 --- a/src/ol/source/imagewmssource.exports +++ b/src/ol/source/imagewmssource.exports @@ -1,3 +1,4 @@ @exportSymbol ol.source.ImageWMS @exportProperty ol.source.ImageWMS.prototype.getParams +@exportProperty ol.source.ImageWMS.prototype.setUrl @exportProperty ol.source.ImageWMS.prototype.updateParams diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 72b591e09a..6fd03abeb6 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -185,6 +185,18 @@ ol.source.ImageWMS.prototype.getImage = }; +/** + * @param {string|undefined} url URL. + */ +ol.source.ImageWMS.prototype.setUrl = function(url) { + if (url != this.url_) { + this.url_ = url; + this.image_ = null; + this.dispatchChangeEvent(); + } +}; + + /** * Update the user-provided params. * @param {Object} params Params. From 784f3500f29063aec02d755124e5f6012ae7b9c3 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 23:07:10 +0100 Subject: [PATCH 806/919] Make ol.extent.buffer return an extent instead of mutating --- src/ol/extent.js | 26 +++++++++++++++++++------- src/ol/tileurlfunction.js | 2 +- test/spec/ol/extent.test.js | 3 +-- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/ol/extent.js b/src/ol/extent.js index 762d26a3d0..58046e2930 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -51,15 +51,27 @@ ol.extent.boundingExtentXYs_ = function(xs, ys, opt_extent) { /** - * Increase an extent by the provided value. - * @param {ol.Extent} extent The extent to buffer. + * Return extent increased by the provided value. + * @param {ol.Extent} extent Extent. * @param {number} value The amount by wich the extent should be buffered. + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} Extent. */ -ol.extent.buffer = function(extent, value) { - extent[0] -= value; - extent[1] -= value; - extent[2] += value; - extent[3] += value; +ol.extent.buffer = function(extent, value, opt_extent) { + if (goog.isDef(opt_extent)) { + opt_extent[0] = extent[0] - value; + opt_extent[1] = extent[1] - value; + opt_extent[2] = extent[2] + value; + opt_extent[3] = extent[3] + value; + return opt_extent; + } else { + return [ + extent[0] - value, + extent[1] - value, + extent[2] + value, + extent[3] + value + ]; + } }; diff --git a/src/ol/tileurlfunction.js b/src/ol/tileurlfunction.js index d193383766..2e0c7a8d0b 100644 --- a/src/ol/tileurlfunction.js +++ b/src/ol/tileurlfunction.js @@ -114,7 +114,7 @@ ol.TileUrlFunction.createFromParamsFunction = tmpSize[0] = tileSize[0] + (2 * gutter); tmpSize[1] = tileSize[1] + (2 * gutter); var extent = tileGrid.getTileCoordExtent(tileCoord, tmpExtent); - ol.extent.buffer(extent, tileResolution * gutter); + ol.extent.buffer(extent, tileResolution * gutter, extent); return paramsFunction.call(this, baseUrl, params, extent, tmpSize, projection); } diff --git a/test/spec/ol/extent.test.js b/test/spec/ol/extent.test.js index 182491d9a6..7cfe5a541b 100644 --- a/test/spec/ol/extent.test.js +++ b/test/spec/ol/extent.test.js @@ -7,8 +7,7 @@ describe('ol.extent', function() { it('buffers an extent by some value', function() { var extent = [-10, -20, 10, 20]; - ol.extent.buffer(extent, 15); - expect(extent).to.eql([-25, -35, 25, 35]); + expect(ol.extent.buffer(extent, 15)).to.eql([-25, -35, 25, 35]); }); }); From 86f23aa615744f1adfd0cba3f948c9bae68a1e38 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 23:12:43 +0100 Subject: [PATCH 807/919] Add ol.source.wms.DEFAULT_VERSION --- src/ol/source/imagewmssource.js | 3 ++- src/ol/source/wmssource.js | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 6fd03abeb6..27883c4a8f 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -9,6 +9,7 @@ goog.require('goog.uri.utils'); goog.require('ol.Image'); goog.require('ol.extent'); goog.require('ol.source.Image'); +goog.require('ol.source.wms'); goog.require('ol.source.wms.ServerType'); @@ -107,7 +108,7 @@ ol.source.ImageWMS.prototype.getImage = var params = { 'SERVICE': 'WMS', - 'VERSION': '1.3.0', + 'VERSION': ol.source.wms.DEFAULT_VERSION, 'REQUEST': 'GetMap', 'FORMAT': 'image/png', 'TRANSPARENT': true diff --git a/src/ol/source/wmssource.js b/src/ol/source/wmssource.js index 8c13882557..52bc75600d 100644 --- a/src/ol/source/wmssource.js +++ b/src/ol/source/wmssource.js @@ -6,6 +6,12 @@ goog.require('goog.object'); goog.require('goog.uri.utils'); +/** + * @define {string} WMS default version. + */ +ol.source.wms.DEFAULT_VERSION = '1.3.0'; + + /** * @enum {string} */ @@ -27,7 +33,7 @@ ol.source.wms.ServerType = { ol.source.wms.getUrl = function(baseUrl, params, extent, size, projection) { var baseParams = { 'SERVICE': 'WMS', - 'VERSION': '1.3.0', + 'VERSION': ol.source.wms.DEFAULT_VERSION, 'REQUEST': 'GetMap', 'FORMAT': 'image/png', 'TRANSPARENT': true, From 46d8b816612fb1eef8be1ed0bd8780ee3cf07863 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 23:20:41 +0100 Subject: [PATCH 808/919] Factor out WMS version 1.3 check --- src/ol/source/imagewmssource.js | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 27883c4a8f..481ec4eb87 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -1,5 +1,3 @@ -// FIXME factor out v13 calculation - goog.provide('ol.source.ImageWMS'); goog.require('goog.asserts'); @@ -44,6 +42,13 @@ ol.source.ImageWMS = function(opt_options) { */ this.params_ = options.params; + /** + * @private + * @type {boolean} + */ + this.v13_ = true; + this.updateV13_(); + /** * @private * @type {ol.source.wms.ServerType|undefined} @@ -115,10 +120,7 @@ ol.source.ImageWMS.prototype.getImage = }; goog.object.extend(params, this.params_); - var v13 = goog.string.compareVersions( - goog.object.get(params, 'VERSION'), '1.3') >= 0; - - params[v13 ? 'CRS' : 'SRS'] = projection.getCode(); + params[this.v13_ ? 'CRS' : 'SRS'] = projection.getCode(); if (!('STYLES' in this.params_)) { goog.object.set(params, 'STYLES', new String('')); @@ -170,7 +172,7 @@ ol.source.ImageWMS.prototype.getImage = var axisOrientation = projection.getAxisOrientation(); var bbox; - if (v13 && axisOrientation.substr(0, 2) == 'ne') { + if (this.v13_ && axisOrientation.substr(0, 2) == 'ne') { bbox = [extent[1], extent[0], extent[3], extent[2]]; } else { bbox = extent; @@ -204,6 +206,17 @@ ol.source.ImageWMS.prototype.setUrl = function(url) { */ ol.source.ImageWMS.prototype.updateParams = function(params) { goog.object.extend(this.params_, params); + this.updateV13_(); this.image_ = null; this.dispatchChangeEvent(); }; + + +/** + * @private + */ +ol.source.ImageWMS.prototype.updateV13_ = function() { + var version = + goog.object.get(this.params_, 'VERSION', ol.source.wms.DEFAULT_VERSION); + this.v13_ = goog.string.compareVersions(version, '1.3') >= 0; +}; From c5a5acbf893b1f32dc8c64f0642ecc10aef4cbc0 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 23:28:06 +0100 Subject: [PATCH 809/919] Refactor ol.source.TileWMS URL logic --- src/ol/source/tilewmssource.js | 192 ++++++++++++++++++++++----------- 1 file changed, 129 insertions(+), 63 deletions(-) diff --git a/src/ol/source/tilewmssource.js b/src/ol/source/tilewmssource.js index 6eed73c25c..dfae79c94d 100644 --- a/src/ol/source/tilewmssource.js +++ b/src/ol/source/tilewmssource.js @@ -1,10 +1,13 @@ // FIXME add minZoom support +// FIXME add date line wrap (tile coord transform) goog.provide('ol.source.TileWMS'); goog.require('goog.array'); goog.require('goog.math'); goog.require('goog.object'); +goog.require('goog.string'); +goog.require('goog.uri.utils'); goog.require('ol.TileCoord'); goog.require('ol.TileUrlFunction'); goog.require('ol.extent'); @@ -16,22 +19,40 @@ goog.require('ol.source.wms'); /** * @constructor * @extends {ol.source.TileImage} - * @param {olx.source.TileWMSOptions} options Tile WMS options. + * @param {olx.source.TileWMSOptions=} opt_options Tile WMS options. * @todo stability experimental */ -ol.source.TileWMS = function(options) { +ol.source.TileWMS = function(opt_options) { - var tileGrid; - if (goog.isDef(options.tileGrid)) { - tileGrid = options.tileGrid; - } + var options = goog.isDef(opt_options) ? opt_options : {}; + + var params = goog.isDef(options.params) ? options.params : {}; + + var transparent = goog.object.get(params, 'TRANSPARENT', true); + + goog.base(this, { + attributions: options.attributions, + crossOrigin: options.crossOrigin, + extent: options.extent, + logo: options.logo, + opaque: !transparent, + projection: options.projection, + tileGrid: options.tileGrid, + tileLoadFunction: options.tileLoadFunction, + tileUrlFunction: goog.bind(this.tileUrlFunction_, this) + }); - var tileUrlFunction = ol.TileUrlFunction.nullTileUrlFunction; var urls = options.urls; if (!goog.isDef(urls) && goog.isDef(options.url)) { urls = ol.TileUrlFunction.expandUrl(options.url); } + /** + * @private + * @type {Array.|undefined} + */ + this.urls_ = urls; + /** * @private * @type {number} @@ -42,7 +63,13 @@ ol.source.TileWMS = function(options) { * @private * @type {Object} */ - this.params_ = options.params; + this.params_ = params; + + /** + * @private + * @type {boolean} + */ + this.v13_ = true; /** * @private @@ -51,62 +78,13 @@ ol.source.TileWMS = function(options) { this.coordKeyPrefix_ = ''; this.resetCoordKeyPrefix_(); - if (goog.isDef(urls)) { - var tileUrlFunctions = goog.array.map( - urls, function(url) { - return ol.TileUrlFunction.createFromParamsFunction( - url, this.params_, this.gutter_, ol.source.wms.getUrl); - }, this); - tileUrlFunction = ol.TileUrlFunction.createFromTileUrlFunctions( - tileUrlFunctions); - } + /** + * @private + * @type {ol.Extent} + */ + this.tmpExtent_ = ol.extent.createEmpty(); - var transparent = goog.isDef(options.params['TRANSPARENT']) ? - options.params['TRANSPARENT'] : true; - var extent = options.extent; - - var tileCoordTransform = function(tileCoord, projection) { - var tileGrid = this.getTileGrid(); - if (goog.isNull(tileGrid)) { - tileGrid = ol.tilegrid.getForProjection(projection); - } - if (tileGrid.getResolutions().length <= tileCoord.z) { - return null; - } - var x = tileCoord.x; - var tileExtent = tileGrid.getTileCoordExtent(tileCoord); - var projectionExtent = projection.getExtent(); - extent = goog.isDef(extent) ? extent : projectionExtent; - - if (!goog.isNull(extent) && projection.isGlobal() && - extent[0] === projectionExtent[0] && - extent[2] === projectionExtent[2]) { - var numCols = Math.ceil( - (extent[2] - extent[0]) / - (tileExtent[2] - tileExtent[0])); - x = goog.math.modulo(x, numCols); - tileExtent = tileGrid.getTileCoordExtent( - new ol.TileCoord(tileCoord.z, x, tileCoord.y)); - } - if (!goog.isNull(extent) && (!ol.extent.intersects(tileExtent, extent) || - ol.extent.touches(tileExtent, extent))) { - return null; - } - return new ol.TileCoord(tileCoord.z, x, tileCoord.y); - }; - - goog.base(this, { - attributions: options.attributions, - crossOrigin: options.crossOrigin, - extent: extent, - logo: options.logo, - tileGrid: options.tileGrid, - opaque: !transparent, - projection: options.projection, - tileLoadFunction: options.tileLoadFunction, - tileUrlFunction: ol.TileUrlFunction.withTileCoordTransform( - tileCoordTransform, tileUrlFunction) - }); + this.updateV13_(); }; goog.inherits(ol.source.TileWMS, ol.source.TileImage); @@ -152,6 +130,83 @@ ol.source.TileWMS.prototype.resetCoordKeyPrefix_ = function() { }; +/** + * @param {ol.TileCoord} tileCoord Tile coordinate. + * @param {ol.proj.Projection} projection Projection. + * @private + * @return {string|undefined} Tile URL. + */ +ol.source.TileWMS.prototype.tileUrlFunction_ = function(tileCoord, projection) { + + var urls = this.urls_; + if (!goog.isDef(urls) || goog.array.isEmpty(urls)) { + return undefined; + } + + var tileGrid = this.getTileGrid(); + if (goog.isNull(tileGrid)) { + tileGrid = ol.tilegrid.getForProjection(projection); + } + + if (tileGrid.getResolutions().length <= tileCoord.z) { + return undefined; + } + + var tileExtent = tileGrid.getTileCoordExtent(tileCoord); + + var params = { + 'SERVICE': 'WMS', + 'VERSION': ol.source.wms.DEFAULT_VERSION, + 'REQUEST': 'GetMap', + 'FORMAT': 'image/png', + 'TRANSPARENT': true + }; + goog.object.extend(params, this.params_); + + var tileResolution = tileGrid.getResolution(tileCoord.z); + var tileSize = tileGrid.getTileSize(tileCoord.z); + var gutter = this.gutter_; + if (gutter === 0) { + goog.object.set(params, 'WIDTH', tileSize[0]); + goog.object.set(params, 'HEIGHT', tileSize[1]); + } else { + goog.object.set(params, 'WIDTH', tileSize[0] + 2 * gutter); + goog.object.set(params, 'HEIGHT', tileSize[1] + 2 * gutter); + tileExtent = + ol.extent.buffer(tileExtent, tileResolution * gutter, this.tmpExtent_); + } + + params[this.v13_ ? 'CRS' : 'SRS'] = projection.getCode(); + + if (!('STYLES' in this.params_)) { + goog.object.set(params, 'STYLES', new String('')); + } + + var axisOrientation = projection.getAxisOrientation(); + var bbox; + if (this.v13_ && axisOrientation.substr(0, 2) == 'ne') { + bbox = this.tmpExtent_; + bbox[0] = tileExtent[1]; + bbox[1] = tileExtent[0]; + bbox[2] = tileExtent[3]; + bbox[3] = tileExtent[2]; + } else { + bbox = tileExtent; + } + goog.object.set(params, 'BBOX', bbox.join(',')); + + var url; + if (urls.length == 1) { + url = urls[0]; + } else { + var index = goog.math.modulo(tileCoord.hash(), this.urls_.length); + url = urls[index]; + } + return goog.uri.utils.appendParamsFromMap(url, params); + +}; + + /** * Update the user-provided params. * @param {Object} params Params. @@ -160,5 +215,16 @@ ol.source.TileWMS.prototype.resetCoordKeyPrefix_ = function() { ol.source.TileWMS.prototype.updateParams = function(params) { goog.object.extend(this.params_, params); this.resetCoordKeyPrefix_(); + this.updateV13_(); this.dispatchChangeEvent(); }; + + +/** + * @private + */ +ol.source.TileWMS.prototype.updateV13_ = function() { + var version = + goog.object.get(this.params_, 'VERSION', ol.source.wms.DEFAULT_VERSION); + this.v13_ = goog.string.compareVersions(version, '1.3') >= 0; +}; From cee014ec9e21cb0e38e2f1ba3cd16c24b4712166 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 23:28:36 +0100 Subject: [PATCH 810/919] Remove unused ol.source.wms.getUrl function --- src/ol/source/wmssource.js | 41 --------------------------- test/spec/ol/source/wmssource.test.js | 33 --------------------- 2 files changed, 74 deletions(-) delete mode 100644 test/spec/ol/source/wmssource.test.js diff --git a/src/ol/source/wmssource.js b/src/ol/source/wmssource.js index 52bc75600d..591cd2d951 100644 --- a/src/ol/source/wmssource.js +++ b/src/ol/source/wmssource.js @@ -1,10 +1,6 @@ goog.provide('ol.source.wms'); goog.provide('ol.source.wms.ServerType'); -goog.require('goog.asserts'); -goog.require('goog.object'); -goog.require('goog.uri.utils'); - /** * @define {string} WMS default version. @@ -20,40 +16,3 @@ ol.source.wms.ServerType = { MAPSERVER: 'mapserver', QGIS: 'qgis' }; - - -/** - * @param {string} baseUrl WMS base URL. - * @param {Object.} params Request parameters. - * @param {ol.Extent} extent Extent. - * @param {ol.Size} size Size. - * @param {ol.proj.Projection} projection Projection. - * @return {string} WMS GetMap request URL. - */ -ol.source.wms.getUrl = function(baseUrl, params, extent, size, projection) { - var baseParams = { - 'SERVICE': 'WMS', - 'VERSION': ol.source.wms.DEFAULT_VERSION, - 'REQUEST': 'GetMap', - 'FORMAT': 'image/png', - 'TRANSPARENT': true, - 'WIDTH': Math.round(size[0]), - 'HEIGHT': Math.round(size[1]) - }; - goog.object.extend(baseParams, params); - - //TODO: Provide our own appendParams function to avoid this empty string hack - var stylesParam = 'STYLES'; - baseParams[stylesParam] = params[stylesParam] || new String(''); - - var wms13 = baseParams['VERSION'] > '1.3'; - baseParams[wms13 ? 'CRS' : 'SRS'] = projection.getCode(); - - var axisOrientation = projection.getAxisOrientation(); - var bboxValues = (wms13 && axisOrientation.substr(0, 2) == 'ne') ? - [extent[1], extent[0], extent[3], extent[2]] : - [extent[0], extent[1], extent[2], extent[3]]; - baseParams['BBOX'] = bboxValues.join(','); - - return goog.uri.utils.appendParamsFromMap(baseUrl, baseParams); -}; diff --git a/test/spec/ol/source/wmssource.test.js b/test/spec/ol/source/wmssource.test.js deleted file mode 100644 index 665c4baf2f..0000000000 --- a/test/spec/ol/source/wmssource.test.js +++ /dev/null @@ -1,33 +0,0 @@ -goog.provide('ol.test.source.wms'); - -describe('ol.source.wms', function() { - - describe('ol.source.wms.getUrl', function() { - it('creates expected URL', function() { - var epsg3857 = ol.proj.get('EPSG:3857'); - var extent = [-20037508.342789244, -20037508.342789244, 0, 0]; - var expected = 'http://wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=' + - 'GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&' + - 'foo=bar&STYLES=&CRS=EPSG%3A3857&BBOX=' + - '-20037508.342789244%2C-20037508.342789244%2C0%2C0'; - var url = ol.source.wms.getUrl('http://wms', {'foo': 'bar'}, - extent, [256, 256], epsg3857); - expect(url).to.eql(expected); - }); - it('creates expected URL respecting axis orientation', function() { - var epsg4326 = ol.proj.get('EPSG:4326'); - var extent = [-180, -90, 0, 90]; - var expected = 'http://wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=' + - 'GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&' + - 'foo=bar&STYLES=&CRS=EPSG%3A4326&BBOX=-90%2C-180%2C90%2C0'; - var url = ol.source.wms.getUrl('http://wms', {'foo': 'bar'}, - extent, [256, 256], epsg4326); - expect(url).to.eql(expected); - }); - }); - -}); - - -goog.require('ol.proj'); -goog.require('ol.source.wms'); From 807bf757afb1bd0c0682c6196f6bd17f2eb78fd1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 23:37:32 +0100 Subject: [PATCH 811/919] Remove unused ol.TileUrlFunction.createFromParamsFunction --- src/ol/tileurlfunction.js | 41 ---------------------------- test/spec/ol/tileurlfunction.test.js | 19 ------------- 2 files changed, 60 deletions(-) diff --git a/src/ol/tileurlfunction.js b/src/ol/tileurlfunction.js index 2e0c7a8d0b..8b8e17620b 100644 --- a/src/ol/tileurlfunction.js +++ b/src/ol/tileurlfunction.js @@ -4,7 +4,6 @@ goog.provide('ol.TileUrlFunctionType'); goog.require('goog.array'); goog.require('goog.math'); goog.require('ol.TileCoord'); -goog.require('ol.extent'); /** @@ -82,46 +81,6 @@ ol.TileUrlFunction.createFromTileUrlFunctions = function(tileUrlFunctions) { }; -/** - * @param {string} baseUrl Base URL (may have query data). - * @param {Object.} params Params to encode in the URL. - * @param {number} gutter Gutter value. - * @param {function(this: ol.source.TileImage, string, Object., - * ol.Extent, ol.Size, ol.proj.Projection)} paramsFunction params function. - * @return {ol.TileUrlFunctionType} Tile URL function. - */ -ol.TileUrlFunction.createFromParamsFunction = - function(baseUrl, params, gutter, paramsFunction) { - var tmpExtent = ol.extent.createEmpty(); - var tmpSize = [0, 0]; - return ( - /** - * @this {ol.source.TileImage} - * @param {ol.TileCoord} tileCoord Tile Coordinate. - * @param {ol.proj.Projection} projection Projection. - * @return {string|undefined} Tile URL. - */ - function(tileCoord, projection) { - if (goog.isNull(tileCoord)) { - return undefined; - } else { - var tileGrid = this.getTileGrid(); - if (goog.isNull(tileGrid)) { - tileGrid = ol.tilegrid.getForProjection(projection); - } - var tileResolution = tileGrid.getResolution(tileCoord.z); - var tileSize = tileGrid.getTileSize(tileCoord.z); - tmpSize[0] = tileSize[0] + (2 * gutter); - tmpSize[1] = tileSize[1] + (2 * gutter); - var extent = tileGrid.getTileCoordExtent(tileCoord, tmpExtent); - ol.extent.buffer(extent, tileResolution * gutter, extent); - return paramsFunction.call(this, baseUrl, params, - extent, tmpSize, projection); - } - }); -}; - - /** * @this {ol.source.TileImage} * @param {ol.TileCoord} tileCoord Tile coordinate. diff --git a/test/spec/ol/tileurlfunction.test.js b/test/spec/ol/tileurlfunction.test.js index 6c0e5bcbdd..23b32e9628 100644 --- a/test/spec/ol/tileurlfunction.test.js +++ b/test/spec/ol/tileurlfunction.test.js @@ -78,26 +78,7 @@ describe('ol.TileUrlFunction', function() { }); }); - describe('createFromParamsFunction', function() { - var paramsFunction = function(url, params) { return arguments; }; - var projection = ol.proj.get('EPSG:3857'); - var fakeTileSource = {getTileGrid: function() {return null;}}; - var params = {foo: 'bar'}; - var tileUrlFunction = ol.TileUrlFunction.createFromParamsFunction( - 'url', params, 0, paramsFunction); - it('calls the passed function with the correct arguments', function() { - var args = tileUrlFunction.call(fakeTileSource, - new ol.TileCoord(0, 0, 0), projection); - expect(args[0]).to.eql('url'); - expect(args[1]).to.be(params); - expect(args[2]).to.eql(projection.getExtent()); - expect(args[3]).to.eql([256, 256]); - expect(args[4]).to.eql(projection); - }); - }); - }); goog.require('ol.TileCoord'); goog.require('ol.TileUrlFunction'); -goog.require('ol.proj'); From 04a0369d6872715c3a69c6d0462caef53287f800 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 8 Jan 2014 23:30:14 +0100 Subject: [PATCH 812/919] Correct ol.renderer.canvas.ImageLayer transform for HiDPI devices --- .../renderer/canvas/canvasimagelayerrenderer.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index 69a41c6eb5..3c653df019 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -64,6 +64,7 @@ ol.renderer.canvas.ImageLayer.prototype.getImageTransform = function() { ol.renderer.canvas.ImageLayer.prototype.prepareFrame = function(frameState, layerState) { + var devicePixelRatio = frameState.devicePixelRatio; var view2DState = frameState.view2DState; var viewCenter = view2DState.center; var viewResolution = view2DState.resolution; @@ -79,7 +80,7 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame = if (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.INTERACTING]) { image = imageSource.getImage(frameState.extent, viewResolution, - frameState.devicePixelRatio, view2DState.projection); + devicePixelRatio, view2DState.projection); if (!goog.isNull(image)) { var imageState = image.getState(); if (imageState == ol.ImageState.IDLE) { @@ -95,16 +96,17 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame = if (!goog.isNull(this.image_)) { image = this.image_; var imageExtent = image.getExtent(); - var imageResolution = image.getResolution() / image.getPixelRatio(); - var devicePixelRatio = frameState.devicePixelRatio; + var imageResolution = image.getResolution(); + var imagePixelRatio = image.getPixelRatio(); + var scale = devicePixelRatio * imageResolution / + (viewResolution * imagePixelRatio); ol.vec.Mat4.makeTransform2D(this.imageTransform_, devicePixelRatio * frameState.size[0] / 2, devicePixelRatio * frameState.size[1] / 2, - devicePixelRatio * imageResolution / viewResolution, - devicePixelRatio * imageResolution / viewResolution, + scale, scale, viewRotation, - (imageExtent[0] - viewCenter[0]) / imageResolution, - (viewCenter[1] - imageExtent[3]) / imageResolution); + imagePixelRatio * (imageExtent[0] - viewCenter[0]) / imageResolution, + imagePixelRatio * (viewCenter[1] - imageExtent[3]) / imageResolution); this.updateAttributions(frameState.attributions, image.getAttributions()); this.updateLogos(frameState, imageSource); } From 5af738593e0ffb6b0e0537b8f847706dee827cdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Sun, 22 Sep 2013 09:58:05 +0100 Subject: [PATCH 813/919] Image source refactoring --- src/objectliterals.jsdoc | 19 ++- src/ol/canvasfunction.js | 8 ++ src/ol/image.js | 100 ++------------ src/ol/imagebase.js | 127 ++++++++++++++++++ src/ol/imagecanvas.js | 38 ++++++ .../canvas/canvasimagelayerrenderer.js | 4 +- src/ol/renderer/dom/domimagelayerrenderer.js | 4 +- .../renderer/webgl/webglimagelayerrenderer.js | 6 +- src/ol/source/imagecanvassource.exports | 1 + src/ol/source/imagecanvassource.js | 76 +++++++++++ src/ol/source/imagesource.js | 47 +------ src/ol/source/imagestaticsource.js | 38 ++---- src/ol/source/imagewmssource.js | 13 +- src/ol/source/mapguidesource.js | 52 ++++--- 14 files changed, 343 insertions(+), 190 deletions(-) create mode 100644 src/ol/canvasfunction.js create mode 100644 src/ol/imagebase.js create mode 100644 src/ol/imagecanvas.js create mode 100644 src/ol/source/imagecanvassource.exports create mode 100644 src/ol/source/imagecanvassource.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index fb1be4393a..1932785769 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -623,6 +623,20 @@ * @todo stability experimental */ +/** + * @typedef {Object} olx.source.ImageCanvasOptions + * @property {Array.|undefined} attributions Attributions. + * @property {ol.CanvasFunctionType} canvasFunction Canvas function. + * @property {ol.Extent|undefined} extent Extent. + * @property {string|undefined} logo Logo. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {number|undefined} ratio Ratio. 1 means canvases are the size + * of the map viewport, 2 means twice the size of the map viewport, and so + * on. + * @property {Array.|undefined} resolutions Resolutions. If specified, + * new canvases will be created for these resolutions only. + */ + /** * @typedef {Object} olx.source.ImageWMSOptions * @property {Array.|undefined} attributions Attributions. @@ -634,6 +648,7 @@ * @property {ol.source.wms.ServerType|undefined} serverType The type of the remote WMS * server: `mapserver`, `geoserver` or `qgis`. Only needed if `hidpi` is `true`. * Default is `undefined`. + * @property {string|undefined} logo Logo. * @property {Object.} params WMS request parameters. At least a * `LAYERS` param is required. `STYLES` is `` by default. `VERSION` is * `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX` and `CRS` (`SRS` for WMS @@ -669,9 +684,9 @@ * @property {ol.Extent|undefined} extent Extent. * @property {ol.Extent|undefined} imageExtent Extent of the image. * @property {ol.Size|undefined} imageSize Size of the image. + * @property {string|undefined} logo Logo. * @property {ol.proj.ProjectionLike} projection Projection. - * @property {string|undefined} url URL. - * @todo stability experimental + * @property {string} url Url. */ /** diff --git a/src/ol/canvasfunction.js b/src/ol/canvasfunction.js new file mode 100644 index 0000000000..878d79645c --- /dev/null +++ b/src/ol/canvasfunction.js @@ -0,0 +1,8 @@ +goog.provide('ol.CanvasFunctionType'); + + +/** + * @typedef {function(this:ol.source.ImageCanvas, ol.Extent, number, ol.Size, + * ol.proj.Projection): HTMLCanvasElement} + */ +ol.CanvasFunctionType; diff --git a/src/ol/image.js b/src/ol/image.js index ba5d6dcc52..963e4bdff8 100644 --- a/src/ol/image.js +++ b/src/ol/image.js @@ -1,54 +1,30 @@ goog.provide('ol.Image'); -goog.provide('ol.ImageState'); goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.events'); -goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.object'); -goog.require('ol.Attribution'); -goog.require('ol.Extent'); - - -/** - * @enum {number} - */ -ol.ImageState = { - IDLE: 0, - LOADING: 1, - LOADED: 2, - ERROR: 3 -}; +goog.require('ol.ImageBase'); +goog.require('ol.ImageState'); /** * @constructor - * @extends {goog.events.EventTarget} + * @extends {ol.ImageBase} * @param {ol.Extent} extent Extent. * @param {number} resolution Resolution. * @param {number} pixelRatio Pixel ratio. + * @param {Array.} attributions Attributions. * @param {string} src Image source URI. * @param {?string} crossOrigin Cross origin. - * @param {Array.} attributions Attributions. */ ol.Image = - function(extent, resolution, pixelRatio, src, crossOrigin, attributions) { + function(extent, resolution, pixelRatio, attributions, src, crossOrigin) { - goog.base(this); - - /** - * @private - * @type {Array.} - */ - this.attributions_ = attributions; - - /** - * @private - * @type {ol.Extent} - */ - this.extent_ = extent; + goog.base(this, extent, resolution, pixelRatio, ol.ImageState.IDLE, + attributions); /** * @private @@ -56,18 +32,6 @@ ol.Image = */ this.src_ = src; - /** - * @private - * @type {number} - */ - this.pixelRatio_ = pixelRatio; - - /** - * @private - * @type {number} - */ - this.resolution_ = resolution; - /** * @private * @type {Image} @@ -95,31 +59,7 @@ ol.Image = */ this.state = ol.ImageState.IDLE; }; -goog.inherits(ol.Image, goog.events.EventTarget); - - -/** - * @protected - */ -ol.Image.prototype.dispatchChangeEvent = function() { - this.dispatchEvent(goog.events.EventType.CHANGE); -}; - - -/** - * @return {Array.} Attributions. - */ -ol.Image.prototype.getAttributions = function() { - return this.attributions_; -}; - - -/** - * @return {ol.Extent} Extent. - */ -ol.Image.prototype.getExtent = function() { - return this.extent_; -}; +goog.inherits(ol.Image, ol.ImageBase); /** @@ -145,30 +85,6 @@ ol.Image.prototype.getImageElement = function(opt_context) { }; -/** - * @return {number} PixelRatio. - */ -ol.Image.prototype.getPixelRatio = function() { - return this.pixelRatio_; -}; - - -/** - * @return {number} Resolution. - */ -ol.Image.prototype.getResolution = function() { - return this.resolution_; -}; - - -/** - * @return {ol.ImageState} State. - */ -ol.Image.prototype.getState = function() { - return this.state; -}; - - /** * Tracks loading or read errors. * diff --git a/src/ol/imagebase.js b/src/ol/imagebase.js new file mode 100644 index 0000000000..8924be9a5f --- /dev/null +++ b/src/ol/imagebase.js @@ -0,0 +1,127 @@ +goog.provide('ol.ImageBase'); +goog.provide('ol.ImageState'); + +goog.require('goog.events.EventTarget'); +goog.require('goog.events.EventType'); +goog.require('ol.Attribution'); +goog.require('ol.Extent'); + + +/** + * @enum {number} + */ +ol.ImageState = { + IDLE: 0, + LOADING: 1, + LOADED: 2, + ERROR: 3 +}; + + + +/** + * @constructor + * @extends {goog.events.EventTarget} + * @param {ol.Extent} extent Extent. + * @param {number} resolution Resolution. + * @param {number} pixelRatio Pixel ratio. + * @param {ol.ImageState} state State. + * @param {Array.} attributions Attributions. + */ +ol.ImageBase = function(extent, resolution, pixelRatio, state, attributions) { + + goog.base(this); + + /** + * @private + * @type {Array.} + */ + this.attributions_ = attributions; + + /** + * @private + * @type {ol.Extent} + */ + this.extent_ = extent; + + /** + * @private + * @type {number} + */ + this.pixelRatio_ = pixelRatio; + + /** + * @private + * @type {number} + */ + this.resolution_ = resolution; + + /** + * @protected + * @type {ol.ImageState} + */ + this.state = state; + +}; +goog.inherits(ol.ImageBase, goog.events.EventTarget); + + +/** + * @protected + */ +ol.ImageBase.prototype.dispatchChangeEvent = function() { + this.dispatchEvent(goog.events.EventType.CHANGE); +}; + + +/** + * @return {Array.} Attributions. + */ +ol.ImageBase.prototype.getAttributions = function() { + return this.attributions_; +}; + + +/** + * @return {ol.Extent} Extent. + */ +ol.ImageBase.prototype.getExtent = function() { + return this.extent_; +}; + + +/** + * @param {Object=} opt_context Object. + * @return {HTMLCanvasElement|Image|HTMLVideoElement} Image. + */ +ol.ImageBase.prototype.getImageElement = goog.abstractMethod; + + +/** + * @return {number} PixelRatio. + */ +ol.ImageBase.prototype.getPixelRatio = function() { + return this.pixelRatio_; +}; + + +/** + * @return {number} Resolution. + */ +ol.ImageBase.prototype.getResolution = function() { + return this.resolution_; +}; + + +/** + * @return {ol.ImageState} State. + */ +ol.ImageBase.prototype.getState = function() { + return this.state; +}; + + +/** + * Load not yet loaded URI. + */ +ol.ImageBase.prototype.load = goog.abstractMethod; diff --git a/src/ol/imagecanvas.js b/src/ol/imagecanvas.js new file mode 100644 index 0000000000..3cd7ac9f2b --- /dev/null +++ b/src/ol/imagecanvas.js @@ -0,0 +1,38 @@ +goog.provide('ol.ImageCanvas'); + +goog.require('ol.ImageBase'); +goog.require('ol.ImageState'); + + + +/** + * @constructor + * @extends {ol.ImageBase} + * @param {ol.Extent} extent Extent. + * @param {number} resolution Resolution. + * @param {number} pixelRatio Pixel ratio. + * @param {Array.} attributions Attributions. + * @param {HTMLCanvasElement} canvas Canvas. + */ +ol.ImageCanvas = function(extent, resolution, pixelRatio, attributions, + canvas) { + + goog.base(this, extent, resolution, pixelRatio, ol.ImageState.LOADED, + attributions); + + /** + * @private + * @type {HTMLCanvasElement} + */ + this.canvas_ = canvas; + +}; +goog.inherits(ol.ImageCanvas, ol.ImageBase); + + +/** + * @inheritDoc + */ +ol.ImageCanvas.prototype.getImageElement = function(opt_context) { + return this.canvas_; +}; diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index 3c653df019..5e004f6b96 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -4,7 +4,7 @@ goog.require('goog.asserts'); goog.require('goog.events'); goog.require('goog.events.EventType'); goog.require('goog.vec.Mat4'); -goog.require('ol.Image'); +goog.require('ol.ImageBase'); goog.require('ol.ImageState'); goog.require('ol.ViewHint'); goog.require('ol.layer.Image'); @@ -27,7 +27,7 @@ ol.renderer.canvas.ImageLayer = function(mapRenderer, imageLayer) { /** * @private - * @type {?ol.Image} + * @type {?ol.ImageBase} */ this.image_ = null; diff --git a/src/ol/renderer/dom/domimagelayerrenderer.js b/src/ol/renderer/dom/domimagelayerrenderer.js index 3e82b6bac3..05e7a0d792 100644 --- a/src/ol/renderer/dom/domimagelayerrenderer.js +++ b/src/ol/renderer/dom/domimagelayerrenderer.js @@ -6,7 +6,7 @@ goog.require('goog.dom.TagName'); goog.require('goog.events'); goog.require('goog.events.EventType'); goog.require('goog.vec.Mat4'); -goog.require('ol.Image'); +goog.require('ol.ImageBase'); goog.require('ol.ImageState'); goog.require('ol.ViewHint'); goog.require('ol.dom'); @@ -32,7 +32,7 @@ ol.renderer.dom.ImageLayer = function(mapRenderer, imageLayer) { /** * The last rendered image. * @private - * @type {?ol.Image} + * @type {?ol.ImageBase} */ this.image_ = null; diff --git a/src/ol/renderer/webgl/webglimagelayerrenderer.js b/src/ol/renderer/webgl/webglimagelayerrenderer.js index 7a3485febc..4336ea8e37 100644 --- a/src/ol/renderer/webgl/webglimagelayerrenderer.js +++ b/src/ol/renderer/webgl/webglimagelayerrenderer.js @@ -7,7 +7,7 @@ goog.require('goog.vec.Mat4'); goog.require('goog.webgl'); goog.require('ol.Coordinate'); goog.require('ol.Extent'); -goog.require('ol.Image'); +goog.require('ol.ImageBase'); goog.require('ol.ImageState'); goog.require('ol.ViewHint'); goog.require('ol.layer.Image'); @@ -29,7 +29,7 @@ ol.renderer.webgl.ImageLayer = function(mapRenderer, imageLayer) { /** * The last rendered image. * @private - * @type {?ol.Image} + * @type {?ol.ImageBase} */ this.image_ = null; @@ -38,7 +38,7 @@ goog.inherits(ol.renderer.webgl.ImageLayer, ol.renderer.webgl.Layer); /** - * @param {ol.Image} image Image. + * @param {ol.ImageBase} image Image. * @private * @return {WebGLTexture} Texture. */ diff --git a/src/ol/source/imagecanvassource.exports b/src/ol/source/imagecanvassource.exports new file mode 100644 index 0000000000..280f37c7f2 --- /dev/null +++ b/src/ol/source/imagecanvassource.exports @@ -0,0 +1 @@ +@exportSymbol ol.source.ImageCanvas diff --git a/src/ol/source/imagecanvassource.js b/src/ol/source/imagecanvassource.js new file mode 100644 index 0000000000..478a4c00d6 --- /dev/null +++ b/src/ol/source/imagecanvassource.js @@ -0,0 +1,76 @@ +goog.provide('ol.source.ImageCanvas'); + +goog.require('ol.CanvasFunctionType'); +goog.require('ol.ImageCanvas'); +goog.require('ol.extent'); +goog.require('ol.source.Image'); + + + +/** + * @constructor + * @extends {ol.source.Image} + * @param {olx.source.ImageCanvasOptions} options + */ +ol.source.ImageCanvas = function(options) { + goog.base(this, { + attributions: options.attributions, + extent: options.extent, + logo: options.logo, + projection: options.projection, + resolutions: options.resolutions + }); + + /** + * @private + * @type {ol.CanvasFunctionType} + */ + this.canvasFunction_ = options.canvasFunction; + + /** + * @private + * @type {ol.ImageCanvas} + */ + this.canvas_ = null; + + /** + * @private + * @type {number} + */ + this.ratio_ = goog.isDef(options.ratio) ? + options.ratio : 1.5; + +}; +goog.inherits(ol.source.ImageCanvas, ol.source.Image); + + +/** + * @inheritDoc + */ +ol.source.ImageCanvas.prototype.getImage = + function(extent, resolution, pixelRatio, projection) { + resolution = this.findNearestResolution(resolution); + + var canvas = this.canvas_; + if (!goog.isNull(canvas) && + canvas.getResolution() == resolution && + canvas.getPixelRatio() == pixelRatio && + ol.extent.containsExtent(canvas.getExtent(), extent)) { + return canvas; + } + + extent = extent.slice(); + ol.extent.scaleFromCenter(extent, this.ratio_); + var width = (extent[2] - extent[0]) / resolution; + var height = (extent[3] - extent[1]) / resolution; + var size = [width * pixelRatio, height * pixelRatio]; + + var canvasElement = this.canvasFunction_(extent, resolution, size, + projection); + canvas = new ol.ImageCanvas(extent, resolution, pixelRatio, + this.getAttributions(), canvasElement); + this.canvas_ = canvas; + + return canvas; + +}; diff --git a/src/ol/source/imagesource.js b/src/ol/source/imagesource.js index 3bcf40e698..4374261597 100644 --- a/src/ol/source/imagesource.js +++ b/src/ol/source/imagesource.js @@ -5,23 +5,16 @@ goog.require('goog.asserts'); goog.require('ol.Attribution'); goog.require('ol.Extent'); goog.require('ol.Image'); -goog.require('ol.ImageUrlFunction'); -goog.require('ol.ImageUrlFunctionType'); -goog.require('ol.Size'); goog.require('ol.array'); goog.require('ol.source.Source'); /** * @typedef {{attributions: (Array.|undefined), - * crossOrigin: (null|string|undefined), * extent: (null|ol.Extent|undefined), * logo: (string|undefined), * projection: ol.proj.ProjectionLike, - * resolutions: (Array.|undefined), - * imageUrlFunction: (ol.ImageUrlFunctionType| - * undefined)}} - * @todo stability experimental + * resolutions: (Array.|undefined)}} */ ol.source.ImageOptions; @@ -42,22 +35,6 @@ ol.source.Image = function(options) { projection: options.projection }); - /** - * @protected - * @type {ol.ImageUrlFunctionType} - */ - this.imageUrlFunction = - goog.isDef(options.imageUrlFunction) ? - options.imageUrlFunction : - ol.ImageUrlFunction.nullImageUrlFunction; - - /** - * @protected - * @type {?string} - */ - this.crossOrigin = - goog.isDef(options.crossOrigin) ? options.crossOrigin : null; - /** * @private * @type {Array.} @@ -75,24 +52,10 @@ goog.inherits(ol.source.Image, ol.source.Source); /** - * @protected - * @param {ol.Extent} extent Extent. - * @param {number} resolution Resolution. - * @param {number} pixelRatio Pixel ratio. - * @param {ol.Size} size Size. - * @param {ol.proj.Projection} projection Projection. - * @return {ol.Image} Single image. + * @return {Array.} Resolutions. */ -ol.source.Image.prototype.createImage = - function(extent, resolution, pixelRatio, size, projection) { - var image = null; - var imageUrl = this.imageUrlFunction(extent, size, projection); - if (goog.isDef(imageUrl)) { - image = new ol.Image( - extent, resolution, pixelRatio, imageUrl, this.crossOrigin, - this.getAttributions()); - } - return image; +ol.source.Image.prototype.getResolutions = function() { + return this.resolutions_; }; @@ -116,6 +79,6 @@ ol.source.Image.prototype.findNearestResolution = * @param {number} resolution Resolution. * @param {number} pixelRatio Pixel ratio. * @param {ol.proj.Projection} projection Projection. - * @return {ol.Image} Single image. + * @return {ol.ImageBase} Single image. */ ol.source.Image.prototype.getImage = goog.abstractMethod; diff --git a/src/ol/source/imagestaticsource.js b/src/ol/source/imagestaticsource.js index 38e534035c..52d9052570 100644 --- a/src/ol/source/imagestaticsource.js +++ b/src/ol/source/imagestaticsource.js @@ -1,7 +1,6 @@ goog.provide('ol.source.ImageStatic'); goog.require('ol.Image'); -goog.require('ol.ImageUrlFunctionType'); goog.require('ol.extent'); goog.require('ol.proj'); goog.require('ol.source.Image'); @@ -16,20 +15,21 @@ goog.require('ol.source.Image'); */ ol.source.ImageStatic = function(options) { - var imageFunction = ol.source.ImageStatic.createImageFunction( - options.url); - + var attributions = goog.isDef(options.attributions) ? + options.attributions : null; + var crossOrigin = goog.isDef(options.crossOrigin) ? + options.crossOrigin : null; var imageExtent = options.imageExtent; var imageSize = options.imageSize; var imageResolution = (imageExtent[3] - imageExtent[1]) / imageSize[1]; + var imageUrl = options.url; var projection = ol.proj.get(options.projection); goog.base(this, { - attributions: options.attributions, - crossOrigin: options.crossOrigin, + attributions: attributions, extent: options.extent, - projection: options.projection, - imageUrlFunction: imageFunction, + logo: options.logo, + projection: projection, resolutions: [imageResolution] }); @@ -37,8 +37,8 @@ ol.source.ImageStatic = function(options) { * @private * @type {ol.Image} */ - this.image_ = this.createImage( - imageExtent, imageResolution, 1, imageSize, projection); + this.image_ = new ol.Image(imageExtent, imageResolution, 1, attributions, + imageUrl, crossOrigin); }; goog.inherits(ol.source.ImageStatic, ol.source.Image); @@ -54,21 +54,3 @@ ol.source.ImageStatic.prototype.getImage = } return null; }; - - -/** - * @param {string|undefined} url URL. - * @return {ol.ImageUrlFunctionType} Function. - */ -ol.source.ImageStatic.createImageFunction = function(url) { - return ( - /** - * @param {ol.Extent} extent Extent. - * @param {ol.Size} size Size. - * @param {ol.proj.Projection} projection Projection. - * @return {string|undefined} URL. - */ - function(extent, size, projection) { - return url; - }); -}; diff --git a/src/ol/source/imagewmssource.js b/src/ol/source/imagewmssource.js index 481ec4eb87..8866368d48 100644 --- a/src/ol/source/imagewmssource.js +++ b/src/ol/source/imagewmssource.js @@ -24,12 +24,19 @@ ol.source.ImageWMS = function(opt_options) { goog.base(this, { attributions: options.attributions, - crossOrigin: options.crossOrigin, extent: options.extent, + logo: options.logo, projection: options.projection, resolutions: options.resolutions }); + /** + * @private + * @type {?string} + */ + this.crossOrigin_ = + goog.isDef(options.crossOrigin) ? options.crossOrigin : null; + /** * @private * @type {string|undefined} @@ -181,8 +188,8 @@ ol.source.ImageWMS.prototype.getImage = var url = goog.uri.utils.appendParamsFromMap(this.url_, params); - this.image_ = new ol.Image(extent, resolution, pixelRatio, url, - this.crossOrigin, this.getAttributions()); + this.image_ = new ol.Image(extent, resolution, pixelRatio, + this.getAttributions(), url, this.crossOrigin_); return this.image_; }; diff --git a/src/ol/source/mapguidesource.js b/src/ol/source/mapguidesource.js index cd831e629d..449e0adaa0 100644 --- a/src/ol/source/mapguidesource.js +++ b/src/ol/source/mapguidesource.js @@ -2,6 +2,7 @@ goog.provide('ol.source.MapGuide'); goog.require('goog.object'); goog.require('goog.uri.utils'); +goog.require('ol.Image'); goog.require('ol.ImageUrlFunction'); goog.require('ol.extent'); goog.require('ol.source.Image'); @@ -15,6 +16,26 @@ goog.require('ol.source.Image'); */ ol.source.MapGuide = function(options) { + goog.base(this, { + extent: options.extent, + projection: options.projection, + resolutions: options.resolutions + }); + + /** + * @private + * @type {?string} + */ + this.crossOrigin_ = + goog.isDef(options.crossOrigin) ? options.crossOrigin : null; + + /** + * @private + * @type {number} + */ + this.displayDpi_ = goog.isDef(options.displayDpi) ? + options.displayDpi : 96; + var imageUrlFunction; if (goog.isDef(options.url)) { var params = goog.isDef(options.params) ? options.params : {}; @@ -24,12 +45,11 @@ ol.source.MapGuide = function(options) { imageUrlFunction = ol.ImageUrlFunction.nullImageUrlFunction; } - goog.base(this, { - extent: options.extent, - projection: options.projection, - resolutions: options.resolutions, - imageUrlFunction: imageUrlFunction - }); + /** + * @private + * @type {ol.ImageUrlFunctionType} + */ + this.imageUrlFunction_ = imageUrlFunction; /** * @private @@ -37,13 +57,6 @@ ol.source.MapGuide = function(options) { */ this.hidpi_ = goog.isDef(options.hidpi) ? options.hidpi : true; - /** - * @private - * @type {number} - */ - this.displayDpi_ = goog.isDef(options.displayDpi) ? - options.displayDpi : 96; - /** * @private * @type {number} @@ -98,9 +111,16 @@ ol.source.MapGuide.prototype.getImage = var height = (extent[3] - extent[1]) / resolution; var size = [width * pixelRatio, height * pixelRatio]; - this.image_ = this.createImage( - extent, resolution, pixelRatio, size, projection); - return this.image_; + var imageUrl = this.imageUrlFunction_(extent, size, projection); + if (goog.isDef(imageUrl)) { + image = new ol.Image(extent, resolution, pixelRatio, + this.getAttributions(), imageUrl, this.crossOrigin_); + } else { + image = null; + } + this.image_ = image; + + return image; }; From e83e79626add76ec5fa6f99a877f65b9b8331258 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 9 Jan 2014 21:06:54 +0100 Subject: [PATCH 814/919] Only use color arrays in the library --- src/ol/interaction/dragzoominteraction.js | 2 +- src/ol/interaction/drawinteraction.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ol/interaction/dragzoominteraction.js b/src/ol/interaction/dragzoominteraction.js index b6b7f7c802..3955158a15 100644 --- a/src/ol/interaction/dragzoominteraction.js +++ b/src/ol/interaction/dragzoominteraction.js @@ -38,7 +38,7 @@ ol.interaction.DragZoom = function(opt_options) { var style = goog.isDef(options.style) ? options.style : new ol.style.Style({ stroke: new ol.style.Stroke({ - color: 'blue' + color: [0, 0, 255, 1] }) }); diff --git a/src/ol/interaction/drawinteraction.js b/src/ol/interaction/drawinteraction.js index 24866d4fc2..b555411ae1 100644 --- a/src/ol/interaction/drawinteraction.js +++ b/src/ol/interaction/drawinteraction.js @@ -127,7 +127,7 @@ ol.interaction.Draw.defaultStyleFunction = (function() { styles[ol.geom.GeometryType.POLYGON] = [ new ol.style.Style({ fill: new ol.style.Fill({ - color: 'rgba(255, 255, 255, 0.5)' + color: [255, 255, 255, 0.5] }) }) ]; @@ -137,13 +137,13 @@ ol.interaction.Draw.defaultStyleFunction = (function() { styles[ol.geom.GeometryType.LINE_STRING] = [ new ol.style.Style({ stroke: new ol.style.Stroke({ - color: 'white', + color: [255, 255, 255, 1], width: 5 }) }), new ol.style.Style({ stroke: new ol.style.Stroke({ - color: '#0099ff', + color: [0, 153, 255, 1], width: 3 }) }) @@ -156,10 +156,10 @@ ol.interaction.Draw.defaultStyleFunction = (function() { image: new ol.style.Circle({ radius: 7, fill: new ol.style.Fill({ - color: '#0099ff' + color: [0, 153, 255, 1] }), stroke: new ol.style.Stroke({ - color: 'rgba(255, 255, 255, 0.75)', + color: [255, 255, 255, 0.75], width: 1.5 }) }), From 2633d8784c71c9e57b777532d55c2a66081b9036 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Sun, 22 Sep 2013 09:58:26 +0100 Subject: [PATCH 815/919] Add a d3 example --- examples/d3.html | 59 +++++++++++++++++++++++++++ examples/d3.js | 95 +++++++++++++++++++++++++++++++++++++++++++ examples/data/us.json | 1 + 3 files changed, 155 insertions(+) create mode 100644 examples/d3.html create mode 100644 examples/d3.js create mode 100644 examples/data/us.json diff --git a/examples/d3.html b/examples/d3.html new file mode 100644 index 0000000000..efba7dc343 --- /dev/null +++ b/examples/d3.html @@ -0,0 +1,59 @@ + + + + + + + + + + + d3 integration example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

d3 integration example

+

Example of using ol3 and d3 together.

+
+

The example loads TopoJSON geometries and uses d3 (d3.geo.path) to render these geometries to a canvas element that is then used as the image of an ol3 image layer.

+

See the d3.js source to see how this is done.

+
+
d3
+
+ +
+ +
+ + + + + + + + diff --git a/examples/d3.js b/examples/d3.js new file mode 100644 index 0000000000..b5c9daaca9 --- /dev/null +++ b/examples/d3.js @@ -0,0 +1,95 @@ +// NOCOMPILE +// this example uses d3 for which we don't have an externs file. +goog.require('ol'); +goog.require('ol.Map'); +goog.require('ol.View2D'); +goog.require('ol.extent'); +goog.require('ol.layer.Image'); +goog.require('ol.layer.Tile'); +goog.require('ol.proj'); +goog.require('ol.source.ImageCanvas'); +goog.require('ol.source.Stamen'); + + +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + source: new ol.source.Stamen({ + layer: 'watercolor' + }) + }) + ], + renderers: ['canvas'], + target: 'map', + view: new ol.View2D({ + center: ol.proj.transform([-97, 38], 'EPSG:4326', 'EPSG:3857'), + zoom: 4 + }) +}); + + +/** + * Load the topojson data and create an ol.layer.Image for that data. + */ +d3.json('data/us.json', function(error, us) { + var features = topojson.feature(us, us.objects.counties); + + /** + * This function uses d3 to render the topojson features to a canvas. + * @param {ol.Extent} extent Extent. + * @param {number} resolution Resolution. + * @param {ol.Size} size Size. + * @param {ol.proj.Projection} projection Projection. + * @return {HTMLCanvasElement} + */ + var canvasFunction = function(extent, resolution, size, projection) { + var canvasWidth = size[0]; + var canvasHeight = size[1]; + + var canvas = d3.select(document.createElement('canvas')); + canvas.attr('width', canvasWidth).attr('height', canvasHeight); + + var context = canvas.node().getContext('2d'); + + var d3Projection = d3.geo.mercator().scale(1).translate([0, 0]); + var d3Path = d3.geo.path().projection(d3Projection); + + var pixelBounds = d3Path.bounds(features); + var pixelBoundsWidth = pixelBounds[1][0] - pixelBounds[0][0]; + var pixelBoundsHeight = pixelBounds[1][1] - pixelBounds[0][1]; + + var geoBounds = d3.geo.bounds(features); + var geoBoundsLeftBottom = ol.proj.transform( + geoBounds[0], 'EPSG:4326', projection); + var geoBoundsRightTop = ol.proj.transform( + geoBounds[1], 'EPSG:4326', projection); + var geoBoundsWidth = geoBoundsRightTop[0] - geoBoundsLeftBottom[0]; + if (geoBoundsWidth < 0) { + geoBoundsWidth += ol.extent.getWidth(projection.getExtent()); + } + var geoBoundsHeight = geoBoundsRightTop[1] - geoBoundsLeftBottom[1]; + + var widthResolution = geoBoundsWidth / pixelBoundsWidth; + var heightResolution = geoBoundsHeight / pixelBoundsHeight; + var r = Math.max(widthResolution, heightResolution); + var scale = r / (resolution / pixelRatio); + + var center = ol.proj.transform(ol.extent.getCenter(extent), + projection, 'EPSG:4326'); + d3Projection.scale(scale).center(center) + .translate([canvasWidth / 2, canvasHeight / 2]); + d3Path = d3Path.projection(d3Projection).context(context); + d3Path(features); + context.stroke(); + + return canvas[0][0]; + }; + + var layer = new ol.layer.Image({ + source: new ol.source.ImageCanvas({ + canvasFunction: canvasFunction, + projection: 'EPSG:3857' + }) + }); + map.addLayer(layer); +}); diff --git a/examples/data/us.json b/examples/data/us.json new file mode 100644 index 0000000000..721f640680 --- /dev/null +++ b/examples/data/us.json @@ -0,0 +1 @@ +{"type":"Topology","objects":{"counties":{"type":"GeometryCollection","geometries":[{"type":"Polygon","id":53073,"arcs":[[0,1,2,3]]},{"type":"Polygon","id":30105,"arcs":[[4,5,6,7,8,9]]},{"type":"Polygon","id":30029,"arcs":[[10,11,12,13,14,15,16,17,18,19]]},{"type":"Polygon","id":16021,"arcs":[[20,21,22,23]]},{"type":"Polygon","id":30071,"arcs":[[-9,24,25,26,27,28,29]]},{"type":"Polygon","id":38079,"arcs":[[30,31,32,33]]},{"type":"Polygon","id":30053,"arcs":[[-19,34,35,-21,36]]},{"type":"Polygon","id":38009,"arcs":[[-32,37,38,39,40]]},{"type":"Polygon","id":30035,"arcs":[[41,42,-11,43]]},{"type":"Polygon","id":30041,"arcs":[[44,45,46,47]]},{"type":"Polygon","id":30005,"arcs":[[-29,-28,48,49,-48,50]]},{"type":"Polygon","id":30019,"arcs":[[51,52,-5,53]]},{"type":"Polygon","id":38067,"arcs":[[54,55,56,57]]},{"type":"Polygon","id":27069,"arcs":[[58,59,-55,60]]},{"type":"Polygon","id":38095,"arcs":[[61,62,63,-34,64,65]]},{"type":"Polygon","id":38019,"arcs":[[-57,66,67,-66,68]]},{"type":"Polygon","id":53047,"arcs":[[69,70,71,72,73,74,-1,75]]},{"type":"Polygon","id":53065,"arcs":[[76,77,78,79,80]]},{"type":"Polygon","id":53051,"arcs":[[-23,81,82,-77,83]]},{"type":"Polygon","id":53019,"arcs":[[-80,84,-70,85]]},{"type":"Polygon","id":30051,"arcs":[[86,87,88,-46,89]]},{"type":"Polygon","id":38023,"arcs":[[90,91,92,93]]},{"type":"Polygon","id":38013,"arcs":[[94,95,96,97,-91,98]]},{"type":"Polygon","id":30101,"arcs":[[99,-88,100,-42]]},{"type":"Polygon","id":38075,"arcs":[[101,102,-95,103,-40]]},{"type":"Polygon","id":27135,"arcs":[[104,105,-59,106,107]]},{"type":"Polygon","id":30091,"arcs":[[-93,108,109,-52,110]]},{"type":"Polygon","id":16017,"arcs":[[-36,111,112,113,114,-82,-22]]},{"type":"Polygon","id":38101,"arcs":[[-103,115,116,117,-96]]},{"type":"MultiPolygon","id":53055,"arcs":[[[118]],[[119]],[[120]]]},{"type":"Polygon","id":27071,"arcs":[[121,122,123,124,125]]},{"type":"Polygon","id":53057,"arcs":[[126,-2,-75,127,128,129]]},{"type":"Polygon","id":38105,"arcs":[[-98,130,131,132,-109,-92]]},{"type":"Polygon","id":38049,"arcs":[[133,134,135,-116,-102,-39]]},{"type":"Polygon","id":27137,"arcs":[[136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,-122,151]]},{"type":"Polygon","id":30085,"arcs":[[-110,-133,152,153,-6,-53]]},{"type":"Polygon","id":53007,"arcs":[[-74,154,155,156,157,-128]]},{"type":"Polygon","id":38061,"arcs":[[158,159,160,-131,-97,-118]]},{"type":"Polygon","id":27089,"arcs":[[161,162,163,164,165,-60,-106]]},{"type":"Polygon","id":38069,"arcs":[[-64,166,167,168,-134,-38,-31]]},{"type":"Polygon","id":38071,"arcs":[[169,170,171,-62,-68]]},{"type":"Polygon","id":38099,"arcs":[[-56,-166,172,173,-170,-67]]},{"type":"Polygon","id":27007,"arcs":[[-124,174,175,176,177,178,-162,-105,179]]},{"type":"Polygon","id":30073,"arcs":[[-101,-87,180,181,-12,-43]]},{"type":"MultiPolygon","id":53029,"arcs":[[[182,183]],[[184]]]},{"type":"Polygon","id":53009,"arcs":[[185,186,187]]},{"type":"Polygon","id":38005,"arcs":[[-63,-172,188,189,190,-167]]},{"type":"Polygon","id":30015,"arcs":[[-50,191,192,193,194,-181,-90,-45]]},{"type":"Polygon","id":53061,"arcs":[[-158,195,196,-183,197,-129]]},{"type":"Polygon","id":30089,"arcs":[[-18,198,199,200,201,-112,-35]]},{"type":"Polygon","id":27075,"arcs":[[202,203,-137,204]]},{"type":"Polygon","id":38063,"arcs":[[205,206,207,208,-189,-171,-174]]},{"type":"Polygon","id":38035,"arcs":[[-165,209,210,211,-206,-173]]},{"type":"Polygon","id":27119,"arcs":[[212,213,214,215,216,217,218,-210,-164]]},{"type":"Polygon","id":27113,"arcs":[[-179,219,-215,220,-213,-163]]},{"type":"Polygon","id":30083,"arcs":[[221,222,223,224,-153]]},{"type":"Polygon","id":53017,"arcs":[[225,226,-155,-73]]},{"type":"Polygon","id":38053,"arcs":[[-161,227,228,229,230,-222,-132]]},{"type":"Polygon","id":53031,"arcs":[[231,232,233,-186,234]]},{"type":"Polygon","id":30099,"arcs":[[-195,235,236,-13,-182]]},{"type":"Polygon","id":30055,"arcs":[[-225,237,238,239,-7,-154]]},{"type":"Polygon","id":16079,"arcs":[[-202,240,241,242,243,244,-113]]},{"type":"Polygon","id":30047,"arcs":[[245,-199,-17]]},{"type":"Polygon","id":53063,"arcs":[[-83,-115,246,247,248,249,-78]]},{"type":"Polygon","id":27029,"arcs":[[250,251,252,-216,-220,-178]]},{"type":"Polygon","id":16055,"arcs":[[-245,253,-247,-114]]},{"type":"Polygon","id":30033,"arcs":[[-240,254,255,256,257,-25,-8]]},{"type":"Polygon","id":27125,"arcs":[[-214,-221]]},{"type":"Polygon","id":53025,"arcs":[[-72,258,259,260,261,262,263,-226]]},{"type":"Polygon","id":53043,"arcs":[[-85,-79,-250,264,265,-259,-71]]},{"type":"Polygon","id":30049,"arcs":[[266,267,268,269,270,-14,-237]]},{"type":"MultiPolygon","id":53035,"arcs":[[[271]],[[272,273,274,275,276]]]},{"type":"Polygon","id":27061,"arcs":[[-151,277,278,-175,-123]]},{"type":"Polygon","id":38055,"arcs":[[279,280,281,282,283,-159,-117,-136]]},{"type":"Polygon","id":38027,"arcs":[[-209,284,285,286,-190]]},{"type":"Polygon","id":38103,"arcs":[[-191,-287,287,288,289,290,-168]]},{"type":"Polygon","id":38083,"arcs":[[-169,-291,291,292,-280,-135]]},{"type":"Polygon","id":38025,"arcs":[[-284,293,294,295,-228,-160]]},{"type":"Polygon","id":30027,"arcs":[[-27,296,297,298,299,300,-192,-49]]},{"type":"Polygon","id":30021,"arcs":[[-224,301,302,-238]]},{"type":"MultiPolygon","id":53033,"arcs":[[[303]],[[-157,304,305,306,307,-196]]]},{"type":"Polygon","id":30013,"arcs":[[308,309,-267,-236,-194]]},{"type":"Polygon","id":38091,"arcs":[[-212,310,311,312,313,-207]]},{"type":"Polygon","id":38039,"arcs":[[-314,314,315,316,-285,-208]]},{"type":"Polygon","id":38097,"arcs":[[317,318,-311,-211,-219]]},{"type":"MultiPolygon","id":53045,"arcs":[[[319,-276,320,321,322,323,-232]]]},{"type":"Polygon","id":30063,"arcs":[[-16,324,325,326,327,328,329,-200,-246]]},{"type":"Polygon","id":30077,"arcs":[[-271,330,331,332,-325,-15]]},{"type":"Polygon","id":30069,"arcs":[[-258,333,334,-297,-26]]},{"type":"Polygon","id":53037,"arcs":[[-227,-264,335,-305,-156]]},{"type":"Polygon","id":38031,"arcs":[[-317,336,-288,-286]]},{"type":"Polygon","id":38057,"arcs":[[337,338,339,-294,-283]]},{"type":"Polygon","id":53027,"arcs":[[-324,340,341,342,343,-233]]},{"type":"Polygon","id":27087,"arcs":[[344,345,-217,-253]]},{"type":"Polygon","id":27107,"arcs":[[-218,-346,346,347,348,-318]]},{"type":"Polygon","id":30061,"arcs":[[-330,349,-241,-201]]},{"type":"Polygon","id":27021,"arcs":[[350,351,352,353,354,355,-176,-279]]},{"type":"Polygon","id":23003,"arcs":[[356,357,358,359,360]]},{"type":"Polygon","id":30045,"arcs":[[-301,361,362,-309,-193]]},{"type":"Polygon","id":16009,"arcs":[[-244,363,364,-248,-254]]},{"type":"Polygon","id":27057,"arcs":[[-356,365,366,-251,-177]]},{"type":"MultiPolygon","id":53053,"arcs":[[[-307,-306,367,368,369,370]],[[-273,371]],[[-321,-275,372]]]},{"type":"Polygon","id":30109,"arcs":[[-231,373,374,375,-302,-223]]},{"type":"Polygon","id":38007,"arcs":[[-296,376,377,378,-229]]},{"type":"Polygon","id":38033,"arcs":[[-379,379,380,-374,-230]]},{"type":"Polygon","id":38043,"arcs":[[381,382,383,384,-292,-290]]},{"type":"Polygon","id":38093,"arcs":[[-316,385,386,387,-382,-289,-337]]},{"type":"Polygon","id":38015,"arcs":[[-385,388,389,390,-281,-293]]},{"type":"Polygon","id":38065,"arcs":[[-391,391,-338,-282]]},{"type":"Polygon","id":53001,"arcs":[[392,393,-260,-266]]},{"type":"Polygon","id":53075,"arcs":[[-249,-365,394,395,396,397,398,399,-393,-265]]},{"type":"Polygon","id":38003,"arcs":[[-313,400,401,402,-386,-315]]},{"type":"Polygon","id":38017,"arcs":[[-319,-349,403,404,405,-401,-312]]},{"type":"Polygon","id":53067,"arcs":[[-370,406,-341,-323,407]]},{"type":"Polygon","id":30079,"arcs":[[-376,408,409,-255,-239,-303]]},{"type":"Polygon","id":27005,"arcs":[[-367,410,411,412,-347,-345,-252]]},{"type":"Polygon","id":27027,"arcs":[[-413,413,414,415,-404,-348]]},{"type":"Polygon","id":16057,"arcs":[[-243,416,417,-395,-364]]},{"type":"Polygon","id":53077,"arcs":[[-263,418,419,420,421,-368,-336]]},{"type":"Polygon","id":30059,"arcs":[[-363,422,423,424,425,426,-268,-310]]},{"type":"Polygon","id":27001,"arcs":[[-150,427,428,429,430,431,-351,-278]]},{"type":"Polygon","id":26131,"arcs":[[432,433,434,435]]},{"type":"Polygon","id":38089,"arcs":[[-340,436,437,438,439,-377,-295]]},{"type":"Polygon","id":38059,"arcs":[[-390,440,441,442,-437,-339,-392]]},{"type":"Polygon","id":26013,"arcs":[[443,444,445,446]]},{"type":"Polygon","id":16035,"arcs":[[-350,-329,447,448,449,-417,-242]]},{"type":"Polygon","id":30017,"arcs":[[450,451,452,453,-256,-410]]},{"type":"Polygon","id":30087,"arcs":[[-454,454,455,456,457,458,-334,-257]]},{"type":"Polygon","id":30039,"arcs":[[459,460,-326,-333]]},{"type":"Polygon","id":27159,"arcs":[[-355,461,462,-411,-366]]},{"type":"Polygon","id":27035,"arcs":[[-432,463,464,-352]]},{"type":"Polygon","id":53049,"arcs":[[465,466,467,-343]]},{"type":"Polygon","id":53041,"arcs":[[-407,-369,-422,468,469,470,-466,-342]]},{"type":"Polygon","id":30007,"arcs":[[-427,471,472,-269]]},{"type":"Polygon","id":27017,"arcs":[[473,474,-428,-149]]},{"type":"Polygon","id":26053,"arcs":[[475,476,477,478,479,480,481,482,483,484,-434]]},{"type":"Polygon","id":30065,"arcs":[[-459,485,486,-298,-335]]},{"type":"Polygon","id":26095,"arcs":[[487,488,489,490,491]]},{"type":"Polygon","id":30037,"arcs":[[-487,492,493,494,495,-299]]},{"type":"Polygon","id":30107,"arcs":[[-300,-496,496,-423,-362]]},{"type":"Polygon","id":53021,"arcs":[[497,498,499,-261,-394,-400]]},{"type":"Polygon","id":53005,"arcs":[[500,501,502,503,-419,-262,-500]]},{"type":"Polygon","id":27111,"arcs":[[-463,504,505,506,507,-414,-412]]},{"type":"Polygon","id":38037,"arcs":[[508,509,510,-438,-443]]},{"type":"Polygon","id":53023,"arcs":[[511,512,513,-398]]},{"type":"Polygon","id":30025,"arcs":[[-381,514,515,516,517,-451,-409,-375]]},{"type":"Polygon","id":16049,"arcs":[[518,519,520,521,522,523,524,-448,-328]]},{"type":"Polygon","id":30081,"arcs":[[-461,525,526,527,-519,-327]]},{"type":"Polygon","id":38029,"arcs":[[-384,528,529,530,531,-441,-389]]},{"type":"Polygon","id":38047,"arcs":[[-388,532,533,-529,-383]]},{"type":"Polygon","id":16069,"arcs":[[-450,534,-524,535,536,-396,-418]]},{"type":"Polygon","id":38087,"arcs":[[537,538,539,-515,-380,-378,-440]]},{"type":"Polygon","id":38045,"arcs":[[540,541,542,-533,-387,-403]]},{"type":"Polygon","id":38041,"arcs":[[-511,543,-538,-439]]},{"type":"Polygon","id":27167,"arcs":[[-508,544,545,546,-415]]},{"type":"Polygon","id":38073,"arcs":[[-406,547,548,549,-541,-402]]},{"type":"Polygon","id":38077,"arcs":[[-547,550,551,552,-548,-405,-416]]},{"type":"Polygon","id":53013,"arcs":[[553,554,555,-498,-399,-514]]},{"type":"Polygon","id":53071,"arcs":[[-556,556,-501,-499]]},{"type":"Polygon","id":55051,"arcs":[[557,-484,-483,-482,-481,-480,-479,558,559,560,561]]},{"type":"Polygon","id":23025,"arcs":[[562,563,564,565,566,567,-360]]},{"type":"Polygon","id":23021,"arcs":[[568,-563,-359]]},{"type":"Polygon","id":30043,"arcs":[[-473,569,570,571,572,-331,-270]]},{"type":"Polygon","id":26153,"arcs":[[-490,573,574,575,576]]},{"type":"Polygon","id":30111,"arcs":[[577,578,579,580,-493,-486,-458]]},{"type":"Polygon","id":30103,"arcs":[[581,-578,-457]]},{"type":"Polygon","id":16061,"arcs":[[-449,-525,-535]]},{"type":"Polygon","id":53003,"arcs":[[-537,582,-512,-397]]},{"type":"Polygon","id":38085,"arcs":[[-532,583,584,-509,-442]]},{"type":"Polygon","id":26071,"arcs":[[-445,585,586,587,588,589,590,-476,-433,591]]},{"type":"Polygon","id":27115,"arcs":[[592,593,594,595,596,-429,-475]]},{"type":"Polygon","id":23019,"arcs":[[597,598,599,600,-564,-569,-358]]},{"type":"Polygon","id":53059,"arcs":[[-421,601,602,603,604,605,-469]]},{"type":"Polygon","id":53015,"arcs":[[-606,606,607,608,609,-470]]},{"type":"Polygon","id":53069,"arcs":[[-471,-610,610,-467]]},{"type":"Polygon","id":27153,"arcs":[[-354,611,612,613,-505,-462]]},{"type":"Polygon","id":27097,"arcs":[[-465,614,615,616,-612,-353]]},{"type":"Polygon","id":55125,"arcs":[[617,618,-559,-478,-477,-591,619]]},{"type":"Polygon","id":41007,"arcs":[[620,621,622]]},{"type":"Polygon","id":38001,"arcs":[[-510,-585,623,624,625,626,-539,-544]]},{"type":"Polygon","id":38081,"arcs":[[-553,627,628,629,-549]]},{"type":"Polygon","id":38051,"arcs":[[-543,630,631,632,-530,-534]]},{"type":"Polygon","id":38021,"arcs":[[-550,-630,633,634,-631,-542]]},{"type":"Polygon","id":38011,"arcs":[[-627,635,-516,-540]]},{"type":"Polygon","id":30023,"arcs":[[-573,636,637,-526,-460,-332]]},{"type":"Polygon","id":26043,"arcs":[[638,639,640,-587,641]]},{"type":"Polygon","id":27095,"arcs":[[642,643,644,645,-615,-464,-431]]},{"type":"Polygon","id":30097,"arcs":[[-495,646,647,-424,-497]]},{"type":"Polygon","id":30031,"arcs":[[-426,648,649,650,651,652,-570,-472]]},{"type":"Polygon","id":30067,"arcs":[[-648,653,654,655,-649,-425]]},{"type":"Polygon","id":30093,"arcs":[[656,657,-637,-572]]},{"type":"Polygon","id":41009,"arcs":[[658,659,660,-621,661,-608]]},{"type":"Polygon","id":27065,"arcs":[[-597,662,-643,-430]]},{"type":"Polygon","id":55013,"arcs":[[663,664,665,666,-595,-594,667]]},{"type":"Polygon","id":55113,"arcs":[[668,669,670,671,672]]},{"type":"Polygon","id":55129,"arcs":[[-672,673,-664,674]]},{"type":"Polygon","id":30011,"arcs":[[675,676,677,678,-452,-518]]},{"type":"Polygon","id":30095,"arcs":[[-581,679,-654,-647,-494]]},{"type":"Polygon","id":27051,"arcs":[[-507,680,681,682,-545]]},{"type":"Polygon","id":27041,"arcs":[[-614,683,684,-681,-506]]},{"type":"Polygon","id":55041,"arcs":[[685,686,687,688,689,-620,-590]]},{"type":"Polygon","id":53011,"arcs":[[-605,690,-659,-607]]},{"type":"Polygon","id":53039,"arcs":[[-504,691,692,693,694,695,-602,-420]]},{"type":"Polygon","id":30003,"arcs":[[-456,696,697,698,699,-579,-582]]},{"type":"Polygon","id":27155,"arcs":[[-683,700,701,702,-551,-546]]},{"type":"Polygon","id":55037,"arcs":[[-588,-641,703,-686,-589]]},{"type":"Polygon","id":41059,"arcs":[[-555,704,705,706,707,-502,-557]]},{"type":"Polygon","id":41063,"arcs":[[-513,-583,-536,-523,708,709,710,-705,-554]]},{"type":"Polygon","id":26109,"arcs":[[711,712,713,714,-639,715]]},{"type":"Polygon","id":55099,"arcs":[[-619,716,717,718,719,-670,720,-560]]},{"type":"Polygon","id":46105,"arcs":[[721,722,723,724,725,-625]]},{"type":"Polygon","id":46031,"arcs":[[726,727,728,729,-722,-624,-584]]},{"type":"Polygon","id":46063,"arcs":[[-626,-726,730,-676,-517,-636]]},{"type":"Polygon","id":46021,"arcs":[[-633,731,732,-727,-531]]},{"type":"Polygon","id":30001,"arcs":[[-658,733,734,735,736,-527,-638]]},{"type":"Polygon","id":46089,"arcs":[[-635,737,738,739,-732,-632]]},{"type":"Polygon","id":46013,"arcs":[[-629,740,741,742,743,744,-738,-634]]},{"type":"Polygon","id":46109,"arcs":[[-703,745,746,747,748,-552]]},{"type":"Polygon","id":46091,"arcs":[[-749,749,-741,-628]]},{"type":"Polygon","id":41049,"arcs":[[-708,750,751,752,-692,-503]]},{"type":"Polygon","id":55085,"arcs":[[-690,753,754,-717,-618]]},{"type":"Polygon","id":41061,"arcs":[[755,756,-706,-711]]},{"type":"Polygon","id":30057,"arcs":[[-653,757,-734,-657,-571]]},{"type":"Polygon","id":27009,"arcs":[[-646,758,759,-616]]},{"type":"Polygon","id":41021,"arcs":[[760,761,762,-693,-753]]},{"type":"Polygon","id":30075,"arcs":[[-679,763,764,765,-697,-455,-453]]},{"type":"Polygon","id":26031,"arcs":[[766,767,768,769,770,771]]},{"type":"Polygon","id":41057,"arcs":[[772,773,774,775,776,-622]]},{"type":"Polygon","id":41067,"arcs":[[777,778,779,-773,-661]]},{"type":"Polygon","id":27145,"arcs":[[-760,780,781,782,783,784,-684,-613,-617]]},{"type":"Polygon","id":27149,"arcs":[[785,786,787,-701,-682]]},{"type":"Polygon","id":27121,"arcs":[[-785,788,789,-786,-685]]},{"type":"Polygon","id":41055,"arcs":[[790,-694,-763]]},{"type":"Polygon","id":27059,"arcs":[[791,792,793,-644,-663]]},{"type":"Polygon","id":27025,"arcs":[[-667,794,795,796,-792,-596]]},{"type":"Polygon","id":55095,"arcs":[[797,798,799,-795,-666]]},{"type":"Polygon","id":41051,"arcs":[[-691,-604,800,801,-778,-660]]},{"type":"Polygon","id":41027,"arcs":[[802,803,-801,-603,-696]]},{"type":"Polygon","id":41065,"arcs":[[-791,-762,804,805,806,807,-803,-695]]},{"type":"Polygon","id":16059,"arcs":[[-737,808,809,810,811,-520,-528]]},{"type":"Polygon","id":23029,"arcs":[[812,-598,-357,813]]},{"type":"Polygon","id":23007,"arcs":[[814,815,816,817,-567]]},{"type":"Polygon","id":26141,"arcs":[[818,819,-767,820]]},{"type":"Polygon","id":55005,"arcs":[[-674,821,822,823,-798,-665]]},{"type":"Polygon","id":55107,"arcs":[[-720,824,825,-822,-671]]},{"type":"Polygon","id":30009,"arcs":[[-700,826,827,-655,-680,-580]]},{"type":"Polygon","id":46129,"arcs":[[-740,828,829,830,-728,-733]]},{"type":"Polygon","id":46045,"arcs":[[-745,831,832,-829,-739]]},{"type":"Polygon","id":46037,"arcs":[[-750,-748,833,834,835,836,-742]]},{"type":"Polygon","id":27011,"arcs":[[-702,-788,837,838,839,840,-746]]},{"type":"Polygon","id":27141,"arcs":[[-645,-794,841,842,843,-781,-759]]},{"type":"Polygon","id":55069,"arcs":[[844,845,846,-718,-755]]},{"type":"Polygon","id":46041,"arcs":[[-831,847,848,849,850,-729]]},{"type":"Polygon","id":46137,"arcs":[[-851,851,852,-723,-730]]},{"type":"Polygon","id":55067,"arcs":[[-689,853,854,855,856,-845,-754]]},{"type":"Polygon","id":41005,"arcs":[[-804,-808,857,858,-779,-802]]},{"type":"Polygon","id":41071,"arcs":[[-859,859,860,861,-774,-780]]},{"type":"Polygon","id":27171,"arcs":[[-844,862,863,864,865,-782]]},{"type":"Polygon","id":27003,"arcs":[[-797,866,867,868,-842,-793]]},{"type":"Polygon","id":27067,"arcs":[[869,870,871,872,-789,-784]]},{"type":"Polygon","id":27151,"arcs":[[-873,873,874,-838,-787,-790]]},{"type":"Polygon","id":55119,"arcs":[[-847,875,876,877,-825,-719]]},{"type":"Polygon","id":55083,"arcs":[[878,879,880,881,882,883,884,-854,-688]]},{"type":"Polygon","id":23017,"arcs":[[-817,885,886,887,888,-889,889,890,891]]},{"type":"Polygon","id":46051,"arcs":[[-841,892,893,894,-834,-747]]},{"type":"Polygon","id":27093,"arcs":[[-866,895,896,-870,-783]]},{"type":"Polygon","id":33007,"arcs":[[897,898,899,900,-891]]},{"type":"Polygon","id":27163,"arcs":[[-800,901,902,903,904,-867,-796]]},{"type":"Polygon","id":55017,"arcs":[[-878,905,906,907,-823,-826]]},{"type":"Polygon","id":41047,"arcs":[[-860,-858,-807,908,909,910,-861]]},{"type":"Polygon","id":16003,"arcs":[[911,912,913,914,-709,-522]]},{"type":"Polygon","id":27073,"arcs":[[-839,-875,915,916,917,-893,-840]]},{"type":"MultiPolygon","id":23009,"arcs":[[[918]],[[919]],[[920,-599,-813]]]},{"type":"Polygon","id":46107,"arcs":[[-833,921,922,923,-848,-830]]},{"type":"Polygon","id":46049,"arcs":[[-744,924,925,926,-922,-832]]},{"type":"Polygon","id":27053,"arcs":[[-843,-869,927,928,929,930,-863]]},{"type":"Polygon","id":46115,"arcs":[[-837,931,932,933,-925,-743]]},{"type":"Polygon","id":16085,"arcs":[[-812,934,935,936,-912,-521]]},{"type":"Polygon","id":46019,"arcs":[[-725,937,938,939,-677,-731]]},{"type":"Polygon","id":55109,"arcs":[[940,941,-902,-799]]},{"type":"Polygon","id":55033,"arcs":[[-908,942,943,944,-941,-824]]},{"type":"Polygon","id":26009,"arcs":[[945,946,947,948,949]]},{"type":"Polygon","id":26137,"arcs":[[950,951,-946,952,-769]]},{"type":"Polygon","id":26119,"arcs":[[953,954,-951,-768,-820]]},{"type":"Polygon","id":46025,"arcs":[[955,956,957,958,-932,-836]]},{"type":"Polygon","id":46029,"arcs":[[-895,959,960,-956,-835]]},{"type":"Polygon","id":27023,"arcs":[[-872,961,962,-916,-874]]},{"type":"Polygon","id":27123,"arcs":[[-905,963,-928,-868]]},{"type":"Polygon","id":55073,"arcs":[[-846,-857,964,965,966,967,-876]]},{"type":"Polygon","id":55078,"arcs":[[-885,968,-855]]},{"type":"Polygon","id":41001,"arcs":[[-915,969,970,971,-756,-710]]},{"type":"Polygon","id":41053,"arcs":[[-911,972,973,974,-775,-862]]},{"type":"Polygon","id":41069,"arcs":[[-752,975,976,977,-805,-761]]},{"type":"Polygon","id":41041,"arcs":[[-975,978,979,980,-776]]},{"type":"Polygon","id":46093,"arcs":[[-853,981,982,983,-938,-724]]},{"type":"Polygon","id":55019,"arcs":[[-968,984,985,986,-906,-877]]},{"type":"Polygon","id":55115,"arcs":[[-969,-884,987,988,989,-965,-856]]},{"type":"Polygon","id":50011,"arcs":[[990,991,992,993,994]]},{"type":"Polygon","id":50009,"arcs":[[995,996,997,998,-900]]},{"type":"Polygon","id":50013,"arcs":[[999,1000,1001,-994]]},{"type":"Polygon","id":36019,"arcs":[[1002,1003,1004,1005,-1001]]},{"type":"Polygon","id":50019,"arcs":[[-998,1006,1007,-991,1008]]},{"type":"Polygon","id":56029,"arcs":[[1009,1010,1011,1012,1013,-650,-656,-828]]},{"type":"Polygon","id":36089,"arcs":[[1014,1015,1016,1017,1018,1019]]},{"type":"Polygon","id":56003,"arcs":[[1020,1021,1022,-1010,-827,-699]]},{"type":"Polygon","id":56005,"arcs":[[1023,1024,1025,1026,1027,-765]]},{"type":"Polygon","id":56033,"arcs":[[-766,-1028,1028,-1021,-698]]},{"type":"Polygon","id":36033,"arcs":[[-1005,1029,1030,-1015,1031]]},{"type":"Polygon","id":56011,"arcs":[[-678,-940,1032,1033,-1024,-764]]},{"type":"Polygon","id":41023,"arcs":[[-757,-972,1034,1035,1036,-976,-751,-707]]},{"type":"Polygon","id":27085,"arcs":[[-865,1037,1038,1039,-896]]},{"type":"Polygon","id":27019,"arcs":[[-931,1040,1041,-1038,-864]]},{"type":"Polygon","id":46039,"arcs":[[-918,1042,1043,1044,1045,-960,-894]]},{"type":"Polygon","id":27173,"arcs":[[1046,1047,1048,1049,-1043,-917,-963]]},{"type":"Polygon","id":27037,"arcs":[[-904,1050,1051,1052,1053,-929,-964]]},{"type":"Polygon","id":46119,"arcs":[[1054,1055,1056,-849,-924]]},{"type":"Polygon","id":46069,"arcs":[[-927,1057,1058,1059,1060,-1055,-923]]},{"type":"Polygon","id":46059,"arcs":[[-934,1061,1062,1063,-1058,-926]]},{"type":"Polygon","id":27129,"arcs":[[-897,-1040,1064,1065,1066,1067,-1047,-962,-871]]},{"type":"Polygon","id":16037,"arcs":[[1068,1069,1070,1071,1072,-935,-811]]},{"type":"Polygon","id":55093,"arcs":[[-945,1073,1074,-1051,-903,-942]]},{"type":"Polygon","id":26001,"arcs":[[1075,1076,1077,1078]]},{"type":"Polygon","id":26079,"arcs":[[1079,1080,1081,-947]]},{"type":"Polygon","id":26039,"arcs":[[1082,1083,-1080,-952]]},{"type":"Polygon","id":55035,"arcs":[[-987,1084,1085,1086,1087,-943,-907]]},{"type":"Polygon","id":26135,"arcs":[[-1078,1088,-1083,-955]]},{"type":"Polygon","id":16087,"arcs":[[1089,1090,1091,-970,-914]]},{"type":"Polygon","id":41031,"arcs":[[-978,1092,1093,1094,-909,-806]]},{"type":"Polygon","id":27139,"arcs":[[-1054,1095,1096,1097,-1041,-930]]},{"type":"Polygon","id":46057,"arcs":[[-1046,1098,1099,-957,-961]]},{"type":"Polygon","id":50015,"arcs":[[1100,1101,1102,-992,-1008]]},{"type":"Polygon","id":41043,"arcs":[[-1095,1103,1104,1105,-973,-910]]},{"type":"Polygon","id":46117,"arcs":[[-1057,1106,1107,1108,1109,-850]]},{"type":"Polygon","id":26019,"arcs":[[1110,1111,1112,1113]]},{"type":"Polygon","id":50005,"arcs":[[1114,1115,1116,-1101,-1007,-997]]},{"type":"MultiPolygon","id":23027,"arcs":[[[-601,1117,1118,1119,1120,-565]]]},{"type":"Polygon","id":16043,"arcs":[[1121,1122,1123,1124,1125,-735,-758,-652]]},{"type":"Polygon","id":46055,"arcs":[[1126,1127,1128,-982,-852,-1110]]},{"type":"Polygon","id":50007,"arcs":[[-1103,1129,1130,1131,-1003,-1000,-993]]},{"type":"Polygon","id":41003,"arcs":[[-1106,1132,-979,-974]]},{"type":"Polygon","id":23011,"arcs":[[1133,1134,1135,1136,-815,-566,-1121]]},{"type":"Polygon","id":27143,"arcs":[[-1042,-1098,1137,1138,-1065,-1039]]},{"type":"Polygon","id":27049,"arcs":[[1139,1140,1141,1142,1143,-1052,-1075]]},{"type":"Polygon","id":27127,"arcs":[[1144,1145,1146,1147,-1048,-1068]]},{"type":"Polygon","id":55097,"arcs":[[1148,1149,1150,1151,-966]]},{"type":"Polygon","id":55141,"arcs":[[-1152,1152,1153,1154,-985,-967]]},{"type":"Polygon","id":55009,"arcs":[[-883,1155,1156,1157,1158,1159,-988]]},{"type":"Polygon","id":55091,"arcs":[[-1088,1160,1161,-1140,-1074,-944]]},{"type":"Polygon","id":55135,"arcs":[[1162,1163,1164,-1149,-990]]},{"type":"Polygon","id":55061,"arcs":[[1165,1166,-1157,1167,1168]]},{"type":"Polygon","id":56039,"arcs":[[1169,1170,1171,1172,1173,-1122,-651,-1014]]},{"type":"Polygon","id":46005,"arcs":[[-959,1174,1175,1176,-1062,-933]]},{"type":"Polygon","id":27081,"arcs":[[1177,1178,1179,-1044,-1050]]},{"type":"Polygon","id":27083,"arcs":[[-1148,1180,1181,-1178,-1049]]},{"type":"Polygon","id":46081,"arcs":[[-984,1182,1183,-1033,-939]]},{"type":"Polygon","id":55011,"arcs":[[-1087,1184,1185,1186,-1161]]},{"type":"Polygon","id":55121,"arcs":[[1187,1188,1189,1190,-1185,-1086]]},{"type":"Polygon","id":55053,"arcs":[[-986,-1155,1191,1192,1193,-1188,-1085]]},{"type":"Polygon","id":55087,"arcs":[[-989,-1160,1194,1195,-1163]]},{"type":"Polygon","id":16033,"arcs":[[-1126,1196,1197,-809,-736]]},{"type":"Polygon","id":56019,"arcs":[[-1027,1198,1199,1200,-1022,-1029]]},{"type":"Polygon","id":41013,"arcs":[[-977,-1037,1201,1202,-1093]]},{"type":"Polygon","id":46065,"arcs":[[-1061,1203,-1107,-1056]]},{"type":"Polygon","id":36031,"arcs":[[1204,1205,1206,1207,-1030,-1004,-1132]]},{"type":"Polygon","id":27079,"arcs":[[1208,1209,1210,1211,-1138,-1097]]},{"type":"Polygon","id":27131,"arcs":[[-1053,-1144,1212,1213,1214,-1209,-1096]]},{"type":"Polygon","id":46077,"arcs":[[-1100,1215,1216,1217,1218,-1175,-958]]},{"type":"Polygon","id":46011,"arcs":[[-1180,1219,1220,1221,-1216,-1099,-1045]]},{"type":"Polygon","id":26101,"arcs":[[1222,1223,1224,1225,-1112]]},{"type":"Polygon","id":26165,"arcs":[[1226,1227,1228,-1223,1229]]},{"type":"Polygon","id":26143,"arcs":[[1230,1231,1232,1233,-1084]]},{"type":"Polygon","id":26113,"arcs":[[-1234,1234,1235,-1227,-1081]]},{"type":"Polygon","id":26069,"arcs":[[1236,1237,1238,-1077]]},{"type":"Polygon","id":26129,"arcs":[[-1239,1239,1240,-1231,-1089]]},{"type":"Polygon","id":16045,"arcs":[[-937,1241,1242,1243,1244,-1090,-913]]},{"type":"Polygon","id":46103,"arcs":[[-1129,1245,1246,1247,1248,-1183,-983]]},{"type":"Polygon","id":50023,"arcs":[[1249,1250,-1130,-1102,-1117]]},{"type":"Polygon","id":27015,"arcs":[[1251,1252,1253,1254,-1145,-1067]]},{"type":"Polygon","id":23001,"arcs":[[1255,1256,-886,-816,-1137]]},{"type":"Polygon","id":27103,"arcs":[[1257,-1252,-1066,-1139,-1212]]},{"type":"Polygon","id":27157,"arcs":[[-1162,-1187,1258,1259,-1141]]},{"type":"Polygon","id":41045,"arcs":[[-1092,1260,1261,1262,1263,1264,-1035,-971]]},{"type":"Polygon","id":33009,"arcs":[[1265,1266,1267,1268,1269,1270,-1115,-996,-899]]},{"type":"Polygon","id":41017,"arcs":[[-1203,1271,1272,1273,1274,-1104,-1094]]},{"type":"Polygon","id":36045,"arcs":[[1275,1276,-1019,1277,1278,1279,1280,1281]]},{"type":"MultiPolygon","id":23013,"arcs":[[[1282,1283,-1119]]]},{"type":"Polygon","id":16015,"arcs":[[-1073,1284,1285,-1242,-936]]},{"type":"Polygon","id":23015,"arcs":[[-1120,-1284,1286,1287,1288,-1134]]},{"type":"Polygon","id":55071,"arcs":[[-1167,1289,1290,1291,-1158]]},{"type":"Polygon","id":50001,"arcs":[[-1251,1292,1293,1294,1295,-1205,-1131]]},{"type":"Polygon","id":41039,"arcs":[[-1275,1296,1297,1298,-980,-1133,-1105]]},{"type":"Polygon","id":33003,"arcs":[[-890,888,1299,1300,1301,-1266,-898]]},{"type":"Polygon","id":27013,"arcs":[[-1211,1302,1303,1304,1305,-1253,-1258]]},{"type":"Polygon","id":55057,"arcs":[[1306,1307,1308,1309,-1192,-1154]]},{"type":"Polygon","id":55001,"arcs":[[-1151,1310,1311,1312,-1307,-1153]]},{"type":"Polygon","id":55137,"arcs":[[-1165,1313,1314,1315,-1311,-1150]]},{"type":"Polygon","id":55139,"arcs":[[1316,1317,1318,-1314,-1164,-1196]]},{"type":"Polygon","id":55015,"arcs":[[-1159,-1292,1319,1320,-1317,-1195]]},{"type":"Polygon","id":16023,"arcs":[[-1198,1321,1322,1323,-1070,-1069,-810]]},{"type":"Polygon","id":50017,"arcs":[[-1271,1324,-1293,-1250,-1116]]},{"type":"Polygon","id":36049,"arcs":[[1325,1326,-1278,-1018,1327]]},{"type":"Polygon","id":46085,"arcs":[[1328,1329,1330,1331,1332,-1108,-1204,-1060,1333]]},{"type":"Polygon","id":27117,"arcs":[[-1182,1334,1335,1336,-1220,-1179]]},{"type":"Polygon","id":27101,"arcs":[[-1147,1337,1338,1339,-1335,-1181]]},{"type":"Polygon","id":46073,"arcs":[[-1177,1340,1341,1342,1343,-1063]]},{"type":"Polygon","id":27147,"arcs":[[1344,1345,1346,1347,-1214]]},{"type":"Polygon","id":27039,"arcs":[[1348,1349,-1345,-1213,-1143]]},{"type":"Polygon","id":46101,"arcs":[[-1337,1350,1351,-1221]]},{"type":"Polygon","id":27161,"arcs":[[-1348,1352,1353,-1303,-1210,-1215]]},{"type":"Polygon","id":46017,"arcs":[[-1344,1354,-1334,-1059,-1064]]},{"type":"Polygon","id":46111,"arcs":[[-1219,1355,1356,1357,1358,-1341,-1176]]},{"type":"Polygon","id":27109,"arcs":[[-1260,1359,1360,1361,-1349,-1142]]},{"type":"Polygon","id":27033,"arcs":[[-1255,1362,1363,1364,-1338,-1146]]},{"type":"Polygon","id":46079,"arcs":[[-1222,-1352,1365,1366,1367,-1217]]},{"type":"Polygon","id":46097,"arcs":[[-1368,1368,1369,-1356,-1218]]},{"type":"Polygon","id":27169,"arcs":[[-1186,-1191,1370,1371,1372,-1360,-1259]]},{"type":"Polygon","id":56045,"arcs":[[-1184,-1249,1373,1374,1375,-1025,-1034]]},{"type":"Polygon","id":26105,"arcs":[[1376,1377,1378,-1225]]},{"type":"Polygon","id":23005,"arcs":[[-1257,1379,1380,1381,1382,1383,-887]]},{"type":"Polygon","id":46075,"arcs":[[-1333,1384,1385,-1386,1386,-1127,-1109]]},{"type":"Polygon","id":56043,"arcs":[[-1201,1387,1388,1389,-1011,-1023]]},{"type":"MultiPolygon","id":23023,"arcs":[[[-1382,1390]],[[-1288,1391]],[[1392,-1380,-1256,-1136]]]},{"type":"Polygon","id":26085,"arcs":[[-1224,-1229,1393,1394,-1377]]},{"type":"Polygon","id":26133,"arcs":[[-1236,1395,1396,-1394,-1228]]},{"type":"Polygon","id":26035,"arcs":[[-1233,1397,1398,-1396,-1235]]},{"type":"Polygon","id":26051,"arcs":[[1399,1400,1401,-1398,-1232,-1241]]},{"type":"Polygon","id":55081,"arcs":[[-1310,1402,1403,-1193]]},{"type":"Polygon","id":16075,"arcs":[[-1245,1404,-1261,-1091]]},{"type":"Polygon","id":36041,"arcs":[[1405,1406,1407,1408,-1016,-1031,-1208]]},{"type":"Polygon","id":27165,"arcs":[[-1306,1409,1410,-1363,-1254]]},{"type":"Polygon","id":16039,"arcs":[[-1072,1411,1412,1413,1414,1415,1416,-1285]]},{"type":"Polygon","id":36043,"arcs":[[-1409,1417,1418,1419,1420,-1328,-1017]]},{"type":"Polygon","id":55063,"arcs":[[-1194,-1404,1421,1422,-1371,-1190,-1189]]},{"type":"Polygon","id":56017,"arcs":[[-1390,1423,-1012]]},{"type":"Polygon","id":16051,"arcs":[[-1125,1424,1425,1426,-1322,-1197]]},{"type":"Polygon","id":41025,"arcs":[[-1265,1427,1428,1429,-1272,-1202,-1036]]},{"type":"Polygon","id":56013,"arcs":[[-1424,-1389,1430,1431,1432,1433,-1170,-1013]]},{"type":"Polygon","id":26017,"arcs":[[1434,1435,1436,1437,-1401,1438]]},{"type":"Polygon","id":46071,"arcs":[[-1387,1385,1439,1440,1441,-1246,-1128]]},{"type":"Polygon","id":16013,"arcs":[[-1324,1442,1443,1444,1445,1446,1447,-1412,-1071]]},{"type":"Polygon","id":16081,"arcs":[[-1174,1448,1449,-1123]]},{"type":"Polygon","id":55047,"arcs":[[-1319,1450,1451,1452,1453,-1315]]},{"type":"Polygon","id":55077,"arcs":[[-1454,1454,-1312,-1316]]},{"type":"Polygon","id":50027,"arcs":[[-1270,1455,1456,1457,1458,-1294,-1325]]},{"type":"Polygon","id":41019,"arcs":[[1459,1460,1461,1462,1463,1464,-1298]]},{"type":"Polygon","id":55039,"arcs":[[1465,1466,1467,-1451,-1318,-1321]]},{"type":"Polygon","id":46003,"arcs":[[-1359,1468,1469,1470,1471,-1342]]},{"type":"Polygon","id":46015,"arcs":[[-1472,1472,-1329,-1355,-1343]]},{"type":"Polygon","id":16065,"arcs":[[-1450,1473,-1425,-1124]]},{"type":"Polygon","id":55117,"arcs":[[1474,1475,1476,-1466,-1320,-1291]]},{"type":"Polygon","id":16027,"arcs":[[-1244,1477,1478,-1262,-1405]]},{"type":"Polygon","id":46095,"arcs":[[-1332,1479,1480,-1440,-1386,-1385]]},{"type":"Polygon","id":16025,"arcs":[[1481,1482,-1413,-1448]]},{"type":"Polygon","id":50021,"arcs":[[1483,1484,-1295,-1459]]},{"type":"Polygon","id":46033,"arcs":[[1485,1486,1487,-1374,-1248]]},{"type":"Polygon","id":27133,"arcs":[[-1340,1488,1489,1490,-1336]]},{"type":"Polygon","id":27105,"arcs":[[-1365,1491,1492,1493,-1489,-1339]]},{"type":"Polygon","id":27047,"arcs":[[1494,1495,1496,1497,-1353,-1347]]},{"type":"Polygon","id":27099,"arcs":[[-1362,1498,1499,1500,1501,-1495,-1346,-1350]]},{"type":"Polygon","id":27055,"arcs":[[-1423,1502,1503,1504,1505,-1372]]},{"type":"Polygon","id":46035,"arcs":[[1506,1507,1508,-1469,-1358]]},{"type":"Polygon","id":46061,"arcs":[[-1370,1509,1510,-1507,-1357]]},{"type":"Polygon","id":27045,"arcs":[[-1373,-1506,1511,1512,-1499,-1361]]},{"type":"Polygon","id":27063,"arcs":[[-1411,1513,1514,1515,1516,-1492,-1364]]},{"type":"Polygon","id":27043,"arcs":[[-1354,-1498,1517,1518,1519,-1304]]},{"type":"Polygon","id":46099,"arcs":[[1520,1521,1522,1523,-1366,-1351,-1491]]},{"type":"Polygon","id":27091,"arcs":[[-1305,-1520,1524,1525,-1514,-1410]]},{"type":"Polygon","id":46087,"arcs":[[-1367,-1524,1526,1527,-1510,-1369]]},{"type":"Polygon","id":26111,"arcs":[[-1438,1528,1529,1530,-1402]]},{"type":"Polygon","id":26127,"arcs":[[1531,1532,1533,-1378]]},{"type":"Polygon","id":26073,"arcs":[[-1531,1534,1535,1536,-1399]]},{"type":"Polygon","id":23031,"arcs":[[1537,1538,-1300,-889,-888,-1384]]},{"type":"Polygon","id":26107,"arcs":[[-1537,1539,1540,-1397]]},{"type":"Polygon","id":26123,"arcs":[[-1541,1541,1542,1543,-1532,-1395]]},{"type":"Polygon","id":36115,"arcs":[[-1485,1544,1545,1546,1547,-1206,-1296]]},{"type":"Polygon","id":16001,"arcs":[[-1286,-1417,1548,-1478,-1243]]},{"type":"Polygon","id":36113,"arcs":[[1549,-1406,-1207,-1548]]},{"type":"Polygon","id":46123,"arcs":[[1550,1551,1552,-1480,-1331]]},{"type":"Polygon","id":33001,"arcs":[[1553,1554,-1267,-1302]]},{"type":"Polygon","id":26157,"arcs":[[1555,1556,1557,1558,1559,-1436,1560,1561]]},{"type":"Polygon","id":55123,"arcs":[[1562,1563,1564,1565,-1503,-1422,-1403,-1309]]},{"type":"Polygon","id":36075,"arcs":[[-1327,1566,1567,1568,1569,1570,-1279]]},{"type":"Polygon","id":46113,"arcs":[[1571,1572,1573,1574,-1486,-1247,-1442]]},{"type":"Polygon","id":26151,"arcs":[[1575,1576,-1557,1577,1578]]},{"type":"Polygon","id":16073,"arcs":[[-1549,-1416,1579,1580,1581,-1263,-1479]]},{"type":"Polygon","id":55021,"arcs":[[1582,1583,1584,-1313,-1455,-1453]]},{"type":"Polygon","id":55111,"arcs":[[-1585,1585,1586,1587,-1563,-1308]]},{"type":"Polygon","id":55027,"arcs":[[1588,1589,1590,1591,-1583,-1452,-1468]]},{"type":"Polygon","id":16019,"arcs":[[-1474,-1449,-1173,1592,1593,1594,-1426]]},{"type":"Polygon","id":16011,"arcs":[[1595,1596,1597,-1443,-1323,-1427,-1595]]},{"type":"Polygon","id":41035,"arcs":[[1598,1599,1600,1601,-1460,-1297,-1274]]},{"type":"Polygon","id":41037,"arcs":[[1602,1603,-1599,-1273,-1430]]},{"type":"Polygon","id":36065,"arcs":[[1604,1605,-1567,-1326,-1421]]},{"type":"Polygon","id":33013,"arcs":[[-1555,1606,1607,1608,1609,-1268]]},{"type":"Polygon","id":41011,"arcs":[[1610,1611,-1464]]},{"type":"Polygon","id":33019,"arcs":[[-1610,1612,1613,1614,-1456,-1269]]},{"type":"Polygon","id":33017,"arcs":[[-1539,1615,1616,-1607,-1554,-1301]]},{"type":"Polygon","id":26145,"arcs":[[-1560,1617,1618,1619,-1529,-1437]]},{"type":"Polygon","id":55103,"arcs":[[1620,1621,1622,-1564,-1588]]},{"type":"Polygon","id":55089,"arcs":[[1623,1624,1625,-1476]]},{"type":"Polygon","id":55131,"arcs":[[-1477,-1626,1626,-1589,-1467]]},{"type":"Polygon","id":19189,"arcs":[[1627,1628,1629,-1518,-1497]]},{"type":"Polygon","id":19109,"arcs":[[1630,1631,1632,-1525,-1519,-1630,1633]]},{"type":"Polygon","id":19059,"arcs":[[1634,1635,-1516,1636]]},{"type":"Polygon","id":19063,"arcs":[[1637,-1637,-1515,-1526,-1633]]},{"type":"Polygon","id":19195,"arcs":[[1638,-1628,-1496,-1502,1639]]},{"type":"Polygon","id":19143,"arcs":[[1640,1641,-1493,-1517,-1636]]},{"type":"Polygon","id":56027,"arcs":[[-1488,1642,1643,1644,1645,1646,-1375]]},{"type":"Polygon","id":19131,"arcs":[[1647,1648,-1640,-1501,1649]]},{"type":"Polygon","id":19119,"arcs":[[1650,1651,-1521,-1490,-1494,-1642]]},{"type":"Polygon","id":19089,"arcs":[[1652,1653,-1650,-1500,-1513]]},{"type":"Polygon","id":19005,"arcs":[[-1566,1654,1655,1656,-1504]]},{"type":"Polygon","id":19191,"arcs":[[1657,1658,-1653,-1512,-1505,-1657]]},{"type":"Polygon","id":46083,"arcs":[[-1652,1659,1660,1661,1662,-1522]]},{"type":"Polygon","id":56009,"arcs":[[-1647,1663,1664,1665,1666,-1199,-1026,-1376]]},{"type":"Polygon","id":46023,"arcs":[[-1471,1667,1668,1669,1670,1671,1672,-1473]]},{"type":"Polygon","id":46125,"arcs":[[-1523,-1663,1673,1674,1675,-1527]]},{"type":"Polygon","id":46067,"arcs":[[-1528,-1676,1676,1677,-1669,1678,-1508,-1511]]},{"type":"Polygon","id":56025,"arcs":[[-1200,-1667,1679,-1431,-1388]]},{"type":"Polygon","id":46043,"arcs":[[-1509,-1679,-1668,-1470]]},{"type":"Polygon","id":46053,"arcs":[[-1673,1680,1681,-1551,-1330]]},{"type":"Polygon","id":46047,"arcs":[[-1575,1682,1683,-1643,-1487]]},{"type":"Polygon","id":26121,"arcs":[[-1544,1684,1685,1686,-1533]]},{"type":"Polygon","id":26117,"arcs":[[-1536,1687,1688,1689,-1542,-1540]]},{"type":"Polygon","id":56035,"arcs":[[1690,1691,-1171,-1434]]},{"type":"Polygon","id":26057,"arcs":[[-1530,-1620,1692,1693,-1688,-1535]]},{"type":"Polygon","id":55023,"arcs":[[-1623,1694,1695,-1655,-1565]]},{"type":"Polygon","id":36011,"arcs":[[1696,1697,1698,1699,1700,1701,-1570]]},{"type":"Polygon","id":36091,"arcs":[[-1547,1702,1703,1704,1705,1706,-1407,-1550]]},{"type":"Polygon","id":46007,"arcs":[[1707,1708,-1572,-1441]]},{"type":"Polygon","id":46121,"arcs":[[-1553,1709,-1708,-1481]]},{"type":"Polygon","id":36073,"arcs":[[1710,1711,1712,1713]]},{"type":"Polygon","id":36063,"arcs":[[-1713,1714,1715,1716]]},{"type":"Polygon","id":36055,"arcs":[[1717,1718,1719,1720,-1711,1721]]},{"type":"Polygon","id":36117,"arcs":[[1722,1723,-1718,1724,-1701]]},{"type":"Polygon","id":26087,"arcs":[[1725,1726,1727,1728,-1558,-1577]]},{"type":"Polygon","id":56023,"arcs":[[-1692,1729,1730,1731,1732,1733,-1593,-1172]]},{"type":"Polygon","id":50003,"arcs":[[-1458,1734,1735,1736,1737,-1545,-1484]]},{"type":"Polygon","id":55025,"arcs":[[-1592,1738,1739,1740,1741,-1586,-1584]]},{"type":"Polygon","id":26081,"arcs":[[1742,1743,1744,1745,-1685,-1543,-1690]]},{"type":"Polygon","id":36035,"arcs":[[-1707,1746,-1418,-1408]]},{"type":"Polygon","id":33015,"arcs":[[1747,1748,1749,-1608,-1617]]},{"type":"Polygon","id":36067,"arcs":[[1750,1751,-1697,-1569]]},{"type":"Polygon","id":50025,"arcs":[[-1615,1752,1753,-1735,-1457]]},{"type":"Polygon","id":19167,"arcs":[[1754,1755,1756,-1660,-1651]]},{"type":"Polygon","id":19141,"arcs":[[1757,1758,-1755,-1641]]},{"type":"Polygon","id":19033,"arcs":[[-1649,1759,1760,1761,-1639]]},{"type":"Polygon","id":19081,"arcs":[[-1762,1762,-1634,-1629]]},{"type":"Polygon","id":19147,"arcs":[[-1632,1763,1764,-1638]]},{"type":"Polygon","id":19041,"arcs":[[-1765,1765,-1758,-1635]]},{"type":"Polygon","id":26049,"arcs":[[-1729,1766,1767,1768,-1618,-1559]]},{"type":"Polygon","id":19037,"arcs":[[-1659,1769,1770,1771,-1654]]},{"type":"Polygon","id":19067,"arcs":[[-1772,1772,-1760,-1648]]},{"type":"Polygon","id":55049,"arcs":[[-1587,-1742,1773,1774,1775,-1621]]},{"type":"Polygon","id":55043,"arcs":[[-1776,1776,1777,1778,1779,-1695,-1622]]},{"type":"Polygon","id":33011,"arcs":[[-1750,1780,1781,1782,1783,-1613,-1609]]},{"type":"Polygon","id":26139,"arcs":[[-1746,1784,1785,-1686]]},{"type":"Polygon","id":16063,"arcs":[[1786,1787,1788,-1482,-1447]]},{"type":"Polygon","id":16047,"arcs":[[-1789,1789,1790,1791,-1414,-1483]]},{"type":"Polygon","id":55055,"arcs":[[1792,1793,1794,-1739,-1591]]},{"type":"Polygon","id":16067,"arcs":[[1795,1796,-1787,-1446]]},{"type":"Polygon","id":55133,"arcs":[[-1627,1797,1798,1799,-1793,-1590]]},{"type":"Polygon","id":55079,"arcs":[[1800,1801,-1798,-1625]]},{"type":"Polygon","id":36053,"arcs":[[-1606,1802,1803,1804,-1751,-1568]]},{"type":"Polygon","id":33005,"arcs":[[-1784,1805,1806,-1753,-1614]]},{"type":"Polygon","id":46135,"arcs":[[1807,1808,1809,1810,-1677,-1675]]},{"type":"Polygon","id":46009,"arcs":[[-1811,1811,-1670,-1678]]},{"type":"Polygon","id":26155,"arcs":[[-1769,1812,1813,1814,-1693,-1619]]},{"type":"Polygon","id":36037,"arcs":[[1815,1816,1817,-1715,-1712,-1721]]},{"type":"Polygon","id":26067,"arcs":[[1818,1819,1820,-1743,-1689]]},{"type":"Polygon","id":26037,"arcs":[[-1815,1821,1822,-1819,-1694]]},{"type":"Polygon","id":16077,"arcs":[[-1598,1823,1824,1825,-1444]]},{"type":"MultiPolygon","id":36029,"arcs":[[[1826]],[[-1818,1827,1828,1829,1830,1831,-1716]]]},{"type":"Polygon","id":46127,"arcs":[[-1757,1832,1833,1834,1835,1836,-1661]]},{"type":"Polygon","id":46027,"arcs":[[-1837,1837,1838,-1808,-1674,-1662]]},{"type":"Polygon","id":19065,"arcs":[[1839,1840,1841,-1770,-1658]]},{"type":"Polygon","id":19043,"arcs":[[-1696,-1780,1842,1843,-1840,-1656]]},{"type":"Polygon","id":36057,"arcs":[[-1706,1844,1845,1846,-1419,-1747]]},{"type":"Polygon","id":36069,"arcs":[[1847,1848,1849,1850,-1719,-1724]]},{"type":"Polygon","id":16005,"arcs":[[1851,1852,1853,-1824,-1597]]},{"type":"Polygon","id":16029,"arcs":[[-1594,-1734,1854,1855,-1852,-1596]]},{"type":"Polygon","id":36099,"arcs":[[1856,1857,1858,-1848,-1723,-1700]]},{"type":"Polygon","id":31165,"arcs":[[1859,1860,1861,-1644,-1684,1862]]},{"type":"Polygon","id":31161,"arcs":[[1863,1864,1865,1866,1867,-1573,1868]]},{"type":"Polygon","id":31045,"arcs":[[1869,-1863,-1683,-1574,-1868]]},{"type":"Polygon","id":31015,"arcs":[[1870,1871,1872,-1681,-1672]]},{"type":"Polygon","id":31103,"arcs":[[-1873,1873,1874,1875,-1552,-1682]]},{"type":"Polygon","id":31031,"arcs":[[-1710,-1876,1876,1877,1878,1879,1880,-1869,-1709]]},{"type":"Polygon","id":41029,"arcs":[[-1602,1881,1882,-1461]]},{"type":"Polygon","id":36051,"arcs":[[-1851,1883,1884,1885,-1816,-1720]]},{"type":"Polygon","id":36083,"arcs":[[-1738,1886,1887,1888,-1703,-1546]]},{"type":"Polygon","id":36093,"arcs":[[1889,1890,-1845,-1705]]},{"type":"Polygon","id":41015,"arcs":[[-1463,1891,1892,1893,-1611]]},{"type":"Polygon","id":16083,"arcs":[[-1791,1894,1895,1896,-1580,-1415,-1792]]},{"type":"Polygon","id":19149,"arcs":[[1897,1898,-1833,-1756]]},{"type":"Polygon","id":19021,"arcs":[[1899,1900,1901,-1766]]},{"type":"Polygon","id":19035,"arcs":[[-1902,1902,1903,-1898,-1759]]},{"type":"Polygon","id":19151,"arcs":[[1904,1905,1906,-1900,-1764]]},{"type":"Polygon","id":19197,"arcs":[[1907,1908,1909,1910,-1763]]},{"type":"Polygon","id":19091,"arcs":[[-1911,1911,-1905,-1631]]},{"type":"Polygon","id":19069,"arcs":[[1912,1913,-1908,-1761]]},{"type":"Polygon","id":19023,"arcs":[[1914,1915,1916,-1913,-1773]]},{"type":"Polygon","id":19017,"arcs":[[-1842,1917,-1915,-1771]]},{"type":"Polygon","id":36077,"arcs":[[-1847,1918,1919,1920,-1803,-1605,-1420]]},{"type":"Polygon","id":31089,"arcs":[[1921,1922,1923,1924,1925,1926,-1872]]},{"type":"Polygon","id":26099,"arcs":[[1927,1928,1929,-1727,1930]]},{"type":"Polygon","id":26125,"arcs":[[1931,1932,1933,-1767,-1728,-1930]]},{"type":"Polygon","id":25009,"arcs":[[1934,1935,1936,-1781,-1749]]},{"type":"Polygon","id":31107,"arcs":[[-1812,-1810,1937,1938,1939,-1922,-1871,-1671]]},{"type":"Polygon","id":31027,"arcs":[[-1839,1940,1941,1942,-1938,-1809]]},{"type":"Polygon","id":36121,"arcs":[[-1886,1943,1944,-1828,-1817]]},{"type":"Polygon","id":55045,"arcs":[[1945,1946,1947,1948,-1774,-1741]]},{"type":"Polygon","id":16053,"arcs":[[-1797,1949,-1895,-1790,-1788]]},{"type":"Polygon","id":55105,"arcs":[[-1795,1950,1951,1952,-1946,-1740]]},{"type":"Polygon","id":31017,"arcs":[[1953,1954,1955,-1877,-1875]]},{"type":"Polygon","id":55127,"arcs":[[-1800,1956,1957,1958,1959,-1951,-1794]]},{"type":"Polygon","id":55101,"arcs":[[1960,1961,-1957,-1799,-1802]]},{"type":"Polygon","id":36095,"arcs":[[-1891,1962,1963,1964,-1919,-1846]]},{"type":"Polygon","id":36001,"arcs":[[-1889,1965,-1963,-1890,-1704]]},{"type":"Polygon","id":55065,"arcs":[[-1949,1966,1967,-1777,-1775]]},{"type":"Polygon","id":31149,"arcs":[[1968,-1954,-1874,-1927]]},{"type":"Polygon","id":36023,"arcs":[[1969,1970,-1698,-1752,-1805,1971,1972]]},{"type":"Polygon","id":41033,"arcs":[[-1462,-1883,1973,1974,-1892]]},{"type":"Polygon","id":26093,"arcs":[[-1934,1975,1976,1977,-1813,-1768]]},{"type":"Polygon","id":26065,"arcs":[[-1978,1978,1979,-1822,-1814]]},{"type":"Polygon","id":26045,"arcs":[[-1823,-1980,1980,1981,1982,-1820]]},{"type":"Polygon","id":26015,"arcs":[[-1983,1983,1984,1985,-1744,-1821]]},{"type":"Polygon","id":26005,"arcs":[[-1745,-1986,1986,1987,1988,-1785]]},{"type":"Polygon","id":36123,"arcs":[[1989,1990,-1849,-1859]]},{"type":"Polygon","id":31051,"arcs":[[-1836,1991,1992,1993,-1941,-1838]]},{"type":"Polygon","id":25003,"arcs":[[1994,1995,1996,1997,1998,1999,-1887,-1737]]},{"type":"Polygon","id":36017,"arcs":[[-1921,2000,2001,2002,-1972,-1804]]},{"type":"Polygon","id":25011,"arcs":[[2003,-1995,-1736,-1754,-1807,2004]]},{"type":"Polygon","id":25017,"arcs":[[2005,2006,2007,2008,2009,2010,2011,2012,2013,-1782,-1937]]},{"type":"Polygon","id":25027,"arcs":[[-1783,-2014,2014,2015,2016,2017,2018,2019,-2005,-1806]]},{"type":"Polygon","id":16031,"arcs":[[-1826,2020,2021,2022,-1896,-1950,-1796,-1445]]},{"type":"Polygon","id":19061,"arcs":[[2023,2024,2025,2026,-1843,-1779]]},{"type":"Polygon","id":55059,"arcs":[[2027,2028,2029,-1958,-1962]]},{"type":"Polygon","id":19055,"arcs":[[-2027,2030,2031,2032,-1844]]},{"type":"Polygon","id":19187,"arcs":[[-1910,2033,2034,2035,2036,-1906,-1912]]},{"type":"Polygon","id":19019,"arcs":[[-2033,2037,2038,2039,-1841]]},{"type":"Polygon","id":19013,"arcs":[[-2040,2040,2041,2042,-1916,-1918]]},{"type":"Polygon","id":36109,"arcs":[[-1971,2043,2044,2045,-1857,-1699]]},{"type":"Polygon","id":56015,"arcs":[[-1862,2046,2047,2048,2049,-1645]]},{"type":"Polygon","id":56031,"arcs":[[-2050,2050,2051,-1664,-1646]]},{"type":"Polygon","id":16007,"arcs":[[-1733,2052,2053,-1855]]},{"type":"Polygon","id":36101,"arcs":[[-1850,-1991,2054,2055,2056,2057,2058,-1884]]},{"type":"Polygon","id":36013,"arcs":[[2059,2060,2061,2062,-1831]]},{"type":"Polygon","id":19193,"arcs":[[-1904,2063,2064,2065,2066,-1834,-1899]]},{"type":"Polygon","id":19161,"arcs":[[2067,2068,2069,2070,-1901]]},{"type":"Polygon","id":19093,"arcs":[[-2071,2071,-2064,-1903]]},{"type":"Polygon","id":19025,"arcs":[[-2037,2072,2073,-2068,-1907]]},{"type":"Polygon","id":19079,"arcs":[[2074,2075,2076,-2034,-1909]]},{"type":"Polygon","id":19083,"arcs":[[-1914,2077,2078,2079,-2075]]},{"type":"Polygon","id":19075,"arcs":[[-2043,2080,2081,-2078,-1917]]},{"type":"Polygon","id":25015,"arcs":[[-2020,2082,-1996,-2004]]},{"type":"Polygon","id":36097,"arcs":[[-2046,2083,-2055,-1990,-1858]]},{"type":"Polygon","id":36009,"arcs":[[-1829,-1945,2084,2085,2086,-2060,-1830]]},{"type":"Polygon","id":31043,"arcs":[[-1835,-2067,2087,-1992]]},{"type":"Polygon","id":36003,"arcs":[[-1885,-2059,2088,2089,-2085,-1944]]},{"type":"Polygon","id":36025,"arcs":[[-1965,2090,2091,2092,2093,2094,-2001,-1920]]},{"type":"Polygon","id":17085,"arcs":[[-1968,2095,2096,2097,-2024,-1778]]},{"type":"Polygon","id":36021,"arcs":[[2098,2099,2100,-1888,-2000]]},{"type":"Polygon","id":17177,"arcs":[[2101,-2096,-1967,-1948,2102,2103]]},{"type":"Polygon","id":17201,"arcs":[[2104,2105,-2103,-1947,-1953]]},{"type":"Polygon","id":16071,"arcs":[[-1854,2106,2107,2108,-2021,-1825]]},{"type":"Polygon","id":17111,"arcs":[[2109,2110,2111,2112,2113,-1959,-2030]]},{"type":"Polygon","id":17007,"arcs":[[-1960,-2114,2114,-2105,-1952]]},{"type":"Polygon","id":17097,"arcs":[[2115,-2110,-2029,2116]]},{"type":"Polygon","id":36039,"arcs":[[2117,-2091,-1964,-1966,-2101]]},{"type":"MultiPolygon","id":25025,"arcs":[[[2118,2119,-2012,2120,-2010]]]},{"type":"Polygon","id":31139,"arcs":[[2121,2122,2123,-1939,-1943]]},{"type":"Polygon","id":31013,"arcs":[[2124,2125,-1860,-1870,-1867]]},{"type":"Polygon","id":31003,"arcs":[[-2124,2126,2127,2128,-1923,-1940]]},{"type":"Polygon","id":26161,"arcs":[[2129,2130,2131,-1976,-1933,2132]]},{"type":"Polygon","id":56007,"arcs":[[-1666,2133,2134,2135,2136,2137,-1432,-1680]]},{"type":"Polygon","id":56001,"arcs":[[-2052,2138,2139,2140,-2134,-1665]]},{"type":"Polygon","id":16041,"arcs":[[-2054,2141,-2107,-1853,-1856]]},{"type":"Polygon","id":26075,"arcs":[[-1977,-2132,2142,2143,2144,-1981,-1979]]},{"type":"Polygon","id":26025,"arcs":[[-2145,2145,2146,2147,-1984,-1982]]},{"type":"Polygon","id":26159,"arcs":[[2148,2149,2150,2151,-1988]]},{"type":"Polygon","id":26077,"arcs":[[-2148,2152,-2149,-1987,-1985]]},{"type":"Polygon","id":36007,"arcs":[[-2002,-2095,2153,2154,2155,-1973,-2003]]},{"type":"Polygon","id":36107,"arcs":[[-2156,2156,2157,2158,-2044,-1970]]},{"type":"Polygon","id":19097,"arcs":[[-2098,2159,2160,2161,-2025]]},{"type":"Polygon","id":31179,"arcs":[[-1994,2162,2163,2164,-2122,-1942]]},{"type":"Polygon","id":25021,"arcs":[[-2120,2165,2166,2167,2168,-2015,-2013]]},{"type":"Polygon","id":25013,"arcs":[[-2019,2169,2170,2171,-1997,-2083]]},{"type":"Polygon","id":25023,"arcs":[[2172,2173,2174,2175,2176,-2167,2177]]},{"type":"Polygon","id":19011,"arcs":[[2178,2179,2180,-2041,-2039]]},{"type":"Polygon","id":19113,"arcs":[[-2032,2181,2182,2183,-2179,-2038]]},{"type":"Polygon","id":19171,"arcs":[[-2181,2184,2185,-2081,-2042]]},{"type":"Polygon","id":19105,"arcs":[[-2026,-2162,2186,2187,-2182,-2031]]},{"type":"Polygon","id":36015,"arcs":[[-2045,-2159,2188,2189,-2056,-2084]]},{"type":"Polygon","id":31173,"arcs":[[-2066,2190,2191,2192,-2163,-1993,-2088]]},{"type":"Polygon","id":56037,"arcs":[[-1433,-2138,2193,2194,2195,2196,-1730,-1691]]},{"type":"Polygon","id":42049,"arcs":[[2197,2198,2199,2200,-2062]]},{"type":"Polygon","id":26021,"arcs":[[2201,2202,2203,2204,-2151]]},{"type":"Polygon","id":19133,"arcs":[[2205,2206,2207,-2191,-2065]]},{"type":"Polygon","id":19127,"arcs":[[-2186,2208,2209,-2079,-2082]]},{"type":"Polygon","id":19027,"arcs":[[-2074,2210,2211,2212,2213,-2069]]},{"type":"Polygon","id":19047,"arcs":[[-2072,-2070,-2214,2214,2215,-2206]]},{"type":"Polygon","id":19015,"arcs":[[-2077,2216,2217,2218,2219,-2035]]},{"type":"Polygon","id":19073,"arcs":[[-2220,2220,2221,-2211,-2073,-2036]]},{"type":"Polygon","id":19169,"arcs":[[-2080,-2210,2222,2223,-2217,-2076]]},{"type":"Polygon","id":17141,"arcs":[[2224,2225,2226,2227,-2104,-2106]]},{"type":"Polygon","id":17015,"arcs":[[-2228,2228,2229,-2160,-2097,-2102]]},{"type":"Polygon","id":36111,"arcs":[[-2100,2230,2231,2232,-2092,-2118]]},{"type":"Polygon","id":17031,"arcs":[[-2116,2233,2234,2235,2236,2237,2238,-2111]]},{"type":"Polygon","id":17037,"arcs":[[2239,2240,2241,2242,-2225,-2115,-2113]]},{"type":"Polygon","id":17089,"arcs":[[-2239,2243,2244,-2240,-2112]]},{"type":"Polygon","id":31075,"arcs":[[2245,2246,2247,-1864,-1881]]},{"type":"Polygon","id":25005,"arcs":[[2248,2249,2250,2251,2252,-2168,-2177]]},{"type":"Polygon","id":31091,"arcs":[[2253,2254,2255,-2246,-1880]]},{"type":"Polygon","id":31039,"arcs":[[-2193,2256,2257,2258,2259,-2164]]},{"type":"Polygon","id":31119,"arcs":[[2260,2261,2262,-2127,-2123]]},{"type":"Polygon","id":31167,"arcs":[[-2260,2263,2264,-2261,-2165]]},{"type":"Polygon","id":31171,"arcs":[[2265,2266,2267,-2254,-1879]]},{"type":"Polygon","id":31183,"arcs":[[2268,2269,2270,2271,-1924,-2129]]},{"type":"Polygon","id":31009,"arcs":[[-1878,-1956,2272,2273,2274,-2266]]},{"type":"Polygon","id":31115,"arcs":[[2275,2276,-2273,-1955,-1969,-1926]]},{"type":"Polygon","id":31071,"arcs":[[-2272,2277,2278,-2276,-1925]]},{"type":"Polygon","id":26091,"arcs":[[2279,2280,2281,2282,-2143,-2131]]},{"type":"Polygon","id":36027,"arcs":[[-1999,2283,2284,2285,2286,-2231,-2099]]},{"type":"Polygon","id":25001,"arcs":[[-2175,2287]]},{"type":"Polygon","id":26023,"arcs":[[2288,2289,2290,2291,-2147]]},{"type":"Polygon","id":26059,"arcs":[[-2283,2292,2293,2294,-2289,-2146,-2144]]},{"type":"Polygon","id":26149,"arcs":[[-2292,2295,2296,2297,-2153]]},{"type":"Polygon","id":26027,"arcs":[[-2298,2298,2299,-2202,-2150]]},{"type":"Polygon","id":9005,"arcs":[[-2172,2300,2301,2302,-2284,-1998]]},{"type":"Polygon","id":31021,"arcs":[[2303,2304,2305,-2257,-2192,-2208]]},{"type":"Polygon","id":9003,"arcs":[[2306,2307,2308,2309,-2301,-2171]]},{"type":"Polygon","id":9013,"arcs":[[-2018,2310,2311,-2307,-2170]]},{"type":"Polygon","id":19045,"arcs":[[-2230,2312,2313,2314,2315,2316,-2187,-2161]]},{"type":"Polygon","id":9015,"arcs":[[2317,2318,2319,-2311,-2017]]},{"type":"Polygon","id":44007,"arcs":[[-2253,2320,2321,2322,-2318,-2016,-2169]]},{"type":"Polygon","id":36105,"arcs":[[2323,2324,2325,-2093,-2233]]},{"type":"Polygon","id":6093,"arcs":[[-1601,2326,2327,2328,2329,2330,-1974,-1882]]},{"type":"Polygon","id":31069,"arcs":[[-2248,2331,2332,2333,2334,2335,-1865]]},{"type":"Polygon","id":31123,"arcs":[[-2336,2336,2337,2338,-2125,-1866]]},{"type":"Polygon","id":49005,"arcs":[[2339,2340,2341,-2108,-2142]]},{"type":"Polygon","id":31157,"arcs":[[-2339,2342,-2047,-1861,-2126]]},{"type":"Polygon","id":49033,"arcs":[[-1732,2343,2344,2345,2346,-2340,-2053]]},{"type":"Polygon","id":42015,"arcs":[[-2189,-2158,2347,2348,2349,2350,2351]]},{"type":"Polygon","id":42117,"arcs":[[-2190,-2352,2352,2353,-2057]]},{"type":"Polygon","id":49003,"arcs":[[2354,2355,2356,-2022,-2109,-2342]]},{"type":"Polygon","id":32013,"arcs":[[2357,2358,2359,-1428,-1264,-1582,2360]]},{"type":"Polygon","id":32007,"arcs":[[-2023,-2357,2361,2362,2363,2364,-2361,-1581,-1897]]},{"type":"Polygon","id":42083,"arcs":[[-2090,2365,2366,2367,2368,-2086]]},{"type":"Polygon","id":42105,"arcs":[[-2058,-2354,2369,2370,2371,-2366,-2089]]},{"type":"Polygon","id":6015,"arcs":[[-2331,2372,2373,-1893,-1975]]},{"type":"Polygon","id":42127,"arcs":[[-2094,-2326,2374,2375,2376,2377,-2154]]},{"type":"Polygon","id":42115,"arcs":[[2378,2379,-2348,-2157,-2155,-2378]]},{"type":"Polygon","id":42123,"arcs":[[-2369,2380,2381,2382,-2198,-2061,-2087]]},{"type":"Polygon","id":6049,"arcs":[[-1604,2383,2384,2385,-2327,-1600]]},{"type":"Polygon","id":32031,"arcs":[[2386,2387,2388,2389,2390,2391,2392,2393,2394,-2384,-1603,-1429,-2360]]},{"type":"Polygon","id":17043,"arcs":[[2395,2396,-2244,-2238]]},{"type":"Polygon","id":39007,"arcs":[[2397,2398,2399,2400,2401,-2200]]},{"type":"Polygon","id":19031,"arcs":[[-2188,-2317,2402,2403,2404,-2183]]},{"type":"Polygon","id":17195,"arcs":[[-2227,2405,2406,2407,2408,-2313,-2229]]},{"type":"Polygon","id":31011,"arcs":[[-2263,2409,2410,2411,-2269,-2128]]},{"type":"Polygon","id":17103,"arcs":[[-2243,2412,2413,-2406,-2226]]},{"type":"Polygon","id":19085,"arcs":[[-2216,2414,2415,2416,-2304,-2207]]},{"type":"Polygon","id":19095,"arcs":[[2417,2418,2419,2420,-2180]]},{"type":"Polygon","id":19049,"arcs":[[2421,2422,2423,-2221,-2219]]},{"type":"Polygon","id":19165,"arcs":[[2424,2425,2426,-2415,-2215]]},{"type":"Polygon","id":19009,"arcs":[[2427,2428,-2425,-2213]]},{"type":"Polygon","id":19157,"arcs":[[-2421,2429,2430,2431,-2185]]},{"type":"Polygon","id":19153,"arcs":[[-2224,2432,2433,2434,-2422,-2218]]},{"type":"Polygon","id":19099,"arcs":[[-2209,-2432,2435,2436,-2433,-2223]]},{"type":"Polygon","id":19077,"arcs":[[-2424,2437,-2428,-2212,-2222]]},{"type":"Polygon","id":19103,"arcs":[[-2405,2438,2439,2440,-2418,-2184]]},{"type":"Polygon","id":39085,"arcs":[[2441,2442,2443,-2401]]},{"type":"Polygon","id":42039,"arcs":[[-2383,2444,2445,2446,-2398,-2199]]},{"type":"Polygon","id":17161,"arcs":[[2447,2448,2449,2450,2451,-2314,-2409]]},{"type":"Polygon","id":44001,"arcs":[[2452,-2321,-2252]]},{"type":"Polygon","id":19163,"arcs":[[-2452,2453,-2403,-2316,-2315]]},{"type":"Polygon","id":44003,"arcs":[[2454,2455,2456,-2319,-2323]]},{"type":"Polygon","id":18039,"arcs":[[2457,2458,2459,2460,2461,-2299,-2297]]},{"type":"Polygon","id":18141,"arcs":[[2462,2463,2464,-2203,-2300,-2462]]},{"type":"Polygon","id":18091,"arcs":[[2465,2466,2467,-2204,-2465]]},{"type":"Polygon","id":18151,"arcs":[[2468,2469,-2290,-2295,2470]]},{"type":"Polygon","id":18087,"arcs":[[2471,-2458,-2296,-2291,-2470]]},{"type":"Polygon","id":31037,"arcs":[[-2259,2472,2473,2474,-2264]]},{"type":"Polygon","id":31141,"arcs":[[-2475,2475,2476,2477,2478,-2410,-2262,-2265]]},{"type":"Polygon","id":31053,"arcs":[[-2306,2479,2480,2481,2482,-2473,-2258]]},{"type":"Polygon","id":31117,"arcs":[[-2268,2483,2484,2485,2486,-2255]]},{"type":"Polygon","id":31005,"arcs":[[-2487,2487,-2332,-2247,-2256]]},{"type":"Polygon","id":31077,"arcs":[[2488,2489,2490,2491,-2270,-2412]]},{"type":"Polygon","id":31041,"arcs":[[-2279,2492,2493,2494,2495,2496,2497,-2274,-2277]]},{"type":"Polygon","id":31113,"arcs":[[-2275,-2498,2498,-2484,-2267]]},{"type":"Polygon","id":31175,"arcs":[[-2271,-2492,2499,-2493,-2278]]},{"type":"Polygon","id":39095,"arcs":[[2500,2501,2502,2503,-2281,2504,2505,2506,2507,2508,2509]]},{"type":"Polygon","id":17197,"arcs":[[-2237,2510,2511,2512,2513,-2396]]},{"type":"Polygon","id":39123,"arcs":[[2514,2515,2516,2517,2518,-2501]]},{"type":"Polygon","id":17093,"arcs":[[-2514,2519,2520,-2241,-2245,-2397]]},{"type":"Polygon","id":39051,"arcs":[[2521,2522,-2293,-2282,-2504]]},{"type":"Polygon","id":39055,"arcs":[[2523,2524,2525,-2442,-2400]]},{"type":"Polygon","id":9011,"arcs":[[-2457,2526,2527,2528,-2308,-2312,-2320]]},{"type":"Polygon","id":18089,"arcs":[[2529,2530,2531,2532,-2511,-2236,2533]]},{"type":"Polygon","id":18127,"arcs":[[2534,-2530,2535,-2467]]},{"type":"Polygon","id":39171,"arcs":[[2536,2537,2538,-2471,-2294,-2523]]},{"type":"Polygon","id":31007,"arcs":[[-2338,2539,2540,2541,-2048,-2343]]},{"type":"Polygon","id":31177,"arcs":[[-2417,2542,2543,-2480,-2305]]},{"type":"MultiPolygon","id":44005,"arcs":[[[2544]],[[2545,-2250]]]},{"type":"Polygon","id":9001,"arcs":[[2546,2547,2548,2549,-2285,-2303]]},{"type":"Polygon","id":56021,"arcs":[[-2049,-2542,2550,2551,2552,-2139,-2051]]},{"type":"Polygon","id":44009,"arcs":[[-2527,-2456,2553]]},{"type":"Polygon","id":42131,"arcs":[[-2380,2554,2555,2556,-2349]]},{"type":"Polygon","id":9007,"arcs":[[-2529,2557,2558,-2309]]},{"type":"Polygon","id":9009,"arcs":[[-2559,2559,2560,2561,-2547,-2302,-2310]]},{"type":"Polygon","id":42069,"arcs":[[-2377,2562,2563,-2555,-2379]]},{"type":"Polygon","id":36071,"arcs":[[-2287,2564,2565,2566,2567,2568,-2324,-2232]]},{"type":"Polygon","id":17099,"arcs":[[-2521,2569,2570,2571,2572,2573,2574,-2413,-2242]]},{"type":"Polygon","id":39035,"arcs":[[-2526,2575,2576,2577,2578,2579,-2443]]},{"type":"Polygon","id":42047,"arcs":[[2580,2581,2582,2583,-2368]]},{"type":"Polygon","id":42053,"arcs":[[-2584,2584,2585,2586,-2381]]},{"type":"Polygon","id":42121,"arcs":[[2587,2588,2589,-2445,-2382,-2587]]},{"type":"Polygon","id":39043,"arcs":[[2590,2591,2592,2593,2594,2595]]},{"type":"Polygon","id":39173,"arcs":[[-2519,2596,2597,2598,2599,-2502]]},{"type":"Polygon","id":42023,"arcs":[[-2372,2600,2601,-2581,-2367]]},{"type":"Polygon","id":42103,"arcs":[[-2569,2602,2603,-2375,-2325]]},{"type":"Polygon","id":19139,"arcs":[[-2404,-2454,-2451,2604,-2439]]},{"type":"Polygon","id":42081,"arcs":[[2605,2606,2607,2608,2609,2610,-2370,-2353,-2351]]},{"type":"Polygon","id":42113,"arcs":[[-2606,-2350,-2557,2611,2612]]},{"type":"Polygon","id":17011,"arcs":[[-2575,2613,2614,2615,2616,-2407,-2414]]},{"type":"Polygon","id":17073,"arcs":[[-2617,2617,2618,2619,-2448,-2408]]},{"type":"Polygon","id":56041,"arcs":[[-2197,2620,-2344,-1731]]},{"type":"Polygon","id":18033,"arcs":[[2621,2622,2623,-2469,-2539]]},{"type":"Polygon","id":18113,"arcs":[[-2624,2624,2625,2626,-2459,-2472]]},{"type":"Polygon","id":31125,"arcs":[[2627,2628,-2489,-2411,-2479]]},{"type":"Polygon","id":36079,"arcs":[[2629,2630,-2565,-2286,-2550,2631]]},{"type":"Polygon","id":25007,"arcs":[[2632]]},{"type":"Polygon","id":39093,"arcs":[[-2579,2633,2634,2635,-2591,2636]]},{"type":"Polygon","id":19183,"arcs":[[2637,2638,2639,2640,-2419,-2441]]},{"type":"Polygon","id":19181,"arcs":[[2641,2642,2643,2644,-2435]]},{"type":"Polygon","id":19107,"arcs":[[-2641,2645,2646,2647,-2430,-2420]]},{"type":"Polygon","id":19121,"arcs":[[2648,2649,2650,-2423,-2645]]},{"type":"Polygon","id":19123,"arcs":[[-2648,2651,2652,2653,-2436,-2431]]},{"type":"Polygon","id":19125,"arcs":[[-2654,2654,2655,-2642,-2434,-2437]]},{"type":"Polygon","id":19155,"arcs":[[-2427,2656,2657,2658,2659,2660,-2543,-2416]]},{"type":"Polygon","id":19029,"arcs":[[-2429,2661,2662,2663,-2657,-2426]]},{"type":"Polygon","id":19001,"arcs":[[-2438,-2651,2664,2665,-2662]]},{"type":"Polygon","id":39155,"arcs":[[-2447,2666,2667,2668,-2524,-2399]]},{"type":"Polygon","id":39143,"arcs":[[2669,-2593,2670,2671,-2597,-2518]]},{"type":"Polygon","id":42085,"arcs":[[-2590,2672,2673,2674,-2667,-2446]]},{"type":"Polygon","id":39069,"arcs":[[-2503,-2600,2675,2676,-2537,-2522]]},{"type":"Polygon","id":18099,"arcs":[[-2461,2677,2678,2679,-2463]]},{"type":"Polygon","id":42035,"arcs":[[-2611,2680,2681,2682,-2601,-2371]]},{"type":"Polygon","id":6023,"arcs":[[-2330,2683,2684,2685,-2373]]},{"type":"Polygon","id":17063,"arcs":[[2686,2687,-2570,-2520,-2513]]},{"type":"Polygon","id":31023,"arcs":[[-2483,2688,2689,2690,2691,-2476,-2474]]},{"type":"Polygon","id":31155,"arcs":[[2692,2693,2694,2695,-2689,-2482]]},{"type":"Polygon","id":18085,"arcs":[[-2627,2696,2697,2698,-2678,-2460]]},{"type":"Polygon","id":31033,"arcs":[[-2335,2699,2700,2701,2702,-2540,-2337]]},{"type":"Polygon","id":42031,"arcs":[[2703,2704,2705,-2588,-2586]]},{"type":"Polygon","id":49057,"arcs":[[-2341,-2347,2706,2707,-2355]]},{"type":"Polygon","id":18149,"arcs":[[-2680,2708,2709,-2466,-2464]]},{"type":"Polygon","id":42079,"arcs":[[2710,2711,2712,2713,-2612,-2556,-2564]]},{"type":"Polygon","id":39039,"arcs":[[2714,2715,2716,-2622,-2538,-2677]]},{"type":"Polygon","id":19115,"arcs":[[-2605,-2450,2717,2718,2719,-2638,-2440]]},{"type":"Polygon","id":31101,"arcs":[[2720,2721,2722,-2333,-2488,-2486]]},{"type":"Polygon","id":31111,"arcs":[[-2499,-2497,2723,2724,2725,2726,-2721,-2485]]},{"type":"Polygon","id":25019,"arcs":[[2727]]},{"type":"Polygon","id":31143,"arcs":[[2728,2729,2730,-2477,-2692]]},{"type":"Polygon","id":31105,"arcs":[[-2703,2731,2732,-2551,-2541]]},{"type":"Polygon","id":31121,"arcs":[[-2731,2733,2734,2735,-2628,-2478]]},{"type":"Polygon","id":31093,"arcs":[[-2629,-2736,2736,2737,2738,-2490]]},{"type":"Polygon","id":31163,"arcs":[[-2491,-2739,2739,-2494,-2500]]},{"type":"Polygon","id":31055,"arcs":[[-2544,-2661,2740,-2693,-2481]]},{"type":"Polygon","id":49029,"arcs":[[2741,2742,2743,-2707,-2346]]},{"type":"Polygon","id":42065,"arcs":[[2744,2745,2746,-2704,-2585,-2583]]},{"type":"Polygon","id":6105,"arcs":[[2747,2748,2749,-2684,-2329]]},{"type":"Polygon","id":36119,"arcs":[[2750,2751,-2632,-2549,2752]]},{"type":"Polygon","id":34037,"arcs":[[2753,2754,2755,2756,-2603,-2568]]},{"type":"Polygon","id":39153,"arcs":[[2757,2758,2759,2760,-2577]]},{"type":"Polygon","id":39133,"arcs":[[-2669,2761,2762,-2758,-2576,-2525]]},{"type":"Polygon","id":17131,"arcs":[[-2620,2763,2764,2765,2766,-2718,-2449]]},{"type":"Polygon","id":17155,"arcs":[[-2574,2767,-2614]]},{"type":"Polygon","id":36087,"arcs":[[2768,2769,-2566,-2631,2770]]},{"type":"Polygon","id":42037,"arcs":[[2771,2772,2773,-2607,-2613,-2714]]},{"type":"Polygon","id":17091,"arcs":[[-2533,2774,2775,2776,2777,-2687,-2512]]},{"type":"Polygon","id":18183,"arcs":[[2778,2779,2780,-2697,-2626]]},{"type":"MultiPolygon","id":36103,"arcs":[[[2781,2782]]]},{"type":"Polygon","id":39077,"arcs":[[-2636,2783,2784,2785,2786,-2671,-2592]]},{"type":"Polygon","id":18073,"arcs":[[-2710,2787,2788,2789,2790,-2531,-2535]]},{"type":"Polygon","id":39103,"arcs":[[-2761,2791,2792,-2634,-2578]]},{"type":"Polygon","id":18003,"arcs":[[2793,2794,2795,2796,2797,-2779,-2625,-2623,-2717]]},{"type":"Polygon","id":39147,"arcs":[[-2787,2798,2799,2800,-2598,-2672]]},{"type":"Polygon","id":42033,"arcs":[[2801,2802,2803,2804,-2745,-2582,-2602,-2683]]},{"type":"Polygon","id":49043,"arcs":[[-2621,-2196,2805,2806,2807,2808,-2742,-2345]]},{"type":"Polygon","id":42027,"arcs":[[2809,2810,2811,2812,-2802,-2682]]},{"type":"Polygon","id":42089,"arcs":[[-2757,2813,2814,2815,-2711,-2563,-2376,-2604]]},{"type":"Polygon","id":39125,"arcs":[[2816,2817,-2794,-2716]]},{"type":"Polygon","id":17175,"arcs":[[-2616,2818,2819,2820,-2618]]},{"type":"Polygon","id":31049,"arcs":[[-2723,2821,2822,-2700,-2334]]},{"type":"Polygon","id":18111,"arcs":[[2823,2824,-2775,-2532,-2791]]},{"type":"Polygon","id":34031,"arcs":[[2825,2826,-2754,-2567,-2770,2827]]},{"type":"Polygon","id":31153,"arcs":[[-2660,2828,2829,-2694,-2741]]},{"type":"Polygon","id":6035,"arcs":[[-2395,2830,2831,2832,-2385]]},{"type":"Polygon","id":6089,"arcs":[[-2386,-2833,2833,2834,-2748,-2328]]},{"type":"Polygon","id":42097,"arcs":[[2835,-2773,2836,2837,2838,2839,2840,-2609]]},{"type":"Polygon","id":18049,"arcs":[[2841,2842,2843,2844,-2679,-2699]]},{"type":"Polygon","id":31081,"arcs":[[2845,2846,2847,2848,-2734,-2730]]},{"type":"Polygon","id":18131,"arcs":[[-2845,2849,2850,-2788,-2709]]},{"type":"Polygon","id":42093,"arcs":[[-2774,-2836,-2608]]},{"type":"Polygon","id":42019,"arcs":[[-2706,2851,2852,2853,2854,-2673,-2589]]},{"type":"Polygon","id":42005,"arcs":[[-2747,2855,2856,2857,-2852,-2705]]},{"type":"Polygon","id":39063,"arcs":[[-2801,2858,2859,2860,2861,-2599]]},{"type":"Polygon","id":39137,"arcs":[[-2862,2862,2863,-2817,-2715,-2676]]},{"type":"Polygon","id":19101,"arcs":[[-2640,2864,2865,2866,-2646]]},{"type":"Polygon","id":19087,"arcs":[[-2720,2867,2868,2869,-2865,-2639]]},{"type":"Polygon","id":19179,"arcs":[[-2867,2870,2871,-2652,-2647]]},{"type":"Polygon","id":19039,"arcs":[[2872,2873,2874,-2649,-2644]]},{"type":"Polygon","id":19117,"arcs":[[-2656,2875,2876,-2873,-2643]]},{"type":"Polygon","id":19135,"arcs":[[-2872,2877,-2876,-2655,-2653]]},{"type":"Polygon","id":19129,"arcs":[[2878,2879,2880,-2829,-2659]]},{"type":"Polygon","id":19137,"arcs":[[-2664,2881,2882,-2879,-2658]]},{"type":"Polygon","id":19003,"arcs":[[-2666,2883,2884,-2882,-2663]]},{"type":"Polygon","id":19175,"arcs":[[-2650,-2875,2885,-2884,-2665]]},{"type":"Polygon","id":49011,"arcs":[[-2744,2886,2887,-2708]]},{"type":"Polygon","id":17095,"arcs":[[-2821,2888,2889,2890,-2764,-2619]]},{"type":"Polygon","id":42119,"arcs":[[2891,2892,-2810,-2681,-2610,-2841]]},{"type":"Polygon","id":17123,"arcs":[[-2768,-2573,2893,2894,-2819,-2615]]},{"type":"Polygon","id":34003,"arcs":[[2895,2896,-2828,-2769,2897]]},{"type":"Polygon","id":39099,"arcs":[[-2675,2898,2899,2900,-2762,-2668]]},{"type":"Polygon","id":42025,"arcs":[[-2816,2901,2902,2903,-2712]]},{"type":"Polygon","id":42073,"arcs":[[-2855,2904,2905,-2899,-2674]]},{"type":"Polygon","id":17105,"arcs":[[-2778,2906,2907,2908,-2571,-2688]]},{"type":"Polygon","id":34041,"arcs":[[2909,2910,2911,2912,-2814,-2756]]},{"type":"Polygon","id":34027,"arcs":[[2913,2914,2915,2916,-2910,-2755,-2827]]},{"type":"Polygon","id":49045,"arcs":[[2917,2918,2919,2920,-2362,-2356,-2888]]},{"type":"Polygon","id":19057,"arcs":[[-2767,2921,2922,2923,-2868,-2719]]},{"type":"Polygon","id":17071,"arcs":[[2924,2925,2926,2927,-2922,-2766]]},{"type":"Polygon","id":17187,"arcs":[[-2891,2928,2929,-2925,-2765]]},{"type":"Polygon","id":39005,"arcs":[[-2793,2930,2931,2932,2933,-2784,-2635]]},{"type":"Polygon","id":31025,"arcs":[[-2881,2934,2935,2936,-2695,-2830]]},{"type":"Polygon","id":31185,"arcs":[[2937,2938,2939,-2846,-2729]]},{"type":"Polygon","id":31079,"arcs":[[-2735,-2849,2940,2941,-2737]]},{"type":"Polygon","id":31047,"arcs":[[2942,2943,2944,2945,-2724,-2496]]},{"type":"Polygon","id":31019,"arcs":[[-2738,-2942,2946,2947,2948,-2943,-2495,-2740]]},{"type":"Polygon","id":31159,"arcs":[[2949,2950,-2938,-2691]]},{"type":"Polygon","id":31109,"arcs":[[-2937,2951,2952,2953,-2950,-2690,-2696]]},{"type":"Polygon","id":18169,"arcs":[[-2781,2954,2955,2956,-2842,-2698]]},{"type":"Polygon","id":17075,"arcs":[[-2825,2957,2958,2959,-2776]]},{"type":"Polygon","id":18069,"arcs":[[-2798,2960,2961,-2955,-2780]]},{"type":"Polygon","id":8123,"arcs":[[2962,2963,2964,2965,2966,-2552,-2733,2967]]},{"type":"Polygon","id":31135,"arcs":[[-2727,2968,2969,2970,2971,-2822,-2722]]},{"type":"Polygon","id":8107,"arcs":[[2972,2973,2974,2975,2976,-2136,2977]]},{"type":"Polygon","id":8057,"arcs":[[2978,-2978,-2135,-2141,2979]]},{"type":"Polygon","id":8081,"arcs":[[-2977,2980,2981,2982,-2194,-2137]]},{"type":"Polygon","id":8075,"arcs":[[2983,2984,2985,-2968,-2732,-2702,2986,2987]]},{"type":"Polygon","id":8115,"arcs":[[2988,-2987,-2701,-2823,-2972]]},{"type":"Polygon","id":49009,"arcs":[[2989,2990,-2806,-2195,-2983]]},{"type":"Polygon","id":32011,"arcs":[[2991,2992,2993,-2364]]},{"type":"Polygon","id":32015,"arcs":[[-2994,2994,2995,2996,-2358,-2365]]},{"type":"Polygon","id":8069,"arcs":[[2997,2998,-2980,-2140,-2553,-2967]]},{"type":"Polygon","id":18103,"arcs":[[-2957,2999,3000,3001,-2843]]},{"type":"Polygon","id":39033,"arcs":[[3002,3003,3004,3005,-2799,-2786]]},{"type":"Polygon","id":17053,"arcs":[[3006,3007,3008,-2907,-2777,-2960]]},{"type":"Polygon","id":39139,"arcs":[[-2934,3009,3010,-3003,-2785]]},{"type":"Polygon","id":39175,"arcs":[[-3006,3011,3012,-2859,-2800]]},{"type":"Polygon","id":39169,"arcs":[[-2760,3013,3014,-2931,-2792]]},{"type":"Polygon","id":39161,"arcs":[[-2864,3015,3016,3017,3018,-2795,-2818]]},{"type":"Polygon","id":39151,"arcs":[[-2901,3019,3020,3021,3022,-3014,-2759,-2763]]},{"type":"Polygon","id":17143,"arcs":[[-2895,3023,3024,3025,-2889,-2820]]},{"type":"Polygon","id":42095,"arcs":[[3026,3027,-2902,-2815,-2913]]},{"type":"Polygon","id":32027,"arcs":[[-2997,3028,-2387,-2359]]},{"type":"Polygon","id":42107,"arcs":[[-2904,3029,3030,3031,3032,-2837,-2772,-2713]]},{"type":"Polygon","id":39029,"arcs":[[-2906,3033,3034,3035,3036,-3020,-2900]]},{"type":"Polygon","id":17203,"arcs":[[3037,3038,-3024,-2894,-2572,-2909]]},{"type":"Polygon","id":18001,"arcs":[[3039,3040,3041,-2796,-3019]]},{"type":"Polygon","id":39003,"arcs":[[-2861,3042,3043,-3016,-2863]]},{"type":"Polygon","id":49035,"arcs":[[-2743,-2809,3044,3045,-2918,-2887]]},{"type":"Polygon","id":36005,"arcs":[[3046,3047,3048,-2751]]},{"type":"Polygon","id":18179,"arcs":[[-3042,3049,3050,3051,-2961,-2797]]},{"type":"Polygon","id":36059,"arcs":[[-2782,3052,3053,3054,3055,3056]]},{"type":"Polygon","id":18181,"arcs":[[3057,3058,3059,3060,-2789,-2851]]},{"type":"Polygon","id":18017,"arcs":[[-2844,-3002,3061,3062,-3058,-2850]]},{"type":"Polygon","id":42063,"arcs":[[-2805,3063,3064,-2856,-2746]]},{"type":"Polygon","id":34013,"arcs":[[-2826,-2897,3065,3066,3067,-2914]]},{"type":"Polygon","id":19071,"arcs":[[3068,3069,3070,-2935,-2880]]},{"type":"Polygon","id":19145,"arcs":[[3071,3072,3073,-3069,-2883]]},{"type":"Polygon","id":19173,"arcs":[[3074,3075,3076,-3072,-2885]]},{"type":"Polygon","id":19177,"arcs":[[-2870,3077,3078,3079,3080,-2866]]},{"type":"Polygon","id":19051,"arcs":[[-3081,3081,3082,3083,-2871]]},{"type":"Polygon","id":19159,"arcs":[[3084,3085,3086,-3075,-2886]]},{"type":"Polygon","id":19053,"arcs":[[3087,3088,3089,-3085,-2874]]},{"type":"Polygon","id":19185,"arcs":[[3090,3091,3092,-3088,-2877]]},{"type":"Polygon","id":19007,"arcs":[[-3084,3093,3094,-3091,-2878]]},{"type":"Polygon","id":42109,"arcs":[[-2840,3095,3096,-2892]]},{"type":"Polygon","id":36061,"arcs":[[3097,-3048]]},{"type":"Polygon","id":49047,"arcs":[[-2982,3098,3099,3100,3101,3102,3103,-2990]]},{"type":"Polygon","id":42007,"arcs":[[-2854,3104,3105,3106,-3034,-2905]]},{"type":"Polygon","id":42087,"arcs":[[3107,-2811,-2893,-3097,3108]]},{"type":"Polygon","id":49013,"arcs":[[-2991,-3104,3109,3110,3111,-2807]]},{"type":"Polygon","id":39065,"arcs":[[-3013,3112,3113,3114,3115,-3043,-2860]]},{"type":"Polygon","id":34017,"arcs":[[3116,-3066,-2896]]},{"type":"Polygon","id":19111,"arcs":[[-2924,-2923,-2928,3117,3118,-3078,-2869]]},{"type":"Polygon","id":36081,"arcs":[[-3056,3119,3120,3121]]},{"type":"Polygon","id":34019,"arcs":[[3122,3123,3124,-2911,-2917]]},{"type":"Polygon","id":42077,"arcs":[[3125,3126,3127,-3030,-2903,-3028]]},{"type":"Polygon","id":31131,"arcs":[[-3071,3128,3129,3130,-2952,-2936]]},{"type":"Polygon","id":34035,"arcs":[[3131,3132,3133,-3123,-2916]]},{"type":"Polygon","id":17113,"arcs":[[-3009,3134,3135,3136,3137,3138,-3038,-2908]]},{"type":"Polygon","id":8095,"arcs":[[-2971,3139,3140,-2988,-2989]]},{"type":"Polygon","id":17179,"arcs":[[-3139,3141,3142,3143,-3025,-3039]]},{"type":"Polygon","id":42061,"arcs":[[-3108,3144,3145,3146,3147,3148,3149,-2812]]},{"type":"Polygon","id":42013,"arcs":[[-3149,3150,3151,-2803,-2813,-3150]]},{"type":"Polygon","id":36047,"arcs":[[3152,-3121]]},{"type":"Polygon","id":18007,"arcs":[[-2790,-3061,3153,3154,3155,-2958,-2824]]},{"type":"Polygon","id":34039,"arcs":[[3156,3157,-3132,-2915,-3068]]},{"type":"Polygon","id":18015,"arcs":[[-3063,3158,3159,3160,-3059]]},{"type":"Polygon","id":39019,"arcs":[[-3037,3161,3162,3163,-3021]]},{"type":"Polygon","id":39107,"arcs":[[3164,3165,3166,3167,-3040,-3018]]},{"type":"Polygon","id":42021,"arcs":[[-3152,3168,3169,3170,-3064,-2804]]},{"type":"Polygon","id":17057,"arcs":[[-3026,-3144,3171,3172,3173,-2929,-2890]]},{"type":"Polygon","id":39117,"arcs":[[-3011,3174,3175,3176,-3004]]},{"type":"Polygon","id":39101,"arcs":[[-3177,3177,3178,-3113,-3012,-3005]]},{"type":"Polygon","id":31063,"arcs":[[-2946,3179,3180,3181,3182,3183,-2725]]},{"type":"Polygon","id":31001,"arcs":[[-2848,3184,3185,3186,-2947,-2941]]},{"type":"Polygon","id":31073,"arcs":[[3187,3188,-3180,-2945]]},{"type":"Polygon","id":31085,"arcs":[[-3184,3189,3190,3191,-2969,-2726]]},{"type":"Polygon","id":31029,"arcs":[[-3192,3192,3193,-3140,-2970]]},{"type":"Polygon","id":31059,"arcs":[[3194,3195,3196,3197,-2939]]},{"type":"Polygon","id":31151,"arcs":[[-2951,-2954,3198,3199,-3195]]},{"type":"Polygon","id":31035,"arcs":[[-3198,3200,3201,-3185,-2847,-2940]]},{"type":"Polygon","id":42067,"arcs":[[-2839,3202,3203,-3145,-3109,-3096]]},{"type":"Polygon","id":49051,"arcs":[[-3112,3204,-3045,-2808]]},{"type":"Polygon","id":31099,"arcs":[[3205,3206,3207,-2948,-3187]]},{"type":"Polygon","id":39011,"arcs":[[-3116,3208,3209,-3165,-3017,-3044]]},{"type":"Polygon","id":31137,"arcs":[[-2949,-3208,3210,3211,-3188,-2944]]},{"type":"Polygon","id":42129,"arcs":[[-3065,-3171,3212,3213,3214,3215,-2857]]},{"type":"Polygon","id":42011,"arcs":[[3216,3217,3218,3219,-3031,-3128]]},{"type":"Polygon","id":42003,"arcs":[[-2858,-3216,3220,-3105,-2853]]},{"type":"Polygon","id":39075,"arcs":[[-3023,3221,3222,3223,-2932,-3015]]},{"type":"Polygon","id":39157,"arcs":[[-3164,3224,3225,3226,-3222,-3022]]},{"type":"Polygon","id":42043,"arcs":[[-3033,3227,3228,3229,3230,3231,-2838]]},{"type":"Polygon","id":18053,"arcs":[[-3052,3232,3233,3234,3235,3236,-3000,-2956,-2962]]},{"type":"Polygon","id":36085,"arcs":[[3237]]},{"type":"Polygon","id":17067,"arcs":[[3238,3239,3240,3241,3242,-3118,-2927]]},{"type":"Polygon","id":54029,"arcs":[[3243,3244,3245,-3035,-3107]]},{"type":"Polygon","id":17109,"arcs":[[-3174,3246,-3239,-2926,-2930]]},{"type":"Polygon","id":42099,"arcs":[[3247,3248,-3203,-3232]]},{"type":"Polygon","id":29045,"arcs":[[-3243,3249,3250,3251,-3079,-3119]]},{"type":"Polygon","id":42017,"arcs":[[3252,3253,3254,3255,-3126,-3027,-2912,-3125]]},{"type":"Polygon","id":34023,"arcs":[[3256,3257,3258,-3133,-3158]]},{"type":"Polygon","id":29199,"arcs":[[-3252,3259,3260,3261,-3082,-3080]]},{"type":"Polygon","id":39081,"arcs":[[-3246,3262,3263,3264,3265,-3162,-3036]]},{"type":"Polygon","id":29197,"arcs":[[3266,3267,-3094,-3083,-3262]]},{"type":"Polygon","id":29171,"arcs":[[-3268,3268,3269,3270,-3092,-3095]]},{"type":"Polygon","id":29005,"arcs":[[-3074,3271,3272,3273,-3129,-3070]]},{"type":"Polygon","id":29129,"arcs":[[-3271,3274,3275,3276,-3089,-3093]]},{"type":"Polygon","id":29147,"arcs":[[-3077,3277,3278,3279,3280,-3272,-3073]]},{"type":"Polygon","id":49049,"arcs":[[-3111,3281,3282,3283,-2919,-3046,-3205]]},{"type":"Polygon","id":29081,"arcs":[[-3277,3284,3285,3286,3287,-3086,-3090]]},{"type":"Polygon","id":39083,"arcs":[[3288,3289,3290,-3175,-3010,-2933,-3224]]},{"type":"Polygon","id":18075,"arcs":[[-3168,3291,3292,3293,3294,-3050,-3041]]},{"type":"Polygon","id":29227,"arcs":[[-3288,3295,-3278,-3076,-3087]]},{"type":"Polygon","id":18009,"arcs":[[-3295,3296,-3233,-3051]]},{"type":"Polygon","id":18067,"arcs":[[3297,3298,-3159,-3062,-3001,-3237]]},{"type":"Polygon","id":18157,"arcs":[[-3161,3299,3300,3301,3302,-3154,-3060]]},{"type":"Polygon","id":31127,"arcs":[[3303,3304,3305,3306,-3130,-3274]]},{"type":"Polygon","id":42075,"arcs":[[-3228,-3032,-3220,3307]]},{"type":"Polygon","id":39091,"arcs":[[-3115,3308,3309,3310,-3209]]},{"type":"Polygon","id":8087,"arcs":[[-2986,3311,3312,-2963]]},{"type":"Polygon","id":31067,"arcs":[[3313,3314,3315,3316,3317,-3199,-2953]]},{"type":"Polygon","id":31097,"arcs":[[-3307,3318,-3314,-3131]]},{"type":"Polygon","id":39159,"arcs":[[3319,3320,3321,-3309,-3114,-3179,3322]]},{"type":"Polygon","id":17183,"arcs":[[-3156,3323,3324,3325,3326,-3007,-2959]]},{"type":"Polygon","id":8049,"arcs":[[3327,3328,3329,3330,3331,-2973,-2979,-2999]]},{"type":"Polygon","id":39149,"arcs":[[-3311,3332,3333,3334,-3166,-3210]]},{"type":"Polygon","id":42125,"arcs":[[-3221,-3215,3335,3336,3337,3338,3339,-3244,-3106]]},{"type":"Polygon","id":18171,"arcs":[[-3303,3340,3341,-3324,-3155]]},{"type":"Polygon","id":34025,"arcs":[[3342,3343,3344,3345,-3258,3346]]},{"type":"Polygon","id":39031,"arcs":[[-3227,3347,3348,3349,-3289,-3223]]},{"type":"Polygon","id":42091,"arcs":[[3350,3351,3352,3353,-3217,-3127,-3256]]},{"type":"Polygon","id":6103,"arcs":[[3354,3355,3356,3357,-2749,-2835]]},{"type":"Polygon","id":6063,"arcs":[[-2832,3358,3359,3360,-3355,-2834]]},{"type":"Polygon","id":39041,"arcs":[[-3291,3361,3362,-3323,-3178,-3176]]},{"type":"Polygon","id":8125,"arcs":[[-3194,3363,3364,3365,3366,-2984,-3141]]},{"type":"Polygon","id":8121,"arcs":[[-3367,3367,3368,3369,3370,-3312,-2985]]},{"type":"Polygon","id":17125,"arcs":[[3371,3372,3373,3374,-3172,-3143]]},{"type":"Polygon","id":39067,"arcs":[[-3266,3375,3376,-3225,-3163]]},{"type":"Polygon","id":18023,"arcs":[[-3299,3377,3378,3379,3380,-3300,-3160]]},{"type":"Polygon","id":34021,"arcs":[[-3259,-3346,3381,-3253,-3124,-3134]]},{"type":"Polygon","id":18159,"arcs":[[-3236,3382,3383,-3378,-3298]]},{"type":"Polygon","id":54009,"arcs":[[-3340,3384,-3263,-3245]]},{"type":"Polygon","id":17019,"arcs":[[-3327,3385,3386,-3135,-3008]]},{"type":"Polygon","id":29211,"arcs":[[3387,3388,3389,-3275,-3270]]},{"type":"Polygon","id":29075,"arcs":[[-3287,3390,3391,3392,-3279,-3296]]},{"type":"Polygon","id":18095,"arcs":[[3393,3394,3395,3396,-3383,-3235]]},{"type":"Polygon","id":18035,"arcs":[[-3297,-3294,3397,3398,-3394,-3234]]},{"type":"Polygon","id":18045,"arcs":[[-3302,3399,3400,3401,-3341]]},{"type":"Polygon","id":39037,"arcs":[[-3335,3402,3403,3404,3405,3406,-3292,-3167]]},{"type":"Polygon","id":31181,"arcs":[[-3202,3407,3408,3409,3410,-3206,-3186]]},{"type":"Polygon","id":31061,"arcs":[[-3411,3411,3412,3413,-3207]]},{"type":"Polygon","id":31129,"arcs":[[-3197,3414,3415,3416,-3408,-3201]]},{"type":"Polygon","id":31057,"arcs":[[3417,3418,3419,-3364,-3193,-3191]]},{"type":"Polygon","id":31065,"arcs":[[-3212,3420,3421,3422,3423,-3181,-3189]]},{"type":"Polygon","id":31169,"arcs":[[3424,3425,-3415,-3196]]},{"type":"Polygon","id":31095,"arcs":[[-3200,-3318,3426,-3425]]},{"type":"Polygon","id":31145,"arcs":[[-3424,3427,3428,3429,-3182]]},{"type":"Polygon","id":31087,"arcs":[[-3183,-3430,3430,-3418,-3190]]},{"type":"Polygon","id":31083,"arcs":[[-3414,3431,3432,-3421,-3211]]},{"type":"Polygon","id":29001,"arcs":[[-3261,3433,3434,3435,-3388,-3269,-3267]]},{"type":"Polygon","id":42041,"arcs":[[3436,3437,3438,-3248,-3231]]},{"type":"Polygon","id":17107,"arcs":[[3439,3440,3441,3442,-3372,-3142,-3138]]},{"type":"Polygon","id":42009,"arcs":[[-3148,3443,3444,3445,-3169,-3151]]},{"type":"Polygon","id":42071,"arcs":[[3446,3447,3448,3449,-3229,-3308,-3219]]},{"type":"Polygon","id":18135,"arcs":[[-3407,3450,3451,-3398,-3293]]},{"type":"Polygon","id":29103,"arcs":[[-3251,3452,3453,3454,-3434,-3260]]},{"type":"Polygon","id":42055,"arcs":[[-3439,3455,3456,3457,3458,-3146,-3204,-3249]]},{"type":"Polygon","id":42111,"arcs":[[-3446,3459,3460,3461,-3213,-3170]]},{"type":"Polygon","id":17039,"arcs":[[3462,3463,-3440,-3137]]},{"type":"Polygon","id":17169,"arcs":[[-3173,-3375,3464,3465,3466,-3240,-3247]]},{"type":"Polygon","id":17147,"arcs":[[-3387,3467,3468,3469,-3463,-3136]]},{"type":"Polygon","id":39089,"arcs":[[-3350,3470,3471,3472,3473,-3362,-3290]]},{"type":"Polygon","id":39021,"arcs":[[-3322,3474,3475,3476,-3333,-3310]]},{"type":"Polygon","id":29079,"arcs":[[-3390,3477,3478,3479,-3285,-3276]]},{"type":"Polygon","id":8013,"arcs":[[-2966,3480,3481,3482,-3328,-2998]]},{"type":"Polygon","id":31133,"arcs":[[-3306,3483,3484,3485,-3315,-3319]]},{"type":"Polygon","id":31147,"arcs":[[3486,3487,3488,3489,-3484,-3305]]},{"type":"Polygon","id":29087,"arcs":[[-3281,3490,3491,-3487,-3304,-3273]]},{"type":"Polygon","id":29111,"arcs":[[-3242,3492,3493,3494,-3453,-3250]]},{"type":"Polygon","id":42029,"arcs":[[3495,3496,3497,-3447,-3218,-3354]]},{"type":"Polygon","id":42133,"arcs":[[-3450,3498,3499,3500,3501,-3437,-3230]]},{"type":"Polygon","id":8103,"arcs":[[3502,-3099,-2981,-2976]]},{"type":"Polygon","id":39059,"arcs":[[3503,3504,-3348,-3226,-3377,3505]]},{"type":"Polygon","id":18057,"arcs":[[3506,3507,3508,-3379,-3384,-3397]]},{"type":"Polygon","id":18107,"arcs":[[-3381,3509,3510,3511,3512,-3400,-3301]]},{"type":"Polygon","id":17001,"arcs":[[-3467,3513,3514,3515,-3493,-3241]]},{"type":"Polygon","id":39109,"arcs":[[-3477,3516,3517,-3403,-3334]]},{"type":"Polygon","id":54069,"arcs":[[-3339,3518,3519,-3264,-3385]]},{"type":"Polygon","id":34005,"arcs":[[-3345,3520,3521,3522,3523,3524,3525,-3254,-3382]]},{"type":"Polygon","id":18011,"arcs":[[-3509,3526,3527,-3510,-3380]]},{"type":"Polygon","id":39013,"arcs":[[-3265,-3520,3528,3529,3530,-3506,-3376]]},{"type":"Polygon","id":34029,"arcs":[[-3343,3531,-3521,-3344]]},{"type":"Polygon","id":39119,"arcs":[[-3505,3532,3533,3534,-3471,-3349]]},{"type":"Polygon","id":42057,"arcs":[[-3459,3535,3536,-3444,-3147]]},{"type":"Polygon","id":17129,"arcs":[[-3443,3537,3538,-3373]]},{"type":"Polygon","id":6007,"arcs":[[3539,3540,3541,3542,-3356,-3361]]},{"type":"Polygon","id":18165,"arcs":[[-3402,3543,3544,3545,-3325,-3342]]},{"type":"Polygon","id":42051,"arcs":[[-3462,3546,3547,3548,3549,-3336,-3214]]},{"type":"Polygon","id":39049,"arcs":[[-3474,3550,3551,3552,-3320,-3363]]},{"type":"Polygon","id":42101,"arcs":[[-3526,3553,3554,-3352,-3351,-3255]]},{"type":"Polygon","id":29061,"arcs":[[-3286,-3480,3555,3556,3557,-3391]]},{"type":"Polygon","id":29003,"arcs":[[-3393,3558,3559,3560,-3491,-3280]]},{"type":"Polygon","id":32033,"arcs":[[-2921,3561,3562,3563,3564,-2992,-2363]]},{"type":"Polygon","id":17017,"arcs":[[-3374,-3539,3565,3566,3567,-3465]]},{"type":"Polygon","id":39097,"arcs":[[3568,3569,3570,3571,-3475,-3321,-3553]]},{"type":"Polygon","id":17009,"arcs":[[-3568,3572,3573,-3514,-3466]]},{"type":"Polygon","id":8045,"arcs":[[-2975,3574,3575,3576,3577,-3100,-3503]]},{"type":"Polygon","id":18065,"arcs":[[-3452,3578,3579,3580,3581,-3395,-3399]]},{"type":"Polygon","id":42001,"arcs":[[3582,3583,-3456,-3438,-3502]]},{"type":"Polygon","id":42045,"arcs":[[-3555,3584,3585,3586,3587,-3496,-3353]]},{"type":"Polygon","id":17115,"arcs":[[-3470,3588,3589,3590,3591,-3441,-3464]]},{"type":"Polygon","id":8014,"arcs":[[3592,3593,3594,-3481,-2965]]},{"type":"Polygon","id":29121,"arcs":[[-3455,3595,3596,3597,3598,3599,-3435]]},{"type":"Polygon","id":39023,"arcs":[[-3572,3600,3601,-3517,-3476]]},{"type":"Polygon","id":29115,"arcs":[[-3600,3602,3603,-3478,-3389,-3436]]},{"type":"Polygon","id":29063,"arcs":[[-3558,3604,3605,3606,-3559,-3392]]},{"type":"Polygon","id":54051,"arcs":[[3607,3608,-3529,-3519,-3338,3609]]},{"type":"Polygon","id":42059,"arcs":[[-3550,3610,3611,-3610,-3337]]},{"type":"Polygon","id":49023,"arcs":[[-3284,3612,3613,-3562,-2920]]},{"type":"Polygon","id":18177,"arcs":[[-3406,3614,3615,3616,-3579,-3451]]},{"type":"Polygon","id":20023,"arcs":[[3617,3618,3619,-3365,-3420]]},{"type":"Polygon","id":20153,"arcs":[[-3429,3620,3621,3622,-3618,-3419,-3431]]},{"type":"Polygon","id":6045,"arcs":[[-2750,-3358,3623,3624,3625,3626,-2685]]},{"type":"Polygon","id":20089,"arcs":[[3627,3628,3629,3630,3631,-3409,-3417]]},{"type":"Polygon","id":20183,"arcs":[[-3632,3632,3633,3634,-3412,-3410]]},{"type":"Polygon","id":20157,"arcs":[[3635,3636,-3628,-3416,-3426]]},{"type":"Polygon","id":20201,"arcs":[[-3317,3637,3638,3639,3640,-3636,-3427]]},{"type":"Polygon","id":20039,"arcs":[[-3423,3641,3642,3643,-3621,-3428]]},{"type":"Polygon","id":32001,"arcs":[[-2996,3644,3645,3646,-2388,-3029]]},{"type":"Polygon","id":20137,"arcs":[[3647,3648,3649,-3642,-3422,-3433]]},{"type":"Polygon","id":20147,"arcs":[[-3635,3650,3651,-3648,-3432,-3413]]},{"type":"Polygon","id":20117,"arcs":[[-3486,3652,3653,3654,-3638,-3316]]},{"type":"Polygon","id":8001,"arcs":[[-3371,3655,3656,3657,-3594,-3593,-2964,-3313]]},{"type":"Polygon","id":20013,"arcs":[[3658,3659,3660,3661,-3489]]},{"type":"Polygon","id":20131,"arcs":[[-3490,-3662,3662,3663,-3653,-3485]]},{"type":"Polygon","id":20043,"arcs":[[-3492,-3561,3664,3665,-3659,-3488]]},{"type":"Polygon","id":34007,"arcs":[[3666,3667,3668,-3524]]},{"type":"Polygon","id":17167,"arcs":[[-3592,3669,3670,3671,3672,-3566,-3538,-3442]]},{"type":"Polygon","id":29117,"arcs":[[3673,3674,3675,-3556,-3479,-3604]]},{"type":"Polygon","id":29205,"arcs":[[-3495,3676,3677,-3596,-3454]]},{"type":"Polygon","id":18121,"arcs":[[-3513,3678,3679,3680,-3544,-3401]]},{"type":"Polygon","id":39121,"arcs":[[-3531,3681,3682,3683,-3533,-3504]]},{"type":"Polygon","id":29127,"arcs":[[-3516,3684,3685,3686,-3677,-3494]]},{"type":"Polygon","id":18059,"arcs":[[-3582,3687,3688,3689,-3507,-3396]]},{"type":"Polygon","id":39045,"arcs":[[-3473,3690,3691,3692,-3551]]},{"type":"Polygon","id":8047,"arcs":[[3693,3694,-3329,-3483]]},{"type":"Polygon","id":39127,"arcs":[[3695,3696,3697,-3691,-3472,-3535]]},{"type":"Polygon","id":18097,"arcs":[[-3690,3698,3699,3700,3701,-3527,-3508]]},{"type":"Polygon","id":8037,"arcs":[[3702,3703,3704,-3575,-2974,-3332]]},{"type":"Polygon","id":8117,"arcs":[[3705,3706,3707,-3703,-3331]]},{"type":"Polygon","id":18063,"arcs":[[-3702,3708,3709,-3511,-3528]]},{"type":"Polygon","id":39113,"arcs":[[-3602,3710,3711,3712,3713,-3404,-3518]]},{"type":"Polygon","id":39135,"arcs":[[-3714,3714,3715,-3615,-3405]]},{"type":"Polygon","id":8059,"arcs":[[-3658,3716,3717,3718,3719,3720,3721,-3694,-3482,-3595]]},{"type":"Polygon","id":8031,"arcs":[[3722,-3717,-3657]]},{"type":"Polygon","id":34015,"arcs":[[3723,3724,3725,3726,-3668]]},{"type":"Polygon","id":17045,"arcs":[[3727,3728,3729,3730,-3326,-3546]]},{"type":"Polygon","id":17041,"arcs":[[-3731,3731,3732,-3468,-3386]]},{"type":"Polygon","id":17137,"arcs":[[-3673,3733,3734,3735,3736,-3573,-3567]]},{"type":"Polygon","id":39111,"arcs":[[-3609,3737,3738,3739,-3682,-3530]]},{"type":"Polygon","id":18133,"arcs":[[-3710,3740,3741,3742,-3679,-3512]]},{"type":"Polygon","id":8019,"arcs":[[-3722,3743,-3706,-3330,-3695]]},{"type":"Polygon","id":39057,"arcs":[[-3571,3744,3745,3746,-3711,-3601]]},{"type":"Polygon","id":17149,"arcs":[[-3737,3747,3748,3749,3750,3751,-3685,-3515,-3574]]},{"type":"Polygon","id":10003,"arcs":[[3752,3753,3754,3755,-3497,-3588,3756,-3586]]},{"type":"Polygon","id":17021,"arcs":[[-3591,3757,3758,-3670]]},{"type":"Polygon","id":29021,"arcs":[[-3607,3759,3760,3761,-3665,-3560]]},{"type":"Polygon","id":49007,"arcs":[[-3110,-3103,3762,3763,-3282]]},{"type":"Polygon","id":49039,"arcs":[[-3764,3764,3765,3766,-3613,-3283]]},{"type":"Polygon","id":39129,"arcs":[[-3693,3767,3768,3769,-3569,-3552]]},{"type":"Polygon","id":6021,"arcs":[[-3543,3770,3771,-3624,-3357]]},{"type":"Polygon","id":17139,"arcs":[[-3733,3772,3773,-3589,-3469]]},{"type":"Polygon","id":18041,"arcs":[[3774,3775,3776,-3580,-3617]]},{"type":"Polygon","id":18139,"arcs":[[-3777,3777,3778,3779,-3688,-3581]]},{"type":"Polygon","id":17171,"arcs":[[3780,-3748,-3736]]},{"type":"Polygon","id":29025,"arcs":[[-3676,3781,3782,3783,-3605,-3557]]},{"type":"Polygon","id":34033,"arcs":[[3784,3785,3786,3787,3788,3789,-3726]]},{"type":"Polygon","id":6091,"arcs":[[-2831,-2394,3790,3791,-3359]]},{"type":"Polygon","id":39115,"arcs":[[-3684,3792,3793,-3696,-3534]]},{"type":"Polygon","id":29049,"arcs":[[-3784,3794,3795,3796,-3760,-3606]]},{"type":"Polygon","id":8005,"arcs":[[-3370,3797,3798,3799,-3718,-3723,-3656]]},{"type":"Polygon","id":32019,"arcs":[[3800,3801,3802,3803,3804,-2389,-3647]]},{"type":"Polygon","id":34001,"arcs":[[3805,3806,3807,-3724,-3667,-3523]]},{"type":"Polygon","id":18161,"arcs":[[-3716,3808,3809,-3775,-3616]]},{"type":"Polygon","id":24043,"arcs":[[-3458,3810,3811,3812,3813,3814,3815,-3536]]},{"type":"Polygon","id":24001,"arcs":[[-3537,-3816,3816,3817,3818,3819,-3460,-3445]]},{"type":"Polygon","id":24023,"arcs":[[-3820,3820,3821,3822,-3547,-3461]]},{"type":"Polygon","id":24015,"arcs":[[-3756,3823,3824,3825,-3448,-3498]]},{"type":"Polygon","id":54061,"arcs":[[-3549,3826,3827,3828,3829,-3611]]},{"type":"Polygon","id":54077,"arcs":[[-3823,3830,3831,3832,3833,-3827,-3548]]},{"type":"Polygon","id":24025,"arcs":[[-3449,-3826,3834,3835,-3499]]},{"type":"Polygon","id":54103,"arcs":[[-3612,-3830,3836,3837,3838,3839,-3738,-3608]]},{"type":"Polygon","id":24005,"arcs":[[-3836,3840,3841,3842,3843,3844,-3500]]},{"type":"Polygon","id":24013,"arcs":[[-3845,3845,3846,-3583,-3501]]},{"type":"Polygon","id":24021,"arcs":[[-3847,3847,3848,3849,-3811,-3457,-3584]]},{"type":"Polygon","id":39047,"arcs":[[-3770,3850,3851,3852,-3745,-3570]]},{"type":"Polygon","id":49015,"arcs":[[-3102,3853,3854,3855,-3765,-3763]]},{"type":"Polygon","id":29041,"arcs":[[-3599,3856,3857,3858,3859,-3674,-3603]]},{"type":"Polygon","id":18145,"arcs":[[-3780,3860,3861,3862,-3699,-3689]]},{"type":"Polygon","id":54065,"arcs":[[3863,3864,3865,-3817,-3815]]},{"type":"Polygon","id":29173,"arcs":[[-3752,3866,3867,3868,-3686]]},{"type":"Polygon","id":17029,"arcs":[[-3730,3869,3870,3871,-3773,-3732]]},{"type":"Polygon","id":29137,"arcs":[[-3687,-3869,3872,3873,-3597,-3678]]},{"type":"Polygon","id":39073,"arcs":[[3874,3875,3876,-3768,-3692,-3698]]},{"type":"Polygon","id":20029,"arcs":[[-3641,3877,3878,3879,-3629,-3637]]},{"type":"Polygon","id":20085,"arcs":[[3880,3881,3882,3883,-3663,-3661]]},{"type":"Polygon","id":20005,"arcs":[[-3762,3884,3885,3886,-3881,-3660,-3666]]},{"type":"Polygon","id":17173,"arcs":[[-3774,-3872,3887,3888,3889,3890,-3758,-3590]]},{"type":"Polygon","id":54057,"arcs":[[3891,3892,-3821,-3819]]},{"type":"Polygon","id":39167,"arcs":[[-3740,3893,3894,3895,3896,-3793,-3683]]},{"type":"Polygon","id":54049,"arcs":[[-3829,3897,3898,-3837]]},{"type":"Polygon","id":18081,"arcs":[[-3863,3899,3900,3901,-3700]]},{"type":"Polygon","id":6115,"arcs":[[-3792,3902,3903,3904,-3540,-3360]]},{"type":"Polygon","id":18109,"arcs":[[-3902,3905,3906,3907,-3741,-3709,-3701]]},{"type":"Polygon","id":32029,"arcs":[[-2390,-3805]]},{"type":"Polygon","id":54003,"arcs":[[-3814,3908,3909,-3864]]},{"type":"Polygon","id":29033,"arcs":[[-3860,3910,3911,3912,-3782,-3675]]},{"type":"Polygon","id":29175,"arcs":[[-3874,3913,3914,3915,-3857,-3598]]},{"type":"Polygon","id":18167,"arcs":[[3916,3917,3918,-3728,-3545,-3681]]},{"type":"Polygon","id":18021,"arcs":[[-3743,3919,3920,3921,-3917,-3680]]},{"type":"Polygon","id":54095,"arcs":[[3922,3923,3924,-3894,-3739,-3840]]},{"type":"Polygon","id":29163,"arcs":[[3925,3926,3927,-3867,-3751,3928]]},{"type":"Polygon","id":39017,"arcs":[[3929,3930,3931,-3809,-3715,-3713]]},{"type":"Polygon","id":39165,"arcs":[[-3747,3932,3933,3934,-3930,-3712]]},{"type":"Polygon","id":6033,"arcs":[[3935,3936,3937,3938,-3625,-3772]]},{"type":"Polygon","id":8063,"arcs":[[-3620,3939,3940,3941,3942,-3368,-3366]]},{"type":"Polygon","id":34011,"arcs":[[3943,3944,-3785,-3725,-3808,3945,3946]]},{"type":"Polygon","id":20163,"arcs":[[3947,3948,3949,3950,-3651,-3634]]},{"type":"Polygon","id":39027,"arcs":[[3951,3952,-3933,-3746,-3853,3953]]},{"type":"Polygon","id":20181,"arcs":[[-3623,3954,3955,3956,-3940,-3619]]},{"type":"Polygon","id":20193,"arcs":[[-3644,3957,3958,3959,-3955,-3622]]},{"type":"Polygon","id":20141,"arcs":[[-3631,3960,3961,3962,3963,-3948,-3633]]},{"type":"Polygon","id":20179,"arcs":[[-3650,3964,3965,-3958,-3643]]},{"type":"Polygon","id":20027,"arcs":[[3966,3967,3968,3969,-3878,-3640]]},{"type":"Polygon","id":20123,"arcs":[[-3880,3970,3971,-3961,-3630]]},{"type":"Polygon","id":20065,"arcs":[[-3951,3972,3973,-3965,-3649,-3652]]},{"type":"Polygon","id":20161,"arcs":[[3974,3975,3976,-3967,-3639,-3655]]},{"type":"Polygon","id":8035,"arcs":[[3977,3978,3979,-3719,-3800]]},{"type":"Polygon","id":8039,"arcs":[[3980,3981,-3978,-3799]]},{"type":"Polygon","id":20149,"arcs":[[-3664,-3884,3982,3983,-3975,-3654]]},{"type":"Polygon","id":8073,"arcs":[[-3943,3984,3985,3986,3987,-3981,-3798,-3369]]},{"type":"Polygon","id":8093,"arcs":[[-3721,3988,3989,3990,3991,-3707,-3744]]},{"type":"Polygon","id":39009,"arcs":[[-3897,3992,3993,3994,-3875,-3697,-3794]]},{"type":"Polygon","id":49027,"arcs":[[-3767,3995,3996,3997,-3563,-3614]]},{"type":"Polygon","id":54027,"arcs":[[-3866,3998,3999,-3892,-3818]]},{"type":"Polygon","id":29165,"arcs":[[-3761,-3797,4000,4001,4002,-3885]]},{"type":"Polygon","id":18047,"arcs":[[-3810,-3932,4003,4004,4005,-3778,-3776]]},{"type":"Polygon","id":29177,"arcs":[[-3913,4006,4007,4008,-3795,-3783]]},{"type":"Polygon","id":17135,"arcs":[[-3759,-3891,4009,4010,4011,4012,-3671]]},{"type":"Polygon","id":17117,"arcs":[[-4013,4013,4014,4015,-3734,-3672]]},{"type":"Polygon","id":6057,"arcs":[[-2393,4016,-3903,-3791]]},{"type":"Polygon","id":17061,"arcs":[[-3735,-4016,4017,4018,-3749,-3781]]},{"type":"Polygon","id":39141,"arcs":[[-3877,4019,4020,4021,4022,-3851,-3769]]},{"type":"Polygon","id":54037,"arcs":[[4023,4024,-3909,-3813]]},{"type":"Polygon","id":49019,"arcs":[[-3578,4025,4026,-3854,-3101]]},{"type":"Polygon","id":17023,"arcs":[[-3919,4027,4028,4029,4030,-3870,-3729]]},{"type":"Polygon","id":54073,"arcs":[[4031,4032,-3895,-3925]]},{"type":"Polygon","id":18119,"arcs":[[-3908,4033,4034,-3920,-3742]]},{"type":"Polygon","id":54033,"arcs":[[4035,4036,4037,4038,4039,-3838,-3899]]},{"type":"Polygon","id":51069,"arcs":[[4040,4041,4042,4043,-3999,-3865,-3910]]},{"type":"Polygon","id":29047,"arcs":[[-3796,-4009,4044,4045,-4001]]},{"type":"Polygon","id":18031,"arcs":[[-4006,4046,4047,4048,-3861,-3779]]},{"type":"Polygon","id":54091,"arcs":[[4049,-4036,-3898,-3828,-3834]]},{"type":"Polygon","id":54017,"arcs":[[-4040,4050,4051,4052,-3923,-3839]]},{"type":"Polygon","id":20087,"arcs":[[4053,4054,4055,-3882,-3887]]},{"type":"Polygon","id":20103,"arcs":[[-4003,4056,4057,4058,-4054,-3886]]},{"type":"Polygon","id":6011,"arcs":[[-3542,4059,4060,-3936,-3771]]},{"type":"Polygon","id":29195,"arcs":[[-3859,4061,4062,4063,4064,-3911]]},{"type":"Polygon","id":54107,"arcs":[[-4033,4065,4066,4067,4068,-3993,-3896]]},{"type":"Polygon","id":17013,"arcs":[[-4019,4069,4070,4071,-3929,-3750]]},{"type":"Polygon","id":39163,"arcs":[[-3995,4072,4073,4074,-4020,-3876]]},{"type":"Polygon","id":54085,"arcs":[[-4053,4075,4076,4077,-4066,-4032,-3924]]},{"type":"Polygon","id":24029,"arcs":[[-3755,4078,4079,4080,-3824]]},{"type":"Polygon","id":8065,"arcs":[[-3708,-3992,4081,4082,-3704]]},{"type":"Polygon","id":17035,"arcs":[[-4031,4083,4084,-3888,-3871]]},{"type":"Polygon","id":39071,"arcs":[[-4023,4085,4086,4087,-3954,-3852]]},{"type":"Polygon","id":24510,"arcs":[[4088,4089,-3842]]},{"type":"Polygon","id":24027,"arcs":[[-3844,4090,4091,4092,-3848,-3846]]},{"type":"Polygon","id":8077,"arcs":[[4093,4094,4095,4096,-4026,-3577]]},{"type":"Polygon","id":8097,"arcs":[[-4083,4097,4098,-4094,-3576,-3705]]},{"type":"Polygon","id":10001,"arcs":[[4099,4100,4101,-4079,-3754,4102]]},{"type":"Polygon","id":18105,"arcs":[[4103,4104,4105,4106,-4034,-3907]]},{"type":"Polygon","id":18005,"arcs":[[-4049,4107,4108,4109,-3900,-3862]]},{"type":"Polygon","id":29007,"arcs":[[-3868,-3928,4110,4111,4112,-3914,-3873]]},{"type":"Polygon","id":24031,"arcs":[[4113,4114,4115,4116,-3849,-4093]]},{"type":"Polygon","id":18013,"arcs":[[-4110,4117,-4104,-3906,-3901]]},{"type":"Polygon","id":29089,"arcs":[[4118,-4062,-3858,-3916,4119]]},{"type":"Polygon","id":54023,"arcs":[[4120,4121,4122,4123,-3831,-3822,-3893]]},{"type":"Polygon","id":34009,"arcs":[[4124,-3946,-3807]]},{"type":"Polygon","id":51107,"arcs":[[-4117,4125,4126,4127,4128,-4024,-3812,-3850]]},{"type":"Polygon","id":6061,"arcs":[[-2392,4129,4130,4131,4132,4133,-3904,-4017]]},{"type":"Polygon","id":39061,"arcs":[[-3935,4134,4135,4136,4137,4138,-3931]]},{"type":"Polygon","id":18137,"arcs":[[4139,4140,4141,4142,4143,-4047,-4005]]},{"type":"Polygon","id":18029,"arcs":[[-4004,-4139,4144,4145,-4140]]},{"type":"Polygon","id":20143,"arcs":[[-3970,4146,4147,4148,-3971,-3879]]},{"type":"Polygon","id":6101,"arcs":[[-3905,-4134,4149,4150,-4060,-3541]]},{"type":"Polygon","id":54001,"arcs":[[4151,4152,4153,-4037,-4050,-3833]]},{"type":"Polygon","id":29107,"arcs":[[4154,4155,4156,-4007,-3912,-4065]]},{"type":"Polygon","id":54093,"arcs":[[4157,-4152,-3832,-4124]]},{"type":"Polygon","id":39025,"arcs":[[4158,4159,4160,-4135,-3934,-3953,4161]]},{"type":"Polygon","id":51043,"arcs":[[-4129,4162,4163,-4041,-4025]]},{"type":"Polygon","id":17083,"arcs":[[-4015,4164,4165,-4070,-4018]]},{"type":"MultiPolygon","id":24035,"arcs":[[[4166]],[[-4102,4167,4168,4169,-4080]]]},{"type":"Polygon","id":18153,"arcs":[[-3922,4170,4171,4172,-4028,-3918]]},{"type":"Polygon","id":8051,"arcs":[[-4099,4173,4174,4175,4176,4177,4178,-4095]]},{"type":"Polygon","id":39015,"arcs":[[4179,4180,4181,-4162,-3952,-4088]]},{"type":"Polygon","id":29019,"arcs":[[-4113,4182,4183,4184,4185,-4120,-3915]]},{"type":"Polygon","id":32510,"arcs":[[4186,-4130,-2391,-3804]]},{"type":"Polygon","id":54031,"arcs":[[-4044,4187,4188,4189,-4121,-4000]]},{"type":"Polygon","id":24003,"arcs":[[4190,4191,-4091,-3843,-4090,4192,4193,4194]]},{"type":"Polygon","id":29095,"arcs":[[-4008,-4157,4195,4196,4197,4198,-4045]]},{"type":"Polygon","id":29113,"arcs":[[-4072,4199,4200,4201,-3926]]},{"type":"Polygon","id":20061,"arcs":[[4202,4203,4204,-3968,-3977]]},{"type":"Polygon","id":8029,"arcs":[[-4179,4205,-4096]]},{"type":"Polygon","id":20105,"arcs":[[-4149,4206,4207,4208,-3962,-3972]]},{"type":"Polygon","id":20177,"arcs":[[-4056,4209,4210,4211,-3983,-3883]]},{"type":"Polygon","id":17051,"arcs":[[-3890,4212,4213,4214,4215,4216,-4010]]},{"type":"Polygon","id":17049,"arcs":[[-4085,4217,4218,-4213,-3889]]},{"type":"Polygon","id":20197,"arcs":[[-4212,4219,4220,4221,-4203,-3976,-3984]]},{"type":"Polygon","id":39079,"arcs":[[4222,4223,4224,4225,-4021,-4075]]},{"type":"Polygon","id":39105,"arcs":[[4226,4227,-4073,-3994,-4069,4228]]},{"type":"Polygon","id":20209,"arcs":[[-4002,-4046,-4199,4229,-4057]]},{"type":"Polygon","id":39131,"arcs":[[4230,4231,-4086,-4022,-4226]]},{"type":"Polygon","id":18079,"arcs":[[4232,4233,4234,-4108,-4048,-4144]]},{"type":"Polygon","id":54105,"arcs":[[4235,4236,4237,-4067,-4078]]},{"type":"Polygon","id":17033,"arcs":[[-4173,4238,4239,4240,4241,-4029]]},{"type":"Polygon","id":17079,"arcs":[[-4242,4242,4243,-4218,-4084,-4030]]},{"type":"Polygon","id":18055,"arcs":[[-4035,-4107,4244,4245,4246,4247,-4171,-3921]]},{"type":"Polygon","id":54041,"arcs":[[4248,4249,4250,4251,-4051,-4039]]},{"type":"Polygon","id":32023,"arcs":[[-2993,-3565,4252,4253,4254,4255,4256,-3645,-2995]]},{"type":"Polygon","id":29139,"arcs":[[-3927,-4202,4257,4258,4259,4260,-4111]]},{"type":"Polygon","id":21015,"arcs":[[4261,4262,4263,4264,4265,-4145,-4138]]},{"type":"Polygon","id":24011,"arcs":[[4266,4267,4268,4269,-4168,-4101]]},{"type":"Polygon","id":20109,"arcs":[[4270,4271,4272,4273,-3956,-3960]]},{"type":"Polygon","id":20199,"arcs":[[-4274,4274,4275,4276,-3941,-3957]]},{"type":"Polygon","id":20051,"arcs":[[-3964,4277,4278,4279,4280,-3949]]},{"type":"Polygon","id":20063,"arcs":[[-3966,-3974,4281,4282,4283,4284,-4271,-3959]]},{"type":"Polygon","id":20041,"arcs":[[-4205,4285,4286,4287,-4147,-3969]]},{"type":"Polygon","id":20167,"arcs":[[-4209,4288,4289,4290,-4278,-3963]]},{"type":"Polygon","id":20195,"arcs":[[-3950,-4281,4291,-4282,-3973]]},{"type":"Polygon","id":24033,"arcs":[[-4192,4292,4293,4294,4295,4296,-4114,-4092]]},{"type":"Polygon","id":8119,"arcs":[[4297,4298,-3989,-3720,-3980]]},{"type":"Polygon","id":8041,"arcs":[[-3982,-3988,4299,4300,-4298,-3979]]},{"type":"Polygon","id":21037,"arcs":[[-4161,4301,4302,-4136]]},{"type":"Polygon","id":54083,"arcs":[[-4123,4303,4304,4305,4306,-4153,-4158]]},{"type":"Polygon","id":32005,"arcs":[[-3803,4307,4308,4309,-4131,-4187]]},{"type":"Polygon","id":54097,"arcs":[[-4154,-4307,4310,-4249,-4038]]},{"type":"Polygon","id":54021,"arcs":[[-4252,4311,4312,-4076,-4052]]},{"type":"Polygon","id":51171,"arcs":[[4313,4314,4315,-4188,-4043]]},{"type":"Polygon","id":21117,"arcs":[[-4303,4316,4317,-4262,-4137]]},{"type":"Polygon","id":54035,"arcs":[[-4238,4318,4319,4320,4321,-4229,-4068]]},{"type":"Polygon","id":32021,"arcs":[[-4257,4322,4323,-3801,-3646]]},{"type":"Polygon","id":18071,"arcs":[[-4235,4324,4325,4326,-4105,-4118,-4109]]},{"type":"Polygon","id":20045,"arcs":[[-4059,4327,4328,4329,-4210,-4055]]},{"type":"Polygon","id":6017,"arcs":[[-4310,4330,4331,4332,-4132]]},{"type":"Polygon","id":29027,"arcs":[[-4112,-4261,4333,4334,-4183]]},{"type":"Polygon","id":29053,"arcs":[[-4186,4335,4336,4337,-4063,-4119]]},{"type":"Polygon","id":51059,"arcs":[[4338,4339,4340,4341,4342,4343,-4126,-4116]]},{"type":"Polygon","id":8015,"arcs":[[-3991,4344,4345,-4174,-4098,-4082]]},{"type":"Polygon","id":20091,"arcs":[[-4198,4346,4347,-4328,-4058,-4230]]},{"type":"Polygon","id":39001,"arcs":[[4348,4349,4350,-4180,-4087,-4232]]},{"type":"Polygon","id":49041,"arcs":[[-3856,4351,4352,4353,-3996,-3766]]},{"type":"Polygon","id":8017,"arcs":[[-4277,4354,4355,-3985,-3942]]},{"type":"Polygon","id":54013,"arcs":[[-4313,4356,4357,4358,-4236,-4077]]},{"type":"Polygon","id":51187,"arcs":[[4359,4360,4361,-4314,-4042,-4164]]},{"type":"Polygon","id":39053,"arcs":[[4362,4363,4364,-4223,-4074,-4228]]},{"type":"Polygon","id":18115,"arcs":[[4365,-4141,-4146,-4266]]},{"type":"Polygon","id":54053,"arcs":[[-4322,4366,4367,-4363,-4227]]},{"type":"Polygon","id":17005,"arcs":[[-4217,4368,4369,-4011]]},{"type":"Polygon","id":39145,"arcs":[[-4225,4370,4371,4372,-4349,-4231]]},{"type":"Polygon","id":51061,"arcs":[[4373,4374,4375,4376,-4360,-4163,-4128]]},{"type":"Polygon","id":17119,"arcs":[[-4014,-4012,-4370,4377,4378,4379,4380,4381,-4165]]},{"type":"Polygon","id":29219,"arcs":[[4382,4383,4384,-4258,-4201]]},{"type":"Polygon","id":11001,"arcs":[[4385,4386,-4115,-4297]]},{"type":"Polygon","id":18093,"arcs":[[-4327,4387,4388,4389,-4245,-4106]]},{"type":"Polygon","id":29183,"arcs":[[-4382,4390,4391,-4383,-4200,-4071,-4166]]},{"type":"Polygon","id":10005,"arcs":[[4392,4393,4394,4395,4396,4397,-4267,-4100]]},{"type":"Polygon","id":20169,"arcs":[[-4288,4398,4399,-4207,-4148]]},{"type":"Polygon","id":54071,"arcs":[[-4190,4400,4401,4402,4403,-4304,-4122]]},{"type":"Polygon","id":29159,"arcs":[[-4338,4404,4405,4406,4407,-4155,-4064]]},{"type":"Polygon","id":24041,"arcs":[[-4270,4408,-4169]]},{"type":"Polygon","id":51153,"arcs":[[-4344,4409,4410,-4374,-4127]]},{"type":"Polygon","id":54087,"arcs":[[-4359,4411,4412,-4319,-4237]]},{"type":"Polygon","id":29101,"arcs":[[-4408,4413,4414,-4196,-4156]]},{"type":"Polygon","id":51013,"arcs":[[4415,-4341,4416,-4339,-4387,4417]]},{"type":"Polygon","id":6003,"arcs":[[4418,4419,4420,4421,-4331,-4309]]},{"type":"Polygon","id":18155,"arcs":[[-4265,4422,4423,4424,-4142,-4366]]},{"type":"Polygon","id":29135,"arcs":[[4425,4426,4427,-4336,-4185]]},{"type":"Polygon","id":6113,"arcs":[[-4151,4428,4429,4430,-4431,4431,-3937,-4061]]},{"type":"Polygon","id":18077,"arcs":[[-4425,4432,4433,4434,4435,-4233,-4143]]},{"type":"Polygon","id":17025,"arcs":[[-4244,4436,4437,4438,-4214,-4219]]},{"type":"Polygon","id":18083,"arcs":[[4439,4440,4441,4442,4443,4444,-4239,-4172,-4248]]},{"type":"Polygon","id":18101,"arcs":[[-4390,4445,4446,4447,-4246]]},{"type":"Polygon","id":18027,"arcs":[[4448,4449,-4440,-4247,-4448]]},{"type":"Polygon","id":54007,"arcs":[[-4251,4450,4451,4452,-4357,-4312]]},{"type":"Polygon","id":29189,"arcs":[[-4381,4453,4454,4455,4456,4457,-4391]]},{"type":"Polygon","id":21191,"arcs":[[4458,4459,4460,-4317,-4302,-4160,4461]]},{"type":"Polygon","id":20127,"arcs":[[-4222,4462,4463,4464,-4286,-4204]]},{"type":"Polygon","id":20053,"arcs":[[-4400,4465,4466,4467,-4289,-4208]]},{"type":"Polygon","id":20139,"arcs":[[-4330,4468,4469,4470,-4220,-4211]]},{"type":"Polygon","id":6055,"arcs":[[4430,4471,4472,4473,4474,4475,-3938,-4432]]},{"type":"Polygon","id":51157,"arcs":[[4476,4477,4478,-4361,-4377]]},{"type":"Polygon","id":21077,"arcs":[[4479,4480,4481,-4423,-4264]]},{"type":"Polygon","id":6097,"arcs":[[-3939,-4476,4482,4483,4484,-3626]]},{"type":"Polygon","id":17101,"arcs":[[4485,4486,-4240,-4445]]},{"type":"Polygon","id":51165,"arcs":[[-4316,4487,4488,4489,4490,-4401,-4189]]},{"type":"Polygon","id":17159,"arcs":[[-4241,-4487,4491,4492,4493,-4437,-4243]]},{"type":"Polygon","id":39087,"arcs":[[4494,4495,4496,4497,-4371,-4224,-4365]]},{"type":"Polygon","id":29037,"arcs":[[-4415,4498,4499,4500,-4347,-4197]]},{"type":"Polygon","id":51139,"arcs":[[-4479,4501,4502,-4488,-4315,-4362]]},{"type":"Polygon","id":18143,"arcs":[[-4436,4503,4504,-4325,-4234]]},{"type":"Polygon","id":21023,"arcs":[[-4182,4505,4506,4507,-4462,-4159]]},{"type":"Polygon","id":17121,"arcs":[[-4439,4508,4509,4510,4511,-4215]]},{"type":"Polygon","id":21081,"arcs":[[-4318,-4461,4512,4513,4514,-4480,-4263]]},{"type":"Polygon","id":18175,"arcs":[[-4505,4515,4516,4517,4518,4519,-4388,-4326]]},{"type":"Polygon","id":29510,"arcs":[[-4454,-4380,4520]]},{"type":"Polygon","id":24009,"arcs":[[4521,-4293,-4191]]},{"type":"Polygon","id":21161,"arcs":[[-4351,4522,4523,4524,-4506,-4181]]},{"type":"Polygon","id":21041,"arcs":[[4525,4526,4527,-4433,-4424,-4482]]},{"type":"Polygon","id":21089,"arcs":[[-4498,4528,4529,4530,-4372]]},{"type":"Polygon","id":17027,"arcs":[[-4216,-4512,4531,4532,4533,-4378,-4369]]},{"type":"Polygon","id":54075,"arcs":[[-4404,4534,4535,4536,4537,-4305]]},{"type":"Polygon","id":29051,"arcs":[[-4335,4538,4539,-4426,-4184]]},{"type":"Polygon","id":20111,"arcs":[[-4471,4540,4541,4542,-4463,-4221]]},{"type":"Polygon","id":20059,"arcs":[[4543,4544,4545,-4469,-4329]]},{"type":"Polygon","id":20121,"arcs":[[-4501,4546,4547,-4544,-4348]]},{"type":"Polygon","id":54101,"arcs":[[-4311,-4306,-4538,4548,4549,-4451,-4250]]},{"type":"Polygon","id":6067,"arcs":[[4550,4551,4552,4553,-4429,-4150,-4133,-4333]]},{"type":"Polygon","id":21223,"arcs":[[-4528,4554,4555,4556,-4434]]},{"type":"Polygon","id":21187,"arcs":[[-4515,4557,4558,4559,-4526,-4481]]},{"type":"Polygon","id":21135,"arcs":[[4560,4561,4562,-4523,-4350,-4373,-4531]]},{"type":"Polygon","id":29073,"arcs":[[-4385,4563,4564,4565,4566,4567,-4259]]},{"type":"Polygon","id":6051,"arcs":[[-3802,-4324,4568,4569,4570,4571,4572,-4419,-4308]]},{"type":"Polygon","id":29071,"arcs":[[-4392,-4458,4573,4574,4575,-4564,-4384]]},{"type":"Polygon","id":29151,"arcs":[[-4260,-4568,4576,4577,-4539,-4334]]},{"type":"Polygon","id":6005,"arcs":[[-4422,4578,4579,-4551,-4332]]},{"type":"Polygon","id":24019,"arcs":[[-4268,-4398,4580,4581]]},{"type":"Polygon","id":20171,"arcs":[[-4285,4582,4583,4584,4585,-4272]]},{"type":"Polygon","id":20101,"arcs":[[4586,4587,-4583,-4284]]},{"type":"Polygon","id":20071,"arcs":[[4588,4589,4590,4591,-4355,-4276]]},{"type":"Polygon","id":20203,"arcs":[[-4586,4592,4593,-4589,-4275,-4273]]},{"type":"Polygon","id":51047,"arcs":[[4594,4595,4596,4597,-4477,-4376]]},{"type":"Polygon","id":20135,"arcs":[[-4292,-4280,4598,4599,4600,4601,-4587,-4283]]},{"type":"Polygon","id":29141,"arcs":[[-4428,4602,4603,4604,-4405,-4337]]},{"type":"Polygon","id":20009,"arcs":[[-4468,4605,4606,4607,4608,-4290]]},{"type":"Polygon","id":8043,"arcs":[[-4301,4609,4610,4611,-4345,-3990,-4299]]},{"type":"Polygon","id":20165,"arcs":[[-4291,-4609,4612,-4599,-4279]]},{"type":"Polygon","id":24017,"arcs":[[-4295,4613,4614,4615]]},{"type":"Polygon","id":18117,"arcs":[[-4520,4616,4617,-4446,-4389]]},{"type":"Polygon","id":54079,"arcs":[[4618,4619,-4367,-4321,4620]]},{"type":"Polygon","id":32017,"arcs":[[-3998,4621,4622,4623,4624,4625,-4253,-3564]]},{"type":"Polygon","id":8085,"arcs":[[-4178,4626,4627,4628,-4097,-4206]]},{"type":"Polygon","id":54015,"arcs":[[4629,4630,-4412,-4358,-4453]]},{"type":"Polygon","id":17163,"arcs":[[-4534,4631,4632,4633,-4455,-4521,-4379]]},{"type":"Polygon","id":51113,"arcs":[[-4598,4634,4635,-4502,-4478]]},{"type":"Polygon","id":54039,"arcs":[[-4413,-4631,4636,4637,4638,4639,4640,-4621,-4320]]},{"type":"Polygon","id":8061,"arcs":[[-4592,4641,4642,4643,4644,-3986,-4356]]},{"type":"Polygon","id":20113,"arcs":[[4645,4646,4647,4648,-4466,-4399]]},{"type":"Polygon","id":20115,"arcs":[[-4465,4649,4650,4651,-4646,-4287]]},{"type":"Polygon","id":21201,"arcs":[[-4525,4652,4653,4654,-4507]]},{"type":"Polygon","id":17191,"arcs":[[-4494,4655,4656,4657,4658,-4509,-4438]]},{"type":"Polygon","id":18019,"arcs":[[-4557,4659,4660,4661,-4516,-4504,-4435]]},{"type":"Polygon","id":54011,"arcs":[[-4368,-4620,4662,4663,-4495,-4364]]},{"type":"Polygon","id":21103,"arcs":[[4664,4665,4666,-4555,-4527,-4560]]},{"type":"Polygon","id":51091,"arcs":[[4667,4668,-4535,-4403]]},{"type":"Polygon","id":51179,"arcs":[[4669,4670,4671,4672,4673,4674,-4595,-4375,-4411]]},{"type":"Polygon","id":21097,"arcs":[[-4655,4675,4676,4677,-4513,-4460,-4459,-4508]]},{"type":"Polygon","id":49001,"arcs":[[-4354,4678,4679,4680,-4622,-3997]]},{"type":"Polygon","id":17047,"arcs":[[4681,4682,-4656,-4493]]},{"type":"Polygon","id":17185,"arcs":[[-4492,-4486,-4444,4683,4684,-4682]]},{"type":"Polygon","id":29083,"arcs":[[-4407,4685,4686,4687,-4499,-4414]]},{"type":"Polygon","id":24045,"arcs":[[4688,4689,4690,-4581,-4397]]},{"type":"Polygon","id":54067,"arcs":[[-4550,4691,4692,-4637,-4630,-4452]]},{"type":"Polygon","id":18125,"arcs":[[4693,4694,4695,-4441,-4450]]},{"type":"MultiPolygon","id":6095,"arcs":[[[4696,-4474]],[[-4554,4697,-4472,-4431,-4430]]]},{"type":"Polygon","id":29015,"arcs":[[-4605,4698,4699,4700,-4686,-4406]]},{"type":"Polygon","id":18051,"arcs":[[4701,4702,4703,4704,-4684,-4443,-4442,-4696]]},{"type":"Polygon","id":18037,"arcs":[[-4618,4705,4706,4707,4708,-4694,-4449,-4447]]},{"type":"Polygon","id":21069,"arcs":[[4709,4710,4711,-4653,-4524,-4563]]},{"type":"Polygon","id":21185,"arcs":[[-4667,4712,4713,-4660,-4556]]},{"type":"Polygon","id":20017,"arcs":[[-4543,4714,4715,-4650,-4464]]},{"type":"Polygon","id":8101,"arcs":[[4716,4717,4718,4719,4720,-4610,-4300]]},{"type":"Polygon","id":8025,"arcs":[[-4645,4721,4722,-4717,-3987]]},{"type":"Polygon","id":20159,"arcs":[[-4649,4723,4724,-4606,-4467]]},{"type":"Polygon","id":17133,"arcs":[[4725,4726,4727,-4456,-4634]]},{"type":"Polygon","id":17189,"arcs":[[-4532,-4511,4728,4729,4730,-4632,-4533]]},{"type":"Polygon","id":24037,"arcs":[[-4615,4731]]},{"type":"Polygon","id":6009,"arcs":[[-4421,4732,4733,4734,-4579]]},{"type":"Polygon","id":49031,"arcs":[[4735,4736,-4679,-4353]]},{"type":"Polygon","id":49055,"arcs":[[-3855,4737,4738,-4736,-4352]]},{"type":"Polygon","id":29099,"arcs":[[-4728,4739,4740,4741,-4574,-4457]]},{"type":"Polygon","id":21019,"arcs":[[4742,4743,-4529,-4497,4744]]},{"type":"Polygon","id":21043,"arcs":[[-4744,4745,4746,4747,-4561,-4530]]},{"type":"Polygon","id":49037,"arcs":[[-4629,4748,4749,4750,4751,4752,4753,4754,4755,-4738,-4027]]},{"type":"Polygon","id":21209,"arcs":[[4756,4757,4758,4759,-4558,-4514,-4678]]},{"type":"Polygon","id":51079,"arcs":[[4760,4761,-4489,-4503,-4636]]},{"type":"Polygon","id":51015,"arcs":[[4762,4763,4764,4765,-4668,-4402,-4491]]},{"type":"Polygon","id":17081,"arcs":[[-4659,4766,4767,4768,-4729,-4510]]},{"type":"Polygon","id":29013,"arcs":[[-4688,4769,4770,4771,-4547,-4500]]},{"type":"Polygon","id":32009,"arcs":[[4772,-4569,-4323,-4256]]},{"type":"Polygon","id":21181,"arcs":[[-4712,4773,4774,-4676,-4654]]},{"type":"Polygon","id":8109,"arcs":[[-4612,4775,4776,4777,4778,4779,4780,-4175,-4346]]},{"type":"MultiPolygon","id":24047,"arcs":[[[4781,4782,4783,-4689,-4396,4784]]]},{"type":"Polygon","id":6109,"arcs":[[-4573,4785,4786,4787,-4733,-4420]]},{"type":"Polygon","id":20031,"arcs":[[-4546,4788,4789,4790,-4541,-4470]]},{"type":"Polygon","id":29131,"arcs":[[-4540,-4578,4791,4792,4793,-4603,-4427]]},{"type":"Polygon","id":18025,"arcs":[[4794,4795,4796,-4706,-4617,-4519]]},{"type":"Polygon","id":18061,"arcs":[[4797,4798,4799,4800,-4795,-4518]]},{"type":"Polygon","id":54099,"arcs":[[-4664,4801,4802,4803,4804,-4745,-4496]]},{"type":"Polygon","id":18043,"arcs":[[-4662,4805,-4798,-4517]]},{"type":"Polygon","id":51099,"arcs":[[4806,4807,4808,4809,-4671,4810]]},{"type":"Polygon","id":21205,"arcs":[[-4748,4811,4812,4813,4814,-4710,-4562]]},{"type":"Polygon","id":51137,"arcs":[[4815,4816,4817,-4761,-4635,-4597]]},{"type":"Polygon","id":20003,"arcs":[[4818,4819,-4789,-4545]]},{"type":"Polygon","id":20107,"arcs":[[-4772,4820,4821,-4819,-4548]]},{"type":"Polygon","id":21111,"arcs":[[4822,4823,4824,4825,-4799,-4806,-4661,-4714]]},{"type":"Polygon","id":51177,"arcs":[[-4675,4826,-4673,4827,4828,4829,-4816,-4596]]},{"type":"Polygon","id":54043,"arcs":[[-4619,-4641,4830,4831,4832,-4802,-4663]]},{"type":"Polygon","id":21073,"arcs":[[-4559,-4760,4833,4834,4835,-4665]]},{"type":"Polygon","id":21017,"arcs":[[4836,4837,4838,-4757,-4677,-4775]]},{"type":"Polygon","id":21211,"arcs":[[4839,4840,-4823,-4713,-4666,-4836]]},{"type":"Polygon","id":20145,"arcs":[[-4608,4841,4842,4843,-4600,-4613]]},{"type":"Polygon","id":8091,"arcs":[[-4177,4844,4845,4846,-4627]]},{"type":"Polygon","id":6041,"arcs":[[4847,-4484]]},{"type":"Polygon","id":21011,"arcs":[[-4815,4848,4849,-4774,-4711]]},{"type":"Polygon","id":6077,"arcs":[[-4580,-4735,4850,4851,4852,4853,-4552]]},{"type":"Polygon","id":29125,"arcs":[[-4567,4854,4855,-4792,-4577]]},{"type":"Polygon","id":24039,"arcs":[[-4690,-4784,4856,4857,4858]]},{"type":"Polygon","id":51003,"arcs":[[-4818,4859,4860,4861,4862,-4763,-4490,-4762]]},{"type":"Polygon","id":51193,"arcs":[[4863,4864,4865,-4807,4866]]},{"type":"Polygon","id":29029,"arcs":[[-4794,4867,4868,4869,4870,-4699,-4604]]},{"type":"Polygon","id":21127,"arcs":[[-4805,4871,4872,4873,4874,-4746,-4743]]},{"type":"Polygon","id":51017,"arcs":[[-4669,-4766,4875,4876,4877,-4536]]},{"type":"Polygon","id":8099,"arcs":[[-4591,4878,4879,4880,4881,-4642]]},{"type":"Polygon","id":54025,"arcs":[[-4878,4882,4883,4884,4885,-4692,-4549,-4537]]},{"type":"Polygon","id":21063,"arcs":[[-4875,4886,-4812,-4747]]},{"type":"Polygon","id":8027,"arcs":[[-4721,4887,-4776,-4611]]},{"type":"Polygon","id":8011,"arcs":[[-4882,4888,4889,4890,-4643]]},{"type":"Polygon","id":8089,"arcs":[[-4891,4891,-4718,-4723,-4722,-4644]]},{"type":"Polygon","id":18123,"arcs":[[4892,4893,4894,4895,-4707,-4797]]},{"type":"Polygon","id":54019,"arcs":[[-4693,-4886,4896,4897,-4638]]},{"type":"Polygon","id":20093,"arcs":[[4898,4899,4900,-4593,-4585]]},{"type":"Polygon","id":20055,"arcs":[[-4588,-4602,4901,4902,4903,-4899,-4584]]},{"type":"Polygon","id":20075,"arcs":[[-4901,4904,-4879,-4590,-4594]]},{"type":"Polygon","id":17193,"arcs":[[-4685,-4705,4905,4906,4907,-4657,-4683]]},{"type":"Polygon","id":20185,"arcs":[[-4725,4908,4909,4910,-4842,-4607]]},{"type":"Polygon","id":20083,"arcs":[[-4844,4911,4912,4913,-4902,-4601]]},{"type":"Polygon","id":17065,"arcs":[[-4908,4914,4915,4916,-4767,-4658]]},{"type":"Polygon","id":51033,"arcs":[[-4810,4917,4918,4919,4920,-4828,-4672]]},{"type":"Polygon","id":18173,"arcs":[[-4709,4921,4922,4923,4924,4925,-4702,-4695]]},{"type":"Polygon","id":18129,"arcs":[[4926,4927,4928,4929,-4906,-4704]]},{"type":"Polygon","id":54005,"arcs":[[4930,4931,4932,-4831,-4640]]},{"type":"Polygon","id":17157,"arcs":[[-4633,-4731,4933,4934,4935,4936,-4726]]},{"type":"Polygon","id":29185,"arcs":[[-4701,4937,4938,4939,4940,-4770,-4687]]},{"type":"Polygon","id":17145,"arcs":[[-4730,-4769,4941,4942,-4934]]},{"type":"Polygon","id":29055,"arcs":[[-4576,4943,4944,4945,4946,-4565]]},{"type":"Polygon","id":21067,"arcs":[[4947,4948,4949,4950,-4758,-4839]]},{"type":"Polygon","id":29221,"arcs":[[-4742,4951,4952,-4944,-4575]]},{"type":"Polygon","id":18147,"arcs":[[-4896,4953,4954,-4923,-4922,-4708]]},{"type":"Polygon","id":21163,"arcs":[[4955,4956,-4893,-4796,-4801]]},{"type":"Polygon","id":21239,"arcs":[[-4951,4957,4958,4959,-4834,-4759]]},{"type":"Polygon","id":21173,"arcs":[[4960,4961,4962,-4837,-4850]]},{"type":"Polygon","id":20079,"arcs":[[4963,4964,4965,-4647,-4652]]},{"type":"Polygon","id":20073,"arcs":[[-4542,-4791,4966,4967,4968,4969,-4715]]},{"type":"Polygon","id":20155,"arcs":[[-4648,-4966,4970,4971,4972,-4909,-4724]]},{"type":"Polygon","id":18163,"arcs":[[-4926,4973,4974,-4927,-4703]]},{"type":"Polygon","id":29161,"arcs":[[-4947,4975,4976,4977,-4855,-4566]]},{"type":"Polygon","id":49017,"arcs":[[-4756,4978,4979,-4680,-4737,-4739]]},{"type":"Polygon","id":51057,"arcs":[[4980,4981,-4918,-4809,4982]]},{"type":"Polygon","id":8113,"arcs":[[-4847,4983,4984,-4749,-4628]]},{"type":"Polygon","id":51109,"arcs":[[-4830,4985,4986,4987,-4860,-4817]]},{"type":"Polygon","id":49021,"arcs":[[-4980,4988,4989,-4623,-4681]]},{"type":"Polygon","id":21215,"arcs":[[4990,4991,4992,-4824,-4841]]},{"type":"Polygon","id":8053,"arcs":[[-4781,4993,4994,4995,4996,-4845,-4176]]},{"type":"Polygon","id":21005,"arcs":[[-4960,4997,4998,4999,-4991,-4840,-4835]]},{"type":"Polygon","id":17055,"arcs":[[-4917,5000,5001,5002,-4942,-4768]]},{"type":"Polygon","id":51159,"arcs":[[5003,5004,5005,-4865]]},{"type":"Polygon","id":29186,"arcs":[[-4937,5006,5007,-4740,-4727]]},{"type":"Polygon","id":21029,"arcs":[[5008,5009,-4825,-4993]]},{"type":"Polygon","id":21175,"arcs":[[-4874,5010,5011,5012,5013,-4813,-4887]]},{"type":"Polygon","id":21049,"arcs":[[5014,5015,5016,-4948,-4838,-4963]]},{"type":"Polygon","id":6013,"arcs":[[-4853,5017,5018]]},{"type":"Polygon","id":20015,"arcs":[[-4716,-4970,5019,5020,5021,-4964,-4651]]},{"type":"Polygon","id":20047,"arcs":[[-4911,5022,5023,5024,-4912,-4843]]},{"type":"Polygon","id":51163,"arcs":[[5025,5026,5027,5028,-4876,-4765,5029]]},{"type":"Polygon","id":29187,"arcs":[[-5008,5030,5031,5032,-4952,-4741]]},{"type":"Polygon","id":6099,"arcs":[[5033,5034,5035,-4851,-4734,-4788]]},{"type":"Polygon","id":29085,"arcs":[[-4871,5036,5037,-4938,-4700]]},{"type":"Polygon","id":29217,"arcs":[[-4941,5038,5039,5040,5041,-4821,-4771]]},{"type":"Polygon","id":21165,"arcs":[[-4814,-5014,5042,5043,-4961,-4849]]},{"type":"Polygon","id":51125,"arcs":[[5044,5045,5046,-5030,-4764,-4863]]},{"type":"Polygon","id":21027,"arcs":[[5047,5048,5049,5050,-4894,-4957]]},{"type":"Polygon","id":20207,"arcs":[[5051,5052,-4967,-4790]]},{"type":"Polygon","id":20001,"arcs":[[5053,5054,-5052,-4820]]},{"type":"Polygon","id":20011,"arcs":[[-5042,5055,5056,-5054,-4822]]},{"type":"MultiPolygon","id":51001,"arcs":[[[5057,5058,-4782,5059]]]},{"type":"Polygon","id":54045,"arcs":[[-4933,5060,5061,-4832]]},{"type":"Polygon","id":51133,"arcs":[[5062,-5004,-4864,5063]]},{"type":"Polygon","id":29169,"arcs":[[-4856,-4978,5064,5065,-4868,-4793]]},{"type":"Polygon","id":8055,"arcs":[[-4720,5066,5067,5068,-4777,-4888]]},{"type":"Polygon","id":51085,"arcs":[[-4921,5069,5070,5071,5072,-4986,-4829]]},{"type":"Polygon","id":51065,"arcs":[[5073,5074,-4861,-4988,5075]]},{"type":"Polygon","id":21093,"arcs":[[5076,5077,5078,5079,5080,-5048,-4956,-4800,-4826,-5010]]},{"type":"Polygon","id":21113,"arcs":[[5081,5082,5083,-4958,-4950]]},{"type":"Polygon","id":21115,"arcs":[[5084,5085,5086,-5011,-4873]]},{"type":"Polygon","id":20069,"arcs":[[-4914,5087,5088,5089,-4903]]},{"type":"Polygon","id":21091,"arcs":[[-5051,5090,5091,-4954,-4895]]},{"type":"Polygon","id":54081,"arcs":[[-4639,-4898,5092,5093,5094,-4931]]},{"type":"Polygon","id":21179,"arcs":[[-5000,5095,5096,5097,-5077,-5009,-4992]]},{"type":"Polygon","id":54059,"arcs":[[5098,5099,5100,5101,5102,-4803,-4833,-5062]]},{"type":"Polygon","id":21101,"arcs":[[-4974,-4925,5103,5104,5105,5106,-4928,-4975]]},{"type":"Polygon","id":51097,"arcs":[[-4982,5107,5108,5109,5110,-4919]]},{"type":"Polygon","id":8111,"arcs":[[-4997,5111,5112,-4984,-4846]]},{"type":"Polygon","id":21167,"arcs":[[-5084,5113,5114,5115,-4998,-4959]]},{"type":"Polygon","id":8079,"arcs":[[5116,5117,-4994,-4780]]},{"type":"Polygon","id":21159,"arcs":[[-4804,-5103,5118,5119,-5085,-4872]]},{"type":"Polygon","id":51005,"arcs":[[-5029,5120,5121,5122,-4883,-4877]]},{"type":"Polygon","id":17077,"arcs":[[-5003,5123,5124,5125,-4935,-4943]]},{"type":"Polygon","id":21197,"arcs":[[-5044,5126,5127,5128,-5015,-4962]]},{"type":"Polygon","id":21059,"arcs":[[5129,5130,-5104,-4924,-4955,-5092]]},{"type":"Polygon","id":21151,"arcs":[[5131,5132,5133,5134,-5082,-4949,-5017]]},{"type":"Polygon","id":17059,"arcs":[[-4930,5135,5136,5137,-4915,-4907]]},{"type":"Polygon","id":21229,"arcs":[[-5116,5138,5139,-5096,-4999]]},{"type":"Polygon","id":20057,"arcs":[[-5025,5140,5141,5142,-5088,-4913]]},{"type":"Polygon","id":20173,"arcs":[[-5022,5143,5144,-4971,-4965]]},{"type":"Polygon","id":17165,"arcs":[[-5138,5145,5146,5147,-5001,-4916]]},{"type":"Polygon","id":51101,"arcs":[[-5111,5148,5149,-5070,-4920]]},{"type":"Polygon","id":29059,"arcs":[[-4870,5150,5151,5152,5153,-5037]]},{"type":"Polygon","id":6001,"arcs":[[-4852,-5036,5154,5155,-5018]]},{"type":"Polygon","id":51075,"arcs":[[5156,5157,5158,-5076,-4987,-5073]]},{"type":"Polygon","id":29157,"arcs":[[-5126,5159,5160,5161,5162,-5031,-5007,-4936]]},{"type":"Polygon","id":29039,"arcs":[[5163,5164,5165,-5039,-4940]]},{"type":"Polygon","id":6043,"arcs":[[5166,5167,-4787]]},{"type":"Polygon","id":21225,"arcs":[[5168,5169,5170,-5136,-4929,-5107]]},{"type":"Polygon","id":29105,"arcs":[[-5066,5171,5172,5173,-5151,-4869]]},{"type":"Polygon","id":8033,"arcs":[[-5113,5174,-4750,-4985]]},{"type":"Polygon","id":21153,"arcs":[[-5087,5175,5176,5177,5178,-5012]]},{"type":"Polygon","id":54089,"arcs":[[5179,5180,-5093,-4897,-4885,5181]]},{"type":"Polygon","id":17199,"arcs":[[-5148,5182,5183,-5124,-5002]]},{"type":"Polygon","id":21237,"arcs":[[-5179,5184,5185,-5127,-5043,-5013]]},{"type":"Polygon","id":21065,"arcs":[[-5129,5186,5187,-5132,-5016]]},{"type":"Polygon","id":51103,"arcs":[[-5005,-5063,5188]]},{"type":"Polygon","id":8105,"arcs":[[-4779,5189,5190,5191,-5117]]},{"type":"Polygon","id":6075,"arcs":[[5192,5193]]},{"type":"Polygon","id":29167,"arcs":[[-5038,-5154,5194,5195,-5164,-4939]]},{"type":"Polygon","id":21079,"arcs":[[-5135,5196,5197,5198,-5114,-5083]]},{"type":"Polygon","id":20151,"arcs":[[-4973,5199,5200,5201,-5023,-4910]]},{"type":"Polygon","id":51009,"arcs":[[5202,5203,5204,5205,-5026,-5047]]},{"type":"Polygon","id":8071,"arcs":[[-4890,5206,5207,5208,5209,-5067,-4719,-4892]]},{"type":"Polygon","id":51023,"arcs":[[5210,5211,5212,-5121,-5028]]},{"type":"Polygon","id":29065,"arcs":[[-4946,5213,5214,5215,5216,-4976]]},{"type":"Polygon","id":54109,"arcs":[[5217,5218,-5099,-5061,-4932,-5095]]},{"type":"Polygon","id":51029,"arcs":[[5219,5220,5221,-5045,-4862,-5075]]},{"type":"Polygon","id":6039,"arcs":[[-4572,5222,5223,-5167,-4786]]},{"type":"Polygon","id":51119,"arcs":[[5224,-5108,-4981,5225]]},{"type":"Polygon","id":21071,"arcs":[[-5120,5226,5227,-5176,-5086]]},{"type":"Polygon","id":8003,"arcs":[[-5069,5228,5229,-5190,-4778]]},{"type":"Polygon","id":51049,"arcs":[[-5159,5230,5231,5232,-5220,-5074]]},{"type":"Polygon","id":21195,"arcs":[[5233,5234,5235,5236,5237,-5227,-5119,-5102]]},{"type":"Polygon","id":29093,"arcs":[[-5033,5238,5239,5240,-5214,-4945,-4953]]},{"type":"Polygon","id":20187,"arcs":[[5241,5242,5243,5244,-4880,-4905]]},{"type":"Polygon","id":21183,"arcs":[[-5050,5245,5246,5247,5248,-5130,-5091]]},{"type":"Polygon","id":20067,"arcs":[[5249,5250,-5242,-4900]]},{"type":"Polygon","id":20081,"arcs":[[-5090,5251,5252,5253,-5250,-4904]]},{"type":"Polygon","id":20097,"arcs":[[-5202,5254,5255,5256,-5141,-5024]]},{"type":"Polygon","id":20095,"arcs":[[-5145,5257,5258,5259,-5200,-4972]]},{"type":"Polygon","id":20205,"arcs":[[5260,5261,5262,-4968,-5053]]},{"type":"Polygon","id":20133,"arcs":[[-5057,5263,5264,5265,-5261,-5055]]},{"type":"Polygon","id":21123,"arcs":[[5266,5267,5268,5269,-5078,-5098]]},{"type":"Polygon","id":21155,"arcs":[[-5140,5270,5271,5272,-5267,-5097]]},{"type":"Polygon","id":54063,"arcs":[[-5123,5273,5274,-5182,-4884]]},{"type":"Polygon","id":21129,"arcs":[[-5186,5275,5276,5277,-5187,-5128]]},{"type":"Polygon","id":21021,"arcs":[[-5199,5278,5279,-5271,-5139,-5115]]},{"type":"Polygon","id":51087,"arcs":[[5280,5281,5282,5283,5284,5285,5286,5287,-5157,-5072]]},{"type":"Polygon","id":6081,"arcs":[[5288,5289,5290,5291,-5193]]},{"type":"Polygon","id":21025,"arcs":[[-5178,5292,5293,5294,-5276,-5185]]},{"type":"Polygon","id":51145,"arcs":[[5295,5296,-5231,-5158]]},{"type":"Polygon","id":21149,"arcs":[[-5249,5297,5298,5299,-5105,-5131]]},{"type":"Polygon","id":20037,"arcs":[[-5041,5300,5301,5302,5303,-5264,-5056]]},{"type":"Polygon","id":51045,"arcs":[[5304,5305,5306,-5274,-5122,-5213]]},{"type":"Polygon","id":8023,"arcs":[[-5210,5307,5308,5309,-5229,-5068]]},{"type":"Polygon","id":29011,"arcs":[[-5166,5310,5311,-5301,-5040]]},{"type":"Polygon","id":21233,"arcs":[[5312,5313,5314,-5169,-5106,-5300]]},{"type":"Polygon","id":29123,"arcs":[[-5163,5315,5316,-5239,-5032]]},{"type":"Polygon","id":8009,"arcs":[[-5245,5317,5318,5319,-5207,-4889,-4881]]},{"type":"Polygon","id":8083,"arcs":[[5320,5321,-4751,-5175]]},{"type":"Polygon","id":8067,"arcs":[[-4996,5322,5323,-5321,-5112]]},{"type":"Polygon","id":6047,"arcs":[[-5224,5324,5325,5326,-5034,-5168]]},{"type":"Polygon","id":21137,"arcs":[[5327,5328,5329,-5279,-5198]]},{"type":"Polygon","id":51127,"arcs":[[5330,5331,5332,-5281,-5071,-5150]]},{"type":"Polygon","id":21085,"arcs":[[-5081,-5080,5333,5334,5335,-5246,-5049]]},{"type":"Polygon","id":51019,"arcs":[[5336,5337,5338,5339,5340,-5211,-5027,-5206]]},{"type":"Polygon","id":49053,"arcs":[[5341,5342,-4624,-4990]]},{"type":"Polygon","id":20049,"arcs":[[-5263,5343,5344,5345,-5020,-4969]]},{"type":"Polygon","id":29179,"arcs":[[5346,5347,5348,-5215,-5241]]},{"type":"Polygon","id":29031,"arcs":[[5349,5350,5351,5352,5353,-5161]]},{"type":"Polygon","id":29215,"arcs":[[-4977,-5217,5354,5355,5356,5357,-5172,-5065]]},{"type":"Polygon","id":17069,"arcs":[[-5137,-5171,5358,5359,5360,-5146]]},{"type":"Polygon","id":17151,"arcs":[[-5361,5361,5362,5363,-5147]]},{"type":"Polygon","id":51760,"arcs":[[-5285,5364,-5287,-5286]]},{"type":"Polygon","id":17087,"arcs":[[-5364,5365,5366,5367,-5183]]},{"type":"Polygon","id":17181,"arcs":[[-5184,-5368,5368,5369,-5350,-5160,-5125]]},{"type":"Polygon","id":51073,"arcs":[[5370,5371,5372,-5109,-5225]]},{"type":"Polygon","id":29017,"arcs":[[-5354,5373,5374,-5316,-5162]]},{"type":"Polygon","id":54055,"arcs":[[-5181,5375,5376,5377,5378,-5218,-5094]]},{"type":"Polygon","id":6019,"arcs":[[5379,5380,5381,5382,5383,-5325,-5223,-4571]]},{"type":"Polygon","id":29057,"arcs":[[-5196,5384,5385,5386,-5311,-5165]]},{"type":"Polygon","id":21109,"arcs":[[-5278,5387,5388,5389,5390,-5133,-5188]]},{"type":"Polygon","id":21107,"arcs":[[5391,5392,5393,-5313,-5299]]},{"type":"Polygon","id":51041,"arcs":[[-5365,-5284,5394,5395,5396,5397,5398,5399,5400,5401,-5296,-5288]]},{"type":"Polygon","id":51011,"arcs":[[5402,5403,5404,-5203,-5046,-5222]]},{"type":"MultiPolygon","id":51131,"arcs":[[[5405,-5058]]]},{"type":"Polygon","id":21045,"arcs":[[-5330,5406,5407,5408,5409,-5272,-5280]]},{"type":"Polygon","id":54047,"arcs":[[-5379,5410,5411,-5100,-5219]]},{"type":"Polygon","id":21055,"arcs":[[-5315,5412,5413,5414,-5359,-5170]]},{"type":"Polygon","id":49025,"arcs":[[-4979,-4755,5415,5416,-5342,-4989]]},{"type":"Polygon","id":21189,"arcs":[[-5295,5417,5418,-5388,-5277]]},{"type":"Polygon","id":21203,"arcs":[[-5391,5419,5420,-5328,-5197,-5134]]},{"type":"Polygon","id":51027,"arcs":[[-5412,5421,5422,5423,-5234,-5101]]},{"type":"Polygon","id":51115,"arcs":[[-5372,5424]]},{"type":"Polygon","id":21119,"arcs":[[-5177,-5228,-5238,5425,5426,-5293]]},{"type":"Polygon","id":51007,"arcs":[[-5402,5427,5428,5429,-5232,-5297]]},{"type":"Polygon","id":51036,"arcs":[[5430,5431,-5282,-5333]]},{"type":"Polygon","id":29225,"arcs":[[-5174,5432,5433,5434,5435,-5152]]},{"type":"Polygon","id":6085,"arcs":[[-5035,-5327,5436,5437,-5290,5438,-5155]]},{"type":"Polygon","id":21217,"arcs":[[-5273,-5410,5439,5440,-5268]]},{"type":"Polygon","id":29229,"arcs":[[-5358,5441,-5433,-5173]]},{"type":"Polygon","id":51071,"arcs":[[-5307,5442,5443,5444,-5376,-5180,-5275]]},{"type":"Polygon","id":20035,"arcs":[[-5346,5445,5446,5447,5448,-5021]]},{"type":"Polygon","id":20191,"arcs":[[-5449,5449,5450,5451,-5258,-5144]]},{"type":"Polygon","id":20119,"arcs":[[-5143,5452,5453,5454,-5252,-5089]]},{"type":"Polygon","id":20025,"arcs":[[-5257,5455,5456,5457,-5453,-5142]]},{"type":"Polygon","id":20007,"arcs":[[-5260,5458,5459,5460,5461,-5255,-5201]]},{"type":"Polygon","id":21087,"arcs":[[-5441,5462,5463,5464,-5269]]},{"type":"Polygon","id":51680,"arcs":[[-5205,5465,-5337]]},{"type":"Polygon","id":6027,"arcs":[[-4773,-4255,5466,5467,5468,5469,-5380,-4570]]},{"type":"Polygon","id":51095,"arcs":[[5470,5471,5472,-5431,-5332,5473,5474,5475]]},{"type":"Polygon","id":21099,"arcs":[[-5270,-5465,5476,5477,5478,-5334,-5079]]},{"type":"Polygon","id":21193,"arcs":[[-5427,5479,5480,5481,5482,-5418,-5294]]},{"type":"Polygon","id":51031,"arcs":[[-5405,5483,5484,5485,-5338,-5466,-5204]]},{"type":"Polygon","id":29077,"arcs":[[-5153,-5436,5486,5487,-5385,-5195]]},{"type":"Polygon","id":21139,"arcs":[[-5415,5488,5489,5490,5491,-5362,-5360]]},{"type":"Polygon","id":29203,"arcs":[[-5349,5492,5493,5494,-5355,-5216]]},{"type":"Polygon","id":8007,"arcs":[[-5118,-5192,5495,5496,5497,-5323,-4995]]},{"type":"Polygon","id":51161,"arcs":[[-5341,5498,5499,5500,-5305,-5212],[5501,5502]]},{"type":"Polygon","id":21177,"arcs":[[5503,5504,5505,5506,-5392,-5298,-5248]]},{"type":"Polygon","id":51147,"arcs":[[-5233,-5430,5507,5508,5509,-5403,-5221]]},{"type":"Polygon","id":8021,"arcs":[[-5191,-5230,-5310,5510,5511,-5496]]},{"type":"Polygon","id":21031,"arcs":[[5512,5513,-5504,-5247,-5336,5514]]},{"type":"Polygon","id":20129,"arcs":[[5515,5516,5517,-5318,-5244]]},{"type":"Polygon","id":20189,"arcs":[[-5254,5518,5519,-5516,-5243,-5251]]},{"type":"Polygon","id":20175,"arcs":[[-5455,5520,5521,-5519,-5253]]},{"type":"Polygon","id":20125,"arcs":[[-5262,-5266,5522,5523,5524,5525,-5344]]},{"type":"Polygon","id":20077,"arcs":[[5526,5527,-5459,-5259,-5452]]},{"type":"Polygon","id":20033,"arcs":[[5528,5529,-5456,-5256,-5462]]},{"type":"Polygon","id":20099,"arcs":[[-5304,5530,5531,5532,-5523,-5265]]},{"type":"Polygon","id":21033,"arcs":[[-5394,5533,5534,5535,-5413,-5314]]},{"type":"Polygon","id":51199,"arcs":[[5536,5537,5538,5539,-5471,5540,-5475]]},{"type":"Polygon","id":29097,"arcs":[[-5387,5541,5542,5543,-5302,-5312]]},{"type":"Polygon","id":51121,"arcs":[[5544,5545,5546,5547,-5443,-5306,-5501]]},{"type":"Polygon","id":21051,"arcs":[[-5483,5548,5549,5550,5551,-5389,-5419]]},{"type":"Polygon","id":21199,"arcs":[[5552,5553,5554,-5407,-5329,-5421,5555]]},{"type":"Polygon","id":20021,"arcs":[[-5544,5556,5557,5558,-5531,-5303]]},{"type":"Polygon","id":21061,"arcs":[[-5479,5559,5560,-5515,-5335]]},{"type":"Polygon","id":51770,"arcs":[[5561,-5503]]},{"type":"Polygon","id":17127,"arcs":[[-5492,5562,5563,-5366,-5363]]},{"type":"Polygon","id":51185,"arcs":[[-5378,5564,5565,5566,-5422,-5411]]},{"type":"Polygon","id":17003,"arcs":[[5567,5568,5569,5570,-5351,-5370]]},{"type":"Polygon","id":21125,"arcs":[[-5552,5571,5572,5573,-5556,-5420,-5390]]},{"type":"Polygon","id":17153,"arcs":[[-5367,-5564,5574,5575,-5568,-5369]]},{"type":"Polygon","id":21131,"arcs":[[5576,5577,-5549,-5482]]},{"type":"Polygon","id":29223,"arcs":[[-5375,5578,5579,5580,-5347,-5240,-5317]]},{"type":"Polygon","id":51149,"arcs":[[5581,5582,5583,5584,5585,-5397,5586]]},{"type":"Polygon","id":21001,"arcs":[[-5409,5587,5588,5589,-5463,-5440]]},{"type":"Polygon","id":51051,"arcs":[[5590,5591,-5235,-5424]]},{"type":"Polygon","id":20019,"arcs":[[-5526,5592,5593,-5446,-5345]]},{"type":"Polygon","id":51021,"arcs":[[5594,5595,5596,-5565,-5377,-5445]]},{"type":"Polygon","id":51135,"arcs":[[5597,5598,-5508,-5429,5599]]},{"type":"Polygon","id":29109,"arcs":[[-5488,5600,5601,5602,5603,-5542,-5386]]},{"type":"Polygon","id":6087,"arcs":[[5604,5605,5606,-5291,-5438]]},{"type":"Polygon","id":51053,"arcs":[[5607,-5585,5608,5609,5610,-5600,-5428,-5401]]},{"type":"Polygon","id":21133,"arcs":[[-5237,5611,5612,-5480,-5426]]},{"type":"Polygon","id":29201,"arcs":[[5613,5614,5615,-5352,-5571]]},{"type":"Polygon","id":51037,"arcs":[[5616,5617,5618,-5484,-5404,-5510]]},{"type":"Polygon","id":51155,"arcs":[[5619,-5546,5620,5621,5622,-5595,-5444,-5548]]},{"type":"Polygon","id":51181,"arcs":[[5623,5624,5625,-5583,5626]]},{"type":"Polygon","id":51067,"arcs":[[5627,5628,5629,5630,-5499,-5340]]},{"type":"Polygon","id":21007,"arcs":[[5631,5632,-5569,-5576,5633]]},{"type":"Polygon","id":21145,"arcs":[[-5491,5634,5635,5636,-5634,-5575,-5563]]},{"type":"Polygon","id":51700,"arcs":[[5637,5638,-5472,-5540]]},{"type":"Polygon","id":51195,"arcs":[[5639,5640,5641,5642,-5612,-5236,-5592]]},{"type":"Polygon","id":21227,"arcs":[[-5561,5643,5644,5645,5646,-5513]]},{"type":"Polygon","id":21207,"arcs":[[-5555,5647,5648,5649,-5588,-5408]]},{"type":"Polygon","id":21169,"arcs":[[-5590,5650,5651,5652,-5477,-5464]]},{"type":"Polygon","id":21143,"arcs":[[-5536,5653,5654,-5489,-5414]]},{"type":"Polygon","id":21009,"arcs":[[5655,5656,-5644,-5560,-5478,-5653]]},{"type":"Polygon","id":21047,"arcs":[[-5507,5657,5658,5659,5660,-5534,-5393]]},{"type":"Polygon","id":51093,"arcs":[[5661,5662,5663,5664,-5624,5665]]},{"type":"Polygon","id":51167,"arcs":[[5666,5667,5668,-5640,-5591,-5423,-5567]]},{"type":"Polygon","id":51143,"arcs":[[5669,5670,5671,5672,5673,5674,-5628,-5339,-5486]]},{"type":"Polygon","id":51063,"arcs":[[-5631,5675,5676,-5621,-5545,-5500]]},{"type":"Polygon","id":29207,"arcs":[[-5353,-5616,5677,5678,5679,-5579,-5374]]},{"type":"Polygon","id":51111,"arcs":[[-5599,5680,5681,-5617,-5509]]},{"type":"Polygon","id":51650,"arcs":[[-5638,-5539,-5683,5683]]},{"type":"Polygon","id":51183,"arcs":[[5684,5685,-5609,-5584,-5626]]},{"type":"Polygon","id":29035,"arcs":[[-5581,5686,5687,5688,-5493,-5348]]},{"type":"Polygon","id":29043,"arcs":[[-5435,5689,5690,5691,-5601,-5487]]},{"type":"Polygon","id":51197,"arcs":[[5692,5693,5694,-5596,-5623]]},{"type":"Polygon","id":21141,"arcs":[[5695,5696,5697,-5505,-5514,-5647]]},{"type":"Polygon","id":21219,"arcs":[[-5698,5698,5699,-5658,-5506]]},{"type":"Polygon","id":29067,"arcs":[[-5442,-5357,5700,5701,5702,-5690,-5434]]},{"type":"Polygon","id":21157,"arcs":[[-5655,5703,5704,5705,-5635,-5490]]},{"type":"Polygon","id":29133,"arcs":[[-5633,5706,5707,5708,5709,-5614,-5570]]},{"type":"Polygon","id":51083,"arcs":[[-5619,5710,5711,5712,5713,-5670,-5485]]},{"type":"Polygon","id":29091,"arcs":[[-5495,5714,5715,5716,-5701,-5356]]},{"type":"Polygon","id":29145,"arcs":[[-5604,5717,5718,5719,-5557,-5543]]},{"type":"Polygon","id":21121,"arcs":[[5720,5721,-5572,-5551]]},{"type":"Polygon","id":51025,"arcs":[[-5611,5722,5723,5724,5725,-5681,-5598]]},{"type":"Polygon","id":21095,"arcs":[[-5613,-5643,5726,5727,-5577,-5481]]},{"type":"Polygon","id":51173,"arcs":[[-5597,-5695,5728,5729,-5667,-5566]]},{"type":"Polygon","id":4017,"arcs":[[5730,5731,5732,5733,-4753]]},{"type":"Polygon","id":4005,"arcs":[[-5734,5734,5735,5736,-5416,-4754]]},{"type":"Polygon","id":21221,"arcs":[[5737,5738,-5704,-5654,-5535,-5661]]},{"type":"Polygon","id":40105,"arcs":[[-5533,5739,5740,5741,-5524]]},{"type":"Polygon","id":40113,"arcs":[[5742,5743,5744,5745,5746,-5447,-5594]]},{"type":"Polygon","id":40151,"arcs":[[-5461,5747,5748,5749,5750,5751,-5529]]},{"type":"Polygon","id":40035,"arcs":[[-5559,5752,5753,5754,5755,-5740,-5532]]},{"type":"Polygon","id":40147,"arcs":[[-5742,5756,5757,-5743,-5593,-5525]]},{"type":"Polygon","id":40053,"arcs":[[5758,5759,5760,-5527,-5451]]},{"type":"Polygon","id":40003,"arcs":[[-5528,-5761,5761,5762,-5748,-5460]]},{"type":"Polygon","id":40071,"arcs":[[-5747,5763,5764,-5759,-5450,-5448]]},{"type":"Polygon","id":40115,"arcs":[[-5720,5765,5766,-5753,-5558]]},{"type":"Polygon","id":40059,"arcs":[[-5530,-5752,-5751,5767,5768,5769,-5457]]},{"type":"Polygon","id":35039,"arcs":[[-5512,5770,5771,5772,5773,5774,5775,-5497]]},{"type":"Polygon","id":35045,"arcs":[[-5776,5776,5777,5778,-5322,-5324,-5498]]},{"type":"Polygon","id":4001,"arcs":[[-5779,5779,5780,5781,5782,5783,-5731,-4752]]},{"type":"Polygon","id":35059,"arcs":[[5784,5785,5786,5787,5788,5789,-5208,-5320]]},{"type":"Polygon","id":40025,"arcs":[[-5518,5790,5791,5792,-5785,-5319]]},{"type":"Polygon","id":40139,"arcs":[[5793,5794,5795,5796,-5791,-5517,-5520,-5522]]},{"type":"Polygon","id":40007,"arcs":[[-5458,-5770,5797,5798,5799,-5794,-5521,-5454]]},{"type":"Polygon","id":51175,"arcs":[[5800,-5663,5801,5802,5803,5804,5805,-5685,-5625,-5665]]},{"type":"Polygon","id":21231,"arcs":[[5806,5807,5808,5809,-5648,-5554]]},{"type":"Polygon","id":35055,"arcs":[[5810,5811,-5771,-5511,-5309]]},{"type":"Polygon","id":35007,"arcs":[[-5790,5812,5813,-5811,-5308,-5209]]},{"type":"Polygon","id":29209,"arcs":[[5814,5815,5816,-5602,-5692]]},{"type":"Polygon","id":6069,"arcs":[[-5326,-5384,5817,-5605,-5437]]},{"type":"Polygon","id":21235,"arcs":[[-5722,5818,5819,5820,5821,-5573]]},{"type":"Polygon","id":51710,"arcs":[[5822,5823]]},{"type":"Polygon","id":21147,"arcs":[[-5822,5824,5825,-5807,-5553,-5574]]},{"type":"Polygon","id":21013,"arcs":[[-5578,-5728,5826,5827,-5819,-5721,-5550]]},{"type":"Polygon","id":21039,"arcs":[[-5637,5828,5829,-5707,-5632]]},{"type":"Polygon","id":21083,"arcs":[[-5706,5830,5831,5832,5833,-5829,-5636]]},{"type":"Polygon","id":21057,"arcs":[[5834,5835,5836,-5651,-5589,-5650]]},{"type":"Polygon","id":21003,"arcs":[[-5657,5837,5838,5839,5840,-5645]]},{"type":"Polygon","id":29009,"arcs":[[-5817,5841,5842,5843,-5718,-5603]]},{"type":"Polygon","id":51810,"arcs":[[5844,5845,5846,5847,5848,5849,5850,-5823,5851]]},{"type":"Polygon","id":51035,"arcs":[[5852,5853,5854,5855,5856,-5693,-5622,-5677]]},{"type":"Polygon","id":51191,"arcs":[[5857,5858,5859,-5668,-5730,5860,5861,5862,5863]]},{"type":"Polygon","id":29023,"arcs":[[-5680,5864,5865,5866,-5687,-5580]]},{"type":"Polygon","id":51800,"arcs":[[-5868,5868,5869,5870,-5802,-5662,5871]]},{"type":"Polygon","id":6053,"arcs":[[-5818,-5383,5872,5873,5874,-5606]]},{"type":"Polygon","id":51081,"arcs":[[-5686,-5806,5875,-5723,-5610]]},{"type":"Polygon","id":51105,"arcs":[[5876,5877,5878,-5827,-5727,-5642]]},{"type":"Polygon","id":51117,"arcs":[[-5726,5879,5880,5881,-5711,-5618,-5682]]},{"type":"Polygon","id":21053,"arcs":[[-5810,5882,5883,-5835,-5649]]},{"type":"Polygon","id":29149,"arcs":[[-5689,5884,5885,5886,5887,-5715,-5494]]},{"type":"Polygon","id":51169,"arcs":[[-5669,-5860,5888,5889,5890,-5877,-5641]]},{"type":"Polygon","id":21213,"arcs":[[5891,5892,-5696,-5646,-5841]]},{"type":"Polygon","id":51141,"arcs":[[5893,5894,5895,-5853,-5676,-5630]]},{"type":"Polygon","id":29143,"arcs":[[-5710,5896,5897,5898,5899,5900,5901,-5678,-5615]]},{"type":"Polygon","id":51550,"arcs":[[5902,-5904,5904,5905,-5850,5906,5907,-5869,-5909]]},{"type":"Polygon","id":51089,"arcs":[[5909,5910,-5894,-5629,-5675]]},{"type":"Polygon","id":32003,"arcs":[[5911,5912,-5467,-4254,-4626]]},{"type":"Polygon","id":21171,"arcs":[[-5837,5913,5914,-5838,-5656,-5652]]},{"type":"Polygon","id":29181,"arcs":[[-5867,5915,5916,-5885,-5688]]},{"type":"Polygon","id":29213,"arcs":[[-5703,5917,5918,5919,5920,-5815,-5691]]},{"type":"Polygon","id":40153,"arcs":[[5921,5922,5923,-5768,5750,-5751,-5750]]},{"type":"Polygon","id":51077,"arcs":[[-5857,5924,-5855,5925,5926,5927,5928,-5861,-5729,-5694]]},{"type":"Polygon","id":29153,"arcs":[[-5717,5929,5930,5931,-5918,-5702]]},{"type":"Polygon","id":21105,"arcs":[[-5834,5932,5933,5934,-5708,-5830]]},{"type":"Polygon","id":29119,"arcs":[[-5844,5935,5936,-5766,-5719]]},{"type":"Polygon","id":21035,"arcs":[[-5739,5937,5938,-5831,-5705]]},{"type":"Polygon","id":6107,"arcs":[[5939,5940,-5381,-5470]]},{"type":"Polygon","id":47161,"arcs":[[-5660,5941,5942,5943,5944,-5938,-5738]]},{"type":"Polygon","id":40041,"arcs":[[-5937,5945,5946,5947,5948,-5754,-5767]]},{"type":"Polygon","id":47147,"arcs":[[5949,5950,5951,-5699,-5697,-5893,5952]]},{"type":"Polygon","id":47165,"arcs":[[5953,5954,5955,5956,-5953,-5892,-5840]]},{"type":"MultiPolygon","id":21075,"arcs":[[[5957,5958,-5897,-5709,-5935]]]},{"type":"Polygon","id":47125,"arcs":[[-5952,5959,5960,5961,-5942,-5659,-5700]]},{"type":"Polygon","id":51590,"arcs":[[5962,-5672]]},{"type":"Polygon","id":47111,"arcs":[[5963,5964,5965,-5954,-5839,-5915,5966]]},{"type":"Polygon","id":29069,"arcs":[[-5902,5967,5968,5969,5970,5971,5972,-5865,-5679]]},{"type":"Polygon","id":47137,"arcs":[[5973,5974,5975,5976,-5883,-5809]]},{"type":"Polygon","id":47027,"arcs":[[5977,5978,-5967,-5914,-5836,-5884,-5977]]},{"type":"Polygon","id":47163,"arcs":[[5979,5980,5981,-5889,-5859,-5983,-5863,5983]]},{"type":"Polygon","id":47091,"arcs":[[-5929,5984,5985,5986,5987,-5984,-5862]]},{"type":"Polygon","id":47151,"arcs":[[5988,5989,5990,5991,-5974,-5808,-5826]]},{"type":"Polygon","id":47025,"arcs":[[5992,5993,5994,5995,-5820,-5828,-5879]]},{"type":"Polygon","id":40103,"arcs":[[5996,5997,5998,5999,-5764,-5746]]},{"type":"Polygon","id":47067,"arcs":[[-5891,6000,6001,-5993,-5878]]},{"type":"Polygon","id":40131,"arcs":[[6002,6003,6004,-5757,-5741,-5756]]},{"type":"Polygon","id":47013,"arcs":[[6005,6006,-5989,-5825,-5821,-5996]]},{"type":"Polygon","id":47073,"arcs":[[-5982,6007,6008,6009,6010,-6001,-5890]]},{"type":"Polygon","id":40047,"arcs":[[-5765,-6000,6011,6012,6013,-5762,-5760]]},{"type":"Polygon","id":40045,"arcs":[[-5924,6014,6015,6016,6017,-5798,-5769]]},{"type":"Polygon","id":37009,"arcs":[[6018,6019,6020,-5985,-5928]]},{"type":"Polygon","id":47049,"arcs":[[-5992,6021,6022,6023,6024,-5975]]},{"type":"Polygon","id":37005,"arcs":[[6025,6026,-6019,-5927]]},{"type":"Polygon","id":40117,"arcs":[[6027,6028,6029,-5997,-5745]]},{"type":"Polygon","id":37171,"arcs":[[-5896,6030,6031,6032,6033,-6026,-5926,-5854]]},{"type":"Polygon","id":37073,"arcs":[[6034,6035,6036,6037,6038,6039,-5803,-5871]]},{"type":"MultiPolygon","id":37053,"arcs":[[[6040,-5907,-5849,6041]],[[-5845,6042,6043,6044]]]},{"type":"Polygon","id":37169,"arcs":[[-5911,6045,6046,-6031,-5895]]},{"type":"Polygon","id":37029,"arcs":[[-5870,-5908,-6041,6047,6048,-6035]]},{"type":"Polygon","id":37185,"arcs":[[6049,6050,6051,6052,-5880,-5725]]},{"type":"Polygon","id":37131,"arcs":[[6053,6054,-6050,-5724,-5876,-5805,6055]]},{"type":"Polygon","id":37091,"arcs":[[-6040,6056,6057,-6056,-5804]]},{"type":"Polygon","id":37145,"arcs":[[6058,6059,6060,6061,-5713]]},{"type":"Polygon","id":37181,"arcs":[[-6053,6062,6063,-5881]]},{"type":"Polygon","id":37077,"arcs":[[6064,6065,6066,-6059,-5712,-5882,-6064]]},{"type":"Polygon","id":37157,"arcs":[[-5674,6067,6068,6069,-6046,-5910]]},{"type":"Polygon","id":37033,"arcs":[[-6062,6070,6071,-6068,-5673,-5963,-5671,-5714]]},{"type":"Polygon","id":47133,"arcs":[[-6025,6072,6073,-5978,-5976]]},{"type":"Polygon","id":47087,"arcs":[[-6074,6074,6075,-5964,-5979]]},{"type":"Polygon","id":37083,"arcs":[[6076,6077,6078,6079,-6051,-6055]]},{"type":"Polygon","id":40097,"arcs":[[-5949,6080,6081,-6003,-5755]]},{"type":"Polygon","id":47019,"arcs":[[6082,6083,6084,6085,-5980,-5988]]},{"type":"Polygon","id":37139,"arcs":[[6086,6087,-6036,-6049]]},{"type":"Polygon","id":47131,"arcs":[[-5934,6088,6089,6090,6091,-5958]]},{"type":"Polygon","id":40093,"arcs":[[-5763,-6014,6092,6093,6094,-5922,-5749]]},{"type":"Polygon","id":47183,"arcs":[[6095,6096,6097,-6089,-5933,-5833]]},{"type":"Polygon","id":47095,"arcs":[[6098,6099,-5900,-6101,-5898,-5959,-6092]]},{"type":"Polygon","id":48421,"arcs":[[6101,6102,-5792,-5797,6103]]},{"type":"Polygon","id":47079,"arcs":[[-5945,6104,6105,-6096,-5832,-5939]]},{"type":"Polygon","id":48195,"arcs":[[6106,6107,-6104,-5796,6108]]},{"type":"Polygon","id":48111,"arcs":[[-5793,-6103,6109,-5786]]},{"type":"Polygon","id":48357,"arcs":[[6110,6111,-6109,-5795,-5800]]},{"type":"Polygon","id":48295,"arcs":[[6112,6113,-6111,-5799,-6018]]},{"type":"Polygon","id":5007,"arcs":[[-5843,6114,6115,6116,6117,-5946,-5936]]},{"type":"Polygon","id":5049,"arcs":[[6118,6119,6120,-5930,-5716,-5888]]},{"type":"Polygon","id":5015,"arcs":[[-5816,-5921,6121,6122,6123,-6115,-5842]]},{"type":"Polygon","id":5135,"arcs":[[-5887,6124,6125,6126,6127,-6119]]},{"type":"Polygon","id":5121,"arcs":[[6128,6129,-6125,-5886,-5917,6130]]},{"type":"Polygon","id":5009,"arcs":[[6131,6132,6133,-6122,-5920]]},{"type":"Polygon","id":5089,"arcs":[[6134,6135,-6132,-5919,-5932]]},{"type":"Polygon","id":5005,"arcs":[[-6121,6136,6137,6138,-6135,-5931]]},{"type":"Polygon","id":5021,"arcs":[[-5866,-5973,6139,-6131,-5916]]},{"type":"Polygon","id":6031,"arcs":[[6140,6141,-5873,-5382,-5941]]},{"type":"Polygon","id":47169,"arcs":[[-5966,6142,6143,-5955]]},{"type":"Polygon","id":47021,"arcs":[[6144,6145,6146,6147,-5960,-5951]]},{"type":"Polygon","id":47179,"arcs":[[-6086,6148,6149,-6008,-5981]]},{"type":"Polygon","id":37193,"arcs":[[-6034,6150,6151,6152,6153,6154,-6020,-6027]]},{"type":"Polygon","id":47173,"arcs":[[6155,6156,6157,-6006,-5995]]},{"type":"Polygon","id":47159,"arcs":[[-6076,6158,6159,6160,-6143,-5965]]},{"type":"Polygon","id":29155,"arcs":[[-6100,6161,6162,-5968,-5901]]},{"type":"Polygon","id":40143,"arcs":[[-6005,6163,6164,6165,-6028,-5744,-5758]]},{"type":"Polygon","id":47057,"arcs":[[-6002,-6011,6166,6167,6168,-6156,-5994]]},{"type":"Polygon","id":47037,"arcs":[[-5957,6169,6170,6171,-6145,-5950]]},{"type":"Polygon","id":47059,"arcs":[[6172,6173,6174,6175,6176,-6009,-6150]]},{"type":"Polygon","id":37189,"arcs":[[-6155,6177,6178,-5986,-6021]]},{"type":"Polygon","id":37143,"arcs":[[6179,6180,-6037,-6088]]},{"type":"Polygon","id":47129,"arcs":[[-5991,6181,6182,6183,-6022]]},{"type":"Polygon","id":47083,"arcs":[[-5962,6184,6185,6186,-5943]]},{"type":"Polygon","id":47005,"arcs":[[-6187,6187,6188,6189,6190,-6105,-5944]]},{"type":"Polygon","id":47189,"arcs":[[-6144,-6161,6191,6192,6193,-6170,-5956]]},{"type":"Polygon","id":37041,"arcs":[[6194,-6038,-6181]]},{"type":"Polygon","id":47063,"arcs":[[-6177,6195,6196,-6167,-6010]]},{"type":"Polygon","id":47043,"arcs":[[-6148,-6147,6197,6198,6199,-6185,-5961]]},{"type":"Polygon","id":5087,"arcs":[[6200,6201,6202,6203,6204,-6116,-6124]]},{"type":"Polygon","id":47141,"arcs":[[-6024,6205,6206,6207,-6159,-6075,-6073]]},{"type":"Polygon","id":47001,"arcs":[[-6158,6208,6209,-6182,-5990,-6007]]},{"type":"Polygon","id":37197,"arcs":[[6210,6211,6212,-6151,-6033]]},{"type":"Polygon","id":37011,"arcs":[[6213,6214,6215,6216,6217,-6083,-5987,-6179]]},{"type":"Polygon","id":37069,"arcs":[[6218,6219,-6065,-6063,-6052]]},{"type":"Polygon","id":5055,"arcs":[[-5972,-5971,6220,6221,-6129,-6140]]},{"type":"Polygon","id":35033,"arcs":[[-5814,6222,6223,6224,-5772,-5812]]},{"type":"Polygon","id":37067,"arcs":[[6225,6226,6227,-6211,-6032,-6047]]},{"type":"Polygon","id":5065,"arcs":[[-6128,6228,6229,-6137,-6120]]},{"type":"Polygon","id":47171,"arcs":[[6230,6231,6232,-6173,-6149,-6085]]},{"type":"Polygon","id":5075,"arcs":[[-6222,6233,6234,6235,-6126,-6130]]},{"type":"Polygon","id":37081,"arcs":[[6236,6237,6238,-6226,-6070]]},{"type":"Polygon","id":37001,"arcs":[[6239,6240,6241,-6237,-6069,-6072]]},{"type":"Polygon","id":40119,"arcs":[[6242,6243,6244,-5998,-6030]]},{"type":"Polygon","id":47085,"arcs":[[-6200,6245,6246,-6188,-6186]]},{"type":"Polygon","id":37015,"arcs":[[6247,6248,6249,-6250,6250,-6077,-6054,-6058]]},{"type":"Polygon","id":37135,"arcs":[[-6061,6251,6252,-6240,-6071]]},{"type":"Polygon","id":37063,"arcs":[[-6067,6253,6254,-6252,-6060]]},{"type":"Polygon","id":5143,"arcs":[[6255,6256,-6117,-6205]]},{"type":"MultiPolygon","id":37055,"arcs":[[[6257,6258]],[[-6044,6259]]]},{"type":"Polygon","id":47053,"arcs":[[6260,6261,6262,6263,-6090,-6098]]},{"type":"Polygon","id":35043,"arcs":[[6264,6265,6266,6267,6268,-5777,-5775]]},{"type":"Polygon","id":35021,"arcs":[[-5789,6269,6270,-6223,-5813]]},{"type":"Polygon","id":47045,"arcs":[[6271,6272,6273,-6162,-6099,-6091,-6264]]},{"type":"Polygon","id":37127,"arcs":[[-6080,6274,6275,6276,-6219]]},{"type":"Polygon","id":47089,"arcs":[[-6197,6277,6278,6279,-6168]]},{"type":"Polygon","id":47093,"arcs":[[-6280,6280,6281,6282,6283,-6209,-6157,-6169]]},{"type":"Polygon","id":47029,"arcs":[[-6175,6284,6285,6286,6287,-6278,-6196,-6176]]},{"type":"Polygon","id":47035,"arcs":[[-6184,6288,6289,6290,6291,6292,6293,6294,-6206,-6023]]},{"type":"Polygon","id":40073,"arcs":[[6295,6296,6297,-6093,-6013]]},{"type":"Polygon","id":40083,"arcs":[[-5999,-6245,6298,6299,-6296,-6012]]},{"type":"Polygon","id":40011,"arcs":[[-6298,6300,6301,6302,6303,-6094]]},{"type":"Polygon","id":40043,"arcs":[[6304,6305,-6015,-5923,-6095,-6304]]},{"type":"Polygon","id":40037,"arcs":[[-6166,6306,6307,6308,-6243,-6029]]},{"type":"Polygon","id":40145,"arcs":[[-6082,6309,6310,6311,-6164,-6004]]},{"type":"Polygon","id":40021,"arcs":[[-5948,6312,6313,6314,-6310,-6081]]},{"type":"Polygon","id":40001,"arcs":[[-6118,-6257,6315,6316,-6313,-5947]]},{"type":"Polygon","id":37121,"arcs":[[-6218,6317,6318,-6231,-6084]]},{"type":"Polygon","id":37065,"arcs":[[6319,6320,6321,-6275,-6079]]},{"type":"Polygon","id":47017,"arcs":[[-6191,6322,6323,6324,-6261,-6097,-6106]]},{"type":"Polygon","id":47041,"arcs":[[6325,6326,6327,-6192,-6160,-6208]]},{"type":"Polygon","id":5137,"arcs":[[6328,6329,6330,6331,-6138,-6230]]},{"type":"Polygon","id":5101,"arcs":[[-6134,6332,6333,6334,-6201,-6123]]},{"type":"Polygon","id":37027,"arcs":[[-6154,6335,6336,6337,-6214,-6178]]},{"type":"Polygon","id":5129,"arcs":[[-6139,-6332,6338,6339,-6333,-6133,-6136]]},{"type":"Polygon","id":47149,"arcs":[[6340,6341,6342,6343,6344,-6171,-6194]]},{"type":"Polygon","id":37199,"arcs":[[6345,6346,6347,-6232,-6319]]},{"type":"Polygon","id":47185,"arcs":[[-6295,6348,6349,-6326,-6207]]},{"type":"Polygon","id":37183,"arcs":[[-6220,6350,6351,6352,-6254,-6066]]},{"type":"Polygon","id":37117,"arcs":[[6249,6353,6354,6355,-6320,-6078,-6251]]},{"type":"Polygon","id":37115,"arcs":[[-6233,-6348,6356,6357,-6285,6174,-6175,-6174]]},{"type":"Polygon","id":37059,"arcs":[[6358,6359,6360,-6212,-6228]]},{"type":"Polygon","id":48393,"arcs":[[-6114,6361,6362,6363,6364,-6107,-6112]]},{"type":"Polygon","id":48211,"arcs":[[-6113,-6017,6365,6366,-6362]]},{"type":"Polygon","id":48233,"arcs":[[-6108,-6365,6367,6368]]},{"type":"Polygon","id":48205,"arcs":[[6369,6370,6371,-5787,-6110]]},{"type":"Polygon","id":37097,"arcs":[[-6213,-6361,6372,6373,6374,6375,6376,6377,-6152]]},{"type":"Polygon","id":48341,"arcs":[[-6369,6378,6379,6380,-6370,-6102]]},{"type":"Polygon","id":47187,"arcs":[[-6345,6381,6382,6383,-6198,-6146,-6172]]},{"type":"Polygon","id":37003,"arcs":[[6384,-6336,-6153,-6378]]},{"type":"Polygon","id":47145,"arcs":[[6385,6386,6387,6388,-6289,-6183,-6210,-6284,6389]]},{"type":"Polygon","id":47155,"arcs":[[-6288,-6287,6286,6390,6391,6392,-6281,-6279]]},{"type":"Polygon","id":37057,"arcs":[[-6239,6393,6394,6395,-6359,-6227]]},{"type":"Polygon","id":40129,"arcs":[[-6306,6396,6397,6398,-6366,-6016]]},{"type":"Polygon","id":35031,"arcs":[[-6269,6399,-5780,-5778]]},{"type":"Polygon","id":35049,"arcs":[[-6225,6400,6401,6402,-6266,6403,6404,6405,-5773]]},{"type":"Polygon","id":5093,"arcs":[[6406,6407,6408,6409,6410,6411,6412,-5969,-6163,-6274]]},{"type":"Polygon","id":37023,"arcs":[[-6338,6413,6414,6415,6416,6417,-6216,-6215]]},{"type":"Polygon","id":47033,"arcs":[[6418,6419,6420,-6272,-6263]]},{"type":"Polygon","id":5031,"arcs":[[-6413,6421,6422,-6234,-6221,-5970]]},{"type":"Polygon","id":37177,"arcs":[[6423,6424,6425]]},{"type":"Polygon","id":47081,"arcs":[[-6384,6426,6427,6428,-6246,-6199]]},{"type":"Polygon","id":37187,"arcs":[[-6425,6429,6430,-6354,-6250,-6249,6431]]},{"type":"Polygon","id":35028,"arcs":[[-5774,-6406,6432,-6404,-6265]]},{"type":"Polygon","id":47015,"arcs":[[6433,6434,-6341,-6193,-6328]]},{"type":"Polygon","id":37111,"arcs":[[6435,6436,-6346,-6318,-6217,-6418]]},{"type":"Polygon","id":47097,"arcs":[[-6421,6437,6438,-6407,-6273]]},{"type":"Polygon","id":40081,"arcs":[[-6309,6439,6440,6441,-6299,-6244]]},{"type":"Polygon","id":5063,"arcs":[[-6236,6442,6443,6444,-6329,-6229,-6127]]},{"type":"Polygon","id":37151,"arcs":[[-6242,6445,6446,6447,-6394,-6238]]},{"type":"Polygon","id":47105,"arcs":[[-6390,-6283,6448,6449,6450,-6386]]},{"type":"Polygon","id":5067,"arcs":[[-6235,-6423,6451,6452,6453,6454,-6443]]},{"type":"Polygon","id":47009,"arcs":[[6455,6456,6457,-6449,-6282,-6393]]},{"type":"Polygon","id":37037,"arcs":[[-6255,-6353,6458,6459,6460,6461,-6446,-6241,-6253]]},{"type":"Polygon","id":35047,"arcs":[[-6271,6462,6463,6464,-6401,-6224]]},{"type":"Polygon","id":37195,"arcs":[[6465,6466,6467,6468,-6276,-6322]]},{"type":"Polygon","id":37159,"arcs":[[-6396,6469,6470,-6373,-6360]]},{"type":"Polygon","id":40111,"arcs":[[-6165,-6312,6471,6472,6473,-6307]]},{"type":"Polygon","id":40101,"arcs":[[-6315,6474,6475,6476,-6472,-6311]]},{"type":"Polygon","id":47177,"arcs":[[-6350,6477,6478,6479,6480,-6434,-6327]]},{"type":"Polygon","id":47119,"arcs":[[6481,6482,6483,6484,-6427,-6383]]},{"type":"Polygon","id":47039,"arcs":[[6485,6486,6487,6488,-6323,-6190]]},{"type":"Polygon","id":47135,"arcs":[[-6429,6489,6490,-6486,-6189,-6247]]},{"type":"Polygon","id":37147,"arcs":[[-6356,6491,6492,6493,6494,6495,6496,-6466,-6321]]},{"type":"Polygon","id":37035,"arcs":[[-6377,6497,-6414,-6337,-6385]]},{"type":"Polygon","id":37021,"arcs":[[-6437,6498,6499,6500,-6357,-6347]]},{"type":"Polygon","id":47143,"arcs":[[6501,6502,6503,-6290,-6389]]},{"type":"Polygon","id":47175,"arcs":[[-6294,6504,-6292,6505,6506,-6478,-6349]]},{"type":"Polygon","id":47077,"arcs":[[-6489,6507,6508,6509,-6324]]},{"type":"Polygon","id":47075,"arcs":[[6510,6511,6512,6513,-6438,-6420]]},{"type":"Polygon","id":37101,"arcs":[[-6469,6514,6515,6516,-6351,-6277]]},{"type":"Polygon","id":40039,"arcs":[[-6303,6517,6518,6519,-6397,-6305]]},{"type":"Polygon","id":6071,"arcs":[[6520,6521,6522,6523,6524,6525,-5468,-5913]]},{"type":"Polygon","id":6079,"arcs":[[-6142,6526,6527,6528,-5874]]},{"type":"Polygon","id":6029,"arcs":[[-6526,6529,6530,6531,-6527,-6141,-5940,-5469]]},{"type":"Polygon","id":47113,"arcs":[[-6325,-6510,6532,6533,-6511,-6419,-6262]]},{"type":"Polygon","id":5141,"arcs":[[-6331,6534,6535,6536,6537,-6339]]},{"type":"Polygon","id":37087,"arcs":[[-6501,6538,6539,6540,-6391,-6287,-6286,-6358]]},{"type":"Polygon","id":5047,"arcs":[[6541,6542,6543,-6203,6544]]},{"type":"Polygon","id":47007,"arcs":[[-6504,6545,6546,-6506,-6291]]},{"type":"Polygon","id":5071,"arcs":[[-6202,-6335,6547,6548,-6545]]},{"type":"Polygon","id":5033,"arcs":[[6549,6550,-6316,-6256,-6204,-6544]]},{"type":"Polygon","id":47121,"arcs":[[6551,6552,6553,-6502,-6388]]},{"type":"Polygon","id":35037,"arcs":[[-6372,6554,6555,6556,6557,6558,6559,-6463,-6270,-5788]]},{"type":"MultiPolygon","id":37013,"arcs":[[[6560,6561,6562,-6494]],[[-6431,6563,6564,-6492,-6355]]]},{"type":"Polygon","id":5115,"arcs":[[-6340,-6538,6565,6566,6567,-6548,-6334]]},{"type":"Polygon","id":40017,"arcs":[[6568,6569,6570,6571,6572,-6301,-6297]]},{"type":"Polygon","id":40109,"arcs":[[-6442,6573,6574,-6569,-6300]]},{"type":"Polygon","id":5023,"arcs":[[-6445,6575,6576,-6535,-6330]]},{"type":"Polygon","id":47117,"arcs":[[6577,6578,6579,-6482,-6382,-6344]]},{"type":"Polygon","id":5111,"arcs":[[-6412,6580,6581,-6452,-6422]]},{"type":"Polygon","id":37095,"arcs":[[-6424,6582,-6258,6583,-6564,-6430]]},{"type":"Polygon","id":47031,"arcs":[[-6435,-6481,6584,6585,6586,6587,-6342]]},{"type":"Polygon","id":47003,"arcs":[[-6588,6588,6589,-6578,-6343]]},{"type":"Polygon","id":37173,"arcs":[[6590,6591,6592,-6456,-6392,-6541]]},{"type":"Polygon","id":47123,"arcs":[[-6458,6593,6594,6595,6596,6597,6598,-6450]]},{"type":"Polygon","id":47101,"arcs":[[-6485,6599,6600,-6490,-6428]]},{"type":"Polygon","id":37079,"arcs":[[6601,6602,-6467,-6497]]},{"type":"MultiPolygon","id":47167,"arcs":[[[6603,6604,-6410]],[[-6514,6605,6606,-6408,-6439]]]},{"type":"Polygon","id":47107,"arcs":[[-6451,-6599,6607,-6597,6608,6609,-6552,-6387]]},{"type":"Polygon","id":40135,"arcs":[[-6317,-6551,6610,6611,6612,-6475,-6314]]},{"type":"Polygon","id":40107,"arcs":[[-6474,6613,6614,6615,6616,-6440,-6308]]},{"type":"Polygon","id":37105,"arcs":[[6617,6618,-6461,-6460]]},{"type":"Polygon","id":48359,"arcs":[[-6381,6619,6620,-6555,-6371]]},{"type":"Polygon","id":48065,"arcs":[[-6364,6621,6622,6623,-6379,-6368]]},{"type":"Polygon","id":48179,"arcs":[[6624,6625,-6622,-6363]]},{"type":"Polygon","id":48483,"arcs":[[-6399,6626,6627,-6625,-6367]]},{"type":"Polygon","id":48375,"arcs":[[-6624,6628,-6620,-6380]]},{"type":"Polygon","id":37161,"arcs":[[6629,6630,6631,6632,6633,-6499,-6436,-6417]]},{"type":"Polygon","id":37191,"arcs":[[-6603,6634,6635,6636,-6515,-6468]]},{"type":"Polygon","id":47023,"arcs":[[6637,6638,6639,-6533,-6509]]},{"type":"Polygon","id":37085,"arcs":[[-6517,6640,6641,6642,-6618,-6459,-6352]]},{"type":"Polygon","id":37045,"arcs":[[6643,6644,6645,6646,-6630,-6416]]},{"type":"Polygon","id":37109,"arcs":[[-6376,6647,6648,-6644,-6415,-6498]]},{"type":"Polygon","id":47153,"arcs":[[6649,6650,6651,-6479,-6507,-6547]]},{"type":"Polygon","id":40091,"arcs":[[6652,6653,6654,-6614,-6473,-6477]]},{"type":"Polygon","id":40015,"arcs":[[-6573,6655,6656,6657,6658,-6518,-6302]]},{"type":"Polygon","id":5145,"arcs":[[-6455,6659,6660,6661,6662,-6576,-6444]]},{"type":"Polygon","id":47061,"arcs":[[6663,6664,-6585,-6480,-6652]]},{"type":"Polygon","id":4025,"arcs":[[6665,6666,6667,6668,6669,-5736]]},{"type":"Polygon","id":37099,"arcs":[[-6540,6670,6671,6672,6673,-6591]]},{"type":"Polygon","id":37119,"arcs":[[6674,6675,6676,6677,6678,-6648,-6375]]},{"type":"Polygon","id":37125,"arcs":[[-6619,-6643,6679,6680,6681,6682,-6447,-6462]]},{"type":"Polygon","id":37123,"arcs":[[-6683,6683,6684,-6395,-6448]]},{"type":"Polygon","id":37025,"arcs":[[6685,6686,-6675,-6374,-6471]]},{"type":"Polygon","id":40009,"arcs":[[-6520,6687,6688,6689,6690,6691,-6627,-6398]]},{"type":"Polygon","id":37167,"arcs":[[-6685,6692,6693,-6686,-6470]]},{"type":"Polygon","id":37089,"arcs":[[-6634,6694,6695,6696,-6500]]},{"type":"Polygon","id":47181,"arcs":[[6697,6698,6699,-6487,-6491,-6601]]},{"type":"Polygon","id":40133,"arcs":[[6700,6701,6702,-6616]]},{"type":"Polygon","id":37075,"arcs":[[6703,6704,-6594,-6457,-6593]]},{"type":"Polygon","id":40149,"arcs":[[-6659,6705,-6688,-6519]]},{"type":"Polygon","id":40125,"arcs":[[-6617,-6703,6706,6707,6708,-6574,-6441]]},{"type":"Polygon","id":5029,"arcs":[[6709,6710,6711,-6566,-6537]]},{"type":"Polygon","id":47099,"arcs":[[-6484,6712,6713,-6698,-6600]]},{"type":"Polygon","id":40061,"arcs":[[6714,6715,6716,-6653,-6476,-6613]]},{"type":"Polygon","id":47065,"arcs":[[-6554,6717,6718,6719,6720,6721,-6650,-6546,-6503]]},{"type":"Polygon","id":47055,"arcs":[[-6580,6722,6723,6724,-6713,-6483]]},{"type":"Polygon","id":5131,"arcs":[[-6543,6725,6726,6727,-6611,-6550]]},{"type":"Polygon","id":5037,"arcs":[[6728,6729,6730,-6453,-6582]]},{"type":"Polygon","id":5147,"arcs":[[-6731,6731,6732,6733,-6660,-6454]]},{"type":"Polygon","id":5035,"arcs":[[-6411,-6605,6734,6735,6736,6737,6738,-6729,-6581]]},{"type":"Polygon","id":47069,"arcs":[[-6534,-6640,6739,6740,6741,6742,6743,-6512]]},{"type":"Polygon","id":37107,"arcs":[[6744,6745,6746,-6635,-6602,-6496]]},{"type":"Polygon","id":5083,"arcs":[[-6549,-6568,6747,6748,-6726,-6542]]},{"type":"Polygon","id":37175,"arcs":[[6749,6750,6751,-6671,-6539,-6697]]},{"type":"Polygon","id":47071,"arcs":[[-6700,6752,6753,6754,6755,-6638,-6508,-6488]]},{"type":"Polygon","id":37071,"arcs":[[-6679,6756,-6645,-6649]]},{"type":"MultiPolygon","id":37049,"arcs":[[[6757,6758,6759]],[[-6563,6760,6761,6762,-6745,-6495]]]},{"type":"Polygon","id":47127,"arcs":[[6763,6764,-6589,-6587]]},{"type":"Polygon","id":47157,"arcs":[[6765,6766,6767,-6735,-6604,-6409,-6607]]},{"type":"Polygon","id":37149,"arcs":[[6768,6769,-6695,-6633]]},{"type":"Polygon","id":47047,"arcs":[[-6744,6770,6771,-6766,-6606,-6513]]},{"type":"Polygon","id":47109,"arcs":[[-6756,6772,-6740,-6639]]},{"type":"Polygon","id":40079,"arcs":[[6773,6774,6775,6776,6777,-6715,-6612,-6728]]},{"type":"Polygon","id":40051,"arcs":[[6778,6779,6780,6781,-6656,-6572]]},{"type":"Polygon","id":40027,"arcs":[[-6709,6782,-6570,-6575]]},{"type":"Polygon","id":47103,"arcs":[[-6765,6783,6784,6785,-6723,-6579,-6590]]},{"type":"Polygon","id":5045,"arcs":[[-6577,-6663,6786,6787,6788,-6710,-6536]]},{"type":"Polygon","id":47051,"arcs":[[-6665,6789,6790,6791,-6784,-6764,-6586]]},{"type":"Polygon","id":47011,"arcs":[[6792,6793,6794,-6718,-6553,-6610]]},{"type":"Polygon","id":35006,"arcs":[[-6268,6795,6796,6797,6798,-5781,-6400]]},{"type":"Polygon","id":40087,"arcs":[[-6708,6799,6800,-6779,-6571,-6783]]},{"type":"Polygon","id":37113,"arcs":[[6801,6802,6803,-6704,-6592,-6674]]},{"type":"Polygon","id":37137,"arcs":[[-6761,-6562,6804]]},{"type":"Polygon","id":47115,"arcs":[[-6722,6805,6806,-6790,-6664,-6651]]},{"type":"Polygon","id":37163,"arcs":[[-6637,6807,6808,6809,6810,-6641,-6516]]},{"type":"Polygon","id":5149,"arcs":[[-6712,6811,6812,6813,6814,-6748,-6567]]},{"type":"Polygon","id":40121,"arcs":[[-6717,6815,6816,6817,6818,6819,-6654]]},{"type":"Polygon","id":37039,"arcs":[[-6804,6820,6821,6822,6823,-6595,-6705]]},{"type":"Polygon","id":40063,"arcs":[[-6655,-6820,6824,6825,-6701,-6615]]},{"type":"Polygon","id":47139,"arcs":[[-6824,6826,6827,-6793,-6609,-6596]]},{"type":"Polygon","id":37051,"arcs":[[-6811,6828,6829,6830,-6680,-6642]]},{"type":"Polygon","id":37103,"arcs":[[6831,-6759,6832,6833,6834,-6746,-6763]]},{"type":"Polygon","id":35001,"arcs":[[-6403,6835,6836,-6796,-6267]]},{"type":"Polygon","id":35019,"arcs":[[-6560,6837,6838,6839,-6464]]},{"type":"Polygon","id":45045,"arcs":[[-6770,6840,6841,6842,6843,6844,-6750,-6696]]},{"type":"Polygon","id":37007,"arcs":[[6845,6846,6847,6848,-6693]]},{"type":"Polygon","id":37093,"arcs":[[-6831,6849,6850,6851,-6681]]},{"type":"Polygon","id":37179,"arcs":[[-6849,6852,6853,-6676,-6687,-6694]]},{"type":"Polygon","id":45083,"arcs":[[6854,6855,-6841,-6769,-6632,6856]]},{"type":"Polygon","id":37061,"arcs":[[-6747,-6835,6857,6858,-6808,-6636]]},{"type":"Polygon","id":48117,"arcs":[[6859,6860,6861,6862,-6556,-6621]]},{"type":"Polygon","id":45021,"arcs":[[6863,6864,-6857,-6631,-6647,6865]]},{"type":"Polygon","id":48129,"arcs":[[6866,6867,6868,6869,-6626]]},{"type":"Polygon","id":48087,"arcs":[[-6692,6870,6871,6872,-6867,-6628]]},{"type":"Polygon","id":48381,"arcs":[[6873,6874,6875,-6860,-6629]]},{"type":"Polygon","id":37153,"arcs":[[-6682,6876,6877,-6846,-6684]]},{"type":"Polygon","id":48011,"arcs":[[-6870,6878,6879,-6874,-6623]]},{"type":"Polygon","id":45091,"arcs":[[6880,6881,6882,-6866,-6646,-6757,-6678]]},{"type":"Polygon","id":37043,"arcs":[[-6803,6883,6884,6885,-6821]]},{"type":"Polygon","id":5123,"arcs":[[-6739,6886,6887,-6732,-6730]]},{"type":"Polygon","id":40075,"arcs":[[-6658,6888,6889,6890,6891,-6689,-6706]]},{"type":"MultiPolygon","id":37031,"arcs":[[[6892,-6833,-6758,6893]]]},{"type":"Polygon","id":40055,"arcs":[[-6892,6894,6895,-6690]]},{"type":"MultiPolygon","id":6083,"arcs":[[[6896]],[[6897]],[[-6532,6898,6899,-6528]]]},{"type":"Polygon","id":5105,"arcs":[[6900,6901,6902,-6812,-6711,-6789]]},{"type":"Polygon","id":5127,"arcs":[[-6815,6903,6904,-6774,-6727,-6749]]},{"type":"Polygon","id":5117,"arcs":[[-6734,6905,6906,6907,-6661]]},{"type":"Polygon","id":45077,"arcs":[[-6845,6908,6909,-6751]]},{"type":"Polygon","id":5085,"arcs":[[-6908,6910,6911,6912,-6787,-6662]]},{"type":"Polygon","id":45057,"arcs":[[-6854,6913,6914,6915,6916,-6881,-6677]]},{"type":"Polygon","id":40077,"arcs":[[-6778,6917,-6816,-6716]]},{"type":"Polygon","id":45073,"arcs":[[6918,6919,6920,6921,6922,6923,-6672,-6752,-6910]]},{"type":"Polygon","id":35057,"arcs":[[-6840,6924,6925,6926,-6836,-6402,-6465]]},{"type":"Polygon","id":37165,"arcs":[[-6851,6927,6928,-6877,-6852]]},{"type":"Polygon","id":40057,"arcs":[[-6896,6929,6930,6931,-6871,-6691]]},{"type":"Polygon","id":5119,"arcs":[[-6913,6932,6933,6934,-6901,-6788]]},{"type":"Polygon","id":1077,"arcs":[[6935,6936,6937,-6753,-6699,-6714,-6725,6938]]},{"type":"Polygon","id":5095,"arcs":[[-6888,6939,6940,6941,-6906,-6733]]},{"type":"Polygon","id":13241,"arcs":[[6942,6943,-6884,-6802,-6673,-6924]]},{"type":"Polygon","id":1083,"arcs":[[-6786,6944,6945,6946,-6939,-6724]]},{"type":"Polygon","id":28003,"arcs":[[6947,6948,-6741,-6773,-6755,6949]]},{"type":"Polygon","id":28141,"arcs":[[6950,6951,6952,-6950,-6754,-6938,6953]]},{"type":"Polygon","id":28139,"arcs":[[6954,6955,6956,-6742,-6949]]},{"type":"Polygon","id":28033,"arcs":[[6957,6958,6959,-6736,-6768,6960]]},{"type":"Polygon","id":28009,"arcs":[[6961,6962,-6771,-6743,-6957]]},{"type":"Polygon","id":28093,"arcs":[[6963,6964,6965,-6961,-6767,-6772,-6963]]},{"type":"Polygon","id":13281,"arcs":[[-6944,6966,6967,6968,-6885]]},{"type":"Polygon","id":1089,"arcs":[[-6792,6969,6970,6971,-6945,-6785]]},{"type":"Polygon","id":1071,"arcs":[[6972,6973,-6970,-6791,-6807,6974]]},{"type":"Polygon","id":13213,"arcs":[[6975,6976,6977,6978,-6794,-6828,6979]]},{"type":"Polygon","id":13111,"arcs":[[-6823,6980,6981,6982,6983,-6980,-6827]]},{"type":"Polygon","id":13313,"arcs":[[-6978,6984,6985,6986,-6795,-6979]]},{"type":"Polygon","id":13047,"arcs":[[6987,-6719,-6987]]},{"type":"Polygon","id":13291,"arcs":[[-6886,-6969,6988,6989,-6981,-6822]]},{"type":"Polygon","id":37133,"arcs":[[-6893,6990,6991,-6858,-6834]]},{"type":"Polygon","id":13083,"arcs":[[-6806,-6721,6992,6993,-6975]]},{"type":"Polygon","id":13295,"arcs":[[-6986,6994,6995,6996,6997,-6993,-6720,-6988]]},{"type":"Polygon","id":40123,"arcs":[[-6702,-6826,6998,6999,7000,7001,-6800,-6707]]},{"type":"Polygon","id":35061,"arcs":[[-6837,-6927,7002,-6797]]},{"type":"Polygon","id":37155,"arcs":[[7003,7004,7005,7006,7007,-6928,-6850,-6830]]},{"type":"Polygon","id":35009,"arcs":[[-6863,7008,7009,7010,-6557]]},{"type":"Polygon","id":45087,"arcs":[[-6864,-6883,7011,7012,7013,7014,-6855,-6865]]},{"type":"Polygon","id":5077,"arcs":[[-6738,7015,7016,-6940,-6887]]},{"type":"Polygon","id":1033,"arcs":[[7017,7018,-6954,-6937]]},{"type":"MultiPolygon","id":6111,"arcs":[[[7019]],[[7020,-6899,-6531,7021]]]},{"type":"Polygon","id":28143,"arcs":[[-6737,-6960,7022,7023,7024,7025,7026,-7016]]},{"type":"Polygon","id":1049,"arcs":[[-6998,7027,7028,7029,7030,-6973,-6994]]},{"type":"Polygon","id":37017,"arcs":[[7031,7032,-7004,-6829,-6810]]},{"type":"Polygon","id":40065,"arcs":[[7033,7034,7035,7036,-6930,-6895,-6891]]},{"type":"Polygon","id":5125,"arcs":[[-6935,7037,7038,7039,-6902]]},{"type":"Polygon","id":40031,"arcs":[[-6657,-6782,7040,7041,7042,-6889]]},{"type":"Polygon","id":40049,"arcs":[[-7002,7043,7044,7045,-6780,-6801]]},{"type":"Polygon","id":13123,"arcs":[[7046,7047,7048,-6976,-6984]]},{"type":"Polygon","id":13137,"arcs":[[-6923,7049,7050,7051,7052,-6967,-6943]]},{"type":"MultiPolygon","id":6037,"arcs":[[[7053]],[[7054]],[[-6525,7055,7056,-7022,-6530]]]},{"type":"Polygon","id":45023,"arcs":[[-6917,7057,-7012,-6882]]},{"type":"Polygon","id":45007,"arcs":[[-6843,7058,7059,7060,-6919,-6909,-6844]]},{"type":"Polygon","id":45025,"arcs":[[7061,7062,7063,-6914,-6853,-6848,7064]]},{"type":"Polygon","id":45069,"arcs":[[-7008,7065,7066,7067,-7065,-6847,-6878,-6929]]},{"type":"Polygon","id":1079,"arcs":[[-6947,7068,7069,7070,7071,-7018,-6936]]},{"type":"Polygon","id":13311,"arcs":[[7072,7073,-6989,-6968,-7053]]},{"type":"Polygon","id":45059,"arcs":[[-7015,7074,7075,7076,-6842,-6856]]},{"type":"Polygon","id":35011,"arcs":[[7077,7078,7079,-6838,-6559]]},{"type":"Polygon","id":28137,"arcs":[[-6966,7080,7081,-7023,-6959,-6958]]},{"type":"Polygon","id":5051,"arcs":[[-7040,7082,7083,-6813,-6903]]},{"type":"Polygon","id":40029,"arcs":[[-6819,7084,7085,-6999,-6825]]},{"type":"Polygon","id":28117,"arcs":[[-6953,7086,7087,7088,-6955,-6948]]},{"type":"Polygon","id":48437,"arcs":[[-6880,7089,7090,7091,7092,-6875]]},{"type":"Polygon","id":48045,"arcs":[[-6869,7093,7094,7095,-7090,-6879]]},{"type":"Polygon","id":48069,"arcs":[[-7093,7096,7097,7098,-6861,-6876]]},{"type":"Polygon","id":48191,"arcs":[[-6873,7099,7100,7101,-7094,-6868]]},{"type":"Polygon","id":48075,"arcs":[[-6932,7102,7103,-7100,-6872]]},{"type":"Polygon","id":5097,"arcs":[[-7084,7104,7105,7106,7107,-6904,-6814]]},{"type":"Polygon","id":48369,"arcs":[[-7099,7108,7109,-7009,-6862]]},{"type":"Polygon","id":13187,"arcs":[[-7074,7110,7111,-6982,-6990]]},{"type":"Polygon","id":37141,"arcs":[[-6992,7112,7113,7114,7115,-7032,-6809,-6859]]},{"type":"Polygon","id":5113,"arcs":[[7116,7117,7118,-6775,-6905,-7108]]},{"type":"Polygon","id":1103,"arcs":[[-6972,7119,7120,-7069,-6946]]},{"type":"Polygon","id":13257,"arcs":[[7121,7122,-7050,-6922]]},{"type":"Polygon","id":40137,"arcs":[[-7046,7123,7124,7125,-7041,-6781]]},{"type":"Polygon","id":40005,"arcs":[[7126,7127,7128,7129,-7085,-6818]]},{"type":"Polygon","id":40127,"arcs":[[-6777,7130,7131,-7127,-6817,-6918]]},{"type":"Polygon","id":5107,"arcs":[[-7027,7132,7133,7134,7135,-6941,-7017]]},{"type":"Polygon","id":40099,"arcs":[[-7001,7136,7137,-7044]]},{"type":"Polygon","id":40141,"arcs":[[-7043,7138,7139,7140,-7035,-7034,-6890]]},{"type":"Polygon","id":13129,"arcs":[[-7049,7141,7142,7143,-6995,-6985,-6977]]},{"type":"Polygon","id":45033,"arcs":[[7144,7145,7146,-7066,-7007]]},{"type":"Polygon","id":13085,"arcs":[[-7112,7147,7148,7149,7150,-7047,-6983]]},{"type":"Polygon","id":45055,"arcs":[[-7063,7151,7152,7153,7154,7155,-6915,-7064]]},{"type":"Polygon","id":35041,"arcs":[[-7011,7156,7157,7158,7159,-7078,-6558]]},{"type":"Polygon","id":28145,"arcs":[[-7089,7160,7161,7162,-6964,-6962,-6956]]},{"type":"Polygon","id":1095,"arcs":[[-7031,7163,7164,7165,-7120,-6971,-6974]]},{"type":"Polygon","id":13055,"arcs":[[7166,7167,-7028,-6997]]},{"type":"Polygon","id":13115,"arcs":[[-7144,7168,7169,7170,-7167,-6996]]},{"type":"Polygon","id":35053,"arcs":[[-6926,7171,7172,7173,-6798,-7003]]},{"type":"Polygon","id":35003,"arcs":[[-7174,7174,7175,7176,-5782,-6799]]},{"type":"Polygon","id":1059,"arcs":[[-7072,7177,7178,7179,-6951,-7019]]},{"type":"Polygon","id":48197,"arcs":[[-7037,7180,7181,7182,-7103,-6931]]},{"type":"Polygon","id":45039,"arcs":[[-6916,-7156,7183,7184,-7013,-7058]]},{"type":"Polygon","id":5001,"arcs":[[-6942,-7136,7185,7186,7187,-6911,-6907]]},{"type":"Polygon","id":13227,"arcs":[[-7151,7188,-7142,-7048]]},{"type":"Polygon","id":28071,"arcs":[[-7163,7189,7190,7191,7192,-7081,-6965]]},{"type":"Polygon","id":28107,"arcs":[[-7193,7193,7194,7195,-7024,-7082]]},{"type":"Polygon","id":13119,"arcs":[[7196,7197,7198,-7122,-6921]]},{"type":"Polygon","id":45031,"arcs":[[-7068,7199,7200,-7152,-7062]]},{"type":"Polygon","id":45071,"arcs":[[-7185,7201,7202,7203,7204,-7075,-7014]]},{"type":"Polygon","id":1019,"arcs":[[-7171,7205,7206,7207,7208,-7029,-7168]]},{"type":"Polygon","id":28027,"arcs":[[7209,7210,7211,-7133,-7026,7212]]},{"type":"Polygon","id":28119,"arcs":[[-7196,7213,-7213,-7025]]},{"type":"Polygon","id":13139,"arcs":[[-7052,7214,7215,7216,7217,-7148,-7111,-7073]]},{"type":"Polygon","id":28081,"arcs":[[7218,7219,7220,7221,-7161,-7088]]},{"type":"Polygon","id":40019,"arcs":[[-7138,7222,7223,7224,7225,-7124,-7045]]},{"type":"Polygon","id":40069,"arcs":[[-7000,-7086,-7130,7226,7227,-7223,-7137]]},{"type":"Polygon","id":40033,"arcs":[[-7126,7228,7229,7230,-7139,-7042]]},{"type":"Polygon","id":40089,"arcs":[[-7119,7231,7232,7233,7234,7235,-7131,-6776]]},{"type":"Polygon","id":5059,"arcs":[[-7039,7236,7237,7238,-7105,-7083]]},{"type":"Polygon","id":4007,"arcs":[[-5733,7239,7240,7241,-6667,-6666,-5735]]},{"type":"Polygon","id":13147,"arcs":[[-7061,7242,7243,-7197,-6920]]},{"type":"Polygon","id":5053,"arcs":[[-6934,7244,7245,7246,-7237,-7038]]},{"type":"Polygon","id":5069,"arcs":[[-6912,-7188,7247,7248,-7245,-6933]]},{"type":"Polygon","id":13011,"arcs":[[7249,7250,-7215,-7051,-7123,-7199]]},{"type":"Polygon","id":37047,"arcs":[[-7116,7251,7252,-7005,-7033]]},{"type":"Polygon","id":45001,"arcs":[[7253,7254,7255,-7059,-7077]]},{"type":"Polygon","id":28057,"arcs":[[-6952,-7180,7256,7257,-7219,-7087]]},{"type":"Polygon","id":48487,"arcs":[[-7141,7258,7259,7260,-7181,-7036]]},{"type":"Polygon","id":13015,"arcs":[[7261,7262,7263,-7169,-7143,7264]]},{"type":"Polygon","id":13057,"arcs":[[-7150,7265,7266,7267,-7265,-7189]]},{"type":"Polygon","id":45047,"arcs":[[-7205,7268,7269,7270,-7254,-7076]]},{"type":"Polygon","id":37129,"arcs":[[7271,7272,7273,7274,-7114]]},{"type":"Polygon","id":28115,"arcs":[[-7222,7275,7276,-7190,-7162]]},{"type":"Polygon","id":45061,"arcs":[[7277,7278,-7153,-7201]]},{"type":"Polygon","id":37019,"arcs":[[-7275,7279,7280,7281,7282,-7252,-7115]]},{"type":"Polygon","id":5061,"arcs":[[7283,7284,7285,7286,-7117]]},{"type":"Polygon","id":5109,"arcs":[[7287,7288,7289,-7284,-7107]]},{"type":"Polygon","id":35027,"arcs":[[-7080,7290,7291,7292,-7172,-6925,-6839]]},{"type":"Polygon","id":5019,"arcs":[[-7239,7293,7294,7295,-7288,-7106]]},{"type":"Polygon","id":13117,"arcs":[[-7218,7296,7297,-7266,-7149]]},{"type":"Polygon","id":1093,"arcs":[[7298,7299,7300,7301,7302,-7257,-7179]]},{"type":"Polygon","id":4012,"arcs":[[-6669,7303,7304,7305,7306,-6522,7307]]},{"type":"Polygon","id":48345,"arcs":[[7308,7309,7310,-7095,-7102]]},{"type":"Polygon","id":48101,"arcs":[[-7104,-7183,7311,7312,-7309,-7101]]},{"type":"Polygon","id":1043,"arcs":[[-7166,7313,7314,7315,-7070,-7121]]},{"type":"Polygon","id":48153,"arcs":[[-7311,7316,7317,-7091,-7096]]},{"type":"Polygon","id":48189,"arcs":[[-7097,-7092,-7318,7318,7319]]},{"type":"Polygon","id":48279,"arcs":[[-7320,7320,7321,-7109,-7098]]},{"type":"Polygon","id":45041,"arcs":[[7322,7323,7324,7325,-7278,-7200,-7067,-7147]]},{"type":"Polygon","id":48017,"arcs":[[-7322,7326,-7157,-7010,-7110]]},{"type":"Polygon","id":1133,"arcs":[[-7071,-7316,7327,-7299,-7178]]},{"type":"Polygon","id":45051,"arcs":[[-7253,-7283,7328,7329,7330,-7145,-7006]]},{"type":"Polygon","id":45067,"arcs":[[-7331,7331,7332,-7323,-7146]]},{"type":"Polygon","id":13157,"arcs":[[7333,7334,7335,-7216,-7251]]},{"type":"Polygon","id":40067,"arcs":[[-7226,7336,7337,7338,-7229,-7125]]},{"type":"Polygon","id":13105,"arcs":[[-7256,7339,7340,7341,7342,7343,-7243,-7060]]},{"type":"Polygon","id":13195,"arcs":[[-7344,7344,7345,7346,-7334,-7250,-7198,-7244]]},{"type":"Polygon","id":45079,"arcs":[[7347,7348,7349,-7202,-7184,-7155]]},{"type":"Polygon","id":1009,"arcs":[[-7165,7350,7351,7352,7353,-7314]]},{"type":"Polygon","id":48155,"arcs":[[-7182,-7261,7354,7355,7356,-7312]]},{"type":"Polygon","id":48485,"arcs":[[-7231,7357,7358,-7259,-7140]]},{"type":"Polygon","id":1055,"arcs":[[-7209,7359,7360,-7351,-7164,-7030]]},{"type":"Polygon","id":45063,"arcs":[[7361,7362,7363,7364,-7203,-7350]]},{"type":"Polygon","id":28161,"arcs":[[7365,7366,7367,-7194,-7192]]},{"type":"Polygon","id":5133,"arcs":[[7368,-7232,-7118,-7287]]},{"type":"Polygon","id":45081,"arcs":[[-7365,7369,7370,-7269,-7204]]},{"type":"Polygon","id":13121,"arcs":[[-7298,7371,7372,7373,7374,7375,7376,7377,7378,-7267]]},{"type":"Polygon","id":40095,"arcs":[[7379,7380,7381,-7224,-7228]]},{"type":"Polygon","id":5079,"arcs":[[-7187,7382,7383,7384,-7248]]},{"type":"Polygon","id":45085,"arcs":[[-7326,7385,7386,-7348,-7154,-7279]]},{"type":"Polygon","id":13135,"arcs":[[7387,7388,7389,7390,-7372,-7297,-7217]]},{"type":"Polygon","id":28135,"arcs":[[-7368,7391,7392,7393,-7210,-7214,-7195]]},{"type":"Polygon","id":28013,"arcs":[[-7277,7394,7395,7396,-7366,-7191]]},{"type":"Polygon","id":40013,"arcs":[[7397,7398,7399,7400,-7380,-7227,-7129]]},{"type":"Polygon","id":40023,"arcs":[[-7236,7401,7402,-7398,-7128,-7132]]},{"type":"Polygon","id":5039,"arcs":[[-7247,7403,7404,7405,-7294,-7238]]},{"type":"Polygon","id":48077,"arcs":[[-7339,7406,7407,7408,-7358,-7230]]},{"type":"Polygon","id":13013,"arcs":[[7409,7410,-7388,-7336]]},{"type":"Polygon","id":28011,"arcs":[[7411,7412,7413,7414,-7134,-7212]]},{"type":"Polygon","id":5041,"arcs":[[-7415,7415,7416,-7383,-7186,-7135]]},{"type":"Polygon","id":13233,"arcs":[[-7264,7417,7418,7419,-7206,-7170]]},{"type":"Polygon","id":28095,"arcs":[[-7258,-7303,7420,7421,7422,7423,-7220]]},{"type":"Polygon","id":35005,"arcs":[[-7160,7424,7425,7426,-7291,-7079]]},{"type":"Polygon","id":13067,"arcs":[[-7379,7427,7428,-7262,-7268]]},{"type":"Polygon","id":6065,"arcs":[[7429,7430,7431,-6523,-7307]]},{"type":"Polygon","id":13223,"arcs":[[-7429,7432,7433,7434,-7418,-7263]]},{"type":"Polygon","id":45065,"arcs":[[-7271,7435,7436,7437,-7340,-7255]]},{"type":"Polygon","id":28017,"arcs":[[-7221,-7424,7438,7439,-7395,-7276]]},{"type":"Polygon","id":40085,"arcs":[[-7382,7440,7441,7442,-7337,-7225]]},{"type":"Polygon","id":5025,"arcs":[[-7385,7443,7444,7445,-7404,-7246,-7249]]},{"type":"Polygon","id":1075,"arcs":[[7446,7447,7448,-7421,-7302]]},{"type":"Polygon","id":13221,"arcs":[[-7343,7449,7450,7451,7452,7453,-7346,-7345]]},{"type":"Polygon","id":4013,"arcs":[[-7242,7454,7455,7456,-7304,-6668]]},{"type":"Polygon","id":13059,"arcs":[[-7454,7457,-7335,-7347]]},{"type":"Polygon","id":5057,"arcs":[[7458,7459,7460,7461,-7285,-7290]]},{"type":"Polygon","id":1127,"arcs":[[-7315,-7354,7462,7463,7464,-7300,-7328]]},{"type":"Polygon","id":13317,"arcs":[[7465,7466,7467,7468,-7450,-7342]]},{"type":"Polygon","id":48337,"arcs":[[-7443,7469,7470,7471,-7407,-7338]]},{"type":"Polygon","id":1115,"arcs":[[7472,7473,7474,7475,-7352,-7361]]},{"type":"Polygon","id":28133,"arcs":[[-7394,7476,7477,7478,-7412,-7211]]},{"type":"Polygon","id":13181,"arcs":[[-7438,7479,7480,-7466,-7341]]},{"type":"Polygon","id":45037,"arcs":[[7481,7482,7483,-7436,-7270,-7371]]},{"type":"Polygon","id":13089,"arcs":[[-7391,7484,7485,7486,-7373]]},{"type":"Polygon","id":1015,"arcs":[[7487,-7473,-7360,-7208,7488]]},{"type":"Polygon","id":13219,"arcs":[[-7453,7489,7490,7491,-7410,-7458]]},{"type":"Polygon","id":1029,"arcs":[[-7420,7492,7493,7494,7495,7496,-7489,-7207]]},{"type":"Polygon","id":48387,"arcs":[[-7235,7497,7498,7499,7500,7501,7502,-7402]]},{"type":"Polygon","id":5099,"arcs":[[-7296,7503,7504,7505,-7459,-7289]]},{"type":"Polygon","id":48181,"arcs":[[-7401,7506,7507,7508,7509,-7441,-7381]]},{"type":"Polygon","id":48097,"arcs":[[-7510,7510,7511,-7470,-7442]]},{"type":"Polygon","id":5081,"arcs":[[-7286,-7462,7512,7513,-7233,-7369]]},{"type":"Polygon","id":45027,"arcs":[[7514,7515,7516,7517,-7386,-7325]]},{"type":"Polygon","id":6059,"arcs":[[-6524,-7432,7518,7519,-7056]]},{"type":"Polygon","id":48277,"arcs":[[-7503,7520,7521,-7399,-7403]]},{"type":"Polygon","id":13297,"arcs":[[-7492,7522,7523,7524,-7389,-7411]]},{"type":"Polygon","id":1057,"arcs":[[-7465,7525,7526,-7447,-7301]]},{"type":"Polygon","id":13143,"arcs":[[7527,-7493,-7419,-7435]]},{"type":"Polygon","id":28043,"arcs":[[-7397,7528,7529,7530,7531,-7392,-7367]]},{"type":"Polygon","id":45089,"arcs":[[-7333,7532,7533,-7515,-7324]]},{"type":"Polygon","id":48147,"arcs":[[-7522,7534,7535,7536,-7507,-7400]]},{"type":"Polygon","id":45017,"arcs":[[-7387,-7518,7537,-7362,-7349]]},{"type":"Polygon","id":45003,"arcs":[[7538,7539,7540,7541,-7482,-7370,-7364]]},{"type":"Polygon","id":1073,"arcs":[[-7476,7542,7543,7544,-7463,-7353]]},{"type":"Polygon","id":48269,"arcs":[[-7357,7545,7546,7547,-7313]]},{"type":"Polygon","id":48275,"arcs":[[7548,7549,-7546,-7356]]},{"type":"Polygon","id":48009,"arcs":[[-7409,7550,7551,7552,-7359]]},{"type":"Polygon","id":48125,"arcs":[[-7548,7553,7554,-7310]]},{"type":"Polygon","id":48107,"arcs":[[-7555,7555,7556,-7317]]},{"type":"Polygon","id":48023,"arcs":[[-7553,7557,-7549,-7355,-7260]]},{"type":"Polygon","id":48303,"arcs":[[-7557,7558,7559,-7319]]},{"type":"Polygon","id":48079,"arcs":[[7560,7561,7562,-7158,-7327]]},{"type":"Polygon","id":48219,"arcs":[[-7560,7563,-7561,-7321]]},{"type":"Polygon","id":5103,"arcs":[[-7406,7564,7565,7566,-7504,-7295]]},{"type":"Polygon","id":13211,"arcs":[[7567,7568,7569,7570,-7523,-7491]]},{"type":"Polygon","id":13045,"arcs":[[-7377,7571,7572,7573,-7494,-7528,-7434,7574]]},{"type":"Polygon","id":28083,"arcs":[[-7532,7575,7576,7577,-7477,-7393]]},{"type":"Polygon","id":28025,"arcs":[[-7423,7578,7579,7580,-7439]]},{"type":"Polygon","id":13097,"arcs":[[-7378,-7575,-7433,-7428]]},{"type":"Polygon","id":5013,"arcs":[[7581,7582,-7565,-7405,-7446]]},{"type":"Polygon","id":5043,"arcs":[[-7417,7583,7584,7585,-7444,-7384]]},{"type":"Polygon","id":13247,"arcs":[[7586,-7485,-7390,-7525,7587]]},{"type":"Polygon","id":45043,"arcs":[[-7330,7588,7589,7590,-7533,-7332]]},{"type":"Polygon","id":4011,"arcs":[[-7177,7591,7592,7593,7594,-5783]]},{"type":"Polygon","id":13133,"arcs":[[7595,7596,7597,-7568,-7490,-7452]]},{"type":"Polygon","id":28087,"arcs":[[-7449,7598,7599,7600,-7579,-7422]]},{"type":"Polygon","id":13217,"arcs":[[-7571,7601,7602,7603,-7588,-7524]]},{"type":"Polygon","id":28155,"arcs":[[-7581,7604,7605,7606,-7529,-7396,-7440]]},{"type":"Polygon","id":13265,"arcs":[[7607,7608,7609,-7596,-7451,-7469]]},{"type":"Polygon","id":48037,"arcs":[[-7514,7610,7611,7612,-7498,-7234]]},{"type":"Polygon","id":45075,"arcs":[[-7517,7613,7614,7615,7616,7617,-7539,-7363,-7538]]},{"type":"Polygon","id":5011,"arcs":[[-7586,7618,7619,-7582,-7445]]},{"type":"Polygon","id":13073,"arcs":[[-7437,-7484,7620,7621,-7480]]},{"type":"Polygon","id":1121,"arcs":[[-7488,-7497,7622,7623,7624,-7474]]},{"type":"Polygon","id":28097,"arcs":[[-7607,7625,7626,7627,-7530]]},{"type":"Polygon","id":28015,"arcs":[[-7628,7628,7629,-7576,-7531]]},{"type":"Polygon","id":13189,"arcs":[[-7481,-7622,7630,7631,7632,7633,-7467]]},{"type":"Polygon","id":4009,"arcs":[[-7595,7634,7635,7636,-7240,-5732,-5784]]},{"type":"Polygon","id":13063,"arcs":[[-7487,7637,7638,7639,-7374]]},{"type":"Polygon","id":13151,"arcs":[[-7587,-7604,7640,7641,-7638,-7486]]},{"type":"Polygon","id":5091,"arcs":[[7642,7643,7644,7645,-7611,-7513,-7461]]},{"type":"Polygon","id":13301,"arcs":[[7646,7647,7648,-7609,-7608,-7468,-7634]]},{"type":"Polygon","id":1125,"arcs":[[-7464,-7545,7649,7650,7651,7652,-7526]]},{"type":"Polygon","id":35025,"arcs":[[-7563,7653,7654,7655,7656,7657,7658,-7425,-7159]]},{"type":"Polygon","id":28105,"arcs":[[-7601,7659,7660,7661,-7605,-7580]]},{"type":"Polygon","id":5017,"arcs":[[-7414,7662,7663,7664,7665,7666,7667,-7584,-7416]]},{"type":"Polygon","id":13113,"arcs":[[7668,7669,-7375,-7640]]},{"type":"Polygon","id":1117,"arcs":[[-7625,7670,7671,7672,-7543,-7475]]},{"type":"Polygon","id":13245,"arcs":[[7673,7674,7675,-7631,-7621,-7483,-7542]]},{"type":"Polygon","id":1107,"arcs":[[-7527,-7653,7676,7677,7678,-7599,-7448]]},{"type":"Polygon","id":28019,"arcs":[[-7662,7679,7680,-7626,-7606]]},{"type":"Polygon","id":28151,"arcs":[[-7479,7681,7682,7683,-7663,-7413]]},{"type":"Polygon","id":13159,"arcs":[[7684,7685,7686,7687,-7602,-7570]]},{"type":"Polygon","id":13077,"arcs":[[-7670,7688,7689,7690,7691,-7572,-7376]]},{"type":"Polygon","id":45015,"arcs":[[-7591,7692,7693,7694,7695,-7614,-7516,-7534]]},{"type":"Polygon","id":6073,"arcs":[[7696,7697,-7519,-7431]]},{"type":"Polygon","id":1111,"arcs":[[-7574,7698,7699,7700,7701,7702,-7495]]},{"type":"Polygon","id":1027,"arcs":[[-7703,7703,7704,-7623,-7496]]},{"type":"Polygon","id":48119,"arcs":[[-7502,7705,7706,7707,-7535,-7521]]},{"type":"Polygon","id":45011,"arcs":[[7708,7709,7710,-7540,-7618]]},{"type":"Polygon","id":13237,"arcs":[[7711,7712,7713,-7685,-7569,-7598]]},{"type":"Polygon","id":35051,"arcs":[[-7293,7714,7715,7716,7717,-7175,-7173]]},{"type":"Polygon","id":5073,"arcs":[[-7506,7718,7719,7720,-7643,-7460]]},{"type":"Polygon","id":13141,"arcs":[[-7649,7721,7722,7723,-7712,-7597,-7610]]},{"type":"Polygon","id":4027,"arcs":[[-7457,7724,7725,7726,-7305]]},{"type":"Polygon","id":4021,"arcs":[[-7241,-7637,7727,-7455]]},{"type":"Polygon","id":48237,"arcs":[[-7472,7728,7729,7730,7731,-7551,-7408]]},{"type":"Polygon","id":5027,"arcs":[[-7567,7732,7733,7734,-7719,-7505]]},{"type":"Polygon","id":13035,"arcs":[[-7688,7735,7736,7737,-7641,-7603]]},{"type":"Polygon","id":45009,"arcs":[[7738,7739,-7709,-7617]]},{"type":"Polygon","id":6025,"arcs":[[-7727,7740,-7697,-7430,-7306]]},{"type":"Polygon","id":48497,"arcs":[[-7512,7741,7742,7743,-7729,-7471]]},{"type":"Polygon","id":48121,"arcs":[[7744,7745,7746,-7742,-7511,-7509]]},{"type":"Polygon","id":13149,"arcs":[[-7692,7747,-7699,-7573]]},{"type":"Polygon","id":48231,"arcs":[[7748,7749,7750,7751,7752,-7536,-7708,7753]]},{"type":"Polygon","id":48085,"arcs":[[-7537,-7753,7754,7755,-7745,-7508]]},{"type":"Polygon","id":48263,"arcs":[[7756,7757,7758,7759,-7554]]},{"type":"Polygon","id":48433,"arcs":[[7760,7761,7762,-7757,-7547]]},{"type":"Polygon","id":48449,"arcs":[[7763,7764,7765,-7500]]},{"type":"Polygon","id":48169,"arcs":[[-7760,7766,7767,7768,-7556]]},{"type":"Polygon","id":48447,"arcs":[[7769,7770,7771,7772,-7558]]},{"type":"Polygon","id":48503,"arcs":[[-7732,7773,7774,-7770,-7552]]},{"type":"Polygon","id":48207,"arcs":[[-7773,7775,7776,-7761,-7550]]},{"type":"Polygon","id":5003,"arcs":[[-7668,7777,7778,-7619,-7585]]},{"type":"Polygon","id":48305,"arcs":[[-7769,7779,7780,7781,-7559]]},{"type":"Polygon","id":35035,"arcs":[[-7427,7782,7783,7784,7785,7786,-7715,-7292]]},{"type":"Polygon","id":48501,"arcs":[[7787,7788,-7654,-7562]]},{"type":"Polygon","id":48445,"arcs":[[-7782,7789,7790,-7788,-7564]]},{"type":"Polygon","id":48159,"arcs":[[-7766,7791,7792,7793,-7706,-7501]]},{"type":"Polygon","id":5139,"arcs":[[-7583,-7620,-7779,7794,7795,-7733,-7566]]},{"type":"Polygon","id":48223,"arcs":[[-7794,7796,7797,-7754,-7707]]},{"type":"Polygon","id":48343,"arcs":[[-7613,7798,7799,7800,7801,-7764,-7499]]},{"type":"Polygon","id":28051,"arcs":[[-7630,7802,7803,7804,-7577]]},{"type":"Polygon","id":13255,"arcs":[[-7738,7805,7806,7807,-7689,-7669,-7639,-7642]]},{"type":"Polygon","id":45035,"arcs":[[-7696,7808,7809,-7615]]},{"type":"Polygon","id":28053,"arcs":[[-7578,-7805,7810,7811,-7682,-7478]]},{"type":"Polygon","id":13125,"arcs":[[7812,7813,7814,-7722,-7648]]},{"type":"Polygon","id":13163,"arcs":[[-7675,7815,7816,7817,7818,-7813,-7647,-7633,-7632,-7676]]},{"type":"Polygon","id":48067,"arcs":[[-7646,7819,7820,-7799,-7612]]},{"type":"Polygon","id":13033,"arcs":[[-7541,-7711,7821,7822,7823,7824,-7816,-7674]]},{"type":"Polygon","id":28103,"arcs":[[-7679,7825,7826,7827,-7660,-7600]]},{"type":"Polygon","id":28159,"arcs":[[-7828,7828,7829,7830,-7680,-7661]]},{"type":"Polygon","id":28007,"arcs":[[-7831,7831,7832,-7803,-7629,-7627,-7681]]},{"type":"Polygon","id":1007,"arcs":[[7833,7834,7835,-7650,-7544,-7673]]},{"type":"Polygon","id":13303,"arcs":[[-7815,-7814,-7819,7836,7837,7838,-7723]]},{"type":"Polygon","id":13199,"arcs":[[-7808,7839,7840,7841,7842,7843,-7690]]},{"type":"Polygon","id":13285,"arcs":[[-7844,7844,7845,-7700,-7748,-7691]]},{"type":"Polygon","id":35017,"arcs":[[-7718,7846,7847,-7592,-7176]]},{"type":"Polygon","id":13231,"arcs":[[7848,7849,-7840,-7807]]},{"type":"Polygon","id":13171,"arcs":[[7850,7851,-7849,-7806,-7737]]},{"type":"Polygon","id":13207,"arcs":[[-7687,7852,7853,7854,7855,-7851,-7736]]},{"type":"Polygon","id":13009,"arcs":[[-7724,-7839,7856,7857,-7713]]},{"type":"Polygon","id":13169,"arcs":[[-7858,7858,7859,7860,-7853,-7686,-7714]]},{"type":"Polygon","id":45029,"arcs":[[-7810,7861,7862,7863,7864,-7739,-7616]]},{"type":"Polygon","id":45005,"arcs":[[-7740,7865,7866,7867,-7822,-7710]]},{"type":"Polygon","id":1063,"arcs":[[7868,7869,7870,-7677,-7652]]},{"type":"Polygon","id":1017,"arcs":[[-7846,7871,7872,7873,-7701]]},{"type":"Polygon","id":1123,"arcs":[[-7874,7874,7875,7876,7877,-7704,-7702]]},{"type":"Polygon","id":1037,"arcs":[[-7878,7878,7879,-7671,-7624,-7705]]},{"type":"Polygon","id":28125,"arcs":[[-7812,7880,7881,-7683]]},{"type":"Polygon","id":48063,"arcs":[[-7802,7882,7883,-7792,-7765]]},{"type":"Polygon","id":1021,"arcs":[[-7880,7884,7885,7886,7887,-7834,-7672]]},{"type":"Polygon","id":35013,"arcs":[[7888,7889,7890,-7716,-7787]]},{"type":"Polygon","id":13251,"arcs":[[-7867,7891,7892,7893,7894,7895,-7823,-7868]]},{"type":"Polygon","id":45049,"arcs":[[7896,7897,7898,-7892,-7866,-7865]]},{"type":"Polygon","id":28163,"arcs":[[7899,7900,7901,7902,7903,-7881,-7811,-7804]]},{"type":"Polygon","id":22017,"arcs":[[7904,7905,7906,7907,7908,-7820,-7645,7909]]},{"type":"Polygon","id":22015,"arcs":[[7910,7911,7912,-7910,-7644,-7721]]},{"type":"Polygon","id":22119,"arcs":[[7913,-7911,-7720,-7735,7914]]},{"type":"Polygon","id":22027,"arcs":[[7915,7916,-7915,-7734,-7796,7917]]},{"type":"Polygon","id":22111,"arcs":[[7918,7919,-7918,-7795,7920]]},{"type":"Polygon","id":48499,"arcs":[[7921,7922,7923,7924,7925,-7797,-7793,-7884]]},{"type":"Polygon","id":28055,"arcs":[[-7882,-7904,7926,7927,-7664,-7684]]},{"type":"Polygon","id":13319,"arcs":[[-7838,7928,7929,7930,-7859,-7857]]},{"type":"Polygon","id":22067,"arcs":[[-7667,7931,7932,7933,-7921,-7778]]},{"type":"Polygon","id":1065,"arcs":[[-7836,7934,7935,-7869,-7651]]},{"type":"Polygon","id":22123,"arcs":[[7936,7937,-7932,-7666]]},{"type":"Polygon","id":48363,"arcs":[[7938,7939,7940,7941,7942,-7774,-7731]]},{"type":"Polygon","id":22035,"arcs":[[7943,7944,7945,-7937,-7665,-7928]]},{"type":"Polygon","id":48367,"arcs":[[7946,7947,7948,-7939,-7730,-7744]]},{"type":"Polygon","id":13293,"arcs":[[-7852,-7856,7949,7950,7951,-7841,-7850]]},{"type":"Polygon","id":1119,"arcs":[[7952,7953,7954,7955,-7826,-7678,-7871]]},{"type":"Polygon","id":48439,"arcs":[[-7743,-7747,7956,7957,7958,-7947]]},{"type":"Polygon","id":48113,"arcs":[[-7756,7959,7960,7961,-7957,-7746]]},{"type":"Polygon","id":48397,"arcs":[[-7752,7962,-7960,-7755]]},{"type":"Polygon","id":48379,"arcs":[[-7926,7963,-7749,-7798]]},{"type":"Polygon","id":48415,"arcs":[[7964,7965,7966,-7767,-7759]]},{"type":"Polygon","id":35015,"arcs":[[-7659,7967,7968,7969,-7783,-7426]]},{"type":"Polygon","id":48151,"arcs":[[-7763,7970,7971,-7965,-7758]]},{"type":"Polygon","id":48033,"arcs":[[-7967,7972,7973,7974,-7780,-7768]]},{"type":"Polygon","id":48115,"arcs":[[-7975,7975,7976,-7790,-7781]]},{"type":"Polygon","id":48165,"arcs":[[-7791,-7977,7977,7978,-7655,-7789]]},{"type":"Polygon","id":48253,"arcs":[[-7777,7979,7980,7981,-7971,-7762]]},{"type":"Polygon","id":48417,"arcs":[[7982,7983,7984,-7980,-7776,-7772]]},{"type":"Polygon","id":48429,"arcs":[[-7943,7985,-7983,-7771,-7775]]},{"type":"Polygon","id":13165,"arcs":[[-7896,7986,7987,-7824]]},{"type":"Polygon","id":13021,"arcs":[[7988,7989,7990,7991,-7854,-7861]]},{"type":"Polygon","id":28099,"arcs":[[7992,7993,7994,-7830]]},{"type":"Polygon","id":28079,"arcs":[[-7995,7995,7996,7997,-7832]]},{"type":"Polygon","id":28069,"arcs":[[-7956,7998,-7993,-7829,-7827]]},{"type":"Polygon","id":48459,"arcs":[[-7801,7999,8000,8001,8002,-7922,-7883]]},{"type":"Polygon","id":13289,"arcs":[[8003,8004,-7990,-7989,-7860,-7931]]},{"type":"Polygon","id":13263,"arcs":[[8005,8006,8007,8008,8009,-7842,-7952]]},{"type":"Polygon","id":48315,"arcs":[[-7909,8010,-8000,-7800,-7821]]},{"type":"Polygon","id":28089,"arcs":[[-7998,8011,8012,8013,-7901,-7900,-7833]]},{"type":"Polygon","id":1105,"arcs":[[-7888,8014,8015,-7935,-7835]]},{"type":"Polygon","id":13145,"arcs":[[-8010,8016,8017,-7872,-7845,-7843]]},{"type":"Polygon","id":13079,"arcs":[[-7992,8018,8019,8020,-7950,-7855]]},{"type":"Polygon","id":48257,"arcs":[[8021,8022,8023,-7961,-7963,-7751]]},{"type":"Polygon","id":13107,"arcs":[[-7825,-7988,8024,8025,8026,8027,8028,8029,-7817]]},{"type":"Polygon","id":48467,"arcs":[[-7964,-7925,8030,8031,-8022,-7750]]},{"type":"Polygon","id":13167,"arcs":[[-8030,8032,-7929,-7837,-7818]]},{"type":"Polygon","id":48203,"arcs":[[-7908,8033,8034,8035,-8001,-8011]]},{"type":"Polygon","id":35023,"arcs":[[8036,8037,8038,-7593,-7848]]},{"type":"Polygon","id":1051,"arcs":[[8039,8040,8041,-7885,-7879,-7877]]},{"type":"Polygon","id":22061,"arcs":[[8042,8043,8044,-7916,-7920]]},{"type":"Polygon","id":45053,"arcs":[[8045,8046,8047,8048,8049,8050,8051,8052,8053,8054,8055,8056,-7898]]},{"type":"Polygon","id":13269,"arcs":[[-8021,8057,8058,8059,8060,-8006,-7951]]},{"type":"Polygon","id":1081,"arcs":[[-8018,8061,8062,8063,-7875,-7873]]},{"type":"Polygon","id":1047,"arcs":[[8064,8065,8066,8067,-8015,-7887]]},{"type":"Polygon","id":22073,"arcs":[[8068,8069,8070,-8043,-7919,-7934]]},{"type":"Polygon","id":13175,"arcs":[[8071,8072,8073,-7930,-8033,8074]]},{"type":"Polygon","id":1001,"arcs":[[-8042,8075,8076,-8065,-7886]]},{"type":"MultiPolygon","id":45013,"arcs":[[[8077]],[[-8053,-8052,8078]],[[8079]],[[8080]],[[8081,-8046,-7897,-7864]]]},{"type":"Polygon","id":13225,"arcs":[[8082,-8058,-8020,8083]]},{"type":"Polygon","id":13153,"arcs":[[-8005,8084,8085,8086,8087,-8084,-8019,-7991]]},{"type":"Polygon","id":48423,"arcs":[[-7923,-8003,8088,8089,8090,8091,-8031,-7924]]},{"type":"Polygon","id":22083,"arcs":[[-7946,8092,8093,8094,-8069,-7933,-7938]]},{"type":"Polygon","id":48183,"arcs":[[-8036,8095,-8089,-8002]]},{"type":"Polygon","id":13031,"arcs":[[-7894,8096,8097,8098,8099,-8025,-7987,-7895]]},{"type":"Polygon","id":28123,"arcs":[[-7997,8100,8101,8102,-8012]]},{"type":"Polygon","id":28149,"arcs":[[8103,8104,8105,8106,8107,8108,-7944,-7927,-7903]]},{"type":"Polygon","id":13215,"arcs":[[-8009,8109,8110,-8062,-8017]]},{"type":"Polygon","id":35029,"arcs":[[-7891,8111,-8037,-7847,-7717]]},{"type":"Polygon","id":13103,"arcs":[[-8057,-8056,8112,8113,-8097,-7893,-7899]]},{"type":"Polygon","id":1087,"arcs":[[8114,8115,8116,8117,-8040,-7876,-8064]]},{"type":"Polygon","id":28121,"arcs":[[-8103,8118,8119,8120,-8013]]},{"type":"Polygon","id":22013,"arcs":[[-8045,8121,8122,8123,8124,-7912,-7914,-7917]]},{"type":"Polygon","id":13023,"arcs":[[8125,8126,-8085,-8004,-8074]]},{"type":"Polygon","id":28075,"arcs":[[-7955,8127,8128,8129,-7999]]},{"type":"Polygon","id":28101,"arcs":[[-8130,8130,-8101,-7996,-7994]]},{"type":"Polygon","id":28049,"arcs":[[-8121,8131,8132,-8104,-7902,-8014]]},{"type":"Polygon","id":22065,"arcs":[[8133,8134,-8093,-7945,-8109]]},{"type":"Polygon","id":13197,"arcs":[[8135,8136,8137,8138,8139,-8007,-8061]]},{"type":"Polygon","id":13043,"arcs":[[8140,8141,-8026,-8100]]},{"type":"Polygon","id":48221,"arcs":[[8142,8143,8144,-7940,-7949]]},{"type":"Polygon","id":48251,"arcs":[[8145,8146,8147,8148,-8143,-7948,-7959]]},{"type":"Polygon","id":48139,"arcs":[[-7962,-8024,8149,8150,8151,-8146,-7958]]},{"type":"Polygon","id":1091,"arcs":[[-7936,-8016,-8068,8152,8153,8154,-7953,-7870]]},{"type":"Polygon","id":13053,"arcs":[[-8140,8155,8156,-8110,-8008]]},{"type":"Polygon","id":48227,"arcs":[[8157,8158,8159,8160,-7974]]},{"type":"Polygon","id":48335,"arcs":[[8161,8162,8163,-8158,-7973,-7966]]},{"type":"Polygon","id":48353,"arcs":[[8164,8165,8166,-8162,-7972]]},{"type":"Polygon","id":48317,"arcs":[[-8161,8167,8168,8169,-7978,-7976]]},{"type":"Polygon","id":48003,"arcs":[[-8170,8170,8171,8172,-7656,-7979]]},{"type":"Polygon","id":13193,"arcs":[[-8083,-8088,8173,8174,8175,-8059]]},{"type":"Polygon","id":48441,"arcs":[[8176,8177,8178,-8165,-7982]]},{"type":"Polygon","id":48133,"arcs":[[-7942,8179,8180,8181,8182,-7984,-7986]]},{"type":"Polygon","id":48143,"arcs":[[-7941,-8145,8183,8184,8185,8186,-8180]]},{"type":"Polygon","id":48059,"arcs":[[-8183,8187,8188,-8177,-7981,-7985]]},{"type":"Polygon","id":4019,"arcs":[[-7636,8189,8190,8191,-7725,-7456,-7728]]},{"type":"Polygon","id":13283,"arcs":[[8192,8193,-8075,-8029]]},{"type":"Polygon","id":1113,"arcs":[[-8111,-8157,8194,8195,8196,-8115,-8063]]},{"type":"Polygon","id":1101,"arcs":[[-8118,-8117,8197,8198,8199,8200,-8076,-8041]]},{"type":"Polygon","id":22049,"arcs":[[-8071,8201,8202,-8122,-8044]]},{"type":"Polygon","id":13091,"arcs":[[8203,8204,8205,8206,-8126,-8073]]},{"type":"Polygon","id":13249,"arcs":[[-8176,8207,-8136,-8060]]},{"type":"Polygon","id":4003,"arcs":[[-7594,-8039,8208,8209,-8190,-7635]]},{"type":"Polygon","id":1085,"arcs":[[-8201,8210,8211,8212,-8066,-8077]]},{"type":"Polygon","id":48401,"arcs":[[8213,8214,8215,8216,-8090,-8096,-8035]]},{"type":"Polygon","id":22041,"arcs":[[-8135,8217,8218,8219,-8094]]},{"type":"Polygon","id":13235,"arcs":[[-8127,-8207,8220,8221,-8086]]},{"type":"Polygon","id":48365,"arcs":[[-7907,8222,8223,-8214,-8034]]},{"type":"Polygon","id":48213,"arcs":[[-8032,-8092,8224,8225,8226,8227,-8150,-8023]]},{"type":"Polygon","id":13209,"arcs":[[8228,8229,-8193,8230]]},{"type":"Polygon","id":13279,"arcs":[[-8028,8231,8232,8233,-8231]]},{"type":"Polygon","id":22031,"arcs":[[8234,8235,8236,8237,-8223,-7906]]},{"type":"Polygon","id":48349,"arcs":[[8238,8239,8240,-8151,-8228]]},{"type":"Polygon","id":48425,"arcs":[[-8149,8241,-8184,-8144]]},{"type":"Polygon","id":13267,"arcs":[[8242,8243,8244,8245,8246,-8232,-8027,-8142]]},{"type":"Polygon","id":1023,"arcs":[[8247,8248,8249,8250,-8128,-7954,-8155]]},{"type":"Polygon","id":13309,"arcs":[[-8230,8251,8252,-8204,-8072,-8194]]},{"type":"Polygon","id":1011,"arcs":[[-8197,8253,8254,-8198,-8116]]},{"type":"Polygon","id":13093,"arcs":[[-8222,8255,8256,8257,8258,-8174,-8087]]},{"type":"Polygon","id":13109,"arcs":[[-8099,8259,8260,-8243,-8141]]},{"type":"Polygon","id":22021,"arcs":[[-8095,-8220,8261,8262,8263,-8202,-8070]]},{"type":"Polygon","id":1131,"arcs":[[-8067,-8213,8264,8265,8266,-8153]]},{"type":"Polygon","id":48217,"arcs":[[-8241,8267,8268,8269,-8147,-8152]]},{"type":"Polygon","id":48093,"arcs":[[8270,8271,8272,-8181,-8187]]},{"type":"Polygon","id":22107,"arcs":[[-8108,8273,-8106,8274,8275,8276,8277,8278,-8218,-8134]]},{"type":"Polygon","id":13029,"arcs":[[8279,8280,8281,-8260,-8098,-8114]]},{"type":"Polygon","id":22081,"arcs":[[-7913,-8125,8282,-8235,-7905]]},{"type":"MultiPolygon","id":13051,"arcs":[[[8283]],[[8284]],[[8285,-8280,-8113,-8055]]]},{"type":"Polygon","id":13307,"arcs":[[8286,8287,8288,8289,-8138]]},{"type":"Polygon","id":13259,"arcs":[[-8290,8290,8291,8292,-8195,-8156,-8139]]},{"type":"Polygon","id":13261,"arcs":[[-8259,-8258,8293,8294,8295,-8287,-8137,-8208,-8175]]},{"type":"Polygon","id":28023,"arcs":[[-8251,8296,8297,-8129]]},{"type":"Polygon","id":28021,"arcs":[[-8133,8298,8299,-8275,-8105]]},{"type":"Polygon","id":28061,"arcs":[[-8298,8300,8301,8302,-8131]]},{"type":"Polygon","id":28129,"arcs":[[-8303,8303,8304,8305,-8119,-8102]]},{"type":"Polygon","id":48035,"arcs":[[-8148,-8270,8306,8307,8308,-8185,-8242]]},{"type":"Polygon","id":13271,"arcs":[[8309,8310,8311,8312,-8205,-8253]]},{"type":"Polygon","id":22127,"arcs":[[-8203,-8264,8313,8314,8315,-8123]]},{"type":"Polygon","id":22069,"arcs":[[-8316,8316,8317,8318,8319,-8236,-8283,-8124]]},{"type":"Polygon","id":1005,"arcs":[[-8293,8320,8321,8322,8323,8324,8325,-8254,-8196]]},{"type":"Polygon","id":48073,"arcs":[[-8217,8326,8327,8328,8329,-8225,-8091]]},{"type":"Polygon","id":13315,"arcs":[[-8206,-8313,8330,8331,8332,-8256,-8221]]},{"type":"MultiPolygon","id":13179,"arcs":[[[8333]],[[8334,8335,-8244,-8261,-8282,8336]]]},{"type":"Polygon","id":48431,"arcs":[[-8164,8337,8338,8339,8340,-8159]]},{"type":"Polygon","id":48173,"arcs":[[-8341,8341,8342,-8168,-8160]]},{"type":"Polygon","id":48329,"arcs":[[-8343,8343,8344,-8171,-8169]]},{"type":"Polygon","id":48135,"arcs":[[-8345,8345,8346,8347,8348,-8172]]},{"type":"Polygon","id":48495,"arcs":[[-8349,8349,8350,-7657,-8173]]},{"type":"Polygon","id":48081,"arcs":[[-8167,8351,8352,-8338,-8163]]},{"type":"Polygon","id":48001,"arcs":[[8353,8354,8355,-8226,-8330]]},{"type":"Polygon","id":48083,"arcs":[[-8189,8356,8357,8358,8359,-8178]]},{"type":"Polygon","id":48399,"arcs":[[-8360,8360,8361,-8352,-8166,-8179]]},{"type":"Polygon","id":48049,"arcs":[[-8273,8362,8363,8364,-8357,-8188,-8182]]},{"type":"Polygon","id":1109,"arcs":[[-8326,-8325,8365,8366,8367,-8199,-8255]]},{"type":"Polygon","id":1041,"arcs":[[-8368,8368,8369,8370,-8211,-8200]]},{"type":"Polygon","id":28029,"arcs":[[8371,8372,8373,8374,-8299,-8132]]},{"type":"Polygon","id":28127,"arcs":[[-8306,8375,8376,8377,-8372,-8120]]},{"type":"Polygon","id":13081,"arcs":[[-8333,8378,8379,8380,-8294,-8257]]},{"type":"Polygon","id":48193,"arcs":[[8381,-8271,-8186,-8309,8382,8383]]},{"type":"Polygon","id":13183,"arcs":[[8384,8385,-8245,-8336]]},{"type":"Polygon","id":48161,"arcs":[[8386,8387,-8239,-8227,-8356]]},{"type":"Polygon","id":48109,"arcs":[[8388,8389,8390,-7784,-7970]]},{"type":"Polygon","id":48229,"arcs":[[8391,8392,8393,-7785,-8391]]},{"type":"Polygon","id":48141,"arcs":[[8394,-7889,-7786,-8394]]},{"type":"Polygon","id":48301,"arcs":[[8395,8396,-7968,-7658,-8351]]},{"type":"Polygon","id":48389,"arcs":[[8397,8398,8399,-8389,-7969,-8397]]},{"type":"Polygon","id":13239,"arcs":[[8400,8401,-8321,-8292]]},{"type":"Polygon","id":1025,"arcs":[[-8267,8402,8403,8404,-8248,-8154]]},{"type":"Polygon","id":48419,"arcs":[[8405,8406,8407,8408,-8215,-8224,-8238]]},{"type":"Polygon","id":22025,"arcs":[[-8279,8409,8410,8411,-8262,-8219]]},{"type":"Polygon","id":13161,"arcs":[[8412,8413,8414,-8310,-8252,-8229,-8234]]},{"type":"Polygon","id":13273,"arcs":[[8415,8416,8417,8418,-8288,-8296]]},{"type":"Polygon","id":13001,"arcs":[[-8247,8419,8420,8421,-8413,-8233]]},{"type":"Polygon","id":1013,"arcs":[[-8371,8422,8423,8424,-8265,-8212]]},{"type":"Polygon","id":13243,"arcs":[[-8289,-8419,8425,8426,-8401,-8291]]},{"type":"Polygon","id":22059,"arcs":[[-8412,8427,8428,8429,-8314,-8263]]},{"type":"Polygon","id":13177,"arcs":[[-8381,8430,8431,-8416,-8295]]},{"type":"Polygon","id":28153,"arcs":[[8432,8433,8434,-8301,-8297,-8250,8435]]},{"type":"Polygon","id":28063,"arcs":[[-8375,8436,8437,8438,-8276,-8300]]},{"type":"Polygon","id":48309,"arcs":[[8439,-8307,-8269,8440,8441,8442]]},{"type":"Polygon","id":13287,"arcs":[[8443,8444,8445,8446,-8379,-8332]]},{"type":"Polygon","id":13017,"arcs":[[-8312,8447,8448,-8444,-8331]]},{"type":"Polygon","id":13321,"arcs":[[-8380,-8447,8449,8450,8451,8452,-8431]]},{"type":"Polygon","id":48347,"arcs":[[-8409,8453,8454,-8327,-8216]]},{"type":"Polygon","id":22085,"arcs":[[-8320,8455,8456,8457,-8406,-8237]]},{"type":"Polygon","id":13305,"arcs":[[-8246,-8386,8458,8459,8460,8461,-8420]]},{"type":"Polygon","id":1099,"arcs":[[-8425,8462,8463,8464,-8403,-8266]]},{"type":"Polygon","id":28067,"arcs":[[8465,8466,8467,-8304,-8302,-8435]]},{"type":"Polygon","id":48293,"arcs":[[8468,-8441,-8268,-8240,-8388,8469,8470]]},{"type":"Polygon","id":13069,"arcs":[[8471,8472,8473,8474,8475,-8448,-8311,-8415]]},{"type":"Polygon","id":22043,"arcs":[[-8430,8476,-8317,-8315]]},{"type":"Polygon","id":28031,"arcs":[[-8468,8477,8478,8479,-8376,-8305]]},{"type":"Polygon","id":13061,"arcs":[[-8427,8480,8481,8482,-8322,-8402]]},{"type":"Polygon","id":1067,"arcs":[[-8483,8483,8484,8485,-8323]]},{"type":"Polygon","id":28065,"arcs":[[8486,8487,8488,-8377,-8480]]},{"type":"Polygon","id":13155,"arcs":[[-8476,8489,8490,-8445,-8449]]},{"type":"Polygon","id":22029,"arcs":[[-8278,8491,8492,8493,8494,8495,8496,-8410]]},{"type":"Polygon","id":28077,"arcs":[[8497,8498,8499,-8373,-8378,-8489]]},{"type":"Polygon","id":1035,"arcs":[[8500,8501,-8463,-8424]]},{"type":"Polygon","id":28001,"arcs":[[8502,8503,-8492,-8277,-8439]]},{"type":"Polygon","id":4023,"arcs":[[-8210,8504,-8191]]},{"type":"Polygon","id":48333,"arcs":[[8505,8506,-8363,-8272,-8382]]},{"type":"Polygon","id":28085,"arcs":[[8507,8508,8509,8510,-8437,-8374,-8500]]},{"type":"Polygon","id":13005,"arcs":[[8511,8512,-8472,-8414,-8422]]},{"type":"Polygon","id":48099,"arcs":[[8513,-8383,-8308,-8440,8514]]},{"type":"Polygon","id":48451,"arcs":[[-8362,8515,8516,8517,8518,-8339,-8353]]},{"type":"Polygon","id":1129,"arcs":[[-8405,8519,8520,8521,-8436,-8249]]},{"type":"MultiPolygon","id":13191,"arcs":[[[8522]],[[8523,8524,-8459,-8385,-8335]]]},{"type":"Polygon","id":48289,"arcs":[[8525,8526,8527,-8470,-8387,-8355]]},{"type":"Polygon","id":48461,"arcs":[[8528,8529,8530,-8346,-8344]]},{"type":"Polygon","id":48103,"arcs":[[-8531,8531,8532,8533,-8347]]},{"type":"Polygon","id":48405,"arcs":[[8534,8535,8536,-8454,-8408]]},{"type":"Polygon","id":48383,"arcs":[[-8340,-8519,8537,8538,-8529,-8342]]},{"type":"Polygon","id":48475,"arcs":[[-8396,-8350,-8348,-8534,8539,-8398]]},{"type":"Polygon","id":13095,"arcs":[[-8453,8540,8541,8542,-8417,-8432]]},{"type":"Polygon","id":13037,"arcs":[[-8418,-8543,8543,8544,-8481,-8426]]},{"type":"Polygon","id":1045,"arcs":[[-8486,8545,8546,8547,-8366,-8324]]},{"type":"Polygon","id":1031,"arcs":[[8548,8549,-8369,-8367,-8548]]},{"type":"Polygon","id":28037,"arcs":[[-8511,8550,8551,-8503,-8438]]},{"type":"Polygon","id":48403,"arcs":[[-8458,8552,8553,-8535,-8407]]},{"type":"Polygon","id":13277,"arcs":[[-8491,8554,8555,8556,-8450,-8446]]},{"type":"Polygon","id":48225,"arcs":[[8557,8558,8559,8560,-8526,-8354,-8329]]},{"type":"Polygon","id":48095,"arcs":[[-8359,8561,8562,-8516,-8361]]},{"type":"Polygon","id":13229,"arcs":[[-8462,8563,8564,-8512,-8421]]},{"type":"Polygon","id":1039,"arcs":[[-8550,8565,8566,8567,8568,-8501,-8423,-8370]]},{"type":"Polygon","id":48235,"arcs":[[8569,8570,-8538,-8518]]},{"type":"Polygon","id":48005,"arcs":[[-8537,8571,8572,8573,8574,-8558,-8328,-8455]]},{"type":"Polygon","id":13099,"arcs":[[-8545,8575,8576,8577,8578,-8484,-8482]]},{"type":"Polygon","id":48145,"arcs":[[8579,8580,-8442,-8469,8581]]},{"type":"Polygon","id":22079,"arcs":[[-8429,8582,8583,8584,8585,-8318,-8477]]},{"type":"Polygon","id":48307,"arcs":[[-8365,8586,8587,8588,-8562,-8358]]},{"type":"Polygon","id":48411,"arcs":[[-8507,8589,8590,8591,8592,-8587,-8364]]},{"type":"Polygon","id":13019,"arcs":[[-8475,8593,8594,8595,8596,-8555,-8490]]},{"type":"Polygon","id":13299,"arcs":[[-8565,8597,8598,8599,8600,8601,8602,-8473,-8513]]},{"type":"Polygon","id":48281,"arcs":[[8603,8604,-8590,-8506,-8384,-8514]]},{"type":"MultiPolygon","id":13127,"arcs":[[[8605,8606]],[[8607,8608,8609,8610,8611,-8460,-8525]]]},{"type":"Polygon","id":13007,"arcs":[[-8542,8612,8613,8614,-8576,-8544]]},{"type":"Polygon","id":13205,"arcs":[[-8452,8615,8616,8617,8618,-8613,-8541]]},{"type":"Polygon","id":28041,"arcs":[[-8522,8619,8620,8621,-8433]]},{"type":"Polygon","id":28035,"arcs":[[8622,8623,8624,8625,-8478,-8467]]},{"type":"Polygon","id":28073,"arcs":[[-8479,-8626,8626,8627,-8487]]},{"type":"Polygon","id":28111,"arcs":[[-8434,-8622,8628,8629,-8623,-8466]]},{"type":"Polygon","id":28091,"arcs":[[-8628,8630,8631,8632,-8498,-8488]]},{"type":"Polygon","id":13003,"arcs":[[-8603,-8602,8633,8634,-8594,-8474]]},{"type":"Polygon","id":48455,"arcs":[[8635,8636,8637,-8559,-8575]]},{"type":"Polygon","id":48371,"arcs":[[-8533,8638,8639,8640,8641,-8399,-8540]]},{"type":"Polygon","id":13025,"arcs":[[-8612,8642,8643,-8598,-8564,-8461]]},{"type":"Polygon","id":28157,"arcs":[[-8552,8644,8645,8646,-8493,-8504]]},{"type":"Polygon","id":22115,"arcs":[[-8586,8647,8648,8649,-8456,-8319]]},{"type":"Polygon","id":48395,"arcs":[[8650,8651,8652,-8582,-8471,-8528]]},{"type":"Polygon","id":13075,"arcs":[[8653,8654,8655,8656,-8556,-8597]]},{"type":"Polygon","id":28005,"arcs":[[-8510,8657,8658,8659,8660,-8645,-8551]]},{"type":"Polygon","id":28113,"arcs":[[8661,8662,8663,-8658,-8509]]},{"type":"Polygon","id":28147,"arcs":[[-8633,8664,-8662,-8508,-8499]]},{"type":"Polygon","id":22009,"arcs":[[-8411,-8497,8665,8666,8667,8668,-8583,-8428]]},{"type":"Polygon","id":13071,"arcs":[[-8557,-8657,8669,8670,-8616,-8451]]},{"type":"Polygon","id":48027,"arcs":[[-8581,8671,8672,8673,-8604,-8515,-8443]]},{"type":"Polygon","id":1003,"arcs":[[-8465,8674,8675,8676,8677,8678,8679,-8520,-8404]]},{"type":"Polygon","id":1069,"arcs":[[-8579,8680,8681,8682,-8546,-8485]]},{"type":"Polygon","id":1053,"arcs":[[-8569,8683,8684,8685,-8675,-8464,-8502]]},{"type":"Polygon","id":13201,"arcs":[[-8615,8686,8687,-8577]]},{"type":"Polygon","id":1061,"arcs":[[8688,8689,8690,-8566,-8549,-8547,-8683]]},{"type":"Polygon","id":48351,"arcs":[[8691,8692,8693,8694,-8553,-8457,-8650]]},{"type":"Polygon","id":13065,"arcs":[[-8601,8695,8696,8697,8698,-8634]]},{"type":"Polygon","id":13173,"arcs":[[-8699,8699,8700,-8595,-8635]]},{"type":"Polygon","id":1097,"arcs":[[8701,8702,8703,-8620,-8521,-8680]]},{"type":"MultiPolygon","id":13039,"arcs":[[[8704]],[[8705,8706,8707,-8643,-8611]]]},{"type":"Polygon","id":48241,"arcs":[[8708,8709,8710,-8572,-8536,-8554,-8695]]},{"type":"Polygon","id":48373,"arcs":[[8711,8712,8713,8714,-8636,-8574]]},{"type":"Polygon","id":48331,"arcs":[[8715,8716,8717,-8672,-8580,-8653]]},{"type":"Polygon","id":48243,"arcs":[[8718,-8392,-8390,-8400,-8642,8719]]},{"type":"Polygon","id":48313,"arcs":[[8720,8721,8722,-8527,-8561]]},{"type":"Polygon","id":48327,"arcs":[[-8589,8723,8724,8725,-8563]]},{"type":"Polygon","id":48413,"arcs":[[-8726,8726,8727,-8570,-8517]]},{"type":"Polygon","id":48105,"arcs":[[-8530,-8539,-8571,-8728,8728,8729,8730,-8639,-8532]]},{"type":"Polygon","id":13087,"arcs":[[-8614,-8619,8731,8732,8733,-8687]]},{"type":"Polygon","id":13131,"arcs":[[8734,8735,8736,-8732,-8618]]},{"type":"Polygon","id":13027,"arcs":[[-8655,8737,8738,8739,8740,-8670,-8656]]},{"type":"Polygon","id":13275,"arcs":[[-8671,-8741,8741,8742,-8735,-8617]]},{"type":"Polygon","id":13253,"arcs":[[-8734,8743,8744,-8681,-8578,-8688]]},{"type":"Polygon","id":13049,"arcs":[[8745,8746,-8599,-8644,-8708]]},{"type":"Polygon","id":48457,"arcs":[[-8711,8747,-8712,-8573]]},{"type":"Polygon","id":48471,"arcs":[[8748,8749,8750,-8721,-8560,-8638]]},{"type":"MultiPolygon","id":22125,"arcs":[[[8751,8752,-8494,-8647,8753]]]},{"type":"Polygon","id":48053,"arcs":[[-8674,8754,8755,8756,8757,-8591,-8605]]},{"type":"Polygon","id":13185,"arcs":[[-8596,-8701,8758,8759,8760,8761,-8738,-8654]]},{"type":"Polygon","id":22077,"arcs":[[-8495,-8753,8762,8763,8764,8765,-8667,-8767]]},{"type":"Polygon","id":28109,"arcs":[[-8625,8767,8768,8769,8770,-8631,-8627]]},{"type":"Polygon","id":22117,"arcs":[[-8771,8771,8772,-8663,-8665,-8632]]},{"type":"Polygon","id":22039,"arcs":[[-8669,8773,8774,8775,8776,-8584]]},{"type":"Polygon","id":12063,"arcs":[[-8745,8777,8778,8779,8780,8781,-8689,-8682]]},{"type":"Polygon","id":22105,"arcs":[[-8773,8782,8783,8784,8785,8786,-8659,-8664]]},{"type":"Polygon","id":12033,"arcs":[[8787,-8676,-8686,8788]]},{"type":"Polygon","id":12113,"arcs":[[8789,8790,-8789,-8685]]},{"type":"Polygon","id":28039,"arcs":[[-8704,8791,8792,-8629,-8621]]},{"type":"Polygon","id":22091,"arcs":[[-8787,8793,8794,8795,-8660]]},{"type":"MultiPolygon","id":12091,"arcs":[[[-8568,8796,8797,-8790,-8684]]]},{"type":"Polygon","id":22037,"arcs":[[-8796,8798,8799,-8754,-8646,-8661]]},{"type":"Polygon","id":12059,"arcs":[[-8782,8800,8801,-8690]]},{"type":"Polygon","id":12131,"arcs":[[-8691,-8802,8802,8803,8804,-8806,8806,-8797,-8567]]},{"type":"Polygon","id":48041,"arcs":[[8807,8808,8809,-8651,-8723]]},{"type":"Polygon","id":48319,"arcs":[[-8593,8810,8811,8812,-8724,-8588]]},{"type":"Polygon","id":48299,"arcs":[[-8758,8813,8814,-8811,-8592]]},{"type":"Polygon","id":28131,"arcs":[[-8793,8815,8816,-8768,-8624,-8630]]},{"type":"Polygon","id":48491,"arcs":[[8817,8818,8819,-8755,-8673,-8718]]},{"type":"Polygon","id":48407,"arcs":[[-8715,8820,8821,-8749,-8637]]},{"type":"Polygon","id":22003,"arcs":[[-8777,8822,8823,-8648,-8585]]},{"type":"Polygon","id":22011,"arcs":[[-8824,8824,8825,-8692,-8649]]},{"type":"Polygon","id":13101,"arcs":[[8826,8827,-8759,-8700,-8698]]},{"type":"Polygon","id":48185,"arcs":[[-8751,8828,8829,8830,-8808,-8722]]},{"type":"Polygon","id":22097,"arcs":[[-8766,8831,8832,8833,-8774,-8668]]},{"type":"Polygon","id":12133,"arcs":[[8834,-8803,-8801,-8781]]},{"type":"Polygon","id":12089,"arcs":[[-8707,8835,8836,8837,-8746]]},{"type":"Polygon","id":28059,"arcs":[[-8703,8838,8839,-8816,-8792]]},{"type":"Polygon","id":48051,"arcs":[[-8810,8840,8841,-8716,-8652]]},{"type":"Polygon","id":22033,"arcs":[[8842,8843,8844,8845,-8799,-8795]]},{"type":"Polygon","id":22103,"arcs":[[-8770,8846,8847,8848,8849,-8783,-8772]]},{"type":"Polygon","id":12039,"arcs":[[-8737,8850,8851,-8778,-8744,-8733]]},{"type":"Polygon","id":48267,"arcs":[[8852,8853,8854,8855,-8725,-8813]]},{"type":"Polygon","id":48435,"arcs":[[-8856,8856,8857,-8729,-8727]]},{"type":"Polygon","id":12073,"arcs":[[-8743,8858,8859,8860,-8851,-8736]]},{"type":"Polygon","id":28047,"arcs":[[-8840,8861,8862,-8817]]},{"type":"Polygon","id":12065,"arcs":[[-8740,8863,8864,8865,8866,-8859,-8742]]},{"type":"Polygon","id":48043,"arcs":[[8867,-8720,-8641,8868,8869]]},{"type":"Polygon","id":22121,"arcs":[[8870,-8763,-8752,-8800,-8846]]},{"type":"Polygon","id":48443,"arcs":[[8871,8872,-8869,-8640,-8731]]},{"type":"Polygon","id":22063,"arcs":[[-8786,8873,8874,-8843,-8794]]},{"type":"Polygon","id":12079,"arcs":[[-8762,8875,8876,8877,8878,8879,-8864,-8739]]},{"type":"Polygon","id":28045,"arcs":[[-8863,8880,-8847,-8769]]},{"type":"Polygon","id":12047,"arcs":[[-8828,8881,8882,-8877,-8760]]},{"type":"Polygon","id":48377,"arcs":[[-8868,8883,-8719]]},{"type":"Polygon","id":48339,"arcs":[[-8822,8884,8885,8886,-8829,-8750]]},{"type":"Polygon","id":48453,"arcs":[[8887,8888,8889,8890,-8756,-8820]]},{"type":"Polygon","id":12013,"arcs":[[8891,8892,8893,-8779]]},{"type":"Polygon","id":12077,"arcs":[[-8861,8894,8895,8896,-8892,-8852]]},{"type":"Polygon","id":12023,"arcs":[[-8697,8897,8898,8899,8900,8901,-8882,-8827]]},{"type":"MultiPolygon","id":12031,"arcs":[[[8902,8903]],[[8904,8905]],[[8906,8907,8908,-8837]]]},{"type":"Polygon","id":12003,"arcs":[[-8838,-8909,8909,8910,8911,-8898,-8696,-8600,-8747]]},{"type":"MultiPolygon","id":12005,"arcs":[[[8912,8913]],[[-8894,8914,8915,-8804,-8835,-8780]]]},{"type":"Polygon","id":48287,"arcs":[[8916,8917,8918,-8818,-8717,-8842]]},{"type":"Polygon","id":48199,"arcs":[[-8710,8919,8920,8921,-8713,-8748]]},{"type":"Polygon","id":48171,"arcs":[[-8815,8922,8923,8924,-8853,-8812]]},{"type":"Polygon","id":48031,"arcs":[[-8757,-8891,8925,8926,8927,-8923,-8814]]},{"type":"MultiPolygon","id":22099,"arcs":[[[8928,8929,8930]],[[8931,8932,-8832,-8765,8933]]]},{"type":"Polygon","id":22047,"arcs":[[-8871,-8845,8934,8935,8936,-8934,-8764]]},{"type":"Polygon","id":48291,"arcs":[[-8922,8937,8938,8939,-8885,-8821,-8714]]},{"type":"Polygon","id":22019,"arcs":[[8940,8941,8942,-8693,-8826]]},{"type":"Polygon","id":22053,"arcs":[[-8776,8943,8944,8945,8946,-8941,-8825,-8823]]},{"type":"Polygon","id":22001,"arcs":[[-8834,8947,8948,8949,-8945,-8944,-8775]]},{"type":"Polygon","id":12121,"arcs":[[-8902,8950,8951,-8878,-8883]]},{"type":"Polygon","id":48021,"arcs":[[8952,8953,-8888,-8819,-8919]]},{"type":"Polygon","id":48477,"arcs":[[-8831,8954,8955,8956,-8917,-8841,-8809]]},{"type":"Polygon","id":22055,"arcs":[[-8933,8957,8958,-8948,-8833]]},{"type":"Polygon","id":48209,"arcs":[[8959,8960,-8926,-8890,8961]]},{"type":"Polygon","id":22005,"arcs":[[-8875,8962,8963,8964,8965,-8935,-8844]]},{"type":"Polygon","id":12123,"arcs":[[8966,8967,8968,-8865,-8880]]},{"type":"Polygon","id":12129,"arcs":[[-8867,8969,8970,-8895,-8860]]},{"type":"Polygon","id":22095,"arcs":[[8971,8972,8973,8974,-8963,-8874,-8785]]},{"type":"Polygon","id":48465,"arcs":[[-8858,8975,8976,8977,-8872,-8730]]},{"type":"Polygon","id":48137,"arcs":[[8978,8979,8980,8981,-8976,-8857,-8855]]},{"type":"Polygon","id":48265,"arcs":[[8982,8983,8984,-8979,-8854,-8925]]},{"type":"Polygon","id":12067,"arcs":[[-8952,8985,8986,-8967,-8879]]},{"type":"MultiPolygon","id":12109,"arcs":[[[8987,8988,8989,8990,8991,-8903,8992]],[[-8905,8993]]]},{"type":"Polygon","id":48361,"arcs":[[-8943,8994,8995,-8920,-8709,-8694]]},{"type":"Polygon","id":48473,"arcs":[[8996,8997,8998,-8955,-8830,-8887]]},{"type":"Polygon","id":22089,"arcs":[[8999,-8972,9000]]},{"type":"Polygon","id":22051,"arcs":[[9001,9002,9003,9004,-9001,-8784,-8850]]},{"type":"Polygon","id":12045,"arcs":[[-8897,9005,9006,9007,9008,-8913,9009,-8915,-8893]]},{"type":"Polygon","id":22071,"arcs":[[9010,9011,9012,-9002,-8849]]},{"type":"Polygon","id":12019,"arcs":[[9013,9014,9015,-8910,-8908]]},{"type":"Polygon","id":48245,"arcs":[[-8996,9016,9017,9018,-8938,-8921]]},{"type":"Polygon","id":48201,"arcs":[[-8940,9019,9020,9021,9022,9023,-8997,-8886]]},{"type":"MultiPolygon","id":22087,"arcs":[[[9024,9025,9026,-9012,9027]],[[9028]]]},{"type":"Polygon","id":22093,"arcs":[[9029,9030,-8965,-8964,-8975]]},{"type":"Polygon","id":48149,"arcs":[[9031,9032,9033,9034,9035,-8953,-8918,-8957]]},{"type":"Polygon","id":22113,"arcs":[[-8959,9036,9037,9038,-8946,-8950,-8949]]},{"type":"Polygon","id":12007,"arcs":[[-9016,9039,9040,9041,-8911]]},{"type":"Polygon","id":12125,"arcs":[[-9042,9042,-8899,-8912]]},{"type":"Polygon","id":48259,"arcs":[[-8928,9043,9044,9045,-8983,-8924]]},{"type":"MultiPolygon","id":22045,"arcs":[[[9046]],[[-8937,9047,-8930,9048,9049,-9037,-8958,-8932]]]},{"type":"Polygon","id":48015,"arcs":[[-8999,9050,9051,9052,-9032,-8956]]},{"type":"Polygon","id":22007,"arcs":[[-8965,8964,-9031,9053,9054,9055,-8931,-9048,-8936,-8966]]},{"type":"Polygon","id":48385,"arcs":[[-8985,9056,9057,-8980]]},{"type":"Polygon","id":48055,"arcs":[[-8954,-9036,9058,9059,-8962,-8889]]},{"type":"Polygon","id":22023,"arcs":[[-8947,-9039,9060,-9017,-8995,-8942]]},{"type":"Polygon","id":48091,"arcs":[[9061,9062,-9044,-8927,-8961]]},{"type":"MultiPolygon","id":12037,"arcs":[[[9063]],[[-9008,9064]],[[-8971,9065,-9006,-8896]]]},{"type":"Polygon","id":48089,"arcs":[[9066,9067,9068,-9033,-9053]]},{"type":"Polygon","id":22101,"arcs":[[-9056,9069,9070,-9049,-8929]]},{"type":"Polygon","id":12001,"arcs":[[-9041,9071,9072,9073,9074,-8900,-9043]]},{"type":"Polygon","id":12041,"arcs":[[-9075,9075,9076,-8986,-8951,-8901]]},{"type":"Polygon","id":22057,"arcs":[[9077,9078,9079,9080,9081,9082,9083,-9054,-9030,-8974,-8973,-9000,-9005,9084]]},{"type":"Polygon","id":48019,"arcs":[[9085,-9057,-8984,-9046,9086,9087]]},{"type":"MultiPolygon","id":22075,"arcs":[[[9088]],[[-9003,-9013,-9027,9089]]]},{"type":"Polygon","id":48071,"arcs":[[-9019,9090,9091,9092,-9020,-8939]]},{"type":"Polygon","id":48187,"arcs":[[9093,9094,9095,-9062,-8960,-9060]]},{"type":"MultiPolygon","id":12107,"arcs":[[[-8991,9096,9097,9098]],[[9099,9100,-9072,-9040,-9015]]]},{"type":"Polygon","id":48157,"arcs":[[9101,9102,9103,-9051,-8998,-9024]]},{"type":"Polygon","id":48177,"arcs":[[9104,9105,9106,9107,-9094,-9059,-9035]]},{"type":"MultiPolygon","id":22109,"arcs":[[[9108]],[[-9070,-9055,-9084,9109]]]},{"type":"Polygon","id":48029,"arcs":[[-9096,9110,9111,9112,-9087,-9045,-9063]]},{"type":"Polygon","id":48325,"arcs":[[9113,9114,9115,-9088,-9113]]},{"type":"Polygon","id":12035,"arcs":[[9116,9117,-9097,-8990]]},{"type":"Polygon","id":48481,"arcs":[[-9104,9118,9119,9120,-9067,-9052]]},{"type":"Polygon","id":48285,"arcs":[[9121,9122,9123,-9105,-9034,-9069]]},{"type":"Polygon","id":48463,"arcs":[[-9116,9124,9125,-8981,-9058,-9086]]},{"type":"Polygon","id":48271,"arcs":[[-9126,9126,9127,-8977,-8982]]},{"type":"MultiPolygon","id":48167,"arcs":[[[9128]],[[9129,-9022,9130]],[[9131,-9092]]]},{"type":"Polygon","id":48039,"arcs":[[-9130,9132,9133,-9119,-9103,-9102,-9023]]},{"type":"Polygon","id":12075,"arcs":[[-9074,9134,9135,9136,9137,9138,-9076]]},{"type":"Polygon","id":12083,"arcs":[[9139,9140,9141,9142,-9135,-9073,-9101]]},{"type":"Polygon","id":48493,"arcs":[[-9108,9143,9144,-9111,-9095]]},{"type":"MultiPolygon","id":12127,"arcs":[[[9145,9146,9147,9148,9149,9150,9151,9152,-9098,-9118,9153]]]},{"type":"Polygon","id":48123,"arcs":[[9154,9155,-9106,-9124,9156]]},{"type":"Polygon","id":12069,"arcs":[[-9152,-9151,9157,9158,9159,9160,-9141,9161]]},{"type":"Polygon","id":48239,"arcs":[[9162,9163,9164,9165,9166,9167,9168,9169,-9122,-9068,-9121]]},{"type":"Polygon","id":48013,"arcs":[[9170,9171,-9114,-9112,-9145,9172,9173]]},{"type":"Polygon","id":48321,"arcs":[[9174,-9163,-9120,-9134,9175]]},{"type":"Polygon","id":48255,"arcs":[[9176,9177,-9173,-9144,-9107,-9156,9178]]},{"type":"Polygon","id":48469,"arcs":[[-9170,9179,9180,9181,9182,-9157,-9123]]},{"type":"Polygon","id":48163,"arcs":[[-9172,9183,9184,9185,-9115]]},{"type":"Polygon","id":48507,"arcs":[[-9186,9186,9187,-9125]]},{"type":"Polygon","id":48323,"arcs":[[-9188,9188,9189,9190,-9127]]},{"type":"Polygon","id":12017,"arcs":[[-9136,-9143,9191,9192,9193]]},{"type":"Polygon","id":12119,"arcs":[[-9161,9194,9195,9196,-9192,-9142]]},{"type":"Polygon","id":48175,"arcs":[[-9183,9197,9198,-9179,-9155]]},{"type":"Polygon","id":12117,"arcs":[[-9149,9199,-9158,-9150]]},{"type":"MultiPolygon","id":12009,"arcs":[[[9200,9201,9202,9203,-9148]],[[9204,9205,9206,-9146]]]},{"type":"Polygon","id":48297,"arcs":[[9207,9208,9209,-9174,-9178,9210,9211]]},{"type":"Polygon","id":12095,"arcs":[[-9200,-9204,9212,-9159]]},{"type":"MultiPolygon","id":48057,"arcs":[[[9213,9214]],[[9215,-9181,9216]],[[-9166,9217]]]},{"type":"Polygon","id":48025,"arcs":[[-9199,9218,9219,-9211,-9177]]},{"type":"Polygon","id":12053,"arcs":[[-9197,9220,9221,-9193]]},{"type":"Polygon","id":48283,"arcs":[[9222,9223,9224,-9184]]},{"type":"Polygon","id":48311,"arcs":[[-9210,9225,-9223,-9171]]},{"type":"Polygon","id":48127,"arcs":[[-9185,-9225,9226,-9189,-9187]]},{"type":"Polygon","id":48391,"arcs":[[-9216,9227,9228,9229,9230,9231,-9219,-9198,-9182]]},{"type":"Polygon","id":12101,"arcs":[[-9196,9232,9233,9234,9235,-9221]]},{"type":"Polygon","id":12105,"arcs":[[9236,9237,9238,9239,-9233,-9195,-9160]]},{"type":"Polygon","id":12097,"arcs":[[-9203,9240,9241,-9237,-9213]]},{"type":"MultiPolygon","id":48007,"arcs":[[[9242]],[[9243,9244,-9231]],[[9245,9246]],[[-9229,9247,9248,9249]]]},{"type":"Polygon","id":48479,"arcs":[[9250,9251,9252,9253,-9190,-9227,-9224]]},{"type":"Polygon","id":48409,"arcs":[[-9245,9254,-9246,9255,9256,9257,9258,9259,9260,-9212,-9220,-9232]]},{"type":"Polygon","id":12103,"arcs":[[9261,9262,-9235]]},{"type":"Polygon","id":12057,"arcs":[[-9240,9263,9264,-9262,-9234]]},{"type":"Polygon","id":48131,"arcs":[[9265,9266,9267,-9251,-9226,-9209]]},{"type":"Polygon","id":48249,"arcs":[[-9261,-9260,9268,9269,9270,-9266,-9208]]},{"type":"MultiPolygon","id":48355,"arcs":[[[9271]],[[9272,-9269,-9259,9273]]]},{"type":"MultiPolygon","id":12061,"arcs":[[[9274,9275,-9241,-9202,9276]]]},{"type":"Polygon","id":12055,"arcs":[[9277,9278,9279,9280,-9238]]},{"type":"Polygon","id":12049,"arcs":[[-9281,9281,9282,-9239]]},{"type":"Polygon","id":12081,"arcs":[[-9283,9283,9284,9285,-9264]]},{"type":"Polygon","id":12093,"arcs":[[-9276,9286,9287,9288,-9278,-9242]]},{"type":"MultiPolygon","id":48273,"arcs":[[[9289,9290,9291,9292]],[[9293,9294,9295,-9270,-9273]]]},{"type":"Polygon","id":12111,"arcs":[[9296,9297,9298,9299,-9287,-9275]]},{"type":"Polygon","id":12115,"arcs":[[-9285,9300,9301,9302,9303,9304]]},{"type":"Polygon","id":48247,"arcs":[[9305,9306,9307,-9252,-9268]]},{"type":"Polygon","id":12027,"arcs":[[-9280,9308,-9301,-9284,-9282]]},{"type":"Polygon","id":48505,"arcs":[[-9308,9309,9310,-9253]]},{"type":"MultiPolygon","id":48261,"arcs":[[[9311,9312]],[[9313,-9290,9314]],[[9315,9316,9317,-9295,9318]]]},{"type":"Polygon","id":48047,"arcs":[[-9271,-9296,-9318,9319,9320,-9306,-9267]]},{"type":"MultiPolygon","id":12085,"arcs":[[[9321,9322,9323,9324,9325,-9288,-9300,9326]]]},{"type":"Polygon","id":12043,"arcs":[[9327,9328,-9279,-9289]]},{"type":"MultiPolygon","id":12015,"arcs":[[[-9304,9329]],[[-9329,9330,9331,-9302,-9309]]]},{"type":"Polygon","id":12099,"arcs":[[9332,9333,9334,-9326]]},{"type":"Polygon","id":12051,"arcs":[[9335,9336,9337,-9328,-9335]]},{"type":"MultiPolygon","id":12071,"arcs":[[[9338]],[[-9338,9339,9340,-9331]]]},{"type":"Polygon","id":48427,"arcs":[[-9321,9341,9342,-9310,-9307]]},{"type":"Polygon","id":48215,"arcs":[[-9317,9343,9344,9345,-9342,-9320]]},{"type":"Polygon","id":48489,"arcs":[[9346,-9344,-9316,9347]]},{"type":"MultiPolygon","id":12021,"arcs":[[[9348,9349,9350,9351,-9340,-9337]]]},{"type":"Polygon","id":48061,"arcs":[[-9345,-9347,9352]]},{"type":"Polygon","id":12011,"arcs":[[9353,9354,-9349,-9336,-9334]]},{"type":"Polygon","id":12086,"arcs":[[9355,9356,9357,9358,9359,-9350,-9355,9360]]},{"type":"MultiPolygon","id":12087,"arcs":[[[9361]],[[-9360,9362,-9351]]]},{"type":"Polygon","id":4015,"arcs":[[-5737,-6670,-7308,-6521,-5912,-4625,-5343,-5417]]},{"type":"Polygon","id":12029,"arcs":[[-9077,-9139,9363,-8968,-8987]]},{"type":"Polygon","id":27077,"arcs":[[-125,-180,-108,9364]]},{"type":"Polygon","id":27031,"arcs":[[9365,-203,9366]]},{"type":"Polygon","id":55031,"arcs":[[9367,-675,-668,-593,-474,-148,9368]]},{"type":"Polygon","id":55007,"arcs":[[9369,-673,-9368,9370]]},{"type":"Polygon","id":55003,"arcs":[[-561,-721,-669,-9370,9371]]},{"type":"Polygon","id":55003,"arcs":[[9372]]},{"type":"Polygon","id":26083,"arcs":[[9373,9374,9375]]},{"type":"Polygon","id":26083,"arcs":[[9376]]},{"type":"Polygon","id":26061,"arcs":[[9377,-446,-592,-436,9378]]},{"type":"Polygon","id":26061,"arcs":[[9379,-9375]]},{"type":"Polygon","id":26103,"arcs":[[9380,9381,-716,-642,-586,-444,9382]]},{"type":"Polygon","id":26003,"arcs":[[-577,9383,-9381,9384,-491]]},{"type":"Polygon","id":26041,"arcs":[[-9384,-576,9385,-712,-9382]]},{"type":"Polygon","id":55075,"arcs":[[-715,9386,-879,-687,-704,-640]]},{"type":"Polygon","id":55029,"arcs":[[-1169,9387]]},{"type":"Polygon","id":26033,"arcs":[[9388,9389]]},{"type":"Polygon","id":26033,"arcs":[[9390]]},{"type":"Polygon","id":26033,"arcs":[[9391,9392,9393,-488,9394]]},{"type":"Polygon","id":26097,"arcs":[[9395]]},{"type":"Polygon","id":26097,"arcs":[[9396,9397,-574,-489,-9394]]},{"type":"Polygon","id":26047,"arcs":[[-771,9398,9399]]},{"type":"Polygon","id":26029,"arcs":[[-9399,-770,-953,-950,9400]]},{"type":"Polygon","id":26029,"arcs":[[9401]]},{"type":"Polygon","id":26089,"arcs":[[9402]]},{"type":"Polygon","id":26089,"arcs":[[9403,-1114,9404]]},{"type":"Polygon","id":26055,"arcs":[[-948,-1082,-1230,-1111,-9404,9405]]},{"type":"Polygon","id":26007,"arcs":[[9406,-1079,-954,-819]]},{"type":"Polygon","id":26011,"arcs":[[9407,-1439,-1400,-1240,-1238]]},{"type":"Polygon","id":26063,"arcs":[[-1578,-1556,9408]]},{"type":"Polygon","id":26147,"arcs":[[-1931,-1726,-1576,9409]]},{"type":"Polygon","id":26163,"arcs":[[9410,9411,-2133,-1932,-1929]]},{"type":"Polygon","id":26115,"arcs":[[9412,-2505,-2280,-2130,-9412]]},{"type":"MultiPolygon","id":45019,"arcs":[[[9413,9414,9415,-7862,-7809,-7695]],[[-7693,-7590,9416]]]},{"type":"Polygon","id":15001,"arcs":[[9417]]},{"type":"Polygon","id":15007,"arcs":[[9418]]},{"type":"Polygon","id":15009,"arcs":[[-9420,9420]]},{"type":"Polygon","id":15009,"arcs":[[9421]]},{"type":"Polygon","id":15009,"arcs":[[9422]]},{"type":"Polygon","id":15009,"arcs":[[9423]]},{"type":"Polygon","id":15003,"arcs":[[9424]]},{"type":"Polygon","id":15007,"arcs":[[9425]]},{"type":"MultiPolygon","id":2016,"arcs":[[[9426]],[[9427]],[[9428]],[[9429]],[[9430]],[[9431]],[[9432]],[[9433]],[[9434]],[[9435]],[[9436]],[[9437]],[[9438]],[[9439]],[[9440]],[[9441]],[[9442]],[[9443]],[[9444]],[[9445]],[[9446]],[[9447]],[[9448]],[[9449]]]},{"type":"MultiPolygon","id":2013,"arcs":[[[9450]],[[9451]],[[9452]],[[9453]],[[9454]],[[9455]],[[9456]],[[9457]],[[9458]],[[9459]],[[9460]],[[9461]],[[9462,9463,9464,9465]]]},{"type":"MultiPolygon","id":2130,"arcs":[[[9466]],[[9467]]]},{"type":"Polygon","id":2060,"arcs":[[9468,9469]]},{"type":"MultiPolygon","id":2070,"arcs":[[[9470]],[[9471,9472]],[[9473,9474,9475]]]},{"type":"MultiPolygon","id":2164,"arcs":[[[9476]],[[9477,9478,9479,-9465,9480,-9470,9481,-9475,9482]]]},{"type":"MultiPolygon","id":2150,"arcs":[[[9483]],[[9484]],[[9485]],[[9486]],[[9487]],[[9488]],[[9489]],[[9490]],[[9491]],[[9492]],[[9493,-9479,9494,9495]]]},{"type":"MultiPolygon","id":2110,"arcs":[[[9496,9497,9498,9499]],[[9500]],[[9501,9502,9503,9504,9505,9506]],[[9507,9508]]]},{"type":"MultiPolygon","id":2280,"arcs":[[[9509]],[[9510]],[[9511]],[[9512]],[[9513]],[[9514]],[[9515]],[[9516,9517,9518,9519]]]},{"type":"MultiPolygon","id":2232,"arcs":[[[9520,9521,9522,9523]],[[9524]],[[-9520,9525,9526,9527,-9503,9528]],[[-9497,9529,9530,9531]],[[9532,9533]],[[-9499,9534]],[[9535,9536,9537,9538]],[[9539,9540,9541,9542]]]},{"type":"MultiPolygon","id":2100,"arcs":[[[-9507,9543,-9508,9544,-9540,9545]],[[9546,-9538,9547,-9542]]]},{"type":"MultiPolygon","id":2220,"arcs":[[[9548]],[[9549,9550]],[[-9521,9551,-9533,9552]]]},{"type":"MultiPolygon","id":2270,"arcs":[[[9553]],[[9554]],[[9555]],[[9556,9557,9558,9559]]]},{"type":"MultiPolygon","id":2050,"arcs":[[[9560]],[[9561]],[[9562]],[[9563]],[[-9559,9564,9565,9566,-9483,-9474,9567,-9473,9568]]]},{"type":"Polygon","id":2170,"arcs":[[9569,9570,9571,9572,-9566,9573,9574,9575]]},{"type":"Polygon","id":2068,"arcs":[[9576,9577,-9575,9578]]},{"type":"Polygon","id":2020,"arcs":[[-9571,9579,9580,9581]]},{"type":"MultiPolygon","id":2261,"arcs":[[[9582]],[[9583]],[[9584]],[[9585]],[[9586]],[[9587]],[[9588]],[[9589]],[[9590,9591]],[[9592]],[[9593]],[[9594]],[[9595,9596]],[[9597]],[[9598,-9580,-9570,9599,9600,9601,9602]]]},{"type":"MultiPolygon","id":2122,"arcs":[[[9603]],[[9604]],[[9605]],[[-9581,-9599,9606,-9596,9607,-9591,9608]],[[-9495,-9478,-9567,-9573,9609]]]},{"type":"Polygon","id":2282,"arcs":[[-9602,9610,-9536,9611]]},{"type":"Polygon","id":2290,"arcs":[[9612,9613,9614,-9579,-9574,-9565,-9558,9615,9616,9617]]},{"type":"Polygon","id":2090,"arcs":[[9618,-9577,-9615]]},{"type":"Polygon","id":2240,"arcs":[[-9600,-9576,-9578,-9619,-9614,9619]]},{"type":"MultiPolygon","id":2185,"arcs":[[[9620]],[[-9618,9621,9622]]]},{"type":"Polygon","id":2188,"arcs":[[-9617,9623,9624,-9622]]},{"type":"MultiPolygon","id":2180,"arcs":[[[9625]],[[9626]],[[9627]],[[-9624,-9616,-9557,9628]]]},{"type":"Polygon","id":2201,"arcs":[[9629]]},{"type":"Polygon","id":2201,"arcs":[[9630]]},{"type":"Polygon","id":2201,"arcs":[[9631]]},{"type":"Polygon","id":2201,"arcs":[[9632]]},{"type":"Polygon","id":2201,"arcs":[[9633]]},{"type":"Polygon","id":2201,"arcs":[[9634]]},{"type":"Polygon","id":2201,"arcs":[[9635]]},{"type":"Polygon","id":2201,"arcs":[[9636]]},{"type":"Polygon","id":2201,"arcs":[[9637]]},{"type":"Polygon","id":2201,"arcs":[[9638]]},{"type":"Polygon","id":2201,"arcs":[[9639]]},{"type":"Polygon","id":2201,"arcs":[[9640]]},{"type":"Polygon","id":2201,"arcs":[[9641]]},{"type":"Polygon","id":2201,"arcs":[[9642]]},{"type":"Polygon","id":2201,"arcs":[[9643]]},{"type":"Polygon","id":2201,"arcs":[[-9518,9644]]},{"type":"Polygon","id":72125,"arcs":[[9645,9646,9647,9648,9649,9650]]},{"type":"Polygon","id":72003,"arcs":[[9651,9652,9653,9654,9655]]},{"type":"Polygon","id":72097,"arcs":[[9656,9657,-9651,9658,9659,9660,9661]]},{"type":"Polygon","id":72065,"arcs":[[9662,9663,9664,9665,9666]]},{"type":"Polygon","id":72055,"arcs":[[9667,9668,9669,9670]]},{"type":"Polygon","id":72083,"arcs":[[9671,9672,-9657,9673,9674]]},{"type":"Polygon","id":72025,"arcs":[[9675,9676,9677,9678,9679,9680,9681]]},{"type":"Polygon","id":72045,"arcs":[[9682,9683,9684,9685,9686]]},{"type":"Polygon","id":72133,"arcs":[[9687,9688,9689,9690]]},{"type":"Polygon","id":72121,"arcs":[[-9671,9691,-9647,9692,9693]]},{"type":"Polygon","id":72027,"arcs":[[-9666,9694,9695,9696,9697]]},{"type":"Polygon","id":72001,"arcs":[[9698,9699,9700,9701,9702,9703]]},{"type":"Polygon","id":72111,"arcs":[[9704,9705,9706,-9700]]},{"type":"Polygon","id":72047,"arcs":[[9707,9708,9709,9710,9711,9712]]},{"type":"Polygon","id":72091,"arcs":[[9713,9714,9715,9716,9717,9718]]},{"type":"Polygon","id":72013,"arcs":[[9719,9720,9721,9722,-9663,9723]]},{"type":"Polygon","id":72145,"arcs":[[9724,9725,-9714,9726]]},{"type":"Polygon","id":72031,"arcs":[[9727,9728,9729,9730,9731,9732]]},{"type":"Polygon","id":72061,"arcs":[[9733,9734,9735,9736,9737]]},{"type":"Polygon","id":72129,"arcs":[[9738,9739,9740,9741,9742,-9678,9743]]},{"type":"Polygon","id":72075,"arcs":[[9744,9745,-9691,9746,9747,9748,9749]]},{"type":"Polygon","id":72063,"arcs":[[-9729,9750,-9744,-9677,9751]]},{"type":"Polygon","id":72073,"arcs":[[9752,-9749,9753,9754,9755]]},{"type":"Polygon","id":72143,"arcs":[[9756,9757,-9712,9758,-9725,9759]]},{"type":"Polygon","id":72011,"arcs":[[9760,-9674,-9662,9761,9762,-9653,9763]]},{"type":"Polygon","id":72081,"arcs":[[-9665,9764,-9703,9765,9766,-9672,9767,-9695]]},{"type":"Polygon","id":72079,"arcs":[[-9692,-9670,9768,9769,-9648]]},{"type":"Polygon","id":72009,"arcs":[[9770,9771,9772,9773,9774]]},{"type":"Polygon","id":72099,"arcs":[[9775,9776,-9764,-9652,9777]]},{"type":"Polygon","id":72023,"arcs":[[9778,-9649,-9770,9779,-9660]]},{"type":"Polygon","id":72109,"arcs":[[9780,9781,9782,-9784,9784,9785,-9742]]},{"type":"Polygon","id":72101,"arcs":[[-9759,-9711,9786,9787,-9715,-9726]]},{"type":"Polygon","id":72005,"arcs":[[-9778,-9656,9788,9789]]},{"type":"Polygon","id":72059,"arcs":[[-9707,9790,9791,-9701]]},{"type":"Polygon","id":72021,"arcs":[[-9736,9792,-9683,9793,9794,9795,9796]]},{"type":"Polygon","id":72141,"arcs":[[9797,-9755,9798,-9704,-9765,-9664,-9723]]},{"type":"Polygon","id":72041,"arcs":[[-9680,9799,-9775,9800,-9685,9801]]},{"type":"Polygon","id":72123,"arcs":[[9802,9803,-9689,9804,-9772,9805]]},{"type":"Polygon","id":72131,"arcs":[[9806,-9696,-9768,-9675,-9761,-9777,9807]]},{"type":"Polygon","id":72035,"arcs":[[-9743,-9786,9808,-9806,-9771,-9800,-9679]]},{"type":"Polygon","id":72135,"arcs":[[-9795,9809,-9713,-9758,9810,9811]]},{"type":"Polygon","id":72115,"arcs":[[-9697,-9807,9812,9813]]},{"type":"Polygon","id":72054,"arcs":[[-9717,9814,-9721,9815]]},{"type":"Polygon","id":72105,"arcs":[[-9794,-9687,9816,-9708,-9810]]},{"type":"Polygon","id":72017,"arcs":[[-9718,-9816,-9720,9817]]},{"type":"Polygon","id":72127,"arcs":[[-9731,9818,-9682,9819,-9734,9820]]},{"type":"Polygon","id":72139,"arcs":[[-9730,-9752,-9676,-9819]]},{"type":"Polygon","id":72057,"arcs":[[-9785,-9822,9822,-9803,-9809]]},{"type":"Polygon","id":72153,"arcs":[[-9702,-9792,9823,-9668,-9694,9824,-9766]]},{"type":"Polygon","id":72043,"arcs":[[9825,9826,-9773,-9805,-9688,-9746,9827]]},{"type":"Polygon","id":72149,"arcs":[[-9828,-9745,9828]]},{"type":"Polygon","id":72039,"arcs":[[-9788,9829,-9756,-9798,-9722,-9815,-9716]]},{"type":"Polygon","id":72113,"arcs":[[-9748,9830,-9705,-9699,-9799,-9754]]},{"type":"Polygon","id":72107,"arcs":[[9831,-9826,-9829,-9750,-9753,-9830,-9787,-9710]]},{"type":"Polygon","id":72071,"arcs":[[-9813,-9808,-9776,-9790,9832]]},{"type":"Polygon","id":72007,"arcs":[[-9681,-9802,-9684,-9793,-9735,-9820]]},{"type":"Polygon","id":72019,"arcs":[[-9686,-9801,-9774,-9827,-9832,-9709,-9817]]},{"type":"Polygon","id":72093,"arcs":[[-9767,-9825,-9693,-9646,-9658,-9673]]},{"type":"Polygon","id":72151,"arcs":[[9833,9834,9835,-9781,-9741,9836]]},{"type":"Polygon","id":72137,"arcs":[[9837,-9796,-9812,9838,9839]]},{"type":"Polygon","id":78030,"arcs":[[9840]]},{"type":"Polygon","id":72089,"arcs":[[9841,9842,9843,9844]]},{"type":"Polygon","id":72087,"arcs":[[9845,9846,-9733,9847]]},{"type":"Polygon","id":72095,"arcs":[[9848,-9782,-9836]]},{"type":"Polygon","id":72119,"arcs":[[-9844,9849,9850,9851,9852,-9846,9853]]},{"type":"Polygon","id":72103,"arcs":[[9854,9855,9856,9857,-9851]]},{"type":"Polygon","id":72085,"arcs":[[-9858,9858,-9837,-9740,9859,9860,-9852]]},{"type":"Polygon","id":72029,"arcs":[[-9853,-9861,9861,-9728,-9847]]},{"type":"Polygon","id":72053,"arcs":[[9862,-9842,9863]]},{"type":"Polygon","id":72077,"arcs":[[-9860,-9739,-9751,-9862]]},{"type":"Polygon","id":72037,"arcs":[[9864,-9855,-9850,-9843,-9863]]},{"type":"Polygon","id":72069,"arcs":[[9865,-9834,-9859,-9857]]},{"type":"Polygon","id":72147,"arcs":[[9866]]},{"type":"Polygon","id":78010,"arcs":[[9867]]},{"type":"Polygon","id":72051,"arcs":[[-9839,-9811,-9757,9868]]}]},"states":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":2,"arcs":[[[9426]],[[9427]],[[9428]],[[9429]],[[9430]],[[9431]],[[9432]],[[9433]],[[9434]],[[9435]],[[9436]],[[9437]],[[9438]],[[9439]],[[9440]],[[9441]],[[9442]],[[9443]],[[9444]],[[9445]],[[9446]],[[9447]],[[9450]],[[9451]],[[9452]],[[9453]],[[9629]],[[9454]],[[9630]],[[9455]],[[9456]],[[9631]],[[9457]],[[9632]],[[9633]],[[9458]],[[9634]],[[9459]],[[9460]],[[9466]],[[9635]],[[9461]],[[9636]],[[9637]],[[9638]],[[9639]],[[9483]],[[9640]],[[9509]],[[9467]],[[9641]],[[9642]],[[9510]],[[9643]],[[9511]],[[9512]],[[9484]],[[9476]],[[9485]],[[9486]],[[9448]],[[9513]],[[9514]],[[9515]],[[9487]],[[9449]],[[9548]],[[9869,9550]],[[9488]],[[9489]],[[9524]],[[9490]],[[9552,9521,9870,9523,9551,9533]],[[9500]],[[9499,9529,9871,9531,9497,9534]],[[9491]],[[9492]],[[9470]],[[9603]],[[9604]],[[9582]],[[9583]],[[9584]],[[9585]],[[9560]],[[9586]],[[9587]],[[9561]],[[9588]],[[9605]],[[9589]],[[9562]],[[9592]],[[9593]],[[9594]],[[9563]],[[9597]],[[9553]],[[9554]],[[9555]],[[9625]],[[9626]],[[9627]],[[9620]],[[9611,9602,9606,9596,9607,9591,9608,9581,9571,9609,9872,9493,9479,9465,9873,9463,9480,9468,9481,9475,9567,9471,9568,9559,9628,9624,9622,9612,9619,9600,9610,9536,9547,9542,9545,9501,9528,9516,9644,9518,9525,9874,9527,9503,9875,9505,9543,9508,9544,9540,9546,9538]]]},{"type":"MultiPolygon","id":15,"arcs":[[[9417]],[[9422]],[[9421]],[[9423]],[[9876,9420]],[[9424]],[[9425]],[[9418]]]},{"type":"MultiPolygon","id":72,"arcs":[[[9866]],[[9813,9697,9666,9723,9817,9718,9726,9759,9868,9839,9877,9737,9820,9731,9847,9853,9844,9863,9864,9855,9865,9834,9848,9782,9878,9822,9803,9689,9746,9830,9705,9790,9823,9668,9768,9779,9660,9761,9879,9654,9788,9832]]]},{"type":"Polygon","id":1,"arcs":[[-6786,-6785,-6792,-6791,-6807,6974,-6994,-6998,7027,-7168,-7171,7205,-7420,7492,7493,-7574,7698,7699,-7846,7871,-8018,8061,-8111,-8157,8194,-8293,8320,8321,-8483,8483,-8579,8680,8681,8688,8689,8690,8566,8567,8683,8684,8685,8675,8676,9880,8678,8701,8702,8703,-8620,8521,-8436,8249,8250,-8128,7954,7955,-7826,7678,-7599,7448,-7421,7302,-7257,7179,-6951,-6954,6937,-6753,-6699,-6714,-6725,-6724]]},{"type":"Polygon","id":5,"arcs":[[-5843,-5842,-5816,-5921,-5920,-5919,-5932,-5931,-5930,-5716,-5888,-5887,-5886,-5917,-5916,-5866,-5973,-5972,-5971,-5970,-5969,-6163,-6274,6406,6407,6408,6409,-6605,6734,6735,6736,7015,-7027,7132,7133,-7415,-7414,7662,7663,7664,7665,7666,7777,7794,7795,7733,7734,7719,7720,7643,7644,7645,-7611,7513,-7233,-7232,7118,-6775,-6774,6727,-6611,6550,-6316,6256,6117,-5946,-5936]]},{"type":"Polygon","id":4,"arcs":[[-4752,-5779,5779,5780,5781,-7177,7591,7592,-8039,8208,8504,8191,7725,7726,7305,7306,-6522,-6521,-5912,-4625,-5343,-5417,-5416,-4754,-4753]]},{"type":"MultiPolygon","id":6,"arcs":[[[7053]],[[7019]],[[7054]],[[6896]],[[6897]],[[-1601,-1600,-1604,2383,-2395,-2394,-2393,-2392,4129,4130,-4310,-4309,-4308,-3802,-4324,4568,-4773,-4255,5466,-5913,6520,6521,-7307,-7306,-7727,7740,7697,7519,7056,7020,6899,6528,5874,5606,5291,5193,5288,5438,5155,5018,4853,4552,4697,4472,4696,4474,4482,4847,4484,3626,2685,2373,-1893,-1975,-1974,-1882]]]},{"type":"Polygon","id":8,"arcs":[[-2141,-2140,-2553,-2552,-2733,-2732,-2702,-2701,-2823,-2972,-2971,3139,-3194,3363,3364,-3620,3939,3940,-4277,4354,-4592,-4591,4878,4879,-5245,5317,5318,5319,5207,5208,5307,5308,5510,5511,5496,5497,5323,5321,-4751,-4750,-4749,4628,-4026,3577,-3100,-3099,2981,2982,-2194,-2137,-2136,-2135]]},{"type":"Polygon","id":9,"arcs":[[-2172,-2171,-2170,-2018,-2017,2317,2318,-2457,2526,2527,2557,2559,9881,2561,2547,2548,2549,-2285,-2284,-1998]]},{"type":"Polygon","id":11,"arcs":[[4385,4386,-4115,-4297]]},{"type":"Polygon","id":10,"arcs":[[3752,4102,4392,4393,4394,4395,4396,4397,-4267,4100,4101,-4079,3754,3755,-3497,-3588,3756,-3586]]},{"type":"MultiPolygon","id":12,"arcs":[[[9361]],[[9338]],[[9063]],[[9882,9883]],[[8993,8905]],[[9884,9356,9885,9358,9362,9351,9340,9331,9302,9329,9304,9285,9264,9262,9235,9221,9193,9886,9137,9363,8968,8865,8969,9065,9006,9064,9008,8913,9009,8915,8804,9887,8806,8797,8790,8787,-8676,-8686,-8685,-8684,-8568,-8567,-8691,-8690,-8689,-8682,-8745,-8744,-8733,-8737,-8736,-8743,-8742,-8740,-8739,-8762,8875,-8760,-8828,-8827,-8697,-8696,-8600,-8747,-8746,-8707,8835,8906,9013,9099,9139,9161,9152,9098,8991,8903,8992,9888,8988,9116,9153,9204,9889,9206,9146,9200,9276,9296,9890,9298,9326,9891,9322,9892,9324,9332,9353,9360]]]},{"type":"MultiPolygon","id":13,"arcs":[[[8704]],[[9893,8606]],[[8522]],[[8333]],[[8283]],[[8284]],[[8523,8607,9894,8609,8705,8706,8745,8746,8599,8695,8696,8826,8827,8759,-8876,8761,8738,8739,8741,8742,8735,8736,8732,8743,8744,-8681,8578,-8484,8482,-8322,-8321,8292,-8195,8156,8110,-8062,8017,-7872,7845,-7700,-7699,7573,-7494,-7493,7419,-7206,7170,7167,-7028,6997,6993,-6975,-6806,-6721,-6720,-6719,-6795,-6794,-6828,-6827,-6823,-6822,-6886,-6885,-6884,-6802,-6673,-6924,-6923,-6922,-6921,-6920,-7061,-7060,-7256,7339,-7438,-7437,-7484,-7483,-7542,-7541,-7711,7821,-7868,-7867,7891,-7899,-8057,-8056,-8055,8285,8280,8336]]]},{"type":"Polygon","id":19,"arcs":[[-1566,1654,-1696,-1780,-1779,2023,-2098,2159,-2230,2312,2313,-2452,-2451,-2450,2717,-2767,2921,-2928,3117,3118,3078,3079,3081,3082,3093,3094,3091,3092,3088,3089,3085,3086,3075,3076,3072,3073,3069,3070,-2935,2880,-2829,2659,2660,-2543,2416,-2304,2207,-2191,2065,2066,-1834,-1833,1756,-1660,1651,-1521,-1490,-1494,-1493,-1517,-1516,-1515,-1526,-1525,-1519,-1518,-1497,-1496,-1502,-1501,-1500,-1513,-1512,-1505,-1504]]},{"type":"Polygon","id":16,"arcs":[[20,-36,111,-202,240,-350,-329,-328,518,-528,-737,-736,-735,-758,-652,1121,-1174,-1173,1592,-1734,-1733,2052,2141,2107,2108,2021,2022,1896,1580,1581,-1263,-1262,-1261,1091,-970,914,-709,522,535,536,-396,-395,364,-248,-247,114,-82,22,23]]},{"type":"Polygon","id":17,"arcs":[[-1968,-1967,-1948,-1947,-1953,-1952,-1960,-1959,-2030,-2029,2116,2233,2234,2235,2510,-2533,2774,-2825,2957,-3156,3323,3324,-3546,3727,-3919,4027,-4173,4238,-4445,-4444,4683,-4705,4905,-4930,5135,-5171,5358,5359,5361,-5492,5562,5574,5575,5568,5569,5570,-5351,-5350,-5160,5125,4935,4936,4726,4727,-4456,-4455,-4521,4379,4380,4381,4165,4070,4071,-3929,3750,3751,-3685,3515,-3493,3241,3242,-3118,2927,-2922,2766,-2718,2449,2450,2451,-2314,-2313,2229,-2160,2097,-2024,-1778]]},{"type":"Polygon","id":18,"arcs":[[-2297,-2296,-2291,-2290,-2295,2470,-2539,2621,-2717,2793,2794,-3019,3039,-3168,3291,-3407,-3406,3614,-3716,3808,-3932,-4139,4144,-4266,-4265,4422,4423,4432,4433,-4557,4659,4660,4805,4798,4799,4800,4795,4892,4893,4894,4953,4954,4923,4924,4973,4974,4927,4928,4929,-4906,4704,-4684,4443,4444,-4239,4172,-4028,3918,-3728,3545,-3325,-3324,3155,-2958,2824,-2775,2532,-2511,-2236,2533,2535,2467,-2204,-2203,-2300,-2299]]},{"type":"Polygon","id":20,"arcs":[[-3419,-3431,-3429,-3428,-3423,-3422,-3433,-3432,-3413,-3412,-3410,-3409,-3417,-3416,-3426,-3427,-3317,-3316,-3486,-3485,-3490,-3489,-3488,-3492,-3561,3664,-3762,3884,-4003,-4002,-4046,-4199,-4198,4346,-4501,4546,-4772,4820,-5042,-5041,5300,5301,-5544,5556,5557,5558,5531,5532,5523,5524,5592,5593,5446,5447,5449,5450,5526,5527,5459,5460,5528,5529,5456,5457,5453,5520,5521,5519,5516,5517,-5318,5244,-4880,-4879,4590,4591,-4355,4276,-3941,-3940,3619,-3365,-3420]]},{"type":"MultiPolygon","id":21,"arcs":[[[-4137,-4136,-4161,-4160,-4159,-4182,-4181,-4351,-4350,-4373,-4372,-4498,-4497,4744,-4805,-4804,-5103,-5102,5233,5234,5235,5611,-5643,5726,5826,5827,5819,5820,5824,5825,5807,5808,5882,5883,5835,5913,5914,5838,5839,5891,5892,5696,5698,5699,5658,5659,5737,5937,5938,5831,5832,5932,5933,5957,5958,-5897,-5709,-5708,-5707,5632,-5569,-5576,-5575,-5563,5491,-5362,-5360,-5359,5170,-5136,-4929,-4928,-4975,-4974,-4925,-4924,-4955,-4954,-4895,-4894,-4893,-4796,-4801,-4800,-4799,-4806,-4661,-4660,4556,-4434,-4433,-4424,-4423,4264,4265,-4145,-4138]]]},{"type":"MultiPolygon","id":22,"arcs":[[[9108]],[[9088]],[[9046]],[[9028]],[[9899,9025,9089,9003,9084,9900,9078,9901,9080,9902,9082,9109,9070,9049,9037,9060,-9017,-8995,8942,-8693,-8692,8649,8456,8457,-8406,8237,-8223,7906,7907,7908,-7820,-7645,-7644,-7721,-7720,-7735,-7734,-7796,-7795,-7778,-7667,-7666,-7665,-7928,7943,-8109,-8108,-8107,-8106,8274,8275,8276,8491,8492,-8647,-8646,-8661,-8660,-8659,-8664,-8663,-8665,-8632,-8771,-8770,8846,8847,9010,9027]]]},{"type":"MultiPolygon","id":25,"arcs":[[[2727]],[[2632]],[[2175,2248,2249,2250,2251,2252,2168,2015,2016,2017,2169,2170,2171,1997,1998,1999,-1887,-1737,-1736,-1754,-1807,-1806,-1783,-1782,-1781,-1749,1934,9903,2006,9904,2008,2118,2165,2177,9905,2173,2287]]]},{"type":"MultiPolygon","id":24,"arcs":[[[4166]],[[4781,4782,4856,4857,4858,4690,4581,4268,4408,4169,4080,3824,3834,3840,4088,4192,9906,4194,4521,4293,4613,4731,4615,4295,4296,4114,4115,4116,3849,3811,3812,3813,3814,3816,3817,3818,3820,3821,3822,-3547,-3461,-3460,-3445,-3537,-3536,-3458,-3457,-3584,-3583,-3501,-3500,-3499,-3449,-3448,-3498,-3756,-3755,4078,-4102,-4101,4266,-4398,-4397,-4396,4784]]]},{"type":"MultiPolygon","id":23,"arcs":[[[918]],[[919]],[[1288,1134,1392,1380,1390,1382,1537,1538,-1300,-889,889,890,891,817,567,360,813,920,599,1117,1282,1286,1391]]]},{"type":"MultiPolygon","id":26,"arcs":[[[9402]],[[9401]],[[771,820,9406,1075,1236,9407,1434,1560,1561,9408,1578,9409,1927,9410,9412,-2505,2280,2281,2292,2293,2294,2289,2290,2295,2296,2298,2299,2202,2203,2204,2151,1988,1785,1686,1533,1378,1225,1112,9404,9405,948,9400,9399]],[[9395]],[[9388,9389]],[[9390]],[[9377,446,9382,9384,491,9394,9907,9392,9396,9397,574,9385,712,713,714,639,640,587,588,589,590,476,477,478,479,480,481,482,483,484,434,9378]],[[9373,9379,9375]],[[9376]]]},{"type":"Polygon","id":27,"arcs":[[125,151,204,9366,9365,203,137,138,139,140,141,142,143,144,145,146,147,473,592,593,594,-667,794,-800,901,902,1050,-1075,1139,-1162,-1187,-1186,-1191,1370,-1423,1502,1503,1504,1511,1512,1499,1500,1501,1495,1496,1517,1518,1524,1525,1514,1515,1516,1492,1493,1489,1490,1336,-1220,1179,-1044,-1043,917,-893,840,-746,702,-551,546,415,-404,348,-318,218,-210,164,165,-55,60,106,9364]]},{"type":"Polygon","id":29,"arcs":[[-3119,-3243,-3242,3492,-3516,3684,-3752,-3751,3928,-4072,-4071,-4166,-4382,-4381,-4380,4520,4454,4455,-4728,-4727,-4937,-4936,-5126,5159,5349,5350,-5571,-5570,-5633,5706,5707,5708,5896,5897,5898,5899,-6100,6161,6162,5968,5969,5970,5971,5972,5865,5915,5916,5885,5886,5887,5715,5929,5930,5931,5918,5919,5920,5815,5841,5842,5935,5936,-5766,5719,-5557,5543,-5302,-5301,5040,5041,-4821,4771,-4547,4500,-4347,4197,4198,4045,4001,4002,-3885,3761,-3665,3560,3491,-3487,-3304,3273,-3129,-3070,-3074,-3073,-3077,-3076,-3087,-3086,-3090,-3089,-3093,-3092,-3095,-3094,-3083,-3082,-3080,-3079]]},{"type":"Polygon","id":28,"arcs":[[-6755,-6754,-6938,6953,6950,-7180,7256,-7303,7420,-7449,7598,-7679,7825,-7956,-7955,8127,-8251,-8250,8435,-8522,8619,-8704,-8703,8838,8861,8880,-8847,8769,8770,8631,8664,8662,8663,8658,8659,8660,8645,8646,-8493,-8492,-8277,-8276,-8275,8105,8106,8107,8108,-7944,7927,-7664,-7663,7413,7414,-7134,-7133,7026,-7016,-6737,-6736,-6768,-6767,-6772,-6771,-6743,-6742,-6741,-6773]]},{"type":"Polygon","id":30,"arcs":[[43,99,88,46,50,29,9,53,110,-93,108,-133,221,-231,373,-381,514,515,516,675,676,677,763,764,765,697,698,826,827,655,649,650,651,757,734,735,736,527,-519,327,328,349,-241,201,-112,35,-21,36,19]]},{"type":"MultiPolygon","id":37,"arcs":[[[-5845,6042,6259,6044]],[[6047,6086,6179,6194,6038,6056,6247,6431,6425,6582,6258,6583,6564,6492,6560,6804,6761,6831,6759,6893,6990,7112,7271,9920,7273,7279,7280,7281,7282,7252,7005,7006,7007,6928,6877,6846,6847,6852,6853,6676,6677,6756,6645,6646,6630,6631,6768,6769,6695,6749,6750,6751,6671,6672,6801,6883,6884,6885,6821,6822,6823,-6595,-6594,-6457,-6456,-6392,-6391,-6287,-6286,-6285,6174,-6175,-6174,-6233,-6232,-6231,-6084,-6083,-5987,-5986,-5985,-5928,-5927,-5926,-5854,-5896,-5895,-5911,-5910,-5674,-5673,-5963,-5671,-5714,-5713,-5712,-5882,-5881,-5880,-5725,-5724,-5876,-5805,-5804,-5803,-5871,-5870,-5908,-5907,-5849,6041]]]},{"type":"Polygon","id":38,"arcs":[[54,-166,-165,209,-219,317,-349,403,-416,-547,550,551,627,628,633,634,631,632,530,583,623,624,625,635,-516,-515,380,-374,230,-222,132,-109,92,93,98,103,40,32,64,68,57]]},{"type":"Polygon","id":31,"arcs":[[-1710,-1552,-1682,-1681,-1672,-1671,-1812,-1810,-1809,-1839,-1838,-1836,-1835,-2067,-2066,2190,-2208,2303,-2417,2542,-2661,-2660,2828,-2881,2934,-3071,3128,-3274,3303,3486,3487,3488,3489,3484,3485,3315,3316,3426,3425,3415,3416,3408,3409,3411,3412,3431,3432,3421,3422,3427,3428,3430,3418,3419,-3364,3193,-3140,2970,2971,2822,2700,2701,2731,2732,-2551,2541,-2048,-2047,1861,-1644,-1684,-1683,-1574,-1573,-1709]]},{"type":"Polygon","id":33,"arcs":[[-890,888,1299,-1539,1615,1747,1748,1780,1781,1782,1805,1806,-1753,1614,-1456,1269,1270,-1115,-996,899,900,-891]]},{"type":"Polygon","id":34,"arcs":[[9921,3944,3785,3786,3787,3788,3789,3726,3668,3524,3525,-3254,-3253,3124,2911,2912,-2814,2756,-2603,-2568,-2567,-2770,-2769,2897,3116,3066,3156,3256,3346,3531,3521,3805,4124,3946]]},{"type":"Polygon","id":35,"arcs":[[5784,5785,5786,-6372,6554,6555,-6863,7008,7009,7156,7157,-7563,7653,7654,7655,7656,7657,7967,7968,7969,7783,7784,7785,7888,7889,8111,8037,8038,-7593,-7592,7176,-5782,-5781,-5780,5778,-5322,-5324,-5498,-5497,-5512,-5511,-5309,-5308,-5209,-5208,-5320]]},{"type":"Polygon","id":32,"arcs":[[-2023,-2357,2361,-2921,3561,3562,-3998,4621,4622,4623,4624,5911,5912,-5467,4254,4772,-4569,4323,3801,4307,4308,4309,-4131,-4130,2391,2392,2393,2394,-2384,-1603,-1429,-1428,-1264,-1582,-1581,-1897]]},{"type":"MultiPolygon","id":36,"arcs":[[[3237]],[[3052,9922,3054,3119,3152,3121,3056,2782]],[[1826]],[[3046,3097,3048,2751,2629,2770,2768,2769,2566,2567,2568,2324,2325,2093,2153,2154,2156,2157,2188,2189,2056,2057,2088,2089,2085,2086,2060,2061,2062,1831,1716,1713,1721,1724,1701,1570,1279,9923,1281,1275,1276,1019,1031,1005,-1001,1002,-1132,1204,-1296,-1485,1544,-1738,1886,-2000,-1999,2283,2284,-2550,-2549,2752]]]},{"type":"Polygon","id":39,"arcs":[[2397,-2447,2666,-2675,2898,-2906,3033,3034,-3246,3262,3263,-3520,3528,-3609,3737,3738,3893,3894,3895,3992,-4069,4228,4226,4362,4363,4494,4495,4496,4497,4371,4372,4349,4350,4180,4181,4158,4159,4160,4135,4136,4137,4138,3931,-3809,3715,-3615,3405,3406,-3292,3167,-3040,3018,-2795,-2794,2716,-2622,2538,-2471,-2294,-2293,-2282,-2281,2504,2505,2506,2507,2508,2509,2514,9926,2516,2669,2593,2594,2595,2636,2579,2443,2401,-2200]]},{"type":"Polygon","id":40,"arcs":[[-5458,-5457,-5530,-5529,-5461,-5460,-5528,-5527,-5451,-5450,-5448,-5447,-5594,-5593,-5525,-5524,-5533,-5532,-5559,-5558,-5720,5765,-5937,5945,-6118,-6257,6315,-6551,6610,-6728,6773,6774,-7119,7231,7232,7233,7234,7401,7402,7398,7399,7400,7380,7440,7441,7442,7337,7338,7229,7230,7139,7140,7035,7036,6930,6931,-6871,6691,-6627,6398,-6366,6016,6017,5798,5799,5794,5795,5796,5791,5792,-5785,-5319,-5518,-5517,-5520,-5522,-5521,-5454]]},{"type":"Polygon","id":41,"arcs":[[661,-608,658,-691,-604,-603,-696,-695,-694,-693,-692,-503,-502,-557,-555,-554,-513,-583,-536,-523,708,-915,969,-1092,1260,1261,1262,1263,1427,1428,1602,1603,1599,1600,1881,1973,1974,1892,1893,1611,1464,1298,980,776,622]]},{"type":"Polygon","id":42,"arcs":[[-2061,-2087,-2086,-2090,-2089,-2058,-2057,-2190,-2189,-2158,-2157,-2155,-2154,-2094,-2326,-2325,-2569,2602,-2757,2813,-2913,-2912,-3125,3252,3253,-3526,3553,3584,3585,-3757,3587,3496,3497,3447,3448,3498,3499,3500,3582,3583,3456,3457,3535,3536,3444,3459,3460,3546,3547,3548,3610,3611,-3610,3337,3338,3339,-3244,3106,-3034,2905,-2899,2674,-2667,2446,-2398,2199,2200,-2062]]},{"type":"MultiPolygon","id":44,"arcs":[[[2544]],[[2545,-2250]],[[-2253,-2252,2452,2321,2454,2553,-2527,2456,-2319,-2318,-2016,-2169]]]},{"type":"MultiPolygon","id":45,"arcs":[[[8077]],[[8079]],[[8080]],[[7693,9413,9930,9415,7862,8081,8046,9931,8048,9932,8050,8078,8053,8054,8055,8056,7898,-7892,7866,7867,-7822,7710,7540,7541,7482,7483,7436,7437,-7340,7255,7059,7060,6919,6920,6921,6922,6923,-6672,-6752,-6751,-6750,-6696,-6770,-6769,-6632,-6631,-6647,-6646,-6757,-6678,-6677,-6854,-6853,-6848,-6847,-6878,-6929,-7008,-7007,-7006,-7253,-7283,7328,7588,9416]]]},{"type":"Polygon","id":46,"arcs":[[-624,-584,-531,-633,-632,-635,-634,-629,-628,-552,-703,745,-841,892,-918,1042,1043,-1180,1219,-1337,-1491,1520,-1652,1659,-1757,1832,1833,1834,1835,1837,1838,1808,1809,1811,1670,1671,1680,1681,1551,1709,1708,1572,1573,1682,1683,-1643,1487,-1374,1248,1183,-1033,939,-677,-676,-517,-636,-626,-625]]},{"type":"Polygon","id":47,"arcs":[[-5660,-5659,-5700,-5699,-5697,-5893,-5892,-5840,-5839,-5915,-5914,-5836,-5884,-5883,-5809,-5808,-5826,-5825,-5821,-5820,-5828,-5879,-5878,-5891,-5890,-5889,-5859,-5983,-5863,-5862,-5929,5984,5985,5986,6082,6083,6230,6231,6232,6173,6174,-6175,6284,6285,6286,6390,6391,6455,6456,6593,6594,-6824,6826,6827,6793,6794,6718,6719,6720,6805,6806,6790,6791,6784,6785,6723,6724,6713,6698,6752,6753,6754,6772,6740,6741,6742,6770,6771,6766,6767,-6735,6604,-6410,-6409,-6408,-6407,6273,-6162,6099,-5900,-6101,-5898,-5959,-5958,-5934,-5933,-5833,-5832,-5939,-5938,-5738]]},{"type":"MultiPolygon","id":48,"arcs":[[[9933]],[[9311,9312]],[[9313,9290,9934,9292,9314]],[[9271]],[[9242]],[[9935,9214]],[[9128]],[[9132,9175,9936,9164,9217,9166,9937,9168,9179,9216,9227,9247,9938,9249,9229,9243,9254,9246,9255,9939,9257,9273,9293,9318,9347,9352,9345,9342,9310,9253,9190,9127,8977,8872,8869,8883,8392,8394,-7889,-7786,-7785,-7784,-7970,-7969,-7968,-7658,-7657,-7656,-7655,-7654,7562,-7158,-7157,-7010,-7009,6862,-6556,-6555,6371,-5787,-5786,-5793,-5792,-5797,-5796,-5795,-5800,-5799,-6018,-6017,6365,-6399,6626,-6692,6870,-6932,-6931,-7037,-7036,-7141,-7140,-7231,-7230,-7339,-7338,-7443,-7442,-7441,-7381,-7401,-7400,-7399,-7403,-7402,-7235,-7234,-7514,7610,-7646,7819,-7909,-7908,-7907,8222,-8238,8405,-8458,-8457,-8650,8691,8692,-8943,8994,9016,9017,9090,9131,9092,9020,9130]]]},{"type":"Polygon","id":49,"arcs":[[-1732,2343,-2621,-2196,-2195,-2983,-2982,3098,3099,-3578,4025,-4629,4748,4749,4750,4751,4752,4753,5415,5416,5342,-4624,-4623,-4622,3997,-3563,-3562,2920,-2362,2356,-2022,-2109,-2108,-2142,-2053]]},{"type":"MultiPolygon","id":51,"arcs":[[[5405,5058,-4782,5059]],[[5005,4865,4807,4982,5225,5370,5424,5372,5109,5148,5330,5473,5536,9940,5683,5638,5472,5431,5282,5394,9941,5581,5626,5665,5871,9942,5902,9943,9944,5905,5850,5823,5851,5844,5845,5846,5847,5848,5906,5907,5869,5870,5802,5803,5804,5875,5723,5724,5879,5880,5881,5711,5712,5713,5670,5962,5672,5673,5909,5910,5894,5895,5853,5925,5926,5927,5928,5861,5862,5982,5858,5888,5889,5890,5877,5878,-5827,-5727,5642,-5612,-5236,-5235,-5234,-5101,-5412,-5411,-5378,-5377,-5376,-5180,-5275,-5274,5122,-4883,4877,-4536,-4535,-4403,-4402,-4401,-4189,-4188,4043,-3999,-3865,-3910,-4025,-4024,-3812,-3850,-4117,-4116,-4387,4417,9945,4342,4409,4669,4810,4866,5063,5188]]]},{"type":"Polygon","id":50,"arcs":[[1008,998,-900,995,1114,-1271,-1270,1455,-1615,1752,1753,1735,1736,1737,-1545,1484,1295,-1205,1131,-1003,1000,1001,994]]},{"type":"MultiPolygon","id":53,"arcs":[[[303]],[[271]],[[184]],[[118]],[[119]],[[120]],[[126,2,3,75,85,80,83,-23,81,-115,246,247,-365,394,395,-537,582,512,553,554,556,501,502,691,692,693,694,695,602,603,690,-659,607,608,610,467,343,233,186,187,234,319,276,371,273,372,321,407,370,307,196,183,197,129]]]},{"type":"MultiPolygon","id":55,"arcs":[[[9372]],[[9371,561,557,-484,-483,-482,-481,-480,-479,-478,-477,-591,-590,-589,-588,-641,-640,-715,9386,879,9949,881,1155,1167,9387,1165,1289,1474,1623,1800,1960,2027,2028,2029,1958,1959,1951,1952,1946,1947,1966,1967,1777,1778,1779,1695,-1655,1565,-1503,1422,-1371,1190,1185,1186,1161,-1140,1074,-1051,-903,-902,799,-795,666,-595,-594,-593,-474,-148,9368,9370]]]},{"type":"Polygon","id":54,"arcs":[[3243,-3340,-3339,-3338,3609,-3612,-3611,-3549,-3548,-3823,-3822,-3821,-3819,-3818,-3817,-3815,-3814,-3813,4023,4024,3909,3864,3998,-4044,4187,4188,4400,4401,4402,4534,4535,-4878,4882,-5123,5273,5274,5179,5375,5376,5377,5410,5411,5100,5101,5102,4803,4804,-4745,-4496,-4495,-4364,-4363,-4227,-4229,4068,-3993,-3896,-3895,-3894,-3739,-3738,3608,-3529,3519,-3264,-3263,3245,-3035,-3107]]},{"type":"Polygon","id":56,"arcs":[[-827,-699,-698,-766,-765,-764,-678,-940,1032,-1184,-1249,1373,-1488,1642,1643,-1862,2046,2047,-2542,2550,2551,2552,2139,2140,2134,2135,2136,2193,2194,2195,2620,-2344,1731,1732,1733,-1593,1172,1173,-1122,-651,-650,-656,-828]]},{"type":"MultiPolygon","id":78,"arcs":[[[9867]],[[9840]]]}]},"land":{"type":"MultiPolygon","arcs":[[[9361]],[[9933]],[[9338]],[[9311,9312]],[[9313,9290,9934,9292,9314]],[[9271]],[[9242]],[[9935,9214]],[[9128]],[[9108]],[[9088]],[[9046]],[[9063]],[[9882,9883]],[[9028]],[[8993,8905]],[[8704]],[[9893,8606]],[[8522]],[[8333]],[[8283]],[[8284]],[[8077]],[[8079]],[[8080]],[[7053]],[[7019]],[[7054]],[[6896]],[[6897]],[[4166]],[[3237]],[[3052,9922,3054,3119,3152,3121,3056,2782]],[[2727]],[[2632]],[[2544]],[[1826]],[[918]],[[919]],[[9402]],[[9401]],[[9395]],[[9388,9389]],[[9390]],[[9372]],[[9373,9379,9375]],[[-9918]],[[1275,1276,1019,1031,1005,1001,994,1008,998,900,891,817,567,360,813,920,599,1117,1282,1286,1391,1288,1134,1392,1380,1390,1382,1537,1615,1747,1934,9903,2006,9904,2008,2118,2165,2177,9905,2173,2287,2175,2248,2545,2250,2452,2321,2454,2553,2527,2557,2559,9881,2561,2547,2752,3046,3097,3048,2751,2629,2770,2897,3116,3066,3156,3256,3346,3531,3521,3805,4124,3946,9921,3944,3785,9954,3787,9955,3789,3726,3668,3524,3553,3584,3752,4102,4392,9956,4394,4784,5059,5405,5058,4782,4856,9957,4858,4690,4581,4268,4408,4169,4080,3824,3834,3840,4088,4192,9906,4194,4521,4293,4613,4731,4615,4295,4385,4417,9945,4342,4409,4669,4810,4866,5063,5188,5005,4865,4807,4982,5225,5370,5424,5372,5109,5148,5330,5473,5536,9940,5683,5638,5472,5431,5282,5394,9941,5581,5626,5665,5871,9942,5902,9943,9944,5905,5850,5823,5851,6042,6259,6044,5845,9958,9959,9960,5847,6041,6047,6086,6179,6194,6038,6056,6247,6431,6425,6582,6258,6583,6564,6492,6560,6804,6761,6831,6759,6893,6990,7112,7271,9920,7273,7279,9961,7281,7328,7588,9416,7693,9413,9930,9415,7862,8081,8046,9931,8048,9932,8050,8078,8053,8285,8280,8336,8523,8607,9894,8609,8705,8835,8906,9013,9099,9139,9161,9152,9098,8991,8903,8992,9888,8988,9116,9153,9204,9889,9206,9146,9200,9276,9296,9890,9298,9326,9891,9322,9892,9324,9332,9353,9360,9884,9356,9885,9358,9362,9351,9340,9331,9302,9329,9304,9285,9264,9262,9235,9221,9193,9886,9137,9363,8968,8865,8969,9065,9006,9064,9008,8913,9009,8915,8804,9887,8806,8797,8790,8787,8676,9880,8678,8701,8838,8861,8880,8847,9010,9027,9899,9025,9089,9003,9084,9900,9078,9901,9080,9902,9082,9109,9070,9049,9037,9060,9017,9090,9131,9092,9020,9130,9132,9175,9936,9164,9217,9166,9937,9168,9179,9216,9227,9247,9938,9249,9229,9243,9254,9246,9255,9939,9257,9273,9293,9318,9347,9352,9345,9342,9310,9253,9190,9127,8977,8872,8869,8883,8392,8394,7889,8111,8037,8208,8504,8191,7725,7740,7697,7519,7056,7020,6899,6528,5874,5606,5291,5193,5288,5438,5155,5018,4853,4552,4697,4472,4696,4474,4482,4847,4484,3626,2685,2373,1893,1611,1464,1298,980,776,622,661,608,610,467,343,233,186,9946,9962,9948,3,75,85,80,83,23,36,19,43,99,88,46,50,29,9,53,110,93,98,103,40,32,64,68,57,60,106,9364,125,151,204,9366,9365,203,137,138,139,140,141,142,143,144,145,146,9368,9370,9371,561,557,484,434,9378,9377,446,9382,9384,491,9394,9907,9392,9396,9397,574,9385,712,713,9386,879,9949,881,1155,1167,9387,1165,1289,1474,1623,1800,1960,2027,2116,2233,2234,2533,2535,2467,2204,2151,1988,1785,1686,1533,1378,1225,1112,9404,9405,948,9400,9399,771,820,9406,1075,1236,9407,1434,1560,1561,9408,1578,9409,1927,9410,9412,2505,-9912,2507,-9910,2509,2514,9926,2516,2669,2593,2594,2595,2636,2579,2443,2401,2200,2062,1831,1716,1713,1721,1724,1701,1570,1279,9923,1281]],[[9612,9619,9600,9610,9536,9547,9542,9545,9501,9528,9516,9644,9518,9525,9874,9527,9503,9875,9505,9543,9508,9544,9540,9546,9538,9611,9602,9606,9596,9607,9591,9608,9581,9571,9609,9872,9493,9479,9465,9873,9463,9480,9468,9481,9475,9567,9471,9568,9559,9628,9624,9622]],[[9489]],[[9626]],[[9552,9521,9870,9523,9551,9533]],[[9561]],[[9499,9529,9871,9531,9497,9534]],[[9869,9550]],[[9455]],[[9515]],[[9447]],[[9563]],[[9514]],[[9491]],[[9445]],[[9555]],[[9554]],[[9440]],[[9586]],[[9510]],[[9444]],[[9434]],[[9513]],[[9512]],[[9588]],[[9511]],[[9431]],[[9548]],[[9642]],[[9460]],[[9438]],[[9562]],[[9432]],[[9470]],[[9451]],[[9589]],[[9487]],[[9458]],[[9426]],[[9553]],[[9437]],[[9524]],[[9492]],[[9500]],[[9441]],[[9435]],[[9490]],[[9592]],[[9439]],[[9625]],[[9486]],[[9485]],[[9488]],[[9442]],[[9452]],[[9443]],[[9597]],[[9454]],[[9436]],[[9453]],[[9585]],[[9483]],[[9449]],[[9428]],[[9456]],[[9446]],[[9620]],[[9603]],[[9459]],[[9448]],[[9457]],[[9450]],[[9594]],[[9583]],[[9584]],[[9582]],[[9476]],[[9587]],[[9605]],[[9604]],[[9484]],[[9627]],[[9461]],[[9560]],[[9429]],[[9427]],[[9433]],[[9593]],[[9430]],[[9629]],[[9630]],[[9631]],[[9632]],[[9633]],[[9634]],[[9466]],[[9635]],[[9636]],[[9637]],[[9638]],[[9639]],[[9640]],[[9509]],[[9467]],[[9641]],[[9643]],[[9867]],[[9866]],[[9840]],[[9813,9697,9666,9723,9817,9718,9726,9759,9868,9839,9877,9737,9820,9731,9847,9853,9844,9863,9864,9855,9865,9834,9848,9782,9878,9822,9803,9689,9746,9830,9705,9790,9823,9668,9768,9779,9660,9761,9879,9654,9788,9832]],[[9417]],[[9422]],[[9421]],[[9423]],[[9876,9420]],[[9424]],[[9425]],[[9418]]]}},"arcs":[[[162416,583189],[236,-863],[94,-3199],[220,-1079],[-271,-1241]],[[162695,576807],[-443,-309],[-4396,83]],[[157856,576581],[-6,1800],[-436,606],[-476,3062],[167,1173]],[[157105,583222],[2782,-89],[2529,56]],[[203483,583173],[-111,-3268],[363,0],[1,-4838],[604,-14]],[[204340,575053],[0,-6406],[-109,-3],[-1,-3886]],[[204230,564758],[-1074,300],[-478,661],[-49,-1946]],[[202629,563773],[-411,-2654],[-860,-2419],[-1043,-435],[-462,561]],[[199853,558826],[29,9804],[98,1617],[303,-7],[-114,3279],[302,529],[-36,7508],[72,1628]],[[200507,583184],[2976,-11]],[[181317,583162],[311,-3373],[318,707],[389,-2530],[-133,-1970],[788,-1235],[-38,-1636],[347,-662],[20,-2123]],[[183319,570340],[343,-1416],[-25,-1101],[608,-791]],[[184245,567032],[386,-2907],[-296,-416]],[[184335,563709],[-284,-667],[56,-2637],[-277,-1038],[59,-2316]],[[183889,557051],[-896,68]],[[182993,557119],[-468,-2]],[[182525,557117],[101,1562],[-233,2072],[31,1860],[-477,1550],[-122,1357],[-537,-515],[111,-1134],[-1263,-12],[41,-3203],[-354,-5]],[[179823,560649],[-1,1601],[-1073,-52],[-59,2655]],[[178690,564853],[-26,3920],[480,4],[-5,6466],[-109,1581],[659,10],[112,1730],[-222,1681],[-105,2947]],[[179474,583192],[1843,-30]],[[175797,583199],[0,-9287]],[[175797,573912],[-2052,-28],[-1,6456],[-689,-16]],[[173055,580324],[0,2844]],[[173055,583168],[2742,31]],[[199853,558826],[-98,-1296],[-681,144],[-597,-3335]],[[198477,554339],[-62,2205],[-374,544],[-690,-278]],[[197351,556810],[-1278,1156],[-333,1655]],[[195740,559621],[8,3507],[732,-36],[49,1307],[484,-269],[0,4521],[87,4167]],[[197100,572818],[159,-390],[75,5957],[166,-2],[64,4793]],[[197564,583176],[2943,8]],[[221924,574709],[-1820,8]],[[220104,574717],[-102,3252],[0,5201]],[[220002,583170],[1830,2]],[[221832,583172],[3,-5232],[89,-3231]],[[178690,564853],[-400,43],[-118,-1893],[-228,-480],[-676,326],[-48,1381],[-615,5245],[-698,-1923],[-112,1018]],[[175795,568570],[2,5342]],[[175797,583199],[3677,-7]],[[220104,574717],[-363,-10]],[[219741,574707],[-362,-1],[-1,1624],[-1819,10],[0,-1619]],[[217559,574721],[-1091,11],[0,3239],[-126,10],[-1,5192]],[[216341,583173],[3661,-3]],[[186539,583158],[25,-9701]],[[186564,573457],[-1094,108],[-9,-3230],[-2142,5]],[[181317,583162],[5222,-4]],[[193948,567081],[-538,-46],[0,1653],[-330,-43],[0,1617],[-2172,10],[0,-1617],[-363,1]],[[190545,568656],[35,14501]],[[190580,583157],[3492,32]],[[194072,583189],[-44,-7981],[115,-2218],[-242,-2960],[47,-2949]],[[195740,559621],[-133,1040],[-934,55],[-434,-1362],[-302,351]],[[193937,559705],[11,7376]],[[194072,583189],[3492,-13]],[[206421,583169],[53,-6498],[181,-1619]],[[206655,575052],[-2315,1]],[[203483,583173],[2938,-4]],[[228232,583191],[206,-4516],[166,-1312],[-187,-2686]],[[228417,574677],[-2130,0]],[[226287,574677],[-64,8514]],[[226223,583191],[2009,0]],[[230526,583184],[49,-8486]],[[230575,574698],[-2158,-21]],[[228232,583191],[2294,-7]],[[223380,574698],[-1,-3220],[-639,-11]],[[222740,571467],[-816,5]],[[221924,571472],[0,3237]],[[221832,583172],[1466,10]],[[223298,583182],[0,-5247],[82,-3237]],[[226287,574677],[-1090,12]],[[225197,574689],[-1817,9]],[[223298,583182],[2925,9]],[[168030,583185],[-42,-19407]],[[167988,563778],[-338,-262]],[[167650,563516],[-25,343]],[[167625,563859],[88,1056],[-308,2218],[-251,148],[-798,-1281],[-586,-1450],[-104,1725],[-570,-648],[55,-1799]],[[165151,563828],[-497,4],[-263,1945],[-611,1931],[-82,1381],[-532,1417],[-331,3957]],[[162835,574463],[-140,2344]],[[162416,583189],[2209,-15],[3405,11]],[[171951,583192],[-373,-3049],[-183,-3367],[361,7],[-7,-9706],[182,-1632]],[[171931,565445],[-274,12],[-1,-4693],[-436,1680],[-359,-1132]],[[170861,561312],[-166,418],[-548,-890],[-371,2707],[-364,-947]],[[169412,562600],[-132,2358],[405,757],[-4,1210],[289,2381],[-187,3288],[316,4420],[-331,3951],[45,2219]],[[169813,583184],[2138,8]],[[173055,580324],[-26,-14910]],[[173029,565414],[-1098,31]],[[171951,583192],[1104,-24]],[[169412,562600],[-45,-983],[-485,620],[-109,1069],[-446,-598],[-339,1070]],[[168030,583185],[1783,-1]],[[188725,567028],[0,1624]],[[188725,568652],[374,0],[11,14480]],[[189110,583132],[1470,25]],[[190545,568656],[-200,-1611],[-1620,-17]],[[212324,583170],[-3,-5175],[150,-1639]],[[212471,576356],[-3238,15]],[[209233,576371],[-1,6810]],[[209232,583181],[3092,-11]],[[214880,583162],[-1,-3570]],[[214879,579592],[-364,-1],[-1,-1615],[-226,0],[0,-3239]],[[214288,574737],[-1816,1]],[[212472,574738],[-1,1618]],[[212324,583170],[2556,-8]],[[186539,583158],[2571,-26]],[[188725,568652],[-718,-1],[2,2422],[-362,804],[-543,30],[-81,1075],[-459,475]],[[217559,574721],[0,-1621]],[[217559,573100],[-2179,21],[-1,4852],[-499,6],[-1,1613]],[[214880,583162],[1461,11]],[[233488,574623],[-724,-26]],[[232764,574597],[-2189,101]],[[230526,583184],[3019,-21]],[[233545,583163],[240,-2188],[402,728],[5,-3862],[-704,-3],[0,-3215]],[[209233,576371],[4,-4555]],[[209237,571816],[-1620,-4],[1,1622],[-363,4],[0,1612],[-600,2]],[[206421,583169],[2811,12]],[[175795,568570],[0,-4401]],[[175795,564169],[-503,1656],[-278,-929],[18,-2373]],[[175032,562523],[-508,-3],[3,1885],[-1501,-262]],[[173026,564143],[3,1271]],[[217559,573100],[127,-1619],[-2,-6492],[124,-2],[-3,-3238]],[[217805,561749],[-2509,-20]],[[215296,561729],[1,3269],[-141,0],[0,6485],[-143,10],[0,3259],[-725,-15]],[[156776,574866],[145,-2337],[-336,700],[191,1637]],[[156018,576188],[367,-1161],[-54,-1921],[-274,763],[-39,2319]],[[156711,577874],[437,-1003],[-572,-1182],[-174,1060],[309,1125]],[[239768,576252],[-26,-7172],[46,-6528]],[[239788,562552],[-1935,133],[-2,-978],[-1789,-11]],[[236062,561696],[-29,9709]],[[236033,571405],[-4,6210]],[[236029,577615],[339,173],[235,-1132],[1047,-347],[154,-2131],[907,561],[6,841],[719,948],[332,-276]],[[157403,572219],[-142,1501],[248,575],[362,-1247],[-15,3533]],[[162835,574463],[-341,252],[-585,-931],[-106,-3299],[197,-417]],[[162000,570068],[-3852,30]],[[158148,570098],[-745,2121]],[[212472,574738],[0,-3235],[160,6],[-1,-4641]],[[212631,566868],[-1041,215],[-260,-1783],[-494,-878],[-372,2570],[-383,-709],[-219,-2110],[-618,322]],[[209244,564495],[-7,7321]],[[219741,574707],[109,-3230],[1,-6504],[110,0],[-1,-3243]],[[219960,561730],[-1079,-3]],[[218881,561727],[-1076,22]],[[243362,568344],[29,-12216],[-17,-11280]],[[243374,544848],[-834,-2840],[212,-1505]],[[242752,540503],[-2,-7]],[[242750,540496],[-224,823]],[[242526,541319],[-10,0]],[[242516,541319],[-187,-592]],[[242329,540727],[-9,7]],[[242320,540734],[-75,-212]],[[242245,540522],[-5,-38]],[[242240,540484],[-9,-872]],[[242231,539612],[3,11]],[[242234,539623],[-248,57]],[[241986,539680],[-26,1879],[-2117,44]],[[239843,541603],[15,4838]],[[239858,546441],[-15,12915],[-55,3196]],[[239768,576252],[1003,-1644],[260,59],[-216,-1483],[572,-280],[382,-4206],[280,489],[20,1987],[577,82],[135,-1750],[581,-1162]],[[209244,564495],[-258,1115],[-593,-179],[-307,1362],[-1057,19],[-145,560],[-288,-1583],[-558,-1]],[[206038,565788],[-93,498],[-752,103],[-963,-1631]],[[165151,563828],[-359,-3363],[-516,-331],[-139,-2995],[-195,-1515],[49,-2367],[561,-1042],[-25,-1385]],[[164527,550830],[-822,-18],[-768,1529],[-383,1474],[-339,202],[-528,3049]],[[161687,557066],[129,2030],[-144,1373]],[[161672,560469],[135,875],[-307,1331],[76,2648],[386,644],[303,1650],[-265,2451]],[[215296,561729],[-1431,3],[-2,-1673]],[[213863,560059],[-714,1226]],[[213149,561285],[-15,1450],[265,1806],[-308,1452],[-460,875]],[[232764,574597],[24,-6811]],[[232788,567786],[-2527,21]],[[230261,567807],[-1799,-6]],[[228462,567801],[14,367]],[[228476,568168],[71,2441],[-130,4068]],[[221924,571472],[-986,7],[-3,-6507],[100,-3249]],[[221035,561723],[-716,0]],[[220319,561723],[-359,7]],[[225197,574689],[73,-6488]],[[225270,568201],[-362,-8],[-2,-3234],[-287,1],[0,-1975]],[[224619,562985],[-263,25],[-571,2718],[-293,-1216],[-752,3114],[0,3841]],[[228476,568168],[-2123,27]],[[226353,568195],[-1083,6]],[[236062,561696],[6,-7465]],[[236068,554231],[0,-615],[-707,-32]],[[235361,553584],[-1430,50]],[[233931,553634],[-29,8560],[-224,1564],[125,1180],[-986,11]],[[232817,564949],[-29,2837]],[[233488,574623],[363,-5],[3,-3239],[2179,26]],[[188725,567028],[1,-2703]],[[188726,564325],[-1602,-42],[-179,1901],[-363,820],[-2337,28]],[[158090,569229],[27,-389]],[[158117,568840],[-233,-1009],[277,-1641],[-369,861],[-55,2156],[353,22]],[[157568,571941],[243,-1776],[-417,-307],[-219,-1059],[350,-339],[185,-3598],[45,1502],[415,-1154],[-2,-2382],[-642,2318],[-20,2344],[-434,1258],[298,3296],[198,-103]],[[156634,565779],[-60,-3687],[-1564,-7],[0,264],[-3066,-4]],[[151944,562345],[-337,5365],[202,2998],[-202,971]],[[151607,571679],[463,-265],[484,-1494],[396,-424],[748,-1863],[763,58],[868,-995],[776,701],[529,-1618]],[[224619,562985],[0,-1281]],[[224619,561704],[-2151,10]],[[222468,561714],[-1433,9]],[[193937,559705],[-803,-422],[-51,-3212],[-1027,-2365]],[[192056,553706],[-1187,-7]],[[190869,553699],[-361,552],[1,1469],[-266,4],[-517,1364],[204,1867],[-1205,-7]],[[188725,558948],[1,5377]],[[161672,560469],[-3555,-37]],[[158117,560432],[249,3191],[301,1598],[-407,1180],[-143,2439]],[[158090,569229],[58,869]],[[179823,560649],[58,-3498],[649,4],[-91,-2233],[238,251],[-154,-1949],[417,-649],[44,-4053]],[[180984,548522],[-292,-238],[-171,1188],[-551,1163],[-685,298]],[[179285,550933],[-478,836],[-38,1568],[-837,1677],[-963,-135]],[[176969,554879],[-354,1336],[183,799],[-95,1862],[-283,1075],[-625,4218]],[[245498,568091],[24,-13480]],[[245522,554611],[-1265,-6316],[-883,-3447]],[[243362,568344],[242,-1593],[425,-163],[-24,-1207],[886,751],[607,1959]],[[226353,568195],[59,-3242],[-1,-6490]],[[226411,558463],[-285,2]],[[226126,558465],[-1436,0]],[[224690,558465],[-71,3239]],[[228462,567801],[350,-5611],[344,-3679]],[[229156,558511],[-1603,-50]],[[227553,558461],[-1142,2]],[[230261,567807],[50,-3920]],[[230311,563887],[2,-2161],[360,-5],[2,-1615],[1435,5],[0,1629],[356,7],[-1,1624]],[[232465,563371],[355,-34]],[[232820,563337],[77,-8073]],[[232897,555264],[-1430,-21]],[[231467,555243],[-2182,14]],[[229285,555257],[-129,3254]],[[232817,564949],[3,-1612]],[[232465,563371],[-1,531],[-2153,-15]],[[209244,564495],[-2,-11147]],[[209242,553348],[-241,-806],[-805,9]],[[208196,552551],[-259,2],[1,3249],[-225,-5],[0,1619],[-1072,7],[1,1622],[-715,4],[0,1622]],[[205927,560671],[111,1440],[0,3677]],[[167625,563859],[-339,-5],[-301,-1380],[-1,-1619],[-240,-1347],[-120,-2159],[-533,-1577],[-2,-1607],[-955,-85],[-358,-2172],[-6,-1862]],[[164770,550046],[-243,784]],[[213149,561285],[0,-2790],[-1274,10],[2,-6436]],[[211877,552069],[-1581,12]],[[210296,552081],[-1055,15]],[[209241,552096],[1,1252]],[[156465,557234],[-1439,15],[0,-1663]],[[155026,555586],[-1512,9],[-857,298]],[[152657,555893],[-215,4015],[-498,2437]],[[156634,565779],[273,1293],[567,-4576],[-189,-396],[-251,-3033],[-105,2479],[-246,-3231],[-218,-1081]],[[188725,558948],[-718,-7],[0,-1612],[-713,3],[0,-1972],[-347,194]],[[186947,555554],[-644,-185],[-426,1863],[-409,506],[-656,-490],[-280,1681],[6,2406],[-203,2374]],[[205927,560671],[-357,-7],[-3,-4859],[-120,-3],[2,-6473]],[[205449,549329],[-1188,-10],[0,-1636],[-355,-3],[0,1641],[-354,-3]],[[203552,549318],[-232,0],[-1,3235],[-355,-6],[105,3251],[-2,6316],[-270,1],[-168,1658]],[[176969,554879],[-257,-1008],[473,-1408],[60,-942],[526,-680],[549,-2997],[263,-2458],[250,-686]],[[178833,544700],[-3820,28]],[[175013,544728],[0,1637]],[[175013,546365],[0,7286]],[[175013,553651],[19,8872]],[[182525,557117],[-825,-26],[-58,-2280],[224,-1574],[136,-3906],[-311,-808],[-707,-1]],[[173026,564143],[8,-11380]],[[173034,552763],[0,-1987]],[[173034,550776],[-2181,20]],[[170853,550796],[8,10516]],[[233931,553634],[40,-4845]],[[233971,548789],[-1065,-20]],[[232906,548769],[-9,6495]],[[175013,553651],[-715,16],[-120,-800],[-1144,-104]],[[203552,549318],[2,-5970]],[[203554,543348],[0,-266]],[[203554,543082],[-1766,-14],[-2,268],[-3263,-152]],[[198523,543184],[-142,489],[173,2154],[-209,2560],[-11,4245],[143,1707]],[[167650,563516],[-17,-12700]],[[167633,550816],[-9,-6518],[-1075,22],[-3,-3262]],[[166546,541058],[-233,-1081]],[[166313,539977],[-187,857],[-295,-1494],[-690,-306]],[[165141,539034],[-276,2022]],[[164865,541056],[127,1141],[-311,5065],[89,2784]],[[170853,550796],[-381,1]],[[170472,550797],[-2839,19]],[[186947,555554],[7,-6012],[711,-1191],[-2,-4005],[368,-11]],[[188031,544335],[35,-1328],[411,-1480]],[[188477,541527],[-392,-449],[14,-3150],[-430,-3]],[[187669,537925],[-672,2],[-784,-2757]],[[186213,535170],[46,3441],[-325,1748],[-347,-22],[-1,2529],[-723,-49],[-4,6432],[-731,40],[-1,5728],[-238,2034]],[[157723,558953],[152,-2103],[-263,244],[111,1859]],[[157679,553460],[-209,2]],[[157470,553462],[-20,-1]],[[157450,553461],[-465,10]],[[156985,553471],[3,2161],[-621,2]],[[156367,555634],[297,1874],[455,873],[193,2438],[440,2118],[103,-3144],[-199,149],[-132,-3407],[313,-1094],[-158,-1981]],[[239858,546441],[-2004,75]],[[237854,546516],[-6,4597],[-694,1379],[-255,2407],[-570,-1212],[-261,544]],[[218881,561727],[0,-3232],[-241,5],[-5,-6449]],[[218635,552051],[-211,-1],[0,-3173],[-602,-11]],[[217822,548866],[-251,2540],[-563,-513]],[[217008,550893],[-256,567],[-256,3108],[36,1844],[-852,-555],[-222,-665],[-1091,1453]],[[214367,556645],[-155,784],[-3,3078],[-346,-448]],[[224690,558465],[0,-1585]],[[224690,556880],[-2133,9]],[[222557,556889],[-89,4825]],[[222557,556889],[-2,-4848]],[[222555,552041],[-597,-4]],[[221958,552037],[-1539,4]],[[220419,552041],[1,6449],[-101,3233]],[[220419,552041],[-222,0]],[[220197,552041],[-1562,10]],[[214367,556645],[0,-4588],[170,0],[-1,-5915]],[[214536,546142],[-1061,-2],[0,-539],[-1412,-13]],[[212063,545588],[-1,6481],[-185,0]],[[197351,556810],[-6,-4998],[-770,-161],[-356,-670],[-49,-3204],[356,-6],[-61,-6487]],[[196465,541284],[-1055,22]],[[195410,541306],[-1057,8],[-1,-1068]],[[194352,540246],[-993,3]],[[193359,540249],[-236,2014],[209,1754],[-4,5386],[-1034,1610],[0,1620],[-238,1073]],[[208196,552551],[218,-2029],[102,-3785],[-297,-2572],[-534,-806]],[[207685,543359],[-1181,12],[-117,1073],[-355,1],[0,1079],[-356,1],[0,3802],[-227,2]],[[157999,553531],[-253,-1157],[151,3089],[102,-1932]],[[161687,557066],[-282,-523],[-596,-2846],[-98,-1164],[460,-3838],[-225,-1131]],[[160946,547564],[-1160,1608],[-293,-321]],[[159493,548851],[-540,718],[-133,1180],[-534,2],[-231,1165]],[[158055,551916],[258,528],[-269,4233],[225,530],[-269,1061],[117,2164]],[[190869,553699],[1,-1066],[-358,1],[-13,-4900],[354,-2],[-21,-5066]],[[190832,542666],[-725,2921],[-441,463],[-28,1539],[-216,-1426],[-1061,-216],[1,-1610],[-331,-2]],[[227553,558461],[-3,-6470],[62,-1591]],[[227612,550400],[-709,17]],[[226903,550417],[-711,10]],[[226192,550427],[-72,1593],[6,6445]],[[226192,550427],[-1411,-1]],[[224781,550426],[-88,1602]],[[224693,552028],[-3,4852]],[[229285,555257],[53,-4884]],[[229338,550373],[-1726,27]],[[156465,557234],[-98,-1600]],[[156985,553471],[-2,-837]],[[156983,552634],[-349,-1455],[-54,-1446],[-357,-1953]],[[156223,547780],[-354,-250]],[[155869,547530],[-801,-41],[-42,8097]],[[182993,557119],[1,-7838],[454,9],[0,-6466]],[[183448,542824],[-493,-548],[1,-1075],[-524,-539],[1,-1072],[-447,49]],[[181986,539639],[-1407,-5]],[[180579,539634],[-732,-499]],[[179847,539135],[-222,1916]],[[179625,541051],[352,195],[-48,4028],[320,550],[-90,1379],[-636,2137],[-238,1593]],[[186213,535170],[-690,-2887]],[[185523,532283],[-1333,17]],[[184190,532300],[-6,8737],[-214,-420],[-522,2207]],[[198523,543184],[180,-1780]],[[198703,541404],[-2238,-120]],[[164865,541056],[-1495,18],[1,1609],[-349,24],[-1,1604],[-1091,-12],[-177,1484],[-533,1821],[-274,-40]],[[224693,552028],[-2138,13]],[[217008,550893],[-1,-451],[-1411,-2],[0,-4839]],[[215596,545601],[-928,-4]],[[214668,545597],[-132,545]],[[155869,547530],[120,-1651],[-5,-3776]],[[155984,542103],[-587,-24]],[[155397,542079],[-2025,38]],[[153372,542117],[-110,2053],[253,-202],[623,1195],[-914,1191],[-230,4847],[-241,1362],[-96,3330]],[[232906,548769],[-1437,4]],[[231469,548773],[-2,6470]],[[231469,548773],[-356,-11]],[[231113,548762],[-1799,-4]],[[229314,548758],[24,1615]],[[179625,541051],[-761,2278],[-31,1371]],[[237854,546516],[-2,-4237]],[[237852,542279],[-1578,50],[42,-9604],[-40,-223]],[[236276,532502],[-231,1006],[-307,-538],[-332,854]],[[235406,533824],[-216,372]],[[235190,534196],[-133,486],[-22,7620]],[[235035,542302],[353,-11],[-27,11293]],[[310206,521389],[-674,-758]],[[309532,520631],[-1071,-1126],[-11,14936],[-1066,258]],[[307384,534699],[-8,3291],[-2505,26]],[[304871,538016],[-841,2]],[[304030,538018],[72,2263],[2153,14228],[505,-616],[6,-3382],[393,-1252],[815,1288],[76,747],[564,5],[41,1253],[358,12],[783,-2953],[455,-2410],[25,-20921],[-70,-4891]],[[193359,540249],[-620,1062],[-850,-749]],[[191889,540562],[-514,-598],[-543,2702]],[[175013,546365],[-1409,188],[-569,1764]],[[173035,548317],[-1,2459]],[[235035,542302],[-1048,14]],[[233987,542316],[-16,6473]],[[160946,547564],[-215,-3053],[-185,-928],[189,-1670]],[[160735,541913],[-845,11],[-206,-1040],[-1032,654]],[[158652,541538],[-352,1507],[-447,420],[-411,2054],[-166,2243]],[[157276,547762],[314,1630],[142,2452],[323,72]],[[157679,553460],[-93,-2779],[-243,609],[127,2172]],[[157450,553461],[-258,-1218],[-95,-3180],[-196,1415],[82,2156]],[[209241,552096],[0,-12823]],[[209241,539273],[-860,0],[-178,810],[-527,0]],[[207676,540083],[9,3276]],[[212063,545588],[-553,-13],[-2,-6518]],[[211508,539057],[-1052,-1]],[[210456,539056],[-1,6519],[-160,-2],[1,6508]],[[210456,539056],[-534,-4],[0,-1652],[-681,3]],[[209241,537403],[0,1870]],[[221958,552037],[-1,-6447],[97,4],[-9,-6501]],[[222045,539093],[-1299,23]],[[220746,539116],[-462,8]],[[220284,539124],[18,6480],[-110,4],[5,6433]],[[224781,550426],[0,-4857],[78,2],[0,-6489]],[[224859,539082],[-1664,-10]],[[223195,539072],[-1150,21]],[[220284,539124],[-1617,18]],[[218667,539142],[-333,973],[-96,2185],[-334,3330]],[[217904,545630],[153,619],[-235,2617]],[[217904,545630],[-2308,-29]],[[170472,550797],[5,-6432],[-150,-2317],[-550,-959]],[[169777,541089],[-3231,-31]],[[173035,548317],[0,-10901]],[[173035,537416],[-1,-2155]],[[173034,535261],[-435,-110],[-89,788]],[[172510,535939],[-70,1545],[-616,2886],[-769,-192],[-280,-1214]],[[170775,538964],[-894,-1263],[-120,595]],[[169761,538296],[16,2793]],[[226903,550417],[68,-4868],[-1,-6487]],[[226970,539062],[-981,13]],[[225989,539075],[-1130,7]],[[229314,548758],[6,-2652],[212,-1371],[-110,-2548],[10,-3117]],[[229432,539070],[-1342,-24]],[[228090,539046],[-1120,16]],[[158652,541538],[-2669,23],[1,542]],[[156223,547780],[371,1366],[-165,-1818],[270,11],[248,1911],[329,-1488]],[[207676,540083],[-352,-1344]],[[207324,538739],[-349,-4],[-351,-1338],[-710,7],[-585,557],[-127,1621],[-225,-2],[-117,3243],[-599,530],[-707,-5]],[[233987,542316],[-1,-1623]],[[233986,540693],[-2817,4]],[[231169,540697],[-56,8065]],[[231169,540697],[7,-1623],[-303,3]],[[230873,539077],[-1399,-8]],[[229474,539069],[-42,1]],[[175013,544728],[1,-5708],[-353,21]],[[174661,539041],[-461,-3],[-274,-1604],[-891,-18]],[[165141,539034],[20,-10944]],[[165161,528090],[-2024,0],[-2593,63]],[[160544,528153],[0,6416]],[[160544,534569],[359,11],[-157,2684],[251,3313],[-262,1336]],[[191889,540562],[-24,-9125]],[[191865,531437],[0,-675]],[[191865,530762],[-1399,153]],[[190466,530915],[-777,9]],[[189689,530924],[-178,1515],[195,2306],[-474,569],[-329,2182],[-426,4031]],[[239843,541603],[18,-6465]],[[239861,535138],[2,-4863]],[[239863,530275],[-1052,-76]],[[238811,530199],[4,1716],[-1019,-55]],[[237796,531860],[-43,6341],[94,109],[5,3969]],[[251183,535146],[2,-1610]],[[251185,533536],[-1045,-5],[1,3214],[-1046,-7],[1,1617],[-346,13],[-67,3221]],[[248683,541589],[281,995],[1035,453],[493,1189],[335,1615],[517,690]],[[251344,546531],[2,-4943],[190,-1609],[-348,15],[-5,-4848]],[[214668,545597],[3,-4901]],[[214671,540696],[-1,-1616]],[[214670,539080],[-2316,-18]],[[212354,539062],[-846,-5]],[[218667,539142],[262,-751],[-62,-3093]],[[218867,535298],[-369,-884],[-548,257],[-360,-2039]],[[217590,532632],[0,1615],[-698,1],[0,4816],[-1166,16],[-1,1620],[-1054,-4]],[[253820,544308],[0,-2728],[148,-1606],[-346,-13],[-2,-4817]],[[253620,535144],[-1568,10]],[[252052,535154],[1,8035],[354,0],[-1,1615],[281,8]],[[252687,544812],[-46,-3487],[634,3347],[545,-364]],[[179847,539135],[-2885,-2989],[-517,-3856],[-988,1959]],[[175457,534249],[-555,1774]],[[174902,536023],[-222,561],[-19,2457]],[[207324,538739],[0,-2429],[-481,-1],[56,-6431]],[[206899,529878],[-149,-3],[0,-6510],[-119,1]],[[206631,523366],[-3371,30]],[[203260,523396],[2,6487],[106,4],[-6,6446],[97,2],[-1,6474],[96,273]],[[203260,523396],[-118,-5],[-3,-8127],[-123,-27],[0,-3173]],[[203016,512064],[-1361,-4],[-1,3224],[108,-22],[0,5983],[-512,206],[100,2748],[-171,715]],[[201179,524914],[0,4963],[-191,-49],[-58,4866],[-348,2],[-60,1616],[-1571,-11]],[[198951,536301],[-119,265]],[[198832,536566],[-129,4838]],[[184190,532300],[-1,-814],[-687,-6],[15,-3299],[-666,-1967]],[[182851,526214],[-255,180],[-220,1599],[-323,48],[141,1392],[-197,1673],[207,1275],[-352,4420],[134,2838]],[[235190,534196],[-1183,4]],[[234007,534200],[-21,6493]],[[237796,531860],[-40,-1612]],[[237756,530248],[-1572,8],[92,2246]],[[155397,542079],[36,-7597]],[[155433,534482],[-1024,26],[-6,-1764]],[[154403,532744],[-413,-941],[-401,1402],[-173,-855],[164,5828],[40,-3886],[154,66],[163,3197],[-178,1201],[335,1945],[-445,-237],[-277,1653]],[[160544,534569],[-1998,-62]],[[158546,534507],[-2722,-5]],[[155824,534502],[-391,-20]],[[189689,530924],[-790,-90],[-193,-3456],[-681,-3145]],[[188025,524233],[-2,4020],[-344,10],[-10,9662]],[[241986,539680],[-2,-4580]],[[241984,535100],[-2123,38]],[[251185,533536],[-1,-4392]],[[251184,529144],[-281,766],[-2333,3002]],[[248570,532912],[1,-217]],[[248571,532695],[-1,217]],[[248570,532912],[-533,692],[-150,1914]],[[247887,535518],[-158,1305]],[[247729,536823],[-232,120]],[[247497,536943],[-117,450]],[[247380,537393],[-170,465]],[[247210,537858],[1092,2058],[381,1673]],[[198832,536566],[-2,-1875],[-409,1],[-280,-2448],[-812,5],[-234,-521],[0,-1926],[-1045,-3]],[[196050,529799],[2,2685],[-229,1641],[-121,3955],[-233,23],[-59,3203]],[[261640,541399],[0,-9499]],[[261640,531900],[-1747,-14]],[[259893,531886],[0,4842]],[[259893,536728],[1,3448]],[[259894,540176],[1066,-173],[680,1396]],[[196050,529799],[-402,-5]],[[195648,529794],[-1369,1],[-6,-1634]],[[194273,528161],[-522,16],[-137,3239]],[[193614,531416],[699,2],[39,8828]],[[193614,531416],[-1749,21]],[[169761,538296],[-37,88]],[[169724,538384],[-623,62],[-454,-1721],[-56,-1735],[-390,-2246],[-741,-1821]],[[167460,530923],[-633,1584],[-9,4567],[-505,2903]],[[167460,530923],[206,-1170],[-54,-2423]],[[167612,527330],[-388,-1247],[-851,-272]],[[166373,525811],[-390,134],[-275,-1277],[-551,-390]],[[165157,524278],[4,3812]],[[234007,534200],[29,-4880]],[[234036,529320],[-1739,14]],[[232297,529334],[-1380,20]],[[230917,529354],[-44,9723]],[[217590,532632],[-397,-2552],[-436,-1343],[-920,-1191],[-478,1151],[-416,-370]],[[214943,528327],[1,2829]],[[214944,531156],[-135,1457],[-12,6465],[-127,2]],[[172510,535939],[0,-949],[-531,-522],[0,-4866],[-168,2],[-1,-2312]],[[171810,527292],[-342,20]],[[171468,527312],[-26,6322],[-175,-16],[-173,2490],[-351,-8],[32,2864]],[[209241,537403],[-2,-4854]],[[209239,532549],[2,-6235]],[[209241,526314],[3,-1180]],[[209244,525134],[-252,2],[0,1618],[-714,26],[2,1575],[-351,-6],[0,1522],[-1030,7]],[[180579,539634],[-29,-2628],[-262,-4539],[-67,-3326],[-131,-1223],[266,-995],[5,-2349],[-249,-34],[-187,-1420],[189,-1949],[-181,-2072]],[[179933,519099],[-282,-1616],[-344,766],[-14,-1410],[527,-2617],[-250,-1838]],[[179570,512384],[-3571,-27],[-470,-1640]],[[175529,510717],[-390,422],[-163,2564],[-956,-4]],[[174020,513699],[362,4439],[258,2019],[-236,2563],[-686,1930]],[[173718,524650],[258,2608]],[[173976,527258],[446,46],[76,2435],[240,1363],[665,-892],[157,1127],[335,203],[-438,2709]],[[182851,526214],[3,-24]],[[182854,526190],[-34,-1070],[-471,-700],[-670,-2752]],[[181679,521668],[-944,-3979],[-194,-400],[-349,1946],[-259,-136]],[[220746,539116],[-2,-6512],[105,-7]],[[220849,532597],[-3,-6355]],[[220846,526242],[-1761,43]],[[219085,526285],[-327,3734],[198,1955],[-89,3324]],[[223195,539072],[-2,-6466]],[[223193,532606],[-2344,-9]],[[174902,536023],[1,-2306],[-958,-326],[31,-6133]],[[173718,524650],[-339,2599]],[[173379,527249],[-122,1925],[104,1310],[-372,3279],[45,1498]],[[212354,539062],[9,-6489]],[[212363,532573],[-197,-14]],[[212166,532559],[-2927,-10]],[[225989,539075],[-2,-6478]],[[225987,532597],[-2698,1]],[[223289,532598],[-96,8]],[[214944,531156],[-1391,13],[0,1436],[-1190,-32]],[[230917,529354],[-1,-1621]],[[230916,527733],[-866,4]],[[230050,527737],[45,1766],[-114,3993],[-380,2928],[-127,2645]],[[228090,539046],[-2,-6457]],[[228088,532589],[-2023,4]],[[226065,532593],[-78,4]],[[230050,527737],[35,-1611]],[[230085,526126],[-1852,-1]],[[228233,526125],[-87,1154],[-58,5310]],[[171468,527312],[-1045,34]],[[170423,527346],[-53,1]],[[170370,527347],[16,3854],[-350,1],[2,1631],[-349,-8],[35,5559]],[[170370,527347],[-2758,-17]],[[247207,537862],[3,-4]],[[248571,532695],[0,-5698],[-321,-1]],[[248250,526996],[-719,-11]],[[247531,526985],[-3,3230],[-343,-15],[1,1609],[-352,7],[6,6374]],[[246840,538190],[367,-328]],[[304871,538016],[-24,-11134],[233,-2084],[-240,-2015],[-258,-234],[344,-2135],[-221,-1593],[445,-9902],[739,1165]],[[305889,510084],[248,-6545]],[[306137,503539],[-330,592],[-241,-1132]],[[305566,502999],[-450,139],[79,-2294],[-907,625]],[[304288,501469],[-183,1244],[-102,3478],[-276,-236],[62,1778],[-139,3374],[-376,-344],[-347,651],[-372,9721]],[[302555,521135],[466,1247],[-87,1101],[431,1781],[-152,2424],[219,2371],[-153,838],[286,2948],[372,1242],[93,2931]],[[307384,534699],[-16,-13241],[-374,-415],[-14,-2790],[297,274],[227,-5338],[-292,-284],[68,-1531],[-1391,-1290]],[[188025,524233],[-403,-667]],[[187622,523566],[-350,1101],[-490,-286],[-233,-1732]],[[186549,522649],[-588,1549],[-293,6520],[-198,-55]],[[185470,530663],[53,1620]],[[259893,531886],[-1,-5144]],[[259892,526742],[-133,-900],[-413,823],[-698,-828],[-156,-2487],[-258,-538]],[[258234,522812],[-83,2590],[0,4873],[-349,11]],[[257802,530286],[0,3251],[697,-26],[0,3238],[1394,-21]],[[198951,536301],[351,-3235],[408,-2428],[-126,-2500]],[[199584,528138],[-454,7],[0,-1079],[-345,0],[-233,-1614],[-461,6],[-62,-7075],[-689,-1094],[-914,66]],[[196426,517355],[-551,2736]],[[195875,520091],[-174,1330],[10,5159],[-63,3214]],[[201179,524914],[-661,1614],[-693,2],[0,1610],[-241,-2]],[[173379,527249],[-1569,43]],[[219085,526285],[-4142,17]],[[214943,526302],[0,2025]],[[253620,535144],[-3,-3220]],[[253617,531924],[2,-6051]],[[253619,525873],[-776,1095]],[[252843,526968],[-385,757],[-418,-132]],[[252040,527593],[-694,1110]],[[251346,528703],[-162,441]],[[251183,535146],[869,8]],[[241984,535100],[-2,-4840]],[[241982,530260],[-158,-2623],[-854,-1719]],[[240970,525918],[-513,-3612]],[[240457,522306],[-838,12]],[[239619,522318],[-5,4660],[247,5],[2,3292]],[[309532,520631],[304,-6938],[-325,-226]],[[309511,513467],[-690,-626],[93,-2259],[-353,-313],[61,-1593],[-355,-304],[157,-4050],[-1023,-1483]],[[307401,502839],[-7,-12]],[[307394,502827],[-61,341],[-964,-1079],[-232,1450]],[[160544,528153],[-247,-4],[10,-4864],[241,-1079]],[[160548,522206],[-796,-345],[-318,-1062]],[[159434,520799],[-910,-1886]],[[158524,518913],[9,9424]],[[158533,528337],[13,6170]],[[158533,528337],[-318,-1795],[-454,494],[-602,-1308],[-130,-1178]],[[157029,524550],[-330,4339],[-600,1896],[-259,-235]],[[155840,530550],[-2,54]],[[155838,530604],[-14,3898]],[[155838,530604],[-183,-462],[-495,2189],[-757,413]],[[235406,533824],[28,-10701]],[[235434,523123],[-1381,-10]],[[234053,523113],[-17,6207]],[[237756,530248],[0,-3231],[116,-9],[14,-2987]],[[237886,524021],[-1641,-2],[226,-872]],[[236471,523147],[-1037,-24]],[[251026,525384],[-2773,33]],[[248253,525417],[-3,1579]],[[251346,528703],[-2,-1704],[-318,2],[0,-1617]],[[155418,529962],[8,-6731]],[[155426,523231],[-1689,63]],[[153737,523294],[-68,3037],[184,1180],[-262,4093],[309,-882],[393,425],[493,-351],[259,901],[373,-1735]],[[214943,526302],[-5,-2]],[[214938,526300],[-2623,9]],[[212315,526309],[-150,2]],[[212165,526311],[1,6248]],[[228233,526125],[-2090,12]],[[226143,526137],[-83,1]],[[226060,526138],[5,6455]],[[223289,532598],[-7,-6387]],[[223282,526211],[-1986,21]],[[221296,526232],[-450,10]],[[226060,526138],[-1995,52]],[[224065,526190],[-783,21]],[[212165,526311],[-2924,3]],[[185470,530663],[-558,-802],[1,-1628],[-449,-1027],[40,-1093],[-451,-1375]],[[184053,524738],[-389,163],[-476,-1895],[-334,3184]],[[255011,527072],[0,-1623],[-222,0],[-2,-3274],[-416,-8]],[[254371,522167],[-587,1081]],[[253784,523248],[-213,794],[48,1831]],[[253617,531924],[1399,-8],[-5,-4844]],[[238811,530199],[-2,-3213],[-238,7],[11,-4605]],[[238582,522388],[9,-3269]],[[238591,519119],[-694,16]],[[237897,519135],[-11,4886]],[[194273,528161],[-16,-1570],[-232,-20],[-119,-1641],[-35,-4874],[-1029,-1611],[-3,-3241],[-365,3],[-1,-3287]],[[192473,511920],[-459,14],[21,11394],[-200,2],[30,7432]],[[190466,530915],[-30,-11211],[-346,-1209],[4,-3242],[-336,0],[-17,-6512]],[[189741,508741],[-32,-6238]],[[189709,502503],[19,-3579]],[[189728,498924],[-493,1905],[18,850],[-441,2415]],[[188812,504094],[13,11149],[64,-1],[-3,5424],[-518,4],[-341,1882],[-405,1014]],[[192473,511920],[739,-89]],[[193212,511831],[-1,-3075]],[[193211,508756],[-2525,-184],[-945,169]],[[186549,522649],[-756,-104],[-628,-2190]],[[185165,520355],[-202,2288],[-910,2095]],[[157029,524550],[63,-2277]],[[157092,522273],[-463,-110]],[[156629,522163],[-284,1059],[-919,9]],[[155418,529962],[422,588]],[[239619,522318],[-1037,70]],[[242661,530268],[51,-9640]],[[242712,520628],[-343,-3]],[[242369,520625],[1,1598],[-1042,59],[-2,-1612],[-997,38]],[[240329,520708],[128,1598]],[[241982,530260],[679,8]],[[245796,530213],[-1,-3233],[691,9]],[[246486,526989],[-5,-6392]],[[246481,520597],[-2401,-12]],[[244080,520585],[-30,9671]],[[244050,530256],[1746,-43]],[[244080,520585],[-1368,43]],[[242661,530268],[1389,-12]],[[209244,525134],[12,-12455]],[[209256,512679],[-50,-4012]],[[209206,508667],[-2732,55]],[[206474,508722],[1,6547],[142,-1],[14,8098]],[[195875,520091],[-795,-463],[-177,-2270],[-459,3],[-573,-1888],[-130,-1894],[-228,1],[-3,-1752],[-298,3]],[[232297,529334],[32,-6470]],[[232329,522864],[-1381,-3]],[[230948,522861],[-32,4872]],[[234053,523113],[0,-269]],[[234053,522844],[-1724,20]],[[252040,527593],[20,-5420],[700,-8]],[[252760,522165],[-8,-6432]],[[252752,515733],[-696,32]],[[252056,515765],[-692,-1],[9,1610],[-345,-7]],[[251028,517367],[-2,8017]],[[158524,518913],[-1068,1088],[-329,768],[-35,1504]],[[165157,524278],[-366,-437]],[[164791,523841],[-600,-1643],[-745,-544],[-478,786]],[[162968,522440],[-730,-1784]],[[162238,520656],[-782,-457],[-46,928],[-635,569]],[[160775,521696],[-227,510]],[[203016,512064],[45,-3465]],[[203061,508599],[-4592,141]],[[198469,508740],[-941,-34]],[[197528,508706],[337,4066],[-1591,0],[48,4006],[104,577]],[[230948,522861],[3,-3246]],[[230951,519615],[-1623,13]],[[229328,519628],[-7,1157],[513,1813],[251,3528]],[[253784,523248],[-5,-1258],[-1019,175]],[[170423,527346],[14,-2610]],[[170437,524736],[-401,-3204],[0,-4052],[-226,-813],[-642,33],[1,-1372],[-752,-187],[118,-2760],[304,1],[77,-3742]],[[168916,508640],[-1798,-1]],[[167118,508639],[49,1621],[4,8063],[-288,1],[0,1596],[-518,16],[8,5875]],[[174020,513699],[-270,-3512]],[[173750,510187],[-1345,32]],[[172405,510219],[-2,1583],[-584,-9],[-295,3221],[-171,-21],[-111,3312],[-289,3248],[113,3191],[-629,-8]],[[255706,527058],[117,-1614],[-5,-6481],[175,-7]],[[255993,518956],[-481,-4769],[-453,-2674],[26,-1006]],[[255085,510507],[-74,93]],[[255011,510600],[-348,1798],[263,2651],[-666,243],[263,2751],[-117,1110],[148,2102],[-183,912]],[[255011,527072],[695,-14]],[[248253,525417],[-2,-6367]],[[248251,519050],[4,-3225]],[[248255,515825],[-1774,-77]],[[246481,515748],[0,4849]],[[246486,526989],[1045,-4]],[[214938,526300],[2,-8789]],[[214940,517511],[-1,-8089]],[[214939,509422],[-2667,29]],[[212272,509451],[0,3227]],[[212272,512678],[43,13631]],[[219085,526285],[420,-1613],[146,-2779],[-339,-2104]],[[219312,519789],[-135,-1298],[382,-971]],[[219559,517520],[-3145,-9]],[[216414,517511],[-1474,0]],[[212272,512678],[-3016,1]],[[221296,526232],[3,-6469]],[[221299,519763],[-1987,26]],[[185165,520355],[-3,-2744],[506,-650],[135,-1730],[3,-4866],[343,-1],[-3,-1637],[400,-13],[67,-3224],[282,-801],[790,-48],[2,-1347],[860,8]],[[188547,503302],[-99,-3225],[-305,274]],[[188143,500351],[-567,-772],[-129,1024],[-637,-765],[-533,835],[-280,-2222],[-238,584],[-857,90],[-96,-2021]],[[184806,497104],[-526,1386],[-10,1397],[-348,4611],[-316,914],[-262,-706],[-323,1502],[13,3600],[-287,1010],[-383,2793],[-233,2701],[-86,3613],[-272,361],[-94,1382]],[[224065,526190],[-1,-6467]],[[224064,519723],[-2739,40]],[[221325,519763],[-26,0]],[[226143,526137],[-2,-6467]],[[226141,519670],[-6,-6480]],[[226135,513190],[-2051,63]],[[224084,513253],[-13,1]],[[224071,513254],[-7,6469]],[[229328,519628],[389,-3087],[628,-1746]],[[230345,514795],[-1456,6],[-40,-559],[-610,15]],[[228239,514257],[-2,4850]],[[228237,519107],[-4,7018]],[[228237,519107],[-408,548],[-1688,15]],[[167118,508639],[-1414,-28]],[[165704,508611],[-332,4],[2,1361]],[[165374,509976],[84,1859],[-342,39],[1,1607],[-347,28],[21,10332]],[[251028,517367],[-1054,48]],[[249974,517415],[-9,1640],[-1714,-5]],[[172405,510219],[-826,-23],[-2,-1616],[-596,-10],[-301,1240],[-304,-1200],[-378,943],[-318,-1615]],[[169680,507938],[-764,702]],[[188812,504094],[-265,-792]],[[237897,519135],[-1085,-11]],[[236812,519124],[-341,4023]],[[165374,509976],[-1964,15]],[[163410,509991],[-24,269]],[[163386,510260],[-111,2406],[145,4765],[366,767],[-140,1600],[-678,2642]],[[206474,508722],[-142,2]],[[206332,508724],[-2606,-129]],[[203726,508595],[-665,4]],[[264518,520373],[-131,-4],[15,-7954]],[[264402,512415],[-335,1]],[[264067,512416],[-1024,59]],[[263043,512475],[5,1628]],[[263048,514103],[0,9277]],[[263048,523380],[752,-2508],[718,-499]],[[155426,523231],[0,-1322],[-345,8],[171,-1358],[345,-537],[-450,-2154],[-12,-1076]],[[155135,516792],[6,-4051],[-896,-4],[0,-2601],[169,-5]],[[154414,510131],[-4,-597]],[[154410,509534],[-766,17]],[[153644,509551],[191,6727],[-98,7016]],[[156629,522163],[0,-1647],[515,-2132],[1,-1597]],[[157145,516787],[-1,-1893],[-346,-271]],[[156798,514623],[-744,2159],[-919,10]],[[236812,519124],[284,-2536]],[[237096,516588],[-222,-1934],[-374,-651]],[[236500,514003],[-341,795],[-1058,-11]],[[235101,514787],[1,1614],[-1027,-8]],[[234075,516393],[-22,6451]],[[232329,522864],[30,-6471]],[[232359,516393],[-1030,-8]],[[231329,516385],[-347,13],[-31,3217]],[[234075,516393],[-344,3]],[[233731,516396],[-1372,-3]],[[163386,510260],[-629,17],[17,874],[-376,1203],[-462,444],[26,1607],[414,1539],[112,2268],[-250,2444]],[[239619,522318],[0,-3212],[333,-17],[8,-2705]],[[239960,516384],[-1367,53]],[[238593,516437],[-2,2682]],[[240329,520708],[8,-1270],[308,-144],[354,-2360],[-276,-2707]],[[240723,514227],[-762,15]],[[239961,514242],[-1,2142]],[[242369,520625],[-6,-8009]],[[242363,512616],[-1675,1]],[[240688,512617],[35,1610]],[[159434,520799],[0,-1905],[284,-1586]],[[159718,517308],[-2288,-7],[-285,-514]],[[160775,521696],[0,-3313],[-116,6],[3,-4865],[-600,-5]],[[160062,513519],[3,2149],[-347,1640]],[[163410,509991],[119,-3799],[225,-798]],[[163754,505394],[-3866,76]],[[159888,505470],[69,1165]],[[159957,506635],[-196,2311],[405,1008],[-239,2616],[135,949]],[[184806,497104],[3,-2717],[-506,66]],[[184303,494453],[-906,-18]],[[183397,494435],[-56,1597],[-348,2544],[-106,-614],[-845,1225],[-633,3398],[-141,1578],[-365,-189],[52,2183],[-181,-234],[-402,-2430],[55,-905],[-491,-1771],[-716,3192],[20,1138]],[[179240,505147],[217,1310],[9,5102],[104,825]],[[309697,499440],[-326,8144],[343,307],[-203,5576]],[[310206,521389],[551,-1389],[510,-516],[-213,-1647],[200,-1810],[-163,-2048],[408,-2916],[145,1141],[349,-534],[352,-3817],[161,-2744],[-592,-2997],[-880,-140],[-164,-1985],[-252,636],[-149,-1354],[-202,2089],[-181,-786],[-141,-3116],[-248,1984]],[[304288,501469],[-305,-404],[-9,-1934],[-241,39]],[[303733,499170],[-304,-527]],[[303429,498643],[-117,2061],[-640,1070],[-291,3135],[-430,-1180],[-152,5251],[122,80],[-151,4819]],[[301770,513879],[26,2283],[518,-340],[-235,2392],[476,2921]],[[266792,512571],[-1372,-94]],[[265420,512477],[-1018,-62]],[[264518,520373],[261,-2225],[563,-388],[377,-1459],[555,-1119],[218,171],[319,-1624],[-19,-1158]],[[244080,520585],[-2,-6434]],[[244078,514151],[-2,-1590],[-344,26]],[[243732,512587],[-1369,29]],[[246481,515748],[-686,31],[0,-1629]],[[245795,514150],[-1717,1]],[[197528,508706],[-1036,15]],[[196492,508721],[-3281,35]],[[221325,519763],[-3,-6470]],[[221322,513293],[-1536,18]],[[219786,513311],[-158,1348],[120,1153],[-189,1708]],[[224071,513254],[-2371,30]],[[221700,513284],[-378,9]],[[228239,514257],[0,-2714]],[[228239,511543],[-746,-4]],[[227493,511539],[-1359,31]],[[226134,511570],[1,1620]],[[231329,516385],[38,-4380]],[[231367,512005],[-336,821]],[[231031,512826],[-637,896]],[[230394,513722],[-49,1073]],[[238593,516437],[-6,-3147]],[[238587,513290],[-26,17]],[[238561,513307],[-163,843],[-522,101],[-780,2337]],[[249974,517415],[-2,-6482]],[[249972,510933],[-1721,20]],[[248251,510953],[4,4872]],[[219786,513311],[-178,-2703],[123,-1550],[-312,142],[-35,-2389]],[[219384,506811],[-387,-2543],[-370,1156],[-115,-974]],[[218512,504450],[-583,57],[-208,-834],[-377,334]],[[217344,504007],[2,4597],[-1015,-5],[83,8912]],[[217344,504007],[-269,-1030],[-621,-1015],[-210,-1237],[-503,175],[-264,-1035],[-539,-243]],[[214938,499622],[1,9800]],[[252056,515765],[-7,-3234],[109,-1632]],[[252158,510899],[-950,13],[2,-1661]],[[251210,509251],[-675,9]],[[250535,509260],[-1,1662],[-562,11]],[[159957,506635],[-1846,-55],[-387,968],[-169,1538],[-534,2059],[129,2390],[-300,15]],[[156850,513550],[-52,1073]],[[156850,513550],[-43,-124]],[[156807,513426],[-486,-577],[117,-1993],[-201,-742]],[[156237,510114],[-1823,17]],[[238561,513307],[-382,-977],[-277,-2080],[-23,-1945]],[[237879,508305],[-685,14]],[[237194,508319],[-679,14]],[[236515,508333],[-15,5670]],[[239961,514242],[-4,-3220]],[[239957,511022],[-577,12],[2,-1654]],[[239382,509380],[-216,1965],[-579,1945]],[[235101,514787],[15,-8081]],[[235116,506706],[-1367,-14]],[[233749,506692],[6,4861]],[[233755,511553],[-24,4843]],[[233755,511553],[-2201,-4]],[[231554,511549],[-187,456]],[[248251,510953],[-430,7],[0,-1618],[-327,3]],[[247494,509345],[-1694,-51]],[[245800,509294],[-5,4856]],[[252752,515733],[340,-44],[-9,-3220],[342,-69],[182,-3245],[999,-1069]],[[254606,508086],[-385,-2583],[-242,-2789]],[[253979,502714],[-8,-1]],[[253971,502713],[-10,-1]],[[253961,502712],[-693,38]],[[253268,502750],[-16,3221],[-670,52]],[[252582,506023],[14,4857],[-438,19]],[[303429,498643],[-266,-4622],[-406,-3326]],[[302757,490695],[-370,576],[-32,2012],[-647,-2107],[393,-1789],[-189,-2754]],[[301912,486633],[-573,-426]],[[301339,486207],[0,-16]],[[301339,486207],[-59,9193]],[[301280,495400],[-86,9641],[-121,9365]],[[301073,514406],[217,752],[480,-1279]],[[230394,513722],[3,-5426]],[[230397,508296],[-1199,-12]],[[229198,508284],[-5,3228],[-954,31]],[[236515,508333],[-686,5],[-1,-1627]],[[235828,506711],[-712,-5]],[[301280,495400],[-90,-875],[-585,121],[-254,-2830],[-201,2230]],[[300150,494046],[-446,795],[-524,2812]],[[299180,497653],[520,1849],[112,1480],[-264,3054],[383,3039],[-19,1891]],[[299912,508966],[388,4730],[214,623],[386,-1123],[173,1210]],[[240688,512617],[-96,-2433],[64,-4037]],[[240656,506147],[-95,-2137]],[[240561,504010],[-562,444],[-38,2207]],[[239961,506661],[97,22],[-1,4337],[-100,2]],[[245800,509294],[3,-3236]],[[245803,506058],[-2030,-24]],[[243773,506034],[-41,6553]],[[159888,505470],[-167,-669],[70,-1970]],[[159791,502831],[-1153,206],[-234,1076],[-631,10],[-781,720],[-578,-1960],[-382,1172]],[[156032,504055],[-98,1557],[388,2208],[-85,2294]],[[175529,510717],[154,-826],[-340,-5246],[151,-1455],[0,-3805]],[[175494,499385],[-398,-1021]],[[175096,498364],[-634,868],[-4,2312],[-267,893],[0,3275],[-765,34]],[[173426,505746],[189,1739],[-44,1635],[179,1067]],[[231554,511549],[662,-3749],[173,-272]],[[232389,507528],[-309,-828],[-3,-1608],[-1680,19]],[[230397,505111],[0,3185]],[[307819,495119],[63,-2040],[-255,1149],[192,891]],[[308823,498239],[322,-1210],[-422,-2791],[-256,1682],[356,2319]],[[309697,499440],[-194,-3153],[-121,2654],[-613,1160],[154,-1192],[-465,-1333],[31,1761],[-402,-1706],[118,-3275],[-828,3345],[180,1911],[-237,2132],[81,1095]],[[221700,513284],[1,-6478]],[[221701,506806],[-279,1]],[[221422,506807],[-2038,4]],[[224084,513253],[3,-6454]],[[224087,506799],[-1659,3]],[[222428,506802],[-727,4]],[[239382,509380],[134,-2743]],[[239516,506637],[-427,-1841]],[[239089,504796],[-534,227]],[[238555,505023],[9,1658],[-687,3],[2,1621]],[[226134,511570],[12,-9713]],[[226146,501857],[-2029,49]],[[224117,501906],[-30,4893]],[[179240,505147],[-395,-1629],[-367,938],[-230,-2310],[-308,-655],[142,-3509],[-185,-1566]],[[177897,496416],[-297,-1464],[-332,-476],[-1622,25],[-30,-1653],[-277,66]],[[175339,492914],[2,3219],[164,2],[-11,3250]],[[212272,509451],[-19,-8102],[-1681,-4]],[[210572,501345],[-701,13],[-661,-630]],[[209210,500728],[-4,7939]],[[242363,512616],[57,-6548]],[[242420,506068],[-1764,79]],[[243773,506034],[0,-3210]],[[243773,502824],[-1350,15]],[[242423,502839],[-3,3229]],[[262700,510887],[28,-4815]],[[262728,506072],[-1240,27],[-113,-876]],[[261375,505223],[-305,883]],[[261070,506106],[220,4694],[-69,1784]],[[261221,512584],[458,-42],[1,-1633],[1020,-22]],[[264067,512416],[-14,-6399]],[[264053,506017],[-1325,55]],[[262700,510887],[342,-32],[1,1620]],[[265420,512477],[-20,-6431]],[[265400,506046],[-1347,-29]],[[227493,511539],[8,-6473]],[[227501,505066],[-4,-4842]],[[227497,500224],[-1004,10]],[[226493,500234],[-9,1613],[-338,10]],[[229198,508284],[-7,-3209]],[[229191,505075],[-1690,-9]],[[233749,506692],[-652,-11],[0,-2565]],[[233097,504116],[-708,3412]],[[239961,506661],[-445,-24]],[[250535,509260],[0,-6476]],[[250535,502784],[-1731,65]],[[248804,502849],[-1313,5]],[[247491,502854],[3,6491]],[[252582,506023],[-689,18],[2,1616],[-685,-6],[0,1600]],[[173426,505746],[-385,-1718],[-296,-3771],[-219,-1145],[9,-3403]],[[172535,495709],[-741,0],[0,1607],[-294,1057],[-1059,-21],[-726,-3486]],[[169715,494866],[-738,-18],[245,2192],[-29,1556],[314,2473],[-552,1434],[612,1573],[-29,2092],[142,1770]],[[156032,504055],[-16,-548]],[[156016,503507],[-1264,17]],[[154752,503524],[-340,334],[-2,5676]],[[165704,508611],[55,-3187],[-11,-9610]],[[165748,495814],[-676,-6],[-1,1543],[-342,912],[-1014,-19],[1,2354]],[[163716,500598],[38,4796]],[[154752,503524],[16,-5366],[-345,3],[16,-1350],[-284,-293],[116,-1140]],[[154271,495378],[-947,-137]],[[153324,495241],[89,2631],[44,7616],[170,1569],[17,2494]],[[214938,499622],[-3,-12]],[[214935,499610],[-311,-1407],[-474,240],[-222,-2776],[-71,-2959],[-2964,12]],[[210893,492720],[-2,2156],[-338,-10],[19,6479]],[[247491,502854],[1,-4850]],[[247492,498004],[-1354,-31],[0,1610],[-337,6],[2,1612]],[[245803,501201],[0,4857]],[[253268,502750],[-7,-1765]],[[253261,500985],[-1005,107]],[[252256,501092],[2,1635],[-1723,57]],[[296979,508865],[60,-3257],[-127,-958]],[[296912,504650],[-471,86],[-134,-1750],[-359,-1102]],[[295948,501884],[-849,1672]],[[295099,503556],[103,5410]],[[295202,508966],[1777,-101]],[[299180,497653],[-205,-1076]],[[298975,496577],[-266,1736],[213,1023],[-144,948],[183,1193],[-188,668],[204,1295],[-286,977]],[[298691,504417],[181,2000],[-64,2446]],[[298808,508863],[1104,103]],[[295099,503556],[-145,-2596],[-226,-366]],[[294728,500594],[-75,974],[149,3512],[-119,604],[97,3231]],[[294780,508915],[422,51]],[[294728,500594],[65,-315]],[[294793,500279],[-930,-2003],[-662,-178]],[[293201,498098],[-213,5176],[-115,5362]],[[292873,508636],[1907,279]],[[298691,504417],[-203,-1307],[-284,945],[-413,-3859],[-312,777]],[[297479,500973],[-299,925],[174,1659],[-442,1093]],[[296979,508865],[1829,-2]],[[196492,508721],[81,-2400],[-1,-6524],[53,-2],[-1,-6560],[65,0]],[[196689,493235],[-1,-1658]],[[196688,491577],[-673,4],[0,-1650],[-344,-3],[9,-1603],[-502,-5],[2,-1644],[-615,-55]],[[194565,486621],[-361,2183],[-278,575],[-278,-718],[-65,-1424],[-340,-839],[-198,2909],[-378,-147],[-165,1088]],[[192502,490248],[0,2320],[-270,2958],[-406,2562],[50,1661],[-272,1204],[-814,-4],[0,1554],[-1081,0]],[[290927,508615],[234,-781],[324,-14558],[-26,-1329]],[[291459,491947],[-889,-543]],[[290570,491404],[-581,-367],[-299,867]],[[289690,491904],[-769,2247]],[[288921,494151],[-1154,3457]],[[287767,497608],[260,2084],[1343,6200],[870,2516],[687,207]],[[198469,508740],[221,-3931],[453,-2060],[152,402],[684,-2631]],[[199979,500520],[185,-1795],[287,-397],[154,-2198],[-5,-2947]],[[200600,493183],[-3911,52]],[[206332,508724],[28,-15346]],[[206360,493378],[-1,-12616]],[[206359,480762],[-2612,-66]],[[203747,480696],[21,19902]],[[203768,500598],[-42,7997]],[[203768,500598],[-1168,-134],[-2621,56]],[[293201,498098],[-645,-417],[133,-5014],[-525,-324]],[[292164,492343],[-705,-396]],[[290927,508615],[1946,21]],[[209210,500728],[5,-7271]],[[209215,493457],[-2855,-79]],[[169715,494866],[13,-4024]],[[169728,490842],[-1637,145],[-4,-1633],[-2343,-17]],[[165744,489337],[4,6477]],[[237194,508319],[5,-4865]],[[237199,503454],[-679,9],[-2,-1632],[-677,-6],[-1,1627]],[[235840,503452],[-12,3259]],[[238555,505023],[-264,-1740],[-417,-1264]],[[237874,502019],[-336,1431],[-339,4]],[[230397,505111],[0,-3258]],[[230397,501853],[0,-1635]],[[230397,500218],[-1208,4]],[[229189,500222],[2,4853]],[[233097,504116],[341,-1014]],[[233438,503102],[0,-2921],[-654,12]],[[232784,500193],[-25,1632],[-1362,11]],[[231397,501836],[-1000,17]],[[240561,504010],[200,-612]],[[240761,503398],[-169,-3191],[-689,-567],[0,-757]],[[239903,498883],[-674,2],[0,1341]],[[239229,500226],[-140,4570]],[[221422,506807],[-9,-6505]],[[221413,500302],[-2368,-13]],[[219045,500289],[-317,676],[77,2217],[-293,1268]],[[222428,506802],[33,-13076]],[[222461,493726],[-769,-45]],[[221692,493681],[-243,467]],[[221449,494148],[-36,6154]],[[224117,501906],[15,-8145]],[[224132,493761],[-628,-3]],[[223504,493758],[-1043,-32]],[[235840,503452],[-367,-8],[16,-4852]],[[235489,498592],[-437,8]],[[235052,498600],[-236,771]],[[234816,499371],[-1378,3731]],[[183397,494435],[-268,4],[1,-3240],[-116,1],[10,-3446],[227,-982],[-443,-1878]],[[182808,484894],[-596,-1711],[-145,-1114]],[[182067,482069],[-654,3911],[-113,-748],[-563,1718],[-9,879],[-657,322],[-39,-921],[-426,1521],[-370,1],[1,1214],[-439,-1021]],[[178798,488945],[-56,216]],[[178742,489161],[-154,1983],[62,1848],[-398,879],[-33,1744],[-322,801]],[[242423,502839],[0,-2695],[-505,27]],[[241918,500171],[-647,507],[-510,2720]],[[266980,506080],[138,-2703],[-131,-3752]],[[266987,499625],[-1582,-51]],[[265405,499574],[-5,6472]],[[265400,506046],[1580,34]],[[262728,506072],[-10,-6460]],[[262718,499612],[-1346,23]],[[261372,499635],[3,5588]],[[264053,506017],[3,-6475]],[[264056,499542],[-1338,70]],[[245803,501201],[-678,11]],[[245125,501212],[-1014,-15]],[[244111,501197],[-336,9]],[[243775,501206],[-2,1618]],[[265405,499574],[-1349,-32]],[[175096,498364],[-132,-2275],[-32,-3181],[-260,7]],[[174672,492915],[-1240,21]],[[173432,492936],[-217,1684],[-680,1089]],[[163716,500598],[-1231,-21],[0,-1605],[-451,-3],[2,-1609],[-331,10]],[[161705,497370],[-2049,35]],[[159656,497405],[135,5426]],[[239229,500226],[-676,-7]],[[238553,500219],[-1077,-9]],[[237476,500210],[398,1809]],[[229189,500222],[-676,-12]],[[228513,500210],[-1016,14]],[[297479,500973],[-166,-1451]],[[297313,499522],[-157,-1497],[-296,998],[-160,-1510],[-420,996]],[[296280,498509],[-67,1872],[-265,1503]],[[159656,497405],[121,-2501]],[[159777,494904],[-1469,-89],[-166,-673],[-532,204],[-411,1117],[-498,-541],[-6,-1096],[-722,-4],[-55,1558]],[[155918,495380],[-123,1127],[43,2998],[-132,924],[521,1787],[-211,1291]],[[219045,500289],[-133,-1711],[523,-288],[58,-1572],[780,-877],[539,-1239],[-128,-869]],[[220684,493733],[-1196,-11],[0,-483]],[[219488,493239],[-1893,-6]],[[217595,493233],[-334,-5],[34,9715],[49,1064]],[[260032,504518],[-8,-4869]],[[260024,499649],[-1160,99]],[[258864,499748],[-13,3454],[458,1388]],[[259309,504590],[723,-72]],[[298975,496577],[-544,-513],[-20,-3063]],[[298411,493001],[-914,898]],[[297497,493899],[402,4106],[-586,1517]],[[307394,502827],[-140,-1573],[180,-625],[-64,-1886],[-523,-588],[177,-1427],[-225,-1986]],[[306799,494742],[-257,115],[-412,2029],[-390,-679]],[[305740,496207],[-272,275]],[[305468,496482],[309,2126],[8,3412],[-219,979]],[[189728,498924],[5,-9133]],[[189733,489791],[-389,-951],[-593,-175]],[[188751,488665],[-448,-740],[-1162,820]],[[187141,488745],[-1,811],[-499,8],[1,1607]],[[186642,491171],[338,-6],[2,1607],[490,820],[15,2406],[170,1557],[484,19],[2,2777]],[[217595,493233],[-48,-3229]],[[217547,490004],[-2628,-7]],[[214919,489997],[16,9613]],[[296280,498509],[-410,-5407]],[[295870,493102],[-68,2572],[-938,-658]],[[294864,495016],[48,3058],[-119,2205]],[[155918,495380],[-1647,-2]],[[305468,496482],[-133,-1505],[-266,329],[-18,-2929],[-277,307]],[[304774,492684],[-7,9]],[[304767,492693],[-269,531],[-119,-1120],[-300,314]],[[304079,492418],[-196,1521],[-150,5231]],[[237476,500210],[-51,-1566]],[[237425,498644],[-1936,-52]],[[241918,500171],[207,-1615]],[[242125,498556],[-525,16],[0,-1617],[-334,5],[-1,-3232]],[[241265,493728],[-356,11]],[[240909,493739],[-1010,22]],[[239899,493761],[4,5122]],[[234816,499371],[-1,-4018],[-672,-9],[-5,-1614]],[[234138,493730],[-984,19]],[[233154,493749],[-366,-7]],[[232788,493742],[-4,6451]],[[250535,502784],[-3,-8151]],[[250532,494633],[-1040,40]],[[249492,494673],[-353,36]],[[249139,494709],[-6,4906],[-327,5],[-2,3229]],[[249139,494709],[-495,33]],[[248644,494742],[-1141,-12]],[[247503,494730],[-11,3274]],[[253961,502712],[-152,-2104],[333,-532],[464,2018]],[[254606,502094],[-10,-5904]],[[254596,496190],[-339,8],[-1,-1624],[-432,11]],[[253824,494585],[-416,19]],[[253408,494604],[6,6419],[-153,-38]],[[243775,501206],[-1056,-193],[-152,-3331]],[[242567,497682],[-442,874]],[[252256,501092],[-365,1],[-8,-6465]],[[251883,494628],[-410,-12]],[[251473,494616],[-941,17]],[[255685,502676],[-302,-3069],[-169,-3411]],[[255214,496196],[-618,-6]],[[254606,502094],[72,609]],[[254678,502703],[1007,-27]],[[192502,490248],[5,-10113]],[[192507,480135],[-16,-1620],[-799,3],[0,-1615],[-653,8],[-1,-1051]],[[191038,475860],[-655,-1],[0,1504],[-643,-3]],[[189740,477360],[-2,3452]],[[189738,480812],[-5,8979]],[[226493,500234],[-2,-6499]],[[226491,493735],[-1332,24]],[[225159,493759],[-1027,2]],[[231397,501836],[40,-8076]],[[231437,493760],[-1042,2]],[[230395,493762],[2,6456]],[[232788,493742],[-1310,16]],[[231478,493758],[-41,2]],[[210893,492720],[-1678,5]],[[209215,492725],[0,732]],[[244111,501197],[-1,-6504],[-219,-857],[207,-1948],[-69,-1318]],[[244029,490570],[-834,3122]],[[243195,493692],[-279,3080],[-349,910]],[[245125,501212],[38,-9630]],[[245163,491582],[-120,124]],[[245043,491706],[-313,-400],[-41,-1496],[-287,-3]],[[244402,489807],[-373,763]],[[247503,494730],[-1,-1740]],[[247502,492990],[-1654,56],[-187,-1630]],[[245661,491416],[-498,166]],[[253408,494604],[-589,39]],[[252819,494643],[-936,-15]],[[186642,491171],[-1501,14],[-1,-1610]],[[185140,489575],[-834,8],[-3,4870]],[[203747,480696],[-170,-9]],[[203577,480687],[-2877,-39],[0,148]],[[200700,480796],[-49,12388],[-51,-1]],[[165744,489337],[-329,0],[-5,-4859],[-338,5]],[[165072,484483],[-1001,8],[0,1610],[-336,-4],[-2,1618],[-1027,-13],[-1,1606],[-664,64],[-2,3219],[-321,77],[-13,4702]],[[221449,494148],[180,-1781],[-749,47],[-196,1319]],[[294864,495016],[-214,-1344],[-132,-2763],[162,-4374]],[[294680,486535],[-165,-92]],[[294515,486443],[-1724,-1101]],[[292791,485342],[28,960],[-465,275],[-343,2130],[225,833],[-72,2803]],[[238553,500219],[-2,-6472]],[[238551,493747],[-677,-2]],[[237874,493745],[1,807],[-681,-7]],[[237194,494545],[221,1970],[10,2129]],[[239899,493761],[-13,0]],[[239886,493761],[-1006,-6]],[[238880,493755],[-329,-8]],[[228513,500210],[-4,-6463]],[[228509,493747],[-670,-20]],[[227839,493727],[-1336,7]],[[226503,493734],[-12,1]],[[230395,493762],[0,-2]],[[230395,493760],[-1217,-20]],[[229178,493740],[-669,7]],[[260024,499649],[-9,-6494]],[[260015,493155],[-615,55]],[[259400,493210],[-964,215]],[[258436,493425],[364,3555],[64,2768]],[[261372,499635],[-2,-6463]],[[261370,493172],[-640,-4]],[[260730,493168],[-715,-13]],[[260024,499649],[1348,-14]],[[264056,499542],[8,-6454]],[[264064,493088],[-669,-1]],[[263395,493087],[-679,16]],[[262716,493103],[2,6509]],[[262716,493103],[-656,52]],[[262060,493155],[-690,17]],[[266987,499625],[-62,-3376],[-470,-1067],[-157,-2040]],[[266298,493142],[-886,-31]],[[265412,493111],[-7,6463]],[[265412,493111],[-786,0]],[[264626,493111],[-562,-23]],[[175339,492914],[-169,-3],[-23,-6408]],[[175147,486503],[-644,5]],[[174503,486508],[-557,-1]],[[173946,486507],[0,3241],[391,-17],[114,1594],[220,-13],[1,1603]],[[214919,489997],[-33,-5323],[-334,-145]],[[214552,484529],[-104,-245],[-1766,9]],[[212682,484293],[343,3115],[-3812,-38]],[[209213,487370],[2,5355]],[[297497,493899],[-208,-1404],[-408,589],[-262,-2738],[-163,304]],[[296456,490650],[-487,788],[-99,1664]],[[235052,498600],[861,-2186],[275,-1379]],[[236188,495035],[12,-2914]],[[236200,492121],[-1368,-13]],[[234832,492108],[-669,3],[-25,1619]],[[304079,492418],[-79,-2770]],[[304000,489648],[-229,-1286],[-556,2438],[-134,-953],[-324,848]],[[237194,494545],[-162,-1485],[-844,1975]],[[243195,493692],[-616,1],[0,-1602]],[[242579,492091],[-668,7],[-1,1620],[-645,10]],[[173432,492936],[-215,-1206],[111,-1864],[-135,-2004]],[[173193,487862],[-118,-728],[-1,-2989]],[[173074,484145],[-2,-31284]],[[173072,452861],[-3259,-52]],[[169813,452809],[-49,5195],[-6,11887],[-34,1],[4,20950]],[[300150,494046],[150,-5520],[-565,-417],[90,-2385]],[[299825,485724],[28,-1263],[-360,-306],[-213,-2182]],[[299280,481973],[-251,-349],[-88,1241],[-239,-1545]],[[298702,481320],[-1098,1335]],[[297604,482655],[73,1782],[273,1403]],[[297950,485840],[461,7161]],[[165072,484483],[0,-1675]],[[165072,482808],[-3996,131]],[[161076,482939],[-1867,-3]],[[159209,482936],[78,4514],[296,1024],[283,3753],[-89,2677]],[[286590,490299],[-326,1891]],[[286264,492190],[242,1614],[1261,3804]],[[288921,494151],[-278,-2136],[171,-535],[-163,-1981],[-600,-1658],[-229,98],[184,-3632]],[[288006,484307],[-698,337],[-439,-517]],[[286869,484127],[-30,11]],[[286839,484138],[-17,6]],[[286822,484144],[-93,2654],[-183,296],[473,1068],[-221,1526],[192,1728],[-400,-1117]],[[306799,494742],[-208,-3178],[83,-580],[-394,-2170],[-422,630],[40,936]],[[305898,490380],[198,677],[-157,2940],[-190,25],[-9,2185]],[[178742,489161],[-408,649],[-97,1865],[-374,-2892],[-523,-708],[-420,-3554],[-518,-1775],[-403,-257]],[[175999,482489],[-852,4014]],[[305898,490380],[-88,1150],[-333,-4456],[-153,1112],[-294,-803],[27,3034],[-191,-1422]],[[304866,488995],[63,1229],[-293,335]],[[304636,490559],[138,2125]],[[255214,496196],[10,-3137],[-283,-948],[-252,-4020]],[[254689,488091],[-861,-9]],[[253828,488082],[-4,6503]],[[296456,490650],[-138,-1260]],[[296318,489390],[-526,-1476],[60,-1043]],[[295852,486871],[-725,197],[35,-1311],[-435,-257]],[[294727,485500],[-47,1035]],[[159209,482936],[-356,-1083],[-4,-2172]],[[158849,479681],[-1695,-61],[-4,1999],[-1023,-130],[-80,4507],[-584,9],[-506,918],[-251,1689],[-581,464],[-272,-1480],[-649,-38]],[[153204,487558],[120,7683]],[[301339,486191],[74,-4637]],[[301413,481554],[-561,-31]],[[300852,481523],[-271,609],[-756,3592]],[[237874,493745],[1,-6477]],[[237875,487268],[-1335,-3]],[[236540,487265],[-340,-1]],[[236200,487264],[0,4857]],[[248644,494742],[4,-1203],[-356,-1775],[167,-1777],[17,-2211],[270,-1702],[223,-2658]],[[248969,483416],[-1467,-1]],[[247502,483415],[1,1681]],[[247503,485096],[-1,7894]],[[249492,494673],[0,-4905]],[[249492,489768],[-4,-6324]],[[249488,483444],[-519,-28]],[[251473,494616],[2,-4829]],[[251475,489787],[-785,-8]],[[250690,489779],[-1198,-11]],[[252819,494643],[-1,-5695]],[[252818,488948],[3,-842],[-1344,42]],[[251477,488148],[-2,1639]],[[253828,488082],[-336,-5]],[[253492,488077],[2,862],[-676,9]],[[185140,489575],[-7,-6496]],[[185133,483079],[-5,-1541],[-325,-81],[-2,-1617],[-333,6],[-31,-3059],[-167,-6]],[[184270,476781],[-988,-2],[0,1538],[-762,6],[71,2286],[-253,1758],[-271,-298]],[[297950,485840],[-1609,2937],[-23,613]],[[289857,482936],[-1180,-3640],[-620,942]],[[288057,480238],[-51,4069]],[[289690,491904],[167,-8968]],[[222306,488875],[139,-1400],[-277,-1473],[-155,-2285],[239,-7],[214,-2924]],[[222466,480786],[-655,1]],[[221811,480787],[-251,2],[-1,4520],[-205,288],[-400,-1289],[-686,-69],[-402,533]],[[219866,484772],[-299,59]],[[219567,484831],[-77,2419],[-2,5989]],[[221692,493681],[38,-1693],[582,-1977],[-6,-1136]],[[231478,493758],[-2,-6467]],[[231476,487291],[-1083,9]],[[230393,487300],[2,6460]],[[233154,493749],[0,-6482]],[[233154,487267],[-1644,21]],[[231510,487288],[-34,3]],[[225159,493759],[1,-4821]],[[225160,488938],[-1327,-45]],[[223833,488893],[-333,-2]],[[223500,488891],[4,4867]],[[239886,493761],[1,-6484]],[[239887,487277],[-11,1]],[[239876,487278],[-996,-7]],[[238880,487271],[0,6484]],[[240909,493739],[-31,-6461]],[[240878,487278],[-991,-1]],[[230393,487300],[-1213,-24]],[[229180,487276],[-2,6464]],[[238880,487271],[-672,1]],[[238208,487272],[-333,-4]],[[223500,488891],[-1194,-16]],[[226503,493734],[-5,-6430]],[[226498,487304],[-323,15]],[[226175,487319],[-998,7]],[[225177,487326],[-17,1612]],[[242579,492091],[0,-4839]],[[242579,487252],[-1030,-242]],[[241549,487010],[-671,268]],[[234832,492108],[2,-4840]],[[234834,487268],[-1653,0]],[[233181,487268],[-27,-1]],[[229180,487276],[-670,-7]],[[228510,487269],[-670,12]],[[227840,487281],[-1,6446]],[[227840,487281],[-666,8]],[[227174,487289],[-676,15]],[[244402,489807],[392,-2555]],[[244794,487252],[-1243,-3]],[[243551,487249],[-972,3]],[[209213,487370],[2,-6520]],[[209215,480850],[-2355,-66]],[[206860,480784],[-501,-22]],[[259400,493210],[11,-6545]],[[259411,486665],[-1095,72]],[[258316,486737],[-227,4105],[347,2583]],[[304000,489648],[314,-1030]],[[304314,488618],[155,528]],[[304469,489146],[-41,-1011]],[[304428,488135],[-42,-1969],[-144,1438],[-555,-1235],[-307,-2321],[164,-2049],[-435,-545]],[[303109,481454],[-386,1324],[-161,2030],[-306,-178],[3,1605],[-347,398]],[[219567,484831],[-690,962],[-261,-1066],[-279,233],[-415,1973],[-376,207]],[[217546,487140],[0,-1]],[[217546,487140],[1,2864]],[[200700,480796],[-1181,20]],[[199519,480816],[-168,0]],[[199351,480816],[0,2700],[-338,-12],[1,1631],[-671,1],[0,1587],[-983,520],[0,1054],[-332,2],[5,1652],[-345,1626]],[[304469,489146],[96,425],[146,-4224],[-211,-753],[-72,3541]],[[304866,488995],[-144,-863],[186,-1284],[-136,-1342],[-199,4245],[63,808]],[[304767,492693],[-187,-2521],[-266,-1554]],[[260730,493168],[6,-6502]],[[260736,486666],[-1325,-1]],[[262060,493155],[-5,-6525]],[[262055,486630],[-1319,36]],[[263395,493087],[5,-6429]],[[263400,486658],[-1345,-28]],[[264626,493111],[-1,-3070]],[[264625,490041],[-2,-3183]],[[264623,486858],[-1223,-200]],[[247503,485096],[-1667,-111]],[[245836,484985],[-8,6443],[-167,-12]],[[173946,486507],[-392,-272],[-361,1627]],[[292791,485342],[-439,-295],[152,-6649]],[[292504,478398],[55,-2188]],[[292559,476210],[-1099,-481],[-496,1080]],[[290964,476809],[-432,1000],[257,2733],[-219,10862]],[[236200,487264],[-1352,5]],[[234848,487269],[-14,-1]],[[178798,488945],[-51,-1480]],[[178747,487465],[-147,-2107],[27,-2295],[-141,-364],[-9,-7526]],[[178477,475173],[-2,-5280],[149,-49]],[[178624,469844],[-11,-2674]],[[178613,467170],[-1161,-3],[35,3027],[-978,384],[-398,937],[-84,-1083],[-654,1955],[-183,1188]],[[175190,473575],[801,17],[8,8897]],[[290964,476809],[48,-2087],[-179,-2358]],[[290833,472364],[-10,-3429]],[[290823,468935],[-322,652],[-79,-1360],[-540,1549],[-309,-528]],[[289573,469248],[-20,3211],[418,3255],[-260,632],[239,1293],[-93,5297]],[[245836,484985],[-965,57]],[[244871,485042],[-77,2210]],[[199351,480816],[0,-542],[-2071,-233],[-330,808],[-664,541],[-332,1359],[-996,270],[0,1480],[-393,2122]],[[187141,488745],[-18,-3230],[155,229],[839,-2595]],[[188117,483149],[-2489,-4]],[[185628,483145],[-495,-66]],[[169813,452809],[-3140,-59]],[[166673,452750],[-102,8]],[[166571,452758],[-13,14052],[-1606,-147],[6,8084],[116,22],[-2,8039]],[[199519,480816],[49,-535],[44,-12867],[-117,0],[4,-6462],[53,0]],[[199552,460952],[1,-3214]],[[199553,457738],[-4238,36]],[[195315,457774],[-81,8002],[-208,644],[-621,4049],[-508,1245],[-388,4713],[-175,3678],[-827,30]],[[265345,488432],[-13,-4364],[594,-1608]],[[265926,482460],[2,-2061]],[[265928,480399],[-330,807],[-651,39],[-327,827]],[[264620,482072],[3,4786]],[[264625,490041],[337,2],[2,-1583],[381,-28]],[[217546,487139],[-458,-846],[2,-7566]],[[217090,478727],[-2459,14]],[[214631,478741],[-79,1615],[0,4173]],[[184270,476781],[-1,-3235]],[[184269,473546],[-657,2],[18,-6493],[161,-1616],[-161,-935]],[[183630,464504],[-371,1135],[-285,-316]],[[182974,465323],[1,3349],[164,1],[-2,6527],[-838,4]],[[182299,475204],[-1840,-8]],[[180459,475196],[-55,2307],[-390,208],[75,2719],[-486,2042],[-29,3598],[-455,236],[-372,1159]],[[189738,480812],[-430,714],[-126,1528],[-434,6]],[[188748,483060],[3,5605]],[[251477,488148],[-2,-4871]],[[251475,483277],[-336,-10]],[[251139,483267],[-664,186]],[[250475,483453],[215,6326]],[[250475,483453],[-987,-9]],[[297604,482655],[-139,-531],[-150,-6299]],[[297315,475825],[-695,-198],[-380,613]],[[296240,476240],[-135,842]],[[296105,477082],[40,1309],[261,-315],[91,2132],[-178,490],[251,3497],[-332,632],[104,1629],[-255,1003],[-235,-588]],[[158849,479681],[187,-616],[254,-2713],[-330,-3406],[-529,-206],[-3,-1355]],[[158428,471385],[-331,3],[-437,-1062],[-659,-2951],[-995,-473],[-214,-851]],[[155792,466051],[-606,-123],[-747,708],[-3,821]],[[154436,467457],[-267,104]],[[154169,467561],[-22,3824],[329,1721],[-5,3184],[-170,-23],[1,3263],[-310,1557],[0,1719],[-955,38]],[[153037,482844],[167,4714]],[[253492,488077],[4,-6488]],[[253496,481589],[-667,11]],[[252829,481600],[-2,1626],[-1352,51]],[[225177,487326],[14,-6561]],[[225191,480765],[-1074,13]],[[224117,480778],[-247,-3]],[[223870,480775],[-37,8118]],[[223870,480775],[-1404,11]],[[188748,483060],[-631,89]],[[254689,488091],[84,-3796],[-251,-2704]],[[254522,481591],[-691,-12]],[[253831,481579],[-335,10]],[[174503,486508],[-1,-3222],[107,-1],[3,-3245],[-111,-9],[5,-3147]],[[174506,476884],[-751,3480],[-169,2160],[-512,1621]],[[219866,484772],[49,-6023]],[[219915,478749],[-2825,-22]],[[180459,475196],[-612,-25]],[[179847,475171],[-1370,2]],[[296105,477082],[-1078,260]],[[295027,477342],[17,4427],[-151,1362],[-345,330],[179,2039]],[[212682,484293],[-532,-1541],[1,-2393]],[[212151,480359],[-2937,18]],[[209214,480377],[1,473]],[[231510,487288],[-3,-6495]],[[231507,480793],[-1113,5]],[[230394,480798],[-1,6502]],[[233181,487268],[-6,-6467]],[[233175,480801],[-1132,-10]],[[232043,480791],[-536,2]],[[239876,487278],[3,-6493]],[[239879,480785],[-1250,-4]],[[238629,480781],[-423,3]],[[238206,480784],[2,6488]],[[241549,487010],[0,-6211]],[[241549,480799],[-290,-4]],[[241259,480795],[-1313,-10]],[[239946,480785],[-67,0]],[[244871,485042],[-35,-2081],[144,-2160]],[[244980,480801],[-1096,2]],[[243884,480803],[-334,1]],[[243550,480804],[1,6445]],[[226175,487319],[6,-6546]],[[226181,480773],[-417,-14]],[[225764,480759],[-573,6]],[[227174,487289],[5,-6502]],[[227179,480787],[-998,-14]],[[243550,480804],[-972,-1]],[[242578,480803],[-1029,-4]],[[234848,487269],[-4,-6462]],[[234844,480807],[-164,-8]],[[234680,480799],[-1319,-4]],[[233361,480795],[-186,6]],[[238206,480784],[-897,-1]],[[237309,480783],[-772,10]],[[236537,480793],[3,6472]],[[230394,480798],[-407,0]],[[229987,480798],[-908,-8]],[[229079,480790],[-570,-5]],[[228509,480785],[1,6484]],[[236537,480793],[-544,5]],[[235993,480798],[-1149,9]],[[228509,480785],[-758,1]],[[227751,480786],[-572,1]],[[264620,482072],[-6,-1618],[-556,-296]],[[264058,480158],[-662,0]],[[263396,480158],[4,6500]],[[259411,486665],[-4,-6481]],[[259407,480184],[-1175,91]],[[258232,480275],[-219,3393],[303,3069]],[[263396,480158],[-664,2]],[[262732,480160],[-666,1]],[[262066,480161],[-11,6469]],[[303109,481454],[-237,-3363],[-309,-544],[-343,-4752],[-437,1185]],[[301783,473980],[56,1699],[-493,2897],[67,2978]],[[262066,480161],[-1330,37]],[[260736,480198],[0,6468]],[[260736,480198],[0,-3238]],[[260736,476960],[-635,-23]],[[260101,476937],[-693,9],[-1,3238]],[[295027,477342],[-54,-6909]],[[294973,470433],[-1008,-44]],[[293965,470389],[167,2590],[-54,4202]],[[294078,477181],[-94,3357],[378,3142],[153,2763]],[[175190,473575],[-334,1506],[-129,1913],[-221,-110]],[[294078,477181],[-671,-975],[-134,2686],[-769,-494]],[[221811,480787],[-2,-9343]],[[221809,471444],[-1850,12]],[[219959,471456],[-44,7293]],[[300852,481523],[10,-3416],[-211,-1325]],[[300651,476782],[-895,3175],[-123,-380],[-353,2396]],[[266573,485031],[2,-1116],[972,143]],[[267547,484058],[-7,-6487]],[[267540,477571],[-652,-91],[7,-1620],[-304,-225]],[[266591,475635],[-654,-32]],[[265937,475603],[-9,4796]],[[265926,482460],[77,10]],[[266003,482470],[432,2693],[138,-132]],[[247502,483415],[3,-1619]],[[247505,481796],[-1004,-19],[9,-2420]],[[246510,479357],[-1496,-1]],[[245014,479356],[-34,1445]],[[288057,480238],[-163,246],[-201,-2951],[7,-3154]],[[287700,474379],[-304,516]],[[287396,474895],[-580,1634],[-156,-692],[-618,-119]],[[286042,475718],[-350,485],[-33,3060]],[[285659,479263],[575,1959],[489,118],[146,2787]],[[214631,478741],[5,-4840],[73,-2432]],[[214709,471469],[-1978,12]],[[212731,471481],[-580,15]],[[212151,471496],[0,8863]],[[269259,474627],[-1374,-276]],[[267885,474351],[-11,2434],[-334,786]],[[267547,484058],[1423,278]],[[268970,484336],[189,-4720],[100,-4989]],[[178613,467170],[-2,-14382]],[[178611,452788],[-3086,41],[-2428,19]],[[173097,452848],[-25,13]],[[251139,483267],[-6,-6483]],[[251133,476784],[-1982,151]],[[249151,476935],[334,1631],[4,3332],[-358,174],[-162,1344]],[[249151,476935],[-328,-1617]],[[248823,475318],[-991,-774]],[[247832,474544],[6,7269],[-333,-17]],[[252829,481600],[-49,-6493]],[[252780,475107],[-328,24]],[[252452,475131],[-1318,30]],[[251134,475161],[-1,1623]],[[189740,477360],[2,-5505]],[[189742,471855],[-1523,-1]],[[188219,471854],[6,4870],[-654,10],[0,1562],[-614,11],[-169,1087],[-1161,0],[1,3751]],[[188219,471854],[-1319,42]],[[186900,471896],[-1651,-7],[-264,-1313]],[[184985,470576],[-183,-1642],[-532,-4],[-1,4616]],[[161076,482939],[-47,-16196],[1299,-29],[11,-13965]],[[162339,452749],[-1582,70]],[[160757,452819],[-2346,190]],[[158411,453009],[17,18376]],[[166571,452758],[-1779,10]],[[164792,452768],[-2453,-19]],[[289573,469248],[-100,-158]],[[289473,469090],[-527,-154],[-20,1300],[-279,-24],[-23,1968],[-519,2370],[-405,-171]],[[300651,476782],[-32,-195]],[[300619,476587],[-404,-4938]],[[300215,471649],[-352,1116],[-342,-274],[-74,1832],[-524,-693],[-159,1711],[-267,-361]],[[298497,474980],[-226,2506],[101,2208],[330,1626]],[[154169,467561],[-316,-270],[-199,-1661],[-396,-276],[-61,3940],[-268,1346],[-619,4]],[[152310,470644],[269,5888],[458,6312]],[[298497,474980],[-81,-1100]],[[298416,473880],[-391,59],[61,931],[-822,-385]],[[297264,474485],[51,1340]],[[301783,473980],[-163,-962]],[[301620,473018],[-513,-14],[127,1049],[-615,2534]],[[265937,475603],[-658,-19],[7,-1630]],[[265286,473954],[-1222,-81]],[[264064,473873],[-6,6285]],[[247832,474544],[-657,679]],[[247175,475223],[-660,-544]],[[246515,474679],[-5,4678]],[[254522,481591],[-329,-5330],[49,-1204]],[[254242,475057],[-476,2]],[[253766,475059],[65,6520]],[[253766,475059],[-986,48]],[[238629,480781],[-1,-4543]],[[238628,476238],[-1318,-2]],[[237310,476236],[-1,4547]],[[237308,469765],[-1315,6]],[[235993,469771],[0,6459]],[[235993,476230],[0,4568]],[[237310,476236],[-2,-6471]],[[234682,476230],[-1321,3]],[[233361,476233],[0,4562]],[[234680,480799],[2,-4569]],[[235993,476230],[-1311,0]],[[239947,476239],[-1319,-1]],[[239946,480785],[1,-4546]],[[233361,476233],[-1320,43]],[[232041,476276],[2,4515]],[[209214,480377],[5,-8812]],[[209219,471565],[0,-7313]],[[209219,464252],[-1679,-40]],[[207540,464212],[-659,-10]],[[206881,464202],[-21,16582]],[[241256,475444],[-1309,0]],[[239947,475444],[0,795]],[[241259,480795],[-3,-5351]],[[232041,476276],[-1933,42]],[[230108,476318],[88,2490],[-209,1990]],[[242578,480803],[-3,-5357]],[[242575,475446],[-1319,-2]],[[245014,479356],[4,-1361],[405,-1717],[-331,-3302]],[[245092,472976],[-1192,26]],[[243900,473002],[-16,7801]],[[243900,473002],[-1326,21]],[[242574,473023],[1,2423]],[[230108,476318],[224,-745],[59,-2539]],[[230391,473034],[-980,6]],[[229411,473040],[-330,1]],[[229081,473041],[-2,7749]],[[206881,464202],[-1098,-58],[7,-3247]],[[205790,460897],[-134,-6],[-121,-2624],[-664,265],[160,2348],[-1441,51]],[[203590,460931],[-7,-1]],[[203583,460930],[-6,19757]],[[224117,480778],[91,-2393],[1571,-3239]],[[225779,475146],[90,-530]],[[225869,474616],[-47,-3529],[-165,-2603]],[[225657,468484],[-436,813]],[[225221,469297],[-526,2160]],[[224695,471457],[-1032,3041],[-78,1580],[-470,1325],[-243,2027],[-406,1356]],[[229081,473041],[-659,-11]],[[228422,473030],[0,1617],[-665,-11]],[[227757,474636],[-6,6150]],[[227757,474636],[-663,-12]],[[227094,474624],[-1225,-8]],[[225779,475146],[-15,5613]],[[203583,460930],[-1530,-51],[-2501,73]],[[224695,471457],[-2109,-11]],[[222586,471446],[-777,-2]],[[212151,471496],[-1401,0]],[[210750,471496],[-1531,69]],[[260101,476937],[-1,-1635]],[[260100,475302],[-329,14],[4,-1620],[-1016,-10]],[[258759,473686],[-527,6589]],[[262732,480160],[25,-6465]],[[262757,473695],[-1325,-1]],[[261432,473694],[1,3265],[-697,1]],[[195315,457774],[-2814,132]],[[192501,457906],[-1359,125],[-5,3185],[-131,-2],[32,14646]],[[264064,473873],[0,-195]],[[264064,473678],[-1307,17]],[[246515,474679],[-1111,-3345],[-255,-73]],[[245149,471261],[-57,1715]],[[286042,475718],[-35,-4144],[115,-2963],[261,67],[229,-1455]],[[286612,467223],[26,-2749]],[[286638,464474],[-1117,-2]],[[285521,464472],[-187,1943],[55,5513]],[[285389,471928],[-24,5905]],[[285365,477833],[294,1430]],[[293965,470389],[-115,-2942]],[[293850,467447],[-369,-82]],[[293481,467365],[-266,2462],[-523,832]],[[292692,470659],[-14,505]],[[292678,471164],[-119,5046]],[[217090,478727],[0,-7285]],[[217090,471442],[-2381,27]],[[219959,471456],[-2869,-14]],[[281818,478275],[-5,-4317]],[[281813,473958],[-1305,-81]],[[280508,473877],[0,4510]],[[280508,478387],[1310,-112]],[[280508,473877],[4,-838]],[[280512,473039],[-752,7],[-414,-1125]],[[279346,471921],[-518,1158],[12,3307],[719,1122],[949,879]],[[283548,476628],[9,-4501]],[[283557,472127],[-318,-2],[8,-1701],[-272,15]],[[282975,470439],[-429,33],[9,794],[-498,-13]],[[282057,471253],[10,2716],[-254,-11]],[[281818,478275],[657,-443],[527,-1887],[546,683]],[[285389,471928],[-697,-201]],[[284692,471727],[-474,498],[-661,-98]],[[283548,476628],[635,251],[429,-526],[753,1480]],[[267885,474351],[36,-4847]],[[267921,469504],[-333,-96]],[[267588,469408],[-976,-152]],[[266612,469256],[-21,6379]],[[192501,457906],[15,-12908]],[[192516,444998],[-2779,45]],[[189737,445043],[-3,7851]],[[189734,452894],[0,9524]],[[189734,462418],[8,9437]],[[296240,476240],[-137,-2650],[-357,111],[-31,-3519],[241,-61],[-25,-3494]],[[295931,466627],[-259,37]],[[295672,466664],[-674,89]],[[294998,466753],[-25,3680]],[[251134,475161],[-13,-6521]],[[251121,468640],[-991,-43]],[[250130,468597],[-1307,230]],[[248823,468827],[0,6491]],[[261432,473694],[8,-6496]],[[261440,467198],[-657,-32]],[[260783,467166],[-660,1]],[[260123,467167],[-23,8135]],[[292678,471164],[-1239,47],[-606,1153]],[[301620,473018],[189,655],[301,-1389],[-295,-3187]],[[301815,469097],[-594,-238],[-94,-983],[-503,-1186]],[[300624,466690],[-506,1531],[-67,1971],[164,1457]],[[287396,474895],[215,-2005],[56,-5300]],[[287667,467590],[-1055,-367]],[[297264,474485],[21,-2797],[-310,-2918],[270,-2372]],[[297245,466398],[-1314,229]],[[232041,476276],[7,-6486]],[[232048,469790],[-1892,-6]],[[230156,469784],[78,2628],[157,622]],[[233361,476233],[0,-6428]],[[233361,469805],[-1313,-15]],[[239947,475444],[-4,-5679]],[[239943,469765],[-1318,14]],[[238625,469779],[3,6459]],[[238625,469779],[-1317,-14]],[[235993,469771],[-1311,30]],[[234682,469801],[0,6429]],[[234682,469801],[-1321,4]],[[266612,469256],[-658,-171],[8,-1638]],[[265962,467447],[-657,-45]],[[265305,467402],[-19,6552]],[[242574,473023],[-2,-3272]],[[242572,469751],[-1316,2]],[[241256,469753],[0,5691]],[[241256,469753],[-1313,12]],[[248823,468827],[0,-812]],[[248823,468015],[-1640,-18]],[[247183,467997],[-8,7226]],[[247183,467997],[1,-5692]],[[247184,462305],[-597,23]],[[246587,462328],[-172,2280],[-542,826]],[[245873,465434],[-469,1433],[-255,4394]],[[300624,466690],[-29,-121]],[[300595,466569],[-107,-729],[-1684,270]],[[298804,466110],[-84,15]],[[298720,466125],[-215,4313],[-157,16],[68,3426]],[[260123,467167],[-1187,-13]],[[258936,467154],[-50,4104],[-127,2428]],[[182299,475204],[2,-6522],[-141,-1591],[-469,14]],[[181691,467105],[-327,810],[-823,11],[-55,776],[-638,0]],[[179848,468702],[-1,6469]],[[179848,468702],[-63,-3749]],[[179785,464953],[-565,398],[-162,1616]],[[179058,466967],[-63,1875],[-371,1002]],[[252452,475131],[-16,-6573]],[[252436,468558],[-656,-5]],[[251780,468553],[-659,87]],[[182974,465323],[-238,-239],[-275,-2258],[-767,3]],[[181694,462829],[-3,4276]],[[253766,475059],[-16,-6494]],[[253750,468565],[-660,-23]],[[253090,468542],[-654,16]],[[254242,475057],[185,-6512]],[[254427,468545],[-677,20]],[[289473,469090],[-133,-2371]],[[289340,466719],[-1655,-378]],[[287685,466341],[-18,1249]],[[298720,466125],[-986,173]],[[297734,466298],[-489,100]],[[228422,473030],[0,-5278]],[[228422,467752],[-410,1264],[-493,-321]],[[227519,468695],[-420,21]],[[227099,468716],[-5,5908]],[[227099,468716],[-647,153],[-239,-1688],[-225,-93],[-331,1396]],[[265305,467402],[-657,-79]],[[264648,467323],[-572,-16]],[[264076,467307],[-12,6371]],[[282057,471253],[-126,-2331]],[[281931,468922],[-1419,93]],[[280512,469015],[0,4024]],[[262757,473695],[0,-6486]],[[262757,467209],[-661,6]],[[262096,467215],[-656,-17]],[[264076,467307],[-666,-109]],[[263410,467198],[-653,11]],[[184985,470576],[7,-703],[463,1104],[183,-1172],[54,-3295],[325,-1616],[-111,-2670]],[[185906,462224],[-218,4],[1,-1621],[-435,0],[0,-1622],[-966,-25]],[[184288,458960],[-6,4851],[-652,693]],[[279029,472686],[285,-724],[-124,-1251],[-161,1975]],[[280512,469015],[1,-6165]],[[280513,462850],[-1219,-1634]],[[279294,461216],[-444,1662]],[[278850,462878],[-210,586]],[[278640,463464],[245,2248],[543,1799],[-163,3149],[81,1261]],[[230156,469784],[-257,-2656],[18,-1098],[319,-1424],[30,-1300]],[[230266,463306],[144,-1322]],[[230410,461984],[-513,643]],[[229897,462627],[-187,2346],[-300,1001]],[[229410,465974],[1,7066]],[[229410,465974],[-586,1070]],[[228824,467044],[-402,708]],[[243900,473002],[-5,-8148]],[[243895,464854],[-1323,-36]],[[242572,464818],[0,4933]],[[245873,465434],[-1,-548],[-656,3]],[[245216,464889],[-1321,-35]],[[292692,470659],[24,-1088],[-500,-1877]],[[292216,467694],[-534,-438],[-538,1053]],[[291144,468309],[-321,626]],[[284692,471727],[-24,-4636]],[[284668,467091],[-949,-53],[-149,-3444]],[[283570,463594],[-344,17]],[[283226,463611],[9,1733],[-312,31],[52,5064]],[[186900,471896],[-241,-2319],[147,-3747],[355,398],[146,-1874],[116,-3740]],[[187423,460614],[-60,-2973],[-639,535]],[[186724,458176],[-180,1226],[-380,-494],[84,2409],[-342,907]],[[189734,462418],[-524,-641],[35,1743],[-1064,341],[14,-3257]],[[188195,460604],[-772,10]],[[285521,464472],[224,-1369],[-308,-60]],[[285437,463043],[-555,-97]],[[284882,462946],[2,2100],[-216,2045]],[[210915,461007],[1,-6453],[118,-1623]],[[211034,452931],[-1815,-34]],[[209219,452897],[0,11355]],[[210750,471496],[65,-4017],[1,-6473],[99,1]],[[214922,454659],[-168,-1624]],[[214754,453035],[-1702,-71]],[[213052,452964],[-57,-9]],[[212995,452955],[-124,1630],[-20,6469],[-66,0]],[[212785,461054],[0,6430],[-54,3997]],[[214709,471469],[45,-10348],[76,-3],[-4,-6452],[96,-7]],[[212785,461054],[-1870,-47]],[[225221,469297],[13,-2261]],[[225234,467036],[-777,345],[-862,1235],[-166,869],[-848,-1646]],[[222581,467839],[5,3607]],[[222581,467839],[-781,-1614],[-391,247]],[[221409,466472],[-1271,1432],[-179,713]],[[219959,468617],[0,2839]],[[219959,468617],[86,-14154]],[[220045,454463],[-279,6]],[[219766,454469],[-1612,38]],[[218154,454507],[-1617,75]],[[216537,454582],[-1615,77]],[[158411,453009],[-2622,-72]],[[155789,452937],[3,13114]],[[283226,463611],[-473,58],[-176,-2031]],[[282577,461638],[-328,866],[-551,60]],[[281698,462564],[229,2735],[4,3623]],[[294998,466753],[-244,-4393]],[[294754,462360],[-1202,-852]],[[293552,461508],[61,2653],[237,3286]],[[293481,467365],[-1033,-910]],[[292448,466455],[-257,-293],[25,1532]],[[154436,467457],[-322,-2815],[-164,-2462],[-328,-79],[-48,-2548],[372,-119],[281,-2180],[-183,-1761],[99,-2713]],[[154143,452780],[-1087,57]],[[153056,452837],[-394,1953],[-208,4302],[105,4473],[-71,1599],[-264,1356],[-114,2029],[200,2095]],[[179785,464953],[674,-952],[683,-1920],[360,583]],[[181502,462664],[-185,-223],[-6,-1813],[-601,5],[9,-7878]],[[180719,452755],[-2108,33]],[[232048,469790],[-2,-6489]],[[232046,463301],[-1780,5]],[[234682,469801],[-2,-6505]],[[234680,463296],[-1319,27]],[[233361,463323],[0,6482]],[[233361,463323],[-985,-8]],[[232376,463315],[-330,-14]],[[235993,469771],[0,-4895]],[[235993,464876],[0,-1607]],[[235993,463269],[-1313,27]],[[238625,469779],[-3,-6531]],[[238622,463248],[-1315,8]],[[237307,463256],[0,1612]],[[237307,464868],[1,4897]],[[237307,464868],[-1314,8]],[[239943,469765],[-4,-6533]],[[239939,463232],[-1317,16]],[[241256,469753],[-1,-4930]],[[241255,464823],[1,-1610]],[[241256,463213],[-1317,19]],[[242572,464818],[-1317,5]],[[291144,468309],[49,-3778],[-226,-2026]],[[290967,462505],[-369,-97],[-984,-2871],[-607,-823]],[[289007,458714],[112,1789],[-67,1881],[190,1044],[98,3291]],[[225234,467036],[12,-6037]],[[225246,460999],[0,-6480]],[[225246,454519],[-1283,-6]],[[223963,454513],[-1286,-11]],[[222677,454502],[-33,1]],[[222644,454503],[-31,12930],[-32,406]],[[268694,465642],[-316,-1305],[-142,-3076]],[[268236,461261],[-593,-71]],[[267643,461190],[-55,8218]],[[267921,469504],[681,71],[92,-3933]],[[267643,461190],[-1306,-223]],[[266337,460967],[-314,-75]],[[266023,460892],[-61,6555]],[[301815,469097],[129,-3011],[504,-1291],[-172,-917],[-656,-1009],[-20,-1435],[-247,-532]],[[301353,460902],[-115,246]],[[301238,461148],[-90,2974],[-550,962],[-3,1485]],[[227519,468695],[-2,-7665]],[[227517,461030],[-972,-16]],[[226545,461014],[-1299,-15]],[[228824,467044],[-4,-7638]],[[228820,459406],[-975,10]],[[227845,459416],[1,1618],[-329,-4]],[[281698,462564],[-753,1]],[[280945,462565],[-432,285]],[[250130,468597],[9,-6418]],[[250139,462179],[-99,3]],[[250040,462182],[-1216,98]],[[248824,462280],[-1,5735]],[[181694,462829],[-192,-165]],[[251780,468553],[1,-6529]],[[251781,462024],[-457,58]],[[251324,462082],[-1185,97]],[[221409,466472],[43,-12006]],[[221452,454466],[-68,2]],[[221384,454468],[-1339,-5]],[[253090,468542],[2,-4305]],[[253092,464237],[4,-2164]],[[253096,462073],[-1122,-19]],[[251974,462054],[-193,-30]],[[254427,468545],[185,-1078],[-127,-2165]],[[254485,465302],[-1064,31],[0,-1088],[-329,-8]],[[292448,466455],[-171,-3336],[-36,-2654]],[[292241,460465],[-527,-991]],[[291714,459474],[-489,1291],[-258,1740]],[[293552,461508],[-1311,-1043]],[[248824,462280],[-247,1]],[[248577,462281],[-1393,24]],[[222644,454503],[-1192,-37]],[[287015,460504],[-343,-51]],[[286672,460453],[-34,4021]],[[287685,466341],[71,-5738]],[[287756,460603],[-741,-99]],[[155789,452937],[-801,-56]],[[154988,452881],[-845,-101]],[[266023,460892],[-1299,-123]],[[264724,460769],[-27,1]],[[264697,460770],[-49,6553]],[[264697,460770],[-1281,-49]],[[263416,460721],[-6,6477]],[[263416,460721],[-329,-8]],[[263087,460713],[-985,-2]],[[262102,460711],[-6,6504]],[[262102,460711],[-632,-30]],[[261470,460681],[-681,30]],[[260789,460711],[-6,6455]],[[260789,460711],[-616,-16]],[[260173,460695],[-1419,-24]],[[258754,460671],[182,6483]],[[284882,462946],[17,-1460],[-606,385]],[[284293,461871],[-102,1733],[-621,-10]],[[229897,462627],[-253,6],[-13,-4592]],[[229631,458041],[-268,-255]],[[229363,457786],[-543,3],[0,1617]],[[295672,466664],[201,-1871],[-69,-1578]],[[295804,463215],[-69,-4535]],[[295735,458680],[-148,-5073]],[[295587,453607],[-1209,182]],[[294378,453789],[-26,1]],[[294352,453790],[-31,692],[433,7878]],[[289007,458714],[-9,-2219]],[[288998,456495],[-609,12],[-4,988],[-551,-86]],[[287834,457409],[-78,3194]],[[297645,459260],[-169,1432],[-916,-278],[9,882],[-474,583],[-291,1336]],[[297734,466298],[148,-1093],[-43,-2779],[-194,-3166]],[[301238,461148],[-70,-970]],[[301168,460178],[-67,-41]],[[301101,460137],[28,-397]],[[301129,459740],[-2,-4]],[[301127,459736],[-256,-726]],[[300871,459010],[-22,-492]],[[300849,458518],[-74,-390]],[[300775,458128],[-385,553],[-40,-2081],[-373,-819]],[[299977,455781],[-294,713],[-11,1200],[281,1310],[-388,368],[185,1162],[57,2438],[-390,-234],[39,1513],[-540,411],[-112,1448]],[[299977,455781],[-56,-2596]],[[299921,453185],[-840,-171]],[[299081,453014],[-844,387]],[[298237,453401],[-93,27]],[[298144,453428],[2,2448],[-359,413],[119,1141]],[[297906,457430],[27,1226],[-288,604]],[[184288,458960],[0,-6128]],[[184288,452832],[-2898,-86]],[[181390,452746],[-671,9]],[[246587,462328],[-37,-556],[502,-1805]],[[247052,459967],[-532,14],[-2,-1629],[-648,10]],[[245870,458362],[-647,9]],[[245223,458371],[-7,6518]],[[254485,465302],[3,-3266]],[[254488,462036],[-1092,47]],[[253396,462083],[-300,-10]],[[245223,458371],[-649,13]],[[244574,458384],[-652,-1]],[[243922,458383],[-27,6471]],[[237307,463256],[111,-1603],[1,-4876]],[[237419,456777],[-650,-3]],[[236769,456774],[-649,-15]],[[236120,456759],[0,4918],[-127,1592]],[[243922,458383],[-651,50]],[[243271,458433],[-651,-34]],[[242620,458399],[-48,6419]],[[242620,458399],[-653,5]],[[241967,458404],[-654,-10]],[[241313,458394],[-57,4819]],[[286672,460453],[9,-2065],[-460,403],[-3,-1030],[-340,349]],[[285878,458110],[-226,21]],[[285652,458131],[-201,28],[-14,4884]],[[209219,452897],[0,-5656]],[[209219,447241],[2,-2488]],[[209221,444753],[-1673,14],[-1,1638]],[[207547,446405],[-7,17807]],[[207547,446405],[-1742,68]],[[205805,446473],[-15,14424]],[[189734,452894],[-1286,-39]],[[188448,452855],[-243,1756],[-87,2141],[178,1265],[-101,2587]],[[284293,461871],[21,-3935],[375,114]],[[284689,458050],[-2,-5187]],[[284687,452863],[-1795,-1]],[[282892,452862],[-390,-48]],[[282502,452814],[75,8824]],[[278850,462878],[-1,-10015]],[[278849,452863],[-1529,-47]],[[277320,452816],[-423,27],[0,5034]],[[276897,457877],[602,1758],[633,2570],[508,1259]],[[232376,463315],[-1,-1600],[202,-13],[-4,-4901]],[[232573,456801],[-1911,67]],[[230662,456868],[1,1145]],[[230663,458013],[-154,1201],[39,2679],[-138,91]],[[234680,463296],[161,-1608],[-5,-4919]],[[234836,456769],[-647,13]],[[234189,456782],[-648,10]],[[233541,456792],[3,4901],[-183,1630]],[[233541,456792],[-968,9]],[[236120,456759],[-644,5]],[[235476,456764],[-640,5]],[[238622,463248],[103,-1618],[-1,-4868]],[[238724,456762],[-656,0]],[[238068,456762],[-649,15]],[[239939,463232],[70,-6471]],[[240009,456761],[-640,-7]],[[239369,456754],[-645,8]],[[241313,458394],[-653,-6],[2,-1611]],[[240662,456777],[-653,-16]],[[297906,457430],[-486,-1106],[-24,856],[-523,-374],[-118,1160],[-154,-1681],[-621,1035],[76,1737],[-321,-377]],[[285652,458131],[-963,-81]],[[280945,462565],[4,-9702]],[[280949,452863],[-1704,-50]],[[279245,452813],[-396,50]],[[230663,458013],[-1032,28]],[[282502,452814],[-1272,49]],[[281230,452863],[-281,0]],[[291714,459474],[-261,-2859],[238,-600]],[[291691,456015],[-916,-2845]],[[290775,453170],[-1003,-3057]],[[289772,450113],[-329,184],[-290,2566]],[[289153,452863],[-165,772],[10,2860]],[[248577,462281],[18,-5761]],[[248595,456520],[-1108,-48]],[[247487,456472],[-211,623],[-224,2872]],[[294352,453790],[-85,-1335],[-514,519],[-607,1358]],[[293146,454332],[53,903]],[[293199,455235],[352,2851],[1,3422]],[[249240,456572],[-645,-52]],[[250040,462182],[14,-5553]],[[250054,456629],[-814,-57]],[[251324,462082],[2,-6381]],[[251326,455701],[-650,-38],[2,1005],[-624,-39]],[[186724,458176],[47,-5357]],[[186771,452819],[-155,1]],[[186616,452820],[-2328,12]],[[253396,462083],[-8,-6346]],[[253388,455737],[-109,0]],[[253279,455737],[-975,-13]],[[252304,455724],[-325,0]],[[251979,455724],[-5,6330]],[[251979,455724],[-653,-23]],[[254614,455702],[-1226,35]],[[254488,462036],[-82,-3532],[208,-2802]],[[293199,455235],[-367,801],[-92,-1372],[-647,330],[-402,1021]],[[301127,459736],[69,-1616]],[[301196,458120],[-253,-1012],[-168,1020]],[[300849,458518],[22,492]],[[227845,459416],[-2,-4858]],[[227843,454558],[-1298,-23]],[[226545,454535],[0,6479]],[[212995,452955],[-1853,-35]],[[211142,452920],[-108,11]],[[226545,454535],[3,-3229]],[[226548,451306],[-1288,-24]],[[225260,451282],[-14,3237]],[[266372,454459],[-653,-60]],[[265719,454399],[-998,-201]],[[264721,454198],[3,6571]],[[266337,460967],[35,-6508]],[[203590,460931],[13,-19328],[-708,2],[8,-7373]],[[202903,434232],[-1501,65]],[[201402,434297],[-1279,5]],[[200123,434302],[-1673,-16]],[[198450,434286],[-31,12241],[1170,-39],[16,8015],[-52,3235]],[[205805,446473],[4,-12257]],[[205809,434216],[-2545,-6]],[[203264,434210],[-361,22]],[[188448,452855],[-1677,-36]],[[264721,454198],[-644,35]],[[264077,454233],[-965,-59]],[[263112,454174],[-25,6539]],[[263112,454174],[-326,40]],[[262786,454214],[-1301,-17]],[[261485,454197],[-15,6484]],[[260173,460695],[3,-6540]],[[260176,454155],[-1280,41]],[[258896,454196],[-2,3199],[-393,-4]],[[258501,457391],[253,3280]],[[261485,454197],[-1309,-42]],[[289153,452863],[-334,-23]],[[288819,452840],[-1736,23]],[[287083,452863],[-29,3458],[98,834],[-137,3349]],[[287083,452863],[-115,0]],[[286968,452863],[-1145,0]],[[285823,452863],[55,5247]],[[247487,456472],[432,-1434],[26,-1577]],[[247945,453461],[-2077,28]],[[245868,453489],[2,4873]],[[229363,457786],[-2,-3238]],[[229361,454548],[-545,3]],[[228816,454551],[-973,7]],[[301196,458120],[304,-647]],[[301500,457473],[18,-1677],[-433,-1150]],[[301085,454646],[-839,-2060]],[[300246,452586],[-325,599]],[[298144,453428],[-1041,73]],[[297103,453501],[-1391,88]],[[295712,453589],[-125,18]],[[301793,457791],[116,-445]],[[301909,457346],[403,-2846],[-196,-1501],[475,-1514],[5,-2152]],[[302596,449333],[-234,-1189]],[[302362,448144],[-280,-204],[-97,-1526],[-241,-453]],[[301744,445961],[-218,3011],[-291,-217],[146,1519],[-214,1940],[-82,2432]],[[301500,457473],[293,318]],[[243271,458433],[-1,-8140]],[[243270,450293],[-1301,18]],[[241969,450311],[-2,8093]],[[244574,458384],[-7,-6498]],[[244567,451886],[-1,-1627]],[[244566,450259],[-1296,34]],[[241969,450311],[-1303,-7]],[[240666,450304],[-4,6473]],[[245868,453489],[0,-1629]],[[245868,451860],[-1301,26]],[[285823,452863],[-1027,0]],[[284796,452863],[-109,0]],[[230662,456868],[249,-1941],[-15,-1182]],[[230896,453745],[-107,-597],[-679,13]],[[230110,453161],[-2,1379],[-747,8]],[[198450,434286],[-3154,-25]],[[195296,434261],[-2647,-56]],[[192649,434205],[-133,0]],[[192516,434205],[0,10793]],[[277320,452816],[-6,-2742]],[[277314,450074],[-2528,-14]],[[274786,450060],[0,2383]],[[274786,452443],[526,1090],[1585,4344]],[[258896,454196],[-10,-5792]],[[258886,448404],[-830,-14]],[[258056,448390],[-837,12]],[[257219,448402],[579,2539],[358,3966],[345,2484]],[[232573,456801],[-5,-6484]],[[232568,450317],[-1299,59]],[[231269,450376],[19,2011],[-392,1358]],[[240666,450304],[-1299,5]],[[239367,450309],[2,6445]],[[235476,456764],[0,-6454]],[[235476,450310],[-323,-7]],[[235153,450303],[-970,19]],[[234183,450322],[6,6460]],[[234183,450322],[-1294,1]],[[232889,450323],[-321,-6]],[[238068,456762],[0,-6440]],[[238068,450322],[-326,1]],[[237742,450323],[-971,-4]],[[236771,450319],[-2,6455]],[[236771,450319],[-324,-4]],[[236447,450315],[-971,-5]],[[239367,450309],[-322,8]],[[239045,450317],[-977,5]],[[251326,455701],[-4,-4851]],[[251322,450850],[-1168,-69],[-750,255]],[[249404,451036],[-159,538]],[[249245,451574],[-5,4998]],[[249245,451574],[-1296,-32]],[[247949,451542],[-4,1919]],[[293146,454332],[-66,-9100]],[[293080,445232],[-482,-138],[-384,934],[-288,-777]],[[291926,445251],[-77,1003],[-501,1869],[338,2426],[-911,2621]],[[254614,455702],[218,-1446],[316,-5438]],[[255148,448818],[123,-1399]],[[255271,447419],[-6,-4485]],[[255265,442934],[-737,66],[-9,1648],[-322,-35],[-7,1623],[-327,774]],[[253863,447010],[319,582],[-16,5161],[-954,-144]],[[253212,452609],[67,3128]],[[252304,455724],[-37,-8080]],[[252267,447644],[0,-1641]],[[252267,446003],[-938,-57]],[[251329,445946],[-7,4904]],[[253212,452609],[3,-4870]],[[253215,447739],[-948,-95]],[[216537,454582],[2,-6500]],[[216539,448082],[-1559,-14]],[[214980,448068],[-230,-4],[4,4971]],[[301744,445961],[-236,-1674],[-533,-780]],[[300975,443507],[-36,3034],[-176,277]],[[300763,446818],[-87,707]],[[300676,447525],[-253,1172]],[[300423,448697],[-177,3889]],[[218154,454507],[10,-6475]],[[218164,448032],[-1572,52]],[[216592,448084],[-53,-2]],[[230110,453161],[-2,-5099]],[[230108,448062],[-976,13]],[[229132,448075],[-318,5]],[[228814,448080],[2,6471]],[[227843,454558],[1,-6473]],[[227844,448085],[-1288,-18]],[[226556,448067],[-8,3239]],[[228814,448080],[-648,2]],[[228166,448082],[-322,3]],[[219766,454469],[6,-6447]],[[219772,448022],[-1243,-2]],[[218529,448020],[-365,12]],[[225260,451282],[0,-3235]],[[225260,448047],[-1272,-15]],[[223988,448032],[-19,0]],[[223969,448032],[-6,6481]],[[221384,454468],[0,-6437]],[[221384,448031],[-1572,-10]],[[219812,448021],[-40,1]],[[222677,454502],[3,-6462]],[[222680,448040],[-1296,-9]],[[223969,448032],[-1263,4]],[[222706,448036],[-26,4]],[[265719,454399],[30,-6681]],[[265749,447718],[-327,-64]],[[265422,447654],[-1337,-251]],[[264085,447403],[-8,6830]],[[294378,453789],[-86,-7126]],[[294292,446663],[-33,-2600]],[[294259,444063],[-1125,-725],[-133,-918]],[[293001,442420],[79,2812]],[[302596,449333],[321,-1189],[408,-369],[764,1511],[-341,4569],[401,-2137],[107,-3239],[-210,-1768],[-1085,-604],[-241,-1586],[-502,-404],[144,4027]],[[262786,454214],[4,-5818]],[[262790,448396],[-1035,-6]],[[261755,448390],[-267,4]],[[261488,448394],[-3,5803]],[[264085,447403],[-109,-15]],[[263976,447388],[-1133,-180]],[[262843,447208],[-53,1188]],[[261488,448394],[-1023,-15]],[[260465,448379],[-349,0]],[[260116,448379],[69,741],[-9,5035]],[[260116,448379],[-774,27]],[[259342,448406],[-456,-2]],[[295712,453589],[-58,-1345],[397,121],[-173,-3103],[-189,-155],[94,-2951]],[[295783,446156],[-481,-2335],[-431,-845]],[[294871,442976],[-365,419],[-214,3268]],[[231269,450376],[205,-1283],[-160,-2129]],[[231314,446964],[-897,11]],[[230417,446975],[1,1083],[-310,4]],[[297103,453501],[5,-4180],[88,63],[182,-3932]],[[297378,445452],[-156,-333]],[[297222,445119],[-108,1173],[-581,-358],[-107,-908]],[[296426,445026],[-541,-412],[-102,1542]],[[298237,453401],[8,-1301],[-328,-15],[-2,-2289],[170,-1515],[-230,-737]],[[297855,447544],[-477,-2092]],[[247949,451542],[-252,-2717]],[[247697,448825],[-205,-1009]],[[247492,447816],[-632,692]],[[246860,448508],[-476,-580],[-516,680]],[[245868,448608],[0,3252]],[[299081,453014],[27,-5277]],[[299108,447737],[6,-1575]],[[299114,446162],[-459,-104],[-560,583],[-240,903]],[[300423,448697],[-95,-429]],[[300328,448268],[-110,206]],[[300218,448474],[-189,-592],[-921,-145]],[[291926,445251],[-301,-1608],[-771,-203],[-6,-1282]],[[290848,442158],[-634,1017],[-245,2280]],[[289969,445455],[47,2798],[-244,1860]],[[160757,452819],[3,-15155]],[[160760,437664],[-2931,-15]],[[157829,437649],[50,2566],[-253,887],[-643,-3074],[-236,36],[-242,-1729],[156,-2198],[-334,192],[-289,1393],[-274,-63],[-470,1939]],[[155294,437598],[-187,3492],[-519,272]],[[154588,441362],[111,941],[-260,2964],[146,1892],[-113,2512],[387,1397],[129,1813]],[[214980,448068],[2,-6471]],[[214982,441597],[-197,8],[0,-3232]],[[214785,438373],[-1547,1]],[[213238,438374],[-73,4047]],[[213165,442421],[1,5662],[-117,1089],[3,3792]],[[213165,442421],[-2040,-26]],[[211125,442395],[-4,4869]],[[211121,447264],[21,5656]],[[188448,452855],[2,-2742],[226,-3238],[-46,-2736],[-189,-2015]],[[188441,442124],[-433,106],[-167,-983],[-443,939]],[[187398,442186],[-88,2093],[-182,-89],[-193,3078],[-4,3038],[-315,2514]],[[211121,447264],[-1902,-23]],[[189737,445043],[-2,-6109]],[[189735,438934],[-608,-2000]],[[189127,436934],[120,1271],[-305,2684],[-249,88]],[[188693,440977],[-252,1147]],[[286968,452863],[88,-6473]],[[287056,446390],[-234,-102],[-57,-1948]],[[286765,444340],[-1655,896]],[[285110,445236],[-170,121]],[[284940,445357],[-144,7506]],[[284940,445357],[-238,-844],[-1781,-169]],[[282921,444344],[-29,8518]],[[187398,442186],[-205,139],[-194,-1813],[-584,5],[-711,-4841]],[[185704,435676],[-852,-1423],[-3463,-5]],[[181389,434248],[1,18498]],[[173097,434253],[-1,-6651],[-636,-10],[-149,-2165]],[[172311,425427],[-25,2930],[-933,15],[0,3230],[-3183,-37],[0,1955],[-1457,-9]],[[166713,433511],[-57,0],[17,19239]],[[173097,452848],[0,-18595]],[[181389,434248],[-13,-16439]],[[181376,417809],[-3391,104],[-1592,99]],[[176393,418012],[-461,-9],[-438,10035],[-1,6209],[-1195,9]],[[174298,434256],[-1201,-3]],[[281230,452863],[9,-7106]],[[281239,445757],[-601,-298]],[[280638,445459],[-179,516],[-1317,-113]],[[279142,445862],[103,6951]],[[282921,444344],[4,-1186]],[[282925,443158],[-1089,-71]],[[281836,443087],[-171,12],[-426,2658]],[[154588,441362],[-303,-18],[-4,1572],[-819,-16]],[[153462,442900],[-267,5082],[-262,812],[123,4043]],[[289969,445455],[-804,-6748]],[[289165,438707],[-411,-130]],[[288754,438577],[180,478],[-59,7138]],[[288875,446193],[-56,6647]],[[288875,446193],[-721,12]],[[288154,446205],[-1098,185]],[[279142,445862],[-1549,13]],[[277593,445875],[-281,-13]],[[277312,445862],[2,4212]],[[164792,452768],[-2,-15095]],[[164790,437673],[-3709,-1]],[[161081,437672],[-321,-8]],[[166713,433511],[-9,-8230],[-71,-9],[-2,-9666],[318,13]],[[166949,415619],[45,-3525],[106,-405],[-51,-2898]],[[167049,408791],[-264,-205]],[[166785,408586],[-505,-709],[-438,-1338],[-205,182],[104,-3535],[-151,-1501]],[[165590,401685],[-469,-1590],[-343,3]],[[164778,400098],[-9,2800]],[[164769,402898],[12,2458]],[[164781,405356],[6,5108]],[[164787,410464],[3,27209]],[[253863,447010],[-4,809],[-643,-82]],[[253216,447737],[-1,2]],[[274786,450060],[0,-6514]],[[274786,443546],[-1348,42]],[[273438,443588],[-1,3974]],[[273437,447562],[3,2573]],[[273440,450135],[1346,2308]],[[245868,448608],[-3,-3243]],[[245865,445365],[-1300,22]],[[244565,445387],[1,4872]],[[249404,451036],[-5,-5898]],[[249399,445138],[-644,-16]],[[248755,445122],[-900,11]],[[247855,445133],[-158,3692]],[[226556,448067],[2,-4023]],[[226558,444044],[-753,-845],[-533,-1]],[[225272,443198],[-12,4849]],[[251329,445946],[-636,7],[1,-814]],[[250694,445139],[-1295,-1]],[[232889,450323],[0,-4862],[165,-1791]],[[233054,443670],[-1389,16]],[[231665,443686],[-256,439],[-95,2839]],[[243270,450293],[6,-6524]],[[243276,443769],[-326,-13]],[[242950,443756],[-979,-17]],[[241971,443739],[-2,6572]],[[237742,450323],[68,-6545]],[[237810,443778],[-1255,-153]],[[236555,443625],[-107,1818],[-1,4872]],[[234183,450322],[1,-4860],[144,-1818]],[[234328,443644],[-317,10]],[[234011,443654],[-957,16]],[[235153,450303],[2,-4797],[121,-1872]],[[235276,443634],[-948,10]],[[241971,443739],[-319,-4]],[[241652,443735],[-960,-14]],[[240692,443721],[-26,6583]],[[239045,450317],[53,-6615]],[[239098,443702],[0,-314]],[[239098,443388],[-1288,390]],[[240692,443721],[-320,-6]],[[240372,443715],[-1274,-13]],[[236555,443625],[-1279,9]],[[244565,445387],[-5,-3261]],[[244560,442126],[-322,12]],[[244238,442138],[-104,1623],[-858,8]],[[273437,447562],[-275,-15],[3,-1357],[-539,-11],[-3,-1320],[-265,-4]],[[272358,444855],[-272,1146]],[[272086,446001],[570,2452],[784,1682]],[[277312,445862],[-602,-34],[-476,-2456]],[[276234,443372],[-1448,-20]],[[274786,443352],[0,194]],[[247855,445133],[-29,-825],[-657,-1555],[-5,-2418]],[[247164,440335],[-1778,120]],[[245386,440455],[0,4]],[[245386,440459],[89,1581],[707,640]],[[246182,442680],[363,171],[871,2340],[76,2625]],[[300676,447525],[-94,-1308],[-254,2051]],[[246182,442680],[7,2674],[-324,11]],[[300218,448474],[-108,-2110]],[[300110,446364],[-154,-894],[-847,-110]],[[299109,445360],[5,802]],[[260465,448379],[14,-4389]],[[260479,443990],[3,-1610]],[[260482,442380],[-1130,-18]],[[259352,442362],[-1,806]],[[259351,443168],[-9,5238]],[[259351,443168],[-1136,-50],[2,-810]],[[258217,442308],[-163,-1]],[[258054,442307],[104,4029],[-102,2054]],[[258054,442307],[-490,-569],[-231,-2173],[-408,-905]],[[256925,438660],[-7,8808]],[[256918,447468],[301,934]],[[262847,444118],[-1085,-69]],[[261762,444049],[-7,4341]],[[262843,447208],[4,-3090]],[[261762,444049],[-1283,-59]],[[229132,448075],[0,-5329]],[[229132,442746],[-759,-1483],[-211,138]],[[228162,441401],[4,6681]],[[228162,441401],[-318,227]],[[227844,441628],[-643,-1180]],[[227201,440448],[0,1151],[-292,1]],[[226909,441600],[0,2456],[-351,-12]],[[230417,446975],[2,-2974],[320,-2434]],[[230739,441567],[-395,2]],[[230344,441569],[-276,747],[-936,373]],[[229132,442689],[0,57]],[[218529,448020],[-5,-6446]],[[218524,441574],[-1550,27]],[[216974,441601],[-383,9]],[[216591,441610],[1,6474]],[[216591,441610],[-1609,-13]],[[225272,443198],[0,-1617]],[[225272,441581],[-1262,6]],[[224010,441587],[-20,-2]],[[223990,441585],[-2,6447]],[[222706,448036],[25,-6450]],[[222731,441586],[-12,-6463]],[[222719,435123],[-609,-9]],[[222110,435114],[-2224,2]],[[219886,435116],[-74,6454]],[[219812,441570],[0,6451]],[[219812,441570],[-1288,4]],[[223990,441585],[-1259,1]],[[267414,445850],[-697,-80]],[[266717,445770],[-430,-32],[-394,-2264],[-479,-1510]],[[265414,441964],[1,1360]],[[265415,443324],[7,4330]],[[265749,447718],[781,161]],[[266530,447879],[6,1]],[[266536,447880],[30,6]],[[266566,447886],[16,1]],[[266582,447887],[26,6]],[[266608,447893],[806,-2043]],[[255265,442934],[-2,-3134]],[[255263,439800],[-1357,-110],[6,-1614],[-648,-80]],[[253264,437996],[-23,4868]],[[253241,442864],[-25,4873]],[[267414,445850],[546,-1925],[381,1255],[294,-1578],[-868,-836]],[[267767,442766],[-50,-4]],[[267717,442762],[-15,-1]],[[267702,442761],[-769,5],[-213,794]],[[266720,443560],[-3,2210]],[[253241,442864],[-956,-107]],[[252285,442757],[-18,3246]],[[265415,443324],[-1279,-37]],[[264136,443287],[-108,529],[-52,3572]],[[273438,443588],[0,-2864]],[[273438,440724],[-1081,8]],[[272357,440732],[1,4123]],[[299109,445360],[-23,-3357],[-140,-1618]],[[298946,440385],[-436,-421],[-482,288],[-416,-840],[-291,2723]],[[297321,442135],[350,235],[-50,1824],[-299,-181],[-100,1106]],[[256110,445860],[11,-7106]],[[256121,438754],[-158,-435]],[[255963,438319],[-386,-1051],[-314,71]],[[255263,437339],[0,2461]],[[255271,447419],[248,-1015],[591,-544]],[[256925,438660],[-559,918],[-245,-824]],[[256110,445860],[808,1608]],[[264136,443287],[1,-1079]],[[264137,442208],[-1288,-29]],[[262849,442179],[-2,1939]],[[211125,442395],[-24,-800]],[[211101,441595],[-1879,-26]],[[209222,441569],[-1,3184]],[[231665,443686],[164,-2163]],[[231829,441523],[-1090,44]],[[300704,446133],[-85,-2793],[-210,505],[295,2288]],[[300975,443507],[-208,-748],[-4,4059]],[[294871,442976],[348,-1153],[336,-2034],[-121,-1229]],[[295434,438560],[-200,-1187],[-705,-2090],[-626,-1185]],[[293903,434098],[-195,2025],[683,2086],[-173,2860]],[[294218,441069],[41,2994]],[[209222,441569],[-4,-7295]],[[209218,434274],[-2479,-59]],[[206739,434215],[-930,1]],[[300110,446364],[27,-3366],[-179,-1833],[-1042,-1242],[30,462]],[[288154,446205],[-316,-4003]],[[287838,442202],[-487,-794],[-761,-136]],[[286590,441272],[175,3068]],[[297321,442135],[207,-2884],[-531,-114]],[[296997,439137],[-298,3270],[-256,-278],[-17,2897]],[[296997,439137],[9,-62]],[[297006,439075],[21,-79]],[[297027,438996],[-1112,58],[-473,-1600],[-8,1106]],[[288754,438577],[-264,-1321]],[[288490,437256],[-133,486],[-104,2827],[-415,1633]],[[293001,442420],[-13,-2190]],[[292988,440230],[-683,-3302]],[[292305,436928],[-373,1054]],[[291932,437982],[-934,2867]],[[290998,440849],[-150,1309]],[[252285,442757],[26,-6500]],[[252311,436257],[-960,-39],[-1,-3314]],[[251350,432904],[-324,-34]],[[251026,432870],[0,3329],[-319,-14]],[[250707,436185],[-5,3838]],[[250702,440023],[-8,5116]],[[272357,440732],[-1,0]],[[272356,440732],[-569,47],[73,-1359],[-321,-13]],[[271539,439407],[-538,-38]],[[271001,439369],[3,1405],[-263,14],[8,2861]],[[270749,443649],[623,-332],[714,2684]],[[280638,445459],[-3,-3672],[463,-4],[46,-3243]],[[281144,438540],[-1140,433],[-177,-968]],[[279827,438005],[-70,1137],[-624,1848],[-379,-396]],[[278754,440594],[88,2092],[292,-302],[8,3478]],[[278754,440594],[-317,-166]],[[278437,440428],[5,1839],[-538,103],[-216,-927]],[[277688,441443],[-95,4432]],[[277688,441443],[-1,-945],[-351,-264],[-253,-2768]],[[277083,437466],[-849,-18]],[[276234,437448],[0,5924]],[[269692,442195],[16,-2668]],[[269708,439527],[-1391,120]],[[268317,439647],[-18,2605],[-150,10]],[[268149,442262],[253,825],[384,-407]],[[268786,442680],[-5,-153]],[[268781,442527],[480,-1172],[431,840]],[[266720,443560],[-15,-4583]],[[266705,438977],[-3,-1624]],[[266702,437353],[-1282,19]],[[265420,437372],[-6,4592]],[[281836,443087],[1,-1967],[-292,-2833]],[[281545,438287],[-401,253]],[[290998,440849],[-384,-1439],[-427,-3445]],[[290187,435965],[-461,1079],[82,1909],[-643,-246]],[[245386,440459],[-830,46],[4,1621]],[[285110,445236],[175,-3416],[441,-1905],[405,-536]],[[286131,439379],[-539,-2232]],[[285592,437147],[-256,304]],[[285336,437451],[-455,-615]],[[284881,436836],[-228,-951],[-463,-355]],[[284190,435530],[-1068,5402],[-197,2226]],[[286590,441272],[-78,-1277]],[[286512,439995],[-381,-616]],[[250702,440023],[-480,-176],[-57,-1256],[-306,11],[0,-1588]],[[249859,437014],[-479,1]],[[249380,437015],[-1,1587],[-610,12]],[[248769,438614],[-14,6508]],[[248769,438614],[-31,-1592],[-323,7]],[[248415,437029],[-1262,34]],[[247153,437063],[11,3272]],[[192516,434205],[-2782,5],[1,4724]],[[262849,442179],[1,-2880]],[[262850,439299],[-1082,-133]],[[261768,439166],[-6,4883]],[[261768,439166],[-323,-1]],[[261445,439165],[-639,38],[-321,533]],[[260485,439736],[-3,2644]],[[226909,441600],[-6,-1597],[-967,-298],[-621,-536],[-31,2413]],[[225284,441582],[-12,-1]],[[293006,440243],[-18,-18]],[[292988,440225],[0,5]],[[294218,441069],[-1212,-826]],[[302428,442673],[372,-1939],[-773,-264],[113,1840],[288,363]],[[271001,439369],[-263,5],[-6,-1403],[-273,-2],[-271,-1169],[-5,-1369]],[[270183,435431],[-459,41]],[[269724,435472],[-16,4055]],[[269692,442195],[936,1653],[121,-199]],[[244238,442138],[-5,-4866]],[[244233,437272],[-641,8]],[[243592,437280],[-640,13]],[[242952,437293],[-2,6463]],[[239098,443388],[2,-6149]],[[239100,437239],[-639,12]],[[238461,437251],[-646,14]],[[237815,437265],[-5,6513]],[[242952,437293],[-653,-16]],[[242299,437277],[-642,-14]],[[241657,437263],[-5,6472]],[[237815,437265],[-627,-98]],[[237188,437167],[-633,7]],[[236555,437174],[0,6451]],[[241657,437263],[-642,-12]],[[241015,437251],[-638,-8]],[[240377,437243],[-5,6472]],[[240377,437243],[-639,-2]],[[239738,437241],[-638,-2]],[[234011,443654],[-4,-6441]],[[234007,437213],[-636,14]],[[233371,437227],[-1382,-2]],[[231989,437225],[-120,575]],[[231869,437800],[88,2413],[-128,1310]],[[235276,443634],[0,-6443]],[[235276,437191],[-633,8]],[[234643,437199],[-636,14]],[[236555,437174],[-638,8]],[[235917,437182],[-641,9]],[[274786,443352],[1,-6623]],[[274787,436729],[-1339,18]],[[273448,436747],[-10,3977]],[[267702,442761],[447,-499]],[[268317,439647],[3,-645]],[[268320,439002],[-1615,-25]],[[276234,437448],[-271,-1900]],[[275963,435548],[-140,819],[-1037,201]],[[274786,436568],[1,161]],[[265420,437372],[-967,-37]],[[264453,437335],[-1,4878],[-315,-5]],[[259352,442362],[14,-4890],[-65,-6]],[[259301,437466],[-1086,-26]],[[258215,437440],[2,4868]],[[284190,435530],[0,-456]],[[284190,435074],[-1015,-1516],[-180,1961],[-470,731],[-132,1393],[-289,-77],[-14,1365],[-389,-1859]],[[281701,437072],[-156,1215]],[[155294,437598],[-138,-2080],[141,-717],[-208,-2138],[-386,312],[218,-3716],[-6,-13593]],[[154915,415666],[-1334,-12]],[[153581,415654],[-243,1901],[-703,2914],[-129,3412],[387,4770],[132,-280],[308,6363],[-131,874],[260,7292]],[[253264,437996],[-21,-1627]],[[253243,436369],[-932,-112]],[[229132,442689],[-7,-7583]],[[229125,435106],[-7,1]],[[229118,435107],[-1274,15]],[[227844,435122],[0,6506]],[[230344,441569],[400,-3784]],[[230744,437785],[23,-2699]],[[230767,435086],[-404,-540]],[[230363,434546],[0,542],[-1238,18]],[[260485,439736],[-89,-4618]],[[260396,435118],[-728,-71]],[[259668,435047],[-364,782],[-3,1637]],[[213238,438374],[-29,-4081]],[[213209,434293],[-91,-1]],[[213118,434292],[-2030,-1]],[[211088,434291],[13,7304]],[[278437,440428],[-17,-5242]],[[278420,435186],[-185,-771],[-669,-629],[-401,1395],[-70,2246]],[[277095,437427],[-12,39]],[[188693,440977],[-212,-2506],[-449,-761],[-413,552],[-140,-1426]],[[187479,436836],[-928,257],[-847,-1417]],[[258215,437440],[-1290,17]],[[256925,437457],[0,1203]],[[288490,437256],[-135,-732]],[[288355,436524],[-329,-581],[98,-1543],[-739,-1772]],[[287385,432628],[-586,684]],[[286799,433312],[-59,3514],[-251,1238],[23,1931]],[[264453,437335],[-316,-6]],[[264137,437329],[-325,1637],[-962,-17]],[[262850,438949],[0,350]],[[245386,440455],[-115,-1740],[344,-1568],[113,-1545]],[[245728,435602],[-1175,26]],[[244553,435628],[2,1613],[-322,31]],[[216974,441601],[-2,-6470],[56,-810]],[[217028,434321],[-2233,-1]],[[214795,434320],[-10,4053]],[[219886,435116],[3,-6448]],[[219889,428668],[-1545,-2]],[[218344,428666],[-1309,-44]],[[217035,428622],[-7,5699]],[[304069,440802],[121,-1847],[-424,-197],[303,2044]],[[227844,435122],[-1276,-6]],[[226568,435116],[-6,2365]],[[226562,437481],[639,2967]],[[211088,434291],[-535,-10]],[[210553,434281],[-1335,-7]],[[226562,437481],[-534,-2005],[-733,-3605]],[[225295,431871],[-11,3241]],[[225284,435112],[0,6470]],[[225284,435112],[-1212,5]],[[224072,435117],[-74,0]],[[223998,435117],[12,6470]],[[223998,435117],[-1279,6]],[[231869,437800],[-1125,-15]],[[189127,436934],[-680,-1517],[-235,-1307],[316,-2474],[-193,-1471],[-256,343]],[[188079,430508],[-272,1154]],[[187807,431662],[-214,1796],[-114,3378]],[[279827,438005],[-264,-1317],[-1,-4191]],[[279562,432497],[-1143,101]],[[278419,432598],[1,2588]],[[157829,437649],[146,-436],[-429,-4820],[-421,-4012],[145,-2152],[-836,-2813],[-185,-2444]],[[156249,420972],[222,-710],[144,-5037]],[[156615,415225],[-1701,-22],[1,463]],[[293524,432082],[-325,588]],[[293199,432670],[123,2992],[-28,2071],[-288,2510]],[[293903,434098],[-379,-2016]],[[291932,437982],[-383,-2133]],[[291549,435849],[-417,-3054],[-322,-187]],[[290810,432608],[-554,3400]],[[290256,436008],[-69,-43]],[[272356,440732],[-5,-6697]],[[272351,434035],[-74,-1524],[-634,144]],[[271643,432655],[-114,1381]],[[271529,434036],[10,5371]],[[273448,436747],[0,-2714],[-243,-5]],[[273205,434028],[-854,7]],[[247153,437063],[-6,-1623]],[[247147,435440],[-963,88]],[[246184,435528],[-456,35]],[[245728,435563],[0,39]],[[250707,436185],[-548,-8],[-300,837]],[[293219,434221],[-863,2534]],[[292356,436755],[-51,173]],[[292988,440225],[220,-3323],[11,-2681]],[[286799,433312],[-277,-2753],[-204,-490]],[[286318,430069],[-412,1992]],[[285906,432061],[44,1187],[-292,2181],[-66,1718]],[[255263,437339],[2,-2898]],[[255265,434441],[-1688,-234]],[[253577,434207],[-321,-56]],[[253256,434151],[-13,2218]],[[261445,439165],[-77,-4820]],[[261368,434345],[-859,-54]],[[260509,434291],[-113,827]],[[294554,427872],[-111,3761]],[[294443,431633],[-93,1192],[769,-305],[174,1128],[1072,-46],[376,298],[903,2985],[-441,-2838],[-371,-1388],[292,-372],[379,1926],[532,898],[205,-1023],[552,1761],[82,-626],[-1554,-3632],[-192,472],[-405,-1606],[-231,346],[-428,-1336],[-389,99],[-351,-945],[-238,353],[-532,-1102]],[[269724,435472],[-278,-7],[9,-1349]],[[269455,434116],[-813,51]],[[268642,434167],[-292,19]],[[268350,434186],[-30,4816]],[[256925,437457],[-1,-4839]],[[256924,432618],[-156,-1387],[-315,-5],[2,-1882]],[[256455,429344],[-469,-1]],[[255986,429343],[-23,8976]],[[271529,434036],[-1228,59]],[[270301,434095],[-118,1336]],[[262850,438949],[1,-4898]],[[262851,434051],[1,-1244]],[[262852,432807],[-755,-89]],[[262097,432718],[-730,-14]],[[261367,432704],[1,1641]],[[268350,434186],[-789,-60]],[[267561,434126],[-857,-30]],[[266704,434096],[-2,3257]],[[281701,437072],[-194,-834],[74,-2825],[-363,-706],[-462,-3035],[47,-403]],[[280803,429269],[26,-143]],[[280829,429126],[-1257,-6]],[[279572,429120],[-10,3377]],[[192649,434205],[0,-3424]],[[192649,430781],[-728,405],[-315,-879],[-787,-888],[-261,131],[-420,-1293]],[[190138,428257],[-340,-1866],[-343,-529],[-618,1479],[-69,1143],[-267,-1698],[-177,190]],[[188324,426976],[-245,3532]],[[284190,435074],[-613,-3675]],[[283577,431399],[-884,-2182]],[[282693,429217],[-399,259],[-333,-970],[-479,890]],[[281482,429396],[-679,-127]],[[290256,436008],[-428,-2351]],[[289828,433657],[-466,-1940],[-519,-917]],[[288843,430800],[-280,2542],[218,671],[-426,2511]],[[264137,437329],[-1,-3255],[-160,-7]],[[263976,434067],[-1125,-16]],[[249380,437015],[-1,-3256]],[[249379,433759],[-966,19]],[[248413,433778],[2,3251]],[[214795,434320],[-2,-28]],[[214793,434292],[-1584,1]],[[255986,429343],[-721,8]],[[255265,429351],[0,5090]],[[292587,430897],[-395,1442]],[[292192,432339],[-104,1880],[-539,1630]],[[292356,436755],[-165,-2166],[367,-971],[29,-2721]],[[231989,437225],[3,-1985]],[[231992,435240],[-431,236],[-484,-1309],[-310,919]],[[164787,410464],[-407,-275]],[[164380,410189],[102,1081],[5,3235],[-258,1376],[-24,1351],[-366,545],[-472,2488],[-707,1250],[-457,-2310],[-371,1200],[1,3539],[-743,-22]],[[161090,423922],[22,8573],[-31,5177]],[[161090,423922],[-473,4]],[[160617,423926],[-1427,-349],[-831,-1032],[-549,336],[-407,-1138],[-271,689],[-883,-1460]],[[285336,437451],[-167,-4196],[366,397],[371,-1591]],[[286318,430069],[-895,-2188]],[[285423,427881],[-525,-887],[-165,332]],[[284733,427326],[26,188]],[[284759,427514],[265,1448],[124,3090]],[[285148,432052],[-223,1660],[-44,3124]],[[259668,435047],[-2,-813]],[[259666,434234],[-620,-58],[0,-1610]],[[259046,432566],[-835,5]],[[258211,432571],[4,4869]],[[226568,435116],[1,-6480]],[[226569,428636],[-1260,-4]],[[225309,428632],[-14,-1]],[[225295,428631],[0,3240]],[[258211,432571],[-314,19]],[[257897,432590],[-973,28]],[[277095,437427],[-6,-9328]],[[277089,428099],[-1270,90]],[[275819,428189],[-27,3362]],[[275792,431551],[-19,2706],[190,1291]],[[278419,432598],[1,-2521],[-655,-4576]],[[277765,425501],[-675,2580]],[[277090,428081],[-1,18]],[[266704,434096],[-266,-3234]],[[266438,430862],[-1015,34]],[[265423,430896],[-1,1871]],[[265422,432767],[-2,4605]],[[265422,432767],[-638,-293],[0,-813],[-644,-36]],[[264140,431625],[-164,2442]],[[243592,437280],[-8,-4878]],[[243584,432402],[-1283,-20]],[[242301,432382],[-2,4895]],[[244553,435628],[-3,-4868],[-104,1]],[[244446,430761],[-862,15]],[[243584,430776],[0,1626]],[[242301,432382],[-1281,-16]],[[241020,432366],[-5,4885]],[[238461,437251],[3,-4896]],[[238464,432355],[-1277,-24]],[[237187,432331],[1,4836]],[[239738,437241],[4,-4883]],[[239742,432358],[-1278,-3]],[[241020,432366],[-1278,-8]],[[233371,437227],[-2,-4811]],[[233369,432416],[-1193,2]],[[232176,432418],[-184,2822]],[[234643,437199],[-2,-4800]],[[234641,432399],[-1272,17]],[[235917,437182],[-1,-4805]],[[235916,432377],[-1275,22]],[[237187,432331],[-1271,46]],[[187807,431662],[-565,-723],[-182,1854],[-716,-2763]],[[186344,430030],[-640,5646]],[[248413,433778],[-2,-4886]],[[248411,428892],[-1277,44]],[[247134,428936],[13,6504]],[[285148,432052],[-398,107],[-1152,-1498]],[[283598,430661],[-21,738]],[[251026,432870],[-1183,-88]],[[249843,432782],[68,968],[-532,9]],[[292970,430541],[-431,-269]],[[292539,430272],[48,625]],[[293219,434221],[-249,-3680]],[[274786,436568],[0,-4189]],[[274786,432379],[-1580,38]],[[273206,432417],[-1,1611]],[[288843,430800],[-376,-510]],[[288467,430290],[-415,-967]],[[288052,429323],[-667,3305]],[[275792,431551],[-1004,-68]],[[274788,431483],[-2,896]],[[253256,434151],[34,-7012],[-625,-15]],[[252665,427124],[-321,-16],[-28,2626],[-961,-79]],[[251355,429655],[-5,3249]],[[290810,432608],[-339,-2310]],[[290471,430298],[-220,-1439],[-616,-2210]],[[289635,426649],[-20,311]],[[289615,426960],[68,3155],[341,1723],[-196,1819]],[[292192,432339],[-162,208],[-116,-3152]],[[291914,429395],[-248,-1212]],[[291666,428183],[-265,1560],[-471,-723]],[[290930,429020],[-459,1278]],[[186344,430030],[155,-1074],[97,-4631]],[[186596,424325],[-109,-154],[37,-2824],[149,-2529],[-95,-2971]],[[186578,415847],[-452,-1998],[-1271,-19],[-3480,52]],[[181375,413882],[1,3927]],[[245728,435563],[-37,-2695],[-356,-1884],[-63,-2389]],[[245272,428595],[-424,1079]],[[244848,429674],[-402,1087]],[[246184,435528],[-12,-8061]],[[246172,427467],[-319,64]],[[245853,427531],[-783,-26]],[[245070,427505],[202,1090]],[[247134,428936],[-3,-1616]],[[247131,427320],[-959,147]],[[270301,434095],[8,-6024]],[[270309,428071],[-263,-11],[2,-1850]],[[270048,426210],[-326,-246]],[[269722,425964],[-6,3195],[-215,1865],[-46,3092]],[[232176,432418],[-58,-2195]],[[232118,430223],[-1754,3]],[[230364,430226],[-1,4320]],[[227844,435122],[-1,-6484]],[[227843,428638],[-1271,-2]],[[226572,428636],[-3,0]],[[225295,428631],[-1221,12]],[[224074,428643],[-2,6474]],[[222110,435114],[25,-6995]],[[222135,428119],[-630,263]],[[221505,428382],[-943,281]],[[220562,428663],[-673,5]],[[224074,428643],[-9,-170]],[[224065,428473],[-507,-690],[-760,186]],[[222798,427969],[-663,150]],[[229118,435107],[-7,-6481]],[[229111,428626],[-1268,12]],[[230364,430226],[0,-4858]],[[230364,425368],[-1251,12]],[[229113,425380],[-2,3246]],[[260509,434291],[14,-6500]],[[260523,427791],[-630,-27]],[[259893,427764],[-208,-13],[-19,6483]],[[255265,429351],[-1,-4575]],[[255264,424776],[-1140,-98]],[[254124,424678],[-508,40],[-39,9489]],[[261367,432704],[3,-4889],[-318,-15]],[[261052,427800],[-529,-9]],[[210532,425375],[-1577,18],[-7,-9746]],[[208948,415647],[-2260,-10]],[[206688,415637],[-254,-1]],[[206434,415636],[-6,4869]],[[206428,420505],[-5,1629],[310,-3],[6,12084]],[[210553,434281],[-21,-8906]],[[217035,428622],[-272,6]],[[216763,428628],[-1968,-10]],[[214795,428618],[0,969]],[[214795,429587],[-2,4705]],[[201978,423908],[55,-1918],[16,-7760]],[[202049,414230],[-1129,-108]],[[200920,414122],[-15,3214]],[[200905,417336],[-2,2479],[-1118,-26]],[[199785,419789],[29,5937],[320,1081],[-11,7495]],[[201402,434297],[26,-1459],[436,-670],[159,-1784],[-185,-3985],[140,-2491]],[[204199,424684],[-292,-2572],[-164,468],[-589,-929],[-98,691],[-519,-162],[-107,1114],[-340,-603],[-112,1217]],[[203264,434210],[15,-1191],[530,-3758],[390,-4577]],[[199785,419789],[-1878,-31],[-2612,18]],[[195295,419776],[7,8024]],[[195302,427800],[-6,6461]],[[213087,423794],[-321,0]],[[212766,423794],[-1910,-39]],[[210856,423755],[-5,1618],[-319,2]],[[213118,434292],[7,-4708]],[[213125,429584],[-38,-5790]],[[214795,429587],[-1670,-3]],[[195302,427800],[-315,562],[-118,3255],[-531,-11],[-250,-2208],[-269,1599],[-807,-1146],[-299,857]],[[192713,430708],[-64,73]],[[176393,418012],[113,-5116],[-101,-2197],[49,-2635],[-263,-2403],[2,-5633]],[[176193,400028],[-1933,-7]],[[174260,400021],[29,16934],[-18,16297],[27,1004]],[[174260,400021],[-2037,36],[-1236,-1303]],[[170987,398754],[153,2224],[-118,2607],[482,3073],[266,298],[86,1838],[-89,2169],[75,3206],[-204,1481]],[[171638,415650],[673,9777]],[[206428,420505],[-1667,-25]],[[204761,420480],[-562,4204]],[[259893,427764],[3,-1604]],[[259896,426160],[-839,-53]],[[259057,426107],[-11,6459]],[[268642,434167],[-7,-5295]],[[268635,428872],[-365,-116]],[[268270,428756],[-705,-39]],[[267565,428717],[-4,5409]],[[254124,424678],[8,-1608]],[[254132,423070],[-1470,-13]],[[252662,423057],[3,4067]],[[269722,425964],[-798,-95]],[[268924,425869],[-10,2970],[-279,33]],[[267565,428717],[-860,-299]],[[266705,428418],[-211,275],[-56,2169]],[[271643,432655],[-7,-4586]],[[271636,428069],[-1327,2]],[[264140,431625],[-158,-803],[1,-2439]],[[263983,428383],[-165,-1]],[[263818,428382],[0,807],[-964,-2]],[[262854,429187],[-2,3620]],[[273206,432417],[-2,-3235]],[[273204,429182],[-418,-80],[-224,-1340]],[[272562,427762],[-923,-316]],[[271639,427446],[-3,623]],[[249843,432782],[-231,-3232]],[[249612,429550],[-356,-3635],[-528,-731]],[[248728,425184],[-4,2060],[-320,38],[7,1610]],[[289615,426960],[-382,-1335]],[[289233,425625],[-268,2542],[-150,-335],[-348,2458]],[[171638,415650],[-2672,-44],[-2017,13]],[[288052,429323],[-372,-1084]],[[287680,428239],[-781,-2648],[-748,-727]],[[286151,424864],[-265,1103]],[[285886,425967],[-463,1914]],[[274788,431483],[-1,-3962]],[[274787,427521],[-415,-1047]],[[274372,426474],[-540,317]],[[273832,426791],[-154,2374],[-474,17]],[[251355,429655],[-154,-1644],[-415,-1270],[-378,-47]],[[250408,426694],[-162,394],[-9,2476],[-625,-14]],[[262854,429187],[-1,-2903]],[[262853,426284],[-742,-74]],[[262111,426210],[-14,6508]],[[265423,430896],[0,-3263]],[[265423,427633],[-634,-31],[-321,800],[-485,-19]],[[188324,426976],[-114,-601]],[[188210,426375],[-465,-891],[-618,-2134],[-142,895],[-389,80]],[[293524,432082],[-12,-1259],[-325,-351]],[[293187,430472],[-27,1524]],[[293160,431996],[39,674]],[[262111,426210],[-369,-18]],[[261742,426192],[-685,-6]],[[261057,426186],[-5,1614]],[[294554,427872],[-875,-1167]],[[293679,426705],[-79,470]],[[293600,427175],[63,323]],[[293663,427498],[119,2121],[-126,535]],[[293656,430154],[90,1670],[410,854],[287,-1045]],[[257897,432590],[-1,-3261]],[[257896,429329],[-463,33],[-65,-3266]],[[257368,426096],[-903,15]],[[256465,426111],[-10,3233]],[[259057,426107],[-583,-24]],[[258474,426083],[2,2440],[-422,-1],[-158,807]],[[279572,429120],[-482,-6118]],[[279090,423002],[-351,-508],[-158,819],[-661,807],[-155,1381]],[[292539,430272],[83,-963]],[[292622,429309],[-118,-889]],[[292504,428420],[-590,975]],[[233369,432416],[31,-5977]],[[233400,426439],[-1091,87]],[[232309,426526],[-329,3028],[138,669]],[[234641,432399],[38,-6061]],[[234679,426338],[-801,63]],[[233878,426401],[-478,38]],[[235916,432377],[-1,-6119]],[[235915,426258],[-449,10]],[[235466,426268],[-787,70]],[[243584,430776],[5,-4002]],[[243589,426774],[-630,136]],[[242959,426910],[-660,-98]],[[242299,426812],[2,5570]],[[242299,426812],[-476,-61]],[[241823,426751],[-800,-120]],[[241023,426631],[-3,5735]],[[237187,432331],[-2,-6015]],[[237185,426316],[-604,-38]],[[236581,426278],[-666,-20]],[[238464,432355],[-1,-5921]],[[238463,426434],[-606,-50]],[[237857,426384],[-672,-68]],[[239742,432358],[1,-5855]],[[239743,426503],[-772,-67]],[[238971,426436],[-508,-2]],[[241023,426631],[-213,-26]],[[240810,426605],[-1067,-102]],[[284759,427514],[-273,768],[-697,261]],[[283789,428543],[-185,151],[-6,1967]],[[293187,430472],[-271,-1807],[244,3331]],[[195295,419776],[-1,-10465]],[[195294,409311],[0,-3031]],[[195294,406280],[-156,-665],[-2555,-5]],[[192583,405610],[1,135]],[[192584,405745],[-39,1805],[122,2542],[304,1923],[-230,5]],[[192741,412020],[-28,18688]],[[275819,428189],[-81,-1216],[-510,-2451]],[[275228,424522],[-441,-3]],[[274787,424519],[0,3002]],[[282497,422685],[-451,359],[271,1888],[-71,939],[431,2360],[16,986]],[[283789,428543],[-584,-2082],[-708,-3776]],[[192741,412020],[-2481,120]],[[190260,412140],[-95,1614]],[[190165,413754],[-27,14503]],[[266705,428418],[4,-3381]],[[266709,425037],[-283,-21]],[[266426,425016],[-1003,645]],[[265423,425661],[0,1972]],[[292970,430541],[-211,-2552],[-210,-378],[73,1698]],[[245070,427505],[-470,-582],[-146,-1016],[115,-2813],[-151,-420]],[[244418,422674],[-829,4100]],[[293663,427498],[-315,245]],[[293348,427743],[-288,1615]],[[293060,429358],[139,999],[457,-203]],[[290930,429020],[33,-2516],[-174,-1499],[76,-1477]],[[290865,423528],[-301,-1443],[-241,-92]],[[290323,421993],[-332,1496],[-16,2220],[-340,940]],[[289233,425625],[-418,-2203]],[[288815,423422],[-127,532]],[[288688,423954],[-1008,4285]],[[232309,426526],[155,-1143]],[[232464,425383],[-995,-12]],[[231469,425371],[-1105,-3]],[[291666,428183],[-6,-1402]],[[291660,426781],[-177,-793],[187,-1217],[-446,-2170]],[[291224,422601],[-359,927]],[[252662,423057],[2,-2183]],[[252664,420874],[-322,-1]],[[252342,420873],[-1598,9]],[[250744,420882],[-321,803]],[[250423,421685],[-15,5009]],[[214795,428618],[0,-4795]],[[214795,423823],[-1708,-29]],[[250423,421685],[-945,-94]],[[249478,421591],[-311,-17],[-6,2159],[-579,14]],[[248582,423747],[146,1437]],[[282497,422685],[136,-2142]],[[282633,420543],[-450,-3766]],[[282183,416777],[-753,1929]],[[281430,418706],[-282,1104],[-60,1366]],[[281088,421176],[343,3266],[-54,1256]],[[281377,425698],[-185,2188],[290,1510]],[[281088,421176],[-85,-1011],[-408,1094],[-38,-1088],[-480,1549]],[[280077,421720],[157,810],[68,2530],[527,4066]],[[293348,427743],[-53,-1237],[-451,497],[216,2355]],[[256465,426111],[5,-1623]],[[256470,424488],[-1206,27]],[[255264,424515],[0,261]],[[292504,428420],[-134,-1705]],[[292370,426715],[-710,66]],[[258474,426083],[-4,-2412]],[[258470,423671],[-889,5]],[[257581,423676],[-3,2416],[-210,4]],[[273832,426791],[-165,-804],[-57,-2449]],[[273610,423538],[-915,163]],[[272695,423701],[15,2450],[-148,1611]],[[263818,428382],[2,-6071],[59,-79]],[[263879,422232],[-1,-5]],[[263878,422227],[-1029,-28]],[[262849,422199],[4,4085]],[[280077,421720],[-106,-1566]],[[279971,420154],[-653,120],[-455,659]],[[278863,420933],[227,2069]],[[248582,423747],[-330,-1227],[-73,-1405],[-363,-2059]],[[247816,419056],[-702,92],[4,1628]],[[247118,420776],[13,6544]],[[268924,425869],[-64,-3813],[-274,84]],[[268586,422140],[-515,158],[-254,1409]],[[267817,423707],[174,1059],[2,2875],[277,1115]],[[267817,423707],[-635,190]],[[267182,423897],[2,1173],[-475,-33]],[[220562,428663],[2,-4872],[-317,7],[0,-1627]],[[220247,422171],[-287,-23]],[[219960,422148],[-1562,-10]],[[218398,422138],[-52,0]],[[218346,422138],[-2,6528]],[[225309,428632],[0,-6478]],[[225309,422154],[-1242,1]],[[224067,422155],[-2,6318]],[[221505,428382],[3,-6212]],[[221508,422170],[-1261,1]],[[218346,422138],[-1521,20]],[[216825,422158],[-55,-2]],[[216770,422156],[-7,6472]],[[216770,422156],[-1975,-23]],[[214795,422133],[0,1690]],[[227843,428638],[0,-6483]],[[227843,422155],[-1260,3]],[[226583,422158],[-9,0]],[[226574,422158],[-2,6478]],[[229113,425380],[-8,-3237]],[[229105,422143],[-1262,12]],[[226574,422158],[-1253,-4]],[[225321,422154],[-12,0]],[[284733,427326],[-651,-856],[-995,-3406],[-367,-2037]],[[282720,421027],[-87,-484]],[[190165,413754],[-530,18],[-2,802],[-456,2164],[59,2009],[-250,2239],[-310,-14],[-357,1412],[-183,1615],[74,2376]],[[224067,422155],[-8,0]],[[224059,422155],[-1261,5]],[[222798,422160],[0,5809]],[[265423,425661],[-341,-1036]],[[265082,424625],[-938,-40],[1,-1903],[-266,-450]],[[222798,422160],[-1257,8]],[[221541,422168],[-33,2]],[[278863,420933],[-360,-3256],[-302,-1293]],[[278201,416384],[-562,1959],[-401,-1171],[-297,845],[-366,-25]],[[276575,417992],[19,1314]],[[276594,419306],[179,812],[290,5226],[-200,1084],[227,1653]],[[288688,423954],[-466,-3820]],[[288222,420134],[-493,-1946]],[[287729,418188],[-773,3321]],[[286956,421509],[-805,3355]],[[276594,419306],[-123,1029],[-749,1490],[-494,2697]],[[271639,427446],[-58,-3551],[-110,16]],[[271471,423911],[-1324,215]],[[270147,424126],[-99,2084]],[[272695,423701],[-15,-2420],[-175,-1661]],[[272505,419620],[-793,132]],[[271712,419752],[19,2733],[-268,49],[8,1377]],[[285886,425967],[-397,-1498],[304,-5190]],[[285793,419279],[-424,-1382]],[[285369,417897],[-35,1119],[-345,857]],[[284989,419873],[-161,1874]],[[284828,421747],[-318,1084],[208,1376],[-107,1919],[122,1200]],[[261057,426186],[8,-3496]],[[261065,422690],[-374,7]],[[260691,422697],[-791,-21]],[[259900,422676],[0,530]],[[259900,423206],[-4,2954]],[[292731,427719],[-75,-1794],[-401,-1052],[179,2727],[297,119]],[[245853,427531],[-16,-6606]],[[245837,420925],[-6,-1698]],[[245831,419227],[-1653,137]],[[244178,419364],[22,898]],[[244200,420262],[218,2412]],[[274787,424519],[3,-1461]],[[274790,423058],[-309,-66]],[[274481,422992],[90,1247],[-199,2235]],[[247118,420776],[-1281,149]],[[284828,421747],[-989,-927],[-267,651],[-693,-2144]],[[282879,419327],[-159,1700]],[[244200,420262],[-1263,158]],[[242937,420420],[2,812]],[[242939,421232],[20,5678]],[[290323,421993],[609,-3619]],[[290932,418374],[-696,-1839]],[[290236,416535],[-114,1663]],[[290122,418198],[-1307,5224]],[[292370,426715],[-184,-1985],[143,-700]],[[292329,424030],[-474,-3179],[-254,-504]],[[291601,420347],[-383,1322],[6,932]],[[242939,421232],[-1108,36]],[[241831,421268],[-6,813]],[[241825,422081],[-2,4670]],[[274481,422992],[82,-1388],[-230,-2519]],[[274333,419085],[-58,-527]],[[274275,418558],[-502,43]],[[273773,418601],[49,4903],[-212,34]],[[241825,422081],[-931,-55]],[[240894,422026],[21,2915],[-105,1664]],[[240894,422026],[-478,-14]],[[240416,422012],[1,803],[-1426,-54]],[[238991,422761],[-20,3675]],[[233878,426401],[60,-5898]],[[233938,420503],[-1042,58]],[[232896,420561],[-163,921],[-269,3901]],[[238991,422761],[0,-2171]],[[238991,420590],[-1104,-44]],[[237887,420546],[-30,5838]],[[235466,426268],[95,-3437]],[[235561,422831],[-21,-4851]],[[235540,417980],[-1218,74]],[[234322,418054],[-79,2428],[-305,21]],[[190260,412140],[-1085,14]],[[189175,412154],[-1095,-4]],[[188080,412150],[-519,2499],[-397,-2608],[-336,-472],[101,2059],[-351,2219]],[[237887,420546],[-2,-2440]],[[237885,418106],[-1261,68]],[[236624,418174],[7,4610]],[[236631,422784],[-50,3494]],[[270147,424126],[-32,-4044]],[[270115,420082],[-784,126],[-762,580]],[[268569,420788],[17,1352]],[[262849,422199],[1,-796]],[[262850,421403],[-1157,-62]],[[261693,421341],[-3,1350]],[[261690,422691],[52,3501]],[[236631,422784],[-1070,47]],[[261690,422691],[-625,-1]],[[259900,423206],[-1060,-73],[0,-541]],[[258840,422592],[-370,1079]],[[257581,423676],[-3,-4054]],[[257578,419622],[-1105,9]],[[256473,419631],[1,2822]],[[256474,422453],[-4,2035]],[[232896,420561],[7,-55]],[[232903,420506],[-1276,-7]],[[231627,420499],[-157,10]],[[231470,420509],[-1,4862]],[[286956,421509],[-435,-1129],[-728,-1101]],[[266426,425016],[-87,-5114]],[[266339,419902],[-1291,820]],[[265048,420722],[34,3903]],[[210856,423755],[-18,-8096],[-651,-3]],[[210187,415656],[-1239,-9]],[[230364,425368],[0,-4857]],[[230364,420511],[0,-4861]],[[230364,415650],[-953,8]],[[229411,415658],[-308,1]],[[229103,415659],[2,6484]],[[231470,420509],[-1106,2]],[[267401,418295],[-101,-658]],[[267300,417637],[-828,69]],[[266472,417706],[25,2123],[-158,73]],[[267182,423897],[1,-3714],[212,-4],[6,-1884]],[[255264,424515],[-14,-6129]],[[255250,418386],[-5,-4933]],[[255245,413453],[-1127,-59]],[[254118,413394],[14,9676]],[[204761,420480],[44,-3995],[-107,-2111]],[[204698,414374],[-40,-1499]],[[204658,412875],[-515,-982],[-138,-1866]],[[204005,410027],[-269,-196],[-186,2235],[-440,1922],[-526,245]],[[202584,414233],[-535,-3]],[[265048,420722],[-23,-1666]],[[265025,419056],[-1141,243]],[[263884,419299],[-6,2928]],[[276575,417992],[2,-1690],[-338,-982]],[[276239,415320],[-807,669],[-645,-1057]],[[274787,414932],[1,1006]],[[274788,415938],[-1,2667]],[[274787,418605],[3,4453]],[[256474,422453],[-391,-1026],[-571,-2640],[86,-782]],[[255598,418005],[-348,381]],[[292681,417933],[-2,100]],[[292679,418033],[-411,-199],[-60,940],[-392,65],[-407,-1734]],[[291409,417105],[-97,1099]],[[291312,418204],[289,2143]],[[292329,424030],[617,-741],[71,-1974],[-164,-3756],[-172,374]],[[271712,419752],[-260,-1288]],[[271452,418464],[-1312,274]],[[270140,418738],[-25,1344]],[[290122,418198],[-263,-1712]],[[289859,416486],[-319,873],[49,-1506],[-196,-651]],[[289393,415202],[-235,1650]],[[289158,416852],[-265,413],[-399,2752],[-272,117]],[[160617,423926],[82,-1783],[339,-681],[-59,-1870],[-213,-1153]],[[160766,418439],[-393,-947],[-168,-2179],[-364,-1740],[-738,-94],[-15,-1615]],[[159088,411864],[-2483,10]],[[156605,411874],[10,3351]],[[164380,410189],[-1412,-44],[-74,-533],[-535,1856],[-381,-2584]],[[161978,408884],[-186,-741]],[[161792,408143],[-928,5114],[-31,2656],[120,1726],[-187,800]],[[268569,420788],[-30,-2813]],[[268539,417975],[-1138,320]],[[214795,422133],[0,-6444]],[[214795,415689],[6,-7987]],[[214801,407702],[-2099,-116]],[[212702,407586],[-2,8093],[66,8115]],[[212702,407586],[-979,-41]],[[211723,407545],[-1541,11]],[[210182,407556],[3,3232]],[[210185,410788],[2,4868]],[[249478,421591],[4,-3680]],[[249482,417911],[-1008,385],[-87,-647]],[[248387,417649],[-390,-864],[-421,-125],[-193,1284]],[[247383,417944],[433,1112]],[[273773,418601],[-955,197]],[[272818,418798],[-313,822]],[[258840,422592],[0,-2942]],[[258840,419650],[1,-653]],[[258841,418997],[-1263,-39]],[[257578,418958],[0,664]],[[291312,418204],[-380,170]],[[259900,422676],[0,-2968]],[[259900,419708],[-1060,-58]],[[274787,418605],[-454,480]],[[254118,413394],[-1462,-13]],[[252656,413381],[8,7493]],[[240416,422012],[-1,-5688]],[[240415,416324],[-1409,-76]],[[239006,416248],[-15,4342]],[[236624,418174],[-6,-1893]],[[236618,416281],[-1077,81]],[[235541,416362],[-1,1618]],[[260691,422697],[7,-5629]],[[260698,417068],[-1,-2446]],[[260697,414622],[-797,-40]],[[259900,414582],[0,5126]],[[261693,421341],[13,-4278]],[[261706,417063],[-1008,5]],[[256473,419631],[4,-4874]],[[256477,414757],[-917,-11]],[[255560,414746],[38,3259]],[[263884,419299],[17,-5164]],[[263901,414135],[-164,-21]],[[263737,414114],[-912,-29]],[[262825,414085],[5,1641]],[[262830,415726],[20,5677]],[[225321,422154],[-1,-6473]],[[225320,415681],[-642,-7]],[[224678,415674],[-618,2]],[[224060,415676],[-1,6479]],[[224060,415676],[-949,-1]],[[223111,415675],[-312,-4]],[[222799,415671],[-1,6489]],[[226583,422158],[-2,-6488]],[[226581,415670],[-307,0]],[[226274,415670],[-954,11]],[[216825,422158],[-7,-6476]],[[216818,415682],[-238,-3]],[[216580,415679],[-1785,10]],[[221541,422168],[6,-6503]],[[221547,415665],[-1532,-5]],[[220015,415660],[-43,2]],[[219972,415662],[-12,6486]],[[227843,422155],[-2,-6487]],[[227841,415668],[-1260,2]],[[229103,415659],[-1262,9]],[[219972,415662],[-1519,9]],[[218453,415671],[-56,3]],[[218397,415674],[1,6464]],[[218397,415674],[-1579,8]],[[222799,415671],[-1245,-6]],[[221554,415665],[-7,0]],[[241831,421268],[7,-4945]],[[241838,416323],[-1399,2]],[[240439,416325],[-24,-1]],[[284989,419873],[-135,-1158],[-365,-437],[-280,-1345]],[[284209,416933],[-135,-748],[-607,-656],[-188,-939]],[[283279,414590],[-400,4737]],[[250744,420882],[11,-4342]],[[250755,416540],[4,-2437],[-209,-17]],[[250550,414086],[-738,301],[-265,799]],[[249547,415186],[-65,2725]],[[281430,418706],[-459,-6339],[-226,-1900]],[[280745,410467],[-1192,6]],[[279553,410473],[143,1890],[-17,4331],[292,3460]],[[287729,418188],[-193,-522],[-134,-4476],[-402,-2750]],[[287000,410440],[-272,4]],[[286728,410444],[-19,0]],[[286709,410444],[-635,4132],[-197,2069],[-508,1252]],[[262830,415726],[-1089,-10]],[[261741,415716],[-35,1347]],[[242937,420420],[-5,-5731]],[[242932,414689],[-936,53]],[[241996,414742],[-158,1581]],[[283279,414590],[33,-4171]],[[283312,410419],[-28,0]],[[283284,410419],[-1756,39]],[[281528,410458],[270,1944],[385,4375]],[[279553,410473],[-342,-2]],[[279211,410471],[-1285,-23]],[[277926,410448],[-70,2461],[345,3475]],[[252342,420873],[-474,-4214]],[[251868,416659],[-1113,-119]],[[247383,417944],[-442,-2539]],[[246941,415405],[-262,-106],[-246,2264],[-607,13]],[[245826,417576],[5,1651]],[[252656,413381],[-31,-1626]],[[252625,411755],[-759,5]],[[251866,411760],[2,4899]],[[270140,418738],[-33,-4034],[-98,-688]],[[270009,414016],[-637,319]],[[269372,414335],[-891,172]],[[268481,414507],[58,3468]],[[266472,417706],[-35,-1885]],[[266437,415821],[-1449,559]],[[264988,416380],[37,2676]],[[239006,416248],[0,-1219]],[[239006,415029],[-1115,-150]],[[237891,414879],[-6,3227]],[[206434,415636],[-263,-1609]],[[206171,414027],[-698,-18]],[[205473,414009],[-2,412],[-773,-47]],[[231627,420499],[-1,-4856]],[[231626,415643],[-637,4]],[[230989,415647],[-625,3]],[[232903,420506],[433,-2548],[-67,-1276],[313,-1051]],[[233582,415631],[-87,0]],[[233495,415631],[-1249,8]],[[232246,415639],[-620,4]],[[234322,418054],[138,-4323]],[[234460,413731],[-255,-671],[-623,2571]],[[244178,419364],[30,-3037],[165,-1715]],[[244373,414612],[-1128,56]],[[243245,414668],[-313,21]],[[289158,416852],[-454,-2262],[-196,-1986]],[[288508,412604],[-541,-2144]],[[287967,410460],[-967,-20]],[[286709,410444],[-918,-3]],[[285791,410441],[-606,-7]],[[285185,410434],[-592,-13]],[[284593,410421],[124,2546],[-179,2926],[-329,1040]],[[200905,417336],[-779,-15],[-5,-3273],[-315,52],[0,-1664],[-1412,-62],[0,-2430],[-1717,-16],[1,-809],[-1384,192]],[[272795,414723],[-423,-10],[-218,-1045],[-319,59],[-5,-1092],[-317,67]],[[271513,412702],[-96,1662],[35,4100]],[[272818,418798],[-23,-4075]],[[259900,414582],[-209,-308]],[[259691,414274],[-843,-20]],[[258848,414254],[-7,4743]],[[257578,418958],[2,-4763]],[[257580,414195],[0,-1081]],[[257580,413114],[-876,36]],[[256704,413150],[-229,10],[2,1597]],[[245826,417576],[-7,-4829]],[[245819,412747],[1,-1636],[-1253,29]],[[244567,411140],[-193,1581],[-1,1891]],[[264988,416380],[-41,-2986]],[[264947,413394],[-298,808],[-748,-67]],[[274788,415938],[-600,318]],[[274188,416256],[87,2302]],[[291409,417105],[453,-5673],[-67,-3974]],[[291795,407458],[-8,-68]],[[291787,407390],[-674,1374],[-215,1839]],[[290898,410603],[-464,1137],[-81,1797],[-341,1921]],[[290012,415458],[-13,49]],[[289999,415507],[237,1028]],[[258848,414254],[-240,-36]],[[258608,414218],[-1028,-23]],[[274188,416256],[-53,-2245],[-194,-1195]],[[273941,412816],[-1155,355]],[[272786,413171],[9,1552]],[[292681,417933],[179,-418],[-159,-5398],[-46,2228],[-255,-3465],[103,-763],[-505,-2576],[-203,-83]],[[271513,412702],[-9,-1621]],[[271504,411081],[-1056,287]],[[270448,411368],[-261,927],[22,1648],[-200,73]],[[281528,410458],[-678,3]],[[280850,410461],[-105,6]],[[249547,415186],[-334,-14],[-11,-1088],[-814,-276]],[[248388,413808],[-1,3841]],[[161792,408143],[-203,-1301],[-432,-149],[-282,-3313],[-609,-861]],[[160266,402519],[-794,177]],[[159472,402696],[52,1463]],[[159524,404159],[106,2863],[-398,-48],[-7,2486],[153,591],[-290,1813]],[[255560,414746],[183,-1655],[-78,-4758]],[[255665,408333],[-417,-12]],[[255248,408321],[-3,5132]],[[277926,410448],[-234,-9]],[[277692,410439],[-800,-6]],[[276892,410433],[-426,0]],[[276466,410433],[-22,3775],[-205,1112]],[[268481,414507],[-116,-2692]],[[268365,411815],[-1169,326]],[[267196,412141],[-43,3579],[147,1917]],[[289999,415507],[-235,-1943],[-206,-350]],[[289558,413214],[-165,1988]],[[237891,414879],[8,-3256]],[[237899,411623],[-1244,79]],[[236655,411702],[-37,4579]],[[235541,416362],[8,-4089]],[[235549,412273],[-763,19]],[[234786,412292],[-326,1439]],[[181375,413882],[-2,-6764]],[[181373,407118],[-6,-16110]],[[181367,391008],[-2649,0]],[[178718,391008],[-2525,9020]],[[248388,413808],[0,-544]],[[248388,413264],[-1641,72]],[[246747,413336],[194,2069]],[[267196,412141],[-24,-2179]],[[267172,409962],[-1117,398]],[[266055,410360],[17,1046]],[[266072,411406],[162,-81],[203,4496]],[[246747,413336],[32,-697]],[[246779,412639],[-960,108]],[[200920,414122],[-228,4],[1,-10296]],[[200693,403830],[-885,2]],[[199808,403832],[-4513,9]],[[195295,403841],[-1,2439]],[[261741,415716],[-55,-4023]],[[261686,411693],[-223,-17]],[[261463,411676],[-823,-18]],[[260640,411658],[57,2964]],[[284593,410421],[-604,-5]],[[283989,410416],[-677,3]],[[289558,413214],[-576,-1173]],[[288982,412041],[-434,587]],[[288548,412628],[-38,-23]],[[288510,412605],[-2,-1]],[[251866,411760],[-181,-2587]],[[251685,409173],[-599,19]],[[251086,409192],[-316,21],[-7,2708],[-211,269]],[[250552,412190],[-2,1896]],[[206688,415637],[-41,-6]],[[206647,415631],[-213,-1605]],[[206434,414026],[-263,1]],[[241996,414742],[-30,-6459]],[[241966,408283],[-4,0]],[[241962,408283],[-1090,94]],[[240872,408377],[8,1624],[-470,45]],[[240410,410046],[29,6279]],[[266072,411406],[-502,924],[-631,517]],[[264939,412847],[8,547]],[[240410,410046],[-1140,66]],[[239270,410112],[-272,4],[8,4913]],[[236655,411702],[-1,-802]],[[236654,410900],[-1104,25]],[[235550,410925],[-1,1348]],[[274786,410447],[-874,-18]],[[273912,410429],[29,2387]],[[274787,414932],[-1,-4485]],[[276466,410433],[-1406,8]],[[275060,410441],[-274,6]],[[188080,412150],[154,-1357],[-372,-847],[15,-4365],[-94,-1439],[-489,-27],[-259,-1246]],[[187035,402869],[-502,281],[-66,4178],[-5094,-210]],[[262825,414085],[-5,-3544]],[[262820,410541],[-613,-224]],[[262207,410317],[-419,17],[-102,1359]],[[216580,415679],[-8,-8083]],[[216572,407596],[-1771,-4]],[[214801,407592],[0,110]],[[218453,415671],[-6,-8082]],[[218447,407589],[-1806,7]],[[216641,407596],[-69,0]],[[156605,411874],[135,-4012]],[[156740,407862],[1,-964],[-483,-512],[-38,-1771],[225,-3191],[-238,-1152],[-36,-1898],[296,-1405],[109,-1803],[362,-938]],[[156938,394228],[-728,41],[-164,-808],[-645,-63],[-455,-694]],[[154946,392704],[-541,2801],[109,2093],[-386,5926],[150,3428],[-35,2228],[-194,3368],[-468,3106]],[[226274,415670],[1,-6485]],[[226275,409185],[-1,-1617]],[[226274,407568],[-1548,10]],[[224726,407578],[-50,3]],[[224676,407581],[2,8093]],[[224676,407581],[-1502,8]],[[223174,407589],[-61,1]],[[223113,407590],[-2,8085]],[[227841,415668],[2,-6478]],[[227843,409190],[-1568,-5]],[[229411,415658],[-2,-8099]],[[229409,407559],[-425,-1]],[[228984,407558],[-1141,12]],[[227843,407570],[0,1620]],[[220015,415660],[-6,-8093]],[[220009,407567],[-1504,22]],[[218505,407589],[-58,0]],[[170987,398754],[-249,-368]],[[170738,398386],[-2476,18]],[[168262,398404],[-1,696],[-1014,5147],[112,6217],[-310,-1673]],[[221554,415665],[-6,-8087]],[[221548,407578],[-1487,-3]],[[220061,407575],[-52,-8]],[[223113,407590],[-1493,-14]],[[221620,407576],[-72,2]],[[230989,415647],[1,-8092]],[[230990,407555],[-955,2]],[[230035,407557],[-626,2]],[[210185,410788],[-3283,6]],[[206902,410794],[415,545],[-67,968],[390,99],[54,1354],[-365,-16],[-165,-1868],[-731,-135]],[[206433,411741],[1,2285]],[[233495,415631],[0,-6461]],[[233495,409170],[-625,0]],[[232870,409170],[-626,1]],[[232244,409171],[2,6468]],[[232244,409171],[-1,-1611],[-687,-7]],[[231556,407553],[-566,2]],[[234786,412292],[-21,-1748],[-200,350],[-276,-2271]],[[234289,408623],[-168,539],[-626,8]],[[290898,410603],[-392,-2264]],[[290506,408339],[-409,2275],[-302,2865]],[[289795,413479],[217,1979]],[[250552,412190],[-498,-1355],[-387,-1885],[5,-2169]],[[249672,406781],[-468,-23]],[[249204,406758],[-627,-24]],[[248577,406734],[-163,3649],[-26,2881]],[[239270,410112],[-32,-1637]],[[239238,408475],[-1337,-78]],[[237901,408397],[-2,3226]],[[243245,414668],[-19,-5394]],[[243226,409274],[-941,82],[-5,-1096],[-314,23]],[[256704,413150],[-11,-4877]],[[256693,408273],[-517,45]],[[256176,408318],[-511,15]],[[272786,413171],[-213,31],[-15,-3018],[100,-1891]],[[272658,408293],[-850,-351]],[[271808,407942],[-304,3139]],[[244567,411140],[169,-1392]],[[244736,409748],[-1143,47],[1,-537]],[[243594,409258],[-368,16]],[[260640,411658],[-101,-1640]],[[260539,410018],[-888,-25]],[[259651,409993],[40,4281]],[[269372,414335],[-25,-1734],[207,-77],[64,-3317]],[[269618,409207],[-318,124],[-21,-1094],[-338,108],[-318,-1009]],[[268623,407336],[-310,141],[52,4338]],[[205473,414009],[-1,-3086]],[[205472,410923],[-407,495],[-407,1457]],[[270448,411368],[146,-862],[-65,-3237]],[[270529,407269],[-311,107]],[[270218,407376],[-615,748],[15,1083]],[[259651,409993],[-1,-1094]],[[259650,408899],[-829,-88]],[[258821,408811],[-213,-27]],[[258608,408784],[0,5434]],[[202584,414233],[137,-2936],[562,-2151],[-209,-2932],[145,-2133]],[[203219,404081],[-612,-329]],[[202607,403752],[-1914,78]],[[204005,410027],[367,-1170],[-102,-1326]],[[204270,407531],[-525,-3718],[-328,267]],[[203417,404080],[-198,1]],[[258608,408784],[-389,-585],[-532,8]],[[257687,408207],[-86,542],[-21,4365]],[[264939,412847],[-109,-226],[-59,-4847]],[[264771,407774],[-700,215]],[[264071,407989],[-317,28]],[[263754,408017],[-17,6097]],[[263754,408017],[1,-413],[-936,-24]],[[262819,407580],[1,2961]],[[206433,411741],[-1,-3287]],[[206432,408454],[13,-903]],[[206445,407551],[-516,-5958],[-264,-2164]],[[205665,399429],[-5,0]],[[205660,399429],[-187,-2],[-3,8127]],[[205470,407554],[2,3369]],[[206902,410794],[-80,-2161],[-167,812],[-223,-991]],[[290506,408339],[-301,-1740]],[[290205,406599],[-214,1002]],[[289991,407601],[-385,1831],[-352,446],[-281,1743]],[[288973,411621],[822,1858]],[[255248,408321],[1,-2424]],[[255249,405897],[-1194,77]],[[254055,405974],[-17,3810]],[[254038,409784],[80,3610]],[[254038,409784],[-270,-622],[-1139,-17]],[[252629,409145],[-4,2610]],[[248577,406734],[-633,-33]],[[247944,406701],[-412,-2]],[[247532,406699],[2,2166],[-201,554],[5,1620],[-635,683]],[[246703,411722],[76,917]],[[273912,410429],[-309,-2118]],[[273603,408311],[-264,-1244]],[[273339,407067],[6,599],[-687,627]],[[257687,408207],[-84,-2441]],[[257603,405766],[-705,61]],[[256898,405827],[-209,8],[4,2438]],[[205470,407554],[-1200,-23]],[[266055,410360],[-47,-3101]],[[266008,407259],[-855,352]],[[265153,407611],[-382,163]],[[246703,411722],[-132,-1725],[183,-3269]],[[246754,406728],[-92,-2345]],[[246662,404383],[-900,73]],[[245762,404456],[-253,771],[-419,2924]],[[245090,408151],[-354,1597]],[[288982,412041],[-534,-3560],[147,-1015],[-73,-1880],[204,-1804]],[[288726,403782],[-376,-1333],[-304,88]],[[288046,402537],[-18,1506]],[[288028,404043],[-61,6417]],[[288510,412605],[38,23]],[[251086,409192],[2,-5734],[-320,52]],[[250768,403510],[-1088,3],[-8,3268]],[[235550,410925],[3,-4037]],[[235553,406888],[-1398,56]],[[234155,406944],[134,1679]],[[192584,405745],[-2935,12],[-153,2687],[-321,1686]],[[189175,410130],[0,2024]],[[189175,410130],[1,-4419],[-152,2],[6,-8099]],[[189030,397614],[-1545,14],[-447,229]],[[187038,397857],[-3,5012]],[[268623,407336],[-26,-1603]],[[268597,405733],[-717,218],[40,496],[-788,178]],[[267132,406625],[40,3337]],[[159524,404159],[-693,578],[2,-532],[-1674,-52]],[[157159,404153],[9,3692],[-428,17]],[[252629,409145],[5,-3808]],[[252634,405337],[-318,9],[-371,2452],[-255,17],[-5,1358]],[[262207,410317],[-5,-3506]],[[262202,406811],[-729,-13]],[[261473,406798],[-10,4878]],[[261473,406798],[1,-1345]],[[261474,405453],[-925,-9]],[[260549,405444],[-10,4574]],[[247532,406699],[-778,29]],[[237901,408397],[-2,-1616]],[[237899,406781],[-1252,49]],[[236647,406830],[7,4070]],[[289991,407601],[-61,-2065],[-434,1889],[-494,-3193]],[[289002,404232],[-350,2027]],[[288652,406259],[12,7]],[[288664,406266],[-51,2043]],[[288613,408309],[-8,430]],[[288605,408739],[368,2882]],[[164781,405356],[-1401,-15],[-152,1283],[-273,170],[-234,-1182],[-772,-1245]],[[161949,404367],[29,4517]],[[271808,407942],[-352,-103],[16,-1874],[-379,-569]],[[271093,405396],[-587,184],[23,1689]],[[236647,406830],[-6,-1351]],[[236641,405479],[-1087,27]],[[235554,405506],[-1,1382]],[[210182,407556],[-20,1]],[[210162,407557],[-2635,-8]],[[207527,407549],[-1082,2]],[[168262,398404],[-491,-22],[-237,-2422],[1,-1714],[313,16],[-13,-8145],[-697,1]],[[167138,386118],[-482,2257]],[[166656,388375],[-55,3726],[-157,-50],[-42,4120],[307,671],[-2,1728],[-666,42]],[[166041,398612],[-32,2039],[-419,1034]],[[165590,401685],[652,1617],[543,5284]],[[291787,407390],[22,-3591],[-686,-1401]],[[291123,402398],[-572,644]],[[290551,403042],[14,1877],[-360,1680]],[[262819,407580],[-2,-848]],[[262817,406732],[-615,79]],[[283284,410419],[-281,-1862],[-298,-5500]],[[282705,403057],[-115,-74]],[[282590,402983],[-298,3217]],[[282292,406200],[-167,1078],[132,1025],[-513,247]],[[281744,408550],[-440,1436],[-237,-1383],[-192,274]],[[280875,408877],[-25,1584]],[[280875,408877],[-278,-307],[-96,-1937]],[[280501,406633],[-526,345]],[[279975,406978],[-386,1376],[-475,-3170],[-283,767]],[[278831,405951],[380,4520]],[[278831,405951],[-568,-2831]],[[278263,403120],[-600,-2270]],[[277663,400850],[29,9589]],[[288028,404043],[-186,-68]],[[287842,403975],[-578,293],[198,3147],[-296,-282]],[[287166,407133],[-438,3311]],[[276892,410433],[-365,-5307]],[[276527,405126],[-123,314]],[[276404,405440],[-598,2940],[-675,502]],[[275131,408882],[-71,1559]],[[277663,400850],[0,-206]],[[277663,400644],[-557,1424],[-342,-761]],[[276764,401307],[-239,1285]],[[276525,402592],[2,2534]],[[287166,407133],[-74,-2015],[-419,-1267],[83,1880],[-379,-1384]],[[286377,404347],[-194,1934],[-292,888],[-100,3272]],[[275131,408882],[-285,-1378],[11,-1745]],[[274857,405759],[-140,-755]],[[274717,405004],[-207,396]],[[274510,405400],[-283,562],[-368,2261],[-256,88]],[[286377,404347],[69,-1031],[-251,-2457],[-293,640]],[[285902,401499],[0,2434],[-506,6],[2,-1756],[256,-748]],[[285654,401435],[-221,-442]],[[285433,400993],[-513,2542]],[[284920,403535],[-27,1753],[292,5146]],[[284920,403535],[-797,69]],[[284123,403604],[171,2561],[-558,2378],[253,1873]],[[284123,403604],[-2,-8]],[[284121,403596],[-805,-2420]],[[283316,401176],[-301,1526],[-310,355]],[[267132,406625],[-296,-2585]],[[266836,404040],[-607,26]],[[266229,404066],[40,3087],[-261,106]],[[192583,405610],[37,-825],[-294,-4891],[-129,-5401],[227,-2018],[156,-4770]],[[192580,387705],[-3568,0],[0,191]],[[189012,387896],[18,9718]],[[240872,408377],[-43,-5375]],[[240829,403002],[-232,408],[-163,-2184]],[[240434,401226],[-711,2931]],[[239723,404157],[-347,980],[-138,3338]],[[260549,405444],[-153,-1912]],[[260396,403532],[-746,-50]],[[259650,403482],[0,5417]],[[281744,408550],[-325,-479],[-251,-3773]],[[281168,404298],[-330,1391]],[[280838,405689],[-337,944]],[[245090,408151],[-786,-2744],[61,-2460]],[[244365,402947],[-779,381]],[[243586,403328],[8,5930]],[[254055,405974],[-144,-1904]],[[253911,404070],[-1278,-83]],[[252633,403987],[1,1350]],[[243586,403328],[-1650,162]],[[241936,403490],[26,4793]],[[270218,407376],[-23,-1681],[-315,124],[-26,-1652]],[[269854,404167],[-626,216],[-9,-491],[-644,-24]],[[268575,403868],[22,1865]],[[227843,407570],[-4,-4859]],[[227839,402711],[-1559,8]],[[226280,402719],[-6,4849]],[[232870,409170],[-17,-4355]],[[232853,404815],[-53,-3774]],[[232800,401041],[-1244,5]],[[231556,401046],[0,6507]],[[234155,406944],[373,-2132]],[[234528,404812],[-590,6]],[[233938,404818],[-1085,-3]],[[252633,403987],[0,-2970]],[[252633,401017],[-933,24]],[[251700,401041],[-932,31]],[[250768,401072],[0,2438]],[[279975,406978],[-539,-3798],[-360,-1739]],[[279076,401441],[-431,1393],[-382,286]],[[273339,407067],[-230,-1522]],[[273109,405545],[-695,-2161]],[[272414,403384],[-195,1249],[-314,-1223],[-55,-1445],[-293,114],[-131,-1044]],[[271426,401035],[10,997],[-367,905],[24,2459]],[[276404,405440],[-240,-950],[-479,-156]],[[275685,404334],[-828,1425]],[[259650,403482],[-372,-61]],[[259278,403421],[-462,-45]],[[258816,403376],[5,5435]],[[161949,404367],[-299,-280],[-426,-2782],[0,-3647]],[[161224,397658],[-376,-706]],[[160848,396952],[-363,-449],[-90,-981],[-129,6997]],[[258816,403376],[-362,-36]],[[258454,403340],[-695,149]],[[257759,403489],[-4,2280],[-152,-3]],[[282292,406200],[-394,-2354],[-185,-1907]],[[281713,401939],[-545,2359]],[[239723,404157],[-203,523],[-147,-1561],[-300,-406],[-194,-1441],[-195,1193]],[[238684,402465],[-29,-1189],[-453,360],[-301,-768]],[[237901,400868],[-2,5913]],[[241936,403490],[-12,-1887]],[[241924,401603],[-322,44]],[[241602,401647],[-773,1355]],[[256176,408318],[-109,-1613],[-6,-4868]],[[256061,401837],[-1014,8]],[[255047,401845],[202,1649],[0,2403]],[[256898,405827],[-7,-2443],[-310,8],[-2,-3248]],[[256579,400144],[-520,69]],[[256059,400213],[2,1624]],[[274510,405400],[-752,-2906]],[[273758,402494],[-136,1719],[-196,-664]],[[273426,403549],[-49,2100],[-268,-104]],[[246361,401187],[-1284,58],[-7,-1638],[-209,11]],[[244861,399618],[-414,50]],[[244447,399668],[-82,3279]],[[245762,404456],[468,-1904],[131,-1365]],[[264071,407989],[93,-711],[-59,-4822]],[[264105,402456],[-1299,240]],[[262806,402696],[11,4036]],[[265153,407611],[-83,-5848]],[[265070,401763],[-704,292]],[[264366,402055],[-261,401]],[[157159,404153],[-103,-1293],[316,-1811],[516,-796],[-42,-2231],[424,-2417]],[[158270,395605],[-153,-1117]],[[158117,394488],[-193,-2961],[-454,-702]],[[157470,390825],[-532,3403]],[[214801,407592],[7,-8099]],[[214808,399493],[2,-1604]],[[214810,397889],[-3111,-174]],[[211699,397715],[24,9830]],[[289029,404122],[-16,45]],[[289013,404167],[-11,65]],[[290551,403042],[-150,-2724]],[[290401,400318],[-533,654],[-508,1437],[-331,1713]],[[223174,407589],[-9,-8099]],[[223165,399490],[-1516,-10]],[[221649,399480],[-38,0]],[[221611,399480],[9,8096]],[[265463,401619],[-346,126]],[[265117,401745],[-47,18]],[[266229,404066],[-541,-2162],[-225,-285]],[[216641,407596],[-7,-8066]],[[216634,399530],[-241,-6]],[[216393,399524],[-1585,-31]],[[218505,407589],[-3,-8092]],[[218502,399497],[-253,0]],[[218249,399497],[-1615,33]],[[224726,407578],[-8,-6473]],[[224718,401105],[0,-1621]],[[224718,399484],[-1525,8]],[[223193,399492],[-28,-2]],[[220061,407575],[-7,-8104]],[[220054,399471],[-1552,26]],[[228984,407558],[-8,-6447]],[[228976,401111],[-4,-1634]],[[228972,399477],[-1137,-7]],[[227835,399470],[4,3241]],[[226280,402719],[-2,-1625]],[[226278,401094],[-1560,11]],[[221611,399480],[-1512,-5]],[[220099,399475],[-45,-4]],[[230035,407557],[-404,-3028],[468,-4114],[473,-185]],[[230572,400230],[-5,-2410],[-307,8]],[[230260,397828],[0,542],[-975,290],[5,2433],[-314,18]],[[207527,407549],[-7,-8122]],[[207520,399427],[-1032,5]],[[206488,399432],[-823,-3]],[[210162,407557],[-14,-13021],[-936,36]],[[209212,394572],[12,4830],[-1704,25]],[[231556,401046],[-18,-1625]],[[231538,399421],[-118,1200],[-442,280],[-406,-671]],[[211699,397715],[-29,-7916]],[[211670,389799],[2,-1622],[-925,-165]],[[210747,388012],[-1530,111]],[[209217,388123],[-5,6449]],[[205660,399429],[4,-8051]],[[205664,391378],[-1785,-68]],[[203879,391310],[176,2110],[-338,2531],[-236,-28],[-218,2136]],[[203263,398059],[20,4732],[134,1289]],[[271426,401035],[-87,-662]],[[271339,400373],[-1426,435]],[[269913,400808],[-59,3359]],[[187038,397857],[-586,-3353],[17,-2559],[-254,-958],[-384,92],[-188,-2026]],[[185643,389053],[-4276,11]],[[181367,389064],[0,1944]],[[280838,405689],[20,-2091],[-220,-1799],[43,-1667],[-291,-1467]],[[280390,398665],[-1091,2059],[-223,717]],[[235554,405506],[-2,-5520]],[[235552,399986],[-482,732]],[[235070,400718],[-348,1876],[57,1415],[-251,803]],[[262806,402696],[-686,37]],[[262120,402733],[-425,22],[-218,-746]],[[261477,402009],[-3,3444]],[[237901,400868],[-183,147],[-782,-1329]],[[236936,399686],[-300,1183]],[[236636,400869],[5,4610]],[[250768,401072],[-307,-8],[0,-3525]],[[250461,397539],[-935,2],[-151,-542]],[[249375,396999],[-164,-3]],[[249211,396996],[-7,9762]],[[249211,396996],[-1245,20]],[[247966,397016],[-6,4876]],[[247960,401892],[-16,4809]],[[164769,402898],[-1779,-16],[-231,-508],[-692,-3277],[-169,-1785],[-674,346]],[[247960,401892],[-463,-687],[1,-945],[-743,197],[-64,-1253]],[[246691,399204],[-29,5179]],[[268575,403868],[-39,-2983]],[[268536,400885],[-64,-729]],[[268472,400156],[-1582,537]],[[266890,400693],[-54,3347]],[[282590,402983],[-306,-3506]],[[282284,399477],[-571,2462]],[[195295,403841],[-25,-16136]],[[195270,387705],[-2690,0]],[[255047,401845],[-69,-1900]],[[254978,399945],[-895,326]],[[254083,400271],[-160,-18]],[[253923,400253],[-12,3817]],[[273426,403549],[-646,-1538]],[[272780,402011],[-366,1373]],[[257759,403489],[-152,-219],[7,-3170]],[[257614,400100],[-1035,44]],[[275685,404334],[85,-2807]],[[275770,401527],[-169,-2411]],[[275601,399116],[-203,-165]],[[275398,398951],[-825,1176]],[[274573,400127],[195,794],[-216,1514],[165,2569]],[[281713,401939],[-331,-4249]],[[281382,397690],[-453,-530]],[[280929,397160],[-54,1697],[-336,-1326],[-249,538]],[[280290,398069],[100,596]],[[236636,400869],[-257,453],[-437,-2067],[-407,-128]],[[235535,399127],[17,859]],[[261477,402009],[-400,-1353]],[[261077,400656],[-346,-1150],[-342,-59]],[[260389,399447],[7,4085]],[[276525,402592],[-354,-957],[-401,-108]],[[274573,400127],[-368,-1330]],[[274205,398797],[-236,255]],[[273969,399052],[-281,3046],[70,396]],[[233938,404818],[-18,-6982]],[[233920,397836],[-872,234]],[[233048,398070],[-272,169],[24,2802]],[[235070,400718],[-349,74],[-25,-3937]],[[234696,396855],[-411,-173]],[[234285,396682],[-361,-327],[-4,1481]],[[159472,402696],[-103,-2315],[298,-2192],[9,-2579]],[[159676,395610],[-1406,-5]],[[240434,401226],[-265,-1911],[27,-1099]],[[240196,398216],[-322,-2537]],[[239874,395679],[-1243,272]],[[238631,395951],[53,6514]],[[272780,402011],[-162,-1543]],[[272618,400468],[-357,-942],[-433,-2022]],[[271828,397504],[-465,1315]],[[271363,398819],[-24,1554]],[[246691,399204],[104,-2426],[318,-370]],[[247113,396408],[-268,-1767],[-327,1147]],[[246518,395788],[-157,5399]],[[269913,400808],[-106,32],[-45,-3310]],[[269762,397530],[-314,137]],[[269448,397667],[30,1913],[-311,800],[-631,505]],[[273969,399052],[-615,-1858]],[[273354,397194],[-359,392]],[[272995,397586],[-242,74],[-135,2808]],[[288046,402537],[11,-942]],[[288057,401595],[-639,-5]],[[287418,401590],[-372,-2533],[-163,577],[-139,-1617],[-138,1747],[461,4160],[775,51]],[[203263,398059],[-1079,33]],[[202184,398092],[232,2578],[24,2143],[167,939]],[[253923,400253],[-983,-53]],[[252940,400200],[-307,817]],[[266890,400693],[-89,-2651]],[[266801,398042],[-801,-648]],[[266000,397394],[-555,16],[18,4209]],[[285902,401499],[-150,-622]],[[285752,400877],[-98,558]],[[285433,400993],[-397,-2058]],[[285036,398935],[-134,518]],[[284902,399453],[-167,-26],[-614,4169]],[[199808,403832],[101,-2046]],[[199909,401786],[-296,-714]],[[199613,401072],[-737,-3251],[-270,662],[-334,-354],[-440,-2814],[-665,-1480],[1,-2999]],[[197168,390836],[-2,-3131],[-1896,0]],[[202184,398092],[-58,-1116]],[[202126,396976],[-415,809],[-150,-1174],[-541,1039],[-198,1577],[-600,-2],[-313,2561]],[[289289,396094],[-480,-882],[-190,-1251],[-469,-135]],[[288150,393826],[-70,5854]],[[288080,399680],[-23,1915]],[[288726,403782],[311,-1995],[21,-3695],[231,-1998]],[[258454,403340],[32,-5425],[144,8]],[[258630,397923],[2,-1078]],[[258632,396845],[-1016,28]],[[257616,396873],[-2,3227]],[[260389,399447],[-315,-33],[3,-1128]],[[260077,398286],[-173,-511],[-611,176]],[[259293,397951],[-15,5470]],[[244447,399668],[-615,99],[-12,-1654]],[[243820,398113],[-1328,97]],[[242492,398210],[16,3269],[-584,124]],[[284902,399453],[-317,-3074]],[[284585,396379],[-327,-588]],[[284258,395791],[-575,2284]],[[283683,398075],[-376,337],[-185,1327],[194,1437]],[[259293,397951],[-663,-28]],[[241246,396473],[-791,166],[-259,1577]],[[241602,401647],[-356,-5174]],[[279076,401441],[-306,-3713],[122,-2044],[-246,-2142]],[[278646,393542],[-601,2684]],[[278045,396226],[-22,130]],[[278023,396356],[164,2029],[-157,242],[174,1961],[-541,56]],[[291123,402398],[69,-689],[-433,-4685],[-217,-1125],[-299,-2],[197,2821],[-39,1600]],[[283683,398075],[-584,-3904]],[[283099,394171],[-333,1776]],[[282766,395947],[-855,1322]],[[281911,397269],[373,2208]],[[164778,400098],[2,-985]],[[164780,399113],[3,-842]],[[164783,398271],[-389,10],[-272,-829],[-495,64],[-430,-2100],[-547,1772],[-795,-2034],[-254,-3502]],[[161601,391652],[-950,430]],[[160651,392082],[48,3551],[149,1319]],[[264366,402055],[-167,-4639]],[[264199,397416],[-520,1367]],[[263679,398783],[-327,-384]],[[263352,398399],[-336,1361],[-212,-782]],[[262804,398978],[2,3718]],[[262120,402733],[-187,-6686]],[[261933,396047],[-9,-343]],[[261924,395704],[-187,-294]],[[261737,395410],[-674,-15]],[[261063,395395],[14,5261]],[[262804,398978],[-161,-1387]],[[262643,397591],[-710,-1544]],[[227835,399470],[-1,-3241]],[[227834,396229],[-1551,10]],[[226283,396239],[-5,4855]],[[160651,392082],[-328,7]],[[160323,392089],[-249,595],[-92,1588],[-306,1338]],[[276764,401307],[-43,-2135]],[[276721,399172],[-197,-2650],[-527,-489]],[[275997,396033],[78,1671],[-474,1412]],[[238631,395951],[-2,-269]],[[238629,395682],[-940,177],[-5,-542],[-774,158]],[[236910,395475],[26,4211]],[[278023,396356],[-421,199],[-771,1158],[-110,1459]],[[264942,392757],[-495,1045]],[[264447,393802],[-4,881]],[[264443,394683],[-244,2733]],[[265117,401745],[-175,-8988]],[[281911,397269],[-117,-636]],[[281794,396633],[-412,1057]],[[247966,397016],[-356,-13],[-7,-1413]],[[247603,395590],[-490,818]],[[286601,396690],[-270,-2438],[180,3428],[90,-990]],[[288080,399680],[-243,-645],[-318,-3541]],[[287519,395494],[-452,119]],[[287067,395613],[-237,-813],[-18,1649],[166,2200],[440,2941]],[[256059,400213],[0,-4914]],[[256059,395299],[-785,-99]],[[255274,395200],[-296,4745]],[[202126,396976],[391,-1636],[384,-265],[-241,-1239],[-125,-2430],[202,-1122],[70,-1956],[300,-2059]],[[203107,386269],[-2100,52],[-1,-5185]],[[201006,381136],[-1582,2]],[[199424,381138],[-184,2879]],[[199240,384017],[376,1],[-3,6826]],[[199613,390844],[0,10228]],[[266000,397394],[-90,-7128]],[[265910,390266],[-554,2430]],[[265356,392696],[-414,61]],[[242492,398210],[-119,-2235],[32,-2529],[-220,-3074]],[[242185,390372],[-394,741],[-91,1045]],[[241700,392158],[-289,3405]],[[241411,395563],[-165,910]],[[166041,398612],[-586,525],[-675,-24]],[[280290,398069],[-483,-2836],[-192,-318],[-231,-2313]],[[279384,392602],[-347,1620],[-177,-1641]],[[278860,392581],[-214,961]],[[285904,391677],[-438,651]],[[285466,392328],[40,2580],[-96,1946],[-374,2081]],[[285752,400877],[17,-34]],[[285769,400843],[123,37]],[[285892,400880],[302,-2195],[-274,-289],[359,-1162],[-397,-2847],[22,-2710]],[[236910,395475],[-14,-1566]],[[236896,393909],[-1362,260]],[[235534,394169],[1,3667]],[[235535,397836],[0,1291]],[[246518,395788],[-459,-1047],[-357,-130]],[[245702,394611],[-426,36],[-426,2233]],[[244850,396880],[11,2738]],[[230260,397828],[-3,-3239]],[[230257,394589],[-1081,7]],[[229176,394596],[-204,1767],[0,3114]],[[199613,390844],[-2445,-8]],[[226283,396239],[-1,-1625]],[[226282,394614],[-1549,-5]],[[224733,394609],[-15,4875]],[[233048,398070],[-2,-3479]],[[233046,394591],[-1241,3]],[[231805,394594],[-1,4258],[-266,569]],[[251700,401041],[-3,-5671],[315,56]],[[252012,395426],[-4,-1645]],[[252008,393781],[-1234,-55],[-1,-1621]],[[250773,392105],[-323,107]],[[250450,392212],[11,5327]],[[252940,400200],[-3,-4846]],[[252937,395354],[-925,72]],[[231805,394594],[2,-2436]],[[231807,392158],[-1134,-2]],[[230673,392156],[-105,1611],[-311,822]],[[269448,397667],[-55,-3546],[-336,-2]],[[269057,394119],[-207,85]],[[268850,394204],[-308,109],[-130,1734]],[[268412,396047],[60,4109]],[[270916,394754],[20,1086],[-281,1702],[-269,-1234]],[[270386,396308],[9,758],[-633,464]],[[271363,398819],[-98,-3218],[-349,-847]],[[235535,397836],[-738,278],[-101,-1259]],[[268412,396047],[-1128,225],[-164,1037]],[[267120,397309],[-319,733]],[[261063,395395],[-665,-1817]],[[260398,393578],[-311,-147]],[[260087,393431],[-10,4855]],[[272995,397586],[-322,-2153]],[[272673,395433],[-626,51]],[[272047,395484],[-219,2020]],[[255274,395200],[-23,-931]],[[255251,394269],[-1050,-45]],[[254201,394224],[-106,0]],[[254095,394224],[-12,6047]],[[254095,394224],[-871,-49]],[[253224,394175],[-287,84],[0,1095]],[[257616,396873],[-2,-1632]],[[257614,395241],[-617,-10]],[[256997,395231],[-542,-4]],[[256455,395227],[-396,72]],[[275398,398951],[-49,-2705],[-193,-1560],[-17,-2747]],[[275139,391939],[-179,223]],[[274960,392162],[-177,2249],[-237,821]],[[274546,395232],[-309,1940],[-32,1625]],[[178718,391008],[0,-11659],[-2488,-10],[-9,-22498]],[[176221,356841],[9,-15660]],[[176230,341181],[-3544,18062]],[[172686,359243],[1,19187],[-1464,8789]],[[171223,387219],[-1407,8282],[-2,1512],[924,1373]],[[244850,396880],[-2,-2773],[-421,28],[-7,-2523]],[[244420,391612],[-356,-627],[-262,515]],[[243802,391500],[-20,-7]],[[243782,391493],[38,6620]],[[263352,398399],[22,-5065]],[[263374,393334],[-124,-465]],[[263250,392869],[-377,1491]],[[262873,394360],[-210,810]],[[262663,395170],[-20,2421]],[[288150,393826],[43,-3599]],[[288193,390227],[-151,927],[-491,-152]],[[287551,391002],[-166,1427],[180,785]],[[287565,393214],[-46,2280]],[[218249,399497],[-18,-8071]],[[218231,391426],[-863,14]],[[217368,391440],[-992,-7]],[[216376,391433],[17,8091]],[[216376,391433],[-231,-10]],[[216145,391423],[-1332,-39]],[[214813,391384],[-3,6505]],[[223193,399492],[-14,-8122]],[[223179,391370],[-1512,-4]],[[221667,391366],[-36,-1]],[[221631,391365],[18,8115]],[[220099,399475],[-16,-8095]],[[220083,391380],[-260,15]],[[219823,391395],[-1228,34]],[[218595,391429],[-364,-3]],[[229176,394596],[-104,-1079],[-8,-3775]],[[229064,389742],[-1230,0]],[[227834,389742],[0,6487]],[[224733,394609],[-4,-3237]],[[224729,391372],[-1523,-3]],[[223206,391369],[-27,1]],[[221631,391365],[-1548,15]],[[285466,392328],[-31,-1556]],[[285435,390772],[-7,-2276]],[[285428,388496],[-134,1401],[-606,809],[-230,-837],[-81,1376]],[[284377,391245],[169,2219]],[[284546,393464],[298,1555],[-259,1360]],[[206488,399432],[13,-4858],[-121,-1295],[371,-47],[-10,-2736]],[[206741,390496],[-830,-42],[-247,924]],[[209217,388123],[-2473,-52]],[[206744,388071],[-3,2425]],[[264443,394683],[-524,-1280]],[[263919,393403],[-110,901],[24,2588],[-154,1891]],[[278045,396226],[-294,-515],[-232,-1658],[80,-1120],[-325,-2167]],[[277274,390766],[-416,1407],[-243,-3513],[-463,-1711],[-244,275],[-358,-1593]],[[275550,385631],[171,2537],[-267,3168]],[[275454,391336],[428,949],[115,3748]],[[166656,388375],[-699,3239]],[[165957,391614],[-901,4159]],[[165056,395773],[-269,1240],[-4,1258]],[[275454,391336],[-315,603]],[[274546,395232],[-268,-471],[-788,-2996]],[[273490,391765],[-200,1393],[150,994],[-86,3042]],[[280929,397160],[39,-1197],[-240,-2110]],[[280728,393853],[-452,-1704],[-259,-2493]],[[280017,389656],[-633,2946]],[[263919,393403],[-308,-257]],[[263611,393146],[-237,188]],[[272047,395484],[-122,-4567],[68,-1111]],[[271993,389806],[-308,-1084],[-178,1340]],[[271507,390062],[-213,1013]],[[271294,391075],[-378,3679]],[[171223,387219],[-1840,-10801],[-214,48]],[[169169,376466],[-2031,9652]],[[260087,393431],[-260,-1361]],[[259827,392070],[-266,627],[-811,-80]],[[258750,392617],[-16,4231],[-102,-3]],[[234285,396682],[0,-4534]],[[234285,392148],[-1239,4]],[[233046,392152],[0,2439]],[[165056,395773],[67,-1276],[-536,-3016]],[[164587,391481],[-681,-2964],[-867,-752],[-370,962],[-735,-860]],[[161934,387867],[-256,3852],[-77,-67]],[[243782,391493],[-600,-672],[-237,-1354]],[[242945,389467],[-301,-676],[-459,1581]],[[241411,395563],[-330,-4505],[-622,73]],[[240459,391131],[-612,170]],[[239847,391301],[27,4378]],[[284258,395791],[-146,-762]],[[284112,395029],[62,-330]],[[284174,394699],[109,-599]],[[284283,394100],[166,-999]],[[284449,393101],[22,-1315],[-319,-1468],[-235,541]],[[283917,390859],[-818,3312]],[[203879,391310],[232,-1351],[-63,-2148],[-283,-1101]],[[203765,386710],[-658,-441]],[[235534,394169],[-3,-2030]],[[235531,392139],[-1246,9]],[[267120,397309],[10,-7398]],[[267130,389911],[-689,1520],[-363,-1183]],[[266078,390248],[-168,18]],[[189012,387896],[-1284,-154]],[[187728,387742],[-2094,148]],[[185634,387890],[9,1163]],[[214813,391384],[1,-1534]],[[214814,389850],[-3144,-51]],[[273490,391765],[-131,-932]],[[273359,390833],[-145,-1041]],[[273214,389792],[-209,606],[-29,1581],[-303,3454]],[[281794,396633],[-352,-2134]],[[281442,394499],[-181,-1569],[-249,-398]],[[281012,392532],[-284,1321]],[[270386,396308],[-126,-2312],[-210,-922],[124,-3421],[-112,-240]],[[270062,389413],[-201,-166]],[[269861,389247],[-208,45],[20,1691],[-328,121],[-31,1670],[-276,128],[19,1217]],[[262663,395170],[-751,43],[12,491]],[[271294,391075],[-509,-438],[-303,-919],[26,-2485]],[[270508,387233],[-446,2180]],[[250450,392212],[-956,23]],[[249494,392235],[-119,4764]],[[268850,394204],[-252,-4689],[-210,-491]],[[268388,389024],[-201,3414],[-398,-533]],[[267789,391905],[-350,-1991],[-309,-3]],[[282766,395947],[-168,-2056],[513,-5136]],[[283111,388755],[-288,-2729]],[[282823,386026],[-280,58],[-558,5269]],[[281985,391353],[-543,3146]],[[249494,392235],[6,-1626],[-311,-14]],[[249189,390595],[-1322,101]],[[247867,390696],[42,2085]],[[247909,392781],[135,617]],[[248044,393398],[6,862],[-447,1330]],[[245702,394611],[-17,-6019]],[[245685,388592],[-299,1157],[-435,348],[-393,1319]],[[244558,391416],[-138,196]],[[284546,393464],[-223,1829]],[[284323,395293],[-65,498]],[[258750,392617],[-93,-1410]],[[258657,391207],[-1043,-28]],[[257614,391179],[0,4062]],[[248044,393398],[-494,1528],[-406,-1104],[-259,-2536],[-553,-983]],[[246332,390303],[-515,-1949],[-132,238]],[[289289,396094],[351,-2735],[270,-53],[-16,-3322],[132,-3186]],[[290026,386798],[-57,0]],[[289969,386798],[-44,0]],[[289925,386798],[-712,13]],[[289213,386811],[-982,153],[-22,1873]],[[288209,388837],[-16,1390]],[[227834,389742],[-1541,10]],[[226293,389752],[-11,4862]],[[278860,392581],[-466,-5287]],[[278394,387294],[-254,-1223]],[[278140,386071],[-449,839],[-166,1723],[-310,768]],[[277215,389401],[59,1365]],[[239847,391301],[-20,-3034]],[[239827,388267],[-622,98],[-4,-541],[-615,114]],[[238586,387938],[4,815]],[[238590,388753],[39,6929]],[[287565,393214],[-230,-1318],[167,-933],[-195,-1781],[-402,1979],[-480,1174],[215,1900],[256,-1835],[-68,1744],[239,1469]],[[283917,390859],[-162,-3064]],[[283755,387795],[-414,1424],[-230,-464]],[[273214,389792],[-307,-1569]],[[272907,388223],[-755,413],[-159,1170]],[[238590,388753],[-1541,208]],[[237049,388961],[-153,25],[0,4923]],[[284458,394060],[-175,40]],[[284174,394699],[-62,330]],[[284323,395293],[135,-1233]],[[165957,391614],[-111,-1812],[217,-2118],[-268,-3202]],[[165795,384482],[-318,1675],[-351,-1063],[-392,1451]],[[164734,386545],[-147,1347]],[[164587,387892],[0,3589]],[[262873,394360],[-58,-1367],[-578,-418]],[[262237,392575],[-496,-1308]],[[261741,391267],[-4,4143]],[[241700,392158],[-280,-5796]],[[241420,386362],[-362,56]],[[241058,386418],[-603,3090],[4,1623]],[[160323,392089],[-77,-1062],[333,-1452],[-117,-1633],[135,-802],[-46,-1999],[-216,-908]],[[160335,384233],[-267,44],[0,3908],[-681,143],[-458,-370]],[[158929,387958],[0,-4]],[[158929,387958],[-514,6077],[-298,453]],[[261741,391267],[-366,837]],[[261375,392104],[-331,-489],[66,-2303]],[[261110,389312],[-395,371]],[[260715,389683],[-3,1350],[-313,1080],[-1,1465]],[[253224,394175],[-108,-3960],[133,-658]],[[253249,389557],[-1250,128]],[[251999,389685],[9,4096]],[[256455,395227],[-410,-1812],[-93,-2129],[104,-2737]],[[256056,388549],[-615,-232]],[[255441,388317],[-297,-785]],[[255144,387532],[-486,-1420]],[[254658,386112],[-34,905],[308,954],[-17,1005]],[[254915,388976],[435,3214],[-99,2079]],[[257614,391179],[2,-2983]],[[257616,388196],[-674,-391]],[[256942,387805],[55,7426]],[[256942,387805],[-413,171]],[[256529,387976],[-473,573]],[[274960,392162],[-143,-1744],[-396,-2216]],[[274421,388202],[-376,577],[-266,-940]],[[273779,387839],[-420,2994]],[[247909,392781],[-238,-998],[-192,-2324],[175,-1160]],[[247654,388299],[-24,-168]],[[247630,388131],[-211,-2528]],[[247419,385603],[-176,2124],[-512,9],[-410,-650]],[[246321,387086],[11,3217]],[[264517,389239],[-698,-957]],[[263819,388282],[-57,221]],[[263762,388503],[-151,4643]],[[264447,393802],[70,-4563]],[[230673,392156],[-3,-4046]],[[230670,388110],[-1298,15]],[[229372,388125],[-307,-1],[-1,1618]],[[226293,389752],[2,-1622]],[[226295,388130],[-1550,-17]],[[224745,388113],[-16,3259]],[[233046,392152],[-20,-5676]],[[233026,386476],[-1232,4]],[[231794,386480],[13,5678]],[[158929,387954],[-62,-1644],[169,-2032],[-399,3],[-19,-2538],[-216,-434]],[[158402,381309],[-24,5]],[[158378,381314],[-291,-21]],[[158087,381293],[-3,45]],[[158084,381338],[140,477],[-107,2272],[-522,4538],[-125,2200]],[[281985,391353],[-669,-3258],[-157,217]],[[281159,388312],[-296,1764]],[[280863,390076],[149,2456]],[[263250,392869],[-350,-1063]],[[262900,391806],[-413,-1090]],[[262487,390716],[-250,1859]],[[158084,381338],[-237,-853],[-152,859]],[[157695,381344],[-539,908],[-435,1971],[-296,-310]],[[156425,383913],[-353,2861],[-569,2152],[-557,3778]],[[254915,388976],[-726,35]],[[254189,389011],[12,5213]],[[280017,389656],[-138,-1763],[572,-1648]],[[280451,386245],[-493,-2674]],[[279958,383571],[-240,-1325]],[[279718,382246],[-1324,5048]],[[254189,389011],[-119,3]],[[254070,389014],[-537,-21]],[[253533,388993],[-284,564]],[[269861,389247],[-95,-2476],[-512,-708]],[[269254,386063],[-253,186]],[[269001,386249],[-194,1565]],[[268807,387814],[-419,1210]],[[237049,388961],[-4,-2241]],[[237045,386720],[-1525,568]],[[235520,387288],[11,4851]],[[280863,390076],[-319,-2827]],[[280544,387249],[-93,-1004]],[[260715,389683],[-623,-25],[-151,-811]],[[259941,388847],[-106,262],[-8,2961]],[[265356,392696],[-244,-3246]],[[265112,389450],[-475,-738]],[[264637,388712],[-120,527]],[[251999,389685],[-2,-2447]],[[251997,387238],[-1241,-17]],[[250756,387221],[2,543]],[[250758,387764],[15,4341]],[[263762,388503],[-226,-927]],[[263536,387576],[-64,-376]],[[263472,387200],[-541,2720],[-31,1886]],[[259941,388847],[-406,-1355],[-4,-1306]],[[259531,386186],[-106,-8]],[[259425,386178],[-618,89]],[[258807,386267],[-150,4]],[[258657,386271],[0,4936]],[[247867,390696],[-213,-2397]],[[285904,391677],[33,-3347],[377,-2748],[-110,-1238],[-607,2727],[-162,3701]],[[266078,390248],[8,-2072]],[[266086,388176],[-605,-1279],[-198,665]],[[265283,387562],[-171,1888]],[[262487,390716],[-392,-1207]],[[262095,389509],[-262,-210]],[[261833,389299],[-458,2805]],[[268807,387814],[-424,-2456]],[[268383,385358],[-426,367],[-546,2055]],[[267411,387780],[397,3341],[-19,784]],[[250758,387764],[-457,107]],[[250301,387871],[-488,-745],[-369,60],[-248,-998]],[[249196,386188],[-7,4407]],[[277215,389401],[-117,-2971],[-334,-2300],[41,-777]],[[276805,383353],[-350,-1565],[-111,-2182]],[[276344,379606],[-848,-338],[-274,1261],[9,2076]],[[275231,382605],[22,2224],[297,802]],[[242945,389467],[-266,-2385],[-345,60],[127,-1459],[-203,-1038]],[[242258,384645],[-596,107],[14,1563],[-256,47]],[[231794,386480],[-23,-4900]],[[231771,381580],[-1110,51]],[[230661,381631],[9,6479]],[[234285,392148],[-26,-6491]],[[234259,385657],[-1233,6]],[[233026,385663],[0,813]],[[235520,387288],[0,-1654]],[[235520,385634],[-1261,23]],[[275231,382605],[-213,772]],[[275018,383377],[-482,1699],[-115,3126]],[[161934,387867],[6,-3922]],[[161940,383945],[-1040,-1303],[-210,591],[-282,-2812]],[[160408,380421],[-311,-431],[76,1800]],[[160173,381790],[162,2443]],[[261833,389299],[-405,-1730]],[[261428,387569],[-332,583]],[[261096,388152],[14,1160]],[[263472,387200],[-446,-2246]],[[263026,384954],[-363,80]],[[262663,385034],[-258,1506],[-110,2136],[-200,833]],[[267411,387780],[-197,-1449],[23,-1521],[-313,-464]],[[266924,384346],[-311,1158]],[[266613,385504],[-354,897],[-173,1775]],[[244558,391416],[4,-9113]],[[244562,382303],[-467,23],[2,-1088]],[[244097,381238],[-267,17]],[[243830,381255],[-40,2514]],[[243790,383769],[12,7731]],[[169169,376466],[1659,-8029]],[[170828,368437],[-2625,-35]],[[168203,368402],[-689,2284]],[[167514,370686],[-267,2691],[-422,166]],[[166825,373543],[187,2774],[-290,1077],[-121,2597],[-312,216],[-475,1906],[-19,2369]],[[246321,387086],[-122,-4889]],[[246199,382197],[-880,-1]],[[245319,382196],[-757,107]],[[243790,383769],[-1536,69]],[[242254,383838],[4,807]],[[164587,387892],[-720,-834],[-259,133],[-515,-1390],[-61,-1062],[-1009,-2141]],[[162023,382598],[-83,1347]],[[288209,388837],[-340,-1484],[-14,-1069]],[[287855,386284],[-365,-3226],[-285,1002],[9,-1396],[-759,4562],[218,1227],[-54,1256],[301,244],[335,-1096],[296,2145]],[[218595,391429],[0,-8114]],[[218595,383315],[-1157,7]],[[217438,383322],[-63,-1]],[[217375,383321],[-7,8119]],[[219823,391395],[8,-8114]],[[219831,383281],[-1236,34]],[[216145,391423],[-1,-8126]],[[216144,383297],[-1330,-14]],[[214814,383283],[1,118]],[[214815,383401],[-1,6449]],[[217375,383321],[-1161,-23]],[[216214,383298],[-70,-1]],[[282823,386026],[45,-780]],[[282868,385246],[-236,-135]],[[282632,385111],[-191,603],[-899,-1519]],[[281542,384195],[7,1473],[-390,2644]],[[221667,391366],[1,-6464]],[[221668,384902],[2,-1623]],[[221670,383279],[-1791,1]],[[219879,383280],[-48,1]],[[241058,386418],[-180,-1533],[-17,-2354]],[[240861,382531],[-193,-605],[-544,142],[-327,1182]],[[239797,383250],[30,5017]],[[224745,388113],[2,-4860]],[[224747,383253],[-1206,6]],[[223541,383259],[-334,2],[0,1622]],[[223207,384883],[-1,6486]],[[206744,388071],[3,-4865],[-303,-5]],[[206444,383201],[-2083,130]],[[204361,383331],[-596,3379]],[[223207,384883],[-1539,19]],[[285428,388496],[2,-844]],[[285430,387652],[-211,220],[-263,-2218]],[[284956,385654],[81,-2289],[-234,434],[-329,2869],[-459,-1569],[-187,2281],[549,3865]],[[258657,386271],[-1,-537],[-1038,13]],[[257618,385747],[-2,2449]],[[270898,384461],[-214,-1052],[-154,1960]],[[270530,385369],[-22,1864]],[[271507,390062],[-150,-656],[68,-2319],[-484,-1260],[-43,-1366]],[[181367,389064],[0,-7900]],[[181367,381164],[-7,-10123]],[[181360,371041],[4,-11253]],[[181364,359788],[2,-2927]],[[181366,356861],[-1984,13],[0,178],[-2727,-7],[-434,-204]],[[199240,384017],[-2,565],[-1384,-11],[128,-1422],[415,-674],[-79,-1241]],[[198318,381234],[-2999,12]],[[195319,381246],[-49,6459]],[[273779,387839],[177,-533],[-261,-1185],[-892,-2812]],[[272803,383309],[-146,3878],[250,1036]],[[249196,386188],[3,-3707]],[[249199,382481],[-545,27]],[[248654,382508],[-40,1621],[-342,19],[-642,3983]],[[281542,384195],[-437,-1435],[-99,693]],[[281006,383453],[-396,1782],[-66,2014]],[[272803,383309],[-1,-6]],[[272802,383303],[-272,-1508],[-143,-3971]],[[272387,377824],[-212,340]],[[272175,378164],[-165,2328],[-356,2011],[-528,-202]],[[271126,382301],[46,1976],[-274,184]],[[214815,383401],[-1944,-34]],[[212871,383367],[-1832,-28]],[[211039,383339],[-284,-8]],[[210755,383331],[-8,4681]],[[227834,389742],[0,-8111]],[[227834,381631],[-920,3]],[[226914,381634],[-613,-2]],[[226301,381632],[-6,6498]],[[229372,388125],[-59,-8133]],[[229313,379992],[-869,39]],[[228444,380031],[-2,1618],[-608,-18]],[[265283,387562],[-139,-989]],[[265144,386573],[-341,379]],[[264803,386952],[-166,1760]],[[253533,388993],[-9,-5827]],[[253524,383166],[-612,-14]],[[252912,383152],[-924,24]],[[251988,383176],[9,4062]],[[261096,388152],[-573,-2670]],[[260523,385482],[-285,-2089],[-141,377]],[[260097,383770],[-46,2157],[-520,259]],[[270530,385369],[-363,-645],[-243,-2058]],[[269924,382666],[-670,3397]],[[262663,385034],[-353,-388]],[[262310,384646],[-796,417]],[[261514,385063],[-86,2506]],[[278140,386071],[-341,-3644],[-207,-671]],[[277592,381756],[-787,1597]],[[283755,387795],[-68,-3119]],[[283687,384676],[-6,-1714]],[[283681,382962],[-121,26]],[[283560,382988],[-214,707]],[[283346,383695],[-232,459]],[[283114,384154],[-246,1092]],[[264803,386952],[-255,-1635]],[[264548,385317],[-418,-1608],[-274,-40]],[[263856,383669],[-44,1680],[-276,2227]],[[185634,387890],[509,-3310],[-59,-2002],[-242,-1389]],[[185842,381189],[-97,-48]],[[185745,381141],[-4378,23]],[[254070,389014],[36,-2007],[-137,-3775]],[[253969,383232],[-445,-66]],[[254658,386112],[-463,-2723],[-218,-213]],[[253977,383176],[-8,56]],[[238586,387938],[-30,-5629]],[[238556,382309],[-1467,73]],[[237089,382382],[-71,8],[27,4330]],[[289213,386811],[95,-1816],[-160,-1192],[-692,-216]],[[288456,383587],[-506,-230]],[[287950,383357],[-283,-697],[-32,1164],[220,2460]],[[275018,383377],[-768,-3505],[-473,452]],[[273777,380324],[-279,2237],[-256,-553],[-440,1295]],[[256529,387976],[-3,-5248]],[[256526,382728],[-678,251]],[[255848,382979],[2,2497],[-255,-92],[-154,2933]],[[158378,381314],[146,-1464],[-437,1443]],[[160173,381790],[-408,-2224],[-354,-188],[-351,1518],[-215,-1698],[-283,502],[-160,1609]],[[239797,383250],[35,-3689]],[[239832,379561],[-1222,173]],[[238610,379734],[-54,2575]],[[255848,382979],[-1,-825],[-418,-677]],[[255429,381477],[-616,58]],[[254813,381535],[-309,1118],[-517,34]],[[253987,382687],[-10,489]],[[257618,385747],[6,-2451]],[[257624,383296],[-312,-1080]],[[257312,382216],[-630,-29]],[[256682,382187],[-156,541]],[[266613,385504],[-146,-2035],[-362,-1580]],[[266105,381889],[-246,1825],[-347,209]],[[265512,383923],[-368,2650]],[[261514,385063],[-513,-1353]],[[261001,383710],[-478,1772]],[[230661,381631],[-3,-1635],[-459,10]],[[230199,380006],[-886,-14]],[[209217,388123],[-12,-6998]],[[209205,381125],[-8,-7666]],[[209197,373459],[-808,1541]],[[208389,375000],[-823,1546],[-1023,-359],[-102,637]],[[206441,376824],[3,6377]],[[210755,383331],[-21,-1721],[-306,-20],[0,-1082],[-596,-8],[-593,529]],[[209239,381029],[-34,96]],[[226301,381632],[-1535,-18]],[[224766,381614],[-19,1639]],[[248654,382508],[-383,35],[1,-1620],[-477,-883]],[[247795,380040],[-127,736]],[[247668,380776],[-303,1892],[54,2935]],[[250756,387221],[-8,-4860]],[[250748,382361],[-1241,119]],[[249507,382480],[-308,1]],[[285430,387652],[553,-2587],[494,-4061],[-10,-1655],[-344,2010],[-710,2346],[-112,-1069],[-345,3018]],[[164734,386545],[-434,-1184],[-950,-7856],[-382,-2239]],[[162968,375266],[-758,4581]],[[162210,379847],[-187,2751]],[[187728,387742],[-228,-1434],[16,-5094]],[[187516,381214],[-1674,-25]],[[192580,387705],[27,-2493],[351,-3273],[-106,-713]],[[192852,381226],[-4142,-34],[-1194,22]],[[247668,380776],[-455,-1591]],[[247213,379185],[-466,-722],[-158,1359]],[[246589,379822],[-390,2375]],[[268978,383008],[-530,-70]],[[268448,382938],[-65,2420]],[[269001,386249],[-23,-3241]],[[268448,382938],[-363,-1281]],[[268085,381657],[-378,305],[-289,1389],[-223,-1372]],[[267195,381979],[-271,2367]],[[195319,381246],[2,-5061]],[[195321,376185],[-5,-7382]],[[195316,368803],[-5,-9039]],[[195311,359764],[-2662,-21]],[[192649,359743],[-2090,97]],[[190559,359840],[-1844,-32]],[[188715,359808],[653,1884],[604,385],[346,3275],[287,901],[-33,1956],[278,1645]],[[190850,369854],[446,2473],[227,3835],[527,220],[571,4056],[231,788]],[[263856,383669],[113,-1403]],[[263969,382266],[-621,-1698]],[[263348,380568],[-281,1465]],[[263067,382033],[-41,2921]],[[281006,383453],[-231,-1615]],[[280775,381838],[-817,1733]],[[279718,382246],[-89,-2346],[-162,-617]],[[279467,379283],[-168,-1840],[-296,-1251],[-422,177]],[[278581,376369],[-906,3632]],[[277675,380001],[127,1436],[-210,319]],[[251988,383176],[-8,-2447]],[[251980,380729],[-1183,-9]],[[250797,380720],[-49,1641]],[[237089,382382],[-24,-3302]],[[237065,379080],[-1548,436]],[[235517,379516],[3,6118]],[[172686,359243],[-1858,9194]],[[265512,383923],[-362,-1946]],[[265150,381977],[-326,1245],[-276,2095]],[[204361,383331],[336,-2212],[254,-3271],[312,-1387]],[[205263,376461],[44,-2691]],[[205307,373770],[-1620,-57]],[[203687,373713],[-1526,-10],[-2,1613],[-297,15]],[[201862,375331],[0,678],[-568,1790],[-287,-220]],[[201007,377579],[-1,3557]],[[289111,378680],[-677,-384]],[[288434,378296],[-6,32]],[[288428,378328],[-108,834],[337,902],[-201,3523]],[[289925,386798],[-186,-3801],[-305,-810],[-323,-3507]],[[166825,373543],[-110,722]],[[166715,374265],[-627,2326],[-335,-1722],[-420,-936],[-390,89],[-379,1183],[-853,-3610]],[[163711,371595],[-743,3671]],[[233026,385663],[-31,-6553]],[[232995,379110],[-1225,36]],[[231770,379146],[1,2434]],[[242254,383838],[30,-5137]],[[242284,378701],[-616,91]],[[241668,378792],[-306,22],[-345,3550],[-156,167]],[[258807,386267],[-62,-3640],[-147,-849]],[[258598,381778],[-366,-1124]],[[258232,380654],[2,1594],[-309,13],[3,1094],[-304,-59]],[[259425,386178],[1,-1624],[368,-2837]],[[259794,381717],[-134,-3193]],[[259660,378524],[-140,-131]],[[259520,378393],[-503,215],[-244,853],[-175,2317]],[[269924,382666],[-59,-1571],[261,-1815],[-318,-1930]],[[269808,377350],[-304,-1659]],[[269504,375691],[-230,1692]],[[269274,377383],[-144,2308],[-237,1273],[85,2044]],[[260097,383770],[-303,-2053]],[[284512,383385],[-92,-1945]],[[284420,381440],[-8,-27]],[[284412,381413],[-144,-224]],[[284268,381189],[-437,1843],[-150,-70]],[[283687,384676],[250,-96],[535,1272],[40,-2467]],[[267195,381979],[-57,-1464]],[[267138,380515],[-472,-1482]],[[266666,379033],[-181,318]],[[266485,379351],[-380,2538]],[[282632,385111],[-701,-4528]],[[281931,380583],[-408,650],[-297,-356]],[[281226,380877],[-451,961]],[[234259,385657],[-34,-6557]],[[234225,379100],[-1230,10]],[[235517,379516],[0,-428]],[[235517,379088],[-1292,12]],[[261001,383710],[173,-405],[-53,-2162]],[[261121,381143],[-14,-546]],[[261107,380597],[-355,-820],[-434,244],[-629,-1650]],[[259689,378371],[-29,153]],[[283114,384154],[232,-459]],[[283560,382988],[-758,-4755]],[[282802,378233],[-126,314]],[[282676,378547],[-383,1648],[-362,388]],[[271126,382301],[-263,-1063],[-13,-2367]],[[270850,378871],[-720,-941]],[[270130,377930],[-322,-580]],[[263067,382033],[-389,-1467]],[[262678,380566],[-442,233]],[[262236,380799],[74,3847]],[[265150,381977],[-286,-1440]],[[264864,380537],[-573,-892]],[[264291,379645],[-263,850],[-59,1771]],[[262236,380799],[-219,-1712]],[[262017,379087],[-896,2056]],[[223541,383259],[-1,-4853],[-304,-4]],[[223236,378402],[-914,9],[-1,1610],[-610,3]],[[221711,380024],[-41,3255]],[[199424,381138],[158,-1618],[-158,-1773]],[[199424,377747],[-472,-1110]],[[198952,376637],[-30,888],[-421,1384],[24,1647],[-207,678]],[[157695,381344],[162,-972],[-41,-3299],[179,-856],[-251,-1183],[-370,1731],[-114,-336],[-479,2414],[-374,-283],[165,2872],[317,-1457],[-464,3938]],[[266485,379351],[-223,-717],[-503,-259]],[[265759,378375],[-341,2566],[-268,1036]],[[162210,379847],[2,-6325],[-188,423],[-596,-1237],[-739,-3958]],[[160689,368750],[-239,1114],[0,5132]],[[160450,374996],[-71,4167]],[[160379,379163],[29,1258]],[[243830,381255],[-6,-1908],[-732,4],[-351,-755]],[[242741,378596],[-457,105]],[[288428,378328],[-760,-1368],[99,2154],[225,837]],[[287992,379951],[5,43]],[[287997,379994],[-216,-302],[-1,1870],[-264,-794],[434,2589]],[[281226,380877],[-275,-2361]],[[280951,378516],[-515,-3903]],[[280436,374613],[-425,-1184]],[[280011,373429],[-544,5854]],[[285766,378696],[-155,-920]],[[285611,377776],[-363,657],[-314,2280],[-163,-800]],[[284771,379913],[-351,1527]],[[284512,383385],[528,-1942],[635,-277],[253,-1943],[-162,-527]],[[241668,378792],[-8,-3016]],[[241660,375776],[-363,-1063],[-225,1683],[-655,61]],[[240417,376457],[-605,128]],[[239812,376585],[20,2976]],[[269274,377383],[-231,160],[-89,-1393]],[[268954,376150],[-910,2229],[-138,-652]],[[267906,377727],[-93,803]],[[267813,378530],[371,1947],[-99,1180]],[[277675,380001],[-469,-3994]],[[277206,376007],[-657,395],[-135,1144],[-337,-42]],[[276077,377504],[267,2102]],[[214814,383283],[8,-9753]],[[214822,373530],[1,-1754]],[[214823,371776],[-1967,-12]],[[212856,371764],[15,11603]],[[276077,377504],[-296,-1431],[-373,-3413]],[[275408,372660],[-430,-146],[-592,890]],[[274386,373404],[-399,2555]],[[273987,375959],[102,2169],[-312,2196]],[[267813,378530],[-479,65],[-196,1920]],[[206441,376824],[-330,1926],[-322,-2223],[-84,711],[-442,-777]],[[212856,371764],[-914,-4]],[[211942,371760],[-915,4]],[[211027,371764],[12,11575]],[[211027,371764],[-1822,7],[-8,1688]],[[258232,380654],[-83,-1403]],[[258149,379251],[-55,-2225],[-404,-1554]],[[257690,375472],[32,1005],[-295,274],[-178,1615]],[[257249,378366],[114,-4],[-51,3854]],[[273987,375959],[-386,-927]],[[273601,375032],[-357,1057],[-619,250],[-238,1485]],[[217438,383322],[-3,-8107],[40,-1726]],[[217475,373489],[-1218,0]],[[216257,373489],[-44,1699],[1,8110]],[[219879,383280],[1,-4863]],[[219880,378417],[-1219,28],[33,-4957]],[[218694,373488],[-1219,1]],[[216257,373489],[-1435,41]],[[253987,382687],[206,-1256],[-505,-5063]],[[253688,376368],[-787,325]],[[252901,376693],[11,6459]],[[224766,381614],[1,-6484]],[[224767,375130],[-1507,16]],[[223260,375146],[-24,3256]],[[221711,380024],[-1,-3245]],[[221710,376779],[-1831,17]],[[219879,376796],[1,1621]],[[252901,376693],[0,-15]],[[252901,376678],[-925,-16]],[[251976,376662],[4,4067]],[[284268,381189],[-150,-1311],[278,-2136]],[[284396,377742],[-309,-256],[-1,-1105]],[[284086,376381],[-456,-1904]],[[283630,374477],[-165,-177],[-222,1929],[-441,2004]],[[256682,382187],[-392,-3475]],[[256290,378712],[-307,-2568]],[[255983,376144],[-94,369]],[[255889,376513],[-415,787]],[[255474,377300],[-45,4177]],[[254813,381535],[-35,-5040]],[[254778,376495],[-630,72]],[[254148,376567],[54,-1761],[-336,-146]],[[253866,374660],[-178,1708]],[[272175,378164],[-318,-1099],[158,-2552]],[[272015,374513],[-260,-47]],[[271755,374466],[-295,397],[-169,2098],[-573,1278],[132,632]],[[249507,382480],[-7,-4915]],[[249500,377565],[-220,-2832]],[[249280,374733],[-473,1903],[-262,-565]],[[248545,376071],[-165,1642],[-585,2327]],[[238610,379734],[-22,-2902],[-171,-1635]],[[238417,375197],[-154,26]],[[238263,375223],[-509,95],[7,1074],[-716,163]],[[237045,376555],[20,2525]],[[250797,380720],[-133,-3247]],[[250664,377473],[-1164,92]],[[245319,382196],[-11,-8638]],[[245308,373558],[-149,-795]],[[245159,372763],[-438,51],[4,1622],[-612,34]],[[244113,374470],[-16,6768]],[[264291,379645],[-143,-3260]],[[264148,376385],[-273,-833]],[[263875,375552],[-122,1730],[-504,1185]],[[263249,378467],[99,2101]],[[246589,379822],[-14,-6361]],[[246575,373461],[-1267,97]],[[257249,378366],[-460,-1268]],[[256789,377098],[-280,-2533],[-526,1579]],[[259520,378393],[-23,-3367],[-403,-371]],[[259094,374655],[-945,4596]],[[263249,378467],[-138,-2638]],[[263111,375829],[-141,-279],[-100,2291]],[[262870,377841],[-192,2725]],[[265759,378375],[-26,-1497]],[[265733,376878],[-550,230]],[[265183,377108],[-319,3429]],[[228444,380031],[1,-3258]],[[228445,376773],[-1531,-4]],[[226914,376769],[0,4865]],[[231770,379146],[-5,-5695]],[[231765,373451],[0,-2430]],[[231765,371021],[-1573,61]],[[230192,371082],[7,8924]],[[226914,376769],[9,-3303],[-304,-24]],[[226619,373442],[-1831,-22]],[[224788,373420],[-21,1710]],[[255474,377300],[-169,-643],[-206,1280]],[[255099,377937],[-83,-2666],[-238,1224]],[[244113,374470],[-771,42],[-10,-3582]],[[243332,370930],[-613,69]],[[242719,370999],[22,7597]],[[190850,369854],[-4778,-85],[-898,125]],[[185174,369894],[-16,4888],[309,-23],[-28,1599],[335,1],[-29,4782]],[[285474,374121],[-189,-776]],[[285285,373345],[-143,1232],[-392,-213],[-211,1145],[-143,2233]],[[284412,381413],[24,-1012],[357,-714],[24,-1757],[347,-1481],[310,-2328]],[[198952,376637],[-342,-2418]],[[198610,374219],[-358,1511],[-614,-665],[-130,1368],[-1561,20],[-626,-268]],[[282676,378547],[-305,-5181]],[[282371,373366],[-288,723],[-132,1443],[-320,1091]],[[281631,376623],[-680,1893]],[[185174,369894],[-607,4],[0,-813]],[[184567,369085],[-377,-469],[-604,143],[0,868],[-616,2],[-1,1663],[-315,-252],[-1294,1]],[[262017,379087],[-182,-1209]],[[261835,377878],[-647,-598],[-256,976]],[[260932,378256],[175,2341]],[[201007,377579],[-383,-319],[-19,-4903],[45,-4703]],[[200650,367654],[-984,-5]],[[199666,367649],[-1,4038]],[[199665,371687],[0,2392],[-241,3668]],[[262870,377841],[-381,-297],[-271,-1165]],[[262218,376379],[-341,113]],[[261877,376492],[-42,1386]],[[251976,376662],[-1,-808]],[[251975,375854],[-1238,-25]],[[250737,375829],[-73,1644]],[[285611,377776],[352,-2379]],[[285963,375397],[-300,-592]],[[285663,374805],[-240,293],[-546,3121],[-106,1694]],[[248545,376071],[-481,-3793]],[[248064,372278],[-249,-32],[-722,3898],[380,1913],[-260,1128]],[[260932,378256],[-418,-2942],[-267,-430]],[[260247,374884],[-558,3487]],[[267906,377727],[-44,-1950]],[[267862,375777],[-303,91],[-437,-1812],[23,-1008]],[[267145,373048],[-650,2775]],[[266495,375823],[171,3210]],[[265183,377108],[-100,-1732]],[[265083,375376],[-218,283]],[[264865,375659],[-717,726]],[[160450,374996],[-1125,-1844],[-234,1488],[-260,115],[-482,1735]],[[158349,376490],[-209,1238],[349,1656],[315,-572],[373,668],[783,-708],[357,1506],[62,-1115]],[[230192,371082],[-1,-2432]],[[230191,368650],[-1749,-16]],[[228442,368634],[3,8139]],[[223260,375146],[0,-1720]],[[223260,373426],[-1521,36]],[[221739,373462],[-29,3317]],[[278540,374733],[-257,-158],[-226,-2494],[-255,-813]],[[277802,371268],[-172,-1567]],[[277630,369701],[-515,2398],[26,1888]],[[277141,373987],[65,2020]],[[278581,376369],[-41,-1636]],[[248064,372278],[-101,-552]],[[247963,371726],[-1081,38]],[[246882,371764],[-315,-16],[8,1713]],[[163711,371595],[-1656,-4355],[43,-1065],[-727,-3846]],[[161371,362329],[-154,872],[-328,-612],[-163,2474],[146,498],[-186,3197]],[[160686,368758],[3,-8]],[[239812,376585],[-307,30],[-14,-1889]],[[239491,374726],[-1074,471]],[[237045,376555],[-22,-4864]],[[237023,371691],[-1517,258]],[[235506,371949],[0,363]],[[235506,372312],[11,6776]],[[266495,375823],[-378,-675]],[[266117,375148],[-384,1730]],[[280011,373429],[-196,-1763],[-242,63],[-67,-1661]],[[279506,370068],[-122,-195]],[[279384,369873],[-552,4224],[-292,636]],[[259094,374655],[-346,-3823]],[[258748,370832],[-372,-503],[-265,1038],[-246,-1075]],[[257865,370292],[-129,1809]],[[257736,372101],[-46,3371]],[[232995,379110],[-18,-5688]],[[232977,373422],[-1212,29]],[[234225,379100],[-29,-5681]],[[234196,373419],[-1219,3]],[[235506,372312],[-1310,27]],[[234196,372339],[0,1080]],[[287953,369117],[-126,1004]],[[287827,370121],[-283,134],[320,3324],[379,1762],[191,2955]],[[289111,378680],[-116,-2440],[-517,-3407],[-55,-2436],[-470,-1280]],[[271755,374466],[-438,-677],[176,-948],[-282,-761]],[[271211,372080],[-347,405],[-184,-776],[-249,1135],[-83,2839],[-218,2247]],[[286401,372837],[-192,2274],[-246,286]],[[285766,378696],[289,-8],[647,-2450],[-301,-3401]],[[242719,370999],[-614,37]],[[242105,371036],[2,817],[-459,1220],[12,2703]],[[208389,375000],[-289,-1427],[-262,-3093],[-561,-3167],[-509,-171],[-616,-1904]],[[206152,365238],[46,2010],[-135,4024],[-310,764],[-525,-1496]],[[205228,370540],[79,3230]],[[283630,374477],[147,-1396],[514,-1038],[-44,-591]],[[284247,371452],[-292,-1688]],[[283955,369764],[-489,1286],[-105,1395],[-525,503]],[[282836,372948],[-465,418]],[[281362,373717],[-225,-1081]],[[281137,372636],[-621,1277],[-80,700]],[[281631,376623],[-269,-2906]],[[260247,374884],[160,-1473]],[[260407,373411],[-544,-3500],[-48,-1933]],[[259815,367978],[-431,176]],[[259384,368154],[-184,2177],[-263,88]],[[258937,370419],[-189,413]],[[263875,375552],[-250,-1451]],[[263625,374101],[-126,-753],[-407,1614]],[[263092,374962],[19,867]],[[268954,376150],[-162,-516],[84,-2449]],[[268876,373185],[-340,667],[-495,-733]],[[268041,373119],[-179,2658]],[[219879,376796],[30,-8168]],[[219909,368628],[-1216,-7]],[[218693,368621],[1,4867]],[[257736,372101],[-514,1415]],[[257222,373516],[-85,1915],[-348,1667]],[[273601,375032],[187,-2459],[-193,530],[-410,-2364]],[[273185,370739],[-292,-249],[-64,-1205]],[[272829,369285],[-281,1663],[-394,3474],[-139,91]],[[261877,376492],[-288,-708],[-405,-2399]],[[261184,373385],[-333,-3287]],[[260851,370098],[-286,-39],[142,1604],[-300,1748]],[[271211,372080],[-148,-2078]],[[271063,370002],[-199,-676]],[[270864,369326],[-114,472]],[[270750,369798],[-437,240],[-582,3546]],[[269731,373584],[-227,2107]],[[255889,376513],[81,-2236],[-378,-1771]],[[255592,372506],[-241,-671]],[[255351,371835],[-666,-172]],[[254685,371663],[-57,1803],[-480,3101]],[[285285,373345],[270,-2335]],[[285555,371010],[-138,-2862]],[[285417,368148],[-256,2601]],[[285161,370749],[-819,3092],[-256,2540]],[[199665,371687],[-1364,1]],[[198301,371688],[8,1040],[301,1491]],[[263092,374962],[-79,-1906]],[[263013,373056],[-780,-638]],[[262233,372418],[68,3271],[-83,690]],[[201862,375331],[-47,-8024]],[[201815,367307],[-1165,-220],[0,567]],[[269731,373584],[-340,-1357],[-300,301]],[[269091,372528],[-215,657]],[[277141,373987],[-397,706],[-568,-2859]],[[276176,371834],[-345,-947],[-213,581]],[[275618,371468],[-210,1192]],[[250737,375829],[-7,-4869]],[[250730,370960],[-827,-8],[-198,-520]],[[249705,370432],[27,2111],[-434,1360],[-18,830]],[[266117,375148],[-215,-2029]],[[265902,373119],[-39,-3]],[[265863,373116],[-510,788],[-270,1472]],[[257222,373516],[17,-1185],[-615,-2106]],[[256624,370225],[-1032,2281]],[[264865,375659],[-28,-5332]],[[264837,370327],[-303,-813]],[[264534,369514],[-414,301]],[[264120,369815],[-495,4286]],[[253866,374660],[-364,-2527],[71,-1661]],[[253573,370472],[-674,471]],[[252899,370943],[2,5735]],[[262233,372418],[-14,-886]],[[262219,371532],[-865,379],[-170,1474]],[[221739,373462],[9,-4974]],[[221748,368488],[-1535,133]],[[220213,368621],[-304,7]],[[228442,368634],[-1822,-25]],[[226620,368609],[-1,4833]],[[252899,370943],[-103,7]],[[252796,370950],[-827,-12]],[[251969,370938],[6,4916]],[[285161,370749],[-468,-117]],[[284693,370632],[-446,820]],[[240417,376457],[5,-7665]],[[240422,368792],[-608,47],[-4,-1332]],[[239810,367507],[-305,42]],[[239505,367549],[-14,7177]],[[160686,368758],[-1094,44],[-338,-404]],[[159254,368398],[-341,754],[-149,3106],[-463,2406],[48,1826]],[[282836,372948],[-67,-2692]],[[282769,370256],[-815,2165],[-30,-1006],[-320,603]],[[281604,372018],[-242,1699]],[[249705,370432],[0,-110]],[[249705,370322],[-946,616]],[[248759,370938],[-796,-36]],[[247963,370902],[0,824]],[[238263,375223],[35,-4781]],[[238298,370442],[-1280,166]],[[237018,370608],[5,1083]],[[166715,374265],[-765,-4053],[-188,-2675],[-313,4],[-790,-4320]],[[164659,363221],[-270,1013],[-380,3367],[-298,3994]],[[254685,371663],[-553,-2946]],[[254132,368717],[-234,1246],[-124,-776]],[[253774,369187],[-201,1285]],[[242105,371036],[-9,-2451]],[[242096,368585],[-1210,161]],[[240886,368746],[-464,46]],[[198301,371688],[-2633,-143],[-352,-2742]],[[268041,373119],[135,-3677],[-93,-602]],[[268083,368840],[-64,308]],[[268019,369148],[-398,2375],[-439,724]],[[267182,372247],[-37,801]],[[273842,367755],[-4,20]],[[273838,367775],[-653,2964]],[[274386,373404],[-544,-5649]],[[251969,370938],[-926,-51]],[[251043,370887],[-313,73]],[[267182,372247],[-389,564],[-373,-1145]],[[266420,371666],[-518,1453]],[[265863,373116],[-284,-991],[-227,-2237]],[[265352,369888],[-515,439]],[[286401,372837],[-31,-1676],[-479,915],[-228,2729]],[[203687,373713],[-2,-6471]],[[203685,367242],[-1781,53]],[[201904,367295],[-89,12]],[[158120,372965],[-303,-2]],[[157817,372963],[-33,1344],[287,552],[49,-1894]],[[239505,367549],[-1221,189]],[[238284,367738],[14,2704]],[[264120,369815],[-276,-992]],[[263844,368823],[-589,2769]],[[263255,371592],[-242,1464]],[[224788,373420],[0,-4871]],[[224788,368549],[-1526,-10]],[[223262,368539],[-2,4887]],[[279384,369873],[-416,-2088]],[[278968,367785],[-186,-655]],[[278782,367130],[-282,1313]],[[278500,368443],[-442,1074],[-256,1751]],[[211942,371760],[-29,-11975]],[[211913,359785],[-2568,-74]],[[209345,359711],[-3196,-18]],[[206149,359693],[3,5545]],[[277630,369701],[-234,-1501],[-213,613],[-430,-1507],[-95,-1769]],[[276658,365537],[-630,2108]],[[276028,367645],[291,2275],[-143,1914]],[[245159,372763],[-5,-2033]],[[245154,370730],[-438,88],[-5,-1634],[288,-70],[-3,-1602]],[[244996,367512],[-1212,138]],[[243784,367650],[-301,26],[0,3252],[-151,2]],[[272829,369285],[-248,-1599]],[[272581,367686],[-815,1322],[-628,339],[-75,655]],[[281137,372636],[-25,-1023],[-602,-5508]],[[280510,366105],[-361,1084]],[[280149,367189],[-643,2879]],[[167514,370686],[-806,-4323],[-52,-2727],[-160,-1067],[-478,-108],[49,-890],[-436,-1627],[-319,-2893],[-1552,-1282],[-242,1461],[-239,3370]],[[163279,360600],[183,976],[522,1046],[675,599]],[[285850,370354],[-295,656]],[[285474,374121],[422,-2948],[651,-1011],[-346,-835],[-351,1027]],[[269091,372528],[-167,-3365],[109,-686],[-352,-3385]],[[268681,365092],[-160,2649],[-438,1099]],[[205228,370540],[-718,-4116]],[[204510,366424],[-823,2],[-2,816]],[[281604,372018],[-166,-3772]],[[281438,368246],[-287,-1612]],[[281151,366634],[-415,-1159],[-226,630]],[[270750,369798],[-954,-4452]],[[269796,365346],[-678,-1792]],[[269118,363554],[-32,-122]],[[269086,363432],[-466,1404]],[[268620,364836],[61,256]],[[246882,371764],[-42,-6070]],[[246840,365694],[-2,-838],[-515,-29]],[[246323,364827],[-104,1909],[11,4271],[-1076,-277]],[[216257,373489],[3,-6477]],[[216260,367012],[-86,2]],[[216174,367014],[-1351,13]],[[214823,367027],[0,4749]],[[257865,370292],[-200,-146],[146,-3006]],[[257811,367140],[-547,-1924],[-253,-1484]],[[257011,363732],[-559,3794]],[[256452,367526],[172,2699]],[[217475,373489],[0,-6490]],[[217475,366999],[-1215,13]],[[218693,368621],[0,-1623]],[[218693,366998],[-1158,2]],[[217535,367000],[-60,-1]],[[223262,368539],[4,-1605]],[[223266,366934],[-1483,-59]],[[221783,366875],[-35,1613]],[[226620,368609],[1,-1637]],[[226621,366972],[-1512,-41]],[[225109,366931],[-321,1],[0,1617]],[[232977,373422],[0,-6492]],[[232977,366930],[-1214,49]],[[231763,366979],[2,4042]],[[234196,372339],[0,-5412]],[[234196,366927],[-1206,3]],[[232990,366930],[-13,0]],[[260851,370098],[153,-1651]],[[261004,368447],[-327,81]],[[260677,368528],[-206,-892]],[[260471,367636],[-656,342]],[[262219,371532],[-27,-1601]],[[262192,369931],[-95,-2448]],[[262097,367483],[-273,950],[-278,-893],[-215,1025],[-327,-118]],[[275618,371468],[-300,-1181],[80,-1044],[-490,-1589]],[[274908,367654],[-100,1094],[-720,-2036],[-246,1043]],[[266420,371666],[-159,-2460]],[[266261,369206],[-144,586],[-553,-948],[-155,568]],[[265409,369412],[-57,476]],[[263255,371592],[-527,-1618]],[[262728,369974],[-536,-43]],[[283955,369764],[143,-836]],[[284098,368928],[-199,-2026]],[[283899,366902],[-182,62]],[[283717,366964],[-298,1139]],[[283419,368103],[99,1639],[-146,1185]],[[283372,370927],[-246,-568]],[[283126,370359],[-198,-214]],[[282928,370145],[-159,111]],[[158120,372965],[96,-2153],[271,-374],[409,-1981]],[[158896,368457],[-209,-644],[106,-2702]],[[158793,365111],[-4,-1304],[-465,-535],[78,-1485]],[[158402,361787],[-314,1660],[11,3040],[-319,2976],[37,3500]],[[268019,369148],[-408,283],[-84,-2105]],[[267527,367326],[-252,702],[-463,-1950],[-186,747],[-277,-816]],[[266349,366009],[-88,3197]],[[282769,370256],[-560,-2687]],[[282209,367569],[-433,1404],[-338,-727]],[[256452,367526],[-546,-453]],[[255906,367073],[-158,651],[-62,2671]],[[255686,370395],[-335,1440]],[[235506,371949],[0,-5388]],[[235506,366561],[0,-480]],[[235506,366081],[-1273,28]],[[234233,366109],[-37,818]],[[276028,367645],[-525,-1521]],[[275503,366124],[-183,485],[-294,-965]],[[275026,365644],[-118,2010]],[[206149,359693],[-184,-2]],[[205965,359691],[-1385,13]],[[204580,359704],[-148,938],[143,4466],[-65,1316]],[[237018,370608],[-19,-4325]],[[236999,366283],[-1493,278]],[[255686,370395],[-1221,-4085]],[[254465,366310],[33,525]],[[254498,366835],[-359,563],[-7,1319]],[[247963,370902],[3,-5312],[-200,55]],[[247766,365645],[-926,49]],[[214823,367027],[-1,-7366]],[[214822,359661],[-2676,121]],[[212146,359782],[-233,3]],[[198301,371688],[-141,-896],[-30,-2362],[-478,-2240],[-241,-2267],[2,-1425],[-247,-2726]],[[197166,359772],[-1855,-8]],[[199666,367649],[1,-7868]],[[199667,359781],[-2501,-9]],[[163279,360600],[-1049,-5634]],[[162230,354966],[-621,1774],[-205,2320]],[[161404,359060],[-33,3269]],[[263844,368823],[-156,-2927]],[[263688,365896],[-150,509],[-457,-2191]],[[263081,364214],[-5,2272],[-355,1236],[7,2252]],[[284693,370632],[402,-618],[175,-1717]],[[285270,368297],[-384,-511],[-28,-974]],[[284858,366812],[-760,2116]],[[259384,368154],[-65,-2032],[-241,-92]],[[259078,366030],[-868,-273]],[[258210,365757],[-399,1383]],[[278500,368443],[-229,-637],[32,-1405]],[[278303,366401],[-518,-5580]],[[277785,360821],[-108,-926],[-313,672]],[[277364,360567],[-363,2794],[-342,617]],[[276659,363978],[-1,1559]],[[184567,369085],[6,-9298]],[[184573,359787],[-3209,1]],[[231763,366979],[-8,-1628]],[[231755,365351],[-1561,66]],[[230194,365417],[-3,3233]],[[246323,364827],[-123,-4110]],[[246200,360717],[-515,62],[-148,783]],[[245537,361562],[-47,1372],[-348,1595],[-44,2975],[-102,8]],[[249705,370322],[275,-3108],[-171,-1185]],[[249809,366029],[-13,-1567]],[[249796,364462],[-367,-344],[-402,-1991]],[[249027,362127],[-283,3]],[[248744,362130],[15,8808]],[[243784,367650],[-24,-6958]],[[243760,360692],[-1208,136]],[[242552,360828],[-452,64]],[[242100,360892],[-4,7693]],[[253774,369187],[-63,-598],[-543,-370],[-221,-906]],[[252947,367313],[-159,350]],[[252788,367663],[8,3287]],[[252788,367663],[-169,-665],[-98,-2358],[240,-2056],[-183,-1537]],[[252578,361047],[0,1701],[-613,3308]],[[251965,366056],[4,4882]],[[283419,368103],[-491,2042]],[[251965,366056],[-546,-28],[-64,-613]],[[251355,365415],[-321,507]],[[251034,365922],[9,4965]],[[251034,365922],[-568,97]],[[250466,366019],[-657,10]],[[285850,370354],[308,-1052]],[[286158,369302],[-18,-1124]],[[286140,368178],[152,-3489],[-321,-310],[-554,3769]],[[248744,362130],[-259,20],[1,-1356],[-425,-246]],[[248061,360548],[-311,844],[16,4253]],[[273838,367775],[29,-1536],[-368,-994]],[[273499,365245],[-679,-1091]],[[272820,364154],[-382,1913]],[[272438,366067],[143,1619]],[[168203,368402],[-33,-2228],[201,-311],[166,-3441],[607,-1527],[212,-3239],[-22,-2583]],[[169334,355073],[-1716,-82],[-1,-1560],[-890,26],[-3,-1596],[-460,19],[-298,-1620]],[[165966,350260],[-246,-1296],[-814,-375],[-3,-4045],[-992,-5108]],[[163911,339436],[-928,3750],[56,1793],[-140,1162]],[[162899,346141],[229,1144],[-1,2966],[-897,4715]],[[238284,367738],[-14,-2707]],[[238270,365031],[-1188,150]],[[237082,365181],[-83,1102]],[[265409,369412],[279,-3141]],[[265688,366271],[-442,-1825]],[[265246,364446],[-535,1287]],[[264711,365733],[-177,3781]],[[255906,367073],[-251,-1812],[146,-2556]],[[255801,362705],[-529,-954],[-438,809]],[[254834,362560],[-346,1711],[-23,2039]],[[283717,366964],[-7,-1436]],[[283710,365528],[-51,69]],[[283659,365597],[-117,-1255]],[[283542,364342],[-75,-143]],[[283467,364199],[-36,-77]],[[283431,364122],[-87,-195]],[[283344,363927],[-565,790]],[[282779,364717],[-265,34],[-366,1828],[61,990]],[[280149,367189],[-243,-2778]],[[279906,364411],[-397,-807]],[[279509,363604],[-259,695],[-282,3486]],[[287953,369117],[-346,-3597],[-150,-3563],[-151,2650],[266,5441],[255,73]],[[263081,364214],[-502,-2273]],[[262579,361941],[-398,1304]],[[262181,363245],[-37,1322],[-302,999]],[[261842,365566],[255,1917]],[[272438,366067],[-555,-2439],[-498,578]],[[271385,364206],[-316,930],[-383,3657],[178,533]],[[254498,366835],[-802,-2923],[-19,-787]],[[253677,363125],[-271,-607]],[[253406,362518],[-71,2344],[-388,2451]],[[188715,359808],[-3142,-15]],[[185573,359793],[-1000,-6]],[[266349,366009],[57,-1412]],[[266406,364597],[-349,1839],[-369,-165]],[[264711,365733],[-224,-683],[-203,-2441]],[[264284,362609],[-596,3287]],[[271385,364206],[-448,-1771]],[[270937,362435],[-326,-1378],[-364,-500]],[[270247,360557],[-283,4288],[-168,501]],[[286158,369302],[207,215],[310,-1575],[-73,-2372],[-462,2608]],[[268620,364836],[-243,-50],[-502,-1356]],[[267875,363430],[-354,1381],[6,2515]],[[282779,364717],[-405,-1350]],[[282374,363367],[-1213,1929]],[[281161,365296],[-10,1338]],[[284858,366812],[77,-164]],[[284935,366648],[-7,-2001],[-380,948],[-673,137],[24,1170]],[[240886,368746],[3,-7717]],[[240889,361029],[-605,67]],[[240284,361096],[-452,335]],[[239832,361431],[-22,6076]],[[161404,359060],[-763,407],[-257,-1537]],[[160384,357930],[-486,2766],[-658,1780],[-447,2635]],[[158896,368457],[358,-59]],[[261842,365566],[-523,-2202]],[[261319,363364],[-642,5164]],[[242100,360892],[-1211,137]],[[275026,365644],[-484,-1303]],[[274542,364341],[-690,-1814]],[[273852,362527],[-445,2380],[92,338]],[[230194,365417],[-2,-5660]],[[230192,359757],[-625,5]],[[229567,359762],[-1109,1]],[[228458,359763],[-16,8871]],[[228458,359763],[-876,-6]],[[227582,359757],[-948,0]],[[226634,359757],[-13,7215]],[[220213,368621],[49,-8799]],[[220262,359822],[-1515,-40]],[[218747,359782],[-2,7215],[-52,1]],[[221783,366875],[7,-7101]],[[221790,359774],[-1286,38]],[[220504,359812],[-242,10]],[[225109,366931],[7,-7184]],[[225116,359747],[-550,11]],[[224566,359758],[-1269,13]],[[223297,359771],[-31,7163]],[[261319,363364],[-484,-1545]],[[260835,361819],[-445,1353]],[[260390,363172],[-31,2226],[112,2238]],[[278782,367130],[-479,-729]],[[176230,341181],[676,-3535]],[[176906,337646],[-237,-293],[-2131,-6],[-3163,16]],[[171375,337363],[-1036,-168]],[[170339,337195],[74,1516],[-404,8051],[81,566],[-423,2802],[-72,2164],[-261,2779]],[[285483,364729],[247,-950]],[[285730,363779],[-49,-868]],[[285681,362911],[-94,912],[-633,479],[-19,2346]],[[285270,368297],[233,-1659]],[[285503,366638],[-153,-1180]],[[285350,365458],[133,-729]],[[260390,363172],[-160,-225]],[[260230,362947],[-453,-403],[-418,352]],[[259359,362896],[21,897],[-302,2237]],[[267875,363430],[-170,-1501],[19,-1797],[-189,-331]],[[267535,359801],[-167,368]],[[267368,360169],[-60,2882],[-338,936],[-80,1342],[-349,-222],[-82,-931]],[[266459,364176],[-53,421]],[[279509,363604],[-224,-3408]],[[279285,360196],[-519,775]],[[278766,360971],[-292,-175],[-159,1424],[-530,-1399]],[[239832,361431],[-1514,177]],[[238318,361608],[-48,3423]],[[253406,362518],[-128,-3094]],[[253278,359424],[-344,1547],[-334,-766]],[[252600,360205],[-233,1071]],[[252367,361276],[211,-229]],[[245537,361562],[-556,-176],[-16,-3767]],[[244965,357619],[-1212,97]],[[243753,357716],[7,2976]],[[201904,367295],[0,-3259],[564,-4371]],[[202468,359665],[-2632,116]],[[199836,359781],[-169,0]],[[276659,363978],[-321,-1646],[-128,663],[-334,-926]],[[275876,362069],[-139,-177]],[[275737,361892],[-37,2241],[-197,1991]],[[276171,365518],[-31,-845]],[[276140,364673],[211,-935],[217,1690],[-397,90]],[[257011,363732],[-118,-2665]],[[256893,361067],[-311,-151]],[[256582,360916],[-548,-371],[-28,565]],[[256006,361110],[-205,1595]],[[281161,365296],[-22,-3279]],[[281139,362017],[-569,-758]],[[280570,361259],[-694,2327],[30,825]],[[204580,359704],[-804,-10]],[[203776,359694],[-1308,-29]],[[258405,362945],[-625,205],[-142,-3375]],[[257638,359775],[-745,1292]],[[258210,365757],[195,-2812]],[[216174,367014],[4,-7320]],[[216178,359694],[-1317,-41]],[[214861,359653],[-39,8]],[[217535,367000],[4,-7258]],[[217539,359742],[-1361,-48]],[[218747,359782],[-870,-30]],[[217877,359752],[-338,-10]],[[232990,366930],[-4,-7162]],[[232986,359768],[-736,0]],[[232250,359768],[-495,-4]],[[231755,359764],[0,5587]],[[226634,359757],[-863,-11]],[[225771,359746],[-655,1]],[[223297,359771],[-1270,0]],[[222027,359771],[-237,3]],[[234233,366109],[3,-6336]],[[234236,359773],[-930,-5]],[[233306,359768],[-320,0]],[[254834,362560],[-147,-2742]],[[254687,359818],[-400,-772]],[[254287,359046],[-461,3988],[-149,91]],[[285503,366638],[154,-1165],[635,-2093],[-66,-1012]],[[286226,362368],[53,-609]],[[286279,361759],[-115,-211]],[[286164,361548],[-434,2231]],[[285483,364729],[-133,729]],[[237082,365181],[-19,-4504]],[[237063,360677],[-1557,162]],[[235506,360839],[0,5242]],[[275737,361892],[-473,-1709],[-546,-689]],[[274718,359494],[-101,1954]],[[274617,361448],[153,1099]],[[274770,362547],[-228,1794]],[[266459,364176],[-121,-2911],[119,-2630]],[[266457,358635],[-224,322]],[[266233,358957],[-784,1845]],[[265449,360802],[-274,2103],[71,1541]],[[264091,359038],[-613,-1731]],[[263478,357307],[-281,2109],[-435,319]],[[262762,359735],[-183,2206]],[[264284,362609],[-193,-3571]],[[235506,360839],[0,-1078]],[[235506,359761],[-1085,11]],[[234421,359772],[-185,1]],[[259359,362896],[-159,-1977]],[[259200,360919],[-468,373],[-327,1653]],[[276140,364673],[31,845]],[[252367,361276],[-1008,2722]],[[251359,363998],[-4,1417]],[[272820,364154],[-287,-1786],[161,-862],[-535,-1063],[70,-474]],[[272229,359969],[-685,-1435],[-271,477]],[[271273,359011],[-336,3424]],[[250466,366019],[-48,-4180],[274,-850]],[[250692,360989],[92,-1564]],[[250784,359425],[-347,1556],[-155,-1005]],[[250282,359976],[-177,539],[-309,3947]],[[265449,360802],[-249,-1448],[-375,-410]],[[264825,358944],[-564,-169]],[[264261,358775],[-170,263]],[[251359,363998],[-15,-29]],[[251344,363969],[-427,-1199],[-225,-1781]],[[267368,360169],[-217,-969],[-641,-1367]],[[266510,357833],[-53,802]],[[248061,360548],[-409,-2218]],[[247652,358330],[-1170,82]],[[246482,358412],[-282,2305]],[[283884,365227],[441,265],[239,-1371]],[[284564,364121],[-405,-2255]],[[284159,361866],[-678,-2215]],[[283481,359651],[-2,3311]],[[283479,362962],[63,1380]],[[283659,365597],[225,-370]],[[262181,363245],[-452,-3529],[-71,-1327]],[[261658,358389],[-614,240]],[[261044,358629],[-209,3190]],[[270247,360557],[-500,-1318]],[[269747,359239],[-387,951],[-242,3364]],[[231755,359764],[-101,-4]],[[231654,359760],[-1462,-3]],[[273852,362527],[-162,-1380]],[[273690,361147],[-561,-945],[-310,462],[-429,-1770]],[[272390,358894],[-161,1075]],[[282112,359572],[-317,633]],[[281795,360205],[-220,-114],[-436,1926]],[[282374,363367],[-290,-906],[28,-2889]],[[238318,361608],[-4,-1905]],[[238314,359703],[-2,-1358]],[[238312,358345],[-1259,166]],[[237053,358511],[10,2166]],[[160384,357930],[-174,-102]],[[160210,357828],[-281,264],[-164,-998]],[[159765,357094],[-379,2271],[-464,-404],[-520,2826]],[[283344,363927],[135,-965]],[[283481,359651],[-614,-2145]],[[282867,357506],[-109,311]],[[282758,357817],[-299,1492],[-347,263]],[[269086,363432],[-450,-1508],[10,-1311],[-407,-1312]],[[268239,359301],[-193,764],[-584,-1127],[73,863]],[[250282,359976],[-572,-2622]],[[249710,357354],[-479,-188]],[[249231,357166],[11,1267],[-274,2900],[59,794]],[[280570,361259],[-138,-3504]],[[280432,357755],[-433,-3598]],[[279999,354157],[-48,2703],[-666,3336]],[[274770,362547],[-153,-1099]],[[274718,359494],[-251,-983]],[[274467,358511],[-297,-983]],[[274170,357528],[-480,3619]],[[285497,362381],[-63,-1487],[-424,-1183]],[[285010,359711],[-289,-964]],[[284721,358747],[-34,2055],[-528,1064]],[[284564,364121],[581,-507],[352,-1233]],[[277364,360567],[-130,-3464]],[[277234,357103],[-337,-1260],[-663,787],[-116,-677]],[[276118,355953],[-70,868],[-471,580]],[[275577,357401],[360,2850],[-61,1818]],[[251671,358926],[-486,-648],[-308,443]],[[250877,358721],[-93,704]],[[251344,363969],[327,-5043]],[[252600,360205],[-4,-1497]],[[252596,358708],[-916,78]],[[251680,358786],[-9,140]],[[286164,361548],[133,-1960]],[[286297,359588],[-664,2557],[48,766]],[[269747,359239],[82,-1209],[-301,-552]],[[269528,357478],[-635,40],[-381,-1462]],[[268512,356056],[-298,1723]],[[268214,357779],[25,1522]],[[259200,360919],[-148,-2366]],[[259052,358553],[-666,-2939]],[[258386,355614],[14,578],[-508,429],[-79,979]],[[257813,357600],[-175,2175]],[[262762,359735],[-638,-2584]],[[262124,357151],[-421,-78]],[[261703,357073],[-45,1316]],[[261044,358629],[-402,-2234]],[[260642,356395],[-399,432]],[[260243,356827],[-13,6120]],[[254287,359046],[-781,-1739]],[[253506,357307],[-228,2117]],[[260243,356827],[-662,-2212]],[[259581,354615],[-529,3938]],[[256006,361110],[-211,-8003]],[[255795,353107],[-851,-64]],[[254944,353043],[-147,-18]],[[254797,353025],[95,6137],[-205,656]],[[285916,358061],[-1039,-4907]],[[284877,353154],[-34,77]],[[284843,353231],[-42,1109]],[[284801,354340],[305,3818],[-96,1553]],[[285497,362381],[59,-1873],[467,-1557],[-107,-890]],[[271273,359011],[-157,-551]],[[271116,358460],[-308,-1199],[-364,-179],[-73,-1054],[-635,-1658]],[[269736,354370],[-208,3108]],[[278766,360971],[-356,-9724]],[[278410,351247],[-345,-4]],[[278065,351243],[106,760],[-263,1161],[-285,-493],[86,-1438]],[[277709,351233],[-112,-1]],[[277597,351232],[-569,21]],[[277028,351253],[206,5850]],[[275577,357401],[-419,-1374],[-218,-1669]],[[274940,354358],[-473,4153]],[[249231,357166],[-25,-4320],[-720,33]],[[248486,352879],[-527,25]],[[247959,352904],[-9,1582],[-298,3844]],[[281795,360205],[-66,-4560]],[[281729,355645],[-596,561],[-701,1549]],[[286315,361864],[-36,-105]],[[286315,361864],[307,-509],[-325,-1767]],[[284721,358747],[-1328,-4408]],[[283393,354339],[-167,252],[88,2639],[-447,276]],[[246482,358412],[44,-2141]],[[246526,356271],[-1263,227]],[[245263,356498],[-303,38],[5,1083]],[[240284,361096],[-17,-4867]],[[240267,356229],[-1101,142]],[[239166,356371],[-106,8],[13,3262],[-759,62]],[[274170,357528],[-841,-1351]],[[273329,356177],[-156,-696],[-455,-110]],[[272718,355371],[-328,3523]],[[257813,357600],[-221,-728],[-203,-3628]],[[257389,353244],[-828,-107]],[[256561,353137],[21,7779]],[[256561,353137],[-151,-14]],[[256410,353123],[-615,-16]],[[242552,360828],[-65,-4878]],[[242487,355950],[-1819,221]],[[240668,356171],[-401,58]],[[253506,357307],[130,-2237]],[[253636,355070],[-1045,64]],[[252591,355134],[5,3574]],[[250877,358721],[-61,-2945]],[[250816,355776],[-215,-1258],[64,-1202]],[[250665,353316],[-204,-1647],[-215,1259]],[[250246,352928],[-536,4426]],[[279999,354157],[-151,-412],[-88,-2492]],[[279760,351253],[-173,-5]],[[279587,351248],[-953,1]],[[278634,351249],[-224,-2]],[[243753,357716],[-40,-7253]],[[243713,350463],[-1248,-11]],[[242465,350452],[22,5498]],[[237053,358511],[-17,-3425]],[[237036,355086],[-1531,348]],[[235505,355434],[1,4327]],[[266233,358957],[17,-976],[-599,-2205],[-221,-1818]],[[265430,353958],[-521,3091],[-84,1895]],[[282758,357817],[6,-3369],[-310,-3129]],[[282454,351319],[-369,-16]],[[282085,351303],[-408,-9]],[[281677,351294],[52,4351]],[[268214,357779],[-540,-708],[-177,-2081],[-906,-1448]],[[266591,353542],[-141,2662],[60,1629]],[[272718,355371],[-733,-1028],[-226,-1288]],[[271759,353055],[-261,2813],[-382,2592]],[[192649,359743],[0,-24860],[483,-3],[-46,-2691],[-3,-12919],[-57,-4902],[46,-1624],[-29,-12941],[-91,-9],[0,-3908]],[[192952,295886],[-303,169]],[[192649,296055],[0,7877],[-2090,0],[0,4900]],[[190559,308832],[0,51008]],[[190559,308832],[-267,69],[-549,2097],[-586,1352],[-625,-723],[-214,1094]],[[188318,312721],[8,6150],[-629,15],[-1,3313],[-1550,-154],[-3,3263],[-297,21],[4,2068],[-380,-319],[-149,1054],[-899,1045],[-616,2799],[-445,401]],[[183361,332377],[1,5120],[66,1656],[-122,2775],[363,944],[70,1118],[518,1618],[615,865],[469,2332],[-89,1927],[91,1455],[24,3834],[237,2874],[-31,898]],[[254797,353025],[-1049,763]],[[253748,353788],[-112,1282]],[[233306,359768],[-67,-1052],[1,-6427]],[[233240,352289],[-1054,-2]],[[232186,352287],[-1,6412],[65,1069]],[[231654,359760],[-1,-10708]],[[231653,349052],[-2,-4884],[-743,12]],[[230908,344180],[41,1148],[-278,232],[-357,1844],[-191,-673],[-230,2345],[-236,376],[-145,2238],[-299,-1766],[-371,677]],[[228842,350601],[273,1701],[-395,-68]],[[228720,352234],[-26,1706],[357,-36],[129,1256],[379,564],[8,4038]],[[224566,359758],[31,-9970]],[[224597,349788],[-210,-1342],[-482,1078],[-172,1064],[-325,12]],[[223408,350600],[-48,1718],[-452,3424],[-433,679]],[[222475,356421],[0,1]],[[222475,356422],[-448,3349]],[[234421,359772],[22,-6122]],[[234443,353650],[-18,-2995]],[[234425,350655],[-897,9]],[[233528,350664],[-1,1625],[-287,0]],[[232186,352287],[-8,-3237]],[[232178,349050],[-525,2]],[[227582,359757],[-1,-7542]],[[227581,352215],[-1788,-1]],[[225793,352214],[-22,7532]],[[225793,352214],[0,-2428]],[[225793,349786],[-1196,2]],[[228720,352234],[-1136,-19]],[[227584,352215],[-3,0]],[[235505,355434],[1,-1837]],[[235506,353597],[-1063,53]],[[222475,356421],[0,-4177],[-865,-45]],[[221610,352199],[-1108,8]],[[220502,352207],[2,7605]],[[203776,359694],[98,-2074],[-26,-3169],[117,-4650],[-91,-2222],[-239,-893],[559,-1233],[337,-2424],[573,-1622]],[[205104,341407],[-115,-753],[-407,115]],[[204582,340769],[2,439],[-988,-6],[48,-1326],[-533,2]],[[203111,339878],[-7,660]],[[203104,340538],[1,655],[-1776,-49],[0,4052],[-2059,59]],[[199270,345255],[16,10890],[481,2044],[69,1592]],[[199270,345255],[-7,-4085]],[[199263,341170],[-3954,38]],[[195309,341208],[2,18556]],[[195309,341208],[0,-19410]],[[195309,321798],[-1,-7083]],[[195308,314715],[-3,-14913]],[[195305,299802],[-837,-13],[-15,-900],[-398,-1421]],[[194055,297468],[-881,-3135],[-222,1553]],[[212146,359782],[0,-9302]],[[212146,350480],[-110,1],[3,-8289]],[[212039,342192],[-2,-5881]],[[212037,336311],[-929,13]],[[211108,336324],[28,6448],[-1196,-12],[1,1644],[-599,9],[0,810]],[[209342,345223],[3,14488]],[[214861,359653],[-12,-9170]],[[214849,350483],[-362,-4]],[[214487,350479],[-2341,1]],[[217877,359752],[-24,-9286]],[[217853,350466],[-365,-7]],[[217488,350459],[-1501,5]],[[215987,350464],[-1138,19]],[[220502,352207],[-2,-1740]],[[220500,350467],[-1510,-6]],[[218990,350461],[-1137,5]],[[284801,354340],[42,-1109]],[[284877,353154],[-51,-1711]],[[284826,351443],[-1,-153]],[[284825,351290],[-691,44]],[[284134,351334],[-370,-26]],[[283764,351308],[-248,1789],[-323,550],[200,692]],[[263478,357307],[2,-789],[-559,-4123]],[[262921,352395],[-20,2]],[[262901,352397],[-528,227]],[[262373,352624],[-249,4527]],[[205965,359691],[58,-1482],[-85,-3570],[-387,-996],[-22,-2199],[163,-1118],[-61,-4279]],[[205631,346047],[-184,-448],[-36,-1983],[-307,-2209]],[[209342,345223],[-1191,14]],[[208151,345237],[-1196,-14],[2,803],[-1326,21]],[[239166,356371],[-30,-5933]],[[239136,350438],[-750,14]],[[238386,350452],[29,5979],[-103,1914]],[[162899,346141],[-231,-1190],[-456,1973],[-261,-928],[-61,1185],[-572,3411],[-183,-60],[-19,1981],[-417,1414],[44,778],[-533,3123]],[[265430,353958],[-148,-1853]],[[265282,352105],[-222,46]],[[265060,352151],[-603,35]],[[264457,352186],[-224,1544],[-135,2569],[163,2476]],[[286870,358327],[-79,-1657]],[[286791,356670],[-328,768],[3,1656],[404,-767]],[[264457,352186],[-96,-2]],[[264361,352184],[-1440,211]],[[266591,353542],[-596,-1193]],[[265995,352349],[-713,-244]],[[251680,358786],[-1,-3231]],[[251679,355555],[-863,221]],[[252591,355134],[-9,-4639]],[[252582,350495],[-78,9]],[[252504,350504],[-835,20]],[[251669,350524],[10,5031]],[[261703,357073],[-226,-4256]],[[261477,352817],[-391,-141]],[[261086,352676],[-444,3719]],[[259581,354615],[12,-1749]],[[259593,352866],[-647,210]],[[258946,353076],[-576,206]],[[258370,353282],[16,2332]],[[238386,350452],[-787,-3]],[[237599,350449],[-586,0]],[[237013,350449],[23,4637]],[[287748,351418],[-69,0]],[[287679,351418],[-139,3114],[-110,-3118]],[[287430,351414],[-90,0]],[[287340,351414],[-61,2]],[[287279,351416],[-242,-2]],[[287037,351414],[1,2143],[150,496],[-378,1441],[-61,1239]],[[286749,356733],[42,-63]],[[286870,358327],[530,-179],[348,-6730]],[[274940,354358],[-364,-882],[-48,-1926]],[[274528,351550],[-629,24]],[[273899,351574],[-213,1696]],[[273686,353270],[-50,397]],[[273636,353667],[-307,2510]],[[270321,353193],[-338,-940]],[[269983,352253],[-141,1]],[[269842,352254],[-106,2116]],[[271759,353055],[-114,-499]],[[271645,352556],[-501,43]],[[271144,352599],[-890,-363]],[[270254,352236],[67,957]],[[247959,352904],[-202,-2471]],[[247757,350433],[-990,13]],[[246767,350446],[-44,3365],[-197,2460]],[[286206,357292],[36,565]],[[286206,357292],[-103,-959],[-95,-4917]],[[286008,351416],[-140,0]],[[285868,351416],[-1042,27]],[[285916,358061],[-22,-1250],[348,1046]],[[163911,339436],[276,-2210]],[[164187,337226],[-3149,125]],[[161038,337351],[-326,1746],[-77,1735],[-231,787],[-396,3161],[-503,2053],[-222,5105],[442,1739],[40,3417]],[[283764,351308],[-1310,11]],[[268512,356056],[-491,-2310],[-105,-1529]],[[267916,352217],[-1356,67]],[[266560,352284],[-565,65]],[[281677,351294],[-774,-7]],[[280903,351287],[-371,-27]],[[280532,351260],[-772,-7]],[[262373,352624],[-838,204]],[[261535,352828],[-58,-11]],[[245263,356498],[-29,-6068]],[[245234,350430],[-782,-12]],[[244452,350418],[-119,11]],[[244333,350429],[-620,34]],[[269842,352254],[-878,-31]],[[268964,352223],[-617,-6]],[[268347,352217],[-431,0]],[[258370,353282],[-422,-315]],[[257948,352967],[-559,277]],[[276118,355953],[-148,-277],[114,-4413]],[[276084,351263],[-1077,152]],[[275007,351415],[-479,135]],[[250246,352928],[-253,-2473]],[[249993,350455],[-186,-21]],[[249807,350434],[-151,5]],[[249656,350439],[-18,-3004]],[[249638,347435],[-129,1228],[-367,441],[-80,-746],[-582,45]],[[248480,348403],[6,4476]],[[286305,356800],[-51,-466]],[[286570,356468],[-316,-134]],[[286570,356468],[124,213]],[[286694,356681],[55,52]],[[287037,351414],[-532,-2]],[[286505,351412],[-497,4]],[[286305,356800],[-99,492]],[[277028,351253],[-871,10]],[[276157,351263],[-73,0]],[[181366,356861],[18,-12097],[-305,-3169],[-223,-192],[-381,2417],[-725,-8],[-350,-1053],[144,-4362],[76,-6300],[227,-3470],[73,-3058],[-216,-1125],[36,-1876]],[[179740,322568],[-2834,15078]],[[261086,352676],[-980,65]],[[260106,352741],[-513,125]],[[246767,350446],[-580,-1]],[[246187,350445],[-953,-15]],[[240668,356171],[-20,-5742]],[[240648,350429],[-227,4]],[[240421,350433],[-1234,7]],[[239187,350440],[-51,-2]],[[223408,350600],[12,-6428]],[[223420,344172],[-1187,51]],[[222233,344223],[-596,-4],[-27,7980]],[[273636,353667],[50,-397]],[[273899,351574],[-178,50]],[[273721,351624],[-1258,239]],[[272463,351863],[-903,250]],[[271560,352113],[85,443]],[[242465,350452],[-84,-5]],[[242381,350447],[-1055,0]],[[241326,350447],[-678,-18]],[[251669,350524],[-28,4]],[[251641,350528],[-22,-4]],[[251619,350524],[-191,1382],[-763,1410]],[[237013,350449],[-1507,13]],[[235506,350462],[0,3135]],[[253748,353788],[47,-3358]],[[253795,350430],[-1213,65]],[[170339,337195],[-4266,60]],[[166073,337255],[29,8917],[143,-16],[5,2474],[-284,1630]],[[254944,353043],[136,-5034]],[[255080,348009],[-640,-725],[-443,466]],[[253997,347750],[-26,131]],[[253971,347881],[-176,2549]],[[235506,350462],[154,-6283]],[[235660,344179],[-653,-10]],[[235007,344169],[-597,8]],[[234410,344177],[15,6478]],[[257414,348712],[-201,-1047],[-242,621]],[[256971,348286],[-207,-250],[-369,1607]],[[256395,349643],[15,3480]],[[257948,352967],[-373,-4227],[-161,-28]],[[258946,353076],[-66,-2837]],[[258880,350239],[-152,-2605]],[[258728,347634],[-470,-221],[-397,-1687]],[[257861,345726],[-447,2986]],[[251619,350524],[-1425,9]],[[250194,350533],[-201,-78]],[[256395,349643],[-463,-2485]],[[255932,347158],[-632,238]],[[255300,347396],[-220,613]],[[278065,351243],[-356,-10]],[[260035,350463],[-39,-1632]],[[259996,348831],[-420,265]],[[259576,349096],[-528,339],[-168,804]],[[260106,352741],[-71,-2278]],[[248480,348403],[6,-7256]],[[248486,341147],[-919,-50]],[[247567,341097],[-247,-13]],[[247320,341084],[102,953]],[[247422,342037],[419,2876]],[[247841,344913],[353,1892],[-44,1811],[-209,1819],[-184,-2]],[[262901,352397],[149,-1465]],[[263050,350932],[-592,1050],[-298,-536],[-193,-2703]],[[261967,348743],[-458,2312]],[[261509,351055],[26,1773]],[[261509,351055],[-433,-573],[-153,-1811]],[[260923,348671],[-582,2219],[-306,-427]],[[270706,350628],[-572,-2009],[-308,-73]],[[269826,348546],[-389,912],[-672,-256]],[[268765,349202],[199,3021]],[[270254,352236],[-271,17]],[[271144,352599],[-438,-1971]],[[271560,352113],[-142,-3665]],[[271418,348448],[-528,-1943]],[[270890,346505],[-41,-397]],[[270849,346108],[-351,1893],[300,1976],[-92,651]],[[264361,352184],[5,-1438],[-252,-900],[56,-3382],[-120,-1264]],[[264050,345200],[-190,-992]],[[263860,344208],[-474,1989],[-250,1871]],[[263136,348068],[117,454],[-203,2410]],[[266560,352284],[206,-1169],[31,-2258]],[[266797,348857],[-174,-720],[-607,-562]],[[266016,347575],[-183,13],[-202,1691],[-279,-297]],[[265352,348982],[-292,3169]],[[228842,350601],[-61,-3232],[298,0],[0,-1617]],[[229079,345752],[-602,-1],[-1,-1624],[-593,-2]],[[227883,344125],[-297,101]],[[227586,344226],[-2,7989]],[[268347,352217],[-502,-559],[-752,-3147]],[[267093,348511],[-296,346]],[[233528,350664],[-299,-2],[-14,-8097]],[[233215,342565],[-365,1],[-131,1627],[-399,1]],[[232320,344194],[-150,-1],[8,4857]],[[265352,348982],[-275,-2785]],[[265077,346197],[-193,-790],[-429,315],[-38,-1252],[-367,730]],[[268765,349202],[-61,-397]],[[268704,348805],[-665,-1448],[-393,-1682]],[[267646,345675],[-224,1917],[-258,-1046]],[[267164,346546],[-71,1965]],[[227586,344226],[-599,4]],[[226987,344230],[-1193,4]],[[225794,344234],[-1,5552]],[[222233,344223],[3,-2818]],[[222236,341405],[-226,-158],[-275,-2614],[-162,-422],[-441,841],[-101,2156],[-521,-2268]],[[220510,338940],[0,3261]],[[220510,342201],[-10,8266]],[[272463,351863],[277,-3899]],[[272740,347964],[-622,-2325]],[[272118,345639],[-700,2809]],[[263136,348068],[-494,-1684],[-81,-2308]],[[262561,344076],[-537,-332]],[[262024,343744],[-54,115]],[[261970,343859],[103,956],[-106,3928]],[[273721,351624],[-182,-2986]],[[273539,348638],[-167,-516],[-189,1242],[-443,-1400]],[[230908,344180],[-82,5]],[[230826,344185],[-902,-44]],[[229924,344141],[-550,-15],[0,1626],[-295,0]],[[275007,351415],[-33,-5379]],[[274974,346036],[-1,-378]],[[274973,345658],[-247,762],[-926,-859]],[[273800,345561],[12,1685],[-273,1392]],[[285868,351416],[140,-749]],[[286008,350667],[106,-2464]],[[286114,348203],[-296,-486]],[[285818,347717],[-335,-961]],[[285483,346756],[-266,1180],[-452,774]],[[284765,348710],[60,2580]],[[287331,347551],[-272,271],[-554,3590]],[[287279,351416],[112,-2597],[320,-2367],[229,-3945],[-412,3972],[-197,1072]],[[287748,351418],[261,-5943]],[[288009,345475],[-7,-9]],[[288002,345466],[-124,1107],[-199,4845]],[[276157,351263],[-22,-5309]],[[276135,345954],[-1161,82]],[[287331,347551],[294,-3319],[-296,418],[-595,3435]],[[286734,348085],[-726,2582]],[[282085,351303],[5,-704]],[[282090,350599],[-40,-2323],[-263,-3337]],[[281787,344939],[-837,1178]],[[280950,346117],[82,750],[-129,4420]],[[284010,345759],[-232,-1457]],[[283778,344302],[-264,840],[-153,2057],[-292,-389],[-26,2140],[-250,1169],[-703,480]],[[284134,351334],[123,-1350],[-247,-4225]],[[284765,348710],[428,-835],[170,-2171]],[[285363,345704],[-1353,55]],[[279587,351248],[-16,-5691]],[[279571,345557],[-415,60]],[[279156,345617],[-565,56]],[[278591,345673],[43,5576]],[[280950,346117],[-322,-1897],[-207,205]],[[280421,344425],[-40,5196],[151,1639]],[[280421,344425],[-138,-2849]],[[280283,341576],[-564,914]],[[279719,342490],[-155,442],[7,2625]],[[277597,351232],[-60,-5440]],[[277537,345792],[-1,-133]],[[277536,345659],[-1401,295]],[[278591,345673],[-288,31]],[[278303,345704],[-766,88]],[[261970,343859],[-836,1715],[-211,1218]],[[260923,346792],[0,1879]],[[260923,346792],[-350,-1703],[-444,506]],[[260129,345595],[-184,949],[51,2287]],[[283778,344302],[137,-1341],[-235,-398]],[[283680,342563],[-211,-1306]],[[283469,341257],[-343,603],[-21,992],[-459,1162]],[[282646,344014],[-526,-168],[-333,1093]],[[234410,344177],[-298,-3],[1,-1624],[-250,5]],[[233863,342555],[-648,10]],[[270849,346108],[-412,-3021]],[[270437,343087],[-395,999]],[[270042,344086],[-95,1419],[-234,366]],[[269713,345871],[113,2675]],[[286734,348085],[37,-1381],[441,-2720],[-295,-510],[-337,1726]],[[286580,345200],[-247,781],[-219,2222]],[[251641,350528],[29,-1722],[-373,-22],[-27,-3471]],[[251270,345313],[-542,-338]],[[250728,344975],[-915,150]],[[249813,345125],[341,3659],[40,1749]],[[225794,344234],[-297,0]],[[225497,344234],[-1188,0]],[[224309,344234],[-889,-62]],[[252504,350504],[-37,-6508]],[[252467,343996],[-452,-1664]],[[252015,342332],[-416,1162],[-329,1819]],[[249813,345125],[-408,-510]],[[249405,344615],[-185,1255],[449,35],[-218,1039],[187,491]],[[249807,350434],[-151,5]],[[215987,342196],[-1502,-4]],[[214485,342192],[2,8287]],[[215987,350464],[0,-8268]],[[253971,347881],[-287,-10],[29,-1851],[-361,-2614]],[[253352,343406],[3,475],[-888,115]],[[217486,342236],[0,-44]],[[217486,342192],[-1499,4]],[[217488,350459],[-2,-8223]],[[214485,342192],[-2446,0]],[[218990,350461],[-2,-8244]],[[218988,342217],[-1502,19]],[[220510,342201],[-1504,15]],[[219006,342216],[-18,1]],[[237599,350449],[-67,-2392],[210,-1186]],[[237742,346871],[-201,-1331]],[[237541,345540],[-238,-554],[-1004,172],[-161,-2143],[-448,53]],[[235690,343068],[-30,1111]],[[244333,350429],[-13,-3019],[-310,36],[-1,-1628],[-349,62]],[[243660,345880],[-1297,148]],[[242363,346028],[18,4419]],[[239187,350440],[-9,-7019]],[[239178,343421],[-500,72]],[[238678,343493],[-199,24],[-297,3289],[-440,65]],[[244452,350418],[273,-1429],[140,-3024]],[[244865,345965],[-253,-501],[-21,-6336]],[[244591,339128],[-295,860],[-689,92]],[[243607,340080],[77,1094],[-24,4706]],[[246124,346133],[-9,-2184]],[[246115,343949],[-921,327],[-329,1689]],[[246187,350445],[91,-4020],[-154,-292]],[[240421,350433],[-86,-130],[-16,-7014]],[[240319,343289],[-151,19]],[[240168,343308],[-990,113]],[[241326,350447],[-51,-4301],[214,-302],[163,-1657],[2,-1854]],[[241654,342333],[-1188,137],[-147,819]],[[242363,346028],[-109,-2389]],[[242254,343639],[-4,-1372],[-299,33],[-7,-1620],[-298,35]],[[241646,340715],[8,1618]],[[247841,344913],[-363,-14],[3,1092],[-1357,142]],[[166073,337255],[-1825,-24]],[[164248,337231],[-61,-5]],[[259576,349096],[-441,-2425]],[[259135,346671],[-407,963]],[[256971,348286],[-234,-4732],[-157,-1542]],[[256580,342012],[-358,78]],[[256222,342090],[31,3291]],[[256253,345381],[-11,1627],[-310,150]],[[269713,345871],[-270,-1826],[-440,-1091]],[[269003,342954],[-147,935],[39,5066],[-191,-150]],[[273800,345561],[-24,-3359]],[[273776,342202],[-410,-186]],[[273366,342016],[-834,-921]],[[272532,341095],[-604,2256]],[[271928,343351],[190,2288]],[[266016,347575],[-182,-3347]],[[265834,344228],[-583,406]],[[265251,344634],[-174,1563]],[[260129,345595],[-76,-1981]],[[260053,343614],[-159,-706],[-544,-143]],[[259350,342765],[-215,3906]],[[249405,344615],[100,-1065],[-238,-811],[-78,-1540]],[[249189,341199],[-703,-52]],[[232320,344194],[0,-4873],[-163,-839]],[[232157,338482],[-593,17]],[[231564,338499],[9,4068],[-746,8],[-1,1610]],[[267164,346546],[-203,141],[-387,-2271]],[[266574,344416],[-254,92],[-305,-1843]],[[266015,342665],[-181,1563]],[[257861,345726],[219,-2689]],[[258080,343037],[-288,-2464]],[[257792,340573],[-469,1261],[-395,312],[-275,-1179],[-73,1045]],[[269003,342954],[-22,-1048]],[[268981,341906],[-95,483],[-414,-1436],[-99,-1242],[-215,430]],[[268158,340141],[0,1]],[[268158,340142],[-746,4390]],[[267412,344532],[234,1143]],[[271928,343351],[-738,-110]],[[271190,343241],[-274,1942],[-26,1322]],[[286580,345200],[260,-2059],[-166,-58],[-563,1793],[417,-1963],[-516,-159]],[[286012,342754],[-231,471],[37,4492]],[[263860,344208],[277,-2133]],[[264137,342075],[-291,-1173],[-653,-1442]],[[263193,339460],[-112,1610],[-520,3006]],[[255300,347396],[-148,-2919]],[[255152,344477],[-646,1243],[-422,-29]],[[254084,345691],[-87,2059]],[[254084,345691],[77,-2250],[-252,-3270],[243,-246],[-104,-1722]],[[254048,338203],[-22,-470]],[[254026,337733],[-578,561]],[[253448,338294],[-109,14],[13,5098]],[[259350,342765],[125,-2327]],[[259475,340438],[-385,-123]],[[259090,340315],[-438,450],[-572,2272]],[[286012,342754],[225,-326],[-290,-1136],[-496,1123],[-83,1530],[115,2811]],[[267412,344532],[-191,-1784]],[[267221,342748],[-165,990],[-482,678]],[[256222,342090],[-60,-1686]],[[256162,340404],[-921,638]],[[255241,341042],[-89,3435]],[[238678,343493],[80,-2934],[-203,-1599],[13,-2199]],[[238568,336761],[-493,96]],[[238075,336857],[-599,-165]],[[237476,336692],[-145,21]],[[237331,336713],[52,6147],[158,2680]],[[262024,343744],[-409,-705],[-49,-2263]],[[261566,340776],[-126,977],[-554,938],[-379,-1246]],[[260507,341445],[-454,2169]],[[265251,344634],[-424,-2187],[97,-598],[-378,-805],[-214,-1553]],[[264332,339491],[-195,2584]],[[274973,345658],[38,-1939],[-162,-1685]],[[274849,342034],[-546,79]],[[274303,342113],[-527,89]],[[271190,343241],[205,-849],[-197,-1935]],[[271198,340457],[-257,707]],[[270941,341164],[-122,-754]],[[270819,340410],[-107,-893]],[[270712,339517],[-146,572],[-129,2998]],[[281787,344939],[-692,-7162]],[[281095,337777],[-139,1398],[-673,2401]],[[247320,341084],[-33,-576],[-1290,60]],[[245997,340568],[118,3381]],[[208151,345237],[293,-4778],[-163,-1891],[63,-1472]],[[208344,337096],[-1781,-187],[-951,1848],[-1038,6]],[[204574,338763],[8,2006]],[[276135,345954],[-22,-4592]],[[276113,341362],[-980,-698]],[[275133,340664],[-284,1370]],[[243607,340080],[-387,-1384]],[[243220,338696],[-296,1224],[-438,78],[155,1793],[-387,1848]],[[270042,344086],[-542,-1570]],[[269500,342516],[-247,-1768]],[[269253,340748],[-294,-190],[22,1348]],[[245997,340568],[-63,-1620],[-438,76]],[[245496,339024],[-464,93]],[[245032,339117],[-441,11]],[[277536,345659],[-27,-6364]],[[277509,339295],[-1406,392]],[[276103,339687],[10,1675]],[[278303,345704],[22,-6834]],[[278325,338870],[33,-603],[-850,-17]],[[277508,338250],[1,1045]],[[229924,344141],[1,-4065]],[[229925,340076],[-1447,8]],[[228478,340084],[-594,800],[-1,3241]],[[255241,341042],[-480,-1635],[-27,-1245]],[[254734,338162],[-379,-650],[-307,691]],[[285363,345704],[-90,-1720],[200,-3016],[-54,-1230]],[[285419,339738],[-161,-1089]],[[285258,338649],[0,-1]],[[285258,338649],[-207,364],[-191,-1126],[-97,1433],[-186,-785],[-144,1522],[-394,-15],[-22,1228],[-337,1293]],[[279156,345617],[-183,-6999]],[[278973,338618],[-648,252]],[[279719,342490],[139,-1156],[-370,-2639],[-207,11]],[[279281,338706],[-308,-88]],[[237331,336713],[-1478,-32]],[[235853,336681],[-163,6387]],[[287690,334442],[-349,563]],[[287341,335005],[74,4092],[488,660],[174,-762],[41,-4814],[-337,-751],[-91,1012]],[[288009,345475],[568,-6870],[-469,3339],[-106,3522]],[[252015,342332],[-40,-5057]],[[251975,337275],[-583,117]],[[251392,337392],[-539,1204],[-221,2559]],[[250632,341155],[96,3820]],[[203104,340538],[-422,-118],[-2,-2837],[423,-966]],[[203103,336617],[9,-10066]],[[203112,326551],[-2650,80]],[[200462,326631],[-119,1601],[-198,-3]],[[200145,328229],[4,12910],[-886,31]],[[211108,336324],[-14,-6367],[-716,-155]],[[210378,329802],[-244,606],[-702,7065],[-124,-377],[-964,0]],[[250632,341155],[-254,-2106],[-175,-101]],[[250203,338948],[-180,1222],[-661,-786]],[[249362,339384],[-173,1815]],[[282646,344014],[-362,-5323]],[[282284,338691],[-1014,-2547]],[[281270,336144],[-175,1633]],[[267221,342748],[-212,-3523]],[[267009,339225],[-457,517],[-553,2139]],[[265999,341881],[16,784]],[[265999,341881],[52,-1240],[-389,-1579]],[[265662,339062],[-165,-855],[-257,652],[-539,-385],[-75,-938]],[[264626,337536],[-271,1710]],[[264355,339246],[-23,245]],[[268158,340141],[-176,-2867]],[[267982,337274],[-326,-27],[-492,-1365]],[[267164,335882],[-1,-24]],[[267163,335858],[-154,3367]],[[263193,339460],[-282,-1555]],[[262911,337905],[-375,-1179]],[[262536,336726],[-941,75]],[[261595,336801],[0,25]],[[261595,336826],[-52,385]],[[261543,337211],[10,106]],[[261553,337317],[156,2178],[-143,1281]],[[226987,344230],[5,-8168]],[[226992,336062],[-1485,-16]],[[225507,336046],[-10,8188]],[[228478,340084],[-1,-4054]],[[228477,336030],[-1485,32]],[[225507,336046],[-296,-3],[0,-3229]],[[225211,332814],[-863,2]],[[224348,332816],[-25,4855]],[[224323,337671],[-14,6563]],[[224323,337671],[-2072,-4]],[[222251,337667],[-15,3738]],[[231564,338499],[-444,3],[-1,-4058]],[[231119,334444],[-1192,-1]],[[229927,334443],[-2,5633]],[[233863,342555],[-208,-1974],[145,-1820],[-98,-1074]],[[233702,337687],[-1043,-408],[-29,1219],[-323,-7]],[[232307,338491],[-150,-9]],[[235007,344169],[-28,-9734]],[[234979,334435],[-892,6]],[[234087,334441],[0,3236],[-385,10]],[[235853,336681],[58,-2247]],[[235911,334434],[-932,1]],[[270712,339517],[-422,-1622]],[[270290,337895],[-183,3520],[-607,1101]],[[283469,341257],[168,-1847],[-22,-1611]],[[283615,337799],[-112,244],[-755,-2883]],[[282748,335160],[-250,2798],[-214,733]],[[253448,338294],[-3,-541]],[[253445,337753],[-1089,148],[-102,-658]],[[252254,337243],[-279,32]],[[260507,341445],[21,-2479],[-126,-943]],[[260402,338023],[-565,156]],[[259837,338179],[-362,2259]],[[243220,338696],[34,-3025]],[[243254,335671],[-1124,134]],[[242130,335805],[-496,72],[5,1351]],[[241639,337228],[7,3487]],[[240168,343308],[-18,-7271]],[[240150,336037],[-594,79]],[[239556,336116],[-989,104],[1,541]],[[272532,341095],[-16,-3720]],[[272516,337375],[-83,-532]],[[272433,336843],[-535,176],[-700,3438]],[[241639,337228],[-595,42],[-2,-1349],[-498,75]],[[240544,335996],[-394,41]],[[259090,340315],[-150,-4665]],[[258940,335650],[-106,-1338]],[[258834,334312],[-300,532],[-141,-775],[-313,1293],[-345,-45]],[[257735,335317],[-130,449]],[[257605,335766],[203,1497],[-16,3310]],[[270290,337895],[-396,-2233]],[[269894,335662],[-202,1972],[-170,143]],[[269522,337777],[-269,2971]],[[261553,337317],[-455,475],[-475,-445]],[[260623,337347],[-221,676]],[[281095,337777],[-585,-2047],[-679,-3519]],[[279831,332211],[-571,1186]],[[279260,333397],[-227,517],[248,4792]],[[285258,338648],[-235,-2967]],[[285023,335681],[-392,-875],[-524,1390]],[[284107,336196],[-492,1603]],[[269522,337777],[-293,-274],[-813,-2185],[-219,-149]],[[268197,335169],[-215,2105]],[[275133,340664],[83,-1448],[-296,-1329],[32,-1467]],[[274952,336420],[-480,1873],[-210,137]],[[274262,338430],[41,3683]],[[219006,342216],[1,-8139]],[[219007,334077],[-1521,-4]],[[217486,334073],[0,114]],[[217486,334187],[0,8005]],[[220510,338940],[0,-4867]],[[220510,334073],[-1503,4]],[[217486,334187],[-1496,-22]],[[215990,334165],[-3,8031]],[[214485,342192],[1,-7963]],[[214486,334229],[-2449,-95]],[[212037,334134],[0,2177]],[[274262,338430],[-178,-3320],[96,-3115]],[[274180,331995],[-135,-24]],[[274045,331971],[-450,-339]],[[273595,331632],[-36,1117]],[[273559,332749],[96,1381],[-522,2938]],[[273133,337068],[300,3339],[-67,1609]],[[215990,334165],[0,-71]],[[215990,334094],[-1504,-3]],[[214486,334091],[0,138]],[[257605,335766],[-267,-59]],[[257338,335707],[-1207,2676]],[[256131,338383],[31,2021]],[[273133,337068],[-79,883],[-538,-576]],[[263585,335029],[-124,-484]],[[263461,334545],[-99,4]],[[263362,334549],[-9,1249],[-281,766]],[[263072,336564],[-161,1341]],[[264355,339246],[-770,-4217]],[[267163,335858],[4,-355]],[[267167,335503],[-680,-2475],[-459,116]],[[266028,333144],[-109,2607],[-257,3311]],[[276103,339687],[-56,-7726]],[[276047,331961],[-323,-24]],[[275724,331937],[-70,1389],[-359,2653],[-343,441]],[[222251,337667],[32,-5647]],[[222283,332020],[-589,1],[-2,-1624],[-1182,13]],[[220510,330410],[0,3663]],[[200145,328229],[-3228,29],[-2,-6474],[-1606,14]],[[204574,338763],[16,-15442]],[[204590,323321],[-1474,-28]],[[203116,323293],[-4,3258]],[[203103,336617],[208,1296],[-208,257]],[[203103,338170],[0,312]],[[203103,338482],[8,1396]],[[249362,339384],[-275,31],[115,-1382],[-335,-1404],[-366,-378],[270,-1925],[-281,-846],[135,-919]],[[248625,332561],[-364,176],[-4,-2806]],[[248257,329931],[-36,-137]],[[248221,329794],[-36,1335],[-212,-483]],[[247973,330646],[-400,66]],[[247573,330712],[0,4865]],[[247573,335577],[-6,5520]],[[272433,336843],[-475,-3705]],[[271958,333138],[-10,-83]],[[271948,333055],[-430,282]],[[271518,333337],[-367,-86]],[[271151,333251],[-126,2692],[-326,1639],[222,1422],[-102,1406]],[[251392,337392],[-291,-2345],[-136,397]],[[250965,335444],[-553,1154],[-247,1169]],[[250165,337767],[38,1181]],[[247573,335577],[-2090,162]],[[245483,335739],[13,3285]],[[286926,335501],[-145,-1821],[-233,206],[79,1506],[-351,140]],[[286276,335532],[78,4358]],[[286354,339890],[552,1171],[303,-80],[50,-5636],[-333,156]],[[256131,338383],[-53,-2345],[-292,-1220]],[[255786,334818],[-336,-820],[-354,712],[-199,-818]],[[254897,333892],[-239,1015],[76,3255]],[[286276,335532],[-676,145]],[[285600,335677],[-577,4]],[[285419,339738],[847,1102],[88,-950]],[[203103,338482],[0,-312]],[[259837,338179],[-278,-1956],[-1,-1386]],[[259558,334837],[-289,-248],[-329,1061]],[[271151,333251],[-416,-936],[-546,60]],[[270189,332375],[-338,1184],[43,2103]],[[250165,337767],[-126,96],[-281,-4503]],[[249758,333360],[-309,1168],[-404,124],[-420,-2091]],[[229927,334443],[-12,-3281]],[[229915,331162],[-1439,22]],[[228476,331184],[1,4846]],[[245032,339117],[-92,-1440],[-340,-1929],[-44,-3402],[-591,77]],[[243965,332423],[-591,68]],[[243374,332491],[12,3306],[-132,-126]],[[277508,338250],[-37,-6115]],[[277471,332135],[-595,-66]],[[276876,332069],[-829,-108]],[[264626,337536],[88,-2617],[-150,-1005]],[[264564,333914],[-285,822],[-464,206],[-191,-774]],[[263624,334168],[-163,377]],[[245483,335739],[-6,-4945]],[[245477,330794],[-2,-1651]],[[245475,329143],[-590,63],[-3,1642],[-263,-127]],[[244619,330721],[-662,64],[8,1638]],[[266028,333144],[-304,-143],[-504,-1878]],[[265220,331123],[-22,58]],[[265198,331181],[-124,1694],[-214,-289],[-296,1328]],[[279260,333397],[-157,-1140]],[[279103,332257],[-411,1984],[-405,-1720],[-166,127]],[[278121,332648],[-77,-460]],[[278044,332188],[-573,-53]],[[210378,329802],[0,-2771],[-614,433],[-745,-2270]],[[209019,325194],[-2,1368],[-3247,12],[1,-3243]],[[205771,323331],[-1181,-10]],[[282748,335160],[-108,-471]],[[282640,334689],[-343,-1479]],[[282297,333210],[-672,237]],[[281625,333447],[-169,331],[-186,2366]],[[275724,331937],[-313,-27]],[[275411,331910],[-1231,85]],[[232307,338491],[0,-2433],[148,-23],[1,-3216]],[[232456,332819],[-305,-2],[-149,-3256],[-295,1]],[[231707,329562],[-295,1],[-1,3262],[-292,-4],[0,1623]],[[234087,334441],[-14,-2089],[230,-1261]],[[234303,331091],[-538,-3686],[-283,598]],[[233482,328003],[-1,4815],[-1025,1]],[[260623,337347],[23,-3296],[103,-1581]],[[260749,332470],[-138,-25]],[[260611,332445],[-753,-140]],[[259858,332305],[-300,2532]],[[257338,335707],[-156,-2905],[-342,-2492]],[[256840,330310],[-446,716],[-239,-414]],[[256155,330612],[-245,215]],[[255910,330827],[24,1814],[-148,2177]],[[254026,337733],[-164,-1607],[-17,-2092],[167,-1717],[-89,-1888]],[[253923,330429],[-48,-579]],[[253875,329850],[-477,-215],[-128,791]],[[253270,330426],[-3,1967],[147,1493],[31,3867]],[[254897,333892],[-166,-2346]],[[254731,331546],[-712,-436],[-96,-681]],[[284107,336196],[0,-1815],[235,-1426]],[[284342,332955],[-25,-150]],[[284317,332805],[-216,-594],[-40,-1864]],[[284061,330347],[-198,-1249],[-361,-217]],[[283502,328881],[-237,1612]],[[283265,330493],[-76,1699],[-549,2497]],[[273559,332749],[-1601,389]],[[270189,332375],[-269,-1121]],[[269920,331254],[-1335,-829]],[[268585,330425],[-153,883],[95,1791],[-330,2070]],[[263072,336564],[-195,-3681],[-172,-21],[-175,-2137],[-273,-558]],[[262257,330167],[-331,919]],[[261926,331086],[76,2096],[534,3544]],[[261543,337211],[52,-385]],[[261595,336801],[-473,-3690]],[[261122,333111],[-373,-641]],[[253270,330426],[-331,-79]],[[252939,330347],[-8,1375],[-395,358],[-301,1417]],[[252235,333497],[19,3746]],[[250965,335444],[-26,-4865]],[[250939,330579],[-293,-638]],[[250646,329941],[-810,109]],[[249836,330050],[-78,3310]],[[281625,333447],[-251,-3124],[4,-1252],[-421,-1196]],[[280957,327875],[-522,-413],[-138,954]],[[280297,328416],[-332,3370],[-134,425]],[[224348,332816],[-1,-1627]],[[224347,331189],[-2064,20]],[[222283,331209],[0,811]],[[179740,322568],[3,-2452],[444,-2894],[103,-2182],[267,-2704],[564,-2760]],[[181121,309576],[-326,-2417],[-494,-1592]],[[180301,305567],[-2460,-124],[1,-805],[-4499,-63],[2,-553],[-829,-9],[-928,528],[-315,-3026]],[[171273,301515],[-312,1400]],[[170961,302915],[145,1407],[238,4958],[-64,9969]],[[171280,319249],[98,4],[-3,18110]],[[164248,337231],[-3,-3233],[301,-23],[0,-1605],[244,-1640],[325,-33],[5,-1631],[192,12],[4,-1614],[397,-45],[3,-1614],[314,77],[-22,-1690],[246,-211],[0,-3299]],[[166254,320682],[-755,1375],[-936,2625],[-284,-1411],[-421,-724],[101,-1704],[-444,1648],[-536,-409]],[[162979,322082],[-5,3222],[-296,222],[-393,1771],[197,1535],[-165,1791],[-326,509],[-446,3198],[-339,588],[-168,2433]],[[171280,319249],[-3410,-90],[36,-551]],[[167906,318608],[-267,446],[-750,39],[-88,1202],[-462,376]],[[166339,320671],[-85,11]],[[252235,333497],[-177,-1852],[-458,-1134]],[[251600,330511],[-661,68]],[[242130,335805],[-34,-6486]],[[242096,329319],[-637,87]],[[241459,329406],[3,1623],[-1032,137]],[[240430,331166],[104,1602],[10,3228]],[[268585,330425],[-242,-1949],[-248,-496]],[[268095,327980],[-738,4146]],[[267357,332126],[82,740],[-272,2637]],[[238036,329533],[-270,1020],[-9,-2177],[-298,111],[-9,-1669],[-302,-290]],[[237148,326528],[-149,21],[20,4291]],[[237019,330840],[144,2397],[-140,1638],[249,-26],[204,1843]],[[238075,336857],[-39,-7324]],[[261926,331086],[-253,-1944]],[[261673,329142],[-494,2572],[-57,1397]],[[239556,336116],[-9,-2441],[-149,23],[-7,-2427],[-202,25],[-8,-2654]],[[239181,328642],[-294,242],[-94,1576],[-757,-927]],[[237019,330840],[-164,-1085],[-526,-532],[-175,1675],[-128,-957]],[[236026,329941],[-115,4493]],[[263362,334549],[-670,-5484]],[[262692,329065],[-240,-1164]],[[262452,327901],[-195,2266]],[[212037,334134],[-2,-8177]],[[212035,325957],[-1,-4264]],[[212034,321693],[-669,4],[-4,-1665],[-293,7],[-3,-1619],[-292,8],[-1,-1623],[-585,17],[-91,-1634]],[[210096,315188],[-586,7]],[[209510,315195],[-502,3],[-1,3241]],[[209007,318439],[12,6755]],[[284317,332805],[371,-2175],[955,-1730],[26,-1206]],[[285669,327694],[-54,-767],[-593,-358],[-140,698]],[[284882,327267],[-821,3080]],[[285600,335677],[126,-1604],[273,-883]],[[285999,333190],[-398,-1100],[175,-2297],[-1124,1768],[-310,1394]],[[240430,331166],[-12,-5402],[-114,-39]],[[240304,325725],[-550,-592],[-185,1872],[-331,1451]],[[239238,328456],[-57,186]],[[226992,336062],[8,-6492]],[[227000,329570],[-1,-749]],[[226999,328821],[0,-19]],[[226999,328802],[-475,-44],[-290,766],[-418,55]],[[225816,329579],[-586,-9],[-19,3244]],[[228476,331184],[-1,-1622]],[[228475,329562],[-1475,8]],[[243374,332491],[-161,-3273],[-723,82]],[[242490,329300],[-394,19]],[[257735,335317],[-73,-4276],[185,-1700]],[[257847,329341],[-411,-2087],[-227,202]],[[257209,327456],[-369,2854]],[[247573,330712],[-600,58]],[[246973,330770],[-1496,24]],[[286926,335501],[415,-496]],[[287690,334442],[20,-1175],[-419,-3065],[-333,-1394],[-288,214],[-380,1512],[-221,-1047],[-325,2540],[265,-143],[-10,1306]],[[259858,332305],[-101,-4380]],[[259757,327925],[-680,1377],[-289,-544]],[[258788,328758],[11,1469]],[[258799,330227],[35,4085]],[[258799,330227],[-519,-1708],[-228,632]],[[258052,329151],[-205,190]],[[267357,332126],[-461,-863],[33,-2552]],[[266929,328711],[-948,-960]],[[265981,327751],[263,2892],[-1024,480]],[[265198,331181],[-169,-1111],[-21,-2086]],[[265008,327984],[-272,-947],[-243,467],[-219,-1109]],[[264274,326395],[-566,1467]],[[263708,327862],[264,835],[-23,1267],[-316,3898]],[[263633,333862],[1,202]],[[263634,334064],[-10,104]],[[255910,330827],[-429,244],[-353,-1106]],[[255128,329965],[-397,1581]],[[283265,330493],[-572,-1458],[-346,398]],[[282347,329433],[-50,3777]],[[248221,329794],[-58,-95]],[[248163,329699],[-190,947]],[[249836,330050],[-441,-507]],[[249395,329543],[-1138,388]],[[263634,334064],[-1,-202]],[[263708,327862],[-580,-828]],[[263128,327034],[-436,2031]],[[236026,329941],[-4,-304]],[[236022,329637],[-175,-1477],[-443,-195],[-252,1214],[-191,-612]],[[234961,328567],[-77,886],[-581,1638]],[[231707,329562],[0,-1617]],[[231707,327945],[-1281,2]],[[230426,327947],[0,3299],[-261,-1414],[-247,176]],[[229918,330008],[-3,1154]],[[279103,332257],[-595,-3991]],[[278508,328266],[-251,855],[-213,3067]],[[214486,334091],[-13,-8132]],[[214473,325959],[-2438,-2]],[[217486,334073],[-2,-8135]],[[217484,325938],[-1494,19]],[[215990,325957],[0,8137]],[[219007,334077],[3,-8124]],[[219010,325953],[-1526,-15]],[[220510,330410],[0,-4461]],[[220510,325949],[-1500,4]],[[215990,325957],[-1517,2]],[[271518,333337],[-29,-4139],[-182,-3291]],[[271307,325907],[-296,68]],[[271011,325975],[-264,59]],[[270747,326034],[1,1307],[-511,2796],[-304,-278]],[[269933,329859],[-13,1395]],[[282347,329433],[-80,-3574]],[[282267,325859],[-165,-563],[-420,837],[-332,-60]],[[281350,326073],[-393,1802]],[[252939,330347],[-5,-701]],[[252934,329646],[-672,-91],[-323,-2399],[-173,1]],[[251766,327157],[-166,3354]],[[280297,328416],[-211,-1293]],[[280086,327123],[-581,255],[-754,-1252]],[[278751,326126],[-353,1413],[110,727]],[[271948,333055],[227,-2695]],[[272175,330360],[382,-2967],[-24,-1802]],[[272533,325591],[-107,26]],[[272426,325617],[-1119,290]],[[273595,331632],[-24,-1620]],[[273571,330012],[-1396,348]],[[261673,329142],[-449,-3851]],[[261224,325291],[-188,2236],[-289,965]],[[260747,328492],[203,1622],[-339,2331]],[[233482,328003],[-312,226]],[[233170,328229],[-399,-1548],[-1070,-1312]],[[231701,325369],[6,2576]],[[225816,329579],[10,-9732]],[[225826,319847],[-1469,0]],[[224357,319847],[-5,4513]],[[224352,324360],[-5,6829]],[[244619,330721],[-212,-1147],[105,-2458],[-223,-2903]],[[244289,324213],[-330,36],[-3,-1236],[-368,689],[-238,-589]],[[243350,323113],[-586,854],[-297,-183]],[[242467,323784],[23,5516]],[[260747,328492],[-422,-561],[-84,-1375],[-372,150]],[[259869,326706],[-112,1219]],[[188318,312721],[-108,-986]],[[188210,311735],[-183,-611],[-147,-4378],[653,-3],[-47,-2816]],[[188486,303927],[-643,1],[-1223,898],[-311,-3086],[-1306,2189],[-1641,-13]],[[183362,303916],[1,5933]],[[183363,309849],[-2,22528]],[[268095,327980],[-175,-2988],[-203,-1444],[134,-484]],[[267851,323064],[-277,-501]],[[267574,322563],[-1,-3]],[[267573,322560],[-644,6151]],[[274045,331971],[332,-4443],[324,-1102]],[[274701,326426],[-806,-3867]],[[273895,322559],[-185,1400]],[[273710,323959],[-377,-576],[22,1922]],[[273355,325305],[216,4707]],[[278751,326126],[-5,-338]],[[278746,325788],[-367,682],[-294,-913],[-345,-2209]],[[277740,323348],[-312,427],[-120,1819]],[[277308,325594],[-233,1635],[-199,4840]],[[277308,325594],[-662,369],[-623,-753]],[[276023,325210],[-58,1792],[126,2469],[-367,2466]],[[275411,331910],[-586,-5936]],[[274825,325974],[-124,452]],[[222283,331209],[11,-6489]],[[222294,324720],[-137,-41]],[[222157,324679],[-1041,42],[0,-1614],[-294,3]],[[220822,323110],[-312,20]],[[220510,323130],[0,2819]],[[276023,325210],[-562,989]],[[275461,326199],[-228,-565],[-408,340]],[[269933,329859],[-238,-2104],[-19,-1655]],[[269676,326100],[-619,-853]],[[269057,325247],[-122,2958],[-350,2220]],[[255128,329965],[-90,-7353]],[[255038,322612],[-1051,45]],[[253987,322657],[8,5395],[-120,1798]],[[230426,327947],[0,-3244],[-137,1],[-1,-3821]],[[230288,320883],[-667,-984],[-127,786]],[[229494,320685],[-2,9491],[426,-168]],[[265981,327751],[-64,-576]],[[265917,327175],[-396,127],[-315,-711],[-198,1393]],[[224352,324360],[-359,353],[-1699,7]],[[229494,320685],[-431,1199]],[[229063,321884],[-238,-1062],[-352,454]],[[228473,321276],[2,8286]],[[241459,329406],[-204,-4750]],[[241255,324656],[-449,-779],[-905,103]],[[239901,323980],[403,1745]],[[256155,330612],[-49,-8076]],[[256106,322536],[-1068,76]],[[234961,328567],[-3,-2253],[-315,-6],[0,-2676]],[[234643,323632],[-1174,5]],[[233469,323637],[0,1895],[-295,3],[-4,2694]],[[262452,327901],[-222,-2978],[129,-2605]],[[262359,322318],[-796,-48]],[[261563,322270],[-276,-33]],[[261287,322237],[-306,-7]],[[260981,322230],[247,1084],[-4,1977]],[[257209,327456],[-20,-5059]],[[257189,322397],[-1046,132]],[[256143,322529],[-37,7]],[[237148,326528],[-7,-1358],[-305,-767]],[[236836,324403],[-229,-383],[-21,-2059],[-606,-644]],[[235980,321317],[42,8320]],[[246973,330770],[-2,-5539]],[[246971,325231],[-1504,75]],[[245467,325306],[8,3837]],[[245467,325306],[-8,-2742],[-290,30]],[[245169,322594],[-399,-324],[-210,-1347]],[[244560,320923],[13,2577],[-284,713]],[[248163,329699],[-214,-2387],[219,-627],[20,-1533],[-293,-395],[-116,-1725],[-268,-566]],[[247511,322466],[186,-1296],[-172,-1230]],[[247525,319940],[-289,-503]],[[247236,319437],[-2,1326]],[[247234,320763],[22,4543],[-285,-75]],[[251766,327157],[-13,-4699]],[[251753,322458],[-101,0]],[[251652,322458],[-541,-5]],[[251111,322453],[-505,-9]],[[250606,322444],[40,7497]],[[283502,328881],[-231,-2074]],[[283271,326807],[-356,-2933],[-358,-1181]],[[282557,322693],[-108,2562],[-182,604]],[[239238,328456],[-4,-1941],[-493,49],[-203,-1309],[-493,-195],[5,-2146]],[[238050,322914],[-1029,136],[-185,1353]],[[269057,325247],[-524,-1430]],[[268533,323817],[-371,-223]],[[268162,323594],[-311,-530]],[[253987,322657],[-600,-192]],[[253387,322465],[-453,-3]],[[252934,322462],[-51,3]],[[252883,322465],[51,7181]],[[273355,325305],[-822,286]],[[285469,320638],[-203,-948],[-926,-816]],[[284340,318874],[-64,5013]],[[284276,323887],[204,503],[398,-2748],[591,-1004]],[[284882,327267],[-235,-2198],[118,-897]],[[284765,324172],[-259,864],[-282,-1162]],[[284224,323874],[-953,2933]],[[258788,328758],[-158,-3843]],[[258630,324915],[-206,2015],[-376,1415],[4,806]],[[249395,329543],[-32,-7084]],[[249363,322459],[-223,-9]],[[249140,322450],[-1629,16]],[[270747,326034],[-688,163]],[[270059,326197],[-383,-97]],[[250606,322444],[-430,-12]],[[250176,322432],[-813,27]],[[252883,322465],[-1130,-7]],[[235980,321317],[-18,-3815]],[[235962,317502],[-20,-4124]],[[235942,313378],[-1326,-11]],[[234616,313367],[-2,3239],[-338,-2]],[[234276,316604],[0,3244],[171,1607],[196,17],[0,2160]],[[226999,328802],[9,-8951]],[[227008,319851],[-1,-3236]],[[227007,316615],[-1172,1]],[[225835,316616],[-9,3231]],[[228473,321276],[-555,611],[-74,2247],[-845,4687]],[[258630,324915],[-2,-2532]],[[258628,322383],[-1295,15]],[[257333,322398],[-144,-1]],[[242467,323784],[-5,-1009]],[[242462,322775],[-297,41],[-5,-1617],[-876,479]],[[241284,321678],[-151,871],[122,2107]],[[259869,326706],[27,-4377]],[[259896,322329],[-1243,53]],[[258653,322382],[-25,1]],[[263128,327034],[11,-1303],[-212,-3409]],[[262927,322322],[-101,-5]],[[262826,322317],[-467,1]],[[200462,326631],[361,-4881]],[[200823,321750],[-379,16],[-5,-7060]],[[200439,314706],[-1451,-14]],[[198988,314692],[-3680,23]],[[229063,321884],[-7,-2046]],[[229056,319838],[-2048,13]],[[267573,322560],[-1043,-137]],[[266530,322423],[-489,3118],[-223,-91]],[[265818,325450],[99,1725]],[[285669,327694],[310,746],[30,-1788],[-452,-995],[295,-346],[-138,-1387],[-575,-2025],[-396,1477],[22,796]],[[260981,322230],[-364,32]],[[260617,322262],[-721,67]],[[281350,326073],[46,-5342],[-149,-3077],[243,-284]],[[281490,317370],[-394,-3132]],[[281096,314238],[-204,2184],[-465,3449]],[[280427,319871],[-419,2517],[-71,1882],[149,2853]],[[239901,323980],[-690,-4023],[1,-1632]],[[239212,318325],[-296,-555]],[[238916,317770],[-881,35]],[[238035,317805],[15,5109]],[[233469,323637],[-441,-557],[-20,-6469]],[[233008,316611],[1,-1619],[-439,-6]],[[232570,314986],[-587,-6],[0,1619],[-585,2]],[[231398,316601],[2,1620]],[[231400,318221],[7,5253],[294,1895]],[[265818,325450],[-331,-347],[-413,-2793]],[[265074,322310],[-349,6]],[[264725,322316],[-533,16]],[[264192,322332],[82,4063]],[[231400,318221],[-877,0]],[[230523,318221],[1,2620],[-236,42]],[[264192,322332],[-835,-2]],[[263357,322330],[-430,-8]],[[280427,319871],[-1132,-401]],[[279295,319470],[-372,2213]],[[278923,321683],[-155,1648],[-22,2457]],[[284224,323874],[52,13]],[[284340,318874],[-211,-331]],[[284129,318543],[-198,2128],[-360,239],[-380,1072],[-481,71]],[[282710,322053],[-153,640]],[[203116,323293],[0,-1615],[261,2],[1,-1550],[-729,1]],[[202649,320131],[-58,616],[-705,53],[-101,-673],[-844,4],[-118,1619]],[[209007,318439],[-587,-7],[1,-1615],[-294,-10],[-3,-1617],[-1242,-7],[0,-4792]],[[206882,310391],[-1173,-5]],[[205709,310386],[1,4846],[62,-6],[-1,8105]],[[270059,326197],[-28,-6431],[221,-1212]],[[270252,318554],[-254,-3697],[-212,-1915]],[[269786,312942],[-11,23]],[[269775,312965],[-379,2612],[-91,3608]],[[269305,319185],[-142,3645],[-154,854],[-476,133]],[[276023,325210],[227,-1072],[186,597],[147,-1356],[71,-2679],[-218,-1752]],[[276436,318948],[-6,0]],[[276430,318948],[-1089,137]],[[275341,319085],[120,7114]],[[278923,321683],[-437,-2239],[-436,98]],[[278050,319542],[11,671]],[[278061,320213],[-25,1291],[-296,1844]],[[275341,319085],[-679,65]],[[274662,319150],[-651,42],[43,2132],[-159,1235]],[[271464,320921],[-199,-1405],[-198,-4516]],[[271067,315000],[-604,2048],[-211,1506]],[[271011,325975],[333,-4682],[120,-372]],[[282710,322053],[66,-1015],[-81,-3692]],[[282695,317346],[-1205,24]],[[214473,325959],[-5,-8115]],[[214468,317844],[-992,-9]],[[213476,317835],[-1442,8]],[[212034,317843],[0,3850]],[[272173,319555],[-237,565]],[[271936,320120],[-472,801]],[[272426,325617],[-120,-2206],[-216,-215],[83,-3641]],[[219010,325953],[-5,-8103]],[[219005,317850],[-1126,11]],[[217879,317861],[-406,0]],[[217473,317861],[11,8077]],[[220510,323130],[0,-5304]],[[220510,317826],[-1158,20]],[[219352,317846],[-347,4]],[[215990,325957],[-18,-8108]],[[215972,317849],[-1028,11]],[[214944,317860],[-476,-16]],[[277740,323348],[-316,-945],[31,-1526],[-351,-1962]],[[277104,318915],[-668,33]],[[217473,317861],[-1061,-16]],[[216412,317845],[-440,4]],[[273710,323959],[112,-2797],[-91,-1953]],[[273731,319209],[-1617,15]],[[272114,319224],[59,331]],[[266530,322423],[-186,-14]],[[266344,322409],[-1079,-93]],[[265265,322316],[-191,-6]],[[247234,320763],[-1924,142],[-2,-829]],[[245308,320076],[-139,2518]],[[224357,319847],[-575,10],[0,-4860]],[[223782,314997],[-488,-1],[-284,811]],[[223010,315807],[139,1188],[-267,11],[14,2696],[-285,-467]],[[222611,319235],[-167,661],[-83,3113],[-204,1670]],[[284158,318179],[-29,364]],[[285469,320638],[29,1355],[695,561],[-107,-1081],[521,322],[-484,-2668],[-165,-1717],[-182,-44],[-131,1684],[-204,-1777],[-551,162],[-575,-954],[-157,1698]],[[222611,319235],[-441,-168],[-51,-1639],[-679,-8]],[[221440,317420],[-149,817],[-33,3268],[-436,-2],[0,1607]],[[164640,304627],[231,-1775],[-418,-877],[-322,2121],[509,531]],[[165054,305328],[976,-1440],[-461,-704],[-359,131],[-156,2013]],[[166339,320671],[-2,-7969],[-90,-1807]],[[166247,310895],[-250,760],[-867,-159],[-357,994],[-804,202],[-490,-416],[-116,1396],[-373,1056],[124,2395],[-24,2471],[-171,1150],[60,1338]],[[241284,321678],[-584,-794],[39,-1065]],[[240739,319819],[-931,86],[-3,-1605]],[[239805,318300],[-593,25]],[[238035,317805],[-614,-1483]],[[237421,316322],[-244,500],[-834,91],[-381,589]],[[244560,320923],[-20,-4593],[-199,25],[193,-1934]],[[244534,314421],[-604,81],[-3,-1622],[-230,23]],[[243697,312903],[96,2891],[-160,660],[20,4598],[-307,36],[4,2025]],[[269305,319185],[-840,-2741],[-145,-912]],[[268320,315532],[-168,2206],[10,5856]],[[243697,312903],[-75,13]],[[243622,312916],[-905,125]],[[242717,313041],[1,2457],[-235,29],[98,2072],[20,5168],[-139,8]],[[274662,319150],[434,-3775]],[[275096,315375],[-397,-1019],[74,-878],[-605,-586],[-6,1090],[-378,-1531]],[[273784,312451],[4,1591]],[[273788,314042],[49,2841],[-106,2326]],[[234276,316604],[-1268,7]],[[268320,315532],[-415,-2628]],[[267905,312904],[-174,218]],[[267731,313122],[-145,795]],[[267586,313917],[-653,2806]],[[266933,316723],[-40,540]],[[266893,317263],[305,3008],[323,1133],[53,1159]],[[205709,310386],[-2,-1614],[-1700,0]],[[204007,308772],[-1371,-6],[-3,3352]],[[202633,312118],[-147,1515],[16,6496],[147,2]],[[278050,319542],[43,-1242],[-360,-2633]],[[277733,315667],[-629,3248]],[[221440,317420],[1,-4034],[-493,-32]],[[220948,313354],[-223,1273],[-207,-261]],[[220518,314366],[-8,3460]],[[242717,313041],[-496,63]],[[242221,313104],[-106,14]],[[242115,313118],[5,1627],[-291,31],[-264,1665],[-303,325],[6,1345],[-291,53],[9,1622],[-247,33]],[[256004,318053],[-462,772]],[[255542,318825],[-243,556],[-714,-1852],[-404,1290],[-162,1541],[-347,181]],[[253672,320541],[-285,1924]],[[256143,322529],[-11,-3407],[-128,-1069]],[[245308,320076],[-7,-2464],[140,-1661]],[[245441,315951],[-7,-3254],[151,-26],[-6,-2481],[-150,6]],[[245429,310196],[-103,136],[-579,3569],[-213,520]],[[266893,317263],[-555,643],[-280,1346]],[[266058,319252],[-12,1037],[298,2120]],[[257333,322398],[-17,-8213]],[[257316,314185],[-332,545],[-546,1972]],[[256438,316702],[-434,1351]],[[252925,317998],[-982,22]],[[251943,318020],[-96,1897],[-197,-2],[2,2543]],[[252934,322462],[-9,-4464]],[[253555,314761],[-47,-2207]],[[253508,312554],[-481,7]],[[253027,312561],[-4,5160],[-98,277]],[[253672,320541],[-117,-5780]],[[251943,318020],[-47,-2986]],[[251896,315034],[-984,33]],[[250912,315067],[1,4042],[197,807],[1,2537]],[[249142,318304],[-519,9],[-251,-975]],[[248372,317338],[-343,700],[-215,-623]],[[247814,317415],[-5,2533],[-284,-8]],[[249140,322450],[2,-4146]],[[250912,315067],[-438,-278]],[[250474,314789],[-147,-6],[-2,4867],[-149,0],[0,2782]],[[250474,314789],[-2,-1631]],[[250472,313158],[-642,1090],[-534,3]],[[249296,314251],[-2,2446],[-152,1607]],[[266058,319252],[-82,-420]],[[265976,318832],[-275,-140]],[[265701,318692],[-106,2241],[-330,1383]],[[258653,322382],[-137,-6674],[89,-612]],[[258605,315096],[-29,-1679],[-447,-518],[-146,1195]],[[257983,314094],[-427,804],[-240,-713]],[[260678,319948],[-562,-4378],[-610,-2702],[-150,-76]],[[259356,312792],[-223,839],[-30,1451],[-498,14]],[[260617,322262],[61,-2314]],[[263365,319856],[101,-595],[-208,-1794],[7,-2679]],[[263265,314788],[-172,733],[-550,214]],[[262543,315735],[233,4869]],[[262776,320604],[50,1713]],[[263357,322330],[8,-2474]],[[264725,322316],[-135,-684],[239,-2782],[-180,-2853]],[[264649,315997],[-86,-841]],[[264563,315156],[-22,277]],[[264541,315433],[-329,3527],[-293,882],[-554,14]],[[262543,315735],[-381,-217]],[[262162,315518],[-1,1816],[-262,888]],[[261899,318222],[232,964],[228,3132]],[[261899,318222],[-334,1613],[-2,2435]],[[265701,318692],[-212,-1319]],[[265489,317373],[-231,351],[-271,-1838],[-338,111]],[[284158,318179],[119,-1091],[-640,-3358],[-489,-1594]],[[283148,312136],[-159,657],[-294,4553]],[[261287,322237],[-239,-2821],[0,-1352],[-233,-2520]],[[260815,315544],[-137,4404]],[[262162,315518],[-52,-656]],[[262110,314862],[-108,4]],[[262002,314866],[-1168,24]],[[260834,314890],[-19,654]],[[230523,318221],[0,-1628],[-295,-3],[-4,-3251]],[[230224,313339],[-873,12]],[[229351,313351],[0,1622],[-293,812]],[[229058,315785],[-2,4053]],[[202633,312118],[-979,1703],[-317,896],[-898,-11]],[[279295,319470],[266,-2708],[-183,-3842]],[[279378,312920],[-224,-636],[-333,-2783]],[[278821,309501],[-4,24]],[[278817,309525],[-1052,5966]],[[277765,315491],[-32,176]],[[212034,317843],[-3,-8091]],[[212031,309752],[0,-188]],[[212031,309564],[-1940,9],[5,5615]],[[272114,319224],[155,-4645]],[[272269,314579],[-1,-1445]],[[272268,313134],[-327,-920],[-286,1648]],[[271655,313862],[-588,1138]],[[247236,319437],[-213,565],[88,-2172],[-320,-435],[282,-923],[-325,-595]],[[246748,315877],[-1307,74]],[[255542,318825],[30,-628],[-318,-3711]],[[255254,314486],[-1699,275]],[[166086,290611],[276,-965],[-300,-16],[24,981]],[[167726,304768],[-743,1873],[-183,2255],[-553,1999]],[[167906,318608],[691,-9433],[-104,-2110],[-329,6],[-438,-2303]],[[247814,317415],[-122,-2322],[127,-841]],[[247819,314252],[0,-807]],[[247819,313445],[-294,-28],[6,-1584],[-272,-13]],[[247259,311820],[-473,1881]],[[246786,313701],[-38,2176]],[[260834,314890],[37,-1200]],[[260871,313690],[-340,-2929],[-579,-3107]],[[259952,307654],[-731,14]],[[259221,307668],[-12,4227],[147,897]],[[281096,314238],[217,-1643],[-222,-1225]],[[281091,311370],[-528,-425],[-618,1727],[-567,248]],[[223010,315807],[-346,-3461]],[[222664,312346],[46,-2146]],[[222710,310200],[-463,2268],[-59,-1528],[-214,361]],[[221974,311301],[-292,391],[-321,-718],[-413,2380]],[[242115,313118],[-438,43],[-4,-817],[-514,69],[-222,-771]],[[240937,311642],[-45,1094],[-302,570]],[[240590,313306],[-42,1616],[-478,872],[30,2513],[-295,-7]],[[225835,316616],[-146,-4],[-1,-3243]],[[225688,313369],[-284,3],[-145,-1083],[-582,7],[-438,-808]],[[224239,311488],[-1,1890],[-456,-2],[0,1621]],[[229058,315785],[-745,-262],[155,-2162],[-579,4]],[[227889,313365],[-586,3]],[[227303,313368],[-1,3244],[-295,3]],[[264541,315433],[-415,-1026]],[[264126,314407],[-860,-258]],[[263266,314149],[-1,639]],[[266933,316723],[-339,-3833]],[[266594,312890],[-433,-921]],[[266161,311969],[-142,1338]],[[266019,313307],[139,813],[-135,1990],[115,1469],[-162,1253]],[[168718,285870],[613,-3553],[-362,241],[-251,3312]],[[168675,294217],[663,-1336],[119,-1995],[-366,418],[-149,2047],[-267,866]],[[170961,302915],[-533,9],[-383,-3729]],[[170045,299195],[-299,468],[-188,-1226],[-342,667],[55,1824],[-185,2348],[-237,1371],[-531,-106],[-203,-603],[-389,830]],[[273788,314042],[-1519,537]],[[269786,312942],[-1189,-5125]],[[268597,307817],[-93,1502]],[[268504,309319],[-251,3128],[-348,457]],[[276707,313833],[-152,-754],[-450,18],[-676,-2348]],[[275429,310749],[-151,2724]],[[275278,313473],[-182,1902]],[[276430,318948],[164,-2140],[207,-809],[-94,-2166]],[[277765,315491],[-510,-6013]],[[277255,309478],[-68,132]],[[277187,309610],[-190,3520],[-290,703]],[[256438,316702],[-14,-6930]],[[256424,309772],[0,-270]],[[256424,309502],[-1170,99]],[[255254,309601],[0,4885]],[[266019,313307],[-494,36]],[[265525,313343],[-95,2291],[59,1739]],[[271655,313862],[-387,-3128],[-316,-1221],[-138,-1800]],[[270814,307713],[-619,2360],[-220,1485]],[[269975,311558],[-189,1384]],[[209510,315195],[7,-9723]],[[209517,305472],[-585,10],[0,-1637],[-1755,87],[0,1633],[-298,9]],[[206879,305574],[3,4817]],[[249296,314251],[-147,-1]],[[249149,314250],[-1330,2]],[[240590,313306],[-340,47],[-91,-2176],[-1279,142]],[[238880,311319],[36,6451]],[[231398,316601],[2,-3247],[-148,-1629],[-731,-2]],[[230521,311723],[-297,19],[0,1597]],[[253027,312561],[-593,32]],[[252434,312593],[1,817],[-542,-5]],[[251893,313405],[3,1629]],[[216412,317845],[0,-8101]],[[216412,309744],[-260,3]],[[216152,309747],[-1208,11]],[[214944,309758],[0,8102]],[[217879,317861],[-4,-8109]],[[217875,309752],[-265,-6]],[[217610,309746],[-1198,-2]],[[214944,309758],[-258,1]],[[214686,309759],[-1211,-2]],[[213475,309757],[1,8078]],[[219352,317846],[-4,-8079]],[[219348,309767],[-278,10]],[[219070,309777],[-1195,-25]],[[220518,314366],[0,-4631]],[[220518,309735],[-1170,32]],[[238880,311319],[-3,-1067]],[[238877,310252],[-196,24]],[[238681,310276],[-1273,171]],[[237408,310447],[13,5875]],[[213475,309757],[-250,-2]],[[213225,309755],[-1194,-3]],[[265525,313343],[-379,-1617]],[[265146,311726],[-589,2243],[6,1187]],[[283148,312136],[-617,-2746]],[[282531,309390],[-232,1787],[-388,-117],[-188,-953]],[[281723,310107],[-370,469]],[[281353,310576],[-262,794]],[[237408,310447],[-890,102],[31,-3035]],[[236549,307514],[-631,-50]],[[235918,307464],[24,5914]],[[257983,314094],[-89,-4491]],[[257894,309603],[-1470,169]],[[267586,313917],[-206,-1091],[-615,-312]],[[266765,312514],[-171,376]],[[227303,313368],[-1,-4055]],[[227302,309313],[-1606,12]],[[225696,309325],[-8,4044]],[[232570,314986],[0,-1620],[-300,-11],[2,-6507]],[[232272,306848],[-593,2]],[[231679,306850],[-1159,9]],[[230520,306859],[1,4864]],[[234616,313367],[-304,7],[0,-4907],[-291,4],[-15,-1618]],[[234006,306853],[-1734,-5]],[[246786,313701],[-19,-2054],[-497,-863],[38,-1147],[-293,-1724],[-253,399],[310,-1738],[-364,-407]],[[245708,306167],[3,-24]],[[245711,306143],[-453,5]],[[245258,306148],[92,410],[79,3638]],[[229351,313351],[-149,-2],[-1,-3219],[-146,-6]],[[229055,310124],[-301,797],[-865,13],[0,2431]],[[224239,311488],[147,-1345],[-3,-3288]],[[224383,306855],[-432,-385],[-522,1415]],[[223429,307885],[-656,27],[-63,2288]],[[263266,314149],[3,-2538]],[[263269,311611],[-982,-374]],[[262287,311237],[-274,215],[97,3410]],[[278817,309525],[-155,-872]],[[278662,308653],[-702,872],[-466,-1308]],[[277494,308217],[-239,1261]],[[265146,311726],[62,-1577]],[[265208,310149],[-838,21]],[[264370,310170],[1,855]],[[264371,311025],[-245,3382]],[[275429,310749],[0,-38]],[[275429,310711],[-371,-1301],[-162,-2339]],[[274896,307071],[-379,-1286]],[[274517,305785],[-288,-570],[-418,2121],[121,1598]],[[273932,308934],[155,2001],[-303,1516]],[[212031,309564],[-10,-8889]],[[212021,300675],[-15,-4739]],[[212006,295936],[-1274,-7]],[[210732,295929],[1,1618],[-582,-19],[5,3039],[-348,-1],[0,4885],[-291,21]],[[251893,313405],[-148,-262],[-98,-2422]],[[251647,310721],[-1175,275]],[[250472,310996],[0,2162]],[[259221,307668],[-550,-1892]],[[258671,305776],[-416,2982]],[[258255,308758],[-361,845]],[[262002,314866],[-202,-2820],[-428,-1223],[-148,-1566],[-209,4]],[[261015,309261],[-144,4429]],[[262287,311237],[-115,-5511]],[[262172,305726],[-1045,-291]],[[261127,305435],[-112,3826]],[[204007,308772],[-2,-8089],[-357,6],[0,-3269],[-895,189],[3,-3357]],[[202756,294252],[-282,-80],[-3451,20]],[[199023,294192],[-10,14576],[-25,5924]],[[199023,294192],[-802,21],[0,-5147]],[[198221,289066],[-2916,138]],[[195305,289204],[0,10598]],[[255254,309601],[-292,45]],[[254962,309646],[-1501,262]],[[253461,309908],[47,2646]],[[221974,311301],[-1,-5776]],[[221973,305525],[-842,203],[-613,2379]],[[220518,308107],[0,1628]],[[273932,308934],[-751,-1023],[-232,-720],[-385,1197]],[[272564,308388],[-296,4746]],[[245258,306148],[-220,-1244],[179,-1807],[-328,48],[-478,1054]],[[244411,304199],[-66,1224]],[[244345,305423],[-235,2560],[-507,303],[19,4630]],[[264371,311025],[-903,8],[-199,578]],[[250472,310996],[3,-4065]],[[250475,306931],[-737,17]],[[249738,306948],[0,538],[-588,29]],[[249150,307515],[-1,6735]],[[249150,307515],[-2,-541],[-585,15]],[[248563,306989],[-568,-78]],[[247995,306911],[2,1971],[-165,659],[-13,3904]],[[267731,313122],[-172,-4100]],[[267559,309022],[-165,-650],[-348,481],[-159,-755]],[[266887,308098],[-122,4416]],[[277187,309610],[-200,-184],[-957,-3894]],[[276030,305532],[-239,1408],[128,659],[-179,3128],[-311,-16]],[[272564,308388],[-61,-777]],[[272503,307611],[-371,-2256]],[[272132,305355],[-182,82],[-533,1971],[-394,-959]],[[271023,306449],[-209,1264]],[[261127,305435],[65,-2172]],[[261192,303263],[-366,-424]],[[260826,302839],[-582,505]],[[260244,303344],[-292,4310]],[[247116,305288],[0,-1624]],[[247116,303664],[-574,36]],[[246542,303700],[-7,2441],[-827,26]],[[247259,311820],[2,-3021],[-145,16],[0,-3527]],[[247995,306911],[-1,-1623],[-878,0]],[[266161,311969],[-151,-1209],[137,-1333]],[[266147,309427],[-550,-3124]],[[265597,306303],[-143,-536],[-540,1289]],[[264914,307056],[377,2075],[-83,1018]],[[252434,312593],[-3,-7006]],[[252431,305587],[-491,-269]],[[251940,305318],[-293,8]],[[251647,305326],[0,5395]],[[229055,310124],[0,-2981]],[[229055,307143],[-102,-1894]],[[228953,305249],[-1646,5]],[[227307,305254],[-5,4059]],[[230520,306859],[-129,-799],[-366,1]],[[230025,306061],[-236,1077],[-734,5]],[[225696,309325],[4,-2728]],[[225700,306597],[-87,-540],[-545,799],[-164,-1383]],[[224904,305473],[-175,-372],[-346,1754]],[[235918,307464],[-20,-4634]],[[235898,302830],[-25,-5641]],[[235873,297189],[-725,1210]],[[235148,298399],[-85,1118],[-236,-357],[-302,2195],[-518,1395]],[[234007,302750],[-1,4103]],[[240937,311642],[-27,-4926]],[[240910,306716],[-580,117]],[[240330,306833],[-387,76],[-25,1423],[-898,817],[-143,1103]],[[192649,296055],[0,-2067],[-471,-22],[-761,-1596],[-17,-3435]],[[191400,288935],[-519,-982],[-411,-2924],[-457,4942],[-260,4020]],[[189753,293991],[-316,3938],[-198,-1382],[-453,2730],[43,1284],[-343,3366]],[[268504,309319],[-576,-1452],[-270,224]],[[267658,308091],[-99,931]],[[242221,313104],[-71,-8013]],[[242150,305091],[-288,-50]],[[241862,305041],[-455,1583],[-497,92]],[[244345,305423],[-785,1742],[-49,-1484],[-582,-12],[0,-545]],[[242929,305124],[-779,-33]],[[266887,308098],[-133,-492]],[[266754,307606],[-217,1202],[-390,619]],[[281353,310576],[-256,-2617],[-334,-211],[-135,-1226],[-339,132],[-50,-1711],[-247,-2039]],[[279992,302904],[-1171,6597]],[[269975,311558],[-244,-1242],[240,-2297],[-54,-2071],[-167,-825]],[[269750,305123],[-567,148],[-179,-1083]],[[269004,304188],[-407,3629]],[[253461,309908],[-84,-4366]],[[253377,305542],[-946,45]],[[223429,307885],[-1,-7045]],[[223428,300840],[-1456,0]],[[221972,300840],[1,4685]],[[263252,305382],[-219,27]],[[263033,305409],[-515,58]],[[262518,305467],[-346,259]],[[263269,311611],[-17,-6229]],[[264370,310170],[-2,-2778]],[[264368,307392],[-267,-204],[-179,-1893]],[[263922,305295],[-670,87]],[[271023,306449],[-385,-3232]],[[270638,303217],[-108,-158]],[[270530,303059],[5,561],[-727,-210],[-58,1713]],[[282531,309390],[61,24]],[[282592,309414],[10,-65]],[[282602,309349],[-405,-2626],[-165,-1820],[-109,2615]],[[281923,307518],[-200,2589]],[[251647,305326],[-877,-15]],[[250770,305311],[-293,-4],[-2,1624]],[[276030,305532],[200,-730]],[[276230,304802],[-500,-1759],[-394,2383],[-444,601],[4,1044]],[[281923,307518],[8,-4063],[-186,-1610],[-387,486],[-737,-285],[-373,-589]],[[280248,301457],[-33,176]],[[280215,301633],[-11,67]],[[280204,301700],[-212,1204]],[[237408,310447],[27,-3044],[293,-50],[-7,-3257]],[[237721,304096],[-23,-4862],[-351,60]],[[237347,299294],[-4,1]],[[237343,299295],[-252,2449],[-133,5739],[-409,31]],[[238681,310276],[-66,-2358],[143,-158],[46,-2922],[169,-1709]],[[238973,303129],[-231,-2]],[[238742,303127],[-202,-247],[-819,1216]],[[206879,305574],[2,-12856],[-37,-4822],[-1146,-121]],[[205698,287775],[-6,3219],[-1134,-5],[-3,1594],[-1724,6]],[[202831,292589],[-75,1663]],[[240330,306833],[-20,-6441]],[[240310,300392],[-587,-612]],[[239723,299780],[-511,1233],[-239,2116]],[[264914,307056],[-97,-2181]],[[264817,304875],[-449,1093],[0,1424]],[[254962,309646],[-4,-5675]],[[254958,303971],[0,-1619]],[[254958,302352],[-879,89]],[[254079,302441],[-98,2459],[-614,117]],[[253367,305017],[10,525]],[[183362,303916],[0,-11575]],[[183362,292341],[-1740,3],[0,1620],[-862,-20],[-3,-8075],[-686,-61]],[[180071,285808],[-439,260],[-94,887],[82,3389],[-151,600],[21,1938],[272,564]],[[179762,293446],[283,2148],[77,2692],[-106,4262],[274,1899],[11,1120]],[[181121,309576],[281,-790],[1201,-586],[253,1502],[507,147]],[[219070,309777],[-4,-8906]],[[219066,300871],[-1455,-38]],[[217611,300833],[-1,8913]],[[220518,308107],[-138,101],[-4,-7331]],[[220376,300877],[-1310,-6]],[[258255,308758],[-186,-144],[-224,-2438],[-291,-747],[-162,-1946],[-430,-1123],[-129,-1066]],[[256833,301294],[-358,590],[-165,1921]],[[256310,303805],[109,-16],[5,5713]],[[217611,300833],[-1456,-60]],[[216155,300773],[-3,8974]],[[216155,300773],[-1454,-106]],[[214701,300667],[-15,9092]],[[214701,300667],[-1476,8]],[[213225,300675],[0,9080]],[[277494,308217],[-65,-786],[217,-4445],[468,-2796]],[[278114,300190],[-479,-436],[-840,1115],[-215,922]],[[276580,301791],[-276,1144]],[[276304,302935],[225,772],[-299,1095]],[[213225,300675],[-1204,0]],[[256310,303805],[-1352,166]],[[280204,301700],[21,-471],[-685,-2076],[-529,-3188]],[[279011,295965],[-269,-6],[-253,2493]],[[278489,298452],[-185,3128],[-229,1784],[245,1596],[342,3693]],[[278489,298452],[-265,205],[-88,1174]],[[278136,299831],[-22,359]],[[266754,307606],[118,-2921]],[[266872,304685],[-494,-1390]],[[266378,303295],[-72,1227],[-571,652],[-138,1129]],[[227307,305254],[-1,-3184]],[[227306,302070],[-352,1622],[-507,-2568],[-302,757]],[[226145,301881],[90,1860],[-381,232],[-154,2624]],[[269004,304188],[84,-1081]],[[269088,303107],[-225,529]],[[268863,303636],[-374,-245]],[[268489,303391],[-548,1345]],[[267941,304736],[-283,3355]],[[267941,304736],[-591,-490]],[[267350,304246],[-195,-334]],[[267155,303912],[-283,773]],[[274517,305785],[-85,-1864],[134,-4155],[-61,-616]],[[274505,299150],[-581,663],[-511,1884]],[[273413,301697],[-135,2327],[-372,1680],[-227,39],[-176,1868]],[[258671,305776],[-63,-2961]],[[258608,302815],[-229,-1970],[-471,-601],[9,-685]],[[257917,299559],[-515,1403],[-542,-470]],[[256860,300492],[-27,802]],[[221972,300840],[4,-1864]],[[221976,298976],[-229,1201],[-392,509],[-834,191]],[[220521,300877],[-145,0]],[[224904,305473],[0,-4595]],[[224904,300878],[-1476,-38]],[[260244,303344],[-448,-474],[-461,-1878]],[[259335,300992],[-374,2733],[-353,-910]],[[273413,301697],[-85,-3220]],[[273328,298477],[-403,-1010]],[[272925,297467],[-503,1412],[-567,2766]],[[271855,301645],[277,3710]],[[249738,306948],[7,-5486]],[[249745,301462],[-730,-2],[-438,571]],[[248577,302031],[-14,4958]],[[237343,299295],[-645,694],[-800,2841]],[[271855,301645],[-224,-1169]],[[271631,300476],[-514,964],[-162,2031],[-317,-254]],[[264817,304875],[-499,-1732]],[[264318,303143],[-198,104],[-7,-5871]],[[264113,297376],[-299,18],[-3,-1823]],[[263811,295571],[-420,-902]],[[263391,294669],[-672,168]],[[262719,294837],[116,1165]],[[262835,296002],[415,1551],[228,1602]],[[263478,299155],[298,1539],[245,2560],[-99,2041]],[[230025,306061],[101,-881],[-211,-1084],[101,-2120]],[[230016,301976],[-186,350],[-327,-1482],[-269,387],[-183,1849]],[[229051,303080],[-98,2169]],[[244411,304199],[-353,-701],[-25,-3600]],[[244033,299898],[-1166,155]],[[242867,300053],[62,5071]],[[276304,302935],[-783,-2654],[-394,-674],[-382,-2307]],[[274745,297300],[-240,1850]],[[265597,306303],[-143,-2279],[195,-1400]],[[265649,302624],[-510,-2675]],[[265139,299949],[-116,-620]],[[265023,299329],[-659,3103],[-46,711]],[[248577,302031],[0,-1380],[-585,-270],[-2,-1632]],[[247990,298749],[-442,543],[316,1089],[-750,38]],[[247114,300419],[2,3245]],[[250770,305311],[4,-4878],[-150,-1369]],[[250624,299064],[-878,-312]],[[249746,298752],[-1,2710]],[[231679,306850],[149,-590],[1,-3199],[271,-1474],[224,-5]],[[232324,301582],[-241,-630]],[[232083,300952],[-247,888],[-429,-565],[-250,-1798],[-558,-652]],[[230599,298825],[-125,949],[-568,1263],[110,939]],[[234007,302750],[-176,481],[-257,-1570]],[[233574,301661],[-669,201],[-133,967],[-448,-1247]],[[241862,305041],[-376,-48],[-11,-1571],[394,-3307]],[[241869,300115],[-693,133]],[[241176,300248],[-866,144]],[[226145,301881],[-3,-7871]],[[226142,294010],[-1232,-6]],[[224910,294004],[-6,6874]],[[266378,303295],[-305,-1110]],[[266073,302185],[-424,439]],[[246542,303700],[-5,-6913],[-293,-2],[0,-1616]],[[246244,295169],[-1256,-5]],[[244988,295164],[-45,601]],[[244943,295765],[269,599],[-236,1265],[282,815],[-40,1455],[303,-382],[-185,3716],[560,1252],[-185,1658]],[[244943,295765],[-41,-823],[-579,866]],[[244323,295808],[8,4034],[-298,56]],[[262518,305467],[-156,-2441],[-200,-874]],[[262162,302152],[-936,-50]],[[261226,302102],[-34,1161]],[[253367,305017],[-117,-5834]],[[253250,299183],[-737,-1766]],[[252513,297417],[38,554],[-611,6],[-2,2436]],[[251938,300413],[2,4905]],[[210732,295929],[-587,-11],[-3,-3235],[-124,-7],[0,-8008],[-134,-3]],[[209884,284665],[-2861,-35],[-28,-8243]],[[206995,276387],[-1400,-32],[4,8250],[101,1],[-2,3169]],[[263478,299155],[-127,1132],[-280,33]],[[263071,300320],[-38,5089]],[[179762,293446],[-4058,-181]],[[175704,293265],[-2643,-5],[-585,89],[-362,1122],[-387,245]],[[171727,294716],[267,2870],[-339,971],[-382,2958]],[[263071,300320],[-494,-473]],[[262577,299847],[-380,582]],[[262197,300429],[-35,1723]],[[270530,303059],[-303,-446],[112,-1813],[-159,-1241],[160,-3138]],[[270340,296421],[-326,1801]],[[270014,298222],[-319,2646],[-607,2239]],[[251938,300413],[-588,24],[-1,-1081],[-287,-276]],[[251062,299080],[-438,-16]],[[229051,303080],[-27,-97]],[[229024,302983],[-420,-2885],[-33,-1359],[-271,1490],[50,1869],[-342,-239],[-177,-1289],[-249,387],[-61,1401]],[[227521,302358],[-215,-288]],[[242867,300053],[0,-1626]],[[242867,298427],[-989,64]],[[241878,298491],[-9,1624]],[[254079,302441],[14,-7371]],[[254093,295070],[-914,185]],[[253179,295255],[71,3928]],[[268489,303391],[-191,-580],[-387,-2963],[106,-884]],[[268017,298964],[-130,-739]],[[267887,298225],[-343,99],[-450,1171]],[[267094,299495],[12,1605]],[[267106,301100],[49,2812]],[[189753,293991],[-1506,-3],[-6,-4849],[-1376,-19],[-349,1601],[-5,-14590]],[[186511,276131],[-3149,-35]],[[183362,276096],[0,16245]],[[267106,301100],[-728,2195]],[[238742,303127],[-74,-8950]],[[238668,294177],[-668,109]],[[238000,294286],[-287,2381]],[[237713,296667],[-388,1098],[22,1529]],[[256860,300492],[-290,-2960],[-338,-792],[-245,-1877]],[[255987,294863],[-144,1386],[-293,274]],[[255550,296523],[0,1620],[-291,54],[-9,3268],[-292,887]],[[268863,303636],[139,-2861],[323,-3555]],[[269325,297220],[-471,-581]],[[268854,296639],[-87,-160]],[[268767,296479],[-371,1042],[-216,-421],[-163,1864]],[[227521,302358],[-8,-8969]],[[227513,293389],[-1201,1]],[[226312,293390],[-170,620]],[[259335,300992],[56,-1316],[-280,-1720]],[[259111,297956],[-212,-1709],[70,-887],[-508,-2769]],[[258461,292591],[2,2075],[-386,811]],[[258077,295477],[-160,4082]],[[247114,300419],[-4,-8971]],[[247110,291448],[-285,-7],[1,-1091],[-449,-9]],[[246377,290341],[-133,6],[0,4822]],[[270014,298222],[-538,-798]],[[269476,297424],[-151,-204]],[[271631,300476],[-1005,-5256]],[[270626,295220],[-44,238]],[[270582,295458],[-242,963]],[[265023,299329],[-257,-2572],[-190,585]],[[264576,297342],[-271,24]],[[264305,297366],[-192,10]],[[260085,295668],[2,547],[-556,17],[-158,1641],[-262,83]],[[260826,302839],[-296,-1218],[-7,-4236],[-438,-1717]],[[267094,299495],[-351,-1180]],[[266743,298315],[-277,2222]],[[266466,300537],[-393,1648]],[[261226,302102],[133,-4629]],[[261359,297473],[96,-3170]],[[261455,294303],[-945,242]],[[260510,294545],[-581,52]],[[259929,294597],[156,1071]],[[235148,298399],[-1,-6962]],[[235147,291437],[-172,647]],[[234975,292084],[-223,645],[-660,-165]],[[234092,292564],[-504,-212]],[[233588,292352],[-6,49]],[[233582,292401],[-8,9260]],[[239723,299780],[-33,-6035]],[[239690,293745],[-694,-157]],[[238996,293588],[-328,589]],[[230599,298825],[-15,-6105]],[[230584,292720],[-1252,143]],[[229332,292863],[-306,203]],[[229026,293066],[-2,9917]],[[229026,293066],[-1224,262]],[[227802,293328],[-289,61]],[[237713,296667],[-606,-1073]],[[237107,295594],[-320,702],[-637,-837],[-277,1730]],[[276580,301791],[-335,-2182],[7,-1181],[-302,-3863]],[[275950,294565],[-336,-991]],[[275614,293574],[-478,39],[-285,2097]],[[274851,295710],[-106,1590]],[[171727,294716],[-239,-2194]],[[171488,292522],[-527,2873],[-607,2124],[-309,1676]],[[233582,292401],[-516,1393],[-745,742],[-269,-626]],[[232052,293910],[31,7042]],[[266466,300537],[-488,-4110]],[[265978,296427],[-652,2740]],[[265326,299167],[-187,782]],[[255550,296523],[-579,144],[-98,-1641],[-485,59]],[[254388,295085],[-295,-15]],[[262197,300429],[-36,-1811],[-802,-1145]],[[249746,298752],[0,-823]],[[249746,297929],[-780,-17]],[[248966,297912],[-952,5]],[[248014,297917],[-24,832]],[[278136,299831],[-261,-1729],[-65,-2062],[-295,-1492],[-382,-3555]],[[277133,290993],[-221,469],[-599,3177],[-363,-74]],[[232052,293910],[-3,-968]],[[232049,292942],[-1216,-1076]],[[230833,291866],[-249,854]],[[274851,295710],[-156,131],[-298,-1760],[-415,2481],[-367,85],[-287,1830]],[[272925,297467],[-517,-3023]],[[272408,294444],[-1070,-5442]],[[271338,289002],[-265,919]],[[271073,289921],[-257,2318],[43,1727],[-233,1254]],[[258077,295477],[-439,-1478],[-435,-2504],[-548,-1594]],[[256655,289901],[-109,9]],[[256546,289910],[-267,1112],[-470,3450],[178,391]],[[220521,300877],[16,-8166]],[[220537,292711],[-1467,10]],[[219070,292721],[-4,8150]],[[221976,298976],[5,-6234]],[[221981,292742],[-1444,-31]],[[224910,294004],[2,-1315]],[[224912,292689],[-1486,26]],[[223426,292715],[2,8125]],[[219070,292721],[-1453,-13]],[[217617,292708],[-6,8125]],[[217617,292708],[-1443,-45]],[[216174,292663],[-19,8110]],[[223426,292715],[-1445,27]],[[216174,292663],[-1446,-96]],[[214728,292567],[-27,8100]],[[213225,300675],[57,-8129]],[[213282,292546],[-1287,-1]],[[211995,292545],[11,3391]],[[214728,292567],[-1446,-21]],[[241176,300248],[-12,-1321],[-518,-4118],[192,-1475],[382,-1184]],[[241220,292150],[-1146,188]],[[240074,292338],[-391,56],[7,1351]],[[266743,298315],[382,-3067],[-30,-933]],[[267095,294315],[-707,-913]],[[266388,293402],[-414,1708]],[[265974,295110],[4,1317]],[[262719,294837],[-459,-1602]],[[262260,293235],[-776,48]],[[261484,293283],[-29,1020]],[[262577,299847],[-12,-3859],[270,14]],[[248014,297917],[76,-4060],[-205,-780],[1,-1558]],[[247886,291519],[-437,-567]],[[247449,290952],[-227,-1245],[-112,1741]],[[252513,297417],[69,-2403],[-508,-277]],[[252074,294737],[0,1098],[-968,-56]],[[251106,295779],[-44,3301]],[[241878,298491],[54,-3825],[-183,-2389],[75,-1398]],[[241824,290879],[-230,-523],[-374,1794]],[[244323,295808],[-11,-3253]],[[244312,292555],[-1484,172]],[[242828,292727],[39,5700]],[[264965,295106],[-389,2236]],[[265326,299167],[-46,-1734],[-315,-2327]],[[279011,295965],[-403,-3616],[-92,-2363],[-262,1132],[231,-2620],[-212,-589],[-375,805]],[[277898,288714],[-123,574]],[[277775,289288],[-642,1705]],[[195305,289204],[0,-8032]],[[195305,281172],[-1,-6537]],[[195304,274635],[-186,-4]],[[195118,274631],[-312,2178],[43,3573],[-198,582],[-596,5810],[0,10694]],[[267887,298225],[124,-661],[-175,-1445],[3,-2070]],[[267839,294049],[-421,-2128]],[[267418,291921],[-323,2394]],[[253179,295255],[-83,-4574]],[[253096,290681],[-1016,-26]],[[252080,290655],[-6,4082]],[[265974,295110],[21,-726],[-419,-926],[-105,-1288]],[[265471,292170],[-170,1415]],[[265301,293585],[-336,1521]],[[251106,295779],[-194,-540]],[[250912,295239],[-465,-210],[-350,-1146]],[[250097,293883],[-350,16],[-1,4030]],[[268767,296479],[-104,-668]],[[268663,295811],[-273,-796],[-103,-1445]],[[268287,293570],[-448,479]],[[237107,295594],[1,-5232]],[[237108,290362],[-341,757],[-196,-1322],[-639,965],[-521,-443]],[[235411,290319],[-264,1118]],[[275614,293574],[-88,-2688],[-301,-779]],[[275225,290107],[-353,382],[-40,1051],[-800,-2860]],[[274032,288680],[-22,-72]],[[274010,288608],[-398,2352],[-785,2545]],[[272827,293505],[-419,939]],[[242828,292727],[22,-1854],[-368,-1418],[-65,-1107]],[[242417,288348],[-241,1667],[-352,864]],[[270582,295458],[-741,-3541]],[[269841,291917],[-395,3623],[30,1884]],[[259929,294597],[-147,0],[-211,-3806],[-383,38],[-157,-3571]],[[259031,287258],[-882,-28]],[[258149,287230],[-35,1334],[210,2007],[198,282],[-61,1738]],[[250097,293883],[-203,-505],[0,-2741]],[[249894,290637],[-534,-9]],[[249360,290628],[-4,2180],[-385,256],[-5,4848]],[[249360,290628],[-290,-1321]],[[249070,289307],[-1184,2212]],[[269841,291917],[-165,-789]],[[269676,291128],[-4,-5]],[[269672,291123],[-80,1]],[[269592,291124],[-424,845],[-314,4670]],[[195118,274631],[-3725,22]],[[191393,274653],[0,1610]],[[191393,276263],[7,12672]],[[264305,297366],[79,-1215],[-282,-4274]],[[264102,291877],[-95,1]],[[264007,291878],[19,2058],[-215,1635]],[[265301,293585],[-113,-1287],[-385,-1434]],[[264803,290864],[-134,698],[-567,315]],[[238000,294286],[55,-4237],[-203,-2132],[-208,87],[128,-2331]],[[237772,285673],[-29,1]],[[237743,285674],[-635,-3]],[[237108,285671],[0,4691]],[[269592,291124],[-134,-694]],[[269458,290430],[-356,976],[-547,-1372]],[[268555,290034],[-268,3536]],[[256546,289910],[-601,-2119],[-102,-2363],[-288,-51]],[[255555,285377],[-818,63]],[[254737,285440],[-326,195],[-14,2539]],[[254397,288174],[-9,6911]],[[211995,292545],[-22,-7993]],[[211973,284552],[0,-8133]],[[211973,276419],[1,-8101]],[[211974,268318],[0,-1611],[-731,-3]],[[211243,266704],[-1104,-3]],[[210139,266701],[0,9724],[-255,-1],[0,8241]],[[252080,290655],[-401,-9]],[[251679,290646],[-766,-8]],[[250913,290638],[-1,4601]],[[244988,295164],[-59,-1673],[289,734],[-26,-3356],[151,-2943],[-317,-598],[225,-984],[-128,-820]],[[245123,285524],[0,-134]],[[245123,285390],[-271,18]],[[244852,285408],[-481,19]],[[244371,285427],[-67,-3]],[[244304,285424],[8,7131]],[[264007,291878],[-125,-1789],[-179,18]],[[263703,290107],[-245,1867],[-67,2695]],[[258149,287230],[-73,-1530]],[[258076,285700],[-260,915],[-756,37],[2,-410]],[[257062,286242],[-403,2158],[-4,1501]],[[271073,289921],[-669,-319],[-229,1236],[-260,-546]],[[269915,290292],[-148,616]],[[269767,290908],[-91,220]],[[254397,288174],[-931,-2937]],[[253466,285237],[-470,-87]],[[252996,285150],[100,5531]],[[250913,290638],[-58,-1638],[-291,-9],[-3,-1640],[-289,-10]],[[250272,287341],[5,3289],[-383,7]],[[246377,290341],[40,-3234]],[[246417,287107],[-592,20],[0,-1670]],[[245825,285457],[-702,67]],[[266388,293402],[-34,-4888]],[[266354,288514],[-753,-747]],[[265601,287767],[-17,901]],[[265584,288668],[-113,3502]],[[263703,290107],[-14,-676]],[[263689,289431],[-975,44],[-28,-604]],[[262686,288871],[-213,626]],[[262473,289497],[-213,3738]],[[277775,289288],[-200,-1210],[-345,-446],[-431,-3536]],[[276799,284096],[-357,-1958],[-73,1501]],[[276369,283639],[-170,-185],[-119,1854],[-263,409]],[[275817,285717],[-479,2444],[-113,1946]],[[175704,293265],[8,-6545],[-64,-14],[-11,-8498]],[[175637,278208],[-2838,-1564],[17,2580],[-320,834],[-131,1949],[82,971],[-206,4490],[-532,4208],[-221,846]],[[261484,293283],[160,-5557]],[[261644,287726],[11,-400]],[[261655,287326],[-1005,-14]],[[260650,287312],[-168,-13]],[[260482,287299],[28,7246]],[[260482,287299],[-991,-305]],[[259491,286994],[-460,264]],[[233588,292352],[-6,-55]],[[233582,292297],[-854,-556],[-398,-900],[-289,-1444]],[[232041,289397],[8,3545]],[[272827,293505],[-15,-5200],[98,-784]],[[272910,287521],[-478,-195],[-495,933],[-201,-1171]],[[271736,287088],[-363,872],[-35,1042]],[[267418,291921],[45,-836],[-297,-951],[-55,-1334]],[[267111,288800],[-431,-35]],[[266680,288765],[-326,-251]],[[202831,292589],[15,-6292]],[[202846,286297],[-1525,-4281],[1,-811],[-1146,18],[-2,-3253]],[[200174,277970],[-860,-3]],[[199314,277967],[-358,449],[43,2766],[-165,3253],[-161,392],[-104,4258],[-348,-19]],[[238996,293588],[-214,-3466],[-111,31],[-24,-4496]],[[238647,285657],[-85,2]],[[238562,285659],[-790,14]],[[268555,290034],[21,-284]],[[268576,289750],[-391,-1856],[-455,-1079]],[[267730,286815],[-127,1309],[-492,676]],[[183362,276096],[1,-8676]],[[183363,267420],[-4125,8475],[13,2284],[251,1898]],[[179502,280077],[536,715],[179,2807],[-146,2209]],[[191393,276263],[-1966,-35],[0,-192],[-2916,95]],[[226312,293390],[-10,-8052]],[[226302,285338],[-375,38]],[[225927,285376],[-1032,85]],[[224895,285461],[17,7228]],[[240074,292338],[-28,-6700]],[[240046,285638],[-697,10]],[[239349,285648],[-702,9]],[[265584,288668],[-611,418]],[[264973,289086],[-229,4]],[[264744,289090],[59,1774]],[[274010,288608],[-793,-2802]],[[273217,285806],[-307,1715]],[[179502,280077],[-3865,-1869]],[[227802,293328],[-42,-8197]],[[227760,285131],[-406,73]],[[227354,285204],[-1052,134]],[[229332,292863],[-29,-7782]],[[229303,285081],[-523,-53]],[[228780,285028],[-1020,103]],[[262473,289497],[-829,-1771]],[[232039,284934],[-231,5],[-115,-1982],[146,-674]],[[231839,282283],[-397,23]],[[231442,282306],[-615,61]],[[230827,282367],[1,2606]],[[230828,284973],[5,6893]],[[232041,289397],[-2,-4463]],[[230828,284973],[-612,11]],[[230216,284984],[-913,97]],[[219070,292721],[-5,-8098]],[[219065,284623],[-381,10]],[[218684,284633],[-1066,127]],[[217618,284760],[-1,7948]],[[220537,292711],[5,-8140]],[[220542,284571],[-432,-2]],[[220110,284569],[-1045,54]],[[234975,292084],[-31,-7088]],[[234944,284996],[-292,1575],[-561,-613]],[[234091,285958],[1,6606]],[[217618,284760],[-376,-125]],[[217242,284635],[-1070,-47]],[[216172,284588],[2,8075]],[[223426,292715],[8,-8204]],[[223434,284511],[-404,2]],[[223030,284513],[-1045,0]],[[221985,284513],[-4,8229]],[[224895,285461],[-2,-1035],[-413,38]],[[224480,284464],[-1046,47]],[[221985,284513],[-393,-1]],[[221592,284512],[-1050,59]],[[244304,285424],[-1696,42]],[[242608,285466],[-191,2882]],[[216172,284588],[-374,14]],[[215798,284602],[-1072,-38]],[[214726,284564],[2,8003]],[[206995,276387],[10,-9680]],[[207005,266707],[-197,-1]],[[206808,266706],[-3007,34]],[[203801,266740],[-1057,-19]],[[202744,266721],[2,17810],[100,1766]],[[213282,292546],[0,-7999]],[[213282,284547],[-1309,5]],[[214726,284564],[-368,-14]],[[214358,284550],[-1076,-3]],[[234091,285958],[-73,-393]],[[234018,285565],[-60,-961],[-377,12]],[[233581,284616],[1,7681]],[[242608,285466],[-1828,115]],[[240780,285581],[-734,57]],[[233581,284616],[-993,-39]],[[232588,284577],[-549,357]],[[235411,290319],[-5,-7248]],[[235406,283071],[-145,-6]],[[235261,283065],[-39,471]],[[235222,283536],[-278,1460]],[[249070,289307],[-206,-1883],[-209,-3399],[-189,-953]],[[248466,283072],[-1108,2439]],[[247358,285511],[-151,1938],[245,380],[-3,3123]],[[264744,289090],[-346,-257]],[[264398,288833],[-567,369],[-126,-463]],[[263705,288739],[-16,692]],[[275817,285717],[197,-1750],[-222,-2037],[-677,747]],[[275115,282677],[4,3611],[-520,96],[-567,2296]],[[247358,285511],[-237,-29],[-3,-1592],[-571,-19]],[[246547,283871],[-8,3240],[-122,-4]],[[269458,290430],[-641,-2764]],[[268817,287666],[-197,886]],[[268620,288552],[-44,1198]],[[269915,290292],[98,-679],[-163,-3128],[52,-2328],[-122,-1899]],[[269780,282258],[-329,-1370]],[[269451,280888],[-242,1119]],[[269209,282007],[-81,3665],[-311,1994]],[[237108,285671],[0,-2571]],[[237108,283100],[-1702,-29]],[[271736,287088],[202,-924]],[[271938,286164],[-630,-2537]],[[271308,283627],[-251,828],[-618,-687],[-182,-1942]],[[270257,281826],[-477,432]],[[252996,285150],[-21,-1156]],[[252975,283994],[-1295,-59]],[[251680,283935],[-1,6711]],[[251680,283935],[-283,11]],[[251397,283946],[-1128,96]],[[250269,284042],[3,3299]],[[250269,284042],[-1132,-33],[-12,-840]],[[249125,283169],[-659,-97]],[[257062,286242],[14,-3976],[-399,14]],[[256677,282280],[-836,-103],[-284,800]],[[255557,282977],[-2,2400]],[[269209,282007],[-689,-991],[-95,755],[-402,-936]],[[268023,280835],[-353,3484]],[[267670,284319],[60,2496]],[[263705,288739],[-84,-3973]],[[263621,284766],[55,-1652]],[[263676,283114],[-539,-692]],[[263137,282422],[-449,518]],[[262688,282940],[-2,5931]],[[262688,282940],[-898,-38]],[[261790,282902],[-135,4424]],[[199314,277967],[-878,-19],[0,-1622],[-852,-5],[-2,-8135],[36,-4019]],[[197618,264167],[-857,-7],[-37,4023],[2,8133],[-306,3],[2,1614],[-576,1],[-5,3232],[-536,6]],[[264398,288833],[-62,-3686]],[[264336,285147],[-715,-381]],[[264973,289086],[-7,-4742],[-221,-294]],[[264745,284050],[2,1070],[-411,27]],[[265601,287767],[265,-1986],[29,-1346]],[[265895,284435],[-506,-1945]],[[265389,282490],[-646,23]],[[264743,282513],[2,1537]],[[267670,284319],[-205,1161],[-587,-1542]],[[266878,283938],[-198,4827]],[[266878,283938],[-137,-519]],[[266741,283419],[-297,-993]],[[266444,282426],[-403,799],[-146,1210]],[[275115,282677],[-128,-2424],[77,-2306]],[[275064,277947],[21,-1799],[-453,1073]],[[274632,277221],[-397,2101],[-304,487]],[[273931,279809],[-206,2389],[-508,3608]],[[273217,285806],[-382,-1361],[-117,-2128],[-399,-1751]],[[272319,280566],[-269,3521],[-24,1416]],[[272026,285503],[-88,661]],[[254737,285440],[-323,-2639],[122,-3923],[141,-1192],[-210,-1223]],[[254467,276463],[-114,140]],[[254353,276603],[-184,1820],[-374,-689],[-62,3380],[-367,2778],[100,1345]],[[261790,282902],[136,-2308]],[[261926,280594],[-1276,-334]],[[260650,280260],[0,7052]],[[260650,280260],[-288,-579],[2,-1890]],[[260364,277791],[-286,-278],[4,-1615],[-248,-23]],[[259834,275875],[-17,4870],[-320,8]],[[259497,280753],[-6,6241]],[[259497,280753],[-1025,-27]],[[258472,280726],[-231,1150],[-165,3824]],[[246547,283871],[-292,-1615],[176,-342],[-73,-2890]],[[246358,279024],[-674,12],[3,3263],[138,3158]],[[235222,283536],[-1204,-38]],[[234018,283498],[0,2067]],[[258472,280726],[-106,-860]],[[258366,279866],[-839,-31],[-2,-819],[-563,45]],[[256962,279061],[-281,-16],[0,1226]],[[256681,280271],[-4,2009]],[[202744,266721],[-672,-16],[-49,-2500],[301,-1531]],[[202324,262674],[-2142,-5]],[[200182,262669],[-8,15301]],[[272319,280566],[44,-2784]],[[272363,277782],[-442,-1977]],[[271921,275805],[-595,2074]],[[271326,277879],[-222,903]],[[271104,278782],[-65,751],[269,4094]],[[273931,279809],[-121,-807]],[[273810,279002],[-90,-725],[-314,2439],[-742,-3661]],[[272664,277055],[-301,727]],[[248466,283072],[-231,-2682],[-557,-1363]],[[247678,279027],[-560,-1640]],[[247118,277387],[-289,-1241]],[[246829,276146],[-463,2072]],[[246366,278218],[-8,806]],[[238701,271113],[-400,6]],[[238301,271119],[-149,1513],[-322,444],[-467,-2738],[-254,8]],[[237109,270346],[-1,3653]],[[237108,273999],[0,5600]],[[237108,279599],[0,3501]],[[237743,285674],[-73,-1364],[157,-1652],[-2,-3964],[475,-5512],[401,-2069]],[[238562,285659],[194,-3036],[29,-8285],[191,-5]],[[238976,274333],[-156,-3244]],[[238820,271089],[-119,24]],[[239516,277585],[89,-2415],[-250,-839],[-379,2]],[[239349,285648],[4,-5606],[141,-1],[22,-2456]],[[240779,280837],[-287,-14],[-146,-3236]],[[240346,277587],[-830,-2]],[[240780,285581],[-1,-4744]],[[242619,280157],[-575,-2639],[-400,30]],[[241644,277548],[0,1623],[-290,937],[-575,729]],[[242608,285466],[11,-5309]],[[234018,283498],[-3,-6187]],[[234015,277311],[-813,788]],[[233202,278099],[-417,1389]],[[232785,279488],[-113,619]],[[232672,280107],[-84,4470]],[[246366,278218],[-28,-989],[-363,176],[-2,-2478],[-251,42],[-36,2444],[-221,12]],[[245465,277425],[-297,1279],[258,1420],[-227,256],[-7,1864],[186,934],[-62,1882],[-224,-1603],[31,1933]],[[268023,280835],[-29,-951]],[[267994,279884],[-750,-2311]],[[267244,277573],[-503,5846]],[[244371,285427],[-163,-2146],[-308,-2022],[-90,-2138]],[[243810,279121],[-368,-2107],[-400,-899]],[[243042,276115],[-26,3010],[-397,1032]],[[255557,282977],[-143,-816],[-4,-3254],[-143,-3],[2,-3233]],[[255269,275671],[-569,-21],[-233,813]],[[244852,285408],[-216,-2699],[-7,-2066],[-283,-3112]],[[244346,277531],[-420,5],[-116,1585]],[[225927,285376],[-30,-8275]],[[225897,277101],[-4,-879]],[[225893,276222],[-1134,26]],[[224759,276248],[-281,39]],[[224478,276287],[2,8177]],[[245465,277425],[-76,-261]],[[245389,277164],[-175,-453],[-903,-2]],[[244311,276709],[35,822]],[[227354,285204],[-18,-8167]],[[227336,277037],[-186,1]],[[227150,277038],[-1253,63]],[[264743,282513],[-219,-2968]],[[264524,279545],[-235,1092]],[[264289,280637],[-264,580],[-349,1897]],[[254353,276603],[-498,-1834],[-40,-1059],[323,-1231]],[[254138,272479],[-1368,-35]],[[252770,272444],[91,5015]],[[252861,277459],[114,6535]],[[228780,285028],[-17,-8118]],[[228763,276910],[-135,16]],[[228628,276926],[-1292,111]],[[230216,284984],[-6,-3141]],[[230210,281843],[-31,-4995]],[[230179,276848],[-1416,62]],[[230827,282367],[0,-513],[-617,-11]],[[232672,280107],[-600,939],[-233,1237]],[[218684,284633],[-13,-8156]],[[218671,276477],[-1432,43]],[[217239,276520],[3,8115]],[[210139,266701],[-717,-2]],[[209422,266699],[-123,-1]],[[209299,266698],[-2294,9]],[[220110,284569],[-7,-8139]],[[220103,276430],[-1432,47]],[[217239,276520],[0,-66]],[[217239,276454],[-1432,21]],[[215807,276475],[-9,8127]],[[215807,276475],[-1432,-37]],[[214375,276438],[-17,8112]],[[214375,276438],[-25,-1]],[[214350,276437],[-2377,-18]],[[221592,284512],[0,-8234]],[[221592,276278],[-49,0]],[[221543,276278],[-1440,152]],[[223030,284513],[0,-8233]],[[223030,276280],[-51,1]],[[222979,276281],[-1387,-3]],[[224478,276287],[-1448,-7]],[[271104,278782],[-447,-786]],[[270657,277996],[-226,1046],[-174,2784]],[[266444,282426],[-237,-2443]],[[266207,279983],[2,-920]],[[266209,279063],[-288,519]],[[265921,279582],[-345,931],[-187,1977]],[[251397,283946],[0,-6508]],[[251397,277438],[-1123,-9]],[[250274,277429],[-5,6613]],[[250274,277429],[-14,-1]],[[250260,277428],[-1136,15],[0,1061]],[[249124,278504],[1,4665]],[[252861,277459],[-1464,-21]],[[235261,283065],[11,-1603]],[[235272,281462],[1,-2618]],[[235273,278844],[-795,-2143]],[[234478,276701],[-463,610]],[[267244,277573],[-756,-2456]],[[266488,275117],[-124,3123],[-155,823]],[[264289,280637],[-142,-524],[-197,-2955],[-99,3]],[[263851,277161],[-538,-506]],[[263313,276655],[-159,-301]],[[263154,276354],[0,1215]],[[263154,277569],[-17,4853]],[[237108,279599],[-281,902],[-86,-872],[-299,1007],[-286,-1037],[-341,13],[-543,1850]],[[249124,278504],[-151,-881]],[[248973,277623],[-205,-34],[-580,-3455]],[[248188,274134],[-494,8],[0,1631],[-576,8],[0,1606]],[[256681,280271],[-69,-2498],[-191,-1960],[-869,-125],[4,-3255],[-143,-9]],[[255413,272424],[-143,-6],[-1,3253]],[[263154,277569],[-1076,448]],[[262078,278017],[-152,2577]],[[265921,279582],[1,-28]],[[265922,279554],[-184,35],[-659,-3027]],[[265079,276562],[-284,2688],[-271,295]],[[231442,282306],[2,-8953]],[[231444,273353],[-1049,21]],[[230395,273374],[-216,3474]],[[270657,277996],[-80,-1269]],[[270577,276727],[-329,-341],[-291,-3111],[55,-643]],[[270012,272632],[0,-5]],[[270012,272627],[-338,-491],[-153,1148]],[[269521,273284],[74,1606],[-301,1073],[-437,275]],[[268857,276238],[507,2500],[87,2150]],[[232785,279488],[1,-3858],[404,-2322]],[[233190,273308],[-1746,45]],[[268857,276238],[-59,1856],[-542,1927],[-262,-137]],[[237108,273999],[-848,-1143],[-402,1183]],[[235858,274039],[-244,1]],[[235614,274040],[-342,532],[1,4272]],[[197618,264167],[24,-1497]],[[197642,262670],[0,-8384],[-2346,-23]],[[195296,254263],[8,20372]],[[259834,275875],[18,-769],[-399,-590]],[[259453,274516],[-479,386],[-118,1013],[-486,-1586]],[[258370,274329],[-4,5537]],[[241644,277548],[-1,-1627]],[[241643,275921],[-577,18],[2,-799],[-433,-2]],[[240635,275138],[-285,12],[-4,2437]],[[273810,279002],[98,-1654]],[[273908,277348],[8,-2098]],[[273916,275250],[-11,-827]],[[273905,274423],[15,-90]],[[273920,274333],[-20,-184]],[[273900,274149],[-60,-392]],[[273840,273757],[-438,-2518],[175,-1903]],[[273577,269336],[17,-224]],[[273594,269112],[-42,-1026],[-431,800]],[[273121,268886],[-76,2024]],[[273045,270910],[44,2085],[-299,3226]],[[272790,276221],[-126,834]],[[265079,276562],[-41,-437]],[[265038,276125],[-259,143],[-399,-2644]],[[264380,273624],[-384,781]],[[263996,274405],[-145,2756]],[[262078,278017],[222,-1817]],[[262300,276200],[-162,-699],[-765,-79],[10,-1076],[-289,-21]],[[261094,274325],[-155,1623],[-575,1843]],[[256962,279061],[29,-2256],[255,-3763]],[[257246,273042],[-260,-2156],[4,-3296]],[[256990,267590],[-755,-8],[-207,1771],[-614,2276]],[[255414,271629],[-1,795]],[[243042,276115],[-252,-2320],[-86,-1940]],[[242704,271855],[-773,7]],[[241931,271862],[-288,2425],[0,1634]],[[268650,272453],[-454,-2106]],[[268196,270347],[-296,-908],[-412,5134]],[[267488,274573],[-244,3000]],[[268857,276238],[-273,-3365],[66,-420]],[[258370,274329],[-238,-1220]],[[258132,273109],[-630,1133],[-256,-1200]],[[274213,271739],[154,-1026],[-395,-1964],[241,2990]],[[273840,273757],[261,-1594],[-185,-2612],[-322,-439]],[[274414,275981],[264,-153],[280,-1524],[-294,-990],[-167,-1798],[-139,1959],[56,2506]],[[274160,276707],[170,-315],[46,-4156],[-277,1435],[-122,1906],[183,1130]],[[274632,277221],[33,-1171],[-536,816],[-157,-984],[-64,1466]],[[265516,275419],[-478,706]],[[265922,279554],[-53,-2957],[-353,-1178]],[[266488,275117],[0,-942]],[[266488,274175],[-328,-2106]],[[266160,272069],[-649,44]],[[265511,272113],[5,3306]],[[234478,276701],[5,-3100]],[[234483,273601],[0,-4335]],[[234483,269266],[-1322,-45]],[[233161,269221],[-81,1800],[110,2287]],[[244311,276709],[-53,-2458]],[[244258,274251],[-441,-8],[-351,-1303],[-29,-1625],[-344,-1798]],[[243093,269517],[-234,272],[-155,2066]],[[235614,274040],[-175,-434],[-956,-5]],[[271921,275805],[37,-1771],[275,-2845]],[[272233,271189],[-961,-1642]],[[271272,269547],[-98,1564],[-427,591]],[[270747,271702],[140,2717],[-310,2308]],[[250260,277428],[-1,-6571]],[[250259,270857],[-1135,-31]],[[249124,270826],[0,2438],[-151,4359]],[[246829,276146],[-140,-527],[-67,-2600],[-183,267],[-97,-2398]],[[246342,270888],[-114,-1301],[-411,-1386],[-315,624]],[[245502,268825],[-3,115]],[[245499,268940],[-61,70]],[[245438,269010],[-315,191],[118,1426]],[[245241,270627],[337,223],[252,2167],[-256,411],[68,1606],[-306,122],[53,2008]],[[263154,276354],[-211,-1787],[-562,-838]],[[262381,273729],[-81,2471]],[[200182,262669],[-2540,1]],[[273045,270910],[-142,209],[-547,-2637]],[[272356,268482],[-123,2707]],[[261094,274325],[1,-3262]],[[261095,271063],[-1173,-46],[-180,788]],[[259742,271805],[-224,1640]],[[259518,273445],[-65,1071]],[[249124,270826],[0,-3253]],[[249124,267573],[-1393,50]],[[247731,267623],[-42,2293],[499,4218]],[[240635,275138],[6,-4081],[-110,-1625]],[[240531,269432],[-347,19]],[[240184,269451],[-691,9]],[[239493,269460],[-75,1632],[-598,-3]],[[267488,274573],[-96,548],[-482,-3351]],[[266910,271770],[-422,2405]],[[252770,272444],[-27,-1509]],[[252743,270935],[-1345,-64]],[[251398,270871],[-1,6567]],[[251398,270871],[-1139,-14]],[[247731,267623],[-1360,-26]],[[246371,267597],[-29,3291]],[[245241,270627],[-1027,-144]],[[244214,270483],[-103,1786],[147,1982]],[[263996,274405],[-106,-4613]],[[263890,269792],[-3,-599]],[[263887,269193],[-267,9],[-340,1832]],[[263280,271034],[-27,-2]],[[263253,271032],[60,5623]],[[270747,271702],[-157,187]],[[270590,271889],[-578,743]],[[227150,277038],[6,-4410]],[[227156,272628],[-469,-47],[-452,-1537]],[[226235,271044],[-342,5178]],[[228628,276926],[1,-5287]],[[228629,271639],[-1086,-1713]],[[227543,269926],[-107,-742],[-280,1303]],[[227156,270487],[0,2141]],[[230395,273374],[194,-555]],[[230589,272819],[-1430,-4745]],[[229159,268074],[-124,-408],[-406,3973]],[[255414,271629],[-142,-188],[4,-2273],[-284,-8],[4,-2361],[-126,-263]],[[254870,266536],[-1130,-23]],[[253740,266513],[-126,1159],[208,569],[68,3761],[248,477]],[[263253,271032],[-736,-38]],[[262517,270994],[98,589],[-330,1226],[96,920]],[[217239,276454],[-26,-8133]],[[217213,268321],[-225,-2]],[[216988,268319],[-1199,8]],[[215789,268327],[18,8148]],[[218671,276477],[-13,-8190]],[[218658,268287],[-436,22]],[[218222,268309],[-1009,12]],[[220103,276430],[-15,-8195]],[[220088,268235],[-232,-5]],[[219856,268230],[-1198,57]],[[215789,268327],[-226,-12]],[[215563,268315],[-1213,-2]],[[214350,268313],[0,8124]],[[214350,268313],[-210,4]],[[214140,268317],[-1427,-23]],[[212713,268294],[-739,24]],[[265511,272113],[-316,-757],[-183,-1474]],[[265012,269882],[-430,1091]],[[264582,270973],[-206,1238],[4,1413]],[[221543,276278],[-5,-8068]],[[221538,268210],[-231,14]],[[221307,268224],[-1219,11]],[[224759,276248],[2,-3983],[-213,-701]],[[224548,271564],[-1040,-3414]],[[223508,268150],[-541,29]],[[222967,268179],[12,8102]],[[226235,271044],[225,-2721]],[[226460,268323],[-392,-1293]],[[226068,267030],[-565,-1869]],[[225503,265161],[-119,1166],[-213,-724],[-623,5961]],[[222967,268179],[-215,-7]],[[222752,268172],[-1214,38]],[[191393,274653],[-1,-12960]],[[191392,261693],[-1985,-97],[1,-3801],[-565,-10],[0,-1773]],[[188843,256012],[-5480,11408]],[[269521,273284],[-686,-1046]],[[268835,272238],[-185,215]],[[262517,270994],[-386,-1847],[16,-1276]],[[262147,267871],[-360,-24],[-203,1604],[-425,-24]],[[261159,269427],[-64,1636]],[[259742,271805],[-223,-445],[6,-3713]],[[259525,267647],[5,-1554],[-546,-20]],[[258984,266073],[-309,-26],[-4,1611],[-286,-16]],[[258385,267642],[-7,3607],[-246,1860]],[[241931,271862],[-1,-2445]],[[241930,269417],[-1399,15]],[[268196,270347],[-120,-1132]],[[268076,269215],[-774,-4371]],[[267302,264844],[-222,1408],[-144,2418]],[[266936,268670],[128,1356],[-154,1744]],[[264582,270973],[-5,-1325],[-687,144]],[[195296,254263],[-3927,9]],[[191369,254272],[23,7421]],[[258385,267642],[-117,-1603]],[[258268,266039],[-1141,-46]],[[257127,265993],[-137,1597]],[[235858,274039],[-247,-3595],[-56,-4246],[248,15]],[[235803,266213],[165,-2415]],[[235968,263798],[-1351,24]],[[234617,263822],[-133,12],[-1,5432]],[[244214,270483],[8,-2105],[-240,-3867]],[[243982,264511],[-60,1623],[-510,-1824],[-304,1856]],[[243108,266166],[-15,3351]],[[266936,268670],[-756,231]],[[266180,268901],[-20,3168]],[[237109,270346],[74,-4024]],[[237183,266322],[-1380,-109]],[[233161,269221],[87,-951]],[[233248,268270],[-1739,-1463]],[[231509,266807],[-6,123]],[[231503,266930],[-162,2701],[-752,3188]],[[269315,266119],[-168,-187]],[[269147,265932],[-152,1040],[-160,5266]],[[269521,273284],[-206,-7165]],[[270012,272627],[143,-2843],[-121,-4705]],[[270034,265079],[-575,985]],[[269459,266064],[-144,55]],[[238301,271119],[215,-818],[-12,-1664],[522,-3202]],[[239026,265435],[-240,-345],[-1,-1274]],[[238785,263816],[-1220,-19]],[[237565,263797],[-382,2525]],[[231503,266930],[-1231,-4027]],[[230272,262903],[-620,348]],[[229652,263251],[-493,4823]],[[227156,270487],[-696,-2164]],[[270590,271889],[127,-3676],[608,-623]],[[271325,267590],[-175,-617]],[[271150,266973],[-403,-4199]],[[270747,262774],[-221,704]],[[270526,263478],[-177,1370],[-315,231]],[[253740,266513],[-294,-3347],[251,-2068]],[[253697,261098],[-1046,-26]],[[252651,261072],[-26,3649]],[[252625,264721],[118,6214]],[[269147,265932],[-285,-745]],[[268862,265187],[-233,1642],[-442,1367],[-111,1019]],[[261159,269427],[-50,-2453],[-440,-327],[-199,-2179]],[[260470,264468],[-372,2],[4,1617],[-263,0],[-26,1492],[-288,68]],[[266180,268901],[-4,-1686]],[[266176,267215],[-979,52]],[[265197,267267],[-144,1878]],[[265053,269145],[-41,737]],[[271272,269547],[173,-1188]],[[271445,268359],[-120,-769]],[[243108,266166],[-323,-822]],[[242785,265344],[-856,1]],[[241929,265345],[1,4072]],[[257127,265993],[-143,-9],[6,-2440]],[[256990,263544],[-1656,-27]],[[255334,263517],[-331,-38],[-133,3057]],[[229652,263251],[-593,-1974]],[[229059,261277],[-293,2871],[-669,-2188]],[[228097,261960],[2,1607],[-453,1892],[173,815],[-272,611],[-4,3041]],[[225503,265161],[144,-1412],[-855,-2935]],[[224792,260814],[-82,738],[-489,-431]],[[224221,261121],[-713,7029]],[[245438,269010],[61,-70]],[[245502,268825],[-127,-1815],[-313,-1032],[-168,-1704]],[[244894,264274],[-270,-484],[77,-1752]],[[244701,262038],[-172,-287]],[[244529,261751],[-462,332]],[[244067,262083],[-85,2428]],[[272356,268482],[444,-3810]],[[272800,264672],[248,-708],[-50,-2336],[-442,1524]],[[272556,263152],[-244,2510],[-518,506],[-349,2191]],[[239493,269460],[179,-3272],[-322,2],[-3,-1288],[-321,533]],[[273103,263918],[241,-620],[-261,-1764],[-124,1738],[144,646]],[[273429,267956],[229,-1123],[-211,-968],[-18,2091]],[[273121,268886],[209,-711],[80,-2196],[219,-966],[-158,-953],[-438,1415],[-233,-803]],[[263887,269193],[-34,-3123]],[[263853,266070],[-27,-877],[-408,18]],[[263418,265211],[-156,2]],[[263262,265213],[18,5821]],[[263262,265213],[-700,78]],[[262562,265291],[-449,1252]],[[262113,266543],[34,1328]],[[265197,267267],[107,-2252]],[[265304,265015],[-1157,121],[0,-794]],[[264147,264342],[-294,1728]],[[252625,264721],[-414,-683],[-803,-568]],[[251408,263470],[-10,7401]],[[246371,267597],[-50,-4882]],[[246321,262715],[-773,1410],[-654,149]],[[251408,263470],[-93,-39]],[[251315,263431],[-1039,-418]],[[250276,263013],[-17,7844]],[[250276,263013],[-235,-98]],[[250041,262915],[-702,-302]],[[249339,262613],[-25,4964],[-190,-4]],[[228097,261960],[-913,-2938]],[[227184,259022],[-236,2295],[-214,-718]],[[226734,260599],[-666,6431]],[[268862,265187],[-531,-2011]],[[268331,263176],[-444,-556]],[[267887,262620],[-507,1245]],[[267380,263865],[-78,979]],[[241929,265345],[-140,-2434]],[[241789,262911],[-714,10],[-2,-1631],[-985,-12]],[[240088,261278],[64,2739],[215,1718],[-183,3716]],[[240088,261278],[187,-1588],[292,-495],[230,-1479]],[[240797,257716],[-541,-2780],[-190,-403]],[[240066,254533],[-710,332]],[[239356,254865],[-1,3236],[-281,-4],[-5,3280],[-287,5],[3,2434]],[[262113,266543],[-202,-2490],[-1,-1443]],[[261910,262610],[38,-331]],[[261948,262279],[-247,-1122],[-557,78],[-1,-1623]],[[261143,259612],[-925,-26]],[[260218,259586],[89,792]],[[260307,260378],[163,4090]],[[234617,263822],[-104,-1184],[69,-2704],[234,-2044]],[[234816,257890],[-383,-1877]],[[234433,256013],[-270,786],[-111,1767],[-372,551]],[[233680,259117],[-7,1203],[-351,1944],[-118,1559],[44,4447]],[[267380,263865],[-842,-11]],[[266538,263854],[-369,126]],[[266169,263980],[7,3235]],[[273082,261033],[-133,-2581],[-38,2028],[171,553]],[[272467,260258],[-390,845]],[[272077,261103],[-418,1230],[-343,2022],[41,1842],[-207,776]],[[272556,263152],[364,-1898],[-453,-996]],[[218222,268309],[-10,-7269]],[[218212,261040],[-112,-2492],[-1121,-109]],[[216979,258439],[2,1757]],[[216981,260196],[7,8123]],[[216981,260196],[-1417,10]],[[215564,260206],[-1,8109]],[[215564,260206],[-1425,-1]],[[214139,260205],[1,8112]],[[214139,260205],[-87,1]],[[214052,260206],[-1250,7]],[[212802,260213],[-89,1]],[[212713,260214],[0,8080]],[[212713,260214],[-1472,-6]],[[211241,260208],[2,6496]],[[219856,268230],[-1,-7250]],[[219855,260980],[-1643,60]],[[233680,259117],[-1054,-950],[-246,-706]],[[232380,257461],[15,2779],[-147,-648]],[[232248,259592],[-249,2566],[-298,601],[38,1653],[-230,2395]],[[222752,268172],[-19,-11396]],[[222733,256776],[-311,-1069],[-354,1218],[-198,-944],[-249,1262]],[[221621,257243],[-334,1575]],[[221287,258818],[20,9406]],[[221287,258818],[-1085,65]],[[220202,258883],[-345,20],[-2,2077]],[[224221,261121],[-256,-235],[-55,-1438],[-590,-2354]],[[223320,257094],[-275,-434]],[[223045,256660],[-312,116]],[[260218,259586],[-114,-1]],[[260104,259585],[-994,-4]],[[259110,259581],[-7,3224],[-142,-9],[23,3277]],[[259110,259581],[-135,-3310]],[[258975,256271],[-230,291],[-9,1358],[-330,-1425],[-5,1399],[-275,-34]],[[258126,257860],[-1,2419],[142,6],[1,5754]],[[247731,267623],[274,-3564],[25,-1966]],[[248030,262093],[-341,-656]],[[247689,261437],[-106,-329],[-1263,-24]],[[246320,261084],[1,1631]],[[249339,262613],[-284,-111]],[[249055,262502],[-612,-243]],[[248443,262259],[-413,-166]],[[266169,263980],[-1,-929],[-528,-12]],[[265640,263039],[-382,824]],[[265258,263863],[46,1152]],[[225328,255832],[-536,4982]],[[226734,260599],[-1152,-3887]],[[225582,256712],[-254,-880]],[[272077,261103],[-207,-2290],[-271,-705]],[[271599,258108],[-852,4666]],[[232248,259592],[-1251,-3816]],[[230997,255776],[-725,7127]],[[209299,266698],[-218,-16661]],[[209081,250037],[-2269,-8219]],[[206812,241818],[27,3208],[-31,21680]],[[206812,241818],[-175,-639]],[[206637,241179],[-655,3287],[-500,980],[-452,2433],[-137,1784],[-467,1522],[-266,2270],[-357,1834]],[[203803,255289],[-2,11451]],[[203803,255289],[-618,1714],[-454,4718],[-407,953]],[[211241,260208],[-789,7]],[[210452,260215],[-226,1786],[-294,419],[-120,2210],[-128,-359],[-262,2428]],[[210452,260215],[261,-433],[176,-3774],[534,31],[187,-1030],[512,-17]],[[212122,254992],[-1599,-11259]],[[210523,243733],[-1442,6304]],[[262562,265291],[-9,-2748],[-135,18]],[[262418,262561],[-508,49]],[[255334,263517],[-41,-2445],[-142,-14],[4,-2674],[-156,-742],[132,-1478],[-365,-604],[-167,-1944]],[[254599,253616],[-506,-1944]],[[254093,251672],[-63,1221],[229,2446],[-147,-275],[95,2173],[-484,2051],[-26,1810]],[[237565,263797],[234,-2648],[-111,-2155]],[[237688,258994],[-417,-314]],[[237271,258680],[-297,954],[-857,614]],[[236117,260248],[-149,3550]],[[244067,262083],[-416,-314],[-36,-1776],[-276,-171],[-2,-3574],[-156,-1569],[81,-1641]],[[243262,253038],[-258,531],[-178,-1296],[-48,1873]],[[242778,254146],[7,11198]],[[269459,266064],[0,-2383],[-247,7],[-4,-2375]],[[269208,261313],[-295,-711]],[[268913,260602],[-583,-22],[1,2596]],[[264147,264342],[212,-842],[-100,-3841]],[[264259,259659],[-425,-12]],[[263834,259647],[-269,0]],[[263565,259647],[-156,2805],[9,2759]],[[270526,263478],[-236,-1000],[1,-5622]],[[270291,256856],[-262,1105]],[[270029,257961],[-821,3352]],[[258126,257860],[-564,-27]],[[257562,257833],[-384,26],[-188,2000],[3,2240]],[[256993,262099],[-3,1445]],[[263565,259647],[-754,-30]],[[262811,259617],[-348,-20],[-45,2964]],[[242778,254146],[-219,178]],[[242559,254324],[-305,2653]],[[242254,256977],[-195,277],[-241,2436],[-29,3221]],[[265258,263863],[-181,-811],[-39,-2867]],[[265038,260185],[-69,-496],[-710,-30]],[[252692,256194],[-1093,-41]],[[251599,256153],[-284,-4]],[[251315,256149],[0,7282]],[[252651,261072],[41,-4878]],[[246320,261084],[-2,-1627]],[[246318,259457],[-1160,-19]],[[245158,259438],[-408,1159],[-49,1441]],[[227703,254041],[-519,4981]],[[229059,261277],[364,-3474]],[[229423,257803],[-1328,-4514]],[[228095,253289],[-182,-662],[-210,1414]],[[266538,263854],[73,-1664]],[[266611,262190],[-131,-3053]],[[266480,259137],[-414,-482]],[[266066,258655],[-411,1022],[-15,3362]],[[267887,262620],[-7,-2008]],[[267880,260612],[-912,138],[0,1415],[-357,25]],[[266066,258655],[-13,-4419]],[[266053,254236],[-962,79]],[[265091,254315],[4,2025]],[[265095,256340],[-57,3845]],[[236117,260248],[245,-1198],[-44,-6786]],[[236318,252264],[-314,1644],[-175,1815],[-632,880],[-381,1287]],[[239356,254865],[-430,-6],[-146,-1627],[-240,7],[-65,-1705]],[[238475,251534],[-133,-174]],[[238342,251360],[-234,2339],[-88,3954],[-332,1341]],[[271599,258108],[109,-1595]],[[271708,256513],[-299,-2289]],[[271409,254224],[-861,806]],[[270548,255030],[-29,1447],[-228,379]],[[256993,262099],[-405,-645],[-234,-1413],[-90,-2314],[-724,-4800]],[[255540,252927],[-525,-296]],[[255015,252631],[-416,985]],[[251315,256149],[-565,11]],[[250750,256160],[-705,0]],[[250045,256160],[-4,6755]],[[229993,252193],[-570,5610]],[[230997,255776],[-230,-1047]],[[230767,254729],[-774,-2536]],[[268913,260602],[84,-3783]],[[268997,256819],[-88,-1964]],[[268909,254855],[-525,10],[-61,691],[-839,350]],[[267484,255906],[-15,966]],[[267469,256872],[411,3740]],[[242254,256977],[-1212,-1625],[-245,2364]],[[250045,256160],[-145,0]],[[249900,256160],[-376,-7]],[[249524,256153],[-46,1959],[-425,1320],[2,3070]],[[262811,259617],[-6,-2207]],[[262805,257410],[-584,-281],[-45,579]],[[262176,257708],[-228,4571]],[[262176,257708],[-117,-3882]],[[262059,253826],[-920,118]],[[261139,253944],[4,5668]],[[249524,256153],[-188,2]],[[249336,256155],[-474,-1],[2,-814],[-378,9]],[[248486,255349],[-43,6910]],[[267469,256872],[-538,69]],[[266931,256941],[-451,2196]],[[244529,261751],[-62,-2123],[-258,460],[229,-1495],[-276,-599],[18,-3120],[-205,750],[174,-2365],[-387,-521],[182,-1100]],[[243944,251638],[-102,-1383],[173,-931],[-202,-1256]],[[243813,248068],[-73,-540]],[[243740,247528],[12,447]],[[243752,247975],[-182,929]],[[243570,248904],[129,2677],[-437,1457]],[[248486,255349],[-225,-1013]],[[248261,254336],[-569,265]],[[247692,254601],[-3,6836]],[[257562,257833],[96,-2876],[-100,-437],[8,-2858]],[[257566,251662],[-179,1283],[-1847,-18]],[[245158,259438],[-12,-4904]],[[245146,254534],[-217,450],[-649,-954],[-49,-1688],[-287,-704]],[[191369,254272],[-1713,-9],[-813,1749]],[[225328,255832],[-812,-3459]],[[224516,252373],[-177,743],[-194,2530],[-443,141],[-382,1307]],[[247692,254601],[-45,0]],[[247647,254601],[-802,-13]],[[246845,254588],[-237,-7]],[[246608,254581],[0,4882],[-290,-6]],[[270029,257961],[-328,-1873],[-203,-243]],[[269498,255845],[-501,974]],[[226342,249372],[-760,7340]],[[227703,254041],[-1361,-4669]],[[220202,258883],[-12,-9165]],[[220190,249718],[-1597,-27]],[[218593,249691],[-12,8144],[-1602,88]],[[216979,257923],[0,516]],[[254093,251672],[-73,-563]],[[254020,251109],[-140,-343],[-854,-8],[-285,-550]],[[252741,250208],[-49,5986]],[[272895,258076],[-221,-2947],[-140,1836],[361,1111]],[[272467,260258],[359,-497],[69,-955],[-372,-536],[-14,-3438],[142,-738],[-530,300]],[[272121,254394],[-413,2119]],[[232380,257461],[233,-3410],[-192,-919],[-109,-3298]],[[232312,249834],[-587,-40],[-741,-2203]],[[230984,247591],[-246,5282],[29,1856]],[[215564,260206],[-1,-10641]],[[215563,249565],[-1463,119]],[[214100,249684],[-48,10522]],[[214100,249684],[-246,18]],[[213854,249702],[-112,1974],[-687,2489],[-255,-616]],[[212800,253549],[2,6664]],[[237271,258680],[3,-1922],[-169,-1045],[14,-5133]],[[237119,250580],[-252,-652]],[[236867,249928],[-549,2336]],[[216979,257923],[-20,-8366]],[[216959,249557],[-1396,8]],[[212800,253549],[-158,-489],[-520,1932]],[[265095,256340],[-399,-67]],[[264696,256273],[-805,-61]],[[263891,256212],[-57,3435]],[[263891,256212],[-578,-54]],[[263313,256158],[-423,46],[-85,1206]],[[261139,253944],[-190,-1282],[-485,462],[-142,-1410]],[[260322,251714],[-224,22]],[[260098,251736],[6,7849]],[[260098,251736],[-1121,-78]],[[258977,251658],[-2,4613]],[[246608,254581],[-1058,-7],[-230,-519]],[[245320,254055],[-174,479]],[[238342,251360],[-866,-337]],[[237476,251023],[-357,-443]],[[266931,256941],[-267,-2338]],[[266664,254603],[-217,-428]],[[266447,254175],[-394,61]],[[234433,256013],[126,-728]],[[234559,255285],[-1328,-6123]],[[233231,249162],[-512,-2377]],[[232719,246785],[-160,1025],[33,1830],[-280,194]],[[221621,257243],[-4,-7538]],[[221617,249705],[-1427,13]],[[270548,255030],[135,-1217],[-559,-1966],[-260,400]],[[269864,252247],[-282,1360],[-84,2238]],[[258977,251658],[18,-3690]],[[258995,247968],[-561,3]],[[258434,247971],[-835,7]],[[257599,247978],[-33,3684]],[[218593,249691],[-762,-75]],[[217831,249616],[-872,-59]],[[236867,249928],[-914,-1225]],[[235953,248703],[-290,477]],[[235663,249180],[-783,1632]],[[234880,250812],[-186,3541],[-135,932]],[[263313,256158],[-12,-3257]],[[263301,252901],[-768,-60],[-14,-3409]],[[262519,249432],[-296,57]],[[262223,249489],[-201,1664],[37,2673]],[[229345,250051],[-671,-2227]],[[228674,247824],[-579,5465]],[[229993,252193],[-648,-2142]],[[242559,254324],[-409,-313],[69,-6634],[-201,53]],[[242018,247430],[-298,679],[-278,-1715],[-307,-248]],[[241135,246146],[-630,-114]],[[240505,246032],[-17,6745],[-422,1756]],[[223045,256660],[-5,-9678]],[[223040,246982],[-1093,-7]],[[221947,246975],[-331,2],[1,2728]],[[224516,252373],[110,-2638],[233,-1105]],[[224859,248630],[-17,-2012]],[[224842,246618],[-1446,-2]],[[223396,246616],[-356,366]],[[267484,255906],[289,-2603],[-29,-1804]],[[267744,251499],[-329,-678],[-91,-2266]],[[267324,248555],[-270,35]],[[267054,248590],[-114,4038],[-276,1975]],[[269864,252247],[216,-986],[1,-1604],[213,-1377]],[[270294,248280],[-791,53],[-15,-4066],[756,-202],[-181,-4018]],[[270063,240047],[-569,247]],[[269494,240294],[-47,4435],[-166,-9],[13,2675],[-283,1029],[-221,3072]],[[268790,251496],[-78,1758],[187,-78]],[[268899,253176],[10,1679]],[[226342,249372],[-12,-642]],[[226330,248730],[-1471,-100]],[[272518,253791],[20,18]],[[272538,253809],[99,-1699],[-281,-1544],[-109,1279],[124,2060],[147,-114]],[[272121,254394],[4,-51]],[[272125,254343],[81,-132]],[[272206,254211],[155,-845],[-204,-1996],[71,-2600],[-325,802]],[[271903,249572],[-591,1666]],[[271312,251238],[97,2986]],[[264696,256273],[-167,-1561],[-391,-949],[-69,-1201],[-328,-1573],[-68,-1447]],[[263673,249542],[-96,10]],[[263577,249552],[15,3293],[-291,56]],[[265091,254315],[-12,-4796]],[[265079,249519],[-315,12]],[[264764,249531],[-724,18]],[[264040,249549],[-367,-7]],[[252741,250208],[18,-2159]],[[252759,248049],[-1139,-6]],[[251620,248043],[-21,8110]],[[250750,256160],[24,-9758]],[[250774,246402],[-565,1]],[[250209,246403],[-23,1870]],[[250186,248273],[3,6261],[-287,-6],[-2,1632]],[[250186,248273],[-850,-146]],[[249336,248127],[0,8028]],[[251620,248043],[-141,-1624]],[[251479,246419],[-705,-17]],[[249336,248127],[-206,-4]],[[249130,248123],[-300,-5]],[[248830,248118],[0,1358],[-237,-6],[-309,1882],[-23,2984]],[[268790,251496],[-833,9]],[[267957,251505],[-213,-6]],[[234880,250812],[-269,-1952],[-727,-4046]],[[233884,244814],[-145,1529],[-209,-878]],[[233530,245465],[-193,-35],[-106,3732]],[[213854,249702],[556,-1560],[549,-266],[329,-1468],[180,-3869],[116,-913]],[[215584,241626],[-1029,50],[-1,-1090],[-571,24],[0,-5857],[-623,-16],[0,-4293]],[[213360,230444],[-2433,11417]],[[210927,241861],[-404,1872]],[[271312,251238],[-472,-2258]],[[270840,248980],[-349,503],[-197,-1203]],[[245320,254055],[101,-733],[-2,-5263]],[[245419,248059],[-325,3]],[[245094,248062],[-1281,6]],[[240505,246032],[-431,-220]],[[240074,245812],[-1234,93],[-382,-268]],[[238458,245637],[138,2982],[-121,2915]],[[230984,247591],[-297,-1133],[-306,-3132],[-307,-919]],[[230074,242407],[-150,660]],[[229924,243067],[-83,1790],[-230,1424],[-92,2592],[-174,1178]],[[267054,248590],[-504,85]],[[266550,248675],[-89,305]],[[266461,248980],[-188,553]],[[266273,249533],[181,2384],[-7,2258]],[[246845,254588],[1,-6514]],[[246846,248074],[-55,0]],[[246791,248074],[-720,-7]],[[246071,248067],[-652,-8]],[[247647,254601],[2,-6508]],[[247649,248093],[-244,-6]],[[247405,248087],[-559,-13]],[[248830,248118],[-1181,-25]],[[243570,248904],[-75,-474]],[[243495,248430],[-154,-909],[-26,-2268]],[[243315,245253],[-1107,8]],[[242208,245261],[-190,2169]],[[266273,249533],[3,-822],[-452,71]],[[265824,248782],[-746,72],[1,665]],[[228674,247824],[-526,-1799],[-157,-2556]],[[227991,243469],[-863,2199],[-567,665]],[[226561,246333],[-231,2397]],[[255015,252631],[47,-4598]],[[255062,248033],[-100,-2449],[292,-2293],[343,-1258],[-72,-3553]],[[255525,238480],[118,-709],[-472,-3244],[-776,-834],[-363,138],[617,1003],[-445,2269],[13,2457],[-99,3216],[-227,556]],[[253891,243332],[-3,424]],[[253888,243756],[51,358]],[[253939,244114],[171,4892],[-90,2103]],[[262223,249489],[73,-1396]],[[262296,248093],[-1355,-67]],[[260941,248026],[8,3775],[-627,-87]],[[257599,247978],[-271,46]],[[257328,248024],[-1052,37]],[[256276,248061],[-1214,-28]],[[263577,249552],[-524,-184]],[[263053,249368],[-534,64]],[[260941,248026],[-26,-3]],[[260915,248023],[-1496,-68]],[[259419,247955],[-424,13]],[[238458,245637],[-203,-3553],[-301,-2557],[116,-1801],[-122,-774]],[[237948,236952],[-67,-1097],[156,-1846]],[[238037,234009],[-534,-28]],[[237503,233981],[98,13117],[-125,3925]],[[269494,240294],[-114,45]],[[269380,240339],[-346,137]],[[269034,240476],[-18,2136],[-493,492],[-222,1908],[-346,636]],[[267955,245648],[2,5857]],[[267955,245648],[-134,-370]],[[267821,245278],[-66,1821],[-380,52],[-51,1404]],[[253939,244114],[-283,-5327],[-10,-2293],[-805,174]],[[252841,236668],[-47,6490]],[[252794,243158],[-35,4891]],[[272307,246842],[-203,-3711],[-81,2742],[284,969]],[[271903,249572],[306,-2478],[-160,-4072],[-292,-203]],[[271757,242819],[-831,2065]],[[270926,244884],[0,3895],[-86,201]],[[237503,233981],[-603,-19]],[[236900,233962],[96,1937],[-93,1644],[125,1714]],[[237028,239257],[57,2122],[-200,796],[-362,6258],[-570,270]],[[235663,249180],[-268,-877],[313,-9029]],[[235708,239274],[21,-670],[-542,-17]],[[235187,238587],[-329,77]],[[234858,238664],[56,882],[-384,658],[-240,1922],[-168,-357],[-46,2247],[-192,798]],[[229924,243067],[-953,-3232]],[[228971,239835],[-534,-1857]],[[228437,237978],[-325,5186],[-121,305]],[[209922,237143],[-279,-6],[-3006,4042]],[[210927,241861],[-1005,-4718]],[[232719,246785],[-682,-1234]],[[232037,245551],[-850,-766]],[[231187,244785],[-203,2806]],[[221947,246975],[2,-4279]],[[221949,242696],[-1761,-8]],[[220188,242688],[2,7030]],[[220188,242688],[-2353,-81]],[[217835,242607],[-4,7009]],[[217835,242607],[0,-7787]],[[217835,234820],[-2223,6]],[[215612,234826],[279,1284],[-229,1216],[263,2565],[-18,1122],[-323,613]],[[264040,249549],[-12,-7241]],[[264028,242308],[-1345,403]],[[262683,242711],[300,3247],[70,3410]],[[264764,249531],[114,-3092],[-22,-4394]],[[264856,242045],[-554,176]],[[264302,242221],[-274,87]],[[266550,248675],[98,-2368],[249,-1172],[-274,-444],[-99,-1222],[356,-2141]],[[266880,241328],[-709,260]],[[266171,241588],[-368,134]],[[265803,241722],[21,7060]],[[265803,241722],[-735,254]],[[265068,241976],[-212,69]],[[262683,242711],[-3,0]],[[262680,242711],[-384,5382]],[[270926,244884],[-366,-1369],[-37,-1852],[123,-1709],[-124,-3745]],[[270522,236209],[-335,-64],[-107,1022],[-17,2880]],[[237028,239257],[-1320,17]],[[233530,245465],[-89,-6610]],[[233441,238855],[-666,84],[-646,2258]],[[232129,241197],[-92,4354]],[[244740,241601],[-76,124]],[[244664,241725],[-138,1864],[-596,-160],[213,1883],[-298,-206],[-105,2422]],[[245094,248062],[-354,-6461]],[[226561,246333],[-375,-2252],[-241,-2998]],[[225945,241083],[-212,-3685]],[[225733,237398],[-624,1108]],[[225109,238506],[-245,3503],[173,1353],[-5,1659],[-190,1597]],[[267821,245278],[-326,-1352],[-1,-2846]],[[267494,241080],[-481,193]],[[267013,241273],[-88,37]],[[266925,241310],[-45,18]],[[244664,241725],[-233,-2739],[-196,-268]],[[244235,238718],[-602,5]],[[243633,238723],[-154,6]],[[243479,238729],[63,3797],[-227,2727]],[[243752,247975],[-257,455]],[[250209,246403],[-2,-4881]],[[250207,241522],[-565,12],[0,-2449],[-406,-1071]],[[249236,238014],[-349,2359],[-75,1498]],[[248812,241871],[318,6252]],[[248812,241871],[-426,-22],[-726,870]],[[247660,242719],[-255,5368]],[[242208,245261],[112,-1501],[-109,-3720],[-662,-628],[-123,-1003]],[[241426,238409],[-387,12]],[[241039,238421],[5,125]],[[241044,238546],[92,1719],[-1,5881]],[[262680,242711],[-189,-1959]],[[262491,240752],[-656,31],[-11,-813],[-591,47]],[[261233,240017],[-143,13]],[[261090,240030],[8,4056],[-466,837]],[[260632,244923],[283,3100]],[[247660,242719],[34,-9078]],[[247694,233641],[-96,120]],[[247598,233761],[-55,1170],[-290,-153]],[[247253,234778],[-284,1435],[-176,2313],[-2,3039]],[[246791,241565],[0,6509]],[[256232,239600],[16,-2077],[-262,-1642],[-543,-650],[107,1725],[233,527],[-258,997]],[[256276,248061],[-334,-1385],[-81,-3536],[371,-3540]],[[257328,248024],[-39,-10998]],[[257289,237026],[-1052,-1037],[665,1910],[-225,961],[-136,-1053],[-250,2451],[-59,-658]],[[252794,243158],[-1314,0]],[[251480,243158],[-1,3261]],[[246791,241565],[-956,-12]],[[245835,241553],[167,1301]],[[246002,242854],[-21,4096],[90,1117]],[[258434,247971],[-17,-10056]],[[258417,237915],[-166,1067],[-410,-2043],[-552,87]],[[246002,242854],[-1125,-260],[-121,-1038]],[[244756,241556],[-16,45]],[[260632,244923],[-55,-1607],[-562,869],[-66,-1633]],[[259949,242552],[-537,37],[7,5366]],[[259949,242552],[-196,-1239],[99,-2459],[-315,-2140]],[[259537,236714],[-9,-2240]],[[259528,234474],[-1118,2046]],[[258410,236875],[0,-355]],[[258410,236875],[816,-133],[-426,1780],[-383,-607]],[[231187,244785],[-45,-4378],[221,-3089],[-139,-1697]],[[231224,235621],[12,737],[-414,180]],[[230822,236538],[-165,3013],[-358,1438],[-320,391],[95,1027]],[[223396,246616],[1,-7873]],[[223397,238743],[-946,26]],[[222451,238769],[-503,-4],[1,3931]],[[225109,238506],[-674,264]],[[224435,238770],[-1038,-27]],[[251480,243158],[0,-1087]],[[251480,242071],[-990,-2],[-283,-547]],[[228437,237978],[-499,-1008]],[[227938,236970],[-97,304]],[[227841,237274],[-634,1522],[-437,-1264],[-263,726],[-303,2900],[-259,-75]],[[234858,238664],[-878,-2778]],[[233980,235886],[-396,1124],[-143,1845]],[[241044,238546],[-396,8],[-9,-943],[-990,-262]],[[239649,237349],[2,3245],[421,9],[2,5209]],[[239649,237349],[0,-382]],[[239649,236967],[-709,-8],[2,1629],[-283,7],[1,-1639],[-712,-4]],[[269034,240476],[-293,113]],[[268741,240589],[-1247,491]],[[232129,241197],[72,-7162]],[[232201,234035],[-806,-384]],[[231395,233651],[-171,1970]],[[243479,238729],[216,-1917],[-535,411],[-328,-897]],[[242832,236326],[-172,207],[-257,-1508]],[[242403,235025],[-94,2569],[-194,809],[-689,6]],[[261090,240030],[-142,0],[-5,-2437],[-1018,73],[-388,-952]],[[271757,242819],[498,-308],[-34,-3432],[-155,926],[-295,-107]],[[271771,239898],[-322,203],[-925,-5548]],[[270524,234553],[-2,1656]],[[252841,236668],[-233,-1277],[-178,1270],[-575,-702],[-371,1453]],[[251484,237412],[-4,4659]],[[230822,236538],[-952,-1549]],[[229870,234989],[-278,409],[-621,4437]],[[245835,241553],[-210,-1460],[-15,-2062],[278,-2140]],[[245888,235891],[-360,-439]],[[245528,235452],[-338,30]],[[245190,235482],[-277,639],[124,2784],[-183,-36],[-98,2687]],[[249236,238014],[203,-4319],[261,-907]],[[249700,232788],[-283,-440]],[[249417,232348],[-471,-68],[-254,869],[-304,-894],[-309,779]],[[248079,233034],[-385,607]],[[264302,242221],[-267,-2074],[-54,-1701],[-693,-1753]],[[263288,236693],[-375,1330],[-2,1097],[-281,268],[-139,1364]],[[222451,238769],[6,-3970]],[[222457,234799],[-1261,76]],[[221196,234875],[-1009,-7]],[[220187,234868],[1,7820]],[[220187,234868],[-1627,-38]],[[218560,234830],[-725,-10]],[[265068,241976],[85,-2796],[-178,-1],[-97,-4622]],[[264878,234557],[-479,557],[-1297,-63]],[[263102,235051],[186,1642]],[[251484,237412],[-1134,-2305],[-141,1298]],[[250209,236405],[-2,5117]],[[266171,241588],[21,-1291],[-370,-1383],[42,-1369],[-274,-2432]],[[265590,235113],[-266,-1104],[-213,-2775]],[[265111,231234],[-234,66]],[[264877,231300],[1,3257]],[[209944,215738],[-22,21405]],[[213360,230444],[686,-3232]],[[214046,227212],[-190,-2194],[-356,428],[-422,-724],[-393,-4187],[-190,-3082],[-26,-2697],[-288,-495],[-452,-3923],[-784,1354],[-338,2103],[-458,443],[-205,1500]],[[245190,235482],[-472,-15],[-483,3251]],[[215612,234826],[-8,-9436]],[[215604,225390],[-988,210],[-570,1612]],[[247253,234778],[-437,-1709],[-207,516]],[[246609,233585],[-184,-841],[-537,3147]],[[266925,241310],[88,-37]],[[267013,241273],[105,-135],[78,-2865],[203,-1637]],[[267399,236636],[-213,-2319]],[[267186,234317],[-334,-5]],[[266852,234312],[-283,815],[-979,-14]],[[250209,236405],[34,-1301],[-543,-2316]],[[268741,240589],[-104,-715],[226,-2817],[-101,-1193],[-315,-130]],[[268447,235734],[-586,1764],[-462,-862]],[[209944,215738],[-499,619],[-308,933],[-500,3117],[-209,111],[-481,2314],[-467,5014],[-27,4955],[-481,3934],[-35,2230],[-300,2214]],[[233980,235886],[192,-3310]],[[234172,232576],[-466,-2513],[-754,2533],[-380,-1253],[-369,-201]],[[232203,231142],[-2,2893]],[[227841,237274],[-344,-3901],[-437,-2646]],[[227060,230727],[-169,-807]],[[226891,229920],[-1289,6177]],[[225602,236097],[131,1301]],[[262491,240752],[-511,-7567]],[[261980,233185],[-763,18]],[[261217,233203],[16,6814]],[[263102,235051],[119,-3211],[349,-2174]],[[263570,229666],[-1288,55],[-50,-791]],[[262232,228930],[-308,1351],[56,2904]],[[269380,240339],[4,-8335]],[[269384,232004],[-309,-3002],[110,-640]],[[269185,228362],[-359,-2062]],[[268826,226300],[-394,1903]],[[268432,228203],[15,7531]],[[272248,234159],[-9,-2722],[-434,368]],[[271805,231805],[-186,100],[91,1895],[-113,885],[151,2029],[471,-634],[29,-1921]],[[272388,234172],[-135,-12]],[[272253,234160],[-2,2672],[137,-2660]],[[271771,239898],[387,-696],[23,-1979],[-488,-401],[1,-1430],[-265,-958],[92,-1411]],[[271521,233023],[-998,-79]],[[270523,232944],[1,1609]],[[270523,232944],[0,-816]],[[270523,232128],[-259,0]],[[270264,232128],[-880,-124]],[[261213,230026],[6,-1939]],[[261219,228087],[-831,3621],[181,87],[319,-1692],[325,-77]],[[261217,233203],[-4,-3055]],[[261213,230148],[-256,-46],[-113,1656],[-199,-122],[-386,1289],[-6,-1143],[-725,2692]],[[229870,234989],[-428,-2537]],[[229442,232452],[-640,-2032]],[[228802,230420],[-160,3872],[-704,2678]],[[236900,233962],[5,-1513]],[[236905,232449],[-445,185],[-184,-1246],[-288,178]],[[235988,231566],[-422,-16],[-379,7037]],[[224435,238770],[11,-6721]],[[224446,232049],[-926,-12]],[[223520,232037],[-1061,-73],[-2,2835]],[[225602,236097],[-347,-5926]],[[225255,230171],[-325,-1870]],[[224930,228301],[-484,3748]],[[245308,223867],[-799,1569],[36,944],[-274,2264]],[[244271,228644],[603,287]],[[244874,228931],[203,-2331],[251,-832],[-20,-1901]],[[244558,230559],[-645,-479],[-351,1662],[-258,-1459],[-367,543]],[[242937,230826],[126,1509],[-231,3991]],[[243633,238723],[169,-1018],[54,-2471],[406,-1498],[38,-2365],[258,-812]],[[245528,235452],[-238,-4825]],[[245290,230627],[-329,-692]],[[244961,229935],[-403,624]],[[235988,231566],[8,-4159]],[[235996,227407],[-1499,-100]],[[234497,227307],[-325,5269]],[[239649,236967],[279,-442],[95,-4141],[287,-11],[14,-1373],[-301,-819]],[[240023,230181],[-367,261],[-1652,-20]],[[238004,230422],[33,3587]],[[241039,238421],[19,-2543]],[[241058,235878],[90,-2556],[-90,-2140]],[[241058,231182],[-312,-1023]],[[240746,230159],[-723,22]],[[242403,235025],[-396,-2817]],[[242007,232208],[-408,-1799],[-460,906]],[[241139,231315],[-81,-133]],[[268432,228203],[-222,-845]],[[268210,227358],[-526,3596],[-439,645],[-59,2718]],[[228802,230420],[-812,-4930]],[[227990,225490],[-930,5237]],[[231395,233651],[-275,-1643],[131,-1238]],[[231251,230770],[-412,483],[-916,-965]],[[229923,230288],[-71,1866],[-410,298]],[[242937,230826],[-38,-676]],[[242899,230150],[-457,1473],[-435,585]],[[226432,226825],[-346,-1970]],[[226086,224855],[-87,1789],[-744,3527]],[[226891,229920],[-513,-2622],[54,-473]],[[246609,233585],[-25,-1023]],[[246584,232562],[-762,-996],[-135,-865]],[[245687,230701],[0,-1]],[[245687,230700],[-397,-73]],[[266852,234312],[-10,-6935],[145,-1217]],[[266987,226160],[-200,-2815]],[[266787,223345],[-399,937],[-283,2980],[-405,1944],[-589,2028]],[[264877,231300],[-794,-653],[8,-1736],[-255,56]],[[263836,228967],[-266,699]],[[247598,233761],[-477,-3687],[-248,-294],[-10,-2337]],[[246863,227443],[-276,26]],[[246587,227469],[-43,-63]],[[246544,227406],[-91,2727],[131,2429]],[[218560,234830],[1,-12369]],[[218561,222461],[3,-3801],[-131,-3064],[-135,-246]],[[218298,215350],[-586,2295],[-155,1738],[-559,1471],[-109,1938],[-428,2706],[-230,-539],[-627,431]],[[221196,234875],[-9,-4032]],[[221187,230843],[-585,153],[-126,-5325],[-5,-3218]],[[220471,222453],[-272,-3]],[[220199,222450],[-1638,11]],[[223520,232037],[7,-6643]],[[223527,225394],[-721,2115],[-1183,235]],[[221623,227744],[-251,17],[4,3079],[-189,3]],[[268210,227358],[-114,-1168]],[[268096,226190],[-1109,-30]],[[272837,223331],[-14,0]],[[272823,223331],[-64,-213]],[[272759,223118],[-215,-625],[-556,-55]],[[271988,222438],[-4,2546]],[[271984,224984],[-177,2427],[99,1442],[-322,1679],[221,1273]],[[272248,234159],[350,-6434],[-19,-1080],[258,-3314]],[[272388,234172],[216,-5656],[-351,5644]],[[238004,230422],[-370,-3472]],[[237634,226950],[-15,2086],[-480,949],[-234,2464]],[[232203,231142],[-438,1363],[375,-6983]],[[232140,225522],[-575,-1123]],[[231565,224399],[-196,1520],[-118,4851]],[[247737,223729],[-329,25],[-92,1327],[-453,2362]],[[247598,233761],[-7,-4805],[112,-2059],[203,-841],[-169,-2327]],[[248079,233034],[-93,-5082],[222,493],[142,-926]],[[248350,227519],[-169,-1243],[4,-1675],[243,-2463],[7,-2735]],[[248435,219403],[-412,1679],[32,1884],[-166,601]],[[247889,223567],[-152,162]],[[262232,228930],[-64,-3572]],[[262168,225358],[-1,-31]],[[262167,225327],[-472,-1559]],[[261695,223768],[-260,-97],[30,2044],[-246,2372]],[[261213,230026],[0,122]],[[249417,232348],[-288,-1736],[-365,-1099]],[[248764,229513],[-363,-244],[-62,-812],[282,-1440]],[[248621,227017],[-271,502]],[[271521,233023],[-209,-1367],[211,19],[-61,-1459],[280,-1434],[17,-2305]],[[271759,226477],[-575,-58],[-356,-1658],[-304,-535]],[[270524,224226],[-1,7902]],[[237634,226950],[-209,-1155],[251,-2061]],[[237676,223734],[-488,-232],[-948,-2204]],[[236240,221298],[-9,6070],[-235,39]],[[234497,227307],[188,-998],[-40,-2779]],[[234645,223530],[-249,562],[-163,2138],[-77,-1073],[335,-1692],[-100,-2415]],[[234391,221050],[-400,-946],[-152,1094]],[[233839,221198],[-128,697],[-451,-247]],[[233260,221648],[-1120,3874]],[[249637,222999],[-31,137]],[[249606,223136],[-17,-11]],[[249589,223125],[-854,2530],[-114,1362]],[[248764,229513],[178,-1314],[189,484],[62,-1577],[278,-41],[74,2259],[374,1265],[70,-3363],[267,-194],[-426,-2469],[-490,256],[297,-1820]],[[250525,230647],[-312,-71],[261,1146],[51,-1075]],[[246544,227406],[-360,597],[-279,-302]],[[245905,227701],[-208,1350],[-10,1649]],[[229923,230288],[145,-1541]],[[230068,228747],[-848,-6121]],[[229220,222626],[-749,-87]],[[228471,222539],[-487,2914]],[[227984,225453],[6,37]],[[242899,230150],[-21,-3785]],[[242878,226365],[-34,-727],[-510,-1743],[182,-15],[-22,-1563],[-530,-1558],[-885,886]],[[241079,221645],[5,8529],[-338,-15]],[[270524,224226],[-18,-8]],[[270506,224218],[-216,2191],[-389,132],[-406,1491]],[[269495,228032],[311,619],[458,3477]],[[269495,228032],[-310,330]],[[224930,228301],[-647,-3579]],[[224283,224722],[-370,-472]],[[223913,224250],[-386,1144]],[[243094,222650],[507,-1497],[-373,-1379],[-504,1635],[370,1241]],[[244961,229935],[-87,-1004]],[[244271,228644],[-426,-208],[-645,-3854]],[[243200,224582],[80,1697],[-402,86]],[[231565,224399],[21,-2330],[-179,-21]],[[231407,222048],[-240,599]],[[231167,222647],[-226,617],[-208,2752],[-251,273],[-414,2458]],[[245905,227701],[-338,-3548]],[[245567,224153],[-211,-1645]],[[245356,222508],[-48,1359]],[[221623,227744],[-6,-5221]],[[221617,222523],[-1146,-70]],[[227984,225453],[-780,-2865],[-98,358]],[[227106,222946],[-308,892],[-366,2987]],[[241079,221645],[-915,2302],[-643,1244],[-860,-33],[-722,-625],[-263,-799]],[[226086,224855],[-251,-1276],[-617,-1664]],[[225218,221915],[-190,1265],[73,1338],[-818,204]],[[261984,223666],[48,-1027],[-349,843],[301,184]],[[262167,225327],[153,-1172],[-625,-387]],[[263836,228967],[267,-1312],[-501,151],[-1029,-3276],[-405,828]],[[231167,222647],[-368,-2222],[-115,-1978],[-812,-2987]],[[229872,215460],[-51,299]],[[229821,215759],[273,1332],[-648,4505],[-226,1030]],[[245356,222508],[-369,-726]],[[244987,221782],[-280,-1858],[-256,1228],[-396,-628],[-7,2090],[-206,-84],[-20,2140],[-622,-88]],[[270506,224218],[-1,-4598]],[[270505,219620],[-384,-936],[-50,1175],[-543,18]],[[269528,219877],[-418,-93],[-2,1070],[-275,505]],[[268833,221359],[-7,4941]],[[268833,221359],[-783,495]],[[268050,221854],[-36,3076],[82,1260]],[[248195,214699],[-70,-748]],[[248125,213951],[-368,-1498],[-381,4155],[-144,-1654]],[[247232,214954],[0,260]],[[247232,215214],[0,103]],[[247232,215317],[15,318]],[[247247,215635],[13,86]],[[247260,215721],[55,1625],[-668,4635],[-414,1833],[-105,1452],[-208,-1076],[-353,-37]],[[247889,223567],[32,-2068],[-180,-982],[125,-870],[386,-448],[38,-1287],[-225,-2000],[130,-1213]],[[222150,222529],[-533,-6]],[[223913,224250],[-73,-521]],[[223840,223729],[-340,-2416],[-157,1139],[-1193,77]],[[249173,217874],[111,-1305],[-400,134],[289,1171]],[[249589,223125],[-488,-958],[203,-1847],[362,-1192],[-111,-777],[530,-230],[375,-1687],[141,831],[307,-3039],[-50,-1667],[-254,-1182],[-172,579],[-447,-2429],[422,3793],[-138,1557],[-368,-603],[-134,2620],[-304,1182],[-628,94],[58,1184],[-307,734],[-151,-685]],[[236240,221298],[-45,-112]],[[236195,221186],[-276,35]],[[235919,221221],[-211,269],[-540,-841],[124,4279],[-302,699],[-198,-2304],[-147,207]],[[227106,222946],[-578,-5086]],[[226528,217860],[-680,53],[-139,1116]],[[225709,219029],[22,814],[-513,2072]],[[271988,222438],[9,-2348],[241,-1825]],[[272238,218265],[-390,-928]],[[271848,217337],[-291,1592],[-5,2834],[246,456],[-91,1669],[277,1096]],[[271759,226477],[138,-1242],[-266,-1802],[-119,-4400],[73,-1266]],[[271585,217767],[-204,-13],[-96,2166],[-186,606],[-594,-906]],[[233260,221648],[-107,-2624],[-243,-16],[-116,-2071]],[[232794,216937],[-175,-671],[-275,621],[-264,-1151]],[[232080,215736],[-404,3185],[-269,3127]],[[228471,222539],[-170,-901],[-100,-3633]],[[228201,218005],[-1040,-5116]],[[227161,212889],[-321,2085]],[[226840,214974],[-364,2442],[52,444]],[[244928,217715],[211,-933],[-107,-1820],[-305,1569],[201,1184]],[[247260,215721],[-525,940],[-7,-1505],[-198,-130],[-95,-1883],[-522,-151],[-171,914],[376,1325],[-332,809],[-84,1095],[-261,-2776],[-233,825],[15,1953],[-358,1998],[122,2647]],[[225709,219029],[-761,-6052]],[[224948,212977],[-1106,2536]],[[223842,215513],[-2,8216]],[[223842,215513],[-1,-2983]],[[223841,212530],[-1697,16]],[[222144,212546],[6,9983]],[[272759,223118],[386,-4323]],[[273145,218795],[-132,-298],[16,-2699],[-744,-89],[-47,2556]],[[232080,215736],[-73,-613]],[[232007,215123],[-254,-1543],[-960,-3417]],[[230793,210163],[-921,5297]],[[229821,215759],[-780,-3735]],[[229041,212024],[-105,759]],[[228936,212783],[-735,5222]],[[222144,212546],[-1943,-92]],[[220201,212454],[-2,9996]],[[220201,212454],[-1549,-37]],[[218652,212417],[-301,1679],[-53,1254]],[[235183,217123],[-168,-988],[-897,-3581],[738,3848],[327,721]],[[234284,214573],[-491,4941],[46,1684]],[[234391,221050],[301,-995],[33,-3555],[-122,190],[-319,-2117]],[[236195,221186],[-1085,-2978],[545,2519],[264,494]],[[234284,214573],[-259,-341],[-245,-3555],[-456,-2355],[-295,-718]],[[233029,207604],[-168,76],[-313,2527],[-238,31],[-6,1604],[-193,734],[-104,2547]],[[269528,219877],[10,-5017],[-370,-17],[1,-3161]],[[269169,211682],[-610,-875]],[[268559,210807],[-4,-26]],[[268555,210781],[11,1180],[-229,1769],[-631,423],[-130,2753]],[[267576,216906],[349,3015],[125,1933]],[[271585,217767],[74,-1765]],[[271659,216002],[-47,-5892],[-823,-7]],[[270789,210103],[-996,7]],[[269793,210110],[-470,1716],[-154,-144]],[[226840,214974],[-1288,-6318]],[[225552,208656],[-604,4321]],[[274038,206958],[-133,1]],[[273905,206959],[-39,-1]],[[273866,206958],[-329,-17],[-54,-3299]],[[273483,203642],[-296,3940]],[[273187,207582],[-245,-773],[-517,1780]],[[272425,208589],[33,1990],[-268,1417]],[[272190,211996],[-290,2402]],[[271900,214398],[73,2026],[-125,913]],[[273145,218795],[71,-1438],[822,-10399]],[[228017,208315],[-311,1140],[-437,-2085]],[[227269,207370],[-501,3617],[393,1902]],[[228936,212783],[-919,-4468]],[[272425,208589],[-133,-1746]],[[272292,206843],[-680,-113],[4,-8039]],[[271616,198691],[-837,-35]],[[270779,198656],[10,11447]],[[271659,216002],[241,-1604]],[[230793,210163],[-40,-5357]],[[230753,204806],[-186,-16]],[[230567,204790],[-105,611]],[[230462,205401],[-405,-37]],[[230057,205364],[-229,272]],[[229828,205636],[-9,-8]],[[229819,205628],[-2,32]],[[229817,205660],[-203,3106],[-295,2552],[-278,706]],[[225150,203636],[-1,663],[-1297,-17]],[[223852,204282],[-11,8248]],[[225552,208656],[258,-1776]],[[225810,206880],[-660,-3244]],[[230757,204203],[-4,603]],[[233029,207604],[-514,-1808],[-270,336],[-409,-941],[-73,-1321],[716,1768],[-1755,-5263],[983,3206],[18,865],[-525,-948],[-443,705]],[[226700,204666],[-382,955],[-249,-541]],[[226069,205080],[-259,1800]],[[227269,207370],[-569,-2704]],[[229817,205660],[1,-376]],[[229818,205284],[-753,-2126],[109,-1486]],[[229174,201672],[-69,-398],[-683,1260]],[[228422,202534],[5,4144],[-122,1448],[-288,189]],[[223852,204282],[-1657,-123]],[[222195,204159],[-37,-4]],[[222158,204155],[-14,8391]],[[222158,204155],[-1965,141]],[[220193,204296],[8,8158]],[[220193,204296],[2,-8383]],[[220195,195913],[-275,-20]],[[219920,195893],[-228,1634],[-299,5632],[-270,1346],[-137,3111],[-290,2181],[-44,2620]],[[269793,210110],[391,-3170],[-256,-2281]],[[269928,204659],[-433,506],[-598,-8]],[[268897,205157],[-149,697],[-6,3295],[-183,1658]],[[270779,198656],[-274,-620]],[[270505,198036],[2,3099]],[[270507,201135],[2,766],[-428,978],[-153,1780]],[[228422,202534],[-599,-3072]],[[227823,199462],[-496,1215],[-66,1282],[-333,364],[-228,2343]],[[273483,203642],[-949,-51],[-367,555],[125,2697]],[[273866,206958],[152,-4435],[384,-6703],[460,-6126],[-21,-545]],[[274841,189149],[-1029,-223]],[[273812,188926],[17,9772]],[[273829,198698],[-61,3007],[-285,1937]],[[274038,206958],[411,-2425],[-276,2427]],[[274173,206960],[19,0]],[[274192,206960],[437,-3794],[144,-2446],[-167,-836],[-12,3069],[-288,-3646],[-72,100],[-11,3804],[-174,606],[153,1506],[-297,1636]],[[226409,193288],[-981,21]],[[225428,193309],[-276,-3]],[[225152,193306],[-2,10330]],[[226069,205080],[-235,-508],[782,-8928],[-25,-123]],[[226591,195521],[-240,-1164],[58,-1069]],[[273829,198698],[-2213,-7]],[[229313,193901],[29,366]],[[229342,194267],[112,1478],[226,125],[508,2370],[340,470],[-1215,-4809]],[[229467,200562],[-293,1110]],[[229818,205284],[138,-1955],[593,-2862],[-702,-2230],[-380,2325]],[[230462,205401],[-19,-1857],[-353,715],[-33,1105]],[[227823,199462],[-461,-4167]],[[227362,195295],[-76,-648],[-695,874]],[[270507,201135],[-552,2],[0,-813],[-1166,-23]],[[268789,200301],[108,4856]],[[223852,204282],[-7,-10983]],[[223845,193299],[-1631,-503],[-15,3242]],[[222199,196038],[-4,8121]],[[225152,193306],[-1307,-7]],[[222199,196038],[-2004,-125]],[[229467,200562],[-206,-608],[191,-1783]],[[229452,198171],[-926,-864],[295,-1302]],[[228821,196005],[-626,-2606]],[[228195,193399],[-53,240]],[[228142,193639],[-158,1151],[-622,505]],[[270505,198036],[-139,-2611]],[[270366,195425],[-1519,30]],[[268847,195455],[-374,-12]],[[268473,195443],[316,4858]],[[271616,198691],[0,-1635],[277,2],[94,-2171],[192,-1069],[303,-11],[-262,-959],[585,-3549],[246,-3711]],[[273051,185588],[-1173,63]],[[271878,185651],[-1368,-4]],[[270510,185647],[-6,9777],[-138,1]],[[273812,188926],[-11,-3356]],[[273801,185570],[-750,18]],[[229222,193536],[-326,-2723],[39,1456],[287,1267]],[[228195,193399],[229,-262],[-76,-1380]],[[228348,191757],[-206,1882]],[[228490,190446],[-134,1235]],[[228356,191681],[444,2665],[-7,-1493],[-303,-2407]],[[229452,198171],[-21,-806]],[[229431,197365],[-30,-1032]],[[229401,196333],[-338,-1783],[-242,1455]],[[223845,193299],[14,-13095]],[[223859,180204],[1,-1601],[-436,24]],[[223424,178627],[-1056,73],[-103,854],[-232,-1005]],[[222033,178549],[-141,1379],[72,2611],[-322,2960],[-327,370],[-463,2627],[-155,3392],[-155,198],[-278,2896],[-344,911]],[[228348,191757],[8,-76]],[[228490,190446],[-3,-28]],[[228487,190418],[-16,-156]],[[228471,190262],[-133,-1330],[-231,1091],[-604,-774]],[[227503,189249],[-413,475],[-457,1288],[12,1137]],[[226645,192149],[-45,799]],[[226600,192948],[-191,340]],[[268847,195455],[7,-2885]],[[268854,192570],[-198,-1538],[342,-1335],[-115,-2957],[-287,863],[-300,2065],[148,2365],[29,3410]],[[270510,185647],[-1388,-19]],[[269122,185628],[467,3254],[-294,1838],[49,-1786],[-175,307],[19,1799],[-334,1530]],[[225428,193309],[7,-14809]],[[225435,178500],[-810,49]],[[224625,178549],[3,1455],[-769,200]],[[226645,192149],[-378,-2056],[-22,-4642]],[[226245,185451],[-328,-1],[5,-6978]],[[225922,178472],[-487,28]],[[228402,187096],[249,1941],[-343,-3973],[94,2032]],[[227963,184054],[-1438,-46],[-280,1443]],[[227503,189249],[288,8],[201,-2841],[170,164],[-199,-2526]],[[275241,183987],[-902,23]],[[274339,184010],[-271,4],[-3,1573],[-264,-17]],[[274841,189149],[341,-3281],[59,-1881]],[[273051,185588],[-176,-2846],[396,-2050],[334,-3158]],[[273605,177534],[-628,-17],[1,-1639],[-277,-12],[2,-1649],[-824,22]],[[271879,174239],[-2,5717]],[[271877,179956],[1,5695]],[[271877,179956],[-1371,-47]],[[270506,179909],[4,5738]],[[270506,179909],[-2,-2429]],[[270504,177480],[-549,22],[3,3302],[-874,53]],[[269084,180857],[-345,1646],[240,734],[143,2391]],[[274339,184010],[6,-6562]],[[274345,177448],[1,-1562],[-580,-3038]],[[273766,172848],[42,3614],[-203,1072]],[[227901,178788],[-37,1]],[[227864,178789],[9,1767],[307,3881]],[[228180,184437],[70,-94]],[[228250,184343],[-349,-5555]],[[227963,184054],[-251,-4475],[-258,-852],[114,2438],[-407,-1626],[-336,1829],[200,-2389],[-320,-88]],[[226705,178891],[-582,-1386]],[[226123,177505],[-201,967]],[[275241,183987],[343,-5478]],[[275584,178509],[-145,-584]],[[275439,177925],[-1,-410]],[[275438,177515],[-1093,-67]],[[270504,177480],[-3,-3270]],[[270501,174210],[-551,17],[0,-506]],[[269950,173721],[0,-130]],[[269950,173591],[-1,-996],[-273,12]],[[269676,172607],[-254,2093],[-338,6157]],[[224625,178549],[159,-3917],[135,10],[-13,-5059]],[[224906,169583],[-1481,40]],[[223425,169623],[-1,9004]],[[271879,174239],[-1378,-29]],[[223425,169623],[-158,-2061],[-441,-1922]],[[222826,165640],[-276,5054],[-494,3303],[54,2886],[-77,1666]],[[228015,167092],[-166,1925],[-8,2670]],[[227841,171687],[174,-4595]],[[227841,171687],[-52,110],[22,6050],[53,942]],[[227901,178788],[-82,-3294],[22,-3807]],[[227632,166164],[-1163,-35],[-267,256]],[[226202,166385],[-78,3148]],[[226124,169533],[-1,7972]],[[226705,178891],[360,-137],[283,-871],[341,625],[-132,-4582],[-184,-313],[-31,-3271],[212,-1257],[78,-2921]],[[226124,169533],[-934,42]],[[225190,169575],[-284,8]],[[275994,173067],[-63,2]],[[275931,173069],[-9,1]],[[275922,173070],[-37,2]],[[275885,173072],[-22,0]],[[275863,173072],[-26,-266],[-2071,42]],[[275438,177515],[375,-1551],[181,-2897]],[[273766,172848],[-167,-3535],[-1729,10]],[[271870,169323],[9,4916]],[[269950,173591],[197,-1158],[100,-2595],[-427,921],[-144,1848]],[[271870,169323],[-1374,16]],[[270496,169339],[-105,2644],[304,1032],[-368,4],[-94,-803],[-283,1505]],[[275863,173072],[173,-517],[58,-7156],[-69,-4426]],[[276025,160973],[-424,252],[-1823,-64]],[[273778,161161],[-12,11687]],[[273778,161161],[4,-1336]],[[273782,159825],[-1083,-119],[-9,4916],[-814,-70]],[[271876,164552],[-6,4771]],[[270224,168129],[277,-3877],[-101,-154],[-176,4031]],[[271876,164552],[5,-1688],[-271,-31],[4,-1924],[-522,237]],[[271092,161146],[-65,2473],[-474,1226],[-124,2786],[67,1708]],[[225190,169575],[-740,-9780]],[[224450,159795],[-249,-323],[-357,2361],[-856,1101],[54,931],[-216,1775]],[[226202,166385],[-130,-3036],[395,-282],[0,-1591]],[[226467,161476],[2,-5174]],[[226469,156302],[-921,-317],[-542,1946],[-162,1244],[-394,620]],[[227781,162637],[-161,-1600],[-221,-469],[-932,908]],[[227632,166164],[36,-3208],[113,-319]],[[273782,159825],[19,-5212]],[[273801,154613],[0,-3238]],[[273801,151375],[-1312,-39]],[[272489,151336],[-461,1867],[-228,-193],[-395,1936],[-191,1815],[-122,4385]],[[227781,162637],[266,-4006],[-45,-1342],[291,-825],[-120,-2091],[-349,-1094],[6,-1266],[-411,861],[-516,2812],[-434,616]],[[276025,160973],[-123,-6440]],[[275902,154533],[-491,-343],[-1072,2],[-538,421]],[[275036,140768],[-16,1]],[[275020,140769],[-149,-434]],[[274871,140335],[3,-76]],[[274874,140259],[-199,601],[-388,-1467],[-445,274]],[[273842,139667],[-42,3489],[1,8219]],[[275902,154533],[-196,-4031],[-305,-2455],[-117,-2922],[81,-1855],[-329,-2502]],[[275491,142866],[-401,-4417],[-362,-2015],[523,3742],[240,2690]],[[273842,139667],[-118,-686],[-512,-438],[-244,1966],[102,2254],[184,-1641],[296,-971],[166,920],[-246,1771],[-349,146],[-259,2834],[-188,3420],[234,599],[-210,868],[-82,-1356],[-127,1983]],[[267576,216906],[-181,85],[-177,1931],[-468,2015],[37,2408]],[[233545,583163],[470,-1],[0,7179],[546,-266],[367,-1412],[396,-7638],[-21,-1975],[288,-1125],[438,-310]],[[249572,564554],[-1138,-3158],[-1287,-1848],[-816,-1938],[-809,-2999]],[[245498,568091],[407,1054],[402,-2818],[1697,311],[722,-2325],[296,673],[550,-432]],[[244050,541402],[0,-11146]],[[242234,539623],[263,1550],[296,-1143],[509,150],[748,1222]],[[245788,538230],[8,-8017]],[[244050,541402],[832,1557],[406,335],[672,1956],[311,-1206],[-365,-2639],[91,-1053],[-209,-2122]],[[245788,538230],[630,1480],[422,-1520]],[[246668,543604],[119,-491],[-601,-1772],[482,2263]],[[254361,554779],[386,-1343],[-683,-275],[52,-770],[-806,-2719]],[[253310,549672],[-198,1603],[-596,-3]],[[252516,551272],[245,1549],[576,1487],[1024,471]],[[252129,567028],[638,1075],[-743,-3451],[-872,-1783],[142,-551],[-582,-1037],[-166,1627],[1583,4120]],[[252473,548019],[214,-3207]],[[251344,546531],[128,1308],[717,2354],[12,-1815],[272,-359]],[[253310,549672],[-511,-4124],[-63,2158],[-507,612],[-28,1852],[315,1102]],[[256406,536544],[0,-6253]],[[256406,530291],[-348,-1],[-4,-3236],[-348,4]],[[253820,544308],[634,-392],[509,-1456],[171,-1720],[674,-4188],[598,-8]],[[257802,530286],[-1396,5]],[[256406,536544],[265,725],[573,-1784],[182,767],[315,-1250],[489,2628],[901,2228],[763,318]],[[258234,522812],[-689,-2000],[491,3712],[-698,206],[-249,-2795],[-468,641],[-361,-1504],[-267,-2116]],[[255011,510600],[-35,-2168],[-370,-346]],[[254678,502703],[346,2967],[570,1286],[473,4864],[330,489],[143,1898],[235,8],[-572,-6086],[-44,-1740],[-320,-1641],[-154,-2072]],[[266291,525881],[-781,769]],[[265510,526650],[490,1336],[-121,1234],[374,-217],[304,-1926],[-266,-1196]],[[264534,537282],[192,-119],[-169,-2149],[-263,1387],[240,881]],[[264771,527003],[-281,49]],[[264490,527052],[-48,-2]],[[264442,527050],[-19,1612],[-346,2],[-1,1612],[-2086,1],[-3,1628],[-347,-5]],[[261640,541399],[788,243],[-207,-1485],[-13,-3740],[568,-816],[557,744],[103,-1308],[702,1641],[226,-1325],[215,-3355],[-110,-1628],[279,286],[140,-1587],[477,-2056],[-594,-10]],[[263518,523913],[579,-847],[-387,-679],[-192,1526]],[[264442,527050],[-1182,1276],[-230,-2015],[-35,-1966],[-708,3125],[-1172,1762],[-254,-167],[-506,-2455]],[[260355,526610],[-463,132]],[[263048,514103],[-754,-309],[-259,1732]],[[262035,515526],[484,1050],[-316,238],[-233,2467],[498,2959],[580,1140]],[[261221,512584],[62,1278],[458,1591],[294,73]],[[260809,522684],[123,-2641],[-358,-487],[235,3128]],[[259619,509895],[-266,697],[189,946],[77,-1643]],[[260516,504530],[-484,-12]],[[259309,504590],[9,2168],[372,1310],[375,-215],[515,4334],[143,-2358],[-221,-3319],[14,-1980]],[[260516,504530],[127,-152],[342,4121],[-150,-4481],[235,2088]],[[266792,512571],[208,-2839],[-312,126],[-6,-2477],[298,-1301]],[[266298,493142],[-35,-2125],[-276,-1072],[-460,40],[-182,-1553]],[[266573,485031],[572,4601],[580,621],[347,1131],[524,-1430],[297,-2969],[77,-2649]],[[269259,474627],[236,-3607],[-157,-1606],[-122,-4884],[-353,83],[-169,1029]],[[268236,461261],[-80,-1234],[-498,-1330],[-248,-2669],[-87,-2521]],[[267323,453507],[-275,1112],[-676,-160]],[[267323,453507],[-736,-4608],[-57,-1020]],[[276369,283639],[51,-2897],[155,-81],[-317,-2464],[-721,-1619]],[[275537,276578],[-263,-628]],[[275274,275950],[-210,1997]],[[277898,288714],[355,-1067],[-412,-2026],[-248,443],[-747,-4416],[-356,-321],[309,2769]],[[64909,48285],[735,-2763],[362,-391],[488,-1483],[555,-3196],[-25,-2084],[244,11],[54,-1736],[492,-2286],[-474,-3219],[-428,-1373],[-453,-186],[-605,-2496],[-405,-3858],[-627,2125],[-103,1501],[89,4218],[-292,5441],[-196,1715],[345,2265],[317,3334],[-187,1774],[-23,2014],[137,673]],[[55028,84760],[233,-813],[-51,-4138],[-317,-1724],[-531,856],[-341,1190],[-70,1626],[168,1566],[392,1359],[517,78]],[[61944,65038],[-272,274]],[[61944,65038],[565,-356],[-456,-1900],[-525,1012],[-688,11],[160,2281],[672,-774]],[[61752,60573],[246,-292],[244,-1961],[-82,-859],[-351,-533],[-258,3324],[201,321]],[[62904,54516],[45,-1246],[-351,-599],[9,965],[297,880]],[[62814,62495],[340,-2480],[439,903],[263,-353],[320,-1916],[312,-600],[35,-1559],[-160,-1021],[-712,-1316],[-391,412],[-54,3221],[-459,616],[-172,1326],[59,2293],[180,474]],[[58972,75138],[409,-3430],[-19,-1219],[215,21],[315,-3031],[-404,-786],[-271,1419],[-580,-706],[-493,5221],[435,169],[393,2342]],[[53118,80469],[25,-1794],[-233,-683],[-126,-1603],[-75,1953],[409,2127]],[[996993,632383],[817,-1163],[91,-906],[715,-2639],[-621,1211],[-350,1710],[-879,1732],[227,55]],[[949,635992],[99,-1643],[-281,619],[182,1024]],[[7983,636500],[-23,-2275],[-307,-73],[-67,2101],[397,247]],[[8254,636861],[430,-729],[-177,-971],[-343,386],[90,1314]],[[8791,637399],[79,-1229],[-422,751],[343,478]],[[2943,637533],[355,-28],[110,-1138],[762,-730],[-472,-573],[-84,-1947],[-423,-823],[-299,1293],[442,1083],[-738,1716],[347,1147]],[[5406,633632],[-183,-597],[-329,1038],[-855,-380],[1115,1264],[256,737],[15,1940],[429,-501],[-230,-1194],[22,-1773],[-240,-534]],[[996376,638802],[311,-785],[-243,-852],[-68,1637]],[[7153,639094],[-123,-3160],[551,52],[-111,-1993],[-622,-692],[-248,-1116],[-148,1715],[-276,-2445],[-150,1181],[346,1636],[-142,1180],[574,-355],[-294,2578],[643,1419]],[[999634,639522],[333,-975],[-327,-1865],[-356,430],[-110,1601],[460,809]],[[8394,641129],[361,-843],[-150,-1151],[-356,-113],[145,2107]],[[993962,641501],[134,-1164],[-301,-1591],[5,-1345],[-561,-90],[-112,-1517],[-310,1266],[482,1562],[297,123],[366,2756]],[[15681,641867],[-88,-644],[551,-599],[499,441],[600,-278],[-1374,-850],[-663,468],[-396,-613],[-512,1117],[346,752],[243,-725],[794,931]],[[18716,646240],[355,-1060],[-312,-984],[-542,-452],[86,1790],[413,706]],[[13937,646817],[445,-1871],[-209,-1713],[-378,-563],[294,-1046],[-846,-839],[-955,-1616],[-414,666],[-938,-680],[1039,1800],[664,138],[756,1388],[293,1606],[-346,796],[246,1637],[349,297]],[[983194,648582],[-58,-2897],[-305,734],[-723,157],[686,1802],[400,204]],[[23639,652034],[277,-453],[-113,-1345],[-515,-1146],[-83,1789],[434,1155]],[[26147,655623],[246,-1330],[-168,-813],[-713,1494],[635,649]],[[980646,657671],[765,-147],[436,-2390],[463,-235],[-708,-1136],[-317,775],[-432,-1614],[-470,872],[165,1668],[-516,-336],[77,1140],[-541,-71],[552,1545],[526,-71]],[[28035,654543],[906,4624],[-94,1472],[527,2186],[747,66],[-272,830],[81,1805],[502,2014],[613,648],[607,-970],[-156,-2372],[-1193,-2675],[-517,-3466],[-1751,-4162]],[[36357,673363],[-391,-2467],[-196,1415],[587,1052]],[[34797,676523],[213,-3286],[496,2734],[387,-123],[69,-1817],[-313,-391],[-520,-2697],[580,1301],[182,-1595],[-673,-869],[-156,-1540],[-280,592],[46,-1877],[-401,265],[-1841,-3579],[-465,-1377],[-652,1241],[1054,2460],[1094,1206],[-224,1758],[468,338],[-151,1493],[938,464],[-875,524],[-340,2033],[352,1704],[1012,1038]],[[26197,724966],[756,-263],[-288,-1191],[-468,1454]],[[25148,736553],[-442,-1993],[-390,1138],[832,855]],[[39421,678834],[125,-1114],[-550,-30],[-134,746],[559,398]],[[36825,680387],[730,-1661],[-578,-1781],[-479,150],[-104,2381],[431,911]],[[38083,681762],[-169,-1483],[356,-62],[-384,-1861],[-336,2175],[180,1214],[353,17]],[[45571,685391],[688,-1487],[-645,-37],[-43,1524]],[[46952,694607],[166,-1890],[-229,-1028],[-301,1739],[364,1179]],[[42853,695877],[635,14],[266,-1568],[335,-4089],[373,437],[214,-1478],[-487,52],[-124,932],[-254,-1722],[-453,-779],[-609,441],[-827,-359],[-641,-1585],[-62,-1249],[-802,-1375],[-569,491],[-279,2148],[72,1348],[583,1047],[405,3984],[357,1064],[527,-514],[982,2495],[358,265]],[[48297,698203],[503,-1314],[-281,-972],[-458,2014],[236,272]],[[54719,699114],[35,-1698],[-430,-1611],[395,3309]],[[53768,699716],[-57,-3065],[-690,-2054],[16,3270],[392,-758],[85,2465],[254,142]],[[52387,701641],[19,-2213],[-523,1390],[504,823]],[[51366,702388],[94,-1872],[270,219],[343,-2313],[-187,-1094],[-921,1412],[40,2470],[361,1178]],[[52632,703466],[224,-1137],[-482,351],[258,786]],[[56428,729876],[0,-164]],[[56428,729712],[1,-1271]],[[56429,728441],[-376,-902],[0,-1576],[-688,44],[0,-1691],[-885,0],[-1,-1609],[-854,-47],[-10,-3153],[262,-17],[11,-6313],[-174,-1752],[845,0],[0,-4665]],[[54559,706760],[-221,3584],[-465,487],[-226,-1331],[-227,543],[-128,-1791],[-942,-1954],[-501,-2558],[-203,1961],[-156,-2246],[-321,-160],[-388,1335],[-213,-1550],[-896,-1527],[-526,87],[101,2154],[312,2133],[-635,501],[-315,-1612],[38,-2336],[-533,-3433],[-423,296],[235,-2134],[-319,-953],[-328,1503],[-197,-2494],[-614,575],[-124,3742],[-387,952],[-195,-964],[305,-1471],[135,-4091],[-322,1731],[-87,-1650],[-581,-104],[-229,2389],[-557,961],[-44,-1927],[533,-1473],[-911,-2585],[204,4150],[-79,1484],[293,977],[934,318],[218,2402],[379,1261],[396,-106],[-126,1804],[846,4218],[1241,3631],[1202,1199],[764,131],[636,709],[-429,-1919],[670,-3198],[315,-565],[-272,3531],[664,-282],[156,-1434],[616,-516],[78,1328],[-802,1925],[-146,1183],[588,5125],[1475,4921],[1402,2354],[1201,3895]],[[131839,702693],[478,-1815],[-261,-3590],[-338,3444],[121,1961]],[[133475,712615],[472,-2306],[365,-3908],[-109,-3956],[-237,-2723],[-412,-1256],[-725,1926],[513,3110],[-666,-3077],[-842,2748],[552,2915],[-268,716],[-19,1677],[519,1253],[-147,1905],[1004,976]],[[60956,762087],[579,2152],[207,3039]],[[61742,767278],[1861,118],[1,-5313],[-2648,4]],[[51410,765657],[-525,-4199],[-534,-542],[50,2808],[1009,1933]],[[50361,766039],[-741,-1613]],[[49620,764426],[-84,1634],[825,-21]],[[50463,766367],[0,3048],[447,4],[153,1512],[-4,3289],[475,13],[-1,1618],[474,68],[155,1546],[1,3271],[484,-4],[8,3225],[637,43],[12,3203],[445,89],[14,3067],[182,1579],[477,25],[0,3225],[493,-12],[187,1563],[6,3225],[507,4],[7,1610],[466,16],[197,3194],[2958,4],[8,-1469],[509,-23],[-9,1634],[498,0],[0,1661],[983,-7],[4,-1637],[3363,-86]],[[64599,804865],[6,-22904],[-455,-40],[-4,-1619],[-951,22],[-1,-1609],[-472,18],[-264,-3260],[-959,50],[-1,-1622],[-475,33],[8,-3299],[224,-22],[8,-3864]],[[61263,766749],[-1094,-1969],[-1642,-2596],[-488,694],[-100,1404],[-595,1396],[200,3649],[-346,-1592],[-442,-553],[-70,-2804],[-205,-87],[353,-4364],[-131,-1596],[-719,558],[-940,6038],[-710,1488],[71,1756],[-303,-417],[-191,-2035],[-311,-514],[-282,1932],[-662,238],[-84,2398],[-285,617],[-1091,-3021],[-733,-1002]],[[61033,724292],[684,-545],[-930,-219],[246,764]],[[71633,804882],[114,-1587],[1,-6528],[-370,-12],[-9,-6508],[-350,-18],[4,-6265],[-356,2],[-2,-1646],[-479,-11],[4,-3276],[-475,-9],[9,-1643],[-816,-49],[14,-3240],[-942,-29],[5,-3278],[149,-20],[-2,-6355],[154,-1634],[924,0]],[[69210,762776],[7,-3471],[-453,-1843],[-736,-1056],[-774,-256],[-138,-1018],[-764,-799],[4,-5901],[-324,-916],[-689,-542],[-206,-2415],[-365,-3],[219,-1278],[-365,-813],[-334,533],[-169,-1391],[-664,236],[-689,-3490],[-377,-3219],[1107,-39]],[[63500,735095],[-534,-3229],[-498,991],[-283,-2643],[-165,1250],[-876,-3730],[-513,1840],[-93,-1738],[-418,-1467],[297,-1220],[-476,-272],[-290,1208],[-838,-1435],[-237,-1294],[835,518],[-97,-1512],[-773,886],[47,-1061],[-586,328],[-1008,-4054],[729,1416],[658,-1055],[-890,-5668],[-359,2476],[4,-2388],[-569,564],[-201,-1660],[-1170,-915],[-208,-1647],[-122,1992],[-209,-168],[97,-2311],[-195,-2337]],[[56429,728441],[768,-812],[-200,4018],[209,1634],[848,4197],[641,1528],[416,1983],[586,1663],[449,-1864],[-119,2914],[-249,-206],[-35,2059],[292,6723],[196,1491],[338,171],[-417,2931],[211,2814],[593,2402]],[[61742,767278],[-123,1251],[-356,-1780]],[[64599,804865],[4288,-12],[2746,29]],[[65699,709069],[-504,744],[538,1338],[-34,-2082]],[[70400,724037],[-204,-1087],[-508,-19],[712,1106]],[[68718,724702],[-249,-2013],[-521,-1694],[196,2303],[574,1404]],[[69851,724354],[-436,-1711],[-363,957],[373,1310],[426,-556]],[[72263,735888],[654,-276],[179,-1133],[-749,-602],[-369,-1913],[-213,2136],[498,1788]],[[71587,750055],[468,-1112],[218,-1969],[-712,1537],[26,1544]],[[72121,750653],[752,-1609],[143,801],[402,-896],[-319,-1580],[498,-23],[268,1873],[864,-1804],[-645,-1900],[256,-24],[-10,-2224],[878,340],[-525,-3652],[-488,209],[-628,1356],[-204,-635],[516,-1217],[-216,-2411],[-309,-183],[-530,1368],[-251,-544],[428,-942],[-369,-902],[-533,226],[-638,-2935],[-448,348],[322,-1679],[-993,-4198],[-693,-436],[211,1779],[606,2267],[-320,-122],[143,1970],[-433,-1663],[-186,436],[448,2279],[-693,794],[-670,-679],[120,-1420],[344,1135],[575,213],[-523,-3914],[-670,1507],[-38,3723],[-597,1836],[85,2427],[257,1668],[757,2434],[973,102],[63,-1862],[628,-4462],[-147,2063],[79,2795],[-204,1554],[706,-247],[-928,1791],[8,1470],[588,1559],[419,-1165],[70,-2442],[174,2478],[786,-908],[-91,1984],[527,-1432],[-621,2635],[26,690]],[[72294,752633],[298,-243],[384,-2001],[-771,1279],[-524,168],[436,1600],[177,-803]],[[74768,758552],[203,-1494],[403,602],[-149,-1955],[513,1173],[-64,-2164],[-263,-1096],[-683,1715],[168,-2076],[-475,81],[-333,-1022],[-37,2484],[-168,-2623],[-420,-227],[-2,-1319],[-1063,2147],[-114,1830],[590,-260],[-304,1148],[155,946],[718,-477],[-72,2281],[417,1422],[495,-330],[341,-2521],[144,1735]],[[73815,761335],[865,1186],[-376,-3031],[-417,471],[-72,1374]],[[72144,766667],[-256,-165],[-279,-2562],[-649,-1819],[-613,-91],[-174,-2213],[-343,-43],[106,-2403],[-387,-650],[215,-848],[-602,-2221],[-49,-1387],[-356,1779],[54,-1574],[-325,275],[-479,-1769],[-793,237],[-111,-2260],[-819,-2014],[-130,-1038],[-600,882],[68,-2347],[-396,-579],[9,-1505],[-775,384],[-35,-2432],[-520,654],[-902,-2724],[-22,-1053],[573,813],[-196,-1902],[142,-997]],[[69210,762776],[1368,8],[-5,1620],[1015,10],[-7,2250],[405,-14]],[[71986,766650],[158,17]],[[124853,753145],[-549,-606],[-394,-1297],[-255,1284]],[[123655,752526],[58,1721]],[[123713,754247],[93,682]],[[123806,754929],[27,-1188],[798,113],[222,-709]],[[124293,757146],[749,-2547],[-1014,763],[-164,962],[429,822]],[[124853,768717],[211,-1953],[1165,-2450],[370,-2181],[920,-3383],[-235,-797],[808,-4371]],[[128092,753582],[-945,-4191]],[[127147,749391],[-329,-1604]],[[126818,747787],[-267,-754]],[[126551,747033],[-348,2791],[-600,2743],[-36,3375],[303,711],[-120,1531],[-569,-3645],[-841,2824],[-590,340],[-226,2827],[-376,2538],[-6,5749]],[[123142,768817],[1711,-100]],[[122507,768865],[608,-35]],[[123115,768830],[94,-1237],[-284,-3190],[-329,1968],[-89,2494]],[[125028,711856],[427,56],[-445,-1309],[18,1253]],[[130215,719801],[107,-2063],[756,-2315],[-338,-626],[254,-2100],[-618,-805],[-298,1242],[209,718],[-487,1319],[-280,-690],[-164,3076],[325,413],[163,1718],[371,113]],[[129378,721918],[249,-1134],[-115,-2167],[-590,-788],[-540,1882],[182,1807],[814,400]],[[130830,716910],[-489,1840],[74,2204],[-143,1693],[379,-778],[302,-2036],[326,196],[295,-2757],[-436,-1557],[-308,1195]],[[128815,728558],[1034,-4174],[-772,-1663],[-360,265],[62,2359],[-148,3099],[184,114]],[[126153,727422],[-66,1104],[446,-558],[-459,-4949],[-272,-4761],[208,396],[-146,-3602],[-196,615],[-111,3651],[-137,-5807],[-277,1260],[-136,3641],[146,2921],[525,49],[-191,2101],[-591,341],[101,963],[-332,2219],[-28,2428],[338,-759],[186,2187],[562,-1046],[430,-2394]],[[126096,733937],[1281,-1597],[902,-116],[343,-1458],[134,-4906],[-199,-1131],[-500,1925],[-370,3179],[207,-4437],[380,-383],[50,-1490],[-321,-1688],[-659,1031],[14,-897],[-617,-308],[-202,4527],[180,2218],[-303,119],[-132,1682],[-636,2448],[448,1282]],[[130329,738612],[336,-2561],[-336,-2230],[901,-864],[-218,-3192],[698,-1259],[105,-3850],[709,243],[1430,-3886]],[[133954,721013],[215,-2257],[-268,-1573],[-450,60],[-523,-1243],[217,-2328],[-367,57],[-534,1418],[-526,-1313],[-53,-1739],[-415,-1188],[272,-1077],[-70,-1918],[-374,-1019],[-347,1785]],[[130731,708678],[461,1375],[54,2694],[202,40],[-10,3932],[574,625],[-464,526],[-186,2188],[-506,719],[-71,1280],[-436,1390],[254,2614],[-500,-62],[-115,1369],[-779,1724],[-462,2944],[356,-607],[-84,2467],[-160,-1289],[-1099,1537],[-631,1283]],[[127129,735427],[607,1116],[481,-957],[392,2691],[952,1778],[768,-1443]],[[120135,747679],[-911,-75]],[[119224,747604],[-113,-9]],[[119111,747595],[-67,-5]],[[119044,747590],[175,3136],[916,-3047]],[[118824,752542],[436,-1596],[-323,-3068],[-279,1217],[166,3447]],[[127129,735427],[-11,1829],[1069,643],[-784,626],[-296,2733],[133,1559],[-543,1078],[247,1825],[1153,-2770],[-708,2710],[-430,722],[26,2218]],[[126985,748600],[107,525]],[[127092,749125],[55,266]],[[128092,753582],[282,-2841],[560,-2991],[880,-6389],[515,-2749]],[[124853,753145],[18,23]],[[124871,753168],[418,537]],[[125289,753705],[-148,-676],[909,-5880],[23,-2256],[-213,92],[-809,7066],[78,-1904],[-258,510],[590,-4994],[507,-2211],[51,-2144],[-521,218],[645,-2298],[-310,-1473],[-533,1666],[53,-3416],[-405,-716],[-196,-1446],[-544,-1275],[-190,2104],[50,2518],[367,839],[-3,1567],[-686,5962],[69,2065],[-286,4181],[126,722]],[[120491,750760],[-344,-2996]],[[120147,747764],[-1106,4388],[166,2241],[347,-765],[278,1062],[445,-194],[427,1507],[913,-2103],[-367,-2249],[68,-1158],[543,2952],[316,-1048],[502,33],[561,-2130],[-236,-1608],[-622,1179],[757,-2767],[-774,-493],[-454,1349],[-1420,2800]],[[123713,754247],[-95,-1670],[-341,1775],[-156,4018],[685,-3441]],[[114794,765672],[1165,1936]],[[115959,767608],[1943,4721],[682,110],[264,1748]],[[118848,774187],[1665,-1619],[529,-1279],[326,-2198],[-480,-4537],[582,-819],[409,-1530],[231,-2153],[-489,-11]],[[121621,760041],[49,-2296],[-405,961],[-824,-873],[206,2553],[-684,5535],[900,1274],[-791,545],[-394,2927],[235,-3862],[-191,-2032],[-886,1580],[-101,2460],[-280,-1505],[-688,1343],[-390,-1137],[761,-460],[670,-1418],[-346,-493],[774,-1580],[-470,-1770],[538,847],[342,-513],[455,-4297],[-639,-1196],[-13,909],[-621,-1129],[-298,1069],[41,-2621],[-717,2666],[-654,322],[-1470,4078],[-936,3744]],[[122912,775799],[-900,-103]],[[122012,775696],[-90,222]],[[121922,775918],[-936,7001]],[[120986,782919],[676,1289],[685,-1898],[571,-2465],[-202,-2534],[196,-1512]],[[123142,768817],[-27,13]],[[122507,768865],[-495,6831]],[[122912,775799],[198,-1219],[722,-593],[59,-1056],[546,-1130],[416,-3084]],[[121922,775918],[-145,-2315],[-358,301],[513,-2663],[-50,-2481],[722,-6540],[-70,-1018],[302,-3962],[-98,-2100],[-512,-56],[-321,1677],[-284,3280]],[[118848,774187],[34,3836],[479,-24],[183,1767],[-318,752],[1118,1161],[642,1240]],[[120877,738496],[389,-2216],[137,-2451],[-166,-1459],[-605,-380],[11,6413],[234,93]],[[123928,718235],[-2,-1610]],[[123926,716625],[-393,1362],[-697,5371],[278,1647],[-447,-368],[-256,2377],[77,1437],[-515,245],[-59,2351],[446,1679],[-481,1224],[98,2800],[-464,-184],[-452,2135],[588,60],[-326,842],[146,1989],[629,565],[-77,-1197],[395,257],[557,-1676],[490,7],[-81,-2391],[463,-6886],[222,-4906],[-139,-7130]],[[120135,747679],[12,85]],[[120491,750760],[1455,-3708],[395,-1834],[349,1018],[504,16],[258,-5147],[-689,-337],[-265,1057],[-1794,4644],[718,-3300],[33,-2583],[-443,-1626],[-365,435],[-451,2590],[538,-1592],[-959,3723],[84,790],[-635,2698]],[[40063,839903],[770,-536],[-859,-2772],[-125,3412],[214,-104]],[[40964,844347],[883,-2223],[79,-1915],[441,-2171],[-40,-1740],[-704,2418],[-1774,1537],[90,1825],[445,2301],[580,-32]],[[42065,848667],[903,-976],[563,-1663],[-706,-1821],[-339,-2285],[-564,-2],[-711,2401],[-620,812],[14,1297],[651,1761],[809,476]],[[46153,848898],[568,1],[10,-1610],[529,1],[18,-1676],[524,-12],[-4,-1547],[3176,0]],[[50974,844055],[-395,-2136],[-20,-6445],[-126,-25],[-6,-6437],[383,-5],[-10,-4748],[1058,-39]],[[51858,824220],[180,-1451],[604,-215],[-1456,-2220],[-980,-2588],[-900,-571],[-1213,-1602],[-1234,662],[-494,709],[-1854,-1999],[-659,648],[-690,-2756],[-941,669],[31,-2392],[-389,-2165],[-92,-1943],[-1046,-1523],[-746,776],[-935,-1159]],[[39044,805100],[-172,1112],[664,830],[-1128,3201],[-13,-2176],[-520,182],[-234,2567],[116,849],[-614,571],[-207,2123],[418,1187],[-481,1394],[-546,-1187],[-95,2644],[1073,795],[-526,599],[-413,1924],[1380,582],[-440,3023],[251,2549],[1109,5289],[619,2101],[570,-119],[933,3977],[823,-896],[965,-4031],[-209,4581],[-457,1793],[12,1197],[848,640],[78,1725],[725,1785],[524,-1399],[778,464],[610,2670],[668,1252]],[[46896,791982],[261,-1285],[-270,-665],[9,1950]],[[36192,795959],[180,-1952],[581,363],[562,-947],[-123,-4413],[448,-2402],[-1265,-1162],[-486,-2126],[-685,2000],[-493,-131],[-1055,2670],[-324,-89],[-644,1570],[-206,2197],[272,858],[1286,-625],[56,1283],[1008,2111],[905,-187],[-17,982]],[[17304,799216],[126,-1745],[804,-2158],[616,-183],[448,-1365],[-1028,65],[-1000,3083],[-322,373],[356,1930]],[[39654,805231],[136,-1106],[641,589],[-101,-1482],[649,41],[525,-808],[139,-1889],[-482,-1833],[-426,-534],[213,-1308],[-375,-571],[-319,-2845],[-422,135],[-775,2413],[439,1980],[-612,-774],[-640,997],[1252,2977],[-199,1359],[401,589],[-44,2070]],[[51858,824220],[3536,-32],[10,1609],[2034,-5],[-4,1617],[4083,203],[1,-1838],[5893,-29],[3388,4],[-14,1716],[962,59],[3,1571],[903,-11],[192,1616]],[[72845,830700],[-3,-16190]],[[72842,814510],[-1303,45],[-14,-5422],[124,-21],[-16,-4230]],[[50463,766367],[-102,-328]],[[49620,764426],[-139,-1468],[-1061,-1905],[-97,1293],[-1035,446],[862,1205],[617,1650],[-307,160],[-238,3846],[703,1138],[-113,1059],[-716,-1213],[-383,2903],[195,2895],[687,2210],[-441,2484],[-273,3082],[-346,1471],[-416,3726],[137,1138],[-767,3115],[393,1259],[285,3791],[-129,577],[-402,-4189],[-434,-1001],[311,-2534],[-69,-3036],[-406,-1085],[-1628,-2447],[-1520,-851],[-1012,789],[-258,2086],[267,429],[-760,1956],[-694,3087],[-87,1177],[383,1597],[-110,1291],[397,379],[-183,1458],[364,50],[277,1573],[411,342],[228,1752],[702,-118],[-16,-3249],[425,240],[607,2498],[-384,1562],[-1050,843],[629,147],[400,1001],[-600,267],[-481,-1345],[-125,3490],[-458,-1834],[195,-1307],[-1242,-569],[-216,1520],[-538,-627],[-174,927],[-743,-457]],[[91002,847056],[9,-3988],[145,-1795],[8,-11469],[-1548,26],[56,-1646],[46,-12769],[-726,14],[-2,-927],[-3493,32]],[[85497,814534],[-2026,-32],[-141,995]],[[83330,815497],[-404,601],[-735,-459],[-672,-2022],[-283,-2604],[-1335,126],[-328,2166],[-15,-1517],[-1058,-1636]],[[78500,810152],[-4,1152],[-1002,21],[-4,3164],[-4648,21]],[[72845,830700],[0,8044]],[[72845,838744],[3088,-82],[10,1347],[6637,9993],[4096,-25],[12,2587],[2946,186]],[[89634,852750],[1353,59],[15,-5753]],[[86653,868811],[757,-1570],[2145,14]],[[89555,867255],[87,-6323],[-8,-8182]],[[72845,838744],[1580,8236],[-1,2534],[-536,-83],[-516,926],[-152,2433],[36,3161],[1704,93],[24,3109],[496,-4],[22,3291],[619,95],[97,1432],[588,58],[151,-985],[625,-419],[1536,6612],[4538,-401],[2997,-21]],[[85497,814534],[-37,-10730],[-760,-83],[1,-2090]],[[84701,801631],[-828,17],[9,1987]],[[83882,803635],[-435,1931],[-460,-308],[-1062,1669],[-902,2471],[707,3049],[1129,2748],[471,302]],[[97244,787641],[-970,-3439],[63,995],[907,2444]],[[87222,789210],[-181,-1772],[-422,-410],[603,2182]],[[86635,788749],[223,2200],[232,-961],[-455,-1239]],[[86658,791573],[-369,-3115],[-330,1166],[699,1949]],[[89188,794370],[360,-14],[-243,-1523],[503,637],[-806,-2688],[-814,-3927],[156,-1241],[-672,-1392],[-694,-249],[130,1479],[1249,4306],[686,2953],[145,1659]],[[86769,795107],[-71,-1859],[-324,817],[395,1042]],[[90857,797012],[511,-366],[-57,-1276],[666,500],[124,-712],[-950,-1371],[-533,-1467],[-218,828],[596,1566],[-651,-377],[-25,892],[537,1783]],[[87021,792777],[237,3392],[601,-294],[-413,-4995],[-425,1897]],[[84910,786500],[234,323],[68,9012],[-286,660]],[[84926,796495],[584,1623],[519,-1019],[523,1881],[285,-1347],[30,-1922],[-996,-2869],[605,-1030],[-717,-2215],[-215,-2677],[-634,-420]],[[92921,798974],[-9,-545],[-1147,-2071],[-222,1208],[1378,1408]],[[88339,800844],[383,-576],[-511,-771],[128,1347]],[[86236,802132],[283,-1843],[-421,600],[138,1243]],[[84951,797243],[-1,3142]],[[84950,800385],[697,2105],[-36,-2998],[388,2501],[244,-2671],[-390,-1481],[-418,814],[-484,-1412]],[[86676,805210],[325,-2117],[-624,-286],[299,2403]],[[84951,801507],[-250,124]],[[91002,847056],[976,234],[63,648],[2682,18],[0,-1651],[1595,-292],[4037,-37],[350,-2273],[-454,-2972],[436,-1269],[-270,-2840],[732,-302],[295,1951],[1174,-336],[-15,-1588],[537,-65],[-10,-1550],[466,-24],[-40,-6434],[413,-697],[4,-4218],[2303,15]],[[106276,823374],[-1,-28114]],[[106275,795260],[-589,822],[-1600,-31],[4,1610],[-3847,-34],[-2014,-8871],[13,-855]],[[98242,787901],[-1021,2713],[47,775],[-1005,-33],[-276,1650],[-683,426],[369,3141],[18,2628],[-612,-1565],[-178,-1401],[-659,-2022],[-457,1505],[-714,1071],[-573,-359],[943,3800],[-1116,-764],[259,1691],[-925,-1558],[532,2101],[-1009,-888],[-677,62],[-94,801],[1014,956],[446,1115],[-1050,-704],[-516,1833],[317,3213],[1053,57],[-177,903],[-744,-283],[-1116,-3389],[-359,1426],[-193,-1467],[-586,-1116],[-376,408],[6,3472],[-402,-3497],[-547,-1350],[-586,2075],[324,2590],[504,2086],[123,1742],[-770,-3524],[-194,-1549],[-275,1236],[-413,-4415],[-943,-1986]],[[71670,777076],[233,-1112],[-578,-408],[345,1520]],[[79473,776784],[-279,-2074],[90,2387],[189,-313]],[[75949,796147],[-337,-1236],[224,2635],[113,-1399]],[[84951,801507],[-1,-1122]],[[84951,797243],[-25,-748]],[[84910,786500],[-1245,807],[240,1474],[-371,-167],[-386,-2038],[-206,3702],[-29,-2396],[-481,-1666],[-173,-1732],[-183,2620],[-197,-5326],[-848,3357],[-39,-1545],[420,-800],[-371,-1104],[-68,-1569],[-635,-858],[208,3841],[-673,-5212],[-363,1475],[21,-2088],[-388,-20],[-756,-4011],[-74,2111],[-347,-2231],[-660,934],[-173,-859],[-799,-887],[-18,1049],[-623,715],[205,2741],[546,1203],[718,23],[17,1317],[737,963],[-66,842],[764,2927],[-372,25],[-1227,-2967],[-387,246],[-629,2275],[460,4880],[786,3381],[112,2715],[231,475],[102,3025],[-410,3227],[967,1254],[994,2799],[846,1832],[515,-1977],[448,-352],[796,1052],[346,-814],[1490,-887],[200,-646]],[[78500,810152],[-529,-2655],[-889,-709],[-891,-2927],[268,-2258],[-402,43],[-550,-1341],[-153,-1302],[-582,-1608],[-230,-3803],[-474,-1479],[-1035,411],[707,-1449],[308,-1771],[-381,-2913],[-287,-680],[-1149,-274],[-159,-989],[796,2],[-164,-2224],[-453,-1068],[-562,296],[227,1314],[-337,1411],[33,-1984],[-398,-2576],[-671,-197],[279,-1966],[-1055,-1700],[-61,-2764],[-263,-488],[166,-2860],[277,1050],[1025,35],[413,-1682],[604,-1164],[58,-1233]],[[106275,795260],[0,-1588],[1343,-1612],[173,1644],[1330,-2348],[801,2853],[1723,322],[-345,-4919],[404,-1740],[964,-1648],[226,-2564],[2839,-9771],[300,-4810],[-74,-1471]],[[114794,765672],[-73,1821],[-694,2541],[-828,1292],[163,1473],[-568,-631],[-1881,4464],[-679,903],[-783,1959],[551,424],[542,2604],[-421,3603],[333,1618],[530,-2532],[164,177],[-480,2635],[-360,838],[-174,-1871],[-463,-2242],[-1472,-2407],[-1544,735],[-1623,2726],[527,2089],[-371,3153],[-375,-856],[437,-1616],[-624,-1272],[-2761,2302],[-2696,-711],[-929,-990]],[[106279,946179],[-1,-49412]],[[106278,896767],[-929,-2457],[-130,-1600],[-1321,-3359],[-907,419],[-783,-1693],[-450,408],[-349,-3372],[-325,-1449],[-654,-436],[-1188,-2953],[58,-3794],[-686,-1988],[-821,654]],[[97793,875147],[-205,2151],[358,3325],[-316,719],[513,846],[-159,1080],[-963,-156],[-338,-900],[-1244,1394],[-886,-1195],[-579,221],[-639,-953],[-286,1202],[374,853],[-1289,1884],[-166,1202],[398,1802],[-514,869],[-625,-618],[-460,-1403],[-1061,-1321],[-1073,-10],[-601,-1159],[-3102,6],[49,-11363],[273,317],[853,-2473],[548,-2656]],[[50974,844055],[10,4776],[492,29],[-58,4949],[548,10],[4,1425],[1103,13],[-17,1635],[486,23],[-3,1682],[645,-27],[-89,4840],[-627,-26],[-61,12986],[569,33],[-9,3217],[557,13],[-4,6309],[539,-18],[-5,4867],[-575,-8]],[[54479,890783],[-5,8105],[1752,-14],[2,3093],[2984,34],[5,6543],[2343,38],[1,-3290],[1183,54],[6,3236],[1194,12],[-3,-1576],[600,61],[1,-1630],[1168,-18],[135,4836],[1805,-29],[9,2778],[1841,-6],[167,1643],[-10,6646],[-437,-20],[-10,1684],[-1234,59],[4,4809],[169,1664],[-624,-6],[17,1606],[-634,-27],[7,1645],[-621,10],[151,4212]],[[66445,936935],[6419,-2],[8315,-30],[7299,18],[3888,6],[-10,9096],[4663,309],[4790,-300],[4470,147]],[[97793,875147],[-1158,-1860],[-1437,-204],[-262,-1096],[-804,-486],[-476,-1291],[-576,796],[-732,-1427],[-433,43],[-568,-2104],[-1792,-263]],[[106278,896767],[-2,-73393]],[[79659,983425],[-186,-1458],[-395,1373],[581,85]],[[66445,936935],[-1,525],[-2610,-23],[-8,1900],[-2541,-186],[-15,1669],[-3117,28],[-4016,91],[-18,1253],[-1129,58],[26,-1250],[-2705,21],[-18,1268],[-1182,3],[11,-1279],[-1329,46],[-7,1283],[-2020,165],[0,-1272],[-4957,-98],[15,-3782],[-2411,70]],[[38413,937425],[-1695,2109],[-331,1545],[-1320,2645],[530,804],[403,3101],[38,5653],[2426,-416],[2905,1304],[905,1071],[1222,2916],[1184,4349],[538,5906],[-329,649],[1231,3476],[365,2385],[846,2065],[658,2577],[521,-1587],[1146,663],[1622,2412],[1470,3493],[882,527],[-302,-3710],[454,-2622],[-62,3461],[380,972],[-494,2433],[-541,46],[1260,3273],[1370,1209],[-523,-1007],[415,-852],[3297,1404],[1421,2118],[704,1933],[1322,4593],[409,808],[627,-1392],[915,-472],[117,-1342],[1298,-97],[153,-1576],[-589,-1821],[-1263,-1269],[606,-390],[-400,-1319],[1303,-54],[456,606],[-100,1673],[703,1368],[285,1695],[248,-1305],[706,928],[682,-1755],[-272,-1975],[1375,-2189],[693,2096],[1211,87],[987,691],[970,-830],[279,-2575],[299,2682],[989,-1071],[-561,-2519],[5,-1532],[1009,-525],[-1482,-681],[2474,169],[-499,-2280],[1552,-378],[326,-1080],[240,1607],[1280,271],[-195,-2495],[904,1573],[845,524],[665,1466],[1963,-425],[886,-1703],[688,50],[281,-1515],[1081,464],[877,-2131],[2068,-1579],[1439,785],[1493,-1038],[433,638],[1637,-3240],[1773,-387],[359,912],[3399,1866],[1396,-1344],[1104,-2165],[387,-1505],[1266,-1051],[1131,-2960],[450,854],[588,-630],[-1,-21362]],[[54479,890783],[-578,0],[-10,-1617],[-6227,42],[-4789,-36],[-1,3200],[-592,6],[0,3250],[-769,-10],[8,6456],[-205,26],[-5,6430],[-226,1957]],[[41085,910487],[1578,205],[202,-2556],[-311,-1225],[120,-2178],[-263,-1028],[215,-1763],[590,-1196],[375,540],[1138,-445],[965,699],[321,-1177],[667,-159],[982,797],[546,-2004],[189,2045],[810,3513],[796,-959],[609,527],[-495,1902],[-1494,1020],[-695,-1271],[194,3234],[-839,3465],[-836,788],[-422,2410],[386,1581],[446,30],[876,-3094],[-154,-2498],[448,-1913],[931,-1944],[1114,1832],[1074,-3146],[1511,331],[131,1770],[-331,2163],[-932,-162],[-460,1241],[-885,-263],[-253,-1860],[-717,-285],[-1099,3517],[232,3056],[871,1516],[-974,1717],[-1121,-1076],[-1026,-153],[-389,1249],[-528,-564],[-2241,1824],[-397,5492],[-677,3578],[-1097,2080],[-2353,5735]],[[46592,855663],[131,-1524],[-910,378],[779,1146]],[[20846,858392],[155,-1918],[1767,-2169],[1395,2514],[527,-232],[506,-1478],[153,-2243],[1093,-1044],[302,-1308],[1483,-327],[899,-741],[-443,-2851],[-1263,664],[-756,-2937],[125,-925],[-599,-398],[122,1508],[-581,2032],[-993,769],[95,1587],[-980,2254],[-777,1164],[-1179,-1499],[-406,-1269],[-853,1089],[-307,2233],[515,5525]],[[40155,909679],[-378,-812],[-1698,-1707],[2076,2519]],[[46153,848898],[640,3384],[128,1617],[836,-1042],[-394,-958],[1743,358],[1080,995],[1027,4968],[-512,5797],[-74,2808],[-783,2760],[-729,205],[138,2075],[1089,-245],[770,2178],[52,1988],[-320,1965],[-760,1982],[-574,-2906],[-898,82],[-597,-1411],[-710,-399],[-196,-1163],[-840,-1617],[-252,-2634],[-446,-1194],[-161,3173],[-951,2836],[-459,-1140],[680,-1515],[9,-1792],[-1367,2870],[-2018,-58],[-2019,-2251],[-807,901],[-2508,1784],[-689,2790],[279,1486],[-107,1445],[-749,1760],[-607,2842],[664,-527],[574,1254],[301,1828],[876,-777],[601,-2903],[499,-323],[640,1345],[-382,828],[-828,195],[-166,-711],[-669,2577],[-1941,1613],[-1534,482],[-1420,2818],[-465,461],[786,2442],[578,22],[0,1593],[845,1741],[325,-909],[992,2481],[418,1888],[1044,1672],[643,-1028],[1215,99],[319,783],[-1041,1553],[504,1846],[720,1193],[1099,506],[107,-679],[853,2834],[831,668]],[[129335,693546],[271,-1010],[-142,-1955],[-385,2864],[256,101]],[[133465,694933],[144,-1619],[-433,-1116],[-420,1401],[709,1334]],[[129050,698432],[385,-3029],[-187,-665],[-381,868],[233,1060],[-50,1766]],[[128271,699419],[264,-2151],[-73,-1620],[899,-5179],[112,-1526],[-465,199],[-651,4105],[-450,3522],[53,2603],[311,47]],[[132791,699517],[329,-1553],[-33,-2741],[-745,304],[319,2136],[-199,1261],[329,593]],[[127590,701351],[340,-1447],[-98,-960],[-490,-120],[14,2204],[234,323]],[[126995,702605],[287,-601],[-587,-1676],[300,2277]],[[127349,703974],[-507,-707],[254,1440],[253,-733]],[[126549,705223],[400,-333],[-240,-1814],[-293,1014],[133,1133]],[[127577,705503],[192,-1281],[-213,-946],[-252,1520],[273,707]],[[126975,710441],[673,-1209],[-593,136],[46,-1542],[-470,1638],[344,977]],[[127738,711890],[119,-2595],[-286,1329],[167,1266]],[[132951,712558],[-517,-394],[513,1288],[4,-894]],[[127377,716539],[387,-260],[-15,-2495],[-236,369],[-706,-1255],[-240,-1211],[-257,709],[519,3076],[548,1067]],[[126878,720140],[451,-579],[750,57],[384,-2788],[-191,-1469],[383,-1822],[435,266],[497,-1761],[456,-2620],[47,-3196],[267,734],[169,-1960],[371,-1718],[-850,2044],[-552,-1434],[684,586],[160,-2342],[299,487],[445,-2791],[-464,-922],[454,-352],[205,1480],[89,-3147],[-431,-827],[396,-512],[101,-2502],[-398,-59],[421,-1193],[-183,-2479],[-613,702],[-449,4336],[-561,-35],[258,2640],[-329,-710],[132,1822],[-300,-502],[-725,2251],[-725,264],[28,1947],[514,-21],[-361,1667],[236,2818],[-439,-873],[-448,796],[643,3530],[-238,1458],[-150,5160],[-814,306],[-187,1877],[133,1386]],[[133954,721013],[796,-683],[442,-1861],[432,-443],[118,-1890],[501,-841],[396,492],[280,-2136],[-1,-1873],[-414,-2628],[68,-3449],[429,-5569],[-359,-1662],[-236,-2416],[-441,-2702],[-867,-2699],[-213,1932],[-286,-2060],[-269,663],[-207,4192],[490,1686],[-537,-477],[-156,1948],[582,2169],[-76,7458],[-887,5088],[-486,-470],[-72,869],[-950,-2430],[-396,-118],[344,-1651],[-545,-5283],[-588,1664],[-115,2845]],[[312327,9345],[187,-607]],[[312514,8738],[-15,-1699]],[[312499,7039],[-350,67]],[[312149,7106],[17,912]],[[312166,8018],[43,812]],[[312209,8830],[118,515]],[[312084,13310],[6,-1330]],[[312090,11980],[-147,-91]],[[311943,11889],[-157,1158]],[[311786,13047],[223,739]],[[312009,13786],[75,-476]],[[312224,10808],[178,-1249]],[[312402,9559],[-75,-214]],[[312209,8830],[-202,83]],[[312007,8913],[-56,276]],[[311951,9189],[-19,1837]],[[311932,11026],[292,-218]],[[313107,15065],[-14,-2951]],[[313093,12114],[-156,-33]],[[312937,12081],[5,365]],[[312942,12446],[-35,2687]],[[312907,15133],[200,-68]],[[312774,6524],[70,-1308]],[[312844,5216],[-339,-42]],[[312505,5174],[62,1491]],[[312567,6665],[207,-141]],[[312709,10759],[26,-1200]],[[312735,9559],[-333,0]],[[312224,10808],[123,645]],[[312347,11453],[362,-694]],[[315123,11875],[54,-128]],[[315177,11747],[78,-1803]],[[315255,9944],[-163,-1770]],[[315092,8174],[-119,1033]],[[314973,9207],[-63,762]],[[314910,9969],[144,1736]],[[315054,11705],[69,170]],[[314670,11208],[37,-330]],[[314707,10878],[60,-642]],[[314767,10236],[-199,-737]],[[314568,9499],[-72,1129]],[[314496,10628],[174,580]],[[314052,6833],[264,-476]],[[314316,6357],[-19,-702]],[[314297,5655],[-318,75]],[[313979,5730],[73,1103]],[[312567,6665],[-68,374]],[[312514,8738],[144,137]],[[312658,8875],[116,-2351]],[[312942,12446],[-192,449]],[[312750,12895],[-16,-17]],[[312734,12878],[-7,2191]],[[312727,15069],[180,64]],[[313370,8907],[-65,-415]],[[313305,8492],[-209,82]],[[313096,8574],[-80,-28]],[[313016,8546],[-82,705]],[[312934,9251],[27,1093]],[[312961,10344],[345,-244],[64,-1193]],[[313305,8492],[-14,-2847]],[[313291,5645],[-154,398]],[[313137,6043],[-41,2531]],[[314464,12204],[-98,-1501]],[[314366,10703],[-105,-151]],[[314261,10552],[-75,983]],[[314186,11535],[35,729]],[[314221,12264],[129,637]],[[314350,12901],[114,-697]],[[314016,15104],[-14,-2136]],[[314002,12968],[-54,9]],[[313948,12977],[-196,-375]],[[313752,12602],[-27,1006]],[[313725,13608],[25,1394]],[[313750,15002],[266,102]],[[313604,15085],[-4,-1775]],[[313600,13310],[-8,-955]],[[313592,12355],[-45,-184]],[[313547,12171],[-454,-57]],[[313107,15065],[497,20]],[[314264,15070],[-76,-2600]],[[314188,12470],[-186,498]],[[314016,15104],[248,-34]],[[315464,13512],[1,-2420]],[[315465,11092],[-66,434]],[[315399,11526],[-159,1610]],[[315240,13136],[-103,1307]],[[315137,14443],[122,138]],[[315259,14581],[205,-1069]],[[314938,14053],[76,-2457]],[[315014,11596],[-176,-329]],[[314838,11267],[34,2700]],[[314872,13967],[51,292]],[[314923,14259],[15,-206]],[[315375,10330],[63,-1609]],[[315438,8721],[6,-427]],[[315444,8294],[-234,-827]],[[315210,7467],[-116,640]],[[315094,8107],[-2,67]],[[315255,9944],[120,386]],[[313784,8891],[255,-1303]],[[314039,7588],[13,-755]],[[313979,5730],[-242,-150]],[[313737,5580],[-39,3313]],[[313698,8893],[16,19]],[[313714,8912],[70,-21]],[[315465,11092],[-90,-762]],[[315177,11747],[222,-221]],[[313725,9097],[-11,-185]],[[313698,8893],[-269,126]],[[313429,9019],[231,2602]],[[313660,11621],[65,-2524]],[[314361,14911],[31,-1699]],[[314392,13212],[-42,-311]],[[314221,12264],[-33,206]],[[314264,15070],[97,-159]],[[312306,11771],[41,-318]],[[311932,11026],[-107,569]],[[311825,11595],[118,294]],[[312090,11980],[216,-209]],[[312937,12081],[24,-1737]],[[312934,9251],[-27,-13]],[[312907,9238],[-172,321]],[[312709,10759],[41,2136]],[[312505,5174],[-359,-115]],[[312146,5059],[3,2047]],[[314634,8728],[-21,-893]],[[314613,7835],[-92,-362]],[[314521,7473],[-160,1420]],[[314361,8893],[201,525]],[[314562,9418],[72,-690]],[[312295,14639],[81,-1251]],[[312376,13388],[-70,-1617]],[[312084,13310],[211,1329]],[[312007,8913],[159,-895]],[[312146,5059],[-281,903],[86,3227]],[[315210,7467],[60,-308]],[[315270,7159],[221,-1461]],[[315491,5698],[-308,-32]],[[315009,6674],[174,-1008]],[[315009,6674],[81,1384]],[[315090,8058],[4,49]],[[314186,11535],[-217,-675]],[[313969,10860],[-21,2117]],[[312009,13786],[157,1824]],[[312166,15610],[129,-971]],[[313137,6043],[-273,-821]],[[312864,5222],[152,3324]],[[314838,11267],[-131,-389]],[[314670,11208],[-8,753]],[[314662,11961],[28,1346]],[[314690,13307],[76,779]],[[314766,14086],[106,-119]],[[313547,12171],[113,-550]],[[313429,9019],[-59,-112]],[[314973,9207],[-339,-479]],[[314562,9418],[6,81]],[[314767,10236],[143,-267]],[[314776,6994],[-112,-1632]],[[314664,5362],[-367,293]],[[314316,6357],[205,1116]],[[314613,7835],[163,-841]],[[312679,13385],[55,-507]],[[312376,13388],[303,-3]],[[315090,8058],[-314,-1064]],[[314662,11961],[-198,243]],[[314392,13212],[143,200]],[[314535,13412],[155,-105]],[[312679,13385],[-109,1772]],[[312570,15157],[157,-88]],[[313752,12602],[-160,-247]],[[313600,13310],[125,298]],[[314496,10628],[-130,75]],[[313604,15085],[146,-83]],[[315240,13136],[-117,-1261]],[[315054,11705],[-40,-109]],[[314938,14053],[199,390]],[[315043,5450],[-34,1224]],[[315043,5450],[-379,-88]],[[312864,5222],[-20,-6]],[[312658,8875],[249,363]],[[314001,9350],[196,-57]],[[314197,9293],[164,-400]],[[314039,7588],[-38,1762]],[[313784,8891],[217,459]],[[313969,10860],[-244,-1763]],[[313737,5580],[-446,65]],[[314261,10552],[-64,-1259]],[[312166,15610],[404,-453]],[[315579,8262],[226,-901]],[[315805,7361],[-150,-1087]],[[315655,6274],[-385,885]],[[315444,8294],[135,-32]],[[314849,14669],[-83,-583]],[[314535,13412],[108,1312]],[[314643,14724],[206,-55]],[[318309,12804],[169,-865],[-544,829],[375,36]],[[316158,12800],[-233,-1215]],[[315925,11585],[-15,-114]],[[315910,11471],[23,1757]],[[315933,13228],[225,-428]],[[315714,13935],[-106,-832]],[[315608,13103],[-144,409]],[[315259,14581],[455,-646]],[[315655,6274],[-164,-576]],[[315910,11471],[-22,-197]],[[315888,11274],[-160,-129]],[[315728,11145],[-34,40]],[[315694,11185],[-86,1918]],[[315714,13935],[219,-707]],[[315888,11274],[293,-1348]],[[316181,9926],[-216,-625]],[[315965,9301],[-242,491]],[[315723,9792],[5,1353]],[[315723,9792],[-144,-1530]],[[315438,8721],[211,2085]],[[315649,10806],[45,379]],[[315649,10806],[-184,286]],[[316256,11346],[-331,239]],[[316158,12800],[154,393],[-56,-1847]],[[316256,11346],[125,-1004],[-200,-416]],[[315965,9301],[-160,-1940]],[[316936,9055],[328,-560],[-757,-909],[-91,685],[520,784]],[[318661,1986],[376,-1085],[-740,-781],[24,1181],[340,685]],[[314361,14911],[282,-187]],[[123928,718235],[-2,-1610]],[[119111,747595],[-67,-5]],[[124871,753168],[418,537]],[[71986,766650],[158,17]],[[56428,729876],[0,-164]],[[126985,748600],[107,525]],[[126818,747787],[-267,-754]],[[61672,65312],[272,-274]],[[314849,14669],[74,-410]],[[315183,5666],[-140,-216]],[[311825,11595],[-39,1452]],[[253891,243332],[-3,424]],[[297006,439075],[21,-79]],[[273150,218795],[-218,2571],[-109,2556],[341,-5125]],[[273164,218797],[-14,-2]],[[275036,140768],[-16,1]],[[274871,140335],[3,-76]],[[268559,210807],[-4,-26]],[[258410,236520],[0,355]],[[272837,223331],[-14,0]],[[274173,206960],[19,0]],[[275584,178509],[-145,-584]],[[275994,173067],[-63,2]],[[275922,173070],[-37,2]],[[272518,253791],[20,18]],[[272125,254343],[81,-132]],[[256680,462075],[-142,-2897],[-384,-10769]],[[256154,448409],[-883,-7],[0,-983]],[[254488,462036],[2192,39]],[[256154,448409],[1065,-7]],[[249637,222999],[-31,137]],[[248195,214699],[-70,-748]],[[247232,214954],[0,260]],[[247232,215317],[15,318]],[[301353,460902],[-185,-724]],[[301101,460137],[28,-397]],[[301793,457791],[116,-445]],[[285769,400843],[123,37]],[[264771,527003],[-281,49]],[[267568,452013],[-852,-4103],[-108,-17]],[[266608,447893],[-26,-6]],[[266582,447887],[-16,-1]],[[266566,447886],[-30,-6]],[[266536,447880],[-6,-1]],[[256680,462075],[-375,16538],[12,3500],[187,5880],[609,12037],[445,5943],[542,3980],[721,3116],[-1423,3912],[-936,-37],[-588,-3704],[-267,-718],[-95,-2358],[-427,343]],[[247207,537862],[1281,13508]],[[248488,551370],[1322,13439]],[[249810,564809],[408,-727],[1834,5024],[865,1148],[2109,-5688],[7666,-20686],[271,-4739],[574,-3230],[509,900],[683,396],[-47,-2079],[105,-3301],[426,-3438],[360,1156],[708,-243],[385,-2004],[-455,-3293],[3005,-8985],[1103,-32532],[-926,-12370],[-34,-3060],[-156,-2886],[-328,-976],[-521,-3379],[-656,-1036],[-180,-1472],[-60,-3681],[110,-1615]],[[252129,567028],[-1583,-4120],[166,-1627],[582,1037],[-142,551],[872,1783],[743,3451],[-638,-1075]],[[248488,551370],[-1963,212],[-2260,-6869],[-1513,-4210]],[[249572,564554],[238,255]],[[282592,309414],[10,-65]],[[289029,404122],[-16,45]],[[293679,426705],[-79,470]],[[286839,484138],[-17,6]],[[276897,457877],[-3,4558]],[[276894,462435],[2305,5850],[8,2378],[-220,544],[-164,5160],[-363,3502],[1422,3362],[1923,0],[3353,0],[997,8619],[109,340]],[[267767,442766],[-50,-4]],[[267568,452013],[114,-1687],[1085,-3482],[787,0],[3209,9884],[2039,2175]],[[274802,458903],[-16,-6460]],[[274802,458903],[1209,1289],[883,2243]],[[275537,276578],[-263,-628]],[[273916,275250],[-11,-827]],[[273920,274333],[-20,-184]],[[228015,167092],[147,-2633],[-252,2651],[105,-18]],[[228180,184437],[70,-94]],[[229313,193901],[29,366]],[[230757,204203],[-190,587]],[[229828,205636],[-9,-8]],[[229431,197365],[-30,-1032]],[[228487,190418],[-16,-156]],[[286226,362368],[89,-504]],[[283710,365528],[174,-301]],[[286242,357857],[63,-1057]],[[286254,356334],[304,311]],[[286558,356645],[136,36]],[[284458,394060],[-9,-959]],[[151607,571679],[12,2074],[1993,-3664],[1312,-1342],[815,1107],[372,2584],[-289,2342],[-137,2706],[722,1361],[0,1194],[-873,3181],[648,-1]],[[156182,583221],[153,1]],[[156335,583222],[770,0]],[[253979,502714],[-8,-1]],[[242231,539612],[9,872]],[[242245,540522],[75,212]],[[242329,540727],[187,592]],[[242526,541319],[224,-823]],[[288652,406259],[12,7]],[[288613,408309],[-8,430]],[[290026,386798],[-57,0]],[[287992,379951],[5,43]],[[287430,351414],[50,-2]],[[287480,351412],[118,4]],[[287598,351416],[-258,-2]],[[280248,301457],[-33,176]],[[156182,583221],[153,1]]],"transform":{"scale":[0.00035892617892657177,0.00005371486851395936],"translate":[-179.1473400003406,17.67439566600018]}} From 2ed5e2a3d7b152133bcdd7ddfd1736d209a3aed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 9 Jan 2014 14:50:32 +0100 Subject: [PATCH 816/919] Pass pixelRatio to canvasFunction --- examples/d3.js | 4 +++- src/ol/canvasfunction.js | 4 ++-- src/ol/source/imagecanvassource.js | 11 ++++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/examples/d3.js b/examples/d3.js index b5c9daaca9..9ca323ad01 100644 --- a/examples/d3.js +++ b/examples/d3.js @@ -38,11 +38,13 @@ d3.json('data/us.json', function(error, us) { * This function uses d3 to render the topojson features to a canvas. * @param {ol.Extent} extent Extent. * @param {number} resolution Resolution. + * @param {number} pixelRatio Pixel ratio. * @param {ol.Size} size Size. * @param {ol.proj.Projection} projection Projection. * @return {HTMLCanvasElement} */ - var canvasFunction = function(extent, resolution, size, projection) { + var canvasFunction = function(extent, resolution, pixelRatio, + size, projection) { var canvasWidth = size[0]; var canvasHeight = size[1]; diff --git a/src/ol/canvasfunction.js b/src/ol/canvasfunction.js index 878d79645c..202952effa 100644 --- a/src/ol/canvasfunction.js +++ b/src/ol/canvasfunction.js @@ -2,7 +2,7 @@ goog.provide('ol.CanvasFunctionType'); /** - * @typedef {function(this:ol.source.ImageCanvas, ol.Extent, number, ol.Size, - * ol.proj.Projection): HTMLCanvasElement} + * @typedef {function(this:ol.source.ImageCanvas, ol.Extent, number, + * number, ol.Size, ol.proj.Projection): HTMLCanvasElement} */ ol.CanvasFunctionType; diff --git a/src/ol/source/imagecanvassource.js b/src/ol/source/imagecanvassource.js index 478a4c00d6..35e7e5c1f1 100644 --- a/src/ol/source/imagecanvassource.js +++ b/src/ol/source/imagecanvassource.js @@ -65,12 +65,13 @@ ol.source.ImageCanvas.prototype.getImage = var height = (extent[3] - extent[1]) / resolution; var size = [width * pixelRatio, height * pixelRatio]; - var canvasElement = this.canvasFunction_(extent, resolution, size, - projection); - canvas = new ol.ImageCanvas(extent, resolution, pixelRatio, - this.getAttributions(), canvasElement); + var canvasElement = this.canvasFunction_( + extent, resolution, pixelRatio, size, projection); + if (!goog.isNull(canvasElement)) { + canvas = new ol.ImageCanvas(extent, resolution, pixelRatio, + this.getAttributions(), canvasElement); + } this.canvas_ = canvas; return canvas; - }; From e4b5f309eb8a331ecc7bb5520442f068248bdb61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 9 Jan 2014 14:51:27 +0100 Subject: [PATCH 817/919] Pass state option to image source constructors --- src/objectliterals.jsdoc | 1 + src/ol/source/imagecanvassource.js | 4 +++- src/ol/source/imagesource.js | 6 ++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 1932785769..b8c7700e6c 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -635,6 +635,7 @@ * on. * @property {Array.|undefined} resolutions Resolutions. If specified, * new canvases will be created for these resolutions only. + * @property {ol.source.State|undefined} state Source state. */ /** diff --git a/src/ol/source/imagecanvassource.js b/src/ol/source/imagecanvassource.js index 35e7e5c1f1..221104d822 100644 --- a/src/ol/source/imagecanvassource.js +++ b/src/ol/source/imagecanvassource.js @@ -13,12 +13,14 @@ goog.require('ol.source.Image'); * @param {olx.source.ImageCanvasOptions} options */ ol.source.ImageCanvas = function(options) { + goog.base(this, { attributions: options.attributions, extent: options.extent, logo: options.logo, projection: options.projection, - resolutions: options.resolutions + resolutions: options.resolutions, + state: options.state }); /** diff --git a/src/ol/source/imagesource.js b/src/ol/source/imagesource.js index 4374261597..51b8f1f0b3 100644 --- a/src/ol/source/imagesource.js +++ b/src/ol/source/imagesource.js @@ -14,7 +14,8 @@ goog.require('ol.source.Source'); * extent: (null|ol.Extent|undefined), * logo: (string|undefined), * projection: ol.proj.ProjectionLike, - * resolutions: (Array.|undefined)}} + * resolutions: (Array.|undefined), + * state: (ol.source.State|undefined)}} */ ol.source.ImageOptions; @@ -32,7 +33,8 @@ ol.source.Image = function(options) { attributions: options.attributions, extent: options.extent, logo: options.logo, - projection: options.projection + projection: options.projection, + state: options.state }); /** From 8c1f7f9b29638e8c08105212a00dacd44d6ce2fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 9 Jan 2014 14:51:59 +0100 Subject: [PATCH 818/919] Add ol.source.ImageVector --- src/objectliterals.jsdoc | 14 ++ src/ol/source/imagevectorsource.exports | 1 + src/ol/source/imagevectorsource.js | 213 ++++++++++++++++++++++++ 3 files changed, 228 insertions(+) create mode 100644 src/ol/source/imagevectorsource.exports create mode 100644 src/ol/source/imagevectorsource.js diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index b8c7700e6c..ed43c96a2f 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -638,6 +638,20 @@ * @property {ol.source.State|undefined} state Source state. */ +/** + * @typedef {Object} olx.source.ImageVectorOptions + * @property {Array.|undefined} attributions Attributions. + * @property {ol.Extent|undefined} extent Extent. + * @property {string|undefined} logo Logo. + * @property {ol.proj.ProjectionLike} projection Projection. + * @property {number|undefined} ratio Ratio. 1 means canvases are the size + * of the map viewport, 2 means twice the size of the map viewport, and so + * on. + * @property {Array.|undefined} resolutions Resolutions. If specified, + * new canvases will be created for these resolutions only. + * @property {ol.source.Vector} source Vector source. + */ + /** * @typedef {Object} olx.source.ImageWMSOptions * @property {Array.|undefined} attributions Attributions. diff --git a/src/ol/source/imagevectorsource.exports b/src/ol/source/imagevectorsource.exports new file mode 100644 index 0000000000..17ff190f77 --- /dev/null +++ b/src/ol/source/imagevectorsource.exports @@ -0,0 +1 @@ +@exportSymbol ol.source.ImageVector diff --git a/src/ol/source/imagevectorsource.js b/src/ol/source/imagevectorsource.js new file mode 100644 index 0000000000..34b70ec949 --- /dev/null +++ b/src/ol/source/imagevectorsource.js @@ -0,0 +1,213 @@ +goog.provide('ol.source.ImageVector'); + +goog.require('goog.asserts'); +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); +goog.require('goog.events'); +goog.require('goog.events.EventType'); +goog.require('goog.vec.Mat4'); +goog.require('ol.extent'); +goog.require('ol.render.canvas.ReplayGroup'); +goog.require('ol.renderer.vector'); +goog.require('ol.source.ImageCanvas'); +goog.require('ol.source.Vector'); +goog.require('ol.style.ImageState'); +goog.require('ol.vec.Mat4'); + + + +/** + * @constructor + * @extends {ol.source.ImageCanvas} + * @param {olx.source.ImageVectorOptions} options Options. + */ +ol.source.ImageVector = function(options) { + + /** + * @private + * @type {ol.source.Vector} + */ + this.source_ = options.source; + + /** + * @private + * @type {ol.feature.StyleFunction} + */ + this.styleFunction_ = options.styleFunction; + + /** + * @private + * @type {!goog.vec.Mat4.Number} + */ + this.transform_ = goog.vec.Mat4.createNumber(); + + /** + * @private + * @type {HTMLCanvasElement} + */ + this.canvasElement_ = /** @type {HTMLCanvasElement} */ + (goog.dom.createElement(goog.dom.TagName.CANVAS)); + + /** + * @private + * @type {CanvasRenderingContext2D} + */ + this.canvasContext_ = /** @type {CanvasRenderingContext2D} */ + (this.canvasElement_.getContext('2d')); + + /** + * @private + * @type {ol.Size} + */ + this.canvasSize_ = [0, 0]; + + goog.base(this, { + attributions: options.attributions, + canvasFunction: goog.bind(this.canvasFunctionInternal_, this), + extent: options.extent, + logo: options.logo, + projection: options.projection, + ratio: options.ratio, + resolutions: options.resolutions, + state: this.source_.getState() + }); + + goog.events.listen(this.source_, goog.events.EventType.CHANGE, + this.handleSourceChange_, undefined, this); + +}; +goog.inherits(ol.source.ImageVector, ol.source.ImageCanvas); + + +/** + * @param {ol.Extent} extent Extent. + * @param {number} resolution Resolution. + * @param {number} pixelRatio Pixel ratio. + * @param {ol.Size} size Size. + * @param {ol.proj.Projection} projection Projection; + * @return {HTMLCanvasElement} Canvas element. + * @private + */ +ol.source.ImageVector.prototype.canvasFunctionInternal_ = + function(extent, resolution, pixelRatio, size, projection) { + + var tolerance = resolution / (2 * pixelRatio); + var replayGroup = new ol.render.canvas.ReplayGroup( + pixelRatio, tolerance); + + var loading = false; + this.source_.forEachFeatureInExtent(extent, + /** + * @param {ol.Feature} feature Feature. + */ + function(feature) { + loading = loading || + this.renderFeature_(feature, resolution, pixelRatio, replayGroup); + }, this); + replayGroup.finish(); + + if (loading) { + return null; + } + + if (this.canvasSize_[0] != size[0] || this.canvasSize_[1] != size[1]) { + this.canvasElement_.width = size[0]; + this.canvasElement_.height = size[1]; + this.canvasSize_[0] = size[0]; + this.canvasSize_[1] = size[1]; + } else { + this.canvasContext_.clearRect(0, 0, size[0], size[1]); + } + + var transform = this.getTransform_(ol.extent.getCenter(extent), + resolution, pixelRatio, size); + replayGroup.replay(this.canvasContext_, extent, transform, + goog.functions.TRUE); + + return this.canvasElement_; +}; + + +/** + * @param {ol.Coordinate} center Center. + * @param {number} resolution Resolution. + * @param {number} pixelRatio Pixel ratio. + * @param {ol.Size} size Size. + * @return {!goog.vec.Mat4.Number} Transform. + * @private + */ +ol.source.ImageVector.prototype.getTransform_ = + function(center, resolution, pixelRatio, size) { + return ol.vec.Mat4.makeTransform2D(this.transform_, + size[0] / 2, size[1] / 2, + pixelRatio / resolution, -pixelRatio / resolution, + 0, + -center[0], -center[1]); +}; + + +/** + * Handle changes in image style state. + * @param {goog.events.Event} event Image style change event. + * @private + */ +ol.source.ImageVector.prototype.handleImageStyleChange_ = + function(event) { + var imageStyle = /** @type {ol.style.Image} */ (event.target); + if (imageStyle.getImageState() == ol.style.ImageState.LOADED) { + this.dispatchChangeEvent(); + } +}; + + +/** + * @private + */ +ol.source.ImageVector.prototype.handleSourceChange_ = function() { + // setState will trigger a CHANGE event, so we always rely + // change events by calling setState. + this.setState(this.source_.getState()); +}; + + +/** + * @param {ol.Feature} feature Feature. + * @param {number} resolution Resolution. + * @param {number} pixelRatio Pixel ratio. + * @param {ol.render.canvas.ReplayGroup} replayGroup Replay group. + * @return {boolean} `true` if an image is loading. + * @private + */ +ol.source.ImageVector.prototype.renderFeature_ = + function(feature, resolution, pixelRatio, replayGroup) { + var loading = false; + var styles = this.styleFunction_(feature, resolution); + if (!goog.isDefAndNotNull(styles)) { + return false; + } + // simplify to a tolerance of half a device pixel + var squaredTolerance = + resolution * resolution / (4 * pixelRatio * pixelRatio); + var i, ii, style, imageStyle, imageState; + for (i = 0, ii = styles.length; i < ii; ++i) { + style = styles[i]; + imageStyle = style.getImage(); + if (!goog.isNull(imageStyle)) { + if (imageStyle.getImageState() == ol.style.ImageState.IDLE) { + goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE, + this.handleImageStyleChange_, false, this); + imageStyle.load(); + } else if (imageStyle.getImageState() == ol.style.ImageState.LOADED) { + ol.renderer.vector.renderFeature( + replayGroup, feature, style, squaredTolerance, feature); + } + goog.asserts.assert( + imageStyle.getImageState() != ol.style.ImageState.IDLE); + loading = imageStyle.getImageState() == ol.style.ImageState.LOADING; + } else { + ol.renderer.vector.renderFeature( + replayGroup, feature, style, squaredTolerance, feature); + } + } + return loading; +}; From d2d4e5e6989d6e7b7d8798a8622cab5355bca902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 9 Jan 2014 14:52:12 +0100 Subject: [PATCH 819/919] Add image vector layer example --- examples/image-vector-layer.html | 53 ++++++++++++++++++++++++++++++++ examples/image-vector-layer.js | 46 +++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 examples/image-vector-layer.html create mode 100644 examples/image-vector-layer.js diff --git a/examples/image-vector-layer.html b/examples/image-vector-layer.html new file mode 100644 index 0000000000..b8a37b6d5f --- /dev/null +++ b/examples/image-vector-layer.html @@ -0,0 +1,53 @@ + + + + + + + + + + + Image vector layer example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Image vector example

+

Example of an image vector layer.

+
+

This example uses a ol.source.ImageVector source. That source gets vector features from the + ol.source.Vector it's configured with and draw these features to an HTML5 canvas element that + is then used as the image of an image layer.

+

See the image-vector-layer.js source to see how this is done.

+
+
vector, image
+
+ +
+ +
+ + + + + + diff --git a/examples/image-vector-layer.js b/examples/image-vector-layer.js new file mode 100644 index 0000000000..76e6e83dae --- /dev/null +++ b/examples/image-vector-layer.js @@ -0,0 +1,46 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHints'); +goog.require('ol.View2D'); +goog.require('ol.layer.Image'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.GeoJSON'); +goog.require('ol.source.ImageVector'); +goog.require('ol.source.MapQuest'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); + + +var styleArray = [new ol.style.Style({ + fill: new ol.style.Fill({ + color: 'rgba(255, 255, 255, 0.6)' + }), + stroke: new ol.style.Stroke({ + color: '#319FD3', + width: 1 + }) +})]; + +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + source: new ol.source.MapQuest({layer: 'sat'}) + }), + new ol.layer.Image({ + source: new ol.source.ImageVector({ + source: new ol.source.GeoJSON({ + url: 'data/countries.geojson' + }), + styleFunction: function(feature, resolution) { + return styleArray; + } + }) + }) + ], + renderers: ol.RendererHints.createFromQueryData(), + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 1 + }) +}); From 235af49f0b45c7b2a15706513df603bbb84a21f1 Mon Sep 17 00:00:00 2001 From: oterral Date: Fri, 10 Jan 2014 13:53:43 +0100 Subject: [PATCH 820/919] Add goog.provide('ol.geom.GeometryType') --- src/ol/format/geojsonformat.js | 1 + src/ol/format/kmlformat.js | 1 + src/ol/geom/geometry.js | 1 + src/ol/geom/geometrycollection.js | 1 + src/ol/geom/linearring.js | 1 + src/ol/geom/linestring.js | 1 + src/ol/geom/multilinestring.js | 1 + src/ol/geom/multipoint.js | 1 + src/ol/geom/multipolygon.js | 1 + src/ol/geom/point.js | 1 + src/ol/geom/polygon.js | 1 + src/ol/interaction/drawinteraction.js | 1 + 12 files changed, 12 insertions(+) diff --git a/src/ol/format/geojsonformat.js b/src/ol/format/geojsonformat.js index 8d975f6a4c..dea0348f19 100644 --- a/src/ol/format/geojsonformat.js +++ b/src/ol/format/geojsonformat.js @@ -9,6 +9,7 @@ goog.require('goog.object'); goog.require('ol.Feature'); goog.require('ol.format.JSON'); goog.require('ol.geom.GeometryCollection'); +goog.require('ol.geom.GeometryType'); goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString'); goog.require('ol.geom.MultiPoint'); diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index aff6e5c5ad..cde7c22b9d 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -21,6 +21,7 @@ goog.require('ol.Feature'); goog.require('ol.feature'); goog.require('ol.format.XML'); goog.require('ol.geom.GeometryCollection'); +goog.require('ol.geom.GeometryType'); goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString'); goog.require('ol.geom.MultiPoint'); diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index ca079dd89c..bb93809b62 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -1,4 +1,5 @@ goog.provide('ol.geom.Geometry'); +goog.provide('ol.geom.GeometryType'); goog.require('goog.asserts'); goog.require('goog.events.EventType'); diff --git a/src/ol/geom/geometrycollection.js b/src/ol/geom/geometrycollection.js index 3357e84184..e37e0dd04d 100644 --- a/src/ol/geom/geometrycollection.js +++ b/src/ol/geom/geometrycollection.js @@ -5,6 +5,7 @@ goog.require('goog.asserts'); goog.require('goog.object'); goog.require('ol.extent'); goog.require('ol.geom.Geometry'); +goog.require('ol.geom.GeometryType'); diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index 622e56776d..1772b5f0ab 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.LinearRing'); goog.require('ol.extent'); +goog.require('ol.geom.GeometryType'); goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index ead7a2ad91..acc3ac8053 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.LineString'); goog.require('ol.extent'); +goog.require('ol.geom.GeometryType'); goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); goog.require('ol.geom.flat'); diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 98cfb3402d..c649e41a52 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -3,6 +3,7 @@ goog.provide('ol.geom.MultiLineString'); goog.require('goog.array'); goog.require('goog.asserts'); goog.require('ol.extent'); +goog.require('ol.geom.GeometryType'); goog.require('ol.geom.LineString'); goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index 35185d244e..1cc711b710 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.MultiPoint'); goog.require('ol.extent'); +goog.require('ol.geom.GeometryType'); goog.require('ol.geom.Point'); goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.flat'); diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 87adb0c827..27727e70a4 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.MultiPolygon'); goog.require('ol.extent'); +goog.require('ol.geom.GeometryType'); goog.require('ol.geom.Polygon'); goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index 57e10e4fd5..4e357f7e5a 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -2,6 +2,7 @@ goog.provide('ol.geom.Point'); goog.require('goog.asserts'); goog.require('ol.extent'); +goog.require('ol.geom.GeometryType'); goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.flat'); diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index b6d67d87fd..50b2f276e4 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -1,6 +1,7 @@ goog.provide('ol.geom.Polygon'); goog.require('ol.extent'); +goog.require('ol.geom.GeometryType'); goog.require('ol.geom.LinearRing'); goog.require('ol.geom.SimpleGeometry'); goog.require('ol.geom.closest'); diff --git a/src/ol/interaction/drawinteraction.js b/src/ol/interaction/drawinteraction.js index b555411ae1..8391c27b09 100644 --- a/src/ol/interaction/drawinteraction.js +++ b/src/ol/interaction/drawinteraction.js @@ -7,6 +7,7 @@ goog.require('ol.Feature'); goog.require('ol.Map'); goog.require('ol.MapBrowserEvent'); goog.require('ol.MapBrowserEvent.EventType'); +goog.require('ol.geom.GeometryType'); goog.require('ol.geom.LineString'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); From f27e42068f3841718885842ee5f3e97643a2e3db Mon Sep 17 00:00:00 2001 From: oterral Date: Fri, 10 Jan 2014 14:01:35 +0100 Subject: [PATCH 821/919] Manage multi geometries modes --- src/ol/interaction/drawinteraction.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/ol/interaction/drawinteraction.js b/src/ol/interaction/drawinteraction.js index 8391c27b09..c36d0116d5 100644 --- a/src/ol/interaction/drawinteraction.js +++ b/src/ol/interaction/drawinteraction.js @@ -9,6 +9,9 @@ goog.require('ol.MapBrowserEvent'); goog.require('ol.MapBrowserEvent.EventType'); goog.require('ol.geom.GeometryType'); goog.require('ol.geom.LineString'); +goog.require('ol.geom.MultiLineString'); +goog.require('ol.geom.MultiPoint'); +goog.require('ol.geom.MultiPolygon'); goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); goog.require('ol.interaction.Interaction'); @@ -396,7 +399,10 @@ ol.interaction.Draw.prototype.finishDrawing_ = function(event) { goog.asserts.assert(!goog.isNull(sketchFeature)); var coordinates; var geometry = sketchFeature.getGeometry(); - if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) { + if (this.mode_ === ol.interaction.DrawMode.POINT) { + goog.asserts.assertInstanceof(geometry, ol.geom.Point); + coordinates = geometry.getCoordinates(); + } else if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) { goog.asserts.assertInstanceof(geometry, ol.geom.LineString); coordinates = geometry.getCoordinates(); // remove the redundant last point @@ -408,6 +414,16 @@ ol.interaction.Draw.prototype.finishDrawing_ = function(event) { // force clockwise order for exterior ring sketchFeature.setGeometry(new ol.geom.Polygon(coordinates)); } + + // cast multi-part geometries + if (this.type_ === ol.geom.GeometryType.MULTI_POINT) { + sketchFeature.setGeometry(new ol.geom.MultiPoint([coordinates])); + } else if (this.type_ === ol.geom.GeometryType.MULTI_LINE_STRING) { + sketchFeature.setGeometry(new ol.geom.MultiLineString([coordinates])); + } else if (this.type_ === ol.geom.GeometryType.MULTI_POLYGON) { + sketchFeature.setGeometry(new ol.geom.MultiPolygon([coordinates])); + } + if (this.layer_) { this.layer_.getSource().addFeature(sketchFeature); } From 80962b0bf9e0465918eab25fb0d65636114ec583 Mon Sep 17 00:00:00 2001 From: oterral Date: Fri, 10 Jan 2014 14:02:36 +0100 Subject: [PATCH 822/919] Add draw interaction tests --- .../spec/ol/interaction/drawinteraction.test.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename {old/test => test}/spec/ol/interaction/drawinteraction.test.js (96%) diff --git a/old/test/spec/ol/interaction/drawinteraction.test.js b/test/spec/ol/interaction/drawinteraction.test.js similarity index 96% rename from old/test/spec/ol/interaction/drawinteraction.test.js rename to test/spec/ol/interaction/drawinteraction.test.js index 8da33d6f95..43e5568042 100644 --- a/old/test/spec/ol/interaction/drawinteraction.test.js +++ b/test/spec/ol/interaction/drawinteraction.test.js @@ -80,7 +80,7 @@ describe('ol.interaction.Draw', function() { simulateEvent('mousedown', 10, 20); simulateEvent('mouseup', 10, 20); simulateEvent('click', 10, 20); - var features = source.getFeatures(); + var features = source.getAllFeatures(); expect(features).to.have.length(1); var geometry = features[0].getGeometry(); expect(geometry).to.be.a(ol.geom.Point); @@ -93,7 +93,7 @@ describe('ol.interaction.Draw', function() { simulateEvent('mousemove', 15, 20); simulateEvent('mouseup', 15, 20); simulateEvent('click', 15, 20); - var features = source.getFeatures(); + var features = source.getAllFeatures(); expect(features).to.have.length(0); }); @@ -113,7 +113,7 @@ describe('ol.interaction.Draw', function() { simulateEvent('mousedown', 30, 15); simulateEvent('mouseup', 30, 15); simulateEvent('click', 30, 15); - var features = source.getFeatures(); + var features = source.getAllFeatures(); expect(features).to.have.length(1); var geometry = features[0].getGeometry(); expect(geometry).to.be.a(ol.geom.MultiPoint); @@ -149,7 +149,7 @@ describe('ol.interaction.Draw', function() { simulateEvent('mouseup', 30, 20); simulateEvent('click', 30, 20); - var features = source.getFeatures(); + var features = source.getAllFeatures(); expect(features).to.have.length(1); var geometry = features[0].getGeometry(); expect(geometry).to.be.a(ol.geom.LineString); @@ -182,7 +182,7 @@ describe('ol.interaction.Draw', function() { simulateEvent('mouseup', 30, 20); simulateEvent('click', 30, 20); - var features = source.getFeatures(); + var features = source.getAllFeatures(); expect(features).to.have.length(1); var geometry = features[0].getGeometry(); expect(geometry).to.be.a(ol.geom.LineString); @@ -218,7 +218,7 @@ describe('ol.interaction.Draw', function() { simulateEvent('mouseup', 30, 20); simulateEvent('click', 30, 20); - var features = source.getFeatures(); + var features = source.getAllFeatures(); expect(features).to.have.length(1); var geometry = features[0].getGeometry(); expect(geometry).to.be.a(ol.geom.MultiLineString); @@ -261,7 +261,7 @@ describe('ol.interaction.Draw', function() { simulateEvent('mouseup', 10, 20); simulateEvent('click', 10, 20); - var features = source.getFeatures(); + var features = source.getAllFeatures(); expect(features).to.have.length(1); var geometry = features[0].getGeometry(); expect(geometry).to.be.a(ol.geom.Polygon); @@ -308,7 +308,7 @@ describe('ol.interaction.Draw', function() { simulateEvent('mouseup', 10, 20); simulateEvent('click', 10, 20); - var features = source.getFeatures(); + var features = source.getAllFeatures(); expect(features).to.have.length(1); var geometry = features[0].getGeometry(); expect(geometry).to.be.a(ol.geom.MultiPolygon); From b5db7fd2a92f796cd4420b0dda3a7a94e8ff2ee9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 10 Jan 2014 21:15:49 +0100 Subject: [PATCH 823/919] Remove social links from d3 example --- examples/d3.html | 7 ------- 1 file changed, 7 deletions(-) diff --git a/examples/d3.html b/examples/d3.html index efba7dc343..e82788839a 100644 --- a/examples/d3.html +++ b/examples/d3.html @@ -16,12 +16,6 @@
@@ -53,7 +47,6 @@ - From 29e379484577eae2fa18943609794abddebb8b47 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Fri, 10 Jan 2014 13:32:54 -0700 Subject: [PATCH 824/919] Example demonstrating a spyglass effect Riffing off of the layer swipe example, this one demonstrates viewing one layer over another though a lens. --- examples/layer-spy.html | 60 ++++++++++++++++++++++++++++++++++++ examples/layer-spy.js | 68 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 examples/layer-spy.html create mode 100644 examples/layer-spy.js diff --git a/examples/layer-spy.html b/examples/layer-spy.html new file mode 100644 index 0000000000..4c2a97632d --- /dev/null +++ b/examples/layer-spy.html @@ -0,0 +1,60 @@ + + + + + + + + + + + Layer Spy Example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Layer spy example

+

View a portion of one layer over another

+
+

+ Layer rendering can be manipulated in precompose and postcompose event listeners. + These listeners get an event with a reference to the Canvas rendering context. + In this example, the precompose listener sets a clipping mask around the most + recent mouse position, giving you a spyglass effect for viewing one layer over another. +

+

+ Move around the map to see the effect. Use the ↑ up and ↓ down arrow keys to adjust the spyglass size. +

+

See the layer-spy.js source to see how this is done.

+
+
spy, image manipulation
+
+ +
+ +
+ + + + + + + diff --git a/examples/layer-spy.js b/examples/layer-spy.js new file mode 100644 index 0000000000..7bc24dc4c6 --- /dev/null +++ b/examples/layer-spy.js @@ -0,0 +1,68 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHint'); +goog.require('ol.View2D'); +goog.require('ol.layer.Tile'); +goog.require('ol.proj'); +goog.require('ol.source.BingMaps'); + +var key = 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3'; + +var roads = new ol.layer.Tile({ + source: new ol.source.BingMaps({key: key, imagerySet: 'Road'}) +}); + +var imagery = new ol.layer.Tile({ + source: new ol.source.BingMaps({key: key, imagerySet: 'Aerial'}) +}); + +var map = new ol.Map({ + layers: [roads, imagery], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: ol.proj.transform([-109, 46.5], 'EPSG:4326', 'EPSG:3857'), + zoom: 6 + }) +}); + +var radius = 75; +$(document).keydown(function(evt) { + if (evt.which === 38) { + radius = Math.min(radius + 5, 150); + map.requestRenderFrame(); + } else if (evt.which === 40) { + radius = Math.max(radius - 5, 25); + map.requestRenderFrame(); + } +}); + +// get the pixel position with every move +var mousePosition = null; +$(map.getViewport()).on('mousemove', function(evt) { + mousePosition = map.getEventPixel(evt.originalEvent); + map.requestRenderFrame(); +}).on('mouseout', function() { + mousePosition = null; + map.requestRenderFrame(); +}); + +// before rendering the layer, do some clipping +imagery.on('precompose', function(event) { + var ctx = event.getContext(); + ctx.save(); + ctx.beginPath(); + if (mousePosition) { + // only show a circle around the mouse + ctx.arc(mousePosition[0], mousePosition[1], radius, 0, 2 * Math.PI); + ctx.lineWidth = 5; + ctx.strokeStyle = 'rgba(0,0,0,0.5)'; + ctx.stroke(); + } + ctx.clip(); +}); + +// after rendering the layer, restore the canvas context +imagery.on('postcompose', function(event) { + var ctx = event.getContext(); + ctx.restore(); +}); From db4a12895145f948bd247a007276029195ca1c2f Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 10 Jan 2014 21:50:25 +0100 Subject: [PATCH 825/919] Add example-behaviour.js to d3 example, thanks @tschaub --- examples/d3.html | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/d3.html b/examples/d3.html index e82788839a..b960cddf57 100644 --- a/examples/d3.html +++ b/examples/d3.html @@ -47,6 +47,7 @@ + From d74519bb2136cfc37b803ba0659cffe8383e3f15 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 10 Jan 2014 21:50:36 +0100 Subject: [PATCH 826/919] Add ol3 logo to d3 example --- examples/d3.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/d3.html b/examples/d3.html index b960cddf57..6af6a40d92 100644 --- a/examples/d3.html +++ b/examples/d3.html @@ -15,7 +15,7 @@ From d5b7527f1f25510bff824b72a53ef5313cddc3e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Sun, 12 Jan 2014 11:26:21 +0100 Subject: [PATCH 827/919] Add docs for ol.source.ImageVector --- src/objectliterals.jsdoc | 3 ++- src/ol/source/imagevectorsource.js | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index ed43c96a2f..f04d9632c7 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -649,7 +649,8 @@ * on. * @property {Array.|undefined} resolutions Resolutions. If specified, * new canvases will be created for these resolutions only. - * @property {ol.source.Vector} source Vector source. + * @property {ol.source.Vector} source The vector source from which the vector + * features drawn in canvas elements are read. */ /** diff --git a/src/ol/source/imagevectorsource.js b/src/ol/source/imagevectorsource.js index 34b70ec949..f4d44f3b20 100644 --- a/src/ol/source/imagevectorsource.js +++ b/src/ol/source/imagevectorsource.js @@ -17,6 +17,16 @@ goog.require('ol.vec.Mat4'); /** + * An image source whose images are canvas elements into which vector features + * read from a vector source (`ol.source.Vector`) are drawn. An + * `ol.source.ImageVector` object is to be used as the `source` of an image + * layer (`ol.layer.Image`). Image layers are rotated, scaled, and translated, + * as opposed to being re-rendered, during animations and interactions. So, like + * any other image layer, an image layer configured with an + * `ol.source.ImageVector` will exhibit this behaviour. This is in contrast to a + * vector layer, where vector features are re-drawn during animations and + * interactions. + * * @constructor * @extends {ol.source.ImageCanvas} * @param {olx.source.ImageVectorOptions} options Options. From babd133cf66e5ddafed1732f8ec20f7752436640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Sun, 12 Jan 2014 11:28:00 +0100 Subject: [PATCH 828/919] Export ol.source.ImageVector's styleFunction option --- src/objectliterals.jsdoc | 2 ++ src/ol/source/imagevectorsource.js | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index f04d9632c7..4f7fdfed4a 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -651,6 +651,8 @@ * new canvases will be created for these resolutions only. * @property {ol.source.Vector} source The vector source from which the vector * features drawn in canvas elements are read. + * @property {ol.feature.StyleFunction|undefined} styleFunction Style function + * providing the styles to use when rendering features to the canvas. */ /** diff --git a/src/ol/source/imagevectorsource.js b/src/ol/source/imagevectorsource.js index f4d44f3b20..841a81b4db 100644 --- a/src/ol/source/imagevectorsource.js +++ b/src/ol/source/imagevectorsource.js @@ -7,6 +7,7 @@ goog.require('goog.events'); goog.require('goog.events.EventType'); goog.require('goog.vec.Mat4'); goog.require('ol.extent'); +goog.require('ol.feature'); goog.require('ol.render.canvas.ReplayGroup'); goog.require('ol.renderer.vector'); goog.require('ol.source.ImageCanvas'); @@ -41,9 +42,10 @@ ol.source.ImageVector = function(options) { /** * @private - * @type {ol.feature.StyleFunction} + * @type {!ol.feature.StyleFunction} */ - this.styleFunction_ = options.styleFunction; + this.styleFunction_ = goog.isDef(options.styleFunction) ? + options.styleFunction : ol.feature.defaultStyleFunction; /** * @private From b53ddf5b4232ded9750793e434dfbb818243d7d1 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 9 Jan 2014 17:09:29 +0100 Subject: [PATCH 829/919] Create 'type' annotation for 'const' variables --- src/ol/color/color.js | 9 +- src/ol/format/geojsonformat.js | 3 +- src/ol/format/igcformat.js | 12 ++- src/ol/format/kmlformat.js | 102 +++++++++++++++-------- src/ol/interaction/dragboxinteraction.js | 3 +- src/ol/render/canvas/canvas.js | 30 ++++--- src/ol/render/ireplay.js | 3 +- 7 files changed, 108 insertions(+), 54 deletions(-) diff --git a/src/ol/color/color.js b/src/ol/color/color.js index 765cc22614..9d55d06529 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -32,7 +32,8 @@ ol.Color; /** * This RegExp matches # followed by 3 or 6 hex digits. - * @const {RegExp} + * @const + * @type {RegExp} * @private */ ol.color.hexColorRe_ = /^#(?:[0-9a-f]{3}){1,2}$/i; @@ -40,7 +41,8 @@ ol.color.hexColorRe_ = /^#(?:[0-9a-f]{3}){1,2}$/i; /** * @see goog.color.rgbColorRe_ - * @const {RegExp} + * @const + * @type {RegExp} * @private */ ol.color.rgbColorRe_ = @@ -49,7 +51,8 @@ ol.color.rgbColorRe_ = /** * @see goog.color.alpha.rgbaColorRe_ - * @const {RegExp} + * @const + * @type {RegExp} * @private */ ol.color.rgbaColorRe_ = diff --git a/src/ol/format/geojsonformat.js b/src/ol/format/geojsonformat.js index dea0348f19..d703970609 100644 --- a/src/ol/format/geojsonformat.js +++ b/src/ol/format/geojsonformat.js @@ -43,7 +43,8 @@ goog.inherits(ol.format.GeoJSON, ol.format.JSON); /** - * @const {Array.} + * @const + * @type {Array.} * @private */ ol.format.GeoJSON.EXTENSIONS_ = ['.geojson']; diff --git a/src/ol/format/igcformat.js b/src/ol/format/igcformat.js index 257d981770..cee1486e4a 100644 --- a/src/ol/format/igcformat.js +++ b/src/ol/format/igcformat.js @@ -44,14 +44,16 @@ goog.inherits(ol.format.IGC, ol.format.Text); /** - * @const {Array.} + * @const + * @type {Array.} * @private */ ol.format.IGC.EXTENSIONS_ = ['.igc']; /** - * @const {RegExp} + * @const + * @type {RegExp} * @private */ ol.format.IGC.B_RECORD_RE_ = @@ -59,14 +61,16 @@ ol.format.IGC.B_RECORD_RE_ = /** - * @const {RegExp} + * @const + * @type {RegExp} * @private */ ol.format.IGC.H_RECORD_RE_ = /^H.([A-Z]{3}).*?:(.*)/; /** - * @const {RegExp} + * @const + * @type {RegExp} * @private */ ol.format.IGC.HFDTE_RECORD_RE_ = /^HFDTE(\d{2})(\d{2})(\d{2})/; diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index cde7c22b9d..336d87e223 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -134,14 +134,16 @@ goog.inherits(ol.format.KML, ol.format.XML); /** - * @const {Array.} + * @const + * @type {Array.} * @private */ ol.format.KML.EXTENSIONS_ = ['.kml']; /** - * @const {Array.} + * @const + * @type {Array.} * @private */ ol.format.KML.GX_NAMESPACE_URIS_ = [ @@ -150,7 +152,8 @@ ol.format.KML.GX_NAMESPACE_URIS_ = [ /** - * @const {Array.} + * @const + * @type {Array.} * @private */ ol.format.KML.NAMESPACE_URIS_ = [ @@ -163,14 +166,16 @@ ol.format.KML.NAMESPACE_URIS_ = [ /** - * @const {ol.Color} + * @const + * @type {ol.Color} * @private */ ol.format.KML.DEFAULT_COLOR_ = [255, 255, 255, 1]; /** - * @const {ol.style.Fill} + * @const + * @type {ol.style.Fill} * @private */ ol.format.KML.DEFAULT_FILL_STYLE_ = new ol.style.Fill({ @@ -179,14 +184,16 @@ ol.format.KML.DEFAULT_FILL_STYLE_ = new ol.style.Fill({ /** - * @const {ol.Size} + * @const + * @type {ol.Size} * @private */ ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_ = [2, 20]; // FIXME maybe [8, 32] ? /** - * @const {ol.style.IconAnchorUnits} + * @const + * @type {ol.style.IconAnchorUnits} * @private */ ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS_ = @@ -194,7 +201,8 @@ ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS_ = /** - * @const {ol.style.IconAnchorUnits} + * @const + * @type {ol.style.IconAnchorUnits} * @private */ ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS_ = @@ -202,14 +210,16 @@ ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS_ = /** - * @const {ol.Size} + * @const + * @type {ol.Size} * @private */ ol.format.KML.DEFAULT_IMAGE_STYLE_SIZE_ = [32, 32]; /** - * @const {string} + * @const + * @type {string} * @private */ ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_ = @@ -217,7 +227,8 @@ ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_ = /** - * @const {ol.style.Image} + * @const + * @type {ol.style.Image} * @private */ ol.format.KML.DEFAULT_IMAGE_STYLE_ = new ol.style.Icon({ @@ -233,7 +244,8 @@ ol.format.KML.DEFAULT_IMAGE_STYLE_ = new ol.style.Icon({ /** - * @const {ol.style.Stroke} + * @const + * @type {ol.style.Stroke} * @private */ ol.format.KML.DEFAULT_STROKE_STYLE_ = new ol.style.Stroke({ @@ -243,7 +255,8 @@ ol.format.KML.DEFAULT_STROKE_STYLE_ = new ol.style.Stroke({ /** - * @const {ol.style.Style} + * @const + * @type {ol.style.Style} * @private */ ol.format.KML.DEFAULT_STYLE_ = new ol.style.Style({ @@ -256,14 +269,16 @@ ol.format.KML.DEFAULT_STYLE_ = new ol.style.Style({ /** - * @const {Array.} + * @const + * @type {Array.} * @private */ ol.format.KML.DEFAULT_STYLE_ARRAY_ = [ol.format.KML.DEFAULT_STYLE_]; /** - * @const {Object.} + * @const + * @type {Object.} * @private */ ol.format.KML.ICON_ANCHOR_UNITS_MAP_ = { @@ -1159,7 +1174,8 @@ ol.format.KML.whenParser_ = function(node, objectStack) { /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.DATA_PARSERS_ = ol.xml.makeParsersNS( @@ -1169,7 +1185,8 @@ ol.format.KML.DATA_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.EXTENDED_DATA_PARSERS_ = ol.xml.makeParsersNS( @@ -1180,7 +1197,8 @@ ol.format.KML.EXTENDED_DATA_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.FLAT_LINEAR_RING_PARSERS_ = ol.xml.makeParsersNS( @@ -1190,7 +1208,8 @@ ol.format.KML.FLAT_LINEAR_RING_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.FLAT_LINEAR_RINGS_PARSERS_ = ol.xml.makeParsersNS( @@ -1201,7 +1220,8 @@ ol.format.KML.FLAT_LINEAR_RINGS_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.GX_TRACK_PARSERS_ = ol.xml.makeParsersNS( @@ -1214,7 +1234,8 @@ ol.format.KML.GX_TRACK_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.GEOMETRY_FLAT_COORDINATES_PARSERS_ = ol.xml.makeParsersNS( @@ -1224,7 +1245,8 @@ ol.format.KML.GEOMETRY_FLAT_COORDINATES_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.ICON_PARSERS_ = ol.xml.makeParsersNS( @@ -1234,7 +1256,8 @@ ol.format.KML.ICON_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.ICON_STYLE_PARSERS_ = ol.xml.makeParsersNS( @@ -1247,7 +1270,8 @@ ol.format.KML.ICON_STYLE_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.INNER_BOUNDARY_IS_PARSERS_ = ol.xml.makeParsersNS( @@ -1257,7 +1281,8 @@ ol.format.KML.INNER_BOUNDARY_IS_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.LINE_STYLE_PARSERS_ = ol.xml.makeParsersNS( @@ -1268,7 +1293,8 @@ ol.format.KML.LINE_STYLE_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.MULTI_GEOMETRY_PARSERS_ = ol.xml.makeParsersNS( @@ -1282,7 +1308,8 @@ ol.format.KML.MULTI_GEOMETRY_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.GX_MULTITRACK_GEOMETRY_PARSERS_ = ol.xml.makeParsersNS( @@ -1292,7 +1319,8 @@ ol.format.KML.GX_MULTITRACK_GEOMETRY_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.OUTER_BOUNDARY_IS_PARSERS_ = ol.xml.makeParsersNS( @@ -1302,7 +1330,8 @@ ol.format.KML.OUTER_BOUNDARY_IS_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.PAIR_PARSERS_ = ol.xml.makeParsersNS( @@ -1314,7 +1343,8 @@ ol.format.KML.PAIR_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.PLACEMARK_PARSERS_ = ol.xml.makeParsersNS( @@ -1348,7 +1378,8 @@ ol.format.KML.PLACEMARK_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.POLY_STYLE_PARSERS_ = ol.xml.makeParsersNS( @@ -1360,7 +1391,8 @@ ol.format.KML.POLY_STYLE_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.SCHEMA_DATA_PARSERS_ = ol.xml.makeParsersNS( @@ -1370,7 +1402,8 @@ ol.format.KML.SCHEMA_DATA_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.STYLE_PARSERS_ = ol.xml.makeParsersNS( @@ -1382,7 +1415,8 @@ ol.format.KML.STYLE_PARSERS_ = ol.xml.makeParsersNS( /** - * @const {Object.>} + * @const + * @type {Object.>} * @private */ ol.format.KML.STYLE_MAP_PARSERS_ = ol.xml.makeParsersNS( diff --git a/src/ol/interaction/dragboxinteraction.js b/src/ol/interaction/dragboxinteraction.js index d04e8a4e29..e83e240867 100644 --- a/src/ol/interaction/dragboxinteraction.js +++ b/src/ol/interaction/dragboxinteraction.js @@ -19,7 +19,8 @@ ol.DRAG_BOX_HYSTERESIS_PIXELS = 8; /** - * @const {number} + * @const + * @type {number} */ ol.DRAG_BOX_HYSTERESIS_PIXELS_SQUARED = ol.DRAG_BOX_HYSTERESIS_PIXELS * diff --git a/src/ol/render/canvas/canvas.js b/src/ol/render/canvas/canvas.js index c46bc7866a..8144f14e9d 100644 --- a/src/ol/render/canvas/canvas.js +++ b/src/ol/render/canvas/canvas.js @@ -4,60 +4,70 @@ goog.require('ol.color'); /** - * @const {string} + * @const + * @type {string} */ ol.render.canvas.defaultFont = '10px sans-serif'; /** - * @const {ol.Color} + * @const + * @type {ol.Color} */ ol.render.canvas.defaultFillStyle = ol.color.fromString('black'); /** - * @const {string} + * @const + * @type {string} */ ol.render.canvas.defaultLineCap = 'round'; /** - * @const {Array.} + * @const + * @type {Array.} */ ol.render.canvas.defaultLineDash = []; /** - * @const {string} + * @const + * @type {string} */ ol.render.canvas.defaultLineJoin = 'round'; /** - * @const {number} + * @const + * @type {number} */ ol.render.canvas.defaultMiterLimit = 10; /** - * @const {ol.Color} + * @const + * @type {ol.Color} */ ol.render.canvas.defaultStrokeStyle = ol.color.fromString('black'); /** - * @const {string} + * @const + * @type {string} */ ol.render.canvas.defaultTextAlign = 'start'; /** - * @const {string} + * @const + * @type {string} */ ol.render.canvas.defaultTextBaseline = 'alphabetic'; /** - * @const {number} + * @const + * @type {number} */ ol.render.canvas.defaultLineWidth = 1; diff --git a/src/ol/render/ireplay.js b/src/ol/render/ireplay.js index d854d44e38..25df824ab0 100644 --- a/src/ol/render/ireplay.js +++ b/src/ol/render/ireplay.js @@ -15,7 +15,8 @@ ol.render.ReplayType = { /** - * @const {Array.} + * @const + * @type {Array.} */ ol.render.REPLAY_ORDER = [ ol.render.ReplayType.POLYGON, From f5ce88789e70c1b68b1abe38a3dcda2c14576eb8 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 13 Jan 2014 10:26:19 +0100 Subject: [PATCH 830/919] Use goog.isNull in if statements --- src/ol/interaction/drawinteraction.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/interaction/drawinteraction.js b/src/ol/interaction/drawinteraction.js index c36d0116d5..61593a47e6 100644 --- a/src/ol/interaction/drawinteraction.js +++ b/src/ol/interaction/drawinteraction.js @@ -265,7 +265,7 @@ ol.interaction.Draw.prototype.handleMove_ = function(event) { */ ol.interaction.Draw.prototype.atFinish_ = function(event) { var at = false; - if (this.sketchFeature_) { + if (!goog.isNull(this.sketchFeature_)) { var geometry = this.sketchFeature_.getGeometry(); var potentiallyDone = false; if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) { @@ -424,7 +424,7 @@ ol.interaction.Draw.prototype.finishDrawing_ = function(event) { sketchFeature.setGeometry(new ol.geom.MultiPolygon([coordinates])); } - if (this.layer_) { + if (!goog.isNull(this.layer_)) { this.layer_.getSource().addFeature(sketchFeature); } }; @@ -454,10 +454,10 @@ ol.interaction.Draw.prototype.abortDrawing_ = function() { */ ol.interaction.Draw.prototype.updateSketchFeatures_ = function() { var sketchFeatures = [this.sketchFeature_]; - if (this.sketchLine_) { + if (!goog.isNull(this.sketchLine_)) { sketchFeatures.push(this.sketchLine_); } - if (this.sketchPoint_) { + if (!goog.isNull(this.sketchPoint_)) { sketchFeatures.push(this.sketchPoint_); } this.overlay_.setFeatures(new ol.Collection(sketchFeatures)); From f68631d61c82e9ec3fcd6be9a7a3b6a2695b8e18 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 13 Jan 2014 10:21:30 +0100 Subject: [PATCH 831/919] Use goog.asserts.assertInstanceof to check the getSource return type See 1499af397d9852eded193a8b06ea9d8bad71a49f --- src/ol/interaction/drawinteraction.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ol/interaction/drawinteraction.js b/src/ol/interaction/drawinteraction.js index 61593a47e6..0dbc050bd9 100644 --- a/src/ol/interaction/drawinteraction.js +++ b/src/ol/interaction/drawinteraction.js @@ -16,6 +16,7 @@ goog.require('ol.geom.Point'); goog.require('ol.geom.Polygon'); goog.require('ol.interaction.Interaction'); goog.require('ol.render.FeaturesOverlay'); +goog.require('ol.source.Vector'); goog.require('ol.style.Circle'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); @@ -425,7 +426,9 @@ ol.interaction.Draw.prototype.finishDrawing_ = function(event) { } if (!goog.isNull(this.layer_)) { - this.layer_.getSource().addFeature(sketchFeature); + var vectorSource = this.layer_.getSource(); + goog.asserts.assertInstanceof(vectorSource, ol.source.Vector); + vectorSource.addFeature(sketchFeature); } }; From e9db2eefb987b2d04d4048c6af72275ced96e25f Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 13 Jan 2014 09:10:37 +0100 Subject: [PATCH 832/919] Make ol.source.Source inherit from Observable --- src/ol/source/source.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/source/source.js b/src/ol/source/source.js index 3f5a46d2d1..2e4b077a4f 100644 --- a/src/ol/source/source.js +++ b/src/ol/source/source.js @@ -1,10 +1,10 @@ goog.provide('ol.source.Source'); goog.provide('ol.source.State'); -goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('ol.Attribution'); goog.require('ol.Extent'); +goog.require('ol.Observable'); goog.require('ol.proj'); @@ -32,7 +32,7 @@ ol.source.SourceOptions; /** * @constructor - * @extends {goog.events.EventTarget} + * @extends {ol.Observable} * @param {ol.source.SourceOptions} options Source options. * @todo stability experimental */ @@ -81,7 +81,7 @@ ol.source.Source = function(options) { this.revision_ = 0; }; -goog.inherits(ol.source.Source, goog.events.EventTarget); +goog.inherits(ol.source.Source, ol.Observable); /** From 79c8f17e839bbc3d0042338d5aa49cf4f851137b Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 13 Jan 2014 11:51:01 +0100 Subject: [PATCH 833/919] Add encoding param to goog.fs.FileReader.readAsText This is a workaround for https://code.google.com/p/closure-library/issues/detail?id=524 --- src/ol/interaction/draganddropinteraction.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ol/interaction/draganddropinteraction.js b/src/ol/interaction/draganddropinteraction.js index 917712b252..0ed09d211f 100644 --- a/src/ol/interaction/draganddropinteraction.js +++ b/src/ol/interaction/draganddropinteraction.js @@ -87,7 +87,9 @@ ol.interaction.DragAndDrop.prototype.handleDrop_ = function(event) { var files = event.getBrowserEvent().dataTransfer.files; var i, ii; for (i = 0, ii = files.length; i < ii; ++i) { - var reader = goog.fs.FileReader.readAsText(files[i]); + // The empty string param is a workaround for + // https://code.google.com/p/closure-library/issues/detail?id=524 + var reader = goog.fs.FileReader.readAsText(files[i], ''); reader.addCallback(this.handleResult_, this); } }; From ffcd4e8cc2245d3a9cddec66f61f4d8f753433de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 13 Jan 2014 14:10:51 +0100 Subject: [PATCH 834/919] Fix hit detection on retina displays --- src/ol/render/canvas/canvasreplay.js | 86 ++++++++----------- .../canvas/canvasvectorlayerrenderer.js | 5 +- src/ol/source/imagevectorsource.js | 5 +- 3 files changed, 42 insertions(+), 54 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index f15dea14a7..dfbb5cdd09 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -42,18 +42,11 @@ ol.render.canvas.Instruction = { /** * @constructor * @implements {ol.render.IRender} - * @param {number} pixelRatio Pixel ratio. * @param {number} tolerance Tolerance. * @protected * @struct */ -ol.render.canvas.Replay = function(pixelRatio, tolerance) { - - /** - * @protected - * @type {number} - */ - this.pixelRatio = pixelRatio; +ol.render.canvas.Replay = function(tolerance) { /** * @protected @@ -160,6 +153,7 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { /** * @private * @param {CanvasRenderingContext2D} context Context. + * @param {number} pixelRatio Pixel ratio. * @param {goog.vec.Mat4.Number} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. @@ -170,8 +164,8 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { * @template T */ ol.render.canvas.Replay.prototype.replay_ = - function(context, transform, renderGeometryFunction, instructions, - geometryCallback) { + function(context, pixelRatio, transform, renderGeometryFunction, + instructions, geometryCallback) { /** @type {Array.} */ var pixelCoordinates; if (ol.vec.Mat4.equals2D(transform, this.renderedTransform_)) { @@ -212,13 +206,13 @@ ol.render.canvas.Replay.prototype.replay_ = var image = /** @type {HTMLCanvasElement|HTMLVideoElement|Image} */ (instruction[3]); // Remaining arguments in DRAW_IMAGE are in alphabetical order - var anchorX = /** @type {number} */ (instruction[4]); - var anchorY = /** @type {number} */ (instruction[5]); - var height = /** @type {number} */ (instruction[6]); + var anchorX = /** @type {number} */ (instruction[4]) * pixelRatio; + var anchorY = /** @type {number} */ (instruction[5]) * pixelRatio; + var height = /** @type {number} */ (instruction[6]) * pixelRatio; var rotation = /** @type {number} */ (instruction[7]); var scale = /** @type {number} */ (instruction[8]); var snapToPixel = /** @type {boolean|undefined} */ (instruction[9]); - var width = /** @type {number} */ (instruction[10]); + var width = /** @type {number} */ (instruction[10]) * pixelRatio; for (; d < dd; d += 2) { var x = pixelCoordinates[d] - anchorX; var y = pixelCoordinates[d + 1] - anchorY; @@ -281,7 +275,7 @@ ol.render.canvas.Replay.prototype.replay_ = goog.asserts.assert(goog.isNumber(instruction[5])); goog.asserts.assert(!goog.isNull(instruction[6])); context.strokeStyle = /** @type {string} */ (instruction[1]); - context.lineWidth = /** @type {number} */ (instruction[2]); + context.lineWidth = /** @type {number} */ (instruction[2]) * pixelRatio; context.lineCap = /** @type {string} */ (instruction[3]); context.lineJoin = /** @type {string} */ (instruction[4]); context.miterLimit = /** @type {number} */ (instruction[5]); @@ -305,6 +299,7 @@ ol.render.canvas.Replay.prototype.replay_ = /** * @param {CanvasRenderingContext2D} context Context. + * @param {number} pixelRatio Pixel ratio. * @param {goog.vec.Mat4.Number} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. @@ -312,9 +307,9 @@ ol.render.canvas.Replay.prototype.replay_ = * @template T */ ol.render.canvas.Replay.prototype.replay = - function(context, transform, renderGeometryFunction) { + function(context, pixelRatio, transform, renderGeometryFunction) { var instructions = this.instructions; - return this.replay_(context, transform, renderGeometryFunction, + return this.replay_(context, pixelRatio, transform, renderGeometryFunction, instructions, undefined); }; @@ -332,7 +327,7 @@ ol.render.canvas.Replay.prototype.replay = ol.render.canvas.Replay.prototype.replayHitDetection = function(context, transform, renderGeometryFunction, opt_geometryCallback) { var instructions = this.hitDetectionInstructions; - return this.replay_(context, transform, renderGeometryFunction, + return this.replay_(context, 1, transform, renderGeometryFunction, instructions, opt_geometryCallback); }; @@ -478,14 +473,13 @@ ol.render.canvas.Replay.prototype.setTextStyle = goog.abstractMethod; /** * @constructor * @extends {ol.render.canvas.Replay} - * @param {number} pixelRatio Pixel ratio. * @param {number} tolerance Tolerance. * @protected * @struct */ -ol.render.canvas.ImageReplay = function(pixelRatio, tolerance) { +ol.render.canvas.ImageReplay = function(tolerance) { - goog.base(this, pixelRatio, tolerance); + goog.base(this, tolerance); /** * @private @@ -667,15 +661,15 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { goog.asserts.assert(!goog.isNull(hitDetectionImage)); var image = imageStyle.getImage(1); goog.asserts.assert(!goog.isNull(image)); - this.anchorX_ = anchor[0] * this.pixelRatio; - this.anchorY_ = anchor[1] * this.pixelRatio; + this.anchorX_ = anchor[0]; + this.anchorY_ = anchor[1]; this.hitDetectionImage_ = hitDetectionImage; this.image_ = image; - this.height_ = size[1] * this.pixelRatio; + this.height_ = size[1]; this.rotation_ = imageStyle.getRotation(); this.scale_ = imageStyle.getScale(); this.snapToPixel_ = imageStyle.getSnapToPixel(); - this.width_ = size[0] * this.pixelRatio; + this.width_ = size[0]; }; @@ -683,14 +677,13 @@ ol.render.canvas.ImageReplay.prototype.setImageStyle = function(imageStyle) { /** * @constructor * @extends {ol.render.canvas.Replay} - * @param {number} pixelRatio Pixel ratio. * @param {number} tolerance Tolerance. * @protected * @struct */ -ol.render.canvas.LineStringReplay = function(pixelRatio, tolerance) { +ol.render.canvas.LineStringReplay = function(tolerance) { - goog.base(this, pixelRatio, tolerance); + goog.base(this, tolerance); /** * @private @@ -889,8 +882,8 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = this.state_.lineJoin = goog.isDef(strokeStyleLineJoin) ? strokeStyleLineJoin : ol.render.canvas.defaultLineJoin; var strokeStyleWidth = strokeStyle.getWidth(); - this.state_.lineWidth = this.pixelRatio * (goog.isDef(strokeStyleWidth) ? - strokeStyleWidth : ol.render.canvas.defaultLineWidth); + this.state_.lineWidth = goog.isDef(strokeStyleWidth) ? + strokeStyleWidth : ol.render.canvas.defaultLineWidth; var strokeStyleMiterLimit = strokeStyle.getMiterLimit(); this.state_.miterLimit = goog.isDef(strokeStyleMiterLimit) ? strokeStyleMiterLimit : ol.render.canvas.defaultMiterLimit; @@ -901,14 +894,13 @@ ol.render.canvas.LineStringReplay.prototype.setFillStrokeStyle = /** * @constructor * @extends {ol.render.canvas.Replay} - * @param {number} pixelRatio Pixel ratio. * @param {number} tolerance Tolerance. * @protected * @struct */ -ol.render.canvas.PolygonReplay = function(pixelRatio, tolerance) { +ol.render.canvas.PolygonReplay = function(tolerance) { - goog.base(this, pixelRatio, tolerance); + goog.base(this, tolerance); /** * @private @@ -1121,8 +1113,8 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyle = state.lineJoin = goog.isDef(strokeStyleLineJoin) ? strokeStyleLineJoin : ol.render.canvas.defaultLineJoin; var strokeStyleWidth = strokeStyle.getWidth(); - state.lineWidth = this.pixelRatio * (goog.isDef(strokeStyleWidth) ? - strokeStyleWidth : ol.render.canvas.defaultLineWidth); + state.lineWidth = goog.isDef(strokeStyleWidth) ? + strokeStyleWidth : ol.render.canvas.defaultLineWidth; var strokeStyleMiterLimit = strokeStyle.getMiterLimit(); state.miterLimit = goog.isDef(strokeStyleMiterLimit) ? strokeStyleMiterLimit : ol.render.canvas.defaultMiterLimit; @@ -1184,17 +1176,10 @@ ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_ = function() { /** * @constructor * @implements {ol.render.IReplayGroup} - * @param {number} pixelRatio Pixel ratio. * @param {number} tolerance Tolerance. * @struct */ -ol.render.canvas.ReplayGroup = function(pixelRatio, tolerance) { - - /** - * @private - * @type {number} - */ - this.pixelRatio_ = pixelRatio; +ol.render.canvas.ReplayGroup = function(tolerance) { /** * @private @@ -1236,6 +1221,7 @@ ol.render.canvas.ReplayGroup = function(pixelRatio, tolerance) { /** * @param {CanvasRenderingContext2D} context Context. * @param {ol.Extent} extent Extent. + * @param {number} pixelRatio Pixel ratio. * @param {goog.vec.Mat4.Number} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. @@ -1243,12 +1229,12 @@ ol.render.canvas.ReplayGroup = function(pixelRatio, tolerance) { * @template T */ ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent, - transform, renderGeometryFunction) { + pixelRatio, transform, renderGeometryFunction) { /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.replaysByZIndex_), Number); goog.array.sort(zs); return this.replay_( - zs, context, extent, transform, renderGeometryFunction); + zs, context, extent, pixelRatio, transform, renderGeometryFunction); }; @@ -1291,6 +1277,7 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = * @param {Array.} zs Z-indices array. * @param {CanvasRenderingContext2D} context Context. * @param {ol.Extent} extent Extent. + * @param {number} pixelRatio Pixel ratio. * @param {goog.vec.Mat4.Number} transform Transform. * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render * geometry function. @@ -1298,7 +1285,8 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = * @template T */ ol.render.canvas.ReplayGroup.prototype.replay_ = - function(zs, context, extent, transform, renderGeometryFunction) { + function(zs, context, extent, pixelRatio, transform, + renderGeometryFunction) { var i, ii, j, jj, replays, replayType, replay, result; for (i = 0, ii = zs.length; i < ii; ++i) { replays = this.replaysByZIndex_[zs[i].toString()]; @@ -1307,7 +1295,7 @@ ol.render.canvas.ReplayGroup.prototype.replay_ = if (goog.isDef(replay) && ol.extent.intersects(extent, replay.getExtent())) { result = replay.replay( - context, transform, renderGeometryFunction); + context, pixelRatio, transform, renderGeometryFunction); if (result) { return result; } @@ -1395,7 +1383,7 @@ ol.render.canvas.ReplayGroup.prototype.getReplay = if (!goog.isDef(replay)) { var constructor = ol.render.canvas.BATCH_CONSTRUCTORS_[replayType]; goog.asserts.assert(goog.isDef(constructor)); - replay = new constructor(this.pixelRatio_, this.tolerance_); + replay = new constructor(this.tolerance_); replays[replayType] = replay; } return replay; @@ -1414,7 +1402,7 @@ ol.render.canvas.ReplayGroup.prototype.isEmpty = function() { * @const * @private * @type {Object.} + * function(new: ol.render.canvas.Replay, number)>} */ ol.render.canvas.BATCH_CONSTRUCTORS_ = { 'Image': ol.render.canvas.ImageReplay, diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index dea0a45cec..d48be3110a 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -88,7 +88,8 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = goog.asserts.assert(goog.isFunction(renderGeometryFunction)); context.globalAlpha = layerState.opacity; replayGroup.replay( - context, frameState.extent, transform, renderGeometryFunction); + context, frameState.extent, frameState.devicePixelRatio, transform, + renderGeometryFunction); } this.dispatchPostComposeEvent(context, frameState, transform); @@ -210,7 +211,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = styleFunction = ol.feature.defaultStyleFunction; } var tolerance = frameStateResolution / (2 * pixelRatio); - var replayGroup = new ol.render.canvas.ReplayGroup(pixelRatio, tolerance); + var replayGroup = new ol.render.canvas.ReplayGroup(tolerance); vectorSource.forEachFeatureInExtent(extent, /** * @param {ol.Feature} feature Feature. diff --git a/src/ol/source/imagevectorsource.js b/src/ol/source/imagevectorsource.js index 841a81b4db..e5ed007814 100644 --- a/src/ol/source/imagevectorsource.js +++ b/src/ol/source/imagevectorsource.js @@ -104,8 +104,7 @@ ol.source.ImageVector.prototype.canvasFunctionInternal_ = function(extent, resolution, pixelRatio, size, projection) { var tolerance = resolution / (2 * pixelRatio); - var replayGroup = new ol.render.canvas.ReplayGroup( - pixelRatio, tolerance); + var replayGroup = new ol.render.canvas.ReplayGroup(tolerance); var loading = false; this.source_.forEachFeatureInExtent(extent, @@ -133,7 +132,7 @@ ol.source.ImageVector.prototype.canvasFunctionInternal_ = var transform = this.getTransform_(ol.extent.getCenter(extent), resolution, pixelRatio, size); - replayGroup.replay(this.canvasContext_, extent, transform, + replayGroup.replay(this.canvasContext_, extent, pixelRatio, transform, goog.functions.TRUE); return this.canvasElement_; From 3835c299b530e96e481e9fbdfd838a4ceaae76b7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 13 Jan 2014 18:10:31 +0100 Subject: [PATCH 835/919] Remove unnecessary typecasts goog.asserts.assertInstanceof is sufficient for the compiler to deduce the type. --- src/ol/render/vector.js | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index a8e037b495..409a73f38a 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -43,9 +43,7 @@ ol.renderer.vector.renderFeature = function( ol.renderer.vector.renderGeometryCollectionGeometry_ = function(replayGroup, geometry, style, data) { goog.asserts.assertInstanceof(geometry, ol.geom.GeometryCollection); - var geometryCollectionGeometry = /** @type {ol.geom.GeometryCollection} */ ( - geometry); - var geometries = geometryCollectionGeometry.getGeometriesArray(); + var geometries = geometry.getGeometriesArray(); var i, ii; for (i = 0, ii = geometries.length; i < ii; ++i) { var geometryRenderer = @@ -70,11 +68,10 @@ ol.renderer.vector.renderLineStringGeometry_ = return; } goog.asserts.assertInstanceof(geometry, ol.geom.LineString); - var lineStringGeometry = /** @type {ol.geom.LineString} */ (geometry); var replay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.LINE_STRING); replay.setFillStrokeStyle(null, strokeStyle); - replay.drawLineStringGeometry(lineStringGeometry, data); + replay.drawLineStringGeometry(geometry, data); }; @@ -92,12 +89,10 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = return; } goog.asserts.assertInstanceof(geometry, ol.geom.MultiLineString); - var multiLineStringGeometry = /** @type {ol.geom.MultiLineString} */ - (geometry); var replay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.LINE_STRING); replay.setFillStrokeStyle(null, strokeStyle); - replay.drawMultiLineStringGeometry(multiLineStringGeometry, data); + replay.drawMultiLineStringGeometry(geometry, data); }; @@ -116,12 +111,10 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = return; } goog.asserts.assertInstanceof(geometry, ol.geom.MultiPolygon); - var multiPolygonGeometry = /** @type {ol.geom.MultiPolygon} */ - (geometry); var replay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.POLYGON); replay.setFillStrokeStyle(fillStyle, strokeStyle); - replay.drawMultiPolygonGeometry(multiPolygonGeometry, data); + replay.drawMultiPolygonGeometry(geometry, data); }; @@ -139,11 +132,10 @@ ol.renderer.vector.renderPointGeometry_ = return; } goog.asserts.assertInstanceof(geometry, ol.geom.Point); - var pointGeometry = /** @type {ol.geom.Point} */ (geometry); var replay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.IMAGE); replay.setImageStyle(imageStyle); - replay.drawPointGeometry(pointGeometry, data); + replay.drawPointGeometry(geometry, data); }; @@ -161,11 +153,10 @@ ol.renderer.vector.renderMultiPointGeometry_ = return; } goog.asserts.assertInstanceof(geometry, ol.geom.MultiPoint); - var multiPointGeometry = /** @type {ol.geom.MultiPoint} */ (geometry); var replay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.IMAGE); replay.setImageStyle(imageStyle); - replay.drawMultiPointGeometry(multiPointGeometry, data); + replay.drawMultiPointGeometry(geometry, data); }; @@ -184,11 +175,10 @@ ol.renderer.vector.renderPolygonGeometry_ = return; } goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); - var polygonGeometry = /** @type {ol.geom.Polygon} */ (geometry); var replay = replayGroup.getReplay( style.getZIndex(), ol.render.ReplayType.POLYGON); replay.setFillStrokeStyle(fillStyle, strokeStyle); - replay.drawPolygonGeometry(polygonGeometry, data); + replay.drawPolygonGeometry(geometry, data); }; From 54e1fd3a41e86a6a8d902d77e643a337e63eefe5 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 13 Jan 2014 18:11:06 +0100 Subject: [PATCH 836/919] Use @inheritDoc in ol.render.webgl.Immediate --- src/ol/render/webgl/webglimmediate.js | 33 +++++++++------------------ 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/src/ol/render/webgl/webglimmediate.js b/src/ol/render/webgl/webglimmediate.js index 2a8d8e4222..70308b7964 100644 --- a/src/ol/render/webgl/webglimmediate.js +++ b/src/ol/render/webgl/webglimmediate.js @@ -21,17 +21,14 @@ ol.render.webgl.Immediate.prototype.drawAsync = function(zIndex, callback) { /** - * @param {ol.Feature} feature Feature. - * @param {ol.style.Style} style Style. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.drawFeature = function(feature, style) { }; /** - * @param {ol.geom.GeometryCollection} geometryCollectionGeometry Geometry - * collection. - * @param {Object} data Opaque data object. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.drawGeometryCollectionGeometry = function(geometryCollectionGeometry, data) { @@ -39,8 +36,7 @@ ol.render.webgl.Immediate.prototype.drawGeometryCollectionGeometry = /** - * @param {ol.geom.Point} pointGeometry Point geometry. - * @param {Object} data Opaque data object. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.drawPointGeometry = function(pointGeometry, data) { @@ -48,8 +44,7 @@ ol.render.webgl.Immediate.prototype.drawPointGeometry = /** - * @param {ol.geom.LineString} lineStringGeometry Line string geometry. - * @param {Object} data Opaque data object. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.drawLineStringGeometry = function(lineStringGeometry, data) { @@ -57,9 +52,7 @@ ol.render.webgl.Immediate.prototype.drawLineStringGeometry = /** - * @param {ol.geom.MultiLineString} multiLineStringGeometry - * MultiLineString geometry. - * @param {Object} data Opaque data object. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.drawMultiLineStringGeometry = function(multiLineStringGeometry, data) { @@ -67,8 +60,7 @@ ol.render.webgl.Immediate.prototype.drawMultiLineStringGeometry = /** - * @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry. - * @param {Object} data Opaque data object. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.drawMultiPointGeometry = function(multiPointGeometry, data) { @@ -76,8 +68,7 @@ ol.render.webgl.Immediate.prototype.drawMultiPointGeometry = /** - * @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry. - * @param {Object} data Opaque data object. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.drawMultiPolygonGeometry = function(multiPolygonGeometry, data) { @@ -85,8 +76,7 @@ ol.render.webgl.Immediate.prototype.drawMultiPolygonGeometry = /** - * @param {ol.geom.Polygon} polygonGeometry Polygon geometry. - * @param {Object} data Opaque data object. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.drawPolygonGeometry = function(polygonGeometry, data) { @@ -94,8 +84,7 @@ ol.render.webgl.Immediate.prototype.drawPolygonGeometry = /** - * @param {ol.style.Fill} fillStyle Fill style. - * @param {ol.style.Stroke} strokeStyle Stroke style. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.setFillStrokeStyle = function(fillStyle, strokeStyle) { @@ -103,14 +92,14 @@ ol.render.webgl.Immediate.prototype.setFillStrokeStyle = /** - * @param {ol.style.Image} imageStyle Image style. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.setImageStyle = function(imageStyle) { }; /** - * @param {ol.style.Text} textStyle Text style. + * @inheritDoc */ ol.render.webgl.Immediate.prototype.setTextStyle = function(textStyle) { }; From 474b4a444b98c2d9aacaecdfcc33c95ad4a5ff9e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 13 Jan 2014 18:17:38 +0100 Subject: [PATCH 837/919] Use a switch statement, rather than ifs, in ol.render.canvas.Replay --- src/ol/render/canvas/canvasreplay.js | 216 ++++++++++++++------------- 1 file changed, 114 insertions(+), 102 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index dfbb5cdd09..25d263dbc2 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -185,110 +185,122 @@ ol.render.canvas.Replay.prototype.replay_ = var instruction = instructions[i]; var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); var geometry; - if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) { - geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); - if (renderGeometryFunction(geometry)) { - ++i; - } else { - i = /** @type {number} */ (instruction[2]); - } - } else if (type == ol.render.canvas.Instruction.BEGIN_PATH) { - context.beginPath(); - ++i; - } else if (type == ol.render.canvas.Instruction.CLOSE_PATH) { - context.closePath(); - ++i; - } else if (type == ol.render.canvas.Instruction.DRAW_IMAGE) { - goog.asserts.assert(goog.isNumber(instruction[1])); - d = /** @type {number} */ (instruction[1]); - goog.asserts.assert(goog.isNumber(instruction[2])); - dd = /** @type {number} */ (instruction[2]); - var image = /** @type {HTMLCanvasElement|HTMLVideoElement|Image} */ - (instruction[3]); - // Remaining arguments in DRAW_IMAGE are in alphabetical order - var anchorX = /** @type {number} */ (instruction[4]) * pixelRatio; - var anchorY = /** @type {number} */ (instruction[5]) * pixelRatio; - var height = /** @type {number} */ (instruction[6]) * pixelRatio; - var rotation = /** @type {number} */ (instruction[7]); - var scale = /** @type {number} */ (instruction[8]); - var snapToPixel = /** @type {boolean|undefined} */ (instruction[9]); - var width = /** @type {number} */ (instruction[10]) * pixelRatio; - for (; d < dd; d += 2) { - var x = pixelCoordinates[d] - anchorX; - var y = pixelCoordinates[d + 1] - anchorY; - if (snapToPixel) { - x = (x + 0.5) | 0; - y = (y + 0.5) | 0; - } - if (scale != 1 || rotation !== 0) { - var centerX = x + anchorX; - var centerY = y + anchorY; - ol.vec.Mat4.makeTransform2D( - localTransform, centerX, centerY, scale, scale, - rotation, -centerX, -centerY); - context.setTransform( - goog.vec.Mat4.getElement(localTransform, 0, 0), - goog.vec.Mat4.getElement(localTransform, 1, 0), - goog.vec.Mat4.getElement(localTransform, 0, 1), - goog.vec.Mat4.getElement(localTransform, 1, 1), - goog.vec.Mat4.getElement(localTransform, 0, 3), - goog.vec.Mat4.getElement(localTransform, 1, 3)); - } - context.drawImage(image, x, y, width, height); - if (scale != 1 || rotation !== 0) { - context.setTransform(1, 0, 0, 1, 0, 0); - } - } - ++i; - } else if (type == ol.render.canvas.Instruction.END_GEOMETRY) { - if (goog.isDef(geometryCallback)) { + switch (type) { + case ol.render.canvas.Instruction.BEGIN_GEOMETRY: geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); - var data = /** @type {Object} */ (instruction[2]); - var result = geometryCallback(geometry, data); - if (result) { - return result; + if (renderGeometryFunction(geometry)) { + ++i; + } else { + i = /** @type {number} */ (instruction[2]); } - } - ++i; - } else if (type == ol.render.canvas.Instruction.FILL) { - context.fill(); - ++i; - } else if (type == ol.render.canvas.Instruction.MOVE_TO_LINE_TO) { - goog.asserts.assert(goog.isNumber(instruction[1])); - d = /** @type {number} */ (instruction[1]); - goog.asserts.assert(goog.isNumber(instruction[2])); - dd = /** @type {number} */ (instruction[2]); - context.moveTo(pixelCoordinates[d], pixelCoordinates[d + 1]); - for (d += 2; d < dd; d += 2) { - context.lineTo(pixelCoordinates[d], pixelCoordinates[d + 1]); - } - ++i; - } else if (type == ol.render.canvas.Instruction.SET_FILL_STYLE) { - goog.asserts.assert(goog.isString(instruction[1])); - context.fillStyle = /** @type {string} */ (instruction[1]); - ++i; - } else if (type == ol.render.canvas.Instruction.SET_STROKE_STYLE) { - goog.asserts.assert(goog.isString(instruction[1])); - goog.asserts.assert(goog.isNumber(instruction[2])); - goog.asserts.assert(goog.isString(instruction[3])); - goog.asserts.assert(goog.isString(instruction[4])); - goog.asserts.assert(goog.isNumber(instruction[5])); - goog.asserts.assert(!goog.isNull(instruction[6])); - context.strokeStyle = /** @type {string} */ (instruction[1]); - context.lineWidth = /** @type {number} */ (instruction[2]) * pixelRatio; - context.lineCap = /** @type {string} */ (instruction[3]); - context.lineJoin = /** @type {string} */ (instruction[4]); - context.miterLimit = /** @type {number} */ (instruction[5]); - if (goog.isDef(context.setLineDash)) { - context.setLineDash(/** @type {Array.} */ (instruction[6])); - } - ++i; - } else if (type == ol.render.canvas.Instruction.STROKE) { - context.stroke(); - ++i; - } else { - goog.asserts.fail(); - ++i; // consume the instruction anyway, to avoid an infinite loop + break; + case ol.render.canvas.Instruction.BEGIN_PATH: + context.beginPath(); + ++i; + break; + case ol.render.canvas.Instruction.CLOSE_PATH: + context.closePath(); + ++i; + break; + case ol.render.canvas.Instruction.DRAW_IMAGE: + goog.asserts.assert(goog.isNumber(instruction[1])); + d = /** @type {number} */ (instruction[1]); + goog.asserts.assert(goog.isNumber(instruction[2])); + dd = /** @type {number} */ (instruction[2]); + var image = /** @type {HTMLCanvasElement|HTMLVideoElement|Image} */ + (instruction[3]); + // Remaining arguments in DRAW_IMAGE are in alphabetical order + var anchorX = /** @type {number} */ (instruction[4]) * pixelRatio; + var anchorY = /** @type {number} */ (instruction[5]) * pixelRatio; + var height = /** @type {number} */ (instruction[6]) * pixelRatio; + var rotation = /** @type {number} */ (instruction[7]); + var scale = /** @type {number} */ (instruction[8]); + var snapToPixel = /** @type {boolean|undefined} */ (instruction[9]); + var width = /** @type {number} */ (instruction[10]) * pixelRatio; + for (; d < dd; d += 2) { + var x = pixelCoordinates[d] - anchorX; + var y = pixelCoordinates[d + 1] - anchorY; + if (snapToPixel) { + x = (x + 0.5) | 0; + y = (y + 0.5) | 0; + } + if (scale != 1 || rotation !== 0) { + var centerX = x + anchorX; + var centerY = y + anchorY; + ol.vec.Mat4.makeTransform2D( + localTransform, centerX, centerY, scale, scale, + rotation, -centerX, -centerY); + context.setTransform( + goog.vec.Mat4.getElement(localTransform, 0, 0), + goog.vec.Mat4.getElement(localTransform, 1, 0), + goog.vec.Mat4.getElement(localTransform, 0, 1), + goog.vec.Mat4.getElement(localTransform, 1, 1), + goog.vec.Mat4.getElement(localTransform, 0, 3), + goog.vec.Mat4.getElement(localTransform, 1, 3)); + } + context.drawImage(image, x, y, width, height); + if (scale != 1 || rotation !== 0) { + context.setTransform(1, 0, 0, 1, 0, 0); + } + } + ++i; + break; + case ol.render.canvas.Instruction.END_GEOMETRY: + if (goog.isDef(geometryCallback)) { + geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); + var data = /** @type {Object} */ (instruction[2]); + var result = geometryCallback(geometry, data); + if (result) { + return result; + } + } + ++i; + break; + case ol.render.canvas.Instruction.FILL: + context.fill(); + ++i; + break; + case ol.render.canvas.Instruction.MOVE_TO_LINE_TO: + goog.asserts.assert(goog.isNumber(instruction[1])); + d = /** @type {number} */ (instruction[1]); + goog.asserts.assert(goog.isNumber(instruction[2])); + dd = /** @type {number} */ (instruction[2]); + context.moveTo(pixelCoordinates[d], pixelCoordinates[d + 1]); + for (d += 2; d < dd; d += 2) { + context.lineTo(pixelCoordinates[d], pixelCoordinates[d + 1]); + } + ++i; + break; + case ol.render.canvas.Instruction.SET_FILL_STYLE: + goog.asserts.assert(goog.isString(instruction[1])); + context.fillStyle = /** @type {string} */ (instruction[1]); + ++i; + break; + case ol.render.canvas.Instruction.SET_STROKE_STYLE: + goog.asserts.assert(goog.isString(instruction[1])); + goog.asserts.assert(goog.isNumber(instruction[2])); + goog.asserts.assert(goog.isString(instruction[3])); + goog.asserts.assert(goog.isString(instruction[4])); + goog.asserts.assert(goog.isNumber(instruction[5])); + goog.asserts.assert(!goog.isNull(instruction[6])); + context.strokeStyle = /** @type {string} */ (instruction[1]); + context.lineWidth = /** @type {number} */ (instruction[2]) * pixelRatio; + context.lineCap = /** @type {string} */ (instruction[3]); + context.lineJoin = /** @type {string} */ (instruction[4]); + context.miterLimit = /** @type {number} */ (instruction[5]); + if (goog.isDef(context.setLineDash)) { + context.setLineDash(/** @type {Array.} */ (instruction[6])); + } + ++i; + break; + case ol.render.canvas.Instruction.STROKE: + context.stroke(); + ++i; + break; + default: + goog.asserts.fail(); + ++i; // consume the instruction anyway, to avoid an infinite loop + break; } } // assert that all instructions were consumed From f7be1c155e835497c83366798e32864d563fe3e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 13 Jan 2014 10:45:51 +0100 Subject: [PATCH 838/919] Hit detection refactoring Get the frame state from the map instead of storing values in the layer renderers. --- src/ol/map.js | 8 +++-- src/ol/render/canvas/canvasreplay.js | 2 +- .../canvas/canvasvectorlayerrenderer.js | 29 ++++--------------- src/ol/renderer/layerrenderer.js | 3 +- src/ol/renderer/maprenderer.js | 10 ++++--- 5 files changed, 21 insertions(+), 31 deletions(-) diff --git a/src/ol/map.js b/src/ol/map.js index db3bfcb476..282b83996d 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -457,9 +457,13 @@ ol.Map.prototype.disposeInternal = function() { */ ol.Map.prototype.forEachFeatureAtPixel = function(pixel, callback, opt_obj, opt_layerFunction, opt_obj2) { - // FIXME this function should probably take an options object + if (goog.isNull(this.frameState_)) { + return; + } + var coordinate = this.getCoordinateFromPixel(pixel); return this.renderer_.forEachFeatureAtPixel( - pixel, callback, opt_obj, opt_layerFunction, opt_obj2); + coordinate, this.frameState_, callback, opt_obj, + opt_layerFunction, opt_obj2); }; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index dfbb5cdd09..5a102d66a1 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1317,7 +1317,7 @@ ol.render.canvas.ReplayGroup.prototype.replay_ = * @return {T|undefined} Callback result. * @template T */ -ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtCoordinate = function( +ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtPixel = function( extent, resolution, rotation, coordinate, renderGeometryFunction, callback) { diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index d48be3110a..f0c6eb4df4 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -32,12 +32,6 @@ ol.renderer.canvas.VectorLayer = function(mapRenderer, vectorLayer) { */ this.dirty_ = false; - /** - * @private - * @type {ol.Extent} - */ - this.frameStateExtent_ = ol.extent.createEmpty(); - /** * @private * @type {number} @@ -50,12 +44,6 @@ ol.renderer.canvas.VectorLayer = function(mapRenderer, vectorLayer) { */ this.renderedResolution_ = NaN; - /** - * @private - * @type {number} - */ - this.renderedRotation_ = NaN; - /** * @private * @type {ol.Extent} @@ -101,20 +89,18 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = * @inheritDoc */ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = - function(pixel, callback, opt_obj) { + function(coordinate, frameState, callback, opt_obj) { if (goog.isNull(this.replayGroup_)) { return undefined; } else { - goog.asserts.assert(!ol.extent.isEmpty(this.frameStateExtent_)); - goog.asserts.assert(!isNaN(this.renderedResolution_)); - goog.asserts.assert(!isNaN(this.renderedRotation_)); - var coordinate = this.getMap().getCoordinateFromPixel(pixel); + var extent = frameState.extent; + var resolution = frameState.view2DState.resolution; + var rotation = frameState.view2DState.rotation; var layer = this.getLayer(); var renderGeometryFunction = this.getRenderGeometryFunction_(); goog.asserts.assert(goog.isFunction(renderGeometryFunction)); - return this.replayGroup_.forEachGeometryAtCoordinate(this.frameStateExtent_, - this.renderedResolution_, this.renderedRotation_, coordinate, - renderGeometryFunction, + return this.replayGroup_.forEachGeometryAtPixel(extent, resolution, + rotation, coordinate, renderGeometryFunction, /** * @param {ol.geom.Geometry} geometry Geometry. * @param {Object} data Data. @@ -183,8 +169,6 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = var frameStateResolution = frameState.view2DState.resolution; var pixelRatio = frameState.devicePixelRatio; - this.frameStateExtent_ = frameStateExtent; - if (!this.dirty_ && this.renderedResolution_ == frameStateResolution && this.renderedRevision_ == vectorSource.getRevision() && @@ -225,7 +209,6 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = this.renderedResolution_ = frameStateResolution; this.renderedRevision_ = vectorSource.getRevision(); - this.renderedRotation_ = frameState.view2DState.rotation; if (!replayGroup.isEmpty()) { this.replayGroup_ = replayGroup; } diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index 4365b61258..f626c16724 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -45,7 +45,8 @@ goog.inherits(ol.renderer.Layer, goog.Disposable); /** - * @param {ol.Pixel} pixel Pixel. + * @param {ol.Coordinate} coordinate Coordinate. + * @param {ol.FrameState} frameState Frame state. * @param {function(this: S, ol.Feature, ol.layer.Layer): T} callback Feature * callback. * @param {S=} opt_obj Scope. diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index b460629aac..c46c63d067 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -81,7 +81,8 @@ ol.renderer.Map.prototype.disposeInternal = function() { /** - * @param {ol.Pixel} pixel Pixel. + * @param {ol.Coordinate} coordinate Coordinate. + * @param {ol.FrameState} frameState FrameState. * @param {function(this: S, ol.Feature, ol.layer.Layer): T} callback Feature * callback. * @param {S=} opt_obj Scope for feature callback. @@ -92,7 +93,8 @@ ol.renderer.Map.prototype.disposeInternal = function() { * @template S,T,U */ ol.renderer.Map.prototype.forEachFeatureAtPixel = - function(pixel, callback, opt_obj, opt_layerFunction, opt_obj2) { + function(coordinate, frameState, callback, opt_obj, + opt_layerFunction, opt_obj2) { var layerFunction = goog.isDef(opt_layerFunction) ? opt_layerFunction : goog.functions.TRUE; var layersArray = this.map_.getLayerGroup().getLayersArray(); @@ -101,8 +103,8 @@ ol.renderer.Map.prototype.forEachFeatureAtPixel = var layer = layersArray[i]; if (layer.getVisible() && layerFunction.call(opt_obj2, layer)) { var layerRenderer = this.getLayerRenderer(layer); - var result = - layerRenderer.forEachFeatureAtPixel(pixel, callback, opt_obj); + var result = layerRenderer.forEachFeatureAtPixel( + coordinate, frameState, callback, opt_obj); if (result) { return result; } From 4cd2a75900d433545203f345d7ba553646f5aa51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 13 Jan 2014 11:41:33 +0100 Subject: [PATCH 839/919] Add ol.source.Source#forEachFeatureAtPixel --- src/ol/source/source.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/ol/source/source.js b/src/ol/source/source.js index 2e4b077a4f..d07f916bdb 100644 --- a/src/ol/source/source.js +++ b/src/ol/source/source.js @@ -93,6 +93,19 @@ ol.source.Source.prototype.dispatchChangeEvent = function() { }; +/** + * @param {ol.Extent} extent Extent. + * @param {number} resolution Resolution. + * @param {number} rotation Rotation. + * @param {ol.Coordinate} coordinate Coordinate. + * @param {function(ol.Feature): T} callback Feature callback. + * @return {T|undefined} Callback result. + * @template T + */ +ol.source.Source.prototype.forEachFeatureAtPixel = + goog.nullFunction; + + /** * @return {Array.} Attributions. */ From 849e50517cb5fc281f4907e0115bb668979820b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 13 Jan 2014 11:42:25 +0100 Subject: [PATCH 840/919] Add ol.source.ImageVector#forEachFeatureAtPixel --- src/ol/source/imagevectorsource.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/ol/source/imagevectorsource.js b/src/ol/source/imagevectorsource.js index e5ed007814..28886bef58 100644 --- a/src/ol/source/imagevectorsource.js +++ b/src/ol/source/imagevectorsource.js @@ -73,6 +73,12 @@ ol.source.ImageVector = function(options) { */ this.canvasSize_ = [0, 0]; + /** + * @private + * @type {ol.render.canvas.ReplayGroup} + */ + this.replayGroup_ = null; + goog.base(this, { attributions: options.attributions, canvasFunction: goog.bind(this.canvasFunctionInternal_, this), @@ -135,10 +141,34 @@ ol.source.ImageVector.prototype.canvasFunctionInternal_ = replayGroup.replay(this.canvasContext_, extent, pixelRatio, transform, goog.functions.TRUE); + this.replayGroup_ = replayGroup; + return this.canvasElement_; }; +/** + * @inheritDoc + */ +ol.source.ImageVector.prototype.forEachFeatureAtPixel = + function(extent, resolution, rotation, coordinate, callback) { + if (goog.isNull(this.replayGroup_)) { + return undefined; + } else { + return this.replayGroup_.forEachGeometryAtPixel( + extent, resolution, 0, coordinate, goog.functions.TRUE, + /** + * @param {ol.geom.Geometry} geometry Geometry. + * @param {Object} data Data. + */ + function(geometry, data) { + var feature = /** @type {ol.Feature} */ (data); + return callback(feature); + }); + } +}; + + /** * @param {ol.Coordinate} center Center. * @param {number} resolution Resolution. From ee17babc05c04205a7bcfd832d47d5151535ddc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 13 Jan 2014 11:49:40 +0100 Subject: [PATCH 841/919] Add ol.renderer.canvas.ImageLayer#forEachFeatureAtPixel --- .../canvas/canvasimagelayerrenderer.js | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index 5e004f6b96..683449b737 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -41,6 +41,27 @@ ol.renderer.canvas.ImageLayer = function(mapRenderer, imageLayer) { goog.inherits(ol.renderer.canvas.ImageLayer, ol.renderer.canvas.Layer); +/** + * @inheritDoc + */ +ol.renderer.canvas.ImageLayer.prototype.forEachFeatureAtPixel = + function(coordinate, frameState, callback, opt_obj) { + var layer = this.getLayer(); + var source = layer.getSource(); + goog.asserts.assertInstanceof(source, ol.source.Image); + var extent = frameState.extent; + var resolution = frameState.view2DState.resolution; + var rotation = frameState.view2DState.rotation; + return source.forEachFeatureAtPixel(extent, resolution, rotation, coordinate, + /** + * @param {ol.Feature} feature Feature. + */ + function(feature) { + return callback.call(opt_obj, feature, this); + }); +}; + + /** * @inheritDoc */ From a15bacd963cf3135612eaeb514ef595904728f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 13 Jan 2014 11:50:06 +0100 Subject: [PATCH 842/919] Add ol.renderer.dom.ImageLayer#forEachFeatureAtPixel --- src/ol/renderer/dom/domimagelayerrenderer.js | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ol/renderer/dom/domimagelayerrenderer.js b/src/ol/renderer/dom/domimagelayerrenderer.js index 05e7a0d792..9f2a0bd68a 100644 --- a/src/ol/renderer/dom/domimagelayerrenderer.js +++ b/src/ol/renderer/dom/domimagelayerrenderer.js @@ -46,6 +46,27 @@ ol.renderer.dom.ImageLayer = function(mapRenderer, imageLayer) { goog.inherits(ol.renderer.dom.ImageLayer, ol.renderer.dom.Layer); +/** + * @inheritDoc + */ +ol.renderer.dom.ImageLayer.prototype.forEachFeatureAtPixel = + function(coordinate, frameState, callback, opt_obj) { + var layer = this.getLayer(); + var source = layer.getSource(); + goog.asserts.assertInstanceof(source, ol.source.Image); + var extent = frameState.extent; + var resolution = frameState.view2DState.resolution; + var rotation = frameState.view2DState.rotation; + return source.forEachFeatureAtPixel(extent, resolution, rotation, coordinate, + /** + * @param {ol.Feature} feature Feature. + */ + function(feature) { + return callback.call(opt_obj, feature, this); + }); +}; + + /** * @inheritDoc */ From 6c30710d0c888a0e5818b2b2a4eab2b11e2a995c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 13 Jan 2014 11:50:23 +0100 Subject: [PATCH 843/919] Add ol.renderer.webgl.ImageLayer#forEachFeatureAtPixel --- .../renderer/webgl/webglimagelayerrenderer.js | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ol/renderer/webgl/webglimagelayerrenderer.js b/src/ol/renderer/webgl/webglimagelayerrenderer.js index 4336ea8e37..a1588b1d28 100644 --- a/src/ol/renderer/webgl/webglimagelayerrenderer.js +++ b/src/ol/renderer/webgl/webglimagelayerrenderer.js @@ -72,6 +72,27 @@ ol.renderer.webgl.ImageLayer.prototype.createTexture_ = function(image) { }; +/** + * @inheritDoc + */ +ol.renderer.webgl.ImageLayer.prototype.forEachFeatureAtPixel = + function(coordinate, frameState, callback, opt_obj) { + var layer = this.getLayer(); + var source = layer.getSource(); + goog.asserts.assertInstanceof(source, ol.source.Image); + var extent = frameState.extent; + var resolution = frameState.view2DState.resolution; + var rotation = frameState.view2DState.rotation; + return source.forEachFeatureAtPixel(extent, resolution, rotation, coordinate, + /** + * @param {ol.Feature} feature Feature. + */ + function(feature) { + return callback.call(opt_obj, feature, this); + }); +}; + + /** * @inheritDoc */ From b52b2223a612fce88d28cba7da3ac4cff5bd3b1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 13 Jan 2014 11:50:41 +0100 Subject: [PATCH 844/919] Add hit detection to image-vector-layer example --- examples/image-vector-layer.html | 10 ++++-- examples/image-vector-layer.js | 58 ++++++++++++++++++++++++++++++-- 2 files changed, 64 insertions(+), 4 deletions(-) diff --git a/examples/image-vector-layer.html b/examples/image-vector-layer.html index b8a37b6d5f..9531bbc7a4 100644 --- a/examples/image-vector-layer.html +++ b/examples/image-vector-layer.html @@ -30,22 +30,28 @@
-
+

Image vector example

Example of an image vector layer.

This example uses a ol.source.ImageVector source. That source gets vector features from the - ol.source.Vector it's configured with and draw these features to an HTML5 canvas element that + ol.source.Vector it's configured with, and draw these features to an HTML5 canvas element that is then used as the image of an image layer.

See the image-vector-layer.js source to see how this is done.

vector, image
+
+
+   +
+
+ diff --git a/examples/image-vector-layer.js b/examples/image-vector-layer.js index 76e6e83dae..279bb5f284 100644 --- a/examples/image-vector-layer.js +++ b/examples/image-vector-layer.js @@ -1,8 +1,9 @@ goog.require('ol.Map'); -goog.require('ol.RendererHints'); +goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); +goog.require('ol.render.FeaturesOverlay'); goog.require('ol.source.GeoJSON'); goog.require('ol.source.ImageVector'); goog.require('ol.source.MapQuest'); @@ -37,10 +38,63 @@ var map = new ol.Map({ }) }) ], - renderers: ol.RendererHints.createFromQueryData(), + renderer: ol.RendererHint.CANVAS, target: 'map', view: new ol.View2D({ center: [0, 0], zoom: 1 }) }); + +var highlightStyleArray = [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: '#f00', + width: 1 + }), + fill: new ol.style.Fill({ + color: 'rgba(255,0,0,0.1)' + }) +})]; + +var featuresOverlay = new ol.render.FeaturesOverlay({ + map: map, + styleFunction: function(feature, resolution) { + return highlightStyleArray; + } +}); + +var highlight; +var displayFeatureInfo = function(pixel) { + + var feature = map.forEachFeatureAtPixel(pixel, function(feature, layer) { + return feature; + }); + + var info = document.getElementById('info'); + if (feature) { + info.innerHTML = feature.getId() + ': ' + feature.get('name'); + } else { + info.innerHTML = ' '; + } + + if (feature !== highlight) { + if (highlight) { + featuresOverlay.removeFeature(highlight); + } + if (feature) { + featuresOverlay.addFeature(feature); + } + highlight = feature; + } + +}; + +$(map.getViewport()).on('mousemove', function(evt) { + var pixel = map.getEventPixel(evt.originalEvent); + displayFeatureInfo(pixel); +}); + +map.on('singleclick', function(evt) { + var pixel = evt.getPixel(); + displayFeatureInfo(pixel); +}); From 542cf80da989eaeb8c51caf231335803e698ae6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 13 Jan 2014 12:03:20 +0100 Subject: [PATCH 845/919] Better typing --- src/ol/renderer/canvas/canvasimagelayerrenderer.js | 1 + src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 1 + src/ol/renderer/dom/domimagelayerrenderer.js | 1 + src/ol/renderer/webgl/webglimagelayerrenderer.js | 1 + src/ol/source/imagevectorsource.js | 1 + 5 files changed, 5 insertions(+) diff --git a/src/ol/renderer/canvas/canvasimagelayerrenderer.js b/src/ol/renderer/canvas/canvasimagelayerrenderer.js index 683449b737..7f17c14ee3 100644 --- a/src/ol/renderer/canvas/canvasimagelayerrenderer.js +++ b/src/ol/renderer/canvas/canvasimagelayerrenderer.js @@ -55,6 +55,7 @@ ol.renderer.canvas.ImageLayer.prototype.forEachFeatureAtPixel = return source.forEachFeatureAtPixel(extent, resolution, rotation, coordinate, /** * @param {ol.Feature} feature Feature. + * @return {?} Callback result. */ function(feature) { return callback.call(opt_obj, feature, this); diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index f0c6eb4df4..d1c973e293 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -104,6 +104,7 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel = /** * @param {ol.geom.Geometry} geometry Geometry. * @param {Object} data Data. + * @return {?} Callback result. */ function(geometry, data) { var feature = /** @type {ol.Feature} */ (data); diff --git a/src/ol/renderer/dom/domimagelayerrenderer.js b/src/ol/renderer/dom/domimagelayerrenderer.js index 9f2a0bd68a..62637b0548 100644 --- a/src/ol/renderer/dom/domimagelayerrenderer.js +++ b/src/ol/renderer/dom/domimagelayerrenderer.js @@ -60,6 +60,7 @@ ol.renderer.dom.ImageLayer.prototype.forEachFeatureAtPixel = return source.forEachFeatureAtPixel(extent, resolution, rotation, coordinate, /** * @param {ol.Feature} feature Feature. + * @return {?} Callback result. */ function(feature) { return callback.call(opt_obj, feature, this); diff --git a/src/ol/renderer/webgl/webglimagelayerrenderer.js b/src/ol/renderer/webgl/webglimagelayerrenderer.js index a1588b1d28..466fa0f8ed 100644 --- a/src/ol/renderer/webgl/webglimagelayerrenderer.js +++ b/src/ol/renderer/webgl/webglimagelayerrenderer.js @@ -86,6 +86,7 @@ ol.renderer.webgl.ImageLayer.prototype.forEachFeatureAtPixel = return source.forEachFeatureAtPixel(extent, resolution, rotation, coordinate, /** * @param {ol.Feature} feature Feature. + * @return {?} Callback result. */ function(feature) { return callback.call(opt_obj, feature, this); diff --git a/src/ol/source/imagevectorsource.js b/src/ol/source/imagevectorsource.js index 28886bef58..81a790bf89 100644 --- a/src/ol/source/imagevectorsource.js +++ b/src/ol/source/imagevectorsource.js @@ -160,6 +160,7 @@ ol.source.ImageVector.prototype.forEachFeatureAtPixel = /** * @param {ol.geom.Geometry} geometry Geometry. * @param {Object} data Data. + * @return {?} Callback result. */ function(geometry, data) { var feature = /** @type {ol.Feature} */ (data); From 3647f13e2ee20ebf8b79883a6997215e2a7cba6a Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 12 Jan 2014 20:37:31 +0100 Subject: [PATCH 846/919] Add ol.geom.Circle --- src/ol/geom/circle.exports | 11 ++ src/ol/geom/circle.js | 192 +++++++++++++++++++++++++++++++ src/ol/geom/geometry.js | 3 +- test/spec/ol/geom/circle.test.js | 192 +++++++++++++++++++++++++++++++ 4 files changed, 397 insertions(+), 1 deletion(-) create mode 100644 src/ol/geom/circle.exports create mode 100644 src/ol/geom/circle.js create mode 100644 test/spec/ol/geom/circle.test.js diff --git a/src/ol/geom/circle.exports b/src/ol/geom/circle.exports new file mode 100644 index 0000000000..e08d6f83be --- /dev/null +++ b/src/ol/geom/circle.exports @@ -0,0 +1,11 @@ +@exportSymbol ol.geom.Circle +@exportProperty ol.geom.Circle.prototype.clone +@exportProperty ol.geom.Circle.prototype.getCenter +@exportProperty ol.geom.Circle.prototype.getExtent +@exportProperty ol.geom.Circle.prototype.getRadius +@exportProperty ol.geom.Circle.prototype.getSimplifiedGeometry +@exportProperty ol.geom.Circle.prototype.getType +@exportProperty ol.geom.Circle.prototype.setCenter +@exportProperty ol.geom.Circle.prototype.setCenterAndRadius +@exportProperty ol.geom.Circle.prototype.setRadius +@exportProperty ol.geom.Circle.prototype.transform diff --git a/src/ol/geom/circle.js b/src/ol/geom/circle.js new file mode 100644 index 0000000000..ea3a3343d8 --- /dev/null +++ b/src/ol/geom/circle.js @@ -0,0 +1,192 @@ +goog.provide('ol.geom.Circle'); + +goog.require('goog.asserts'); +goog.require('ol.extent'); +goog.require('ol.geom.GeometryType'); +goog.require('ol.geom.SimpleGeometry'); +goog.require('ol.geom.flat'); + + + +/** + * @constructor + * @extends {ol.geom.SimpleGeometry} + * @param {ol.geom.RawPoint} center Center. + * @param {number=} opt_radius Radius. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. + */ +ol.geom.Circle = function(center, opt_radius, opt_layout) { + goog.base(this); + var radius = goog.isDef(opt_radius) ? opt_radius : 0; + this.setCenterAndRadius(center, radius, opt_layout); +}; +goog.inherits(ol.geom.Circle, ol.geom.SimpleGeometry); + + +/** + * @inheritDoc + */ +ol.geom.Circle.prototype.clone = function() { + var circle = new ol.geom.Circle(null); + circle.setFlatCoordinates(this.layout, this.flatCoordinates.slice()); + return circle; +}; + + +/** + * @inheritDoc + */ +ol.geom.Circle.prototype.closestPointXY = + function(x, y, closestPoint, minSquaredDistance) { + var flatCoordinates = this.flatCoordinates; + var radius = flatCoordinates[this.stride] - flatCoordinates[0]; + var dx = x - flatCoordinates[0]; + var dy = y - flatCoordinates[1]; + var distance = Math.max(Math.sqrt(dx * dx + dy * dy) - radius, 0); + var squaredDistance = distance * distance; + if (squaredDistance < minSquaredDistance) { + // FIXME it must be possible to do this without trigonometric functions + var theta = Math.atan2(dy, dx); + closestPoint[0] = flatCoordinates[0] + radius * Math.cos(theta); + closestPoint[1] = flatCoordinates[1] + radius * Math.sin(theta); + return squaredDistance; + } else { + return minSquaredDistance; + } +}; + + +/** + * @inheritDoc + */ +ol.geom.Circle.prototype.containsXY = function(x, y) { + var flatCoordinates = this.flatCoordinates; + var dx = x - flatCoordinates[0]; + var dy = y - flatCoordinates[1]; + var r = flatCoordinates[this.stride] - flatCoordinates[0]; + return dx * dx + dy * dy <= r; +}; + + +/** + * @return {ol.geom.RawPoint} Center. + */ +ol.geom.Circle.prototype.getCenter = function() { + return this.flatCoordinates.slice(0, this.stride); +}; + + +/** + * @inheritDoc + */ +ol.geom.Circle.prototype.getExtent = function(opt_extent) { + if (this.extentRevision != this.revision) { + var flatCoordinates = this.flatCoordinates; + var radius = flatCoordinates[this.stride] - flatCoordinates[0]; + this.extent = ol.extent.createOrUpdate( + flatCoordinates[0] - radius, flatCoordinates[1] - radius, + flatCoordinates[0] + radius, flatCoordinates[1] + radius, + this.extent); + this.extentRevision = this.revision; + } + goog.asserts.assert(goog.isDef(this.extent)); + return ol.extent.returnOrUpdate(this.extent, opt_extent); +}; + + +/** + * @return {number} Radius. + */ +ol.geom.Circle.prototype.getRadius = function() { + var dx = this.flatCoordinates[this.stride] - this.flatCoordinates[0]; + var dy = this.flatCoordinates[this.stride + 1] - this.flatCoordinates[1]; + return Math.sqrt(dx * dx + dy * dy); +}; + + +/** + * @inheritDoc + */ +ol.geom.Circle.prototype.getSimplifiedGeometry = function(squaredTolerance) { + return this; +}; + + +/** + * @inheritDoc + */ +ol.geom.Circle.prototype.getType = function() { + return ol.geom.GeometryType.CIRCLE; +}; + + +/** + * @param {ol.geom.RawPoint} center Center. + */ +ol.geom.Circle.prototype.setCenter = function(center) { + var stride = this.stride; + goog.asserts.assert(center.length == stride); + var radius = this.flatCoordinates[stride] - this.flatCoordinates[0]; + var flatCoordinates = center.slice(); + flatCoordinates[stride] = flatCoordinates[0] + radius; + var i; + for (i = 1; i < stride; ++i) { + flatCoordinates[stride + i] = center[i]; + } + this.setFlatCoordinates(this.layout, flatCoordinates); +}; + + +/** + * @param {ol.geom.RawPoint} center Center. + * @param {number} radius Radius. + * @param {ol.geom.GeometryLayout=} opt_layout Layout. + */ +ol.geom.Circle.prototype.setCenterAndRadius = + function(center, radius, opt_layout) { + if (goog.isNull(center)) { + this.setFlatCoordinates(ol.geom.GeometryLayout.XY, null); + } else { + this.setLayout(opt_layout, center, 0); + if (goog.isNull(this.flatCoordinates)) { + this.flatCoordinates = []; + } + var flatCoordinates = this.flatCoordinates; + var offset = ol.geom.flat.deflateCoordinate( + flatCoordinates, 0, center, this.stride); + flatCoordinates[offset++] = flatCoordinates[0] + radius; + var i, ii; + for (i = 1, ii = this.stride; i < ii; ++i) { + flatCoordinates[offset++] = flatCoordinates[i]; + } + flatCoordinates.length = offset; + this.dispatchChangeEvent(); + } +}; + + +/** + * @param {ol.geom.GeometryLayout} layout Layout. + * @param {Array.} flatCoordinates Flat coordinates. + */ +ol.geom.Circle.prototype.setFlatCoordinates = + function(layout, flatCoordinates) { + this.setFlatCoordinatesInternal(layout, flatCoordinates); + this.dispatchChangeEvent(); +}; + + +/** + * @param {number} radius Radius. + */ +ol.geom.Circle.prototype.setRadius = function(radius) { + goog.asserts.assert(!goog.isNull(this.flatCoordinates)); + this.flatCoordinates[this.stride] = this.flatCoordinates[0] + radius; + this.dispatchChangeEvent(); +}; + + +/** + * @inheritDoc + */ +ol.geom.Circle.prototype.transform = goog.abstractMethod; diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index bb93809b62..7a41e08503 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -18,7 +18,8 @@ ol.geom.GeometryType = { MULTI_POINT: 'MultiPoint', MULTI_LINE_STRING: 'MultiLineString', MULTI_POLYGON: 'MultiPolygon', - GEOMETRY_COLLECTION: 'GeometryCollection' + GEOMETRY_COLLECTION: 'GeometryCollection', + CIRCLE: 'Circle' }; diff --git a/test/spec/ol/geom/circle.test.js b/test/spec/ol/geom/circle.test.js new file mode 100644 index 0000000000..e7e6fa119d --- /dev/null +++ b/test/spec/ol/geom/circle.test.js @@ -0,0 +1,192 @@ +goog.provide('ol.test.geom.Circle'); + + +describe('ol.geom.Circle', function() { + + describe('with a unit circle', function() { + + var circle; + beforeEach(function() { + circle = new ol.geom.Circle([0, 0], 1); + }); + + describe('#clone', function() { + + it('returns a clone', function() { + var clone = circle.clone(); + expect(clone).to.be.an(ol.geom.Circle); + expect(clone.getCenter()).to.eql(circle.getCenter()); + expect(clone.getCenter()).not.to.be(circle.getCenter()); + expect(clone.getRadius()).to.be(circle.getRadius()); + }); + + }); + + describe('#containsCoordinate', function() { + + it('contains the center', function() { + expect(circle.containsCoordinate([0, 0])).to.be(true); + }); + + it('contains points inside the perimeter', function() { + expect(circle.containsCoordinate([0.5, 0.5])).to.be(true); + expect(circle.containsCoordinate([-0.5, 0.5])).to.be(true); + expect(circle.containsCoordinate([-0.5, -0.5])).to.be(true); + expect(circle.containsCoordinate([0.5, -0.5])).to.be(true); + }); + + it('contains points on the perimeter', function() { + expect(circle.containsCoordinate([1, 0])).to.be(true); + expect(circle.containsCoordinate([0, 1])).to.be(true); + expect(circle.containsCoordinate([-1, 0])).to.be(true); + expect(circle.containsCoordinate([0, -1])).to.be(true); + }); + + it('does not contain points outside the perimeter', function() { + expect(circle.containsCoordinate([2, 0])).to.be(false); + expect(circle.containsCoordinate([1, 1])).to.be(false); + expect(circle.containsCoordinate([-2, 0])).to.be(false); + expect(circle.containsCoordinate([0, -2])).to.be(false); + }); + + }); + + describe('#getCenter', function() { + + it('returns the expected value', function() { + expect(circle.getCenter()).to.eql([0, 0]); + }); + + }); + + describe('#getClosestPoint', function() { + + it('returns the closest point on the perimeter', function() { + var closestPoint; + closestPoint = circle.getClosestPoint([2, 0]); + expect(closestPoint[0]).to.roughlyEqual(1, 1e-15); + expect(closestPoint[1]).to.roughlyEqual(0, 1e-15); + closestPoint = circle.getClosestPoint([2, 2]); + expect(closestPoint[0]).to.roughlyEqual(Math.sqrt(0.5), 1e-15); + expect(closestPoint[1]).to.roughlyEqual(Math.sqrt(0.5), 1e-15); + closestPoint = circle.getClosestPoint([0, 2]); + expect(closestPoint[0]).to.roughlyEqual(0, 1e-15); + expect(closestPoint[1]).to.roughlyEqual(1, 1e-15); + closestPoint = circle.getClosestPoint([-2, 2]); + expect(closestPoint[0]).to.roughlyEqual(-Math.sqrt(0.5), 1e-15); + expect(closestPoint[1]).to.roughlyEqual(Math.sqrt(0.5), 1e-15); + closestPoint = circle.getClosestPoint([-2, 0]); + expect(closestPoint[0]).to.roughlyEqual(-1, 1e-15); + expect(closestPoint[1]).to.roughlyEqual(0, 1e-15); + closestPoint = circle.getClosestPoint([-2, -2]); + expect(closestPoint[0]).to.roughlyEqual(-Math.sqrt(0.5), 1e-15); + expect(closestPoint[1]).to.roughlyEqual(-Math.sqrt(0.5), 1e-15); + closestPoint = circle.getClosestPoint([0, -2]); + expect(closestPoint[0]).to.roughlyEqual(0, 1e-15); + expect(closestPoint[1]).to.roughlyEqual(-1, 1e-15); + closestPoint = circle.getClosestPoint([2, -2]); + expect(closestPoint[0]).to.roughlyEqual(Math.sqrt(0.5), 1e-15); + expect(closestPoint[1]).to.roughlyEqual(-Math.sqrt(0.5), 1e-15); + }); + + }); + + describe('#getExtent', function() { + + it('returns the expected value', function() { + expect(circle.getExtent()).to.eql([-1, -1, 1, 1]); + }); + + }); + + describe('#getRadius', function() { + + it('returns the expected value', function() { + expect(circle.getRadius()).to.be(1); + }); + + }); + + describe('#getSimplifiedGeometry', function() { + + it('returns the same geometry', function() { + expect(circle.getSimplifiedGeometry(1)).to.be(circle); + }); + + }); + + describe('#getType', function() { + + it('returns the expected value', function() { + expect(circle.getType()).to.be(ol.geom.GeometryType.CIRCLE); + }); + + }); + + describe('#setCenter', function() { + + it('sets the center', function() { + circle.setCenter([1, 2]); + expect(circle.getCenter()).to.eql([1, 2]); + }); + + it('fires a change event', function() { + var spy = sinon.spy(); + circle.on('change', spy); + circle.setCenter([1, 2]); + expect(spy.calledOnce).to.be(true); + }); + + }); + + describe('#setFlatCoordinates', function() { + + it('sets both center and radius', function() { + circle.setFlatCoordinates(ol.geom.GeometryLayout.XY, [1, 2, 4, 2]); + expect(circle.getCenter()).to.eql([1, 2]); + expect(circle.getRadius()).to.be(3); + }); + + it('fires a single change event', function() { + var spy = sinon.spy(); + circle.on('change', spy); + circle.setFlatCoordinates(ol.geom.GeometryLayout.XY, [1, 2, 4, 2]); + expect(spy.calledOnce).to.be(true); + }); + + }); + + describe('#setRadius', function() { + + it('sets the radius', function() { + circle.setRadius(2); + expect(circle.getRadius()).to.be(2); + }); + + it('fires a change event', function() { + var spy = sinon.spy(); + circle.on('change', spy); + circle.setRadius(2); + expect(spy.calledOnce).to.be(true); + }); + + }); + + describe('#transform', function() { + + it('throws an exception', function() { + expect(function() { + circle.transform(ol.proj.identityTransform); + }).to.throwException(); + }); + + }); + + }); + +}); + + +goog.require('ol.geom.Circle'); +goog.require('ol.geom.GeometryType'); +goog.require('ol.proj'); From b2b74a5ee6e53695798cdf4895307095482ea1b1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 12 Jan 2014 20:38:06 +0100 Subject: [PATCH 847/919] Add ol.render.IRender#drawCircleGeometry --- src/ol/render/canvas/canvasreplay.js | 6 ++++++ src/ol/render/irender.js | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 25d263dbc2..cd354b1848 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -379,6 +379,12 @@ ol.render.canvas.Replay.prototype.reverseHitDetectionInstructions_ = ol.render.canvas.Replay.prototype.drawAsync = goog.abstractMethod; +/** + * @inheritDoc + */ +ol.render.canvas.Replay.prototype.drawCircleGeometry = goog.abstractMethod; + + /** * @inheritDoc */ diff --git a/src/ol/render/irender.js b/src/ol/render/irender.js index 8536e8318e..f65eea30fe 100644 --- a/src/ol/render/irender.js +++ b/src/ol/render/irender.js @@ -19,6 +19,15 @@ ol.render.IRender.prototype.drawAsync = function(zIndex, callback) { }; +/** + * @param {ol.geom.Circle} circleGeometry Circle geometry. + * @param {Object} data Opaque data object, + */ +ol.render.IRender.prototype.drawCircleGeometry = + function(circleGeometry, data) { +}; + + /** * @param {ol.Feature} feature Feature. * @param {ol.style.Style} style Style. From 5df47634f38a09480c326ccd221bfe11c316e7a2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 12 Jan 2014 20:38:40 +0100 Subject: [PATCH 848/919] Add ol.render.webgl.Immediate#drawCircleGeometry --- src/ol/render/webgl/webglimmediate.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ol/render/webgl/webglimmediate.js b/src/ol/render/webgl/webglimmediate.js index 70308b7964..d6f7aac533 100644 --- a/src/ol/render/webgl/webglimmediate.js +++ b/src/ol/render/webgl/webglimmediate.js @@ -20,6 +20,14 @@ ol.render.webgl.Immediate.prototype.drawAsync = function(zIndex, callback) { }; +/** + * @inheritDoc + */ +ol.render.webgl.Immediate.prototype.drawCircleGeometry = + function(circleGeometry, data) { +}; + + /** * @inheritDoc */ From a8f5dff9cf4841f5fffdfa8be518ab9b3655f26d Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 12 Jan 2014 20:39:29 +0100 Subject: [PATCH 849/919] Add ol.render.canvas.Immediate#drawCircleGeometry --- src/ol/render/canvas/canvasimmediate.js | 36 ++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index e0493fd144..ec8c7deeef 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -263,6 +263,39 @@ ol.render.canvas.Immediate.prototype.drawAsync = function(zIndex, callback) { }; +/** + * @inheritDoc + */ +ol.render.canvas.Immediate.prototype.drawCircleGeometry = + function(circleGeometry, data) { + /* + if (!ol.extent.intersects(this.extent_, circleGeometry.getExtent())) { + return; + } + var state = this.state_; + if (!goog.isDef(state.fillStyle) && !goog.isDef(state.strokeStyle)) { + return; + } + this.setFillStrokeStyles_(); + var context = this.context_; + var pixelCoordinates = ol.geom.transformSimpleGeometry2D( + circleGeometry, this.transform_, this.pixelCoordinates_); + var dx = pixelCoordinates[2] - pixelCoordinates[0]; + var dy = pixelCoordinates[3] - pixelCoordinates[1]; + var radius = Math.sqrt(dx * dx + dy * dy); + context.beginPath(); + context.arc(pixelCoordinates[0], pixelCoordinates[1], radius, 0, 2 * Math.PI); + if (goog.isDef(state.fillStyle)) { + context.fill(); + } + if (goog.isDef(state.strokeStyle)) { + goog.asserts.assert(goog.isDef(state.lineWidth)); + context.stroke(); + } + */ +}; + + /** * @inheritDoc */ @@ -597,5 +630,6 @@ ol.render.canvas.Immediate.GEOMETRY_RENDERES_ = { ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry, 'MultiPolygon': ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry, 'GeometryCollection': - ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry + ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry, + 'Circle': ol.render.canvas.Immediate.prototype.drawCircleGeometry }; From 5052bef4a553c3db7eae311f2c9ea759474958e2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 12 Jan 2014 20:40:15 +0100 Subject: [PATCH 850/919] Add ol.replay.canvas.Instruction.CIRCLE --- src/ol/render/canvas/canvasreplay.js | 31 ++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index cd354b1848..e8df00fe62 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -27,14 +27,15 @@ goog.require('ol.vec.Mat4'); ol.render.canvas.Instruction = { BEGIN_GEOMETRY: 0, BEGIN_PATH: 1, - CLOSE_PATH: 2, - DRAW_IMAGE: 3, - END_GEOMETRY: 4, - FILL: 5, - MOVE_TO_LINE_TO: 6, - SET_FILL_STYLE: 7, - SET_STROKE_STYLE: 8, - STROKE: 9 + CIRCLE: 2, + CLOSE_PATH: 3, + DRAW_IMAGE: 4, + END_GEOMETRY: 5, + FILL: 6, + MOVE_TO_LINE_TO: 7, + SET_FILL_STYLE: 8, + SET_STROKE_STYLE: 9, + STROKE: 10 }; @@ -178,7 +179,7 @@ ol.render.canvas.Replay.prototype.replay_ = } var i = 0; // instruction index var ii = instructions.length; // end of instructions - var d; // data index + var d = 0; // data index var dd; // end of per-instruction data var localTransform = this.tmpLocalTransform_; while (i < ii) { @@ -198,6 +199,18 @@ ol.render.canvas.Replay.prototype.replay_ = context.beginPath(); ++i; break; + case ol.render.canvas.Instruction.CIRCLE: + var x1 = pixelCoordinates[d]; + var y1 = pixelCoordinates[d + 1]; + var x2 = pixelCoordinates[d + 2]; + var y2 = pixelCoordinates[d + 3]; + var dx = x2 - x1; + var dy = y2 - y1; + var r = Math.sqrt(dx * dx + dy * dy); + context.arc(x1, y1, r, 0, 2 * Math.PI, true); + d += 4; + ++i; + break; case ol.render.canvas.Instruction.CLOSE_PATH: context.closePath(); ++i; From 825c5290f6e21ae08cf9d8df252934bfd79e4fe9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 12 Jan 2014 20:42:11 +0100 Subject: [PATCH 851/919] Add ol.render.canvas.PolygonReplay#drawCircleGeometry --- src/ol/render/canvas/canvasreplay.js | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index e8df00fe62..f1b347bebf 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1016,6 +1016,57 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ = }; +/** + * @inheritDoc + */ +ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry = + function(circleGeometry, data) { + var state = this.state_; + goog.asserts.assert(!goog.isNull(state)); + var fillStyle = state.fillStyle; + var strokeStyle = state.strokeStyle; + if (!goog.isDef(fillStyle) && !goog.isDef(strokeStyle)) { + return; + } + if (goog.isDef(strokeStyle)) { + goog.asserts.assert(goog.isDef(state.lineWidth)); + } + ol.extent.extend(this.extent_, circleGeometry.getExtent()); + this.setFillStrokeStyles_(); + this.beginGeometry(circleGeometry); + // always fill the circle for hit detection + this.hitDetectionInstructions.push( + [ol.render.canvas.Instruction.SET_FILL_STYLE, + ol.color.asString(ol.render.canvas.defaultFillStyle)]); + if (goog.isDef(state.strokeStyle)) { + this.hitDetectionInstructions.push( + [ol.render.canvas.Instruction.SET_STROKE_STYLE, + state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin, + state.miterLimit, state.lineDash]); + } + var flatCoordinates = circleGeometry.getFlatCoordinates(); + var stride = circleGeometry.getStride(); + this.appendFlatCoordinates( + flatCoordinates, 0, flatCoordinates.length, stride, false); + var beginPathInstruction = [ol.render.canvas.Instruction.BEGIN_PATH]; + var circleInstruction = [ol.render.canvas.Instruction.CIRCLE]; + this.instructions.push(beginPathInstruction, circleInstruction); + this.hitDetectionInstructions.push(beginPathInstruction, circleInstruction); + this.endGeometry(circleGeometry, data); + var fillInstruction = [ol.render.canvas.Instruction.FILL]; + this.hitDetectionInstructions.push(fillInstruction); + if (goog.isDef(state.fillStyle)) { + this.instructions.push(fillInstruction); + } + if (goog.isDef(state.strokeStyle)) { + goog.asserts.assert(goog.isDef(state.lineWidth)); + var strokeInstruction = [ol.render.canvas.Instruction.STROKE]; + this.instructions.push(strokeInstruction); + this.hitDetectionInstructions.push(strokeInstruction); + } +}; + + /** * @inheritDoc */ From 8dde621e610967388f632042c25b19ac0e775cb2 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 12 Jan 2014 20:42:36 +0100 Subject: [PATCH 852/919] add ol.render.vector.renderCircleGeometry_ --- src/ol/render/vector.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index 409a73f38a..4d5d46aab6 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -1,6 +1,7 @@ goog.provide('ol.renderer.vector'); goog.require('goog.asserts'); +goog.require('ol.geom.Circle'); goog.require('ol.geom.GeometryCollection'); goog.require('ol.geom.LineString'); goog.require('ol.geom.MultiLineString'); @@ -12,6 +13,29 @@ goog.require('ol.render.IReplayGroup'); goog.require('ol.style.Style'); +/** + * @param {ol.render.IReplayGroup} replayGroup Replay group. + * @param {ol.geom.Geometry} geometry Geometry. + * @param {ol.style.Style} style Style. + * @param {Object} data Opaque data object. + * @private + */ +ol.renderer.vector.renderCircleGeometry_ = + function(replayGroup, geometry, style, data) { + var fillStyle = style.getFill(); + var strokeStyle = style.getStroke(); + if (goog.isNull(fillStyle) && goog.isNull(strokeStyle)) { + return; + } + goog.asserts.assertInstanceof(geometry, ol.geom.Circle); + var circleGeometry = /** @type {ol.geom.Circle} */ (geometry); + var replay = replayGroup.getReplay( + style.getZIndex(), ol.render.ReplayType.POLYGON); + replay.setFillStrokeStyle(fillStyle, strokeStyle); + replay.drawCircleGeometry(circleGeometry, data); +}; + + /** * @param {ol.render.IReplayGroup} replayGroup Replay group. * @param {ol.Feature} feature Feature. @@ -196,5 +220,6 @@ ol.renderer.vector.GEOMETRY_RENDERERS_ = { 'MultiPoint': ol.renderer.vector.renderMultiPointGeometry_, 'MultiLineString': ol.renderer.vector.renderMultiLineStringGeometry_, 'MultiPolygon': ol.renderer.vector.renderMultiPolygonGeometry_, - 'GeometryCollection': ol.renderer.vector.renderGeometryCollectionGeometry_ + 'GeometryCollection': ol.renderer.vector.renderGeometryCollectionGeometry_, + 'Circle': ol.renderer.vector.renderCircleGeometry_ }; From f0d9a451e526d5bfcded390fae3decb2ca41d243 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 12 Jan 2014 20:44:32 +0100 Subject: [PATCH 853/919] Add an ol.geom.Circle to geojson example --- examples/geojson.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/examples/geojson.js b/examples/geojson.js index 19a9572977..13d7c0f70d 100644 --- a/examples/geojson.js +++ b/examples/geojson.js @@ -2,6 +2,7 @@ goog.require('ol.Feature'); goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); +goog.require('ol.geom.Circle'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.source.GeoJSON'); @@ -71,6 +72,15 @@ var styles = { color: 'magenta' }) }) + })], + 'Circle': [new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'red', + width: 2 + }), + fill: new ol.style.Fill({ + color: 'rgba(255,0,0,0.2)' + }) })] }; @@ -164,6 +174,8 @@ var vectorSource = new ol.source.GeoJSON( } })); +vectorSource.addFeature(new ol.Feature(new ol.geom.Circle([5e6, 7e6], 1e6))); + var vectorLayer = new ol.layer.Vector({ source: vectorSource, styleFunction: styleFunction From 5886d0dec097abd6bda9283721d7e6bae31604b7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 12 Jan 2014 21:54:13 +0100 Subject: [PATCH 854/919] Add FIXME to geolocation example --- examples/geolocation.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/geolocation.js b/examples/geolocation.js index ceaee64199..0197b181bd 100644 --- a/examples/geolocation.js +++ b/examples/geolocation.js @@ -1,3 +1,7 @@ +// FIXME use an ol.geom.Circle to display a circle with accuracy +// FIXME this circle will need to compensate for the pointResolution of the +// FIXME EPSG:3857 projection + goog.require('ol.Geolocation'); goog.require('ol.Map'); goog.require('ol.Overlay'); From 99eca3037d7b5f7b5dd756cbdf585f86b1722e89 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 13 Jan 2014 12:45:45 +0100 Subject: [PATCH 855/919] Encode ol.geom.Circles as empty geometry collections in GeoJSON GeoJSON does not support circles, nor null geometries. Empty geometry collections seem to be the way to represent at null geometry in GeoJSON. --- src/ol/format/geojsonformat.js | 16 +++++++++++++++- test/spec/ol/format/geojsonformat.test.js | 11 +++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/ol/format/geojsonformat.js b/src/ol/format/geojsonformat.js index d703970609..b9f3b59886 100644 --- a/src/ol/format/geojsonformat.js +++ b/src/ol/format/geojsonformat.js @@ -153,6 +153,19 @@ ol.format.GeoJSON.writeGeometry_ = function(geometry) { }; +/** + * @param {ol.geom.Geometry} geometry Geometry. + * @private + * @return {GeoJSONGeometryCollection} Empty GeoJSON geometry collection. + */ +ol.format.GeoJSON.writeEmptyGeometryCollectionGeometry_ = function(geometry) { + return /** @type {GeoJSONGeometryCollection} */ ({ + 'type': 'GeometryCollection', + 'geometries': [] + }); +}; + + /** * @param {ol.geom.Geometry} geometry Geometry. * @private @@ -283,7 +296,8 @@ ol.format.GeoJSON.GEOMETRY_WRITERS_ = { 'MultiPoint': ol.format.GeoJSON.writeMultiPointGeometry_, 'MultiLineString': ol.format.GeoJSON.writeMultiLineStringGeometry_, 'MultiPolygon': ol.format.GeoJSON.writeMultiPolygonGeometry_, - 'GeometryCollection': ol.format.GeoJSON.writeGeometryCollectionGeometry_ + 'GeometryCollection': ol.format.GeoJSON.writeGeometryCollectionGeometry_, + 'Circle': ol.format.GeoJSON.writeEmptyGeometryCollectionGeometry_ }; diff --git a/test/spec/ol/format/geojsonformat.test.js b/test/spec/ol/format/geojsonformat.test.js index a6792d834f..d9248b6661 100644 --- a/test/spec/ol/format/geojsonformat.test.js +++ b/test/spec/ol/format/geojsonformat.test.js @@ -458,6 +458,16 @@ describe('ol.format.GeoJSON', function() { expect(geometries[i].getCoordinates()). to.eql(gotGeometries[i].getCoordinates()); } + + }); + + it('encodes a circle as an empty geometry collection', function() { + var circle = new ol.geom.Circle([0, 0], 1); + var geojson = format.writeGeometry(circle); + expect(geojson).to.eql({ + 'type': 'GeometryCollection', + 'geometries': [] + }); }); }); @@ -468,6 +478,7 @@ describe('ol.format.GeoJSON', function() { goog.require('ol.Feature'); goog.require('ol.extent'); goog.require('ol.format.GeoJSON'); +goog.require('ol.geom.Circle'); goog.require('ol.geom.GeometryCollection'); goog.require('ol.geom.LineString'); goog.require('ol.geom.LinearRing'); From da31e621990bee43ddf8fe7b6b0af024b6f9be52 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 13 Jan 2014 23:42:02 +0100 Subject: [PATCH 856/919] More efficient ol.geom.Circle#closestPointXY, thanks @tschaub --- src/ol/geom/circle.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/ol/geom/circle.js b/src/ol/geom/circle.js index ea3a3343d8..00ab10d11e 100644 --- a/src/ol/geom/circle.js +++ b/src/ol/geom/circle.js @@ -42,13 +42,18 @@ ol.geom.Circle.prototype.closestPointXY = var radius = flatCoordinates[this.stride] - flatCoordinates[0]; var dx = x - flatCoordinates[0]; var dy = y - flatCoordinates[1]; - var distance = Math.max(Math.sqrt(dx * dx + dy * dy) - radius, 0); + var d = Math.sqrt(dx * dx + dy * dy); + var distance = Math.max(d, 0); var squaredDistance = distance * distance; if (squaredDistance < minSquaredDistance) { - // FIXME it must be possible to do this without trigonometric functions - var theta = Math.atan2(dy, dx); - closestPoint[0] = flatCoordinates[0] + radius * Math.cos(theta); - closestPoint[1] = flatCoordinates[1] + radius * Math.sin(theta); + if (d === 0) { + closestPoint[0] = flatCoordinates[0]; + closestPoint[1] = flatCoordinates[1]; + } else { + var delta = radius / d; + closestPoint[0] = flatCoordinates[0] + delta * dx; + closestPoint[1] = flatCoordinates[1] + delta * dy; + } return squaredDistance; } else { return minSquaredDistance; From 43c40e14c861168e04ee6fd564471dbddb672f00 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 14 Jan 2014 14:30:51 +0100 Subject: [PATCH 857/919] Remove trailing whitespace --- examples/accessible.html | 2 +- examples/animation.html | 2 +- examples/bind-input.html | 2 +- examples/bing-maps.html | 2 +- examples/brightness-contrast.html | 2 +- examples/canvas-tiles.html | 2 +- examples/custom-controls.html | 2 +- examples/device-orientation.html | 2 +- examples/drag-and-drop.html | 2 +- examples/drag-rotate-and-zoom.html | 2 +- examples/draw-features.html | 2 +- examples/dynamic-data.html | 2 +- examples/epsg-4326.html | 2 +- examples/export-map.html | 2 +- examples/full-screen-drag-rotate-and-zoom.html | 2 +- examples/full-screen.html | 2 +- examples/geojson.html | 2 +- examples/geolocation.html | 2 +- examples/hue-saturation.html | 2 +- examples/icon.html | 4 ++-- examples/igc.html | 2 +- examples/image-vector-layer.html | 2 +- examples/kml-earthquakes.html | 2 +- examples/kml-timezones.html | 2 +- examples/kml.html | 2 +- examples/layer-clipping.html | 2 +- examples/layer-group.html | 2 +- examples/layer-spy.html | 2 +- examples/layer-swipe.html | 2 +- examples/localized-openstreetmap.html | 2 +- examples/mapguide-untiled.html | 2 +- examples/mapquest.html | 2 +- examples/mouse-position.html | 2 +- examples/moveend.html | 2 +- examples/navigation-controls.html | 2 +- examples/overlay.html | 2 +- examples/popup.html | 2 +- examples/preload.html | 2 +- examples/rotation.html | 2 +- examples/scale-line.html | 2 +- examples/semi-transparent-layer.html | 2 +- examples/side-by-side.html | 2 +- examples/simple.html | 2 +- examples/stamen.html | 2 +- examples/static-image.html | 2 +- examples/teleport.html | 2 +- examples/tilejson.html | 2 +- examples/vector-layer.html | 2 +- examples/wms-capabilities.html | 2 +- examples/wms-custom-proj.html | 2 +- examples/wms-image-custom-proj.html | 2 +- examples/wms-image.html | 2 +- examples/wms-no-proj.html | 2 +- examples/wms-tiled.html | 2 +- examples/wmts.html | 2 +- examples/xyz-esri.html | 2 +- examples/zoomify.html | 2 +- examples/zoomslider.html | 6 +++--- 58 files changed, 61 insertions(+), 61 deletions(-) diff --git a/examples/accessible.html b/examples/accessible.html index 94339ed9ac..5b3966b21d 100644 --- a/examples/accessible.html +++ b/examples/accessible.html @@ -20,7 +20,7 @@ diff --git a/examples/animation.html b/examples/animation.html index f8f7d2c1ff..c52538e412 100644 --- a/examples/animation.html +++ b/examples/animation.html @@ -15,7 +15,7 @@ diff --git a/examples/bind-input.html b/examples/bind-input.html index 3418fbf246..1d737e3ea6 100644 --- a/examples/bind-input.html +++ b/examples/bind-input.html @@ -15,7 +15,7 @@ diff --git a/examples/bing-maps.html b/examples/bing-maps.html index a410469301..5a047f131b 100644 --- a/examples/bing-maps.html +++ b/examples/bing-maps.html @@ -15,7 +15,7 @@ diff --git a/examples/brightness-contrast.html b/examples/brightness-contrast.html index 80dc70f757..0605d511a5 100644 --- a/examples/brightness-contrast.html +++ b/examples/brightness-contrast.html @@ -23,7 +23,7 @@ diff --git a/examples/canvas-tiles.html b/examples/canvas-tiles.html index 51f97905f9..f2e0acf20d 100644 --- a/examples/canvas-tiles.html +++ b/examples/canvas-tiles.html @@ -15,7 +15,7 @@ diff --git a/examples/custom-controls.html b/examples/custom-controls.html index 9cf24d173b..001ed422b4 100644 --- a/examples/custom-controls.html +++ b/examples/custom-controls.html @@ -51,7 +51,7 @@ diff --git a/examples/device-orientation.html b/examples/device-orientation.html index 470b06839d..3d5b640257 100644 --- a/examples/device-orientation.html +++ b/examples/device-orientation.html @@ -15,7 +15,7 @@ diff --git a/examples/drag-and-drop.html b/examples/drag-and-drop.html index 98a622eabe..b64ad21da9 100644 --- a/examples/drag-and-drop.html +++ b/examples/drag-and-drop.html @@ -15,7 +15,7 @@ diff --git a/examples/drag-rotate-and-zoom.html b/examples/drag-rotate-and-zoom.html index 3111e8ef8f..ee775d20be 100644 --- a/examples/drag-rotate-and-zoom.html +++ b/examples/drag-rotate-and-zoom.html @@ -15,7 +15,7 @@ diff --git a/examples/draw-features.html b/examples/draw-features.html index 3cb90e6121..f4450df0d6 100644 --- a/examples/draw-features.html +++ b/examples/draw-features.html @@ -15,7 +15,7 @@ diff --git a/examples/dynamic-data.html b/examples/dynamic-data.html index 5667b9ef6d..c66379bf00 100644 --- a/examples/dynamic-data.html +++ b/examples/dynamic-data.html @@ -15,7 +15,7 @@ diff --git a/examples/epsg-4326.html b/examples/epsg-4326.html index 91439320e5..541bd71c72 100644 --- a/examples/epsg-4326.html +++ b/examples/epsg-4326.html @@ -15,7 +15,7 @@ diff --git a/examples/export-map.html b/examples/export-map.html index 08373865c3..ccfc68f10e 100644 --- a/examples/export-map.html +++ b/examples/export-map.html @@ -15,7 +15,7 @@ diff --git a/examples/full-screen-drag-rotate-and-zoom.html b/examples/full-screen-drag-rotate-and-zoom.html index 8ef61c96ba..10d23c1635 100644 --- a/examples/full-screen-drag-rotate-and-zoom.html +++ b/examples/full-screen-drag-rotate-and-zoom.html @@ -26,7 +26,7 @@ diff --git a/examples/full-screen.html b/examples/full-screen.html index d641ce5938..096583a64a 100644 --- a/examples/full-screen.html +++ b/examples/full-screen.html @@ -26,7 +26,7 @@ diff --git a/examples/geojson.html b/examples/geojson.html index 3187674c6f..14c515d91f 100644 --- a/examples/geojson.html +++ b/examples/geojson.html @@ -15,7 +15,7 @@ diff --git a/examples/geolocation.html b/examples/geolocation.html index 44e31c630b..b32e7a3c20 100644 --- a/examples/geolocation.html +++ b/examples/geolocation.html @@ -24,7 +24,7 @@ diff --git a/examples/hue-saturation.html b/examples/hue-saturation.html index 9c90d64c9a..4bc6608a67 100644 --- a/examples/hue-saturation.html +++ b/examples/hue-saturation.html @@ -23,7 +23,7 @@ diff --git a/examples/icon.html b/examples/icon.html index 9a0bf9b5c5..d0a3329326 100644 --- a/examples/icon.html +++ b/examples/icon.html @@ -23,7 +23,7 @@ @@ -35,7 +35,7 @@
-
+
diff --git a/examples/igc.html b/examples/igc.html index 1ea8a82cd0..3aa5cb89bd 100644 --- a/examples/igc.html +++ b/examples/igc.html @@ -15,7 +15,7 @@ diff --git a/examples/image-vector-layer.html b/examples/image-vector-layer.html index 9531bbc7a4..56473d3bf2 100644 --- a/examples/image-vector-layer.html +++ b/examples/image-vector-layer.html @@ -15,7 +15,7 @@ diff --git a/examples/kml-earthquakes.html b/examples/kml-earthquakes.html index 754e2439f4..7cdd2250ba 100644 --- a/examples/kml-earthquakes.html +++ b/examples/kml-earthquakes.html @@ -36,7 +36,7 @@ diff --git a/examples/kml-timezones.html b/examples/kml-timezones.html index e8c6c57446..63dc985f7d 100644 --- a/examples/kml-timezones.html +++ b/examples/kml-timezones.html @@ -26,7 +26,7 @@ diff --git a/examples/kml.html b/examples/kml.html index ec852da5e2..d127643db5 100644 --- a/examples/kml.html +++ b/examples/kml.html @@ -15,7 +15,7 @@ diff --git a/examples/layer-clipping.html b/examples/layer-clipping.html index 9e304847a3..61d15e21a4 100644 --- a/examples/layer-clipping.html +++ b/examples/layer-clipping.html @@ -15,7 +15,7 @@ diff --git a/examples/layer-group.html b/examples/layer-group.html index 121197f838..52cea85ee4 100644 --- a/examples/layer-group.html +++ b/examples/layer-group.html @@ -19,7 +19,7 @@ diff --git a/examples/layer-spy.html b/examples/layer-spy.html index 4c2a97632d..50f6776226 100644 --- a/examples/layer-spy.html +++ b/examples/layer-spy.html @@ -15,7 +15,7 @@ diff --git a/examples/layer-swipe.html b/examples/layer-swipe.html index 0ecb8b932f..54487d129c 100644 --- a/examples/layer-swipe.html +++ b/examples/layer-swipe.html @@ -15,7 +15,7 @@ diff --git a/examples/localized-openstreetmap.html b/examples/localized-openstreetmap.html index 7f4d64e0e8..130a657780 100644 --- a/examples/localized-openstreetmap.html +++ b/examples/localized-openstreetmap.html @@ -15,7 +15,7 @@ diff --git a/examples/mapguide-untiled.html b/examples/mapguide-untiled.html index 0d80284c1b..3f3c5e248d 100644 --- a/examples/mapguide-untiled.html +++ b/examples/mapguide-untiled.html @@ -15,7 +15,7 @@ diff --git a/examples/mapquest.html b/examples/mapquest.html index 66684b11f1..593fc7387a 100644 --- a/examples/mapquest.html +++ b/examples/mapquest.html @@ -15,7 +15,7 @@ diff --git a/examples/mouse-position.html b/examples/mouse-position.html index b6bfb34ea3..ce4b3822f7 100644 --- a/examples/mouse-position.html +++ b/examples/mouse-position.html @@ -15,7 +15,7 @@ diff --git a/examples/moveend.html b/examples/moveend.html index 295ab02df3..009b8d0856 100644 --- a/examples/moveend.html +++ b/examples/moveend.html @@ -15,7 +15,7 @@ diff --git a/examples/navigation-controls.html b/examples/navigation-controls.html index a6303758d4..6da7eace4b 100644 --- a/examples/navigation-controls.html +++ b/examples/navigation-controls.html @@ -15,7 +15,7 @@ diff --git a/examples/overlay.html b/examples/overlay.html index 9cfa3d8075..f7ceb8d8a4 100644 --- a/examples/overlay.html +++ b/examples/overlay.html @@ -38,7 +38,7 @@ diff --git a/examples/popup.html b/examples/popup.html index c820c9e40c..d412e89ce5 100644 --- a/examples/popup.html +++ b/examples/popup.html @@ -60,7 +60,7 @@ diff --git a/examples/preload.html b/examples/preload.html index ae32d8dd72..782cae0952 100644 --- a/examples/preload.html +++ b/examples/preload.html @@ -15,7 +15,7 @@ diff --git a/examples/rotation.html b/examples/rotation.html index e465956111..45dd95eb62 100644 --- a/examples/rotation.html +++ b/examples/rotation.html @@ -15,7 +15,7 @@ diff --git a/examples/scale-line.html b/examples/scale-line.html index 023d806f4c..6b64e646e5 100644 --- a/examples/scale-line.html +++ b/examples/scale-line.html @@ -15,7 +15,7 @@ diff --git a/examples/semi-transparent-layer.html b/examples/semi-transparent-layer.html index 0a1b1594b9..8dcc41d216 100644 --- a/examples/semi-transparent-layer.html +++ b/examples/semi-transparent-layer.html @@ -15,7 +15,7 @@ diff --git a/examples/side-by-side.html b/examples/side-by-side.html index aaf627e073..d11940e0a6 100644 --- a/examples/side-by-side.html +++ b/examples/side-by-side.html @@ -15,7 +15,7 @@ diff --git a/examples/simple.html b/examples/simple.html index 13b2a7d56e..92b4c91e26 100644 --- a/examples/simple.html +++ b/examples/simple.html @@ -15,7 +15,7 @@ diff --git a/examples/stamen.html b/examples/stamen.html index d259a40893..58f5e35565 100644 --- a/examples/stamen.html +++ b/examples/stamen.html @@ -15,7 +15,7 @@ diff --git a/examples/static-image.html b/examples/static-image.html index 80871fcd79..9d9836219a 100644 --- a/examples/static-image.html +++ b/examples/static-image.html @@ -15,7 +15,7 @@ diff --git a/examples/teleport.html b/examples/teleport.html index dd1f93e128..c75234807e 100644 --- a/examples/teleport.html +++ b/examples/teleport.html @@ -15,7 +15,7 @@ diff --git a/examples/tilejson.html b/examples/tilejson.html index fca30e7d80..200bf7bbda 100644 --- a/examples/tilejson.html +++ b/examples/tilejson.html @@ -15,7 +15,7 @@ diff --git a/examples/vector-layer.html b/examples/vector-layer.html index 49608db4d4..b30a3189f9 100644 --- a/examples/vector-layer.html +++ b/examples/vector-layer.html @@ -15,7 +15,7 @@ diff --git a/examples/wms-capabilities.html b/examples/wms-capabilities.html index b45b69ac2d..d1097846b4 100644 --- a/examples/wms-capabilities.html +++ b/examples/wms-capabilities.html @@ -15,7 +15,7 @@ diff --git a/examples/wms-custom-proj.html b/examples/wms-custom-proj.html index 5ca2ceb206..7ae8eadcb1 100644 --- a/examples/wms-custom-proj.html +++ b/examples/wms-custom-proj.html @@ -15,7 +15,7 @@ diff --git a/examples/wms-image-custom-proj.html b/examples/wms-image-custom-proj.html index 14b877d3c4..90c916866d 100644 --- a/examples/wms-image-custom-proj.html +++ b/examples/wms-image-custom-proj.html @@ -15,7 +15,7 @@ diff --git a/examples/wms-image.html b/examples/wms-image.html index 067c09863b..fb8ba60ebe 100644 --- a/examples/wms-image.html +++ b/examples/wms-image.html @@ -15,7 +15,7 @@ diff --git a/examples/wms-no-proj.html b/examples/wms-no-proj.html index bda0c340f3..cb3787df92 100644 --- a/examples/wms-no-proj.html +++ b/examples/wms-no-proj.html @@ -15,7 +15,7 @@ diff --git a/examples/wms-tiled.html b/examples/wms-tiled.html index 2f83ac7fe5..58f85b59aa 100644 --- a/examples/wms-tiled.html +++ b/examples/wms-tiled.html @@ -15,7 +15,7 @@ diff --git a/examples/wmts.html b/examples/wmts.html index 4419968a8f..9ce11a0201 100644 --- a/examples/wmts.html +++ b/examples/wmts.html @@ -15,7 +15,7 @@ diff --git a/examples/xyz-esri.html b/examples/xyz-esri.html index 13fa73fe5f..1245180a10 100644 --- a/examples/xyz-esri.html +++ b/examples/xyz-esri.html @@ -15,7 +15,7 @@ diff --git a/examples/zoomify.html b/examples/zoomify.html index 396a736392..7a6ab8d014 100644 --- a/examples/zoomify.html +++ b/examples/zoomify.html @@ -15,7 +15,7 @@ diff --git a/examples/zoomslider.html b/examples/zoomslider.html index 7cf1cb941e..1808246f2b 100644 --- a/examples/zoomslider.html +++ b/examples/zoomslider.html @@ -63,15 +63,15 @@ ol3 ZoomSlider demo - + - +
From 4d619d71b1ba7f96011d43c2f45edc441dd26f92 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 14 Jan 2014 14:32:39 +0100 Subject: [PATCH 858/919] Only load ol.css in loader.js Before this change, all the examples try to load ../css/ol.css, even in hosted mode, where they should load ../build/ol.css instead. --- examples/accessible.html | 1 - examples/animation.html | 1 - examples/bind-input.html | 1 - examples/bing-maps.html | 1 - examples/brightness-contrast.html | 1 - examples/canvas-tiles.html | 1 - examples/custom-controls.html | 1 - examples/d3.html | 1 - examples/device-orientation.html | 1 - examples/drag-and-drop.html | 1 - examples/drag-rotate-and-zoom.html | 1 - examples/draw-features.html | 1 - examples/dynamic-data.html | 1 - examples/epsg-4326.html | 1 - examples/export-map.html | 1 - examples/full-screen-drag-rotate-and-zoom.html | 1 - examples/full-screen.html | 1 - examples/geojson.html | 1 - examples/geolocation.html | 1 - examples/hue-saturation.html | 1 - examples/icon.html | 1 - examples/igc.html | 1 - examples/image-vector-layer.html | 1 - examples/index.html | 1 - examples/kml-earthquakes.html | 1 - examples/kml-timezones.html | 1 - examples/kml.html | 1 - examples/layer-clipping-webgl.html | 1 - examples/layer-clipping.html | 1 - examples/layer-spy.html | 1 - examples/layer-swipe.html | 1 - examples/loader.js | 1 + examples/localized-openstreetmap.html | 1 - examples/mapguide-untiled.html | 1 - examples/mapquest.html | 1 - examples/min-max-resolution.html | 1 - examples/mobile-full-screen.html | 1 - examples/mouse-position.html | 1 - examples/moveend.html | 1 - examples/navigation-controls.html | 1 - examples/overlay.html | 1 - examples/popup.html | 1 - examples/preload.html | 1 - examples/rotation.html | 1 - examples/rtree.html | 1 - examples/scale-line.html | 1 - examples/semi-transparent-layer.html | 1 - examples/side-by-side.html | 1 - examples/simple.html | 1 - examples/stamen.html | 1 - examples/static-image.html | 1 - examples/synthetic-lines.html | 1 - examples/synthetic-points.html | 1 - examples/teleport.html | 1 - examples/tilejson.html | 1 - examples/vector-layer.html | 1 - examples/wms-capabilities.html | 1 - examples/wms-custom-proj.html | 1 - examples/wms-image-custom-proj.html | 1 - examples/wms-image.html | 1 - examples/wms-no-proj.html | 1 - examples/wms-tiled.html | 1 - examples/wmts.html | 1 - examples/xyz-esri.html | 1 - examples/zoomify.html | 1 - examples/zoomslider.html | 1 - 66 files changed, 1 insertion(+), 65 deletions(-) diff --git a/examples/accessible.html b/examples/accessible.html index 5b3966b21d..3cdaf170b0 100644 --- a/examples/accessible.html +++ b/examples/accessible.html @@ -4,7 +4,6 @@ - diff --git a/examples/animation.html b/examples/animation.html index c52538e412..abedf3c0fe 100644 --- a/examples/animation.html +++ b/examples/animation.html @@ -4,7 +4,6 @@ - diff --git a/examples/bind-input.html b/examples/bind-input.html index 1d737e3ea6..d45f73b874 100644 --- a/examples/bind-input.html +++ b/examples/bind-input.html @@ -4,7 +4,6 @@ - diff --git a/examples/bing-maps.html b/examples/bing-maps.html index 5a047f131b..160a5b2d7f 100644 --- a/examples/bing-maps.html +++ b/examples/bing-maps.html @@ -4,7 +4,6 @@ - diff --git a/examples/brightness-contrast.html b/examples/brightness-contrast.html index 0605d511a5..de9ec3fb24 100644 --- a/examples/brightness-contrast.html +++ b/examples/brightness-contrast.html @@ -4,7 +4,6 @@ - diff --git a/examples/canvas-tiles.html b/examples/canvas-tiles.html index f2e0acf20d..7b817b74fd 100644 --- a/examples/canvas-tiles.html +++ b/examples/canvas-tiles.html @@ -4,7 +4,6 @@ - diff --git a/examples/custom-controls.html b/examples/custom-controls.html index 001ed422b4..563757a222 100644 --- a/examples/custom-controls.html +++ b/examples/custom-controls.html @@ -4,7 +4,6 @@ - diff --git a/examples/d3.html b/examples/d3.html index 6af6a40d92..bc19211ad8 100644 --- a/examples/d3.html +++ b/examples/d3.html @@ -4,7 +4,6 @@ - diff --git a/examples/device-orientation.html b/examples/device-orientation.html index 3d5b640257..54942cca60 100644 --- a/examples/device-orientation.html +++ b/examples/device-orientation.html @@ -4,7 +4,6 @@ - diff --git a/examples/drag-and-drop.html b/examples/drag-and-drop.html index b64ad21da9..7a87401793 100644 --- a/examples/drag-and-drop.html +++ b/examples/drag-and-drop.html @@ -4,7 +4,6 @@ - diff --git a/examples/drag-rotate-and-zoom.html b/examples/drag-rotate-and-zoom.html index ee775d20be..7573e373b8 100644 --- a/examples/drag-rotate-and-zoom.html +++ b/examples/drag-rotate-and-zoom.html @@ -4,7 +4,6 @@ - diff --git a/examples/draw-features.html b/examples/draw-features.html index f4450df0d6..8ddbc45570 100644 --- a/examples/draw-features.html +++ b/examples/draw-features.html @@ -4,7 +4,6 @@ - diff --git a/examples/dynamic-data.html b/examples/dynamic-data.html index c66379bf00..89fb754092 100644 --- a/examples/dynamic-data.html +++ b/examples/dynamic-data.html @@ -4,7 +4,6 @@ - diff --git a/examples/epsg-4326.html b/examples/epsg-4326.html index 541bd71c72..36b4ef918e 100644 --- a/examples/epsg-4326.html +++ b/examples/epsg-4326.html @@ -4,7 +4,6 @@ - diff --git a/examples/export-map.html b/examples/export-map.html index ccfc68f10e..56b21b05b3 100644 --- a/examples/export-map.html +++ b/examples/export-map.html @@ -4,7 +4,6 @@ - diff --git a/examples/full-screen-drag-rotate-and-zoom.html b/examples/full-screen-drag-rotate-and-zoom.html index 10d23c1635..acdf4b94a6 100644 --- a/examples/full-screen-drag-rotate-and-zoom.html +++ b/examples/full-screen-drag-rotate-and-zoom.html @@ -4,7 +4,6 @@ - diff --git a/examples/full-screen.html b/examples/full-screen.html index 096583a64a..a7e8963129 100644 --- a/examples/full-screen.html +++ b/examples/full-screen.html @@ -4,7 +4,6 @@ - diff --git a/examples/geojson.html b/examples/geojson.html index 14c515d91f..26135d4e76 100644 --- a/examples/geojson.html +++ b/examples/geojson.html @@ -4,7 +4,6 @@ - diff --git a/examples/geolocation.html b/examples/geolocation.html index b32e7a3c20..ecc6cec32e 100644 --- a/examples/geolocation.html +++ b/examples/geolocation.html @@ -4,7 +4,6 @@ - diff --git a/examples/hue-saturation.html b/examples/hue-saturation.html index 4bc6608a67..087ed33496 100644 --- a/examples/hue-saturation.html +++ b/examples/hue-saturation.html @@ -4,7 +4,6 @@ - diff --git a/examples/icon.html b/examples/icon.html index d0a3329326..25156ee655 100644 --- a/examples/icon.html +++ b/examples/icon.html @@ -4,7 +4,6 @@ - diff --git a/examples/igc.html b/examples/igc.html index 3aa5cb89bd..63a784cbda 100644 --- a/examples/igc.html +++ b/examples/igc.html @@ -4,7 +4,6 @@ - diff --git a/examples/image-vector-layer.html b/examples/image-vector-layer.html index 56473d3bf2..f43959baf6 100644 --- a/examples/image-vector-layer.html +++ b/examples/image-vector-layer.html @@ -4,7 +4,6 @@ - diff --git a/examples/index.html b/examples/index.html index 41d41eb105..8fd6028972 100644 --- a/examples/index.html +++ b/examples/index.html @@ -4,7 +4,6 @@ - diff --git a/examples/kml-earthquakes.html b/examples/kml-earthquakes.html index 7cdd2250ba..4d3f2386c9 100644 --- a/examples/kml-earthquakes.html +++ b/examples/kml-earthquakes.html @@ -4,7 +4,6 @@ - diff --git a/examples/kml-timezones.html b/examples/kml-timezones.html index 63dc985f7d..2fce5edfa8 100644 --- a/examples/kml-timezones.html +++ b/examples/kml-timezones.html @@ -4,7 +4,6 @@ - diff --git a/examples/kml.html b/examples/kml.html index d127643db5..2e123a4236 100644 --- a/examples/kml.html +++ b/examples/kml.html @@ -4,7 +4,6 @@ - diff --git a/examples/layer-clipping-webgl.html b/examples/layer-clipping-webgl.html index 6b0a4be070..36f869e78c 100644 --- a/examples/layer-clipping-webgl.html +++ b/examples/layer-clipping-webgl.html @@ -4,7 +4,6 @@ - diff --git a/examples/layer-clipping.html b/examples/layer-clipping.html index 61d15e21a4..90077e3166 100644 --- a/examples/layer-clipping.html +++ b/examples/layer-clipping.html @@ -4,7 +4,6 @@ - diff --git a/examples/layer-spy.html b/examples/layer-spy.html index 50f6776226..c6f2ca9245 100644 --- a/examples/layer-spy.html +++ b/examples/layer-spy.html @@ -4,7 +4,6 @@ - diff --git a/examples/layer-swipe.html b/examples/layer-swipe.html index 54487d129c..48303a95bf 100644 --- a/examples/layer-swipe.html +++ b/examples/layer-swipe.html @@ -4,7 +4,6 @@ - diff --git a/examples/loader.js b/examples/loader.js index 603b500d29..e1cb108cc8 100644 --- a/examples/loader.js +++ b/examples/loader.js @@ -59,6 +59,7 @@ pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key])); } + document.write(''); var url = 'http://' + host + '/compile?' + pairs.join('&'); document.write(''); }()); diff --git a/examples/localized-openstreetmap.html b/examples/localized-openstreetmap.html index 130a657780..769f29591f 100644 --- a/examples/localized-openstreetmap.html +++ b/examples/localized-openstreetmap.html @@ -4,7 +4,6 @@ - diff --git a/examples/mapguide-untiled.html b/examples/mapguide-untiled.html index 3f3c5e248d..3aed063b9b 100644 --- a/examples/mapguide-untiled.html +++ b/examples/mapguide-untiled.html @@ -4,7 +4,6 @@ - diff --git a/examples/mapquest.html b/examples/mapquest.html index 593fc7387a..ece39868a7 100644 --- a/examples/mapquest.html +++ b/examples/mapquest.html @@ -4,7 +4,6 @@ - diff --git a/examples/min-max-resolution.html b/examples/min-max-resolution.html index 1a452f05e3..a0e4c32ef8 100644 --- a/examples/min-max-resolution.html +++ b/examples/min-max-resolution.html @@ -4,7 +4,6 @@ - diff --git a/examples/mobile-full-screen.html b/examples/mobile-full-screen.html index 73c0ac0086..f478636a7a 100644 --- a/examples/mobile-full-screen.html +++ b/examples/mobile-full-screen.html @@ -4,7 +4,6 @@ - Mobile full screen example